]> granicus.if.org Git - recode/commitdiff
Version 3.5c v3.5c
authorFrançois Pinard <pinard@iro.umontreal.ca>
Fri, 18 Jan 2008 20:13:14 +0000 (15:13 -0500)
committerFrançois Pinard <pinard@iro.umontreal.ca>
Fri, 18 Jan 2008 20:13:14 +0000 (15:13 -0500)
204 files changed:
AUTHORS
BACKLOG
ChangeLog
Makefile.am
Makefile.in
NEWS
README
README-alpha
THANKS
acconfig.h
configure
configure.in
doc/ChangeLog
doc/Makefile.am
doc/Makefile.in
doc/Makemore
doc/libiconv.texi [new file with mode: 0644]
doc/recode.info
doc/recode.info-1
doc/recode.info-2
doc/recode.info-3
doc/recode.info-4
doc/recode.info-5
doc/recode.info-6
doc/recode.texi
doc/rfc1345.texi [moved from doc/charset.texi with 98% similarity]
doc/stamp-vti
doc/tables.py
doc/version.texi
i18n/ChangeLog
i18n/recode.pot
lib/ChangeLog
lib/Makefile.am
lib/Makefile.in
libiconv/ChangeLog [new file with mode: 0644]
libiconv/Makefile.am [new file with mode: 0644]
libiconv/Makefile.in [new file with mode: 0644]
libiconv/aliases.h [new file with mode: 0644]
libiconv/armscii_8.h [new file with mode: 0644]
libiconv/ascii.h [new file with mode: 0644]
libiconv/big5.h [new file with mode: 0644]
libiconv/ces_big5.h [new file with mode: 0644]
libiconv/ces_gbk.h [new file with mode: 0644]
libiconv/cns11643.h [new file with mode: 0644]
libiconv/cns11643_1.h [new file with mode: 0644]
libiconv/cns11643_2.h [new file with mode: 0644]
libiconv/cns11643_3.h [new file with mode: 0644]
libiconv/cns11643_inv.h [new file with mode: 0644]
libiconv/cp1133.h [new file with mode: 0644]
libiconv/cp1250.h [new file with mode: 0644]
libiconv/cp1251.h [new file with mode: 0644]
libiconv/cp1252.h [new file with mode: 0644]
libiconv/cp1253.h [new file with mode: 0644]
libiconv/cp1254.h [new file with mode: 0644]
libiconv/cp1255.h [new file with mode: 0644]
libiconv/cp1256.h [new file with mode: 0644]
libiconv/cp1257.h [new file with mode: 0644]
libiconv/cp1258.h [new file with mode: 0644]
libiconv/cp850.h [new file with mode: 0644]
libiconv/cp866.h [new file with mode: 0644]
libiconv/cp874.h [new file with mode: 0644]
libiconv/cp932.h [new file with mode: 0644]
libiconv/cp932ext.h [new file with mode: 0644]
libiconv/cp936ext.h [new file with mode: 0644]
libiconv/cp950.h [new file with mode: 0644]
libiconv/cp950ext.h [new file with mode: 0644]
libiconv/encodings.def [new file with mode: 0644]
libiconv/euc_cn.h [new file with mode: 0644]
libiconv/euc_jp.h [new file with mode: 0644]
libiconv/euc_kr.h [new file with mode: 0644]
libiconv/euc_tw.h [new file with mode: 0644]
libiconv/gb12345.h [new file with mode: 0644]
libiconv/gb12345ext.h [new file with mode: 0644]
libiconv/gb2312.h [new file with mode: 0644]
libiconv/gbk.h [new file with mode: 0644]
libiconv/gbkext1.h [new file with mode: 0644]
libiconv/gbkext2.h [new file with mode: 0644]
libiconv/gbkext_inv.h [new file with mode: 0644]
libiconv/georgian_academy.h [new file with mode: 0644]
libiconv/georgian_ps.h [new file with mode: 0644]
libiconv/hp_roman8.h [new file with mode: 0644]
libiconv/hz.h [new file with mode: 0644]
libiconv/iso2022_cn.h [new file with mode: 0644]
libiconv/iso2022_cnext.h [new file with mode: 0644]
libiconv/iso2022_jp.h [new file with mode: 0644]
libiconv/iso2022_jp1.h [new file with mode: 0644]
libiconv/iso2022_jp2.h [new file with mode: 0644]
libiconv/iso2022_kr.h [new file with mode: 0644]
libiconv/iso8859_1.h [new file with mode: 0644]
libiconv/iso8859_10.h [new file with mode: 0644]
libiconv/iso8859_13.h [new file with mode: 0644]
libiconv/iso8859_14.h [new file with mode: 0644]
libiconv/iso8859_15.h [new file with mode: 0644]
libiconv/iso8859_2.h [new file with mode: 0644]
libiconv/iso8859_3.h [new file with mode: 0644]
libiconv/iso8859_4.h [new file with mode: 0644]
libiconv/iso8859_5.h [new file with mode: 0644]
libiconv/iso8859_6.h [new file with mode: 0644]
libiconv/iso8859_7.h [new file with mode: 0644]
libiconv/iso8859_8.h [new file with mode: 0644]
libiconv/iso8859_9.h [new file with mode: 0644]
libiconv/java.h [new file with mode: 0644]
libiconv/jisx0201.h [new file with mode: 0644]
libiconv/jisx0208.h [new file with mode: 0644]
libiconv/jisx0212.h [new file with mode: 0644]
libiconv/johab.h [new file with mode: 0644]
libiconv/johab_decomp.h [new file with mode: 0644]
libiconv/johab_hangul.h [new file with mode: 0644]
libiconv/koi8_r.h [new file with mode: 0644]
libiconv/koi8_ru.h [new file with mode: 0644]
libiconv/koi8_u.h [new file with mode: 0644]
libiconv/ksc5601.h [new file with mode: 0644]
libiconv/mac_arabic.h [new file with mode: 0644]
libiconv/mac_centraleurope.h [new file with mode: 0644]
libiconv/mac_croatian.h [new file with mode: 0644]
libiconv/mac_cyrillic.h [new file with mode: 0644]
libiconv/mac_greek.h [new file with mode: 0644]
libiconv/mac_hebrew.h [new file with mode: 0644]
libiconv/mac_iceland.h [new file with mode: 0644]
libiconv/mac_roman.h [new file with mode: 0644]
libiconv/mac_romania.h [new file with mode: 0644]
libiconv/mac_thai.h [new file with mode: 0644]
libiconv/mac_turkish.h [new file with mode: 0644]
libiconv/mac_ukraine.h [new file with mode: 0644]
libiconv/mulelao.h [new file with mode: 0644]
libiconv/nextstep.h [new file with mode: 0644]
libiconv/sjis.h [new file with mode: 0644]
libiconv/tcvn.h [new file with mode: 0644]
libiconv/tis620.h [new file with mode: 0644]
libiconv/ucs2.h [new file with mode: 0644]
libiconv/ucs2internal.h [new file with mode: 0644]
libiconv/ucs2swapped.h [new file with mode: 0644]
libiconv/ucs4.h [new file with mode: 0644]
libiconv/ucs4internal.h [new file with mode: 0644]
libiconv/ucs4swapped.h [new file with mode: 0644]
libiconv/utf16.h [new file with mode: 0644]
libiconv/utf7.h [new file with mode: 0644]
libiconv/utf8.h [new file with mode: 0644]
libiconv/viscii.h [new file with mode: 0644]
m4/ChangeLog
src/ChangeLog
src/Makefile.am
src/Makefile.in
src/applemac.c
src/ascilat1.l
src/atarist.c
src/bangbang.c
src/base64.c
src/base64.h
src/cdcnos.c
src/charname.c
src/charname.h
src/combine.c
src/common.h
src/debug.c
src/decsteps.h
src/dump.c
src/ebcdic.c
src/endline.c
src/flat.c
src/fr-charname.c
src/fr-charname.h
src/freeze.c
src/html.c
src/ibmpc.c
src/iconqnx.c
src/iconv.c [new file with mode: 0644]
src/inisteps.h
src/lat1asci.c
src/lat1ltex.c
src/lat1texi.c
src/lat1txte.c
src/libiconv.c [new file with mode: 0644]
src/libiconv.h [new file with mode: 0644]
src/ltexlat1.l
src/main.c
src/merged.c
src/mergelex.py
src/mixed.c
src/mule.c
src/names.c
src/outer.c
src/permut.c
src/quoted.c
src/recode.1
src/recode.c
src/recode.h
src/recodext.h
src/request.c
src/rfc1345.c
src/rfc1345.h
src/strip-data.c
src/strip-pool.c
src/task.c
src/txtelat1.l
src/ucs.c
src/utf16.c
src/utf7.c
src/utf8.c
src/varia.c
src/vn.c
tests/ChangeLog
tests/names.m4
tests/testsuite

diff --git a/AUTHORS b/AUTHORS
index b5b0d15031aea31bd0109978c23a2ce3e846007f..72762cc08ecd0ef9f3fdea7e79c3a2f8264bf8cd 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -12,3 +12,15 @@ Disclaims work by Fran
 RECODE Ulrich Drepper  Germany 1968    1996-03-25
 Assigns all past and future changes.
 drepper@gnu.ai.mit.edu
+
+RECODE  Bruno Haible    Germany/France 1965     1999-09-08
+Assigns past and future changes.
+haible@clisp.cons.org
+
+LIBUTF8 Bruno Haible    Germany/France 1965     1999-12-08
+Assigns program and future changes.
+haible@clisp.cons.org
+
+LIBICONV        Bruno Haible    Germany/France 1965     1999-12-08
+Assigns program and future changes.
+haible@clisp.cons.org
diff --git a/BACKLOG b/BACKLOG
index a4180b60f671c6ca5975d4372bc7dfe6f57e2f6a..f0a3229df5e9fa6b45ff7f9b451209caf0315f6c 100644 (file)
--- a/BACKLOG
+++ b/BACKLOG
@@ -1,5 +1,5 @@
-# Summary of pending email for Free recode 3.5a.
-# Last updated on 1999-12-20.
+# Summary of pending email for Free recode 3.5c.
+# Last updated on 1999-12-29.
 
 # This file summarises almost all pending email pertaining to this package.
 # I think users deserve to know where maintenance stands for what they use.
 11. 1998-07-21 Wiel: recode: lat1html.c
 12. 1998-12-27 François Pinard: recode - dynlibs
 
+../rmail/xx-config-compile
+ 1. 1998-11-09 Alain Magloire: recode on Solaris
+
+../rmail/xx-doc-hexa
+ 1. 1998-10-14 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+ 2. 1998-10-14 Francois Yergeau: Re: Pour ceux qui ont le temps de lire... Cadr
+ 3. 1998-10-23 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+ 4. 1998-10-23 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+
+../rmail/xx-doc-macintosh
+ 1. 1998-12-07 François Pinard: Re: Novice user of recode with question
+
+../rmail/xx-emacs-lisp
+ 1. 1998-05-12 François Pinard: Emacs 20.2.93 - lisp/format.el and recode
+ 2. 1998-05-13 Richard Stallman: Re: Emacs 20.2.93 - lisp/format.el and recode
+
+../rmail/xx-engine
+ 1. 1994-12-13 Ross Paterson: Re: can ISO-IR-*** be used as MIME charset?
+ 2. 1995-02-15 Francois Pinard: Re: recode 3.4 documentation
+ 3. 1997-08-06 Ulrich Drepper: Re: charset names
+ 4. 1997-12-03 François Pinard: Re: recode problem
+ 5. 1997-12-04 Ulrich Drepper: Re: recode problem
+ 6. 1997-12-09 François Pinard: Re: recode
+ 7. 1997-12-09 Milivoj Ivkovic: Re: recode
+ 8. 1998-02-15 Ulrich Drepper: Re: closing stdout
+ 9. 1998-02-15 Aharon Robbins: closing stdout
+10. 1998-02-16 Laurent Bourbeau: Full dans recode 3.4i
+11. 1998-07-01 Sam: Re: au secour!
+12. 1998-07-22 John Clews: (TC304.1897) Fallbacks/transformation
+
+../rmail/xx-legalese
+ 1. 1997-11-24 Richard Stallman: Re: License for recode
+
+../rmail/xx-library
+ 1. 1995-12-06 Per Bothner: Re: Internationalization resources?
+ 2. 1996-05-29 Ulrich Drepper: librecode, again
+ 3. 1997-10-14 Ulrich Drepper: Re: librecode
+
+../rmail/xx-list-admin
+ 1. 1996-12-29 Majordomo@IRO.UMontreal.CA: Majordomo results
+ 2. 1997-09-25 Mail Delivery Subsystem: Returned mail: User unknown
+ 3. 1997-09-24 Mail Delivery Subsystem: Returned mail: User unknown
+ 4. 1997-09-25 Mail Delivery Subsystem: Returned mail: User unknown
+ 5. 1997-09-25 Mail Delivery Subsystem: Returned mail: User unknown
+ 6. 1997-09-24 Mail Delivery Subsystem: Returned mail: User unknown
+ 7. 1997-12-10 Majordomo@IRO.UMontreal.CA: Majordomo results
+ 8. 1997-12-10 Mail Delivery Subsystem: Returned mail: Cannot send message with
+ 9. 1998-05-29 Majordomo@IRO.UMontreal.CA: Majordomo results
+10. 1998-06-12 Roman Czyborra: recode-pretest > recode-forum
+11. 1998-06-30 François Pinard: Re: recode-pretest > recode-forum
+12. 1998-06-12 Roman Czyborra: recode-pretest > recode-forum
+13. 1998-07-19 François Pinard: Re: [BIS] recode html
+14. 1998-09-14 Mail Delivery Subsystem: Returned mail: Service unavailable
+
+../rmail/xx-list-announce
+ 1. 1994-10-31 pinard@IRO.UMontreal.CA: Prerelease: GNU recode 3.3.2
+ 2. 1994-11-06 pinard@iro.umontreal.ca: Release: GNU recode 3.4
+ 3. 1994-12-01 pinard@IRO.UMontreal.CA: Prerelease: GNU recode 3.4.1
+ 4. 1996-09-20 François Pinard: Prerelease: GNU recode 3.4.2
+ 5. 1997-09-27 François Pinard: Prerelease: GNU recode 3.4c
+ 6. 1997-11-23 François Pinard: Prerelease: GNU recode 3.4d
+ 7. 1997-12-02 François Pinard: Prerelease: GNU recode 3.4e
+ 8. 1997-12-10 François Pinard: Prerelease: GNU recode 3.4f
+ 9. 1998-09-30 François Pinard: Prerelease: GNU recode 3.4i
+10. 1998-10-13 François Pinard: Prerelease: Free recode 3.4j
+11. 1998-10-28 Fran\81çois Pinard: Re: GNU Software Catalog: Current Software, @i
+12. 1998-10-28 François Pinard: Prerelease: Free recode 3.4k
+13. 1998-10-15 François Pinard: Prerelease: Free recode 3.4j
+14. 1998-10-13 François Pinard: Prerelease: Free recode 3.4j
+15. 1998-11-23 François Pinard: Prerelease: Free recode 3.4l
+16. 1998-12-13 François Pinard: Prerelease: Free recode 3.4m
+17. 1998-12-13 François Pinard: Prerelease: Free recode 3.4m
+18. 1999-12-20 François Pinard: Prerelease: Free recode 3.5a
+19. 1999-12-20 François Pinard: Prerelease: Free recode 3.5a
+20. 1999-12-23 François Pinard: Prerelease: Free recode 3.5b
+21. 1999-12-23 François Pinard: Prerelease: Free recode 3.5b
+
+../rmail/xx-messages
+ 1. 1992-11-23 mcgill-vision!corto.inria.fr!shapiro: recode
+ 2. 1994-12-19 Martin Wendel: ANNOUNCE: Emil-2.0 is available
+ 3. 1995-02-28 Francois Pinard: UUPC
+ 4. 1995-03-11 Scott Nelson: ISO-8859-X email test
+ 5. 1995-03-16 Martin Wendel: ANNOUNCE: emil-2.0.5 released
+ 6. 1995-07-05 François Pinard: Re: Retour !
+ 7. 1995-07-25 David Collier-Brown: Early announcement: Mime-witing library
+ 8. 1996-03-02 François Pinard: Re: Présentation de Ulrich Drepper!
+ 9. 1996-06-09 François Pinard: Re: About recode
+10. 1996-06-09 Roberto Alsina: Re: About recode
+11. 1997-10-30 =?iso-8859-1?Q?G=E9rald_St=2DArneault_=3Cstarneag=40grics.qc.ca=
+
+../rmail/xx-mixed
+ 1. 1998-12-01 François Pinard: Re: New -Spo option to `recode'
+
+../rmail/xx-msdos-port
+ 1. 1998-03-26 François Pinard: Re: find reco dos executable
+ 2. 1998-11-24 Eli Zaretskii: Re: recode for Amiga - 3.4k update
+ 3. 1998-11-24 Eli Zaretskii: Re: recode for Amiga - 3.4k update
+ 4. 1998-11-24 François Pinard: Re: recode for Amiga - 3.4k update
+ 5. 1998-11-25 Eli Zaretskii: configure+dist [was: Re: recode for Amiga - 3.4k
+ 6. 1998-11-25 Eli Zaretskii: libtool+shell [was: Re: recode for Amiga - 3.4k u
+ 7. 1998-11-25 Eli Zaretskii: Perl [was: Re: recode for Amiga - 3.4k update]
+ 8. 1998-11-25 Eli Zaretskii: EOLs [was: Re: recode for Amiga - 3.4k update]
+ 9. 1998-11-25 Eli Zaretskii: configure+dist [was: Re: recode for Amiga - 3.4k
+10. 1998-11-25 Eli Zaretskii: Intro [was: Re: recode for Amiga - 3.4k update]
+11. 1998-11-30 Eli Zaretskii: Re: New -Spo option to `recode'
+
+../rmail/xx-multext
+ 1. 1996-05-24 Jean Ve'ronis: Soft: MtScript (Multilingual editor)
+ 2. 1996-06-17 Jean Ve'ronis: Free Soft: MtStr - Multilingual string library
+ 3. 1996-06-20 Jean Ve'ronis: Free Soft: MtRecode - Character conversion progra
+ 4. 1996-08-29 Malek BOUALEM -- UNIVERSITE: Brief Introduction of the LPL
+ 5. 1996-09-05 Malek BOUALEM -- UNIVERSITE: Re: Introduction of LPL/MULTEXT/MTS
+ 6. 1997-12-10 Jean Veronis: Re: Citation de MtRecode
+
+../rmail/xx-op-backup
+ 1. 1994-03-09 Nicolas Anquetil: recode
+ 2. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
+
+../rmail/xx-op-list
+ 1. 1993-12-21 Martin Maechler: Re: Prerelease: GNU recode version 3.2.10
+ 2. 1993-12-21 Francois Pinard: Prerelease: GNU recode version 3.2.10
+ 3. 1993-02-10 Patrik F{ltstr|m: Re: transcription iso-8859-1 to us-ascii?
+ 4. 1998-10-29 Markus Kuhn: Free X11 Unicode terminal font available
+ 5. 1998-11-22 François Pinard: Re: Free X11 Unicode terminal font available
+
 ../admin/rmail/emacs
  1. 1998-05-12 François Pinard: Emacs 20.2.93 - lisp/format.el and recode
 
 ../admin/rmail/legalese
  1. 1997-11-24 Richard Stallman: Re: License for recode
  2. 1999-01-30 Richard Stallman: Why you shouldn't use the Library GPL for your
+ 3. 1999-12-21 Bruno Haible: Re: libiconv-0.2
+ 4. 1999-12-21 François Pinard: Checking for `recode' and `libiconv'
+ 5. 1999-09-08 Bruno Haible: Re: cjk.tgz
+ 6. 1999-09-15 François Pinard: Re: cjk.tgz
+ 7. 1999-12-06 François Pinard: Re: disclaimers
+ 8. 1999-12-06 Bruno Haible: Re: disclaimers
+ 9. 1999-12-06 assignments: Re: disclaimers
 
 ../admin/rmail/list-admin
  1. 1999-07-20 Mail Delivery Subsystem: Returned mail: Can't create output
  3. 1999-01-22 Andreas Schwab: Re: iconv changes
  4. 1999-05-06 Rick Jelliffe: Improvement to libc iconv for East Asian text: lo
  5. 1999-07-23 Changwoo Ryu: iconv() utf8 -> euc-kr bug.
- 6. 1999-12-10 Bruno Haible: iconv program produces invalid output
- 7. 1999-12-10 Ulrich Drepper: Re: iconv program produces invalid output
- 8. 1999-12-11 Andrew Clausen: iconv() and UCS4 endianness
- 9. 1999-12-11 Ulrich Drepper: Re: iconv() and UCS4 endianness
-10. 1999-12-11 Andrew Clausen: Re: iconv() and UCS4 endianness
-11. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
-12. 1999-12-09 François Pinard: Re: cjk.tgz, iconv, transliterations
-13. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
-14. 1999-12-09 François Pinard: Re: cjk.tgz, iconv, transliterations
-15. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
-16. 1999-12-06 François Pinard: Re: disclaimers
-17. 1999-12-06 assignments: Re: disclaimers
-18. 1999-12-06 assignments: Re: disclaimers
-19. 1999-12-12 François Pinard: Re: cjk.tgz, iconv, transliterations
-20. 1999-12-06 Bruno Haible: Re: disclaimers
-21. 1999-09-07 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
-22. 1999-09-07 François Pinard: Re: [loic@ceic.com] Unicode: Toward a standard
-23. 1999-09-08 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
-24. 1999-09-13 Bruno Haible: cjk.tgz
-25. 1999-09-08 François Pinard: Re: none
-26. 1999-09-08 Bruno Haible: Re: cjk.tgz
-27. 1999-09-15 François Pinard: Re: cjk.tgz
-28. 1999-12-13 Bruno Haible: Re: cjk.tgz, iconv, transliterations
-29. 1999-12-13 François Pinard: Re: cjk.tgz, iconv, transliterations
-30. 1999-12-13 Andrew Clausen: Memory leaks in iconv_open() / iconv_close()
-31. 1999-12-15 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+ 6. 1999-09-07 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
+ 7. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+ 8. 1999-12-13 Andrew Clausen: Memory leaks in iconv_open() / iconv_close()
+ 9. 1999-12-20 Bruno Haible: JOHAB encoder is incomplete
+10. 1999-12-20 Bruno Haible: problem with ISO-2022-KR encoder
+11. 1999-12-20 Bruno Haible: one more iconv alias
+12. 1999-12-20 Bruno Haible: more typos in gconv-modules
+13. 1999-12-20 Bruno Haible: iconv calling convention
+14. 1999-12-20 Bruno Haible: final iconv call is buggy
+15. 1999-12-20 Bruno Haible: gettext shall use iconv
+16. 1999-12-20 Ulrich Drepper: Re: problem with ISO-2022-KR encoder
+17. 1999-12-20 Ulrich Drepper: Re: one more iconv alias
+18. 1999-12-20 Ulrich Drepper: Re: more typos in gconv-modules
+19. 1999-12-21 Bruno Haible: Re: libiconv-0.2
+20. 1999-12-22 Bruno Haible: Re: libiconv et recode :-)
+21. 1999-12-22 François Pinard: Re: libiconv et recode :-)
+22. 1999-12-22 Bruno Haible: Re: libiconv et recode :-)
+23. 1999-12-24 François Pinard: recode et libiconv, =?iso-8859-1?q?r=E9flexions
+24. 1999-12-28 Ulrich Drepper: more conversion modules
 
 ../asian/rmail/japanese
  1. 1995-04-25 Ryutaro Susukita: Re: tar-1.11.2 SunOS-4.1.3 JLE-1.1.3 segmentai
  5. 1999-12-16 François Pinard: Re: Release: Free recode 3.5
  6. 1999-12-19 Eli Zaretskii: Re: Release: Free recode 3.5
  7. 1999-12-19 François Pinard: Re: Release: Free recode 3.5
+ 8. 1999-12-20 Eli Zaretskii: Re: Release: Free recode 3.5
+ 9. 1999-12-20 Eli Zaretskii: Re: Release: Free recode 3.5
+10. 1999-12-20 François Pinard: Re: Release: Free recode 3.5
+11. 1999-12-20 Eli Zaretskii: Re: Release: Free recode 3.5
+12. 1999-12-21 Bruno Haible: Re: libiconv et recode :-)
 
 ../fallbacks/rmail/Arabic
  1. 1998-06-18 Roman Czyborra: Arabic renderer in four lines of Perl
 ../fallbacks/rmail/generic
  1. 1993-02-10 Markus Kuhn: Re: transcription iso-8859-1 to us-ascii?
 
+../fallbacks/rmail/guillemets
+ 1. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+ 2. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+
 ../fallbacks/rmail/mnemo
  1. 1995-02-28 Francois Pinard: UUPC
 
 16. 1998-11-10 Alain LaBonté: Ordering standard: to be sent for ballot unless t
 17. 1998-11-10 Alain LaBonté: Ordering standard: to be sent for ballot unless t
 18. 1999-04-29 Alain LaBonté : Re: Thai String Collation
+19. 1999-12-26 Ulrich Drepper: more new code
 
 ../iso/rmail/elot
  1. 1996-08-20 John Clews: Re: Transliteration and ISO
  6. 1999-12-18 Bruno Haible: Re: suggestion ridicule pour recode
  7. 1999-12-18 François Pinard: Re: renseignement concernant "recode"
  8. 1999-12-18 François Pinard: Contre-cotices (:-) dans `test.viqr'
- 9. 1999-12-18 François Pinard: Autres =?iso-8859-1?q?probl=E8mes?= VISCII
-10. 1999-12-18 François Pinard: TCVN
-11. 1999-12-18 François Pinard: VPS
-12. 1999-12-19 Nguyen-Dai Quy: recode & vietnamese
-13. 1999-12-19 François Pinard: Re: recode & vietnamese
+ 9. 1999-12-19 Nguyen-Dai Quy: recode & vietnamese
+10. 1999-12-19 François Pinard: Re: recode & vietnamese
+11. 1999-12-20 Nguyen-Dai Quy: Re: recode & vietnamese
+12. 1999-12-20 Bruno Haible: Re: suggestion ridicule pour recode
+13. 1999-12-20 François Pinard: Re: suggestion ridicule pour recode
+14. 1999-12-21 Nguyen-Dai Quy: recode-3.5a
+15. 1999-12-21 François Pinard: Re: recode-3.5a
+16. 1999-12-22 François Pinard: =?iso-8859-1?q?Probl=E8me?= VNI
+17. 1999-12-21 Nguyen-Dai Quy: bug report for recode-3.5a with vietnamese chars
+18. 1999-12-22 François Pinard: Inconsistance pour le VNI
+19. 1999-12-22 François Pinard: Re: bug report for recode-3.5a with vietnamese
+20. 1999-12-22 Nguyen-Dai Quy: recode-3.5a
+21. 1999-12-22 Nguyen-Dai Quy: recode-3.5a : VIQR..another_charset
+22. 1999-12-22 Nguyen-Dai Quy: Re: =?iso-8859-1?Q?Probl=E8me?= VNI
 
 ../charsets/mule/RMAIL
  1. 1993-08-12 Kenichi Handa: The official release of Mule Ver.1.0 (Patch Level
index 6a80437be2e1b98bb3c444cb5e844b8352567ffb..62c09edec7edea06ecebac1d56f2ba0b61bfe2fb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
+
+       * configure.in: Remove --with-libiconv test.
+       (AC_OUTPUT): Produce libiconv/Makefile.
+       * Makefile.am (SUBDIRS): Add libiconv.
+
+1999-12-24  François Pinard  <pinard@iro.umontreal.ca>
+
+       * configure.in: Version 3.5c.
+\f
+1999-12-20  François Pinard  <pinard@iro.umontreal.ca>
+
+       * configure.in: Version 3.5b.
+
+       * configure.in: Add --with-libiconv.
+       * acconfig.h: Document WITH_LIBICONV.
+
 1999-12-19  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am (BABYL): Adjusted.
@@ -42,7 +59,7 @@
 1999-06-02  François Pinard  <pinard@iro.umontreal.ca>
 
        * configure.in: Version 3.5a.
-\f
+
 1999-05-31  François Pinard  <pinard@iro.umontreal.ca>
 
        * configure.in: Version 3.5.
index 27d8e89cb85a2445da18e81bfdd258e7f81536a7..b88f53ddd96d5120a95f6b5b1b834a7bc5b82020 100644 (file)
@@ -22,7 +22,7 @@ ACLOCAL_AMFLAGS = -I m4
 
 BABYL = ../rmail/* ../*/rmail/* ../*/*/RMAIL ../*/*/rmail/*
 EXTRA_DIST = rebox.el COPYING-LIB
-SUBDIRS = m4 doc lib i18n src tests contrib
+SUBDIRS = m4 doc lib libiconv i18n src tests contrib
 
 POTFILES = src/debug.c src/main.c src/names.c src/outer.c src/recode.c \
 src/request.c src/strip-data.c src/task.c
index 29056b98e66fb7bdde29e03fcda11278e9be357c..d0a71e7c7471d69a22eed5c5d01bd48a3214a453 100644 (file)
@@ -127,7 +127,7 @@ ACLOCAL_AMFLAGS = -I m4
 
 BABYL = ../rmail/* ../*/rmail/* ../*/*/RMAIL ../*/*/rmail/*
 EXTRA_DIST = rebox.el COPYING-LIB
-SUBDIRS = m4 doc lib i18n src tests contrib
+SUBDIRS = m4 doc lib libiconv i18n src tests contrib
 
 POTFILES = src/debug.c src/main.c src/names.c src/outer.c src/recode.c src/request.c src/strip-data.c src/task.c
 
diff --git a/NEWS b/NEWS
index 2a05716b051b8bfbfd1ba0e07f2bedc61901702e..9cc778a3a170bc5f2ab5b9e0b43c027f063dcc90 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,74 @@
 Free recode NEWS - User visible changes.       -*- outline -*- (allout)
 Copyright © 1993, 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
 
-* Version 3.5a - François Pinard, 1999-05.
-
-.* The Texinfo manual has been indexed, thanks to Eli.
-.* Program messages are also available in Greek and Italian.
-.* Vietnamese charsets are supported, but still mostly untested.
+* Version 3.5c - François Pinard, 1999-12.
+
+.* General changes
+. + The Texinfo manual is now indexed, by charset, by concept, etc.
+. + Program messages are also available in Greek and Italian.
+. + Bruno Haible's nice portable iconv library has been integrated.
+
+.* New charsets (most from libiconv)
+
+. + Japanese
+    EUC-JP (CSEUCPKDFMTJAPANESE,
+      EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE);
+    ISO-2022-JP (CSISO2022JP); ISO-2022-JP-1; ISO-2022-JP-2 (CSISO2022JP2);
+    JIS_X0201 (CSHALFWIDTHKATAKANA, JISX0201-1976, JISX0201.1976-0, X0201);
+    JIS_X0208 (JIS0208, JIS_X0208.1983-0, JIS_X0208-1983, JIS_X0208-1990,
+      JIS_X0208.1983-1);
+    JIS_X0212 (CSISO159JISX02121990, ISO-IR-159, JIS_X0212.1990-0,
+      JIS_X0212-1990, X0212);
+    SJIS (CSSHIFTJIS, MS_KANJI, SHIFT-JIS).
+
+. + Chinese
+    BIG5 (BIG-5, BIG-FIVE, BIGFIVE, CSBIG5);
+    EUC-CN (CSGB2312, EUCCN, GB2312); EUC-TW (CSEUCTW, EUCTW);
+    HZ (HZ-GB-2312); ISO-2022-CN (CSISO2022CN); ISO-2022-CN-EXT.
+
+. + Korean
+    JOHAB (CP1361); EUC-KR (CSEUCKR, EUCKR); GBK (CP936);
+    ISO-2022-KR (CSISO2022KR);
+    KSC_5601 (CP949, CSKSC56011987, ISO-IR-149, KOREAN, KSC5601.1987-0,
+      KS_C_5601-1987, KS_C_5601-1989).
+
+. + Vietnamese (independently of libiconv)
+    TCVN; VIQR; VISCII; VNI; VPS.
+
+. + Other languages
+    ARMSCII-8; Georgian-Academy; Georgian-PS; WINDOWS-874 (CP874);
+    MuleLao-1; CP1133 (IBM-CP1133); CP1258 (WINDOWS-1258);
+    TIS-620 (ISO-IR-166, TIS620, TIS620.2529-1, TIS620-0, TIS620.2533-0,
+      TIS620.2533-1).
+
+. + Apple specifics
+    MacArabic; MacCentralEurope; MacCroatian; MacCyrillic; MacGreek;
+    MacHebrew; MacIceland; MacRomania; MacThai; MacTurkish; MacUkraine
+
+. + Unicode
+    JAVA; UCS-2-BE (UNICODEBIG); UCS-2-INTERNAL; UCS-2-LE (UNICODELITTLE);
+    UCS-2-SWAPPED; UCS-4-BE; UCS-4-INTERNAL; UCS-4-LE; UCS-4-SWAPPED
+
+. + Others
+    CP932; CP950; CP866 (866, CSIBM866, IBM866).
+
+. + Recode internal
+    :libiconv: (:)   [so option -x: avoids going through libiconv]
+
+.* New aliases (from libiconv)
+   CSASCII (for ANSI_X3.4-1968); CSHPROMAN8 (for hp-roman8);
+   CSISOLATIN1 (for ISO-8859-1); CSISOLATIN2 (for ISO-8859-2);
+   CSISOLATIN3 (for ISO-8859-3); CSISOLATIN4 (for ISO-8859-4);
+   CSISOLATIN5 (for ISO-8859-9);
+   CSISOLATIN6 and ISO_8859-10:1992 (for ISO-8859-10);
+   CSISOLATINARABIC (for ISO-8859-6); CSISOLATINCYRILLIC (for ISO-8859-5);
+   CSISOLATINGREEK (for ISO-8859-7); CSISOLATINHEBREW (for ISO-8859-8);
+   CSKOI8R (for KOI8-R); CSPC850MULTILINGUAL (for IBM850);
+   CSUCS4 (for ISO-10646-UCS-4); CSUNICODE (for ISO-10646-UCS-2);
+   CSUNICODE11UTF7 (for UNICODE-1-1-UTF-7);
+   CSVISCII and VISCII1.1-1 (for VISCII);
+   ISO-IR-179 (for ISO-8859-13); MACROMAN (for macintosh);
+   TCVN5712-1, TCVN5712-1:1993 and TCVN-5712 (for TCVN).
 
 * Version 3.5 - François Pinard, 1999-05.
 
diff --git a/README b/README
index 643b384ce6c657f8f51ed83d12186914cdbc55eb..0fbf7c2fb85d0c4e2c8f3a0b81c7c45ca91e1f7a 100644 (file)
--- a/README
+++ b/README
@@ -1,14 +1,13 @@
 * README file for `recode'                     allout -*- outline -*-
 
-  Here is version 3.5a for the Free `recode' program and library.  Glance
+  Here is version 3.5c for the Free `recode' program and library.  Glance
   through this `README' file before starting configuration.  Make sure
   you read files `ABOUT-NLS' and `INSTALL' if you are not familiar with
   them already.
 
-  The canonical distribution point for this version is either:
+  The canonical distribution point for this version is:
 
-     http://www.iro.umontreal.ca/contrib/recode/recode-3.5a.tar.gz
-     ftp://ftp.iro.umontreal.ca/pub/recode/recode-3.5a.tar.gz
+     http://www.iro.umontreal.ca/contrib/recode/recode-3.5c.tar.gz
 
   yet the second URL (the FTP one) might disappear one day.  GNU mirrors
   usually hold a copy of non-pretest releases, the canonical distribution
index e4bf36e0b0ef8f19331be6fe435ad809623ba045..bb4dda0ff962d14ae3f1599fd30b9905d7531295 100644 (file)
@@ -1,24 +1,11 @@
 A new pretest for the `recode' program and library is now available as:
 
-   http://www.iro.umontreal.ca/contrib/recode/recode-3.5a.tar.gz
+   http://www.iro.umontreal.ca/contrib/recode/recode-3.5c.tar.gz
 
 This is beta status software.  You are invited to use the mailing list
 mailto:recode-forum@iro.umontreal.ca, but you could also write to me either
 at mailto:recode-bugs@iro.umontreal.ca or mailto:pinard@iro.umontreal.ca.
 
-Most pretesters may skip this pretest, which is more a snapshot to help
-communication with some collaborators on specific matters.  There will
-be other pretests before 3.6 goes out.  A few reported bugs related to
-portability have been addressed.  In this snapshot, many matters are still
-pending.  I usually send a letter to a submitter once his/her report has
-been acted upon, you know if I replied to yours! :-)
-
-This pretest contains many changes in the installation engineering, first
-by using newer Autoconf, Automake, Libtool, Help2man, and such things,
-but also by using an experimental Makefile scheme for `gettext' matters.
-A few internal Perl or awk scripts have been rewritten into Python.
-
-Bugs have been corrected, and especially the following ones:
-- HTML with `-d' was spuriously repeating part of the input into the output.
-- Base64 decoding was uselessly requiring `-f' to complete, in many cases.
-- The validation suite should now work in DJGPP/DOSWIN environments.
+The `libiconv' library, from Bruno Haible, has been integrated within
+`recode', it is not necessary to pre-install it anymore.  Please read the
+`libiconv' node in the Texinfo manual before testing.
diff --git a/THANKS b/THANKS
index d62a2c433aebe29375dee0c6e578023f8332de4b..70b9468a763d0adaf4a81debc1f21294dcc7a4b7 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -1,11 +1,11 @@
-Free recode has originally been written by François Pinard.  Other people
+Free recode has originally been written by Frangois Pinard.  Other people
 contributed to Free recode by reporting problems, suggesting various
 improvements or submitting actual code.  Here is a list of these people.
 Help me keeping it complete and exempt of errors.  See various ChangeLogs
 for a detailed description of contributions.
 
 Akim Demaille          demaille@inf.enst.fr
-Alain Labonté          alb@riq.qc.ca
+Alain Labonti          alb@riq.qc.ca
 Alain Magloire         alainm@macs.ee.mcgill.ca
 Alan J. Flavell                flavell@a5.ph.gla.ac.uk
 Alexander L. Belikoff  abel@vallinor4.com
@@ -57,14 +57,14 @@ Erwan Mas           erwanmas@chez.com
                        http://www.chez.com/erwanmas/
 Farzad Farid
 Florian Oelmaier       100265.2501@compuserve.com
-François Pinard                pinard@iro.umontreal.ca
+Frangois Pinard                pinard@iro.umontreal.ca
                        http://www.iro.umontreal.ca/~pinard
-François Robitaille
-François Yergeau       yergeau@alis.com
+Frangois Robitaille
+Frangois Yergeau       yergeau@alis.com
                        http://www.alis.com/~yergeau/
-Françoise Audebrand    audebran@ere.umontreal.ca
+Frangoise Audebrand    audebran@ere.umontreal.ca
 Frederic Albrecht
-Frère Roy              roy@taize.fr
+Frhre Roy              roy@taize.fr
                        http://www.taize.fr
 Gabriel P. Silva       gpsilva@geocities.com
                        http://www.nce.ufrj.br/~gabriel
@@ -90,7 +90,7 @@ Jim Meyering          meyering@na-net.ornl.gov
 Joelle Stemp
 John van Krieken       John.van.Krieken@ATComputing.nl
                        http://www.ATComputing.nl/images/pasfotos/john.jpg
-Jörg Höhle             Joerg.Hoehle@gmd.de
+Jvrg Hvhle             Joerg.Hoehle@gmd.de
                        http://fit.gmd.de/~hoehle/
 Jose Joao Almeida      jj@di.uminho.pt
                        http://www.di.uminho.pt/~jj
@@ -100,7 +100,7 @@ Juergen Zeller              zet@rupert.franken.de
 Kai Uwe Rommel
 Karl Berry             karl@cs.umb.edu
                        http://www.cs.umb.edu/~karl/
-Keld Jørn Simonsen     keld@dkuug.dk
+Keld Jxrn Simonsen     keld@dkuug.dk
 Kester Habermann       kester@unix-ag.uni-kl.de
                        http://www.unix-ag.uni-kl.de/~kester/
 Kevin Stuckless                kevins@stuck.warped.com
@@ -120,7 +120,7 @@ Marc Verreault
 Mario Gay              mgay@ti-edu.ch
 Markus Kuhn            Markus.Kuhn@cl.cam.ac.uk
                        http://www.cl.cam.ac.uk/~mgk25/
-Martin J. Dürst                duerst@w3.org
+Martin J. D|rst                duerst@w3.org
                        http://www.w3.org/People/D%C3%BCrst
 Martin Maechler                maechler@stat.math.ethz.ch
 Martin Mares           mj@ucw.cz
@@ -137,6 +137,7 @@ Nathanael Makarevitch
 Nathaniel Borenstein   nsb@aa.fv.com
 Neal McBurnett         http://bcn.boulder.co.us/~neal/
 Nguy\8eên-\8eÐai Qu\8eý              daiquy.nguyen@ulg.ac.be
+                       http://iris.rupt.ltas.ulg.ac.be/~quy
 Nicolas Anquetil
 Nicolas Thiery         Nicolas.Thiery@jonas.univ-lyon1.fr
                        http://www.lmd.univ-lyon1.fr/home/nthiery/
index 7789d3851fe60607f5ee83f7a85945f14f0fc3d2..c60c4ee809c7c1bd4fb58dcbdf3ae292c07fdf17 100644 (file)
@@ -37,6 +37,9 @@
 /* Define to the installation directory for locales.  */
 #undef LOCALEDIR
 
+/* Define to 1 when also using Bruno Haible `libiconv' library.  */
+#undef WITH_LIBICONV
+
 /* Define to rpl_malloc if the replacement function should be used.  */
 #undef malloc
 
index 88f61a94e106ed2045938d9220b5c782ca7ed5d4..6f42d5b6557bed1ba8f410f6019b8ca127cbc1f7 100755 (executable)
--- a/configure
+++ b/configure
@@ -714,7 +714,7 @@ fi
 
 PACKAGE=recode
 
-VERSION=3.5a
+VERSION=3.5c
 
 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
   { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
@@ -3677,7 +3677,7 @@ ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
 trap 'rm -fr `echo "Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
-m4/Makefile src/Makefile tests/Makefile tests/atconfig config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+libiconv/Makefile m4/Makefile src/Makefile tests/Makefile tests/atconfig config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -3795,7 +3795,7 @@ EOF
 cat >> $CONFIG_STATUS <<EOF
 
 CONFIG_FILES=\${CONFIG_FILES-"Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
-m4/Makefile src/Makefile tests/Makefile tests/atconfig"}
+libiconv/Makefile m4/Makefile src/Makefile tests/Makefile tests/atconfig"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
index aaf1ca3e04587894b63f6b0c3ce71983638438ed..bd5af30cad01b4fa9209159dd9fbaa826f98881c 100644 (file)
@@ -5,7 +5,7 @@
 AC_INIT(src/recode.c)
 AC_PREREQ(2.12)
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(recode, 3.5a)
+AM_INIT_AUTOMAKE(recode, 3.5c)
 AT_CONFIG(../src)
 ALL_LINGUAS="da de el es fr it nl pl pt sl sv"
 
@@ -60,4 +60,4 @@ LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o /.lo /g;s/\.o$/.lo/'`
 AC_SUBST(LTLIBOBJS)
 
 AC_OUTPUT(Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
-m4/Makefile src/Makefile tests/Makefile tests/atconfig)
+libiconv/Makefile m4/Makefile src/Makefile tests/Makefile tests/atconfig)
index b9002fb3b81fcb279564b56848b6d7a787413d7b..8489994b63bc88ba274abc004da937a84803f673 100644 (file)
@@ -1,3 +1,39 @@
+1999-12-29  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recode.texi (libiconv): Adjust to reflect the merge.
+
+1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
+
+       * tables.py (produce_libiconv): Declare libiconv functions.
+       * Makemore: Use encoding.def from the libiconv/ subdirectory.
+
+1999-12-24  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recode.texi (libiconv): New name for iconv node.
+\f
+1999-12-23  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recode.texi (iconv, Vietnamese): New nodes.
+
+       * Makemore: Change directory to distribution before calling
+       Python, so relative symlinks work better, here.
+
+       * tables.py (Input, Output): New classes, reorganising code.
+
+1999-12-22  François Pinard  <pinard@iro.umontreal.ca>
+
+       * tables.py: Tend to prefer string methods over re methods.
+       (begins): New function.  Use it.
+
+       * Makefile.am, Makemore, tables.py: Make libiconv.h, libiconv.texi
+       and fr-libiconv.texi.  Rename charset.texi to rfc1345.texi.
+
+1999-12-21  François Pinard  <pinard@iro.umontreal.ca>
+
+       * tables.py (produce_texinfo): Avoid colons in index references.
+       Change :NUMBER into (NUMBER).
+       Reported by Eli Zaretskii.
+
 1999-12-19  Eli Zaretskii  <eliz@is.elta.co.il>
 
        * recode.texi: Add index references and print indices for
@@ -32,7 +68,7 @@
 1999-06-17  François Pinard  <pinard@iro.umontreal.ca>
 
        * recode.texi (Top): Use @ifnottex instead of @ifinfo.
-\f
+
 1999-04-27  François Pinard  <pinard@iro.umontreal.ca>
 
        * recode.texi: Do not use od in examples, recode can do it itself.
index 1b91ce098aafdac4d5f96078dcf71fb2b98519a5..557fcfc7ee91eece20e0cfb7bd7f88011c8ddf94 100644 (file)
@@ -19,7 +19,8 @@
 AUTOMAKE_OPTIONS = gnits
 info_TEXINFOS = recode.texi
 
-EXTRA_DIST = charset.texi File-Latin1 help2man Makemore        tables.py
+EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore \
+tables.py
 
-recode.info: charset.texi
-recode.dvi: charset.texi
+recode.info: libiconv.texi rfc1345.texi
+recode.dvi: libiconv.texi rfc1345.texi
index f8c0099f47b44f97c6022e6937ac957d37d0f6c3..dc85dc0b8f5c1a5b1a8ea1f2dba0acc074fe939c 100644 (file)
@@ -124,7 +124,8 @@ l = @l@
 AUTOMAKE_OPTIONS = gnits
 info_TEXINFOS = recode.texi
 
-EXTRA_DIST = charset.texi File-Latin1 help2man Makemore        tables.py
+EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore tables.py
+
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
@@ -376,8 +377,8 @@ mostlyclean-generic distclean-generic clean-generic \
 maintainer-clean-generic clean mostlyclean distclean maintainer-clean
 
 
-recode.info: charset.texi
-recode.dvi: charset.texi
+recode.info: libiconv.texi rfc1345.texi
+recode.dvi: libiconv.texi rfc1345.texi
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index b41a473ead80ea50631d2f795916b1d84220c66e..3547f621459cb4ea0ed90360502f2bffcc2fff42 100644 (file)
@@ -1,5 +1,5 @@
 # Special Makefile for `recode' tables.                        -*- Makefile -*-
-# Copyright © 1997, 1998, 1999 Free Software Foundation, Inc.
+# Copyright © 1997, 1998, 1999 Progiciels Bourbeau-Pinard inc.
 # François Pinard <pinard@iro.umontreal.ca>, 1997.
 
 # This program is free software; you can redistribute it and/or modify
@@ -37,62 +37,79 @@ include Makefile
 ## I do not want to commit myself at maintaining the derivation stuff
 ## at the same level as for the the remainder of `recode'.
 
-MNEMONICS_DS = mnemonic,ds
 CHSET = chset32a
+LIBICONV =
+MAPURL = ftp://ftp.unicode.org/MAPPINGS
+
+MNEMONICS_DS = mnemonic,ds
 ISO10646_DEF = $(CHSET)/iso10646.def
 CHARSETS_DEF = $(CHSET)/charsets.def
+ENCODINGS_DEF = $(top_srcdir)/libiconv/encodings.def
 MNEMONICS_DS = keld-email/mnemonics,ds
 CHARSETS_DEF = keld-email/charsets.def
 NOMS_CARACS = noms_juc_19981216.txt
 
-MAPURL = ftp://ftp.unicode.org/MAPPINGS
 PYTHON = python
 SURF = netscape
 WGET = wget
 
 # Merely add our things to standard `all' goal.
-all: $(srcdir)/charset.texi $(srcdir)/fr-charset.texi \
-$(top_srcdir)/src/charname.h $(top_srcdir)/src/fr-charname.h \
-$(top_srcdir)/src/rfc1345.h
-
-# The next rule, when written:
-#charset.texi pool.c tables.c: ...
+all: $(srcdir)/libiconv.texi $(srcdir)/rfc1345.texi \
+$(srcdir)/fr-libiconv.texi $(srcdir)/fr-rfc1345.texi \
+$(top_srcdir)/src/libiconv.h $(top_srcdir)/src/rfc1345.h \
+$(top_srcdir)/src/charname.h $(top_srcdir)/src/fr-charname.h
+
+doc-check: all
+       -cd $(top_srcdir)/src && diff -u charname.h{-,}
+       -cd $(top_srcdir)/src && diff -u fr-charname.h{-,}
+       -cd $(top_srcdir)/src && diff -u rfc1345.h{-,}
+       -cd $(top_srcdir)/src && diff -u strip-data.c{-,}
+       -cd $(top_srcdir)/src && diff -u strip-pool.c{-,}
+       -cd $(srcdir) && diff -u libiconv.texi{-,}
+       -cd $(srcdir) && diff -u fr-libiconv.texi{-,}
+       -cd $(srcdir) && diff -u rfc1345.texi{-,}
+       -cd $(srcdir) && diff -u fr-rfc1345.texi{-,}
+
+# The next rules, when written, for example:
+#rfc1345.texi pool.c tables.c: ...
 # may launch many parallel occurrences of the action.  This is bad.
 # Any idea, someone?  For now, just list one of them.
 
-$(srcdir)/charset.texi: tables.py $(MNEMONICS_DS) $(CHARSETS_DEF)
-       $(PYTHON) $(srcdir)/tables.py -pt \
-         $(srcdir)/$(MNEMONICS_DS) $(srcdir)/$(CHARSETS_DEF)
-       test $(srcdir) = . || mv charset.texi $@
-       mv strip-pool.c $(top_srcdir)/src/strip-pool.c
-       mv strip-data.c $(top_srcdir)/src/strip-data.c
-
 $(top_srcdir)/src/charname.h: tables.py $(MNEMONICS_DS) rfc1345.txt
-       $(PYTHON) $(srcdir)/tables.py -n \
-         $(srcdir)/$(MNEMONICS_DS) $(srcdir)/rfc1345.txt
-       mv charname.h $@
+       cd $(srcdir) && $(PYTHON) tables.py -n $(MNEMONICS_DS) rfc1345.txt
+       mv $(srcdir)/charname.h $@
+
+$(top_srcdir)/src/fr-charname.h: tables.py $(NOMS_CARACS)
+       cd $(srcdir) && $(PYTHON) tables.py -Fn $(NOMS_CARACS)
+       mv $(srcdir)/fr-charname.h $@
+
+$(top_srcdir)/src/libiconv.h: tables.py $(ENCODINGS_DEF)
+       cd $(srcdir) && $(PYTHON) tables.py -l $(ENCODINGS_DEF)
+       mv $(srcdir)/libiconv.h $@
 
 $(top_srcdir)/src/rfc1345.h: tables.py $(MNEMONICS_DS)
-       $(PYTHON) $(srcdir)/tables.py -m $(srcdir)/$(MNEMONICS_DS)
-       mv rfc1345.h $@
+       cd $(srcdir) && $(PYTHON) tables.py -m $(MNEMONICS_DS)
+       mv $(srcdir)/rfc1345.h $@
 
-$(srcdir)/fr-charset.texi: tables.py $(CHARSETS_DEF)
-       $(PYTHON) $(srcdir)/tables.py -Ft $(srcdir)/$(CHARSETS_DEF)
-       test $(srcdir) = . || mv fr-charset.texi $@
+$(srcdir)/libiconv.texi: tables.py $(ENCODINGS_DEF)
+       cd $(srcdir) && $(PYTHON) tables.py -s $(ENCODINGS_DEF)
 
-$(top_srcdir)/src/fr-charname.h: tables.py $(NOMS_CARACS)
-       $(PYTHON) $(srcdir)/tables.py -Fn $(srcdir)/$(NOMS_CARACS)
-       mv fr-charname.h $@
+$(srcdir)/fr-libiconv.texi: tables.py $(ENCODINGS_DEF)
+       cd $(srcdir) && $(PYTHON) tables.py -Fs $(ENCODINGS_DEF)
+
+$(srcdir)/rfc1345.texi: tables.py $(MNEMONICS_DS) $(CHARSETS_DEF)
+       cd $(srcdir) && $(PYTHON) tables.py -pt $(MNEMONICS_DS) $(CHARSETS_DEF)
+       mv $(srcdir)/strip-pool.c $(top_srcdir)/src/strip-pool.c
+       mv $(srcdir)/strip-data.c $(top_srcdir)/src/strip-data.c
+
+$(srcdir)/fr-rfc1345.texi: tables.py $(CHARSETS_DEF)
+       cd $(srcdir) && $(PYTHON) tables.py -Ft $(CHARSETS_DEF)
 
 # -----------------------------------#
 # External files built into recode.  #
 # -----------------------------------#
 
-$(srcdir)/rfc1345.txt:
-       $(WGET) ftp://nic.ddn.mil/rfc/rfc1345.txt
-       test $(srcdir) = . || mv rfc1345.txt $@
-
-$(srcdir)/$(CHSET)/charsets.def: $(srcdir)/$(CHSET)
+$(srcdir)/$(CHARSET_DEFS): $(srcdir)/$(CHSET)
 
 $(srcdir)/$(CHSET):
        mkdir $@-tmp
@@ -106,6 +123,10 @@ $(srcdir)/mnemonic,ds:
        $(WGET) ftp://dkuug.dk/i18n/WG15-collection/repertoiremaps/mnemonic,ds
        test $(srcdir) = . || mv mnemonic,ds $@
 
+$(srcdir)/rfc1345.txt:
+       $(WGET) ftp://nic.ddn.mil/rfc/rfc1345.txt
+       test $(srcdir) = . || mv rfc1345.txt $@
+
 # -------------------------------------------------#
 # Useful external files, but unbuilt into recode.  #
 # -------------------------------------------------#
diff --git a/doc/libiconv.texi b/doc/libiconv.texi
new file mode 100644 (file)
index 0000000..d53a69c
--- /dev/null
@@ -0,0 +1,522 @@
+
+@itemize @bullet
+@item General character sets
+@table @code
+@item US-ASCII
+@tindex US-ASCII@r{, aliases}
+@tindex ASCII
+@tindex ISO646-US
+@tindex ISO_646.IRV(1991)
+@tindex ISO-IR-6
+@tindex ANSI_X3.4-1968
+@tindex CP367
+@tindex IBM367
+@tindex US
+@tindex CSASCII
+@code{ASCII}, @code{ISO646-US}, @code{ISO_646.IRV:1991}, @code{ISO-IR-6}, @code{ANSI_X3.4-1968}, @code{CP367}, @code{IBM367}, @code{US} and @code{CSASCII} are aliases for this charset.
+@end table
+
+@item General multi-byte encodings
+@table @code
+@item UTF-8
+@tindex UTF-8
+
+@item UCS-2
+@tindex UCS-2@r{, aliases}
+@tindex ISO-10646-UCS-2
+@tindex CSUNICODE
+@code{ISO-10646-UCS-2} and @code{CSUNICODE} are aliases for this charset.
+
+@item UCS-4
+@tindex UCS-4@r{, aliases}
+@tindex ISO-10646-UCS-4
+@tindex CSUCS4
+@code{ISO-10646-UCS-4} and @code{CSUCS4} are aliases for this charset.
+
+@item UTF-16
+@tindex UTF-16
+
+@item UTF-7
+@tindex UTF-7@r{, aliases}
+@tindex UNICODE-1-1-UTF-7
+@tindex CSUNICODE11UTF7
+@code{UNICODE-1-1-UTF-7} and @code{CSUNICODE11UTF7} are aliases for this charset.
+
+@item UCS-2-INTERNAL
+@tindex UCS-2-INTERNAL
+
+@item UCS-2-SWAPPED
+@tindex UCS-2-SWAPPED
+
+@item UCS-2-BE
+@tindex UCS-2-BE@r{, aliases}
+@tindex UNICODEBIG
+@code{UNICODEBIG} is an alias for this charset.
+
+@item UCS-2-LE
+@tindex UCS-2-LE@r{, aliases}
+@tindex UNICODELITTLE
+@code{UNICODELITTLE} is an alias for this charset.
+
+@item UCS-4-INTERNAL
+@tindex UCS-4-INTERNAL
+
+@item UCS-4-SWAPPED
+@tindex UCS-4-SWAPPED
+
+@item UCS-4-BE
+@tindex UCS-4-BE
+
+@item UCS-4-LE
+@tindex UCS-4-LE
+
+@item JAVA
+@tindex JAVA
+@end table
+
+@item Standard 8-bit encodings
+@table @code
+@item ISO-8859-1
+@tindex ISO-8859-1@r{, aliases}
+@tindex ISO_8859-1
+@tindex ISO_8859-1(1987)
+@tindex ISO-IR-100
+@tindex CP819
+@tindex IBM819
+@tindex LATIN1
+@tindex L1
+@tindex CSISOLATIN1
+@code{ISO_8859-1}, @code{ISO_8859-1:1987}, @code{ISO-IR-100}, @code{CP819}, @code{IBM819}, @code{LATIN1}, @code{L1} and @code{CSISOLATIN1} are aliases for this charset.
+
+@item ISO-8859-2
+@tindex ISO-8859-2@r{, aliases}
+@tindex ISO_8859-2
+@tindex ISO_8859-2(1987)
+@tindex ISO-IR-101
+@tindex LATIN2
+@tindex L2
+@tindex CSISOLATIN2
+@code{ISO_8859-2}, @code{ISO_8859-2:1987}, @code{ISO-IR-101}, @code{LATIN2}, @code{L2} and @code{CSISOLATIN2} are aliases for this charset.
+
+@item ISO-8859-3
+@tindex ISO-8859-3@r{, aliases}
+@tindex ISO_8859-3
+@tindex ISO_8859-3(1988)
+@tindex ISO-IR-109
+@tindex LATIN3
+@tindex L3
+@tindex CSISOLATIN3
+@code{ISO_8859-3}, @code{ISO_8859-3:1988}, @code{ISO-IR-109}, @code{LATIN3}, @code{L3} and @code{CSISOLATIN3} are aliases for this charset.
+
+@item ISO-8859-4
+@tindex ISO-8859-4@r{, aliases}
+@tindex ISO_8859-4
+@tindex ISO_8859-4(1988)
+@tindex ISO-IR-110
+@tindex LATIN4
+@tindex L4
+@tindex CSISOLATIN4
+@code{ISO_8859-4}, @code{ISO_8859-4:1988}, @code{ISO-IR-110}, @code{LATIN4}, @code{L4} and @code{CSISOLATIN4} are aliases for this charset.
+
+@item ISO-8859-5
+@tindex ISO-8859-5@r{, aliases}
+@tindex ISO_8859-5
+@tindex ISO_8859-5(1988)
+@tindex ISO-IR-144
+@tindex CYRILLIC
+@tindex CSISOLATINCYRILLIC
+@code{ISO_8859-5}, @code{ISO_8859-5:1988}, @code{ISO-IR-144}, @code{CYRILLIC} and @code{CSISOLATINCYRILLIC} are aliases for this charset.
+
+@item ISO-8859-6
+@tindex ISO-8859-6@r{, aliases}
+@tindex ISO_8859-6
+@tindex ISO_8859-6(1987)
+@tindex ISO-IR-127
+@tindex ECMA-114
+@tindex ASMO-708
+@tindex ARABIC
+@tindex CSISOLATINARABIC
+@code{ISO_8859-6}, @code{ISO_8859-6:1987}, @code{ISO-IR-127}, @code{ECMA-114}, @code{ASMO-708}, @code{ARABIC} and @code{CSISOLATINARABIC} are aliases for this charset.
+
+@item ISO-8859-7
+@tindex ISO-8859-7@r{, aliases}
+@tindex ISO_8859-7
+@tindex ISO_8859-7(1987)
+@tindex ISO-IR-126
+@tindex ECMA-118
+@tindex ELOT_928
+@tindex GREEK8
+@tindex GREEK
+@tindex CSISOLATINGREEK
+@code{ISO_8859-7}, @code{ISO_8859-7:1987}, @code{ISO-IR-126}, @code{ECMA-118}, @code{ELOT_928}, @code{GREEK8}, @code{GREEK} and @code{CSISOLATINGREEK} are aliases for this charset.
+
+@item ISO-8859-8
+@tindex ISO-8859-8@r{, aliases}
+@tindex ISO_8859-8
+@tindex ISO_8859-8(1988)
+@tindex ISO-IR-138
+@tindex HEBREW
+@tindex CSISOLATINHEBREW
+@code{ISO_8859-8}, @code{ISO_8859-8:1988}, @code{ISO-IR-138}, @code{HEBREW} and @code{CSISOLATINHEBREW} are aliases for this charset.
+
+@item ISO-8859-9
+@tindex ISO-8859-9@r{, aliases}
+@tindex ISO_8859-9
+@tindex ISO_8859-9(1989)
+@tindex ISO-IR-148
+@tindex LATIN5
+@tindex L5
+@tindex CSISOLATIN5
+@code{ISO_8859-9}, @code{ISO_8859-9:1989}, @code{ISO-IR-148}, @code{LATIN5}, @code{L5} and @code{CSISOLATIN5} are aliases for this charset.
+
+@item ISO-8859-10
+@tindex ISO-8859-10@r{, aliases}
+@tindex ISO_8859-10
+@tindex ISO_8859-10(1992)
+@tindex ISO-IR-157
+@tindex LATIN6
+@tindex L6
+@tindex CSISOLATIN6
+@code{ISO_8859-10}, @code{ISO_8859-10:1992}, @code{ISO-IR-157}, @code{LATIN6}, @code{L6} and @code{CSISOLATIN6} are aliases for this charset.
+
+@item ISO-8859-13
+@tindex ISO-8859-13@r{, aliases}
+@tindex ISO_8859-13
+@tindex ISO-IR-179
+@tindex LATIN7
+@tindex L7
+@code{ISO_8859-13}, @code{ISO-IR-179}, @code{LATIN7} and @code{L7} are aliases for this charset.
+
+@item ISO-8859-14
+@tindex ISO-8859-14@r{, aliases}
+@tindex ISO_8859-14
+@tindex ISO_8859-14(1998)
+@tindex LATIN8
+@tindex L8
+@code{ISO_8859-14}, @code{ISO_8859-14:1998}, @code{LATIN8} and @code{L8} are aliases for this charset.
+
+@item ISO-8859-15
+@tindex ISO-8859-15@r{, aliases}
+@tindex ISO_8859-15
+@tindex ISO_8859-15(1998)
+@code{ISO_8859-15} and @code{ISO_8859-15:1998} are aliases for this charset.
+
+@item KOI8-R
+@tindex KOI8-R@r{, aliases}
+@tindex CSKOI8R
+@code{CSKOI8R} is an alias for this charset.
+
+@item KOI8-U
+@tindex KOI8-U
+
+@item KOI8-RU
+@tindex KOI8-RU
+@end table
+
+@item Windows 8-bit encodings
+@table @code
+@item CP1250
+@tindex CP1250@r{, aliases}
+@tindex WINDOWS-1250
+@tindex MS-EE
+@code{WINDOWS-1250} and @code{MS-EE} are aliases for this charset.
+
+@item CP1251
+@tindex CP1251@r{, aliases}
+@tindex WINDOWS-1251
+@tindex MS-CYRL
+@code{WINDOWS-1251} and @code{MS-CYRL} are aliases for this charset.
+
+@item CP1252
+@tindex CP1252@r{, aliases}
+@tindex WINDOWS-1252
+@tindex MS-ANSI
+@code{WINDOWS-1252} and @code{MS-ANSI} are aliases for this charset.
+
+@item CP1253
+@tindex CP1253@r{, aliases}
+@tindex WINDOWS-1253
+@tindex MS-GREEK
+@code{WINDOWS-1253} and @code{MS-GREEK} are aliases for this charset.
+
+@item CP1254
+@tindex CP1254@r{, aliases}
+@tindex WINDOWS-1254
+@tindex MS-TURK
+@code{WINDOWS-1254} and @code{MS-TURK} are aliases for this charset.
+
+@item CP1255
+@tindex CP1255@r{, aliases}
+@tindex WINDOWS-1255
+@tindex MS-HEBR
+@code{WINDOWS-1255} and @code{MS-HEBR} are aliases for this charset.
+
+@item CP1256
+@tindex CP1256@r{, aliases}
+@tindex WINDOWS-1256
+@tindex MS-ARAB
+@code{WINDOWS-1256} and @code{MS-ARAB} are aliases for this charset.
+
+@item CP1257
+@tindex CP1257@r{, aliases}
+@tindex WINDOWS-1257
+@tindex WINBALTRIM
+@code{WINDOWS-1257} and @code{WINBALTRIM} are aliases for this charset.
+
+@item CP1258
+@tindex CP1258@r{, aliases}
+@tindex WINDOWS-1258
+@code{WINDOWS-1258} is an alias for this charset.
+@end table
+
+@item DOS 8-bit encodings
+@table @code
+@item CP850
+@tindex CP850@r{, aliases}
+@tindex IBM850
+@tindex 850
+@tindex CSPC850MULTILINGUAL
+@code{IBM850}, @code{850} and @code{CSPC850MULTILINGUAL} are aliases for this charset.
+
+@item CP866
+@tindex CP866@r{, aliases}
+@tindex IBM866
+@tindex 866
+@tindex CSIBM866
+@code{IBM866}, @code{866} and @code{CSIBM866} are aliases for this charset.
+@end table
+
+@item Macintosh 8-bit encodings
+@table @code
+@item MacRoman
+@tindex MacRoman@r{, aliases}
+@tindex Macintosh
+@code{Macintosh} is an alias for this charset.
+
+@item MacCentralEurope
+@tindex MacCentralEurope
+
+@item MacIceland
+@tindex MacIceland
+
+@item MacCroatian
+@tindex MacCroatian
+
+@item MacRomania
+@tindex MacRomania
+
+@item MacCyrillic
+@tindex MacCyrillic
+
+@item MacUkraine
+@tindex MacUkraine
+
+@item MacGreek
+@tindex MacGreek
+
+@item MacTurkish
+@tindex MacTurkish
+
+@item MacHebrew
+@tindex MacHebrew
+
+@item MacArabic
+@tindex MacArabic
+
+@item MacThai
+@tindex MacThai
+@end table
+
+@item Other platform specific 8-bit encodings
+@table @code
+@item HP-ROMAN8
+@tindex HP-ROMAN8@r{, aliases}
+@tindex ROMAN8
+@tindex R8
+@tindex CSHPROMAN8
+@code{ROMAN8}, @code{R8} and @code{CSHPROMAN8} are aliases for this charset.
+
+@item NEXTSTEP
+@tindex NEXTSTEP
+@end table
+
+@item Regional 8-bit encodings used for a single language
+@table @code
+@item ARMSCII-8
+@tindex ARMSCII-8
+
+@item Georgian-Academy
+@tindex Georgian-Academy
+
+@item Georgian-PS
+@tindex Georgian-PS
+
+@item MuleLao-1
+@tindex MuleLao-1
+
+@item CP1133
+@tindex CP1133@r{, aliases}
+@tindex IBM-CP1133
+@code{IBM-CP1133} is an alias for this charset.
+
+@item TIS-620
+@tindex TIS-620@r{, aliases}
+@tindex TIS620
+@tindex TIS620-0
+@tindex TIS620.2529-1
+@tindex TIS620.2533-0
+@tindex TIS620.2533-1
+@tindex ISO-IR-166
+@code{TIS620}, @code{TIS620-0}, @code{TIS620.2529-1}, @code{TIS620.2533-0}, @code{TIS620.2533-1} and @code{ISO-IR-166} are aliases for this charset.
+
+@item CP874
+@tindex CP874@r{, aliases}
+@tindex WINDOWS-874
+@code{WINDOWS-874} is an alias for this charset.
+
+@item VISCII
+@tindex VISCII@r{, aliases}
+@tindex VISCII1.1-1
+@tindex CSVISCII
+@code{VISCII1.1-1} and @code{CSVISCII} are aliases for this charset.
+
+@item TCVN
+@tindex TCVN@r{, aliases}
+@tindex TCVN-5712
+@tindex TCVN5712-1
+@tindex TCVN5712-1(1993)
+@code{TCVN-5712}, @code{TCVN5712-1} and @code{TCVN5712-1:1993} are aliases for this charset.
+@end table
+
+@item CJK character sets
+@table @code
+@item JIS_X0201
+@tindex JIS_X0201@r{, aliases}
+@tindex JISX0201-1976
+@tindex JISX0201.1976-0
+@tindex X0201
+@tindex CSHALFWIDTHKATAKANA
+@code{JISX0201-1976}, @code{JISX0201.1976-0}, @code{X0201} and @code{CSHALFWIDTHKATAKANA} are aliases for this charset.
+
+@item JIS_X0208
+@tindex JIS_X0208@r{, aliases}
+@tindex JIS_X0208.1983-0
+@tindex JIS_X0208.1983-1
+@tindex JIS_X0208-1983
+@tindex JIS_X0208-1990
+@tindex JIS0208
+@code{JIS_X0208.1983-0}, @code{JIS_X0208.1983-1}, @code{JIS_X0208-1983}, @code{JIS_X0208-1990} and @code{JIS0208} are aliases for this charset.
+
+@item JIS_X0212
+@tindex JIS_X0212@r{, aliases}
+@tindex JIS_X0212.1990-0
+@tindex JIS_X0212-1990
+@tindex X0212
+@tindex ISO-IR-159
+@tindex CSISO159JISX02121990
+@code{JIS_X0212.1990-0}, @code{JIS_X0212-1990}, @code{X0212}, @code{ISO-IR-159} and @code{CSISO159JISX02121990} are aliases for this charset.
+
+@item KSC_5601
+@tindex KSC_5601@r{, aliases}
+@tindex KSC5601.1987-0
+@tindex KS_C_5601-1987
+@tindex KS_C_5601-1989
+@tindex ISO-IR-149
+@tindex CSKSC56011987
+@tindex KOREAN
+@tindex CP949
+@code{KSC5601.1987-0}, @code{KS_C_5601-1987}, @code{KS_C_5601-1989}, @code{ISO-IR-149}, @code{CSKSC56011987}, @code{KOREAN} and @code{CP949} are aliases for this charset.
+@end table
+
+@item CJK encodings
+@table @code
+@item EUC-JP
+@tindex EUC-JP@r{, aliases}
+@tindex EUCJP
+@tindex EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE
+@tindex CSEUCPKDFMTJAPANESE
+@code{EUCJP}, @code{EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE} and @code{CSEUCPKDFMTJAPANESE} are aliases for this charset.
+
+@item SJIS
+@tindex SJIS@r{, aliases}
+@tindex SHIFT_JIS
+@tindex SHIFT-JIS
+@tindex MS_KANJI
+@tindex CSSHIFTJIS
+@code{SHIFT_JIS}, @code{SHIFT-JIS}, @code{MS_KANJI} and @code{CSSHIFTJIS} are aliases for this charset.
+
+@item CP932
+@tindex CP932
+
+@item ISO-2022-JP
+@tindex ISO-2022-JP@r{, aliases}
+@tindex CSISO2022JP
+@code{CSISO2022JP} is an alias for this charset.
+
+@item ISO-2022-JP-1
+@tindex ISO-2022-JP-1
+
+@item ISO-2022-JP-2
+@tindex ISO-2022-JP-2@r{, aliases}
+@tindex CSISO2022JP2
+@code{CSISO2022JP2} is an alias for this charset.
+
+@item EUC-CN
+@tindex EUC-CN@r{, aliases}
+@tindex EUCCN
+@tindex GB2312
+@tindex CSGB2312
+@code{EUCCN}, @code{GB2312} and @code{CSGB2312} are aliases for this charset.
+
+@item GBK
+@tindex GBK@r{, aliases}
+@tindex CP936
+@code{CP936} is an alias for this charset.
+
+@item ISO-2022-CN
+@tindex ISO-2022-CN@r{, aliases}
+@tindex CSISO2022CN
+@code{CSISO2022CN} is an alias for this charset.
+
+@item ISO-2022-CN-EXT
+@tindex ISO-2022-CN-EXT
+
+@item HZ
+@tindex HZ@r{, aliases}
+@tindex HZ-GB-2312
+@code{HZ-GB-2312} is an alias for this charset.
+
+@item EUC-TW
+@tindex EUC-TW@r{, aliases}
+@tindex EUCTW
+@tindex CSEUCTW
+@code{EUCTW} and @code{CSEUCTW} are aliases for this charset.
+
+@item BIG5
+@tindex BIG5@r{, aliases}
+@tindex BIG-5
+@tindex BIG-FIVE
+@tindex BIGFIVE
+@tindex CSBIG5
+@code{BIG-5}, @code{BIG-FIVE}, @code{BIGFIVE} and @code{CSBIG5} are aliases for this charset.
+
+@item CP950
+@tindex CP950
+
+@item EUC-KR
+@tindex EUC-KR@r{, aliases}
+@tindex EUCKR
+@tindex CSEUCKR
+@code{EUCKR} and @code{CSEUCKR} are aliases for this charset.
+
+@item JOHAB
+@tindex JOHAB@r{, aliases}
+@tindex CP1361
+@code{CP1361} is an alias for this charset.
+
+@item ISO-2022-KR
+@tindex ISO-2022-KR@r{, aliases}
+@tindex CSISO2022KR
+@code{CSISO2022KR} is an alias for this charset.
+@end table
+@end itemize
index 1a3741394269e8f2ecfca8e4b917cb6f46b93556..020a4863ed7d7e861e4e454c1fb3c25e67fed639 100644 (file)
@@ -29,101 +29,103 @@ translation approved by the Foundation.
 \1f
 Indirect:
 recode.info-1: 1116
-recode.info-2: 50290
-recode.info-3: 98137
-recode.info-4: 146382
-recode.info-5: 191635
-recode.info-6: 215602
+recode.info-2: 50387
+recode.info-3: 98235
+recode.info-4: 147725
+recode.info-5: 197615
+recode.info-6: 227114
 \1f
 Tag Table:
 (Indirect)
 Node: Top\7f1116
-Node: Tutorial\7f5239
-Node: Introduction\7f9475
-Node: Charset overview\7f13501
-Node: Surface overview\7f14721
-Node: Contributing\7f16188
-Ref: Contributing-Footnote-1\7f18438
-Node: Invoking recode\7f18572
-Node: Synopsis\7f19479
-Ref: Synopsis-Footnote-1\7f21923
-Node: Requests\7f22222
-Ref: Requests-Footnote-1\7f28203
-Ref: Requests-Footnote-2\7f28270
-Ref: Requests-Footnote-3\7f28448
-Node: Listings\7f28907
-Node: Recoding\7f38826
-Node: Reversibility\7f41646
-Ref: Reversibility-Footnote-1\7f50153
-Node: Sequencing\7f50290
-Node: Mixed\7f52731
-Node: Emacs\7f56119
-Node: Library\7f57080
-Node: Outer level\7f58433
-Node: Request level\7f63958
-Node: Task level\7f74450
-Node: Charset level\7f84893
-Node: Errors\7f85730
-Ref: Errors-Footnote-1\7f90588
-Ref: Errors-Footnote-2\7f90702
-Node: Universal\7f91063
-Ref: Universal-Footnote-1\7f94198
-Ref: Universal-Footnote-2\7f94266
-Node: UCS-2\7f94479
-Node: UCS-4\7f97008
-Node: UTF-7\7f97545
-Node: UTF-8\7f98137
-Node: UTF-16\7f102439
-Node: count-characters\7f103584
-Node: dump-with-names\7f104252
-Node: Tabular\7f106805
-Node: ASCII misc\7f128867
-Node: ASCII\7f129229
-Node: ISO 8859\7f130045
-Node: ASCII-BS\7f132339
-Node: flat\7f134173
-Node: IBM and MS\7f134841
-Node: EBCDIC\7f135413
-Node: IBM-PC\7f137522
-Ref: IBM-PC-Footnote-1\7f139648
-Node: Icon-QNX\7f139806
-Node: CDC\7f140228
-Node: Display Code\7f141929
-Ref: Display Code-Footnote-1\7f144220
-Node: CDC-NOS\7f144425
-Node: Bang-Bang\7f146382
-Node: Micros\7f148306
-Node: Apple-Mac\7f148688
-Node: AtariST\7f150736
-Node: Miscellaneous\7f151719
-Node: HTML\7f152469
-Node: LaTeX\7f156707
-Node: Texinfo\7f157476
-Node: African\7f158246
-Node: Cyrillic\7f159594
-Node: Texte\7f161001
-Ref: Texte-Footnote-1\7f165560
-Ref: Texte-Footnote-2\7f165640
-Ref: Texte-Footnote-3\7f166115
-Node: Mule\7f166212
-Ref: Mule-Footnote-1\7f168001
-Node: Surfaces\7f168520
-Ref: Surfaces-Footnote-1\7f170933
-Node: Permutations\7f171039
-Node: End lines\7f171877
-Node: MIME\7f174077
-Node: Dump\7f175261
-Node: Debugging\7f179453
-Node: Internals\7f181908
-Node: Main flow\7f183144
-Ref: Main flow-Footnote-1\7f186304
-Node: New charsets\7f186409
-Node: New surfaces\7f190944
-Node: Design\7f191635
-Ref: Design-Footnote-1\7f200858
-Node: Concept Index\7f200962
-Node: Option Index\7f210094
-Node: Library Index\7f212175
-Node: Charset and Surface Index\7f215602
+Node: Tutorial\7f5336
+Node: Introduction\7f9572
+Node: Charset overview\7f13598
+Node: Surface overview\7f14818
+Node: Contributing\7f16285
+Ref: Contributing-Footnote-1\7f18535
+Node: Invoking recode\7f18669
+Node: Synopsis\7f19576
+Ref: Synopsis-Footnote-1\7f22020
+Node: Requests\7f22319
+Ref: Requests-Footnote-1\7f28300
+Ref: Requests-Footnote-2\7f28367
+Ref: Requests-Footnote-3\7f28545
+Node: Listings\7f29004
+Node: Recoding\7f38923
+Node: Reversibility\7f41743
+Ref: Reversibility-Footnote-1\7f50250
+Node: Sequencing\7f50387
+Node: Mixed\7f52828
+Node: Emacs\7f56216
+Node: Library\7f57177
+Node: Outer level\7f58530
+Node: Request level\7f64055
+Node: Task level\7f74547
+Node: Charset level\7f84990
+Node: Errors\7f85827
+Ref: Errors-Footnote-1\7f90685
+Ref: Errors-Footnote-2\7f90799
+Node: Universal\7f91160
+Ref: Universal-Footnote-1\7f94296
+Ref: Universal-Footnote-2\7f94364
+Node: UCS-2\7f94577
+Node: UCS-4\7f97106
+Node: UTF-7\7f97643
+Node: UTF-8\7f98235
+Node: UTF-16\7f102537
+Node: count-characters\7f103682
+Node: dump-with-names\7f104350
+Node: libiconv\7f106903
+Node: Tabular\7f117009
+Node: ASCII misc\7f139070
+Node: ASCII\7f139432
+Node: ISO 8859\7f140248
+Node: ASCII-BS\7f142542
+Node: flat\7f144376
+Node: IBM and MS\7f145044
+Node: EBCDIC\7f145616
+Node: IBM-PC\7f147725
+Ref: IBM-PC-Footnote-1\7f149851
+Node: Icon-QNX\7f150009
+Node: CDC\7f150431
+Node: Display Code\7f152132
+Ref: Display Code-Footnote-1\7f154423
+Node: CDC-NOS\7f154628
+Node: Bang-Bang\7f156585
+Node: Micros\7f158509
+Node: Apple-Mac\7f158891
+Node: AtariST\7f160939
+Node: Miscellaneous\7f161922
+Node: HTML\7f162656
+Node: LaTeX\7f166894
+Node: Texinfo\7f167663
+Node: Vietnamese\7f168436
+Node: African\7f169409
+Node: Others\7f170758
+Node: Texte\7f172209
+Ref: Texte-Footnote-1\7f176766
+Ref: Texte-Footnote-2\7f176846
+Ref: Texte-Footnote-3\7f177321
+Node: Mule\7f177418
+Ref: Mule-Footnote-1\7f179207
+Node: Surfaces\7f179726
+Ref: Surfaces-Footnote-1\7f182139
+Node: Permutations\7f182245
+Node: End lines\7f183083
+Node: MIME\7f185283
+Node: Dump\7f186467
+Node: Debugging\7f190659
+Node: Internals\7f193114
+Node: Main flow\7f194350
+Ref: Main flow-Footnote-1\7f197510
+Node: New charsets\7f197615
+Node: New surfaces\7f202150
+Node: Design\7f202841
+Ref: Design-Footnote-1\7f212064
+Node: Concept Index\7f212168
+Node: Option Index\7f221606
+Node: Library Index\7f223687
+Node: Charset and Surface Index\7f227114
 \1f
 End Tag Table
index 118939cc69271e7e686c541ca8975bea3c4fee56..251e242627a990d562031f65b1791e9cb079977a 100644 (file)
@@ -40,7 +40,7 @@ and is able to convert files between almost any pair.  Most RFC 1345
 character sets are supported.  The `recode' program is a handy
 front-end to the library.
 
-   The current `recode' release is 3.5a.
+   The current `recode' release is 3.5c.
 
 * Menu:
 
@@ -49,6 +49,7 @@ front-end to the library.
 * Invoking recode::     How to use this program
 * Library::             A recoding library
 * Universal::           The universal charset
+* libiconv::            The `iconv' library
 * Tabular::             Tabular sources (RFC 1345)
 * ASCII misc::          ASCII and some derivatives
 * IBM and MS::          Some IBM or Microsoft charsets
@@ -62,7 +63,6 @@ front-end to the library.
 * Library Index::
 * Charset and Surface Index::
 
-
  --- The Detailed Node Listing ---
 
 Terminology and purpose
@@ -129,8 +129,9 @@ Various other charsets
 * HTML::                World Wide Web representations
 * LaTeX::               LaTeX macro calls
 * Texinfo::             GNU project documentation files
+* Vietnamese::          Vietnamese charsets
 * African::             African charsets
-* Cyrillic::            Cyrillic charsets
+* Others::              Cyrillic and other charsets
 * Texte::               Easy French conventions
 * Mule::                Mule as a multiplexed charset
 
index 8bc0ced1cb27d86efd8d7b62dfe064294a9590ca..057ee5c6b10a47e687aef757aca572f39bd1db2e 100644 (file)
@@ -958,7 +958,7 @@ interesting to maintain counters about how many times each kind of
 error occurred.
 
 \1f
-File: recode.info,  Node: Universal,  Next: Tabular,  Prev: Library,  Up: Top
+File: recode.info,  Node: Universal,  Next: libiconv,  Prev: Library,  Up: Top
 
 The universal charset
 *********************
index 57bd8eb066964fe66a2d3cb37d97d0685a3204fb..e9f13d1b9efd50d390acbc832b6cd02c380edde5 100644 (file)
@@ -221,7 +221,334 @@ lines.
      echo -n 0x03C6 | recode u2/x2..dump | tail +3
 
 \1f
-File: recode.info,  Node: Tabular,  Next: ASCII misc,  Prev: Universal,  Up: Top
+File: recode.info,  Node: libiconv,  Next: Tabular,  Prev: Universal,  Up: Top
+
+The `iconv' library
+*******************
+
+   The `recode' library itself contains most code and tables from the
+portable `iconv' library, written by Bruno Haible.  In fact, many
+capabilities of the `recode' library are duplicated because of this
+merging, as the older `recode' and `iconv' libraries share many
+charsets.  We discuss, here, the issues related to this duplication, and
+other peculiarities specific to the `iconv' library.  The plan is to
+remove duplications and better merge specificities, as `recode' evolves.
+
+   As implemented, if a recoding request can be satisfied by the
+`recode' library both with and without its `iconv' library part, it is
+likely that the `iconv' library will be used.  To sort out if the
+`iconv' is indeed used of not, just use the `-v' or `--verbose' option,
+*note Recoding::.
+
+   The `:libiconv:' charset represents a conceptual pivot charset
+within the `iconv' part of the `recode' library (in fact, this pivot
+exists, but is not directly reachable).  This charset has a mere `:' (a
+colon) for an alias.  It is not allowed to recode from or to this
+charset directly.  But when this charset is selected as an
+intermediate, usually by automatic means, then the `iconv' part of the
+`recode' library is called to handle the transformations.  By using an
+`--ignore=:libiconv:' option on the `recode' call or equivalently, but
+more simply, `-x:', `recode' is instructed to fully avoid this charset
+as an intermediate, with the consequence that the `iconv' part of the
+library is defeated.  Consider these two calls:
+
+     recode l1..1250 < INPUT > OUTPUT
+     recode -x: l1..1250 < INPUT > OUTPUT
+
+Both should transform INPUT from `ISO-8859-1' to `CP1250' on OUTPUT.
+The first call uses the `iconv' part of the library, while the second
+call avoids it.  Whatever the path used, the results should normally be
+identical.  However, there might be observable differences.  Most of
+them might result from reversibility issues, as the `iconv' engine,
+which the `recode' library directly uses for the time being, does not
+address reversibility.  Even if much less likely, some differences
+might result from slight errors in the tables used, such differences
+should then be reported as bugs.
+
+   Other irregularities might be seen in the area of error detection and
+recovery.  The `recode' library usually tries to detect canonicity
+errors in input, and production of ambiguous output, but the `iconv'
+part of the library currently does not.  Input is always validated,
+however.  The `recode' library may not always react properly when its
+`iconv' part has no translation for a given character.
+
+   Within a collection of names for a single charset, the `recode'
+library distinguishes one of them as being the genuine charset name,
+while the others are said to be aliases.  When `recode' lists all
+charsets, for example with the `-l' or `--list' option, the list
+integrates all `iconv' library charsets.  The selection of one of the
+aliases as the genuine charset name is an artifact added by `recode',
+it does not come from `iconv'.  Moreover, the `recode' library
+dynamically resolves some conflicts when it initialises itself at
+runtime.  This might explain some discrepancies in the table below, as
+for what is the genuine charset name.
+
+   * General character sets
+    `US-ASCII'
+          `ASCII', `ISO646-US', `ISO_646.IRV:1991', `ISO-IR-6',
+          `ANSI_X3.4-1968', `CP367', `IBM367', `US' and `CSASCII' are
+          aliases for this charset.
+
+   * General multi-byte encodings
+    `UTF-8'
+
+    `UCS-2'
+          `ISO-10646-UCS-2' and `CSUNICODE' are aliases for this
+          charset.
+
+    `UCS-4'
+          `ISO-10646-UCS-4' and `CSUCS4' are aliases for this charset.
+
+    `UTF-16'
+
+    `UTF-7'
+          `UNICODE-1-1-UTF-7' and `CSUNICODE11UTF7' are aliases for
+          this charset.
+
+    `UCS-2-INTERNAL'
+
+    `UCS-2-SWAPPED'
+
+    `UCS-2-BE'
+          `UNICODEBIG' is an alias for this charset.
+
+    `UCS-2-LE'
+          `UNICODELITTLE' is an alias for this charset.
+
+    `UCS-4-INTERNAL'
+
+    `UCS-4-SWAPPED'
+
+    `UCS-4-BE'
+
+    `UCS-4-LE'
+
+    `JAVA'
+   * Standard 8-bit encodings
+    `ISO-8859-1'
+          `ISO_8859-1', `ISO_8859-1:1987', `ISO-IR-100', `CP819',
+          `IBM819', `LATIN1', `L1' and `CSISOLATIN1' are aliases for
+          this charset.
+
+    `ISO-8859-2'
+          `ISO_8859-2', `ISO_8859-2:1987', `ISO-IR-101', `LATIN2', `L2'
+          and `CSISOLATIN2' are aliases for this charset.
+
+    `ISO-8859-3'
+          `ISO_8859-3', `ISO_8859-3:1988', `ISO-IR-109', `LATIN3', `L3'
+          and `CSISOLATIN3' are aliases for this charset.
+
+    `ISO-8859-4'
+          `ISO_8859-4', `ISO_8859-4:1988', `ISO-IR-110', `LATIN4', `L4'
+          and `CSISOLATIN4' are aliases for this charset.
+
+    `ISO-8859-5'
+          `ISO_8859-5', `ISO_8859-5:1988', `ISO-IR-144', `CYRILLIC' and
+          `CSISOLATINCYRILLIC' are aliases for this charset.
+
+    `ISO-8859-6'
+          `ISO_8859-6', `ISO_8859-6:1987', `ISO-IR-127', `ECMA-114',
+          `ASMO-708', `ARABIC' and `CSISOLATINARABIC' are aliases for
+          this charset.
+
+    `ISO-8859-7'
+          `ISO_8859-7', `ISO_8859-7:1987', `ISO-IR-126', `ECMA-118',
+          `ELOT_928', `GREEK8', `GREEK' and `CSISOLATINGREEK' are
+          aliases for this charset.
+
+    `ISO-8859-8'
+          `ISO_8859-8', `ISO_8859-8:1988', `ISO-IR-138', `HEBREW' and
+          `CSISOLATINHEBREW' are aliases for this charset.
+
+    `ISO-8859-9'
+          `ISO_8859-9', `ISO_8859-9:1989', `ISO-IR-148', `LATIN5', `L5'
+          and `CSISOLATIN5' are aliases for this charset.
+
+    `ISO-8859-10'
+          `ISO_8859-10', `ISO_8859-10:1992', `ISO-IR-157', `LATIN6',
+          `L6' and `CSISOLATIN6' are aliases for this charset.
+
+    `ISO-8859-13'
+          `ISO_8859-13', `ISO-IR-179', `LATIN7' and `L7' are aliases
+          for this charset.
+
+    `ISO-8859-14'
+          `ISO_8859-14', `ISO_8859-14:1998', `LATIN8' and `L8' are
+          aliases for this charset.
+
+    `ISO-8859-15'
+          `ISO_8859-15' and `ISO_8859-15:1998' are aliases for this
+          charset.
+
+    `KOI8-R'
+          `CSKOI8R' is an alias for this charset.
+
+    `KOI8-U'
+
+    `KOI8-RU'
+   * Windows 8-bit encodings
+    `CP1250'
+          `WINDOWS-1250' and `MS-EE' are aliases for this charset.
+
+    `CP1251'
+          `WINDOWS-1251' and `MS-CYRL' are aliases for this charset.
+
+    `CP1252'
+          `WINDOWS-1252' and `MS-ANSI' are aliases for this charset.
+
+    `CP1253'
+          `WINDOWS-1253' and `MS-GREEK' are aliases for this charset.
+
+    `CP1254'
+          `WINDOWS-1254' and `MS-TURK' are aliases for this charset.
+
+    `CP1255'
+          `WINDOWS-1255' and `MS-HEBR' are aliases for this charset.
+
+    `CP1256'
+          `WINDOWS-1256' and `MS-ARAB' are aliases for this charset.
+
+    `CP1257'
+          `WINDOWS-1257' and `WINBALTRIM' are aliases for this charset.
+
+    `CP1258'
+          `WINDOWS-1258' is an alias for this charset.
+
+   * DOS 8-bit encodings
+    `CP850'
+          `IBM850', `850' and `CSPC850MULTILINGUAL' are aliases for
+          this charset.
+
+    `CP866'
+          `IBM866', `866' and `CSIBM866' are aliases for this charset.
+
+   * Macintosh 8-bit encodings
+    `MacRoman'
+          `Macintosh' is an alias for this charset.
+
+    `MacCentralEurope'
+
+    `MacIceland'
+
+    `MacCroatian'
+
+    `MacRomania'
+
+    `MacCyrillic'
+
+    `MacUkraine'
+
+    `MacGreek'
+
+    `MacTurkish'
+
+    `MacHebrew'
+
+    `MacArabic'
+
+    `MacThai'
+   * Other platform specific 8-bit encodings
+    `HP-ROMAN8'
+          `ROMAN8', `R8' and `CSHPROMAN8' are aliases for this charset.
+
+    `NEXTSTEP'
+   * Regional 8-bit encodings used for a single language
+    `ARMSCII-8'
+
+    `Georgian-Academy'
+
+    `Georgian-PS'
+
+    `MuleLao-1'
+
+    `CP1133'
+          `IBM-CP1133' is an alias for this charset.
+
+    `TIS-620'
+          `TIS620', `TIS620-0', `TIS620.2529-1', `TIS620.2533-0',
+          `TIS620.2533-1' and `ISO-IR-166' are aliases for this charset.
+
+    `CP874'
+          `WINDOWS-874' is an alias for this charset.
+
+    `VISCII'
+          `VISCII1.1-1' and `CSVISCII' are aliases for this charset.
+
+    `TCVN'
+          `TCVN-5712', `TCVN5712-1' and `TCVN5712-1:1993' are aliases
+          for this charset.
+
+   * CJK character sets
+    `JIS_X0201'
+          `JISX0201-1976', `JISX0201.1976-0', `X0201' and
+          `CSHALFWIDTHKATAKANA' are aliases for this charset.
+
+    `JIS_X0208'
+          `JIS_X0208.1983-0', `JIS_X0208.1983-1', `JIS_X0208-1983',
+          `JIS_X0208-1990' and `JIS0208' are aliases for this charset.
+
+    `JIS_X0212'
+          `JIS_X0212.1990-0', `JIS_X0212-1990', `X0212', `ISO-IR-159'
+          and `CSISO159JISX02121990' are aliases for this charset.
+
+    `KSC_5601'
+          `KSC5601.1987-0', `KS_C_5601-1987', `KS_C_5601-1989',
+          `ISO-IR-149', `CSKSC56011987', `KOREAN' and `CP949' are
+          aliases for this charset.
+
+   * CJK encodings
+    `EUC-JP'
+          `EUCJP', `EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE' and
+          `CSEUCPKDFMTJAPANESE' are aliases for this charset.
+
+    `SJIS'
+          `SHIFT_JIS', `SHIFT-JIS', `MS_KANJI' and `CSSHIFTJIS' are
+          aliases for this charset.
+
+    `CP932'
+
+    `ISO-2022-JP'
+          `CSISO2022JP' is an alias for this charset.
+
+    `ISO-2022-JP-1'
+
+    `ISO-2022-JP-2'
+          `CSISO2022JP2' is an alias for this charset.
+
+    `EUC-CN'
+          `EUCCN', `GB2312' and `CSGB2312' are aliases for this charset.
+
+    `GBK'
+          `CP936' is an alias for this charset.
+
+    `ISO-2022-CN'
+          `CSISO2022CN' is an alias for this charset.
+
+    `ISO-2022-CN-EXT'
+
+    `HZ'
+          `HZ-GB-2312' is an alias for this charset.
+
+    `EUC-TW'
+          `EUCTW' and `CSEUCTW' are aliases for this charset.
+
+    `BIG5'
+          `BIG-5', `BIG-FIVE', `BIGFIVE' and `CSBIG5' are aliases for
+          this charset.
+
+    `CP950'
+
+    `EUC-KR'
+          `EUCKR' and `CSEUCKR' are aliases for this charset.
+
+    `JOHAB'
+          `CP1361' is an alias for this charset.
+
+    `ISO-2022-KR'
+          `CSISO2022KR' is an alias for this charset.
+
+\1f
+File: recode.info,  Node: Tabular,  Next: ASCII misc,  Prev: libiconv,  Up: Top
 
 Tabular sources (RFC 1345)
 **************************
@@ -1130,195 +1457,3 @@ lines are not marked, fixed record size may produce something readable,
 but `VB' or `VBS' blocking is likely to yield some garbage in the
 converted results.
 
-\1f
-File: recode.info,  Node: IBM-PC,  Next: Icon-QNX,  Prev: EBCDIC,  Up: IBM and MS
-
-IBM's PC code
-=============
-
-   This charset is available in `recode' under the name `IBM-PC', with
-`dos', `MSDOS' and `pc' as acceptable aliases.  The shortest way of
-specifying it in `recode' is `pc'.
-
-   The charset is aimed towards a PC microcomputer from IBM or any
-compatible.  This is an eight-bit code.  This charset is fairly old in
-`recode', its tables were produced a long while ago by mere inspection
-of a printed chart of the IBM-PC codes and glyph.
-
-   It has `CR-LF' as its implied surface.  This means that, if the
-original end of lines have to be preserved while going out of `IBM-PC',
-they should currently be added back through the usage of a surface on
-the other charset, or better, just never removed.  Here are examples
-for both cases:
-
-     recode pc..l2/cl < INPUT > OUTPUT
-     recode pc/..l2 < INPUT > OUTPUT
-
-   RFC 1345 brings into `recode' 44 `IBM' charsets or code pages, and
-also 8 other code pages.  You can get a list of these all these by
-executing:(1)
-
-     recode -l | egrep -i '(CP|IBM)[0-9]'
-
-All charset or aliases beginning with letters `CP' or `IBM' also have
-`CR-LF' as their implied surface.  The same is true for a purely
-numeric alias in the same family.  For example, all of `819', `CP819'
-and `IBM819' imply `CR-LF' as a surface.  Note that `ISO-8859-1' does
-_not_ imply a surface, despite it shares the same tabular data as `819'.
-
-   There are a few discrepancies between this `IBM-PC' charset and the
-very similar RFC 1345 charset `ibm437', which have not been analysed
-yet, so the charsets are being kept separate for now.  This might
-change in the future, and the `IBM-PC' charset might disappear.
-Wizards would be interested in comparing the output of these two
-commands:
-
-     recode -vh IBM-PC..Latin-1
-     recode -vh IBM437..Latin-1
-
-The first command uses the charset prior to RFC 1345 introduction.
-Both methods give different recodings.  These differences are annoying,
-the fuzziness will have to be explained and settle down one day.
-
-   --------- Notes en bas de page ---------
-
-   (1) On DOS/Windows, stock shells do not know that apostrophes quote
-special characters like `|', so one need to use double quotes instead
-of apostrophes.
-
-\1f
-File: recode.info,  Node: Icon-QNX,  Prev: IBM-PC,  Up: IBM and MS
-
-Unisys' Icon code
-=================
-
-   This charset is available in `recode' under the name `Icon-QNX',
-with `QNX' as an acceptable alias.
-
-   The file is using Unisys' Icon way to represent diacritics with code
-25 escape sequences, under the system QNX.  This is a seven-bit code,
-even if eight-bit codes can flow through as part of IBM-PC charset.
-
-\1f
-File: recode.info,  Node: CDC,  Next: Micros,  Prev: IBM and MS,  Up: Top
-
-Charsets for CDC machines
-*************************
-
-   What is now `recode' evolved out, through many transformations
-really, from a set of programs which were originally written in
-"COMPASS", Control Data Corporation's assembler, with bits in FORTRAN,
-and later rewritten in CDC 6000 Pascal.  The CDC heritage shows by the
-fact some old CDC charsets are still supported.
-
-   The `recode' author used to be familiar with CDC Scope-NOS/BE and
-Kronos-NOS, and many CDC formats.  Reading CDC tapes directly on other
-machines is often a challenge, and `recode' does not always solve it.
-It helps having tapes created in coded mode instead of binary mode, and
-using `S' (Stranger) tapes instead of `I' (Internal) tapes.  ANSI
-labels and multi-file tapes might be the source of trouble.  There are
-ways to handle a few Cyber Record Manager formats, but some of them
-might be quite difficult to decode properly after the transfer is done.
-
-   The `recode' program is usable only for a small subset of NOS text
-formats, and surely not with binary textual formats, like `UPDATE' or
-`MODIFY' sources, for example.  `recode' is not especially suited for
-reading 8/12 or 56/60 packing, yet this could easily arranged if there
-was a demand for it.  It does not have the ability to translate Display
-Code directly, as the ASCII conversion implied by tape drivers or FTP
-does the initial approximation.  `recode' can decode 6/12 caret
-notation over Display Code already mapped to ASCII.
-
-* Menu:
-
-* Display Code::        Control Data's Display Code
-* CDC-NOS::             ASCII 6/12 from NOS
-* Bang-Bang::           ASCII ``bang bang''
-
-\1f
-File: recode.info,  Node: Display Code,  Next: CDC-NOS,  Prev: CDC,  Up: CDC
-
-Control Data's Display Code
-===========================
-
-   This code is not available in `recode', but repeated here for
-reference.  This is a 6-bit code used on CDC mainframes.
-
-     Octal display code to graphic       Octal display code to octal ASCII
-     
-     00  :    20  P    40  5   60  #     00 072  20 120  40 065  60 043
-     01  A    21  Q    41  6   61  [     01 101  21 121  41 066  61 133
-     02  B    22  R    42  7   62  ]     02 102  22 122  42 067  62 135
-     03  C    23  S    43  8   63  %     03 103  23 123  43 070  63 045
-     04  D    24  T    44  9   64  "     04 104  24 124  44 071  64 042
-     05  E    25  U    45  +   65  _     05 105  25 125  45 053  65 137
-     06  F    26  V    46  -   66  !     06 106  26 126  46 055  66 041
-     07  G    27  W    47  *   67  &     07 107  27 127  47 052  67 046
-     10  H    30  X    50  /   70  '     10 110  30 130  50 057  70 047
-     11  I    31  Y    51  (   71  ?     11 111  31 131  51 050  71 077
-     12  J    32  Z    52  )   72  <     12 112  32 132  52 051  72 074
-     13  K    33  0    53  $   73  >     13 113  33 060  53 044  73 076
-     14  L    34  1    54  =   74  @     14 114  34 061  54 075  74 100
-     15  M    35  2    55      75  \     15 115  35 062  55 040  75 134
-     16  N    36  3    56  ,   76  ^     16 116  36 063  56 054  76 136
-     17  O    37  4    57  .   77  ;     17 117  37 064  57 056  77 073
-
-   In older times, `:' used octal 63, and octal 0 was not a character.
-The table above shows the ASCII glyph interpretation of codes 60 to 77,
-yet these 16 codes were once defined differently.
-
-   There is no explicit end of line in Display Code, and the Cyber
-Record Manager introduced many new ways to represent them, the
-traditional end of lines being reachable by setting `RT' to `Z'.  If
-6-bit bytes in a file are sequentially counted from 1, a traditional
-end of line does exist if bytes 10*N+9 and 10N+10 are both zero for a
-given N, in which case these two bytes are not to be interpreted as
-`::'.  Also, up to 9 immediately preceeding zero bytes, going backward,
-are to be considered as part of the end of line and not interpreted as
-`:'(1).
-
-   --------- Notes en bas de page ---------
-
-   (1) This convention replaced an older one saying that up to 4
-immediately preceeding _pairs_ of zero bytes, going backward, are to be
-considered as part of the end of line and not interpreted as `::'.
-
-\1f
-File: recode.info,  Node: CDC-NOS,  Next: Bang-Bang,  Prev: Display Code,  Up: CDC
-
-ASCII 6/12 from NOS
-===================
-
-   This charset is available in `recode' under the name `CDC-NOS', with
-`NOS' as an acceptable alias.
-
-   This is one of the charsets in use on CDC Cyber NOS systems to
-represent ASCII, sometimes named "NOS 6/12" code for coding ASCII.
-This code is also known as "caret ASCII".  It is based on a six bits
-character set in which small letters and control characters are coded
-using a `^' escape and, sometimes, a `@' escape.
-
-   The routines given here presume that the six bits code is already
-expressed in ASCII by the communication channel, with embedded ASCII
-`^' and `@' escapes.
-
-   Here is a table showing which characters are being used to encode
-each ASCII character.
-
-     000  ^5  020  ^#  040     060  0  100 @A  120  P  140  @G  160  ^P
-     001  ^6  021  ^[  041  !  061  1  101  A  121  Q  141  ^A  161  ^Q
-     002  ^7  022  ^]  042  "  062  2  102  B  122  R  142  ^B  162  ^R
-     003  ^8  023  ^%  043  #  063  3  103  C  123  S  143  ^C  163  ^S
-     004  ^9  024  ^"  044  $  064  4  104  D  124  T  144  ^D  164  ^T
-     005  ^+  025  ^_  045  %  065  5  105  E  125  U  145  ^E  165  ^U
-     006  ^-  026  ^!  046  &  066  6  106  F  126  V  146  ^F  166  ^V
-     007  ^*  027  ^&  047  '  067  7  107  G  127  W  147  ^G  167  ^W
-     010  ^/  030  ^'  050  (  070  8  110  H  130  X  150  ^H  170  ^X
-     011  ^(  031  ^?  051  )  071  9  111  I  131  Y  151  ^I  171  ^Y
-     012  ^)  032  ^<  052  *  072 @D  112  J  132  Z  152  ^J  172  ^Z
-     013  ^$  033  ^>  053  +  073  ;  113  K  133  [  153  ^K  173  ^0
-     014  ^=  034  ^@  054  ,  074  <  114  L  134  \  154  ^L  174  ^1
-     015  ^   035  ^\  055  -  075  =  115  M  135  ]  155  ^M  175  ^2
-     016  ^,  036  ^^  056  .  076  >  116  N  136 @B  156  ^N  176  ^3
-     017  ^.  037  ^;  057  /  077  ?  117  O  137  _  157  ^O  177  ^4
-
index ab90ad24ebca19f39f6984709e8d464f48a08cb1..17ca96f4bad8734571460845394bf38b075b8854 100644 (file)
@@ -26,6 +26,198 @@ manual into another language, under the above conditions for modified
 versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
+\1f
+File: recode.info,  Node: IBM-PC,  Next: Icon-QNX,  Prev: EBCDIC,  Up: IBM and MS
+
+IBM's PC code
+=============
+
+   This charset is available in `recode' under the name `IBM-PC', with
+`dos', `MSDOS' and `pc' as acceptable aliases.  The shortest way of
+specifying it in `recode' is `pc'.
+
+   The charset is aimed towards a PC microcomputer from IBM or any
+compatible.  This is an eight-bit code.  This charset is fairly old in
+`recode', its tables were produced a long while ago by mere inspection
+of a printed chart of the IBM-PC codes and glyph.
+
+   It has `CR-LF' as its implied surface.  This means that, if the
+original end of lines have to be preserved while going out of `IBM-PC',
+they should currently be added back through the usage of a surface on
+the other charset, or better, just never removed.  Here are examples
+for both cases:
+
+     recode pc..l2/cl < INPUT > OUTPUT
+     recode pc/..l2 < INPUT > OUTPUT
+
+   RFC 1345 brings into `recode' 44 `IBM' charsets or code pages, and
+also 8 other code pages.  You can get a list of these all these by
+executing:(1)
+
+     recode -l | egrep -i '(CP|IBM)[0-9]'
+
+All charset or aliases beginning with letters `CP' or `IBM' also have
+`CR-LF' as their implied surface.  The same is true for a purely
+numeric alias in the same family.  For example, all of `819', `CP819'
+and `IBM819' imply `CR-LF' as a surface.  Note that `ISO-8859-1' does
+_not_ imply a surface, despite it shares the same tabular data as `819'.
+
+   There are a few discrepancies between this `IBM-PC' charset and the
+very similar RFC 1345 charset `ibm437', which have not been analysed
+yet, so the charsets are being kept separate for now.  This might
+change in the future, and the `IBM-PC' charset might disappear.
+Wizards would be interested in comparing the output of these two
+commands:
+
+     recode -vh IBM-PC..Latin-1
+     recode -vh IBM437..Latin-1
+
+The first command uses the charset prior to RFC 1345 introduction.
+Both methods give different recodings.  These differences are annoying,
+the fuzziness will have to be explained and settle down one day.
+
+   --------- Notes en bas de page ---------
+
+   (1) On DOS/Windows, stock shells do not know that apostrophes quote
+special characters like `|', so one need to use double quotes instead
+of apostrophes.
+
+\1f
+File: recode.info,  Node: Icon-QNX,  Prev: IBM-PC,  Up: IBM and MS
+
+Unisys' Icon code
+=================
+
+   This charset is available in `recode' under the name `Icon-QNX',
+with `QNX' as an acceptable alias.
+
+   The file is using Unisys' Icon way to represent diacritics with code
+25 escape sequences, under the system QNX.  This is a seven-bit code,
+even if eight-bit codes can flow through as part of IBM-PC charset.
+
+\1f
+File: recode.info,  Node: CDC,  Next: Micros,  Prev: IBM and MS,  Up: Top
+
+Charsets for CDC machines
+*************************
+
+   What is now `recode' evolved out, through many transformations
+really, from a set of programs which were originally written in
+"COMPASS", Control Data Corporation's assembler, with bits in FORTRAN,
+and later rewritten in CDC 6000 Pascal.  The CDC heritage shows by the
+fact some old CDC charsets are still supported.
+
+   The `recode' author used to be familiar with CDC Scope-NOS/BE and
+Kronos-NOS, and many CDC formats.  Reading CDC tapes directly on other
+machines is often a challenge, and `recode' does not always solve it.
+It helps having tapes created in coded mode instead of binary mode, and
+using `S' (Stranger) tapes instead of `I' (Internal) tapes.  ANSI
+labels and multi-file tapes might be the source of trouble.  There are
+ways to handle a few Cyber Record Manager formats, but some of them
+might be quite difficult to decode properly after the transfer is done.
+
+   The `recode' program is usable only for a small subset of NOS text
+formats, and surely not with binary textual formats, like `UPDATE' or
+`MODIFY' sources, for example.  `recode' is not especially suited for
+reading 8/12 or 56/60 packing, yet this could easily arranged if there
+was a demand for it.  It does not have the ability to translate Display
+Code directly, as the ASCII conversion implied by tape drivers or FTP
+does the initial approximation.  `recode' can decode 6/12 caret
+notation over Display Code already mapped to ASCII.
+
+* Menu:
+
+* Display Code::        Control Data's Display Code
+* CDC-NOS::             ASCII 6/12 from NOS
+* Bang-Bang::           ASCII ``bang bang''
+
+\1f
+File: recode.info,  Node: Display Code,  Next: CDC-NOS,  Prev: CDC,  Up: CDC
+
+Control Data's Display Code
+===========================
+
+   This code is not available in `recode', but repeated here for
+reference.  This is a 6-bit code used on CDC mainframes.
+
+     Octal display code to graphic       Octal display code to octal ASCII
+     
+     00  :    20  P    40  5   60  #     00 072  20 120  40 065  60 043
+     01  A    21  Q    41  6   61  [     01 101  21 121  41 066  61 133
+     02  B    22  R    42  7   62  ]     02 102  22 122  42 067  62 135
+     03  C    23  S    43  8   63  %     03 103  23 123  43 070  63 045
+     04  D    24  T    44  9   64  "     04 104  24 124  44 071  64 042
+     05  E    25  U    45  +   65  _     05 105  25 125  45 053  65 137
+     06  F    26  V    46  -   66  !     06 106  26 126  46 055  66 041
+     07  G    27  W    47  *   67  &     07 107  27 127  47 052  67 046
+     10  H    30  X    50  /   70  '     10 110  30 130  50 057  70 047
+     11  I    31  Y    51  (   71  ?     11 111  31 131  51 050  71 077
+     12  J    32  Z    52  )   72  <     12 112  32 132  52 051  72 074
+     13  K    33  0    53  $   73  >     13 113  33 060  53 044  73 076
+     14  L    34  1    54  =   74  @     14 114  34 061  54 075  74 100
+     15  M    35  2    55      75  \     15 115  35 062  55 040  75 134
+     16  N    36  3    56  ,   76  ^     16 116  36 063  56 054  76 136
+     17  O    37  4    57  .   77  ;     17 117  37 064  57 056  77 073
+
+   In older times, `:' used octal 63, and octal 0 was not a character.
+The table above shows the ASCII glyph interpretation of codes 60 to 77,
+yet these 16 codes were once defined differently.
+
+   There is no explicit end of line in Display Code, and the Cyber
+Record Manager introduced many new ways to represent them, the
+traditional end of lines being reachable by setting `RT' to `Z'.  If
+6-bit bytes in a file are sequentially counted from 1, a traditional
+end of line does exist if bytes 10*N+9 and 10N+10 are both zero for a
+given N, in which case these two bytes are not to be interpreted as
+`::'.  Also, up to 9 immediately preceeding zero bytes, going backward,
+are to be considered as part of the end of line and not interpreted as
+`:'(1).
+
+   --------- Notes en bas de page ---------
+
+   (1) This convention replaced an older one saying that up to 4
+immediately preceeding _pairs_ of zero bytes, going backward, are to be
+considered as part of the end of line and not interpreted as `::'.
+
+\1f
+File: recode.info,  Node: CDC-NOS,  Next: Bang-Bang,  Prev: Display Code,  Up: CDC
+
+ASCII 6/12 from NOS
+===================
+
+   This charset is available in `recode' under the name `CDC-NOS', with
+`NOS' as an acceptable alias.
+
+   This is one of the charsets in use on CDC Cyber NOS systems to
+represent ASCII, sometimes named "NOS 6/12" code for coding ASCII.
+This code is also known as "caret ASCII".  It is based on a six bits
+character set in which small letters and control characters are coded
+using a `^' escape and, sometimes, a `@' escape.
+
+   The routines given here presume that the six bits code is already
+expressed in ASCII by the communication channel, with embedded ASCII
+`^' and `@' escapes.
+
+   Here is a table showing which characters are being used to encode
+each ASCII character.
+
+     000  ^5  020  ^#  040     060  0  100 @A  120  P  140  @G  160  ^P
+     001  ^6  021  ^[  041  !  061  1  101  A  121  Q  141  ^A  161  ^Q
+     002  ^7  022  ^]  042  "  062  2  102  B  122  R  142  ^B  162  ^R
+     003  ^8  023  ^%  043  #  063  3  103  C  123  S  143  ^C  163  ^S
+     004  ^9  024  ^"  044  $  064  4  104  D  124  T  144  ^D  164  ^T
+     005  ^+  025  ^_  045  %  065  5  105  E  125  U  145  ^E  165  ^U
+     006  ^-  026  ^!  046  &  066  6  106  F  126  V  146  ^F  166  ^V
+     007  ^*  027  ^&  047  '  067  7  107  G  127  W  147  ^G  167  ^W
+     010  ^/  030  ^'  050  (  070  8  110  H  130  X  150  ^H  170  ^X
+     011  ^(  031  ^?  051  )  071  9  111  I  131  Y  151  ^I  171  ^Y
+     012  ^)  032  ^<  052  *  072 @D  112  J  132  Z  152  ^J  172  ^Z
+     013  ^$  033  ^>  053  +  073  ;  113  K  133  [  153  ^K  173  ^0
+     014  ^=  034  ^@  054  ,  074  <  114  L  134  \  154  ^L  174  ^1
+     015  ^   035  ^\  055  -  075  =  115  M  135  ]  155  ^M  175  ^2
+     016  ^,  036  ^^  056  .  076  >  116  N  136 @B  156  ^N  176  ^3
+     017  ^.  037  ^;  057  /  077  ?  117  O  137  _  157  ^O  177  ^4
+
 \1f
 File: recode.info,  Node: Bang-Bang,  Prev: CDC-NOS,  Up: CDC
 
@@ -170,8 +362,9 @@ knows how to handle these particularly well for French texts.
 * HTML::                World Wide Web representations
 * LaTeX::               LaTeX macro calls
 * Texinfo::             GNU project documentation files
+* Vietnamese::
 * African::             African charsets
-* Cyrillic::            Cyrillic charsets
+* Others::
 * Texte::               Easy French conventions
 * Mule::                Mule as a multiplexed charset
 
@@ -284,7 +477,7 @@ backslashes into `\backslash{}' can be rather inconvenient, it may be
 inhibited through the command option `-d' (*note Mixed::).
 
 \1f
-File: recode.info,  Node: Texinfo,  Next: African,  Prev: LaTeX,  Up: Miscellaneous
+File: recode.info,  Node: Texinfo,  Next: Vietnamese,  Prev: LaTeX,  Up: Miscellaneous
 
 GNU project documentation files
 ===============================
@@ -301,7 +494,40 @@ correctly following these changes.  So, for now, Texinfo support in
 `recode' should be considered as work still in progress (!).
 
 \1f
-File: recode.info,  Node: African,  Next: Cyrillic,  Prev: Texinfo,  Up: Miscellaneous
+File: recode.info,  Node: Vietnamese,  Next: African,  Prev: Texinfo,  Up: Miscellaneous
+
+Vietnamese charsets
+===================
+
+   We are currently experimenting the implementation, in `recode', of a
+few character sets and transliterated forms to handle the Vietnamese
+language.  They are quite briefly summarised, here.
+
+`TCVN'
+     The TCVN charset has an incomplete name.  It might be one of the
+     three charset `VN1', `VN2' or `VN3'.  Yes `VN2' might be a second
+     version of `VISCII'.  To be clarified.
+
+`VISCII'
+     This is an 8-bit character set which seems to be rather popular for
+     writing Vietnamese.
+
+`VPS'
+     This is an 8-bit character set for Vietnamese.  No much reference.
+
+`VIQR'
+     The VIQR convention is a 7-bit, `ASCII' transliteration for
+     Vietnamese.
+
+`VNI'
+     The VNI convention is a 8-bit, `Latin-1' transliteration for
+     Vietnamese.
+
+   Still lacking for Vietnamese in `recode', are the charsets `CP1129'
+and `CP1258'.
+
+\1f
+File: recode.info,  Node: African,  Next: Others,  Prev: Vietnamese,  Up: Miscellaneous
 
 African charsets
 ================
@@ -331,10 +557,10 @@ other African charsets in this series.  This charset is available in
 `t-fra' and `t-francais'.
 
 \1f
-File: recode.info,  Node: Cyrillic,  Next: Texte,  Prev: African,  Up: Miscellaneous
+File: recode.info,  Node: Others,  Next: Texte,  Prev: African,  Up: Miscellaneous
 
-Cyrillic charsets
-=================
+Cyrillic and other charsets
+===========================
 
    The following Cyrillic charsets are already available in `recode'
 through RFC 1345 tables: `CP1251' with aliases `1251', ` ms-cyrl' and
@@ -346,13 +572,13 @@ with aliases `cyrillic', ` ISO-8859-5:1988' and `iso-ir-144'; `KOI-7';
 `KOI-8' with alias `GOST_19768-74'; `KOI8-R'; `KOI8-RU' and finally
 `KOI8-U'.
 
-   There seems to remain some confusion in Cyrillic charsets, and
-because a few users requested it repeatedly, `recode' now offers
-special services in that area.  Consider these charsets as experimental
-and debatable, as the extraneous tables describing them are still a bit
-fuzzy or non-standard.  Hopefully, in the long run, Cyrillic will be
-covered in Keld Simonsen's works to the satisfaction of everybody, and
-this section will merely disappear.
+   There seems to remain some confusion in Roman charsets for Cyrillic
+languages, and because a few users requested it repeatedly, `recode'
+now offers special services in that area.  Consider these charsets as
+experimental and debatable, as the extraneous tables describing them are
+still a bit fuzzy or non-standard.  Hopefully, in the long run, these
+charsets will be covered in Keld Simonsen's works to the satisfaction of
+everybody, and this section will merely disappear.
 
 `KEYBCS2'
      This charset is available under the name `KEYBCS2', with
@@ -366,7 +592,7 @@ this section will merely disappear.
      This charset is available under the name `KOI-8_CS2'.
 
 \1f
-File: recode.info,  Node: Texte,  Next: Mule,  Prev: Cyrillic,  Up: Miscellaneous
+File: recode.info,  Node: Texte,  Next: Mule,  Prev: Others,  Up: Miscellaneous
 
 Easy French conventions
 =======================
@@ -930,105 +1156,3 @@ from 2.2 to 1.3.  This is still manageable.
    (1) The above numbers were for `recode' version 3.4.  After UCS
 additions, it drops from 2.3 to 1.1.
 
-\1f
-File: recode.info,  Node: New charsets,  Next: New surfaces,  Prev: Main flow,  Up: Internals
-
-Adding new charsets
-===================
-
-   The main part of `recode' is written in C, as are most single steps.
-A few single steps need to recognise sequences of multiple characters,
-they are often better written in Flex.  It is easy for a programmer to
-add a new charset to `recode'.  All it requires is making a few
-functions kept in a single `.c' file, adjusting `Makefile.am' and
-remaking `recode'.
-
-   One of the function should convert from any previous charset to the
-new one.  Any previous charset will do, but try to select it so you will
-not lose too much information while converting.  The other function
-should convert from the new charset to any older one.  You do not have
-to select the same old charset than what you selected for the previous
-routine.  Once again, select any charset for which you will not lose
-too much information while converting.
-
-   If, for any of these two functions, you have to read multiple bytes
-of the old charset before recognising the character to produce, you
-might prefer programming it in Flex in a separate `.l' file.  Prototype
-your C or Flex files after one of those which exist already, so to keep
-the sources uniform.  Besides, at `make' time, all `.l' files are
-automatically merged into a single big one by the script `mergelex.awk'.
-
-   There are a few hidden rules about how to write new `recode'
-modules, for allowing the automatic creation of `decsteps.h' and
-`initsteps.h' at `make' time, or the proper merging of all Flex files.
-Mimetism is a simple approach which relieves me of explaining all these
-rules!  Start with a module closely resembling what you intend to do.
-Here is some advice for picking up a model.  First decide if your new
-charset module is to be be driven by algorithms rather than by tables.
-For algorithmic recodings, see `iconqnx.c' for C code, or `txtelat1.l'
-for Flex code.  For table driven recodings, see `ebcdic.c' for
-one-to-one style recodings, `lat1html.c' for one-to-many style
-recodings, or `atarist.c' for double-step style recodings.  Just select
-an example from the style that better fits your application.
-
-   Each of your source files should have its own initialisation
-function, named `module_CHARSET', which is meant to be executed
-_quickly_ once, prior to any recoding.  It should declare the name of
-your charsets and the single steps (or elementary recodings) you
-provide, by calling `declare_step' one or more times.  Besides the
-charset names, `declare_step' expects a description of the recoding
-quality (see `recodext.h') and two functions you also provide.
-
-   The first such function has the purpose of allocating structures,
-pre-conditioning conversion tables, etc.  It is also the way of further
-modifying the `STEP' structure.  This function is executed if and only
-if the single step is retained in an actual recoding sequence.  If you
-do not need such delayed initialisation, merely use `NULL' for the
-function argument.
-
-   The second function executes the elementary recoding on a whole file.
-There are a few cases when you can spare writing this function:
-
-   * Some single steps do nothing else than a pure copy of the input
-     onto the output, in this case, you can use the predefined function
-     `file_one_to_one', while having a delayed initialisation for
-     presetting the `STEP' field `one_to_one' to the predefined value
-     `one_to_same'.
-
-   * Some single steps are driven by a table which recodes one
-     character into another; if the recoding does nothing else, you can
-     use the predefined function `file_one_to_one', while having a
-     delayed initialisation for presetting the `STEP' field
-     `one_to_one' with your table.
-
-   * Some single steps are driven by a table which recodes one
-     character into a string; if the recoding does nothing else, you
-     can use the predefined function `file_one_to_many', while having a
-     delayed initialisation for presetting the `STEP' field
-     `one_to_many' with your table.
-
-   If you have a recoding table handy in a suitable format but do not
-use one of the predefined recoding functions, it is still a good idea
-to use a delayed initialisation to save it anyway, because `recode'
-option `-h' will take advantage of this information when available.
-
-   Finally, edit `Makefile.am' to add the source file name of your
-routines to the `C_STEPS' or `L_STEPS' macro definition, depending on
-the fact your routines is written in C or in Flex.
-
-\1f
-File: recode.info,  Node: New surfaces,  Next: Design,  Prev: New charsets,  Up: Internals
-
-Adding new surfaces
-===================
-
-   Adding a new surface is technically quite similar to adding a new
-charset.  *Note New charsets::.  A surface is provided as a set of two
-transformations: one from the predefined special charset `data' to the
-new surface, meant to apply the surface, the other from the new surface
-to the predefined special charset `data', meant to remove the surface.
-
-   Internally in `recode', function `declare_step' especially
-recognises when a charset is so related to `data', and then takes
-appropriate actions so that charset gets indeed installed as a surface.
-
index a1a50401e0fe39b64d5cf1eab5d542aaf06f0e68..0771be9e2a3e1b82b483aec530528823d7a78897 100644 (file)
@@ -26,6 +26,108 @@ manual into another language, under the above conditions for modified
 versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
+\1f
+File: recode.info,  Node: New charsets,  Next: New surfaces,  Prev: Main flow,  Up: Internals
+
+Adding new charsets
+===================
+
+   The main part of `recode' is written in C, as are most single steps.
+A few single steps need to recognise sequences of multiple characters,
+they are often better written in Flex.  It is easy for a programmer to
+add a new charset to `recode'.  All it requires is making a few
+functions kept in a single `.c' file, adjusting `Makefile.am' and
+remaking `recode'.
+
+   One of the function should convert from any previous charset to the
+new one.  Any previous charset will do, but try to select it so you will
+not lose too much information while converting.  The other function
+should convert from the new charset to any older one.  You do not have
+to select the same old charset than what you selected for the previous
+routine.  Once again, select any charset for which you will not lose
+too much information while converting.
+
+   If, for any of these two functions, you have to read multiple bytes
+of the old charset before recognising the character to produce, you
+might prefer programming it in Flex in a separate `.l' file.  Prototype
+your C or Flex files after one of those which exist already, so to keep
+the sources uniform.  Besides, at `make' time, all `.l' files are
+automatically merged into a single big one by the script `mergelex.awk'.
+
+   There are a few hidden rules about how to write new `recode'
+modules, for allowing the automatic creation of `decsteps.h' and
+`initsteps.h' at `make' time, or the proper merging of all Flex files.
+Mimetism is a simple approach which relieves me of explaining all these
+rules!  Start with a module closely resembling what you intend to do.
+Here is some advice for picking up a model.  First decide if your new
+charset module is to be be driven by algorithms rather than by tables.
+For algorithmic recodings, see `iconqnx.c' for C code, or `txtelat1.l'
+for Flex code.  For table driven recodings, see `ebcdic.c' for
+one-to-one style recodings, `lat1html.c' for one-to-many style
+recodings, or `atarist.c' for double-step style recodings.  Just select
+an example from the style that better fits your application.
+
+   Each of your source files should have its own initialisation
+function, named `module_CHARSET', which is meant to be executed
+_quickly_ once, prior to any recoding.  It should declare the name of
+your charsets and the single steps (or elementary recodings) you
+provide, by calling `declare_step' one or more times.  Besides the
+charset names, `declare_step' expects a description of the recoding
+quality (see `recodext.h') and two functions you also provide.
+
+   The first such function has the purpose of allocating structures,
+pre-conditioning conversion tables, etc.  It is also the way of further
+modifying the `STEP' structure.  This function is executed if and only
+if the single step is retained in an actual recoding sequence.  If you
+do not need such delayed initialisation, merely use `NULL' for the
+function argument.
+
+   The second function executes the elementary recoding on a whole file.
+There are a few cases when you can spare writing this function:
+
+   * Some single steps do nothing else than a pure copy of the input
+     onto the output, in this case, you can use the predefined function
+     `file_one_to_one', while having a delayed initialisation for
+     presetting the `STEP' field `one_to_one' to the predefined value
+     `one_to_same'.
+
+   * Some single steps are driven by a table which recodes one
+     character into another; if the recoding does nothing else, you can
+     use the predefined function `file_one_to_one', while having a
+     delayed initialisation for presetting the `STEP' field
+     `one_to_one' with your table.
+
+   * Some single steps are driven by a table which recodes one
+     character into a string; if the recoding does nothing else, you
+     can use the predefined function `file_one_to_many', while having a
+     delayed initialisation for presetting the `STEP' field
+     `one_to_many' with your table.
+
+   If you have a recoding table handy in a suitable format but do not
+use one of the predefined recoding functions, it is still a good idea
+to use a delayed initialisation to save it anyway, because `recode'
+option `-h' will take advantage of this information when available.
+
+   Finally, edit `Makefile.am' to add the source file name of your
+routines to the `C_STEPS' or `L_STEPS' macro definition, depending on
+the fact your routines is written in C or in Flex.
+
+\1f
+File: recode.info,  Node: New surfaces,  Next: Design,  Prev: New charsets,  Up: Internals
+
+Adding new surfaces
+===================
+
+   Adding a new surface is technically quite similar to adding a new
+charset.  *Note New charsets::.  A surface is provided as a set of two
+transformations: one from the predefined special charset `data' to the
+new surface, meant to apply the surface, the other from the new surface
+to the predefined special charset `data', meant to remove the surface.
+
+   Internally in `recode', function `declare_step' especially
+recognises when a charset is so related to `data', and then takes
+appropriate actions so that charset gets indeed installed as a surface.
+
 \1f
 File: recode.info,  Node: Design,  Prev: New surfaces,  Up: Internals
 
@@ -246,7 +348,7 @@ Concept Index
 * CR surface, in Macintosh charsets:     Apple-Mac.
 * CR-LF surface, in IBM-PC charsets:     IBM-PC.
 * Ctrl-Z, discarding:                    End lines.
-* Cyrillic charsets:                     Cyrillic.
+* Cyrillic charsets:                     Others.
 * debugging surfaces:                    Debugging.
 * default charset:                       Requests.
 * description of individual characters:  dump-with-names.
@@ -273,12 +375,14 @@ Concept Index
 * force recoding:                        Reversibility.
 * French description of charsets:        Listings.
 * guessing charsets:                     Listings.
+* Haible, Bruno:                         libiconv.
 * handling errors:                       Errors.
 * help page, printing:                   Listings.
 * HTML normalization:                    HTML.
 * IBM codepages:                         IBM and MS.
 * IBM graphics characters:               Recoding.
 * iconv:                                 Design.
+* iconv library:                         libiconv.
 * identifying subsets in charsets:       Listings.
 * ignore charsets:                       Recoding.
 * implied surfaces:                      Requests.
@@ -286,6 +390,7 @@ Concept Index
 * initialisation functions, outer:       Outer level.
 * initialisation functions, request:     Request level.
 * initialisation functions, task:        Task level.
+* interface, with iconv library:         libiconv.
 * intermediate charsets:                 Requests.
 * internal functions:                    Charset level.
 * internal recoding bug, error message:  Errors.
@@ -299,6 +404,8 @@ Concept Index
 * Latin charsets:                        ISO 8859.
 * Latin-1 table, recreating with recode: ISO 8859.
 * letter case, in charset and surface names: Requests.
+* libiconv:                              libiconv.
+* library, iconv:                        libiconv.
 * listing charsets:                      Listings.
 * Macintosh charset:                     Apple-Mac.
 * map filling:                           Reversibility.
@@ -378,6 +485,7 @@ Concept Index
 * untranslatable input, error message:   Errors.
 * valid characters in charset names:     Requests.
 * verbose operation:                     Recoding.
+* Vietnamese charsets:                   Vietnamese.
 
 \1f
 File: recode.info,  Node: Option Index,  Next: Library Index,  Prev: Concept Index,  Up: Top
index 50e2aba6a44694febf51da2e5b61f6d37b3375d1..6628eda3ca2344532f928a1f393400e508981dd9 100644 (file)
@@ -43,6 +43,7 @@ supported by `recode', and their aliases.
 * 1026:                                  Tabular.
 * 1047:                                  Tabular.
 * 10646:                                 UCS-4.
+* 1129, not available:                   Vietnamese.
 * 1250:                                  Tabular.
 * 1251:                                  Tabular.
 * 1252:                                  Tabular.
@@ -51,6 +52,7 @@ supported by `recode', and their aliases.
 * 1255:                                  Tabular.
 * 1256:                                  Tabular.
 * 1257:                                  Tabular.
+* 1258, not available:                   Vietnamese.
 * 1345:                                  Tabular.
 * 21-Permutation:                        Permutations.
 * 256:                                   Tabular.
@@ -74,7 +76,8 @@ supported by `recode', and their aliases.
 * 500V1:                                 Tabular.
 * 64:                                    MIME.
 * 819:                                   Tabular.
-* 850:                                   Tabular.
+* 850 <1>:                               Tabular.
+* 850:                                   libiconv.
 * 851:                                   Tabular.
 * 852:                                   Tabular.
 * 855:                                   Tabular.
@@ -85,6 +88,7 @@ supported by `recode', and their aliases.
 * 863:                                   Tabular.
 * 864:                                   Tabular.
 * 865:                                   Tabular.
+* 866:                                   libiconv.
 * 868:                                   Tabular.
 * 869:                                   Tabular.
 * 870:                                   Tabular.
@@ -103,16 +107,21 @@ supported by `recode', and their aliases.
 * AFRLIN-104-BPI_OCIL:                   African.
 * AFRLIN-105-BPI_OCIL:                   African.
 * ANSI_X3.110-1983, not recognised by recode: Tabular.
+* ANSI_X3.4-1968:                        libiconv.
 * ANSI_X3.4-1968, aliases and source:    Tabular.
 * ANSI_X3.4-1968, and its aliases:       ASCII.
 * ANSI_X3.4-1986:                        Tabular.
 * Apple-Mac:                             Apple-Mac.
 * arabic:                                Tabular.
+* ARABIC:                                libiconv.
 * arabic7:                               Tabular.
-* ASCII:                                 Tabular.
+* ARMSCII-8:                             libiconv.
+* ASCII <1>:                             Tabular.
+* ASCII:                                 libiconv.
 * ASCII, an alias for the ANSI_X3.4-1968 charset: ASCII.
 * ASCII-BS, and its aliases:             ASCII-BS.
-* ASMO-708:                              Tabular.
+* ASMO-708 <1>:                          Tabular.
+* ASMO-708:                              libiconv.
 * ASMO_449, aliases and source:          Tabular.
 * AtariST:                               AtariST.
 * b64:                                   MIME.
@@ -120,6 +129,10 @@ supported by `recode', and their aliases.
 * bambara:                               African.
 * Bang-Bang:                             Bang-Bang.
 * Base64:                                MIME.
+* BIG-5:                                 libiconv.
+* BIG-FIVE:                              libiconv.
+* BIG5, aliases:                         libiconv.
+* BIGFIVE:                               libiconv.
 * BMP:                                   UCS-2.
 * bra:                                   African.
 * BS, an alias for ASCII-BS charset:     ASCII-BS.
@@ -130,7 +143,7 @@ supported by `recode', and their aliases.
 * cl:                                    End lines.
 * cn:                                    Tabular.
 * combined-UCS-2:                        UCS-2.
-* CORK:                                  Cyrillic.
+* CORK:                                  Others.
 * count-characters:                      count-characters.
 * cp-ar:                                 Tabular.
 * cp-gr:                                 Tabular.
@@ -141,14 +154,27 @@ supported by `recode', and their aliases.
 * CP1004:                                Tabular.
 * CP1026:                                Tabular.
 * CP1047:                                Tabular.
+* CP1129, not available:                 Vietnamese.
+* CP1133, aliases:                       libiconv.
+* CP1250, aliases:                       libiconv.
 * CP1250, aliases and source:            Tabular.
+* CP1251, aliases:                       libiconv.
 * CP1251, aliases and source:            Tabular.
+* CP1252, aliases:                       libiconv.
 * CP1252, aliases and source:            Tabular.
+* CP1253, aliases:                       libiconv.
 * CP1253, aliases and source:            Tabular.
+* CP1254, aliases:                       libiconv.
 * CP1254, aliases and source:            Tabular.
+* CP1255, aliases:                       libiconv.
 * CP1255, aliases and source:            Tabular.
+* CP1256, aliases:                       libiconv.
 * CP1256, aliases and source:            Tabular.
+* CP1257, aliases:                       libiconv.
 * CP1257, aliases and source:            Tabular.
+* CP1258, aliases:                       libiconv.
+* CP1258, not available:                 Vietnamese.
+* CP1361:                                libiconv.
 * CP256:                                 Tabular.
 * CP273:                                 Tabular.
 * CP274:                                 Tabular.
@@ -161,14 +187,17 @@ supported by `recode', and their aliases.
 * CP290:                                 Tabular.
 * CP297:                                 Tabular.
 * cp367:                                 ASCII.
-* CP367:                                 Tabular.
+* CP367 <1>:                             Tabular.
+* CP367:                                 libiconv.
 * CP420:                                 Tabular.
 * CP423:                                 Tabular.
 * CP424:                                 Tabular.
 * CP437:                                 Tabular.
 * CP500:                                 Tabular.
-* CP819:                                 Tabular.
+* CP819 <1>:                             Tabular.
+* CP819:                                 libiconv.
 * CP850:                                 Tabular.
+* CP850, aliases:                        libiconv.
 * CP851:                                 Tabular.
 * CP852:                                 Tabular.
 * CP855:                                 Tabular.
@@ -179,10 +208,12 @@ supported by `recode', and their aliases.
 * CP863:                                 Tabular.
 * CP864:                                 Tabular.
 * CP865:                                 Tabular.
+* CP866, aliases:                        libiconv.
 * CP868:                                 Tabular.
 * CP869:                                 Tabular.
 * CP870:                                 Tabular.
 * CP871:                                 Tabular.
+* CP874, aliases:                        libiconv.
 * CP875:                                 Tabular.
 * CP880:                                 Tabular.
 * CP891:                                 Tabular.
@@ -191,6 +222,10 @@ supported by `recode', and their aliases.
 * CP905:                                 Tabular.
 * CP912:                                 Tabular.
 * CP918:                                 Tabular.
+* CP932:                                 libiconv.
+* CP936:                                 libiconv.
+* CP949:                                 libiconv.
+* CP950:                                 libiconv.
 * CR, a surface:                         End lines.
 * CR-LF, a surface:                      End lines.
 * csa7-1:                                Tabular.
@@ -198,11 +233,44 @@ supported by `recode', and their aliases.
 * CSA_Z243.4-1985-1, aliases and source: Tabular.
 * CSA_Z243.4-1985-2, aliases and source: Tabular.
 * CSA_Z243.4-1985-gr, aliases and source: Tabular.
+* CSASCII:                               libiconv.
+* CSBIG5:                                libiconv.
+* CSEUCKR:                               libiconv.
+* CSEUCPKDFMTJAPANESE:                   libiconv.
+* CSEUCTW:                               libiconv.
+* CSGB2312:                              libiconv.
+* CSHALFWIDTHKATAKANA:                   libiconv.
+* CSHPROMAN8:                            libiconv.
+* CSIBM866:                              libiconv.
+* CSISO159JISX02121990:                  libiconv.
+* CSISO2022CN:                           libiconv.
+* CSISO2022JP:                           libiconv.
+* CSISO2022JP2:                          libiconv.
+* CSISO2022KR:                           libiconv.
+* CSISOLATIN1:                           libiconv.
+* CSISOLATIN2:                           libiconv.
+* CSISOLATIN3:                           libiconv.
+* CSISOLATIN4:                           libiconv.
+* CSISOLATIN5:                           libiconv.
+* CSISOLATIN6:                           libiconv.
+* CSISOLATINARABIC:                      libiconv.
+* CSISOLATINCYRILLIC:                    libiconv.
+* CSISOLATINGREEK:                       libiconv.
+* CSISOLATINHEBREW:                      libiconv.
+* CSKOI8R:                               libiconv.
+* CSKSC56011987:                         libiconv.
 * CSN_369103, aliases and source:        Tabular.
+* CSPC850MULTILINGUAL:                   libiconv.
+* CSSHIFTJIS:                            libiconv.
+* CSUCS4:                                libiconv.
+* CSUNICODE:                             libiconv.
+* CSUNICODE11UTF7:                       libiconv.
+* CSVISCII:                              libiconv.
 * cuba:                                  Tabular.
 * CWI, aliases and source:               Tabular.
 * CWI-2:                                 Tabular.
 * cyrillic:                              Tabular.
+* CYRILLIC:                              libiconv.
 * d1:                                    Dump.
 * d2:                                    Dump.
 * d4:                                    Dump.
@@ -271,14 +339,26 @@ supported by `recode', and their aliases.
 * EBCDIC-UK, aliases and source:         Tabular.
 * EBCDIC-US, aliases and source:         Tabular.
 * ECMA-113:                              Tabular.
-* ECMA-113:1986:                         Tabular.
-* ECMA-114:                              Tabular.
-* ECMA-118:                              Tabular.
+* ECMA-113(1986):                        Tabular.
+* ECMA-114 <1>:                          Tabular.
+* ECMA-114:                              libiconv.
+* ECMA-118 <1>:                          Tabular.
+* ECMA-118:                              libiconv.
 * ECMA-cyrillic, aliases and source:     Tabular.
-* ELOT_928:                              Tabular.
+* ELOT_928 <1>:                          Tabular.
+* ELOT_928:                              libiconv.
 * ES, aliases and source:                Tabular.
 * ES2, aliases and source:               Tabular.
+* EUC-CN, aliases:                       libiconv.
+* EUC-JP, aliases:                       libiconv.
+* EUC-KR, aliases:                       libiconv.
+* EUC-TW, aliases:                       libiconv.
+* EUCCN:                                 libiconv.
+* EUCJP:                                 libiconv.
+* EUCKR:                                 libiconv.
+* EUCTW:                                 libiconv.
 * ewondo:                                African.
+* EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE: libiconv.
 * FI:                                    Tabular.
 * flat, a charset:                       flat.
 * fr:                                    Tabular.
@@ -286,22 +366,33 @@ supported by `recode', and their aliases.
 * FSS_UTF:                               UTF-8.
 * fulfude:                               African.
 * gb:                                    Tabular.
+* GB2312:                                libiconv.
 * GB_1988-80, aliases and source:        Tabular.
 * GB_2312-80, not recognised by recode:  Tabular.
+* GBK, aliases:                          libiconv.
+* Georgian-Academy:                      libiconv.
+* Georgian-PS:                           libiconv.
 * GOST_19768-74:                         Tabular.
 * GOST_19768-87, aliases and source:     Tabular.
 * greek:                                 Tabular.
+* GREEK:                                 libiconv.
 * greek-ccitt, aliases and source:       Tabular.
 * greek7, aliases and source:            Tabular.
 * greek7-old, aliases and source:        Tabular.
 * greek8:                                Tabular.
+* GREEK8:                                libiconv.
 * hebrew:                                Tabular.
+* HEBREW:                                libiconv.
 * Hexadecimal-1:                         Dump.
 * Hexadecimal-2:                         Dump.
 * Hexadecimal-4:                         Dump.
+* HP-ROMAN8, aliases:                    libiconv.
 * hp-roman8, aliases and source:         Tabular.
 * HTML, a charset:                       HTML.
 * hu:                                    Tabular.
+* HZ, aliases:                           libiconv.
+* HZ-GB-2312:                            libiconv.
+* IBM-CP1133:                            libiconv.
 * IBM-PC:                                IBM-PC.
 * IBM-PC charset, and CR-LF surface:     Requests.
 * IBM037, aliases and source:            Tabular.
@@ -322,15 +413,18 @@ supported by `recode', and their aliases.
 * IBM290, aliases and source:            Tabular.
 * IBM297, aliases and source:            Tabular.
 * IBM367 <1>:                            ASCII.
-* IBM367:                                Tabular.
+* IBM367 <2>:                            Tabular.
+* IBM367:                                libiconv.
 * IBM420, aliases and source:            Tabular.
 * IBM423, aliases and source:            Tabular.
 * IBM424, aliases and source:            Tabular.
 * ibm437:                                IBM-PC.
 * IBM437, aliases and source:            Tabular.
 * IBM500, aliases and source:            Tabular.
-* IBM819:                                Tabular.
+* IBM819 <1>:                            Tabular.
+* IBM819:                                libiconv.
 * IBM819, and CR-LF surface:             IBM-PC.
+* IBM850:                                libiconv.
 * IBM850, aliases and source:            Tabular.
 * IBM851, aliases and source:            Tabular.
 * IBM852, aliases and source:            Tabular.
@@ -342,6 +436,7 @@ supported by `recode', and their aliases.
 * IBM863, aliases and source:            Tabular.
 * IBM864, aliases and source:            Tabular.
 * IBM865, aliases and source:            Tabular.
+* IBM866:                                libiconv.
 * IBM868, aliases and source:            Tabular.
 * IBM869, aliases and source:            Tabular.
 * IBM870, aliases and source:            Tabular.
@@ -361,46 +456,77 @@ supported by `recode', and their aliases.
 * INIS-cyrillic, aliases and source:     Tabular.
 * INVARIANT, aliases and source:         Tabular.
 * irv:                                   Tabular.
+* ISO-10646-UCS-2:                       libiconv.
 * ISO-10646-UCS-2, and aliases:          UCS-2.
+* ISO-10646-UCS-4:                       libiconv.
 * ISO-10646-UCS-4, and aliases:          UCS-4.
+* ISO-2022-CN, aliases:                  libiconv.
+* ISO-2022-CN-EXT:                       libiconv.
+* ISO-2022-JP, aliases:                  libiconv.
+* ISO-2022-JP-1:                         libiconv.
+* ISO-2022-JP-2, aliases:                libiconv.
+* ISO-2022-KR, aliases:                  libiconv.
+* ISO-8859-1, aliases:                   libiconv.
 * ISO-8859-1, aliases and source:        Tabular.
+* ISO-8859-10, aliases:                  libiconv.
 * ISO-8859-10, aliases and source:       Tabular.
+* ISO-8859-13, aliases:                  libiconv.
 * ISO-8859-13, aliases and source:       Tabular.
+* ISO-8859-14, aliases:                  libiconv.
 * ISO-8859-14, aliases and source:       Tabular.
+* ISO-8859-15, aliases:                  libiconv.
 * ISO-8859-15, aliases and source:       Tabular.
+* ISO-8859-2, aliases:                   libiconv.
 * ISO-8859-2, aliases and source:        Tabular.
+* ISO-8859-3, aliases:                   libiconv.
 * ISO-8859-3, aliases and source:        Tabular.
+* ISO-8859-4, aliases:                   libiconv.
 * ISO-8859-4, aliases and source:        Tabular.
+* ISO-8859-5, aliases:                   libiconv.
 * ISO-8859-5, aliases and source:        Tabular.
+* ISO-8859-6, aliases:                   libiconv.
 * ISO-8859-6, aliases and source:        Tabular.
+* ISO-8859-7, aliases:                   libiconv.
 * ISO-8859-7, aliases and source:        Tabular.
+* ISO-8859-8, aliases:                   libiconv.
 * ISO-8859-8, aliases and source:        Tabular.
+* ISO-8859-9, aliases:                   libiconv.
 * ISO-8859-9, aliases and source:        Tabular.
 * iso-baltic:                            Tabular.
 * iso-celtic:                            Tabular.
 * iso-ir-10:                             Tabular.
 * iso-ir-100:                            Tabular.
+* ISO-IR-100:                            libiconv.
 * iso-ir-101:                            Tabular.
+* ISO-IR-101:                            libiconv.
 * iso-ir-102:                            Tabular.
 * iso-ir-109:                            Tabular.
+* ISO-IR-109:                            libiconv.
 * iso-ir-11:                             Tabular.
 * iso-ir-110:                            Tabular.
+* ISO-IR-110:                            libiconv.
 * iso-ir-111:                            Tabular.
 * iso-ir-121:                            Tabular.
 * iso-ir-122:                            Tabular.
 * iso-ir-123:                            Tabular.
 * iso-ir-126:                            Tabular.
+* ISO-IR-126:                            libiconv.
 * iso-ir-127:                            Tabular.
+* ISO-IR-127:                            libiconv.
 * iso-ir-13:                             Tabular.
 * iso-ir-138:                            Tabular.
+* ISO-IR-138:                            libiconv.
 * iso-ir-139:                            Tabular.
 * iso-ir-14:                             Tabular.
 * iso-ir-141:                            Tabular.
 * iso-ir-143:                            Tabular.
 * iso-ir-144:                            Tabular.
+* ISO-IR-144:                            libiconv.
 * iso-ir-146:                            Tabular.
 * iso-ir-147:                            Tabular.
 * iso-ir-148:                            Tabular.
+* ISO-IR-148:                            libiconv.
+* ISO-IR-149:                            libiconv.
 * iso-ir-15:                             Tabular.
 * iso-ir-150:                            Tabular.
 * iso-ir-151:                            Tabular.
@@ -409,11 +535,15 @@ supported by `recode', and their aliases.
 * iso-ir-154:                            Tabular.
 * iso-ir-155:                            Tabular.
 * iso-ir-157:                            Tabular.
+* ISO-IR-157:                            libiconv.
 * iso-ir-158:                            Tabular.
+* ISO-IR-159:                            libiconv.
 * iso-ir-16:                             Tabular.
+* ISO-IR-166:                            libiconv.
 * iso-ir-17:                             Tabular.
 * iso-ir-170:                            Tabular.
 * iso-ir-179:                            Tabular.
+* ISO-IR-179:                            libiconv.
 * iso-ir-179a:                           Tabular.
 * iso-ir-18:                             Tabular.
 * iso-ir-19:                             Tabular.
@@ -434,6 +564,7 @@ supported by `recode', and their aliases.
 * iso-ir-57:                             Tabular.
 * iso-ir-6 <1>:                          ASCII.
 * iso-ir-6:                              Tabular.
+* ISO-IR-6:                              libiconv.
 * iso-ir-60:                             Tabular.
 * iso-ir-61:                             Tabular.
 * iso-ir-69:                             Tabular.
@@ -475,54 +606,83 @@ supported by `recode', and their aliases.
 * ISO646-PT2:                            Tabular.
 * ISO646-SE:                             Tabular.
 * ISO646-SE2:                            Tabular.
-* ISO646-US:                             Tabular.
+* ISO646-US <1>:                         Tabular.
+* ISO646-US:                             libiconv.
 * ISO646-YU:                             Tabular.
 * ISO_10367-box, aliases and source:     Tabular.
 * ISO_10646:                             UCS-4.
 * ISO_2033-1983, aliases and source:     Tabular.
+* ISO_5427(1981):                        Tabular.
 * ISO_5427, aliases and source:          Tabular.
 * ISO_5427-ext, aliases and source:      Tabular.
-* ISO_5427:1981:                         Tabular.
+* ISO_5428(1980):                        Tabular.
 * ISO_5428, aliases and source:          Tabular.
-* ISO_5428:1980:                         Tabular.
+* ISO_646.basic(1983):                   Tabular.
 * ISO_646.basic, aliases and source:     Tabular.
-* ISO_646.basic:1983:                    Tabular.
+* ISO_646.irv(1983):                     Tabular.
+* ISO_646.irv(1991):                     Tabular.
+* ISO_646.IRV(1991):                     libiconv.
 * ISO_646.irv, aliases and source:       Tabular.
-* ISO_646.irv:1983:                      Tabular.
-* ISO_646.irv:1991:                      Tabular.
 * ISO_6937-2-25, aliases and source:     Tabular.
 * ISO_6937-2-add, not recognised by recode: Tabular.
-* ISO_8859-1:                            Tabular.
-* ISO_8859-10:                           Tabular.
-* ISO_8859-10:1993:                      Tabular.
-* ISO_8859-13:                           Tabular.
-* ISO_8859-13:1998:                      Tabular.
-* ISO_8859-14:                           Tabular.
-* ISO_8859-14:1998:                      Tabular.
-* ISO_8859-15:                           Tabular.
-* ISO_8859-15:1998:                      Tabular.
-* ISO_8859-1:1987:                       Tabular.
-* ISO_8859-2:                            Tabular.
-* ISO_8859-2:1987:                       Tabular.
-* ISO_8859-3:                            Tabular.
-* ISO_8859-3:1988:                       Tabular.
-* ISO_8859-4:                            Tabular.
-* ISO_8859-4:1988:                       Tabular.
-* ISO_8859-5:                            Tabular.
-* ISO_8859-5:1988:                       Tabular.
-* ISO_8859-6:                            Tabular.
-* ISO_8859-6:1987:                       Tabular.
-* ISO_8859-7:                            Tabular.
-* ISO_8859-7:1987:                       Tabular.
-* ISO_8859-8:                            Tabular.
-* ISO_8859-8:1988:                       Tabular.
-* ISO_8859-9:                            Tabular.
-* ISO_8859-9:1989:                       Tabular.
+* ISO_8859-1 <1>:                        Tabular.
+* ISO_8859-1:                            libiconv.
+* ISO_8859-1(1987) <1>:                  Tabular.
+* ISO_8859-1(1987):                      libiconv.
+* ISO_8859-10 <1>:                       Tabular.
+* ISO_8859-10:                           libiconv.
+* ISO_8859-10(1992):                     libiconv.
+* ISO_8859-10(1993):                     Tabular.
+* ISO_8859-13 <1>:                       Tabular.
+* ISO_8859-13:                           libiconv.
+* ISO_8859-13(1998):                     Tabular.
+* ISO_8859-14 <1>:                       Tabular.
+* ISO_8859-14:                           libiconv.
+* ISO_8859-14(1998) <1>:                 Tabular.
+* ISO_8859-14(1998):                     libiconv.
+* ISO_8859-15 <1>:                       Tabular.
+* ISO_8859-15:                           libiconv.
+* ISO_8859-15(1998) <1>:                 Tabular.
+* ISO_8859-15(1998):                     libiconv.
+* ISO_8859-2 <1>:                        Tabular.
+* ISO_8859-2:                            libiconv.
+* ISO_8859-2(1987) <1>:                  Tabular.
+* ISO_8859-2(1987):                      libiconv.
+* ISO_8859-3 <1>:                        Tabular.
+* ISO_8859-3:                            libiconv.
+* ISO_8859-3(1988) <1>:                  Tabular.
+* ISO_8859-3(1988):                      libiconv.
+* ISO_8859-4 <1>:                        Tabular.
+* ISO_8859-4:                            libiconv.
+* ISO_8859-4(1988) <1>:                  Tabular.
+* ISO_8859-4(1988):                      libiconv.
+* ISO_8859-5 <1>:                        Tabular.
+* ISO_8859-5:                            libiconv.
+* ISO_8859-5(1988) <1>:                  Tabular.
+* ISO_8859-5(1988):                      libiconv.
+* ISO_8859-6 <1>:                        Tabular.
+* ISO_8859-6:                            libiconv.
+* ISO_8859-6(1987) <1>:                  Tabular.
+* ISO_8859-6(1987):                      libiconv.
+* ISO_8859-7 <1>:                        Tabular.
+* ISO_8859-7:                            libiconv.
+* ISO_8859-7(1987) <1>:                  Tabular.
+* ISO_8859-7(1987):                      libiconv.
+* ISO_8859-8 <1>:                        Tabular.
+* ISO_8859-8:                            libiconv.
+* ISO_8859-8(1988) <1>:                  Tabular.
+* ISO_8859-8(1988):                      libiconv.
+* ISO_8859-9 <1>:                        Tabular.
+* ISO_8859-9:                            libiconv.
+* ISO_8859-9(1989) <1>:                  Tabular.
+* ISO_8859-9(1989):                      libiconv.
 * ISO_8859-supp, aliases and source:     Tabular.
 * ISO_9036:                              Tabular.
 * isoir91:                               Tabular.
 * isoir92:                               Tabular.
 * IT, aliases and source:                Tabular.
+* JAVA:                                  libiconv.
+* JIS0208:                               libiconv.
 * JIS_C6220-1969:                        Tabular.
 * JIS_C6220-1969-jp, aliases and source: Tabular.
 * JIS_C6220-1969-ro, aliases and source: Tabular.
@@ -533,8 +693,20 @@ supported by `recode', and their aliases.
 * JIS_C6229-1984-hand, aliases and source: Tabular.
 * JIS_C6229-1984-hand-add, aliases and source: Tabular.
 * JIS_C6229-1984-kana, aliases and source: Tabular.
+* JIS_X0201, aliases:                    libiconv.
 * JIS_X0201, aliases and source:         Tabular.
+* JIS_X0208, aliases:                    libiconv.
+* JIS_X0208-1983:                        libiconv.
+* JIS_X0208-1990:                        libiconv.
+* JIS_X0208.1983-0:                      libiconv.
+* JIS_X0208.1983-1:                      libiconv.
+* JIS_X0212, aliases:                    libiconv.
+* JIS_X0212-1990:                        libiconv.
 * JIS_X0212-1990, not recognised by recode: Tabular.
+* JIS_X0212.1990-0:                      libiconv.
+* JISX0201-1976:                         libiconv.
+* JISX0201.1976-0:                       libiconv.
+* JOHAB, aliases:                        libiconv.
 * jp:                                    Tabular.
 * jp-ocr-a:                              Tabular.
 * jp-ocr-b:                              Tabular.
@@ -545,27 +717,43 @@ supported by `recode', and their aliases.
 * JUS_I.B1.002, aliases and source:      Tabular.
 * JUS_I.B1.003-mac, aliases and source:  Tabular.
 * JUS_I.B1.003-serb, aliases and source: Tabular.
-* Kamenicky:                             Cyrillic.
+* Kamenicky:                             Others.
 * katakana:                              Tabular.
-* KEYBCS2:                               Cyrillic.
+* KEYBCS2:                               Others.
 * KOI-7, aliases and source:             Tabular.
 * KOI-8, aliases and source:             Tabular.
-* KOI-8_CS2:                             Cyrillic.
+* KOI-8_CS2:                             Others.
 * KOI-8_L2:                              Tabular.
+* KOI8-R, aliases:                       libiconv.
 * KOI8-R, aliases and source:            Tabular.
+* KOI8-RU:                               libiconv.
 * KOI8-RU, aliases and source:           Tabular.
+* KOI8-U:                                libiconv.
 * KOI8-U, aliases and source:            Tabular.
 * koi8l2:                                Tabular.
+* KOREAN:                                libiconv.
+* KS_C_5601-1987:                        libiconv.
 * KS_C_5601-1987, not recognised by recode: Tabular.
+* KS_C_5601-1989:                        libiconv.
+* KSC5601.1987-0:                        libiconv.
 * KSC5636, aliases and source:           Tabular.
+* KSC_5601, aliases:                     libiconv.
 * l1:                                    Tabular.
+* L1:                                    libiconv.
 * l2:                                    Tabular.
+* L2:                                    libiconv.
 * l3:                                    Tabular.
+* L3:                                    libiconv.
 * l4:                                    Tabular.
+* L4:                                    libiconv.
 * l5:                                    Tabular.
+* L5:                                    libiconv.
 * l6:                                    Tabular.
+* L6:                                    libiconv.
 * l7:                                    Tabular.
+* L7:                                    libiconv.
 * l8:                                    Tabular.
+* L8:                                    libiconv.
 * l9:                                    Tabular.
 * lap:                                   Tabular.
 * LaTeX, a charset:                      LaTeX.
@@ -574,46 +762,78 @@ supported by `recode', and their aliases.
 * Latin-greek-1, aliases and source:     Tabular.
 * latin-lap:                             Tabular.
 * latin1:                                Tabular.
+* LATIN1:                                libiconv.
 * latin1-2-5:                            Tabular.
 * latin2:                                Tabular.
+* LATIN2:                                libiconv.
 * latin3:                                Tabular.
+* LATIN3:                                libiconv.
 * latin4:                                Tabular.
+* LATIN4:                                libiconv.
 * latin5:                                Tabular.
+* LATIN5:                                libiconv.
 * latin6:                                Tabular.
+* LATIN6:                                libiconv.
 * latin7:                                Tabular.
+* LATIN7:                                libiconv.
 * latin8:                                Tabular.
+* LATIN8:                                libiconv.
 * latin9:                                Tabular.
+* libiconv:                              libiconv.
 * lin:                                   African.
 * lingala:                               African.
 * ltex:                                  LaTeX.
 * mac <1>:                               Apple-Mac.
 * mac:                                   Tabular.
 * mac-is, aliases and source:            Tabular.
+* MacArabic:                             libiconv.
 * macce <1>:                             Apple-Mac.
 * macce:                                 Tabular.
+* MacCentralEurope:                      libiconv.
+* MacCroatian:                           libiconv.
+* MacCyrillic:                           libiconv.
 * macedonian:                            Tabular.
+* MacGreek:                              libiconv.
+* MacHebrew:                             libiconv.
+* MacIceland:                            libiconv.
+* Macintosh:                             libiconv.
 * macintosh, a charset, and its aliases: Apple-Mac.
 * macintosh, aliases and source:         Tabular.
 * macintosh_ce, aliases and source:      Tabular.
 * macintosh_ce, and its aliases:         Apple-Mac.
+* MacRoman, aliases:                     libiconv.
+* MacRomania:                            libiconv.
+* MacThai:                               libiconv.
+* MacTurkish:                            libiconv.
+* MacUkraine:                            libiconv.
 * mnemonic, an alias for RFC1345 charset: Tabular.
 * ms-ansi:                               Tabular.
+* MS-ANSI:                               libiconv.
 * ms-arab:                               Tabular.
+* MS-ARAB:                               libiconv.
 * ms-cyrl:                               Tabular.
+* MS-CYRL:                               libiconv.
 * ms-ee:                                 Tabular.
+* MS-EE:                                 libiconv.
 * ms-greek:                              Tabular.
+* MS-GREEK:                              libiconv.
 * ms-hebr:                               Tabular.
+* MS-HEBR:                               libiconv.
 * ms-turk:                               Tabular.
+* MS-TURK:                               libiconv.
+* MS_KANJI:                              libiconv.
 * MSDOS:                                 IBM-PC.
 * MSZ_7795.3, aliases and source:        Tabular.
 * Mule, a charset:                       Mule.
+* MuleLao-1:                             libiconv.
 * NATS-DANO, aliases and source:         Tabular.
 * NATS-DANO-ADD, aliases and source:     Tabular.
 * NATS-SEFI, aliases and source:         Tabular.
 * NATS-SEFI-ADD, aliases and source:     Tabular.
+* NC_NC00-10(81):                        Tabular.
 * NC_NC00-10, aliases and source:        Tabular.
-* NC_NC00-10:81:                         Tabular.
 * next:                                  Tabular.
+* NEXTSTEP:                              libiconv.
 * NeXTSTEP, aliases and source:          Tabular.
 * NF_Z_62-010, aliases and source:       Tabular.
 * NF_Z_62-010_(1973), aliases and source: Tabular.
@@ -639,9 +859,11 @@ supported by `recode', and their aliases.
 * quote-printable:                       MIME.
 * Quoted-Printable:                      MIME.
 * r8:                                    Tabular.
+* R8:                                    libiconv.
 * ref:                                   Tabular.
 * RFC1345, a charset, and its aliases:   Tabular.
 * roman8:                                Tabular.
+* ROMAN8:                                libiconv.
 * rune:                                  UCS-2.
 * sami, aliases and source:              Tabular.
 * sango:                                 African.
@@ -650,6 +872,9 @@ supported by `recode', and their aliases.
 * SEN_850200_B, aliases and source:      Tabular.
 * SEN_850200_C, aliases and source:      Tabular.
 * serbian:                               Tabular.
+* SHIFT-JIS:                             libiconv.
+* SHIFT_JIS:                             libiconv.
+* SJIS, aliases:                         libiconv.
 * SS636127:                              Tabular.
 * ST_SEV_358-88:                         Tabular.
 * swabytes:                              Permutations.
@@ -666,7 +891,12 @@ supported by `recode', and their aliases.
 * T.101-G2, not recognised by recode:    Tabular.
 * T.61-7bit, aliases and source:         Tabular.
 * T.61-8bit, not recognised by recode:   Tabular.
-* T1:                                    Cyrillic.
+* T1:                                    Others.
+* TCVN, aliases:                         libiconv.
+* TCVN, for Vienamese:                   Vietnamese.
+* TCVN-5712:                             libiconv.
+* TCVN5712-1:                            libiconv.
+* TCVN5712-1(1993):                      libiconv.
 * test15:                                Debugging.
 * test16:                                Debugging.
 * test7:                                 Debugging.
@@ -678,6 +908,12 @@ supported by `recode', and their aliases.
 * TF-7:                                  UTF-7.
 * TF-8:                                  UTF-8.
 * ti:                                    Texinfo.
+* TIS-620, aliases:                      libiconv.
+* TIS620:                                libiconv.
+* TIS620-0:                              libiconv.
+* TIS620.2529-1:                         libiconv.
+* TIS620.2533-0:                         libiconv.
+* TIS620.2533-1:                         libiconv.
 * txte:                                  Texte.
 * u2:                                    UCS-2.
 * u4:                                    UCS-4.
@@ -686,33 +922,73 @@ supported by `recode', and their aliases.
 * u8:                                    UTF-8.
 * UCS:                                   Universal.
 * UCS-2:                                 UCS-2.
+* UCS-2, aliases:                        libiconv.
+* UCS-2-BE, aliases:                     libiconv.
+* UCS-2-INTERNAL:                        libiconv.
+* UCS-2-LE, aliases:                     libiconv.
+* UCS-2-SWAPPED:                         libiconv.
 * UCS-4:                                 UCS-4.
+* UCS-4, aliases:                        libiconv.
+* UCS-4-BE:                              libiconv.
+* UCS-4-INTERNAL:                        libiconv.
+* UCS-4-LE:                              libiconv.
+* UCS-4-SWAPPED:                         libiconv.
 * uk:                                    Tabular.
 * Unicode, an alias for UTF-16:          UTF-16.
+* UNICODE-1-1-UTF-7:                     libiconv.
 * UNICODE-1-1-UTF-7, and aliases:        UTF-7.
+* UNICODEBIG:                            libiconv.
+* UNICODELITTLE:                         libiconv.
 * us <1>:                                ASCII.
 * us:                                    Tabular.
+* US:                                    libiconv.
 * US-ASCII <1>:                          ASCII.
 * US-ASCII:                              Tabular.
+* US-ASCII, aliases:                     libiconv.
 * us-dk, not recognised by recode:       Tabular.
 * UTF-1:                                 Universal.
+* UTF-16:                                libiconv.
 * UTF-16, and aliases:                   UTF-16.
 * UTF-7:                                 UTF-7.
+* UTF-7, aliases:                        libiconv.
+* UTF-8 <1>:                             libiconv.
 * UTF-8:                                 UTF-8.
 * UTF-8, aliases:                        UTF-8.
 * UTF-FSS:                               UTF-8.
+* VIQR:                                  Vietnamese.
+* VISCII:                                Vietnamese.
+* VISCII, aliases:                       libiconv.
+* VISCII1.1-1:                           libiconv.
+* VN1, maybe not available:              Vietnamese.
+* VN2, maybe not available:              Vietnamese.
+* VN3, maybe not available:              Vietnamese.
+* VNI:                                   Vietnamese.
+* VPS:                                   Vietnamese.
 * WinBaltRim:                            Tabular.
+* WINBALTRIM:                            libiconv.
 * windows-1250:                          Tabular.
+* WINDOWS-1250:                          libiconv.
 * windows-1251:                          Tabular.
+* WINDOWS-1251:                          libiconv.
 * windows-1252:                          Tabular.
+* WINDOWS-1252:                          libiconv.
 * windows-1253:                          Tabular.
+* WINDOWS-1253:                          libiconv.
 * windows-1254:                          Tabular.
+* WINDOWS-1254:                          libiconv.
 * windows-1255:                          Tabular.
+* WINDOWS-1255:                          libiconv.
 * windows-1256:                          Tabular.
+* WINDOWS-1256:                          libiconv.
 * windows-1257:                          Tabular.
+* WINDOWS-1257:                          libiconv.
+* WINDOWS-1258:                          libiconv.
+* WINDOWS-874:                           libiconv.
 * wolof:                                 African.
-* X0201:                                 Tabular.
+* X0201 <1>:                             Tabular.
+* X0201:                                 libiconv.
 * x0201-7:                               Tabular.
+* X0212:                                 libiconv.
 * x1:                                    Dump.
 * x2:                                    Dump.
 * x4:                                    Dump.
index 96f19c67f20fc497962f84e3281fdd967c5c6745..fc516a94c071d5f6502c23a6664866f6475ab65e 100644 (file)
@@ -92,6 +92,7 @@ The current @code{recode} release is @value{VERSION}.
 * Invoking recode::     How to use this program
 * Library::             A recoding library
 * Universal::           The universal charset
+* libiconv::            The @code{iconv} library
 * Tabular::             Tabular sources (@w{RFC 1345})
 * ASCII misc::          ASCII and some derivatives
 * IBM and MS::          Some IBM or Microsoft charsets
@@ -106,7 +107,6 @@ The current @code{recode} release is @value{VERSION}.
 * Charset and Surface Index::
 
 @detailmenu
-
  --- The Detailed Node Listing ---
 
 Terminology and purpose
@@ -171,10 +171,11 @@ Other micro-computer charsets
 Various other charsets
 
 * HTML::                World Wide Web representations
-* LaTeX::               La@TeX{} macro calls
+* LaTeX::               LaTeX macro calls
 * Texinfo::             GNU project documentation files
+* Vietnamese::          Vietnamese charsets
 * African::             African charsets
-* Cyrillic::            Cyrillic charsets
+* Others::              Cyrillic and other charsets
 * Texte::               Easy French conventions
 * Mule::                Mule as a multiplexed charset
 
@@ -448,7 +449,7 @@ over a single charset.  The @code{recode} library is not overly picky as
 identifying surfaces as such: when it is practical to consider a specialised
 surface as if it were a charset, this is preferred, and done.
 
-@node Contributing, , Surface overview, Introduction
+@node Contributing,  , Surface overview, Introduction
 @section Contributions and bug reports
 
 @cindex contributing charsets
@@ -1503,7 +1504,7 @@ and original @code{msgid} strings are not to be touched by this recoding.
 If @var{language} is not specified, @samp{c} is assumed.
 @end table
 
-@node Emacs, , Mixed, Invoking recode
+@node Emacs,  , Mixed, Invoking recode
 @section Using @code{recode} within Emacs
 
 The fact @code{recode} is a filter makes it quite easy to use from
@@ -2260,7 +2261,7 @@ bool list_concise_charset (@var{charset}, @var{list-format});
 bool list_full_charset (@var{charset});
 @end example
 
-@node Errors, , Charset level, Library
+@node Errors,  , Charset level, Library
 @section Handling errors
 @cindex error handling
 @cindex handling errors
@@ -2421,7 +2422,7 @@ or @code{struct recode_task} blocks, yet it makes less sense to me to do
 so in practice.
 @end ignore
 
-@node Universal, Tabular, Library, Top
+@node Universal, libiconv, Library, Top
 @chapter The universal charset
 
 @cindex ISO 10646
@@ -2730,7 +2731,7 @@ This @code{count} feature has been implemented as a charset.  This may
 change in some later version, as it would sometimes be convenient to count
 original bytes, instead of their @code{UCS-2} equivalent.
 
-@node dump-with-names, , count-characters, Universal
+@node dump-with-names,  , count-characters, Universal
 @section Fully interpreted UCS dump
 
 @tindex dump-with-names
@@ -2806,7 +2807,78 @@ the title lines.
 echo -n 0x03C6 | recode u2/x2..dump | tail +3
 @end example
 
-@node Tabular, ASCII misc, Universal, Top
+@node libiconv, Tabular, Universal, Top
+@chapter The @code{iconv} library
+
+@cindex @code{iconv} library
+@cindex library, @code{iconv}
+@cindex @code{libiconv}
+@cindex interface, with @code{iconv} library
+@cindex Haible, Bruno
+The @code{recode} library itself contains most code and tables from the
+portable @code{iconv} library, written by Bruno Haible.  In fact, many
+capabilities of the @code{recode} library are duplicated because of this
+merging, as the older @code{recode} and @code{iconv} libraries share many
+charsets.  We discuss, here, the issues related to this duplication, and
+other peculiarities specific to the @code{iconv} library.  The plan is to
+remove duplications and better merge specificities, as @code{recode} evolves.
+
+As implemented, if a recoding request can be satisfied by the @code{recode}
+library both with and without its @code{iconv} library part, it is likely
+that the @code{iconv} library will be used.  To sort out if the @code{iconv}
+is indeed used of not, just use the @samp{-v} or @samp{--verbose} option,
+@pxref{Recoding}.
+
+@tindex libiconv
+The @code{:libiconv:} charset represents a conceptual pivot charset
+within the @code{iconv} part of the @code{recode} library (in fact,
+this pivot exists, but is not directly reachable).  This charset has a
+mere @code{:} (a colon) for an alias.  It is not allowed to recode from
+or to this charset directly.  But when this charset is selected as an
+intermediate, usually by automatic means, then the @code{iconv} part
+of the @code{recode} library is called to handle the transformations.
+By using an @samp{--ignore=:libiconv:} option on the @code{recode} call
+or equivalently, but more simply, @samp{-x:}, @code{recode} is instructed
+to fully avoid this charset as an intermediate, with the consequence that
+the @code{iconv} part of the library is defeated.  Consider these two calls:
+
+@example
+recode l1..1250 < @var{input} > @var{output}
+recode -x: l1..1250 < @var{input} > @var{output}
+@end example
+
+@noindent
+Both should transform @var{input} from @code{ISO-8859-1} to @code{CP1250}
+on @var{output}.  The first call uses the @code{iconv} part of the library,
+while the second call avoids it.  Whatever the path used, the results should
+normally be identical.  However, there might be observable differences.
+Most of them might result from reversibility issues, as the @code{iconv}
+engine, which the @code{recode} library directly uses for the time being,
+does not address reversibility.  Even if much less likely, some differences
+might result from slight errors in the tables used, such differences should
+then be reported as bugs.
+
+Other irregularities might be seen in the area of error detection and
+recovery.  The @code{recode} library usually tries to detect canonicity
+errors in input, and production of ambiguous output, but the @code{iconv}
+part of the library currently does not.  Input is always validated, however.
+The @code{recode} library may not always react properly when its @code{iconv}
+part has no translation for a given character.
+
+Within a collection of names for a single charset, the @code{recode}
+library distinguishes one of them as being the genuine charset name,
+while the others are said to be aliases.  When @code{recode} lists all
+charsets, for example with the @samp{-l} or @samp{--list} option, the list
+integrates all @code{iconv} library charsets.  The selection of one of the
+aliases as the genuine charset name is an artifact added by @code{recode},
+it does not come from @code{iconv}.  Moreover, the @code{recode} library
+dynamically resolves some conflicts when it initialises itself at runtime.
+This might explain some discrepancies in the table below, as for what is
+the genuine charset name.
+
+@include libiconv.texi
+
+@node Tabular, ASCII misc, libiconv, Top
 @chapter Tabular sources (@w{RFC 1345})
 
 @cindex RFC 1345
@@ -2904,7 +2976,7 @@ variations of this family of representations.  They will likely be
 implemented in some future version, however.
 
 @table @code
-@include charset.texi
+@include rfc1345.texi
 @end table
 
 @node ASCII misc, IBM and MS, Tabular, Top
@@ -3052,7 +3124,7 @@ accent is applied over the @kbd{e} with a backspace: diacriticised
 characters have special rules.  For the @code{ASCII-BS} charset,
 reversibility is still possible, but there might be difficult cases.
 
-@node flat, , ASCII-BS, ASCII misc
+@node flat,  , ASCII-BS, ASCII misc
 @section ASCII without diacritics nor underline
 @tindex flat@r{, a charset}
 
@@ -3212,7 +3284,7 @@ The first command uses the charset prior to @w{RFC 1345} introduction.
 Both methods give different recodings.  These differences are annoying,
 the fuzziness will have to be explained and settle down one day.
 
-@node Icon-QNX, , IBM-PC, IBM and MS
+@node Icon-QNX,  , IBM-PC, IBM and MS
 @section Unisys' Icon code
 
 @tindex Icon-QNX@r{, and aliases}
@@ -3345,7 +3417,7 @@ ASCII character.
 017  ^.  037  ^;  057  /  077  ?  117  O  137  _  157  ^O  177  ^4
 @end example
 
-@node Bang-Bang, , CDC-NOS, CDC
+@node Bang-Bang,  , CDC-NOS, CDC
 @section ASCII ``bang bang''
 
 @tindex Bang-Bang
@@ -3457,7 +3529,7 @@ As a side note, some people ask if there is a Macintosh port of the
 @code{recode} program.  I'm not aware of any.  I presume that if the tool
 fills a need for Macintosh users, someone will port it one of these days?
 
-@node AtariST, , Apple-Mac, Micros
+@node AtariST,  , Apple-Mac, Micros
 @section Atari ST code
 
 @tindex AtariST
@@ -3489,8 +3561,9 @@ knows how to handle these particularly well for French texts.
 * HTML::                World Wide Web representations
 * LaTeX::               LaTeX macro calls
 * Texinfo::             GNU project documentation files
+* Vietnamese::
 * African::             African charsets
-* Cyrillic::            Cyrillic charsets
+* Others::
 * Texte::               Easy French conventions
 * Mule::                Mule as a multiplexed charset
 @end menu
@@ -3620,7 +3693,7 @@ it is not pure @TeX{}, nor it is pure other charset.  This translation
 of backslashes into @samp{\backslash@{@}} can be rather inconvenient,
 it may be inhibited through the command option @samp{-d} (@pxref{Mixed}).
 
-@node Texinfo, African, LaTeX, Miscellaneous
+@node Texinfo, Vietnamese, LaTeX, Miscellaneous
 @section GNU project documentation files
 
 @tindex Texinfo@r{, a charset}
@@ -3639,7 +3712,50 @@ between versions of Texinfo, and @code{recode} only partially succeeds
 in correctly following these changes.  So, for now, Texinfo support in
 @code{recode} should be considered as work still in progress (!).
 
-@node African, Cyrillic, Texinfo, Miscellaneous
+@node Vietnamese, African, Texinfo, Miscellaneous
+@section Vietnamese charsets
+
+@cindex Vietnamese charsets
+We are currently experimenting the implementation, in @code{recode}, of a few
+character sets and transliterated forms to handle the Vietnamese language.
+They are quite briefly summarised, here.
+
+@table @code
+@item TCVN
+@tindex TCVN@r{, for Vienamese}
+@tindex VN1@r{, maybe not available}
+@tindex VN2@r{, maybe not available}
+@tindex VN3@r{, maybe not available}
+The TCVN charset has an incomplete name.  It might be one of the three
+charset @code{VN1}, @code{VN2} or @code{VN3}.  Yes @code{VN2} might be a
+second version of @code{VISCII}.  To be clarified.
+
+@item VISCII
+@tindex VISCII
+This is an 8-bit character set which seems to be rather popular for
+writing Vietnamese.
+
+@item VPS
+@tindex VPS
+This is an 8-bit character set for Vietnamese.  No much reference.
+
+@item VIQR
+@tindex VIQR
+The VIQR convention is a 7-bit, @code{ASCII} transliteration for Vietnamese.
+
+@item VNI
+@tindex VNI
+The VNI convention is a 8-bit, @code{Latin-1} transliteration for Vietnamese.
+@end table
+
+@tindex 1129@r{, not available}
+@tindex CP1129@r{, not available}
+@tindex 1258@r{, not available}
+@tindex CP1258@r{, not available}
+Still lacking for Vietnamese in @code{recode}, are the charsets @code{CP1129}
+and @code{CP1258}.
+
+@node African, Others, Vietnamese, Miscellaneous
 @section African charsets
 
 @cindex African charsets
@@ -3689,8 +3805,8 @@ African charsets in this series.  This charset is available in @code{recode}
 under the name @code{AFRL1-101-BPI_OCIL}.  Accepted aliases are @code{t-fra}
 and @code{t-francais}.
 
-@node Cyrillic, Texte, African, Miscellaneous
-@section Cyrillic charsets
+@node Others, Texte, African, Miscellaneous
+@section Cyrillic and other charsets
 
 @cindex Cyrillic charsets
 The following Cyrillic charsets are already available in @code{recode}
@@ -3704,12 +3820,13 @@ aliases @code{cyrillic}, @code{ ISO-8859-5:1988} and @code{iso-ir-144};
 @code{KOI-7}; @code{KOI-8} with alias @code{GOST_19768-74}; @code{KOI8-R};
 @code{KOI8-RU} and finally @code{KOI8-U}.
 
-There seems to remain some confusion in Cyrillic charsets, and because a few
-users requested it repeatedly, @code{recode} now offers special services
-in that area.  Consider these charsets as experimental and debatable, as
-the extraneous tables describing them are still a bit fuzzy or non-standard.
-Hopefully, in the long run, Cyrillic will be covered in Keld Simonsen's works
-to the satisfaction of everybody, and this section will merely disappear.
+There seems to remain some confusion in Roman charsets for Cyrillic
+languages, and because a few users requested it repeatedly, @code{recode}
+now offers special services in that area.  Consider these charsets as
+experimental and debatable, as the extraneous tables describing them are
+still a bit fuzzy or non-standard.  Hopefully, in the long run, these
+charsets will be covered in Keld Simonsen's works to the satisfaction of
+everybody, and this section will merely disappear.
 
 @table @code
 @item KEYBCS2
@@ -3729,7 +3846,7 @@ as an accepted alias.
 This charset is available under the name @code{KOI-8_CS2}.
 @end table
 
-@node Texte, Mule, Cyrillic, Miscellaneous
+@node Texte, Mule, Others, Miscellaneous
 @section Easy French conventions
 
 @tindex Texte
@@ -3872,7 +3989,7 @@ contre-digue, digue, d'intrigue, fatigue, figue, garrigue, gigue, igue,
 intrigue, ligue, prodigue, sarigue and zigue).
 @end enumerate
 
-@node Mule, , Texte, Miscellaneous
+@node Mule,  , Texte, Miscellaneous
 @section Mule as a multiplexed charset
 
 @tindex Mule@r{, a charset}
@@ -4197,7 +4314,7 @@ far end.  Also, source lines not beginning with a number are skipped.  So,
 @code{recode} should often be able to read a whole C header file, wrapping
 the results of a previous dump, and regenerate the original byte string.
 
-@node Debugging, , Dump, Surfaces
+@node Debugging,  , Dump, Surfaces
 @section Artificial data
 
 A few pseudo-surfaces exist to generate debugging data out of thin air.
@@ -4449,7 +4566,7 @@ Internally in @code{recode}, function @code{declare_step} especially
 recognises when a charset is so related to @code{data}, and then takes
 appropriate actions so that charset gets indeed installed as a surface.
 
-@node Design, , New surfaces, Internals
+@node Design,  , New surfaces, Internals
 @section Comments on the library design
 
 @itemize @bullet
@@ -4624,7 +4741,7 @@ and variables in the @code{recode} library.
 
 @printindex fn
 
-@node Charset and Surface Index, , Library Index, Top
+@node Charset and Surface Index,  , Library Index, Top
 @unnumbered Charset and Surface Index
 
 This is an alphabetical list of all the charsets and surfaces supported
similarity index 98%
rename from doc/charset.texi
rename to doc/rfc1345.texi
index ae9ad6d97b859ee80dd2a2eb7ce0bc0d826aceed..9d4b96404d3c418e212c4e31f6eb93a68f616477 100644 (file)
@@ -7,7 +7,7 @@
 @tindex CP367
 @tindex IBM367
 @tindex ISO646-US
-@tindex ISO_646.irv:1991
+@tindex ISO_646.irv(1991)
 @tindex US-ASCII
 @tindex iso-ir-6
 @tindex us
@@ -230,7 +230,7 @@ Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
 @item ECMA-cyrillic
 @tindex ECMA-cyrillic@r{, aliases and source}
 @tindex ECMA-113
-@tindex ECMA-113:1986
+@tindex ECMA-113(1986)
 @tindex iso-ir-111
 @code{ECMA-113}, @code{ECMA-113:1986} and @code{iso-ir-111} are aliases for this charset.
 Source: ISO 2375 registry.
@@ -645,7 +645,7 @@ Source: ISO 2375 registry.
 @tindex CP819
 @tindex IBM819
 @tindex ISO_8859-1
-@tindex ISO_8859-1:1987
+@tindex ISO_8859-1(1987)
 @tindex iso-ir-100
 @tindex l1
 @tindex latin1
@@ -655,7 +655,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-10
 @tindex ISO-8859-10@r{, aliases and source}
 @tindex ISO_8859-10
-@tindex ISO_8859-10:1993
+@tindex ISO_8859-10(1993)
 @tindex iso-ir-157
 @tindex l6
 @tindex latin6
@@ -665,7 +665,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-13
 @tindex ISO-8859-13@r{, aliases and source}
 @tindex ISO_8859-13
-@tindex ISO_8859-13:1998
+@tindex ISO_8859-13(1998)
 @tindex iso-baltic
 @tindex iso-ir-179a
 @tindex l7
@@ -676,7 +676,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-14
 @tindex ISO-8859-14@r{, aliases and source}
 @tindex ISO_8859-14
-@tindex ISO_8859-14:1998
+@tindex ISO_8859-14(1998)
 @tindex iso-celtic
 @tindex iso-ir-199
 @tindex l8
@@ -687,7 +687,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-15
 @tindex ISO-8859-15@r{, aliases and source}
 @tindex ISO_8859-15
-@tindex ISO_8859-15:1998
+@tindex ISO_8859-15(1998)
 @tindex iso-ir-203
 @tindex l9
 @tindex latin9
@@ -700,7 +700,7 @@ Source: ISO 2375 registry.
 @tindex CP912
 @tindex IBM912
 @tindex ISO_8859-2
-@tindex ISO_8859-2:1987
+@tindex ISO_8859-2(1987)
 @tindex iso-ir-101
 @tindex l2
 @tindex latin2
@@ -710,7 +710,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-3
 @tindex ISO-8859-3@r{, aliases and source}
 @tindex ISO_8859-3
-@tindex ISO_8859-3:1988
+@tindex ISO_8859-3(1988)
 @tindex iso-ir-109
 @tindex l3
 @tindex latin3
@@ -720,7 +720,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-4
 @tindex ISO-8859-4@r{, aliases and source}
 @tindex ISO_8859-4
-@tindex ISO_8859-4:1988
+@tindex ISO_8859-4(1988)
 @tindex iso-ir-110
 @tindex l4
 @tindex latin4
@@ -730,7 +730,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-5
 @tindex ISO-8859-5@r{, aliases and source}
 @tindex ISO_8859-5
-@tindex ISO_8859-5:1988
+@tindex ISO_8859-5(1988)
 @tindex cyrillic
 @tindex iso-ir-144
 @code{ISO_8859-5}, @code{ISO_8859-5:1988}, @code{cyrillic} and @code{iso-ir-144} are aliases for this charset.
@@ -741,7 +741,7 @@ Source: ISO 2375 registry.
 @tindex ASMO-708
 @tindex ECMA-114
 @tindex ISO_8859-6
-@tindex ISO_8859-6:1987
+@tindex ISO_8859-6(1987)
 @tindex arabic
 @tindex iso-ir-127
 @code{ASMO-708}, @code{ECMA-114}, @code{ISO_8859-6}, @code{ISO_8859-6:1987}, @code{arabic} and @code{iso-ir-127} are aliases for this charset.
@@ -752,7 +752,7 @@ Source: ISO 2375 registry.
 @tindex ECMA-118
 @tindex ELOT_928
 @tindex ISO_8859-7
-@tindex ISO_8859-7:1987
+@tindex ISO_8859-7(1987)
 @tindex greek
 @tindex greek8
 @tindex iso-ir-126
@@ -762,7 +762,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-8
 @tindex ISO-8859-8@r{, aliases and source}
 @tindex ISO_8859-8
-@tindex ISO_8859-8:1988
+@tindex ISO_8859-8(1988)
 @tindex hebrew
 @tindex iso-ir-138
 @code{ISO_8859-8}, @code{ISO_8859-8:1988}, @code{hebrew} and @code{iso-ir-138} are aliases for this charset.
@@ -771,7 +771,7 @@ Source: ISO 2375 registry.
 @item ISO-8859-9
 @tindex ISO-8859-9@r{, aliases and source}
 @tindex ISO_8859-9
-@tindex ISO_8859-9:1989
+@tindex ISO_8859-9(1989)
 @tindex iso-ir-148
 @tindex l5
 @tindex latin5
@@ -799,28 +799,28 @@ Source: ISO 2375 registry.
 
 @item ISO_5427-ext
 @tindex ISO_5427-ext@r{, aliases and source}
-@tindex ISO_5427:1981
+@tindex ISO_5427(1981)
 @tindex iso-ir-54
 @code{ISO_5427:1981} and @code{iso-ir-54} are aliases for this charset.
 Source: ISO 2375 registry.
 
 @item ISO_5428
 @tindex ISO_5428@r{, aliases and source}
-@tindex ISO_5428:1980
+@tindex ISO_5428(1980)
 @tindex iso-ir-55
 @code{ISO_5428:1980} and @code{iso-ir-55} are aliases for this charset.
 Source: ISO 2375 registry.
 
 @item ISO_646.basic
 @tindex ISO_646.basic@r{, aliases and source}
-@tindex ISO_646.basic:1983
+@tindex ISO_646.basic(1983)
 @tindex ref
 @code{ISO_646.basic:1983} and @code{ref} are aliases for this charset.
 Source: ISO 2375 registry.
 
 @item ISO_646.irv
 @tindex ISO_646.irv@r{, aliases and source}
-@tindex ISO_646.irv:1983
+@tindex ISO_646.irv(1983)
 @tindex irv
 @tindex iso-ir-2
 @code{ISO_646.irv:1983}, @code{irv} and @code{iso-ir-2} are aliases for this charset.
@@ -1002,7 +1002,7 @@ Source: ISO 2375 registry.
 @item NC_NC00-10
 @tindex NC_NC00-10@r{, aliases and source}
 @tindex ISO646-CU
-@tindex NC_NC00-10:81
+@tindex NC_NC00-10(81)
 @tindex cuba
 @tindex iso-ir-151
 @code{ISO646-CU}, @code{NC_NC00-10:81}, @code{cuba} and @code{iso-ir-151} are aliases for this charset.
index 6a2be21d353fe7f5edd38b1b61b35460ac3adf66..d83d668a15c80080159384d9437dd945be0046b9 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 19 December 1999
-@set EDITION 3.5a
-@set VERSION 3.5a
+@set UPDATED 29 December 1999
+@set EDITION 3.5c
+@set VERSION 3.5c
index 09eabb0e61abf5f98c63f613b12bb3b8b2c8c18a..032dfaee83416b4c2933c3459b6860cbb02ad4f3 100755 (executable)
 Usage: python tables.py [OPTION]... DATA-FILE...
 
   -e  produce C source file for explode data (explode.c)
-  -m  produce inclusion file for short mnemonics (rfc1345.h)
-  -n  produce inclusion file for character names (charname.h)
+  -l  produce C source file for libiconv charsets (libiconv.h)
+  -m  produce C inclusion file for short RFC 1345 mnemonics (rfc1345.h)
+  -n  produce C inclusion file for character names (charname.h)
   -p  produce C source files for strip data (strip-pool.c and strip-data.c)
-  -t  produce inclusion file for Texinfo (charset.texi)
-  -F  produce French versions for -n or -t
+  -s  produce Texinfo inclusion file for libiconv (libiconv.texi)
+  -t  produce Texinfo inclusion file for RFC 1345 (rfc1345.texi)
+  -F  produce French versions for -n, -s or -t
 
 DATA-FILEs may be rfc1345.txt, mnemonic[.,]ds, Unicode maps, or .def files
 from Keld's chset* packages.  The digesting order is usually important.
@@ -39,19 +41,70 @@ import re, string, sys
 
 # Generated file names.
 CHARNAME = 'charname.h'
-MNEMONIC = 'rfc1345.h'
 EXPLODE = 'explode.c'
+LIBICONV = 'libiconv.h'
 POOL = 'strip-pool.c'
 DATA = 'strip-data.c'
-TEXINFO = 'charset.texi'
+LIBICONV_TEXINFO = 'libiconv.texi'
+RFC1345_MNEMONIC = 'rfc1345.h'
+RFC1345_TEXINFO = 'rfc1345.texi'
 
-# Generated copyright clause.
-OVERALL_HEADER = """\
+# Ignore any mnemonic whose length is greater than MAX_MNEMONIC_LENGTH.
+MAX_MNEMONIC_LENGTH = 3
+
+# Character constants.
+REPLACEMENT_CHARACTER = 0xFFFD
+NOT_A_CHARACTER = 0xFFFF
+
+# Change STRIP_SIZE in `src/recode.h' if you change the value here.
+# See the accompanying documentation there, as needed.
+STRIP_SIZE = 8
+\f
+# Handling basic input and output.
+
+class Input:
+
+    def __init__(self, name):
+        self.name = name
+        self.input = open(name)
+        self.line_count = 0
+        sys.stderr.write("Reading %s\n" % name)
+
+    def readline(self):
+        self.line = self.input.readline()
+        self.line_count = self.line_count + 1
+        return self.line
+
+    def warn(self, format, *args):
+        sys.stderr.write('%s:%s: %s\n'
+                         % (self.name, self.line_count, format % args))
+
+    def die(self, format, *args):
+        sys.stderr.write('%s:%s: %s\n'
+                         % (self.name, self.line_count, format % args))
+        raise 'Fatal'
+
+    def begins(self, text):
+        return self.line[:len(text)] == text
+
+    def match(self, pattern):
+        return re.match(pattern, self.line)
+
+    def search(self, pattern):
+        return re.search(pattern, self.line)
+
+class Output:
+
+    def __init__(self, name, noheader=0):
+        self.name = name
+        self.write = open(name, 'w').write
+        sys.stderr.write("Writing %s\n" % name)
+        if not noheader:
+            self.write("""\
 /* DO NOT MODIFY THIS FILE!  It was generated by `recode/doc/tables.py'.  */
 
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -68,31 +121,11 @@ OVERALL_HEADER = """\
    License along with the `recode' Library; see the file `COPYING.LIB'.
    If not, write to the Free Software Foundation, Inc., 59 Temple Place -
    Suite 330, Boston, MA 02111-1307, USA.  */
-"""
-
-# Ignore any mnemonic whose length is greater than MAX_MNEMONIC_LENGTH.
-MAX_MNEMONIC_LENGTH = 3
-
-# Character constants.
-REPLACEMENT_CHARACTER = 0xFFFD
-NOT_A_CHARACTER = 0xFFFF
-
-# Change STRIP_SIZE in `src/recode.h' if you change the value here.
-# See the accompanying documentation there, as needed.
-STRIP_SIZE = 8
+""")
 \f
 # Main driver.
 
-def warn(format, *args):
-    sys.stderr.write('%s:%s: %s\n' % (input_name, line_count, format % args))
-
-def die(format, *args):
-    sys.stderr.write('%s:%s: %s\n' % (input_name, line_count, format % args))
-    raise 'Fatal'
-
 def main(*arguments):
-    global input_name
-    global line_count
     global input
 
     global alias_count
@@ -102,9 +135,11 @@ def main(*arguments):
 
     global charname_option
     global explode_option
+    global libiconv_option
     global mnemonic_option
     global strip_option
-    global texinfo_option
+    global libiconv_texinfo_option
+    global rfc1345_texinfo_option
 
     import getopt
 
@@ -112,17 +147,21 @@ def main(*arguments):
     French_option = 0
     charname_option = 0
     explode_option = 0
+    libiconv_option = 0
     mnemonic_option = 0
     strip_option = 0
-    texinfo_option = 0
-    options, arguments = getopt.getopt(arguments, 'Femnpt')
+    libiconv_texinfo_option = 0
+    rfc1345_texinfo_option = 0
+    options, arguments = getopt.getopt(arguments, 'Felmnpst')
     for option, value in options:
         if option == '-F': French_option = 1
         elif option == '-e': explode_option = 1
+        elif option == '-l': libiconv_option = 1
         elif option == '-m': mnemonic_option = 1
         elif option == '-n': charname_option = 1
         elif option == '-p': strip_option = 1
-        elif option == '-t': texinfo_option = 1
+        elif option == '-s': libiconv_texinfo_option = 1
+        elif option == '-t': rfc1345_texinfo_option = 1
     if not arguments:
         raise __doc__
 
@@ -140,89 +179,94 @@ def main(*arguments):
 
     # Read all data tables.
 
-    for input_name in arguments:
-        input = open(input_name)
-        line_count = 0
-        sys.stderr.write("Reading %s\n" % input_name)
+    for name in arguments:
+        input = Input(name)
         while 1:
             line = input.readline()
-            line_count = line_count + 1
             if not line:
                 break
-            if re.match('$', line):
+            if line[0] == '\n':
+                continue
+            if line[0:2] == '/*':
+                while string.find(line, '*/') < 0:
+                    line = input.readline()
                 continue
 
-            if re.match('\#    Name:', line):
+            if input.begins('DEFENCODING'):
+                digest_libiconv()
+                break
+
+            if input.begins('#    Name:'):
                 digest_unimap()
                 break
 
-            if re.match('\#', line):
+            if line[0] == '#':
                 continue
 
-            if re.match('escape_char', line):
+            if input.begins('escape_char'):
                 digest_mnemonics()
                 break
 
-            if re.match('Network Working Group +K\. Simonsen$', line):
+            if input.match('Network Working Group +K\. Simonsen$'):
                 if charname_option and not French_option:
-                    while not re.match('   3rd field is the long descriptive',
-                                       line):
+                    while not input.begins(
+                        '   3rd field is the long descriptive'):
                         line = input.readline()
-                        line_count = line_count + 1
                     digest_rfc1345_names()
                 if explode_option or strip_option:
-                    while not re.match('5\.  CHARSET TABLES$', line):
+                    while line != '5.  CHARSET TABLES\n':
                         line = input.readline()
-                        line_count = line_count + 1
                     digest_rfc1345_tables()
                 break
 
-            if re.match(';Titre :', line):
+            if input.begins(';Titre :'):
                 if charname_option and French_option:
-                    while not re.match('; SOUSCRIT', line):
+                    while input.begins('; SOUSCRIT'):
                         line = input.readline()
-                        line_count = line_count + 1
-                    while not re.match(' *$', line):
+                    while not input.match(' *$'):
                         line = input.readline()
-                        line_count = line_count + 1
                     digest_french_names()
                 break
 
-            if re.match('&referenceset$', line):
-                while not re.match('$', line):
+            if line == '&referenceset\n':
+                while line != '\n':
                     line = input.readline()
-                    line_count = line_count + 1
                 digest_rfc1345_tables()
                 break
 
-            if re.match('   Repertoire according to ISO/IEC 10646-1:1993$',
-                        line):
-                while not re.match('   Plane 000$', line):
+            if line == '   Repertoire according to ISO/IEC 10646-1:1993\n':
+                while line != '   Plane 000\n':
                     line = input.readline()
-                    line_count = line_count + 1
                 digest_iso10646_def()
                 break
 
-            die("Data file with unknown contents")
+            input.die("Data file with unknown contents")
 
-        input.close()
+        del input
 
     if explode_option:
-        produce_explode_term(EXPLODE)
+        produce_explode_term()
     elif strip_option:
-        produce_strip_term(DATA, POOL)
+        produce_strip_term(POOL)
     if charname_option:
         if French_option:
             produce_charname('fr-%s' % CHARNAME)
         else:
             produce_charname(CHARNAME)
+    if libiconv_option:
+        produce_libiconv(LIBICONV)
     if mnemonic_option:
-        produce_mnemonic(MNEMONIC)
-    if texinfo_option:
+        produce_mnemonic(RFC1345_MNEMONIC)
+    if libiconv_texinfo_option:
+        if French_option:
+            produce_libiconv_texinfo('fr-%s' % LIBICONV_TEXINFO)
+        else:
+            produce_libiconv_texinfo(LIBICONV_TEXINFO)
+    if rfc1345_texinfo_option:
         if French_option:
-            produce_texinfo('fr-%s' % TEXINFO)
+            produce_rfc1345_texinfo('fr-%s' % RFC1345_TEXINFO)
         else:
-            produce_texinfo(TEXINFO)
+            produce_rfc1345_texinfo(RFC1345_TEXINFO)
 \f
 # Data readers.
 
@@ -231,82 +275,121 @@ def main(*arguments):
 ## ----------------------------------------- ##
 
 def digest_iso10646_def():
-    global line_count
     global row, cell
 
     while 1:
         line = input.readline()
-        line_count = line_count + 1
         if not line:
             break
-        if re.match('$', line):
+        if line == '\n':
             continue
-        if re.match(' $', line):
+        if line == ' \n':
             continue                    # happens three times
-        if re.match('   \.\.\.', line):
+        if input.begins('   \.\.\.'):
             continue
-        if re.match('   Presentation forms$', line):
+        if line == '   Presentation forms\n':
             continue
-        if re.match('   naming: first vertical ', line):
+        if input.begins('   naming: first vertical '):
             continue
 
-        match = re.match('   row ([0-9][0-9][0-9])$', line)
+        match = input.match('   row ([0-9][0-9][0-9])$')
         if match and int(match.group(1)) < 256:
             row = int(match.group(1))
             cell = 0
             continue
 
-        if re.match('   cell 00$', line):
+        if line == '   cell 00\n':
             cell = 0
             continue
 
-        match = re.match('   cell ([0-9][0-9][0-9])$', line)
+        match = input.match('   cell ([0-9][0-9][0-9])$')
         if match and int(match.group(1)) < 256:
             cell = int(match.group(1))
             continue
 
-        match = re.match('   ([^ ]+)', line)
+        match = input.match('   ([^ ]+)')
         if match:                       # FIXME: $1 n'a pas de sens!
             # s/^   // unless /^   [A-Z][A-Z][A-Z]/;
-            if not re.match('   [A-Z][A-Z][A-Z]', line):
+            if not input.match('   [A-Z][A-Z][A-Z]'):
                 continue
 
-        match = re.match('   ([^ ].*)', line)
+        match = input.match('   ([^ ].*)')
         if match:                       # FIXME: $1 n'a pas de sens!
             if cell == 256:
-                warn("Over 256 cells in row %d", row)
+                input.warn("Over 256 cells in row %d", row)
             cell = cell + 1
             continue
 
-        match = (re.match('([^ ])  ([^ ].*)', line)
-                 or re.match('([^ ][^ ]+) ([^ ].*)', line))
+        match = (input.match('([^ ])  ([^ ].*)')
+                 or input.match('([^ ][^ ]+) ([^ ].*)'))
         if match:                       # FIXME: $2 n'a pas de sens!
             if cell == 256:
-                warn("Over 256 cells in row %d", row)
+                input.warn("Over 256 cells in row %d", row)
             declare_mnemonic(match.group(1), 256*row + cell)
             cell = cell + 1
             continue
 
-        warn("Unrecognised line")
+        input.warn("Unrecognised line")
 
 ## -------------------------- ##
 ## Read in a mnemonics file.  ##
 ## -------------------------- ##
 
 def digest_mnemonics():
-    global line_count
-
-    while 1:
-        line = input.readline()
-        line_count = line_count + 1
-        if not line:
-            break
-        match = re.match('<([^ \t\n]+)>\t<U(....)>', line)
+    while input.readline():
+        match = input.match('<([^ \t\n]+)>\t<U(....)>')
         if match:
             mnemonic = re.sub('/(.)', r'\1', match.group(1))
             ucs2 = string.atoi(match.group(2), 16)
             declare_mnemonic(mnemonic, ucs2)
 
+## ---------------------------------------------- ##
+## Read in the encodings.def file from libiconv.  ##
+## ---------------------------------------------- ##
+
+def digest_libiconv():
+    global libiconv_data
+
+    canonical = {}
+    for charset in ('Georgian-Academy', 'Georgian-PS', 'MuleLao-1',
+                    'Macintosh', 'MacArabic', 'MacCentralEurope',
+                    'MacCroatian', 'MacCyrillic', 'MacGreek', 'MacHebrew',
+                    'MacIceland', 'MacRoman', 'MacRomania', 'MacThai',
+                    'MacTurkish', 'MacUkraine'):
+        canonical[string.upper(charset)] = charset
+
+    libiconv_data = []
+    comment = None
+    line = input.line
+    while line:
+        if input.begins('DEFENCODING(('):
+            aliases = []
+            match = re.search('"(.*)"', line)
+            if match:
+                alias = match.group(1)
+                if canonical.has_key(alias):
+                    alias = canonical[alias]
+                aliases.append(alias)
+            line = string.lstrip(input.readline())
+            while line != '),\n':
+                match = re.search('"(.*)"', line)
+                if match:
+                    alias = match.group(1)
+                    if canonical.has_key(alias):
+                        alias = canonical[alias]
+                    aliases.append(alias)
+                line = string.lstrip(input.readline())
+            while line and line != '\n':
+                line = input.readline()
+            libiconv_data.append((comment, aliases[0], aliases[1:]))
+            comment = None
+        else:
+            if input.begins('/*'):
+                comment = line[3:-4]
+            elif line != '\n':
+                input.warn("Unrecognised line")
+            line = input.readline()
+
 ## ------------------------------------------------------------------- ##
 ## Read the text of RFC 1345, saving all character names it declares.  ##
 ## ------------------------------------------------------------------- ##
@@ -327,24 +410,21 @@ def digest_rfc1345_names():
     global max_length
 
     def read_line():
-        global line_count
-
         skip = 0
         while 1:
             line = input.readline()
-            line_count = line_count + 1
             if not line:
                 break
-            if re.match('Simonsen', line):
+            if input.begins('Simonsen'):
                 skip = 1
                 continue
             if skip:
-                if re.match('RFC 1345', line):
+                if input.begins('RFC 1345'):
                     skip = 0
                 continue
-            if re.match('4.  CHARSETS', line):
+            if input.begins('4.  CHARSETS'):
                 break
-            if re.match('$', line):
+            if line == '\n':
                 continue
             if line[0] == ' ':
                 return string.lstrip(line[:-1])
@@ -383,14 +463,13 @@ def digest_rfc1345_names():
                     else:
                         code_map[word] = 1
             elif len(mnemo) <= MAX_MNEMONIC_LENGTH:
-                warn("No known UCS-2 code for `%s'", mnemo)
+                input.warn("No known UCS-2 code for `%s'", mnemo)
         elif not re.search(' +e000', line):
-            warn("What about `%s'?", line)
+            input.warn("Unrecognised line")
 
         line = next
 
 def digest_french_names():
-    global line_count
     global max_length
 
     max_length = 0
@@ -495,13 +574,13 @@ def digest_french_names():
 
     while 1:
         line = input.readline()
-        line_count = line_count + 1
         if not line:
             break
         if line[-1] == '\n':
             line = line[:-1]
         line = string.rstrip(line)
-        match = re.match('([0-9A-F]{4}) ([^\(]+)( \(.*\))?$', line)
+        input.line = line
+        match = input.match('([0-9A-F]{4}) ([^\(]+)( \(.*\))?$')
         if match:
             ucs = string.atoi(match.group(1), 16)
             text = string.translate(match.group(2), folding)
@@ -515,7 +594,7 @@ def digest_french_names():
                 else:
                     code_map[word] = 1
         else:
-            warn("What about `%s'?", line)
+            input.warn("Unrecognised line")
 
 ## ------------------------------------------------------------ ##
 ## Read the text of RFC 1345, saving all charsets it declares.  ##
@@ -537,7 +616,6 @@ def digest_rfc1345_tables():
     global alias_count
     global aliases
     global charset
-    global line_count
     global comment
     global discard_charset
     global remark
@@ -549,28 +627,28 @@ def digest_rfc1345_tables():
     skip = 0
     while 1:
         line = input.readline()
-        line_count = line_count + 1
         if not line:
             break
-        if re.match('Simonsen', line):
+        if input.begins('Simonsen'):
             skip = 1
             continue
         if skip:
-            if re.match('RFC 1345', line):
+            if input.begins('RFC 1345'):
                 skip = 0
             continue
-        if re.match('$', line):
+        if line == '\n':
             continue
-        if re.match('ACKNOWLEDGEMENTS$', line):
+        if line == 'ACKNOWLEDGEMENTS\n':
             break
 
         line, count = re.subn('^  ?', '', line)
         if not count:
             continue
+        input.line = line
 
        # Recognize `&charset'.
 
-        match = re.match('&charset (.*)', line)
+        match = input.match('&charset (.*)')
         if match:
            # Before beginning a new charset, process the previous one.
             complete_charset()
@@ -588,7 +666,7 @@ def digest_rfc1345_tables():
 
             hashname = re.sub('[^a-z0-9]', '', string.lower(charset))
             if used_map.has_key(hashname):
-                warn("Duplicate of %s (discarded)", used_map[hashname])
+                input.warn("Duplicate of %s (discarded)", used_map[hashname])
                 discard_charset = 1
                 continue
             used_map[hashname] = charset
@@ -609,17 +687,16 @@ def digest_rfc1345_tables():
                 alias_count = alias_count + 1
                 continue
 
-#FIXME:            match = re.match('windows-([0-9]+)$', charset)
-#FIXME:            if match:
-#FIXME:                  implied_surface[match.group(1)] = 'crlf'
-#FIXME:                  implied_surface['CP' + match.group(1)] = 'crlf'
-#FIXME:                  implied_surface['IBM' + match.group(1)] = 'crlf'
-#FIXME:                  declare_alias.append((charset, charset))
-#FIXME:                  alias_count = alias_count + 1
-#FIXME:                  continue
+            #FIXME:match = re.match('windows-([0-9]+)$', charset)
+            #FIXME:if match:
+            #FIXME:      implied_surface[match.group(1)] = 'crlf'
+            #FIXME:      implied_surface['CP' + match.group(1)] = 'crlf'
+            #FIXME:      implied_surface['IBM' + match.group(1)] = 'crlf'
+            #FIXME:      declare_alias.append((charset, charset))
+            #FIXME:      alias_count = alias_count + 1
+            #FIXME:      continue
 
-            match = re.match('macintosh(_ce)?$', charset)
-            if match:
+            if charset in ('macintosh', 'macintosh_ce'):
                 implied_surface[charset] = 'cr'
                 declare_alias.append((charset, charset))
                 alias_count = alias_count + 1
@@ -629,36 +706,36 @@ def digest_rfc1345_tables():
 
        # Recognize other `&' directives.
 
-        match = re.match('&rem (.*)', line)
-        if match and not re.match('&rem &alias', line):
+        match = input.match('&rem (.*)')
+        if match and not input.begins('&rem &alias'):
            # Keld now prefers `&rem' to be allowed everywhere.
            #if status > REM:
-           #    warn("`&rem' out of sequence")
+           #    input.warn("`&rem' out of sequence")
            #status = REM;
 
-            if texinfo_option:
+            if rfc1345_texinfo_option:
                # Save remarks for Texinfo.
                 text = match.group(1)
                 remark.append(text)
             continue
 
-        match = re.match('(&rem )?&alias (.*)', line)
+        match = input.match('(&rem )?&alias (.*)')
         if match:
             if status > ALIAS:
-                warn("`&alias' out of sequence")
+                input.warn("`&alias' out of sequence")
             status = ALIAS
 
            # Save synonymous charset names for later declarations.
 
             alias = match.group(2)
             if alias[-1] == ' ':
-                warn("Spurious trailing whitespace")
+                input.warn("Spurious trailing whitespace")
                 alias = string.rstrip(alias)
             comment = comment + '   %s\n' % alias
 
             hashname = re.sub('[^a-z0-9]', '', string.lower(alias))
             if used_map.has_key(hashname) and used_map[hashname] != charset:
-                warn("Duplicate of %s", used_map[hashname])
+                input.warn("Duplicate of %s", used_map[hashname])
                 continue
             used_map[hashname] = charset
 
@@ -669,34 +746,34 @@ def digest_rfc1345_tables():
                 implied_surface[match.group(2)] = 'crlf'
                 implied_surface['CP' + match.group(2)] = 'crlf'
                 implied_surface['IBM' + match.group(2)] = 'crlf'
-            elif re.match('mac(ce)?$', alias):
+            elif alias in ('mac', 'macce'):
                 implied_surface[alias] = 'cr'
             declare_alias.append((alias, charset))
             alias_count = alias_count + 1
             continue
 
-        if re.match('&g[0-4]esc', line):
+        if input.match('&g[0-4]esc'):
             if status > ESC:
-                warn("`&esc' out of sequence")
+                input.warn("`&esc' out of sequence")
             status = ESC
             continue
 
-        match = re.match('&bits ([0-9]+)$', line)
+        match = input.match('&bits ([0-9]+)$')
         if match:
             if status > BITS:
-                warn("`&bits' out of sequence")
+                input.warn("`&bits' out of sequence")
             status = BITS
 
             if int(match.group(1)) > 8:
-                warn("`&bits %s' not accepted (charset discarded)",
-                     match.group(1))
+                input.warn("`&bits %s' not accepted (charset discarded)",
+                           match.group(1))
                 discard_charset = 1
             continue
 
-        match = re.match('&code (.*)', line)
+        match = input.match('&code (.*)')
         if match:
             if status > CODE:
-                warn("`&code' out of sequence")
+                input.warn("`&code' out of sequence")
             status = CODE
 
            # Save the code position.
@@ -706,10 +783,11 @@ def digest_rfc1345_tables():
 
        # Other lines cause the charset to be discarded.
 
-        match = re.match('&([^ ]+)', line)
+        match = input.match('&([^ ]+)')
         if match:
             if not discard_charset:
-                warn("`&%s' not accepted (charset discarded)", match.group(1))
+                input.warn("`&%s' not accepted (charset discarded)",
+                           match.group(1))
                 discard_charset = 1
 
         if discard_charset:
@@ -728,7 +806,7 @@ def digest_rfc1345_tables():
                     if len(token) > codedim:
                         codedim = len(token)
                 else:
-                    warn("Unknown mnemonic for code: %s", token)
+                    input.warn("Unknown mnemonic for code: %s", token)
                     table[code] = REPLACEMENT_CHARACTER
                 code = code + 1
 
@@ -745,11 +823,11 @@ def digest_unimap():
     global charset
     global comment
     global discard_charset
-    global line_count
     global remark
     global table
 
-    match = re.match('# +Name: +([^ ]+) to Unicode table$', line)
+    line = input.line
+    match = input.match('# +Name: +([^ ]+) to Unicode table$')
     if match:
         name = string.split(match.group(1))
         charset = name[0]
@@ -758,8 +836,8 @@ def digest_unimap():
 
         hashname = re.sub('[^a-z0-9]', '', string.lower(charset))
         if used_map[hashname]:
-            warn("`%s' duplicates `%s' (charset discarded)",
-                 hashname, used_map[hashname])
+            input.warn("`%s' duplicates `%s' (charset discarded)",
+                       hashname, used_map[hashname])
             discard_charset = 1
             return
         used_map[hashname] = charset
@@ -778,7 +856,7 @@ def digest_unimap():
 
         hashname = re.sub('[^a-z0-9]', '', string.lower(alias))
         if used_map[hashname] and used_map[hashname] != charset:
-            warn("`%s' duplicates `%s'", hashname, used_map[hashname])
+            input.warn("`%s' duplicates `%s'", hashname, used_map[hashname])
             continue
         used_map[hashname] = charset
 
@@ -788,25 +866,24 @@ def digest_unimap():
 
     while 1:
         line = input.readline()
-        line_count = line_count + 1
         if not line:
             break
-        if re.match('$', line):
+        if line == '\n':
             continue
-        if re.match('#', line):
+        if line[0] == '#':
             continue
-        if re.match('0x([0-9A-F]+)\t\t#UNDEFINED$', line):
+        if input.match('0x([0-9A-F]+)\t\t#UNDEFINED$'):
             continue
-        if re.search('\032', line):
+        if input.search('\032'):
             # Old MS-DOS C-z !!
             break
 
-        match = re.match('0x([0-9A-F]+)\t0x([0-9A-F]+)\t\#', line)
+        match = input.match('0x([0-9A-F]+)\t0x([0-9A-F]+)\t\#')
         if match:
             table[string.atoi(match.group(1), 16)] \
                                               = string.atoi(match.group(2), 16)
         else:
-            warn("Unrecognised input line")
+            input.warn("Unrecognised input line")
 
     complete_charset()
 \f
@@ -828,8 +905,8 @@ def declare_mnemonic(mnemonic, ucs2):
     if mnemonic_option:
         if mnemonic_map.has_key(ucs2):
             if mnemonic_map[ucs2] != mnemonic:
-                warn("U+%04X `%s' known as `%s'",
-                     ucs2, mnemonic, mnemonic_map[ucs2])
+                input.warn("U+%04X `%s' known as `%s'",
+                           ucs2, mnemonic, mnemonic_map[ucs2])
                 if len(mnemonic) < len(mnemonic_map[ucs2]):
                     mnemonic_map[ucs2] = mnemonic
 
@@ -840,8 +917,8 @@ def declare_mnemonic(mnemonic, ucs2):
     if charname_option or explode_option or strip_option:
         if ucs2_map.has_key(mnemonic):
             if ucs2_map[mnemonic] != ucs2:
-                warn("`%s' U+%04X known as U+%04X",
-                     mnemonic, ucs2, ucs2_map[mnemonic])
+                input.warn("`%s' U+%04X known as U+%04X",
+                           mnemonic, ucs2, ucs2_map[mnemonic])
                 #FIXME: ??? cell = ucs2_map[mnemonic] - 256*row
         else:
             ucs2_map[mnemonic] = ucs2
@@ -870,7 +947,7 @@ def complete_charset():
     if not comment:
         return
 
-    if texinfo_option:
+    if rfc1345_texinfo_option:
 
        # Save the documentation.
         aliases.sort()
@@ -956,14 +1033,11 @@ def pool_index(strip):
 ## Write a compressed list of character names.  ##
 ## -------------------------------------------- ##
 
-def produce_charname(output_name):
+def produce_charname(name):
     global output
 
-    output = open(output_name, 'w')
-    sys.stderr.write("Writing %s\n" % output_name)
-
+    output = Output(name)
     write = output.write
-    write(OVERALL_HEADER)
 
     # Establish a mild compression scheme.  Words word[0:singles] will be
     # represented by a single byte running from 1 to singles.  All remaining
@@ -1053,22 +1127,72 @@ def produce_charname(output_name):
         write('"},\n')
 
     write('  };\n')
-    output.close()
+    del output
+
+## ------------------------------- ##
+## Write libiconv initialisation.  ##
+## ------------------------------- ##
+
+def produce_libiconv(name):
+    global output
+
+    output = Output(name)
+    write = output.write
+
+    count = 1
+    for comment, charset, aliases in libiconv_data:
+        count = count + 2 + len(aliases)
+    write('\n')
+    write("/* This is derived from Bruno Haible's `libiconv' package.  */")
+    write('\n')
+    write('static const char *iconv_name_list[%d] =\n' % count)
+    write('  {\n')
+    for comment, charset, aliases in libiconv_data:
+        if comment:
+            write('\n')
+            write('    /* %s.  */\n' % comment)
+            write('\n')
+        if aliases:
+            write('    "%s",\n' % charset)
+            for alias in aliases[:-1]:
+                write('\t"%s",\n' % alias)
+            write('\t"%s", NULL,\n' % aliases[-1])
+        else:
+            write('    "%s", NULL,\n' % charset)
+    write('    NULL\n')
+    write('  };\n')
+
+    write('\n')
+    write('typedef void *iconv_t;\n')
+    write('#ifndef EILSEQ\n')
+    write('# define EILSEQ EINVAL\n')
+    write('#endif\n')
+    write('\n')
+    write('#ifdef __cplusplus\n')
+    write('extern "C" {\n')
+    write('#endif\n')
+    write('\n')
+    write('iconv_t iconv_open (const char *, const char *);\n')
+    write('size_t iconv'
+          ' (iconv_t, const char **, size_t *, char **, size_t *);\n')
+    write('extern int iconv_close (iconv_t cd);\n')
+    write('\n')
+    write('#ifdef __cplusplus\n')
+    write('}\n')
+    write('#endif\n')
+
+    del output
 
 ## ------------------------------------------- ##
 ## Write an UCS-2 to RFC 1345 mnemonic table.  ##
 ## ------------------------------------------- ##
 
-def produce_mnemonic(output_name):
+def produce_mnemonic(name):
     global output
-
     inverse_map = {}
 
-    output = open(output_name, 'w')
-    sys.stderr.write("Writing %s\n" % output_name)
-
+    output = Output(name)
     write = output.write
-    write(OVERALL_HEADER)
     write('\n')
     write('#define TABLE_LENGTH %d\n' % table_length)
     write('#define MAX_MNEMONIC_LENGTH %d\n' % MAX_MNEMONIC_LENGTH)
@@ -1111,31 +1235,26 @@ def produce_mnemonic(output_name):
     write('\n')
     write('  };\n')
 
-    output.close()
+    del output
 
 ## ------------------------------- ##
 ## Write the explode source file.  ##
 ## ------------------------------- ##
 
-def produce_explode_init(output_name):
+def produce_explode_init(name):
     global output
 
-    # Prepare the production of tables.
-    output = open(output_name, 'w')
-    sys.stderr.write("Starting %s\n" % output_name)
-
+    output = Output(name)
     write = output.write
-    write(OVERALL_HEADER)
-
     write('\n')
     write('#include "common.h"\n')
 
     # Table fragments will be produced while reading data tables.
 
-def produce_explode_term(output_name):
+def produce_explode_term():
 
     # Print the collectable initialization function.
-    sys.stderr.write("Completing %s\n" % output_name)
+    sys.stderr.write("Completing %s\n" % output.name)
 
     write = output.write
     write('\n')
@@ -1158,13 +1277,13 @@ def produce_explode_term(output_name):
     write('  return true;\n')
     write('}\n')
 
-    output.close()
+    del output
 
 ## --------------------------------- ##
 ## Write the pool and index tables.  ##
 ## --------------------------------- ##
 
-def produce_strip_init(output_name):
+def produce_strip_init(name):
     global output
     global pool_refs
     global pool_size
@@ -1177,17 +1296,14 @@ def produce_strip_init(output_name):
     strip_map = {}
     strips = []
 
-    output = open(output_name, 'w')
-    sys.stderr.write("Starting %s\n" % output_name)
-
+    output = Output(name)
     write = output.write
-    write(OVERALL_HEADER)
     write('\n')
     write('#include \"common.h\"\n')
 
     # Table fragments will be produced while reading data tables.
 
-def produce_strip_term(output_name, pool_name):
+def produce_strip_term(pool_name):
     global output
 
     # Give memory statistics.
@@ -1197,7 +1313,7 @@ def produce_strip_term(output_name, pool_name):
                         pool_refs * 2))
 
     # Print the collectable initialization function.
-    sys.stderr.write("Completing %s\n" % output_name)
+    sys.stderr.write("Completing %s\n" % output.name)
     write = output.write
 
     write('\n')
@@ -1231,16 +1347,12 @@ def produce_strip_term(output_name, pool_name):
     write('\n')
     write('  return true;\n')
     write('}\n')
-
-    output.close()
+    del output
 
     # Write the pool file.
 
-    output = open(pool_name, 'w')
-    sys.stderr.write("Writing %s\n" % pool_name)
-
+    output = Output(pool_name)
     write = output.write
-    write(OVERALL_HEADER)
     write('\n')
     write('#include \"common.h\"\n')
     write('\n')
@@ -1260,46 +1372,86 @@ def produce_strip_term(output_name, pool_name):
     write('\n')
     write('  };\n')
 
-    output.close()
+    del output
+
+## ------------------------------- ##
+## Write the documentation files.  ##
+## ------------------------------- ##
+
+def produce_libiconv_texinfo(name):
+    global output
+
+    output = Output(name, noheader=1)
+    write = output.write
+    write('\n')
+    write('@itemize @bullet\n')
+    block = None
+    for comment, charset, aliases in libiconv_data:
+        if not block and not comment:
+            comment = 'General character sets'
+        if comment:
+            if block:
+                write('@end table\n')
+                write('\n')
+            write('@item %s\n' % comment)
+            write('@table @code\n')
+            block = comment
+        else:
+            write('\n')
+        write('@item %s\n' % charset)
+        if aliases:
+            write('@tindex %s@r{, aliases}\n'
+                  % re.sub(':([0-9]+)', r'(\1)', charset))
+            for alias in aliases:
+                write('@tindex %s\n' % re.sub(':([0-9]+)', r'(\1)', alias))
+            if len(aliases) == 1:
+                write('@code{%s} is an alias for this charset.\n' % aliases[0])
+            else:
+                write('@code{%s} and @code{%s} are aliases for this charset.\n'
+                      % (string.join(aliases[:-1], '}, @code{'), aliases[-1]))
+        else:
+            write('@tindex %s\n' % re.sub(':([0-9]+)', r'(\1)', charset))
+    write('@end table\n')
+    write('@end itemize\n')
 
-## ------------------------------ ##
-## Write the documentation file.  ##
-## ------------------------------ ##
+    del output
 
-def produce_texinfo(output_name):
+def produce_rfc1345_texinfo(name):
     global output
 
-    output = open(output_name, 'w')
-    sys.stderr.write("Writing %s\n" % output_name)
+    output = Output(name, noheader=1)
     write = output.write
 
     charsets = remark_map.keys()
     charsets.sort()
     for charset in charsets:
-        write('\n@item %s\n' % charset)
-       write('@tindex %s@r{, aliases and source}\n' % charset)
+        write('\n')
+        write('@item %s\n' % charset)
+       write('@tindex %s@r{, aliases and source}\n'
+              % re.sub(':([0-9]+)', r'(\1)', charset))
         aliases = aliases_map[charset]
         if aliases:
             if len(aliases) == 1:
                 if aliases[0]:                # FIXME: pourquoi parfois vide ??
-                    write('@tindex %s\n' % aliases[0])
+                    write('@tindex %s\n'
+                          % re.sub(':([0-9]+)', r'(\1)', aliases[0]))
                     write('@code{%s} is an alias for this charset.\n'
                           % aliases[0])
             else:
                 for alias in aliases:
-                    write('@tindex %s\n' % alias)
+                    write('@tindex %s\n'
+                          % re.sub(':([0-9]+)', r'(\1)', alias))
                 write('@code{%s} and @code{%s} are aliases for this charset.\n'
                       % (string.join(aliases[:-1], '}, @code{'), aliases[-1]))
         for line in remark_map[charset]:
-            match = re.match('([a-z])(.*)', line)
-            if match:
-                line = string.upper(match.group(1)) + match.group(2)
-            write(re.sub('@', '@@', line))
+            if line[0] in string.lowercase:
+                line = string.upper(line[0]) + line[1:]
+            write(string.replace(line, '@', '@@'))
             if line[-1] != '.':
                 write('.')
             write('\n')
 
-    output.close()
+    del output
 
 if __name__ == '__main__':
     apply(main, tuple(sys.argv[1:]))
index 6a2be21d353fe7f5edd38b1b61b35460ac3adf66..d83d668a15c80080159384d9437dd945be0046b9 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 19 December 1999
-@set EDITION 3.5a
-@set VERSION 3.5a
+@set UPDATED 29 December 1999
+@set EDITION 3.5c
+@set VERSION 3.5c
index 95c751ebc2db25ba219b5c72ce5d3a93e76f26ab..1f9ebecbbd218e20072865b3ffdcd97289c1ade4 100644 (file)
@@ -1,25 +1,25 @@
-1999-12-14  Fran\e.A\8eçois Pinard  <pinard@iro.umontreal.ca>
+1999-12-14  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am: New file.
        * Makefile.in.in, POTFILES.in, cat-id-tbl.c, stamp-cat-id: Deleted.
 
-1999-12-13  Fran\8eçois Pinard  <pinard@iro.umontreal.ca>
+1999-12-13  François Pinard  <pinard@iro.umontreal.ca>
 
        * de.po, pl.po, sv.po: Updated.
 
-1999-11-27  Fran\8eçois Pinard  <pinard@iro.umontreal.ca>
+1999-11-27  François Pinard  <pinard@iro.umontreal.ca>
 
        * it.po: New file.
 
-1999-06-22  Fran\8eçois Pinard  <pinard@iro.umontreal.ca>
+1999-06-22  François Pinard  <pinard@iro.umontreal.ca>
 
        * el.po: New file.
 
-1999-06-14  Fran\8eçois Pinard  <pinard@iro.umontreal.ca>
+1999-06-14  François Pinard  <pinard@iro.umontreal.ca>
 
        * de.po: Updated.
-\f
-1999-06-01  Fran\8eçois Pinard  <pinard@iro.umontreal.ca>
+
+1999-06-01  François Pinard  <pinard@iro.umontreal.ca>
 
        * da.po, es.po, fr.po: Updated.
 
index fdad93d5117c02d0880ab1789ed0444f7cb67368..9f44077b8b14a16f1a99eec726118a8fe5bfc22b 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-12-19 23:12-0500\n"
+"POT-Creation-Date: 1999-12-29 11:11-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
 "Content-Transfer-Encoding: ENCODING\n"
 
 #. Dump all characters.
-#: src/debug.c:287
+#: src/debug.c:286
 msgid ""
 "UCS2   Mne   Description\n"
 "\n"
@@ -247,46 +247,46 @@ msgid ""
 "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 msgstr ""
 
-#: src/main.c:775
+#: src/main.c:777
 #, c-format
 msgid "Deprecated syntax, please prefer `%s'"
 msgstr ""
 
-#: src/main.c:781
+#: src/main.c:783
 #, c-format
 msgid "Erroneous request `%s'"
 msgstr ""
 
-#: src/main.c:879
+#: src/main.c:881
 #, c-format
 msgid "Recoding %s..."
 msgstr ""
 
-#: src/main.c:889
+#: src/main.c:891
 msgid " done\n"
 msgstr ""
 
-#: src/main.c:930
+#: src/main.c:932
 #, c-format
 msgid " failed: %s in step `%s..%s'\n"
 msgstr ""
 
-#: src/main.c:937
+#: src/main.c:939
 #, c-format
 msgid "%s failed: %s in step `%s..%s'"
 msgstr ""
 
-#: src/main.c:960
+#: src/main.c:962
 #, c-format
 msgid "%s in step `%s..%s'"
 msgstr ""
 
-#: src/names.c:317
+#: src/names.c:316
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr ""
 
-#: src/names.c:819
+#: src/names.c:818
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr ""
@@ -296,147 +296,147 @@ msgstr ""
 #. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:973 src/names.c:1019
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr ""
 
-#: src/names.c:1039
+#: src/names.c:1038
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr ""
 
-#: src/outer.c:95
+#: src/outer.c:96
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr ""
 
-#: src/outer.c:102
+#: src/outer.c:103
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr ""
 
-#: src/recode.c:115 src/recode.c:127
+#: src/recode.c:114 src/recode.c:126
 msgid "Virtual memory exhausted"
 msgstr ""
 
-#: src/recode.c:155
+#: src/recode.c:154
 #, c-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr ""
 
-#: src/recode.c:169
+#: src/recode.c:168
 #, c-format
 msgid "No character recodes to %3d"
 msgstr ""
 
-#: src/recode.c:170
+#: src/recode.c:169
 msgid "Cannot invert given one-to-one table"
 msgstr ""
 
-#: src/recode.c:224 src/recode.c:236
+#: src/recode.c:223 src/recode.c:235
 #, c-format
 msgid "Following diagnostics for `%s' to `%s'"
 msgstr ""
 
-#: src/recode.c:229 src/recode.c:241
+#: src/recode.c:228 src/recode.c:240
 #, c-format
 msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>"
 msgstr ""
 
-#: src/recode.c:272
+#: src/recode.c:271
 msgid "Cannot complete table from set of known pairs"
 msgstr ""
 
-#: src/recode.c:492
+#: src/recode.c:489
 msgid "Identity recoding, not worth a table"
 msgstr ""
 
-#: src/recode.c:499
+#: src/recode.c:496
 msgid "Recoding is too complex for a mere table"
 msgstr ""
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:528
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr ""
 
-#: src/recode.c:533
+#: src/recode.c:530
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr ""
 
-#: src/recode.c:724
+#: src/recode.c:721
 msgid "No table to print"
 msgstr ""
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr ""
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr ""
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr ""
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr ""
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr ""
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr ""
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr ""
 
-#: src/request.c:244
+#: src/request.c:243
 msgid "Virtual memory exhausted!"
 msgstr ""
 
-#: src/request.c:263
+#: src/request.c:262
 msgid "Step initialisation failed"
 msgstr ""
 
-#: src/request.c:270
+#: src/request.c:269
 msgid "Step initialisation failed (unprocessed options)"
 msgstr ""
 
-#: src/request.c:566
+#: src/request.c:565
 #, c-format
 msgid "Request: %s\n"
 msgstr ""
 
-#: src/request.c:702
+#: src/request.c:717
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr ""
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:821 src/request.c:927
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr ""
 
-#: src/request.c:884
+#: src/request.c:899
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr ""
 
-#: src/request.c:992
+#: src/request.c:1007
 msgid "Expecting `..' in request"
 msgstr ""
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:766 src/task.c:939
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr ""
index 2d66af6df19f46b2195b347597ac4b54046621a1..975509cc0e20265493126532aaf4d25c136176ad 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
+
+       * Makefile.am (INCLUDES): Do not use ../intl.
+\f
 1999-12-14  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am: Adapt to the gettext scheme used in wdiff.
@@ -14,7 +18,7 @@
        * Makefile.am (EXTRA_DIST): Distribute them.
        (libreco_a_LIBADD): Uncomment.
        Reported by Alan J. Flavell, Alexandre Oliva and Peter Turcan.
-\f
+
 1998-12-13  François Pinard  <pinard@iro.umontreal.ca>
 
        * argmatch.c, argmatch.h, hash.c, hash.h: Moved away, into src.
index 0cf1f825c16506c2f34159a2e302cbbf339445f3..63dbbf3d1c063513461e38fea61c1cc7d996a65e 100644 (file)
@@ -25,7 +25,7 @@ libreco_a_SOURCES = error.c getopt.c getopt1.c xmalloc.c xstrdup.c
 
 EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c
 
-INCLUDES = -I.. -I$(srcdir) -I../intl
+INCLUDES = -I.. -I$(srcdir)
 
 libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@
 ## libreco_a_DEPENDENCIES = $(libtar_a_LIBADD)
index 0c5f1cbc8838551231e39f65a970e3bc85079de1..a14b835d2abec1398842c8739ea9b5736a34c053 100644 (file)
@@ -130,7 +130,7 @@ libreco_a_SOURCES = error.c getopt.c getopt1.c xmalloc.c xstrdup.c
 
 EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c
 
-INCLUDES = -I.. -I$(srcdir) -I../intl
+INCLUDES = -I.. -I$(srcdir)
 
 libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@
 localedir = $(prefix)/share/locale
diff --git a/libiconv/ChangeLog b/libiconv/ChangeLog
new file mode 100644 (file)
index 0000000..83dcc35
--- /dev/null
@@ -0,0 +1,5 @@
+1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
+
+       * Makefile.am: New file.
+       * encoding.def, all .h files: From Bruno Haible's libiconv 0.2.
+\f
diff --git a/libiconv/Makefile.am b/libiconv/Makefile.am
new file mode 100644 (file)
index 0000000..0d830f9
--- /dev/null
@@ -0,0 +1,41 @@
+# Makefile for `libiconv' part of `recode'.
+# Copyright © 1999 Free Software Foundation, Inc.
+# François Pinard <pinard@iro.umontreal.ca>
+
+# 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; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+AUTOMAKE_OPTIONS = gnits
+
+noinst_HEADERS = aliases.h armscii_8.h ascii.h big5.h ces_big5.h \
+ces_gbk.h cns11643.h cns11643_1.h cns11643_2.h cns11643_3.h \
+cns11643_inv.h cp1133.h cp1250.h cp1251.h cp1252.h cp1253.h cp1254.h \
+cp1255.h cp1256.h cp1257.h cp1258.h cp850.h cp866.h cp874.h cp932.h \
+cp932ext.h cp936ext.h cp950.h cp950ext.h euc_cn.h euc_jp.h euc_kr.h \
+euc_tw.h gb12345.h gb12345ext.h gb2312.h gbk.h gbkext1.h gbkext2.h \
+gbkext_inv.h georgian_academy.h georgian_ps.h hp_roman8.h hz.h \
+iso2022_cn.h iso2022_cnext.h iso2022_jp.h iso2022_jp1.h iso2022_jp2.h \
+iso2022_kr.h iso8859_1.h iso8859_10.h iso8859_13.h iso8859_14.h        \
+iso8859_15.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h \
+iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h java.h jisx0201.h \
+jisx0208.h jisx0212.h johab.h johab_decomp.h johab_hangul.h koi8_r.h \
+koi8_ru.h koi8_u.h ksc5601.h mac_arabic.h mac_centraleurope.h \
+mac_croatian.h mac_cyrillic.h mac_greek.h mac_hebrew.h mac_iceland.h \
+mac_roman.h mac_romania.h mac_thai.h mac_turkish.h mac_ukraine.h \
+mulelao.h nextstep.h sjis.h tcvn.h tis620.h ucs2.h ucs2internal.h \
+ucs2swapped.h ucs4.h ucs4internal.h ucs4swapped.h utf16.h utf7.h \
+utf8.h viscii.h
+
+EXTRA_DIST = encodings.def
diff --git a/libiconv/Makefile.in b/libiconv/Makefile.in
new file mode 100644 (file)
index 0000000..afc7f24
--- /dev/null
@@ -0,0 +1,263 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Makefile for `libiconv' part of `recode'.
+# Copyright © 1999 Free Software Foundation, Inc.
+# François Pinard <pinard@iro.umontreal.ca>
+
+# 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; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
+AS = @AS@
+AT_TESTPATH = @AT_TESTPATH@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+DLLTOOL = @DLLTOOL@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LEX = @LEX@
+LIBOBJS = @LIBOBJS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+AUTOMAKE_OPTIONS = gnits
+
+noinst_HEADERS = aliases.h armscii_8.h ascii.h big5.h ces_big5.h ces_gbk.h cns11643.h cns11643_1.h cns11643_2.h cns11643_3.h cns11643_inv.h cp1133.h cp1250.h cp1251.h cp1252.h cp1253.h cp1254.h cp1255.h cp1256.h cp1257.h cp1258.h cp850.h cp866.h cp874.h cp932.h cp932ext.h cp936ext.h cp950.h cp950ext.h euc_cn.h euc_jp.h euc_kr.h euc_tw.h gb12345.h gb12345ext.h gb2312.h gbk.h gbkext1.h gbkext2.h gbkext_inv.h georgian_academy.h georgian_ps.h hp_roman8.h hz.h iso2022_cn.h iso2022_cnext.h iso2022_jp.h iso2022_jp1.h iso2022_jp2.h iso2022_kr.h iso8859_1.h iso8859_10.h iso8859_13.h iso8859_14.h      iso8859_15.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h java.h jisx0201.h jisx0208.h jisx0212.h johab.h johab_decomp.h johab_hangul.h koi8_r.h koi8_ru.h koi8_u.h ksc5601.h mac_arabic.h mac_centraleurope.h mac_croatian.h mac_cyrillic.h mac_greek.h mac_hebrew.h mac_iceland.h mac_roman.h mac_romania.h mac_thai.h mac_turkish.h mac_ukraine.h mulelao.h nextstep.h sjis.h tcvn.h tis620.h ucs2.h ucs2internal.h ucs2swapped.h ucs4.h ucs4internal.h ucs4swapped.h utf16.h utf7.h utf8.h viscii.h
+
+
+EXTRA_DIST = encodings.def
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+HEADERS =  $(noinst_HEADERS)
+
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps libiconv/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = libiconv
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(HEADERS)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-tags distclean-generic clean-am
+       -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+               distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags mostlyclean-tags distclean-tags clean-tags \
+maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libiconv/aliases.h b/libiconv/aliases.h
new file mode 100644 (file)
index 0000000..929ad18
--- /dev/null
@@ -0,0 +1,674 @@
+/* ANSI-C code produced by gperf version 2.7 */
+/* Command-line: gperf -t -L ANSI-C -H aliases_hash -N aliases_lookup -7 -C -k 1,3-7,9-11,$ ../../src/aliases.gperf  */
+struct alias { const char* name; unsigned int encoding_index; };
+
+#define TOTAL_KEYWORDS 263
+#define MIN_WORD_LENGTH 2
+#define MAX_WORD_LENGTH 45
+#define MIN_HASH_VALUE 4
+#define MAX_HASH_VALUE 2132
+/* maximum key range = 2129, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#endif
+static unsigned int
+aliases_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned short asso_values[] =
+    {
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133,    0,    0, 2133,  400,  195,
+        40,  243,  290,  220,   70,  115,    0,  255,  120, 2133,
+      2133, 2133, 2133, 2133, 2133,    0,   80,  338,   85,    0,
+        25,    5,  115,    0,    0,   45,  235,   90,    0,    0,
+        15, 2133,   15,    0,   40,  180,   10,    0,   35,    0,
+         0, 2133, 2133, 2133, 2133,   10, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133,
+      2133, 2133, 2133, 2133, 2133, 2133, 2133, 2133
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+      case 11:
+        hval += asso_values[(unsigned char) str[10]];
+      case 10:
+        hval += asso_values[(unsigned char) str[9]];
+      case 9:
+        hval += asso_values[(unsigned char) str[8]];
+      case 8:
+      case 7:
+        hval += asso_values[(unsigned char) str[6]];
+      case 6:
+        hval += asso_values[(unsigned char) str[5]];
+      case 5:
+        hval += asso_values[(unsigned char) str[4]];
+      case 4:
+        hval += asso_values[(unsigned char) str[3]];
+      case 3:
+        hval += asso_values[(unsigned char) str[2]];
+      case 2:
+      case 1:
+        hval += asso_values[(unsigned char) str[0]];
+        break;
+    }
+  return hval + asso_values[(unsigned char) str[len - 1]];
+}
+
+#ifdef __GNUC__
+__inline
+#endif
+const struct alias *
+aliases_lookup (register const char *str, register unsigned int len)
+{
+  static const struct alias wordlist[] =
+    {
+      {""}, {""}, {""}, {""},
+      {"SJIS", ei_sjis},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"JAVA", ei_java},
+      {""}, {""},
+      {"R8", ei_hp_roman8},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"GEORGIAN-PS", ei_georgian_ps},
+      {""}, {""},
+      {"TCVN", ei_tcvn},
+      {""},
+      {"GREEK8", ei_iso8859_7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"KOREAN", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"SHIFT-JIS", ei_sjis},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"KOI8-R", ei_koi8_r},
+      {""}, {""},
+      {"SHIFT_JIS", ei_sjis},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-6", ei_ascii},
+      {""},
+      {"MS-EE", ei_cp1250},
+      {""},
+      {"MS-ANSI", ei_cp1252},
+      {"GBK", ei_ces_gbk},
+      {""},
+      {"GREEK", ei_iso8859_7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"ROMAN8", ei_hp_roman8},
+      {""}, {""}, {""}, {""}, {""},
+      {"HZ", ei_hz},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"BIGFIVE", ei_ces_big5},
+      {"BIG-FIVE", ei_ces_big5},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"NEXTSTEP", ei_nextstep},
+      {""}, {""}, {""}, {""},
+      {"866", ei_cp866},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MS_KANJI", ei_sjis},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MS-GREEK", ei_cp1253},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"US", ei_ascii},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-126", ei_iso8859_7},
+      {""}, {""}, {""}, {""},
+      {"UTF-8", ei_utf8},
+      {""}, {""}, {""}, {""}, {""},
+      {"HEBREW", ei_iso8859_8},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"HP-ROMAN8", ei_hp_roman8},
+      {"ISO-8859-8", ei_iso8859_8},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-166", ei_tis620},
+      {""},
+      {"L8", ei_iso8859_14},
+      {""}, {""},
+      {"ISO_8859-8", ei_iso8859_8},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"UCS-2", ei_ucs2},
+      {""}, {""},
+      {"ISO-IR-138", ei_iso8859_8},
+      {""}, {""}, {""},
+      {"MS-ARAB", ei_cp1256},
+      {""}, {""}, {""}, {""},
+      {"L2", ei_iso8859_2},
+      {""}, {""},
+      {"JOHAB", ei_johab},
+      {"LATIN8", ei_iso8859_14},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-127", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"IBM866", ei_cp866},
+      {"L6", ei_iso8859_10},
+      {"UCS-2-BE", ei_ucs2be},
+      {""},
+      {"ISO-8859-2", ei_iso8859_2},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-148", ei_iso8859_9},
+      {""}, {""}, {""}, {""},
+      {"ISO_8859-2", ei_iso8859_2},
+      {""},
+      {"MS-HEBR", ei_cp1255},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"ASCII", ei_ascii},
+      {""}, {""}, {""}, {""},
+      {"UCS-2-SWAPPED", ei_ucs2swapped},
+      {""}, {""}, {""},
+      {"L7", ei_iso8859_13},
+      {"ELOT_928", ei_iso8859_7},
+      {"VISCII", ei_viscii},
+      {"X0212", ei_jisx0212},
+      {""}, {""}, {""}, {""},
+      {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", ei_euc_jp},
+      {"LATIN2", ei_iso8859_2},
+      {""}, {""}, {""},
+      {"ISO_8859-8:1988", ei_iso8859_8},
+      {""}, {""}, {""}, {""},
+      {"ISO-8859-6", ei_iso8859_6},
+      {""}, {""},
+      {"EUCJP", ei_euc_jp},
+      {"EUC-JP", ei_euc_jp},
+      {""}, {""}, {""}, {""},
+      {"GEORGIAN-ACADEMY", ei_georgian_academy},
+      {"ISO_8859-6", ei_iso8859_6},
+      {""}, {""},
+      {"EUCTW", ei_euc_tw},
+      {"EUC-TW", ei_euc_tw},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"KOI8-U", ei_koi8_u},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"EUCKR", ei_euc_kr},
+      {"EUC-KR", ei_euc_kr},
+      {"CSKOI8R", ei_koi8_r},
+      {"LATIN6", ei_iso8859_10},
+      {"MS-TURK", ei_cp1254},
+      {""}, {""}, {""}, {""},
+      {"KOI8-RU", ei_koi8_ru},
+      {""}, {""}, {""}, {""},
+      {"L1", ei_iso8859_1},
+      {""}, {""}, {""}, {""},
+      {"ARMSCII-8", ei_armscii_8},
+      {""},
+      {"ISO646-US", ei_ascii},
+      {"UTF-7", ei_utf7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"L5", ei_iso8859_9},
+      {""}, {""},
+      {"ISO-8859-7", ei_iso8859_7},
+      {""}, {""},
+      {"UCS-2-LE", ei_ucs2le},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-7", ei_iso8859_7},
+      {""}, {""}, {""},
+      {"TCVN-5712", ei_tcvn},
+      {"ISO-IR-157", ei_iso8859_10},
+      {""}, {""}, {""}, {""},
+      {"L3", ei_iso8859_3},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ECMA-118", ei_iso8859_7},
+      {""}, {""}, {""}, {""}, {""},
+      {"JIS_X0208", ei_jisx0208},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACGREEK", ei_mac_greek},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"LATIN7", ei_iso8859_13},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-2:1987", ei_iso8859_2},
+      {"ISO-2022-JP", ei_iso2022_jp},
+      {""}, {""},
+      {"UCS-2-INTERNAL", ei_ucs2internal},
+      {"HZ-GB-2312", ei_hz},
+      {"US-ASCII", ei_ascii},
+      {"L4", ei_iso8859_4},
+      {"CSSHIFTJIS", ei_sjis},
+      {"BIG5", ei_ces_big5},
+      {"BIG-5", ei_ces_big5},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"MACROMAN", ei_mac_roman},
+      {""},
+      {"MACROMANIA", ei_mac_romania},
+      {""},
+      {"WINBALTRIM", ei_cp1257},
+      {"UTF-16", ei_utf16},
+      {""},
+      {"ISO-2022-JP-2", ei_iso2022_jp2},
+      {""},
+      {"ISO_8859-6:1987", ei_iso8859_6},
+      {""},
+      {"WINDOWS-1258", ei_cp1258},
+      {"CP866", ei_cp866},
+      {""}, {""}, {""}, {""},
+      {"UCS-4-BE", ei_ucs4be},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-2022-KR", ei_iso2022_kr},
+      {""}, {""},
+      {"GB2312", ei_euc_cn},
+      {""}, {""}, {""}, {""},
+      {"JIS_X0212", ei_jisx0212},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSHPROMAN8", ei_hp_roman8},
+      {""},
+      {"ISO_8859-5:1988", ei_iso8859_5},
+      {""}, {""}, {""}, {""},
+      {"MACTHAI", ei_mac_thai},
+      {""},
+      {"WINDOWS-1252", ei_cp1252},
+      {""}, {""},
+      {"ISO_8859-7:1987", ei_iso8859_7},
+      {""}, {""},
+      {"UCS-4-SWAPPED", ei_ucs4swapped},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-3:1988", ei_iso8859_3},
+      {""}, {""}, {""}, {""},
+      {"ASMO-708", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-1", ei_iso8859_1},
+      {""},
+      {"WINDOWS-1256", ei_cp1256},
+      {"UNICODEBIG", ei_ucs2be},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-1", ei_iso8859_1},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSISOLATINGREEK", ei_iso8859_7},
+      {"IBM367", ei_ascii},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACHEBREW", ei_mac_hebrew},
+      {""}, {""},
+      {"ISO-IR-179", ei_iso8859_13},
+      {""}, {""}, {""}, {""},
+      {"ISO_8859-4:1988", ei_iso8859_4},
+      {"CSIBM866", ei_cp866},
+      {""}, {""}, {""}, {""},
+      {"ISO_8859-15:1998", ei_iso8859_15},
+      {""}, {""},
+      {"CSISOLATIN2", ei_iso8859_2},
+      {""}, {""},
+      {"WINDOWS-1257", ei_cp1257},
+      {""}, {""},
+      {"ISO-8859-5", ei_iso8859_5},
+      {"LATIN1", ei_iso8859_1},
+      {""}, {""}, {""},
+      {"ISO_8859-1:1987", ei_iso8859_1},
+      {"ISO_646.IRV:1991", ei_ascii},
+      {""},
+      {"MACUKRAINE", ei_mac_ukraine},
+      {""},
+      {"ISO_8859-5", ei_iso8859_5},
+      {"EUCCN", ei_euc_cn},
+      {"EUC-CN", ei_euc_cn},
+      {"CSASCII", ei_ascii},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"CSVISCII", ei_viscii},
+      {""},
+      {"UNICODELITTLE", ei_ucs2le},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-2022-JP-1", ei_iso2022_jp1},
+      {"CSISOLATINHEBREW", ei_iso8859_8},
+      {""}, {""},
+      {"MACINTOSH", ei_mac_roman},
+      {""}, {""}, {""}, {""}, {""},
+      {"UCS-4-LE", ei_ucs4le},
+      {""}, {""},
+      {"ISO-8859-3", ei_iso8859_3},
+      {""}, {""}, {""}, {""},
+      {"LATIN5", ei_iso8859_9},
+      {""}, {""},
+      {"CSISOLATIN6", ei_iso8859_10},
+      {""},
+      {"ISO_8859-3", ei_iso8859_3},
+      {""}, {""}, {""}, {""},
+      {"ISO_8859-14:1998", ei_iso8859_14},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-9", ei_iso8859_9},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"WINDOWS-1251", ei_cp1251},
+      {""}, {""},
+      {"ISO_8859-9", ei_iso8859_9},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-159", ei_jisx0212},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ARABIC", ei_iso8859_6},
+      {""}, {""},
+      {"UCS-4", ei_ucs4},
+      {""},
+      {"LATIN3", ei_iso8859_3},
+      {""}, {""}, {""}, {""},
+      {"WINDOWS-1255", ei_cp1255},
+      {""},
+      {"UCS-4-INTERNAL", ei_ucs4internal},
+      {""}, {""}, {""},
+      {"ECMA-114", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ANSI_X3.4-1968", ei_ascii},
+      {""}, {""}, {""},
+      {"WINDOWS-874", ei_cp874},
+      {"MACCROATIAN", ei_mac_croatian},
+      {""}, {""},
+      {"WINDOWS-1253", ei_cp1253},
+      {""}, {""}, {""},
+      {"CP1258", ei_cp1258},
+      {""},
+      {"IBM819", ei_iso8859_1},
+      {""},
+      {"850", ei_cp850},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-4", ei_iso8859_4},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-101", ei_iso8859_2},
+      {""}, {""}, {""}, {""},
+      {"ISO_8859-4", ei_iso8859_4},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-149", ei_ksc5601},
+      {""}, {""}, {""},
+      {"ISO-2022-CN", ei_iso2022_cn},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"WINDOWS-1254", ei_cp1254},
+      {""}, {""}, {""}, {""},
+      {"JIS0208", ei_jisx0208},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"CSISO2022JP", ei_iso2022_jp},
+      {""},
+      {"LATIN4", ei_iso8859_4},
+      {""}, {""}, {""},
+      {"CSUNICODE", ei_ucs2},
+      {"ISO-8859-15", ei_iso8859_15},
+      {""}, {""},
+      {"CSBIG5", ei_ces_big5},
+      {"X0201", ei_jisx0201},
+      {""}, {""},
+      {"ISO-2022-CN-EXT", ei_iso2022_cn_ext},
+      {""},
+      {"ISO_8859-9:1989", ei_iso8859_9},
+      {"ISO_8859-15", ei_iso8859_15},
+      {""}, {""},
+      {"CP1252", ei_cp1252},
+      {""},
+      {"ISO_8859-10:1992", ei_iso8859_10},
+      {""}, {""},
+      {"JIS_X0201", ei_jisx0201},
+      {"CSISO2022JP2", ei_iso2022_jp2},
+      {"CP367", ei_ascii},
+      {""}, {""}, {""}, {""},
+      {"JIS_X0208.1983-1", ei_jisx0208},
+      {""}, {""}, {""},
+      {"ISO-IR-144", ei_iso8859_5},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSEUCTW", ei_euc_tw},
+      {"CSISO2022KR", ei_iso2022_kr},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-13", ei_iso8859_13},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MS-CYRL", ei_cp1251},
+      {"CP932", ei_cp932},
+      {"ISO_8859-13", ei_iso8859_13},
+      {""}, {""}, {""}, {""},
+      {"CSISOLATINARABIC", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-109", ei_iso8859_3},
+      {""},
+      {"JIS_X0208-1983", ei_jisx0208},
+      {"CSEUCKR", ei_euc_kr},
+      {"CP1256", ei_cp1256},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACTURKISH", ei_mac_turkish},
+      {"CSGB2312", ei_euc_cn},
+      {""}, {""},
+      {"WINDOWS-1250", ei_cp1250},
+      {""}, {""}, {""},
+      {"TIS620", ei_tis620},
+      {"TIS-620", ei_tis620},
+      {"TIS620-0", ei_tis620},
+      {"MULELAO-1", ei_mulelao},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"ISO-10646-UCS-2", ei_ucs2},
+      {""},
+      {"CSHALFWIDTHKATAKANA", ei_jisx0201},
+      {""},
+      {"CSISOLATIN1", ei_iso8859_1},
+      {""}, {""}, {""}, {""}, {""},
+      {"TCVN5712-1", ei_tcvn},
+      {"CP936", ei_ces_gbk},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-14", ei_iso8859_14},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-14", ei_iso8859_14},
+      {""}, {""}, {""},
+      {"ISO-IR-110", ei_iso8859_4},
+      {""}, {""}, {""},
+      {"CSISOLATIN5", ei_iso8859_9},
+      {""}, {""}, {""}, {""},
+      {"CP1257", ei_cp1257},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP874", ei_cp874},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP819", ei_iso8859_1},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACCENTRALEUROPE", ei_mac_centraleurope},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"CSISOLATIN3", ei_iso8859_3},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"CSEUCPKDFMTJAPANESE", ei_euc_jp},
+      {""}, {""}, {""},
+      {"JIS_X0208-1990", ei_jisx0208},
+      {""},
+      {"JIS_X0208.1983-0", ei_jisx0208},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"IBM850", ei_cp850},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"UNICODE-1-1-UTF-7", ei_utf7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"JIS_X0212-1990", ei_jisx0212},
+      {""},
+      {"JIS_X0212.1990-0", ei_jisx0212},
+      {""}, {""},
+      {"VISCII1.1-1", ei_viscii},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"TCVN5712-1:1993", ei_tcvn},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"CSISOLATIN4", ei_iso8859_4},
+      {""}, {""},
+      {"CSISO2022CN", ei_iso2022_cn},
+      {""},
+      {"CYRILLIC", ei_iso8859_5},
+      {""}, {""}, {""},
+      {"CSISO159JISX02121990", ei_jisx0212},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACICELAND", ei_mac_iceland},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP1251", ei_cp1251},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACARABIC", ei_mac_arabic},
+      {""}, {""}, {""},
+      {"KS_C_5601-1987", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-10646-UCS-4", ei_ucs4},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-100", ei_iso8859_1},
+      {"ISO-8859-10", ei_iso8859_10},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-10", ei_iso8859_10},
+      {""}, {""},
+      {"CP1255", ei_cp1255},
+      {""}, {""},
+      {"CP1361", ei_johab},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSISOLATINCYRILLIC", ei_iso8859_5},
+      {""}, {""}, {""}, {""}, {""},
+      {"TIS620.2529-1", ei_tis620},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"CP1253", ei_cp1253},
+      {"KSC_5601", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"KS_C_5601-1989", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"CP850", ei_cp850},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"CSUNICODE11UTF7", ei_utf7},
+      {"IBM-CP1133", ei_cp1133},
+      {""},
+      {"CP1254", ei_cp1254},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP949", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"JISX0201-1976", ei_jisx0201},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSUCS4", ei_ucs4},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"CP1133", ei_cp1133},
+      {"TIS620.2533-1", ei_tis620},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP1250", ei_cp1250},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP950", ei_cp950},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"TIS620.2533-0", ei_tis620},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACCYRILLIC", ei_mac_cyrillic},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"JISX0201.1976-0", ei_jisx0201},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSKSC56011987", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"CSPC850MULTILINGUAL", ei_cp850},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"KSC5601.1987-0", ei_ksc5601}
+    };
+
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = aliases_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register const char *s = wordlist[key].name;
+
+          if (*str == *s && !strcmp (str + 1, s + 1))
+            return &wordlist[key];
+        }
+    }
+  return 0;
+}
diff --git a/libiconv/armscii_8.h b/libiconv/armscii_8.h
new file mode 100644 (file)
index 0000000..4a10515
--- /dev/null
@@ -0,0 +1,93 @@
+
+/*
+ * ARMSCII-8
+ */
+
+static const unsigned short armscii_8_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x2741, 0x00a7, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab,
+  0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x055f, 0x2026, 0x055c,
+  /* 0xb0 */
+  0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
+  0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
+  /* 0xc0 */
+  0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b,
+  0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f,
+  /* 0xd0 */
+  0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
+  0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
+  /* 0xe0 */
+  0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b,
+  0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
+  /* 0xf0 */
+  0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
+  0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x2019, 0x0027,
+};
+
+static int
+armscii_8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) armscii_8_2uni[c-0xa0];
+  return 1;
+}
+
+static const unsigned char armscii_8_page00[16] = {
+  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0xff, /* 0x20-0x27 */
+  0xa5, 0xa4, 0x2a, 0x2b, 0xab, 0xac, 0xa9, 0x2f, /* 0x28-0x2f */
+};
+static const unsigned char armscii_8_page00_1[32] = {
+  0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char armscii_8_page05[96] = {
+  0x00, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, /* 0x30-0x37 */
+  0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, /* 0x38-0x3f */
+  0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, /* 0x40-0x47 */
+  0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, /* 0x48-0x4f */
+  0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0xb0, 0xaf, 0xaa, 0xb1, 0xad, /* 0x58-0x5f */
+  0x00, 0xb3, 0xb5, 0xb7, 0xb9, 0xbb, 0xbd, 0xbf, /* 0x60-0x67 */
+  0xc1, 0xc3, 0xc5, 0xc7, 0xc9, 0xcb, 0xcd, 0xcf, /* 0x68-0x6f */
+  0xd1, 0xd3, 0xd5, 0xd7, 0xd9, 0xdb, 0xdd, 0xdf, /* 0x70-0x77 */
+  0xe1, 0xe3, 0xe5, 0xe7, 0xe9, 0xeb, 0xed, 0xef, /* 0x78-0x7f */
+  0xf1, 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfd, 0x00, /* 0x80-0x87 */
+  0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+};
+static const unsigned char armscii_8_page20[24] = {
+  0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x20-0x27 */
+};
+
+static int
+armscii_8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0020) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x0020 && wc < 0x0030)
+    c = armscii_8_page00[wc-0x0020];
+  else if (wc >= 0x0030 && wc < 0x00a0)
+    c = wc;
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = armscii_8_page00_1[wc-0x00a0];
+  else if (wc >= 0x0530 && wc < 0x0590)
+    c = armscii_8_page05[wc-0x0530];
+  else if (wc >= 0x2010 && wc < 0x2028)
+    c = armscii_8_page20[wc-0x2010];
+  else if (wc == 0x2741)
+    c = 0xa1;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/ascii.h b/libiconv/ascii.h
new file mode 100644 (file)
index 0000000..bdad434
--- /dev/null
@@ -0,0 +1,25 @@
+
+/*
+ * ASCII
+ */
+
+static int
+ascii_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
+
+static int
+ascii_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/big5.h b/libiconv/big5.h
new file mode 100644 (file)
index 0000000..70d7ae4
--- /dev/null
@@ -0,0 +1,4141 @@
+
+/*
+ * BIG5
+ */
+
+static const unsigned short big5_2uni_pagea1[6121] = {
+  /* 0xa1 */
+  0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2022, 0xff1b, 0xff1a,
+  0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xff64, 0xfe52,
+  0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31,
+  0x2014, 0xfe33, 0xfffd, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35,
+  0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39,
+  0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d,
+  0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41,
+  0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b,
+  0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d,
+  0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7,
+  0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605,
+  0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105,
+  0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e,
+  0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7,
+  0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267,
+  0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65,
+  0xfe66, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf,
+  0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642,
+  0x2641, 0x2609, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197,
+  0x2199, 0x2198, 0x2225, 0x2223, 0xfffd,
+  /* 0xa2 */
+  0xfffd, 0xff0f, 0xff3c, 0xff04, 0x00a5, 0x3012, 0x00a2, 0x00a3,
+  0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5,
+  0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4,
+  0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7,
+  0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586,
+  0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a,
+  0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500,
+  0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e,
+  0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3,
+  0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12,
+  0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160,
+  0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168,
+  0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027,
+  0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd, 0xff21, 0xff22, 0xff23,
+  0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b,
+  0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33,
+  0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41,
+  0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49,
+  0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51,
+  0xff52, 0xff53, 0xff54, 0xff55, 0xff56,
+  /* 0xa3 */
+  0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394,
+  0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c,
+  0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5,
+  0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4,
+  0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc,
+  0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5,
+  0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108,
+  0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110,
+  0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118,
+  0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120,
+  0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
+  0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa4 */
+  0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c,
+  0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b,
+  0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a,
+  0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e,
+  0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f,
+  0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8,
+  0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2,
+  0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11,
+  0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88,
+  0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3,
+  0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141,
+  0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206, 0x5207,
+  0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348, 0x5347,
+  0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec, 0x5929,
+  0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a, 0x5c6f,
+  0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208, 0x6236,
+  0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9, 0x65e5,
+  0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb, 0x6bd4,
+  0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b, 0x7247,
+  0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19,
+  /* 0xa5 */
+  0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e,
+  0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4,
+  0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9,
+  0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317,
+  0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e,
+  0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8,
+  0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1,
+  0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x592e,
+  0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, 0x5de7,
+  0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, 0x5f17,
+  0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, 0x65e6,
+  0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, 0x6c11,
+  0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, 0x7389,
+  0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, 0x7531,
+  0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, 0x77db,
+  0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e, 0x4e1f,
+  0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5, 0x4eff,
+  0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11, 0x4f0f,
+  0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01, 0x4f0b,
+  0x5149, 0x5147, 0x5146, 0x5148, 0x5168,
+  /* 0xa6 */
+  0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216,
+  0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f,
+  0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d,
+  0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd,
+  0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919,
+  0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979,
+  0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89,
+  0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x5f0f,
+  0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210, 0x6263,
+  0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed, 0x66f2,
+  0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21, 0x6b64,
+  0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60, 0x6c50,
+  0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f, 0x725d,
+  0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd, 0x8001,
+  0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b, 0x808c,
+  0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f, 0x826e,
+  0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f, 0x9621,
+  0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e, 0x4f34,
+  0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a, 0x4f38,
+  0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63,
+  /* 0xa7 */
+  0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48,
+  0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225,
+  0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac,
+  0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426,
+  0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b,
+  0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436,
+  0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea,
+  0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x5747,
+  0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, 0x599d,
+  0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, 0x59a4,
+  0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, 0x5b8c,
+  0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e, 0x5c90,
+  0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87, 0x5e8a,
+  0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79, 0x5fd8,
+  0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea, 0x6212,
+  0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289, 0x626d,
+  0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f, 0x6298,
+  0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b, 0x6538,
+  0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751, 0x675c,
+  0x6756, 0x675e, 0x6749, 0x6746, 0x6760,
+  /* 0xa8 */
+  0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81,
+  0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70,
+  0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e,
+  0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076,
+  0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2,
+  0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3,
+  0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093,
+  0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x828b,
+  0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55, 0x8c9d,
+  0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0, 0x8fc2,
+  0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa, 0x90a6,
+  0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631, 0x962a,
+  0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e, 0x4eab,
+  0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c, 0x4f9b,
+  0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69, 0x4f7b,
+  0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152, 0x5155,
+  0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b, 0x5238,
+  0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be, 0x52bb,
+  0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378, 0x5379,
+  0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475,
+  /* 0xa9 */
+  0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492,
+  0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462,
+  0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a,
+  0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947,
+  0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae,
+  0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af,
+  0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a,
+  0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x5c46,
+  0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3, 0x5e18,
+  0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a, 0x5e97,
+  0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29, 0x5f80,
+  0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5, 0x5fff,
+  0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015, 0x6021,
+  0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f, 0x623e,
+  0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2, 0x62b9,
+  0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8, 0x62a8,
+  0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5, 0x62da,
+  0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce, 0x653e,
+  0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606, 0x6602,
+  0x660e, 0x6600, 0x660f, 0x6615, 0x660a,
+  /* 0xaa */
+  0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c,
+  0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f,
+  0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a,
+  0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3,
+  0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe,
+  0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9,
+  0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1,
+  0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x7095,
+  0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238, 0x7248,
+  0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0, 0x73a9,
+  0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599, 0x759a,
+  0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e, 0x7940,
+  0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe, 0x7f54,
+  0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1, 0x80a1,
+  0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe, 0x820d,
+  0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9, 0x82b1,
+  0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be, 0x82b7,
+  0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1,
+  0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577, 0x9580,
+  0x961c, 0x9640, 0x963f, 0x963b, 0x9644,
+  /* 0xab */
+  0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae,
+  0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd,
+  0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0,
+  0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192,
+  0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b,
+  0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b,
+  0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8,
+  0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x54c4,
+  0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7, 0x54bf,
+  0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce, 0x57ae,
+  0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc, 0x59d8,
+  0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da, 0x59e6,
+  0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2, 0x5ba5,
+  0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2, 0x5df7,
+  0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa, 0x5f08,
+  0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c,
+  0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028, 0x604d,
+  0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b, 0x606a,
+  0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301,
+  0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7,
+  /* 0xac */
+  0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545,
+  0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f,
+  0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1,
+  0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef,
+  0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de,
+  0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83,
+  0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32,
+  0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x6d3b,
+  0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27, 0x6d38,
+  0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba, 0x70b3,
+  0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230, 0x7272,
+  0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca, 0x73bb,
+  0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f, 0x754c,
+  0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3, 0x7678,
+  0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5, 0x7701,
+  0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707, 0x77dc,
+  0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948, 0x7947,
+  0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81, 0x7aff,
+  0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07, 0x7d04,
+  0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004,
+  /* 0xad */
+  0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3,
+  0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd,
+  0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6,
+  0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301,
+  0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306,
+  0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4,
+  0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4,
+  0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x8fed,
+  0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3, 0x914b,
+  0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d, 0x9762,
+  0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db, 0x98df,
+  0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023, 0x4fef,
+  0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c, 0x501f,
+  0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028, 0x4ff1,
+  0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d, 0x502a,
+  0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2, 0x51cd,
+  0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b, 0x525d,
+  0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510, 0x5501,
+  0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514, 0x54e9,
+  0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea,
+  /* 0xae */
+  0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2,
+  0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a,
+  0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20,
+  0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0,
+  0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04,
+  0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8,
+  0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab,
+  0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x6063,
+  0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084, 0x609f,
+  0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247, 0x62f3,
+  0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342, 0x6346,
+  0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b, 0x6328,
+  0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5, 0x6642,
+  0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641, 0x66f8,
+  0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846, 0x6853,
+  0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851,
+  0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a, 0x6845,
+  0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27,
+  0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87,
+  0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93,
+  /* 0xaf */
+  0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a,
+  0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9,
+  0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8,
+  0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de,
+  0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7,
+  0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b,
+  0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728,
+  0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x7825,
+  0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960, 0x795f,
+  0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3, 0x79e7,
+  0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9, 0x7b06,
+  0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20, 0x7d22,
+  0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b,
+  0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018, 0x8015,
+  0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105,
+  0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a,
+  0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b,
+  0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a, 0x8338,
+  0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339, 0x8336,
+  0x8317, 0x8340, 0x8331, 0x8328, 0x8343,
+  /* 0xb0 */
+  0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3,
+  0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18,
+  0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16,
+  0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77,
+  0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7,
+  0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095,
+  0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd,
+  0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x965b,
+  0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac, 0x9aa8,
+  0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d, 0x505c,
+  0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076, 0x504e,
+  0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d,
+  0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8,
+  0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3,
+  0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543,
+  0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538,
+  0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708,
+  0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4,
+  0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36,
+  0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40,
+  /* 0xb1 */
+  0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5,
+  0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60,
+  0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22,
+  0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2,
+  0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5,
+  0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97,
+  0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3,
+  0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5,
+  0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df,
+  0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7,
+  0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa,
+  0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384,
+  0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b,
+  0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559, 0x6557,
+  0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac,
+  0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668,
+  0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2,
+  0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0,
+  0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8,
+  0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba,
+  /* 0xb2 */
+  0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2,
+  0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb,
+  0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5,
+  0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea,
+  0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf,
+  0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d,
+  0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405,
+  0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7,
+  0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4,
+  0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db,
+  0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843,
+  0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20,
+  0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92,
+  0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c,
+  0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31,
+  0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a,
+  0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124,
+  0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398,
+  0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393,
+  0x8389, 0x83a0, 0x8377, 0x837b, 0x837c,
+  /* 0xb3 */
+  0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4,
+  0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e,
+  0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f,
+  0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b,
+  0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa,
+  0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019,
+  0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015,
+  0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8,
+  0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7,
+  0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678, 0x9670,
+  0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0,
+  0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5,
+  0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096,
+  0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269,
+  0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7,
+  0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594,
+  0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2,
+  0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599,
+  0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821,
+  0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960,
+  /* 0xb4 */
+  0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71,
+  0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c,
+  0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43,
+  0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9,
+  0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c,
+  0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1,
+  0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3,
+  0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2,
+  0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4,
+  0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562,
+  0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676,
+  0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f,
+  0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df,
+  0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb,
+  0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb,
+  0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e,
+  0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67,
+  0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24,
+  0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a,
+  0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb,
+  /* 0xb5 */
+  0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f,
+  0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c,
+  0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a,
+  0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f,
+  0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2,
+  0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c,
+  0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c,
+  0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97,
+  0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52,
+  0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e,
+  0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66,
+  0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052,
+  0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146,
+  0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403,
+  0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1,
+  0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2,
+  0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df,
+  0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0,
+  0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, 0x8a3b,
+  0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41,
+  /* 0xb6 */
+  0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56,
+  0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb,
+  0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85,
+  0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb,
+  0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031,
+  0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163,
+  0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d,
+  0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593,
+  0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686,
+  0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7,
+  0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea,
+  0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd,
+  0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be,
+  0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d,
+  0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8,
+  0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4,
+  0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712,
+  0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b,
+  0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1,
+  0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc,
+  /* 0xb7 */
+  0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9,
+  0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148,
+  0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c,
+  0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137,
+  0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d,
+  0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417,
+  0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688,
+  0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a,
+  0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968,
+  0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b,
+  0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf,
+  0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5,
+  0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4,
+  0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164,
+  0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, 0x715e,
+  0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, 0x733f,
+  0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, 0x743f,
+  0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, 0x7601,
+  0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, 0x76df,
+  0x775b, 0x776b, 0x7766, 0x775e, 0x7763,
+  /* 0xb8 */
+  0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee,
+  0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891,
+  0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c,
+  0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77,
+  0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93,
+  0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a,
+  0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084,
+  0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179,
+  0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431,
+  0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435,
+  0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f,
+  0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702,
+  0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc,
+  0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3,
+  0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c,
+  0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c,
+  0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca,
+  0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1,
+  0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4, 0x8de6,
+  0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a,
+  /* 0xb9 */
+  0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c,
+  0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e,
+  0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237,
+  0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264,
+  0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a,
+  0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca,
+  0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810,
+  0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd,
+  0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e,
+  0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da,
+  0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, 0x51f3,
+  0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, 0x5617,
+  0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, 0x5616,
+  0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, 0x587e,
+  0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, 0x5925,
+  0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, 0x5ad7,
+  0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, 0x5be5,
+  0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, 0x5d84,
+  0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, 0x5ed6,
+  0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147,
+  /* 0xba */
+  0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158,
+  0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f,
+  0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1,
+  0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995,
+  0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab,
+  0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3,
+  0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4,
+  0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff,
+  0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b,
+  0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7,
+  0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292,
+  0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d,
+  0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1,
+  0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7,
+  0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e, 0x7a31,
+  0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b, 0x7b75,
+  0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84, 0x7cb9,
+  0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe, 0x7da0,
+  0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf, 0x7db5,
+  0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac,
+  /* 0xbb */
+  0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150,
+  0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa,
+  0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4,
+  0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3,
+  0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722,
+  0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902,
+  0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6,
+  0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x8aaa,
+  0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, 0x8c8d,
+  0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, 0x8dfc,
+  0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, 0x905c,
+  0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, 0x9118,
+  0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280, 0x9285,
+  0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c, 0x9291,
+  0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699, 0x969c,
+  0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6, 0x9817,
+  0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909, 0x99c1,
+  0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6, 0x9cf3,
+  0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5, 0x50f9,
+  0x5102, 0x5108, 0x5109, 0x5105, 0x51dc,
+  /* 0xbc */
+  0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e,
+  0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e,
+  0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e,
+  0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb,
+  0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb,
+  0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2,
+  0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7,
+  0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x617c,
+  0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, 0x61ac,
+  0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, 0x6479,
+  0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493, 0x6495,
+  0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac, 0x6499,
+  0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab, 0x66b4,
+  0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19, 0x69fd,
+  0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed, 0x6a11,
+  0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c, 0x6f84,
+  0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78, 0x6f6e,
+  0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5, 0x6f6f,
+  0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256, 0x729b,
+  0x734e, 0x7357, 0x7469, 0x748b, 0x7483,
+  /* 0xbd */
+  0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626,
+  0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c,
+  0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5,
+  0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b,
+  0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7,
+  0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb,
+  0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9,
+  0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x7fe9,
+  0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198, 0x8517,
+  0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511, 0x8523,
+  0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782, 0x8774,
+  0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757, 0x874c,
+  0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913, 0x8915,
+  0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb, 0x8af8,
+  0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6,
+  0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6,
+  0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1,
+  0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22, 0x8e0f,
+  0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f,
+  0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e,
+  /* 0xbe */
+  0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d,
+  0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb,
+  0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2,
+  0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707,
+  0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c,
+  0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df,
+  0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef,
+  0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x9d03,
+  0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118, 0x5114,
+  0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293, 0x52f3,
+  0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a, 0x5668,
+  0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1, 0x58be,
+  0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0, 0x5c0e,
+  0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6, 0x61be,
+  0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb, 0x64bc,
+  0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2, 0x64d4,
+  0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7, 0x66b8,
+  0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39, 0x6a44,
+  0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48, 0x6b59,
+  0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1,
+  /* 0xbf */
+  0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6,
+  0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8,
+  0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368,
+  0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d,
+  0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f,
+  0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e,
+  0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4,
+  0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x7e11,
+  0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, 0x7f79,
+  0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, 0x81a8,
+  0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548, 0x8568,
+  0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783, 0x879f,
+  0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925, 0x892b,
+  0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1, 0x8b00,
+  0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7, 0x8aed,
+  0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4, 0x8e44,
+  0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f, 0x8f38,
+  0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072, 0x907c,
+  0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333, 0x932f,
+  0x9322, 0x92fc, 0x932b, 0x9304, 0x931a,
+  /* 0xc0 */
+  0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7,
+  0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713,
+  0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b,
+  0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b,
+  0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb,
+  0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12,
+  0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121,
+  0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x568f,
+  0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24, 0x5b7a,
+  0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b, 0x5f4c,
+  0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232, 0x6234,
+  0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec, 0x64f1,
+  0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80, 0x6a94,
+  0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97, 0x6a90,
+  0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf,
+  0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec, 0x6fe1,
+  0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee, 0x71e6,
+  0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246, 0x7370,
+  0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642, 0x764c,
+  0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac,
+  /* 0xc1 */
+  0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901,
+  0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7,
+  0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9,
+  0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b,
+  0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35,
+  0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070,
+  0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf,
+  0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x8584,
+  0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587, 0x85a8,
+  0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6, 0x87ab,
+  0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944, 0x8938,
+  0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a, 0x8b20,
+  0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd,
+  0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48, 0x8e4a,
+  0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d, 0x9084,
+  0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c, 0x934d,
+  0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318, 0x937e,
+  0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb, 0x95cc,
+  0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0,
+  0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01,
+  /* 0xc2 */
+  0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b,
+  0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2,
+  0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233,
+  0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7,
+  0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2,
+  0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe,
+  0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8,
+  0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x7652,
+  0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61, 0x7a62,
+  0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e, 0x7c23,
+  0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52,
+  0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf,
+  0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba,
+  0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986, 0x89b2,
+  0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05, 0x8e59,
+  0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49, 0x8f4d,
+  0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394, 0x938a,
+  0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398, 0x939a,
+  0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc, 0x96d9,
+  0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6,
+  /* 0xc3 */
+  0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba,
+  0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03,
+  0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8,
+  0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133,
+  0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2,
+  0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5,
+  0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d,
+  0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x737a,
+  0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661, 0x77c7,
+  0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d,
+  0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a, 0x7f85,
+  0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd, 0x85ea,
+  0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d, 0x87f9,
+  0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c, 0x8b58,
+  0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a,
+  0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54,
+  0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1,
+  0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd,
+  0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a,
+  0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e,
+  /* 0xc4 */
+  0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d,
+  0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a,
+  0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7,
+  0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6,
+  0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727,
+  0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662,
+  0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c,
+  0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x7e82,
+  0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611, 0x85fa,
+  0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964, 0x89ba,
+  0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f,
+  0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb, 0x9418,
+  0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951, 0x99a8,
+  0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79, 0x9eb5,
+  0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138, 0x56c1,
+  0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe, 0x651d,
+  0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2, 0x704c,
+  0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50, 0x7e8f,
+  0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821,
+  0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74,
+  /* 0xc5 */
+  0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf,
+  0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b,
+  0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957,
+  0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d,
+  0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19,
+  0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9,
+  0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61,
+  0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x79b3,
+  0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f, 0x89fc,
+  0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148, 0x9444,
+  0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955,
+  0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b,
+  0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6,
+  0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca,
+  0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638,
+  0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460, 0x9464,
+  0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4,
+  0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1,
+  0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88,
+  0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92,
+  /* 0xc6 */
+  0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744,
+  0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa,
+  0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063,
+  0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470,
+  0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a,
+  0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5,
+  0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f,
+  0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x30fe,
+  0x309d, 0x309e, 0x3005, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045,
+  0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d,
+  0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055,
+  0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d,
+  0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065,
+  0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d,
+  0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075,
+  0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d,
+  0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085,
+  0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d,
+  0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2,
+  0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7,
+  /* 0xc7 */
+  0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af,
+  0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7,
+  0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf,
+  0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7,
+  0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf,
+  0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7,
+  0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df,
+  0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7,
+  0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef,
+  0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x0414,
+  0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b,
+  0x041c, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429,
+  0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431,
+  0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438,
+  0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440,
+  0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448,
+  0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x2460,
+  0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468,
+  0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
+  0x247b, 0x247c, 0x247d,
+};
+static const unsigned short big5_2uni_pagec9[7652] = {
+  /* 0xc9 */
+  0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47,
+  0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e,
+  0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c,
+  0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3,
+  0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9,
+  0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723,
+  0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73,
+  0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36,
+  0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a,
+  0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00,
+  0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04,
+  0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6, 0x5322,
+  0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, 0x572a,
+  0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, 0x5977,
+  0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, 0x5c7e,
+  0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, 0x5fd4,
+  0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, 0x6259,
+  0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739, 0x6738,
+  0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46, 0x6c52,
+  0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b,
+  /* 0xca */
+  0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f,
+  0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d,
+  0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624,
+  0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64,
+  0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33,
+  0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad,
+  0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437,
+  0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x543d,
+  0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, 0x56e5,
+  0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, 0x5940,
+  0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, 0x598f,
+  0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, 0x5c8f,
+  0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, 0x5c95,
+  0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, 0x5e8d,
+  0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, 0x5fed,
+  0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa, 0x5fef,
+  0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c, 0x628e,
+  0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270, 0x6281,
+  0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0, 0x65f4,
+  0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747,
+  /* 0xcb */
+  0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b,
+  0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b,
+  0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95,
+  0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a,
+  0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5,
+  0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594,
+  0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092,
+  0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x828a,
+  0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, 0x90a5,
+  0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, 0x4e33,
+  0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, 0x4f74,
+  0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, 0x4f79,
+  0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, 0x4f82,
+  0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, 0x5232,
+  0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, 0x5392,
+  0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, 0x546b,
+  0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, 0x546f,
+  0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, 0x56f9,
+  0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, 0x5780,
+  0x5775, 0x577b, 0x5773, 0x5774, 0x5762,
+  /* 0xcc */
+  0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce,
+  0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1,
+  0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93,
+  0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf,
+  0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7,
+  0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19,
+  0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d,
+  0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034,
+  0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d,
+  0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214,
+  0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca,
+  0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8, 0x653d,
+  0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608, 0x65fb,
+  0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610, 0x66f6,
+  0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b, 0x6798,
+  0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f, 0x6791,
+  0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794, 0x6b25,
+  0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb, 0x6cee,
+  0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0, 0x6cc2,
+  0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2,
+  /* 0xcd */
+  0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0,
+  0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1,
+  0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096,
+  0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9,
+  0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1,
+  0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8,
+  0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1,
+  0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x77f7,
+  0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, 0x7cfd,
+  0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, 0x8220,
+  0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, 0x82a7,
+  0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, 0x82a9,
+  0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, 0x866d,
+  0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, 0x8fd5,
+  0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, 0x963d,
+  0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2, 0x4fc9,
+  0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3, 0x4fdb,
+  0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244, 0x5249,
+  0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399, 0x5398,
+  0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf,
+  /* 0xce */
+  0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6,
+  0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0,
+  0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b,
+  0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4,
+  0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd,
+  0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db,
+  0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8,
+  0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x5cde,
+  0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4, 0x5ccf,
+  0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21, 0x5e22,
+  0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b, 0x5ea3,
+  0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039, 0x6054,
+  0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b, 0x604c,
+  0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066, 0x606e,
+  0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e, 0x6303,
+  0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300, 0x6313,
+  0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543, 0x65aa,
+  0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626, 0x6622,
+  0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e, 0x670f,
+  0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba,
+  /* 0xcf */
+  0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb,
+  0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee,
+  0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc,
+  0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9,
+  0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6,
+  0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d,
+  0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04,
+  0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x6d01,
+  0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, 0x6d2c,
+  0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, 0x70b1,
+  0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, 0x724a,
+  0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8, 0x72eb,
+  0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2, 0x73c8,
+  0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf, 0x73c7,
+  0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee, 0x752e,
+  0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708, 0x7703,
+  0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7, 0x77e8,
+  0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e, 0x7809,
+  0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944, 0x79d5,
+  0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80,
+  /* 0xd0 */
+  0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f,
+  0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d,
+  0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7,
+  0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9,
+  0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd,
+  0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8,
+  0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1,
+  0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x82e4,
+  0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c, 0x8673,
+  0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04, 0x8a07,
+  0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd, 0x90bf,
+  0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4, 0x91d3,
+  0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e, 0x5005,
+  0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4, 0x5033,
+  0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020, 0x5027,
+  0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193, 0x51ca,
+  0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252, 0x525e,
+  0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526, 0x54e2,
+  0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff, 0x5504,
+  0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1,
+  /* 0xd1 */
+  0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b,
+  0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6,
+  0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9,
+  0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15,
+  0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad,
+  0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1,
+  0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa,
+  0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x6041,
+  0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083, 0x6095,
+  0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246, 0x62f2,
+  0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343, 0x63e4,
+  0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334, 0x6358,
+  0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351, 0x6338,
+  0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3, 0x65c4,
+  0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713, 0x681f,
+  0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f, 0x6816,
+  0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e, 0x6844,
+  0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e, 0x684d,
+  0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31, 0x6b34,
+  0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4,
+  /* 0xd2 */
+  0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64,
+  0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f,
+  0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60,
+  0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68,
+  0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d,
+  0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39,
+  0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5,
+  0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x7277,
+  0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3, 0x72fb,
+  0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7, 0x73e3,
+  0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da, 0x73d7,
+  0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521, 0x755b,
+  0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf, 0x75b6,
+  0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713, 0x7712,
+  0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727, 0x7823,
+  0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b, 0x7821,
+  0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f, 0x795c,
+  0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee, 0x79ed,
+  0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85, 0x7a8b,
+  0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10,
+  /* 0xd3 */
+  0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09,
+  0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85,
+  0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f,
+  0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d,
+  0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e,
+  0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100,
+  0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351,
+  0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x8342,
+  0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316, 0x8324,
+  0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c, 0x8353,
+  0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652, 0x86a2,
+  0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697, 0x8686,
+  0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7, 0x8695,
+  0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844, 0x886d,
+  0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f, 0x8883,
+  0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4,
+  0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3,
+  0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6,
+  0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8,
+  0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150,
+  /* 0xd4 */
+  0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc,
+  0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e,
+  0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041,
+  0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b,
+  0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051,
+  0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d,
+  0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a,
+  0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x550c,
+  0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b, 0x5540,
+  0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6, 0x57dc,
+  0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b, 0x57f3,
+  0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec, 0x57e1,
+  0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1, 0x57e9,
+  0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55, 0x5a67,
+  0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65, 0x5a6c,
+  0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44, 0x5a5b,
+  0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70, 0x5a69,
+  0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1,
+  0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c,
+  0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f,
+  /* 0xd5 */
+  0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1,
+  0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96,
+  0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3,
+  0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db,
+  0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365,
+  0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397,
+  0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375,
+  0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x6378,
+  0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd, 0x6665,
+  0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879, 0x6887,
+  0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956, 0x686f,
+  0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877,
+  0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e,
+  0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b,
+  0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38,
+  0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab,
+  0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6,
+  0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5,
+  0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0,
+  0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9,
+  /* 0xd6 */
+  0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb,
+  0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104,
+  0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8,
+  0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f,
+  0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff,
+  0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401,
+  0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b,
+  0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x75cb,
+  0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739, 0x772f,
+  0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725, 0x773b,
+  0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c, 0x7826,
+  0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963, 0x796b,
+  0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f, 0x7a94,
+  0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22, 0x7b24,
+  0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f,
+  0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3,
+  0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29,
+  0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63,
+  0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0,
+  0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f,
+  /* 0xd7 */
+  0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119,
+  0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127,
+  0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232,
+  0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4,
+  0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9,
+  0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e,
+  0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387,
+  0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x86c2,
+  0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3, 0x86b8,
+  0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be, 0x8852,
+  0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891, 0x88a1,
+  0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4, 0x88ac,
+  0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5, 0x8a30,
+  0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d,
+  0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf,
+  0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1,
+  0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef, 0x90ea,
+  0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec, 0x90e9,
+  0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4, 0x91f1,
+  0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea,
+  /* 0xd8 */
+  0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c,
+  0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5,
+  0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083,
+  0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087,
+  0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8,
+  0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f,
+  0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6,
+  0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x5819,
+  0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825, 0x581c,
+  0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838, 0x582d,
+  0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a, 0x5aa2,
+  0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae,
+  0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b,
+  0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd,
+  0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37,
+  0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e,
+  0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42,
+  0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45,
+  0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9,
+  0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114,
+  /* 0xd9 */
+  0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc,
+  0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104,
+  0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8,
+  0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5,
+  0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4,
+  0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0,
+  0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568,
+  0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x667c,
+  0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672, 0x6701,
+  0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea, 0x68f1,
+  0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913, 0x6910,
+  0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4, 0x6911,
+  0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc, 0x68e8,
+  0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de, 0x68e6,
+  0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925, 0x68c7,
+  0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95,
+  0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47,
+  0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b,
+  0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40,
+  0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e,
+  /* 0xda */
+  0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b,
+  0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64,
+  0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a,
+  0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125,
+  0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a,
+  0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330,
+  0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323,
+  0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x741a,
+  0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429, 0x7420,
+  0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1,
+  0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da,
+  0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e, 0x774b,
+  0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c, 0x786d,
+  0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e, 0x7862,
+  0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c,
+  0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44, 0x7b48,
+  0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8,
+  0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a,
+  0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51,
+  0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65,
+  /* 0xdb */
+  0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050,
+  0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d,
+  0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204,
+  0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423,
+  0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410,
+  0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5,
+  0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9,
+  0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x83d5,
+  0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec, 0x83ee,
+  0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8,
+  0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb,
+  0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856,
+  0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6,
+  0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998,
+  0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59,
+  0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51,
+  0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe,
+  0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3,
+  0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8,
+  0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa,
+  /* 0xdc */
+  0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6,
+  0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f,
+  0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb,
+  0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f,
+  0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226,
+  0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204,
+  0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216,
+  0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689,
+  0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c,
+  0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83,
+  0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca,
+  0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb,
+  0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c,
+  0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0,
+  0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5,
+  0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714,
+  0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855,
+  0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871,
+  0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5,
+  0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6,
+  /* 0xdd */
+  0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90,
+  0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a,
+  0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0,
+  0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6,
+  0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a,
+  0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f,
+  0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5,
+  0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433,
+  0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423,
+  0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a,
+  0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e,
+  0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695,
+  0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966,
+  0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a,
+  0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935,
+  0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969,
+  0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c,
+  0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952,
+  0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, 0x6b48,
+  0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc,
+  /* 0xde */
+  0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0,
+  0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2,
+  0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6,
+  0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92,
+  0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca,
+  0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160,
+  0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142,
+  0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x7144,
+  0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290, 0x728e,
+  0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349, 0x7444,
+  0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f, 0x7450,
+  0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe,
+  0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603,
+  0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6,
+  0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f,
+  0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759,
+  0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895,
+  0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896,
+  0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19,
+  0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13,
+  /* 0xdf */
+  0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64,
+  0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70,
+  0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88,
+  0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b,
+  0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d,
+  0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb,
+  0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b,
+  0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144,
+  0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1,
+  0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451,
+  0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459,
+  0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434,
+  0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b,
+  0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c,
+  0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433,
+  0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450,
+  0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d,
+  0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6,
+  0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0,
+  0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4,
+  /* 0xe0 */
+  0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f,
+  0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81,
+  0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66,
+  0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c,
+  0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0,
+  0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2,
+  0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00,
+  0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044,
+  0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114,
+  0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a,
+  0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246,
+  0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261,
+  0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253,
+  0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692,
+  0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5,
+  0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac,
+  0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab,
+  0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4,
+  0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, 0x50d3,
+  0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0,
+  /* 0xe1 */
+  0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627,
+  0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613,
+  0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c,
+  0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a,
+  0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894,
+  0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea,
+  0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec,
+  0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3,
+  0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77,
+  0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f,
+  0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc,
+  0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6,
+  0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153,
+  0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165,
+  0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b,
+  0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d,
+  0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b,
+  0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459,
+  0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705,
+  0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9,
+  /* 0xe2 */
+  0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999,
+  0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4,
+  0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3,
+  0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2,
+  0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f,
+  0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03,
+  0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19,
+  0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36,
+  0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35,
+  0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39,
+  0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21,
+  0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b,
+  0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293,
+  0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475,
+  0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, 0x7590,
+  0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, 0x76b8,
+  0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, 0x777e,
+  0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, 0x78ab,
+  0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, 0x798a,
+  0x798b, 0x7996, 0x7995, 0x7994, 0x7993,
+  /* 0xe3 */
+  0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f,
+  0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c,
+  0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e,
+  0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf,
+  0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1,
+  0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc,
+  0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9,
+  0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024,
+  0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c,
+  0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce,
+  0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd,
+  0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2,
+  0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6,
+  0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db,
+  0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740,
+  0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741,
+  0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712,
+  0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724,
+  0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2, 0x88fa,
+  0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb,
+  /* 0xe4 */
+  0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9,
+  0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96,
+  0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09,
+  0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06,
+  0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d,
+  0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124,
+  0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4,
+  0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6,
+  0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e,
+  0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286,
+  0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, 0x928b,
+  0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, 0x977e,
+  0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, 0x97ce,
+  0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, 0x999d,
+  0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, 0x99c7,
+  0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, 0x9b5f,
+  0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, 0x50f8,
+  0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, 0x510a,
+  0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, 0x5635,
+  0x5641, 0x564a, 0x5649, 0x5646, 0x5658,
+  /* 0xe5 */
+  0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a,
+  0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af,
+  0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7,
+  0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05,
+  0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93,
+  0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d,
+  0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2,
+  0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b,
+  0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d,
+  0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485,
+  0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f,
+  0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2,
+  0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af,
+  0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4,
+  0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe, 0x6a27,
+  0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08, 0x69e6,
+  0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18, 0x6a25,
+  0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51, 0x6ba5,
+  0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02, 0x6f41,
+  0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92,
+  /* 0xe6 */
+  0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96,
+  0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57,
+  0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67,
+  0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77,
+  0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a,
+  0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa,
+  0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e,
+  0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x7362,
+  0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, 0x7488,
+  0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, 0x7619,
+  0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, 0x769d,
+  0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, 0x78bb,
+  0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, 0x78c4,
+  0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, 0x6b76,
+  0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, 0x7bac,
+  0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, 0x7ccc,
+  0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, 0x7e03,
+  0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, 0x7f76,
+  0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec, 0x7fe6,
+  0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f,
+  /* 0xe7 */
+  0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253,
+  0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500,
+  0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c,
+  0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2,
+  0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9,
+  0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e,
+  0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9,
+  0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756,
+  0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b,
+  0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750,
+  0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e, 0x875c,
+  0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769, 0x885a,
+  0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919, 0x8906,
+  0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3, 0x89ed,
+  0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1, 0x8ad4,
+  0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8, 0x8ac3,
+  0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5, 0x8cdf,
+  0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c, 0x8da1,
+  0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15, 0x8e1b,
+  0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27,
+  /* 0xe8 */
+  0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c,
+  0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073,
+  0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a,
+  0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182,
+  0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6,
+  0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc,
+  0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd,
+  0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x92b5,
+  0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae, 0x95b0,
+  0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a, 0x978a,
+  0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826, 0x9829,
+  0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa, 0x9911,
+  0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf, 0x99d3,
+  0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7, 0x99cc,
+  0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46, 0x9b43,
+  0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70, 0x9b68,
+  0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7, 0x9d07,
+  0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83, 0x9ed3,
+  0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111, 0x51de,
+  0x5334, 0x53e1, 0x5670, 0x5660, 0x566e,
+  /* 0xe9 */
+  0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c,
+  0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc,
+  0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10,
+  0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1,
+  0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2,
+  0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9,
+  0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8,
+  0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x61bf,
+  0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9, 0x64bd,
+  0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f, 0x657c,
+  0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf, 0x66bd,
+  0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49, 0x6a67,
+  0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b, 0x6a51,
+  0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64, 0x6a50,
+  0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e, 0x6a56,
+  0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56, 0x6ba7,
+  0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06, 0x6fad,
+  0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4,
+  0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba,
+  0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8,
+  /* 0xea */
+  0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5,
+  0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4,
+  0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da,
+  0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365,
+  0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495,
+  0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633,
+  0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d,
+  0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x7797,
+  0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db, 0x78e1,
+  0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48, 0x7a47,
+  0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7,
+  0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea,
+  0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7,
+  0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20,
+  0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f,
+  0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c,
+  0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6,
+  0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2,
+  0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556, 0x8545,
+  0x856b, 0x854d, 0x8553, 0x8561, 0x8558,
+  /* 0xeb */
+  0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547,
+  0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555,
+  0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c,
+  0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792,
+  0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785,
+  0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789,
+  0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922,
+  0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2,
+  0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0,
+  0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91,
+  0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c,
+  0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45,
+  0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36,
+  0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079,
+  0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190,
+  0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306,
+  0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301,
+  0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9325,
+  0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329,
+  0x9339, 0x9335, 0x932a, 0x9314, 0x930c,
+  /* 0xec */
+  0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd,
+  0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9,
+  0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0,
+  0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929,
+  0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea,
+  0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa,
+  0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e,
+  0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d,
+  0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d,
+  0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87,
+  0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126,
+  0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c,
+  0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f, 0x5681,
+  0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23,
+  0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2,
+  0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5, 0x61bc,
+  0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef, 0x64e9,
+  0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6, 0x65da,
+  0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b,
+  0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e,
+  /* 0xed */
+  0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a,
+  0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9,
+  0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde,
+  0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2,
+  0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2,
+  0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510,
+  0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647,
+  0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x77b4,
+  0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb, 0x78fc,
+  0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8, 0x7a5c,
+  0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1,
+  0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4,
+  0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd,
+  0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c,
+  0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47,
+  0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45,
+  0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4,
+  0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a,
+  0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b,
+  0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e,
+  /* 0xee */
+  0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e,
+  0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582,
+  0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668,
+  0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5,
+  0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af,
+  0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de,
+  0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937,
+  0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18,
+  0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15,
+  0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f,
+  0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f,
+  0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40,
+  0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f,
+  0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356,
+  0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351,
+  0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355,
+  0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363,
+  0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3,
+  0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718,
+  0x971d, 0x9719, 0x979a, 0x97a1, 0x979c,
+  /* 0xef */
+  0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a,
+  0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933,
+  0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1,
+  0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb,
+  0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01,
+  0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1,
+  0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41,
+  0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45,
+  0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d,
+  0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff,
+  0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e,
+  0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c,
+  0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed,
+  0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff,
+  0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db,
+  0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6,
+  0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9,
+  0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014, 0x700e,
+  0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201,
+  0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376,
+  /* 0xf0 */
+  0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2,
+  0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657,
+  0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c,
+  0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac,
+  0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d,
+  0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56,
+  0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53,
+  0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x81d0,
+  0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2, 0x85b3,
+  0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce, 0x85c8,
+  0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be,
+  0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5,
+  0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8,
+  0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8, 0x87dd,
+  0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951, 0x8949,
+  0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47, 0x8b2f,
+  0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36, 0x8b2e,
+  0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99, 0x8c98,
+  0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62, 0x8e60,
+  0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67,
+  /* 0xf1 */
+  0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47,
+  0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5,
+  0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b,
+  0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395,
+  0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4,
+  0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3,
+  0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722,
+  0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x97a2,
+  0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850, 0x9851,
+  0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b, 0x9a09,
+  0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06, 0x9ac0,
+  0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a, 0x9b4c,
+  0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5, 0x9bb8,
+  0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53, 0x9d4f,
+  0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52,
+  0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01,
+  0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c,
+  0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad,
+  0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912,
+  0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70,
+  /* 0xf2 */
+  0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e,
+  0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1,
+  0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd,
+  0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016,
+  0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c,
+  0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6,
+  0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516,
+  0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x7921,
+  0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33, 0x7c3c,
+  0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75, 0x7e78,
+  0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68, 0x7f4b,
+  0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078, 0x81d7,
+  0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed, 0x85d9,
+  0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8, 0x85d8,
+  0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef, 0x85de,
+  0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809, 0x880c,
+  0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802, 0x8962,
+  0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d, 0x8959,
+  0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40,
+  0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55,
+  /* 0xf3 */
+  0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a,
+  0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d,
+  0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51,
+  0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad,
+  0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec,
+  0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3,
+  0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da,
+  0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x97b3,
+  0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859, 0x985d,
+  0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947, 0x9943,
+  0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b,
+  0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2,
+  0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0,
+  0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec,
+  0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81,
+  0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b,
+  0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85,
+  0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68,
+  0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d,
+  0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2,
+  /* 0xf4 */
+  0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef,
+  0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df,
+  0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9,
+  0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034,
+  0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b,
+  0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba,
+  0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd,
+  0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2,
+  0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47,
+  0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff,
+  0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622, 0x85ff,
+  0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605,
+  0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813, 0x8816,
+  0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68,
+  0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84,
+  0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143,
+  0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb,
+  0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419,
+  0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412,
+  0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff,
+  /* 0xf5 */
+  0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df,
+  0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862,
+  0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c,
+  0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36,
+  0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10,
+  0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8,
+  0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f,
+  0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0,
+  0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8,
+  0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99,
+  0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e,
+  0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139,
+  0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb,
+  0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8,
+  0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046,
+  0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d,
+  0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88,
+  0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, 0x8618,
+  0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, 0x862e,
+  0x8621, 0x8620, 0x8629, 0x861e, 0x8625,
+  /* 0xf6 */
+  0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a,
+  0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45,
+  0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e,
+  0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b,
+  0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437,
+  0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a,
+  0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956,
+  0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f,
+  0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b,
+  0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21,
+  0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe,
+  0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac,
+  0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a,
+  0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31,
+  0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb,
+  0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520,
+  0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056,
+  0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5,
+  0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71,
+  0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a,
+  /* 0xf7 */
+  0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634,
+  0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826,
+  0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84,
+  0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a,
+  0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c,
+  0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449,
+  0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b,
+  0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49,
+  0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55,
+  0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c,
+  0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde,
+  0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9,
+  0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35,
+  0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299,
+  0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201,
+  0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12,
+  0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383,
+  0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640,
+  0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e,
+  0x8833, 0x8976, 0x8974, 0x8973, 0x89fe,
+  /* 0xf8 */
+  0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64,
+  0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4,
+  0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52,
+  0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c,
+  0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4,
+  0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec,
+  0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3,
+  0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71,
+  0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d,
+  0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223,
+  0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97,
+  0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94,
+  0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2,
+  0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7,
+  0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62,
+  0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05,
+  0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e,
+  0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, 0x6b18,
+  0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, 0x77d9,
+  0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a,
+  /* 0xf9 */
+  0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648,
+  0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5,
+  0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749,
+  0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10,
+  0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78,
+  0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2,
+  0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74,
+  0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4,
+  0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e,
+  0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, 0x9961,
+  0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, 0x9f48,
+  0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, 0x9481,
+  0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f, 0x9483,
+  0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a,
+  0x9ea4, 0x9f7e, 0x9f49, 0x9f98,
+};
+
+static int
+big5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0xa1 && c1 <= 0xc7) || (c1 >= 0xc9 && c1 <= 0xf9)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+        unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
+        unsigned short wc = 0xfffd;
+        if (i < 6280) {
+          if (i < 6121)
+            wc = big5_2uni_pagea1[i];
+        } else {
+          if (i < 13932)
+            wc = big5_2uni_pagec9[i-6280];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short big5_2charset[13703] = {
+  0xa246, 0xa247, 0xa244, 0xa1b1, 0xa258, 0xa1d3, 0xa150, 0xa1d1,
+  0xa1d2, 0xa3be, 0xa3bc, 0xa3bd, 0xa3bf, 0xa3bb, 0xa344, 0xa345,
+  0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, 0xa34d,
+  0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0xa355,
+  0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa35c, 0xa35d,
+  0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365,
+  0xa366, 0xa367, 0xa368, 0xa369, 0xa36a, 0xa36b, 0xa36c, 0xa36d,
+  0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, 0xc7b3, 0xc7b1,
+  0xc7b2, 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba,
+  0xc7bb, 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2,
+  0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca,
+  0xc7cb, 0xc7cc, 0xc7cd, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3,
+  0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db,
+  0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3,
+  0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7ce, 0xa156, 0xa158,
+  0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, 0xa145, 0xa14c, 0xa14b, 0xa1ac,
+  0xa1ab, 0xa1b0, 0xa1c2, 0xa24a, 0xa1c1, 0xa24b, 0xa2b9, 0xa2ba,
+  0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2,
+  0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0xa1f8, 0xa1f9, 0xa1fb, 0xa1fa,
+  0xa1d4, 0xa1db, 0xa1e8, 0xa1e7, 0xa1fd, 0xa1fc, 0xa1e4, 0xa1e5,
+  0xa1ec, 0xa1ed, 0xa1ef, 0xa1ee, 0xa1e3, 0xa1dc, 0xa1da, 0xa1dd,
+  0xa1d8, 0xa1d9, 0xa1e6, 0xa1e9, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec,
+  0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4,
+  0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0xc7fb, 0xc7fc,
+  0xa277, 0xa278, 0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa275, 0xa274,
+  0xa273, 0xa272, 0xa271, 0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa27e,
+  0xa2a1, 0xa2a3, 0xa2a2, 0xa2ac, 0xa2ad, 0xa2ae, 0xa262, 0xa263,
+  0xa264, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, 0xa270, 0xa26f,
+  0xa26e, 0xa26d, 0xa26c, 0xa26b, 0xa26a, 0xa276, 0xa279, 0xa1bd,
+  0xa1bc, 0xa1b6, 0xa1b5, 0xa1bf, 0xa1be, 0xa1bb, 0xa1ba, 0xa1b3,
+  0xa1b7, 0xa1b4, 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0xa1b9, 0xa1b8,
+  0xa1f3, 0xa1f0, 0xa1f2, 0xa1f1, 0xa140, 0xa142, 0xa143, 0xa1b2,
+  0xc6a4, 0xa171, 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179,
+  0xa17a, 0xa169, 0xa16a, 0xa245, 0xa165, 0xa166, 0xa1a9, 0xa1aa,
+  0xa2c3, 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca,
+  0xa2cb, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab,
+  0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3,
+  0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb,
+  0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c0, 0xc6c1, 0xc6c2, 0xc6c3,
+  0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb,
+  0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3,
+  0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db,
+  0xc6dc, 0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3,
+  0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb,
+  0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3,
+  0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6a2, 0xc6a3, 0xc6f8, 0xc6f9,
+  0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742,
+  0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a,
+  0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752,
+  0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a,
+  0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762,
+  0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a,
+  0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772,
+  0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a,
+  0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4,
+  0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac,
+  0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc6a1, 0xa374, 0xa375, 0xa376,
+  0xa377, 0xa378, 0xa379, 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e,
+  0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8,
+  0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0,
+  0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8,
+  0xa3b9, 0xa3ba, 0xa1c0, 0xa255, 0xa256, 0xa250, 0xa251, 0xa252,
+  0xa254, 0xa257, 0xa253, 0xa1eb, 0xa1ea, 0xa24f, 0xa440, 0xa442,
+  0xa443, 0xc945, 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3,
+  0xc94f, 0xc94d, 0xa4a2, 0xa4a1, 0xa542, 0xa541, 0xa540, 0xa543,
+  0xa4fe, 0xa5e0, 0xa5e1, 0xa8c3, 0xa458, 0xa4a4, 0xc950, 0xa4a5,
+  0xc963, 0xa6ea, 0xcbb1, 0xa459, 0xa4a6, 0xa544, 0xc964, 0xc940,
+  0xa444, 0xa45b, 0xc947, 0xa45c, 0xa4a7, 0xa545, 0xa547, 0xa546,
+  0xa5e2, 0xa5e3, 0xa8c4, 0xadbc, 0xa441, 0xc941, 0xa445, 0xa45e,
+  0xa45d, 0xa5e4, 0xa8c5, 0xb0ae, 0xd44b, 0xb6c3, 0xdcb1, 0xdcb2,
+  0xa446, 0xa4a9, 0xa8c6, 0xa447, 0xc948, 0xa45f, 0xa4aa, 0xa4ac,
+  0xc951, 0xa4ad, 0xa4ab, 0xa5e5, 0xa8c7, 0xa8c8, 0xab45, 0xa460,
+  0xa4ae, 0xa5e6, 0xa5e8, 0xa5e7, 0xa6eb, 0xa8c9, 0xa8ca, 0xab46,
+  0xab47, 0xadbd, 0xdcb3, 0xf6d6, 0xa448, 0xa4b0, 0xa4af, 0xc952,
+  0xa4b1, 0xa4b7, 0xa4b2, 0xa4b3, 0xc954, 0xc953, 0xa4b5, 0xa4b6,
+  0xa4b4, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa549, 0xa550, 0xc96a,
+  0xc966, 0xc969, 0xa551, 0xa561, 0xc968, 0xa54e, 0xa54f, 0xa548,
+  0xc965, 0xc967, 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae,
+  0xa5f3, 0xc9b2, 0xa5f4, 0xa5f7, 0xa5e9, 0xc9b1, 0xa5f8, 0xc9b5,
+  0xc9b9, 0xc9b6, 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9, 0xa5ee, 0xc9ab,
+  0xa5f1, 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af, 0xa5ed, 0xc9ac,
+  0xa5eb, 0xc9b4, 0xc9b7, 0xc9ad, 0xca66, 0xa742, 0xa6f4, 0xca67,
+  0xa6f1, 0xa744, 0xa6f9, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7, 0xca60,
+  0xca68, 0xca64, 0xa6fa, 0xa6fd, 0xa6ee, 0xa747, 0xca5d, 0xcbbd,
+  0xa6ec, 0xa743, 0xa6ed, 0xa6f5, 0xa6f6, 0xca62, 0xca5e, 0xa6fb,
+  0xa6f3, 0xca5a, 0xa6ef, 0xca65, 0xa745, 0xa748, 0xa6f2, 0xa740,
+  0xa746, 0xa6f0, 0xca63, 0xa741, 0xca69, 0xca5c, 0xa6fe, 0xca5f,
+  0xca61, 0xa8d8, 0xcbbf, 0xcbcb, 0xa8d0, 0xcbcc, 0xa8cb, 0xa8d5,
+  0xa8ce, 0xcbb9, 0xa8d6, 0xcbb8, 0xcbbc, 0xcbc3, 0xcbc1, 0xa8de,
+  0xa8d9, 0xcbb3, 0xcbb5, 0xa8db, 0xa8cf, 0xcbb6, 0xcbc2, 0xcbc9,
+  0xa8d4, 0xcbbb, 0xcbb4, 0xa8d3, 0xcbb7, 0xa8d7, 0xcbba, 0xa8d2,
+  0xa8cd, 0xa8dc, 0xcbc4, 0xa8dd, 0xcbc8, 0xcbc6, 0xcbca, 0xa8da,
+  0xcbbe, 0xcbb2, 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0xab56,
+  0xab4a, 0xcde0, 0xcde8, 0xab49, 0xab51, 0xab5d, 0xcdee, 0xcdec,
+  0xcde7, 0xab4b, 0xcded, 0xcde3, 0xab59, 0xab50, 0xab58, 0xcdde,
+  0xcdea, 0xcde1, 0xab54, 0xcde2, 0xcddd, 0xab5b, 0xab4e, 0xab57,
+  0xab4d, 0xcddf, 0xcde4, 0xcdeb, 0xab55, 0xab52, 0xcde6, 0xab5a,
+  0xcde9, 0xcde5, 0xab4f, 0xab5c, 0xab53, 0xab4c, 0xab48, 0xcdef,
+  0xadd7, 0xadc1, 0xadd1, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4, 0xd0d5,
+  0xadc4, 0xadcd, 0xadda, 0xadce, 0xd0c9, 0xadc7, 0xd0ca, 0xaddc,
+  0xadd3, 0xadbe, 0xadbf, 0xd0dd, 0xb0bf, 0xadcc, 0xadcb, 0xd0cb,
+  0xadcf, 0xd45b, 0xadc6, 0xd0d6, 0xadd5, 0xadd4, 0xadca, 0xd0ce,
+  0xd0d7, 0xd0c8, 0xadc9, 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0xadc3,
+  0xadc2, 0xd0d9, 0xadd0, 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8,
+  0xd0db, 0xd0cd, 0xd0dc, 0xd0d1, 0xd0da, 0xd0d2, 0xadc8, 0xd463,
+  0xd457, 0xb0b3, 0xd45c, 0xd462, 0xb0b2, 0xd455, 0xb0b6, 0xd459,
+  0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, 0xd467, 0xd451, 0xb0ba,
+  0xd466, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f, 0xd45d, 0xd450,
+  0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0xd85b, 0xd45e, 0xd44d,
+  0xd45f, 0xb0c1, 0xd464, 0xb0c0, 0xd44c, 0xd454, 0xd465, 0xb0bc,
+  0xb0bb, 0xb0b8, 0xb0bd, 0xb0af, 0xb0b0, 0xb3c8, 0xd85e, 0xd857,
+  0xb3c5, 0xd85f, 0xd855, 0xd858, 0xb3c4, 0xd859, 0xb3c7, 0xd85d,
+  0xd853, 0xd852, 0xb3c9, 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c,
+  0xd85a, 0xd854, 0xb3c3, 0xd856, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd,
+  0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb,
+  0xdcc4, 0xdcbf, 0xb6cc, 0xdcb4, 0xb6c9, 0xdcb5, 0xdcbe, 0xdcbc,
+  0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, 0xdcbb, 0xdcc2, 0xdcb9, 0xdcc1,
+  0xb9b6, 0xb9b3, 0xb9b4, 0xe0f9, 0xe0f1, 0xb9b2, 0xb9af, 0xe0f2,
+  0xb9b1, 0xe0f5, 0xe0f7, 0xe0fe, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0,
+  0xb9ac, 0xe0f3, 0xb9b7, 0xe0f6, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc,
+  0xe0fb, 0xb9b5, 0xe0f4, 0xbbf8, 0xe4ec, 0xe4e9, 0xbbf9, 0xbbf7,
+  0xe4f0, 0xe4ed, 0xe4e6, 0xbbf6, 0xbbfa, 0xe4e7, 0xbbf5, 0xbbfd,
+  0xe4ea, 0xe4eb, 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef, 0xbeaa,
+  0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab, 0xe8f6, 0xbea8, 0xe8f7,
+  0xe8f4, 0xc076, 0xecbd, 0xc077, 0xecbb, 0xecbc, 0xecba, 0xecb9,
+  0xecbe, 0xc075, 0xefb8, 0xefb9, 0xe4e8, 0xefb7, 0xc078, 0xc35f,
+  0xf1eb, 0xf1ec, 0xc4d7, 0xc4d8, 0xf5c1, 0xf5c0, 0xc56c, 0xc56b,
+  0xf7d0, 0xa449, 0xa461, 0xa4b9, 0xa4b8, 0xa553, 0xa552, 0xa5fc,
+  0xa5fb, 0xa5fd, 0xa5fa, 0xa74a, 0xa749, 0xa74b, 0xa8e0, 0xa8df,
+  0xa8e1, 0xab5e, 0xa259, 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b,
+  0xd860, 0xa25d, 0xb9b8, 0xa25e, 0xa44a, 0xa4ba, 0xa5fe, 0xa8e2,
+  0xa44b, 0xa4bd, 0xa4bb, 0xa4bc, 0xa640, 0xa74c, 0xa8e4, 0xa8e3,
+  0xa8e5, 0xaddd, 0xbeac, 0xc94e, 0xa554, 0xa555, 0xa641, 0xca6a,
+  0xab60, 0xab5f, 0xd0e0, 0xd0df, 0xb0c3, 0xa4be, 0xc955, 0xcbcd,
+  0xab61, 0xade0, 0xadde, 0xaddf, 0xbead, 0xa556, 0xa642, 0xc9bc,
+  0xa74d, 0xa74e, 0xca6b, 0xcbce, 0xa8e6, 0xcbcf, 0xd0e2, 0xd0e3,
+  0xade3, 0xd0e4, 0xd0e1, 0xade4, 0xade2, 0xade1, 0xd0e5, 0xd468,
+  0xd861, 0xdcc5, 0xe140, 0xbbfe, 0xbeae, 0xe8f9, 0xa44c, 0xa45a,
+  0xb0c4, 0xb3cd, 0xb9b9, 0xc942, 0xa4bf, 0xa559, 0xa557, 0xa558,
+  0xa8e7, 0xa44d, 0xa44e, 0xa462, 0xa4c0, 0xa4c1, 0xa4c2, 0xc9be,
+  0xa55a, 0xc96b, 0xa646, 0xc9bf, 0xa644, 0xa645, 0xc9bd, 0xa647,
+  0xa643, 0xca6c, 0xaaec, 0xca6d, 0xca6e, 0xa750, 0xa74f, 0xa753,
+  0xa751, 0xa752, 0xa8ed, 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0xcbd0,
+  0xa8ee, 0xa8ea, 0xa8e9, 0xa8eb, 0xa8e8, 0xa8ef, 0xab63, 0xcdf0,
+  0xcbd3, 0xab68, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62,
+  0xd0e8, 0xade7, 0xd0eb, 0xade5, 0xd0e7, 0xade8, 0xade6, 0xade9,
+  0xd0e9, 0xd0ea, 0xd0e6, 0xd0ec, 0xb3d1, 0xb0c5, 0xd469, 0xd46b,
+  0xd46a, 0xd46c, 0xb0c6, 0xb3ce, 0xb3cf, 0xb3d0, 0xb6d0, 0xdcc7,
+  0xdcc6, 0xdcc8, 0xdcc9, 0xb6d1, 0xb6cf, 0xe141, 0xe142, 0xb9bb,
+  0xb9ba, 0xe35a, 0xbc40, 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3,
+  0xbc43, 0xbeaf, 0xbeb0, 0xf1ed, 0xf5c3, 0xf5c2, 0xf7d1, 0xa44f,
+  0xa55c, 0xa55b, 0xa648, 0xc9c0, 0xa755, 0xa756, 0xa754, 0xa757,
+  0xca6f, 0xca70, 0xa8f1, 0xcbd5, 0xa8f0, 0xcdf2, 0xab6c, 0xcdf3,
+  0xab6b, 0xab69, 0xab6a, 0xd0ed, 0xb0c7, 0xd46e, 0xb0ca, 0xd46d,
+  0xb1e5, 0xb0c9, 0xb0c8, 0xb3d4, 0xb3d3, 0xb3d2, 0xb6d2, 0xb6d5,
+  0xb6d6, 0xb6d4, 0xb6d3, 0xe143, 0xe144, 0xe4f5, 0xbc45, 0xe4f4,
+  0xbeb1, 0xecbf, 0xc079, 0xf1ee, 0xc455, 0xa463, 0xa4c3, 0xc956,
+  0xa4c4, 0xa4c5, 0xa55d, 0xa55e, 0xa649, 0xca71, 0xcbd6, 0xcbd7,
+  0xab6d, 0xd0ee, 0xb0cc, 0xb0cb, 0xd863, 0xd862, 0xa450, 0xa4c6,
+  0xa55f, 0xb0cd, 0xc943, 0xc96c, 0xa560, 0xc9c2, 0xa64b, 0xa64a,
+  0xc9c1, 0xa758, 0xadea, 0xd46f, 0xb6d7, 0xe145, 0xb9bc, 0xe8fa,
+  0xf3fd, 0xa4c7, 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, 0xb0cf, 0xa451,
+  0xa464, 0xa2cd, 0xa4ca, 0xa4c9, 0xa4c8, 0xa563, 0xa562, 0xc96d,
+  0xc9c3, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0xab6e, 0xb3d5, 0xa452,
+  0xa4cb, 0xa565, 0xa564, 0xca72, 0xa8f6, 0xc957, 0xa567, 0xa566,
+  0xa64c, 0xa64d, 0xca73, 0xa759, 0xa75a, 0xa8f7, 0xa8f8, 0xa8f9,
+  0xab6f, 0xcdf5, 0xadeb, 0xc944, 0xa4cc, 0xc9c4, 0xca74, 0xca75,
+  0xcbd9, 0xcbda, 0xcdf7, 0xcdf6, 0xcdf9, 0xcdf8, 0xab70, 0xd470,
+  0xaded, 0xd0ef, 0xadec, 0xd864, 0xb3d6, 0xd865, 0xe146, 0xb9bd,
+  0xbc46, 0xf1ef, 0xc958, 0xa568, 0xb0d1, 0xa453, 0xa465, 0xa4ce,
+  0xa4cd, 0xa4cf, 0xa8fb, 0xa8fa, 0xa8fc, 0xab71, 0xadee, 0xe8fb,
+  0xc24f, 0xa466, 0xa56a, 0xa579, 0xa574, 0xa56f, 0xa56e, 0xa575,
+  0xa573, 0xa56c, 0xa57a, 0xa56d, 0xa569, 0xa578, 0xa577, 0xa576,
+  0xa56b, 0xa572, 0xa571, 0xa57b, 0xa570, 0xa653, 0xa659, 0xa655,
+  0xa65b, 0xc9c5, 0xa658, 0xa64e, 0xa651, 0xa654, 0xa650, 0xa657,
+  0xa65a, 0xa64f, 0xa652, 0xa656, 0xa65c, 0xca7e, 0xca7b, 0xa767,
+  0xca7c, 0xa75b, 0xa75d, 0xa775, 0xa770, 0xcaa5, 0xca7d, 0xa75f,
+  0xa761, 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d,
+  0xca76, 0xa773, 0xa764, 0xa76e, 0xa76f, 0xca77, 0xa76c, 0xa76a,
+  0xa76b, 0xa771, 0xcaa1, 0xa75e, 0xa772, 0xcaa3, 0xa766, 0xa763,
+  0xca7a, 0xa762, 0xcaa6, 0xa765, 0xa769, 0xa760, 0xcaa2, 0xca79,
+  0xcbeb, 0xcbea, 0xa94f, 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee,
+  0xa950, 0xcbe1, 0xcbe5, 0xcbe9, 0xce49, 0xa94b, 0xce4d, 0xa8fd,
+  0xcbe6, 0xa8fe, 0xa94c, 0xa945, 0xa941, 0xcbe2, 0xa944, 0xa949,
+  0xa952, 0xcbe3, 0xcbdc, 0xa943, 0xcbdd, 0xcbdf, 0xa946, 0xa948,
+  0xcbdb, 0xcbe0, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0xa94a, 0xcbde,
+  0xa947, 0xa942, 0xa940, 0xcbec, 0xa94e, 0xce48, 0xcdfb, 0xce4b,
+  0xcdfd, 0xab78, 0xaba8, 0xab74, 0xaba7, 0xab7d, 0xaba4, 0xab72,
+  0xcdfc, 0xce43, 0xaba3, 0xce4f, 0xaba5, 0xab79, 0xce45, 0xce42,
+  0xab77, 0xcdfa, 0xaba6, 0xce4a, 0xab7c, 0xce4c, 0xaba9, 0xab73,
+  0xab7e, 0xab7b, 0xce40, 0xaba1, 0xce46, 0xce47, 0xab7a, 0xaba2,
+  0xab76, 0xab75, 0xcdfe, 0xce44, 0xce4e, 0xd144, 0xadfb, 0xd0f1,
+  0xd0f6, 0xadf4, 0xae40, 0xd0f4, 0xadef, 0xadf9, 0xadfe, 0xd0fb,
+  0xadfa, 0xadfd, 0xd0fe, 0xadf5, 0xd0f5, 0xd142, 0xd143, 0xadf7,
+  0xd141, 0xadf3, 0xae43, 0xd0f8, 0xadf1, 0xd146, 0xd0f9, 0xd0fd,
+  0xadf6, 0xae42, 0xd0fa, 0xadfc, 0xd140, 0xd147, 0xd4a1, 0xd145,
+  0xae44, 0xadf0, 0xd0fc, 0xd0f3, 0xadf8, 0xd0f2, 0xd0f7, 0xd0f0,
+  0xae41, 0xd477, 0xb0e4, 0xd4a7, 0xb0e2, 0xb0df, 0xd47c, 0xb0db,
+  0xd4a2, 0xb0e6, 0xd476, 0xd47b, 0xd47a, 0xadf2, 0xb0e1, 0xd4a5,
+  0xd4a8, 0xd473, 0xb3e8, 0xd4a9, 0xb0e7, 0xb0d9, 0xb0d6, 0xd47e,
+  0xb0d3, 0xd4a6, 0xb0da, 0xd4aa, 0xd474, 0xd4a4, 0xb0dd, 0xd475,
+  0xd478, 0xd47d, 0xb0de, 0xb0dc, 0xb0e8, 0xb0e3, 0xb0d7, 0xb1d2,
+  0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0xb0d4, 0xd471,
+  0xd472, 0xd86a, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, 0xb3d8,
+  0xd871, 0xb3de, 0xb3e4, 0xb5bd, 0xb3e2, 0xd86e, 0xb3ef, 0xb3db,
+  0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, 0xd866, 0xd873, 0xd86d,
+  0xb3e1, 0xd879, 0xb3dd, 0xb3f1, 0xb3ea, 0xb3df, 0xb3dc, 0xb3e7,
+  0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9, 0xd867,
+  0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0xb3ed, 0xb3e9, 0xb3e5,
+  0xd870, 0xb3eb, 0xdcd5, 0xdcd1, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5,
+  0xb6e6, 0xb6de, 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde,
+  0xb6dc, 0xdcd8, 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9,
+  0xdcdb, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0, 0xb6d8, 0xb6e4,
+  0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db, 0xa25f, 0xb6d9, 0xdcd4,
+  0xb6e2, 0xdcdd, 0xb9cd, 0xb9c8, 0xe155, 0xe151, 0xe14b, 0xb9c2,
+  0xb9be, 0xe154, 0xb9bf, 0xe14e, 0xe150, 0xe153, 0xb9c4, 0xb9cb,
+  0xb9c5, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, 0xb9cc, 0xe14a, 0xe14f,
+  0xb9c3, 0xe148, 0xb9c9, 0xb9c1, 0xb9c0, 0xe14d, 0xe152, 0xb9ca,
+  0xe147, 0xbc4d, 0xe547, 0xe544, 0xbc47, 0xbc53, 0xbc54, 0xbc4a,
+  0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0xe546, 0xbc49, 0xe548, 0xbc48,
+  0xe543, 0xe545, 0xbc4b, 0xe541, 0xe4fa, 0xe4f7, 0xd86b, 0xe4fd,
+  0xe4f6, 0xe4fc, 0xe4fb, 0xe4f8, 0xbc4f, 0xbc4e, 0xbc50, 0xe4fe,
+  0xbeb2, 0xe540, 0xe945, 0xe8fd, 0xbebe, 0xe942, 0xbeb6, 0xbeba,
+  0xe941, 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3, 0xbebd, 0xe943, 0xe8fe,
+  0xbebc, 0xe8fc, 0xbebb, 0xe944, 0xe940, 0xbc51, 0xbebf, 0xe946,
+  0xbeb7, 0xbeb4, 0xecc6, 0xecc8, 0xc07b, 0xecc9, 0xecc7, 0xecc5,
+  0xecc4, 0xc07d, 0xecc3, 0xc07e, 0xecc1, 0xecc2, 0xc07a, 0xc0a1,
+  0xc07c, 0xecc0, 0xc250, 0xefbc, 0xefba, 0xefbf, 0xefbd, 0xefbb,
+  0xefbe, 0xc360, 0xf1f2, 0xf1f3, 0xc456, 0xf1f4, 0xf1f0, 0xf1f5,
+  0xf1f1, 0xc251, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457,
+  0xc45a, 0xf5c5, 0xf5c6, 0xc4da, 0xc4d9, 0xc4db, 0xf5c4, 0xf6d8,
+  0xf6d7, 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8, 0xf8a6, 0xc5f1,
+  0xf8a5, 0xf8ee, 0xc949, 0xa57d, 0xa57c, 0xa65f, 0xa65e, 0xc9c7,
+  0xa65d, 0xc9c6, 0xa779, 0xcaa9, 0xcaa8, 0xa777, 0xa77a, 0xcaa7,
+  0xa778, 0xcbf0, 0xcbf1, 0xa954, 0xabaa, 0xd148, 0xd149, 0xae45,
+  0xae46, 0xd4ac, 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c, 0xb3f2,
+  0xb6e9, 0xb6ea, 0xdce1, 0xb9cf, 0xb9ce, 0xe549, 0xe948, 0xe947,
+  0xf96b, 0xa467, 0xc959, 0xc96e, 0xc96f, 0xa662, 0xa666, 0xc9c9,
+  0xa664, 0xa663, 0xc9c8, 0xa665, 0xa661, 0xa660, 0xc9ca, 0xa7a6,
+  0xa7a3, 0xa77d, 0xcaaa, 0xcaab, 0xa7a1, 0xcaad, 0xa77b, 0xcaae,
+  0xcaac, 0xa77e, 0xa7a2, 0xa7a5, 0xa7a4, 0xa77c, 0xcaaf, 0xa959,
+  0xcbfe, 0xa95b, 0xa95a, 0xcc40, 0xa958, 0xa957, 0xcbf5, 0xcbf4,
+  0xcbf2, 0xcbf7, 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8,
+  0xa956, 0xcbfb, 0xa95c, 0xcc41, 0xcbf9, 0xabab, 0xa955, 0xabac,
+  0xce54, 0xce5a, 0xabb2, 0xce58, 0xce5e, 0xce55, 0xce59, 0xce5b,
+  0xce5d, 0xce57, 0xce56, 0xce51, 0xce52, 0xabad, 0xabaf, 0xabae,
+  0xce53, 0xce5c, 0xabb1, 0xce50, 0xd153, 0xd152, 0xd157, 0xd14e,
+  0xd151, 0xd150, 0xd154, 0xd158, 0xae47, 0xae4a, 0xd14f, 0xd155,
+  0xae49, 0xd14a, 0xabb0, 0xd4ba, 0xd156, 0xd14d, 0xae48, 0xd14c,
+  0xd4b1, 0xb0ec, 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1, 0xd4bf,
+  0xd4c5, 0xd4c9, 0xd4c0, 0xd4b4, 0xd4bc, 0xd4ca, 0xd4c8, 0xd4be,
+  0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5, 0xd4b7, 0xb0f6, 0xb0f2,
+  0xd4ad, 0xd4c3, 0xd4b5, 0xd4b3, 0xd4c6, 0xb0f3, 0xd4cc, 0xb0ed,
+  0xb0ef, 0xd4bb, 0xd4b6, 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb,
+  0xd4c2, 0xd4c4, 0xd4ae, 0xd8a1, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2,
+  0xb3fb, 0xb3f9, 0xd8a4, 0xb3f6, 0xd8a8, 0xd8a3, 0xd8a5, 0xd87d,
+  0xb3f4, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, 0xb3f7, 0xb3f8, 0xd14b,
+  0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, 0xd8b0, 0xd8af, 0xd8b3,
+  0xdcef, 0xd8ac, 0xd8a7, 0xdce7, 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6,
+  0xdcea, 0xdce5, 0xb6ec, 0xb6f6, 0xdce2, 0xb6f0, 0xdce9, 0xb6ee,
+  0xb6ed, 0xdcec, 0xb6ef, 0xdcee, 0xdceb, 0xb6eb, 0xb6f5, 0xdcf0,
+  0xdce4, 0xdced, 0xdce3, 0xb6f1, 0xb6f3, 0xdce8, 0xdcf1, 0xe15d,
+  0xb9d0, 0xe163, 0xb9d5, 0xe15f, 0xe166, 0xe157, 0xb9d7, 0xb9d1,
+  0xe15c, 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0xb9d6, 0xe15a, 0xe160,
+  0xe165, 0xe156, 0xb9d4, 0xe15e, 0xe162, 0xe168, 0xe158, 0xe161,
+  0xb9d3, 0xe167, 0xe159, 0xbc59, 0xe54b, 0xbc57, 0xbc56, 0xe54d,
+  0xe552, 0xe54e, 0xe551, 0xbc5c, 0xbea5, 0xbc5b, 0xe54a, 0xe550,
+  0xbc5a, 0xe54f, 0xe54c, 0xbc58, 0xe94d, 0xe94f, 0xe94a, 0xbec1,
+  0xe94c, 0xbec0, 0xe94e, 0xbec3, 0xe950, 0xbec2, 0xe949, 0xe94b,
+  0xc0a5, 0xeccc, 0xc0a4, 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca,
+  0xc253, 0xc252, 0xf1f6, 0xf1f8, 0xf1f7, 0xc361, 0xc362, 0xc363,
+  0xf442, 0xc45b, 0xf7d3, 0xf7d2, 0xc5f2, 0xa468, 0xa4d0, 0xa7a7,
+  0xce5f, 0xb3fc, 0xb3fd, 0xdcf2, 0xb9d8, 0xe169, 0xe553, 0xc95a,
+  0xcab0, 0xcc42, 0xce60, 0xd159, 0xae4c, 0xf1f9, 0xc4dc, 0xa469,
+  0xa57e, 0xc970, 0xa667, 0xa668, 0xa95d, 0xb0f7, 0xb9da, 0xb9db,
+  0xb9d9, 0xa46a, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b, 0xa4d4, 0xa5a1,
+  0xc971, 0xa5a2, 0xa669, 0xa66a, 0xc9cb, 0xa7a8, 0xcab1, 0xa961,
+  0xcc43, 0xa95f, 0xa960, 0xa95e, 0xd15a, 0xabb6, 0xabb5, 0xabb7,
+  0xabb4, 0xce61, 0xa962, 0xabb3, 0xae4d, 0xae4e, 0xae4f, 0xd4cd,
+  0xb3fe, 0xd8b4, 0xb0f8, 0xb6f8, 0xb9dd, 0xb9dc, 0xe16a, 0xbc5d,
+  0xbec4, 0xefc0, 0xf6da, 0xf7d4, 0xa46b, 0xa5a3, 0xa5a4, 0xc9d1,
+  0xa66c, 0xa66f, 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, 0xc9cc,
+  0xa671, 0xa670, 0xa66d, 0xa66b, 0xc9ce, 0xa7b3, 0xa7b0, 0xcab6,
+  0xcab9, 0xcab8, 0xa7aa, 0xa7b2, 0xa7af, 0xcab5, 0xcab3, 0xa7ae,
+  0xa7a9, 0xa7ac, 0xcab4, 0xcabb, 0xcab7, 0xa7ad, 0xa7b1, 0xa7b4,
+  0xcab2, 0xcaba, 0xa7ab, 0xa967, 0xa96f, 0xcc4f, 0xcc48, 0xa970,
+  0xcc53, 0xcc44, 0xcc4b, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50,
+  0xa963, 0xcc51, 0xcc4a, 0xcc4d, 0xa972, 0xa969, 0xcc54, 0xcc52,
+  0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, 0xa96a, 0xa968,
+  0xa971, 0xa96d, 0xa965, 0xcc4e, 0xabb9, 0xabc0, 0xce6f, 0xabb8,
+  0xce67, 0xce63, 0xce73, 0xce62, 0xabbb, 0xce6c, 0xabbe, 0xabc1,
+  0xabbc, 0xce70, 0xabbf, 0xae56, 0xce76, 0xce64, 0xce66, 0xce6d,
+  0xce71, 0xce75, 0xce72, 0xce6b, 0xce6e, 0xce68, 0xabc3, 0xce6a,
+  0xce69, 0xce74, 0xabba, 0xce65, 0xabc2, 0xabbd, 0xae5c, 0xd162,
+  0xae5b, 0xd160, 0xae50, 0xae55, 0xd15f, 0xd15c, 0xd161, 0xae51,
+  0xd15b, 0xae54, 0xae52, 0xd163, 0xae53, 0xae57, 0xae58, 0xae5a,
+  0xae59, 0xd15d, 0xd15e, 0xd164, 0xd4d4, 0xb0f9, 0xd8c2, 0xd4d3,
+  0xd4e6, 0xb140, 0xd4e4, 0xb0fe, 0xb0fa, 0xd4ed, 0xd4dd, 0xd4e0,
+  0xb143, 0xd4ea, 0xd4e2, 0xb0fb, 0xb144, 0xd4e7, 0xd4e5, 0xd4d6,
+  0xd4eb, 0xd4df, 0xd4da, 0xd4d0, 0xd4ec, 0xd4dc, 0xd4cf, 0xb142,
+  0xd4e1, 0xd4ee, 0xd4de, 0xd4d2, 0xd4d7, 0xd4ce, 0xb141, 0xd4db,
+  0xd4d8, 0xb0fc, 0xd4d1, 0xd4e9, 0xb0fd, 0xd4d9, 0xd4d5, 0xd4e8,
+  0xb440, 0xd8bb, 0xd8b8, 0xd8c9, 0xd8bd, 0xd8ca, 0xb442, 0xd8c6,
+  0xd8c3, 0xd8c4, 0xd8c7, 0xd8cb, 0xd4e3, 0xd8cd, 0xdd47, 0xb443,
+  0xd8ce, 0xd8b6, 0xd8c0, 0xd8c5, 0xb441, 0xb444, 0xd8cc, 0xd8cf,
+  0xd8ba, 0xd8b7, 0xd8b9, 0xd8be, 0xd8bc, 0xb445, 0xd8c8, 0xd8bf,
+  0xd8c1, 0xd8b5, 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9,
+  0xdd44, 0xdd40, 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd,
+  0xb6fc, 0xdcfb, 0xdd41, 0xb6f9, 0xb741, 0xdcf4, 0xdcfe, 0xdcf3,
+  0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0xe16e, 0xb9e2,
+  0xb9e1, 0xb9e3, 0xe17a, 0xe170, 0xe176, 0xe16b, 0xe179, 0xe178,
+  0xe17c, 0xe175, 0xb9de, 0xe174, 0xb9e4, 0xe16d, 0xb9df, 0xe17b,
+  0xb9e0, 0xe16f, 0xe172, 0xe177, 0xe171, 0xe16c, 0xe173, 0xe555,
+  0xbc61, 0xe558, 0xe557, 0xe55a, 0xe55c, 0xbc5f, 0xe556, 0xe554,
+  0xe55d, 0xe55b, 0xe559, 0xe55f, 0xe55e, 0xbc63, 0xbc5e, 0xbc60,
+  0xbc62, 0xe560, 0xe957, 0xe956, 0xe955, 0xe958, 0xe951, 0xe952,
+  0xe95a, 0xe953, 0xbec5, 0xe95c, 0xe95b, 0xe954, 0xecd1, 0xc0a8,
+  0xeccf, 0xecd4, 0xecd3, 0xe959, 0xc0a7, 0xecd2, 0xecce, 0xecd6,
+  0xecd5, 0xc0a6, 0xecd0, 0xbec6, 0xc254, 0xefc1, 0xf1fa, 0xf1fb,
+  0xf1fc, 0xc45c, 0xc45d, 0xf443, 0xf5c8, 0xf5c7, 0xf6db, 0xf6dc,
+  0xf7d5, 0xf8a7, 0xa46c, 0xa46d, 0xa46e, 0xa4d5, 0xa5a5, 0xc9d3,
+  0xa672, 0xa673, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5, 0xa973, 0xcc55,
+  0xa975, 0xa974, 0xcc56, 0xabc4, 0xae5d, 0xd165, 0xd4f0, 0xb145,
+  0xb447, 0xd4ef, 0xb446, 0xb9e5, 0xe17d, 0xbec7, 0xc0a9, 0xecd7,
+  0xc45e, 0xc570, 0xc972, 0xa5a6, 0xc973, 0xa676, 0xa674, 0xa675,
+  0xa677, 0xa7ba, 0xa7b9, 0xcabc, 0xa7bb, 0xcabd, 0xcc57, 0xcc58,
+  0xa976, 0xa978, 0xa97a, 0xa977, 0xa97b, 0xa979, 0xabc8, 0xabc5,
+  0xabc7, 0xabc9, 0xabc6, 0xd166, 0xce77, 0xd168, 0xd167, 0xae63,
+  0xae5f, 0xae60, 0xae62, 0xae64, 0xae61, 0xae66, 0xae65, 0xb14a,
+  0xd4f2, 0xd4f1, 0xb149, 0xb148, 0xb147, 0xb14b, 0xb146, 0xd8d5,
+  0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0xb44b, 0xd8d4, 0xb448, 0xb44a,
+  0xd8d3, 0xdd48, 0xdd49, 0xdd4a, 0xb9e6, 0xb9ee, 0xe17e, 0xb9e8,
+  0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea, 0xb9e7, 0xb9eb, 0xbc66,
+  0xd8d0, 0xbc67, 0xbc65, 0xbc64, 0xe95d, 0xbec8, 0xecd8, 0xecd9,
+  0xc364, 0xc45f, 0xa46f, 0xa678, 0xabca, 0xd169, 0xae67, 0xb14e,
+  0xb14d, 0xb14c, 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470,
+  0xc95c, 0xa4d6, 0xc974, 0xc9d4, 0xa679, 0xa97c, 0xdd4b, 0xa471,
+  0xa4d7, 0xc9d5, 0xcabe, 0xcabf, 0xa7bc, 0xd8d8, 0xb44e, 0xdd4c,
+  0xc0aa, 0xa472, 0xa4a8, 0xa4d8, 0xc975, 0xa5a7, 0xa7c0, 0xa7bf,
+  0xa7bd, 0xa7be, 0xcc59, 0xa97e, 0xa9a1, 0xcc5a, 0xa97d, 0xabce,
+  0xce78, 0xabcd, 0xabcb, 0xabcc, 0xae6a, 0xae68, 0xd16b, 0xae69,
+  0xd16a, 0xae5e, 0xd4f3, 0xb150, 0xb151, 0xb14f, 0xb9f0, 0xe1a2,
+  0xbc68, 0xbc69, 0xe561, 0xc0ab, 0xefc2, 0xefc3, 0xc4dd, 0xf8a8,
+  0xc94b, 0xa4d9, 0xa473, 0xc977, 0xc976, 0xa67a, 0xc9d7, 0xc9d8,
+  0xc9d6, 0xc9d9, 0xcac7, 0xcac2, 0xcac4, 0xcac6, 0xcac3, 0xa7c4,
+  0xcac0, 0xcac1, 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3, 0xcac9,
+  0xcc68, 0xcc62, 0xcc5d, 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69,
+  0xcc6c, 0xcc67, 0xcc60, 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64,
+  0xcc5b, 0xcc5f, 0xcc6b, 0xa9a7, 0xa9a8, 0xcc5e, 0xcc6a, 0xa9a2,
+  0xa9a4, 0xceab, 0xcea4, 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b,
+  0xceac, 0xcea9, 0xce79, 0xabd0, 0xcea7, 0xcea8, 0xcea6, 0xce7c,
+  0xce7a, 0xabcf, 0xcea2, 0xce7e, 0xcea1, 0xcead, 0xae6f, 0xae6e,
+  0xd16c, 0xae6b, 0xd16e, 0xae70, 0xd16f, 0xae73, 0xae71, 0xd170,
+  0xceae, 0xd172, 0xae6d, 0xae6c, 0xd16d, 0xd171, 0xae72, 0xb153,
+  0xb152, 0xd4f5, 0xd4f9, 0xd4fb, 0xb154, 0xd4fe, 0xb158, 0xd541,
+  0xb15a, 0xb156, 0xb15e, 0xb15b, 0xd4f7, 0xb155, 0xd4f6, 0xd4f4,
+  0xd543, 0xd4f8, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d,
+  0xd4fa, 0xb159, 0xd544, 0xd540, 0xd8e7, 0xd8ee, 0xd8e3, 0xb451,
+  0xd8df, 0xd8ef, 0xd8d9, 0xd8ec, 0xd8ea, 0xd8e4, 0xd8ed, 0xd8e6,
+  0xd8de, 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da, 0xd8f1, 0xb452, 0xd8eb,
+  0xdd4f, 0xd8dd, 0xb44f, 0xd8e1, 0xb450, 0xd8e0, 0xd8e5, 0xd8e2,
+  0xd8e8, 0xdd53, 0xdd56, 0xdd4e, 0xdd50, 0xdd55, 0xdd54, 0xb743,
+  0xd8db, 0xdd52, 0xb744, 0xdd4d, 0xdd51, 0xe1a9, 0xe1b0, 0xe1a7,
+  0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, 0xe1a4, 0xe1a8, 0xe1a3, 0xb9f1,
+  0xe1a6, 0xb9f2, 0xe1ac, 0xe1ab, 0xe1aa, 0xe1af, 0xe565, 0xe567,
+  0xbc6b, 0xe568, 0xe563, 0xe562, 0xe56c, 0xe56a, 0xbc6a, 0xe56d,
+  0xe564, 0xe569, 0xe56b, 0xe566, 0xe961, 0xe966, 0xe960, 0xe965,
+  0xe95e, 0xe968, 0xe964, 0xe969, 0xe963, 0xe95f, 0xe967, 0xe96a,
+  0xe962, 0xecda, 0xc0af, 0xc0ad, 0xc0ac, 0xc0ae, 0xefc4, 0xf172,
+  0xf1fd, 0xf444, 0xf445, 0xc460, 0xf5c9, 0xc4de, 0xf5ca, 0xf6de,
+  0xc572, 0xc571, 0xf6dd, 0xc5c9, 0xf7d6, 0xa474, 0xa67b, 0xc9da,
+  0xcaca, 0xa8b5, 0xb15f, 0xa475, 0xa5aa, 0xa5a9, 0xa5a8, 0xa7c5,
+  0xae74, 0xdd57, 0xa476, 0xa477, 0xa478, 0xa4da, 0xabd1, 0xceaf,
+  0xb453, 0xa479, 0xc95d, 0xa5ab, 0xa5ac, 0xc978, 0xa67c, 0xcacb,
+  0xa7c6, 0xcacc, 0xa9ae, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d, 0xa9a9,
+  0xcc6f, 0xa9aa, 0xa9ad, 0xabd2, 0xabd4, 0xceb3, 0xceb0, 0xceb1,
+  0xceb2, 0xceb4, 0xabd3, 0xd174, 0xd173, 0xae76, 0xae75, 0xb162,
+  0xd546, 0xb161, 0xb163, 0xb160, 0xb455, 0xd545, 0xb456, 0xd8f3,
+  0xb457, 0xd8f2, 0xb454, 0xdd5a, 0xdd5c, 0xb745, 0xdd5b, 0xdd59,
+  0xdd58, 0xe1b4, 0xb9f7, 0xb9f5, 0xb9f6, 0xe1b2, 0xe1b3, 0xb9f3,
+  0xe571, 0xe56f, 0xbc6d, 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0xe96d,
+  0xe96b, 0xe96c, 0xe56e, 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6,
+  0xe96e, 0xf1fe, 0xa47a, 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0xa9af,
+  0xb746, 0xa4db, 0xa5ae, 0xabd5, 0xb458, 0xc979, 0xc97a, 0xc9dc,
+  0xa7c8, 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1, 0xa7c7,
+  0xa9b3, 0xa9b4, 0xa9b1, 0xa9b0, 0xceb8, 0xa9b2, 0xabd6, 0xceb7,
+  0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79, 0xd175, 0xd177, 0xae77,
+  0xd178, 0xae78, 0xd176, 0xceb5, 0xd547, 0xd54a, 0xd54b, 0xd548,
+  0xb167, 0xb166, 0xb164, 0xb165, 0xd549, 0xb168, 0xb45a, 0xb45b,
+  0xb45c, 0xdd5d, 0xdd5f, 0xdd61, 0xb748, 0xb747, 0xb459, 0xdd60,
+  0xdd5e, 0xe1b8, 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9,
+  0xe1b7, 0xe1b5, 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574,
+  0xbc71, 0xbc74, 0xe575, 0xbc6f, 0xbc73, 0xe973, 0xe971, 0xe970,
+  0xe972, 0xe96f, 0xc366, 0xf446, 0xf447, 0xf5cb, 0xf6df, 0xc655,
+  0xa9b5, 0xa7ca, 0xabd8, 0xa47b, 0xa4dc, 0xa5af, 0xc9dd, 0xa7cb,
+  0xcad2, 0xcebb, 0xabd9, 0xb9fa, 0xa47c, 0xa6a1, 0xb749, 0xa47d,
+  0xa4dd, 0xa4de, 0xa5b1, 0xa5b0, 0xc9de, 0xa6a2, 0xcad3, 0xa7cc,
+  0xcc71, 0xcc72, 0xcc73, 0xa9b6, 0xa9b7, 0xcc70, 0xa9b8, 0xabda,
+  0xcebc, 0xd17a, 0xae7a, 0xd179, 0xb169, 0xd54c, 0xb16a, 0xd54d,
+  0xb45d, 0xdd62, 0xe1bf, 0xe1be, 0xb9fb, 0xbc75, 0xe576, 0xbeca,
+  0xe974, 0xc0b1, 0xc573, 0xf7d8, 0xcc74, 0xcebd, 0xb16b, 0xd8f4,
+  0xb74a, 0xc255, 0xa7ce, 0xa7cd, 0xabdb, 0xd17b, 0xb16d, 0xb343,
+  0xb16e, 0xb16c, 0xb45e, 0xe1c0, 0xb9fc, 0xbc76, 0xc94c, 0xc9df,
+  0xcad5, 0xa7cf, 0xcad4, 0xa7d0, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb,
+  0xa9b9, 0xa9ba, 0xcc75, 0xabdd, 0xcebe, 0xabe0, 0xabdc, 0xabe2,
+  0xabde, 0xabdf, 0xabe1, 0xae7d, 0xae7c, 0xae7b, 0xd54f, 0xb16f,
+  0xb172, 0xb170, 0xd54e, 0xb175, 0xb171, 0xd550, 0xb174, 0xb173,
+  0xd8f6, 0xd8f5, 0xb461, 0xb45f, 0xb460, 0xd8f7, 0xb74b, 0xdd64,
+  0xb74c, 0xdd63, 0xe577, 0xbc78, 0xe1c1, 0xbc77, 0xb9fd, 0xecde,
+  0xe975, 0xc0b2, 0xecdd, 0xf240, 0xf448, 0xf449, 0xa4df, 0xa5b2,
+  0xc97b, 0xa7d2, 0xa7d4, 0xc9e2, 0xcad8, 0xcad7, 0xcad6, 0xc9e1,
+  0xc9e0, 0xa6a4, 0xa7d3, 0xa7d1, 0xa6a3, 0xa9bd, 0xcc78, 0xa9be,
+  0xcadd, 0xcadf, 0xcade, 0xcc79, 0xcada, 0xa7d8, 0xa7d6, 0xcad9,
+  0xcadb, 0xcae1, 0xa7d5, 0xcadc, 0xcae5, 0xa9c0, 0xcae2, 0xa7d7,
+  0xcae0, 0xcae3, 0xa9bf, 0xa9c1, 0xcae4, 0xccaf, 0xcca2, 0xcc7e,
+  0xccae, 0xcca9, 0xabe7, 0xa9c2, 0xccaa, 0xccad, 0xabe3, 0xccac,
+  0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, 0xcc7c, 0xcca5, 0xa9cd, 0xccb0,
+  0xabe4, 0xcca6, 0xabe5, 0xa9c9, 0xcca8, 0xcecd, 0xabe6, 0xcc7b,
+  0xa9ca, 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7, 0xcc7a, 0xccab,
+  0xa9c4, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5, 0xcebf, 0xcec0, 0xceca,
+  0xd1a1, 0xcecb, 0xabee, 0xcece, 0xcec4, 0xabed, 0xcec6, 0xcec7,
+  0xcec9, 0xabe9, 0xaea3, 0xcec5, 0xcec1, 0xaea4, 0xcecf, 0xae7e,
+  0xd17d, 0xcec8, 0xd17c, 0xcec3, 0xcecc, 0xabec, 0xaea1, 0xabf2,
+  0xaea2, 0xced0, 0xd17e, 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef,
+  0xaea5, 0xced1, 0xaea7, 0xabea, 0xcec2, 0xb176, 0xd1a4, 0xd1a6,
+  0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, 0xd1a3, 0xb178, 0xd551,
+  0xaead, 0xaeab, 0xd1ae, 0xd552, 0xd1a5, 0xaeac, 0xd1a9, 0xaeaf,
+  0xd1ab, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0xaea9, 0xb179, 0xd1a2,
+  0xb177, 0xb17a, 0xd555, 0xd55e, 0xb464, 0xb17c, 0xb1a3, 0xb465,
+  0xd560, 0xb1aa, 0xd8f9, 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554,
+  0xd562, 0xd565, 0xd949, 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac,
+  0xd55d, 0xd8f8, 0xd561, 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559,
+  0xb462, 0xd557, 0xd558, 0xb1a7, 0xb1a6, 0xd55b, 0xb1ab, 0xd55f,
+  0xb1a4, 0xd55c, 0xb1a9, 0xb466, 0xb463, 0xd8fb, 0xd55a, 0xb17d,
+  0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d, 0xd944, 0xb471, 0xdd65,
+  0xd946, 0xb753, 0xb469, 0xb46c, 0xd947, 0xd948, 0xd94e, 0xb473,
+  0xb754, 0xd94a, 0xd94f, 0xd943, 0xb75e, 0xb755, 0xb472, 0xd941,
+  0xd950, 0xb75d, 0xb470, 0xb74e, 0xd94d, 0xb474, 0xd945, 0xd8fe,
+  0xb46a, 0xd942, 0xd94b, 0xb74d, 0xb752, 0xb467, 0xd94c, 0xb750,
+  0xb468, 0xb75c, 0xe1c3, 0xdd70, 0xdd68, 0xe1c2, 0xdd6c, 0xdd6e,
+  0xdd6b, 0xb75b, 0xdd6a, 0xb75f, 0xe1d2, 0xb75a, 0xba40, 0xdd71,
+  0xe1c4, 0xb758, 0xdd69, 0xdd6d, 0xb9fe, 0xb74f, 0xdd66, 0xdd67,
+  0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f, 0xe1c8, 0xe1c9, 0xe1ce,
+  0xbc7d, 0xe1d5, 0xba47, 0xba46, 0xe1d0, 0xbc7c, 0xe1c5, 0xba45,
+  0xe1d4, 0xba43, 0xba44, 0xe1d1, 0xe5aa, 0xbc7a, 0xb46e, 0xe1d3,
+  0xbca3, 0xe1cb, 0xbc7b, 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7, 0xe1cd,
+  0xba48, 0xbc79, 0xba42, 0xe57a, 0xe1cf, 0xbca1, 0xbca4, 0xe1cc,
+  0xbc7e, 0xe579, 0xe57e, 0xbece, 0xe578, 0xe9a3, 0xe5a9, 0xbca8,
+  0xbca6, 0xbecc, 0xe5a6, 0xe5a2, 0xbcac, 0xe978, 0xbcaa, 0xe5a1,
+  0xe976, 0xe5a5, 0xe5a8, 0xe57d, 0xbcab, 0xbca5, 0xe977, 0xbecd,
+  0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, 0xe57c, 0xe57b,
+  0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0xe9a2, 0xe97e, 0xece1,
+  0xbed1, 0xe9a1, 0xe97c, 0xc0b4, 0xecdf, 0xe979, 0xe97b, 0xc0b5,
+  0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d, 0xbecf, 0xefcf, 0xefc7,
+  0xece7, 0xefc8, 0xece3, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2,
+  0xece6, 0xefd0, 0xefcc, 0xefce, 0xefc9, 0xefca, 0xefcd, 0xefcb,
+  0xc367, 0xc36a, 0xc369, 0xc368, 0xc461, 0xf44a, 0xc462, 0xf241,
+  0xc4df, 0xf5cc, 0xc4e0, 0xc574, 0xc5ca, 0xf7d9, 0xf7da, 0xf7db,
+  0xf9ba, 0xa4e0, 0xc97c, 0xa5b3, 0xa6a6, 0xa6a7, 0xa6a5, 0xa6a8,
+  0xa7da, 0xa7d9, 0xccb1, 0xa9cf, 0xa9ce, 0xd1af, 0xb1ad, 0xb1ae,
+  0xb475, 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0xe1d7,
+  0xe1d6, 0xba49, 0xe1d8, 0xe5ac, 0xbcae, 0xbed4, 0xc0b8, 0xc257,
+  0xc0b9, 0xa4e1, 0xcae6, 0xccb2, 0xa9d1, 0xa9d0, 0xa9d2, 0xabf3,
+  0xced2, 0xced3, 0xd1b0, 0xaeb0, 0xb1af, 0xb476, 0xd951, 0xa4e2,
+  0xa47e, 0xa4e3, 0xc97d, 0xa5b7, 0xa5b6, 0xa5b4, 0xa5b5, 0xa6ab,
+  0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3, 0xc9e4, 0xc9ea, 0xc9e6, 0xc9e8,
+  0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7, 0xa7e1, 0xa7ea, 0xa7e8, 0xcaf0,
+  0xcaed, 0xcaf5, 0xa7e6, 0xcaf6, 0xa7df, 0xcaf3, 0xa7e5, 0xcaef,
+  0xcaee, 0xa7e3, 0xcaf4, 0xa7e4, 0xa9d3, 0xa7de, 0xcaf1, 0xcae7,
+  0xa7db, 0xa7ee, 0xcaec, 0xcaf2, 0xa7e0, 0xa7e2, 0xcae8, 0xcae9,
+  0xcaea, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc,
+  0xa7e9, 0xa9e1, 0xccbe, 0xccb7, 0xa9dc, 0xa9ef, 0xccb3, 0xccba,
+  0xccbc, 0xccbf, 0xa9ea, 0xccbb, 0xccb4, 0xa9e8, 0xccb8, 0xccc0,
+  0xa9d9, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6, 0xa9d7, 0xa9d8, 0xa9d6,
+  0xa9ee, 0xa9e6, 0xa9e0, 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7,
+  0xa9f0, 0xced4, 0xa9e4, 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0xa9ec,
+  0xa9ed, 0xa9eb, 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0xceda, 0xac41,
+  0xabf8, 0xabfa, 0xac40, 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43,
+  0xced7, 0xcedf, 0xabfe, 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7,
+  0xabfb, 0xac42, 0xaeb3, 0xcee0, 0xabf9, 0xac45, 0xced9, 0xabfc,
+  0xaeb2, 0xabf6, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, 0xd1b2,
+  0xac44, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0xaec1, 0xd1be, 0xaebf,
+  0xaec0, 0xd1b4, 0xd1c4, 0xaeb6, 0xd566, 0xd1c6, 0xd1c0, 0xd1b7,
+  0xd1c9, 0xd1ba, 0xaebc, 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0xd1cb,
+  0xd1bf, 0xaeb8, 0xd1b8, 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, 0xd1cc,
+  0xaebb, 0xd1bc, 0xd1bb, 0xaec3, 0xaec2, 0xaeb4, 0xaeba, 0xaebd,
+  0xd1c8, 0xd1c2, 0xaeb7, 0xd1b3, 0xd1ca, 0xd1c1, 0xd1c3, 0xd1c7,
+  0xd567, 0xb1b7, 0xb1cb, 0xb1ca, 0xb1bf, 0xd579, 0xd575, 0xd572,
+  0xd5a6, 0xb1ba, 0xb1b2, 0xd577, 0xb4a8, 0xb1b6, 0xd5a1, 0xb1cc,
+  0xb1c9, 0xd57b, 0xd56a, 0xb1c8, 0xd5a3, 0xd569, 0xb1bd, 0xb1c1,
+  0xd5a2, 0xd573, 0xb1c2, 0xb1bc, 0xd568, 0xb478, 0xd5a5, 0xd571,
+  0xb1c7, 0xd574, 0xd5a4, 0xb1c6, 0xd952, 0xb1b3, 0xd56f, 0xb1b8,
+  0xb1c3, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e, 0xb1b0, 0xb1c4,
+  0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0xb1b1, 0xb1c0, 0xb1bb, 0xb1b9,
+  0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, 0xd954, 0xd953, 0xd56b,
+  0xd964, 0xb47a, 0xd96a, 0xd959, 0xd967, 0xdd77, 0xb47d, 0xd96b,
+  0xd96e, 0xb47c, 0xd95c, 0xd96d, 0xd96c, 0xb47e, 0xd955, 0xb479,
+  0xb4a3, 0xb4a1, 0xd969, 0xd95f, 0xb4a5, 0xd970, 0xd968, 0xd971,
+  0xb4ad, 0xb4ab, 0xd966, 0xd965, 0xd963, 0xd95d, 0xb4a4, 0xb4a2,
+  0xd1b9, 0xd956, 0xddb7, 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0xb4a6,
+  0xb4a7, 0xd958, 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961,
+  0xd95e, 0xb4ae, 0xb770, 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c,
+  0xddbb, 0xb769, 0xdd7a, 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e,
+  0xb76f, 0xdda5, 0xddb2, 0xddb8, 0xb76a, 0xb764, 0xdda3, 0xdd7d,
+  0xddba, 0xdda8, 0xdda9, 0xdd7e, 0xddb4, 0xddab, 0xddb5, 0xddad,
+  0xb765, 0xe1d9, 0xb768, 0xb766, 0xddb9, 0xddb0, 0xddac, 0xdda1,
+  0xba53, 0xddaf, 0xb76d, 0xdda7, 0xdda6, 0xb767, 0xb763, 0xe1ee,
+  0xddb3, 0xddae, 0xdda2, 0xe1e9, 0xe1da, 0xe1e5, 0xe1ec, 0xba51,
+  0xb4ac, 0xe1ea, 0xba4c, 0xba4b, 0xe1f1, 0xe1db, 0xe1e8, 0xe1dc,
+  0xe1e7, 0xba4f, 0xe1eb, 0xd962, 0xe1f2, 0xe1e3, 0xba52, 0xe5ba,
+  0xbcaf, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0, 0xe5ae, 0xe1df,
+  0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3, 0xba4e, 0xbcb1, 0xba50,
+  0xba55, 0xe1e1, 0xe1ed, 0xe1e6, 0xe5b1, 0xba4a, 0xbcb4, 0xe9aa,
+  0xe5b6, 0xe5b5, 0xe5b7, 0xe5b4, 0xbcb5, 0xbcbb, 0xbcb8, 0xbcb9,
+  0xe5af, 0xe5b2, 0xe5bc, 0xbcc1, 0xbcbf, 0xe5b3, 0xd95a, 0xbcb2,
+  0xe5b9, 0xe5b0, 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0xbcba,
+  0xbcbe, 0xbcc0, 0xbcbd, 0xbcbc, 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3,
+  0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, 0xbed6, 0xbedd, 0xe9ab,
+  0xbedb, 0xbed5, 0xbedc, 0xe9a8, 0xc0bb, 0xbed7, 0xbede, 0xc0ba,
+  0xe9a7, 0xe9a6, 0xbee0, 0xbee1, 0xe9a5, 0xe9a4, 0xc0bc, 0xe9ae,
+  0xbeda, 0xe9ac, 0xc0bd, 0xc0c2, 0xecea, 0xecec, 0xc0bf, 0xeced,
+  0xece9, 0xeceb, 0xc0c0, 0xc0c3, 0xece8, 0xc0be, 0xc0c1, 0xc259,
+  0xe9ad, 0xc258, 0xc25e, 0xefd4, 0xc25c, 0xc25d, 0xefd7, 0xefd3,
+  0xc25a, 0xefd1, 0xc36b, 0xefd5, 0xefd6, 0xefd2, 0xc25b, 0xf242,
+  0xf245, 0xf246, 0xf244, 0xf247, 0xc36c, 0xf243, 0xf44e, 0xc464,
+  0xf44d, 0xf44c, 0xf44b, 0xc463, 0xc465, 0xf5cd, 0xc4e2, 0xc4e1,
+  0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb, 0xc575, 0xf7dd, 0xf6e2, 0xf7dc,
+  0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9, 0xf8ef, 0xa4e4, 0xd972, 0xe9af,
+  0xa6ac, 0xcaf7, 0xa7f1, 0xa7ef, 0xa7f0, 0xccc1, 0xa9f1, 0xac46,
+  0xcee7, 0xcee8, 0xac47, 0xd1ce, 0xaec4, 0xaec5, 0xd1cd, 0xb1d3,
+  0xb1cf, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, 0xb1d4, 0xb1d0,
+  0xd976, 0xb1cd, 0xb4af, 0xb4b1, 0xb4b2, 0xd975, 0xd978, 0xb4b0,
+  0xd973, 0xd977, 0xd974, 0xb771, 0xddbc, 0xba56, 0xe1f4, 0xbee3,
+  0xbcc4, 0xe5bd, 0xbcc5, 0xbcc6, 0xe5bf, 0xe5be, 0xe5c0, 0xe9b1,
+  0xe9b0, 0xecef, 0xecee, 0xc0c4, 0xc0c5, 0xf248, 0xa4e5, 0xd979,
+  0xb4b4, 0xb4b3, 0xddbd, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, 0xaec6,
+  0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, 0xe1f5, 0xba57, 0xe9b2,
+  0xa4e7, 0xa5b8, 0xa9f2, 0xccc2, 0xcee9, 0xac48, 0xb1d9, 0xd97c,
+  0xb4b5, 0xb773, 0xe5c1, 0xe5c2, 0xecf0, 0xc25f, 0xf8f0, 0xa4e8,
+  0xccc3, 0xa9f3, 0xac49, 0xceea, 0xaec7, 0xd1d2, 0xd1d0, 0xd1d1,
+  0xaec8, 0xd1cf, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd, 0xb1da, 0xd97d,
+  0xd97e, 0xddbe, 0xba59, 0xba58, 0xecf1, 0xefd9, 0xf24a, 0xf249,
+  0xf44f, 0xc95e, 0xac4a, 0xa4e9, 0xa5b9, 0xa6ae, 0xa6ad, 0xa6af,
+  0xa6b0, 0xc9ee, 0xc9ed, 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9,
+  0xcafc, 0xa9f4, 0xccc9, 0xccc5, 0xccce, 0xa9fb, 0xa9f9, 0xccca,
+  0xccc6, 0xcccd, 0xa9f8, 0xaa40, 0xccc8, 0xccc4, 0xa9fe, 0xcccb,
+  0xa9f7, 0xcccc, 0xa9fa, 0xa9fc, 0xccd0, 0xcccf, 0xccc7, 0xa9f6,
+  0xa9f5, 0xa9fd, 0xceef, 0xcef5, 0xac50, 0xac4d, 0xceec, 0xcef1,
+  0xac53, 0xac4b, 0xcef0, 0xac4e, 0xac51, 0xcef3, 0xac4c, 0xcef8,
+  0xac4f, 0xac52, 0xceed, 0xcef2, 0xcef6, 0xceee, 0xceeb, 0xcef7,
+  0xcef4, 0xaed0, 0xaec9, 0xaecc, 0xaecf, 0xd1d5, 0xaeca, 0xd1d3,
+  0xaece, 0xaecb, 0xd1d6, 0xaecd, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad,
+  0xb1de, 0xb1e3, 0xd1d4, 0xd5aa, 0xd5ae, 0xb1e0, 0xd5a9, 0xb1e2,
+  0xb1e1, 0xd9a7, 0xd9a2, 0xb4b6, 0xb4ba, 0xb4b7, 0xd9a5, 0xd9a8,
+  0xb4b8, 0xb4b9, 0xb4be, 0xddc7, 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1,
+  0xb4bd, 0xd9a4, 0xb779, 0xddbf, 0xb776, 0xb777, 0xb775, 0xddc4,
+  0xddc3, 0xddc0, 0xb77b, 0xddc2, 0xb4bb, 0xddc6, 0xddc1, 0xb778,
+  0xb774, 0xb77a, 0xddc5, 0xba5c, 0xe1f8, 0xe1f7, 0xe1f6, 0xba5a,
+  0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0xbcc7, 0xe5c9, 0xe5c4, 0xbcca,
+  0xe5c6, 0xbcc9, 0xe5c3, 0xe5c7, 0xbee9, 0xbee6, 0xe9bb, 0xe9ba,
+  0xe9b9, 0xe9b4, 0xe9b5, 0xbee7, 0xbee4, 0xbee8, 0xe9b3, 0xbee5,
+  0xe9b6, 0xe9b7, 0xe9bc, 0xe9b8, 0xecf2, 0xc0c7, 0xefdc, 0xc0c6,
+  0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0xc36d, 0xf451, 0xf452,
+  0xc466, 0xf450, 0xc4e4, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0xa4ea,
+  0xa6b1, 0xa6b2, 0xa7f3, 0xccd1, 0xac54, 0xaed1, 0xb1e4, 0xb0d2,
+  0xb4bf, 0xb4c0, 0xb3cc, 0xd9a9, 0xb77c, 0xe1fa, 0xe1f9, 0xa4eb,
+  0xa6b3, 0xccd2, 0xaa42, 0xaa41, 0xcef9, 0xcefa, 0xd1d7, 0xd1d8,
+  0xaed2, 0xaed3, 0xaed4, 0xd5af, 0xb1e6, 0xb4c2, 0xb4c1, 0xddc8,
+  0xdf7a, 0xe1fb, 0xe9bd, 0xc261, 0xc467, 0xa4ec, 0xa5bc, 0xa5bd,
+  0xa5bb, 0xa5be, 0xa5ba, 0xa6b6, 0xc9f6, 0xa6b5, 0xa6b7, 0xc9f1,
+  0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4, 0xcafd,
+  0xa7fd, 0xcafe, 0xcb43, 0xa7fc, 0xcb47, 0xcb42, 0xcb45, 0xa7f5,
+  0xa7f6, 0xa7f7, 0xa7f8, 0xa840, 0xcb41, 0xa7fa, 0xa841, 0xcb40,
+  0xcb46, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, 0xa7fe, 0xaa57, 0xccd4,
+  0xaa43, 0xaa4d, 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53,
+  0xccd7, 0xaa49, 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4,
+  0xaa51, 0xaa4f, 0xcce5, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a,
+  0xaa50, 0xaa44, 0xccde, 0xccdd, 0xccd5, 0xaa52, 0xcce1, 0xccd6,
+  0xaa55, 0xcce8, 0xaa45, 0xaa4c, 0xccd9, 0xcce2, 0xaa54, 0xaa47,
+  0xaa4b, 0xcce0, 0xcf5b, 0xac5c, 0xac69, 0xcf56, 0xcf4c, 0xac62,
+  0xcf4a, 0xac5b, 0xcf45, 0xac65, 0xcf52, 0xcefe, 0xcf41, 0xcf44,
+  0xcefb, 0xcf51, 0xcf61, 0xac60, 0xcf46, 0xcf58, 0xcefd, 0xcf5f,
+  0xcf60, 0xcf63, 0xcf5a, 0xcf4b, 0xcf53, 0xac66, 0xac59, 0xac61,
+  0xac6d, 0xac56, 0xac58, 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40,
+  0xac6c, 0xac67, 0xcf49, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c,
+  0xcf54, 0xac5e, 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f,
+  0xcf55, 0xac57, 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d,
+  0xcf42, 0xcf5e, 0xcf57, 0xac55, 0xd1ec, 0xaeea, 0xd1ed, 0xd1e1,
+  0xaedf, 0xaeeb, 0xd1da, 0xd1e3, 0xd1eb, 0xd1d9, 0xd1f4, 0xaed5,
+  0xd1f3, 0xd1ee, 0xd1ef, 0xaedd, 0xaee8, 0xd1e5, 0xd1e6, 0xd1f0,
+  0xd1e7, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4, 0xaed6, 0xaeda,
+  0xd1f2, 0xd1de, 0xaee6, 0xaee2, 0xaee5, 0xaeec, 0xaedb, 0xaee7,
+  0xd1e9, 0xaee9, 0xaed8, 0xaed7, 0xd1db, 0xd1df, 0xaee0, 0xd1f1,
+  0xd1e8, 0xd1e0, 0xaee4, 0xaee1, 0xaed9, 0xaedc, 0xd5c4, 0xd5b4,
+  0xd5b5, 0xd5b9, 0xd5c8, 0xd5c5, 0xd5be, 0xd5bd, 0xb1ed, 0xd5c1,
+  0xd5d0, 0xd5b0, 0xd5d1, 0xd5c3, 0xd5d5, 0xd5c9, 0xb1ec, 0xd5c7,
+  0xb1e7, 0xb1fc, 0xb1f2, 0xb1f6, 0xb1f5, 0xd5b1, 0xd5ce, 0xd5d4,
+  0xd5cc, 0xd5d3, 0xd5c0, 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7,
+  0xd5cb, 0xb1f0, 0xd5ca, 0xd5b3, 0xb1f8, 0xb1fa, 0xd5cd, 0xb1fb,
+  0xb1e9, 0xd5ba, 0xd5cf, 0xb1ef, 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7,
+  0xd5bb, 0xb1f4, 0xd5b6, 0xb1e8, 0xb1f1, 0xb1ee, 0xd5bf, 0xaede,
+  0xd9c0, 0xb1eb, 0xb1f3, 0xd9c3, 0xd9d9, 0xd9ce, 0xb4d6, 0xb4d1,
+  0xd9bd, 0xb4d2, 0xd9cd, 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5,
+  0xb4c4, 0xd9b3, 0xb4c7, 0xb4c6, 0xb4d7, 0xd9ad, 0xd9cf, 0xd9d0,
+  0xb4c9, 0xb4c5, 0xd9bb, 0xb4d0, 0xd9b6, 0xd9d1, 0xb4cc, 0xd9c9,
+  0xd9d6, 0xd9b0, 0xd9b5, 0xd9af, 0xb4cb, 0xd9c2, 0xddde, 0xd9b1,
+  0xb4cf, 0xd9ba, 0xd9d2, 0xb4ca, 0xd9b7, 0xd9b4, 0xd9c5, 0xb4cd,
+  0xb4c3, 0xb4d9, 0xd9c8, 0xd9c7, 0xd9ac, 0xb4c8, 0xd9d4, 0xd9bc,
+  0xd9be, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5, 0xd9b2, 0xd9b9,
+  0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0xd9cc, 0xd9d8, 0xd9ae,
+  0xddf2, 0xb7a6, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0xddec, 0xddcb,
+  0xddd2, 0xddea, 0xddf4, 0xdddc, 0xddcf, 0xdde2, 0xdde7, 0xddd3,
+  0xdde4, 0xddd0, 0xddd7, 0xddd8, 0xb7a8, 0xddeb, 0xdde9, 0xddcc,
+  0xddee, 0xddef, 0xddf1, 0xb7ac, 0xb7a4, 0xd5b8, 0xddd4, 0xdde6,
+  0xddd5, 0xb7a1, 0xb7b1, 0xdded, 0xb7af, 0xb7ab, 0xddca, 0xb7a3,
+  0xddcd, 0xb7b0, 0xdddd, 0xddc9, 0xb7a9, 0xdde1, 0xddd1, 0xb7aa,
+  0xddda, 0xb77e, 0xb4d8, 0xdde3, 0xd9bf, 0xddce, 0xdde8, 0xb7a5,
+  0xdde5, 0xb7a2, 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0xb7a7, 0xdec6,
+  0xb7ae, 0xe24a, 0xe248, 0xe25e, 0xe246, 0xe258, 0xb77d, 0xba5f,
+  0xe242, 0xe25d, 0xe247, 0xe255, 0xba64, 0xba5d, 0xe25b, 0xe240,
+  0xe25a, 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, 0xba5e, 0xe24b,
+  0xe259, 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, 0xe243, 0xe1fc,
+  0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, 0xe253, 0xba66, 0xe245,
+  0xe250, 0xe24c, 0xe24e, 0xba60, 0xe25f, 0xba6e, 0xe24f, 0xe262,
+  0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256, 0xba69,
+  0xba62, 0xe252, 0xe25c, 0xe5d5, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de,
+  0xbccd, 0xe5e5, 0xe5d4, 0xbcd8, 0xe5db, 0xe5d0, 0xe5da, 0xbcd5,
+  0xe5ee, 0xe5eb, 0xe5dd, 0xe5ce, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8,
+  0xe5d3, 0xe5ca, 0xbcce, 0xbcd6, 0xe5e7, 0xbcd7, 0xe5cb, 0xe5ed,
+  0xe5e0, 0xe5e6, 0xbcd4, 0xe5e3, 0xe5ea, 0xbcd9, 0xbcd3, 0xe5dc,
+  0xe5cf, 0xe5ef, 0xe5cc, 0xe5e8, 0xbcd0, 0xe5d6, 0xe5d7, 0xbccf,
+  0xbccc, 0xe5d2, 0xbcd2, 0xbccb, 0xe5e9, 0xe5ec, 0xe5d9, 0xe9ca,
+  0xe9c2, 0xe9be, 0xbef6, 0xbeeb, 0xbef0, 0xbeec, 0xe9cc, 0xe9d7,
+  0xbeea, 0xe9c4, 0xe9cd, 0xe5df, 0xe9ce, 0xbef1, 0xe9dd, 0xbef5,
+  0xbef8, 0xe9c0, 0xbef4, 0xe9db, 0xe9dc, 0xe9d2, 0xe9d1, 0xe9c9,
+  0xe9d3, 0xe9da, 0xe9d9, 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0xe9c5,
+  0xe9d8, 0xbef7, 0xe9d6, 0xbef3, 0xbef2, 0xe9d0, 0xe9bf, 0xe9c1,
+  0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0xe9c6, 0xe9d4, 0xe9c7, 0xc0cf,
+  0xed45, 0xc0c8, 0xecf5, 0xed41, 0xc0ca, 0xed48, 0xecfc, 0xecf7,
+  0xed49, 0xecf3, 0xecfe, 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9,
+  0xed40, 0xecf4, 0xc0d0, 0xed47, 0xecf9, 0xc0cc, 0xecfb, 0xecf8,
+  0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46, 0xed42,
+  0xc263, 0xefe7, 0xc268, 0xc269, 0xc262, 0xefe6, 0xefe3, 0xefe4,
+  0xc266, 0xefde, 0xefe2, 0xc265, 0xefdf, 0xc267, 0xc264, 0xefdd,
+  0xefe1, 0xefe5, 0xf251, 0xf24e, 0xf257, 0xf256, 0xf254, 0xf24f,
+  0xc372, 0xf250, 0xc371, 0xc0cd, 0xf253, 0xc370, 0xf258, 0xf252,
+  0xf24d, 0xefe0, 0xc36f, 0xf24c, 0xf456, 0xf455, 0xf255, 0xc468,
+  0xf459, 0xf45a, 0xf454, 0xf458, 0xf453, 0xf5d1, 0xf457, 0xc4e7,
+  0xc4e5, 0xf5cf, 0xf5d2, 0xf5ce, 0xf5d0, 0xc4e6, 0xf6e5, 0xf6e6,
+  0xc576, 0xf6e4, 0xf7e2, 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0xc656,
+  0xf8f3, 0xf8f1, 0xf8f2, 0xf8f4, 0xf9bb, 0xa4ed, 0xa6b8, 0xaa59,
+  0xcce9, 0xcf64, 0xd1f5, 0xd1f7, 0xd1f6, 0xd1f8, 0xb1fd, 0xd5d7,
+  0xd1f9, 0xd5d6, 0xd5d8, 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd,
+  0xb4dc, 0xb4da, 0xd9dc, 0xddfa, 0xddf8, 0xddf7, 0xddf6, 0xddf5,
+  0xb7b2, 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb,
+  0xbcda, 0xe5f0, 0xe9df, 0xe9de, 0xe9e0, 0xbef9, 0xed4b, 0xc0d3,
+  0xefe8, 0xc26a, 0xf259, 0xc577, 0xa4ee, 0xa5bf, 0xa6b9, 0xa842,
+  0xaa5a, 0xaa5b, 0xac6e, 0xd1fa, 0xb7b3, 0xe6d1, 0xbefa, 0xc26b,
+  0xa4ef, 0xa6ba, 0xcceb, 0xaa5c, 0xccea, 0xcf65, 0xac6f, 0xcf66,
+  0xac70, 0xd1fc, 0xaeee, 0xaeed, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db,
+  0xd5da, 0xd9de, 0xd9e1, 0xb4de, 0xd9df, 0xb4dd, 0xd9e0, 0xddfb,
+  0xe266, 0xe267, 0xe268, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4,
+  0xe9e1, 0xe9e2, 0xe9e3, 0xed4c, 0xc0d4, 0xc26c, 0xf25a, 0xc4e8,
+  0xc95f, 0xac71, 0xcf67, 0xaeef, 0xb1fe, 0xb4df, 0xd9e2, 0xb7b5,
+  0xb7b4, 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, 0xe9e4, 0xefe9,
+  0xf7e3, 0xa4f0, 0xc960, 0xa5c0, 0xa843, 0xcb48, 0xac72, 0xb7b6,
+  0xa4f1, 0xcf68, 0xac73, 0xcf69, 0xc0d5, 0xa4f2, 0xccec, 0xcf6a,
+  0xd242, 0xd241, 0xd1fe, 0xd1fd, 0xd243, 0xd240, 0xb240, 0xb241,
+  0xb4e0, 0xd9e3, 0xd9e4, 0xd9e5, 0xde41, 0xde42, 0xde40, 0xddfd,
+  0xddfe, 0xb7b7, 0xe26b, 0xe5f7, 0xe5f6, 0xe5f5, 0xe5f8, 0xe9e7,
+  0xe9e6, 0xbefb, 0xe9e8, 0xc0d6, 0xed4d, 0xefea, 0xf25b, 0xf6e7,
+  0xa4f3, 0xa5c2, 0xa5c1, 0xaa5d, 0xc961, 0xc97e, 0xa6bb, 0xc9f7,
+  0xcb49, 0xcb4a, 0xaa5e, 0xcced, 0xac74, 0xcf6b, 0xcf6c, 0xaef0,
+  0xaef4, 0xd244, 0xaef3, 0xaef1, 0xaef2, 0xd5df, 0xb242, 0xb4e3,
+  0xb4e1, 0xb4e2, 0xd9e6, 0xba72, 0xa4f4, 0xc9a1, 0xa5c3, 0xc9a4,
+  0xa5c6, 0xc9a3, 0xa5c5, 0xa5c4, 0xa844, 0xc9a2, 0xc9f8, 0xc9fc,
+  0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb, 0xa6c1, 0xc9f9, 0xc9fd,
+  0xa6c2, 0xa6bd, 0xa6be, 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf,
+  0xa6c0, 0xa6c3, 0xcb5b, 0xcb59, 0xcb4c, 0xa851, 0xcb53, 0xa84c,
+  0xcb4d, 0xcb55, 0xcb52, 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858,
+  0xa85a, 0xcb4b, 0xa84d, 0xcb5c, 0xa854, 0xa857, 0xcd45, 0xa847,
+  0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, 0xa848, 0xa849,
+  0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, 0xa84e, 0xa853,
+  0xccee, 0xa85c, 0xcb57, 0xa852, 0xa85d, 0xa846, 0xcb54, 0xa84b,
+  0xcb58, 0xcd44, 0xaa6a, 0xaa7a, 0xccf5, 0xaa71, 0xcd4b, 0xaa62,
+  0xaa65, 0xcd42, 0xccf3, 0xccf7, 0xaa6d, 0xaa6f, 0xccfa, 0xaa76,
+  0xaa68, 0xaa66, 0xaa67, 0xaa75, 0xcd47, 0xaa70, 0xccf9, 0xccfb,
+  0xaa6e, 0xaa73, 0xccfc, 0xcd4a, 0xac75, 0xaa79, 0xaa63, 0xcd49,
+  0xcd4d, 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d,
+  0xaa72, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0xaa7e,
+  0xaa77, 0xaa69, 0xaa5f, 0xaa64, 0xccf6, 0xaa60, 0xcd4e, 0xccf0,
+  0xccef, 0xccfd, 0xccf1, 0xaa7b, 0xaef5, 0xaa74, 0xccfe, 0xaa61,
+  0xaca6, 0xcd4c, 0xcf7c, 0xcfa1, 0xcfa4, 0xcf77, 0xcfa7, 0xcfaa,
+  0xcfac, 0xcf74, 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, 0xcfad,
+  0xcf7b, 0xcf73, 0xd264, 0xac7e, 0xcfa2, 0xcf78, 0xcf7a, 0xaca5,
+  0xcf7d, 0xac7d, 0xcf70, 0xcfa8, 0xcfab, 0xac7a, 0xaca8, 0xcf6d,
+  0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, 0xcd48,
+  0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, 0xaca9,
+  0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, 0xcfa6,
+  0xac79, 0xcf7e, 0xd24c, 0xaefd, 0xaf43, 0xd255, 0xd25b, 0xd257,
+  0xd24a, 0xd24d, 0xd246, 0xd247, 0xaf4a, 0xaefa, 0xd256, 0xd25f,
+  0xaf45, 0xaef6, 0xaf40, 0xd24e, 0xaf42, 0xd24f, 0xd259, 0xaf44,
+  0xd268, 0xd248, 0xaefc, 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a,
+  0xd267, 0xd261, 0xd253, 0xd262, 0xd25c, 0xd265, 0xd263, 0xaf49,
+  0xd254, 0xaef9, 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251,
+  0xb243, 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0xd258,
+  0xd25d, 0xb265, 0xd5e1, 0xd5e5, 0xb252, 0xb250, 0xb247, 0xd5e3,
+  0xd5e2, 0xb25b, 0xd5e8, 0xb255, 0xd5fa, 0xd647, 0xb244, 0xd5f7,
+  0xd5f0, 0xb267, 0xd5e0, 0xd5fc, 0xb264, 0xb258, 0xb263, 0xb24e,
+  0xd5ec, 0xd5fe, 0xd5f6, 0xb24f, 0xb249, 0xd645, 0xd5fd, 0xd640,
+  0xb251, 0xb259, 0xd642, 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, 0xb25e,
+  0xb246, 0xb25c, 0xd5f4, 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, 0xd5ed,
+  0xb248, 0xd5e7, 0xd646, 0xb24a, 0xd5f1, 0xb268, 0xb262, 0xd5e6,
+  0xb25f, 0xb25d, 0xb266, 0xd5f8, 0xb261, 0xd252, 0xd5f9, 0xb260,
+  0xd641, 0xb245, 0xd5f5, 0xb257, 0xd5e9, 0xb256, 0xb254, 0xb24c,
+  0xb24b, 0xd9e7, 0xd643, 0xd5eb, 0xd9fc, 0xb24d, 0xb541, 0xb25a,
+  0xb4ee, 0xd9f6, 0xb4fc, 0xd9ea, 0xb4eb, 0xb4e7, 0xda49, 0xb4ed,
+  0xb4f1, 0xb4ec, 0xb4f5, 0xda4d, 0xda44, 0xd9f1, 0xb4fa, 0xb4f4,
+  0xd9fd, 0xb4e4, 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55,
+  0xda56, 0xb4e5, 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd,
+  0xd9f2, 0xd9f9, 0xd9f3, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9,
+  0xd9eb, 0xb4ea, 0xd9f8, 0xb4f8, 0xb542, 0xd9fa, 0xda53, 0xda4b,
+  0xb4e6, 0xda51, 0xb4f2, 0xb4f0, 0xda57, 0xb4ef, 0xda41, 0xd9f4,
+  0xd9fe, 0xb547, 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f, 0xda4c,
+  0xda54, 0xb4e9, 0xda40, 0xb546, 0xda47, 0xb4f3, 0xb4f6, 0xda46,
+  0xb545, 0xd9f5, 0xd5e4, 0xda50, 0xda4e, 0xda52, 0xd9ec, 0xb540,
+  0xde61, 0xde60, 0xde46, 0xb7bd, 0xde5f, 0xde49, 0xde4a, 0xb7c7,
+  0xde68, 0xb7c2, 0xde5e, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48,
+  0xde4b, 0xde63, 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc,
+  0xb7cb, 0xb7c5, 0xde69, 0xb7b9, 0xde55, 0xde4c, 0xde59, 0xde65,
+  0xb7cd, 0xb7bb, 0xde54, 0xde4d, 0xb7c4, 0xb7c3, 0xde50, 0xde5a,
+  0xde64, 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0, 0xde4e,
+  0xb7bf, 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56, 0xe26c,
+  0xde58, 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0, 0xde44,
+  0xde5d, 0xde5c, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, 0xe26e,
+  0xbaaf, 0xba77, 0xe26d, 0xe2b0, 0xbab1, 0xe271, 0xe2a3, 0xe273,
+  0xe2b3, 0xe2af, 0xba75, 0xbaa1, 0xe653, 0xbaae, 0xba7d, 0xe26f,
+  0xe2ae, 0xbaa3, 0xe2ab, 0xe2b8, 0xe275, 0xe27e, 0xe2b6, 0xe2ac,
+  0xba7c, 0xe27c, 0xba76, 0xba74, 0xbaa8, 0xe27a, 0xe277, 0xe278,
+  0xe2b2, 0xe2b7, 0xe2b5, 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0xe270,
+  0xe5fa, 0xe279, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274,
+  0xbaaa, 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0xe2a9, 0xe2a1, 0xe272,
+  0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0xba79, 0xbcdf, 0xe2a6,
+  0xe5f9, 0xe2ad, 0xe276, 0xe644, 0xe64e, 0xbce2, 0xe64d, 0xe659,
+  0xbce4, 0xe64b, 0xe64f, 0xbcef, 0xe646, 0xbce7, 0xe652, 0xe9f0,
+  0xbcf3, 0xbcf2, 0xe654, 0xe643, 0xe65e, 0xbced, 0xbce3, 0xe657,
+  0xe65b, 0xe660, 0xe655, 0xe649, 0xbce6, 0xbce9, 0xbcf1, 0xbcec,
+  0xe64c, 0xe2a2, 0xe648, 0xe65f, 0xbce8, 0xbceb, 0xe661, 0xbce0,
+  0xe656, 0xe5fb, 0xe65c, 0xc0df, 0xe64a, 0xbce1, 0xe645, 0xbce5,
+  0xe5fc, 0xbaab, 0xe641, 0xe65a, 0xe642, 0xe640, 0xbcea, 0xe658,
+  0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, 0xe9f3, 0xbf49,
+  0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48, 0xbf43, 0xe9f5,
+  0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8, 0xea44, 0xea46,
+  0xbefd, 0xea45, 0xbf44, 0xbf4a, 0xbf47, 0xe9fe, 0xbf46, 0xe9f9,
+  0xe9ed, 0xe9f2, 0xe9fd, 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1,
+  0xe5fd, 0xe9ec, 0xe9ef, 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43,
+  0xe9ee, 0xe9fc, 0xed51, 0xc0e3, 0xc0d7, 0xc0db, 0xed53, 0xed59,
+  0xed57, 0xc0d9, 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0xed56,
+  0xed55, 0xed5b, 0xc0e2, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de,
+  0xc0e5, 0xc0d8, 0xed58, 0xed50, 0xeff7, 0xc271, 0xeff4, 0xeff6,
+  0xc26f, 0xeff2, 0xeff3, 0xefee, 0xe9f6, 0xefef, 0xc270, 0xefeb,
+  0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed, 0xeff1, 0xc273, 0xc272,
+  0xeff0, 0xc378, 0xf25f, 0xf265, 0xc379, 0xf25c, 0xc376, 0xc373,
+  0xf267, 0xc377, 0xc374, 0xf25e, 0xf261, 0xf262, 0xf263, 0xf266,
+  0xeff5, 0xf25d, 0xc375, 0xf264, 0xf268, 0xf260, 0xf45d, 0xc46a,
+  0xf460, 0xc46b, 0xf468, 0xf45f, 0xf45c, 0xf45e, 0xf462, 0xf465,
+  0xf464, 0xf467, 0xf45b, 0xc469, 0xf463, 0xf466, 0xf469, 0xf461,
+  0xf5d3, 0xf5d4, 0xf5d8, 0xf5d9, 0xf5d6, 0xf5d7, 0xf5d5, 0xc4e9,
+  0xc578, 0xf6eb, 0xf6e8, 0xf6e9, 0xf6ea, 0xc579, 0xf7e5, 0xf7e4,
+  0xf8af, 0xc5f4, 0xf8ad, 0xf8b0, 0xf8ae, 0xf8f5, 0xc657, 0xc665,
+  0xf9a3, 0xf96c, 0xf9a2, 0xf9d0, 0xf9d1, 0xa4f5, 0xa6c7, 0xca41,
+  0xcb5e, 0xa85f, 0xa862, 0xcb5f, 0xa860, 0xa861, 0xcd58, 0xcd5a,
+  0xcd55, 0xcd52, 0xcd54, 0xaaa4, 0xaaa2, 0xcd56, 0xaaa3, 0xcd53,
+  0xcd50, 0xaaa1, 0xcd57, 0xcd51, 0xaaa5, 0xcd59, 0xcfaf, 0xcfb3,
+  0xacb7, 0xcfb6, 0xacaf, 0xacb2, 0xacb4, 0xacb6, 0xacb3, 0xcfb2,
+  0xcfb1, 0xacb1, 0xcfb4, 0xcfb5, 0xcfae, 0xacb5, 0xacb0, 0xcfb0,
+  0xd277, 0xd278, 0xd279, 0xaf50, 0xaf4c, 0xd26e, 0xd276, 0xd27b,
+  0xaf51, 0xd26c, 0xd272, 0xd26b, 0xd275, 0xd271, 0xaf4d, 0xaf4f,
+  0xd27a, 0xd26a, 0xd26d, 0xd273, 0xd274, 0xd27c, 0xd270, 0xaf4e,
+  0xb26d, 0xd64e, 0xd650, 0xd64c, 0xd658, 0xd64a, 0xd657, 0xb269,
+  0xd648, 0xda5b, 0xd652, 0xb26c, 0xd653, 0xd656, 0xd65a, 0xd64f,
+  0xd654, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649, 0xd65b, 0xd651,
+  0xd655, 0xd64b, 0xb548, 0xb549, 0xda65, 0xb54f, 0xda59, 0xda62,
+  0xda58, 0xb54c, 0xda60, 0xda5e, 0xda5f, 0xb54a, 0xda63, 0xda5c,
+  0xda5a, 0xb54b, 0xda5d, 0xda61, 0xb54d, 0xda64, 0xde70, 0xde77,
+  0xde79, 0xdea1, 0xb7da, 0xde6b, 0xb7d2, 0xde7a, 0xb7d7, 0xdea2,
+  0xb7ce, 0xde7d, 0xde6d, 0xde7e, 0xde6c, 0xb7dc, 0xde78, 0xb7cf,
+  0xdea3, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, 0xde6f, 0xde76, 0xde72,
+  0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, 0xb7db, 0xb7d0, 0xde75,
+  0xb7d5, 0xb54e, 0xde7b, 0xde73, 0xde74, 0xe2c1, 0xbab4, 0xe2bd,
+  0xe2c3, 0xe2bf, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, 0xe2bc, 0xbab5,
+  0xe2c0, 0xe2bb, 0xbab7, 0xbab2, 0xe2c4, 0xbab3, 0xe667, 0xe664,
+  0xe670, 0xe66a, 0xe66c, 0xbcf4, 0xe666, 0xe66e, 0xe66d, 0xe66b,
+  0xe671, 0xbcf7, 0xe668, 0xe66f, 0xbcf5, 0xe663, 0xe665, 0xbcf6,
+  0xe662, 0xe672, 0xe669, 0xea4a, 0xbf51, 0xea55, 0xea53, 0xbf4b,
+  0xea49, 0xea4c, 0xea4d, 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56,
+  0xea51, 0xbf4f, 0xbf4c, 0xea50, 0xea4e, 0xbf52, 0xea52, 0xbf4d,
+  0xbf4e, 0xea4f, 0xbf50, 0xea4b, 0xea54, 0xbf53, 0xea57, 0xea58,
+  0xbf54, 0xc0e7, 0xc0ee, 0xed5c, 0xed62, 0xed60, 0xc0ea, 0xc0e9,
+  0xc0e6, 0xed5e, 0xc0ec, 0xc0eb, 0xc0e8, 0xed61, 0xed5d, 0xed5f,
+  0xc0ed, 0xc277, 0xeffb, 0xc274, 0xc275, 0xeffd, 0xc276, 0xeffa,
+  0xeff9, 0xf26c, 0xeffc, 0xf26d, 0xc37a, 0xf26b, 0xf26a, 0xf269,
+  0xc37b, 0xc46c, 0xf46a, 0xf46b, 0xf5dc, 0xf5db, 0xc4ea, 0xf5da,
+  0xf6ec, 0xf6ed, 0xf7e6, 0xf8b1, 0xf8f6, 0xf9bc, 0xc679, 0xf9c6,
+  0xa4f6, 0xaaa6, 0xaaa7, 0xacb8, 0xc0ef, 0xa4f7, 0xaaa8, 0xaf52,
+  0xb7dd, 0xa4f8, 0xb26e, 0xbab8, 0xc962, 0xcfb7, 0xd27d, 0xe2c5,
+  0xc0f0, 0xa4f9, 0xaaa9, 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0xdea4,
+  0xb7de, 0xe2c6, 0xbcf8, 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0xa6c9,
+  0xca42, 0xa6c8, 0xa865, 0xa864, 0xa863, 0xcb60, 0xaaaa, 0xaaab,
+  0xcd5b, 0xcfba, 0xcfbd, 0xacba, 0xcfbb, 0xacb9, 0xcfbc, 0xacbb,
+  0xd2a2, 0xd2a1, 0xd27e, 0xaf53, 0xd65d, 0xd65e, 0xb26f, 0xd65c,
+  0xd65f, 0xb552, 0xb270, 0xb551, 0xda6b, 0xda6a, 0xda68, 0xda69,
+  0xda6c, 0xdea6, 0xdea5, 0xdea9, 0xdea8, 0xdea7, 0xbab9, 0xe2c9,
+  0xe2c8, 0xbaba, 0xe2c7, 0xe673, 0xe674, 0xbcf9, 0xea59, 0xea5a,
+  0xf272, 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, 0xf46c,
+  0xf6ee, 0xf8f7, 0xa4fc, 0xc9a5, 0xa5c7, 0xc9a6, 0xca43, 0xca44,
+  0xcb66, 0xcb62, 0xcb61, 0xaaac, 0xcb65, 0xa867, 0xcb63, 0xa866,
+  0xcb67, 0xcb64, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0xaaad, 0xaab0,
+  0xcd65, 0xcd61, 0xcd62, 0xcd5c, 0xaaaf, 0xcd5e, 0xaaae, 0xcd63,
+  0xcd60, 0xcfc2, 0xacbd, 0xacbe, 0xcfc5, 0xcfbf, 0xcfc4, 0xcfc0,
+  0xacbc, 0xcfc3, 0xcfc1, 0xd2a8, 0xd2a5, 0xd2a7, 0xaf58, 0xaf57,
+  0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56, 0xd2a6, 0xd667, 0xd2a3,
+  0xd2aa, 0xd662, 0xd666, 0xd665, 0xda6e, 0xda79, 0xd668, 0xd663,
+  0xda6d, 0xb274, 0xb273, 0xd661, 0xd664, 0xb275, 0xb272, 0xb271,
+  0xd660, 0xd669, 0xda70, 0xda77, 0xb554, 0xda76, 0xda73, 0xb556,
+  0xda75, 0xda6f, 0xda71, 0xda74, 0xda72, 0xb555, 0xda78, 0xb553,
+  0xb7df, 0xdead, 0xdeac, 0xdeaa, 0xb7e2, 0xb7e1, 0xdeae, 0xdeab,
+  0xe2ca, 0xbabb, 0xb7e0, 0xdeb0, 0xdeaf, 0xe2cd, 0xe2cb, 0xbcfa,
+  0xbabc, 0xe2cc, 0xe676, 0xbcfb, 0xe675, 0xe67e, 0xe67d, 0xe67b,
+  0xe67a, 0xe677, 0xe678, 0xe679, 0xe67c, 0xe6a1, 0xea5f, 0xea5c,
+  0xea5d, 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0xed64, 0xed65,
+  0xc0f1, 0xc0f2, 0xed63, 0xc279, 0xeffe, 0xc278, 0xc37e, 0xc3a1,
+  0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, 0xc57a, 0xf7e8, 0xf7e7,
+  0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, 0xd66a, 0xa5c9, 0xc9a7,
+  0xa4fd, 0xca45, 0xcb6c, 0xcb6a, 0xcb6b, 0xcb68, 0xa868, 0xcb69,
+  0xcd6d, 0xaab3, 0xcd6b, 0xcd67, 0xcd6a, 0xcd66, 0xaab5, 0xcd69,
+  0xaab2, 0xaab1, 0xaab4, 0xcd6c, 0xcd68, 0xacc2, 0xacc5, 0xcfce,
+  0xcfcd, 0xcfcc, 0xacbf, 0xcfd5, 0xcfcb, 0xacc1, 0xd2af, 0xcfd2,
+  0xcfd0, 0xacc4, 0xcfc8, 0xcfd3, 0xcfca, 0xcfd4, 0xcfd1, 0xcfc9,
+  0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0xd2b4, 0xd2ab, 0xd2b6, 0xd2ae,
+  0xd2b9, 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f,
+  0xaf5d, 0xd2b1, 0xd2ad, 0xd2b0, 0xd2bb, 0xd2b2, 0xaf5e, 0xcfcf,
+  0xaf5a, 0xaf5c, 0xd678, 0xd66d, 0xd66b, 0xd66c, 0xd673, 0xd674,
+  0xd670, 0xb27b, 0xd675, 0xd672, 0xd66f, 0xb279, 0xd66e, 0xb277,
+  0xb27a, 0xd671, 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676, 0xb27c,
+  0xda7e, 0xdaa1, 0xb560, 0xdaa7, 0xdaa9, 0xdaa2, 0xb55a, 0xdaa6,
+  0xdaa5, 0xb55b, 0xb561, 0xb562, 0xdaa8, 0xb558, 0xda7d, 0xda7b,
+  0xdaa3, 0xda7a, 0xb55f, 0xda7c, 0xdaa4, 0xdaaa, 0xb559, 0xb55e,
+  0xb55c, 0xb55d, 0xb557, 0xb7e9, 0xdeb7, 0xb7e8, 0xdebb, 0xdeb1,
+  0xdebc, 0xdeb2, 0xdeb3, 0xdebd, 0xdeba, 0xdeb8, 0xdeb9, 0xdeb5,
+  0xdeb4, 0xdebe, 0xb7e5, 0xdeb6, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec,
+  0xb7e7, 0xb7e6, 0xe2ce, 0xbabe, 0xbabd, 0xe2d3, 0xbcfc, 0xbabf,
+  0xbac1, 0xe2d4, 0xb7e3, 0xbac0, 0xe2d0, 0xe2d2, 0xe2cf, 0xe2d1,
+  0xe6ab, 0xe6aa, 0xe6a7, 0xbd40, 0xea62, 0xbd41, 0xe6a6, 0xbcfe,
+  0xe6a8, 0xe6a5, 0xe6a2, 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0xed69,
+  0xea66, 0xea65, 0xea67, 0xed66, 0xbf5a, 0xea63, 0xbf58, 0xbf5c,
+  0xbf5b, 0xea64, 0xea68, 0xbf59, 0xed6d, 0xc0f5, 0xc27a, 0xc0f6,
+  0xc0f3, 0xed6a, 0xed68, 0xed6b, 0xed6e, 0xc0f4, 0xed6c, 0xed67,
+  0xf042, 0xf045, 0xf275, 0xf040, 0xf46f, 0xf046, 0xc3a2, 0xf044,
+  0xc27b, 0xf041, 0xf043, 0xf047, 0xf276, 0xf274, 0xc3a3, 0xf273,
+  0xc46e, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, 0xf6f0, 0xf6f2, 0xc5d0,
+  0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, 0xb27d, 0xdebf, 0xbf5d,
+  0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0xcd6f, 0xa260, 0xcfd7, 0xcfd8,
+  0xd2be, 0xd2bf, 0xb27e, 0xb2a1, 0xdaab, 0xdec2, 0xdec1, 0xdec0,
+  0xe2d5, 0xe2d6, 0xe2d7, 0xbac2, 0xe6ad, 0xe6ac, 0xea69, 0xbf5e,
+  0xbf5f, 0xed72, 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048, 0xc27c,
+  0xf277, 0xf5de, 0xa5cc, 0xacc6, 0xb2a2, 0xdec3, 0xa5cd, 0xd2c0,
+  0xb2a3, 0xb563, 0xb564, 0xa5ce, 0xa5cf, 0xca46, 0xa86a, 0xa869,
+  0xacc7, 0xcfd9, 0xdaac, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa86b,
+  0xa86c, 0xcb6e, 0xcb6d, 0xaab6, 0xcd72, 0xcd70, 0xcd71, 0xcfda,
+  0xcfdb, 0xaccb, 0xacc9, 0xacca, 0xacc8, 0xaf60, 0xaf64, 0xaf63,
+  0xd2c1, 0xaf62, 0xaf61, 0xd2c2, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4,
+  0xb2a5, 0xb566, 0xb565, 0xdaae, 0xdaad, 0xb2a7, 0xb7ed, 0xdec5,
+  0xb7ee, 0xdec4, 0xe2d8, 0xe6ae, 0xbd42, 0xea6a, 0xed73, 0xc3a6,
+  0xc3a5, 0xc57c, 0xa5d4, 0xcd73, 0xb2a8, 0xe2d9, 0xbac3, 0xcb6f,
+  0xcb70, 0xcd74, 0xaab8, 0xaab9, 0xaab7, 0xaccf, 0xacd0, 0xaccd,
+  0xacce, 0xcfdc, 0xcfdd, 0xaccc, 0xd2c3, 0xaf68, 0xaf69, 0xb2ab,
+  0xd2c9, 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b, 0xaf6a, 0xaf65,
+  0xd2c8, 0xd2c7, 0xd2c4, 0xaf6d, 0xd2c6, 0xaf66, 0xaf67, 0xb2ac,
+  0xd6a1, 0xd6a2, 0xb2ad, 0xd67c, 0xd67e, 0xd6a4, 0xd6a3, 0xd67d,
+  0xb2a9, 0xb2aa, 0xdab6, 0xb56b, 0xb56a, 0xdab0, 0xb568, 0xdab3,
+  0xb56c, 0xdab4, 0xb56d, 0xdab1, 0xb567, 0xb569, 0xdab5, 0xdab2,
+  0xdaaf, 0xded2, 0xdec7, 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6,
+  0xded3, 0xded1, 0xdeca, 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc,
+  0xded4, 0xdecb, 0xb7f5, 0xb7ef, 0xb7f1, 0xdec9, 0xe2db, 0xbac7,
+  0xe2df, 0xbac6, 0xe2dc, 0xbac5, 0xdec8, 0xdecf, 0xe2de, 0xbac8,
+  0xe2e0, 0xe2dd, 0xe2da, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2,
+  0xe6b0, 0xbd45, 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af,
+  0xbd47, 0xbac4, 0xe6b6, 0xbd44, 0xea6c, 0xea6b, 0xea73, 0xea6d,
+  0xea72, 0xea6f, 0xbf60, 0xea71, 0xbf61, 0xbf62, 0xea70, 0xea6e,
+  0xc0f8, 0xed74, 0xc0f7, 0xed77, 0xed75, 0xed76, 0xc0f9, 0xf04d,
+  0xc2a1, 0xf04e, 0xc27d, 0xf04f, 0xc27e, 0xf04c, 0xf050, 0xf04a,
+  0xc3a7, 0xf278, 0xc3a8, 0xc46f, 0xf04b, 0xc470, 0xc4ee, 0xf5df,
+  0xc57e, 0xf6f4, 0xc57d, 0xf7ea, 0xc5f5, 0xc5f6, 0xf9cc, 0xacd1,
+  0xcfde, 0xb56e, 0xb56f, 0xa5d5, 0xa6ca, 0xca47, 0xcb71, 0xa86d,
+  0xaaba, 0xacd2, 0xacd3, 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0xb2ae,
+  0xd6a5, 0xdab8, 0xb571, 0xdab7, 0xb570, 0xded5, 0xbd4a, 0xe6bb,
+  0xe6b8, 0xe6b9, 0xe6ba, 0xed78, 0xf051, 0xf471, 0xf470, 0xf6f5,
+  0xa5d6, 0xcd75, 0xaf70, 0xb572, 0xded6, 0xe2e1, 0xbd4b, 0xea74,
+  0xf052, 0xf472, 0xa5d7, 0xaabb, 0xacd7, 0xcfdf, 0xacd8, 0xacd6,
+  0xacd5, 0xd2cc, 0xaf71, 0xaf72, 0xaf73, 0xb2b0, 0xd6a7, 0xb2af,
+  0xdab9, 0xb2b1, 0xb573, 0xded7, 0xb7f8, 0xb7f9, 0xbac9, 0xbaca,
+  0xbd4c, 0xbf64, 0xea75, 0xbf63, 0xed79, 0xc0fa, 0xf053, 0xf473,
+  0xa5d8, 0xa86e, 0xcd78, 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79,
+  0xcfe5, 0xacdb, 0xacda, 0xcfe7, 0xcfe6, 0xacdf, 0xacde, 0xacd9,
+  0xcfe1, 0xcfe2, 0xcfe3, 0xace0, 0xcfe0, 0xacdc, 0xcfe4, 0xacdd,
+  0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2ce,
+  0xd2cd, 0xaf75, 0xaf76, 0xd2d7, 0xd2d2, 0xd6b0, 0xd2d8, 0xaf77,
+  0xaf74, 0xd6aa, 0xd6a9, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2,
+  0xb2b5, 0xb2b2, 0xb2b6, 0xd6a8, 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af,
+  0xb2b3, 0xdabc, 0xdabe, 0xdaba, 0xdabb, 0xdabf, 0xdac1, 0xdac2,
+  0xdabd, 0xdac0, 0xb574, 0xdedb, 0xdee0, 0xded8, 0xdedc, 0xdee1,
+  0xdedd, 0xb7fa, 0xb843, 0xb7fd, 0xded9, 0xdeda, 0xbace, 0xb846,
+  0xb7fe, 0xb844, 0xb7fc, 0xdedf, 0xb845, 0xdede, 0xb841, 0xb7fb,
+  0xb842, 0xdee2, 0xe2e6, 0xe2e8, 0xb840, 0xe2e3, 0xbacc, 0xe2e9,
+  0xbacd, 0xe2e7, 0xe2e2, 0xe2e5, 0xe2ea, 0xbacb, 0xe2e4, 0xbd4e,
+  0xe6bf, 0xe6be, 0xbd51, 0xbd4f, 0xe6bc, 0xbd4d, 0xe6bd, 0xbd50,
+  0xea7d, 0xeaa1, 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66,
+  0xbf67, 0xbf65, 0xea78, 0xea7b, 0xea7c, 0xbf68, 0xc140, 0xeda3,
+  0xc0fc, 0xed7b, 0xc0fe, 0xc141, 0xc0fd, 0xeda2, 0xed7c, 0xc0fb,
+  0xeda1, 0xed7a, 0xed7e, 0xed7d, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2,
+  0xc2a3, 0xf054, 0xf27b, 0xc3a9, 0xf279, 0xf27a, 0xf474, 0xf477,
+  0xf475, 0xf476, 0xf5e0, 0xc4ef, 0xf7eb, 0xf8b4, 0xc5f7, 0xf8f8,
+  0xf8f9, 0xc666, 0xa5d9, 0xace1, 0xdac3, 0xdee3, 0xa5da, 0xa86f,
+  0xaabe, 0xcfe8, 0xcfe9, 0xaf78, 0xdac4, 0xb575, 0xb847, 0xc142,
+  0xeda4, 0xf27c, 0xf478, 0xa5db, 0xcda1, 0xcd7a, 0xcd7c, 0xcd7e,
+  0xcd7d, 0xcd7b, 0xaabf, 0xace2, 0xcff2, 0xcfed, 0xcfea, 0xcff1,
+  0xace4, 0xace5, 0xcff0, 0xcfef, 0xcfee, 0xcfeb, 0xcfec, 0xcff3,
+  0xace3, 0xaf7c, 0xafa4, 0xafa3, 0xd2e1, 0xd2db, 0xd2d9, 0xafa1,
+  0xd6b9, 0xaf7a, 0xd2de, 0xd2e2, 0xd2e4, 0xd2e0, 0xd2da, 0xafa2,
+  0xd2df, 0xd2dd, 0xaf79, 0xd2e5, 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc,
+  0xaf7e, 0xaf7b, 0xb2b9, 0xd6ba, 0xd6b3, 0xd6b5, 0xd6b7, 0xd6b8,
+  0xd6b6, 0xb2ba, 0xd6bb, 0xd6b4, 0xdac8, 0xb576, 0xdad0, 0xdac5,
+  0xdad1, 0xdac6, 0xdac7, 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577,
+  0xdac9, 0xdacc, 0xb578, 0xdacd, 0xdaca, 0xdeee, 0xdef2, 0xb84e,
+  0xe2f0, 0xb851, 0xdef0, 0xdeed, 0xdee8, 0xdeea, 0xdeeb, 0xdee4,
+  0xb84d, 0xb84c, 0xb848, 0xdee7, 0xb84f, 0xb850, 0xdee6, 0xdee9,
+  0xdef1, 0xb84a, 0xb84b, 0xdeef, 0xdee5, 0xe2f2, 0xbad0, 0xe2f4,
+  0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3, 0xbad1, 0xe2ef, 0xbad3,
+  0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0xb849, 0xe2eb, 0xbad2, 0xe2ed,
+  0xbd54, 0xe6c1, 0xbd58, 0xbd56, 0xbacf, 0xe6c8, 0xe6c9, 0xbd53,
+  0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5, 0xe6c2,
+  0xbd59, 0xe6c4, 0xe6c6, 0xbd57, 0xbf6a, 0xeaa8, 0xeaa2, 0xeaa6,
+  0xeaac, 0xeaad, 0xeaa9, 0xeaaa, 0xeaa7, 0xeaa4, 0xbf6c, 0xbf69,
+  0xeaa3, 0xeaa5, 0xbf6b, 0xeaab, 0xc146, 0xedaa, 0xeda5, 0xc145,
+  0xc143, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6, 0xedad, 0xf056,
+  0xc147, 0xeda7, 0xedae, 0xedab, 0xf05a, 0xf057, 0xc2a6, 0xf05b,
+  0xf05d, 0xf05c, 0xf058, 0xf059, 0xf2a3, 0xc3aa, 0xf27e, 0xf2a2,
+  0xf27d, 0xf2a4, 0xf2a1, 0xf47a, 0xf47d, 0xf479, 0xc471, 0xf47b,
+  0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473, 0xf5e1, 0xf5e3, 0xf5e2,
+  0xf6f6, 0xf8b5, 0xf8fa, 0xa5dc, 0xcb72, 0xaac0, 0xcda3, 0xaac1,
+  0xaac2, 0xcda2, 0xcff8, 0xcff7, 0xace6, 0xace9, 0xace8, 0xace7,
+  0xcff4, 0xcff6, 0xcff5, 0xd2e8, 0xafa7, 0xd2ec, 0xd2eb, 0xd2ea,
+  0xd2e6, 0xafa6, 0xafaa, 0xafad, 0xafae, 0xd2e7, 0xd2e9, 0xafac,
+  0xafab, 0xafa9, 0xafa8, 0xd6c2, 0xd6c0, 0xd6bc, 0xb2bb, 0xd6bd,
+  0xb2bc, 0xd6be, 0xd6bf, 0xd6c1, 0xb2bd, 0xdad5, 0xdad4, 0xdad3,
+  0xdad2, 0xdef6, 0xb852, 0xdef3, 0xdef5, 0xb853, 0xb854, 0xdef4,
+  0xe341, 0xe2f9, 0xe2fa, 0xbad7, 0xbad5, 0xbad6, 0xe343, 0xe342,
+  0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb, 0xe340, 0xe2f8, 0xe6cb, 0xe6d0,
+  0xe6ce, 0xe6cd, 0xe6cc, 0xe6cf, 0xeaae, 0xbf6d, 0xc148, 0xedb0,
+  0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0xf2a5, 0xc3ab, 0xf4a1,
+  0xc5a1, 0xf6f7, 0xf8b7, 0xf8b6, 0xc9a8, 0xacea, 0xaceb, 0xd6c3,
+  0xb856, 0xa5dd, 0xa872, 0xa871, 0xa870, 0xcda4, 0xaac4, 0xaac3,
+  0xacee, 0xcffa, 0xcffd, 0xcffb, 0xacec, 0xaced, 0xcff9, 0xcffc,
+  0xafb5, 0xd2f3, 0xd2f5, 0xd2f4, 0xafb2, 0xd2ef, 0xafb0, 0xafaf,
+  0xafb3, 0xafb1, 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0,
+  0xd6c6, 0xd6c7, 0xd6c5, 0xd6c4, 0xb2be, 0xb57d, 0xdad6, 0xdad8,
+  0xdada, 0xb57c, 0xb57a, 0xdad7, 0xb57b, 0xdad9, 0xb579, 0xdf41,
+  0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0xdefb, 0xdef8, 0xdef9,
+  0xb858, 0xdf40, 0xb857, 0xb85c, 0xb85b, 0xb859, 0xdefd, 0xe349,
+  0xe348, 0xe344, 0xbad8, 0xe347, 0xe346, 0xbad9, 0xbd5e, 0xe6d2,
+  0xbd5f, 0xbd5b, 0xbd5d, 0xbd5a, 0xbd5c, 0xeaaf, 0xbf70, 0xeab1,
+  0xeab0, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0xedb5, 0xedb3,
+  0xc14a, 0xedb4, 0xedb6, 0xedb2, 0xedb1, 0xf060, 0xc2aa, 0xc2a8,
+  0xc2a9, 0xf2a6, 0xf2a7, 0xc3ad, 0xc3ac, 0xf4a3, 0xf4a4, 0xf4a2,
+  0xf6f8, 0xf6f9, 0xa5de, 0xca48, 0xa873, 0xcda5, 0xaac6, 0xaac5,
+  0xcda6, 0xd040, 0xacef, 0xcffe, 0xacf0, 0xafb6, 0xd2f8, 0xd2f6,
+  0xd2fc, 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9, 0xd2fa, 0xd6c8, 0xd6ca,
+  0xb2bf, 0xd6c9, 0xb2c0, 0xb5a2, 0xb5a1, 0xb57e, 0xdadb, 0xdf44,
+  0xb85d, 0xb85e, 0xdf43, 0xdf42, 0xe34a, 0xbadb, 0xbada, 0xe34b,
+  0xe34c, 0xbd61, 0xbd60, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4,
+  0xeab2, 0xeab6, 0xeab3, 0xbf73, 0xedb7, 0xc14b, 0xedb8, 0xedb9,
+  0xc2ab, 0xc2ac, 0xc475, 0xc5d1, 0xa5df, 0xd041, 0xd2fd, 0xafb8,
+  0xb3ba, 0xb3b9, 0xb5a4, 0xdadd, 0xb5a3, 0xdadc, 0xdf45, 0xbadc,
+  0xe34d, 0xbadd, 0xc476, 0xf4a5, 0xa6cb, 0xaac7, 0xcda7, 0xacf2,
+  0xacf1, 0xd042, 0xd043, 0xd340, 0xd342, 0xafb9, 0xd344, 0xd347,
+  0xd345, 0xd346, 0xd343, 0xd2fe, 0xafba, 0xd348, 0xd341, 0xd6d3,
+  0xb2c6, 0xd6dc, 0xb2c3, 0xd6d5, 0xb2c7, 0xb2c1, 0xd6d0, 0xd6dd,
+  0xd6d1, 0xd6ce, 0xb2c5, 0xb2c2, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8,
+  0xb2c8, 0xd6d9, 0xd6cf, 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb,
+  0xd6db, 0xdadf, 0xdae4, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, 0xdae1,
+  0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, 0xb5a8,
+  0xb5ae, 0xb5a9, 0xb5aa, 0xb5a6, 0xdae5, 0xb861, 0xdf50, 0xdf53,
+  0xdf47, 0xdf4c, 0xdf46, 0xb863, 0xdf4a, 0xdf48, 0xb862, 0xdf4f,
+  0xdf4e, 0xdf4b, 0xdf4d, 0xdf49, 0xbae1, 0xdf52, 0xb85f, 0xdf51,
+  0xe35d, 0xbae8, 0xe358, 0xbae7, 0xe34e, 0xe350, 0xbae0, 0xe355,
+  0xe354, 0xe357, 0xbae5, 0xe352, 0xe351, 0xbae4, 0xbadf, 0xe353,
+  0xbae2, 0xe359, 0xe35b, 0xe356, 0xe34f, 0xbae3, 0xbd69, 0xbade,
+  0xe35c, 0xe6d9, 0xbd62, 0xe6db, 0xbd63, 0xbd65, 0xe6de, 0xe6d6,
+  0xbae6, 0xe6dc, 0xe6d8, 0xb860, 0xbd68, 0xbd64, 0xbd66, 0xbd67,
+  0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0xe6da, 0xeac0, 0xeabb, 0xeac5,
+  0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba, 0xeab7, 0xeac6, 0xc151,
+  0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc, 0xbf7b, 0xeab9, 0xeabe,
+  0xbf7a, 0xeac1, 0xeac4, 0xedcb, 0xedcc, 0xedbc, 0xedc3, 0xedc1,
+  0xc14f, 0xedc8, 0xeabf, 0xedbf, 0xedc9, 0xc14e, 0xedbe, 0xedbd,
+  0xedc7, 0xedc4, 0xedc6, 0xedba, 0xedca, 0xc14c, 0xedc5, 0xedce,
+  0xedc2, 0xc150, 0xc14d, 0xedc0, 0xedbb, 0xedcd, 0xbf75, 0xf063,
+  0xf061, 0xf067, 0xc2b0, 0xf065, 0xf064, 0xc2b2, 0xf06a, 0xc2b1,
+  0xf06b, 0xf068, 0xc2ae, 0xf069, 0xf062, 0xc2af, 0xc2ad, 0xf2ab,
+  0xf066, 0xf06c, 0xf2a8, 0xc3b2, 0xc3b0, 0xf2aa, 0xf2ac, 0xf2a9,
+  0xc3b1, 0xc3ae, 0xc3af, 0xc3b3, 0xc478, 0xf4aa, 0xf4a9, 0xf4a7,
+  0xf4a6, 0xf4a8, 0xc477, 0xc479, 0xc4f0, 0xf5e5, 0xf5e4, 0xf6fa,
+  0xf6fc, 0xf6fe, 0xf6fd, 0xf6fb, 0xc5a3, 0xc5a2, 0xc5d3, 0xc5d2,
+  0xc5d4, 0xf7ed, 0xf7ec, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0xc659,
+  0xf96d, 0xc67e, 0xa6cc, 0xcda8, 0xd045, 0xd046, 0xd044, 0xacf3,
+  0xd047, 0xd048, 0xd049, 0xd349, 0xd34f, 0xd34d, 0xafbb, 0xd34b,
+  0xd34c, 0xd34e, 0xd34a, 0xb2c9, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca,
+  0xd6df, 0xdae8, 0xb5af, 0xdaea, 0xdae7, 0xd6e1, 0xb5b0, 0xdae9,
+  0xdf56, 0xb864, 0xdf54, 0xb865, 0xdf55, 0xb866, 0xbae9, 0xe361,
+  0xe35e, 0xe360, 0xbaea, 0xbaeb, 0xe35f, 0xe6df, 0xe6e0, 0xbd6b,
+  0xe6e2, 0xe6e1, 0xa261, 0xeaca, 0xeacb, 0xeac7, 0xeac8, 0xbf7c,
+  0xbf7d, 0xeac9, 0xc157, 0xc153, 0xc158, 0xc154, 0xc156, 0xc152,
+  0xc155, 0xc2b3, 0xedcf, 0xf2ae, 0xf2ad, 0xf4ab, 0xc47a, 0xc47b,
+  0xf741, 0xf5e6, 0xf740, 0xf8fd, 0xf9a4, 0xa6cd, 0xa874, 0xcda9,
+  0xaac8, 0xacf6, 0xd04c, 0xacf4, 0xd04a, 0xacf9, 0xacf5, 0xacfa,
+  0xacf8, 0xd04b, 0xacf7, 0xafbf, 0xafbe, 0xd35a, 0xafc7, 0xd353,
+  0xd359, 0xafc3, 0xd352, 0xd358, 0xd356, 0xafc2, 0xafc4, 0xd355,
+  0xafbd, 0xd354, 0xafc8, 0xafc5, 0xafc9, 0xafc6, 0xd351, 0xd350,
+  0xd357, 0xafc0, 0xafbc, 0xafc1, 0xd6f0, 0xd6e9, 0xb5b5, 0xd6e8,
+  0xb2cf, 0xb2d6, 0xb2d3, 0xb2d9, 0xb2d8, 0xb2d4, 0xd6e2, 0xd6e5,
+  0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef, 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed,
+  0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd, 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb,
+  0xd6ee, 0xdafb, 0xdaf2, 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7,
+  0xb5b4, 0xdaef, 0xdaeb, 0xb86c, 0xdaf4, 0xb5b1, 0xdafa, 0xb5b8,
+  0xb5ba, 0xdaed, 0xb5b9, 0xdaf0, 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5,
+  0xdaf3, 0xb5b6, 0xdaec, 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0xb868,
+  0xdf5d, 0xdf5f, 0xdf61, 0xdf65, 0xdf5b, 0xdf59, 0xb86a, 0xdf60,
+  0xdf64, 0xdf5c, 0xdf58, 0xdf57, 0xdf62, 0xdf5a, 0xdf5e, 0xb86b,
+  0xb869, 0xdf66, 0xb867, 0xdf63, 0xe372, 0xbaee, 0xe36a, 0xbd78,
+  0xe374, 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0xe375, 0xe362, 0xe377,
+  0xe366, 0xbafe, 0xbafb, 0xe376, 0xe370, 0xbaed, 0xbaf5, 0xbaf4,
+  0xbaf3, 0xbaf9, 0xe363, 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373,
+  0xbaef, 0xbaf0, 0xbaf8, 0xe368, 0xe367, 0xe364, 0xe36c, 0xe369,
+  0xe36d, 0xbafd, 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0xe36b, 0xbafc,
+  0xe6e7, 0xbd70, 0xbd79, 0xbd75, 0xe6e4, 0xbd72, 0xbd76, 0xe6f0,
+  0xbd6c, 0xe6e8, 0xbd74, 0xe6eb, 0xe6e6, 0xbd73, 0xbd77, 0xe6e5,
+  0xbd71, 0xe6ef, 0xbd6e, 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d,
+  0xe6ec, 0xe6e3, 0xbd7b, 0xe6ea, 0xbd6f, 0xe6e9, 0xbfa2, 0xbfa7,
+  0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9, 0xbfa8, 0xbfa1,
+  0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace, 0xead6, 0xbfa3,
+  0xead4, 0xbfa6, 0xbfa5, 0xead0, 0xead1, 0xeacd, 0xead7, 0xbfa4,
+  0xeade, 0xeadd, 0xedda, 0xedd6, 0xc15f, 0xedd0, 0xc159, 0xc169,
+  0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164, 0xc167, 0xedde, 0xc15c,
+  0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1, 0xc160, 0xc15a, 0xc168,
+  0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf, 0xc162, 0xc15b, 0xedd9,
+  0xc166, 0xedd7, 0xeddb, 0xf06e, 0xf074, 0xc2b9, 0xf077, 0xc2b4,
+  0xc2b5, 0xf06f, 0xf076, 0xf071, 0xc2ba, 0xc2b7, 0xf06d, 0xc2b6,
+  0xf073, 0xf075, 0xc2b8, 0xf072, 0xf070, 0xf2b8, 0xc3b7, 0xc3b8,
+  0xc3b4, 0xc3b5, 0xf2b4, 0xf2b2, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0,
+  0xf2af, 0xf2b3, 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d,
+  0xf4ad, 0xf4af, 0xf4ae, 0xc4a1, 0xf5eb, 0xf5e8, 0xf5e9, 0xf5e7,
+  0xf5ea, 0xc4f2, 0xf5ec, 0xc4f1, 0xf742, 0xc5d5, 0xc5d7, 0xf7ee,
+  0xc5d6, 0xf8b9, 0xf940, 0xf942, 0xf8fe, 0xf941, 0xc66c, 0xa6ce,
+  0xacfb, 0xd26f, 0xafca, 0xb2da, 0xdafc, 0xdafd, 0xeadf, 0xc16a,
+  0xede1, 0xc2bb, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0xf743, 0xc5f8,
+  0xca49, 0xaac9, 0xa875, 0xd04d, 0xd360, 0xd35b, 0xd35f, 0xd35d,
+  0xafcb, 0xd35e, 0xd35c, 0xd6f1, 0xdafe, 0xdb40, 0xdf69, 0xdf6a,
+  0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67, 0xb86d, 0xbb40, 0xb870,
+  0xe37a, 0xbd7c, 0xe6f1, 0xbd7d, 0xbfa9, 0xeae2, 0xeae0, 0xeae1,
+  0xede4, 0xede3, 0xede2, 0xf2bb, 0xc3b9, 0xf2bc, 0xf744, 0xc5f9,
+  0xf8ba, 0xa6cf, 0xaacb, 0xaaca, 0xd04f, 0xacfc, 0xd04e, 0xd362,
+  0xafcc, 0xd6f2, 0xd361, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db,
+  0xdb42, 0xdb43, 0xdb41, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e, 0xb872,
+  0xb871, 0xe6f2, 0xe6f4, 0xbd7e, 0xe6f3, 0xeae3, 0xbfaa, 0xf079,
+  0xf078, 0xc3bb, 0xf2bd, 0xc3bd, 0xc3bc, 0xf4b0, 0xf5ee, 0xc4f3,
+  0xa6d0, 0xd050, 0xacfd, 0xd365, 0xafce, 0xd364, 0xd363, 0xafcd,
+  0xd6fb, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd, 0xd6f8, 0xb2de, 0xd6fc,
+  0xd6f9, 0xd6fa, 0xb2df, 0xb5be, 0xb5bf, 0xdb44, 0xdf6f, 0xdf70,
+  0xe37e, 0xbb43, 0xbb41, 0xbb42, 0xe37b, 0xe37c, 0xe37d, 0xe6f9,
+  0xe6fa, 0xbda1, 0xe6f7, 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4,
+  0xbfab, 0xbfac, 0xede6, 0xc16b, 0xede5, 0xefa8, 0xf07a, 0xf07b,
+  0xc2bc, 0xc2bd, 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, 0xc4a3, 0xa6d1,
+  0xa6d2, 0xacfe, 0xaacc, 0xafcf, 0xd051, 0xb5c0, 0xa6d3, 0xad41,
+  0xd052, 0xd053, 0xad40, 0xad42, 0xa6d4, 0xd054, 0xafd1, 0xd366,
+  0xafd3, 0xafd0, 0xafd2, 0xd741, 0xb2e0, 0xd740, 0xd6fe, 0xdf71,
+  0xe3a1, 0xbda2, 0xbfae, 0xeae6, 0xeae5, 0xede7, 0xf5ef, 0xa6d5,
+  0xcb73, 0xcdaa, 0xad43, 0xd055, 0xd368, 0xafd4, 0xd367, 0xafd5,
+  0xd743, 0xb2e2, 0xd742, 0xd744, 0xb2e1, 0xdb46, 0xdb47, 0xdb45,
+  0xb5c1, 0xb874, 0xb875, 0xbb45, 0xe3a3, 0xe3a2, 0xbb44, 0xe6fb,
+  0xe6fc, 0xeae7, 0xc170, 0xc16f, 0xc16d, 0xc16e, 0xc171, 0xf07c,
+  0xc2bf, 0xc2be, 0xf2c0, 0xf4b2, 0xc5a5, 0xc5a4, 0xa6d6, 0xd1fb,
+  0xb877, 0xb5c2, 0xb876, 0xbb46, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9,
+  0xcdab, 0xcb76, 0xcb77, 0xa877, 0xcb74, 0xa876, 0xa879, 0xcb75,
+  0xa87b, 0xa87a, 0xcb78, 0xa878, 0xaad1, 0xaacf, 0xcdad, 0xaace,
+  0xaad3, 0xaad5, 0xaad2, 0xcdb0, 0xcdac, 0xaad6, 0xaad0, 0xa87c,
+  0xaad4, 0xcdaf, 0xcdae, 0xaacd, 0xd05b, 0xad47, 0xad48, 0xd05d,
+  0xd057, 0xd05a, 0xd063, 0xd061, 0xad49, 0xd067, 0xad4c, 0xd064,
+  0xd05c, 0xd059, 0xdb49, 0xd062, 0xad44, 0xd065, 0xd056, 0xd05f,
+  0xad46, 0xad4b, 0xd060, 0xad4f, 0xad4d, 0xd058, 0xad4a, 0xd05e,
+  0xad4e, 0xad45, 0xd066, 0xafda, 0xafe3, 0xafd8, 0xafd6, 0xd36a,
+  0xafde, 0xafdb, 0xd36c, 0xafdd, 0xd36b, 0xd369, 0xd36e, 0xafe2,
+  0xafe0, 0xdb48, 0xd36f, 0xd36d, 0xafd7, 0xafd9, 0xafdc, 0xafdf,
+  0xafe1, 0xd74e, 0xb2e4, 0xd745, 0xd747, 0xd748, 0xd750, 0xd74c,
+  0xd74a, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746, 0xd74f, 0xb2e7,
+  0xb2e6, 0xd74b, 0xd749, 0xb2e3, 0xb2e8, 0xb5c8, 0xdb51, 0xdb4f,
+  0xb5ca, 0xdb4a, 0xdfa1, 0xb5c9, 0xdb4e, 0xdb4b, 0xb5c5, 0xb5cb,
+  0xdb50, 0xb5c7, 0xdb4d, 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4,
+  0xb5c3, 0xdf77, 0xdf75, 0xdf7b, 0xdf73, 0xdfa2, 0xdf78, 0xdf72,
+  0xb87b, 0xb8a3, 0xdf7d, 0xdf76, 0xb87e, 0xb87c, 0xdf7e, 0xb879,
+  0xb878, 0xdf79, 0xb87d, 0xb5cd, 0xdf7c, 0xdf74, 0xb87a, 0xb8a1,
+  0xb8a2, 0xbb4c, 0xbb48, 0xbb4d, 0xe3a6, 0xe3a5, 0xe3a7, 0xbb4a,
+  0xe3a4, 0xbb4b, 0xe3aa, 0xe3a9, 0xe3a8, 0xbb49, 0xe741, 0xe744,
+  0xbda8, 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe,
+  0xbda6, 0xe742, 0xe6fd, 0xeae9, 0xeaf3, 0xbfb1, 0xbfb0, 0xeaed,
+  0xeaef, 0xeaea, 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0, 0xeaec,
+  0xeaf2, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178, 0xc17a, 0xc177,
+  0xc176, 0xc175, 0xc173, 0xede9, 0xedec, 0xc172, 0xeded, 0xc179,
+  0xedeb, 0xedea, 0xc2c0, 0xc2c1, 0xf0a1, 0xf07d, 0xf07e, 0xf2c2,
+  0xf2c1, 0xc3be, 0xf4b4, 0xc4a4, 0xf4b3, 0xf5f0, 0xf745, 0xc5a6,
+  0xf943, 0xf944, 0xc5d8, 0xa6da, 0xaad7, 0xdb52, 0xbb4e, 0xc17b,
+  0xedef, 0xa6db, 0xafe5, 0xafe4, 0xdb53, 0xeaf4, 0xa6dc, 0xad50,
+  0xdb54, 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0xaad8, 0xd068,
+  0xafe6, 0xd370, 0xb2ea, 0xdb57, 0xb8a4, 0xbb50, 0xbfb3, 0xc17c,
+  0xc2c2, 0xf4b5, 0xa6de, 0xaad9, 0xafe7, 0xd752, 0xb5ce, 0xbb51,
+  0xe3ab, 0xe745, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0, 0xcdb1,
+  0xd069, 0xad51, 0xd372, 0xafea, 0xafe8, 0xafe9, 0xafeb, 0xd371,
+  0xd757, 0xd754, 0xd756, 0xb2eb, 0xb2ed, 0xb2ec, 0xd753, 0xb2ee,
+  0xd755, 0xdb58, 0xdb59, 0xdb5a, 0xdfa6, 0xdfa7, 0xdfa5, 0xdfa8,
+  0xb8a5, 0xdfa4, 0xbb53, 0xe74a, 0xe746, 0xe749, 0xe74b, 0xe748,
+  0xe747, 0xeaf5, 0xeaf6, 0xeaf7, 0xbfb4, 0xbfb5, 0xedf1, 0xedf0,
+  0xedf2, 0xf0a3, 0xf0a2, 0xf2c4, 0xf2c5, 0xf2c3, 0xc4a5, 0xf4b6,
+  0xf4b7, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, 0xc17d, 0xa6e2,
+  0xd758, 0xdb5b, 0xc641, 0xca4a, 0xca4b, 0xca4d, 0xa6e3, 0xca4e,
+  0xca4c, 0xcba2, 0xcba3, 0xcb7b, 0xcba1, 0xa8a1, 0xa8a2, 0xcb7c,
+  0xcb7a, 0xcb79, 0xcb7d, 0xa87e, 0xcb7e, 0xd06a, 0xcdb6, 0xaadc,
+  0xcdb5, 0xcdb7, 0xaadb, 0xcdbc, 0xaadf, 0xcdb2, 0xcdc0, 0xcdc6,
+  0xaae6, 0xcdc3, 0xaae3, 0xcdb9, 0xcdbf, 0xcdc1, 0xcdb4, 0xaae2,
+  0xaadd, 0xcdba, 0xaae4, 0xaae7, 0xaae1, 0xaada, 0xcdbe, 0xcdb8,
+  0xcdc5, 0xaae9, 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade,
+  0xaae8, 0xcdb3, 0xcdc2, 0xcdc4, 0xad62, 0xad5c, 0xad64, 0xad61,
+  0xd071, 0xd074, 0xad5d, 0xd06b, 0xad56, 0xad60, 0xad63, 0xad65,
+  0xd0a2, 0xd077, 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, 0xd06f,
+  0xd07e, 0xd073, 0xd076, 0xd0a5, 0xad66, 0xd07d, 0xad5e, 0xd078,
+  0xd0a4, 0xd075, 0xd079, 0xd07c, 0xd06d, 0xd0a3, 0xd07b, 0xd06c,
+  0xd070, 0xad5f, 0xad5a, 0xad53, 0xad58, 0xad54, 0xad67, 0xd06e,
+  0xd3a5, 0xad5b, 0xd07a, 0xce41, 0xd3a8, 0xaffa, 0xd376, 0xd3a3,
+  0xd37d, 0xd3b2, 0xd3aa, 0xd37e, 0xd3a9, 0xd378, 0xd37c, 0xd3b5,
+  0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0xd3ac, 0xaffc,
+  0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, 0xaff1, 0xaff8,
+  0xd072, 0xdb5c, 0xd3a6, 0xd37a, 0xaffb, 0xd37b, 0xd3a1, 0xaffe,
+  0xd375, 0xd3af, 0xd3ae, 0xd3b6, 0xaff3, 0xaff0, 0xd3b4, 0xd3b0,
+  0xd3a7, 0xd3a2, 0xaff6, 0xaff2, 0xd377, 0xafee, 0xd3b1, 0xafef,
+  0xd379, 0xd75e, 0xd760, 0xd765, 0xd779, 0xb2fc, 0xb2f2, 0xd75d,
+  0xb2fd, 0xb2fe, 0xd768, 0xd76f, 0xd775, 0xd762, 0xd769, 0xb340,
+  0xd777, 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef,
+  0xd761, 0xd759, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773,
+  0xb2f1, 0xd764, 0xd77a, 0xd76c, 0xd76b, 0xb2f0, 0xb2fb, 0xb2f3,
+  0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, 0xd75b, 0xd767, 0xd76d,
+  0xb2f6, 0xd778, 0xd771, 0xd774, 0xb2f5, 0xdb6c, 0xdb60, 0xb5d7,
+  0xdb7d, 0xdba7, 0xdbaa, 0xb5d5, 0xdb68, 0xdba3, 0xdb69, 0xdb77,
+  0xb5e2, 0xdb73, 0xb5df, 0xdb74, 0xdb5d, 0xdba4, 0xb5e8, 0xdba1,
+  0xdb75, 0xdbac, 0xdb70, 0xdfc8, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a,
+  0xb5e9, 0xb5d4, 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0xdb63,
+  0xdb61, 0xb5d0, 0xdba5, 0xdb6a, 0xdba8, 0xdba9, 0xb5d8, 0xb5dd,
+  0xb5d9, 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0xb5d2, 0xdb5e,
+  0xdba2, 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, 0xdb6d, 0xb5d1,
+  0xb5e5, 0xdb7c, 0xb5e7, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3,
+  0xb5e4, 0xdb79, 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0xdbae, 0xdb5f,
+  0xdfc7, 0xdfdd, 0xb855, 0xdfcc, 0xdfca, 0xdfb5, 0xb8a9, 0xdfc5,
+  0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, 0xb5e3, 0xdfcf, 0xdfc0,
+  0xdfd6, 0xb8b0, 0xb8a8, 0xdfaa, 0xdfb2, 0xdfcb, 0xdfc3, 0xdfdc,
+  0xdfc6, 0xb8b6, 0xdfd7, 0xb8ad, 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0,
+  0xdfe1, 0xdfb1, 0xdfd2, 0xdfdf, 0xdfab, 0xb5db, 0xdfb9, 0xdfb8,
+  0xb8af, 0xdfbc, 0xdfbe, 0xdfcd, 0xdfde, 0xb8b2, 0xb8b3, 0xdfb0,
+  0xb8ab, 0xdfb4, 0xdfda, 0xb8b4, 0xb8ac, 0xb8ae, 0xb8b5, 0xdfe0,
+  0xdfd3, 0xdfce, 0xdfbb, 0xdfba, 0xb8aa, 0xdfac, 0xb8a7, 0xdfc4,
+  0xdfad, 0xdfc2, 0xdfb7, 0xdfdb, 0xb8a6, 0xdfb3, 0xdfaf, 0xdfd5,
+  0xdfae, 0xbb60, 0xe3d3, 0xe3c2, 0xe3ac, 0xe3ca, 0xbb58, 0xe3bb,
+  0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, 0xe3cd, 0xe3ae, 0xe3c1,
+  0xe3ad, 0xe3bf, 0xe3c8, 0xe3c6, 0xe3ba, 0xe3b5, 0xe3b3, 0xe3b4,
+  0xe3c7, 0xe3d2, 0xe3bc, 0xbb5a, 0xe3b7, 0xe3cb, 0xbb5d, 0xe3b6,
+  0xe3b0, 0xe3c0, 0xbb61, 0xbb55, 0xbb5e, 0xe3b8, 0xe3b2, 0xbb57,
+  0xdfd4, 0xbb56, 0xe3c3, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9,
+  0xe3b1, 0xe3cc, 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0xe3c9,
+  0xe3ce, 0xe3d1, 0xe773, 0xe774, 0xe767, 0xe766, 0xe762, 0xbdb4,
+  0xbdac, 0xe776, 0xe775, 0xdfa9, 0xe75f, 0xe763, 0xe75d, 0xe770,
+  0xe761, 0xe777, 0xe75a, 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6,
+  0xe74f, 0xe76d, 0xbdb7, 0xdfbd, 0xe75b, 0xe752, 0xe755, 0xe77b,
+  0xe75c, 0xe753, 0xe751, 0xe74e, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3,
+  0xe760, 0xe768, 0xbda9, 0xe778, 0xe77c, 0xbdab, 0xe757, 0xe76b,
+  0xe76f, 0xe754, 0xe779, 0xbdb2, 0xbdb1, 0xe74c, 0xbdb5, 0xe772,
+  0xe756, 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c,
+  0xe77d, 0xe77a, 0xe771, 0xe74d, 0xbdaa, 0xeb49, 0xeb40, 0xeb43,
+  0xbfbb, 0xeb45, 0xeaf9, 0xeb41, 0xeb47, 0xbfb8, 0xbfbc, 0xbfb6,
+  0xeafb, 0xeb4c, 0xeb46, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46,
+  0xeafe, 0xbfb7, 0xeb4a, 0xeb54, 0xbfbf, 0xeb51, 0xeafd, 0xeb44,
+  0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, 0xbfb9, 0xbfba, 0xbfbe,
+  0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0xeb4b, 0xeb4e, 0xee53, 0xee40,
+  0xee45, 0xee52, 0xee44, 0xedfb, 0xee41, 0xc1a2, 0xedf4, 0xee4d,
+  0xee4f, 0xedf3, 0xc1a1, 0xee51, 0xee49, 0xc1a8, 0xee50, 0xee42,
+  0xc1aa, 0xedf9, 0xeb52, 0xee4a, 0xee47, 0xedf5, 0xee55, 0xc1a4,
+  0xc1a5, 0xedf7, 0xee48, 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3,
+  0xee4c, 0xedfe, 0xee56, 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc,
+  0xc2cb, 0xedf6, 0xc1a9, 0xc2c4, 0xc17e, 0xc1a6, 0xc2c8, 0xf0b3,
+  0xf0a9, 0xf0a4, 0xf0aa, 0xf0b4, 0xf0b8, 0xf0b7, 0xc2ca, 0xc2c9,
+  0xf0ab, 0xf0b9, 0xf0ae, 0xf0a6, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2,
+  0xf0a5, 0xf0ac, 0xf0b1, 0xc2c7, 0xf0af, 0xc2c5, 0xf0b0, 0xc2c3,
+  0xc2c6, 0xf2d5, 0xf0b5, 0xc3c2, 0xf2cd, 0xf2d1, 0xf2c9, 0xf2cc,
+  0xf2d4, 0xc3c0, 0xf2d9, 0xf2d2, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3,
+  0xc3c4, 0xf2d7, 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8,
+  0xf2d8, 0xf2d6, 0xf2c7, 0xf2cf, 0xf4be, 0xc3c5, 0xf2d0, 0xc4a7,
+  0xc4a9, 0xc4a6, 0xf4c3, 0xf4bb, 0xf4b9, 0xf4bd, 0xf4ba, 0xf4bf,
+  0xf4c1, 0xc4aa, 0xc4ac, 0xf4c0, 0xc4ad, 0xc4ab, 0xf4c2, 0xc4a8,
+  0xc4f4, 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0xf5fd, 0xf5f4,
+  0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8,
+  0xf5fc, 0xf5f2, 0xf74a, 0xc4f5, 0xf5f9, 0xf7f4, 0xf74b, 0xf749,
+  0xf747, 0xf748, 0xf74c, 0xc5d9, 0xf7f2, 0xf7f0, 0xf7f5, 0xf7f3,
+  0xf7f6, 0xc5da, 0xf7f1, 0xf8bc, 0xf945, 0xf946, 0xf947, 0xf9c7,
+  0xf9bd, 0xca4f, 0xaaea, 0xad68, 0xd3b8, 0xd3b7, 0xb040, 0xb342,
+  0xd77c, 0xd77b, 0xb5ea, 0xb8b8, 0xb8b7, 0xb8b9, 0xe3d4, 0xe77e,
+  0xeb58, 0xeb5a, 0xeb59, 0xc1ab, 0xee57, 0xf0ba, 0xf9a5, 0xa6e4,
+  0xcdc9, 0xcdca, 0xcdc8, 0xcdc7, 0xaaeb, 0xd0a9, 0xd0a7, 0xd0a6,
+  0xad69, 0xad6b, 0xad6a, 0xd0a8, 0xd3c4, 0xd3c1, 0xd3bf, 0xb041,
+  0xd3c2, 0xb046, 0xd3bc, 0xd3cb, 0xd3cd, 0xd3bd, 0xb043, 0xd3ce,
+  0xd3c9, 0xd3bb, 0xd3c0, 0xd3ca, 0xd3c6, 0xd3c3, 0xb048, 0xd3cc,
+  0xd3be, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0xd3c8, 0xd3ba,
+  0xb045, 0xb042, 0xb34c, 0xd7a5, 0xb34b, 0xd7a8, 0xd7ab, 0xb348,
+  0xb346, 0xd77e, 0xd7a9, 0xd7a7, 0xd7a4, 0xd7ac, 0xd7ad, 0xd7af,
+  0xd7b0, 0xd77d, 0xb345, 0xd7a2, 0xd7a1, 0xd7ae, 0xb347, 0xd7a3,
+  0xb349, 0xb344, 0xd7a6, 0xb34d, 0xb34a, 0xd7aa, 0xb5f1, 0xdbbf,
+  0xdbb4, 0xb5ee, 0xdfe7, 0xdbbd, 0xdbb1, 0xb5ec, 0xdbb6, 0xb5ef,
+  0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, 0xdbb2, 0xdbb5, 0xb5f0, 0xdbb3,
+  0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb, 0xb5ed, 0xdfe8, 0xdfee,
+  0xdfe4, 0xdfea, 0xb8ba, 0xdfe6, 0xb8c0, 0xb8bf, 0xb8be, 0xdfed,
+  0xb8c1, 0xb8c2, 0xdfe3, 0xdff0, 0xb8c3, 0xb8bd, 0xb8bc, 0xdfec,
+  0xb8c4, 0xdfe2, 0xdfe5, 0xdfef, 0xdfeb, 0xe3f4, 0xe3e9, 0xb8bb,
+  0xbb6a, 0xe3dd, 0xe3f2, 0xe3de, 0xbb65, 0xe3db, 0xe3e4, 0xe3dc,
+  0xbb67, 0xe3d6, 0xe3f1, 0xbb68, 0xe3ee, 0xe3ef, 0xe3d7, 0xbb6d,
+  0xe3e6, 0xe3e0, 0xe3e7, 0xe3da, 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5,
+  0xbb69, 0xe3ec, 0xbb6c, 0xe3f0, 0xe3ea, 0xbb66, 0xe3e8, 0xe3e2,
+  0xbb64, 0xe3d9, 0xe3e1, 0xe3ed, 0xe3df, 0xe3e3, 0xbdc1, 0xdfe9,
+  0xe7b2, 0xe7bb, 0xe7b1, 0xe7ad, 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b,
+  0xe7a1, 0xbdc0, 0xe7a7, 0xbdbf, 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4,
+  0xe7ae, 0xe7b3, 0xbdbb, 0xe7ab, 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba,
+  0xbdbc, 0xe7bf, 0xbdbe, 0xe7c0, 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af,
+  0xe7b8, 0xe7b5, 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, 0xbdbd,
+  0xeb64, 0xe7b7, 0xe7bc, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67,
+  0xeb65, 0xeb60, 0xeb6f, 0xbfc4, 0xeb5c, 0xeb68, 0xeb69, 0xeb5f,
+  0xeb5e, 0xeb6c, 0xeb62, 0xeb5d, 0xeb63, 0xeb6e, 0xeb5b, 0xeb6d,
+  0xeb6a, 0xbfc2, 0xbfc1, 0xbfc3, 0xeb66, 0xf0cb, 0xee59, 0xc1b1,
+  0xee5d, 0xee5a, 0xee61, 0xee67, 0xee5c, 0xee70, 0xc1ae, 0xee6a,
+  0xee5f, 0xee6b, 0xee66, 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60,
+  0xee6e, 0xee58, 0xee6c, 0xc1ac, 0xee64, 0xee63, 0xee68, 0xee5b,
+  0xc1b0, 0xc1b4, 0xee62, 0xee69, 0xc1b5, 0xee65, 0xc1ad, 0xc1af,
+  0xf0c7, 0xf0c5, 0xf0cc, 0xf0c9, 0xf0cd, 0xf0be, 0xf0c6, 0xf0d1,
+  0xee6f, 0xf0c2, 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4, 0xf0c1,
+  0xf0bc, 0xf0bb, 0xf0d0, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8, 0xc2cc,
+  0xc2ce, 0xf0c3, 0xf0cf, 0xf2de, 0xf2df, 0xc3c9, 0xf2dc, 0xc3c6,
+  0xf2e4, 0xc3ca, 0xf2e6, 0xf2db, 0xf0ce, 0xf2e8, 0xf2dd, 0xc3c7,
+  0xf2e3, 0xf2e5, 0xf2e0, 0xf2e7, 0xf2e2, 0xf2e1, 0xc3c8, 0xf4c5,
+  0xf4c6, 0xf4c8, 0xc4ae, 0xc4af, 0xf4c9, 0xf4c7, 0xf4c4, 0xf642,
+  0xf645, 0xf641, 0xc4fa, 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644,
+  0xf751, 0xf74f, 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0xf7f9,
+  0xf7d7, 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0xf8bf, 0xc5fa, 0xf8be,
+  0xf8bd, 0xc5fb, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, 0xa6e5,
+  0xd0aa, 0xd3cf, 0xd3d0, 0xdbc0, 0xf647, 0xf8c0, 0xa6e6, 0xad6c,
+  0xd0ab, 0xd7b1, 0xb34e, 0xdbc2, 0xdbc1, 0xb5f3, 0xb8c5, 0xe7c1,
+  0xbdc3, 0xbdc4, 0xbfc5, 0xc5fc, 0xa6e7, 0xd0ac, 0xaaed, 0xd0ae,
+  0xd0ad, 0xad6d, 0xd3d1, 0xd3d8, 0xb049, 0xd3d6, 0xd3d4, 0xd3db,
+  0xd3d2, 0xd3d3, 0xb04a, 0xb04e, 0xd3dc, 0xb04d, 0xd3da, 0xd3d7,
+  0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0xb350, 0xd7b2, 0xb355, 0xd7c2,
+  0xb354, 0xd7c4, 0xd7b8, 0xb352, 0xd7c3, 0xd7b3, 0xb353, 0xd7bf,
+  0xd7bb, 0xd7bd, 0xd7b7, 0xd7be, 0xb34f, 0xd7ba, 0xd7b9, 0xd7b5,
+  0xd7c0, 0xd7bc, 0xd7b4, 0xd7b6, 0xb351, 0xd7c1, 0xb5f6, 0xdbcd,
+  0xdbc9, 0xdbcb, 0xdbc6, 0xdbc5, 0xdbc3, 0xdbca, 0xdbcc, 0xdbc8,
+  0xdbc7, 0xb5f4, 0xb5f5, 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3,
+  0xdff4, 0xdff9, 0xb8cf, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, 0xb8ca,
+  0xb8c8, 0xdff7, 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, 0xb8cc,
+  0xe3f6, 0xbb74, 0xe442, 0xe441, 0xe3fb, 0xbb76, 0xe440, 0xe3f7,
+  0xe3f8, 0xbb6e, 0xbb70, 0xe3fd, 0xe3f5, 0xbb72, 0xbb71, 0xe3f9,
+  0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0xdbce, 0xbb6f, 0xe7c2, 0xe7c9,
+  0xbdc6, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0xe7cc, 0xbdc5, 0xe7cb,
+  0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6, 0xe7c7, 0xe7c8,
+  0xbb75, 0xeb70, 0xeb7c, 0xbfca, 0xeb77, 0xeb79, 0xbfc8, 0xeb71,
+  0xeb75, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b, 0xeb73, 0xeb74, 0xeb7a,
+  0xeb72, 0xeb76, 0xbfc7, 0xee72, 0xee71, 0xc1b7, 0xee77, 0xc1b9,
+  0xc1b6, 0xee73, 0xc1ba, 0xee74, 0xee75, 0xee78, 0xc1b8, 0xf0d6,
+  0xf0d9, 0xf0d3, 0xf0d5, 0xf0d4, 0xf0d7, 0xf0d8, 0xee76, 0xf0d2,
+  0xc3cd, 0xf2ec, 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0,
+  0xc3ce, 0xc3cc, 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0xf4cb,
+  0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, 0xf752,
+  0xc5a7, 0xf7fd, 0xf7fc, 0xf7fb, 0xf948, 0xf949, 0xf94b, 0xf94a,
+  0xca50, 0xa6e8, 0xad6e, 0xd7c5, 0xb5f7, 0xdffa, 0xc2d0, 0xf2f2,
+  0xa8a3, 0xb357, 0xb356, 0xdbd0, 0xb5f8, 0xdbd2, 0xdbd1, 0xdffb,
+  0xb8d0, 0xe443, 0xe446, 0xe445, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf,
+  0xbfcc, 0xbfcb, 0xc1bb, 0xee79, 0xee7b, 0xee7a, 0xc2d1, 0xf2f4,
+  0xf2f3, 0xf4cc, 0xc4b1, 0xc4fd, 0xf754, 0xf753, 0xc65b, 0xa8a4,
+  0xd0af, 0xad6f, 0xd7c8, 0xd7c6, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043,
+  0xdbd3, 0xdffc, 0xe041, 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd,
+  0xe044, 0xe449, 0xe447, 0xe448, 0xe7d3, 0xe7d1, 0xe7d2, 0xeb7d,
+  0xee7c, 0xee7d, 0xc2d2, 0xf2f5, 0xf4cd, 0xc4b2, 0xf64c, 0xf755,
+  0xc5a9, 0xf7fe, 0xf94c, 0xa8a5, 0xad71, 0xad72, 0xd0b0, 0xd0b1,
+  0xad70, 0xb054, 0xb052, 0xb051, 0xb058, 0xb050, 0xb059, 0xd3dd,
+  0xb056, 0xb053, 0xb057, 0xb055, 0xb04f, 0xb35f, 0xb359, 0xd7cc,
+  0xb35e, 0xb360, 0xb35a, 0xb35b, 0xd7ca, 0xb358, 0xd7cb, 0xb35d,
+  0xd7c9, 0xb35c, 0xb644, 0xb646, 0xdbd8, 0xb645, 0xb5f9, 0xb5fd,
+  0xb8e4, 0xe049, 0xdbda, 0xb5fe, 0xdbdd, 0xdbde, 0xb643, 0xdbe0,
+  0xdbe2, 0xdbe3, 0xdbd7, 0xdbd6, 0xdbe4, 0xb642, 0xdbe1, 0xdbdf,
+  0xb640, 0xb5fb, 0xb647, 0xdbdb, 0xdbdc, 0xdbd9, 0xb641, 0xb5fc,
+  0xb5fa, 0xe048, 0xb8df, 0xb8da, 0xb8d5, 0xb8e5, 0xb8d6, 0xb8d2,
+  0xb8e1, 0xb8de, 0xb8e0, 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050,
+  0xe04d, 0xe045, 0xe04a, 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0xe047,
+  0xe04f, 0xe04b, 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, 0xe44c,
+  0xbb78, 0xbb7b, 0xe44e, 0xbba5, 0xe44d, 0xbb7d, 0xbdcf, 0xe44f,
+  0xbba4, 0xe44b, 0xbba6, 0xbb79, 0xb8db, 0xbb7c, 0xbb7a, 0xbb7e,
+  0xbba2, 0xbb77, 0xbba7, 0xbba3, 0xbba1, 0xe44a, 0xbdd6, 0xbdd2,
+  0xbdd9, 0xe7d6, 0xbdda, 0xe7e2, 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd,
+  0xbdd5, 0xe7de, 0xbdd4, 0xe7e1, 0xbdce, 0xe7df, 0xe7d5, 0xbdcd,
+  0xebaa, 0xbdd3, 0xbdd0, 0xbdd8, 0xe7d4, 0xe7d8, 0xbdcc, 0xe7d7,
+  0xe7d9, 0xe7da, 0xbdd7, 0xe7dc, 0xe7e0, 0xe7e4, 0xbddb, 0xbfd2,
+  0xeba5, 0xebab, 0xeba8, 0xeb7e, 0xebac, 0xeba1, 0xeba7, 0xbfcd,
+  0xbfd3, 0xebad, 0xbfcf, 0xbfd9, 0xbfd4, 0xebaf, 0xeba9, 0xbfd0,
+  0xeba2, 0xbfda, 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, 0xbdd1, 0xbfce,
+  0xebb0, 0xbfdc, 0xbfd5, 0xebae, 0xbfd1, 0xbfd6, 0xbfd7, 0xc1c3,
+  0xeea4, 0xeead, 0xeeaa, 0xeeac, 0xc1c0, 0xeea5, 0xeeab, 0xc1bc,
+  0xeea7, 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2,
+  0xc1bd, 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e,
+  0xc1c1, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, 0xc2d3,
+  0xf0da, 0xc2d6, 0xc2d5, 0xf0e9, 0xf0e1, 0xf0de, 0xf0e4, 0xf0dd,
+  0xf0df, 0xf0e8, 0xf0e6, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2, 0xf0ec,
+  0xf0e3, 0xf2f9, 0xc3cf, 0xf341, 0xf64f, 0xc3d6, 0xf0e0, 0xf2f7,
+  0xc3d2, 0xf2f8, 0xf2fd, 0xc3d4, 0xc3d5, 0xf2f6, 0xf340, 0xf342,
+  0xf2fa, 0xf2fc, 0xf2fe, 0xf2fb, 0xf343, 0xc3d1, 0xc3d7, 0xc3d3,
+  0xc3d0, 0xf4d0, 0xc4b7, 0xf4ce, 0xf4d2, 0xf4d3, 0xc4b5, 0xf4d4,
+  0xf4d1, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0xc4b6, 0xc4b3, 0xc4fe,
+  0xc540, 0xf64e, 0xf64d, 0xf650, 0xf651, 0xc541, 0xf756, 0xf75b,
+  0xc5aa, 0xf758, 0xf757, 0xf75a, 0xf759, 0xf843, 0xc5dc, 0xf842,
+  0xf840, 0xf841, 0xc5fe, 0xc5fd, 0xf8c1, 0xf8c2, 0xc640, 0xf94d,
+  0xf94e, 0xc667, 0xc66d, 0xf9a9, 0xf9c8, 0xa8a6, 0xd7cd, 0xd7ce,
+  0xe052, 0xe450, 0xe7e5, 0xc1c6, 0xc1c5, 0xf0ee, 0xf344, 0xf844,
+  0xa8a7, 0xd3de, 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6,
+  0xbddd, 0xeeb1, 0xc2d7, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, 0xb362,
+  0xd7cf, 0xd7d0, 0xdbe5, 0xb648, 0xb8e6, 0xe056, 0xe055, 0xe057,
+  0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0xeeb5, 0xeeb2,
+  0xeeb4, 0xeeb3, 0xc1c7, 0xf0ef, 0xf346, 0xf345, 0xcba4, 0xb05c,
+  0xb05b, 0xd3e0, 0xd7d1, 0xdbe7, 0xdbe6, 0xb649, 0xe059, 0xe05a,
+  0xe058, 0xb8e8, 0xb8e7, 0xbbaa, 0xbba9, 0xe7e7, 0xebb3, 0xebb1,
+  0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0xf0f2, 0xf0f1, 0xf0f0, 0xf347,
+  0xf9aa, 0xa8a9, 0xad73, 0xad74, 0xb05d, 0xb05e, 0xd3e2, 0xd3e1,
+  0xd7d2, 0xb368, 0xb366, 0xb363, 0xb367, 0xb365, 0xb364, 0xb64a,
+  0xdbea, 0xb8ed, 0xb64c, 0xb651, 0xdbec, 0xb653, 0xb652, 0xb655,
+  0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d, 0xdbe9, 0xb654, 0xb650,
+  0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0, 0xb8ea, 0xb8eb, 0xb8e9,
+  0xe05b, 0xe454, 0xbbac, 0xbbad, 0xbbab, 0xe453, 0xe455, 0xe7ea,
+  0xe7ec, 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, 0xbddf, 0xbde9, 0xbde5,
+  0xbde6, 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, 0xe7eb, 0xbde8, 0xbde3,
+  0xbde4, 0xebb5, 0xebb7, 0xebb6, 0xebb8, 0xbfe0, 0xebb4, 0xc1cb,
+  0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9, 0xf0f3, 0xf0f6, 0xf0f5,
+  0xf0f4, 0xc2d8, 0xf348, 0xf349, 0xc3d8, 0xf34a, 0xc3d9, 0xc4ba,
+  0xc4b9, 0xf652, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, 0xf845,
+  0xc642, 0xa8aa, 0xb36a, 0xb369, 0xe05c, 0xe05d, 0xbbae, 0xebb9,
+  0xbdea, 0xebba, 0xeeb9, 0xa8ab, 0xd0b2, 0xad76, 0xad75, 0xd3e3,
+  0xb05f, 0xd3e4, 0xd7d5, 0xd7d4, 0xd7d3, 0xdbee, 0xb658, 0xdbed,
+  0xb657, 0xdbef, 0xb656, 0xe05f, 0xe062, 0xe060, 0xe061, 0xe065,
+  0xe05e, 0xe066, 0xe063, 0xe064, 0xbbb0, 0xe456, 0xbbaf, 0xe7f2,
+  0xe7f0, 0xbdeb, 0xe7ef, 0xe7f1, 0xbdec, 0xebbb, 0xebbc, 0xc1cd,
+  0xf34c, 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, 0xf96f, 0xa8ac,
+  0xad77, 0xd3e5, 0xd3e7, 0xd3e6, 0xd7d8, 0xb36c, 0xd7d6, 0xb36b,
+  0xd7d9, 0xd7da, 0xd7d7, 0xdbfb, 0xb660, 0xdbf3, 0xdbf9, 0xb65b,
+  0xb65e, 0xdbf2, 0xb659, 0xdbf6, 0xe06c, 0xb65d, 0xdbf1, 0xdbf7,
+  0xdbf4, 0xdbfa, 0xdbf0, 0xdbf8, 0xb65c, 0xb65f, 0xdbf5, 0xb65a,
+  0xb8f2, 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8, 0xb8f9, 0xe070,
+  0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0xe06b, 0xb8f4, 0xe067,
+  0xe06a, 0xe071, 0xb8f5, 0xe073, 0xb8f6, 0xbbb1, 0xe45b, 0xe461,
+  0xe459, 0xe462, 0xe458, 0xe45d, 0xe463, 0xe460, 0xe45f, 0xe45e,
+  0xe457, 0xe45c, 0xe45a, 0xbdf1, 0xbdee, 0xe7fb, 0xe841, 0xe843,
+  0xe840, 0xe7f8, 0xe7fa, 0xe845, 0xe842, 0xe7fc, 0xe846, 0xe7f9,
+  0xe844, 0xbdef, 0xbdf5, 0xbdf3, 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4,
+  0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe, 0xbdf2, 0xbded, 0xe7f7, 0xebc6,
+  0xbfe2, 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0xebbf, 0xbfe5, 0xebc3,
+  0xebc4, 0xebbe, 0xebc7, 0xebc0, 0xebc5, 0xbfe4, 0xbfe1, 0xebc1,
+  0xeebf, 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb, 0xeeba,
+  0xeebd, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa, 0xc2d9, 0xf141,
+  0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, 0xf0f9, 0xf142, 0xf0f8,
+  0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, 0xf144, 0xf352, 0xc3de,
+  0xf34f, 0xf353, 0xc3db, 0xf351, 0xc3e0, 0xc3dd, 0xf350, 0xc3df,
+  0xf354, 0xc3da, 0xc4bc, 0xc4be, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc,
+  0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0xf761,
+  0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, 0xf846,
+  0xf75f, 0xf8c6, 0xf8c3, 0xf8c4, 0xf8c5, 0xc65c, 0xf951, 0xf950,
+  0xf94f, 0xf970, 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060, 0xb8fa,
+  0xbdf6, 0xebc8, 0xc2df, 0xf355, 0xf9ac, 0xa8ae, 0xaaee, 0xad79,
+  0xad78, 0xb063, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0xd7df, 0xd7db,
+  0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, 0xd7e0, 0xd7e1, 0xdc43,
+  0xdc41, 0xdc45, 0xdc46, 0xdc4c, 0xdc48, 0xdc4a, 0xdc42, 0xdbfc,
+  0xdc49, 0xdc4b, 0xdc44, 0xdc47, 0xdbfd, 0xb662, 0xdc40, 0xdbfe,
+  0xb661, 0xb663, 0xb8fd, 0xe075, 0xe077, 0xe076, 0xe07b, 0xb8fb,
+  0xe078, 0xe074, 0xe079, 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0xe467,
+  0xe466, 0xe464, 0xe465, 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d,
+  0xe84e, 0xe849, 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9,
+  0xe84b, 0xe84c, 0xe848, 0xbe40, 0xbdfb, 0xbdfa, 0xbdfc, 0xe847,
+  0xebca, 0xbfe8, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce,
+  0xbfe9, 0xebcd, 0xbfe7, 0xc1d3, 0xc1d6, 0xeec1, 0xc1d4, 0xeec0,
+  0xc1d2, 0xc1d5, 0xf146, 0xf147, 0xf148, 0xc2e0, 0xf149, 0xc2e1,
+  0xc3e2, 0xf358, 0xf359, 0xf357, 0xf356, 0xf35a, 0xc3e1, 0xf4dd,
+  0xf4db, 0xf4dc, 0xf4de, 0xf4da, 0xf4df, 0xf658, 0xf659, 0xf657,
+  0xc546, 0xf764, 0xc5af, 0xf765, 0xf848, 0xf847, 0xa8af, 0xb664,
+  0xb940, 0xbbb6, 0xbfec, 0xbfeb, 0xc3e3, 0xc47c, 0xc547, 0xa8b0,
+  0xb064, 0xb941, 0xf35b, 0xcba6, 0xa8b1, 0xa8b4, 0xa8b3, 0xa8b2,
+  0xcba5, 0xcdcd, 0xcdcf, 0xaaef, 0xaaf1, 0xcdcc, 0xcdce, 0xaaf0,
+  0xcdd1, 0xcdd0, 0xcdd2, 0xd0b6, 0xd0b4, 0xad7c, 0xd0b3, 0xada3,
+  0xad7e, 0xad7b, 0xada4, 0xad7d, 0xada2, 0xada1, 0xd0b5, 0xad7a,
+  0xb06a, 0xd3eb, 0xd3f1, 0xb067, 0xb06e, 0xb069, 0xd3ee, 0xd3f0,
+  0xb06c, 0xd3ea, 0xd3ed, 0xb068, 0xb065, 0xd3ec, 0xb06b, 0xd3ef,
+  0xb06d, 0xb066, 0xd7e3, 0xd7e6, 0xb370, 0xb37a, 0xb376, 0xd7e4,
+  0xb37e, 0xb377, 0xb37c, 0xb372, 0xb36f, 0xb371, 0xb37d, 0xd7e5,
+  0xb375, 0xb378, 0xb374, 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2,
+  0xdc4d, 0xb665, 0xdc4f, 0xb667, 0xb669, 0xdc4e, 0xb666, 0xb66a,
+  0xb668, 0xb947, 0xe0a3, 0xb94f, 0xe07e, 0xb950, 0xb945, 0xe0a1,
+  0xb94a, 0xe0a2, 0xb943, 0xb942, 0xb94d, 0xb94c, 0xb94b, 0xb949,
+  0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0xbbb8, 0xbbbb, 0xbbbf,
+  0xbbb9, 0xbbbe, 0xbbbc, 0xbbb7, 0xbbbd, 0xbbba, 0xe852, 0xbe43,
+  0xbe41, 0xe853, 0xbe44, 0xbe42, 0xe851, 0xe850, 0xbff0, 0xe84f,
+  0xbfee, 0xbfed, 0xebd0, 0xbe45, 0xbfef, 0xebd1, 0xbff2, 0xebd2,
+  0xbff1, 0xc1d8, 0xeec3, 0xc1d7, 0xc1dc, 0xc1da, 0xc1db, 0xc2e3,
+  0xc1d9, 0xeec2, 0xebd3, 0xc2e2, 0xc2e4, 0xc3e4, 0xc3e5, 0xf4e0,
+  0xc5de, 0xc5dd, 0xa8b6, 0xca55, 0xb06f, 0xca52, 0xca53, 0xca51,
+  0xca54, 0xcbaa, 0xcba7, 0xcbac, 0xcba8, 0xa8b7, 0xa8ba, 0xcba9,
+  0xa8b9, 0xcbab, 0xa8b8, 0xcdd5, 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6,
+  0xcdd4, 0xaaf2, 0xaaf5, 0xaaf3, 0xd0b8, 0xd0bc, 0xd0b9, 0xada7,
+  0xada8, 0xd0bb, 0xd0bd, 0xd0bf, 0xada5, 0xd0be, 0xada6, 0xd7ee,
+  0xd0ba, 0xd3f2, 0xd3fb, 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc,
+  0xb071, 0xd3f7, 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8,
+  0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0xd7e8, 0xd7ea,
+  0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0xdc56, 0xebd4, 0xdc57,
+  0xdc54, 0xb3a3, 0xb66e, 0xdc53, 0xdc59, 0xdc58, 0xb66b, 0xdc5c,
+  0xdc52, 0xdc5b, 0xdc50, 0xdc5a, 0xdc55, 0xb66d, 0xe0aa, 0xe0a5,
+  0xe0ab, 0xe0a6, 0xe0a4, 0xe0a7, 0xb951, 0xe0a9, 0xe0a8, 0xb952,
+  0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c,
+  0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0xe859, 0xbe48, 0xf14a,
+  0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, 0xbe46,
+  0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0xeec4, 0xc1dd,
+  0xf14b, 0xf14c, 0xf14d, 0xf35d, 0xf35c, 0xf4e2, 0xf4e1, 0xf65b,
+  0xf65c, 0xf65a, 0xf766, 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075,
+  0xb074, 0xd440, 0xd441, 0xd3fe, 0xb073, 0xd7f5, 0xd7f6, 0xd7f2,
+  0xb3a4, 0xd7f3, 0xd7f4, 0xdc5f, 0xdc61, 0xdc5d, 0xdc60, 0xb66f,
+  0xdc5e, 0xb670, 0xdd73, 0xb955, 0xb954, 0xb953, 0xe0ac, 0xe0ad,
+  0xe473, 0xe475, 0xbbc6, 0xbbc3, 0xbbc5, 0xbbc4, 0xe474, 0xe472,
+  0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a,
+  0xbe4b, 0xe85d, 0xbe4c, 0xebdb, 0xebdc, 0xebd9, 0xebda, 0xbff4,
+  0xebd8, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb, 0xc1df, 0xeec9,
+  0xeecc, 0xeeca, 0xeec6, 0xc1de, 0xf14f, 0xf150, 0xf14e, 0xf152,
+  0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151, 0xf35e, 0xc3e6, 0xf4e5,
+  0xf4e6, 0xc4bf, 0xf4e4, 0xf4e3, 0xf65d, 0xc548, 0xf849, 0xf8c8,
+  0xf8c7, 0xc643, 0xc65d, 0xf8c9, 0xf971, 0xc66f, 0xa8bc, 0xaaf6,
+  0xb956, 0xc4c0, 0xa8bd, 0xadab, 0xb3a5, 0xb671, 0xc2e7, 0xaaf7,
+  0xd0c1, 0xd0c0, 0xd442, 0xb078, 0xb076, 0xb07a, 0xd444, 0xb079,
+  0xb077, 0xd443, 0xb3a8, 0xd7fc, 0xb3a7, 0xb3a9, 0xd842, 0xb3ab,
+  0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0xd7f9, 0xd7fa, 0xd7f8,
+  0xb3a6, 0xd841, 0xd7fb, 0xd7fd, 0xdc6d, 0xdc6c, 0xdc6a, 0xdc62,
+  0xdc71, 0xdc65, 0xdc6f, 0xdc76, 0xdc6e, 0xb679, 0xb675, 0xdc63,
+  0xdc69, 0xb677, 0xdc68, 0xb678, 0xb67a, 0xdc6b, 0xb672, 0xb673,
+  0xdc77, 0xdc75, 0xdc74, 0xdc66, 0xdc72, 0xb676, 0xb674, 0xdc73,
+  0xdc64, 0xdc67, 0xdc70, 0xe4ba, 0xe0b7, 0xe0b0, 0xe0c3, 0xe0cc,
+  0xe0b3, 0xb961, 0xe0c0, 0xb957, 0xb959, 0xb965, 0xe0b1, 0xb95a,
+  0xb95c, 0xb966, 0xb95b, 0xb964, 0xe0b9, 0xe0ae, 0xb962, 0xe0b8,
+  0xb95e, 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, 0xe0c6, 0xb960, 0xe0af,
+  0xe0c9, 0xe0c4, 0xe0cb, 0xb958, 0xb967, 0xb95d, 0xe0b5, 0xe0bd,
+  0xe0c1, 0xe0c5, 0xb95f, 0xe0b4, 0xe0b2, 0xe0be, 0xe0bb, 0xe0ba,
+  0xe0bf, 0xe0c2, 0xe0c7, 0xe478, 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc,
+  0xbbd0, 0xe4ad, 0xe4b5, 0xe4a6, 0xbbc8, 0xe4aa, 0xe0b6, 0xbbc9,
+  0xe4b1, 0xe4b6, 0xe4ae, 0xe4b0, 0xe4b9, 0xe4b2, 0xe47e, 0xe4a9,
+  0xbbd1, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb, 0xe4a5, 0xbbca, 0xe4b3,
+  0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0xe47b, 0xe4af, 0xe4ac, 0xe4a7,
+  0xe477, 0xe476, 0xe4a1, 0xe4b4, 0xbbcf, 0xe4b7, 0xe47d, 0xe4a3,
+  0xbe52, 0xbe5a, 0xbe55, 0xe8a4, 0xe8a1, 0xe867, 0xbe50, 0xbe4f,
+  0xbe56, 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e, 0xe8a3,
+  0xbe58, 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877, 0xe875,
+  0xe868, 0xe862, 0xe87d, 0xbe57, 0xe87e, 0xe878, 0xe86d, 0xe86b,
+  0xe866, 0xe86e, 0xe87b, 0xe86a, 0xe87a, 0xe8a2, 0xbe53, 0xe876,
+  0xe87c, 0xe872, 0xe86c, 0xbe51, 0xe4a8, 0xe870, 0xbe59, 0xe869,
+  0xebf4, 0xbff7, 0xebf3, 0xebf0, 0xec44, 0xbffb, 0xec41, 0xebf8,
+  0xec43, 0xebe9, 0xebf6, 0xbffd, 0xebe1, 0xebdf, 0xec42, 0xec40,
+  0xebfe, 0xebed, 0xebec, 0xebe2, 0xc040, 0xebe8, 0xebf2, 0xebfd,
+  0xc043, 0xec45, 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0xebef, 0xebde,
+  0xebe0, 0xbff5, 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041,
+  0xebdd, 0xc1e3, 0xebf9, 0xebfc, 0xbffc, 0xebeb, 0xc044, 0xbff9,
+  0xbff8, 0xebf5, 0xebfb, 0xbff6, 0xebe4, 0xebfa, 0xebe5, 0xebea,
+  0xeed2, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3,
+  0xeed8, 0xeed9, 0xeee2, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, 0xeed4,
+  0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0xeee8, 0xeeda, 0xeee7, 0xeee9,
+  0xeed0, 0xc1e6, 0xeeea, 0xeede, 0xc1ea, 0xeedb, 0xc1ec, 0xeee4,
+  0xc1e4, 0xeed6, 0xeee5, 0xeedf, 0xebe3, 0xeee6, 0xeed3, 0xc1e9,
+  0xeeeb, 0xc1e2, 0xeece, 0xf160, 0xf159, 0xc2e9, 0xf154, 0xf163,
+  0xf15b, 0xeedc, 0xf165, 0xf155, 0xc2e8, 0xf15f, 0xc2ea, 0xc2f2,
+  0xc2f0, 0xf161, 0xc2f1, 0xf157, 0xf158, 0xf15d, 0xf162, 0xeecd,
+  0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e, 0xf15a, 0xf168, 0xf36a,
+  0xf15c, 0xc2ee, 0xc2ed, 0xeecf, 0xc2ef, 0xf164, 0xf166, 0xc2ec,
+  0xf169, 0xf153, 0xf156, 0xf373, 0xf363, 0xc3eb, 0xf371, 0xf361,
+  0xc3ec, 0xf36c, 0xf368, 0xc3f1, 0xf372, 0xf362, 0xf365, 0xc3e9,
+  0xf374, 0xf36d, 0xf370, 0xc3ef, 0xc3f4, 0xc3f2, 0xf369, 0xf364,
+  0xc3ed, 0xc3ee, 0xf360, 0xc3ea, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3,
+  0xf36b, 0xf375, 0xc3f5, 0xf367, 0xf36e, 0xf4f3, 0xf542, 0xf4f5,
+  0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed, 0xf4fe,
+  0xf4f4, 0xc4c2, 0xf544, 0xf4f6, 0xf4fb, 0xf4fd, 0xf4e7, 0xf541,
+  0xf4f2, 0xf4f7, 0xf4eb, 0xf4ef, 0xf543, 0xf4f9, 0xf4e8, 0xf4ec,
+  0xf4ee, 0xf4f8, 0xc4c1, 0xf4f1, 0xf4ea, 0xf4f0, 0xf661, 0xf666,
+  0xc54f, 0xf668, 0xc549, 0xf664, 0xf66a, 0xc54e, 0xc54a, 0xc54b,
+  0xf660, 0xf667, 0xc54d, 0xf665, 0xc54c, 0xf65f, 0xf663, 0xf662,
+  0xf65e, 0xf669, 0xc5b1, 0xf76d, 0xf770, 0xf76c, 0xf76e, 0xf76f,
+  0xf769, 0xf76a, 0xf767, 0xf76b, 0xf768, 0xc5b2, 0xc5b3, 0xf84b,
+  0xf84d, 0xf84c, 0xf84e, 0xc5e0, 0xf84a, 0xc5df, 0xc5e1, 0xf8cb,
+  0xf8cc, 0xc644, 0xf8ca, 0xf953, 0xf952, 0xf954, 0xc65f, 0xf955,
+  0xc65e, 0xf956, 0xf972, 0xf975, 0xf974, 0xc668, 0xf973, 0xc672,
+  0xc670, 0xc671, 0xc677, 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0xaaf8,
+  0xd844, 0xdc78, 0xe8a5, 0xf376, 0xaaf9, 0xadac, 0xb07b, 0xd845,
+  0xd846, 0xb3ac, 0xb67d, 0xdc7a, 0xdc79, 0xb6a3, 0xb67c, 0xdc7b,
+  0xb67e, 0xb6a2, 0xb6a1, 0xb67b, 0xb968, 0xe0d0, 0xe0ce, 0xe0cf,
+  0xe0cd, 0xbbd2, 0xbbd5, 0xbbd7, 0xbbd6, 0xbbd3, 0xbbd4, 0xe8a7,
+  0xe8a6, 0xbe5b, 0xe8a8, 0xe8a9, 0xbe5c, 0xec4d, 0xec4b, 0xeef3,
+  0xec49, 0xec4a, 0xc046, 0xec46, 0xec4e, 0xec48, 0xec4c, 0xeeef,
+  0xeef1, 0xeef2, 0xc1f3, 0xeeee, 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0,
+  0xc1f1, 0xec47, 0xc2f5, 0xf16e, 0xf16c, 0xf16d, 0xc2f3, 0xc2f6,
+  0xc2f4, 0xf377, 0xf378, 0xc3f6, 0xf545, 0xf547, 0xf546, 0xc4c4,
+  0xc550, 0xf66d, 0xf66c, 0xf66b, 0xaafa, 0xc9aa, 0xca58, 0xa6e9,
+  0xca56, 0xca59, 0xca57, 0xcbae, 0xa8c1, 0xa8c2, 0xcbb0, 0xa8bf,
+  0xcbaf, 0xcbad, 0xa8c0, 0xa8be, 0xcdd8, 0xcddb, 0xaafd, 0xcdda,
+  0xcdd9, 0xaafc, 0xaafb, 0xab40, 0xcddc, 0xaafe, 0xd0c6, 0xadae,
+  0xadaf, 0xadb0, 0xd0c7, 0xd0c3, 0xadad, 0xd0c4, 0xd0c5, 0xd0c2,
+  0xb0a4, 0xb0a1, 0xd445, 0xb0a2, 0xb0a5, 0xd446, 0xb07e, 0xb07c,
+  0xb07d, 0xb0a3, 0xb3ad, 0xd849, 0xb3b5, 0xd848, 0xd84b, 0xb3b1,
+  0xd84a, 0xb6ab, 0xb3af, 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, 0xb3b0,
+  0xd847, 0xb6a7, 0xdc7d, 0xdca3, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9,
+  0xdc7c, 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0xb6aa, 0xb6a5, 0xe0d3,
+  0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0xe0d4, 0xb969, 0xbbd8, 0xbbda,
+  0xbbd9, 0xe4bb, 0xe4bc, 0xe8ab, 0xe8aa, 0xc047, 0xc048, 0xec4f,
+  0xc049, 0xeef6, 0xeef4, 0xeef5, 0xc1f4, 0xf16f, 0xc3f7, 0xc1f5,
+  0xab41, 0xb0a6, 0xd447, 0xd84c, 0xb3b6, 0xb6ad, 0xdca4, 0xdca6,
+  0xb6af, 0xb6ae, 0xb6b0, 0xb6b1, 0xdca5, 0xb96e, 0xb96f, 0xb96d,
+  0xbbdb, 0xb96c, 0xe0d5, 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6,
+  0xf170, 0xf174, 0xc2f9, 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb,
+  0xf173, 0xf379, 0xc2f7, 0xc3f8, 0xf8cd, 0xab42, 0xb3b8, 0xb3b7,
+  0xb6b2, 0xdca8, 0xdca7, 0xb6b3, 0xe0d9, 0xb973, 0xb970, 0xe0d8,
+  0xb972, 0xe0d6, 0xb971, 0xe0d7, 0xe4bd, 0xbbdd, 0xe8af, 0xbe5d,
+  0xe8ad, 0xbe5e, 0xbe5f, 0xe8ae, 0xbe60, 0xec51, 0xc04e, 0xc04b,
+  0xc050, 0xec53, 0xc04c, 0xec52, 0xc04f, 0xc04d, 0xeef9, 0xeefb,
+  0xc1f7, 0xeefa, 0xc1f8, 0xeef8, 0xeef7, 0xf177, 0xf176, 0xc2fc,
+  0xf178, 0xf37e, 0xc3fa, 0xf37d, 0xf37a, 0xc3f9, 0xf37b, 0xf37c,
+  0xf548, 0xf549, 0xc4c5, 0xc553, 0xf66e, 0xc551, 0xc552, 0xf66f,
+  0xc5b4, 0xc5b5, 0xf771, 0xc645, 0xf8cf, 0xc647, 0xf8ce, 0xf8d0,
+  0xc646, 0xf957, 0xf9ad, 0xab43, 0xb974, 0xe4be, 0xe8b0, 0xc051,
+  0xc052, 0xab44, 0xbe61, 0xc3fb, 0xadb1, 0xc053, 0xc5e2, 0xadb2,
+  0xd84d, 0xdca9, 0xdcab, 0xdcaa, 0xe0dd, 0xe0da, 0xb975, 0xb976,
+  0xe0db, 0xe0dc, 0xe4c0, 0xe4c5, 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8,
+  0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2, 0xe4c6, 0xbbdf, 0xe8b3, 0xe8b1,
+  0xbe63, 0xbe62, 0xe8b2, 0xbe64, 0xec56, 0xec55, 0xc054, 0xec54,
+  0xeefc, 0xeefe, 0xef41, 0xef40, 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd,
+  0xf17d, 0xf1a2, 0xc2fe, 0xf17b, 0xf17e, 0xf17c, 0xf179, 0xc340,
+  0xf17a, 0xf3a1, 0xf3a3, 0xf3a2, 0xf54a, 0xf54b, 0xf670, 0xc5b7,
+  0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, 0xc669, 0xadb3, 0xb6b4,
+  0xe4ca, 0xe4c9, 0xe8b5, 0xe8b4, 0xc1fa, 0xef43, 0xef42, 0xf1a5,
+  0xf1a3, 0xf1a6, 0xf1a4, 0xc3fc, 0xf3a4, 0xf3a5, 0xf3a6, 0xf671,
+  0xf772, 0xf8d2, 0xadb4, 0xec57, 0xef44, 0xadb5, 0xbbe0, 0xec58,
+  0xc341, 0xf1a7, 0xc3fd, 0xf54c, 0xf54d, 0xc554, 0xf851, 0xadb6,
+  0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, 0xb6b7, 0xb97a,
+  0xb97c, 0xe0df, 0xe0e0, 0xe0de, 0xb977, 0xb978, 0xb97b, 0xb979,
+  0xe4cb, 0xbbe1, 0xbbe2, 0xe8bc, 0xbe67, 0xe8b7, 0xe8b6, 0xe8bb,
+  0xbe65, 0xc05b, 0xe8b8, 0xe8bd, 0xe8ba, 0xe8b9, 0xbe66, 0xc059,
+  0xec5a, 0xc055, 0xec5b, 0xec59, 0xc058, 0xc056, 0xc05a, 0xc057,
+  0xef45, 0xef4a, 0xef46, 0xef49, 0xc1fb, 0xedd4, 0xef48, 0xef47,
+  0xc344, 0xc342, 0xc345, 0xc343, 0xf1a8, 0xf1a9, 0xf1aa, 0xc346,
+  0xf3aa, 0xc440, 0xf3a8, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe, 0xf551,
+  0xf54e, 0xf54f, 0xf550, 0xf672, 0xc556, 0xc555, 0xf774, 0xf773,
+  0xc5b8, 0xc5e3, 0xc649, 0xc660, 0xf958, 0xf9ae, 0xf9af, 0xadb7,
+  0xdcad, 0xe0e1, 0xe4cc, 0xe4cd, 0xbbe3, 0xbbe4, 0xe8be, 0xbe68,
+  0xc1fc, 0xf1ab, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab,
+  0xf675, 0xf552, 0xf553, 0xc4c6, 0xf674, 0xf673, 0xf775, 0xf9b0,
+  0xadb8, 0xadb9, 0xb0a7, 0xd448, 0xd84f, 0xb6b8, 0xb6bb, 0xb6b9,
+  0xdcae, 0xb6bd, 0xb6ba, 0xb6bc, 0xb97e, 0xe0e2, 0xe0e3, 0xe8c0,
+  0xb97d, 0xb9a1, 0xb9a2, 0xe4cf, 0xe4ce, 0xbbe5, 0xbbe6, 0xe4d0,
+  0xe8bf, 0xbbe8, 0xbe69, 0xbbe7, 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a,
+  0xe8c2, 0xe8c5, 0xe8c3, 0xe8c4, 0xbe6c, 0xc061, 0xc05f, 0xc05e,
+  0xec5d, 0xc060, 0xec5c, 0xef4b, 0xec5e, 0xc05d, 0xec5f, 0xef4e,
+  0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, 0xef54, 0xef53, 0xef50,
+  0xef4f, 0xc1fd, 0xf1ae, 0xf1ad, 0xc34a, 0xc348, 0xc349, 0xf1ac,
+  0xf3b1, 0xc443, 0xf3b0, 0xf3af, 0xc444, 0xf558, 0xf557, 0xf555,
+  0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557,
+  0xf676, 0xf556, 0xf777, 0xc5e4, 0xc661, 0xf959, 0xf9b1, 0xadba,
+  0xd850, 0xef55, 0xadbb, 0xe4d2, 0xe4d1, 0xec60, 0xef57, 0xef56,
+  0xc34c, 0xf3b2, 0xf3b3, 0xc4c9, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be,
+  0xe0e4, 0xe0e6, 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0xe4d4,
+  0xe4d6, 0xe4d5, 0xe4d8, 0xbbe9, 0xe4d7, 0xe4d3, 0xe4d9, 0xe8cc,
+  0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, 0xbe6e, 0xbe71, 0xbe73,
+  0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, 0xe8ce, 0xbe74, 0xbe70,
+  0xe8c6, 0xbe6d, 0xbe6f, 0xc063, 0xec66, 0xec64, 0xec63, 0xec69,
+  0xec68, 0xec67, 0xec62, 0xc062, 0xec61, 0xec65, 0xc064, 0xef5a,
+  0xef5e, 0xef5b, 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60,
+  0xef61, 0xc240, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8,
+  0xf1b7, 0xf1b1, 0xf1b5, 0xf1b0, 0xf1b2, 0xc34d, 0xf1af, 0xf1b4,
+  0xf3c0, 0xf3b5, 0xc445, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf, 0xf3b7,
+  0xf3be, 0xf3bb, 0xf3ba, 0xf3bd, 0xf3b8, 0xf3b6, 0xf3bc, 0xf560,
+  0xf55e, 0xc4ca, 0xf55d, 0xf563, 0xf561, 0xc4cb, 0xf55c, 0xf55a,
+  0xf55b, 0xc4cd, 0xf55f, 0xc4cc, 0xf562, 0xf678, 0xf67e, 0xf679,
+  0xc55b, 0xf6a1, 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558,
+  0xf67a, 0xf77d, 0xf7a1, 0xf77e, 0xf77b, 0xc5bb, 0xf778, 0xf77c,
+  0xf7a3, 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, 0xf853,
+  0xc5e5, 0xc5e6, 0xf8d3, 0xc64a, 0xf976, 0xc66a, 0xf9b3, 0xc66b,
+  0xf9b4, 0xf9b5, 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd, 0xb0a9, 0xe0e9,
+  0xe0e8, 0xbbea, 0xbbeb, 0xe4da, 0xe8d2, 0xec6c, 0xbe75, 0xc065,
+  0xec6a, 0xec6d, 0xc066, 0xef64, 0xec6b, 0xf1b9, 0xc34e, 0xf3c1,
+  0xf566, 0xf564, 0xf565, 0xf6a2, 0xc55c, 0xf7a4, 0xc5ea, 0xc5bc,
+  0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0xb0aa, 0xf1ba, 0xd449, 0xb9a6,
+  0xe4db, 0xbbec, 0xe4dc, 0xe8d4, 0xe8d3, 0xc068, 0xbe76, 0xbe77,
+  0xe8d7, 0xe8d6, 0xe8d5, 0xec6e, 0xec71, 0xec70, 0xec6f, 0xc067,
+  0xef68, 0xef66, 0xef65, 0xef67, 0xc34f, 0xf1bc, 0xf1bd, 0xc350,
+  0xf1bb, 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0xf567, 0xf569,
+  0xf568, 0xf6a3, 0xf6a6, 0xf6a4, 0xf6a5, 0xf7a5, 0xc5bd, 0xf854,
+  0xf855, 0xf856, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0xbe78, 0xc069,
+  0xf1be, 0xf7a6, 0xf9c4, 0xd44a, 0xc67b, 0xb0ac, 0xec72, 0xf1bf,
+  0xf3c6, 0xf6a7, 0xf7a7, 0xb0ad, 0xe4dd, 0xe4de, 0xbbed, 0xbbee,
+  0xe8d9, 0xbe7a, 0xbe79, 0xe8d8, 0xef69, 0xf1c0, 0xf1c2, 0xf1c1,
+  0xc353, 0xc352, 0xc351, 0xc55e, 0xf6a8, 0xc55d, 0xf7a9, 0xf7a8,
+  0xc64c, 0xf8d5, 0xb3bd, 0xe0ea, 0xe4e1, 0xe4df, 0xe4e0, 0xe8e2,
+  0xe8dd, 0xe8da, 0xe8e1, 0xe8e3, 0xbe7c, 0xe8e0, 0xe8dc, 0xe8db,
+  0xe8df, 0xe8de, 0xbe7b, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77,
+  0xec73, 0xec79, 0xec74, 0xef72, 0xec75, 0xeca2, 0xec7c, 0xc06a,
+  0xec7b, 0xec7a, 0xec7e, 0xef6a, 0xef6d, 0xef6c, 0xef74, 0xef6f,
+  0xef73, 0xef71, 0xef70, 0xef6e, 0xef6b, 0xc243, 0xc242, 0xc244,
+  0xc241, 0xef75, 0xf1c8, 0xf1cb, 0xf1c9, 0xf1cd, 0xf1ce, 0xf1c6,
+  0xc358, 0xf1c7, 0xf1c5, 0xf1cc, 0xf1c4, 0xf1c3, 0xc357, 0xc355,
+  0xc354, 0xf1ca, 0xf3cf, 0xf3d5, 0xc44a, 0xf3d0, 0xf3d3, 0xf3d7,
+  0xc44b, 0xf3d2, 0xf3ca, 0xf3c9, 0xf3d6, 0xf3cd, 0xf3cb, 0xf3d4,
+  0xf3cc, 0xc449, 0xc448, 0xf3c7, 0xf3c8, 0xf3d1, 0xf3ce, 0xf56c,
+  0xf56f, 0xc356, 0xf56d, 0xf573, 0xf571, 0xf56b, 0xf576, 0xf56a,
+  0xc4cf, 0xf572, 0xf56e, 0xc4ce, 0xf575, 0xf574, 0xf6ab, 0xf6aa,
+  0xf6b1, 0xf6ad, 0xf6b0, 0xc560, 0xf6ae, 0xf6af, 0xf6a9, 0xf6ac,
+  0xc55f, 0xc5bf, 0xf7b4, 0xf7af, 0xf7b3, 0xf7b6, 0xf7b2, 0xf7ae,
+  0xc5c1, 0xf7b1, 0xf7b5, 0xc5c0, 0xf7ac, 0xf570, 0xf7b0, 0xf7ad,
+  0xf7aa, 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860,
+  0xf859, 0xf857, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, 0xf858, 0xf85e,
+  0xf8da, 0xc64d, 0xf8db, 0xf8d9, 0xf8d6, 0xf8d8, 0xf8d7, 0xf95a,
+  0xf95c, 0xf95b, 0xf979, 0xf978, 0xf977, 0xf97a, 0xc673, 0xc674,
+  0xf9ca, 0xf9ce, 0xb3be, 0xdcaf, 0xe0ed, 0xb9a7, 0xe0eb, 0xe0ec,
+  0xe4e2, 0xe4e3, 0xbbf1, 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, 0xe8eb,
+  0xe8e5, 0xe8ec, 0xe8e4, 0xe8e6, 0xe8e7, 0xe8ea, 0xbea1, 0xe8ef,
+  0xe8ee, 0xbe7d, 0xe8e9, 0xe8ed, 0xbe7e, 0xecac, 0xc06f, 0xeca7,
+  0xc06b, 0xeca4, 0xecaa, 0xecad, 0xc070, 0xeca9, 0xeca6, 0xecae,
+  0xeca5, 0xecab, 0xc06c, 0xeca3, 0xc06d, 0xc06e, 0xeca8, 0xefa9,
+  0xef7a, 0xef7b, 0xef7e, 0xef7c, 0xef76, 0xef79, 0xefa5, 0xef7d,
+  0xc245, 0xefa7, 0xefa4, 0xc246, 0xefa6, 0xef77, 0xefa2, 0xefa3,
+  0xefa1, 0xf1d2, 0xf1d4, 0xf1d7, 0xf1d1, 0xc359, 0xf1d9, 0xf1d0,
+  0xf1da, 0xf1d6, 0xf1d8, 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf,
+  0xc35a, 0xf1db, 0xc35b, 0xc44d, 0xef78, 0xf3f1, 0xf3e8, 0xc44f,
+  0xf3e4, 0xc450, 0xf3ed, 0xf3e7, 0xf3dd, 0xc44e, 0xf3ea, 0xf3e5,
+  0xf3e6, 0xf3d8, 0xf3df, 0xf3ee, 0xf3eb, 0xf3e3, 0xf3ef, 0xf3de,
+  0xf3d9, 0xf3ec, 0xf3db, 0xf3e9, 0xf3e0, 0xf3f0, 0xf3dc, 0xc44c,
+  0xf3da, 0xf3e1, 0xf3e2, 0xf57d, 0xf57b, 0xf5a2, 0xf5ae, 0xf5a5,
+  0xf57c, 0xf578, 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577,
+  0xf5a1, 0xf5a6, 0xf5a8, 0xf5ab, 0xf579, 0xf5af, 0xf5b0, 0xf5a9,
+  0xf5ad, 0xf5a4, 0xf6c1, 0xf6c4, 0xc561, 0xf6c3, 0xf6c8, 0xf6c6,
+  0xc562, 0xf6bd, 0xf6b3, 0xf6b2, 0xc564, 0xf6bf, 0xf6c0, 0xf6bc,
+  0xf6b4, 0xf6b9, 0xf5ac, 0xf6b5, 0xc563, 0xf6bb, 0xf6ba, 0xf6b6,
+  0xf6c2, 0xf6b7, 0xf7bb, 0xf6c5, 0xf6c7, 0xf6be, 0xf6b8, 0xf7bc,
+  0xf7be, 0xf7b8, 0xc5c2, 0xf7c5, 0xf7c3, 0xc5c3, 0xf7c2, 0xf7c1,
+  0xf7ba, 0xf7b7, 0xf7bd, 0xf7c6, 0xf7b9, 0xf7bf, 0xf869, 0xf86e,
+  0xf864, 0xf867, 0xc5ee, 0xf86b, 0xf872, 0xf7c0, 0xf865, 0xf86f,
+  0xf873, 0xf86a, 0xf863, 0xf86d, 0xf86c, 0xf871, 0xf870, 0xf7c4,
+  0xf868, 0xf862, 0xf866, 0xc64e, 0xc64f, 0xf861, 0xf8e6, 0xf8dd,
+  0xf8e5, 0xf8e2, 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0,
+  0xf8de, 0xf8e4, 0xf95d, 0xf95e, 0xf960, 0xf95f, 0xf962, 0xf961,
+  0xf97c, 0xf97b, 0xf9b7, 0xf9b8, 0xf9c5, 0xc678, 0xc67c, 0xf9cf,
+  0xc67d, 0xb3bf, 0xc4d0, 0xf6c9, 0xc650, 0xc651, 0xb3c0, 0xe0ee,
+  0xb9a8, 0xe8f0, 0xecb0, 0xecb1, 0xecaf, 0xefab, 0xefaa, 0xc247,
+  0xf1df, 0xefac, 0xf1de, 0xf3f3, 0xc451, 0xc453, 0xf3f2, 0xc452,
+  0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca, 0xc565, 0xc5ef, 0xf8e8, 0xf963,
+  0xf9d2, 0xb3c1, 0xe4e5, 0xbea2, 0xecb3, 0xecb2, 0xefad, 0xc454,
+  0xc4d1, 0xf7c7, 0xf9cb, 0xb3c2, 0xbbf2, 0xbea3, 0xf3f4, 0xf874,
+  0xb6c0, 0xefae, 0xc664, 0xb6c1, 0xbea4, 0xc248, 0xf875, 0xb6c2,
+  0xe8f1, 0xc072, 0xecb4, 0xecb5, 0xc071, 0xefaf, 0xc24c, 0xc24a,
+  0xc24b, 0xc249, 0xf1e0, 0xc35c, 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6,
+  0xc4d2, 0xf6cb, 0xf6cd, 0xf6cc, 0xc566, 0xf7c8, 0xf876, 0xf877,
+  0xc5f0, 0xf964, 0xf97d, 0xc675, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5,
+  0xe0ef, 0xefb1, 0xf1e2, 0xf1e1, 0xf878, 0xc652, 0xf965, 0xf97e,
+  0xb9a9, 0xe8f2, 0xe8f3, 0xecb7, 0xb9aa, 0xc35d, 0xf1e3, 0xf6cf,
+  0xc567, 0xf6d0, 0xf6ce, 0xf879, 0xf8e9, 0xb9ab, 0xefb4, 0xefb3,
+  0xefb2, 0xf1e4, 0xf1e8, 0xf1e7, 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6,
+  0xf5b9, 0xc4d3, 0xf5b8, 0xf6d1, 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9,
+  0xf87c, 0xf87b, 0xf87a, 0xbbf3, 0xecb8, 0xc24d, 0xf3f7, 0xf3f8,
+  0xf7cc, 0xf87d, 0xf8ea, 0xf966, 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e,
+  0xf1e9, 0xf3f9, 0xf6d2, 0xf87e, 0xbea6, 0xefb5, 0xf1ea, 0xf3fa,
+  0xf3fb, 0xf3fc, 0xf5be, 0xf5ba, 0xc568, 0xf5bd, 0xf5bc, 0xc4d4,
+  0xf5bb, 0xc4d6, 0xc4d5, 0xf6d4, 0xf6d3, 0xc569, 0xc56a, 0xc5c6,
+  0xf7cd, 0xc5c5, 0xf8a3, 0xf8a4, 0xf8a2, 0xf8a1, 0xc654, 0xf8eb,
+  0xf8ec, 0xf8ed, 0xc653, 0xf967, 0xf96a, 0xf969, 0xf968, 0xf9d3,
+  0xc073, 0xc365, 0xf5bf, 0xf6d5, 0xc5c7, 0xf7ce, 0xf9d5, 0xc074,
+  0xefb6, 0xf7cf, 0xf9a1, 0xc94a, 0xddfc, 0xa14a, 0xa157, 0xa159,
+  0xa15b, 0xa15f, 0xa160, 0xa163, 0xa164, 0xa167, 0xa168, 0xa16b,
+  0xa16c, 0xa16f, 0xa170, 0xa173, 0xa174, 0xa177, 0xa178, 0xa17b,
+  0xa17c, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb, 0xa1c8, 0xa1c9, 0xa15c,
+  0xa14d, 0xa14f, 0xa151, 0xa152, 0xa153, 0xa154, 0xa17d, 0xa17e,
+  0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1cc, 0xa1cd, 0xa1ce, 0xa1de,
+  0xa1df, 0xa1e0, 0xa1e1, 0xa1e2, 0xa24c, 0xa24d, 0xa24e, 0xa149,
+  0xa1ad, 0xa243, 0xa248, 0xa1ae, 0xa15d, 0xa15e, 0xa1af, 0xa1cf,
+  0xa141, 0xa1d0, 0xa144, 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2,
+  0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146,
+  0xa1d5, 0xa1d7, 0xa1d6, 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1,
+  0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9,
+  0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1,
+  0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa242,
+  0xa1c4, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef,
+  0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7,
+  0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, 0xa340,
+  0xa341, 0xa342, 0xa343, 0xa161, 0xa155, 0xa162, 0xa14e,
+};
+
+static const Summary16 big5_uni2indx_page00[16] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x00ac }, {    4, 0x0083 },
+  {    7, 0x0000 }, {    7, 0x0080 }, {    8, 0x0000 }, {    8, 0x0080 },
+};
+static const Summary16 big5_uni2indx_page02[38] = {
+  /* 0x0200 */
+  {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0000 },
+  {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0000 },
+  {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0000 },
+  {    9, 0x0e80 }, {   13, 0x0200 }, {   14, 0x0000 }, {   14, 0x0000 },
+  /* 0x0300 */
+  {   14, 0x0000 }, {   14, 0x0000 }, {   14, 0x0000 }, {   14, 0x0000 },
+  {   14, 0x0000 }, {   14, 0x0000 }, {   14, 0x0000 }, {   14, 0x0000 },
+  {   14, 0x0000 }, {   14, 0xfffe }, {   29, 0x03fb }, {   38, 0xfffe },
+  {   53, 0x03fb }, {   62, 0x0000 }, {   62, 0x0000 }, {   62, 0x0000 },
+  /* 0x0400 */
+  {   62, 0x0002 }, {   63, 0x1ff0 }, {   72, 0xfff8 }, {   85, 0xffff },
+  {  101, 0xffff }, {  117, 0x0002 },
+};
+static const Summary16 big5_uni2indx_page20[44] = {
+  /* 0x2000 */
+  {  118, 0x0000 }, {  118, 0x3318 }, {  124, 0x0064 }, {  127, 0x4824 },
+  {  131, 0x0000 }, {  131, 0x0000 }, {  131, 0x0000 }, {  131, 0x0000 },
+  {  131, 0x0000 }, {  131, 0x0000 }, {  131, 0x0000 }, {  131, 0x0000 },
+  {  131, 0x0000 }, {  131, 0x0000 }, {  131, 0x0000 }, {  131, 0x0000 },
+  /* 0x2100 */
+  {  131, 0x0228 }, {  134, 0x0000 }, {  134, 0x0000 }, {  134, 0x0000 },
+  {  134, 0x0000 }, {  134, 0x0000 }, {  134, 0x03ff }, {  144, 0x0000 },
+  {  144, 0x0000 }, {  144, 0x03cf }, {  152, 0x0000 }, {  152, 0x0000 },
+  {  152, 0x0000 }, {  152, 0x0000 }, {  152, 0x0000 }, {  152, 0x0000 },
+  /* 0x2200 */
+  {  152, 0x0000 }, {  152, 0xc400 }, {  155, 0x4e29 }, {  162, 0x1030 },
+  {  165, 0x0000 }, {  165, 0x0004 }, {  166, 0x00c3 }, {  170, 0x0000 },
+  {  170, 0x0000 }, {  170, 0x0000 }, {  170, 0x0020 }, {  171, 0x8000 },
+};
+static const Summary16 big5_uni2indx_page24[37] = {
+  /* 0x2400 */
+  {  172, 0x0000 }, {  172, 0x0000 }, {  172, 0x0000 }, {  172, 0x0000 },
+  {  172, 0x0000 }, {  172, 0x0000 }, {  172, 0x03ff }, {  182, 0x3ff0 },
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  /* 0x2500 */
+  {  192, 0x1005 }, {  195, 0x1111 }, {  199, 0x1010 }, {  201, 0x1010 },
+  {  203, 0x0000 }, {  203, 0x4001 }, {  205, 0xe402 }, {  210, 0x000f },
+  {  214, 0xfffe }, {  229, 0x0030 }, {  231, 0x0003 }, {  233, 0x300c },
+  {  237, 0xc8c0 }, {  242, 0x0000 }, {  242, 0x003c }, {  246, 0x0000 },
+  /* 0x2600 */
+  {  246, 0x0260 }, {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 },
+  {  249, 0x0007 },
+};
+static const Summary16 big5_uni2indx_page30[62] = {
+  /* 0x3000 */
+  {  252, 0xff2f }, {  265, 0x6037 }, {  272, 0x03fe }, {  281, 0x0000 },
+  {  281, 0xfffe }, {  296, 0xffff }, {  312, 0xffff }, {  328, 0xffff },
+  {  344, 0xffff }, {  360, 0x600f }, {  366, 0xfffe }, {  381, 0xffff },
+  {  397, 0xffff }, {  413, 0xffff }, {  429, 0xffff }, {  445, 0x407f },
+  /* 0x3100 */
+  {  453, 0xffe0 }, {  464, 0xffff }, {  480, 0x03ff }, {  490, 0x0000 },
+  {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 },
+  {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 },
+  {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 },
+  /* 0x3200 */
+  {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 },
+  {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0000 },
+  {  490, 0x0000 }, {  490, 0x0000 }, {  490, 0x0008 }, {  491, 0x0000 },
+  {  491, 0x0000 }, {  491, 0x0000 }, {  491, 0x0000 }, {  491, 0x0000 },
+  /* 0x3300 */
+  {  491, 0x0000 }, {  491, 0x0000 }, {  491, 0x0000 }, {  491, 0x0000 },
+  {  491, 0x0000 }, {  491, 0x0000 }, {  491, 0x0000 }, {  491, 0x0000 },
+  {  491, 0xc000 }, {  493, 0x7000 }, {  496, 0x0002 }, {  497, 0x0000 },
+  {  497, 0x4010 }, {  499, 0x0026 },
+};
+static const Summary16 big5_uni2indx_page4e[1307] = {
+  /* 0x4e00 */
+  {  502, 0xff8b }, {  514, 0xc373 }, {  523, 0x6840 }, {  527, 0x1b0f },
+  {  535, 0xe9ac }, {  544, 0xf34c }, {  553, 0x0200 }, {  554, 0xc008 },
+  {  557, 0x795c }, {  566, 0xca3e }, {  575, 0x7976 }, {  585, 0x0648 },
+  {  589, 0x2fdf }, {  601, 0xf7f0 }, {  612, 0x033a }, {  618, 0xa8ff },
+  /* 0x4f00 */
+  {  629, 0xef37 }, {  641, 0x233f }, {  650, 0xb004 }, {  654, 0xfd59 },
+  {  665, 0xf3ca }, {  675, 0xffff }, {  691, 0xde9f }, {  703, 0xfff9 },
+  {  717, 0xabff }, {  730, 0x7df7 }, {  743, 0xc000 }, {  745, 0x8eec },
+  {  754, 0xeebf }, {  767, 0xffdb }, {  781, 0xd003 }, {  786, 0x45fa },
+  /* 0x5000 */
+  {  795, 0xfae1 }, {  805, 0xdffe }, {  819, 0xbfef }, {  833, 0x10ab },
+  {  839, 0xffeb }, {  853, 0xfcaa }, {  863, 0xef3f }, {  876, 0x24fd },
+  {  885, 0x78ad }, {  894, 0x7f76 }, {  906, 0xf00c }, {  912, 0xedff },
+  {  926, 0xcff6 }, {  938, 0x2cfa }, {  947, 0xf7f9 }, {  960, 0xeb6b },
+  /* 0x5100 */
+  {  971, 0x1ffd }, {  983, 0x95bf }, {  994, 0x6677 }, { 1004, 0xbfbf },
+  { 1018, 0x3bfb }, { 1030, 0xfeb4 }, { 1041, 0x7bae }, { 1052, 0x11e2 },
+  { 1058, 0xa681 }, { 1064, 0x41be }, { 1072, 0x1435 }, { 1078, 0x72c3 },
+  { 1086, 0x7d70 }, { 1095, 0x7191 }, { 1102, 0x0003 }, { 1104, 0x276b },
+  /* 0x5200 */
+  { 1113, 0x57cb }, { 1123, 0x70cf }, { 1132, 0x4732 }, { 1139, 0x0def },
+  { 1149, 0x7eda }, { 1160, 0xfc74 }, { 1170, 0xfe06 }, { 1179, 0xbdb4 },
+  { 1189, 0x3f9f }, { 1201, 0x8bca }, { 1209, 0x7e49 }, { 1218, 0x5800 },
+  { 1221, 0x228f }, { 1228, 0xebec }, { 1239, 0x8a5c }, { 1246, 0xddbb },
+  /* 0x5300 */
+  { 1258, 0xef60 }, { 1267, 0xb6e7 }, { 1278, 0xa40f }, { 1285, 0xf293 },
+  { 1294, 0x37bb }, { 1305, 0x549e }, { 1313, 0xd04b }, { 1320, 0x9baf },
+  { 1331, 0xc414 }, { 1336, 0xf7d4 }, { 1347, 0x30b0 }, { 1352, 0x0a14 },
+  { 1356, 0x2f08 }, { 1362, 0x88d0 }, { 1367, 0xff7e }, { 1381, 0x192f },
+  /* 0x5400 */
+  { 1389, 0xffda }, { 1402, 0xfb07 }, { 1412, 0x7ff1 }, { 1424, 0x7beb },
+  { 1436, 0xc5ef }, { 1447, 0x0010 }, { 1448, 0x99ff }, { 1460, 0xfdff },
+  { 1475, 0x79d7 }, { 1486, 0x0567 }, { 1493, 0xffe7 }, { 1507, 0xfdcb },
+  { 1519, 0xc3ff }, { 1531, 0x4040 }, { 1533, 0x6ff7 }, { 1546, 0xbd8e },
+  /* 0x5500 */
+  { 1556, 0xdffa }, { 1569, 0x0497 }, { 1575, 0xf4c0 }, { 1582, 0x5bff },
+  { 1595, 0xed7b }, { 1607, 0xd0e7 }, { 1616, 0x047e }, { 1623, 0xf8e0 },
+  { 1631, 0xff9f }, { 1645, 0xb73e }, { 1656, 0x7dfe }, { 1669, 0x882e },
+  { 1675, 0xfffd }, { 1690, 0xbe7f }, { 1703, 0x83fe }, { 1713, 0xf6c4 },
+  /* 0x5600 */
+  { 1722, 0xf357 }, { 1733, 0xb8fd }, { 1744, 0xd680 }, { 1750, 0xef7d },
+  { 1763, 0x5767 }, { 1773, 0x4788 }, { 1779, 0xff7d }, { 1793, 0xc3df },
+  { 1804, 0xf0ff }, { 1816, 0x37a9 }, { 1825, 0x7de0 }, { 1834, 0x70fc },
+  { 1843, 0x3f6f }, { 1855, 0xec9a }, { 1864, 0x4cb3 }, { 1872, 0x8681 },
+  /* 0x5700 */
+  { 1877, 0x3f9e }, { 1888, 0xdd5c }, { 1898, 0xf70d }, { 1908, 0x4819 },
+  { 1913, 0xfea3 }, { 1924, 0x0007 }, { 1927, 0xaf56 }, { 1937, 0x38ff },
+  { 1948, 0x980d }, { 1954, 0xefb8 }, { 1965, 0x403d }, { 1971, 0xb760 },
+  { 1979, 0xd8ce }, { 1988, 0x9035 }, { 1994, 0x72bf }, { 2005, 0x3fff },
+  /* 0x5800 */
+  { 2019, 0x7ff7 }, { 2033, 0x7a11 }, { 2040, 0xf7bb }, { 2053, 0xabff },
+  { 2066, 0xff00 }, { 2074, 0x6fbe }, { 2086, 0xa93c }, { 2094, 0xfe72 },
+  { 2105, 0xcfef }, { 2118, 0xf11b }, { 2127, 0xdb6b }, { 2138, 0xf40a },
+  { 2145, 0xc3e6 }, { 2154, 0xef7e }, { 2167, 0x9b9c }, { 2176, 0xf610 },
+  /* 0x5900 */
+  { 2183, 0xf048 }, { 2189, 0x16f4 }, { 2197, 0xfeb5 }, { 2209, 0x5182 },
+  { 2214, 0xc7b1 }, { 2223, 0x15bb }, { 2232, 0x6e87 }, { 2241, 0xfbdf },
+  { 2255, 0xe43f }, { 2265, 0x63cd }, { 2274, 0xc1ff }, { 2285, 0x7e7e },
+  { 2297, 0xfdeb }, { 2310, 0x7d5f }, { 2322, 0x777b }, { 2334, 0xfcfe },
+  /* 0x5a00 */
+  { 2347, 0x960b }, { 2354, 0xdbea }, { 2365, 0x6229 }, { 2371, 0x53e8 },
+  { 2379, 0x37df }, { 2391, 0xfdef }, { 2405, 0x36f5 }, { 2415, 0xbd81 },
+  { 2423, 0xdc18 }, { 2430, 0xfcbd }, { 2442, 0xd2e4 }, { 2450, 0xffff },
+  { 2466, 0x3fd7 }, { 2478, 0xffe0 }, { 2489, 0x7f6f }, { 2502, 0xabf8 },
+  /* 0x5b00 */
+  { 2512, 0x9bae }, { 2522, 0x6ed9 }, { 2532, 0xf5fb }, { 2545, 0xf115 },
+  { 2553, 0x79a9 }, { 2562, 0xbdfb }, { 2575, 0x5a3c }, { 2583, 0xadaf },
+  { 2594, 0xdbba }, { 2605, 0x1fac }, { 2614, 0x71fc }, { 2624, 0x8379 },
+  { 2632, 0x7cf7 }, { 2644, 0xc35f }, { 2654, 0xdfff }, { 2669, 0x0567 },
+  /* 0x5c00 */
+  { 2676, 0xff9a }, { 2688, 0x8467 }, { 2695, 0x1534 }, { 2701, 0xdf8b },
+  { 2712, 0xf9f3 }, { 2724, 0x3373 }, { 2733, 0xf7bd }, { 2746, 0x5e1a },
+  { 2754, 0xbf40 }, { 2762, 0xa03f }, { 2770, 0xffff }, { 2786, 0x01eb },
+  { 2793, 0xdfc0 }, { 2802, 0xcfdd }, { 2814, 0x7500 }, { 2819, 0xabd3 },
+  /* 0x5d00 */
+  { 2829, 0xf8c3 }, { 2838, 0xeed6 }, { 2849, 0x43fd }, { 2859, 0xb7ff },
+  { 2873, 0x5eaf }, { 2884, 0x4227 }, { 2890, 0x9bac }, { 2899, 0xf686 },
+  { 2908, 0x27d7 }, { 2918, 0xf6bc }, { 2929, 0xf787 }, { 2940, 0x35b7 },
+  { 2950, 0xaacd }, { 2959, 0xe176 }, { 2968, 0x49e7 }, { 2977, 0xe29f },
+  /* 0x5e00 */
+  { 2987, 0x545c }, { 2994, 0xaff2 }, { 3005, 0x2b3f }, { 3015, 0x61d8 },
+  { 3022, 0xfc3b }, { 3033, 0xbbb8 }, { 3043, 0xffcf }, { 3057, 0x7b7d },
+  { 3069, 0xbf95 }, { 3080, 0x1ce0 }, { 3086, 0x7dfd }, { 3099, 0x43ff },
+  { 3110, 0x5ff6 }, { 3122, 0xfffe }, { 3137, 0xd3ef }, { 3149, 0xc4ce },
+  /* 0x5f00 */
+  { 3157, 0x8db6 }, { 3166, 0xadbc }, { 3176, 0x63dc }, { 3185, 0x11eb },
+  { 3193, 0xdf59 }, { 3204, 0x23d0 }, { 3210, 0xbeb4 }, { 3220, 0xf3db },
+  { 3232, 0x1fe7 }, { 3243, 0xdbc7 }, { 3254, 0xff63 }, { 3266, 0xfae4 },
+  { 3276, 0xb22b }, { 3284, 0x63f7 }, { 3295, 0xed3b }, { 3306, 0xadba },
+  /* 0x6000 */
+  { 3316, 0xfe01 }, { 3324, 0x7eff }, { 3338, 0xfff7 }, { 3353, 0x02bc },
+  { 3359, 0x32ff }, { 3370, 0xef39 }, { 3381, 0xfffc }, { 3395, 0x8005 },
+  { 3398, 0x77fb }, { 3411, 0xbcf5 }, { 3422, 0x010d }, { 3426, 0xfff7 },
+  { 3441, 0xfffb }, { 3456, 0xbf3a }, { 3467, 0x0057 }, { 3472, 0xdfff },
+  /* 0x6100 */
+  { 3487, 0xef7b }, { 3500, 0xbd7d }, { 3512, 0xdb88 }, { 3520, 0xc8d4 },
+  { 3527, 0xfff3 }, { 3541, 0xed7c }, { 3552, 0x5dee }, { 3563, 0x56ff },
+  { 3575, 0x7e0d }, { 3584, 0xac5f }, { 3594, 0xff96 }, { 3606, 0xd57f },
+  { 3618, 0x3fee }, { 3630, 0xc140 }, { 3634, 0x6ff9 }, { 3646, 0xffe7 },
+  /* 0x6200 */
+  { 3660, 0x779b }, { 3671, 0x8e77 }, { 3681, 0x6ebf }, { 3693, 0xe45d },
+  { 3702, 0x6fcf }, { 3714, 0x5f1f }, { 3725, 0xe07f }, { 3735, 0xfedf },
+  { 3749, 0xd7db }, { 3761, 0x01fe }, { 3769, 0xff00 }, { 3777, 0xfb7b },
+  { 3790, 0xffd4 }, { 3802, 0x1fdf }, { 3814, 0xf800 }, { 3819, 0xffff },
+  /* 0x6300 */
+  { 3835, 0xfb8f }, { 3847, 0x007b }, { 3853, 0xbf00 }, { 3860, 0x7f5c },
+  { 3871, 0xffff }, { 3887, 0x07f3 }, { 3896, 0xeba0 }, { 3904, 0x3de7 },
+  { 3915, 0xf7bf }, { 3929, 0xfbd7 }, { 3942, 0xffbf }, { 3957, 0x6003 },
+  { 3961, 0xfffd }, { 3976, 0xbfed }, { 3989, 0xefbb }, { 4002, 0x027f },
+  /* 0x6400 */
+  { 4010, 0xfe40 }, { 4018, 0xddfd }, { 4031, 0xfdff }, { 4046, 0xe2f9 },
+  { 4056, 0x680b }, { 4062, 0xfb1f }, { 4074, 0xfbe3 }, { 4086, 0xaffd },
+  { 4099, 0x9fa4 }, { 4108, 0xf7ed }, { 4121, 0x7a7d }, { 4132, 0xf80f },
+  { 4141, 0xeebe }, { 4153, 0x0fd5 }, { 4162, 0xbb5d }, { 4173, 0xfd9f },
+  /* 0x6500 */
+  { 4186, 0xf2db }, { 4197, 0x3bf9 }, { 4208, 0xfe7f }, { 4222, 0xebcc },
+  { 4232, 0x876a }, { 4240, 0x73fa }, { 4251, 0x95fc }, { 4261, 0x9ffc },
+  { 4273, 0x109f }, { 4280, 0xfaf7 }, { 4293, 0xddb7 }, { 4305, 0xbbcd },
+  { 4316, 0xf87e }, { 4327, 0xeccd }, { 4337, 0xf366 }, { 4347, 0x3c3f },
+  /* 0x6600 */
+  { 4357, 0xfffd }, { 4372, 0xb03f }, { 4381, 0xe9f7 }, { 4393, 0x067e },
+  { 4401, 0x96ae }, { 4410, 0xfe06 }, { 4419, 0xd576 }, { 4429, 0x5fd7 },
+  { 4441, 0x3fd1 }, { 4451, 0xa3f3 }, { 4461, 0xcf07 }, { 4470, 0x6fb7 },
+  { 4482, 0x9fd1 }, { 4492, 0x7f44 }, { 4501, 0x7b59 }, { 4511, 0xd3dd },
+  /* 0x6700 */
+  { 4522, 0xaf3b }, { 4533, 0xa9bd }, { 4543, 0x7dcf }, { 4555, 0xff3a },
+  { 4567, 0xfbe0 }, { 4577, 0xf6eb }, { 4589, 0xb401 }, { 4594, 0xffff },
+  { 4610, 0x7afa }, { 4621, 0xb7bf }, { 4634, 0xc000 }, { 4636, 0x0ffd },
+  { 4647, 0xff7f }, { 4662, 0xff1f }, { 4675, 0xfefc }, { 4688, 0x95ff },
+  /* 0x6800 */
+  { 4700, 0x0000 }, { 4700, 0xb5dc }, { 4710, 0xef63 }, { 4721, 0x3f3e },
+  { 4732, 0xfb7f }, { 4746, 0x001b }, { 4750, 0xe800 }, { 4754, 0xfbf6 },
+  { 4767, 0x9eef }, { 4779, 0xb8df }, { 4790, 0xff9f }, { 4804, 0x003f },
+  { 4810, 0x7bd0 }, { 4819, 0xf5ff }, { 4833, 0xdfdb }, { 4846, 0x3fff },
+  /* 0x6900 */
+  { 4860, 0xfdf0 }, { 4871, 0x00bf }, { 4878, 0x8420 }, { 4881, 0xbbbd },
+  { 4893, 0xdf37 }, { 4905, 0xffde }, { 4919, 0xff6d }, { 4932, 0x0ff3 },
+  { 4942, 0x604c }, { 4947, 0x5efb }, { 4959, 0xfffb }, { 4974, 0xfafb },
+  { 4987, 0xfe5e }, { 4999, 0x0219 }, { 5003, 0x79f4 }, { 5013, 0xf9de },
+  /* 0x6a00 */
+  { 5025, 0xa7f7 }, { 5037, 0xebfa }, { 5049, 0x01eb }, { 5056, 0xff34 },
+  { 5067, 0xebd3 }, { 5078, 0xef73 }, { 5090, 0xafd7 }, { 5102, 0xc040 },
+  { 5105, 0x72bb }, { 5115, 0xdcff }, { 5128, 0xf17f }, { 5140, 0x2fd8 },
+  { 5149, 0xb8ec }, { 5158, 0xfe0b }, { 5168, 0xdda3 }, { 5178, 0x1f0b },
+  /* 0x6b00 */
+  { 5186, 0x8f1d }, { 5195, 0x47cf }, { 5205, 0xb12b }, { 5213, 0xffde },
+  { 5227, 0x7fee }, { 5240, 0xda73 }, { 5250, 0x24ff }, { 5260, 0xcbc4 },
+  { 5268, 0xf75d }, { 5280, 0xcbf2 }, { 5290, 0xecfd }, { 5302, 0xb4ed },
+  { 5312, 0xbff9 }, { 5325, 0x4ddd }, { 5335, 0x99dd }, { 5345, 0xfb8d },
+  /* 0x6c00 */
+  { 5356, 0xbb7f }, { 5369, 0xaf7b }, { 5381, 0xddfb }, { 5394, 0xc959 },
+  { 5402, 0xfc4f }, { 5413, 0xfab5 }, { 5424, 0xafe3 }, { 5435, 0x6d5f },
+  { 5446, 0xffff }, { 5462, 0x3f7d }, { 5474, 0x7800 }, { 5478, 0xffdb },
+  { 5492, 0xb6ff }, { 5505, 0x7eff }, { 5519, 0xfbaf }, { 5532, 0x022f },
+  /* 0x6d00 */
+  { 5538, 0xff9b }, { 5551, 0xefc7 }, { 5563, 0xffa5 }, { 5575, 0xffff },
+  { 5591, 0x0007 }, { 5594, 0xc700 }, { 5599, 0xf7ff }, { 5614, 0xfff1 },
+  { 5627, 0x7ffd }, { 5641, 0x01bf }, { 5649, 0xdc00 }, { 5654, 0xfdbc },
+  { 5666, 0xbff5 }, { 5679, 0xffff }, { 5695, 0xff7f }, { 5710, 0x3eff },
+  /* 0x6e00 */
+  { 5723, 0x0029 }, { 5726, 0xbe00 }, { 5732, 0xf9ff }, { 5746, 0xff7f },
+  { 5761, 0x6efb }, { 5773, 0xfd7e }, { 5786, 0xcbff }, { 5799, 0x039e },
+  { 5806, 0xe300 }, { 5811, 0xfbdd }, { 5824, 0xccff }, { 5836, 0xf6df },
+  { 5849, 0xffff }, { 5865, 0x117f }, { 5874, 0xf800 }, { 5879, 0xfbf6 },
+  /* 0x6f00 */
+  { 5892, 0xe7ef }, { 5905, 0xd73c }, { 5915, 0xfeef }, { 5929, 0xdfef },
+  { 5943, 0xc00b }, { 5948, 0xedbf }, { 5961, 0xfedf }, { 5975, 0xfdcd },
+  { 5987, 0x7bf5 }, { 5999, 0x40fd }, { 6007, 0xffff }, { 6023, 0xb75f },
+  { 6035, 0xffdf }, { 6050, 0xf930 }, { 6058, 0xfbdf }, { 6072, 0xdc97 },
+  /* 0x7000 */
+  { 6082, 0xfef3 }, { 6095, 0xbff2 }, { 6107, 0x8fdf }, { 6119, 0xdfbf },
+  { 6133, 0x177f }, { 6144, 0xede6 }, { 6155, 0x0f7f }, { 6166, 0x3553 },
+  { 6174, 0x447c }, { 6181, 0x877e }, { 6191, 0xfa12 }, { 6199, 0x45bb },
+  { 6208, 0xede0 }, { 6217, 0x779e }, { 6228, 0x8017 }, { 6233, 0xbfd9 },
+  /* 0x7100 */
+  { 6245, 0x7e55 }, { 6255, 0xde89 }, { 6264, 0xc16f }, { 6273, 0x0447 },
+  { 6278, 0x7ade }, { 6289, 0xf75d }, { 6301, 0x57ff }, { 6314, 0x2905 },
+  { 6319, 0x86f7 }, { 6329, 0xfe95 }, { 6340, 0x97b3 }, { 6350, 0xf32f },
+  { 6361, 0xcfff }, { 6375, 0x9f75 }, { 6386, 0x71f7 }, { 6397, 0xfb17 },
+  /* 0x7200 */
+  { 6408, 0x34ee }, { 6417, 0xee19 }, { 6426, 0x37cc }, { 6435, 0xef61 },
+  { 6445, 0x9fd6 }, { 6456, 0xef4c }, { 6466, 0xd68f }, { 6476, 0xfbdd },
+  { 6489, 0x7b73 }, { 6500, 0x6def }, { 6512, 0xd7fe }, { 6525, 0xa431 },
+  { 6531, 0x5e7f }, { 6543, 0x97d7 }, { 6554, 0x0f5b }, { 6563, 0xffd8 },
+  /* 0x7300 */
+  { 6575, 0x9d83 }, { 6583, 0x7bce }, { 6594, 0x22ec }, { 6601, 0xdcff },
+  { 6614, 0x763d }, { 6624, 0xef87 }, { 6635, 0xdfe7 }, { 6648, 0xfded },
+  { 6661, 0x4fff }, { 6674, 0xa0fc }, { 6682, 0x3b77 }, { 6693, 0xdbfc },
+  { 6705, 0x3ded }, { 6716, 0x7fdc }, { 6728, 0x6fa9 }, { 6738, 0xf570 },
+  /* 0x7400 */
+  { 6747, 0x3ffb }, { 6760, 0x2c40 }, { 6764, 0xff7f }, { 6779, 0x847f },
+  { 6788, 0xec57 }, { 6798, 0xdeb7 }, { 6810, 0xe69c }, { 6819, 0xf22f },
+  { 6829, 0x0feb }, { 6839, 0xd5b5 }, { 6849, 0xafeb }, { 6861, 0xede7 },
+  { 6873, 0x8c2f }, { 6881, 0xfff0 }, { 6893, 0x537f }, { 6904, 0xe8f0 },
+  /* 0x7500 */
+  { 6912, 0xb99d }, { 6922, 0xb5ff }, { 6935, 0xff66 }, { 6947, 0xe78f },
+  { 6958, 0xd981 }, { 6965, 0xbe10 }, { 6972, 0x9c7c }, { 6981, 0xe3c1 },
+  { 6989, 0x9cd1 }, { 6997, 0x2733 }, { 7005, 0x0cbc }, { 7012, 0xff6d },
+  { 7025, 0xfcb7 }, { 7037, 0xefb7 }, { 7050, 0xa0df }, { 7059, 0xffff },
+  /* 0x7600 */
+  { 7075, 0xbf0b }, { 7085, 0xfe7b }, { 7098, 0xa3ff }, { 7110, 0x353f },
+  { 7120, 0x13cc }, { 7127, 0x97cd }, { 7137, 0x7637 }, { 7147, 0xfb27 },
+  { 7158, 0xcfd6 }, { 7169, 0x7e6c }, { 7179, 0xec50 }, { 7186, 0xed31 },
+  { 7195, 0x677c }, { 7205, 0xfc1c }, { 7214, 0xf6fa }, { 7226, 0x5fbf },
+  /* 0x7700 */
+  { 7239, 0x0fba }, { 7248, 0xae2f }, { 7258, 0xa3ad }, { 7267, 0x7ffe },
+  { 7281, 0xfcf0 }, { 7291, 0xde74 }, { 7301, 0xffef }, { 7316, 0xf200 },
+  { 7321, 0xfbbf }, { 7335, 0xfea2 }, { 7345, 0x3daf }, { 7356, 0xbcff },
+  { 7369, 0xf694 }, { 7378, 0x5fb9 }, { 7389, 0xf3ad }, { 7400, 0x3f8f },
+  /* 0x7800 */
+  { 7411, 0xf26c }, { 7420, 0xa01f }, { 7427, 0xffef }, { 7442, 0x01bf },
+  { 7450, 0x7728 }, { 7458, 0x7005 }, { 7463, 0xff35 }, { 7475, 0xda03 },
+  { 7482, 0xd2f9 }, { 7492, 0xc7fa }, { 7503, 0x3fbf }, { 7516, 0x5c1d },
+  { 7524, 0xff3a }, { 7536, 0xec33 }, { 7545, 0xb7af }, { 7557, 0xfe9c },
+  /* 0x7900 */
+  { 7568, 0x5236 }, { 7575, 0x7a9f }, { 7586, 0xbffa }, { 7599, 0xe722 },
+  { 7607, 0x9ff7 }, { 7620, 0xfcff }, { 7634, 0x2fbb }, { 7645, 0xb61d },
+  { 7654, 0xed06 }, { 7662, 0x1dfd }, { 7673, 0x7dd7 }, { 7685, 0xefdf },
+  { 7699, 0xeb23 }, { 7708, 0xf166 }, { 7717, 0x7ed9 }, { 7728, 0x0dc0 },
+  /* 0x7a00 */
+  { 7733, 0x3d3d }, { 7743, 0xdfbf }, { 7757, 0xc945 }, { 7764, 0xba83 },
+  { 7772, 0x7dd1 }, { 7782, 0x9dd0 }, { 7790, 0x7b87 }, { 7800, 0xcf73 },
+  { 7811, 0x9ff3 }, { 7823, 0xc3f5 }, { 7833, 0xdf0d }, { 7843, 0xc5fe },
+  { 7854, 0x0cb3 }, { 7861, 0x8302 }, { 7865, 0xe879 }, { 7874, 0xaec0 },
+  /* 0x7b00 */
+  { 7881, 0xc773 }, { 7891, 0x6f0f }, { 7901, 0xfd7d }, { 7914, 0x093f },
+  { 7922, 0xfff1 }, { 7935, 0x0157 }, { 7941, 0x62fb }, { 7951, 0x01ff },
+  { 7960, 0xfdb4 }, { 7971, 0x3bf3 }, { 7982, 0xb013 }, { 7988, 0x43b2 },
+  { 7995, 0x5ed3 }, { 8005, 0xff30 }, { 8015, 0x0fff }, { 8027, 0xeb9f },
+  /* 0x7c00 */
+  { 8039, 0xfeef }, { 8053, 0xf203 }, { 8060, 0x3fef }, { 8073, 0xfb89 },
+  { 8083, 0x37a9 }, { 8092, 0x9e99 }, { 8101, 0xdef9 }, { 8113, 0xa72c },
+  { 8121, 0x3733 }, { 8130, 0xc1f6 }, { 8139, 0x812e }, { 8145, 0xfe3e },
+  { 8157, 0x5d20 }, { 8163, 0xf2f7 }, { 8175, 0xd585 }, { 8183, 0x69d7 },
+  /* 0x7d00 */
+  { 8193, 0xffff }, { 8209, 0xffff }, { 8225, 0xdb07 }, { 8234, 0xff6f },
+  { 8248, 0xc4ff }, { 8259, 0xd97f }, { 8271, 0xefce }, { 8283, 0xbe0f },
+  { 8293, 0xf17b }, { 8304, 0xf05e }, { 8313, 0xf6cf }, { 8325, 0xffb7 },
+  { 8339, 0x5ef7 }, { 8351, 0xef84 }, { 8360, 0xd7cb }, { 8371, 0x0edf },
+  /* 0x7e00 */
+  { 8381, 0xff08 }, { 8390, 0xfcff }, { 8404, 0xee3f }, { 8416, 0xffff },
+  { 8432, 0x13ff }, { 8443, 0xd7ff }, { 8457, 0xaf0f }, { 8467, 0x7ffd },
+  { 8481, 0xbdc7 }, { 8492, 0x1ffa }, { 8503, 0x0000 }, { 8503, 0x0000 },
+  { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 },
+  /* 0x7f00 */
+  { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0xe740 },
+  { 8510, 0xbd38 }, { 8519, 0xf933 }, { 8529, 0x7feb }, { 8542, 0xfeed },
+  { 8555, 0x7fe8 }, { 8566, 0x7c76 }, { 8576, 0xb3f7 }, { 8588, 0xffef },
+  { 8603, 0xfeaf }, { 8616, 0xd8b7 }, { 8626, 0xff6f }, { 8640, 0xfbbf },
+  /* 0x8000 */
+  { 8654, 0xf8fb }, { 8666, 0xdbf7 }, { 8679, 0x1752 }, { 8686, 0xe2f9 },
+  { 8696, 0x85c8 }, { 8702, 0x7547 }, { 8711, 0x9090 }, { 8715, 0xe3ef },
+  { 8727, 0x9ef4 }, { 8737, 0x3f6d }, { 8748, 0xee2e }, { 8758, 0x0536 },
+  { 8764, 0xf7bc }, { 8776, 0x7ff3 }, { 8789, 0xa07b }, { 8797, 0x7f3f },
+  /* 0x8100 */
+  { 8810, 0x0567 }, { 8817, 0xeb60 }, { 8825, 0xbabe }, { 8836, 0x6601 },
+  { 8841, 0xfcd8 }, { 8851, 0x583f }, { 8860, 0xcaf7 }, { 8871, 0x87df },
+  { 8882, 0xbfcd }, { 8894, 0xffa0 }, { 8904, 0x5bcd }, { 8914, 0xfebf },
+  { 8928, 0xb6fd }, { 8940, 0xefa7 }, { 8952, 0x77ef }, { 8965, 0xdf9c },
+  /* 0x8200 */
+  { 8976, 0x3fb7 }, { 8988, 0xf877 }, { 8999, 0x9d27 }, { 9008, 0xb7fc },
+  { 9020, 0xcab5 }, { 9029, 0xdfef }, { 9043, 0xfb5a }, { 9054, 0xf1b6 },
+  { 9064, 0xec39 }, { 9073, 0xef1f }, { 9085, 0xfbbf }, { 9099, 0x7ffb },
+  { 9113, 0x000d }, { 9116, 0xdafe }, { 9128, 0xbdfb }, { 9141, 0x4e7f },
+  /* 0x8300 */
+  { 9152, 0x33ff }, { 9164, 0x5ac0 }, { 9170, 0xbff5 }, { 9183, 0x9ffe },
+  { 9196, 0xffbf }, { 9211, 0x005f }, { 9217, 0x0000 }, { 9217, 0xfdf8 },
+  { 9229, 0xffca }, { 9241, 0x6ffd }, { 9254, 0xcffd }, { 9267, 0xa001 },
+  { 9270, 0xdfff }, { 9285, 0xfbf2 }, { 9297, 0xdfbf }, { 9311, 0xff7f },
+  /* 0x8400 */
+  { 9326, 0xfeda }, { 9338, 0x080f }, { 9343, 0xba08 }, { 9349, 0xbfff },
+  { 9364, 0x7afd }, { 9376, 0xeed7 }, { 9388, 0xfbeb }, { 9401, 0x67f9 },
+  { 9412, 0xe044 }, { 9417, 0xff93 }, { 9429, 0xdf97 }, { 9441, 0x9f57 },
+  { 9452, 0xfef7 }, { 9466, 0x08df }, { 9474, 0xdf80 }, { 9482, 0xfedf },
+  /* 0x8500 */
+  { 9496, 0xffc5 }, { 9508, 0xf7fe }, { 9522, 0xfffb }, { 9537, 0x6803 },
+  { 9542, 0x67fb }, { 9554, 0x6bfa }, { 9565, 0x7fff }, { 9580, 0x5fe2 },
+  { 9590, 0xffff }, { 9606, 0xff73 }, { 9619, 0x87df }, { 9630, 0xe7fb },
+  { 9643, 0xebfd }, { 9656, 0xf7a7 }, { 9668, 0xbf7e }, { 9681, 0xefc7 },
+  /* 0x8600 */
+  { 9693, 0x1ef3 }, { 9703, 0xdf82 }, { 9712, 0x76ff }, { 9725, 0xdf7e },
+  { 9738, 0x79c9 }, { 9747, 0xda7d }, { 9758, 0xefbe }, { 9771, 0x1e9b },
+  { 9780, 0x7ce0 }, { 9788, 0x77fb }, { 9801, 0x87be }, { 9811, 0xfffb },
+  { 9826, 0x1bff }, { 9838, 0xffdb }, { 9852, 0x3f5c }, { 9862, 0x4fe0 },
+  /* 0x8700 */
+  { 9870, 0x7fff }, { 9885, 0x5f0e }, { 9894, 0x77ff }, { 9908, 0xddbf },
+  { 9921, 0xf04f }, { 9930, 0xffff }, { 9946, 0xffff }, { 9962, 0x0ff8 },
+  { 9971, 0xa3be }, { 9981, 0xfddf }, { 9995, 0xfc1c }, { 10004, 0xfffd },
+  { 10019, 0x1f7d }, { 10030, 0xfb9e }, { 10042, 0xbdff }, { 10056, 0xdedc },
+  /* 0x8800 */
+  { 10067, 0x3f6f }, { 10079, 0xbafb }, { 10091, 0xdf7f }, { 10105, 0xfbef },
+  { 10119, 0x7d1b }, { 10129, 0x2eec }, { 10138, 0xaf8e }, { 10148, 0xf2f7 },
+  { 10160, 0x7b0f }, { 10170, 0xcfee }, { 10182, 0x1d96 }, { 10190, 0x77c6 },
+  { 10200, 0x7e07 }, { 10209, 0xfff5 }, { 10223, 0xd982 }, { 10230, 0x7fdf },
+  /* 0x8900 */
+  { 10244, 0x5ee6 }, { 10254, 0xc7ff }, { 10267, 0xfeee }, { 10280, 0x79ef },
+  { 10292, 0x9a56 }, { 10300, 0xffcf }, { 10314, 0xfe5f }, { 10327, 0xde5e },
+  { 10338, 0x896e }, { 10346, 0xf9e8 }, { 10356, 0xf45e }, { 10366, 0xe6c4 },
+  { 10374, 0x0001 }, { 10375, 0xbe7c }, { 10386, 0x3b7f }, { 10398, 0xdddf },
+  /* 0x8a00 */
+  { 10411, 0xd59d }, { 10421, 0xe9ef }, { 10433, 0x34ac }, { 10440, 0xde53 },
+  { 10450, 0xf573 }, { 10461, 0x4bf7 }, { 10472, 0x7b4f }, { 10483, 0x9eff },
+  { 10496, 0xb8fe }, { 10507, 0x476e }, { 10516, 0x0dfb }, { 10526, 0xff45 },
+  { 10537, 0xabfd }, { 10549, 0xfbfe }, { 10563, 0xe9d7 }, { 10574, 0xddff },
+  /* 0x8b00 */
+  { 10588, 0xedf7 }, { 10601, 0x7fff }, { 10616, 0xddfd }, { 10629, 0x7eeb },
+  { 10641, 0xcfe7 }, { 10653, 0xb7ff }, { 10667, 0xbde9 }, { 10678, 0xef91 },
+  { 10688, 0x5d75 }, { 10698, 0xd77c }, { 10709, 0x0000 }, { 10709, 0x0000 },
+  { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 },
+  /* 0x8c00 */
+  { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0xfa80 },
+  { 10716, 0xffee }, { 10730, 0xb4f1 }, { 10739, 0xbf76 }, { 10751, 0x2fef },
+  { 10763, 0xb677 }, { 10774, 0x77bf }, { 10787, 0x9fbf }, { 10800, 0xfffd },
+  { 10815, 0x95bf }, { 10826, 0xf6ae }, { 10837, 0x75ff }, { 10850, 0x7f3b },
+  /* 0x8d00 */
+  { 10862, 0xa7f5 }, { 10873, 0x0af9 }, { 10881, 0x0000 }, { 10881, 0x0000 },
+  { 10881, 0x0000 }, { 10881, 0x0000 }, { 10881, 0xfbd0 }, { 10891, 0x2bdd },
+  { 10901, 0xf633 }, { 10911, 0x9a7f }, { 10922, 0xfdab }, { 10934, 0xd6fc },
+  { 10945, 0xf9e6 }, { 10956, 0xbfeb }, { 10969, 0xdfdf }, { 10983, 0xf41f },
+  /* 0x8e00 */
+  { 10993, 0xa6fd }, { 11004, 0xffff }, { 11020, 0x4aff }, { 11031, 0xf37b },
+  { 11043, 0x7fb7 }, { 11056, 0xfef9 }, { 11069, 0xb6ff }, { 11082, 0x1d5c },
+  { 11090, 0x7ff6 }, { 11103, 0xe5ff }, { 11116, 0x1f7b }, { 11127, 0x2404 },
+  { 11130, 0xbe05 }, { 11138, 0xf99e }, { 11149, 0xdbe3 }, { 11160, 0xdff2 },
+  /* 0x8f00 */
+  { 11172, 0x6fef }, { 11185, 0xfdff }, { 11200, 0xd679 }, { 11210, 0xcbfc },
+  { 11221, 0xebfd }, { 11234, 0xefff }, { 11249, 0x001f }, { 11254, 0x0000 },
+  { 11254, 0x0000 }, { 11254, 0x9800 }, { 11257, 0xe148 }, { 11263, 0x8017 },
+  { 11268, 0x6a74 }, { 11276, 0x00fe }, { 11283, 0x6d7f }, { 11295, 0xfdf1 },
+  /* 0x9000 */
+  { 11307, 0xb87f }, { 11318, 0xfef3 }, { 11331, 0xe01f }, { 11339, 0xf176 },
+  { 11349, 0xee96 }, { 11359, 0x7b3f }, { 11371, 0xeb8d }, { 11381, 0xfffd },
+  { 11396, 0xadff }, { 11409, 0xcbb3 }, { 11419, 0x84ef }, { 11428, 0xe17f },
+  { 11439, 0x4daa }, { 11447, 0xbff0 }, { 11458, 0xbf3f }, { 11471, 0xfe3f },
+  /* 0x9100 */
+  { 11484, 0xebff }, { 11498, 0xffd7 }, { 11512, 0xffdf }, { 11527, 0xcf7f },
+  { 11540, 0xfffb }, { 11555, 0x85ed }, { 11564, 0xd73f }, { 11576, 0x07bc },
+  { 11584, 0xaeff }, { 11597, 0xfe0f }, { 11608, 0xfdaf }, { 11621, 0x76bf },
+  { 11633, 0xfaef }, { 11646, 0x37bb }, { 11657, 0x7fdc }, { 11669, 0xa3ba },
+  /* 0x9200 */
+  { 11678, 0xb6ff }, { 11691, 0x56f7 }, { 11702, 0x60f8 }, { 11709, 0xe7df },
+  { 11722, 0xff61 }, { 11733, 0x4cdf }, { 11743, 0xb0fb }, { 11753, 0xff45 },
+  { 11764, 0x7ded }, { 11776, 0x3ffa }, { 11788, 0x1fff }, { 11801, 0x18fc },
+  { 11809, 0xffff }, { 11825, 0xe3af }, { 11836, 0xc7d3 }, { 11846, 0xdf83 },
+  /* 0x9300 */
+  { 11856, 0xfb57 }, { 11868, 0xef7d }, { 11881, 0xefff }, { 11896, 0x1378 },
+  { 11903, 0xfec0 }, { 11912, 0x5ff7 }, { 11925, 0x34bb }, { 11934, 0x5ee3 },
+  { 11944, 0xf70d }, { 11954, 0xeff6 }, { 11967, 0xd7fe }, { 11980, 0x00bf },
+  { 11987, 0xf59d }, { 11998, 0xf7f7 }, { 12012, 0x51de }, { 12021, 0xffe0 },
+  /* 0x9400 */
+  { 12032, 0xfec9 }, { 12043, 0x037f }, { 12052, 0x5f01 }, { 12059, 0xbfef },
+  { 12073, 0x9ff1 }, { 12084, 0x60a7 }, { 12091, 0xef1d }, { 12102, 0xf1ff },
+  { 12115, 0x000f }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 },
+  { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 },
+  /* 0x9500 */
+  { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 },
+  { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x3c80 },
+  { 12124, 0xfb4d }, { 12135, 0xd91f }, { 12145, 0x7b3a }, { 12155, 0xfee3 },
+  { 12167, 0x3fe9 }, { 12178, 0xdc7f }, { 12190, 0x003f }, { 12196, 0x0000 },
+  /* 0x9600 */
+  { 12196, 0x0000 }, { 12196, 0x5000 }, { 12198, 0xf51f }, { 12209, 0xbe07 },
+  { 12218, 0xfc1d }, { 12228, 0xf91b }, { 12238, 0xbc1e }, { 12247, 0x71ff },
+  { 12259, 0x6ff9 }, { 12271, 0x5bbe }, { 12282, 0x5796 }, { 12291, 0x9b1b },
+  { 12300, 0x7fff }, { 12315, 0xfffc }, { 12329, 0x872e }, { 12337, 0xafe7 },
+  /* 0x9700 */
+  { 12349, 0xebf5 }, { 12361, 0xf34f }, { 12372, 0xdffd }, { 12386, 0xe725 },
+  { 12395, 0x0bdc }, { 12403, 0x5d44 }, { 12410, 0x5747 }, { 12419, 0xfddd },
+  { 12432, 0xed3f }, { 12444, 0x7790 }, { 12452, 0x7d7f }, { 12465, 0x8ac8 },
+  { 12471, 0xfafa }, { 12483, 0xf3f9 }, { 12495, 0x202a }, { 12499, 0xef4b },
+  /* 0x9800 */
+  { 12510, 0xf5ff }, { 12524, 0x79cf }, { 12535, 0xabd3 }, { 12545, 0x0ba5 },
+  { 12552, 0xf77a }, { 12564, 0xfb8f }, { 12576, 0x8ebd }, { 12586, 0x001f },
+  { 12591, 0x0000 }, { 12591, 0x0000 }, { 12591, 0xf300 }, { 12597, 0xfd4e },
+  { 12608, 0x1a57 }, { 12616, 0x8800 }, { 12618, 0xaeac }, { 12627, 0x7654 },
+  /* 0x9900 */
+  { 12635, 0x17ad }, { 12644, 0xcdff }, { 12657, 0xffb2 }, { 12669, 0xf42f },
+  { 12679, 0x5baa }, { 12688, 0xdbff }, { 12702, 0x0002 }, { 12703, 0x0000 },
+  { 12703, 0x0000 }, { 12703, 0x73c0 }, { 12710, 0xf9ea }, { 12721, 0x2e3f },
+  { 12731, 0xfa8e }, { 12741, 0xbbff }, { 12755, 0x76bc }, { 12765, 0xffd3 },
+  /* 0x9a00 */
+  { 12778, 0xeefe }, { 12791, 0x7e72 }, { 12801, 0x7ebd }, { 12813, 0xe7f7 },
+  { 12826, 0xf77f }, { 12840, 0xcefd }, { 12852, 0x0ff5 }, { 12862, 0x0000 },
+  { 12862, 0x0000 }, { 12862, 0x0000 }, { 12862, 0xa900 }, { 12866, 0xdb9b },
+  { 12877, 0xa4c7 }, { 12885, 0x917f }, { 12895, 0xf8ca }, { 12904, 0x7ece },
+  /* 0x9b00 */
+  { 12915, 0x7d7a }, { 12926, 0xc7e7 }, { 12937, 0xcbbd }, { 12948, 0xdcae },
+  { 12958, 0xfd7e }, { 12971, 0x8f76 }, { 12981, 0x91d3 }, { 12989, 0x7cf3 },
+  { 13000, 0x01e5 }, { 13006, 0x4c2f }, { 13014, 0xed77 }, { 13026, 0xa360 },
+  { 13032, 0x07db }, { 13041, 0x5ef8 }, { 13051, 0x1df7 }, { 13062, 0x2181 },
+  /* 0x9c00 */
+  { 13066, 0x6be0 }, { 13074, 0x309c }, { 13080, 0x3b3a }, { 13089, 0xfade },
+  { 13101, 0x7f53 }, { 13112, 0xc3f5 }, { 13122, 0x61cd }, { 13130, 0x07ba },
+  { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 },
+  { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x26e0 }, { 13144, 0xbefe },
+  /* 0x9d00 */
+  { 13157, 0x03f9 }, { 13165, 0xebb5 }, { 13176, 0xe36d }, { 13186, 0xe9cb },
+  { 13196, 0x9c2f }, { 13205, 0xbfde }, { 13218, 0x9f83 }, { 13227, 0xabbf },
+  { 13239, 0x1ff7 }, { 13251, 0xffd5 }, { 13264, 0xb7df }, { 13277, 0xdffe },
+  { 13291, 0xfdae }, { 13303, 0xffef }, { 13318, 0xfb7e }, { 13331, 0xeffd },
+  /* 0x9e00 */
+  { 13345, 0xaaff }, { 13357, 0x6ebf }, { 13369, 0x0000 }, { 13369, 0x0000 },
+  { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0xb620 },
+  { 13375, 0x7fcd }, { 13387, 0xbe9e }, { 13398, 0x62b3 }, { 13406, 0x58f1 },
+  { 13414, 0xf10d }, { 13422, 0xfd7b }, { 13435, 0xe9f1 }, { 13445, 0xbefd },
+  /* 0x9f00 */
+  { 13458, 0xc6c3 }, { 13466, 0x5f6d }, { 13477, 0xff3d }, { 13490, 0x69ff },
+  { 13502, 0xffcf }, { 13516, 0xfbf4 }, { 13528, 0xdcfb }, { 13540, 0x4ff7 },
+  { 13552, 0x2000 }, { 13553, 0x1137 }, { 13560, 0x0015 },
+};
+static const Summary16 big5_uni2indx_pagefa[1] = {
+  /* 0xfa00 */
+  { 13563, 0x3000 },
+};
+static const Summary16 big5_uni2indx_pagefe[23] = {
+  /* 0xfe00 */
+  { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0xfffb },
+  { 13580, 0xfe1f }, { 13592, 0xfef5 }, { 13605, 0x0e7f }, { 13615, 0x0000 },
+  { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 },
+  { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 },
+  /* 0xff00 */
+  { 13615, 0xff7a }, { 13628, 0xffff }, { 13644, 0xffff }, { 13660, 0x97ff },
+  { 13673, 0xfffe }, { 13688, 0x3fff }, { 13702, 0x0010 },
+};
+
+static int
+big5_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x0100)
+      summary = &big5_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x0200 && wc < 0x0460)
+      summary = &big5_uni2indx_page02[(wc>>4)-0x020];
+    else if (wc >= 0x2000 && wc < 0x22c0)
+      summary = &big5_uni2indx_page20[(wc>>4)-0x200];
+    else if (wc >= 0x2400 && wc < 0x2650)
+      summary = &big5_uni2indx_page24[(wc>>4)-0x240];
+    else if (wc >= 0x3000 && wc < 0x33e0)
+      summary = &big5_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x4e00 && wc < 0x9fb0)
+      summary = &big5_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0xfa00 && wc < 0xfa10)
+      summary = &big5_uni2indx_pagefa[(wc>>4)-0xfa0];
+    else if (wc >= 0xfe00 && wc < 0xff70)
+      summary = &big5_uni2indx_pagefe[(wc>>4)-0xfe0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = big5_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/ces_big5.h b/libiconv/ces_big5.h
new file mode 100644 (file)
index 0000000..0ffd3a7
--- /dev/null
@@ -0,0 +1,51 @@
+
+/*
+ * BIG-5
+ */
+
+static int
+ces_big5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (BIG5) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff))
+        return big5_mbtowc(conv,pwc,s,2);
+      else
+        return RET_ILSEQ;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+ces_big5_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (BIG5) */
+  ret = big5_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/ces_gbk.h b/libiconv/ces_gbk.h
new file mode 100644 (file)
index 0000000..326cda2
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * GBK, CP936
+ */
+
+static int
+ces_gbk_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+
+  /* Code set 0 (ASCII or GB 1988-89) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (GBK) */
+  if (c >= 0x81 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    return gbk_mbtowc(conv,pwc,s,2);
+  }
+  return RET_ILSEQ;
+}
+
+static int
+ces_gbk_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII or GB 1988-89) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (GBK) */
+  ret = gbk_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cns11643.h b/libiconv/cns11643.h
new file mode 100644 (file)
index 0000000..9299de4
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * CNS 11643-1992
+ */
+
+/* ISO-2022-CN and EUC-TW use CNS 11643-1992 planes 1 to 7. But all tables we
+ * have are for CNS 11643-1992 planes 1,2,3. We use a trick to keep the
+ * Unicode -> CNS 11643 table as small as possible (see cns11643_inv.h).
+ */
+
+#include "cns11643_1.h"
+#include "cns11643_2.h"
+#include "cns11643_3.h"
+#include "cns11643_inv.h"
+
+/* Returns the plane number (0,1,2) in r[0], the two bytes in r[1],r[2]. */
+static int
+cns11643_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 3) {
+    int ret = cns11643_inv_wctomb(conv,r+1,wc,2);
+    if (ret == RET_ILSEQ)
+      return RET_ILSEQ;
+    if (ret != 2) abort();
+    r[0] = ((r[1] & 0x80) >> 6) | ((r[2] & 0x80) >> 7);
+    r[1] &= 0x7f;
+    r[2] &= 0x7f;
+    return 3;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/cns11643_1.h b/libiconv/cns11643_1.h
new file mode 100644 (file)
index 0000000..be94c16
--- /dev/null
@@ -0,0 +1,868 @@
+
+/*
+ * CNS 11643-1986 plane 1
+ */
+
+static const unsigned short cns11643_1_2uni_page21[500] = {
+  /* 0x21 */
+  0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x30fb, 0xff1b, 0xff1a,
+  0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52,
+  0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe31, 0x2014, 0xfe32,
+  0x2013, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff08, 0xff09, 0xfe35,
+  0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39,
+  0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d,
+  0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41,
+  0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b,
+  0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d,
+  0x301e, 0x2032, 0x2035, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7,
+  0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605,
+  0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc,
+  /* 0x22 */
+  0x32a3, 0x2105, 0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a,
+  0xfe4d, 0xfe4e, 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b,
+  0xff0d, 0x00d7, 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d,
+  0x2266, 0x2267, 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63,
+  0xfe64, 0xfe66, 0xfe65, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220,
+  0x221f, 0x22bf, 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234,
+  0x2640, 0x2642, 0x2641, 0x2609, 0x2191, 0x2193, 0x2192, 0x2190,
+  0x2196, 0x2197, 0x2199, 0x2198, 0x2016, 0xff5c, 0xff0f, 0xff3c,
+  0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, 0xff05,
+  0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, 0x339c,
+  0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, 0x00b0,
+  0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163,
+  /* 0x23 */
+  0x55e7, 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585,
+  0x2586, 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b,
+  0x258a, 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594,
+  0x2500, 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d,
+  0x256e, 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2,
+  0x25e3, 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x24 */
+  0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17,
+  0xff18, 0xff19, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165,
+  0x2166, 0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024,
+  0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd,
+  0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
+  0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
+  0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
+  0xff39, 0xff3a, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46,
+  0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e,
+  0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56,
+  0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394,
+  0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a,
+  /* 0x25 */
+  0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3,
+  0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2,
+  0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba,
+  0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3,
+  0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106,
+  0x3107, 0x3108, 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e,
+  0x310f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116,
+  0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e,
+  0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126,
+  0x3127, 0x3128, 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x26 */
+  0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
+  0x2468, 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479,
+  0x247a, 0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173,
+  0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179,
+};
+static const unsigned short cns11643_1_2uni_page42[33] = {
+  /* 0x42 */
+  0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407,
+  0x2408, 0x2409, 0x240a, 0x240b, 0x240c, 0x240d, 0x240e, 0x240f,
+  0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417,
+  0x2418, 0x2419, 0x241a, 0x241b, 0x241c, 0x241d, 0x241e, 0x241f,
+  0x2421,
+};
+static const unsigned short cns11643_1_2uni_page44[5401] = {
+  /* 0x44 */
+  0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c,
+  0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b,
+  0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a,
+  0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e,
+  0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f,
+  0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8,
+  0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2,
+  0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11,
+  0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88,
+  0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3,
+  0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141,
+  0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6,
+  /* 0x45 */
+  0x5206, 0x5207, 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339,
+  0x5348, 0x5347, 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd,
+  0x58ec, 0x5929, 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24,
+  0x5c3a, 0x5c6f, 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3,
+  0x6208, 0x6236, 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4,
+  0x65b9, 0x65e5, 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79,
+  0x6bcb, 0x6bd4, 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236,
+  0x723b, 0x7247, 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, 0x4e16,
+  0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, 0x4ee5,
+  0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, 0x4ed9,
+  0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, 0x51fa,
+  0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306,
+  /* 0x46 */
+  0x5317, 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f,
+  0x536e, 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9,
+  0x53e8, 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2,
+  0x53f1, 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916,
+  0x592e, 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8,
+  0x5de7, 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18,
+  0x5f17, 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5,
+  0x65e6, 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd,
+  0x6c11, 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384,
+  0x7389, 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530,
+  0x7531, 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee,
+  0x77db, 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74,
+  /* 0x47 */
+  0x7acb, 0x4e1e, 0x4e1f, 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4,
+  0x4ea6, 0x4ea5, 0x4eff, 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d,
+  0x4f10, 0x4f11, 0x4f0f, 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3,
+  0x4efd, 0x4f01, 0x4f0b, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168,
+  0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216,
+  0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f,
+  0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d,
+  0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd,
+  0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919,
+  0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979,
+  0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89,
+  0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76,
+  /* 0x48 */
+  0x5e74, 0x5f0f, 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d,
+  0x6210, 0x6263, 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec,
+  0x65ed, 0x66f2, 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735,
+  0x6b21, 0x6b64, 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f,
+  0x6c60, 0x6c50, 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070,
+  0x725f, 0x725d, 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a,
+  0x7fbd, 0x8001, 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089,
+  0x808b, 0x808c, 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b,
+  0x821f, 0x826e, 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863,
+  0x897f, 0x9621, 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57,
+  0x4f5e, 0x4f34, 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d,
+  0x4f3a, 0x4f38, 0x4f43, 0x4f54, 0x4f3c, 0x4f46,
+  /* 0x49 */
+  0x4f63, 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d,
+  0x4f48, 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7,
+  0x5225, 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa,
+  0x52ac, 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e,
+  0x5426, 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442,
+  0x541b, 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435,
+  0x5436, 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c,
+  0x56ea, 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d,
+  0x5747, 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e,
+  0x599d, 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d,
+  0x59a4, 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b,
+  0x5b8c, 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41,
+  /* 0x4a */
+  0x5c3f, 0x5c3e, 0x5c90, 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c,
+  0x5e8f, 0x5e87, 0x5e8a, 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62,
+  0x5f77, 0x5f79, 0x5fd8, 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb,
+  0x5ff8, 0x5fea, 0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280,
+  0x6276, 0x6289, 0x626d, 0x628a, 0x627c, 0x627e, 0x6279, 0x6273,
+  0x6292, 0x626f, 0x6298, 0x626e, 0x6295, 0x6293, 0x6291, 0x6286,
+  0x6539, 0x653b, 0x6538, 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f,
+  0x6750, 0x6751, 0x675c, 0x6756, 0x675e, 0x6749, 0x6746, 0x6760,
+  0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81,
+  0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70,
+  0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e,
+  0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98,
+  /* 0x4b */
+  0x6c82, 0x7076, 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260,
+  0x72c4, 0x72c2, 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682,
+  0x76ef, 0x77e3, 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55,
+  0x8096, 0x8093, 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f,
+  0x8292, 0x828b, 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46,
+  0x8c55, 0x8c9d, 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b,
+  0x8fb0, 0x8fc2, 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2,
+  0x90aa, 0x90a6, 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e,
+  0x9631, 0x962a, 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b,
+  0x4e9e, 0x4eab, 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f,
+  0x4f6c, 0x4f9b, 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88,
+  0x4f69, 0x4f7b, 0x4f96, 0x4f7e, 0x4f8f, 0x4f91,
+  /* 0x4c */
+  0x4f7a, 0x5154, 0x5152, 0x5155, 0x5169, 0x5177, 0x5176, 0x5178,
+  0x51bd, 0x51fd, 0x523b, 0x5238, 0x5237, 0x523a, 0x5230, 0x522e,
+  0x5236, 0x5241, 0x52be, 0x52bb, 0x5352, 0x5354, 0x5353, 0x5351,
+  0x5366, 0x5377, 0x5378, 0x5379, 0x53d6, 0x53d4, 0x53d7, 0x5473,
+  0x5475, 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484,
+  0x5492, 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a,
+  0x5462, 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777,
+  0x576a, 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949,
+  0x5947, 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9,
+  0x59ae, 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca,
+  0x59af, 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97,
+  0x5b9a, 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a,
+  /* 0x4d */
+  0x5c48, 0x5c45, 0x5c46, 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab,
+  0x5cb1, 0x5cb3, 0x5e18, 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11,
+  0x5e78, 0x5e9a, 0x5e97, 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26,
+  0x5f27, 0x5f29, 0x5f80, 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0,
+  0x5ffd, 0x5ff5, 0x5fff, 0x600f, 0x6014, 0x602f, 0x6035, 0x6016,
+  0x602a, 0x6015, 0x6021, 0x6027, 0x6029, 0x602b, 0x601b, 0x6216,
+  0x6215, 0x623f, 0x623e, 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4,
+  0x62bf, 0x62c2, 0x62b9, 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4,
+  0x62cb, 0x62c8, 0x62a8, 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7,
+  0x62cd, 0x62b5, 0x62da, 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6,
+  0x62ac, 0x62ce, 0x653e, 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613,
+  0x660c, 0x6606, 0x6602, 0x660e, 0x6600, 0x660f,
+  /* 0x4e */
+  0x6615, 0x660a, 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795,
+  0x6771, 0x679c, 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f,
+  0x6770, 0x677f, 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793,
+  0x677c, 0x676a, 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13,
+  0x6c1b, 0x6ce3, 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3,
+  0x6cbd, 0x6cbe, 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8,
+  0x6cc4, 0x6cb9, 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf,
+  0x6cbb, 0x6ce1, 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6,
+  0x6ce0, 0x7095, 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d,
+  0x7238, 0x7248, 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7,
+  0x72d0, 0x73a9, 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d,
+  0x7599, 0x759a, 0x7684, 0x76c2, 0x76f2, 0x76f4,
+  /* 0x4f */
+  0x77e5, 0x77fd, 0x793e, 0x7940, 0x7941, 0x79c9, 0x79c8, 0x7a7a,
+  0x7a79, 0x7afa, 0x7cfe, 0x7f54, 0x7f8c, 0x7f8b, 0x8005, 0x80ba,
+  0x80a5, 0x80a2, 0x80b1, 0x80a1, 0x80ab, 0x80a9, 0x80b4, 0x80aa,
+  0x80af, 0x81e5, 0x81fe, 0x820d, 0x82b3, 0x829d, 0x8299, 0x82ad,
+  0x82bd, 0x829f, 0x82b9, 0x82b1, 0x82ac, 0x82a5, 0x82af, 0x82b8,
+  0x82a3, 0x82b0, 0x82be, 0x82b7, 0x864e, 0x8671, 0x521d, 0x8868,
+  0x8ecb, 0x8fce, 0x8fd4, 0x8fd1, 0x90b5, 0x90b8, 0x90b1, 0x90b6,
+  0x91c7, 0x91d1, 0x9577, 0x9580, 0x961c, 0x9640, 0x963f, 0x963b,
+  0x9644, 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead,
+  0x4eae, 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf,
+  0x4fdd, 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae,
+  0x4fd0, 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde,
+  /* 0x50 */
+  0x4fb7, 0x5157, 0x5192, 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a,
+  0x524d, 0x524c, 0x524b, 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1,
+  0x530d, 0x5357, 0x537b, 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8,
+  0x54ce, 0x54c9, 0x54b8, 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd,
+  0x54aa, 0x54c1, 0x54c4, 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb,
+  0x54a9, 0x54a7, 0x54bf, 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3,
+  0x57a2, 0x57ce, 0x57ae, 0x5793, 0x5955, 0x5951, 0x594f, 0x594e,
+  0x5950, 0x59dc, 0x59d8, 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5,
+  0x59ea, 0x59da, 0x59e6, 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6,
+  0x5ba4, 0x5ba2, 0x5ba5, 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b,
+  0x5cd9, 0x5cd2, 0x5df7, 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0,
+  0x5ea6, 0x5efa, 0x5f08, 0x5f2d, 0x5f65, 0x5f88,
+  /* 0x51 */
+  0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c, 0x5f89, 0x6012, 0x601d,
+  0x6020, 0x6025, 0x600e, 0x6028, 0x604d, 0x6070, 0x6068, 0x6062,
+  0x6046, 0x6043, 0x606c, 0x606b, 0x606a, 0x6064, 0x6241, 0x62dc,
+  0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301, 0x62ee, 0x62fd, 0x6307,
+  0x62f1, 0x62f7, 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302,
+  0x653f, 0x6545, 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620,
+  0x6627, 0x662f, 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff,
+  0x67d3, 0x67f1, 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5,
+  0x67e9, 0x67ef, 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8,
+  0x67cf, 0x67de, 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2,
+  0x6b6a, 0x6b83, 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9,
+  0x6d0b, 0x6d32, 0x6d2a, 0x6d41, 0x6d25, 0x6d0c,
+  /* 0x52 */
+  0x6d31, 0x6d1e, 0x6d17, 0x6d3b, 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b,
+  0x6cf5, 0x6d39, 0x6d27, 0x6d38, 0x6d29, 0x6d2e, 0x6d35, 0x6d0e,
+  0x6d2b, 0x70ab, 0x70ba, 0x70b3, 0x70ac, 0x70af, 0x70ad, 0x70b8,
+  0x70ae, 0x70a4, 0x7230, 0x7272, 0x726f, 0x7274, 0x72e9, 0x72e0,
+  0x72e1, 0x73b7, 0x73ca, 0x73bb, 0x73b2, 0x73cd, 0x73c0, 0x73b3,
+  0x751a, 0x752d, 0x754f, 0x754c, 0x754e, 0x754b, 0x75ab, 0x75a4,
+  0x75a5, 0x75a2, 0x75a3, 0x7678, 0x7686, 0x7687, 0x7688, 0x76c8,
+  0x76c6, 0x76c3, 0x76c5, 0x7701, 0x76f9, 0x76f8, 0x7709, 0x770b,
+  0x76fe, 0x76fc, 0x7707, 0x77dc, 0x7802, 0x7814, 0x780c, 0x780d,
+  0x7946, 0x7949, 0x7948, 0x7947, 0x79b9, 0x79ba, 0x79d1, 0x79d2,
+  0x79cb, 0x7a7f, 0x7a81, 0x7aff, 0x7afd, 0x7c7d, 0x7d02, 0x7d05,
+  0x7d00, 0x7d09, 0x7d07, 0x7d04, 0x7d06, 0x7f38,
+  /* 0x53 */
+  0x7f8e, 0x7fbf, 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5,
+  0x80da, 0x80c3, 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de,
+  0x80e4, 0x80dd, 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3,
+  0x82db, 0x82e6, 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7,
+  0x82f1, 0x8301, 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df,
+  0x82ef, 0x8306, 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b,
+  0x8981, 0x89d4, 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74,
+  0x8d73, 0x8db4, 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea,
+  0x8fe5, 0x8fed, 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1,
+  0x90c3, 0x914b, 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c,
+  0x964d, 0x9762, 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8,
+  0x98db, 0x98df, 0x9996, 0x9999, 0x4e58, 0x4eb3,
+  /* 0x54 */
+  0x500c, 0x500d, 0x5023, 0x4fef, 0x5026, 0x5025, 0x4ff8, 0x5029,
+  0x5016, 0x5006, 0x503c, 0x501f, 0x501a, 0x5012, 0x5011, 0x4ffa,
+  0x5000, 0x5014, 0x5028, 0x4ff1, 0x5021, 0x500b, 0x5019, 0x5018,
+  0x4ff3, 0x4fee, 0x502d, 0x502a, 0x4ffe, 0x502b, 0x5009, 0x517c,
+  0x51a4, 0x51a5, 0x51a2, 0x51cd, 0x51cc, 0x51c6, 0x51cb, 0x5256,
+  0x525c, 0x5254, 0x525b, 0x525d, 0x532a, 0x537f, 0x539f, 0x539d,
+  0x53df, 0x54e8, 0x5510, 0x5501, 0x5537, 0x54fc, 0x54e5, 0x54f2,
+  0x5506, 0x54fa, 0x5514, 0x54e9, 0x54ed, 0x54e1, 0x5509, 0x54ee,
+  0x54ea, 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704,
+  0x57c2, 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958,
+  0x595a, 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec,
+  0x5a20, 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09,
+  /* 0x55 */
+  0x5b6b, 0x5c58, 0x5bb0, 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5,
+  0x5bb9, 0x5bb8, 0x5c04, 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd,
+  0x5cfb, 0x5cea, 0x5ce8, 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee,
+  0x5e2d, 0x5e2b, 0x5eab, 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91,
+  0x5f90, 0x6059, 0x6063, 0x6065, 0x6050, 0x6055, 0x606d, 0x6069,
+  0x606f, 0x6084, 0x609f, 0x609a, 0x608d, 0x6094, 0x608c, 0x6085,
+  0x6096, 0x6247, 0x62f3, 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f,
+  0x6355, 0x6342, 0x6346, 0x634f, 0x6349, 0x633a, 0x6350, 0x633d,
+  0x632a, 0x632b, 0x6328, 0x634d, 0x634c, 0x6548, 0x6549, 0x6599,
+  0x65c1, 0x65c5, 0x6642, 0x6649, 0x664f, 0x6643, 0x6652, 0x664c,
+  0x6645, 0x6641, 0x66f8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838,
+  0x6848, 0x6846, 0x6853, 0x6839, 0x6842, 0x6854,
+  /* 0x56 */
+  0x6829, 0x68b3, 0x6817, 0x684c, 0x6851, 0x683d, 0x67f4, 0x6850,
+  0x6840, 0x683c, 0x6843, 0x682a, 0x6845, 0x6813, 0x6818, 0x6841,
+  0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27, 0x6c28, 0x6c26, 0x6c24,
+  0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87, 0x6d66, 0x6d78, 0x6d77,
+  0x6d59, 0x6d93, 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69,
+  0x6d8c, 0x6d8a, 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8,
+  0x70e4, 0x70d9, 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9,
+  0x72fd, 0x72f8, 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0,
+  0x73ea, 0x73de, 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be,
+  0x75c5, 0x75c7, 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2,
+  0x75b8, 0x768b, 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f,
+  0x7720, 0x7728, 0x77e9, 0x7830, 0x7827, 0x7838,
+  /* 0x57 */
+  0x781d, 0x7834, 0x7837, 0x7825, 0x782d, 0x7820, 0x781f, 0x7832,
+  0x7955, 0x7950, 0x7960, 0x795f, 0x7956, 0x795e, 0x795d, 0x7957,
+  0x795a, 0x79e4, 0x79e3, 0x79e7, 0x79df, 0x79e6, 0x79e9, 0x79d8,
+  0x7a84, 0x7a88, 0x7ad9, 0x7b06, 0x7b11, 0x7c89, 0x7d21, 0x7d17,
+  0x7d0b, 0x7d0a, 0x7d20, 0x7d22, 0x7d14, 0x7d10, 0x7d15, 0x7d1a,
+  0x7d1c, 0x7d0d, 0x7d19, 0x7d1b, 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5,
+  0x7fc1, 0x8006, 0x8004, 0x8018, 0x8015, 0x8019, 0x8017, 0x803d,
+  0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105, 0x80ed, 0x80f4, 0x8106,
+  0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a, 0x80fc, 0x80ef, 0x81ed,
+  0x81ec, 0x8200, 0x8210, 0x822a, 0x822b, 0x8228, 0x822c, 0x82bb,
+  0x832b, 0x8352, 0x8354, 0x834a, 0x8338, 0x8350, 0x8349, 0x8335,
+  0x8334, 0x834f, 0x8332, 0x8339, 0x8336, 0x8317,
+  /* 0x58 */
+  0x8340, 0x8331, 0x8328, 0x8343, 0x8654, 0x868a, 0x86aa, 0x8693,
+  0x86a4, 0x86a9, 0x868c, 0x86a3, 0x869c, 0x8870, 0x8877, 0x8881,
+  0x8882, 0x887d, 0x8879, 0x8a18, 0x8a10, 0x8a0e, 0x8a0c, 0x8a15,
+  0x8a0a, 0x8a17, 0x8a13, 0x8a16, 0x8a0f, 0x8a11, 0x8c48, 0x8c7a,
+  0x8c79, 0x8ca1, 0x8ca2, 0x8d77, 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf,
+  0x8fb1, 0x9001, 0x9006, 0x8ff7, 0x9000, 0x8ffa, 0x8ff4, 0x9003,
+  0x8ffd, 0x9005, 0x8ff8, 0x9095, 0x90e1, 0x90dd, 0x90e2, 0x9152,
+  0x914d, 0x914c, 0x91d8, 0x91dd, 0x91d7, 0x91dc, 0x91d9, 0x9583,
+  0x9662, 0x9663, 0x9661, 0x965b, 0x965d, 0x9664, 0x9658, 0x965e,
+  0x96bb, 0x98e2, 0x99ac, 0x9aa8, 0x9ad8, 0x9b25, 0x9b32, 0x9b3c,
+  0x4e7e, 0x507a, 0x507d, 0x505c, 0x5047, 0x5043, 0x504c, 0x505a,
+  0x5049, 0x5065, 0x5076, 0x504e, 0x5055, 0x5075,
+  /* 0x59 */
+  0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d, 0x515c, 0x5195,
+  0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8, 0x52d5, 0x5310,
+  0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3, 0x66fc, 0x5546,
+  0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543, 0x554a, 0x5531,
+  0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538, 0x552e, 0x555c,
+  0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708, 0x570b, 0x5709,
+  0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4, 0x57fa, 0x5802,
+  0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36, 0x5a41, 0x5a49,
+  0x5a66, 0x5a6a, 0x5a40, 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a,
+  0x5b70, 0x5bc7, 0x5bc5, 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09,
+  0x5c08, 0x5c07, 0x5c60, 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e,
+  0x5d1b, 0x5d16, 0x5d22, 0x5d11, 0x5d29, 0x5d14,
+  /* 0x5a */
+  0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, 0x5e38, 0x5e36, 0x5e33,
+  0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, 0x5ebe, 0x5f35, 0x5f37,
+  0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, 0x5f99, 0x5f9e, 0x5f98,
+  0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, 0x6089, 0x60a0, 0x60a8,
+  0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5, 0x60bb, 0x60b5, 0x60dc,
+  0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df, 0x60b8, 0x60da, 0x60c7,
+  0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7, 0x6372, 0x6396, 0x63a2,
+  0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa, 0x6371, 0x63a9, 0x6389,
+  0x6383, 0x639b, 0x636b, 0x63a8, 0x6384, 0x6388, 0x6399, 0x63a1,
+  0x63ac, 0x6392, 0x638f, 0x6380, 0x637b, 0x6369, 0x6368, 0x637a,
+  0x655d, 0x6556, 0x6551, 0x6559, 0x6557, 0x555f, 0x654f, 0x6558,
+  0x6555, 0x6554, 0x659c, 0x659b, 0x65ac, 0x65cf,
+  /* 0x5b */
+  0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668, 0x6666,
+  0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2, 0x6893,
+  0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0, 0x6883,
+  0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8, 0x689f,
+  0x68a1, 0x6882, 0x6b32, 0x6bba, 0x6beb, 0x6bec, 0x6c2b, 0x6d8e,
+  0x6dbc, 0x6df3, 0x6dd9, 0x6db2, 0x6de1, 0x6dcc, 0x6de4, 0x6dfb,
+  0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, 0x6daf, 0x6dd1, 0x6dae, 0x6dde,
+  0x6df9, 0x6db8, 0x6df7, 0x6df5, 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5,
+  0x6dda, 0x6deb, 0x6dd8, 0x6dea, 0x6df1, 0x6dee, 0x6de8, 0x6dc6,
+  0x6dc4, 0x6daa, 0x6dec, 0x6dbf, 0x6de6, 0x70f9, 0x7109, 0x710a,
+  0x70fd, 0x70ef, 0x723d, 0x727d, 0x7281, 0x731c, 0x731b, 0x7316,
+  0x7313, 0x7319, 0x7387, 0x7405, 0x740a, 0x7403,
+  /* 0x5c */
+  0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7, 0x751c, 0x7522,
+  0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4, 0x75d5, 0x75b5,
+  0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db, 0x7737, 0x773e,
+  0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843, 0x784e, 0x7965,
+  0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20, 0x7b28, 0x7b1b,
+  0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92, 0x7c97, 0x7c95,
+  0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c, 0x7d40, 0x7d30,
+  0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31, 0x7f3d, 0x7f9e,
+  0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a, 0x8046, 0x812f,
+  0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124, 0x8202, 0x8235,
+  0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398, 0x8378, 0x83a2,
+  0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393,
+  /* 0x5d */
+  0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, 0x8386, 0x83a7, 0x8655,
+  0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, 0x86b5, 0x86c6, 0x86cb,
+  0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, 0x8888, 0x88ab, 0x8892,
+  0x8896, 0x888d, 0x888b, 0x8993, 0x898f, 0x8a2a, 0x8a1d, 0x8a23,
+  0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, 0x8a22, 0x8c49, 0x8c5a,
+  0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, 0x8ca7, 0x8d67, 0x8d66,
+  0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, 0x900d, 0x901a, 0x9017,
+  0x9023, 0x901f, 0x901d, 0x9010, 0x9015, 0x901e, 0x9020, 0x900f,
+  0x9022, 0x9016, 0x901b, 0x9014, 0x90e8, 0x90ed, 0x90fd, 0x9157,
+  0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7, 0x91ed, 0x91e9, 0x9589,
+  0x966a, 0x9675, 0x9673, 0x9678, 0x9670, 0x9674, 0x9676, 0x9677,
+  0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0, 0x7adf,
+  /* 0x5e */
+  0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5, 0x9ebb,
+  0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096, 0x5098,
+  0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269, 0x52de,
+  0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7, 0x557c,
+  0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594, 0x5587,
+  0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2, 0x559a,
+  0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599, 0x570d,
+  0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821, 0x581d,
+  0x5820, 0x58f9, 0x58fa, 0x5960, 0x5a77, 0x5a9a, 0x5a7f, 0x5a92,
+  0x5a9b, 0x5aa7, 0x5b73, 0x5b71, 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0,
+  0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, 0x5d50, 0x5d34, 0x5d47, 0x5dfd,
+  0x5e45, 0x5e3d, 0x5e40, 0x5e43, 0x5e7e, 0x5eca,
+  /* 0x5f */
+  0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, 0x5faa, 0x5fa8,
+  0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, 0x6123, 0x60fa,
+  0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, 0x610e, 0x60f6,
+  0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, 0x638c, 0x63cf,
+  0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2, 0x63e3, 0x63d0,
+  0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4, 0x63ea, 0x63db,
+  0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562, 0x6563, 0x6591,
+  0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676, 0x666f, 0x6691,
+  0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f, 0x671d, 0x68fa,
+  0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df, 0x68f5, 0x68ee,
+  0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb, 0x68cd, 0x690d,
+  0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb,
+  /* 0x60 */
+  0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e,
+  0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67,
+  0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24,
+  0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a,
+  0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, 0x6e89, 0x6e19, 0x6e4e,
+  0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, 0x7119, 0x711a, 0x7126,
+  0x7130, 0x7121, 0x7136, 0x716e, 0x711c, 0x724c, 0x7284, 0x7280,
+  0x7336, 0x7325, 0x7334, 0x7329, 0x743a, 0x742a, 0x7433, 0x7422,
+  0x7425, 0x7435, 0x7436, 0x7434, 0x742f, 0x741b, 0x7426, 0x7428,
+  0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, 0x75db, 0x75e3, 0x75d9,
+  0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, 0x7696, 0x7693, 0x76b4,
+  0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, 0x786f,
+  /* 0x61 */
+  0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97, 0x7a96,
+  0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52, 0x7b54,
+  0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e, 0x7d50,
+  0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66, 0x7d62,
+  0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052, 0x8085,
+  0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146, 0x813e,
+  0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403, 0x83f8,
+  0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1, 0x83f4,
+  0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2, 0x83ca,
+  0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df, 0x865b,
+  0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0, 0x86de,
+  0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996,
+  /* 0x62 */
+  0x8a3b, 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, 0x8a54, 0x8a5b,
+  0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, 0x8c61, 0x8c82,
+  0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, 0x8cc0, 0x8cb4,
+  0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, 0x8d81, 0x8dce,
+  0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, 0x8dc6, 0x8efb,
+  0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, 0x9038, 0x9032,
+  0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, 0x9165, 0x91cf,
+  0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, 0x9210, 0x9207,
+  0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593, 0x9592, 0x958e,
+  0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686, 0x968d, 0x9672,
+  0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7, 0x96ef, 0x96f2,
+  0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea,
+  /* 0x63 */
+  0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd,
+  0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be,
+  0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d,
+  0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8,
+  0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4,
+  0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712,
+  0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b,
+  0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1,
+  0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, 0x5ab3, 0x5ac2, 0x5ab2,
+  0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, 0x5ec8, 0x5f12, 0x5f59,
+  0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, 0x611f, 0x60f3, 0x611b,
+  0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, 0x6144,
+  /* 0x64 */
+  0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, 0x6221,
+  0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, 0x642c,
+  0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, 0x6406,
+  0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, 0x6696,
+  0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a, 0x6977,
+  0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968, 0x696b,
+  0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b, 0x6b47,
+  0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf, 0x6ed3,
+  0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5, 0x6e98,
+  0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4, 0x6ed4,
+  0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164, 0x7149,
+  0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165,
+  /* 0x65 */
+  0x715e, 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345,
+  0x733f, 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441,
+  0x743f, 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0,
+  0x7601, 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de,
+  0x76df, 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, 0x7779, 0x776a,
+  0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, 0x788e, 0x78b0,
+  0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, 0x7893, 0x787f,
+  0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, 0x7a1a, 0x7a20,
+  0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, 0x7bc0, 0x7b60,
+  0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, 0x7d79, 0x7d91,
+  0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, 0x7f72, 0x7fa9,
+  0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084,
+  /* 0x66 */
+  0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179,
+  0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431,
+  0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435,
+  0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f,
+  0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702,
+  0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc,
+  0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3,
+  0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c,
+  0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c,
+  0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca,
+  0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1,
+  0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea,
+  /* 0x67 */
+  0x8de4, 0x8de6, 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, 0x8f9f,
+  0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, 0x9055,
+  0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, 0x9041,
+  0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, 0x9257,
+  0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, 0x9251,
+  0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, 0x9598,
+  0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, 0x96f7,
+  0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, 0x9811,
+  0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd, 0x98fe,
+  0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e, 0x9f13,
+  0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da, 0x50d5,
+  0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162,
+  /* 0x68 */
+  0x51f3, 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b,
+  0x5617, 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7,
+  0x5616, 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875,
+  0x587e, 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd,
+  0x5925, 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9,
+  0x5ad7, 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1,
+  0x5be5, 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62,
+  0x5d84, 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3,
+  0x5ed6, 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, 0x613f, 0x614b,
+  0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, 0x6175, 0x622a,
+  0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, 0x647a, 0x6451,
+  0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1,
+  /* 0x69 */
+  0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995,
+  0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab,
+  0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3,
+  0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4,
+  0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff,
+  0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b,
+  0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7,
+  0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292,
+  0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d,
+  0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1,
+  0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7,
+  0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d,
+  /* 0x6a */
+  0x7a2e, 0x7a31, 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95,
+  0x7b8b, 0x7b75, 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87,
+  0x7b84, 0x7cb9, 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd,
+  0x7dbe, 0x7da0, 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2,
+  0x7dbf, 0x7db5, 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, 0x7f70,
+  0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, 0x8180,
+  0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, 0x8207,
+  0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, 0x8499,
+  0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, 0x8490,
+  0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, 0x8725,
+  0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, 0x88f4,
+  0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef,
+  /* 0x6b */
+  0x8aa6, 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4,
+  0x8aaa, 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a,
+  0x8c8d, 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95,
+  0x8dfc, 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058,
+  0x905c, 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119,
+  0x9118, 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x92ac,
+  0x9280, 0x9285, 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8,
+  0x927c, 0x9291, 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4,
+  0x9699, 0x969c, 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785,
+  0x97f6, 0x9817, 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c,
+  0x9909, 0x99c1, 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4,
+  0x9cf6, 0x9cf3, 0x9ebc, 0x9f3b, 0x9f4a, 0x5104,
+  /* 0x6c */
+  0x5100, 0x50fb, 0x50f5, 0x50f9, 0x5102, 0x5108, 0x5109, 0x5105,
+  0x51dc, 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2,
+  0x562e, 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653,
+  0x564e, 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f,
+  0x589e, 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09,
+  0x5afb, 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9,
+  0x5beb, 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61,
+  0x5ee2, 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71,
+  0x5fb7, 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182,
+  0x617c, 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e,
+  0x61ac, 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f,
+  0x6479, 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0,
+  /* 0x6d */
+  0x64a5, 0x6493, 0x6495, 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab,
+  0x649a, 0x64ac, 0x6499, 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578,
+  0x66ae, 0x66ab, 0x66b4, 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01,
+  0x6a1e, 0x6a19, 0x69fd, 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02,
+  0x6a05, 0x69ed, 0x6a11, 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6,
+  0x6f3f, 0x6f7c, 0x6f84, 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d,
+  0x6f5b, 0x6f78, 0x6f6e, 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97,
+  0x6f58, 0x6ed5, 0x6f6f, 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1,
+  0x71a8, 0x7256, 0x729b, 0x734e, 0x7357, 0x7469, 0x748b, 0x7483,
+  0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626,
+  0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c,
+  0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca,
+  /* 0x6e */
+  0x78be, 0x78d5, 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d,
+  0x7a37, 0x7a3b, 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4,
+  0x7bc6, 0x7bc7, 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4,
+  0x7def, 0x7dfb, 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda,
+  0x7dde, 0x7de9, 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77,
+  0x7faf, 0x7fe9, 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a,
+  0x8198, 0x8517, 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513,
+  0x8511, 0x8523, 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506,
+  0x8782, 0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759,
+  0x8757, 0x874c, 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912,
+  0x8913, 0x8915, 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95,
+  0x8acb, 0x8af8, 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf,
+  /* 0x6f */
+  0x8ab0, 0x8ad6, 0x8acd, 0x8ab6, 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e,
+  0x8c6c, 0x8ce0, 0x8cde, 0x8ce6, 0x8ce4, 0x8cec, 0x8ced, 0x8ce2,
+  0x8ce3, 0x8cdc, 0x8cea, 0x8ce1, 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b,
+  0x8e10, 0x8e1d, 0x8e22, 0x8e0f, 0x8e29, 0x8e1f, 0x8e21, 0x8e1e,
+  0x8eba, 0x8f1d, 0x8f1b, 0x8f1f, 0x8f29, 0x8f26, 0x8f2a, 0x8f1c,
+  0x8f1e, 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130,
+  0x912d, 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5,
+  0x92bb, 0x92b7, 0x92ea, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2,
+  0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707,
+  0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c,
+  0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df,
+  0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7,
+  /* 0x70 */
+  0x9aee, 0x9aef, 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06,
+  0x9d09, 0x9d03, 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112,
+  0x5118, 0x5114, 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291,
+  0x5293, 0x52f3, 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678,
+  0x566a, 0x5668, 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676,
+  0x58c1, 0x58be, 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78,
+  0x5bf0, 0x5c0e, 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd,
+  0x61b6, 0x61be, 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb,
+  0x64bb, 0x64bc, 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf,
+  0x64d2, 0x64d4, 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4,
+  0x66c7, 0x66b8, 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58,
+  0x6a39, 0x6a44, 0x6a62, 0x6a61, 0x6a4b, 0x6a47,
+  /* 0x71 */
+  0x6a35, 0x6a5f, 0x6a48, 0x6b59, 0x6b77, 0x6c05, 0x6fc2, 0x6fb1,
+  0x6fa1, 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9,
+  0x6fb6, 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2,
+  0x71c8, 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4,
+  0x7368, 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c,
+  0x750d, 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e,
+  0x779f, 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d,
+  0x7a4e, 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9,
+  0x7be4, 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a,
+  0x7e11, 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10,
+  0x7f79, 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9,
+  0x81a8, 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a,
+  /* 0x72 */
+  0x8559, 0x8548, 0x8568, 0x8569, 0x8543, 0x8549, 0x856d, 0x856a,
+  0x855e, 0x8783, 0x879f, 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a,
+  0x8932, 0x8925, 0x892b, 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa,
+  0x8aeb, 0x8af1, 0x8b00, 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01,
+  0x8b02, 0x8af7, 0x8aed, 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d,
+  0x8c93, 0x8cf4, 0x8e44, 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35,
+  0x8f3b, 0x8f2f, 0x8f38, 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074,
+  0x9078, 0x9072, 0x907c, 0x907a, 0x9134, 0x9192, 0x9320, 0x9336,
+  0x92f8, 0x9333, 0x932f, 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a,
+  0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7,
+  0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713,
+  0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830,
+  /* 0x73 */
+  0x9838, 0x983b, 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928,
+  0x991e, 0x991b, 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8,
+  0x9abc, 0x9afb, 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26,
+  0x9d28, 0x9d12, 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a,
+  0x511f, 0x5121, 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685,
+  0x5687, 0x568f, 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a,
+  0x5b24, 0x5b7a, 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8,
+  0x5e6b, 0x5f4c, 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb,
+  0x6232, 0x6234, 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6,
+  0x64ec, 0x64f1, 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6,
+  0x6a80, 0x6a94, 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e,
+  0x6a97, 0x6a90, 0x6aa0, 0x6b5c, 0x6bae, 0x6bda,
+  /* 0x74 */
+  0x6c08, 0x6fd8, 0x6ff1, 0x6fdf, 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb,
+  0x6fef, 0x6f80, 0x6fec, 0x6fe1, 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0,
+  0x71e7, 0x71df, 0x71ee, 0x71e6, 0x71e5, 0x71ed, 0x71ec, 0x71f4,
+  0x71e0, 0x7235, 0x7246, 0x7370, 0x7372, 0x74a9, 0x74b0, 0x74a6,
+  0x74a8, 0x7646, 0x7642, 0x764c, 0x76ea, 0x77b3, 0x77aa, 0x77b0,
+  0x77ac, 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef,
+  0x7901, 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe,
+  0x7bf7, 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf,
+  0x7cd9, 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43,
+  0x7e2b, 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48,
+  0x7e35, 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072,
+  0x8070, 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba,
+  /* 0x75 */
+  0x81c2, 0x81c0, 0x81bf, 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209,
+  0x8271, 0x85aa, 0x8584, 0x857e, 0x859c, 0x8591, 0x8594, 0x85af,
+  0x859b, 0x8587, 0x85a8, 0x858a, 0x85a6, 0x8667, 0x87c0, 0x87d1,
+  0x87b3, 0x87d2, 0x87c6, 0x87ab, 0x87bb, 0x87ba, 0x87c8, 0x87cb,
+  0x893b, 0x8936, 0x8944, 0x8938, 0x893d, 0x89ac, 0x8b0e, 0x8b17,
+  0x8b19, 0x8b1b, 0x8b0a, 0x8b20, 0x8b1d, 0x8b04, 0x8b10, 0x8c41,
+  0x8c3f, 0x8c73, 0x8cfa, 0x8cfd, 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8,
+  0x8e49, 0x8e4b, 0x8e48, 0x8e4a, 0x8f44, 0x8f3e, 0x8f42, 0x8f45,
+  0x8f3f, 0x907f, 0x907d, 0x9084, 0x9081, 0x9082, 0x9080, 0x9139,
+  0x91a3, 0x919e, 0x919c, 0x934d, 0x9382, 0x9328, 0x9375, 0x934a,
+  0x9365, 0x934b, 0x9318, 0x937e, 0x936c, 0x935b, 0x9370, 0x935a,
+  0x9354, 0x95ca, 0x95cb, 0x95cc, 0x95c8, 0x95c6,
+  /* 0x76 */
+  0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0, 0x97d3, 0x9846,
+  0x98b6, 0x9935, 0x9a01, 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad,
+  0x9d3b, 0x9d3f, 0x9e8b, 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb,
+  0x9f3e, 0x9f4b, 0x53e2, 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38,
+  0x5f5e, 0x61e3, 0x6233, 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa,
+  0x64fb, 0x64f7, 0x65b7, 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3,
+  0x6abb, 0x6ab8, 0x6ac2, 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf,
+  0x7009, 0x700b, 0x6ffe, 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb,
+  0x71fc, 0x71fe, 0x71f8, 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515,
+  0x7656, 0x7658, 0x7652, 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e,
+  0x79ae, 0x7a61, 0x7a62, 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27,
+  0x7c2a, 0x7c1e, 0x7c23, 0x7c21, 0x7ce7, 0x7e54,
+  /* 0x77 */
+  0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52, 0x7e59, 0x7f48, 0x7ff9,
+  0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf, 0x820a, 0x85cf, 0x85a9,
+  0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba, 0x85b9, 0x87ef, 0x87ec,
+  0x87f2, 0x87e0, 0x8986, 0x89b2, 0x89f4, 0x8b28, 0x8b39, 0x8b2c,
+  0x8b2b, 0x8c50, 0x8d05, 0x8e59, 0x8e63, 0x8e66, 0x8e64, 0x8e5f,
+  0x8e55, 0x8ec0, 0x8f49, 0x8f4d, 0x9087, 0x9083, 0x9088, 0x91ab,
+  0x91ac, 0x91d0, 0x9394, 0x938a, 0x9396, 0x93a2, 0x93b3, 0x93ae,
+  0x93ac, 0x93b0, 0x9398, 0x939a, 0x9397, 0x95d4, 0x95d6, 0x95d0,
+  0x95d5, 0x96e2, 0x96dc, 0x96d9, 0x96db, 0x96de, 0x9724, 0x97a3,
+  0x97a6, 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853,
+  0x98ba, 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1,
+  0x9b03, 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca,
+  /* 0x78 */
+  0x9bc9, 0x9bfd, 0x9bc8, 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0,
+  0x9f15, 0x9f2c, 0x5133, 0x56a5, 0x56a8, 0x58de, 0x58df, 0x58e2,
+  0x5bf5, 0x9f90, 0x5eec, 0x61f2, 0x61f7, 0x61f6, 0x61f5, 0x6500,
+  0x650f, 0x66e0, 0x66dd, 0x6ae5, 0x6add, 0x6ada, 0x6ad3, 0x701b,
+  0x701f, 0x7028, 0x701a, 0x701d, 0x7015, 0x7018, 0x7206, 0x720d,
+  0x7258, 0x72a2, 0x7378, 0x737a, 0x74bd, 0x74ca, 0x74e3, 0x7587,
+  0x7586, 0x765f, 0x7661, 0x77c7, 0x7919, 0x79b1, 0x7a6b, 0x7a69,
+  0x7c3e, 0x7c3f, 0x7c38, 0x7c3d, 0x7c37, 0x7c40, 0x7e6b, 0x7e6d,
+  0x7e79, 0x7e69, 0x7e6a, 0x7e73, 0x7f85, 0x7fb6, 0x7fb9, 0x7fb8,
+  0x81d8, 0x85e9, 0x85dd, 0x85ea, 0x85d5, 0x85e4, 0x85e5, 0x85f7,
+  0x87fb, 0x8805, 0x880d, 0x87f9, 0x87fe, 0x8960, 0x895f, 0x8956,
+  0x895e, 0x8b41, 0x8b5c, 0x8b58, 0x8b49, 0x8b5a,
+  /* 0x79 */
+  0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a, 0x8e7c, 0x8e72,
+  0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54, 0x8f4e, 0x8fad,
+  0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1, 0x93df, 0x93c3,
+  0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd, 0x93d8, 0x93e4,
+  0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a, 0x9727, 0x9761,
+  0x97dc, 0x97fb, 0x985e, 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949,
+  0x9a16, 0x9a19, 0x9b0d, 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89,
+  0x9d61, 0x9d72, 0x9d6a, 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4,
+  0x52f8, 0x56b7, 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43,
+  0x5b7d, 0x5bf6, 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519,
+  0x66e6, 0x6727, 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b,
+  0x74cf, 0x7662, 0x7665, 0x7926, 0x792a, 0x792c,
+  /* 0x7a */
+  0x792b, 0x7ac7, 0x7af6, 0x7c4c, 0x7c43, 0x7c4d, 0x7cef, 0x7cf0,
+  0x8fae, 0x7e7d, 0x7e7c, 0x7e82, 0x7f4c, 0x8000, 0x81da, 0x8266,
+  0x85fb, 0x85f9, 0x8611, 0x85fa, 0x8606, 0x860b, 0x8607, 0x860a,
+  0x8814, 0x8815, 0x8964, 0x89ba, 0x89f8, 0x8b70, 0x8b6c, 0x8b66,
+  0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f, 0x8d0d, 0x8e89, 0x8e81, 0x8e85,
+  0x8e82, 0x91b4, 0x91cb, 0x9418, 0x9403, 0x93fd, 0x95e1, 0x9730,
+  0x98c4, 0x9952, 0x9951, 0x99a8, 0x9a2b, 0x9a30, 0x9a37, 0x9a35,
+  0x9c13, 0x9c0d, 0x9e79, 0x9eb5, 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63,
+  0x9f61, 0x5137, 0x5138, 0x56c1, 0x56c0, 0x56c2, 0x5914, 0x5c6c,
+  0x5dcd, 0x61fc, 0x61fe, 0x651d, 0x651c, 0x6595, 0x66e9, 0x6afb,
+  0x6b04, 0x6afa, 0x6bb2, 0x704c, 0x721b, 0x72a7, 0x74d6, 0x74d4,
+  0x7669, 0x77d3, 0x7c50, 0x7e8f, 0x7e8c, 0x7fbc,
+  /* 0x7b */
+  0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821, 0x881f, 0x896a,
+  0x896c, 0x89bd, 0x8b74, 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d,
+  0x8e8b, 0x8f5f, 0x8faf, 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a,
+  0x9438, 0x9432, 0x942b, 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff,
+  0x9867, 0x9865, 0x9957, 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf,
+  0x9b54, 0x9b51, 0x9c2d, 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8,
+  0x9e9d, 0x9eef, 0x9f19, 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b,
+  0x56c8, 0x56ca, 0x56c9, 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff,
+  0x6524, 0x6b0a, 0x6b61, 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a,
+  0x766e, 0x766c, 0x79b3, 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df,
+  0x8972, 0x896f, 0x89fc, 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93,
+  0x8f61, 0x9148, 0x9444, 0x9451, 0x9452, 0x973d,
+  /* 0x7c */
+  0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955, 0x9a55, 0x9a4d, 0x9ad2,
+  0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b, 0x9dd3, 0x9dd7, 0x9f34,
+  0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6, 0x6200, 0x6523, 0x652b,
+  0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca, 0x7c64, 0x7c63, 0x7c65,
+  0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638, 0x863f, 0x8831, 0x8b8a,
+  0x9090, 0x908f, 0x9463, 0x9460, 0x9464, 0x9768, 0x986f, 0x995c,
+  0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4, 0x9ad1, 0x9c54, 0x9c57,
+  0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1, 0x58e9, 0x652c, 0x705e,
+  0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88, 0x8836, 0x8839, 0x8862,
+  0x8b93, 0x8b92, 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742,
+  0x9748, 0x9744, 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f,
+  0x9df9, 0x9dfa, 0x9e7c, 0x9e7d, 0x9f07, 0x9f77,
+  /* 0x7d */
+  0x9f72, 0x5ef3, 0x6b16, 0x7063, 0x7c6c, 0x7c6e, 0x883b, 0x89c0,
+  0x8ea1, 0x91c1, 0x9472, 0x9470, 0x9871, 0x995e, 0x9ad6, 0x9b23,
+  0x9ecc, 0x7064, 0x77da, 0x8b9a, 0x9477, 0x97c9, 0x9a62, 0x9a65,
+  0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, 0x947d, 0x947e, 0x947c, 0x9c77,
+  0x9c78, 0x9ef7, 0x8c54, 0x947f, 0x9e1a, 0x7228, 0x9a6a, 0x9b31,
+  0x9e1b, 0x9e1e, 0x7c72,
+};
+
+static int
+cns11643_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x21 && c1 <= 0x26) || (c1 == 0x42) || (c1 >= 0x44 && c1 <= 0x7d)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        if (i < 3102) {
+          if (i < 500)
+            wc = cns11643_1_2uni_page21[i];
+        } else if (i < 3290) {
+          if (i < 3135)
+            wc = cns11643_1_2uni_page42[i-3102];
+        } else {
+          if (i < 8691)
+            wc = cns11643_1_2uni_page44[i-3290];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
diff --git a/libiconv/cns11643_2.h b/libiconv/cns11643_2.h
new file mode 100644 (file)
index 0000000..851d396
--- /dev/null
@@ -0,0 +1,1093 @@
+
+/*
+ * CNS 11643-1986 plane 2
+ */
+
+static const unsigned short cns11643_2_2uni_page21[7650] = {
+  /* 0x21 */
+  0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47,
+  0x4e8d, 0x56d7, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, 0x4e2e,
+  0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, 0x53b9,
+  0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, 0x6bcc,
+  0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, 0x4ee1,
+  0x4edd, 0x4eda, 0x520c, 0x5209, 0x531c, 0x534c, 0x5722, 0x5723,
+  0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73,
+  0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36,
+  0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a,
+  0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00,
+  0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04,
+  0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5210, 0x52a6,
+  /* 0x22 */
+  0x5322, 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e,
+  0x572a, 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e,
+  0x5977, 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b,
+  0x5c7e, 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5,
+  0x5fd4, 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262,
+  0x6259, 0x6260, 0x625a, 0x6265, 0x6537, 0x65ef, 0x65ee, 0x673e,
+  0x6739, 0x6738, 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18,
+  0x6c46, 0x6c52, 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, 0x6c4c,
+  0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, 0x7a75,
+  0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, 0x897e,
+  0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, 0x9620,
+  0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53,
+  /* 0x23 */
+  0x4f64, 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d,
+  0x4f33, 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221,
+  0x52ad, 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430,
+  0x5437, 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418,
+  0x543d, 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7,
+  0x56e5, 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906,
+  0x5940, 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990,
+  0x598f, 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d,
+  0x5c8f, 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93,
+  0x5c95, 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88,
+  0x5e8d, 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0,
+  0x5fed, 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4,
+  /* 0x24 */
+  0x5fe3, 0x5ffa, 0x5fef, 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a,
+  0x6283, 0x628c, 0x628e, 0x628f, 0x6294, 0x6287, 0x6271, 0x627b,
+  0x627a, 0x6270, 0x6281, 0x6288, 0x6277, 0x627d, 0x6272, 0x6274,
+  0x65f0, 0x65f4, 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, 0x6759,
+  0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, 0x6bd0,
+  0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, 0x6c8f,
+  0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, 0x6c9c,
+  0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, 0x7263,
+  0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, 0x7395,
+  0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, 0x7595,
+  0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, 0x809c,
+  0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293,
+  /* 0x25 */
+  0x828a, 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1,
+  0x90a5, 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d,
+  0x4e33, 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76,
+  0x4f74, 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a,
+  0x4f79, 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92,
+  0x4f82, 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235,
+  0x5232, 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c,
+  0x5392, 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488,
+  0x546b, 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d,
+  0x546f, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7,
+  0x56f9, 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776,
+  0x5780, 0x5775, 0x577b, 0x5773, 0x5774, 0x5762,
+  /* 0x26 */
+  0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce,
+  0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1,
+  0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93,
+  0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf,
+  0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7,
+  0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19,
+  0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d,
+  0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034,
+  0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d,
+  0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214,
+  0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca,
+  0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0,
+  /* 0x27 */
+  0x62b8, 0x653d, 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612,
+  0x6608, 0x65fb, 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611,
+  0x6610, 0x66f6, 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776,
+  0x677b, 0x6798, 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a,
+  0x679f, 0x6791, 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779,
+  0x6794, 0x6b25, 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec,
+  0x6ceb, 0x6cee, 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7,
+  0x6cd0, 0x6cc2, 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, 0x6cd2,
+  0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, 0x6d30,
+  0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, 0x7094,
+  0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, 0x7082,
+  0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8,
+  /* 0x28 */
+  0x72c9, 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4,
+  0x73a1, 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd,
+  0x74e8, 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3,
+  0x76f1, 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa,
+  0x77f7, 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75,
+  0x7cfd, 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad,
+  0x8220, 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5,
+  0x82a7, 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1,
+  0x82a9, 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f,
+  0x866d, 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6,
+  0x8fd5, 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639,
+  0x963d, 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5,
+  /* 0x29 */
+  0x4fd3, 0x4fb2, 0x4fc9, 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9,
+  0x4fbb, 0x4fb3, 0x4fdb, 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9,
+  0x4fec, 0x5244, 0x5249, 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397,
+  0x5396, 0x5399, 0x5398, 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf,
+  0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6,
+  0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0,
+  0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b,
+  0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4,
+  0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd,
+  0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db,
+  0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8,
+  0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb,
+  /* 0x2a */
+  0x5cdb, 0x5cde, 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3,
+  0x5cd4, 0x5ccf, 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9,
+  0x5e21, 0x5e22, 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2,
+  0x5e9b, 0x5ea3, 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037,
+  0x6039, 0x6054, 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049,
+  0x605b, 0x604c, 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058,
+  0x6066, 0x606e, 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5,
+  0x630e, 0x6303, 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6,
+  0x6300, 0x6313, 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541,
+  0x6543, 0x65aa, 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c,
+  0x6626, 0x6622, 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639,
+  0x662e, 0x670f, 0x6710, 0x67c1, 0x67f2, 0x67c8,
+  /* 0x2b */
+  0x67ba, 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5,
+  0x67eb, 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6,
+  0x67ee, 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2,
+  0x67fc, 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa,
+  0x67c9, 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84,
+  0x6bb6, 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34,
+  0x6d2d, 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33,
+  0x6d04, 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42,
+  0x6d01, 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20,
+  0x6d2c, 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be,
+  0x70b1, 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249,
+  0x724a, 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca,
+  /* 0x2c */
+  0x72e4, 0x72e8, 0x72eb, 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385,
+  0x73cc, 0x73c2, 0x73c8, 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4,
+  0x73eb, 0x73bf, 0x73c7, 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb,
+  0x74ec, 0x74ee, 0x752e, 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679,
+  0x76c4, 0x7708, 0x7703, 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb,
+  0x76fa, 0x77e7, 0x77e8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810,
+  0x780f, 0x780e, 0x7809, 0x7803, 0x7813, 0x794a, 0x794c, 0x794b,
+  0x7945, 0x7944, 0x79d5, 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80,
+  0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f,
+  0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d,
+  0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7,
+  0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5,
+  /* 0x2d */
+  0x80e3, 0x80d9, 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7,
+  0x80e6, 0x80cd, 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9,
+  0x8307, 0x82e8, 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4,
+  0x82ec, 0x82e1, 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0,
+  0x82ea, 0x82e4, 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674,
+  0x867c, 0x8673, 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3,
+  0x8a04, 0x8a07, 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1,
+  0x90bd, 0x90bf, 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8,
+  0x91d4, 0x91d3, 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e,
+  0x501e, 0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5,
+  0x4ff4, 0x5033, 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c,
+  0x5020, 0x5027, 0x5035, 0x502f, 0x5031, 0x500e,
+  /* 0x2e */
+  0x515a, 0x5194, 0x5193, 0x51ca, 0x51c4, 0x51c5, 0x51c8, 0x51ce,
+  0x5261, 0x525a, 0x5252, 0x525e, 0x525f, 0x5255, 0x5262, 0x52cd,
+  0x530e, 0x539e, 0x5526, 0x54e2, 0x5517, 0x5512, 0x54e7, 0x54f3,
+  0x54e4, 0x551a, 0x54ff, 0x5504, 0x5508, 0x54eb, 0x5511, 0x5505,
+  0x54f1, 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503,
+  0x550b, 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba,
+  0x57c6, 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0,
+  0x57b9, 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e,
+  0x5a15, 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7,
+  0x5bad, 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee,
+  0x5cf1, 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae,
+  0x5eaa, 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d,
+  /* 0x2f */
+  0x605a, 0x6067, 0x6041, 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081,
+  0x609d, 0x6083, 0x6095, 0x609b, 0x6097, 0x6087, 0x609c, 0x608e,
+  0x6219, 0x6246, 0x62f2, 0x6310, 0x6356, 0x632c, 0x6344, 0x6345,
+  0x6336, 0x6343, 0x63e4, 0x6339, 0x634b, 0x634a, 0x633c, 0x6329,
+  0x6341, 0x6334, 0x6358, 0x6354, 0x6359, 0x632d, 0x6347, 0x6333,
+  0x635a, 0x6351, 0x6338, 0x6357, 0x6340, 0x6348, 0x654a, 0x6546,
+  0x65c6, 0x65c3, 0x65c4, 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651,
+  0x6712, 0x6713, 0x681f, 0x681a, 0x6849, 0x6832, 0x6833, 0x683b,
+  0x684b, 0x684f, 0x6816, 0x6831, 0x681c, 0x6835, 0x682b, 0x682d,
+  0x682f, 0x684e, 0x6844, 0x6834, 0x681d, 0x6812, 0x6814, 0x6826,
+  0x6828, 0x682e, 0x684d, 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f,
+  0x6b2d, 0x6b31, 0x6b34, 0x6b6d, 0x8082, 0x6b88,
+  /* 0x30 */
+  0x6be6, 0x6be4, 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a,
+  0x6d63, 0x6d64, 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62,
+  0x6d6d, 0x6d6f, 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e,
+  0x6d67, 0x6d60, 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98,
+  0x6d2f, 0x6d68, 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83,
+  0x6d7b, 0x6d7d, 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd,
+  0x70cb, 0x7f39, 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4,
+  0x70cd, 0x70c5, 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242,
+  0x7278, 0x7277, 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6,
+  0x72f3, 0x72fb, 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc,
+  0x73e7, 0x73e3, 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd,
+  0x73da, 0x73d7, 0x73d8, 0x73e8, 0x74de, 0x74df,
+  /* 0x31 */
+  0x74f4, 0x74f5, 0x7521, 0x755b, 0x755f, 0x75b0, 0x75c1, 0x75bb,
+  0x75c4, 0x75c0, 0x75bf, 0x75b6, 0x75ba, 0x768a, 0x76c9, 0x771d,
+  0x771b, 0x7710, 0x7713, 0x7712, 0x7723, 0x7711, 0x7715, 0x7719,
+  0x771a, 0x7722, 0x7727, 0x7823, 0x782c, 0x7822, 0x7835, 0x782f,
+  0x7828, 0x782e, 0x782b, 0x7821, 0x7829, 0x7833, 0x782a, 0x7831,
+  0x7954, 0x795b, 0x794f, 0x795c, 0x7953, 0x7952, 0x7951, 0x79eb,
+  0x79ec, 0x79e0, 0x79ee, 0x79ed, 0x79ea, 0x79dc, 0x79de, 0x79dd,
+  0x7a86, 0x7a89, 0x7a85, 0x7a8b, 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8,
+  0x7b10, 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e,
+  0x7b09, 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d,
+  0x7c85, 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13,
+  0x7d1f, 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61,
+  /* 0x32 */
+  0x7f5e, 0x7f60, 0x7f5d, 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2,
+  0x7fc0, 0x8016, 0x803e, 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5,
+  0x8101, 0x80fb, 0x8100, 0x8201, 0x822f, 0x8225, 0x8333, 0x832d,
+  0x8344, 0x8319, 0x8351, 0x8325, 0x8356, 0x833f, 0x8341, 0x8326,
+  0x831c, 0x8322, 0x8342, 0x834e, 0x831b, 0x832a, 0x8308, 0x833c,
+  0x834d, 0x8316, 0x8324, 0x8320, 0x8337, 0x832f, 0x8329, 0x8347,
+  0x8345, 0x834c, 0x8353, 0x831e, 0x832c, 0x834b, 0x8327, 0x8348,
+  0x8653, 0x8652, 0x86a2, 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e,
+  0x8687, 0x8697, 0x8686, 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699,
+  0x86a1, 0x86a7, 0x8695, 0x8698, 0x868e, 0x869d, 0x8690, 0x8694,
+  0x8843, 0x8844, 0x886d, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871,
+  0x887f, 0x886f, 0x8883, 0x887e, 0x8874, 0x887c,
+  /* 0x33 */
+  0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4, 0x8ca3, 0x8d76, 0x8d78,
+  0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3, 0x8ffe, 0x8ff5, 0x9002,
+  0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6, 0x90d6, 0x90e0, 0x90d9,
+  0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8, 0x90db, 0x90d7, 0x90dc,
+  0x90e4, 0x9150, 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c,
+  0x965f, 0x96bc, 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a,
+  0x5061, 0x505e, 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048,
+  0x504d, 0x5041, 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f,
+  0x5069, 0x506b, 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073,
+  0x5057, 0x5051, 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6,
+  0x52d3, 0x532d, 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550,
+  0x5534, 0x552a, 0x5551, 0x5562, 0x5536, 0x5535,
+  /* 0x34 */
+  0x5530, 0x5552, 0x5545, 0x550c, 0x5532, 0x5565, 0x554e, 0x5539,
+  0x5548, 0x552d, 0x553b, 0x5540, 0x554b, 0x570a, 0x5707, 0x57fb,
+  0x5814, 0x57e2, 0x57f6, 0x57dc, 0x57f4, 0x5800, 0x57ed, 0x57fd,
+  0x5808, 0x57f8, 0x580b, 0x57f3, 0x57cf, 0x5807, 0x57ee, 0x57e3,
+  0x57f2, 0x57e5, 0x57ec, 0x57e1, 0x580e, 0x57fc, 0x5810, 0x57e7,
+  0x5801, 0x580c, 0x57f1, 0x57e9, 0x57f0, 0x580d, 0x5804, 0x595c,
+  0x5a60, 0x5a58, 0x5a55, 0x5a67, 0x5a5e, 0x5a38, 0x5a35, 0x5a6d,
+  0x5a50, 0x5a5f, 0x5a65, 0x5a6c, 0x5a53, 0x5a64, 0x5a57, 0x5a43,
+  0x5a5d, 0x5a52, 0x5a44, 0x5a5b, 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d,
+  0x5a39, 0x5a4c, 0x5a70, 0x5a69, 0x5a47, 0x5a51, 0x5a56, 0x5a42,
+  0x5a5c, 0x5b72, 0x5b6e, 0x5bc1, 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b,
+  0x5d1d, 0x5d1a, 0x5d20, 0x5d0c, 0x5d28, 0x5d0d,
+  /* 0x35 */
+  0x5d26, 0x5d25, 0x5d0f, 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e,
+  0x5e3e, 0x5e34, 0x5eb1, 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36,
+  0x5f38, 0x5f9b, 0x5f96, 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be,
+  0x60b0, 0x60ba, 0x60d3, 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd,
+  0x60c8, 0x60b1, 0x60db, 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd,
+  0x60c0, 0x6332, 0x6365, 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e,
+  0x63ad, 0x639d, 0x6397, 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390,
+  0x636e, 0x63af, 0x6375, 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4,
+  0x633b, 0x639f, 0x6378, 0x6385, 0x6381, 0x6391, 0x638d, 0x6370,
+  0x6553, 0x65cd, 0x6665, 0x6661, 0x665b, 0x6659, 0x665c, 0x6662,
+  0x6718, 0x6879, 0x6887, 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae,
+  0x68ab, 0x6956, 0x686f, 0x68a3, 0x68ac, 0x68a9,
+  /* 0x36 */
+  0x6875, 0x6874, 0x68b2, 0x688f, 0x6877, 0x6892, 0x687c, 0x686b,
+  0x6872, 0x68aa, 0x6880, 0x6871, 0x687e, 0x689b, 0x6896, 0x688b,
+  0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b, 0x6891, 0x688c, 0x688a,
+  0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38, 0x6b91, 0x6b8f, 0x6b8d,
+  0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab, 0x6db4, 0x6db3, 0x6e74,
+  0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6, 0x6dd4, 0x6e00, 0x6dc8,
+  0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5, 0x6ddc, 0x6ddd, 0x6ddb,
+  0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0, 0x6dba, 0x6dd5, 0x6dc2,
+  0x6dcf, 0x6dc9, 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd,
+  0x6de3, 0x6dbb, 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c,
+  0x70f0, 0x7104, 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113,
+  0x7100, 0x70f8, 0x70f6, 0x710b, 0x7102, 0x710e,
+  /* 0x37 */
+  0x727e, 0x727b, 0x727c, 0x727f, 0x731d, 0x7317, 0x7307, 0x7311,
+  0x7318, 0x730a, 0x7308, 0x72ff, 0x730f, 0x731e, 0x7388, 0x73f6,
+  0x73f8, 0x73f5, 0x7404, 0x7401, 0x73fd, 0x7407, 0x7400, 0x73fa,
+  0x73fc, 0x73ff, 0x740c, 0x740b, 0x73f4, 0x7408, 0x7564, 0x7563,
+  0x75ce, 0x75d2, 0x75cf, 0x75cb, 0x75cc, 0x75d1, 0x75d0, 0x768f,
+  0x7689, 0x76d3, 0x7739, 0x772f, 0x772d, 0x7731, 0x7732, 0x7734,
+  0x7733, 0x773d, 0x7725, 0x773b, 0x7735, 0x7848, 0x7852, 0x7849,
+  0x784d, 0x784a, 0x784c, 0x7826, 0x7845, 0x7850, 0x7964, 0x7967,
+  0x7969, 0x796a, 0x7963, 0x796b, 0x7961, 0x79bb, 0x79fa, 0x79f8,
+  0x79f6, 0x79f7, 0x7a8f, 0x7a94, 0x7a90, 0x7b35, 0x7b3b, 0x7b34,
+  0x7b25, 0x7b30, 0x7b22, 0x7b24, 0x7b33, 0x7b18, 0x7b2a, 0x7b1d,
+  0x7b31, 0x7b2b, 0x7b2d, 0x7b2f, 0x7b32, 0x7b38,
+  /* 0x38 */
+  0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3, 0x7d35, 0x7d3d,
+  0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29, 0x7d41, 0x7d47,
+  0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63, 0x7f95, 0x7f9c,
+  0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0, 0x7fd1, 0x7fc7,
+  0x7fcf, 0x7fc9, 0x801f, 0x801e, 0x801b, 0x8047, 0x8043, 0x8048,
+  0x8118, 0x8125, 0x8119, 0x811b, 0x812d, 0x811f, 0x812c, 0x811e,
+  0x8121, 0x8115, 0x8127, 0x811d, 0x8122, 0x8211, 0x8238, 0x8233,
+  0x823a, 0x8234, 0x8232, 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d,
+  0x837a, 0x8373, 0x83a4, 0x8374, 0x838f, 0x8381, 0x8395, 0x8399,
+  0x8375, 0x8394, 0x83a9, 0x837d, 0x8383, 0x838c, 0x839d, 0x839b,
+  0x83aa, 0x838b, 0x837e, 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0,
+  0x837f, 0x83a6, 0x8387, 0x83ae, 0x8376, 0x8659,
+  /* 0x39 */
+  0x8656, 0x86bf, 0x86b7, 0x86c2, 0x86c1, 0x86c5, 0x86ba, 0x86b0,
+  0x86c8, 0x86b9, 0x86b3, 0x86b8, 0x86cc, 0x86b4, 0x86bb, 0x86bc,
+  0x86c3, 0x86bd, 0x86be, 0x8852, 0x8889, 0x8895, 0x88a8, 0x88a2,
+  0x88aa, 0x889a, 0x8891, 0x88a1, 0x889f, 0x8898, 0x88a7, 0x8899,
+  0x889b, 0x8897, 0x88a4, 0x88ac, 0x888c, 0x8893, 0x888e, 0x8982,
+  0x89d6, 0x89d9, 0x89d5, 0x8a30, 0x8a27, 0x8a2c, 0x8a1e, 0x8c39,
+  0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d, 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79,
+  0x8dbc, 0x8dc2, 0x8db9, 0x8dbf, 0x8dc1, 0x8ed8, 0x8ede, 0x8edd,
+  0x8edc, 0x8ed7, 0x8ee0, 0x8ee1, 0x9024, 0x900b, 0x9011, 0x901c,
+  0x900c, 0x9021, 0x90ef, 0x90ea, 0x90f0, 0x90f4, 0x90f2, 0x90f3,
+  0x90d4, 0x90eb, 0x90ec, 0x90e9, 0x9156, 0x9158, 0x915a, 0x9153,
+  0x9155, 0x91ec, 0x91f4, 0x91f1, 0x91f3, 0x91f8,
+  /* 0x3a */
+  0x91e4, 0x91f9, 0x91ea, 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a,
+  0x9586, 0x9588, 0x967c, 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf,
+  0x976a, 0x9804, 0x98e5, 0x9997, 0x509b, 0x5095, 0x5094, 0x509e,
+  0x508b, 0x50a3, 0x5083, 0x508c, 0x508e, 0x509d, 0x5068, 0x509c,
+  0x5092, 0x5082, 0x5087, 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4,
+  0x53a7, 0x5591, 0x55a8, 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2,
+  0x5593, 0x5588, 0x558f, 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4,
+  0x557d, 0x558c, 0x55a6, 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c,
+  0x5829, 0x5837, 0x5819, 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5,
+  0x5848, 0x5825, 0x581c, 0x581b, 0x5833, 0x583f, 0x5836, 0x582e,
+  0x5839, 0x5838, 0x582d, 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94,
+  0x5a9f, 0x5a7a, 0x5aa2, 0x5a9e, 0x5a78, 0x5aa6,
+  /* 0x3b */
+  0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae, 0x5a37, 0x5a84, 0x5a8a,
+  0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b, 0x5a7d, 0x5a8c, 0x5a9c,
+  0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd, 0x5bcb, 0x5bd4, 0x5bd1,
+  0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37, 0x5d43, 0x5d6b, 0x5d41,
+  0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e, 0x5d55, 0x5d33, 0x5d3a,
+  0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42, 0x5d39, 0x5d49, 0x5d38,
+  0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45, 0x5e44, 0x5e41, 0x5f58,
+  0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9, 0x60cc, 0x60e2, 0x60ce,
+  0x60c4, 0x6114, 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113,
+  0x60f8, 0x60fc, 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110,
+  0x60ff, 0x6104, 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce,
+  0x63e5, 0x63e8, 0x63ef, 0x63c3, 0x649d, 0x63f3,
+  /* 0x3c */
+  0x63ca, 0x63e0, 0x63f6, 0x63d5, 0x63f2, 0x63f5, 0x6461, 0x63df,
+  0x63be, 0x63dd, 0x63dc, 0x63c4, 0x63d8, 0x63d3, 0x63c2, 0x63c7,
+  0x63cc, 0x63cb, 0x63c8, 0x63f0, 0x63d7, 0x63d9, 0x6532, 0x6567,
+  0x656a, 0x6564, 0x655c, 0x6568, 0x6565, 0x658c, 0x659d, 0x659e,
+  0x65ae, 0x65d0, 0x65d2, 0x667c, 0x666c, 0x667b, 0x6680, 0x6671,
+  0x6679, 0x666a, 0x6672, 0x6701, 0x690c, 0x68d3, 0x6904, 0x68dc,
+  0x692a, 0x68ec, 0x68ea, 0x68f1, 0x690f, 0x68d6, 0x68f7, 0x68eb,
+  0x68e4, 0x68f6, 0x6913, 0x6910, 0x68f3, 0x68e1, 0x6907, 0x68cc,
+  0x6908, 0x6970, 0x68b4, 0x6911, 0x68ef, 0x68c6, 0x6914, 0x68f8,
+  0x68d0, 0x68fd, 0x68fc, 0x68e8, 0x690b, 0x690a, 0x6917, 0x68ce,
+  0x68c8, 0x68dd, 0x68de, 0x68e6, 0x68f4, 0x68d1, 0x6906, 0x68d4,
+  0x68e9, 0x6915, 0x6925, 0x68c7, 0x6b39, 0x6b3b,
+  /* 0x3d */
+  0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95, 0x6bbd, 0x6bf0,
+  0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47, 0x6e1f, 0x6e49,
+  0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b, 0x6e3f, 0x6e41,
+  0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40, 0x6e51, 0x6e3b,
+  0x6e03, 0x6e2e, 0x6e5e, 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28,
+  0x6e60, 0x6e71, 0x6e6b, 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65,
+  0x6e27, 0x6e78, 0x6e64, 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66,
+  0x6e35, 0x6e36, 0x6e5a, 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e,
+  0x7131, 0x7123, 0x7125, 0x7122, 0x7132, 0x711f, 0x7128, 0x713a,
+  0x711b, 0x724b, 0x725a, 0x7288, 0x7289, 0x7286, 0x7285, 0x728b,
+  0x7312, 0x730b, 0x7330, 0x7322, 0x7331, 0x7333, 0x7327, 0x7332,
+  0x732d, 0x7326, 0x7323, 0x7335, 0x730c, 0x742e,
+  /* 0x3e */
+  0x742c, 0x7430, 0x742b, 0x7416, 0x741a, 0x7421, 0x742d, 0x7431,
+  0x7424, 0x7423, 0x741d, 0x7429, 0x7420, 0x7432, 0x74fb, 0x752f,
+  0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1, 0x75e6, 0x75dd, 0x75df,
+  0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da, 0x7746, 0x7747, 0x7744,
+  0x774d, 0x7745, 0x774a, 0x774e, 0x774b, 0x774c, 0x77de, 0x77ec,
+  0x7860, 0x7864, 0x7865, 0x785c, 0x786d, 0x7871, 0x786a, 0x786e,
+  0x7870, 0x7869, 0x7868, 0x785e, 0x7862, 0x7974, 0x7973, 0x7972,
+  0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c, 0x7a04, 0x7a99, 0x7ae6,
+  0x7ae4, 0x7b4a, 0x7b47, 0x7b44, 0x7b48, 0x7b4c, 0x7b4e, 0x7b40,
+  0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8, 0x7ca1, 0x7d58, 0x7d6f,
+  0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a, 0x7d4f, 0x7d6d, 0x7d5c,
+  0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51, 0x7d5f,
+  /* 0x3f */
+  0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1,
+  0x7fd7, 0x8051, 0x804f, 0x8050, 0x80fe, 0x80d4, 0x8143, 0x814a,
+  0x8152, 0x814f, 0x8147, 0x813d, 0x814d, 0x813a, 0x81e6, 0x81ee,
+  0x81f7, 0x81f8, 0x81f9, 0x8204, 0x823c, 0x823d, 0x823f, 0x8275,
+  0x833b, 0x83cf, 0x83f9, 0x8423, 0x83c0, 0x83e8, 0x8412, 0x83e7,
+  0x83e4, 0x83fc, 0x83f6, 0x8410, 0x83c6, 0x83c8, 0x83eb, 0x83e3,
+  0x83bf, 0x8401, 0x83dd, 0x83e5, 0x83d8, 0x83ff, 0x83e1, 0x83cb,
+  0x83ce, 0x83d6, 0x83f5, 0x83c9, 0x8409, 0x840f, 0x83de, 0x8411,
+  0x8406, 0x83c2, 0x83f3, 0x83d5, 0x83fa, 0x83c7, 0x83d1, 0x83ea,
+  0x8413, 0x839a, 0x83c3, 0x83ec, 0x83ee, 0x83c4, 0x83fb, 0x83d7,
+  0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8, 0x86e2, 0x86e6, 0x86d3,
+  0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb, 0x86dc,
+  /* 0x40 */
+  0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856, 0x8855,
+  0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6, 0x88bc,
+  0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998, 0x8997,
+  0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59, 0x8a40,
+  0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51, 0x8a4a,
+  0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe, 0x8cb0,
+  0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3, 0x8dcd,
+  0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8, 0x8dd7,
+  0x8dc5, 0x8eef, 0x8ef7, 0x8efa, 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5,
+  0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4,
+  0x8ee9, 0x902d, 0x9034, 0x902f, 0x9106, 0x912c, 0x9104, 0x90ff,
+  0x90fc, 0x9108, 0x90f9, 0x90fb, 0x9101, 0x9100,
+  /* 0x41 */
+  0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, 0x9162, 0x9160,
+  0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, 0x920f, 0x920c,
+  0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, 0x9227, 0x9202,
+  0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, 0x957b, 0x958d,
+  0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689, 0x9683, 0x9680,
+  0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c, 0x9770, 0x976e,
+  0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83, 0x4e84, 0x4eb6,
+  0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca, 0x50b4, 0x50c8,
+  0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb, 0x50c9, 0x50b6,
+  0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c, 0x55c3, 0x55db,
+  0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0, 0x55d4, 0x55c4,
+  0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5,
+  /* 0x42 */
+  0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714,
+  0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855,
+  0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871,
+  0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5,
+  0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, 0x5ab7, 0x5ac0, 0x5aca,
+  0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, 0x5bd6, 0x5bd8, 0x5bd9,
+  0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, 0x5d65, 0x5d72, 0x5d6c,
+  0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, 0x5e4f, 0x5e4e, 0x5e4a,
+  0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, 0x5ecb, 0x5ec7, 0x5f40,
+  0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, 0x612b, 0x6145, 0x6136,
+  0x6132, 0x612e, 0x6146, 0x612f, 0x614f, 0x6129, 0x6140, 0x6220,
+  0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, 0x63f1,
+  /* 0x43 */
+  0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433, 0x6443,
+  0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423, 0x640c,
+  0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a, 0x641a,
+  0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e, 0x6421,
+  0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695, 0x6690,
+  0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966, 0x695f,
+  0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a, 0x6939,
+  0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935, 0x696c,
+  0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969, 0x6940,
+  0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c, 0x693b,
+  0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952, 0x692f,
+  0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42,
+  /* 0x44 */
+  0x6b48, 0x6b41, 0x6b9b, 0x6bfb, 0x6bfc, 0x6bf9, 0x6bf7, 0x6bf8,
+  0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, 0x6e9f, 0x6e93, 0x6e94,
+  0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, 0x6ebd, 0x6ec1, 0x6e9e,
+  0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, 0x6ecf, 0x6eb2, 0x6ebe,
+  0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, 0x6e8e, 0x6e8d, 0x6ea4,
+  0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, 0x6e97, 0x6eae, 0x6ea3,
+  0x7147, 0x7154, 0x7152, 0x7163, 0x7160, 0x7141, 0x715d, 0x7162,
+  0x7172, 0x7178, 0x716a, 0x7161, 0x7142, 0x7158, 0x7143, 0x714b,
+  0x7170, 0x715f, 0x7150, 0x7153, 0x7144, 0x714d, 0x715a, 0x724f,
+  0x728d, 0x728c, 0x7291, 0x7290, 0x728e, 0x733c, 0x7342, 0x733b,
+  0x733a, 0x7340, 0x734a, 0x7349, 0x7444, 0x744a, 0x744b, 0x7452,
+  0x7451, 0x7457, 0x7440, 0x744f, 0x7450, 0x744e,
+  /* 0x45 */
+  0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe, 0x74fd,
+  0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603, 0x75f7,
+  0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6, 0x75ed,
+  0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f, 0x7760,
+  0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759, 0x776d,
+  0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895, 0x7885,
+  0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896, 0x787b,
+  0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19, 0x7a12,
+  0x7a17, 0x7a15, 0x7a22, 0x7a13, 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2,
+  0x7a9e, 0x7aeb, 0x7b66, 0x7b64, 0x7b6d, 0x7b74, 0x7b69, 0x7b72,
+  0x7b65, 0x7b73, 0x7b71, 0x7b70, 0x7b61, 0x7b78, 0x7b76, 0x7b63,
+  0x7cb2, 0x7cb4, 0x7caf, 0x7d88, 0x7d86, 0x7d80,
+  /* 0x46 */
+  0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, 0x7d83, 0x7d7c,
+  0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, 0x7f6b, 0x7f67,
+  0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, 0x7fdc, 0x8021,
+  0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, 0x8162, 0x8172,
+  0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144, 0x8161, 0x821d,
+  0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1, 0x843f, 0x8456,
+  0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451, 0x8440, 0x8486,
+  0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459, 0x8474, 0x8473,
+  0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434, 0x847a, 0x8443,
+  0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b, 0x842f, 0x8442,
+  0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c, 0x8452, 0x846f,
+  0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433,
+  /* 0x47 */
+  0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450,
+  0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d,
+  0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6,
+  0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0,
+  0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, 0x89e1, 0x89e0, 0x89e2,
+  0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, 0x8a61, 0x8a3f, 0x8a77,
+  0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, 0x8a74, 0x8a7a, 0x8c3c,
+  0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, 0x8c86, 0x8c84, 0x8c85,
+  0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, 0x8d8e, 0x8d8f, 0x8d8d,
+  0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, 0x8de0, 0x8dec, 0x8df1,
+  0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, 0x8de7, 0x8df2, 0x8deb,
+  0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, 0x8f05,
+  /* 0x48 */
+  0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044, 0x9049,
+  0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114, 0x910b,
+  0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a, 0x9266,
+  0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246, 0x926d,
+  0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261, 0x9270,
+  0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253, 0x924c,
+  0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692, 0x9693,
+  0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5, 0x9773,
+  0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac, 0x98f6,
+  0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab, 0x9b5b,
+  0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4, 0x50d7,
+  0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4,
+  /* 0x49 */
+  0x50d3, 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, 0x51d8, 0x5280,
+  0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, 0x5615, 0x560c,
+  0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, 0x5602, 0x55fa,
+  0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, 0x5890, 0x5898,
+  0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, 0x5887, 0x5891,
+  0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, 0x588f, 0x58fe,
+  0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, 0x5ada, 0x5aed,
+  0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, 0x5ade, 0x5add,
+  0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3, 0x5c63, 0x5d82,
+  0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77, 0x5d8a, 0x5d89,
+  0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f, 0x5e58, 0x5e59,
+  0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc,
+  /* 0x4a */
+  0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6,
+  0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153,
+  0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165,
+  0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b,
+  0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d,
+  0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b,
+  0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459,
+  0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705,
+  0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, 0x69a0, 0x69ce, 0x6996,
+  0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, 0x698e, 0x69a7, 0x698d,
+  0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, 0x69bd, 0x69a4, 0x69d4,
+  0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, 0x6993,
+  /* 0x4b */
+  0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, 0x69b5,
+  0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, 0x6ba0,
+  0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, 0x6f25,
+  0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, 0x6f1a,
+  0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36, 0x6f73,
+  0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35, 0x6eeb,
+  0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39, 0x6f1c,
+  0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21, 0x7187,
+  0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b, 0x7186,
+  0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293, 0x7343,
+  0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475, 0x7472,
+  0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d,
+  /* 0x4c */
+  0x7590, 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614,
+  0x76b8, 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f,
+  0x777e, 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e,
+  0x78ab, 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998,
+  0x798a, 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, 0x7997, 0x7988,
+  0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, 0x7a28, 0x7a26,
+  0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, 0x7b8a, 0x7b91,
+  0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, 0x7b85, 0x7b98,
+  0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, 0x7cbc, 0x7cba,
+  0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, 0x7dc0, 0x7dc5,
+  0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, 0x7daf, 0x7db9,
+  0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9,
+  /* 0x4d */
+  0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024,
+  0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c,
+  0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce,
+  0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd,
+  0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2,
+  0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6,
+  0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db,
+  0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740,
+  0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741,
+  0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712,
+  0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724,
+  0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1,
+  /* 0x4e */
+  0x88f2, 0x88fa, 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, 0x88f0,
+  0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, 0x89eb,
+  0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, 0x8c3d,
+  0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, 0x8e02,
+  0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, 0x8e05,
+  0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, 0x9123,
+  0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, 0x9121,
+  0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, 0x9276,
+  0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6, 0x929a,
+  0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e, 0x9282,
+  0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286, 0x928c,
+  0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d,
+  /* 0x4f */
+  0x928b, 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a,
+  0x977e, 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f,
+  0x97ce, 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907,
+  0x999d, 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd,
+  0x99c7, 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61,
+  0x9b5f, 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130,
+  0x50f8, 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd,
+  0x510a, 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c,
+  0x5635, 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, 0x565a, 0x5640,
+  0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, 0x563a, 0x571a,
+  0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, 0x58ac, 0x58a5,
+  0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7,
+  /* 0x50 */
+  0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05,
+  0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93,
+  0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d,
+  0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2,
+  0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b,
+  0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d,
+  0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485,
+  0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f,
+  0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2,
+  0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af,
+  0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4,
+  0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d,
+  /* 0x51 */
+  0x69fe, 0x6a27, 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40,
+  0x6a08, 0x69e6, 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04,
+  0x6a18, 0x6a25, 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16,
+  0x6b51, 0x6ba5, 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff,
+  0x6c02, 0x6f41, 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, 0x6f8d,
+  0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, 0x6f76,
+  0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, 0x6f94,
+  0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, 0x6f90,
+  0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, 0x6f6a,
+  0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, 0x71a9,
+  0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, 0x719c,
+  0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352,
+  /* 0x52 */
+  0x735e, 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359,
+  0x7362, 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485,
+  0x7488, 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e,
+  0x7619, 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c,
+  0x769d, 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd,
+  0x78bb, 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3,
+  0x78c4, 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b,
+  0x6b76, 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe,
+  0x7bac, 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8,
+  0x7ccc, 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1,
+  0x7e03, 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf,
+  0x7f76, 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb,
+  /* 0x53 */
+  0x7fea, 0x7fec, 0x7fe6, 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f,
+  0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253,
+  0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500,
+  0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c,
+  0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2,
+  0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9,
+  0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e,
+  0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9,
+  0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756,
+  0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b,
+  0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750,
+  0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a,
+  /* 0x54 */
+  0x876e, 0x875c, 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767,
+  0x8769, 0x885a, 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918,
+  0x8919, 0x8906, 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4,
+  0x89a3, 0x89ed, 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3,
+  0x8ad1, 0x8ad4, 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5,
+  0x8ad8, 0x8ac3, 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f,
+  0x8ce5, 0x8cdf, 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0,
+  0x8d9c, 0x8da1, 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e,
+  0x8e15, 0x8e1b, 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, 0x8e14,
+  0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, 0x8f24,
+  0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, 0x9070,
+  0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129,
+  /* 0x55 */
+  0x912a, 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181,
+  0x9182, 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9,
+  0x92b6, 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd,
+  0x92cc, 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6,
+  0x92cd, 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3,
+  0x92b5, 0x92e1, 0x9325, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab,
+  0x95ae, 0x95b0, 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702,
+  0x975a, 0x978a, 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d,
+  0x9826, 0x9829, 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908,
+  0x98fa, 0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd,
+  0x99cf, 0x99d3, 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb,
+  0x99d7, 0x99cc, 0x9ab3, 0x9aec, 0x9aeb, 0x9af3,
+  /* 0x56 */
+  0x9af2, 0x9af1, 0x9b46, 0x9b43, 0x9b67, 0x9b74, 0x9b71, 0x9b66,
+  0x9b76, 0x9b75, 0x9b70, 0x9b68, 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa,
+  0x9cfd, 0x9cff, 0x9cf7, 0x9d07, 0x9d00, 0x9cf9, 0x9cfb, 0x9d08,
+  0x9d05, 0x9d04, 0x9e83, 0x9ed3, 0x9f0f, 0x9f10, 0x511c, 0x5113,
+  0x5117, 0x511a, 0x5111, 0x51de, 0x5334, 0x53e1, 0x5670, 0x5660,
+  0x566e, 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677,
+  0x571c, 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2,
+  0x58bc, 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13,
+  0x5b10, 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac,
+  0x5db1, 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8,
+  0x5db2, 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f,
+  0x5ee9, 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b,
+  /* 0x57 */
+  0x5fbc, 0x5fbb, 0x619d, 0x61a8, 0x6196, 0x61c5, 0x61b4, 0x61c6,
+  0x61c1, 0x61cc, 0x61ba, 0x61bf, 0x61b8, 0x618c, 0x64d7, 0x64d6,
+  0x64d0, 0x64cf, 0x64c9, 0x64bd, 0x6489, 0x64c3, 0x64db, 0x64f3,
+  0x64d9, 0x6533, 0x657f, 0x657c, 0x65a2, 0x66c8, 0x66be, 0x66c0,
+  0x66ca, 0x66cb, 0x66cf, 0x66bd, 0x66bb, 0x66ba, 0x66cc, 0x6723,
+  0x6a34, 0x6a66, 0x6a49, 0x6a67, 0x6a32, 0x6a68, 0x6a3e, 0x6a5d,
+  0x6a6d, 0x6a76, 0x6a5b, 0x6a51, 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f,
+  0x6a41, 0x6a6a, 0x6a64, 0x6a50, 0x6a4f, 0x6a54, 0x6a6f, 0x6a69,
+  0x6a60, 0x6a3c, 0x6a5e, 0x6a56, 0x6a55, 0x6a4d, 0x6a4e, 0x6a46,
+  0x6b55, 0x6b54, 0x6b56, 0x6ba7, 0x6baa, 0x6bab, 0x6bc8, 0x6bc7,
+  0x6c04, 0x6c03, 0x6c06, 0x6fad, 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc,
+  0x6fce, 0x6fc8, 0x6f5e, 0x6fc4, 0x6fbd, 0x6f9e,
+  /* 0x58 */
+  0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba, 0x6fac, 0x6faa,
+  0x6fcf, 0x6fbf, 0x6fb8, 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf,
+  0x6fb2, 0x6fb0, 0x71c5, 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0,
+  0x71c1, 0x71cb, 0x71d4, 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8,
+  0x71bc, 0x71c6, 0x71da, 0x71db, 0x729d, 0x729e, 0x7369, 0x7366,
+  0x7367, 0x736c, 0x7365, 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0,
+  0x7494, 0x7492, 0x7495, 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d,
+  0x7631, 0x763d, 0x7633, 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb,
+  0x76e6, 0x779a, 0x779d, 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3,
+  0x7795, 0x7799, 0x7797, 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de,
+  0x78e3, 0x78db, 0x78e1, 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4,
+  0x7a44, 0x7a48, 0x7a47, 0x7ab6, 0x7ab8, 0x7ab5,
+  /* 0x59 */
+  0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7, 0x7bdd, 0x7bd5, 0x7be5,
+  0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea, 0x7be2, 0x7bdc, 0x7beb,
+  0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7, 0x7cd0, 0x7cd1, 0x7e12,
+  0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20, 0x7e13, 0x7e0e, 0x7e1c,
+  0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f, 0x7e16, 0x7e0d, 0x7e14,
+  0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c, 0x7f7a, 0x7fb1, 0x7fef,
+  0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6, 0x81ae, 0x81b9, 0x81b5,
+  0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2, 0x81b7, 0x81a7, 0x81f2,
+  0x8255, 0x8256, 0x8257, 0x8556, 0x8545, 0x856b, 0x854d, 0x8553,
+  0x8561, 0x8558, 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544,
+  0x8551, 0x8547, 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e,
+  0x8575, 0x8555, 0x8567, 0x8560, 0x858c, 0x8566,
+  /* 0x5a */
+  0x855d, 0x8554, 0x8565, 0x856c, 0x8663, 0x8665, 0x8664, 0x87a4,
+  0x879b, 0x878f, 0x8797, 0x8793, 0x8792, 0x8788, 0x8781, 0x8796,
+  0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, 0x8790, 0x8791, 0x879d,
+  0x8784, 0x8794, 0x879c, 0x879a, 0x8789, 0x891e, 0x8926, 0x8930,
+  0x892d, 0x892e, 0x8927, 0x8931, 0x8922, 0x8929, 0x8923, 0x892f,
+  0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2, 0x8af2, 0x8af4, 0x8af5,
+  0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0, 0x8ac8, 0x8ade, 0x8ae1,
+  0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91, 0x8c92, 0x8c90, 0x8cf5,
+  0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c, 0x8d6e, 0x8da5, 0x8da7,
+  0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45, 0x8e36, 0x8e3c, 0x8e3d,
+  0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36, 0x8f2e, 0x8f35, 0x8f32,
+  0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079, 0x907b,
+  /* 0x5b */
+  0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190, 0x9191,
+  0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306, 0x930f,
+  0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301, 0x9346,
+  0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9313, 0x92f9,
+  0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329, 0x9339, 0x9335,
+  0x932a, 0x9314, 0x930c, 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb,
+  0x9316, 0x95bc, 0x95cd, 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf,
+  0x95b5, 0x95bd, 0x96a9, 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799,
+  0x9797, 0x9794, 0x97f0, 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924,
+  0x991f, 0x9927, 0x9929, 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4,
+  0x99f0, 0x99e3, 0x99ea, 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4,
+  0x9abb, 0x9af6, 0x9afa, 0x9af9, 0x9af7, 0x9b33,
+  /* 0x5c */
+  0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, 0x9b7b, 0x9b82, 0x9b93,
+  0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d, 0x9b88, 0x9d25, 0x9d17,
+  0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d, 0x9d18, 0x9d22, 0x9d10,
+  0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87, 0x9eae, 0x9ead, 0x9ed5,
+  0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126, 0x5125, 0x5122, 0x5124,
+  0x5120, 0x5129, 0x52f4, 0x5693, 0x568c, 0x568d, 0x5686, 0x5684,
+  0x5683, 0x567e, 0x5682, 0x567f, 0x5681, 0x58d6, 0x58d4, 0x58cf,
+  0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23, 0x5b2c, 0x5b27, 0x5b26,
+  0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2, 0x5db7, 0x5e6c, 0x5e6a,
+  0x5fbe, 0x61c3, 0x61b5, 0x61bc, 0x61e7, 0x61e0, 0x61e5, 0x61e4,
+  0x61e8, 0x61de, 0x64ef, 0x64e9, 0x64e3, 0x64eb, 0x64e4, 0x64e8,
+  0x6581, 0x6580, 0x65b6, 0x65da, 0x66d2, 0x6a8d,
+  /* 0x5d */
+  0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b, 0x6aa1, 0x6a9e,
+  0x6a87, 0x6a93, 0x6a8e, 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91,
+  0x6a7f, 0x6aa6, 0x6a9a, 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad,
+  0x6c09, 0x6fcc, 0x6fa9, 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed,
+  0x6fe7, 0x6fe6, 0x6fde, 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1,
+  0x71f1, 0x71e8, 0x71f2, 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e,
+  0x736f, 0x7497, 0x74b2, 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1,
+  0x74a5, 0x74af, 0x7510, 0x7511, 0x7512, 0x750f, 0x7584, 0x7643,
+  0x7648, 0x7649, 0x7647, 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2,
+  0x77b7, 0x77b6, 0x77b4, 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd,
+  0x7902, 0x78fb, 0x78fc, 0x78ff, 0x78f2, 0x7905, 0x78f9, 0x78fe,
+  0x7904, 0x79ab, 0x79a8, 0x7a5c, 0x7a5b, 0x7a56,
+  /* 0x5e */
+  0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1, 0x7c05, 0x7c0f,
+  0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4, 0x7c0b, 0x7bf3,
+  0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd, 0x7c06, 0x7bf0,
+  0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c, 0x7e42, 0x7e33,
+  0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47, 0x7e29, 0x7e4c,
+  0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45, 0x7f7f, 0x7f7e,
+  0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4, 0x81cc, 0x81ca,
+  0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a, 0x825c, 0x8583,
+  0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b, 0x85a3, 0x857b,
+  0x85a4, 0x859a, 0x859e, 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a,
+  0x8578, 0x8557, 0x858e, 0x8596, 0x8586, 0x858d, 0x8599, 0x859d,
+  0x8581, 0x85a2, 0x8582, 0x8588, 0x8585, 0x8579,
+  /* 0x5f */
+  0x8576, 0x8598, 0x8590, 0x859f, 0x8668, 0x87be, 0x87aa, 0x87ad,
+  0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, 0x87bc, 0x87ae, 0x87c9,
+  0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, 0x87c4, 0x87ca, 0x87b4,
+  0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, 0x87b2, 0x8935, 0x8933,
+  0x893c, 0x893e, 0x8941, 0x8952, 0x8937, 0x8942, 0x89ad, 0x89af,
+  0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18, 0x8b16, 0x8b11, 0x8b05,
+  0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15, 0x8b07, 0x8b0d, 0x8b08,
+  0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f, 0x8c70, 0x8c72, 0x8c71,
+  0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f, 0x8e4e, 0x8e4d, 0x8e53,
+  0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40, 0x9085, 0x907e, 0x9138,
+  0x919a, 0x91a2, 0x919b, 0x9199, 0x919f, 0x91a1, 0x919d, 0x91a0,
+  0x93a1, 0x9383, 0x93af, 0x9364, 0x9356, 0x9347,
+  /* 0x60 */
+  0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351, 0x9360,
+  0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355, 0x9352,
+  0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363, 0x9367,
+  0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3, 0x95c5, 0x95b7,
+  0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718, 0x971d, 0x9719,
+  0x979a, 0x97a1, 0x979c, 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1,
+  0x9841, 0x9844, 0x984a, 0x9849, 0x9845, 0x9843, 0x9925, 0x992b,
+  0x992c, 0x992a, 0x9933, 0x9932, 0x992f, 0x992d, 0x9931, 0x9930,
+  0x9998, 0x99a3, 0x99a1, 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9,
+  0x99f8, 0x99f6, 0x99fb, 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe,
+  0x9afe, 0x9afd, 0x9b01, 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e,
+  0x9b9b, 0x9ba6, 0x9ba1, 0x9ba5, 0x9ba4, 0x9b86,
+  /* 0x61 */
+  0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, 0x9d67, 0x9d36, 0x9d2e,
+  0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45, 0x9d42, 0x9d43, 0x9d3e,
+  0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d, 0x9e8a, 0x9e89, 0x9e8d,
+  0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff, 0x9f24, 0x9f23, 0x9f22,
+  0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e, 0x5698, 0x569c, 0x5697,
+  0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c, 0x5c69, 0x5c6a, 0x5dc0,
+  0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed, 0x61ee, 0x61f1, 0x61ea,
+  0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff, 0x6504, 0x64fd, 0x64f8,
+  0x6501, 0x6503, 0x64fc, 0x6594, 0x65db, 0x66da, 0x66db, 0x66d8,
+  0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6, 0x6aba, 0x6ab6, 0x6ab7,
+  0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9, 0x6c0b, 0x7007, 0x700c,
+  0x700d, 0x7001, 0x7005, 0x7014, 0x700e, 0x6fff,
+  /* 0x62 */
+  0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201, 0x71ff,
+  0x71f9, 0x7203, 0x71fd, 0x7376, 0x74b8, 0x74c0, 0x74b5, 0x74c1,
+  0x74be, 0x74b6, 0x74bb, 0x74c2, 0x7514, 0x7513, 0x765c, 0x7664,
+  0x7659, 0x7650, 0x7653, 0x7657, 0x765a, 0x76a6, 0x76bd, 0x76ec,
+  0x77c2, 0x77ba, 0x790c, 0x7913, 0x7914, 0x7909, 0x7910, 0x7912,
+  0x7911, 0x79ad, 0x79ac, 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20,
+  0x7c1f, 0x7c2d, 0x7c1d, 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30,
+  0x7e5c, 0x7e50, 0x7e56, 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51,
+  0x7e60, 0x7e57, 0x7e53, 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075,
+  0x81d1, 0x81d2, 0x81d0, 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0,
+  0x85c3, 0x85c2, 0x85b3, 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf,
+  0x85cb, 0x85ce, 0x85c8, 0x85c5, 0x85b1, 0x85b6,
+  /* 0x63 */
+  0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be, 0x8669, 0x87e7, 0x87e6,
+  0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5, 0x87df, 0x87f3, 0x87e4,
+  0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8, 0x87e3, 0x87d7, 0x87d9,
+  0x8801, 0x87f4, 0x87e8, 0x87dd, 0x8953, 0x894b, 0x894f, 0x894c,
+  0x8946, 0x8950, 0x8951, 0x8949, 0x8b2a, 0x8b27, 0x8b23, 0x8b33,
+  0x8b30, 0x8b35, 0x8b47, 0x8b2f, 0x8b3c, 0x8b3e, 0x8b31, 0x8b25,
+  0x8b37, 0x8b26, 0x8b36, 0x8b2e, 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a,
+  0x8c42, 0x8c75, 0x8c99, 0x8c98, 0x8c97, 0x8cfe, 0x8d04, 0x8d02,
+  0x8d00, 0x8e5c, 0x8e62, 0x8e60, 0x8e57, 0x8e56, 0x8e5e, 0x8e65,
+  0x8e67, 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46,
+  0x8f47, 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8,
+  0x91a5, 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c,
+  /* 0x64 */
+  0x9392, 0x93b7, 0x939b, 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa,
+  0x939e, 0x93a6, 0x9395, 0x9388, 0x9399, 0x939f, 0x9380, 0x938d,
+  0x93b1, 0x9391, 0x93b2, 0x93a4, 0x93a8, 0x93b4, 0x93a3, 0x95d2,
+  0x95d3, 0x95d1, 0x96b3, 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8,
+  0x96dd, 0x9723, 0x9722, 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab,
+  0x97a4, 0x97aa, 0x97a2, 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8,
+  0x97fa, 0x9850, 0x9851, 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a,
+  0x9a0f, 0x9a0b, 0x9a09, 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05,
+  0x9a07, 0x9a06, 0x9ac0, 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29,
+  0x9b35, 0x9b4a, 0x9b4c, 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf,
+  0x9bc1, 0x9bb5, 0x9bb8, 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd,
+  0x9d5c, 0x9d53, 0x9d4f, 0x9d4a, 0x9d5b, 0x9d4b,
+  /* 0x65 */
+  0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52, 0x9d54, 0x9d5f, 0x9d58,
+  0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01, 0x9f00, 0x9f16, 0x9f25,
+  0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c, 0x9f55, 0x5134, 0x5135,
+  0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad, 0x56a6, 0x56a7, 0x56aa,
+  0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912, 0x5b3d, 0x5b3e, 0x5b3f,
+  0x5dc3, 0x5e70, 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509,
+  0x650c, 0x650e, 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0,
+  0x6acc, 0x6ad1, 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb,
+  0x6acf, 0x6acd, 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027,
+  0x7020, 0x7016, 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017,
+  0x7024, 0x701c, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5,
+  0x72a6, 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5,
+  /* 0x66 */
+  0x74b7, 0x74c3, 0x7516, 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1,
+  0x791d, 0x791b, 0x7921, 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67,
+  0x7a68, 0x7c33, 0x7c3c, 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea,
+  0x7e76, 0x7e75, 0x7e78, 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72,
+  0x7e74, 0x7e68, 0x7f4b, 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd,
+  0x7ffe, 0x8078, 0x81d7, 0x81d5, 0x820b, 0x8264, 0x8261, 0x8263,
+  0x85eb, 0x85f1, 0x85ed, 0x85d9, 0x85e1, 0x85e8, 0x85da, 0x85d7,
+  0x85ec, 0x85f2, 0x85f8, 0x85d8, 0x85df, 0x85e3, 0x85dc, 0x85d1,
+  0x85f0, 0x85e6, 0x85ef, 0x85de, 0x85e2, 0x8800, 0x87fa, 0x8803,
+  0x87f6, 0x87f7, 0x8809, 0x880c, 0x880b, 0x8806, 0x87fc, 0x8808,
+  0x87ff, 0x880a, 0x8802, 0x8962, 0x895a, 0x895b, 0x8957, 0x8961,
+  0x895c, 0x8958, 0x895d, 0x8959, 0x8988, 0x89b7,
+  /* 0x67 */
+  0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40, 0x8b53, 0x8b56,
+  0x8b54, 0x8b4b, 0x8b55, 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43,
+  0x8c77, 0x8c76, 0x8c9a, 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa,
+  0x8dad, 0x8dab, 0x8e6d, 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b,
+  0x8ec2, 0x8f52, 0x8f51, 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140,
+  0x913f, 0x91b0, 0x91ad, 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da,
+  0x93d0, 0x93f9, 0x93ec, 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca,
+  0x93d4, 0x93ee, 0x93e3, 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2,
+  0x93a5, 0x93e7, 0x957d, 0x95da, 0x95db, 0x96e1, 0x9729, 0x972b,
+  0x972c, 0x9728, 0x9726, 0x97b3, 0x97b7, 0x97b6, 0x97dd, 0x97de,
+  0x97df, 0x985c, 0x9859, 0x985d, 0x9857, 0x98bf, 0x98bd, 0x98bb,
+  0x98be, 0x9948, 0x9947, 0x9943, 0x99a6, 0x99a7,
+  /* 0x68 */
+  0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b, 0x9a22, 0x9a20,
+  0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2, 0x9b0b, 0x9b0a,
+  0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0, 0x9bde, 0x9be4,
+  0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec, 0x9bdc, 0x9bd9,
+  0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81, 0x9d8a, 0x9d84,
+  0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b, 0x9d8c, 0x9d7d,
+  0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85, 0x9d73, 0x9d7b,
+  0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68, 0x9e94, 0x9e91,
+  0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d, 0x9f56, 0x9f57,
+  0x9f58, 0x5337, 0x56b2, 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6,
+  0x5dc7, 0x5eee, 0x5eef, 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516,
+  0x6515, 0x6513, 0x65df, 0x66e8, 0x66e3, 0x66e4,
+  /* 0x69 */
+  0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, 0x6af1, 0x6aee, 0x6aef,
+  0x703c, 0x7035, 0x702f, 0x7037, 0x7034, 0x7031, 0x7042, 0x7038,
+  0x703f, 0x703a, 0x7039, 0x702a, 0x7040, 0x703b, 0x7033, 0x7041,
+  0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, 0x76ab, 0x76aa,
+  0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, 0x77f2, 0x7925,
+  0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2, 0x7a6e, 0x7a6c,
+  0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47, 0x7c45, 0x7cee,
+  0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff, 0x8079, 0x81db,
+  0x81d9, 0x8268, 0x8269, 0x8622, 0x85ff, 0x8601, 0x85fe, 0x861b,
+  0x8600, 0x85f6, 0x8604, 0x8609, 0x8605, 0x860c, 0x85fd, 0x8819,
+  0x8810, 0x8811, 0x8817, 0x8813, 0x8816, 0x8963, 0x8966, 0x89b9,
+  0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68, 0x8b63,
+  /* 0x6a */
+  0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84, 0x8f59,
+  0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143, 0x9141,
+  0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb, 0x9420,
+  0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419, 0x940d,
+  0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412, 0x93fa,
+  0x9409, 0x93f8, 0x943c, 0x940a, 0x93ff, 0x93fc, 0x940c, 0x93f6,
+  0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, 0x972e, 0x972f, 0x97b9,
+  0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, 0x9863, 0x985f, 0x98c1,
+  0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, 0x994b, 0x9953, 0x9a32,
+  0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, 0x9a29, 0x9a2e, 0x9a38,
+  0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, 0x9b12, 0x9b11, 0x9c0b,
+  0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, 0x9c40,
+  /* 0x6b */
+  0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, 0x9d99,
+  0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0, 0x9d94,
+  0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8, 0x9d9e,
+  0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99, 0x9e9b,
+  0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e, 0x9f5b,
+  0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139, 0x5298,
+  0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb, 0x5dcf,
+  0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8, 0x6b00,
+  0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046, 0x721d,
+  0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d, 0x7931,
+  0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88, 0x7e8b,
+  0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd,
+  /* 0x6c */
+  0x8618, 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627,
+  0x862e, 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, 0x8829, 0x881d,
+  0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, 0x896d, 0x8969,
+  0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, 0x8b7a, 0x8b7b,
+  0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, 0x8f5b, 0x8f5d,
+  0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, 0x9436, 0x9429,
+  0x943d, 0x9430, 0x9439, 0x942a, 0x9437, 0x942c, 0x9440, 0x9431,
+  0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, 0x97bf, 0x97e1, 0x9864,
+  0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, 0x9a39, 0x9a3d, 0x9a46,
+  0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f, 0x9acd, 0x9b15, 0x9b17,
+  0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b, 0x9c1d, 0x9c1c, 0x9c2c,
+  0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21, 0x9db7,
+  /* 0x6d */
+  0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe, 0x9dc5,
+  0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac, 0x9dc8,
+  0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a, 0x9e9c,
+  0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31, 0x9f4e,
+  0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb, 0x5971,
+  0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520, 0x6526,
+  0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056, 0x7057,
+  0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5, 0x74d9,
+  0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71, 0x7c57,
+  0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f,
+  0x7f87, 0x81de, 0x826b, 0x8634, 0x8635, 0x8633, 0x862c, 0x8632,
+  0x8636, 0x882c, 0x8828, 0x8826, 0x882a, 0x8825,
+  /* 0x6e */
+  0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, 0x8b82, 0x8b86,
+  0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, 0x8e92, 0x8e90,
+  0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, 0x9450, 0x944a,
+  0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, 0x9446, 0x973f,
+  0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, 0x9a4e, 0x9a53,
+  0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49, 0x9a52, 0x9a50,
+  0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55, 0x9c46, 0x9c48,
+  0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c, 0x9c37, 0x9c34,
+  0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde, 0x9dda, 0x9dcb,
+  0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9, 0x9dd8, 0x9dd6,
+  0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35, 0x9f33, 0x9f32,
+  0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299,
+  /* 0x6f */
+  0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201,
+  0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12,
+  0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383,
+  0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640,
+  0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e,
+  0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, 0x8b8c, 0x8b8e, 0x8b8b,
+  0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, 0x8f63, 0x91bc, 0x9462,
+  0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, 0x97c5, 0x9800, 0x9a56,
+  0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, 0x9c58, 0x9c50, 0x9c4a,
+  0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, 0x9c4e, 0x9dfb, 0x9df7,
+  0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, 0x9df6, 0x9de1, 0x9dee,
+  0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, 0x9df4,
+  /* 0x70 */
+  0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, 0x9f06,
+  0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71, 0x9f70,
+  0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d, 0x66ed,
+  0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223, 0x74db,
+  0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97, 0x7f89,
+  0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94, 0x8b95,
+  0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2, 0x946b,
+  0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7, 0x97e5,
+  0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62, 0x9c5e,
+  0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05, 0x9e00,
+  0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e, 0x9f46,
+  0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8,
+  /* 0x71 */
+  0x6b18, 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8,
+  0x77d9, 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, 0x7e98, 0x7e9b,
+  0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, 0x8979, 0x897a,
+  0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, 0x8ea4, 0x8ea3,
+  0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, 0x9872, 0x995f,
+  0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, 0x9e0f, 0x9e12,
+  0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, 0x9f7b, 0x9f7a,
+  0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, 0x8ea6, 0x91c3,
+  0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9b2e, 0x9c74, 0x9c73,
+  0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4, 0x7068,
+  0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e, 0x8c9c,
+  0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc,
+  /* 0x72 */
+  0x9961, 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17,
+  0x9f48, 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480,
+  0x9481, 0x9a69, 0x9a68, 0x9e19, 0x864b, 0x8b9f, 0x9483, 0x9c79,
+  0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a, 0x7229,
+  0x9ea4, 0x9f7e, 0x9f49, 0x9f98,
+};
+
+static int
+cns11643_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x21 && c1 <= 0x72)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        {
+          if (i < 7650)
+            wc = cns11643_2_2uni_page21[i];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
diff --git a/libiconv/cns11643_3.h b/libiconv/cns11643_3.h
new file mode 100644 (file)
index 0000000..bec4b25
--- /dev/null
@@ -0,0 +1,885 @@
+
+/*
+ * CNS 11643-1986 plane 14 part 1
+ */
+
+static const unsigned short cns11643_3_2uni_page21[6147] = {
+  /* 0x21 */
+  0x4e28, 0x4e36, 0x4e3f, 0x4e85, 0x4e05, 0x4e04, 0x5182, 0x5196,
+  0x5338, 0x5369, 0x53b6, 0x4e2a, 0x4e87, 0x4e49, 0x51e2, 0x4e46,
+  0x4e8f, 0x4ebc, 0x4ebe, 0x5166, 0x51e3, 0x5204, 0x529c, 0xfffd,
+  0x5902, 0x590a, 0x5b80, 0x5ddb, 0x5e7a, 0x5e7f, 0x5ef4, 0x5f50,
+  0x5f51, 0x5f61, 0x961d, 0xfffd, 0x4e63, 0x4e62, 0x4ea3, 0x5185,
+  0x4ec5, 0x4ecf, 0x4ece, 0x4ecc, 0x5184, 0x5186, 0xfffd, 0xfffd,
+  0x51e4, 0x5205, 0x529e, 0x529d, 0x52fd, 0x5300, 0x533a, 0xfffd,
+  0x5346, 0x535d, 0x5386, 0x53b7, 0xfffd, 0x53cc, 0xfffd, 0x53ce,
+  0x5721, 0xfffd, 0x5e00, 0x5f0c, 0x6237, 0x6238, 0x6534, 0x6535,
+  0x65e0, 0xfffd, 0x738d, 0x4e97, 0x4ee0, 0xfffd, 0xfffd, 0x4ee7,
+  0xfffd, 0x4ee6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x56d8, 0x518b,
+  0x518c, 0x5199, 0x51e5, 0xfffd, 0x520b, 0xfffd,
+  /* 0x22 */
+  0xfffd, 0x5304, 0x5303, 0x5307, 0xfffd, 0x531e, 0x535f, 0x536d,
+  0x5389, 0x53ba, 0x53d0, 0xfffd, 0x53f6, 0x53f7, 0x53f9, 0xfffd,
+  0x53f4, 0xfffd, 0xfffd, 0x5724, 0x5904, 0x5918, 0x5932, 0x5930,
+  0x5934, 0xfffd, 0x5975, 0xfffd, 0x5b82, 0x5bf9, 0x5c14, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e81, 0x5e83,
+  0x5f0d, 0x5f52, 0xfffd, 0x5fca, 0x5fc7, 0x6239, 0xfffd, 0x624f,
+  0x65e7, 0x672f, 0x6b7a, 0x6c39, 0xfffd, 0xfffd, 0x6c37, 0x6c44,
+  0x6c45, 0x738c, 0x7592, 0x7676, 0x9093, 0x9092, 0xfffd, 0xfffd,
+  0x4e21, 0x4e20, 0x4e22, 0x4e68, 0x4e89, 0x4e98, 0x4ef9, 0x4eef,
+  0xfffd, 0xfffd, 0x4ef8, 0x4f06, 0x4f03, 0x4efc, 0x4eee, 0x4f16,
+  0xfffd, 0x4f28, 0x4f1c, 0x4f07, 0x4f1a, 0x4efa, 0x4f17, 0x514a,
+  0xfffd, 0x5172, 0xfffd, 0x51b4, 0x51b3, 0x51b2,
+  /* 0x23 */
+  0xfffd, 0x51e8, 0xfffd, 0x5214, 0x520f, 0x5215, 0x5218, 0x52a8,
+  0xfffd, 0x534b, 0x534f, 0xfffd, 0x5350, 0xfffd, 0x538b, 0xfffd,
+  0x53be, 0xfffd, 0x53d2, 0x5416, 0x53ff, 0xfffd, 0x5400, 0xfffd,
+  0x5405, 0x5413, 0x5415, 0xfffd, 0xfffd, 0x56e3, 0x5735, 0x5736,
+  0x5731, 0x5732, 0x58ee, 0x5905, 0x4e54, 0xfffd, 0x5936, 0xfffd,
+  0xfffd, 0xfffd, 0x597a, 0xfffd, 0x5986, 0xfffd, 0xfffd, 0x5b86,
+  0x5f53, 0x5c18, 0xfffd, 0x5c3d, 0x5c78, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x5c80, 0xfffd, 0x5e08, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x5ef5, 0x5f0e, 0xfffd, 0xfffd, 0xfffd, 0x5fd3, 0x5fda, 0xfffd,
+  0x5fdb, 0xfffd, 0x620f, 0x625d, 0x625f, 0x6267, 0x6257, 0x9f50,
+  0xfffd, 0x65eb, 0x65ea, 0xfffd, 0x6737, 0xfffd, 0x6732, 0x6736,
+  0x6b22, 0x6bce, 0xfffd, 0x6c58, 0x6c51, 0x6c77,
+  /* 0x24 */
+  0x6c3c, 0xfffd, 0x6c5a, 0xfffd, 0x6c53, 0x706f, 0x7072, 0x706e,
+  0xfffd, 0xfffd, 0x7073, 0x72b1, 0x72b2, 0xfffd, 0x738f, 0xfffd,
+  0xfffd, 0xfffd, 0x793c, 0xfffd, 0x808d, 0x808e, 0xfffd, 0x827b,
+  0xfffd, 0x8d71, 0x8fb9, 0x9096, 0x909a, 0xfffd, 0x4e24, 0x4e71,
+  0xfffd, 0x4e9c, 0x4f45, 0x4f4a, 0x4f39, 0x4f37, 0xfffd, 0x4f32,
+  0x4f42, 0xfffd, 0x4f44, 0x4f4b, 0xfffd, 0x4f40, 0x4f35, 0x4f31,
+  0x5151, 0xfffd, 0x5150, 0x514e, 0xfffd, 0xfffd, 0x519d, 0xfffd,
+  0x51b5, 0x51b8, 0x51ec, 0x5223, 0x5227, 0x5226, 0x521f, 0x522b,
+  0x5220, 0x52b4, 0x52b3, 0xfffd, 0x5325, 0x533b, 0x5374, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x544d, 0xfffd, 0xfffd, 0x543a,
+  0xfffd, 0xfffd, 0x5444, 0x544c, 0x5423, 0x541a, 0x5432, 0x544b,
+  0x5421, 0xfffd, 0x5434, 0x5449, 0x5450, 0x5422,
+  /* 0x25 */
+  0x543f, 0x5451, 0x545a, 0x542f, 0xfffd, 0x56e9, 0x56f2, 0x56f3,
+  0x56ef, 0x56ed, 0x56ec, 0x56e6, 0x5748, 0xfffd, 0x5744, 0x573f,
+  0x573c, 0x5753, 0x5756, 0xfffd, 0x575f, 0x5743, 0x5758, 0x5757,
+  0xfffd, 0xfffd, 0xfffd, 0x5746, 0xfffd, 0x573d, 0xfffd, 0x5742,
+  0x5754, 0x5755, 0x58f1, 0x58f2, 0x58f0, 0x590b, 0x9ea6, 0x56f1,
+  0x593d, 0xfffd, 0x5994, 0x598c, 0xfffd, 0x599c, 0xfffd, 0xfffd,
+  0x599f, 0xfffd, 0x599b, 0xfffd, 0x5989, 0x599a, 0xfffd, 0x6588,
+  0xfffd, 0x5b8d, 0xfffd, 0x5bfe, 0x5bff, 0x5bfd, 0x5c2b, 0xfffd,
+  0x5c84, 0x5c8e, 0x5c9c, 0xfffd, 0xfffd, 0x5c85, 0x5df5, 0x5e09,
+  0xfffd, 0xfffd, 0x5e0b, 0xfffd, 0x5e92, 0x5e90, 0x5f03, 0xfffd,
+  0x5f1e, 0x5f63, 0xfffd, 0x5fe7, 0x5ffe, 0x5fe6, 0x5fdc, 0x5fce,
+  0xfffd, 0x5ffc, 0x5fdf, 0x5fec, 0x5ff6, 0xfffd,
+  /* 0x26 */
+  0x5ff2, 0x5ff0, 0x5ff9, 0xfffd, 0x6213, 0xfffd, 0xfffd, 0x623b,
+  0x623c, 0x6282, 0xfffd, 0xfffd, 0xfffd, 0x6278, 0x628b, 0xfffd,
+  0x629e, 0x62a5, 0x629b, 0x629c, 0x6299, 0x628d, 0x6285, 0x629d,
+  0x6275, 0xfffd, 0xfffd, 0xfffd, 0x65f6, 0xfffd, 0xfffd, 0xfffd,
+  0x66f5, 0x675b, 0xfffd, 0x6754, 0x6752, 0xfffd, 0x6758, 0x6744,
+  0x674a, 0x6761, 0xfffd, 0x6c7f, 0x6c91, 0x6c9e, 0xfffd, 0x6c6e,
+  0x6c7c, 0x6c9f, 0x6c75, 0xfffd, 0x6c56, 0x6ca2, 0x6c79, 0xfffd,
+  0x6ca1, 0xfffd, 0x6caa, 0x6ca0, 0xfffd, 0x7079, 0x7077, 0x707e,
+  0xfffd, 0x7075, 0x707b, 0x7264, 0xfffd, 0x72bb, 0x72bc, 0x72c7,
+  0x72b9, 0x72be, 0x72b6, 0xfffd, 0xfffd, 0x7398, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7593, 0x7680, 0xfffd, 0x7683, 0x76c0, 0x76c1,
+  0xfffd, 0xfffd, 0x77f4, 0x77f5, 0xfffd, 0x7acc,
+  /* 0x27 */
+  0x7acd, 0x7cfa, 0x809f, 0x8091, 0x8097, 0x8094, 0xfffd, 0x8286,
+  0x828c, 0xfffd, 0x8295, 0xfffd, 0x866c, 0xfffd, 0x8fb5, 0x8fbe,
+  0x8fc7, 0xfffd, 0x8fc1, 0x90a9, 0x90a4, 0xfffd, 0xfffd, 0xfffd,
+  0x90a8, 0x9627, 0x9626, 0x962b, 0x9633, 0x9634, 0x9629, 0x4e3d,
+  0xfffd, 0x4e9d, 0x4f93, 0x4f8a, 0xfffd, 0xfffd, 0x4f6d, 0x4f8e,
+  0x4fa0, 0x4fa2, 0x4fa1, 0x4f9f, 0x4fa3, 0xfffd, 0x4f72, 0xfffd,
+  0x4f8c, 0x5156, 0xfffd, 0xfffd, 0x5190, 0xfffd, 0xfffd, 0xfffd,
+  0x51ed, 0x51fe, 0x522f, 0xfffd, 0x523c, 0x5234, 0x5239, 0x52b9,
+  0x52b5, 0x52bf, 0x5355, 0xfffd, 0x5376, 0x537a, 0x5393, 0xfffd,
+  0x53c1, 0x53c2, 0x53d5, 0x5485, 0xfffd, 0x545f, 0x5493, 0x5489,
+  0x5479, 0x9efe, 0x548f, 0x5469, 0x546d, 0xfffd, 0x5494, 0x546a,
+  0x548a, 0xfffd, 0x56fd, 0x56fb, 0x56f8, 0xfffd,
+  /* 0x28 */
+  0x56fc, 0x56f6, 0x5765, 0x5781, 0x5763, 0x5767, 0xfffd, 0x576e,
+  0x5778, 0x577f, 0xfffd, 0xfffd, 0x58f3, 0x594b, 0x594c, 0xfffd,
+  0xfffd, 0xfffd, 0x59ad, 0xfffd, 0x59c4, 0xfffd, 0x59c2, 0x59b0,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x59bf, 0xfffd, 0x59c9, 0x59b8,
+  0x59ac, 0xfffd, 0xfffd, 0xfffd, 0x59b7, 0x59d7, 0xfffd, 0x5b60,
+  0xfffd, 0x5b96, 0x5b9e, 0x5b94, 0x5b9f, 0x5b9d, 0xfffd, 0x5c00,
+  0x5c19, 0xfffd, 0xfffd, 0x5c49, 0x5c4a, 0xfffd, 0x5cbb, 0x5cc1,
+  0xfffd, 0xfffd, 0xfffd, 0x5cb9, 0x5c9e, 0x5cb4, 0x5cba, 0x5df6,
+  0x5e13, 0x5e12, 0x5e77, 0xfffd, 0x5e98, 0xfffd, 0x5e99, 0x5e9d,
+  0x5ef8, 0xfffd, 0x5ef9, 0xfffd, 0x5f06, 0x5f21, 0xfffd, 0x5f25,
+  0x5f55, 0xfffd, 0xfffd, 0xfffd, 0x5f84, 0x5f83, 0x6030, 0x6007,
+  0xfffd, 0x6036, 0xfffd, 0xfffd, 0xfffd, 0x5fe9,
+  /* 0x29 */
+  0x603d, 0x6008, 0xfffd, 0xfffd, 0x62ba, 0x62b2, 0xfffd, 0x62b7,
+  0x62e4, 0x62a7, 0xfffd, 0xfffd, 0xfffd, 0x62d5, 0x62e1, 0x62dd,
+  0x62a6, 0x62c1, 0x62c5, 0x62c0, 0x62df, 0x62e0, 0x62de, 0xfffd,
+  0x6589, 0xfffd, 0x65a6, 0x65ba, 0xfffd, 0x65ff, 0xfffd, 0x6617,
+  0x6618, 0x6601, 0x65fe, 0xfffd, 0x670c, 0xfffd, 0x676b, 0x6796,
+  0x6782, 0x678a, 0xfffd, 0x67a3, 0xfffd, 0x67a2, 0x678f, 0xfffd,
+  0x67f9, 0x6780, 0x6b26, 0x6b27, 0x6b68, 0x6b69, 0xfffd, 0x6b81,
+  0x6bb4, 0x6bd1, 0xfffd, 0xfffd, 0x6c1c, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x6c97, 0x6c6c, 0x6cdf, 0xfffd, 0x6cea, 0xfffd,
+  0x6ce4, 0x6cd8, 0x6cb2, 0x6cce, 0x6cc8, 0xfffd, 0x708b, 0x7088,
+  0x7090, 0x708f, 0xfffd, 0x7087, 0x7089, 0x708d, 0x7081, 0xfffd,
+  0x708c, 0xfffd, 0xfffd, 0x7240, 0xfffd, 0xfffd,
+  /* 0x2a */
+  0x7265, 0x7266, 0x7268, 0xfffd, 0xfffd, 0x72cd, 0x72d3, 0x72db,
+  0xfffd, 0x72cf, 0x73a7, 0x73a3, 0x739e, 0xfffd, 0x73af, 0xfffd,
+  0xfffd, 0x73aa, 0x739c, 0xfffd, 0x7542, 0x7544, 0x753b, 0x7541,
+  0xfffd, 0x759b, 0x759e, 0xfffd, 0x79c4, 0x79c3, 0x79c6, 0xfffd,
+  0xfffd, 0x79c7, 0xfffd, 0x79ca, 0xfffd, 0xfffd, 0x7acf, 0x7c76,
+  0x7c74, 0x7cff, 0x7cfc, 0xfffd, 0xfffd, 0x7f59, 0x80a8, 0xfffd,
+  0xfffd, 0x80b0, 0xfffd, 0x80b3, 0xfffd, 0x80a4, 0x80b6, 0x80a7,
+  0x80ac, 0xfffd, 0x80a6, 0x5367, 0x820e, 0x82c4, 0x833e, 0x829c,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x82aa, 0xfffd, 0x82c9,
+  0xfffd, 0xfffd, 0x82a6, 0x82b2, 0xfffd, 0xfffd, 0xfffd, 0x8fcc,
+  0x8fd9, 0x8fca, 0x8fd8, 0x8fcf, 0x90b7, 0xfffd, 0x90ad, 0x90b9,
+  0x9637, 0xfffd, 0x9641, 0x963e, 0x96b6, 0x9751,
+  /* 0x2b */
+  0x9763, 0x4e57, 0x4e79, 0x4eb2, 0x4eb0, 0x4eaf, 0x4eb1, 0x4fd2,
+  0x4fd5, 0xfffd, 0x4fbe, 0x4fb8, 0x4fb0, 0x4fb1, 0x4fc8, 0xfffd,
+  0xfffd, 0x4fc6, 0x4fcc, 0x4fe5, 0x4fe3, 0x4fb4, 0x516a, 0xfffd,
+  0x519f, 0xfffd, 0x51c1, 0xfffd, 0x51c2, 0x51c3, 0x5245, 0x5248,
+  0xfffd, 0xfffd, 0x524f, 0xfffd, 0xfffd, 0x52c5, 0x52ca, 0x52c4,
+  0x5327, 0x5358, 0x537d, 0xfffd, 0x53dd, 0x53dc, 0x53da, 0x53d9,
+  0x54b9, 0xfffd, 0x54d0, 0x54b4, 0x54ca, 0xfffd, 0x54a3, 0x54da,
+  0x54a4, 0xfffd, 0x54b2, 0x549e, 0x549f, 0x54b5, 0xfffd, 0xfffd,
+  0x54cd, 0xfffd, 0x54cc, 0xfffd, 0x5700, 0x57ac, 0x5791, 0x578e,
+  0x578d, 0x5792, 0x57a1, 0x5790, 0x57a6, 0x57a8, 0xfffd, 0x579c,
+  0x5796, 0x57a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58f5, 0xfffd,
+  0x5909, 0x5908, 0xfffd, 0x5952, 0xfffd, 0xfffd,
+  /* 0x2c */
+  0x59df, 0xfffd, 0x59eb, 0x59ef, 0x59f0, 0x59d5, 0x5a0d, 0x5a04,
+  0x59f9, 0x5a02, 0x59f8, 0x59e2, 0x59d9, 0x59e7, 0x5b6a, 0xfffd,
+  0xfffd, 0x5bab, 0xfffd, 0x5c1b, 0x5c2f, 0xfffd, 0x663c, 0xfffd,
+  0xfffd, 0xfffd, 0x5cd1, 0x5cdc, 0x5ce6, 0x5ce1, 0x5ccd, 0xfffd,
+  0x5ce2, 0x5cdd, 0x5ce5, 0x5dfb, 0x5dfa, 0x5e1e, 0xfffd, 0x5ea1,
+  0xfffd, 0xfffd, 0x5efc, 0x5efb, 0x5f2f, 0xfffd, 0xfffd, 0x5f66,
+  0xfffd, 0xfffd, 0xfffd, 0x605c, 0xfffd, 0x604e, 0x6051, 0xfffd,
+  0xfffd, 0x6023, 0x6031, 0x607c, 0x6052, 0xfffd, 0x6060, 0x604a,
+  0x6061, 0xfffd, 0x6218, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x631f, 0x6317, 0x62ea, 0x6321, 0x6304, 0x6305,
+  0xfffd, 0x6531, 0x6544, 0x6540, 0xfffd, 0x6542, 0x65be, 0xfffd,
+  0x6629, 0x661b, 0xfffd, 0x6623, 0x662c, 0x661a,
+  /* 0x2d */
+  0x6630, 0x663b, 0x661e, 0x6637, 0x6638, 0xfffd, 0x670e, 0xfffd,
+  0xfffd, 0x67e8, 0x67d6, 0xfffd, 0x67c7, 0x67bc, 0x6852, 0x67bf,
+  0x67d5, 0x67fe, 0x8363, 0x67fb, 0xfffd, 0x67b1, 0x6801, 0x6805,
+  0x6800, 0x67d7, 0xfffd, 0x6b2a, 0x6b6b, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x6be1, 0xfffd, 0xfffd, 0x6d23, 0x6cff, 0x6d14, 0x6d05,
+  0x6d13, 0x6d06, 0x6d21, 0xfffd, 0x6d15, 0x6caf, 0x6cf4, 0x6d02,
+  0x6d45, 0xfffd, 0x6d26, 0xfffd, 0x6d44, 0xfffd, 0x6d24, 0x70a5,
+  0xfffd, 0x70a3, 0xfffd, 0x70a2, 0x70bb, 0x70a0, 0x70aa, 0xfffd,
+  0xfffd, 0x70a8, 0x70b6, 0x70b2, 0x70a7, 0xfffd, 0xfffd, 0x70b9,
+  0x722e, 0xfffd, 0x723c, 0xfffd, 0x726d, 0xfffd, 0xfffd, 0x72e7,
+  0x72ed, 0xfffd, 0x72ec, 0x72e5, 0x72e2, 0xfffd, 0x73c4, 0x73bd,
+  0x73cf, 0x73c9, 0x73c1, 0x73d0, 0xfffd, 0x73ce,
+  /* 0x2e */
+  0x74ed, 0x74eb, 0xfffd, 0x74ef, 0x7549, 0x7550, 0x7546, 0x754a,
+  0xfffd, 0x754d, 0x75a6, 0xfffd, 0xfffd, 0xfffd, 0x75a8, 0xfffd,
+  0xfffd, 0x76c7, 0x76ff, 0xfffd, 0x76fd, 0x77e6, 0x780a, 0xfffd,
+  0x7804, 0x780b, 0x7807, 0xfffd, 0x7815, 0x7808, 0xfffd, 0x79d3,
+  0x79d4, 0x79d0, 0x79d7, 0x7a7c, 0xfffd, 0xfffd, 0x7a7d, 0x7a83,
+  0x7a82, 0xfffd, 0x7ad4, 0x7ad5, 0x7ad3, 0x7ad0, 0x7ad2, 0x7afe,
+  0x7afc, 0x7c77, 0x7c7c, 0x7c7b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7f8f, 0x80d3, 0xfffd, 0x80cb,
+  0x80d2, 0xfffd, 0x8109, 0x80e2, 0x80df, 0x80c6, 0xfffd, 0x8224,
+  0x82f7, 0x82d8, 0x82dd, 0xfffd, 0xfffd, 0x82f8, 0x82fc, 0xfffd,
+  0xfffd, 0x82e9, 0xfffd, 0x82ee, 0xfffd, 0x82d0, 0x830e, 0x82e2,
+  0x830b, 0x82fd, 0x5179, 0x8676, 0xfffd, 0x8678,
+  /* 0x2f */
+  0xfffd, 0xfffd, 0x8675, 0x867d, 0xfffd, 0x8842, 0x8866, 0xfffd,
+  0x898c, 0x8a05, 0xfffd, 0x8a06, 0xfffd, 0x8c9f, 0xfffd, 0x8ff1,
+  0x8fe7, 0x8fe9, 0x8fef, 0x90c2, 0x90bc, 0xfffd, 0x90c6, 0x90c0,
+  0xfffd, 0xfffd, 0x90cd, 0x90c9, 0xfffd, 0x90c4, 0xfffd, 0x9581,
+  0xfffd, 0x9cec, 0x5032, 0x4ff9, 0x501d, 0x4fff, 0x5004, 0x4ff0,
+  0x5003, 0xfffd, 0x5002, 0x4ffc, 0x4ff2, 0x5024, 0x5008, 0x5036,
+  0x502e, 0xfffd, 0x5010, 0x5038, 0x5039, 0x4ffd, 0x5056, 0x4ffb,
+  0x51a3, 0x51a6, 0x51a1, 0xfffd, 0xfffd, 0x51c7, 0x51c9, 0x5260,
+  0x5264, 0x5259, 0x5265, 0x5267, 0x5257, 0x5263, 0xfffd, 0x5253,
+  0xfffd, 0x52cf, 0xfffd, 0x52ce, 0x52d0, 0x52d1, 0x52cc, 0xfffd,
+  0xfffd, 0xfffd, 0x550d, 0x54f4, 0xfffd, 0x5513, 0x54ef, 0x54f5,
+  0x54f9, 0x5502, 0x5500, 0xfffd, 0xfffd, 0x5518,
+  /* 0x30 */
+  0x54f0, 0x54f6, 0xfffd, 0xfffd, 0x5519, 0xfffd, 0x5705, 0x57c9,
+  0xfffd, 0x57b7, 0x57cd, 0xfffd, 0xfffd, 0xfffd, 0x57be, 0x57bb,
+  0xfffd, 0x57db, 0x57c8, 0x57c4, 0x57c5, 0x57d1, 0x57ca, 0x57c0,
+  0xfffd, 0xfffd, 0x5a21, 0x5a2a, 0xfffd, 0x5a1d, 0xfffd, 0x5a0b,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5a22, 0xfffd, 0xfffd, 0x5a24,
+  0xfffd, 0x5a14, 0x5a31, 0xfffd, 0x5a2f, 0x5a1a, 0x5a12, 0xfffd,
+  0xfffd, 0x5a26, 0xfffd, 0xfffd, 0x5bbc, 0x5bbb, 0x5bb7, 0x5c05,
+  0x5c06, 0x5c52, 0x5c53, 0xfffd, 0xfffd, 0x5cfa, 0x5ceb, 0xfffd,
+  0x5cf3, 0x5cf5, 0x5ce9, 0x5cef, 0xfffd, 0x5e2a, 0x5e30, 0x5e2e,
+  0x5e2c, 0x5e2f, 0x5eaf, 0x5ea9, 0xfffd, 0x5efd, 0x5f32, 0x5f8e,
+  0x5f93, 0x5f8f, 0x604f, 0x6099, 0xfffd, 0x607e, 0xfffd, 0x6074,
+  0x604b, 0x6073, 0x6075, 0xfffd, 0xfffd, 0x6056,
+  /* 0x31 */
+  0x60a9, 0x608b, 0x60a6, 0xfffd, 0x6093, 0x60ae, 0x609e, 0x60a7,
+  0x6245, 0xfffd, 0xfffd, 0x632e, 0xfffd, 0x6352, 0x6330, 0x635b,
+  0xfffd, 0x6319, 0x631b, 0xfffd, 0x6331, 0x635d, 0x6337, 0x6335,
+  0x6353, 0xfffd, 0x635c, 0x633f, 0x654b, 0xfffd, 0xfffd, 0x658b,
+  0xfffd, 0x659a, 0x6650, 0x6646, 0x664e, 0x6640, 0xfffd, 0x664b,
+  0x6648, 0xfffd, 0x6660, 0x6644, 0x664d, 0xfffd, 0x6837, 0x6824,
+  0xfffd, 0xfffd, 0x681b, 0x6836, 0xfffd, 0x682c, 0x6819, 0x6856,
+  0x6847, 0x683e, 0x681e, 0xfffd, 0x6815, 0x6822, 0x6827, 0x6859,
+  0x6858, 0x6855, 0x6830, 0x6823, 0x6b2e, 0x6b2b, 0x6b30, 0x6b6c,
+  0xfffd, 0x6b8b, 0xfffd, 0x6be9, 0x6bea, 0x6be5, 0x6d6b, 0xfffd,
+  0xfffd, 0x6d73, 0x6d57, 0xfffd, 0xfffd, 0x6d5d, 0x6d56, 0x6d8f,
+  0x6d5b, 0x6d1c, 0x6d9a, 0x6d9b, 0x6d99, 0xfffd,
+  /* 0x32 */
+  0x6d81, 0x6d71, 0xfffd, 0xfffd, 0x6d72, 0x6d5c, 0x6d96, 0x70c4,
+  0x70db, 0x70cc, 0x70d0, 0x70e3, 0x70df, 0xfffd, 0x70d6, 0x70ee,
+  0x70d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x727a, 0xfffd, 0x72f5,
+  0x7302, 0xfffd, 0xfffd, 0x73e2, 0x73ec, 0x73d5, 0x73f9, 0x73df,
+  0x73e6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x73e4, 0x73e1, 0x74f3,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7556, 0x7555, 0x7558, 0x7557,
+  0x755e, 0x75c3, 0xfffd, 0xfffd, 0x75b4, 0xfffd, 0x75b1, 0xfffd,
+  0xfffd, 0x76cb, 0x76cc, 0x772a, 0xfffd, 0x7716, 0x770f, 0xfffd,
+  0xfffd, 0x773f, 0x772b, 0x770e, 0x7724, 0xfffd, 0x7721, 0x7718,
+  0x77dd, 0xfffd, 0xfffd, 0x7824, 0x7836, 0xfffd, 0x7958, 0x7959,
+  0xfffd, 0x7962, 0x79da, 0x79d9, 0xfffd, 0x79e1, 0x79e5, 0x79e8,
+  0x79db, 0xfffd, 0x79e2, 0x79f0, 0xfffd, 0xfffd,
+  /* 0x33 */
+  0xfffd, 0xfffd, 0x7ada, 0x7add, 0xfffd, 0x7adb, 0x7adc, 0xfffd,
+  0xfffd, 0x7b0d, 0x7b0b, 0x7b14, 0x7c8e, 0x7c86, 0xfffd, 0x7c87,
+  0x7c83, 0x7c8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d24, 0xfffd,
+  0xfffd, 0xfffd, 0x7d25, 0x7f62, 0x7f93, 0x7f99, 0x7f97, 0xfffd,
+  0xfffd, 0x7fc4, 0x7fc6, 0x800a, 0xfffd, 0xfffd, 0x8040, 0x803c,
+  0x803b, 0x80f6, 0x80ff, 0x80ee, 0x8104, 0x8103, 0x8107, 0xfffd,
+  0xfffd, 0x80f7, 0xfffd, 0xfffd, 0x822d, 0xfffd, 0x8227, 0x8229,
+  0x831f, 0x8357, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8321, 0xfffd,
+  0xfffd, 0x8318, 0x8358, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8684, 0x869f, 0x869b, 0x8689, 0x86a6, 0x8692, 0x868f, 0x86a0,
+  0x884f, 0x8878, 0x887a, 0x886e, 0x887b, 0x8884, 0x8873, 0xfffd,
+  0xfffd, 0x8a0d, 0x8a0b, 0x8a19, 0xfffd, 0xfffd,
+  /* 0x34 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ff9, 0x9009, 0x9008, 0xfffd,
+  0x90de, 0x9151, 0xfffd, 0xfffd, 0x91db, 0x91df, 0x91de, 0x91d6,
+  0x91e0, 0x9585, 0x9660, 0x9659, 0xfffd, 0x9656, 0xfffd, 0xfffd,
+  0x96bd, 0xfffd, 0xfffd, 0x5042, 0x5059, 0xfffd, 0x5044, 0x5066,
+  0x5052, 0x5054, 0x5071, 0x5050, 0x507b, 0x507c, 0x5058, 0xfffd,
+  0xfffd, 0x5079, 0x506c, 0x5078, 0x51a8, 0x51d1, 0x51cf, 0x5268,
+  0x5276, 0x52d4, 0xfffd, 0x53a0, 0x53c4, 0xfffd, 0x5558, 0x554c,
+  0x5568, 0xfffd, 0x5549, 0xfffd, 0xfffd, 0x555d, 0x5529, 0xfffd,
+  0x5554, 0x5553, 0xfffd, 0x555a, 0xfffd, 0x553a, 0x553f, 0x552b,
+  0x57ea, 0xfffd, 0x57ef, 0xfffd, 0xfffd, 0x57dd, 0x57fe, 0xfffd,
+  0x57de, 0x57e6, 0xfffd, 0x57e8, 0x57ff, 0x5803, 0x58f7, 0x68a6,
+  0x591f, 0xfffd, 0x595b, 0x595d, 0x595e, 0xfffd,
+  /* 0x35 */
+  0xfffd, 0x5a2b, 0xfffd, 0x5a3b, 0xfffd, 0xfffd, 0x5a61, 0x5a3a,
+  0x5a6e, 0x5a4b, 0x5a6b, 0xfffd, 0xfffd, 0x5a45, 0x5a4e, 0x5a68,
+  0x5a3d, 0x5a71, 0x5a3f, 0x5a6f, 0x5a75, 0xfffd, 0x5a73, 0x5a2c,
+  0x5a59, 0x5a54, 0x5a4f, 0x5a63, 0xfffd, 0xfffd, 0x5bc8, 0xfffd,
+  0x5bc3, 0xfffd, 0x5c5b, 0x5c61, 0xfffd, 0x5d21, 0x5d0a, 0x5d09,
+  0xfffd, 0x5d2c, 0x5d08, 0xfffd, 0xfffd, 0x5d2a, 0x5d15, 0xfffd,
+  0x5d10, 0x5d13, 0xfffd, 0x5d2f, 0x5d18, 0xfffd, 0x5de3, 0x5e39,
+  0x5e35, 0x5e3a, 0x5e32, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5ebb,
+  0x5eba, 0x5f34, 0x5f39, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6098,
+  0xfffd, 0x60d0, 0xfffd, 0xfffd, 0xfffd, 0x60d7, 0x60aa, 0xfffd,
+  0x60a1, 0x60a4, 0xfffd, 0x60ee, 0xfffd, 0x60e7, 0xfffd, 0xfffd,
+  0x60de, 0xfffd, 0xfffd, 0x637e, 0x638b, 0xfffd,
+  /* 0x36 */
+  0xfffd, 0x6379, 0x6386, 0x6393, 0xfffd, 0x6373, 0x636a, 0xfffd,
+  0x636c, 0xfffd, 0x637f, 0xfffd, 0x63b2, 0x63ba, 0xfffd, 0xfffd,
+  0x6366, 0x6374, 0xfffd, 0x655a, 0xfffd, 0x654e, 0x654d, 0x658d,
+  0x658e, 0x65ad, 0xfffd, 0x65c7, 0x65ca, 0xfffd, 0x65c9, 0xfffd,
+  0x65e3, 0x6657, 0xfffd, 0x6663, 0x6667, 0x671a, 0x6719, 0x6716,
+  0xfffd, 0xfffd, 0x689e, 0x68b6, 0x6898, 0x6873, 0xfffd, 0x689a,
+  0x688e, 0x68b7, 0x68db, 0x68a5, 0x686c, 0x68c1, 0x6884, 0xfffd,
+  0xfffd, 0x6895, 0x687a, 0x6899, 0xfffd, 0x68b8, 0x68b9, 0x6870,
+  0xfffd, 0x6b35, 0xfffd, 0x6b90, 0x6bbb, 0x6bed, 0xfffd, 0xfffd,
+  0xfffd, 0x6dc1, 0x6dc3, 0x6dce, 0xfffd, 0xfffd, 0x6dad, 0x6e04,
+  0xfffd, 0x6db9, 0xfffd, 0x6de7, 0xfffd, 0x6e08, 0x6e06, 0xfffd,
+  0x6e0a, 0x6db0, 0xfffd, 0x6df8, 0x6e0c, 0xfffd,
+  /* 0x37 */
+  0x6db1, 0xfffd, 0x6e02, 0x6e07, 0x6e09, 0x6e01, 0x6e17, 0x6dff,
+  0x6e12, 0xfffd, 0xfffd, 0x7103, 0x7107, 0x7101, 0x70f5, 0x70f1,
+  0x7108, 0x70f2, 0x710f, 0xfffd, 0x70fe, 0xfffd, 0xfffd, 0xfffd,
+  0x731a, 0x7310, 0x730e, 0x7402, 0x73f3, 0xfffd, 0xfffd, 0x73fb,
+  0xfffd, 0xfffd, 0xfffd, 0x751b, 0x7523, 0x7561, 0x7568, 0xfffd,
+  0x7567, 0x75d3, 0xfffd, 0xfffd, 0x7690, 0xfffd, 0xfffd, 0x76d5,
+  0x76d7, 0x76d6, 0x7730, 0xfffd, 0x7726, 0xfffd, 0x7740, 0xfffd,
+  0x771e, 0xfffd, 0xfffd, 0xfffd, 0x7847, 0xfffd, 0x784b, 0x7851,
+  0x784f, 0x7842, 0x7846, 0xfffd, 0x796e, 0x796c, 0x79f2, 0xfffd,
+  0x79f1, 0x79f5, 0x79f3, 0x79f9, 0xfffd, 0xfffd, 0xfffd, 0x7a9a,
+  0x7a93, 0x7a91, 0x7ae1, 0xfffd, 0xfffd, 0x7b21, 0x7b1c, 0x7b16,
+  0x7b17, 0x7b36, 0x7b1f, 0xfffd, 0x7c93, 0x7c99,
+  /* 0x38 */
+  0x7c9a, 0x7c9c, 0xfffd, 0x7d49, 0xfffd, 0x7d34, 0x7d37, 0xfffd,
+  0x7d2d, 0xfffd, 0x7d4c, 0xfffd, 0xfffd, 0x7d48, 0xfffd, 0xfffd,
+  0x7f3b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8008, 0x801a, 0xfffd,
+  0x801d, 0xfffd, 0x8049, 0x8045, 0x8044, 0x7c9b, 0xfffd, 0xfffd,
+  0x812a, 0x812e, 0xfffd, 0xfffd, 0x8131, 0xfffd, 0x811a, 0x8134,
+  0x8117, 0xfffd, 0xfffd, 0xfffd, 0x831d, 0x8371, 0x8384, 0x8380,
+  0x8372, 0x83a1, 0xfffd, 0x8379, 0x8391, 0xfffd, 0x839f, 0x83ad,
+  0xfffd, 0xfffd, 0x8323, 0xfffd, 0x8385, 0x839c, 0x83b7, 0x8658,
+  0x865a, 0xfffd, 0x8657, 0x86b2, 0xfffd, 0x86ae, 0xfffd, 0xfffd,
+  0xfffd, 0x8845, 0x889c, 0x8894, 0x88a3, 0x888f, 0x88a5, 0x88a9,
+  0x88a6, 0x888a, 0x88a0, 0x8890, 0x8992, 0x8991, 0x8994, 0xfffd,
+  0x8a26, 0x8a32, 0x8a28, 0xfffd, 0xfffd, 0x8a1c,
+  /* 0x39 */
+  0xfffd, 0x8a2b, 0x8a20, 0xfffd, 0x8a29, 0xfffd, 0xfffd, 0xfffd,
+  0x8a21, 0x8c3a, 0xfffd, 0x8c5b, 0x8c58, 0x8c7c, 0xfffd, 0x8ca6,
+  0x8cae, 0x8cad, 0x8d65, 0xfffd, 0x8d7e, 0xfffd, 0x8d7c, 0x8d7f,
+  0x8d7a, 0x8dbd, 0xfffd, 0xfffd, 0x8dc0, 0x8dbb, 0x8ead, 0x8eaf,
+  0x8ed6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ed9, 0xfffd,
+  0xfffd, 0x9012, 0x900e, 0x9025, 0xfffd, 0x9013, 0x90ee, 0xfffd,
+  0x90ab, 0x90f7, 0xfffd, 0x9159, 0x9154, 0x91f2, 0x91f0, 0x91e5,
+  0x91f6, 0xfffd, 0xfffd, 0x9587, 0xfffd, 0x965a, 0xfffd, 0xfffd,
+  0x966e, 0xfffd, 0xfffd, 0xfffd, 0x9679, 0xfffd, 0x98e1, 0x98e6,
+  0xfffd, 0x9ec4, 0x9ed2, 0x4e80, 0xfffd, 0x4e81, 0x508f, 0x5097,
+  0x5088, 0x5089, 0xfffd, 0xfffd, 0x5081, 0x5160, 0xfffd, 0xfffd,
+  0x5e42, 0x51d3, 0xfffd, 0xfffd, 0x51d2, 0x51d6,
+  /* 0x3a */
+  0x5273, 0xfffd, 0x5270, 0xfffd, 0xfffd, 0xfffd, 0x53a8, 0x53a6,
+  0x53c5, 0x5597, 0x55de, 0xfffd, 0xfffd, 0x5596, 0x55b4, 0xfffd,
+  0x5585, 0xfffd, 0x559b, 0x55a0, 0xfffd, 0x5559, 0xfffd, 0x5586,
+  0xfffd, 0xfffd, 0x55af, 0x557a, 0xfffd, 0xfffd, 0xfffd, 0x559e,
+  0xfffd, 0x55a9, 0x570f, 0x570e, 0x581a, 0xfffd, 0x581f, 0xfffd,
+  0x583c, 0x5818, 0x583e, 0x5826, 0xfffd, 0x583a, 0xfffd, 0x5822,
+  0xfffd, 0x58fb, 0x5963, 0x5964, 0xfffd, 0x5aa8, 0x5aa3, 0x5a82,
+  0x5a88, 0x5aa1, 0x5a85, 0x5a98, 0xfffd, 0x5a99, 0xfffd, 0x5a89,
+  0x5a81, 0x5a96, 0x5a80, 0xfffd, 0xfffd, 0x5a91, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5acf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x5a87, 0x5aa0, 0xfffd, 0x5a79, 0xfffd, 0x5a86, 0x5aab,
+  0x5aaa, 0x5aa4, 0x5a8d, 0x5a7e, 0xfffd, 0x5bd5,
+  /* 0x3b */
+  0xfffd, 0xfffd, 0xfffd, 0x5c1e, 0x5c5f, 0x5c5e, 0x5d44, 0x5d3e,
+  0xfffd, 0x5d48, 0x5d1c, 0xfffd, 0x5d5b, 0x5d4d, 0xfffd, 0xfffd,
+  0x5d57, 0xfffd, 0x5d53, 0x5d4f, 0xfffd, 0x5d3b, 0x5d46, 0xfffd,
+  0xfffd, 0x5e46, 0x5e47, 0xfffd, 0x5e48, 0x5ec0, 0x5ebd, 0x5ebf,
+  0xfffd, 0x5f11, 0xfffd, 0x5f3e, 0x5f3b, 0xfffd, 0x5f3a, 0xfffd,
+  0xfffd, 0xfffd, 0x5fa7, 0xfffd, 0x60ea, 0xfffd, 0x6107, 0x6122,
+  0x610c, 0xfffd, 0xfffd, 0x60b3, 0x60d6, 0x60d2, 0xfffd, 0x60e3,
+  0x60e5, 0x60e9, 0xfffd, 0xfffd, 0x6111, 0x60fd, 0xfffd, 0xfffd,
+  0x611e, 0x6120, 0x6121, 0x621e, 0xfffd, 0x63e2, 0x63de, 0x63e6,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x63f8, 0xfffd, 0x63fe, 0x63c1,
+  0x63bf, 0x63f7, 0x63d1, 0x655f, 0x6560, 0x6561, 0xfffd, 0xfffd,
+  0x65d1, 0xfffd, 0xfffd, 0x667d, 0x666b, 0x667f,
+  /* 0x3c */
+  0xfffd, 0xfffd, 0x6673, 0x6681, 0x666d, 0x6669, 0xfffd, 0xfffd,
+  0x671e, 0x68ed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6903, 0xfffd,
+  0x68fe, 0x68e5, 0x691e, 0x6902, 0xfffd, 0xfffd, 0x6909, 0x68ca,
+  0x6900, 0xfffd, 0x6901, 0x6918, 0x68e2, 0x68cf, 0xfffd, 0x692e,
+  0x68c5, 0x68ff, 0xfffd, 0x691c, 0x68c3, 0xfffd, 0x6b6f, 0xfffd,
+  0x6b6e, 0xfffd, 0x6bbe, 0xfffd, 0x6bf4, 0x6c2d, 0xfffd, 0x6db6,
+  0x6e75, 0x6e1e, 0xfffd, 0x6e18, 0xfffd, 0x6e48, 0xfffd, 0x6e4f,
+  0xfffd, 0x6e42, 0x6e6a, 0x6e70, 0x6dfe, 0xfffd, 0xfffd, 0x6e6d,
+  0xfffd, 0x6e7b, 0x6e7e, 0x6e59, 0xfffd, 0x6e57, 0xfffd, 0x6e80,
+  0x6e50, 0xfffd, 0x6e29, 0x6e76, 0x6e2a, 0x6e4c, 0x712a, 0xfffd,
+  0x7135, 0x712c, 0x7137, 0x711d, 0xfffd, 0xfffd, 0x7138, 0xfffd,
+  0x7134, 0x712b, 0x7133, 0x7127, 0x7124, 0xfffd,
+  /* 0x3d */
+  0x712d, 0x7232, 0x7283, 0x7282, 0x7287, 0x7306, 0x7324, 0x7338,
+  0x732a, 0x732c, 0x732b, 0xfffd, 0x732f, 0x7328, 0x7417, 0xfffd,
+  0xfffd, 0x7419, 0x7438, 0xfffd, 0x741f, 0x7414, 0x743c, 0x73f7,
+  0x741c, 0x7415, 0x7418, 0x7439, 0x74f9, 0x7524, 0xfffd, 0xfffd,
+  0xfffd, 0x756e, 0x756d, 0x7571, 0x758e, 0xfffd, 0x75e5, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7694, 0x76b3, 0xfffd, 0x76d9, 0xfffd,
+  0x7748, 0x7749, 0x7743, 0xfffd, 0xfffd, 0x7742, 0x77df, 0xfffd,
+  0x7863, 0x7876, 0xfffd, 0x785f, 0x7866, 0x7966, 0x7971, 0xfffd,
+  0xfffd, 0x7976, 0x7984, 0x7975, 0x79ff, 0x7a07, 0xfffd, 0x7a0e,
+  0x7a09, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7ae7,
+  0x7ae2, 0x7b55, 0xfffd, 0xfffd, 0x7b43, 0x7b57, 0x7b6c, 0x7b42,
+  0x7b53, 0xfffd, 0x7b41, 0xfffd, 0xfffd, 0x7ca7,
+  /* 0x3e */
+  0x7ca0, 0x7ca6, 0x7ca4, 0x7d74, 0xfffd, 0x7d59, 0xfffd, 0x7d60,
+  0x7d57, 0x7d6c, 0x7d7e, 0x7d64, 0xfffd, 0x7d5a, 0x7d5d, 0xfffd,
+  0xfffd, 0xfffd, 0x7d76, 0x7d4d, 0x7d75, 0xfffd, 0x7fd3, 0x7fd6,
+  0xfffd, 0xfffd, 0x8060, 0x804e, 0x8145, 0x813b, 0xfffd, 0x8148,
+  0x8142, 0x8149, 0x8140, 0x8114, 0x8141, 0xfffd, 0x81ef, 0x81f6,
+  0x8203, 0xfffd, 0x83ed, 0xfffd, 0x83da, 0x8418, 0x83d2, 0x8408,
+  0xfffd, 0x8400, 0xfffd, 0xfffd, 0xfffd, 0x8417, 0x8346, 0x8414,
+  0x83d3, 0x8405, 0x841f, 0x8402, 0x8416, 0x83cd, 0x83e6, 0xfffd,
+  0x865d, 0x86d5, 0x86e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x86ee,
+  0x8847, 0x8846, 0xfffd, 0xfffd, 0x88bb, 0xfffd, 0x88bf, 0x88b4,
+  0xfffd, 0x88b5, 0xfffd, 0x899a, 0x8a43, 0xfffd, 0xfffd, 0x8a5a,
+  0xfffd, 0xfffd, 0xfffd, 0x8a35, 0x8a38, 0x8a42,
+  /* 0x3f */
+  0x8a49, 0x8a5d, 0x8a4b, 0x8a3d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8c60, 0x8c5e, 0x8c7f, 0x8c7e, 0x8c83, 0xfffd, 0x8cb1, 0x8d87,
+  0xfffd, 0xfffd, 0x8d88, 0x8d83, 0xfffd, 0xfffd, 0x8d86, 0x8d8b,
+  0x8d82, 0x8dca, 0x8dd2, 0xfffd, 0xfffd, 0x8dd4, 0x8dc9, 0x8eb0,
+  0xfffd, 0xfffd, 0xfffd, 0x8ef2, 0x8ee4, 0x8ef3, 0x8eea, 0xfffd,
+  0x8efd, 0xfffd, 0x8f9d, 0x902b, 0x902a, 0xfffd, 0x9028, 0x9029,
+  0x902c, 0xfffd, 0xfffd, 0x903a, 0x9030, 0x9037, 0x903b, 0xfffd,
+  0x910a, 0xfffd, 0xfffd, 0xfffd, 0x91fe, 0x9220, 0xfffd, 0x920b,
+  0xfffd, 0x9218, 0x9222, 0xfffd, 0x921b, 0x9208, 0xfffd, 0x920e,
+  0x9213, 0xfffd, 0xfffd, 0x9595, 0xfffd, 0xfffd, 0xfffd, 0x968c,
+  0x967b, 0x967f, 0x9681, 0xfffd, 0x9682, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x96ee, 0x96ed, 0xfffd, 0x96ec,
+  /* 0x40 */
+  0x975f, 0x976f, 0xfffd, 0x976d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x98f0, 0xfffd, 0xfffd, 0xfffd, 0x9aa9, 0xfffd,
+  0xfffd, 0x9ae0, 0x4eb7, 0xfffd, 0xfffd, 0x50cc, 0x50bc, 0xfffd,
+  0x50aa, 0x50b9, 0xfffd, 0x50ab, 0x50c3, 0x50cd, 0x517e, 0x527e,
+  0x5279, 0xfffd, 0xfffd, 0x52e1, 0x52e0, 0x52e7, 0x5380, 0x53ab,
+  0x53aa, 0x53a9, 0x53e0, 0x55ea, 0xfffd, 0x55d7, 0xfffd, 0xfffd,
+  0x55c1, 0x5715, 0xfffd, 0x586c, 0xfffd, 0x585c, 0x5850, 0x5861,
+  0x586a, 0x5869, 0x5856, 0x5860, 0x5866, 0x585f, 0x5923, 0x5966,
+  0x5968, 0xfffd, 0xfffd, 0x5ace, 0xfffd, 0x5ac5, 0x5ac3, 0xfffd,
+  0xfffd, 0x5ad0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x5b74, 0x5b76, 0x5bdc, 0x5bd7, 0x5bda, 0x5bdb, 0xfffd, 0x5c20,
+  0x5d6d, 0x5d66, 0xfffd, 0x5d64, 0x5d6e, 0xfffd,
+  /* 0x41 */
+  0x5d60, 0x5f42, 0x5f5a, 0x5f6e, 0xfffd, 0xfffd, 0x6130, 0x613a,
+  0x612a, 0x6143, 0x6119, 0x6131, 0xfffd, 0x613d, 0xfffd, 0xfffd,
+  0xfffd, 0x6408, 0x6432, 0x6438, 0xfffd, 0x6431, 0xfffd, 0x6419,
+  0xfffd, 0x6411, 0xfffd, 0xfffd, 0x6429, 0x641d, 0xfffd, 0xfffd,
+  0xfffd, 0x643c, 0xfffd, 0x6446, 0x6447, 0xfffd, 0xfffd, 0x643a,
+  0x6407, 0xfffd, 0x656b, 0xfffd, 0x6570, 0x656d, 0xfffd, 0x65e4,
+  0x6693, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x668f, 0xfffd, 0xfffd,
+  0x6692, 0xfffd, 0x668e, 0xfffd, 0x6946, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6931, 0xfffd, 0xfffd, 0x693e,
+  0xfffd, 0x697c, 0x6943, 0xfffd, 0x6973, 0xfffd, 0x6955, 0xfffd,
+  0xfffd, 0x6985, 0x694d, 0x6950, 0x6947, 0x6967, 0x6936, 0x6964,
+  0x6961, 0xfffd, 0x697d, 0x6b44, 0x6b40, 0x6b71,
+  /* 0x42 */
+  0x6b73, 0x6b9c, 0xfffd, 0xfffd, 0xfffd, 0x6bc1, 0xfffd, 0x6bfa,
+  0x6c31, 0x6c32, 0xfffd, 0xfffd, 0x6eb8, 0x6ea8, 0xfffd, 0x6e91,
+  0x6ebb, 0xfffd, 0x6e9a, 0xfffd, 0xfffd, 0x6ea9, 0xfffd, 0xfffd,
+  0x6eb5, 0x6e6c, 0x6ee8, 0xfffd, 0x6edd, 0x6eda, 0x6ee6, 0x6eac,
+  0xfffd, 0xfffd, 0xfffd, 0x6ed9, 0x6ee3, 0x6ee9, 0x6edb, 0xfffd,
+  0x716f, 0xfffd, 0xfffd, 0x7148, 0xfffd, 0x714a, 0x716b, 0xfffd,
+  0x714f, 0x7157, 0x7174, 0xfffd, 0xfffd, 0xfffd, 0x7145, 0x7151,
+  0x716d, 0xfffd, 0x7251, 0x7250, 0x724e, 0xfffd, 0x7341, 0xfffd,
+  0x732e, 0x7346, 0xfffd, 0x7427, 0xfffd, 0x7448, 0x7453, 0x743d,
+  0xfffd, 0x745d, 0x7456, 0xfffd, 0x741e, 0x7447, 0x7443, 0x7458,
+  0x7449, 0xfffd, 0x744c, 0x7445, 0x743e, 0xfffd, 0x7501, 0x751e,
+  0xfffd, 0xfffd, 0x757a, 0x75ee, 0x7602, 0x7697,
+  /* 0x43 */
+  0x7698, 0xfffd, 0xfffd, 0xfffd, 0x775d, 0x7764, 0x7753, 0x7758,
+  0x7882, 0x7890, 0x788a, 0xfffd, 0x787a, 0x787d, 0xfffd, 0x788b,
+  0x7878, 0xfffd, 0xfffd, 0x788d, 0x7888, 0x7892, 0x7881, 0x797e,
+  0x7983, 0xfffd, 0xfffd, 0xfffd, 0x7980, 0xfffd, 0xfffd, 0xfffd,
+  0x7a0f, 0xfffd, 0xfffd, 0x7a1d, 0xfffd, 0x7aa1, 0x7aa4, 0xfffd,
+  0x7ae9, 0x7aea, 0xfffd, 0x7b62, 0x7b6b, 0xfffd, 0x7b5e, 0xfffd,
+  0x7b79, 0xfffd, 0xfffd, 0x7b6f, 0x7b68, 0xfffd, 0xfffd, 0x7cae,
+  0xfffd, 0xfffd, 0xfffd, 0x7cb0, 0xfffd, 0x7d90, 0xfffd, 0x7d8a,
+  0xfffd, 0x7d8b, 0x7d99, 0x7d95, 0xfffd, 0x7d87, 0x7d78, 0x7d97,
+  0x7d89, 0x7d98, 0xfffd, 0xfffd, 0xfffd, 0x7fa3, 0xfffd, 0xfffd,
+  0xfffd, 0x7fdd, 0x8057, 0xfffd, 0x8163, 0x816a, 0x816c, 0xfffd,
+  0xfffd, 0xfffd, 0x815d, 0x8175, 0xfffd, 0x815f,
+  /* 0x44 */
+  0xfffd, 0x817d, 0x816d, 0xfffd, 0xfffd, 0x8241, 0x844f, 0x8484,
+  0xfffd, 0x847f, 0xfffd, 0x8448, 0x842a, 0x847b, 0x8472, 0x8464,
+  0x842e, 0x845c, 0x8453, 0xfffd, 0x8441, 0x84c8, 0xfffd, 0x8462,
+  0x8480, 0x843e, 0x8483, 0x8471, 0xfffd, 0x844a, 0x8455, 0x8458,
+  0xfffd, 0xfffd, 0xfffd, 0x86fc, 0x86fd, 0x8715, 0xfffd, 0x8716,
+  0x86ff, 0xfffd, 0xfffd, 0xfffd, 0x8858, 0x88cf, 0x88e0, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x89e7, 0x8a6a, 0x8a80, 0xfffd, 0x8a6f,
+  0x8a65, 0xfffd, 0x8a78, 0x8a7d, 0x8a88, 0xfffd, 0xfffd, 0x8a64,
+  0x8a7e, 0xfffd, 0x8a67, 0x8c63, 0x8c88, 0xfffd, 0x8ccd, 0xfffd,
+  0x8cc9, 0xfffd, 0x8ded, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8eb1, 0xfffd, 0xfffd, 0x8f04, 0x8f9e, 0x8fa0,
+  0x9043, 0x9046, 0x9048, 0x9045, 0x9040, 0x904c,
+  /* 0x45 */
+  0xfffd, 0xfffd, 0x910c, 0x9113, 0x9115, 0xfffd, 0x916b, 0x9167,
+  0x925d, 0x9255, 0x9235, 0xfffd, 0x9259, 0x922f, 0x923c, 0x928f,
+  0x925c, 0x926a, 0x9262, 0x925f, 0x926b, 0x926e, 0x923b, 0x9244,
+  0x9241, 0x959a, 0xfffd, 0x9599, 0xfffd, 0xfffd, 0xfffd, 0x968f,
+  0xfffd, 0x9696, 0xfffd, 0xfffd, 0xfffd, 0x96f4, 0x96fc, 0xfffd,
+  0x9755, 0xfffd, 0x9779, 0xfffd, 0xfffd, 0xfffd, 0x97ee, 0x97f5,
+  0xfffd, 0x980b, 0xfffd, 0x98f3, 0xfffd, 0xfffd, 0x98f7, 0x98ff,
+  0x98f5, 0xfffd, 0x98ec, 0x98f1, 0xfffd, 0xfffd, 0x999a, 0xfffd,
+  0x9ae2, 0x9b3d, 0x9b5d, 0x9ce8, 0xfffd, 0x9ceb, 0x9cef, 0x9cee,
+  0x9e81, 0x9f14, 0x50d0, 0x50d9, 0x50dc, 0x50d8, 0xfffd, 0x50e1,
+  0x50eb, 0xfffd, 0xfffd, 0x50f4, 0x50e2, 0x50de, 0xfffd, 0xfffd,
+  0xfffd, 0x51f4, 0xfffd, 0xfffd, 0xfffd, 0x52ed,
+  /* 0x46 */
+  0x52ea, 0xfffd, 0x5332, 0xfffd, 0x53ae, 0x53b0, 0xfffd, 0x55fb,
+  0x5603, 0x560b, 0xfffd, 0x5607, 0xfffd, 0x55f8, 0xfffd, 0x5628,
+  0x561e, 0xfffd, 0x5618, 0x5611, 0x5651, 0x5605, 0x5717, 0x5892,
+  0xfffd, 0x588c, 0xfffd, 0x5878, 0x5884, 0x5873, 0x58ad, 0x5897,
+  0x5895, 0x5877, 0x5872, 0x5896, 0x588d, 0x5910, 0xfffd, 0x596c,
+  0xfffd, 0x5ae7, 0xfffd, 0x5ae4, 0xfffd, 0xfffd, 0x5aef, 0x5626,
+  0xfffd, 0xfffd, 0x5af0, 0x5d7b, 0xfffd, 0x5d83, 0xfffd, 0xfffd,
+  0x5d8b, 0x5d8c, 0xfffd, 0x5d78, 0x5e52, 0xfffd, 0xfffd, 0x5ed0,
+  0x5ecf, 0xfffd, 0x5fb3, 0x5fb4, 0xfffd, 0xfffd, 0xfffd, 0x617b,
+  0xfffd, 0x616f, 0x6181, 0x613c, 0x6142, 0x6138, 0x6133, 0xfffd,
+  0x6160, 0x6169, 0x617d, 0x6186, 0x622c, 0x6228, 0xfffd, 0x644c,
+  0xfffd, 0x6457, 0x647c, 0xfffd, 0xfffd, 0x6455,
+  /* 0x47 */
+  0x6462, 0x6471, 0x646a, 0x6456, 0x643b, 0x6481, 0xfffd, 0x644f,
+  0x647e, 0x6464, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6571,
+  0xfffd, 0xfffd, 0x66a5, 0x669a, 0x669c, 0xfffd, 0x66a6, 0xfffd,
+  0x66a4, 0x698f, 0x69c5, 0x69c8, 0x6992, 0x69b2, 0xfffd, 0xfffd,
+  0xfffd, 0x69e3, 0x69c0, 0x69d6, 0x69d1, 0x699f, 0x69a2, 0x69d2,
+  0xfffd, 0xfffd, 0xfffd, 0x69e1, 0x69d5, 0x699d, 0xfffd, 0xfffd,
+  0x6998, 0xfffd, 0x6b74, 0x6ba1, 0xfffd, 0x6ef0, 0x6ef3, 0xfffd,
+  0xfffd, 0x6f1b, 0x6f0c, 0x6f1d, 0x6f34, 0x6f28, 0x6f17, 0xfffd,
+  0x6f44, 0x6f42, 0x6f04, 0x6f11, 0x6efa, 0x6f4a, 0x7191, 0x718e,
+  0xfffd, 0x718b, 0x718d, 0x717f, 0x718c, 0x717e, 0x717c, 0x7183,
+  0xfffd, 0x7188, 0xfffd, 0xfffd, 0x7294, 0xfffd, 0x7355, 0x7353,
+  0x734f, 0x7354, 0x746c, 0x7465, 0x7466, 0x7461,
+  /* 0x48 */
+  0x746b, 0x7468, 0x7476, 0xfffd, 0x7460, 0xfffd, 0x7474, 0x7506,
+  0x760e, 0xfffd, 0x7607, 0xfffd, 0xfffd, 0x76b9, 0xfffd, 0x76b7,
+  0x76e2, 0xfffd, 0x7774, 0x7777, 0x7776, 0x7775, 0xfffd, 0x7778,
+  0x7771, 0xfffd, 0x777a, 0x715b, 0x777b, 0x78a6, 0x78ae, 0x78b8,
+  0xfffd, 0xfffd, 0xfffd, 0x78b1, 0x78af, 0xfffd, 0x7989, 0x7987,
+  0xfffd, 0xfffd, 0x7a29, 0xfffd, 0x7a2a, 0xfffd, 0x7a2d, 0x7a2c,
+  0xfffd, 0x7a32, 0xfffd, 0x7aec, 0x7af0, 0x7b81, 0x7b9e, 0x7b83,
+  0xfffd, 0x7b92, 0xfffd, 0x7ba3, 0x7b9f, 0x7b93, 0xfffd, 0x7b86,
+  0x7cb8, 0x7cb7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dc8,
+  0x7db6, 0xfffd, 0x7dd1, 0xfffd, 0x7da8, 0x7dab, 0xfffd, 0x7db3,
+  0x7dcd, 0xfffd, 0x7dcf, 0x7da4, 0xfffd, 0xfffd, 0x7f41, 0x7f6f,
+  0x7f71, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x49 */
+  0xfffd, 0x8023, 0x805b, 0xfffd, 0x8061, 0x805f, 0x8181, 0xfffd,
+  0xfffd, 0x8184, 0x8213, 0xfffd, 0x824a, 0x824c, 0xfffd, 0xfffd,
+  0xfffd, 0x84bd, 0x8495, 0xfffd, 0x8492, 0x84c3, 0xfffd, 0x8496,
+  0x84a5, 0x84b5, 0x84b3, 0x84a3, 0x84e4, 0x84d8, 0x84d5, 0xfffd,
+  0x84b7, 0x84ad, 0x84da, 0x8493, 0x8736, 0xfffd, 0xfffd, 0xfffd,
+  0x873d, 0x872b, 0x8747, 0x8739, 0xfffd, 0x8745, 0x871d, 0xfffd,
+  0x88ff, 0x88ea, 0xfffd, 0x88f5, 0xfffd, 0x8900, 0x88ed, 0x8903,
+  0x88e9, 0xfffd, 0xfffd, 0x89ea, 0xfffd, 0x8a9b, 0x8a8e, 0x8aa2,
+  0xfffd, 0x8a9c, 0x8a94, 0x8a90, 0x8aa9, 0x8aac, 0xfffd, 0x8a9f,
+  0xfffd, 0xfffd, 0x8a9d, 0xfffd, 0x8c67, 0xfffd, 0xfffd, 0x8cd0,
+  0x8cd6, 0x8cd4, 0x8d98, 0x8d9a, 0x8d97, 0xfffd, 0xfffd, 0xfffd,
+  0x8e0b, 0x8e08, 0x8e01, 0x8eb4, 0x8eb3, 0xfffd,
+  /* 0x4a */
+  0x8fa1, 0x8fa2, 0xfffd, 0x905a, 0xfffd, 0x9061, 0x905f, 0xfffd,
+  0xfffd, 0x9125, 0x917b, 0x9176, 0x917c, 0xfffd, 0x9289, 0x92f6,
+  0x92b1, 0x92ad, 0x9292, 0x9281, 0x9284, 0xfffd, 0x92ae, 0x9290,
+  0x929e, 0xfffd, 0xfffd, 0xfffd, 0x95a2, 0x95a7, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x96a0, 0x969d, 0x969f, 0x96d0, 0xfffd,
+  0x96d1, 0xfffd, 0xfffd, 0x9759, 0xfffd, 0x9764, 0xfffd, 0xfffd,
+  0xfffd, 0x9819, 0xfffd, 0x9814, 0x9815, 0x981a, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9906, 0xfffd, 0x98f8, 0x9901, 0xfffd, 0x99be,
+  0x99bc, 0x99b7, 0x99b6, 0x99c0, 0xfffd, 0x99b8, 0xfffd, 0xfffd,
+  0xfffd, 0x99c4, 0xfffd, 0x99bf, 0xfffd, 0x9ada, 0x9ae4, 0x9ae9,
+  0x9ae8, 0x9aea, 0x9ae5, 0xfffd, 0x9b26, 0xfffd, 0xfffd, 0x9b40,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x4b */
+  0xfffd, 0x9ebd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x510e, 0xfffd,
+  0x50f7, 0xfffd, 0x50fc, 0x510d, 0x5101, 0x51da, 0x51d9, 0x51db,
+  0x5286, 0x528e, 0x52ee, 0x5333, 0x53b1, 0xfffd, 0x5647, 0x562d,
+  0x5654, 0xfffd, 0x564b, 0x5652, 0x5631, 0x5644, 0x5656, 0x5650,
+  0x562b, 0xfffd, 0x564d, 0x5637, 0x564f, 0x58a2, 0x58b7, 0xfffd,
+  0x58b2, 0xfffd, 0x58aa, 0x58b5, 0x58b0, 0xfffd, 0x58b4, 0x58a4,
+  0x58a7, 0xfffd, 0x5926, 0x5afe, 0xfffd, 0x5b04, 0xfffd, 0x5afc,
+  0xfffd, 0x5b06, 0x5b0a, 0x5afa, 0x5b0d, 0x5b00, 0x5b0e, 0xfffd,
+  0xfffd, 0xfffd, 0x5d91, 0xfffd, 0x5d8f, 0x5d90, 0x5d98, 0x5da4,
+  0x5d9b, 0x5da3, 0x5d96, 0x5de4, 0x5e5a, 0xfffd, 0xfffd, 0x5e5e,
+  0xfffd, 0x5fb8, 0x6157, 0x615c, 0x61a6, 0x6195, 0x6188, 0xfffd,
+  0x61a3, 0x618f, 0xfffd, 0x6164, 0xfffd, 0x6159,
+  /* 0x4c */
+  0x6178, 0xfffd, 0x6185, 0x6187, 0x619e, 0xfffd, 0xfffd, 0x6198,
+  0x619c, 0xfffd, 0xfffd, 0x622f, 0x6480, 0x649b, 0x648e, 0x648d,
+  0x6494, 0x64c6, 0xfffd, 0x64a8, 0x6483, 0xfffd, 0x64b9, 0x6486,
+  0x64b4, 0x64af, 0x6491, 0xfffd, 0x64aa, 0x64a1, 0x64a7, 0x66b6,
+  0x66b3, 0xfffd, 0x66bc, 0x66ac, 0xfffd, 0x66ad, 0x6a0e, 0xfffd,
+  0x6a1c, 0x6a1a, 0xfffd, 0xfffd, 0x6a0b, 0xfffd, 0x69ef, 0x6a0c,
+  0x69f0, 0x6a22, 0xfffd, 0x69d8, 0xfffd, 0x6a12, 0x69fa, 0xfffd,
+  0x6a2a, 0xfffd, 0x6a10, 0xfffd, 0xfffd, 0x6a29, 0x69f9, 0x69ea,
+  0x6a2c, 0x6a24, 0xfffd, 0x69e9, 0x6b52, 0x6b4f, 0x6b53, 0xfffd,
+  0xfffd, 0x6f10, 0x6f65, 0x6f75, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x6fd0, 0xfffd, 0x6f5c, 0x6f3d, 0x6f71, 0xfffd, 0x6f91, 0x6f0b,
+  0x6f79, 0x6f81, 0x6f8f, 0xfffd, 0x6f59, 0x6f74,
+  /* 0x4d */
+  0xfffd, 0x71ae, 0xfffd, 0x71a3, 0x71ad, 0xfffd, 0xfffd, 0x71ab,
+  0x71a6, 0x71a2, 0xfffd, 0x52f2, 0x7257, 0x7255, 0x7299, 0x734b,
+  0x747a, 0xfffd, 0xfffd, 0xfffd, 0x748c, 0x7484, 0xfffd, 0xfffd,
+  0x7482, 0x7493, 0x747b, 0xfffd, 0x7509, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x778a, 0xfffd, 0x7790, 0xfffd, 0x78c6,
+  0x78d3, 0x78c0, 0x78d2, 0x78c7, 0x78c2, 0xfffd, 0x799f, 0x799d,
+  0x799e, 0xfffd, 0x7a41, 0xfffd, 0x7a38, 0x7a3a, 0x7a42, 0xfffd,
+  0xfffd, 0x7a3e, 0x7ab0, 0x7bae, 0x7bb3, 0xfffd, 0xfffd, 0x7bbf,
+  0xfffd, 0xfffd, 0x7bcd, 0xfffd, 0x7bb2, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cc4, 0x7ccd, 0x7cc2, 0x7cc6,
+  0x7cc3, 0x7cc9, 0x7cc7, 0xfffd, 0x7df8, 0xfffd, 0x7ded, 0x7de2,
+  0xfffd, 0xfffd, 0xfffd, 0x7ddc, 0x7e02, 0x7e01,
+  /* 0x4e */
+  0xfffd, 0x7dd6, 0xfffd, 0x7de4, 0x7dfe, 0xfffd, 0x7e00, 0x7dfc,
+  0x7dfd, 0xfffd, 0x7df5, 0x7dff, 0xfffd, 0x7deb, 0x7de5, 0x7f78,
+  0x7fae, 0x7fe7, 0xfffd, 0x8065, 0x806a, 0x8066, 0x8068, 0x806b,
+  0x8194, 0x81a1, 0x8192, 0x8196, 0x8193, 0xfffd, 0xfffd, 0x8501,
+  0xfffd, 0x84f8, 0xfffd, 0x84f5, 0xfffd, 0x8504, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x851b, 0x8503, 0x8533, 0x8534, 0x84ed, 0xfffd,
+  0xfffd, 0x8535, 0xfffd, 0x8505, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x877d, 0xfffd, 0xfffd, 0xfffd, 0x8771, 0xfffd, 0x885c, 0x88e6,
+  0x890f, 0x891b, 0xfffd, 0x89a9, 0x89a5, 0x89ee, 0x8ab1, 0xfffd,
+  0x8acc, 0x8ace, 0xfffd, 0x8ab7, 0xfffd, 0x8ab5, 0x8ae9, 0x8ab4,
+  0xfffd, 0x8ab3, 0x8ac1, 0x8aaf, 0x8aca, 0x8ad0, 0xfffd, 0xfffd,
+  0xfffd, 0x8c8e, 0xfffd, 0xfffd, 0x8ce9, 0x8cdb,
+  /* 0x4f */
+  0xfffd, 0x8ceb, 0x8da4, 0xfffd, 0x8da2, 0x8d9d, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8e2a, 0x8e28, 0xfffd, 0xfffd, 0x8eb8, 0x8eb6,
+  0x8eb9, 0x8eb7, 0x8f22, 0x8f2b, 0x8f27, 0x8f19, 0x8fa4, 0xfffd,
+  0x8fb3, 0xfffd, 0x9071, 0x906a, 0xfffd, 0xfffd, 0x9188, 0x918c,
+  0x92bf, 0x92b8, 0x92be, 0x92dc, 0x92e5, 0xfffd, 0xfffd, 0x92d4,
+  0x92d6, 0xfffd, 0x92da, 0x92ed, 0x92f3, 0x92db, 0xfffd, 0x92b9,
+  0x92e2, 0x92eb, 0x95af, 0xfffd, 0x95b2, 0x95b3, 0xfffd, 0xfffd,
+  0xfffd, 0x96a3, 0x96a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x970a,
+  0xfffd, 0x9787, 0x9789, 0x978c, 0x97ef, 0x982a, 0x9822, 0xfffd,
+  0x981f, 0xfffd, 0x9919, 0xfffd, 0x99ca, 0x99da, 0xfffd, 0xfffd,
+  0xfffd, 0x99de, 0x99c8, 0x99e0, 0xfffd, 0x9ab6, 0x9ab5, 0xfffd,
+  0x9af4, 0xfffd, 0x9b6b, 0x9b69, 0x9b72, 0x9b63,
+  /* 0x50 */
+  0xfffd, 0x9d0d, 0xfffd, 0x9d01, 0x9d0c, 0xfffd, 0x9cf8, 0xfffd,
+  0xfffd, 0x9cfe, 0x9d02, 0x9e84, 0xfffd, 0x9eab, 0x9eaa, 0x511d,
+  0x5116, 0xfffd, 0x512b, 0x511e, 0x511b, 0x5290, 0x5294, 0x5314,
+  0xfffd, 0xfffd, 0x5667, 0xfffd, 0x567b, 0xfffd, 0x565f, 0x5661,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58c3,
+  0x58ca, 0x58bb, 0x58c0, 0x58c4, 0x5901, 0x5b1f, 0x5b18, 0x5b11,
+  0x5b15, 0xfffd, 0x5b12, 0x5b1c, 0xfffd, 0x5b22, 0x5b79, 0x5da6,
+  0xfffd, 0x5db3, 0x5dab, 0x5eea, 0xfffd, 0x5f5b, 0xfffd, 0xfffd,
+  0x61b7, 0x61ce, 0x61b9, 0x61bd, 0x61cf, 0x61c0, 0x6199, 0x6197,
+  0xfffd, 0x61bb, 0x61d0, 0x61c4, 0x6231, 0xfffd, 0x64d3, 0x64c0,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64dc, 0x64d1, 0x64c8, 0xfffd,
+  0x64d5, 0x66c3, 0xfffd, 0xfffd, 0x66bf, 0x66c5,
+  /* 0x51 */
+  0xfffd, 0x66cd, 0x66c1, 0x6706, 0xfffd, 0x6724, 0x6a63, 0x6a42,
+  0x6a52, 0xfffd, 0x6a43, 0x6a33, 0xfffd, 0x6a6c, 0x6a57, 0xfffd,
+  0x6a4c, 0x6a6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6a37,
+  0xfffd, 0x6a71, 0x6a4a, 0x6a36, 0xfffd, 0x6a53, 0xfffd, 0x6a45,
+  0x6a70, 0xfffd, 0xfffd, 0x6a5c, 0x6b58, 0x6b57, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fbb, 0xfffd, 0xfffd, 0x6fbe,
+  0xfffd, 0xfffd, 0xfffd, 0x6fb5, 0x6fd3, 0x6f9f, 0xfffd, 0x6fb7,
+  0x6ff5, 0x71b7, 0xfffd, 0x71bb, 0xfffd, 0x71d1, 0xfffd, 0x71ba,
+  0xfffd, 0x71b6, 0x71cc, 0xfffd, 0xfffd, 0x71d3, 0x749b, 0xfffd,
+  0xfffd, 0x7496, 0x74a2, 0x749d, 0x750a, 0x750e, 0xfffd, 0x7581,
+  0x762c, 0x7637, 0x7636, 0x763b, 0xfffd, 0x76a1, 0xfffd, 0xfffd,
+  0x7798, 0xfffd, 0x7796, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x52 */
+  0x78d6, 0x78eb, 0xfffd, 0x78dc, 0xfffd, 0x79a5, 0x79a9, 0x9834,
+  0x7a53, 0x7a45, 0xfffd, 0x7a4f, 0xfffd, 0x7abd, 0x7abb, 0x7af1,
+  0xfffd, 0xfffd, 0x7bec, 0x7bed, 0xfffd, 0xfffd, 0x7cd3, 0xfffd,
+  0x7ce1, 0xfffd, 0x7e19, 0xfffd, 0xfffd, 0xfffd, 0x7e27, 0x7e26,
+  0xfffd, 0xfffd, 0x806e, 0x81af, 0xfffd, 0xfffd, 0x81ad, 0xfffd,
+  0x81aa, 0x8218, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x856f, 0x854c,
+  0xfffd, 0x8542, 0xfffd, 0x855c, 0x8570, 0x855f, 0xfffd, 0x855a,
+  0x854b, 0x853f, 0x878a, 0xfffd, 0x878b, 0x87a1, 0x878e, 0xfffd,
+  0xfffd, 0x8799, 0x885e, 0x885f, 0x8924, 0x89a7, 0x8aea, 0x8afd,
+  0x8af9, 0x8ae3, 0x8ae5, 0xfffd, 0xfffd, 0x8aec, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8cf2, 0xfffd, 0x8cef, 0xfffd, 0x8da6, 0xfffd,
+  0xfffd, 0xfffd, 0x8e3b, 0x8e43, 0xfffd, 0x8e32,
+  /* 0x53 */
+  0x8f31, 0x8f30, 0xfffd, 0x8f2d, 0x8f3c, 0x8fa7, 0x8fa5, 0xfffd,
+  0xfffd, 0xfffd, 0x9137, 0x9195, 0x918e, 0xfffd, 0x9196, 0xfffd,
+  0x9345, 0x930a, 0xfffd, 0xfffd, 0x92fd, 0x9317, 0x931c, 0x9307,
+  0x9331, 0x9332, 0x932c, 0x9330, 0x9303, 0x9305, 0xfffd, 0x95c2,
+  0xfffd, 0x95b8, 0xfffd, 0x95c1, 0xfffd, 0xfffd, 0xfffd, 0x96ab,
+  0x96b7, 0xfffd, 0xfffd, 0x9715, 0x9714, 0xfffd, 0xfffd, 0x970c,
+  0x9717, 0xfffd, 0x9793, 0xfffd, 0x97d2, 0xfffd, 0xfffd, 0x9836,
+  0x9831, 0x9833, 0x983c, 0x982e, 0x983a, 0xfffd, 0x983d, 0xfffd,
+  0x98b5, 0x9922, 0x9923, 0x9920, 0x991c, 0x991d, 0xfffd, 0x99a0,
+  0xfffd, 0x99ef, 0x99e8, 0x99eb, 0xfffd, 0xfffd, 0xfffd, 0x99e1,
+  0x99e6, 0xfffd, 0xfffd, 0x9af8, 0x9af5, 0xfffd, 0xfffd, 0x9b83,
+  0x9b94, 0x9b84, 0xfffd, 0x9b8b, 0x9b8f, 0xfffd,
+  /* 0x54 */
+  0x9b8c, 0xfffd, 0x9b89, 0xfffd, 0x9b8e, 0xfffd, 0xfffd, 0xfffd,
+  0x9d24, 0x9d0f, 0xfffd, 0x9d13, 0x9d0a, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9d2a, 0x9d1a, 0xfffd, 0x9d27, 0x9d16, 0x9d21, 0xfffd,
+  0x9e85, 0x9eac, 0x9ec6, 0x9ec5, 0x9ed7, 0x9f53, 0xfffd, 0x5128,
+  0x5127, 0x51df, 0xfffd, 0x5335, 0x53b3, 0xfffd, 0x568a, 0x567d,
+  0x5689, 0xfffd, 0x58cd, 0x58d0, 0xfffd, 0x5b2b, 0x5b33, 0x5b29,
+  0x5b35, 0x5b31, 0x5b37, 0x5c36, 0x5dbe, 0xfffd, 0x5db9, 0xfffd,
+  0x5dbb, 0xfffd, 0x61e2, 0x61db, 0x61dd, 0x61dc, 0x61da, 0xfffd,
+  0x61d9, 0xfffd, 0xfffd, 0x64df, 0xfffd, 0xfffd, 0x64e1, 0xfffd,
+  0x64ee, 0xfffd, 0x65b5, 0x66d4, 0x66d5, 0xfffd, 0x66d0, 0x66d1,
+  0x66ce, 0x66d7, 0xfffd, 0xfffd, 0x6a7d, 0x6a8a, 0xfffd, 0x6aa7,
+  0xfffd, 0x6a99, 0x6a82, 0x6a88, 0xfffd, 0xfffd,
+  /* 0x55 */
+  0x6a86, 0xfffd, 0x6a98, 0x6a9d, 0xfffd, 0xfffd, 0x6a8f, 0xfffd,
+  0x6aaa, 0xfffd, 0x6b5d, 0xfffd, 0x6c0a, 0xfffd, 0x6fd7, 0x6fd6,
+  0x6fe5, 0xfffd, 0xfffd, 0xfffd, 0x6fd9, 0x6fda, 0x6fea, 0xfffd,
+  0x6ff6, 0xfffd, 0xfffd, 0x71e3, 0xfffd, 0x71e9, 0xfffd, 0x71eb,
+  0x71ef, 0x71f3, 0x71ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7371, 0xfffd, 0x74ae, 0xfffd, 0x74b3, 0xfffd, 0x74ac, 0xfffd,
+  0xfffd, 0x7583, 0x7645, 0x764e, 0x7644, 0x76a3, 0x76a5, 0x77a6,
+  0x77a4, 0xfffd, 0x77a9, 0x77af, 0xfffd, 0xfffd, 0xfffd, 0x78f0,
+  0x78f8, 0x78f1, 0xfffd, 0x7a49, 0xfffd, 0xfffd, 0xfffd, 0x7ac2,
+  0x7af2, 0x7af3, 0x7bfa, 0xfffd, 0x7bf6, 0x7bfc, 0x7c18, 0x7c08,
+  0x7c12, 0xfffd, 0xfffd, 0x7cdb, 0x7cda, 0xfffd, 0xfffd, 0xfffd,
+  0x7e2c, 0x7e4d, 0xfffd, 0xfffd, 0x7f46, 0x7ff6,
+  /* 0x56 */
+  0x802b, 0x8074, 0x81b8, 0x81c8, 0xfffd, 0xfffd, 0xfffd, 0x8592,
+  0x8593, 0xfffd, 0x857f, 0x85ab, 0x8597, 0xfffd, 0xfffd, 0x85ac,
+  0xfffd, 0xfffd, 0xfffd, 0x87ce, 0xfffd, 0x87cd, 0xfffd, 0xfffd,
+  0x87c1, 0x87b1, 0x87c7, 0xfffd, 0x8940, 0xfffd, 0x893f, 0x8939,
+  0xfffd, 0x8943, 0xfffd, 0xfffd, 0xfffd, 0x89ab, 0xfffd, 0x8b1f,
+  0x8b09, 0x8b0c, 0xfffd, 0xfffd, 0x8c40, 0xfffd, 0x8c96, 0xfffd,
+  0x8cf6, 0x8cf7, 0xfffd, 0x8e46, 0x8e4f, 0xfffd, 0xfffd, 0xfffd,
+  0x8f3d, 0x8f41, 0x9366, 0x9378, 0x935d, 0x9369, 0x9374, 0x937d,
+  0x936e, 0x9372, 0x9373, 0x9362, 0x9348, 0x9353, 0x935f, 0x9368,
+  0xfffd, 0x937f, 0x936b, 0xfffd, 0x95c4, 0xfffd, 0x96af, 0x96ad,
+  0x96b2, 0xfffd, 0xfffd, 0x971a, 0x971b, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x979b, 0x979f, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x57 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9840, 0xfffd, 0x9847,
+  0xfffd, 0x98b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99a2,
+  0xfffd, 0xfffd, 0x9a00, 0x99f3, 0xfffd, 0xfffd, 0x99f5, 0xfffd,
+  0xfffd, 0x9abd, 0x9b00, 0x9b02, 0xfffd, 0x9b34, 0x9b49, 0x9b9f,
+  0xfffd, 0x9ba3, 0x9bcd, 0x9b99, 0x9b9d, 0xfffd, 0xfffd, 0x9d39,
+  0xfffd, 0x9d44, 0xfffd, 0xfffd, 0x9d35, 0xfffd, 0xfffd, 0x9eaf,
+  0xfffd, 0x512f, 0xfffd, 0xfffd, 0x9f8e, 0xfffd, 0x569f, 0x569b,
+  0x569e, 0x5696, 0x5694, 0x56a0, 0xfffd, 0x5b3b, 0xfffd, 0xfffd,
+  0x5b3a, 0x5dc1, 0x5f4d, 0x5f5d, 0x61f3, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x64f6, 0x64e5, 0x64ea, 0x64e7, 0x6505, 0xfffd, 0x64f9,
+  0xfffd, 0xfffd, 0xfffd, 0x6aab, 0x6aed, 0x6ab2, 0x6ab0, 0x6ab5,
+  0x6abe, 0x6ac1, 0x6ac8, 0xfffd, 0x6ac0, 0x6abc,
+  /* 0x58 */
+  0x6ab1, 0x6ac4, 0x6abf, 0xfffd, 0xfffd, 0x7008, 0x7003, 0x6ffd,
+  0x7010, 0x7002, 0x7013, 0xfffd, 0x71fa, 0x7200, 0x74b9, 0x74bc,
+  0xfffd, 0x765b, 0x7651, 0x764f, 0x76eb, 0x77b8, 0xfffd, 0x77b9,
+  0x77c1, 0x77c0, 0x77be, 0x790b, 0xfffd, 0x7907, 0x790a, 0x7908,
+  0xfffd, 0x790d, 0x7906, 0x7915, 0x79af, 0xfffd, 0xfffd, 0xfffd,
+  0x7af5, 0xfffd, 0xfffd, 0x7c2e, 0xfffd, 0x7c1b, 0xfffd, 0x7c1a,
+  0x7c24, 0xfffd, 0xfffd, 0x7ce6, 0x7ce3, 0xfffd, 0xfffd, 0x7e5d,
+  0x7e4f, 0x7e66, 0x7e5b, 0x7f47, 0x7fb4, 0xfffd, 0xfffd, 0xfffd,
+  0x7ffa, 0x802e, 0xfffd, 0xfffd, 0x81ce, 0xfffd, 0xfffd, 0x8219,
+  0xfffd, 0xfffd, 0x85cc, 0x85b2, 0xfffd, 0x85bb, 0x85c1, 0xfffd,
+  0xfffd, 0xfffd, 0x87e9, 0x87ee, 0x87f0, 0x87d6, 0x880e, 0x87da,
+  0x8948, 0x894a, 0x894e, 0x894d, 0x89b1, 0x89b0,
+  /* 0x59 */
+  0x89b3, 0xfffd, 0x8b38, 0x8b32, 0xfffd, 0x8b2d, 0xfffd, 0x8b34,
+  0xfffd, 0x8b29, 0x8c74, 0xfffd, 0xfffd, 0x8d03, 0xfffd, 0xfffd,
+  0x8da9, 0x8e58, 0xfffd, 0xfffd, 0x8ebf, 0x8ec1, 0x8f4a, 0x8fac,
+  0xfffd, 0x9089, 0x913d, 0x913c, 0x91a9, 0x93a0, 0xfffd, 0x9390,
+  0xfffd, 0x9393, 0x938b, 0x93ad, 0x93bb, 0x93b8, 0xfffd, 0xfffd,
+  0x939c, 0x95d8, 0x95d7, 0xfffd, 0xfffd, 0xfffd, 0x975d, 0x97a9,
+  0x97da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9854, 0xfffd, 0x9855,
+  0x984b, 0xfffd, 0x983f, 0x98b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9938, 0x9936, 0x9940, 0xfffd, 0x993b, 0x9939, 0x99a4, 0xfffd,
+  0xfffd, 0x9a08, 0x9a0c, 0xfffd, 0x9a10, 0xfffd, 0x9b07, 0xfffd,
+  0x9bd2, 0xfffd, 0x9bc2, 0x9bbb, 0x9bcc, 0x9bcb, 0xfffd, 0xfffd,
+  0x9d4d, 0x9d63, 0x9d4e, 0xfffd, 0x9d50, 0x9d55,
+  /* 0x5a */
+  0xfffd, 0x9d5e, 0xfffd, 0x9e90, 0x9eb2, 0x9eb1, 0xfffd, 0x9eca,
+  0x9f02, 0x9f27, 0x9f26, 0xfffd, 0x56af, 0x58e0, 0x58dc, 0xfffd,
+  0x5b39, 0xfffd, 0xfffd, 0x5b7c, 0x5bf3, 0xfffd, 0xfffd, 0x5c6b,
+  0x5dc4, 0x650b, 0x6508, 0x650a, 0xfffd, 0xfffd, 0x65dc, 0xfffd,
+  0xfffd, 0x66e1, 0x66df, 0x6ace, 0x6ad4, 0x6ae3, 0x6ad7, 0x6ae2,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ad8, 0x6ad5, 0x6ad2, 0xfffd,
+  0xfffd, 0x701e, 0x702c, 0x7025, 0x6ff3, 0x7204, 0x7208, 0x7215,
+  0xfffd, 0x74c4, 0x74c9, 0x74c7, 0x74c8, 0x76a9, 0x77c6, 0x77c5,
+  0x7918, 0x791a, 0x7920, 0xfffd, 0x7a66, 0x7a64, 0x7a6a, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c35, 0x7c34, 0xfffd,
+  0xfffd, 0x7e6c, 0xfffd, 0x7e6e, 0x7e71, 0xfffd, 0x81d4, 0x81d6,
+  0x821a, 0x8262, 0x8265, 0x8276, 0x85db, 0x85d6,
+  /* 0x5b */
+  0xfffd, 0x85e7, 0xfffd, 0xfffd, 0x85f4, 0xfffd, 0x87fd, 0x87d5,
+  0x8807, 0xfffd, 0x880f, 0x87f8, 0xfffd, 0xfffd, 0x8987, 0xfffd,
+  0x89b5, 0x89f5, 0xfffd, 0x8b3f, 0x8b43, 0x8b4c, 0xfffd, 0x8d0b,
+  0x8e6b, 0x8e68, 0x8e70, 0x8e75, 0x8e77, 0xfffd, 0x8ec3, 0xfffd,
+  0x93e9, 0x93ea, 0x93cb, 0x93c5, 0x93c6, 0xfffd, 0x93ed, 0x93d3,
+  0xfffd, 0x93e5, 0xfffd, 0xfffd, 0x93db, 0x93eb, 0x93e0, 0x93c1,
+  0xfffd, 0xfffd, 0x95dd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97b2, 0x97b4, 0x97b1, 0x97b5,
+  0x97f2, 0xfffd, 0xfffd, 0xfffd, 0x9856, 0xfffd, 0xfffd, 0xfffd,
+  0x9944, 0xfffd, 0x9a26, 0x9a1f, 0x9a18, 0x9a21, 0x9a17, 0xfffd,
+  0x9b09, 0xfffd, 0xfffd, 0x9bc5, 0x9bdf, 0xfffd, 0x9be3, 0xfffd,
+  0x9be9, 0x9bee, 0xfffd, 0xfffd, 0x9d66, 0x9d7a,
+  /* 0x5c */
+  0xfffd, 0x9d6e, 0x9d91, 0x9d83, 0x9d76, 0x9d7e, 0x9d6d, 0xfffd,
+  0x9e95, 0x9ee3, 0xfffd, 0xfffd, 0x9f03, 0x9f04, 0xfffd, 0x9f17,
+  0xfffd, 0x5136, 0xfffd, 0x5336, 0xfffd, 0x5b42, 0xfffd, 0xfffd,
+  0x5b44, 0x5b46, 0x5b7e, 0x5dca, 0x5dc8, 0x5dcc, 0x5ef0, 0xfffd,
+  0x6585, 0x66e5, 0x66e7, 0xfffd, 0xfffd, 0xfffd, 0x6af4, 0xfffd,
+  0x6ae9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x703d, 0xfffd,
+  0x7036, 0xfffd, 0x7216, 0xfffd, 0x7212, 0x720f, 0x7217, 0x7211,
+  0x720b, 0xfffd, 0xfffd, 0x74cd, 0x74d0, 0x74cc, 0x74ce, 0x74d1,
+  0xfffd, 0x7589, 0xfffd, 0x7a6f, 0x7c4b, 0x7c44, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7e7f, 0x8b71, 0xfffd, 0x802f, 0x807a,
+  0x807b, 0x807c, 0xfffd, 0xfffd, 0xfffd, 0x85fc, 0x8610, 0x8602,
+  0xfffd, 0xfffd, 0x85ee, 0x8603, 0xfffd, 0x860d,
+  /* 0x5d */
+  0x8613, 0x8608, 0x860f, 0x8818, 0x8812, 0xfffd, 0xfffd, 0x8967,
+  0x8965, 0x89bb, 0x8b69, 0x8b62, 0xfffd, 0x8b6e, 0xfffd, 0x8b61,
+  0xfffd, 0x8b64, 0x8b4d, 0x8c51, 0xfffd, 0xfffd, 0x8e83, 0x8ec6,
+  0xfffd, 0x941f, 0xfffd, 0x9404, 0x9417, 0x9408, 0x9405, 0xfffd,
+  0x93f3, 0x941e, 0x9402, 0x941a, 0x941b, 0x9427, 0x941c, 0xfffd,
+  0x96b5, 0xfffd, 0xfffd, 0x9733, 0xfffd, 0x9734, 0x9731, 0x97b8,
+  0x97ba, 0xfffd, 0x97fc, 0xfffd, 0xfffd, 0x98c3, 0xfffd, 0x994d,
+  0xfffd, 0x9a2f, 0xfffd, 0xfffd, 0xfffd, 0x9ac9, 0xfffd, 0x9ac8,
+  0x9ac4, 0x9b2a, 0x9b38, 0x9b50, 0xfffd, 0x9c0a, 0x9bfb, 0x9c04,
+  0x9bfc, 0x9bfe, 0xfffd, 0xfffd, 0xfffd, 0x9c02, 0x9bf6, 0x9c1b,
+  0x9bf9, 0x9c15, 0x9c10, 0x9bff, 0x9c00, 0x9c0c, 0xfffd, 0xfffd,
+  0x9d95, 0x9da5, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x5e */
+  0x9e98, 0x9ec1, 0xfffd, 0x9f5a, 0x5164, 0x56bb, 0xfffd, 0x58e6,
+  0x5b49, 0x5bf7, 0xfffd, 0xfffd, 0x5dd0, 0xfffd, 0x5fc2, 0xfffd,
+  0x6511, 0xfffd, 0x6aff, 0x6afe, 0x6afd, 0xfffd, 0x6b01, 0xfffd,
+  0xfffd, 0x704b, 0x704d, 0x7047, 0x74d3, 0x7668, 0x7667, 0xfffd,
+  0xfffd, 0x77d1, 0x7930, 0x7932, 0x792e, 0xfffd, 0x9f9d, 0x7ac9,
+  0x7ac8, 0xfffd, 0x7c56, 0x7c51, 0xfffd, 0xfffd, 0xfffd, 0x7e85,
+  0x7e89, 0x7e8e, 0x7e84, 0xfffd, 0x826a, 0x862b, 0x862f, 0x8628,
+  0xfffd, 0x8616, 0x8615, 0x861d, 0x881a, 0xfffd, 0xfffd, 0xfffd,
+  0x89bc, 0x8b75, 0x8b7c, 0xfffd, 0x8d11, 0x8d12, 0x8f5c, 0x91bb,
+  0xfffd, 0x93f4, 0xfffd, 0xfffd, 0x942d, 0xfffd, 0xfffd, 0x96e4,
+  0x9737, 0x9736, 0x9767, 0x97be, 0x97bd, 0x97e2, 0x9868, 0x9866,
+  0x98c8, 0x98ca, 0x98c7, 0x98dc, 0xfffd, 0x994f,
+  /* 0x5f */
+  0x99a9, 0x9a3c, 0xfffd, 0x9a3b, 0x9ace, 0xfffd, 0x9b14, 0x9b53,
+  0xfffd, 0x9c2e, 0xfffd, 0x9c1f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9db0, 0x9dbd, 0xfffd, 0xfffd, 0x9dae, 0x9dc4, 0x9e7b, 0xfffd,
+  0xfffd, 0x9e9e, 0xfffd, 0x9f05, 0xfffd, 0x9f69, 0x9fa1, 0x56c7,
+  0x571d, 0x5b4a, 0x5dd3, 0xfffd, 0x5f72, 0x6202, 0xfffd, 0x6235,
+  0x6527, 0x651e, 0x651f, 0xfffd, 0xfffd, 0x6b07, 0x6b06, 0xfffd,
+  0xfffd, 0x7054, 0x721c, 0x7220, 0x7af8, 0xfffd, 0x7c5d, 0x7c58,
+  0xfffd, 0x7e92, 0x7f4e, 0xfffd, 0xfffd, 0xfffd, 0x8827, 0xfffd,
+  0x8b81, 0x8b83, 0xfffd, 0x8c44, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9442, 0x944d, 0x9454, 0x944e, 0xfffd, 0x9443, 0xfffd, 0xfffd,
+  0x973c, 0x9740, 0x97c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x995a,
+  0x9a51, 0xfffd, 0x9add, 0xfffd, 0xfffd, 0x9c38,
+  /* 0x60 */
+  0xfffd, 0x9c45, 0x9c3a, 0xfffd, 0x9c35, 0xfffd, 0xfffd, 0xfffd,
+  0x9ef1, 0xfffd, 0x9f93, 0x529a, 0xfffd, 0xfffd, 0x8641, 0x5dd7,
+  0xfffd, 0x6528, 0xfffd, 0xfffd, 0xfffd, 0x7053, 0x7059, 0xfffd,
+  0x7221, 0xfffd, 0x766f, 0x7937, 0x79b5, 0x7c62, 0x7c5e, 0x7cf5,
+  0xfffd, 0xfffd, 0x863d, 0xfffd, 0x882d, 0x8989, 0x8b8d, 0x8b87,
+  0x8b90, 0x8d1a, 0x8e99, 0xfffd, 0xfffd, 0xfffd, 0x945f, 0xfffd,
+  0xfffd, 0x9456, 0x9461, 0x945b, 0x945a, 0x945c, 0x9465, 0xfffd,
+  0x9741, 0xfffd, 0xfffd, 0x986e, 0x986c, 0x986d, 0xfffd, 0x99aa,
+  0x9a5c, 0x9a58, 0x9ade, 0xfffd, 0x9c4f, 0x9c51, 0xfffd, 0x9c53,
+  0xfffd, 0xfffd, 0xfffd, 0x9dfc, 0x9f39, 0xfffd, 0x513e, 0xfffd,
+  0x56d2, 0xfffd, 0x5b4f, 0x6b14, 0xfffd, 0x7a72, 0x7a73, 0xfffd,
+  0xfffd, 0xfffd, 0x8b91, 0xfffd, 0xfffd, 0x91bf,
+  /* 0x61 */
+  0xfffd, 0x946c, 0xfffd, 0xfffd, 0x96e6, 0x9745, 0xfffd, 0x97c8,
+  0x97e4, 0x995d, 0xfffd, 0x9b21, 0xfffd, 0x9b2c, 0x9b57, 0xfffd,
+  0xfffd, 0x9c5d, 0x9c61, 0x9c65, 0x9e08, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9f45, 0xfffd, 0xfffd, 0x6205, 0x66ef, 0x6b1b,
+  0x6b1d, 0x7225, 0x7224, 0x7c6d, 0xfffd, 0x8642, 0x8649, 0xfffd,
+  0x8978, 0x898a, 0x8b97, 0xfffd, 0x8c9b, 0x8d1c, 0xfffd, 0x8ea2,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9c6c, 0xfffd, 0x9c6f, 0xfffd, 0x9e0e, 0xfffd, 0x9f08, 0x9f1d,
+  0x9fa3, 0xfffd, 0xfffd, 0x5f60, 0x6b1c, 0xfffd, 0xfffd, 0xfffd,
+  0x7cf3, 0xfffd, 0x8b9b, 0x8ea7, 0x91c4, 0xfffd, 0x947a, 0xfffd,
+  0xfffd, 0x9a61, 0x9a63, 0x9ad7, 0x9c76, 0xfffd, 0x9fa5, 0xfffd,
+  0x7067, 0xfffd, 0x72ab, 0x864a, 0x897d, 0x8b9d,
+  /* 0x62 */
+  0x8c53, 0x8f65, 0x947b, 0xfffd, 0x98cd, 0x98dd, 0xfffd, 0x9b30,
+  0x9e16, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96e7, 0x9e18,
+  0x9ea2, 0xfffd, 0x9f7c, 0xfffd, 0x7e9e, 0x9484, 0xfffd, 0x9e1c,
+  0xfffd, 0x7c71, 0x97ca, 0xfffd, 0xfffd, 0xfffd, 0x9ea3, 0xfffd,
+  0x9c7b, 0x9f97, 0xfffd, 0xfffd, 0x9750,
+};
+
+static int
+cns11643_3_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x21 && c1 <= 0x62)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        {
+          if (i < 6147)
+            wc = cns11643_3_2uni_page21[i];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
diff --git a/libiconv/cns11643_inv.h b/libiconv/cns11643_inv.h
new file mode 100644 (file)
index 0000000..1b79541
--- /dev/null
@@ -0,0 +1,2720 @@
+
+/*
+ * CNS 11643-1992 planes 1-3
+ */
+
+static const unsigned short cns11643_inv_2charset[17408] = {
+  0x2170, 0x2278, 0x2234, 0x2131, 0x2232, 0x2233, 0x256f, 0x256d,
+  0x256e, 0x2570, 0x256c, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479,
+  0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x2521, 0x2522, 0x2523,
+  0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b,
+  0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533,
+  0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b,
+  0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543,
+  0x2544, 0x2545, 0x2546, 0x2139, 0x2137, 0x225d, 0x2164, 0x2165,
+  0x2166, 0x2167, 0x212d, 0x212c, 0x216a, 0x216b, 0x216f, 0x2223,
+  0x226a, 0x2222, 0x226b, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f,
+  0x2430, 0x2431, 0x2432, 0x2433, 0x2434, 0x2635, 0x2636, 0x2637,
+  0x2638, 0x2639, 0x263a, 0x263b, 0x263c, 0x263d, 0x263e, 0x2258,
+  0x2255, 0x2257, 0x2256, 0x2259, 0x225a, 0x225c, 0x225b, 0x2261,
+  0x2235, 0x223c, 0x2249, 0x2248, 0x2245, 0x2246, 0x224d, 0x224e,
+  0x2250, 0x224f, 0x2244, 0x223d, 0x223b, 0x223e, 0x2239, 0x223a,
+  0x2247, 0x224a, 0x4221, 0x4222, 0x4223, 0x4224, 0x4225, 0x4226,
+  0x4227, 0x4228, 0x4229, 0x422a, 0x422b, 0x422c, 0x422d, 0x422e,
+  0x422f, 0x4230, 0x4231, 0x4232, 0x4233, 0x4234, 0x4235, 0x4236,
+  0x4237, 0x4238, 0x4239, 0x423a, 0x423b, 0x423c, 0x423d, 0x423e,
+  0x423f, 0x4240, 0x4241, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625,
+  0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d,
+  0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2339,
+  0x233a, 0x233c, 0x233d, 0x233e, 0x233f, 0x2337, 0x2336, 0x2335,
+  0x2334, 0x2333, 0x2344, 0x2345, 0x2347, 0x2346, 0x2340, 0x2341,
+  0x2343, 0x2342, 0x234c, 0x234d, 0x234e, 0x2324, 0x2325, 0x2326,
+  0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x2332, 0x2331, 0x2330,
+  0x232f, 0x232e, 0x232d, 0x232c, 0x2338, 0x233b, 0x217c, 0x217b,
+  0x2175, 0x2174, 0x217e, 0x217d, 0x217a, 0x2179, 0x2172, 0x2176,
+  0x2173, 0x2348, 0x2349, 0x234b, 0x234a, 0x2178, 0x2177, 0x2254,
+  0x2251, 0x2253, 0x2252, 0x2121, 0x2123, 0x2124, 0x2171, 0x2152,
+  0x2153, 0x214e, 0x214f, 0x2156, 0x2157, 0x215a, 0x215b, 0x214a,
+  0x214b, 0x2265, 0x2146, 0x2147, 0x2168, 0x2169, 0x2435, 0x2436,
+  0x2437, 0x2438, 0x2439, 0x243a, 0x243b, 0x243c, 0x243d, 0x2126,
+  0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e,
+  0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556,
+  0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
+  0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566,
+  0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x2221, 0x2275, 0x2276,
+  0x2270, 0x2271, 0x2272, 0x2274, 0x2277, 0x2273, 0x224c, 0x224b,
+  0x226f, 0x4421, 0x4423, 0x4424, 0xa126, 0xa125, 0x21a6, 0x4437,
+  0x4435, 0x4438, 0x4436, 0x21a7, 0x4462, 0x21af, 0x21ad, 0x4461,
+  0x4460, 0x4562, 0x4561, 0x4560, 0x4563, 0x455f, 0x4722, 0x4723,
+  0xa262, 0xa261, 0xa263, 0xa43f, 0x4b64, 0xa121, 0xa12c, 0x4439,
+  0x4463, 0x21b0, 0x4464, 0x21c3, 0x486b, 0x25b1, 0xa122, 0x443a,
+  0x4465, 0x4564, 0x21c4, 0xa740, 0xa123, 0x21a1, 0x4425, 0x443c,
+  0xa130, 0x21a8, 0x443d, 0xa12e, 0x4466, 0x4565, 0x4567, 0x4566,
+  0x4724, 0x4725, 0xa345, 0x4b65, 0xab22, 0x537d, 0x4422, 0x21a2,
+  0x4426, 0x443f, 0x443e, 0xa146, 0xa145, 0xa264, 0x4726, 0xa440,
+  0x4b66, 0xab23, 0x5871, 0x33ce, 0xb96c, 0xb96e, 0x632a, 0x41d6,
+  0x41d7, 0xa124, 0x4427, 0xa12d, 0x4468, 0xa265, 0x4b67, 0x4428,
+  0x21a9, 0x4440, 0xa131, 0x4469, 0x446b, 0x21b1, 0x446c, 0x446a,
+  0xa16c, 0xa266, 0x4727, 0x4b68, 0xa442, 0xa742, 0x4b69, 0x4f67,
+  0x4441, 0x446d, 0xa147, 0x4728, 0x472a, 0x4729, 0x486c, 0x4b6a,
+  0x4b6b, 0x4f68, 0x4f69, 0xab26, 0xab25, 0xab27, 0xab24, 0x537e,
+  0x41d8, 0xc033, 0x6dc4, 0x4429, 0xa132, 0xa133, 0x446f, 0x446e,
+  0x21b2, 0x4470, 0x4476, 0xa149, 0x4471, 0x4472, 0x21b4, 0x21b3,
+  0x4474, 0x4475, 0xa14c, 0x4473, 0xa14b, 0xa14a, 0x456a, 0x456b,
+  0x456c, 0x456d, 0x4569, 0x4570, 0x21ca, 0x21c6, 0x21c9, 0x4571,
+  0x4623, 0xa16d, 0x21c8, 0x456e, 0x456f, 0x4568, 0xa172, 0xa170,
+  0x21c5, 0x21c7, 0xa26f, 0xa268, 0x4737, 0x21ef, 0x4734, 0x4738,
+  0x21f9, 0x21ed, 0x4735, 0x21f1, 0xa26b, 0xa267, 0xa276, 0x4736,
+  0xa26e, 0x4739, 0x472b, 0x21f0, 0x473a, 0x21f4, 0xa26d, 0x21f8,
+  0x21f5, 0xa26c, 0xa274, 0x21f2, 0x472c, 0x472e, 0x473b, 0x4730,
+  0x21ea, 0x4733, 0x4731, 0x4732, 0x21fa, 0x21f7, 0x21ee, 0x472f,
+  0xa270, 0xa277, 0x21eb, 0x472d, 0xa275, 0xa273, 0x21f3, 0x21f6,
+  0xa272, 0x21ec, 0x23a8, 0x4924, 0x4875, 0xa450, 0xa448, 0x23a9,
+  0x4872, 0xa44f, 0x4926, 0xa446, 0x487a, 0xa445, 0x4879, 0x22fb,
+  0x487d, 0x4878, 0x23a2, 0x23aa, 0xa44e, 0x23a6, 0xa449, 0x487b,
+  0xa44b, 0xa443, 0x487e, 0x486f, 0x4929, 0x22fd, 0xa444, 0xa44c,
+  0x25bd, 0x486d, 0x4925, 0x486e, 0x4876, 0x4877, 0x23a4, 0x22fe,
+  0x487c, 0x4874, 0x22fa, 0x4870, 0x23a7, 0x4927, 0x492a, 0x4873,
+  0x4922, 0x4928, 0x4871, 0x23a5, 0x4923, 0x23ab, 0x22fc, 0x4921,
+  0x23a1, 0x23a3, 0x4b79, 0x25bf, 0x25cb, 0x4b71, 0xa747, 0x25cc,
+  0x4b6c, 0x4b76, 0xa74f, 0x4b6f, 0x25b9, 0x4b77, 0x25b8, 0x25bc,
+  0x25c3, 0x25c1, 0x4c21, 0x4b7a, 0x25b3, 0x25b5, 0x4b7c, 0x4b70,
+  0x25b6, 0x25c2, 0x25c9, 0x4b75, 0x25bb, 0x25b4, 0x4b74, 0x25b7,
+  0x4b78, 0x25ba, 0xa744, 0x4b73, 0xa751, 0x4b6e, 0xa748, 0x4b7d,
+  0x25c4, 0x4b7e, 0x25c8, 0xa743, 0x25c6, 0x25ca, 0x4b7b, 0x25be,
+  0x25b2, 0x25c0, 0x4b72, 0x25c5, 0x4b6d, 0x25c7, 0xa74c, 0xa749,
+  0xa74b, 0xa74a, 0xa74d, 0x4f78, 0x4f6c, 0xab2d, 0xab2e, 0x29a2,
+  0x29aa, 0xab36, 0x4f6b, 0x4f73, 0x5021, 0xab2c, 0x29b0, 0x29ae,
+  0x29a9, 0xab2b, 0x4f6d, 0x29af, 0x29a5, 0x4f7b, 0x4f72, 0x4f7a,
+  0x28fe, 0xab32, 0x29ac, 0xab2f, 0x29a3, 0x4f76, 0x29a4, 0xab33,
+  0x28fd, 0x4f7d, 0x4f70, 0x4f79, 0x4f6f, 0xab28, 0x29a1, 0x29a6,
+  0xab29, 0x29ad, 0x4f77, 0x4f74, 0x29a8, 0x4f7c, 0x29ab, 0x29a7,
+  0x4f71, 0x4f7e, 0x4f75, 0x4f6e, 0x4f6a, 0xab35, 0xab34, 0x29b1,
+  0x543a, 0x5424, 0xaf48, 0x5434, 0xaf4d, 0x5439, 0x2df1, 0x2df0,
+  0x2df5, 0x2df6, 0x5427, 0xaf44, 0x5430, 0xaf58, 0xaf4c, 0xaf56,
+  0x543d, 0xaf46, 0x5431, 0xaf4b, 0xaf49, 0xaf47, 0x2dea, 0x542a,
+  0x2deb, 0xaf4f, 0x543f, 0x5436, 0x5421, 0x5422, 0x2dfe, 0x5924,
+  0xaf53, 0x542f, 0x542e, 0x2dec, 0x5432, 0x33de, 0x5429, 0x2df7,
+  0x5438, 0x5437, 0x542d, 0x2def, 0x2df8, 0xaf45, 0x2de9, 0x542c,
+  0x2df9, 0x5435, 0x2ded, 0x5423, 0xaf4e, 0x5426, 0x5425, 0x2dfa,
+  0x5433, 0x5428, 0x543c, 0x543e, 0x2df4, 0x543b, 0xaf51, 0x2dfc,
+  0x2dee, 0x2dfd, 0xaf43, 0x2df2, 0x2dfb, 0xaf50, 0x2df3, 0xaf54,
+  0xaf55, 0x542b, 0x33e6, 0x33da, 0xb43c, 0x5876, 0xb43f, 0x33df,
+  0x33e5, 0x5875, 0x33d8, 0x5879, 0x33dc, 0x33d5, 0x5877, 0x33d9,
+  0x587c, 0x5923, 0xb444, 0x33ea, 0xb441, 0x33d4, 0xb442, 0x587d,
+  0xaf57, 0x33e9, 0xb447, 0xb43d, 0x5878, 0x33db, 0x5874, 0x33d6,
+  0x33d2, 0x33e0, 0x33d3, 0x33d1, 0x33dd, 0x33e3, 0x33e4, 0x587a,
+  0xb440, 0x3abf, 0x33e1, 0x33d0, 0x33e2, 0xb44b, 0x5926, 0x33e7,
+  0x5925, 0x33cf, 0xb443, 0x33d7, 0x33e8, 0x5921, 0x587e, 0x587b,
+  0x5922, 0xb44c, 0xb44a, 0x5872, 0xb445, 0xb446, 0x5873, 0x5e2e,
+  0xb975, 0x3ac2, 0x3abb, 0x5e2b, 0x3ac3, 0xb971, 0xb972, 0x3ab9,
+  0x3abc, 0x5e2a, 0x3abd, 0xb96f, 0x5e2d, 0x3ac1, 0x3ab7, 0x3ab6,
+  0x5e2f, 0xb970, 0x5e30, 0x5e2c, 0x5e31, 0x3ab5, 0x3ac0, 0x3abe,
+  0x3ab8, 0x5e29, 0x3aba, 0xc039, 0xc03c, 0x6331, 0x632b, 0x41dc,
+  0x6334, 0x41e2, 0x41e5, 0x632d, 0x632e, 0x41df, 0x632c, 0x41e8,
+  0x6332, 0x41e9, 0xc03a, 0x41e4, 0x6333, 0xc037, 0x41d9, 0x6330,
+  0x41da, 0x41e3, 0x41e1, 0xc03d, 0x41dd, 0x632f, 0x41db, 0x6335,
+  0x41e0, 0x41e7, 0x41de, 0x41e6, 0xc036, 0xc03e, 0x677c, 0x6779,
+  0xc56b, 0x677a, 0x49a1, 0x48f7, 0x6778, 0x6775, 0x48f8, 0xc56e,
+  0xc56c, 0x6777, 0x48fb, 0xc56d, 0x48fd, 0xc576, 0x49a6, 0xc570,
+  0xc575, 0x49a5, 0x48fe, 0x6774, 0x48f6, 0x6772, 0x48f9, 0x677d,
+  0x48fc, 0xc571, 0x49a2, 0x6776, 0x6773, 0x49a4, 0x49a3, 0x677b,
+  0x48fa, 0xc574, 0x6c23, 0x4fd4, 0xcb29, 0x4fd1, 0x6c24, 0x6c22,
+  0xcb2b, 0x4fd8, 0x4fd5, 0x4fce, 0x6c21, 0xcb2d, 0x6c25, 0x4fcf,
+  0x6b7e, 0x6c28, 0x4fd2, 0x4fd3, 0x6c26, 0x6c27, 0x4fd9, 0x4fd6,
+  0x4fd7, 0xcb2c, 0xcb27, 0x7033, 0x56c3, 0x7030, 0x56c0, 0x7032,
+  0x7034, 0xd031, 0x56c1, 0x7031, 0x56c2, 0xd035, 0x56bf, 0xd030,
+  0xd034, 0x7341, 0x5cc9, 0x7342, 0x5cc7, 0x5cc8, 0x5cc6, 0x5cc5,
+  0xd441, 0xd440, 0x5cca, 0x7340, 0xd033, 0x61c4, 0x61c5, 0xd752,
+  0x4fd0, 0x61c3, 0x7343, 0x782b, 0x65b7, 0x65b8, 0xdc32, 0x7a62,
+  0x7a63, 0x6bcf, 0x6bce, 0x7b58, 0x7b57, 0x6efd, 0xe06f, 0x442a,
+  0x4442, 0x4478, 0x4477, 0x4573, 0x4572, 0x473e, 0x473d, 0x473f,
+  0x473c, 0xa278, 0x492c, 0x492b, 0x492d, 0xa454, 0xa453, 0xa451,
+  0x4c23, 0x4c22, 0x4c24, 0xa752, 0x5022, 0x2279, 0x2ea1, 0x227a,
+  0x5927, 0x227c, 0x227b, 0x3ac4, 0xb976, 0x227d, 0x677e, 0x227e,
+  0xde25, 0x442b, 0xa134, 0x4479, 0x4740, 0x4c25, 0xab37, 0x442c,
+  0x447c, 0x447a, 0x447b, 0x4741, 0xa27a, 0x492e, 0x4c27, 0x4c26,
+  0x4c28, 0xae7b, 0x5440, 0xc03f, 0x7035, 0xa127, 0xa14d, 0xa148,
+  0xa14e, 0x21ae, 0x4574, 0x4575, 0xa178, 0xa179, 0x4742, 0x23ac,
+  0xa755, 0x5024, 0x5023, 0x2ea3, 0x2ea2, 0x5928, 0xa128, 0x447d,
+  0x21b5, 0xa17a, 0xa457, 0x25cd, 0xab39, 0x5025, 0xaf5b, 0x5443,
+  0xaf59, 0x5441, 0x5442, 0xaf5a, 0xb44d, 0x7036, 0x4576, 0x4743,
+  0x21fb, 0xa27e, 0xa27d, 0xa27c, 0xa459, 0x492f, 0x4930, 0xa45a,
+  0x23ad, 0x25ce, 0x4c29, 0x25cf, 0xab3b, 0xab3d, 0xab3e, 0x2ea5,
+  0x2ea6, 0x5446, 0xaf5e, 0x2ea7, 0xaf5f, 0x2ea4, 0x5447, 0x5445,
+  0x5444, 0x2ea8, 0xb44f, 0x33eb, 0xb44e, 0xb97d, 0xb97a, 0x3ac5,
+  0xb97e, 0x41ea, 0x49a7, 0xcb2f, 0xcb2e, 0xcb30, 0x6c29, 0x7037,
+  0x56c4, 0xd442, 0x442d, 0x443b, 0xa12f, 0xa135, 0xa151, 0xa17b,
+  0xa322, 0xa45b, 0xa759, 0x5929, 0x5e33, 0x6821, 0xc57a, 0x21a3,
+  0x447e, 0x4579, 0x4577, 0x4578, 0x4c2a, 0xa75a, 0x442e, 0x442f,
+  0x4443, 0xa136, 0xa152, 0x4521, 0x4522, 0x4523, 0x21cc, 0x457a,
+  0xa17d, 0x21cb, 0x4747, 0xa325, 0x21fd, 0x4745, 0x4746, 0x21fc,
+  0xa324, 0xa326, 0x4748, 0x4744, 0xa327, 0x23ae, 0x4f4f, 0x23af,
+  0xa45f, 0xa461, 0x23b0, 0xa45c, 0x4932, 0x4931, 0xa45e, 0xa45d,
+  0x4935, 0x4933, 0x4934, 0xa460, 0x4c30, 0xa75b, 0x4c2f, 0x25d4,
+  0x25d1, 0x25d2, 0xa75e, 0x25d0, 0x4c31, 0x4c2d, 0x4c2c, 0xa75f,
+  0x4c2e, 0x4c2b, 0xa75d, 0x4c32, 0x5027, 0x29b2, 0xab3f, 0x25d3,
+  0x502c, 0xab40, 0x29b3, 0x5028, 0x502b, 0x502a, 0x5029, 0x5026,
+  0xab43, 0x2eab, 0xaf68, 0x544a, 0x2eae, 0x5448, 0xaf65, 0xaf62,
+  0x2eaa, 0x544b, 0x5449, 0x544c, 0x2eac, 0x2ead, 0xaf60, 0x2ea9,
+  0x2eaf, 0xaf66, 0xaf61, 0xaf63, 0xaf64, 0xb450, 0x5e37, 0x592a,
+  0x33ec, 0x33ee, 0x33ed, 0x33ef, 0x592b, 0xba23, 0x5e34, 0xba21,
+  0x5e35, 0x5e36, 0xb451, 0x6337, 0x41ec, 0xc041, 0x41eb, 0x41ed,
+  0x41ee, 0x6338, 0xc040, 0x6336, 0x49a8, 0x49a9, 0x6823, 0x6822,
+  0x4ce1, 0xcb31, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2e, 0x4fda, 0x4fdb,
+  0x6c2d, 0xcb32, 0xd036, 0x7038, 0x7039, 0xd037, 0x65b9, 0x6bd1,
+  0x6bd0, 0x6efe, 0xe02c, 0x4430, 0xa137, 0xa154, 0xa153, 0x457c,
+  0x457b, 0x4749, 0x21fe, 0xa328, 0x4937, 0x4938, 0x4936, 0x4939,
+  0x23b1, 0x23b2, 0xa463, 0xa462, 0xa761, 0xa760, 0x4c34, 0x25d5,
+  0x4c33, 0xa762, 0x29b4, 0x5030, 0x29b5, 0x502f, 0xab48, 0xab46,
+  0x502d, 0x502e, 0xab47, 0xaf6f, 0x2eb0, 0xaf6c, 0xaf6a, 0xaf6d,
+  0xaf6e, 0x592c, 0x33f1, 0xb452, 0x592f, 0x33f0, 0x5b2b, 0x592e,
+  0x592d, 0x5e3a, 0x5e39, 0x5e38, 0x6339, 0xc045, 0xc044, 0x633c,
+  0x633d, 0x633b, 0x633a, 0xc046, 0x49aa, 0xc621, 0x49ab, 0xc57e,
+  0xcb33, 0x4fdd, 0x6c2f, 0x4fdc, 0xcd2c, 0x703a, 0x5ccb, 0x7344,
+  0x65ba, 0x7961, 0x4444, 0x4524, 0x21b6, 0xa155, 0x4525, 0x4526,
+  0xa156, 0xa223, 0xa222, 0x457d, 0x457e, 0xa224, 0x474a, 0x23b3,
+  0x25d6, 0x25d7, 0x5031, 0x2eb1, 0x5931, 0x5930, 0x3ac7, 0x3ac6,
+  0xd038, 0x4431, 0x4527, 0x4621, 0x5932, 0x21a4, 0x21cd, 0x4622,
+  0xa226, 0x22a2, 0x474c, 0x474b, 0x22a1, 0x493a, 0xa465, 0xab49,
+  0x544d, 0x33f2, 0x633e, 0x49ac, 0x6824, 0xc623, 0xcb34, 0x56c5,
+  0xd444, 0xdc34, 0x68ea, 0xa129, 0x4528, 0xa157, 0xa466, 0x25d8,
+  0x29b6, 0x5935, 0x5933, 0x5934, 0x4432, 0x4445, 0x243f, 0x452b,
+  0xa159, 0x452a, 0x4529, 0x4625, 0x4624, 0xa32a, 0x21ce, 0x22a3,
+  0xa32b, 0xa32d, 0x4c38, 0x4c35, 0x4c37, 0x4c36, 0xa763, 0x5032,
+  0xab4a, 0x5e3b, 0x4433, 0xa15a, 0x452c, 0xa227, 0x4627, 0x4626,
+  0x23b4, 0x4c39, 0xaa5c, 0xa12a, 0x21b7, 0xa228, 0x4629, 0x4628,
+  0x474d, 0x474e, 0x23b5, 0x493b, 0xa467, 0x493c, 0xa765, 0x4c3a,
+  0x4c3b, 0x4c3c, 0xa766, 0x5033, 0x29b7, 0xab4b, 0x544e, 0xc047,
+  0x21a5, 0x452d, 0xa15b, 0xa229, 0x22a4, 0xa32f, 0x23b6, 0x23b7,
+  0x25d9, 0xa767, 0x25da, 0x29b9, 0x29b8, 0x29bb, 0x29ba, 0x5034,
+  0x33f3, 0x5450, 0x2eb2, 0x544f, 0xb454, 0x3ac8, 0x5e3c, 0xba28,
+  0x3ac9, 0xba27, 0xc04a, 0xc049, 0xc048, 0x49ad, 0x6825, 0xc625,
+  0xc626, 0xcb35, 0x6c30, 0xd445, 0x65bb, 0xa12b, 0xa15c, 0x21b8,
+  0xa22a, 0x462a, 0xa331, 0xa769, 0xa76a, 0x5936, 0xb455, 0xba29,
+  0x4434, 0x4446, 0x452f, 0x452e, 0xa15e, 0x4530, 0xa160, 0xa22b,
+  0xa333, 0x4c3e, 0xa76b, 0x4c3d, 0x4c3f, 0xab50, 0xab4f, 0x5035,
+  0xab4e, 0xab4d, 0x5451, 0xc04b, 0x56c6, 0x763b, 0x4447, 0x462c,
+  0x463b, 0x4636, 0x4631, 0x4630, 0x4637, 0x4635, 0x462e, 0x463c,
+  0x462f, 0x462b, 0x463a, 0x4639, 0x4638, 0x462d, 0xa231, 0x4634,
+  0xa22d, 0xa22e, 0x4633, 0xa22f, 0x463d, 0x4632, 0xa335, 0xa337,
+  0x4754, 0x475a, 0x4756, 0xa339, 0x475c, 0x22a5, 0x4759, 0x474f,
+  0x4752, 0x4755, 0x4751, 0x4758, 0x475b, 0x4750, 0x4753, 0x4757,
+  0x475d, 0xa33a, 0xa33b, 0xa334, 0x23c0, 0x23bd, 0xa476, 0x4949,
+  0x23be, 0x493d, 0x493f, 0x4957, 0x4952, 0xa479, 0xa47e, 0xa475,
+  0x23c5, 0x23bf, 0x4941, 0x4943, 0x23c4, 0x494a, 0x23ba, 0x4956,
+  0x4958, 0x493e, 0x494f, 0xa524, 0x23b8, 0x4955, 0xa477, 0x4946,
+  0xa47b, 0x4950, 0x4951, 0x23b9, 0x494e, 0x494c, 0xa470, 0x494d,
+  0x4953, 0x23c1, 0x4940, 0xa521, 0x4954, 0x23c3, 0x4948, 0x4945,
+  0xa473, 0x23bc, 0x4944, 0x23c6, 0x4947, 0xa47c, 0x494b, 0xa478,
+  0xa474, 0xa46d, 0x4942, 0x23c2, 0xa47d, 0xa522, 0x23bb, 0xa523,
+  0xa76e, 0x25eb, 0x25ea, 0x4c51, 0x25ed, 0x25ef, 0x25e4, 0x25e7,
+  0x25ee, 0x4c52, 0xa774, 0xa778, 0x25e1, 0x25e5, 0xa775, 0x25e9,
+  0x29ca, 0x4c4d, 0x29ce, 0x4c40, 0x25e6, 0x4c41, 0x4c4e, 0x4c47,
+  0x4c43, 0xa771, 0x25e2, 0x4c46, 0x4c4b, 0x4c54, 0x25e3, 0x25dc,
+  0x4c45, 0x25dd, 0x25df, 0x4c48, 0xa76c, 0x4c4a, 0x25db, 0x25e0,
+  0xa770, 0xa779, 0x4c53, 0x4c4f, 0x25e8, 0x4c55, 0xa773, 0x4c4c,
+  0x25de, 0x4c49, 0xa76f, 0xa777, 0x4c44, 0x4c42, 0x25ec, 0x4c50,
+  0xab5c, 0xab5d, 0x29c9, 0x29bd, 0x29cc, 0xab57, 0xab59, 0x29bf,
+  0x503c, 0x504a, 0x5038, 0x5049, 0x5041, 0x5046, 0x5036, 0x29be,
+  0x29c4, 0x5045, 0x29d0, 0x5047, 0xab5b, 0x503d, 0xab54, 0xab5e,
+  0x29c6, 0x29c3, 0x503b, 0xab51, 0x29bc, 0x5048, 0x29cb, 0x5040,
+  0x29cd, 0x504b, 0x5037, 0x5042, 0x503f, 0x29c1, 0x5043, 0x29c7,
+  0x29c8, 0x503e, 0x5044, 0x503a, 0xab55, 0xab63, 0xab61, 0x5039,
+  0x29c0, 0xab53, 0x29c5, 0xab58, 0x29cf, 0x2ec6, 0x545e, 0x2eb4,
+  0x2eb9, 0x5457, 0x5462, 0x2eb7, 0x5452, 0x545c, 0x5461, 0x2ebe,
+  0x545d, 0x5460, 0xaf77, 0xb021, 0x2ec1, 0x5458, 0x2eb8, 0xaf74,
+  0xaf78, 0xb022, 0x2ec4, 0x2ec5, 0xaf79, 0x545a, 0x2ec3, 0x5456,
+  0x5465, 0x2ebb, 0xaf7b, 0x5454, 0xaf7a, 0x2ec8, 0x2ebc, 0x2ec0,
+  0x5459, 0x5464, 0x2ebd, 0x545f, 0x2ec2, 0x2ec9, 0x34a4, 0xaf73,
+  0x2ec7, 0x5466, 0x5453, 0x2ebf, 0x2eb6, 0xaf76, 0x545b, 0x2eb5,
+  0xaf7e, 0xb025, 0x2eba, 0x2eb3, 0x5463, 0xb45f, 0x33fa, 0xb468,
+  0x5949, 0x34aa, 0x5947, 0x5944, 0x34a1, 0x5940, 0x34a5, 0x594b,
+  0x33f9, 0x33fe, 0x33fd, 0x5455, 0x5946, 0x34a8, 0xb466, 0x34ab,
+  0x33f6, 0x5e4e, 0xb467, 0x34ac, 0x594c, 0x593e, 0x593b, 0x34a3,
+  0x5938, 0x34a9, 0xb45b, 0x593f, 0x34ad, 0xb458, 0x33f7, 0x34a7,
+  0x5942, 0x33f8, 0x33fb, 0x34a2, 0xb462, 0xb461, 0x5943, 0x5941,
+  0x594d, 0xb457, 0xba36, 0xb464, 0x5948, 0xb45e, 0x593c, 0x5a76,
+  0x593d, 0x33fc, 0x594a, 0x5945, 0x34a6, 0x593a, 0xb459, 0x5939,
+  0x33f4, 0x33f5, 0x3ace, 0xba3c, 0x5e3d, 0x5e40, 0x3ad9, 0x5e54,
+  0x3adc, 0x5e3e, 0x3ad5, 0x5e44, 0x5e4a, 0x6143, 0xba31, 0xba38,
+  0x5e48, 0x3ad2, 0x5e55, 0x5e41, 0x5e49, 0x3ada, 0x41fc, 0x3adf,
+  0x3ad3, 0x3aca, 0x3ad7, 0x3ad1, 0x5e47, 0x3add, 0xba2e, 0xba2a,
+  0x5e43, 0x5e57, 0x5e50, 0xba33, 0x5e45, 0x5e42, 0xba40, 0x5e4d,
+  0xba34, 0x3ade, 0x3ad0, 0x3ad6, 0x3ad8, 0x3acc, 0x3adb, 0x5e3f,
+  0x3acb, 0xba42, 0x5e46, 0x5e56, 0x5e52, 0x3acd, 0x5e4c, 0xba3b,
+  0x5e53, 0x5e4f, 0x5e4b, 0xba2f, 0x3ad4, 0x5e51, 0x41fa, 0x41f6,
+  0xc051, 0x42a7, 0x41ef, 0x41f8, 0x634c, 0x634d, 0x6345, 0x42a3,
+  0x634f, 0x41f4, 0x41f3, 0x41f1, 0x42a5, 0x6343, 0x41fd, 0x41f2,
+  0x6346, 0x41fb, 0x6341, 0x41f7, 0x41fe, 0x42a2, 0xc04e, 0x42a6,
+  0x634a, 0x41f0, 0x6344, 0x41f5, 0xba2b, 0x633f, 0x634b, 0x42a1,
+  0x6347, 0x6348, 0x634e, 0x6342, 0x2321, 0x6340, 0x41f9, 0xc04c,
+  0x6349, 0x42a4, 0x6835, 0x6830, 0xc62e, 0x49bc, 0x49b8, 0xc628,
+  0x49b2, 0x682a, 0x6826, 0x49bb, 0x6827, 0x49b5, 0x49b7, 0xc629,
+  0x49ba, 0xc636, 0x682c, 0xc62c, 0x6833, 0x682d, 0xc62a, 0x49b0,
+  0x682e, 0x682f, 0x49b3, 0x6834, 0xc634, 0x49b1, 0x49b6, 0x682b,
+  0x49af, 0x6831, 0x6829, 0xc633, 0x6828, 0x49b4, 0x49b9, 0xc631,
+  0x6832, 0xc650, 0x49ae, 0xc630, 0x6c37, 0x4fee, 0xcb41, 0x4feb,
+  0xcb38, 0x6c31, 0x6c3d, 0x6c3e, 0xcb3d, 0x6c34, 0x4fe9, 0x6c36,
+  0x4fe1, 0x6c3c, 0xcb44, 0x4fed, 0x6c33, 0x4fef, 0x6c32, 0x4fea,
+  0x4fec, 0x6c35, 0x4fe8, 0x4fe2, 0x4fdf, 0xcb3e, 0x3acf, 0x4fe5,
+  0xcb37, 0x4fde, 0x4fe4, 0x4fe3, 0xcb3b, 0x4fe0, 0xcb43, 0x6c39,
+  0xcb45, 0xcb40, 0xc635, 0xcb3c, 0x6c38, 0xcb39, 0xcb3f, 0x6c3a,
+  0x4fe6, 0x703b, 0x4fe7, 0x56cf, 0xd03f, 0x56c8, 0xd040, 0x7047,
+  0x56cc, 0x703f, 0x7043, 0x56cb, 0xd03b, 0x7042, 0x703e, 0x7041,
+  0x703c, 0x7046, 0x56cd, 0x56c9, 0x7045, 0x56c7, 0x7044, 0x56ce,
+  0x56ca, 0x6c3b, 0x7048, 0x56d0, 0x7040, 0x703d, 0xd03d, 0xd448,
+  0x5cd2, 0x5cd4, 0x7346, 0x5cd5, 0x5cd3, 0x5cd1, 0x5cd0, 0x7348,
+  0x5ccf, 0x7349, 0xd449, 0xd447, 0x5ccd, 0x5cce, 0x7345, 0x734a,
+  0x7347, 0x5ccc, 0xd75b, 0x763c, 0xd75a, 0x61c8, 0x61c6, 0x61cb,
+  0x61c9, 0xd758, 0x61c7, 0x61ca, 0xd759, 0xd757, 0xd75c, 0x782c,
+  0x65be, 0x65bf, 0x782d, 0x65c0, 0x65bc, 0x65c1, 0x65bd, 0x763d,
+  0xda2d, 0x68eb, 0x68ed, 0x7964, 0x68ec, 0x7963, 0x7962, 0xde26,
+  0x7965, 0x6bd3, 0x6bd4, 0x7a65, 0x7a64, 0x7a66, 0x6bd2, 0x6dc6,
+  0x6dc5, 0xdf40, 0x7b59, 0x7b5b, 0x7b5a, 0x6dc7, 0x7c34, 0x70b4,
+  0x7c5d, 0xe071, 0x70b3, 0x70fc, 0x21aa, 0xa177, 0x463f, 0x463e,
+  0x4760, 0x475f, 0x22a7, 0x475e, 0x22a6, 0xa33e, 0x495b, 0x23c9,
+  0xa52c, 0x23c8, 0xa526, 0x4959, 0x495c, 0xa52b, 0xa52a, 0x23c7,
+  0xa529, 0x495a, 0xa548, 0xa527, 0xa528, 0xa822, 0x25f0, 0xa77d,
+  0x25f1, 0x4c56, 0xa77c, 0xa821, 0xa77b, 0x504c, 0xab65, 0x2eca,
+  0x2ecb, 0x5467, 0x5468, 0xb027, 0x34af, 0x594e, 0x5950, 0x34ae,
+  0x594f, 0x3ae0, 0x5e58, 0xba44, 0xba43, 0x6350, 0x6351, 0x42a8,
+  0xc052, 0x6837, 0xc637, 0x6836, 0x4ff0, 0x56d2, 0x56d1, 0xdf41,
+  0x71da, 0x4448, 0x21b9, 0xa161, 0x21cf, 0x21d0, 0xa234, 0x4763,
+  0x4767, 0x22a9, 0x4765, 0x4764, 0x22a8, 0x4766, 0x4762, 0xa341,
+  0xa342, 0x4761, 0x22aa, 0xa33f, 0xa340, 0x4966, 0xa531, 0xa53e,
+  0x4963, 0xa530, 0x495f, 0x23ca, 0xa540, 0xa536, 0xa52f, 0x23cb,
+  0xa53c, 0x4961, 0xa52d, 0x23cd, 0x495d, 0x23ce, 0x23cc, 0x4960,
+  0x4962, 0x4965, 0x4964, 0x495e, 0x23cf, 0xa532, 0xa541, 0xa542,
+  0xa533, 0xa538, 0xa537, 0xa535, 0x4c5b, 0x25fe, 0xa825, 0x4c5d,
+  0xa823, 0x4c5c, 0xa826, 0x26a1, 0x4c5a, 0x4c59, 0x25f5, 0x25f4,
+  0xa828, 0x25f2, 0x25f7, 0x25f6, 0x25f3, 0x25fc, 0x25fd, 0x25fa,
+  0x25f8, 0x4c58, 0xa829, 0x25fb, 0x4c5e, 0x26a2, 0xa82a, 0x25f9,
+  0xa824, 0x504d, 0x4c57, 0x504e, 0x29d5, 0xab69, 0xab68, 0x29db,
+  0xab6c, 0xab67, 0xab6a, 0x5054, 0x29d9, 0x29df, 0xab71, 0x29d6,
+  0x29da, 0x29dc, 0x29de, 0x29d8, 0xab70, 0x29d7, 0x29d2, 0x29d3,
+  0x504f, 0xab6b, 0x5051, 0x5050, 0x29d4, 0x29dd, 0xab6d, 0xab72,
+  0xab6e, 0xab66, 0x5053, 0x29d1, 0x2ed5, 0xb02a, 0x2ed4, 0x2ed9,
+  0x2ed0, 0xb030, 0x2ed3, 0x2ed2, 0xb02f, 0x2ed6, 0xb038, 0x2eda,
+  0x5469, 0x546c, 0xb034, 0xb035, 0x2ed1, 0x2ed7, 0xb033, 0xb028,
+  0xb037, 0x546b, 0x2ecc, 0xb02b, 0x5052, 0x34bd, 0x2ed8, 0xb036,
+  0x2ecf, 0x546a, 0x2ece, 0xb032, 0x34b4, 0xb46e, 0xb471, 0x5951,
+  0x5955, 0x34c4, 0x34b2, 0x34c0, 0x5956, 0x34c2, 0xb472, 0x34c8,
+  0xb474, 0x34cc, 0xb469, 0x34c3, 0x34b7, 0x34bf, 0xb46b, 0x34cd,
+  0x34cb, 0x34c1, 0x34bc, 0x34b5, 0x3ae8, 0x34b3, 0x595a, 0x34ba,
+  0x595b, 0x5957, 0x34b0, 0x34c6, 0x34b8, 0xb46f, 0xb475, 0x34b6,
+  0x34c9, 0x5958, 0xb476, 0x34cf, 0x5952, 0x5954, 0x34be, 0x34b9,
+  0x546d, 0x5953, 0x34bb, 0x34ca, 0x34ce, 0x34c5, 0x34c7, 0x34b1,
+  0xba4a, 0x3ae3, 0xba45, 0x3aec, 0x3aeb, 0x5e60, 0x3ae4, 0xba47,
+  0x5e61, 0x5e5f, 0xba50, 0x3ae6, 0x5e5c, 0x3aea, 0xba4c, 0x3ae5,
+  0x3ae7, 0x3ae1, 0x5e5a, 0x3af4, 0x3af3, 0x3af0, 0x5e59, 0x5e5d,
+  0x5e5e, 0x2ecd, 0x3aed, 0x5e5b, 0x5959, 0x3aef, 0x3ae2, 0x3af2,
+  0x3af1, 0xba4e, 0x3af5, 0xba49, 0x42b6, 0xba4b, 0x3aee, 0x3ae9,
+  0x42ae, 0x635b, 0x635e, 0x6359, 0x42ad, 0x42b1, 0x42ac, 0xc057,
+  0x6353, 0x635d, 0x42a9, 0x6357, 0x42b0, 0xc05b, 0x6355, 0x6354,
+  0x42b3, 0x6356, 0x42b5, 0xc056, 0x42b2, 0x6352, 0xc05e, 0xc05c,
+  0xc058, 0x635c, 0x42b7, 0x42ab, 0x42b4, 0xc05d, 0x42aa, 0xc05a,
+  0xc059, 0x6358, 0xc054, 0x635a, 0x42af, 0x42b8, 0xc643, 0xc63e,
+  0x49c4, 0x6838, 0x49ca, 0xc642, 0xc63c, 0x683d, 0x49c6, 0x49cd,
+  0x49be, 0x683f, 0x6839, 0x49c3, 0x6c3f, 0x49c2, 0x49cb, 0x683a,
+  0xc63d, 0x683e, 0x49c1, 0x49c7, 0x49cc, 0x49bd, 0x683c, 0x49c5,
+  0xc63a, 0xc645, 0x49c9, 0x49cf, 0x49bf, 0x49c8, 0xc638, 0x683b,
+  0x49ce, 0xc641, 0xc644, 0xc640, 0x49c0, 0x6c43, 0x4ff2, 0x6c41,
+  0x6c40, 0x4ff4, 0x4ff9, 0xcb46, 0x4ff5, 0xcb50, 0x4ff8, 0x6c46,
+  0xcb51, 0x702e, 0x6c45, 0xcb4b, 0x4ff1, 0x4ff7, 0xc63f, 0x6c44,
+  0x4ff6, 0xcb4d, 0x4ff3, 0xcb49, 0x6c42, 0xcb4f, 0xcb4c, 0xcb47,
+  0x56d7, 0xd04a, 0x56d9, 0x56d4, 0x704a, 0x56d6, 0xd04b, 0x7049,
+  0x56d8, 0xd048, 0xd04c, 0x704c, 0x56da, 0x704b, 0x56d3, 0x56d5,
+  0xd049, 0xd44b, 0x734e, 0x5cd8, 0xd44c, 0x734d, 0x5cd9, 0x734c,
+  0x5cd7, 0x734b, 0x5cd6, 0x763f, 0x763e, 0x65c2, 0x65c4, 0xda2f,
+  0x65c3, 0x782e, 0x782f, 0xda2e, 0x7830, 0x68ee, 0x7966, 0xde28,
+  0x6fa2, 0x6fa1, 0x7c5e, 0x4449, 0x4531, 0xa343, 0x4967, 0xa545,
+  0xa543, 0xa544, 0xa82d, 0x29e0, 0xab77, 0xb477, 0x5e62, 0x5e63,
+  0xba52, 0x42b9, 0x6840, 0x49d0, 0x4ffa, 0xd04d, 0xa139, 0x21ba,
+  0xa235, 0xa344, 0x23d0, 0xab7a, 0xab79, 0xa13a, 0xa546, 0x26a3,
+  0x29e1, 0x2edb, 0x546e, 0xc646, 0x65c5, 0x7a67, 0x444a, 0x4640,
+  0x21d1, 0xa236, 0x4768, 0x4769, 0x4c5f, 0xb479, 0x595c, 0x6842,
+  0xc05f, 0x6843, 0x6841, 0xcb53, 0x444b, 0x4532, 0x4534, 0x4533,
+  0x21bb, 0x4535, 0x4641, 0x21d2, 0xa238, 0x4642, 0xa237, 0xa239,
+  0xa347, 0x476a, 0x476b, 0x22ab, 0xa549, 0x4968, 0x23d1, 0x4c63,
+  0x26a4, 0x4c61, 0x4c62, 0x4c60, 0x2edc, 0xa82e, 0xa82f, 0x5058,
+  0x5057, 0x5059, 0x5056, 0xab7c, 0x29e2, 0x4c64, 0x5055, 0x546f,
+  0x5470, 0x5471, 0xb47b, 0x34d0, 0xb47c, 0xb47d, 0x5e64, 0x3af6,
+  0x595d, 0xba53, 0xba54, 0xc060, 0x635f, 0xc061, 0x6845, 0x6844,
+  0x49d1, 0xc648, 0x6c47, 0x704d, 0x61cc, 0x6dc8, 0x6fa3, 0x444c,
+  0x4643, 0xa23b, 0x4644, 0x22b1, 0x476d, 0x4770, 0xa34b, 0x22af,
+  0x22ad, 0x476f, 0x22b0, 0x22b2, 0x22ac, 0x4772, 0x4771, 0x476e,
+  0x476c, 0x22ae, 0xa34d, 0xa555, 0x4973, 0xa54c, 0x4970, 0x23d6,
+  0x23d9, 0x23d8, 0x496a, 0x4972, 0xa54b, 0x496f, 0x23d5, 0x23d3,
+  0x496e, 0xa556, 0xa553, 0xa54e, 0x4969, 0x496c, 0xa551, 0x23d4,
+  0x23db, 0x23d7, 0x496d, 0x4971, 0x4974, 0x23d2, 0x23da, 0x496b,
+  0xa841, 0xa833, 0x4c69, 0x4c71, 0xa838, 0x26b0, 0x26a9, 0x4c72,
+  0x26b4, 0x26a5, 0x26ac, 0xa845, 0xa840, 0x4c68, 0x26a6, 0x4c66,
+  0x26ad, 0x26b1, 0x4c65, 0xa83d, 0x26b2, 0x26ab, 0xa837, 0x26ae,
+  0xa835, 0x4c74, 0x4c6b, 0x26b5, 0x26b3, 0xa83f, 0x4c70, 0x4c6e,
+  0x26aa, 0x4c6d, 0x26a8, 0x26a7, 0x4c6c, 0x4c6a, 0x4c73, 0x4c6f,
+  0x4c67, 0xac26, 0x26af, 0xa846, 0x505b, 0xac2d, 0x5062, 0x29f0,
+  0x505a, 0x29e8, 0x29e4, 0xac21, 0x29f4, 0x29e3, 0xac2c, 0x505d,
+  0x29ed, 0x5060, 0x5063, 0xac2e, 0x505e, 0x29f1, 0x5061, 0xac23,
+  0x5478, 0x29f7, 0x29e5, 0xac24, 0xac25, 0x29e7, 0x29ee, 0x29f2,
+  0x29f6, 0x29f3, 0x29ec, 0x29ef, 0xac2b, 0xac29, 0x29e9, 0x5065,
+  0x29eb, 0x29ea, 0x29f5, 0x505c, 0x29e6, 0x5064, 0xac2a, 0x505f,
+  0xac28, 0x547e, 0x2ee4, 0xb040, 0x547d, 0xac27, 0x2ee2, 0x5472,
+  0xb04f, 0x5477, 0xb04a, 0x2ee1, 0x2ede, 0x2ee3, 0x5473, 0x2edd,
+  0xb04e, 0x5476, 0x5474, 0xb03e, 0x2ee5, 0x5475, 0x5479, 0xb03b,
+  0xb045, 0x547a, 0xb048, 0x547c, 0xb052, 0x547b, 0xb03c, 0xb522,
+  0xb538, 0x2edf, 0x2ee0, 0xb04d, 0xb04b, 0x2ee6, 0x34d7, 0x595e,
+  0x3ba6, 0x34d6, 0x34e9, 0xb528, 0xb524, 0x5964, 0xb531, 0x34e7,
+  0xb533, 0x5963, 0x595f, 0x34f0, 0x34e0, 0x34e3, 0xb52e, 0x5967,
+  0x34ed, 0x34e5, 0x5960, 0x5968, 0xb52a, 0x34ea, 0x34e8, 0xb52f,
+  0xb53b, 0x34d9, 0x34ee, 0x34e2, 0x34dd, 0xb53a, 0x34d3, 0x34ef,
+  0x34df, 0x34d2, 0xb539, 0x5966, 0x34e4, 0x34f1, 0x34e1, 0x34d5,
+  0x34da, 0x34d1, 0xb527, 0x5965, 0xb53c, 0x34de, 0x34db, 0x5961,
+  0x34d4, 0xb530, 0x34ec, 0x5962, 0xb52b, 0x34dc, 0x34d8, 0xb529,
+  0xb534, 0x34eb, 0xb532, 0xb537, 0xb535, 0x5e65, 0x3afd, 0xba75,
+  0x3afa, 0x3bad, 0x3ba1, 0x3bae, 0xba7c, 0x5e67, 0xba63, 0xba61,
+  0xba58, 0x3baa, 0x3ba7, 0xba5b, 0xba77, 0xba72, 0xba59, 0xba60,
+  0x3ba8, 0x3bab, 0x3baf, 0xba7b, 0x34e6, 0x3bb1, 0x42cd, 0xba66,
+  0x5e68, 0x3bb2, 0x3af8, 0x3ba4, 0xba62, 0x3ba9, 0xba5c, 0xba5e,
+  0x5e66, 0x5e69, 0x3bb0, 0x3bb3, 0x3afc, 0x3af9, 0xba73, 0xba5a,
+  0x3afb, 0xba57, 0xba7a, 0x3ba2, 0x3afe, 0x5e6a, 0xba56, 0x3bac,
+  0xba79, 0xba78, 0x3ba3, 0x3ba5, 0x3af7, 0x42c1, 0x42bf, 0x6368,
+  0x6366, 0x42c9, 0x42c0, 0x42ca, 0x42c6, 0x42be, 0x42cc, 0x42bd,
+  0x42c4, 0x6365, 0x6364, 0x6363, 0x42c2, 0x42c7, 0x6360, 0x6367,
+  0xc067, 0x42bb, 0xc066, 0x42c5, 0x42ba, 0x42c3, 0x6361, 0x42c8,
+  0x42bc, 0x6362, 0x42cb, 0xc064, 0xba6b, 0xc06a, 0x49d5, 0x684a,
+  0x6849, 0x684b, 0x49e1, 0x49d7, 0x49dd, 0x49d2, 0x49e0, 0x49df,
+  0x49e3, 0x49dc, 0x6846, 0x49db, 0x684c, 0xc64c, 0x49d4, 0x6847,
+  0xc64a, 0x49e2, 0x6848, 0x49d6, 0x49d9, 0x49de, 0x49d8, 0x49d3,
+  0xc64f, 0xc653, 0x49da, 0x4ffc, 0x6c4b, 0x50a1, 0x4ffe, 0x50a3,
+  0x50a5, 0xcb5c, 0x6c49, 0xcb58, 0x4ffd, 0xcb54, 0x4ffb, 0xcb5e,
+  0x50a6, 0x50a4, 0x50a2, 0xcb56, 0x50a8, 0xcb5a, 0x50a7, 0x6c4d,
+  0x6c48, 0xcb5b, 0x6c4a, 0x6c4c, 0xcb5d, 0xcb5f, 0x50a9, 0x56e1,
+  0xd050, 0xd053, 0x56e0, 0x56df, 0xd051, 0x56e2, 0x56db, 0xd04f,
+  0x56dc, 0x56e4, 0x56dd, 0xd054, 0x704e, 0x56e6, 0xd04e, 0x56e5,
+  0x56de, 0xd056, 0x5cdd, 0x7351, 0x5cdb, 0x5ce0, 0x5cdf, 0x56e3,
+  0xd450, 0x7350, 0xd44e, 0x5cde, 0x5cda, 0x5ce2, 0x5ce1, 0x734f,
+  0xd452, 0x5cdc, 0xd44f, 0x704f, 0xd451, 0xd453, 0x7640, 0xda31,
+  0xd761, 0xd75e, 0x61cd, 0x65c6, 0x65c7, 0x65c8, 0x7967, 0xdc36,
+  0x7968, 0xdc39, 0x68ef, 0xdc3a, 0x6bd6, 0x6bd5, 0xde29, 0xdf42,
+  0x6dc9, 0x6dca, 0x6fa4, 0x70b5, 0xe073, 0x444d, 0x444e, 0x444f,
+  0x4536, 0x4645, 0x22b3, 0x4773, 0x4774, 0x4977, 0x4978, 0x4976,
+  0x4975, 0x4c75, 0xa848, 0x26b6, 0x4c77, 0x4c76, 0x26b7, 0x5066,
+  0xac2f, 0x5521, 0x2ee7, 0x34f3, 0x5969, 0x5e6c, 0x34f2, 0x5e6b,
+  0xc071, 0x684d, 0xc072, 0x49e4, 0x7050, 0xd057, 0x7352, 0x5ce3,
+  0xda34, 0x7969, 0xdc3b, 0x7b5c, 0xa13b, 0x21d3, 0xa23d, 0x4646,
+  0x21d4, 0x4777, 0xa350, 0x4775, 0x4776, 0x4778, 0x497a, 0x4979,
+  0xa55a, 0x23dc, 0x497b, 0x23dd, 0x26b8, 0xa84c, 0x26b9, 0xa84a,
+  0x4c78, 0x4c7a, 0x4c7c, 0x4c79, 0x4c7d, 0x4c7b, 0xa84e, 0xa84b,
+  0xa84d, 0x506a, 0x5067, 0x5069, 0x506b, 0x5068, 0x2ee8, 0x29f8,
+  0xac32, 0x2eea, 0x2ee9, 0x5527, 0x5523, 0x5524, 0x5526, 0x5528,
+  0x5525, 0xb057, 0x552a, 0x5529, 0xb056, 0xb055, 0x596e, 0x34f5,
+  0x34f4, 0x596d, 0xb541, 0x596c, 0x596b, 0x596f, 0x596a, 0xb53f,
+  0x3bb9, 0x3bb6, 0x5e6e, 0x3bb5, 0x3bba, 0x5e70, 0x3bb8, 0x5e6d,
+  0x5e6f, 0x3bb7, 0xba7e, 0x42ce, 0xc074, 0x42cf, 0x42d0, 0xc075,
+  0xc076, 0xc073, 0x684e, 0x6856, 0x49e5, 0x6850, 0x6854, 0x49e6,
+  0x6855, 0x6851, 0x6852, 0x684f, 0x6853, 0x6c50, 0x3bb4, 0x6c51,
+  0x6c4f, 0x6c4e, 0x56e7, 0x7051, 0x5ce4, 0x5ce5, 0xda35, 0x7831,
+  0x796a, 0xde2a, 0x4450, 0xa23e, 0x4779, 0xa55e, 0xa55c, 0xa55d,
+  0xa850, 0x506c, 0x2eeb, 0x552b, 0xb058, 0xb059, 0x5972, 0x5971,
+  0x5970, 0x5e71, 0x5e72, 0x3bbb, 0x6857, 0x7052, 0x4451, 0x21bc,
+  0x4537, 0x21d5, 0xa23f, 0x22b4, 0x477a, 0xa352, 0xa851, 0x4c7e,
+  0xac34, 0xbb24, 0x42d1, 0xc078, 0x4452, 0x4538, 0x22b5, 0x23de,
+  0x23df, 0xa55f, 0x497c, 0xac35, 0x3bbc, 0x5e73, 0x42d2, 0xd454,
+  0x7353, 0x4453, 0x4467, 0x4539, 0x21d6, 0x4647, 0xa354, 0x4a22,
+  0x4a21, 0x497d, 0x497e, 0x26ba, 0x4d22, 0x4d23, 0x26bb, 0x4d21,
+  0xa854, 0xa855, 0x5070, 0x29f9, 0x506f, 0x506d, 0x506e, 0x552e,
+  0x552c, 0xb05a, 0xb05b, 0x2eed, 0x552d, 0x2eec, 0x5522, 0x34f6,
+  0xb543, 0x5974, 0x5975, 0xbb26, 0xbb25, 0x5973, 0xb544, 0x6858,
+  0x49e7, 0x6c52, 0x6c53, 0x50aa, 0x7354, 0x61ce, 0x61cf, 0xda38,
+  0x7a68, 0x70b6, 0x21ab, 0x453a, 0x4454, 0x21d8, 0x21d7, 0xa355,
+  0x477b, 0x22b7, 0x22b8, 0x22b6, 0x22b9, 0xa35a, 0xa561, 0xa566,
+  0x23e7, 0x23e2, 0x23e4, 0x23e6, 0x23e3, 0x4a26, 0x23e0, 0xa562,
+  0x23e1, 0x4a23, 0x4a24, 0x23e5, 0x23e8, 0x4a25, 0x23e9, 0xa563,
+  0x26c9, 0xa85d, 0x26c3, 0x26be, 0x4d25, 0x26c6, 0x26c4, 0x26bd,
+  0x26ca, 0x26cd, 0x26c8, 0x26c1, 0x4d27, 0x26c7, 0x4d28, 0x26c2,
+  0x26c5, 0x26bc, 0x26c0, 0x26cc, 0x4d29, 0x4d2a, 0xa85e, 0x26bf,
+  0x26cb, 0x4d24, 0x4d26, 0xa85c, 0xa85f, 0xa857, 0xa858, 0x2aac,
+  0x2aa5, 0x2aab, 0x2aa4, 0x2aa6, 0x29fe, 0x29fc, 0xac3f, 0x2aad,
+  0x2aaa, 0x29fa, 0xac3b, 0x5072, 0x2aa8, 0x2aa9, 0x2aa7, 0x29fd,
+  0x29fb, 0x5071, 0x2aa3, 0x2aa1, 0xac3c, 0xac42, 0x2aa2, 0x2aae,
+  0xac3e, 0xac41, 0xac43, 0xac3d, 0x5533, 0xb063, 0x5532, 0xb05f,
+  0x2eee, 0x552f, 0x2ef0, 0xb064, 0x5534, 0x2ef1, 0xb061, 0x5537,
+  0xb062, 0x5535, 0x2ef2, 0x2aaf, 0x2ef4, 0xb05e, 0x5531, 0x5530,
+  0x2eef, 0x2ef3, 0x5536, 0x5977, 0x5976, 0xb54b, 0xb548, 0xb547,
+  0x34f8, 0x34fc, 0x34fe, 0x5978, 0x35a3, 0xb551, 0x597c, 0x35a5,
+  0xb552, 0x597e, 0xb54f, 0x597a, 0x5a24, 0xb555, 0x5a21, 0x34fa,
+  0x5979, 0xbb2b, 0x34f9, 0x34f7, 0x35a7, 0x34fb, 0xb546, 0x597b,
+  0x35a6, 0x5a22, 0x35a2, 0x35a1, 0x5a23, 0x34fd, 0x597d, 0xb54e,
+  0xb54a, 0x35a8, 0xb554, 0x35a4, 0x3bcb, 0x3bd2, 0x3bc7, 0x5e76,
+  0x3bc3, 0x3bd3, 0x3bbd, 0x3bd0, 0x3bce, 0x3bc8, 0xbb36, 0x3bd1,
+  0x3bca, 0xbb28, 0x3bc2, 0x3bd4, 0x3bc0, 0x3bcd, 0x3bbe, 0xbb27,
+  0x3bd5, 0xbb37, 0x5e77, 0xbb2a, 0x3bcf, 0x42d5, 0x3bc1, 0x5e74,
+  0xbb2e, 0x3bc5, 0xbb34, 0x5e75, 0x3bc4, 0x3bc9, 0xbb33, 0x3bc6,
+  0xbb31, 0x3bcc, 0xbb2d, 0x42d9, 0xc121, 0x42dc, 0x42d4, 0xc07c,
+  0x42d6, 0xc07a, 0x42db, 0x42da, 0x6369, 0x3bbf, 0x42d8, 0xc079,
+  0xc07d, 0x636a, 0x42d3, 0x42d7, 0x49ee, 0xc65c, 0x49f5, 0x49ec,
+  0xc654, 0x49f3, 0x49ea, 0x49f2, 0x49f6, 0x49e9, 0x49ed, 0x49e8,
+  0xc656, 0x6859, 0x49eb, 0x685a, 0x49f1, 0x49f0, 0x49ef, 0xc659,
+  0xc65a, 0x49f4, 0xcb65, 0xcb66, 0xcb63, 0x50ae, 0x50b0, 0x6c55,
+  0x50b1, 0xcb6b, 0x50ac, 0xcb67, 0x50ab, 0x50b5, 0xcb69, 0x50b3,
+  0x6c54, 0x50b6, 0x50ad, 0x50b2, 0x50b4, 0x50af, 0xcb6a, 0xcb68,
+  0xd058, 0x56eb, 0x56f0, 0x56ea, 0x56ef, 0xd05b, 0x56e8, 0x56f2,
+  0x56ee, 0x56f3, 0x56ed, 0x56e9, 0x56f1, 0xd05a, 0x56f4, 0x56ec,
+  0x5ce6, 0x7358, 0xd457, 0x7356, 0xd459, 0x7355, 0x7357, 0xd455,
+  0x61d0, 0xd762, 0x64be, 0x65c9, 0xda39, 0x68f0, 0x68f1, 0xdc3d,
+  0x796b, 0xdc3c, 0x6bd7, 0xdc3e, 0x7a69, 0x6bd8, 0xde2d, 0x6dcc,
+  0x7b5e, 0xdf43, 0x7b5d, 0x6dcb, 0x7c35, 0xe030, 0x6fa5, 0xa13c,
+  0x4455, 0x477c, 0x22ba, 0x23ea, 0x4b56, 0x5a25, 0xb557, 0xcb6c,
+  0x4456, 0x464a, 0x4649, 0x4648, 0x4a27, 0x5538, 0x42dd, 0x4457,
+  0x4458, 0x4459, 0x453b, 0xa567, 0xa860, 0x5073, 0x2ab0, 0xac45,
+  0xac44, 0x5e78, 0x445a, 0x21bd, 0xa163, 0x464b, 0x464c, 0x21d9,
+  0x477d, 0xa35c, 0xa568, 0x23eb, 0xa56b, 0x4a28, 0x23ec, 0x4d30,
+  0xa862, 0xa861, 0x26cf, 0x4d2e, 0x4d2d, 0x26ce, 0x4d2b, 0x26d0,
+  0x4d2c, 0x4d2f, 0x5074, 0xac46, 0x5076, 0x2ab4, 0x2ab1, 0x2ab2,
+  0x2ab3, 0x2ab5, 0x5075, 0x2ef6, 0x2ef5, 0xb066, 0x553a, 0xb069,
+  0x5539, 0xb068, 0xb06a, 0xb067, 0xb55b, 0x5a28, 0x35aa, 0xb559,
+  0x5a27, 0x5a29, 0x5a26, 0xb558, 0xb55a, 0x5e7a, 0x35a9, 0x5e7b,
+  0x3bd7, 0xb979, 0x5e7c, 0x3bd6, 0x5e79, 0xbb3a, 0xbb3b, 0xbb3d,
+  0x42e0, 0x42e2, 0x636b, 0x42e1, 0x42df, 0x42de, 0xc65d, 0x49f9,
+  0x685f, 0x685d, 0x685e, 0x49f7, 0x49f8, 0xcb6d, 0x685b, 0x50ba,
+  0x50b8, 0xcb70, 0x6c57, 0x50b9, 0x6c58, 0x6c56, 0x685c, 0x56f7,
+  0x56f5, 0x56f6, 0x50b7, 0x5ce8, 0x7359, 0x5ce7, 0x61d1, 0x61d2,
+  0x56f8, 0x65ca, 0x445b, 0x464d, 0x4821, 0x22bb, 0x477e, 0xa863,
+  0x4d31, 0x636c, 0xa13d, 0x453c, 0x464e, 0x5077, 0x5e7d, 0xa13e,
+  0x21da, 0xa247, 0x21db, 0xa248, 0x22bc, 0x4a2a, 0x23f0, 0x23ee,
+  0x4a2b, 0x23ed, 0x23ef, 0x23f1, 0x4a29, 0xa56e, 0xa56d, 0x4d35,
+  0x4d36, 0x4d33, 0xa865, 0xa867, 0x4d32, 0x2ab9, 0x4d34, 0xa868,
+  0x5078, 0xac48, 0x2ab8, 0x2aba, 0x2ab7, 0x2abb, 0x5079, 0x553d,
+  0x2ef7, 0xb06c, 0x2ef9, 0x553b, 0x2efa, 0x553c, 0x2ef8, 0xb06b,
+  0x2ab6, 0x35ab, 0x35ae, 0x35af, 0x35ac, 0x5a2d, 0x5a2c, 0x5a2a,
+  0x5a2b, 0x35ad, 0xb561, 0xb560, 0xbb3f, 0x5a2e, 0xbb40, 0xbb3e,
+  0x5f21, 0x5f22, 0x5f23, 0x42e3, 0x42e5, 0x42e7, 0x636e, 0x636d,
+  0x5e7e, 0x42e6, 0x42e4, 0x49fd, 0xc661, 0xc660, 0x49fb, 0x4aa3,
+  0x6860, 0x4aa4, 0x4aa1, 0x6861, 0x49fc, 0x49fa, 0x4aa2, 0x6c5a,
+  0x50bc, 0x49fe, 0x6c5c, 0x50bd, 0x6c5b, 0x6c5e, 0x50be, 0x6c59,
+  0x6c5d, 0x56fd, 0x56fb, 0x56fa, 0x56fc, 0x56f9, 0xd05c, 0x7833,
+  0x68f2, 0x68f3, 0xdc3f, 0x6bd9, 0x6dcd, 0x7d22, 0xa13f, 0xa361,
+  0x4d37, 0x4a2c, 0xa869, 0xa86b, 0x507a, 0xac4c, 0xac4b, 0xb06e,
+  0x445c, 0x453d, 0x464f, 0x22bd, 0xa56f, 0x4a2d, 0x23f2, 0xa86d,
+  0x2abc, 0x507b, 0x6862, 0x445d, 0xa164, 0xa249, 0xa362, 0x4822,
+  0xbb42, 0x636f, 0x445e, 0x453e, 0x453f, 0x4651, 0x4650, 0x22be,
+  0x4823, 0x23f3, 0xa571, 0x4a2e, 0xa86e, 0x26d2, 0x26d3, 0x26d4,
+  0xa870, 0x4d38, 0x4d39, 0x26d1, 0x4d3a, 0x507c, 0x2abd, 0xac4d,
+  0x2efc, 0x553e, 0xb06f, 0x2efb, 0xb562, 0x5a2f, 0x35b0, 0x5a30,
+  0x35b1, 0xb563, 0xbb47, 0xbb45, 0x5f24, 0xbb44, 0x42e8, 0xc122,
+  0x4aa6, 0x4aa5, 0x6863, 0x6c5f, 0x50bf, 0x7053, 0x56fe, 0x735a,
+  0xd763, 0x7b5f, 0x6fa7, 0xa140, 0xa141, 0xa24a, 0xa351, 0x26d5,
+  0xa871, 0x2abe, 0x5a31, 0x3bd8, 0x6370, 0xc123, 0xd05e, 0xd764,
+  0x7641, 0xe164, 0xa142, 0x4a30, 0xa572, 0x4a2f, 0x507d, 0xac50,
+  0x2efd, 0x5a33, 0x5d29, 0x5a34, 0x5a32, 0x5f25, 0xc124, 0x4aa7,
+  0x6864, 0x6c60, 0xdf45, 0x21ac, 0x22bf, 0x23f5, 0x4a31, 0x23f4,
+  0x4a32, 0x4d3e, 0x26d8, 0x26d7, 0x4d3d, 0x4d3b, 0x4d3c, 0x26d6,
+  0xa876, 0xa875, 0x5121, 0x2abf, 0x5124, 0x507e, 0x5126, 0x5122,
+  0x5123, 0x5125, 0xb070, 0xb072, 0x5541, 0x5540, 0x553f, 0xb071,
+  0x35b3, 0x5a35, 0x5a38, 0x5a36, 0x35b2, 0x5a3b, 0x5a37, 0x35b4,
+  0x5a3a, 0x5a39, 0x3bda, 0x3bd9, 0xbb4b, 0x5f28, 0x5f26, 0x5f27,
+  0x3bdb, 0x6371, 0x42ea, 0x6372, 0x42e9, 0x50c0, 0xc663, 0xc664,
+  0x6c62, 0x4aa8, 0x6c61, 0xcb72, 0x6865, 0x57a2, 0x57a1, 0x735b,
+  0x5ce9, 0x65cb, 0x68f4, 0x68f5, 0xde2f, 0x4540, 0x4652, 0xa24d,
+  0x21dc, 0xa24c, 0x4a34, 0x4a36, 0xa578, 0x22c2, 0x23f8, 0x23f7,
+  0x23f6, 0xa366, 0x22c1, 0x22c0, 0x4825, 0x4a35, 0x4a33, 0x4824,
+  0xa367, 0xa369, 0xa577, 0x4d3f, 0x26d9, 0xa57b, 0x4d40, 0x23fd,
+  0x24a1, 0x23fe, 0x26da, 0xa576, 0xa574, 0x23fa, 0xa87e, 0x4a3a,
+  0x4a38, 0xa57c, 0x23f9, 0x23fb, 0x24a3, 0xa622, 0x4a37, 0xa621,
+  0x23fc, 0x24a7, 0x4d42, 0xa57d, 0x24a4, 0x4a39, 0xa623, 0x24a2,
+  0x24a5, 0xa57a, 0x4d41, 0xa575, 0x4d43, 0x24a6, 0xa878, 0xa922,
+  0x26ee, 0x26e1, 0x26df, 0x26ed, 0x26e8, 0x512b, 0x4d44, 0x26e9,
+  0x26ec, 0x5127, 0x26eb, 0x4d45, 0x4d4a, 0x4d48, 0x26e2, 0x26dd,
+  0x26e4, 0x4d4f, 0x26ef, 0x5128, 0x26e5, 0x5129, 0x4d4b, 0x26e7,
+  0xac5a, 0x2ace, 0x512a, 0x26dc, 0x4d4c, 0x512c, 0x4d4d, 0x4d49,
+  0x4d4e, 0x26e6, 0x26db, 0x26ea, 0x4d46, 0xa877, 0xac5b, 0x26de,
+  0x26e3, 0x26e0, 0x4d47, 0xa87a, 0x2ac0, 0x2ac1, 0xa921, 0x2acb,
+  0x2fa3, 0x2acc, 0x5132, 0x2acf, 0x2ac5, 0x5131, 0x2ac7, 0x2ac8,
+  0xac60, 0xb079, 0x2aca, 0x512d, 0xac56, 0xb073, 0x5545, 0xac57,
+  0xac5d, 0x2ac6, 0x2ac2, 0x5546, 0xb07e, 0x2ad0, 0x5542, 0x2fa1,
+  0x2ac9, 0xac54, 0x2efe, 0x2ac4, 0x2acd, 0xac5f, 0xac61, 0x5130,
+  0x5543, 0x5136, 0x5544, 0x2ad1, 0x2fa2, 0x512f, 0x5548, 0x5135,
+  0x5134, 0x5133, 0x5547, 0x2ad2, 0x5549, 0x512e, 0x2ac3, 0xb07a,
+  0xb078, 0xb07b, 0xac5c, 0xb076, 0x5a3c, 0x2fa6, 0x2fa8, 0x2faa,
+  0x554a, 0x5550, 0x35b7, 0x2fae, 0x2fa5, 0x5a3e, 0x35b5, 0xb122,
+  0x554f, 0x554d, 0x2fb0, 0x35b6, 0x2fa7, 0xb125, 0x554e, 0x2fab,
+  0x5551, 0x2fad, 0xb568, 0xb074, 0x554c, 0x2fac, 0x2faf, 0x2fa9,
+  0xb127, 0x554b, 0x5a3f, 0xb571, 0x2fa4, 0x5a3d, 0xb572, 0xb123,
+  0xb128, 0x5a40, 0xb121, 0xb56f, 0xb126, 0x35b9, 0x35c2, 0x5f2b,
+  0xbb54, 0x5a42, 0x5a47, 0x5f2c, 0x35c4, 0x5a4e, 0x3bdd, 0x35ba,
+  0x5a46, 0x5a49, 0x5a44, 0x35b8, 0x35c6, 0x35c9, 0x3bec, 0x35c7,
+  0x3be1, 0x5a45, 0x5a4c, 0x5a50, 0x35c1, 0x3bdc, 0x35c5, 0x5a41,
+  0x3bde, 0x35c8, 0x3be0, 0x35bd, 0xb56a, 0x5f29, 0xbb56, 0x35bb,
+  0x35bc, 0x5a4b, 0xbb55, 0xb56e, 0x5a4a, 0x35bf, 0x5a4f, 0x35c3,
+  0x5a48, 0x35c0, 0xb579, 0x5a4d, 0x5f2d, 0x5f2a, 0x3bdf, 0xbb58,
+  0x35be, 0xbb59, 0x5a43, 0xb576, 0xbb5a, 0xbb4d, 0xb574, 0x5f32,
+  0x5f36, 0x3be3, 0x6377, 0x5f34, 0x3be7, 0x5f38, 0x42eb, 0x3be9,
+  0x6379, 0x5f30, 0x5f33, 0x3bea, 0xbb5e, 0x3beb, 0x3bf1, 0x5f3a,
+  0x637a, 0x3bed, 0x3bf2, 0x3be6, 0x6426, 0xbb4f, 0x637b, 0x5f39,
+  0x3be4, 0x3bf3, 0xbb51, 0x6425, 0x5f37, 0x6374, 0x3bf0, 0xbb5d,
+  0x5f3b, 0x3be8, 0x3be2, 0x5f31, 0x3be5, 0x3bee, 0xc12b, 0x6373,
+  0x6378, 0x5f2e, 0x3bef, 0xbb61, 0x6376, 0xbb62, 0xbb63, 0xbb50,
+  0x5f2f, 0x6424, 0x4aaa, 0x42f6, 0xc129, 0x42ee, 0x4aa9, 0x42f2,
+  0x42f4, 0xc127, 0xc12c, 0x42f1, 0xc66f, 0x6423, 0x42f0, 0x6427,
+  0xc66e, 0xc128, 0x4ab9, 0xc66c, 0xc12e, 0x6422, 0x6867, 0x42f7,
+  0x4aab, 0xc66d, 0xc12a, 0x637e, 0x42ef, 0x42f3, 0x6866, 0x6375,
+  0x42ec, 0x42ed, 0x6868, 0x637d, 0x6421, 0x637c, 0x42f5, 0x4aaf,
+  0x4ab0, 0x4ab5, 0x6c67, 0x4abc, 0xcb73, 0x686e, 0xcb7e, 0x686d,
+  0x4ab7, 0xcb74, 0x6c66, 0x4aac, 0x686c, 0xc671, 0x4abb, 0x686a,
+  0x686b, 0xcb7c, 0x4ab8, 0x50d1, 0x6c64, 0x5f35, 0xc672, 0x4aba,
+  0x6c6b, 0x4ab2, 0x6c65, 0xc66a, 0x6c6a, 0x4aad, 0x4ab1, 0x4aae,
+  0x4ab4, 0x686f, 0x6c63, 0x6869, 0xcc21, 0x50c3, 0x4ab6, 0xc668,
+  0x6c69, 0xc673, 0x6c6c, 0x4ab3, 0xc66b, 0x6c68, 0x50c2, 0xcc23,
+  0xc674, 0xcc24, 0xcb77, 0x50c7, 0x7057, 0x50c1, 0x57ae, 0x50d0,
+  0x6c70, 0xcb7a, 0x6c6e, 0x7055, 0x50cd, 0x50c9, 0x6c74, 0xcb76,
+  0x57a5, 0xd068, 0xcc28, 0xd067, 0x6c72, 0x50c8, 0xcc29, 0x57a3,
+  0xcc25, 0x50cc, 0x50cf, 0x50c6, 0xcb79, 0x6c73, 0xcb75, 0x6c6d,
+  0x57a4, 0x7056, 0x50ce, 0x6c6f, 0x6c71, 0x50cb, 0x6c75, 0x50ca,
+  0x50c5, 0x50c4, 0x7054, 0x50d2, 0x57a7, 0x5ceb, 0x7059, 0xd061,
+  0x57ad, 0xd063, 0x57ab, 0xd06a, 0x5cec, 0xd064, 0x705a, 0x57ac,
+  0xd066, 0x57a9, 0x735d, 0x5cea, 0xd06c, 0x57a6, 0x57a8, 0x735e,
+  0x705c, 0x735c, 0x705b, 0x7360, 0x57aa, 0x7058, 0xd062, 0xd065,
+  0xd06b, 0x61db, 0x61d3, 0xd461, 0xd45f, 0xd45c, 0xd45e, 0xd45d,
+  0x5cf2, 0x61d4, 0x5cee, 0xd45b, 0x7642, 0x5cf0, 0x5cef, 0x735f,
+  0x5ced, 0x5cf1, 0x61dc, 0x61d8, 0x61da, 0x61d5, 0x61d6, 0x61d9,
+  0x61d7, 0x7834, 0xd765, 0x7837, 0x7836, 0x7835, 0x796c, 0x68f6,
+  0x796d, 0x65cc, 0x7a6a, 0x6bda, 0x7a6b, 0x7b60, 0x7c36, 0x6fa8,
+  0xdf46, 0x6fa9, 0x6faa, 0xe13e, 0x72aa, 0x4541, 0x21dd, 0x4653,
+  0x4827, 0x4828, 0x4826, 0xa36b, 0x4829, 0x4a3c, 0x4a3b, 0xa625,
+  0x26f0, 0x4d51, 0x4d50, 0xac63, 0x2fb1, 0x5a51, 0x5a52, 0xbb64,
+  0x5f3c, 0x42f8, 0x6428, 0x6429, 0x42fa, 0x42fc, 0x42fb, 0x4abe,
+  0xc676, 0x4abd, 0x6870, 0x4abf, 0xc675, 0x50d3, 0x6c76, 0xcc2c,
+  0x705d, 0xd06d, 0x7361, 0x7643, 0x7362, 0xdf48, 0x4542, 0xa165,
+  0xa166, 0xa24e, 0x24a8, 0xa628, 0xa629, 0x26f1, 0x4d53, 0x4d52,
+  0x4d54, 0x5137, 0x2ad3, 0x2ad4, 0xb129, 0x2fb2, 0x5552, 0x5a53,
+  0x5f3d, 0x3bf4, 0x4543, 0x445f, 0x4544, 0xa250, 0x21de, 0x4657,
+  0x4656, 0x4654, 0x4655, 0xa36f, 0x482c, 0x22c9, 0x22cb, 0x482b,
+  0x22c3, 0xa36c, 0x22c4, 0xa36d, 0x22ca, 0x22c6, 0x22c8, 0x482a,
+  0x22c5, 0x22cc, 0x22c7, 0xa36e, 0x4a43, 0x4a4c, 0x4a4a, 0x24b2,
+  0x24af, 0x24b7, 0x4a48, 0x24b8, 0xa639, 0x4a41, 0x24b5, 0xa62e,
+  0x4a47, 0x24b1, 0x24b0, 0x4a45, 0x24b6, 0x4a46, 0x4d55, 0x4a40,
+  0x24b3, 0xa62a, 0x24a9, 0x4a3d, 0xa637, 0x4a50, 0x24ae, 0x24b4,
+  0x4a42, 0x4a44, 0xa62f, 0x24aa, 0xa636, 0x24ab, 0x24ac, 0x4a4f,
+  0x4a49, 0x4a4e, 0x24ad, 0x4a4d, 0x4a3f, 0x4a3e, 0x4a4b, 0xa635,
+  0xa633, 0xa634, 0xa638, 0xa631, 0xa632, 0xa931, 0xa92a, 0x4d63,
+  0x26fd, 0x26f6, 0x4d5e, 0x4d71, 0x26f2, 0x26f9, 0x26fb, 0x26fe,
+  0x4d6c, 0xa926, 0x26fa, 0x26f3, 0x4d6a, 0x26f7, 0xa928, 0x27a1,
+  0x4d5b, 0xa925, 0x26fc, 0x4d65, 0x4d64, 0x26f5, 0x4d59, 0xa934,
+  0xa932, 0x4d5a, 0x4d58, 0xa933, 0x4d70, 0x4d68, 0x4d62, 0x4d56,
+  0x26f8, 0x4d61, 0x4d57, 0x4d69, 0x4d72, 0x2ad5, 0x4d66, 0x26f4,
+  0x4d5c, 0x4d5f, 0x4d60, 0xa92e, 0x4d6e, 0x4d6f, 0x4d6d, 0x4d67,
+  0x4d6b, 0x4d5d, 0x5138, 0xa930, 0xa937, 0xa935, 0xa936, 0xa92f,
+  0xa929, 0xac6d, 0x2adb, 0x5144, 0x513c, 0x513e, 0x5143, 0x2ae7,
+  0x5141, 0x2fb3, 0x5553, 0x5146, 0x2ad8, 0x2ae0, 0x5142, 0x2adf,
+  0x2adc, 0x2ae4, 0x2ae6, 0x513b, 0x513f, 0x5145, 0x5555, 0x2ae1,
+  0x513d, 0x5148, 0x2ada, 0xac6f, 0xac70, 0x5140, 0x5554, 0x513a,
+  0x2ad7, 0x2ade, 0x2ad6, 0x2ad9, 0x2add, 0x2fb4, 0x5147, 0x2ae2,
+  0x2ae3, 0x2ae5, 0x5139, 0xac6c, 0xb132, 0xb133, 0xac6b, 0xac6e,
+  0x5563, 0x2fc0, 0x5561, 0x5562, 0x2fb6, 0x2fc6, 0xb12c, 0x5558,
+  0xb12f, 0xb135, 0x35ca, 0x2fc8, 0x2fc2, 0xb138, 0x2fb9, 0xb137,
+  0x2fcb, 0x2fbc, 0x555e, 0x35e1, 0x2fbf, 0x5560, 0x5557, 0xb13c,
+  0x2fcd, 0x2fc1, 0x555a, 0x2fba, 0x2fb7, 0x2fb8, 0x555b, 0x2fc7,
+  0x2fce, 0x555d, 0x2fbe, 0x2fbd, 0x5565, 0x5564, 0x5556, 0x555c,
+  0x555f, 0x2fca, 0xb12e, 0xb139, 0x2fc4, 0x5559, 0x2fb5, 0x2fcc,
+  0x2fc3, 0x2fc5, 0x2fc9, 0xb130, 0xb13b, 0xb136, 0x35cb, 0xb631,
+  0x5a5b, 0x5a6f, 0x5a6e, 0xb627, 0x5a63, 0xb629, 0x35dd, 0x35d9,
+  0x35d6, 0x35e8, 0x5a5e, 0x5a56, 0xb626, 0xb632, 0x35db, 0x5f4d,
+  0x5a5a, 0x35e3, 0xb622, 0x5a70, 0x5a6d, 0x35df, 0x35ce, 0xb57c,
+  0xb62b, 0x5a6c, 0x35e5, 0x35cd, 0x5a61, 0x5a65, 0x35e4, 0xb623,
+  0x35d7, 0x5a66, 0x5a60, 0x35cc, 0xb57d, 0x5f3f, 0x35e7, 0x35d5,
+  0x5a6b, 0x35d8, 0x35e6, 0x5a6a, 0xb624, 0x3bf5, 0x5a57, 0x35d3,
+  0x5a5c, 0x5a67, 0x5a62, 0x35dc, 0x35d2, 0x35d0, 0x35e2, 0x5a54,
+  0x5a68, 0x5a58, 0x5f3e, 0x35e0, 0x5a59, 0x5a55, 0x5a64, 0x5a5f,
+  0x5a5d, 0x35d4, 0x5a69, 0x35d1, 0x35de, 0x35da, 0x3bf7, 0x3bf6,
+  0xb62d, 0xb62e, 0x35cf, 0x3ca9, 0xbb71, 0x5f41, 0xbb70, 0x3caf,
+  0x3bfc, 0x3cac, 0x42fd, 0x5f44, 0x3cb0, 0x3cb3, 0x5f43, 0x3ca1,
+  0x3cb2, 0x3cb1, 0x5f45, 0x3bf8, 0x5f40, 0x5f48, 0xbb73, 0x5f46,
+  0x3cae, 0x3ca4, 0x5f4a, 0x3cb5, 0x3cad, 0x3cb6, 0x5f52, 0x5f50,
+  0x3cab, 0x3caa, 0xbb67, 0x3ca8, 0x3ca2, 0x5f49, 0xbb66, 0x5f47,
+  0x2fbb, 0x3bf9, 0xbb68, 0x43bd, 0x3bfa, 0x5f42, 0x5f4f, 0x43a1,
+  0x5f4b, 0x5f4c, 0x3bfb, 0x3cb4, 0x42fe, 0x3ca5, 0x3bfe, 0x5f4e,
+  0x3ca6, 0x3ca3, 0xbb72, 0xbb6d, 0x5f53, 0xbb6f, 0x6438, 0xc149,
+  0xc132, 0x43a4, 0x43b7, 0x43bc, 0x43b0, 0x6434, 0x43c1, 0x6431,
+  0x43a2, 0xc13a, 0x43a3, 0x642a, 0x6433, 0x43aa, 0x6436, 0x6437,
+  0x43ab, 0xc138, 0x43b8, 0x43be, 0x6432, 0xc13e, 0x642c, 0x43a9,
+  0x43a5, 0x43c0, 0x43ae, 0x43af, 0x43a6, 0x43ba, 0x43b1, 0x43bb,
+  0x43b3, 0xc13d, 0x642d, 0x4ac0, 0x6430, 0x642e, 0x43bf, 0x43b6,
+  0x43b2, 0xc136, 0xc133, 0x43a7, 0x687a, 0x43b5, 0x6435, 0x43ad,
+  0xc134, 0x43ac, 0xc148, 0xc725, 0xc142, 0x642f, 0x642b, 0x4ad5,
+  0x43b9, 0x43b4, 0x43a8, 0xc144, 0xc145, 0x4ad0, 0xc678, 0x4ac1,
+  0x4acc, 0xc728, 0x4ad3, 0x6878, 0x5f51, 0x4ad1, 0x6873, 0xc67e,
+  0xc724, 0xc67a, 0x6872, 0x4ad8, 0x4ac2, 0x4acf, 0x4ac3, 0x4ace,
+  0x6876, 0x4ad2, 0x3ca7, 0xc721, 0xc72a, 0x4ad9, 0x4aca, 0x6879,
+  0x50e1, 0x6c77, 0xc723, 0x4ad7, 0x4ad6, 0x687b, 0x50d4, 0x6c78,
+  0x50d5, 0xc722, 0x4ac6, 0x4ac7, 0x4ac4, 0x4ac9, 0x4ac5, 0x4ada,
+  0x6875, 0x6c79, 0x6877, 0x687c, 0xc67b, 0x4ac8, 0xc729, 0x4ad4,
+  0xcc2d, 0xc726, 0x4acd, 0xcc35, 0x50d8, 0xcc38, 0x6871, 0x6c7c,
+  0x57b5, 0x50dd, 0x50dc, 0x50de, 0xcc30, 0xcc2f, 0x50db, 0x6c7d,
+  0xcc3b, 0x6d25, 0x6d22, 0xcc31, 0x6d23, 0x50d6, 0x50d9, 0x50e3,
+  0x6d2b, 0x6d29, 0xcc2e, 0x50da, 0x3bfd, 0x6c7a, 0x50e0, 0x50d7,
+  0xcc3e, 0x6d2c, 0x50df, 0x6874, 0x6d21, 0x4acb, 0xcc3f, 0xcc34,
+  0x6d24, 0xcc3d, 0x6d28, 0x6d2a, 0x6d27, 0x6d26, 0xcc3a, 0x6c7e,
+  0x50e2, 0x6c7b, 0x6d2d, 0xcc39, 0xcc37, 0x7061, 0x7062, 0x57b4,
+  0x706b, 0x7068, 0xd070, 0x705f, 0x7066, 0x57b6, 0x7064, 0x705e,
+  0xcc32, 0x7065, 0xd077, 0x57b3, 0x7364, 0x7060, 0x7067, 0x7363,
+  0x57b2, 0x57b1, 0xd076, 0x7069, 0xd06f, 0x706a, 0xd079, 0x57b0,
+  0x57af, 0x7365, 0x57b9, 0x7063, 0x57b7, 0xd075, 0xd464, 0x7366,
+  0xd467, 0x736b, 0x5cf5, 0x5cf7, 0xd76b, 0x7368, 0xd76d, 0x5cf8,
+  0x5cf4, 0xd76c, 0x5cf6, 0x7369, 0x736c, 0xd469, 0x5cf3, 0x7367,
+  0x736a, 0x7645, 0x57b8, 0x7644, 0xd76a, 0x764a, 0x61e0, 0xd770,
+  0x7648, 0x7649, 0x61e3, 0x61df, 0x7646, 0x61dd, 0x7838, 0x61e1,
+  0x61e2, 0x61de, 0xd76e, 0x7647, 0x65cd, 0xda3b, 0x65d0, 0xda3c,
+  0xda3a, 0x65d1, 0x65cf, 0x65d2, 0x7839, 0x65ce, 0xde31, 0x68fa,
+  0x796f, 0x68f9, 0x68f8, 0x68f7, 0x796e, 0x7970, 0x6bdb, 0x7a6d,
+  0x7a6c, 0xdf4a, 0xdf4b, 0x6dcf, 0x6dce, 0x6dd1, 0x7c37, 0x7b61,
+  0x6fac, 0x6dd0, 0xdf49, 0xe032, 0x6fab, 0x7c39, 0x7c38, 0x7c5f,
+  0x70b7, 0x70fd, 0x4545, 0xac72, 0x3cb7, 0x57ba, 0xa167, 0xa168,
+  0x482d, 0x22cd, 0x4a53, 0x4a51, 0x4a52, 0x27a2, 0x4d73, 0x5149,
+  0xac74, 0x2ae8, 0xac76, 0x2ae9, 0xac73, 0x514a, 0x2fd0, 0x5566,
+  0x5567, 0x2fcf, 0xb13d, 0xb637, 0xb636, 0x5a77, 0x5a73, 0x35e9,
+  0x5a7a, 0x5a79, 0x5a72, 0x5a75, 0x5a78, 0x5a74, 0xb634, 0x3cbb,
+  0x5a71, 0x5f54, 0xbb74, 0xbb75, 0xbb76, 0x5f56, 0x5f57, 0x3cba,
+  0x3cbd, 0x5f55, 0x3cb8, 0x3cbc, 0x3cb9, 0xc14b, 0x6439, 0xc14e,
+  0x43c2, 0xc14d, 0xc730, 0x687d, 0x4adb, 0x706c, 0x6d2e, 0x50e4,
+  0x6d2f, 0x6d30, 0x50e6, 0x50e5, 0x50e7, 0x57bc, 0x57bb, 0x5cfa,
+  0x5cf9, 0x736d, 0x736e, 0x65d3, 0xdc41, 0x4546, 0xa558, 0xa939,
+  0xb140, 0x3cbe, 0xb638, 0xb639, 0x5f59, 0x5f58, 0x43c3, 0x61e4,
+  0x7a6e, 0x6fad, 0x4547, 0x5568, 0xb142, 0x5a7c, 0x5a7b, 0x3cbf,
+  0x3cc0, 0x643a, 0x4adc, 0x687e, 0x57bd, 0x4548, 0x4658, 0xa93b,
+  0x4d74, 0x27a3, 0x2aea, 0x514b, 0x5a7d, 0xb63a, 0x3cc1, 0x5f5a,
+  0x643b, 0x50e8, 0x50e9, 0xd46b, 0x5cfb, 0x764b, 0x70fe, 0x4549,
+  0xa93c, 0x27a4, 0x4d75, 0x514c, 0xac77, 0x2aeb, 0x5569, 0x2fd4,
+  0x2fd2, 0x2fd3, 0x556a, 0x2fd1, 0xb63c, 0xb63f, 0xb63d, 0x5b21,
+  0x5b22, 0x35ea, 0x5b23, 0x5a7e, 0x3cc2, 0xbb79, 0x3cc3, 0x43c4,
+  0x6922, 0x6921, 0x5cfc, 0x61e5, 0xda3f, 0x65d5, 0x65d4, 0x68fb,
+  0xa169, 0x21be, 0x514d, 0xb641, 0xc150, 0x454a, 0x4659, 0xa251,
+  0x482f, 0x482e, 0xa373, 0xa372, 0x4830, 0x4831, 0x22cf, 0x22ce,
+  0x24b9, 0x4a54, 0x24bc, 0x24bb, 0x24ba, 0x24bd, 0xa63d, 0x4d76,
+  0x27aa, 0x27a6, 0x27af, 0xa943, 0xa93e, 0x4d7d, 0xa942, 0x4d7b,
+  0x27ab, 0x27a7, 0x27ae, 0x4d7a, 0x4e23, 0x27a9, 0x27a5, 0x4e22,
+  0x27ac, 0x4d79, 0x27ad, 0x4d7c, 0x4d7e, 0x27b1, 0x27b0, 0x27a8,
+  0x4d78, 0x4d77, 0x4e21, 0xa940, 0xa941, 0xac7e, 0xac7a, 0x2af0,
+  0x2af6, 0xad23, 0x5153, 0x5150, 0x2aed, 0x2af2, 0xac7c, 0x5156,
+  0x514e, 0x2af1, 0x5151, 0x5154, 0xac79, 0x2af4, 0xac7d, 0x514f,
+  0x2af9, 0x5152, 0xad21, 0x5155, 0x2aee, 0x2af3, 0x2af7, 0x2aef,
+  0x2aec, 0xad24, 0xad25, 0x2af8, 0x2af5, 0xad22, 0xac37, 0xb146,
+  0x5572, 0x556b, 0x556e, 0xb14c, 0x5571, 0xb144, 0x2fd7, 0xb149,
+  0x556c, 0x2fd5, 0xb148, 0x5570, 0xb14d, 0xb145, 0x556d, 0xb143,
+  0x2fd8, 0x556f, 0xb642, 0x35ee, 0x5b25, 0x35ed, 0x35ef, 0x5b24,
+  0x5b29, 0x2fd6, 0xb14b, 0x35ec, 0x35f0, 0xb644, 0x5b26, 0x35eb,
+  0x5b28, 0xb645, 0x5b27, 0xbc26, 0x3cca, 0xbb7d, 0x3cc5, 0xbc25,
+  0x5f5b, 0x5f5f, 0x5f5c, 0x3cc8, 0x3ccb, 0xbc23, 0x5f5d, 0x5f5e,
+  0x5f63, 0x43cd, 0x3cc9, 0x5f61, 0x3cc6, 0x3cc4, 0xbb7c, 0x5f62,
+  0xbb7e, 0x3cc7, 0xbc24, 0x6441, 0x43c5, 0x643e, 0x643f, 0x643d,
+  0x43ca, 0x43c9, 0x43c6, 0x6443, 0xc15b, 0xc156, 0x43c8, 0x5f60,
+  0xc159, 0xc151, 0x43cc, 0x43c7, 0x6440, 0x643c, 0x6442, 0x43cb,
+  0xc734, 0xc735, 0x6925, 0x4adf, 0x4ade, 0x4add, 0x6923, 0xc739,
+  0xc733, 0xc737, 0x6924, 0x50ec, 0x50ef, 0x6d32, 0xcc44, 0xcc46,
+  0x6d31, 0x50f0, 0x50eb, 0x6d34, 0x50ed, 0xcc41, 0x6d33, 0x50ea,
+  0xcc40, 0x50ee, 0x7072, 0x706f, 0x57c6, 0x57c5, 0xcc43, 0x57c4,
+  0x57bf, 0xd07d, 0x57c0, 0xd123, 0xd07a, 0x7070, 0xd07e, 0x706d,
+  0x7071, 0x57be, 0x706e, 0x57c1, 0x57c2, 0x57c7, 0xd122, 0xd471,
+  0x57c3, 0xd46f, 0xd470, 0x5cfd, 0xd46c, 0xd46d, 0x7370, 0xd472,
+  0x61e8, 0x736f, 0x61e6, 0x61e7, 0x764c, 0x783b, 0x65d6, 0xda43,
+  0x783a, 0xda42, 0x68fd, 0x68fe, 0xdc42, 0x7971, 0xdc43, 0x68fc,
+  0x7a6f, 0x6fae, 0x7c3a, 0x70b8, 0x70b9, 0xe13f, 0x454b, 0x4832,
+  0x4833, 0x4a55, 0xa641, 0x27b2, 0x5157, 0x5573, 0x5b2a, 0x5937,
+  0x5f64, 0x5f65, 0x5e32, 0x3ccc, 0x6444, 0x4ae1, 0x4ae0, 0xd124,
+  0x454c, 0x4834, 0x27b3, 0x4e25, 0xa945, 0x4e24, 0xad27, 0x2afa,
+  0x2afb, 0x2fd9, 0x2fda, 0x5574, 0x5575, 0xb648, 0x5576, 0x35f1,
+  0xb647, 0xb646, 0x5b2c, 0x5f67, 0xbc29, 0x5f66, 0x43ce, 0x46c1,
+  0x4ae2, 0x57c8, 0xd126, 0x764d, 0x7972, 0x454d, 0x465c, 0x465d,
+  0x465b, 0x465e, 0x465a, 0xa252, 0x4837, 0xa377, 0x22d7, 0x4836,
+  0x4838, 0xa378, 0xa375, 0x22d2, 0x22d1, 0x22d4, 0x22d3, 0x22d6,
+  0x4835, 0x22d0, 0x22d5, 0xa648, 0x24be, 0x4a5f, 0x24bf, 0x24c3,
+  0x4a5e, 0xa649, 0x24c7, 0x24c2, 0x24c5, 0x4a57, 0x4a58, 0x4a59,
+  0x4a5a, 0xa645, 0x4a61, 0xa644, 0x24c1, 0x4a5c, 0x4a62, 0xa647,
+  0x24c0, 0x24c6, 0xa642, 0x4a5b, 0x24c4, 0x4a5d, 0x4a56, 0x4a60,
+  0xa64a, 0x4e3a, 0xa947, 0x27b5, 0x4e26, 0x4e30, 0x4e31, 0x4e29,
+  0x4e3b, 0x4e2b, 0x27bd, 0x4e36, 0x27b8, 0x4e2c, 0x27c7, 0x27c8,
+  0x27c0, 0x27b9, 0x4e39, 0x27c5, 0x4e34, 0x4e32, 0xa952, 0x27c6,
+  0xa949, 0x27c4, 0x27bc, 0x27b4, 0x27bb, 0x4e2d, 0x4e33, 0xa94a,
+  0x4e27, 0x27bf, 0x27be, 0x27b6, 0xa94f, 0x4e35, 0x27c2, 0x27b7,
+  0x4e38, 0x27c9, 0x4e28, 0xa948, 0x4e2f, 0x27ba, 0x27c3, 0x4e37,
+  0x4e2a, 0x4e2e, 0x27c1, 0xa94e, 0xa94c, 0x2bbd, 0x515f, 0x516c,
+  0xad36, 0x2bb8, 0x2bae, 0x5165, 0x2bac, 0x515e, 0x2ba7, 0x5168,
+  0x2bb4, 0x2ba1, 0x2ba3, 0xad2e, 0xad30, 0x2ba6, 0x2afc, 0x2bb3,
+  0x2bc3, 0x5163, 0x2ba8, 0x2bba, 0xad2d, 0x2afe, 0x2bc1, 0x2bc2,
+  0x2bc5, 0x2bbc, 0x2bad, 0x2bb5, 0x5169, 0x515c, 0x5164, 0x5170,
+  0x5159, 0x515b, 0xad31, 0xad2b, 0xad3a, 0x2ba5, 0x516d, 0x5166,
+  0x2bbf, 0x2ba2, 0x516f, 0x516a, 0x2bab, 0x516e, 0x2bb2, 0x2baa,
+  0x5167, 0x2bbe, 0x2bb6, 0xad2a, 0x5161, 0x2bc4, 0x2ba9, 0x515d,
+  0x2bbb, 0x2bb1, 0x5162, 0x2bb7, 0x515a, 0x2afd, 0x516b, 0x5627,
+  0x5160, 0x2bb0, 0x2baf, 0x2ba4, 0xa951, 0x2bc0, 0xad34, 0x2bb9,
+  0xad32, 0x5158, 0xad39, 0xad37, 0xad38, 0x2fee, 0x562e, 0x2fef,
+  0xb15d, 0x2fe3, 0x5623, 0x562f, 0xb157, 0x2fdc, 0xb153, 0x2fe5,
+  0x2fed, 0xb15b, 0x2fdb, 0x2ff6, 0x5577, 0xb15e, 0xb164, 0xb150,
+  0x2ff5, 0x2ff0, 0xb15f, 0x2ff1, 0x5621, 0x562c, 0x2fe7, 0xb156,
+  0x2fe8, 0x2ff2, 0x2fe9, 0xb163, 0x2fe4, 0x2fde, 0x2fdf, 0x2fec,
+  0x2fe6, 0xb154, 0xb14f, 0x5578, 0x557c, 0x2ff4, 0x2fe0, 0x562a,
+  0x5626, 0xb15a, 0x5629, 0x5630, 0x557d, 0x562b, 0x2feb, 0x562d,
+  0x557a, 0xb159, 0x5579, 0x2fdd, 0x2fe1, 0x5624, 0x2ff3, 0x2fea,
+  0x2fe2, 0x5628, 0x5625, 0xad2f, 0x557b, 0x557e, 0xb162, 0xb158,
+  0xb161, 0xb160, 0x36a8, 0xb655, 0x35f6, 0x35f7, 0x35fb, 0xb660,
+  0x36ac, 0x36a9, 0xb64e, 0x36a2, 0x36a1, 0x5b33, 0x36a5, 0x36b4,
+  0x35f2, 0xb65b, 0x36b5, 0x36a7, 0x36b9, 0x36ad, 0x5b32, 0x36ab,
+  0x5b2d, 0x5b42, 0x5b38, 0xb657, 0x5b3c, 0x5b3b, 0x35f3, 0x36b2,
+  0x36b8, 0x36b0, 0x36b7, 0xb651, 0x36a4, 0x35f4, 0x36b6, 0x36a6,
+  0x5b30, 0x5b3d, 0xb65a, 0x36af, 0x5b36, 0xb64d, 0xb65c, 0xb650,
+  0x36ae, 0x35f5, 0x5b3e, 0xb64b, 0x5b40, 0x36b1, 0x5b41, 0x5b2f,
+  0x35fc, 0x36b3, 0xb654, 0xb478, 0x5b35, 0x5b3f, 0x35fe, 0x36aa,
+  0x35f9, 0x35fd, 0x5b3a, 0x35f8, 0x5b2e, 0x5b37, 0x5b34, 0x36a3,
+  0x5622, 0x3ce3, 0x5b31, 0xb64c, 0xb652, 0xb65e, 0xb65f, 0xb656,
+  0xbc45, 0x5b39, 0xbc41, 0x3ce6, 0x3cfc, 0x3cf1, 0x5f7b, 0xbc38,
+  0x5f76, 0x3ce0, 0x5f77, 0x3cf0, 0xbc3e, 0x3ce9, 0x3cf6, 0x5f73,
+  0x3cce, 0x3cf8, 0x5f69, 0x3cd6, 0x5f6c, 0x5f6b, 0x5f7c, 0xb653,
+  0x3cd0, 0x3cf2, 0x3cf3, 0x5f6e, 0x5f6a, 0x3cde, 0xbc3d, 0x5f75,
+  0x3cd9, 0xbc32, 0x3cf4, 0x5f71, 0x3cec, 0x3cf9, 0x3cd3, 0x3cd8,
+  0x3cd2, 0xbc2a, 0x5f70, 0x3ce5, 0x43e4, 0x3cd4, 0x5f74, 0x3cdd,
+  0x3cf5, 0x5f6f, 0x3cda, 0x3cd7, 0x3ce8, 0x5f72, 0x5f68, 0x5f7e,
+  0x3ceb, 0x3cea, 0xbc31, 0xbc42, 0xbc39, 0xbc3b, 0xbc34, 0xbc2f,
+  0x3ccf, 0x5f6d, 0x3cf7, 0x3cdf, 0x3ce1, 0xbc37, 0x3cee, 0x3ced,
+  0x3ccd, 0x5f78, 0x5f7a, 0x3cd5, 0x3cdc, 0x3ce4, 0x5f79, 0x3cdb,
+  0x3ce7, 0x3cfa, 0x3cef, 0xbc3c, 0xbc44, 0xbc33, 0x3cfb, 0x3cd1,
+  0xbc40, 0x43f8, 0x644c, 0xc165, 0x43f6, 0x43e1, 0x43e6, 0x43df,
+  0xc177, 0x43f2, 0x43d1, 0x43d8, 0x43f0, 0x43fa, 0x43e2, 0xc168,
+  0x43d5, 0x43e8, 0x43ed, 0x43d9, 0xc16b, 0x43ea, 0x43d6, 0xc15d,
+  0xc175, 0x43dd, 0x43de, 0x644e, 0x43f1, 0x43ef, 0xc173, 0x43d2,
+  0x43f4, 0xc174, 0x43f5, 0x43f7, 0x6452, 0x644a, 0xc16f, 0x35fa,
+  0x43da, 0x43ec, 0x43db, 0x6447, 0x6457, 0x43f3, 0x6455, 0x6451,
+  0x43d0, 0x6449, 0xc179, 0x43d3, 0x6456, 0xc178, 0x43e3, 0x43cf,
+  0xc176, 0x644f, 0x43e7, 0x43d7, 0x6450, 0x43e0, 0x6446, 0x5f7d,
+  0x43e9, 0x3ce2, 0x43d4, 0xc16d, 0x43ee, 0x644b, 0x43eb, 0x6448,
+  0x43e5, 0x6453, 0x43dc, 0x43f9, 0xc16a, 0xc17b, 0x644d, 0x45ac,
+  0xc172, 0x6454, 0x4af0, 0x4aee, 0xc73a, 0x4ba6, 0x4aec, 0xc73d,
+  0x4afe, 0x6445, 0x6928, 0x4ae8, 0x4ba5, 0xc751, 0x4aed, 0x4afb,
+  0x692d, 0x6926, 0xc74e, 0x4ba3, 0xc746, 0x4ae6, 0x4ba2, 0xc747,
+  0x6938, 0x4af7, 0x4ba9, 0x6936, 0x4aef, 0x6927, 0x4af1, 0x4ba1,
+  0x6930, 0x4aea, 0x6934, 0x692a, 0x4af3, 0x4ae9, 0x4ae3, 0xc73e,
+  0x4afd, 0x6931, 0x4ba8, 0x4ae4, 0x692e, 0x4af9, 0x692f, 0x4aeb,
+  0x4af6, 0x4af2, 0x4af4, 0xc743, 0x6929, 0x4ba7, 0x6937, 0x4af5,
+  0xc73b, 0x4baa, 0xc73c, 0x4ae5, 0x4afa, 0x692c, 0x6935, 0x6933,
+  0x4ae7, 0x4afc, 0x6932, 0xc745, 0xc748, 0x692b, 0x4af8, 0xc74d,
+  0xc744, 0xcc54, 0x4ba4, 0xc74c, 0x50fc, 0xc742, 0x50f8, 0x50f4,
+  0x51aa, 0x51a7, 0x6d37, 0xcc64, 0xcc60, 0x51ae, 0x50fb, 0x6d42,
+  0x51a4, 0xcc4f, 0xcc51, 0x50f7, 0x51a3, 0x6d3f, 0x51b7, 0x51b4,
+  0x51a6, 0x50f5, 0xcc5f, 0xcc57, 0x51ab, 0x51ad, 0x6d3b, 0x51a1,
+  0x50fa, 0x50f1, 0x6d38, 0x6d40, 0x51b0, 0x6d41, 0x50f2, 0x51b6,
+  0x51a9, 0x51af, 0x6d3e, 0xcc4d, 0xcc50, 0x51ac, 0xcc47, 0x51b3,
+  0xcc5b, 0x6d43, 0xcc56, 0x6d3d, 0x51a5, 0x50f6, 0x51b8, 0x50f3,
+  0x51b1, 0x6d3a, 0xcc4a, 0x50fd, 0xcc49, 0x50fe, 0x6d39, 0x6d36,
+  0x50f9, 0x6d3c, 0xcc52, 0x6d35, 0xcc62, 0x51b2, 0x51b5, 0x51a2,
+  0x57d5, 0xcc5e, 0xcc59, 0xcc61, 0x57cd, 0xd12c, 0x57c9, 0x7121,
+  0xd13c, 0xd138, 0x7074, 0x7079, 0x7075, 0x57d7, 0x57e2, 0x7073,
+  0x57cf, 0x57d8, 0x51a8, 0x57d9, 0xd128, 0xd12b, 0x707a, 0xd140,
+  0x57e8, 0x707e, 0x7123, 0x57cb, 0xd13b, 0x707d, 0xd131, 0x57e6,
+  0x57e7, 0x57dd, 0x57dc, 0x57d4, 0xd129, 0xd13e, 0x57de, 0x57e5,
+  0x57e4, 0xd12f, 0x7078, 0x7076, 0x57d6, 0x57d3, 0xd144, 0x57d0,
+  0x57e3, 0x7122, 0x57e1, 0x707c, 0x707b, 0xd127, 0x57db, 0x57ca,
+  0x57cc, 0x57ce, 0x57e0, 0x57da, 0x7077, 0xd12e, 0x57d1, 0xd132,
+  0x57df, 0xd141, 0xd13a, 0x57d2, 0xd475, 0x7378, 0x5db1, 0x7371,
+  0x5da2, 0xd47b, 0x5dad, 0x7373, 0x5db4, 0xd521, 0x5da9, 0xd47c,
+  0x5da4, 0xd476, 0x5db5, 0x5cfe, 0x5dab, 0xd527, 0x737a, 0x5db0,
+  0x5db6, 0x5daa, 0x7372, 0x5dac, 0x5da1, 0x7379, 0xd523, 0xd47a,
+  0x5db3, 0x5da6, 0x7375, 0xd524, 0x5da8, 0x5da5, 0x737b, 0x5da7,
+  0x7374, 0x7377, 0x5daf, 0x5da3, 0x5db2, 0xd478, 0x5dae, 0xd529,
+  0xd774, 0x764f, 0x61f3, 0x7654, 0x7655, 0xd777, 0xd821, 0xd776,
+  0x764e, 0x61f2, 0xd778, 0x61ef, 0x61f0, 0x7652, 0x61ea, 0x61ee,
+  0x7651, 0xd77e, 0x61eb, 0xd779, 0xd823, 0xd77d, 0xd77a, 0x7653,
+  0x7650, 0xd822, 0x61e9, 0x61ed, 0x61f1, 0xd77b, 0x65dc, 0x65d9,
+  0x65e2, 0xda44, 0x65e1, 0x65df, 0x65da, 0xda4f, 0x783f, 0xda45,
+  0xda4e, 0xda47, 0xda4d, 0x65db, 0x783e, 0x7376, 0x65de, 0x783d,
+  0x65e3, 0x65dd, 0x65d8, 0x61ec, 0xda48, 0xda46, 0x783c, 0x65d7,
+  0x69a4, 0xdc49, 0x69a3, 0x65e0, 0x7973, 0xd775, 0x69a7, 0x69a8,
+  0x69a2, 0x69a6, 0x69a1, 0xdc47, 0x6bdf, 0x69a5, 0x7a72, 0x7a70,
+  0x6bdd, 0xde35, 0xde34, 0xde33, 0x6be0, 0xde37, 0x6bdc, 0x6bde,
+  0x7a71, 0xdf4f, 0xdf4e, 0x6dd3, 0x6dd4, 0x7b62, 0x6dd2, 0x6fb1,
+  0x7c3b, 0x6faf, 0x6fb0, 0x70ba, 0xe074, 0x7d23, 0x71a3, 0x71a1,
+  0x71a2, 0x71a4, 0xe140, 0xe165, 0xe141, 0x72ab, 0x454e, 0x4839,
+  0xa379, 0x4e3c, 0x27ca, 0xa953, 0xa954, 0x2bc6, 0xad3c, 0xb166,
+  0x2ff7, 0x2ff9, 0xb165, 0x2ff8, 0xb167, 0x2ffa, 0x5b43, 0x36bb,
+  0x2ffb, 0xb662, 0x36ba, 0x36bc, 0x36bd, 0x3cfd, 0x6022, 0x3cfe,
+  0x3da2, 0x6023, 0x6021, 0x3da1, 0xc17d, 0x44a2, 0x43fe, 0x43fd,
+  0xc17c, 0x43fc, 0x43fb, 0x6458, 0x44a1, 0x6939, 0x4bab, 0x4bad,
+  0x693a, 0x4bac, 0x6d45, 0xcc66, 0x6d44, 0x51b9, 0xcc65, 0xcc67,
+  0x57ea, 0x57e9, 0x57eb, 0xd146, 0xd145, 0x7124, 0x5db7, 0x737c,
+  0xd52b, 0x61f4, 0x7656, 0x65e4, 0x7b63, 0x454f, 0x465f, 0x483a,
+  0x4a63, 0x4e3d, 0x4e3e, 0xa955, 0xa956, 0x5171, 0xad3d, 0xb168,
+  0x2ffc, 0xbc49, 0xbc47, 0xc17e, 0x6459, 0xc221, 0xc753, 0x52d9,
+  0x7125, 0x7657, 0x4550, 0xa253, 0x483b, 0x27cc, 0x4e3f, 0x27cb,
+  0xa958, 0x2bc7, 0x5172, 0x2bc8, 0x5173, 0x2ffe, 0x5632, 0x5631,
+  0xb16a, 0x36c2, 0x36c0, 0x36c1, 0x36bf, 0xb664, 0x36be, 0x3da3,
+  0x3da6, 0x6025, 0x3da4, 0x6024, 0x3da5, 0x44a3, 0xc222, 0x4bae,
+  0x4baf, 0x4bb0, 0xc754, 0x51bc, 0x51bb, 0x6d46, 0x51ba, 0x51bd,
+  0x57ec, 0x57ed, 0x57ee, 0x5db8, 0x737d, 0x7658, 0x65e5, 0x7a73,
+  0x21bf, 0xa959, 0x5174, 0x2bc9, 0x5633, 0x5b44, 0xb665, 0x6026,
+  0x3da7, 0xbc4b, 0x645b, 0x645a, 0xc226, 0x4bb1, 0x4bb2, 0x6d47,
+  0x6d48, 0x57f0, 0x57ef, 0x61f5, 0x6fb2, 0x4551, 0x21c0, 0x4660,
+  0xa37a, 0x4a64, 0x24c8, 0xa95a, 0x5175, 0x645c, 0x4552, 0x2bca,
+  0x5176, 0x2bcb, 0x737e, 0x4553, 0x27cd, 0x2bcc, 0xad42, 0x30a5,
+  0x30a4, 0x30a2, 0xb16e, 0x30a1, 0x30a6, 0x30a3, 0xb16c, 0xb16d,
+  0x5b45, 0x5b46, 0xb666, 0x6027, 0x3da8, 0x3da9, 0x3daa, 0xbc4d,
+  0x44a7, 0x44a8, 0x44a6, 0xc228, 0x44a4, 0x44a5, 0x645d, 0x4bb3,
+  0x51c0, 0x51bf, 0x51be, 0x51c1, 0x57f2, 0x57f1, 0x7126, 0x57f3,
+  0x7421, 0x5db9, 0xd52d, 0x61f6, 0x65e6, 0x6dd5, 0x4554, 0x4662,
+  0x4661, 0x4e40, 0x21c1, 0x21df, 0x483c, 0x22d8, 0x24c9, 0x24ca,
+  0x4e41, 0xa95d, 0x27ce, 0x5177, 0x2bcd, 0x2bce, 0x5634, 0x5638,
+  0x30a7, 0x5637, 0x5635, 0x5636, 0x36c3, 0x5b47, 0x602a, 0xbc4e,
+  0x6028, 0x6029, 0x3dab, 0xc229, 0xc22a, 0x693b, 0x4555, 0x21e0,
+  0xa257, 0x4663, 0xa254, 0x21e3, 0xa421, 0x4666, 0x21e2, 0x4665,
+  0x4664, 0x4a65, 0x21e1, 0xa258, 0xa259, 0x22d9, 0x22dd, 0x22df,
+  0x22e0, 0x4846, 0x4847, 0x22dc, 0x4842, 0xa37d, 0x22da, 0xa425,
+  0x22de, 0x4843, 0xa655, 0x483e, 0xa37c, 0x483f, 0xa423, 0x4845,
+  0x22db, 0x483d, 0x4a66, 0x4840, 0x4841, 0x4844, 0x24db, 0x24d9,
+  0x24cc, 0x4a72, 0x24d3, 0x4a6d, 0x24cd, 0xa964, 0x24d5, 0xa650,
+  0x24d2, 0x4a70, 0x24d1, 0x4a77, 0x24da, 0x4a79, 0xa653, 0x4a7b,
+  0xa37e, 0x24cb, 0xa657, 0x4a6e, 0x24dc, 0xa651, 0x4a75, 0x4a78,
+  0xa64c, 0x27e5, 0x4a68, 0x4b21, 0x4a76, 0x24ce, 0x4a6b, 0x4a7a,
+  0x24d6, 0x4a69, 0x4a6a, 0x27e3, 0x24cf, 0x4a71, 0x4a7c, 0x24dd,
+  0x24d0, 0x4a6f, 0xa64d, 0x4a74, 0x27cf, 0x4a7d, 0x24d7, 0x4a73,
+  0xa963, 0x4a7e, 0x4a67, 0x24d4, 0x4a6c, 0x24d8, 0x27e4, 0xa64e,
+  0xa652, 0xa65c, 0xa659, 0xa656, 0xa65b, 0x4e4d, 0x4e5d, 0x27d6,
+  0x4e54, 0xad4e, 0x27eb, 0x4e45, 0xa96b, 0x4e48, 0x27e2, 0x27d4,
+  0x27d8, 0x4e50, 0x4e52, 0x27db, 0x4e59, 0x4e4b, 0x4e49, 0x4e4a,
+  0x4e58, 0x27e7, 0x4e53, 0x27da, 0x27dc, 0x4e51, 0x4e56, 0x27dd,
+  0x27ea, 0xa96d, 0x5178, 0x4e5c, 0x4e46, 0x27e9, 0xa96c, 0x27ed,
+  0x27d9, 0x27ef, 0x27e0, 0x4e4f, 0x27d5, 0x4e4e, 0x4e60, 0x4e55,
+  0xa96a, 0x27d3, 0x2bd7, 0x4e5b, 0x4e5f, 0x27e1, 0x27e6, 0xa965,
+  0x4e61, 0x4e5a, 0x4e4c, 0x4e42, 0xa969, 0x4e47, 0x27d7, 0x4e43,
+  0x27ee, 0xa967, 0x27d1, 0x27d0, 0x27de, 0x27d2, 0x4e5e, 0x5639,
+  0x4e57, 0x27df, 0x4e44, 0xad4f, 0x5229, 0x27ec, 0xad46, 0x2bde,
+  0x2be1, 0xad50, 0x2be4, 0x2bd9, 0xad48, 0xad4a, 0x2be7, 0x2bea,
+  0x2bec, 0x2bd6, 0x5179, 0x517e, 0x30ac, 0x5230, 0x2be5, 0x2bed,
+  0x2bdd, 0x2bd5, 0xad49, 0xad47, 0xad4d, 0x30c7, 0x5223, 0x2be2,
+  0x2bda, 0x2bdc, 0x5228, 0xb17a, 0x2bdf, 0x5222, 0x2bd2, 0x2be8,
+  0xad4b, 0x2beb, 0xad45, 0xad57, 0x517d, 0xad53, 0x522b, 0x2bcf,
+  0x522d, 0x517b, 0x5231, 0x2be9, 0x2bd1, 0x522e, 0x30c1, 0x27e8,
+  0x5221, 0x517a, 0x2bd8, 0x2bd0, 0x522f, 0x5227, 0x2be3, 0x522c,
+  0x522a, 0x2bdb, 0x5224, 0x2bd3, 0x5225, 0x5226, 0x2bd4, 0x2be6,
+  0x517c, 0x2be0, 0xad55, 0xad51, 0xb177, 0xb173, 0x30af, 0x5641,
+  0x5646, 0xb179, 0xb226, 0xb176, 0x30b8, 0x30be, 0x30ba, 0x30ad,
+  0x30b0, 0x30a9, 0x30aa, 0x564d, 0x563e, 0x30b9, 0x30c2, 0x5648,
+  0x563a, 0xb16f, 0x5643, 0x30b1, 0x5645, 0x30b2, 0x30bc, 0xb222,
+  0xb225, 0xb172, 0x5647, 0x30cb, 0x30ab, 0x5640, 0x563f, 0x564b,
+  0x30a8, 0x30c9, 0x30bd, 0x30ca, 0x30c4, 0x30b6, 0x30c5, 0xb221,
+  0x30bf, 0x30c8, 0x30c6, 0x564c, 0x30b7, 0x563d, 0x563c, 0x5644,
+  0x564a, 0x30c3, 0x5649, 0x30b4, 0x5b48, 0xb178, 0x30cc, 0x30b3,
+  0x30ae, 0x5642, 0x564e, 0x563b, 0xb227, 0x30bb, 0x30c0, 0xb17d,
+  0xb17b, 0xb17c, 0x5b6a, 0x36c5, 0x36c9, 0xb66f, 0x5b57, 0x5b55,
+  0xb67a, 0xb721, 0x5b4c, 0x36c7, 0x36c6, 0x5b60, 0xbc50, 0x36cc,
+  0x5b5a, 0xb672, 0x36de, 0x36ea, 0x5b49, 0x36db, 0x36d4, 0x5b6c,
+  0x36c4, 0xb66a, 0x36e0, 0xb66b, 0x5b69, 0x5b5d, 0x5b68, 0x5b53,
+  0x36d0, 0x36e2, 0x36da, 0x5b54, 0x5b4e, 0x36e8, 0xb66c, 0x36e1,
+  0x36e3, 0x5b56, 0x5b5e, 0x36e5, 0x36ce, 0x36df, 0x36d3, 0x36e7,
+  0x5b63, 0x5b4b, 0x5b61, 0x36d8, 0x36d6, 0x36d7, 0x5b58, 0x36d2,
+  0x36d1, 0x5b4d, 0x36cb, 0x36e9, 0x5b4f, 0x36d5, 0x5b6d, 0xb674,
+  0x5b67, 0x36ca, 0x5b64, 0x5b62, 0x5b6b, 0x36dc, 0x5b66, 0x30b5,
+  0x36dd, 0x5b65, 0x36e4, 0x5b4a, 0x36d9, 0x5b5c, 0x36cd, 0x5b5b,
+  0xb67c, 0x5b59, 0x5b51, 0x5b50, 0x3dac, 0x36e6, 0xbc5d, 0xb728,
+  0x36cf, 0xb726, 0xb723, 0x3dc1, 0xb670, 0x5b52, 0xb677, 0xb724,
+  0xb676, 0xb725, 0xb679, 0xb67d, 0xb729, 0xb727, 0xbc54, 0x6047,
+  0x5b5f, 0x6035, 0x3dbb, 0x6043, 0xbc52, 0x3daf, 0x6032, 0x602e,
+  0x3dcd, 0x6034, 0x6038, 0x6033, 0x603c, 0x3dd1, 0x3dc8, 0xbc6b,
+  0xbc6d, 0x3db6, 0x6041, 0x603b, 0x3dc2, 0x602b, 0x3dce, 0x3dc7,
+  0x602f, 0x3dbc, 0x603e, 0x3dd9, 0x3dda, 0x602c, 0x3dcc, 0x6040,
+  0x3dc0, 0x3db2, 0x3db3, 0x6044, 0x3db7, 0x3dbe, 0x3db8, 0xbc5a,
+  0x6042, 0x604a, 0x3db4, 0x3dad, 0x3dae, 0xbc56, 0x3db0, 0x6031,
+  0x3dbd, 0xbc6e, 0x603f, 0x6048, 0xbc58, 0xbc69, 0x3dbf, 0x3dd7,
+  0x3dcf, 0x602d, 0x3dd5, 0x6039, 0xbc66, 0x6037, 0xbc64, 0x3ddb,
+  0x6036, 0x3dc5, 0x3db9, 0x3dc3, 0x604d, 0x3dc9, 0x3dc6, 0x3db5,
+  0x6049, 0x3dd3, 0x3dd0, 0x3dd8, 0x6030, 0x3dc4, 0x604c, 0xbc5b,
+  0x3dcb, 0xc23a, 0xbc60, 0x603a, 0x603d, 0xbc5c, 0x3dca, 0x604b,
+  0x3dba, 0x36c8, 0xbc51, 0xbc6c, 0x3dd4, 0x3dd2, 0x3dd6, 0xbc62,
+  0xbc63, 0xbc68, 0x3db1, 0x6046, 0x44c7, 0x44c6, 0x44ac, 0x6463,
+  0xc230, 0x44c5, 0x44af, 0x44b0, 0x646d, 0x44ce, 0x6468, 0x44c4,
+  0xc233, 0x44a9, 0x646e, 0x6464, 0x44b8, 0x44ae, 0x44b1, 0x44c9,
+  0x645e, 0x44d0, 0x44c8, 0x6467, 0x44bd, 0x6472, 0xc22e, 0xc236,
+  0x6471, 0x646b, 0xc240, 0x44cf, 0x645f, 0x44bb, 0x44b2, 0x44bf,
+  0x44cb, 0x6473, 0xc239, 0x6461, 0x44ba, 0xc22d, 0x44b3, 0x646a,
+  0xc231, 0x6469, 0x44b6, 0x44c0, 0x44ca, 0x44ad, 0x44b7, 0x6462,
+  0x44c1, 0x646f, 0x6466, 0x44b4, 0x6465, 0x44ab, 0x44b9, 0x44cd,
+  0x6045, 0x6957, 0x44bc, 0x4bb4, 0x44be, 0x44cc, 0x646c, 0x44b5,
+  0x6460, 0x6470, 0x6d5a, 0x44aa, 0x44c3, 0xc244, 0xc23e, 0xc247,
+  0x44c2, 0xc23d, 0xc245, 0xc23f, 0xc23b, 0xc246, 0x4bd0, 0x6954,
+  0x4bc5, 0x4bca, 0x6949, 0xc756, 0x4bb6, 0x6956, 0xc757, 0x6940,
+  0x4bb5, 0x4bd6, 0x6958, 0x4bb9, 0x4bc9, 0xc765, 0x4bbb, 0x4bd9,
+  0x4bd5, 0x693e, 0x6948, 0x51db, 0x6955, 0x6946, 0x4bb7, 0xc763,
+  0x4bd4, 0x694a, 0x4bd1, 0x4bde, 0x4bbd, 0x4bc6, 0xcc78, 0xc75b,
+  0x4bdc, 0x4bd2, 0x6945, 0xcc6a, 0xc764, 0x4bc4, 0x693f, 0x693d,
+  0x694f, 0xc75f, 0x4bc2, 0x4bbf, 0x4bc0, 0xc75a, 0x4bd8, 0xc75c,
+  0x4bdd, 0x4bdb, 0x6943, 0x4bdf, 0x6947, 0x694e, 0x4bb8, 0x51c3,
+  0x4bc1, 0xc75e, 0x6941, 0x6953, 0x6950, 0x6944, 0x4bcb, 0x4bbc,
+  0x6951, 0x4bcd, 0x694b, 0x694d, 0x693c, 0xc75d, 0x4bcf, 0x4bc7,
+  0x4bba, 0x694c, 0x4bd7, 0x4bda, 0x4bc3, 0x4bce, 0xcc74, 0x6942,
+  0x6d49, 0x4bcc, 0x51c2, 0xc762, 0x4bd3, 0xc761, 0xc766, 0x4bbe,
+  0x51cc, 0x51d6, 0x6d4c, 0x51d5, 0x51e1, 0x6d4e, 0x51d3, 0x51d7,
+  0x6d59, 0xcc7d, 0x51ce, 0x6d51, 0xcc73, 0x51da, 0x57fb, 0x6d5d,
+  0x6d5c, 0x51dc, 0x51cb, 0x51e6, 0x6d57, 0xcc6b, 0x6d4d, 0x51df,
+  0x51e3, 0x51e8, 0x51dd, 0x51d1, 0x6d50, 0x6d53, 0x6d5b, 0x6d56,
+  0xcc75, 0x51d4, 0x4bc8, 0xcc7e, 0xcc6c, 0x51d0, 0x51e7, 0x6d52,
+  0xcc79, 0x6d55, 0x51e9, 0x6d4a, 0x51de, 0x51c4, 0x51e4, 0x742a,
+  0xcc7a, 0x51d2, 0x6d4b, 0x51cd, 0x6d4f, 0x51c5, 0x6952, 0x51c9,
+  0x51e2, 0x51ca, 0x51c8, 0x6d54, 0xcc7b, 0x51e0, 0xcc77, 0x51c7,
+  0x51d9, 0x51d8, 0x51e5, 0x51cf, 0x6d58, 0x57fe, 0xd156, 0x7133,
+  0x7129, 0x58ac, 0x57f6, 0x712b, 0x58a4, 0x7132, 0x712d, 0x58a2,
+  0x5dbb, 0x58a8, 0x58ae, 0x58a7, 0x57f4, 0x58a5, 0x58b0, 0x58b2,
+  0x7128, 0x58b1, 0x712e, 0x7134, 0xd154, 0x7131, 0xd158, 0x58ab,
+  0x7130, 0x58a6, 0xd14d, 0x57f8, 0x57fd, 0xd150, 0x58aa, 0x712f,
+  0x712c, 0x7127, 0x712a, 0x57fc, 0x51c6, 0x57f7, 0x57fa, 0x58ad,
+  0x58a1, 0x57f5, 0x5dba, 0x58af, 0x57f9, 0x58a9, 0xcc71, 0xd155,
+  0x5dbd, 0x742e, 0xd530, 0xd52f, 0x7422, 0xd535, 0xd536, 0x7426,
+  0x5dbf, 0x5dc5, 0x5dc3, 0x7424, 0x7425, 0x742c, 0x5dc6, 0x5dbe,
+  0x7427, 0xd531, 0x5dc2, 0x5dc1, 0x5dc7, 0x742d, 0xd537, 0x7428,
+  0x742b, 0x5dc0, 0x742f, 0x7429, 0x7430, 0x7423, 0x5dc4, 0xda55,
+  0x5dbc, 0xd159, 0xd539, 0x62a5, 0x765d, 0x62a2, 0x62a4, 0xd828,
+  0x765b, 0x61fe, 0x62a1, 0x61fa, 0xd82a, 0xd827, 0x58a3, 0x61fb,
+  0x765c, 0x61f7, 0xd826, 0x7659, 0x62a6, 0x765a, 0x61f8, 0x61f9,
+  0x61fd, 0x765f, 0xd829, 0x765e, 0xd82b, 0x61fc, 0x7845, 0x65ea,
+  0x65f0, 0x7846, 0x65e7, 0x7843, 0x7840, 0x65f2, 0x7844, 0xda52,
+  0x7841, 0x65e9, 0x65ec, 0x65ed, 0x65ee, 0x65f1, 0xda54, 0x62a3,
+  0x65e8, 0x7842, 0x65ef, 0x69b4, 0x65eb, 0xda53, 0x69ab, 0x7975,
+  0x69ae, 0x7976, 0x69b7, 0x69ad, 0x69aa, 0xdc51, 0x69ac, 0x69b0,
+  0x69b3, 0x69b2, 0x69b6, 0x69a9, 0xdc4f, 0x7974, 0x69b1, 0x69b5,
+  0x69b8, 0x69af, 0x6be1, 0x6be2, 0x6be6, 0x6be7, 0xde3c, 0x6be4,
+  0x6be5, 0x6be3, 0xde3a, 0x7a74, 0xde3b, 0x7b64, 0x6dd9, 0xe036,
+  0xdf52, 0x6dd6, 0x6dd7, 0x6dd8, 0x7b65, 0xe037, 0x6fb4, 0x6fb3,
+  0x70bd, 0x7c60, 0x70bb, 0x70be, 0x70bc, 0x71a5, 0x7d24, 0x7d32,
+  0x71f1, 0x71db, 0xe179, 0x71f0, 0x72be, 0x72bf, 0x4556, 0xa428,
+  0xa426, 0x4848, 0x22e1, 0xa427, 0xa42b, 0x24de, 0xa662, 0x4b22,
+  0xa65f, 0x4b25, 0xa65e, 0x24df, 0xa663, 0x4b23, 0x4b24, 0xa660,
+  0xa977, 0x27f8, 0x27fa, 0x27f5, 0x27f2, 0x27f4, 0xa974, 0xa970,
+  0xa975, 0x4e65, 0xa96f, 0xa979, 0xa976, 0x4e63, 0xa972, 0xa971,
+  0x27f6, 0x4e64, 0x27f3, 0x27f0, 0x4e62, 0x27f7, 0x27f1, 0x4e66,
+  0x27f9, 0x2bef, 0xad5e, 0x2bf3, 0xad5c, 0xad5a, 0x523a, 0xad58,
+  0xad65, 0xad62, 0x2bf6, 0xad5f, 0x5232, 0x5235, 0x5237, 0x5239,
+  0x5236, 0x2bf2, 0x2bf1, 0xad64, 0x5234, 0x2bf4, 0x2bf5, 0xad63,
+  0x2bee, 0x5238, 0xad68, 0x5233, 0xad5d, 0x2bf0, 0xb228, 0x30da,
+  0x30db, 0x30dc, 0x5653, 0x564f, 0x30d1, 0xb22a, 0x30d9, 0x30de,
+  0x5654, 0xb22b, 0x30cf, 0x30d5, 0x30ce, 0x30d8, 0xb231, 0xb22f,
+  0x30d4, 0x5650, 0x5652, 0x30dd, 0xb229, 0x30cd, 0x30d0, 0x30d6,
+  0xb22d, 0x30d7, 0x30df, 0x30d3, 0xb22c, 0x5651, 0xb230, 0x5b72,
+  0x36f1, 0xb730, 0xb732, 0x36f3, 0x36ef, 0xb72f, 0x36fb, 0x36ed,
+  0x36fa, 0x5b6e, 0x36eb, 0x3ddf, 0x36f5, 0x5b71, 0xb735, 0x36f6,
+  0x36f9, 0xb72e, 0x36fd, 0xb72c, 0x36f2, 0x36f7, 0xb72d, 0xb731,
+  0x5b6f, 0x5b70, 0x36fc, 0x36f0, 0x36ec, 0x36fe, 0xb733, 0x36f4,
+  0x36f8, 0x36ee, 0x604e, 0x604f, 0x3de9, 0x6055, 0xbc74, 0x3ddd,
+  0x3de6, 0x3ddc, 0x6052, 0x3de4, 0x3de2, 0xbc7d, 0x3de3, 0x6050,
+  0xbc7c, 0x3de7, 0xbc6f, 0xbc7a, 0xbc72, 0xbd21, 0x3de0, 0x3dde,
+  0x6051, 0x3de1, 0x3de5, 0xbc7b, 0xbc79, 0xbc71, 0x6053, 0xbc73,
+  0xbc77, 0x3de8, 0x44d6, 0x44dd, 0x44df, 0x44e5, 0xc257, 0x6522,
+  0x44d1, 0xc24c, 0x6478, 0xc24e, 0x44e0, 0x647d, 0x44e6, 0x6474,
+  0xc251, 0x44e3, 0xc258, 0x44d3, 0x44e4, 0x44d2, 0x6524, 0xc252,
+  0x44de, 0x6475, 0x44e7, 0xc83c, 0x647a, 0x44d7, 0x6521, 0x44e2,
+  0x44d5, 0x44dc, 0x44d8, 0x44d4, 0x6477, 0x647e, 0x647c, 0x6479,
+  0x6523, 0x6476, 0x44db, 0xc24f, 0x647b, 0xc259, 0x6054, 0xc249,
+  0x44e1, 0x44d9, 0xc253, 0x44da, 0x4be7, 0xc76f, 0x695b, 0xc76e,
+  0xc76c, 0x4be3, 0x4be9, 0x4be5, 0xc770, 0x695d, 0x4be4, 0x4be8,
+  0x4be0, 0xc772, 0x4be2, 0x695c, 0xc76a, 0xc76d, 0xc76b, 0xc768,
+  0x4be6, 0x4be1, 0xc767, 0x695e, 0x6959, 0x4bea, 0x695a, 0x51ef,
+  0x51ec, 0x51f8, 0x51f2, 0x51f4, 0x6d5e, 0x51ee, 0x51f6, 0xcd2a,
+  0xcd24, 0x51f5, 0x51f3, 0xcd29, 0x51f9, 0x6d61, 0x51f0, 0x51f7,
+  0xcd28, 0x6d5f, 0xcd25, 0xcd22, 0x51eb, 0x51ed, 0x6d60, 0x51ea,
+  0x51fa, 0x51f1, 0xd162, 0xd15a, 0x58b6, 0x713b, 0xd160, 0xd15c,
+  0x58c1, 0x58bf, 0x7135, 0x58b5, 0x58b8, 0x58b9, 0x58b4, 0x713f,
+  0x7140, 0x58b3, 0x58c2, 0x58bd, 0x7139, 0x7136, 0x58bc, 0x58ba,
+  0xd163, 0x713c, 0x58be, 0x7137, 0xd15e, 0x7138, 0xd166, 0x58bb,
+  0x713a, 0x58b7, 0x58c0, 0x713d, 0x58c3, 0x58c4, 0x713e, 0x7432,
+  0x7439, 0x5dc8, 0x5dce, 0xd53c, 0x5dcc, 0x7435, 0x7434, 0x7431,
+  0x5dca, 0xd53e, 0xd543, 0xd540, 0x7437, 0x7436, 0x7433, 0xd541,
+  0x5dcd, 0x5dc9, 0x5dcb, 0xd542, 0x7438, 0x7663, 0x62a9, 0xd82d,
+  0x7660, 0x7661, 0x62ab, 0x7662, 0x62a8, 0xd82e, 0x62a7, 0x65f6,
+  0x62aa, 0xda56, 0x65f7, 0x7847, 0x65f5, 0xda57, 0x65f4, 0xdc59,
+  0x65f3, 0x7848, 0xdc56, 0x7977, 0xdc58, 0xdc55, 0x69b9, 0x69ba,
+  0xda58, 0xdc53, 0xdc57, 0x6bea, 0x6be9, 0x7a75, 0xdf53, 0x6be8,
+  0x6dda, 0x6ddb, 0xdf54, 0xe039, 0x6fb5, 0x70bf, 0xe143, 0xe142,
+  0x71a6, 0x72ac, 0x7d46, 0x72c0, 0x4557, 0x4e67, 0x4e68, 0xad69,
+  0x523b, 0xbd22, 0x743a, 0x4558, 0x4e69, 0x5655, 0x6525, 0x4559,
+  0xad6b, 0x5b73, 0x695f, 0x21c2, 0xa97c, 0x2bf7, 0x30e0, 0x4beb,
+  0x743b, 0x455a, 0x4e6a, 0x2bf8, 0x2bf9, 0x3dea, 0x6056, 0xc25d,
+  0x44e8, 0xc25c, 0xc25b, 0x6526, 0x4bec, 0xcd2e, 0x6d62, 0xcd2d,
+  0x7849, 0x455b, 0x3deb, 0x455c, 0x484a, 0x22e2, 0x4849, 0x4b28,
+  0x4b27, 0x4b26, 0x24e0, 0xa664, 0xaa21, 0xaa22, 0x4e6b, 0xaa23,
+  0x4e6c, 0x27fb, 0x2bfa, 0xad6d, 0x2bfd, 0x523d, 0x2bfb, 0x523c,
+  0x2bfc, 0x523e, 0x30e3, 0x30e2, 0x30e1, 0x5656, 0xb236, 0x37a2,
+  0x37a3, 0x5b74, 0x37a1, 0x37a4, 0x6058, 0x5b75, 0xbd24, 0xbd23,
+  0x6057, 0x3def, 0x3dee, 0xbd25, 0x3dec, 0x3ded, 0x3df0, 0x44ea,
+  0x44e9, 0x44ed, 0x44ec, 0x44eb, 0x6960, 0x4bef, 0xc775, 0x4bee,
+  0x6961, 0x4bed, 0x51fb, 0xcd2f, 0x51fc, 0x6d63, 0x58c5, 0x58c6,
+  0x65fc, 0x784a, 0x65fb, 0x65fa, 0x65f8, 0x65f9, 0x7a76, 0x69bb,
+  0x6ddc, 0x71a7, 0xe17b, 0x455d, 0x21e4, 0x4667, 0x21e5, 0xa42c,
+  0xa42d, 0x22e3, 0x22e4, 0xa66b, 0xa669, 0x24e6, 0xa666, 0xa667,
+  0x24e2, 0xa66a, 0x24e1, 0x4e6d, 0x24e5, 0x4b2a, 0x24e3, 0x4b29,
+  0x24e7, 0x24e4, 0xa668, 0x28a1, 0x2bfe, 0x27fd, 0x28a6, 0xaa26,
+  0x4e6e, 0xaa2a, 0x4e71, 0x28a7, 0x28a3, 0xaa27, 0x28a4, 0x27fc,
+  0x4e70, 0x27fe, 0x4e6f, 0x28a5, 0xaa28, 0x28a2, 0x2ca4, 0x5240,
+  0x5241, 0xad75, 0x2ca7, 0x2ca1, 0xad74, 0x2ca6, 0xad70, 0x2ca2,
+  0x523f, 0x2ca5, 0x2ca3, 0xad73, 0xad71, 0x30e9, 0x30e6, 0xb238,
+  0x30e8, 0x565b, 0x565a, 0x5658, 0x30e5, 0x30ea, 0x5657, 0x5659,
+  0x30e7, 0x37ac, 0x30e4, 0x30eb, 0xb239, 0xbd26, 0x37a7, 0x37ab,
+  0x37aa, 0x3df2, 0x3dfd, 0xb73b, 0x37ad, 0xb73a, 0x37a8, 0x3df1,
+  0x5b79, 0x5b78, 0x37a6, 0x37a9, 0x5b7a, 0xb739, 0x5b77, 0x5b76,
+  0x37a5, 0x37ae, 0x3df4, 0x3dfb, 0xbd27, 0x605a, 0x3dfa, 0x3df7,
+  0xbd2e, 0x605c, 0xbd29, 0xbd2b, 0xbd2a, 0x3df9, 0xc261, 0xbd2d,
+  0x3df3, 0x3df5, 0x3df8, 0x3df6, 0x605b, 0x3dfc, 0x6059, 0x6527,
+  0xbd28, 0x44f1, 0x44f0, 0x44ee, 0x652a, 0x6529, 0x44f2, 0xc25f,
+  0x44ef, 0x4bf0, 0x6962, 0x6528, 0xc262, 0x44f4, 0x44f3, 0xcd30,
+  0x4bf3, 0x4bf1, 0x6d64, 0xc779, 0x6963, 0x4bf2, 0x51fe, 0xc778,
+  0xc77a, 0xc777, 0x6d65, 0x51fd, 0x52a8, 0x52a7, 0x52a5, 0x52a4,
+  0x52a1, 0x52a2, 0x52a3, 0x52a6, 0x52a9, 0x58cb, 0x58c8, 0x58c9,
+  0x7141, 0x58c7, 0x58cd, 0x58cc, 0x58ca, 0x5dd0, 0x5dd1, 0x743c,
+  0xd549, 0x743d, 0x5dcf, 0x7665, 0x62ac, 0x7664, 0x784b, 0x784c,
+  0x7978, 0x69bd, 0x69bc, 0x6beb, 0x6ddd, 0x7b66, 0x6fb7, 0x6fb6,
+  0x6fb8, 0x4668, 0x2ca8, 0x565c, 0x5b7b, 0x37af, 0x4669, 0x21e6,
+  0x455e, 0xa25a, 0xa16b, 0x22e5, 0xa42f, 0x24ec, 0x24ea, 0x24eb,
+  0x24e8, 0x4b2b, 0x24e9, 0xa66e, 0xaa33, 0x28af, 0xaa2d, 0x4e74,
+  0x28ad, 0x28a9, 0x28ac, 0xaa2c, 0x28a8, 0x4e76, 0x28ab, 0xaa2b,
+  0x4e73, 0x4e72, 0xaa32, 0x4e75, 0x28ae, 0x28aa, 0xaa2f, 0x5245,
+  0x5248, 0x2cb0, 0x2caf, 0x2cae, 0x5242, 0x2cb7, 0x2cad, 0x5244,
+  0x30f0, 0xad78, 0x2cb4, 0x2cb2, 0x5247, 0xad7b, 0x2caa, 0x2cb5,
+  0xad77, 0x2cac, 0x2cb6, 0x2cb3, 0x2cab, 0xad7a, 0x5243, 0x2cb8,
+  0x2ca9, 0x5246, 0xad7e, 0xad79, 0xad7c, 0x30f5, 0x30ec, 0x30f7,
+  0xb23e, 0x30ef, 0x30fa, 0x30fb, 0x30ed, 0x30f9, 0x30f6, 0x30f4,
+  0x30f8, 0x5662, 0xb240, 0x5660, 0xb247, 0xb23c, 0x30f2, 0xb246,
+  0x30ee, 0xb241, 0x30f1, 0x30fc, 0x30f3, 0x5661, 0x2cb1, 0xb23d,
+  0x565d, 0x565f, 0xb73d, 0x37bd, 0x37b2, 0x37b0, 0xbd38, 0x37b1,
+  0xb23f, 0x37b8, 0xb740, 0x37b9, 0x37b5, 0x5c22, 0x37ba, 0x37b7,
+  0x37b4, 0xb73c, 0x5b7e, 0x37b3, 0x5b7c, 0x5c21, 0x37b6, 0x37be,
+  0x565e, 0x5b7d, 0x37bc, 0x37bb, 0x5c23, 0xbd36, 0xbd3a, 0x3ea4,
+  0xbd2f, 0xbd3b, 0xbd32, 0x3ea5, 0x6066, 0xbd39, 0x3eab, 0xc26d,
+  0xbd35, 0x3ead, 0x3ea6, 0x6060, 0x3eaa, 0x3ea9, 0x6061, 0x6067,
+  0xc264, 0x6068, 0x3eac, 0x605e, 0x3ea3, 0x3ea1, 0x3ea7, 0x3dfe,
+  0x6065, 0x3ea2, 0x3ea8, 0x3eae, 0x605f, 0x6064, 0x6062, 0x6063,
+  0xbd33, 0xbd3c, 0x605d, 0xbd37, 0xc268, 0xc275, 0x6531, 0x44fb,
+  0x6530, 0x45a1, 0xc26f, 0x44f5, 0xc274, 0x45a2, 0xc26e, 0xc266,
+  0xc271, 0x44f6, 0x44f7, 0xc273, 0x45a3, 0x44fe, 0x44fc, 0x44fd,
+  0x44f9, 0x44f8, 0xc267, 0x45a4, 0x652d, 0xc26b, 0x44fa, 0xc270,
+  0x6532, 0x652c, 0x6533, 0x6534, 0xc26a, 0x652f, 0x652e, 0xc825,
+  0xc77e, 0x4bf4, 0x6965, 0x6964, 0xc77c, 0xc77d, 0x4bf9, 0xc822,
+  0x6d66, 0x6966, 0xc821, 0xc77b, 0x6968, 0x4bfa, 0x652b, 0x6967,
+  0x4bf6, 0x4bf8, 0x4bf5, 0xc827, 0x4bf7, 0xc823, 0x52b3, 0xcd31,
+  0xcd3b, 0x52b2, 0x52af, 0x6d69, 0x58ce, 0x6d6a, 0x52ae, 0xcd39,
+  0x6d68, 0xcd36, 0x52b0, 0x52ad, 0x52aa, 0x52b1, 0x52ab, 0x52ac,
+  0x6d67, 0xcd35, 0x5dd5, 0x58d2, 0xcd3a, 0x58d1, 0x58d3, 0xd16a,
+  0x5dd2, 0x7144, 0x58cf, 0xd167, 0x7142, 0xd16c, 0x7146, 0x7145,
+  0x58d0, 0x58d4, 0xd16b, 0x7143, 0x5dd9, 0x7440, 0x7666, 0x7441,
+  0x743e, 0x5dd6, 0x5dd4, 0xd54f, 0x5dd7, 0xd54b, 0x5dda, 0x743f,
+  0x5dd8, 0x5dd3, 0xd54d, 0x62af, 0x62b2, 0x66a1, 0x62ad, 0xd82f,
+  0x69be, 0x62b3, 0xd830, 0x784d, 0x62b1, 0x7667, 0x62ae, 0x62b0,
+  0x62b4, 0x66a2, 0xda5a, 0x65fe, 0xda5c, 0xda5d, 0xda5b, 0x784e,
+  0x65fd, 0xdc5e, 0xdc5c, 0xdc5f, 0x7979, 0xdc5d, 0xdc60, 0xde3d,
+  0x7a78, 0x6ddf, 0x7a77, 0x6de1, 0x6dde, 0x6de0, 0x7c3c, 0x70c0,
+  0x466a, 0x28b0, 0x30fd, 0x30fe, 0x5c24, 0x45a5, 0x7147, 0x784f,
+  0x7b67, 0x70c1, 0x466b, 0x28b1, 0x2322, 0xae22, 0x2cb9, 0xae21,
+  0x2cba, 0xae24, 0xb248, 0x31a1, 0x31a2, 0x5c25, 0x5c26, 0xbd3d,
+  0x3eaf, 0x45a8, 0x45a7, 0x45a6, 0x4bfb, 0xc277, 0x4bfc, 0x4bfd,
+  0x6969, 0xc828, 0x52b5, 0x52b4, 0xcd3d, 0xd16d, 0x58d5, 0x7148,
+  0x7149, 0xd16e, 0x5dde, 0x5ddb, 0x5ddc, 0x5ddd, 0x62b6, 0x62b5,
+  0x7668, 0x66a3, 0x6bec, 0x466c, 0x5249, 0xb744, 0x5c27, 0x45a9,
+  0xc278, 0x466d, 0x31a3, 0x5c28, 0xb745, 0xbd3e, 0x6069, 0x606a,
+  0x466e, 0x466f, 0x22e6, 0x4b2d, 0x4b2c, 0x524a, 0x2cbb, 0x3eb0,
+  0x4670, 0x4671, 0x4672, 0x4673, 0x4b2e, 0x4b2f, 0x24ee, 0x24ed,
+  0xaa37, 0x4e77, 0x28b4, 0x28b2, 0x28b3, 0xaa38, 0xaa35, 0xaa36,
+  0xae27, 0x2cbc, 0x2cbd, 0xae25, 0xae28, 0x524e, 0x524c, 0xae2a,
+  0x524d, 0x524b, 0xae26, 0x5663, 0xb24e, 0xb24d, 0xb250, 0xb24f,
+  0x5667, 0x5666, 0x31a4, 0x5665, 0x5664, 0xb251, 0x31a5, 0xb746,
+  0x5c2b, 0x37c0, 0x37bf, 0x5c29, 0x5c2a, 0xb749, 0xb747, 0x606c,
+  0x606b, 0x3eb2, 0xbd43, 0xbd42, 0x3eb1, 0x5c2c, 0xbd44, 0x6535,
+  0x45ab, 0x6536, 0x45aa, 0xc27b, 0x4bfe, 0x52b6, 0x6d6b, 0x58d6,
+  0xd170, 0xd552, 0x5ddf, 0x7851, 0x7850, 0xdc62, 0x7b68, 0x4674,
+  0x28b5, 0xbd45, 0x5c2d, 0x4ca1, 0x696a, 0xa25b, 0xa673, 0x24ef,
+  0x24f0, 0x28b6, 0x4e79, 0x4e7a, 0xaa3a, 0x4e78, 0xaa3b, 0x5252,
+  0x5253, 0x5250, 0x5251, 0xae2b, 0x2cbe, 0xae2f, 0x2cbf, 0x524f,
+  0x31a6, 0xb257, 0x566b, 0x566c, 0xb255, 0x5c30, 0x31ac, 0x5671,
+  0x566f, 0x31ad, 0x31a8, 0x566e, 0x566d, 0x5668, 0x31ab, 0x31aa,
+  0x31a7, 0x5670, 0xb252, 0x31a9, 0x5669, 0x566a, 0x5c31, 0x37c4,
+  0x37c5, 0x5c32, 0x37c1, 0x37c3, 0x37c7, 0x37c6, 0x37c2, 0xb74a,
+  0x5c2e, 0x5c2f, 0x3eba, 0x6071, 0x6070, 0x3eb4, 0x606e, 0x3eb7,
+  0x6072, 0x3eb8, 0x6073, 0x3eb5, 0x606d, 0x606f, 0x3eb9, 0xbd47,
+  0x3eb6, 0x3eb3, 0x45b8, 0xc27c, 0x45ad, 0x6538, 0x653b, 0x653a,
+  0x653f, 0x653e, 0x45b9, 0x45b7, 0x45b0, 0x45b4, 0x45b3, 0x653c,
+  0x45b6, 0x45b2, 0x45ba, 0x45b1, 0x653d, 0x6537, 0x6539, 0xc27d,
+  0x45af, 0xc82b, 0x4ca3, 0x696e, 0x4ca7, 0x696d, 0x4ca4, 0x696c,
+  0xc829, 0x45ae, 0x45b5, 0x4ca6, 0x696f, 0x4ca8, 0x4ca5, 0x4ca2,
+  0x52b9, 0x52bd, 0x52bf, 0x52bb, 0x52ba, 0x52b8, 0x6d6e, 0x6d6c,
+  0x6d71, 0x6d72, 0x52bc, 0x6d6f, 0x52b7, 0x6d70, 0x696b, 0x52be,
+  0x6d6d, 0xd171, 0x58d8, 0x58d7, 0x58df, 0x58d9, 0x58de, 0x58db,
+  0x714a, 0x58dd, 0xd173, 0xd172, 0x714b, 0x714c, 0xd174, 0x58dc,
+  0x58da, 0x7443, 0x5de0, 0xd555, 0xd553, 0x7442, 0x5de3, 0x5de1,
+  0x5de2, 0x7444, 0xd554, 0xd834, 0x62ba, 0xd833, 0x766b, 0x62bb,
+  0x7669, 0x62bc, 0x766a, 0x62b9, 0x62bd, 0xd832, 0x62b7, 0x7852,
+  0x66a4, 0x7853, 0x797a, 0x62b8, 0x797b, 0xde3f, 0xde3e, 0x7a79,
+  0x6bed, 0x7b6a, 0x6de2, 0x7b69, 0xe03b, 0x6fb9, 0x7c61, 0x7c62,
+  0x72ba, 0xa25c, 0x5254, 0x2cc0, 0x6074, 0x6075, 0x4675, 0x484b,
+  0x22e7, 0xa674, 0x24f1, 0x4b30, 0xa676, 0x4e7b, 0x5255, 0x5256,
+  0x5257, 0x37c9, 0x31ae, 0x5672, 0x5c33, 0x37c8, 0xb74d, 0x3ebc,
+  0x6077, 0xbd4c, 0x3ebb, 0x6076, 0xc27e, 0xc321, 0x45bb, 0x6d73,
+  0x52c3, 0x52c0, 0x52c1, 0x52c2, 0xd176, 0xd556, 0x5de4, 0xd557,
+  0x62be, 0xda5e, 0x69c0, 0x69bf, 0x6de3, 0x4676, 0x28b7, 0x5673,
+  0xbd4d, 0x6078, 0x45bc, 0xc830, 0x4ca9, 0xc82e, 0x6d74, 0x58e0,
+  0x62bf, 0x69c1, 0x4677, 0xa677, 0xa678, 0x4e7c, 0x525a, 0x2cc1,
+  0x525b, 0x5259, 0xae32, 0x5258, 0x31af, 0x5674, 0xb25a, 0xb25b,
+  0x5675, 0x5676, 0x5c35, 0x37ca, 0x5c34, 0xb750, 0xb752, 0xb751,
+  0xbd4f, 0x3ebd, 0x5c36, 0x6079, 0x45bd, 0x6540, 0x6541, 0x6970,
+  0xc831, 0x6971, 0x6d75, 0x714e, 0x58e1, 0x714d, 0x5de5, 0x7445,
+  0xd835, 0x62c0, 0x69c2, 0x4678, 0x4b31, 0x28ba, 0x28b9, 0x4e7d,
+  0x28b8, 0x4e7e, 0x28bb, 0x2cc7, 0x525e, 0x525d, 0x2cc9, 0x2cc8,
+  0x5262, 0xae35, 0x5261, 0xae33, 0x525c, 0x2cc3, 0x2cc4, 0x2cc5,
+  0x5263, 0x2cc2, 0x525f, 0x2cc6, 0x5260, 0xb264, 0xb25f, 0x31b2,
+  0x31b6, 0x31b4, 0x31b3, 0x31b7, 0xb25e, 0xb268, 0x31b8, 0x31b9,
+  0x31b1, 0x31b0, 0xb759, 0x5678, 0x5679, 0xb267, 0x31ba, 0x31b5,
+  0xb265, 0x37d3, 0xb755, 0x31bb, 0x567a, 0x5677, 0xb25c, 0xb263,
+  0x37cd, 0x37cc, 0xb753, 0x37ce, 0x37cf, 0x37d1, 0x37d0, 0x37d5,
+  0x5c3a, 0x5c37, 0x5c3b, 0x37cb, 0x5c3c, 0x37d4, 0x5c39, 0x37d2,
+  0x5c38, 0xb262, 0xb757, 0xbd56, 0xbd53, 0x3ec0, 0x3ec2, 0x3ebe,
+  0x3ebf, 0xbd51, 0xbd52, 0x3ec3, 0x3ec5, 0x3ec6, 0x3ec1, 0x3ec4,
+  0x607a, 0x45c1, 0xc327, 0x45c6, 0x45be, 0x45c2, 0xc328, 0x45c7,
+  0x45c3, 0x6542, 0x654a, 0xc325, 0x6545, 0x45bf, 0x45c0, 0x6975,
+  0x654d, 0x6546, 0xc326, 0x654b, 0x6544, 0x45c5, 0x654c, 0x45c4,
+  0x6548, 0x6543, 0x6549, 0x45c8, 0x4cae, 0x4cb0, 0xc839, 0xc833,
+  0xc836, 0xc835, 0xc834, 0xc838, 0x6547, 0xc83b, 0xc83d, 0x4cab,
+  0x6973, 0x4cb1, 0x6974, 0x4caf, 0x4caa, 0x4cad, 0x4cb2, 0x6972,
+  0x4cac, 0x6d77, 0x52c7, 0x52c6, 0xcd44, 0x6d7a, 0x6d78, 0x52c4,
+  0x6d76, 0x52c5, 0xcd46, 0x6d79, 0x58e9, 0xd17b, 0x58eb, 0xd179,
+  0x58ea, 0x58e2, 0x58e6, 0x58e5, 0x58e3, 0x7150, 0x7151, 0x714f,
+  0x58e4, 0x58e7, 0x58e8, 0xd559, 0x7152, 0xd558, 0x744a, 0x5ded,
+  0xd55b, 0x7447, 0x5de7, 0x7449, 0x744b, 0xd55c, 0x7448, 0x5dec,
+  0x5de8, 0x7446, 0x5deb, 0x5de6, 0x5dea, 0x5de9, 0xd836, 0xd838,
+  0x62c2, 0x766e, 0x766f, 0x766c, 0xd83b, 0x766d, 0xd83a, 0xd839,
+  0x62c1, 0x66a7, 0xda60, 0xda5f, 0x7854, 0x66a5, 0x66a6, 0x69c3,
+  0x69c6, 0x69c4, 0x69c5, 0x6bee, 0xde42, 0x7a7a, 0x6fba, 0x70c2,
+  0x7c63, 0x71a8, 0x71a9, 0x7d33, 0x4679, 0x5264, 0xb269, 0x3ec7,
+  0xbd57, 0x45c9, 0x467a, 0x4b32, 0x4f21, 0xae36, 0x2cca, 0x2ccb,
+  0x567b, 0x3ec8, 0x607b, 0x654e, 0x744c, 0x5dee, 0x66a8, 0x69c7,
+  0x467b, 0xa67b, 0xa67c, 0x28c1, 0x28bc, 0x28be, 0x28c0, 0x28bf,
+  0x28bd, 0x4f22, 0x5265, 0x2cd4, 0xae39, 0x2ccf, 0x2ccc, 0xae3b,
+  0xae3e, 0x2cd3, 0xae37, 0xae3a, 0x5267, 0x5268, 0x2cd2, 0x2cd1,
+  0x2cd0, 0x2ccd, 0x2cce, 0x2cd5, 0x5266, 0xae3d, 0x5721, 0x5727,
+  0x5726, 0x31c4, 0x31be, 0x31bc, 0xb26c, 0x5724, 0x37dc, 0x567d,
+  0x31c1, 0x31c5, 0x31c7, 0x31c3, 0x31bd, 0x5725, 0x31c2, 0x31c0,
+  0x567c, 0x31c8, 0x5728, 0x31c6, 0x5722, 0x31bf, 0xb26d, 0x5723,
+  0x567e, 0xb762, 0x5c3e, 0x37dd, 0xb763, 0xb75d, 0x37d6, 0x37d8,
+  0x37da, 0xb75f, 0x37db, 0x37d9, 0x5c3f, 0xb761, 0x37de, 0xb760,
+  0x37d7, 0x3ecc, 0x607c, 0x3ed4, 0xbd5c, 0x3ec9, 0x3ed5, 0xbd59,
+  0x3eca, 0x3ecb, 0xbd5d, 0x3ed3, 0x3ed2, 0x3ecf, 0x5c3d, 0x607d,
+  0x3ecd, 0x3ed0, 0x607e, 0x3ed1, 0x3ece, 0xbd5a, 0xc331, 0x45d4,
+  0xc32d, 0x45d8, 0x6555, 0xc32e, 0x4cb8, 0x6558, 0x45d6, 0xc337,
+  0xc329, 0x45d3, 0x45ce, 0x45d0, 0x45d1, 0x45ca, 0xc335, 0x6554,
+  0xc32b, 0xc330, 0x6553, 0xc334, 0x654f, 0x45cd, 0xc32a, 0x6556,
+  0xc336, 0x6557, 0x45cc, 0x45cf, 0x45d7, 0x6551, 0x6552, 0x45d5,
+  0x45cb, 0x4cba, 0x6977, 0x4cbc, 0x45d2, 0x4cbe, 0x697b, 0x4cbf,
+  0x4cbb, 0xc83e, 0x6978, 0x4cb7, 0x697a, 0x4cb4, 0x4cb9, 0x4cbd,
+  0x4cb6, 0xc83f, 0xc845, 0x6550, 0xc844, 0x4cb3, 0x6979, 0x4cb5,
+  0xc840, 0x6d7d, 0x52c9, 0x6e23, 0x6e21, 0xcd4a, 0x6976, 0xcd4d,
+  0x52d0, 0x52d1, 0x6d7c, 0xcd48, 0xcd4c, 0x52cf, 0x52d2, 0x6d7e,
+  0x6d7b, 0x52cb, 0x52c8, 0x52cd, 0x52ca, 0x6e24, 0x52cc, 0xcd4b,
+  0xcd49, 0x52ce, 0x6e22, 0xd221, 0x7154, 0x58f2, 0xd224, 0x58ec,
+  0x58f0, 0x58f6, 0x58f7, 0x58f3, 0x58f4, 0x58f1, 0x58ee, 0x7156,
+  0x7153, 0x58ed, 0x58ef, 0xd222, 0x7155, 0x58f5, 0x7450, 0xd560,
+  0xd562, 0x5df5, 0x5def, 0x744f, 0x744d, 0xd561, 0x5df7, 0x744e,
+  0x5df2, 0x5df3, 0x5df0, 0x5df8, 0x5df4, 0x7451, 0x5df1, 0x5df9,
+  0x5df6, 0xd843, 0xd83e, 0xd840, 0x62c6, 0xd83f, 0xd83c, 0x62c3,
+  0xd842, 0x7670, 0x62c7, 0x62c9, 0x62c8, 0x62c4, 0x62c5, 0xd844,
+  0x66ad, 0xda61, 0x7855, 0xda62, 0x66aa, 0x66ac, 0x66a9, 0x66ae,
+  0xda63, 0x66ab, 0x69c9, 0x69cc, 0x69c8, 0x797c, 0x69ca, 0x69cb,
+  0x69cd, 0x797d, 0x7a21, 0x797e, 0x6bef, 0xde45, 0x6bf1, 0xde43,
+  0x6bf0, 0xde44, 0x6de4, 0xe03c, 0x70c3, 0x71aa, 0x467c, 0xa433,
+  0x24f2, 0x4f23, 0x28c3, 0x4f24, 0x4f25, 0x28c2, 0x2cda, 0x2cd9,
+  0x5269, 0x526c, 0x526b, 0x526a, 0x2cd6, 0x2cd8, 0x2cd7, 0x31cb,
+  0x572a, 0x31cf, 0x31ce, 0x31cd, 0x31c9, 0x5729, 0x572d, 0x5730,
+  0xb26f, 0xb270, 0x5731, 0x31ca, 0x31cc, 0x572f, 0x572e, 0x572c,
+  0x572b, 0x37e5, 0xb272, 0x37e3, 0x37df, 0x5c40, 0xbd5e, 0x37e0,
+  0x5c41, 0x37e1, 0x37e2, 0x37e4, 0xb766, 0x5c42, 0xb765, 0x3ed9,
+  0xbd5f, 0x3ed8, 0x3ed7, 0x3ed6, 0xbd64, 0xbd62, 0x45dc, 0x6559,
+  0x45d9, 0x45db, 0xc338, 0x655a, 0xc33d, 0x655b, 0x45da, 0xc339,
+  0xbd63, 0xc848, 0x4cc8, 0xc847, 0x4cc1, 0x4cc2, 0x697e, 0x697c,
+  0x697d, 0x4cca, 0x4cc9, 0x4cc6, 0x4cc5, 0x4cc4, 0x4cc3, 0x4cc7,
+  0x4cc0, 0x52d3, 0x52d8, 0x52d6, 0xcd50, 0xcd51, 0xcd4f, 0x52d5,
+  0x52d4, 0x52d7, 0x58f8, 0xd226, 0x7157, 0x7452, 0x5dfb, 0xd227,
+  0x7453, 0x5dfa, 0x62cb, 0x62ca, 0x7671, 0xd845, 0x66af, 0x7856,
+  0x69ce, 0x7b6b, 0x6de5, 0xe03d, 0x70c5, 0x70c4, 0x21e7, 0x526d,
+  0x526e, 0x37e6, 0x655d, 0x467d, 0x4b35, 0x4b34, 0x4b33, 0xaa3e,
+  0xaa3d, 0x28c4, 0xaa3f, 0xaa42, 0x4f27, 0x4f26, 0xaa44, 0x5271,
+  0x2cdc, 0x2cdf, 0x2cdd, 0xae42, 0x526f, 0x5270, 0xae40, 0xae41,
+  0x2cdb, 0x2cde, 0xae43, 0x5738, 0xb274, 0xb273, 0xb279, 0x31d6,
+  0x31d8, 0x31d7, 0x5735, 0x31d2, 0xb276, 0xb27b, 0x5733, 0x5732,
+  0xb277, 0x5736, 0x5734, 0xb278, 0x5737, 0x31d5, 0x31d0, 0x31d1,
+  0x31d4, 0x31d3, 0xb27c, 0xb769, 0xb767, 0xb76b, 0xb76a, 0x37e9,
+  0x37ea, 0x37e8, 0xb76c, 0x37e7, 0x5c43, 0xbd65, 0x6125, 0x3eda,
+  0x3edc, 0x3ede, 0x6124, 0xbd66, 0x6122, 0xbd69, 0x3edb, 0x6123,
+  0x3edd, 0x6121, 0xbd68, 0xc341, 0x45e6, 0x45dd, 0x45e0, 0x45e4,
+  0x6561, 0x45e2, 0x45e1, 0x45de, 0x45df, 0x655f, 0x45e5, 0x655e,
+  0xc344, 0x6563, 0x6562, 0x6560, 0x45e3, 0x4cd0, 0x4ccf, 0xc84b,
+  0xc84d, 0x4ccb, 0xc850, 0xc84f, 0x6a21, 0x4cce, 0x4ccd, 0x6a22,
+  0xc852, 0x6e29, 0xcd55, 0x52da, 0xcd56, 0x6e2a, 0x6e26, 0x6e28,
+  0xcd5a, 0x6e25, 0x6e27, 0xcd53, 0xcd57, 0x58f9, 0xd22a, 0x715a,
+  0x58fb, 0x58fa, 0xd564, 0x4ccc, 0x715c, 0x715b, 0x7158, 0x7159,
+  0xd22c, 0xd229, 0x5ea2, 0x5dfe, 0x7454, 0x5ea1, 0x5ea3, 0x5dfd,
+  0x5dfc, 0x62cc, 0x7674, 0x7672, 0x7673, 0xda66, 0xda65, 0x66b0,
+  0x66b1, 0x7858, 0xda67, 0x7857, 0x69d0, 0x69d1, 0x69cf, 0xdc64,
+  0x6de6, 0x6de7, 0xe076, 0xe077, 0x467e, 0x22e8, 0x4b36, 0x28c5,
+  0x4f29, 0x4f28, 0x28c6, 0xae44, 0xae47, 0x2ce1, 0x5272, 0x2ce0,
+  0x5273, 0xae49, 0xae48, 0x5739, 0x31db, 0x31d9, 0x31df, 0x573a,
+  0x31da, 0x31de, 0x31dc, 0x31dd, 0x37eb, 0x37ed, 0xb772, 0x5c44,
+  0xb771, 0x37ec, 0x5c45, 0x6128, 0x6127, 0x6126, 0x3edf, 0xb770,
+  0x45e9, 0x6564, 0x6565, 0xc346, 0x45e8, 0x45e7, 0xc347, 0x4cd1,
+  0x6a24, 0x6a23, 0x4cd2, 0x4cd3, 0x6e2c, 0x6e2b, 0xcd5b, 0x59a1,
+  0x52db, 0x52dd, 0x52dc, 0x58fe, 0x58fc, 0x59a2, 0x58fd, 0x715d,
+  0xd22f, 0xd22e, 0x5ea4, 0x7455, 0x5ea5, 0x5ea6, 0xd568, 0x7675,
+  0x7676, 0x7a22, 0xde49, 0xde48, 0x7c3d, 0x4721, 0xa67e, 0xa721,
+  0xaa47, 0xae4e, 0x2ce2, 0xae4f, 0xae4d, 0xae4b, 0xae4c, 0x31e0,
+  0x573b, 0xb323, 0xb326, 0xb327, 0xb324, 0x5d7e, 0x5d7d, 0xb773,
+  0xbd71, 0x612a, 0x3ee1, 0x6129, 0x3ee0, 0xbd70, 0xc349, 0xc34a,
+  0x45ea, 0xc854, 0x6a25, 0x4cd4, 0x6a26, 0xc855, 0xd230, 0xd569,
+  0xd56a, 0xd849, 0x7a23, 0x69d2, 0xdf55, 0x484c, 0x4f2a, 0x28c7,
+  0xae51, 0x5275, 0xae50, 0x5274, 0x2ce3, 0x2ce4, 0x31e2, 0x31e4,
+  0x573c, 0x31e6, 0x31e9, 0x31e7, 0xb32b, 0xb32a, 0x31e8, 0x31e5,
+  0x31e1, 0x573d, 0x31ea, 0x31e3, 0xb32c, 0xb778, 0xb779, 0x37f6,
+  0x5c4b, 0x38a1, 0x5c48, 0xb777, 0x37f8, 0x5c4c, 0xb77b, 0x5c46,
+  0xb776, 0x37f3, 0x38a2, 0x37f4, 0x37f1, 0x5c4a, 0x5c47, 0x37f7,
+  0x37fa, 0x5c49, 0x37fb, 0x5c4d, 0x37fc, 0x37f2, 0x37f9, 0x37fd,
+  0x37f5, 0x37f0, 0x37ee, 0xb77a, 0x37fe, 0x37ef, 0x3ee8, 0xbd7b,
+  0xbd78, 0xbd75, 0x3ee4, 0x3eea, 0x612d, 0x3ee3, 0x3ee5, 0x612b,
+  0x3ee2, 0x6132, 0x3ee6, 0x6131, 0x3ee7, 0x6133, 0x612e, 0x6134,
+  0x612f, 0xbd79, 0x6130, 0xbd72, 0x612c, 0xbd76, 0x3ee9, 0xc34f,
+  0x6568, 0x45f5, 0xc34c, 0x45f8, 0x45ec, 0x45f1, 0x45eb, 0x656a,
+  0xc355, 0x45ef, 0xc34d, 0xbd77, 0x45ed, 0x6569, 0xc354, 0x45f4,
+  0x45f3, 0x45f0, 0x45f2, 0x45ee, 0x6a2a, 0x45f7, 0x6566, 0x45f6,
+  0xc351, 0xc856, 0x4ce4, 0xc858, 0x6a31, 0x4cdf, 0xc860, 0x6a30,
+  0x4cd5, 0x4cd7, 0x6a29, 0x4cdc, 0x4cdb, 0x4cde, 0x6a2e, 0x4cd9,
+  0x4cd8, 0xc85a, 0xc85e, 0x6a2d, 0x6a28, 0x4cda, 0x6a2b, 0x4ce0,
+  0x4ce2, 0x4cdd, 0x4cd6, 0x6a2c, 0xc857, 0xc85d, 0x6e34, 0x6a27,
+  0xc85c, 0x4ce3, 0x52e1, 0x6e2d, 0xcd5c, 0x52e3, 0x6e2e, 0xcd65,
+  0xcd5d, 0x6e30, 0x52e6, 0x52de, 0x6a2f, 0x52e4, 0x52e0, 0xcd60,
+  0x6567, 0x6e33, 0x6e2f, 0x6e31, 0x6e32, 0x7160, 0x52e5, 0x52df,
+  0x6e35, 0xcd63, 0x52e2, 0x59ac, 0x59a7, 0x59b1, 0x715e, 0x59a9,
+  0x7162, 0x59af, 0x59a6, 0x59a3, 0x59b2, 0x745b, 0x7163, 0x59ae,
+  0x59a4, 0x7161, 0x59a8, 0x7165, 0x59a5, 0x59aa, 0x7164, 0x59ad,
+  0x59b0, 0xd233, 0xd234, 0x5eb8, 0x5eb9, 0x5ea9, 0x5eb0, 0x5eae,
+  0xd56d, 0x7459, 0x5eb5, 0x59ab, 0xd56b, 0x5eac, 0xd56e, 0x5eb6,
+  0x7458, 0x5eab, 0x5eaa, 0x5eb4, 0x5eb1, 0x5eb3, 0x5ea7, 0x5eb7,
+  0x7456, 0xd570, 0x5eb2, 0x5ebb, 0x5eaf, 0x745a, 0x7457, 0x5ead,
+  0x5ea8, 0x5eba, 0x715f, 0xd571, 0xd56f, 0x62cf, 0xd850, 0xd84e,
+  0x62cd, 0x62d3, 0x767a, 0x62d1, 0x62d0, 0x767c, 0x62d6, 0x767b,
+  0xd851, 0x62d7, 0x62d4, 0x7678, 0x62d5, 0x62ce, 0x7679, 0x7677,
+  0x66b5, 0x62d2, 0xd84c, 0x62d8, 0x66b2, 0xda6f, 0xda6e, 0x785d,
+  0x785b, 0x66b4, 0x66b6, 0x66b3, 0x785c, 0x7859, 0x785a, 0x785e,
+  0x7a25, 0xdc66, 0x69d7, 0x69d6, 0x69d4, 0x69d3, 0x69d5, 0xdc65,
+  0x7a24, 0x7a26, 0x7a7b, 0xde4c, 0x6bf3, 0x6bf2, 0xde4b, 0x6de8,
+  0xdf58, 0x6dea, 0x6dec, 0x6deb, 0x6de9, 0xdf57, 0xe03f, 0x7b6d,
+  0x7b6c, 0xe03e, 0x7c3f, 0x7c3e, 0x7c40, 0x6fbc, 0x6fbb, 0x71ab,
+  0x70c6, 0x71ac, 0x7d25, 0xe144, 0x7d26, 0x71dc, 0xe23a, 0x7d4b,
+  0x484d, 0xaa49, 0x28c8, 0xaa48, 0xae52, 0x2ce6, 0x2ce7, 0x2ce5,
+  0xae54, 0xae53, 0x5276, 0x2ce8, 0x2ce9, 0x2cea, 0xb331, 0x31eb,
+  0x31f1, 0xb32e, 0xb330, 0x31ef, 0x573e, 0x31ed, 0xb332, 0x31ee,
+  0x31f0, 0xb32d, 0x31ec, 0x5c4e, 0xb77d, 0x38a3, 0x5c50, 0x38a5,
+  0x5c4f, 0x38a4, 0xb77e, 0xb821, 0xb83e, 0xb822, 0x3eec, 0x6135,
+  0xbe21, 0x3eee, 0x3eeb, 0x38a6, 0xbe23, 0x6136, 0xbe22, 0xbd7e,
+  0x3eed, 0xc358, 0x45fb, 0xc35c, 0x656b, 0x45f9, 0x656c, 0x45fa,
+  0x656d, 0xc862, 0xc861, 0x6a32, 0x4ce8, 0x4ce5, 0x4ce7, 0x6a33,
+  0x6a34, 0x4ce6, 0xcd6f, 0xcd71, 0xcd6d, 0x52e7, 0xcd70, 0xcd73,
+  0x52e8, 0xcd72, 0x6e36, 0x52ea, 0x52e9, 0xcd6e, 0x2323, 0x59b6,
+  0x59b7, 0x59b3, 0xd237, 0x59b4, 0x7166, 0x7167, 0x59b5, 0x7461,
+  0xd575, 0xd574, 0x745d, 0x7462, 0x745e, 0x7460, 0x745c, 0xd239,
+  0x745f, 0xd855, 0xd854, 0x767d, 0x5ebc, 0x66b8, 0x66b7, 0x69d8,
+  0x7a27, 0x7a28, 0x6dee, 0x6bf4, 0xe169, 0x6ded, 0xe040, 0x71ad,
+  0x71f2, 0x484e, 0xa722, 0x4b37, 0xaa4b, 0x28c9, 0x4f2b, 0xaa4a,
+  0x5279, 0x2ced, 0x5277, 0x2ceb, 0x527c, 0x5278, 0x527d, 0x527b,
+  0x2cec, 0x527a, 0x5742, 0x5741, 0x31fc, 0x574a, 0x31f5, 0x31fb,
+  0x5746, 0x31f4, 0x31fa, 0x31f8, 0x5745, 0x5747, 0x31f7, 0x5740,
+  0x31f6, 0x574b, 0x5748, 0x574c, 0x5749, 0x31f3, 0x31f2, 0x31f9,
+  0x5743, 0x573f, 0x5744, 0xb337, 0xb33b, 0x38b5, 0x38ae, 0x613b,
+  0x38ad, 0xb829, 0x5c54, 0x5c5b, 0x5c58, 0x5c5e, 0x5c5d, 0x5c59,
+  0xb826, 0x38a7, 0x38aa, 0xb827, 0x38a9, 0x5c55, 0x38ab, 0x38b4,
+  0x5c56, 0x38a8, 0x38b1, 0x38b2, 0x5c57, 0x38af, 0x5c5c, 0x5c52,
+  0x5c5a, 0x38ac, 0x5c51, 0x38b0, 0xb82e, 0xb824, 0x38b3, 0xb82b,
+  0xbe34, 0x3fa1, 0x3ef6, 0x6138, 0x3efd, 0x3efa, 0x3ef2, 0x3efb,
+  0x613a, 0x3ef3, 0xbe29, 0x3eef, 0xbe26, 0xbe2e, 0x6573, 0x3ef8,
+  0xbe2f, 0x6137, 0x3efe, 0xbe28, 0x613e, 0x6140, 0x3ef1, 0xbe2c,
+  0x613f, 0x3ef4, 0x6139, 0x3efc, 0x3ef5, 0x3ef9, 0xbe2a, 0x3ef7,
+  0x613c, 0x3ef0, 0x6141, 0x5c53, 0x613d, 0x6142, 0xbe24, 0xbe35,
+  0xbe33, 0xc367, 0x656f, 0x46a4, 0x46a6, 0x46a8, 0x46ac, 0xbe2b,
+  0x46a2, 0x45fe, 0x6571, 0x46a7, 0x46ab, 0x46a3, 0x45fd, 0xc366,
+  0x45fc, 0xc369, 0xc360, 0xc362, 0x46a9, 0x46a1, 0x46a5, 0x6572,
+  0xc35e, 0x6570, 0x46ad, 0x656e, 0x46aa, 0xc364, 0x4cf9, 0xc368,
+  0xc36a, 0xc363, 0x6a37, 0x4cf1, 0x6e43, 0x4cfb, 0x6a3a, 0x4da1,
+  0x6a40, 0x4cec, 0xc874, 0x4cfc, 0x4ce9, 0xc86d, 0x4cfe, 0x4ced,
+  0xc86e, 0x6a47, 0x6a44, 0x4cfd, 0x4cf7, 0x6a36, 0x6a3e, 0x6a3d,
+  0xc870, 0x6a3c, 0x6a42, 0xc869, 0x4cea, 0x6a43, 0x4cf8, 0x6a3f,
+  0x6a35, 0x4cfa, 0x6a38, 0x6a39, 0x6a41, 0x4cef, 0x4cee, 0x4ceb,
+  0x4cf3, 0x4cf0, 0x4cf4, 0x6a46, 0xc868, 0x4da2, 0x6a3b, 0x4cf5,
+  0x4cf6, 0xc871, 0x4cf2, 0xc873, 0xc86b, 0x6a45, 0xce22, 0x52ef,
+  0x6e3b, 0x6e44, 0x6e40, 0x52ec, 0xcd7c, 0x6e3d, 0x6e41, 0x52f8,
+  0x6e37, 0x52f0, 0xcd78, 0x6e3f, 0xce24, 0xce2f, 0x52f3, 0x52ee,
+  0x6e3e, 0x6e42, 0x52ed, 0xce2e, 0x6e3c, 0xcd77, 0x52f7, 0x6e39,
+  0x52f6, 0x52f5, 0x6e45, 0x50bb, 0x6e38, 0xce2b, 0x52f4, 0x52eb,
+  0xcd75, 0x6e46, 0x52f2, 0x6e3a, 0xce28, 0xce29, 0xce25, 0xce2c,
+  0xce27, 0xcd7e, 0xcd7d, 0x52f1, 0x716a, 0x716f, 0x7168, 0x59c4,
+  0x59bb, 0x59c7, 0x59bf, 0x59c5, 0x7170, 0x7169, 0x59b8, 0x59be,
+  0x59c8, 0x59c1, 0x59c6, 0x59ba, 0xd23b, 0x59c2, 0x716b, 0x59c0,
+  0x716e, 0x716d, 0x59bc, 0x59bd, 0x59b9, 0x59c3, 0x716c, 0x59ca,
+  0x59c9, 0xd240, 0xd23f, 0x5ec7, 0x5ec3, 0x7469, 0xd579, 0x5ebd,
+  0x7463, 0x7473, 0x5ec9, 0x746b, 0x7467, 0x5ec0, 0x746e, 0x7471,
+  0x5ecb, 0x7466, 0x5ec2, 0x746f, 0x5ecd, 0x5eca, 0x5ebe, 0x746a,
+  0x7464, 0x7472, 0x5ec5, 0x746d, 0x5ebf, 0x7468, 0x5ecc, 0x746c,
+  0x7465, 0x5ec6, 0x7470, 0x5ec4, 0x5ec8, 0xd57a, 0xd859, 0x62da,
+  0x62e0, 0x7725, 0x62e3, 0x767e, 0x7721, 0x62db, 0x62e2, 0x62dd,
+  0x7726, 0x7723, 0xd85b, 0x62d9, 0xd858, 0x7722, 0x62df, 0x62e1,
+  0x7724, 0x62de, 0x62dc, 0xd85a, 0x66c2, 0x7862, 0x7863, 0x785f,
+  0xda72, 0x7860, 0xda74, 0x66be, 0x66bc, 0xda75, 0x66c0, 0x7864,
+  0x66c1, 0x66ba, 0x66b9, 0x66bd, 0x66bb, 0x7861, 0x66bf, 0x69d9,
+  0x7a2b, 0x7a2a, 0x69da, 0xdc6c, 0x69dc, 0x69db, 0x7a2c, 0xde53,
+  0xde50, 0x6bf9, 0x6bf6, 0x6bf7, 0xde51, 0x6bf5, 0x6bf8, 0x7a7d,
+  0x6bfa, 0xde52, 0x7a7c, 0x6def, 0xdf5a, 0x7c41, 0x7c43, 0x6fbd,
+  0x7c42, 0x70c7, 0x71af, 0x71b1, 0x71ae, 0x71b0, 0x7d39, 0xe235,
+  0x484f, 0x527e, 0x30d2, 0x574d, 0xb831, 0x5c5f, 0x3fa2, 0x3fa3,
+  0xc877, 0x59cb, 0x7474, 0x5ece, 0xd57d, 0xd85c, 0x7727, 0x66c4,
+  0x66c3, 0x7a2d, 0x6bfb, 0xdf5b, 0x6df0, 0x7c64, 0x22e9, 0x4f2c,
+  0x4b38, 0x2cee, 0xaa4e, 0x32a4, 0x31fd, 0x32a3, 0x32a1, 0x574e,
+  0x32a2, 0x31fe, 0xb33c, 0x38b6, 0x3fa4, 0x3fa5, 0x46b0, 0x46b1,
+  0x6575, 0x6576, 0x46af, 0x46b2, 0x46ae, 0x6574, 0xc878, 0x6a48,
+  0xc879, 0x6577, 0x4da3, 0x6e47, 0x52f9, 0x6e48, 0xce30, 0x7171,
+  0x59ce, 0x59cc, 0x59cd, 0x5ed1, 0x5ed0, 0x5ecf, 0x66c5, 0x7865,
+  0x66c6, 0x6df1, 0x7c65, 0x70c8, 0x4850, 0x4f2e, 0x4f2d, 0x2cf0,
+  0x5321, 0xae5d, 0x2cef, 0x32a6, 0xb33d, 0x574f, 0x38b7, 0x32a5,
+  0xb33f, 0xb33e, 0x5c61, 0x38ba, 0x38b8, 0x38b9, 0x5c60, 0x3fa7,
+  0x3fa8, 0x3fa6, 0xc36e, 0x657a, 0x46b4, 0x46b3, 0x46b5, 0x6579,
+  0x6578, 0x52fa, 0x52fc, 0xce31, 0x6e49, 0x52fb, 0x59cf, 0x7172,
+  0x62e5, 0xd85d, 0x62e4, 0x7866, 0x66c7, 0x7868, 0x7867, 0x69dd,
+  0x6bfc, 0x7a7e, 0x4851, 0x2cf1, 0x5322, 0x32a9, 0x5751, 0x32a8,
+  0x32a7, 0xb342, 0x5750, 0xb343, 0x38c0, 0x38c2, 0x38bb, 0x38bc,
+  0x5c62, 0x38bd, 0x5c63, 0x38c1, 0x38be, 0x38bf, 0x5c64, 0xbe37,
+  0x6144, 0x6145, 0xbe38, 0x3fa9, 0x46b6, 0x46b7, 0xc372, 0x4da7,
+  0x6a4b, 0x6a49, 0x6a4a, 0x4da4, 0x4da5, 0x4da6, 0x53a3, 0xce32,
+  0x53a4, 0x6e4a, 0x53a1, 0x52fe, 0x53a2, 0x52fd, 0x7175, 0x59d0,
+  0x7173, 0x7174, 0x5ed3, 0x7475, 0x5ed2, 0x61b4, 0xd57e, 0x62e6,
+  0x62e7, 0x7728, 0xd861, 0x7729, 0x7476, 0x66c8, 0x66c9, 0x69de,
+  0x7a2e, 0x4852, 0x4853, 0x5753, 0x4f2f, 0x5752, 0x2cf2, 0xb836,
+  0xb344, 0x6146, 0x4854, 0x5324, 0x2cf3, 0x2cf4, 0x5323, 0x5325,
+  0x4855, 0x2cf5, 0x5755, 0x32aa, 0x5757, 0x5754, 0x5756, 0xb837,
+  0x38c5, 0x5c65, 0xb839, 0x38c4, 0x38c3, 0x46b8, 0xc922, 0x4da8,
+  0x6e4b, 0x7176, 0x59d2, 0x59d1, 0xd621, 0x5ed4, 0xd862, 0xdc6f,
+  0x6bfd, 0x4856, 0x24f3, 0x28ca, 0x5326, 0x2cf6, 0x32ac, 0xb349,
+  0xb348, 0x5758, 0x32ab, 0x5759, 0xb347, 0x38c7, 0xb83d, 0xb83c,
+  0x5c67, 0x38c6, 0x38c8, 0xb83b, 0x5c66, 0xbe3c, 0x3fab, 0x3fac,
+  0x3faa, 0x6147, 0x657b, 0xc373, 0x657c, 0x6a4d, 0xc923, 0x4daa,
+  0x4da9, 0x6a4c, 0xc926, 0xbe3b, 0xc925, 0x53a5, 0xce34, 0xce36,
+  0x53a6, 0xce37, 0xce35, 0xce38, 0x59d3, 0xd243, 0x747a, 0x7479,
+  0x7477, 0x7478, 0x747b, 0xd622, 0x62e8, 0x772b, 0x772a, 0x66ca,
+  0x69df, 0xdc70, 0xdc71, 0xdc72, 0x7b6f, 0x7b6e, 0x4857, 0x2ffd,
+  0x657e, 0x6148, 0x657d, 0x6a4e, 0x4858, 0x21e8, 0x4859, 0x485a,
+  0xa435, 0xa436, 0x28cb, 0x24f6, 0xa724, 0x24f7, 0x4b3a, 0xa726,
+  0x24f4, 0x4b39, 0xa725, 0x4b3c, 0x24f5, 0x4b3e, 0x4b3d, 0x24f8,
+  0x4b3b, 0xa723, 0x4f34, 0x4f32, 0x28cd, 0xaa56, 0x4f31, 0xaa5b,
+  0xaa58, 0xaa4f, 0x4f36, 0x4f38, 0x4f35, 0xaa59, 0x28d0, 0x28cc,
+  0x4f39, 0xaa52, 0x4f33, 0x4b3f, 0xaa54, 0x4f37, 0x28cf, 0xaa57,
+  0x28ce, 0x4f30, 0x2cfc, 0x532a, 0x532b, 0x2cfe, 0xae66, 0x2cf8,
+  0x2cfb, 0x2da6, 0x2da4, 0xae60, 0x532c, 0x2daa, 0x532f, 0x2da7,
+  0x2cfd, 0x2cfa, 0xae61, 0xae5e, 0x3fae, 0x2da5, 0x5327, 0x2da8,
+  0x2cf7, 0x2da2, 0x5329, 0x532e, 0x2da3, 0x5332, 0x5330, 0xae65,
+  0x2cf9, 0x532d, 0xae64, 0x2da1, 0x5331, 0x5328, 0x2da9, 0x575e,
+  0xb34c, 0x5767, 0x575c, 0x575a, 0x32ae, 0x5762, 0x575f, 0x32b0,
+  0xb34a, 0xb352, 0x5761, 0x32af, 0x32ad, 0x32b2, 0x5766, 0x5764,
+  0x3fad, 0xb34b, 0x32b3, 0x32b1, 0x575b, 0xb34e, 0xb34d, 0x575d,
+  0x5760, 0xb34f, 0x5763, 0xae63, 0x5765, 0xbe44, 0x38d2, 0x5c69,
+  0xb849, 0x38c9, 0x38cb, 0xb847, 0x38cc, 0x38d4, 0x38d0, 0x38ce,
+  0x38d1, 0x38d5, 0x5c6a, 0x5c6e, 0x38ca, 0x38d3, 0x5c6c, 0xb841,
+  0x5c6b, 0x38cf, 0x38cd, 0xb842, 0x5c68, 0x5c6d, 0xb845, 0xb848,
+  0x614e, 0x3fb6, 0xbe3e, 0x3fb4, 0x6150, 0xbe43, 0xbe45, 0xbe41,
+  0x3faf, 0x46c6, 0xbe3d, 0x614f, 0x3fb3, 0xbe40, 0xbe42, 0x3fb0,
+  0x614b, 0x6151, 0x3fb5, 0x614d, 0x3fb2, 0x6a4f, 0x614c, 0x3fb1,
+  0x6152, 0x614a, 0x6149, 0x46be, 0x46bc, 0xc37b, 0x46c2, 0xc37e,
+  0x46ba, 0x46c7, 0x46bf, 0xc375, 0x46b9, 0x6624, 0x662a, 0x46c4,
+  0x46bd, 0xc376, 0x6627, 0xc377, 0xc423, 0x6625, 0x46c5, 0x6622,
+  0x6621, 0x46c0, 0x6626, 0x6153, 0xc37c, 0x46c3, 0x46bb, 0x6623,
+  0x6628, 0x6629, 0xc422, 0x6a54, 0x6a50, 0xc927, 0x6a55, 0x4dad,
+  0xc92a, 0x4dac, 0x4dae, 0x6a52, 0x4dab, 0x6a53, 0x4db1, 0x4db0,
+  0x4daf, 0x6a51, 0xce3b, 0xce3d, 0xce39, 0x53aa, 0xce3c, 0x53ad,
+  0x6e51, 0x53ac, 0x6e50, 0x6e4c, 0x6e4d, 0x6e4e, 0x53a9, 0x53a8,
+  0x6e4f, 0xce3a, 0x53ab, 0x53a7, 0x59d5, 0x59df, 0x7179, 0x7178,
+  0xd249, 0x59d9, 0x59db, 0xd247, 0x59d6, 0xd244, 0x59da, 0x59d4,
+  0x59dd, 0x7177, 0x59dc, 0x59d8, 0x59de, 0xd623, 0x59d7, 0x747e,
+  0x5ed5, 0x5edb, 0x7524, 0x7526, 0x7523, 0x7522, 0x7521, 0x747d,
+  0x5ed6, 0x5ed9, 0x747c, 0x5eda, 0xd624, 0x7525, 0x5ed8, 0x5ed7,
+  0x772c, 0xd865, 0x772d, 0x62eb, 0x62e9, 0x62ea, 0xda77, 0x66cc,
+  0xda78, 0x66cb, 0x7869, 0x69e1, 0x7a2f, 0x69e0, 0x6bfe, 0x6df2,
+  0x7b70, 0x71b2, 0x71b3, 0x7c44, 0x485b, 0x4f3a, 0x3fb7, 0x6a56,
+  0x7527, 0x5edc, 0x485c, 0x5769, 0x5768, 0x3fb8, 0xbe47, 0x59e0,
+  0x485d, 0x5333, 0xbe48, 0x3fb9, 0x3fba, 0x3fbb, 0x6a57, 0x717a,
+  0x485e, 0x4f3b, 0x2dab, 0x576a, 0x32b4, 0x5c6f, 0xbe49, 0x3fbc,
+  0x662b, 0x6a58, 0x717b, 0x7528, 0x772e, 0x66cd, 0x485f, 0x4f3c,
+  0xaa5d, 0x576b, 0x38d6, 0x6154, 0xc92b, 0x6a59, 0x4db2, 0x53ae,
+  0xd24a, 0xd868, 0xda79, 0x4860, 0x6155, 0x46c8, 0x6a5a, 0x4861,
+  0x28d1, 0x2dac, 0x5334, 0xae68, 0x32b6, 0xb357, 0x576e, 0xb358,
+  0x576c, 0x576d, 0x576f, 0xb355, 0x32b5, 0x38db, 0x38d8, 0x38da,
+  0x5c70, 0x5c72, 0x5c71, 0x38d7, 0x5c73, 0x38d9, 0x3fbd, 0x3fbe,
+  0x3fbf, 0x46cb, 0xc426, 0x46cc, 0x46ca, 0x46cd, 0x662c, 0x46c9,
+  0xc92d, 0x6a5b, 0xc92e, 0x53b3, 0x53af, 0x53b2, 0x53b4, 0x53b1,
+  0x53b0, 0x59e1, 0x59e2, 0x59e3, 0x717c, 0x717d, 0x5ede, 0x5edd,
+  0x5edf, 0x62ed, 0x62ec, 0x66cf, 0xda7a, 0x66d0, 0x66ce, 0xda7b,
+  0x7a30, 0x69e2, 0x69e3, 0xde55, 0x6df3, 0x6fbe, 0x70c9, 0x4862,
+  0x4b40, 0x7529, 0x4863, 0x38dc, 0x3fc0, 0xda7c, 0x7c6c, 0x22ea,
+  0xa438, 0x22eb, 0x22ed, 0x4864, 0x22ee, 0x22ec, 0x25a2, 0x25a3,
+  0x24fb, 0xa728, 0x25a1, 0x4b42, 0xa729, 0x4b43, 0x24fc, 0x24fa,
+  0x24f9, 0x24fd, 0x4b41, 0x24fe, 0x2dad, 0xa72b, 0x28d6, 0x4f3f,
+  0x28d5, 0x28d7, 0xaa60, 0x4f3e, 0x28dc, 0x4f42, 0x28d2, 0x28e0,
+  0x28e6, 0x4f49, 0x28e3, 0x4f46, 0xaa6b, 0x28d9, 0x28df, 0x28e1,
+  0xaa66, 0x28d4, 0x4f45, 0x4f40, 0x28da, 0x4f47, 0x4f4a, 0x4f44,
+  0xaa6c, 0x4f3d, 0x28de, 0x28d8, 0x28e5, 0x4f4c, 0x4f48, 0x4f43,
+  0x28dd, 0x5770, 0x28db, 0x4f41, 0x4f4b, 0x28d3, 0x28e2, 0x28e4,
+  0xaa5e, 0xaa68, 0xae76, 0x5345, 0x533f, 0x5347, 0x5344, 0x2db4,
+  0x2db7, 0x5340, 0xae6a, 0x2dae, 0x5339, 0x5343, 0xae6b, 0x5346,
+  0x5348, 0x2dc3, 0x2dba, 0xae78, 0x5338, 0x2dc2, 0x533c, 0x533a,
+  0x5335, 0x2db2, 0xae72, 0x2dc1, 0x2db6, 0x2db9, 0x2dc6, 0xae74,
+  0x5349, 0x2dc0, 0x5341, 0x2dbb, 0x2dc5, 0x2db8, 0x2dbc, 0x2dbf,
+  0xae69, 0xae6e, 0x2db0, 0x2dc4, 0x2dbe, 0xae6f, 0xae7a, 0x2daf,
+  0x2db3, 0x5342, 0x533d, 0x5336, 0x533b, 0x5337, 0x534a, 0x2db1,
+  0x32c7, 0x533e, 0xae79, 0x2dbd, 0x29c2, 0xae77, 0x32ca, 0x577e,
+  0xb362, 0x32ba, 0x32c5, 0x32c1, 0xb84d, 0x32d4, 0xb359, 0x32cc,
+  0xb35f, 0x32c2, 0xb85b, 0x32cb, 0x32bc, 0x32c0, 0x32d7, 0x5823,
+  0x32cf, 0x32c6, 0x5771, 0x32d5, 0x32b8, 0x32ce, 0x5822, 0x577b,
+  0x32b7, 0x5779, 0x5778, 0x577d, 0x32cd, 0x5775, 0x577c, 0x2db5,
+  0x3fc1, 0x32c8, 0xaa5f, 0x32be, 0x5821, 0x32bf, 0x32c3, 0x5824,
+  0x32b9, 0x32d1, 0xbe57, 0x32d0, 0x32d8, 0x5777, 0x5774, 0x32d6,
+  0x32d2, 0x32c9, 0x32c4, 0x577a, 0x5776, 0x32bb, 0x5772, 0x32d3,
+  0x5773, 0x32bd, 0xb35a, 0xb363, 0xad33, 0xb84e, 0xb851, 0x38e2,
+  0x38e4, 0x38e9, 0x38fd, 0x5d23, 0x5c77, 0xb854, 0x38e1, 0x5d24,
+  0x5d25, 0x38ec, 0x38f3, 0x38f9, 0xb850, 0x38e6, 0x38ed, 0xb84f,
+  0xb85d, 0x5d26, 0x38fb, 0x38f6, 0x5d21, 0x5c7d, 0x38f2, 0x38ee,
+  0x38e0, 0x5c74, 0x38e5, 0x38dd, 0xb855, 0x5c7c, 0x5c7e, 0x38ea,
+  0x38e7, 0x5c79, 0x38f7, 0x5c76, 0x38e8, 0x3fea, 0x38f0, 0xb85e,
+  0x38ef, 0x5c75, 0xb857, 0x5d22, 0xb852, 0x5c78, 0x38de, 0x38e3,
+  0x38f4, 0x38fa, 0x5d27, 0x38df, 0x38eb, 0x38f1, 0x5c7b, 0xb858,
+  0x38fc, 0x38f5, 0x38f8, 0xb85f, 0x5c7a, 0x3fd1, 0x3fc5, 0x615d,
+  0x3fe2, 0x3feb, 0x3fee, 0x615b, 0x3fcd, 0x3fe6, 0x3fce, 0x3fdc,
+  0x6168, 0x3fd8, 0x6165, 0xbe5e, 0x3fd9, 0x3fc2, 0x3fe7, 0xbe4f,
+  0xbe59, 0x616e, 0x3fe4, 0x3fda, 0x3ff0, 0x3fd5, 0x46ed, 0xbe4d,
+  0x3ff3, 0x616c, 0x3fd3, 0x3fdf, 0x616f, 0x615a, 0x3fd7, 0x3ff1,
+  0x3fd0, 0x3fc9, 0x3fd4, 0xbe5f, 0x3fc8, 0x3fc6, 0x6156, 0x3fe8,
+  0x3fcf, 0x3fec, 0xbe4b, 0x3fed, 0x615e, 0x6163, 0x615f, 0x6167,
+  0x3fe3, 0x6160, 0x3fdb, 0x3fcb, 0x6158, 0x3fc3, 0x3fe5, 0x3fef,
+  0x3fca, 0x6166, 0x3ff4, 0x3fd6, 0xbe52, 0x3fd2, 0xbe5c, 0x6157,
+  0x616b, 0xbe5a, 0x3fe1, 0x616d, 0xbe50, 0x3fdd, 0x6162, 0x615c,
+  0x6164, 0x6159, 0x616a, 0x3fde, 0x3fcc, 0x3fe0, 0x3fc7, 0x3fe9,
+  0xbe58, 0xbe5d, 0xbe56, 0xbe4e, 0x3ff2, 0xbe5b, 0x3fc4, 0x46ec,
+  0xc42d, 0x47a4, 0x655c, 0x46f1, 0xc431, 0x46ef, 0x46da, 0x6630,
+  0x46ea, 0x46fe, 0x46e6, 0x6638, 0x46fd, 0x46e4, 0x6169, 0x46f4,
+  0x46e5, 0x46fb, 0x6637, 0x662f, 0xc43a, 0x46cf, 0x46d7, 0xc435,
+  0x46f0, 0x46e8, 0x47a3, 0x46eb, 0x663d, 0x46fc, 0xc42c, 0x6634,
+  0xc43e, 0x46ee, 0x46f6, 0x46db, 0x46f5, 0xc427, 0x47a8, 0x46d6,
+  0x46f7, 0xc433, 0x47a6, 0xc43f, 0x46d0, 0x6161, 0xc440, 0x46de,
+  0x46dd, 0x6636, 0xc432, 0x46e1, 0x46e3, 0x46f2, 0x47a5, 0x6639,
+  0xc438, 0x663a, 0xc430, 0x46d5, 0x6632, 0x46d9, 0x47a1, 0x663b,
+  0x6633, 0x6635, 0x663c, 0x47a7, 0x46f8, 0x46f3, 0xc43c, 0xc42f,
+  0x46e0, 0x46df, 0x6631, 0x46d1, 0x662e, 0x46e9, 0x46d2, 0x46e7,
+  0xc42e, 0x46dc, 0x47a2, 0xc42a, 0xc439, 0x662d, 0xc43b, 0xc428,
+  0x46d8, 0x46d4, 0x46fa, 0x46d3, 0x6a68, 0x4dda, 0xc935, 0xc944,
+  0x4dc9, 0xc933, 0xc938, 0x4db3, 0x4dd1, 0x6a60, 0x4dc2, 0x4dcc,
+  0x6a63, 0x4dc5, 0x6a61, 0x4db6, 0x4dd4, 0x4db5, 0x4dc8, 0xc93c,
+  0x4db4, 0xc939, 0x4dc6, 0x4dcf, 0x4dcd, 0x4dc1, 0x4dbc, 0x4dba,
+  0xc942, 0x4dbb, 0x4dce, 0x4dd9, 0x4dc3, 0x6a62, 0xc93b, 0x4dbe,
+  0xc93a, 0x4dd2, 0xc941, 0x6a65, 0x4dbd, 0x4db7, 0x4dc7, 0x6a69,
+  0xc932, 0x6a5d, 0x6a66, 0x4dbf, 0x4db9, 0xc936, 0x6a5f, 0x46f9,
+  0x6a5e, 0x4dca, 0xc436, 0x6a5c, 0x6a6b, 0x6a64, 0x4dcb, 0x4dc0,
+  0x4db8, 0x4dd3, 0x4dc4, 0x6a6a, 0x4dd7, 0x6a67, 0x4dd6, 0xc93f,
+  0x4dd0, 0x4dd5, 0xc93e, 0xc943, 0x4dd8, 0xc93d, 0x53dc, 0x53dd,
+  0x53d0, 0x53cf, 0x53cb, 0x6e5d, 0xce4f, 0x6e55, 0x53df, 0x53de,
+  0x46ce, 0x53c8, 0x53cc, 0x53c6, 0xce44, 0x53d9, 0x53ca, 0xce42,
+  0x53e0, 0x53c3, 0x53c1, 0x53cd, 0x53d7, 0x53d2, 0x6e5f, 0x53b8,
+  0xce40, 0x53d6, 0xce4c, 0xce46, 0xce54, 0x6e60, 0x46e2, 0x53c4,
+  0x53bb, 0x53be, 0x53e4, 0x53c5, 0x53bc, 0x53ba, 0x53b7, 0x6e59,
+  0x53ce, 0x6e58, 0x6e5c, 0x53c9, 0x53d1, 0x6e52, 0x53e1, 0x53e5,
+  0x6e54, 0xce4b, 0x53c0, 0x53d4, 0x53d8, 0x53bd, 0x53e2, 0x6e5b,
+  0x6e5a, 0x53b5, 0x6e5e, 0x53db, 0x53bf, 0x53d3, 0x53b9, 0x53c7,
+  0x53c2, 0x6e56, 0x6e57, 0x53d5, 0x53e6, 0x53e3, 0x53da, 0xce4d,
+  0xce4e, 0xce52, 0x53b6, 0x6e53, 0x59f4, 0xd25a, 0x59eb, 0x59ee,
+  0xd252, 0x7225, 0x59f0, 0x59e5, 0x59ec, 0x59f2, 0x7222, 0x7226,
+  0x717e, 0xd259, 0xd250, 0x59e7, 0x59f7, 0x59f1, 0x59e8, 0x5aa2,
+  0x59fa, 0x59e4, 0x5ef2, 0x59ea, 0x7221, 0xd258, 0x59f5, 0xd254,
+  0x5aa1, 0x7229, 0xd256, 0x59fc, 0x59e9, 0x59ef, 0x59f3, 0x59ed,
+  0x5aa3, 0x59fe, 0x59fb, 0x7223, 0x7224, 0x7228, 0x59e6, 0x5aa4,
+  0x7227, 0x59f8, 0xd24f, 0xd255, 0x59f6, 0x59f9, 0x5fa1, 0x5eec,
+  0x5ef1, 0x5efe, 0x5ef0, 0x5ee8, 0x5eed, 0x752c, 0xd62b, 0x5ee1,
+  0x5ef9, 0x5efb, 0x5ee0, 0x752b, 0x5efd, 0x5ef5, 0x7532, 0x5efc,
+  0x5eee, 0x7534, 0x5ee6, 0x59fd, 0x5ef6, 0x5ef3, 0x5ee2, 0x5fa3,
+  0x752e, 0xd628, 0xd629, 0x752f, 0x5ee4, 0x5ef4, 0xd62d, 0x5fa2,
+  0x5ef7, 0x5eea, 0x7531, 0x752d, 0x5ef8, 0x5eeb, 0x5fa4, 0x5ee5,
+  0x5eef, 0x5efa, 0x5ee7, 0x5ee9, 0x7535, 0x5ee3, 0x7533, 0x7730,
+  0x752a, 0xd62c, 0xd630, 0x7530, 0x7734, 0x62fd, 0xd86c, 0x62f3,
+  0x62ee, 0x62f4, 0x62fe, 0x63a4, 0x63a3, 0x7736, 0x7735, 0xd86e,
+  0x62f5, 0x63a5, 0x62f8, 0x62f0, 0xd86f, 0x62f2, 0x62f1, 0x62f7,
+  0x62fc, 0x62ef, 0x62f6, 0x62fb, 0x7733, 0x62f9, 0xd86b, 0x7731,
+  0x62fa, 0x772f, 0x7732, 0x66e0, 0x63a1, 0x786d, 0xda7e, 0x66d8,
+  0x66dc, 0x66d4, 0x66d7, 0xda7d, 0x66df, 0x786b, 0x66e4, 0x66dd,
+  0x66d5, 0x66e5, 0x66de, 0x786e, 0x786f, 0x66e2, 0xdb22, 0x66d6,
+  0x786a, 0x786c, 0x66d1, 0x66d9, 0x66d3, 0xdc7b, 0x66e3, 0x66e1,
+  0x66d2, 0x66da, 0xdb25, 0x69ea, 0x7870, 0x66db, 0x7a32, 0x7a34,
+  0x7a31, 0xdc76, 0x69ef, 0x69e7, 0x69e5, 0x69e9, 0x69e6, 0xdc78,
+  0xdc7c, 0x69eb, 0x69ed, 0x7a35, 0x7a37, 0xdd22, 0x69ec, 0x7a38,
+  0x7a36, 0x69ee, 0xdc7e, 0xdd23, 0xdc77, 0x7a33, 0xdd21, 0xde5b,
+  0xde5a, 0x7b21, 0x6ca1, 0x6ca7, 0x7b23, 0x69e8, 0x6ca6, 0xde5c,
+  0x6cad, 0x6ca4, 0x6cab, 0x6caa, 0x69e4, 0x6ca5, 0x63a2, 0x6cae,
+  0x6ca3, 0x6ca8, 0xde58, 0x6cac, 0x6ca2, 0xde56, 0x6df7, 0x7b22,
+  0x6ca9, 0xde57, 0x6fc3, 0x6df8, 0x6df6, 0x6df4, 0x6df5, 0x6df9,
+  0x7c45, 0x6fc1, 0x6fbf, 0x6fc4, 0x6fc2, 0xe043, 0x6fc5, 0x7c46,
+  0x6fc0, 0xe02f, 0xe146, 0x70ca, 0x71b4, 0x71b5, 0x71b6, 0xe147,
+  0xe17c, 0x72b5, 0x72ad, 0x22ef, 0x4f4d, 0x534b, 0x32da, 0x32d9,
+  0x5825, 0x5d28, 0x39a1, 0xb863, 0xb860, 0x38fe, 0xb861, 0x6170,
+  0x663f, 0xbe61, 0x663e, 0x6640, 0x4ddb, 0x53e7, 0x5aa5, 0x5aa7,
+  0x5aa6, 0x7536, 0x5fa5, 0x63a6, 0x71f3, 0x4865, 0xa72d, 0x28e9,
+  0x28ea, 0x28e8, 0x28e7, 0x4f4e, 0x2dca, 0x2dc8, 0xaf23, 0xae7c,
+  0x2dc7, 0xae7e, 0x534c, 0x534e, 0x534d, 0x2dc9, 0xaf24, 0xb369,
+  0x32e6, 0x32e3, 0x32e1, 0xb36c, 0x5826, 0x32e4, 0x582b, 0x32de,
+  0x32ed, 0xb36f, 0x32ef, 0x32df, 0xb36e, 0x5828, 0x32f0, 0x32eb,
+  0x32dd, 0x32e2, 0x32ec, 0x32e8, 0x32e5, 0xb36b, 0x582d, 0x32ee,
+  0x32e0, 0xb36a, 0xb370, 0x32e9, 0x32db, 0x582c, 0x5829, 0x32e7,
+  0xb36d, 0x32ea, 0x32dc, 0x582a, 0x5827, 0xb866, 0x5d32, 0x39a8,
+  0x5d31, 0xb864, 0x39ab, 0x39ae, 0x5d2e, 0x5d2c, 0x39a3, 0x39ac,
+  0x39aa, 0x39a7, 0x39af, 0x39b0, 0x39b2, 0x39b3, 0x39a2, 0x5d2b,
+  0x39a5, 0x39a4, 0x39b1, 0x5d2d, 0x39a6, 0x5d2f, 0x5d2a, 0x39a9,
+  0x5d33, 0x5d30, 0x39ad, 0x6177, 0x40a5, 0x3ff8, 0x6174, 0xbe62,
+  0x47ae, 0x40a3, 0x3ff5, 0x6172, 0x3ffa, 0x6175, 0x3ffe, 0x3ffc,
+  0x6178, 0x6171, 0xbe63, 0x3ff6, 0x3ff9, 0x6176, 0x3ff7, 0x40a4,
+  0x40a2, 0x3ffb, 0x3ffd, 0x40a1, 0x6173, 0xbe68, 0x47af, 0x47b5,
+  0x47ab, 0x47b1, 0x6641, 0x47ad, 0x6647, 0xc444, 0xc445, 0x6646,
+  0xc449, 0x6645, 0x47b4, 0x6648, 0x6649, 0x47aa, 0x47b7, 0x664a,
+  0x6644, 0x6643, 0x47b3, 0x664b, 0x47a9, 0x47ac, 0x47b6, 0x47b2,
+  0x4dfb, 0x4df0, 0x6642, 0xc446, 0xc448, 0x6a72, 0x4de4, 0x4df9,
+  0x4de5, 0x6a6d, 0xc94f, 0x4de2, 0x4deb, 0x4de3, 0x6a6f, 0x4ddd,
+  0x4df8, 0x6a70, 0x4df5, 0x4df6, 0x4dde, 0x6a75, 0x4ded, 0xc94a,
+  0x4de7, 0x4dee, 0x4de1, 0x4dfa, 0x4df2, 0x4dec, 0x4ddc, 0x6a71,
+  0x4df3, 0xc945, 0x6a74, 0x4df7, 0xc94c, 0x4df1, 0x6a6e, 0x4def,
+  0xc949, 0x4de9, 0x6a6c, 0x4de0, 0x4de8, 0x4df4, 0x4de6, 0xc94e,
+  0x4dea, 0xc94b, 0x6e6a, 0x47b0, 0x53f9, 0x54a4, 0x53f8, 0x53f4,
+  0x53f1, 0x6e6b, 0x53ef, 0x6a73, 0x53e8, 0x6e69, 0x53ee, 0x6e68,
+  0x53f3, 0x53f0, 0x54a2, 0x53fb, 0x53f5, 0x53fa, 0x6e64, 0x53f2,
+  0x54a7, 0x53e9, 0x53ea, 0x54a3, 0x6e65, 0x54a8, 0x6e67, 0x54a9,
+  0x53f7, 0x4ddf, 0x53fd, 0x53f6, 0x54a1, 0x53fc, 0xce5d, 0x53ed,
+  0x6e62, 0x54a6, 0x6e63, 0x53eb, 0x6e66, 0x5ab2, 0x53fe, 0x54a5,
+  0xce59, 0x5aaf, 0x6e61, 0x722a, 0x5ab9, 0x5ab5, 0x5ab3, 0x5aae,
+  0x5abd, 0xd25b, 0xd25d, 0x722e, 0xd25f, 0x5aaa, 0x5ab6, 0x5ab7,
+  0x5aad, 0x5aac, 0x5aba, 0x5ab0, 0x5aab, 0x5ab1, 0xd262, 0x5abc,
+  0x5aa9, 0x5abb, 0x5ab8, 0x722c, 0x722b, 0xd25e, 0x722d, 0x5ab4,
+  0x5aa8, 0x5fa7, 0x753c, 0x5fab, 0x5fa8, 0x5faf, 0x5fb5, 0x5faa,
+  0xd63a, 0x5fbe, 0x7539, 0x5fb8, 0x5fad, 0x5fb9, 0x5fb4, 0x5fbb,
+  0x5fac, 0x753e, 0x753d, 0x5fae, 0x5fbc, 0x5fa6, 0x5fba, 0x7537,
+  0xd639, 0x5fb2, 0x5fb1, 0x5fb6, 0x5fa9, 0x753b, 0xd63b, 0x753f,
+  0x5fb0, 0x5fb7, 0x7540, 0x5fb3, 0xd636, 0xd634, 0x7538, 0x753a,
+  0x63b3, 0x63b1, 0xdb28, 0xd876, 0x63b7, 0x63b5, 0x63b8, 0xd878,
+  0x63aa, 0x63b2, 0x63bc, 0x5fbd, 0x63ae, 0x773a, 0x53ec, 0x63a9,
+  0x63b6, 0x63b0, 0x63ad, 0x63a8, 0x63a7, 0x63bb, 0xd873, 0x63ac,
+  0x63ab, 0x7738, 0x63b4, 0xd874, 0x7737, 0xd875, 0x7739, 0x63af,
+  0x63ba, 0x66e9, 0x66ea, 0xdb2c, 0x7874, 0x66e7, 0x7871, 0x66ef,
+  0xdb27, 0x7875, 0x66f1, 0x66e6, 0x63b9, 0x66f3, 0x66e8, 0x7872,
+  0x66ee, 0xdb29, 0x66f0, 0x66eb, 0x66f2, 0x66ed, 0x66ec, 0x7873,
+  0xd877, 0xdb2b, 0x69f1, 0x69f2, 0xdd25, 0x69f4, 0x7a39, 0x7a3a,
+  0x69f5, 0x69f3, 0xdd24, 0x69f0, 0xde5d, 0x6cb1, 0x6cb4, 0x6cb0,
+  0x7b27, 0x6cb2, 0x7b26, 0x7b25, 0x7b24, 0x6cb3, 0x6dfe, 0x6dfc,
+  0xdf5f, 0x6dfb, 0x6caf, 0x6dfd, 0x6cb5, 0x6dfa, 0xe045, 0x6fc8,
+  0x6fa6, 0x6fc6, 0x7c47, 0x6fc7, 0x6fc9, 0x70cd, 0x7c66, 0x70cc,
+  0x70cb, 0x7c67, 0x7d27, 0x71dd, 0x71f5, 0x71f4, 0x71f6, 0x4866,
+  0x2dcb, 0xaf26, 0x32f1, 0x32f2, 0xb86a, 0xbe6a, 0xbe69, 0x40a6,
+  0x6cb6, 0x70ce, 0x4867, 0x534f, 0x2dcc, 0xb371, 0x39b4, 0x5d34,
+  0x40a8, 0x40a7, 0x6179, 0xc44d, 0x664c, 0x54aa, 0x6e6c, 0xce5f,
+  0x6e6d, 0xd263, 0xd264, 0x722f, 0x7c68, 0x4868, 0xaf27, 0x2dcd,
+  0x4f50, 0x2dcf, 0x2dce, 0x5350, 0x32f3, 0xb374, 0x32fa, 0x582e,
+  0x32f8, 0x32f6, 0xb377, 0x32fd, 0x32f4, 0x32f5, 0x582f, 0xb372,
+  0x5833, 0xb373, 0xb375, 0x32fe, 0x5832, 0x32fc, 0x32f9, 0x32f7,
+  0x5830, 0x5831, 0x32fb, 0xb376, 0x5d36, 0x39b5, 0xb872, 0x5d3b,
+  0x39c5, 0x5d3a, 0x39c7, 0xb86e, 0xb874, 0x39bb, 0x5d38, 0x39c6,
+  0xb86c, 0x39b6, 0x5d39, 0x39c2, 0x39be, 0x39c0, 0x39ba, 0x39c1,
+  0xb86b, 0x5d35, 0x39bd, 0xb873, 0x39bc, 0x39b8, 0xb86d, 0x39c3,
+  0xb86f, 0xb871, 0x39bf, 0x39b7, 0xb870, 0x39b9, 0x5d37, 0x39c4,
+  0x617c, 0x40b3, 0xbe70, 0xbe72, 0x40af, 0x40b1, 0x40ac, 0x40ab,
+  0x40a9, 0xbe6d, 0x40b0, 0x40b2, 0x40ae, 0xbe6f, 0x40ad, 0x617a,
+  0x617b, 0x40b5, 0x6654, 0x47b9, 0x47bf, 0x47ba, 0x47bb, 0xc44e,
+  0x47c0, 0x6656, 0x664e, 0x6655, 0x47b8, 0x40aa, 0x6651, 0x664f,
+  0x47be, 0x47bd, 0x6650, 0x6652, 0x47bc, 0x664d, 0xc44f, 0x6653,
+  0xce60, 0x4dfd, 0x6a7c, 0xc959, 0xc952, 0x4eaa, 0x4ea9, 0xc957,
+  0x4ea4, 0x6a7e, 0x4ea8, 0x4dfe, 0x4ea1, 0x6a76, 0x6a78, 0xc954,
+  0x4ea6, 0x4dfc, 0x6a7a, 0x6a79, 0x4ea2, 0x4ea7, 0x4ea5, 0x6a7b,
+  0x4ea3, 0xc951, 0xc956, 0x40b4, 0x6a77, 0xc958, 0x54ab, 0x54b2,
+  0x6e6f, 0x54b6, 0x6e73, 0x54ae, 0x54ac, 0x54b5, 0xce61, 0x6e6e,
+  0x54b4, 0x6e70, 0x6e71, 0x54ad, 0x6e72, 0x54b3, 0x54af, 0x54b0,
+  0x54b1, 0x6a7d, 0xce62, 0x5abe, 0x5aca, 0x7234, 0x5ac5, 0x5ac7,
+  0xd265, 0x7232, 0x5abf, 0x5ac3, 0x5ac6, 0x7230, 0x7233, 0x5ac9,
+  0x5ac1, 0x5ac2, 0x5ac8, 0x5ac0, 0x5ac4, 0x7231, 0x5fc0, 0x5fbf,
+  0x7542, 0x5fc5, 0x7544, 0xd640, 0x7541, 0x5fc1, 0x7545, 0x5fc2,
+  0xd63f, 0xd63d, 0x5fc3, 0x5fc6, 0xd642, 0x7543, 0x63c1, 0xd879,
+  0x63c4, 0xd87a, 0x63be, 0x63c0, 0xd87c, 0xd87b, 0x63bf, 0x63c2,
+  0x63c3, 0x5fc4, 0x63bd, 0x7878, 0x66f7, 0x66fa, 0x66fc, 0x66f5,
+  0x66f6, 0x66f9, 0x66fb, 0x7879, 0x7877, 0x7876, 0x66f8, 0x66f4,
+  0x69f6, 0x7a3b, 0xdd29, 0x69f7, 0xdd28, 0x6cb8, 0x7b28, 0x6cba,
+  0x7b29, 0x6cb7, 0x6cb9, 0x7b72, 0x6ea1, 0x7b71, 0x6fcc, 0x6fcb,
+  0x6fca, 0xe149, 0x71b7, 0x71b8, 0x71ba, 0x71b9, 0xe17d, 0x22f0,
+  0x4869, 0x5351, 0x39c8, 0x617d, 0x47c1, 0x773b, 0xdb2f, 0x66fd,
+  0xe046, 0xe14a, 0x4b44, 0xaf29, 0x5d3d, 0xb876, 0xb875, 0x5d3c,
+  0xb877, 0x40b6, 0x617e, 0x40b8, 0x40b7, 0xbe74, 0x47c2, 0x6657,
+  0x4eab, 0x4eae, 0x4ead, 0x4eac, 0x54b7, 0x54b9, 0x54b8, 0xce65,
+  0x7236, 0xd266, 0xce64, 0x7235, 0xd646, 0x7546, 0x5fc7, 0x5fc9,
+  0x5fc8, 0xd87e, 0xd87d, 0x773c, 0xd921, 0xdb31, 0x67a1, 0x66fe,
+  0x69f8, 0x7a3c, 0xdd2a, 0xde61, 0x7b2a, 0x6ea3, 0x6ea2, 0x7d28,
+  0x4b45, 0x2dd0, 0x5352, 0x39cb, 0x39c9, 0x39ca, 0x40ba, 0x40bb,
+  0x47c9, 0x40b9, 0x47c3, 0x47c7, 0x47c6, 0x47c8, 0x6658, 0x47c5,
+  0x47c4, 0x47ca, 0xc454, 0x4eb1, 0x4eaf, 0xc95c, 0x4eb0, 0x54bc,
+  0x54ba, 0xce66, 0x54bb, 0x5acb, 0x5fca, 0x5fcb, 0x773d, 0xdb32,
+  0x67a2, 0x69f9, 0x7a3d, 0x6cbb, 0x6ea4, 0x7b73, 0x6fcd, 0x71bb,
+  0x4b46, 0x5354, 0x5355, 0x2dd1, 0xaf2a, 0xaf2c, 0x2dd2, 0x5353,
+  0x5839, 0xb37b, 0x5837, 0xb37a, 0x5836, 0x583d, 0x5835, 0x583e,
+  0x33a1, 0x583b, 0x5838, 0x583c, 0x583a, 0x5834, 0xb37c, 0x5d45,
+  0xb87e, 0x5d3f, 0x39cf, 0x5d44, 0xb923, 0xb929, 0x5d46, 0x5d40,
+  0x5d41, 0xb879, 0x39cd, 0xb87b, 0xb925, 0x5d3e, 0xb922, 0x39ce,
+  0x5d43, 0x39cc, 0x5d42, 0xb87a, 0x622b, 0xbe7c, 0x622d, 0xbe7d,
+  0x40be, 0x622c, 0x6221, 0x6225, 0xbf24, 0x666b, 0x47cf, 0x40c0,
+  0x6226, 0xbe7e, 0xbe75, 0x40c3, 0x40c4, 0x622a, 0x40c6, 0xbf21,
+  0x40c8, 0xbf23, 0x40c9, 0x40bd, 0x40bc, 0x40ca, 0x6229, 0x40c7,
+  0x40c5, 0x6227, 0x6223, 0x622e, 0x40c1, 0x40c2, 0x40bf, 0xbe78,
+  0x6228, 0xbf22, 0x6224, 0x6222, 0x47ce, 0x6666, 0x6661, 0xc460,
+  0xc459, 0x665c, 0xc463, 0x666c, 0x665d, 0xc455, 0x6659, 0x6668,
+  0x6665, 0x6667, 0xc458, 0x665e, 0x6663, 0x665a, 0x665b, 0x47d6,
+  0x47d3, 0x47cb, 0x47d0, 0xc45b, 0x6669, 0x47d7, 0x666a, 0x6660,
+  0xc45c, 0xc461, 0x47cd, 0xc456, 0x47d5, 0x47d1, 0x47d4, 0x47d2,
+  0x6664, 0x47cc, 0x665f, 0xc45d, 0x4eb4, 0x6b22, 0x6b25, 0xc95f,
+  0x4eb6, 0xc964, 0x6b2d, 0x4eb5, 0x6b27, 0xc963, 0x6e78, 0x4eb7,
+  0x6b2c, 0x4eb3, 0x6b2e, 0xc95e, 0xc962, 0xc96b, 0x6b23, 0xc968,
+  0x6662, 0x6b26, 0xc960, 0x6b24, 0x6b28, 0x6b2a, 0x6b21, 0x6b2f,
+  0x6b2b, 0xc965, 0x6b29, 0x4eb2, 0xc966, 0xce74, 0x6f21, 0xce67,
+  0x6e7b, 0xce72, 0xce70, 0xce6e, 0x6f24, 0xce6c, 0x54bf, 0x6f25,
+  0x54cb, 0x54c4, 0x6e74, 0x54cc, 0x54c6, 0x6e7e, 0x54c7, 0xce73,
+  0x6e7d, 0x54ca, 0x6e77, 0x54c8, 0x54be, 0x6e76, 0x5ad6, 0x6e7c,
+  0xce75, 0x6e79, 0xce69, 0x6f23, 0xce6a, 0x54bd, 0xce76, 0x54c1,
+  0x6e75, 0x54c0, 0x54c2, 0x54c3, 0x6f22, 0x54c5, 0x54c9, 0x54cd,
+  0x6f26, 0x723c, 0x5ad1, 0x5ad7, 0x5ad4, 0x5acc, 0x5ad8, 0x5acd,
+  0xd26a, 0x5ad3, 0xd26b, 0x7237, 0x723d, 0x5ad9, 0xce6f, 0xd267,
+  0x7239, 0xd26e, 0x7243, 0x723e, 0x5adb, 0x5ad5, 0x723a, 0x5ace,
+  0x7244, 0x5acf, 0x5ad0, 0x7245, 0x7242, 0x6e7a, 0xd269, 0x7238,
+  0x5adc, 0x7246, 0xd268, 0x723f, 0x5ada, 0x723b, 0x7240, 0x7241,
+  0x754e, 0x5fd0, 0x5fd9, 0x5fd6, 0x5fd8, 0xd649, 0x754b, 0x5fd1,
+  0xd64a, 0x5fd7, 0x7547, 0x5fd3, 0x754f, 0x5fcf, 0x5fd4, 0x5fdb,
+  0x5ad2, 0x5fd5, 0x5fce, 0x7548, 0x5fcd, 0x7549, 0x5fdc, 0x754a,
+  0x5fda, 0x754d, 0x5fcc, 0xd648, 0x754c, 0x5fd2, 0x63c7, 0x63d5,
+  0x63d0, 0x63d2, 0x63c6, 0x773e, 0xd92a, 0x63c5, 0x7741, 0x7740,
+  0xd926, 0x63d4, 0x63cc, 0x63c9, 0x63cf, 0xd924, 0x63c8, 0xd928,
+  0x63ca, 0x63d3, 0x63d1, 0xd923, 0x773f, 0x63d8, 0x63d6, 0x63cd,
+  0x63d7, 0x63ce, 0xdb34, 0x67a6, 0x787a, 0x67ad, 0xdb35, 0x6cbe,
+  0x7923, 0x63cb, 0x67a4, 0x787d, 0x67a5, 0x67aa, 0xdb36, 0xdd33,
+  0x7921, 0x7922, 0x67a3, 0x67ac, 0x67ae, 0x67a7, 0x67a9, 0x67ab,
+  0x67a8, 0x67af, 0x787c, 0x7924, 0x787e, 0x787b, 0x69fc, 0x7a42,
+  0x69fa, 0xdd30, 0xdd2c, 0x69fe, 0xdd32, 0x6aa1, 0x7a40, 0x6aa2,
+  0x69fd, 0xdd2b, 0x69fb, 0x7a43, 0x7a3f, 0x6aa3, 0xdd2e, 0x7a41,
+  0x7a3e, 0xdc6d, 0x7b2b, 0xde62, 0x7b2c, 0x6cbd, 0x6cbc, 0x6cbf,
+  0x6cc0, 0xde63, 0x7b2d, 0x6ea5, 0x6eaa, 0x7b74, 0xdf61, 0x6ea7,
+  0xdf62, 0x6ea6, 0x6ea9, 0x6ea8, 0xe048, 0x6fd1, 0x7c48, 0x6fd0,
+  0x6fce, 0xe047, 0x6fcf, 0xe049, 0xe07b, 0x7c6a, 0x7c69, 0x70cf,
+  0x70d0, 0x7c6b, 0xe14b, 0x71bc, 0x71bd, 0x7d34, 0xe16b, 0x7d3a,
+  0xe17e, 0x71f7, 0x72b6, 0x4b47, 0x39d0, 0xb92a, 0x39d1, 0x47d8,
+  0x4eb8, 0x54ce, 0x7551, 0xd64d, 0x7550, 0x63d9, 0x67b0, 0xdf64,
+  0x6fd2, 0x4b48, 0x33a2, 0x583f, 0x5d47, 0x47da, 0x47d9, 0x6f27,
+  0x54cf, 0x6f28, 0x5fdd, 0x7742, 0xdd34, 0xe221, 0x7d43, 0x4b49,
+  0x28eb, 0x33a3, 0xb92d, 0x5d48, 0xb92c, 0x39d2, 0x39d3, 0xbf2a,
+  0x40cb, 0xbf29, 0x622f, 0x666d, 0xc464, 0x47dc, 0x47db, 0x47dd,
+  0xc96d, 0x4eb9, 0x4eba, 0x6b30, 0x7247, 0x6f29, 0x7248, 0x5fe1,
+  0x5fde, 0x5fe0, 0x5fdf, 0x7552, 0xd92b, 0x63da, 0x67b2, 0x67b1,
+  0x25a4, 0x5841, 0x5840, 0x33a4, 0xb92e, 0x39d4, 0xbf2c, 0xbf2b,
+  0x40cd, 0x40cc, 0x6230, 0xbf2d, 0x47df, 0x47e0, 0x47de, 0xc465,
+  0x666f, 0x666e, 0x6b32, 0x6b31, 0xce7a, 0x54d0, 0x5adf, 0x5add,
+  0x5ade, 0x7249, 0x5fe3, 0x5fe2, 0xd64f, 0x63dd, 0x63dc, 0x63db,
+  0x67b3, 0xe14d, 0x71f8, 0x4b4a, 0x5356, 0xaf2e, 0x5357, 0x5842,
+  0x5843, 0x33a6, 0x33a5, 0x39d5, 0xb930, 0x5d4e, 0x5d4c, 0x5d49,
+  0x5d4d, 0x5d4b, 0x5d4a, 0xb932, 0xb931, 0x6231, 0x40d0, 0xbf2f,
+  0x6674, 0x6233, 0x6238, 0x40d2, 0x623a, 0x6239, 0x623c, 0x40d1,
+  0x40ce, 0x6236, 0x6232, 0x6234, 0x40cf, 0x623b, 0x6237, 0x6235,
+  0x6676, 0x6675, 0x6673, 0x6677, 0x6671, 0x6672, 0xc469, 0x6670,
+  0x47e1, 0xc467, 0x4ebc, 0xc970, 0x6b34, 0x6b35, 0x6b33, 0xc972,
+  0x4ebb, 0xc971, 0x4ebd, 0x54d3, 0x54d5, 0xce7e, 0x6f32, 0x54d6,
+  0x6f2b, 0x54d2, 0x6f2a, 0x6f34, 0x6f30, 0x6f31, 0x6f2d, 0x54d1,
+  0x6f2c, 0x54d7, 0x54d4, 0xce7d, 0x6f33, 0xcf22, 0x6f2e, 0x6f2f,
+  0x5ae1, 0xd275, 0x5ae3, 0x5ae2, 0xd273, 0x5ae4, 0x724a, 0x5ae0,
+  0xd651, 0xd652, 0x7556, 0x5fe4, 0x7553, 0x7557, 0x7555, 0x7554,
+  0x63de, 0x63e1, 0x63e0, 0xd92e, 0x63df, 0x7743, 0x67b4, 0x67b5,
+  0x7925, 0x67b6, 0x7926, 0xdb38, 0x7a45, 0x7a44, 0x6cc1, 0xde65,
+  0xde66, 0x7b2e, 0x6cc2, 0x6eab, 0x7b75, 0x7b76, 0x6fd3, 0xe04a,
+  0x7c6d, 0xe14e, 0x4b4b, 0xb933, 0x5d50, 0x5d4f, 0x47e2, 0x47e3,
+  0x6b36, 0x5ae5, 0x6f35, 0x5ae6, 0x5fe5, 0x4b4c, 0xa43a, 0x2dd3,
+  0x5359, 0x5358, 0x33a7, 0x5844, 0x33a8, 0x39d8, 0xb939, 0x39d7,
+  0xb937, 0x39d6, 0xb935, 0xb938, 0x40d4, 0x623f, 0xbf39, 0xbf34,
+  0x40d3, 0x623e, 0xbf37, 0xbf30, 0xbf33, 0x40d5, 0x623d, 0xbf38,
+  0x47e5, 0x47e8, 0x47e6, 0x47e7, 0x47eb, 0x47e4, 0x47ec, 0x47e9,
+  0x47ea, 0x6b38, 0x4ebe, 0xc975, 0xc973, 0x6b37, 0xc974, 0x54db,
+  0x54d9, 0xcf26, 0x6f36, 0x54d8, 0x54da, 0xcf25, 0x6f37, 0xcf23,
+  0x5ae7, 0xd277, 0x5ae8, 0x7558, 0xd931, 0x67b8, 0x67ba, 0x67b7,
+  0x67b9, 0x6aa4, 0x6cc3, 0x71de, 0x4b4d, 0x535a, 0x33a9, 0x33ab,
+  0x33aa, 0x39db, 0x5d52, 0xb93e, 0x39d9, 0xb93a, 0x5d51, 0x39dc,
+  0xb93d, 0x39dd, 0x39da, 0x40e1, 0x6247, 0x40d9, 0x40df, 0xbf3f,
+  0xbf3a, 0x6242, 0x6245, 0x40d8, 0x6240, 0x40dc, 0x47f2, 0x6244,
+  0xbf3b, 0x40d7, 0xbf3e, 0x40dd, 0x40da, 0x40e0, 0x40d6, 0x40de,
+  0x6243, 0x6246, 0x40db, 0x6241, 0x6679, 0x47ee, 0x6678, 0x47f5,
+  0x47f4, 0x6721, 0x6722, 0x47f6, 0x667a, 0x47f3, 0x667e, 0x47f8,
+  0x47ef, 0xc46b, 0x47f1, 0x667b, 0x47ed, 0x47f0, 0x47f7, 0x667c,
+  0x47f9, 0x667d, 0x6b39, 0x4ec3, 0x4ec9, 0x4ec1, 0x4eca, 0xc97b,
+  0x4ec0, 0x4ec5, 0x4ecb, 0x4ec8, 0x4ec7, 0x4ec6, 0xc97a, 0x4ebf,
+  0x4ec4, 0xc979, 0x4ec2, 0x6f3c, 0x6f39, 0x54e4, 0x54e9, 0x54eb,
+  0x54e8, 0x54e1, 0x54e3, 0x54ed, 0x54ea, 0x54e5, 0x54ee, 0x54e2,
+  0x54ec, 0x6f3a, 0x6f40, 0x6f3e, 0x54dc, 0x6f3f, 0x6f3b, 0x54dd,
+  0x54df, 0x54de, 0x54e6, 0x54e7, 0xcf2c, 0x6f3d, 0xcf2b, 0x6f38,
+  0x54e0, 0x5af2, 0x724c, 0xd27e, 0x5ae9, 0x724d, 0x7250, 0x5aee,
+  0x5aeb, 0x724f, 0xd27b, 0x5aef, 0x5af0, 0x5aea, 0x5af3, 0x5aec,
+  0x5af1, 0x724e, 0xd27c, 0x724b, 0x5aed, 0xd654, 0x5feb, 0x755b,
+  0x7559, 0x755c, 0x755a, 0x5fea, 0x5fe7, 0x5fe6, 0xd655, 0x5fe9,
+  0x5fe8, 0x63ef, 0x7749, 0x63e6, 0x63e5, 0xd932, 0x7744, 0x63eb,
+  0x63ea, 0x63e2, 0x63ed, 0x63e7, 0x7748, 0x63e4, 0x63ec, 0x63e3,
+  0x7745, 0x7747, 0x63e8, 0x7746, 0x63e9, 0xdb3a, 0x63ee, 0x67be,
+  0xdb39, 0x792b, 0x67bb, 0x67bf, 0xdb3b, 0x7928, 0x67bd, 0x792d,
+  0xdb3c, 0x792a, 0xdb3d, 0x67bc, 0x792c, 0x67c0, 0x7927, 0x7a47,
+  0x7a49, 0xdd37, 0x6aa7, 0x7a48, 0x6aa5, 0x7929, 0x6aa6, 0x7a46,
+  0x7b2f, 0x7b31, 0x6cc5, 0x7b30, 0x6cc4, 0x6eb0, 0x7b77, 0x6eaf,
+  0x7b78, 0x6ead, 0x6eac, 0x6eb1, 0x6eb2, 0x6fd4, 0xe04b, 0x6eae,
+  0x70d4, 0x70d1, 0x70d2, 0x70d3, 0x7d29, 0xe150, 0x71c0, 0x71bf,
+  0x71be, 0x71df, 0xe16c, 0x72ae, 0x71f9, 0x7d3b, 0x4b4e, 0x5845,
+  0xb93f, 0xb940, 0xbf40, 0xc473, 0x6723, 0xc97d, 0xc97c, 0xcf30,
+  0xcf32, 0xcf2f, 0xcf31, 0x6f41, 0x5af4, 0xd935, 0x774a, 0xd936,
+  0x67c1, 0xdb3f, 0xdd38, 0x71fa, 0x4b4f, 0x4f51, 0x535c, 0x535b,
+  0x5848, 0x33ac, 0x5846, 0x33ad, 0x5847, 0xb941, 0x39e2, 0x39de,
+  0xb947, 0x5d53, 0x39e1, 0x39e0, 0x39df, 0x5d54, 0x39e3, 0x39e4,
+  0xbf45, 0x40e8, 0x40e6, 0x40ea, 0x40eb, 0x40f1, 0xbf47, 0x40ed,
+  0x40ef, 0x40e7, 0x40e2, 0x40ee, 0xbf44, 0xbf46, 0x40f0, 0x40e9,
+  0x40ec, 0x40e3, 0x6249, 0x40e5, 0x40e4, 0x6248, 0x624a, 0xbf49,
+  0x6726, 0x47fb, 0x47fd, 0x47fc, 0x48a3, 0x6724, 0xc476, 0x47fe,
+  0x47fa, 0x48a1, 0x48a2, 0x6725, 0x6727, 0x48a4, 0x4ecf, 0x4ece,
+  0x4ecc, 0x4ecd, 0x6b3b, 0x6b3d, 0x6b3a, 0x6b3c, 0x54f5, 0x54f6,
+  0x54f1, 0xcf36, 0x54f2, 0x6f43, 0x6f48, 0x6f42, 0x6f49, 0x6f44,
+  0x54f3, 0xcf33, 0x54f4, 0x54f0, 0x6f4a, 0x6f46, 0xcf35, 0x6f45,
+  0x6f47, 0xcf34, 0x54ef, 0xd324, 0x5af6, 0x7252, 0xd322, 0xd321,
+  0x5af8, 0x7254, 0x5afb, 0x5af7, 0x5af5, 0x5afa, 0x7253, 0x5af9,
+  0x7251, 0xd325, 0xd659, 0x755e, 0x7561, 0x5fed, 0xd65a, 0x755f,
+  0x5fec, 0x755d, 0x7560, 0x63f0, 0x63f1, 0x63f2, 0x774b, 0xd937,
+  0x63f3, 0x774c, 0x792f, 0x67c4, 0x67c5, 0x67c3, 0x67c2, 0x67c6,
+  0x792e, 0x6aab, 0x6aa9, 0x6aaa, 0x6aac, 0x6aa8, 0x6aad, 0x6cc7,
+  0xde67, 0x6cc8, 0x6cc6, 0x7b32, 0x6eb3, 0x7b79, 0x6eb4, 0x6fd6,
+  0x6fd5, 0xe222, 0x4b50, 0x624b, 0xbf4b, 0xc477, 0x6728, 0xc478,
+  0xca21, 0xca22, 0x6b3e, 0xcf37, 0xd327, 0x7256, 0xd326, 0x7255,
+  0xd938, 0x7930, 0x7a29, 0x7b33, 0x4b51, 0x5849, 0x6729, 0xcf39,
+  0x67c7, 0xa72f, 0xa43b, 0xa730, 0x25a6, 0xa733, 0x4b52, 0x4b55,
+  0x4b54, 0x4b53, 0xa731, 0x25a5, 0xaa72, 0x28ed, 0xaa70, 0x28ef,
+  0x4f52, 0xaa74, 0x4f54, 0x28ec, 0x28ee, 0x4f53, 0x28f1, 0x28f0,
+  0x28f2, 0xaa73, 0xaa71, 0x2dd7, 0x2dd5, 0x535f, 0x2dd4, 0x5364,
+  0x5361, 0x535e, 0xaf31, 0x5365, 0xaf32, 0x5360, 0x5363, 0x5362,
+  0x2dd6, 0xaf33, 0x535d, 0xaf30, 0x584f, 0x33af, 0x33b5, 0x584c,
+  0x5853, 0xb425, 0x584e, 0x33b2, 0x33b4, 0x5851, 0x33ae, 0x33b1,
+  0x584d, 0x584a, 0x33b0, 0x5850, 0x33b3, 0x5852, 0x584b, 0xb427,
+  0xb426, 0x39e6, 0x39e9, 0x5d56, 0xb94b, 0x5d60, 0x5d5c, 0x39e7,
+  0xb94a, 0xb94e, 0x5d64, 0x5d5d, 0x5d62, 0x5d58, 0x5d55, 0x5d57,
+  0x5d63, 0x39e8, 0x5d5b, 0x5d5e, 0x5d5a, 0x5d5f, 0x39ea, 0x5d61,
+  0x5d59, 0x39e5, 0xb94c, 0xbf4f, 0xbf50, 0xbf4d, 0xbf4c, 0xbf51,
+  0x40f2, 0x624c, 0x40f4, 0xbf55, 0x624e, 0x6250, 0x40f3, 0x624d,
+  0x6251, 0xbf56, 0x624f, 0xbf54, 0xbf57, 0x672f, 0x48a9, 0x6737,
+  0x48a6, 0xc47d, 0x6738, 0x672d, 0xc479, 0x48a7, 0xc47c, 0xc47a,
+  0x6732, 0xc47b, 0x48a8, 0x672b, 0x672a, 0xc47e, 0x6735, 0x6734,
+  0x6733, 0x6731, 0x6736, 0x48a5, 0x672c, 0x672e, 0x6730, 0x6b40,
+  0x6b43, 0xca24, 0x6b47, 0x6b41, 0x6b46, 0x6b44, 0xca27, 0x6b3f,
+  0xca26, 0x6b45, 0x6b42, 0x54fa, 0x6f4d, 0x6f4b, 0xcf3c, 0x54fb,
+  0x6f4e, 0x6f4c, 0x54f9, 0x54f8, 0xcf3b, 0x725a, 0x54f7, 0x7258,
+  0x7257, 0x5afc, 0x6f4f, 0x7259, 0x5afd, 0x725c, 0x5afe, 0x725b,
+  0x7563, 0x5fef, 0x7562, 0x7567, 0x7565, 0x7566, 0x774e, 0x7564,
+  0x5fee, 0x5ba1, 0x774d, 0x774f, 0xd93a, 0x7931, 0x7932, 0x6aae,
+  0x7c4a, 0x7c49, 0x4b57, 0xa25e, 0xa25d, 0x22f5, 0x5854, 0xa43c,
+  0x22f2, 0x22f3, 0x22f1, 0xa43d, 0x22f4, 0x25aa, 0x25a7, 0x25ac,
+  0x25a8, 0x4b58, 0x4b5b, 0xa735, 0x25a9, 0x4b5a, 0x25ab, 0xa739,
+  0xa734, 0x4b59, 0xb951, 0xaa77, 0x28f5, 0x28f7, 0x4f57, 0x28f3,
+  0x28f6, 0x28f4, 0x4f55, 0x4f58, 0xaa75, 0x4f56, 0xaa78, 0xaf35,
+  0x2dd9, 0x2ddd, 0x2dda, 0xaf38, 0x5368, 0xaf34, 0x5369, 0xaf3e,
+  0x2ddc, 0xaf37, 0x2dde, 0x2de0, 0xaf3c, 0x5366, 0x2ddf, 0xaf3b,
+  0x5367, 0x39f1, 0x2ddb, 0x33b6, 0x33bf, 0x33bd, 0x33b8, 0x33b9,
+  0x33be, 0x33c0, 0x5856, 0xb429, 0x33bb, 0x33b7, 0x5855, 0x5857,
+  0x33ba, 0x33c1, 0x33bc, 0x5d65, 0x39f4, 0x39ec, 0x39f2, 0x39f3,
+  0x5d66, 0xb94f, 0x39eb, 0x39ed, 0x2dd8, 0x39ef, 0x39f0, 0x39ee,
+  0x6253, 0xb952, 0x40fb, 0x5ba2, 0x40fc, 0x40f9, 0x5d67, 0x6255,
+  0x40f8, 0x40fe, 0x40fd, 0x6252, 0x41a3, 0x40f7, 0x41a2, 0x40f5,
+  0x41a1, 0x40fa, 0x6254, 0xbf59, 0x48b0, 0xc523, 0x48ab, 0x48b1,
+  0x48ac, 0x48aa, 0x48ad, 0x6739, 0xc524, 0x48af, 0xc525, 0x48ae,
+  0x673a, 0x6b49, 0x6b48, 0x4ed6, 0x4ed9, 0x4ed1, 0x4ed5, 0x6b4a,
+  0x4ed4, 0x4ed2, 0x4ed8, 0x4ed3, 0x4ed0, 0x4ed7, 0xca2a, 0x55a3,
+  0x6f52, 0x63f4, 0x54fe, 0x55a1, 0x54fd, 0x40f6, 0x6f51, 0x55a4,
+  0x54fc, 0x6f50, 0x6f53, 0x55a2, 0x5ba3, 0x725d, 0x5ba4, 0x5ba5,
+  0xd32b, 0x5ff0, 0x7568, 0x63f5, 0x63f6, 0xd93c, 0xd93b, 0x63f7,
+  0x67c9, 0x67c8, 0x6ab0, 0x6aaf, 0x6cca, 0x6ccb, 0x6cc9, 0x6eb5,
+  0x7b7a, 0x4b5c, 0x536b, 0x536a, 0x585a, 0x5859, 0x33c3, 0x33c4,
+  0x33c2, 0xb42a, 0x5858, 0x39f8, 0xb955, 0x39f9, 0x39f5, 0x5d68,
+  0x39f6, 0xb954, 0x39f7, 0x41a6, 0x41a8, 0x41a4, 0x41a7, 0x6256,
+  0x41a5, 0x6257, 0xc528, 0x42f9, 0x673d, 0x673c, 0xc527, 0x673b,
+  0x48b2, 0x48b3, 0x4edb, 0x4edd, 0x6b4e, 0x6b4b, 0xca2c, 0x6b4d,
+  0x6b4c, 0x4edc, 0x4eda, 0xca2b, 0xca2d, 0x55ab, 0x55a8, 0x55a9,
+  0x6f57, 0x55aa, 0x55a5, 0x55a6, 0x6f54, 0xcf3f, 0x6f55, 0x55a7,
+  0x6f56, 0xcf40, 0x5ba9, 0xd32d, 0x5baa, 0x5ba7, 0x5ba8, 0x725e,
+  0x5ba6, 0xd32c, 0xd32f, 0x5ff4, 0x5ff1, 0x5ff3, 0x756b, 0x5ff7,
+  0x756a, 0x5ff5, 0x5ff8, 0x5ff6, 0x5ff2, 0x7569, 0x63f9, 0x63fa,
+  0x63f8, 0xd93d, 0x63fc, 0x7750, 0x7751, 0x67cb, 0x7934, 0x63fb,
+  0x67ca, 0x7933, 0x6ab3, 0x6ab4, 0x7a4a, 0x6ab2, 0x6ab1, 0x6ccc,
+  0x7b34, 0xde68, 0x6fd7, 0x70d6, 0x70d5, 0xe07e, 0x7c6e, 0x7d2a,
+  0x70d7, 0x71e0, 0xe16d, 0x7d3c, 0x4b5d, 0x4f59, 0x673e, 0x7a4b,
+  0x4b5e, 0x536c, 0x5d69, 0x6258, 0x7752, 0x4f5a, 0x2de2, 0x2de1,
+  0x33c5, 0xb430, 0x585d, 0x585b, 0x585f, 0x33c7, 0xb42d, 0x585e,
+  0x585c, 0xb42f, 0xb42e, 0xb431, 0x33c6, 0x5d6c, 0x3aa1, 0xb958,
+  0x5d6b, 0x5d6d, 0x3aa6, 0x5d6f, 0x3aa3, 0x3aa4, 0x39fa, 0x5d6e,
+  0x3aa7, 0xb957, 0x39fc, 0xb956, 0x39fd, 0x39fb, 0x5d6a, 0xb959,
+  0x3aa5, 0x39fe, 0x3aa2, 0x41b4, 0xbf5d, 0x41b3, 0x41b1, 0x41a9,
+  0x41b8, 0x41ac, 0x41b6, 0x41bd, 0x41b5, 0x6260, 0xbf66, 0x625c,
+  0x41aa, 0xbf60, 0x41b0, 0x625e, 0xbf68, 0x41af, 0x625f, 0x6261,
+  0x41b2, 0xbf69, 0x6259, 0x625a, 0x41be, 0x41bc, 0xbf62, 0x41bb,
+  0x41ad, 0xbf65, 0x41b9, 0x625d, 0xbf5e, 0xbf63, 0x625b, 0x41ba,
+  0x41ab, 0x41ae, 0x41b7, 0x4fa2, 0x48bd, 0xc52e, 0x48b6, 0x48c9,
+  0x48d2, 0x48b9, 0x6749, 0xc52b, 0x48c6, 0x673f, 0x6741, 0x674d,
+  0x48b7, 0xc537, 0xc52f, 0x6742, 0x6744, 0x674e, 0x6743, 0xc539,
+  0xc538, 0x674c, 0x48bf, 0x48b4, 0x674a, 0x48be, 0x6746, 0x48d0,
+  0x674b, 0x48ce, 0x48c2, 0x48cc, 0x6748, 0x48b5, 0x48cf, 0x48ca,
+  0xc52a, 0x48d1, 0x6740, 0xc52d, 0x674f, 0x6745, 0xc531, 0xc529,
+  0x48bb, 0xc534, 0x48c3, 0x48c7, 0xc533, 0x48cb, 0x6747, 0x48ba,
+  0x48b8, 0x48c4, 0xc532, 0xc535, 0x48c1, 0x48c0, 0xc536, 0x48c5,
+  0x48c8, 0x48cd, 0x4ee0, 0x6b4f, 0x4eea, 0x4ee2, 0x6b55, 0x6b59,
+  0x4ef3, 0x4efb, 0x4eec, 0x6b51, 0xca34, 0x4ef0, 0x48bc, 0xca35,
+  0x6b52, 0x4ef7, 0x4efc, 0x4ef4, 0xca2f, 0x4ef6, 0x4fa1, 0x4ef8,
+  0x4ee6, 0x4eef, 0xc530, 0xca38, 0x6b5a, 0xca33, 0x6b56, 0x4ee4,
+  0x4ef1, 0x6b54, 0x4eeb, 0x6b53, 0x4ef9, 0x4ee8, 0x4ee1, 0x6b57,
+  0x4efe, 0xca39, 0x4ee3, 0x4ef5, 0x4ef2, 0x4eed, 0x4edf, 0x4ede,
+  0x4ee7, 0x4efa, 0x6b58, 0x4efd, 0x4ee5, 0x4ee9, 0x6b50, 0xca32,
+  0xca37, 0xca31, 0x6f63, 0x6f5e, 0x55cd, 0x55c9, 0x55b1, 0x6f5a,
+  0xcf42, 0xcf50, 0x6f59, 0x6f5f, 0xcf43, 0xcf41, 0x55af, 0x6f5d,
+  0x55bb, 0x55ad, 0x55ae, 0x6f58, 0x55cc, 0x6f61, 0x55be, 0x55c3,
+  0x55bd, 0x5bbc, 0x55b9, 0x55c1, 0x55bf, 0x55b2, 0x55ac, 0x55c7,
+  0x6f60, 0x55c8, 0xcf48, 0x55c2, 0xcf49, 0x55b7, 0x55b5, 0x55b0,
+  0xcf4b, 0xcf4e, 0xcf44, 0x55b8, 0x55c5, 0x55b4, 0x55c4, 0x55ca,
+  0xcf51, 0x6f5c, 0xcf45, 0x55c0, 0x55c6, 0x55bc, 0x55b6, 0x6f5b,
+  0xcf52, 0xcf4c, 0x4eee, 0x55ba, 0x6f62, 0x55b3, 0xcf4d, 0xca30,
+  0x5bc1, 0x7261, 0x5bc0, 0x5bbe, 0x5bd0, 0x7265, 0xd335, 0x5bcd,
+  0x5bc5, 0x5bcf, 0x5bb7, 0x5bc3, 0xd33d, 0x7267, 0xd33e, 0x5baf,
+  0xd338, 0x5bad, 0x5bce, 0xd332, 0x5bcc, 0x5bcb, 0x5bbb, 0x5bba,
+  0x5bb0, 0x7269, 0x5bb6, 0x5bbf, 0x5bca, 0x726c, 0x5bd1, 0xd336,
+  0x7573, 0x726e, 0x7268, 0x5bb4, 0xd337, 0x5bbd, 0x5bac, 0x5bae,
+  0x725f, 0x726b, 0x7264, 0x5bb5, 0x5bc4, 0x55cb, 0x726a, 0x5bab,
+  0x756e, 0x5bc6, 0x5bc9, 0x7266, 0xd33b, 0x5bb9, 0x726d, 0x7263,
+  0xd33c, 0xd339, 0xd33a, 0x7262, 0x5bc2, 0x5bc8, 0x7260, 0x5bb2,
+  0x5bc7, 0x5bb3, 0xd331, 0x5bb8, 0x5ffe, 0xd665, 0x60a5, 0x7570,
+  0x7572, 0x60ab, 0x756c, 0x60b9, 0x60b1, 0x60a6, 0x60a7, 0x60b0,
+  0xd666, 0x7579, 0x60af, 0x5ffd, 0x60ae, 0x60a2, 0x60ba, 0x7578,
+  0x7576, 0x60a3, 0xd65d, 0x60b6, 0xd667, 0x60a8, 0x60b5, 0xd664,
+  0x60b7, 0x5ffc, 0x7571, 0xd65b, 0x60b8, 0xd668, 0xd65e, 0x60ac,
+  0xd66b, 0x7575, 0x60a9, 0xd661, 0x7577, 0x60b2, 0xd662, 0xd663,
+  0xd65f, 0x756f, 0x60a4, 0x60b3, 0xd65c, 0x60ad, 0x5bb1, 0x60b4,
+  0x60a1, 0xd660, 0x7574, 0xd66a, 0x64af, 0x756d, 0x5ffa, 0x64ac,
+  0x64a5, 0x7754, 0xd943, 0x63fe, 0x64b0, 0x64a7, 0x60aa, 0xd940,
+  0x64b2, 0x64a1, 0xd942, 0x7753, 0x64ab, 0x7755, 0x775d, 0x775b,
+  0x64ad, 0x775c, 0x64a3, 0xd949, 0x64a4, 0x64a9, 0x64ae, 0xd93e,
+  0x5ff9, 0x7756, 0x64b7, 0x64b4, 0x67e1, 0x64aa, 0x64a6, 0x64b5,
+  0x67d6, 0x64a8, 0x7759, 0xd944, 0x7758, 0x5ffb, 0x775a, 0x64b1,
+  0x64b3, 0x7757, 0x64b6, 0x63fd, 0x64a2, 0xd946, 0xd945, 0x67df,
+  0xdb50, 0x67cf, 0x7938, 0x67dd, 0xdb44, 0xdb45, 0x67cd, 0x7939,
+  0x67d8, 0xdb43, 0x67d4, 0x793e, 0x67de, 0x67ce, 0x67d1, 0x7936,
+  0x67e0, 0xdb48, 0x67d9, 0x67dc, 0x793c, 0x7941, 0x793f, 0x67d5,
+  0x67d0, 0xdb4d, 0x793a, 0x793b, 0x67cc, 0x7937, 0xdb4f, 0x7935,
+  0x793d, 0x67db, 0x7940, 0xdb4a, 0x67d7, 0x67e2, 0x7942, 0xdb41,
+  0xdb42, 0xdb4e, 0x67d3, 0xdb47, 0x67da, 0xdd41, 0xde6a, 0x6ac1,
+  0x6ad0, 0x6ac3, 0x6aca, 0x67d2, 0x6ac8, 0x6ab7, 0x6ace, 0x7a4e,
+  0x6abb, 0x6acd, 0x6ac2, 0xdd43, 0x7a4d, 0xdd3c, 0xdd3f, 0x6ad2,
+  0x6ac4, 0xdd3e, 0x6ac9, 0x6acc, 0x6ab5, 0x6acf, 0x6ac0, 0x6ac5,
+  0x6ab9, 0x6abd, 0x6ad1, 0x6ac7, 0x6ab6, 0x6aba, 0x6abc, 0x6ac6,
+  0xdd3d, 0x7a4c, 0x6abf, 0xdd44, 0xdd45, 0xdd47, 0xdd42, 0xdd3a,
+  0x6ab8, 0xdd46, 0x6abe, 0x6cd0, 0x6cd4, 0x7b3b, 0x6cd6, 0xde6d,
+  0x7b35, 0x6cd2, 0x6cd8, 0x7b3a, 0x7b36, 0x7b37, 0x6ccf, 0x6cd5,
+  0x7b39, 0x6cd3, 0x7b38, 0x6cce, 0x6acb, 0x6cd1, 0x6ccd, 0x6cd7,
+  0xdf69, 0xdf6e, 0x7b7b, 0x6ebc, 0x6ebf, 0x6ebb, 0x6ebd, 0x6ebe,
+  0x6eb8, 0x6eb9, 0x6eb6, 0xdf6a, 0xdf6c, 0x6eba, 0x6eb7, 0x7b7c,
+  0x7b7d, 0xdf6b, 0x6fd9, 0xe052, 0x6fdb, 0xe055, 0xe054, 0xe056,
+  0x6fda, 0x6fdc, 0xe04f, 0x7c4c, 0xe053, 0x6fd8, 0x7c4b, 0x7c4d,
+  0xe057, 0x70d9, 0x70da, 0x7c6f, 0x70d8, 0xe122, 0x71c2, 0x71c1,
+  0x71c3, 0x7d2c, 0x71c4, 0x7d2b, 0x71c5, 0x71e1, 0x71e4, 0x71e3,
+  0x7d35, 0x71e2, 0xe16f, 0xe223, 0x7d3f, 0x7d3d, 0x7d3e, 0x7d44,
+  0x72b0, 0x72b1, 0x72af, 0x72b7, 0xe236, 0x4f5b, 0x3aa8, 0x41bf,
+  0x55ce, 0x67e3, 0x4f5c, 0xaf40, 0x536d, 0x5860, 0xb432, 0x3aa9,
+  0xb95c, 0x3aaa, 0x5d70, 0x6264, 0x41c1, 0x41c0, 0x6268, 0x6263,
+  0x41c2, 0x6265, 0x6267, 0x6266, 0x6262, 0xbf6c, 0x6750, 0xc53c,
+  0xc53a, 0x48d6, 0x48d4, 0x48d5, 0x48d3, 0x6b5b, 0xca3d, 0x6b5e,
+  0x6b60, 0x6b5f, 0xca3e, 0x6b5c, 0x6b5d, 0x55d0, 0x55cf, 0x6f64,
+  0x55d1, 0xcf53, 0x55d2, 0x6f65, 0xcf55, 0xcf56, 0x5bd9, 0x5bd7,
+  0x60c0, 0xd342, 0x5bd5, 0x5bd6, 0x726f, 0x5bd2, 0x5bda, 0x5bd4,
+  0x5bd8, 0x60bc, 0xd344, 0xd340, 0x60be, 0xd66d, 0x60bf, 0x757e,
+  0x60bb, 0x757d, 0x60bd, 0x757a, 0x757b, 0x757c, 0x5bd3, 0x7760,
+  0x64ba, 0x64b8, 0x64b9, 0x775e, 0x7761, 0x775f, 0xd94b, 0xd94a,
+  0x67e4, 0x67e5, 0x7943, 0xdb53, 0x6ad3, 0x6ad5, 0x6ad4, 0x7a4f,
+  0x7b3c, 0x6cdb, 0x6cda, 0x6cd9, 0x4f5d, 0xa143, 0x21e9, 0x22f8,
+  0x486a, 0x22f6, 0x22f9, 0x22f7, 0xa73b, 0xa73a, 0x25ae, 0xa73f,
+  0x4b62, 0xa73c, 0x4b63, 0x25b0, 0x4b60, 0x25af, 0x25ad, 0x4b61,
+  0x4b5f, 0xa73d, 0xa73e, 0xaa79, 0x28f8, 0x28fb, 0x4f60, 0x28fa,
+  0x28f9, 0xaa7c, 0x4f5f, 0x4f5e, 0xaa7b, 0x4f62, 0x28fc, 0x4f61,
+  0x2de7, 0x536f, 0x5370, 0x5371, 0x2de8, 0x2de4, 0x536e, 0x2de5,
+  0x2de6, 0x2de3, 0xb436, 0x5867, 0xb434, 0xb95e, 0x5864, 0x33c8,
+  0x5865, 0x5868, 0x33c9, 0xb433, 0x5863, 0x5861, 0x5862, 0x5866,
+  0x5d71, 0x3aad, 0x5d79, 0x3aac, 0xb961, 0x3aaf, 0x5d75, 0x3aae,
+  0x6270, 0x5d73, 0x5d76, 0x5d72, 0x5d77, 0x5d78, 0x5d74, 0xb965,
+  0xbf71, 0x3aab, 0x626c, 0x41c4, 0xbf72, 0x41c8, 0xbf73, 0xbf75,
+  0x41c7, 0x6271, 0x626d, 0x626e, 0x41c3, 0x41c5, 0x41c6, 0x6269,
+  0x626b, 0xbf70, 0x626f, 0x626a, 0xc540, 0x48d9, 0x48d7, 0x48d8,
+  0x6752, 0x6753, 0xc542, 0x48da, 0x6751, 0x6b61, 0x6b63, 0x6b62,
+  0xca45, 0x4fa3, 0xca46, 0xca44, 0x4fa4, 0x55d4, 0xcf5a, 0x55d3,
+  0xcf5b, 0x7270, 0x7271, 0x5bdb, 0x7272, 0xd348, 0x60c3, 0xd670,
+  0x60c1, 0xd66f, 0x60c2, 0x7621, 0xd671, 0x64bb, 0x7944, 0xdd49,
+  0xaa7d, 0xd349, 0x7622, 0x4f63, 0x5869, 0x33ca, 0xb439, 0x3ab0,
+  0x5d7a, 0x6272, 0x41c9, 0x41cb, 0x6274, 0x6273, 0x6275, 0x6276,
+  0x41ca, 0x6756, 0x6757, 0x6755, 0x6b64, 0x6754, 0x48db, 0xca47,
+  0xca49, 0x6b65, 0x55d5, 0x5bdc, 0x7273, 0x7623, 0x64bc, 0x64c0,
+  0x7764, 0x64bd, 0x7765, 0x7763, 0x64c1, 0x7766, 0x64bf, 0x67e6,
+  0x7762, 0x7945, 0xde70, 0x70db, 0xe125, 0xe22f, 0x4f64, 0x5d7c,
+  0x5d7b, 0xbf7e, 0xbf7c, 0xbf7b, 0x6277, 0x41cd, 0x41cc, 0x6278,
+  0xc546, 0x48df, 0x675b, 0x6758, 0x48de, 0x675a, 0x48dc, 0x6759,
+  0xc547, 0x48dd, 0x4fa5, 0x6b66, 0x55d8, 0x6f66, 0x55d6, 0x6f67,
+  0x6f68, 0x55d7, 0x6f69, 0xcf60, 0x5bdd, 0xd350, 0x7277, 0x7274,
+  0x7279, 0x5bdf, 0x7275, 0x5bde, 0x7278, 0xd34d, 0xd34c, 0x7276,
+  0xd351, 0x60c6, 0x60c8, 0xd674, 0xd675, 0x7624, 0x60c7, 0x7625,
+  0x60c5, 0x60c4, 0x64c3, 0x64c2, 0x7767, 0x64c4, 0x67eb, 0x7947,
+  0x67ea, 0x67e7, 0x7946, 0x67e8, 0x67e9, 0x6ad6, 0x6ad7, 0x7a50,
+  0xdd4f, 0x7b3f, 0xdd4c, 0xdd4e, 0x6cdc, 0xde72, 0xde71, 0x7b3d,
+  0x7b3e, 0x6cdd, 0xdf71, 0x7b7e, 0x7c21, 0x6ec0, 0xdf72, 0xe059,
+  0x7c70, 0x70dd, 0x7c72, 0xe126, 0x70dc, 0x70de, 0x7c71, 0x71c6,
+  0x71fb, 0xe245, 0xaa7e, 0x4f65, 0xc549, 0x675c, 0x4fa6, 0xca4c,
+  0x55d9, 0x727a, 0x727b, 0xd94f, 0x4f66, 0xc021, 0x6f6a, 0x7948,
+  0x5372, 0xab21, 0xca4e, 0x727c, 0xde73, 0x7c4e, 0x5373, 0x3ab1,
+  0x41ce, 0xc024, 0x41d0, 0xc022, 0x41cf, 0x48e3, 0x48e0, 0x675d,
+  0x675e, 0x48e1, 0x48e2, 0xc54b, 0x4fa8, 0x4fad, 0x6b67, 0x4fa7,
+  0x4fa9, 0x4fb0, 0x4fab, 0x4faf, 0x4fac, 0x4faa, 0x4fae, 0x6b68,
+  0xcf62, 0x55dc, 0xcf63, 0x55da, 0x6f6c, 0xcf64, 0x6f6b, 0x55db,
+  0x6f6d, 0xd353, 0x5be2, 0x5be1, 0x727d, 0x5be0, 0x60c9, 0xd67a,
+  0x60cb, 0x60cd, 0x60cc, 0xd67b, 0x7626, 0x60ca, 0x64cb, 0x7768,
+  0x64c9, 0x64cc, 0x7769, 0x64c7, 0xd950, 0x64ca, 0x64c8, 0x64c5,
+  0x776a, 0x64c6, 0xdb5f, 0xdb5d, 0x67ec, 0xdb5e, 0xdb60, 0x67ee,
+  0x67ed, 0xdd50, 0x6ad8, 0xdd51, 0x6ad9, 0xde75, 0xde74, 0x6cde,
+  0xdf73, 0x7c23, 0x7c22, 0x6fdd, 0x6fde, 0x7c73, 0x70df, 0xe128,
+  0x7d36, 0xe23b, 0x5374, 0x6279, 0x4fb2, 0x4fb1, 0x55de, 0x55dd,
+  0xd355, 0x7627, 0x60cf, 0x60ce, 0x64cf, 0x64cd, 0x64d0, 0x64ce,
+  0xd951, 0x7949, 0x67ef, 0x67f0, 0x67f1, 0x6cdf, 0xde76, 0x6ec1,
+  0xe129, 0x70e0, 0x5375, 0xc54f, 0xcf65, 0x5be3, 0x60d0, 0xdb61,
+  0x5376, 0xc550, 0x6b69, 0x5be4, 0x776b, 0x64d1, 0x794a, 0xdd53,
+  0x6ada, 0x6adb, 0x7b40, 0x6fdf, 0x5377, 0x5e21, 0x5e22, 0x3ab2,
+  0x627a, 0x627b, 0x41d1, 0x627c, 0x6762, 0xc552, 0x6764, 0x48e5,
+  0x48e6, 0x48e4, 0x675f, 0x6760, 0x6763, 0x6761, 0xca54, 0xca55,
+  0x4fb3, 0x6b6a, 0x6b6b, 0xca52, 0xca56, 0x55e5, 0x6f70, 0x55e0,
+  0x55df, 0xcf69, 0x55e4, 0x6f6e, 0xcf67, 0x7326, 0x55e1, 0x55e6,
+  0x55e3, 0x55e2, 0xcf66, 0x6f6f, 0x7324, 0xd35c, 0x5be6, 0x727e,
+  0xd359, 0x5be7, 0xd35a, 0xd228, 0x5be5, 0xd358, 0x7323, 0x7321,
+  0x7325, 0xd35d, 0x7322, 0xd35b, 0xd35f, 0xd95b, 0xd726, 0x60d1,
+  0x60d6, 0x60d2, 0x60d5, 0x7628, 0xd728, 0x5ec1, 0x60d4, 0x60d3,
+  0xd959, 0x776e, 0x776c, 0x776f, 0x776d, 0x64d2, 0x64d3, 0x64d4,
+  0x7770, 0xd956, 0xd958, 0xdb65, 0x67f5, 0x794c, 0x67f3, 0x794d,
+  0x67f2, 0x67f4, 0x794b, 0x6adf, 0x6adc, 0x6add, 0x6ade, 0x6ce0,
+  0x7b42, 0xde78, 0x7b41, 0xde77, 0x6ec3, 0x6ec2, 0x7c24, 0xe05d,
+  0xe05e, 0xe05c, 0x7c4f, 0x7c74, 0x7d2d, 0x71c7, 0x71fc, 0x71fd,
+  0x5378, 0x41d2, 0x48e7, 0x4fb4, 0x4fb5, 0x6b6c, 0x6b6d, 0x55e7,
+  0x6f71, 0xd361, 0x7629, 0xd72a, 0x64d5, 0xd95c, 0x7771, 0x67f8,
+  0x794e, 0x67f7, 0x67f9, 0x67f6, 0x6ce3, 0x6ae0, 0x6ae1, 0xdd56,
+  0x7a51, 0x6ce2, 0xde7b, 0xde79, 0x6ce1, 0xde7a, 0x6ec4, 0x71fe,
+  0xe225, 0x5379, 0xde7c, 0xe226, 0x537a, 0xb967, 0x586a, 0x33cb,
+  0x3ab3, 0xb968, 0x627d, 0x6322, 0x627e, 0x41d3, 0xc55b, 0x6324,
+  0x6321, 0xc02b, 0xc55c, 0x6323, 0xc554, 0x6766, 0xc559, 0x48e8,
+  0xc557, 0xca5d, 0x48e9, 0x55e9, 0x6765, 0x6767, 0x6768, 0xc558,
+  0x4fb7, 0xca5e, 0x4fb6, 0x6b6e, 0x6b6f, 0xca5b, 0x4fb8, 0x55e8,
+  0x6b71, 0x6f72, 0x6b70, 0x7327, 0x55ea, 0x6f74, 0x6f73, 0x55eb,
+  0x55ee, 0x55ec, 0x55ed, 0x6f75, 0xcf6b, 0x732c, 0x732a, 0xd365,
+  0xd366, 0x7329, 0x5be9, 0xd364, 0x732b, 0xd362, 0xd363, 0x5be8,
+  0x60d7, 0x5bea, 0x7328, 0x5beb, 0x60da, 0x60d8, 0x60d9, 0x60de,
+  0x7775, 0x60dd, 0x60e0, 0x60df, 0x60dc, 0x60db, 0x762a, 0xd962,
+  0xd961, 0xd966, 0x64d8, 0xd965, 0x64d7, 0x7774, 0x7772, 0x7773,
+  0xd963, 0x64d6, 0x67fc, 0xdb69, 0x794f, 0x67fb, 0x67fa, 0x7950,
+  0x6ae6, 0x6ae5, 0xdd58, 0x6ae3, 0xde7e, 0x6ae2, 0x7a53, 0x7a52,
+  0x6ae7, 0x6ec5, 0x7c25, 0x6ce5, 0x7b43, 0x6ce4, 0x6ae4, 0xdf78,
+  0x6ec6, 0x7c50, 0xe12a, 0x7d2e, 0x71c8, 0x72a1, 0x537b, 0x3ab4,
+  0x60e1, 0x537c, 0xc55f, 0x4fba, 0x4fb9, 0x5bec, 0xd368, 0x60e3,
+  0xd730, 0x60e2, 0xd967, 0x7776, 0x67fd, 0x67fe, 0x7a54, 0xdf21,
+  0xe060, 0x72a2, 0x586b, 0x6326, 0x6325, 0x48ea, 0x48ec, 0x676a,
+  0x48eb, 0x6769, 0x676b, 0x48ed, 0xca63, 0xca62, 0xca66, 0x4fbc,
+  0x4fbe, 0x4fbd, 0xca61, 0x4fc0, 0xca60, 0xca6c, 0xca64, 0x6b72,
+  0x4fbf, 0x4fbb, 0xca6a, 0x4fc1, 0xcf73, 0x55f5, 0xcf6d, 0x55f8,
+  0x55fa, 0x55f0, 0x55f4, 0x55f1, 0x6f77, 0x6f7a, 0x6f7c, 0x55f2,
+  0x55f3, 0x6f7b, 0x55f6, 0x55f9, 0x55f7, 0x6f7d, 0xcf6e, 0x6f79,
+  0x55ef, 0x6f76, 0xcf72, 0x6f78, 0xcf74, 0xd370, 0x732e, 0x5bf2,
+  0x5bf0, 0x5bef, 0xd371, 0x5bf5, 0xd36b, 0x5bf4, 0x5bf3, 0xd36c,
+  0x5bee, 0x732d, 0x5bed, 0xd36a, 0x5bf1, 0x732f, 0xd734, 0x60e6,
+  0xd737, 0x60ea, 0x60e7, 0x60e9, 0x60e8, 0x60e5, 0x60eb, 0x60ee,
+  0x60ec, 0x60ed, 0x762c, 0xd733, 0x762b, 0x60e4, 0x60ef, 0x64dd,
+  0x64e0, 0x64e2, 0x64e1, 0xd96a, 0x64db, 0x64df, 0x64da, 0xd96b,
+  0x64dc, 0x7777, 0x64d9, 0xd96d, 0x64de, 0x68ad, 0x68a2, 0x7951,
+  0xdb6f, 0xdb6d, 0x7952, 0x68a1, 0x68a6, 0x68ac, 0x68a4, 0x68ab,
+  0xdb6c, 0x68a8, 0xdb6e, 0x68a7, 0x68aa, 0x68a5, 0x68a3, 0xdb6b,
+  0x68a9, 0x6aee, 0x6aec, 0x7a55, 0x6aeb, 0x6af1, 0x6aef, 0xdd5a,
+  0x7a56, 0x6aea, 0x6ae8, 0x6ae9, 0x7a58, 0x6aed, 0x7a57, 0x6af0,
+  0x6ce6, 0x6cec, 0xdf24, 0xdf22, 0x6ce7, 0x7b47, 0x6ced, 0x7b46,
+  0x6ceb, 0x6cea, 0x7b45, 0x6ce9, 0x7b44, 0x6ce8, 0x6ecc, 0x6ece,
+  0x6ecd, 0x6eca, 0x7c27, 0x6ec7, 0x6ecb, 0x6ed0, 0xdf79, 0x6ecf,
+  0x6ec8, 0x6ec9, 0x7c26, 0x6fe0, 0x7c53, 0xe062, 0x6fe1, 0x7c51,
+  0x7c52, 0xe061, 0x70e1, 0x7c75, 0x71e5, 0xe172, 0x7d37, 0xe173,
+  0x72a3, 0x7d38, 0x72a4, 0x72a5, 0x72b3, 0x72b2, 0x7d47, 0x72bb,
+  0x586c, 0xc02f, 0x48ef, 0x48ee, 0x6b73, 0x6b74, 0x4fc2, 0x55fb,
+  0x5bf8, 0xcf77, 0xcf76, 0x6f7e, 0x7330, 0x5bf6, 0x5bf9, 0x7331,
+  0xd73a, 0x60f0, 0x5bf7, 0x64e3, 0x7778, 0x68ae, 0xdd61, 0x6af4,
+  0x6af2, 0xdd60, 0xdd5e, 0x6af3, 0x6cee, 0xdf25, 0x7b48, 0x6ed1,
+  0x7c56, 0x7c28, 0x7c54, 0x7c55, 0x70e2, 0x7d2f, 0xe174, 0x586d,
+  0xca6e, 0x64e4, 0xdf7b, 0xe063, 0x33cc, 0xc032, 0x676c, 0xc561,
+  0x4fc3, 0xca6f, 0xca73, 0x6b75, 0x4fc4, 0xca71, 0xca70, 0xca72,
+  0x55fd, 0x55fc, 0x7333, 0x7021, 0x7022, 0x56a2, 0x56a1, 0x55fe,
+  0xcf79, 0xd375, 0x5bfa, 0x5bfd, 0xd374, 0x5bfc, 0x5bfb, 0x7332,
+  0x60f4, 0x60f2, 0x60f1, 0xd73b, 0x60f3, 0xd73c, 0x7779, 0x64e6,
+  0x64e7, 0x777a, 0xd96f, 0x64e5, 0xdb71, 0x68b0, 0x68af, 0x68b2,
+  0x7953, 0x68b1, 0x6af5, 0x6af7, 0x6af6, 0xdf27, 0x6cef, 0x6cf2,
+  0x6cf0, 0x6cf1, 0x6ed2, 0x7c29, 0x6fe2, 0x6fe3, 0x6fe4, 0xe12c,
+  0x7c76, 0x7d30, 0x72a6, 0x586e, 0xca75, 0x7023, 0x7334, 0x64e8,
+  0xdd62, 0x6ed3, 0xe12e, 0x71e6, 0x33cd, 0xe228, 0x7d48, 0x586f,
+  0x5bfe, 0xd73e, 0x64e9, 0x68b3, 0xdd63, 0x6cf3, 0x6ed4, 0x5870,
+  0xc562, 0x4fc5, 0x4fc6, 0xca78, 0x6b76, 0x6b77, 0x56a4, 0x7025,
+  0x7024, 0x56a3, 0x60f5, 0xd73f, 0x64ea, 0x64ec, 0x64eb, 0x777d,
+  0x777c, 0x777b, 0xdd64, 0x7b4a, 0x6cf4, 0xdf28, 0x7b49, 0x6ed6,
+  0x6ed5, 0xe12f, 0x7c77, 0x70e3, 0x5e23, 0x48f0, 0xc563, 0x4fc9,
+  0x4fc7, 0x4fc8, 0xcf7e, 0x56ad, 0x56a8, 0x56a5, 0x56ac, 0xcf7c,
+  0xcf7b, 0x56ae, 0x7027, 0x56ab, 0x56a7, 0xcf7d, 0x56a6, 0x56aa,
+  0x56a9, 0x7026, 0x5cab, 0x5ca6, 0x5ca4, 0x5cad, 0x5ca5, 0x5ca1,
+  0x5ca7, 0xd378, 0xd37a, 0x5ca2, 0x60fe, 0x5ca3, 0x5cae, 0xd423,
+  0xd37c, 0xd421, 0xd425, 0xd37d, 0x5caa, 0x7335, 0x5ca9, 0x5ca8,
+  0xd379, 0x5cac, 0xd744, 0x60f6, 0x60f9, 0xd745, 0x60f8, 0xd740,
+  0x61a2, 0x60fb, 0x61a1, 0xd742, 0x60fd, 0x60fc, 0x60fa, 0x60f7,
+  0x762f, 0x762e, 0x7630, 0x762d, 0x61a3, 0x64f2, 0x64f5, 0x64f3,
+  0x64f7, 0xd974, 0x64f8, 0x64f0, 0x7824, 0x64f1, 0xd973, 0x64ef,
+  0x64f6, 0xdb74, 0x64ee, 0x64ed, 0x7823, 0x7821, 0x777e, 0xd976,
+  0xd975, 0xd743, 0xd971, 0x64f4, 0x68bc, 0x68c2, 0x7956, 0x68bd,
+  0x68c0, 0x68c4, 0x7957, 0x68bf, 0x68b7, 0xdb75, 0x68b6, 0x68c3,
+  0x68ba, 0xdb77, 0x68b8, 0x68c1, 0x68b9, 0x7955, 0x7954, 0xdb79,
+  0x68b4, 0x68b5, 0x68be, 0xdb7a, 0x68bb, 0xdd6f, 0x6afa, 0x6afd,
+  0xdd71, 0xdd67, 0xdd69, 0x7822, 0xdd6a, 0xdd74, 0xdd75, 0xdd6e,
+  0xdd68, 0x6afb, 0x6ba3, 0x6ba1, 0x6af9, 0x6ba6, 0xdd66, 0x6af8,
+  0xdd76, 0x7a5a, 0x6ba2, 0xdd73, 0x6afc, 0x7a59, 0x6ba5, 0xdd72,
+  0x6ba4, 0xdd70, 0x6cf7, 0x6cf6, 0xdf2c, 0x6cfd, 0x6cf9, 0x6cfc,
+  0x7b4c, 0x6cfa, 0x6cfb, 0x6cf5, 0x6cf8, 0x7b4b, 0xdf2a, 0x7c2b,
+  0x6ee1, 0x6edc, 0x6ee0, 0xe025, 0x6ee3, 0x6edf, 0xdf7e, 0x6edb,
+  0xe023, 0x7c2d, 0x6ede, 0x6ee2, 0x7c2c, 0x6ed9, 0x6afe, 0x6edd,
+  0x6eda, 0xe022, 0x6ed7, 0x6ed8, 0x7c2a, 0x6fe8, 0x6fea, 0x6fed,
+  0x6fe9, 0x6fee, 0xe065, 0x6fe7, 0xe066, 0x6fe5, 0xe068, 0x7c57,
+  0x6feb, 0x7c59, 0x7c58, 0x6fe6, 0x6fec, 0xe132, 0x70e8, 0x7c78,
+  0x70e9, 0xe133, 0x70e7, 0x70e4, 0xe134, 0x70e6, 0x70e5, 0x71c9,
+  0xe159, 0x71cb, 0x71ca, 0xe15b, 0x71e9, 0x71e8, 0x71e7, 0x71ea,
+  0xe175, 0x7d40, 0x7d41, 0x72b8, 0x72bc, 0xe241, 0x5e24, 0x41d4,
+  0x48f3, 0xc564, 0x676d, 0x48f1, 0xc566, 0xaf42, 0x48f2, 0xc568,
+  0xc567, 0x4fca, 0x4fcb, 0x6b7a, 0x6b78, 0x4fcc, 0x6b79, 0x56b3,
+  0xd027, 0x56b6, 0x56b0, 0x56b7, 0x56af, 0x56b1, 0xd02a, 0x56b2,
+  0x56b5, 0xd024, 0xd02b, 0x702a, 0x56ba, 0x56b9, 0x7028, 0x56b4,
+  0x56b8, 0x7029, 0xd42d, 0xd025, 0xd022, 0xd42a, 0x5cb8, 0x733a,
+  0xd42c, 0x5cb3, 0x7336, 0xd436, 0x5cb0, 0x5cb6, 0x5cb9, 0xd433,
+  0x733b, 0x5cb5, 0x5cb2, 0x5cba, 0x5cb1, 0xd437, 0x5cb7, 0x7337,
+  0xd429, 0x5caf, 0x7338, 0xd435, 0x7339, 0x5cb4, 0xd432, 0x61b5,
+  0x61a8, 0x61a9, 0x61ac, 0x61aa, 0x61a4, 0xd74d, 0x61a7, 0x61b1,
+  0x61ab, 0xd748, 0x7631, 0x61b3, 0x61b0, 0x7632, 0x61b2, 0x61a5,
+  0x61ae, 0x61af, 0xd74a, 0x61ad, 0x64fc, 0x64fe, 0x65a3, 0xd979,
+  0xd97b, 0x64fb, 0xd97d, 0x7825, 0x65a5, 0x64fa, 0x65a6, 0xd97e,
+  0x65a2, 0x65a4, 0x65a8, 0x65a1, 0x65a9, 0x64fd, 0x64f9, 0x7826,
+  0xda22, 0x65a7, 0x7827, 0x7959, 0xd97a, 0xdb7d, 0x61a6, 0x68de,
+  0x68d5, 0x795b, 0x68d1, 0x795c, 0xdc27, 0xdc22, 0x68da, 0x68d4,
+  0x68ca, 0x795a, 0x68d7, 0x68d2, 0x68d3, 0xdc25, 0x68c5, 0x68cc,
+  0x68db, 0xdb7e, 0x68d8, 0x68d0, 0xdc26, 0x68dc, 0x68cb, 0x68c6,
+  0x68d9, 0xdc24, 0x68c8, 0x68d6, 0x68cd, 0x68dd, 0x68c9, 0x7958,
+  0x68c7, 0x68ce, 0x68cf, 0x6bad, 0xdc23, 0x6bab, 0x6bb0, 0xdd79,
+  0x6bbc, 0x6bb3, 0x6bac, 0x6ba8, 0x6bb5, 0x6bae, 0x6bb1, 0x6baa,
+  0x6bb8, 0x6ba7, 0x6baf, 0x6bb4, 0x6bb6, 0x6bb9, 0x6ba9, 0xdd7a,
+  0x6bbd, 0x6bbe, 0x6bb7, 0x6bbb, 0x6bb2, 0x6daf, 0x6db2, 0xdf35,
+  0x7b4d, 0xdf31, 0x6db1, 0x6db6, 0x6db4, 0x7b4e, 0x6dab, 0x6da1,
+  0x6cfe, 0x7b50, 0x6dad, 0x6dae, 0x6daa, 0x6da2, 0xdf32, 0x6da7,
+  0x6bba, 0x6da3, 0x7b4f, 0x6da9, 0xdf36, 0x6da8, 0x6da4, 0x6db0,
+  0x6da5, 0x6ee8, 0x6db3, 0x6db5, 0x6dac, 0x6da6, 0x6ee9, 0x6eeb,
+  0x6ee5, 0x7c2e, 0x6ef2, 0x6ef0, 0x7c2f, 0x6eef, 0x6eee, 0x6ee7,
+  0x6ee4, 0x6eea, 0x6ef3, 0x6ee6, 0x6eec, 0x6ff7, 0x6ffc, 0x6ff2,
+  0x6ff5, 0x7c5a, 0x6ff9, 0x70a2, 0x6eed, 0x6ff3, 0x6ffd, 0x70a3,
+  0x6ff8, 0x6ff1, 0x6ffb, 0x6ffa, 0x70a1, 0x6ffe, 0x6ef1, 0x6ff6,
+  0x6ff0, 0x6ff4, 0x7c79, 0x7c7a, 0x6fef, 0xe06c, 0x70f4, 0x70eb,
+  0x70f3, 0x70f0, 0x70f1, 0x70ea, 0x70ed, 0x70f5, 0x70ef, 0x70ee,
+  0x70ec, 0xe135, 0x70f2, 0x71cc, 0x71cd, 0xe15d, 0x71cf, 0x71ce,
+  0x71d1, 0x71d0, 0x71ec, 0x71eb, 0x72a7, 0xe229, 0x72a8, 0xe230,
+  0x72b4, 0x7d45, 0x7d49, 0xe238, 0x72bd, 0x7d4a, 0x5e25, 0x7a5b,
+  0x6db7, 0xdf37, 0x7c7b, 0x7c7c, 0x5e26, 0x48f4, 0xc569, 0x676e,
+  0x56bb, 0xd02c, 0xd439, 0x5cbc, 0x5cbd, 0x5cbb, 0x61b7, 0x61b6,
+  0x7633, 0x65ab, 0x61b8, 0x65aa, 0xda24, 0x68e0, 0x795d, 0x795f,
+  0x68df, 0xdc29, 0x795e, 0xde21, 0x6bbf, 0x6bc1, 0x6bc0, 0x6db8,
+  0x7b51, 0xdf3a, 0x7c5b, 0x70f6, 0x71d2, 0xe231, 0xe23f, 0x72c1,
+  0x5e27, 0xa547, 0x4fcd, 0x702b, 0xd02f, 0xd02e, 0xd43a, 0x5cbf,
+  0x5cbe, 0xd750, 0x61b9, 0xda26, 0xda25, 0x7960, 0x7a5c, 0x6ef4,
+  0x72b9, 0x5e28, 0x6b7b, 0xcb22, 0x702c, 0x68e1, 0xde22, 0x70a4,
+  0x6327, 0xb96a, 0xd43c, 0xd43b, 0x61ba, 0xda28, 0x7d31, 0x6328,
+  0x702d, 0x7634, 0x70a5, 0x6329, 0xb96b, 0x56bc, 0x733d, 0x5cc0,
+  0x5cc1, 0xd43d, 0x733c, 0x61bb, 0x7638, 0x7636, 0x7637, 0x7635,
+  0x65ac, 0x7828, 0xdc2a, 0x6bc3, 0x6bc2, 0x6bc5, 0x6bc4, 0x7a5d,
+  0x6db9, 0x6dbb, 0x6dba, 0x7b52, 0x6ef5, 0xe029, 0x70a6, 0x70a7,
+  0x7c5c, 0x71d3, 0x71ed, 0x7d42, 0x41d5, 0x5cc2, 0x61bc, 0x68e2,
+  0x48f5, 0xa772, 0x61bd, 0x65ae, 0x65ad, 0xda29, 0xdc2d, 0xdc2e,
+  0xdf3c, 0x70a8, 0x7c7d, 0xe15f, 0x71d4, 0x71ee, 0x676f, 0x56bd,
+  0x56be, 0x5cc3, 0x6770, 0xc56a, 0x7829, 0x65af, 0xdc30, 0x6dbd,
+  0x7b53, 0x6dbe, 0x6dbc, 0x70a9, 0xe160, 0x70f7, 0x6771, 0x61c0,
+  0x61bf, 0x61be, 0x65b0, 0xda2b, 0xda2a, 0x65b4, 0x65b3, 0x65b2,
+  0x65b1, 0x782a, 0x68e3, 0x6bc7, 0x7a5e, 0x6bc6, 0x6dbf, 0x6ef8,
+  0x6ef7, 0x7c30, 0x6ef6, 0x70ac, 0x70ab, 0x70aa, 0xe06d, 0x6b7c,
+  0x5cc4, 0x7639, 0x68e4, 0x68e5, 0x6ef9, 0x70ad, 0xe13b, 0x70f8,
+  0x71d5, 0x72a9, 0x72c3, 0x6b7d, 0x763a, 0x65b5, 0x68e6, 0x6dc0,
+  0x70ae, 0xa370, 0x702f, 0xd43e, 0x61c1, 0x65b6, 0x68e7, 0x68e8,
+  0x68e9, 0x6bcc, 0xde24, 0x6bc8, 0x7b54, 0x6bcb, 0x6bca, 0x7a5f,
+  0x6bc9, 0x7a61, 0x7a60, 0x6dc2, 0x6dc1, 0x7b55, 0x7b56, 0xdf3e,
+  0x7c32, 0x6efa, 0x7c31, 0x70b1, 0x70b2, 0x70b0, 0x70af, 0x7d21,
+  0x70f9, 0x70fa, 0x70fb, 0x7c7e, 0x71d6, 0x71d9, 0x71d8, 0x71d7,
+  0xe233, 0x72c2, 0x733e, 0xd755, 0x7832, 0x6bcd, 0x6dc3, 0xe02b,
+  0x7c33, 0x6efb, 0xe242, 0x72c4, 0x733f, 0xde47, 0x61c2, 0xdf3f,
+  0x6efc, 0xe161, 0x71ef, 0xe177, 0x212b, 0x2136, 0x2138, 0x2140,
+  0x2141, 0x2144, 0x2145, 0x2148, 0x2149, 0x214c, 0x214d, 0x2150,
+  0x2151, 0x2154, 0x2155, 0x2158, 0x2159, 0x215c, 0x215d, 0x2227,
+  0x2228, 0x222b, 0x222c, 0x2229, 0x222a, 0x212e, 0x212f, 0x2130,
+  0x2132, 0x2133, 0x2134, 0x2135, 0x215e, 0x215f, 0x2160, 0x2161,
+  0x2162, 0x2163, 0x222d, 0x222e, 0x222f, 0x223f, 0x2240, 0x2241,
+  0x2243, 0x2242, 0x2262, 0x226c, 0x226d, 0x226e, 0x212a, 0x216c,
+  0x2263, 0x2268, 0x216d, 0x213e, 0x213f, 0x216e, 0x2230, 0x2122,
+  0x2231, 0x2125, 0x225f, 0x2421, 0x2422, 0x2423, 0x2424, 0x2425,
+  0x2426, 0x2427, 0x2428, 0x2429, 0x242a, 0x2128, 0x2127, 0x2236,
+  0x2238, 0x2237, 0x2129, 0x2269, 0x2441, 0x2442, 0x2443, 0x2444,
+  0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244a, 0x244b, 0x244c,
+  0x244d, 0x244e, 0x244f, 0x2450, 0x2451, 0x2452, 0x2453, 0x2454,
+  0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245a, 0x2260, 0x2225,
+  0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, 0x2462,
+  0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
+  0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
+  0x2473, 0x2474, 0x2142, 0x225e, 0x2143, 0x2266, 0x2267, 0x2264,
+};
+
+static const Summary16 cns11643_inv_uni2indx_page00[16] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0080 }, {    1, 0x0083 },
+  {    4, 0x0000 }, {    4, 0x0080 }, {    5, 0x0000 }, {    5, 0x0080 },
+};
+static const Summary16 cns11643_inv_uni2indx_page02[29] = {
+  /* 0x0200 */
+  {    6, 0x0000 }, {    6, 0x0000 }, {    6, 0x0000 }, {    6, 0x0000 },
+  {    6, 0x0000 }, {    6, 0x0000 }, {    6, 0x0000 }, {    6, 0x0000 },
+  {    6, 0x0000 }, {    6, 0x0000 }, {    6, 0x0000 }, {    6, 0x0000 },
+  {    6, 0x0e80 }, {   10, 0x0200 }, {   11, 0x0000 }, {   11, 0x0000 },
+  /* 0x0300 */
+  {   11, 0x0000 }, {   11, 0x0000 }, {   11, 0x0000 }, {   11, 0x0000 },
+  {   11, 0x0000 }, {   11, 0x0000 }, {   11, 0x0000 }, {   11, 0x0000 },
+  {   11, 0x0000 }, {   11, 0xfffe }, {   26, 0x03fb }, {   35, 0xfffe },
+  {   50, 0x03fb },
+};
+static const Summary16 cns11643_inv_uni2indx_page20[44] = {
+  /* 0x2000 */
+  {   59, 0x0000 }, {   59, 0x3358 }, {   66, 0x0060 }, {   68, 0x4824 },
+  {   72, 0x0000 }, {   72, 0x0000 }, {   72, 0x0000 }, {   72, 0x0000 },
+  {   72, 0x0000 }, {   72, 0x0000 }, {   72, 0x0000 }, {   72, 0x0000 },
+  {   72, 0x0000 }, {   72, 0x0000 }, {   72, 0x0000 }, {   72, 0x0000 },
+  /* 0x2100 */
+  {   72, 0x0228 }, {   75, 0x0000 }, {   75, 0x0000 }, {   75, 0x0000 },
+  {   75, 0x0000 }, {   75, 0x0000 }, {   75, 0x03ff }, {   85, 0x03ff },
+  {   95, 0x0000 }, {   95, 0x03cf }, {  103, 0x0000 }, {  103, 0x0000 },
+  {  103, 0x0000 }, {  103, 0x0000 }, {  103, 0x0000 }, {  103, 0x0000 },
+  /* 0x2200 */
+  {  103, 0x0000 }, {  103, 0xc420 }, {  107, 0x4e01 }, {  112, 0x1030 },
+  {  115, 0x0000 }, {  115, 0x0004 }, {  116, 0x00c3 }, {  120, 0x0000 },
+  {  120, 0x0000 }, {  120, 0x0000 }, {  120, 0x0020 }, {  121, 0x8000 },
+};
+static const Summary16 cns11643_inv_uni2indx_page24[37] = {
+  /* 0x2400 */
+  {  122, 0xffff }, {  138, 0xffff }, {  154, 0x0002 }, {  155, 0x0000 },
+  {  155, 0x0000 }, {  155, 0x0000 }, {  155, 0x03ff }, {  165, 0x3ff0 },
+  {  175, 0x0000 }, {  175, 0x0000 }, {  175, 0x0000 }, {  175, 0x0000 },
+  {  175, 0x0000 }, {  175, 0x0000 }, {  175, 0x0000 }, {  175, 0x0000 },
+  /* 0x2500 */
+  {  175, 0x1005 }, {  178, 0x1111 }, {  182, 0x1010 }, {  184, 0x1010 },
+  {  186, 0x0000 }, {  186, 0x4001 }, {  188, 0xe402 }, {  193, 0x000f },
+  {  197, 0xfffe }, {  212, 0x0030 }, {  214, 0x0003 }, {  216, 0x300c },
+  {  220, 0xc8c0 }, {  225, 0x0000 }, {  225, 0x003c }, {  229, 0x0000 },
+  /* 0x2600 */
+  {  229, 0x0260 }, {  232, 0x0000 }, {  232, 0x0000 }, {  232, 0x0000 },
+  {  232, 0x0007 },
+};
+static const Summary16 cns11643_inv_uni2indx_page30[62] = {
+  /* 0x3000 */
+  {  235, 0xff0f }, {  247, 0x6037 }, {  254, 0x03fe }, {  263, 0x0000 },
+  {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 },
+  {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 },
+  {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0800 },
+  /* 0x3100 */
+  {  264, 0xffe0 }, {  275, 0xffff }, {  291, 0x03ff }, {  301, 0x0000 },
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 },
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 },
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 },
+  /* 0x3200 */
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 },
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0000 },
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0008 }, {  302, 0x0000 },
+  {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 },
+  /* 0x3300 */
+  {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 },
+  {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 },
+  {  302, 0xc000 }, {  304, 0x7000 }, {  307, 0x0002 }, {  308, 0x0000 },
+  {  308, 0x4010 }, {  310, 0x0026 },
+};
+static const Summary16 cns11643_inv_uni2indx_page4e[1307] = {
+  /* 0x4e00 */
+  {  313, 0xffbb }, {  327, 0xc373 }, {  336, 0x6d57 }, {  346, 0xbb4f },
+  {  357, 0xebec }, {  368, 0xf3dc }, {  379, 0x030c }, {  383, 0xc20a },
+  {  388, 0xfbff }, {  403, 0xfbbe }, {  416, 0xf97e }, {  428, 0x56cf },
+  {  438, 0xffff }, {  454, 0xf7f0 }, {  465, 0xc3fb }, {  476, 0xbfff },
+  /* 0x4f00 */
+  {  491, 0xefff }, {  506, 0x37ff }, {  519, 0xb104 }, {  524, 0xffff },
+  {  540, 0xffff }, {  556, 0xffff }, {  572, 0xfe9f }, {  585, 0xfffd },
+  {  600, 0xffff }, {  616, 0xfdff }, {  631, 0xc00f }, {  637, 0xcfff },
+  {  651, 0xffff }, {  667, 0xffff }, {  683, 0xd02b }, {  690, 0xffff },
+  /* 0x5000 */
+  {  706, 0xfbfd }, {  720, 0xffff }, {  736, 0xffff }, {  752, 0x13ef },
+  {  762, 0xffff }, {  778, 0xffff }, {  794, 0xff7f }, {  809, 0x3fff },
+  {  823, 0xfbaf }, {  836, 0x7ff6 }, {  849, 0xfc0c }, {  857, 0xffff },
+  {  873, 0xfffe }, {  888, 0x7ffb }, {  902, 0xffff }, {  918, 0xfbfb },
+  /* 0x5100 */
+  {  932, 0x7fff }, {  947, 0xfdff }, {  962, 0xeff7 }, {  976, 0xffff },
+  {  992, 0x7ffb }, { 1006, 0xfef7 }, { 1020, 0x7fff }, { 1035, 0x53e6 },
+  { 1044, 0xbef5 }, { 1056, 0xe3ff }, { 1069, 0x157f }, { 1079, 0x73ff },
+  { 1092, 0xfffe }, { 1107, 0xffdf }, { 1122, 0x313f }, { 1131, 0x677b },
+  /* 0x5200 */
+  { 1142, 0xdffb }, { 1156, 0xf1ff }, { 1169, 0xcffb }, { 1182, 0x1fff },
+  { 1195, 0xfffa }, { 1209, 0xfefc }, { 1222, 0xffbf }, { 1237, 0xfffd },
+  { 1252, 0x7fdf }, { 1266, 0xffdb }, { 1280, 0x7f49 }, { 1290, 0xda38 },
+  { 1298, 0xf6bf }, { 1311, 0xebff }, { 1325, 0xeedf }, { 1338, 0xfdbf },
+  /* 0x5300 */
+  { 1352, 0xeff9 }, { 1365, 0xf6f7 }, { 1378, 0xa4af }, { 1387, 0xffff },
+  { 1403, 0xbffb }, { 1417, 0xf5bf }, { 1430, 0xf2cb }, { 1440, 0xbfff },
+  { 1455, 0xce55 }, { 1464, 0xf7dc }, { 1476, 0x7ff1 }, { 1488, 0x4edf },
+  { 1499, 0x7f3e }, { 1511, 0xbef5 }, { 1523, 0xff7f }, { 1538, 0x9bff },
+  /* 0x5400 */
+  { 1551, 0xfffb }, { 1566, 0xff6f }, { 1580, 0xffff }, { 1596, 0xffff },
+  { 1612, 0xffff }, { 1628, 0x8413 }, { 1633, 0xbfff }, { 1648, 0xffff },
+  { 1664, 0xfff7 }, { 1679, 0xc57f }, { 1690, 0xffff }, { 1706, 0xffff },
+  { 1722, 0xf7ff }, { 1737, 0x4441 }, { 1741, 0xeff7 }, { 1755, 0xbfff },
+  /* 0x5500 */
+  { 1770, 0xffff }, { 1786, 0x079f }, { 1795, 0xfec0 }, { 1804, 0xdfff },
+  { 1819, 0xff7b }, { 1833, 0xf7ff }, { 1848, 0x057e }, { 1856, 0xfce0 },
+  { 1865, 0xffff }, { 1881, 0xfffe }, { 1896, 0xffff }, { 1912, 0x883e },
+  { 1919, 0xffff }, { 1935, 0xfeff }, { 1950, 0x87fe }, { 1961, 0xffc4 },
+  /* 0x5600 */
+  { 1972, 0xfbff }, { 1987, 0xf9ff }, { 2001, 0xffc0 }, { 2011, 0xefff },
+  { 2026, 0xfff7 }, { 2041, 0xc7df }, { 2053, 0xffff }, { 2069, 0xebdf },
+  { 2082, 0xf6ff }, { 2096, 0xfff9 }, { 2110, 0xfde1 }, { 2121, 0x78fc },
+  { 2131, 0x3fef }, { 2144, 0xed9e }, { 2155, 0xfefb }, { 2169, 0xbfcf },
+  /* 0x5700 */
+  { 2182, 0xffbf }, { 2197, 0xfdfc }, { 2210, 0xf71f }, { 2222, 0xf87f },
+  { 2234, 0xffff }, { 2250, 0x81ff }, { 2260, 0xeffe }, { 2274, 0xb9ff },
+  { 2287, 0xf80f }, { 2296, 0xffff }, { 2312, 0x51ff }, { 2323, 0xffe0 },
+  { 2334, 0xffff }, { 2350, 0xf837 }, { 2360, 0xf7ff }, { 2375, 0xffff },
+  /* 0x5800 */
+  { 2391, 0x7fff }, { 2406, 0xff11 }, { 2416, 0xf7ff }, { 2431, 0xffff },
+  { 2447, 0xff00 }, { 2455, 0xffff }, { 2471, 0xbf7f }, { 2485, 0xfffe },
+  { 2500, 0xffff }, { 2516, 0xf1ff }, { 2529, 0xffff }, { 2545, 0xfcbf },
+  { 2558, 0xe7ff }, { 2572, 0xff7f }, { 2587, 0xdbdd }, { 2599, 0xfebf },
+  /* 0x5900 */
+  { 2613, 0xff7e }, { 2627, 0x97f5 }, { 2638, 0xfefd }, { 2652, 0x71d7 },
+  { 2662, 0xdfb1 }, { 2673, 0x7dbf }, { 2686, 0x7fdf }, { 2700, 0xffff },
+  { 2716, 0xf67f }, { 2729, 0xffdd }, { 2743, 0xf1ff }, { 2756, 0xffff },
+  { 2772, 0xffff }, { 2788, 0xffff }, { 2804, 0xffff }, { 2820, 0xffff },
+  /* 0x5a00 */
+  { 2836, 0xbe1f }, { 2847, 0xfffe }, { 2862, 0xfe7f }, { 2876, 0xffea },
+  { 2889, 0xffff }, { 2905, 0xffff }, { 2921, 0xffff }, { 2937, 0xffab },
+  { 2950, 0xffff }, { 2966, 0xffff }, { 2982, 0xdfff }, { 2997, 0xffff },
+  { 3013, 0xffff }, { 3029, 0xffe1 }, { 3041, 0xffff }, { 3057, 0xfff9 },
+  /* 0x5b00 */
+  { 3071, 0xffff }, { 3087, 0xffff }, { 3103, 0xffff }, { 3119, 0xffbf },
+  { 3134, 0xfffd }, { 3149, 0xbdfb }, { 3162, 0x5e3d }, { 3172, 0xffff },
+  { 3188, 0xfbff }, { 3203, 0xfffc }, { 3217, 0x79fc }, { 3228, 0x9bf9 },
+  { 3239, 0x7dff }, { 3253, 0xdfff }, { 3268, 0xdfff }, { 3283, 0xe7ef },
+  /* 0x5c00 */
+  { 3296, 0xfffb }, { 3311, 0xcf77 }, { 3323, 0x9d35 }, { 3332, 0xffcb },
+  { 3345, 0xfff3 }, { 3359, 0xfb7f }, { 3373, 0xffbf }, { 3388, 0x5f1a },
+  { 3397, 0xff71 }, { 3409, 0xf03f }, { 3419, 0xffff }, { 3435, 0x0ffb },
+  { 3446, 0xffc2 }, { 3457, 0xffdf }, { 3472, 0xff66 }, { 3484, 0xaffb },
+  /* 0x5d00 */
+  { 3497, 0xffc3 }, { 3509, 0xffff }, { 3525, 0xd7ff }, { 3539, 0xffff },
+  { 3555, 0xffff }, { 3571, 0x4aaf }, { 3580, 0xfbfd }, { 3594, 0xff86 },
+  { 3605, 0xbfdf }, { 3619, 0xffff }, { 3635, 0xffdf }, { 3650, 0x7fbf },
+  { 3664, 0xbfdf }, { 3678, 0xe9ff }, { 3691, 0x49ff }, { 3702, 0xeeff },
+  /* 0x5e00 */
+  { 3716, 0x5f5d }, { 3727, 0xeffe }, { 3741, 0xff3f }, { 3755, 0x67fd },
+  { 3767, 0xfdff }, { 3782, 0xffbc }, { 3795, 0xffcf }, { 3809, 0xfffd },
+  { 3824, 0xbf9f }, { 3837, 0x3fe5 }, { 3848, 0xffff }, { 3864, 0xefff },
+  { 3879, 0xdff7 }, { 3893, 0xffff }, { 3909, 0xd7ef }, { 3922, 0xffff },
+  /* 0x5f00 */
+  { 3938, 0xfdfe }, { 3952, 0xedbe }, { 3964, 0xe3fe }, { 3976, 0x5fff },
+  { 3990, 0xff5d }, { 4003, 0x6fff }, { 4017, 0xfeff }, { 4032, 0xf3df },
+  { 4045, 0xdfff }, { 4060, 0xdbcf }, { 4072, 0xffe3 }, { 4085, 0xfbfc },
+  { 4098, 0xf6af }, { 4110, 0xffff }, { 4126, 0xfffb }, { 4141, 0xffff },
+  /* 0x6000 */
+  { 4157, 0xff81 }, { 4167, 0x7eff }, { 4181, 0xffff }, { 4197, 0x22ff },
+  { 4207, 0xfeff }, { 4222, 0xff7f }, { 4237, 0xffff }, { 4253, 0xd03d },
+  { 4261, 0x7ffb }, { 4275, 0xfffd }, { 4290, 0x47df }, { 4301, 0xffff },
+  { 4317, 0xfffb }, { 4332, 0xffff }, { 4348, 0x46ff }, { 4359, 0xffff },
+  /* 0x6100 */
+  { 4375, 0xfffb }, { 4390, 0xff7f }, { 4405, 0xdf8f }, { 4417, 0xfddf },
+  { 4431, 0xffff }, { 4447, 0xfffc }, { 4461, 0xdfff }, { 4476, 0x7fff },
+  { 4491, 0xffef }, { 4506, 0xffff }, { 4522, 0xffde }, { 4536, 0xffff },
+  { 4552, 0xffff }, { 4568, 0xff41 }, { 4578, 0x6ffd }, { 4591, 0xffef },
+  /* 0x6200 */
+  { 4606, 0xf7bf }, { 4620, 0xcf7f }, { 4633, 0xffbf }, { 4648, 0xffff },
+  { 4664, 0xefef }, { 4678, 0xff9f }, { 4692, 0xe0ff }, { 4703, 0xffff },
+  { 4719, 0xffff }, { 4735, 0x7bfe }, { 4748, 0xffe0 }, { 4759, 0xffff },
+  { 4775, 0xfff7 }, { 4790, 0xffff }, { 4806, 0xfc13 }, { 4815, 0xffff },
+  /* 0x6300 */
+  { 4831, 0xfbbf }, { 4845, 0x8afb }, { 4855, 0xff02 }, { 4864, 0xffff },
+  { 4880, 0xffff }, { 4896, 0x3fff }, { 4910, 0xffe0 }, { 4921, 0xffff },
+  { 4937, 0xffff }, { 4953, 0xfbdf }, { 4967, 0xffbf }, { 4982, 0xe407 },
+  { 4989, 0xffff }, { 5005, 0xffef }, { 5020, 0xefff }, { 5035, 0x43ff },
+  /* 0x6400 */
+  { 5046, 0xffc0 }, { 5056, 0xffff }, { 5072, 0xffff }, { 5088, 0xffff },
+  { 5104, 0xf8cb }, { 5114, 0xfbff }, { 5129, 0xfff7 }, { 5144, 0xffff },
+  { 5160, 0xffef }, { 5175, 0xffff }, { 5191, 0xffff }, { 5207, 0xfa1f },
+  { 5218, 0xefff }, { 5233, 0x9fff }, { 5247, 0xffff }, { 5263, 0xffdf },
+  /* 0x6500 */
+  { 5278, 0xfffb }, { 5293, 0xfbfb }, { 5307, 0xffff }, { 5323, 0xebfe },
+  { 5336, 0xef7f }, { 5350, 0xf7fa }, { 5363, 0xbdff }, { 5377, 0x9fff },
+  { 5391, 0x7bbf }, { 5404, 0xfef7 }, { 5418, 0xfdf7 }, { 5432, 0xffed },
+  { 5446, 0xfefe }, { 5460, 0xfccf }, { 5472, 0xffff }, { 5488, 0xfc7f },
+  /* 0x6600 */
+  { 5501, 0xffff }, { 5517, 0xfdbf }, { 5531, 0xfbff }, { 5546, 0x1fff },
+  { 5559, 0xffff }, { 5575, 0xfe87 }, { 5586, 0xffff }, { 5602, 0xffdf },
+  { 5617, 0xffd3 }, { 5630, 0xb7ff }, { 5644, 0xff77 }, { 5658, 0xffff },
+  { 5674, 0xfffb }, { 5689, 0xfff7 }, { 5704, 0xfbfb }, { 5718, 0xd3fd },
+  /* 0x6700 */
+  { 5730, 0xff7b }, { 5744, 0xeffd }, { 5758, 0xfddf }, { 5772, 0xfffe },
+  { 5787, 0xfff0 }, { 5799, 0xffff }, { 5815, 0xbc03 }, { 5822, 0xffff },
+  { 5838, 0xfeff }, { 5853, 0xb7ff }, { 5867, 0xc00c }, { 5871, 0x9fff },
+  { 5885, 0xffff }, { 5901, 0xffff }, { 5917, 0xfffc }, { 5931, 0xdfff },
+  /* 0x6800 */
+  { 5946, 0x0023 }, { 5949, 0xfffc }, { 5963, 0xffff }, { 5979, 0x7fff },
+  { 5994, 0xfbff }, { 6009, 0x037f }, { 6018, 0xf800 }, { 6023, 0xffff },
+  { 6039, 0xdeff }, { 6053, 0xffff }, { 6069, 0xffff }, { 6085, 0x03ff },
+  { 6095, 0xfffa }, { 6109, 0xfdff }, { 6124, 0xffff }, { 6140, 0xffff },
+  /* 0x6900 */
+  { 6156, 0xffff }, { 6172, 0x51bf }, { 6182, 0xc420 }, { 6186, 0xfbff },
+  { 6201, 0xffff }, { 6217, 0xffff }, { 6233, 0xffff }, { 6249, 0x3ffb },
+  { 6262, 0xe06c }, { 6269, 0xffff }, { 6285, 0xffff }, { 6301, 0xfaff },
+  { 6315, 0xff7f }, { 6330, 0x037f }, { 6339, 0xfffe }, { 6354, 0xffdf },
+  /* 0x6a00 */
+  { 6369, 0xfff7 }, { 6384, 0xffff }, { 6400, 0x17ff }, { 6412, 0xfffc },
+  { 6426, 0xffff }, { 6442, 0xffff }, { 6458, 0xffdf }, { 6473, 0xe043 },
+  { 6479, 0xf7ff }, { 6494, 0xffff }, { 6510, 0xfdff }, { 6525, 0xffff },
+  { 6541, 0xf9ff }, { 6555, 0xffbf }, { 6570, 0xffaf }, { 6584, 0xff1b },
+  /* 0x6b00 */
+  { 6596, 0x8fdf }, { 6608, 0x7fdf }, { 6622, 0xfdef }, { 6636, 0xffff },
+  { 6652, 0xffff }, { 6668, 0xfbff }, { 6683, 0xffff }, { 6699, 0xcfde },
+  { 6711, 0xff5f }, { 6725, 0xdbf3 }, { 6737, 0xecff }, { 6750, 0xfcfd },
+  { 6763, 0xfffb }, { 6778, 0x4ddf }, { 6789, 0xbfff }, { 6804, 0xff9d },
+  /* 0x6c00 */
+  { 6817, 0xbf7f }, { 6831, 0xbf7b }, { 6844, 0xfdfb }, { 6858, 0xdbdf },
+  { 6871, 0xfc7f }, { 6884, 0xffff }, { 6900, 0xffe3 }, { 6913, 0xffff },
+  { 6929, 0xffff }, { 6945, 0xffff }, { 6961, 0xfc07 }, { 6970, 0xffdf },
+  { 6985, 0xf7ff }, { 7000, 0xffff }, { 7016, 0xffbf }, { 7031, 0x823f },
+  /* 0x6d00 */
+  { 7039, 0xffff }, { 7055, 0xffff }, { 7071, 0xffff }, { 7087, 0xffff },
+  { 7103, 0x0037 }, { 7108, 0xffc0 }, { 7118, 0xffff }, { 7134, 0xffff },
+  { 7150, 0xffff }, { 7166, 0x0fff }, { 7178, 0xfc00 }, { 7184, 0xffff },
+  { 7200, 0xffff }, { 7216, 0xffff }, { 7232, 0xffff }, { 7248, 0xffff },
+  /* 0x6e00 */
+  { 7264, 0x17ff }, { 7276, 0xff84 }, { 7286, 0xffff }, { 7302, 0xff7f },
+  { 7317, 0xffff }, { 7333, 0xffff }, { 7349, 0xffff }, { 7365, 0x4bff },
+  { 7377, 0xe301 }, { 7383, 0xffdf }, { 7398, 0xdfff }, { 7413, 0xffff },
+  { 7429, 0xffff }, { 7445, 0x3f7f }, { 7458, 0xfb48 }, { 7467, 0xffff },
+  /* 0x6f00 */
+  { 7483, 0xffff }, { 7499, 0xffbf }, { 7514, 0xffef }, { 7529, 0xffff },
+  { 7545, 0xc41f }, { 7553, 0xffbf }, { 7568, 0xfeff }, { 7583, 0xffff },
+  { 7599, 0xfbf7 }, { 7613, 0xc0ff }, { 7623, 0xffff }, { 7639, 0xffff },
+  { 7655, 0xffdf }, { 7670, 0xfff9 }, { 7684, 0xffff }, { 7700, 0xfcff },
+  /* 0x7000 */
+  { 7714, 0xffff }, { 7730, 0xfffb }, { 7745, 0x9fff }, { 7759, 0xffff },
+  { 7775, 0x3fff }, { 7789, 0xeffe }, { 7803, 0xcfff }, { 7817, 0x7fff },
+  { 7832, 0xfffe }, { 7847, 0x877f }, { 7858, 0xffbf }, { 7873, 0x4fff },
+  { 7886, 0xfdf0 }, { 7897, 0xffff }, { 7913, 0xc01f }, { 7920, 0xffff },
+  /* 0x7100 */
+  { 7936, 0xffdf }, { 7951, 0xfe89 }, { 7961, 0xfdff }, { 7976, 0x05ff },
+  { 7986, 0xfffe }, { 8001, 0xffdf }, { 8016, 0xffff }, { 8032, 0xf915 },
+  { 8041, 0xffff }, { 8057, 0xfe97 }, { 8069, 0xffff }, { 8085, 0xffef },
+  { 8100, 0xdfff }, { 8115, 0x9f7f }, { 8128, 0xffff }, { 8144, 0xff1f },
+  /* 0x7200 */
+  { 8157, 0xbdff }, { 8171, 0xfeff }, { 8186, 0x77ff }, { 8200, 0xff65 },
+  { 8212, 0xdfd7 }, { 8225, 0xefef }, { 8239, 0xf7ff }, { 8254, 0xffdd },
+  { 8268, 0x7bff }, { 8282, 0x6fff }, { 8296, 0xdffe }, { 8310, 0xfe77 },
+  { 8323, 0xfeff }, { 8338, 0x9fdf }, { 8351, 0x3fff }, { 8365, 0xfff8 },
+  /* 0x7300 */
+  { 8378, 0xddc7 }, { 8389, 0x7fcf }, { 8402, 0xfffc }, { 8416, 0xddff },
+  { 8430, 0xfe7f }, { 8444, 0xefbf }, { 8458, 0xdfe7 }, { 8471, 0xfdef },
+  { 8485, 0xffff }, { 8501, 0xf1fc }, { 8512, 0xbfff }, { 8527, 0xfbfc },
+  { 8540, 0xffff }, { 8556, 0xfffd }, { 8571, 0x7fff }, { 8586, 0xfff8 },
+  /* 0x7400 */
+  { 8599, 0x3fff }, { 8613, 0xfff0 }, { 8625, 0xffff }, { 8641, 0xf77f },
+  { 8655, 0xffff }, { 8671, 0xffff }, { 8687, 0xffff }, { 8703, 0xfe7f },
+  { 8717, 0x1fff }, { 8730, 0xfdfd }, { 8744, 0xffef }, { 8759, 0xffef },
+  { 8774, 0xffbf }, { 8789, 0xfffb }, { 8804, 0xfb7f }, { 8818, 0xeaf8 },
+  /* 0x7500 */
+  { 8828, 0xffdf }, { 8843, 0xfdff }, { 8858, 0xff7e }, { 8872, 0xef8f },
+  { 8884, 0xffd7 }, { 8898, 0xfff1 }, { 8911, 0xfdfe }, { 8925, 0xe7c3 },
+  { 8935, 0xdedb }, { 8947, 0x6f3f }, { 8959, 0x0dfc }, { 8968, 0xff7f },
+  { 8983, 0xfcbf }, { 8996, 0xefbf }, { 9010, 0xe0ff }, { 9021, 0xffff },
+  /* 0x7600 */
+  { 9037, 0xff8f }, { 9050, 0xfe7b }, { 9063, 0xb3ff }, { 9076, 0x3dff },
+  { 9089, 0xd3fc }, { 9100, 0x9fcf }, { 9112, 0xf7b7 }, { 9125, 0xfb67 },
+  { 9137, 0xcfdf }, { 9150, 0x7ffd }, { 9164, 0xee7a }, { 9175, 0xefb9 },
+  { 9187, 0x7fff }, { 9202, 0xfefc }, { 9215, 0xfefe }, { 9229, 0xffbf },
+  /* 0x7700 */
+  { 9244, 0xcfba }, { 9255, 0xef6f }, { 9268, 0xafff }, { 9282, 0xffff },
+  { 9298, 0xfffd }, { 9313, 0xff7c }, { 9326, 0xffff }, { 9342, 0xfff2 },
+  { 9355, 0xffbf }, { 9370, 0xffe3 }, { 9383, 0xbfff }, { 9398, 0xffff },
+  { 9414, 0xf6f7 }, { 9427, 0xffbb }, { 9441, 0xf3ed }, { 9453, 0x3fbf },
+  /* 0x7800 */
+  { 9466, 0xfffc }, { 9480, 0xa03f }, { 9488, 0xffff }, { 9504, 0x01ff },
+  { 9513, 0xffec }, { 9526, 0xf007 }, { 9533, 0xff7d }, { 9547, 0xff43 },
+  { 9558, 0xffff }, { 9574, 0xc7ff }, { 9587, 0xffff }, { 9603, 0x5d1f },
+  { 9613, 0xffff }, { 9629, 0xfc7f }, { 9642, 0xbfaf }, { 9655, 0xff9f },
+  /* 0x7900 */
+  { 9669, 0x7ff6 }, { 9682, 0x7fbf }, { 9696, 0xfffb }, { 9711, 0xf7a7 },
+  { 9723, 0x9ff7 }, { 9736, 0xffff }, { 9752, 0x7fff }, { 9767, 0xf67f },
+  { 9780, 0xef9f }, { 9793, 0xfdfd }, { 9807, 0xfff7 }, { 9822, 0xefff },
+  { 9837, 0xeffb }, { 9851, 0xffff }, { 9867, 0x7fff }, { 9882, 0x8fef },
+  /* 0x7a00 */
+  { 9894, 0xffbd }, { 9908, 0xffbf }, { 9923, 0xff45 }, { 9934, 0xff87 },
+  { 9946, 0xfff7 }, { 9961, 0x9dd8 }, { 9970, 0xffd7 }, { 9984, 0xff7f },
+  { 9999, 0x9fff }, { 10013, 0xc7ff }, { 10026, 0xdf1f }, { 10038, 0xedff },
+  { 10052, 0xbfb7 }, { 10065, 0xbf3f }, { 10078, 0xfeff }, { 10093, 0xffef },
+  /* 0x7b00 */
+  { 10108, 0xef73 }, { 10120, 0xffdf }, { 10135, 0xfd7f }, { 10149, 0x097f },
+  { 10158, 0xffff }, { 10174, 0x41ff }, { 10184, 0xfbff }, { 10199, 0x03ff },
+  { 10209, 0xfdfe }, { 10223, 0xfbff }, { 10238, 0xf01b }, { 10246, 0xc3be },
+  { 10256, 0x7ed3 }, { 10267, 0xff30 }, { 10277, 0x3fff }, { 10291, 0xffdf },
+  /* 0x7c00 */
+  { 10306, 0xffef }, { 10321, 0xff07 }, { 10332, 0x7fff }, { 10347, 0xfbb9 },
+  { 10359, 0x3fb9 }, { 10370, 0xffdb }, { 10384, 0xfefd }, { 10398, 0xbffe },
+  { 10412, 0x7ffb }, { 10426, 0xdffe }, { 10440, 0xc1ff }, { 10451, 0xffbf },
+  { 10466, 0x7ffc }, { 10479, 0xfeff }, { 10494, 0xd5cf }, { 10505, 0xfdff },
+  /* 0x7d00 */
+  { 10520, 0xffff }, { 10536, 0xffff }, { 10552, 0xfb37 }, { 10564, 0xffff },
+  { 10580, 0xf7ff }, { 10595, 0xffff }, { 10611, 0xffdf }, { 10626, 0xff7f },
+  { 10641, 0xfffb }, { 10656, 0xf3ff }, { 10670, 0xffdf }, { 10685, 0xffff },
+  { 10701, 0xfff7 }, { 10716, 0xffc6 }, { 10728, 0xffff }, { 10744, 0xffff },
+  /* 0x7e00 */
+  { 10760, 0xff0f }, { 10772, 0xfeff }, { 10787, 0xfeff }, { 10802, 0xffff },
+  { 10818, 0xb3ff }, { 10831, 0xffff }, { 10847, 0xff4f }, { 10860, 0xffff },
+  { 10876, 0xfff7 }, { 10891, 0x5ffe }, { 10904, 0x0000 }, { 10904, 0x0000 },
+  { 10904, 0x0000 }, { 10904, 0x0000 }, { 10904, 0x0000 }, { 10904, 0x0000 },
+  /* 0x7f00 */
+  { 10904, 0x0000 }, { 10904, 0x0000 }, { 10904, 0x0000 }, { 10904, 0xef40 },
+  { 10912, 0xfdfa }, { 10925, 0xfb33 }, { 10936, 0xffef }, { 10951, 0xffef },
+  { 10966, 0xffe8 }, { 10978, 0x7efe }, { 10991, 0xf3ff }, { 11005, 0xffff },
+  { 11021, 0xfeff }, { 11036, 0xf8ff }, { 11049, 0xffef }, { 11064, 0xffff },
+  /* 0x8000 */
+  { 11080, 0xfdfb }, { 11094, 0xfff7 }, { 11109, 0xdf5a }, { 11120, 0xfaf9 },
+  { 11132, 0xc7f9 }, { 11143, 0xfdc7 }, { 11155, 0xddf3 }, { 11167, 0xffff },
+  { 11183, 0xfef4 }, { 11195, 0xbfff }, { 11210, 0xfffe }, { 11225, 0x057f },
+  { 11234, 0xfffc }, { 11248, 0xffff }, { 11264, 0xe07f }, { 11274, 0xffff },
+  /* 0x8100 */
+  { 11290, 0x07ff }, { 11301, 0xeff0 }, { 11312, 0xfebe }, { 11325, 0x6e13 },
+  { 11333, 0xffff }, { 11349, 0xf83f }, { 11360, 0xfeff }, { 11375, 0xa7ff },
+  { 11388, 0xbfdf }, { 11402, 0xfffc }, { 11416, 0xffcf }, { 11430, 0xffbf },
+  { 11445, 0xf7fd }, { 11459, 0xeff7 }, { 11473, 0xf7ef }, { 11487, 0xdfdc },
+  /* 0x8200 */
+  { 11499, 0x7fbf }, { 11513, 0xff7f }, { 11528, 0xbfb7 }, { 11541, 0xb7fc },
+  { 11553, 0xdeb7 }, { 11565, 0xdfef }, { 11579, 0xff7e }, { 11593, 0xf9f6 },
+  { 11605, 0xfc79 }, { 11616, 0xff3f }, { 11630, 0xffff }, { 11646, 0x7fff },
+  { 11661, 0x021d }, { 11666, 0xfbff }, { 11681, 0xffff }, { 11697, 0x7fff },
+  /* 0x8300 */
+  { 11712, 0x7bff }, { 11726, 0xfbc0 }, { 11735, 0xbfff }, { 11750, 0xdffe },
+  { 11764, 0xffff }, { 11780, 0x01df }, { 11788, 0x0008 }, { 11789, 0xfffe },
+  { 11804, 0xfffb }, { 11819, 0xffff }, { 11835, 0xefff }, { 11850, 0xa081 },
+  { 11854, 0xffff }, { 11870, 0xfffe }, { 11885, 0xffff }, { 11901, 0xff7f },
+  /* 0x8400 */
+  { 11916, 0xffff }, { 11932, 0x89df }, { 11942, 0xfe08 }, { 11950, 0xffff },
+  { 11966, 0xffff }, { 11982, 0xffff }, { 11998, 0xfbff }, { 12013, 0xefff },
+  { 12028, 0xe05d }, { 12036, 0xffff }, { 12052, 0xffbf }, { 12067, 0xbfff },
+  { 12082, 0xffff }, { 12098, 0x0dff }, { 12109, 0xff90 }, { 12119, 0xffff },
+  /* 0x8500 */
+  { 12135, 0xffff }, { 12151, 0xfffe }, { 12166, 0xfffb }, { 12181, 0xe83b },
+  { 12190, 0x7fff }, { 12205, 0xfffa }, { 12219, 0xffff }, { 12235, 0xdfe3 },
+  { 12247, 0xffff }, { 12263, 0xffff }, { 12279, 0x9fdf }, { 12292, 0xefff },
+  { 12307, 0xfbff }, { 12322, 0xffe7 }, { 12336, 0xfffe }, { 12351, 0xffd7 },
+  /* 0x8600 */
+  { 12365, 0xbfff }, { 12380, 0xffeb }, { 12394, 0xffff }, { 12410, 0xff7e },
+  { 12424, 0x7fcf }, { 12437, 0xfffd }, { 12452, 0xffbe }, { 12466, 0x3ffb },
+  { 12479, 0xfef0 }, { 12490, 0xffff }, { 12506, 0xc7ff }, { 12519, 0xffff },
+  { 12535, 0x1bff }, { 12547, 0xfffb }, { 12562, 0x7f5e }, { 12574, 0xffe0 },
+  /* 0x8700 */
+  { 12585, 0x7fff }, { 12600, 0x7f6e }, { 12612, 0x7fff }, { 12627, 0xffff },
+  { 12643, 0xf0ef }, { 12654, 0xffff }, { 12670, 0xffff }, { 12686, 0x2ffa },
+  { 12697, 0xefbe }, { 12710, 0xffdf }, { 12725, 0xfc1e }, { 12735, 0xffff },
+  { 12751, 0x7fff }, { 12766, 0xfffe }, { 12781, 0xffff }, { 12797, 0xffdd },
+  /* 0x8800 */
+  { 12811, 0xffef }, { 12826, 0xbfff }, { 12841, 0xffff }, { 12857, 0xfbef },
+  { 12871, 0xfdff }, { 12886, 0xffec }, { 12899, 0xefce }, { 12911, 0xffff },
+  { 12927, 0xff1f }, { 12940, 0xdfff }, { 12955, 0x1fff }, { 12968, 0xfff6 },
+  { 12982, 0xfe07 }, { 12992, 0xfff5 }, { 13006, 0xffc3 }, { 13018, 0xffff },
+  /* 0x8900 */
+  { 13034, 0xdeef }, { 13047, 0xcfff }, { 13061, 0xfefe }, { 13075, 0xfbef },
+  { 13089, 0xff5f }, { 13103, 0xffcf }, { 13117, 0xfeff }, { 13132, 0xff5e },
+  { 13145, 0x9fee }, { 13157, 0xfdfe }, { 13171, 0xfefe }, { 13185, 0xfeef },
+  { 13199, 0x0001 }, { 13200, 0xbe7c }, { 13211, 0x7fff }, { 13226, 0xddff },
+  /* 0x8a00 */
+  { 13240, 0xfdfd }, { 13254, 0xfbef }, { 13268, 0x3fef }, { 13281, 0xff77 },
+  { 13295, 0xff7f }, { 13310, 0x6ff7 }, { 13323, 0xffff }, { 13339, 0xffff },
+  { 13355, 0xf9ff }, { 13369, 0xff7f }, { 13384, 0x9fff }, { 13398, 0xffff },
+  { 13414, 0xffff }, { 13430, 0xfbff }, { 13445, 0xffff }, { 13461, 0xffff },
+  /* 0x8b00 */
+  { 13477, 0xfff7 }, { 13492, 0xffff }, { 13508, 0xfffd }, { 13523, 0xffff },
+  { 13539, 0xffef }, { 13554, 0xb7ff }, { 13568, 0xffff }, { 13584, 0xffb3 },
+  { 13597, 0x7dff }, { 13611, 0xffff }, { 13627, 0x0000 }, { 13627, 0x0000 },
+  { 13627, 0x0000 }, { 13627, 0x0000 }, { 13627, 0x0000 }, { 13627, 0x0000 },
+  /* 0x8c00 */
+  { 13627, 0x0000 }, { 13627, 0x0000 }, { 13627, 0x0000 }, { 13627, 0xfe80 },
+  { 13635, 0xffff }, { 13651, 0xfdfb }, { 13665, 0xbfff }, { 13680, 0xffff },
+  { 13696, 0xf77f }, { 13710, 0xffff }, { 13726, 0xffff }, { 13742, 0xffff },
+  { 13758, 0xb7bf }, { 13771, 0xfeff }, { 13786, 0xffff }, { 13802, 0x7fff },
+  /* 0x8d00 */
+  { 13817, 0xaffd }, { 13830, 0x1eff }, { 13842, 0x0000 }, { 13842, 0x0000 },
+  { 13842, 0x0000 }, { 13842, 0x0000 }, { 13842, 0xfbf0 }, { 13853, 0xffdf },
+  { 13868, 0xffff }, { 13884, 0xbfff }, { 13899, 0xffff }, { 13915, 0xfefc },
+  { 13928, 0xffe7 }, { 13942, 0xbfff }, { 13957, 0xffdf }, { 13972, 0xf41f },
+  /* 0x8e00 */
+  { 13982, 0xafff }, { 13996, 0xffff }, { 14012, 0x4fff }, { 14025, 0xfb7f },
+  { 14039, 0xffff }, { 14055, 0xfff9 }, { 14069, 0xbfff }, { 14084, 0x1dfd },
+  { 14095, 0x7ffe }, { 14109, 0xe7ff }, { 14123, 0xbfff }, { 14138, 0xa7df },
+  { 14150, 0xbe4f }, { 14161, 0xfbde }, { 14174, 0xdff3 }, { 14187, 0xfffe },
+  /* 0x8f00 */
+  { 14202, 0x6fff }, { 14216, 0xffff }, { 14232, 0xfefd }, { 14246, 0xfbff },
+  { 14261, 0xefff }, { 14276, 0xffff }, { 14292, 0x003f }, { 14298, 0x0000 },
+  { 14298, 0x0000 }, { 14298, 0xf800 }, { 14303, 0xf1ff }, { 14316, 0xc23f },
+  { 14325, 0xfef6 }, { 14338, 0x03fe }, { 14347, 0xefff }, { 14362, 0xfff3 },
+  /* 0x9000 */
+  { 14376, 0xfb7f }, { 14390, 0xfeff }, { 14405, 0xff3f }, { 14419, 0xfdf7 },
+  { 14433, 0xffff }, { 14449, 0xff3f }, { 14463, 0xef8f }, { 14475, 0xffff },
+  { 14491, 0xafff }, { 14505, 0xcfff }, { 14519, 0xafff }, { 14533, 0xf3ff },
+  { 14547, 0x6fff }, { 14561, 0xfff0 }, { 14573, 0xff3f }, { 14587, 0xfebf },
+  /* 0x9100 */
+  { 14601, 0xffff }, { 14617, 0xffff }, { 14633, 0xffff }, { 14649, 0xffff },
+  { 14665, 0xfffb }, { 14680, 0x87ff }, { 14692, 0xdfbf }, { 14706, 0x1ffc },
+  { 14717, 0xffff }, { 14733, 0xfe6f }, { 14746, 0xffaf }, { 14760, 0xfebf },
+  { 14774, 0xfaff }, { 14788, 0xfffb }, { 14803, 0x7ffd }, { 14817, 0xe3ff },
+  /* 0x9200 */
+  { 14830, 0xffff }, { 14846, 0x5fff }, { 14860, 0xe0fd }, { 14870, 0xffff },
+  { 14886, 0xff73 }, { 14899, 0xfeff }, { 14914, 0xfcff }, { 14928, 0xff45 },
+  { 14939, 0xffff }, { 14955, 0x7fff }, { 14970, 0x7fff }, { 14985, 0xdbfe },
+  { 14998, 0xffff }, { 15014, 0xffff }, { 15030, 0xeff7 }, { 15044, 0xffcb },
+  /* 0x9300 */
+  { 15057, 0xffff }, { 15073, 0xfffd }, { 15088, 0xffff }, { 15104, 0x137f },
+  { 15114, 0xffe0 }, { 15125, 0xffff }, { 15141, 0x7fff }, { 15156, 0xffff },
+  { 15172, 0xff0d }, { 15183, 0xffff }, { 15199, 0xf7ff }, { 15214, 0x09bf },
+  { 15223, 0xfdff }, { 15238, 0xffff }, { 15254, 0x7fff }, { 15269, 0xfff8 },
+  /* 0x9400 */
+  { 15282, 0xfffd }, { 15297, 0xdfff }, { 15312, 0x7f81 }, { 15321, 0xbfef },
+  { 15335, 0xfffd }, { 15350, 0xfcf7 }, { 15363, 0xff3f }, { 15377, 0xfdff },
+  { 15392, 0x001f }, { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x0000 },
+  { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x0000 },
+  /* 0x9500 */
+  { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x0000 },
+  { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x0000 }, { 15397, 0x3c80 },
+  { 15402, 0xfbef }, { 15416, 0xdf3f }, { 15429, 0xfbbe }, { 15442, 0xffef },
+  { 15457, 0x3fff }, { 15471, 0xfdff }, { 15486, 0x003f }, { 15492, 0x0000 },
+  /* 0x9600 */
+  { 15492, 0x0000 }, { 15492, 0x7000 }, { 15495, 0xffdf }, { 15510, 0xfe9f },
+  { 15523, 0xfc1f }, { 15534, 0xff5b }, { 15547, 0xfc1f }, { 15558, 0xfbff },
+  { 15573, 0xffff }, { 15589, 0xfbfe }, { 15603, 0xffbf }, { 15618, 0xbbff },
+  { 15632, 0x7fff }, { 15647, 0xffff }, { 15663, 0xf7fe }, { 15677, 0xbff7 },
+  /* 0x9700 */
+  { 15691, 0xfff5 }, { 15705, 0xffff }, { 15721, 0xdffd }, { 15735, 0xf7ff },
+  { 15750, 0x0bff }, { 15761, 0xff67 }, { 15774, 0xf7df }, { 15788, 0xffdd },
+  { 15802, 0xffbf }, { 15817, 0xff98 }, { 15828, 0x7f7f }, { 15842, 0xeffe },
+  { 15856, 0xfffb }, { 15871, 0xf7fd }, { 15885, 0xe03e }, { 15893, 0xff6f },
+  /* 0x9800 */
+  { 15907, 0xfdff }, { 15922, 0xffff }, { 15938, 0xefd7 }, { 15951, 0xbfff },
+  { 15966, 0xfffb }, { 15981, 0xfbff }, { 15996, 0xfffd }, { 16011, 0x001f },
+  { 16016, 0x0000 }, { 16016, 0x0000 }, { 16016, 0xf300 }, { 16022, 0xffee },
+  { 16036, 0x3fdf }, { 16049, 0xb800 }, { 16053, 0xbeee }, { 16065, 0xf7ff },
+  /* 0x9900 */
+  { 16080, 0x17ef }, { 16091, 0xffff }, { 16107, 0xffbf }, { 16122, 0xff6f },
+  { 16136, 0xfbbb }, { 16149, 0xffff }, { 16165, 0x0002 }, { 16166, 0x0000 },
+  { 16166, 0x0000 }, { 16166, 0x77c0 }, { 16174, 0xffff }, { 16190, 0xffff },
+  { 16206, 0xff9f }, { 16220, 0xffff }, { 16236, 0xffff }, { 16252, 0xfffb },
+  /* 0x9a00 */
+  { 16267, 0xffff }, { 16283, 0xfff3 }, { 16297, 0xfeff }, { 16312, 0xfff7 },
+  { 16327, 0xf77f }, { 16341, 0xdfff }, { 16356, 0x0fff }, { 16368, 0x0000 },
+  { 16368, 0x0000 }, { 16368, 0x0000 }, { 16368, 0xab00 }, { 16373, 0xfbfb },
+  { 16387, 0xe7d7 }, { 16399, 0xf5ff }, { 16413, 0xffff }, { 16429, 0x7ffe },
+  /* 0x9b00 */
+  { 16443, 0x7fff }, { 16458, 0xc7f7 }, { 16470, 0xdfff }, { 16485, 0xfdbf },
+  { 16499, 0xff7f }, { 16514, 0xafff }, { 16528, 0x9bdb }, { 16539, 0x7cf7 },
+  { 16551, 0xdbfd }, { 16564, 0xee3f }, { 16576, 0xed7f }, { 16589, 0xab60 },
+  { 16596, 0x3fff }, { 16610, 0xdefc }, { 16622, 0x5fff }, { 16636, 0xfbc1 },
+  /* 0x9c00 */
+  { 16646, 0x7ff5 }, { 16659, 0xb8bd }, { 16669, 0x7b3a }, { 16679, 0xfffe },
+  { 16694, 0xff73 }, { 16707, 0xe3ff }, { 16720, 0xf1ef }, { 16732, 0x0ffa },
+  { 16742, 0x0000 }, { 16742, 0x0000 }, { 16742, 0x0000 }, { 16742, 0x0000 },
+  { 16742, 0x0000 }, { 16742, 0x0000 }, { 16742, 0xffe0 }, { 16753, 0xfffe },
+  /* 0x9d00 */
+  { 16768, 0xb7ff }, { 16782, 0xeffd }, { 16796, 0xe7ff }, { 16810, 0xebeb },
+  { 16822, 0xfc3f }, { 16834, 0xffff }, { 16850, 0xffcb }, { 16863, 0xefff },
+  { 16878, 0x1fff }, { 16891, 0xfff7 }, { 16906, 0xf7ff }, { 16921, 0xffff },
+  { 16937, 0xfdbe }, { 16950, 0xffef }, { 16965, 0xfb7e }, { 16978, 0xfffd },
+  /* 0x9e00 */
+  { 16993, 0xebff }, { 17007, 0x7fff }, { 17022, 0x0000 }, { 17022, 0x0000 },
+  { 17022, 0x0000 }, { 17022, 0x0000 }, { 17022, 0x0000 }, { 17022, 0xbe20 },
+  { 17029, 0x7fff }, { 17044, 0xffbf }, { 17059, 0xfeff }, { 17074, 0x78f7 },
+  { 17085, 0xf57f }, { 17098, 0xfdff }, { 17113, 0xe9f9 }, { 17124, 0xfeff },
+  /* 0x9f00 */
+  { 17139, 0xc7ff }, { 17152, 0x7ffd }, { 17166, 0xfffd }, { 17181, 0x6bff },
+  { 17194, 0xffef }, { 17209, 0xfffd }, { 17224, 0xdefb }, { 17237, 0x5ff7 },
+  { 17250, 0x6000 }, { 17252, 0x31bf }, { 17262, 0x003f },
+};
+static const Summary16 cns11643_inv_uni2indx_pagefe[31] = {
+  /* 0xfe00 */
+  { 17268, 0x0000 }, { 17268, 0x0000 }, { 17268, 0x0000 }, { 17268, 0xffe7 },
+  { 17282, 0x7e1f }, { 17293, 0xfef7 }, { 17307, 0x0f7f }, { 17318, 0x0000 },
+  { 17318, 0x0000 }, { 17318, 0x0000 }, { 17318, 0x0000 }, { 17318, 0x0000 },
+  { 17318, 0x0000 }, { 17318, 0x0000 }, { 17318, 0x0000 }, { 17318, 0x0000 },
+  /* 0xff00 */
+  { 17318, 0xff7a }, { 17331, 0xffff }, { 17347, 0xffff }, { 17363, 0x97ff },
+  { 17376, 0xfffe }, { 17391, 0x3fff }, { 17405, 0x0000 }, { 17405, 0x0000 },
+  { 17405, 0x0000 }, { 17405, 0x0000 }, { 17405, 0x0000 }, { 17405, 0x0000 },
+  { 17405, 0x0000 }, { 17405, 0x0000 }, { 17405, 0x0023 },
+};
+
+static int
+cns11643_inv_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x0100)
+      summary = &cns11643_inv_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x0200 && wc < 0x03d0)
+      summary = &cns11643_inv_uni2indx_page02[(wc>>4)-0x020];
+    else if (wc >= 0x2000 && wc < 0x22c0)
+      summary = &cns11643_inv_uni2indx_page20[(wc>>4)-0x200];
+    else if (wc >= 0x2400 && wc < 0x2650)
+      summary = &cns11643_inv_uni2indx_page24[(wc>>4)-0x240];
+    else if (wc >= 0x3000 && wc < 0x33e0)
+      summary = &cns11643_inv_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x4e00 && wc < 0x9fb0)
+      summary = &cns11643_inv_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0xfe00 && wc < 0xfff0)
+      summary = &cns11643_inv_uni2indx_pagefe[(wc>>4)-0xfe0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = cns11643_inv_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/cp1133.h b/libiconv/cp1133.h
new file mode 100644 (file)
index 0000000..4dc408f
--- /dev/null
@@ -0,0 +1,91 @@
+
+/*
+ * IBM-CP1133
+ */
+
+static const unsigned short cp1133_2uni_1[64] = {
+  /* 0xa0 */
+  0x00a0, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0eaa, 0x0e8a,
+  0x0e8d, 0x0e94, 0x0e95, 0x0e96, 0x0e97, 0x0e99, 0x0e9a, 0x0e9b,
+  /* 0xb0 */
+  0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, 0x0ea1, 0x0ea2, 0x0ea3, 0x0ea5,
+  0x0ea7, 0x0eab, 0x0ead, 0x0eae, 0xfffd, 0xfffd, 0xfffd, 0x0eaf,
+  /* 0xc0 */
+  0x0eb0, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, 0x0eb8,
+  0x0eb9, 0x0ebc, 0x0eb1, 0x0ebb, 0x0ebd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xd0 */
+  0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0x0ec8, 0x0ec9, 0x0eca,
+  0x0ecb, 0x0ecc, 0x0ecd, 0x0ec6, 0xfffd, 0x0edc, 0x0edd, 0x20ad,
+};
+static const unsigned short cp1133_2uni_2[16] = {
+  /* 0xf0 */
+  0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7,
+  0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x00a2, 0x00ac, 0x00a6, 0xfffd,
+};
+
+static int
+cp1133_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else if (c < 0xe0) {
+    unsigned short wc = cp1133_2uni_1[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  else if (c < 0xf0) {
+  }
+  else {
+    unsigned short wc = cp1133_2uni_2[c-0xf0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1133_page00[16] = {
+  0xa0, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+};
+static const unsigned char cp1133_page0e[96] = {
+  0x00, 0xa1, 0xa2, 0x00, 0xa3, 0x00, 0x00, 0xa4, /* 0x80-0x87 */
+  0xa5, 0x00, 0xa7, 0x00, 0x00, 0xa8, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x00, 0x00, 0xa9, 0xaa, 0xab, 0xac, /* 0x90-0x97 */
+  0x00, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, /* 0x98-0x9f */
+  0x00, 0xb4, 0xb5, 0xb6, 0x00, 0xb7, 0x00, 0xb8, /* 0xa0-0xa7 */
+  0x00, 0x00, 0xa6, 0xb9, 0x00, 0xba, 0xbb, 0xbf, /* 0xa8-0xaf */
+  0xc0, 0xca, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, /* 0xb0-0xb7 */
+  0xc7, 0xc8, 0x00, 0xcb, 0xc9, 0xcc, 0x00, 0x00, /* 0xb8-0xbf */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xdb, 0x00, /* 0xc0-0xc7 */
+  0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x00, 0x00, /* 0xc8-0xcf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */
+  0xf8, 0xf9, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, /* 0xd8-0xdf */
+};
+
+static int
+cp1133_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00b0)
+    c = cp1133_page00[wc-0x00a0];
+  else if (wc >= 0x0e80 && wc < 0x0ee0)
+    c = cp1133_page0e[wc-0x0e80];
+  else if (wc == 0x20ad)
+    c = 0xdf;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1250.h b/libiconv/cp1250.h
new file mode 100644 (file)
index 0000000..cb97db0
--- /dev/null
@@ -0,0 +1,120 @@
+
+/*
+ * CP1250
+ */
+
+static const unsigned short cp1250_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021,
+  0xfffd, 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0xfffd, 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a,
+  /* 0xa0 */
+  0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+  0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c,
+  /* 0xc0 */
+  0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
+  0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
+  /* 0xd0 */
+  0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
+  0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
+  /* 0xe0 */
+  0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
+  0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
+  /* 0xf0 */
+  0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
+  0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9,
+};
+
+static int
+cp1250_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp1250_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1250_page00[224] = {
+  0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0xb8, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */
+  0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */
+  0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
+  0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xc5, 0xe5, 0x00, 0x00, 0xbc, 0xbe, 0x00, /* 0x38-0x3f */
+  0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */
+  0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */
+  0xd8, 0xf8, 0x8c, 0x9c, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */
+  0x8a, 0x9a, 0xde, 0xfe, 0x8d, 0x9d, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */
+  0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x8f, 0x9f, 0xaf, 0xbf, 0x8e, 0x9e, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char cp1250_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char cp1250_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1250_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = cp1250_page00[wc-0x00a0];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = cp1250_page02[wc-0x02c0];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1250_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1251.h b/libiconv/cp1251.h
new file mode 100644 (file)
index 0000000..2bc6bfc
--- /dev/null
@@ -0,0 +1,112 @@
+
+/*
+ * CP1251
+ */
+
+static const unsigned short cp1251_2uni[128] = {
+  /* 0x80 */
+  0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,
+  /* 0x90 */
+  0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,
+  /* 0xa0 */
+  0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
+  0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
+  0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
+  /* 0xc0 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
+  0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
+  /* 0xd0 */
+  0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
+  0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
+  /* 0xe0 */
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
+  0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
+  /* 0xf0 */
+  0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+  0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
+};
+
+static int
+cp1251_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp1251_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1251_page00[32] = {
+  0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char cp1251_page04[152] = {
+  0x00, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */
+  0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x00, 0xa1, 0x8f, /* 0x08-0x0f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */
+  0x00, 0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, /* 0x50-0x57 */
+  0xbc, 0x9a, 0x9c, 0x9e, 0x9d, 0x00, 0xa2, 0x9f, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char cp1251_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1251_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = cp1251_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0498)
+    c = cp1251_page04[wc-0x0400];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1251_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x88;
+  else if (wc == 0x2116)
+    c = 0xb9;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1252.h b/libiconv/cp1252.h
new file mode 100644 (file)
index 0000000..29a6c17
--- /dev/null
@@ -0,0 +1,84 @@
+
+/*
+ * CP1252
+ */
+
+static const unsigned short cp1252_2uni[32] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0x017d, 0xfffd,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0x017e, 0x0178,
+};
+
+static int
+cp1252_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80 || c >= 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp1252_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1252_page01[72] = {
+  0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x9f, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x9e, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char cp1252_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char cp1252_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1252_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = wc;
+  else if (wc >= 0x0150 && wc < 0x0198)
+    c = cp1252_page01[wc-0x0150];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = cp1252_page02[wc-0x02c0];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1252_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1253.h b/libiconv/cp1253.h
new file mode 100644 (file)
index 0000000..e24dea5
--- /dev/null
@@ -0,0 +1,103 @@
+
+/*
+ * CP1253
+ */
+
+static const unsigned short cp1253_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa0 */
+  0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7,
+  0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,
+  /* 0xc0 */
+  0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
+  0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
+  /* 0xd0 */
+  0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,
+  0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,
+  /* 0xe0 */
+  0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
+  0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
+  /* 0xf0 */
+  0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
+  0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd,
+};
+
+static int
+cp1253_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp1253_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1253_page00[32] = {
+  0xa0, 0x00, 0x00, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char cp1253_page03[80] = {
+  0x00, 0x00, 0x00, 0x00, 0xb4, 0xa1, 0xa2, 0x00, /* 0x80-0x87 */
+  0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */
+  0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */
+};
+static const unsigned char cp1253_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0xaf, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1253_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = cp1253_page00[wc-0x00a0];
+  else if (wc == 0x0192)
+    c = 0x83;
+  else if (wc >= 0x0380 && wc < 0x03d0)
+    c = cp1253_page03[wc-0x0380];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1253_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1254.h b/libiconv/cp1254.h
new file mode 100644 (file)
index 0000000..a6d7fdf
--- /dev/null
@@ -0,0 +1,127 @@
+
+/*
+ * CP1254
+ */
+
+static const unsigned short cp1254_2uni_1[32] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178,
+};
+static const unsigned short cp1254_2uni_2[16] = {
+  /* 0xd0 */
+  0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
+  0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
+};
+static const unsigned short cp1254_2uni_3[16] = {
+  /* 0xf0 */
+  0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
+  0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff,
+};
+
+static int
+cp1254_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else if (c < 0xa0) {
+    unsigned short wc = cp1254_2uni_1[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  else if (c < 0xd0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else if (c < 0xe0) {
+    *pwc = (wchar_t) cp1254_2uni_2[c-0xd0];
+    return 1;
+  }
+  else if (c < 0xf0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    *pwc = (wchar_t) cp1254_2uni_3[c-0xf0];
+    return 1;
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1254_page00[48] = {
+  0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
+  0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */
+};
+static const unsigned char cp1254_page01[128] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */
+  0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char cp1254_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char cp1254_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1254_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00d0)
+    c = wc;
+  else if (wc >= 0x00d0 && wc < 0x0100)
+    c = cp1254_page00[wc-0x00d0];
+  else if (wc >= 0x0118 && wc < 0x0198)
+    c = cp1254_page01[wc-0x0118];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = cp1254_page02[wc-0x02c0];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1254_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1255.h b/libiconv/cp1255.h
new file mode 100644 (file)
index 0000000..f3240da
--- /dev/null
@@ -0,0 +1,120 @@
+
+/*
+ * CP1255
+ */
+
+static const unsigned short cp1255_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x02dc, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa0 */
+  0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+  0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
+  /* 0xc0 */
+  0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7,
+  0x05b8, 0x05b9, 0xfffd, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf,
+  /* 0xd0 */
+  0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3,
+  0x05f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xe0 */
+  0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
+  0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
+  /* 0xf0 */
+  0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
+  0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd,
+};
+
+static int
+cp1255_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp1255_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1255_page00[88] = {
+  0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */
+};
+static const unsigned char cp1255_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char cp1255_page05[72] = {
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xb0-0xb7 */
+  0xc8, 0xc9, 0x00, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xb8-0xbf */
+  0xd0, 0xd1, 0xd2, 0xd3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */
+  0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char cp1255_page20[56] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1255_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00f8)
+    c = cp1255_page00[wc-0x00a0];
+  else if (wc == 0x0192)
+    c = 0x83;
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = cp1255_page02[wc-0x02c0];
+  else if (wc >= 0x05b0 && wc < 0x05f8)
+    c = cp1255_page05[wc-0x05b0];
+  else if (wc >= 0x2008 && wc < 0x2040)
+    c = cp1255_page20[wc-0x2008];
+  else if (wc == 0x20aa)
+    c = 0xa4;
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1256.h b/libiconv/cp1256.h
new file mode 100644 (file)
index 0000000..e7f7159
--- /dev/null
@@ -0,0 +1,134 @@
+
+/*
+ * CP1256
+ */
+
+static const unsigned short cp1256_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
+  /* 0x90 */
+  0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba,
+  /* 0xa0 */
+  0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+  0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f,
+  /* 0xc0 */
+  0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
+  0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
+  /* 0xd0 */
+  0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7,
+  0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643,
+  /* 0xe0 */
+  0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7,
+  0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef,
+  /* 0xf0 */
+  0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7,
+  0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2,
+};
+
+static int
+cp1256_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) cp1256_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char cp1256_page00[96] = {
+  0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0xe0, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0x00, 0x00, 0xee, 0xef, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0xf7, /* 0xf0-0xf7 */
+  0x00, 0xf9, 0x00, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char cp1256_page01[72] = {
+  0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char cp1256_page06[208] = {
+  0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */
+  0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, /* 0x30-0x37 */
+  0xd9, 0xda, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, /* 0x40-0x47 */
+  0xe6, 0xec, 0xed, 0xf0, 0xf1, 0xf2, 0xf3, 0xf5, /* 0x48-0x4f */
+  0xf6, 0xf8, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, /* 0x80-0x87 */
+  0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xb8-0xbf */
+  0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+};
+static const unsigned char cp1256_page20[56] = {
+  0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0xfd, 0xfe, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1256_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = cp1256_page00[wc-0x00a0];
+  else if (wc >= 0x0150 && wc < 0x0198)
+    c = cp1256_page01[wc-0x0150];
+  else if (wc == 0x02c6)
+    c = 0x88;
+  else if (wc >= 0x0608 && wc < 0x06d8)
+    c = cp1256_page06[wc-0x0608];
+  else if (wc >= 0x2008 && wc < 0x2040)
+    c = cp1256_page20[wc-0x2008];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1257.h b/libiconv/cp1257.h
new file mode 100644 (file)
index 0000000..80e0072
--- /dev/null
@@ -0,0 +1,120 @@
+
+/*
+ * CP1257
+ */
+
+static const unsigned short cp1257_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021,
+  0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0x00a8, 0x02c7, 0x00b8,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0x00af, 0x02db, 0xfffd,
+  /* 0xa0 */
+  0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0xfffd, 0x00a6, 0x00a7,
+  0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+  0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6,
+  /* 0xc0 */
+  0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112,
+  0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b,
+  /* 0xd0 */
+  0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7,
+  0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df,
+  /* 0xe0 */
+  0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113,
+  0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c,
+  /* 0xf0 */
+  0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7,
+  0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9,
+};
+
+static int
+cp1257_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp1257_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1257_page00[224] = {
+  0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0x8d, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x9d, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0x8f, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */
+  0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */
+  0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */
+  0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */
+  0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char cp1257_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0xff, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char cp1257_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1257_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = cp1257_page00[wc-0x00a0];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = cp1257_page02[wc-0x02c0];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1257_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp1258.h b/libiconv/cp1258.h
new file mode 100644 (file)
index 0000000..4e9d6c2
--- /dev/null
@@ -0,0 +1,130 @@
+
+/*
+ * CP1258
+ */
+
+static const unsigned short cp1258_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x02dc, 0x2122, 0xfffd, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178,
+  /* 0xa0 */
+  0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+  0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
+  /* 0xc0 */
+  0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
+  0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf,
+  /* 0xd0 */
+  0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7,
+  0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df,
+  /* 0xe0 */
+  0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
+  0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef,
+  /* 0xf0 */
+  0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7,
+  0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff,
+};
+
+static int
+cp1258_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else if (c >= 0x80) {
+    *pwc = (wchar_t) cp1258_2uni[c-0x80];
+    return 1;
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp1258_page00[88] = {
+  0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */
+  0xc8, 0xc9, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
+  0x00, 0xd1, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */
+  0x00, 0xf1, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0xc3, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+};
+static const unsigned char cp1258_page01[104] = {
+  0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0xd5, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xa8-0xaf */
+  0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char cp1258_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char cp1258_page03[40] = {
+  0xcc, 0xec, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char cp1258_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+cp1258_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = wc;
+  else if (wc >= 0x00c0 && wc < 0x0118)
+    c = cp1258_page00[wc-0x00c0];
+  else if (wc >= 0x0150 && wc < 0x01b8)
+    c = cp1258_page01[wc-0x0150];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = cp1258_page02[wc-0x02c0];
+  else if (wc >= 0x0300 && wc < 0x0328)
+    c = cp1258_page03[wc-0x0300];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = cp1258_page20[wc-0x2010];
+  else if (wc == 0x20ab)
+    c = 0xfe;
+  else if (wc == 0x20ac)
+    c = 0x80;
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp850.h b/libiconv/cp850.h
new file mode 100644 (file)
index 0000000..8fa9121
--- /dev/null
@@ -0,0 +1,105 @@
+
+/*
+ * CP850
+ */
+
+static const unsigned short cp850_2uni[128] = {
+  /* 0x80 */
+  0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
+  0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
+  /* 0x90 */
+  0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
+  0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
+  /* 0xa0 */
+  0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
+  0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
+  /* 0xb0 */
+  0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
+  0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
+  /* 0xc0 */
+  0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
+  0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
+  /* 0xd0 */
+  0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
+  0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
+  /* 0xe0 */
+  0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
+  0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
+  /* 0xf0 */
+  0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
+  0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0,
+};
+
+static int
+cp850_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) cp850_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char cp850_page00[96] = {
+  0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */
+  0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */
+  0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */
+  0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* 0xb8-0xbf */
+  0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */
+  0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */
+  0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, /* 0xd0-0xd7 */
+  0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, /* 0xd8-0xdf */
+  0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */
+  0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */
+  0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */
+  0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, /* 0xf8-0xff */
+};
+static const unsigned char cp850_page25[168] = {
+  0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */
+  0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */
+  0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */
+  0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+cp850_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = cp850_page00[wc-0x00a0];
+  else if (wc == 0x0131)
+    c = 0xd5;
+  else if (wc == 0x0192)
+    c = 0x9f;
+  else if (wc == 0x2017)
+    c = 0xf2;
+  else if (wc >= 0x2500 && wc < 0x25a8)
+    c = cp850_page25[wc-0x2500];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp866.h b/libiconv/cp866.h
new file mode 100644 (file)
index 0000000..a99d54e
--- /dev/null
@@ -0,0 +1,106 @@
+
+/*
+ * CP866
+ */
+
+static const unsigned short cp866_2uni[80] = {
+  /* 0xb0 */
+  0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
+  0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
+  /* 0xc0 */
+  0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
+  0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
+  /* 0xd0 */
+  0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
+  0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
+  /* 0xe0 */
+  0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+  0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
+  /* 0xf0 */
+  0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
+  0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0,
+};
+
+static int
+cp866_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else if (c < 0xb0)
+    *pwc = (wchar_t) c + 0x0390;
+  else
+    *pwc = (wchar_t) cp866_2uni[c-0xb0];
+  return 1;
+}
+
+static const unsigned char cp866_page00[24] = {
+  0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */
+};
+static const unsigned char cp866_page04[96] = {
+  0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0xf4, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */
+  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */
+  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */
+  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */
+  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */
+  0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */
+  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0x00, 0xf1, 0x00, 0x00, 0xf3, 0x00, 0x00, 0xf5, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */
+};
+static const unsigned char cp866_page22[8] = {
+  0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+};
+static const unsigned char cp866_page25[168] = {
+  0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */
+  0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */
+  0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */
+  0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+cp866_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00b8)
+    c = cp866_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0460)
+    c = cp866_page04[wc-0x0400];
+  else if (wc == 0x2116)
+    c = 0xfc;
+  else if (wc >= 0x2218 && wc < 0x2220)
+    c = cp866_page22[wc-0x2218];
+  else if (wc >= 0x2500 && wc < 0x25a8)
+    c = cp866_page25[wc-0x2500];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp874.h b/libiconv/cp874.h
new file mode 100644 (file)
index 0000000..2694fd7
--- /dev/null
@@ -0,0 +1,92 @@
+
+/*
+ * CP874
+ */
+
+static const unsigned short cp874_2uni[128] = {
+  /* 0x80 */
+  0x20ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2026, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x90 */
+  0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa0 */
+  0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
+  0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
+  /* 0xb0 */
+  0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
+  0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
+  /* 0xc0 */
+  0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
+  0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
+  /* 0xd0 */
+  0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
+  0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f,
+  /* 0xe0 */
+  0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
+  0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,
+  /* 0xf0 */
+  0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
+  0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+cp874_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = cp874_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char cp874_page0e[96] = {
+  0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
+  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
+  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
+  0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+};
+static const unsigned char cp874_page20[24] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x00, 0x00, 0x93, 0x94, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+};
+
+static int
+cp874_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc == 0x00a0)
+    c = 0xa0;
+  else if (wc >= 0x0e00 && wc < 0x0e60)
+    c = cp874_page0e[wc-0x0e00];
+  else if (wc >= 0x2010 && wc < 0x2028)
+    c = cp874_page20[wc-0x2010];
+  else if (wc == 0x20ac)
+    c = 0x80;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp932.h b/libiconv/cp932.h
new file mode 100644 (file)
index 0000000..c6aec6f
--- /dev/null
@@ -0,0 +1,168 @@
+
+/*
+ * CP932
+ */
+
+/*
+ * Microsoft CP932 is a slightly extended version of SHIFT-JIS.
+ * The differences between the EASTASIA/JIS/SHIFTJIS.TXT and the
+ * VENDORS/MICSFT/WINDOWS/CP932.TXT tables found on ftp.unicode.org are
+ * as follows:
+ *
+ * 1. CP932 uses ASCII, not JISX0201 Roman.
+ *
+ * 2. Some characters in the JISX0208 range are defined differently:
+ *
+ *     code   SHIFTJIS.TXT                   CP932.TXT
+ *    0x815F  0x005C # REVERSE SOLIDUS       0xFF3C # FULLWIDTH REVERSE SOLIDUS
+ *    0x8160  0x301C # WAVE DASH             0xFF5E # FULLWIDTH TILDE
+ *    0x8161  0x2016 # DOUBLE VERTICAL LINE  0x2225 # PARALLEL TO
+ *    0x817C  0x2212 # MINUS SIGN            0xFF0D # FULLWIDTH HYPHEN-MINUS
+ *    0x8191  0x00A2 # CENT SIGN             0xFFE0 # FULLWIDTH CENT SIGN
+ *    0x8192  0x00A3 # POUND SIGN            0xFFE1 # FULLWIDTH POUND SIGN
+ *    0x81CA  0x00AC # NOT SIGN              0xFFE2 # FULLWIDTH NOT SIGN
+ *
+ *    We don't implement these changes. SHIFTJIS.TXT makes more sense.
+ *
+ * 3. A few new rows. See cp932ext.h.
+ */
+
+#include "cp932ext.h"
+
+/*
+   Conversion between SJIS codes (s1,s2) and JISX0208 codes (c1,c2):
+   Example. (s1,s2) = 0x8140, (c1,c2) = 0x2121.
+   0x81 <= s1 <= 0x9F || 0xE0 <= s1 <= 0xEA,
+   0x40 <= s2 <= 0x7E || 0x80 <= s2 <= 0xFC,
+   0x21 <= c1 <= 0x74, 0x21 <= c2 <= 0x7E.
+   Invariant:
+     94*2*(s1 < 0xE0 ? s1-0x81 : s1-0xC1) + (s2 < 0x80 ? s2-0x40 : s2-0x41)
+     = 94*(c1-0x21)+(c2-0x21)
+   Conversion (s1,s2) -> (c1,c2):
+     t1 := (s1 < 0xE0 ? s1-0x81 : s1-0xC1)
+     t2 := (s2 < 0x80 ? s2-0x40 : s2-0x41)
+     c1 := 2*t1 + (t2 < 0x5E ? 0 : 1) + 0x21
+     c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21
+   Conversion (c1,c2) -> (s1,s2):
+     t1 := (c1 - 0x21) >> 1
+     t2 := ((c1 - 0x21) & 1) * 0x5E + (c2 - 0x21)
+     s1 := (t1 < 0x1F ? t1+0x81 : t1+0xC1)
+     s2 := (t2 < 0x3F ? t2+0x40 : t2+0x41)
+ */
+
+static int
+cp932_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  else if (c >= 0xa1 && c <= 0xdf)
+    return jisx0201_mbtowc(conv,pwc,s,n);
+  else {
+    unsigned char s1, s2;
+    s1 = c;
+    if ((s1 >= 0x81 && s1 <= 0x9f && s1 != 0x87) || (s1 >= 0xe0 && s1 <= 0xea)) {
+      if (n < 2)
+        return RET_TOOFEW(0);
+      s2 = s[1];
+      if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) {
+        unsigned char t1 = (s1 < 0xe0 ? s1-0x81 : s1-0xc1);
+        unsigned char t2 = (s2 < 0x80 ? s2-0x40 : s2-0x41);
+        unsigned char buf[2];
+        buf[0] = 2*t1 + (t2 < 0x5e ? 0 : 1) + 0x21;
+        buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21;
+        return jisx0208_mbtowc(conv,pwc,buf,2);
+      }
+    } else if ((s1 == 0x87) || (s1 >= 0xed && s1 <= 0xee) || (s1 >= 0xfa)) {
+      if (n < 2)
+        return RET_TOOFEW(0);
+      return cp932ext_mbtowc(conv,pwc,s,2);
+    } else if (s1 >= 0xf0 && s1 <= 0xf9) {
+      /* User-defined range. See
+       * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+      if (n < 2)
+        return RET_TOOFEW(0);
+      s2 = s[1];
+      if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) {
+        *pwc = 0xe000 + 188*(s1 - 0xf0) + (s2 < 0x80 ? s2-0x40 : s2-0x41);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+}
+
+static int
+cp932_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    unsigned char c;
+    if (ret != 1) abort();
+    c = buf[0];
+    if (c < 0x80) {
+      r[0] = c;
+      return 1;
+    }
+  }
+
+  /* Try JIS X 0201-1976 Katakana. */
+  ret = jisx0201_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    unsigned char c;
+    if (ret != 1) abort();
+    c = buf[0];
+    if (c >= 0xa1 && c <= 0xdf) {
+      r[0] = c;
+      return 1;
+    }
+  }
+
+  /* Try JIS X 0208-1990. */
+  ret = jisx0208_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    unsigned char c1, c2;
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    c1 = buf[0];
+    c2 = buf[1];
+    if ((c1 >= 0x21 && c1 <= 0x74) && (c2 >= 0x21 && c2 <= 0x7e)) {
+      unsigned char t1 = (c1 - 0x21) >> 1;
+      unsigned char t2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21);
+      r[0] = (t1 < 0x1f ? t1+0x81 : t1+0xc1);
+      r[1] = (t2 < 0x3f ? t2+0x40 : t2+0x41);
+      return 2;
+    }
+  }
+
+  /* Try CP932 extensions. */
+  ret = cp932ext_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+
+  /* User-defined range. See
+   * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+  if (wc >= 0xe000 && wc < 0xe758) {
+    unsigned char c1, c2;
+    if (n < 2)
+      return RET_TOOSMALL;
+    c1 = (unsigned int) (wc - 0xe000) / 188;
+    c2 = (unsigned int) (wc - 0xe000) % 188;
+    r[0] = c1+0xf0;
+    r[1] = (c2 < 0x3f ? c2+0x40 : c2+0x41);
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp932ext.h b/libiconv/cp932ext.h
new file mode 100644 (file)
index 0000000..1057559
--- /dev/null
@@ -0,0 +1,690 @@
+
+/*
+ * CP932 extensions
+ */
+
+static const unsigned short cp932ext_2uni_page87[92] = {
+  /* 0x87 */
+  0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
+  0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f,
+  0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163,
+  0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xfffd, 0x3349,
+  0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351,
+  0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c,
+  0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x337b, 0x301d,
+  0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, 0x32a7,
+  0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, 0x2252,
+  0x2261, 0x222b, 0x222e, 0x2211, 0x221a, 0x22a5, 0x2220, 0x221f,
+  0x22bf, 0x2235, 0x2229, 0x222a,
+};
+static const unsigned short cp932ext_2uni_pageed[376] = {
+  /* 0xed */
+  0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631,
+  0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00,
+  0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd,
+  0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094,
+  0x50f4, 0x50d8, 0x514a, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215,
+  0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372,
+  0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff,
+  0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0xfa10,
+  0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4,
+  0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6,
+  0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8,
+  0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d,
+  0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137,
+  0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce,
+  0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624,
+  0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2,
+  0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0,
+  0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2,
+  0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6,
+  0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f,
+  0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c,
+  0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007,
+  0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147,
+  0xfa15, 0x71c1, 0x71fe, 0x72b1,
+  /* 0xee */
+  0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3,
+  0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462,
+  0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b,
+  0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a,
+  0x7930, 0xfa18, 0xfa19, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1,
+  0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7,
+  0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362,
+  0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x856b,
+  0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37,
+  0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f,
+  0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25,
+  0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de,
+  0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a,
+  0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7,
+  0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5,
+  0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff,
+  0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8,
+  0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af,
+  0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857,
+  0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9,
+  0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70,
+  0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0xfffd, 0xfffd, 0x2170, 0x2171,
+  0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179,
+  0xffe2, 0xffe4, 0xff07, 0xff02,
+};
+static const unsigned short cp932ext_2uni_pagefa[388] = {
+  /* 0xfa */
+  0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
+  0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165,
+  0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02,
+  0x3231, 0x2116, 0x2121, 0x2235, 0x7e8a, 0x891c, 0x9348, 0x9288,
+  0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45,
+  0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92,
+  0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e,
+  0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, 0x5164,
+  0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db,
+  0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e,
+  0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac,
+  0x57c8, 0x57c7, 0xfa0f, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953,
+  0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f,
+  0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53,
+  0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34,
+  0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5,
+  0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6,
+  0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b,
+  0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12,
+  0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929,
+  0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13,
+  0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73,
+  0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f,
+  0x6cda, 0x6d04, 0x6d87, 0x6d6f,
+  /* 0xfb */
+  0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c,
+  0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007,
+  0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147,
+  0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x72be, 0x7324, 0xfa16, 0x7377,
+  0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426,
+  0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f,
+  0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af,
+  0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0xfa1a,
+  0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e,
+  0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47,
+  0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448,
+  0x84b4, 0x8553, 0x8559, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21,
+  0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf,
+  0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76,
+  0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115,
+  0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5,
+  0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259,
+  0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7,
+  0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321,
+  0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357,
+  0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592,
+  0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d,
+  0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927,
+  0xfa2c, 0x999e, 0x9a4e, 0x9ad9,
+  /* 0xfc */
+  0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70,
+  0x9d6b, 0xfa2d, 0x9e19, 0x9ed1,
+};
+
+static int
+cp932ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 == 0x87) || (c1 >= 0xed && c1 <= 0xee) || (c1 >= 0xfa && c1 <= 0xfc)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xfd)) {
+        unsigned int i = 188 * (c1 - (c1 >= 0xe0 ? 0xc1 : 0x81)) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40));
+        unsigned short wc = 0xfffd;
+        if (i < 8272) {
+          if (i < 1220)
+            wc = cp932ext_2uni_page87[i-1128];
+        } else if (i < 10716) {
+          if (i < 8648)
+            wc = cp932ext_2uni_pageed[i-8272];
+        } else {
+          if (i < 11104)
+            wc = cp932ext_2uni_pagefa[i-10716];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short cp932ext_2charset[457] = {
+  0xfa59, 0xfa5a, 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f,
+  0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa40, 0xfa41, 0xfa42, 0xfa43,
+  0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0x8794, 0x8795,
+  0x8798, 0x8797, 0x879b, 0x879c, 0x8792, 0x8793, 0xfa5b, 0x8790,
+  0x8791, 0x8796, 0x8799, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744,
+  0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c,
+  0x874d, 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8780,
+  0x8781, 0xfa58, 0x878b, 0x878c, 0x8785, 0x8786, 0x8787, 0x8788,
+  0x8789, 0x8765, 0x8769, 0x8760, 0x8763, 0x8761, 0x876b, 0x876a,
+  0x8764, 0x876c, 0x8766, 0x876e, 0x875f, 0x876d, 0x8762, 0x8767,
+  0x8768, 0x877e, 0x878f, 0x878e, 0x878d, 0x8772, 0x8773, 0x876f,
+  0x8770, 0x8771, 0x8775, 0x8774, 0x8783, 0xfa68, 0xfa69, 0xfa6a,
+  0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa70, 0xfa6f, 0xfa72, 0xfa71,
+  0xfa61, 0xfa73, 0xfa76, 0xfa77, 0xfa75, 0xfa74, 0xfa7a, 0xfa78,
+  0xfa79, 0xfa7b, 0xfa7d, 0xfa7c, 0xfa7e, 0xfa80, 0xfa81, 0xfa82,
+  0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfb77, 0xfa87, 0xfa88, 0xfa89,
+  0xfa8a, 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa92, 0xfa91,
+  0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa9a, 0xfa99,
+  0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfaa1, 0xfaa2, 0xfaa3, 0xfaa4,
+  0xfaa5, 0xfaa6, 0xfaa7, 0xfaa9, 0xfaaa, 0xfaab, 0xfaac, 0xfaad,
+  0xfaae, 0xfaaf, 0xfab2, 0xfab0, 0xfab3, 0xfab4, 0xfab5, 0xfab6,
+  0xfab7, 0xfab8, 0xfa67, 0xfab9, 0xfaba, 0xfabb, 0xfabc, 0xfabd,
+  0xfabe, 0xfac0, 0xfabf, 0xfac2, 0xfac3, 0xfac1, 0xfac5, 0xfac4,
+  0xfac6, 0xfac7, 0xfac8, 0xfac9, 0xfaca, 0xfacb, 0xfacc, 0xfacd,
+  0xface, 0xfad1, 0xfacf, 0xfad3, 0xfad4, 0xfad2, 0xfa63, 0xfad0,
+  0xfad6, 0xfad7, 0xfad5, 0xfad9, 0xfada, 0xfadb, 0xfadc, 0xfadd,
+  0xfade, 0xfa66, 0xfadf, 0xfae1, 0xfae2, 0xfae4, 0xfae5, 0xfae6,
+  0xfae3, 0xfa64, 0xfae7, 0xfae9, 0xfaeb, 0xfaec, 0xfaed, 0xfaef,
+  0xfaee, 0xfaf0, 0xfaf1, 0xfaf2, 0xfaf3, 0xfaf4, 0xfaf5, 0xfaf6,
+  0xfaf8, 0xfaf7, 0xfaf9, 0xfafa, 0xfafc, 0xfafb, 0xfb40, 0xfb41,
+  0xfb42, 0xfb44, 0xfb43, 0xfb45, 0xfb48, 0xfb46, 0xfb49, 0xfb47,
+  0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51,
+  0xfb52, 0xfa62, 0xfb54, 0xfb53, 0xfb56, 0xfb57, 0xfb55, 0xfb59,
+  0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5f, 0xfb60, 0xfb61, 0xfb64,
+  0xfb62, 0xfb63, 0xfb66, 0xfb65, 0xfb67, 0xfb69, 0xfb68, 0xfb6a,
+  0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfaa8, 0xfb6f, 0xfb70, 0xfb73,
+  0xfb71, 0xfb72, 0xfb74, 0xfb76, 0xfb78, 0xfb79, 0xfb7a, 0xfb7b,
+  0xfb7c, 0xfb81, 0xfb83, 0xfb84, 0xfb85, 0xfb87, 0xfb88, 0xfb8a,
+  0xfb8b, 0xfb8d, 0xfb8c, 0xfb8e, 0xfb8f, 0xfa5c, 0xfb90, 0xfb91,
+  0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfa60,
+  0xfb9a, 0xfb9b, 0xfb9c, 0xfb9e, 0xfba1, 0xfba2, 0xfa5d, 0xfba3,
+  0xfba4, 0xfba5, 0xfba6, 0xfba7, 0xfba8, 0xfbaa, 0xfbab, 0xfbac,
+  0xfbad, 0xfbae, 0xfbaf, 0xfbb0, 0xfbb2, 0xfbb5, 0xfbb6, 0xfbb8,
+  0xfbb9, 0xfbbb, 0xfbba, 0xfbbc, 0xfbbf, 0xfbc0, 0xfbbd, 0xfbbe,
+  0xfbc1, 0xfbc3, 0xfbc2, 0xfbca, 0xfbc4, 0xfbc6, 0xfbc5, 0xfbc7,
+  0xfbc9, 0xfbc8, 0xfbcb, 0xfbcd, 0xfbce, 0xfa5f, 0xfbcc, 0xfbd2,
+  0xfbd6, 0xfbd4, 0xfbd0, 0xfbd1, 0xfbd5, 0xfbcf, 0xfa65, 0xfbd9,
+  0xfbdc, 0xfbde, 0xfbdd, 0xfbdb, 0xfbd8, 0xfbd7, 0xfa5e, 0xfbe0,
+  0xfbdf, 0xfbe1, 0xfbe2, 0xfbe3, 0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7,
+  0xfbe8, 0xfbeb, 0xfbec, 0xfbed, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1,
+  0xfbf2, 0xfbf3, 0xfbf4, 0xfbf5, 0xfbf8, 0xfbfa, 0xfbfb, 0xfbfc,
+  0xfc40, 0xfc42, 0xfc41, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc48,
+  0xfc47, 0xfc4a, 0xfc4b, 0xfae0, 0xfbe9, 0xfa90, 0xfa9b, 0xfa9c,
+  0xfab1, 0xfad8, 0xfae8, 0xfaea, 0xfb58, 0xfb5e, 0xfb75, 0xfb7d,
+  0xfb7e, 0xfb80, 0xfb82, 0xfb86, 0xfb89, 0xfb92, 0xfb9d, 0xfb9f,
+  0xfba0, 0xfba9, 0xfbb1, 0xfbb3, 0xfbb4, 0xfbb7, 0xfbd3, 0xfbda,
+  0xfbea, 0xfbf6, 0xfbf7, 0xfbf9, 0xfc49, 0xfa57, 0xfa56, 0xfa54,
+  0xfa55,
+};
+
+static const Summary16 cp932ext_uni2indx_page21[28] = {
+  /* 0x2100 */
+  {    0, 0x0000 }, {    0, 0x0040 }, {    1, 0x0002 }, {    2, 0x0000 },
+  {    2, 0x0000 }, {    2, 0x0000 }, {    2, 0x03ff }, {   12, 0x03ff },
+  {   22, 0x0000 }, {   22, 0x0000 }, {   22, 0x0000 }, {   22, 0x0000 },
+  {   22, 0x0000 }, {   22, 0x0000 }, {   22, 0x0000 }, {   22, 0x0000 },
+  /* 0x2200 */
+  {   22, 0x0000 }, {   22, 0x8402 }, {   25, 0x4e01 }, {   30, 0x0020 },
+  {   31, 0x0000 }, {   31, 0x0004 }, {   32, 0x0002 }, {   33, 0x0000 },
+  {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0020 }, {   34, 0x8000 },
+};
+static const Summary16 cp932ext_uni2indx_page24[8] = {
+  /* 0x2400 */
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0xffff }, {   51, 0x000f },
+};
+static const Summary16 cp932ext_uni2indx_page30[2] = {
+  /* 0x3000 */
+  {   55, 0x0000 }, {   55, 0xa000 },
+};
+static const Summary16 cp932ext_uni2indx_page32[29] = {
+  /* 0x3200 */
+  {   57, 0x0000 }, {   57, 0x0000 }, {   57, 0x0000 }, {   57, 0x0206 },
+  {   60, 0x0000 }, {   60, 0x0000 }, {   60, 0x0000 }, {   60, 0x0000 },
+  {   60, 0x0000 }, {   60, 0x0000 }, {   60, 0x01f0 }, {   65, 0x0000 },
+  {   65, 0x0000 }, {   65, 0x0000 }, {   65, 0x0000 }, {   65, 0x0000 },
+  /* 0x3300 */
+  {   65, 0x2008 }, {   67, 0x0110 }, {   69, 0x08cc }, {   74, 0x0840 },
+  {   76, 0x2600 }, {   79, 0x0082 }, {   81, 0x0000 }, {   81, 0x7800 },
+  {   85, 0xc000 }, {   87, 0x7000 }, {   90, 0x0002 }, {   91, 0x0000 },
+  {   91, 0x2010 },
+};
+static const Summary16 cp932ext_uni2indx_page4e[121] = {
+  /* 0x4e00 */
+  {   93, 0x0000 }, {   93, 0x0000 }, {   93, 0x0100 }, {   94, 0x0000 },
+  {   94, 0x0000 }, {   94, 0x0000 }, {   94, 0x0000 }, {   94, 0x0000 },
+  {   94, 0x0000 }, {   94, 0x0000 }, {   94, 0x0000 }, {   94, 0x0000 },
+  {   94, 0x0000 }, {   94, 0x0000 }, {   94, 0x0002 }, {   95, 0x1000 },
+  /* 0x4f00 */
+  {   96, 0x0009 }, {   98, 0x0000 }, {   98, 0x0000 }, {   98, 0x0200 },
+  {   99, 0x0000 }, {   99, 0x0040 }, {  100, 0x0000 }, {  100, 0x0000 },
+  {  100, 0x0400 }, {  101, 0x0414 }, {  104, 0x0000 }, {  104, 0x0000 },
+  {  104, 0x2200 }, {  106, 0x0000 }, {  106, 0x0000 }, {  106, 0x8000 },
+  /* 0x5000 */
+  {  107, 0x0000 }, {  107, 0x4000 }, {  108, 0x0004 }, {  109, 0x0000 },
+  {  109, 0x0045 }, {  112, 0x0000 }, {  112, 0x0000 }, {  112, 0x0001 },
+  {  113, 0x0000 }, {  113, 0x0010 }, {  114, 0x0000 }, {  114, 0x0000 },
+  {  114, 0x0000 }, {  114, 0x0100 }, {  115, 0x0000 }, {  115, 0x0010 },
+  /* 0x5100 */
+  {  116, 0x0000 }, {  116, 0x0000 }, {  116, 0x0000 }, {  116, 0x0000 },
+  {  116, 0x0400 }, {  117, 0x0000 }, {  117, 0x0010 }, {  118, 0x0000 },
+  {  118, 0x0000 }, {  118, 0x2000 }, {  119, 0x0000 }, {  119, 0x4000 },
+  {  120, 0x0000 }, {  120, 0x0000 }, {  120, 0x1000 }, {  121, 0x0000 },
+  /* 0x5200 */
+  {  121, 0x0000 }, {  121, 0x0020 }, {  122, 0x0000 }, {  122, 0x0000 },
+  {  122, 0x0000 }, {  122, 0x0000 }, {  122, 0x0000 }, {  122, 0x0000 },
+  {  122, 0x0000 }, {  122, 0x1000 }, {  123, 0x8040 }, {  125, 0x0000 },
+  {  125, 0x0001 }, {  126, 0x0800 }, {  127, 0x0000 }, {  127, 0x0000 },
+  /* 0x5300 */
+  {  127, 0x0081 }, {  129, 0x0000 }, {  129, 0x0010 }, {  130, 0x0000 },
+  {  130, 0x0000 }, {  130, 0x0000 }, {  130, 0x0000 }, {  130, 0x0004 },
+  {  131, 0x0000 }, {  131, 0x0008 }, {  132, 0x0000 }, {  132, 0x0004 },
+  {  133, 0x0000 }, {  133, 0x2000 }, {  134, 0x0000 }, {  134, 0x0000 },
+  /* 0x5400 */
+  {  134, 0x0000 }, {  134, 0x0000 }, {  134, 0x0000 }, {  134, 0x0000 },
+  {  134, 0x0000 }, {  134, 0x0000 }, {  134, 0x0000 }, {  134, 0x0000 },
+  {  134, 0x0400 }, {  135, 0x1000 }, {  136, 0x0200 }, {  137, 0x0000 },
+  {  137, 0x0000 }, {  137, 0x0000 }, {  137, 0x0000 }, {  137, 0x8000 },
+  /* 0x5500 */
+  {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x0000 },
+  {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x0000 },
+  {  138, 0x0040 },
+};
+static const Summary16 cp932ext_uni2indx_page57[44] = {
+  /* 0x5700 */
+  {  139, 0x0000 }, {  139, 0x0000 }, {  139, 0x0000 }, {  139, 0x0000 },
+  {  139, 0x0000 }, {  139, 0x0200 }, {  140, 0x0020 }, {  141, 0x0000 },
+  {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x1000 }, {  142, 0x0000 },
+  {  142, 0x0180 }, {  144, 0x0000 }, {  144, 0x0000 }, {  144, 0x0000 },
+  /* 0x5800 */
+  {  144, 0x0000 }, {  144, 0x0000 }, {  144, 0x0000 }, {  144, 0x0000 },
+  {  144, 0x0000 }, {  144, 0x0000 }, {  144, 0x0000 }, {  144, 0x0000 },
+  {  144, 0x0000 }, {  144, 0x4000 }, {  145, 0x0000 }, {  145, 0x0004 },
+  {  146, 0x0000 }, {  146, 0x0000 }, {  146, 0x0000 }, {  146, 0x0000 },
+  /* 0x5900 */
+  {  146, 0x0800 }, {  147, 0x0000 }, {  147, 0x0000 }, {  147, 0x0000 },
+  {  147, 0x0000 }, {  147, 0x2808 }, {  150, 0x0008 }, {  151, 0x0000 },
+  {  151, 0x0000 }, {  151, 0x0000 }, {  151, 0x0010 }, {  152, 0x0400 },
+};
+static const Summary16 cp932ext_uni2indx_page5b[46] = {
+  /* 0x5b00 */
+  {  153, 0x0000 }, {  153, 0x0000 }, {  153, 0x0000 }, {  153, 0x0000 },
+  {  153, 0x0000 }, {  153, 0x0040 }, {  154, 0x0000 }, {  154, 0x0000 },
+  {  154, 0x0000 }, {  154, 0x0000 }, {  154, 0x0000 }, {  154, 0x0000 },
+  {  154, 0x0001 }, {  155, 0x0100 }, {  156, 0x1000 }, {  157, 0x0000 },
+  /* 0x5c00 */
+  {  157, 0x0000 }, {  157, 0x4000 }, {  158, 0x0000 }, {  158, 0x0000 },
+  {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 },
+  {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0040 }, {  159, 0x0400 },
+  {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0020 },
+  /* 0x5d00 */
+  {  161, 0x0000 }, {  161, 0x0000 }, {  161, 0x0080 }, {  162, 0x0000 },
+  {  162, 0x0004 }, {  163, 0x0008 }, {  164, 0x2000 }, {  165, 0x0000 },
+  {  165, 0x0000 }, {  165, 0x0000 }, {  165, 0x0000 }, {  165, 0x0300 },
+  {  167, 0x0000 }, {  167, 0x0001 },
+};
+static const Summary16 cp932ext_uni2indx_page5f[458] = {
+  /* 0x5f00 */
+  {  168, 0x0000 }, {  168, 0x0000 }, {  168, 0x0002 }, {  169, 0x0010 },
+  {  170, 0x0020 }, {  171, 0x0000 }, {  171, 0x0080 }, {  172, 0x0000 },
+  {  172, 0x0000 }, {  172, 0x0000 }, {  172, 0x0000 }, {  172, 0x0080 },
+  {  173, 0x0000 }, {  173, 0x4000 }, {  174, 0x0000 }, {  174, 0x0000 },
+  /* 0x6000 */
+  {  174, 0x0000 }, {  174, 0x0000 }, {  174, 0x0000 }, {  174, 0x0000 },
+  {  174, 0x0000 }, {  174, 0x2000 }, {  175, 0x0000 }, {  175, 0x0000 },
+  {  175, 0x0420 }, {  177, 0x0000 }, {  177, 0x0000 }, {  177, 0x0000 },
+  {  177, 0x0000 }, {  177, 0x4020 }, {  179, 0x0000 }, {  179, 0x0004 },
+  /* 0x6100 */
+  {  180, 0x0000 }, {  180, 0x0002 }, {  181, 0x0001 }, {  182, 0x0081 },
+  {  184, 0x0000 }, {  184, 0x0000 }, {  184, 0x0000 }, {  184, 0x0000 },
+  {  184, 0x0000 }, {  184, 0x0100 }, {  185, 0x0000 }, {  185, 0x0000 },
+  {  185, 0x0000 }, {  185, 0x0000 }, {  185, 0x0000 }, {  185, 0x0000 },
+  /* 0x6200 */
+  {  185, 0x0000 }, {  185, 0x0008 }, {  186, 0x0000 }, {  186, 0x0000 },
+  {  186, 0x0000 }, {  186, 0x0000 }, {  186, 0x0000 }, {  186, 0x0000 },
+  {  186, 0x0000 }, {  186, 0x0000 }, {  186, 0x0040 }, {  187, 0x0000 },
+  {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 },
+  /* 0x6300 */
+  {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 },
+  {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 },
+  {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 },
+  {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0000 }, {  187, 0x0020 },
+  /* 0x6400 */
+  {  188, 0x0000 }, {  188, 0x0000 }, {  188, 0x0000 }, {  188, 0x0000 },
+  {  188, 0x0000 }, {  188, 0x0000 }, {  188, 0x0001 }, {  189, 0x0000 },
+  {  189, 0x0000 }, {  189, 0x2000 }, {  190, 0x0000 }, {  190, 0x0000 },
+  {  190, 0x4000 }, {  191, 0x0000 }, {  191, 0x0000 }, {  191, 0x0000 },
+  /* 0x6500 */
+  {  191, 0x0000 }, {  191, 0x0000 }, {  191, 0x0000 }, {  191, 0x0000 },
+  {  191, 0x4000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  /* 0x6600 */
+  {  192, 0x0201 }, {  194, 0x4020 }, {  196, 0x4010 }, {  198, 0x0802 },
+  {  200, 0x0000 }, {  200, 0x0280 }, {  202, 0x0020 }, {  203, 0x0008 },
+  {  204, 0x0000 }, {  204, 0x0200 }, {  205, 0x0001 }, {  206, 0x8004 },
+  {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0c00 },
+  /* 0x6700 */
+  {  210, 0x4000 }, {  211, 0x0000 }, {  211, 0x0000 }, {  211, 0x0000 },
+  {  211, 0x0000 }, {  211, 0x0000 }, {  211, 0x0040 }, {  212, 0x0000 },
+  {  212, 0x0000 }, {  212, 0x0000 }, {  212, 0x0000 }, {  212, 0x0800 },
+  {  213, 0x0001 }, {  214, 0x0000 }, {  214, 0x0000 }, {  214, 0x0000 },
+  /* 0x6800 */
+  {  214, 0x0002 }, {  215, 0x0000 }, {  215, 0x0000 }, {  215, 0x0000 },
+  {  215, 0x0010 }, {  216, 0x0004 }, {  217, 0x0000 }, {  217, 0x0000 },
+  {  217, 0x0000 }, {  217, 0x0000 }, {  217, 0x0000 }, {  217, 0x0000 },
+  {  217, 0x8100 }, {  219, 0x0000 }, {  219, 0x0000 }, {  219, 0x0000 },
+  /* 0x6900 */
+  {  219, 0x0000 }, {  219, 0x0000 }, {  219, 0x0000 }, {  219, 0x0000 },
+  {  219, 0x0000 }, {  219, 0x0000 }, {  219, 0x0100 }, {  220, 0x0000 },
+  {  220, 0x0000 }, {  220, 0x0100 }, {  221, 0x0000 }, {  221, 0x0000 },
+  {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0004 }, {  222, 0x0000 },
+  /* 0x6a00 */
+  {  222, 0x0000 }, {  222, 0x0000 }, {  222, 0x0000 }, {  222, 0x0001 },
+  {  223, 0x0040 }, {  224, 0x0000 }, {  224, 0x0800 }, {  225, 0x4008 },
+  {  227, 0x0000 }, {  227, 0x0000 }, {  227, 0x0000 }, {  227, 0x0000 },
+  {  227, 0x0000 }, {  227, 0x0000 }, {  227, 0x0014 }, {  229, 0x0000 },
+  /* 0x6b00 */
+  {  229, 0x0000 }, {  229, 0x0000 }, {  229, 0x0000 }, {  229, 0x0000 },
+  {  229, 0x0000 }, {  229, 0x0000 }, {  229, 0x0000 }, {  229, 0x0000 },
+  {  229, 0x0000 }, {  229, 0x0000 }, {  229, 0x0000 }, {  229, 0x0000 },
+  {  229, 0x0000 }, {  229, 0x0040 }, {  230, 0x0000 }, {  230, 0x0000 },
+  /* 0x6c00 */
+  {  230, 0x0000 }, {  230, 0x0000 }, {  230, 0x0000 }, {  230, 0x8000 },
+  {  231, 0x0000 }, {  231, 0x1000 }, {  232, 0x8000 }, {  233, 0x0000 },
+  {  233, 0x0040 }, {  234, 0x0000 }, {  234, 0x0000 }, {  234, 0x0000 },
+  {  234, 0x0000 }, {  234, 0x0400 }, {  235, 0x0000 }, {  235, 0x0000 },
+  /* 0x6d00 */
+  {  235, 0x0010 }, {  236, 0x0000 }, {  236, 0x0000 }, {  236, 0x0000 },
+  {  236, 0x0000 }, {  236, 0x0000 }, {  236, 0x8000 }, {  237, 0x0000 },
+  {  237, 0x0080 }, {  238, 0x0040 }, {  239, 0x1000 }, {  240, 0x0000 },
+  {  240, 0x8000 }, {  241, 0x0000 }, {  241, 0x0000 }, {  241, 0x1104 },
+  /* 0x6e00 */
+  {  244, 0x0000 }, {  244, 0x0000 }, {  244, 0x0080 }, {  245, 0x1200 },
+  {  247, 0x0000 }, {  247, 0x1000 }, {  248, 0x0000 }, {  248, 0x0000 },
+  {  248, 0x0000 }, {  248, 0x0000 }, {  248, 0x0000 }, {  248, 0x8000 },
+  {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 },
+  /* 0x6f00 */
+  {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 },
+  {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 }, {  249, 0x0000 },
+  {  249, 0x0100 }, {  250, 0x0000 }, {  250, 0x0000 }, {  250, 0x0020 },
+  {  251, 0x0000 }, {  251, 0x0000 }, {  251, 0x0000 }, {  251, 0x0020 },
+  /* 0x7000 */
+  {  252, 0x00a0 }, {  254, 0x0000 }, {  254, 0x0100 }, {  255, 0x0000 },
+  {  255, 0x0000 }, {  255, 0x0000 }, {  255, 0x0000 }, {  255, 0x0000 },
+  {  255, 0x0020 }, {  256, 0x0000 }, {  256, 0x0800 }, {  257, 0x0800 },
+  {  258, 0x0000 }, {  258, 0x0000 }, {  258, 0x0000 }, {  258, 0x0000 },
+  /* 0x7100 */
+  {  258, 0x8010 }, {  260, 0x0000 }, {  260, 0x0000 }, {  260, 0x0000 },
+  {  260, 0x00c0 }, {  262, 0x1000 }, {  263, 0x0000 }, {  263, 0x0000 },
+  {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 },
+  {  263, 0x0002 }, {  264, 0x0000 }, {  264, 0x0000 }, {  264, 0x4000 },
+  /* 0x7200 */
+  {  265, 0x0000 }, {  265, 0x0000 }, {  265, 0x0000 }, {  265, 0x0000 },
+  {  265, 0x0000 }, {  265, 0x0000 }, {  265, 0x0000 }, {  265, 0x0000 },
+  {  265, 0x0000 }, {  265, 0x0000 }, {  265, 0x0000 }, {  265, 0x4002 },
+  {  267, 0x0000 }, {  267, 0x0000 }, {  267, 0x0000 }, {  267, 0x0000 },
+  /* 0x7300 */
+  {  267, 0x0000 }, {  267, 0x0000 }, {  267, 0x0010 }, {  268, 0x0000 },
+  {  268, 0x0000 }, {  268, 0x0000 }, {  268, 0x0000 }, {  268, 0x0080 },
+  {  269, 0x0000 }, {  269, 0x0000 }, {  269, 0x0000 }, {  269, 0x2000 },
+  {  270, 0x0200 }, {  271, 0x0044 }, {  273, 0x0008 }, {  274, 0x0020 },
+  /* 0x7400 */
+  {  275, 0x0080 }, {  276, 0x0000 }, {  276, 0x4640 }, {  280, 0x0000 },
+  {  280, 0x0000 }, {  280, 0x0000 }, {  280, 0x0004 }, {  281, 0x0000 },
+  {  281, 0x0200 }, {  282, 0x8000 }, {  283, 0x0000 }, {  283, 0x0000 },
+  {  283, 0x0000 }, {  283, 0x0000 }, {  283, 0x0000 }, {  283, 0x0000 },
+  /* 0x7500 */
+  {  283, 0x0002 }, {  284, 0x0000 }, {  284, 0x8000 }, {  285, 0x0000 },
+  {  285, 0x0000 }, {  285, 0x0000 }, {  285, 0x8000 }, {  286, 0x0000 },
+  {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 },
+  {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 },
+  /* 0x7600 */
+  {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 },
+  {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 }, {  286, 0x0000 },
+  {  286, 0x0004 }, {  287, 0x5800 }, {  290, 0x0040 }, {  291, 0x0000 },
+  {  291, 0x0000 }, {  291, 0x0000 }, {  291, 0x0000 }, {  291, 0x0000 },
+  /* 0x7700 */
+  {  291, 0x0000 }, {  291, 0x0000 }, {  291, 0x0000 }, {  291, 0x0000 },
+  {  291, 0x0040 }, {  292, 0x0000 }, {  292, 0x0000 }, {  292, 0x0000 },
+  {  292, 0x0000 }, {  292, 0x0000 }, {  292, 0x0000 }, {  292, 0x0000 },
+  {  292, 0x0000 }, {  292, 0x0000 }, {  292, 0x0000 }, {  292, 0x0000 },
+  /* 0x7800 */
+  {  292, 0x0000 }, {  292, 0x0000 }, {  292, 0x0002 }, {  293, 0x0000 },
+  {  293, 0x4000 }, {  294, 0x0000 }, {  294, 0x0010 }, {  295, 0x0400 },
+  {  296, 0x0000 }, {  296, 0x0000 }, {  296, 0x0000 }, {  296, 0x0000 },
+  {  296, 0x0000 }, {  296, 0x0000 }, {  296, 0x0000 }, {  296, 0x0000 },
+  /* 0x7900 */
+  {  296, 0x0000 }, {  296, 0x0000 }, {  296, 0x0000 }, {  296, 0x0001 },
+  {  297, 0x0000 }, {  297, 0x0000 }, {  297, 0x0000 }, {  297, 0x0000 },
+  {  297, 0x0000 }, {  297, 0x0810 }, {  299, 0x0000 }, {  299, 0x0000 },
+  {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 },
+  /* 0x7a00 */
+  {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 },
+  {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 },
+  {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 }, {  299, 0x0000 },
+  {  299, 0x0000 }, {  299, 0x0002 }, {  300, 0x0880 }, {  302, 0x0000 },
+  /* 0x7b00 */
+  {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 },
+  {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 }, {  302, 0x0000 },
+  {  302, 0x0000 }, {  302, 0x4000 },
+};
+static const Summary16 cp932ext_uni2indx_page7d[43] = {
+  /* 0x7d00 */
+  {  303, 0x0000 }, {  303, 0x0000 }, {  303, 0x0000 }, {  303, 0x0000 },
+  {  303, 0x0100 }, {  304, 0x1000 }, {  305, 0x0000 }, {  305, 0x0000 },
+  {  305, 0x0000 }, {  305, 0x0000 }, {  305, 0x0001 }, {  306, 0x0080 },
+  {  307, 0x0000 }, {  307, 0x0040 }, {  308, 0x0000 }, {  308, 0x0000 },
+  /* 0x7e00 */
+  {  308, 0x0000 }, {  308, 0x0000 }, {  308, 0x0000 }, {  308, 0x0000 },
+  {  308, 0x0000 }, {  308, 0x0004 }, {  309, 0x0000 }, {  309, 0x0000 },
+  {  309, 0x0400 }, {  310, 0x0000 }, {  310, 0x0000 }, {  310, 0x0000 },
+  {  310, 0x0000 }, {  310, 0x0000 }, {  310, 0x0000 }, {  310, 0x0000 },
+  /* 0x7f00 */
+  {  310, 0x0000 }, {  310, 0x0000 }, {  310, 0x0000 }, {  310, 0x0000 },
+  {  310, 0x0080 }, {  311, 0x0000 }, {  311, 0x0000 }, {  311, 0x0000 },
+  {  311, 0x0000 }, {  311, 0x0000 }, {  311, 0x0002 },
+};
+static const Summary16 cp932ext_uni2indx_page83[44] = {
+  /* 0x8300 */
+  {  312, 0x0002 }, {  313, 0x0000 }, {  313, 0x0000 }, {  313, 0x0000 },
+  {  313, 0x0000 }, {  313, 0x0000 }, {  313, 0x0004 }, {  314, 0x8000 },
+  {  315, 0x0000 }, {  315, 0x0000 }, {  315, 0x0000 }, {  315, 0x0000 },
+  {  315, 0x0080 }, {  316, 0x0000 }, {  316, 0x0000 }, {  316, 0x0040 },
+  /* 0x8400 */
+  {  317, 0x0000 }, {  317, 0x0000 }, {  317, 0x0000 }, {  317, 0x0000 },
+  {  317, 0x0100 }, {  318, 0x0000 }, {  318, 0x0000 }, {  318, 0x0000 },
+  {  318, 0x0000 }, {  318, 0x0000 }, {  318, 0x0000 }, {  318, 0x0010 },
+  {  319, 0x0000 }, {  319, 0x1000 }, {  320, 0x0000 }, {  320, 0x0000 },
+  /* 0x8500 */
+  {  320, 0x0000 }, {  320, 0x0000 }, {  320, 0x0000 }, {  320, 0x0000 },
+  {  320, 0x0000 }, {  320, 0x0208 }, {  322, 0x0800 }, {  323, 0x0000 },
+  {  323, 0x0000 }, {  323, 0x0000 }, {  323, 0x0000 }, {  323, 0x0001 },
+};
+static const Summary16 cp932ext_uni2indx_page88[109] = {
+  /* 0x8800 */
+  {  324, 0x0080 }, {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0000 },
+  {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0000 },
+  {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0000 },
+  {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0000 }, {  325, 0x0020 },
+  /* 0x8900 */
+  {  326, 0x0000 }, {  326, 0x1000 }, {  327, 0x0000 }, {  327, 0x0000 },
+  {  327, 0x0000 }, {  327, 0x0000 }, {  327, 0x0000 }, {  327, 0x0000 },
+  {  327, 0x0000 }, {  327, 0x0000 }, {  327, 0x0000 }, {  327, 0x0000 },
+  {  327, 0x0000 }, {  327, 0x0000 }, {  327, 0x0000 }, {  327, 0x0000 },
+  /* 0x8a00 */
+  {  327, 0x0000 }, {  327, 0x0004 }, {  328, 0x0000 }, {  328, 0x0080 },
+  {  329, 0x0000 }, {  329, 0x0000 }, {  329, 0x0000 }, {  329, 0x0200 },
+  {  330, 0x0000 }, {  330, 0x0000 }, {  330, 0x0080 }, {  331, 0x4000 },
+  {  332, 0x0000 }, {  332, 0x8000 }, {  333, 0x0000 }, {  333, 0x0040 },
+  /* 0x8b00 */
+  {  334, 0x0000 }, {  334, 0x0000 }, {  334, 0x0000 }, {  334, 0x0000 },
+  {  334, 0x0000 }, {  334, 0x0008 }, {  335, 0x0000 }, {  335, 0x8000 },
+  {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 },
+  {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 },
+  /* 0x8c00 */
+  {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 },
+  {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 },
+  {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 },
+  {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0000 }, {  336, 0x0011 },
+  /* 0x8d00 */
+  {  338, 0x0000 }, {  338, 0x0004 }, {  339, 0x0000 }, {  339, 0x0000 },
+  {  339, 0x0000 }, {  339, 0x0000 }, {  339, 0x0000 }, {  339, 0x0040 },
+  {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 },
+  {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 },
+  /* 0x8e00 */
+  {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 },
+  {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 },
+  {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 }, {  340, 0x0000 },
+  {  340, 0x8000 },
+};
+static const Summary16 cp932ext_uni2indx_page90[238] = {
+  /* 0x9000 */
+  {  341, 0x0000 }, {  341, 0x0000 }, {  341, 0x0000 }, {  341, 0x0000 },
+  {  341, 0x0000 }, {  341, 0x0000 }, {  341, 0x0080 }, {  342, 0x0000 },
+  {  342, 0x0000 }, {  342, 0x0000 }, {  342, 0x0000 }, {  342, 0x0000 },
+  {  342, 0x0000 }, {  342, 0x4000 }, {  343, 0x0000 }, {  343, 0x0000 },
+  /* 0x9100 */
+  {  343, 0x0000 }, {  343, 0x0020 }, {  344, 0x0080 }, {  345, 0x0000 },
+  {  345, 0x0000 }, {  345, 0x0000 }, {  345, 0x0000 }, {  345, 0x0000 },
+  {  345, 0x0000 }, {  345, 0x0000 }, {  345, 0x0000 }, {  345, 0x0000 },
+  {  345, 0x0000 }, {  345, 0x4480 }, {  348, 0x6030 }, {  352, 0x0000 },
+  /* 0x9200 */
+  {  352, 0x0440 }, {  354, 0x0001 }, {  355, 0x0000 }, {  355, 0x1600 },
+  {  358, 0x4001 }, {  360, 0x0202 }, {  362, 0x0080 }, {  363, 0x0180 },
+  {  365, 0x0100 }, {  366, 0x0000 }, {  366, 0x0080 }, {  367, 0x0000 },
+  {  367, 0x0000 }, {  367, 0x02a9 }, {  372, 0x0081 }, {  374, 0x8a00 },
+  /* 0x9300 */
+  {  377, 0x0004 }, {  378, 0x6000 }, {  380, 0x0022 }, {  382, 0x0000 },
+  {  382, 0x0100 }, {  383, 0x0080 }, {  384, 0x0000 }, {  384, 0x0001 },
+  {  385, 0x0000 }, {  385, 0x0000 }, {  385, 0x0010 }, {  386, 0x0000 },
+  {  386, 0x0040 }, {  387, 0x4000 }, {  388, 0x0000 }, {  388, 0x0100 },
+  /* 0x9400 */
+  {  389, 0x0000 }, {  389, 0x0000 }, {  389, 0x0000 }, {  389, 0x0002 },
+  {  390, 0x0120 }, {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 },
+  {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 },
+  {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 },
+  /* 0x9500 */
+  {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 },
+  {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 }, {  392, 0x0000 },
+  {  392, 0x0000 }, {  392, 0x0004 }, {  393, 0x0000 }, {  393, 0x0000 },
+  {  393, 0x0000 }, {  393, 0x0000 }, {  393, 0x0000 }, {  393, 0x0000 },
+  /* 0x9600 */
+  {  393, 0x0000 }, {  393, 0x0000 }, {  393, 0x0000 }, {  393, 0x0000 },
+  {  393, 0x0000 }, {  393, 0x0000 }, {  393, 0x0000 }, {  393, 0x0000 },
+  {  393, 0x0000 }, {  393, 0x2000 }, {  394, 0x8000 }, {  395, 0x0000 },
+  {  395, 0x0000 }, {  395, 0x0000 }, {  395, 0x0000 }, {  395, 0x0000 },
+  /* 0x9700 */
+  {  395, 0x0000 }, {  395, 0x0000 }, {  395, 0x0000 }, {  395, 0x0808 },
+  {  397, 0xa008 }, {  400, 0x0022 }, {  402, 0x0000 }, {  402, 0x0000 },
+  {  402, 0x0000 }, {  402, 0x0000 }, {  402, 0x0000 }, {  402, 0x0000 },
+  {  402, 0x0000 }, {  402, 0x0000 }, {  402, 0x0000 }, {  402, 0x0000 },
+  /* 0x9800 */
+  {  402, 0x0000 }, {  402, 0x0000 }, {  402, 0x0000 }, {  402, 0x0000 },
+  {  402, 0x0000 }, {  402, 0x0080 }, {  403, 0x0020 }, {  404, 0x0000 },
+  {  404, 0x0000 }, {  404, 0x0000 }, {  404, 0x0000 }, {  404, 0x0000 },
+  {  404, 0x0000 }, {  404, 0x0000 }, {  404, 0x0000 }, {  404, 0x0000 },
+  /* 0x9900 */
+  {  404, 0x0000 }, {  404, 0x0000 }, {  404, 0x0080 }, {  405, 0x0000 },
+  {  405, 0x0000 }, {  405, 0x0000 }, {  405, 0x0000 }, {  405, 0x0000 },
+  {  405, 0x0000 }, {  405, 0x4000 }, {  406, 0x0000 }, {  406, 0x0000 },
+  {  406, 0x0000 }, {  406, 0x0000 }, {  406, 0x0000 }, {  406, 0x0000 },
+  /* 0x9a00 */
+  {  406, 0x0000 }, {  406, 0x0000 }, {  406, 0x0000 }, {  406, 0x0000 },
+  {  406, 0x4000 }, {  407, 0x0000 }, {  407, 0x0000 }, {  407, 0x0000 },
+  {  407, 0x0000 }, {  407, 0x0000 }, {  407, 0x0000 }, {  407, 0x0000 },
+  {  407, 0x0000 }, {  407, 0x1200 }, {  409, 0x0000 }, {  409, 0x0000 },
+  /* 0x9b00 */
+  {  409, 0x0000 }, {  409, 0x0000 }, {  409, 0x0000 }, {  409, 0x0000 },
+  {  409, 0x0000 }, {  409, 0x0000 }, {  409, 0x0000 }, {  409, 0x0024 },
+  {  411, 0x8000 }, {  412, 0x0000 }, {  412, 0x0000 }, {  412, 0x0802 },
+  {  414, 0x0000 }, {  414, 0x0000 }, {  414, 0x0000 }, {  414, 0x0000 },
+  /* 0x9c00 */
+  {  414, 0x0001 }, {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 },
+  {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 },
+  {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 },
+  {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 },
+  /* 0x9d00 */
+  {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0000 },
+  {  415, 0x0000 }, {  415, 0x0000 }, {  415, 0x0800 }, {  416, 0x0001 },
+  {  417, 0x0000 }, {  417, 0x0000 }, {  417, 0x0000 }, {  417, 0x0000 },
+  {  417, 0x0000 }, {  417, 0x0000 }, {  417, 0x0000 }, {  417, 0x0000 },
+  /* 0x9e00 */
+  {  417, 0x0000 }, {  417, 0x0200 }, {  418, 0x0000 }, {  418, 0x0000 },
+  {  418, 0x0000 }, {  418, 0x0000 }, {  418, 0x0000 }, {  418, 0x0000 },
+  {  418, 0x0000 }, {  418, 0x0000 }, {  418, 0x0000 }, {  418, 0x0000 },
+  {  418, 0x0000 }, {  418, 0x0002 },
+};
+static const Summary16 cp932ext_uni2indx_pagef9[19] = {
+  /* 0xf900 */
+  {  419, 0x0000 }, {  419, 0x0000 }, {  419, 0x0200 }, {  420, 0x0000 },
+  {  420, 0x0000 }, {  420, 0x0000 }, {  420, 0x0000 }, {  420, 0x0000 },
+  {  420, 0x0000 }, {  420, 0x0000 }, {  420, 0x0000 }, {  420, 0x0000 },
+  {  420, 0x0000 }, {  420, 0x1000 }, {  421, 0x0000 }, {  421, 0x0000 },
+  /* 0xfa00 */
+  {  421, 0xc000 }, {  423, 0xffff }, {  439, 0x3fff },
+};
+static const Summary16 cp932ext_uni2indx_pageff[15] = {
+  /* 0xff00 */
+  {  453, 0x0084 }, {  455, 0x0000 }, {  455, 0x0000 }, {  455, 0x0000 },
+  {  455, 0x0000 }, {  455, 0x0000 }, {  455, 0x0000 }, {  455, 0x0000 },
+  {  455, 0x0000 }, {  455, 0x0000 }, {  455, 0x0000 }, {  455, 0x0000 },
+  {  455, 0x0000 }, {  455, 0x0000 }, {  455, 0x0014 },
+};
+
+static int
+cp932ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x2100 && wc < 0x22c0)
+      summary = &cp932ext_uni2indx_page21[(wc>>4)-0x210];
+    else if (wc >= 0x2400 && wc < 0x2480)
+      summary = &cp932ext_uni2indx_page24[(wc>>4)-0x240];
+    else if (wc >= 0x3000 && wc < 0x3020)
+      summary = &cp932ext_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x3200 && wc < 0x33d0)
+      summary = &cp932ext_uni2indx_page32[(wc>>4)-0x320];
+    else if (wc >= 0x4e00 && wc < 0x5590)
+      summary = &cp932ext_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0x5700 && wc < 0x59c0)
+      summary = &cp932ext_uni2indx_page57[(wc>>4)-0x570];
+    else if (wc >= 0x5b00 && wc < 0x5de0)
+      summary = &cp932ext_uni2indx_page5b[(wc>>4)-0x5b0];
+    else if (wc >= 0x5f00 && wc < 0x7ba0)
+      summary = &cp932ext_uni2indx_page5f[(wc>>4)-0x5f0];
+    else if (wc >= 0x7d00 && wc < 0x7fb0)
+      summary = &cp932ext_uni2indx_page7d[(wc>>4)-0x7d0];
+    else if (wc >= 0x8300 && wc < 0x85c0)
+      summary = &cp932ext_uni2indx_page83[(wc>>4)-0x830];
+    else if (wc >= 0x8800 && wc < 0x8ed0)
+      summary = &cp932ext_uni2indx_page88[(wc>>4)-0x880];
+    else if (wc >= 0x9000 && wc < 0x9ee0)
+      summary = &cp932ext_uni2indx_page90[(wc>>4)-0x900];
+    else if (wc >= 0xf900 && wc < 0xfa30)
+      summary = &cp932ext_uni2indx_pagef9[(wc>>4)-0xf90];
+    else if (wc >= 0xff00 && wc < 0xfff0)
+      summary = &cp932ext_uni2indx_pageff[(wc>>4)-0xff0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = cp932ext_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/cp936ext.h b/libiconv/cp936ext.h
new file mode 100644 (file)
index 0000000..4d4a5e4
--- /dev/null
@@ -0,0 +1,80 @@
+
+/*
+ * CP936 extensions
+ */
+
+static const unsigned short cp936ext_2uni_pagea6[181-159] = {
+  /* 0xa6 */
+                                                          0xfe35,
+  0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41,
+  0xfe42, 0xfe43, 0xfe44, 0xfffd, 0xfffd, 0xfe3b, 0xfe3c, 0xfe37,
+  0xfe38, 0xfe31, 0xfffd, 0xfe33, 0xfe34,
+};
+static const unsigned short cp936ext_2uni_pagea8[128-122] = {
+  /* 0xa8 */
+                  0x0251, 0xfffd, 0x0144, 0x0148, 0xfffd, 0x0261,
+};
+
+static int
+cp936ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 == 0xa6) || (c1 == 0xa8)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) {
+        unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40));
+        unsigned short wc = 0xfffd;
+        if (i < 7410) {
+          if (i >= 7189 && i < 7211)
+            wc = cp936ext_2uni_pagea6[i-7189];
+        } else {
+          if (i >= 7532 && i < 7538)
+            wc = cp936ext_2uni_pagea8[i-7532];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short cp936ext_page01[16] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0xa8bd, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
+  0xa8be, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
+};
+static const unsigned short cp936ext_page02[24] = {
+  0x0000, 0xa8bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
+  0x0000, 0xa8c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
+};
+static const unsigned short cp936ext_pagefe[24] = {
+  0x0000, 0xa6f2, 0x0000, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, /*0x30-0x37*/
+  0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, /*0x38-0x3f*/
+  0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
+};
+
+static int
+cp936ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    unsigned short c = 0;
+    if (wc >= 0x0140 && wc < 0x0150)
+      c = cp936ext_page01[wc-0x0140];
+    else if (wc >= 0x0250 && wc < 0x0268)
+      c = cp936ext_page02[wc-0x0250];
+    else if (wc >= 0xfe30 && wc < 0xfe48)
+      c = cp936ext_pagefe[wc-0xfe30];
+    if (c != 0) {
+      r[0] = (c >> 8); r[1] = (c & 0xff);
+      return 2;
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/cp950.h b/libiconv/cp950.h
new file mode 100644 (file)
index 0000000..c7bc88e
--- /dev/null
@@ -0,0 +1,103 @@
+
+/*
+ * CP950
+ */
+
+/*
+ * Microsoft CP950 is a slightly extended and slightly modified version of
+ * BIG5. The differences between the EASTASIA/OTHER/BIG5.TXT and
+ * VENDORS/MICSFT/WINDOWS/CP950.TXT tables found on ftp.unicode.org are
+ * as follows:
+ *
+ * 1. Some characters in the BIG5 range are defined differently:
+ *
+ *     code   BIG5.TXT                       CP950.TXT
+ *    0xA145  0x2022 # BULLET                0x2027 # HYPHENATION POINT
+ *    0xA14E  0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA
+ *                                           0xFE51 # SMALL IDEOGRAPHIC COMMA
+ *    0xA15A    ---                          0x2574 # BOX DRAWINGS LIGHT LEFT
+ *    0xA1C2  0x203E # OVERLINE              0x00AF # MACRON
+ *    0xA1C3    ---                          0xFFE3 # FULLWIDTH MACRON
+ *    0xA1C5    ---                          0x02CD # MODIFIER LETTER LOW MACRON
+ *    0xA1E3  0x223C # TILDE OPERATOR        0xFF5E # FULLWIDTH TILDE
+ *    0xA1F2  0x2641 # EARTH                 0x2295 # CIRCLED PLUS
+ *    0xA1F3  0x2609 # SUN                   0x2299 # CIRCLED DOT OPERATOR
+ *    0xA1FE    ---                          0xFF0F # FULLWIDTH SOLIDUS
+ *    0xA240    ---                          0xFF3C # FULLWIDTH REVERSE SOLIDUS
+ *    0xA241  0xFF0F # FULLWIDTH SOLIDUS     0x2215 # DIVISION SLASH
+ *    0xA242  0xFF3C # FULLWIDTH REVERSE SOLIDUS
+ *                                           0xFE68 # SMALL REVERSE SOLIDUS
+ *    0xA244  0x00A5 # YEN SIGN              0xFFE5 # FULLWIDTH YEN SIGN
+ *    0xA246  0x00A2 # CENT SIGN             0xFFE0 # FULLWIDTH CENT SIGN
+ *    0xA247  0x00A3 # POUND SIGN            0xFFE1 # FULLWIDTH POUND SIGN
+ *    0xA2CC    ---                          0x5341
+ *    0xA2CE    ---                          0x5345
+ *
+ *    We don't implement these changes.
+ *
+ * 2. A small new row. See cp950ext.h.
+ */
+
+#include "cp950ext.h"
+
+static int
+cp950_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (BIG5 extended) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+        int ret = big5_mbtowc(conv,pwc,s,2);
+        if (ret != RET_ILSEQ)
+          return ret;
+      }
+    }
+    if (c == 0xf9) {
+      int ret = cp950ext_mbtowc(conv,pwc,s,2);
+      if (ret != RET_ILSEQ)
+        return ret;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+cp950_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (BIG5 extended) */
+  ret = big5_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+  ret = cp950ext_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/cp950ext.h b/libiconv/cp950ext.h
new file mode 100644 (file)
index 0000000..eeae270
--- /dev/null
@@ -0,0 +1,142 @@
+
+/*
+ * CP950 extensions
+ */
+
+static const unsigned short cp950ext_2uni_pagef9[157-116] = {
+  /* 0xf9 */
+                                  0x7881, 0x92b9, 0x88cf, 0x58bb,
+  0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, 0x2560, 0x256c,
+  0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, 0x2555, 0x255e,
+  0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, 0x2565, 0x2556,
+  0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, 0x2551, 0x2550,
+  0x256d, 0x256e, 0x2570, 0x256f, 0x2593,
+};
+
+static int
+cp950ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 == 0xf9)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+        unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
+        unsigned short wc = 0xfffd;
+        {
+          if (i >= 13932 && i < 13973)
+            wc = cp950ext_2uni_pagef9[i-13932];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short cp950ext_2charset[41] = {
+  0xf9f9, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df,
+  0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2,
+  0xf9e0, 0xf9eb, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed,
+  0xf9f6, 0xf9e4, 0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd,
+  0xf9fc, 0xf9fe, 0xf9d9, 0xf9dc, 0xf9da, 0xf9d6, 0xf9db, 0xf9d8,
+  0xf9d7,
+};
+
+static const Summary16 cp950ext_uni2indx_page25[10] = {
+  /* 0x2500 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0xffff }, {   16, 0xffff }, {   32, 0x0001 },
+  {   33, 0x0000 }, {   33, 0x0008 },
+};
+static const Summary16 cp950ext_uni2indx_page58[12] = {
+  /* 0x5800 */
+  {   34, 0x0000 }, {   34, 0x0000 }, {   34, 0x0000 }, {   34, 0x0000 },
+  {   34, 0x0000 }, {   34, 0x0000 }, {   34, 0x0000 }, {   34, 0x0000 },
+  {   34, 0x0000 }, {   34, 0x0000 }, {   34, 0x0000 }, {   34, 0x0800 },
+};
+static const Summary16 cp950ext_uni2indx_page5a[16] = {
+  /* 0x5a00 */
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0400 },
+};
+static const Summary16 cp950ext_uni2indx_page60[6] = {
+  /* 0x6000 */
+  {   36, 0x0000 }, {   36, 0x0000 }, {   36, 0x0000 }, {   36, 0x0000 },
+  {   36, 0x0000 }, {   36, 0x0004 },
+};
+static const Summary16 cp950ext_uni2indx_page78[9] = {
+  /* 0x7800 */
+  {   37, 0x0000 }, {   37, 0x0000 }, {   37, 0x0000 }, {   37, 0x0000 },
+  {   37, 0x0000 }, {   37, 0x0000 }, {   37, 0x0000 }, {   37, 0x0000 },
+  {   37, 0x0002 },
+};
+static const Summary16 cp950ext_uni2indx_page7c[11] = {
+  /* 0x7c00 */
+  {   38, 0x0000 }, {   38, 0x0000 }, {   38, 0x0000 }, {   38, 0x0000 },
+  {   38, 0x0000 }, {   38, 0x0000 }, {   38, 0x0000 }, {   38, 0x0000 },
+  {   38, 0x0000 }, {   38, 0x0000 }, {   38, 0x0080 },
+};
+static const Summary16 cp950ext_uni2indx_page88[13] = {
+  /* 0x8800 */
+  {   39, 0x0000 }, {   39, 0x0000 }, {   39, 0x0000 }, {   39, 0x0000 },
+  {   39, 0x0000 }, {   39, 0x0000 }, {   39, 0x0000 }, {   39, 0x0000 },
+  {   39, 0x0000 }, {   39, 0x0000 }, {   39, 0x0000 }, {   39, 0x0000 },
+  {   39, 0x8000 },
+};
+static const Summary16 cp950ext_uni2indx_page92[12] = {
+  /* 0x9200 */
+  {   40, 0x0000 }, {   40, 0x0000 }, {   40, 0x0000 }, {   40, 0x0000 },
+  {   40, 0x0000 }, {   40, 0x0000 }, {   40, 0x0000 }, {   40, 0x0000 },
+  {   40, 0x0000 }, {   40, 0x0000 }, {   40, 0x0000 }, {   40, 0x0200 },
+};
+
+static int
+cp950ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x2500 && wc < 0x25a0)
+      summary = &cp950ext_uni2indx_page25[(wc>>4)-0x250];
+    else if (wc >= 0x5800 && wc < 0x58c0)
+      summary = &cp950ext_uni2indx_page58[(wc>>4)-0x580];
+    else if (wc >= 0x5a00 && wc < 0x5b00)
+      summary = &cp950ext_uni2indx_page5a[(wc>>4)-0x5a0];
+    else if (wc >= 0x6000 && wc < 0x6060)
+      summary = &cp950ext_uni2indx_page60[(wc>>4)-0x600];
+    else if (wc >= 0x7800 && wc < 0x7890)
+      summary = &cp950ext_uni2indx_page78[(wc>>4)-0x780];
+    else if (wc >= 0x7c00 && wc < 0x7cb0)
+      summary = &cp950ext_uni2indx_page7c[(wc>>4)-0x7c0];
+    else if (wc >= 0x8800 && wc < 0x88d0)
+      summary = &cp950ext_uni2indx_page88[(wc>>4)-0x880];
+    else if (wc >= 0x9200 && wc < 0x92c0)
+      summary = &cp950ext_uni2indx_page92[(wc>>4)-0x920];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = cp950ext_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/encodings.def b/libiconv/encodings.def
new file mode 100644 (file)
index 0000000..67dda08
--- /dev/null
@@ -0,0 +1,661 @@
+/* Copyright (C) 1999 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU ICONV Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU ICONV Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* The list of all user-visible encodings. */
+
+/* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
+   in a file named "foobar.h" through the functions foobar_mbtowc and
+   foobar_wctomb (and possibly foobar_reset). */
+
+/* DEFENCODING(( name, alias1, ..., ),
+               xxx,
+               { xxx_mbtowc },
+               { xxx_wctomb, xxx_reset })
+   defines an encoding with the given name and aliases. (There is no
+   difference between a name and an alias. By convention, the name is chosen
+   as the preferred MIME name or the standard name.)
+   All names and aliases must be in ASCII and in UPPERCASE!
+   xxx is the name as used in the C code (lowercase).
+ */
+
+
+DEFENCODING(( "US-ASCII",
+              "ASCII",
+              "ISO646-US",
+              "ISO_646.IRV:1991",
+              "ISO-IR-6",
+              "ANSI_X3.4-1968",
+              "CP367",
+              "IBM367",
+              "US",
+              "CSASCII",
+            ),
+            ascii,
+            { ascii_mbtowc },             { ascii_wctomb, NULL })
+
+/* General multi-byte encodings */
+
+DEFENCODING(( "UTF-8",
+            ),
+            utf8,
+            { utf8_mbtowc },              { utf8_wctomb, NULL })
+
+DEFENCODING(( "UCS-2",
+              "ISO-10646-UCS-2",
+              "CSUNICODE",
+            ),
+            ucs2,
+            { ucs2_mbtowc },              { ucs2_wctomb, NULL })
+
+DEFENCODING(( "UCS-4",
+              "ISO-10646-UCS-4",
+              "CSUCS4",
+            ),
+            ucs4,
+            { ucs4_mbtowc },              { ucs4_wctomb, NULL })
+
+DEFENCODING(( "UTF-16",
+            ),
+            utf16,
+            { utf16_mbtowc },             { utf16_wctomb, NULL })
+
+DEFENCODING(( "UTF-7",
+              "UNICODE-1-1-UTF-7",
+              "CSUNICODE11UTF7",
+            ),
+            utf7,
+            { utf7_mbtowc },              { utf7_wctomb, utf7_reset })
+
+DEFENCODING(( "UCS-2-INTERNAL",
+            ),
+            ucs2internal,
+            { ucs2internal_mbtowc },      { ucs2internal_wctomb, NULL })
+
+DEFENCODING(( "UCS-2-SWAPPED",
+            ),
+            ucs2swapped,
+            { ucs2swapped_mbtowc },       { ucs2swapped_wctomb, NULL })
+
+DEFENCODING(( "UCS-2-BE",
+              "UNICODEBIG", /* glibc compatibility */
+            ),
+            ucs2be,
+            { ucs2be_mbtowc },            { ucs2be_wctomb, NULL })
+
+DEFENCODING(( "UCS-2-LE",
+              "UNICODELITTLE", /* glibc compatibility */
+            ),
+            ucs2le,
+            { ucs2le_mbtowc },            { ucs2le_wctomb, NULL })
+
+DEFENCODING(( "UCS-4-INTERNAL",
+            ),
+            ucs4internal,
+            { ucs4internal_mbtowc },      { ucs4internal_wctomb, NULL })
+
+DEFENCODING(( "UCS-4-SWAPPED",
+            ),
+            ucs4swapped,
+            { ucs4swapped_mbtowc },       { ucs4swapped_wctomb, NULL })
+
+DEFENCODING(( "UCS-4-BE",
+            ),
+            ucs4be,
+            { ucs4be_mbtowc },            { ucs4be_wctomb, NULL })
+
+DEFENCODING(( "UCS-4-LE",
+            ),
+            ucs4le,
+            { ucs4le_mbtowc },            { ucs4le_wctomb, NULL })
+
+DEFENCODING(( "JAVA",
+            ),
+            java,
+            { java_mbtowc },              { java_wctomb, NULL })
+
+/* Standard 8-bit encodings */
+
+DEFENCODING(( "ISO-8859-1",
+              "ISO_8859-1",
+              "ISO_8859-1:1987",
+              "ISO-IR-100",
+              "CP819",
+              "IBM819",
+              "LATIN1",
+              "L1",
+              "CSISOLATIN1",
+            ),
+            iso8859_1,
+            { iso8859_1_mbtowc },         { iso8859_1_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-2",
+              "ISO_8859-2",
+              "ISO_8859-2:1987",
+              "ISO-IR-101",
+              "LATIN2",
+              "L2",
+              "CSISOLATIN2",
+            ),
+            iso8859_2,
+            { iso8859_2_mbtowc },         { iso8859_2_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-3",
+              "ISO_8859-3",
+              "ISO_8859-3:1988",
+              "ISO-IR-109",
+              "LATIN3",
+              "L3",
+              "CSISOLATIN3",
+            ),
+            iso8859_3,
+            { iso8859_3_mbtowc },         { iso8859_3_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-4",
+              "ISO_8859-4",
+              "ISO_8859-4:1988",
+              "ISO-IR-110",
+              "LATIN4",
+              "L4",
+              "CSISOLATIN4",
+            ),
+            iso8859_4,
+            { iso8859_4_mbtowc },         { iso8859_4_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-5",
+              "ISO_8859-5",
+              "ISO_8859-5:1988",
+              "ISO-IR-144",
+              "CYRILLIC",
+              "CSISOLATINCYRILLIC",
+            ),
+            iso8859_5,
+            { iso8859_5_mbtowc },         { iso8859_5_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-6",
+              "ISO_8859-6",
+              "ISO_8859-6:1987",
+              "ISO-IR-127",
+              "ECMA-114",
+              "ASMO-708",
+              "ARABIC",
+              "CSISOLATINARABIC",
+            ),
+            iso8859_6,
+            { iso8859_6_mbtowc },         { iso8859_6_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-7",
+              "ISO_8859-7",
+              "ISO_8859-7:1987",
+              "ISO-IR-126",
+              "ECMA-118",
+              "ELOT_928",
+              "GREEK8",
+              "GREEK",
+              "CSISOLATINGREEK",
+            ),
+            iso8859_7,
+            { iso8859_7_mbtowc },         { iso8859_7_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-8",
+              "ISO_8859-8",
+              "ISO_8859-8:1988",
+              "ISO-IR-138",
+              "HEBREW",
+              "CSISOLATINHEBREW",
+            ),
+            iso8859_8,
+            { iso8859_8_mbtowc },         { iso8859_8_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-9",
+              "ISO_8859-9",
+              "ISO_8859-9:1989",
+              "ISO-IR-148",
+              "LATIN5",
+              "L5",
+              "CSISOLATIN5",
+            ),
+            iso8859_9,
+            { iso8859_9_mbtowc },         { iso8859_9_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-10",
+              "ISO_8859-10",
+              "ISO_8859-10:1992",
+              "ISO-IR-157",
+              "LATIN6",
+              "L6",
+              "CSISOLATIN6",
+            ),
+            iso8859_10,
+            { iso8859_10_mbtowc },        { iso8859_10_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-13",
+              "ISO_8859-13",
+              "ISO-IR-179",
+              "LATIN7",
+              "L7",
+            ),
+            iso8859_13,
+            { iso8859_13_mbtowc },        { iso8859_13_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-14",
+              "ISO_8859-14",
+              "ISO_8859-14:1998",
+              "LATIN8",
+              "L8",
+            ),
+            iso8859_14,
+            { iso8859_14_mbtowc },        { iso8859_14_wctomb, NULL })
+
+DEFENCODING(( "ISO-8859-15",
+              "ISO_8859-15",
+              "ISO_8859-15:1998",
+            ),
+            iso8859_15,
+            { iso8859_15_mbtowc },        { iso8859_15_wctomb, NULL })
+
+DEFENCODING(( "KOI8-R",
+              "CSKOI8R",
+            ),
+            koi8_r,
+            { koi8_r_mbtowc },            { koi8_r_wctomb, NULL })
+
+DEFENCODING(( "KOI8-U",
+            ),
+            koi8_u,
+            { koi8_u_mbtowc },            { koi8_u_wctomb, NULL })
+
+DEFENCODING(( "KOI8-RU",
+            ),
+            koi8_ru,
+            { koi8_ru_mbtowc },           { koi8_ru_wctomb, NULL })
+
+/* Windows 8-bit encodings */
+
+DEFENCODING(( "CP1250",
+              "WINDOWS-1250",
+              "MS-EE",
+            ),
+            cp1250,
+            { cp1250_mbtowc },            { cp1250_wctomb, NULL })
+
+DEFENCODING(( "CP1251",
+              "WINDOWS-1251",
+              "MS-CYRL",
+            ),
+            cp1251,
+            { cp1251_mbtowc },            { cp1251_wctomb, NULL })
+
+DEFENCODING(( "CP1252",
+              "WINDOWS-1252",
+              "MS-ANSI",
+            ),
+            cp1252,
+            { cp1252_mbtowc },            { cp1252_wctomb, NULL })
+
+DEFENCODING(( "CP1253",
+              "WINDOWS-1253",
+              "MS-GREEK",
+            ),
+            cp1253,
+            { cp1253_mbtowc },            { cp1253_wctomb, NULL })
+
+DEFENCODING(( "CP1254",
+              "WINDOWS-1254",
+              "MS-TURK",
+            ),
+            cp1254,
+            { cp1254_mbtowc },            { cp1254_wctomb, NULL })
+
+DEFENCODING(( "CP1255",
+              "WINDOWS-1255",
+              "MS-HEBR",
+            ),
+            cp1255,
+            { cp1255_mbtowc },            { cp1255_wctomb, NULL })
+
+DEFENCODING(( "CP1256",
+              "WINDOWS-1256",
+              "MS-ARAB",
+            ),
+            cp1256,
+            { cp1256_mbtowc },            { cp1256_wctomb, NULL })
+
+DEFENCODING(( "CP1257",
+              "WINDOWS-1257",
+              "WINBALTRIM",
+            ),
+            cp1257,
+            { cp1257_mbtowc },            { cp1257_wctomb, NULL })
+
+DEFENCODING(( "CP1258",
+              "WINDOWS-1258",
+            ),
+            cp1258,
+            { cp1258_mbtowc },            { cp1258_wctomb, NULL })
+
+/* DOS 8-bit encodings */
+
+DEFENCODING(( "CP850",
+              "IBM850",
+              "850",
+              "CSPC850MULTILINGUAL",
+            ),
+            cp850,
+            { cp850_mbtowc },             { cp850_wctomb, NULL })
+
+DEFENCODING(( "CP866",
+              "IBM866",
+              "866",
+              "CSIBM866",
+            ),
+            cp866,
+            { cp866_mbtowc },             { cp866_wctomb, NULL })
+
+/* Macintosh 8-bit encodings */
+
+DEFENCODING(( "MACROMAN",  /* This is the best table for MACINTOSH. The ones */
+              "MACINTOSH", /* in glibc and FreeBSD-iconv are bad quality. */
+            ),
+            mac_roman,
+            { mac_roman_mbtowc },         { mac_roman_wctomb, NULL })
+
+DEFENCODING(( "MACCENTRALEUROPE",
+            ),
+            mac_centraleurope,
+            { mac_centraleurope_mbtowc }, { mac_centraleurope_wctomb, NULL })
+
+DEFENCODING(( "MACICELAND",
+            ),
+            mac_iceland,
+            { mac_iceland_mbtowc },       { mac_iceland_wctomb, NULL })
+
+DEFENCODING(( "MACCROATIAN",
+            ),
+            mac_croatian,
+            { mac_croatian_mbtowc },      { mac_croatian_wctomb, NULL })
+
+DEFENCODING(( "MACROMANIA",
+            ),
+            mac_romania,
+            { mac_romania_mbtowc },       { mac_romania_wctomb, NULL })
+
+DEFENCODING(( "MACCYRILLIC",
+            ),
+            mac_cyrillic,
+            { mac_cyrillic_mbtowc },      { mac_cyrillic_wctomb, NULL })
+
+DEFENCODING(( "MACUKRAINE",
+            ),
+            mac_ukraine,
+            { mac_ukraine_mbtowc },       { mac_ukraine_wctomb, NULL })
+
+DEFENCODING(( "MACGREEK",
+            ),
+            mac_greek,
+            { mac_greek_mbtowc },         { mac_greek_wctomb, NULL })
+
+DEFENCODING(( "MACTURKISH",
+            ),
+            mac_turkish,
+            { mac_turkish_mbtowc },       { mac_turkish_wctomb, NULL })
+
+DEFENCODING(( "MACHEBREW",
+            ),
+            mac_hebrew,
+            { mac_hebrew_mbtowc },        { mac_hebrew_wctomb, NULL })
+
+DEFENCODING(( "MACARABIC",
+            ),
+            mac_arabic,
+            { mac_arabic_mbtowc },        { mac_arabic_wctomb, NULL })
+
+DEFENCODING(( "MACTHAI",
+            ),
+            mac_thai,
+            { mac_thai_mbtowc },          { mac_thai_wctomb, NULL })
+
+/* Other platform specific 8-bit encodings */
+
+DEFENCODING(( "HP-ROMAN8",
+              "ROMAN8",
+              "R8",
+              "CSHPROMAN8",
+            ),
+            hp_roman8,
+            { hp_roman8_mbtowc },         { hp_roman8_wctomb, NULL })
+
+DEFENCODING(( "NEXTSTEP",
+            ),
+            nextstep,
+            { nextstep_mbtowc },          { nextstep_wctomb, NULL })
+
+/* Regional 8-bit encodings used for a single language */
+
+DEFENCODING(( "ARMSCII-8",
+            ),
+            armscii_8,
+            { armscii_8_mbtowc },         { armscii_8_wctomb, NULL })
+
+DEFENCODING(( "GEORGIAN-ACADEMY",
+            ),
+            georgian_academy,
+            { georgian_academy_mbtowc },  { georgian_academy_wctomb, NULL })
+
+DEFENCODING(( "GEORGIAN-PS",
+            ),
+            georgian_ps,
+            { georgian_ps_mbtowc },       { georgian_ps_wctomb, NULL })
+
+DEFENCODING(( "MULELAO-1",
+            ),
+            mulelao,
+            { mulelao_mbtowc },           { mulelao_wctomb, NULL })
+
+DEFENCODING(( "CP1133",
+              "IBM-CP1133",
+            ),
+            cp1133,
+            { cp1133_mbtowc },            { cp1133_wctomb, NULL })
+
+DEFENCODING(( "TIS-620",
+              "TIS620",
+              "TIS620-0",
+              "TIS620.2529-1",
+              "TIS620.2533-0",
+              "TIS620.2533-1",
+              "ISO-IR-166",
+            ),
+            tis620,
+            { tis620_mbtowc },            { tis620_wctomb, NULL })
+
+DEFENCODING(( "CP874",
+              "WINDOWS-874",
+            ),
+            cp874,
+            { cp874_mbtowc },             { cp874_wctomb, NULL })
+
+DEFENCODING(( "VISCII",
+              "VISCII1.1-1",
+              "CSVISCII",
+            ),
+            viscii,
+            { viscii_mbtowc },            { viscii_wctomb, NULL })
+
+DEFENCODING(( "TCVN",
+              "TCVN-5712",
+              "TCVN5712-1",
+              "TCVN5712-1:1993",
+            ),
+            tcvn,
+            { tcvn_mbtowc },              { tcvn_wctomb, NULL })
+
+/* CJK character sets */
+
+DEFENCODING(( "JIS_X0201",
+              "JISX0201-1976",
+              "JISX0201.1976-0",
+              "X0201",
+              "CSHALFWIDTHKATAKANA",
+            ),
+            jisx0201,
+            { jisx0201_mbtowc },          { jisx0201_wctomb, NULL })
+
+DEFENCODING(( "JIS_X0208",
+              "JIS_X0208.1983-0",
+              "JIS_X0208.1983-1",
+              "JIS_X0208-1983",
+              "JIS_X0208-1990",
+              "JIS0208",
+            ),
+            jisx0208,
+            { jisx0208_mbtowc },          { jisx0208_wctomb, NULL })
+
+DEFENCODING(( "JIS_X0212",
+              "JIS_X0212.1990-0",
+              "JIS_X0212-1990",
+              "X0212",
+              "ISO-IR-159",
+              "CSISO159JISX02121990",
+            ),
+            jisx0212,
+            { jisx0212_mbtowc },          { jisx0212_wctomb, NULL })
+
+DEFENCODING(( "KSC_5601",
+              "KSC5601.1987-0",
+              "KS_C_5601-1987",
+              "KS_C_5601-1989",
+              "ISO-IR-149",
+              "CSKSC56011987",
+              "KOREAN",
+              "CP949",
+            ),
+            ksc5601,
+            { ksc5601_mbtowc },           { ksc5601_wctomb, NULL })
+
+/* CJK encodings */
+
+DEFENCODING(( "EUC-JP",
+              "EUCJP",
+              "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
+              "CSEUCPKDFMTJAPANESE",
+            ),
+            euc_jp,
+            { euc_jp_mbtowc },            { euc_jp_wctomb, NULL })
+
+DEFENCODING(( "SJIS",
+              "SHIFT_JIS",
+              "SHIFT-JIS",
+              "MS_KANJI",
+              "CSSHIFTJIS",
+            ),
+            sjis,
+            { sjis_mbtowc },              { sjis_wctomb, NULL })
+
+DEFENCODING(( "CP932",
+            ),
+            cp932,
+            { cp932_mbtowc },             { cp932_wctomb, NULL })
+
+DEFENCODING(( "ISO-2022-JP",
+              "CSISO2022JP",
+            ),
+            iso2022_jp,
+            { iso2022_jp_mbtowc },        { iso2022_jp_wctomb, iso2022_jp_reset })
+
+DEFENCODING(( "ISO-2022-JP-1",
+            ),
+            iso2022_jp1,
+            { iso2022_jp1_mbtowc },       { iso2022_jp1_wctomb, iso2022_jp1_reset })
+
+DEFENCODING(( "ISO-2022-JP-2",
+              "CSISO2022JP2",
+            ),
+            iso2022_jp2,
+            { iso2022_jp2_mbtowc },       { iso2022_jp2_wctomb, iso2022_jp2_reset })
+
+DEFENCODING(( "EUC-CN",
+              "EUCCN",
+              "GB2312", /* yes, GB2312 as registered by IANA is actually EUC-CN */
+              "CSGB2312",
+            ),
+            euc_cn,
+            { euc_cn_mbtowc },            { euc_cn_wctomb, NULL })
+
+DEFENCODING(( "GBK",
+              "CP936",
+            ),
+            ces_gbk,
+            { ces_gbk_mbtowc },           { ces_gbk_wctomb, NULL })
+
+DEFENCODING(( "ISO-2022-CN",
+              "CSISO2022CN",
+            ),
+            iso2022_cn,
+            { iso2022_cn_mbtowc },        { iso2022_cn_wctomb, iso2022_cn_reset })
+
+DEFENCODING(( "ISO-2022-CN-EXT",
+            ),
+            iso2022_cn_ext,
+            { iso2022_cn_ext_mbtowc },    { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })
+
+DEFENCODING(( "HZ",
+              "HZ-GB-2312",
+            ),
+            hz,
+            { hz_mbtowc },                { hz_wctomb, hz_reset })
+
+DEFENCODING(( "EUC-TW",
+              "EUCTW",
+              "CSEUCTW",
+            ),
+            euc_tw,
+            { euc_tw_mbtowc },            { euc_tw_wctomb, NULL })
+
+DEFENCODING(( "BIG5",
+              "BIG-5",
+              "BIG-FIVE",
+              "BIGFIVE",
+              "CSBIG5",
+            ),
+            ces_big5,
+            { ces_big5_mbtowc },          { ces_big5_wctomb, NULL })
+
+DEFENCODING(( "CP950",
+            ),
+            cp950,
+            { cp950_mbtowc },             { cp950_wctomb, NULL })
+
+DEFENCODING(( "EUC-KR",
+              "EUCKR",
+              "CSEUCKR",
+            ),
+            euc_kr,
+            { euc_kr_mbtowc },            { euc_kr_wctomb, NULL })
+
+DEFENCODING(( "JOHAB",
+              "CP1361",
+            ),
+            johab,
+            { johab_mbtowc },             { johab_wctomb, NULL })
+
+DEFENCODING(( "ISO-2022-KR",
+              "CSISO2022KR",
+            ),
+            iso2022_kr,
+            { iso2022_kr_mbtowc },        { iso2022_kr_wctomb, iso2022_kr_reset })
+
diff --git a/libiconv/euc_cn.h b/libiconv/euc_cn.h
new file mode 100644 (file)
index 0000000..ae8f7de
--- /dev/null
@@ -0,0 +1,53 @@
+
+/*
+ * EUC-CN
+ */
+
+static int
+euc_cn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII or GB 1988-89) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (GB 2312-1980) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        unsigned char buf[2];
+        buf[0] = c-0x80; buf[1] = c2-0x80;
+        return gb2312_mbtowc(conv,pwc,buf,2);
+      } else
+        return RET_ILSEQ;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+euc_cn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII or GB 1988-89) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (GB 2312-1980) */
+  ret = gb2312_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0]+0x80;
+    r[1] = buf[1]+0x80;
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/euc_jp.h b/libiconv/euc_jp.h
new file mode 100644 (file)
index 0000000..5d6384a
--- /dev/null
@@ -0,0 +1,162 @@
+
+/*
+ * EUC-JP
+ */
+
+static int
+euc_jp_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (JIS X 0208) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    if (c < 0xf5) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        unsigned char buf[2];
+        buf[0] = c-0x80; buf[1] = c2-0x80;
+        return jisx0208_mbtowc(conv,pwc,buf,2);
+      } else
+        return RET_ILSEQ;
+    } else {
+      /* User-defined range. See
+       * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        *pwc = 0xe000 + 94*(c-0xf5) + (c2-0xa1);
+        return 2;
+      } else
+        return RET_ILSEQ;
+    }
+  }
+  /* Code set 2 (half-width katakana) */
+  if (c == 0x8e) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xe0) {
+        int ret = jisx0201_mbtowc(conv,pwc,s+1,n-1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        return 2;
+      } else
+        return RET_ILSEQ;
+    }
+  }
+  /* Code set 3 (JIS X 0212-1990) */
+  if (c == 0x8f) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        if (n < 3)
+          return RET_TOOFEW(0);
+        if (c2 < 0xf5) {
+          unsigned char c3 = s[2];
+          if (c3 >= 0xa1 && c3 < 0xff) {
+            unsigned char buf[2];
+            int ret;
+            buf[0] = c2-0x80; buf[1] = c3-0x80;
+            ret = jisx0212_mbtowc(conv,pwc,buf,2);
+            if (ret == RET_ILSEQ)
+              return RET_ILSEQ;
+            if (ret != 2) abort();
+            return 3;
+          } else
+            return RET_ILSEQ;
+        } else {
+          /* User-defined range. See
+           * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+          unsigned char c3 = s[2];
+          if (c3 >= 0xa1 && c3 < 0xff) {
+            *pwc = 0xe3ac + 94*(c2-0xf5) + (c3-0xa1);
+            return 3;
+          } else
+            return RET_ILSEQ;
+        }
+      } else
+        return RET_ILSEQ;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+euc_jp_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (JIS X 0208) */
+  ret = jisx0208_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0]+0x80;
+    r[1] = buf[1]+0x80;
+    return 2;
+  }
+
+  /* Code set 2 (half-width katakana) */
+  ret = jisx0201_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = 0x8e;
+    r[1] = buf[0];
+    return 2;
+  }
+
+  /* Code set 3 (JIS X 0212-1990) */
+  ret = jisx0212_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 3)
+      return RET_TOOSMALL;
+    r[0] = 0x8f;
+    r[1] = buf[0]+0x80;
+    r[2] = buf[1]+0x80;
+    return 3;
+  }
+
+  /* User-defined range. See
+   * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+  if (wc >= 0xe000 && wc < 0xe758) {
+    if (wc < 0xe3ac) {
+      unsigned char c1, c2;
+      if (n < 2)
+        return RET_TOOSMALL;
+      c1 = (unsigned int) (wc - 0xe000) / 94;
+      c2 = (unsigned int) (wc - 0xe000) % 94;
+      r[0] = c1+0xf5;
+      r[1] = c2+0xa1;
+      return 2;
+    } else {
+      unsigned char c1, c2;
+      if (n < 2)
+        return RET_TOOSMALL;
+      c1 = (unsigned int) (wc - 0xe3ac) / 94;
+      c2 = (unsigned int) (wc - 0xe3ac) % 94;
+      r[0] = 0x8f;
+      r[1] = c1+0xf5;
+      r[2] = c2+0xa1;
+      return 3;
+    }
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/euc_kr.h b/libiconv/euc_kr.h
new file mode 100644 (file)
index 0000000..632470a
--- /dev/null
@@ -0,0 +1,71 @@
+
+/*
+ * EUC-KR
+ */
+
+/* Specification: RFC 1557 */
+
+static int
+euc_kr_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII or KS C 5636-1993) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (KS C 5601-1992) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        unsigned char buf[2];
+        buf[0] = c-0x80; buf[1] = c2-0x80;
+        return ksc5601_mbtowc(conv,pwc,buf,2);
+      } else
+        return RET_ILSEQ;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+euc_kr_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[3];
+  int ret;
+
+  /* Code set 0 (ASCII or KS C 5636-1993) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (KS C 5601-1992) */
+  ret = ksc5601_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0]+0x80;
+    r[1] = buf[1]+0x80;
+    return 2;
+  }
+
+  if (conv->transliterate) {
+    /* Decompose Hangul into Jamo */
+    ret = johab_hangul_decompose(conv,buf,wc);
+    if (ret != RET_ILSEQ) {
+      int i;
+      if (n < 2*ret)
+        return RET_TOOSMALL;
+      for (i = 0; i < ret; i++) {
+        r[0] = 0xa4;
+        r[1] = 0xa0+buf[i];
+        r += 2;
+      }
+      return 2*ret;
+    }
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/euc_tw.h b/libiconv/euc_tw.h
new file mode 100644 (file)
index 0000000..f813af1
--- /dev/null
@@ -0,0 +1,92 @@
+
+/*
+ * EUC-TW
+ */
+
+static int
+euc_tw_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (CNS 11643-1992 Plane 1) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        unsigned char buf[2];
+        buf[0] = c-0x80; buf[1] = c2-0x80;
+        return cns11643_1_mbtowc(conv,pwc,buf,2);
+      } else
+        return RET_ILSEQ;
+    }
+  }
+  /* Code set 2 (CNS 11643-1992 Planes 1-16) */
+  if (c == 0x8e) {
+    if (n < 4)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 <= 0xb0) {
+        unsigned char c3 = s[2];
+        unsigned char c4 = s[3];
+        if (c3 >= 0xa1 && c3 < 0xff && c4 >= 0xa1 && c4 < 0xff) {
+          unsigned char buf[2];
+          int ret;
+          buf[0] = c3-0x80; buf[1] = c4-0x80;
+          switch (c3-0xa0) {
+            case 1: ret = cns11643_1_mbtowc(conv,pwc,buf,2); break;
+            case 2: ret = cns11643_2_mbtowc(conv,pwc,buf,2); break;
+            case 3: ret = cns11643_3_mbtowc(conv,pwc,buf,2); break;
+            default: return RET_ILSEQ;
+          }
+          if (ret == RET_ILSEQ)
+            return RET_ILSEQ;
+          if (ret != 2) abort();
+          return 4;
+        }
+      }
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+euc_tw_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[3];
+  int ret;
+
+  /* Code set 0 (ASCII) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  ret = cns11643_wctomb(conv,buf,wc,3);
+  if (ret != RET_ILSEQ) {
+    if (ret != 3) abort();
+
+    /* Code set 1 (CNS 11643-1992 Plane 1) */
+    if (buf[0] == 0) {
+      if (n < 2)
+        return RET_TOOSMALL;
+      r[0] = buf[1]+0x80;
+      r[1] = buf[2]+0x80;
+      return 2;
+    }
+
+    /* Code set 2 (CNS 11643-1992 Planes 1-16) */
+    if (n < 4)
+      return RET_TOOSMALL;
+    r[0] = 0x8e;
+    r[1] = buf[0]+0xa1;
+    r[2] = buf[1]+0x80;
+    r[3] = buf[2]+0x80;
+    return 4;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/gb12345.h b/libiconv/gb12345.h
new file mode 100644 (file)
index 0000000..a28e3b4
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * GB/T 12345-1990
+ */
+
+/*
+ * GB/T 12345-1990 is a traditional chinese counterpart of GB 2312-1986.
+ * According to the unicode.org tables:
+ * 2146 characters have been changed to their traditional counterpart,
+ * 103 characters have been added, no characters have been removed.
+ * Therefore we use an auxiliary table, which contains only the changes.
+ */
+
+#include "gb12345ext.h"
+
+static int
+gb12345_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  int ret;
+
+  /* The gb12345ext table overrides some entries in the gb2312 table. */
+  /* Try the GB12345 extensions -> Unicode table. */
+  ret = gb12345ext_mbtowc(conv,pwc,s,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+  /* Try the GB2312 -> Unicode table. */
+  ret = gb2312_mbtowc(conv,pwc,s,n);
+  return ret;
+}
+
+static int
+gb12345_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  int ret;
+
+  /* The gb12345ext table overrides some entries in the gb2312 table. */
+  /* Try the Unicode -> GB12345 extensions table. */
+  ret = gb12345ext_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+  /* Try the Unicode -> GB2312 table, and check that the resulting GB2312
+     byte sequence is not overridden by the GB12345 extensions table. */
+  ret = gb2312_wctomb(conv,r,wc,n);
+  if (ret == 2 && gb12345ext_mbtowc(conv,&wc,r,2) == 2)
+    return RET_ILSEQ;
+  else
+    return ret;
+}
diff --git a/libiconv/gb12345ext.h b/libiconv/gb12345ext.h
new file mode 100644 (file)
index 0000000..0ff033d
--- /dev/null
@@ -0,0 +1,1725 @@
+
+/*
+ * GB/T 12345.1990-0 extensions
+ */
+
+static const unsigned short gb12345ext_2uni_page21[12] = {
+  /* 0x21 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x2225,
+};
+static const unsigned short gb12345ext_2uni_page30[6871] = {
+  /* 0x30 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x769a,
+  0xfffd, 0x85f9, 0xfffd, 0xfffd, 0x7919, 0x611b, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9aaf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8956,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x58e9, 0xfffd, 0x7f77, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x64fa, 0xfffd, 0x6557, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9812, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x8fa6, 0x7d46, 0xfffd, 0x5e6b, 0xfffd,
+  0xfffd, 0xfffd, 0x7d81, 0xfffd, 0xfffd, 0xfffd, 0x938a, 0xfffd,
+  0x8b17, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x31 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fd, 0x5bf6, 0xfffd, 0x5831,
+  0xfffd, 0xfffd, 0x9b91, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8f29, 0xfffd, 0x8c9d, 0x92c7, 0xfffd, 0x72fd, 0x5099,
+  0x618a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7db3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x7b46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7562, 0x6583,
+  0xfffd, 0x5e63, 0xfffd, 0xfffd, 0x9589, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x908a, 0x7de8,
+  0x8cb6, 0xfffd, 0xfffd, 0x8b8a, 0xfffd, 0xfffd, 0x8faf, 0x8fae,
+  0xfffd, 0x6a19, 0xfffd, 0xfffd, 0xfffd, 0x9c49, 0xfffd, 0xfffd,
+  0x765f, 0xfffd, 0xfffd, 0x7015, 0x6ff1, 0x8cd3, 0x64ef, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9905, 0xfffd,
+  /* 0x32 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64a5, 0x9262, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9251, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c1, 0xfffd, 0xfffd, 0xfffd,
+  0x88dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ca1, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53c3, 0x8836, 0x6b98,
+  0x615a, 0x6158, 0x71e6, 0x84bc, 0x8259, 0x5009, 0x6ec4, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53a0, 0xfffd, 0x5074,
+  0xfffd, 0x6e2c, 0x5c64, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a6b, 0xfffd,
+  0xfffd, 0xfffd, 0x6519, 0x647b, 0x87ec, 0x995e, 0x8b92, 0x7e8f,
+  0x93df, 0x7523, 0x95e1, 0x986b, 0xfffd, 0xfffd,
+  /* 0x33 */
+  0x5834, 0x5617, 0xfffd, 0x9577, 0x511f, 0x8178, 0x5ee0, 0xfffd,
+  0x66a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9214, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eca, 0xfffd, 0xfffd, 0xfffd,
+  0x5fb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5875, 0xfffd, 0xfffd,
+  0xfffd, 0x9673, 0xfffd, 0x896f, 0xfffd, 0x7a31, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61f2, 0xfffd, 0x8aa0, 0xfffd,
+  0xfffd, 0x9a01, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9072, 0xfffd, 0x99b3, 0xfffd, 0x9f52, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x71be, 0xfffd, 0x885d, 0x87f2, 0xfffd, 0x5bf5,
+  0xfffd, 0xfffd, 0x7587, 0x8e8a, 0xfffd, 0xfffd, 0x7c4c, 0xfffd,
+  0x7da2, 0xfffd, 0x919c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x92e4, 0x96db, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x34 */
+  0x790e, 0x5132, 0xfffd, 0xfffd, 0x89f8, 0x8655, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x50b3, 0xfffd, 0xfffd, 0xfffd, 0x7621, 0xfffd,
+  0xfffd, 0xfffd, 0x95d6, 0x5275, 0xfffd, 0xfffd, 0xfffd, 0x9318,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d14, 0xfffd,
+  0xfffd, 0x7dbd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fad, 0xfffd,
+  0xfffd, 0x8a5e, 0xfffd, 0xfffd, 0x8cdc, 0xfffd, 0x8070, 0xfffd,
+  0xfffd, 0xfffd, 0x5f9e, 0x53e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8ea5, 0xfffd, 0x7ac4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x932f, 0xfffd, 0x9054, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e36,
+  0xfffd, 0xfffd, 0x8cb8, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x35 */
+  0xfffd, 0xfffd, 0x64d4, 0xfffd, 0x55ae, 0x9132, 0x64a3, 0x81bd,
+  0xfffd, 0xfffd, 0xfffd, 0x619a, 0xfffd, 0x8a95, 0x5f48, 0xfffd,
+  0x7576, 0x64cb, 0x9ee8, 0x8569, 0x6a94, 0xfffd, 0x6417, 0xfffd,
+  0xfffd, 0x5cf6, 0x79b1, 0x5c0e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71c8, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9127, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6575,
+  0xfffd, 0xfffd, 0x6ecc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x905e, 0x7de0, 0x985b, 0xfffd,
+  0xfffd, 0xfffd, 0x9ede, 0xfffd, 0xfffd, 0x588a, 0x96fb, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fb1, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91e3, 0x8abf, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8adc, 0x758a,
+  /* 0x36 */
+  0xfffd, 0xfffd, 0xfffd, 0x91d8, 0x9802, 0xfffd, 0x9320, 0xfffd,
+  0x8a02, 0xfffd, 0x6771, 0xfffd, 0xfffd, 0xfffd, 0x52d5, 0x68df,
+  0xfffd, 0xfffd, 0x51cd, 0xfffd, 0xfffd, 0xfffd, 0x9b25, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x72a2, 0x7368,
+  0x8b80, 0xfffd, 0xfffd, 0x8ced, 0xfffd, 0x934d, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x935b, 0xfffd, 0x65b7, 0x7dde,
+  0xfffd, 0xfffd, 0x968a, 0x5c0d, 0xfffd, 0x5678, 0xfffd, 0xfffd,
+  0x9813, 0xfffd, 0x920d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x596a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x58ae, 0xfffd, 0xfffd, 0x9d5d, 0xfffd, 0x984d, 0x8a1b, 0xfffd,
+  0x60e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9913, 0xfffd, 0xfffd,
+  0x5152, 0xfffd, 0x723e, 0x990c, 0xfffd, 0xfffd,
+  /* 0x37 */
+  0x8cb3, 0x767c, 0x7f70, 0xfffd, 0xfffd, 0xfffd, 0x95a5, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x792c, 0x91e9,
+  0xfffd, 0xfffd, 0x7169, 0xfffd, 0xfffd, 0x7bc4, 0x8ca9, 0xfffd,
+  0x98ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8a2a, 0x7d21, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x98db, 0xfffd, 0xfffd, 0x8ab9, 0xfffd, 0xfffd, 0x5ee2, 0xfffd,
+  0x8cbb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d1b, 0x58b3,
+  0xfffd, 0xfffd, 0xfffd, 0x596e, 0xfffd, 0xfffd, 0x61a4, 0x7cde,
+  0x8c50, 0xfffd, 0x6953, 0xfffd, 0xfffd, 0x92d2, 0x98a8, 0x760b,
+  0xfffd, 0xfffd, 0x99ae, 0x7e2b, 0x8af7, 0xfffd, 0x9cf3, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x819a, 0xfffd, 0xfffd, 0xfffd, 0x8f3b,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x38 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64ab, 0x8f14,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8ce6, 0x5fa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8ca0, 0xfffd, 0x8a03, 0xfffd, 0x5a66, 0x7e1b, 0xfffd,
+  0xfffd, 0xfffd, 0x8a72, 0xfffd, 0xfffd, 0x9223, 0x84cb, 0xfffd,
+  0x5e79, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d95, 0xfffd,
+  0xfffd, 0xfffd, 0x8d1b, 0x5ca1, 0x525b, 0x92fc, 0xfffd, 0xfffd,
+  0x7db1, 0x5d17, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x93ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x64f1, 0xfffd, 0x9d3f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x95a3, 0xfffd, 0x927b, 0x500b, 0xfffd, 0x7d66,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x39 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f94,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x978f, 0xfffd, 0xfffd,
+  0x8ca2, 0xfffd, 0x920e, 0xfffd, 0x6e9d, 0xfffd, 0xfffd, 0xfffd,
+  0x69cb, 0x8cfc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8831, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9867, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x526e,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95dc,
+  0xfffd, 0xfffd, 0x89c0, 0xfffd, 0x9928, 0xfffd, 0x6163, 0xfffd,
+  0x8cab, 0xfffd, 0x5ee3, 0xfffd, 0xfffd, 0x898f, 0xfffd, 0xfffd,
+  0x6b78, 0x9f9c, 0x95a8, 0x8ecc, 0xfffd, 0x8a6d, 0xfffd, 0xfffd,
+  0x6ac3, 0xfffd, 0x8cb4, 0x528a, 0x8f25, 0xfffd, 0xfffd, 0x934b,
+  0xfffd, 0x570b, 0xfffd, 0xfffd, 0x904e, 0xfffd,
+  /* 0x3a */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ed, 0xfffd,
+  0xfffd, 0xfffd, 0x97d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x6f22, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x865f, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x95a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db4, 0x8cc0,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x8f5f, 0xfffd, 0xfffd, 0xfffd, 0x9d3b,
+  0xfffd, 0xfffd, 0xfffd, 0x7d05, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5f8c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58fa,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x3b */
+  0xfffd, 0xfffd, 0xfffd, 0x8b77, 0xfffd, 0x6eec, 0xfffd, 0xfffd,
+  0x5629, 0x83ef, 0xfffd, 0xfffd, 0x756b, 0x5283, 0xfffd, 0x8a71,
+  0xfffd, 0xfffd, 0x61f7, 0xfffd, 0x58de, 0x6b61, 0x74b0, 0xfffd,
+  0x9084, 0x7de9, 0x63db, 0xfffd, 0x559a, 0x7613, 0xfffd, 0x7165,
+  0x6e19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8b0a, 0xfffd, 0x63ee, 0x8f1d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cc4, 0x7a62,
+  0x6703, 0x71f4, 0x532f, 0x8af1, 0x8aa8, 0x7e6a, 0x8477, 0xfffd,
+  0xfffd, 0xfffd, 0x6e3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7372, 0xfffd, 0xfffd, 0xfffd, 0x8ca8, 0x798d, 0x64ca, 0xfffd,
+  0xfffd, 0x6a5f, 0xfffd, 0xfffd, 0x7a4d, 0xfffd,
+  /* 0x3c */
+  0xfffd, 0x9951, 0xfffd, 0xfffd, 0x8b4f, 0x9dc4, 0xfffd, 0x7e3e,
+  0x7ddd, 0xfffd, 0x6975, 0xfffd, 0x8f2f, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d1a, 0x64e0, 0x5e7e,
+  0xfffd, 0xfffd, 0x858a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x5291, 0xfffd, 0x6fdf, 0xfffd, 0xfffd, 0x8a08, 0x8a18, 0xfffd,
+  0xfffd, 0x969b, 0xfffd, 0x7e7c, 0x7d00, 0xfffd, 0xfffd, 0x593e,
+  0xfffd, 0xfffd, 0xfffd, 0x83a2, 0x9830, 0x8cc8, 0xfffd, 0x9240,
+  0xfffd, 0xfffd, 0x50f9, 0xfffd, 0x99d5, 0xfffd, 0x6bb2, 0x76e3,
+  0x5805, 0xfffd, 0x7b8b, 0x9593, 0xfffd, 0xfffd, 0xfffd, 0x8271,
+  0xfffd, 0x7dd8, 0x7e6d, 0x6aa2, 0xfffd, 0xfffd, 0x9e7c, 0x63c0,
+  0x64bf, 0x7c21, 0x5109, 0xfffd, 0xfffd, 0x85a6, 0x6abb, 0x9452,
+  0x8e10, 0x8ce4, 0x898b, 0x9375, 0xfffd, 0xfffd,
+  /* 0x3d */
+  0xfffd, 0x8266, 0x528d, 0x991e, 0x6f38, 0x6ffa, 0x6f97, 0xfffd,
+  0xfffd, 0xfffd, 0x5c07, 0x6f3f, 0xfffd, 0xfffd, 0x8523, 0x69f3,
+  0x596c, 0x8b1b, 0xfffd, 0x91ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x81a0, 0xfffd, 0xfffd, 0x6f86, 0x9a55, 0x5b0c, 0xfffd,
+  0x652a, 0x9278, 0x77ef, 0x50e5, 0xfffd, 0xfffd, 0xfffd, 0x9903,
+  0x7e73, 0x7d5e, 0xfffd, 0xfffd, 0xfffd, 0x8f4e, 0x8f03, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x968e, 0xfffd,
+  0xfffd, 0x7bc0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f54,
+  0x7d50, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8aa1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7dca, 0x9326, 0x50c5, 0x8b39, 0x9032,
+  0xfffd, 0x6649, 0xfffd, 0xfffd, 0x71fc, 0xfffd,
+  /* 0x3e */
+  0x76e1, 0x52c1, 0xfffd, 0xfffd, 0x8396, 0xfffd, 0xfffd, 0x9be8,
+  0xfffd, 0x9a5a, 0xfffd, 0xfffd, 0x7d93, 0xfffd, 0xfffd, 0xfffd,
+  0x9838, 0x975c, 0xfffd, 0xfffd, 0x93e1, 0x5f91, 0x75d9, 0xfffd,
+  0xfffd, 0x7af6, 0x51c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cfe,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x820a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x99d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8209, 0xfffd, 0xfffd, 0xfffd, 0x64da, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x92f8, 0xfffd, 0xfffd, 0x61fc, 0xfffd, 0x5287, 0xfffd,
+  0x9d51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d79, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89ba, 0xfffd, 0x8a23, 0x7d76,
+  0xfffd, 0xfffd, 0x921e, 0x8ecd, 0xfffd, 0xfffd,
+  /* 0x3f */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ff, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x958b, 0xfffd, 0xfffd, 0x51f1, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9846, 0xfffd, 0x6bbb, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ab2, 0xfffd, 0xfffd,
+  0x58be, 0x61c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x6473, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x5eab, 0x8932, 0x8a87, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x584a, 0xfffd, 0x5108, 0xfffd, 0x5bec, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7926, 0xfffd, 0x66e0, 0xfffd, 0x8667, 0xfffd,
+  0x5dcb, 0x7aba, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x40 */
+  0x994b, 0xfffd, 0x6f70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x64f4, 0xfffd, 0x95ca, 0xfffd, 0xfffd, 0xfffd, 0x881f, 0x81d8,
+  0xfffd, 0xfffd, 0x840a, 0x4f86, 0x8cf4, 0x85cd, 0xfffd, 0x6b04,
+  0x6514, 0x7c43, 0x95cc, 0x862d, 0x703e, 0x8b95, 0x652c, 0x89bd,
+  0x61f6, 0x7e9c, 0x721b, 0x6feb, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6488, 0x52de, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6f87, 0xfffd, 0x6a02, 0xfffd, 0x9433,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58d8, 0xfffd, 0xfffd, 0x985e,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7c6c, 0xfffd, 0x96e2, 0x7055, 0xfffd, 0xfffd, 0x88cf, 0x9bc9,
+  0x79ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e97, 0x53b2, 0x52f5,
+  0x792b, 0x6b77, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x41 */
+  0xfffd, 0xfffd, 0xfffd, 0x701d, 0x96b8, 0xfffd, 0xfffd, 0xfffd,
+  0x5006, 0x806f, 0x84ee, 0x9023, 0x942e, 0xfffd, 0x6190, 0x6f23,
+  0x7c3e, 0x6582, 0x81c9, 0x93c8, 0x6200, 0x7149, 0x7df4, 0x7ce7,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5169, 0x8f1b, 0xfffd, 0xfffd,
+  0xfffd, 0x8ad2, 0xfffd, 0xfffd, 0xfffd, 0x7642, 0xfffd, 0xfffd,
+  0x907c, 0xfffd, 0xfffd, 0xfffd, 0x9410, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7375, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x81e8, 0x9130, 0x9c57, 0xfffd, 0xfffd, 0x8cc3, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9f61, 0x9234, 0xfffd, 0xfffd, 0xfffd,
+  0x9748, 0xfffd, 0x5dba, 0x9818, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x993e, 0xfffd, 0x5289, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9f8d, 0x807e, 0x56a8, 0x7c60, 0xfffd,
+  /* 0x42 */
+  0xfffd, 0x58df, 0x650f, 0x96b4, 0x6a13, 0x5a41, 0x645f, 0x7c0d,
+  0xfffd, 0xfffd, 0x8606, 0x76e7, 0x9871, 0x5eec, 0x7210, 0x64c4,
+  0x6ef7, 0x865c, 0x9b6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cc2,
+  0xfffd, 0xfffd, 0xfffd, 0x9332, 0x9678, 0xfffd, 0x9a62, 0xfffd,
+  0x92c1, 0xfffd, 0xfffd, 0xfffd, 0x5c62, 0x7e37, 0x616e, 0xfffd,
+  0xfffd, 0xfffd, 0x6ffe, 0x7dd1, 0x5dd2, 0x6523, 0x5b7f, 0x7064,
+  0xfffd, 0x4e82, 0xfffd, 0xfffd, 0x6384, 0x8f2a, 0x502b, 0x4f96,
+  0x6dea, 0x7db8, 0x8ad6, 0x863f, 0xfffd, 0x7f85, 0x908f, 0x947c,
+  0x7c6e, 0x9a3e, 0xfffd, 0xfffd, 0xfffd, 0x99f1, 0x7d61, 0x5abd,
+  0xfffd, 0x746a, 0x78bc, 0x879e, 0x99ac, 0x99e1, 0xfffd, 0x55ce,
+  0xfffd, 0x8cb7, 0x9ea5, 0x8ce3, 0x9081, 0xfffd, 0x779e, 0x9945,
+  0x883b, 0x6eff, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x43 */
+  0x8b3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9328, 0xfffd, 0xfffd, 0x925a, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8cbf, 0x9ebd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9382, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9580, 0x60b6, 0x5011, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9333, 0xfffd, 0x5922, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b0e, 0x5f4c, 0xfffd, 0xfffd,
+  0x8993, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dbf,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dec, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5edf, 0xfffd, 0xfffd, 0x6ec5,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61ab, 0x95a9, 0xfffd, 0xfffd,
+  0x9cf4, 0x9298, 0xfffd, 0xfffd, 0x8b2c, 0xfffd,
+  /* 0x44 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8b00, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x755d, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9209, 0xfffd, 0xfffd,
+  0x7d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x96e3, 0xfffd, 0x6493, 0x8166, 0x60f1, 0x9b27, 0xfffd, 0xfffd,
+  0x9912, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x64ec, 0xfffd, 0xfffd, 0x81a9, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6506, 0xfffd, 0xfffd, 0xfffd, 0x91c0,
+  0x9ce5, 0xfffd, 0xfffd, 0x8076, 0xfffd, 0x5699, 0x9477, 0x93b3,
+  0xfffd, 0xfffd, 0x6ab8, 0x7370, 0xfffd, 0x5be7,
+  /* 0x45 */
+  0x64f0, 0x6fd8, 0xfffd, 0xfffd, 0x9215, 0x7d10, 0x81bf, 0x6fc3,
+  0x8fb2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7627, 0xfffd, 0xfffd, 0xfffd, 0x8afe, 0xfffd, 0x6b50, 0x9dd7,
+  0x6bc6, 0xfffd, 0x5614, 0xfffd, 0x6f1a, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x76e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9f90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8ce0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5674, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9d6c, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x46 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a19, 0x98c4, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x983b, 0x8ca7, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x860b, 0xfffd, 0xfffd, 0x6191, 0xfffd, 0x8a55,
+  0xfffd, 0xfffd, 0x6f51, 0x9817, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x64b2, 0x92ea, 0x50d5, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x6a38, 0xfffd, 0xfffd, 0xfffd, 0x8b5c, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x68f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x81cd, 0x9f4a, 0xfffd, 0xfffd, 0xfffd, 0x9a0e, 0xfffd,
+  0x8c48, 0xfffd, 0xfffd, 0x5553, 0xfffd, 0xfffd, 0xfffd, 0x6c23,
+  0xfffd, 0x68c4, 0xfffd, 0xfffd, 0x8a16, 0xfffd,
+  /* 0x47 */
+  0xfffd, 0xfffd, 0x727d, 0xfffd, 0x91fa, 0x925b, 0xfffd, 0x9077,
+  0x7c3d, 0xfffd, 0x8b19, 0xfffd, 0xfffd, 0x9322, 0x9257, 0xfffd,
+  0x6f5b, 0xfffd, 0x6dfa, 0x8b74, 0x5879, 0xfffd, 0xfffd, 0xfffd,
+  0x69cd, 0x55c6, 0xfffd, 0xfffd, 0x58bb, 0x8594, 0xfffd, 0x6436,
+  0xfffd, 0x936c, 0xfffd, 0xfffd, 0x6a4b, 0xfffd, 0x55ac, 0x50d1,
+  0xfffd, 0xfffd, 0xfffd, 0x7ff9, 0xfffd, 0xfffd, 0x7ac5, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7aca, 0x6b3d, 0xfffd, 0x89aa, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5be2, 0xfffd, 0xfffd,
+  0x8f15, 0x6c2b, 0x50be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9803, 0x8acb, 0x6176, 0x74ca, 0x7aae, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8da8, 0x5340,
+  0xfffd, 0xfffd, 0x8ec0, 0xfffd, 0x9a45, 0xfffd,
+  /* 0x48 */
+  0xfffd, 0xfffd, 0x9f72, 0xfffd, 0xfffd, 0xfffd, 0x9874, 0x6b0a,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x52f8,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d72, 0xfffd, 0x78ba, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8b93, 0x9952, 0x64fe, 0x7e5e, 0xfffd, 0x71b1,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97cc, 0xfffd, 0x8a8d, 0xfffd,
+  0xfffd, 0x7d09, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x69ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d68, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8edf, 0xfffd, 0xfffd, 0xfffd,
+  0x92ed, 0x958f, 0x6f64, 0xfffd, 0xfffd, 0xfffd, 0x7051, 0x85a9,
+  0xfffd, 0x9c13, 0xfffd, 0x8cfd, 0xfffd, 0xfffd,
+  /* 0x49 */
+  0x5098, 0xfffd, 0xfffd, 0xfffd, 0x55aa, 0xfffd, 0x9a37, 0x6383,
+  0xfffd, 0xfffd, 0xfffd, 0x6f80, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x6bba, 0xfffd, 0xfffd, 0x7d17, 0xfffd, 0xfffd, 0xfffd, 0x7be9,
+  0x66ec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9583, 0x965d, 0xfffd, 0x8d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7e55, 0xfffd, 0x50b7, 0xfffd, 0x8cde, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71d2, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7d39, 0xfffd, 0x8cd2, 0xfffd, 0xfffd,
+  0x6368, 0xfffd, 0x651d, 0xfffd, 0x61fe, 0xfffd, 0xfffd, 0x8a2d,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d33,
+  0xfffd, 0xfffd, 0x5be9, 0x5b38, 0xfffd, 0x814e, 0xfffd, 0x6ef2,
+  0x8072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e69,
+  /* 0x4a */
+  0xfffd, 0xfffd, 0xfffd, 0x52dd, 0x8056, 0x5e2b, 0xfffd, 0x7345,
+  0xfffd, 0x6fd5, 0x8a69, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x6642, 0xfffd, 0xfffd, 0x8755, 0x5be6, 0x8b58, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x99db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x52e2, 0xfffd, 0xfffd,
+  0xfffd, 0x9069, 0xfffd, 0xfffd, 0x91cb, 0x98fe, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8996, 0x8a66, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x58fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7378, 0xfffd, 0x6a1e,
+  0xfffd, 0xfffd, 0xfffd, 0x8f38, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x66f8, 0x8d16, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5c6c, 0x8853, 0xfffd, 0x6a39, 0xfffd,
+  0xfffd, 0x7aea, 0xfffd, 0xfffd, 0x6578, 0xfffd,
+  /* 0x4b */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e25, 0xfffd,
+  0xfffd, 0xfffd, 0x96d9, 0xfffd, 0x8ab0, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9806, 0xfffd, 0x8aac, 0x78a9, 0xfffd, 0x720d,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d72, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fc, 0xfffd,
+  0x9b06, 0x8073, 0x616b, 0x980c, 0xfffd, 0xfffd, 0x8a1f, 0x8aa6,
+  0xfffd, 0xfffd, 0x64fb, 0xfffd, 0x8607, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a34, 0x8085,
+  0xfffd, 0xfffd, 0xfffd, 0x96d6, 0xfffd, 0x96a8, 0x7d8f, 0xfffd,
+  0xfffd, 0x6b72, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b6b, 0x640d,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e2e, 0x7463, 0xfffd, 0x9396,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x4c */
+  0x737a, 0x64bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x81fa,
+  0xfffd, 0xfffd, 0xfffd, 0x614b, 0xfffd, 0xfffd, 0x6524, 0x8caa,
+  0x7671, 0x7058, 0x58c7, 0xfffd, 0xfffd, 0xfffd, 0x8b5a, 0x8ac7,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5606, 0xfffd, 0x6e6f,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x71d9, 0xfffd, 0x6fe4, 0xfffd, 0x7e27,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a0e, 0xfffd, 0xfffd,
+  0xfffd, 0x9a30, 0xfffd, 0x8b04, 0xfffd, 0xfffd, 0xfffd, 0x92bb,
+  0xfffd, 0x984c, 0xfffd, 0xfffd, 0x9ad4, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x689d, 0xfffd, 0xfffd, 0xfffd,
+  0x8cbc, 0x9435, 0xfffd, 0x5ef3, 0x807d, 0x70f4,
+  /* 0x4d */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9285, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7d71, 0xfffd, 0xfffd, 0xfffd, 0x982d, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5716, 0xfffd, 0xfffd, 0x5857, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5718, 0xfffd, 0x983d, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9d15, 0xfffd, 0x99b1, 0x99dd, 0x6a62, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7aaa, 0xfffd, 0xfffd, 0x896a,
+  0xfffd, 0xfffd, 0xfffd, 0x5f4e, 0x7063, 0xfffd, 0x9811, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x842c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7db2,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x4e */
+  0xfffd, 0xfffd, 0xfffd, 0x97cb, 0x9055, 0xfffd, 0x570d, 0xfffd,
+  0xfffd, 0x7232, 0x6ff0, 0x7dad, 0x8466, 0xfffd, 0xfffd, 0x5049,
+  0x50de, 0xfffd, 0x7def, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b02, 0xfffd, 0xfffd, 0x885b,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x805e, 0x7d0b, 0xfffd, 0x7a69,
+  0xfffd, 0x554f, 0xfffd, 0xfffd, 0xfffd, 0x64be, 0x8778, 0x6e26,
+  0x7aa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x55da,
+  0x93a2, 0x70cf, 0xfffd, 0x8aa3, 0xfffd, 0x7121, 0x856a, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5862, 0xfffd, 0x9727, 0xfffd, 0xfffd, 0xfffd,
+  0x52d9, 0xfffd, 0x8aa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x932b, 0x72a7,
+  /* 0x4f */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8972, 0xfffd, 0x7fd2,
+  0xfffd, 0xfffd, 0x9291, 0xfffd, 0xfffd, 0xfffd, 0x6232, 0x7d30,
+  0xfffd, 0x8766, 0xfffd, 0xfffd, 0x8f44, 0xfffd, 0x5cfd, 0x4fe0,
+  0x72f9, 0xfffd, 0xfffd, 0xfffd, 0x5687, 0xfffd, 0x9341, 0xfffd,
+  0xfffd, 0x9bae, 0x7e96, 0xfffd, 0x8ce2, 0x929c, 0xfffd, 0x9591,
+  0xfffd, 0xfffd, 0xfffd, 0x986f, 0x96aa, 0x73fe, 0x737b, 0x7e23,
+  0xfffd, 0x9921, 0xfffd, 0x61b2, 0xfffd, 0xfffd, 0x7dab, 0xfffd,
+  0xfffd, 0x9472, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9109, 0xfffd,
+  0xfffd, 0x8a73, 0xfffd, 0x97ff, 0xfffd, 0x9805, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x856d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x56c2, 0x92b7, 0xfffd, 0xfffd, 0xfffd, 0x66c9,
+  /* 0x50 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x562f, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5354, 0x633e, 0xfffd, 0xfffd,
+  0xfffd, 0x8105, 0x8ae7, 0x5beb, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x7009, 0x8b1d, 0xfffd, 0xfffd, 0xfffd, 0x92c5, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c1, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8208, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x92b9, 0xfffd, 0xfffd, 0x7d89, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9808, 0xfffd, 0x8a31, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dd2, 0x7e8c,
+  0x8ed2, 0xfffd, 0xfffd, 0x61f8, 0xfffd, 0xfffd,
+  /* 0x51 */
+  0x9078, 0x766c, 0xfffd, 0x7d62, 0xfffd, 0xfffd, 0x5b78, 0xfffd,
+  0xfffd, 0xfffd, 0x52db, 0xfffd, 0xfffd, 0xfffd, 0x8a62, 0x5c0b,
+  0x99b4, 0xfffd, 0xfffd, 0xfffd, 0x8a13, 0x8a0a, 0x905c, 0xfffd,
+  0x58d3, 0xfffd, 0x9d09, 0x9d28, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x555e, 0x4e9e, 0x8a1d,
+  0xfffd, 0xfffd, 0x95b9, 0xfffd, 0xfffd, 0x9e7d, 0x56b4, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9854, 0x95bb, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8277, 0xfffd, 0xfffd,
+  0x53ad, 0x786f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8afa,
+  0x9a57, 0xfffd, 0xfffd, 0x9d26, 0xfffd, 0x694a, 0x63da, 0xfffd,
+  0x760d, 0xfffd, 0xfffd, 0x967d, 0xfffd, 0xfffd, 0x7662, 0x990a,
+  0x6a23, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x52 */
+  0xfffd, 0x582f, 0xfffd, 0xfffd, 0x8b21, 0xfffd, 0xfffd, 0xfffd,
+  0x85e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x723a, 0xfffd,
+  0xfffd, 0xfffd, 0x9801, 0xfffd, 0x696d, 0x8449, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ab, 0xfffd, 0x92a5, 0xfffd,
+  0xfffd, 0xfffd, 0x9824, 0xfffd, 0x907a, 0xfffd, 0x5100, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87fb, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x85dd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x5104, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x61b6, 0x7fa9, 0xfffd, 0xfffd, 0x8a63,
+  0x8b70, 0x8abc, 0x8b6f, 0xfffd, 0xfffd, 0xfffd, 0x7e79, 0xfffd,
+  0x852d, 0xfffd, 0xfffd, 0xfffd, 0x9670, 0xfffd, 0xfffd, 0x9280,
+  0xfffd, 0xfffd, 0x98f2, 0xfffd, 0xfffd, 0x96b1,
+  /* 0x53 */
+  0xfffd, 0xfffd, 0x6afb, 0x5b30, 0x9df9, 0x61c9, 0x7e93, 0x7469,
+  0x87a2, 0x71df, 0x7192, 0x8805, 0xfffd, 0x8d0f, 0xfffd, 0xfffd,
+  0x7a4e, 0xfffd, 0xfffd, 0x55b2, 0x64c1, 0x50ad, 0xfffd, 0x7670,
+  0xfffd, 0xfffd, 0x8e34, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x512a, 0xfffd, 0x6182, 0xfffd,
+  0xfffd, 0x90f5, 0x923e, 0x7336, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a98, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f3f, 0x9918,
+  0xfffd, 0xfffd, 0x9b5a, 0xfffd, 0xfffd, 0x6f01, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8207, 0x5dbc, 0xfffd, 0xfffd, 0x8a9e, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9b31, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7344, 0xfffd, 0x8b7d,
+  /* 0x54 */
+  0xfffd, 0xfffd, 0xfffd, 0x9810, 0xfffd, 0x99ad, 0x9d1b, 0x6df5,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f45, 0x5712,
+  0x54e1, 0x5713, 0xfffd, 0xfffd, 0x7de3, 0x9060, 0xfffd, 0x9858,
+  0xfffd, 0xfffd, 0xfffd, 0x7d04, 0xfffd, 0x8e8d, 0x9470, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x95b2, 0xfffd, 0x96f2, 0x9116, 0xfffd,
+  0x9695, 0xfffd, 0x904b, 0x85f4, 0x9196, 0x6688, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x96dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f09,
+  0xfffd, 0xfffd, 0xfffd, 0x6522, 0x66ab, 0x8d0a, 0x8d1c, 0x81df,
+  0xfffd, 0xfffd, 0xfffd, 0x947f, 0xfffd, 0x68d7, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7ac8, 0xfffd, 0x8cac,
+  0x64c7, 0x5247, 0x6fa4, 0x8cca, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8d08, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ecb,
+  /* 0x55 */
+  0x9358, 0x9598, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8a50, 0xfffd, 0x9f4b, 0xfffd, 0xfffd, 0x50b5, 0xfffd, 0xfffd,
+  0x6c08, 0xfffd, 0xfffd, 0xfffd, 0x76de, 0x65ac, 0x8f3e, 0x5d84,
+  0xfffd, 0xfffd, 0x68e7, 0xfffd, 0x6230, 0xfffd, 0xfffd, 0x7dbb,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5f35, 0xfffd, 0x6f32, 0xfffd,
+  0xfffd, 0x5e33, 0x8cec, 0xfffd, 0x8139, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x8d99, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87c4, 0x8f4d, 0xfffd, 0x937a,
+  0xfffd, 0x9019, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8c9e, 0x91dd, 0x5075, 0xfffd, 0xfffd, 0x8a3a, 0xfffd,
+  0xfffd, 0x93ae, 0x9663, 0xfffd, 0x6399, 0x775c, 0xfffd, 0x7319,
+  0x722d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x56 */
+  0x5e40, 0x7665, 0x912d, 0x8b49, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e54, 0x8077,
+  0xfffd, 0xfffd, 0xfffd, 0x57f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8879, 0xfffd, 0x7d19, 0xfffd, 0x646f, 0x64f2,
+  0xfffd, 0xfffd, 0xfffd, 0x5e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8cea, 0xfffd, 0xfffd, 0x6eef, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9418, 0xfffd, 0x7d42, 0x7a2e, 0x816b, 0xfffd,
+  0xfffd, 0x8846, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b05, 0xfffd,
+  0x8ef8, 0xfffd, 0xfffd, 0xfffd, 0x76ba, 0xfffd, 0x665d, 0x9a5f,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af8, 0x8a85, 0xfffd,
+  0xfffd, 0x71ed, 0xfffd, 0xfffd, 0x77da, 0x56d1, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x8caf, 0x9444, 0x7bc9,
+  /* 0x57 */
+  0xfffd, 0xfffd, 0xfffd, 0x99d0, 0xfffd, 0xfffd, 0xfffd, 0x5c08,
+  0x78da, 0x8f49, 0xfffd, 0x8cfa, 0xfffd, 0x6a01, 0x838a, 0x88dd,
+  0x599d, 0xfffd, 0x58ef, 0x72c0, 0xfffd, 0x9310, 0xfffd, 0x8d05,
+  0x589c, 0x7db4, 0x8ac4, 0x6e96, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fc1, 0xfffd,
+  0xfffd, 0x8cc7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f2c, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7d9c, 0x7e3d, 0x7e31, 0x9112, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5b, 0xfffd,
+  0x7d44, 0x947d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x58 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x55c7, 0xfffd, 0xfffd, 0x5399, 0xfffd,
+  0x53b4, 0xfffd, 0xfffd, 0x9768, 0x8d0b, 0xfffd, 0xfffd, 0x532d,
+  0x5331, 0xfffd, 0x8cfe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x5244, 0xfffd, 0x528c, 0x5274, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x50b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5000, 0x5096, 0xfffd,
+  0x4f47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x59 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5115, 0xfffd, 0x5102, 0xfffd,
+  0x5114, 0x513c, 0x5137, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50e8, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c2, 0x513b, 0x5110, 0x513a,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c9, 0xfffd, 0xfffd, 0xfffd,
+  0x7cf4, 0xfffd, 0xfffd, 0x9ecc, 0xfffd, 0x56c5, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x9cec, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x893b, 0x81e0, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x5a */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a01, 0x8a10, 0x8a0c, 0x8a15,
+  0x8b33, 0x8a4e, 0x8a25, 0x8a41, 0x8a36, 0x8a46, 0x8a54, 0x8a58,
+  0x8a52, 0x8a86, 0x8a84, 0x8a7f, 0x8a70, 0x8a7c, 0x8a75, 0x8a6c,
+  0x8a6e, 0x8acd, 0x8ae2, 0x8a61, 0x8a9a, 0x8aa5, 0x8a91, 0x8a92,
+  0x8acf, 0x8ad1, 0x8ac9, 0x8adb, 0x8ad7, 0x8ac2, 0x8ab6, 0x8af6,
+  0x8aeb, 0x8b14, 0x8b01, 0x8ae4, 0x8aed, 0x8afc, 0x8af3, 0x8ae6,
+  0x8aee, 0x8ade, 0x8b28, 0x8b9c, 0x8b16, 0x8b1a, 0x8b10, 0x8b2b,
+  0x8b2d, 0x8b56, 0x8b59, 0x8b4e, 0x8b9e, 0x8b6b, 0x8b96, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9658, 0xfffd, 0xfffd, 0x9689, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x913a, 0xfffd,
+  0x9114, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9134,
+  /* 0x5b */
+  0xfffd, 0xfffd, 0x90df, 0xfffd, 0xfffd, 0x9136, 0xfffd, 0xfffd,
+  0x9106, 0x9148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x82bb, 0x5950, 0x52f1, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5df0, 0xfffd,
+  0x580a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x58d9, 0xfffd, 0xfffd, 0x58e2, 0xfffd, 0xfffd,
+  0xfffd, 0x58e0, 0xfffd, 0x58da, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x57e1, 0xfffd, 0xfffd, 0x584f, 0xfffd, 0xfffd,
+  0x5816, 0xfffd, 0xfffd, 0xfffd, 0x5852, 0x581d, 0x5864, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x5c */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x858c, 0xfffd, 0xfffd, 0x8553, 0xfffd,
+  0xfffd, 0x85f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x83a7,
+  0x8407, 0x84ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x82e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8622, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8526,
+  0xfffd, 0xfffd, 0x584b, 0x7162, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8558, 0x84fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x854e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8588, 0xfffd, 0xfffd,
+  0x85ba, 0xfffd, 0xfffd, 0xfffd, 0x7296, 0x6ece,
+  /* 0x5d */
+  0x8541, 0xfffd, 0x85ce, 0x8552, 0x84c0, 0x8452, 0x8464, 0xfffd,
+  0xfffd, 0x8494, 0x8435, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x859f, 0xfffd, 0xfffd, 0x8555, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9daf, 0x8493, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7e08, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8546, 0xfffd, 0xfffd, 0x8562, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x851e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9a40, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x863a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a3, 0x8577, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x861e, 0xfffd, 0x85fa,
+  /* 0x5e */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8604, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x85ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x861a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5969, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5c37, 0xfffd,
+  0x636b, 0x6476, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x649f,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x6451, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x645c,
+  0xfffd, 0xfffd, 0xfffd, 0x64b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x6504, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6516, 0xfffd, 0xfffd,
+  /* 0x5f */
+  0xfffd, 0x64f7, 0x64fc, 0xfffd, 0x651b, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5630, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5638, 0x56c8, 0xfffd, 0x56a6, 0xfffd,
+  0xfffd, 0x5504, 0x54bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5680, 0xfffd, 0xfffd, 0xfffd, 0x565d,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5660, 0xfffd, 0xfffd, 0x5635,
+  0x55f6, 0xfffd, 0xfffd, 0x5666, 0xfffd, 0xfffd, 0xfffd, 0x5672,
+  0xfffd, 0x568c, 0xfffd, 0xfffd, 0xfffd, 0x5665, 0xfffd, 0xfffd,
+  0x561c, 0xfffd, 0x562e, 0xfffd, 0xfffd, 0xfffd, 0x55e9, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5616, 0xfffd, 0xfffd, 0xfffd,
+  0x56c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x60 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x560d, 0x56b3, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x56c1, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x566f,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f61, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x56b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5695,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5707,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e43,
+  0xfffd, 0xfffd, 0xfffd, 0x5e6c, 0x5e58, 0x5e57,
+  /* 0x61 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5d87, 0xfffd, 0x5cf4, 0xfffd, 0xfffd, 0x5d50,
+  0xfffd, 0xfffd, 0xfffd, 0x5d2c, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5da7, 0xfffd, 0x5da0, 0xfffd, 0x5d22, 0x5d97,
+  0x5d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x5db8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5d81,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5dd4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x540e, 0x5fa0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7377, 0x7341, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x736a, 0xfffd, 0x733b,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x736b, 0xfffd,
+  /* 0x62 */
+  0xfffd, 0xfffd, 0xfffd, 0x7380, 0xfffd, 0xfffd, 0xfffd, 0x737c,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x98e0, 0x9933, 0x98e9, 0x993c, 0x98ea, 0x98eb,
+  0x98ed, 0x98f4, 0x9909, 0x9911, 0x4f59, 0x991b, 0x9937, 0x993f,
+  0x9943, 0x9948, 0x9949, 0x994a, 0x994c, 0x9962, 0xfffd, 0x5ee1,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8ce1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x61fa, 0x61ae, 0xfffd, 0x616a, 0xfffd, 0xfffd,
+  0x613e, 0x60b5, 0x6134, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61cc,
+  0xfffd, 0x615f, 0x61e8, 0x60fb, 0x6137, 0xfffd,
+  /* 0x63 */
+  0xfffd, 0x60f2, 0xfffd, 0xfffd, 0x6173, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x611c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6192, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9582, 0x9586, 0x95c8, 0x958e,
+  0x9594, 0x958c, 0x95e5, 0x95ad, 0x95ab, 0x9b2e, 0x95ac, 0x95be,
+  0x95b6, 0x9b29, 0x95bf, 0x95bd, 0x95bc, 0x95c3, 0x95cb, 0x95d4,
+  0x95d0, 0x95d5, 0x95de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7043, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f59, 0xfffd, 0xfffd, 0xfffd,
+  0x7027, 0x7018, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ffc,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6d87,
+  /* 0x64 */
+  0xfffd, 0xfffd, 0xfffd, 0x6d79, 0x6e5e, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x6fae, 0xfffd, 0xfffd, 0xfffd, 0x700f, 0x6ef8,
+  0x6f6f, 0xfffd, 0xfffd, 0xfffd, 0x6df6, 0x6f7f, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x7006, 0xfffd, 0xfffd, 0x6fa0, 0xfffd, 0xfffd, 0xfffd,
+  0x700b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7067, 0xfffd, 0xfffd, 0x7044, 0xfffd, 0x7005, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6f77, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x7020, 0x701f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x7032, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7028,
+  /* 0x65 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x705d,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x9a2b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9087, 0xfffd,
+  0x9015, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9090, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5c68,
+  0xfffd, 0x5f33, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5af5, 0x5ad7, 0xfffd,
+  /* 0x66 */
+  0xfffd, 0xfffd, 0x5b00, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x5a6d, 0x5b08, 0xfffd, 0x5b4c, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x5aa7, 0x5afb, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b0b, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b21,
+  0x5b2a, 0xfffd, 0xfffd, 0xfffd, 0x5b19, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99d4,
+  0x99df, 0x99d9, 0x9a36, 0x9a5b, 0x99d1, 0x99d8, 0x9a4d, 0x9a4a,
+  0x99e2, 0x9a6a, 0x9a0f, 0x9a0d, 0x9a05, 0x9a42, 0x9a2d, 0x9a16,
+  0x9a41, 0x9a2e, 0x9a38, 0x9a43, 0x9a44, 0x9a4f, 0x9a65, 0x9a64,
+  0x7cf9, 0x7d06, 0x7d02, 0x7d07, 0x7d08, 0x7e8a,
+  /* 0x67 */
+  0x7d1c, 0x7d15, 0x7d13, 0x7d3a, 0x7d32, 0x7d31, 0x7e10, 0x7d3c,
+  0x7d40, 0x7d3f, 0x7d5d, 0x7d4e, 0x7d73, 0x7d86, 0x7d83, 0x7d88,
+  0x7dbe, 0x7dba, 0x7dcb, 0x7dd4, 0x7dc4, 0x7d9e, 0x7dac, 0x7db9,
+  0x7da3, 0x7db0, 0x7dc7, 0x7dd9, 0x7dd7, 0x7df9, 0x7df2, 0x7e62,
+  0x7de6, 0x7df6, 0x7df1, 0x7e0b, 0x7de1, 0x7e09, 0x7e1d, 0x7e1f,
+  0x7e1e, 0x7e2d, 0x7e0a, 0x7e11, 0x7e7d, 0x7e39, 0x7e35, 0x7e32,
+  0x7e46, 0x7e45, 0x7e88, 0x7e5a, 0x7e52, 0x7e6e, 0x7e7e, 0x7e70,
+  0x7e6f, 0x7e98, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x74a3, 0x744b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74cf, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x980a, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x74bd, 0x743f, 0x7489, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x68 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74a6,
+  0xfffd, 0xfffd, 0xfffd, 0x74d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74da, 0xfffd, 0x97d9,
+  0x97de, 0x97dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x69aa, 0x6aea,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6898, 0xfffd, 0x68d6, 0x6a05,
+  0x689f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6adb, 0xfffd, 0x6af3,
+  0xfffd, 0xfffd, 0x6ae8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6adf, 0xfffd, 0x6a89, 0xfffd,
+  0xfffd, 0x690f, 0x6a48, 0xfffd, 0x6968, 0xfffd, 0x69bf, 0xfffd,
+  0xfffd, 0xfffd, 0x6a3a, 0xfffd, 0x6a9c, 0xfffd, 0x6b12, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x6b1e, 0xfffd, 0xfffd, 0x6add, 0x69e7, 0xfffd,
+  /* 0x69 */
+  0x6b0f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6b16, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6aec, 0x6ada, 0xfffd, 0x6af8, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6ab3, 0xfffd, 0x6ae7, 0xfffd, 0xfffd,
+  0x6aa3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ad3, 0xfffd, 0xfffd,
+  0xfffd, 0x6ade, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x6ba4, 0xfffd, 0x6b9e, 0x6bae, 0xfffd,
+  0x6bab, 0xfffd, 0x6baf, 0xfffd, 0x8ed4, 0x8edb, 0x8ef2, 0x8efb,
+  0x8f64, 0x8ef9, 0x8efc, 0x8eeb, 0x8ee4, 0x8f62, 0x8efa, 0x8efe,
+  0x8f0a, 0x8f07, 0x8f05, 0x8f12, 0x8f26, 0x8f1e,
+  /* 0x6a */
+  0x8f1f, 0x8f1c, 0x8f33, 0x8f46, 0x8f54, 0xfffd, 0x6214, 0x6227,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6229, 0xfffd,
+  0x750c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x66c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x66c4, 0xfffd, 0xfffd, 0x6689, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x66d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8cc1, 0x8cb0, 0x8cba, 0x8cbd, 0x8d04, 0x8cb2, 0x8cc5,
+  0x8d10, 0x8cd1, 0x8cda, 0x8cd5, 0x8ceb, 0x8ce7, 0x8cfb, 0x8998,
+  0x89ac, 0x89a1, 0x89bf, 0x89a6, 0x89af, 0x89b2, 0x89b7, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x6b */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6bff, 0xfffd,
+  0xfffd, 0x6c0c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x6c2c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7258, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x6727, 0x8156, 0xfffd, 0x81da, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x811b, 0xfffd, 0xfffd,
+  0xfffd, 0x81be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8161, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x81cf, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x6c */
+  0xfffd, 0xfffd, 0x6b5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x98ae, 0x98af, 0x98b6, 0x98bc, 0x98c6, 0x98c8, 0xfffd, 0xfffd,
+  0x8f42, 0xfffd, 0xfffd, 0x9f4f, 0x6595, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x716c, 0x7152, 0xfffd,
+  0x7197, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71c1, 0xfffd,
+  0xfffd, 0xfffd, 0x71dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x71fe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x79b0, 0xfffd, 0xfffd, 0x798e, 0xfffd, 0xfffd, 0x79aa,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x6d */
+  0x61df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6164,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61e3, 0x6207,
+  0xfffd, 0xfffd, 0xfffd, 0x6fa9, 0xfffd, 0x78ef, 0xfffd, 0x78ad,
+  0xfffd, 0x7868, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x78b8, 0xfffd,
+  0xfffd, 0x792a, 0x7931, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7864, 0x78fd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x78e7, 0xfffd, 0xfffd, 0xfffd, 0x78e3, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f95,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7798, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x775e, 0x77bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x6e */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7f86, 0xfffd, 0xfffd, 0x7f88, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x91d2, 0x91d3, 0x91d4, 0x91d9, 0x91d7,
+  0x91d5, 0x91f7, 0x91e7, 0x91e4, 0x9346, 0x91f5, 0x91f9, 0x9208,
+  0x9226, 0x9245, 0x9211, 0x9210, 0x9201, 0x9227, 0x9204, 0x9225,
+  0x9200, 0x923a, 0x9266, 0x9237, 0x9233, 0x9255, 0x923d, 0x9238,
+  0x925e, 0x926c, 0x926d, 0x923f, 0x9460, 0x9230, 0x9249, 0x9248,
+  0x924d, 0x922e, 0x9239, 0x9438, 0x92ac, 0x92a0, 0x927a, 0x92aa,
+  0x92ee, 0x92cf, 0x9403, 0x92e3, 0x943a, 0x92b1, 0x92a6, 0x93a7,
+  0x9296, 0x92cc, 0x92a9, 0x93f5, 0x9293, 0x927f,
+  /* 0x6f */
+  0x93a9, 0x929a, 0x931a, 0x92ab, 0x9283, 0x940b, 0x92a8, 0x92a3,
+  0x9412, 0x9338, 0x92f1, 0x93d7, 0x92e5, 0x92f0, 0x92ef, 0x92e8,
+  0x92bc, 0x92dd, 0x92f6, 0x9426, 0x9427, 0x92c3, 0x92df, 0x92e6,
+  0x9312, 0x9306, 0x9369, 0x931b, 0x9340, 0x9301, 0x9315, 0x932e,
+  0x9343, 0x9307, 0x9308, 0x931f, 0x9319, 0x9365, 0x9347, 0x9376,
+  0x9354, 0x9364, 0x93aa, 0x9370, 0x9384, 0x93e4, 0x93d8, 0x9428,
+  0x9387, 0x93cc, 0x9398, 0x93b8, 0x93bf, 0x93a6, 0x93b0, 0x93b5,
+  0x944c, 0x93e2, 0x93dc, 0x93dd, 0x93cd, 0x93de, 0x93c3, 0x93c7,
+  0x93d1, 0x9414, 0x941d, 0x93f7, 0x9465, 0x9413, 0x946d, 0x9420,
+  0x9479, 0x93f9, 0x9419, 0x944a, 0x9432, 0x943f, 0x9454, 0x9463,
+  0x937e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x70 */
+  0xfffd, 0xfffd, 0x7a61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ce9, 0x9cf6,
+  0x9d07, 0x9d06, 0x9d23, 0x9d87, 0x9e15, 0x9d1d, 0x9d1f, 0x9de5,
+  0x9d2f, 0x9dd9, 0x9d30, 0x9d42, 0x9e1e, 0x9d53, 0x9e1d, 0x9d60,
+  0x9d52, 0x9df3, 0x9d5c, 0x9d61, 0x9d93, 0x9d6a, 0x9d6f, 0x9d89,
+  0x9d98, 0x9d9a, 0x9dc0, 0x9da5, 0x9da9, 0x9dc2, 0x9dbc, 0x9e1a,
+  0x9dd3, 0x9dda, 0x9def, 0x9de6, 0x9df2, 0x9df8, 0x9e0c, 0x9dfa,
+  0x9e1b, 0xfffd, 0xfffd, 0x7664, 0x7658, 0xfffd, 0x7667, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x7602, 0xfffd, 0xfffd, 0x7646, 0xfffd, 0xfffd, 0x7647, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7649, 0xfffd,
+  0x761e, 0xfffd, 0xfffd, 0x763b, 0xfffd, 0xfffd,
+  /* 0x71 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x766d,
+  0xfffd, 0xfffd, 0x766e, 0xfffd, 0xfffd, 0x7669, 0xfffd, 0xfffd,
+  0xfffd, 0x7672, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x7ac7, 0xfffd, 0xfffd, 0xfffd, 0x7ab6,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8960, 0xfffd, 0xfffd, 0xfffd, 0x8933, 0xfffd, 0x895d, 0x8947,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x8938, 0xfffd, 0x8964, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x76b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x802e, 0xfffd, 0xfffd, 0x802c, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8079, 0xfffd,
+  0x8075, 0xfffd, 0xfffd, 0x9807, 0x980e, 0x980f,
+  /* 0x72 */
+  0x9821, 0x981c, 0x6f41, 0x9826, 0x9837, 0x984e, 0x9853, 0x9873,
+  0x9862, 0x9859, 0x9865, 0x986c, 0x9870, 0xfffd, 0xfffd, 0xfffd,
+  0x87e3, 0x8806, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8706, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x8823, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x87f6, 0xfffd, 0xfffd, 0x86fa, 0x87ef, 0xfffd, 0x8784, 0xfffd,
+  0xfffd, 0xfffd, 0x8810, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87c8, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8811, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87bb, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87ce, 0xfffd,
+  /* 0x73 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7f4c, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7be4, 0xfffd, 0x7b67,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c69, 0xfffd, 0xfffd,
+  0x7bf3, 0xfffd, 0xfffd, 0xfffd, 0x7b8f, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c00, 0x7bcb, 0xfffd, 0xfffd,
+  0xfffd, 0x7c5c, 0xfffd, 0x7c1e, 0xfffd, 0xfffd, 0x7c2b, 0xfffd,
+  0x7c23, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c6a, 0xfffd,
+  /* 0x74 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c5f, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8264, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x826b, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x88ca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7fa5, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cf2, 0x7cf6,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cdd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x7e36, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ea9, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8db2, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x75 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c5, 0x91c3, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9e7a, 0x8e89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x8e4c, 0xfffd, 0xfffd, 0xfffd, 0x8e92,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e7a, 0x8e55, 0xfffd,
+  0x8e9a, 0x8e8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x8e93, 0xfffd, 0xfffd, 0x8e91, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea1, 0x8e63, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eaa, 0xfffd,
+  0xfffd, 0x8ea6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x89f4, 0xfffd, 0xfffd,
+  /* 0x76 */
+  0xfffd, 0xfffd, 0x89f6, 0xfffd, 0xfffd, 0x975a, 0xfffd, 0x9742,
+  0xfffd, 0xfffd, 0x973d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9744,
+  0xfffd, 0xfffd, 0x9f54, 0x9f5f, 0x9f59, 0x9f60, 0x9f5c, 0x9f66,
+  0x9f6c, 0x9f6a, 0x9f77, 0x9efd, 0x9eff, 0x9f09, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b8e, 0xfffd, 0x947e, 0xfffd,
+  0x93e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b77, 0x9b74,
+  0x9b81, 0x9b83, 0x9b8e, 0x9c78, 0x7a4c, 0x9b92, 0x9c5f, 0x9b90,
+  0x9bad, 0x9b9a, 0x9baa, 0x9b9e, 0x9c6d, 0x9bab, 0x9b9d, 0x9c58,
+  0x9bc1, 0x9c7a, 0x9c31, 0x9c39, 0x9c23, 0x9c37, 0x9bc0, 0x9bca,
+  0x9bc7, 0x9bfd, 0x9bd6, 0x9bea, 0x9beb, 0x9be1, 0x9be4, 0x9be7,
+  0x9bdd, 0x9be2, 0x9bf0, 0x9bdb, 0x9bf4, 0x9bd4, 0x9c5d, 0x9c08,
+  0x9c10, 0x9c0d, 0x9c12, 0x9c09, 0x9bff, 0x9c20,
+  /* 0x77 */
+  0x9c32, 0x9c2d, 0x9c28, 0x9c25, 0x9c29, 0x9c33, 0x9c3e, 0x9c48,
+  0x9c3b, 0x9c35, 0x9c45, 0x9c56, 0x9c54, 0x9c52, 0x9c67, 0xfffd,
+  0xfffd, 0x97c3, 0x97bd, 0xfffd, 0x97c9, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dbb, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x9acf, 0xfffd, 0x9ad6, 0x9ad5, 0xfffd, 0xfffd,
+  0xfffd, 0x9b58, 0x9b4e, 0xfffd, 0xfffd, 0xfffd, 0x9957, 0x995c,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b22, 0xfffd, 0xfffd,
+  0x4e48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x9ef7, 0xfffd, 0xfffd, 0x9ef2, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x78 */
+  0x896c, 0x95c6, 0x9336, 0x5f46, 0x8514, 0x7e94, 0x5382, 0x51b2,
+  0x4e11, 0x9f63, 0x5679, 0x515a, 0x6dc0, 0x9f15, 0x6597, 0x5641,
+  0x9aee, 0x8303, 0x4e30, 0x8907, 0x5e72, 0x7a40, 0x98b3, 0x5e7f,
+  0x95a4, 0x9b0d, 0x5212, 0x8ff4, 0x5f59, 0x7a6b, 0x98e2, 0x51e0,
+  0x50a2, 0x4ef7, 0x8350, 0x8591, 0x5118, 0x636e, 0x6372, 0x524b,
+  0x5938, 0x774f, 0x8721, 0x814a, 0x7e8d, 0x91cc, 0x66c6, 0x5e18,
+  0x77ad, 0x9e75, 0x56c9, 0x9ef4, 0x6fdb, 0x61de, 0x77c7, 0x7030,
+  0x9eb5, 0x884a, 0x95e2, 0x82f9, 0x51ed, 0x6251, 0x4ec6, 0x6734,
+  0x97c6, 0x7c64, 0x7e34, 0x97a6, 0x9eaf, 0x786e, 0x820d, 0x672f,
+  0x677e, 0x56cc, 0x53f0, 0x98b1, 0x6aaf, 0x7f4e, 0x6d82, 0x7cf0,
+  0x4e07, 0x4fc2, 0x7e6b, 0x9e79, 0x56ae, 0x9b1a, 0x846f, 0x53f6,
+  0x90c1, 0x79a6, 0x7c72, 0x613f, 0x4e91, 0x9ad2,
+  /* 0x79 */
+  0x75c7, 0x96bb, 0x53ea, 0x7dfb, 0x88fd, 0x79cd, 0x7843, 0x7b51,
+  0x51c6,
+};
+
+static int
+gb12345ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 == 0x21) || (c1 >= 0x30 && c1 <= 0x79)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        if (i < 1410) {
+          if (i < 12)
+            wc = gb12345ext_2uni_page21[i];
+        } else {
+          if (i < 8281)
+            wc = gb12345ext_2uni_page30[i-1410];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short gb12345ext_2charset[2249] = {
+  0x212c, 0x7871, 0x7829, 0x7833, 0x7761, 0x4252, 0x787d, 0x5147,
+  0x785f, 0x7842, 0x5879, 0x6245, 0x4034, 0x4258, 0x7872, 0x4f40,
+  0x5876, 0x4129, 0x3256, 0x3876, 0x4347, 0x4257, 0x4e30, 0x3260,
+  0x556c, 0x5877, 0x4921, 0x3138, 0x7841, 0x5336, 0x342b, 0x5871,
+  0x552e, 0x494b, 0x4763, 0x594d, 0x3d76, 0x595d, 0x4748, 0x464d,
+  0x4e31, 0x3d44, 0x5947, 0x3c5b, 0x5247, 0x592f, 0x525a, 0x3f6b,
+  0x3c73, 0x594f, 0x5931, 0x592d, 0x7845, 0x3325, 0x5345, 0x3422,
+  0x5933, 0x5950, 0x594e, 0x5932, 0x3679, 0x782c, 0x413d, 0x7828,
+  0x7929, 0x3e3b, 0x3633, 0x7840, 0x785d, 0x3f2d, 0x783b, 0x5859,
+  0x5472, 0x7848, 0x3855, 0x3950, 0x585c, 0x3434, 0x3b2e, 0x3e67,
+  0x4175, 0x3974, 0x585b, 0x3d23, 0x3c41, 0x3e22, 0x362f, 0x4e71,
+  0x512b, 0x4a24, 0x404d, 0x4a46, 0x5b3d, 0x4078, 0x4830, 0x5850,
+  0x3b63, 0x5851, 0x4778, 0x502d, 0x7827, 0x5847, 0x325e, 0x5161,
+  0x4077, 0x5849, 0x324e, 0x3454, 0x7923, 0x786b, 0x7878, 0x6161,
+  0x5f43, 0x5431, 0x5f42, 0x4e4a, 0x4674, 0x5146, 0x3b3d, 0x4925,
+  0x4747, 0x3525, 0x5334, 0x473a, 0x5844, 0x4270, 0x4e58, 0x5f6f,
+  0x5f59, 0x4c3e, 0x6036, 0x453b, 0x5f75, 0x3322, 0x5f69, 0x3b29,
+  0x5f6b, 0x5025, 0x5f34, 0x5f58, 0x5f3c, 0x7830, 0x5f50, 0x5f55,
+  0x5f66, 0x5f5c, 0x6048, 0x5f60, 0x4567, 0x3656, 0x782b, 0x5f4c,
+  0x4f45, 0x5f62, 0x6060, 0x4476, 0x5f3f, 0x417c, 0x7875, 0x6037,
+  0x514f, 0x6053, 0x5f79, 0x603f, 0x4f79, 0x5966, 0x5f3d, 0x7853,
+  0x786a, 0x5676, 0x6070, 0x397a, 0x4e27, 0x5430, 0x5432, 0x4d3c,
+  0x4d45, 0x5b6b, 0x5634, 0x3c61, 0x5b51, 0x5b71, 0x5b76, 0x5222,
+  0x3128, 0x3321, 0x3f69, 0x5c63, 0x5b6e, 0x5b75, 0x4d3f, 0x4e6b,
+  0x5b77, 0x333e, 0x4735, 0x3566, 0x5739, 0x3669, 0x3758, 0x473d,
+  0x3f51, 0x4c33, 0x5139, 0x405d, 0x5b5b, 0x5b64, 0x3b35, 0x4222,
+  0x5b62, 0x5b5e, 0x3053, 0x5733, 0x3a78, 0x4a59, 0x434e, 0x7849,
+  0x3c50, 0x5b3c, 0x5e46, 0x3661, 0x3d31, 0x375c, 0x5731, 0x4226,
+  0x383e, 0x662b, 0x6634, 0x4268, 0x657d, 0x657c, 0x6635, 0x6623,
+  0x662c, 0x663f, 0x3d3f, 0x664d, 0x6648, 0x6649, 0x5324, 0x4974,
+  0x662e, 0x4b6f, 0x5127, 0x424f, 0x475e, 0x4a35, 0x447e, 0x4973,
+  0x5034, 0x3f6d, 0x3368, 0x3126, 0x3d2b, 0x5728, 0x5130, 0x3654,
+  0x353c, 0x5e4f, 0x4245, 0x3263, 0x6570, 0x4a74, 0x3854, 0x612d,
+  0x353a, 0x4f3f, 0x6141, 0x385a, 0x613f, 0x6134, 0x6130, 0x6150,
+  0x5538, 0x612b, 0x6140, 0x613d, 0x613b, 0x6149, 0x416b, 0x536c,
+  0x3f79, 0x424d, 0x615b, 0x5b4f, 0x7850, 0x4b27, 0x4a26, 0x554a,
+  0x3478, 0x5621, 0x6078, 0x607e, 0x607d, 0x5644, 0x3152, 0x306f,
+  0x607c, 0x7835, 0x3849, 0x3c38, 0x7838, 0x3f62, 0x436d, 0x3327,
+  0x6250, 0x374f, 0x3963, 0x422e, 0x4c7c, 0x6572, 0x5545, 0x7824,
+  0x352f, 0x4356, 0x4d64, 0x783d, 0x3a73, 0x3e36, 0x3453, 0x6162,
+  0x3834, 0x3339, 0x626a, 0x4346, 0x3671, 0x4455, 0x6322, 0x627c,
+  0x302e, 0x632b, 0x626b, 0x627d, 0x6269, 0x787c, 0x4c2c, 0x3252,
+  0x3251, 0x627a, 0x395f, 0x6d28, 0x6266, 0x4b4b, 0x4247, 0x6325,
+  0x476c, 0x5347, 0x3139, 0x412f, 0x463e, 0x6334, 0x352c, 0x375f,
+  0x4375, 0x6264, 0x4f5c, 0x5264, 0x3f52, 0x5326, 0x6278, 0x7856,
+  0x6d21, 0x6d2f, 0x627b, 0x334d, 0x4041, 0x3b33, 0x507c, 0x6263,
+  0x3e65, 0x4965, 0x4135, 0x6d30, 0x6a27, 0x6a28, 0x6a2f, 0x553d,
+  0x4f37, 0x785e, 0x502e, 0x4961, 0x5e51, 0x7846, 0x7847, 0x4928,
+  0x4255, 0x5575, 0x3c70, 0x516f, 0x3b3b, 0x3b53, 0x4b70, 0x3537,
+  0x4740, 0x5e62, 0x5e68, 0x4227, 0x563f, 0x3f59, 0x5e52, 0x3274,
+  0x404c, 0x4453, 0x5e58, 0x3527, 0x3226, 0x3827, 0x464b, 0x5e6c,
+  0x4c22, 0x4e4e, 0x3c71, 0x5335, 0x4230, 0x5471, 0x3b77, 0x3532,
+  0x3523, 0x3e5d, 0x3c37, 0x4462, 0x3177, 0x4521, 0x3869, 0x5640,
+  0x4029, 0x5f22, 0x305a, 0x4b53, 0x5f23, 0x4845, 0x5e73, 0x446c,
+  0x4223, 0x4039, 0x5e7c, 0x3273, 0x5f25, 0x4963, 0x545c, 0x424e,
+  0x4c2f, 0x3d41, 0x403f, 0x305c, 0x3550, 0x4a7d, 0x4132, 0x3150,
+  0x6c35, 0x782f, 0x5536, 0x364f, 0x4a31, 0x3d7a, 0x5667, 0x544e,
+  0x6a4d, 0x3329, 0x545d, 0x6a4a, 0x784f, 0x6a3c, 0x4f7e, 0x6a53,
+  0x3f75, 0x4939, 0x4a69, 0x3b61, 0x6b4a, 0x7868, 0x7860, 0x362b,
+  0x7869, 0x6845, 0x4c75, 0x6849, 0x467a, 0x6847, 0x5466, 0x3630,
+  0x553b, 0x465c, 0x6862, 0x516e, 0x3763, 0x6865, 0x5235, 0x3c2b,
+  0x683f, 0x4859, 0x6867, 0x3939, 0x4739, 0x687d, 0x3d30, 0x572e,
+  0x4056, 0x6848, 0x4225, 0x316a, 0x4a60, 0x5179, 0x4653, 0x4a77,
+  0x686b, 0x6863, 0x4745, 0x3b7a, 0x4d56, 0x685f, 0x3535, 0x686d,
+  0x3c6c, 0x6949, 0x786d, 0x6944, 0x447b, 0x3c77, 0x3971, 0x6956,
+  0x6935, 0x684e, 0x687c, 0x695a, 0x685d, 0x6946, 0x6853, 0x6840,
+  0x6934, 0x6850, 0x6937, 0x5323, 0x4038, 0x4828, 0x6921, 0x686f,
+  0x692d, 0x6879, 0x4755, 0x4537, 0x6c23, 0x3b36, 0x4b6a, 0x407a,
+  0x3969, 0x3250, 0x6966, 0x6964, 0x6969, 0x6967, 0x696b, 0x3c5f,
+  0x4931, 0x3f47, 0x4539, 0x6b27, 0x5531, 0x6b2a, 0x4678, 0x4762,
+  0x6b32, 0x6424, 0x786f, 0x637e, 0x782d, 0x4259, 0x5428, 0x6435,
+  0x4733, 0x3b41, 0x4e50, 0x3262, 0x3b6b, 0x6425, 0x4c40, 0x573c,
+  0x3935, 0x3257, 0x4370, 0x3553, 0x5c7e, 0x3b26, 0x564d, 0x4978,
+  0x4231, 0x6430, 0x427a, 0x5366, 0x453d, 0x3a3a, 0x4130, 0x5755,
+  0x5547, 0x3d25, 0x3d2c, 0x7223, 0x4643, 0x3d60, 0x636d, 0x4731,
+  0x4873, 0x6431, 0x4023, 0x6464, 0x6436, 0x492c, 0x3d3d, 0x4054,
+  0x3d27, 0x6445, 0x5473, 0x6d34, 0x642b, 0x356d, 0x5747, 0x4528,
+  0x4a2a, 0x4522, 0x7855, 0x3c43, 0x4c4e, 0x4044, 0x4e2b, 0x3175,
+  0x3d26, 0x6378, 0x424b, 0x645e, 0x6442, 0x503a, 0x6449, 0x642f,
+  0x3174, 0x6372, 0x4124, 0x646c, 0x646b, 0x6371, 0x647e, 0x7858,
+  0x6472, 0x403d, 0x6363, 0x645c, 0x4877, 0x406c, 0x4c32, 0x6530,
+  0x4d65, 0x4250, 0x6459, 0x4e5a, 0x4c7e, 0x4e5e, 0x4136, 0x6c3f,
+  0x5c64, 0x3b40, 0x3733, 0x6c3e, 0x532b, 0x6c41, 0x4848, 0x3363,
+  0x6c47, 0x3546, 0x4955, 0x4c4c, 0x6c4b, 0x532a, 0x3253, 0x5672,
+  0x3b62, 0x3d7d, 0x6c62, 0x4b38, 0x422f, 0x4043, 0x5579, 0x4e2a,
+  0x522f, 0x367b, 0x6b39, 0x4723, 0x5c7d, 0x363f, 0x4e7e, 0x5734,
+  0x4f41, 0x3137, 0x5578, 0x534c, 0x6178, 0x616f, 0x537c, 0x4a28,
+  0x3640, 0x6176, 0x617d, 0x447c, 0x3b71, 0x4154, 0x616e, 0x4a5e,
+  0x4c21, 0x4f57, 0x6228, 0x6224, 0x4f56, 0x6775, 0x6762, 0x4b76,
+  0x5328, 0x426a, 0x6776, 0x6761, 0x6828, 0x3b37, 0x6774, 0x476d,
+  0x6767, 0x682c, 0x6836, 0x6a31, 0x327a, 0x4436, 0x314f, 0x3b2d,
+  0x3531, 0x336b, 0x357e, 0x7921, 0x3e37, 0x7069, 0x3768, 0x5171,
+  0x3b3e, 0x7079, 0x342f, 0x4531, 0x707c, 0x4146, 0x706c, 0x706f,
+  0x7077, 0x705d, 0x3171, 0x5177, 0x705c, 0x5622, 0x705f, 0x712e,
+  0x5122, 0x7128, 0x712b, 0x5338, 0x4c31, 0x7132, 0x3722, 0x3028,
+  0x7164, 0x5665, 0x5535, 0x3e21, 0x3c60, 0x454c, 0x422c, 0x784a,
+  0x5576, 0x6d79, 0x6d6e, 0x4277, 0x7851, 0x6d7a, 0x7857, 0x5675,
+  0x3d43, 0x7927, 0x6d4c, 0x6d3a, 0x7866, 0x5162, 0x4b36, 0x6d38,
+  0x6d3f, 0x4837, 0x426b, 0x5729, 0x6d57, 0x6d53, 0x6d36, 0x6d4d,
+  0x3421, 0x302d, 0x3f73, 0x6d42, 0x4079, 0x372f, 0x6d43, 0x3b76,
+  0x6c75, 0x787a, 0x6c78, 0x4071, 0x6c72, 0x353b, 0x7926, 0x5656,
+  0x3346, 0x7836, 0x7655, 0x3b7d, 0x5331, 0x7023, 0x3b60, 0x4e48,
+  0x783e, 0x4e51, 0x4d5d, 0x476e, 0x7140, 0x3f7a, 0x345c, 0x474f,
+  0x713c, 0x546e, 0x4754, 0x4a7a, 0x3e3a, 0x314a, 0x7928, 0x7348,
+  0x3c63, 0x735d, 0x3d5a, 0x3736, 0x567e, 0x7366, 0x7346, 0x4938,
+  0x7359, 0x7365, 0x4228, 0x736c, 0x3c72, 0x7371, 0x736f, 0x4729,
+  0x4131, 0x403a, 0x336f, 0x736a, 0x7425, 0x417d, 0x7862, 0x7356,
+  0x737d, 0x4069, 0x4261, 0x787b, 0x7456, 0x3760, 0x4138, 0x7870,
+  0x744f, 0x5961, 0x7450, 0x6679, 0x3e40, 0x3c4d, 0x667b, 0x543c,
+  0x3a6c, 0x667a, 0x667c, 0x667d, 0x4852, 0x4e46, 0x4449, 0x4526,
+  0x6723, 0x343f, 0x6722, 0x4934, 0x563d, 0x3c36, 0x3757, 0x6721,
+  0x3744, 0x4f38, 0x6726, 0x6725, 0x4970, 0x495c, 0x6724, 0x6728,
+  0x672a, 0x6729, 0x5655, 0x5769, 0x306d, 0x672c, 0x3d61, 0x672b,
+  0x3d4a, 0x4267, 0x5124, 0x3878, 0x485e, 0x4d33, 0x4b3f, 0x672d,
+  0x3e78, 0x3e6e, 0x3073, 0x672f, 0x672e, 0x6730, 0x5065, 0x4b67,
+  0x3e2d, 0x575b, 0x6736, 0x3371, 0x6739, 0x4f5f, 0x6737, 0x4e2c,
+  0x673a, 0x3859, 0x4d78, 0x3141, 0x573a, 0x425a, 0x6738, 0x6732,
+  0x5540, 0x3442, 0x6731, 0x4360, 0x6735, 0x673b, 0x3d74, 0x6733,
+  0x424c, 0x5077, 0x6734, 0x673d, 0x3c6a, 0x673c, 0x3c29, 0x3650,
+  0x355e, 0x6745, 0x5435, 0x6741, 0x3160, 0x3b3a, 0x4365, 0x4e33,
+  0x6743, 0x673f, 0x4137, 0x6742, 0x673e, 0x7924, 0x5d53, 0x6746,
+  0x674b, 0x6744, 0x6727, 0x674c, 0x383f, 0x6747, 0x6749, 0x6748,
+  0x4f58, 0x4c50, 0x376c, 0x674a, 0x4b75, 0x575d, 0x6750, 0x7863,
+  0x674f, 0x746a, 0x4246, 0x674e, 0x575c, 0x3c28, 0x6752, 0x6751,
+  0x6755, 0x562f, 0x4949, 0x6754, 0x4846, 0x6740, 0x497e, 0x3b66,
+  0x7873, 0x3c6b, 0x6756, 0x6759, 0x6758, 0x3d49, 0x526f, 0x3c4c,
+  0x674d, 0x6757, 0x6753, 0x667e, 0x5078, 0x784d, 0x3278, 0x5327,
+  0x7826, 0x4f4b, 0x675a, 0x4042, 0x733f, 0x786e, 0x3723, 0x3055,
+  0x425e, 0x6e3c, 0x6e3f, 0x7447, 0x5265, 0x4f30, 0x474c, 0x716f,
+  0x716c, 0x4a25, 0x4e45, 0x412a, 0x344f, 0x4979, 0x4b4a, 0x7179,
+  0x4474, 0x5630, 0x7177, 0x4c7d, 0x417b, 0x4b60, 0x5032, 0x6b56,
+  0x554d, 0x784c, 0x4976, 0x6b4b, 0x6b61, 0x4454, 0x5657, 0x3326,
+  0x3774, 0x3d3a, 0x4465, 0x3528, 0x6b5a, 0x4527, 0x4133, 0x466a,
+  0x6b77, 0x4030, 0x6b4d, 0x5460, 0x5975, 0x4159, 0x4c28, 0x536b,
+  0x504b, 0x3e59, 0x3e49, 0x7867, 0x3255, 0x742f, 0x3d22, 0x7435,
+  0x3c68, 0x515e, 0x5b3b, 0x5c51, 0x785c, 0x7832, 0x7843, 0x572f,
+  0x3e25, 0x3c54, 0x5c48, 0x3b2a, 0x5c49, 0x4033, 0x4d72, 0x5d2b,
+  0x5236, 0x5d26, 0x5d27, 0x4e2d, 0x7877, 0x3b67, 0x5d3b, 0x5d2a,
+  0x3254, 0x5d25, 0x3847, 0x412b, 0x5c4a, 0x5c6a, 0x7825, 0x5d64,
+  0x3d2f, 0x5c60, 0x5271, 0x5d21, 0x5d5b, 0x5c71, 0x5d24, 0x5c3f,
+  0x5d35, 0x5c69, 0x5d5e, 0x3534, 0x4e5f, 0x4f74, 0x5d77, 0x5c76,
+  0x3c3b, 0x5c3c, 0x7844, 0x473e, 0x5d32, 0x3c76, 0x4878, 0x5c79,
+  0x4036, 0x5d23, 0x5255, 0x5229, 0x5e34, 0x544c, 0x5c42, 0x302a,
+  0x5d7e, 0x5e2d, 0x422b, 0x4b55, 0x463b, 0x5e3a, 0x5d7c, 0x5c57,
+  0x403c, 0x5d71, 0x425c, 0x3426, 0x4232, 0x3a45, 0x3f77, 0x724c,
+  0x7239, 0x784b, 0x4a34, 0x4f3a, 0x4e4f, 0x724f, 0x426c, 0x5329,
+  0x7277, 0x555d, 0x7265, 0x727d, 0x7231, 0x3275, 0x724d, 0x3366,
+  0x7249, 0x524f, 0x532c, 0x7232, 0x7253, 0x726e, 0x402f, 0x7243,
+  0x3946, 0x324f, 0x4279, 0x565a, 0x785a, 0x4a75, 0x4e40, 0x3365,
+  0x563b, 0x7441, 0x406f, 0x3239, 0x5730, 0x7925, 0x7834, 0x3f63,
+  0x714d, 0x715a, 0x5974, 0x7150, 0x3040, 0x714f, 0x7149, 0x715c,
+  0x4d60, 0x7821, 0x3344, 0x4f2e, 0x3c7b, 0x3966, 0x4359, 0x4a53,
+  0x6a68, 0x6a6a, 0x6a6c, 0x4757, 0x6a69, 0x6a6d, 0x6a6e, 0x6a6f,
+  0x3e75, 0x4040, 0x6a6b, 0x395b, 0x757c, 0x7623, 0x3425, 0x5a25,
+  0x3629, 0x383c, 0x3c46, 0x5136, 0x5a27, 0x4c56, 0x5a26, 0x5135,
+  0x5a28, 0x467d, 0x3c47, 0x366f, 0x5148, 0x4b4f, 0x3e77, 0x5a2b,
+  0x3743, 0x4968, 0x506d, 0x4b5f, 0x5a2d, 0x556f, 0x5a2c, 0x5a2e,
+  0x5a2a, 0x5529, 0x5a31, 0x5a2f, 0x4640, 0x5a30, 0x5767, 0x344a,
+  0x5a3c, 0x512f, 0x5268, 0x4a54, 0x4a2b, 0x326f, 0x5a38, 0x396e,
+  0x5a39, 0x5a35, 0x3b30, 0x3843, 0x4f6a, 0x5a37, 0x5a36, 0x5a34,
+  0x5a33, 0x566f, 0x5a32, 0x3f64, 0x484f, 0x5a3f, 0x5a40, 0x352e,
+  0x5355, 0x5a3d, 0x536f, 0x334f, 0x3d6b, 0x4e5c, 0x4e73, 0x5a3e,
+  0x4b50, 0x3b65, 0x4b35, 0x4b2d, 0x3f4e, 0x5a47, 0x374c, 0x526a,
+  0x3577, 0x5a46, 0x573b, 0x4c38, 0x5a43, 0x476b, 0x5a3a, 0x5a41,
+  0x5a42, 0x4142, 0x425b, 0x5a45, 0x5a44, 0x357d, 0x5a52, 0x5a3b,
+  0x5a4c, 0x5a50, 0x5033, 0x5a49, 0x5a4d, 0x5a51, 0x3b64, 0x5a4f,
+  0x5a48, 0x376d, 0x566e, 0x5168, 0x5a4e, 0x4535, 0x4431, 0x5a4b,
+  0x4e3d, 0x4c5c, 0x565f, 0x3b51, 0x4355, 0x5a57, 0x5a4a, 0x5a55,
+  0x3079, 0x472b, 0x5a56, 0x3d32, 0x503b, 0x5225, 0x5a53, 0x5a58,
+  0x437d, 0x5a59, 0x5a29, 0x3d77, 0x4321, 0x5624, 0x5a5c, 0x3c25,
+  0x5a5a, 0x4a36, 0x5a5b, 0x4c37, 0x4657, 0x5a5e, 0x526b, 0x5269,
+  0x4734, 0x3b24, 0x537e, 0x3641, 0x3164, 0x7645, 0x3277, 0x4843,
+  0x403e, 0x5a5f, 0x5a54, 0x5a5d, 0x4671, 0x3761, 0x3134, 0x556a,
+  0x383a, 0x3246, 0x3931, 0x4636, 0x3b75, 0x3737, 0x4c30, 0x3961,
+  0x5470, 0x567c, 0x6a5b, 0x6a5f, 0x3721, 0x3973, 0x3161, 0x4272,
+  0x347b, 0x6a5c, 0x3751, 0x4c79, 0x6a5d, 0x4333, 0x3a58, 0x6a5a,
+  0x4238, 0x415e, 0x3b5f, 0x6a60, 0x574a, 0x3c56, 0x5474, 0x6a62,
+  0x495e, 0x3176, 0x6a64, 0x6a63, 0x344d, 0x494d, 0x4562, 0x6259,
+  0x4f4d, 0x4274, 0x3c7a, 0x3833, 0x6a66, 0x564a, 0x6a65, 0x554b,
+  0x3644, 0x4035, 0x572c, 0x6a67, 0x393a, 0x487c, 0x5853, 0x6a5e,
+  0x5738, 0x5479, 0x545e, 0x584d, 0x4944, 0x532e, 0x6a61, 0x4a6a,
+  0x3853, 0x545f, 0x384f, 0x5554, 0x4777, 0x7475, 0x3c79, 0x533b,
+  0x7544, 0x754f, 0x7567, 0x754e, 0x753b, 0x336c, 0x7552, 0x543e,
+  0x755c, 0x7548, 0x7559, 0x7551, 0x7566, 0x345a, 0x7572, 0x756f,
+  0x477b, 0x3335, 0x547e, 0x396c, 0x3e7c, 0x5079, 0x696d, 0x696e,
+  0x486d, 0x6975, 0x6974, 0x696f, 0x5661, 0x6972, 0x6977, 0x6970,
+  0x6973, 0x6978, 0x3d4f, 0x697b, 0x697a, 0x5458, 0x6979, 0x697c,
+  0x3828, 0x4761, 0x413e, 0x6a22, 0x3b54, 0x697e, 0x6a21, 0x3975,
+  0x697d, 0x3132, 0x4256, 0x3c2d, 0x6a23, 0x4a64, 0x3778, 0x5537,
+  0x535f, 0x6c31, 0x4f3d, 0x542f, 0x6a24, 0x572a, 0x555e, 0x3d4e,
+  0x6a25, 0x3a64, 0x604e, 0x6976, 0x6971, 0x306c, 0x3447, 0x3168,
+  0x3167, 0x4529, 0x783c, 0x6549, 0x5562, 0x412c, 0x3d78, 0x544b,
+  0x397d, 0x346f, 0x4e25, 0x5137, 0x355d, 0x5436, 0x4a4a, 0x3359,
+  0x4728, 0x5121, 0x5245, 0x4149, 0x4275, 0x3b39, 0x6547, 0x315f,
+  0x425f, 0x654e, 0x7879, 0x5b23, 0x534a, 0x5b29, 0x4f67, 0x575e,
+  0x5a79, 0x5447, 0x354b, 0x5623, 0x415a, 0x3526, 0x5a7e, 0x5b26,
+  0x5a77, 0x5b2a, 0x544d, 0x3373, 0x523d, 0x3d34, 0x4470, 0x5046,
+  0x7527, 0x7526, 0x4a4d, 0x784e, 0x6e44, 0x6e45, 0x6e46, 0x6e49,
+  0x6e48, 0x3624, 0x6e47, 0x556b, 0x3576, 0x6e4c, 0x6e4b, 0x3730,
+  0x6e4e, 0x6e4a, 0x6e4f, 0x4725, 0x6e59, 0x6e55, 0x6e57, 0x6e50,
+  0x4446, 0x365b, 0x3933, 0x6e54, 0x6e53, 0x332e, 0x4525, 0x3e7b,
+  0x3846, 0x6e58, 0x6e51, 0x6e56, 0x6e6a, 0x6e66, 0x6e5d, 0x4165,
+  0x6e5c, 0x6e60, 0x6e6b, 0x6e5a, 0x6e5f, 0x534b, 0x6e64, 0x3c58,
+  0x6e52, 0x6e68, 0x6e67, 0x6e69, 0x322c, 0x6e5e, 0x472f, 0x432d,
+  0x4726, 0x6e61, 0x3227, 0x6e5b, 0x6e62, 0x6e63, 0x3d42, 0x6e6f,
+  0x3875, 0x6e7e, 0x5278, 0x6f25, 0x4d2d, 0x4f33, 0x6e7d, 0x6e79,
+  0x437a, 0x6f22, 0x4f4e, 0x6e6e, 0x6f28, 0x523f, 0x6e77, 0x6f27,
+  0x6e7b, 0x6e70, 0x6f24, 0x6e6d, 0x6e76, 0x4f7a, 0x5062, 0x4c60,
+  0x6f31, 0x4241, 0x6f36, 0x503f, 0x3135, 0x6e7a, 0x6e72, 0x3766,
+  0x6f32, 0x6f37, 0x6e74, 0x337a, 0x6f2d, 0x6f38, 0x6f30, 0x464c,
+  0x4871, 0x6e71, 0x6f2f, 0x6f2e, 0x6f2b, 0x6f33, 0x3e62, 0x3856,
+  0x6f3e, 0x6f3a, 0x6f42, 0x6f43, 0x5736, 0x6f39, 0x6f3f, 0x3438,
+  0x6f45, 0x6f23, 0x6f3c, 0x6f44, 0x3627, 0x472e, 0x3d75, 0x432a,
+  0x4e7d, 0x6f40, 0x346d, 0x423c, 0x434c, 0x7823, 0x6f2a, 0x6f3d,
+  0x4f47, 0x6f41, 0x6e4d, 0x6f47, 0x3978, 0x3646, 0x6f49, 0x5521,
+  0x364d, 0x6f4a, 0x6f46, 0x6f3b, 0x4742, 0x6f4c, 0x3c7c, 0x6f48,
+  0x5560, 0x6f71, 0x433e, 0x6f4d, 0x6f51, 0x3077, 0x4b78, 0x6f53,
+  0x4e59, 0x5d76, 0x6f56, 0x6e78, 0x6f21, 0x6f4b, 0x3864, 0x5572,
+  0x6f57, 0x4478, 0x6f58, 0x6f54, 0x6f55, 0x6f5f, 0x6f60, 0x4134,
+  0x6f52, 0x6f5d, 0x6f61, 0x6f2c, 0x6f4f, 0x6f5b, 0x6f5c, 0x6f5e,
+  0x3279, 0x3e35, 0x6f5a, 0x6f4e, 0x7649, 0x6e7c, 0x6f64, 0x6f6a,
+  0x6e73, 0x6f26, 0x414d, 0x6f29, 0x6f66, 0x6f62, 0x5653, 0x6f6b,
+  0x6f63, 0x6f68, 0x6f34, 0x6f35, 0x6f50, 0x412d, 0x6f6d, 0x4058,
+  0x4c7a, 0x6e6c, 0x6e75, 0x6f6e, 0x567d, 0x6f6c, 0x6f59, 0x3c78,
+  0x6f6f, 0x6e65, 0x6f70, 0x6f65, 0x6f67, 0x543f, 0x4f62, 0x4477,
+  0x6f69, 0x4260, 0x576a, 0x7647, 0x5464, 0x3324, 0x4345, 0x6345,
+  0x4941, 0x6346, 0x3155, 0x3f2a, 0x634a, 0x6348, 0x4872, 0x4f50,
+  0x3c64, 0x6349, 0x5522, 0x3a52, 0x3873, 0x7839, 0x3727, 0x396b,
+  0x4376, 0x634d, 0x634f, 0x634c, 0x5444, 0x6351, 0x514b, 0x5156,
+  0x6355, 0x6354, 0x6350, 0x6353, 0x6356, 0x7822, 0x6347, 0x402b,
+  0x6357, 0x403b, 0x6359, 0x6358, 0x635a, 0x3433, 0x3958, 0x635b,
+  0x327b, 0x785b, 0x634b, 0x5a6a, 0x4942, 0x5573, 0x5275, 0x3342,
+  0x423d, 0x5174, 0x5a6d, 0x3653, 0x3d57, 0x5449, 0x3c4a, 0x4b66,
+  0x4f55, 0x527e, 0x4224, 0x4125, 0x7922, 0x4b64, 0x4b2b, 0x337b,
+  0x5453, 0x406b, 0x4451, 0x5446, 0x3567, 0x4e6d, 0x762b, 0x7628,
+  0x7630, 0x4169, 0x7626, 0x3e32, 0x584c, 0x392e, 0x7864, 0x7733,
+  0x7732, 0x7861, 0x7735, 0x4e24, 0x484d, 0x3a2b, 0x6838, 0x683a,
+  0x6839, 0x4f6c, 0x5233, 0x3625, 0x476a, 0x4f6e, 0x4b33, 0x717c,
+  0x506b, 0x676f, 0x4b4c, 0x717d, 0x717e, 0x5424, 0x4d67, 0x3064,
+  0x3659, 0x4644, 0x416c, 0x7222, 0x7221, 0x5243, 0x7224, 0x4d37,
+  0x3c55, 0x7225, 0x3e31, 0x4635, 0x4d47, 0x3f45, 0x4c62, 0x366e,
+  0x7226, 0x7227, 0x5155, 0x5438, 0x722a, 0x355f, 0x4060, 0x7229,
+  0x722b, 0x394b, 0x327c, 0x722c, 0x4f54, 0x722d, 0x422d, 0x7228,
+  0x4827, 0x3767, 0x6c29, 0x6c2a, 0x786c, 0x7837, 0x6c2b, 0x6c2c,
+  0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x623b, 0x783f, 0x623d, 0x623f,
+  0x6240, 0x6241, 0x3739, 0x527b, 0x6242, 0x4b47, 0x3125, 0x4a4e,
+  0x3d48, 0x317d, 0x6243, 0x5178, 0x367c, 0x6244, 0x4459, 0x3676,
+  0x5360, 0x6246, 0x3d24, 0x4f5a, 0x395d, 0x623c, 0x6247, 0x623e,
+  0x4173, 0x6248, 0x6249, 0x4278, 0x624a, 0x624b, 0x624c, 0x4021,
+  0x624d, 0x3c22, 0x4844, 0x774f, 0x7750, 0x3276, 0x624e, 0x426d,
+  0x5426, 0x376b, 0x4d54, 0x335b, 0x5131, 0x3235, 0x5724, 0x6665,
+  0x3e54, 0x6660, 0x3c5d, 0x6666, 0x6662, 0x4a3b, 0x4d55, 0x6661,
+  0x426e, 0x6669, 0x3a27, 0x4266, 0x3f25, 0x3352, 0x666d, 0x666c,
+  0x466f, 0x666b, 0x6670, 0x462d, 0x6539, 0x666f, 0x6672, 0x4c5a,
+  0x6663, 0x4927, 0x6673, 0x4262, 0x5d6b, 0x6671, 0x666e, 0x6674,
+  0x6675, 0x477d, 0x6668, 0x6667, 0x6676, 0x3d3e, 0x5169, 0x3e2a,
+  0x6664, 0x5668, 0x423f, 0x6678, 0x6677, 0x666a, 0x3039, 0x7743,
+  0x787e, 0x4c65, 0x7746, 0x7745, 0x7831, 0x4b49, 0x783a, 0x7876,
+  0x775e, 0x3637, 0x4456, 0x6352, 0x634e, 0x5374, 0x774b, 0x774a,
+  0x5363, 0x4233, 0x7650, 0x764f, 0x7651, 0x7652, 0x7653, 0x7658,
+  0x312b, 0x7656, 0x765a, 0x765f, 0x765c, 0x765b, 0x765e, 0x7659,
+  0x4f4a, 0x7667, 0x7661, 0x7669, 0x4070, 0x7668, 0x7676, 0x766b,
+  0x7674, 0x7671, 0x766e, 0x7672, 0x766f, 0x7670, 0x3e28, 0x766c,
+  0x766d, 0x7673, 0x7675, 0x766a, 0x767d, 0x7678, 0x767c, 0x767a,
+  0x7679, 0x767b, 0x487a, 0x767e, 0x7665, 0x7724, 0x7723, 0x7725,
+  0x7722, 0x7663, 0x7721, 0x7726, 0x772a, 0x7666, 0x7664, 0x7729,
+  0x7727, 0x772b, 0x7728, 0x316e, 0x772e, 0x772d, 0x772c, 0x415b,
+  0x7660, 0x7677, 0x7657, 0x772f, 0x765d, 0x7654, 0x7662, 0x4471,
+  0x702f, 0x596c, 0x376f, 0x4379, 0x7030, 0x7032, 0x7031, 0x513b,
+  0x4d52, 0x5427, 0x7036, 0x7037, 0x7033, 0x516c, 0x513c, 0x7039,
+  0x703b, 0x3a68, 0x386b, 0x703c, 0x3e69, 0x7041, 0x703e, 0x7043,
+  0x366c, 0x7040, 0x7044, 0x7046, 0x4574, 0x7047, 0x4835, 0x7034,
+  0x7048, 0x7045, 0x7049, 0x704a, 0x704c, 0x704d, 0x5d3a, 0x3a57,
+  0x773d, 0x704f, 0x704b, 0x704e, 0x3c26, 0x7051, 0x4538, 0x703a,
+  0x7052, 0x7038, 0x7054, 0x7053, 0x7055, 0x7042, 0x7056, 0x5325,
+  0x7058, 0x7057, 0x7035, 0x7050, 0x7059, 0x703f, 0x703d, 0x7852,
+  0x7874, 0x753a, 0x3c6f, 0x514e, 0x4076, 0x4273, 0x746f, 0x7865,
+  0x7859, 0x4334, 0x5964, 0x3563, 0x3533, 0x7775, 0x7854, 0x7772,
+  0x763c, 0x763d, 0x763e, 0x782e, 0x466b, 0x552b, 0x6c34, 0x335d,
+  0x7633, 0x7635, 0x7637, 0x7634, 0x7636, 0x4164, 0x782a, 0x7638,
+  0x763a, 0x7639, 0x4823, 0x763b, 0x417a, 0x4553, 0x3928, 0x6d68,
+  0x396a,
+};
+
+static const Summary16 gb12345ext_uni2indx_page22[3] = {
+  /* 0x2200 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0020 },
+};
+static const Summary16 gb12345ext_uni2indx_page4e[1306] = {
+  /* 0x4e00 */
+  {    1, 0x0080 }, {    2, 0x0002 }, {    3, 0x0000 }, {    3, 0x0001 },
+  {    4, 0x0100 }, {    5, 0x0000 }, {    5, 0x0000 }, {    5, 0x0000 },
+  {    5, 0x0004 }, {    6, 0x4002 }, {    8, 0x0000 }, {    8, 0x0000 },
+  {    8, 0x0040 }, {    9, 0x0000 }, {    9, 0x0000 }, {    9, 0x0080 },
+  /* 0x4f00 */
+  {   10, 0x0000 }, {   10, 0x0000 }, {   10, 0x0000 }, {   10, 0x0000 },
+  {   10, 0x0080 }, {   11, 0x0200 }, {   12, 0x0000 }, {   12, 0x0000 },
+  {   12, 0x0040 }, {   13, 0x0040 }, {   14, 0x0000 }, {   14, 0x0000 },
+  {   14, 0x0004 }, {   15, 0x0000 }, {   15, 0x0001 }, {   16, 0x0000 },
+  /* 0x5000 */
+  {   16, 0x0a41 }, {   20, 0x0002 }, {   21, 0x0800 }, {   22, 0x0000 },
+  {   22, 0x0200 }, {   23, 0x0000 }, {   23, 0x0000 }, {   23, 0x0030 },
+  {   25, 0x0000 }, {   25, 0x0340 }, {   28, 0x2004 }, {   30, 0x40b8 },
+  {   35, 0x0224 }, {   38, 0x4022 }, {   41, 0x0120 }, {   43, 0x0200 },
+  /* 0x5100 */
+  {   44, 0x0315 }, {   49, 0x8131 }, {   54, 0x0400 }, {   55, 0x1c84 },
+  {   60, 0x0000 }, {   60, 0x0404 }, {   62, 0x0200 }, {   63, 0x0000 },
+  {   63, 0x0000 }, {   63, 0x0000 }, {   63, 0x0000 }, {   63, 0x0004 },
+  {   64, 0x2140 }, {   67, 0x0000 }, {   67, 0x2001 }, {   69, 0x0002 },
+  /* 0x5200 */
+  {   70, 0x0000 }, {   70, 0x0004 }, {   71, 0x0000 }, {   71, 0x0000 },
+  {   71, 0x0890 }, {   74, 0x0800 }, {   75, 0x4000 }, {   76, 0x0030 },
+  {   78, 0x3688 }, {   84, 0x0002 }, {   85, 0x0000 }, {   85, 0x0000 },
+  {   85, 0x0002 }, {   86, 0x6a20 }, {   91, 0x0004 }, {   92, 0x0122 },
+  /* 0x5300 */
+  {   95, 0x0000 }, {   95, 0x0000 }, {   95, 0xa000 }, {   97, 0x0002 },
+  {   98, 0x0001 }, {   99, 0x0010 }, {  100, 0x0000 }, {  100, 0x0000 },
+  {  100, 0x0004 }, {  101, 0x0200 }, {  102, 0x2001 }, {  104, 0x0014 },
+  {  106, 0x0008 }, {  107, 0x0000 }, {  107, 0x0404 }, {  109, 0x0041 },
+  /* 0x5400 */
+  {  111, 0x4000 }, {  112, 0x0000 }, {  112, 0x0000 }, {  112, 0x0000 },
+  {  112, 0x0000 }, {  112, 0x0000 }, {  112, 0x0000 }, {  112, 0x0000 },
+  {  112, 0x0000 }, {  112, 0x0000 }, {  112, 0x0000 }, {  112, 0x1000 },
+  {  113, 0x0000 }, {  113, 0x0000 }, {  113, 0x0002 }, {  114, 0x0000 },
+  /* 0x5500 */
+  {  114, 0x0010 }, {  115, 0x0000 }, {  115, 0x0000 }, {  115, 0x0000 },
+  {  115, 0x8000 }, {  116, 0x4008 }, {  118, 0x0000 }, {  118, 0x0000 },
+  {  118, 0x0000 }, {  118, 0x0400 }, {  119, 0x5400 }, {  122, 0x0004 },
+  {  123, 0x40c0 }, {  126, 0x0400 }, {  127, 0x0200 }, {  128, 0x0040 },
+  /* 0x5600 */
+  {  129, 0x2040 }, {  131, 0x10d0 }, {  135, 0xc200 }, {  138, 0x0121 },
+  {  141, 0x0002 }, {  142, 0x2000 }, {  143, 0x8061 }, {  147, 0x0314 },
+  {  151, 0x1081 }, {  154, 0x0220 }, {  156, 0x4140 }, {  159, 0x0058 },
+  {  162, 0x1327 }, {  169, 0x0002 }, {  170, 0x0000 }, {  170, 0x0000 },
+  /* 0x5700 */
+  {  170, 0x2880 }, {  173, 0x014c }, {  177, 0x0000 }, {  177, 0x0000 },
+  {  177, 0x0000 }, {  177, 0x0000 }, {  177, 0x0000 }, {  177, 0x0000 },
+  {  177, 0x0000 }, {  177, 0x0000 }, {  177, 0x0000 }, {  177, 0x0000 },
+  {  177, 0x0000 }, {  177, 0x0000 }, {  177, 0x0002 }, {  178, 0x0080 },
+  /* 0x5800 */
+  {  179, 0x0420 }, {  181, 0x2040 }, {  183, 0x8000 }, {  184, 0x0012 },
+  {  186, 0x8c00 }, {  189, 0x0084 }, {  191, 0x0014 }, {  193, 0x0220 },
+  {  195, 0x0400 }, {  196, 0x1000 }, {  197, 0x4000 }, {  198, 0x4808 },
+  {  201, 0x0080 }, {  202, 0xc708 }, {  208, 0x8205 }, {  212, 0x2400 },
+  /* 0x5900 */
+  {  214, 0x0000 }, {  214, 0x0000 }, {  214, 0x0004 }, {  215, 0x4100 },
+  {  217, 0x0000 }, {  217, 0x0001 }, {  218, 0x5600 }, {  222, 0x0000 },
+  {  222, 0x0000 }, {  222, 0x2000 }, {  223, 0x0000 }, {  223, 0x0000 },
+  {  223, 0x0000 }, {  223, 0x0000 }, {  223, 0x0000 }, {  223, 0x0000 },
+  /* 0x5a00 */
+  {  223, 0x0000 }, {  223, 0x0000 }, {  223, 0x0000 }, {  223, 0x0000 },
+  {  223, 0x0002 }, {  224, 0x0000 }, {  224, 0x2040 }, {  226, 0x0000 },
+  {  226, 0x0000 }, {  226, 0x0000 }, {  226, 0x0080 }, {  227, 0x2000 },
+  {  228, 0x0000 }, {  228, 0x0080 }, {  229, 0x0000 }, {  229, 0x0820 },
+  /* 0x5b00 */
+  {  231, 0x1901 }, {  235, 0x0200 }, {  236, 0x0402 }, {  238, 0x0101 },
+  {  240, 0x1000 }, {  241, 0x0000 }, {  241, 0x0800 }, {  242, 0x8100 },
+  {  244, 0x0000 }, {  244, 0x0000 }, {  244, 0x0000 }, {  244, 0x0000 },
+  {  244, 0x0000 }, {  244, 0x0000 }, {  244, 0x1ac4 }, {  250, 0x0060 },
+  /* 0x5c00 */
+  {  252, 0x6980 }, {  257, 0x0000 }, {  257, 0x0000 }, {  257, 0x0080 },
+  {  258, 0x0000 }, {  258, 0x0000 }, {  258, 0x1114 }, {  262, 0x0000 },
+  {  262, 0x0000 }, {  262, 0x0000 }, {  262, 0x0002 }, {  263, 0x0000 },
+  {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x0000 }, {  263, 0x2050 },
+  /* 0x5d00 */
+  {  266, 0x2000 }, {  267, 0x0080 }, {  268, 0x1004 }, {  270, 0x0000 },
+  {  270, 0x0000 }, {  270, 0x0001 }, {  271, 0x0000 }, {  271, 0x0000 },
+  {  271, 0x0092 }, {  274, 0x0080 }, {  275, 0x0081 }, {  277, 0x1500 },
+  {  280, 0x0800 }, {  281, 0x0014 }, {  283, 0x0000 }, {  283, 0x0001 },
+  /* 0x5e00 */
+  {  284, 0x0000 }, {  284, 0x0100 }, {  285, 0x0820 }, {  287, 0x0048 },
+  {  289, 0x0009 }, {  291, 0x8180 }, {  294, 0x1808 }, {  297, 0xc204 },
+  {  301, 0x0000 }, {  301, 0x0000 }, {  301, 0x0800 }, {  302, 0x0000 },
+  {  302, 0x0000 }, {  302, 0x8000 }, {  303, 0x100f }, {  308, 0x0008 },
+  /* 0x5f00 */
+  {  309, 0x0000 }, {  309, 0x0000 }, {  309, 0x0000 }, {  309, 0x0028 },
+  {  311, 0x5140 }, {  315, 0x0200 }, {  316, 0x0000 }, {  316, 0x0000 },
+  {  316, 0x1000 }, {  317, 0x4002 }, {  319, 0x0201 }, {  321, 0x0200 },
+  {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 },
+  /* 0x6000 */
+  {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 },
+  {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 },
+  {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0000 }, {  322, 0x0060 },
+  {  324, 0x0000 }, {  324, 0x0000 }, {  324, 0x0002 }, {  325, 0x0806 },
+  /* 0x6100 */
+  {  328, 0x0000 }, {  328, 0x1800 }, {  330, 0x0000 }, {  330, 0xc090 },
+  {  334, 0x0800 }, {  335, 0x8500 }, {  338, 0x4c18 }, {  343, 0x0048 },
+  {  345, 0x0404 }, {  347, 0x0407 }, {  351, 0x4810 }, {  354, 0x0044 },
+  {  356, 0x1280 }, {  359, 0xc000 }, {  361, 0x0108 }, {  363, 0x55c4 },
+  /* 0x6200 */
+  {  370, 0x0081 }, {  372, 0x0010 }, {  373, 0x0280 }, {  375, 0x0005 },
+  {  377, 0x0000 }, {  377, 0x0002 }, {  378, 0x0000 }, {  378, 0x0000 },
+  {  378, 0x0000 }, {  378, 0x0000 }, {  378, 0x0000 }, {  378, 0x0000 },
+  {  378, 0x0000 }, {  378, 0x0000 }, {  378, 0x0000 }, {  378, 0x0000 },
+  /* 0x6300 */
+  {  378, 0x0000 }, {  378, 0x0000 }, {  378, 0x0000 }, {  378, 0x4000 },
+  {  379, 0x0000 }, {  379, 0x0000 }, {  379, 0x4900 }, {  382, 0x0004 },
+  {  383, 0x0018 }, {  385, 0x0200 }, {  386, 0x0000 }, {  386, 0x0000 },
+  {  386, 0x0001 }, {  387, 0x0c00 }, {  389, 0x4000 }, {  390, 0x0000 },
+  /* 0x6400 */
+  {  390, 0x2000 }, {  391, 0x0080 }, {  392, 0x0000 }, {  392, 0x0040 },
+  {  393, 0x0000 }, {  393, 0x9002 }, {  396, 0x8000 }, {  397, 0x0848 },
+  {  400, 0x0100 }, {  401, 0x8008 }, {  403, 0x0828 }, {  406, 0xc80c },
+  {  411, 0x0c92 }, {  416, 0x0410 }, {  418, 0x9001 }, {  421, 0x5c97 },
+  /* 0x6500 */
+  {  430, 0x8050 }, {  433, 0x2a50 }, {  438, 0x141c }, {  443, 0x0000 },
+  {  443, 0x0000 }, {  443, 0x0080 }, {  444, 0x0000 }, {  444, 0x0120 },
+  {  446, 0x000c }, {  448, 0x00a0 }, {  450, 0x1000 }, {  451, 0x0080 },
+  {  452, 0x0000 }, {  452, 0x0000 }, {  452, 0x0000 }, {  452, 0x0000 },
+  /* 0x6600 */
+  {  452, 0x0000 }, {  452, 0x0000 }, {  452, 0x0000 }, {  452, 0x0000 },
+  {  452, 0x0204 }, {  454, 0x2000 }, {  455, 0x0000 }, {  455, 0x0000 },
+  {  455, 0x0300 }, {  457, 0x0000 }, {  457, 0x0804 }, {  459, 0x0000 },
+  {  459, 0x02d0 }, {  463, 0x0040 }, {  464, 0x1001 }, {  466, 0x0100 },
+  /* 0x6700 */
+  {  467, 0x0008 }, {  468, 0x0000 }, {  468, 0x8080 }, {  470, 0x0010 },
+  {  471, 0x0000 }, {  471, 0x0000 }, {  471, 0x0000 }, {  471, 0x4002 },
+  {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 },
+  {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 },
+  /* 0x6800 */
+  {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 },
+  {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 }, {  473, 0x0000 },
+  {  473, 0x0000 }, {  473, 0xa100 }, {  476, 0x0000 }, {  476, 0x0000 },
+  {  476, 0x0010 }, {  477, 0x80c0 }, {  480, 0x0080 }, {  481, 0x0004 },
+  /* 0x6900 */
+  {  482, 0x8000 }, {  483, 0x0000 }, {  483, 0x0000 }, {  483, 0x0000 },
+  {  483, 0x0400 }, {  484, 0x0008 }, {  485, 0x2100 }, {  487, 0x0020 },
+  {  488, 0x0000 }, {  488, 0x0000 }, {  488, 0x4400 }, {  490, 0x8000 },
+  {  491, 0x2800 }, {  493, 0x0000 }, {  493, 0x0080 }, {  494, 0x0008 },
+  /* 0x6a00 */
+  {  495, 0x0026 }, {  498, 0x4208 }, {  501, 0x0008 }, {  502, 0x0700 },
+  {  505, 0x0900 }, {  507, 0x8000 }, {  508, 0x0004 }, {  509, 0x0000 },
+  {  509, 0x0200 }, {  510, 0x1010 }, {  512, 0x800c }, {  515, 0x0908 },
+  {  518, 0x0008 }, {  519, 0xec08 }, {  525, 0x1580 }, {  529, 0x0908 },
+  /* 0x6b00 */
+  {  532, 0x8410 }, {  535, 0x4044 }, {  538, 0x0000 }, {  538, 0x2000 },
+  {  539, 0x0000 }, {  539, 0x8001 }, {  541, 0x0002 }, {  542, 0x0184 },
+  {  545, 0x0000 }, {  545, 0x4100 }, {  547, 0xc810 }, {  551, 0x0c04 },
+  {  554, 0x0040 }, {  555, 0x0000 }, {  555, 0x0000 }, {  555, 0x8000 },
+  /* 0x6c00 */
+  {  556, 0x1100 }, {  558, 0x0000 }, {  558, 0x1808 }, {  561, 0x0000 },
+  {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 },
+  {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 },
+  {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 },
+  /* 0x6d00 */
+  {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 },
+  {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0000 }, {  561, 0x0200 },
+  {  562, 0x0084 }, {  564, 0x0000 }, {  564, 0x0000 }, {  564, 0x0000 },
+  {  564, 0x0001 }, {  565, 0x0000 }, {  565, 0x0400 }, {  566, 0x0460 },
+  /* 0x6e00 */
+  {  569, 0x0000 }, {  569, 0x0200 }, {  570, 0x1040 }, {  572, 0x4000 },
+  {  573, 0x0000 }, {  573, 0x4000 }, {  574, 0x8000 }, {  575, 0x0000 },
+  {  575, 0x0000 }, {  575, 0x2040 }, {  577, 0x0000 }, {  577, 0x0000 },
+  {  577, 0x5030 }, {  581, 0x0000 }, {  581, 0x9000 }, {  583, 0x8184 },
+  /* 0x6f00 */
+  {  587, 0x0002 }, {  588, 0x0400 }, {  589, 0x100c }, {  592, 0x8104 },
+  {  595, 0x0002 }, {  596, 0x0a12 }, {  600, 0x8010 }, {  602, 0x8081 },
+  {  605, 0x00c1 }, {  608, 0x0080 }, {  609, 0x4211 }, {  613, 0x0002 },
+  {  614, 0x000a }, {  616, 0x8920 }, {  620, 0x0810 }, {  622, 0x5403 },
+  /* 0x7000 */
+  {  627, 0x8a60 }, {  632, 0xa120 }, {  636, 0x0181 }, {  639, 0x4005 },
+  {  642, 0x0018 }, {  644, 0x2122 }, {  648, 0x0098 }, {  651, 0x0000 },
+  {  651, 0x0000 }, {  651, 0x0000 }, {  651, 0x0000 }, {  651, 0x0000 },
+  {  651, 0x8000 }, {  652, 0x0000 }, {  652, 0x0000 }, {  652, 0x0010 },
+  /* 0x7100 */
+  {  653, 0x0000 }, {  653, 0x0000 }, {  653, 0x0002 }, {  654, 0x0000 },
+  {  654, 0x0200 }, {  655, 0x0004 }, {  656, 0x1224 }, {  660, 0x0000 },
+  {  660, 0x0000 }, {  660, 0x0084 }, {  662, 0x0000 }, {  662, 0x4002 },
+  {  664, 0x0102 }, {  666, 0x9204 }, {  670, 0x2040 }, {  672, 0x5010 },
+  /* 0x7200 */
+  {  675, 0x2000 }, {  676, 0x0801 }, {  678, 0x2000 }, {  679, 0x4404 },
+  {  682, 0x0000 }, {  682, 0x0100 }, {  683, 0x0000 }, {  683, 0x2000 },
+  {  684, 0x0000 }, {  684, 0x0040 }, {  685, 0x0084 }, {  687, 0x0000 },
+  {  687, 0x0001 }, {  688, 0x0000 }, {  688, 0x0000 }, {  688, 0x2200 },
+  /* 0x7300 */
+  {  690, 0x0000 }, {  690, 0x0200 }, {  691, 0x0000 }, {  691, 0x0840 },
+  {  693, 0x0032 }, {  696, 0x0000 }, {  696, 0x0d00 }, {  699, 0x1da5 },
+  {  707, 0x0001 }, {  708, 0x0000 }, {  708, 0x0000 }, {  708, 0x0000 },
+  {  708, 0x0000 }, {  708, 0x0000 }, {  708, 0x0000 }, {  708, 0x4000 },
+  /* 0x7400 */
+  {  709, 0x0000 }, {  709, 0x0000 }, {  709, 0x0000 }, {  709, 0x8000 },
+  {  710, 0x0800 }, {  711, 0x0000 }, {  711, 0x0608 }, {  714, 0x0000 },
+  {  714, 0x0200 }, {  715, 0x0000 }, {  715, 0x0048 }, {  717, 0x2001 },
+  {  719, 0x8400 }, {  721, 0x0410 }, {  723, 0x0000 }, {  723, 0x0000 },
+  /* 0x7500 */
+  {  723, 0x1000 }, {  724, 0x0000 }, {  724, 0x0008 }, {  725, 0x0000 },
+  {  725, 0x0000 }, {  725, 0x2000 }, {  726, 0x0804 }, {  728, 0x0040 },
+  {  729, 0x0480 }, {  731, 0x0000 }, {  731, 0x0000 }, {  731, 0x0000 },
+  {  731, 0x0080 }, {  732, 0x0200 }, {  733, 0x0000 }, {  733, 0x0000 },
+  /* 0x7600 */
+  {  733, 0x2804 }, {  736, 0x4008 }, {  738, 0x0082 }, {  740, 0x0800 },
+  {  741, 0x02c4 }, {  745, 0x8100 }, {  747, 0x72b4 }, {  755, 0x1007 },
+  {  759, 0x0000 }, {  759, 0x0400 }, {  760, 0x0000 }, {  760, 0x0500 },
+  {  762, 0x0000 }, {  762, 0x4000 }, {  763, 0x009a }, {  767, 0x0000 },
+  /* 0x7700 */
+  {  767, 0x0000 }, {  767, 0x0000 }, {  767, 0x0000 }, {  767, 0x0000 },
+  {  767, 0x8000 }, {  768, 0x5000 }, {  770, 0x0000 }, {  770, 0x0000 },
+  {  770, 0x0000 }, {  770, 0x4100 }, {  772, 0x2000 }, {  773, 0x1000 },
+  {  774, 0x0080 }, {  775, 0x0400 }, {  776, 0x8000 }, {  777, 0x0000 },
+  /* 0x7800 */
+  {  777, 0x0000 }, {  777, 0x0000 }, {  777, 0x0000 }, {  777, 0x0000 },
+  {  777, 0x0008 }, {  778, 0x0000 }, {  778, 0xc110 }, {  782, 0x0000 },
+  {  782, 0x0000 }, {  782, 0x0000 }, {  782, 0x2200 }, {  784, 0x1500 },
+  {  787, 0x0000 }, {  787, 0x0400 }, {  788, 0x8088 }, {  791, 0x2000 },
+  /* 0x7900 */
+  {  792, 0x4000 }, {  793, 0x0200 }, {  794, 0x1c40 }, {  798, 0x0002 },
+  {  799, 0x0000 }, {  799, 0x0000 }, {  799, 0x0000 }, {  799, 0x0000 },
+  {  799, 0x6000 }, {  801, 0x0000 }, {  801, 0x4440 }, {  804, 0x0003 },
+  {  806, 0x2000 }, {  807, 0x0000 }, {  807, 0x0000 }, {  807, 0x0000 },
+  /* 0x7a00 */
+  {  807, 0x0000 }, {  807, 0x0000 }, {  807, 0x4000 }, {  808, 0x0002 },
+  {  809, 0x7001 }, {  813, 0x0000 }, {  813, 0x0a06 }, {  817, 0x0000 },
+  {  817, 0x0000 }, {  817, 0x0000 }, {  817, 0x4600 }, {  820, 0x0440 },
+  {  822, 0x05b0 }, {  827, 0x0000 }, {  827, 0x0400 }, {  828, 0x0040 },
+  /* 0x7b00 */
+  {  829, 0x0000 }, {  829, 0x0000 }, {  829, 0x0000 }, {  829, 0x0000 },
+  {  829, 0x0040 }, {  830, 0x0002 }, {  831, 0x0080 }, {  832, 0x0000 },
+  {  832, 0x8800 }, {  834, 0x0000 }, {  834, 0x0000 }, {  834, 0x0000 },
+  {  834, 0x0a11 }, {  838, 0x0000 }, {  838, 0x0210 }, {  840, 0x0008 },
+  /* 0x7c00 */
+  {  841, 0x2001 }, {  843, 0x4000 }, {  844, 0x080a }, {  847, 0x6000 },
+  {  849, 0x1008 }, {  851, 0x9000 }, {  853, 0x5611 }, {  859, 0x0004 },
+  {  860, 0x0000 }, {  860, 0x0000 }, {  860, 0x0000 }, {  860, 0x0000 },
+  {  860, 0x0000 }, {  860, 0x6000 }, {  862, 0x0080 }, {  863, 0x4255 },
+  /* 0x7d00 */
+  {  869, 0x2bf5 }, {  879, 0x1eb9 }, {  888, 0x0002 }, {  889, 0x960f },
+  {  897, 0x4055 }, {  902, 0x6001 }, {  905, 0x0146 }, {  909, 0x024e },
+  {  914, 0x834a }, {  920, 0x5008 }, {  923, 0x380c }, {  928, 0xef1f },
+  {  940, 0x0c90 }, {  944, 0x6396 }, {  952, 0x934b }, {  960, 0x0a56 },
+  /* 0x7e00 */
+  {  966, 0x0f00 }, {  970, 0xe803 }, {  976, 0x6888 }, {  981, 0x62f6 },
+  {  990, 0x0060 }, {  992, 0x4434 }, {  997, 0xee04 }, { 1004, 0x7209 },
+  { 1010, 0xb500 }, { 1015, 0x1158 }, { 1020, 0x0000 }, { 1020, 0x0000 },
+  { 1020, 0x0000 }, { 1020, 0x0000 }, { 1020, 0x0000 }, { 1020, 0x0000 },
+  /* 0x7f00 */
+  { 1020, 0x0000 }, { 1020, 0x0000 }, { 1020, 0x0000 }, { 1020, 0x0000 },
+  { 1020, 0x5000 }, { 1022, 0x0000 }, { 1022, 0x0000 }, { 1022, 0x0081 },
+  { 1024, 0x0160 }, { 1027, 0x0000 }, { 1027, 0x0220 }, { 1029, 0x0000 },
+  { 1029, 0x0000 }, { 1029, 0x0004 }, { 1030, 0x0000 }, { 1030, 0x0200 },
+  /* 0x8000 */
+  { 1031, 0x0000 }, { 1031, 0x0000 }, { 1031, 0x5000 }, { 1033, 0x0000 },
+  { 1033, 0x0000 }, { 1033, 0x4040 }, { 1035, 0x8000 }, { 1036, 0x62ed },
+  { 1045, 0x0020 }, { 1046, 0x0000 }, { 1046, 0x0000 }, { 1046, 0x0000 },
+  { 1046, 0x0000 }, { 1046, 0x0000 }, { 1046, 0x0000 }, { 1046, 0x0000 },
+  /* 0x8100 */
+  { 1046, 0x0020 }, { 1047, 0x0800 }, { 1048, 0x0000 }, { 1048, 0x0200 },
+  { 1049, 0x4400 }, { 1051, 0x0040 }, { 1052, 0x0842 }, { 1055, 0x0100 },
+  { 1056, 0x0000 }, { 1056, 0x0400 }, { 1057, 0x0201 }, { 1059, 0xe000 },
+  { 1062, 0xa200 }, { 1065, 0x8500 }, { 1068, 0x0101 }, { 1070, 0x0400 },
+  /* 0x8200 */
+  { 1071, 0x2780 }, { 1076, 0x0000 }, { 1076, 0x0000 }, { 1076, 0x0000 },
+  { 1076, 0x0000 }, { 1076, 0x0200 }, { 1077, 0x0850 }, { 1080, 0x0082 },
+  { 1082, 0x0000 }, { 1082, 0x0000 }, { 1082, 0x0000 }, { 1082, 0x0800 },
+  { 1083, 0x0000 }, { 1083, 0x0000 }, { 1083, 0x0080 }, { 1084, 0x0200 },
+  /* 0x8300 */
+  { 1085, 0x0008 }, { 1086, 0x0000 }, { 1086, 0x0000 }, { 1086, 0x0000 },
+  { 1086, 0x0000 }, { 1086, 0x0001 }, { 1087, 0x0000 }, { 1087, 0x0000 },
+  { 1087, 0x0400 }, { 1088, 0x0040 }, { 1089, 0x0084 }, { 1091, 0x0000 },
+  { 1091, 0x0000 }, { 1091, 0x0000 }, { 1091, 0x8000 }, { 1092, 0x0000 },
+  /* 0x8400 */
+  { 1092, 0x0480 }, { 1094, 0x0000 }, { 1094, 0x1000 }, { 1095, 0x0020 },
+  { 1096, 0x0200 }, { 1097, 0x0004 }, { 1098, 0x8050 }, { 1101, 0x0080 },
+  { 1102, 0x0000 }, { 1102, 0x0018 }, { 1104, 0x0000 }, { 1104, 0x1000 },
+  { 1105, 0x0801 }, { 1107, 0x0000 }, { 1107, 0xc000 }, { 1109, 0x2000 },
+  /* 0x8500 */
+  { 1110, 0x0000 }, { 1110, 0x4010 }, { 1112, 0x2048 }, { 1115, 0x0000 },
+  { 1115, 0x4042 }, { 1118, 0x012c }, { 1122, 0x2604 }, { 1126, 0x0080 },
+  { 1127, 0x1500 }, { 1130, 0x8012 }, { 1133, 0x0240 }, { 1135, 0x0400 },
+  { 1136, 0x6000 }, { 1138, 0x2000 }, { 1139, 0x0420 }, { 1141, 0x0650 },
+  /* 0x8600 */
+  { 1145, 0x08d0 }, { 1149, 0x4400 }, { 1151, 0x2004 }, { 1153, 0x8400 },
+  { 1155, 0x0000 }, { 1155, 0x9020 }, { 1158, 0x0080 }, { 1159, 0x0000 },
+  { 1159, 0x0000 }, { 1159, 0x0000 }, { 1159, 0x0000 }, { 1159, 0x0000 },
+  { 1159, 0x0000 }, { 1159, 0x0000 }, { 1159, 0x0000 }, { 1159, 0x0400 },
+  /* 0x8700 */
+  { 1160, 0x0040 }, { 1161, 0x0000 }, { 1161, 0x0002 }, { 1162, 0x0000 },
+  { 1162, 0x0000 }, { 1162, 0x0020 }, { 1163, 0x0040 }, { 1164, 0x0100 },
+  { 1165, 0x0010 }, { 1166, 0x4000 }, { 1167, 0x0004 }, { 1168, 0x0800 },
+  { 1169, 0x4110 }, { 1172, 0x0000 }, { 1172, 0x9008 }, { 1175, 0x0844 },
+  /* 0x8800 */
+  { 1178, 0x0060 }, { 1180, 0x8003 }, { 1183, 0x0008 }, { 1184, 0x0842 },
+  { 1187, 0x0440 }, { 1189, 0x2808 }, { 1192, 0x0000 }, { 1192, 0x0200 },
+  { 1193, 0x0000 }, { 1193, 0x0000 }, { 1193, 0x0000 }, { 1193, 0x0000 },
+  { 1193, 0x8400 }, { 1195, 0x3000 }, { 1197, 0x0000 }, { 1197, 0x2000 },
+  /* 0x8900 */
+  { 1198, 0x0080 }, { 1199, 0x0000 }, { 1199, 0x0000 }, { 1199, 0x090c },
+  { 1203, 0x0080 }, { 1204, 0x2040 }, { 1206, 0x9411 }, { 1211, 0x0004 },
+  { 1212, 0x8800 }, { 1214, 0x0148 }, { 1217, 0x9442 }, { 1222, 0xa484 },
+  { 1227, 0x0001 }, { 1228, 0x0000 }, { 1228, 0x0000 }, { 1228, 0x0150 },
+  /* 0x8a00 */
+  { 1231, 0x550e }, { 1238, 0xa969 }, { 1246, 0x2428 }, { 1250, 0x0452 },
+  { 1254, 0x4042 }, { 1257, 0x4935 }, { 1264, 0x7a4e }, { 1273, 0x902f },
+  { 1280, 0x20f0 }, { 1285, 0x4526 }, { 1291, 0x117b }, { 1299, 0x9245 },
+  { 1305, 0xaa94 }, { 1312, 0x58c6 }, { 1319, 0x68d4 }, { 1326, 0x55ca },
+  /* 0x8b00 */
+  { 1334, 0x4437 }, { 1341, 0x2ed1 }, { 1349, 0x3902 }, { 1354, 0x4208 },
+  { 1357, 0xc200 }, { 1360, 0x1740 }, { 1365, 0x8800 }, { 1367, 0x2091 },
+  { 1371, 0x4401 }, { 1374, 0x506c }, { 1380, 0x0000 }, { 1380, 0x0000 },
+  { 1380, 0x0000 }, { 1380, 0x0000 }, { 1380, 0x0000 }, { 1380, 0x0000 },
+  /* 0x8c00 */
+  { 1380, 0x0000 }, { 1380, 0x0000 }, { 1380, 0x0000 }, { 1380, 0x0000 },
+  { 1380, 0x0100 }, { 1381, 0x0001 }, { 1382, 0x0000 }, { 1382, 0x0000 },
+  { 1382, 0x0000 }, { 1382, 0x6000 }, { 1384, 0x9f87 }, { 1394, 0xbddd },
+  { 1406, 0x05bf }, { 1415, 0x542e }, { 1422, 0x3cdf }, { 1433, 0x7c10 },
+  /* 0x8d00 */
+  { 1439, 0xad30 }, { 1446, 0x1841 }, { 1450, 0x0000 }, { 1450, 0x0000 },
+  { 1450, 0x0000 }, { 1450, 0x0000 }, { 1450, 0x0000 }, { 1450, 0x0000 },
+  { 1450, 0x0000 }, { 1450, 0x0220 }, { 1452, 0x0100 }, { 1453, 0x0004 },
+  { 1454, 0x0000 }, { 1454, 0x0000 }, { 1454, 0x0000 }, { 1454, 0x0000 },
+  /* 0x8e00 */
+  { 1454, 0x0000 }, { 1454, 0x0001 }, { 1455, 0x0000 }, { 1455, 0x0010 },
+  { 1456, 0x1000 }, { 1457, 0x0020 }, { 1458, 0x0008 }, { 1459, 0x0400 },
+  { 1460, 0x2e00 }, { 1464, 0x040e }, { 1468, 0x0462 }, { 1472, 0x0000 },
+  { 1472, 0x3c01 }, { 1477, 0x8814 }, { 1481, 0x0810 }, { 1483, 0x5f04 },
+  /* 0x8f00 */
+  { 1490, 0x06a8 }, { 1495, 0xf834 }, { 1503, 0x8660 }, { 1508, 0xc908 },
+  { 1513, 0x6274 }, { 1520, 0x8010 }, { 1522, 0x0016 }, { 1525, 0x0000 },
+  { 1525, 0x0000 }, { 1525, 0x0000 }, { 1525, 0xe040 }, { 1529, 0x0004 },
+  { 1530, 0x0000 }, { 1530, 0x0000 }, { 1530, 0x0000 }, { 1530, 0x0010 },
+  /* 0x9000 */
+  { 1531, 0x0000 }, { 1531, 0x0220 }, { 1533, 0x0008 }, { 1534, 0x0004 },
+  { 1535, 0x4800 }, { 1537, 0x5030 }, { 1541, 0x0201 }, { 1543, 0x1584 },
+  { 1548, 0x8492 }, { 1553, 0x0001 }, { 1554, 0x0000 }, { 1554, 0x0000 },
+  { 1554, 0x0002 }, { 1555, 0x8000 }, { 1556, 0x0000 }, { 1556, 0x0020 },
+  /* 0x9100 */
+  { 1557, 0x0240 }, { 1559, 0x0054 }, { 1562, 0x2080 }, { 1564, 0x0455 },
+  { 1569, 0x0100 }, { 1570, 0x0000 }, { 1570, 0x0000 }, { 1570, 0x0000 },
+  { 1570, 0x0000 }, { 1570, 0x1040 }, { 1572, 0x1800 }, { 1574, 0x0000 },
+  { 1574, 0x182b }, { 1580, 0x23bc }, { 1588, 0x0298 }, { 1592, 0x06a0 },
+  /* 0x9200 */
+  { 1596, 0x6313 }, { 1603, 0x4033 }, { 1608, 0x40e8 }, { 1613, 0xe799 },
+  { 1623, 0x2321 }, { 1628, 0x4ca2 }, { 1634, 0x3044 }, { 1638, 0x8d00 },
+  { 1642, 0x0029 }, { 1645, 0x154a }, { 1651, 0x1f69 }, { 1660, 0x1a82 },
+  { 1665, 0x90aa }, { 1671, 0xa004 }, { 1674, 0xe578 }, { 1683, 0x1143 },
+  /* 0x9300 */
+  { 1688, 0x01c2 }, { 1692, 0x8f25 }, { 1700, 0xc945 }, { 1707, 0x014c },
+  { 1711, 0x28cb }, { 1718, 0x0910 }, { 1721, 0x1230 }, { 1725, 0x4461 },
+  { 1730, 0x0494 }, { 1734, 0x0140 }, { 1736, 0x56cc }, { 1744, 0x8129 },
+  { 1749, 0x3188 }, { 1754, 0xf182 }, { 1761, 0x0116 }, { 1765, 0x02a0 },
+  /* 0x9400 */
+  { 1768, 0x0808 }, { 1770, 0x231d }, { 1777, 0x41c1 }, { 1782, 0x852c },
+  { 1788, 0x1410 }, { 1791, 0x0014 }, { 1793, 0x2029 }, { 1797, 0xf285 },
+  { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 },
+  { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 },
+  /* 0x9500 */
+  { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 },
+  { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0000 }, { 1805, 0x0080 },
+  { 1806, 0xda4d }, { 1815, 0x011a }, { 1819, 0x3b3a }, { 1828, 0xfa44 },
+  { 1836, 0x1d48 }, { 1842, 0x5071 }, { 1848, 0x0026 }, { 1851, 0x0000 },
+  /* 0x9600 */
+  { 1851, 0x0000 }, { 1851, 0x0000 }, { 1851, 0x0000 }, { 1851, 0x0000 },
+  { 1851, 0x0000 }, { 1851, 0x2100 }, { 1853, 0x0008 }, { 1854, 0x2109 },
+  { 1858, 0x4600 }, { 1861, 0x0820 }, { 1863, 0x0500 }, { 1865, 0x0912 },
+  { 1869, 0x0000 }, { 1869, 0x1a40 }, { 1873, 0x000c }, { 1875, 0x0804 },
+  /* 0x9700 */
+  { 1877, 0x0000 }, { 1877, 0x0000 }, { 1877, 0x0080 }, { 1878, 0x2000 },
+  { 1879, 0x0114 }, { 1882, 0x1400 }, { 1884, 0x0100 }, { 1885, 0x0000 },
+  { 1885, 0x8000 }, { 1886, 0x0000 }, { 1886, 0x0040 }, { 1887, 0x2000 },
+  { 1888, 0x1a48 }, { 1893, 0x5208 }, { 1897, 0x0000 }, { 1897, 0x8000 },
+  /* 0x9800 */
+  { 1898, 0xd5ee }, { 1909, 0x118f }, { 1916, 0x2052 }, { 1920, 0x2981 },
+  { 1925, 0x7040 }, { 1929, 0x4b18 }, { 1935, 0x98a4 }, { 1941, 0x001b },
+  { 1945, 0x0000 }, { 1945, 0x0000 }, { 1945, 0xc100 }, { 1948, 0x104a },
+  { 1952, 0x0150 }, { 1955, 0x0800 }, { 1956, 0xae05 }, { 1963, 0x7014 },
+  /* 0x9900 */
+  { 1968, 0x1628 }, { 1973, 0x490e }, { 1979, 0x0102 }, { 1981, 0xd088 },
+  { 1986, 0x1f28 }, { 1993, 0x5086 }, { 1998, 0x0004 }, { 1999, 0x0000 },
+  { 1999, 0x0000 }, { 1999, 0x0000 }, { 1999, 0x7000 }, { 2002, 0x001a },
+  { 2005, 0x0002 }, { 2006, 0xab37 }, { 2016, 0x2006 }, { 2019, 0x8002 },
+  /* 0x9a00 */
+  { 2021, 0xe022 }, { 2026, 0x0240 }, { 2028, 0x6800 }, { 2031, 0x41c1 },
+  { 2036, 0xa43f }, { 2045, 0x8ca0 }, { 2050, 0x0434 }, { 2054, 0x0000 },
+  { 2054, 0x0000 }, { 2054, 0x0000 }, { 2054, 0x8000 }, { 2055, 0x0000 },
+  { 2055, 0x8000 }, { 2056, 0x0074 }, { 2060, 0x4000 }, { 2061, 0x0000 },
+  /* 0x9b00 */
+  { 2061, 0x2040 }, { 2063, 0x0400 }, { 2064, 0x42a4 }, { 2069, 0x0002 },
+  { 2070, 0x4000 }, { 2071, 0x0500 }, { 2073, 0x8000 }, { 2074, 0x0090 },
+  { 2076, 0x400a }, { 2079, 0x6407 }, { 2085, 0x6c00 }, { 2089, 0x0000 },
+  { 2089, 0x0683 }, { 2094, 0x2850 }, { 2098, 0x0d96 }, { 2105, 0xa011 },
+  /* 0x9c00 */
+  { 2109, 0x2300 }, { 2112, 0x000d }, { 2115, 0x2329 }, { 2121, 0x4aae },
+  { 2129, 0x0320 }, { 2132, 0xa1d4 }, { 2139, 0x2080 }, { 2141, 0x0500 },
+  { 2143, 0x0000 }, { 2143, 0x0000 }, { 2143, 0x0000 }, { 2143, 0x0000 },
+  { 2143, 0x0000 }, { 2143, 0x0000 }, { 2143, 0x1220 }, { 2146, 0x0058 },
+  /* 0x9d00 */
+  { 2149, 0x02c0 }, { 2152, 0xa820 }, { 2156, 0x8148 }, { 2160, 0x8801 },
+  { 2163, 0x0004 }, { 2164, 0x300e }, { 2169, 0x9403 }, { 2174, 0x0004 },
+  { 2175, 0x0280 }, { 2177, 0x0508 }, { 2180, 0x8220 }, { 2183, 0x1810 },
+  { 2186, 0x0015 }, { 2189, 0x0688 }, { 2193, 0x8060 }, { 2196, 0x070c },
+  /* 0x9e00 */
+  { 2201, 0x1000 }, { 2202, 0x6c20 }, { 2207, 0x0000 }, { 2207, 0x0000 },
+  { 2207, 0x0000 }, { 2207, 0x0000 }, { 2207, 0x0000 }, { 2207, 0x3620 },
+  { 2212, 0x0000 }, { 2212, 0x0080 }, { 2213, 0x8220 }, { 2216, 0x2020 },
+  { 2218, 0x1000 }, { 2219, 0x4000 }, { 2220, 0x0100 }, { 2221, 0xa094 },
+  /* 0x9f00 */
+  { 2226, 0x0200 }, { 2227, 0x0020 }, { 2228, 0x0000 }, { 2228, 0x0000 },
+  { 2228, 0x8c00 }, { 2231, 0x9214 }, { 2236, 0x144b }, { 2242, 0x0084 },
+  { 2244, 0x2000 }, { 2245, 0x1031 },
+};
+
+static int
+gb12345ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x2200 && wc < 0x2230)
+      summary = &gb12345ext_uni2indx_page22[(wc>>4)-0x220];
+    else if (wc >= 0x4e00 && wc < 0x9fa0)
+      summary = &gb12345ext_uni2indx_page4e[(wc>>4)-0x4e0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = gb12345ext_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/gb2312.h b/libiconv/gb2312.h
new file mode 100644 (file)
index 0000000..251c664
--- /dev/null
@@ -0,0 +1,2552 @@
+
+/*
+ * GB2312.1980-0
+ */
+
+static const unsigned short gb2312_2uni_page21[831] = {
+  /* 0x21 */
+  0x3000, 0x3001, 0x3002, 0x30fb, 0x02c9, 0x02c7, 0x00a8, 0x3003,
+  0x3005, 0x2015, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c,
+  0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
+  0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1,
+  0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a,
+  0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312,
+  0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d,
+  0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234,
+  0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4,
+  0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb,
+  0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2,
+  0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,
+  /* 0x22 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f,
+  0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
+  0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477,
+  0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f,
+  0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
+  0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
+  0x2468, 0x2469, 0xfffd, 0xfffd, 0x3220, 0x3221, 0x3222, 0x3223,
+  0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xfffd, 0xfffd,
+  0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
+  0x2168, 0x2169, 0x216a, 0x216b, 0xfffd, 0xfffd,
+  /* 0x23 */
+  0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08,
+  0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
+  0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
+  0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
+  0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
+  0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
+  0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
+  0xff39, 0xff3a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40,
+  0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
+  0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
+  0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
+  0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
+  /* 0x24 */
+  0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
+  0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
+  0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
+  0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
+  0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
+  0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
+  0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
+  0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
+  0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
+  0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
+  0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x25 */
+  0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
+  0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
+  0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
+  0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
+  0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
+  0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
+  0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
+  0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
+  0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
+  0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
+  0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x26 */
+  0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
+  0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
+  0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
+  0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
+  0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x27 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
+  0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+  0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
+  0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
+  0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
+  0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+  0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
+  0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
+  0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x28 */
+  0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8,
+  0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2,
+  0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc,
+  0x00fc, 0x00ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3105, 0x3106, 0x3107, 0x3108,
+  0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110,
+  0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118,
+  0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120,
+  0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
+  0x3129, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x29 */
+  0xfffd, 0xfffd, 0xfffd, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504,
+  0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c,
+  0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514,
+  0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c,
+  0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524,
+  0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c,
+  0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534,
+  0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c,
+  0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544,
+  0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b,
+};
+static const unsigned short gb2312_2uni_page30[6768] = {
+  /* 0x30 */
+  0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691,
+  0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d,
+  0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848,
+  0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884,
+  0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed,
+  0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776,
+  0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf,
+  0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed,
+  0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc,
+  0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886,
+  0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d,
+  0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265,
+  /* 0x31 */
+  0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5,
+  0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351,
+  0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907,
+  0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29,
+  0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4,
+  0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9,
+  0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5,
+  0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16,
+  0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab,
+  0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b,
+  0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175,
+  0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3,
+  /* 0x32 */
+  0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2,
+  0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236,
+  0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa,
+  0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016,
+  0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29,
+  0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b,
+  0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf,
+  0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7,
+  0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336,
+  0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6,
+  0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20,
+  0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316,
+  /* 0x33 */
+  0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e,
+  0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632,
+  0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3,
+  0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1,
+  0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59,
+  0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f,
+  0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60,
+  0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64,
+  0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0,
+  0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7,
+  0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8,
+  0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a,
+  /* 0x34 */
+  0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd,
+  0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97,
+  0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524,
+  0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822,
+  0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148,
+  0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471,
+  0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07,
+  0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106,
+  0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb,
+  0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54,
+  0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26,
+  0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e,
+  /* 0x35 */
+  0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6,
+  0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb,
+  0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48,
+  0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053,
+  0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49,
+  0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c,
+  0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730,
+  0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382,
+  0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43,
+  0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc,
+  0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc,
+  0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0,
+  /* 0x36 */
+  0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a,
+  0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b,
+  0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661,
+  0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec,
+  0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6,
+  0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e,
+  0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566,
+  0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a,
+  0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0,
+  0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25,
+  0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c,
+  0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c,
+  /* 0x37 */
+  0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5,
+  0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492,
+  0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af,
+  0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632,
+  0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561,
+  0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8,
+  0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f,
+  0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa,
+  0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af,
+  0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b,
+  0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90,
+  0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d,
+  /* 0x38 */
+  0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85,
+  0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74,
+  0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236,
+  0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490,
+  0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89,
+  0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f,
+  0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b,
+  0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f,
+  0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c,
+  0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b,
+  0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9,
+  0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9,
+  /* 0x39 */
+  0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a,
+  0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1,
+  0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2,
+  0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30,
+  0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37,
+  0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250,
+  0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173,
+  0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c,
+  0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845,
+  0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842,
+  0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505,
+  0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8,
+  /* 0x3a */
+  0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163,
+  0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a,
+  0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a,
+  0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a,
+  0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d,
+  0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2,
+  0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a,
+  0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8,
+  0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f,
+  0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c,
+  0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6,
+  0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56,
+  /* 0x3b */
+  0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1,
+  0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd,
+  0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853,
+  0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115,
+  0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757,
+  0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d,
+  0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de,
+  0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd,
+  0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f,
+  0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b,
+  0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e,
+  0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95,
+  /* 0x3c */
+  0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9,
+  0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca,
+  0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0,
+  0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d,
+  0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2,
+  0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939,
+  0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be,
+  0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1,
+  0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270,
+  0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3,
+  0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274,
+  0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6,
+  /* 0x3d */
+  0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa,
+  0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868,
+  0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901,
+  0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc,
+  0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a,
+  0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb,
+  0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a,
+  0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01,
+  0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f,
+  0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1,
+  0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb,
+  0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78,
+  /* 0x3e */
+  0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8,
+  0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f,
+  0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756,
+  0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0,
+  0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551,
+  0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8,
+  0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9,
+  0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd,
+  0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350,
+  0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b,
+  0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd,
+  0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb,
+  /* 0x3f */
+  0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361,
+  0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a,
+  0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b,
+  0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777,
+  0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3,
+  0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543,
+  0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7,
+  0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6,
+  0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef,
+  0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50,
+  0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4,
+  0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080,
+  /* 0x40 */
+  0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec,
+  0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a,
+  0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f,
+  0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8,
+  0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca,
+  0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c,
+  0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d,
+  0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b,
+  0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece,
+  0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4,
+  0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1,
+  0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0,
+  /* 0x41 */
+  0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9,
+  0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f,
+  0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae,
+  0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e,
+  0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5,
+  0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217,
+  0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716,
+  0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce,
+  0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc,
+  0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409,
+  0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3,
+  0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf,
+  /* 0x42 */
+  0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3,
+  0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3,
+  0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42,
+  0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415,
+  0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f,
+  0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6,
+  0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1,
+  0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523,
+  0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988,
+  0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417,
+  0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992,
+  0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b,
+  /* 0x43 */
+  0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b,
+  0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192,
+  0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176,
+  0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e,
+  0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c,
+  0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f,
+  0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8,
+  0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5,
+  0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf,
+  0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d,
+  0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f,
+  0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478,
+  /* 0x44 */
+  0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9,
+  0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c,
+  0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd,
+  0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766,
+  0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c,
+  0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537,
+  0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462,
+  0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5,
+  0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b,
+  0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f,
+  0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d,
+  0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81,
+  /* 0x45 */
+  0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53,
+  0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650,
+  0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25,
+  0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c,
+  0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43,
+  0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224,
+  0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486,
+  0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9,
+  0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6,
+  0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c,
+  0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812,
+  0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7,
+  /* 0x46 */
+  0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41,
+  0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2,
+  0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058,
+  0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4,
+  0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb,
+  0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9,
+  0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd,
+  0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4,
+  0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566,
+  0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77,
+  0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14,
+  0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390,
+  /* 0x47 */
+  0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1,
+  0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d,
+  0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49,
+  0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2,
+  0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8,
+  0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207,
+  0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6,
+  0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752,
+  0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30,
+  0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18,
+  0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a,
+  0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20,
+  /* 0x48 */
+  0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743,
+  0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d,
+  0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0,
+  0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4,
+  0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed,
+  0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203,
+  0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9,
+  0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9,
+  0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1,
+  0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e,
+  0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428,
+  0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1,
+  /* 0x49 */
+  0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b,
+  0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802,
+  0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b,
+  0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b,
+  0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247,
+  0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a,
+  0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6,
+  0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c,
+  0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe,
+  0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5,
+  0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17,
+  0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3,
+  /* 0x4a */
+  0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee,
+  0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe,
+  0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2,
+  0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16,
+  0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc,
+  0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02,
+  0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88,
+  0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2,
+  0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f,
+  0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72,
+  0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f,
+  0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31,
+  /* 0x4b */
+  0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813,
+  0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e,
+  0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1,
+  0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b,
+  0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3,
+  0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5,
+  0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20,
+  0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083,
+  0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3,
+  0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f,
+  0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501,
+  0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854,
+  /* 0x4c */
+  0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0,
+  0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a,
+  0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08,
+  0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64,
+  0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018,
+  0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6,
+  0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279,
+  0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511,
+  0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5,
+  0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c,
+  0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3,
+  0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3,
+  /* 0x4d */
+  0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a,
+  0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876,
+  0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f,
+  0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60,
+  0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f,
+  0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258,
+  0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3,
+  0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c,
+  0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38,
+  0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b,
+  0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51,
+  0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01,
+  /* 0x4e */
+  0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f,
+  0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f,
+  0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3,
+  0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b,
+  0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33,
+  0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1,
+  0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c,
+  0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7,
+  0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e,
+  0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff,
+  0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852,
+  0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a,
+  /* 0x4f */
+  0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184,
+  0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60,
+  0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6,
+  0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0,
+  0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148,
+  0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2,
+  0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf,
+  0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8,
+  0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4,
+  0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61,
+  0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee,
+  0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653,
+  /* 0x50 */
+  0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954,
+  0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa,
+  0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8,
+  0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23,
+  0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165,
+  0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c,
+  0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8,
+  0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d,
+  0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700,
+  0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9,
+  0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed,
+  0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384,
+  /* 0x51 */
+  0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74,
+  0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb,
+  0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5,
+  0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259,
+  0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6,
+  0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814,
+  0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf,
+  0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5,
+  0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a,
+  0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f,
+  0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b,
+  0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476,
+  /* 0x52 */
+  0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200,
+  0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce,
+  0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b,
+  0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d,
+  0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0,
+  0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a,
+  0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091,
+  0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6,
+  0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3,
+  0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335,
+  0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6,
+  0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690,
+  /* 0x53 */
+  0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9,
+  0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71,
+  0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8,
+  0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38,
+  0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24,
+  0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709,
+  0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2,
+  0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59,
+  0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88,
+  0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd,
+  0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea,
+  0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89,
+  /* 0x54 */
+  0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a,
+  0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed,
+  0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f,
+  0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3,
+  0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300,
+  0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55,
+  0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d,
+  0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f,
+  0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1,
+  0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23,
+  0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe,
+  0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67,
+  /* 0x55 */
+  0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8,
+  0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb,
+  0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d,
+  0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd,
+  0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756,
+  0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db,
+  0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087,
+  0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517,
+  0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827,
+  0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707,
+  0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0,
+  0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f,
+  /* 0x56 */
+  0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431,
+  0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c,
+  0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307,
+  0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7,
+  0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9,
+  0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d,
+  0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd,
+  0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5,
+  0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4,
+  0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010,
+  0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457,
+  0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51,
+  /* 0x57 */
+  0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13,
+  0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5,
+  0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58,
+  0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c,
+  0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179,
+  0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4,
+  0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5,
+  0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f,
+  0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b,
+  0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a,
+  0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750,
+  0x5ea7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x58 */
+  0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98,
+  0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315,
+  0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997,
+  0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69,
+  0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d,
+  0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326,
+  0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e,
+  0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c,
+  0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54,
+  0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede,
+  0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09,
+  0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d,
+  /* 0x59 */
+  0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89,
+  0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94,
+  0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1,
+  0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e,
+  0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043,
+  0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9,
+  0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107,
+  0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46,
+  0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9,
+  0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156,
+  0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34,
+  0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc,
+  /* 0x5a */
+  0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa,
+  0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce,
+  0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf,
+  0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6,
+  0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c,
+  0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b,
+  0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a,
+  0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369,
+  0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c,
+  0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674,
+  0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099,
+  0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba,
+  /* 0x5b */
+  0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7,
+  0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef,
+  0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139,
+  0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be,
+  0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4,
+  0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c,
+  0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c,
+  0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742,
+  0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d,
+  0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7,
+  0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2,
+  0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd,
+  /* 0x5c */
+  0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844,
+  0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8,
+  0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8,
+  0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be,
+  0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb,
+  0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4,
+  0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307,
+  0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311,
+  0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351,
+  0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b,
+  0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317,
+  0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365,
+  /* 0x5d */
+  0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0,
+  0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385,
+  0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e,
+  0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807,
+  0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411,
+  0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea,
+  0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a,
+  0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c,
+  0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1,
+  0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba,
+  0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c,
+  0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a,
+  /* 0x5e */
+  0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564,
+  0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8,
+  0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7,
+  0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629,
+  0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955,
+  0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c,
+  0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322,
+  0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a,
+  0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc,
+  0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452,
+  0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c,
+  0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496,
+  /* 0x5f */
+  0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7,
+  0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519,
+  0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412,
+  0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443,
+  0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477,
+  0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d,
+  0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3,
+  0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9,
+  0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de,
+  0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523,
+  0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549,
+  0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c,
+  /* 0x60 */
+  0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c,
+  0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f,
+  0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594,
+  0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec,
+  0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3,
+  0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608,
+  0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d,
+  0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c,
+  0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c,
+  0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5,
+  0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f,
+  0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c,
+  /* 0x61 */
+  0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a,
+  0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a,
+  0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3,
+  0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02,
+  0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b,
+  0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d,
+  0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d,
+  0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89,
+  0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc,
+  0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3,
+  0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2,
+  0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa,
+  /* 0x62 */
+  0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315,
+  0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d,
+  0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7,
+  0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b,
+  0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a,
+  0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91,
+  0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3,
+  0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4,
+  0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4,
+  0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035,
+  0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f,
+  0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042,
+  /* 0x63 */
+  0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092,
+  0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6,
+  0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100,
+  0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7,
+  0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3,
+  0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608,
+  0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616,
+  0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54,
+  0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68,
+  0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad,
+  0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa,
+  0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe,
+  /* 0x64 */
+  0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19,
+  0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52,
+  0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93,
+  0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5,
+  0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9,
+  0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b,
+  0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44,
+  0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7,
+  0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2,
+  0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f,
+  0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d,
+  0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1,
+  /* 0x65 */
+  0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde,
+  0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f,
+  0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f,
+  0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07,
+  0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6,
+  0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d,
+  0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051,
+  0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074,
+  0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56,
+  0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66,
+  0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e,
+  0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3,
+  /* 0x66 */
+  0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af,
+  0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8,
+  0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13,
+  0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec,
+  0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2,
+  0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8,
+  0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15,
+  0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75,
+  0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85,
+  0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b,
+  0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7,
+  0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9,
+  /* 0x67 */
+  0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb,
+  0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8,
+  0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa,
+  0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b,
+  0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b,
+  0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
+  0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32,
+  0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e,
+  0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7,
+  0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a,
+  0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b,
+  0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c,
+  /* 0x68 */
+  0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477,
+  0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b,
+  0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea,
+  0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5,
+  0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e,
+  0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a,
+  0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd,
+  0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832,
+  0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883,
+  0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a,
+  0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b,
+  0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9,
+  /* 0x69 */
+  0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971,
+  0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998,
+  0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966,
+  0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4,
+  0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff,
+  0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e,
+  0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28,
+  0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337,
+  0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d,
+  0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72,
+  0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c,
+  0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b,
+  /* 0x6a */
+  0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217,
+  0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7,
+  0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee,
+  0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600,
+  0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006,
+  0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677,
+  0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6,
+  0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45,
+  0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7,
+  0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e,
+  0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b,
+  0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0,
+  /* 0x6b */
+  0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9,
+  0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a,
+  0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b,
+  0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c,
+  0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4,
+  0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4,
+  0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4,
+  0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a,
+  0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153,
+  0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d,
+  0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5,
+  0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb,
+  /* 0x6c */
+  0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59,
+  0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40,
+  0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4,
+  0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096,
+  0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca,
+  0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168,
+  0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5,
+  0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228,
+  0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248,
+  0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953,
+  0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985,
+  0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0,
+  /* 0x6d */
+  0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab,
+  0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206,
+  0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800,
+  0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d,
+  0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823,
+  0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847,
+  0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1,
+  0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec,
+  0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b,
+  0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707,
+  0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738,
+  0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768,
+  /* 0x6e */
+  0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791,
+  0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e,
+  0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61,
+  0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e,
+  0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a,
+  0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a,
+  0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac,
+  0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9,
+  0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca,
+  0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5,
+  0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0,
+  0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea,
+  /* 0x6f */
+  0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7,
+  0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507,
+  0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514,
+  0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522,
+  0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536,
+  0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544,
+  0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553,
+  0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f,
+  0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568,
+  0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573,
+  0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb,
+  0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14,
+  /* 0x70 */
+  0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e,
+  0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22,
+  0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36,
+  0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44,
+  0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51,
+  0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66,
+  0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d,
+  0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3,
+  0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2,
+  0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7,
+  0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c,
+  0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619,
+  /* 0x71 */
+  0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f,
+  0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c,
+  0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80,
+  0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad,
+  0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2,
+  0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5,
+  0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919,
+  0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966,
+  0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014,
+  0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029,
+  0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052,
+  0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883,
+  /* 0x72 */
+  0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e,
+  0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c,
+  0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b,
+  0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6,
+  0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9,
+  0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0,
+  0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707,
+  0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e,
+  0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729,
+  0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760,
+  0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764,
+  0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2,
+  /* 0x73 */
+  0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5,
+  0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0,
+  0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe,
+  0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44,
+  0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15,
+  0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e,
+  0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58,
+  0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b,
+  0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac,
+  0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4,
+  0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea,
+  0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b,
+  /* 0x74 */
+  0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201,
+  0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d,
+  0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e,
+  0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e,
+  0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7,
+  0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c,
+  0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc,
+  0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf,
+  0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3,
+  0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4,
+  0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47,
+  0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164,
+  /* 0x75 */
+  0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172,
+  0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2,
+  0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba,
+  0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5,
+  0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde,
+  0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3,
+  0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f,
+  0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35,
+  0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a,
+  0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94,
+  0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98,
+  0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc,
+  /* 0x76 */
+  0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3,
+  0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d,
+  0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88,
+  0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc,
+  0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8,
+  0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82,
+  0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90,
+  0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f,
+  0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8,
+  0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3,
+  0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd,
+  0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb,
+  /* 0x77 */
+  0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5,
+  0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c,
+  0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2,
+  0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc,
+  0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45,
+  0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d,
+  0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb,
+  0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23,
+  0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92,
+  0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf,
+  0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c,
+  0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44,
+};
+
+static int
+gb2312_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x21 && c1 <= 0x29) || (c1 >= 0x30 && c1 <= 0x77)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        if (i < 1410) {
+          if (i < 831)
+            wc = gb2312_2uni_page21[i];
+        } else {
+          if (i < 8178)
+            wc = gb2312_2uni_page30[i-1410];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short gb2312_2charset[7445] = {
+  0x2168, 0x216c, 0x2127, 0x2163, 0x2140, 0x2141, 0x2824, 0x2822,
+  0x2828, 0x2826, 0x283a, 0x282c, 0x282a, 0x2830, 0x282e, 0x2142,
+  0x2834, 0x2832, 0x2839, 0x2821, 0x2825, 0x2827, 0x2829, 0x282d,
+  0x2831, 0x2823, 0x282b, 0x282f, 0x2833, 0x2835, 0x2836, 0x2837,
+  0x2838, 0x2126, 0x2125, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625,
+  0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d,
+  0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635,
+  0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645,
+  0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c, 0x264d,
+  0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655,
+  0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723, 0x2724,
+  0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d,
+  0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735,
+  0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d,
+  0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754,
+  0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d,
+  0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765,
+  0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d,
+  0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x212a, 0x212c, 0x212e,
+  0x212f, 0x2130, 0x2131, 0x212d, 0x216b, 0x2164, 0x2165, 0x2179,
+  0x2166, 0x216d, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276,
+  0x2277, 0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x217b, 0x217c,
+  0x217a, 0x217d, 0x214a, 0x2147, 0x2146, 0x214c, 0x2158, 0x215e,
+  0x214f, 0x214e, 0x2144, 0x2145, 0x2149, 0x2148, 0x2152, 0x2153,
+  0x2160, 0x215f, 0x2143, 0x214b, 0x2157, 0x2156, 0x2155, 0x2159,
+  0x2154, 0x215c, 0x215d, 0x215a, 0x215b, 0x2151, 0x214d, 0x2150,
+  0x2259, 0x225a, 0x225b, 0x225c, 0x225d, 0x225e, 0x225f, 0x2260,
+  0x2261, 0x2262, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a,
+  0x224b, 0x224c, 0x224d, 0x224e, 0x224f, 0x2250, 0x2251, 0x2252,
+  0x2253, 0x2254, 0x2255, 0x2256, 0x2257, 0x2258, 0x2231, 0x2232,
+  0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a,
+  0x223b, 0x223c, 0x223d, 0x223e, 0x223f, 0x2240, 0x2241, 0x2242,
+  0x2243, 0x2244, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929,
+  0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 0x2930, 0x2931,
+  0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939,
+  0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941,
+  0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949,
+  0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951,
+  0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959,
+  0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961,
+  0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969,
+  0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f, 0x2176, 0x2175,
+  0x2178, 0x2177, 0x2174, 0x2173, 0x2170, 0x2172, 0x2171, 0x216f,
+  0x216e, 0x2162, 0x2161, 0x2121, 0x2122, 0x2123, 0x2128, 0x2129,
+  0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, 0x213a, 0x213b,
+  0x213e, 0x213f, 0x217e, 0x2132, 0x2133, 0x213c, 0x213d, 0x2421,
+  0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429,
+  0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431,
+  0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439,
+  0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441,
+  0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449,
+  0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451,
+  0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459,
+  0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461,
+  0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
+  0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471,
+  0x2472, 0x2473, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526,
+  0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d, 0x252e,
+  0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536,
+  0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, 0x253d, 0x253e,
+  0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546,
+  0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e,
+  0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556,
+  0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
+  0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566,
+  0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e,
+  0x256f, 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576,
+  0x2124, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 0x284a, 0x284b,
+  0x284c, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, 0x2852, 0x2853,
+  0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, 0x285b,
+  0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, 0x2862, 0x2863,
+  0x2864, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 0x2265, 0x2266,
+  0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226c, 0x226d, 0x226e,
+  0x523b, 0x3621, 0x465f, 0x4d72, 0x5549, 0x487d, 0x494f, 0x4f42,
+  0x5822, 0x323b, 0x536b, 0x5824, 0x3373, 0x5728, 0x4752, 0x5827,
+  0x4a40, 0x4770, 0x317b, 0x5235, 0x3454, 0x362b, 0x4b3f, 0x5829,
+  0x362a, 0x413d, 0x514f, 0x4925, 0x582d, 0x3876, 0x513e, 0x635c,
+  0x5650, 0x3761, 0x342e, 0x4159, 0x583c, 0x4d68, 0x3524, 0x4e2a,
+  0x5677, 0x4076, 0x3e59, 0x582f, 0x444b, 0x3e43, 0x5831, 0x4334,
+  0x5265, 0x562e, 0x4e5a, 0x5527, 0x3a75, 0x3726, 0x4056, 0x4639,
+  0x4552, 0x4747, 0x3954, 0x334b, 0x5252, 0x583f, 0x3e45, 0x4672,
+  0x5232, 0x4f30, 0x4f67, 0x4a69, 0x5840, 0x4272, 0x4252, 0x4869,
+  0x472c, 0x414b, 0x5368, 0x5579, 0x4a42, 0x367e, 0x5821, 0x535a,
+  0x3f77, 0x5446, 0x3b25, 0x5841, 0x4e65, 0x3e2e, 0x5828, 0x5147,
+  0x5029, 0x583d, 0x596f, 0x4d76, 0x3f3a, 0x3d3b, 0x3a25, 0x5260,
+  0x327a, 0x3a60, 0x4436, 0x4f6d, 0x3e29, 0x4d24, 0x4141, 0x4757,
+  0x5971, 0x5974, 0x484b, 0x5869, 0x525a, 0x4a32, 0x484a, 0x586c,
+  0x586a, 0x5846, 0x3d76, 0x464d, 0x3370, 0x586b, 0x3d71, 0x3d69,
+  0x4854, 0x3453, 0x4258, 0x3256, 0x5750, 0x4a4b, 0x4b7b, 0x554c,
+  0x3836, 0x4f49, 0x595a, 0x5870, 0x472a, 0x586e, 0x347a, 0x416e,
+  0x5254, 0x586d, 0x5247, 0x586f, 0x4347, 0x5176, 0x5659, 0x5872,
+  0x5875, 0x3c7e, 0x3c5b, 0x484e, 0x375d, 0x3742, 0x4673, 0x5878,
+  0x5241, 0x4e69, 0x3c3f, 0x377c, 0x3725, 0x505d, 0x565a, 0x5345,
+  0x3b6f, 0x3b61, 0x5871, 0x4921, 0x4e30, 0x342b, 0x5873, 0x494b,
+  0x5876, 0x4257, 0x5877, 0x4e31, 0x5879, 0x322e, 0x3940, 0x5923,
+  0x3069, 0x4166, 0x496c, 0x4b45, 0x4b46, 0x5924, 0x3568, 0x352b,
+  0x4e3b, 0x354d, 0x5721, 0x5774, 0x5353, 0x4c65, 0x3a4e, 0x5922,
+  0x595c, 0x5360, 0x587d, 0x3770, 0x5777, 0x587e, 0x587a, 0x5921,
+  0x4463, 0x5336, 0x5874, 0x595d, 0x587b, 0x4565, 0x4050, 0x5170,
+  0x305b, 0x3c51, 0x5926, 0x5925, 0x592c, 0x592e, 0x592b, 0x4a39,
+  0x5929, 0x5636, 0x335e, 0x5928, 0x407d, 0x4a4c, 0x592a, 0x5927,
+  0x5930, 0x3631, 0x3929, 0x5240, 0x4f40, 0x4242, 0x3d44, 0x556c,
+  0x3260, 0x4748, 0x3f6b, 0x592d, 0x592f, 0x4e6a, 0x3a6e, 0x4756,
+  0x3163, 0x3459, 0x366d, 0x5934, 0x3f21, 0x595e, 0x474e, 0x407e,
+  0x5938, 0x4b57, 0x377d, 0x5935, 0x5937, 0x3123, 0x5361, 0x5939,
+  0x5045, 0x5936, 0x5931, 0x5932, 0x4129, 0x5933, 0x3c73, 0x505e,
+  0x3829, 0x3e63, 0x593d, 0x593a, 0x3033, 0x5942, 0x5944, 0x3136,
+  0x593f, 0x3539, 0x3e73, 0x4c48, 0x3a72, 0x5250, 0x5943, 0x3d68,
+  0x332b, 0x5945, 0x3e6b, 0x5946, 0x593b, 0x445f, 0x593e, 0x5941,
+  0x5940, 0x552e, 0x5635, 0x4763, 0x5948, 0x3c59, 0x594a, 0x593c,
+  0x594b, 0x462b, 0x5949, 0x5776, 0x4d23, 0x3d21, 0x594c, 0x453c,
+  0x4d35, 0x594d, 0x5947, 0x3325, 0x3f7e, 0x3835, 0x407c, 0x3078,
+  0x3476, 0x594e, 0x594f, 0x3422, 0x5950, 0x345f, 0x3041, 0x5951,
+  0x4935, 0x4f71, 0x5952, 0x4145, 0x5956, 0x492e, 0x5955, 0x5954,
+  0x5957, 0x4b5b, 0x3d29, 0x4627, 0x5953, 0x5958, 0x5959, 0x4865,
+  0x405c, 0x3679, 0x5823, 0x544a, 0x542a, 0x5056, 0x3364, 0x5557,
+  0x4f48, 0x3962, 0x3f4b, 0x4362, 0x3652, 0x4d43, 0x596e, 0x5970,
+  0x3533, 0x3635, 0x3e24, 0x486b, 0x482b, 0x304b, 0x392b, 0x4179,
+  0x5962, 0x403c, 0x3932, 0x3958, 0x504b, 0x3178, 0x4664, 0x3e5f,
+  0x3564, 0x5748, 0x5178, 0x3c66, 0x4a5e, 0x3c3d, 0x5966, 0x5867,
+  0x445a, 0x3854, 0x483d, 0x3261, 0x5459, 0x4330, 0x4361, 0x5a22,
+  0x485f, 0x5034, 0x3e7c, 0x4529, 0x395a, 0x5a23, 0x5429, 0x5a24,
+  0x597b, 0x362c, 0x376b, 0x3179, 0x597c, 0x3365, 0x3e76, 0x3f76,
+  0x5231, 0x4064, 0x3633, 0x597e, 0x597d, 0x3e3b, 0x4660, 0x573c,
+  0x5a21, 0x4139, 0x3572, 0x4168, 0x3c75, 0x3455, 0x415d, 0x447d,
+  0x3c38, 0x3732, 0x376f, 0x596c, 0x463e, 0x3f2d, 0x3b4b, 0x354a,
+  0x5b49, 0x5057, 0x4d39, 0x303c, 0x3376, 0x3b77, 0x5b4a, 0x3a2f,
+  0x5464, 0x3536, 0x3573, 0x5856, 0x4850, 0x3756, 0x4750, 0x5857,
+  0x3f2f, 0x5b3b, 0x5858, 0x504c, 0x3b2e, 0x6b3e, 0x4150, 0x4175,
+  0x5472, 0x3855, 0x3434, 0x3375, 0x493e, 0x4550, 0x4559, 0x407b,
+  0x3170, 0x5859, 0x394e, 0x353d, 0x585a, 0x5646, 0x4b22, 0x482f,
+  0x4932, 0x344c, 0x3f4c, 0x3974, 0x585b, 0x585c, 0x3667, 0x3c41,
+  0x4c6a, 0x4f77, 0x585d, 0x4730, 0x3950, 0x3d23, 0x4c5e, 0x464a,
+  0x5860, 0x585e, 0x585f, 0x307e, 0x3e67, 0x4a23, 0x3c74, 0x3831,
+  0x386e, 0x5862, 0x3d4b, 0x5864, 0x5863, 0x457c, 0x5865, 0x5866,
+  0x4126, 0x4830, 0x306c, 0x3926, 0x3c53, 0x4e71, 0x5b3d, 0x4153,
+  0x362f, 0x567a, 0x452c, 0x3d59, 0x5b3e, 0x5b3f, 0x4078, 0x3e22,
+  0x404d, 0x5b40, 0x4a46, 0x322a, 0x5342, 0x4363, 0x512b, 0x5b42,
+  0x4055, 0x5b43, 0x3f31, 0x443c, 0x475a, 0x5b44, 0x5968, 0x4957,
+  0x3934, 0x4e70, 0x5448, 0x307c, 0x3452, 0x5059, 0x5969, 0x5e4b,
+  0x596b, 0x5830, 0x3b2f, 0x3131, 0x3357, 0x584e, 0x5451, 0x3d33,
+  0x3f6f, 0x4f3b, 0x5850, 0x374b, 0x5851, 0x4625, 0x4778, 0x523d,
+  0x5852, 0x4464, 0x4a2e, 0x4727, 0x5826, 0x497d, 0x4e67, 0x3b5c,
+  0x306b, 0x3b2a, 0x502d, 0x3130, 0x5764, 0x573f, 0x3525, 0x4274,
+  0x444f, 0x3229, 0x3237, 0x3165, 0x5f32, 0x553c, 0x3f28, 0x422c,
+  0x5855, 0x4231, 0x5854, 0x4e54, 0x5a60, 0x4e40, 0x5834, 0x432e,
+  0x5321, 0x4e23, 0x3c34, 0x4834, 0x4251, 0x3e6d, 0x5036, 0x5a61,
+  0x4764, 0x3327, 0x3672, 0x4c7c, 0x407a, 0x4077, 0x5139, 0x5161,
+  0x5847, 0x325e, 0x4065, 0x3a71, 0x5848, 0x542d, 0x4f61, 0x5849,
+  0x584a, 0x4f43, 0x3378, 0x3e47, 0x584b, 0x5b4c, 0x4825, 0x4f58,
+  0x487e, 0x324e, 0x5356, 0x3266, 0x3c30, 0x5351, 0x4b2b, 0x3734,
+  0x3722, 0x4a65, 0x4821, 0x4a5c, 0x3164, 0x5070, 0x4551, 0x5b45,
+  0x357e, 0x3f5a, 0x3945, 0x3e64, 0x416d, 0x5f36, 0x5f35, 0x563b,
+  0x3d50, 0x5559, 0x3048, 0x3623, 0x3f49, 0x4c28, 0x5f33, 0x4a37,
+  0x5352, 0x584f, 0x5236, 0x3a45, 0x4b3e, 0x4c3e, 0x5f37, 0x3570,
+  0x5f34, 0x5375, 0x3354, 0x3877, 0x5f3a, 0x3a4f, 0x3c2a, 0x3575,
+  0x4d2c, 0x437b, 0x3a73, 0x4074, 0x4d42, 0x4f72, 0x5f38, 0x4f45,
+  0x4240, 0x5f39, 0x4270, 0x3e7d, 0x415f, 0x4d4c, 0x5277, 0x374d,
+  0x5f41, 0x5f44, 0x3771, 0x3049, 0x3656, 0x3754, 0x3a2c, 0x4c7d,
+  0x3f54, 0x4b31, 0x4674, 0x5628, 0x5f45, 0x4e62, 0x3333, 0x4e7c,
+  0x3435, 0x4e47, 0x3a70, 0x4e61, 0x513d, 0x5f40, 0x3474, 0x334a,
+  0x3866, 0x5f3b, 0x4445, 0x5f3c, 0x5f3d, 0x5f3e, 0x453b, 0x5f3f,
+  0x5f42, 0x5431, 0x5f43, 0x473a, 0x4e58, 0x4458, 0x5f4a, 0x5f4f,
+  0x565c, 0x5f49, 0x5f5a, 0x4e36, 0x3a47, 0x5f4e, 0x5f48, 0x455e,
+  0x496b, 0x3a74, 0x437c, 0x3e57, 0x5f46, 0x5f4d, 0x4558, 0x5526,
+  0x3a4d, 0x3e4c, 0x533d, 0x3840, 0x5664, 0x5f47, 0x393e, 0x3f27,
+  0x417c, 0x5f4b, 0x5f4c, 0x5f50, 0x5f5b, 0x5f65, 0x5f57, 0x5f56,
+  0x5749, 0x5f63, 0x5f64, 0x656b, 0x5227, 0x5f52, 0x3f29, 0x545b,
+  0x3f48, 0x5f54, 0x4f4c, 0x5f5d, 0x514a, 0x5f5e, 0x3027, 0x4637,
+  0x5f53, 0x3a65, 0x365f, 0x4d5b, 0x397e, 0x5455, 0x5f5f, 0x4f6c,
+  0x3025, 0x5f67, 0x5f51, 0x5146, 0x5f55, 0x5f58, 0x5f59, 0x5f5c,
+  0x3b29, 0x5f60, 0x5f61, 0x5f62, 0x5f66, 0x5f68, 0x5334, 0x3867,
+  0x4536, 0x5f6a, 0x495a, 0x4128, 0x4444, 0x3f5e, 0x4f78, 0x555c,
+  0x5f6e, 0x3238, 0x3a5f, 0x5f6c, 0x5b41, 0x5164, 0x4b74, 0x343d,
+  0x3026, 0x5f71, 0x4c46, 0x5f72, 0x5f6d, 0x5f69, 0x5f6b, 0x5f6f,
+  0x5f70, 0x3b3d, 0x5f73, 0x5f74, 0x3b23, 0x4a5b, 0x4e28, 0x6027,
+  0x332a, 0x6026, 0x6021, 0x5f7e, 0x4d59, 0x5f7c, 0x5f7a, 0x3f50,
+  0x5744, 0x494c, 0x5f78, 0x3021, 0x5f7d, 0x5f7b, 0x6022, 0x6028,
+  0x3748, 0x4621, 0x4936, 0x4032, 0x5f75, 0x453e, 0x5844, 0x5f79,
+  0x4476, 0x6023, 0x6024, 0x6025, 0x5025, 0x6034, 0x4c64, 0x6031,
+  0x3f26, 0x602f, 0x4e39, 0x602b, 0x4946, 0x402e, 0x602e, 0x3a6d,
+  0x3a30, 0x6029, 0x5f76, 0x6033, 0x6038, 0x342d, 0x6039, 0x4f32,
+  0x3a48, 0x6030, 0x507a, 0x602c, 0x547b, 0x5f77, 0x4567, 0x602d,
+  0x5377, 0x6036, 0x6037, 0x6044, 0x5061, 0x603c, 0x6049, 0x604a,
+  0x603e, 0x602a, 0x4924, 0x6041, 0x6032, 0x4a48, 0x6043, 0x6035,
+  0x4e4b, 0x4b43, 0x604d, 0x6046, 0x6042, 0x604b, 0x603a, 0x603f,
+  0x6040, 0x6045, 0x6047, 0x6048, 0x604c, 0x603b, 0x4b54, 0x6055,
+  0x6056, 0x6052, 0x6050, 0x3c4e, 0x6051, 0x3842, 0x5845, 0x506a,
+  0x426f, 0x604f, 0x603d, 0x6054, 0x6053, 0x6057, 0x605c, 0x6058,
+  0x5676, 0x3330, 0x576c, 0x4b3b, 0x605a, 0x4e7b, 0x3a59, 0x6061,
+  0x605d, 0x522d, 0x6062, 0x605b, 0x6059, 0x605f, 0x6060, 0x605e,
+  0x6064, 0x4677, 0x582c, 0x546b, 0x6066, 0x4a49, 0x6065, 0x3841,
+  0x6067, 0x6068, 0x6069, 0x6063, 0x3a3f, 0x4c67, 0x606a, 0x4f79,
+  0x606b, 0x4842, 0x3d40, 0x4452, 0x606c, 0x606d, 0x4774, 0x4b44,
+  0x606e, 0x3b58, 0x5836, 0x5272, 0x606f, 0x4d45, 0x365a, 0x6071,
+  0x5430, 0x4027, 0x3451, 0x4e27, 0x6070, 0x6072, 0x394c, 0x397a,
+  0x4d3c, 0x6073, 0x4654, 0x6074, 0x5432, 0x4826, 0x6076, 0x6075,
+  0x6077, 0x4d41, 0x4a25, 0x545a, 0x5b57, 0x5b59, 0x5b58, 0x3967,
+  0x5b5c, 0x5b5d, 0x3558, 0x5b5a, 0x5b5b, 0x3321, 0x5b5f, 0x3b78,
+  0x5637, 0x5b60, 0x3e79, 0x373b, 0x5b50, 0x4c2e, 0x3f32, 0x3b35,
+  0x5778, 0x3f53, 0x3f69, 0x3c61, 0x4c33, 0x5b5e, 0x3053, 0x4e6b,
+  0x3758, 0x5739, 0x4642, 0x4024, 0x4c39, 0x5b67, 0x5b61, 0x463a,
+  0x5b63, 0x5b68, 0x4577, 0x5b6a, 0x5b69, 0x3f40, 0x5b66, 0x5b65,
+  0x3439, 0x402c, 0x4222, 0x5b62, 0x5b64, 0x504d, 0x5b6d, 0x405d,
+  0x5b72, 0x3662, 0x5b73, 0x5b52, 0x3938, 0x542b, 0x5b6c, 0x3f51,
+  0x5b70, 0x5b51, 0x3566, 0x5b6b, 0x3f65, 0x5b6e, 0x5b71, 0x5b79,
+  0x3921, 0x3023, 0x4271, 0x3347, 0x5b6f, 0x5b78, 0x4652, 0x5b74,
+  0x5b75, 0x5b77, 0x5b76, 0x5b7e, 0x5372, 0x323a, 0x5b7d, 0x5c24,
+  0x5b7b, 0x5b7a, 0x5b7c, 0x4560, 0x3b79, 0x5c23, 0x5c25, 0x4c43,
+  0x3651, 0x5d40, 0x5c21, 0x5c22, 0x4735, 0x3669, 0x5c27, 0x5c26,
+  0x5c29, 0x3124, 0x354c, 0x3f30, 0x515f, 0x3642, 0x5c28, 0x4b7a,
+  0x6b73, 0x4b5c, 0x4b7e, 0x4c41, 0x487b, 0x5c2a, 0x4c6e, 0x5c2b,
+  0x5b53, 0x5c2f, 0x5c2c, 0x3e33, 0x4a7b, 0x5c2d, 0x494a, 0x4439,
+  0x473d, 0x5c2e, 0x5476, 0x5066, 0x442b, 0x3655, 0x5b54, 0x315a,
+  0x5b55, 0x5b56, 0x3a3e, 0x4840, 0x4a3f, 0x4849, 0x5733, 0x4979,
+  0x3f47, 0x3a78, 0x523c, 0x623a, 0x3426, 0x3138, 0x3834, 0x4f44,
+  0x5967, 0x4f26, 0x4d62, 0x596d, 0x3660, 0x5239, 0x393b, 0x6239,
+  0x6237, 0x3473, 0x4c6c, 0x4c2b, 0x3772, 0x5832, 0x516b, 0x3a3b,
+  0x4a27, 0x4d37, 0x5244, 0x3f64, 0x3c50, 0x3661, 0x5e45, 0x5e46,
+  0x5b3c, 0x5159, 0x4666, 0x444e, 0x376e, 0x375c, 0x3f7c, 0x5760,
+  0x4675, 0x313c, 0x5e48, 0x3d31, 0x4c57, 0x5e4a, 0x5e49, 0x356c,
+  0x495d, 0x3042, 0x452e, 0x452b, 0x444c, 0x3c69, 0x4b7d, 0x3a43,
+  0x6579, 0x4867, 0x657a, 0x4d7d, 0x5731, 0x383e, 0x4268, 0x4851,
+  0x657b, 0x364a, 0x3c4b, 0x517d, 0x6621, 0x436e, 0x6624, 0x657e,
+  0x6625, 0x4d57, 0x3741, 0x657c, 0x657d, 0x6623, 0x445d, 0x6628,
+  0x6627, 0x4343, 0x465e, 0x662a, 0x4437, 0x6622, 0x4a3c, 0x3d63,
+  0x3943, 0x6626, 0x5055, 0x4e2f, 0x6629, 0x6630, 0x5226, 0x3d2a,
+  0x662d, 0x662f, 0x4051, 0x524c, 0x3c27, 0x6631, 0x5276, 0x574b,
+  0x4d7e, 0x4d5e, 0x4226, 0x662b, 0x662c, 0x3d3f, 0x662e, 0x6633,
+  0x6632, 0x6636, 0x6638, 0x446f, 0x4448, 0x3e6a, 0x496f, 0x6637,
+  0x3670, 0x4364, 0x5369, 0x6634, 0x6635, 0x4822, 0x663d, 0x6639,
+  0x4645, 0x4d71, 0x663b, 0x663c, 0x3b69, 0x663e, 0x663a, 0x4037,
+  0x5324, 0x663f, 0x4974, 0x6643, 0x6644, 0x5076, 0x433d, 0x4344,
+  0x6642, 0x6641, 0x6647, 0x4f31, 0x6b74, 0x664a, 0x6645, 0x3c5e,
+  0x4929, 0x3c35, 0x4f53, 0x6648, 0x6649, 0x664e, 0x6650, 0x6651,
+  0x664b, 0x3555, 0x664c, 0x664f, 0x445b, 0x6646, 0x664d, 0x6652,
+  0x6654, 0x6653, 0x6655, 0x5978, 0x6656, 0x6657, 0x5753, 0x665d,
+  0x665e, 0x3f57, 0x5450, 0x5756, 0x3466, 0x4b6f, 0x665a, 0x5843,
+  0x574e, 0x5022, 0x434f, 0x665f, 0x3c3e, 0x3942, 0x665b, 0x5127,
+  0x3a22, 0x424f, 0x582b, 0x4a6b, 0x656e, 0x665c, 0x3775, 0x4866,
+  0x4475, 0x6532, 0x447e, 0x4b7c, 0x6533, 0x552c, 0x536e, 0x4a58,
+  0x3032, 0x4b4e, 0x4d6a, 0x3a6a, 0x6535, 0x6534, 0x575a, 0x3959,
+  0x5666, 0x3628, 0x4d70, 0x524b, 0x3126, 0x4a35, 0x3368, 0x4973,
+  0x3f4d, 0x507b, 0x4a52, 0x6536, 0x3b42, 0x4f5c, 0x392c, 0x5457,
+  0x3a26, 0x5167, 0x4f7c, 0x3c52, 0x6537, 0x485d, 0x3f6d, 0x3176,
+  0x4b5e, 0x3c45, 0x3c44, 0x527a, 0x435c, 0x3f5c, 0x383b, 0x4342,
+  0x3a2e, 0x5422, 0x475e, 0x442f, 0x326c, 0x3951, 0x653b, 0x4148,
+  0x552f, 0x653c, 0x653e, 0x3467, 0x3654, 0x4b42, 0x5130, 0x353c,
+  0x4a59, 0x3762, 0x4964, 0x3d2b, 0x4e3e, 0x5770, 0x5021, 0x4959,
+  0x367b, 0x6658, 0x3c62, 0x333e, 0x4950, 0x6659, 0x3322, 0x5e4c,
+  0x5348, 0x5e4d, 0x5222, 0x5e4e, 0x3e4d, 0x5e4f, 0x4a2c, 0x527c,
+  0x335f, 0x656a, 0x4461, 0x3e21, 0x4e32, 0x4472, 0x3e56, 0x4628,
+  0x3263, 0x3e53, 0x477c, 0x4c6b, 0x3d6c, 0x4e5d, 0x4a3a, 0x4641,
+  0x656c, 0x503c, 0x5539, 0x656d, 0x4a74, 0x4d40, 0x4245, 0x656f,
+  0x4244, 0x6570, 0x6578, 0x4d4d, 0x493d, 0x5259, 0x6128, 0x536c,
+  0x4b6a, 0x4671, 0x612c, 0x6127, 0x6129, 0x612a, 0x612f, 0x326d,
+  0x612b, 0x385a, 0x612d, 0x612e, 0x6130, 0x353a, 0x6131, 0x6133,
+  0x6138, 0x5152, 0x6136, 0x6135, 0x416b, 0x6137, 0x5440, 0x6132,
+  0x613a, 0x3036, 0x6134, 0x3f79, 0x6139, 0x613b, 0x613e, 0x613c,
+  0x5645, 0x4f3f, 0x613d, 0x613f, 0x424d, 0x366b, 0x5378, 0x474d,
+  0x3765, 0x3e7e, 0x6140, 0x6141, 0x6147, 0x3367, 0x4669, 0x345e,
+  0x5142, 0x6148, 0x6146, 0x6145, 0x6143, 0x6142, 0x3140, 0x5538,
+  0x6144, 0x614b, 0x614c, 0x614a, 0x6f7a, 0x6153, 0x6152, 0x4736,
+  0x6149, 0x614e, 0x6150, 0x6154, 0x6151, 0x614d, 0x614f, 0x6155,
+  0x6156, 0x6157, 0x6158, 0x615a, 0x615b, 0x4e21, 0x675d, 0x3428,
+  0x565d, 0x5132, 0x3332, 0x3924, 0x5773, 0x4749, 0x3e5e, 0x392e,
+  0x4e57, 0x326e, 0x5b4f, 0x3c3a, 0x5251, 0x4b48, 0x304d, 0x4f6f,
+  0x5963, 0x3d6d, 0x3152, 0x4a50, 0x323c, 0x4b27, 0x372b, 0x4a26,
+  0x4f23, 0x6078, 0x554a, 0x607b, 0x607a, 0x4541, 0x4c7b, 0x4131,
+  0x6079, 0x5663, 0x322f, 0x5644, 0x355b, 0x3478, 0x5621, 0x4f2f,
+  0x306f, 0x607c, 0x6121, 0x3323, 0x607d, 0x607e, 0x4331, 0x435d,
+  0x6122, 0x3779, 0x3b4f, 0x6123, 0x443b, 0x6124, 0x6125, 0x6126,
+  0x3431, 0x3849, 0x463d, 0x446a, 0x3222, 0x5052, 0x675b, 0x3b43,
+  0x5357, 0x5344, 0x3963, 0x624f, 0x572f, 0x476c, 0x3153, 0x3432,
+  0x6251, 0x5072, 0x422e, 0x6250, 0x3f62, 0x5326, 0x3557, 0x6252,
+  0x356a, 0x436d, 0x387d, 0x382e, 0x4553, 0x374f, 0x6254, 0x6253,
+  0x3648, 0x5779, 0x4d25, 0x6258, 0x6256, 0x4a7c, 0x3f35, 0x5339,
+  0x6255, 0x6257, 0x412e, 0x4048, 0x625b, 0x625a, 0x402a, 0x414e,
+  0x625c, 0x625d, 0x625e, 0x5b48, 0x5153, 0x4d22, 0x3d28, 0x5e43,
+  0x5825, 0x3f2a, 0x5b4d, 0x526c, 0x467a, 0x452a, 0x5e44, 0x3157,
+  0x5f2e, 0x4a3d, 0x5f31, 0x392d, 0x527d, 0x3825, 0x3a6b, 0x335a,
+  0x355c, 0x5545, 0x4356, 0x4f52, 0x3b21, 0x6573, 0x6572, 0x6574,
+  0x4d64, 0x4875, 0x352f, 0x473f, 0x6576, 0x6c30, 0x6566, 0x3969,
+  0x3531, 0x423c, 0x6568, 0x6567, 0x6569, 0x524d, 0x616a, 0x504e,
+  0x4d2e, 0x5165, 0x324a, 0x316b, 0x3172, 0x456d, 0x5543, 0x5330,
+  0x615c, 0x615d, 0x525b, 0x3339, 0x314b, 0x4d79, 0x5577, 0x615e,
+  0x3e36, 0x347d, 0x615f, 0x3a5c, 0x6160, 0x3b32, 0x4249, 0x6161,
+  0x506c, 0x4d3d, 0x6162, 0x3543, 0x4547, 0x6163, 0x6164, 0x5379,
+  0x6165, 0x512d, 0x6166, 0x4e22, 0x6167, 0x3542, 0x6168, 0x3b55,
+  0x5044, 0x6260, 0x3158, 0x5264, 0x6261, 0x3c49, 0x484c, 0x6263,
+  0x6c7e, 0x6c7d, 0x5f2f, 0x6262, 0x563e, 0x4d7c, 0x4326, 0x6343,
+  0x5652, 0x6267, 0x6268, 0x5347, 0x626c, 0x3f6c, 0x626d, 0x6265,
+  0x3340, 0x446e, 0x626e, 0x5043, 0x3a76, 0x6269, 0x375e, 0x3b33,
+  0x4c2c, 0x4b4b, 0x6264, 0x6266, 0x626a, 0x626b, 0x6277, 0x6274,
+  0x5475, 0x6273, 0x452d, 0x557a, 0x4542, 0x3240, 0x626f, 0x6272,
+  0x412f, 0x4b3c, 0x3521, 0x6279, 0x3c31, 0x6271, 0x5054, 0x5439,
+  0x6275, 0x3956, 0x6276, 0x4753, 0x6270, 0x575c, 0x6d21, 0x6278,
+  0x6d25, 0x627e, 0x4a51, 0x4135, 0x3b50, 0x3f56, 0x3a63, 0x4b21,
+  0x6d26, 0x6d23, 0x6d22, 0x3b56, 0x6d27, 0x5074, 0x6d24, 0x3a5e,
+  0x3677, 0x6321, 0x3632, 0x4c71, 0x3927, 0x4f22, 0x4721, 0x3f52,
+  0x3671, 0x627a, 0x627b, 0x627d, 0x627c, 0x4455, 0x6322, 0x5341,
+  0x6327, 0x4744, 0x4f24, 0x6329, 0x3a37, 0x6328, 0x3b5a, 0x6323,
+  0x6324, 0x632a, 0x6326, 0x4e72, 0x5346, 0x3b3c, 0x5443, 0x447a,
+  0x6d28, 0x507c, 0x6325, 0x4375, 0x632d, 0x312f, 0x6332, 0x3c42,
+  0x632c, 0x353f, 0x4769, 0x6330, 0x3e2a, 0x4d6f, 0x3b73, 0x4c68,
+  0x632f, 0x6331, 0x4f27, 0x632e, 0x4e29, 0x3b5d, 0x356b, 0x3e65,
+  0x3252, 0x334d, 0x3139, 0x632b, 0x3251, 0x352c, 0x395f, 0x3668,
+  0x4f6b, 0x6337, 0x3b4c, 0x4847, 0x504a, 0x6338, 0x336e, 0x6d29,
+  0x537a, 0x5364, 0x6d2a, 0x6339, 0x5262, 0x6335, 0x535e, 0x3850,
+  0x6333, 0x6336, 0x375f, 0x6334, 0x4022, 0x633a, 0x5438, 0x3448,
+  0x633b, 0x3b45, 0x4977, 0x4965, 0x443d, 0x6d2b, 0x427d, 0x3b5b,
+  0x3f2e, 0x4e3f, 0x633c, 0x3f36, 0x316f, 0x5477, 0x633e, 0x6d2d,
+  0x633f, 0x3a29, 0x6d2c, 0x633d, 0x6340, 0x3a36, 0x362e, 0x5038,
+  0x3043, 0x6d2e, 0x6d2f, 0x4041, 0x6341, 0x4533, 0x6342, 0x5c32,
+  0x6d30, 0x386a, 0x4e6c, 0x6a27, 0x5067, 0x4a79, 0x4856, 0x4f37,
+  0x3349, 0x4e52, 0x3d64, 0x635e, 0x3b72, 0x6a28, 0x553d, 0x465d,
+  0x6a29, 0x6a2a, 0x6a2c, 0x6a2b, 0x6a2e, 0x6a2d, 0x3d58, 0x6a2f,
+  0x423e, 0x3441, 0x3477, 0x3b27, 0x6c66, 0x6c65, 0x373f, 0x4b79,
+  0x3162, 0x6c67, 0x4948, 0x6c68, 0x6c69, 0x4a56, 0x5e50, 0x3245,
+  0x547a, 0x464b, 0x3047, 0x3472, 0x4853, 0x4d50, 0x3f38, 0x3f5b,
+  0x4724, 0x5634, 0x4029, 0x5e51, 0x4928, 0x516f, 0x4524, 0x3067,
+  0x3336, 0x4845, 0x3062, 0x3776, 0x457a, 0x3673, 0x5552, 0x3350,
+  0x3c3c, 0x332d, 0x3e71, 0x3051, 0x5256, 0x4a63, 0x5725, 0x4d36,
+  0x3636, 0x3f39, 0x555b, 0x3827, 0x4557, 0x5e52, 0x3f59, 0x4255,
+  0x4740, 0x3b24, 0x3128, 0x456a, 0x457b, 0x4c27, 0x3127, 0x3556,
+  0x4428, 0x5e53, 0x513a, 0x3369, 0x4372, 0x3777, 0x5674, 0x3523,
+  0x3270, 0x4434, 0x4469, 0x402d, 0x5e54, 0x3068, 0x4544, 0x4160,
+  0x3955, 0x3e5c, 0x4d58, 0x304e, 0x4d4f, 0x5e56, 0x3e50, 0x573e,
+  0x5e55, 0x5550, 0x305d, 0x4462, 0x4223, 0x3c70, 0x5335, 0x4039,
+  0x4521, 0x3226, 0x5471, 0x4028, 0x4a43, 0x5e57, 0x557c, 0x3930,
+  0x482d, 0x4b29, 0x5e59, 0x3f3d, 0x4634, 0x5727, 0x4a30, 0x4443,
+  0x3356, 0x3952, 0x5638, 0x6a7c, 0x3034, 0x3f66, 0x4c74, 0x4d5a,
+  0x563f, 0x424e, 0x4e4e, 0x4c22, 0x502e, 0x4453, 0x3532, 0x5e58,
+  0x5575, 0x3c37, 0x3b53, 0x3024, 0x4532, 0x346c, 0x5571, 0x6a7d,
+  0x5e5a, 0x4d26, 0x4d6c, 0x4e66, 0x5e5c, 0x4d31, 0x4026, 0x573d,
+  0x5e5b, 0x3046, 0x3a34, 0x4953, 0x4473, 0x3e68, 0x3236, 0x404c,
+  0x4b70, 0x3c71, 0x3b3b, 0x3537, 0x4575, 0x5e66, 0x5e63, 0x3e5d,
+  0x5e5f, 0x3437, 0x3d5d, 0x5e60, 0x446d, 0x4f46, 0x3560, 0x365e,
+  0x4a5a, 0x3574, 0x5e65, 0x5546, 0x5e61, 0x4c4d, 0x467e, 0x4545,
+  0x5234, 0x3e72, 0x4253, 0x4c3d, 0x3338, 0x3d53, 0x3f58, 0x4d46,
+  0x515a, 0x346b, 0x5e64, 0x5e5d, 0x5e67, 0x6a7e, 0x4230, 0x5e62,
+  0x5640, 0x3527, 0x3274, 0x5e68, 0x5e72, 0x5e6d, 0x5e71, 0x4860,
+  0x5761, 0x5e6f, 0x4368, 0x4c61, 0x3265, 0x523e, 0x5e6e, 0x5e6b,
+  0x4e55, 0x3427, 0x3f2b, 0x3e3e, 0x3d52, 0x5e69, 0x542e, 0x5e5e,
+  0x5e6a, 0x403f, 0x5e6c, 0x3273, 0x3869, 0x4227, 0x3d41, 0x5e75,
+  0x5e78, 0x322b, 0x3424, 0x346a, 0x4926, 0x5e76, 0x4b51, 0x3863,
+  0x5e77, 0x5e7a, 0x5e79, 0x4c42, 0x3061, 0x346e, 0x653a, 0x502f,
+  0x326b, 0x6b21, 0x5e74, 0x4963, 0x5e73, 0x305a, 0x5221, 0x3177,
+  0x4c2f, 0x5e70, 0x4b24, 0x552a, 0x5e7b, 0x345d, 0x4426, 0x5e7d,
+  0x437e, 0x4421, 0x5f21, 0x414c, 0x5e7c, 0x3e6f, 0x4632, 0x3345,
+  0x4876, 0x4b3a, 0x5e7e, 0x5f24, 0x5732, 0x3337, 0x4143, 0x474b,
+  0x3225, 0x3469, 0x572b, 0x446c, 0x5f22, 0x5f23, 0x5f25, 0x3a33,
+  0x5f26, 0x405e, 0x4943, 0x3259, 0x4766, 0x5f27, 0x475c, 0x5f28,
+  0x6b22, 0x4b53, 0x5f2a, 0x5f29, 0x3241, 0x454a, 0x5f2b, 0x545c,
+  0x4841, 0x5f2c, 0x3e70, 0x5f2d, 0x5627, 0x6a37, 0x6b36, 0x4a55,
+  0x587c, 0x3844, 0x3925, 0x3745, 0x557e, 0x394a, 0x5027, 0x744d,
+  0x3550, 0x4374, 0x3e48, 0x6b37, 0x303d, 0x3d4c, 0x4132, 0x3156,
+  0x3328, 0x3852, 0x4922, 0x3658, 0x6b38, 0x3e34, 0x4a7d, 0x4743,
+  0x557b, 0x3773, 0x4e44, 0x552b, 0x3173, 0x6c33, 0x305f, 0x6c35,
+  0x3637, 0x414f, 0x757a, 0x5031, 0x5565, 0x4e53, 0x3d6f, 0x3362,
+  0x382b, 0x5536, 0x6d3d, 0x364f, 0x4b39, 0x5042, 0x373d, 0x6c36,
+  0x4a29, 0x4554, 0x6c39, 0x6c38, 0x4243, 0x6c37, 0x507d, 0x6c3a,
+  0x6c3b, 0x5765, 0x6c3c, 0x6c3d, 0x466c, 0x4e5e, 0x3c48, 0x4855,
+  0x3529, 0x3e49, 0x563c, 0x5467, 0x512e, 0x5071, 0x6a38, 0x6a39,
+  0x6a3a, 0x3a35, 0x4a31, 0x3f75, 0x4d7a, 0x6a40, 0x303a, 0x6a3e,
+  0x4025, 0x6a3b, 0x327d, 0x4377, 0x3b68, 0x5257, 0x4e74, 0x6a3f,
+  0x6a3c, 0x6a43, 0x5047, 0x5333, 0x343a, 0x4341, 0x5772, 0x5551,
+  0x4a47, 0x6a45, 0x6a44, 0x6a47, 0x6a46, 0x5667, 0x4f54, 0x6a4b,
+  0x3b4e, 0x3d7a, 0x494e, 0x6a4c, 0x4939, 0x4f7e, 0x6a4a, 0x544e,
+  0x6a4d, 0x6a4f, 0x4d6d, 0x6a49, 0x6a4e, 0x4e6e, 0x3b5e, 0x333f,
+  0x4655, 0x3e30, 0x4e7a, 0x4767, 0x3e27, 0x6a50, 0x5647, 0x4140,
+  0x545d, 0x6a51, 0x4f3e, 0x6a52, 0x4a6e, 0x452f, 0x3035, 0x6a54,
+  0x6a53, 0x745f, 0x443a, 0x3129, 0x655f, 0x6a55, 0x4a6f, 0x6a56,
+  0x6a57, 0x4658, 0x6a58, 0x6a59, 0x543b, 0x477a, 0x5237, 0x387c,
+  0x6a42, 0x325c, 0x427c, 0x5478, 0x4c66, 0x576e, 0x5442, 0x5350,
+  0x6b43, 0x4573, 0x377e, 0x6b54, 0x4b37, 0x6b5e, 0x404a, 0x4d7b,
+  0x332f, 0x465a, 0x6b7c, 0x443e, 0x4e34, 0x4429, 0x313e, 0x547d,
+  0x4a75, 0x566c, 0x4653, 0x3664, 0x3b7a, 0x5060, 0x4931, 0x5453,
+  0x4828, 0x384b, 0x683e, 0x493c, 0x683b, 0x406e, 0x5053, 0x3244,
+  0x3465, 0x683c, 0x5548, 0x3645, 0x683d, 0x4a78, 0x385c, 0x4c75,
+  0x4034, 0x516e, 0x683f, 0x6842, 0x3a3c, 0x312d, 0x3d5c, 0x6a3d,
+  0x6843, 0x6846, 0x684b, 0x684c, 0x4b49, 0x3065, 0x3c2b, 0x3939,
+  0x6841, 0x4d77, 0x684a, 0x4e76, 0x556d, 0x4156, 0x6844, 0x4336,
+  0x397b, 0x5626, 0x6848, 0x4a60, 0x5466, 0x6840, 0x6845, 0x6847,
+  0x4739, 0x3763, 0x6849, 0x3f5d, 0x6852, 0x6857, 0x6855, 0x3c5c,
+  0x3c4f, 0x685b, 0x685e, 0x685a, 0x317a, 0x3058, 0x4433, 0x384c,
+  0x4662, 0x483e, 0x4861, 0x684f, 0x6854, 0x6856, 0x3971, 0x6858,
+  0x5775, 0x447b, 0x685c, 0x3269, 0x6851, 0x3c6d, 0x3f42, 0x684d,
+  0x5679, 0x4178, 0x3271, 0x685f, 0x4a41, 0x6859, 0x5524, 0x316a,
+  0x553b, 0x684e, 0x6850, 0x3630, 0x6853, 0x685d, 0x4038, 0x4a77,
+  0x4b28, 0x465c, 0x4075, 0x6869, 0x5023, 0x6872, 0x566a, 0x6860,
+  0x6861, 0x5179, 0x3a4b, 0x3879, 0x3871, 0x5454, 0x686f, 0x686e,
+  0x686c, 0x3970, 0x4c52, 0x6866, 0x4e26, 0x3f72, 0x3038, 0x6871,
+  0x6870, 0x5740, 0x6864, 0x4d29, 0x4923, 0x3b38, 0x3d5b, 0x686a,
+  0x6862, 0x6863, 0x6865, 0x3535, 0x6867, 0x4745, 0x686b, 0x686d,
+  0x3d30, 0x572e, 0x6878, 0x6875, 0x4d30, 0x6876, 0x413a, 0x6868,
+  0x4337, 0x3070, 0x6874, 0x6877, 0x3923, 0x4952, 0x434e, 0x4e60,
+  0x4066, 0x4b73, 0x4c5d, 0x5035, 0x4a61, 0x6873, 0x3c6c, 0x6879,
+  0x435e, 0x4665, 0x3977, 0x3074, 0x5758, 0x3c2c, 0x456f, 0x4c44,
+  0x6926, 0x492d, 0x6922, 0x4062, 0x3f43, 0x687e, 0x3957, 0x687b,
+  0x6924, 0x524e, 0x6923, 0x5632, 0x5735, 0x6927, 0x3d37, 0x687c,
+  0x687d, 0x6921, 0x4d56, 0x522c, 0x6932, 0x6929, 0x342a, 0x343b,
+  0x692b, 0x5028, 0x6925, 0x337e, 0x692c, 0x4063, 0x692a, 0x6939,
+  0x6938, 0x692e, 0x687a, 0x6928, 0x3f2c, 0x6931, 0x693a, 0x4225,
+  0x692f, 0x3845, 0x692d, 0x535c, 0x6934, 0x6935, 0x6937, 0x6947,
+  0x4046, 0x6945, 0x6930, 0x693b, 0x3071, 0x693c, 0x5525, 0x693e,
+  0x693f, 0x6941, 0x4171, 0x4836, 0x693d, 0x6942, 0x6943, 0x6933,
+  0x6936, 0x3b31, 0x6940, 0x3c77, 0x6944, 0x6946, 0x694a, 0x694e,
+  0x325b, 0x6948, 0x372e, 0x694b, 0x694c, 0x5541, 0x4423, 0x6958,
+  0x3a61, 0x6949, 0x5323, 0x6954, 0x6957, 0x6950, 0x694f, 0x4741,
+  0x6952, 0x6959, 0x3348, 0x6953, 0x4f70, 0x694d, 0x3377, 0x6956,
+  0x695a, 0x4c34, 0x4f2d, 0x6955, 0x695c, 0x695b, 0x695e, 0x6951,
+  0x695d, 0x695f, 0x434a, 0x4737, 0x344e, 0x3b36, 0x5040, 0x6c23,
+  0x4537, 0x537b, 0x6c24, 0x6c25, 0x465b, 0x3f6e, 0x6c26, 0x6c27,
+  0x502a, 0x4738, 0x3868, 0x6c28, 0x5639, 0x557d, 0x344b, 0x323d,
+  0x4e64, 0x4667, 0x4d61, 0x3475, 0x4b40, 0x3c5f, 0x6962, 0x6963,
+  0x516a, 0x6965, 0x3479, 0x6964, 0x5133, 0x4a62, 0x3250, 0x6968,
+  0x6966, 0x6967, 0x5633, 0x6969, 0x696a, 0x696b, 0x696c, 0x6c2f,
+  0x4539, 0x364e, 0x5273, 0x356e, 0x3b59, 0x6c31, 0x5263, 0x4e63,
+  0x4438, 0x433f, 0x363e, 0x5839, 0x3148, 0x314f, 0x3151, 0x457e,
+  0x3150, 0x432b, 0x5531, 0x6b24, 0x3a41, 0x4c3a, 0x6b25, 0x6b27,
+  0x6b28, 0x6b26, 0x6b29, 0x6b2b, 0x6b2a, 0x6b2c, 0x4a4f, 0x5835,
+  0x4371, 0x4325, 0x4678, 0x6b2d, 0x444a, 0x6b2e, 0x6b2f, 0x6b30,
+  0x3755, 0x377a, 0x6b31, 0x4762, 0x6b33, 0x3a24, 0x5175, 0x3031,
+  0x6b32, 0x6b34, 0x352a, 0x4248, 0x4768, 0x6b35, 0x4b2e, 0x635f,
+  0x5340, 0x595b, 0x4d21, 0x562d, 0x4773, 0x5960, 0x3b63, 0x3a3a,
+  0x6362, 0x4f2b, 0x6360, 0x4947, 0x3a39, 0x5134, 0x6361, 0x486a,
+  0x392f, 0x3d2d, 0x3358, 0x4e5b, 0x4c40, 0x6368, 0x6369, 0x4d74,
+  0x4c2d, 0x3c33, 0x636a, 0x636b, 0x505a, 0x467b, 0x375a, 0x475f,
+  0x524a, 0x4e56, 0x6364, 0x636c, 0x4972, 0x3341, 0x6367, 0x4663,
+  0x6365, 0x6d33, 0x6366, 0x4933, 0x4566, 0x3935, 0x433b, 0x6363,
+  0x453d, 0x4124, 0x4259, 0x3257, 0x636d, 0x3b26, 0x442d, 0x6370,
+  0x3e5a, 0x637b, 0x6375, 0x3a53, 0x3750, 0x534d, 0x564e, 0x5553,
+  0x3941, 0x5534, 0x5158, 0x5039, 0x4776, 0x482a, 0x3234, 0x435a,
+  0x636e, 0x637c, 0x636f, 0x3728, 0x6377, 0x6374, 0x373a, 0x4522,
+  0x6376, 0x455d, 0x3228, 0x467c, 0x4460, 0x5722, 0x4061, 0x6379,
+  0x637a, 0x637d, 0x4c29, 0x6373, 0x533e, 0x3143, 0x6d34, 0x6371,
+  0x6372, 0x6378, 0x503a, 0x4643, 0x5473, 0x637e, 0x3d60, 0x6427,
+  0x6426, 0x5173, 0x6423, 0x6429, 0x4877, 0x4f34, 0x6428, 0x642e,
+  0x4265, 0x3634, 0x3d72, 0x6422, 0x3a69, 0x642a, 0x642c, 0x367d,
+  0x565e, 0x6432, 0x642d, 0x6421, 0x3b6e, 0x4d5d, 0x4722, 0x4549,
+  0x4177, 0x6424, 0x4733, 0x3d2c, 0x3d3d, 0x6425, 0x5747, 0x3262,
+  0x642b, 0x3c43, 0x642f, 0x3b6b, 0x6430, 0x4528, 0x6431, 0x5563,
+  0x3f23, 0x643a, 0x6437, 0x643b, 0x643d, 0x4656, 0x3a46, 0x404b,
+  0x3821, 0x6434, 0x5421, 0x3a23, 0x3d7e, 0x643c, 0x4d3f, 0x4479,
+  0x4f7b, 0x4966, 0x533f, 0x4f51, 0x6433, 0x6438, 0x6439, 0x4c69,
+  0x4c4e, 0x4054, 0x6435, 0x4130, 0x6436, 0x4e50, 0x3b41, 0x3553,
+  0x4873, 0x3d27, 0x5547, 0x492c, 0x3822, 0x644a, 0x644c, 0x5144,
+  0x523a, 0x3a2d, 0x3a54, 0x6443, 0x356d, 0x574d, 0x6440, 0x4f7d,
+  0x643f, 0x415c, 0x4c4a, 0x4a67, 0x4457, 0x4c54, 0x6448, 0x6447,
+  0x6441, 0x6444, 0x352d, 0x5359, 0x6446, 0x5279, 0x3463, 0x3b34,
+  0x496e, 0x343e, 0x3b6c, 0x514d, 0x4c6d, 0x6d35, 0x4765, 0x5428,
+  0x644b, 0x5755, 0x6442, 0x3d25, 0x6445, 0x5366, 0x6449, 0x4978,
+  0x643e, 0x5365, 0x477e, 0x3649, 0x547c, 0x3233, 0x6457, 0x4e42,
+  0x644d, 0x4e3c, 0x385b, 0x6456, 0x3f4a, 0x534e, 0x436c, 0x4548,
+  0x6458, 0x4d44, 0x644f, 0x6454, 0x6455, 0x3a7e, 0x4f66, 0x553f,
+  0x6452, 0x6450, 0x644e, 0x4d65, 0x4a2a, 0x4023, 0x3d26, 0x6453,
+  0x3848, 0x6467, 0x5434, 0x645b, 0x416f, 0x6469, 0x5267, 0x645f,
+  0x6460, 0x4f2a, 0x4b5d, 0x645a, 0x6451, 0x6465, 0x485c, 0x6463,
+  0x4467, 0x6462, 0x6461, 0x337c, 0x6468, 0x3561, 0x574c, 0x6466,
+  0x3b2c, 0x5752, 0x4c4f, 0x6b78, 0x6464, 0x3976, 0x564d, 0x6459,
+  0x645c, 0x427a, 0x645e, 0x424b, 0x4044, 0x4250, 0x3175, 0x4c32,
+  0x354e, 0x646f, 0x462f, 0x4661, 0x6475, 0x4229, 0x406c, 0x515d,
+  0x646e, 0x442e, 0x646d, 0x6476, 0x6474, 0x427e, 0x645d, 0x6470,
+  0x4a7e, 0x5544, 0x6471, 0x517a, 0x646b, 0x646c, 0x6472, 0x4e2b,
+  0x454b, 0x4731, 0x423a, 0x646a, 0x414a, 0x4c36, 0x3331, 0x647b,
+  0x6473, 0x647a, 0x647d, 0x647c, 0x334e, 0x333a, 0x6477, 0x6479,
+  0x6478, 0x456c, 0x403d, 0x5468, 0x6522, 0x3044, 0x6524, 0x6523,
+  0x3c24, 0x6525, 0x6521, 0x647e, 0x3174, 0x6528, 0x6529, 0x6526,
+  0x6527, 0x652a, 0x4659, 0x652b, 0x652d, 0x652c, 0x652f, 0x652e,
+  0x3960, 0x6530, 0x6531, 0x3b70, 0x6c61, 0x4370, 0x3546, 0x3b52,
+  0x4169, 0x546e, 0x3e44, 0x5746, 0x5456, 0x3253, 0x6c3e, 0x6a41,
+  0x422f, 0x3436, 0x5157, 0x3334, 0x4832, 0x3f3b, 0x6c40, 0x564b,
+  0x6c3f, 0x6c41, 0x6c45, 0x3e66, 0x4c3f, 0x455a, 0x3e3c, 0x6c46,
+  0x317e, 0x6c44, 0x5528, 0x3563, 0x6c42, 0x4136, 0x3363, 0x6c43,
+  0x4b38, 0x4043, 0x4c7e, 0x4152, 0x6c48, 0x3a66, 0x4053, 0x5672,
+  0x514c, 0x3f3e, 0x3733, 0x4955, 0x6c47, 0x3b62, 0x4c4c, 0x3d7d,
+  0x4848, 0x4f29, 0x4d69, 0x456b, 0x3769, 0x5149, 0x3a38, 0x6c49,
+  0x6c4a, 0x3b40, 0x6c4b, 0x6c62, 0x313a, 0x3759, 0x3d39, 0x6c4c,
+  0x5166, 0x6c4d, 0x483b, 0x6c51, 0x6c53, 0x3b4d, 0x3c65, 0x6c4f,
+  0x4937, 0x433a, 0x6c63, 0x5555, 0x6c50, 0x5673, 0x6c52, 0x6c4e,
+  0x6c54, 0x6c55, 0x493f, 0x4f28, 0x505c, 0x512c, 0x485b, 0x6c56,
+  0x4e75, 0x4a6c, 0x6c5a, 0x6c59, 0x303e, 0x6c57, 0x6c58, 0x6c64,
+  0x483c, 0x4147, 0x6c5c, 0x5160, 0x6c5b, 0x546f, 0x6c5d, 0x5b46,
+  0x6c5e, 0x312c, 0x6c5f, 0x6c60, 0x5726, 0x4540, 0x6b3c, 0x302e,
+  0x3e74, 0x3838, 0x522f, 0x3056, 0x3579, 0x5833, 0x4b2c, 0x635d,
+  0x462c, 0x3066, 0x4546, 0x6b39, 0x6b3a, 0x6b3b, 0x5140, 0x4523,
+  0x6a72, 0x4432, 0x4435, 0x404e, 0x6a73, 0x4441, 0x4e6f, 0x6a70,
+  0x6a74, 0x497c, 0x4723, 0x4c58, 0x4e7e, 0x6a75, 0x6a76, 0x4f2c,
+  0x4067, 0x6a77, 0x363f, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, 0x6a71,
+  0x482e, 0x616b, 0x3738, 0x616c, 0x616d, 0x5734, 0x616e, 0x616f,
+  0x534c, 0x6171, 0x3f71, 0x6170, 0x3552, 0x3137, 0x6173, 0x6172,
+  0x3a7c, 0x6174, 0x3937, 0x3e51, 0x447c, 0x3a5d, 0x3d46, 0x6175,
+  0x6177, 0x3640, 0x4f41, 0x4a28, 0x6176, 0x5578, 0x537c, 0x6178,
+  0x617c, 0x6179, 0x617a, 0x406a, 0x617e, 0x6221, 0x4047, 0x617b,
+  0x617d, 0x6225, 0x4154, 0x6223, 0x6228, 0x327e, 0x6222, 0x434d,
+  0x3242, 0x6227, 0x6226, 0x6224, 0x6229, 0x622b, 0x5049, 0x566d,
+  0x4328, 0x622c, 0x4f57, 0x622e, 0x3a6f, 0x6960, 0x622d, 0x622a,
+  0x3b2b, 0x5433, 0x6230, 0x622f, 0x6961, 0x6231, 0x6232, 0x6233,
+  0x4c21, 0x6234, 0x6235, 0x507e, 0x424a, 0x5371, 0x4d75, 0x6760,
+  0x6761, 0x3e41, 0x426a, 0x6764, 0x6763, 0x4d66, 0x4335, 0x6762,
+  0x3b37, 0x4f56, 0x4161, 0x6769, 0x6768, 0x6774, 0x3223, 0x676a,
+  0x6766, 0x676c, 0x676b, 0x493a, 0x5564, 0x6765, 0x3729, 0x6767,
+  0x676e, 0x6773, 0x5669, 0x676d, 0x6772, 0x6771, 0x3060, 0x6775,
+  0x4772, 0x4045, 0x406d, 0x4170, 0x6770, 0x6776, 0x4b76, 0x6822,
+  0x6821, 0x5741, 0x677a, 0x6779, 0x677b, 0x6777, 0x677e, 0x677d,
+  0x677c, 0x4155, 0x4759, 0x457d, 0x4543, 0x476d, 0x6823, 0x6826,
+  0x6825, 0x6827, 0x3a77, 0x6778, 0x6824, 0x4870, 0x492a, 0x6829,
+  0x3965, 0x517e, 0x6828, 0x682a, 0x682d, 0x682e, 0x4127, 0x682f,
+  0x6830, 0x682c, 0x6834, 0x682b, 0x6831, 0x6835, 0x6832, 0x6833,
+  0x6837, 0x6836, 0x394f, 0x702c, 0x702d, 0x4630, 0x306a, 0x483f,
+  0x4d5f, 0x4e4d, 0x6a31, 0x6a32, 0x463f, 0x3449, 0x6a33, 0x5567,
+  0x5d79, 0x6a34, 0x6a35, 0x6a36, 0x384a, 0x5f30, 0x4975, 0x4c70,
+  0x497a, 0x497b, 0x5343, 0x4b26, 0x3826, 0x702e, 0x3142, 0x6538,
+  0x4c6f, 0x5349, 0x3c57, 0x496a, 0x3567, 0x4450, 0x3569, 0x6e2e,
+  0x3b2d, 0x675e, 0x6e2f, 0x3329, 0x6e32, 0x6e31, 0x3d67, 0x6e30,
+  0x4e37, 0x454f, 0x4174, 0x5b4e, 0x6e33, 0x5073, 0x4254, 0x4668,
+  0x372c, 0x6e34, 0x336b, 0x3b7b, 0x6e35, 0x675c, 0x6e36, 0x3d2e,
+  0x7162, 0x4a68, 0x5249, 0x705a, 0x705b, 0x705c, 0x4146, 0x386d,
+  0x3e4e, 0x705e, 0x4531, 0x705d, 0x5171, 0x7060, 0x304c, 0x3d6a,
+  0x525f, 0x705f, 0x342f, 0x3768, 0x7066, 0x7065, 0x4623, 0x7061,
+  0x7062, 0x3443, 0x7063, 0x556e, 0x4c5b, 0x3e52, 0x3c32, 0x7068,
+  0x7067, 0x7064, 0x3221, 0x5622, 0x5338, 0x3e37, 0x482c, 0x706a,
+  0x5177, 0x564c, 0x3a5b, 0x7069, 0x363b, 0x4d34, 0x4626, 0x4121,
+  0x706b, 0x706e, 0x706d, 0x7070, 0x706c, 0x3b3e, 0x706f, 0x4c35,
+  0x7072, 0x3355, 0x3154, 0x7073, 0x7074, 0x7076, 0x3461, 0x7071,
+  0x7077, 0x707a, 0x7078, 0x7075, 0x707d, 0x7079, 0x707c, 0x707e,
+  0x7121, 0x4e41, 0x7124, 0x7123, 0x4176, 0x707b, 0x4a5d, 0x3471,
+  0x3171, 0x4c31, 0x7126, 0x7127, 0x712c, 0x554e, 0x7129, 0x4833,
+  0x7122, 0x712b, 0x7128, 0x7125, 0x712a, 0x3029, 0x712d, 0x712f,
+  0x7131, 0x7130, 0x712e, 0x5122, 0x7132, 0x7133, 0x396f, 0x3547,
+  0x3057, 0x3059, 0x546d, 0x3544, 0x3d54, 0x3b4a, 0x7027, 0x385e,
+  0x7028, 0x3028, 0x7029, 0x4d6e, 0x702a, 0x702b, 0x4624, 0x5665,
+  0x7164, 0x7165, 0x4373, 0x535b, 0x5651, 0x4568, 0x532f, 0x5266,
+  0x6e41, 0x303b, 0x5535, 0x514e, 0x3c60, 0x3a50, 0x3f78, 0x3847,
+  0x3541, 0x454c, 0x4a22, 0x434b, 0x6e42, 0x443f, 0x3622, 0x6d6c,
+  0x4324, 0x5631, 0x4f60, 0x6d6f, 0x454e, 0x365c, 0x4a21, 0x6d6d,
+  0x6d70, 0x6d71, 0x433c, 0x3f34, 0x6d6e, 0x6d74, 0x6d72, 0x5566,
+  0x435f, 0x6d73, 0x6d76, 0x5523, 0x5123, 0x6d75, 0x4350, 0x6d77,
+  0x3f74, 0x3e6c, 0x6d78, 0x4c77, 0x515b, 0x5745, 0x5576, 0x6d7c,
+  0x6d7b, 0x6d79, 0x6d7a, 0x6d7d, 0x3e26, 0x4b2f, 0x6e21, 0x363d,
+  0x6e22, 0x4440, 0x6d7e, 0x3d5e, 0x3247, 0x3643, 0x6e25, 0x583a,
+  0x6e23, 0x6e26, 0x4369, 0x3372, 0x6e27, 0x6e24, 0x4f39, 0x6e28,
+  0x4277, 0x6e29, 0x6e2a, 0x5e2b, 0x4633, 0x4746, 0x5675, 0x3549,
+  0x4b32, 0x6e2b, 0x4d2b, 0x6e2c, 0x5530, 0x6e2d, 0x7644, 0x5b47,
+  0x3423, 0x432c, 0x7166, 0x4a38, 0x5253, 0x562a, 0x6f72, 0x3e58,
+  0x3d43, 0x6f73, 0x364c, 0x302b, 0x4a2f, 0x6d36, 0x6d37, 0x4e79,
+  0x372f, 0x3f73, 0x6d38, 0x426b, 0x4930, 0x6d39, 0x4676, 0x3f33,
+  0x6d3c, 0x4578, 0x5150, 0x5729, 0x6d3a, 0x6d3b, 0x5162, 0x6d3f,
+  0x6d40, 0x6d44, 0x6d48, 0x6d46, 0x6d4e, 0x5568, 0x6d49, 0x6d47,
+  0x6d3e, 0x4569, 0x4646, 0x4969, 0x5452, 0x6d41, 0x6d42, 0x6d43,
+  0x6d45, 0x4079, 0x3421, 0x3968, 0x6d50, 0x6d51, 0x6d4a, 0x6d4f,
+  0x4e78, 0x4b36, 0x6d4c, 0x6d4d, 0x4f75, 0x6d52, 0x4172, 0x5332,
+  0x6d4b, 0x4837, 0x3c6f, 0x4570, 0x6d56, 0x356f, 0x4235, 0x302d,
+  0x4b69, 0x312e, 0x6d54, 0x4d6b, 0x3562, 0x6d55, 0x6d53, 0x6d57,
+  0x357a, 0x6d58, 0x6d59, 0x6d5c, 0x314c, 0x4576, 0x3c6e, 0x6d5a,
+  0x4c3c, 0x326a, 0x6d5b, 0x446b, 0x3445, 0x3075, 0x6d5f, 0x405a,
+  0x3468, 0x454d, 0x6d5d, 0x3f44, 0x6d5e, 0x4425, 0x6d60, 0x6d61,
+  0x6d63, 0x4157, 0x3b47, 0x3d38, 0x6d62, 0x6d64, 0x6d66, 0x6d65,
+  0x6d67, 0x4a3e, 0x6c6a, 0x4071, 0x4967, 0x6c6b, 0x466e, 0x6c6c,
+  0x466d, 0x6c6d, 0x6c70, 0x5766, 0x6c73, 0x6c71, 0x6c6e, 0x6c6f,
+  0x5723, 0x4971, 0x4b6e, 0x6c74, 0x6c72, 0x4f69, 0x6c76, 0x4631,
+  0x3c40, 0x6c75, 0x353b, 0x3b76, 0x6c77, 0x5977, 0x3d7b, 0x423b,
+  0x6c78, 0x6c79, 0x3823, 0x6c7a, 0x6c7b, 0x6c7c, 0x536d, 0x582e,
+  0x406b, 0x475d, 0x3a4c, 0x5063, 0x4b3d, 0x4d3a, 0x3851, 0x317c,
+  0x476f, 0x5656, 0x3f46, 0x436b, 0x6f75, 0x4358, 0x5762, 0x6f77,
+  0x3353, 0x4758, 0x516d, 0x5648, 0x6f78, 0x6f76, 0x3b7d, 0x3346,
+  0x3d55, 0x5246, 0x3b60, 0x4f21, 0x6f7c, 0x6f7b, 0x6f79, 0x334c,
+  0x4954, 0x4b30, 0x6f7e, 0x305e, 0x5649, 0x6f7d, 0x336d, 0x7655,
+  0x4e48, 0x7022, 0x7021, 0x353e, 0x3c5a, 0x3b7c, 0x3865, 0x4442,
+  0x7023, 0x4b6b, 0x7026, 0x5128, 0x3e3f, 0x476e, 0x7136, 0x7137,
+  0x3f55, 0x3429, 0x7138, 0x4d3b, 0x4754, 0x552d, 0x7139, 0x713a,
+  0x474f, 0x5224, 0x564f, 0x713b, 0x3d51, 0x3430, 0x3e3d, 0x345c,
+  0x4e51, 0x3f5f, 0x713d, 0x3f7a, 0x713c, 0x713f, 0x713e, 0x7140,
+  0x7141, 0x417e, 0x4122, 0x4a7a, 0x553e, 0x3e3a, 0x3e39, 0x5542,
+  0x3f22, 0x4d2f, 0x7135, 0x3d5f, 0x364b, 0x5671, 0x7343, 0x7344,
+  0x384d, 0x7346, 0x7347, 0x304a, 0x7345, 0x7349, 0x4b71, 0x734b,
+  0x5026, 0x314a, 0x7348, 0x734f, 0x3551, 0x7357, 0x7352, 0x7354,
+  0x7353, 0x377b, 0x313f, 0x734e, 0x734a, 0x355a, 0x7350, 0x7351,
+  0x7355, 0x734d, 0x3c63, 0x417d, 0x7356, 0x735a, 0x734c, 0x3548,
+  0x3d6e, 0x735c, 0x3724, 0x3f70, 0x567e, 0x4d32, 0x3470, 0x325f,
+  0x7358, 0x7359, 0x4938, 0x735d, 0x735e, 0x7361, 0x735f, 0x7363,
+  0x7362, 0x735b, 0x3f6a, 0x336f, 0x7360, 0x4729, 0x3c72, 0x736b,
+  0x393f, 0x7364, 0x322d, 0x3b7e, 0x4b63, 0x736d, 0x7369, 0x395c,
+  0x736e, 0x7365, 0x7366, 0x736a, 0x4261, 0x736c, 0x736f, 0x7368,
+  0x3c7d, 0x4f64, 0x7370, 0x7367, 0x7372, 0x572d, 0x462a, 0x7373,
+  0x7371, 0x4228, 0x385d, 0x7375, 0x7374, 0x345b, 0x7376, 0x7377,
+  0x7378, 0x403a, 0x4069, 0x4571, 0x737b, 0x737a, 0x3458, 0x737e,
+  0x7379, 0x737c, 0x737d, 0x7421, 0x7423, 0x3b49, 0x7422, 0x7424,
+  0x323e, 0x7426, 0x7425, 0x3c2e, 0x4357, 0x5961, 0x4060, 0x744c,
+  0x5751, 0x375b, 0x744e, 0x4123, 0x4649, 0x3456, 0x5533, 0x7450,
+  0x744f, 0x7451, 0x4b5a, 0x7452, 0x5441, 0x5660, 0x3760, 0x4138,
+  0x413b, 0x7453, 0x3e2c, 0x3462, 0x7454, 0x7455, 0x3e2b, 0x7456,
+  0x745b, 0x7457, 0x745a, 0x3a7d, 0x7458, 0x7459, 0x3862, 0x4c47,
+  0x745c, 0x325a, 0x4353, 0x5463, 0x3f37, 0x745d, 0x4534, 0x7469,
+  0x4f35, 0x4e49, 0x4b58, 0x4b77, 0x3d74, 0x574f, 0x405b, 0x5075,
+  0x746a, 0x746b, 0x746c, 0x7763, 0x3731, 0x746d, 0x576b, 0x746e,
+  0x6679, 0x3e40, 0x667a, 0x3a6c, 0x667b, 0x4f4b, 0x667c, 0x543c,
+  0x3c36, 0x667d, 0x667e, 0x3c4d, 0x4852, 0x4e33, 0x6721, 0x343f,
+  0x6722, 0x4934, 0x3859, 0x4449, 0x575d, 0x425a, 0x3757, 0x563d,
+  0x4e46, 0x3744, 0x4526, 0x6723, 0x4f5f, 0x6724, 0x6725, 0x6726,
+  0x4137, 0x5769, 0x4970, 0x4f38, 0x562f, 0x5655, 0x6727, 0x306d,
+  0x6728, 0x6729, 0x495c, 0x526f, 0x3e2d, 0x672a, 0x3073, 0x485e,
+  0x3d61, 0x672b, 0x4846, 0x672c, 0x3b66, 0x3878, 0x5124, 0x672d,
+  0x4267, 0x3e78, 0x3d4a, 0x4d33, 0x672e, 0x672f, 0x3e6e, 0x5065,
+  0x4b67, 0x4c50, 0x3c4c, 0x6730, 0x3c28, 0x5077, 0x6731, 0x5078,
+  0x6732, 0x6733, 0x3442, 0x6734, 0x6735, 0x497e, 0x4e2c, 0x4360,
+  0x6737, 0x3141, 0x3371, 0x6738, 0x6739, 0x575b, 0x5540, 0x673a,
+  0x424c, 0x573a, 0x673b, 0x673c, 0x673d, 0x3c6a, 0x4365, 0x4042,
+  0x673e, 0x673f, 0x3c29, 0x6740, 0x6741, 0x6736, 0x3650, 0x6742,
+  0x6743, 0x6744, 0x3b3a, 0x355e, 0x4246, 0x3160, 0x6745, 0x5435,
+  0x6746, 0x383f, 0x6748, 0x6747, 0x376c, 0x6749, 0x3278, 0x674a,
+  0x674b, 0x674c, 0x674d, 0x674e, 0x674f, 0x6750, 0x5327, 0x4b75,
+  0x6751, 0x6752, 0x6753, 0x6754, 0x4949, 0x6755, 0x6756, 0x6757,
+  0x6758, 0x6759, 0x3d49, 0x675a, 0x733e, 0x3857, 0x4831, 0x733f,
+  0x7340, 0x7341, 0x395e, 0x4d78, 0x5868, 0x3a31, 0x425e, 0x6e37,
+  0x3723, 0x6e39, 0x6e38, 0x3055, 0x6e3b, 0x5556, 0x576f, 0x5643,
+  0x6e3d, 0x4a70, 0x6e3c, 0x6e3e, 0x6e40, 0x6e3f, 0x5172, 0x473c,
+  0x4340, 0x3861, 0x4167, 0x7446, 0x505f, 0x7447, 0x4f5b, 0x483a,
+  0x7448, 0x7449, 0x744a, 0x744b, 0x597a, 0x387e, 0x6571, 0x5370,
+  0x7460, 0x4e4c, 0x3361, 0x7134, 0x526e, 0x7461, 0x4f68, 0x7462,
+  0x474c, 0x3554, 0x3464, 0x7464, 0x7463, 0x7465, 0x7466, 0x7467,
+  0x3a32, 0x303f, 0x7468, 0x372d, 0x526d, 0x522b, 0x404f, 0x3f3c,
+  0x6b23, 0x555f, 0x6a48, 0x7173, 0x3678, 0x4b23, 0x444d, 0x7167,
+  0x7168, 0x387b, 0x7169, 0x3a44, 0x5445, 0x3052, 0x716a, 0x716b,
+  0x716c, 0x716d, 0x716e, 0x716f, 0x7171, 0x7170, 0x4555, 0x7172,
+  0x367a, 0x7174, 0x522e, 0x5e47, 0x4b4a, 0x335c, 0x3522, 0x3922,
+  0x4474, 0x7175, 0x7176, 0x4144, 0x417b, 0x5630, 0x7177, 0x7178,
+  0x412a, 0x4638, 0x3e5b, 0x7179, 0x344f, 0x717a, 0x6d32, 0x6d31,
+  0x4b60, 0x525e, 0x4b41, 0x5558, 0x4862, 0x405f, 0x3c21, 0x6b41,
+  0x5024, 0x5662, 0x3647, 0x3858, 0x6b40, 0x384e, 0x6b3f, 0x3326,
+  0x3949, 0x562b, 0x3774, 0x374a, 0x3c67, 0x373e, 0x6b46, 0x6b47,
+  0x3039, 0x3f4f, 0x6b45, 0x537d, 0x6b48, 0x6b49, 0x374e, 0x6b42,
+  0x6b44, 0x4976, 0x5657, 0x554d, 0x5032, 0x6b4f, 0x4e38, 0x6b50,
+  0x3528, 0x3133, 0x6b52, 0x4c25, 0x4556, 0x6b53, 0x6b51, 0x455f,
+  0x6b4e, 0x4a24, 0x6b55, 0x307b, 0x3a7a, 0x5837, 0x7163, 0x6b4a,
+  0x6b4b, 0x6b4c, 0x6b4d, 0x6b56, 0x6640, 0x6b59, 0x3f68, 0x5248,
+  0x6b57, 0x6b5c, 0x386c, 0x6b58, 0x3d3a, 0x5058, 0x3037, 0x6b5d,
+  0x445c, 0x562c, 0x3460, 0x4276, 0x3c39, 0x6b5a, 0x6b5b, 0x5460,
+  0x466a, 0x4454, 0x6b5f, 0x4527, 0x5975, 0x3231, 0x6b64, 0x3d45,
+  0x6b62, 0x6b63, 0x382c, 0x4d51, 0x6b65, 0x6b61, 0x4133, 0x4622,
+  0x4c73, 0x6b66, 0x4030, 0x5238, 0x6b67, 0x382f, 0x382d, 0x6b68,
+  0x473b, 0x4d73, 0x6b6a, 0x6b6b, 0x6b6d, 0x5048, 0x6b72, 0x6b6e,
+  0x6b71, 0x4879, 0x517c, 0x6b6c, 0x6b69, 0x3839, 0x4f59, 0x4465,
+  0x6b6f, 0x6b70, 0x4c5a, 0x4d48, 0x3072, 0x6b76, 0x6b75, 0x3232,
+  0x3860, 0x6b77, 0x316c, 0x4c45, 0x4424, 0x4f25, 0x6b79, 0x6c22,
+  0x4572, 0x6b7a, 0x4945, 0x625f, 0x6b7e, 0x4d4e, 0x6c21, 0x315b,
+  0x5337, 0x525c, 0x6b7d, 0x6b7b, 0x333c, 0x6a30, 0x5754, 0x742b,
+  0x3374, 0x5641, 0x5642, 0x5569, 0x3e4a, 0x7427, 0x5228, 0x7428,
+  0x7429, 0x742a, 0x3e4b, 0x535f, 0x4960, 0x4961, 0x7342, 0x4a66,
+  0x4c72, 0x6236, 0x4b34, 0x4e68, 0x565b, 0x742d, 0x742e, 0x742f,
+  0x7432, 0x3a3d, 0x7433, 0x3063, 0x7430, 0x7431, 0x3d22, 0x3255,
+  0x7436, 0x7437, 0x3666, 0x3230, 0x4f4f, 0x7434, 0x342c, 0x7435,
+  0x7438, 0x7439, 0x4d27, 0x743a, 0x743b, 0x743c, 0x4b52, 0x743d,
+  0x743e, 0x743f, 0x745e, 0x413c, 0x3c68, 0x492b, 0x515e, 0x6575,
+  0x5c33, 0x5255, 0x5c34, 0x302c, 0x5c35, 0x3d5a, 0x5c39, 0x5842,
+  0x5c37, 0x5373, 0x4956, 0x5c3a, 0x5c36, 0x5c3b, 0x4322, 0x5c3c,
+  0x5c45, 0x5c3d, 0x4e5f, 0x5625, 0x5c4f, 0x5c4d, 0x5c52, 0x3d66,
+  0x422b, 0x5c38, 0x5c4b, 0x5c4e, 0x5c3e, 0x3752, 0x3045, 0x5c47,
+  0x503e, 0x5c41, 0x3b28, 0x373c, 0x5c4c, 0x5c46, 0x5c3f, 0x475b,
+  0x513f, 0x5c40, 0x5c4a, 0x5c50, 0x4e2d, 0x5c42, 0x5c43, 0x5c48,
+  0x5c49, 0x3254, 0x5c51, 0x4b55, 0x5437, 0x5c5b, 0x5c5f, 0x4c26,
+  0x5c66, 0x4367, 0x5c5c, 0x3f41, 0x5c59, 0x307a, 0x3936, 0x5c65,
+  0x5c53, 0x5c44, 0x5c56, 0x4874, 0x3f60, 0x493b, 0x313d, 0x5322,
+  0x5c5a, 0x5c55, 0x463b, 0x5c5e, 0x5742, 0x432f, 0x3736, 0x4751,
+  0x4329, 0x5c62, 0x5c58, 0x5c6b, 0x5c54, 0x5c5d, 0x3e25, 0x5c57,
+  0x5c60, 0x5c63, 0x5c64, 0x5c78, 0x5c61, 0x5d22, 0x5c67, 0x3c6b,
+  0x3444, 0x4323, 0x3267, 0x5c7a, 0x5c72, 0x5c6f, 0x5c7c, 0x5c6e,
+  0x5270, 0x3268, 0x4857, 0x4863, 0x5c7b, 0x5c6d, 0x5c77, 0x5c75,
+  0x3e23, 0x5c74, 0x325d, 0x5c73, 0x3c76, 0x5c68, 0x3b44, 0x4073,
+  0x3c54, 0x5c69, 0x5c6a, 0x5c71, 0x5c76, 0x5c79, 0x3534, 0x4859,
+  0x3b67, 0x5c7e, 0x5c7d, 0x532b, 0x5d21, 0x5d23, 0x5d25, 0x5271,
+  0x5d24, 0x5d26, 0x5d27, 0x5229, 0x3a49, 0x5d29, 0x5d36, 0x5d31,
+  0x5d34, 0x5d30, 0x464e, 0x4072, 0x492f, 0x5c6c, 0x5d2e, 0x5d37,
+  0x5c70, 0x5d2f, 0x5d38, 0x5d2c, 0x5d39, 0x5d33, 0x5d2d, 0x442a,
+  0x5d28, 0x4033, 0x412b, 0x5d2a, 0x5d2b, 0x5d32, 0x3b71, 0x5d35,
+  0x5328, 0x5d3a, 0x5d3b, 0x4327, 0x5d52, 0x5d3c, 0x5d51, 0x393d,
+  0x3e55, 0x3e7a, 0x3a4a, 0x5d4a, 0x5d45, 0x5d3f, 0x324b, 0x5d43,
+  0x5d4b, 0x3224, 0x5d55, 0x5d3e, 0x4650, 0x5d50, 0x5d54, 0x4162,
+  0x3746, 0x5d4e, 0x5d4f, 0x5d44, 0x5d3d, 0x5d4d, 0x4c51, 0x5d49,
+  0x5d42, 0x4348, 0x463c, 0x4e2e, 0x5d4c, 0x5d48, 0x5d41, 0x5d46,
+  0x425c, 0x5329, 0x532a, 0x5d53, 0x4f74, 0x4878, 0x5d66, 0x5d47,
+  0x5d60, 0x4264, 0x5d61, 0x5d57, 0x5678, 0x5d59, 0x5d58, 0x3870,
+  0x5d56, 0x464f, 0x362d, 0x5d62, 0x3a79, 0x5461, 0x5d67, 0x3450,
+  0x5d5a, 0x3f7b, 0x5d63, 0x5d5f, 0x5d5d, 0x3559, 0x5d5b, 0x5d5c,
+  0x5d5e, 0x3d2f, 0x5d64, 0x5d65, 0x5d75, 0x4349, 0x4b62, 0x5d72,
+  0x5861, 0x4651, 0x5d74, 0x5574, 0x5d73, 0x5d70, 0x5d6c, 0x5d6f,
+  0x5d68, 0x506e, 0x4858, 0x5d6e, 0x5d69, 0x5d6a, 0x4b72, 0x5d6d,
+  0x314d, 0x4036, 0x3c3b, 0x5d71, 0x5d77, 0x5d76, 0x5d6b, 0x456e,
+  0x5d7b, 0x5e24, 0x5e23, 0x5d78, 0x436f, 0x427b, 0x5561, 0x4e35,
+  0x5d7d, 0x324c, 0x4468, 0x4a5f, 0x473e, 0x5d7a, 0x5d7c, 0x5d7e,
+  0x5e22, 0x302a, 0x314e, 0x5e2c, 0x5e26, 0x3d36, 0x486f, 0x5e21,
+  0x5e25, 0x5e29, 0x5e28, 0x5e27, 0x5e2d, 0x544c, 0x5e33, 0x5e2a,
+  0x5e2e, 0x4059, 0x3121, 0x5e36, 0x5e31, 0x5e32, 0x5126, 0x5e35,
+  0x5e2f, 0x5e30, 0x503d, 0x5e34, 0x4a6d, 0x5e39, 0x5e38, 0x5e37,
+  0x5e3b, 0x3d65, 0x3258, 0x436a, 0x5e3a, 0x453a, 0x5e3c, 0x4c59,
+  0x372a, 0x5465, 0x5e3d, 0x5e3f, 0x4422, 0x5e41, 0x5e3e, 0x5e40,
+  0x553a, 0x5e42, 0x722e, 0x3b22, 0x4232, 0x4530, 0x4247, 0x722f,
+  0x5069, 0x535d, 0x6b3d, 0x3366, 0x7230, 0x7231, 0x4a2d, 0x3a67,
+  0x7233, 0x7235, 0x7234, 0x4b64, 0x4f3a, 0x7232, 0x4a34, 0x524f,
+  0x426c, 0x4e43, 0x7238, 0x3076, 0x7237, 0x723e, 0x324f, 0x5141,
+  0x723a, 0x723c, 0x5469, 0x723b, 0x7236, 0x723f, 0x723d, 0x7239,
+  0x7247, 0x7244, 0x7246, 0x724a, 0x7242, 0x7240, 0x7245, 0x567b,
+  0x7241, 0x4779, 0x495f, 0x7248, 0x3946, 0x3530, 0x7243, 0x7249,
+  0x7250, 0x7256, 0x3b57, 0x7255, 0x4d5c, 0x566b, 0x7252, 0x7254,
+  0x3872, 0x724b, 0x724e, 0x4279, 0x555d, 0x724c, 0x724d, 0x724f,
+  0x7253, 0x7259, 0x533c, 0x366a, 0x4a71, 0x3764, 0x7257, 0x7258,
+  0x725a, 0x725d, 0x725b, 0x725c, 0x5151, 0x7251, 0x4d49, 0x4e4f,
+  0x5629, 0x7263, 0x435b, 0x7260, 0x402f, 0x726c, 0x725e, 0x7261,
+  0x7268, 0x7262, 0x7267, 0x7266, 0x7269, 0x725f, 0x7264, 0x726a,
+  0x532c, 0x7265, 0x3275, 0x7272, 0x502b, 0x7275, 0x3b48, 0x7279,
+  0x7270, 0x7276, 0x7278, 0x727a, 0x7273, 0x7271, 0x3a7b, 0x357b,
+  0x726f, 0x7277, 0x726d, 0x726e, 0x726b, 0x7326, 0x7323, 0x7322,
+  0x7274, 0x485a, 0x727b, 0x7325, 0x4378, 0x727d, 0x7327, 0x7329,
+  0x7324, 0x727c, 0x732b, 0x732a, 0x425d, 0x732e, 0x7330, 0x7321,
+  0x7331, 0x732c, 0x732f, 0x727e, 0x732d, 0x7332, 0x7334, 0x7328,
+  0x7333, 0x7335, 0x5037, 0x7338, 0x5979, 0x7339, 0x7337, 0x4864,
+  0x7336, 0x733a, 0x733b, 0x3440, 0x6e43, 0x733c, 0x733d, 0x512a,
+  0x742c, 0x5046, 0x5050, 0x515c, 0x4f4e, 0x3d56, 0x5143, 0x3a62,
+  0x6169, 0x5242, 0x7142, 0x3239, 0x316d, 0x7143, 0x4940, 0x3344,
+  0x5972, 0x4b25, 0x7144, 0x5654, 0x7145, 0x7440, 0x7146, 0x542c,
+  0x7147, 0x3040, 0x7441, 0x7442, 0x347c, 0x455b, 0x4c3b, 0x5064,
+  0x4d60, 0x7148, 0x5973, 0x313b, 0x4f2e, 0x3824, 0x714a, 0x714b,
+  0x3243, 0x4151, 0x5730, 0x7149, 0x714c, 0x714e, 0x5976, 0x5261,
+  0x5423, 0x7443, 0x4839, 0x7444, 0x714d, 0x714f, 0x3f63, 0x7150,
+  0x7154, 0x7156, 0x7151, 0x4951, 0x4561, 0x4263, 0x397c, 0x7153,
+  0x7155, 0x3953, 0x715b, 0x3a56, 0x307d, 0x7159, 0x7158, 0x7152,
+  0x715a, 0x7157, 0x486c, 0x4d4a, 0x715d, 0x653d, 0x715c, 0x715e,
+  0x715f, 0x4f65, 0x7445, 0x3d73, 0x7160, 0x7161, 0x4e77, 0x522a,
+  0x717b, 0x3832, 0x3c7b, 0x395b, 0x3966, 0x4359, 0x4a53, 0x6a68,
+  0x4040, 0x3e75, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e,
+  0x6a6f, 0x3d47, 0x757b, 0x757d, 0x757e, 0x757c, 0x3d62, 0x7621,
+  0x3425, 0x7622, 0x7623, 0x6c32, 0x5154, 0x596a, 0x7624, 0x6e3a,
+  0x5532, 0x537e, 0x4c5c, 0x4a44, 0x6540, 0x7625, 0x3e2f, 0x4629,
+  0x5a25, 0x3c46, 0x3629, 0x383c, 0x484f, 0x3c25, 0x5a26, 0x5a27,
+  0x4c56, 0x4843, 0x5a28, 0x467d, 0x5135, 0x5269, 0x5136, 0x3c47,
+  0x3d32, 0x3b64, 0x5a29, 0x5a2a, 0x5148, 0x5a2b, 0x506d, 0x366f,
+  0x425b, 0x4b4f, 0x376d, 0x4968, 0x3743, 0x3e77, 0x5624, 0x5a2c,
+  0x5a2d, 0x4640, 0x5767, 0x4a36, 0x5529, 0x4b5f, 0x556f, 0x5a2e,
+  0x565f, 0x344a, 0x5a30, 0x5a2f, 0x526b, 0x5a31, 0x5a32, 0x5a33,
+  0x4a54, 0x5a34, 0x4a2b, 0x5a35, 0x5a36, 0x334f, 0x566f, 0x5a37,
+  0x3b30, 0x352e, 0x5a38, 0x5a39, 0x396e, 0x512f, 0x5268, 0x5a3a,
+  0x3843, 0x4f6a, 0x326f, 0x5a3b, 0x5a3c, 0x3d6b, 0x4e5c, 0x536f,
+  0x5a3d, 0x4e73, 0x5a3e, 0x5355, 0x3b65, 0x5a3f, 0x4b35, 0x4b50,
+  0x5a40, 0x476b, 0x566e, 0x5a41, 0x4535, 0x3641, 0x5a42, 0x374c,
+  0x3f4e, 0x5a43, 0x5a44, 0x4b2d, 0x5a45, 0x3577, 0x5a46, 0x4142,
+  0x573b, 0x5a47, 0x4c38, 0x526a, 0x4431, 0x5a48, 0x357d, 0x3b51,
+  0x5a49, 0x5033, 0x5a4a, 0x5a4b, 0x4e3d, 0x5a4c, 0x5a4d, 0x5a4e,
+  0x3277, 0x5a51, 0x5a4f, 0x5168, 0x5a50, 0x4355, 0x5a52, 0x5a53,
+  0x5a54, 0x5a55, 0x503b, 0x5225, 0x3079, 0x5a56, 0x472b, 0x5a57,
+  0x3d77, 0x4321, 0x5a58, 0x5a59, 0x437d, 0x4c37, 0x5a5a, 0x5a5b,
+  0x403e, 0x4657, 0x5a5c, 0x5a5d, 0x4734, 0x5a5e, 0x5a5f, 0x3948,
+  0x3b6d, 0x3639, 0x7478, 0x7479, 0x4d63, 0x7539, 0x6b60, 0x4f73,
+  0x3b3f, 0x3a40, 0x5425, 0x6159, 0x7574, 0x312a, 0x3272, 0x7575,
+  0x7577, 0x3a51, 0x7576, 0x4332, 0x7579, 0x7578, 0x3134, 0x556a,
+  0x383a, 0x3931, 0x3246, 0x5470, 0x4f4d, 0x305c, 0x554b, 0x3b75,
+  0x564a, 0x3737, 0x4c30, 0x4636, 0x3161, 0x393a, 0x567c, 0x3961,
+  0x3721, 0x3c7a, 0x6a5a, 0x6a5b, 0x4c79, 0x3973, 0x6a5c, 0x347b,
+  0x4333, 0x3751, 0x3a58, 0x6a5d, 0x5474, 0x6a5e, 0x3c56, 0x3b5f,
+  0x6a5f, 0x415e, 0x4238, 0x545f, 0x574a, 0x6a60, 0x6a61, 0x6a64,
+  0x6a62, 0x6a63, 0x495e, 0x3833, 0x3644, 0x6a65, 0x4a6a, 0x494d,
+  0x344d, 0x6259, 0x4562, 0x6a66, 0x4035, 0x5738, 0x6a67, 0x572c,
+  0x487c, 0x5853, 0x584d, 0x545e, 0x5479, 0x4944, 0x532e, 0x3853,
+  0x3360, 0x4962, 0x7476, 0x3a55, 0x7477, 0x575f, 0x7471, 0x3830,
+  0x5554, 0x384f, 0x4670, 0x3343, 0x7472, 0x332c, 0x543d, 0x4777,
+  0x7474, 0x7473, 0x4c4b, 0x4824, 0x7475, 0x5763, 0x453f, 0x7540,
+  0x753b, 0x7543, 0x7542, 0x563a, 0x7541, 0x543e, 0x7544, 0x754c,
+  0x304f, 0x3578, 0x7549, 0x754a, 0x455c, 0x7545, 0x7546, 0x7547,
+  0x754b, 0x3e60, 0x7548, 0x387a, 0x7550, 0x7553, 0x3f67, 0x3972,
+  0x753c, 0x754d, 0x4237, 0x4c78, 0x3c79, 0x754e, 0x754f, 0x7551,
+  0x3665, 0x7552, 0x7555, 0x753d, 0x7554, 0x533b, 0x336c, 0x4c24,
+  0x7556, 0x7557, 0x3e61, 0x7558, 0x4c5f, 0x755b, 0x3248, 0x5759,
+  0x7559, 0x755a, 0x755c, 0x7562, 0x7560, 0x755f, 0x755d, 0x7561,
+  0x755e, 0x7564, 0x7565, 0x4c63, 0x653f, 0x3538, 0x7563, 0x7568,
+  0x4c23, 0x7566, 0x7567, 0x753e, 0x3144, 0x753f, 0x3545, 0x3264,
+  0x756c, 0x7569, 0x3657, 0x756d, 0x756a, 0x756b, 0x345a, 0x546a,
+  0x756e, 0x3379, 0x756f, 0x7571, 0x7570, 0x7572, 0x7573, 0x496d,
+  0x392a, 0x477b, 0x3663, 0x4c49, 0x6a26, 0x3335, 0x547e, 0x396c,
+  0x5079, 0x696d, 0x572a, 0x696e, 0x4256, 0x486d, 0x3a64, 0x696f,
+  0x6970, 0x6971, 0x5661, 0x6972, 0x6973, 0x6975, 0x6974, 0x6976,
+  0x6977, 0x4761, 0x6978, 0x5458, 0x6979, 0x3d4e, 0x697a, 0x697b,
+  0x3d4f, 0x697c, 0x3828, 0x413e, 0x697d, 0x3132, 0x3b54, 0x3975,
+  0x697e, 0x6a21, 0x6a22, 0x6a23, 0x3778, 0x3c2d, 0x4a64, 0x604e,
+  0x542f, 0x4f3d, 0x5537, 0x6a24, 0x555e, 0x6a25, 0x5041, 0x393c,
+  0x3447, 0x3159, 0x4031, 0x3166, 0x3167, 0x3168, 0x333d, 0x4868,
+  0x6541, 0x315f, 0x4149, 0x346f, 0x4728, 0x5358, 0x4679, 0x5138,
+  0x397d, 0x4275, 0x532d, 0x544b, 0x3d7c, 0x6542, 0x3735, 0x6543,
+  0x3b39, 0x5562, 0x3d78, 0x5436, 0x4e25, 0x412c, 0x3359, 0x4c76,
+  0x6546, 0x6544, 0x6548, 0x654a, 0x6547, 0x354f, 0x4648, 0x357c,
+  0x6545, 0x4a76, 0x6549, 0x4354, 0x3145, 0x3c23, 0x5737, 0x4d4b,
+  0x4b4d, 0x4a4a, 0x4c53, 0x654c, 0x654b, 0x4466, 0x5121, 0x5137,
+  0x654d, 0x6550, 0x4d38, 0x5670, 0x654f, 0x355d, 0x4d3e, 0x6551,
+  0x363a, 0x4d28, 0x3964, 0x4a45, 0x3351, 0x4b59, 0x546c, 0x6552,
+  0x376a, 0x654e, 0x6555, 0x347e, 0x6556, 0x6553, 0x6554, 0x525d,
+  0x425f, 0x3146, 0x5362, 0x365d, 0x4b6c, 0x6557, 0x5376, 0x3169,
+  0x3674, 0x655a, 0x6558, 0x6559, 0x3540, 0x5245, 0x655c, 0x655e,
+  0x655d, 0x4732, 0x5223, 0x655b, 0x5462, 0x555a, 0x6560, 0x5771,
+  0x6561, 0x315c, 0x517b, 0x6562, 0x6564, 0x6563, 0x6565, 0x5258,
+  0x354b, 0x675f, 0x5a75, 0x5a78, 0x5a76, 0x5a77, 0x5a7a, 0x504f,
+  0x4447, 0x306e, 0x5030, 0x5a79, 0x534a, 0x3a2a, 0x5b22, 0x4771,
+  0x5a7c, 0x5a7b, 0x495b, 0x5a7d, 0x5b21, 0x575e, 0x5a7e, 0x415a,
+  0x5b25, 0x5374, 0x5b27, 0x5b24, 0x5b28, 0x3d3c, 0x4049, 0x5b23,
+  0x5b26, 0x5623, 0x5b29, 0x5b2d, 0x5b2e, 0x5b2c, 0x3a42, 0x3f24,
+  0x5b2b, 0x5b2a, 0x5447, 0x323f, 0x5b2f, 0x3979, 0x5b30, 0x333b,
+  0x3526, 0x363c, 0x5b31, 0x3675, 0x5b32, 0x3149, 0x5b34, 0x5b33,
+  0x5b35, 0x5b37, 0x5b36, 0x5b38, 0x5b39, 0x5b3a, 0x534f, 0x747a,
+  0x4775, 0x5743, 0x4564, 0x747c, 0x747d, 0x747b, 0x3e46, 0x506f,
+  0x3753, 0x544d, 0x4c2a, 0x7522, 0x7521, 0x3a28, 0x747e, 0x4b56,
+  0x7524, 0x4052, 0x336a, 0x4d2a, 0x7525, 0x7523, 0x3d34, 0x7528,
+  0x7529, 0x3d4d, 0x4338, 0x3f61, 0x4b61, 0x752a, 0x7526, 0x7527,
+  0x4470, 0x752c, 0x343c, 0x576d, 0x3457, 0x752b, 0x752e, 0x752d,
+  0x752f, 0x5051, 0x4351, 0x4829, 0x7530, 0x7531, 0x7532, 0x7533,
+  0x7534, 0x7535, 0x7537, 0x7536, 0x7538, 0x3249, 0x5354, 0x4a4d,
+  0x406f, 0x5658, 0x5230, 0x413f, 0x3d70, 0x382a, 0x3c78, 0x7646,
+  0x7647, 0x7648, 0x7649, 0x764a, 0x764c, 0x764b, 0x7769, 0x764d,
+  0x764e, 0x6e44, 0x6e45, 0x6e46, 0x556b, 0x3624, 0x6e48, 0x6e47,
+  0x6e49, 0x6e4a, 0x4725, 0x6e4b, 0x6e4c, 0x3730, 0x3576, 0x6e4d,
+  0x6e4f, 0x6e4e, 0x3846, 0x6e50, 0x6e51, 0x6e52, 0x365b, 0x332e,
+  0x5653, 0x4446, 0x3135, 0x3856, 0x6e53, 0x6e54, 0x543f, 0x4755,
+  0x3e7b, 0x4e59, 0x3933, 0x6e56, 0x6e55, 0x6e58, 0x6e57, 0x4525,
+  0x6e59, 0x6e5a, 0x472e, 0x6e5b, 0x472f, 0x6e5c, 0x3227, 0x6e5d,
+  0x6e5e, 0x6e5f, 0x6e60, 0x6e61, 0x576a, 0x6e62, 0x6e63, 0x3c58,
+  0x6e64, 0x534b, 0x4c7a, 0x322c, 0x4165, 0x6e65, 0x4726, 0x432d,
+  0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, 0x6e6b, 0x6e6c, 0x6e6d,
+  0x6e6e, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e74, 0x6e73, 0x6e75,
+  0x4d2d, 0x4241, 0x6e76, 0x6e77, 0x6e78, 0x5521, 0x6e79, 0x4f33,
+  0x6e7a, 0x6e7b, 0x6e7c, 0x6e7d, 0x6f21, 0x6e7e, 0x6f22, 0x3875,
+  0x437a, 0x6f23, 0x6f24, 0x3d42, 0x523f, 0x3279, 0x6f25, 0x6f26,
+  0x6f27, 0x5278, 0x6f28, 0x567d, 0x6f29, 0x464c, 0x6f2a, 0x6f2b,
+  0x4134, 0x6f2c, 0x4f7a, 0x4b78, 0x6f2e, 0x6f2d, 0x337a, 0x3978,
+  0x6f2f, 0x6f30, 0x5062, 0x6f31, 0x6f32, 0x3766, 0x503f, 0x6f33,
+  0x6f34, 0x6f35, 0x4871, 0x4c60, 0x6f36, 0x6f37, 0x6f38, 0x6f39,
+  0x6f3a, 0x5560, 0x6f3b, 0x346d, 0x432a, 0x6f3c, 0x6f3d, 0x6f3e,
+  0x6f3f, 0x4e7d, 0x6f40, 0x4260, 0x3438, 0x5736, 0x3d75, 0x4f47,
+  0x6f43, 0x6f41, 0x6f42, 0x6f44, 0x3627, 0x3c7c, 0x3e62, 0x434c,
+  0x6f45, 0x6f46, 0x6f47, 0x6f4f, 0x6f48, 0x6f49, 0x6f4a, 0x4742,
+  0x6f71, 0x364d, 0x6f4b, 0x6f4c, 0x6f4d, 0x3646, 0x433e, 0x6f4e,
+  0x6f50, 0x6f51, 0x6f52, 0x5572, 0x6f53, 0x4477, 0x6f54, 0x4478,
+  0x6f55, 0x6f56, 0x3864, 0x3077, 0x6f57, 0x6f58, 0x6f59, 0x6f5a,
+  0x6f5b, 0x6f5c, 0x6f5d, 0x6f5e, 0x3e35, 0x6f61, 0x6f5f, 0x6f60,
+  0x6f62, 0x6f63, 0x414d, 0x6f64, 0x6f65, 0x6f66, 0x6f67, 0x6f68,
+  0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, 0x4058, 0x6f6d, 0x412d, 0x6f6e,
+  0x6f6f, 0x6f70, 0x4f62, 0x3324, 0x4345, 0x6345, 0x4941, 0x6346,
+  0x3155, 0x4e4a, 0x3433, 0x4872, 0x6347, 0x4f50, 0x6348, 0x3c64,
+  0x6349, 0x634a, 0x4346, 0x5522, 0x4456, 0x396b, 0x4e45, 0x634b,
+  0x4376, 0x634c, 0x3727, 0x3873, 0x3a52, 0x634d, 0x634e, 0x5444,
+  0x634f, 0x6350, 0x514b, 0x6351, 0x6352, 0x6353, 0x6354, 0x5156,
+  0x6355, 0x327b, 0x403b, 0x6356, 0x402b, 0x6357, 0x6358, 0x6359,
+  0x635a, 0x635b, 0x3837, 0x5a62, 0x3653, 0x5a64, 0x5a63, 0x5a66,
+  0x486e, 0x5a65, 0x3740, 0x5174, 0x5275, 0x5573, 0x3d57, 0x5768,
+  0x5a68, 0x5a67, 0x3022, 0x4d53, 0x5a69, 0x383d, 0x3c4a, 0x423d,
+  0x4224, 0x3342, 0x5a6a, 0x422a, 0x4430, 0x3d35, 0x4f5e, 0x5a6b,
+  0x4942, 0x315d, 0x5a6c, 0x3638, 0x543a, 0x337d, 0x5a6d, 0x5449,
+  0x4f55, 0x4563, 0x5a6e, 0x5a6f, 0x5a70, 0x416a, 0x4c55, 0x4f5d,
+  0x5367, 0x4221, 0x5a71, 0x4b65, 0x5a72, 0x4b66, 0x527e, 0x3874,
+  0x5a73, 0x302f, 0x4f36, 0x554f, 0x4b6d, 0x5a74, 0x6344, 0x4125,
+  0x763f, 0x7640, 0x7641, 0x4451, 0x4838, 0x5163, 0x505b, 0x5145,
+  0x3c2f, 0x394d, 0x6f74, 0x3446, 0x533a, 0x7642, 0x337b, 0x7643,
+  0x3571, 0x7645, 0x536a, 0x7627, 0x5129, 0x7629, 0x7628, 0x4163,
+  0x4057, 0x3122, 0x4e6d, 0x5068, 0x762b, 0x4f76, 0x762a, 0x5570,
+  0x762c, 0x4339, 0x3b74, 0x762e, 0x762d, 0x445e, 0x4158, 0x4b2a,
+  0x4f3c, 0x762f, 0x7630, 0x7631, 0x4236, 0x3054, 0x4579, 0x7632,
+  0x4760, 0x7626, 0x3e38, 0x3e32, 0x3565, 0x3747, 0x3f3f, 0x4352,
+  0x4366, 0x584c, 0x386f, 0x3d79, 0x5125, 0x3050, 0x7730, 0x7731,
+  0x502c, 0x3030, 0x7732, 0x7733, 0x7734, 0x474a, 0x3e4f, 0x7737,
+  0x7736, 0x315e, 0x7735, 0x7738, 0x7739, 0x4e24, 0x484d, 0x3a2b,
+  0x6838, 0x6839, 0x683a, 0x3e42, 0x5274, 0x544f, 0x4958, 0x5233,
+  0x3625, 0x476a, 0x717c, 0x4f6e, 0x4b33, 0x506b, 0x676f, 0x4d67,
+  0x394b, 0x3659, 0x717d, 0x3064, 0x4b4c, 0x717e, 0x5424, 0x422d,
+  0x416c, 0x4644, 0x3e31, 0x7221, 0x3c55, 0x7222, 0x7223, 0x7224,
+  0x5243, 0x4635, 0x4d47, 0x7225, 0x5331, 0x3f45, 0x4c62, 0x7226,
+  0x7227, 0x5155, 0x366e, 0x7228, 0x7229, 0x355f, 0x722a, 0x722b,
+  0x327c, 0x722c, 0x722d, 0x4827, 0x3767, 0x6c29, 0x6c2a, 0x6c2b,
+  0x6c2c, 0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x4a33, 0x6238, 0x774f,
+  0x7750, 0x324d, 0x7751, 0x7753, 0x7752, 0x623b, 0x3c22, 0x623c,
+  0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x3739, 0x527b, 0x3d24,
+  0x4a4e, 0x3125, 0x4b47, 0x6242, 0x367c, 0x4844, 0x6243, 0x3d48,
+  0x317d, 0x6244, 0x3676, 0x6245, 0x4459, 0x6246, 0x4f5a, 0x395d,
+  0x6247, 0x4021, 0x6248, 0x3276, 0x6249, 0x4173, 0x624a, 0x624b,
+  0x4278, 0x624c, 0x624d, 0x624e, 0x4a57, 0x5838, 0x5965, 0x4f63,
+  0x7025, 0x5c30, 0x426d, 0x5426, 0x4d54, 0x5131, 0x335b, 0x477d,
+  0x3235, 0x423f, 0x6660, 0x4a3b, 0x6661, 0x6662, 0x3e54, 0x6663,
+  0x5724, 0x4d55, 0x6665, 0x3c5d, 0x6664, 0x6666, 0x6667, 0x426e,
+  0x3d3e, 0x6668, 0x4266, 0x3a27, 0x6669, 0x666a, 0x3352, 0x5169,
+  0x3f25, 0x666b, 0x466f, 0x666c, 0x666d, 0x666e, 0x462d, 0x666f,
+  0x4927, 0x6670, 0x6671, 0x6672, 0x6539, 0x6673, 0x6674, 0x4262,
+  0x6675, 0x6676, 0x5668, 0x6677, 0x6678, 0x3947, 0x773b, 0x773a,
+  0x773e, 0x773c, 0x3a21, 0x773f, 0x7740, 0x7742, 0x7741, 0x7744,
+  0x7743, 0x7745, 0x7746, 0x7747, 0x4b68, 0x385f, 0x7754, 0x7755,
+  0x7756, 0x7758, 0x775a, 0x7757, 0x775b, 0x7759, 0x5757, 0x775c,
+  0x775d, 0x775e, 0x775f, 0x7760, 0x5b4b, 0x582a, 0x6577, 0x396d,
+  0x3f7d, 0x3b6a, 0x7749, 0x4647, 0x7748, 0x774a, 0x774c, 0x774b,
+  0x774d, 0x4e3a, 0x774e, 0x4427, 0x5363, 0x764f, 0x4233, 0x7650,
+  0x7651, 0x7652, 0x7653, 0x7654, 0x7656, 0x312b, 0x7657, 0x7658,
+  0x7659, 0x765a, 0x765b, 0x765c, 0x765d, 0x765e, 0x4f4a, 0x765f,
+  0x7660, 0x7661, 0x7662, 0x7663, 0x7664, 0x4070, 0x7665, 0x7666,
+  0x7667, 0x7668, 0x7669, 0x766a, 0x766b, 0x766c, 0x766d, 0x766e,
+  0x766f, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x3e28, 0x7675,
+  0x7676, 0x7677, 0x7678, 0x487a, 0x7679, 0x767a, 0x767b, 0x767c,
+  0x767d, 0x767e, 0x7721, 0x7722, 0x7723, 0x7724, 0x7725, 0x7726,
+  0x7727, 0x7728, 0x316e, 0x7729, 0x772a, 0x772b, 0x772c, 0x772d,
+  0x415b, 0x772e, 0x772f, 0x4471, 0x702f, 0x3c26, 0x7030, 0x4379,
+  0x4538, 0x513b, 0x7031, 0x7032, 0x7033, 0x7034, 0x7035, 0x513c,
+  0x516c, 0x7037, 0x7036, 0x5427, 0x4d52, 0x7038, 0x703a, 0x7039,
+  0x703b, 0x703c, 0x386b, 0x703d, 0x3a68, 0x703e, 0x703f, 0x3e69,
+  0x7040, 0x366c, 0x7041, 0x7042, 0x7043, 0x7044, 0x4835, 0x7045,
+  0x7046, 0x7047, 0x4574, 0x7048, 0x7049, 0x704a, 0x773d, 0x704b,
+  0x704c, 0x704d, 0x704e, 0x704f, 0x3a57, 0x7050, 0x7051, 0x7052,
+  0x7053, 0x7054, 0x7055, 0x7056, 0x7058, 0x5325, 0x7057, 0x7059,
+  0x753a, 0x4239, 0x7764, 0x7765, 0x7766, 0x7767, 0x7768, 0x4234,
+  0x776a, 0x776b, 0x4273, 0x7470, 0x746f, 0x4269, 0x7761, 0x7762,
+  0x3b46, 0x5964, 0x4a72, 0x4068, 0x7024, 0x3a5a, 0x472d, 0x442c,
+  0x776c, 0x776d, 0x776e, 0x7770, 0x776f, 0x7771, 0x7774, 0x7773,
+  0x7772, 0x7775, 0x7776, 0x6d69, 0x6d6a, 0x6d6b, 0x763c, 0x763d,
+  0x763e, 0x3626, 0x583e, 0x3944, 0x583b, 0x5c31, 0x4a73, 0x7777,
+  0x7778, 0x7779, 0x777b, 0x777a, 0x3147, 0x777c, 0x777d, 0x777e,
+  0x466b, 0x6c34, 0x335d, 0x7633, 0x7634, 0x4164, 0x7635, 0x7636,
+  0x7637, 0x7638, 0x7639, 0x763a, 0x4823, 0x763b, 0x417a, 0x3928,
+  0x6d68, 0x396a, 0x595f, 0x2321, 0x2322, 0x2323, 0x2167, 0x2325,
+  0x2326, 0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x232c, 0x232d,
+  0x232e, 0x232f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335,
+  0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d,
+  0x233e, 0x233f, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345,
+  0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d,
+  0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355,
+  0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d,
+  0x235e, 0x235f, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365,
+  0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d,
+  0x236e, 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375,
+  0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d,
+  0x212b, 0x2169, 0x216a, 0x237e, 0x2324,
+};
+
+static const Summary16 gb2312_uni2indx_page00[70] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0190 }, {    3, 0x0003 },
+  {    5, 0x0000 }, {    5, 0x0080 }, {    6, 0x3703 }, {   13, 0x168c },
+  /* 0x0100 */
+  {   19, 0x0002 }, {   20, 0x0808 }, {   22, 0x0800 }, {   23, 0x0000 },
+  {   23, 0x2000 }, {   24, 0x0000 }, {   24, 0x0800 }, {   25, 0x0000 },
+  {   25, 0x0000 }, {   25, 0x0000 }, {   25, 0x0000 }, {   25, 0x0000 },
+  {   25, 0x4000 }, {   26, 0x1555 }, {   33, 0x0000 }, {   33, 0x0000 },
+  /* 0x0200 */
+  {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 },
+  {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 },
+  {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 },
+  {   33, 0x0280 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  /* 0x0300 */
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 }, {   35, 0x0000 },
+  {   35, 0x0000 }, {   35, 0xfffe }, {   50, 0x03fb }, {   59, 0xfffe },
+  {   74, 0x03fb }, {   83, 0x0000 }, {   83, 0x0000 }, {   83, 0x0000 },
+  /* 0x0400 */
+  {   83, 0x0002 }, {   84, 0xffff }, {  100, 0xffff }, {  116, 0xffff },
+  {  132, 0xffff }, {  148, 0x0002 },
+};
+static const Summary16 gb2312_uni2indx_page20[101] = {
+  /* 0x2000 */
+  {  149, 0x0000 }, {  149, 0x3360 }, {  155, 0x0040 }, {  156, 0x080d },
+  {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 },
+  {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 },
+  {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 }, {  160, 0x0000 },
+  /* 0x2100 */
+  {  160, 0x0008 }, {  161, 0x0040 }, {  162, 0x0000 }, {  162, 0x0000 },
+  {  162, 0x0000 }, {  162, 0x0000 }, {  162, 0x0fff }, {  174, 0x0000 },
+  {  174, 0x0000 }, {  174, 0x000f }, {  178, 0x0000 }, {  178, 0x0000 },
+  {  178, 0x0000 }, {  178, 0x0000 }, {  178, 0x0000 }, {  178, 0x0000 },
+  /* 0x2200 */
+  {  178, 0x8100 }, {  180, 0x6402 }, {  184, 0x4fa1 }, {  192, 0x20f0 },
+  {  197, 0x1100 }, {  199, 0x0000 }, {  199, 0xc033 }, {  205, 0x0000 },
+  {  205, 0x0000 }, {  205, 0x0200 }, {  206, 0x0020 }, {  207, 0x0000 },
+  {  207, 0x0000 }, {  207, 0x0000 }, {  207, 0x0000 }, {  207, 0x0000 },
+  /* 0x2300 */
+  {  207, 0x0000 }, {  207, 0x0004 }, {  208, 0x0000 }, {  208, 0x0000 },
+  {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 },
+  {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 },
+  {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 },
+  /* 0x2400 */
+  {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x0000 },
+  {  208, 0x0000 }, {  208, 0x0000 }, {  208, 0x03ff }, {  218, 0xfff0 },
+  {  230, 0xffff }, {  246, 0x0fff }, {  258, 0x0000 }, {  258, 0x0000 },
+  {  258, 0x0000 }, {  258, 0x0000 }, {  258, 0x0000 }, {  258, 0x0000 },
+  /* 0x2500 */
+  {  258, 0xffff }, {  274, 0xffff }, {  290, 0xffff }, {  306, 0xffff },
+  {  322, 0x0fff }, {  334, 0x0000 }, {  334, 0x0000 }, {  334, 0x0000 },
+  {  334, 0x0000 }, {  334, 0x0000 }, {  334, 0x0003 }, {  336, 0x000c },
+  {  338, 0xc8c0 }, {  343, 0x0000 }, {  343, 0x0000 }, {  343, 0x0000 },
+  /* 0x2600 */
+  {  343, 0x0060 }, {  345, 0x0000 }, {  345, 0x0000 }, {  345, 0x0000 },
+  {  345, 0x0005 },
+};
+static const Summary16 gb2312_uni2indx_page30[35] = {
+  /* 0x3000 */
+  {  347, 0xff2f }, {  360, 0x00fb }, {  367, 0x0000 }, {  367, 0x0000 },
+  {  367, 0xfffe }, {  382, 0xffff }, {  398, 0xffff }, {  414, 0xffff },
+  {  430, 0xffff }, {  446, 0x000f }, {  450, 0xfffe }, {  465, 0xffff },
+  {  481, 0xffff }, {  497, 0xffff }, {  513, 0xffff }, {  529, 0x087f },
+  /* 0x3100 */
+  {  537, 0xffe0 }, {  548, 0xffff }, {  564, 0x03ff }, {  574, 0x0000 },
+  {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x0000 },
+  {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x0000 },
+  {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x0000 },
+  /* 0x3200 */
+  {  574, 0x0000 }, {  574, 0x0000 }, {  574, 0x03ff },
+};
+static const Summary16 gb2312_uni2indx_page4e[1263] = {
+  /* 0x4e00 */
+  {  584, 0x7f8b }, {  595, 0x7f7b }, {  608, 0x3db4 }, {  617, 0xef55 },
+  {  628, 0xfba8 }, {  638, 0xf35d }, {  649, 0x0243 }, {  653, 0x400b },
+  {  657, 0xfb40 }, {  665, 0x8d3e }, {  674, 0x7bf7 }, {  687, 0x8c2c },
+  {  693, 0x6eff }, {  706, 0xe3fa }, {  717, 0x1d3a }, {  725, 0xa8ed },
+  /* 0x4f00 */
+  {  734, 0xe602 }, {  740, 0xcf83 }, {  749, 0x8cf5 }, {  758, 0x3555 },
+  {  766, 0xe048 }, {  771, 0xffab }, {  784, 0x92b9 }, {  792, 0xd859 },
+  {  800, 0xab18 }, {  807, 0x2892 }, {  812, 0xd7e9 }, {  823, 0x8020 },
+  {  825, 0xc438 }, {  831, 0xf583 }, {  840, 0xe74a }, {  849, 0x450a },
+  /* 0x5000 */
+  {  854, 0xb000 }, {  857, 0x9714 }, {  864, 0x7762 }, {  873, 0x5400 },
+  {  876, 0xd188 }, {  882, 0x1420 }, {  885, 0x1020 }, {  887, 0xc8c0 },
+  {  892, 0x2121 }, {  896, 0x0000 }, {  896, 0x13a8 }, {  902, 0x0c04 },
+  {  905, 0x8000 }, {  906, 0x0440 }, {  908, 0x70c0 }, {  913, 0x0828 },
+  /* 0x5100 */
+  {  916, 0x08c0 }, {  919, 0x0004 }, {  920, 0x0002 }, {  921, 0x8000 },
+  {  922, 0x2b7b }, {  932, 0x1472 }, {  938, 0x7924 }, {  945, 0x3bfb },
+  {  957, 0x3327 }, {  965, 0x1ae4 }, {  972, 0x9835 }, {  979, 0x38ef },
+  {  989, 0x9ad1 }, {  997, 0x2802 }, { 1000, 0xa813 }, { 1006, 0xbf69 },
+  /* 0x5200 */
+  { 1017, 0x65cf }, { 1027, 0x2fc6 }, { 1036, 0x6b11 }, { 1043, 0xafc9 },
+  { 1053, 0x340f }, { 1060, 0x5053 }, { 1066, 0x86a2 }, { 1072, 0xa004 },
+  { 1075, 0x0106 }, { 1078, 0xe809 }, { 1084, 0x3f0f }, { 1094, 0xc00e },
+  { 1099, 0x0a88 }, { 1103, 0x8145 }, { 1108, 0x0010 }, { 1109, 0xc601 },
+  /* 0x5300 */
+  { 1114, 0xa161 }, { 1120, 0x26e1 }, { 1127, 0x444b }, { 1133, 0xce00 },
+  { 1138, 0xc7aa }, { 1147, 0xd4ee }, { 1157, 0xcadf }, { 1168, 0x85bb },
+  { 1177, 0x3a74 }, { 1185, 0xa520 }, { 1190, 0x436c }, { 1197, 0x8840 },
+  { 1200, 0x3f06 }, { 1208, 0x8bd2 }, { 1216, 0xff79 }, { 1229, 0x3bef },
+  /* 0x5400 */
+  { 1241, 0xf75a }, { 1252, 0xe8ef }, { 1263, 0xfbcb }, { 1275, 0x5b36 },
+  { 1284, 0x0d49 }, { 1290, 0x1bfd }, { 1301, 0x0154 }, { 1305, 0x39ee },
+  { 1315, 0xd855 }, { 1323, 0x2e75 }, { 1332, 0xbfd8 }, { 1343, 0xa91a },
+  { 1350, 0xf3d7 }, { 1362, 0xf6bf }, { 1375, 0x67e0 }, { 1383, 0xb40c },
+  /* 0x5500 */
+  { 1389, 0x82c2 }, { 1394, 0x0813 }, { 1398, 0xd49d }, { 1407, 0xd08b },
+  { 1414, 0x065a }, { 1420, 0x1061 }, { 1424, 0x74f2 }, { 1433, 0x59e0 },
+  { 1440, 0x8f9f }, { 1451, 0xb312 }, { 1458, 0x0080 }, { 1459, 0x6aaa },
+  { 1467, 0x3230 }, { 1472, 0xb05e }, { 1480, 0x9d7a }, { 1490, 0x60ac },
+  /* 0x5600 */
+  { 1496, 0xd303 }, { 1503, 0xc900 }, { 1507, 0x3098 }, { 1512, 0x8a56 },
+  { 1519, 0x7000 }, { 1522, 0x1390 }, { 1527, 0x1f14 }, { 1534, 0x1842 },
+  { 1538, 0xc060 }, { 1542, 0x0008 }, { 1543, 0x8008 }, { 1545, 0x1080 },
+  { 1547, 0x0400 }, { 1548, 0xec90 }, { 1555, 0x2817 }, { 1561, 0xe633 },
+  /* 0x5700 */
+  { 1570, 0x0758 }, { 1576, 0x9000 }, { 1578, 0xf708 }, { 1586, 0x4e09 },
+  { 1592, 0xf485 }, { 1600, 0xfc83 }, { 1609, 0xaf53 }, { 1619, 0x18c8 },
+  { 1624, 0x187c }, { 1631, 0x080c }, { 1634, 0x6adf }, { 1645, 0x0114 },
+  { 1648, 0xc80c }, { 1653, 0xa734 }, { 1661, 0xa011 }, { 1665, 0x2710 },
+  /* 0x5800 */
+  { 1670, 0x28c5 }, { 1676, 0x4222 }, { 1680, 0x0413 }, { 1684, 0x0021 },
+  { 1686, 0x3010 }, { 1689, 0x4112 }, { 1693, 0x1820 }, { 1696, 0x4000 },
+  { 1697, 0x022b }, { 1702, 0xc60c }, { 1708, 0x0300 }, { 1710, 0x1000 },
+  { 1711, 0x0022 }, { 1713, 0x0022 }, { 1715, 0x5810 }, { 1719, 0x0249 },
+  /* 0x5900 */
+  { 1723, 0xa094 }, { 1728, 0x9670 }, { 1735, 0xeeb0 }, { 1744, 0x1792 },
+  { 1751, 0xcb96 }, { 1760, 0x05f2 }, { 1767, 0x0025 }, { 1770, 0x2358 },
+  { 1776, 0x25de }, { 1785, 0x42cc }, { 1791, 0xcf38 }, { 1800, 0x4a04 },
+  { 1804, 0x0c40 }, { 1807, 0x359f }, { 1817, 0x1128 }, { 1821, 0x8a00 },
+  /* 0x5a00 */
+  { 1824, 0x13fa }, { 1833, 0x910a }, { 1838, 0x0229 }, { 1842, 0x1056 },
+  { 1847, 0x0641 }, { 1851, 0x0420 }, { 1853, 0x0484 }, { 1856, 0x84f0 },
+  { 1862, 0x0000 }, { 1862, 0x0c04 }, { 1865, 0x0400 }, { 1866, 0x412c },
+  { 1871, 0x1206 }, { 1875, 0x1154 }, { 1880, 0x0a4b }, { 1886, 0x0002 },
+  /* 0x5b00 */
+  { 1887, 0x0200 }, { 1888, 0x00c0 }, { 1890, 0x0000 }, { 1890, 0x0094 },
+  { 1893, 0x0001 }, { 1894, 0xbfbb }, { 1907, 0x167c }, { 1915, 0x242b },
+  { 1921, 0x9bbb }, { 1932, 0x7fa8 }, { 1942, 0x0c7f }, { 1951, 0xe379 },
+  { 1961, 0x10f4 }, { 1967, 0xe00d }, { 1973, 0x4132 }, { 1978, 0x9f01 },
+  /* 0x5c00 */
+  { 1985, 0x8652 }, { 1991, 0x3572 }, { 1999, 0x10b4 }, { 2004, 0xff12 },
+  { 2014, 0xcf27 }, { 2024, 0x4223 }, { 2029, 0xc06b }, { 2036, 0x8602 },
+  { 2040, 0x3106 }, { 2045, 0x1fd3 }, { 2055, 0x3a0c }, { 2061, 0xa1aa },
+  { 2068, 0x0812 }, { 2071, 0x0204 }, { 2073, 0x2572 }, { 2080, 0x0801 },
+  /* 0x5d00 */
+  { 2082, 0x40cc }, { 2087, 0x4850 }, { 2091, 0x62d0 }, { 2097, 0x6010 },
+  { 2100, 0x1c80 }, { 2104, 0x2900 }, { 2107, 0x9a00 }, { 2111, 0x0010 },
+  { 2112, 0x0004 }, { 2113, 0x2200 }, { 2115, 0x0000 }, { 2115, 0x0080 },
+  { 2116, 0x2020 }, { 2118, 0x6800 }, { 2121, 0xcbe6 }, { 2131, 0x609e },
+  /* 0x5e00 */
+  { 2138, 0x916e }, { 2146, 0x3f73 }, { 2157, 0x60c0 }, { 2161, 0x3982 },
+  { 2167, 0x1034 }, { 2171, 0x4830 }, { 2175, 0x0006 }, { 2177, 0xbd5c },
+  { 2187, 0x8cd1 }, { 2194, 0xd6fb }, { 2206, 0x20e1 }, { 2211, 0x43e8 },
+  { 2218, 0x0600 }, { 2220, 0x084e }, { 2225, 0x0500 }, { 2227, 0xc4d0 },
+  /* 0x5f00 */
+  { 2233, 0x8d1f }, { 2242, 0x89aa }, { 2249, 0xa6e1 }, { 2257, 0x1602 },
+  { 2261, 0x0001 }, { 2262, 0x21ed }, { 2270, 0x3656 }, { 2278, 0x1a8b },
+  { 2285, 0x1fb7 }, { 2296, 0x13a5 }, { 2303, 0x6502 }, { 2308, 0x30a0 },
+  { 2312, 0xb278 }, { 2320, 0x23c7 }, { 2328, 0x6c93 }, { 2336, 0xe922 },
+  /* 0x6000 */
+  { 2343, 0xe47f }, { 2354, 0x3a74 }, { 2362, 0x8fe3 }, { 2372, 0x9820 },
+  { 2376, 0x280e }, { 2381, 0x2625 }, { 2387, 0xbf9c }, { 2398, 0xbf49 },
+  { 2408, 0x3218 }, { 2413, 0xac54 }, { 2420, 0xb949 }, { 2428, 0x1916 },
+  { 2434, 0x0c60 }, { 2438, 0xb522 }, { 2445, 0xfbc1 }, { 2455, 0x0659 },
+  /* 0x6100 */
+  { 2461, 0xe343 }, { 2469, 0x8420 }, { 2472, 0x08d9 }, { 2478, 0x8000 },
+  { 2479, 0x5500 }, { 2483, 0x2022 }, { 2486, 0x0184 }, { 2489, 0x00a1 },
+  { 2492, 0x4800 }, { 2494, 0x2010 }, { 2496, 0x1380 }, { 2500, 0x4080 },
+  { 2502, 0x0d04 }, { 2506, 0x0016 }, { 2509, 0x0040 }, { 2510, 0x8020 },
+  /* 0x6200 */
+  { 2512, 0xfd40 }, { 2520, 0x8de7 }, { 2530, 0x5436 }, { 2537, 0xe098 },
+  { 2543, 0x7b8b }, { 2553, 0x091e }, { 2559, 0xfec8 }, { 2569, 0xd249 },
+  { 2576, 0x0611 }, { 2580, 0x8dee }, { 2590, 0x1937 }, { 2598, 0xba22 },
+  { 2605, 0x77f4 }, { 2616, 0x9fdd }, { 2628, 0xf3ec }, { 2639, 0xf0da },
+  /* 0x6300 */
+  { 2648, 0x4386 }, { 2654, 0xec42 }, { 2661, 0x8d3f }, { 2671, 0x2604 },
+  { 2675, 0xfa6c }, { 2685, 0xc021 }, { 2689, 0x628e }, { 2696, 0x0cc2 },
+  { 2701, 0xd785 }, { 2710, 0x0145 }, { 2714, 0x77ad }, { 2725, 0x5599 },
+  { 2733, 0xe250 }, { 2739, 0x4045 }, { 2743, 0x260b }, { 2749, 0xa154 },
+  /* 0x6400 */
+  { 2755, 0x9827 }, { 2762, 0x5819 }, { 2768, 0x3443 }, { 2774, 0xa410 },
+  { 2778, 0x05f2 }, { 2785, 0x4114 }, { 2789, 0x2280 }, { 2792, 0x0700 },
+  { 2795, 0x00b4 }, { 2799, 0x4266 }, { 2805, 0x7210 }, { 2810, 0x15a1 },
+  { 2816, 0x6025 }, { 2821, 0x4185 }, { 2826, 0x0054 }, { 2829, 0x0000 },
+  /* 0x6500 */
+  { 2829, 0x0201 }, { 2831, 0x0104 }, { 2833, 0xc820 }, { 2837, 0xcb70 },
+  { 2845, 0x9320 }, { 2850, 0x6a62 }, { 2857, 0x184c }, { 2862, 0x0095 },
+  { 2866, 0x1880 }, { 2869, 0x9a8b }, { 2877, 0xaab2 }, { 2885, 0x3201 },
+  { 2889, 0xd87a }, { 2898, 0x00c4 }, { 2901, 0xf3e5 }, { 2912, 0x04c3 },
+  /* 0x6600 */
+  { 2917, 0xd44d }, { 2925, 0xa238 }, { 2931, 0xa1a1 }, { 2937, 0x5072 },
+  { 2943, 0x980a }, { 2948, 0x84fc }, { 2956, 0xc152 }, { 2962, 0x44d1 },
+  { 2968, 0x1094 }, { 2972, 0x20c2 }, { 2976, 0x4180 }, { 2979, 0x4210 },
+  { 2982, 0x0000 }, { 2982, 0x3a00 }, { 2986, 0x0240 }, { 2988, 0xd29d },
+  /* 0x6700 */
+  { 2997, 0x2f01 }, { 3003, 0xa8b1 }, { 3010, 0xbd40 }, { 3017, 0x2432 },
+  { 3022, 0xd34d }, { 3031, 0xd04b }, { 3038, 0xa723 }, { 3046, 0xd0ad },
+  { 3054, 0x0a92 }, { 3059, 0x75a1 }, { 3067, 0xadac }, { 3076, 0x01e9 },
+  { 3082, 0x801a }, { 3086, 0x771f }, { 3097, 0x9225 }, { 3103, 0xa01b },
+  /* 0x6800 */
+  { 3109, 0xdfa1 }, { 3119, 0x20ca }, { 3124, 0x0602 }, { 3127, 0x738c },
+  { 3135, 0x577f }, { 3147, 0x003b }, { 3152, 0x0bff }, { 3163, 0x00d0 },
+  { 3166, 0x806a }, { 3171, 0x0088 }, { 3173, 0xa1c4 }, { 3179, 0x0029 },
+  { 3182, 0x2a05 }, { 3187, 0x0524 }, { 3191, 0x4009 }, { 3194, 0x1623 },
+  /* 0x6900 */
+  { 3200, 0x6822 }, { 3205, 0x8005 }, { 3208, 0x2011 }, { 3211, 0xa211 },
+  { 3216, 0x0004 }, { 3217, 0x6490 }, { 3222, 0x4849 }, { 3227, 0x1382 },
+  { 3232, 0x23d5 }, { 3240, 0x1930 }, { 3245, 0x2980 }, { 3249, 0x0892 },
+  { 3253, 0x5402 }, { 3257, 0x8811 }, { 3261, 0x2001 }, { 3263, 0xa004 },
+  /* 0x6a00 */
+  { 3266, 0x0400 }, { 3267, 0x8180 }, { 3270, 0x8502 }, { 3274, 0x6022 },
+  { 3278, 0x0090 }, { 3280, 0x0b01 }, { 3284, 0x0022 }, { 3286, 0x1202 },
+  { 3289, 0x4011 }, { 3292, 0x0083 }, { 3295, 0x1a01 }, { 3299, 0x0000 },
+  { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 },
+  /* 0x6b00 */
+  { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x009f }, { 3305, 0x4684 },
+  { 3310, 0x12c8 }, { 3315, 0x0200 }, { 3316, 0x04fc }, { 3323, 0x1a00 },
+  { 3326, 0x2ede }, { 3336, 0x0c4c }, { 3341, 0x0402 }, { 3343, 0x80b8 },
+  { 3348, 0xa826 }, { 3354, 0x0afc }, { 3362, 0x8c02 }, { 3366, 0x2228 },
+  /* 0x6c00 */
+  { 3370, 0xa0e0 }, { 3375, 0x8f7b }, { 3386, 0xc7d6 }, { 3396, 0x2135 },
+  { 3402, 0x06c7 }, { 3409, 0xf8b1 }, { 3418, 0x0713 }, { 3424, 0x6255 },
+  { 3431, 0x936e }, { 3440, 0x8a19 }, { 3446, 0x6efa }, { 3457, 0xfb0e },
+  { 3467, 0x1630 }, { 3472, 0x48f9 }, { 3480, 0xcd2f }, { 3490, 0x7deb },
+  /* 0x6d00 */
+  { 3502, 0x5892 }, { 3508, 0x4e84 }, { 3514, 0x4ca0 }, { 3519, 0x7a2e },
+  { 3528, 0xedea }, { 3539, 0x561e }, { 3547, 0xc649 }, { 3554, 0x1190 },
+  { 3558, 0x5324 }, { 3564, 0xe83a }, { 3572, 0xcfdb }, { 3584, 0x8124 },
+  { 3588, 0x18f1 }, { 3595, 0x6342 }, { 3601, 0x5853 }, { 3608, 0x1a8a },
+  /* 0x6e00 */
+  { 3614, 0x7420 }, { 3619, 0x24d3 }, { 3626, 0xaa3b }, { 3635, 0x0514 },
+  { 3639, 0x6018 }, { 3643, 0x8958 }, { 3649, 0x4800 }, { 3651, 0xc000 },
+  { 3653, 0x8268 }, { 3658, 0x9101 }, { 3662, 0x84a4 }, { 3667, 0x2cd6 },
+  { 3675, 0x8886 }, { 3680, 0xc4ba }, { 3688, 0x0377 }, { 3696, 0x0210 },
+  /* 0x6f00 */
+  { 3698, 0x8244 }, { 3702, 0x0038 }, { 3705, 0xae11 }, { 3712, 0x404a },
+  { 3716, 0x28c0 }, { 3720, 0x5100 }, { 3723, 0x6044 }, { 3727, 0x1514 },
+  { 3732, 0x7310 }, { 3738, 0x1000 }, { 3739, 0x0082 }, { 3741, 0x0248 },
+  { 3744, 0x0205 }, { 3747, 0x4006 }, { 3750, 0xc003 }, { 3754, 0x0000 },
+  /* 0x7000 */
+  { 3754, 0x0000 }, { 3754, 0x0c02 }, { 3757, 0x0008 }, { 3758, 0x0220 },
+  { 3760, 0x9000 }, { 3762, 0x4000 }, { 3763, 0xb800 }, { 3767, 0xd161 },
+  { 3774, 0x4621 }, { 3779, 0x3274 }, { 3786, 0xf800 }, { 3791, 0x3b8a },
+  { 3799, 0x050f }, { 3805, 0x8b00 }, { 3809, 0xbbd0 }, { 3818, 0x2280 },
+  /* 0x7100 */
+  { 3821, 0x0600 }, { 3823, 0x0769 }, { 3830, 0x8040 }, { 3832, 0x0043 },
+  { 3835, 0x5420 }, { 3839, 0x5000 }, { 3841, 0x41d0 }, { 3846, 0x250c },
+  { 3851, 0x8410 }, { 3854, 0x8310 }, { 3858, 0x1101 }, { 3861, 0x0228 },
+  { 3864, 0x4008 }, { 3866, 0x0030 }, { 3868, 0x40a1 }, { 3872, 0x0200 },
+  /* 0x7200 */
+  { 3873, 0x0040 }, { 3874, 0x2000 }, { 3875, 0x1500 }, { 3878, 0xabe3 },
+  { 3888, 0x3180 }, { 3892, 0xaa44 }, { 3898, 0xc2c6 }, { 3905, 0xc624 },
+  { 3911, 0xac13 }, { 3918, 0x8004 }, { 3920, 0xb000 }, { 3923, 0x03d1 },
+  { 3929, 0x611e }, { 3936, 0x4285 }, { 3941, 0xf303 }, { 3949, 0x1d9f },
+  /* 0x7300 */
+  { 3959, 0x440a }, { 3963, 0x78e8 }, { 3971, 0x5e26 }, { 3979, 0xc392 },
+  { 3986, 0x2000 }, { 3987, 0x0085 }, { 3990, 0xb001 }, { 3994, 0x4000 },
+  { 3995, 0x4a90 }, { 4000, 0x8842 }, { 4004, 0xca04 }, { 4009, 0x0c8d },
+  { 4015, 0xa705 }, { 4022, 0x4203 }, { 4026, 0x22a1 }, { 4031, 0x0004 },
+  /* 0x7400 */
+  { 4032, 0x8668 }, { 4038, 0x0c01 }, { 4041, 0x5564 }, { 4048, 0x1079 },
+  { 4054, 0x0002 }, { 4055, 0xdea0 }, { 4063, 0x2000 }, { 4064, 0x40c1 },
+  { 4068, 0x488b }, { 4074, 0x5001 }, { 4077, 0x0380 }, { 4080, 0x0400 },
+  { 4081, 0x0000 }, { 4081, 0x5004 }, { 4084, 0xc05d }, { 4091, 0x80d0 },
+  /* 0x7500 */
+  { 4095, 0xa010 }, { 4098, 0x970a }, { 4105, 0xbb20 }, { 4112, 0x4daf },
+  { 4122, 0xd921 }, { 4129, 0x1e10 }, { 4134, 0x0460 }, { 4137, 0x8314 },
+  { 4142, 0x8848 }, { 4146, 0xa6d6 }, { 4155, 0xd83b }, { 4164, 0x733f },
+  { 4175, 0x27bc }, { 4184, 0x4974 }, { 4191, 0x0ddc }, { 4199, 0x9213 },
+  /* 0x7600 */
+  { 4205, 0x142b }, { 4211, 0x8ba1 }, { 4218, 0x2e75 }, { 4227, 0xd139 },
+  { 4235, 0x3009 }, { 4239, 0x5050 }, { 4243, 0x8808 }, { 4246, 0x6900 },
+  { 4250, 0x49d4 }, { 4257, 0x024a }, { 4261, 0x4010 }, { 4263, 0x8016 },
+  { 4267, 0xe564 }, { 4275, 0x89d7 }, { 4284, 0xc020 }, { 4287, 0x5316 },
+  /* 0x7700 */
+  { 4294, 0x2b92 }, { 4301, 0x8600 }, { 4304, 0xa345 }, { 4311, 0x15e0 },
+  { 4317, 0x008b }, { 4321, 0x0c03 }, { 4325, 0x196e }, { 4333, 0xe200 },
+  { 4337, 0x7031 }, { 4343, 0x8006 }, { 4346, 0x16a5 }, { 4353, 0xa829 },
+  { 4359, 0x2000 }, { 4360, 0x1880 }, { 4363, 0x7aac }, { 4372, 0xe148 },
+  /* 0x7800 */
+  { 4378, 0x3207 }, { 4384, 0xb5d6 }, { 4394, 0x32e8 }, { 4401, 0x5f91 },
+  { 4410, 0x50a1 }, { 4415, 0x20e5 }, { 4421, 0x7c00 }, { 4426, 0x1080 },
+  { 4428, 0x7280 }, { 4433, 0x9d8a }, { 4441, 0x00aa }, { 4445, 0x421f },
+  { 4452, 0x0e22 }, { 4457, 0x0231 }, { 4461, 0x1100 }, { 4463, 0x0494 },
+  /* 0x7900 */
+  { 4467, 0x0022 }, { 4469, 0x4008 }, { 4471, 0x0010 }, { 4472, 0x5c10 },
+  { 4477, 0x0343 }, { 4482, 0xfcc8 }, { 4491, 0xa1a5 }, { 4498, 0x0580 },
+  { 4501, 0x8433 }, { 4507, 0x0400 }, { 4508, 0x0080 }, { 4509, 0x6e08 },
+  { 4515, 0x2a4b }, { 4522, 0x8126 }, { 4527, 0xaad8 }, { 4535, 0x2901 },
+  /* 0x7a00 */
+  { 4539, 0x684d }, { 4546, 0x4490 }, { 4550, 0x0009 }, { 4552, 0xba88 },
+  { 4559, 0x0040 }, { 4560, 0x0082 }, { 4562, 0x0000 }, { 4562, 0x87d1 },
+  { 4570, 0x215b }, { 4577, 0xb1e6 }, { 4586, 0x3161 }, { 4592, 0x8008 },
+  { 4594, 0x0800 }, { 4595, 0xc240 }, { 4599, 0xa069 }, { 4605, 0xa600 },
+  /* 0x7b00 */
+  { 4609, 0x8d58 }, { 4616, 0x4a32 }, { 4622, 0x5d71 }, { 4631, 0x550a },
+  { 4637, 0x9aa0 }, { 4643, 0x2d57 }, { 4652, 0x4005 }, { 4655, 0x4aa6 },
+  { 4662, 0x2021 }, { 4665, 0x30b1 }, { 4671, 0x3fc6 }, { 4681, 0x0112 },
+  { 4684, 0x10c2 }, { 4688, 0x260a }, { 4693, 0x4462 }, { 4698, 0x5082 },
+  /* 0x7c00 */
+  { 4702, 0x9880 }, { 4706, 0x8040 }, { 4708, 0x04c0 }, { 4711, 0x8100 },
+  { 4713, 0x2003 }, { 4716, 0x0000 }, { 4716, 0x0000 }, { 4716, 0x3818 },
+  { 4721, 0x0200 }, { 4722, 0xf1a6 }, { 4731, 0x4434 }, { 4736, 0x720e },
+  { 4743, 0x35a2 }, { 4750, 0x92e0 }, { 4756, 0x8101 }, { 4759, 0x0900 },
+  /* 0x7d00 */
+  { 4761, 0x0400 }, { 4762, 0x0000 }, { 4762, 0x8885 }, { 4767, 0x0000 },
+  { 4767, 0x0000 }, { 4767, 0x0000 }, { 4767, 0x4000 }, { 4768, 0x0080 },
+  { 4769, 0x0000 }, { 4769, 0x0000 }, { 4769, 0x4040 }, { 4771, 0x0000 },
+  { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 },
+  /* 0x7e00 */
+  { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0800 },
+  { 4772, 0x0082 }, { 4774, 0x0000 }, { 4774, 0x0000 }, { 4774, 0x0000 },
+  { 4774, 0x0004 }, { 4775, 0x8800 }, { 4777, 0xbfff }, { 4792, 0xe7ef },
+  { 4805, 0xffff }, { 4821, 0xffbf }, { 4836, 0xefef }, { 4850, 0xfdff },
+  /* 0x7f00 */
+  { 4865, 0xfbff }, { 4880, 0xbffe }, { 4894, 0xffff }, { 4910, 0x057f },
+  { 4919, 0x0034 }, { 4922, 0x85b3 }, { 4930, 0x4706 }, { 4936, 0x4216 },
+  { 4941, 0x5402 }, { 4945, 0xe410 }, { 4950, 0x8092 }, { 4954, 0xb305 },
+  { 4961, 0x5422 }, { 4966, 0x8130 }, { 4970, 0x4263 }, { 4976, 0x180b },
+  /* 0x8000 */
+  { 4981, 0x387b }, { 4990, 0x13f5 }, { 4999, 0x07e5 }, { 5007, 0xa9ea },
+  { 5016, 0x3c4c }, { 5023, 0x0514 }, { 5027, 0x0600 }, { 5029, 0x8002 },
+  { 5031, 0x1ad9 }, { 5039, 0xbd48 }, { 5047, 0xee37 }, { 5058, 0xf496 },
+  { 5067, 0x705f }, { 5076, 0x7ec0 }, { 5084, 0xbfb2 }, { 5095, 0x355f },
+  /* 0x8100 */
+  { 5105, 0xe644 }, { 5112, 0x455f }, { 5121, 0x9000 }, { 5123, 0x4146 },
+  { 5128, 0x1d40 }, { 5133, 0x063b }, { 5140, 0x62a1 }, { 5146, 0xfe13 },
+  { 5156, 0x8505 }, { 5161, 0x3902 }, { 5166, 0x0548 }, { 5170, 0x0c08 },
+  { 5173, 0x144f }, { 5180, 0x0000 }, { 5180, 0x3488 }, { 5185, 0x5818 },
+  /* 0x8200 */
+  { 5190, 0x3077 }, { 5198, 0xd815 }, { 5205, 0xbd0e }, { 5214, 0x4bfb },
+  { 5225, 0x8a90 }, { 5230, 0x8500 }, { 5233, 0xc100 }, { 5236, 0xe61d },
+  { 5245, 0xed14 }, { 5253, 0xb386 }, { 5261, 0xff72 }, { 5273, 0x639b },
+  { 5282, 0xfd92 }, { 5292, 0xd9be }, { 5303, 0x887b }, { 5311, 0x0a92 },
+  /* 0x8300 */
+  { 5316, 0xd3fe }, { 5328, 0x1cb2 }, { 5335, 0xb980 }, { 5341, 0x177a },
+  { 5350, 0x82c9 }, { 5356, 0xdc17 }, { 5365, 0xfffb }, { 5380, 0x3980 },
+  { 5385, 0x4260 }, { 5389, 0x590c }, { 5395, 0x0f01 }, { 5400, 0x37df },
+  { 5412, 0x94a3 }, { 5419, 0xb150 }, { 5425, 0x0623 }, { 5430, 0x2307 },
+  /* 0x8400 */
+  { 5436, 0xf85a }, { 5445, 0x3102 }, { 5449, 0x01f0 }, { 5454, 0x3102 },
+  { 5458, 0x0040 }, { 5459, 0x1e82 }, { 5465, 0x3a0a }, { 5471, 0x056a },
+  { 5477, 0x5b84 }, { 5484, 0x1280 }, { 5487, 0x8002 }, { 5489, 0xa714 },
+  { 5496, 0x2612 }, { 5501, 0xa04b }, { 5507, 0x1069 }, { 5512, 0x9001 },
+  /* 0x8500 */
+  { 5515, 0x1000 }, { 5516, 0x848a }, { 5521, 0x1802 }, { 5524, 0x3f80 },
+  { 5531, 0x0708 }, { 5535, 0x4240 }, { 5538, 0x0110 }, { 5540, 0x4e14 },
+  { 5546, 0x80b0 }, { 5550, 0x1800 }, { 5552, 0xc510 }, { 5557, 0x0281 },
+  { 5560, 0x8202 }, { 5563, 0x1029 }, { 5567, 0x0210 }, { 5569, 0x8800 },
+  /* 0x8600 */
+  { 5571, 0x0020 }, { 5572, 0x0042 }, { 5574, 0x0280 }, { 5576, 0x1100 },
+  { 5578, 0xe000 }, { 5581, 0x4413 }, { 5586, 0x5804 }, { 5590, 0xfe02 },
+  { 5598, 0x3c07 }, { 5605, 0x3028 }, { 5609, 0x9798 }, { 5617, 0x0473 },
+  { 5623, 0xced1 }, { 5632, 0xcb13 }, { 5640, 0x6210 }, { 5644, 0x431f },
+  /* 0x8700 */
+  { 5652, 0x278d }, { 5660, 0x55ac }, { 5668, 0x422e }, { 5674, 0xc892 },
+  { 5680, 0x5380 }, { 5685, 0x0288 }, { 5688, 0x4039 }, { 5693, 0x7851 },
+  { 5700, 0x292c }, { 5706, 0x8088 }, { 5709, 0xb900 }, { 5714, 0x2428 },
+  { 5718, 0x0c41 }, { 5722, 0x080e }, { 5726, 0x4421 }, { 5730, 0x4200 },
+  /* 0x8800 */
+  { 5732, 0x0408 }, { 5734, 0x0868 }, { 5738, 0x0006 }, { 5740, 0x1204 },
+  { 5743, 0x3031 }, { 5748, 0x0290 }, { 5751, 0x5b3e }, { 5761, 0xe085 },
+  { 5767, 0x2936 }, { 5774, 0x1044 }, { 5777, 0x2814 }, { 5781, 0x1082 },
+  { 5784, 0x4266 }, { 5790, 0x8334 }, { 5796, 0x013c }, { 5801, 0x531b },
+  /* 0x8900 */
+  { 5809, 0x0404 }, { 5811, 0x0e0d }, { 5817, 0x0c22 }, { 5821, 0x0051 },
+  { 5824, 0x0012 }, { 5826, 0xc000 }, { 5828, 0x0040 }, { 5829, 0x8800 },
+  { 5831, 0x004a }, { 5834, 0x0000 }, { 5834, 0x0000 }, { 5834, 0x0000 },
+  { 5834, 0xdff6 }, { 5847, 0x5447 }, { 5854, 0x8868 }, { 5859, 0x0008 },
+  /* 0x8a00 */
+  { 5860, 0x0081 }, { 5862, 0x0000 }, { 5862, 0x0000 }, { 5862, 0x4000 },
+  { 5863, 0x0100 }, { 5864, 0x0000 }, { 5864, 0x0000 }, { 5864, 0x0200 },
+  { 5865, 0x0600 }, { 5867, 0x0008 }, { 5868, 0x0000 }, { 5868, 0x0000 },
+  { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 },
+  /* 0x8b00 */
+  { 5868, 0x0080 }, { 5869, 0x0000 }, { 5869, 0x0040 }, { 5870, 0x0000 },
+  { 5870, 0x0000 }, { 5870, 0x0000 }, { 5870, 0x1040 }, { 5872, 0x0000 },
+  { 5872, 0x0000 }, { 5872, 0x0000 }, { 5872, 0xefff }, { 5887, 0xf7fd },
+  { 5901, 0xff7f }, { 5916, 0xfffe }, { 5931, 0xfbff }, { 5946, 0xffff },
+  /* 0x8c00 */
+  { 5962, 0xfdff }, { 5977, 0xbfff }, { 5992, 0xffff }, { 6008, 0x00ff },
+  { 6016, 0x12c2 }, { 6021, 0x0420 }, { 6023, 0x0c06 }, { 6027, 0x0708 },
+  { 6031, 0x1624 }, { 6036, 0x0110 }, { 6038, 0x0000 }, { 6038, 0x0000 },
+  { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 },
+  /* 0x8d00 */
+  { 6038, 0x0000 }, { 6038, 0xe000 }, { 6041, 0xfffe }, { 6056, 0xffff },
+  { 6072, 0xffff }, { 6088, 0x7f79 }, { 6100, 0x28df }, { 6109, 0x00f9 },
+  { 6115, 0x0c32 }, { 6120, 0x8012 }, { 6123, 0x0008 }, { 6124, 0xd53a },
+  { 6133, 0xd858 }, { 6140, 0xecc2 }, { 6148, 0x9d18 }, { 6155, 0x2fa8 },
+  /* 0x8e00 */
+  { 6163, 0x9620 }, { 6168, 0xe010 }, { 6172, 0xd60c }, { 6179, 0x2622 },
+  { 6184, 0x0f97 }, { 6193, 0x0206 }, { 6196, 0xb240 }, { 6201, 0x9055 },
+  { 6207, 0x80a2 }, { 6211, 0x5011 }, { 6215, 0x9800 }, { 6218, 0x0404 },
+  { 6220, 0x4000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 },
+  /* 0x8f00 */
+  { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 },
+  { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0xfbc0 }, { 6230, 0xffff },
+  { 6246, 0xeffe }, { 6260, 0xdffb }, { 6274, 0x0b08 }, { 6278, 0x6243 },
+  { 6284, 0x41b6 }, { 6291, 0xfb3b }, { 6303, 0x6f74 }, { 6313, 0x2389 },
+  /* 0x9000 */
+  { 6319, 0xae7f }, { 6331, 0xecd7 }, { 6342, 0xe047 }, { 6349, 0x5960 },
+  { 6355, 0xa096 }, { 6361, 0x098f }, { 6368, 0x612c }, { 6374, 0xa030 },
+  { 6378, 0x090d }, { 6383, 0x2aaa }, { 6390, 0xd44e }, { 6398, 0x4f7b },
+  { 6409, 0xc4b2 }, { 6416, 0x388b }, { 6423, 0xa9c6 }, { 6431, 0x6110 },
+  /* 0x9100 */
+  { 6435, 0x0014 }, { 6437, 0x4200 }, { 6439, 0x800c }, { 6442, 0x0202 },
+  { 6444, 0xfe48 }, { 6453, 0x6485 }, { 6459, 0xd63e }, { 6469, 0xe3f7 },
+  { 6481, 0x3aa0 }, { 6487, 0x0c07 }, { 6492, 0xe40c }, { 6498, 0x0430 },
+  { 6501, 0xf680 }, { 6508, 0x1002 }, { 6510, 0x0000 }, { 6510, 0x0000 },
+  /* 0x9200 */
+  { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 },
+  { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0010 },
+  { 6511, 0x4000 }, { 6512, 0x0000 }, { 6512, 0x4000 }, { 6513, 0x0000 },
+  { 6513, 0x0100 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 },
+  /* 0x9300 */
+  { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x4000 },
+  { 6515, 0x0000 }, { 6515, 0x0000 }, { 6515, 0x0400 }, { 6516, 0x0000 },
+  { 6516, 0x8000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, { 6517, 0x0000 },
+  { 6517, 0x0400 }, { 6518, 0x0040 }, { 6519, 0x0000 }, { 6519, 0x0000 },
+  /* 0x9400 */
+  { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x4000 },
+  { 6520, 0x0000 }, { 6520, 0x0000 }, { 6520, 0x0800 }, { 6521, 0x0000 },
+  { 6521, 0xffe0 }, { 6532, 0xfebd }, { 6545, 0xffff }, { 6561, 0xffff },
+  { 6577, 0x7f7f }, { 6591, 0xfbe7 }, { 6604, 0xffbf }, { 6619, 0xf7ff },
+  /* 0x9500 */
+  { 6634, 0xffff }, { 6650, 0xefff }, { 6665, 0xff7e }, { 6679, 0xdff7 },
+  { 6693, 0xf6f7 }, { 6706, 0xfbdf }, { 6720, 0xbffe }, { 6734, 0x804f },
+  { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 },
+  { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0xef00 }, { 6747, 0x7fff },
+  /* 0x9600 */
+  { 6762, 0xff7f }, { 6777, 0xb6f7 }, { 6789, 0x4406 }, { 6793, 0xb87e },
+  { 6803, 0x3bf5 }, { 6814, 0x8831 }, { 6819, 0x1796 }, { 6827, 0x00f4 },
+  { 6832, 0xa960 }, { 6838, 0x1391 }, { 6844, 0x0080 }, { 6845, 0x7249 },
+  { 6852, 0xf2f3 }, { 6863, 0x0024 }, { 6865, 0x8701 }, { 6870, 0x42c8 },
+  /* 0x9700 */
+  { 6875, 0xe3d3 }, { 6885, 0x5048 }, { 6889, 0x2400 }, { 6891, 0x4305 },
+  { 6896, 0x0000 }, { 6896, 0x4a4c }, { 6902, 0x0227 }, { 6907, 0x1058 },
+  { 6911, 0x2820 }, { 6914, 0x0116 }, { 6918, 0xa809 }, { 6923, 0x0014 },
+  { 6925, 0x0000 }, { 6925, 0x0000 }, { 6925, 0x3ec0 }, { 6932, 0x0068 },
+  /* 0x9800 */
+  { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 },
+  { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0xffe0 },
+  { 6946, 0xb7ff }, { 6960, 0xfddb }, { 6973, 0x00f7 }, { 6980, 0x0000 },
+  { 6980, 0x4000 }, { 6981, 0xc72e }, { 6990, 0x0180 }, { 6992, 0x0000 },
+  /* 0x9900 */
+  { 6992, 0x2000 }, { 6993, 0x0001 }, { 6994, 0x4000 }, { 6995, 0x0000 },
+  { 6995, 0x0000 }, { 6995, 0x0030 }, { 6997, 0xffa8 }, { 7008, 0xb4f7 },
+  { 7019, 0xadf3 }, { 7030, 0x03ff }, { 7040, 0x0120 }, { 7042, 0x0000 },
+  { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 },
+  /* 0x9a00 */
+  { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 },
+  { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0xf000 }, { 7046, 0xfffb },
+  { 7061, 0x9df7 }, { 7073, 0xfdcf }, { 7086, 0x01bf }, { 7094, 0x15c3 },
+  { 7101, 0x1827 }, { 7107, 0x810a }, { 7111, 0xa842 }, { 7116, 0x0a00 },
+  /* 0x9b00 */
+  { 7118, 0x8108 }, { 7121, 0x8008 }, { 7123, 0x8008 }, { 7125, 0x1804 },
+  { 7128, 0xa3be }, { 7138, 0x0012 }, { 7140, 0x0000 }, { 7140, 0x0000 },
+  { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
+  { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
+  /* 0x9c00 */
+  { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
+  { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x9000 },
+  { 7142, 0x69e6 }, { 7151, 0xdc37 }, { 7161, 0x6bff }, { 7174, 0x3dff },
+  { 7187, 0xfcf8 }, { 7198, 0xf3f9 }, { 7210, 0x0004 },
+};
+static const Summary16 gb2312_uni2indx_page9e[27] = {
+  /* 0x9e00 */
+  { 7211, 0x0000 }, { 7211, 0x8000 }, { 7212, 0xbf6f }, { 7225, 0xe7ee },
+  { 7237, 0xdffe }, { 7251, 0x5da2 }, { 7259, 0x3fd8 }, { 7269, 0xc00b },
+  { 7274, 0x0984 }, { 7278, 0xa00c }, { 7282, 0x0040 }, { 7283, 0x6910 },
+  { 7288, 0xe210 }, { 7293, 0xb912 }, { 7300, 0x86a5 }, { 7307, 0x5a00 },
+  /* 0x9f00 */
+  { 7311, 0x6800 }, { 7314, 0x0289 }, { 7318, 0x9005 }, { 7322, 0x6a80 },
+  { 7327, 0x0010 }, { 7328, 0x0003 }, { 7330, 0x0000 }, { 7330, 0x8000 },
+  { 7331, 0x1ff9 }, { 7342, 0x8e00 }, { 7346, 0x0001 },
+};
+static const Summary16 gb2312_uni2indx_pageff[15] = {
+  /* 0xff00 */
+  { 7347, 0xfffe }, { 7362, 0xffff }, { 7378, 0xffff }, { 7394, 0xffff },
+  { 7410, 0xffff }, { 7426, 0x7fff }, { 7441, 0x0000 }, { 7441, 0x0000 },
+  { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 },
+  { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b },
+};
+
+static int
+gb2312_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x0460)
+      summary = &gb2312_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x2000 && wc < 0x2650)
+      summary = &gb2312_uni2indx_page20[(wc>>4)-0x200];
+    else if (wc >= 0x3000 && wc < 0x3230)
+      summary = &gb2312_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x4e00 && wc < 0x9cf0)
+      summary = &gb2312_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0x9e00 && wc < 0x9fb0)
+      summary = &gb2312_uni2indx_page9e[(wc>>4)-0x9e0];
+    else if (wc >= 0xff00 && wc < 0xfff0)
+      summary = &gb2312_uni2indx_pageff[(wc>>4)-0xff0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = gb2312_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/gbk.h b/libiconv/gbk.h
new file mode 100644 (file)
index 0000000..23a48c6
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ * GBK
+ */
+
+/*
+ * GBK, as described in Ken Lunde's book, is an extension of GB 2312-1980
+ * (shifted by adding 0x8080 to the range 0xA1A1..0xFEFE, as used in EUC-CN).
+ * It adds the following ranges:
+ *
+ * (part of GBK/1)  0xA2A1-0xA2AA  Small Roman numerals
+ * GBK/3   0x{81-A0}{40-7E,80-FE}  6080 new characters, all in Unicode
+ * GBK/4   0x{AA-FE}{40-7E,80-A0}  8160 new characters, 8080 in Unicode
+ * GBK/5   0x{A8-A9}{40-7E,80-A0}  166 new characters, 153 in Unicode
+ */
+
+/*
+ * CP936 is nearly identical to GBK. It differs as follows:
+ *
+ * 1. Some characters in the GB2312 range are defined differently:
+ *
+ *     code    GB2312                         CP936.TXT
+ *    0xA1A4   0x30FB # KATAKANA MIDDLE DOT   0x00B7 # MIDDLE DOT
+ *    0xA1AA   0x2015 # HORIZONTAL BAR        0x2014 # EM DASH
+ *
+ * 2. 19 characters added in the range 0xA6E0-0xA6F5.
+ *
+ * 3. 4 characters added in the range 0xA8BB-0xA8C0.
+ */
+
+/*
+ * Since all three tables I have looked at
+ *   - the CP936 table by Microsoft, found on ftp.unicode.org,
+ *   - the GBK table by Sun, investigated on a Solaris 2.7 machine,
+ *   - the GBK tables by CWEX, found in the Big5+ package,
+ * all include these CP936 extensions (the CWEX tables have additional
+ * differences), I conclude that either Ken Lunde has overlooked some of
+ * the differences between GB2312 and GBK, or he is right but the major
+ * vendors don't care about it. In either case, CP936 is the de facto
+ * standard under the name "GBK", and we should better support it.
+ *
+ * So in what follows, when we write "GBK" we always mean "CP936".
+ */
+
+#include "gbkext1.h"
+#include "gbkext2.h"
+#include "gbkext_inv.h"
+#include "cp936ext.h"
+
+static int
+gbk_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+
+  if (c >= 0x81 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    if (c >= 0xa1 && c <= 0xf7) {
+      unsigned char c2 = s[1];
+      if (c == 0xa1) {
+        if (c2 == 0xa4) {
+          *pwc = 0x00b7;
+          return 2;
+        }
+        if (c2 == 0xaa) {
+          *pwc = 0x2014;
+          return 2;
+        }
+      }
+      if (c2 >= 0xa1 && c2 < 0xff) {
+        unsigned char buf[2];
+        int ret;
+        buf[0] = c-0x80; buf[1] = c2-0x80;
+        ret = gb2312_mbtowc(conv,pwc,buf,2);
+        if (ret != RET_ILSEQ)
+          return ret;
+        buf[0] = c; buf[1] = c2;
+        ret = cp936ext_mbtowc(conv,pwc,buf,2);
+        if (ret != RET_ILSEQ)
+          return ret;
+      }
+    }
+    if (c >= 0x81 && c <= 0xa0)
+      return gbkext1_mbtowc(conv,pwc,s,2);
+    if (c >= 0xa8 && c <= 0xfe)
+      return gbkext2_mbtowc(conv,pwc,s,2);
+    if (c == 0xa2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0xa1 && c2 <= 0xaa) {
+        *pwc = 0x2170+(c2-0xa1);
+        return 2;
+      }
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+gbk_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  if (wc != 0x30fb && wc != 0x2015) {
+    ret = gb2312_wctomb(conv,buf,wc,2);
+    if (ret != RET_ILSEQ) {
+      if (ret != 2) abort();
+      if (n < 2)
+        return RET_TOOSMALL;
+      r[0] = buf[0]+0x80;
+      r[1] = buf[1]+0x80;
+      return 2;
+    }
+  }
+  ret = gbkext_inv_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+  if (wc >= 0x2170 && wc <= 0x2179) {
+    r[0] = 0xa2;
+    r[1] = 0xa1 + (wc-0x2170);
+    return 2;
+  }
+  ret = cp936ext_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+  if (wc == 0x00b7) {
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = 0xa1;
+    r[1] = 0xa4;
+    return 2;
+  }
+  if (wc == 0x2014) {
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = 0xa1;
+    r[1] = 0xaa;
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/gbkext1.h b/libiconv/gbkext1.h
new file mode 100644 (file)
index 0000000..04ee88c
--- /dev/null
@@ -0,0 +1,834 @@
+
+/*
+ * GBK/3 extensions
+ */
+
+static const unsigned short gbkext1_2uni_page81[6080] = {
+  /* 0x81 */
+  0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f,
+  0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31,
+  0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44,
+  0x4e46, 0x4e4a, 0x4e51, 0x4e55, 0x4e57, 0x4e5a, 0x4e5b, 0x4e62,
+  0x4e63, 0x4e64, 0x4e65, 0x4e67, 0x4e68, 0x4e6a, 0x4e6b, 0x4e6c,
+  0x4e6d, 0x4e6e, 0x4e6f, 0x4e72, 0x4e74, 0x4e75, 0x4e76, 0x4e77,
+  0x4e78, 0x4e79, 0x4e7a, 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7f, 0x4e80,
+  0x4e81, 0x4e82, 0x4e83, 0x4e84, 0x4e85, 0x4e87, 0x4e8a, 0x4e90,
+  0x4e96, 0x4e97, 0x4e99, 0x4e9c, 0x4e9d, 0x4e9e, 0x4ea3, 0x4eaa,
+  0x4eaf, 0x4eb0, 0x4eb1, 0x4eb4, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9,
+  0x4ebc, 0x4ebd, 0x4ebe, 0x4ec8, 0x4ecc, 0x4ecf, 0x4ed0, 0x4ed2,
+  0x4eda, 0x4edb, 0x4edc, 0x4ee0, 0x4ee2, 0x4ee6, 0x4ee7, 0x4ee9,
+  0x4eed, 0x4eee, 0x4eef, 0x4ef1, 0x4ef4, 0x4ef8, 0x4ef9, 0x4efa,
+  0x4efc, 0x4efe, 0x4f00, 0x4f02, 0x4f03, 0x4f04, 0x4f05, 0x4f06,
+  0x4f07, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, 0x4f13, 0x4f14, 0x4f15,
+  0x4f16, 0x4f1c, 0x4f1d, 0x4f21, 0x4f23, 0x4f28, 0x4f29, 0x4f2c,
+  0x4f2d, 0x4f2e, 0x4f31, 0x4f33, 0x4f35, 0x4f37, 0x4f39, 0x4f3b,
+  0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f44, 0x4f45, 0x4f47,
+  0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56,
+  0x4f61, 0x4f62, 0x4f66, 0x4f68, 0x4f6a, 0x4f6b, 0x4f6d, 0x4f6e,
+  0x4f71, 0x4f72, 0x4f75, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7d,
+  0x4f80, 0x4f81, 0x4f82, 0x4f85, 0x4f86, 0x4f87, 0x4f8a, 0x4f8c,
+  0x4f8e, 0x4f90, 0x4f92, 0x4f93, 0x4f95, 0x4f96, 0x4f98, 0x4f99,
+  0x4f9a, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa1, 0x4fa2,
+  /* 0x82 */
+  0x4fa4, 0x4fab, 0x4fad, 0x4fb0, 0x4fb1, 0x4fb2, 0x4fb3, 0x4fb4,
+  0x4fb6, 0x4fb7, 0x4fb8, 0x4fb9, 0x4fba, 0x4fbb, 0x4fbc, 0x4fbd,
+  0x4fbe, 0x4fc0, 0x4fc1, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fc8, 0x4fc9,
+  0x4fcb, 0x4fcc, 0x4fcd, 0x4fd2, 0x4fd3, 0x4fd4, 0x4fd5, 0x4fd6,
+  0x4fd9, 0x4fdb, 0x4fe0, 0x4fe2, 0x4fe4, 0x4fe5, 0x4fe7, 0x4feb,
+  0x4fec, 0x4ff0, 0x4ff2, 0x4ff4, 0x4ff5, 0x4ff6, 0x4ff7, 0x4ff9,
+  0x4ffb, 0x4ffc, 0x4ffd, 0x4fff, 0x5000, 0x5001, 0x5002, 0x5003,
+  0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500a, 0x500b,
+  0x500e, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, 0x501b,
+  0x501d, 0x501e, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, 0x502b,
+  0x502f, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, 0x5036,
+  0x5037, 0x5038, 0x5039, 0x503b, 0x503d, 0x503f, 0x5040, 0x5041,
+  0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504a, 0x504b, 0x504d,
+  0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, 0x5058,
+  0x5059, 0x505b, 0x505d, 0x505e, 0x505f, 0x5060, 0x5061, 0x5062,
+  0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506a, 0x506b,
+  0x506d, 0x506e, 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074,
+  0x5075, 0x5078, 0x5079, 0x507a, 0x507c, 0x507d, 0x5081, 0x5082,
+  0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508a, 0x508b, 0x508c,
+  0x508e, 0x508f, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, 0x5095,
+  0x5096, 0x5097, 0x5098, 0x5099, 0x509a, 0x509b, 0x509c, 0x509d,
+  0x509e, 0x509f, 0x50a0, 0x50a1, 0x50a2, 0x50a4, 0x50a6, 0x50aa,
+  0x50ab, 0x50ad, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 0x50b4,
+  0x50b5, 0x50b6, 0x50b7, 0x50b8, 0x50b9, 0x50bc,
+  /* 0x83 */
+  0x50bd, 0x50be, 0x50bf, 0x50c0, 0x50c1, 0x50c2, 0x50c3, 0x50c4,
+  0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50ca, 0x50cb, 0x50cc,
+  0x50cd, 0x50ce, 0x50d0, 0x50d1, 0x50d2, 0x50d3, 0x50d4, 0x50d5,
+  0x50d7, 0x50d8, 0x50d9, 0x50db, 0x50dc, 0x50dd, 0x50de, 0x50df,
+  0x50e0, 0x50e1, 0x50e2, 0x50e3, 0x50e4, 0x50e5, 0x50e8, 0x50e9,
+  0x50ea, 0x50eb, 0x50ef, 0x50f0, 0x50f1, 0x50f2, 0x50f4, 0x50f6,
+  0x50f7, 0x50f8, 0x50f9, 0x50fa, 0x50fc, 0x50fd, 0x50fe, 0x50ff,
+  0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x5109,
+  0x510a, 0x510c, 0x510d, 0x510e, 0x510f, 0x5110, 0x5111, 0x5113,
+  0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511a, 0x511b,
+  0x511c, 0x511d, 0x511e, 0x511f, 0x5120, 0x5122, 0x5123, 0x5124,
+  0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512a, 0x512b, 0x512c,
+  0x512d, 0x512e, 0x512f, 0x5130, 0x5131, 0x5132, 0x5133, 0x5134,
+  0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513a, 0x513b, 0x513c,
+  0x513d, 0x513e, 0x5142, 0x5147, 0x514a, 0x514c, 0x514e, 0x514f,
+  0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515b, 0x515d,
+  0x515e, 0x515f, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, 0x5167,
+  0x5169, 0x516a, 0x516f, 0x5172, 0x517a, 0x517e, 0x517f, 0x5183,
+  0x5184, 0x5186, 0x5187, 0x518a, 0x518b, 0x518e, 0x518f, 0x5190,
+  0x5191, 0x5193, 0x5194, 0x5198, 0x519a, 0x519d, 0x519e, 0x519f,
+  0x51a1, 0x51a3, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 0x51aa, 0x51ad,
+  0x51ae, 0x51b4, 0x51b8, 0x51b9, 0x51ba, 0x51be, 0x51bf, 0x51c1,
+  0x51c2, 0x51c3, 0x51c5, 0x51c8, 0x51ca, 0x51cd, 0x51ce, 0x51d0,
+  0x51d2, 0x51d3, 0x51d4, 0x51d5, 0x51d6, 0x51d7,
+  /* 0x84 */
+  0x51d8, 0x51d9, 0x51da, 0x51dc, 0x51de, 0x51df, 0x51e2, 0x51e3,
+  0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 0x51ea, 0x51ec, 0x51ee,
+  0x51f1, 0x51f2, 0x51f4, 0x51f7, 0x51fe, 0x5204, 0x5205, 0x5209,
+  0x520b, 0x520c, 0x520f, 0x5210, 0x5213, 0x5214, 0x5215, 0x521c,
+  0x521e, 0x521f, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227,
+  0x522a, 0x522c, 0x522f, 0x5231, 0x5232, 0x5234, 0x5235, 0x523c,
+  0x523e, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524b,
+  0x524e, 0x524f, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x5259,
+  0x525a, 0x525b, 0x525d, 0x525f, 0x5260, 0x5262, 0x5263, 0x5264,
+  0x5266, 0x5268, 0x526b, 0x526c, 0x526d, 0x526e, 0x5270, 0x5271,
+  0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, 0x527a,
+  0x527b, 0x527c, 0x527e, 0x5280, 0x5283, 0x5284, 0x5285, 0x5286,
+  0x5287, 0x5289, 0x528a, 0x528b, 0x528c, 0x528d, 0x528e, 0x528f,
+  0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, 0x5299,
+  0x529a, 0x529c, 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52ae, 0x52af,
+  0x52b0, 0x52b4, 0x52b5, 0x52b6, 0x52b7, 0x52b8, 0x52b9, 0x52ba,
+  0x52bb, 0x52bc, 0x52bd, 0x52c0, 0x52c1, 0x52c2, 0x52c4, 0x52c5,
+  0x52c6, 0x52c8, 0x52ca, 0x52cc, 0x52cd, 0x52ce, 0x52cf, 0x52d1,
+  0x52d3, 0x52d4, 0x52d5, 0x52d7, 0x52d9, 0x52da, 0x52db, 0x52dc,
+  0x52dd, 0x52de, 0x52e0, 0x52e1, 0x52e2, 0x52e3, 0x52e5, 0x52e6,
+  0x52e7, 0x52e8, 0x52e9, 0x52ea, 0x52eb, 0x52ec, 0x52ed, 0x52ee,
+  0x52ef, 0x52f1, 0x52f2, 0x52f3, 0x52f4, 0x52f5, 0x52f6, 0x52f7,
+  0x52f8, 0x52fb, 0x52fc, 0x52fd, 0x5301, 0x5302, 0x5303, 0x5304,
+  0x5307, 0x5309, 0x530a, 0x530b, 0x530c, 0x530e,
+  /* 0x85 */
+  0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531b, 0x531c, 0x531e,
+  0x531f, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532b,
+  0x532c, 0x532d, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334,
+  0x5335, 0x5336, 0x5337, 0x5338, 0x533c, 0x533d, 0x5340, 0x5342,
+  0x5344, 0x5346, 0x534b, 0x534c, 0x534d, 0x5350, 0x5354, 0x5358,
+  0x5359, 0x535b, 0x535d, 0x5365, 0x5368, 0x536a, 0x536c, 0x536d,
+  0x5372, 0x5376, 0x5379, 0x537b, 0x537c, 0x537d, 0x537e, 0x5380,
+  0x5381, 0x5383, 0x5387, 0x5388, 0x538a, 0x538e, 0x538f, 0x5390,
+  0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, 0x539b,
+  0x539c, 0x539e, 0x53a0, 0x53a1, 0x53a4, 0x53a7, 0x53aa, 0x53ab,
+  0x53ac, 0x53ad, 0x53af, 0x53b0, 0x53b1, 0x53b2, 0x53b3, 0x53b4,
+  0x53b5, 0x53b7, 0x53b8, 0x53b9, 0x53ba, 0x53bc, 0x53bd, 0x53be,
+  0x53c0, 0x53c3, 0x53c4, 0x53c5, 0x53c6, 0x53c7, 0x53ce, 0x53cf,
+  0x53d0, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dc, 0x53dd, 0x53de,
+  0x53e1, 0x53e2, 0x53e7, 0x53f4, 0x53fa, 0x53fe, 0x53ff, 0x5400,
+  0x5402, 0x5405, 0x5407, 0x540b, 0x5414, 0x5418, 0x5419, 0x541a,
+  0x541c, 0x5422, 0x5424, 0x5425, 0x542a, 0x5430, 0x5433, 0x5436,
+  0x5437, 0x543a, 0x543d, 0x543f, 0x5441, 0x5442, 0x5444, 0x5445,
+  0x5447, 0x5449, 0x544c, 0x544d, 0x544e, 0x544f, 0x5451, 0x545a,
+  0x545d, 0x545e, 0x545f, 0x5460, 0x5461, 0x5463, 0x5465, 0x5467,
+  0x5469, 0x546a, 0x546b, 0x546c, 0x546d, 0x546e, 0x546f, 0x5470,
+  0x5474, 0x5479, 0x547a, 0x547e, 0x547f, 0x5481, 0x5483, 0x5485,
+  0x5487, 0x5488, 0x5489, 0x548a, 0x548d, 0x5491, 0x5493, 0x5497,
+  0x5498, 0x549c, 0x549e, 0x549f, 0x54a0, 0x54a1,
+  /* 0x86 */
+  0x54a2, 0x54a5, 0x54ae, 0x54b0, 0x54b2, 0x54b5, 0x54b6, 0x54b7,
+  0x54b9, 0x54ba, 0x54bc, 0x54be, 0x54c3, 0x54c5, 0x54ca, 0x54cb,
+  0x54d6, 0x54d8, 0x54db, 0x54e0, 0x54e1, 0x54e2, 0x54e3, 0x54e4,
+  0x54eb, 0x54ec, 0x54ef, 0x54f0, 0x54f1, 0x54f4, 0x54f5, 0x54f6,
+  0x54f7, 0x54f8, 0x54f9, 0x54fb, 0x54fe, 0x5500, 0x5502, 0x5503,
+  0x5504, 0x5505, 0x5508, 0x550a, 0x550b, 0x550c, 0x550d, 0x550e,
+  0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551a,
+  0x551c, 0x551d, 0x551e, 0x551f, 0x5521, 0x5525, 0x5526, 0x5528,
+  0x5529, 0x552b, 0x552d, 0x5532, 0x5534, 0x5535, 0x5536, 0x5538,
+  0x5539, 0x553a, 0x553b, 0x553d, 0x5540, 0x5542, 0x5545, 0x5547,
+  0x5548, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5551, 0x5552,
+  0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555a, 0x555b, 0x555d,
+  0x555e, 0x555f, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, 0x556b,
+  0x556f, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, 0x557a,
+  0x557d, 0x557f, 0x5585, 0x5586, 0x558c, 0x558d, 0x558e, 0x5590,
+  0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559a, 0x559b, 0x559e,
+  0x55a0, 0x55a1, 0x55a2, 0x55a3, 0x55a4, 0x55a5, 0x55a6, 0x55a8,
+  0x55a9, 0x55aa, 0x55ab, 0x55ac, 0x55ad, 0x55ae, 0x55af, 0x55b0,
+  0x55b2, 0x55b4, 0x55b6, 0x55b8, 0x55ba, 0x55bc, 0x55bf, 0x55c0,
+  0x55c1, 0x55c2, 0x55c3, 0x55c6, 0x55c7, 0x55c8, 0x55ca, 0x55cb,
+  0x55ce, 0x55cf, 0x55d0, 0x55d5, 0x55d7, 0x55d8, 0x55d9, 0x55da,
+  0x55db, 0x55de, 0x55e0, 0x55e2, 0x55e7, 0x55e9, 0x55ed, 0x55ee,
+  0x55f0, 0x55f1, 0x55f4, 0x55f6, 0x55f8, 0x55f9, 0x55fa, 0x55fb,
+  0x55fc, 0x55ff, 0x5602, 0x5603, 0x5604, 0x5605,
+  /* 0x87 */
+  0x5606, 0x5607, 0x560a, 0x560b, 0x560d, 0x5610, 0x5611, 0x5612,
+  0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561a, 0x561c,
+  0x561d, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629,
+  0x562a, 0x562b, 0x562e, 0x562f, 0x5630, 0x5633, 0x5635, 0x5637,
+  0x5638, 0x563a, 0x563c, 0x563d, 0x563e, 0x5640, 0x5641, 0x5642,
+  0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564a,
+  0x564b, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656,
+  0x565a, 0x565b, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5663,
+  0x5665, 0x5666, 0x5667, 0x566d, 0x566e, 0x566f, 0x5670, 0x5672,
+  0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567a, 0x567d,
+  0x567e, 0x567f, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, 0x5687,
+  0x5688, 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x5690, 0x5691,
+  0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, 0x569a,
+  0x569b, 0x569c, 0x569d, 0x569e, 0x569f, 0x56a0, 0x56a1, 0x56a2,
+  0x56a4, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 0x56aa, 0x56ab,
+  0x56ac, 0x56ad, 0x56ae, 0x56b0, 0x56b1, 0x56b2, 0x56b3, 0x56b4,
+  0x56b5, 0x56b6, 0x56b8, 0x56b9, 0x56ba, 0x56bb, 0x56bd, 0x56be,
+  0x56bf, 0x56c0, 0x56c1, 0x56c2, 0x56c3, 0x56c4, 0x56c5, 0x56c6,
+  0x56c7, 0x56c8, 0x56c9, 0x56cb, 0x56cc, 0x56cd, 0x56ce, 0x56cf,
+  0x56d0, 0x56d1, 0x56d2, 0x56d3, 0x56d5, 0x56d6, 0x56d8, 0x56d9,
+  0x56dc, 0x56e3, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, 0x56ea,
+  0x56ec, 0x56ee, 0x56ef, 0x56f2, 0x56f3, 0x56f6, 0x56f7, 0x56f8,
+  0x56fb, 0x56fc, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, 0x570b,
+  0x570c, 0x570d, 0x570e, 0x570f, 0x5710, 0x5711,
+  /* 0x88 */
+  0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719,
+  0x571a, 0x571b, 0x571d, 0x571e, 0x5720, 0x5721, 0x5722, 0x5724,
+  0x5725, 0x5726, 0x5727, 0x572b, 0x5731, 0x5732, 0x5734, 0x5735,
+  0x5736, 0x5737, 0x5738, 0x573c, 0x573d, 0x573f, 0x5741, 0x5743,
+  0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574b, 0x5752, 0x5753,
+  0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765,
+  0x5767, 0x576c, 0x576e, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775,
+  0x5778, 0x5779, 0x577a, 0x577d, 0x577e, 0x577f, 0x5780, 0x5781,
+  0x5787, 0x5788, 0x5789, 0x578a, 0x578d, 0x578e, 0x578f, 0x5790,
+  0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, 0x579a,
+  0x579c, 0x579d, 0x579e, 0x579f, 0x57a5, 0x57a8, 0x57aa, 0x57ac,
+  0x57af, 0x57b0, 0x57b1, 0x57b3, 0x57b5, 0x57b6, 0x57b7, 0x57b9,
+  0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x57be, 0x57bf, 0x57c0, 0x57c1,
+  0x57c4, 0x57c5, 0x57c6, 0x57c7, 0x57c8, 0x57c9, 0x57ca, 0x57cc,
+  0x57cd, 0x57d0, 0x57d1, 0x57d3, 0x57d6, 0x57d7, 0x57db, 0x57dc,
+  0x57de, 0x57e1, 0x57e2, 0x57e3, 0x57e5, 0x57e6, 0x57e7, 0x57e8,
+  0x57e9, 0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57f0, 0x57f1, 0x57f2,
+  0x57f3, 0x57f5, 0x57f6, 0x57f7, 0x57fb, 0x57fc, 0x57fe, 0x57ff,
+  0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580a, 0x580c,
+  0x580e, 0x580f, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, 0x5817,
+  0x5818, 0x581a, 0x581b, 0x581c, 0x581d, 0x581f, 0x5822, 0x5823,
+  0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582b, 0x582c, 0x582d,
+  0x582e, 0x582f, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, 0x5837,
+  0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d,
+  /* 0x89 */
+  0x583e, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846,
+  0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584e, 0x584f, 0x5850,
+  0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585a, 0x585b,
+  0x585c, 0x585d, 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864,
+  0x5866, 0x5867, 0x5868, 0x5869, 0x586a, 0x586d, 0x586e, 0x586f,
+  0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877,
+  0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587f, 0x5882,
+  0x5884, 0x5886, 0x5887, 0x5888, 0x588a, 0x588b, 0x588c, 0x588d,
+  0x588e, 0x588f, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, 0x5897,
+  0x5898, 0x589b, 0x589c, 0x589d, 0x58a0, 0x58a1, 0x58a2, 0x58a3,
+  0x58a4, 0x58a5, 0x58a6, 0x58a7, 0x58aa, 0x58ab, 0x58ac, 0x58ad,
+  0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b2, 0x58b3, 0x58b4, 0x58b5,
+  0x58b6, 0x58b7, 0x58b8, 0x58b9, 0x58ba, 0x58bb, 0x58bd, 0x58be,
+  0x58bf, 0x58c0, 0x58c2, 0x58c3, 0x58c4, 0x58c6, 0x58c7, 0x58c8,
+  0x58c9, 0x58ca, 0x58cb, 0x58cc, 0x58cd, 0x58ce, 0x58cf, 0x58d0,
+  0x58d2, 0x58d3, 0x58d4, 0x58d6, 0x58d7, 0x58d8, 0x58d9, 0x58da,
+  0x58db, 0x58dc, 0x58dd, 0x58de, 0x58df, 0x58e0, 0x58e1, 0x58e2,
+  0x58e3, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 0x58ea, 0x58ed,
+  0x58ef, 0x58f1, 0x58f2, 0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa,
+  0x58fb, 0x58fc, 0x58fd, 0x58fe, 0x58ff, 0x5900, 0x5901, 0x5903,
+  0x5905, 0x5906, 0x5908, 0x5909, 0x590a, 0x590b, 0x590c, 0x590e,
+  0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591b, 0x591d,
+  0x591e, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, 0x592c,
+  0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593b,
+  /* 0x8a */
+  0x593d, 0x593e, 0x593f, 0x5940, 0x5943, 0x5945, 0x5946, 0x594a,
+  0x594c, 0x594d, 0x5950, 0x5952, 0x5953, 0x5959, 0x595b, 0x595c,
+  0x595d, 0x595e, 0x595f, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967,
+  0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f,
+  0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597a, 0x597b, 0x597c,
+  0x597e, 0x597f, 0x5980, 0x5985, 0x5989, 0x598b, 0x598c, 0x598e,
+  0x598f, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599a, 0x599b,
+  0x599c, 0x599d, 0x599f, 0x59a0, 0x59a1, 0x59a2, 0x59a6, 0x59a7,
+  0x59ac, 0x59ad, 0x59b0, 0x59b1, 0x59b3, 0x59b4, 0x59b5, 0x59b6,
+  0x59b7, 0x59b8, 0x59ba, 0x59bc, 0x59bd, 0x59bf, 0x59c0, 0x59c1,
+  0x59c2, 0x59c3, 0x59c4, 0x59c5, 0x59c7, 0x59c8, 0x59c9, 0x59cc,
+  0x59cd, 0x59ce, 0x59cf, 0x59d5, 0x59d6, 0x59d9, 0x59db, 0x59de,
+  0x59df, 0x59e0, 0x59e1, 0x59e2, 0x59e4, 0x59e6, 0x59e7, 0x59e9,
+  0x59ea, 0x59eb, 0x59ed, 0x59ee, 0x59ef, 0x59f0, 0x59f1, 0x59f2,
+  0x59f3, 0x59f4, 0x59f5, 0x59f6, 0x59f7, 0x59f8, 0x59fa, 0x59fc,
+  0x59fd, 0x59fe, 0x5a00, 0x5a02, 0x5a0a, 0x5a0b, 0x5a0d, 0x5a0e,
+  0x5a0f, 0x5a10, 0x5a12, 0x5a14, 0x5a15, 0x5a16, 0x5a17, 0x5a19,
+  0x5a1a, 0x5a1b, 0x5a1d, 0x5a1e, 0x5a21, 0x5a22, 0x5a24, 0x5a26,
+  0x5a27, 0x5a28, 0x5a2a, 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f,
+  0x5a30, 0x5a33, 0x5a35, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, 0x5a3b,
+  0x5a3d, 0x5a3e, 0x5a3f, 0x5a41, 0x5a42, 0x5a43, 0x5a44, 0x5a45,
+  0x5a47, 0x5a48, 0x5a4b, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50,
+  0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a56, 0x5a57, 0x5a58, 0x5a59,
+  0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60,
+  /* 0x8b */
+  0x5a61, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a68, 0x5a69, 0x5a6b,
+  0x5a6c, 0x5a6d, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, 0x5a73,
+  0x5a78, 0x5a79, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5a80, 0x5a81,
+  0x5a82, 0x5a83, 0x5a84, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89,
+  0x5a8a, 0x5a8b, 0x5a8c, 0x5a8d, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91,
+  0x5a93, 0x5a94, 0x5a95, 0x5a96, 0x5a97, 0x5a98, 0x5a99, 0x5a9c,
+  0x5a9d, 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa1, 0x5aa2, 0x5aa3, 0x5aa4,
+  0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 0x5aab, 0x5aac, 0x5aad,
+  0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab4, 0x5ab6, 0x5ab7, 0x5ab9,
+  0x5aba, 0x5abb, 0x5abc, 0x5abd, 0x5abf, 0x5ac0, 0x5ac3, 0x5ac4,
+  0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5aca, 0x5acb, 0x5acd, 0x5ace,
+  0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 0x5ad5, 0x5ad7, 0x5ad9, 0x5ada,
+  0x5adb, 0x5add, 0x5ade, 0x5adf, 0x5ae2, 0x5ae4, 0x5ae5, 0x5ae7,
+  0x5ae8, 0x5aea, 0x5aec, 0x5aed, 0x5aee, 0x5aef, 0x5af0, 0x5af2,
+  0x5af3, 0x5af4, 0x5af5, 0x5af6, 0x5af7, 0x5af8, 0x5af9, 0x5afa,
+  0x5afb, 0x5afc, 0x5afd, 0x5afe, 0x5aff, 0x5b00, 0x5b01, 0x5b02,
+  0x5b03, 0x5b04, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b0a, 0x5b0b,
+  0x5b0c, 0x5b0d, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b12, 0x5b13,
+  0x5b14, 0x5b15, 0x5b18, 0x5b19, 0x5b1a, 0x5b1b, 0x5b1c, 0x5b1d,
+  0x5b1e, 0x5b1f, 0x5b20, 0x5b21, 0x5b22, 0x5b23, 0x5b24, 0x5b25,
+  0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, 0x5b2d,
+  0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 0x5b35, 0x5b36, 0x5b38,
+  0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b41,
+  0x5b42, 0x5b43, 0x5b44, 0x5b45, 0x5b46, 0x5b47,
+  /* 0x8c */
+  0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f,
+  0x5b52, 0x5b56, 0x5b5e, 0x5b60, 0x5b61, 0x5b67, 0x5b68, 0x5b6b,
+  0x5b6d, 0x5b6e, 0x5b6f, 0x5b72, 0x5b74, 0x5b76, 0x5b77, 0x5b78,
+  0x5b79, 0x5b7b, 0x5b7c, 0x5b7e, 0x5b7f, 0x5b82, 0x5b86, 0x5b8a,
+  0x5b8d, 0x5b8e, 0x5b90, 0x5b91, 0x5b92, 0x5b94, 0x5b96, 0x5b9f,
+  0x5ba7, 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5bae, 0x5baf, 0x5bb1,
+  0x5bb2, 0x5bb7, 0x5bba, 0x5bbb, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bc3,
+  0x5bc8, 0x5bc9, 0x5bca, 0x5bcb, 0x5bcd, 0x5bce, 0x5bcf, 0x5bd1,
+  0x5bd4, 0x5bd5, 0x5bd6, 0x5bd7, 0x5bd8, 0x5bd9, 0x5bda, 0x5bdb,
+  0x5bdc, 0x5be0, 0x5be2, 0x5be3, 0x5be6, 0x5be7, 0x5be9, 0x5bea,
+  0x5beb, 0x5bec, 0x5bed, 0x5bef, 0x5bf1, 0x5bf2, 0x5bf3, 0x5bf4,
+  0x5bf5, 0x5bf6, 0x5bf7, 0x5bfd, 0x5bfe, 0x5c00, 0x5c02, 0x5c03,
+  0x5c05, 0x5c07, 0x5c08, 0x5c0b, 0x5c0c, 0x5c0d, 0x5c0e, 0x5c10,
+  0x5c12, 0x5c13, 0x5c17, 0x5c19, 0x5c1b, 0x5c1e, 0x5c1f, 0x5c20,
+  0x5c21, 0x5c23, 0x5c26, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2d,
+  0x5c2e, 0x5c2f, 0x5c30, 0x5c32, 0x5c33, 0x5c35, 0x5c36, 0x5c37,
+  0x5c43, 0x5c44, 0x5c46, 0x5c47, 0x5c4c, 0x5c4d, 0x5c52, 0x5c53,
+  0x5c54, 0x5c56, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d,
+  0x5c5f, 0x5c62, 0x5c64, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b,
+  0x5c6c, 0x5c6d, 0x5c70, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76,
+  0x5c77, 0x5c78, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, 0x5c80, 0x5c83,
+  0x5c84, 0x5c85, 0x5c86, 0x5c87, 0x5c89, 0x5c8a, 0x5c8b, 0x5c8e,
+  0x5c8f, 0x5c92, 0x5c93, 0x5c95, 0x5c9d, 0x5c9e, 0x5c9f, 0x5ca0,
+  0x5ca1, 0x5ca4, 0x5ca5, 0x5ca6, 0x5ca7, 0x5ca8,
+  /* 0x8d */
+  0x5caa, 0x5cae, 0x5caf, 0x5cb0, 0x5cb2, 0x5cb4, 0x5cb6, 0x5cb9,
+  0x5cba, 0x5cbb, 0x5cbc, 0x5cbe, 0x5cc0, 0x5cc2, 0x5cc3, 0x5cc5,
+  0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 0x5cca, 0x5ccc, 0x5ccd, 0x5cce,
+  0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 0x5cd4, 0x5cd5, 0x5cd6, 0x5cd7,
+  0x5cd8, 0x5cda, 0x5cdb, 0x5cdc, 0x5cdd, 0x5cde, 0x5cdf, 0x5ce0,
+  0x5ce2, 0x5ce3, 0x5ce7, 0x5ce9, 0x5ceb, 0x5cec, 0x5cee, 0x5cef,
+  0x5cf1, 0x5cf2, 0x5cf3, 0x5cf4, 0x5cf5, 0x5cf6, 0x5cf7, 0x5cf8,
+  0x5cf9, 0x5cfa, 0x5cfc, 0x5cfd, 0x5cfe, 0x5cff, 0x5d00, 0x5d01,
+  0x5d04, 0x5d05, 0x5d08, 0x5d09, 0x5d0a, 0x5d0b, 0x5d0c, 0x5d0d,
+  0x5d0f, 0x5d10, 0x5d11, 0x5d12, 0x5d13, 0x5d15, 0x5d17, 0x5d18,
+  0x5d19, 0x5d1a, 0x5d1c, 0x5d1d, 0x5d1f, 0x5d20, 0x5d21, 0x5d22,
+  0x5d23, 0x5d25, 0x5d28, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2f, 0x5d30,
+  0x5d31, 0x5d32, 0x5d33, 0x5d35, 0x5d36, 0x5d37, 0x5d38, 0x5d39,
+  0x5d3a, 0x5d3b, 0x5d3c, 0x5d3f, 0x5d40, 0x5d41, 0x5d42, 0x5d43,
+  0x5d44, 0x5d45, 0x5d46, 0x5d48, 0x5d49, 0x5d4d, 0x5d4e, 0x5d4f,
+  0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57,
+  0x5d59, 0x5d5a, 0x5d5c, 0x5d5e, 0x5d5f, 0x5d60, 0x5d61, 0x5d62,
+  0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d6a, 0x5d6d,
+  0x5d6e, 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d75, 0x5d76, 0x5d77,
+  0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5d7f,
+  0x5d80, 0x5d81, 0x5d83, 0x5d84, 0x5d85, 0x5d86, 0x5d87, 0x5d88,
+  0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, 0x5d8d, 0x5d8e, 0x5d8f, 0x5d90,
+  0x5d91, 0x5d92, 0x5d93, 0x5d94, 0x5d95, 0x5d96, 0x5d97, 0x5d98,
+  0x5d9a, 0x5d9b, 0x5d9c, 0x5d9e, 0x5d9f, 0x5da0,
+  /* 0x8e */
+  0x5da1, 0x5da2, 0x5da3, 0x5da4, 0x5da5, 0x5da6, 0x5da7, 0x5da8,
+  0x5da9, 0x5daa, 0x5dab, 0x5dac, 0x5dad, 0x5dae, 0x5daf, 0x5db0,
+  0x5db1, 0x5db2, 0x5db3, 0x5db4, 0x5db5, 0x5db6, 0x5db8, 0x5db9,
+  0x5dba, 0x5dbb, 0x5dbc, 0x5dbd, 0x5dbe, 0x5dbf, 0x5dc0, 0x5dc1,
+  0x5dc2, 0x5dc3, 0x5dc4, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 0x5dca,
+  0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd2, 0x5dd3,
+  0x5dd4, 0x5dd5, 0x5dd6, 0x5dd7, 0x5dd8, 0x5dd9, 0x5dda, 0x5ddc,
+  0x5ddf, 0x5de0, 0x5de3, 0x5de4, 0x5dea, 0x5dec, 0x5ded, 0x5df0,
+  0x5df5, 0x5df6, 0x5df8, 0x5df9, 0x5dfa, 0x5dfb, 0x5dfc, 0x5dff,
+  0x5e00, 0x5e04, 0x5e07, 0x5e09, 0x5e0a, 0x5e0b, 0x5e0d, 0x5e0e,
+  0x5e12, 0x5e13, 0x5e17, 0x5e1e, 0x5e1f, 0x5e20, 0x5e21, 0x5e22,
+  0x5e23, 0x5e24, 0x5e25, 0x5e28, 0x5e29, 0x5e2a, 0x5e2b, 0x5e2c,
+  0x5e2f, 0x5e30, 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e39,
+  0x5e3a, 0x5e3e, 0x5e3f, 0x5e40, 0x5e41, 0x5e43, 0x5e46, 0x5e47,
+  0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50,
+  0x5e51, 0x5e52, 0x5e53, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a,
+  0x5e5c, 0x5e5d, 0x5e5f, 0x5e60, 0x5e63, 0x5e64, 0x5e65, 0x5e66,
+  0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e,
+  0x5e6f, 0x5e70, 0x5e71, 0x5e75, 0x5e77, 0x5e79, 0x5e7e, 0x5e81,
+  0x5e82, 0x5e83, 0x5e85, 0x5e88, 0x5e89, 0x5e8c, 0x5e8d, 0x5e8e,
+  0x5e92, 0x5e98, 0x5e9b, 0x5e9d, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
+  0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, 0x5eb0,
+  0x5eb1, 0x5eb2, 0x5eb4, 0x5eba, 0x5ebb, 0x5ebc, 0x5ebd, 0x5ebf,
+  0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, 0x5ec5,
+  /* 0x8f */
+  0x5ec6, 0x5ec7, 0x5ec8, 0x5ecb, 0x5ecc, 0x5ecd, 0x5ece, 0x5ecf,
+  0x5ed0, 0x5ed4, 0x5ed5, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edc,
+  0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
+  0x5ee5, 0x5ee6, 0x5ee7, 0x5ee9, 0x5eeb, 0x5eec, 0x5eed, 0x5eee,
+  0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef5, 0x5ef8, 0x5ef9,
+  0x5efb, 0x5efc, 0x5efd, 0x5f05, 0x5f06, 0x5f07, 0x5f09, 0x5f0c,
+  0x5f0d, 0x5f0e, 0x5f10, 0x5f12, 0x5f14, 0x5f16, 0x5f19, 0x5f1a,
+  0x5f1c, 0x5f1d, 0x5f1e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28,
+  0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f32, 0x5f33, 0x5f34, 0x5f35,
+  0x5f36, 0x5f37, 0x5f38, 0x5f3b, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f41,
+  0x5f42, 0x5f43, 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49,
+  0x5f4a, 0x5f4b, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f51, 0x5f54,
+  0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, 0x5f5e, 0x5f5f, 0x5f60, 0x5f63,
+  0x5f65, 0x5f67, 0x5f68, 0x5f6b, 0x5f6e, 0x5f6f, 0x5f72, 0x5f74,
+  0x5f75, 0x5f76, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, 0x5f7f, 0x5f83,
+  0x5f86, 0x5f8d, 0x5f8e, 0x5f8f, 0x5f91, 0x5f93, 0x5f94, 0x5f96,
+  0x5f9a, 0x5f9b, 0x5f9d, 0x5f9e, 0x5f9f, 0x5fa0, 0x5fa2, 0x5fa3,
+  0x5fa4, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa9, 0x5fab, 0x5fac, 0x5faf,
+  0x5fb0, 0x5fb1, 0x5fb2, 0x5fb3, 0x5fb4, 0x5fb6, 0x5fb8, 0x5fb9,
+  0x5fba, 0x5fbb, 0x5fbe, 0x5fbf, 0x5fc0, 0x5fc1, 0x5fc2, 0x5fc7,
+  0x5fc8, 0x5fca, 0x5fcb, 0x5fce, 0x5fd3, 0x5fd4, 0x5fd5, 0x5fda,
+  0x5fdb, 0x5fdc, 0x5fde, 0x5fdf, 0x5fe2, 0x5fe3, 0x5fe5, 0x5fe6,
+  0x5fe8, 0x5fe9, 0x5fec, 0x5fef, 0x5ff0, 0x5ff2, 0x5ff3, 0x5ff4,
+  0x5ff6, 0x5ff7, 0x5ff9, 0x5ffa, 0x5ffc, 0x6007,
+  /* 0x90 */
+  0x6008, 0x6009, 0x600b, 0x600c, 0x6010, 0x6011, 0x6013, 0x6017,
+  0x6018, 0x601a, 0x601e, 0x601f, 0x6022, 0x6023, 0x6024, 0x602c,
+  0x602d, 0x602e, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036,
+  0x6037, 0x6038, 0x6039, 0x603a, 0x603d, 0x603e, 0x6040, 0x6044,
+  0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604c, 0x604e,
+  0x604f, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605b,
+  0x605c, 0x605e, 0x605f, 0x6060, 0x6061, 0x6065, 0x6066, 0x606e,
+  0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607e, 0x6080, 0x6081,
+  0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608a, 0x608b, 0x608e,
+  0x608f, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, 0x6099,
+  0x609c, 0x609e, 0x60a1, 0x60a2, 0x60a4, 0x60a5, 0x60a7, 0x60a9,
+  0x60aa, 0x60ae, 0x60b0, 0x60b3, 0x60b5, 0x60b6, 0x60b7, 0x60b9,
+  0x60ba, 0x60bd, 0x60be, 0x60bf, 0x60c0, 0x60c1, 0x60c2, 0x60c3,
+  0x60c4, 0x60c7, 0x60c8, 0x60c9, 0x60cc, 0x60cd, 0x60ce, 0x60cf,
+  0x60d0, 0x60d2, 0x60d3, 0x60d4, 0x60d6, 0x60d7, 0x60d9, 0x60db,
+  0x60de, 0x60e1, 0x60e2, 0x60e3, 0x60e4, 0x60e5, 0x60ea, 0x60f1,
+  0x60f2, 0x60f5, 0x60f7, 0x60f8, 0x60fb, 0x60fc, 0x60fd, 0x60fe,
+  0x60ff, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610a, 0x610b,
+  0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, 0x6117,
+  0x6118, 0x6119, 0x611b, 0x611c, 0x611d, 0x611e, 0x6121, 0x6122,
+  0x6125, 0x6128, 0x6129, 0x612a, 0x612c, 0x612d, 0x612e, 0x612f,
+  0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137,
+  0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x6140,
+  0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146,
+  /* 0x91 */
+  0x6147, 0x6149, 0x614b, 0x614d, 0x614f, 0x6150, 0x6152, 0x6153,
+  0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615a, 0x615b, 0x615c,
+  0x615e, 0x615f, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166,
+  0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6171,
+  0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617a, 0x617b,
+  0x617c, 0x617d, 0x617e, 0x617f, 0x6180, 0x6181, 0x6182, 0x6183,
+  0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618c,
+  0x618d, 0x618f, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x6196,
+  0x6197, 0x6198, 0x6199, 0x619a, 0x619b, 0x619c, 0x619e, 0x619f,
+  0x61a0, 0x61a1, 0x61a2, 0x61a3, 0x61a4, 0x61a5, 0x61a6, 0x61aa,
+  0x61ab, 0x61ad, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b2, 0x61b3,
+  0x61b4, 0x61b5, 0x61b6, 0x61b8, 0x61b9, 0x61ba, 0x61bb, 0x61bc,
+  0x61bd, 0x61bf, 0x61c0, 0x61c1, 0x61c3, 0x61c4, 0x61c5, 0x61c6,
+  0x61c7, 0x61c9, 0x61cc, 0x61cd, 0x61ce, 0x61cf, 0x61d0, 0x61d3,
+  0x61d5, 0x61d6, 0x61d7, 0x61d8, 0x61d9, 0x61da, 0x61db, 0x61dc,
+  0x61dd, 0x61de, 0x61df, 0x61e0, 0x61e1, 0x61e2, 0x61e3, 0x61e4,
+  0x61e5, 0x61e7, 0x61e8, 0x61e9, 0x61ea, 0x61eb, 0x61ec, 0x61ed,
+  0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f2, 0x61f3, 0x61f4, 0x61f6,
+  0x61f7, 0x61f8, 0x61f9, 0x61fa, 0x61fb, 0x61fc, 0x61fd, 0x61fe,
+  0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, 0x6209,
+  0x6213, 0x6214, 0x6219, 0x621c, 0x621d, 0x621e, 0x6220, 0x6223,
+  0x6226, 0x6227, 0x6228, 0x6229, 0x622b, 0x622d, 0x622f, 0x6230,
+  0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623a, 0x623b,
+  0x623c, 0x6242, 0x6244, 0x6245, 0x6246, 0x624a,
+  /* 0x92 */
+  0x624f, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625a, 0x625c,
+  0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265,
+  0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627a,
+  0x627b, 0x627d, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287,
+  0x6288, 0x628b, 0x628c, 0x628d, 0x628e, 0x628f, 0x6290, 0x6294,
+  0x6299, 0x629c, 0x629d, 0x629e, 0x62a3, 0x62a6, 0x62a7, 0x62a9,
+  0x62aa, 0x62ad, 0x62ae, 0x62af, 0x62b0, 0x62b2, 0x62b3, 0x62b4,
+  0x62b6, 0x62b7, 0x62b8, 0x62ba, 0x62be, 0x62c0, 0x62c1, 0x62c3,
+  0x62cb, 0x62cf, 0x62d1, 0x62d5, 0x62dd, 0x62de, 0x62e0, 0x62e1,
+  0x62e4, 0x62ea, 0x62eb, 0x62f0, 0x62f2, 0x62f5, 0x62f8, 0x62f9,
+  0x62fa, 0x62fb, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, 0x630a,
+  0x630b, 0x630c, 0x630d, 0x630f, 0x6310, 0x6312, 0x6313, 0x6314,
+  0x6315, 0x6317, 0x6318, 0x6319, 0x631c, 0x6326, 0x6327, 0x6329,
+  0x632c, 0x632d, 0x632e, 0x6330, 0x6331, 0x6333, 0x6334, 0x6335,
+  0x6336, 0x6337, 0x6338, 0x633b, 0x633c, 0x633e, 0x633f, 0x6340,
+  0x6341, 0x6344, 0x6347, 0x6348, 0x634a, 0x6351, 0x6352, 0x6353,
+  0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c,
+  0x635d, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636a, 0x636b,
+  0x636c, 0x636f, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, 0x6378,
+  0x6379, 0x637c, 0x637d, 0x637e, 0x637f, 0x6381, 0x6383, 0x6384,
+  0x6385, 0x6386, 0x638b, 0x638d, 0x6391, 0x6393, 0x6394, 0x6395,
+  0x6397, 0x6399, 0x639a, 0x639b, 0x639c, 0x639d, 0x639e, 0x639f,
+  0x63a1, 0x63a4, 0x63a6, 0x63ab, 0x63af, 0x63b1, 0x63b2, 0x63b5,
+  0x63b6, 0x63b9, 0x63bb, 0x63bd, 0x63bf, 0x63c0,
+  /* 0x93 */
+  0x63c1, 0x63c2, 0x63c3, 0x63c5, 0x63c7, 0x63c8, 0x63ca, 0x63cb,
+  0x63cc, 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63d9,
+  0x63da, 0x63db, 0x63dc, 0x63dd, 0x63df, 0x63e2, 0x63e4, 0x63e5,
+  0x63e6, 0x63e7, 0x63e8, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0,
+  0x63f1, 0x63f3, 0x63f5, 0x63f7, 0x63f9, 0x63fa, 0x63fb, 0x63fc,
+  0x63fe, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640a,
+  0x640d, 0x640e, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418,
+  0x6419, 0x641a, 0x641d, 0x641f, 0x6422, 0x6423, 0x6424, 0x6425,
+  0x6427, 0x6428, 0x6429, 0x642b, 0x642e, 0x642f, 0x6430, 0x6431,
+  0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, 0x643b,
+  0x643c, 0x643e, 0x6440, 0x6442, 0x6443, 0x6449, 0x644b, 0x644c,
+  0x644d, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 0x6455, 0x6456,
+  0x6457, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645f, 0x6460,
+  0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, 0x646a,
+  0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473,
+  0x6474, 0x6475, 0x6476, 0x6477, 0x647b, 0x647c, 0x647d, 0x647e,
+  0x647f, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, 0x648a,
+  0x648b, 0x648c, 0x648d, 0x648e, 0x648f, 0x6490, 0x6493, 0x6494,
+  0x6497, 0x6498, 0x649a, 0x649b, 0x649c, 0x649d, 0x649f, 0x64a0,
+  0x64a1, 0x64a2, 0x64a3, 0x64a5, 0x64a6, 0x64a7, 0x64a8, 0x64aa,
+  0x64ab, 0x64af, 0x64b1, 0x64b2, 0x64b3, 0x64b4, 0x64b6, 0x64b9,
+  0x64bb, 0x64bd, 0x64be, 0x64bf, 0x64c1, 0x64c3, 0x64c4, 0x64c6,
+  0x64c7, 0x64c8, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64cf, 0x64d1,
+  0x64d3, 0x64d4, 0x64d5, 0x64d6, 0x64d9, 0x64da,
+  /* 0x94 */
+  0x64db, 0x64dc, 0x64dd, 0x64df, 0x64e0, 0x64e1, 0x64e3, 0x64e5,
+  0x64e7, 0x64e8, 0x64e9, 0x64ea, 0x64eb, 0x64ec, 0x64ed, 0x64ee,
+  0x64ef, 0x64f0, 0x64f1, 0x64f2, 0x64f3, 0x64f4, 0x64f5, 0x64f6,
+  0x64f7, 0x64f8, 0x64f9, 0x64fa, 0x64fb, 0x64fc, 0x64fd, 0x64fe,
+  0x64ff, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507,
+  0x6508, 0x650a, 0x650b, 0x650c, 0x650d, 0x650e, 0x650f, 0x6510,
+  0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651a,
+  0x651b, 0x651c, 0x651d, 0x651e, 0x651f, 0x6520, 0x6521, 0x6522,
+  0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652a, 0x652c,
+  0x652d, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653a, 0x653c,
+  0x653d, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, 0x6547,
+  0x654a, 0x654b, 0x654d, 0x654e, 0x6550, 0x6552, 0x6553, 0x6554,
+  0x6557, 0x6558, 0x655a, 0x655c, 0x655f, 0x6560, 0x6561, 0x6564,
+  0x6565, 0x6567, 0x6568, 0x6569, 0x656a, 0x656d, 0x656e, 0x656f,
+  0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657a, 0x657b,
+  0x657c, 0x657d, 0x657e, 0x657f, 0x6580, 0x6581, 0x6582, 0x6583,
+  0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658a, 0x658d, 0x658e,
+  0x658f, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659a, 0x659d,
+  0x659e, 0x65a0, 0x65a2, 0x65a3, 0x65a6, 0x65a8, 0x65aa, 0x65ac,
+  0x65ae, 0x65b1, 0x65b2, 0x65b3, 0x65b4, 0x65b5, 0x65b6, 0x65b7,
+  0x65b8, 0x65ba, 0x65bb, 0x65be, 0x65bf, 0x65c0, 0x65c2, 0x65c7,
+  0x65c8, 0x65c9, 0x65ca, 0x65cd, 0x65d0, 0x65d1, 0x65d3, 0x65d4,
+  0x65d5, 0x65d8, 0x65d9, 0x65da, 0x65db, 0x65dc, 0x65dd, 0x65de,
+  0x65df, 0x65e1, 0x65e3, 0x65e4, 0x65ea, 0x65eb,
+  /* 0x95 */
+  0x65f2, 0x65f3, 0x65f4, 0x65f5, 0x65f8, 0x65f9, 0x65fb, 0x65fc,
+  0x65fd, 0x65fe, 0x65ff, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608,
+  0x6609, 0x660b, 0x660d, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617,
+  0x6618, 0x661a, 0x661b, 0x661c, 0x661e, 0x6621, 0x6622, 0x6623,
+  0x6624, 0x6626, 0x6629, 0x662a, 0x662b, 0x662c, 0x662e, 0x6630,
+  0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663a, 0x663b, 0x663d,
+  0x663f, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648,
+  0x6649, 0x664a, 0x664d, 0x664e, 0x6650, 0x6651, 0x6658, 0x6659,
+  0x665b, 0x665c, 0x665d, 0x665e, 0x6660, 0x6662, 0x6663, 0x6665,
+  0x6667, 0x6669, 0x666a, 0x666b, 0x666c, 0x666d, 0x6671, 0x6672,
+  0x6673, 0x6675, 0x6678, 0x6679, 0x667b, 0x667c, 0x667d, 0x667f,
+  0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, 0x668a,
+  0x668b, 0x668d, 0x668e, 0x668f, 0x6690, 0x6692, 0x6693, 0x6694,
+  0x6695, 0x6698, 0x6699, 0x669a, 0x669b, 0x669c, 0x669e, 0x669f,
+  0x66a0, 0x66a1, 0x66a2, 0x66a3, 0x66a4, 0x66a5, 0x66a6, 0x66a9,
+  0x66aa, 0x66ab, 0x66ac, 0x66ad, 0x66af, 0x66b0, 0x66b1, 0x66b2,
+  0x66b3, 0x66b5, 0x66b6, 0x66b7, 0x66b8, 0x66ba, 0x66bb, 0x66bc,
+  0x66bd, 0x66bf, 0x66c0, 0x66c1, 0x66c2, 0x66c3, 0x66c4, 0x66c5,
+  0x66c6, 0x66c7, 0x66c8, 0x66c9, 0x66ca, 0x66cb, 0x66cc, 0x66cd,
+  0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, 0x66d3, 0x66d4, 0x66d5,
+  0x66d6, 0x66d7, 0x66d8, 0x66da, 0x66de, 0x66df, 0x66e0, 0x66e1,
+  0x66e2, 0x66e3, 0x66e4, 0x66e5, 0x66e7, 0x66e8, 0x66ea, 0x66eb,
+  0x66ec, 0x66ed, 0x66ee, 0x66ef, 0x66f1, 0x66f5, 0x66f6, 0x66f8,
+  0x66fa, 0x66fb, 0x66fd, 0x6701, 0x6702, 0x6703,
+  /* 0x96 */
+  0x6704, 0x6705, 0x6706, 0x6707, 0x670c, 0x670e, 0x670f, 0x6711,
+  0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671a, 0x671c, 0x671e,
+  0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729,
+  0x672e, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739,
+  0x673b, 0x673c, 0x673e, 0x673f, 0x6741, 0x6744, 0x6745, 0x6747,
+  0x674a, 0x674b, 0x674d, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758,
+  0x6759, 0x675a, 0x675b, 0x675d, 0x6762, 0x6763, 0x6764, 0x6766,
+  0x6767, 0x676b, 0x676c, 0x676e, 0x6771, 0x6774, 0x6776, 0x6778,
+  0x6779, 0x677a, 0x677b, 0x677d, 0x6780, 0x6782, 0x6783, 0x6785,
+  0x6786, 0x6788, 0x678a, 0x678c, 0x678d, 0x678e, 0x678f, 0x6791,
+  0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679b, 0x679f, 0x67a0,
+  0x67a1, 0x67a4, 0x67a6, 0x67a9, 0x67ac, 0x67ae, 0x67b1, 0x67b2,
+  0x67b4, 0x67b9, 0x67ba, 0x67bb, 0x67bc, 0x67bd, 0x67be, 0x67bf,
+  0x67c0, 0x67c2, 0x67c5, 0x67c6, 0x67c7, 0x67c8, 0x67c9, 0x67ca,
+  0x67cb, 0x67cc, 0x67cd, 0x67ce, 0x67d5, 0x67d6, 0x67d7, 0x67db,
+  0x67df, 0x67e1, 0x67e3, 0x67e4, 0x67e6, 0x67e7, 0x67e8, 0x67ea,
+  0x67eb, 0x67ed, 0x67ee, 0x67f2, 0x67f5, 0x67f6, 0x67f7, 0x67f8,
+  0x67f9, 0x67fa, 0x67fb, 0x67fc, 0x67fe, 0x6801, 0x6802, 0x6803,
+  0x6804, 0x6806, 0x680d, 0x6810, 0x6812, 0x6814, 0x6815, 0x6818,
+  0x6819, 0x681a, 0x681b, 0x681c, 0x681e, 0x681f, 0x6820, 0x6822,
+  0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682b, 0x682c,
+  0x682d, 0x682e, 0x682f, 0x6830, 0x6831, 0x6834, 0x6835, 0x6836,
+  0x683a, 0x683b, 0x683f, 0x6847, 0x684b, 0x684d, 0x684f, 0x6852,
+  0x6856, 0x6857, 0x6858, 0x6859, 0x685a, 0x685b,
+  /* 0x97 */
+  0x685c, 0x685d, 0x685e, 0x685f, 0x686a, 0x686c, 0x686d, 0x686e,
+  0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879,
+  0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x687f, 0x6880, 0x6882,
+  0x6884, 0x6887, 0x6888, 0x6889, 0x688a, 0x688b, 0x688c, 0x688d,
+  0x688e, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898,
+  0x6899, 0x689a, 0x689b, 0x689c, 0x689d, 0x689e, 0x689f, 0x68a0,
+  0x68a1, 0x68a3, 0x68a4, 0x68a5, 0x68a9, 0x68aa, 0x68ab, 0x68ac,
+  0x68ae, 0x68b1, 0x68b2, 0x68b4, 0x68b6, 0x68b7, 0x68b8, 0x68b9,
+  0x68ba, 0x68bb, 0x68bc, 0x68bd, 0x68be, 0x68bf, 0x68c1, 0x68c3,
+  0x68c4, 0x68c5, 0x68c6, 0x68c7, 0x68c8, 0x68ca, 0x68cc, 0x68ce,
+  0x68cf, 0x68d0, 0x68d1, 0x68d3, 0x68d4, 0x68d6, 0x68d7, 0x68d9,
+  0x68db, 0x68dc, 0x68dd, 0x68de, 0x68df, 0x68e1, 0x68e2, 0x68e4,
+  0x68e5, 0x68e6, 0x68e7, 0x68e8, 0x68e9, 0x68ea, 0x68eb, 0x68ec,
+  0x68ed, 0x68ef, 0x68f2, 0x68f3, 0x68f4, 0x68f6, 0x68f7, 0x68f8,
+  0x68fb, 0x68fd, 0x68fe, 0x68ff, 0x6900, 0x6902, 0x6903, 0x6904,
+  0x6906, 0x6907, 0x6908, 0x6909, 0x690a, 0x690c, 0x690f, 0x6911,
+  0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, 0x691a,
+  0x691b, 0x691c, 0x691d, 0x691e, 0x6921, 0x6922, 0x6923, 0x6925,
+  0x6926, 0x6927, 0x6928, 0x6929, 0x692a, 0x692b, 0x692c, 0x692e,
+  0x692f, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, 0x6938,
+  0x693a, 0x693b, 0x693c, 0x693e, 0x6940, 0x6941, 0x6943, 0x6944,
+  0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694a, 0x694b, 0x694c,
+  0x694d, 0x694e, 0x694f, 0x6950, 0x6951, 0x6952, 0x6953, 0x6955,
+  0x6956, 0x6958, 0x6959, 0x695b, 0x695c, 0x695f,
+  /* 0x98 */
+  0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696a,
+  0x696c, 0x696d, 0x696f, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975,
+  0x6976, 0x697a, 0x697b, 0x697d, 0x697e, 0x697f, 0x6981, 0x6983,
+  0x6985, 0x698a, 0x698b, 0x698c, 0x698e, 0x698f, 0x6990, 0x6991,
+  0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699a, 0x699d, 0x699e,
+  0x699f, 0x69a0, 0x69a1, 0x69a2, 0x69a3, 0x69a4, 0x69a5, 0x69a6,
+  0x69a9, 0x69aa, 0x69ac, 0x69ae, 0x69af, 0x69b0, 0x69b2, 0x69b3,
+  0x69b5, 0x69b6, 0x69b8, 0x69b9, 0x69ba, 0x69bc, 0x69bd, 0x69be,
+  0x69bf, 0x69c0, 0x69c2, 0x69c3, 0x69c4, 0x69c5, 0x69c6, 0x69c7,
+  0x69c8, 0x69c9, 0x69cb, 0x69cd, 0x69cf, 0x69d1, 0x69d2, 0x69d3,
+  0x69d5, 0x69d6, 0x69d7, 0x69d8, 0x69d9, 0x69da, 0x69dc, 0x69dd,
+  0x69de, 0x69e1, 0x69e2, 0x69e3, 0x69e4, 0x69e5, 0x69e6, 0x69e7,
+  0x69e8, 0x69e9, 0x69ea, 0x69eb, 0x69ec, 0x69ee, 0x69ef, 0x69f0,
+  0x69f1, 0x69f3, 0x69f4, 0x69f5, 0x69f6, 0x69f7, 0x69f8, 0x69f9,
+  0x69fa, 0x69fb, 0x69fc, 0x69fe, 0x6a00, 0x6a01, 0x6a02, 0x6a03,
+  0x6a04, 0x6a05, 0x6a06, 0x6a07, 0x6a08, 0x6a09, 0x6a0b, 0x6a0c,
+  0x6a0d, 0x6a0e, 0x6a0f, 0x6a10, 0x6a11, 0x6a12, 0x6a13, 0x6a14,
+  0x6a15, 0x6a16, 0x6a19, 0x6a1a, 0x6a1b, 0x6a1c, 0x6a1d, 0x6a1e,
+  0x6a20, 0x6a22, 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a29,
+  0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a30, 0x6a32, 0x6a33, 0x6a34,
+  0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, 0x6a3c, 0x6a3f,
+  0x6a40, 0x6a41, 0x6a42, 0x6a43, 0x6a45, 0x6a46, 0x6a48, 0x6a49,
+  0x6a4a, 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a51, 0x6a52,
+  0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a5a,
+  /* 0x99 */
+  0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a62, 0x6a63, 0x6a64,
+  0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d,
+  0x6a6e, 0x6a6f, 0x6a70, 0x6a72, 0x6a73, 0x6a74, 0x6a75, 0x6a76,
+  0x6a77, 0x6a78, 0x6a7a, 0x6a7b, 0x6a7d, 0x6a7e, 0x6a7f, 0x6a81,
+  0x6a82, 0x6a83, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, 0x6a8a,
+  0x6a8b, 0x6a8c, 0x6a8d, 0x6a8f, 0x6a92, 0x6a93, 0x6a94, 0x6a95,
+  0x6a96, 0x6a98, 0x6a99, 0x6a9a, 0x6a9b, 0x6a9c, 0x6a9d, 0x6a9e,
+  0x6a9f, 0x6aa1, 0x6aa2, 0x6aa3, 0x6aa4, 0x6aa5, 0x6aa6, 0x6aa7,
+  0x6aa8, 0x6aaa, 0x6aad, 0x6aae, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab2,
+  0x6ab3, 0x6ab4, 0x6ab5, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba,
+  0x6abb, 0x6abc, 0x6abd, 0x6abe, 0x6abf, 0x6ac0, 0x6ac1, 0x6ac2,
+  0x6ac3, 0x6ac4, 0x6ac5, 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca,
+  0x6acb, 0x6acc, 0x6acd, 0x6ace, 0x6acf, 0x6ad0, 0x6ad1, 0x6ad2,
+  0x6ad3, 0x6ad4, 0x6ad5, 0x6ad6, 0x6ad7, 0x6ad8, 0x6ad9, 0x6ada,
+  0x6adb, 0x6adc, 0x6add, 0x6ade, 0x6adf, 0x6ae0, 0x6ae1, 0x6ae2,
+  0x6ae3, 0x6ae4, 0x6ae5, 0x6ae6, 0x6ae7, 0x6ae8, 0x6ae9, 0x6aea,
+  0x6aeb, 0x6aec, 0x6aed, 0x6aee, 0x6aef, 0x6af0, 0x6af1, 0x6af2,
+  0x6af3, 0x6af4, 0x6af5, 0x6af6, 0x6af7, 0x6af8, 0x6af9, 0x6afa,
+  0x6afb, 0x6afc, 0x6afd, 0x6afe, 0x6aff, 0x6b00, 0x6b01, 0x6b02,
+  0x6b03, 0x6b04, 0x6b05, 0x6b06, 0x6b07, 0x6b08, 0x6b09, 0x6b0a,
+  0x6b0b, 0x6b0c, 0x6b0d, 0x6b0e, 0x6b0f, 0x6b10, 0x6b11, 0x6b12,
+  0x6b13, 0x6b14, 0x6b15, 0x6b16, 0x6b17, 0x6b18, 0x6b19, 0x6b1a,
+  0x6b1b, 0x6b1c, 0x6b1d, 0x6b1e, 0x6b1f, 0x6b25, 0x6b26, 0x6b28,
+  0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, 0x6b2e,
+  /* 0x9a */
+  0x6b2f, 0x6b30, 0x6b31, 0x6b33, 0x6b34, 0x6b35, 0x6b36, 0x6b38,
+  0x6b3b, 0x6b3c, 0x6b3d, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b44,
+  0x6b45, 0x6b48, 0x6b4a, 0x6b4b, 0x6b4d, 0x6b4e, 0x6b4f, 0x6b50,
+  0x6b51, 0x6b52, 0x6b53, 0x6b54, 0x6b55, 0x6b56, 0x6b57, 0x6b58,
+  0x6b5a, 0x6b5b, 0x6b5c, 0x6b5d, 0x6b5e, 0x6b5f, 0x6b60, 0x6b61,
+  0x6b68, 0x6b69, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, 0x6b6f, 0x6b70,
+  0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b75, 0x6b76, 0x6b77, 0x6b78,
+  0x6b7a, 0x6b7d, 0x6b7e, 0x6b7f, 0x6b80, 0x6b85, 0x6b88, 0x6b8c,
+  0x6b8e, 0x6b8f, 0x6b90, 0x6b91, 0x6b94, 0x6b95, 0x6b97, 0x6b98,
+  0x6b99, 0x6b9c, 0x6b9d, 0x6b9e, 0x6b9f, 0x6ba0, 0x6ba2, 0x6ba3,
+  0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, 0x6ba8, 0x6ba9, 0x6bab, 0x6bac,
+  0x6bad, 0x6bae, 0x6baf, 0x6bb0, 0x6bb1, 0x6bb2, 0x6bb6, 0x6bb8,
+  0x6bb9, 0x6bba, 0x6bbb, 0x6bbc, 0x6bbd, 0x6bbe, 0x6bc0, 0x6bc3,
+  0x6bc4, 0x6bc6, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bca, 0x6bcc, 0x6bce,
+  0x6bd0, 0x6bd1, 0x6bd8, 0x6bda, 0x6bdc, 0x6bdd, 0x6bde, 0x6bdf,
+  0x6be0, 0x6be2, 0x6be3, 0x6be4, 0x6be5, 0x6be6, 0x6be7, 0x6be8,
+  0x6be9, 0x6bec, 0x6bed, 0x6bee, 0x6bf0, 0x6bf1, 0x6bf2, 0x6bf4,
+  0x6bf6, 0x6bf7, 0x6bf8, 0x6bfa, 0x6bfb, 0x6bfc, 0x6bfe, 0x6bff,
+  0x6c00, 0x6c01, 0x6c02, 0x6c03, 0x6c04, 0x6c08, 0x6c09, 0x6c0a,
+  0x6c0b, 0x6c0c, 0x6c0e, 0x6c12, 0x6c17, 0x6c1c, 0x6c1d, 0x6c1e,
+  0x6c20, 0x6c23, 0x6c25, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c31, 0x6c33,
+  0x6c36, 0x6c37, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3e, 0x6c3f,
+  0x6c43, 0x6c44, 0x6c45, 0x6c48, 0x6c4b, 0x6c4c, 0x6c4d, 0x6c4e,
+  0x6c4f, 0x6c51, 0x6c52, 0x6c53, 0x6c56, 0x6c58,
+  /* 0x9b */
+  0x6c59, 0x6c5a, 0x6c62, 0x6c63, 0x6c65, 0x6c66, 0x6c67, 0x6c6b,
+  0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, 0x6c71, 0x6c73, 0x6c75, 0x6c77,
+  0x6c78, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7f, 0x6c80, 0x6c84, 0x6c87,
+  0x6c8a, 0x6c8b, 0x6c8d, 0x6c8e, 0x6c91, 0x6c92, 0x6c95, 0x6c96,
+  0x6c97, 0x6c98, 0x6c9a, 0x6c9c, 0x6c9d, 0x6c9e, 0x6ca0, 0x6ca2,
+  0x6ca8, 0x6cac, 0x6caf, 0x6cb0, 0x6cb4, 0x6cb5, 0x6cb6, 0x6cb7,
+  0x6cba, 0x6cc0, 0x6cc1, 0x6cc2, 0x6cc3, 0x6cc6, 0x6cc7, 0x6cc8,
+  0x6ccb, 0x6ccd, 0x6cce, 0x6ccf, 0x6cd1, 0x6cd2, 0x6cd8, 0x6cd9,
+  0x6cda, 0x6cdc, 0x6cdd, 0x6cdf, 0x6ce4, 0x6ce6, 0x6ce7, 0x6ce9,
+  0x6cec, 0x6ced, 0x6cf2, 0x6cf4, 0x6cf9, 0x6cff, 0x6d00, 0x6d02,
+  0x6d03, 0x6d05, 0x6d06, 0x6d08, 0x6d09, 0x6d0a, 0x6d0d, 0x6d0f,
+  0x6d10, 0x6d11, 0x6d13, 0x6d14, 0x6d15, 0x6d16, 0x6d18, 0x6d1c,
+  0x6d1d, 0x6d1f, 0x6d20, 0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d26,
+  0x6d28, 0x6d29, 0x6d2c, 0x6d2d, 0x6d2f, 0x6d30, 0x6d34, 0x6d36,
+  0x6d37, 0x6d38, 0x6d3a, 0x6d3f, 0x6d40, 0x6d42, 0x6d44, 0x6d49,
+  0x6d4c, 0x6d50, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d5b, 0x6d5d,
+  0x6d5f, 0x6d61, 0x6d62, 0x6d64, 0x6d65, 0x6d67, 0x6d68, 0x6d6b,
+  0x6d6c, 0x6d6d, 0x6d70, 0x6d71, 0x6d72, 0x6d73, 0x6d75, 0x6d76,
+  0x6d79, 0x6d7a, 0x6d7b, 0x6d7d, 0x6d7e, 0x6d7f, 0x6d80, 0x6d81,
+  0x6d83, 0x6d84, 0x6d86, 0x6d87, 0x6d8a, 0x6d8b, 0x6d8d, 0x6d8f,
+  0x6d90, 0x6d92, 0x6d96, 0x6d97, 0x6d98, 0x6d99, 0x6d9a, 0x6d9c,
+  0x6da2, 0x6da5, 0x6dac, 0x6dad, 0x6db0, 0x6db1, 0x6db3, 0x6db4,
+  0x6db6, 0x6db7, 0x6db9, 0x6dba, 0x6dbb, 0x6dbc, 0x6dbd, 0x6dbe,
+  0x6dc1, 0x6dc2, 0x6dc3, 0x6dc8, 0x6dc9, 0x6dca,
+  /* 0x9c */
+  0x6dcd, 0x6dce, 0x6dcf, 0x6dd0, 0x6dd2, 0x6dd3, 0x6dd4, 0x6dd5,
+  0x6dd7, 0x6dda, 0x6ddb, 0x6ddc, 0x6ddf, 0x6de2, 0x6de3, 0x6de5,
+  0x6de7, 0x6de8, 0x6de9, 0x6dea, 0x6ded, 0x6def, 0x6df0, 0x6df2,
+  0x6df4, 0x6df5, 0x6df6, 0x6df8, 0x6dfa, 0x6dfd, 0x6dfe, 0x6dff,
+  0x6e00, 0x6e01, 0x6e02, 0x6e03, 0x6e04, 0x6e06, 0x6e07, 0x6e08,
+  0x6e09, 0x6e0b, 0x6e0f, 0x6e12, 0x6e13, 0x6e15, 0x6e18, 0x6e19,
+  0x6e1b, 0x6e1c, 0x6e1e, 0x6e1f, 0x6e22, 0x6e26, 0x6e27, 0x6e28,
+  0x6e2a, 0x6e2c, 0x6e2e, 0x6e30, 0x6e31, 0x6e33, 0x6e35, 0x6e36,
+  0x6e37, 0x6e39, 0x6e3b, 0x6e3c, 0x6e3d, 0x6e3e, 0x6e3f, 0x6e40,
+  0x6e41, 0x6e42, 0x6e45, 0x6e46, 0x6e47, 0x6e48, 0x6e49, 0x6e4a,
+  0x6e4b, 0x6e4c, 0x6e4f, 0x6e50, 0x6e51, 0x6e52, 0x6e55, 0x6e57,
+  0x6e59, 0x6e5a, 0x6e5c, 0x6e5d, 0x6e5e, 0x6e60, 0x6e61, 0x6e62,
+  0x6e63, 0x6e64, 0x6e65, 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a,
+  0x6e6c, 0x6e6d, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e73, 0x6e74,
+  0x6e75, 0x6e76, 0x6e77, 0x6e78, 0x6e79, 0x6e7a, 0x6e7b, 0x6e7c,
+  0x6e7d, 0x6e80, 0x6e81, 0x6e82, 0x6e84, 0x6e87, 0x6e88, 0x6e8a,
+  0x6e8b, 0x6e8c, 0x6e8d, 0x6e8e, 0x6e91, 0x6e92, 0x6e93, 0x6e94,
+  0x6e95, 0x6e96, 0x6e97, 0x6e99, 0x6e9a, 0x6e9b, 0x6e9d, 0x6e9e,
+  0x6ea0, 0x6ea1, 0x6ea3, 0x6ea4, 0x6ea6, 0x6ea8, 0x6ea9, 0x6eab,
+  0x6eac, 0x6ead, 0x6eae, 0x6eb0, 0x6eb3, 0x6eb5, 0x6eb8, 0x6eb9,
+  0x6ebc, 0x6ebe, 0x6ebf, 0x6ec0, 0x6ec3, 0x6ec4, 0x6ec5, 0x6ec6,
+  0x6ec8, 0x6ec9, 0x6eca, 0x6ecc, 0x6ecd, 0x6ece, 0x6ed0, 0x6ed2,
+  0x6ed6, 0x6ed8, 0x6ed9, 0x6edb, 0x6edc, 0x6edd, 0x6ee3, 0x6ee7,
+  0x6eea, 0x6eeb, 0x6eec, 0x6eed, 0x6eee, 0x6eef,
+  /* 0x9d */
+  0x6ef0, 0x6ef1, 0x6ef2, 0x6ef3, 0x6ef5, 0x6ef6, 0x6ef7, 0x6ef8,
+  0x6efa, 0x6efb, 0x6efc, 0x6efd, 0x6efe, 0x6eff, 0x6f00, 0x6f01,
+  0x6f03, 0x6f04, 0x6f05, 0x6f07, 0x6f08, 0x6f0a, 0x6f0b, 0x6f0c,
+  0x6f0d, 0x6f0e, 0x6f10, 0x6f11, 0x6f12, 0x6f16, 0x6f17, 0x6f18,
+  0x6f19, 0x6f1a, 0x6f1b, 0x6f1c, 0x6f1d, 0x6f1e, 0x6f1f, 0x6f21,
+  0x6f22, 0x6f23, 0x6f25, 0x6f26, 0x6f27, 0x6f28, 0x6f2c, 0x6f2e,
+  0x6f30, 0x6f32, 0x6f34, 0x6f35, 0x6f37, 0x6f38, 0x6f39, 0x6f3a,
+  0x6f3b, 0x6f3c, 0x6f3d, 0x6f3f, 0x6f40, 0x6f41, 0x6f42, 0x6f43,
+  0x6f44, 0x6f45, 0x6f48, 0x6f49, 0x6f4a, 0x6f4c, 0x6f4e, 0x6f4f,
+  0x6f50, 0x6f51, 0x6f52, 0x6f53, 0x6f54, 0x6f55, 0x6f56, 0x6f57,
+  0x6f59, 0x6f5a, 0x6f5b, 0x6f5d, 0x6f5f, 0x6f60, 0x6f61, 0x6f63,
+  0x6f64, 0x6f65, 0x6f67, 0x6f68, 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c,
+  0x6f6f, 0x6f70, 0x6f71, 0x6f73, 0x6f75, 0x6f76, 0x6f77, 0x6f79,
+  0x6f7b, 0x6f7d, 0x6f7e, 0x6f7f, 0x6f80, 0x6f81, 0x6f82, 0x6f83,
+  0x6f85, 0x6f86, 0x6f87, 0x6f8a, 0x6f8b, 0x6f8f, 0x6f90, 0x6f91,
+  0x6f92, 0x6f93, 0x6f94, 0x6f95, 0x6f96, 0x6f97, 0x6f98, 0x6f99,
+  0x6f9a, 0x6f9b, 0x6f9d, 0x6f9e, 0x6f9f, 0x6fa0, 0x6fa2, 0x6fa3,
+  0x6fa4, 0x6fa5, 0x6fa6, 0x6fa8, 0x6fa9, 0x6faa, 0x6fab, 0x6fac,
+  0x6fad, 0x6fae, 0x6faf, 0x6fb0, 0x6fb1, 0x6fb2, 0x6fb4, 0x6fb5,
+  0x6fb7, 0x6fb8, 0x6fba, 0x6fbb, 0x6fbc, 0x6fbd, 0x6fbe, 0x6fbf,
+  0x6fc1, 0x6fc3, 0x6fc4, 0x6fc5, 0x6fc6, 0x6fc7, 0x6fc8, 0x6fca,
+  0x6fcb, 0x6fcc, 0x6fcd, 0x6fce, 0x6fcf, 0x6fd0, 0x6fd3, 0x6fd4,
+  0x6fd5, 0x6fd6, 0x6fd7, 0x6fd8, 0x6fd9, 0x6fda, 0x6fdb, 0x6fdc,
+  0x6fdd, 0x6fdf, 0x6fe2, 0x6fe3, 0x6fe4, 0x6fe5,
+  /* 0x9e */
+  0x6fe6, 0x6fe7, 0x6fe8, 0x6fe9, 0x6fea, 0x6feb, 0x6fec, 0x6fed,
+  0x6ff0, 0x6ff1, 0x6ff2, 0x6ff3, 0x6ff4, 0x6ff5, 0x6ff6, 0x6ff7,
+  0x6ff8, 0x6ff9, 0x6ffa, 0x6ffb, 0x6ffc, 0x6ffd, 0x6ffe, 0x6fff,
+  0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007,
+  0x7008, 0x7009, 0x700a, 0x700b, 0x700c, 0x700d, 0x700e, 0x700f,
+  0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018,
+  0x7019, 0x701c, 0x701d, 0x701e, 0x701f, 0x7020, 0x7021, 0x7022,
+  0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702a, 0x702b,
+  0x702c, 0x702d, 0x702e, 0x702f, 0x7030, 0x7031, 0x7032, 0x7033,
+  0x7034, 0x7036, 0x7037, 0x7038, 0x703a, 0x703b, 0x703c, 0x703d,
+  0x703e, 0x703f, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, 0x7045,
+  0x7046, 0x7047, 0x7048, 0x7049, 0x704a, 0x704b, 0x704d, 0x704e,
+  0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, 0x7057,
+  0x7058, 0x7059, 0x705a, 0x705b, 0x705c, 0x705d, 0x705f, 0x7060,
+  0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, 0x7068,
+  0x7069, 0x706a, 0x706e, 0x7071, 0x7072, 0x7073, 0x7074, 0x7077,
+  0x7079, 0x707a, 0x707b, 0x707d, 0x7081, 0x7082, 0x7083, 0x7084,
+  0x7086, 0x7087, 0x7088, 0x708b, 0x708c, 0x708d, 0x708f, 0x7090,
+  0x7091, 0x7093, 0x7097, 0x7098, 0x709a, 0x709b, 0x709e, 0x709f,
+  0x70a0, 0x70a1, 0x70a2, 0x70a3, 0x70a4, 0x70a5, 0x70a6, 0x70a7,
+  0x70a8, 0x70a9, 0x70aa, 0x70b0, 0x70b2, 0x70b4, 0x70b5, 0x70b6,
+  0x70ba, 0x70be, 0x70bf, 0x70c4, 0x70c5, 0x70c6, 0x70c7, 0x70c9,
+  0x70cb, 0x70cc, 0x70cd, 0x70ce, 0x70cf, 0x70d0, 0x70d1, 0x70d2,
+  0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d7, 0x70da,
+  /* 0x9f */
+  0x70dc, 0x70dd, 0x70de, 0x70e0, 0x70e1, 0x70e2, 0x70e3, 0x70e5,
+  0x70ea, 0x70ee, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5,
+  0x70f6, 0x70f8, 0x70fa, 0x70fb, 0x70fc, 0x70fe, 0x70ff, 0x7100,
+  0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108,
+  0x710b, 0x710c, 0x710d, 0x710e, 0x710f, 0x7111, 0x7112, 0x7114,
+  0x7117, 0x711b, 0x711c, 0x711d, 0x711e, 0x711f, 0x7120, 0x7121,
+  0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712a,
+  0x712b, 0x712c, 0x712d, 0x712e, 0x7132, 0x7133, 0x7134, 0x7135,
+  0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713c, 0x713d, 0x713e,
+  0x713f, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, 0x7147,
+  0x7148, 0x7149, 0x714b, 0x714d, 0x714f, 0x7150, 0x7151, 0x7152,
+  0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, 0x715a,
+  0x715b, 0x715d, 0x715f, 0x7160, 0x7161, 0x7162, 0x7163, 0x7165,
+  0x7169, 0x716a, 0x716b, 0x716c, 0x716d, 0x716f, 0x7170, 0x7171,
+  0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717b, 0x717c, 0x717e,
+  0x717f, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, 0x7187,
+  0x7188, 0x7189, 0x718b, 0x718c, 0x718d, 0x718e, 0x7190, 0x7191,
+  0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719a, 0x719b, 0x719c,
+  0x719d, 0x719e, 0x71a1, 0x71a2, 0x71a3, 0x71a4, 0x71a5, 0x71a6,
+  0x71a7, 0x71a9, 0x71aa, 0x71ab, 0x71ad, 0x71ae, 0x71af, 0x71b0,
+  0x71b1, 0x71b2, 0x71b4, 0x71b6, 0x71b7, 0x71b8, 0x71ba, 0x71bb,
+  0x71bc, 0x71bd, 0x71be, 0x71bf, 0x71c0, 0x71c1, 0x71c2, 0x71c4,
+  0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 0x71ca, 0x71cb, 0x71cc,
+  0x71cd, 0x71cf, 0x71d0, 0x71d1, 0x71d2, 0x71d3,
+  /* 0xa0 */
+  0x71d6, 0x71d7, 0x71d8, 0x71d9, 0x71da, 0x71db, 0x71dc, 0x71dd,
+  0x71de, 0x71df, 0x71e1, 0x71e2, 0x71e3, 0x71e4, 0x71e6, 0x71e8,
+  0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ed, 0x71ef, 0x71f0, 0x71f1,
+  0x71f2, 0x71f3, 0x71f4, 0x71f5, 0x71f6, 0x71f7, 0x71f8, 0x71fa,
+  0x71fb, 0x71fc, 0x71fd, 0x71fe, 0x71ff, 0x7200, 0x7201, 0x7202,
+  0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720a, 0x720b,
+  0x720c, 0x720d, 0x720e, 0x720f, 0x7210, 0x7211, 0x7212, 0x7213,
+  0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721a, 0x721b,
+  0x721c, 0x721e, 0x721f, 0x7220, 0x7221, 0x7222, 0x7223, 0x7224,
+  0x7225, 0x7226, 0x7227, 0x7229, 0x722b, 0x722d, 0x722e, 0x722f,
+  0x7232, 0x7233, 0x7234, 0x723a, 0x723c, 0x723e, 0x7240, 0x7241,
+  0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724a, 0x724b,
+  0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, 0x7257,
+  0x7258, 0x725a, 0x725c, 0x725e, 0x7260, 0x7263, 0x7264, 0x7265,
+  0x7268, 0x726a, 0x726b, 0x726c, 0x726d, 0x7270, 0x7271, 0x7273,
+  0x7274, 0x7276, 0x7277, 0x7278, 0x727b, 0x727c, 0x727d, 0x7282,
+  0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728c, 0x728e,
+  0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, 0x7298,
+  0x7299, 0x729a, 0x729b, 0x729c, 0x729d, 0x729e, 0x72a0, 0x72a1,
+  0x72a2, 0x72a3, 0x72a4, 0x72a5, 0x72a6, 0x72a7, 0x72a8, 0x72a9,
+  0x72aa, 0x72ab, 0x72ae, 0x72b1, 0x72b2, 0x72b3, 0x72b5, 0x72ba,
+  0x72bb, 0x72bc, 0x72bd, 0x72be, 0x72bf, 0x72c0, 0x72c5, 0x72c6,
+  0x72c7, 0x72c9, 0x72ca, 0x72cb, 0x72cc, 0x72cf, 0x72d1, 0x72d3,
+  0x72d4, 0x72d5, 0x72d6, 0x72d8, 0x72da, 0x72db,
+};
+
+static int
+gbkext1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x81 && c1 <= 0xa0)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) {
+        unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40));
+        unsigned short wc = 0xfffd;
+        {
+          if (i < 6080)
+            wc = gbkext1_2uni_page81[i];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
diff --git a/libiconv/gbkext2.h b/libiconv/gbkext2.h
new file mode 100644 (file)
index 0000000..f787f98
--- /dev/null
@@ -0,0 +1,1155 @@
+
+/*
+ * GBK/4 and GBK/5 extensions
+ */
+
+static const unsigned short gbkext2_2uni_pagea8[8272] = {
+  /* 0xa8 */
+  0x02ca, 0x02cb, 0x02d9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105,
+  0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221f, 0x2223,
+  0x2252, 0x2266, 0x2267, 0x22bf, 0x2550, 0x2551, 0x2552, 0x2553,
+  0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b,
+  0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563,
+  0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b,
+  0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573,
+  0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x2588,
+  0x2589, 0x258a, 0x258b, 0x258c, 0x258d, 0x258e, 0x258f, 0x2593,
+  0x2594, 0x2595, 0x25bc, 0x25bd, 0x25e2, 0x25e3, 0x25e4, 0x25e5,
+  0x2609, 0x2295, 0x3012, 0x301d, 0x301e, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa9 */
+  0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028,
+  0x3029, 0x32a3, 0x338e, 0x338f, 0x339c, 0x339d, 0x339e, 0x33a1,
+  0x33c4, 0x33ce, 0x33d1, 0x33d2, 0x33d5, 0xfe30, 0xffe2, 0xffe4,
+  0xfffd, 0x2121, 0x3231, 0xfffd, 0x2010, 0xfffd, 0xfffd, 0xfffd,
+  0x30fc, 0x309b, 0x309c, 0x30fd, 0x30fe, 0x3006, 0x309d, 0x309e,
+  0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50,
+  0xfe51, 0xfe52, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe59, 0xfe5a,
+  0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0xfe62,
+  0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3007, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xaa */
+  0x72dc, 0x72dd, 0x72df, 0x72e2, 0x72e3, 0x72e4, 0x72e5, 0x72e6,
+  0x72e7, 0x72ea, 0x72eb, 0x72f5, 0x72f6, 0x72f9, 0x72fd, 0x72fe,
+  0x72ff, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308,
+  0x7309, 0x730b, 0x730c, 0x730d, 0x730f, 0x7310, 0x7311, 0x7312,
+  0x7314, 0x7318, 0x7319, 0x731a, 0x731f, 0x7320, 0x7323, 0x7324,
+  0x7326, 0x7327, 0x7328, 0x732d, 0x732f, 0x7330, 0x7332, 0x7333,
+  0x7335, 0x7336, 0x733a, 0x733b, 0x733c, 0x733d, 0x7340, 0x7341,
+  0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x7349,
+  0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7351, 0x7353, 0x7354,
+  0x7355, 0x7356, 0x7358, 0x7359, 0x735a, 0x735b, 0x735c, 0x735d,
+  0x735e, 0x735f, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366,
+  0x7367, 0x7368, 0x7369, 0x736a, 0x736b, 0x736e, 0x7370, 0x7371,
+  /* 0xab */
+  0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379,
+  0x737a, 0x737b, 0x737c, 0x737d, 0x737f, 0x7380, 0x7381, 0x7382,
+  0x7383, 0x7385, 0x7386, 0x7388, 0x738a, 0x738c, 0x738d, 0x738f,
+  0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399,
+  0x739a, 0x739c, 0x739d, 0x739e, 0x73a0, 0x73a1, 0x73a3, 0x73a4,
+  0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73aa, 0x73ac, 0x73ad, 0x73b1,
+  0x73b4, 0x73b5, 0x73b6, 0x73b8, 0x73b9, 0x73bc, 0x73bd, 0x73be,
+  0x73bf, 0x73c1, 0x73c3, 0x73c4, 0x73c5, 0x73c6, 0x73c7, 0x73cb,
+  0x73cc, 0x73ce, 0x73d2, 0x73d3, 0x73d4, 0x73d5, 0x73d6, 0x73d7,
+  0x73d8, 0x73da, 0x73db, 0x73dc, 0x73dd, 0x73df, 0x73e1, 0x73e2,
+  0x73e3, 0x73e4, 0x73e6, 0x73e8, 0x73ea, 0x73eb, 0x73ec, 0x73ee,
+  0x73ef, 0x73f0, 0x73f1, 0x73f3, 0x73f4, 0x73f5, 0x73f6, 0x73f7,
+  /* 0xac */
+  0x73f8, 0x73f9, 0x73fa, 0x73fb, 0x73fc, 0x73fd, 0x73fe, 0x73ff,
+  0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740b, 0x740c,
+  0x740d, 0x740e, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416,
+  0x7417, 0x7418, 0x7419, 0x741c, 0x741d, 0x741e, 0x741f, 0x7420,
+  0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742b, 0x742d, 0x742f,
+  0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743a, 0x743b, 0x743d,
+  0x743e, 0x743f, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446,
+  0x7447, 0x7448, 0x7449, 0x744a, 0x744b, 0x744c, 0x744d, 0x744e,
+  0x744f, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, 0x7458,
+  0x745d, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, 0x7466,
+  0x7467, 0x7468, 0x7469, 0x746a, 0x746b, 0x746c, 0x746e, 0x746f,
+  0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, 0x747a,
+  /* 0xad */
+  0x747b, 0x747c, 0x747d, 0x747f, 0x7482, 0x7484, 0x7485, 0x7486,
+  0x7488, 0x7489, 0x748a, 0x748c, 0x748d, 0x748f, 0x7491, 0x7492,
+  0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749a,
+  0x749b, 0x749d, 0x749f, 0x74a0, 0x74a1, 0x74a2, 0x74a3, 0x74a4,
+  0x74a5, 0x74a6, 0x74aa, 0x74ab, 0x74ac, 0x74ad, 0x74ae, 0x74af,
+  0x74b0, 0x74b1, 0x74b2, 0x74b3, 0x74b4, 0x74b5, 0x74b6, 0x74b7,
+  0x74b8, 0x74b9, 0x74bb, 0x74bc, 0x74bd, 0x74be, 0x74bf, 0x74c0,
+  0x74c1, 0x74c2, 0x74c3, 0x74c4, 0x74c5, 0x74c6, 0x74c7, 0x74c8,
+  0x74c9, 0x74ca, 0x74cb, 0x74cc, 0x74cd, 0x74ce, 0x74cf, 0x74d0,
+  0x74d1, 0x74d3, 0x74d4, 0x74d5, 0x74d6, 0x74d7, 0x74d8, 0x74d9,
+  0x74da, 0x74db, 0x74dd, 0x74df, 0x74e1, 0x74e5, 0x74e7, 0x74e8,
+  0x74e9, 0x74ea, 0x74eb, 0x74ec, 0x74ed, 0x74f0, 0x74f1, 0x74f2,
+  /* 0xae */
+  0x74f3, 0x74f5, 0x74f8, 0x74f9, 0x74fa, 0x74fb, 0x74fc, 0x74fd,
+  0x74fe, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507,
+  0x7508, 0x7509, 0x750a, 0x750b, 0x750c, 0x750e, 0x7510, 0x7512,
+  0x7514, 0x7515, 0x7516, 0x7517, 0x751b, 0x751d, 0x751e, 0x7520,
+  0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752a, 0x752e,
+  0x7534, 0x7536, 0x7539, 0x753c, 0x753d, 0x753f, 0x7541, 0x7542,
+  0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754a, 0x754d, 0x7550,
+  0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x755d,
+  0x755e, 0x755f, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, 0x7567,
+  0x7568, 0x7569, 0x756b, 0x756c, 0x756d, 0x756e, 0x756f, 0x7570,
+  0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757a, 0x757b, 0x757c,
+  0x757d, 0x757e, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, 0x7587,
+  /* 0xaf */
+  0x7588, 0x7589, 0x758a, 0x758c, 0x758d, 0x758e, 0x7590, 0x7593,
+  0x7595, 0x7598, 0x759b, 0x759c, 0x759e, 0x75a2, 0x75a6, 0x75a7,
+  0x75a8, 0x75a9, 0x75aa, 0x75ad, 0x75b6, 0x75b7, 0x75ba, 0x75bb,
+  0x75bf, 0x75c0, 0x75c1, 0x75c6, 0x75cb, 0x75cc, 0x75ce, 0x75cf,
+  0x75d0, 0x75d1, 0x75d3, 0x75d7, 0x75d9, 0x75da, 0x75dc, 0x75dd,
+  0x75df, 0x75e0, 0x75e1, 0x75e5, 0x75e9, 0x75ec, 0x75ed, 0x75ee,
+  0x75ef, 0x75f2, 0x75f3, 0x75f5, 0x75f6, 0x75f7, 0x75f8, 0x75fa,
+  0x75fb, 0x75fd, 0x75fe, 0x7602, 0x7604, 0x7606, 0x7607, 0x7608,
+  0x7609, 0x760b, 0x760d, 0x760e, 0x760f, 0x7611, 0x7612, 0x7613,
+  0x7614, 0x7616, 0x761a, 0x761c, 0x761d, 0x761e, 0x7621, 0x7623,
+  0x7627, 0x7628, 0x762c, 0x762e, 0x762f, 0x7631, 0x7632, 0x7636,
+  0x7637, 0x7639, 0x763a, 0x763b, 0x763d, 0x7641, 0x7642, 0x7644,
+  /* 0xb0 */
+  0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764a, 0x764b, 0x764e,
+  0x764f, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658,
+  0x7659, 0x765a, 0x765b, 0x765d, 0x765f, 0x7660, 0x7661, 0x7662,
+  0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766a, 0x766c,
+  0x766d, 0x766e, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675,
+  0x7676, 0x7677, 0x7679, 0x767a, 0x767c, 0x767f, 0x7680, 0x7681,
+  0x7683, 0x7685, 0x7689, 0x768a, 0x768c, 0x768d, 0x768f, 0x7690,
+  0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x769c,
+  0x769d, 0x769e, 0x769f, 0x76a0, 0x76a1, 0x76a2, 0x76a3, 0x76a5,
+  0x76a6, 0x76a7, 0x76a8, 0x76a9, 0x76aa, 0x76ab, 0x76ac, 0x76ad,
+  0x76af, 0x76b0, 0x76b3, 0x76b5, 0x76b6, 0x76b7, 0x76b8, 0x76b9,
+  0x76ba, 0x76bb, 0x76bc, 0x76bd, 0x76be, 0x76c0, 0x76c1, 0x76c3,
+  /* 0xb1 */
+  0x76c4, 0x76c7, 0x76c9, 0x76cb, 0x76cc, 0x76d3, 0x76d5, 0x76d9,
+  0x76da, 0x76dc, 0x76dd, 0x76de, 0x76e0, 0x76e1, 0x76e2, 0x76e3,
+  0x76e4, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 0x76ea, 0x76eb, 0x76ec,
+  0x76ed, 0x76f0, 0x76f3, 0x76f5, 0x76f6, 0x76f7, 0x76fa, 0x76fb,
+  0x76fd, 0x76ff, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770a,
+  0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714,
+  0x7715, 0x7716, 0x7717, 0x7718, 0x771b, 0x771c, 0x771d, 0x771e,
+  0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772a, 0x772b, 0x772c,
+  0x772e, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, 0x773b,
+  0x773d, 0x773e, 0x773f, 0x7742, 0x7744, 0x7745, 0x7746, 0x7748,
+  0x7749, 0x774a, 0x774b, 0x774c, 0x774d, 0x774e, 0x774f, 0x7752,
+  0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775c,
+  /* 0xb2 */
+  0x775d, 0x775e, 0x775f, 0x7760, 0x7764, 0x7767, 0x7769, 0x776a,
+  0x776d, 0x776e, 0x776f, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774,
+  0x7775, 0x7776, 0x7777, 0x7778, 0x777a, 0x777b, 0x777c, 0x7781,
+  0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778a, 0x778b,
+  0x778f, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798,
+  0x7799, 0x779a, 0x779b, 0x779c, 0x779d, 0x779e, 0x77a1, 0x77a3,
+  0x77a4, 0x77a6, 0x77a8, 0x77ab, 0x77ad, 0x77ae, 0x77af, 0x77b1,
+  0x77b2, 0x77b4, 0x77b6, 0x77b7, 0x77b8, 0x77b9, 0x77ba, 0x77bc,
+  0x77be, 0x77c0, 0x77c1, 0x77c2, 0x77c3, 0x77c4, 0x77c5, 0x77c6,
+  0x77c7, 0x77c8, 0x77c9, 0x77ca, 0x77cb, 0x77cc, 0x77ce, 0x77cf,
+  0x77d0, 0x77d1, 0x77d2, 0x77d3, 0x77d4, 0x77d5, 0x77d6, 0x77d8,
+  0x77d9, 0x77da, 0x77dd, 0x77de, 0x77df, 0x77e0, 0x77e1, 0x77e4,
+  /* 0xb3 */
+  0x77e6, 0x77e8, 0x77ea, 0x77ef, 0x77f0, 0x77f1, 0x77f2, 0x77f4,
+  0x77f5, 0x77f7, 0x77f9, 0x77fa, 0x77fb, 0x77fc, 0x7803, 0x7804,
+  0x7805, 0x7806, 0x7807, 0x7808, 0x780a, 0x780b, 0x780e, 0x780f,
+  0x7810, 0x7813, 0x7815, 0x7819, 0x781b, 0x781e, 0x7820, 0x7821,
+  0x7822, 0x7824, 0x7828, 0x782a, 0x782b, 0x782e, 0x782f, 0x7831,
+  0x7832, 0x7833, 0x7835, 0x7836, 0x783d, 0x783f, 0x7841, 0x7842,
+  0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784a, 0x784b, 0x784d,
+  0x784f, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785a, 0x785b,
+  0x785c, 0x785e, 0x785f, 0x7860, 0x7861, 0x7862, 0x7863, 0x7864,
+  0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786f, 0x7870, 0x7871,
+  0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, 0x787a,
+  0x787b, 0x787d, 0x787e, 0x787f, 0x7880, 0x7881, 0x7882, 0x7883,
+  /* 0xb4 */
+  0x7884, 0x7885, 0x7886, 0x7888, 0x788a, 0x788b, 0x788f, 0x7890,
+  0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789d, 0x789e, 0x78a0,
+  0x78a2, 0x78a4, 0x78a6, 0x78a8, 0x78a9, 0x78aa, 0x78ab, 0x78ac,
+  0x78ad, 0x78ae, 0x78af, 0x78b5, 0x78b6, 0x78b7, 0x78b8, 0x78ba,
+  0x78bb, 0x78bc, 0x78bd, 0x78bf, 0x78c0, 0x78c2, 0x78c3, 0x78c4,
+  0x78c6, 0x78c7, 0x78c8, 0x78cc, 0x78cd, 0x78ce, 0x78cf, 0x78d1,
+  0x78d2, 0x78d3, 0x78d6, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dc,
+  0x78dd, 0x78de, 0x78df, 0x78e0, 0x78e1, 0x78e2, 0x78e3, 0x78e4,
+  0x78e5, 0x78e6, 0x78e7, 0x78e9, 0x78ea, 0x78eb, 0x78ed, 0x78ee,
+  0x78ef, 0x78f0, 0x78f1, 0x78f3, 0x78f5, 0x78f6, 0x78f8, 0x78f9,
+  0x78fb, 0x78fc, 0x78fd, 0x78fe, 0x78ff, 0x7900, 0x7902, 0x7903,
+  0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790a, 0x790b, 0x790c,
+  /* 0xb5 */
+  0x790d, 0x790e, 0x790f, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915,
+  0x7916, 0x7917, 0x7918, 0x7919, 0x791a, 0x791b, 0x791c, 0x791d,
+  0x791f, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927,
+  0x7928, 0x7929, 0x792a, 0x792b, 0x792c, 0x792d, 0x792e, 0x792f,
+  0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938,
+  0x7939, 0x793d, 0x793f, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947,
+  0x794a, 0x794b, 0x794c, 0x794d, 0x794e, 0x794f, 0x7950, 0x7951,
+  0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x7964,
+  0x7966, 0x7969, 0x796a, 0x796b, 0x796c, 0x796e, 0x7970, 0x7971,
+  0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797b, 0x797c,
+  0x797d, 0x797e, 0x797f, 0x7982, 0x7983, 0x7986, 0x7987, 0x7988,
+  0x7989, 0x798b, 0x798c, 0x798d, 0x798e, 0x7990, 0x7991, 0x7992,
+  /* 0xb6 */
+  0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799b,
+  0x799c, 0x799d, 0x799e, 0x799f, 0x79a0, 0x79a1, 0x79a2, 0x79a3,
+  0x79a4, 0x79a5, 0x79a6, 0x79a8, 0x79a9, 0x79aa, 0x79ab, 0x79ac,
+  0x79ad, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b2, 0x79b4, 0x79b5,
+  0x79b6, 0x79b7, 0x79b8, 0x79bc, 0x79bf, 0x79c2, 0x79c4, 0x79c5,
+  0x79c7, 0x79c8, 0x79ca, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d3,
+  0x79d4, 0x79d6, 0x79d7, 0x79d9, 0x79da, 0x79db, 0x79dc, 0x79dd,
+  0x79de, 0x79e0, 0x79e1, 0x79e2, 0x79e5, 0x79e8, 0x79ea, 0x79ec,
+  0x79ee, 0x79f1, 0x79f2, 0x79f3, 0x79f4, 0x79f5, 0x79f6, 0x79f7,
+  0x79f9, 0x79fa, 0x79fc, 0x79fe, 0x79ff, 0x7a01, 0x7a04, 0x7a05,
+  0x7a07, 0x7a08, 0x7a09, 0x7a0a, 0x7a0c, 0x7a0f, 0x7a10, 0x7a11,
+  0x7a12, 0x7a13, 0x7a15, 0x7a16, 0x7a18, 0x7a19, 0x7a1b, 0x7a1c,
+  /* 0xb7 */
+  0x7a1d, 0x7a1f, 0x7a21, 0x7a22, 0x7a24, 0x7a25, 0x7a26, 0x7a27,
+  0x7a28, 0x7a29, 0x7a2a, 0x7a2b, 0x7a2c, 0x7a2d, 0x7a2e, 0x7a2f,
+  0x7a30, 0x7a31, 0x7a32, 0x7a34, 0x7a35, 0x7a36, 0x7a38, 0x7a3a,
+  0x7a3e, 0x7a40, 0x7a41, 0x7a42, 0x7a43, 0x7a44, 0x7a45, 0x7a47,
+  0x7a48, 0x7a49, 0x7a4a, 0x7a4b, 0x7a4c, 0x7a4d, 0x7a4e, 0x7a4f,
+  0x7a50, 0x7a52, 0x7a53, 0x7a54, 0x7a55, 0x7a56, 0x7a58, 0x7a59,
+  0x7a5a, 0x7a5b, 0x7a5c, 0x7a5d, 0x7a5e, 0x7a5f, 0x7a60, 0x7a61,
+  0x7a62, 0x7a63, 0x7a64, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x7a69,
+  0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x7a6e, 0x7a6f, 0x7a71, 0x7a72,
+  0x7a73, 0x7a75, 0x7a7b, 0x7a7c, 0x7a7d, 0x7a7e, 0x7a82, 0x7a85,
+  0x7a87, 0x7a89, 0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, 0x7a90,
+  0x7a93, 0x7a94, 0x7a99, 0x7a9a, 0x7a9b, 0x7a9e, 0x7aa1, 0x7aa2,
+  /* 0xb8 */
+  0x7aa3, 0x7aa4, 0x7aa7, 0x7aa9, 0x7aaa, 0x7aab, 0x7aae, 0x7aaf,
+  0x7ab0, 0x7ab1, 0x7ab2, 0x7ab4, 0x7ab5, 0x7ab6, 0x7ab7, 0x7ab8,
+  0x7ab9, 0x7aba, 0x7abb, 0x7abc, 0x7abd, 0x7abe, 0x7ac0, 0x7ac1,
+  0x7ac2, 0x7ac3, 0x7ac4, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9,
+  0x7aca, 0x7acc, 0x7acd, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad2,
+  0x7ad3, 0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7adc,
+  0x7add, 0x7ae1, 0x7ae2, 0x7ae4, 0x7ae7, 0x7ae8, 0x7ae9, 0x7aea,
+  0x7aeb, 0x7aec, 0x7aee, 0x7af0, 0x7af1, 0x7af2, 0x7af3, 0x7af4,
+  0x7af5, 0x7af6, 0x7af7, 0x7af8, 0x7afb, 0x7afc, 0x7afe, 0x7b00,
+  0x7b01, 0x7b02, 0x7b05, 0x7b07, 0x7b09, 0x7b0c, 0x7b0d, 0x7b0e,
+  0x7b10, 0x7b12, 0x7b13, 0x7b16, 0x7b17, 0x7b18, 0x7b1a, 0x7b1c,
+  0x7b1d, 0x7b1f, 0x7b21, 0x7b22, 0x7b23, 0x7b27, 0x7b29, 0x7b2d,
+  /* 0xb9 */
+  0x7b2f, 0x7b30, 0x7b32, 0x7b34, 0x7b35, 0x7b36, 0x7b37, 0x7b39,
+  0x7b3b, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44,
+  0x7b46, 0x7b48, 0x7b4a, 0x7b4d, 0x7b4e, 0x7b53, 0x7b55, 0x7b57,
+  0x7b59, 0x7b5c, 0x7b5e, 0x7b5f, 0x7b61, 0x7b63, 0x7b64, 0x7b65,
+  0x7b66, 0x7b67, 0x7b68, 0x7b69, 0x7b6a, 0x7b6b, 0x7b6c, 0x7b6d,
+  0x7b6f, 0x7b70, 0x7b73, 0x7b74, 0x7b76, 0x7b78, 0x7b7a, 0x7b7c,
+  0x7b7d, 0x7b7f, 0x7b81, 0x7b82, 0x7b83, 0x7b84, 0x7b86, 0x7b87,
+  0x7b88, 0x7b89, 0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x7b91,
+  0x7b92, 0x7b93, 0x7b96, 0x7b98, 0x7b99, 0x7b9a, 0x7b9b, 0x7b9e,
+  0x7b9f, 0x7ba0, 0x7ba3, 0x7ba4, 0x7ba5, 0x7bae, 0x7baf, 0x7bb0,
+  0x7bb2, 0x7bb3, 0x7bb5, 0x7bb6, 0x7bb7, 0x7bb9, 0x7bba, 0x7bbb,
+  0x7bbc, 0x7bbd, 0x7bbe, 0x7bbf, 0x7bc0, 0x7bc2, 0x7bc3, 0x7bc4,
+  /* 0xba */
+  0x7bc5, 0x7bc8, 0x7bc9, 0x7bca, 0x7bcb, 0x7bcd, 0x7bce, 0x7bcf,
+  0x7bd0, 0x7bd2, 0x7bd4, 0x7bd5, 0x7bd6, 0x7bd7, 0x7bd8, 0x7bdb,
+  0x7bdc, 0x7bde, 0x7bdf, 0x7be0, 0x7be2, 0x7be3, 0x7be4, 0x7be7,
+  0x7be8, 0x7be9, 0x7beb, 0x7bec, 0x7bed, 0x7bef, 0x7bf0, 0x7bf2,
+  0x7bf3, 0x7bf4, 0x7bf5, 0x7bf6, 0x7bf8, 0x7bf9, 0x7bfa, 0x7bfb,
+  0x7bfd, 0x7bff, 0x7c00, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c05,
+  0x7c06, 0x7c08, 0x7c09, 0x7c0a, 0x7c0d, 0x7c0e, 0x7c10, 0x7c11,
+  0x7c12, 0x7c13, 0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c19, 0x7c1a,
+  0x7c1b, 0x7c1c, 0x7c1d, 0x7c1e, 0x7c20, 0x7c21, 0x7c22, 0x7c23,
+  0x7c24, 0x7c25, 0x7c28, 0x7c29, 0x7c2b, 0x7c2c, 0x7c2d, 0x7c2e,
+  0x7c2f, 0x7c30, 0x7c31, 0x7c32, 0x7c33, 0x7c34, 0x7c35, 0x7c36,
+  0x7c37, 0x7c39, 0x7c3a, 0x7c3b, 0x7c3c, 0x7c3d, 0x7c3e, 0x7c42,
+  /* 0xbb */
+  0x7c43, 0x7c44, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 0x7c4a,
+  0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c52, 0x7c53,
+  0x7c54, 0x7c55, 0x7c56, 0x7c57, 0x7c58, 0x7c59, 0x7c5a, 0x7c5b,
+  0x7c5c, 0x7c5d, 0x7c5e, 0x7c5f, 0x7c60, 0x7c61, 0x7c62, 0x7c63,
+  0x7c64, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 0x7c6a, 0x7c6b,
+  0x7c6c, 0x7c6d, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c72, 0x7c75,
+  0x7c76, 0x7c77, 0x7c78, 0x7c79, 0x7c7a, 0x7c7e, 0x7c7f, 0x7c80,
+  0x7c81, 0x7c82, 0x7c83, 0x7c84, 0x7c85, 0x7c86, 0x7c87, 0x7c88,
+  0x7c8a, 0x7c8b, 0x7c8c, 0x7c8d, 0x7c8e, 0x7c8f, 0x7c90, 0x7c93,
+  0x7c94, 0x7c96, 0x7c99, 0x7c9a, 0x7c9b, 0x7ca0, 0x7ca1, 0x7ca3,
+  0x7ca6, 0x7ca7, 0x7ca8, 0x7ca9, 0x7cab, 0x7cac, 0x7cad, 0x7caf,
+  0x7cb0, 0x7cb4, 0x7cb5, 0x7cb6, 0x7cb7, 0x7cb8, 0x7cba, 0x7cbb,
+  /* 0xbc */
+  0x7cbf, 0x7cc0, 0x7cc2, 0x7cc3, 0x7cc4, 0x7cc6, 0x7cc9, 0x7ccb,
+  0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd2, 0x7cd3, 0x7cd4, 0x7cd8,
+  0x7cda, 0x7cdb, 0x7cdd, 0x7cde, 0x7ce1, 0x7ce2, 0x7ce3, 0x7ce4,
+  0x7ce5, 0x7ce6, 0x7ce7, 0x7ce9, 0x7cea, 0x7ceb, 0x7cec, 0x7ced,
+  0x7cee, 0x7cf0, 0x7cf1, 0x7cf2, 0x7cf3, 0x7cf4, 0x7cf5, 0x7cf6,
+  0x7cf7, 0x7cf9, 0x7cfa, 0x7cfc, 0x7cfd, 0x7cfe, 0x7cff, 0x7d00,
+  0x7d01, 0x7d02, 0x7d03, 0x7d04, 0x7d05, 0x7d06, 0x7d07, 0x7d08,
+  0x7d09, 0x7d0b, 0x7d0c, 0x7d0d, 0x7d0e, 0x7d0f, 0x7d10, 0x7d11,
+  0x7d12, 0x7d13, 0x7d14, 0x7d15, 0x7d16, 0x7d17, 0x7d18, 0x7d19,
+  0x7d1a, 0x7d1b, 0x7d1c, 0x7d1d, 0x7d1e, 0x7d1f, 0x7d21, 0x7d23,
+  0x7d24, 0x7d25, 0x7d26, 0x7d28, 0x7d29, 0x7d2a, 0x7d2c, 0x7d2d,
+  0x7d2e, 0x7d30, 0x7d31, 0x7d32, 0x7d33, 0x7d34, 0x7d35, 0x7d36,
+  /* 0xbd */
+  0x7d37, 0x7d38, 0x7d39, 0x7d3a, 0x7d3b, 0x7d3c, 0x7d3d, 0x7d3e,
+  0x7d3f, 0x7d40, 0x7d41, 0x7d42, 0x7d43, 0x7d44, 0x7d45, 0x7d46,
+  0x7d47, 0x7d48, 0x7d49, 0x7d4a, 0x7d4b, 0x7d4c, 0x7d4d, 0x7d4e,
+  0x7d4f, 0x7d50, 0x7d51, 0x7d52, 0x7d53, 0x7d54, 0x7d55, 0x7d56,
+  0x7d57, 0x7d58, 0x7d59, 0x7d5a, 0x7d5b, 0x7d5c, 0x7d5d, 0x7d5e,
+  0x7d5f, 0x7d60, 0x7d61, 0x7d62, 0x7d63, 0x7d64, 0x7d65, 0x7d66,
+  0x7d67, 0x7d68, 0x7d69, 0x7d6a, 0x7d6b, 0x7d6c, 0x7d6d, 0x7d6f,
+  0x7d70, 0x7d71, 0x7d72, 0x7d73, 0x7d74, 0x7d75, 0x7d76, 0x7d78,
+  0x7d79, 0x7d7a, 0x7d7b, 0x7d7c, 0x7d7d, 0x7d7e, 0x7d7f, 0x7d80,
+  0x7d81, 0x7d82, 0x7d83, 0x7d84, 0x7d85, 0x7d86, 0x7d87, 0x7d88,
+  0x7d89, 0x7d8a, 0x7d8b, 0x7d8c, 0x7d8d, 0x7d8e, 0x7d8f, 0x7d90,
+  0x7d91, 0x7d92, 0x7d93, 0x7d94, 0x7d95, 0x7d96, 0x7d97, 0x7d98,
+  /* 0xbe */
+  0x7d99, 0x7d9a, 0x7d9b, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0,
+  0x7da1, 0x7da2, 0x7da3, 0x7da4, 0x7da5, 0x7da7, 0x7da8, 0x7da9,
+  0x7daa, 0x7dab, 0x7dac, 0x7dad, 0x7daf, 0x7db0, 0x7db1, 0x7db2,
+  0x7db3, 0x7db4, 0x7db5, 0x7db6, 0x7db7, 0x7db8, 0x7db9, 0x7dba,
+  0x7dbb, 0x7dbc, 0x7dbd, 0x7dbe, 0x7dbf, 0x7dc0, 0x7dc1, 0x7dc2,
+  0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 0x7dca,
+  0x7dcb, 0x7dcc, 0x7dcd, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd2,
+  0x7dd3, 0x7dd4, 0x7dd5, 0x7dd6, 0x7dd7, 0x7dd8, 0x7dd9, 0x7dda,
+  0x7ddb, 0x7ddc, 0x7ddd, 0x7dde, 0x7ddf, 0x7de0, 0x7de1, 0x7de2,
+  0x7de3, 0x7de4, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, 0x7dea,
+  0x7deb, 0x7dec, 0x7ded, 0x7dee, 0x7def, 0x7df0, 0x7df1, 0x7df2,
+  0x7df3, 0x7df4, 0x7df5, 0x7df6, 0x7df7, 0x7df8, 0x7df9, 0x7dfa,
+  /* 0xbf */
+  0x7dfb, 0x7dfc, 0x7dfd, 0x7dfe, 0x7dff, 0x7e00, 0x7e01, 0x7e02,
+  0x7e03, 0x7e04, 0x7e05, 0x7e06, 0x7e07, 0x7e08, 0x7e09, 0x7e0a,
+  0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, 0x7e10, 0x7e11, 0x7e12,
+  0x7e13, 0x7e14, 0x7e15, 0x7e16, 0x7e17, 0x7e18, 0x7e19, 0x7e1a,
+  0x7e1b, 0x7e1c, 0x7e1d, 0x7e1e, 0x7e1f, 0x7e20, 0x7e21, 0x7e22,
+  0x7e23, 0x7e24, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 0x7e2a,
+  0x7e2b, 0x7e2c, 0x7e2d, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e32,
+  0x7e33, 0x7e34, 0x7e35, 0x7e36, 0x7e37, 0x7e38, 0x7e39, 0x7e3a,
+  0x7e3c, 0x7e3d, 0x7e3e, 0x7e3f, 0x7e40, 0x7e42, 0x7e43, 0x7e44,
+  0x7e45, 0x7e46, 0x7e48, 0x7e49, 0x7e4a, 0x7e4b, 0x7e4c, 0x7e4d,
+  0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e52, 0x7e53, 0x7e54, 0x7e55,
+  0x7e56, 0x7e57, 0x7e58, 0x7e59, 0x7e5a, 0x7e5b, 0x7e5c, 0x7e5d,
+  /* 0xc0 */
+  0x7e5e, 0x7e5f, 0x7e60, 0x7e61, 0x7e62, 0x7e63, 0x7e64, 0x7e65,
+  0x7e66, 0x7e67, 0x7e68, 0x7e69, 0x7e6a, 0x7e6b, 0x7e6c, 0x7e6d,
+  0x7e6e, 0x7e6f, 0x7e70, 0x7e71, 0x7e72, 0x7e73, 0x7e74, 0x7e75,
+  0x7e76, 0x7e77, 0x7e78, 0x7e79, 0x7e7a, 0x7e7b, 0x7e7c, 0x7e7d,
+  0x7e7e, 0x7e7f, 0x7e80, 0x7e81, 0x7e83, 0x7e84, 0x7e85, 0x7e86,
+  0x7e87, 0x7e88, 0x7e89, 0x7e8a, 0x7e8b, 0x7e8c, 0x7e8d, 0x7e8e,
+  0x7e8f, 0x7e90, 0x7e91, 0x7e92, 0x7e93, 0x7e94, 0x7e95, 0x7e96,
+  0x7e97, 0x7e98, 0x7e99, 0x7e9a, 0x7e9c, 0x7e9d, 0x7e9e, 0x7eae,
+  0x7eb4, 0x7ebb, 0x7ebc, 0x7ed6, 0x7ee4, 0x7eec, 0x7ef9, 0x7f0a,
+  0x7f10, 0x7f1e, 0x7f37, 0x7f39, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e,
+  0x7f3f, 0x7f40, 0x7f41, 0x7f43, 0x7f46, 0x7f47, 0x7f48, 0x7f49,
+  0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f, 0x7f52, 0x7f53,
+  /* 0xc1 */
+  0x7f56, 0x7f59, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f60, 0x7f63,
+  0x7f64, 0x7f65, 0x7f66, 0x7f67, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6f,
+  0x7f70, 0x7f73, 0x7f75, 0x7f76, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b,
+  0x7f7c, 0x7f7d, 0x7f7f, 0x7f80, 0x7f82, 0x7f83, 0x7f84, 0x7f85,
+  0x7f86, 0x7f87, 0x7f88, 0x7f89, 0x7f8b, 0x7f8d, 0x7f8f, 0x7f90,
+  0x7f91, 0x7f92, 0x7f93, 0x7f95, 0x7f96, 0x7f97, 0x7f98, 0x7f99,
+  0x7f9b, 0x7f9c, 0x7fa0, 0x7fa2, 0x7fa3, 0x7fa5, 0x7fa6, 0x7fa8,
+  0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7fb1, 0x7fb3,
+  0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7, 0x7fba, 0x7fbb, 0x7fbe, 0x7fc0,
+  0x7fc2, 0x7fc3, 0x7fc4, 0x7fc6, 0x7fc7, 0x7fc8, 0x7fc9, 0x7fcb,
+  0x7fcd, 0x7fcf, 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd6, 0x7fd7,
+  0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fe2, 0x7fe3,
+  /* 0xc2 */
+  0x7fe4, 0x7fe7, 0x7fe8, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fef,
+  0x7ff2, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffa,
+  0x7ffd, 0x7ffe, 0x7fff, 0x8002, 0x8007, 0x8008, 0x8009, 0x800a,
+  0x800e, 0x800f, 0x8011, 0x8013, 0x801a, 0x801b, 0x801d, 0x801e,
+  0x801f, 0x8021, 0x8023, 0x8024, 0x802b, 0x802c, 0x802d, 0x802e,
+  0x802f, 0x8030, 0x8032, 0x8034, 0x8039, 0x803a, 0x803c, 0x803e,
+  0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804e,
+  0x804f, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x8059,
+  0x805b, 0x805c, 0x805d, 0x805e, 0x805f, 0x8060, 0x8061, 0x8062,
+  0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806b, 0x806c,
+  0x806d, 0x806e, 0x806f, 0x8070, 0x8072, 0x8073, 0x8074, 0x8075,
+  0x8076, 0x8077, 0x8078, 0x8079, 0x807a, 0x807b, 0x807c, 0x807d,
+  /* 0xc3 */
+  0x807e, 0x8081, 0x8082, 0x8085, 0x8088, 0x808a, 0x808d, 0x808e,
+  0x808f, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099,
+  0x809e, 0x80a3, 0x80a6, 0x80a7, 0x80a8, 0x80ac, 0x80b0, 0x80b3,
+  0x80b5, 0x80b6, 0x80b8, 0x80b9, 0x80bb, 0x80c5, 0x80c7, 0x80c8,
+  0x80c9, 0x80ca, 0x80cb, 0x80cf, 0x80d0, 0x80d1, 0x80d2, 0x80d3,
+  0x80d4, 0x80d5, 0x80d8, 0x80df, 0x80e0, 0x80e2, 0x80e3, 0x80e6,
+  0x80ee, 0x80f5, 0x80f7, 0x80f9, 0x80fb, 0x80fe, 0x80ff, 0x8100,
+  0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810b, 0x810c,
+  0x8115, 0x8117, 0x8119, 0x811b, 0x811c, 0x811d, 0x811f, 0x8120,
+  0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, 0x8128,
+  0x8129, 0x812a, 0x812b, 0x812d, 0x812e, 0x8130, 0x8133, 0x8134,
+  0x8135, 0x8137, 0x8139, 0x813a, 0x813b, 0x813c, 0x813d, 0x813f,
+  /* 0xc4 */
+  0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149,
+  0x814d, 0x814e, 0x814f, 0x8152, 0x8156, 0x8157, 0x8158, 0x815b,
+  0x815c, 0x815d, 0x815e, 0x815f, 0x8161, 0x8162, 0x8163, 0x8164,
+  0x8166, 0x8168, 0x816a, 0x816b, 0x816c, 0x816f, 0x8172, 0x8173,
+  0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185,
+  0x8186, 0x8187, 0x8189, 0x818b, 0x818c, 0x818d, 0x818e, 0x8190,
+  0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819a,
+  0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0x81a4, 0x81a5, 0x81a7,
+  0x81a9, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1,
+  0x81b2, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81bc,
+  0x81bd, 0x81be, 0x81bf, 0x81c4, 0x81c5, 0x81c7, 0x81c8, 0x81c9,
+  0x81cb, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, 0x81d3,
+  /* 0xc5 */
+  0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db,
+  0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e4,
+  0x81e5, 0x81e6, 0x81e8, 0x81e9, 0x81eb, 0x81ee, 0x81ef, 0x81f0,
+  0x81f1, 0x81f2, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa,
+  0x81fd, 0x81ff, 0x8203, 0x8207, 0x8208, 0x8209, 0x820a, 0x820b,
+  0x820e, 0x820f, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218,
+  0x8219, 0x821a, 0x821d, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227,
+  0x8229, 0x822e, 0x8232, 0x823a, 0x823c, 0x823d, 0x823f, 0x8240,
+  0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824a, 0x824c,
+  0x824d, 0x824e, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255,
+  0x8256, 0x8257, 0x8259, 0x825b, 0x825c, 0x825d, 0x825e, 0x8260,
+  0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8269,
+  /* 0xc6 */
+  0x826a, 0x826b, 0x826c, 0x826d, 0x8271, 0x8275, 0x8276, 0x8277,
+  0x8278, 0x827b, 0x827c, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286,
+  0x8287, 0x8289, 0x828c, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296,
+  0x829a, 0x829b, 0x829e, 0x82a0, 0x82a2, 0x82a3, 0x82a7, 0x82b2,
+  0x82b5, 0x82b6, 0x82ba, 0x82bb, 0x82bc, 0x82bf, 0x82c0, 0x82c2,
+  0x82c3, 0x82c5, 0x82c6, 0x82c9, 0x82d0, 0x82d6, 0x82d9, 0x82da,
+  0x82dd, 0x82e2, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82ec, 0x82ed,
+  0x82ee, 0x82f0, 0x82f2, 0x82f3, 0x82f5, 0x82f6, 0x82f8, 0x82fa,
+  0x82fc, 0x82fd, 0x82fe, 0x82ff, 0x8300, 0x830a, 0x830b, 0x830d,
+  0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831d, 0x831e,
+  0x831f, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326,
+  0x8329, 0x832a, 0x832e, 0x8330, 0x8332, 0x8337, 0x833b, 0x833d,
+  /* 0xc7 */
+  0x833e, 0x833f, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834a,
+  0x834b, 0x834c, 0x834d, 0x834e, 0x8353, 0x8355, 0x8356, 0x8357,
+  0x8358, 0x8359, 0x835d, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373,
+  0x8374, 0x8375, 0x8376, 0x8379, 0x837a, 0x837e, 0x837f, 0x8380,
+  0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838a, 0x838b,
+  0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396,
+  0x8397, 0x8399, 0x839a, 0x839d, 0x839f, 0x83a1, 0x83a2, 0x83a3,
+  0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83ac, 0x83ad, 0x83ae, 0x83af,
+  0x83b5, 0x83bb, 0x83be, 0x83bf, 0x83c2, 0x83c3, 0x83c4, 0x83c6,
+  0x83c8, 0x83c9, 0x83cb, 0x83cd, 0x83ce, 0x83d0, 0x83d1, 0x83d2,
+  0x83d3, 0x83d5, 0x83d7, 0x83d9, 0x83da, 0x83db, 0x83de, 0x83e2,
+  0x83e3, 0x83e4, 0x83e6, 0x83e7, 0x83e8, 0x83eb, 0x83ec, 0x83ed,
+  /* 0xc8 */
+  0x83ee, 0x83ef, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83fa,
+  0x83fb, 0x83fc, 0x83fe, 0x83ff, 0x8400, 0x8402, 0x8405, 0x8407,
+  0x8408, 0x8409, 0x840a, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415,
+  0x8416, 0x8417, 0x8419, 0x841a, 0x841b, 0x841e, 0x841f, 0x8420,
+  0x8421, 0x8422, 0x8423, 0x8429, 0x842a, 0x842b, 0x842c, 0x842d,
+  0x842e, 0x842f, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436,
+  0x8437, 0x8439, 0x843a, 0x843b, 0x843e, 0x843f, 0x8440, 0x8441,
+  0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a,
+  0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8452, 0x8453,
+  0x8454, 0x8455, 0x8456, 0x8458, 0x845d, 0x845e, 0x845f, 0x8460,
+  0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846a, 0x846e,
+  0x846f, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847b, 0x847c,
+  /* 0xc9 */
+  0x847d, 0x847e, 0x847f, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485,
+  0x8486, 0x848a, 0x848d, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493,
+  0x8494, 0x8495, 0x8496, 0x8498, 0x849a, 0x849b, 0x849d, 0x849e,
+  0x849f, 0x84a0, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7,
+  0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84b0,
+  0x84b1, 0x84b3, 0x84b5, 0x84b6, 0x84b7, 0x84bb, 0x84bc, 0x84be,
+  0x84c0, 0x84c2, 0x84c3, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84cb,
+  0x84cc, 0x84ce, 0x84cf, 0x84d2, 0x84d4, 0x84d5, 0x84d7, 0x84d8,
+  0x84d9, 0x84da, 0x84db, 0x84dc, 0x84de, 0x84e1, 0x84e2, 0x84e4,
+  0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ed, 0x84ee, 0x84ef,
+  0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8,
+  0x84f9, 0x84fa, 0x84fb, 0x84fd, 0x84fe, 0x8500, 0x8501, 0x8502,
+  /* 0xca */
+  0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850a,
+  0x850b, 0x850d, 0x850e, 0x850f, 0x8510, 0x8512, 0x8514, 0x8515,
+  0x8516, 0x8518, 0x8519, 0x851b, 0x851c, 0x851d, 0x851e, 0x8520,
+  0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529,
+  0x852a, 0x852d, 0x852e, 0x852f, 0x8530, 0x8531, 0x8532, 0x8533,
+  0x8534, 0x8535, 0x8536, 0x853e, 0x853f, 0x8540, 0x8541, 0x8542,
+  0x8544, 0x8545, 0x8546, 0x8547, 0x854b, 0x854c, 0x854d, 0x854e,
+  0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x8557,
+  0x8558, 0x855a, 0x855b, 0x855c, 0x855d, 0x855f, 0x8560, 0x8561,
+  0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856a, 0x856b,
+  0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, 0x8575,
+  0x8576, 0x8577, 0x8578, 0x857c, 0x857d, 0x857f, 0x8580, 0x8581,
+  /* 0xcb */
+  0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858a, 0x858b, 0x858c,
+  0x858d, 0x858e, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595,
+  0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859d, 0x859e, 0x859f,
+  0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a5, 0x85a6, 0x85a7, 0x85a9,
+  0x85ab, 0x85ac, 0x85ad, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5,
+  0x85b6, 0x85b8, 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf,
+  0x85c0, 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8,
+  0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85d1, 0x85d2, 0x85d4,
+  0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dd, 0x85de,
+  0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e5, 0x85e6, 0x85e7,
+  0x85e8, 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0,
+  0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8,
+  /* 0xcc */
+  0x85f9, 0x85fa, 0x85fc, 0x85fd, 0x85fe, 0x8600, 0x8601, 0x8602,
+  0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860a, 0x860b,
+  0x860c, 0x860d, 0x860e, 0x860f, 0x8610, 0x8612, 0x8613, 0x8614,
+  0x8615, 0x8617, 0x8618, 0x8619, 0x861a, 0x861b, 0x861c, 0x861d,
+  0x861e, 0x861f, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625,
+  0x8626, 0x8628, 0x862a, 0x862b, 0x862c, 0x862d, 0x862e, 0x862f,
+  0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637,
+  0x8639, 0x863a, 0x863b, 0x863d, 0x863e, 0x863f, 0x8640, 0x8641,
+  0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649,
+  0x864a, 0x864b, 0x864c, 0x8652, 0x8653, 0x8655, 0x8656, 0x8657,
+  0x8658, 0x8659, 0x865b, 0x865c, 0x865d, 0x865f, 0x8660, 0x8661,
+  0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a,
+  /* 0xcd */
+  0x866d, 0x866f, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676,
+  0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688,
+  0x8689, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696,
+  0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869e, 0x869f, 0x86a0,
+  0x86a1, 0x86a2, 0x86a5, 0x86a6, 0x86ab, 0x86ad, 0x86ae, 0x86b2,
+  0x86b3, 0x86b7, 0x86b8, 0x86b9, 0x86bb, 0x86bc, 0x86bd, 0x86be,
+  0x86bf, 0x86c1, 0x86c2, 0x86c3, 0x86c5, 0x86c8, 0x86cc, 0x86cd,
+  0x86d2, 0x86d3, 0x86d5, 0x86d6, 0x86d7, 0x86da, 0x86dc, 0x86dd,
+  0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e5, 0x86e6, 0x86e7, 0x86e8,
+  0x86ea, 0x86eb, 0x86ec, 0x86ef, 0x86f5, 0x86f6, 0x86f7, 0x86fa,
+  0x86fb, 0x86fc, 0x86fd, 0x86ff, 0x8701, 0x8704, 0x8705, 0x8706,
+  0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8714, 0x8716,
+  /* 0xce */
+  0x8719, 0x871b, 0x871d, 0x871f, 0x8720, 0x8724, 0x8726, 0x8727,
+  0x8728, 0x872a, 0x872b, 0x872c, 0x872d, 0x872f, 0x8730, 0x8732,
+  0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873a, 0x873c, 0x873d,
+  0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874a,
+  0x874b, 0x874d, 0x874f, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755,
+  0x8756, 0x8758, 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f,
+  0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b,
+  0x876c, 0x876d, 0x876f, 0x8771, 0x8772, 0x8773, 0x8775, 0x8777,
+  0x8778, 0x8779, 0x877a, 0x877f, 0x8780, 0x8781, 0x8784, 0x8786,
+  0x8787, 0x8789, 0x878a, 0x878c, 0x878e, 0x878f, 0x8790, 0x8791,
+  0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879a, 0x879b,
+  0x879c, 0x879d, 0x879e, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4,
+  /* 0xcf */
+  0x87a5, 0x87a6, 0x87a7, 0x87a9, 0x87aa, 0x87ae, 0x87b0, 0x87b1,
+  0x87b2, 0x87b4, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87bb, 0x87bc,
+  0x87be, 0x87bf, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c7,
+  0x87c8, 0x87c9, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d4,
+  0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87dc, 0x87dd,
+  0x87de, 0x87df, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e6, 0x87e7,
+  0x87e8, 0x87e9, 0x87eb, 0x87ec, 0x87ed, 0x87ef, 0x87f0, 0x87f1,
+  0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87fa,
+  0x87fb, 0x87fc, 0x87fd, 0x87ff, 0x8800, 0x8801, 0x8802, 0x8804,
+  0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880b, 0x880c, 0x880d,
+  0x880e, 0x880f, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, 0x8818,
+  0x8819, 0x881a, 0x881c, 0x881d, 0x881e, 0x881f, 0x8820, 0x8823,
+  /* 0xd0 */
+  0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882a, 0x882b,
+  0x882c, 0x882d, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 0x8834,
+  0x8835, 0x8836, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883e,
+  0x883f, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849,
+  0x884a, 0x884b, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853,
+  0x8855, 0x8856, 0x8858, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e,
+  0x885f, 0x8860, 0x8866, 0x8867, 0x886a, 0x886d, 0x886f, 0x8871,
+  0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887a, 0x887b,
+  0x887c, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888a, 0x888c,
+  0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, 0x8897,
+  0x8898, 0x8899, 0x889a, 0x889b, 0x889d, 0x889e, 0x889f, 0x88a0,
+  0x88a1, 0x88a3, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 0x88aa,
+  /* 0xd1 */
+  0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b2, 0x88b3, 0x88b4, 0x88b5,
+  0x88b6, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bd, 0x88be, 0x88bf,
+  0x88c0, 0x88c3, 0x88c4, 0x88c7, 0x88c8, 0x88ca, 0x88cb, 0x88cc,
+  0x88cd, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d6, 0x88d7, 0x88da,
+  0x88db, 0x88dc, 0x88dd, 0x88de, 0x88e0, 0x88e1, 0x88e6, 0x88e7,
+  0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f2,
+  0x88f5, 0x88f6, 0x88f7, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 0x8900,
+  0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x8909,
+  0x890b, 0x890c, 0x890d, 0x890e, 0x890f, 0x8911, 0x8914, 0x8915,
+  0x8916, 0x8917, 0x8918, 0x891c, 0x891d, 0x891e, 0x891f, 0x8920,
+  0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, 0x892c,
+  0x892d, 0x892e, 0x892f, 0x8931, 0x8932, 0x8933, 0x8935, 0x8937,
+  /* 0xd2 */
+  0x8938, 0x8939, 0x893a, 0x893b, 0x893c, 0x893d, 0x893e, 0x893f,
+  0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949,
+  0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951,
+  0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959,
+  0x895a, 0x895b, 0x895c, 0x895d, 0x8960, 0x8961, 0x8962, 0x8963,
+  0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c,
+  0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974,
+  0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897c, 0x897d,
+  0x897e, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, 0x8989,
+  0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991,
+  0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999,
+  0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1,
+  /* 0xd3 */
+  0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9,
+  0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1,
+  0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9,
+  0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c3,
+  0x89cd, 0x89d3, 0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89d9, 0x89db,
+  0x89dd, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e4, 0x89e7, 0x89e8,
+  0x89e9, 0x89ea, 0x89ec, 0x89ed, 0x89ee, 0x89f0, 0x89f1, 0x89f2,
+  0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x89fb,
+  0x89fc, 0x89fd, 0x89fe, 0x89ff, 0x8a01, 0x8a02, 0x8a03, 0x8a04,
+  0x8a05, 0x8a06, 0x8a08, 0x8a09, 0x8a0a, 0x8a0b, 0x8a0c, 0x8a0d,
+  0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15,
+  0x8a16, 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a1b, 0x8a1c, 0x8a1d,
+  /* 0xd4 */
+  0x8a1e, 0x8a1f, 0x8a20, 0x8a21, 0x8a22, 0x8a23, 0x8a24, 0x8a25,
+  0x8a26, 0x8a27, 0x8a28, 0x8a29, 0x8a2a, 0x8a2b, 0x8a2c, 0x8a2d,
+  0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a32, 0x8a33, 0x8a34, 0x8a35,
+  0x8a36, 0x8a37, 0x8a38, 0x8a39, 0x8a3a, 0x8a3b, 0x8a3c, 0x8a3d,
+  0x8a3f, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46,
+  0x8a47, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f,
+  0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57,
+  0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f,
+  0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67,
+  0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f,
+  0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77,
+  0x8a78, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8a7f, 0x8a80,
+  /* 0xd5 */
+  0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0x8a86, 0x8a87, 0x8a88,
+  0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92,
+  0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b,
+  0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3,
+  0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab,
+  0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3,
+  0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb,
+  0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3,
+  0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb,
+  0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3,
+  0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb,
+  0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3,
+  /* 0xd6 */
+  0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb,
+  0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3,
+  0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb,
+  0x8afc, 0x8afd, 0x8afe, 0x8aff, 0x8b00, 0x8b01, 0x8b02, 0x8b03,
+  0x8b04, 0x8b05, 0x8b06, 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b0c,
+  0x8b0d, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14,
+  0x8b15, 0x8b16, 0x8b17, 0x8b18, 0x8b19, 0x8b1a, 0x8b1b, 0x8b1c,
+  0x8b1d, 0x8b1e, 0x8b1f, 0x8b20, 0x8b21, 0x8b22, 0x8b23, 0x8b24,
+  0x8b25, 0x8b27, 0x8b28, 0x8b29, 0x8b2a, 0x8b2b, 0x8b2c, 0x8b2d,
+  0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b32, 0x8b33, 0x8b34, 0x8b35,
+  0x8b36, 0x8b37, 0x8b38, 0x8b39, 0x8b3a, 0x8b3b, 0x8b3c, 0x8b3d,
+  0x8b3e, 0x8b3f, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45,
+  /* 0xd7 */
+  0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d,
+  0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55,
+  0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d,
+  0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65,
+  0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6d, 0x8b6e, 0x8b6f,
+  0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77,
+  0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8b7f,
+  0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x8b87,
+  0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, 0x8b8f,
+  0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, 0x8b97,
+  0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, 0x8b9f,
+  0x8bac, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bd0, 0x8bea, 0x8c09, 0x8c1e,
+  /* 0xd8 */
+  0x8c38, 0x8c39, 0x8c3a, 0x8c3b, 0x8c3c, 0x8c3d, 0x8c3e, 0x8c3f,
+  0x8c40, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c48, 0x8c4a, 0x8c4b,
+  0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54,
+  0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e,
+  0x8c5f, 0x8c60, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68,
+  0x8c69, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72,
+  0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e,
+  0x8c7f, 0x8c80, 0x8c81, 0x8c83, 0x8c84, 0x8c86, 0x8c87, 0x8c88,
+  0x8c8b, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93,
+  0x8c95, 0x8c96, 0x8c97, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d,
+  0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5,
+  0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad,
+  /* 0xd9 */
+  0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5,
+  0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd,
+  0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5,
+  0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd,
+  0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5,
+  0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd,
+  0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5,
+  0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced,
+  0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5,
+  0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd,
+  0x8cfe, 0x8cff, 0x8d00, 0x8d01, 0x8d02, 0x8d03, 0x8d04, 0x8d05,
+  0x8d06, 0x8d07, 0x8d08, 0x8d09, 0x8d0a, 0x8d0b, 0x8d0c, 0x8d0d,
+  /* 0xda */
+  0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15,
+  0x8d16, 0x8d17, 0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d20,
+  0x8d51, 0x8d52, 0x8d57, 0x8d5f, 0x8d65, 0x8d68, 0x8d69, 0x8d6a,
+  0x8d6c, 0x8d6e, 0x8d6f, 0x8d71, 0x8d72, 0x8d78, 0x8d79, 0x8d7a,
+  0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d7f, 0x8d80, 0x8d82, 0x8d83,
+  0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f,
+  0x8d90, 0x8d92, 0x8d93, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99,
+  0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8da0, 0x8da1, 0x8da2,
+  0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab,
+  0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db2, 0x8db6, 0x8db7,
+  0x8db9, 0x8dbb, 0x8dbd, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc5, 0x8dc7,
+  0x8dc8, 0x8dc9, 0x8dca, 0x8dcd, 0x8dd0, 0x8dd2, 0x8dd3, 0x8dd4,
+  /* 0xdb */
+  0x8dd5, 0x8dd8, 0x8dd9, 0x8ddc, 0x8de0, 0x8de1, 0x8de2, 0x8de5,
+  0x8de6, 0x8de7, 0x8de9, 0x8ded, 0x8dee, 0x8df0, 0x8df1, 0x8df2,
+  0x8df4, 0x8df6, 0x8dfc, 0x8dfe, 0x8dff, 0x8e00, 0x8e01, 0x8e02,
+  0x8e03, 0x8e04, 0x8e06, 0x8e07, 0x8e08, 0x8e0b, 0x8e0d, 0x8e0e,
+  0x8e10, 0x8e11, 0x8e12, 0x8e13, 0x8e15, 0x8e16, 0x8e17, 0x8e18,
+  0x8e19, 0x8e1a, 0x8e1b, 0x8e1c, 0x8e20, 0x8e21, 0x8e24, 0x8e25,
+  0x8e26, 0x8e27, 0x8e28, 0x8e2b, 0x8e2d, 0x8e30, 0x8e32, 0x8e33,
+  0x8e34, 0x8e36, 0x8e37, 0x8e38, 0x8e3b, 0x8e3c, 0x8e3e, 0x8e3f,
+  0x8e43, 0x8e45, 0x8e46, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50,
+  0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e5a, 0x8e5b,
+  0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63,
+  0x8e64, 0x8e65, 0x8e67, 0x8e68, 0x8e6a, 0x8e6b, 0x8e6e, 0x8e71,
+  /* 0xdc */
+  0x8e73, 0x8e75, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7d,
+  0x8e7e, 0x8e80, 0x8e82, 0x8e83, 0x8e84, 0x8e86, 0x8e88, 0x8e89,
+  0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e91, 0x8e92, 0x8e93,
+  0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9d,
+  0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6,
+  0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8ead, 0x8eae, 0x8eb0, 0x8eb1,
+  0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8ebb,
+  0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3,
+  0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb,
+  0x8ecc, 0x8ecd, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4,
+  0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc,
+  0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4,
+  /* 0xdd */
+  0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec,
+  0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4,
+  0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc,
+  0x8efd, 0x8efe, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x8f03, 0x8f04,
+  0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 0x8f0a, 0x8f0b, 0x8f0c,
+  0x8f0d, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f12, 0x8f13, 0x8f14,
+  0x8f15, 0x8f16, 0x8f17, 0x8f18, 0x8f19, 0x8f1a, 0x8f1b, 0x8f1c,
+  0x8f1d, 0x8f1e, 0x8f1f, 0x8f20, 0x8f21, 0x8f22, 0x8f23, 0x8f24,
+  0x8f25, 0x8f26, 0x8f27, 0x8f28, 0x8f29, 0x8f2a, 0x8f2b, 0x8f2c,
+  0x8f2d, 0x8f2e, 0x8f2f, 0x8f30, 0x8f31, 0x8f32, 0x8f33, 0x8f34,
+  0x8f35, 0x8f36, 0x8f37, 0x8f38, 0x8f39, 0x8f3a, 0x8f3b, 0x8f3c,
+  0x8f3d, 0x8f3e, 0x8f3f, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44,
+  /* 0xde */
+  0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c,
+  0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54,
+  0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c,
+  0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64,
+  0x8f65, 0x8f6a, 0x8f80, 0x8f8c, 0x8f92, 0x8f9d, 0x8fa0, 0x8fa1,
+  0x8fa2, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8faa, 0x8fac, 0x8fad,
+  0x8fae, 0x8faf, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8,
+  0x8fba, 0x8fbb, 0x8fbc, 0x8fbf, 0x8fc0, 0x8fc3, 0x8fc6, 0x8fc9,
+  0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fcf, 0x8fd2, 0x8fd6, 0x8fd7,
+  0x8fda, 0x8fe0, 0x8fe1, 0x8fe3, 0x8fe7, 0x8fec, 0x8fef, 0x8ff1,
+  0x8ff2, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffe,
+  0x8fff, 0x9007, 0x9008, 0x900c, 0x900e, 0x9013, 0x9015, 0x9018,
+  /* 0xdf */
+  0x9019, 0x901c, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029,
+  0x902a, 0x902b, 0x902c, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034,
+  0x9037, 0x9039, 0x903a, 0x903d, 0x903f, 0x9040, 0x9043, 0x9045,
+  0x9046, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904e, 0x9054,
+  0x9055, 0x9056, 0x9059, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f,
+  0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906a, 0x906b,
+  0x906c, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077,
+  0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907e, 0x9081, 0x9084,
+  0x9085, 0x9086, 0x9087, 0x9089, 0x908a, 0x908c, 0x908d, 0x908e,
+  0x908f, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909a, 0x909c,
+  0x909e, 0x909f, 0x90a0, 0x90a4, 0x90a5, 0x90a7, 0x90a8, 0x90a9,
+  0x90ab, 0x90ad, 0x90b2, 0x90b7, 0x90bc, 0x90bd, 0x90bf, 0x90c0,
+  /* 0xe0 */
+  0x90c2, 0x90c3, 0x90c6, 0x90c8, 0x90c9, 0x90cb, 0x90cc, 0x90cd,
+  0x90d2, 0x90d4, 0x90d5, 0x90d6, 0x90d8, 0x90d9, 0x90da, 0x90de,
+  0x90df, 0x90e0, 0x90e3, 0x90e4, 0x90e5, 0x90e9, 0x90ea, 0x90ec,
+  0x90ee, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f5, 0x90f6, 0x90f7,
+  0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90ff, 0x9100, 0x9101, 0x9103,
+  0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910a, 0x910b, 0x910c,
+  0x910d, 0x910e, 0x910f, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114,
+  0x9115, 0x9116, 0x9117, 0x9118, 0x911a, 0x911b, 0x911c, 0x911d,
+  0x911f, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, 0x9128,
+  0x9129, 0x912a, 0x912b, 0x912c, 0x912d, 0x912e, 0x9130, 0x9132,
+  0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913a, 0x913b,
+  0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x9141, 0x9142, 0x9144,
+  /* 0xe1 */
+  0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156,
+  0x9158, 0x9159, 0x915b, 0x915c, 0x915f, 0x9160, 0x9166, 0x9167,
+  0x9168, 0x916b, 0x916d, 0x9173, 0x917a, 0x917b, 0x917c, 0x9180,
+  0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918a, 0x918e,
+  0x918f, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199,
+  0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a4, 0x91a5,
+  0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91ab, 0x91ac, 0x91b0, 0x91b1,
+  0x91b2, 0x91b3, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91bb, 0x91bc,
+  0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4,
+  0x91c5, 0x91c6, 0x91c8, 0x91cb, 0x91d0, 0x91d2, 0x91d3, 0x91d4,
+  0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dd,
+  0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5,
+  /* 0xe2 */
+  0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed,
+  0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5,
+  0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd,
+  0x91fe, 0x91ff, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205,
+  0x9206, 0x9207, 0x9208, 0x9209, 0x920a, 0x920b, 0x920c, 0x920d,
+  0x920e, 0x920f, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215,
+  0x9216, 0x9217, 0x9218, 0x9219, 0x921a, 0x921b, 0x921c, 0x921d,
+  0x921e, 0x921f, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x9225,
+  0x9226, 0x9227, 0x9228, 0x9229, 0x922a, 0x922b, 0x922c, 0x922d,
+  0x922e, 0x922f, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, 0x9235,
+  0x9236, 0x9237, 0x9238, 0x9239, 0x923a, 0x923b, 0x923c, 0x923d,
+  0x923e, 0x923f, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, 0x9245,
+  /* 0xe3 */
+  0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d,
+  0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255,
+  0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d,
+  0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265,
+  0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d,
+  0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276,
+  0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e,
+  0x927f, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286,
+  0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928f,
+  0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0x9297,
+  0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f,
+  0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7,
+  /* 0xe4 */
+  0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92af, 0x92b0,
+  0x92b1, 0x92b2, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8,
+  0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0,
+  0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c9,
+  0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1,
+  0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9,
+  0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1,
+  0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9,
+  0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1,
+  0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9,
+  0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0x9300, 0x9301,
+  0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, 0x9309,
+  /* 0xe5 */
+  0x930a, 0x930b, 0x930c, 0x930d, 0x930e, 0x930f, 0x9310, 0x9311,
+  0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319,
+  0x931a, 0x931b, 0x931c, 0x931d, 0x931e, 0x931f, 0x9320, 0x9321,
+  0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329,
+  0x932a, 0x932b, 0x932c, 0x932d, 0x932e, 0x932f, 0x9330, 0x9331,
+  0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339,
+  0x933a, 0x933b, 0x933c, 0x933d, 0x933f, 0x9340, 0x9341, 0x9342,
+  0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934a,
+  0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9352,
+  0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, 0x935a,
+  0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361, 0x9362,
+  0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0x936b,
+  /* 0xe6 */
+  0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373,
+  0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b,
+  0x937c, 0x937d, 0x937e, 0x937f, 0x9380, 0x9381, 0x9382, 0x9383,
+  0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b,
+  0x938c, 0x938d, 0x938e, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394,
+  0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c,
+  0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4,
+  0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac,
+  0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4,
+  0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc,
+  0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4,
+  0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93cb, 0x93cc, 0x93cd,
+  /* 0xe7 */
+  0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5,
+  0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de,
+  0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6,
+  0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee,
+  0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6,
+  0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe,
+  0x93ff, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406,
+  0x9407, 0x9408, 0x9409, 0x940a, 0x940b, 0x940c, 0x940d, 0x940e,
+  0x940f, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, 0x9416,
+  0x9417, 0x9418, 0x9419, 0x941a, 0x941b, 0x941c, 0x941d, 0x941e,
+  0x941f, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, 0x9426,
+  0x9427, 0x9428, 0x9429, 0x942a, 0x942b, 0x942c, 0x942d, 0x942e,
+  /* 0xe8 */
+  0x942f, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436,
+  0x9437, 0x9438, 0x9439, 0x943a, 0x943b, 0x943c, 0x943d, 0x943f,
+  0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447,
+  0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f,
+  0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457,
+  0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f,
+  0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467,
+  0x9468, 0x9469, 0x946a, 0x946c, 0x946d, 0x946e, 0x946f, 0x9470,
+  0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478,
+  0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x947f, 0x9480,
+  0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, 0x94c7,
+  0x94cf, 0x94d3, 0x94d4, 0x94da, 0x94e6, 0x94fb, 0x951c, 0x9520,
+  /* 0xe9 */
+  0x9527, 0x9533, 0x953d, 0x9543, 0x9548, 0x954b, 0x9555, 0x955a,
+  0x9560, 0x956e, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957a,
+  0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, 0x9583,
+  0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b,
+  0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593,
+  0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b,
+  0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3,
+  0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab,
+  0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3,
+  0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb,
+  0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, 0x95c3,
+  0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, 0x95cb,
+  /* 0xea */
+  0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3,
+  0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db,
+  0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3,
+  0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95ec, 0x95ff, 0x9607, 0x9613,
+  0x9618, 0x961b, 0x961e, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626,
+  0x9627, 0x9628, 0x9629, 0x962b, 0x962c, 0x962d, 0x962f, 0x9630,
+  0x9637, 0x9638, 0x9639, 0x963a, 0x963e, 0x9641, 0x9643, 0x964a,
+  0x964e, 0x964f, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x9658,
+  0x9659, 0x965a, 0x965c, 0x965d, 0x965e, 0x9660, 0x9663, 0x9665,
+  0x9666, 0x966b, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673,
+  0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, 0x967f,
+  0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, 0x968a,
+  /* 0xeb */
+  0x968c, 0x968e, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969a,
+  0x969b, 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3,
+  0x96a4, 0x96a5, 0x96a6, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac,
+  0x96ad, 0x96ae, 0x96af, 0x96b1, 0x96b2, 0x96b4, 0x96b5, 0x96b7,
+  0x96b8, 0x96ba, 0x96bb, 0x96bf, 0x96c2, 0x96c3, 0x96c8, 0x96ca,
+  0x96cb, 0x96d0, 0x96d1, 0x96d3, 0x96d4, 0x96d6, 0x96d7, 0x96d8,
+  0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e1,
+  0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96eb, 0x96ec,
+  0x96ed, 0x96ee, 0x96f0, 0x96f1, 0x96f2, 0x96f4, 0x96f5, 0x96f8,
+  0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96ff, 0x9702, 0x9703, 0x9705,
+  0x970a, 0x970b, 0x970c, 0x9710, 0x9711, 0x9712, 0x9714, 0x9715,
+  0x9717, 0x9718, 0x9719, 0x971a, 0x971b, 0x971d, 0x971f, 0x9720,
+  /* 0xec */
+  0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728,
+  0x9729, 0x972b, 0x972c, 0x972e, 0x972f, 0x9731, 0x9733, 0x9734,
+  0x9735, 0x9736, 0x9737, 0x973a, 0x973b, 0x973c, 0x973d, 0x973f,
+  0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747,
+  0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f,
+  0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975a, 0x975c,
+  0x975d, 0x975f, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976a,
+  0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9772,
+  0x9775, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977d, 0x977e,
+  0x977f, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, 0x9787,
+  0x9788, 0x9789, 0x978a, 0x978c, 0x978e, 0x978f, 0x9790, 0x9793,
+  0x9795, 0x9796, 0x9797, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d,
+  /* 0xed */
+  0x979e, 0x979f, 0x97a1, 0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a7,
+  0x97a8, 0x97a9, 0x97aa, 0x97ac, 0x97ae, 0x97b0, 0x97b1, 0x97b3,
+  0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc,
+  0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4,
+  0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc,
+  0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4,
+  0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc,
+  0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4,
+  0x97e5, 0x97e8, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f4,
+  0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe,
+  0x97ff, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, 0x9806,
+  0x9807, 0x9808, 0x9809, 0x980a, 0x980b, 0x980c, 0x980d, 0x980e,
+  /* 0xee */
+  0x980f, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816,
+  0x9817, 0x9818, 0x9819, 0x981a, 0x981b, 0x981c, 0x981d, 0x981e,
+  0x981f, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826,
+  0x9827, 0x9828, 0x9829, 0x982a, 0x982b, 0x982c, 0x982d, 0x982e,
+  0x982f, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836,
+  0x9837, 0x9838, 0x9839, 0x983a, 0x983b, 0x983c, 0x983d, 0x983e,
+  0x983f, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846,
+  0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e,
+  0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856,
+  0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e,
+  0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866,
+  0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e,
+  /* 0xef */
+  0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988b, 0x988e,
+  0x9892, 0x9895, 0x9899, 0x98a3, 0x98a8, 0x98a9, 0x98aa, 0x98ab,
+  0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3,
+  0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb,
+  0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3,
+  0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb,
+  0x98cc, 0x98cd, 0x98cf, 0x98d0, 0x98d4, 0x98d6, 0x98d7, 0x98db,
+  0x98dc, 0x98dd, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5,
+  0x98e6, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef,
+  0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7,
+  0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x98ff,
+  0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, 0x9907,
+  /* 0xf0 */
+  0x9908, 0x9909, 0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9911,
+  0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919,
+  0x991a, 0x991b, 0x991c, 0x991d, 0x991e, 0x991f, 0x9920, 0x9921,
+  0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929,
+  0x992a, 0x992b, 0x992c, 0x992d, 0x992f, 0x9930, 0x9931, 0x9932,
+  0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993a,
+  0x993b, 0x993c, 0x993d, 0x993e, 0x993f, 0x9940, 0x9941, 0x9942,
+  0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a,
+  0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952,
+  0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c,
+  0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9964, 0x9966,
+  0x9973, 0x9978, 0x9979, 0x997b, 0x997e, 0x9982, 0x9983, 0x9989,
+  /* 0xf1 */
+  0x998c, 0x998e, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f,
+  0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a6, 0x99a7, 0x99a9,
+  0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1,
+  0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9,
+  0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1,
+  0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9,
+  0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1,
+  0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9,
+  0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1,
+  0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9,
+  0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1,
+  0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9,
+  /* 0xf2 */
+  0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x99ff, 0x9a00, 0x9a01,
+  0x9a02, 0x9a03, 0x9a04, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09,
+  0x9a0a, 0x9a0b, 0x9a0c, 0x9a0d, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11,
+  0x9a12, 0x9a13, 0x9a14, 0x9a15, 0x9a16, 0x9a17, 0x9a18, 0x9a19,
+  0x9a1a, 0x9a1b, 0x9a1c, 0x9a1d, 0x9a1e, 0x9a1f, 0x9a20, 0x9a21,
+  0x9a22, 0x9a23, 0x9a24, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29,
+  0x9a2a, 0x9a2b, 0x9a2c, 0x9a2d, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31,
+  0x9a32, 0x9a33, 0x9a34, 0x9a35, 0x9a36, 0x9a37, 0x9a38, 0x9a39,
+  0x9a3a, 0x9a3b, 0x9a3c, 0x9a3d, 0x9a3e, 0x9a3f, 0x9a40, 0x9a41,
+  0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49,
+  0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51,
+  0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59,
+  /* 0xf3 */
+  0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61,
+  0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69,
+  0x9a6a, 0x9a6b, 0x9a72, 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a94,
+  0x9a95, 0x9a99, 0x9aa6, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad,
+  0x9aae, 0x9aaf, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab9, 0x9abb,
+  0x9abd, 0x9abe, 0x9abf, 0x9ac3, 0x9ac4, 0x9ac6, 0x9ac7, 0x9ac8,
+  0x9ac9, 0x9aca, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad2, 0x9ad4,
+  0x9ad5, 0x9ad6, 0x9ad7, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add,
+  0x9ade, 0x9ae0, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae7, 0x9ae8,
+  0x9ae9, 0x9aea, 0x9aec, 0x9aee, 0x9af0, 0x9af1, 0x9af2, 0x9af3,
+  0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9afa, 0x9afc, 0x9afd,
+  0x9afe, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b04, 0x9b05, 0x9b06,
+  /* 0xf4 */
+  0x9b07, 0x9b09, 0x9b0a, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, 0x9b10,
+  0x9b11, 0x9b12, 0x9b14, 0x9b15, 0x9b16, 0x9b17, 0x9b18, 0x9b19,
+  0x9b1a, 0x9b1b, 0x9b1c, 0x9b1d, 0x9b1e, 0x9b20, 0x9b21, 0x9b22,
+  0x9b24, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2b,
+  0x9b2c, 0x9b2d, 0x9b2e, 0x9b30, 0x9b31, 0x9b33, 0x9b34, 0x9b35,
+  0x9b36, 0x9b37, 0x9b38, 0x9b39, 0x9b3a, 0x9b3d, 0x9b3e, 0x9b3f,
+  0x9b40, 0x9b46, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b50, 0x9b52,
+  0x9b53, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b,
+  0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63,
+  0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b,
+  0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73,
+  0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b,
+  /* 0xf5 */
+  0x9b7c, 0x9b7d, 0x9b7e, 0x9b7f, 0x9b80, 0x9b81, 0x9b82, 0x9b83,
+  0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b,
+  0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93,
+  0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b,
+  0x9b9c, 0x9b9d, 0x9b9e, 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3,
+  0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab,
+  0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3,
+  0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb,
+  0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3,
+  0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb,
+  0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3,
+  0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb,
+  /* 0xf6 */
+  0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3,
+  0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb,
+  0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3,
+  0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb,
+  0x9bfc, 0x9bfd, 0x9bfe, 0x9bff, 0x9c00, 0x9c01, 0x9c02, 0x9c03,
+  0x9c04, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 0x9c0a, 0x9c0b,
+  0x9c0c, 0x9c0d, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c12, 0x9c13,
+  0x9c14, 0x9c15, 0x9c16, 0x9c17, 0x9c18, 0x9c19, 0x9c1a, 0x9c1b,
+  0x9c1c, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, 0x9c23,
+  0x9c24, 0x9c25, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c2b,
+  0x9c2c, 0x9c2d, 0x9c2e, 0x9c2f, 0x9c30, 0x9c31, 0x9c32, 0x9c33,
+  0x9c34, 0x9c35, 0x9c36, 0x9c37, 0x9c38, 0x9c39, 0x9c3a, 0x9c3b,
+  /* 0xf7 */
+  0x9c3c, 0x9c3d, 0x9c3e, 0x9c3f, 0x9c40, 0x9c41, 0x9c42, 0x9c43,
+  0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b,
+  0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0x9c53,
+  0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b,
+  0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c62, 0x9c63,
+  0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b,
+  0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73,
+  0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b,
+  0x9c7d, 0x9c7e, 0x9c80, 0x9c83, 0x9c84, 0x9c89, 0x9c8a, 0x9c8c,
+  0x9c8f, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9c9d, 0x9caa,
+  0x9cac, 0x9caf, 0x9cb9, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2,
+  0x9cc8, 0x9cc9, 0x9cd1, 0x9cd2, 0x9cda, 0x9cdb, 0x9ce0, 0x9ce1,
+  /* 0xf8 */
+  0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea,
+  0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2,
+  0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa,
+  0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x9d00, 0x9d01, 0x9d02,
+  0x9d03, 0x9d04, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 0x9d0a,
+  0x9d0b, 0x9d0c, 0x9d0d, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d12,
+  0x9d13, 0x9d14, 0x9d15, 0x9d16, 0x9d17, 0x9d18, 0x9d19, 0x9d1a,
+  0x9d1b, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d1f, 0x9d20, 0x9d21, 0x9d22,
+  0x9d23, 0x9d24, 0x9d25, 0x9d26, 0x9d27, 0x9d28, 0x9d29, 0x9d2a,
+  0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d31, 0x9d32,
+  0x9d33, 0x9d34, 0x9d35, 0x9d36, 0x9d37, 0x9d38, 0x9d39, 0x9d3a,
+  0x9d3b, 0x9d3c, 0x9d3d, 0x9d3e, 0x9d3f, 0x9d40, 0x9d41, 0x9d42,
+  /* 0xf9 */
+  0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a,
+  0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52,
+  0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a,
+  0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62,
+  0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a,
+  0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72,
+  0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a,
+  0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x9d82,
+  0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a,
+  0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92,
+  0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a,
+  0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2,
+  /* 0xfa */
+  0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa,
+  0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2,
+  0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba,
+  0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2,
+  0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca,
+  0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2,
+  0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda,
+  0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2,
+  0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea,
+  0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2,
+  0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa,
+  0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9dff, 0x9e00, 0x9e01, 0x9e02,
+  /* 0xfb */
+  0x9e03, 0x9e04, 0x9e05, 0x9e06, 0x9e07, 0x9e08, 0x9e09, 0x9e0a,
+  0x9e0b, 0x9e0c, 0x9e0d, 0x9e0e, 0x9e0f, 0x9e10, 0x9e11, 0x9e12,
+  0x9e13, 0x9e14, 0x9e15, 0x9e16, 0x9e17, 0x9e18, 0x9e19, 0x9e1a,
+  0x9e1b, 0x9e1c, 0x9e1d, 0x9e1e, 0x9e24, 0x9e27, 0x9e2e, 0x9e30,
+  0x9e34, 0x9e3b, 0x9e3c, 0x9e40, 0x9e4d, 0x9e50, 0x9e52, 0x9e53,
+  0x9e54, 0x9e56, 0x9e59, 0x9e5d, 0x9e5f, 0x9e60, 0x9e61, 0x9e62,
+  0x9e65, 0x9e6e, 0x9e6f, 0x9e72, 0x9e74, 0x9e75, 0x9e76, 0x9e77,
+  0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e80, 0x9e81,
+  0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e89, 0x9e8a, 0x9e8c, 0x9e8d,
+  0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e94, 0x9e95, 0x9e96, 0x9e97,
+  0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9e, 0x9ea0, 0x9ea1,
+  0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa,
+  /* 0xfc */
+  0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2,
+  0x9eb3, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb9, 0x9eba, 0x9ebc, 0x9ebf,
+  0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8,
+  0x9eca, 0x9ecb, 0x9ecc, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed5, 0x9ed6,
+  0x9ed7, 0x9ed9, 0x9eda, 0x9ede, 0x9ee1, 0x9ee3, 0x9ee4, 0x9ee6,
+  0x9ee8, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2,
+  0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9efa, 0x9efd,
+  0x9eff, 0x9f00, 0x9f01, 0x9f02, 0x9f03, 0x9f04, 0x9f05, 0x9f06,
+  0x9f07, 0x9f08, 0x9f09, 0x9f0a, 0x9f0c, 0x9f0f, 0x9f11, 0x9f12,
+  0x9f14, 0x9f15, 0x9f16, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1c, 0x9f1d,
+  0x9f1e, 0x9f1f, 0x9f21, 0x9f23, 0x9f24, 0x9f25, 0x9f26, 0x9f27,
+  0x9f28, 0x9f29, 0x9f2a, 0x9f2b, 0x9f2d, 0x9f2e, 0x9f30, 0x9f31,
+  /* 0xfd */
+  0x9f32, 0x9f33, 0x9f34, 0x9f35, 0x9f36, 0x9f38, 0x9f3a, 0x9f3c,
+  0x9f3f, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f45, 0x9f46, 0x9f47,
+  0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f,
+  0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59,
+  0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61,
+  0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69,
+  0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71,
+  0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79,
+  0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f81, 0x9f82, 0x9f8d,
+  0x9f8e, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95,
+  0x9f96, 0x9f97, 0x9f98, 0x9f9c, 0x9f9d, 0x9f9e, 0x9fa1, 0x9fa2,
+  0x9fa3, 0x9fa4, 0x9fa5, 0xf92c, 0xf979, 0xf995, 0xf9e7, 0xf9f1,
+  /* 0xfe */
+  0xfa0c, 0xfa0d, 0xfa0e, 0xfa0f, 0xfa11, 0xfa13, 0xfa14, 0xfa18,
+  0xfa1f, 0xfa20, 0xfa21, 0xfa23, 0xfa24, 0xfa27, 0xfa28, 0xfa29,
+};
+
+static int
+gbkext2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0xa8 && c1 <= 0xfe)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xa1)) {
+        unsigned int i = 96 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40));
+        unsigned short wc = 0xfffd;
+        {
+          if (i < 12016)
+            wc = gbkext2_2uni_pagea8[i-3744];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
diff --git a/libiconv/gbkext_inv.h b/libiconv/gbkext_inv.h
new file mode 100644 (file)
index 0000000..3899520
--- /dev/null
@@ -0,0 +1,2324 @@
+
+/*
+ * GBK extensions
+ */
+
+static const unsigned short gbkext_inv_2charset[14313] = {
+  0xa840, 0xa841, 0xa842, 0xa95c, 0xa843, 0xa844, 0xa845, 0xa846,
+  0xa847, 0xa848, 0xa959, 0xa849, 0xa84a, 0xa84b, 0xa84c, 0xa84d,
+  0xa84e, 0xa84f, 0xa850, 0xa851, 0xa852, 0xa892, 0xa853, 0xa854,
+  0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, 0xa85c,
+  0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, 0xa864,
+  0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c,
+  0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, 0xa874,
+  0xa875, 0xa876, 0xa877, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c,
+  0xa87d, 0xa87e, 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885,
+  0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, 0xa88d,
+  0xa88e, 0xa88f, 0xa890, 0xa891, 0xa965, 0xa996, 0xa893, 0xa894,
+  0xa895, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946,
+  0xa947, 0xa948, 0xa961, 0xa962, 0xa966, 0xa967, 0xa960, 0xa963,
+  0xa964, 0xa95a, 0xa949, 0xa94a, 0xa94b, 0xa94c, 0xa94d, 0xa94e,
+  0xa94f, 0xa950, 0xa951, 0xa952, 0xa953, 0xa954, 0x8140, 0x8141,
+  0x8142, 0x8143, 0x8144, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149,
+  0x814a, 0x814b, 0x814c, 0x814d, 0x814e, 0x814f, 0x8150, 0x8151,
+  0x8152, 0x8153, 0x8154, 0x8155, 0x8156, 0x8157, 0x8158, 0x8159,
+  0x815a, 0x815b, 0x815c, 0x815d, 0x815e, 0x815f, 0x8160, 0x8161,
+  0x8162, 0x8163, 0x8164, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169,
+  0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171,
+  0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179,
+  0x817a, 0x817b, 0x817c, 0x817d, 0x817e, 0x8180, 0x8181, 0x8182,
+  0x8183, 0x8184, 0x8185, 0x8186, 0x8187, 0x8188, 0x8189, 0x818a,
+  0x818b, 0x818c, 0x818d, 0x818e, 0x818f, 0x8190, 0x8191, 0x8192,
+  0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, 0x8199, 0x819a,
+  0x819b, 0x819c, 0x819d, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2,
+  0x81a3, 0x81a4, 0x81a5, 0x81a6, 0x81a7, 0x81a8, 0x81a9, 0x81aa,
+  0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2,
+  0x81b3, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81ba,
+  0x81bb, 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2,
+  0x81c3, 0x81c4, 0x81c5, 0x81c6, 0x81c7, 0x81c8, 0x81c9, 0x81ca,
+  0x81cb, 0x81cc, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2,
+  0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da,
+  0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2,
+  0x81e3, 0x81e4, 0x81e5, 0x81e6, 0x81e7, 0x81e8, 0x81e9, 0x81ea,
+  0x81eb, 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f2,
+  0x81f3, 0x81f4, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa,
+  0x81fb, 0x81fc, 0x81fd, 0x81fe, 0x8240, 0x8241, 0x8242, 0x8243,
+  0x8244, 0x8245, 0x8246, 0x8247, 0x8248, 0x8249, 0x824a, 0x824b,
+  0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, 0x8252, 0x8253,
+  0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8259, 0x825a, 0x825b,
+  0x825c, 0x825d, 0x825e, 0x825f, 0x8260, 0x8261, 0x8262, 0x8263,
+  0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b,
+  0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273,
+  0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b,
+  0x827c, 0x827d, 0x827e, 0x8280, 0x8281, 0x8282, 0x8283, 0x8284,
+  0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 0x828a, 0x828b, 0x828c,
+  0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0x8292, 0x8293, 0x8294,
+  0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x829b, 0x829c,
+  0x829d, 0x829e, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4,
+  0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac,
+  0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4,
+  0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc,
+  0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4,
+  0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc,
+  0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4,
+  0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc,
+  0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4,
+  0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec,
+  0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4,
+  0x82f5, 0x82f6, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc,
+  0x82fd, 0x82fe, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345,
+  0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d,
+  0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355,
+  0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d,
+  0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365,
+  0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d,
+  0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375,
+  0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d,
+  0x837e, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386,
+  0x8387, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e,
+  0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396,
+  0x8397, 0x8398, 0x8399, 0x839a, 0x839b, 0x839c, 0x839d, 0x839e,
+  0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6,
+  0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae,
+  0x83af, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6,
+  0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, 0x83be,
+  0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6,
+  0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce,
+  0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6,
+  0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, 0x83de,
+  0x83df, 0x83e0, 0x83e1, 0x83e2, 0x83e3, 0x83e4, 0x83e5, 0x83e6,
+  0x83e7, 0x83e8, 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0x83ed, 0x83ee,
+  0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3, 0x83f4, 0x83f5, 0x83f6,
+  0x83f7, 0x83f8, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe,
+  0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8446, 0x8447,
+  0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f,
+  0x8450, 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457,
+  0x8458, 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f,
+  0x8460, 0x8461, 0x8462, 0x8463, 0x8464, 0x8465, 0x8466, 0x8467,
+  0x8468, 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x846f,
+  0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0x8477,
+  0x8478, 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480,
+  0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488,
+  0x8489, 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490,
+  0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8497, 0x8498,
+  0x8499, 0x849a, 0x849b, 0x849c, 0x849d, 0x849e, 0x849f, 0x84a0,
+  0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8,
+  0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0,
+  0x84b1, 0x84b2, 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8,
+  0x84b9, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0,
+  0x84c1, 0x84c2, 0x84c3, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8,
+  0x84c9, 0x84ca, 0x84cb, 0x84cc, 0x84cd, 0x84ce, 0x84cf, 0x84d0,
+  0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6, 0x84d7, 0x84d8,
+  0x84d9, 0x84da, 0x84db, 0x84dc, 0x84dd, 0x84de, 0x84df, 0x84e0,
+  0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8,
+  0x84e9, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0,
+  0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8,
+  0x84f9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0x84fe, 0x8540, 0x8541,
+  0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0x8548, 0x8549,
+  0x854a, 0x854b, 0x854c, 0x854d, 0x854e, 0x854f, 0x8550, 0x8551,
+  0x8552, 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559,
+  0x855a, 0x855b, 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561,
+  0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569,
+  0x856a, 0x856b, 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571,
+  0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, 0x8579,
+  0x857a, 0x857b, 0x857c, 0x857d, 0x857e, 0x8580, 0x8581, 0x8582,
+  0x8583, 0x8584, 0x8585, 0x8586, 0x8587, 0x8588, 0x8589, 0x858a,
+  0x858b, 0x858c, 0x858d, 0x858e, 0x858f, 0x8590, 0x8591, 0x8592,
+  0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859a,
+  0x859b, 0x859c, 0x859d, 0x859e, 0x859f, 0x85a0, 0x85a1, 0x85a2,
+  0x85a3, 0x85a4, 0x85a5, 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa,
+  0x85ab, 0x85ac, 0x85ad, 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2,
+  0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0x85ba,
+  0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c0, 0x85c1, 0x85c2,
+  0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85c9, 0x85ca,
+  0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d2,
+  0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da,
+  0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2,
+  0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85e9, 0x85ea,
+  0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f2,
+  0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9, 0x85fa,
+  0x85fb, 0x85fc, 0x85fd, 0x85fe, 0x8640, 0x8641, 0x8642, 0x8643,
+  0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864a, 0x864b,
+  0x864c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8652, 0x8653,
+  0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865a, 0x865b,
+  0x865c, 0x865d, 0x865e, 0x865f, 0x8660, 0x8661, 0x8662, 0x8663,
+  0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x866b,
+  0x866c, 0x866d, 0x866e, 0x866f, 0x8670, 0x8671, 0x8672, 0x8673,
+  0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, 0x867a, 0x867b,
+  0x867c, 0x867d, 0x867e, 0x8680, 0x8681, 0x8682, 0x8683, 0x8684,
+  0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868a, 0x868b, 0x868c,
+  0x868d, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8693, 0x8694,
+  0x8695, 0x8696, 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869c,
+  0x869d, 0x869e, 0x869f, 0x86a0, 0x86a1, 0x86a2, 0x86a3, 0x86a4,
+  0x86a5, 0x86a6, 0x86a7, 0x86a8, 0x86a9, 0x86aa, 0x86ab, 0x86ac,
+  0x86ad, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b2, 0x86b3, 0x86b4,
+  0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, 0x86ba, 0x86bb, 0x86bc,
+  0x86bd, 0x86be, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4,
+  0x86c5, 0x86c6, 0x86c7, 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc,
+  0x86cd, 0x86ce, 0x86cf, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4,
+  0x86d5, 0x86d6, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc,
+  0x86dd, 0x86de, 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4,
+  0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0x86ea, 0x86eb, 0x86ec,
+  0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0x86f2, 0x86f3, 0x86f4,
+  0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0x86fa, 0x86fb, 0x86fc,
+  0x86fd, 0x86fe, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745,
+  0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d,
+  0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8754, 0x8755,
+  0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, 0x875c, 0x875d,
+  0x875e, 0x875f, 0x8760, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765,
+  0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d,
+  0x876e, 0x876f, 0x8770, 0x8771, 0x8772, 0x8773, 0x8774, 0x8775,
+  0x8776, 0x8777, 0x8778, 0x8779, 0x877a, 0x877b, 0x877c, 0x877d,
+  0x877e, 0x8780, 0x8781, 0x8782, 0x8783, 0x8784, 0x8785, 0x8786,
+  0x8787, 0x8788, 0x8789, 0x878a, 0x878b, 0x878c, 0x878d, 0x878e,
+  0x878f, 0x8790, 0x8791, 0x8792, 0x8793, 0x8794, 0x8795, 0x8796,
+  0x8797, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e,
+  0x879f, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0x87a5, 0x87a6,
+  0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae,
+  0x87af, 0x87b0, 0x87b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6,
+  0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be,
+  0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6,
+  0x87c7, 0x87c8, 0x87c9, 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce,
+  0x87cf, 0x87d0, 0x87d1, 0x87d2, 0x87d3, 0x87d4, 0x87d5, 0x87d6,
+  0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0x87dd, 0x87de,
+  0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e5, 0x87e6,
+  0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, 0x87ed, 0x87ee,
+  0x87ef, 0x87f0, 0x87f1, 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6,
+  0x87f7, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe,
+  0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847,
+  0x8848, 0x8849, 0x884a, 0x884b, 0x884c, 0x884d, 0x884e, 0x884f,
+  0x8850, 0x8851, 0x8852, 0x8853, 0x8854, 0x8855, 0x8856, 0x8857,
+  0x8858, 0x8859, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, 0x885f,
+  0x8860, 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867,
+  0x8868, 0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f,
+  0x8870, 0x8871, 0x8872, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877,
+  0x8878, 0x8879, 0x887a, 0x887b, 0x887c, 0x887d, 0x887e, 0x8880,
+  0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888,
+  0x8889, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890,
+  0x8891, 0x8892, 0x8893, 0x8894, 0x8895, 0x8896, 0x8897, 0x8898,
+  0x8899, 0x889a, 0x889b, 0x889c, 0x889d, 0x889e, 0x889f, 0x88a0,
+  0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8,
+  0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0,
+  0x88b1, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8,
+  0x88b9, 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88be, 0x88bf, 0x88c0,
+  0x88c1, 0x88c2, 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8,
+  0x88c9, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0,
+  0x88d1, 0x88d2, 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8,
+  0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0,
+  0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8,
+  0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0,
+  0x88f1, 0x88f2, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8,
+  0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941,
+  0x8942, 0x8943, 0x8944, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949,
+  0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951,
+  0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959,
+  0x895a, 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0x8960, 0x8961,
+  0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969,
+  0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971,
+  0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979,
+  0x897a, 0x897b, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982,
+  0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a,
+  0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992,
+  0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a,
+  0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2,
+  0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, 0x89aa,
+  0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2,
+  0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba,
+  0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2,
+  0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca,
+  0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d2,
+  0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da,
+  0x89db, 0x89dc, 0x89dd, 0x89de, 0x89df, 0x89e0, 0x89e1, 0x89e2,
+  0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, 0x89e9, 0x89ea,
+  0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, 0x89f1, 0x89f2,
+  0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa,
+  0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a40, 0x8a41, 0x8a42, 0x8a43,
+  0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b,
+  0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0x8a53,
+  0x8a54, 0x8a55, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b,
+  0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63,
+  0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b,
+  0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73,
+  0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0x8a7a, 0x8a7b,
+  0x8a7c, 0x8a7d, 0x8a7e, 0x8a80, 0x8a81, 0x8a82, 0x8a83, 0x8a84,
+  0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c,
+  0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94,
+  0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c,
+  0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4,
+  0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac,
+  0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4,
+  0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, 0x8abc,
+  0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4,
+  0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc,
+  0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4,
+  0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc,
+  0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4,
+  0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec,
+  0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4,
+  0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, 0x8afc,
+  0x8afd, 0x8afe, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45,
+  0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d,
+  0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55,
+  0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d,
+  0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65,
+  0x8b66, 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d,
+  0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75,
+  0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d,
+  0x8b7e, 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86,
+  0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e,
+  0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96,
+  0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e,
+  0x8b9f, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6,
+  0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae,
+  0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6,
+  0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8bbe,
+  0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6,
+  0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce,
+  0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6,
+  0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde,
+  0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6,
+  0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0x8bec, 0x8bed, 0x8bee,
+  0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6,
+  0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe,
+  0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47,
+  0x8c48, 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f,
+  0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, 0x8c55, 0x8c56, 0x8c57,
+  0x8c58, 0x8c59, 0x8c5a, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, 0x8c5f,
+  0x8c60, 0x8c61, 0x8c62, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67,
+  0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f,
+  0x8c70, 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0x8c75, 0x8c76, 0x8c77,
+  0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, 0x8c80,
+  0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88,
+  0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90,
+  0x8c91, 0x8c92, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98,
+  0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0,
+  0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8,
+  0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0,
+  0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8,
+  0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0,
+  0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8,
+  0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0,
+  0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8,
+  0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0,
+  0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8,
+  0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, 0x8cee, 0x8cef, 0x8cf0,
+  0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8,
+  0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8d40, 0x8d41,
+  0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49,
+  0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51,
+  0x8d52, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59,
+  0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, 0x8d60, 0x8d61,
+  0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69,
+  0x8d6a, 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71,
+  0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d78, 0x8d79,
+  0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d80, 0x8d81, 0x8d82,
+  0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8a,
+  0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d92,
+  0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a,
+  0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8d9f, 0x8da0, 0x8da1, 0x8da2,
+  0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa,
+  0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2,
+  0x8db3, 0x8db4, 0x8db5, 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba,
+  0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, 0x8dc1, 0x8dc2,
+  0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca,
+  0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2,
+  0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, 0x8dda,
+  0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2,
+  0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea,
+  0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df2,
+  0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa,
+  0x8dfb, 0x8dfc, 0x8dfd, 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43,
+  0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b,
+  0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53,
+  0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b,
+  0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63,
+  0x8e64, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b,
+  0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73,
+  0x8e74, 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b,
+  0x8e7c, 0x8e7d, 0x8e7e, 0x8e80, 0x8e81, 0x8e82, 0x8e83, 0x8e84,
+  0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c,
+  0x8e8d, 0x8e8e, 0x8e8f, 0x8e90, 0x8e91, 0x8e92, 0x8e93, 0x8e94,
+  0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9c,
+  0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4,
+  0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac,
+  0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4,
+  0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc,
+  0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4,
+  0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc,
+  0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4,
+  0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc,
+  0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4,
+  0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec,
+  0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4,
+  0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc,
+  0x8efd, 0x8efe, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45,
+  0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d,
+  0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55,
+  0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d,
+  0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65,
+  0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d,
+  0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f72, 0x8f73, 0x8f74, 0x8f75,
+  0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d,
+  0x8f7e, 0x8f80, 0x8f81, 0x8f82, 0x8f83, 0x8f84, 0x8f85, 0x8f86,
+  0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0x8f8b, 0x8f8c, 0x8f8d, 0x8f8e,
+  0x8f8f, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96,
+  0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e,
+  0x8f9f, 0x8fa0, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0x8fa5, 0x8fa6,
+  0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x8fae,
+  0x8faf, 0x8fb0, 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb6,
+  0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe,
+  0x8fbf, 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6,
+  0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fce,
+  0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0x8fd6,
+  0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde,
+  0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, 0x8fe6,
+  0x8fe7, 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, 0x8fec, 0x8fed, 0x8fee,
+  0x8fef, 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0x8ff6,
+  0x8ff7, 0x8ff8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0x8ffe,
+  0x9040, 0x9041, 0x9042, 0x9043, 0x9044, 0x9045, 0x9046, 0x9047,
+  0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904d, 0x904e, 0x904f,
+  0x9050, 0x9051, 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0x9057,
+  0x9058, 0x9059, 0x905a, 0x905b, 0x905c, 0x905d, 0x905e, 0x905f,
+  0x9060, 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067,
+  0x9068, 0x9069, 0x906a, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f,
+  0x9070, 0x9071, 0x9072, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077,
+  0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907d, 0x907e, 0x9080,
+  0x9081, 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088,
+  0x9089, 0x908a, 0x908b, 0x908c, 0x908d, 0x908e, 0x908f, 0x9090,
+  0x9091, 0x9092, 0x9093, 0x9094, 0x9095, 0x9096, 0x9097, 0x9098,
+  0x9099, 0x909a, 0x909b, 0x909c, 0x909d, 0x909e, 0x909f, 0x90a0,
+  0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8,
+  0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0,
+  0x90b1, 0x90b2, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8,
+  0x90b9, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0,
+  0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, 0x90c7, 0x90c8,
+  0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce, 0x90cf, 0x90d0,
+  0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0x90d7, 0x90d8,
+  0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, 0x90de, 0x90df, 0x90e0,
+  0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8,
+  0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0,
+  0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8,
+  0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, 0x9141,
+  0x9142, 0x9143, 0x9144, 0x9145, 0x9146, 0x9147, 0x9148, 0x9149,
+  0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0x9150, 0x9151,
+  0x9152, 0x9153, 0x9154, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159,
+  0x915a, 0x915b, 0x915c, 0x915d, 0x915e, 0x915f, 0x9160, 0x9161,
+  0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169,
+  0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171,
+  0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179,
+  0x917a, 0x917b, 0x917c, 0x917d, 0x917e, 0x9180, 0x9181, 0x9182,
+  0x9183, 0x9184, 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a,
+  0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9192,
+  0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a,
+  0x919b, 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a2,
+  0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91aa,
+  0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, 0x91b2,
+  0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba,
+  0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2,
+  0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca,
+  0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d2,
+  0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da,
+  0x91db, 0x91dc, 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2,
+  0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea,
+  0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2,
+  0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa,
+  0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x9240, 0x9241, 0x9242, 0x9243,
+  0x9244, 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b,
+  0x924c, 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253,
+  0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b,
+  0x925c, 0x925d, 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263,
+  0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b,
+  0x926c, 0x926d, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273,
+  0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, 0x927b,
+  0x927c, 0x927d, 0x927e, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284,
+  0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c,
+  0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294,
+  0x9295, 0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c,
+  0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4,
+  0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac,
+  0x92ad, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0x92b4,
+  0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc,
+  0x92bd, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4,
+  0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc,
+  0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0x92d4,
+  0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc,
+  0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4,
+  0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, 0x92ea, 0x92eb, 0x92ec,
+  0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4,
+  0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0x92fa, 0x92fb, 0x92fc,
+  0x92fd, 0x92fe, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345,
+  0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, 0x934d,
+  0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355,
+  0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d,
+  0x935e, 0x935f, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365,
+  0x9366, 0x9367, 0x9368, 0x9369, 0x936a, 0x936b, 0x936c, 0x936d,
+  0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375,
+  0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, 0x937c, 0x937d,
+  0x937e, 0x9380, 0x9381, 0x9382, 0x9383, 0x9384, 0x9385, 0x9386,
+  0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, 0x938e,
+  0x938f, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396,
+  0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0x939e,
+  0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6,
+  0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae,
+  0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, 0x93b5, 0x93b6,
+  0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x93be,
+  0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0x93c6,
+  0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93ce,
+  0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d6,
+  0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de,
+  0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6,
+  0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee,
+  0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6,
+  0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe,
+  0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447,
+  0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f,
+  0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457,
+  0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f,
+  0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467,
+  0x9468, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, 0x946f,
+  0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477,
+  0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x9480,
+  0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488,
+  0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490,
+  0x9491, 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498,
+  0x9499, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, 0x94a0,
+  0x94a1, 0x94a2, 0x94a3, 0x94a4, 0x94a5, 0x94a6, 0x94a7, 0x94a8,
+  0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0,
+  0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6, 0x94b7, 0x94b8,
+  0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0,
+  0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8,
+  0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0,
+  0x94d1, 0x94d2, 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8,
+  0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0,
+  0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0x94e6, 0x94e7, 0x94e8,
+  0x94e9, 0x94ea, 0x94eb, 0x94ec, 0x94ed, 0x94ee, 0x94ef, 0x94f0,
+  0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8,
+  0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, 0x94fe, 0x9540, 0x9541,
+  0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, 0x9549,
+  0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551,
+  0x9552, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559,
+  0x955a, 0x955b, 0x955c, 0x955d, 0x955e, 0x955f, 0x9560, 0x9561,
+  0x9562, 0x9563, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569,
+  0x956a, 0x956b, 0x956c, 0x956d, 0x956e, 0x956f, 0x9570, 0x9571,
+  0x9572, 0x9573, 0x9574, 0x9575, 0x9576, 0x9577, 0x9578, 0x9579,
+  0x957a, 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582,
+  0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a,
+  0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592,
+  0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a,
+  0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2,
+  0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa,
+  0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2,
+  0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba,
+  0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2,
+  0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca,
+  0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2,
+  0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da,
+  0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2,
+  0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea,
+  0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f2,
+  0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa,
+  0x95fb, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643,
+  0x9644, 0x9645, 0x9646, 0x9647, 0x9648, 0x9649, 0x964a, 0x964b,
+  0x964c, 0x964d, 0x964e, 0x964f, 0x9650, 0x9651, 0x9652, 0x9653,
+  0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, 0x965a, 0x965b,
+  0x965c, 0x965d, 0x965e, 0x965f, 0x9660, 0x9661, 0x9662, 0x9663,
+  0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a, 0x966b,
+  0x966c, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9672, 0x9673,
+  0x9674, 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x967b,
+  0x967c, 0x967d, 0x967e, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684,
+  0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968a, 0x968b, 0x968c,
+  0x968d, 0x968e, 0x968f, 0x9690, 0x9691, 0x9692, 0x9693, 0x9694,
+  0x9695, 0x9696, 0x9697, 0x9698, 0x9699, 0x969a, 0x969b, 0x969c,
+  0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, 0x96a4,
+  0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac,
+  0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4,
+  0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc,
+  0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, 0x96c3, 0x96c4,
+  0x96c5, 0x96c6, 0x96c7, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc,
+  0x96cd, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0x96d2, 0x96d3, 0x96d4,
+  0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc,
+  0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4,
+  0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec,
+  0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, 0x96f4,
+  0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc,
+  0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745,
+  0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d,
+  0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755,
+  0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x975b, 0x975c, 0x975d,
+  0x975e, 0x975f, 0x9760, 0x9761, 0x9762, 0x9763, 0x9764, 0x9765,
+  0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d,
+  0x976e, 0x976f, 0x9770, 0x9771, 0x9772, 0x9773, 0x9774, 0x9775,
+  0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d,
+  0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786,
+  0x9787, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0x978e,
+  0x978f, 0x9790, 0x9791, 0x9792, 0x9793, 0x9794, 0x9795, 0x9796,
+  0x9797, 0x9798, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0x979e,
+  0x979f, 0x97a0, 0x97a1, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6,
+  0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae,
+  0x97af, 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6,
+  0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be,
+  0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6,
+  0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce,
+  0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6,
+  0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de,
+  0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6,
+  0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee,
+  0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6,
+  0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe,
+  0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847,
+  0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f,
+  0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857,
+  0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, 0x985f,
+  0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867,
+  0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f,
+  0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877,
+  0x9878, 0x9879, 0x987a, 0x987b, 0x987c, 0x987d, 0x987e, 0x9880,
+  0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888,
+  0x9889, 0x988a, 0x988b, 0x988c, 0x988d, 0x988e, 0x988f, 0x9890,
+  0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, 0x9897, 0x9898,
+  0x9899, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0,
+  0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8,
+  0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0,
+  0x98b1, 0x98b2, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8,
+  0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0,
+  0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8,
+  0x98c9, 0x98ca, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0,
+  0x98d1, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0x98d8,
+  0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, 0x98e0,
+  0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8,
+  0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0,
+  0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8,
+  0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x9940, 0x9941,
+  0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949,
+  0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951,
+  0x9952, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0x9959,
+  0x995a, 0x995b, 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961,
+  0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969,
+  0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971,
+  0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979,
+  0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, 0x9981, 0x9982,
+  0x9983, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a,
+  0x998b, 0x998c, 0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9992,
+  0x9993, 0x9994, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0x999a,
+  0x999b, 0x999c, 0x999d, 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2,
+  0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa,
+  0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2,
+  0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba,
+  0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2,
+  0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca,
+  0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2,
+  0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da,
+  0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2,
+  0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea,
+  0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2,
+  0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, 0x99fa,
+  0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, 0x9a41, 0x9a42, 0x9a43,
+  0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b,
+  0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53,
+  0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b,
+  0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, 0x9a62, 0x9a63,
+  0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0x9a6a, 0x9a6b,
+  0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73,
+  0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0x9a7a, 0x9a7b,
+  0x9a7c, 0x9a7d, 0x9a7e, 0x9a80, 0x9a81, 0x9a82, 0x9a83, 0x9a84,
+  0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 0x9a8a, 0x9a8b, 0x9a8c,
+  0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94,
+  0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c,
+  0x9a9d, 0x9a9e, 0x9a9f, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4,
+  0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac,
+  0x9aad, 0x9aae, 0x9aaf, 0x9ab0, 0x9ab1, 0x9ab2, 0x9ab3, 0x9ab4,
+  0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0x9abb, 0x9abc,
+  0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4,
+  0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc,
+  0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4,
+  0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc,
+  0x9add, 0x9ade, 0x9adf, 0x9ae0, 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4,
+  0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0x9ae9, 0x9aea, 0x9aeb, 0x9aec,
+  0x9aed, 0x9aee, 0x9aef, 0x9af0, 0x9af1, 0x9af2, 0x9af3, 0x9af4,
+  0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0x9afb, 0x9afc,
+  0x9afd, 0x9afe, 0x9b40, 0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45,
+  0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d,
+  0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b52, 0x9b53, 0x9b54, 0x9b55,
+  0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d,
+  0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65,
+  0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d,
+  0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0x9b75,
+  0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d,
+  0x9b7e, 0x9b80, 0x9b81, 0x9b82, 0x9b83, 0x9b84, 0x9b85, 0x9b86,
+  0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e,
+  0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, 0x9b94, 0x9b95, 0x9b96,
+  0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e,
+  0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6,
+  0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae,
+  0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6,
+  0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe,
+  0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6,
+  0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce,
+  0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6,
+  0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde,
+  0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6,
+  0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee,
+  0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6,
+  0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0x9bfe,
+  0x9c40, 0x9c41, 0x9c42, 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47,
+  0x9c48, 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f,
+  0x9c50, 0x9c51, 0x9c52, 0x9c53, 0x9c54, 0x9c55, 0x9c56, 0x9c57,
+  0x9c58, 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f,
+  0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67,
+  0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f,
+  0x9c70, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77,
+  0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, 0x9c7e, 0x9c80,
+  0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88,
+  0x9c89, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90,
+  0x9c91, 0x9c92, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, 0x9c98,
+  0x9c99, 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0x9c9e, 0x9c9f, 0x9ca0,
+  0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8,
+  0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0,
+  0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8,
+  0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, 0x9cbf, 0x9cc0,
+  0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8,
+  0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0,
+  0x9cd1, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8,
+  0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, 0x9cdf, 0x9ce0,
+  0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8,
+  0x9ce9, 0x9cea, 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0,
+  0x9cf1, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8,
+  0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41,
+  0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49,
+  0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51,
+  0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59,
+  0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61,
+  0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69,
+  0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71,
+  0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79,
+  0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82,
+  0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a,
+  0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92,
+  0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a,
+  0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2,
+  0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa,
+  0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2,
+  0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba,
+  0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2,
+  0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca,
+  0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2,
+  0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda,
+  0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2,
+  0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea,
+  0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2,
+  0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa,
+  0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, 0x9e42, 0x9e43,
+  0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b,
+  0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e52, 0x9e53,
+  0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0x9e5a, 0x9e5b,
+  0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e63,
+  0x9e64, 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b,
+  0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e72, 0x9e73,
+  0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b,
+  0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84,
+  0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0x9e8a, 0x9e8b, 0x9e8c,
+  0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, 0x9e93, 0x9e94,
+  0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c,
+  0x9e9d, 0x9e9e, 0x9e9f, 0x9ea0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4,
+  0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac,
+  0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4,
+  0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc,
+  0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4,
+  0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc,
+  0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4,
+  0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc,
+  0x9edd, 0x9ede, 0x9edf, 0x9ee0, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4,
+  0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec,
+  0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4,
+  0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc,
+  0x9efd, 0x9efe, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45,
+  0x9f46, 0x9f47, 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d,
+  0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0x9f52, 0x9f53, 0x9f54, 0x9f55,
+  0x9f56, 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d,
+  0x9f5e, 0x9f5f, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0x9f65,
+  0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d,
+  0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0x9f74, 0x9f75,
+  0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d,
+  0x9f7e, 0x9f80, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86,
+  0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e,
+  0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, 0x9f96,
+  0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9f9e,
+  0x9f9f, 0x9fa0, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0x9fa6,
+  0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae,
+  0x9faf, 0x9fb0, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0x9fb6,
+  0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0x9fbe,
+  0x9fbf, 0x9fc0, 0x9fc1, 0x9fc2, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6,
+  0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0x9fcb, 0x9fcc, 0x9fcd, 0x9fce,
+  0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6,
+  0x9fd7, 0x9fd8, 0x9fd9, 0x9fda, 0x9fdb, 0x9fdc, 0x9fdd, 0x9fde,
+  0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0x9fe3, 0x9fe4, 0x9fe5, 0x9fe6,
+  0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, 0x9fed, 0x9fee,
+  0x9fef, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6,
+  0x9ff7, 0x9ff8, 0x9ff9, 0x9ffa, 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe,
+  0xa040, 0xa041, 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047,
+  0xa048, 0xa049, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xa04e, 0xa04f,
+  0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, 0xa057,
+  0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, 0xa05e, 0xa05f,
+  0xa060, 0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xa067,
+  0xa068, 0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f,
+  0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077,
+  0xa078, 0xa079, 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa07e, 0xa080,
+  0xa081, 0xa082, 0xa083, 0xa084, 0xa085, 0xa086, 0xa087, 0xa088,
+  0xa089, 0xa08a, 0xa08b, 0xa08c, 0xa08d, 0xa08e, 0xa08f, 0xa090,
+  0xa091, 0xa092, 0xa093, 0xa094, 0xa095, 0xa096, 0xa097, 0xa098,
+  0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xa09e, 0xa09f, 0xa0a0,
+  0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8,
+  0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0,
+  0xa0b1, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8,
+  0xa0b9, 0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0,
+  0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8,
+  0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0,
+  0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xa0d7, 0xa0d8,
+  0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, 0xa0df, 0xa0e0,
+  0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8,
+  0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0,
+  0xa0f1, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8,
+  0xa0f9, 0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41,
+  0xaa42, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49,
+  0xaa4a, 0xaa4b, 0xaa4c, 0xaa4d, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51,
+  0xaa52, 0xaa53, 0xaa54, 0xaa55, 0xaa56, 0xaa57, 0xaa58, 0xaa59,
+  0xaa5a, 0xaa5b, 0xaa5c, 0xaa5d, 0xaa5e, 0xaa5f, 0xaa60, 0xaa61,
+  0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xaa66, 0xaa67, 0xaa68, 0xaa69,
+  0xaa6a, 0xaa6b, 0xaa6c, 0xaa6d, 0xaa6e, 0xaa6f, 0xaa70, 0xaa71,
+  0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xaa79,
+  0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa7e, 0xaa80, 0xaa81, 0xaa82,
+  0xaa83, 0xaa84, 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a,
+  0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92,
+  0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a,
+  0xaa9b, 0xaa9c, 0xaa9d, 0xaa9e, 0xaa9f, 0xaaa0, 0xab40, 0xab41,
+  0xab42, 0xab43, 0xab44, 0xab45, 0xab46, 0xab47, 0xab48, 0xab49,
+  0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xab51,
+  0xab52, 0xab53, 0xab54, 0xab55, 0xab56, 0xab57, 0xab58, 0xab59,
+  0xab5a, 0xab5b, 0xab5c, 0xab5d, 0xab5e, 0xab5f, 0xab60, 0xab61,
+  0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, 0xab69,
+  0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, 0xab71,
+  0xab72, 0xab73, 0xab74, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79,
+  0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, 0xab80, 0xab81, 0xab82,
+  0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xab8a,
+  0xab8b, 0xab8c, 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92,
+  0xab93, 0xab94, 0xab95, 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a,
+  0xab9b, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac40, 0xac41,
+  0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49,
+  0xac4a, 0xac4b, 0xac4c, 0xac4d, 0xac4e, 0xac4f, 0xac50, 0xac51,
+  0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, 0xac59,
+  0xac5a, 0xac5b, 0xac5c, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61,
+  0xac62, 0xac63, 0xac64, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69,
+  0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71,
+  0xac72, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, 0xac79,
+  0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, 0xac82,
+  0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, 0xac8a,
+  0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92,
+  0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a,
+  0xac9b, 0xac9c, 0xac9d, 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41,
+  0xad42, 0xad43, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49,
+  0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad50, 0xad51,
+  0xad52, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59,
+  0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61,
+  0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69,
+  0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71,
+  0xad72, 0xad73, 0xad74, 0xad75, 0xad76, 0xad77, 0xad78, 0xad79,
+  0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, 0xad80, 0xad81, 0xad82,
+  0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, 0xad89, 0xad8a,
+  0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92,
+  0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a,
+  0xad9b, 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xada0, 0xae40, 0xae41,
+  0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xae49,
+  0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51,
+  0xae52, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59,
+  0xae5a, 0xae5b, 0xae5c, 0xae5d, 0xae5e, 0xae5f, 0xae60, 0xae61,
+  0xae62, 0xae63, 0xae64, 0xae65, 0xae66, 0xae67, 0xae68, 0xae69,
+  0xae6a, 0xae6b, 0xae6c, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71,
+  0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae78, 0xae79,
+  0xae7a, 0xae7b, 0xae7c, 0xae7d, 0xae7e, 0xae80, 0xae81, 0xae82,
+  0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a,
+  0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92,
+  0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a,
+  0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaf40, 0xaf41,
+  0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf48, 0xaf49,
+  0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51,
+  0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59,
+  0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61,
+  0xaf62, 0xaf63, 0xaf64, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69,
+  0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71,
+  0xaf72, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf79,
+  0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf80, 0xaf81, 0xaf82,
+  0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xaf8a,
+  0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, 0xaf91, 0xaf92,
+  0xaf93, 0xaf94, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a,
+  0xaf9b, 0xaf9c, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xb040, 0xb041,
+  0xb042, 0xb043, 0xb044, 0xb045, 0xb046, 0xb047, 0xb048, 0xb049,
+  0xb04a, 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0xb04f, 0xb050, 0xb051,
+  0xb052, 0xb053, 0xb054, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059,
+  0xb05a, 0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xb05f, 0xb060, 0xb061,
+  0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069,
+  0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071,
+  0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079,
+  0xb07a, 0xb07b, 0xb07c, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082,
+  0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a,
+  0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb092,
+  0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb098, 0xb099, 0xb09a,
+  0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f, 0xb0a0, 0xb140, 0xb141,
+  0xb142, 0xb143, 0xb144, 0xb145, 0xb146, 0xb147, 0xb148, 0xb149,
+  0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xb151,
+  0xb152, 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xb159,
+  0xb15a, 0xb15b, 0xb15c, 0xb15d, 0xb15e, 0xb15f, 0xb160, 0xb161,
+  0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169,
+  0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171,
+  0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179,
+  0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb17e, 0xb180, 0xb181, 0xb182,
+  0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a,
+  0xb18b, 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb192,
+  0xb193, 0xb194, 0xb195, 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a,
+  0xb19b, 0xb19c, 0xb19d, 0xb19e, 0xb19f, 0xb1a0, 0xb240, 0xb241,
+  0xb242, 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249,
+  0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251,
+  0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb258, 0xb259,
+  0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xb260, 0xb261,
+  0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269,
+  0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, 0xb271,
+  0xb272, 0xb273, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279,
+  0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb27e, 0xb280, 0xb281, 0xb282,
+  0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a,
+  0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb292,
+  0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb298, 0xb299, 0xb29a,
+  0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a0, 0xb340, 0xb341,
+  0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349,
+  0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351,
+  0xb352, 0xb353, 0xb354, 0xb355, 0xb356, 0xb357, 0xb358, 0xb359,
+  0xb35a, 0xb35b, 0xb35c, 0xb35d, 0xb35e, 0xb35f, 0xb360, 0xb361,
+  0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xb367, 0xb368, 0xb369,
+  0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0xb370, 0xb371,
+  0xb372, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379,
+  0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xb382,
+  0xb383, 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a,
+  0xb38b, 0xb38c, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392,
+  0xb393, 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a,
+  0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441,
+  0xb442, 0xb443, 0xb444, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449,
+  0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb450, 0xb451,
+  0xb452, 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459,
+  0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xb461,
+  0xb462, 0xb463, 0xb464, 0xb465, 0xb466, 0xb467, 0xb468, 0xb469,
+  0xb46a, 0xb46b, 0xb46c, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471,
+  0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479,
+  0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482,
+  0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, 0xb489, 0xb48a,
+  0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492,
+  0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a,
+  0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541,
+  0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, 0xb549,
+  0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, 0xb551,
+  0xb552, 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559,
+  0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561,
+  0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569,
+  0xb56a, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571,
+  0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579,
+  0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb580, 0xb581, 0xb582,
+  0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a,
+  0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592,
+  0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a,
+  0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641,
+  0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, 0xb649,
+  0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651,
+  0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659,
+  0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661,
+  0xb662, 0xb663, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669,
+  0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671,
+  0xb672, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679,
+  0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb680, 0xb681, 0xb682,
+  0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a,
+  0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692,
+  0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a,
+  0xb69b, 0xb69c, 0xb69d, 0xb69e, 0xb69f, 0xb6a0, 0xb740, 0xb741,
+  0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749,
+  0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751,
+  0xb752, 0xb753, 0xb754, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759,
+  0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb760, 0xb761,
+  0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xb769,
+  0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771,
+  0xb772, 0xb773, 0xb774, 0xb775, 0xb776, 0xb777, 0xb778, 0xb779,
+  0xb77a, 0xb77b, 0xb77c, 0xb77d, 0xb77e, 0xb780, 0xb781, 0xb782,
+  0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a,
+  0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb78f, 0xb790, 0xb791, 0xb792,
+  0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, 0xb79a,
+  0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, 0xb840, 0xb841,
+  0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849,
+  0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb851,
+  0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859,
+  0xb85a, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb85f, 0xb860, 0xb861,
+  0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869,
+  0xb86a, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871,
+  0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879,
+  0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882,
+  0xb883, 0xb884, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a,
+  0xb88b, 0xb88c, 0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892,
+  0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a,
+  0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0xb8a0, 0xb940, 0xb941,
+  0xb942, 0xb943, 0xb944, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949,
+  0xb94a, 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951,
+  0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0xb958, 0xb959,
+  0xb95a, 0xb95b, 0xb95c, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961,
+  0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969,
+  0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xb970, 0xb971,
+  0xb972, 0xb973, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979,
+  0xb97a, 0xb97b, 0xb97c, 0xb97d, 0xb97e, 0xb980, 0xb981, 0xb982,
+  0xb983, 0xb984, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a,
+  0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb992,
+  0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a,
+  0xb99b, 0xb99c, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xba41,
+  0xba42, 0xba43, 0xba44, 0xba45, 0xba46, 0xba47, 0xba48, 0xba49,
+  0xba4a, 0xba4b, 0xba4c, 0xba4d, 0xba4e, 0xba4f, 0xba50, 0xba51,
+  0xba52, 0xba53, 0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59,
+  0xba5a, 0xba5b, 0xba5c, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61,
+  0xba62, 0xba63, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69,
+  0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xba71,
+  0xba72, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79,
+  0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82,
+  0xba83, 0xba84, 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a,
+  0xba8b, 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92,
+  0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a,
+  0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbb40, 0xbb41,
+  0xbb42, 0xbb43, 0xbb44, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49,
+  0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51,
+  0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59,
+  0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61,
+  0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69,
+  0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71,
+  0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79,
+  0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb80, 0xbb81, 0xbb82,
+  0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a,
+  0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb92,
+  0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a,
+  0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbc40, 0xbc41,
+  0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, 0xbc47, 0xbc48, 0xbc49,
+  0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51,
+  0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59,
+  0xbc5a, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61,
+  0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69,
+  0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71,
+  0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79,
+  0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc80, 0xbc81, 0xbc82,
+  0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a,
+  0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92,
+  0xbc93, 0xbc94, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a,
+  0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, 0xbd41,
+  0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49,
+  0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51,
+  0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59,
+  0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61,
+  0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69,
+  0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71,
+  0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79,
+  0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd80, 0xbd81, 0xbd82,
+  0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89, 0xbd8a,
+  0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd92,
+  0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a,
+  0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbe40, 0xbe41,
+  0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49,
+  0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51,
+  0xbe52, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59,
+  0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61,
+  0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69,
+  0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71,
+  0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79,
+  0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82,
+  0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a,
+  0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92,
+  0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a,
+  0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41,
+  0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49,
+  0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51,
+  0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59,
+  0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61,
+  0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69,
+  0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71,
+  0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79,
+  0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf80, 0xbf81, 0xbf82,
+  0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a,
+  0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92,
+  0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a,
+  0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041,
+  0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049,
+  0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051,
+  0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059,
+  0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061,
+  0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069,
+  0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071,
+  0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079,
+  0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc080, 0xc081, 0xc082,
+  0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a,
+  0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc092,
+  0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, 0xc099, 0xc09a,
+  0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a0, 0xc140, 0xc141,
+  0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc148, 0xc149,
+  0xc14a, 0xc14b, 0xc14c, 0xc14d, 0xc14e, 0xc14f, 0xc150, 0xc151,
+  0xc152, 0xc153, 0xc154, 0xc155, 0xc156, 0xc157, 0xc158, 0xc159,
+  0xc15a, 0xc15b, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161,
+  0xc162, 0xc163, 0xc164, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169,
+  0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, 0xc171,
+  0xc172, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179,
+  0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc17e, 0xc180, 0xc181, 0xc182,
+  0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a,
+  0xc18b, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192,
+  0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a,
+  0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc240, 0xc241,
+  0xc242, 0xc243, 0xc244, 0xc245, 0xc246, 0xc247, 0xc248, 0xc249,
+  0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xc250, 0xc251,
+  0xc252, 0xc253, 0xc254, 0xc255, 0xc256, 0xc257, 0xc258, 0xc259,
+  0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc260, 0xc261,
+  0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, 0xc269,
+  0xc26a, 0xc26b, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, 0xc271,
+  0xc272, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279,
+  0xc27a, 0xc27b, 0xc27c, 0xc27d, 0xc27e, 0xc280, 0xc281, 0xc282,
+  0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a,
+  0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc292,
+  0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a,
+  0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xc341,
+  0xc342, 0xc343, 0xc344, 0xc345, 0xc346, 0xc347, 0xc348, 0xc349,
+  0xc34a, 0xc34b, 0xc34c, 0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351,
+  0xc352, 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359,
+  0xc35a, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361,
+  0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369,
+  0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, 0xc371,
+  0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379,
+  0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc37e, 0xc380, 0xc381, 0xc382,
+  0xc383, 0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a,
+  0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392,
+  0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a,
+  0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, 0xc440, 0xc441,
+  0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449,
+  0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, 0xc451,
+  0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, 0xc459,
+  0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, 0xc461,
+  0xc462, 0xc463, 0xc464, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469,
+  0xc46a, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471,
+  0xc472, 0xc473, 0xc474, 0xc475, 0xc476, 0xc477, 0xc478, 0xc479,
+  0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc480, 0xc481, 0xc482,
+  0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc48a,
+  0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc492,
+  0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a,
+  0xc49b, 0xc49c, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541,
+  0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549,
+  0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, 0xc551,
+  0xc552, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559,
+  0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0xc560, 0xc561,
+  0xc562, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569,
+  0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571,
+  0xc572, 0xc573, 0xc574, 0xc575, 0xc576, 0xc577, 0xc578, 0xc579,
+  0xc57a, 0xc57b, 0xc57c, 0xc57d, 0xc57e, 0xc580, 0xc581, 0xc582,
+  0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, 0xc589, 0xc58a,
+  0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592,
+  0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0xc598, 0xc599, 0xc59a,
+  0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, 0xc5a0, 0xc640, 0xc641,
+  0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649,
+  0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, 0xc651,
+  0xc652, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658, 0xc659,
+  0xc65a, 0xc65b, 0xc65c, 0xc65d, 0xc65e, 0xc65f, 0xc660, 0xc661,
+  0xc662, 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669,
+  0xc66a, 0xc66b, 0xc66c, 0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671,
+  0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc678, 0xc679,
+  0xc67a, 0xc67b, 0xc67c, 0xc67d, 0xc67e, 0xc680, 0xc681, 0xc682,
+  0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc688, 0xc689, 0xc68a,
+  0xc68b, 0xc68c, 0xc68d, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692,
+  0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, 0xc69a,
+  0xc69b, 0xc69c, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc740, 0xc741,
+  0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749,
+  0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751,
+  0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759,
+  0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761,
+  0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769,
+  0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771,
+  0xc772, 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779,
+  0xc77a, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc780, 0xc781, 0xc782,
+  0xc783, 0xc784, 0xc785, 0xc786, 0xc787, 0xc788, 0xc789, 0xc78a,
+  0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0xc790, 0xc791, 0xc792,
+  0xc793, 0xc794, 0xc795, 0xc796, 0xc797, 0xc798, 0xc799, 0xc79a,
+  0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841,
+  0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc848, 0xc849,
+  0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, 0xc84f, 0xc850, 0xc851,
+  0xc852, 0xc853, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859,
+  0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861,
+  0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869,
+  0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xc871,
+  0xc872, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879,
+  0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882,
+  0xc883, 0xc884, 0xc885, 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a,
+  0xc88b, 0xc88c, 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892,
+  0xc893, 0xc894, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a,
+  0xc89b, 0xc89c, 0xc89d, 0xc89e, 0xc89f, 0xc8a0, 0xc940, 0xc941,
+  0xc942, 0xc943, 0xc944, 0xc945, 0xc946, 0xc947, 0xc948, 0xc949,
+  0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951,
+  0xc952, 0xc953, 0xc954, 0xc955, 0xc956, 0xc957, 0xc958, 0xc959,
+  0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc960, 0xc961,
+  0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, 0xc969,
+  0xc96a, 0xc96b, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, 0xc971,
+  0xc972, 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979,
+  0xc97a, 0xc97b, 0xc97c, 0xc97d, 0xc97e, 0xc980, 0xc981, 0xc982,
+  0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc988, 0xc989, 0xc98a,
+  0xc98b, 0xc98c, 0xc98d, 0xc98e, 0xc98f, 0xc990, 0xc991, 0xc992,
+  0xc993, 0xc994, 0xc995, 0xc996, 0xc997, 0xc998, 0xc999, 0xc99a,
+  0xc99b, 0xc99c, 0xc99d, 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41,
+  0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0xca47, 0xca48, 0xca49,
+  0xca4a, 0xca4b, 0xca4c, 0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51,
+  0xca52, 0xca53, 0xca54, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59,
+  0xca5a, 0xca5b, 0xca5c, 0xca5d, 0xca5e, 0xca5f, 0xca60, 0xca61,
+  0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69,
+  0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, 0xca71,
+  0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79,
+  0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xca80, 0xca81, 0xca82,
+  0xca83, 0xca84, 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a,
+  0xca8b, 0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92,
+  0xca93, 0xca94, 0xca95, 0xca96, 0xca97, 0xca98, 0xca99, 0xca9a,
+  0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0xcaa0, 0xcb40, 0xcb41,
+  0xcb42, 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49,
+  0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51,
+  0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, 0xcb58, 0xcb59,
+  0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, 0xcb5e, 0xcb5f, 0xcb60, 0xcb61,
+  0xcb62, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69,
+  0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71,
+  0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79,
+  0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb80, 0xcb81, 0xcb82,
+  0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89, 0xcb8a,
+  0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb92,
+  0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a,
+  0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcc40, 0xcc41,
+  0xcc42, 0xcc43, 0xcc44, 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49,
+  0xcc4a, 0xcc4b, 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51,
+  0xcc52, 0xcc53, 0xcc54, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xcc59,
+  0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61,
+  0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69,
+  0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71,
+  0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, 0xcc78, 0xcc79,
+  0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc80, 0xcc81, 0xcc82,
+  0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a,
+  0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92,
+  0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc98, 0xcc99, 0xcc9a,
+  0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca0, 0xcd40, 0xcd41,
+  0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49,
+  0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xcd51,
+  0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59,
+  0xcd5a, 0xcd5b, 0xcd5c, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61,
+  0xcd62, 0xcd63, 0xcd64, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69,
+  0xcd6a, 0xcd6b, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71,
+  0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xcd78, 0xcd79,
+  0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, 0xcd80, 0xcd81, 0xcd82,
+  0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd88, 0xcd89, 0xcd8a,
+  0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92,
+  0xcd93, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, 0xcd9a,
+  0xcd9b, 0xcd9c, 0xcd9d, 0xcd9e, 0xcd9f, 0xcda0, 0xce40, 0xce41,
+  0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, 0xce49,
+  0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51,
+  0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce58, 0xce59,
+  0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xce5f, 0xce60, 0xce61,
+  0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67, 0xce68, 0xce69,
+  0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, 0xce70, 0xce71,
+  0xce72, 0xce73, 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79,
+  0xce7a, 0xce7b, 0xce7c, 0xce7d, 0xce7e, 0xce80, 0xce81, 0xce82,
+  0xce83, 0xce84, 0xce85, 0xce86, 0xce87, 0xce88, 0xce89, 0xce8a,
+  0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce90, 0xce91, 0xce92,
+  0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a,
+  0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41,
+  0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xcf49,
+  0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, 0xcf51,
+  0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59,
+  0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf5e, 0xcf5f, 0xcf60, 0xcf61,
+  0xcf62, 0xcf63, 0xcf64, 0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69,
+  0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71,
+  0xcf72, 0xcf73, 0xcf74, 0xcf75, 0xcf76, 0xcf77, 0xcf78, 0xcf79,
+  0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf80, 0xcf81, 0xcf82,
+  0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a,
+  0xcf8b, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92,
+  0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a,
+  0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xd040, 0xd041,
+  0xd042, 0xd043, 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049,
+  0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xd04e, 0xd04f, 0xd050, 0xd051,
+  0xd052, 0xd053, 0xd054, 0xd055, 0xd056, 0xd057, 0xd058, 0xd059,
+  0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd060, 0xd061,
+  0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069,
+  0xd06a, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071,
+  0xd072, 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079,
+  0xd07a, 0xd07b, 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xd082,
+  0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a,
+  0xd08b, 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092,
+  0xd093, 0xd094, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a,
+  0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd140, 0xd141,
+  0xd142, 0xd143, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xd149,
+  0xd14a, 0xd14b, 0xd14c, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151,
+  0xd152, 0xd153, 0xd154, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159,
+  0xd15a, 0xd15b, 0xd15c, 0xd15d, 0xd15e, 0xd15f, 0xd160, 0xd161,
+  0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd168, 0xd169,
+  0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f, 0xd170, 0xd171,
+  0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179,
+  0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd17e, 0xd180, 0xd181, 0xd182,
+  0xd183, 0xd184, 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a,
+  0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192,
+  0xd193, 0xd194, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a,
+  0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0xd1a0, 0xd240, 0xd241,
+  0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd248, 0xd249,
+  0xd24a, 0xd24b, 0xd24c, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251,
+  0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259,
+  0xd25a, 0xd25b, 0xd25c, 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261,
+  0xd262, 0xd263, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269,
+  0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271,
+  0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279,
+  0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd280, 0xd281, 0xd282,
+  0xd283, 0xd284, 0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a,
+  0xd28b, 0xd28c, 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd292,
+  0xd293, 0xd294, 0xd295, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a,
+  0xd29b, 0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd340, 0xd341,
+  0xd342, 0xd343, 0xd344, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349,
+  0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351,
+  0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359,
+  0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0xd360, 0xd361,
+  0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369,
+  0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xd371,
+  0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379,
+  0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382,
+  0xd383, 0xd384, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a,
+  0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392,
+  0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a,
+  0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441,
+  0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449,
+  0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451,
+  0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459,
+  0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xd460, 0xd461,
+  0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469,
+  0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471,
+  0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd478, 0xd479,
+  0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, 0xd481, 0xd482,
+  0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, 0xd489, 0xd48a,
+  0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492,
+  0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a,
+  0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, 0xd4a0, 0xd540, 0xd541,
+  0xd542, 0xd543, 0xd544, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549,
+  0xd54a, 0xd54b, 0xd54c, 0xd54d, 0xd54e, 0xd54f, 0xd550, 0xd551,
+  0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559,
+  0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561,
+  0xd562, 0xd563, 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569,
+  0xd56a, 0xd56b, 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571,
+  0xd572, 0xd573, 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579,
+  0xd57a, 0xd57b, 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582,
+  0xd583, 0xd584, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a,
+  0xd58b, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592,
+  0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a,
+  0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641,
+  0xd642, 0xd643, 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649,
+  0xd64a, 0xd64b, 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651,
+  0xd652, 0xd653, 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659,
+  0xd65a, 0xd65b, 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661,
+  0xd662, 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669,
+  0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671,
+  0xd672, 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679,
+  0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xd682,
+  0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a,
+  0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692,
+  0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a,
+  0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741,
+  0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749,
+  0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751,
+  0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759,
+  0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xd760, 0xd761,
+  0xd762, 0xd763, 0xd764, 0xd765, 0xd766, 0xd767, 0xd768, 0xd769,
+  0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, 0xd770, 0xd771,
+  0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779,
+  0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, 0xd781, 0xd782,
+  0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, 0xd789, 0xd78a,
+  0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, 0xd791, 0xd792,
+  0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, 0xd799, 0xd79a,
+  0xd79b, 0xd79c, 0xd79d, 0xd79e, 0xd79f, 0xd7a0, 0xd840, 0xd841,
+  0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848, 0xd849,
+  0xd84a, 0xd84b, 0xd84c, 0xd84d, 0xd84e, 0xd84f, 0xd850, 0xd851,
+  0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xd858, 0xd859,
+  0xd85a, 0xd85b, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, 0xd861,
+  0xd862, 0xd863, 0xd864, 0xd865, 0xd866, 0xd867, 0xd868, 0xd869,
+  0xd86a, 0xd86b, 0xd86c, 0xd86d, 0xd86e, 0xd86f, 0xd870, 0xd871,
+  0xd872, 0xd873, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, 0xd879,
+  0xd87a, 0xd87b, 0xd87c, 0xd87d, 0xd87e, 0xd880, 0xd881, 0xd882,
+  0xd883, 0xd884, 0xd885, 0xd886, 0xd887, 0xd888, 0xd889, 0xd88a,
+  0xd88b, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892,
+  0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a,
+  0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941,
+  0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949,
+  0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951,
+  0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959,
+  0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961,
+  0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969,
+  0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971,
+  0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979,
+  0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982,
+  0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a,
+  0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992,
+  0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a,
+  0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41,
+  0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49,
+  0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xda4f, 0xda50, 0xda51,
+  0xda52, 0xda53, 0xda54, 0xda55, 0xda56, 0xda57, 0xda58, 0xda59,
+  0xda5a, 0xda5b, 0xda5c, 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61,
+  0xda62, 0xda63, 0xda64, 0xda65, 0xda66, 0xda67, 0xda68, 0xda69,
+  0xda6a, 0xda6b, 0xda6c, 0xda6d, 0xda6e, 0xda6f, 0xda70, 0xda71,
+  0xda72, 0xda73, 0xda74, 0xda75, 0xda76, 0xda77, 0xda78, 0xda79,
+  0xda7a, 0xda7b, 0xda7c, 0xda7d, 0xda7e, 0xda80, 0xda81, 0xda82,
+  0xda83, 0xda84, 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a,
+  0xda8b, 0xda8c, 0xda8d, 0xda8e, 0xda8f, 0xda90, 0xda91, 0xda92,
+  0xda93, 0xda94, 0xda95, 0xda96, 0xda97, 0xda98, 0xda99, 0xda9a,
+  0xda9b, 0xda9c, 0xda9d, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xdb41,
+  0xdb42, 0xdb43, 0xdb44, 0xdb45, 0xdb46, 0xdb47, 0xdb48, 0xdb49,
+  0xdb4a, 0xdb4b, 0xdb4c, 0xdb4d, 0xdb4e, 0xdb4f, 0xdb50, 0xdb51,
+  0xdb52, 0xdb53, 0xdb54, 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59,
+  0xdb5a, 0xdb5b, 0xdb5c, 0xdb5d, 0xdb5e, 0xdb5f, 0xdb60, 0xdb61,
+  0xdb62, 0xdb63, 0xdb64, 0xdb65, 0xdb66, 0xdb67, 0xdb68, 0xdb69,
+  0xdb6a, 0xdb6b, 0xdb6c, 0xdb6d, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71,
+  0xdb72, 0xdb73, 0xdb74, 0xdb75, 0xdb76, 0xdb77, 0xdb78, 0xdb79,
+  0xdb7a, 0xdb7b, 0xdb7c, 0xdb7d, 0xdb7e, 0xdb80, 0xdb81, 0xdb82,
+  0xdb83, 0xdb84, 0xdb85, 0xdb86, 0xdb87, 0xdb88, 0xdb89, 0xdb8a,
+  0xdb8b, 0xdb8c, 0xdb8d, 0xdb8e, 0xdb8f, 0xdb90, 0xdb91, 0xdb92,
+  0xdb93, 0xdb94, 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a,
+  0xdb9b, 0xdb9c, 0xdb9d, 0xdb9e, 0xdb9f, 0xdba0, 0xdc40, 0xdc41,
+  0xdc42, 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xdc47, 0xdc48, 0xdc49,
+  0xdc4a, 0xdc4b, 0xdc4c, 0xdc4d, 0xdc4e, 0xdc4f, 0xdc50, 0xdc51,
+  0xdc52, 0xdc53, 0xdc54, 0xdc55, 0xdc56, 0xdc57, 0xdc58, 0xdc59,
+  0xdc5a, 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xdc5f, 0xdc60, 0xdc61,
+  0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc69,
+  0xdc6a, 0xdc6b, 0xdc6c, 0xdc6d, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71,
+  0xdc72, 0xdc73, 0xdc74, 0xdc75, 0xdc76, 0xdc77, 0xdc78, 0xdc79,
+  0xdc7a, 0xdc7b, 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82,
+  0xdc83, 0xdc84, 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a,
+  0xdc8b, 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92,
+  0xdc93, 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a,
+  0xdc9b, 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41,
+  0xdd42, 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49,
+  0xdd4a, 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51,
+  0xdd52, 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59,
+  0xdd5a, 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61,
+  0xdd62, 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69,
+  0xdd6a, 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71,
+  0xdd72, 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79,
+  0xdd7a, 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82,
+  0xdd83, 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a,
+  0xdd8b, 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92,
+  0xdd93, 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a,
+  0xdd9b, 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41,
+  0xde42, 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49,
+  0xde4a, 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51,
+  0xde52, 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59,
+  0xde5a, 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xde61,
+  0xde62, 0xde63, 0xde64, 0xde65, 0xde66, 0xde67, 0xde68, 0xde69,
+  0xde6a, 0xde6b, 0xde6c, 0xde6d, 0xde6e, 0xde6f, 0xde70, 0xde71,
+  0xde72, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, 0xde78, 0xde79,
+  0xde7a, 0xde7b, 0xde7c, 0xde7d, 0xde7e, 0xde80, 0xde81, 0xde82,
+  0xde83, 0xde84, 0xde85, 0xde86, 0xde87, 0xde88, 0xde89, 0xde8a,
+  0xde8b, 0xde8c, 0xde8d, 0xde8e, 0xde8f, 0xde90, 0xde91, 0xde92,
+  0xde93, 0xde94, 0xde95, 0xde96, 0xde97, 0xde98, 0xde99, 0xde9a,
+  0xde9b, 0xde9c, 0xde9d, 0xde9e, 0xde9f, 0xdea0, 0xdf40, 0xdf41,
+  0xdf42, 0xdf43, 0xdf44, 0xdf45, 0xdf46, 0xdf47, 0xdf48, 0xdf49,
+  0xdf4a, 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xdf50, 0xdf51,
+  0xdf52, 0xdf53, 0xdf54, 0xdf55, 0xdf56, 0xdf57, 0xdf58, 0xdf59,
+  0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xdf5e, 0xdf5f, 0xdf60, 0xdf61,
+  0xdf62, 0xdf63, 0xdf64, 0xdf65, 0xdf66, 0xdf67, 0xdf68, 0xdf69,
+  0xdf6a, 0xdf6b, 0xdf6c, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xdf71,
+  0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xdf76, 0xdf77, 0xdf78, 0xdf79,
+  0xdf7a, 0xdf7b, 0xdf7c, 0xdf7d, 0xdf7e, 0xdf80, 0xdf81, 0xdf82,
+  0xdf83, 0xdf84, 0xdf85, 0xdf86, 0xdf87, 0xdf88, 0xdf89, 0xdf8a,
+  0xdf8b, 0xdf8c, 0xdf8d, 0xdf8e, 0xdf8f, 0xdf90, 0xdf91, 0xdf92,
+  0xdf93, 0xdf94, 0xdf95, 0xdf96, 0xdf97, 0xdf98, 0xdf99, 0xdf9a,
+  0xdf9b, 0xdf9c, 0xdf9d, 0xdf9e, 0xdf9f, 0xdfa0, 0xe040, 0xe041,
+  0xe042, 0xe043, 0xe044, 0xe045, 0xe046, 0xe047, 0xe048, 0xe049,
+  0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, 0xe04f, 0xe050, 0xe051,
+  0xe052, 0xe053, 0xe054, 0xe055, 0xe056, 0xe057, 0xe058, 0xe059,
+  0xe05a, 0xe05b, 0xe05c, 0xe05d, 0xe05e, 0xe05f, 0xe060, 0xe061,
+  0xe062, 0xe063, 0xe064, 0xe065, 0xe066, 0xe067, 0xe068, 0xe069,
+  0xe06a, 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071,
+  0xe072, 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079,
+  0xe07a, 0xe07b, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xe081, 0xe082,
+  0xe083, 0xe084, 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a,
+  0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092,
+  0xe093, 0xe094, 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a,
+  0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe140, 0xe141,
+  0xe142, 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, 0xe149,
+  0xe14a, 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, 0xe151,
+  0xe152, 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, 0xe159,
+  0xe15a, 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, 0xe161,
+  0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, 0xe169,
+  0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, 0xe171,
+  0xe172, 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0xe178, 0xe179,
+  0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, 0xe180, 0xe181, 0xe182,
+  0xe183, 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a,
+  0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192,
+  0xe193, 0xe194, 0xe195, 0xe196, 0xe197, 0xe198, 0xe199, 0xe19a,
+  0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241,
+  0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249,
+  0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251,
+  0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259,
+  0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261,
+  0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269,
+  0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271,
+  0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279,
+  0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282,
+  0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a,
+  0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292,
+  0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a,
+  0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341,
+  0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349,
+  0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351,
+  0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359,
+  0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361,
+  0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369,
+  0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xe36e, 0xe36f, 0xe370, 0xe371,
+  0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, 0xe379,
+  0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, 0xe382,
+  0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xe388, 0xe389, 0xe38a,
+  0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, 0xe391, 0xe392,
+  0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, 0xe399, 0xe39a,
+  0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe440, 0xe441,
+  0xe442, 0xe443, 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, 0xe449,
+  0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451,
+  0xe452, 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459,
+  0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461,
+  0xe462, 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0xe468, 0xe469,
+  0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, 0xe470, 0xe471,
+  0xe472, 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479,
+  0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe480, 0xe481, 0xe482,
+  0xe483, 0xe484, 0xe485, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a,
+  0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, 0xe490, 0xe491, 0xe492,
+  0xe493, 0xe494, 0xe495, 0xe496, 0xe497, 0xe498, 0xe499, 0xe49a,
+  0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, 0xe4a0, 0xe540, 0xe541,
+  0xe542, 0xe543, 0xe544, 0xe545, 0xe546, 0xe547, 0xe548, 0xe549,
+  0xe54a, 0xe54b, 0xe54c, 0xe54d, 0xe54e, 0xe54f, 0xe550, 0xe551,
+  0xe552, 0xe553, 0xe554, 0xe555, 0xe556, 0xe557, 0xe558, 0xe559,
+  0xe55a, 0xe55b, 0xe55c, 0xe55d, 0xe55e, 0xe55f, 0xe560, 0xe561,
+  0xe562, 0xe563, 0xe564, 0xe565, 0xe566, 0xe567, 0xe568, 0xe569,
+  0xe56a, 0xe56b, 0xe56c, 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571,
+  0xe572, 0xe573, 0xe574, 0xe575, 0xe576, 0xe577, 0xe578, 0xe579,
+  0xe57a, 0xe57b, 0xe57c, 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582,
+  0xe583, 0xe584, 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a,
+  0xe58b, 0xe58c, 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592,
+  0xe593, 0xe594, 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a,
+  0xe59b, 0xe59c, 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe640, 0xe641,
+  0xe642, 0xe643, 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649,
+  0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651,
+  0xe652, 0xe653, 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659,
+  0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661,
+  0xe662, 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669,
+  0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671,
+  0xe672, 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679,
+  0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682,
+  0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a,
+  0xe68b, 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692,
+  0xe693, 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a,
+  0xe69b, 0xe69c, 0xe69d, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741,
+  0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xe748, 0xe749,
+  0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751,
+  0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, 0xe759,
+  0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761,
+  0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, 0xe769,
+  0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, 0xe771,
+  0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, 0xe779,
+  0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, 0xe782,
+  0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a,
+  0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792,
+  0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, 0xe79a,
+  0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, 0xe841,
+  0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849,
+  0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xe84f, 0xe850, 0xe851,
+  0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, 0xe858, 0xe859,
+  0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, 0xe860, 0xe861,
+  0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869,
+  0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, 0xe870, 0xe871,
+  0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, 0xe878, 0xe879,
+  0xe87a, 0xe87b, 0xe87c, 0xe87d, 0xe87e, 0xe880, 0xe881, 0xe882,
+  0xe883, 0xe884, 0xe885, 0xe886, 0xe887, 0xe888, 0xe889, 0xe88a,
+  0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, 0xe890, 0xe891, 0xe892,
+  0xe893, 0xe894, 0xe895, 0xe896, 0xe897, 0xe898, 0xe899, 0xe89a,
+  0xe89b, 0xe89c, 0xe89d, 0xe89e, 0xe89f, 0xe8a0, 0xe940, 0xe941,
+  0xe942, 0xe943, 0xe944, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949,
+  0xe94a, 0xe94b, 0xe94c, 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951,
+  0xe952, 0xe953, 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959,
+  0xe95a, 0xe95b, 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961,
+  0xe962, 0xe963, 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969,
+  0xe96a, 0xe96b, 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971,
+  0xe972, 0xe973, 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979,
+  0xe97a, 0xe97b, 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982,
+  0xe983, 0xe984, 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a,
+  0xe98b, 0xe98c, 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992,
+  0xe993, 0xe994, 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a,
+  0xe99b, 0xe99c, 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41,
+  0xea42, 0xea43, 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49,
+  0xea4a, 0xea4b, 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51,
+  0xea52, 0xea53, 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59,
+  0xea5a, 0xea5b, 0xea5c, 0xea5d, 0xea5e, 0xea5f, 0xea60, 0xea61,
+  0xea62, 0xea63, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, 0xea69,
+  0xea6a, 0xea6b, 0xea6c, 0xea6d, 0xea6e, 0xea6f, 0xea70, 0xea71,
+  0xea72, 0xea73, 0xea74, 0xea75, 0xea76, 0xea77, 0xea78, 0xea79,
+  0xea7a, 0xea7b, 0xea7c, 0xea7d, 0xea7e, 0xea80, 0xea81, 0xea82,
+  0xea83, 0xea84, 0xea85, 0xea86, 0xea87, 0xea88, 0xea89, 0xea8a,
+  0xea8b, 0xea8c, 0xea8d, 0xea8e, 0xea8f, 0xea90, 0xea91, 0xea92,
+  0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, 0xea99, 0xea9a,
+  0xea9b, 0xea9c, 0xea9d, 0xea9e, 0xea9f, 0xeaa0, 0xeb40, 0xeb41,
+  0xeb42, 0xeb43, 0xeb44, 0xeb45, 0xeb46, 0xeb47, 0xeb48, 0xeb49,
+  0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51,
+  0xeb52, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59,
+  0xeb5a, 0xeb5b, 0xeb5c, 0xeb5d, 0xeb5e, 0xeb5f, 0xeb60, 0xeb61,
+  0xeb62, 0xeb63, 0xeb64, 0xeb65, 0xeb66, 0xeb67, 0xeb68, 0xeb69,
+  0xeb6a, 0xeb6b, 0xeb6c, 0xeb6d, 0xeb6e, 0xeb6f, 0xeb70, 0xeb71,
+  0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, 0xeb77, 0xeb78, 0xeb79,
+  0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, 0xeb7e, 0xeb80, 0xeb81, 0xeb82,
+  0xeb83, 0xeb84, 0xeb85, 0xeb86, 0xeb87, 0xeb88, 0xeb89, 0xeb8a,
+  0xeb8b, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, 0xeb90, 0xeb91, 0xeb92,
+  0xeb93, 0xeb94, 0xeb95, 0xeb96, 0xeb97, 0xeb98, 0xeb99, 0xeb9a,
+  0xeb9b, 0xeb9c, 0xeb9d, 0xeb9e, 0xeb9f, 0xeba0, 0xec40, 0xec41,
+  0xec42, 0xec43, 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49,
+  0xec4a, 0xec4b, 0xec4c, 0xec4d, 0xec4e, 0xec4f, 0xec50, 0xec51,
+  0xec52, 0xec53, 0xec54, 0xec55, 0xec56, 0xec57, 0xec58, 0xec59,
+  0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, 0xec60, 0xec61,
+  0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69,
+  0xec6a, 0xec6b, 0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71,
+  0xec72, 0xec73, 0xec74, 0xec75, 0xec76, 0xec77, 0xec78, 0xec79,
+  0xec7a, 0xec7b, 0xec7c, 0xec7d, 0xec7e, 0xec80, 0xec81, 0xec82,
+  0xec83, 0xec84, 0xec85, 0xec86, 0xec87, 0xec88, 0xec89, 0xec8a,
+  0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xec8f, 0xec90, 0xec91, 0xec92,
+  0xec93, 0xec94, 0xec95, 0xec96, 0xec97, 0xec98, 0xec99, 0xec9a,
+  0xec9b, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41,
+  0xed42, 0xed43, 0xed44, 0xed45, 0xed46, 0xed47, 0xed48, 0xed49,
+  0xed4a, 0xed4b, 0xed4c, 0xed4d, 0xed4e, 0xed4f, 0xed50, 0xed51,
+  0xed52, 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59,
+  0xed5a, 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61,
+  0xed62, 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69,
+  0xed6a, 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71,
+  0xed72, 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79,
+  0xed7a, 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xed82,
+  0xed83, 0xed84, 0xed85, 0xed86, 0xed87, 0xed88, 0xed89, 0xed8a,
+  0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, 0xed92,
+  0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, 0xed9a,
+  0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, 0xee41,
+  0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49,
+  0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, 0xee51,
+  0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, 0xee59,
+  0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, 0xee61,
+  0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, 0xee69,
+  0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, 0xee71,
+  0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, 0xee79,
+  0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, 0xee82,
+  0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, 0xee8a,
+  0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, 0xee92,
+  0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, 0xee9a,
+  0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, 0xef41,
+  0xef42, 0xef43, 0xef44, 0xef45, 0xef46, 0xef47, 0xef48, 0xef49,
+  0xef4a, 0xef4b, 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51,
+  0xef52, 0xef53, 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59,
+  0xef5a, 0xef5b, 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61,
+  0xef62, 0xef63, 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69,
+  0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71,
+  0xef72, 0xef73, 0xef74, 0xef75, 0xef76, 0xef77, 0xef78, 0xef79,
+  0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xef82,
+  0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a,
+  0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92,
+  0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, 0xef99, 0xef9a,
+  0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xf040, 0xf041,
+  0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, 0xf048, 0xf049,
+  0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, 0xf050, 0xf051,
+  0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, 0xf058, 0xf059,
+  0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, 0xf060, 0xf061,
+  0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, 0xf068, 0xf069,
+  0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071,
+  0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, 0xf078, 0xf079,
+  0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082,
+  0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, 0xf089, 0xf08a,
+  0xf08b, 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092,
+  0xf093, 0xf094, 0xf095, 0xf096, 0xf097, 0xf098, 0xf099, 0xf09a,
+  0xf09b, 0xf09c, 0xf09d, 0xf09e, 0xf09f, 0xf0a0, 0xf140, 0xf141,
+  0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149,
+  0xf14a, 0xf14b, 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151,
+  0xf152, 0xf153, 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159,
+  0xf15a, 0xf15b, 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161,
+  0xf162, 0xf163, 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169,
+  0xf16a, 0xf16b, 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171,
+  0xf172, 0xf173, 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179,
+  0xf17a, 0xf17b, 0xf17c, 0xf17d, 0xf17e, 0xf180, 0xf181, 0xf182,
+  0xf183, 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a,
+  0xf18b, 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192,
+  0xf193, 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a,
+  0xf19b, 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf240, 0xf241,
+  0xf242, 0xf243, 0xf244, 0xf245, 0xf246, 0xf247, 0xf248, 0xf249,
+  0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, 0xf250, 0xf251,
+  0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, 0xf258, 0xf259,
+  0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, 0xf260, 0xf261,
+  0xf262, 0xf263, 0xf264, 0xf265, 0xf266, 0xf267, 0xf268, 0xf269,
+  0xf26a, 0xf26b, 0xf26c, 0xf26d, 0xf26e, 0xf26f, 0xf270, 0xf271,
+  0xf272, 0xf273, 0xf274, 0xf275, 0xf276, 0xf277, 0xf278, 0xf279,
+  0xf27a, 0xf27b, 0xf27c, 0xf27d, 0xf27e, 0xf280, 0xf281, 0xf282,
+  0xf283, 0xf284, 0xf285, 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a,
+  0xf28b, 0xf28c, 0xf28d, 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292,
+  0xf293, 0xf294, 0xf295, 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a,
+  0xf29b, 0xf29c, 0xf29d, 0xf29e, 0xf29f, 0xf2a0, 0xf340, 0xf341,
+  0xf342, 0xf343, 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, 0xf349,
+  0xf34a, 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351,
+  0xf352, 0xf353, 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, 0xf359,
+  0xf35a, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361,
+  0xf362, 0xf363, 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, 0xf369,
+  0xf36a, 0xf36b, 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371,
+  0xf372, 0xf373, 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, 0xf379,
+  0xf37a, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf382,
+  0xf383, 0xf384, 0xf385, 0xf386, 0xf387, 0xf388, 0xf389, 0xf38a,
+  0xf38b, 0xf38c, 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392,
+  0xf393, 0xf394, 0xf395, 0xf396, 0xf397, 0xf398, 0xf399, 0xf39a,
+  0xf39b, 0xf39c, 0xf39d, 0xf39e, 0xf39f, 0xf3a0, 0xf440, 0xf441,
+  0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf447, 0xf448, 0xf449,
+  0xf44a, 0xf44b, 0xf44c, 0xf44d, 0xf44e, 0xf44f, 0xf450, 0xf451,
+  0xf452, 0xf453, 0xf454, 0xf455, 0xf456, 0xf457, 0xf458, 0xf459,
+  0xf45a, 0xf45b, 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461,
+  0xf462, 0xf463, 0xf464, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469,
+  0xf46a, 0xf46b, 0xf46c, 0xf46d, 0xf46e, 0xf46f, 0xf470, 0xf471,
+  0xf472, 0xf473, 0xf474, 0xf475, 0xf476, 0xf477, 0xf478, 0xf479,
+  0xf47a, 0xf47b, 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482,
+  0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a,
+  0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492,
+  0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a,
+  0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541,
+  0xf542, 0xf543, 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549,
+  0xf54a, 0xf54b, 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551,
+  0xf552, 0xf553, 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559,
+  0xf55a, 0xf55b, 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561,
+  0xf562, 0xf563, 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569,
+  0xf56a, 0xf56b, 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571,
+  0xf572, 0xf573, 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579,
+  0xf57a, 0xf57b, 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582,
+  0xf583, 0xf584, 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a,
+  0xf58b, 0xf58c, 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592,
+  0xf593, 0xf594, 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a,
+  0xf59b, 0xf59c, 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641,
+  0xf642, 0xf643, 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649,
+  0xf64a, 0xf64b, 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651,
+  0xf652, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659,
+  0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661,
+  0xf662, 0xf663, 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669,
+  0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671,
+  0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679,
+  0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682,
+  0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a,
+  0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692,
+  0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a,
+  0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741,
+  0xf742, 0xf743, 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749,
+  0xf74a, 0xf74b, 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751,
+  0xf752, 0xf753, 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759,
+  0xf75a, 0xf75b, 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761,
+  0xf762, 0xf763, 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769,
+  0xf76a, 0xf76b, 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771,
+  0xf772, 0xf773, 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779,
+  0xf77a, 0xf77b, 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xf781, 0xf782,
+  0xf783, 0xf784, 0xf785, 0xf786, 0xf787, 0xf788, 0xf789, 0xf78a,
+  0xf78b, 0xf78c, 0xf78d, 0xf78e, 0xf78f, 0xf790, 0xf791, 0xf792,
+  0xf793, 0xf794, 0xf795, 0xf796, 0xf797, 0xf798, 0xf799, 0xf79a,
+  0xf79b, 0xf79c, 0xf79d, 0xf79e, 0xf79f, 0xf7a0, 0xf840, 0xf841,
+  0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849,
+  0xf84a, 0xf84b, 0xf84c, 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851,
+  0xf852, 0xf853, 0xf854, 0xf855, 0xf856, 0xf857, 0xf858, 0xf859,
+  0xf85a, 0xf85b, 0xf85c, 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861,
+  0xf862, 0xf863, 0xf864, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869,
+  0xf86a, 0xf86b, 0xf86c, 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871,
+  0xf872, 0xf873, 0xf874, 0xf875, 0xf876, 0xf877, 0xf878, 0xf879,
+  0xf87a, 0xf87b, 0xf87c, 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882,
+  0xf883, 0xf884, 0xf885, 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a,
+  0xf88b, 0xf88c, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892,
+  0xf893, 0xf894, 0xf895, 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a,
+  0xf89b, 0xf89c, 0xf89d, 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941,
+  0xf942, 0xf943, 0xf944, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949,
+  0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951,
+  0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0xf958, 0xf959,
+  0xf95a, 0xf95b, 0xf95c, 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961,
+  0xf962, 0xf963, 0xf964, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969,
+  0xf96a, 0xf96b, 0xf96c, 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971,
+  0xf972, 0xf973, 0xf974, 0xf975, 0xf976, 0xf977, 0xf978, 0xf979,
+  0xf97a, 0xf97b, 0xf97c, 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982,
+  0xf983, 0xf984, 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a,
+  0xf98b, 0xf98c, 0xf98d, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992,
+  0xf993, 0xf994, 0xf995, 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a,
+  0xf99b, 0xf99c, 0xf99d, 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41,
+  0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49,
+  0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51,
+  0xfa52, 0xfa53, 0xfa54, 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59,
+  0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61,
+  0xfa62, 0xfa63, 0xfa64, 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69,
+  0xfa6a, 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71,
+  0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79,
+  0xfa7a, 0xfa7b, 0xfa7c, 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82,
+  0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a,
+  0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92,
+  0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a,
+  0xfa9b, 0xfa9c, 0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41,
+  0xfb42, 0xfb43, 0xfb44, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49,
+  0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51,
+  0xfb52, 0xfb53, 0xfb54, 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59,
+  0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5e, 0xfb5f, 0xfb60, 0xfb61,
+  0xfb62, 0xfb63, 0xfb64, 0xfb65, 0xfb66, 0xfb67, 0xfb68, 0xfb69,
+  0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfb6f, 0xfb70, 0xfb71,
+  0xfb72, 0xfb73, 0xfb74, 0xfb75, 0xfb76, 0xfb77, 0xfb78, 0xfb79,
+  0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xfb7e, 0xfb80, 0xfb81, 0xfb82,
+  0xfb83, 0xfb84, 0xfb85, 0xfb86, 0xfb87, 0xfb88, 0xfb89, 0xfb8a,
+  0xfb8b, 0xfb8c, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, 0xfb91, 0xfb92,
+  0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfb9a,
+  0xfb9b, 0xfb9c, 0xfb9d, 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41,
+  0xfc42, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xfc49,
+  0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, 0xfc4e, 0xfc4f, 0xfc50, 0xfc51,
+  0xfc52, 0xfc53, 0xfc54, 0xfc55, 0xfc56, 0xfc57, 0xfc58, 0xfc59,
+  0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, 0xfc5e, 0xfc5f, 0xfc60, 0xfc61,
+  0xfc62, 0xfc63, 0xfc64, 0xfc65, 0xfc66, 0xfc67, 0xfc68, 0xfc69,
+  0xfc6a, 0xfc6b, 0xfc6c, 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71,
+  0xfc72, 0xfc73, 0xfc74, 0xfc75, 0xfc76, 0xfc77, 0xfc78, 0xfc79,
+  0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, 0xfc82,
+  0xfc83, 0xfc84, 0xfc85, 0xfc86, 0xfc87, 0xfc88, 0xfc89, 0xfc8a,
+  0xfc8b, 0xfc8c, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92,
+  0xfc93, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, 0xfc99, 0xfc9a,
+  0xfc9b, 0xfc9c, 0xfc9d, 0xfc9e, 0xfc9f, 0xfca0, 0xfd40, 0xfd41,
+  0xfd42, 0xfd43, 0xfd44, 0xfd45, 0xfd46, 0xfd47, 0xfd48, 0xfd49,
+  0xfd4a, 0xfd4b, 0xfd4c, 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51,
+  0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 0xfd58, 0xfd59,
+  0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, 0xfd61,
+  0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69,
+  0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71,
+  0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 0xfd78, 0xfd79,
+  0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfd80, 0xfd81, 0xfd82,
+  0xfd83, 0xfd84, 0xfd85, 0xfd86, 0xfd87, 0xfd88, 0xfd89, 0xfd8a,
+  0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92,
+  0xfd93, 0xfd94, 0xfd95, 0xfd96, 0xfd97, 0xfd98, 0xfd99, 0xfd9a,
+  0xfd9b, 0xfd9c, 0xfd9d, 0xfd9e, 0xfd9f, 0xfda0, 0xfe40, 0xfe41,
+  0xfe42, 0xfe43, 0xfe44, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49,
+  0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xa955, 0xa968,
+  0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970,
+  0xa971, 0xa972, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978,
+  0xa979, 0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa97e, 0xa980, 0xa981,
+  0xa982, 0xa983, 0xa984, 0xa985, 0xa986, 0xa987, 0xa988, 0xa956,
+  0xa957,
+};
+
+static const Summary16 gbkext_inv_uni2indx_page02[14] = {
+  /* 0x0200 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0c00 }, {    2, 0x0200 },
+};
+static const Summary16 gbkext_inv_uni2indx_page20[44] = {
+  /* 0x2000 */
+  {    3, 0x0000 }, {    3, 0x0029 }, {    6, 0x0020 }, {    7, 0x0020 },
+  {    8, 0x0000 }, {    8, 0x0000 }, {    8, 0x0000 }, {    8, 0x0000 },
+  {    8, 0x0000 }, {    8, 0x0000 }, {    8, 0x0000 }, {    8, 0x0000 },
+  {    8, 0x0000 }, {    8, 0x0000 }, {    8, 0x0000 }, {    8, 0x0000 },
+  /* 0x2100 */
+  {    8, 0x0220 }, {   10, 0x0000 }, {   10, 0x0002 }, {   11, 0x0000 },
+  {   11, 0x0000 }, {   11, 0x0000 }, {   11, 0x0000 }, {   11, 0x0000 },
+  {   11, 0x0000 }, {   11, 0x03c0 }, {   15, 0x0000 }, {   15, 0x0000 },
+  {   15, 0x0000 }, {   15, 0x0000 }, {   15, 0x0000 }, {   15, 0x0000 },
+  /* 0x2200 */
+  {   15, 0x0000 }, {   15, 0x8020 }, {   17, 0x0008 }, {   18, 0x0000 },
+  {   18, 0x0000 }, {   18, 0x0004 }, {   19, 0x00c0 }, {   21, 0x0000 },
+  {   21, 0x0000 }, {   21, 0x0020 }, {   22, 0x0000 }, {   22, 0x8000 },
+};
+static const Summary16 gbkext_inv_uni2indx_page25[17] = {
+  /* 0x2500 */
+  {   23, 0x0000 }, {   23, 0x0000 }, {   23, 0x0000 }, {   23, 0x0000 },
+  {   23, 0x0000 }, {   23, 0xffff }, {   39, 0xffff }, {   55, 0x000f },
+  {   59, 0xfffe }, {   74, 0x0038 }, {   77, 0x0000 }, {   77, 0x3000 },
+  {   79, 0x0000 }, {   79, 0x0000 }, {   79, 0x003c }, {   83, 0x0000 },
+  /* 0x2600 */
+  {   83, 0x0200 },
+};
+static const Summary16 gbkext_inv_uni2indx_page30[16] = {
+  /* 0x3000 */
+  {   84, 0x00c0 }, {   86, 0x6004 }, {   89, 0x03fe }, {   98, 0x0000 },
+  {   98, 0x0000 }, {   98, 0x0000 }, {   98, 0x0000 }, {   98, 0x0000 },
+  {   98, 0x0000 }, {   98, 0x7800 }, {  102, 0x0000 }, {  102, 0x0000 },
+  {  102, 0x0000 }, {  102, 0x0000 }, {  102, 0x0000 }, {  102, 0x7000 },
+};
+static const Summary16 gbkext_inv_uni2indx_page32[30] = {
+  /* 0x3200 */
+  {  105, 0x0000 }, {  105, 0x0000 }, {  105, 0x0000 }, {  105, 0x0002 },
+  {  106, 0x0000 }, {  106, 0x0000 }, {  106, 0x0000 }, {  106, 0x0000 },
+  {  106, 0x0000 }, {  106, 0x0000 }, {  106, 0x0008 }, {  107, 0x0000 },
+  {  107, 0x0000 }, {  107, 0x0000 }, {  107, 0x0000 }, {  107, 0x0000 },
+  /* 0x3300 */
+  {  107, 0x0000 }, {  107, 0x0000 }, {  107, 0x0000 }, {  107, 0x0000 },
+  {  107, 0x0000 }, {  107, 0x0000 }, {  107, 0x0000 }, {  107, 0x0000 },
+  {  107, 0xc000 }, {  109, 0x7000 }, {  112, 0x0002 }, {  113, 0x0000 },
+  {  113, 0x4010 }, {  115, 0x0026 },
+};
+static const Summary16 gbkext_inv_uni2indx_page4e[1307] = {
+  /* 0x4e00 */
+  {  118, 0x8074 }, {  123, 0x8084 }, {  126, 0xc24b }, {  133, 0x10aa },
+  {  138, 0x0457 }, {  144, 0x0ca2 }, {  149, 0xfdbc }, {  161, 0xbff4 },
+  {  173, 0x04bf }, {  181, 0x72c1 }, {  188, 0x8408 }, {  191, 0x73d3 },
+  {  201, 0x9100 }, {  204, 0x1c05 }, {  209, 0xe2c5 }, {  217, 0x5712 },
+  /* 0x4f00 */
+  {  224, 0x19fd }, {  234, 0x307c }, {  241, 0x730a }, {  248, 0xcaaa },
+  {  256, 0x1fb7 }, {  267, 0x0054 }, {  270, 0x6d46 }, {  278, 0x27a6 },
+  {  286, 0x54e7 }, {  295, 0xd76d }, {  306, 0x2816 }, {  311, 0x7fdf },
+  {  325, 0x3bc7 }, {  335, 0x0a7c }, {  342, 0x18b5 }, {  349, 0xbaf5 },
+  /* 0x5000 */
+  {  360, 0x4fff }, {  373, 0x68eb }, {  382, 0x889d }, {  389, 0xabff },
+  {  402, 0x2e77 }, {  412, 0xebdf }, {  425, 0xefdf }, {  439, 0x373f },
+  {  450, 0xdede }, {  462, 0xffff }, {  478, 0xec57 }, {  488, 0xf3fb },
+  {  501, 0x7fff }, {  516, 0xfbbf }, {  530, 0x8f3f }, {  541, 0xf7d7 },
+  /* 0x5100 */
+  {  554, 0xf73f }, {  567, 0xfffb }, {  582, 0xfffd }, {  597, 0x7fff },
+  {  612, 0xd484 }, {  618, 0xeb8d }, {  628, 0x86db }, {  637, 0xc404 },
+  {  641, 0xccd8 }, {  649, 0xe51b }, {  658, 0x67ca }, {  667, 0xc710 },
+  {  673, 0x652e }, {  681, 0xd7fd }, {  694, 0x57ec }, {  704, 0x4096 },
+  /* 0x5200 */
+  {  709, 0x9a30 }, {  715, 0xd039 }, {  722, 0x94ee }, {  731, 0x5036 },
+  {  737, 0xcbf0 }, {  746, 0xafac }, {  756, 0x795d }, {  766, 0x5ffb },
+  {  779, 0xfef9 }, {  792, 0x17f6 }, {  802, 0xc0f0 }, {  808, 0x3ff1 },
+  {  819, 0xf577 }, {  831, 0x7eba }, {  842, 0xffef }, {  857, 0x39fe },
+  /* 0x5300 */
+  {  868, 0x5e9e }, {  878, 0xd91e }, {  887, 0xbbb4 }, {  897, 0x31ff },
+  {  908, 0x3855 }, {  915, 0x2b11 }, {  921, 0x3520 }, {  926, 0x7a44 },
+  {  933, 0xc58b }, {  941, 0x5adf }, {  952, 0xbc93 }, {  961, 0x77bf },
+  {  974, 0xc0f9 }, {  982, 0x742d }, {  990, 0x0086 }, {  993, 0xc410 },
+  /* 0x5400 */
+  {  997, 0x08a5 }, { 1002, 0x1710 }, { 1007, 0x0434 }, { 1011, 0xa4c9 },
+  { 1018, 0xf2b6 }, { 1028, 0xe402 }, { 1033, 0xfeab }, { 1045, 0xc611 },
+  { 1051, 0x27aa }, { 1059, 0xd18a }, { 1066, 0x4027 }, { 1071, 0x56e5 },
+  { 1080, 0x0c28 }, { 1084, 0x0940 }, { 1087, 0x981f }, { 1095, 0x4bf3 },
+  /* 0x5500 */
+  { 1105, 0x7d3d }, { 1116, 0xf7ec }, { 1128, 0x2b62 }, { 1135, 0x2f74 },
+  { 1144, 0xf9a5 }, { 1154, 0xef9e }, { 1166, 0x8b0d }, { 1173, 0xa61f },
+  { 1182, 0x7060 }, { 1187, 0x4ced }, { 1196, 0xff7f }, { 1211, 0x9555 },
+  { 1219, 0xcdcf }, { 1230, 0x4fa1 }, { 1238, 0x6285 }, { 1244, 0x9f53 },
+  /* 0x5600 */
+  { 1254, 0x2cfc }, { 1263, 0x36ff }, { 1275, 0xcf67 }, { 1286, 0x75a9 },
+  { 1295, 0x8fff }, { 1308, 0xec6f }, { 1319, 0xe0eb }, { 1328, 0xe7bd },
+  { 1340, 0x3f9f }, { 1352, 0xfff7 }, { 1367, 0x7ff7 }, { 1381, 0xef7f },
+  { 1395, 0xfbff }, { 1410, 0x136f }, { 1419, 0xd7e8 }, { 1429, 0x19cc },
+  /* 0x5700 */
+  { 1436, 0xf8a7 }, { 1446, 0x6fff }, { 1460, 0x08f7 }, { 1468, 0xb1f6 },
+  { 1478, 0x0b7a }, { 1486, 0x037c }, { 1493, 0x50ac }, { 1499, 0xe737 },
+  { 1510, 0xe783 }, { 1519, 0xf7f3 }, { 1532, 0x9520 }, { 1537, 0xfeeb },
+  { 1550, 0x37f3 }, { 1561, 0x58cb }, { 1569, 0x5fee }, { 1581, 0xd8ef },
+  /* 0x5800 */
+  { 1592, 0xd73a }, { 1602, 0xbddd }, { 1614, 0xfbec }, { 1626, 0xffde },
+  { 1640, 0xcfef }, { 1653, 0xbeed }, { 1665, 0xe7df }, { 1678, 0xbfff },
+  { 1693, 0xfdd4 }, { 1704, 0x39f3 }, { 1714, 0xfcff }, { 1728, 0xefff },
+  { 1743, 0xffdd }, { 1757, 0xffdd }, { 1771, 0xa7ef }, { 1783, 0xfdb6 },
+  /* 0x5900 */
+  { 1795, 0x5f6b }, { 1806, 0x698f }, { 1815, 0x114f }, { 1822, 0xe86d },
+  { 1831, 0x3469 }, { 1838, 0xfa0d }, { 1847, 0xffda }, { 1860, 0xdca7 },
+  { 1870, 0xda21 }, { 1877, 0xbd33 }, { 1887, 0x30c7 }, { 1894, 0xb5fb },
+  { 1906, 0xf3bf }, { 1919, 0xca60 }, { 1925, 0xeed7 }, { 1937, 0x75ff },
+  /* 0x5a00 */
+  { 1950, 0xec05 }, { 1957, 0x6ef5 }, { 1968, 0xfdd6 }, { 1980, 0xefa9 },
+  { 1991, 0xf9be }, { 2003, 0xfbdf }, { 2017, 0xfb7b }, { 2030, 0x7b0f },
+  { 2040, 0xffff }, { 2056, 0xf3fb }, { 2069, 0xfbff }, { 2084, 0xbed3 },
+  { 2095, 0xedf9 }, { 2107, 0xeeab }, { 2118, 0xf5b4 }, { 2128, 0xfffd },
+  /* 0x5b00 */
+  { 2143, 0xfdff }, { 2158, 0xff3f }, { 2172, 0xffff }, { 2188, 0xff6b },
+  { 2201, 0xfffe }, { 2216, 0x4044 }, { 2219, 0xe983 }, { 2227, 0xdbd4 },
+  { 2237, 0x6444 }, { 2242, 0x8057 }, { 2248, 0xf380 }, { 2255, 0x1c86 },
+  { 2261, 0xef0b }, { 2271, 0x1ff2 }, { 2281, 0xbecd }, { 2292, 0x60fe },
+  /* 0x5c00 */
+  { 2301, 0x79ad }, { 2311, 0xca8d }, { 2319, 0xef4b }, { 2330, 0x00ed },
+  { 2336, 0x30d8 }, { 2342, 0xbddc }, { 2353, 0x3f94 }, { 2362, 0x79fd },
+  { 2374, 0xcef9 }, { 2385, 0xe02c }, { 2391, 0xc5f3 }, { 2401, 0x5e55 },
+  { 2410, 0xf7ed }, { 2423, 0xfdfb }, { 2437, 0xda8d }, { 2446, 0xf7fe },
+  /* 0x5d00 */
+  { 2460, 0xbf33 }, { 2471, 0xb7af }, { 2483, 0x9d2f }, { 2493, 0x9fef },
+  { 2506, 0xe37f }, { 2518, 0xd6ff }, { 2531, 0x65ff }, { 2543, 0xffef },
+  { 2558, 0xfffb }, { 2573, 0xddff }, { 2587, 0xffff }, { 2603, 0xff7f },
+  { 2618, 0xdfdf }, { 2632, 0x97ff }, { 2645, 0x3419 }, { 2651, 0x9f61 },
+  /* 0x5e00 */
+  { 2660, 0x6e91 }, { 2668, 0xc08c }, { 2673, 0x9f3f }, { 2685, 0xc67d },
+  { 2695, 0xefcb }, { 2707, 0xb7cf }, { 2719, 0xfff9 }, { 2733, 0x42a3 },
+  { 2739, 0x732e }, { 2748, 0x2904 }, { 2752, 0xdf1e }, { 2763, 0xbc17 },
+  { 2772, 0xf9ff }, { 2786, 0xf7b1 }, { 2797, 0xfaff }, { 2811, 0x3b2f },
+  /* 0x5f00 */
+  { 2821, 0x72e0 }, { 2828, 0x7655 }, { 2837, 0x591e }, { 2845, 0xe9fd },
+  { 2857, 0xfffe }, { 2872, 0xde12 }, { 2880, 0xc9a9 }, { 2888, 0xe574 },
+  { 2897, 0xe048 }, { 2902, 0xec5a }, { 2911, 0x9afd }, { 2922, 0xcf5f },
+  { 2934, 0x4d87 }, { 2942, 0xdc38 }, { 2950, 0x936c }, { 2958, 0x16dd },
+  /* 0x6000 */
+  { 2967, 0x1b80 }, { 2972, 0xc58b }, { 2980, 0x701c }, { 2986, 0x67df },
+  { 2998, 0xd7f1 }, { 3009, 0xd9da }, { 3019, 0x4063 }, { 3024, 0x40b6 },
+  { 3030, 0xcde7 }, { 3041, 0x53ab }, { 3050, 0x46b6 }, { 3058, 0xe6e9 },
+  { 3068, 0xf39f }, { 3080, 0x4add }, { 3089, 0x043e }, { 3095, 0xf9a6 },
+  /* 0x6100 */
+  { 3105, 0x1cbc }, { 3113, 0x7bdf }, { 3126, 0xf726 }, { 3136, 0x7fff },
+  { 3151, 0xaaff }, { 3163, 0xdfdd }, { 3176, 0xfe7b }, { 3189, 0xff5e },
+  { 3202, 0xb7ff }, { 3216, 0xdfef }, { 3230, 0xec7f }, { 3242, 0xbf7f },
+  { 3256, 0xf2fb }, { 3268, 0xffe9 }, { 3281, 0xffbf }, { 3296, 0x7fdf },
+  /* 0x6200 */
+  { 3310, 0x02bf }, { 3318, 0x7218 }, { 3324, 0xabc9 }, { 3333, 0x1f67 },
+  { 3343, 0x8474 }, { 3349, 0xf6e1 }, { 3359, 0x0137 }, { 3365, 0x2db6 },
+  { 3374, 0xf9ee }, { 3386, 0x7211 }, { 3392, 0xe6c8 }, { 3400, 0x45dd },
+  { 3409, 0x880b }, { 3414, 0x6022 }, { 3418, 0x0c13 }, { 3423, 0x0f25 },
+  /* 0x6300 */
+  { 3430, 0xbc79 }, { 3440, 0x13bd }, { 3449, 0x72c0 }, { 3455, 0xd9fb },
+  { 3467, 0x0593 }, { 3473, 0x3fde }, { 3485, 0x9d71 }, { 3494, 0xf33d },
+  { 3505, 0x287a }, { 3512, 0xfeba }, { 3524, 0x8852 }, { 3529, 0xaa66 },
+  { 3537, 0x1daf }, { 3547, 0xbfba }, { 3559, 0xd9f4 }, { 3569, 0x5eab },
+  /* 0x6400 */
+  { 3579, 0x67d8 }, { 3588, 0xa7e6 }, { 3598, 0xcbbc }, { 3608, 0x5bef },
+  { 3620, 0xfa0d }, { 3629, 0xbeeb }, { 3641, 0xdd7f }, { 3654, 0xf8ff },
+  { 3667, 0xff4b }, { 3679, 0xbd99 }, { 3689, 0x8def }, { 3700, 0xea5e },
+  { 3710, 0x9fda }, { 3721, 0xbe7a }, { 3732, 0xffab }, { 3745, 0xffff },
+  /* 0x6500 */
+  { 3761, 0xfdfe }, { 3775, 0xfefb }, { 3789, 0x37df }, { 3801, 0x348f },
+  { 3809, 0x6cdf }, { 3820, 0x959d }, { 3829, 0xe7b3 }, { 3840, 0xff6a },
+  { 3852, 0xe77f }, { 3865, 0x6574 }, { 3873, 0x554d }, { 3881, 0xcdfe },
+  { 3893, 0x2785 }, { 3900, 0xff3b }, { 3913, 0x0c1a }, { 3918, 0xfb3c },
+  /* 0x6600 */
+  { 3929, 0x2bb2 }, { 3937, 0x5dc7 }, { 3947, 0x5e5e }, { 3957, 0xaf8d },
+  { 3967, 0x67f5 }, { 3978, 0x7b03 }, { 3986, 0x3ead }, { 3996, 0xbb2e },
+  { 4006, 0xef6b }, { 4018, 0xdf3d }, { 4030, 0xbe7f }, { 4043, 0xbdef },
+  { 4056, 0xffff }, { 4072, 0xc5ff }, { 4084, 0xfdbf }, { 4098, 0x2d62 },
+  /* 0x6700 */
+  { 4105, 0xd0fe }, { 4115, 0x574e }, { 4124, 0x42bf }, { 4133, 0xdbcd },
+  { 4144, 0x2cb2 }, { 4151, 0x2fb4 }, { 4160, 0x58dc }, { 4168, 0x2f52 },
+  { 4176, 0xf56d }, { 4187, 0x8a5e }, { 4195, 0x5253 }, { 4202, 0xfe16 },
+  { 4212, 0x7fe5 }, { 4224, 0x88e0 }, { 4229, 0x6dda }, { 4239, 0x5fe4 },
+  /* 0x6800 */
+  { 4249, 0x205e }, { 4255, 0xdf35 }, { 4266, 0xf9fd }, { 4279, 0x8c73 },
+  { 4287, 0xa880 }, { 4291, 0xffc4 }, { 4302, 0xf400 }, { 4307, 0xff2f },
+  { 4320, 0x7f95 }, { 4331, 0xff77 }, { 4345, 0x5e3b }, { 4355, 0xffd6 },
+  { 4368, 0xd5fa }, { 4379, 0xfadb }, { 4391, 0xbff6 }, { 4404, 0xe9dc },
+  /* 0x6900 */
+  { 4414, 0x97dd }, { 4425, 0x7ffa }, { 4438, 0xdfee }, { 4451, 0x5dee },
+  { 4462, 0xfffb }, { 4477, 0x9b6f }, { 4488, 0xb7b6 }, { 4499, 0xec7d },
+  { 4510, 0xdc2a }, { 4518, 0xe6cf }, { 4529, 0xd67f }, { 4541, 0xf76d },
+  { 4553, 0xabfd }, { 4565, 0x77ee }, { 4577, 0xdffe }, { 4591, 0x5ffb },
+  /* 0x6a00 */
+  { 4604, 0xfbff }, { 4619, 0x7e7f }, { 4632, 0x7afd }, { 4644, 0x9fdd },
+  { 4656, 0xff6f }, { 4670, 0xf4fe }, { 4682, 0xffdd }, { 4696, 0xedfd },
+  { 4709, 0xbfee }, { 4722, 0xff7c }, { 4735, 0xe5fe }, { 4747, 0xffff },
+  { 4763, 0xffff }, { 4779, 0xffff }, { 4795, 0xffff }, { 4811, 0xffff },
+  /* 0x6b00 */
+  { 4827, 0xffff }, { 4843, 0xffff }, { 4859, 0xff60 }, { 4869, 0xb97b },
+  { 4880, 0xed37 }, { 4891, 0xfdff }, { 4906, 0xfb03 }, { 4915, 0xe5ff },
+  { 4928, 0xd121 }, { 4934, 0xf3b3 }, { 4945, 0xfbfd }, { 4959, 0x7f47 },
+  { 4970, 0x57d9 }, { 4980, 0xf503 }, { 4988, 0x73fd }, { 5000, 0xddd7 },
+  /* 0x6c00 */
+  { 5012, 0x5f1f }, { 5023, 0x7084 }, { 5028, 0x3829 }, { 5034, 0xdeca },
+  { 5044, 0xf938 }, { 5053, 0x074e }, { 5060, 0xf8ec }, { 5070, 0x9daa },
+  { 5079, 0x6c91 }, { 5086, 0x75e6 }, { 5096, 0x9105 }, { 5101, 0x04f1 },
+  { 5107, 0xe9cf }, { 5118, 0xb706 }, { 5126, 0x32d0 }, { 5132, 0x8214 },
+  /* 0x6d00 */
+  { 5136, 0xa76d }, { 5146, 0xb17b }, { 5156, 0xb35f }, { 5167, 0x85d1 },
+  { 5174, 0x1215 }, { 5179, 0xa9e1 }, { 5187, 0x39b6 }, { 5196, 0xee6f },
+  { 5208, 0xacdb }, { 5218, 0x17c5 }, { 5226, 0x3024 }, { 5230, 0x7edb },
+  { 5242, 0xe70e }, { 5251, 0x9cbd }, { 5261, 0xa7ac }, { 5270, 0xe575 },
+  /* 0x6e00 */
+  { 5280, 0x8bdf }, { 5291, 0xdb2c }, { 5300, 0x55c4 }, { 5307, 0xfaeb },
+  { 5319, 0x9fe7 }, { 5331, 0x76a7 }, { 5341, 0xb7ff }, { 5355, 0x3fff },
+  { 5369, 0x7d97 }, { 5380, 0x6efe }, { 5392, 0x7b5b }, { 5403, 0xd329 },
+  { 5411, 0x7779 }, { 5422, 0x3b45 }, { 5430, 0xfc88 }, { 5438, 0xfdef },
+  /* 0x6f00 */
+  { 5452, 0x7dbb }, { 5464, 0xffc7 }, { 5477, 0x51ee }, { 5486, 0xbfb5 },
+  { 5498, 0xd73f }, { 5510, 0xaeff }, { 5523, 0x9fbb }, { 5535, 0xeaeb },
+  { 5546, 0x8cef }, { 5556, 0xefff }, { 5571, 0xff7d }, { 5585, 0xfdb7 },
+  { 5598, 0xfdfa }, { 5611, 0xbff9 }, { 5624, 0x3ffc }, { 5636, 0xffff },
+  /* 0x7000 */
+  { 5652, 0xffff }, { 5668, 0xf3fd }, { 5681, 0xfff7 }, { 5696, 0xfddf },
+  { 5710, 0x6fff }, { 5724, 0xbfff }, { 5739, 0x47ff }, { 5751, 0x2e9e },
+  { 5760, 0xb9de }, { 5771, 0xcd8b }, { 5780, 0x07ff }, { 5791, 0xc475 },
+  { 5799, 0xfaf0 }, { 5809, 0x74ff }, { 5821, 0x442f }, { 5828, 0xdd7f },
+  /* 0x7100 */
+  { 5841, 0xf9ff }, { 5855, 0xf896 }, { 5864, 0x7fbf }, { 5878, 0xffbc },
+  { 5891, 0xabdf }, { 5903, 0xafff }, { 5917, 0xbe2f }, { 5928, 0xdaf3 },
+  { 5939, 0x7bef }, { 5952, 0x7cef }, { 5964, 0xeefe }, { 5977, 0xfdd7 },
+  { 5990, 0xbff7 }, { 6004, 0xffcf }, { 6018, 0xbf5e }, { 6030, 0xfdff },
+  /* 0x7200 */
+  { 6045, 0xffbf }, { 6060, 0xdfff }, { 6075, 0xeaff }, { 6088, 0x541c },
+  { 6094, 0xce7f }, { 6106, 0x55bb }, { 6116, 0x3d39 }, { 6125, 0x39db },
+  { 6135, 0x53ec }, { 6144, 0x7ffb }, { 6158, 0x4fff }, { 6171, 0xfc2e },
+  { 6181, 0x9ee1 }, { 6190, 0xbd7a }, { 6201, 0x0cfc }, { 6209, 0xe260 },
+  /* 0x7300 */
+  { 6215, 0xbbf5 }, { 6227, 0x8717 }, { 6235, 0xa1d9 }, { 6243, 0x3c6d },
+  { 6252, 0xdfff }, { 6267, 0xff7a }, { 6280, 0x4ffe }, { 6292, 0xbfff },
+  { 6307, 0xb56f }, { 6318, 0x77bd }, { 6330, 0x35fb }, { 6341, 0xf372 },
+  { 6351, 0x58fa }, { 6360, 0xbdfc }, { 6372, 0xdd5e }, { 6383, 0xfffb },
+  /* 0x7400 */
+  { 6398, 0x7997 }, { 6408, 0xf3fe }, { 6421, 0xaa9b }, { 6430, 0xef86 },
+  { 6440, 0xfffd }, { 6455, 0x215f }, { 6463, 0xdfff }, { 6478, 0xbf3e },
+  { 6490, 0xb774 }, { 6500, 0xaffe }, { 6513, 0xfc7f }, { 6526, 0xfbff },
+  { 6541, 0xffff }, { 6557, 0xaffb }, { 6570, 0x3fa2 }, { 6579, 0x7f2f },
+  /* 0x7500 */
+  { 6591, 0x5fef }, { 6604, 0x68f5 }, { 6613, 0x44df }, { 6622, 0xb250 },
+  { 6628, 0x26de }, { 6637, 0xe1ef }, { 6648, 0xfb9f }, { 6661, 0x7ceb },
+  { 6672, 0x77b7 }, { 6684, 0x5929 }, { 6691, 0x27c4 }, { 6698, 0x8cc0 },
+  { 6703, 0xd843 }, { 6710, 0xb68b }, { 6719, 0xf223 }, { 6727, 0x6dec },
+  /* 0x7600 */
+  { 6737, 0xebd4 }, { 6747, 0x745e }, { 6756, 0xd18a }, { 6763, 0x2ec6 },
+  { 6771, 0xcff6 }, { 6783, 0xafaf }, { 6795, 0x77f7 }, { 6808, 0x96ff },
+  { 6820, 0xb62b }, { 6829, 0xfdb5 }, { 6841, 0xbfef }, { 6855, 0x7fe9 },
+  { 6867, 0x1a9b }, { 6875, 0x7628 }, { 6882, 0x3fdf }, { 6895, 0xace9 },
+  /* 0x7700 */
+  { 6904, 0xd46d }, { 6913, 0x79ff }, { 6926, 0x5cba }, { 6935, 0xea1f },
+  { 6945, 0xff74 }, { 6957, 0xf3fc }, { 6969, 0xe691 }, { 6977, 0x1dff },
+  { 6989, 0x8fce }, { 6999, 0x7ff9 }, { 7012, 0xe95a }, { 7021, 0x57d6 },
+  { 7031, 0xdfff }, { 7046, 0xe77f }, { 7059, 0x8553 }, { 7066, 0x1eb7 },
+  /* 0x7800 */
+  { 7076, 0xcdf8 }, { 7086, 0x4a29 }, { 7092, 0xcd17 }, { 7101, 0xa06e },
+  { 7108, 0xaf5e }, { 7119, 0xdf1a }, { 7129, 0x83ff }, { 7140, 0xef7f },
+  { 7154, 0x8d7f }, { 7165, 0x6275 }, { 7173, 0xff55 }, { 7185, 0xbde0 },
+  { 7194, 0xf1dd }, { 7205, 0xfdce }, { 7217, 0xeeff }, { 7231, 0xfb6b },
+  /* 0x7900 */
+  { 7243, 0xffdd }, { 7257, 0xbff7 }, { 7271, 0xffef }, { 7286, 0xa3ef },
+  { 7297, 0xfcbc }, { 7308, 0x0337 }, { 7315, 0x5e5a }, { 7324, 0xfa7f },
+  { 7337, 0x7bcc }, { 7347, 0xfbff }, { 7362, 0xff7f }, { 7377, 0x91f7 },
+  { 7387, 0xd5b4 }, { 7396, 0x7ed9 }, { 7407, 0x5527 }, { 7415, 0xd6fe },
+  /* 0x7a00 */
+  { 7427, 0x97b2 }, { 7436, 0xbb6f }, { 7448, 0xfff6 }, { 7462, 0x4577 },
+  { 7471, 0xffbf }, { 7486, 0xff7d }, { 7500, 0xffff }, { 7516, 0x782e },
+  { 7524, 0xdea4 }, { 7533, 0x4e19 }, { 7540, 0xce9e }, { 7550, 0x7ff7 },
+  { 7564, 0xf7ff }, { 7579, 0x3dbf }, { 7591, 0x5f96 }, { 7601, 0x59ff },
+  /* 0x7b00 */
+  { 7613, 0x72a7 }, { 7622, 0xb5cd }, { 7632, 0xa28e }, { 7639, 0xaaf5 },
+  { 7649, 0x655f }, { 7659, 0xd2a8 }, { 7666, 0xbffa }, { 7679, 0xb559 },
+  { 7688, 0xdfde }, { 7701, 0xcf4e }, { 7711, 0xc039 }, { 7717, 0xfeed },
+  { 7730, 0xef3d }, { 7742, 0xd9f5 }, { 7753, 0xbb9d }, { 7764, 0xaf7d },
+  /* 0x7c00 */
+  { 7776, 0x677f }, { 7788, 0x7fbf }, { 7802, 0xfb3f }, { 7815, 0x7eff },
+  { 7829, 0xdffc }, { 7842, 0xffff }, { 7858, 0xffff }, { 7874, 0xc7e7 },
+  { 7885, 0xfdff }, { 7900, 0x0e59 }, { 7907, 0xbbcb }, { 7918, 0x8df1 },
+  { 7927, 0xca5d }, { 7936, 0x6d1f }, { 7946, 0x7efe }, { 7959, 0xf6ff },
+  /* 0x7d00 */
+  { 7973, 0xfbff }, { 7988, 0xffff }, { 8004, 0x777a }, { 8015, 0xffff },
+  { 8031, 0xffff }, { 8047, 0xffff }, { 8063, 0xbfff }, { 8078, 0xff7f },
+  { 8093, 0xffff }, { 8109, 0xffff }, { 8125, 0xbfbf }, { 8139, 0xffff },
+  { 8155, 0xffff }, { 8171, 0xffff }, { 8187, 0xffff }, { 8203, 0xffff },
+  /* 0x7e00 */
+  { 8219, 0xffff }, { 8235, 0xffff }, { 8251, 0xffff }, { 8267, 0xf7ff },
+  { 8282, 0xff7d }, { 8296, 0xffff }, { 8312, 0xffff }, { 8328, 0xffff },
+  { 8344, 0xfffb }, { 8359, 0x77ff }, { 8373, 0x4000 }, { 8374, 0x1810 },
+  { 8377, 0x0000 }, { 8377, 0x0040 }, { 8378, 0x1010 }, { 8380, 0x0200 },
+  /* 0x7f00 */
+  { 8381, 0x0400 }, { 8382, 0x4001 }, { 8384, 0x0000 }, { 8384, 0xfa80 },
+  { 8391, 0xffcb }, { 8404, 0x7a4c }, { 8412, 0xb8f9 }, { 8422, 0xbde9 },
+  { 8433, 0xabfd }, { 8445, 0x1bef }, { 8456, 0x7f6d }, { 8468, 0x4cfa },
+  { 8477, 0xabdd }, { 8488, 0x7ecf }, { 8500, 0xbd9c }, { 8510, 0xe7f4 },
+  /* 0x8000 */
+  { 8521, 0xc784 }, { 8528, 0xec0a }, { 8535, 0xf81a }, { 8543, 0x5615 },
+  { 8550, 0xc3b3 }, { 8559, 0xfaeb }, { 8571, 0xf9ff }, { 8585, 0x7ffd },
+  { 8599, 0xe526 }, { 8607, 0x42b7 }, { 8615, 0x11c8 }, { 8620, 0x0b69 },
+  { 8627, 0x8fa0 }, { 8634, 0x813f }, { 8642, 0x404d }, { 8647, 0xcaa0 },
+  /* 0x8100 */
+  { 8653, 0x19bb }, { 8662, 0xbaa0 }, { 8669, 0x6fff }, { 8683, 0xbeb9 },
+  { 8694, 0xe2bf }, { 8705, 0xf9c4 }, { 8714, 0x9d5e }, { 8724, 0x01ec },
+  { 8730, 0x7afa }, { 8741, 0xc6fd }, { 8752, 0xfab7 }, { 8764, 0xf3f7 },
+  { 8777, 0xebb0 }, { 8786, 0xffff }, { 8802, 0xcb77 }, { 8813, 0xa7e7 },
+  /* 0x8200 */
+  { 8824, 0xcf88 }, { 8832, 0x27ea }, { 8841, 0x42f1 }, { 8848, 0xb404 },
+  { 8853, 0x756f }, { 8864, 0x7aff }, { 8877, 0x3eff }, { 8890, 0x19e2 },
+  { 8897, 0x12eb }, { 8905, 0x4c79 }, { 8913, 0x008d }, { 8917, 0x9c64 },
+  { 8924, 0x026d }, { 8930, 0x2641 }, { 8935, 0x7784 }, { 8943, 0xf56d },
+  /* 0x8300 */
+  { 8954, 0x2c01 }, { 8958, 0xe34d }, { 8967, 0x467f }, { 8977, 0xe885 },
+  { 8984, 0x7d36 }, { 8994, 0x23e8 }, { 9001, 0x0004 }, { 9002, 0xc67f },
+  { 9013, 0xbd9f }, { 9025, 0xa6f3 }, { 9035, 0xf0fe }, { 9046, 0xc820 },
+  { 9050, 0x6b5c }, { 9059, 0x4eaf }, { 9069, 0xf9dc }, { 9080, 0xdcf8 },
+  /* 0x8400 */
+  { 9090, 0x07a5 }, { 9097, 0xcefd }, { 9109, 0xfe0f }, { 9120, 0xcefd },
+  { 9132, 0xffbf }, { 9147, 0xe17d }, { 9157, 0xc5f5 }, { 9167, 0xfa95 },
+  { 9177, 0xa47b }, { 9186, 0xed7f }, { 9199, 0x7ffd }, { 9213, 0x58eb },
+  { 9222, 0xd9ed }, { 9233, 0x5fb4 }, { 9243, 0xef96 }, { 9254, 0x6ffe },
+  /* 0x8500 */
+  { 9267, 0xefff }, { 9282, 0x7b75 }, { 9293, 0xe7fd }, { 9306, 0xc07f },
+  { 9315, 0xf8f7 }, { 9327, 0xbdbf }, { 9340, 0xfeef }, { 9354, 0xb1eb },
+  { 9364, 0x7f4f }, { 9376, 0xe7ff }, { 9390, 0x3aef }, { 9401, 0xfd7e },
+  { 9414, 0x7dfd }, { 9427, 0xefd6 }, { 9439, 0xfdef }, { 9453, 0x77ff },
+  /* 0x8600 */
+  { 9467, 0xffdf }, { 9482, 0xffbd }, { 9496, 0xfd7f }, { 9510, 0xeeff },
+  { 9524, 0x1fff }, { 9537, 0xbbec }, { 9548, 0xa7fb }, { 9560, 0x01fd },
+  { 9568, 0xc3f8 }, { 9577, 0xcfd7 }, { 9589, 0x6867 }, { 9597, 0xfb8c },
+  { 9607, 0x312e }, { 9614, 0x34ec }, { 9622, 0x9def }, { 9634, 0xbce0 },
+  /* 0x8700 */
+  { 9642, 0xd872 }, { 9650, 0xaa53 }, { 9658, 0xbdd1 }, { 9668, 0x376d },
+  { 9678, 0xac7f }, { 9689, 0xfd77 }, { 9702, 0xbfc6 }, { 9713, 0x87ae },
+  { 9722, 0xd6d3 }, { 9732, 0x7f77 }, { 9745, 0x46ff }, { 9756, 0xdbd7 },
+  { 9768, 0xf3be }, { 9780, 0xf7f1 }, { 9792, 0xbbde }, { 9804, 0xbdff },
+  /* 0x8800 */
+  { 9818, 0xfbf7 }, { 9832, 0xf797 }, { 9844, 0xfff9 }, { 9858, 0xedfb },
+  { 9871, 0xcfce }, { 9882, 0xfd6f }, { 9895, 0xa4c1 }, { 9901, 0x1f7a },
+  { 9911, 0xd6c9 }, { 9920, 0xefbb }, { 9933, 0xd7eb }, { 9945, 0xef7d },
+  { 9958, 0xbd99 }, { 9968, 0x7ccb }, { 9978, 0xfec3 }, { 9989, 0xace4 },
+  /* 0x8900 */
+  { 9997, 0xfbfb }, { 10011, 0xf1f2 }, { 10021, 0xf3dd }, { 10033, 0xffae },
+  { 10046, 0xffed }, { 10060, 0x3fff }, { 10074, 0xffbf }, { 10089, 0x77ff },
+  { 10103, 0xffb5 }, { 10116, 0xffff }, { 10132, 0xffff }, { 10148, 0xffff },
+  { 10164, 0x2009 }, { 10167, 0xabb8 }, { 10176, 0x7797 }, { 10187, 0xfff7 },
+  /* 0x8a00 */
+  { 10202, 0xff7e }, { 10216, 0xffff }, { 10232, 0xffff }, { 10248, 0xbfff },
+  { 10263, 0xfeff }, { 10278, 0xffff }, { 10294, 0xffff }, { 10310, 0xfdff },
+  { 10325, 0xf9ff }, { 10339, 0xfff7 }, { 10354, 0xffff }, { 10370, 0xffff },
+  { 10386, 0xffff }, { 10402, 0xffff }, { 10418, 0xffff }, { 10434, 0xffff },
+  /* 0x8b00 */
+  { 10450, 0xff7f }, { 10465, 0xffff }, { 10481, 0xffbf }, { 10496, 0xffff },
+  { 10512, 0xffff }, { 10528, 0xffff }, { 10544, 0xefbf }, { 10558, 0xffff },
+  { 10574, 0xffff }, { 10590, 0xffff }, { 10606, 0x1000 }, { 10607, 0x0802 },
+  { 10609, 0x0080 }, { 10610, 0x0001 }, { 10611, 0x0400 }, { 10612, 0x0000 },
+  /* 0x8c00 */
+  { 10612, 0x0200 }, { 10613, 0x4000 }, { 10614, 0x0000 }, { 10614, 0xff00 },
+  { 10622, 0xed3d }, { 10633, 0xfbdf }, { 10647, 0xf3f9 }, { 10659, 0xf8f7 },
+  { 10671, 0xe9db }, { 10682, 0xfeef }, { 10696, 0xffff }, { 10712, 0xffff },
+  { 10728, 0xffff }, { 10744, 0xffff }, { 10760, 0xffff }, { 10776, 0xffff },
+  /* 0x8d00 */
+  { 10792, 0xffff }, { 10808, 0x1fff }, { 10821, 0x0001 }, { 10822, 0x0000 },
+  { 10822, 0x0000 }, { 10822, 0x8086 }, { 10826, 0xd720 }, { 10833, 0xff06 },
+  { 10843, 0xf3cd }, { 10854, 0x7fed }, { 10867, 0xfff7 }, { 10882, 0x2ac5 },
+  { 10889, 0x27a7 }, { 10898, 0x133d }, { 10906, 0x62e7 }, { 10915, 0xd057 },
+  /* 0x8e00 */
+  { 10923, 0x69df }, { 10934, 0x1fef }, { 10946, 0x29f3 }, { 10955, 0xd9dd },
+  { 10966, 0xf068 }, { 10973, 0xfdf9 }, { 10986, 0x4dbf }, { 10997, 0x6faa },
+  { 11007, 0x7f5d }, { 11019, 0xafee }, { 11031, 0x67ff }, { 11044, 0xfbfb },
+  { 11058, 0xbfff }, { 11073, 0xffff }, { 11089, 0xffff }, { 11105, 0xffff },
+  /* 0x8f00 */
+  { 11121, 0xffff }, { 11137, 0xffff }, { 11153, 0xffff }, { 11169, 0xffff },
+  { 11185, 0xffff }, { 11201, 0xffff }, { 11217, 0x043f }, { 11224, 0x0000 },
+  { 11224, 0x1001 }, { 11226, 0x2004 }, { 11228, 0xf4f7 }, { 11240, 0x9dbc },
+  { 11250, 0xbe49 }, { 11259, 0x04c4 }, { 11263, 0x908b }, { 11269, 0xdc76 },
+  /* 0x9000 */
+  { 11279, 0x5180 }, { 11283, 0x1328 }, { 11288, 0x1fb8 }, { 11297, 0xa69f },
+  { 11307, 0x5f69 }, { 11317, 0xf670 }, { 11326, 0x9ed3 }, { 11336, 0x5fcf },
+  { 11348, 0xf6f2 }, { 11359, 0xd555 }, { 11368, 0x2bb1 }, { 11376, 0xb084 },
+  { 11381, 0x3b4d }, { 11390, 0xc774 }, { 11399, 0x5639 }, { 11407, 0x9eef },
+  /* 0x9100 */
+  { 11419, 0xffeb }, { 11433, 0xbdff }, { 11447, 0x7ff3 }, { 11460, 0xfdfd },
+  { 11474, 0x01b7 }, { 11481, 0x9b7a }, { 11491, 0x29c1 }, { 11497, 0x1c08 },
+  { 11501, 0xc55f }, { 11511, 0xf3f8 }, { 11522, 0x1bf3 }, { 11532, 0xfbcf },
+  { 11545, 0x097f }, { 11554, 0xeffd }, { 11568, 0xffff }, { 11584, 0xffff },
+  /* 0x9200 */
+  { 11600, 0xffff }, { 11616, 0xffff }, { 11632, 0xffff }, { 11648, 0xffff },
+  { 11664, 0xffff }, { 11680, 0xffff }, { 11696, 0xffff }, { 11712, 0xffef },
+  { 11727, 0xbfff }, { 11742, 0xffff }, { 11758, 0xbfff }, { 11773, 0xffff },
+  { 11789, 0xfeff }, { 11804, 0xffff }, { 11820, 0xffff }, { 11836, 0xffff },
+  /* 0x9300 */
+  { 11852, 0xffff }, { 11868, 0xffff }, { 11884, 0xffff }, { 11900, 0xbfff },
+  { 11915, 0xffff }, { 11931, 0xffff }, { 11947, 0xfbff }, { 11962, 0xffff },
+  { 11978, 0x7fff }, { 11993, 0xffff }, { 12009, 0xffff }, { 12025, 0xffff },
+  { 12041, 0xfbff }, { 12056, 0xffbf }, { 12071, 0xffff }, { 12087, 0xffff },
+  /* 0x9400 */
+  { 12103, 0xffff }, { 12119, 0xffff }, { 12135, 0xffff }, { 12151, 0xbfff },
+  { 12166, 0xffff }, { 12182, 0xffff }, { 12198, 0xf7ff }, { 12213, 0xffff },
+  { 12229, 0x001f }, { 12234, 0x0142 }, { 12237, 0x0000 }, { 12237, 0x0000 },
+  { 12237, 0x8080 }, { 12239, 0x0418 }, { 12242, 0x0040 }, { 12243, 0x0800 },
+  /* 0x9500 */
+  { 12244, 0x0000 }, { 12244, 0x1000 }, { 12245, 0x0081 }, { 12247, 0x2008 },
+  { 12249, 0x0908 }, { 12252, 0x0420 }, { 12254, 0x4001 }, { 12256, 0x7fb0 },
+  { 12266, 0xffff }, { 12282, 0xffff }, { 12298, 0xffff }, { 12314, 0xffff },
+  { 12330, 0xffff }, { 12346, 0xffff }, { 12362, 0x10ff }, { 12371, 0x8000 },
+  /* 0x9600 */
+  { 12372, 0x0080 }, { 12373, 0x4908 }, { 12377, 0xbbf9 }, { 12389, 0x4781 },
+  { 12395, 0xc40a }, { 12400, 0x77ce }, { 12411, 0xe869 }, { 12419, 0xff0b },
+  { 12430, 0x569f }, { 12440, 0xec6e }, { 12450, 0xff7f }, { 12465, 0x8db6 },
+  { 12474, 0x0d0c }, { 12479, 0xffdb }, { 12493, 0x78fe }, { 12504, 0xbd37 },
+  /* 0x9700 */
+  { 12515, 0x1c2c }, { 12521, 0xafb7 }, { 12533, 0xdbff }, { 12547, 0xbcfa },
+  { 12558, 0xffff }, { 12574, 0xb5b3 }, { 12584, 0xfdd8 }, { 12595, 0xefa7 },
+  { 12607, 0xd7df }, { 12620, 0xfee9 }, { 12632, 0x57f6 }, { 12643, 0xffeb },
+  { 12657, 0xffff }, { 12673, 0xffff }, { 12689, 0xc13f }, { 12698, 0xff97 },
+  /* 0x9800 */
+  { 12711, 0xffff }, { 12727, 0xffff }, { 12743, 0xffff }, { 12759, 0xffff },
+  { 12775, 0xffff }, { 12791, 0xffff }, { 12807, 0xffff }, { 12823, 0x001f },
+  { 12828, 0x4800 }, { 12830, 0x0224 }, { 12833, 0xff08 }, { 12842, 0xffff },
+  { 12858, 0xbfff }, { 12873, 0x38d1 }, { 12880, 0xfe7f }, { 12894, 0xffff },
+  /* 0x9900 */
+  { 12910, 0xdfff }, { 12925, 0xfffe }, { 12940, 0xbfff }, { 12955, 0xffff },
+  { 12971, 0xffff }, { 12987, 0xffcf }, { 13001, 0x0057 }, { 13006, 0x4b08 },
+  { 13011, 0x520c }, { 13016, 0xfc00 }, { 13022, 0xfedf }, { 13036, 0xffff },
+  { 13052, 0xffff }, { 13068, 0xffff }, { 13084, 0xffff }, { 13100, 0xffff },
+  /* 0x9a00 */
+  { 13116, 0xffff }, { 13132, 0xffff }, { 13148, 0xffff }, { 13164, 0xffff },
+  { 13180, 0xffff }, { 13196, 0xffff }, { 13212, 0x0fff }, { 13224, 0x0004 },
+  { 13225, 0x6208 }, { 13229, 0x0230 }, { 13232, 0xfe40 }, { 13240, 0xea3c },
+  { 13249, 0xe7d8 }, { 13259, 0x7ef5 }, { 13271, 0x57bd }, { 13282, 0xf5ff },
+  /* 0x9b00 */
+  { 13296, 0x7ef7 }, { 13309, 0x7ff7 }, { 13323, 0x7ff7 }, { 13337, 0xe7fb },
+  { 13350, 0x5c41 }, { 13356, 0xffed }, { 13370, 0xffff }, { 13386, 0xffff },
+  { 13402, 0xffff }, { 13418, 0xffff }, { 13434, 0xffff }, { 13450, 0xffff },
+  { 13466, 0xffff }, { 13482, 0xffff }, { 13498, 0xffff }, { 13514, 0xffff },
+  /* 0x9c00 */
+  { 13530, 0xffff }, { 13546, 0xffff }, { 13562, 0xffff }, { 13578, 0xffff },
+  { 13594, 0xffff }, { 13610, 0xffff }, { 13626, 0xffff }, { 13642, 0x6fff },
+  { 13656, 0x9619 }, { 13663, 0x23c8 }, { 13669, 0x9400 }, { 13672, 0xc200 },
+  { 13675, 0x0307 }, { 13680, 0x0c06 }, { 13684, 0xfffb }, { 13699, 0xffff },
+  /* 0x9d00 */
+  { 13715, 0xffff }, { 13731, 0xffff }, { 13747, 0xffff }, { 13763, 0xffff },
+  { 13779, 0xffff }, { 13795, 0xffff }, { 13811, 0xffff }, { 13827, 0xffff },
+  { 13843, 0xffff }, { 13859, 0xffff }, { 13875, 0xffff }, { 13891, 0xffff },
+  { 13907, 0xffff }, { 13923, 0xffff }, { 13939, 0xffff }, { 13955, 0xffff },
+  /* 0x9e00 */
+  { 13971, 0xffff }, { 13987, 0x7fff }, { 14002, 0x4090 }, { 14005, 0x1811 },
+  { 14009, 0x2001 }, { 14011, 0xa25d }, { 14019, 0xc027 }, { 14025, 0x3ff4 },
+  { 14036, 0xf67b }, { 14048, 0x5ff3 }, { 14060, 0xffbf }, { 14075, 0x96ef },
+  { 14086, 0x1def }, { 14097, 0x46ed }, { 14106, 0x795a }, { 14115, 0xa5ff },
+  /* 0x9f00 */
+  { 14127, 0x97ff }, { 14140, 0xfd76 }, { 14152, 0x6ffa }, { 14164, 0x957f },
+  { 14175, 0xffef }, { 14190, 0xfffc }, { 14204, 0xffff }, { 14220, 0x7fff },
+  { 14235, 0xe006 }, { 14240, 0x71ff }, { 14252, 0x003e },
+};
+static const Summary16 gbkext_inv_uni2indx_pagef9[19] = {
+  /* 0xf900 */
+  { 14257, 0x0000 }, { 14257, 0x0000 }, { 14257, 0x1000 }, { 14258, 0x0000 },
+  { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0200 },
+  { 14259, 0x0000 }, { 14259, 0x0020 }, { 14260, 0x0000 }, { 14260, 0x0000 },
+  { 14260, 0x0000 }, { 14260, 0x0000 }, { 14260, 0x0080 }, { 14261, 0x0002 },
+  /* 0xfa00 */
+  { 14262, 0xf000 }, { 14266, 0x811a }, { 14271, 0x039b },
+};
+static const Summary16 gbkext_inv_uni2indx_pagefe[31] = {
+  /* 0xfe00 */
+  { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0001 },
+  { 14279, 0xfe00 }, { 14286, 0xfef7 }, { 14300, 0x0f7f }, { 14311, 0x0000 },
+  { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
+  { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
+  /* 0xff00 */
+  { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
+  { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
+  { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
+  { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0014 },
+};
+
+static int
+gbkext_inv_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0200 && wc < 0x02e0)
+      summary = &gbkext_inv_uni2indx_page02[(wc>>4)-0x020];
+    else if (wc >= 0x2000 && wc < 0x22c0)
+      summary = &gbkext_inv_uni2indx_page20[(wc>>4)-0x200];
+    else if (wc >= 0x2500 && wc < 0x2610)
+      summary = &gbkext_inv_uni2indx_page25[(wc>>4)-0x250];
+    else if (wc >= 0x3000 && wc < 0x3100)
+      summary = &gbkext_inv_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x3200 && wc < 0x33e0)
+      summary = &gbkext_inv_uni2indx_page32[(wc>>4)-0x320];
+    else if (wc >= 0x4e00 && wc < 0x9fb0)
+      summary = &gbkext_inv_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0xf900 && wc < 0xfa30)
+      summary = &gbkext_inv_uni2indx_pagef9[(wc>>4)-0xf90];
+    else if (wc >= 0xfe00 && wc < 0xfff0)
+      summary = &gbkext_inv_uni2indx_pagefe[(wc>>4)-0xfe0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = gbkext_inv_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/georgian_academy.h b/libiconv/georgian_academy.h
new file mode 100644 (file)
index 0000000..14aebda
--- /dev/null
@@ -0,0 +1,87 @@
+
+/*
+ * GEORGIAN-ACADEMY
+ */
+
+static const unsigned short georgian_academy_2uni[32] = {
+  /* 0x80 */
+  0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f,
+  /* 0x90 */
+  0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178,
+};
+
+static int
+georgian_academy_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0x80 && c < 0xa0)
+    *pwc = (wchar_t) georgian_academy_2uni[c-0x80];
+  else if (c >= 0xc0 && c < 0xe7)
+    *pwc = (wchar_t) c + 0x1010;
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char georgian_academy_page00[32] = {
+  0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
+  0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */
+};
+static const unsigned char georgian_academy_page01[72] = {
+  0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char georgian_academy_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char georgian_academy_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+georgian_academy_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x0080 && wc < 0x00a0)
+    c = georgian_academy_page00[wc-0x0080];
+  else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100))
+    c = wc;
+  else if (wc >= 0x0150 && wc < 0x0198)
+    c = georgian_academy_page01[wc-0x0150];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = georgian_academy_page02[wc-0x02c0];
+  else if (wc >= 0x10d0 && wc < 0x10f7)
+    c = wc-0x1010;
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = georgian_academy_page20[wc-0x2010];
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/georgian_ps.h b/libiconv/georgian_ps.h
new file mode 100644 (file)
index 0000000..dd741c3
--- /dev/null
@@ -0,0 +1,104 @@
+
+/*
+ * GEORGIAN-PS
+ */
+
+static const unsigned short georgian_ps_2uni_1[32] = {
+  /* 0x80 */
+  0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+  0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f,
+  /* 0x90 */
+  0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+  0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178,
+};
+static const unsigned short georgian_ps_2uni_2[39] = {
+  /* 0xc0 */
+  0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1,
+  0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd,
+  /* 0xd0 */
+  0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4,
+  0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec,
+  /* 0xe0 */
+  0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5,
+};
+
+static int
+georgian_ps_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0x80 && c < 0xa0)
+    *pwc = (wchar_t) georgian_ps_2uni_1[c-0x80];
+  else if (c >= 0xc0 && c < 0xe6)
+    *pwc = (wchar_t) georgian_ps_2uni_2[c-0xc0];
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char georgian_ps_page00[32] = {
+  0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
+  0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */
+};
+static const unsigned char georgian_ps_page01[72] = {
+  0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char georgian_ps_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char georgian_ps_page10[40] = {
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc8, /* 0xd0-0xd7 */
+  0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcf, 0xd0, 0xd1, /* 0xd8-0xdf */
+  0xd2, 0xd3, 0xd4, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, /* 0xe0-0xe7 */
+  0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe3, /* 0xe8-0xef */
+  0xe4, 0xc7, 0xce, 0xd5, 0xe2, 0xe5, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char georgian_ps_page20[48] = {
+  0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
+  0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+georgian_ps_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x0080 && wc < 0x00a0)
+    c = georgian_ps_page00[wc-0x0080];
+  else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100))
+    c = wc;
+  else if (wc >= 0x0150 && wc < 0x0198)
+    c = georgian_ps_page01[wc-0x0150];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = georgian_ps_page02[wc-0x02c0];
+  else if (wc >= 0x10d0 && wc < 0x10f8)
+    c = georgian_ps_page10[wc-0x10d0];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = georgian_ps_page20[wc-0x2010];
+  else if (wc == 0x2122)
+    c = 0x99;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/hp_roman8.h b/libiconv/hp_roman8.h
new file mode 100644 (file)
index 0000000..5e8c212
--- /dev/null
@@ -0,0 +1,100 @@
+
+/*
+ * HP-ROMAN8
+ */
+
+static const unsigned short hp_roman8_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x00c0, 0x00c2, 0x00c8, 0x00ca, 0x00cb, 0x00ce, 0x00cf,
+  0x00b4, 0x02cb, 0x02c6, 0x00a8, 0x02dc, 0x00d9, 0x00db, 0x20a4,
+  /* 0xb0 */
+  0x00af, 0x00dd, 0x00fd, 0x00b0, 0x00c7, 0x00e7, 0x00d1, 0x00f1,
+  0x00a1, 0x00bf, 0x00a4, 0x00a3, 0x00a5, 0x00a7, 0x0192, 0x00a2,
+  /* 0xc0 */
+  0x00e2, 0x00ea, 0x00f4, 0x00fb, 0x00e1, 0x00e9, 0x00f3, 0x00fa,
+  0x00e0, 0x00e8, 0x00f2, 0x00f9, 0x00e4, 0x00eb, 0x00f6, 0x00fc,
+  /* 0xd0 */
+  0x00c5, 0x00ee, 0x00d8, 0x00c6, 0x00e5, 0x00ed, 0x00f8, 0x00e6,
+  0x00c4, 0x00ec, 0x00d6, 0x00dc, 0x00c9, 0x00ef, 0x00df, 0x00d4,
+  /* 0xe0 */
+  0x00c1, 0x00c3, 0x00e3, 0x00d0, 0x00f0, 0x00cd, 0x00cc, 0x00d3,
+  0x00d2, 0x00d5, 0x00f5, 0x0160, 0x0161, 0x00da, 0x0178, 0x00ff,
+  /* 0xf0 */
+  0x00de, 0x00fe, 0x00b7, 0x00b5, 0x00b6, 0x00be, 0x2014, 0x00bc,
+  0x00bd, 0x00aa, 0x00ba, 0x00ab, 0x25a0, 0x00bb, 0x00b1, 0xfffd,
+};
+
+static int
+hp_roman8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = hp_roman8_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char hp_roman8_page00[96] = {
+  0xa0, 0xb8, 0xbf, 0xbb, 0xba, 0xbc, 0x00, 0xbd, /* 0xa0-0xa7 */
+  0xab, 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xb0, /* 0xa8-0xaf */
+  0xb3, 0xfe, 0x00, 0x00, 0xa8, 0xf3, 0xf4, 0xf2, /* 0xb0-0xb7 */
+  0x00, 0x00, 0xfa, 0xfd, 0xf7, 0xf8, 0xf5, 0xb9, /* 0xb8-0xbf */
+  0xa1, 0xe0, 0xa2, 0xe1, 0xd8, 0xd0, 0xd3, 0xb4, /* 0xc0-0xc7 */
+  0xa3, 0xdc, 0xa4, 0xa5, 0xe6, 0xe5, 0xa6, 0xa7, /* 0xc8-0xcf */
+  0xe3, 0xb6, 0xe8, 0xe7, 0xdf, 0xe9, 0xda, 0x00, /* 0xd0-0xd7 */
+  0xd2, 0xad, 0xed, 0xae, 0xdb, 0xb1, 0xf0, 0xde, /* 0xd8-0xdf */
+  0xc8, 0xc4, 0xc0, 0xe2, 0xcc, 0xd4, 0xd7, 0xb5, /* 0xe0-0xe7 */
+  0xc9, 0xc5, 0xc1, 0xcd, 0xd9, 0xd5, 0xd1, 0xdd, /* 0xe8-0xef */
+  0xe4, 0xb7, 0xca, 0xc6, 0xc2, 0xea, 0xce, 0x00, /* 0xf0-0xf7 */
+  0xd6, 0xcb, 0xc7, 0xc3, 0xcf, 0xb2, 0xf1, 0xef, /* 0xf8-0xff */
+};
+static const unsigned char hp_roman8_page01[56] = {
+  0xeb, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char hp_roman8_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+
+static int
+hp_roman8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = hp_roman8_page00[wc-0x00a0];
+  else if (wc >= 0x0160 && wc < 0x0198)
+    c = hp_roman8_page01[wc-0x0160];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = hp_roman8_page02[wc-0x02c0];
+  else if (wc == 0x2014)
+    c = 0xf6;
+  else if (wc == 0x20a4)
+    c = 0xaf;
+  else if (wc == 0x25a0)
+    c = 0xfc;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/hz.h b/libiconv/hz.h
new file mode 100644 (file)
index 0000000..bc95ef4
--- /dev/null
@@ -0,0 +1,141 @@
+
+/*
+ * HZ
+ */
+
+/* Specification: RFC 1842, RFC 1843 */
+
+/*
+ * The state is 1 in GB mode, 0 in ASCII mode.
+ */
+
+static int
+hz_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  unsigned int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == '~') {
+      if (n < count+2)
+        goto none;
+      c = s[1];
+      if (state == 0) {
+        if (c == '~') {
+          *pwc = (wchar_t) '~';
+          conv->istate = state;
+          return count+2;
+        }
+        if (c == '{') {
+          state = 1;
+          s += 2; count += 2;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (c == '\n') {
+          s += 2; count += 2;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+      } else {
+        if (c == '}') {
+          state = 0;
+          s += 2; count += 2;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    break;
+  }
+  if (state == 0) {
+    *pwc = (wchar_t) c;
+    conv->istate = state;
+    return count+1;
+  } else {
+    int ret;
+    if (n < count+2)
+      goto none;
+    ret = gb2312_mbtowc(conv,pwc,s,2);
+    if (ret == RET_ILSEQ)
+      return RET_ILSEQ;
+    if (ret != 2) abort();
+    conv->istate = state;
+    return count+2;
+  }
+
+none:
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+hz_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII or GB 1988-89) */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state ? 3 : 1);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state) {
+        r[0] = '~';
+        r[1] = '}';
+        r += 2;
+        state = 0;
+      }
+      r[0] = buf[0];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Code set 1 (GB 2312-1980) */
+  ret = gb2312_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state ? 2 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (!state) {
+        r[0] = '~';
+        r[1] = '{';
+        r += 2;
+        state = 1;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  return RET_ILSEQ;
+}
+
+static int
+hz_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  if (state) {
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = '~';
+    r[1] = '}';
+    /* conv->ostate = 0; will be done by the caller */
+    return 2;
+  } else
+    return 0;
+}
diff --git a/libiconv/iso2022_cn.h b/libiconv/iso2022_cn.h
new file mode 100644 (file)
index 0000000..407e538
--- /dev/null
@@ -0,0 +1,297 @@
+
+/*
+ * ISO-2022-CN
+ */
+
+/* Specification: RFC 1922 */
+
+#define ESC 0x1b
+#define SO  0x0e
+#define SI  0x0f
+
+/*
+ * The state is composed of one of the following values
+ */
+#define STATE_ASCII          0
+#define STATE_TWOBYTE        1
+/*
+ * and one of the following values, << 8
+ */
+#define STATE2_NONE                   0
+#define STATE2_DESIGNATED_GB2312      1
+#define STATE2_DESIGNATED_CNS11643_1  2
+/*
+ * and one of the following values, << 16
+ */
+#define STATE3_NONE                   0
+#define STATE3_DESIGNATED_CNS11643_2  1
+
+#define SPLIT_STATE \
+  unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = state >> 16
+#define COMBINE_STATE \
+  state = (state3 << 16) | (state2 << 8) | state1
+
+static int
+iso2022_cn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  SPLIT_STATE;
+  int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == ESC) {
+      if (n < count+4)
+        goto none;
+      if (s[1] == '$') {
+        if (s[2] == ')') {
+          if (s[3] == 'A') {
+            state2 = STATE2_DESIGNATED_GB2312;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'G') {
+            state2 = STATE2_DESIGNATED_CNS11643_1;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+        if (s[2] == '*') {
+          if (s[3] == 'H') {
+            state3 = STATE3_DESIGNATED_CNS11643_2;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+      }
+      if (s[1] == 'N') {
+        switch (state3) {
+          case STATE3_NONE:
+            return RET_ILSEQ;
+          case STATE3_DESIGNATED_CNS11643_2:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              int ret = cns11643_2_mbtowc(conv,pwc,s+2,2);
+              if (ret == RET_ILSEQ)
+                return RET_ILSEQ;
+              if (ret != 2) abort();
+              COMBINE_STATE;
+              conv->istate = state;
+              return count+4;
+            } else
+              return RET_ILSEQ;
+          default: abort();
+        }
+      }
+      return RET_ILSEQ;
+    }
+    if (c == SO) {
+      if (state2 != STATE2_DESIGNATED_GB2312 && state2 != STATE2_DESIGNATED_CNS11643_1)
+        return RET_ILSEQ;
+      state1 = STATE_TWOBYTE;
+      s++; count++;
+      if (n < count+1)
+        goto none;
+      continue;
+    }
+    if (c == SI) {
+      state1 = STATE_ASCII;
+      s++; count++;
+      if (n < count+1)
+        goto none;
+      continue;
+    }
+    break;
+  }
+  switch (state1) {
+    case STATE_ASCII:
+      if (c < 0x80) {
+        int ret = ascii_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        if (*pwc == 0x000a || *pwc == 0x000d) {
+          state2 = STATE2_NONE; state3 = STATE3_NONE;
+        }
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_TWOBYTE:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret;
+        switch (state2) {
+          case STATE2_NONE:
+            return RET_ILSEQ;
+          case STATE2_DESIGNATED_GB2312:
+            ret = gb2312_mbtowc(conv,pwc,s,2); break;
+          case STATE2_DESIGNATED_CNS11643_1:
+            ret = cns11643_1_mbtowc(conv,pwc,s,2); break;
+          default: abort();
+        }
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    default: abort();
+  }
+
+none:
+  COMBINE_STATE;
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+iso2022_cn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  unsigned char buf[3];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state1 == STATE_ASCII ? 1 : 2);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_ASCII) {
+        r[0] = SI;
+        r += 1;
+        state1 = STATE_ASCII;
+      }
+      r[0] = buf[0];
+      if (wc == 0x000a || wc == 0x000d) {
+        state2 = STATE2_NONE; state3 = STATE3_NONE;
+      }
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try GB 2312-1980. */
+  ret = gb2312_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state2 == STATE2_DESIGNATED_GB2312 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE2_DESIGNATED_GB2312) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = ')';
+        r[3] = 'A';
+        r += 4;
+        state2 = STATE2_DESIGNATED_GB2312;
+      }
+      if (state1 != STATE_TWOBYTE) {
+        r[0] = SO;
+        r += 1;
+        state1 = STATE_TWOBYTE;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  ret = cns11643_wctomb(conv,buf,wc,3);
+  if (ret != RET_ILSEQ) {
+    if (ret != 3) abort();
+
+    /* Try CNS 11643-1992 Plane 1. */
+    if (buf[0] == 0 && buf[1] < 0x80 && buf[2] < 0x80) {
+      int count = (state2 == STATE2_DESIGNATED_CNS11643_1 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE2_DESIGNATED_CNS11643_1) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = ')';
+        r[3] = 'G';
+        r += 4;
+        state2 = STATE2_DESIGNATED_CNS11643_1;
+      }
+      if (state1 != STATE_TWOBYTE) {
+        r[0] = SO;
+        r += 1;
+        state1 = STATE_TWOBYTE;
+      }
+      r[0] = buf[1];
+      r[1] = buf[2];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+
+    /* Try CNS 11643-1992 Plane 2. */
+    if (buf[0] == 1 && buf[1] < 0x80 && buf[2] < 0x80) {
+      int count = (state3 == STATE3_DESIGNATED_CNS11643_2 ? 0 : 4) + 4;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state3 != STATE3_DESIGNATED_CNS11643_2) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = '*';
+        r[3] = 'H';
+        r += 4;
+        state3 = STATE3_DESIGNATED_CNS11643_2;
+      }
+      r[0] = ESC;
+      r[1] = 'N';
+      r[2] = buf[1];
+      r[3] = buf[2];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  return RET_ILSEQ;
+}
+
+static int
+iso2022_cn_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  (void)state2;
+  (void)state3;
+  if (state1 != STATE_ASCII) {
+    if (n < 1)
+      return RET_TOOSMALL;
+    r[0] = SI;
+    /* conv->ostate = 0; will be done by the caller */
+    return 1;
+  } else
+    return 0;
+}
+
+#undef COMBINE_STATE
+#undef SPLIT_STATE
+#undef STATE3_DESIGNATED_CNS11643_2
+#undef STATE3_NONE
+#undef STATE2_DESIGNATED_CNS11643_1
+#undef STATE2_DESIGNATED_GB2312
+#undef STATE2_NONE
+#undef STATE_TWOBYTE
+#undef STATE_ASCII
diff --git a/libiconv/iso2022_cnext.h b/libiconv/iso2022_cnext.h
new file mode 100644 (file)
index 0000000..b46cfa1
--- /dev/null
@@ -0,0 +1,437 @@
+
+/*
+ * ISO-2022-CN-EXT
+ */
+
+/* Specification: RFC 1922 */
+
+#define ESC 0x1b
+#define SO  0x0e
+#define SI  0x0f
+
+/*
+ * The state is composed of one of the following values
+ */
+#define STATE_ASCII          0
+#define STATE_TWOBYTE        1
+/*
+ * and one of the following values, << 8
+ */
+#define STATE2_NONE                   0
+#define STATE2_DESIGNATED_GB2312      1
+#define STATE2_DESIGNATED_CNS11643_1  2
+#define STATE2_DESIGNATED_ISO_IR_165  3
+/*
+ * and one of the following values, << 16
+ */
+#define STATE3_NONE                   0
+#define STATE3_DESIGNATED_CNS11643_2  1
+/*
+ * and one of the following values, << 24
+ */
+#define STATE4_NONE                   0
+#define STATE4_DESIGNATED_CNS11643_3  1
+#define STATE4_DESIGNATED_CNS11643_4  2
+#define STATE4_DESIGNATED_CNS11643_5  3
+#define STATE4_DESIGNATED_CNS11643_6  4
+#define STATE4_DESIGNATED_CNS11643_7  5
+
+#define SPLIT_STATE \
+  unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = (state >> 16) & 0xff, state4 = state >> 24
+#define COMBINE_STATE \
+  state = (state4 << 24) | (state3 << 16) | (state2 << 8) | state1
+
+static int
+iso2022_cn_ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  SPLIT_STATE;
+  int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == ESC) {
+      if (n < count+4)
+        goto none;
+      if (s[1] == '$') {
+        if (s[2] == ')') {
+          if (s[3] == 'A') {
+            state2 = STATE2_DESIGNATED_GB2312;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'G') {
+            state2 = STATE2_DESIGNATED_CNS11643_1;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'E') {
+            state2 = STATE2_DESIGNATED_ISO_IR_165;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+        if (s[2] == '*') {
+          if (s[3] == 'H') {
+            state3 = STATE3_DESIGNATED_CNS11643_2;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+        if (s[2] == '+') {
+          if (s[3] == 'I') {
+            state4 = STATE4_DESIGNATED_CNS11643_3;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'J') {
+            state4 = STATE4_DESIGNATED_CNS11643_4;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'K') {
+            state4 = STATE4_DESIGNATED_CNS11643_5;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'L') {
+            state4 = STATE4_DESIGNATED_CNS11643_6;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'M') {
+            state4 = STATE4_DESIGNATED_CNS11643_7;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+      }
+      if (s[1] == 'N') {
+        switch (state3) {
+          case STATE3_NONE:
+            return RET_ILSEQ;
+          case STATE3_DESIGNATED_CNS11643_2:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              int ret = cns11643_2_mbtowc(conv,pwc,s+2,2);
+              if (ret == RET_ILSEQ)
+                return RET_ILSEQ;
+              if (ret != 2) abort();
+              COMBINE_STATE;
+              conv->istate = state;
+              return count+4;
+            } else
+              return RET_ILSEQ;
+          default: abort();
+        }
+      }
+      if (s[1] == 'O') {
+        switch (state4) {
+          case STATE4_NONE:
+            return RET_ILSEQ;
+          case STATE4_DESIGNATED_CNS11643_3:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              int ret = cns11643_3_mbtowc(conv,pwc,s+2,2);
+              if (ret == RET_ILSEQ)
+                return RET_ILSEQ;
+              if (ret != 2) abort();
+              COMBINE_STATE;
+              conv->istate = state;
+              return count+4;
+            } else
+              return RET_ILSEQ;
+          case STATE4_DESIGNATED_CNS11643_4:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              /* We don't have a CNS 11643-4 to Unicode table yet. */
+              return RET_ILSEQ;
+            } else
+              return RET_ILSEQ;
+          case STATE4_DESIGNATED_CNS11643_5:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              /* We don't have a CNS 11643-5 to Unicode table yet. */
+              return RET_ILSEQ;
+            } else
+              return RET_ILSEQ;
+          case STATE4_DESIGNATED_CNS11643_6:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              /* We don't have a CNS 11643-6 to Unicode table yet. */
+              return RET_ILSEQ;
+            } else
+              return RET_ILSEQ;
+          case STATE4_DESIGNATED_CNS11643_7:
+            if (s[2] < 0x80 && s[3] < 0x80) {
+              /* We don't have a CNS 11643-7 to Unicode table yet. */
+              return RET_ILSEQ;
+            } else
+              return RET_ILSEQ;
+          default: abort();
+        }
+      }
+      return RET_ILSEQ;
+    }
+    if (c == SO) {
+      if (state2 != STATE2_DESIGNATED_GB2312 && state2 != STATE2_DESIGNATED_CNS11643_1 && state2 != STATE2_DESIGNATED_ISO_IR_165)
+        return RET_ILSEQ;
+      state1 = STATE_TWOBYTE;
+      s++; count++;
+      if (n < count+1)
+        goto none;
+      continue;
+    }
+    if (c == SI) {
+      state1 = STATE_ASCII;
+      s++; count++;
+      if (n < count+1)
+        goto none;
+      continue;
+    }
+    break;
+  }
+  switch (state1) {
+    case STATE_ASCII:
+      if (c < 0x80) {
+        int ret = ascii_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        if (*pwc == 0x000a || *pwc == 0x000d) {
+          state2 = STATE2_NONE; state3 = STATE3_NONE; state4 = STATE3_NONE;
+        }
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_TWOBYTE:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret;
+        switch (state2) {
+          case STATE2_NONE:
+            return RET_ILSEQ;
+          case STATE2_DESIGNATED_GB2312:
+            ret = gb2312_mbtowc(conv,pwc,s,2); break;
+          case STATE2_DESIGNATED_CNS11643_1:
+            ret = cns11643_1_mbtowc(conv,pwc,s,2); break;
+          case STATE2_DESIGNATED_ISO_IR_165:
+            /* We don't have an ISO-IR-165 table yet. */
+            ret = gb2312_mbtowc(conv,pwc,s,2); break;
+          default: abort();
+        }
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    default: abort();
+  }
+
+none:
+  COMBINE_STATE;
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+iso2022_cn_ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  unsigned char buf[3];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state1 == STATE_ASCII ? 1 : 2);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_ASCII) {
+        r[0] = SI;
+        r += 1;
+        state1 = STATE_ASCII;
+      }
+      r[0] = buf[0];
+      if (wc == 0x000a || wc == 0x000d) {
+        state2 = STATE2_NONE; state3 = STATE3_NONE; state4 = STATE3_NONE;
+      }
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try GB 2312-1980. */
+  ret = gb2312_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state2 == STATE2_DESIGNATED_GB2312 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE2_DESIGNATED_GB2312) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = ')';
+        r[3] = 'A';
+        r += 4;
+        state2 = STATE2_DESIGNATED_GB2312;
+      }
+      if (state1 != STATE_TWOBYTE) {
+        r[0] = SO;
+        r += 1;
+        state1 = STATE_TWOBYTE;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  ret = cns11643_wctomb(conv,buf,wc,3);
+  if (ret != RET_ILSEQ) {
+    if (ret != 3) abort();
+
+    /* Try CNS 11643-1992 Plane 1. */
+    if (buf[0] == 0 && buf[1] < 0x80 && buf[2] < 0x80) {
+      int count = (state2 == STATE2_DESIGNATED_CNS11643_1 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE2_DESIGNATED_CNS11643_1) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = ')';
+        r[3] = 'G';
+        r += 4;
+        state2 = STATE2_DESIGNATED_CNS11643_1;
+      }
+      if (state1 != STATE_TWOBYTE) {
+        r[0] = SO;
+        r += 1;
+        state1 = STATE_TWOBYTE;
+      }
+      r[0] = buf[1];
+      r[1] = buf[2];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+
+    /* Try CNS 11643-1992 Plane 2. */
+    if (buf[0] == 1 && buf[1] < 0x80 && buf[2] < 0x80) {
+      int count = (state3 == STATE3_DESIGNATED_CNS11643_2 ? 0 : 4) + 4;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state3 != STATE3_DESIGNATED_CNS11643_2) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = '*';
+        r[3] = 'H';
+        r += 4;
+        state3 = STATE3_DESIGNATED_CNS11643_2;
+      }
+      r[0] = ESC;
+      r[1] = 'N';
+      r[2] = buf[1];
+      r[3] = buf[2];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+
+    /* Try CNS 11643-1992 Plane 3. */
+    if (buf[0] == 2 && buf[1] < 0x80 && buf[2] < 0x80) {
+      int count = (state4 == STATE4_DESIGNATED_CNS11643_3 ? 0 : 4) + 4;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state4 != STATE4_DESIGNATED_CNS11643_3) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = '+';
+        r[3] = 'I';
+        r += 4;
+        state4 = STATE4_DESIGNATED_CNS11643_3;
+      }
+      r[0] = ESC;
+      r[1] = 'O';
+      r[2] = buf[1];
+      r[3] = buf[2];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+
+    /* No table for CNS 11643-1992 Plane 4 yet. */
+
+    /* No table for CNS 11643-1992 Plane 5 yet. */
+
+    /* No table for CNS 11643-1992 Plane 6 yet. */
+
+    /* No table for CNS 11643-1992 Plane 7 yet. */
+
+  }
+
+  /* No table for ISO-IR-165 yet. */
+
+  return RET_ILSEQ;
+}
+
+static int
+iso2022_cn_ext_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  (void)state2;
+  (void)state3;
+  (void)state4;
+  if (state1 != STATE_ASCII) {
+    if (n < 1)
+      return RET_TOOSMALL;
+    r[0] = SI;
+    /* conv->ostate = 0; will be done by the caller */
+    return 1;
+  } else
+    return 0;
+}
+
+#undef COMBINE_STATE
+#undef SPLIT_STATE
+#undef STATE4_DESIGNATED_CNS11643_7
+#undef STATE4_DESIGNATED_CNS11643_6
+#undef STATE4_DESIGNATED_CNS11643_5
+#undef STATE4_DESIGNATED_CNS11643_4
+#undef STATE4_DESIGNATED_CNS11643_3
+#undef STATE4_NONE
+#undef STATE3_DESIGNATED_CNS11643_2
+#undef STATE3_NONE
+#undef STATE2_DESIGNATED_ISO_IR_165
+#undef STATE2_DESIGNATED_CNS11643_1
+#undef STATE2_DESIGNATED_GB2312
+#undef STATE2_NONE
+#undef STATE_TWOBYTE
+#undef STATE_ASCII
diff --git a/libiconv/iso2022_jp.h b/libiconv/iso2022_jp.h
new file mode 100644 (file)
index 0000000..ee2426d
--- /dev/null
@@ -0,0 +1,193 @@
+
+/*
+ * ISO-2022-JP
+ */
+
+/* Specification: RFC 1468 */
+
+#define ESC 0x1b
+
+/*
+ * The state can be one of the following values.
+ */
+#define STATE_ASCII          0
+#define STATE_JISX0201ROMAN  1
+#define STATE_JISX0208       2
+
+static int
+iso2022_jp_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == ESC) {
+      if (n < count+3)
+        goto none;
+      if (s[1] == '(') {
+        if (s[2] == 'B') {
+          state = STATE_ASCII;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == 'J') {
+          state = STATE_JISX0201ROMAN;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        return RET_ILSEQ;
+      }
+      if (s[1] == '$') {
+        if (s[2] == '@' || s[2] == 'B') {
+          /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */
+          state = STATE_JISX0208;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        return RET_ILSEQ;
+      }
+      return RET_ILSEQ;
+    }
+    break;
+  }
+  switch (state) {
+    case STATE_ASCII:
+      if (c < 0x80) {
+        int ret = ascii_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0201ROMAN:
+      if (c < 0x80) {
+        int ret = jisx0201_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0208:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = jisx0208_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    default: abort();
+  }
+
+none:
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+iso2022_jp_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  unsigned char buf[2];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state == STATE_ASCII ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_ASCII) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'B';
+        r += 3;
+        state = STATE_ASCII;
+      }
+      r[0] = buf[0];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0201-1976 Roman. */
+  ret = jisx0201_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state == STATE_JISX0201ROMAN ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_JISX0201ROMAN) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'J';
+        r += 3;
+        state = STATE_JISX0201ROMAN;
+      }
+      r[0] = buf[0];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */
+  ret = jisx0208_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state == STATE_JISX0208 ? 2 : 5);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_JISX0208) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = 'B';
+        r += 3;
+        state = STATE_JISX0208;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  return RET_ILSEQ;
+}
+
+static int
+iso2022_jp_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  if (state != STATE_ASCII) {
+    if (n < 3)
+      return RET_TOOSMALL;
+    r[0] = ESC;
+    r[1] = '(';
+    r[2] = 'B';
+    /* conv->ostate = 0; will be done by the caller */
+    return 3;
+  } else
+    return 0;
+}
+
+#undef STATE_JISX0208
+#undef STATE_JISX0201ROMAN
+#undef STATE_ASCII
diff --git a/libiconv/iso2022_jp1.h b/libiconv/iso2022_jp1.h
new file mode 100644 (file)
index 0000000..e69e4c5
--- /dev/null
@@ -0,0 +1,241 @@
+
+/*
+ * ISO-2022-JP-1
+ */
+
+/* Specification: RFC 2237 */
+
+#define ESC 0x1b
+
+/*
+ * The state can be one of the following values.
+ */
+#define STATE_ASCII          0
+#define STATE_JISX0201ROMAN  1
+#define STATE_JISX0208       2
+#define STATE_JISX0212       3
+
+static int
+iso2022_jp1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == ESC) {
+      if (n < count+3)
+        goto none;
+      if (s[1] == '(') {
+        if (s[2] == 'B') {
+          state = STATE_ASCII;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == 'J') {
+          state = STATE_JISX0201ROMAN;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        return RET_ILSEQ;
+      }
+      if (s[1] == '$') {
+        if (s[2] == '@' || s[2] == 'B') {
+          /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */
+          state = STATE_JISX0208;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == '(') {
+          if (n < count+4)
+            goto none;
+          if (s[3] == 'D') {
+            state = STATE_JISX0212;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+        return RET_ILSEQ;
+      }
+      return RET_ILSEQ;
+    }
+    break;
+  }
+  switch (state) {
+    case STATE_ASCII:
+      if (c < 0x80) {
+        int ret = ascii_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0201ROMAN:
+      if (c < 0x80) {
+        int ret = jisx0201_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0208:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = jisx0208_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0212:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = jisx0212_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    default: abort();
+  }
+
+none:
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+iso2022_jp1_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  unsigned char buf[2];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state == STATE_ASCII ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_ASCII) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'B';
+        r += 3;
+        state = STATE_ASCII;
+      }
+      r[0] = buf[0];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0201-1976 Roman. */
+  ret = jisx0201_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state == STATE_JISX0201ROMAN ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_JISX0201ROMAN) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'J';
+        r += 3;
+        state = STATE_JISX0201ROMAN;
+      }
+      r[0] = buf[0];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */
+  ret = jisx0208_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state == STATE_JISX0208 ? 2 : 5);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_JISX0208) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = 'B';
+        r += 3;
+        state = STATE_JISX0208;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0212-1990. */
+  ret = jisx0212_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state == STATE_JISX0212 ? 2 : 6);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state != STATE_JISX0212) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = '(';
+        r[3] = 'D';
+        r += 4;
+        state = STATE_JISX0212;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  return RET_ILSEQ;
+}
+
+static int
+iso2022_jp1_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  if (state != STATE_ASCII) {
+    if (n < 3)
+      return RET_TOOSMALL;
+    r[0] = ESC;
+    r[1] = '(';
+    r[2] = 'B';
+    /* conv->ostate = 0; will be done by the caller */
+    return 3;
+  } else
+    return 0;
+}
+
+#undef STATE_JISX0212
+#undef STATE_JISX0208
+#undef STATE_JISX0201ROMAN
+#undef STATE_ASCII
diff --git a/libiconv/iso2022_jp2.h b/libiconv/iso2022_jp2.h
new file mode 100644 (file)
index 0000000..8983dc5
--- /dev/null
@@ -0,0 +1,506 @@
+
+/*
+ * ISO-2022-JP-2
+ */
+
+/* Specification: RFC 1554 */
+/* ESC '(' 'I' for JISX0201 Katakana is an extension not found in RFC 1554 or
+   CJK.INF, but implemented in glibc-2.1 and qt-2.0. */
+
+#define ESC 0x1b
+
+/*
+ * The state is composed of one of the following values
+ */
+#define STATE_ASCII             0
+#define STATE_JISX0201ROMAN     1
+#define STATE_JISX0201KATAKANA  2
+#define STATE_JISX0208          3
+#define STATE_JISX0212          4
+#define STATE_GB2312            5
+#define STATE_KSC5601           6
+/*
+ * and one of the following values, << 8
+ */
+#define STATE_G2_NONE           0
+#define STATE_G2_ISO8859_1      1
+#define STATE_G2_ISO8859_7      2
+
+#define SPLIT_STATE \
+  unsigned int state1 = state & 0xff, state2 = state >> 8
+#define COMBINE_STATE \
+  state = (state2 << 8) | state1
+
+static int
+iso2022_jp2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  SPLIT_STATE;
+  int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == ESC) {
+      if (n < count+3)
+        goto none;
+      if (s[1] == '(') {
+        if (s[2] == 'B') {
+          state1 = STATE_ASCII;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == 'J') {
+          state1 = STATE_JISX0201ROMAN;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == 'I') {
+          state1 = STATE_JISX0201KATAKANA;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        return RET_ILSEQ;
+      }
+      if (s[1] == '$') {
+        if (s[2] == '@' || s[2] == 'B') {
+          /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */
+          state1 = STATE_JISX0208;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == 'A') {
+          state1 = STATE_GB2312;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == '(') {
+          if (n < count+4)
+            goto none;
+          if (s[3] == 'D') {
+            state1 = STATE_JISX0212;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          if (s[3] == 'C') {
+            state1 = STATE_KSC5601;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+          return RET_ILSEQ;
+        }
+        return RET_ILSEQ;
+      }
+      if (s[1] == '.') {
+        if (n < count+3)
+          goto none;
+        if (s[2] == 'A') {
+          state2 = STATE_G2_ISO8859_1;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        if (s[2] == 'F') {
+          state2 = STATE_G2_ISO8859_7;
+          s += 3; count += 3;
+          if (n < count+1)
+            goto none;
+          continue;
+        }
+        return RET_ILSEQ;
+      }
+      if (s[1] == 'N') {
+        switch (state2) {
+          case STATE_G2_NONE:
+            return RET_ILSEQ;
+          case STATE_G2_ISO8859_1:
+            if (s[2] < 0x80) {
+              unsigned char buf = s[2]+0x80;
+              int ret = iso8859_1_mbtowc(conv,pwc,&buf,1);
+              if (ret == RET_ILSEQ)
+                return RET_ILSEQ;
+              if (ret != 1) abort();
+              COMBINE_STATE;
+              conv->istate = state;
+              return count+3;
+            } else
+              return RET_ILSEQ;
+          case STATE_G2_ISO8859_7:
+            if (s[2] < 0x80) {
+              unsigned char buf = s[2]+0x80;
+              int ret = iso8859_7_mbtowc(conv,pwc,&buf,1);
+              if (ret == RET_ILSEQ)
+                return RET_ILSEQ;
+              if (ret != 1) abort();
+              COMBINE_STATE;
+              conv->istate = state;
+              return count+3;
+            } else
+              return RET_ILSEQ;
+          default: abort();
+        }
+      }
+      return RET_ILSEQ;
+    }
+    break;
+  }
+  switch (state1) {
+    case STATE_ASCII:
+      if (c < 0x80) {
+        int ret = ascii_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        if (*pwc == 0x000a || *pwc == 0x000d)
+          state2 = STATE_G2_NONE;
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0201ROMAN:
+      if (c < 0x80) {
+        int ret = jisx0201_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        if (*pwc == 0x000a || *pwc == 0x000d)
+          state2 = STATE_G2_NONE;
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0201KATAKANA:
+      if (c < 0x80) {
+        unsigned char buf = c+0x80;
+        int ret = jisx0201_mbtowc(conv,pwc,&buf,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0208:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = jisx0208_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    case STATE_JISX0212:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = jisx0212_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    case STATE_GB2312:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = gb2312_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    case STATE_KSC5601:
+      if (n < count+2)
+        goto none;
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = ksc5601_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    default: abort();
+  }
+
+none:
+  COMBINE_STATE;
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+iso2022_jp2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  unsigned char buf[2];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state1 == STATE_ASCII ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_ASCII) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'B';
+        r += 3;
+        state1 = STATE_ASCII;
+      }
+      r[0] = buf[0];
+      if (wc == 0x000a || wc == 0x000d)
+        state2 = STATE_G2_NONE;
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try ISO-8859-1. */
+  ret = iso8859_1_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] >= 0x80) {
+      int count = (state2 == STATE_G2_ISO8859_1 ? 3 : 6);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE_G2_ISO8859_1) {
+        r[0] = ESC;
+        r[1] = '.';
+        r[2] = 'A';
+        r += 3;
+        state2 = STATE_G2_ISO8859_1;
+      }
+      r[0] = ESC;
+      r[1] = 'N';
+      r[2] = buf[0]-0x80;
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try ISO-8859-7. */
+  ret = iso8859_7_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] >= 0x80) {
+      int count = (state2 == STATE_G2_ISO8859_7 ? 3 : 6);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE_G2_ISO8859_7) {
+        r[0] = ESC;
+        r[1] = '.';
+        r[2] = 'F';
+        r += 3;
+        state2 = STATE_G2_ISO8859_7;
+      }
+      r[0] = ESC;
+      r[1] = 'N';
+      r[2] = buf[0]-0x80;
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0201-1976 Roman and Kana. */
+  ret = jisx0201_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state1 == STATE_JISX0201ROMAN ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_JISX0201ROMAN) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'J';
+        r += 3;
+        state1 = STATE_JISX0201ROMAN;
+      }
+      r[0] = buf[0];
+      if (wc == 0x000a || wc == 0x000d)
+        state2 = STATE_G2_NONE;
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    } else {
+      int count = (state1 == STATE_JISX0201KATAKANA ? 1 : 4);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_JISX0201KATAKANA) {
+        r[0] = ESC;
+        r[1] = '(';
+        r[2] = 'I';
+        r += 3;
+        state1 = STATE_JISX0201KATAKANA;
+      }
+      r[0] = buf[0]-0x80;
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */
+  ret = jisx0208_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state1 == STATE_JISX0208 ? 2 : 5);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_JISX0208) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = 'B';
+        r += 3;
+        state1 = STATE_JISX0208;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try JIS X 0212-1990. */
+  ret = jisx0212_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state1 == STATE_JISX0212 ? 2 : 6);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_JISX0212) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = '(';
+        r[3] = 'D';
+        r += 4;
+        state1 = STATE_JISX0212;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try GB 2312-1980. */
+  ret = gb2312_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state1 == STATE_GB2312 ? 2 : 5);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_GB2312) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = 'A';
+        r += 3;
+        state1 = STATE_GB2312;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try KS C 5601-1992. */
+  ret = ksc5601_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state1 == STATE_KSC5601 ? 2 : 6);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_KSC5601) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = '(';
+        r[3] = 'C';
+        r += 4;
+        state1 = STATE_KSC5601;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  return RET_ILSEQ;
+}
+
+static int
+iso2022_jp2_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  (void)state2;
+  if (state1 != STATE_ASCII) {
+    if (n < 3)
+      return RET_TOOSMALL;
+    r[0] = ESC;
+    r[1] = '(';
+    r[2] = 'B';
+    /* conv->ostate = 0; will be done by the caller */
+    return 3;
+  } else
+    return 0;
+}
+
+#undef COMBINE_STATE
+#undef SPLIT_STATE
+#undef STATE_G2_ISO8859_7
+#undef STATE_G2_ISO8859_1
+#undef STATE_G2_NONE
+#undef STATE_KSC5601
+#undef STATE_GB2312
+#undef STATE_JISX0212
+#undef STATE_JISX0208
+#undef STATE_JISX0201KATAKANA
+#undef STATE_JISX0201ROMAN
+#undef STATE_ASCII
diff --git a/libiconv/iso2022_kr.h b/libiconv/iso2022_kr.h
new file mode 100644 (file)
index 0000000..dd70c0d
--- /dev/null
@@ -0,0 +1,230 @@
+
+/*
+ * ISO-2022-KR
+ */
+
+/* Specification: RFC 1557 */
+
+/* Note: CJK.INF says the SO designator needs to appear only once at the
+   beginning of a text, but RFC 1557 says it must appear once in every line
+   containing SO characters. So we produce ISO-2022-KR according to RFC 1557,
+   but accept ISO-2022-KR according to CJK.INF. */
+
+#define ESC 0x1b
+#define SO  0x0e
+#define SI  0x0f
+
+/*
+ * The state is composed of one of the following values
+ */
+#define STATE_ASCII          0
+#define STATE_TWOBYTE        1
+/*
+ * and one of the following values, << 8
+ */
+#define STATE2_NONE                0
+#define STATE2_DESIGNATED_KSC5601  1
+
+#define SPLIT_STATE \
+  unsigned int state1 = state & 0xff, state2 = state >> 8
+#define COMBINE_STATE \
+  state = (state2 << 8) | state1
+
+static int
+iso2022_kr_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  SPLIT_STATE;
+  int count = 0;
+  unsigned char c;
+  for (;;) {
+    c = *s;
+    if (c == ESC) {
+      if (n < count+4)
+        goto none;
+      if (s[1] == '$') {
+        if (s[2] == ')') {
+          if (s[3] == 'C') {
+            state2 = STATE2_DESIGNATED_KSC5601;
+            s += 4; count += 4;
+            if (n < count+1)
+              goto none;
+            continue;
+          }
+        }
+      }
+      return RET_ILSEQ;
+    }
+    if (c == SO) {
+      if (state2 != STATE2_DESIGNATED_KSC5601)
+        return RET_ILSEQ;
+      state1 = STATE_TWOBYTE;
+      s++; count++;
+      if (n < count+1)
+        goto none;
+      continue;
+    }
+    if (c == SI) {
+      state1 = STATE_ASCII;
+      s++; count++;
+      if (n < count+1)
+        goto none;
+      continue;
+    }
+    break;
+  }
+  switch (state1) {
+    case STATE_ASCII:
+      if (c < 0x80) {
+        int ret = ascii_mbtowc(conv,pwc,s,1);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 1) abort();
+#if 0 /* Accept ISO-2022-KR according to CJK.INF. */
+        if (*pwc == 0x000a || *pwc == 0x000d)
+          state2 = STATE2_NONE;
+#endif
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+1;
+      } else
+        return RET_ILSEQ;
+    case STATE_TWOBYTE:
+      if (n < count+2)
+        goto none;
+      if (state2 != STATE2_DESIGNATED_KSC5601) abort();
+      if (s[0] < 0x80 && s[1] < 0x80) {
+        int ret = ksc5601_mbtowc(conv,pwc,s,2);
+        if (ret == RET_ILSEQ)
+          return RET_ILSEQ;
+        if (ret != 2) abort();
+        COMBINE_STATE;
+        conv->istate = state;
+        return count+2;
+      } else
+        return RET_ILSEQ;
+    default: abort();
+  }
+
+none:
+  COMBINE_STATE;
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+static int
+iso2022_kr_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  unsigned char buf[3];
+  int ret;
+
+  /* Try ASCII. */
+  ret = ascii_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    if (ret != 1) abort();
+    if (buf[0] < 0x80) {
+      int count = (state1 == STATE_ASCII ? 1 : 2);
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state1 != STATE_ASCII) {
+        r[0] = SI;
+        r += 1;
+        state1 = STATE_ASCII;
+      }
+      r[0] = buf[0];
+      if (wc == 0x000a || wc == 0x000d)
+        state2 = STATE2_NONE;
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  /* Try KS C 5601-1992. */
+  ret = ksc5601_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (buf[0] < 0x80 && buf[1] < 0x80) {
+      int count = (state2 == STATE2_DESIGNATED_KSC5601 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE2_DESIGNATED_KSC5601) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = ')';
+        r[3] = 'C';
+        r += 4;
+        state2 = STATE2_DESIGNATED_KSC5601;
+      }
+      if (state1 != STATE_TWOBYTE) {
+        r[0] = SO;
+        r += 1;
+        state1 = STATE_TWOBYTE;
+      }
+      r[0] = buf[0];
+      r[1] = buf[1];
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  if (conv->transliterate) {
+    /* Decompose Hangul into Jamo */
+    ret = johab_hangul_decompose(conv,buf,wc);
+    if (ret != RET_ILSEQ) {
+      int count = (state2 == STATE2_DESIGNATED_KSC5601 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2*ret;
+      int i;
+      if (n < count)
+        return RET_TOOSMALL;
+      if (state2 != STATE2_DESIGNATED_KSC5601) {
+        r[0] = ESC;
+        r[1] = '$';
+        r[2] = ')';
+        r[3] = 'C';
+        r += 4;
+        state2 = STATE2_DESIGNATED_KSC5601;
+      }
+      if (state1 != STATE_TWOBYTE) {
+        r[0] = SO;
+        r += 1;
+        state1 = STATE_TWOBYTE;
+      }
+      for (i = 0; i < ret; i++) {
+        r[0] = 0x24;
+        r[1] = 0x20+buf[i];
+        r += 2;
+      }
+      COMBINE_STATE;
+      conv->ostate = state;
+      return count;
+    }
+  }
+
+  return RET_ILSEQ;
+}
+
+static int
+iso2022_kr_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  SPLIT_STATE;
+  (void)state2;
+  if (state1 != STATE_ASCII) {
+    if (n < 1)
+      return RET_TOOSMALL;
+    r[0] = SI;
+    /* conv->ostate = 0; will be done by the caller */
+    return 1;
+  } else
+    return 0;
+}
+
+#undef COMBINE_STATE
+#undef SPLIT_STATE
+#undef STATE2_DESIGNATED_KSC5601
+#undef STATE2_NONE
+#undef STATE_TWOBYTE
+#undef STATE_ASCII
diff --git a/libiconv/iso8859_1.h b/libiconv/iso8859_1.h
new file mode 100644 (file)
index 0000000..fb64e2e
--- /dev/null
@@ -0,0 +1,22 @@
+
+/*
+ * ISO-8859-1
+ */
+
+static int
+iso8859_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  *pwc = (wchar_t) c;
+  return 1;
+}
+
+static int
+iso8859_1_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x0100) {
+    *r = wc;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_10.h b/libiconv/iso8859_10.h
new file mode 100644 (file)
index 0000000..a727a2f
--- /dev/null
@@ -0,0 +1,87 @@
+
+/*
+ * ISO-8859-10
+ */
+
+static const unsigned short iso8859_10_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7,
+  0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a,
+  /* 0xb0 */
+  0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7,
+  0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b,
+  /* 0xc0 */
+  0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
+  0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf,
+  /* 0xd0 */
+  0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168,
+  0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
+  /* 0xe0 */
+  0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
+  0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef,
+  /* 0xf0 */
+  0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169,
+  0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138,
+};
+
+static int
+iso8859_10_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) iso8859_10_2uni[c-0xa0];
+  return 1;
+}
+
+static const unsigned char iso8859_10_page00[224] = {
+  0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+  0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */
+  0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
+  0xd0, 0x00, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */
+  0xd8, 0x00, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xd8-0xdf */
+  0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */
+  0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */
+  0xf0, 0x00, 0x00, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */
+  0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
+  0xa9, 0xb9, 0xa2, 0xb2, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */
+  0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xa3, 0xb3, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0xa5, 0xb5, 0xa4, 0xb4, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xb6, /* 0x30-0x37 */
+  0xff, 0x00, 0x00, 0xa8, 0xb8, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0xaf, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, 0xab, 0xbb, /* 0x60-0x67 */
+  0xd7, 0xf7, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, 0x00, /* 0x78-0x7f */
+};
+
+static int
+iso8859_10_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = iso8859_10_page00[wc-0x00a0];
+  else if (wc == 0x2015)
+    c = 0xbd;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_13.h b/libiconv/iso8859_13.h
new file mode 100644 (file)
index 0000000..fae2770
--- /dev/null
@@ -0,0 +1,90 @@
+
+/*
+ * ISO-8859-13
+ */
+
+static const unsigned short iso8859_13_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7,
+  0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7,
+  0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6,
+  /* 0xc0 */
+  0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112,
+  0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b,
+  /* 0xd0 */
+  0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7,
+  0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df,
+  /* 0xe0 */
+  0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113,
+  0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c,
+  /* 0xf0 */
+  0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7,
+  0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019,
+};
+
+static int
+iso8859_13_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) iso8859_13_2uni[c-0xa0];
+  return 1;
+}
+
+static const unsigned char iso8859_13_page00[224] = {
+  0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0x00, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */
+  0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */
+  0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */
+  0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */
+  0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char iso8859_13_page20[8] = {
+  0x00, 0xff, 0x00, 0x00, 0xb4, 0xa1, 0xa5, 0x00, /* 0x18-0x1f */
+};
+
+static int
+iso8859_13_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = iso8859_13_page00[wc-0x00a0];
+  else if (wc >= 0x2018 && wc < 0x2020)
+    c = iso8859_13_page20[wc-0x2018];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_14.h b/libiconv/iso8859_14.h
new file mode 100644 (file)
index 0000000..2fea443
--- /dev/null
@@ -0,0 +1,108 @@
+
+/*
+ * ISO-8859-14
+ */
+
+static const unsigned short iso8859_14_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7,
+  0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178,
+  /* 0xb0 */
+  0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56,
+  0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61,
+  /* 0xc0 */
+  0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
+  0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
+  /* 0xd0 */
+  0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a,
+  0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df,
+  /* 0xe0 */
+  0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
+  0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
+  /* 0xf0 */
+  0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b,
+  0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff,
+};
+
+static int
+iso8859_14_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0xa0)
+    *pwc = (wchar_t) iso8859_14_2uni[c-0xa0];
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char iso8859_14_page00[96] = {
+  0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
+  0x00, 0xa9, 0x00, 0x00, 0x00, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
+  0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
+  0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */
+};
+static const unsigned char iso8859_14_page01_0[32] = {
+  0x00, 0x00, 0xa4, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char iso8859_14_page01_1[16] = {
+  0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, 0xde, 0xfe, /* 0x70-0x77 */
+  0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char iso8859_14_page1e_0[136] = {
+  0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xb1, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0xb4, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xb9, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xbb, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0x00, 0x00, /* 0x80-0x87 */
+};
+static const unsigned char iso8859_14_page1e_1[8] = {
+  0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+
+static int
+iso8859_14_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = iso8859_14_page00[wc-0x00a0];
+  else if (wc >= 0x0108 && wc < 0x0128)
+    c = iso8859_14_page01_0[wc-0x0108];
+  else if (wc >= 0x0170 && wc < 0x0180)
+    c = iso8859_14_page01_1[wc-0x0170];
+  else if (wc >= 0x1e00 && wc < 0x1e88)
+    c = iso8859_14_page1e_0[wc-0x1e00];
+  else if (wc >= 0x1ef0 && wc < 0x1ef8)
+    c = iso8859_14_page1e_1[wc-0x1ef0];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_15.h b/libiconv/iso8859_15.h
new file mode 100644 (file)
index 0000000..3801fc1
--- /dev/null
@@ -0,0 +1,62 @@
+
+/*
+ * ISO-8859-15
+ */
+
+static const unsigned short iso8859_15_2uni[32] = {
+  /* 0xa0 */
+  0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7,
+  0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7,
+  0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf,
+};
+
+static int
+iso8859_15_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0xa0 && c < 0xc0)
+    *pwc = (wchar_t) iso8859_15_2uni[c-0xa0];
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char iso8859_15_page00[32] = {
+  0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0x00, 0xa7, /* 0xa0-0xa7 */
+  0x00, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0x00, 0xb9, 0xba, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0xb8-0xbf */
+};
+static const unsigned char iso8859_15_page01[48] = {
+  0x00, 0x00, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0xbe, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */
+};
+
+static int
+iso8859_15_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = iso8859_15_page00[wc-0x00a0];
+  else if (wc >= 0x00c0 && wc < 0x0100)
+    c = wc;
+  else if (wc >= 0x0150 && wc < 0x0180)
+    c = iso8859_15_page01[wc-0x0150];
+  else if (wc == 0x20ac)
+    c = 0xa4;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_2.h b/libiconv/iso8859_2.h
new file mode 100644 (file)
index 0000000..2309854
--- /dev/null
@@ -0,0 +1,93 @@
+
+/*
+ * ISO-8859-2
+ */
+
+static const unsigned short iso8859_2_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7,
+  0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b,
+  /* 0xb0 */
+  0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7,
+  0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c,
+  /* 0xc0 */
+  0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
+  0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
+  /* 0xd0 */
+  0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
+  0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
+  /* 0xe0 */
+  0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
+  0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
+  /* 0xf0 */
+  0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
+  0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9,
+};
+
+static int
+iso8859_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) iso8859_2_2uni[c-0xa0];
+  return 1;
+}
+
+static const unsigned char iso8859_2_page00[224] = {
+  0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+  0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */
+  0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */
+  0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
+  0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xc5, 0xe5, 0x00, 0x00, 0xa5, 0xb5, 0x00, /* 0x38-0x3f */
+  0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */
+  0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */
+  0xd8, 0xf8, 0xa6, 0xb6, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */
+  0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */
+  0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char iso8859_2_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+
+static int
+iso8859_2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = iso8859_2_page00[wc-0x00a0];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = iso8859_2_page02[wc-0x02c0];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_3.h b/libiconv/iso8859_3.h
new file mode 100644 (file)
index 0000000..dd49928
--- /dev/null
@@ -0,0 +1,99 @@
+
+/*
+ * ISO-8859-3
+ */
+
+static const unsigned short iso8859_3_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0xfffd, 0x0124, 0x00a7,
+  0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0xfffd, 0x017b,
+  /* 0xb0 */
+  0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7,
+  0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0xfffd, 0x017c,
+  /* 0xc0 */
+  0x00c0, 0x00c1, 0x00c2, 0xfffd, 0x00c4, 0x010a, 0x0108, 0x00c7,
+  0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
+  /* 0xd0 */
+  0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7,
+  0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df,
+  /* 0xe0 */
+  0x00e0, 0x00e1, 0x00e2, 0xfffd, 0x00e4, 0x010b, 0x0109, 0x00e7,
+  0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
+  /* 0xf0 */
+  0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7,
+  0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9,
+};
+
+static int
+iso8859_3_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = iso8859_3_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char iso8859_3_page00[96] = {
+  0xa0, 0x00, 0x00, 0xa3, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+  0xb0, 0x00, 0xb2, 0xb3, 0xb4, 0xb5, 0x00, 0xb7, /* 0xb0-0xb7 */
+  0xb8, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */
+  0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
+  0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
+  0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char iso8859_3_page01[120] = {
+  0xc6, 0xe6, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0xd8, 0xf8, 0xab, 0xbb, /* 0x18-0x1f */
+  0xd5, 0xf5, 0x00, 0x00, 0xa6, 0xb6, 0xa1, 0xb1, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xa9, 0xb9, 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, 0xaa, 0xba, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0xdd, 0xfd, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char iso8859_3_page02[8] = {
+  0xa2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+
+static int
+iso8859_3_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = iso8859_3_page00[wc-0x00a0];
+  else if (wc >= 0x0108 && wc < 0x0180)
+    c = iso8859_3_page01[wc-0x0108];
+  else if (wc >= 0x02d8 && wc < 0x02e0)
+    c = iso8859_3_page02[wc-0x02d8];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_4.h b/libiconv/iso8859_4.h
new file mode 100644 (file)
index 0000000..8afd809
--- /dev/null
@@ -0,0 +1,93 @@
+
+/*
+ * ISO-8859-4
+ */
+
+static const unsigned short iso8859_4_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7,
+  0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af,
+  /* 0xb0 */
+  0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7,
+  0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b,
+  /* 0xc0 */
+  0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
+  0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a,
+  /* 0xd0 */
+  0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
+  0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df,
+  /* 0xe0 */
+  0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
+  0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b,
+  /* 0xf0 */
+  0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
+  0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9,
+};
+
+static int
+iso8859_4_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) iso8859_4_2uni[c-0xa0];
+  return 1;
+}
+
+static const unsigned char iso8859_4_page00[224] = {
+  0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0xaf, /* 0xa8-0xaf */
+  0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */
+  0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0xd8, 0x00, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */
+  0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
+  0xd0, 0xf0, 0xaa, 0xba, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */
+  0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xab, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0xa5, 0xb5, 0xcf, 0xef, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0xf3, /* 0x30-0x37 */
+  0xa2, 0x00, 0x00, 0xa6, 0xb6, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0xbd, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xb3, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, /* 0x60-0x67 */
+  0xdd, 0xfd, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char iso8859_4_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0xff, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+
+static int
+iso8859_4_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = iso8859_4_page00[wc-0x00a0];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = iso8859_4_page02[wc-0x02c0];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_5.h b/libiconv/iso8859_5.h
new file mode 100644 (file)
index 0000000..de10545
--- /dev/null
@@ -0,0 +1,76 @@
+
+/*
+ * ISO-8859-5
+ */
+
+static const unsigned short iso8859_5_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
+  0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,
+  /* 0xb0 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
+  0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
+  /* 0xc0 */
+  0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
+  0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
+  /* 0xd0 */
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
+  0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
+  /* 0xe0 */
+  0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+  0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
+  /* 0xf0 */
+  0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
+  0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f,
+};
+
+static int
+iso8859_5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) iso8859_5_2uni[c-0xa0];
+  return 1;
+}
+
+static const unsigned char iso8859_5_page00[16] = {
+  0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+};
+static const unsigned char iso8859_5_page04[96] = {
+  0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
+  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
+  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */
+};
+
+static int
+iso8859_5_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00b0)
+    c = iso8859_5_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0460)
+    c = iso8859_5_page04[wc-0x0400];
+  else if (wc == 0x2116)
+    c = 0xf0;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_6.h b/libiconv/iso8859_6.h
new file mode 100644 (file)
index 0000000..28761f9
--- /dev/null
@@ -0,0 +1,79 @@
+
+/*
+ * ISO-8859-6
+ */
+
+static const unsigned short iso8859_6_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0x00ad, 0xfffd, 0xfffd,
+  /* 0xb0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f,
+  /* 0xc0 */
+  0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
+  0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
+  /* 0xd0 */
+  0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
+  0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xe0 */
+  0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
+  0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f,
+  /* 0xf0 */
+  0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+iso8859_6_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = iso8859_6_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char iso8859_6_page00[16] = {
+  0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+};
+static const unsigned char iso8859_6_page06[80] = {
+  0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */
+  0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
+  0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+};
+
+static int
+iso8859_6_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00b0)
+    c = iso8859_6_page00[wc-0x00a0];
+  else if (wc >= 0x0608 && wc < 0x0658)
+    c = iso8859_6_page06[wc-0x0608];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_7.h b/libiconv/iso8859_7.h
new file mode 100644 (file)
index 0000000..ae3233e
--- /dev/null
@@ -0,0 +1,87 @@
+
+/*
+ * ISO-8859-7
+ */
+
+static const unsigned short iso8859_7_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x2018, 0x2019, 0x00a3, 0xfffd, 0xfffd, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7,
+  0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,
+  /* 0xc0 */
+  0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
+  0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
+  /* 0xd0 */
+  0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,
+  0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,
+  /* 0xe0 */
+  0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
+  0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
+  /* 0xf0 */
+  0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
+  0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd,
+};
+
+static int
+iso8859_7_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = iso8859_7_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char iso8859_7_page00[32] = {
+  0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char iso8859_7_page03[80] = {
+  0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0x00, /* 0x80-0x87 */
+  0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */
+  0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */
+};
+static const unsigned char iso8859_7_page20[16] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, /* 0x10-0x17 */
+  0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+};
+
+static int
+iso8859_7_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = iso8859_7_page00[wc-0x00a0];
+  else if (wc >= 0x0380 && wc < 0x03d0)
+    c = iso8859_7_page03[wc-0x0380];
+  else if (wc >= 0x2010 && wc < 0x2020)
+    c = iso8859_7_page20[wc-0x2010];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_8.h b/libiconv/iso8859_8.h
new file mode 100644 (file)
index 0000000..6ce175c
--- /dev/null
@@ -0,0 +1,92 @@
+
+/*
+ * ISO-8859-8
+ */
+
+static const unsigned short iso8859_8_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
+  0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x203e,
+  /* 0xb0 */
+  0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+  0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd,
+  /* 0xc0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xd0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017,
+  /* 0xe0 */
+  0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
+  0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
+  /* 0xf0 */
+  0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
+  0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+iso8859_8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0xa0) {
+    unsigned short wc = iso8859_8_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  else {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char iso8859_8_page00[88] = {
+  0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
+  0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
+  0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */
+};
+static const unsigned char iso8859_8_page05[32] = {
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */
+  0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+};
+static const unsigned char iso8859_8_page20[48] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, /* 0x38-0x3f */
+};
+
+static int
+iso8859_8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00f8)
+    c = iso8859_8_page00[wc-0x00a0];
+  else if (wc >= 0x05d0 && wc < 0x05f0)
+    c = iso8859_8_page05[wc-0x05d0];
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = iso8859_8_page20[wc-0x2010];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/iso8859_9.h b/libiconv/iso8859_9.h
new file mode 100644 (file)
index 0000000..8ca9979
--- /dev/null
@@ -0,0 +1,66 @@
+
+/*
+ * ISO-8859-9
+ */
+
+static const unsigned short iso8859_9_2uni[48] = {
+  /* 0xd0 */
+  0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
+  0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
+  /* 0xe0 */
+  0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
+  0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
+  /* 0xf0 */
+  0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
+  0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff,
+};
+
+static int
+iso8859_9_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0xd0)
+    *pwc = (wchar_t) iso8859_9_2uni[c-0xd0];
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char iso8859_9_page00[48] = {
+  0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
+  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
+  0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */
+};
+static const unsigned char iso8859_9_page01[72] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */
+};
+
+static int
+iso8859_9_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00d0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00d0 && wc < 0x0100)
+    c = iso8859_9_page00[wc-0x00d0];
+  else if (wc >= 0x0118 && wc < 0x0160)
+    c = iso8859_9_page01[wc-0x0118];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/java.h b/libiconv/java.h
new file mode 100644 (file)
index 0000000..081d9b5
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * JAVA
+ * This is ISO 8859-1 with \uXXXX escape sequences, denoting Unicode characters.
+ */
+
+static int
+java_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c;
+  wchar_t wc;
+  int i;
+
+  c = s[0];
+  if (c != '\\') {
+    *pwc = c;
+    return 1;
+  }
+  if (n < 2)
+    return RET_TOOFEW(0);
+  if (s[1] != 'u')
+    goto simply_backslash;
+  wc = 0;
+  for (i = 2; i < 6; i++) {
+    if (n <= i)
+      return RET_TOOFEW(0);
+    c = s[i];
+    if (c >= '0' && c <= '9')
+      c -= '0';
+    else if (c >= 'A' && c <= 'Z')
+      c -= 'A'-10;
+    else if (c >= 'a' && c <= 'z')
+      c -= 'a'-10;
+    else
+      goto simply_backslash;
+    wc |= (wchar_t) c << (4 * (5-i));
+  }
+  *pwc = wc;
+  return 6;
+simply_backslash:
+  *pwc = '\\';
+  return 1;
+}
+
+static int
+java_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x80) {
+    *r = wc;
+    return 1;
+  } else {
+    if (n >= 6) {
+      unsigned int i;
+      r[0] = '\\';
+      r[1] = 'u';
+      i = (wc >> 12) & 0x0f; r[2] = (i < 10 ? '0'+i : 'a'-10+i);
+      i = (wc >> 8) & 0x0f;  r[3] = (i < 10 ? '0'+i : 'a'-10+i);
+      i = (wc >> 4) & 0x0f;  r[4] = (i < 10 ? '0'+i : 'a'-10+i);
+      i = wc & 0x0f;         r[5] = (i < 10 ? '0'+i : 'a'-10+i);
+      return 6;
+    } else
+      return RET_TOOSMALL;
+  }
+}
diff --git a/libiconv/jisx0201.h b/libiconv/jisx0201.h
new file mode 100644 (file)
index 0000000..5bde56f
--- /dev/null
@@ -0,0 +1,47 @@
+
+/*
+ * JISX0201.1976-0
+ */
+
+static int
+jisx0201_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    if (c == 0x5c)
+      *pwc = (wchar_t) 0x00a5;
+    else if (c == 0x7e)
+      *pwc = (wchar_t) 0x203e;
+    else
+      *pwc = (wchar_t) c;
+    return 1;
+  } else {
+    if (c >= 0xa1 && c < 0xe0) {
+      *pwc = (wchar_t) c + 0xfec0;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static int
+jisx0201_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) {
+    *r = wc;
+    return 1;
+  }
+  if (wc == 0x00a5) {
+    *r = 0x5c;
+    return 1;
+  }
+  if (wc == 0x203e) {
+    *r = 0x7e;
+    return 1;
+  }
+  if (wc >= 0xff61 && wc < 0xffa0) {
+    *r = wc - 0xfec0;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/jisx0208.h b/libiconv/jisx0208.h
new file mode 100644 (file)
index 0000000..ff833d6
--- /dev/null
@@ -0,0 +1,2396 @@
+
+/*
+ * JISX0208.1990-0
+ */
+
+static const unsigned short jisx0208_2uni_page21[690] = {
+  /* 0x21 */
+  0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b,
+  0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e,
+  0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd,
+  0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0x005c,
+  0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c,
+  0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b,
+  0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e,
+  0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7,
+  0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234,
+  0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04,
+  0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7,
+  0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7,
+  /* 0x22 */
+  0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b,
+  0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a,
+  0x2229, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207,
+  0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235,
+  0x222b, 0x222c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021,
+  0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25ef,
+  /* 0x23 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff10,
+  0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
+  0xff19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
+  0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
+  0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
+  0xff39, 0xff3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
+  0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
+  0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
+  0xff59, 0xff5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x24 */
+  0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
+  0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
+  0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
+  0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
+  0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
+  0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
+  0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
+  0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
+  0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
+  0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
+  0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x25 */
+  0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
+  0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
+  0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
+  0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
+  0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
+  0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
+  0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
+  0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
+  0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
+  0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
+  0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x26 */
+  0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
+  0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
+  0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
+  0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
+  0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x27 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
+  0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+  0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
+  0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
+  0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
+  0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+  0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
+  0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
+  0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x28 */
+  0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c,
+  0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
+  0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f,
+  0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542,
+};
+static const unsigned short jisx0208_2uni_page30[6398] = {
+  /* 0x30 */
+  0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6,
+  0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed,
+  0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b,
+  0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f,
+  0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d,
+  0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937,
+  0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905,
+  0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e,
+  0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df,
+  0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32,
+  0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0,
+  0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d,
+  /* 0x31 */
+  0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf,
+  0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893,
+  0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5,
+  0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2,
+  0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3,
+  0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834,
+  0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5,
+  0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712,
+  0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf,
+  0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276,
+  0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a,
+  0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc,
+  /* 0x32 */
+  0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956,
+  0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b,
+  0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069,
+  0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d,
+  0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6,
+  0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b,
+  0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304,
+  0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6,
+  0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b,
+  0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb,
+  0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a,
+  0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539,
+  /* 0x33 */
+  0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75,
+  0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916,
+  0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb,
+  0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3,
+  0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1,
+  0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a,
+  0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66,
+  0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f,
+  0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b,
+  0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6,
+  0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc,
+  0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431,
+  /* 0x34 */
+  0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2,
+  0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c,
+  0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be,
+  0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57,
+  0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff,
+  0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e,
+  0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2,
+  0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc,
+  0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811,
+  0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa,
+  0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee,
+  0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4,
+  /* 0x35 */
+  0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63,
+  0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc,
+  0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993,
+  0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947,
+  0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409,
+  0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd,
+  0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7,
+  0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d,
+  0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08,
+  0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8,
+  0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8,
+  0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac,
+  /* 0x36 */
+  0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354,
+  0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a,
+  0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2,
+  0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1,
+  0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d,
+  0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4,
+  0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981,
+  0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39,
+  0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a,
+  0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2,
+  0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047,
+  0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48,
+  /* 0x37 */
+  0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688,
+  0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab,
+  0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2,
+  0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951,
+  0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a,
+  0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c,
+  0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63,
+  0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287,
+  0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a,
+  0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039,
+  0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805,
+  0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372,
+  /* 0x38 */
+  0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79,
+  0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375,
+  0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b,
+  0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00,
+  0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1,
+  0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56,
+  0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87,
+  0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d,
+  0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7,
+  0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e,
+  0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c,
+  0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411,
+  /* 0x39 */
+  0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f,
+  0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18,
+  0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643,
+  0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69,
+  0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05,
+  0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154,
+  0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc,
+  0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805,
+  0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5,
+  0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a,
+  0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170,
+  0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc,
+  /* 0x3a */
+  0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068,
+  0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a,
+  0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6,
+  0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df,
+  0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9,
+  0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73,
+  0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e,
+  0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750,
+  0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4,
+  0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b,
+  0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f,
+  0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237,
+  /* 0x3b */
+  0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1,
+  0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09,
+  0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6,
+  0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178,
+  0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f,
+  0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9,
+  0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307,
+  0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b,
+  0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2,
+  0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee,
+  0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d,
+  0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642,
+  /* 0x3c */
+  0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a,
+  0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f,
+  0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1,
+  0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be,
+  0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61,
+  0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c,
+  0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7,
+  0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c,
+  0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6,
+  0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b,
+  0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388,
+  0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468,
+  /* 0x3d */
+  0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0,
+  0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846,
+  0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6,
+  0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4,
+  0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919,
+  0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa,
+  0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c,
+  0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96,
+  0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6,
+  0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72,
+  0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f,
+  0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f,
+  /* 0x3e */
+  0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617,
+  0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a,
+  0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c,
+  0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f,
+  0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167,
+  0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11,
+  0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3,
+  0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266,
+  0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57,
+  0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5,
+  0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8,
+  0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe,
+  /* 0x3f */
+  0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6,
+  0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507,
+  0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b,
+  0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e,
+  0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab,
+  0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875,
+  0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663,
+  0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017,
+  0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b,
+  0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e,
+  0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e,
+  0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe,
+  /* 0x40 */
+  0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4,
+  0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574,
+  0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f,
+  0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93,
+  0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106,
+  0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3,
+  0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f,
+  0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83,
+  0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148,
+  0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247,
+  0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c,
+  0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda,
+  /* 0x41 */
+  0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce,
+  0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d,
+  0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce,
+  0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9,
+  0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44,
+  0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc,
+  0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64,
+  0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd,
+  0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89,
+  0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349,
+  0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d,
+  0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e,
+  /* 0x42 */
+  0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373,
+  0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e,
+  0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58,
+  0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a,
+  0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1,
+  0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe,
+  0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff,
+  0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000,
+  0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c,
+  0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85,
+  0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438,
+  0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea,
+  /* 0x43 */
+  0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea,
+  0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39,
+  0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1,
+  0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6,
+  0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696,
+  0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b,
+  0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718,
+  0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010,
+  0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99,
+  0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b,
+  0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457,
+  0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5,
+  /* 0x44 */
+  0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2,
+  0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074,
+  0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a,
+  0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88,
+  0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc,
+  0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb,
+  0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f,
+  0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3,
+  0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448,
+  0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c,
+  0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b,
+  0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013,
+  /* 0x45 */
+  0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575,
+  0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9,
+  0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55,
+  0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9,
+  0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835,
+  0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b,
+  0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa,
+  0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd,
+  0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b,
+  0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7,
+  0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977,
+  0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230,
+  /* 0x46 */
+  0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003,
+  0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5,
+  0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5,
+  0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97,
+  0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec,
+  0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6,
+  0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566,
+  0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948,
+  0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a,
+  0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf,
+  0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1,
+  0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165,
+  /* 0x47 */
+  0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1,
+  0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5,
+  0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc,
+  0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2,
+  0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2,
+  0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3,
+  0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc,
+  0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973,
+  0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f,
+  0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf,
+  0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd,
+  0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6,
+  /* 0x48 */
+  0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61,
+  0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197,
+  0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a,
+  0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db,
+  0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af,
+  0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6,
+  0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0,
+  0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c,
+  0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2,
+  0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9,
+  0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e,
+  0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e,
+  /* 0x49 */
+  0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d,
+  0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867,
+  0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19,
+  0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf,
+  0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed,
+  0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3,
+  0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66,
+  0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7,
+  0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c,
+  0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66,
+  0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a,
+  0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d,
+  /* 0x4a */
+  0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8,
+  0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4,
+  0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587,
+  0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a,
+  0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb,
+  0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f,
+  0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf,
+  0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703,
+  0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893,
+  0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8,
+  0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29,
+  0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b,
+  /* 0x4b */
+  0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c,
+  0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd,
+  0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8,
+  0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2,
+  0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e,
+  0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2,
+  0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86,
+  0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469,
+  0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce,
+  0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52,
+  0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4,
+  0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80,
+  /* 0x4c */
+  0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac,
+  0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d,
+  0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727,
+  0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e,
+  0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d,
+  0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302,
+  0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499,
+  0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24,
+  0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301,
+  0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2,
+  0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3,
+  0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652,
+  /* 0x4d */
+  0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5,
+  0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c,
+  0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091,
+  0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89,
+  0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da,
+  0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194,
+  0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21,
+  0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83,
+  0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765,
+  0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71,
+  0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229,
+  0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483,
+  /* 0x4e */
+  0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387,
+  0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409,
+  0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e,
+  0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee,
+  0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7,
+  0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1,
+  0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a,
+  0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e,
+  0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2,
+  0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62,
+  0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b,
+  0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f,
+  /* 0x4f */
+  0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2,
+  0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c,
+  0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e,
+  0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6,
+  0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0,
+  0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900,
+  0x6e7e, 0x7897, 0x8155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x50 */
+  0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f,
+  0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212,
+  0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3,
+  0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede,
+  0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d,
+  0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69,
+  0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf,
+  0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5,
+  0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6,
+  0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043,
+  0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c,
+  0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2,
+  /* 0x51 */
+  0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed,
+  0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116,
+  0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b,
+  0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169,
+  0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f,
+  0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9,
+  0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd,
+  0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0,
+  0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a,
+  0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e,
+  0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d,
+  0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8,
+  /* 0x52 */
+  0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7,
+  0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8,
+  0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315,
+  0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346,
+  0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e,
+  0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5,
+  0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc,
+  0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440,
+  0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e,
+  0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492,
+  0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2,
+  0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8,
+  /* 0x53 */
+  0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6,
+  0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539,
+  0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557,
+  0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f,
+  0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9,
+  0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4,
+  0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9,
+  0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b,
+  0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0,
+  0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc,
+  0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7,
+  0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709,
+  /* 0x54 */
+  0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c,
+  0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769,
+  0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3,
+  0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3,
+  0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821,
+  0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885,
+  0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae,
+  0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc,
+  0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd,
+  0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d,
+  0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a,
+  0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969,
+  /* 0x55 */
+  0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6,
+  0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11,
+  0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36,
+  0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd,
+  0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c,
+  0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43,
+  0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69,
+  0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83,
+  0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4,
+  0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3,
+  0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28,
+  0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53,
+  /* 0x56 */
+  0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79,
+  0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc,
+  0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa,
+  0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f,
+  0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c,
+  0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84,
+  0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7,
+  0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb,
+  0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36,
+  0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f,
+  0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f,
+  0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf,
+  /* 0x57 */
+  0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8,
+  0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe,
+  0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29,
+  0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51,
+  0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83,
+  0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99,
+  0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4,
+  0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019,
+  0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026,
+  0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a,
+  0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b,
+  0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a,
+  /* 0x58 */
+  0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1,
+  0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5,
+  0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4,
+  0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147,
+  0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134,
+  0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a,
+  0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153,
+  0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a,
+  0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8,
+  0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3,
+  0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200,
+  0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b,
+  /* 0x59 */
+  0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241,
+  0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282,
+  0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294,
+  0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8,
+  0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c,
+  0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350,
+  0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab,
+  0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369,
+  0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6,
+  0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d,
+  0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a,
+  0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc,
+  /* 0x5a */
+  0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1,
+  0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c,
+  0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c,
+  0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536,
+  0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e,
+  0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f,
+  0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2,
+  0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603,
+  0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644,
+  0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f,
+  0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698,
+  0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc,
+  /* 0x5b */
+  0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9,
+  0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727,
+  0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746,
+  0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9,
+  0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7,
+  0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de,
+  0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c,
+  0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3,
+  0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad,
+  0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5,
+  0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908,
+  0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd,
+  /* 0x5c */
+  0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3,
+  0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923,
+  0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954,
+  0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961,
+  0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf,
+  0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb,
+  0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4,
+  0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2,
+  0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a,
+  0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36,
+  0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22,
+  0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3,
+  /* 0x5d */
+  0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac,
+  0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05,
+  0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37,
+  0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59,
+  0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80,
+  0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa,
+  0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6,
+  0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x9ebe,
+  0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55,
+  0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e,
+  0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd,
+  0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe,
+  /* 0x5e */
+  0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36,
+  0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c,
+  0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95,
+  0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6,
+  0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5,
+  0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e,
+  0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b,
+  0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff,
+  0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3,
+  0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5,
+  0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe,
+  0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc,
+  /* 0x5f */
+  0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80,
+  0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e,
+  0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9,
+  0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1,
+  0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f,
+  0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030,
+  0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1,
+  0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x70d9,
+  0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166,
+  0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195,
+  0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4,
+  0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc,
+  /* 0x60 */
+  0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c,
+  0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b,
+  0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296,
+  0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce,
+  0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317,
+  0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325,
+  0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370,
+  0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb,
+  0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425,
+  0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441,
+  0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b,
+  0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1,
+  /* 0x61 */
+  0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1,
+  0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d,
+  0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d,
+  0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567,
+  0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a,
+  0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2,
+  0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd,
+  0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x75fc,
+  0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609,
+  0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630,
+  0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662,
+  0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670,
+  /* 0x62 */
+  0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b,
+  0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8,
+  0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1,
+  0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704,
+  0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738,
+  0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e,
+  0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6,
+  0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7,
+  0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926,
+  0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a,
+  0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb,
+  0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec,
+  /* 0x63 */
+  0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919,
+  0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955,
+  0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa,
+  0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec,
+  0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f,
+  0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49,
+  0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88,
+  0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x7ab6,
+  0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf,
+  0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6,
+  0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18,
+  0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50,
+  /* 0x64 */
+  0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65,
+  0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98,
+  0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d,
+  0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd,
+  0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07,
+  0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27,
+  0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54,
+  0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65,
+  0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab,
+  0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd,
+  0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b,
+  0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06,
+  /* 0x65 */
+  0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32,
+  0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68,
+  0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d,
+  0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab,
+  0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8,
+  0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a,
+  0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22,
+  0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x7e32,
+  0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79,
+  0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae,
+  0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94,
+  0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a,
+  /* 0x66 */
+  0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54,
+  0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82,
+  0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d,
+  0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8,
+  0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6,
+  0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012,
+  0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a,
+  0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073,
+  0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086,
+  0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db,
+  0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef,
+  0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b,
+  /* 0x67 */
+  0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e,
+  0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182,
+  0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0,
+  0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9,
+  0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0,
+  0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207,
+  0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233,
+  0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x8262,
+  0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e,
+  0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3,
+  0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb,
+  0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9,
+  /* 0x68 */
+  0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350,
+  0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa,
+  0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c,
+  0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413,
+  0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7,
+  0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438,
+  0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477,
+  0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f,
+  0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9,
+  0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1,
+  0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515,
+  0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548,
+  /* 0x69 */
+  0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591,
+  0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c,
+  0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0,
+  0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b,
+  0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d,
+  0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9,
+  0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0,
+  0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x86df,
+  0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb,
+  0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737,
+  0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c,
+  0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759,
+  /* 0x6a */
+  0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af,
+  0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3,
+  0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d,
+  0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815,
+  0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844,
+  0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e,
+  0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892,
+  0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1,
+  0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902,
+  0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913,
+  0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b,
+  0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e,
+  /* 0x6b */
+  0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e,
+  0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6,
+  0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da,
+  0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10,
+  0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52,
+  0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82,
+  0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3,
+  0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x8ae4,
+  0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c,
+  0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33,
+  0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f,
+  0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b,
+  /* 0x6c */
+  0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e,
+  0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f,
+  0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78,
+  0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94,
+  0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3,
+  0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd,
+  0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d,
+  0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d,
+  0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf,
+  0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf,
+  0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10,
+  0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a,
+  /* 0x6d */
+  0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60,
+  0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87,
+  0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99,
+  0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5,
+  0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe,
+  0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f,
+  0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42,
+  0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x8f62,
+  0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7,
+  0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005,
+  0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016,
+  0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8,
+  /* 0x6e */
+  0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056,
+  0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082,
+  0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af,
+  0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112,
+  0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165,
+  0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab,
+  0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9,
+  0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5,
+  0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e,
+  0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b,
+  0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9,
+  0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e,
+  /* 0x6f */
+  0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c,
+  0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394,
+  0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd,
+  0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407,
+  0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452,
+  0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470,
+  0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f,
+  0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x95a0,
+  0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca,
+  0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc,
+  0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642,
+  0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e,
+  /* 0x70 */
+  0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695,
+  0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6,
+  0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc,
+  0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e,
+  0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739,
+  0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c,
+  0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779,
+  0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790,
+  0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6,
+  0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6,
+  0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d,
+  0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870,
+  /* 0x71 */
+  0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4,
+  0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914,
+  0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e,
+  0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951,
+  0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae,
+  0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee,
+  0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2,
+  0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x9a3e,
+  0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64,
+  0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf,
+  0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6,
+  0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7,
+  /* 0x72 */
+  0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25,
+  0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44,
+  0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93,
+  0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4,
+  0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3,
+  0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0,
+  0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12,
+  0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30,
+  0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76,
+  0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03,
+  0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15,
+  0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48,
+  /* 0x73 */
+  0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89,
+  0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2,
+  0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2,
+  0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a,
+  0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b,
+  0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8,
+  0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4,
+  0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x9ef4,
+  0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08,
+  0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54,
+  0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a,
+  0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0,
+  /* 0x74 */
+  0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199,
+};
+
+static int
+jisx0208_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x21 && c1 <= 0x28) || (c1 >= 0x30 && c1 <= 0x74)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        if (i < 1410) {
+          if (i < 690)
+            wc = jisx0208_2uni_page21[i];
+        } else {
+          if (i < 7808)
+            wc = jisx0208_2uni_page30[i-1410];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short jisx0208_2charset[6879] = {
+  0x2140, 0x2171, 0x2172, 0x2178, 0x212f, 0x224c, 0x216b, 0x215e,
+  0x212d, 0x2279, 0x215f, 0x2160, 0x2621, 0x2622, 0x2623, 0x2624,
+  0x2625, 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c,
+  0x262d, 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634,
+  0x2635, 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644,
+  0x2645, 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c,
+  0x264d, 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654,
+  0x2655, 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723,
+  0x2724, 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c,
+  0x272d, 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734,
+  0x2735, 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c,
+  0x273d, 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753,
+  0x2754, 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c,
+  0x275d, 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764,
+  0x2765, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
+  0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x213e, 0x213d,
+  0x2142, 0x2146, 0x2147, 0x2148, 0x2149, 0x2277, 0x2278, 0x2145,
+  0x2144, 0x2273, 0x216c, 0x216d, 0x2228, 0x216e, 0x2272, 0x222b,
+  0x222c, 0x222a, 0x222d, 0x224d, 0x224e, 0x224f, 0x225f, 0x2250,
+  0x2260, 0x223a, 0x223b, 0x215d, 0x2265, 0x2267, 0x2167, 0x225c,
+  0x224a, 0x224b, 0x2241, 0x2240, 0x2269, 0x226a, 0x2168, 0x2268,
+  0x2266, 0x2262, 0x2162, 0x2261, 0x2165, 0x2166, 0x2263, 0x2264,
+  0x223e, 0x223f, 0x223c, 0x223d, 0x225d, 0x225e, 0x2821, 0x282c,
+  0x2822, 0x282d, 0x2823, 0x282e, 0x2824, 0x282f, 0x2826, 0x2831,
+  0x2825, 0x2830, 0x2827, 0x283c, 0x2837, 0x2832, 0x2829, 0x283e,
+  0x2839, 0x2834, 0x2828, 0x2838, 0x283d, 0x2833, 0x282a, 0x283a,
+  0x283f, 0x2835, 0x282b, 0x283b, 0x2840, 0x2836, 0x2223, 0x2222,
+  0x2225, 0x2224, 0x2227, 0x2226, 0x2221, 0x217e, 0x217b, 0x217d,
+  0x217c, 0x227e, 0x217a, 0x2179, 0x216a, 0x2169, 0x2276, 0x2275,
+  0x2274, 0x2121, 0x2122, 0x2123, 0x2137, 0x2139, 0x213a, 0x213b,
+  0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159,
+  0x215a, 0x215b, 0x2229, 0x222e, 0x214c, 0x214d, 0x2141, 0x2421,
+  0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429,
+  0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431,
+  0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439,
+  0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441,
+  0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449,
+  0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451,
+  0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459,
+  0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461,
+  0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
+  0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471,
+  0x2472, 0x2473, 0x212b, 0x212c, 0x2135, 0x2136, 0x2521, 0x2522,
+  0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a,
+  0x252b, 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532,
+  0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a,
+  0x253b, 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542,
+  0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a,
+  0x254b, 0x254c, 0x254d, 0x254e, 0x254f, 0x2550, 0x2551, 0x2552,
+  0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a,
+  0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562,
+  0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a,
+  0x256b, 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572,
+  0x2573, 0x2574, 0x2575, 0x2576, 0x2126, 0x213c, 0x2133, 0x2134,
+  0x306c, 0x437a, 0x3c37, 0x4b7c, 0x3e66, 0x3b30, 0x3e65, 0x323c,
+  0x4954, 0x4d3f, 0x5022, 0x312f, 0x336e, 0x5023, 0x4024, 0x5242,
+  0x3556, 0x4a3a, 0x3e67, 0x4e3e, 0x4a42, 0x5024, 0x4366, 0x5025,
+  0x367a, 0x5026, 0x345d, 0x4330, 0x3c67, 0x5027, 0x5028, 0x5029,
+  0x4735, 0x3557, 0x4737, 0x4663, 0x3843, 0x4b33, 0x6949, 0x502a,
+  0x3e68, 0x502b, 0x3235, 0x3665, 0x3870, 0x4c69, 0x5626, 0x4d70,
+  0x467d, 0x3425, 0x3535, 0x502c, 0x502d, 0x4e3b, 0x4d3d, 0x4168,
+  0x502f, 0x3b76, 0x4673, 0x5032, 0x313e, 0x385f, 0x385e, 0x3066,
+  0x4f4b, 0x4f4a, 0x3a33, 0x3021, 0x5033, 0x5034, 0x5035, 0x4b34,
+  0x5036, 0x3872, 0x3067, 0x4b72, 0x357c, 0x357d, 0x357e, 0x4462,
+  0x4e3c, 0x5037, 0x5038, 0x5039, 0x3f4d, 0x3d3a, 0x3f4e, 0x503e,
+  0x503c, 0x503d, 0x3558, 0x3a23, 0x3270, 0x503b, 0x503a, 0x4a29,
+  0x3b46, 0x3b45, 0x423e, 0x503f, 0x4955, 0x4067, 0x2138, 0x5040,
+  0x5042, 0x4265, 0x4e61, 0x304a, 0x5041, 0x323e, 0x3644, 0x4367,
+  0x376f, 0x5043, 0x4724, 0x346b, 0x5044, 0x304b, 0x3860, 0x346c,
+  0x497a, 0x4832, 0x3559, 0x3271, 0x5067, 0x4541, 0x476c, 0x5046,
+  0x483c, 0x4e62, 0x3f2d, 0x3b47, 0x3b77, 0x3240, 0x4451, 0x4322,
+  0x504a, 0x304c, 0x4463, 0x3d3b, 0x3a34, 0x4d24, 0x424e, 0x323f,
+  0x5049, 0x4d3e, 0x5045, 0x5047, 0x3a6e, 0x5048, 0x5524, 0x5050,
+  0x5053, 0x5051, 0x3242, 0x4a3b, 0x504b, 0x504f, 0x3873, 0x3b48,
+  0x3426, 0x5054, 0x504c, 0x4e63, 0x3b78, 0x504d, 0x5052, 0x5055,
+  0x504e, 0x3621, 0x304d, 0x3622, 0x3241, 0x5525, 0x4b79, 0x496e,
+  0x3874, 0x3f2f, 0x4e37, 0x4a58, 0x3738, 0x4225, 0x3264, 0x3d53,
+  0x5059, 0x505e, 0x505c, 0x5057, 0x422f, 0x505a, 0x505d, 0x505b,
+  0x4a5d, 0x5058, 0x3f2e, 0x4b73, 0x505f, 0x5060, 0x3d24, 0x506d,
+  0x4750, 0x4936, 0x5068, 0x4a70, 0x3236, 0x506c, 0x5066, 0x506f,
+  0x4152, 0x3844, 0x475c, 0x6047, 0x506e, 0x455d, 0x5063, 0x3876,
+  0x3875, 0x5061, 0x3c5a, 0x5069, 0x4a6f, 0x434d, 0x5065, 0x3771,
+  0x5062, 0x506a, 0x5064, 0x4e51, 0x506b, 0x4f41, 0x3666, 0x3770,
+  0x5070, 0x5071, 0x5075, 0x304e, 0x4a50, 0x5074, 0x5073, 0x5077,
+  0x5076, 0x4464, 0x3772, 0x5078, 0x3c45, 0x4226, 0x4465, 0x3676,
+  0x5079, 0x3536, 0x507a, 0x507c, 0x4b35, 0x3766, 0x3b31, 0x4877,
+  0x507b, 0x3a45, 0x4d43, 0x507e, 0x5123, 0x507d, 0x3a44, 0x3d7d,
+  0x3739, 0x5124, 0x364f, 0x5121, 0x5122, 0x462f, 0x417c, 0x3623,
+  0x4b4d, 0x5125, 0x4e3d, 0x5126, 0x5129, 0x5127, 0x414e, 0x5128,
+  0x512a, 0x512c, 0x512b, 0x4a48, 0x3537, 0x512e, 0x512f, 0x322f,
+  0x512d, 0x3c74, 0x5132, 0x5131, 0x5130, 0x5056, 0x5133, 0x3d7e,
+  0x5134, 0x4d25, 0x4c59, 0x5136, 0x5135, 0x5138, 0x5137, 0x5139,
+  0x513a, 0x3074, 0x3835, 0x373b, 0x3d3c, 0x437b, 0x3624, 0x4068,
+  0x3877, 0x396e, 0x513c, 0x4c48, 0x4546, 0x3b79, 0x513b, 0x513d,
+  0x455e, 0x3375, 0x513e, 0x467e, 0x4134, 0x5140, 0x5141, 0x482c,
+  0x3878, 0x4f3b, 0x5142, 0x3626, 0x4a3c, 0x4236, 0x3671, 0x4535,
+  0x3773, 0x5143, 0x5144, 0x4662, 0x315f, 0x5147, 0x3a7d, 0x5146,
+  0x3a46, 0x5148, 0x666e, 0x5149, 0x4b41, 0x514a, 0x514b, 0x514c,
+  0x3e69, 0x3c4c, 0x3427, 0x514f, 0x514d, 0x4c3d, 0x514e, 0x495a,
+  0x5150, 0x5151, 0x5152, 0x455f, 0x5156, 0x5154, 0x5155, 0x5153,
+  0x3a63, 0x5157, 0x4c6a, 0x4e64, 0x5158, 0x4028, 0x5159, 0x3d5a,
+  0x515a, 0x437c, 0x4e3f, 0x4560, 0x5245, 0x515b, 0x7425, 0x3645,
+  0x515c, 0x4b5e, 0x3d68, 0x427c, 0x515e, 0x4664, 0x515f, 0x5160,
+  0x332e, 0x5161, 0x3627, 0x464c, 0x317a, 0x3d50, 0x4821, 0x5162,
+  0x4561, 0x3f4f, 0x5163, 0x4a2c, 0x405a, 0x3422, 0x3429, 0x5164,
+  0x5166, 0x373a, 0x5165, 0x4e73, 0x3d69, 0x483d, 0x4a4c, 0x5167,
+  0x4d78, 0x5168, 0x5169, 0x457e, 0x516a, 0x4029, 0x3a7e, 0x3774,
+  0x516b, 0x3b49, 0x396f, 0x4466, 0x516d, 0x4227, 0x3a6f, 0x516e,
+  0x516f, 0x4130, 0x516c, 0x5171, 0x4b36, 0x3964, 0x5170, 0x3775,
+  0x3a5e, 0x476d, 0x5174, 0x5172, 0x497b, 0x3e6a, 0x517b, 0x3364,
+  0x5175, 0x5173, 0x414f, 0x5177, 0x5176, 0x3344, 0x3760, 0x517c,
+  0x4e2d, 0x5178, 0x517d, 0x517a, 0x5179, 0x4e4f, 0x3879, 0x3243,
+  0x4e74, 0x3d75, 0x4558, 0x3965, 0x5222, 0x5223, 0x4e65, 0x4f2b,
+  0x5225, 0x387a, 0x5224, 0x332f, 0x5226, 0x4b56, 0x443c, 0x4d26,
+  0x4a59, 0x5227, 0x7055, 0x4630, 0x5228, 0x342a, 0x4c33, 0x3e21,
+  0x5229, 0x4a67, 0x522d, 0x402a, 0x522a, 0x3650, 0x522b, 0x342b,
+  0x372e, 0x522e, 0x522f, 0x5230, 0x5231, 0x3c5b, 0x387b, 0x4c5e,
+  0x4c68, 0x4677, 0x4a71, 0x5232, 0x5233, 0x5235, 0x5237, 0x5236,
+  0x5238, 0x323d, 0x4b4c, 0x3a7c, 0x5239, 0x4159, 0x3e22, 0x3629,
+  0x523a, 0x485b, 0x523b, 0x523c, 0x523d, 0x523e, 0x4924, 0x3668,
+  0x3065, 0x463f, 0x523f, 0x3d3d, 0x4069, 0x5241, 0x5240, 0x3e23,
+  0x3861, 0x5243, 0x483e, 0x5244, 0x485c, 0x4234, 0x426e, 0x3628,
+  0x466e, 0x4331, 0x476e, 0x4b4e, 0x5246, 0x406a, 0x3735, 0x5247,
+  0x5248, 0x312c, 0x3075, 0x346d, 0x4228, 0x3551, 0x4d71, 0x524b,
+  0x3237, 0x524a, 0x362a, 0x524c, 0x4c71, 0x524d, 0x4e52, 0x387c,
+  0x3836, 0x524e, 0x5250, 0x524f, 0x3f5f, 0x3139, 0x315e, 0x5251,
+  0x5252, 0x3837, 0x5253, 0x356e, 0x3b32, 0x5254, 0x4b74, 0x3a35,
+  0x355a, 0x4d27, 0x4150, 0x483f, 0x3c7d, 0x3d47, 0x3c68, 0x3c75,
+  0x3d76, 0x4840, 0x5257, 0x3143, 0x4151, 0x387d, 0x3845, 0x3667,
+  0x525b, 0x4321, 0x427e, 0x362b, 0x3e24, 0x525c, 0x525a, 0x3244,
+  0x4266, 0x3c38, 0x3b4b, 0x3126, 0x3370, 0x3966, 0x3b4a, 0x525d,
+  0x525e, 0x3549, 0x3346, 0x3967, 0x3548, 0x445f, 0x3125, 0x4631,
+  0x4c3e, 0x3921, 0x4d79, 0x4547, 0x387e, 0x372f, 0x5267, 0x3663,
+  0x4b4a, 0x485d, 0x5266, 0x345e, 0x5261, 0x5262, 0x5264, 0x5265,
+  0x355b, 0x3f61, 0x4a2d, 0x5263, 0x525f, 0x3863, 0x5260, 0x4f24,
+  0x4a72, 0x4468, 0x3862, 0x3970, 0x5268, 0x465d, 0x526c, 0x3c7e,
+  0x3c76, 0x526f, 0x526d, 0x4c23, 0x526a, 0x5273, 0x526e, 0x5271,
+  0x3846, 0x4c3f, 0x5272, 0x5274, 0x5276, 0x3a70, 0x4f42, 0x526b,
+  0x5269, 0x5275, 0x5270, 0x5278, 0x5323, 0x527a, 0x527e, 0x5321,
+  0x527b, 0x533e, 0x3a69, 0x3331, 0x5279, 0x5325, 0x3076, 0x5324,
+  0x3025, 0x494a, 0x5322, 0x527c, 0x5277, 0x527d, 0x3a48, 0x5326,
+  0x3077, 0x532f, 0x5327, 0x5328, 0x3e25, 0x4b69, 0x532d, 0x532c,
+  0x452f, 0x532e, 0x532b, 0x3134, 0x3a36, 0x3f30, 0x5329, 0x4562,
+  0x532a, 0x3022, 0x5334, 0x4d23, 0x3e27, 0x533a, 0x5339, 0x5330,
+  0x4243, 0x5331, 0x426f, 0x5336, 0x3e26, 0x5333, 0x4c64, 0x373c,
+  0x5337, 0x5338, 0x5335, 0x533b, 0x5332, 0x5341, 0x5346, 0x5342,
+  0x533d, 0x5347, 0x4131, 0x5349, 0x3922, 0x533f, 0x437d, 0x5343,
+  0x533c, 0x342d, 0x346e, 0x3365, 0x5344, 0x5340, 0x3776, 0x534a,
+  0x5348, 0x4153, 0x354a, 0x362c, 0x5345, 0x3674, 0x3144, 0x534e,
+  0x534c, 0x5427, 0x5351, 0x534b, 0x534f, 0x534d, 0x3b4c, 0x5350,
+  0x5353, 0x5358, 0x5356, 0x5355, 0x4332, 0x3245, 0x5352, 0x5354,
+  0x3e28, 0x3133, 0x5357, 0x325e, 0x5362, 0x3e7c, 0x535e, 0x535c,
+  0x535d, 0x535f, 0x313d, 0x4139, 0x5359, 0x535a, 0x337a, 0x5361,
+  0x346f, 0x5364, 0x5360, 0x5363, 0x4a2e, 0x4655, 0x4838, 0x5366,
+  0x5365, 0x3345, 0x5367, 0x536a, 0x5369, 0x5368, 0x4739, 0x536b,
+  0x536c, 0x536e, 0x536d, 0x5370, 0x5373, 0x5371, 0x536f, 0x5372,
+  0x5374, 0x5375, 0x5376, 0x5377, 0x5378, 0x5145, 0x3c7c, 0x3b4d,
+  0x3273, 0x3078, 0x4344, 0x5379, 0x3a24, 0x304f, 0x3f5e, 0x537a,
+  0x3847, 0x3971, 0x537c, 0x537b, 0x4a60, 0x537d, 0x5421, 0x537e,
+  0x5422, 0x5423, 0x3777, 0x3160, 0x5424, 0x5426, 0x5425, 0x5428,
+  0x455a, 0x5429, 0x3035, 0x3a5f, 0x373d, 0x434f, 0x542a, 0x542b,
+  0x542d, 0x542e, 0x3a64, 0x3651, 0x4b37, 0x542c, 0x542f, 0x3a41,
+  0x3923, 0x5433, 0x3a25, 0x4333, 0x5430, 0x445a, 0x5434, 0x3f62,
+  0x5432, 0x5435, 0x373f, 0x5436, 0x5437, 0x3924, 0x3340, 0x5439,
+  0x543a, 0x543b, 0x5438, 0x5431, 0x543c, 0x543d, 0x4b64, 0x3e6b,
+  0x543f, 0x5440, 0x543e, 0x5442, 0x4738, 0x3068, 0x4956, 0x5443,
+  0x3e7d, 0x3c39, 0x475d, 0x3470, 0x3a6b, 0x4b59, 0x4632, 0x3778,
+  0x424f, 0x5441, 0x5444, 0x4244, 0x5445, 0x5446, 0x5448, 0x4469,
+  0x342e, 0x7421, 0x3161, 0x4a73, 0x3e6c, 0x4548, 0x3a66, 0x544e,
+  0x4a3d, 0x4e5d, 0x3274, 0x544a, 0x413a, 0x544d, 0x4563, 0x4549,
+  0x4564, 0x4839, 0x444d, 0x3a49, 0x5449, 0x3176, 0x4536, 0x544b,
+  0x5447, 0x3f50, 0x544f, 0x3d4e, 0x362d, 0x5450, 0x4a68, 0x417d,
+  0x4446, 0x5452, 0x4b4f, 0x5453, 0x5458, 0x4a2f, 0x5457, 0x5451,
+  0x5454, 0x5456, 0x3a26, 0x4a49, 0x5459, 0x4345, 0x3275, 0x3e6d,
+  0x545b, 0x545a, 0x3968, 0x545c, 0x545e, 0x545d, 0x5460, 0x5455,
+  0x5462, 0x5461, 0x545f, 0x3b4e, 0x3f51, 0x4154, 0x5463, 0x403c,
+  0x306d, 0x4764, 0x445b, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468,
+  0x5469, 0x4a51, 0x546a, 0x3246, 0x546b, 0x4d3c, 0x3330, 0x5249,
+  0x3d48, 0x423f, 0x546c, 0x4c6b, 0x4c34, 0x546e, 0x4267, 0x4537,
+  0x4240, 0x4957, 0x546f, 0x5470, 0x317b, 0x3c3a, 0x5471, 0x3050,
+  0x5472, 0x5473, 0x3162, 0x3471, 0x4660, 0x4a74, 0x5477, 0x4155,
+  0x5476, 0x3740, 0x4b5b, 0x5475, 0x4565, 0x5479, 0x5478, 0x547b,
+  0x547a, 0x317c, 0x547c, 0x3e29, 0x547e, 0x4325, 0x547d, 0x4a33,
+  0x3d77, 0x455b, 0x5521, 0x3925, 0x5522, 0x4721, 0x485e, 0x4c51,
+  0x4725, 0x552b, 0x3538, 0x4d45, 0x4c2f, 0x562c, 0x5523, 0x5526,
+  0x4245, 0x4b38, 0x454a, 0x5527, 0x4b65, 0x3a4a, 0x3e2a, 0x5528,
+  0x3b50, 0x3b4f, 0x3039, 0x3848, 0x402b, 0x3051, 0x552c, 0x552d,
+  0x552a, 0x3138, 0x342f, 0x5529, 0x4c45, 0x4931, 0x3028, 0x3079,
+  0x3b51, 0x3052, 0x3023, 0x5532, 0x5530, 0x4c3c, 0x5533, 0x5531,
+  0x552f, 0x3f31, 0x552e, 0x4a5a, 0x3864, 0x5537, 0x5538, 0x3e2b,
+  0x5534, 0x4f2c, 0x474c, 0x5536, 0x3a27, 0x5539, 0x4958, 0x553a,
+  0x5535, 0x4c3b, 0x475e, 0x553b, 0x4932, 0x553c, 0x5540, 0x553d,
+  0x3247, 0x553f, 0x3c3b, 0x553e, 0x3779, 0x554c, 0x5545, 0x5542,
+  0x4364, 0x5541, 0x5543, 0x5544, 0x5546, 0x5547, 0x3472, 0x5549,
+  0x5548, 0x554a, 0x3e6e, 0x554d, 0x445c, 0x3145, 0x554b, 0x554e,
+  0x554f, 0x5552, 0x5550, 0x5551, 0x3b52, 0x5553, 0x3926, 0x5554,
+  0x3b7a, 0x4238, 0x5555, 0x5556, 0x3b5a, 0x3927, 0x4c52, 0x3528,
+  0x3849, 0x5557, 0x3358, 0x5558, 0x4239, 0x5559, 0x5623, 0x555a,
+  0x555b, 0x555c, 0x555e, 0x555f, 0x5560, 0x4270, 0x3127, 0x3c69,
+  0x3042, 0x4157, 0x3430, 0x3c35, 0x3928, 0x4566, 0x3d21, 0x3431,
+  0x4368, 0x446a, 0x3038, 0x3539, 0x4a75, 0x3c42, 0x3552, 0x406b,
+  0x3c3c, 0x4d28, 0x5561, 0x355c, 0x3a4b, 0x3332, 0x3163, 0x3e2c,
+  0x3248, 0x5562, 0x4d46, 0x3d49, 0x3c64, 0x5563, 0x3473, 0x4652,
+  0x4c29, 0x5564, 0x5565, 0x4959, 0x5567, 0x3428, 0x3677, 0x5566,
+  0x3432, 0x3f32, 0x556b, 0x3b21, 0x3249, 0x556a, 0x5568, 0x556c,
+  0x5569, 0x472b, 0x5c4d, 0x3f33, 0x556d, 0x4e40, 0x556e, 0x5570,
+  0x437e, 0x556f, 0x4023, 0x3b7b, 0x4250, 0x3c77, 0x4975, 0x406c,
+  0x3c4d, 0x5571, 0x3e2d, 0x5572, 0x5573, 0x3053, 0x423a, 0x3f52,
+  0x5574, 0x4633, 0x3e2e, 0x3e2f, 0x5575, 0x406d, 0x3e30, 0x5576,
+  0x5577, 0x4c60, 0x5578, 0x3646, 0x3d22, 0x5579, 0x557a, 0x3c5c,
+  0x3f2c, 0x4674, 0x3f54, 0x4878, 0x4722, 0x3649, 0x557b, 0x356f,
+  0x557c, 0x367e, 0x464f, 0x3230, 0x3b53, 0x557d, 0x5622, 0x5621,
+  0x367d, 0x557e, 0x4538, 0x4230, 0x454b, 0x3c48, 0x4158, 0x4d7a,
+  0x5624, 0x5625, 0x4656, 0x3b33, 0x5627, 0x5628, 0x5629, 0x3474,
+  0x562a, 0x562b, 0x322c, 0x413b, 0x3464, 0x562d, 0x4c28, 0x4252,
+  0x3359, 0x562f, 0x5631, 0x345f, 0x562e, 0x5630, 0x5633, 0x5632,
+  0x5634, 0x5635, 0x463d, 0x362e, 0x3265, 0x5636, 0x563b, 0x5639,
+  0x4a77, 0x4a76, 0x4567, 0x5638, 0x3d54, 0x5637, 0x3f72, 0x563c,
+  0x3a6a, 0x5642, 0x5643, 0x563d, 0x3333, 0x563e, 0x5647, 0x5646,
+  0x5645, 0x5641, 0x5640, 0x5644, 0x4a78, 0x564b, 0x5648, 0x564a,
+  0x4d72, 0x5649, 0x563f, 0x3f73, 0x564c, 0x3a37, 0x564d, 0x564e,
+  0x5651, 0x5650, 0x564f, 0x4568, 0x563a, 0x5657, 0x5653, 0x5652,
+  0x5654, 0x5655, 0x5658, 0x4e66, 0x5659, 0x5656, 0x565a, 0x3460,
+  0x565b, 0x565d, 0x565c, 0x565e, 0x565f, 0x406e, 0x3d23, 0x3d64,
+  0x4163, 0x3929, 0x3a38, 0x392a, 0x3570, 0x5660, 0x3a39, 0x384a,
+  0x5661, 0x4c26, 0x4743, 0x5662, 0x392b, 0x342c, 0x4327, 0x3652,
+  0x3b54, 0x495b, 0x4841, 0x5663, 0x3475, 0x5666, 0x4421, 0x5665,
+  0x5664, 0x5667, 0x446b, 0x3f63, 0x3b55, 0x404a, 0x4253, 0x3522,
+  0x4422, 0x5668, 0x5669, 0x3e6f, 0x4b39, 0x566c, 0x566b, 0x566a,
+  0x497d, 0x5673, 0x4b5a, 0x566d, 0x566f, 0x4b6b, 0x566e, 0x5670,
+  0x4828, 0x5671, 0x4a3e, 0x5672, 0x3433, 0x4a3f, 0x472f, 0x5674,
+  0x5675, 0x392c, 0x3434, 0x5676, 0x3838, 0x4d44, 0x4d29, 0x3476,
+  0x5678, 0x4423, 0x392d, 0x3e31, 0x485f, 0x3e32, 0x3d78, 0x446c,
+  0x4a79, 0x4539, 0x392e, 0x495c, 0x5679, 0x4559, 0x3a42, 0x384b,
+  0x446d, 0x3043, 0x3d6e, 0x392f, 0x4d47, 0x567a, 0x567b, 0x4751,
+  0x567c, 0x4e77, 0x4f2d, 0x567e, 0x567d, 0x3347, 0x5721, 0x5724,
+  0x5725, 0x5723, 0x4940, 0x3e33, 0x5727, 0x5726, 0x5722, 0x5728,
+  0x5729, 0x572a, 0x572d, 0x572b, 0x572c, 0x572e, 0x3164, 0x446e,
+  0x572f, 0x377a, 0x3276, 0x4736, 0x5730, 0x467b, 0x4a5b, 0x5731,
+  0x4f2e, 0x5732, 0x4a40, 0x5735, 0x5021, 0x5031, 0x3c30, 0x4675,
+  0x5736, 0x355d, 0x4424, 0x307a, 0x5737, 0x4a26, 0x3930, 0x4350,
+  0x446f, 0x4c6f, 0x3839, 0x384c, 0x5738, 0x5739, 0x573f, 0x3c65,
+  0x4425, 0x362f, 0x573a, 0x492b, 0x4346, 0x573b, 0x573c, 0x3630,
+  0x573d, 0x573e, 0x5740, 0x4576, 0x5741, 0x5742, 0x5743, 0x5734,
+  0x5733, 0x5744, 0x3741, 0x4927, 0x3a4c, 0x4937, 0x4426, 0x494b,
+  0x5745, 0x3e34, 0x3146, 0x5746, 0x5747, 0x4c72, 0x4860, 0x574a,
+  0x317d, 0x402c, 0x5749, 0x5748, 0x3742, 0x4254, 0x574e, 0x574c,
+  0x574b, 0x4e27, 0x3865, 0x3d79, 0x574d, 0x454c, 0x3d3e, 0x4640,
+  0x5751, 0x5750, 0x574f, 0x5752, 0x3866, 0x5753, 0x497c, 0x3d5b,
+  0x5754, 0x4879, 0x4641, 0x4427, 0x4530, 0x5755, 0x352b, 0x3f34,
+  0x492c, 0x3477, 0x4726, 0x5756, 0x3b56, 0x4b3a, 0x4b3b, 0x317e,
+  0x575b, 0x4369, 0x5758, 0x3277, 0x582d, 0x575a, 0x4730, 0x5759,
+  0x5757, 0x397a, 0x575d, 0x5763, 0x5769, 0x5761, 0x455c, 0x5766,
+  0x495d, 0x5760, 0x5765, 0x4e67, 0x3b57, 0x4255, 0x575e, 0x355e,
+  0x5768, 0x402d, 0x3165, 0x5762, 0x3278, 0x5767, 0x3631, 0x5764,
+  0x576a, 0x576c, 0x5776, 0x5774, 0x5771, 0x5770, 0x4e78, 0x5772,
+  0x3632, 0x3931, 0x3d7a, 0x5779, 0x576b, 0x576f, 0x575f, 0x327a,
+  0x5773, 0x5775, 0x4351, 0x3a28, 0x3238, 0x576d, 0x5778, 0x5777,
+  0x3633, 0x4229, 0x3366, 0x3743, 0x576e, 0x577a, 0x577d, 0x5821,
+  0x3c3d, 0x5827, 0x4470, 0x577b, 0x5825, 0x3279, 0x5823, 0x5824,
+  0x577e, 0x5822, 0x3867, 0x4d2a, 0x3435, 0x3159, 0x5826, 0x473a,
+  0x302d, 0x4861, 0x575c, 0x582c, 0x5830, 0x4c65, 0x5829, 0x4569,
+  0x582e, 0x3e70, 0x582f, 0x4657, 0x4f47, 0x582b, 0x5831, 0x397b,
+  0x404b, 0x3054, 0x582a, 0x5828, 0x415a, 0x577c, 0x3b34, 0x4246,
+  0x583d, 0x415b, 0x5838, 0x5835, 0x5836, 0x3c66, 0x5839, 0x583c,
+  0x5837, 0x3d25, 0x583a, 0x5834, 0x4c7c, 0x4c7b, 0x583e, 0x583f,
+  0x3055, 0x5833, 0x3672, 0x3026, 0x3436, 0x583b, 0x5843, 0x5842,
+  0x5847, 0x5848, 0x5846, 0x5849, 0x5841, 0x5845, 0x584a, 0x584b,
+  0x5840, 0x3b7c, 0x5844, 0x4256, 0x3932, 0x5832, 0x3f35, 0x5858,
+  0x4a69, 0x584e, 0x584f, 0x5850, 0x5857, 0x5856, 0x4b7d, 0x3437,
+  0x5854, 0x3745, 0x3334, 0x5851, 0x4e38, 0x5853, 0x3056, 0x5855,
+  0x584c, 0x5852, 0x5859, 0x3744, 0x584d, 0x4d5d, 0x4d2b, 0x585c,
+  0x5860, 0x417e, 0x4e79, 0x5861, 0x585e, 0x585b, 0x585a, 0x585f,
+  0x4a30, 0x4634, 0x3746, 0x5862, 0x585d, 0x5863, 0x377b, 0x3231,
+  0x586b, 0x3438, 0x5869, 0x586a, 0x3a29, 0x5868, 0x5866, 0x5865,
+  0x586c, 0x5864, 0x586e, 0x327b, 0x5870, 0x586f, 0x4428, 0x5873,
+  0x5871, 0x5867, 0x377c, 0x5872, 0x5876, 0x5875, 0x5877, 0x5874,
+  0x5878, 0x5879, 0x587a, 0x4a6a, 0x587c, 0x587b, 0x3d3f, 0x402e,
+  0x3266, 0x327c, 0x587d, 0x303f, 0x404c, 0x587e, 0x6c43, 0x5921,
+  0x3761, 0x5922, 0x406f, 0x5923, 0x5924, 0x353a, 0x5925, 0x5926,
+  0x5927, 0x4257, 0x384d, 0x4c61, 0x4b3c, 0x3d6a, 0x5928, 0x4070,
+  0x6e3d, 0x4862, 0x3c6a, 0x3a4d, 0x5929, 0x4247, 0x4a27, 0x4271,
+  0x592c, 0x592a, 0x592d, 0x592b, 0x592e, 0x4a31, 0x3037, 0x495e,
+  0x4863, 0x592f, 0x5932, 0x3e35, 0x353b, 0x5930, 0x5937, 0x3e36,
+  0x5931, 0x4744, 0x4d5e, 0x5933, 0x5934, 0x5938, 0x456a, 0x5935,
+  0x3933, 0x405e, 0x5946, 0x4834, 0x4272, 0x4864, 0x5a2d, 0x4a7a,
+  0x4471, 0x4b75, 0x593b, 0x3221, 0x436a, 0x5944, 0x4334, 0x593e,
+  0x5945, 0x5940, 0x5947, 0x5943, 0x5942, 0x476f, 0x593c, 0x327d,
+  0x593a, 0x3571, 0x4273, 0x5936, 0x5939, 0x3934, 0x405b, 0x3e37,
+  0x5941, 0x4752, 0x3572, 0x3348, 0x3367, 0x3f21, 0x5949, 0x594e,
+  0x594a, 0x377d, 0x594f, 0x3b22, 0x3969, 0x3d26, 0x593d, 0x3b7d,
+  0x594c, 0x3b58, 0x594d, 0x3044, 0x5948, 0x4429, 0x3573, 0x3634,
+  0x594b, 0x3027, 0x3a43, 0x3f36, 0x4472, 0x4854, 0x5951, 0x415e,
+  0x422a, 0x3b2b, 0x5952, 0x5954, 0x5950, 0x4a61, 0x443d, 0x415c,
+  0x4a7b, 0x3c4e, 0x5960, 0x595f, 0x3f78, 0x377e, 0x5959, 0x3e39,
+  0x4668, 0x4731, 0x5957, 0x415d, 0x3c78, 0x595c, 0x3e38, 0x5956,
+  0x595b, 0x4753, 0x5955, 0x3721, 0x335d, 0x595d, 0x4e2b, 0x3a4e,
+  0x4335, 0x595a, 0x405c, 0x3935, 0x3f64, 0x3166, 0x413c, 0x5958,
+  0x3545, 0x3747, 0x444f, 0x595e, 0x415f, 0x5961, 0x5963, 0x4237,
+  0x5969, 0x5964, 0x5966, 0x4941, 0x4473, 0x5967, 0x4d2c, 0x4d48,
+  0x3439, 0x302e, 0x5965, 0x5962, 0x3478, 0x3167, 0x5968, 0x4d49,
+  0x596c, 0x423b, 0x5973, 0x596d, 0x596a, 0x5971, 0x5953, 0x596e,
+  0x5972, 0x4842, 0x456b, 0x596b, 0x596f, 0x3748, 0x3a71, 0x405d,
+  0x5977, 0x4526, 0x5974, 0x4b60, 0x5975, 0x5976, 0x4c4e, 0x4022,
+  0x3762, 0x597d, 0x3b35, 0x597a, 0x5979, 0x4732, 0x4635, 0x4531,
+  0x597b, 0x597c, 0x496f, 0x4745, 0x3b23, 0x4071, 0x4b50, 0x3349,
+  0x5a25, 0x597e, 0x4d4a, 0x5a27, 0x5a23, 0x5a24, 0x4160, 0x5a22,
+  0x593f, 0x5a26, 0x5a21, 0x5a2b, 0x5a2c, 0x4527, 0x5a2e, 0x3b24,
+  0x5a29, 0x353c, 0x5a2f, 0x5a28, 0x5a33, 0x5a32, 0x5a31, 0x5a34,
+  0x5a36, 0x3e71, 0x5a35, 0x5a39, 0x5a37, 0x5a38, 0x5970, 0x5a3b,
+  0x5a3a, 0x5978, 0x5a3c, 0x5a30, 0x3b59, 0x5a3d, 0x5a3e, 0x5a40,
+  0x5a3f, 0x5a41, 0x327e, 0x3936, 0x4a7c, 0x402f, 0x384e, 0x5a43,
+  0x5a46, 0x4952, 0x355f, 0x5a45, 0x5a44, 0x4754, 0x5a47, 0x3635,
+  0x5a49, 0x5a48, 0x343a, 0x3b36, 0x4658, 0x3749, 0x3f74, 0x5a4a,
+  0x4030, 0x4528, 0x495f, 0x5a4b, 0x5a4c, 0x5a4d, 0x4a38, 0x555d,
+  0x4046, 0x494c, 0x3a58, 0x4865, 0x4843, 0x454d, 0x4e41, 0x5a4f,
+  0x3c50, 0x5a50, 0x3036, 0x3654, 0x404d, 0x4960, 0x5a51, 0x3b42,
+  0x4347, 0x3b5b, 0x3f37, 0x5a52, 0x4a7d, 0x3177, 0x3b5c, 0x5a55,
+  0x5a53, 0x5a56, 0x4e39, 0x5a54, 0x407b, 0x5a57, 0x4232, 0x5a58,
+  0x347a, 0x5a5a, 0x5a59, 0x5a5b, 0x5a5c, 0x347b, 0x467c, 0x4336,
+  0x356c, 0x3b5d, 0x4161, 0x3d5c, 0x3030, 0x5a5d, 0x3222, 0x5a61,
+  0x3937, 0x5a60, 0x3a2b, 0x3e3a, 0x5a5f, 0x3e3b, 0x4c40, 0x3a2a,
+  0x3057, 0x404e, 0x5a66, 0x4031, 0x3147, 0x3d55, 0x4b66, 0x3a72,
+  0x3e3c, 0x4027, 0x5a65, 0x5a63, 0x5a64, 0x436b, 0x5b26, 0x5a6a,
+  0x3b7e, 0x3938, 0x5a68, 0x5a69, 0x3f38, 0x5a67, 0x3b2f, 0x5a6c,
+  0x5a6b, 0x5a70, 0x5a71, 0x5a6d, 0x3322, 0x5a6e, 0x5a6f, 0x4855,
+  0x4961, 0x374a, 0x5a72, 0x4032, 0x3e3d, 0x4352, 0x3647, 0x5a73,
+  0x5a77, 0x324b, 0x5a74, 0x5a76, 0x5a75, 0x3d6b, 0x4348, 0x3045,
+  0x5a78, 0x5a79, 0x442a, 0x4e71, 0x3b43, 0x4a6b, 0x4b3d, 0x5b22,
+  0x5a7b, 0x5a7e, 0x5a7d, 0x5a7a, 0x5b21, 0x465e, 0x5a7c, 0x5b23,
+  0x3d6c, 0x5b24, 0x4d4b, 0x4778, 0x5b25, 0x5b27, 0x5b28, 0x5b29,
+  0x364a, 0x3148, 0x3939, 0x5b2a, 0x5b2b, 0x3d71, 0x4162, 0x5258,
+  0x413e, 0x413d, 0x4258, 0x3a47, 0x5072, 0x376e, 0x4d2d, 0x4a7e,
+  0x497e, 0x5b2c, 0x3a73, 0x443f, 0x5b2d, 0x4f2f, 0x4b3e, 0x442b,
+  0x5b2e, 0x347c, 0x5b2f, 0x5b30, 0x4c5a, 0x4c24, 0x4b76, 0x4b5c,
+  0x3b25, 0x5b32, 0x3c6b, 0x4b51, 0x5b34, 0x5b37, 0x5b36, 0x3479,
+  0x3560, 0x5b33, 0x5b35, 0x5b38, 0x3f79, 0x4d7b, 0x3049, 0x3a60,
+  0x423c, 0x3c5d, 0x3e73, 0x5b3b, 0x454e, 0x5b39, 0x422b, 0x5b3a,
+  0x3e72, 0x4c5d, 0x5b3c, 0x5b3d, 0x4d68, 0x5b42, 0x393a, 0x4755,
+  0x5b3f, 0x456c, 0x5a5e, 0x5a62, 0x354f, 0x4747, 0x5b41, 0x3e3e,
+  0x4844, 0x5b47, 0x487a, 0x5b3e, 0x5b44, 0x5b43, 0x404f, 0x4b6d,
+  0x4e53, 0x4b67, 0x324c, 0x3b5e, 0x4f48, 0x5b46, 0x3f75, 0x5b45,
+  0x5b40, 0x384f, 0x5b4c, 0x5b4a, 0x324d, 0x5b48, 0x5b4e, 0x5b54,
+  0x4248, 0x4a41, 0x5b56, 0x4922, 0x5b55, 0x4770, 0x4b3f, 0x343b,
+  0x4077, 0x3d40, 0x4453, 0x4d2e, 0x5b51, 0x5b50, 0x5b52, 0x5b4f,
+  0x5b57, 0x5b4d, 0x5b4b, 0x5b53, 0x5b49, 0x436c, 0x4c78, 0x3c46,
+  0x3a74, 0x3a3a, 0x4b6f, 0x3341, 0x444e, 0x464a, 0x3149, 0x4072,
+  0x4034, 0x372a, 0x5b59, 0x393b, 0x337c, 0x5b5b, 0x3374, 0x5b61,
+  0x5b5e, 0x4073, 0x334b, 0x3a2c, 0x334a, 0x3a4f, 0x5b5c, 0x3765,
+  0x374b, 0x456d, 0x5b5a, 0x3046, 0x5b5d, 0x5b5f, 0x364d, 0x372c,
+  0x343c, 0x354b, 0x5b62, 0x3a79, 0x4b71, 0x3b37, 0x5b63, 0x4930,
+  0x5b6f, 0x3233, 0x5b64, 0x5b75, 0x5b65, 0x4e42, 0x5b6c, 0x475f,
+  0x5b74, 0x5b67, 0x3034, 0x5b69, 0x393c, 0x5b6b, 0x5b6a, 0x5b66,
+  0x5b71, 0x3e3f, 0x546d, 0x3868, 0x4d7c, 0x5b68, 0x4474, 0x3323,
+  0x3a2d, 0x5b60, 0x5b70, 0x3361, 0x5b6e, 0x5b72, 0x456e, 0x347e,
+  0x5c32, 0x4c49, 0x5b77, 0x347d, 0x5b7e, 0x4b40, 0x5c21, 0x5c23,
+  0x5c27, 0x5b79, 0x432a, 0x456f, 0x5c2b, 0x5b7c, 0x5c28, 0x5c22,
+  0x3f39, 0x5c2c, 0x4033, 0x5c2a, 0x343d, 0x4f50, 0x5b76, 0x5c26,
+  0x3058, 0x5b78, 0x4c3a, 0x5b7d, 0x3f22, 0x4447, 0x5b73, 0x5c25,
+  0x3f7a, 0x5c2f, 0x3371, 0x3821, 0x5c31, 0x5b7a, 0x5c30, 0x5c29,
+  0x5b7b, 0x5c2d, 0x5c2e, 0x5c3f, 0x464e, 0x5c24, 0x5c3b, 0x5c3d,
+  0x4458, 0x4d4c, 0x4976, 0x5c38, 0x424a, 0x5c3e, 0x413f, 0x5c35,
+  0x5c42, 0x5c41, 0x466f, 0x5c40, 0x466a, 0x5c44, 0x5c37, 0x3648,
+  0x5c3a, 0x3d5d, 0x4760, 0x5c3c, 0x364b, 0x5c34, 0x5c36, 0x5c33,
+  0x4f30, 0x335a, 0x5c39, 0x5c43, 0x3335, 0x3a67, 0x315d, 0x5c54,
+  0x4f31, 0x5c57, 0x3f3a, 0x5c56, 0x5c55, 0x5c52, 0x5c46, 0x5c63,
+  0x5c45, 0x5c58, 0x5c50, 0x5c4b, 0x5c48, 0x5c49, 0x5c51, 0x7422,
+  0x5c4e, 0x393d, 0x4448, 0x4164, 0x5c4c, 0x5c47, 0x5c4a, 0x4d4d,
+  0x4b6a, 0x5c4f, 0x5c59, 0x5c61, 0x5c5a, 0x5c67, 0x5c65, 0x5c60,
+  0x5c5f, 0x4450, 0x4165, 0x5c5d, 0x5c5b, 0x5c62, 0x5c68, 0x4875,
+  0x5c6e, 0x5c69, 0x5c6c, 0x5c66, 0x4374, 0x4938, 0x5c5c, 0x5c64,
+  0x3e40, 0x4c4f, 0x5c78, 0x5c6b, 0x3822, 0x3223, 0x335f, 0x5c53,
+  0x3e41, 0x5c70, 0x5c77, 0x3c79, 0x3372, 0x432e, 0x5c6d, 0x5c72,
+  0x5c76, 0x3636, 0x354c, 0x5c74, 0x3521, 0x464b, 0x5c73, 0x5c75,
+  0x5c6f, 0x5c71, 0x3360, 0x4349, 0x5c7c, 0x5c7a, 0x3869, 0x5c79,
+  0x5d21, 0x5b58, 0x5c7b, 0x5c7d, 0x5c7e, 0x5d2c, 0x5d28, 0x5b6d,
+  0x5d27, 0x5d26, 0x5d23, 0x5c6a, 0x5d25, 0x5d24, 0x5d2a, 0x4f26,
+  0x5d2d, 0x367b, 0x5d29, 0x5d2b, 0x4827, 0x5d2e, 0x5d32, 0x5d2f,
+  0x4d73, 0x5d30, 0x5c5e, 0x5d33, 0x5d34, 0x3135, 0x5d36, 0x3767,
+  0x3c21, 0x3655, 0x3224, 0x4d5f, 0x5d38, 0x5d37, 0x5d3a, 0x353d,
+  0x3656, 0x343e, 0x5d3d, 0x5d3c, 0x5d3e, 0x324e, 0x4337, 0x5d3f,
+  0x343f, 0x5d41, 0x5d40, 0x5d42, 0x5d43, 0x5d44, 0x3b5f, 0x4035,
+  0x3a21, 0x4970, 0x4a62, 0x4f44, 0x3b75, 0x3a50, 0x4e72, 0x5d45,
+  0x5d46, 0x3b60, 0x5d47, 0x5d48, 0x5d4a, 0x5d49, 0x4b58, 0x3d5e,
+  0x3c6c, 0x3b44, 0x5d4b, 0x5d4d, 0x3f23, 0x5d4c, 0x5d4e, 0x5d4f,
+  0x5d50, 0x5d51, 0x5d52, 0x5d54, 0x5d53, 0x5d55, 0x3225, 0x434a,
+  0x5d56, 0x3b26, 0x334c, 0x5d57, 0x4542, 0x544c, 0x3523, 0x5d58,
+  0x5d59, 0x4a6c, 0x4b68, 0x4647, 0x5d5a, 0x4866, 0x487b, 0x4c53,
+  0x5d5b, 0x5d5d, 0x5d5c, 0x5d5f, 0x5d5e, 0x5d61, 0x3b61, 0x4c31,
+  0x5d62, 0x5d63, 0x3524, 0x5d64, 0x5d66, 0x5d65, 0x3f65, 0x4939,
+  0x314a, 0x4845, 0x4475, 0x3d41, 0x3561, 0x4846, 0x3c2e, 0x5d68,
+  0x3440, 0x3178, 0x4672, 0x5d67, 0x393e, 0x4353, 0x5d69, 0x5d71,
+  0x5d6a, 0x4241, 0x3562, 0x5d72, 0x3768, 0x3525, 0x5d70, 0x5d6e,
+  0x5d6b, 0x4d60, 0x4440, 0x4659, 0x5d6c, 0x5d74, 0x5d73, 0x3723,
+  0x322d, 0x3a3b, 0x5d6d, 0x5d6f, 0x4b57, 0x4274, 0x4b77, 0x5d7c,
+  0x5d7d, 0x324f, 0x4a28, 0x4c7d, 0x5e21, 0x3c23, 0x3e42, 0x5d78,
+  0x5d7e, 0x3168, 0x3637, 0x5d75, 0x5d7a, 0x4074, 0x4771, 0x4867,
+  0x5d77, 0x4b21, 0x5d79, 0x5e24, 0x5e22, 0x5d7b, 0x4b22, 0x4748,
+  0x3563, 0x4525, 0x436d, 0x5e25, 0x5e23, 0x4259, 0x5d76, 0x314b,
+  0x4d4e, 0x5e30, 0x5e2f, 0x4076, 0x5e2c, 0x4d6c, 0x4636, 0x5e26,
+  0x4445, 0x314c, 0x393f, 0x5e29, 0x3d27, 0x5e2e, 0x5e2d, 0x5e28,
+  0x5e2b, 0x3368, 0x5e2a, 0x4749, 0x4e2e, 0x3e74, 0x4075, 0x5e36,
+  0x5e34, 0x494d, 0x5e31, 0x5e33, 0x313a, 0x3940, 0x4f32, 0x333d,
+  0x4962, 0x4d61, 0x3324, 0x3f3b, 0x5e35, 0x5e3a, 0x3e43, 0x4d30,
+  0x5e37, 0x5e32, 0x5e38, 0x4e5e, 0x4573, 0x4642, 0x3336, 0x3155,
+  0x5e3e, 0x5e41, 0x4e43, 0x4d64, 0x5e48, 0x5e42, 0x5e3f, 0x4e54,
+  0x5e45, 0x3d4a, 0x5e47, 0x5e4c, 0x4571, 0x5e4a, 0x5e44, 0x4338,
+  0x5e4b, 0x5e40, 0x5e46, 0x5e4d, 0x307c, 0x5e43, 0x5e4e, 0x3f3c,
+  0x3d5f, 0x4a25, 0x3a2e, 0x5e3b, 0x5e49, 0x453a, 0x4036, 0x3369,
+  0x3a51, 0x3e44, 0x5e3d, 0x3d42, 0x374c, 0x5e3c, 0x5e52, 0x3d6d,
+  0x383a, 0x5e61, 0x5e5b, 0x3574, 0x454f, 0x5e56, 0x5e5f, 0x302f,
+  0x3132, 0x3239, 0x5e58, 0x422c, 0x5e4f, 0x5e51, 0x3941, 0x5e62,
+  0x5e5d, 0x5e55, 0x5e5c, 0x4c2b, 0x5e5a, 0x5e5e, 0x3850, 0x3e45,
+  0x4339, 0x5e54, 0x4d2f, 0x5e57, 0x5e50, 0x4572, 0x5e53, 0x5e59,
+  0x4f51, 0x3c3e, 0x4b7e, 0x5e63, 0x482e, 0x5e6f, 0x383b, 0x3d60,
+  0x5e65, 0x4e2f, 0x3942, 0x5e72, 0x306e, 0x5e70, 0x5e64, 0x5e6a,
+  0x5e6c, 0x4d4f, 0x5e67, 0x452e, 0x5e69, 0x5e71, 0x5e6b, 0x4c47,
+  0x5e66, 0x3c22, 0x5e7e, 0x336a, 0x5e68, 0x5e6d, 0x5e6e, 0x426c,
+  0x425a, 0x5e76, 0x5e7c, 0x5e7a, 0x4529, 0x5f23, 0x5e77, 0x5e78,
+  0x5e60, 0x3579, 0x493a, 0x3c3f, 0x3977, 0x4f33, 0x5e74, 0x5f22,
+  0x3169, 0x4166, 0x4779, 0x3441, 0x4e7a, 0x4c21, 0x4452, 0x5e7b,
+  0x5e7d, 0x4132, 0x5f21, 0x5e79, 0x5e73, 0x3443, 0x3769, 0x5f2f,
+  0x5f2a, 0x4078, 0x3363, 0x3d61, 0x5f33, 0x5f2c, 0x442c, 0x5f29,
+  0x4459, 0x5f4c, 0x5f26, 0x5f25, 0x5f2e, 0x5f28, 0x5f27, 0x5f2d,
+  0x4021, 0x5f24, 0x5f30, 0x5f31, 0x3442, 0x5f36, 0x5f35, 0x5f37,
+  0x5f3a, 0x4543, 0x5f34, 0x5f38, 0x3763, 0x4279, 0x5f32, 0x473b,
+  0x5f39, 0x5f3e, 0x5f3c, 0x5f3f, 0x5f42, 0x5f3b, 0x396a, 0x4728,
+  0x5e39, 0x4d74, 0x5f3d, 0x5f41, 0x4275, 0x5f40, 0x5f2b, 0x6f69,
+  0x5f45, 0x5f49, 0x5f47, 0x5f43, 0x5f44, 0x5f48, 0x5f46, 0x494e,
+  0x5f4e, 0x5f4b, 0x5f4a, 0x5f4d, 0x4654, 0x5f4f, 0x4375, 0x426d,
+  0x4025, 0x5f50, 0x5f52, 0x5f51, 0x5e75, 0x5f53, 0x4667, 0x5f54,
+  0x3250, 0x4574, 0x3325, 0x3564, 0x3c5e, 0x3a52, 0x4f27, 0x3f66,
+  0x316a, 0x5f56, 0x5f55, 0x5f59, 0x433a, 0x5f5c, 0x5f57, 0x5f5b,
+  0x5f5a, 0x4540, 0x3059, 0x4e75, 0x5f5e, 0x3128, 0x5f60, 0x5f5f,
+  0x5f5d, 0x5f58, 0x4b23, 0x5f62, 0x5f61, 0x316b, 0x5f64, 0x4a32,
+  0x5f63, 0x4c35, 0x3e47, 0x4133, 0x3e46, 0x4e7b, 0x5f6a, 0x4079,
+  0x5f66, 0x5f6b, 0x316c, 0x5f69, 0x4761, 0x5f65, 0x5f68, 0x3e48,
+  0x4851, 0x5f6c, 0x3c51, 0x407a, 0x5f6f, 0x5f67, 0x3727, 0x5f6d,
+  0x4d50, 0x5f70, 0x7426, 0x3d4f, 0x5f71, 0x5f72, 0x472e, 0x5f74,
+  0x5f75, 0x4733, 0x4575, 0x5f77, 0x5f79, 0x4e55, 0x5f76, 0x5f78,
+  0x316d, 0x5f73, 0x535b, 0x5f7a, 0x4167, 0x3b38, 0x5f7c, 0x5f7b,
+  0x3f24, 0x5259, 0x5f7d, 0x6021, 0x5f6e, 0x5f7e, 0x6022, 0x477a,
+  0x6023, 0x6024, 0x6025, 0x6026, 0x445e, 0x6028, 0x6027, 0x6029,
+  0x602a, 0x3c5f, 0x4963, 0x4c6c, 0x602b, 0x602c, 0x4156, 0x3c24,
+  0x602d, 0x602e, 0x602f, 0x4a52, 0x4847, 0x6030, 0x4757, 0x442d,
+  0x6031, 0x3267, 0x356d, 0x4c46, 0x4c36, 0x3234, 0x4f34, 0x4b52,
+  0x4a2a, 0x4037, 0x6032, 0x4643, 0x3823, 0x6033, 0x3a54, 0x6035,
+  0x6034, 0x6036, 0x6037, 0x6038, 0x353e, 0x6039, 0x603a, 0x3824,
+  0x4848, 0x603c, 0x3e75, 0x603b, 0x3638, 0x603d, 0x603f, 0x603e,
+  0x6040, 0x3851, 0x6041, 0x3669, 0x4140, 0x397d, 0x6043, 0x6044,
+  0x6042, 0x3c6d, 0x4648, 0x3639, 0x6046, 0x432c, 0x6045, 0x4f35,
+  0x4762, 0x6049, 0x604b, 0x6048, 0x4c54, 0x604a, 0x604c, 0x4e44,
+  0x6050, 0x604f, 0x4376, 0x472d, 0x3825, 0x604e, 0x604d, 0x4d31,
+  0x4d32, 0x6051, 0x316e, 0x3976, 0x3b62, 0x6052, 0x6053, 0x6055,
+  0x3d43, 0x6057, 0x6056, 0x6058, 0x334d, 0x605a, 0x6059, 0x605c,
+  0x605b, 0x383c, 0x4e28, 0x364c, 0x3226, 0x366a, 0x3461, 0x4e68,
+  0x605e, 0x6060, 0x6061, 0x3251, 0x605d, 0x3b39, 0x4441, 0x605f,
+  0x6064, 0x3c6e, 0x6062, 0x373e, 0x4849, 0x6063, 0x607e, 0x6069,
+  0x383d, 0x3565, 0x6066, 0x4d7d, 0x4e30, 0x4276, 0x6068, 0x606a,
+  0x4e56, 0x3657, 0x487c, 0x474a, 0x606b, 0x606d, 0x6070, 0x606c,
+  0x606f, 0x386a, 0x314d, 0x6071, 0x3f70, 0x606e, 0x4e5c, 0x6074,
+  0x7424, 0x6072, 0x6075, 0x6067, 0x6073, 0x3a3c, 0x6076, 0x6077,
+  0x4d7e, 0x6078, 0x6079, 0x6065, 0x607a, 0x3444, 0x3c25, 0x607b,
+  0x607c, 0x607d, 0x313b, 0x6121, 0x493b, 0x6122, 0x3424, 0x6123,
+  0x6124, 0x6125, 0x6127, 0x6128, 0x6126, 0x4953, 0x612a, 0x6129,
+  0x612c, 0x612b, 0x612d, 0x612e, 0x6130, 0x612f, 0x3979, 0x6132,
+  0x6131, 0x3445, 0x3f53, 0x453c, 0x6133, 0x4038, 0x3b3a, 0x3179,
+  0x6134, 0x4d51, 0x4a63, 0x6135, 0x4544, 0x4d33, 0x3943, 0x3f3d,
+  0x434b, 0x5234, 0x442e, 0x3268, 0x6136, 0x6137, 0x613c, 0x613a,
+  0x6139, 0x5a42, 0x3326, 0x6138, 0x305a, 0x482a, 0x484a, 0x4e31,
+  0x613d, 0x613b, 0x435c, 0x4026, 0x482b, 0x492d, 0x613f, 0x4e2c,
+  0x374d, 0x6140, 0x613e, 0x4856, 0x6141, 0x6142, 0x305b, 0x3e76,
+  0x6147, 0x6144, 0x466d, 0x6143, 0x3526, 0x614a, 0x6145, 0x6146,
+  0x6149, 0x6148, 0x4925, 0x4142, 0x4141, 0x353f, 0x614b, 0x614c,
+  0x614d, 0x614f, 0x614e, 0x3156, 0x6157, 0x4868, 0x6151, 0x6153,
+  0x6155, 0x3f3e, 0x6156, 0x6154, 0x3c40, 0x6150, 0x6152, 0x4942,
+  0x3e49, 0x6159, 0x6158, 0x615a, 0x3c26, 0x3a2f, 0x4577, 0x615b,
+  0x444b, 0x615d, 0x4e21, 0x615c, 0x4169, 0x6162, 0x6164, 0x6165,
+  0x4354, 0x6163, 0x6160, 0x615e, 0x615f, 0x6161, 0x6168, 0x6166,
+  0x6167, 0x6169, 0x616b, 0x616c, 0x616d, 0x616e, 0x616a, 0x6170,
+  0x616f, 0x6171, 0x4e45, 0x6174, 0x6172, 0x6173, 0x3462, 0x4c7e,
+  0x4a4a, 0x6176, 0x6175, 0x6177, 0x6178, 0x617c, 0x6179, 0x617a,
+  0x617b, 0x617d, 0x617e, 0x6221, 0x6222, 0x6223, 0x482f, 0x4550,
+  0x6224, 0x4772, 0x4934, 0x6225, 0x6226, 0x452a, 0x3327, 0x3944,
+  0x6227, 0x6228, 0x6229, 0x3b29, 0x622b, 0x622a, 0x622c, 0x622d,
+  0x4869, 0x622e, 0x622f, 0x7369, 0x6230, 0x6231, 0x6232, 0x3b2e,
+  0x6233, 0x4756, 0x4b5f, 0x314e, 0x3157, 0x6234, 0x6236, 0x6235,
+  0x4570, 0x4039, 0x5d39, 0x6237, 0x4c41, 0x6238, 0x3446, 0x4857,
+  0x6239, 0x623a, 0x623b, 0x4c5c, 0x4c55, 0x443e, 0x416a, 0x623d,
+  0x3d62, 0x3e4a, 0x6240, 0x623f, 0x623e, 0x487d, 0x3447, 0x3829,
+  0x6246, 0x6243, 0x3f3f, 0x4c32, 0x6242, 0x6244, 0x6245, 0x6241,
+  0x6247, 0x6248, 0x442f, 0x3463, 0x4365, 0x6249, 0x624a, 0x624d,
+  0x3f67, 0x4644, 0x624e, 0x4b53, 0x624b, 0x624c, 0x6251, 0x6250,
+  0x624f, 0x6253, 0x6252, 0x6254, 0x6256, 0x6255, 0x4a4d, 0x3d56,
+  0x4e46, 0x6257, 0x4637, 0x6258, 0x6259, 0x625d, 0x625b, 0x625c,
+  0x625a, 0x625e, 0x625f, 0x6260, 0x6261, 0x4c37, 0x6262, 0x4c70,
+  0x6263, 0x434e, 0x476a, 0x366b, 0x433b, 0x6264, 0x363a, 0x4050,
+  0x6265, 0x3a3d, 0x6266, 0x6267, 0x3826, 0x3a55, 0x6269, 0x4556,
+  0x3a56, 0x354e, 0x4b24, 0x474b, 0x4557, 0x395c, 0x626b, 0x3e4b,
+  0x4e32, 0x3945, 0x3827, 0x4823, 0x626d, 0x626f, 0x386b, 0x626e,
+  0x4476, 0x6271, 0x3337, 0x626c, 0x486a, 0x3130, 0x3a6c, 0x4f52,
+  0x6270, 0x6272, 0x4a4b, 0x4059, 0x6274, 0x6275, 0x6273, 0x334e,
+  0x627b, 0x627a, 0x3c27, 0x627c, 0x6277, 0x627d, 0x6278, 0x4858,
+  0x6276, 0x6279, 0x6322, 0x6321, 0x4b61, 0x627e, 0x306b, 0x6324,
+  0x6323, 0x3e4c, 0x6325, 0x4143, 0x6327, 0x6326, 0x6328, 0x6268,
+  0x626a, 0x632a, 0x6329, 0x3c28, 0x4e69, 0x3c52, 0x632b, 0x3737,
+  0x3540, 0x3527, 0x3b63, 0x4d34, 0x6331, 0x6330, 0x4144, 0x632d,
+  0x632f, 0x3d4b, 0x3f40, 0x632e, 0x632c, 0x472a, 0x3e4d, 0x493c,
+  0x3a57, 0x4578, 0x6332, 0x6333, 0x6349, 0x3658, 0x4f3d, 0x4135,
+  0x6334, 0x3252, 0x4477, 0x4a21, 0x6335, 0x357a, 0x6336, 0x6338,
+  0x6339, 0x4729, 0x633a, 0x633b, 0x633c, 0x3659, 0x3253, 0x4645,
+  0x3d28, 0x3b64, 0x633d, 0x3d29, 0x324a, 0x4943, 0x633e, 0x486b,
+  0x4145, 0x6341, 0x6342, 0x4769, 0x3f41, 0x633f, 0x4361, 0x6340,
+  0x3e4e, 0x305c, 0x3529, 0x6343, 0x4478, 0x6344, 0x4047, 0x4c2d,
+  0x4923, 0x6345, 0x6346, 0x4355, 0x4e47, 0x6348, 0x6347, 0x3c6f,
+  0x634a, 0x3070, 0x634d, 0x634b, 0x3254, 0x374e, 0x634c, 0x3946,
+  0x3972, 0x4a66, 0x634e, 0x4b54, 0x6350, 0x4051, 0x314f, 0x323a,
+  0x302c, 0x634f, 0x6351, 0x6352, 0x3e77, 0x6353, 0x334f, 0x6355,
+  0x376a, 0x3566, 0x6356, 0x3675, 0x6357, 0x407c, 0x464d, 0x4060,
+  0x3a75, 0x6358, 0x4362, 0x416b, 0x635a, 0x635c, 0x6359, 0x635b,
+  0x3722, 0x635d, 0x3726, 0x3567, 0x4d52, 0x635f, 0x6360, 0x312e,
+  0x6363, 0x3376, 0x6362, 0x6361, 0x6365, 0x635e, 0x6366, 0x4e29,
+  0x6367, 0x6368, 0x5474, 0x636a, 0x6369, 0x636b, 0x636c, 0x4e35,
+  0x636d, 0x706f, 0x3e4f, 0x636e, 0x636f, 0x3d57, 0x4638, 0x6370,
+  0x4328, 0x6371, 0x433c, 0x6372, 0x3625, 0x513f, 0x435d, 0x3c33,
+  0x3448, 0x6373, 0x6422, 0x6376, 0x3568, 0x6375, 0x6424, 0x6374,
+  0x3e50, 0x6378, 0x6379, 0x452b, 0x637a, 0x335e, 0x3f5a, 0x4964,
+  0x637c, 0x4268, 0x6377, 0x637b, 0x637d, 0x3a7b, 0x6426, 0x492e,
+  0x4826, 0x4579, 0x365a, 0x6425, 0x6423, 0x4835, 0x637e, 0x435e,
+  0x457b, 0x457a, 0x3a76, 0x6438, 0x6428, 0x642a, 0x642d, 0x642e,
+  0x642b, 0x642c, 0x6429, 0x6427, 0x6421, 0x4a4f, 0x3255, 0x6435,
+  0x6432, 0x6437, 0x6436, 0x4773, 0x4c27, 0x3b3b, 0x6430, 0x6439,
+  0x6434, 0x6433, 0x642f, 0x6431, 0x3449, 0x433d, 0x407d, 0x4822,
+  0x643e, 0x4824, 0x4061, 0x643b, 0x484f, 0x643f, 0x4a53, 0x435b,
+  0x643a, 0x643c, 0x643d, 0x6440, 0x3c44, 0x4646, 0x6445, 0x6444,
+  0x6441, 0x4f36, 0x644a, 0x644e, 0x644b, 0x6447, 0x6448, 0x644d,
+  0x6442, 0x5255, 0x6449, 0x6443, 0x644c, 0x6452, 0x344a, 0x644f,
+  0x6450, 0x6451, 0x6454, 0x6453, 0x4876, 0x6455, 0x4e7c, 0x4a6d,
+  0x645a, 0x6457, 0x6456, 0x4052, 0x6459, 0x645b, 0x6458, 0x645f,
+  0x645c, 0x645d, 0x6446, 0x645e, 0x6460, 0x6461, 0x4a46, 0x6462,
+  0x4c62, 0x364e, 0x3729, 0x6463, 0x4a34, 0x3f68, 0x4c30, 0x6464,
+  0x4e33, 0x4774, 0x4146, 0x4734, 0x3d4d, 0x3040, 0x6469, 0x6467,
+  0x6465, 0x3421, 0x3e51, 0x646a, 0x6468, 0x6466, 0x646e, 0x646d,
+  0x646c, 0x646b, 0x646f, 0x6470, 0x403a, 0x6471, 0x6473, 0x6472,
+  0x3852, 0x4138, 0x6475, 0x457c, 0x6474, 0x6476, 0x4a35, 0x416c,
+  0x3947, 0x6477, 0x4e48, 0x6479, 0x647a, 0x647b, 0x647c, 0x3b65,
+  0x647d, 0x374f, 0x356a, 0x352a, 0x6521, 0x4c73, 0x3948, 0x647e,
+  0x6524, 0x4c66, 0x473c, 0x4933, 0x3d63, 0x6523, 0x3c53, 0x3949,
+  0x3b66, 0x3569, 0x4a36, 0x6522, 0x4147, 0x4b42, 0x3a77, 0x3b67,
+  0x445d, 0x6527, 0x4e5f, 0x3a59, 0x6528, 0x3f42, 0x652a, 0x3e52,
+  0x3a30, 0x6529, 0x3d2a, 0x383e, 0x4148, 0x6525, 0x652b, 0x6526,
+  0x3750, 0x652e, 0x6532, 0x376b, 0x652d, 0x6536, 0x394a, 0x4d6d,
+  0x303c, 0x6533, 0x356b, 0x6530, 0x6531, 0x457d, 0x652f, 0x652c,
+  0x3328, 0x4064, 0x3828, 0x6538, 0x6535, 0x6537, 0x6534, 0x3751,
+  0x4233, 0x6539, 0x416e, 0x6546, 0x6542, 0x653c, 0x6540, 0x3c7a,
+  0x305d, 0x653b, 0x6543, 0x6547, 0x394b, 0x4c56, 0x4456, 0x653d,
+  0x6545, 0x653a, 0x433e, 0x653f, 0x303d, 0x4c4a, 0x653e, 0x365b,
+  0x486c, 0x416d, 0x4e50, 0x3d6f, 0x656e, 0x6548, 0x407e, 0x6544,
+  0x6549, 0x654b, 0x4479, 0x654e, 0x654a, 0x4a54, 0x344b, 0x4c4b,
+  0x305e, 0x654d, 0x4e7d, 0x654c, 0x316f, 0x466c, 0x654f, 0x6556,
+  0x6550, 0x6557, 0x6553, 0x477b, 0x3c4a, 0x6555, 0x6552, 0x6558,
+  0x6551, 0x3d44, 0x4b25, 0x3d4c, 0x6554, 0x6560, 0x655c, 0x655f,
+  0x655d, 0x6561, 0x655b, 0x6541, 0x4053, 0x484b, 0x655e, 0x6559,
+  0x4121, 0x3752, 0x3d2b, 0x3f25, 0x4136, 0x6564, 0x6566, 0x6567,
+  0x6563, 0x6565, 0x655a, 0x6562, 0x656a, 0x6569, 0x4b7a, 0x372b,
+  0x6568, 0x656c, 0x656b, 0x656f, 0x6571, 0x3b3c, 0x656d, 0x6572,
+  0x6573, 0x6574, 0x657a, 0x453b, 0x6576, 0x6575, 0x6577, 0x6578,
+  0x6579, 0x657b, 0x657c, 0x344c, 0x657d, 0x657e, 0x6621, 0x6622,
+  0x6623, 0x6624, 0x6625, 0x6626, 0x6628, 0x6627, 0x6629, 0x662a,
+  0x662b, 0x662e, 0x662c, 0x662d, 0x3a61, 0x3753, 0x4356, 0x4833,
+  0x3d70, 0x474d, 0x486d, 0x662f, 0x586d, 0x6630, 0x6632, 0x4d65,
+  0x6631, 0x6634, 0x6633, 0x4d53, 0x6635, 0x487e, 0x6636, 0x6639,
+  0x6638, 0x6637, 0x663a, 0x3732, 0x4122, 0x3541, 0x663e, 0x663b,
+  0x663c, 0x663f, 0x6640, 0x663d, 0x3129, 0x3227, 0x6642, 0x6643,
+  0x6644, 0x4d62, 0x3d2c, 0x6646, 0x6645, 0x3f69, 0x6647, 0x6648,
+  0x6649, 0x3465, 0x344d, 0x664a, 0x664b, 0x4b5d, 0x4d63, 0x4d54,
+  0x4f37, 0x394d, 0x664e, 0x3c54, 0x664d, 0x664f, 0x3c29, 0x4251,
+  0x6650, 0x394c, 0x4c57, 0x6651, 0x6652, 0x6653, 0x6654, 0x6655,
+  0x3c2a, 0x4c6d, 0x6657, 0x433f, 0x6656, 0x6659, 0x6658, 0x665a,
+  0x403b, 0x665b, 0x665c, 0x4a39, 0x665d, 0x416f, 0x665e, 0x665f,
+  0x4e7e, 0x6662, 0x6661, 0x6660, 0x4430, 0x6663, 0x3f26, 0x6664,
+  0x6665, 0x4f38, 0x6666, 0x6667, 0x6669, 0x6668, 0x4825, 0x4679,
+  0x4f3e, 0x4829, 0x666b, 0x3e53, 0x492a, 0x666c, 0x666a, 0x344e,
+  0x3854, 0x3b68, 0x486e, 0x382a, 0x4b43, 0x666f, 0x666d, 0x394e,
+  0x394f, 0x3069, 0x3a68, 0x4759, 0x305f, 0x6674, 0x4340, 0x4758,
+  0x425b, 0x6676, 0x6672, 0x6675, 0x6670, 0x6673, 0x4b26, 0x3855,
+  0x307d, 0x6671, 0x6678, 0x6679, 0x4639, 0x363b, 0x6726, 0x473d,
+  0x3b69, 0x363c, 0x4048, 0x4f46, 0x4c2e, 0x6677, 0x4054, 0x3553,
+  0x667a, 0x667c, 0x667b, 0x667d, 0x4326, 0x473e, 0x4431, 0x6723,
+  0x6722, 0x667e, 0x3f55, 0x4965, 0x6725, 0x6724, 0x3950, 0x4f53,
+  0x6735, 0x6729, 0x672a, 0x3c70, 0x6728, 0x3978, 0x6727, 0x672b,
+  0x4432, 0x4a22, 0x4123, 0x425c, 0x672f, 0x6730, 0x672c, 0x672d,
+  0x672e, 0x3951, 0x6736, 0x6732, 0x4966, 0x4b6c, 0x4928, 0x6731,
+  0x6734, 0x6733, 0x4b44, 0x6737, 0x6738, 0x4137, 0x6739, 0x673b,
+  0x673f, 0x673c, 0x673a, 0x473f, 0x673d, 0x673e, 0x3232, 0x6745,
+  0x6740, 0x6741, 0x6742, 0x4221, 0x6744, 0x6743, 0x6746, 0x6747,
+  0x6748, 0x3f43, 0x3269, 0x6749, 0x4e57, 0x3c2b, 0x3d2d, 0x3b6a,
+  0x4357, 0x674a, 0x674b, 0x3131, 0x674c, 0x674d, 0x674e, 0x674f,
+  0x6750, 0x363d, 0x5a2a, 0x6751, 0x4065, 0x6752, 0x3c4b, 0x6753,
+  0x5030, 0x6754, 0x4a5e, 0x345c, 0x4124, 0x3d58, 0x4971, 0x3d2e,
+  0x6755, 0x3952, 0x6756, 0x484c, 0x6764, 0x6758, 0x4249, 0x4775,
+  0x383f, 0x6757, 0x4125, 0x6759, 0x447a, 0x675b, 0x675a, 0x675d,
+  0x675c, 0x675e, 0x6760, 0x675f, 0x344f, 0x6761, 0x6762, 0x6763,
+  0x3a31, 0x4e49, 0x6765, 0x3f27, 0x3170, 0x6766, 0x6767, 0x6768,
+  0x3072, 0x6769, 0x676a, 0x4967, 0x3c47, 0x676c, 0x3329, 0x3032,
+  0x676b, 0x676e, 0x474e, 0x3f44, 0x3256, 0x4b27, 0x375d, 0x365c,
+  0x676d, 0x326a, 0x3423, 0x3171, 0x6772, 0x4e6a, 0x425d, 0x4944,
+  0x677e, 0x3257, 0x677c, 0x677a, 0x6771, 0x676f, 0x6770, 0x3c63,
+  0x366c, 0x4377, 0x4651, 0x3151, 0x6774, 0x6773, 0x6779, 0x6775,
+  0x6778, 0x4c50, 0x6777, 0x3258, 0x337d, 0x677b, 0x677d, 0x3754,
+  0x6823, 0x682c, 0x682d, 0x302b, 0x6834, 0x3071, 0x682b, 0x682a,
+  0x6825, 0x6824, 0x6822, 0x6821, 0x4363, 0x427b, 0x6827, 0x6826,
+  0x6829, 0x4170, 0x3755, 0x3141, 0x6828, 0x3953, 0x4171, 0x683a,
+  0x683b, 0x3259, 0x322e, 0x6838, 0x682e, 0x6836, 0x683d, 0x6837,
+  0x6835, 0x6776, 0x6833, 0x682f, 0x3450, 0x6831, 0x683c, 0x6832,
+  0x683e, 0x6830, 0x477c, 0x4d69, 0x6839, 0x684f, 0x6847, 0x3f7b,
+  0x3546, 0x365d, 0x6842, 0x325b, 0x3e54, 0x6845, 0x3a5a, 0x4551,
+  0x684a, 0x4a6e, 0x6841, 0x325a, 0x3856, 0x4929, 0x684b, 0x683f,
+  0x6848, 0x6852, 0x6843, 0x6844, 0x463a, 0x6849, 0x6846, 0x4b28,
+  0x684c, 0x3060, 0x6840, 0x684e, 0x684d, 0x476b, 0x6854, 0x685f,
+  0x337e, 0x6862, 0x6850, 0x6855, 0x4d6e, 0x685e, 0x4d55, 0x4e2a,
+  0x4378, 0x336b, 0x4972, 0x6864, 0x4621, 0x3031, 0x685d, 0x6859,
+  0x4172, 0x6853, 0x685b, 0x6860, 0x472c, 0x302a, 0x6858, 0x6861,
+  0x4978, 0x685c, 0x6857, 0x3e55, 0x3d2f, 0x3c2c, 0x4c58, 0x4947,
+  0x6867, 0x6870, 0x685a, 0x3377, 0x3e78, 0x6865, 0x686a, 0x4173,
+  0x6866, 0x686d, 0x435f, 0x686e, 0x4d56, 0x6863, 0x3338, 0x6869,
+  0x686c, 0x4c2c, 0x686f, 0x6868, 0x686b, 0x4b29, 0x4f21, 0x6873,
+  0x687a, 0x6872, 0x3c43, 0x6851, 0x4a4e, 0x4c22, 0x6879, 0x6878,
+  0x6874, 0x6875, 0x3136, 0x6877, 0x6871, 0x4455, 0x6876, 0x307e,
+  0x4222, 0x4a43, 0x687b, 0x6921, 0x4859, 0x687e, 0x3e56, 0x3c49,
+  0x6923, 0x363e, 0x6924, 0x4979, 0x687d, 0x6856, 0x687c, 0x4f4f,
+  0x4622, 0x4973, 0x692b, 0x6931, 0x6932, 0x6925, 0x4776, 0x692f,
+  0x6927, 0x6929, 0x6933, 0x6928, 0x692c, 0x3172, 0x4665, 0x692d,
+  0x6930, 0x6926, 0x4126, 0x692a, 0x3b27, 0x3f45, 0x3730, 0x4c74,
+  0x4c79, 0x3d72, 0x6937, 0x6935, 0x4f4e, 0x6934, 0x4d75, 0x6936,
+  0x6938, 0x6939, 0x693c, 0x693a, 0x4623, 0x693b, 0x484d, 0x692e,
+  0x3d73, 0x693d, 0x6942, 0x4174, 0x6941, 0x6922, 0x6943, 0x4149,
+  0x693e, 0x6940, 0x693f, 0x5d31, 0x5d22, 0x6945, 0x6944, 0x4d76,
+  0x623c, 0x6946, 0x6947, 0x6948, 0x3857, 0x3554, 0x694a, 0x515d,
+  0x3575, 0x4e3a, 0x3673, 0x694b, 0x694c, 0x436e, 0x694d, 0x467a,
+  0x303a, 0x3263, 0x6952, 0x6953, 0x694e, 0x3b3d, 0x694f, 0x4742,
+  0x6950, 0x6951, 0x695b, 0x6955, 0x6958, 0x6954, 0x6956, 0x6957,
+  0x3c58, 0x6959, 0x4341, 0x3756, 0x3342, 0x695c, 0x333f, 0x6961,
+  0x695d, 0x6960, 0x483a, 0x695e, 0x695f, 0x4948, 0x485a, 0x6962,
+  0x427d, 0x696c, 0x6968, 0x326b, 0x6966, 0x4b2a, 0x6967, 0x6964,
+  0x6965, 0x696a, 0x696d, 0x696b, 0x6969, 0x6963, 0x4358, 0x6974,
+  0x4c2a, 0x6972, 0x6973, 0x696e, 0x6970, 0x6971, 0x696f, 0x4066,
+  0x4f39, 0x6978, 0x6979, 0x6a21, 0x3f2a, 0x697b, 0x697e, 0x6976,
+  0x6975, 0x6a22, 0x325c, 0x697c, 0x6a23, 0x697d, 0x697a, 0x4433,
+  0x6977, 0x4768, 0x6a27, 0x4d3b, 0x6a26, 0x6a25, 0x6a2e, 0x6a28,
+  0x6a30, 0x4d66, 0x6a33, 0x6a2a, 0x6a2b, 0x6a2f, 0x6a32, 0x6a31,
+  0x6a29, 0x6a2c, 0x6a3d, 0x6a36, 0x6a34, 0x6a35, 0x6a3a, 0x6a3b,
+  0x332a, 0x3542, 0x6a39, 0x6a24, 0x6a38, 0x6a3c, 0x6a37, 0x6a3e,
+  0x6a40, 0x6a3f, 0x6a42, 0x6a41, 0x695a, 0x6a46, 0x6a43, 0x6a44,
+  0x6a45, 0x6a47, 0x376c, 0x6a49, 0x6a48, 0x3d30, 0x3954, 0x5e27,
+  0x6a4a, 0x3d51, 0x3339, 0x6a4b, 0x3152, 0x3e57, 0x6a4c, 0x3955,
+  0x6a4d, 0x3061, 0x493d, 0x6a4e, 0x3f6a, 0x6a55, 0x6a52, 0x436f,
+  0x6a53, 0x6a50, 0x365e, 0x6a4f, 0x6a56, 0x3736, 0x425e, 0x6a5c,
+  0x6a58, 0x4235, 0x6a57, 0x6a5a, 0x6a51, 0x6a5b, 0x6a5d, 0x486f,
+  0x6a59, 0x6a5e, 0x6a60, 0x3853, 0x6a54, 0x3041, 0x6a5f, 0x3a5b,
+  0x4e76, 0x6a61, 0x6a62, 0x4175, 0x4e22, 0x6a63, 0x4d35, 0x6a64,
+  0x6a65, 0x4a64, 0x6a66, 0x3a40, 0x4e23, 0x6a6b, 0x6a6c, 0x3e58,
+  0x6a6a, 0x4d67, 0x6a67, 0x6a69, 0x403d, 0x3f7e, 0x6a68, 0x6a6d,
+  0x4a23, 0x6a6f, 0x6a6e, 0x336c, 0x4b2b, 0x6a70, 0x6a7c, 0x6a72,
+  0x6a73, 0x6a74, 0x6a75, 0x6a79, 0x6a7a, 0x6a78, 0x6a76, 0x6a71,
+  0x6a77, 0x6a7b, 0x7037, 0x3228, 0x6a7e, 0x365f, 0x6a7d, 0x6b22,
+  0x6b21, 0x6b24, 0x6b23, 0x6b25, 0x3d31, 0x6b26, 0x6b27, 0x6b28,
+  0x403e, 0x4d57, 0x6b29, 0x4a24, 0x4746, 0x6b2a, 0x6b2b, 0x382b,
+  0x352c, 0x6b2c, 0x3b6b, 0x4741, 0x6b2d, 0x3350, 0x6b2e, 0x6b30,
+  0x4d77, 0x6b2f, 0x3f46, 0x6b31, 0x6b32, 0x6b33, 0x3451, 0x6b34,
+  0x6b35, 0x6b36, 0x6b37, 0x3351, 0x6b38, 0x6b39, 0x6b3a, 0x3272,
+  0x3f28, 0x6b3b, 0x6b3c, 0x6b3d, 0x3840, 0x447b, 0x6b3e, 0x3757,
+  0x3f56, 0x6b41, 0x4624, 0x6b40, 0x3731, 0x6b3f, 0x4277, 0x352d,
+  0x6b42, 0x6b43, 0x3e59, 0x376d, 0x6b44, 0x4b2c, 0x405f, 0x3576,
+  0x4c75, 0x414a, 0x6b45, 0x3f47, 0x4370, 0x3e5a, 0x6b46, 0x6b49,
+  0x6b4a, 0x3a3e, 0x4242, 0x6b48, 0x3e5b, 0x493e, 0x6b47, 0x3b6c,
+  0x3153, 0x6b4e, 0x3758, 0x3b6e, 0x3b6d, 0x4f4d, 0x6b4d, 0x6b4c,
+  0x4127, 0x354d, 0x4f43, 0x333a, 0x3e5c, 0x6b4b, 0x6b50, 0x6b51,
+  0x6b4f, 0x3858, 0x4d40, 0x3b6f, 0x4727, 0x6b54, 0x4040, 0x4342,
+  0x4d36, 0x6b57, 0x386c, 0x403f, 0x6b53, 0x6b58, 0x386d, 0x6b55,
+  0x6b56, 0x6b52, 0x4062, 0x4649, 0x432f, 0x325d, 0x4870, 0x3543,
+  0x4434, 0x6b5b, 0x6b59, 0x434c, 0x4041, 0x3452, 0x6b5a, 0x3f5b,
+  0x4e4a, 0x4f40, 0x6b5c, 0x6b67, 0x4435, 0x6b66, 0x6b63, 0x6b6b,
+  0x6b64, 0x6b60, 0x447c, 0x6b5f, 0x6b5d, 0x4d21, 0x3b70, 0x6b61,
+  0x6b5e, 0x6b65, 0x3d74, 0x3841, 0x427a, 0x4b45, 0x315a, 0x3062,
+  0x4625, 0x6b69, 0x6b68, 0x4666, 0x6b6d, 0x6b62, 0x6b6c, 0x6b6e,
+  0x382c, 0x6b6a, 0x3956, 0x3c55, 0x6b6f, 0x4d58, 0x6b72, 0x6b75,
+  0x6b73, 0x4935, 0x6b70, 0x3660, 0x6b74, 0x6b76, 0x6b7a, 0x6b77,
+  0x6b79, 0x6b78, 0x6b7b, 0x3c31, 0x6b7d, 0x6b7c, 0x4968, 0x6c21,
+  0x3759, 0x6b7e, 0x6c22, 0x6c23, 0x3544, 0x6641, 0x3e79, 0x6c24,
+  0x386e, 0x6c25, 0x6c26, 0x3b3e, 0x5a4e, 0x6c27, 0x6c28, 0x3d32,
+  0x6c29, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x432b, 0x6c2e, 0x6c30,
+  0x6c2f, 0x4626, 0x6c31, 0x4b2d, 0x6c32, 0x6c33, 0x6c34, 0x6c35,
+  0x465a, 0x3e5d, 0x6c36, 0x396b, 0x502e, 0x6c37, 0x6c38, 0x493f,
+  0x6c39, 0x6c41, 0x6c3a, 0x6c3c, 0x6c3b, 0x6c3d, 0x4b46, 0x6c3e,
+  0x6c3f, 0x6c40, 0x6c42, 0x332d, 0x4467, 0x4969, 0x3a62, 0x3957,
+  0x494f, 0x325f, 0x484e, 0x6c45, 0x3453, 0x4055, 0x6c44, 0x6c49,
+  0x4379, 0x4c63, 0x6c47, 0x6c48, 0x352e, 0x6c4a, 0x4763, 0x425f,
+  0x4871, 0x453d, 0x6c46, 0x4b47, 0x326c, 0x6c4c, 0x4f28, 0x4442,
+  0x4f45, 0x3b71, 0x6c4b, 0x4231, 0x6c5c, 0x4128, 0x4678, 0x4950,
+  0x6c4f, 0x3b3f, 0x3b72, 0x3e5e, 0x4765, 0x382d, 0x6c4e, 0x6c4d,
+  0x496a, 0x3c41, 0x4552, 0x6c51, 0x6c52, 0x3958, 0x6c50, 0x6c53,
+  0x6c54, 0x6c56, 0x4223, 0x6c55, 0x3466, 0x6c58, 0x6c57, 0x6c59,
+  0x6c5b, 0x6c5d, 0x6c5e, 0x4056, 0x3c4f, 0x6c5f, 0x3352, 0x6c60,
+  0x4176, 0x6c61, 0x6c62, 0x496b, 0x352f, 0x6c63, 0x4436, 0x315b,
+  0x6c64, 0x3c71, 0x3f76, 0x422d, 0x6c67, 0x6c66, 0x6c65, 0x6c6d,
+  0x6c6b, 0x6c68, 0x6c6a, 0x6c69, 0x6c6c, 0x3577, 0x6c70, 0x4057,
+  0x6c71, 0x3859, 0x6c6e, 0x6c6f, 0x4f29, 0x4437, 0x4129, 0x6c72,
+  0x6c75, 0x6c73, 0x6c74, 0x4d59, 0x4627, 0x6c78, 0x6c76, 0x6c77,
+  0x6c79, 0x6d29, 0x6c7c, 0x6c7d, 0x6c7b, 0x6c7a, 0x447d, 0x6d21,
+  0x6d25, 0x6d22, 0x6c7e, 0x6d23, 0x6d24, 0x6d2b, 0x6d26, 0x4058,
+  0x6d28, 0x6d2a, 0x6d27, 0x6d2d, 0x3d33, 0x6d2c, 0x6d2e, 0x6d2f,
+  0x6d32, 0x6d31, 0x6d30, 0x6d34, 0x6d33, 0x4c76, 0x6d36, 0x6d35,
+  0x6d37, 0x6d38, 0x6d3a, 0x6d39, 0x3f48, 0x6d3b, 0x366d, 0x6d3c,
+  0x6d3e, 0x6d3f, 0x6d40, 0x6d3d, 0x6d41, 0x3c56, 0x6d42, 0x3530,
+  0x3733, 0x382e, 0x6d43, 0x4670, 0x453e, 0x6d44, 0x6d47, 0x3c34,
+  0x6d46, 0x6d45, 0x375a, 0x6d48, 0x3353, 0x6d4a, 0x3a5c, 0x6d49,
+  0x6d52, 0x6d4c, 0x6d4e, 0x4a65, 0x6d4b, 0x6d4d, 0x6d51, 0x6d4f,
+  0x3531, 0x6d50, 0x6d53, 0x475a, 0x4e58, 0x3d34, 0x6d54, 0x4d22,
+  0x6d56, 0x6d55, 0x6d59, 0x4d41, 0x6d58, 0x336d, 0x6d57, 0x6d5c,
+  0x6d5b, 0x6d5a, 0x4532, 0x6d5d, 0x6d5e, 0x6d5f, 0x396c, 0x3725,
+  0x6d60, 0x6d61, 0x6d62, 0x3f49, 0x6d63, 0x3c2d, 0x6d64, 0x6d65,
+  0x5221, 0x517e, 0x6d66, 0x6570, 0x6d67, 0x4324, 0x3f2b, 0x4740,
+  0x6d68, 0x4a55, 0x4454, 0x397e, 0x4329, 0x312a, 0x4b78, 0x3f57,
+  0x375e, 0x3661, 0x4a56, 0x6d69, 0x6d6b, 0x6d6a, 0x3260, 0x4676,
+  0x6d6c, 0x4777, 0x4533, 0x6d6d, 0x3d52, 0x6d6f, 0x4c42, 0x6d7e,
+  0x6d71, 0x6d72, 0x4449, 0x4260, 0x4177, 0x4628, 0x6d70, 0x3555,
+  0x6d79, 0x6d76, 0x6e25, 0x4629, 0x4360, 0x6d73, 0x447e, 0x4553,
+  0x6d74, 0x6d78, 0x3f60, 0x4767, 0x444c, 0x4042, 0x6d77, 0x422e,
+  0x4224, 0x6d75, 0x3029, 0x4f22, 0x6d7a, 0x4261, 0x3d35, 0x3f4a,
+  0x6d7c, 0x6d7b, 0x306f, 0x6d7d, 0x492f, 0x6e27, 0x465b, 0x3f6b,
+  0x4359, 0x3678, 0x6e26, 0x4d37, 0x313f, 0x4a57, 0x3261, 0x6e21,
+  0x6e22, 0x6e23, 0x6e24, 0x463b, 0x4323, 0x3063, 0x6e28, 0x6e29,
+  0x7423, 0x423d, 0x6e2a, 0x3173, 0x414c, 0x382f, 0x4d5a, 0x6e2b,
+  0x452c, 0x4178, 0x3c57, 0x6e2c, 0x6e2f, 0x3d65, 0x6e2d, 0x412b,
+  0x412a, 0x3064, 0x4e4b, 0x6e31, 0x4872, 0x6e33, 0x6e32, 0x6e30,
+  0x6364, 0x3454, 0x6d6e, 0x6e35, 0x6e34, 0x6e36, 0x4d38, 0x4661,
+  0x4b2e, 0x6e37, 0x3c59, 0x6e38, 0x6e39, 0x6e3a, 0x4521, 0x306a,
+  0x3959, 0x4f3a, 0x6e3e, 0x3734, 0x6e3b, 0x6e3c, 0x4974, 0x3354,
+  0x4d39, 0x363f, 0x4554, 0x6e3f, 0x6e40, 0x6e41, 0x4522, 0x6e43,
+  0x6e42, 0x4653, 0x6e44, 0x3d36, 0x3c60, 0x475b, 0x4371, 0x3c72,
+  0x3f6c, 0x6e45, 0x6e46, 0x3f5d, 0x6e47, 0x6e48, 0x6e49, 0x4d6f,
+  0x3d37, 0x6e4b, 0x6e4a, 0x395a, 0x3973, 0x3b40, 0x6e4e, 0x3d66,
+  0x6e4d, 0x6e4c, 0x4269, 0x386f, 0x4043, 0x4830, 0x3d39, 0x6e4f,
+  0x3e5f, 0x6e52, 0x6e50, 0x6e51, 0x6e54, 0x6e53, 0x3e7a, 0x6e55,
+  0x6e56, 0x6e57, 0x4850, 0x3a53, 0x3c61, 0x6e58, 0x6e59, 0x4e24,
+  0x3d45, 0x4c6e, 0x4e4c, 0x6e5a, 0x3662, 0x6e5b, 0x4523, 0x6e5e,
+  0x3378, 0x3f4b, 0x6e5c, 0x6e5d, 0x4460, 0x4b55, 0x367c, 0x6e60,
+  0x6e61, 0x6e5f, 0x6e63, 0x465f, 0x3343, 0x6e67, 0x6e64, 0x6e66,
+  0x6e62, 0x6f4f, 0x6e65, 0x4e6b, 0x385a, 0x6e6f, 0x4534, 0x6e6a,
+  0x6e6d, 0x6e6b, 0x6e70, 0x6e71, 0x6e69, 0x6e76, 0x3174, 0x6e68,
+  0x482d, 0x6e6c, 0x3e60, 0x395b, 0x4b48, 0x3664, 0x3d46, 0x463c,
+  0x412d, 0x6e74, 0x6e6e, 0x6e73, 0x4c43, 0x4438, 0x6e75, 0x6e72,
+  0x412c, 0x6e79, 0x6e78, 0x6e77, 0x4b2f, 0x3d7b, 0x6e7a, 0x4a5f,
+  0x3154, 0x4946, 0x4372, 0x3578, 0x6e7c, 0x395d, 0x3b2c, 0x6e7b,
+  0x3f6d, 0x3f6e, 0x6f21, 0x6f23, 0x3e7b, 0x6f22, 0x6f24, 0x3653,
+  0x4945, 0x3c62, 0x4f23, 0x6e7e, 0x3a78, 0x4f3f, 0x6f26, 0x6f25,
+  0x6f27, 0x6e7d, 0x4669, 0x4555, 0x4457, 0x6f2c, 0x4343, 0x6f28,
+  0x6f29, 0x372d, 0x6f2b, 0x3830, 0x6f2a, 0x3e61, 0x3379, 0x6f30,
+  0x3a3f, 0x4179, 0x444a, 0x333b, 0x6f2e, 0x6f2f, 0x4443, 0x6f2d,
+  0x6f31, 0x6f37, 0x6f3a, 0x6f39, 0x452d, 0x6f32, 0x6f33, 0x6f36,
+  0x6f38, 0x3640, 0x6f3b, 0x6f35, 0x6f34, 0x6f3f, 0x6f40, 0x6f41,
+  0x6f3e, 0x6f3d, 0x3e62, 0x462a, 0x6f3c, 0x6f45, 0x6f43, 0x6f44,
+  0x6f42, 0x4278, 0x6f46, 0x6f47, 0x6f49, 0x3455, 0x6f48, 0x4c7a,
+  0x6f54, 0x6f4a, 0x6f4d, 0x6f4b, 0x6f4c, 0x6f4e, 0x6f50, 0x6f51,
+  0x6f52, 0x6f55, 0x6f53, 0x6f56, 0x6f58, 0x6f57, 0x4439, 0x4c67,
+  0x6f59, 0x412e, 0x6f5a, 0x4a44, 0x6f5b, 0x332b, 0x313c, 0x3457,
+  0x3456, 0x6f5c, 0x6f5d, 0x6f5e, 0x6f5f, 0x6f60, 0x3458, 0x3355,
+  0x395e, 0x4836, 0x6f62, 0x6f61, 0x6f63, 0x315c, 0x6f66, 0x6f65,
+  0x6f64, 0x6f67, 0x6f6a, 0x3047, 0x6f68, 0x6f6c, 0x6f6b, 0x6f6e,
+  0x6f6d, 0x6f6f, 0x462e, 0x6f70, 0x6f71, 0x6f73, 0x6f72, 0x496c,
+  0x6f74, 0x6f75, 0x3a65, 0x6f76, 0x6f77, 0x4b49, 0x414b, 0x3024,
+  0x424b, 0x6f78, 0x496d, 0x6f7b, 0x6f79, 0x395f, 0x6f7a, 0x3842,
+  0x4a45, 0x6f7d, 0x7021, 0x6f7e, 0x7022, 0x3121, 0x3f58, 0x3d7c,
+  0x3459, 0x7023, 0x4766, 0x7025, 0x3122, 0x7024, 0x4444, 0x4e4d,
+  0x462b, 0x6f7c, 0x4e26, 0x3831, 0x4d5b, 0x3679, 0x4e34, 0x3728,
+  0x4262, 0x6721, 0x7026, 0x332c, 0x3f6f, 0x3356, 0x7028, 0x7029,
+  0x7027, 0x3764, 0x3a5d, 0x3e63, 0x3123, 0x4e59, 0x702b, 0x6e2e,
+  0x702a, 0x702e, 0x702c, 0x702d, 0x702f, 0x7030, 0x4e6c, 0x7031,
+  0x7032, 0x4049, 0x483b, 0x3f7d, 0x3467, 0x4d3a, 0x326d, 0x3d38,
+  0x385b, 0x7035, 0x7034, 0x3b73, 0x7036, 0x7033, 0x3b28, 0x703a,
+  0x6a2d, 0x5256, 0x3f77, 0x7038, 0x4e25, 0x4671, 0x312b, 0x4063,
+  0x3c36, 0x4a37, 0x3140, 0x4e6d, 0x4d6b, 0x703b, 0x4545, 0x3c7b,
+  0x703c, 0x703d, 0x3f4c, 0x703e, 0x4e6e, 0x7039, 0x7040, 0x7042,
+  0x7041, 0x703f, 0x7043, 0x7044, 0x417a, 0x3262, 0x7045, 0x4c38,
+  0x7046, 0x7047, 0x4f2a, 0x5b31, 0x7048, 0x7049, 0x704a, 0x704e,
+  0x704b, 0x704c, 0x704d, 0x704f, 0x4044, 0x4c77, 0x4045, 0x7050,
+  0x4873, 0x7051, 0x7353, 0x4c4c, 0x7052, 0x7053, 0x7054, 0x3357,
+  0x7056, 0x3f59, 0x7057, 0x3724, 0x7058, 0x705c, 0x705a, 0x705b,
+  0x3373, 0x7059, 0x705d, 0x705e, 0x3048, 0x705f, 0x7060, 0x3e64,
+  0x7061, 0x3547, 0x7064, 0x7063, 0x7062, 0x6b71, 0x4a5c, 0x7065,
+  0x7066, 0x7067, 0x7068, 0x7069, 0x706a, 0x345a, 0x706b, 0x706c,
+  0x4723, 0x706e, 0x323b, 0x7071, 0x7070, 0x3124, 0x3641, 0x4a47,
+  0x443a, 0x3a22, 0x3960, 0x3d67, 0x3f5c, 0x7073, 0x7072, 0x4d42,
+  0x3468, 0x4852, 0x465c, 0x3f7c, 0x4e4e, 0x375b, 0x7076, 0x7075,
+  0x4b4b, 0x462c, 0x3150, 0x7077, 0x7074, 0x4951, 0x4d6a, 0x7078,
+  0x7079, 0x707b, 0x426a, 0x335b, 0x335c, 0x707a, 0x3469, 0x3832,
+  0x346a, 0x453f, 0x4e60, 0x385c, 0x707c, 0x707d, 0x707e, 0x7121,
+  0x7123, 0x7122, 0x4977, 0x7124, 0x7125, 0x7126, 0x7127, 0x7129,
+  0x7128, 0x712a, 0x4874, 0x664c, 0x3f29, 0x3532, 0x712b, 0x712c,
+  0x522c, 0x5d3b, 0x4853, 0x307b, 0x303b, 0x3b74, 0x4b30, 0x3e7e,
+  0x712d, 0x4c5f, 0x712e, 0x4d5c, 0x3142, 0x3b41, 0x712f, 0x326e,
+  0x7130, 0x7131, 0x7133, 0x7134, 0x7136, 0x7132, 0x7135, 0x345b,
+  0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713d, 0x713c, 0x713f,
+  0x7142, 0x713e, 0x7140, 0x7141, 0x7143, 0x3642, 0x3c73, 0x7144,
+  0x7145, 0x3961, 0x7146, 0x333e, 0x474f, 0x7147, 0x7148, 0x435a,
+  0x466b, 0x7149, 0x477d, 0x424c, 0x3158, 0x366e, 0x366f, 0x4373,
+  0x714e, 0x3670, 0x326f, 0x714d, 0x714b, 0x714c, 0x714a, 0x7158,
+  0x714f, 0x7150, 0x7151, 0x7152, 0x7154, 0x7153, 0x3d59, 0x7155,
+  0x7157, 0x3533, 0x7156, 0x417b, 0x3833, 0x7159, 0x424d, 0x715a,
+  0x462d, 0x715b, 0x7160, 0x715e, 0x715d, 0x715f, 0x715c, 0x7162,
+  0x7161, 0x7164, 0x3643, 0x7163, 0x7165, 0x7166, 0x7168, 0x7167,
+  0x7169, 0x716b, 0x716a, 0x397c, 0x716c, 0x716d, 0x333c, 0x716e,
+  0x716f, 0x3f71, 0x7170, 0x7171, 0x7172, 0x7173, 0x3962, 0x7174,
+  0x7175, 0x7176, 0x7177, 0x7178, 0x4831, 0x717a, 0x4926, 0x717b,
+  0x7179, 0x717d, 0x717c, 0x717e, 0x7221, 0x7222, 0x7223, 0x7224,
+  0x7225, 0x7226, 0x7227, 0x7228, 0x7229, 0x722a, 0x722b, 0x722c,
+  0x722d, 0x722e, 0x5d35, 0x722f, 0x6478, 0x3534, 0x3321, 0x3a32,
+  0x7231, 0x7230, 0x4c25, 0x7233, 0x7234, 0x7232, 0x7235, 0x4b62,
+  0x7236, 0x357b, 0x4f25, 0x7237, 0x7239, 0x303e, 0x723a, 0x4a2b,
+  0x7238, 0x723b, 0x723c, 0x723d, 0x723e, 0x723f, 0x4b6e, 0x3b2d,
+  0x3a7a, 0x412f, 0x7240, 0x7243, 0x7241, 0x7244, 0x3871, 0x7242,
+  0x7245, 0x7246, 0x7247, 0x724b, 0x3b2a, 0x4264, 0x724c, 0x7249,
+  0x7248, 0x724a, 0x375f, 0x7250, 0x724f, 0x724e, 0x3033, 0x725a,
+  0x7256, 0x7257, 0x7253, 0x7259, 0x7255, 0x3362, 0x4f4c, 0x7258,
+  0x7254, 0x7252, 0x7251, 0x725c, 0x725f, 0x725e, 0x725d, 0x4949,
+  0x725b, 0x3073, 0x7260, 0x7262, 0x336f, 0x724d, 0x3137, 0x7264,
+  0x7263, 0x7261, 0x432d, 0x4b70, 0x4e5a, 0x7265, 0x7266, 0x7267,
+  0x7268, 0x7269, 0x443b, 0x726a, 0x4837, 0x726f, 0x726b, 0x726c,
+  0x4b31, 0x4c44, 0x4650, 0x7270, 0x7271, 0x463e, 0x726e, 0x726d,
+  0x322a, 0x7279, 0x7278, 0x3175, 0x7276, 0x7275, 0x7273, 0x337b,
+  0x7272, 0x3c32, 0x3229, 0x3963, 0x727c, 0x727b, 0x727a, 0x7277,
+  0x727d, 0x727e, 0x7325, 0x7324, 0x7326, 0x312d, 0x7321, 0x7322,
+  0x3974, 0x4c39, 0x7323, 0x4b32, 0x732b, 0x7327, 0x732c, 0x7329,
+  0x7328, 0x375c, 0x732d, 0x732e, 0x732f, 0x732a, 0x7274, 0x7330,
+  0x4461, 0x7334, 0x7335, 0x7333, 0x7332, 0x7338, 0x7331, 0x7336,
+  0x7337, 0x733a, 0x7339, 0x733c, 0x733d, 0x733e, 0x4f49, 0x733b,
+  0x426b, 0x3a6d, 0x733f, 0x7340, 0x7341, 0x7342, 0x7343, 0x3834,
+  0x7344, 0x7345, 0x3c2f, 0x7346, 0x7347, 0x7348, 0x7349, 0x734c,
+  0x734a, 0x4f3c, 0x734b, 0x4e6f, 0x734d, 0x4e5b, 0x734e, 0x477e,
+  0x734f, 0x7351, 0x7352, 0x7350, 0x396d, 0x4c4d, 0x4b63, 0x5677,
+  0x5d60, 0x4b7b, 0x322b, 0x7354, 0x3550, 0x7355, 0x7356, 0x7357,
+  0x3975, 0x7358, 0x6054, 0x4c5b, 0x4263, 0x7359, 0x735b, 0x735a,
+  0x735c, 0x735d, 0x735e, 0x735f, 0x7360, 0x7361, 0x7362, 0x7363,
+  0x7364, 0x7365, 0x7366, 0x7367, 0x7368, 0x4524, 0x385d, 0x736a,
+  0x414d, 0x736b, 0x736c, 0x4921, 0x736d, 0x736e, 0x6337, 0x6c5a,
+  0x706d, 0x736f, 0x7370, 0x7372, 0x7373, 0x7374, 0x4e70, 0x7371,
+  0x7375, 0x7376, 0x7378, 0x7377, 0x737a, 0x737b, 0x7379, 0x4e36,
+  0x737c, 0x737d, 0x6354, 0x737e, 0x212a, 0x2174, 0x2170, 0x2173,
+  0x2175, 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x2125, 0x213f,
+  0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337,
+  0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129,
+  0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347,
+  0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f,
+  0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357,
+  0x2358, 0x2359, 0x235a, 0x214e, 0x214f, 0x2130, 0x2132, 0x212e,
+  0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368,
+  0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370,
+  0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378,
+  0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2131, 0x216f,
+};
+
+static const Summary16 jisx0208_uni2indx_page00[16] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x1000 }, {    1, 0x0000 }, {    1, 0x0000 },
+  {    1, 0x0000 }, {    1, 0x0000 }, {    1, 0x118c }, {    6, 0x0053 },
+  {   10, 0x0000 }, {   10, 0x0080 }, {   11, 0x0000 }, {   11, 0x0080 },
+};
+static const Summary16 jisx0208_uni2indx_page03[22] = {
+  /* 0x0300 */
+  {   12, 0x0000 }, {   12, 0x0000 }, {   12, 0x0000 }, {   12, 0x0000 },
+  {   12, 0x0000 }, {   12, 0x0000 }, {   12, 0x0000 }, {   12, 0x0000 },
+  {   12, 0x0000 }, {   12, 0xfffe }, {   27, 0x03fb }, {   36, 0xfffe },
+  {   51, 0x03fb }, {   60, 0x0000 }, {   60, 0x0000 }, {   60, 0x0000 },
+  /* 0x0400 */
+  {   60, 0x0002 }, {   61, 0xffff }, {   77, 0xffff }, {   93, 0xffff },
+  {  109, 0xffff }, {  125, 0x0002 },
+};
+static const Summary16 jisx0208_uni2indx_page20[50] = {
+  /* 0x2000 */
+  {  126, 0x0000 }, {  126, 0x3361 }, {  133, 0x0063 }, {  137, 0x080d },
+  {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x0000 },
+  {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x0000 },
+  {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x0000 }, {  141, 0x0000 },
+  /* 0x2100 */
+  {  141, 0x0008 }, {  142, 0x0000 }, {  142, 0x0800 }, {  143, 0x0000 },
+  {  143, 0x0000 }, {  143, 0x0000 }, {  143, 0x0000 }, {  143, 0x0000 },
+  {  143, 0x0000 }, {  143, 0x000f }, {  147, 0x0000 }, {  147, 0x0000 },
+  {  147, 0x0000 }, {  147, 0x0014 }, {  149, 0x0000 }, {  149, 0x0000 },
+  /* 0x2200 */
+  {  149, 0x098d }, {  155, 0x6404 }, {  159, 0x1f81 }, {  166, 0x2030 },
+  {  169, 0x0000 }, {  169, 0x0004 }, {  170, 0x0cc3 }, {  176, 0x0000 },
+  {  176, 0x00cc }, {  180, 0x0000 }, {  180, 0x0020 }, {  181, 0x0000 },
+  {  181, 0x0000 }, {  181, 0x0000 }, {  181, 0x0000 }, {  181, 0x0000 },
+  /* 0x2300 */
+  {  181, 0x0000 }, {  181, 0x0004 },
+};
+static const Summary16 jisx0208_uni2indx_page25[23] = {
+  /* 0x2500 */
+  {  182, 0x900f }, {  188, 0x3999 }, {  196, 0x9939 }, {  204, 0x9999 },
+  {  212, 0x0804 }, {  214, 0x0000 }, {  214, 0x0000 }, {  214, 0x0000 },
+  {  214, 0x0000 }, {  214, 0x0000 }, {  214, 0x0003 }, {  216, 0x300c },
+  {  220, 0xc8c0 }, {  225, 0x0000 }, {  225, 0x8000 }, {  226, 0x0000 },
+  /* 0x2600 */
+  {  226, 0x0060 }, {  228, 0x0000 }, {  228, 0x0000 }, {  228, 0x0000 },
+  {  228, 0x0005 }, {  230, 0x0000 }, {  230, 0xa400 },
+};
+static const Summary16 jisx0208_uni2indx_page30[16] = {
+  /* 0x3000 */
+  {  233, 0xffef }, {  248, 0x103f }, {  255, 0x0000 }, {  255, 0x0000 },
+  {  255, 0xfffe }, {  270, 0xffff }, {  286, 0xffff }, {  302, 0xffff },
+  {  318, 0xffff }, {  334, 0x780f }, {  342, 0xfffe }, {  357, 0xffff },
+  {  373, 0xffff }, {  389, 0xffff }, {  405, 0xffff }, {  421, 0x787f },
+};
+static const Summary16 jisx0208_uni2indx_page4e[1307] = {
+  /* 0x4e00 */
+  {  432, 0x6f8b }, {  442, 0x43f3 }, {  451, 0x2442 }, {  455, 0x9b46 },
+  {  463, 0xe82c }, {  470, 0xe3e0 }, {  478, 0x0004 }, {  479, 0x400a },
+  {  482, 0x5f65 }, {  492, 0xdb36 }, {  502, 0x7977 }, {  513, 0x0449 },
+  {  517, 0xecd7 }, {  528, 0xe3f0 }, {  537, 0x6038 }, {  542, 0x08c5 },
+  /* 0x4f00 */
+  {  547, 0xe602 }, {  553, 0x3403 }, {  558, 0x8000 }, {  559, 0x3551 },
+  {  566, 0xe0c8 }, {  572, 0x7eab }, {  583, 0x8200 }, {  585, 0x9869 },
+  {  592, 0xa948 }, {  598, 0x2942 }, {  603, 0xe803 }, {  609, 0x8060 },
+  {  612, 0x441c }, {  617, 0xad93 }, {  626, 0xc03a }, {  632, 0x4568 },
+  /* 0x5000 */
+  {  638, 0xaa60 }, {  644, 0x8656 }, {  651, 0x3f7a }, {  662, 0x0240 },
+  {  664, 0x8388 }, {  669, 0x1461 }, {  674, 0x1020 }, {  676, 0x2174 },
+  {  682, 0x2021 }, {  685, 0x0702 }, {  689, 0x3000 }, {  691, 0x40bc },
+  {  697, 0xa624 }, {  703, 0x4462 }, {  708, 0x60a8 }, {  713, 0x0a20 },
+  /* 0x5100 */
+  {  716, 0x0217 }, {  721, 0x8574 }, {  728, 0x0402 }, {  730, 0x9c84 },
+  {  736, 0x7bfb }, {  749, 0x1415 }, {  754, 0x7f24 }, {  763, 0x11e2 },
+  {  769, 0xb665 }, {  778, 0x02ef }, {  786, 0x1f75 }, {  796, 0x20ff },
+  {  805, 0x3a70 }, {  812, 0x3840 }, {  816, 0x26c3 }, {  823, 0x6763 },
+  /* 0x5200 */
+  {  832, 0x4dd9 }, {  841, 0x2092 }, {  845, 0x46b0 }, {  851, 0x0fc9 },
+  {  859, 0xbc98 }, {  867, 0x4850 }, {  871, 0x8638 }, {  877, 0xa03f },
+  {  885, 0x2388 }, {  890, 0x8816 }, {  895, 0x3e09 }, {  902, 0x5232 },
+  {  908, 0x22aa }, {  914, 0xe3a4 }, {  922, 0x00dd }, {  928, 0xc72c },
+  /* 0x5300 */
+  {  936, 0xa166 }, {  943, 0x26e1 }, {  950, 0x840b }, {  955, 0x8f0a },
+  {  962, 0x27eb }, {  972, 0x559e }, {  981, 0xc241 }, {  986, 0x89bb },
+  {  995, 0x0014 }, {  997, 0x8540 }, { 1001, 0x6361 }, { 1008, 0x0849 },
+  { 1012, 0x7f0c }, { 1021, 0x8ad0 }, { 1027, 0xff3e }, { 1040, 0x05cf },
+  /* 0x5400 */
+  { 1048, 0xff1a }, { 1059, 0xa803 }, { 1064, 0x7a41 }, { 1071, 0x7b40 },
+  { 1078, 0x4745 }, { 1085, 0x8002 }, { 1087, 0x0500 }, { 1089, 0x38eb },
+  { 1098, 0xd851 }, { 1105, 0x0005 }, { 1107, 0x9934 }, { 1114, 0x710c },
+  { 1120, 0x0397 }, { 1127, 0x0100 }, { 1128, 0x6366 }, { 1136, 0x2404 },
+  /* 0x5500 */
+  { 1139, 0x80d0 }, { 1143, 0x0051 }, { 1146, 0xc000 }, { 1148, 0x430a },
+  { 1153, 0x9071 }, { 1159, 0x30c8 }, { 1164, 0x0008 }, { 1165, 0x5800 },
+  { 1168, 0x0e99 }, { 1175, 0xf700 }, { 1182, 0x5f80 }, { 1189, 0x0041 },
+  { 1191, 0x00b0 }, { 1194, 0x9410 }, { 1198, 0x0018 }, { 1200, 0x6280 },
+  /* 0x5600 */
+  { 1204, 0x0240 }, { 1206, 0x09d0 }, { 1211, 0x8200 }, { 1213, 0x0156 },
+  { 1218, 0x5004 }, { 1221, 0x0801 }, { 1223, 0x1d10 }, { 1228, 0x0510 },
+  { 1231, 0x84c1 }, { 1236, 0x0010 }, { 1237, 0x4025 }, { 1241, 0x1050 },
+  { 1244, 0x410f }, { 1250, 0x4d8a }, { 1257, 0x4009 }, { 1260, 0xa60d },
+  /* 0x5700 */
+  { 1267, 0xab19 }, { 1275, 0x914c }, { 1281, 0x21c0 }, { 1285, 0x0981 },
+  { 1289, 0xc485 }, { 1295, 0x0003 }, { 1297, 0x0652 }, { 1302, 0x8000 },
+  { 1303, 0x0b04 }, { 1307, 0x0008 }, { 1308, 0x041d }, { 1313, 0x0009 },
+  { 1315, 0x4849 }, { 1320, 0x905c }, { 1326, 0x0009 }, { 1328, 0x1690 },
+  /* 0x5800 */
+  { 1333, 0x0c65 }, { 1339, 0x2220 }, { 1342, 0x8412 }, { 1346, 0x2433 },
+  { 1352, 0x0c03 }, { 1356, 0x4796 }, { 1364, 0x0a04 }, { 1367, 0x4225 },
+  { 1372, 0x0028 }, { 1374, 0x9088 }, { 1378, 0x4900 }, { 1381, 0x4f08 },
+  { 1387, 0x14a2 }, { 1392, 0xd3aa }, { 1401, 0xd830 }, { 1407, 0x3e87 },
+  /* 0x5900 */
+  { 1416, 0x8604 }, { 1420, 0x1f61 }, { 1428, 0x7ea4 }, { 1437, 0x4186 },
+  { 1442, 0xc390 }, { 1448, 0x05b3 }, { 1455, 0x57a5 }, { 1464, 0x2118 },
+  { 1468, 0x241e }, { 1474, 0x2a48 }, { 1479, 0x1128 }, { 1483, 0x4a04 },
+  { 1487, 0x0a40 }, { 1490, 0x161b }, { 1497, 0x0d60 }, { 1502, 0x8840 },
+  /* 0x5a00 */
+  { 1505, 0x020a }, { 1508, 0x9502 }, { 1513, 0x8221 }, { 1517, 0x1060 },
+  { 1520, 0x0243 }, { 1524, 0x0400 }, { 1525, 0x1444 }, { 1529, 0x8000 },
+  { 1530, 0x0000 }, { 1530, 0x0c04 }, { 1533, 0x0000 }, { 1533, 0x7000 },
+  { 1536, 0x1a06 }, { 1541, 0x00c1 }, { 1544, 0x024a }, { 1548, 0x0c00 },
+  /* 0x5b00 */
+  { 1550, 0x1a00 }, { 1553, 0x0040 }, { 1554, 0x1404 }, { 1557, 0x4045 },
+  { 1561, 0x0029 }, { 1564, 0xbdb3 }, { 1575, 0x0a78 }, { 1581, 0x052b },
+  { 1587, 0xbba9 }, { 1597, 0xbfa0 }, { 1606, 0x407c }, { 1612, 0x8379 },
+  { 1620, 0x12fc }, { 1628, 0xe81d }, { 1636, 0x4bf6 }, { 1646, 0xc569 },
+  /* 0x5c00 */
+  { 1654, 0xeff6 }, { 1667, 0x044a }, { 1671, 0x2115 }, { 1676, 0xff02 },
+  { 1685, 0xed63 }, { 1695, 0x402b }, { 1700, 0xd033 }, { 1707, 0x0242 },
+  { 1710, 0x1000 }, { 1711, 0x0013 }, { 1714, 0x1b02 }, { 1719, 0x59ca },
+  { 1727, 0x00a0 }, { 1729, 0x0200 }, { 1730, 0xa703 }, { 1737, 0x2c41 },
+  /* 0x5d00 */
+  { 1742, 0x4880 }, { 1745, 0x8ff2 }, { 1755, 0x0204 }, { 1757, 0x0000 },
+  { 1757, 0x5800 }, { 1760, 0x1005 }, { 1763, 0x9200 }, { 1766, 0x0048 },
+  { 1768, 0x1894 }, { 1773, 0x2001 }, { 1775, 0x5004 }, { 1778, 0x3480 },
+  { 1782, 0x3200 }, { 1785, 0x684c }, { 1791, 0x49ea }, { 1799, 0x68be },
+  /* 0x5e00 */
+  { 1808, 0x184c }, { 1813, 0x2e42 }, { 1819, 0xa820 }, { 1823, 0x21c9 },
+  { 1829, 0x50b9 }, { 1836, 0x80b0 }, { 1840, 0x001e }, { 1844, 0xff7c },
+  { 1857, 0x849a }, { 1863, 0x14e0 }, { 1868, 0x28c1 }, { 1873, 0x01e0 },
+  { 1877, 0x870e }, { 1884, 0xac49 }, { 1891, 0x130f }, { 1898, 0xdddb },
+  /* 0x5f00 */
+  { 1910, 0xbe1a }, { 1919, 0x89fb }, { 1929, 0xa2e0 }, { 1935, 0x51a2 },
+  { 1941, 0x5502 }, { 1946, 0x32ca }, { 1953, 0x3e46 }, { 1961, 0x928b },
+  { 1968, 0x1dbf }, { 1979, 0x438f }, { 1987, 0x6703 }, { 1994, 0x3218 },
+  { 1999, 0x3028 }, { 2003, 0x33c0 }, { 2009, 0x0811 }, { 2012, 0xa923 },
+  /* 0x6000 */
+  { 2019, 0xc000 }, { 2021, 0x3a65 }, { 2029, 0x8fe3 }, { 2039, 0x0402 },
+  { 2041, 0x2c4e }, { 2048, 0x8625 }, { 2054, 0xbf3d }, { 2066, 0x00a1 },
+  { 2069, 0x3a1a }, { 2076, 0x8cd4 }, { 2083, 0x06c9 }, { 2089, 0x317c },
+  { 2097, 0x00e0 }, { 2100, 0x950a }, { 2106, 0x018b }, { 2111, 0x0edb },
+  /* 0x6100 */
+  { 2120, 0xe34b }, { 2129, 0x8c20 }, { 2133, 0x1182 }, { 2137, 0xf010 },
+  { 2142, 0x7d94 }, { 2151, 0xa728 }, { 2158, 0xc9ac }, { 2166, 0x40fb },
+  { 2174, 0x4484 }, { 2178, 0x0653 }, { 2184, 0x5a90 }, { 2190, 0x4444 },
+  { 2194, 0x3fc8 }, { 2203, 0x0001 }, { 2204, 0x0048 }, { 2206, 0xf5d4 },
+  /* 0x6200 */
+  { 2216, 0x7701 }, { 2223, 0xec57 }, { 2233, 0xc442 }, { 2238, 0x891d },
+  { 2245, 0x6b83 }, { 2253, 0x4928 }, { 2258, 0x4109 }, { 2262, 0xd242 },
+  { 2268, 0x061d }, { 2274, 0x59fe }, { 2285, 0x1800 }, { 2287, 0x3a22 },
+  { 2293, 0xb7e4 }, { 2303, 0x3b9f }, { 2314, 0xf003 }, { 2320, 0xc0ea },
+  /* 0x6300 */
+  { 2327, 0x1386 }, { 2333, 0x8202 }, { 2336, 0x8980 }, { 2340, 0xe400 },
+  { 2344, 0xb200 }, { 2348, 0x10a1 }, { 2352, 0x4b80 }, { 2357, 0x0cc4 },
+  { 2362, 0xd309 }, { 2369, 0x8944 }, { 2374, 0x1faf }, { 2385, 0x4834 },
+  { 2390, 0x8259 }, { 2396, 0x0c45 }, { 2401, 0x420a }, { 2405, 0x0450 },
+  /* 0x6400 */
+  { 2408, 0xa040 }, { 2411, 0x10c8 }, { 2415, 0x3140 }, { 2419, 0x4450 },
+  { 2423, 0x4004 }, { 2425, 0x0100 }, { 2426, 0x8280 }, { 2429, 0x0540 },
+  { 2432, 0x0108 }, { 2434, 0x442c }, { 2439, 0x6a30 }, { 2445, 0x1a05 },
+  { 2450, 0x20a6 }, { 2455, 0x0514 }, { 2459, 0x90cf }, { 2467, 0x6456 },
+  /* 0x6500 */
+  { 2474, 0x0021 }, { 2476, 0x3100 }, { 2479, 0x9c18 }, { 2485, 0xcbf0 },
+  { 2494, 0xa120 }, { 2498, 0x63e2 }, { 2506, 0x104c }, { 2510, 0x01b5 },
+  { 2516, 0x538c }, { 2523, 0x9a83 }, { 2530, 0xb8b2 }, { 2538, 0x3281 },
+  { 2543, 0x987a }, { 2551, 0x0a84 }, { 2555, 0x33e7 }, { 2565, 0x0c02 },
+  /* 0x6600 */
+  { 2568, 0xd4cc }, { 2576, 0x9018 }, { 2580, 0xa1a1 }, { 2586, 0x9070 },
+  { 2591, 0x8a1e }, { 2598, 0xe004 }, { 2602, 0xc3d4 }, { 2610, 0x0451 },
+  { 2614, 0x439a }, { 2621, 0x21c2 }, { 2626, 0x4844 }, { 2630, 0x5310 },
+  { 2635, 0x0292 }, { 2639, 0x3640 }, { 2644, 0x0241 }, { 2647, 0xf3bd },
+  /* 0x6700 */
+  { 2659, 0xab09 }, { 2666, 0xe8f0 }, { 2674, 0x7dc0 }, { 2682, 0xa5d2 },
+  { 2690, 0xc242 }, { 2695, 0xd24b }, { 2703, 0xa43f }, { 2712, 0xd0af },
+  { 2721, 0x1aa0 }, { 2726, 0x34a1 }, { 2732, 0x8247 }, { 2738, 0x03d8 },
+  { 2744, 0xc452 }, { 2750, 0x651b }, { 2758, 0xd294 }, { 2765, 0xc83a },
+  /* 0x6800 */
+  { 2772, 0x001c }, { 2775, 0x40c8 }, { 2779, 0x0e06 }, { 2784, 0x3314 },
+  { 2790, 0x614f }, { 2798, 0xb21b }, { 2806, 0x0088 }, { 2808, 0xc0d0 },
+  { 2813, 0xa02a }, { 2818, 0xa898 }, { 2824, 0xa1c5 }, { 2831, 0x166b },
+  { 2839, 0x2e50 }, { 2845, 0x85b4 }, { 2852, 0xc08b }, { 2858, 0x0604 },
+  /* 0x6900 */
+  { 2861, 0xf933 }, { 2871, 0x1e04 }, { 2876, 0x056e }, { 2883, 0xa251 },
+  { 2889, 0x0400 }, { 2890, 0x7638 }, { 2898, 0xec07 }, { 2906, 0x73b8 },
+  { 2915, 0x4406 }, { 2919, 0x1832 }, { 2924, 0x4081 }, { 2927, 0xc816 },
+  { 2933, 0x7c8a }, { 2941, 0x6309 }, { 2947, 0x2980 }, { 2951, 0xaa04 },
+  /* 0x6a00 */
+  { 2956, 0x1c24 }, { 2961, 0xca9c }, { 2969, 0x4e0e }, { 2976, 0x2760 },
+  { 2982, 0x0990 }, { 2986, 0x8300 }, { 2989, 0x0046 }, { 2992, 0x8104 },
+  { 2995, 0x6011 }, { 2999, 0x1081 }, { 3002, 0x540d }, { 3008, 0x0908 },
+  { 3011, 0x000e }, { 3014, 0xcc0a }, { 3020, 0x0500 }, { 3022, 0x0c00 },
+  /* 0x6b00 */
+  { 3024, 0x0430 }, { 3027, 0xa044 }, { 3031, 0x008b }, { 3035, 0x6784 },
+  { 3042, 0x5288 }, { 3047, 0x8a19 }, { 3053, 0x865e }, { 3061, 0x8b18 },
+  { 3067, 0x2e59 }, { 3075, 0x4160 }, { 3079, 0x8c10 }, { 3083, 0x9cbe },
+  { 3093, 0x6861 }, { 3099, 0x891c }, { 3105, 0x9800 }, { 3108, 0x0008 },
+  /* 0x6c00 */
+  { 3109, 0x8100 }, { 3111, 0x089a }, { 3116, 0x0018 }, { 3118, 0x4190 },
+  { 3122, 0x4007 }, { 3126, 0xe4a1 }, { 3133, 0x0505 }, { 3137, 0x640d },
+  { 3143, 0x310e }, { 3149, 0x0e4d }, { 3156, 0x4806 }, { 3160, 0xff0a },
+  { 3170, 0x1632 }, { 3176, 0x2aa8 }, { 3182, 0x852e }, { 3189, 0x000b },
+  /* 0x6d00 */
+  { 3192, 0x1800 }, { 3194, 0xca84 }, { 3200, 0x0e20 }, { 3204, 0x696c },
+  { 3212, 0x0032 }, { 3215, 0x1600 }, { 3218, 0x5658 }, { 3225, 0x0390 },
+  { 3229, 0x5120 }, { 3233, 0x1a28 }, { 3238, 0x8000 }, { 3239, 0x1124 },
+  { 3243, 0x18e1 }, { 3249, 0x4326 }, { 3255, 0x5d52 }, { 3263, 0x0eaa },
+  /* 0x6e00 */
+  { 3270, 0x0fa0 }, { 3276, 0xae28 }, { 3283, 0xfa7b }, { 3295, 0x4500 },
+  { 3298, 0x6408 }, { 3302, 0x8940 }, { 3306, 0xc880 }, { 3310, 0xc044 },
+  { 3314, 0x9005 }, { 3318, 0xb141 }, { 3324, 0x8424 }, { 3328, 0x24c4 },
+  { 3333, 0x1a34 }, { 3339, 0x603a }, { 3345, 0x9000 }, { 3347, 0xc194 },
+  /* 0x6f00 */
+  { 3353, 0x8246 }, { 3358, 0x003a }, { 3362, 0x180d }, { 3367, 0xc106 },
+  { 3372, 0x0022 }, { 3374, 0x9910 }, { 3379, 0xe050 }, { 3384, 0x1511 },
+  { 3389, 0x4057 }, { 3395, 0x0082 }, { 3397, 0x041a }, { 3401, 0x020a },
+  { 3404, 0x004f }, { 3409, 0x8930 }, { 3414, 0xd813 }, { 3421, 0x444a },
+  /* 0x7000 */
+  { 3426, 0x8a02 }, { 3430, 0xed22 }, { 3438, 0x10c0 }, { 3441, 0x4005 },
+  { 3444, 0x1000 }, { 3445, 0x0102 }, { 3447, 0x8808 }, { 3450, 0x3101 },
+  { 3454, 0x4600 }, { 3457, 0x0204 }, { 3459, 0xf000 }, { 3463, 0x0708 },
+  { 3467, 0x8900 }, { 3470, 0xa200 }, { 3473, 0x0000 }, { 3473, 0x2202 },
+  /* 0x7100 */
+  { 3476, 0x0200 }, { 3477, 0x1610 }, { 3481, 0x0042 }, { 3483, 0x1040 },
+  { 3485, 0x5200 }, { 3488, 0x0260 }, { 3491, 0x52f4 }, { 3499, 0x2000 },
+  { 3500, 0x8510 }, { 3504, 0x8230 }, { 3508, 0x1100 }, { 3510, 0x4202 },
+  { 3513, 0x4308 }, { 3517, 0x80b5 }, { 3523, 0x70e1 }, { 3530, 0x9a20 },
+  /* 0x7200 */
+  { 3535, 0x2040 }, { 3537, 0x0801 }, { 3539, 0x3500 }, { 3543, 0xfc65 },
+  { 3553, 0x19c1 }, { 3559, 0xab04 }, { 3565, 0x0286 }, { 3569, 0x6214 },
+  { 3574, 0x0087 }, { 3578, 0x0044 }, { 3580, 0x9085 }, { 3585, 0x0244 },
+  { 3588, 0x405c }, { 3593, 0x0a85 }, { 3598, 0x3207 }, { 3604, 0x3380 },
+  /* 0x7300 */
+  { 3609, 0x0400 }, { 3610, 0xb8c0 }, { 3616, 0xce20 }, { 3622, 0xc0d0 },
+  { 3627, 0xc030 }, { 3631, 0x0080 }, { 3632, 0x0508 }, { 3635, 0x0d25 },
+  { 3641, 0x0a90 }, { 3645, 0x0040 }, { 3646, 0x0200 }, { 3647, 0x080c },
+  { 3650, 0x6505 }, { 3656, 0x4000 }, { 3657, 0x6421 }, { 3662, 0x4102 },
+  /* 0x7400 */
+  { 3665, 0x0268 }, { 3669, 0x0000 }, { 3669, 0x0024 }, { 3671, 0x847c },
+  { 3678, 0x0002 }, { 3679, 0xde20 }, { 3686, 0x8619 }, { 3692, 0x4049 },
+  { 3696, 0x0808 }, { 3698, 0x4000 }, { 3699, 0x0084 }, { 3701, 0x2001 },
+  { 3703, 0x8400 }, { 3705, 0x1010 }, { 3707, 0x42cd }, { 3714, 0x01c7 },
+  /* 0x7500 */
+  { 3720, 0x7038 }, { 3726, 0xd52a }, { 3734, 0x1968 }, { 3740, 0x1d8f },
+  { 3749, 0xbe50 }, { 3757, 0x3e12 }, { 3764, 0x2ef5 }, { 3774, 0x81d9 },
+  { 3781, 0xcec4 }, { 3789, 0x2412 }, { 3793, 0x0828 }, { 3796, 0x732e },
+  { 3805, 0x24ac }, { 3811, 0x4b34 }, { 3818, 0x020c }, { 3821, 0xd41d },
+  /* 0x7600 */
+  { 3829, 0x2a02 }, { 3833, 0x8000 }, { 3834, 0x0097 }, { 3839, 0x0811 },
+  { 3842, 0x11c4 }, { 3847, 0x1144 }, { 3851, 0x1786 }, { 3858, 0x7d45 },
+  { 3867, 0x49d9 }, { 3875, 0x0649 }, { 3880, 0x4000 }, { 3881, 0x8791 },
+  { 3888, 0x254c }, { 3894, 0xd8c4 }, { 3901, 0x44ba }, { 3908, 0x4914 },
+  /* 0x7700 */
+  { 3913, 0x1b92 }, { 3920, 0xc800 }, { 3923, 0x0271 }, { 3928, 0x1580 },
+  { 3932, 0x0081 }, { 3934, 0x0c00 }, { 3936, 0x096a }, { 3942, 0xc200 },
+  { 3945, 0x4800 }, { 3947, 0x4002 }, { 3949, 0x3021 }, { 3953, 0xba49 },
+  { 3961, 0x2080 }, { 3963, 0x1c80 }, { 3967, 0xe2ac }, { 3975, 0x1008 },
+  /* 0x7800 */
+  { 3977, 0x1004 }, { 3979, 0x0034 }, { 3982, 0x00e1 }, { 3986, 0x8414 },
+  { 3990, 0x0020 }, { 3991, 0x2000 }, { 3992, 0x9800 }, { 3995, 0x1014 },
+  { 3998, 0x70c2 }, { 4004, 0x04aa }, { 4009, 0x8688 }, { 4014, 0x5420 },
+  { 4018, 0x0c62 }, { 4023, 0x0413 }, { 4027, 0x9180 }, { 4031, 0x2010 },
+  /* 0x7900 */
+  { 4033, 0x4082 }, { 4036, 0x0206 }, { 4039, 0x1c40 }, { 4043, 0x5400 },
+  { 4046, 0x0383 }, { 4051, 0xe4e9 }, { 4060, 0x2125 }, { 4065, 0x8480 },
+  { 4068, 0xe433 }, { 4076, 0x2000 }, { 4077, 0x44c0 }, { 4081, 0xe609 },
+  { 4088, 0x0a03 }, { 4092, 0x8126 }, { 4097, 0x12da }, { 4104, 0x0801 },
+  /* 0x7a00 */
+  { 4106, 0x6901 }, { 4111, 0x9790 }, { 4118, 0x4001 }, { 4120, 0xf886 },
+  { 4128, 0xe24d }, { 4136, 0x0081 }, { 4138, 0x0a0e }, { 4143, 0xa651 },
+  { 4150, 0x011a }, { 4154, 0x81ec }, { 4161, 0xc600 }, { 4165, 0x8441 },
+  { 4169, 0xadb8 }, { 4178, 0xb62c }, { 4186, 0xa46f }, { 4195, 0x8741 },
+  /* 0x7b00 */
+  { 4201, 0x8d54 }, { 4208, 0x4b02 }, { 4213, 0x1161 }, { 4218, 0x0268 },
+  { 4222, 0xbb60 }, { 4230, 0x2057 }, { 4236, 0x50a0 }, { 4240, 0x0433 },
+  { 4245, 0xa8c0 }, { 4250, 0xb7b4 }, { 4260, 0x2402 }, { 4263, 0x0112 },
+  { 4266, 0x9ad3 }, { 4275, 0x2000 }, { 4276, 0x2271 }, { 4282, 0x00c8 },
+  /* 0x7c00 */
+  { 4285, 0x2081 }, { 4288, 0x809e }, { 4294, 0x0c8a }, { 4299, 0xe180 },
+  { 4304, 0xb009 }, { 4309, 0x8151 }, { 4314, 0x1031 }, { 4318, 0x4028 },
+  { 4321, 0x2a0e }, { 4327, 0x89a5 }, { 4334, 0x69b6 }, { 4343, 0x620e },
+  { 4349, 0x4425 }, { 4354, 0xd144 }, { 4360, 0x8085 }, { 4364, 0x4d54 },
+  /* 0x7d00 */
+  { 4371, 0x2c75 }, { 4379, 0x1fb1 }, { 4388, 0xd807 }, { 4395, 0x862d },
+  { 4402, 0xd87c }, { 4411, 0x4841 }, { 4415, 0x414e }, { 4421, 0x226e },
+  { 4428, 0x8200 }, { 4430, 0x9e08 }, { 4436, 0xf80c }, { 4443, 0xed37 },
+  { 4454, 0x8c80 }, { 4458, 0x7526 }, { 4466, 0x9313 }, { 4473, 0x0814 },
+  /* 0x7e00 */
+  { 4476, 0x0e32 }, { 4482, 0xc804 }, { 4486, 0x484e }, { 4492, 0x6ea6 },
+  { 4501, 0x2c4a }, { 4507, 0x6670 }, { 4514, 0x26c0 }, { 4519, 0xba01 },
+  { 4525, 0xd30c }, { 4532, 0x185d }, { 4539, 0x0000 }, { 4539, 0x0000 },
+  { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0000 },
+  /* 0x7f00 */
+  { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0540 },
+  { 4542, 0x7020 }, { 4546, 0x8133 }, { 4552, 0x4f81 }, { 4559, 0x03a5 },
+  { 4565, 0x55ec }, { 4574, 0x6410 }, { 4578, 0xc318 }, { 4584, 0x2344 },
+  { 4589, 0x1462 }, { 4594, 0x0034 }, { 4597, 0x0a43 }, { 4602, 0x1a09 },
+  /* 0x8000 */
+  { 4607, 0x187b }, { 4615, 0x13a5 }, { 4622, 0x0102 }, { 4624, 0xa848 },
+  { 4629, 0x0440 }, { 4631, 0xc544 }, { 4637, 0x8106 }, { 4641, 0xe2dd },
+  { 4651, 0x1af0 }, { 4658, 0x2d48 }, { 4664, 0xb626 }, { 4672, 0x0416 },
+  { 4676, 0x5058 }, { 4681, 0x6e40 }, { 4687, 0x8032 }, { 4691, 0x3112 },
+  /* 0x8100 */
+  { 4696, 0x07e4 }, { 4703, 0x0c00 }, { 4705, 0x8208 }, { 4708, 0x420a },
+  { 4712, 0x4840 }, { 4715, 0x803b }, { 4721, 0x4860 }, { 4725, 0x8713 },
+  { 4732, 0x850d }, { 4738, 0x3428 }, { 4743, 0x0319 }, { 4748, 0xe529 },
+  { 4756, 0x2345 }, { 4762, 0x870a }, { 4768, 0x25a9 }, { 4775, 0x5c18 },
+  /* 0x8200 */
+  { 4781, 0x77a6 }, { 4791, 0xd9c5 }, { 4800, 0x5e00 }, { 4805, 0x03e8 },
+  { 4811, 0x0081 }, { 4813, 0xa700 }, { 4818, 0xcd54 }, { 4826, 0x41c6 },
+  { 4832, 0x2800 }, { 4834, 0xa204 }, { 4838, 0xb860 }, { 4844, 0x2b0a },
+  { 4850, 0x0020 }, { 4851, 0xda9e }, { 4861, 0x08ea }, { 4867, 0x0e1a },
+  /* 0x8300 */
+  { 4873, 0x427c }, { 4880, 0x11c0 }, { 4884, 0x8908 }, { 4888, 0x0376 },
+  { 4895, 0x8621 }, { 4900, 0x0105 }, { 4903, 0x0000 }, { 4903, 0x18a8 },
+  { 4908, 0x46a0 }, { 4913, 0xc448 }, { 4918, 0x0d05 }, { 4923, 0x2022 },
+  { 4926, 0x5422 }, { 4931, 0x9148 }, { 4936, 0x8a01 }, { 4940, 0x2897 },
+  /* 0x8400 */
+  { 4947, 0x7898 }, { 4954, 0x0008 }, { 4955, 0x1605 }, { 4960, 0x3122 },
+  { 4965, 0x4240 }, { 4968, 0x0880 }, { 4970, 0xfa4e }, { 4980, 0x06a2 },
+  { 4985, 0x0814 }, { 4988, 0x9211 }, { 4993, 0x2002 }, { 4995, 0x9b04 },
+  { 5001, 0x2e52 }, { 5008, 0x0643 }, { 5013, 0x5000 }, { 5015, 0x9010 },
+  /* 0x8500 */
+  { 5018, 0x0041 }, { 5020, 0x85ba }, { 5028, 0x3042 }, { 5032, 0x2020 },
+  { 5034, 0x4f0b }, { 5042, 0x05a0 }, { 5046, 0x2708 }, { 5051, 0x4080 },
+  { 5053, 0x0591 }, { 5058, 0x1a93 }, { 5065, 0xdf50 }, { 5074, 0x0600 },
+  { 5076, 0xa202 }, { 5080, 0x3021 }, { 5084, 0x0630 }, { 5088, 0x4e80 },
+  /* 0x8600 */
+  { 5093, 0x0cc4 }, { 5098, 0x04c8 }, { 5102, 0xa004 }, { 5105, 0x8001 },
+  { 5107, 0x6000 }, { 5109, 0xd431 }, { 5116, 0x0880 }, { 5118, 0x0a02 },
+  { 5121, 0x1c00 }, { 5124, 0x0028 }, { 5126, 0x8e18 }, { 5132, 0x0041 },
+  { 5134, 0x6ad0 }, { 5141, 0xca10 }, { 5146, 0xf210 }, { 5152, 0x4b00 },
+  /* 0x8700 */
+  { 5156, 0x274d }, { 5164, 0x1506 }, { 5169, 0x0220 }, { 5171, 0x8890 },
+  { 5175, 0x5a00 }, { 5179, 0x82a8 }, { 5184, 0x4549 }, { 5190, 0x8150 },
+  { 5194, 0x2004 }, { 5196, 0x8000 }, { 5197, 0x8804 }, { 5200, 0x2c08 },
+  { 5204, 0x08d1 }, { 5209, 0x0005 }, { 5211, 0x8001 }, { 5213, 0x4ac4 },
+  /* 0x8800 */
+  { 5219, 0xe020 }, { 5223, 0x0062 }, { 5226, 0x008e }, { 5230, 0x0a42 },
+  { 5234, 0x3055 }, { 5240, 0x6a8c }, { 5247, 0x090e }, { 5252, 0xe0a5 },
+  { 5259, 0x2906 }, { 5264, 0x42c4 }, { 5269, 0x4814 }, { 5273, 0x80b3 },
+  { 5279, 0x803e }, { 5285, 0xb330 }, { 5292, 0x0102 }, { 5294, 0x731c },
+  /* 0x8900 */
+  { 5302, 0x1494 }, { 5307, 0x600d }, { 5312, 0x0c20 }, { 5315, 0x0940 },
+  { 5318, 0x301a }, { 5323, 0xc040 }, { 5326, 0xa451 }, { 5332, 0xc094 },
+  { 5337, 0x8dca }, { 5345, 0x05c8 }, { 5350, 0x96c2 }, { 5357, 0xa40c },
+  { 5362, 0x0001 }, { 5363, 0x3404 }, { 5367, 0x00c8 }, { 5370, 0x0110 },
+  /* 0x8a00 */
+  { 5372, 0x550d }, { 5379, 0xa9c9 }, { 5387, 0x2428 }, { 5391, 0x1c5a },
+  { 5398, 0x0142 }, { 5401, 0x4837 }, { 5408, 0x7a4d }, { 5417, 0x100f },
+  { 5422, 0x32b4 }, { 5429, 0x452a }, { 5435, 0x317b }, { 5444, 0x9205 },
+  { 5449, 0xb894 }, { 5456, 0x5c44 }, { 5462, 0x68d7 }, { 5471, 0x458a },
+  /* 0x8b00 */
+  { 5477, 0x5097 }, { 5484, 0x2ed1 }, { 5492, 0x1943 }, { 5498, 0x4208 },
+  { 5501, 0xd202 }, { 5506, 0x9d40 }, { 5512, 0x9840 }, { 5516, 0x2097 },
+  { 5522, 0x5409 }, { 5527, 0x064d }, { 5533, 0x0000 }, { 5533, 0x0000 },
+  { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x0000 },
+  /* 0x8c00 */
+  { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x8480 },
+  { 5536, 0x5542 }, { 5542, 0x0421 }, { 5545, 0x1c06 }, { 5550, 0x1700 },
+  { 5554, 0x7624 }, { 5561, 0x6110 }, { 5565, 0xff87 }, { 5577, 0xb9dd },
+  { 5588, 0x659f }, { 5598, 0x5c0a }, { 5604, 0x245d }, { 5611, 0x3c00 },
+  /* 0x8d00 */
+  { 5615, 0xadb0 }, { 5623, 0x0059 }, { 5627, 0x0000 }, { 5627, 0x0000 },
+  { 5627, 0x0000 }, { 5627, 0x0000 }, { 5627, 0x28d0 }, { 5632, 0x009b },
+  { 5637, 0x0422 }, { 5640, 0x0200 }, { 5641, 0x0108 }, { 5643, 0x4408 },
+  { 5646, 0x9804 }, { 5650, 0xac40 }, { 5655, 0x8d0a }, { 5661, 0x9028 },
+  /* 0x8e00 */
+  { 5665, 0x8700 }, { 5669, 0xe001 }, { 5673, 0x0400 }, { 5674, 0x0031 },
+  { 5677, 0x1794 }, { 5684, 0x8221 }, { 5688, 0x0019 }, { 5691, 0x1054 },
+  { 5695, 0x2cb2 }, { 5702, 0x021a }, { 5706, 0x9c02 }, { 5711, 0x4003 },
+  { 5714, 0x3d60 }, { 5721, 0x8804 }, { 5724, 0x080c }, { 5727, 0x7900 },
+  /* 0x8f00 */
+  { 5732, 0x1628 }, { 5737, 0xba3c }, { 5746, 0x8640 }, { 5750, 0xcb08 },
+  { 5756, 0x7274 }, { 5764, 0x9080 }, { 5767, 0x001e }, { 5771, 0x0000 },
+  { 5771, 0x0000 }, { 5771, 0xd800 }, { 5775, 0xe188 }, { 5781, 0x9c87 },
+  { 5789, 0x4034 }, { 5793, 0x0412 }, { 5796, 0xae64 }, { 5804, 0x2791 },
+  /* 0x9000 */
+  { 5811, 0xe86b }, { 5820, 0xe6fb }, { 5832, 0x408f }, { 5838, 0x5366 },
+  { 5846, 0xeea6 }, { 5856, 0x537f }, { 5867, 0xe32b }, { 5876, 0xb5e4 },
+  { 5885, 0x869f }, { 5894, 0x0002 }, { 5895, 0x8548 }, { 5900, 0x0122 },
+  { 5903, 0x4402 }, { 5906, 0x0800 }, { 5907, 0x2116 }, { 5912, 0x20a0 },
+  /* 0x9100 */
+  { 5915, 0x0004 }, { 5916, 0x0204 }, { 5918, 0x2000 }, { 5919, 0x0005 },
+  { 5921, 0x7e00 }, { 5927, 0x0154 }, { 5931, 0x162c }, { 5937, 0x01ac },
+  { 5942, 0x2a84 }, { 5947, 0x1085 }, { 5951, 0x8c14 }, { 5956, 0x0530 },
+  { 5960, 0xfbc3 }, { 5971, 0xb943 }, { 5979, 0x00ca }, { 5983, 0x9060 },
+  /* 0x9200 */
+  { 5987, 0x6000 }, { 5989, 0x4032 }, { 5993, 0x1200 }, { 5995, 0x8090 },
+  { 5998, 0x0b30 }, { 6003, 0x4c81 }, { 6008, 0x0054 }, { 6011, 0x4002 },
+  { 6013, 0x0029 }, { 6016, 0x1d6a }, { 6024, 0x2000 }, { 6025, 0x0280 },
+  { 6027, 0x8000 }, { 6028, 0x0004 }, { 6029, 0x2610 }, { 6033, 0x150c },
+  /* 0x9300 */
+  { 6038, 0x8040 }, { 6040, 0x0701 }, { 6044, 0xd94d }, { 6053, 0x0c24 },
+  { 6057, 0x2810 }, { 6060, 0x1850 }, { 6064, 0x5001 }, { 6067, 0x5020 },
+  { 6070, 0x1000 }, { 6071, 0x04d0 }, { 6075, 0x7080 }, { 6079, 0x0201 },
+  { 6081, 0x0108 }, { 6083, 0x21c3 }, { 6089, 0x0132 }, { 6093, 0x0000 },
+  /* 0x9400 */
+  { 6093, 0x0088 }, { 6095, 0x0719 }, { 6101, 0x0802 }, { 6103, 0x0560 },
+  { 6107, 0x0012 }, { 6109, 0x4c0e }, { 6115, 0x0405 }, { 6118, 0xf0a1 },
+  { 6125, 0x0002 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 },
+  { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 },
+  /* 0x9500 */
+  { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 },
+  { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0080 },
+  { 6127, 0x8e8d }, { 6135, 0x035a }, { 6141, 0x21bd }, { 6149, 0x5a04 },
+  { 6154, 0x3488 }, { 6159, 0x1170 }, { 6164, 0x0026 }, { 6167, 0x0000 },
+  /* 0x9600 */
+  { 6167, 0x0000 }, { 6167, 0x1000 }, { 6168, 0xc502 }, { 6173, 0x8804 },
+  { 6176, 0xb815 }, { 6183, 0xf801 }, { 6189, 0x147c }, { 6196, 0x25ed },
+  { 6205, 0xed60 }, { 6213, 0x1bb0 }, { 6220, 0x0589 }, { 6225, 0x1bd7 },
+  { 6235, 0x7af3 }, { 6246, 0x1a62 }, { 6252, 0x0d0c }, { 6257, 0x0ac5 },
+  /* 0x9700 */
+  { 6263, 0xe5d1 }, { 6272, 0x524a }, { 6278, 0x0490 }, { 6281, 0x6305 },
+  { 6287, 0x0354 }, { 6292, 0x5244 }, { 6297, 0x2b57 }, { 6306, 0x1612 },
+  { 6311, 0xa872 }, { 6318, 0x1101 }, { 6321, 0x2949 }, { 6327, 0x0018 },
+  { 6329, 0x0948 }, { 6333, 0x1008 }, { 6335, 0x6000 }, { 6337, 0x886c },
+  /* 0x9800 */
+  { 6343, 0x916e }, { 6351, 0x058f }, { 6358, 0x3012 }, { 6362, 0x3990 },
+  { 6368, 0xf840 }, { 6374, 0x4930 }, { 6379, 0x8880 }, { 6382, 0x001b },
+  { 6386, 0x0000 }, { 6386, 0x0000 }, { 6386, 0x8500 }, { 6389, 0x0042 },
+  { 6391, 0x0058 }, { 6394, 0x9800 }, { 6397, 0xea04 }, { 6403, 0x7014 },
+  /* 0x9900 */
+  { 6408, 0x1628 }, { 6413, 0x611d }, { 6420, 0x5113 }, { 6426, 0x6000 },
+  { 6428, 0x1a24 }, { 6433, 0x00a7 }, { 6438, 0x0000 }, { 6438, 0x0000 },
+  { 6438, 0x0000 }, { 6438, 0x03c0 }, { 6442, 0x7120 }, { 6447, 0x1018 },
+  { 6450, 0x0172 }, { 6455, 0xa927 }, { 6463, 0x6004 }, { 6466, 0x8906 },
+  /* 0x9a00 */
+  { 6471, 0xc022 }, { 6475, 0x020c }, { 6478, 0x0900 }, { 6480, 0x4081 },
+  { 6483, 0x202d }, { 6488, 0x8ca0 }, { 6493, 0x0e34 }, { 6499, 0x0000 },
+  { 6499, 0x0000 }, { 6499, 0x0000 }, { 6499, 0x2100 }, { 6501, 0x1101 },
+  { 6504, 0x8011 }, { 6507, 0xc11a }, { 6513, 0xec4c }, { 6521, 0x0892 },
+  /* 0x9b00 */
+  { 6525, 0x0040 }, { 6526, 0x8500 }, { 6529, 0xc7ac }, { 6538, 0x1806 },
+  { 6542, 0xe03e }, { 6550, 0x0512 }, { 6554, 0x8000 }, { 6555, 0x0010 },
+  { 6556, 0x4008 }, { 6558, 0x80ce }, { 6564, 0x6d01 }, { 6570, 0x0210 },
+  { 6572, 0x8641 }, { 6577, 0x0856 }, { 6582, 0x011e }, { 6587, 0x0027 },
+  /* 0x9c00 */
+  { 6591, 0x3750 }, { 6598, 0x083d }, { 6604, 0xe032 }, { 6610, 0x4e05 },
+  { 6616, 0x01c0 }, { 6619, 0x0484 }, { 6622, 0x0081 }, { 6624, 0x0140 },
+  { 6626, 0x0000 }, { 6626, 0x0000 }, { 6626, 0x0000 }, { 6626, 0x0000 },
+  { 6626, 0x0000 }, { 6626, 0x0000 }, { 6626, 0x1aa0 }, { 6631, 0x0059 },
+  /* 0x9d00 */
+  { 6635, 0x43c8 }, { 6641, 0x8824 }, { 6645, 0x1d48 }, { 6651, 0xc800 },
+  { 6654, 0x0152 }, { 6658, 0x7203 }, { 6664, 0x9013 }, { 6669, 0x0404 },
+  { 6671, 0x8280 }, { 6674, 0x0400 }, { 6675, 0x8a10 }, { 6679, 0x0d14 },
+  { 6684, 0x8056 }, { 6689, 0x0208 }, { 6691, 0xa040 }, { 6694, 0x2704 },
+  /* 0x9e00 */
+  { 6699, 0x0000 }, { 6699, 0x4c00 }, { 6702, 0x0000 }, { 6702, 0x0000 },
+  { 6702, 0x0000 }, { 6702, 0x0000 }, { 6702, 0x0000 }, { 6702, 0xa320 },
+  { 6707, 0x1902 }, { 6711, 0xa0ae }, { 6718, 0x2660 }, { 6723, 0xdf00 },
+  { 6730, 0xf010 }, { 6735, 0x7b15 }, { 6744, 0x8121 }, { 6748, 0x3ad0 },
+  /* 0x9f00 */
+  { 6755, 0x4180 }, { 6758, 0x0028 }, { 6760, 0x1003 }, { 6763, 0x4800 },
+  { 6765, 0xcc00 }, { 6769, 0x8014 }, { 6772, 0x14cf }, { 6780, 0x00c4 },
+  { 6783, 0x2000 }, { 6784, 0x3020 }, { 6787, 0x0001 },
+};
+static const Summary16 jisx0208_uni2indx_pageff[15] = {
+  /* 0xff00 */
+  { 6788, 0xdf7a }, { 6800, 0xffff }, { 6816, 0xffff }, { 6832, 0xefff },
+  { 6847, 0xffff }, { 6863, 0x3fff }, { 6877, 0x0000 }, { 6877, 0x0000 },
+  { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 },
+  { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0028 },
+};
+
+static int
+jisx0208_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x0100)
+      summary = &jisx0208_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x0300 && wc < 0x0460)
+      summary = &jisx0208_uni2indx_page03[(wc>>4)-0x030];
+    else if (wc >= 0x2000 && wc < 0x2320)
+      summary = &jisx0208_uni2indx_page20[(wc>>4)-0x200];
+    else if (wc >= 0x2500 && wc < 0x2670)
+      summary = &jisx0208_uni2indx_page25[(wc>>4)-0x250];
+    else if (wc >= 0x3000 && wc < 0x3100)
+      summary = &jisx0208_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x4e00 && wc < 0x9fb0)
+      summary = &jisx0208_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0xff00 && wc < 0xfff0)
+      summary = &jisx0208_uni2indx_pageff[(wc>>4)-0xff0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = jisx0208_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/jisx0212.h b/libiconv/jisx0212.h
new file mode 100644 (file)
index 0000000..6ba6945
--- /dev/null
@@ -0,0 +1,2163 @@
+
+/*
+ * JISX0212.1990-0
+ */
+
+static const unsigned short jisx0212_2uni_page22[81] = {
+  /* 0x22 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x02d8, 0x02c7,
+  0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, 0x007e, 0x0384,
+  0x0385, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x00a1, 0x00a6, 0x00bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0x00ba, 0x00aa, 0x00a9, 0x00ae, 0x2122, 0x00a4,
+  0x2116,
+};
+static const unsigned short jisx0212_2uni_page26[188] = {
+  /* 0x26 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0xfffd, 0x038c, 0xfffd,
+  0x038e, 0x03ab, 0xfffd, 0x038f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03c2,
+  0x03cd, 0x03cb, 0x03b0, 0x03ce, 0xfffd, 0xfffd,
+  /* 0x27 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408,
+  0x0409, 0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458,
+  0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f,
+};
+static const unsigned short jisx0212_2uni_page29[275] = {
+  /* 0x29 */
+  0x00c6, 0x0110, 0xfffd, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x0141,
+  0x013f, 0xfffd, 0x014a, 0x00d8, 0x0152, 0xfffd, 0x0166, 0x00de,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0142,
+  0x0140, 0x0149, 0x014b, 0x00f8, 0x0153, 0x00df, 0x0167, 0x00fe,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2a */
+  0x00c1, 0x00c0, 0x00c4, 0x00c2, 0x0102, 0x01cd, 0x0100, 0x0104,
+  0x00c5, 0x00c3, 0x0106, 0x0108, 0x010c, 0x00c7, 0x010a, 0x010e,
+  0x00c9, 0x00c8, 0x00cb, 0x00ca, 0x011a, 0x0116, 0x0112, 0x0118,
+  0xfffd, 0x011c, 0x011e, 0x0122, 0x0120, 0x0124, 0x00cd, 0x00cc,
+  0x00cf, 0x00ce, 0x01cf, 0x0130, 0x012a, 0x012e, 0x0128, 0x0134,
+  0x0136, 0x0139, 0x013d, 0x013b, 0x0143, 0x0147, 0x0145, 0x00d1,
+  0x00d3, 0x00d2, 0x00d6, 0x00d4, 0x01d1, 0x0150, 0x014c, 0x00d5,
+  0x0154, 0x0158, 0x0156, 0x015a, 0x015c, 0x0160, 0x015e, 0x0164,
+  0x0162, 0x00da, 0x00d9, 0x00dc, 0x00db, 0x016c, 0x01d3, 0x0170,
+  0x016a, 0x0172, 0x016e, 0x0168, 0x01d7, 0x01db, 0x01d9, 0x01d5,
+  0x0174, 0x00dd, 0x0178, 0x0176, 0x0179, 0x017d, 0x017b, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2b */
+  0x00e1, 0x00e0, 0x00e4, 0x00e2, 0x0103, 0x01ce, 0x0101, 0x0105,
+  0x00e5, 0x00e3, 0x0107, 0x0109, 0x010d, 0x00e7, 0x010b, 0x010f,
+  0x00e9, 0x00e8, 0x00eb, 0x00ea, 0x011b, 0x0117, 0x0113, 0x0119,
+  0x01f5, 0x011d, 0x011f, 0xfffd, 0x0121, 0x0125, 0x00ed, 0x00ec,
+  0x00ef, 0x00ee, 0x01d0, 0xfffd, 0x012b, 0x012f, 0x0129, 0x0135,
+  0x0137, 0x013a, 0x013e, 0x013c, 0x0144, 0x0148, 0x0146, 0x00f1,
+  0x00f3, 0x00f2, 0x00f6, 0x00f4, 0x01d2, 0x0151, 0x014d, 0x00f5,
+  0x0155, 0x0159, 0x0157, 0x015b, 0x015d, 0x0161, 0x015f, 0x0165,
+  0x0163, 0x00fa, 0x00f9, 0x00fc, 0x00fb, 0x016d, 0x01d4, 0x0171,
+  0x016b, 0x0173, 0x016f, 0x0169, 0x01d8, 0x01dc, 0x01da, 0x01d6,
+  0x0175, 0x00fd, 0x00ff, 0x0177, 0x017a, 0x017e, 0x017c,
+};
+static const unsigned short jisx0212_2uni_page30[5801] = {
+  /* 0x30 */
+  0x4e02, 0x4e04, 0x4e05, 0x4e0c, 0x4e12, 0x4e1f, 0x4e23, 0x4e24,
+  0x4e28, 0x4e2b, 0x4e2e, 0x4e2f, 0x4e30, 0x4e35, 0x4e40, 0x4e41,
+  0x4e44, 0x4e47, 0x4e51, 0x4e5a, 0x4e5c, 0x4e63, 0x4e68, 0x4e69,
+  0x4e74, 0x4e75, 0x4e79, 0x4e7f, 0x4e8d, 0x4e96, 0x4e97, 0x4e9d,
+  0x4eaf, 0x4eb9, 0x4ec3, 0x4ed0, 0x4eda, 0x4edb, 0x4ee0, 0x4ee1,
+  0x4ee2, 0x4ee8, 0x4eef, 0x4ef1, 0x4ef3, 0x4ef5, 0x4efd, 0x4efe,
+  0x4eff, 0x4f00, 0x4f02, 0x4f03, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12,
+  0x4f15, 0x4f16, 0x4f17, 0x4f19, 0x4f2e, 0x4f31, 0x4f60, 0x4f33,
+  0x4f35, 0x4f37, 0x4f39, 0x4f3b, 0x4f3e, 0x4f40, 0x4f42, 0x4f48,
+  0x4f49, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, 0x4f58, 0x4f5f,
+  0x4f63, 0x4f6a, 0x4f6c, 0x4f6e, 0x4f71, 0x4f77, 0x4f78, 0x4f79,
+  0x4f7a, 0x4f7d, 0x4f7e, 0x4f81, 0x4f82, 0x4f84,
+  /* 0x31 */
+  0x4f85, 0x4f89, 0x4f8a, 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93,
+  0x4f94, 0x4f97, 0x4f99, 0x4f9a, 0x4f9e, 0x4f9f, 0x4fb2, 0x4fb7,
+  0x4fb9, 0x4fbb, 0x4fbc, 0x4fbd, 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc5,
+  0x4fc6, 0x4fc8, 0x4fc9, 0x4fcb, 0x4fcc, 0x4fcd, 0x4fcf, 0x4fd2,
+  0x4fdc, 0x4fe0, 0x4fe2, 0x4ff0, 0x4ff2, 0x4ffc, 0x4ffd, 0x4fff,
+  0x5000, 0x5001, 0x5004, 0x5007, 0x500a, 0x500c, 0x500e, 0x5010,
+  0x5013, 0x5017, 0x5018, 0x501b, 0x501c, 0x501d, 0x501e, 0x5022,
+  0x5027, 0x502e, 0x5030, 0x5032, 0x5033, 0x5035, 0x5040, 0x5041,
+  0x5042, 0x5045, 0x5046, 0x504a, 0x504c, 0x504e, 0x5051, 0x5052,
+  0x5053, 0x5057, 0x5059, 0x505f, 0x5060, 0x5062, 0x5063, 0x5066,
+  0x5067, 0x506a, 0x506d, 0x5070, 0x5071, 0x503b, 0x5081, 0x5083,
+  0x5084, 0x5086, 0x508a, 0x508e, 0x508f, 0x5090,
+  /* 0x32 */
+  0x5092, 0x5093, 0x5094, 0x5096, 0x509b, 0x509c, 0x509e, 0x509f,
+  0x50a0, 0x50a1, 0x50a2, 0x50aa, 0x50af, 0x50b0, 0x50b9, 0x50ba,
+  0x50bd, 0x50c0, 0x50c3, 0x50c4, 0x50c7, 0x50cc, 0x50ce, 0x50d0,
+  0x50d3, 0x50d4, 0x50d8, 0x50dc, 0x50dd, 0x50df, 0x50e2, 0x50e4,
+  0x50e6, 0x50e8, 0x50e9, 0x50ef, 0x50f1, 0x50f6, 0x50fa, 0x50fe,
+  0x5103, 0x5106, 0x5107, 0x5108, 0x510b, 0x510c, 0x510d, 0x510e,
+  0x50f2, 0x5110, 0x5117, 0x5119, 0x511b, 0x511c, 0x511d, 0x511e,
+  0x5123, 0x5127, 0x5128, 0x512c, 0x512d, 0x512f, 0x5131, 0x5133,
+  0x5134, 0x5135, 0x5138, 0x5139, 0x5142, 0x514a, 0x514f, 0x5153,
+  0x5155, 0x5157, 0x5158, 0x515f, 0x5164, 0x5166, 0x517e, 0x5183,
+  0x5184, 0x518b, 0x518e, 0x5198, 0x519d, 0x51a1, 0x51a3, 0x51ad,
+  0x51b8, 0x51ba, 0x51bc, 0x51be, 0x51bf, 0x51c2,
+  /* 0x33 */
+  0x51c8, 0x51cf, 0x51d1, 0x51d2, 0x51d3, 0x51d5, 0x51d8, 0x51de,
+  0x51e2, 0x51e5, 0x51ee, 0x51f2, 0x51f3, 0x51f4, 0x51f7, 0x5201,
+  0x5202, 0x5205, 0x5212, 0x5213, 0x5215, 0x5216, 0x5218, 0x5222,
+  0x5228, 0x5231, 0x5232, 0x5235, 0x523c, 0x5245, 0x5249, 0x5255,
+  0x5257, 0x5258, 0x525a, 0x525c, 0x525f, 0x5260, 0x5261, 0x5266,
+  0x526e, 0x5277, 0x5278, 0x5279, 0x5280, 0x5282, 0x5285, 0x528a,
+  0x528c, 0x5293, 0x5295, 0x5296, 0x5297, 0x5298, 0x529a, 0x529c,
+  0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52af, 0x52b0, 0x52b6, 0x52b7,
+  0x52b8, 0x52ba, 0x52bb, 0x52bd, 0x52c0, 0x52c4, 0x52c6, 0x52c8,
+  0x52cc, 0x52cf, 0x52d1, 0x52d4, 0x52d6, 0x52db, 0x52dc, 0x52e1,
+  0x52e5, 0x52e8, 0x52e9, 0x52ea, 0x52ec, 0x52f0, 0x52f1, 0x52f4,
+  0x52f6, 0x52f7, 0x5300, 0x5303, 0x530a, 0x530b,
+  /* 0x34 */
+  0x530c, 0x5311, 0x5313, 0x5318, 0x531b, 0x531c, 0x531e, 0x531f,
+  0x5325, 0x5327, 0x5328, 0x5329, 0x532b, 0x532c, 0x532d, 0x5330,
+  0x5332, 0x5335, 0x533c, 0x533d, 0x533e, 0x5342, 0x534c, 0x534b,
+  0x5359, 0x535b, 0x5361, 0x5363, 0x5365, 0x536c, 0x536d, 0x5372,
+  0x5379, 0x537e, 0x5383, 0x5387, 0x5388, 0x538e, 0x5393, 0x5394,
+  0x5399, 0x539d, 0x53a1, 0x53a4, 0x53aa, 0x53ab, 0x53af, 0x53b2,
+  0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53ba, 0x53bd, 0x53c0, 0x53c5,
+  0x53cf, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dd, 0x53de, 0x53e0,
+  0x53e6, 0x53e7, 0x53f5, 0x5402, 0x5413, 0x541a, 0x5421, 0x5427,
+  0x5428, 0x542a, 0x542f, 0x5431, 0x5434, 0x5435, 0x5443, 0x5444,
+  0x5447, 0x544d, 0x544f, 0x545e, 0x5462, 0x5464, 0x5466, 0x5467,
+  0x5469, 0x546b, 0x546d, 0x546e, 0x5474, 0x547f,
+  /* 0x35 */
+  0x5481, 0x5483, 0x5485, 0x5488, 0x5489, 0x548d, 0x5491, 0x5495,
+  0x5496, 0x549c, 0x549f, 0x54a1, 0x54a6, 0x54a7, 0x54a9, 0x54aa,
+  0x54ad, 0x54ae, 0x54b1, 0x54b7, 0x54b9, 0x54ba, 0x54bb, 0x54bf,
+  0x54c6, 0x54ca, 0x54cd, 0x54ce, 0x54e0, 0x54ea, 0x54ec, 0x54ef,
+  0x54f6, 0x54fc, 0x54fe, 0x54ff, 0x5500, 0x5501, 0x5505, 0x5508,
+  0x5509, 0x550c, 0x550d, 0x550e, 0x5515, 0x552a, 0x552b, 0x5532,
+  0x5535, 0x5536, 0x553b, 0x553c, 0x553d, 0x5541, 0x5547, 0x5549,
+  0x554a, 0x554d, 0x5550, 0x5551, 0x5558, 0x555a, 0x555b, 0x555e,
+  0x5560, 0x5561, 0x5564, 0x5566, 0x557f, 0x5581, 0x5582, 0x5586,
+  0x5588, 0x558e, 0x558f, 0x5591, 0x5592, 0x5593, 0x5594, 0x5597,
+  0x55a3, 0x55a4, 0x55ad, 0x55b2, 0x55bf, 0x55c1, 0x55c3, 0x55c6,
+  0x55c9, 0x55cb, 0x55cc, 0x55ce, 0x55d1, 0x55d2,
+  /* 0x36 */
+  0x55d3, 0x55d7, 0x55d8, 0x55db, 0x55de, 0x55e2, 0x55e9, 0x55f6,
+  0x55ff, 0x5605, 0x5608, 0x560a, 0x560d, 0x560e, 0x560f, 0x5610,
+  0x5611, 0x5612, 0x5619, 0x562c, 0x5630, 0x5633, 0x5635, 0x5637,
+  0x5639, 0x563b, 0x563c, 0x563d, 0x563f, 0x5640, 0x5641, 0x5643,
+  0x5644, 0x5646, 0x5649, 0x564b, 0x564d, 0x564f, 0x5654, 0x565e,
+  0x5660, 0x5661, 0x5662, 0x5663, 0x5666, 0x5669, 0x566d, 0x566f,
+  0x5671, 0x5672, 0x5675, 0x5684, 0x5685, 0x5688, 0x568b, 0x568c,
+  0x5695, 0x5699, 0x569a, 0x569d, 0x569e, 0x569f, 0x56a6, 0x56a7,
+  0x56a8, 0x56a9, 0x56ab, 0x56ac, 0x56ad, 0x56b1, 0x56b3, 0x56b7,
+  0x56be, 0x56c5, 0x56c9, 0x56ca, 0x56cb, 0x56cf, 0x56d0, 0x56cc,
+  0x56cd, 0x56d9, 0x56dc, 0x56dd, 0x56df, 0x56e1, 0x56e4, 0x56e5,
+  0x56e6, 0x56e7, 0x56e8, 0x56f1, 0x56eb, 0x56ed,
+  /* 0x37 */
+  0x56f6, 0x56f7, 0x5701, 0x5702, 0x5707, 0x570a, 0x570c, 0x5711,
+  0x5715, 0x571a, 0x571b, 0x571d, 0x5720, 0x5722, 0x5723, 0x5724,
+  0x5725, 0x5729, 0x572a, 0x572c, 0x572e, 0x572f, 0x5733, 0x5734,
+  0x573d, 0x573e, 0x573f, 0x5745, 0x5746, 0x574c, 0x574d, 0x5752,
+  0x5762, 0x5765, 0x5767, 0x5768, 0x576b, 0x576d, 0x576e, 0x576f,
+  0x5770, 0x5771, 0x5773, 0x5774, 0x5775, 0x5777, 0x5779, 0x577a,
+  0x577b, 0x577c, 0x577e, 0x5781, 0x5783, 0x578c, 0x5794, 0x5797,
+  0x5799, 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a1, 0x5795,
+  0x57a7, 0x57a8, 0x57a9, 0x57ac, 0x57b8, 0x57bd, 0x57c7, 0x57c8,
+  0x57cc, 0x57cf, 0x57d5, 0x57dd, 0x57de, 0x57e4, 0x57e6, 0x57e7,
+  0x57e9, 0x57ed, 0x57f0, 0x57f5, 0x57f6, 0x57f8, 0x57fd, 0x57fe,
+  0x57ff, 0x5803, 0x5804, 0x5808, 0x5809, 0x57e1,
+  /* 0x38 */
+  0x580c, 0x580d, 0x581b, 0x581e, 0x581f, 0x5820, 0x5826, 0x5827,
+  0x582d, 0x5832, 0x5839, 0x583f, 0x5849, 0x584c, 0x584d, 0x584f,
+  0x5850, 0x5855, 0x585f, 0x5861, 0x5864, 0x5867, 0x5868, 0x5878,
+  0x587c, 0x587f, 0x5880, 0x5881, 0x5887, 0x5888, 0x5889, 0x588a,
+  0x588c, 0x588d, 0x588f, 0x5890, 0x5894, 0x5896, 0x589d, 0x58a0,
+  0x58a1, 0x58a2, 0x58a6, 0x58a9, 0x58b1, 0x58b2, 0x58c4, 0x58bc,
+  0x58c2, 0x58c8, 0x58cd, 0x58ce, 0x58d0, 0x58d2, 0x58d4, 0x58d6,
+  0x58da, 0x58dd, 0x58e1, 0x58e2, 0x58e9, 0x58f3, 0x5905, 0x5906,
+  0x590b, 0x590c, 0x5912, 0x5913, 0x5914, 0x8641, 0x591d, 0x5921,
+  0x5923, 0x5924, 0x5928, 0x592f, 0x5930, 0x5933, 0x5935, 0x5936,
+  0x593f, 0x5943, 0x5946, 0x5952, 0x5953, 0x5959, 0x595b, 0x595d,
+  0x595e, 0x595f, 0x5961, 0x5963, 0x596b, 0x596d,
+  /* 0x39 */
+  0x596f, 0x5972, 0x5975, 0x5976, 0x5979, 0x597b, 0x597c, 0x598b,
+  0x598c, 0x598e, 0x5992, 0x5995, 0x5997, 0x599f, 0x59a4, 0x59a7,
+  0x59ad, 0x59ae, 0x59af, 0x59b0, 0x59b3, 0x59b7, 0x59ba, 0x59bc,
+  0x59c1, 0x59c3, 0x59c4, 0x59c8, 0x59ca, 0x59cd, 0x59d2, 0x59dd,
+  0x59de, 0x59df, 0x59e3, 0x59e4, 0x59e7, 0x59ee, 0x59ef, 0x59f1,
+  0x59f2, 0x59f4, 0x59f7, 0x5a00, 0x5a04, 0x5a0c, 0x5a0d, 0x5a0e,
+  0x5a12, 0x5a13, 0x5a1e, 0x5a23, 0x5a24, 0x5a27, 0x5a28, 0x5a2a,
+  0x5a2d, 0x5a30, 0x5a44, 0x5a45, 0x5a47, 0x5a48, 0x5a4c, 0x5a50,
+  0x5a55, 0x5a5e, 0x5a63, 0x5a65, 0x5a67, 0x5a6d, 0x5a77, 0x5a7a,
+  0x5a7b, 0x5a7e, 0x5a8b, 0x5a90, 0x5a93, 0x5a96, 0x5a99, 0x5a9c,
+  0x5a9e, 0x5a9f, 0x5aa0, 0x5aa2, 0x5aa7, 0x5aac, 0x5ab1, 0x5ab2,
+  0x5ab3, 0x5ab5, 0x5ab8, 0x5aba, 0x5abb, 0x5abf,
+  /* 0x3a */
+  0x5ac4, 0x5ac6, 0x5ac8, 0x5acf, 0x5ada, 0x5adc, 0x5ae0, 0x5ae5,
+  0x5aea, 0x5aee, 0x5af5, 0x5af6, 0x5afd, 0x5b00, 0x5b01, 0x5b08,
+  0x5b17, 0x5b34, 0x5b19, 0x5b1b, 0x5b1d, 0x5b21, 0x5b25, 0x5b2d,
+  0x5b38, 0x5b41, 0x5b4b, 0x5b4c, 0x5b52, 0x5b56, 0x5b5e, 0x5b68,
+  0x5b6e, 0x5b6f, 0x5b7c, 0x5b7d, 0x5b7e, 0x5b7f, 0x5b81, 0x5b84,
+  0x5b86, 0x5b8a, 0x5b8e, 0x5b90, 0x5b91, 0x5b93, 0x5b94, 0x5b96,
+  0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5baf, 0x5bb1, 0x5bb2, 0x5bb7,
+  0x5bba, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bcd, 0x5bcf, 0x5bd6, 0x5bd7,
+  0x5bd8, 0x5bd9, 0x5bda, 0x5be0, 0x5bef, 0x5bf1, 0x5bf4, 0x5bfd,
+  0x5c0c, 0x5c17, 0x5c1e, 0x5c1f, 0x5c23, 0x5c26, 0x5c29, 0x5c2b,
+  0x5c2c, 0x5c2e, 0x5c30, 0x5c32, 0x5c35, 0x5c36, 0x5c59, 0x5c5a,
+  0x5c5c, 0x5c62, 0x5c63, 0x5c67, 0x5c68, 0x5c69,
+  /* 0x3b */
+  0x5c6d, 0x5c70, 0x5c74, 0x5c75, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d,
+  0x5c87, 0x5c88, 0x5c8a, 0x5c8f, 0x5c92, 0x5c9d, 0x5c9f, 0x5ca0,
+  0x5ca2, 0x5ca3, 0x5ca6, 0x5caa, 0x5cb2, 0x5cb4, 0x5cb5, 0x5cba,
+  0x5cc9, 0x5ccb, 0x5cd2, 0x5cdd, 0x5cd7, 0x5cee, 0x5cf1, 0x5cf2,
+  0x5cf4, 0x5d01, 0x5d06, 0x5d0d, 0x5d12, 0x5d2b, 0x5d23, 0x5d24,
+  0x5d26, 0x5d27, 0x5d31, 0x5d34, 0x5d39, 0x5d3d, 0x5d3f, 0x5d42,
+  0x5d43, 0x5d46, 0x5d48, 0x5d55, 0x5d51, 0x5d59, 0x5d4a, 0x5d5f,
+  0x5d60, 0x5d61, 0x5d62, 0x5d64, 0x5d6a, 0x5d6d, 0x5d70, 0x5d79,
+  0x5d7a, 0x5d7e, 0x5d7f, 0x5d81, 0x5d83, 0x5d88, 0x5d8a, 0x5d92,
+  0x5d93, 0x5d94, 0x5d95, 0x5d99, 0x5d9b, 0x5d9f, 0x5da0, 0x5da7,
+  0x5dab, 0x5db0, 0x5db4, 0x5db8, 0x5db9, 0x5dc3, 0x5dc7, 0x5dcb,
+  0x5dd0, 0x5dce, 0x5dd8, 0x5dd9, 0x5de0, 0x5de4,
+  /* 0x3c */
+  0x5de9, 0x5df8, 0x5df9, 0x5e00, 0x5e07, 0x5e0d, 0x5e12, 0x5e14,
+  0x5e15, 0x5e18, 0x5e1f, 0x5e20, 0x5e2e, 0x5e28, 0x5e32, 0x5e35,
+  0x5e3e, 0x5e4b, 0x5e50, 0x5e49, 0x5e51, 0x5e56, 0x5e58, 0x5e5b,
+  0x5e5c, 0x5e5e, 0x5e68, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e,
+  0x5e70, 0x5e80, 0x5e8b, 0x5e8e, 0x5ea2, 0x5ea4, 0x5ea5, 0x5ea8,
+  0x5eaa, 0x5eac, 0x5eb1, 0x5eb3, 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec6,
+  0x5ecc, 0x5ecb, 0x5ece, 0x5ed1, 0x5ed2, 0x5ed4, 0x5ed5, 0x5edc,
+  0x5ede, 0x5ee5, 0x5eeb, 0x5f02, 0x5f06, 0x5f07, 0x5f08, 0x5f0e,
+  0x5f19, 0x5f1c, 0x5f1d, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28,
+  0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f34, 0x5f36, 0x5f3b, 0x5f3d,
+  0x5f3f, 0x5f40, 0x5f44, 0x5f45, 0x5f47, 0x5f4d, 0x5f50, 0x5f54,
+  0x5f58, 0x5f5b, 0x5f60, 0x5f63, 0x5f64, 0x5f67,
+  /* 0x3d */
+  0x5f6f, 0x5f72, 0x5f74, 0x5f75, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e,
+  0x5f89, 0x5f8d, 0x5f8f, 0x5f96, 0x5f9c, 0x5f9d, 0x5fa2, 0x5fa7,
+  0x5fab, 0x5fa4, 0x5fac, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb8, 0x5fc4,
+  0x5fc7, 0x5fc8, 0x5fc9, 0x5fcb, 0x5fd0, 0x5fd1, 0x5fd2, 0x5fd3,
+  0x5fd4, 0x5fde, 0x5fe1, 0x5fe2, 0x5fe8, 0x5fe9, 0x5fea, 0x5fec,
+  0x5fed, 0x5fee, 0x5fef, 0x5ff2, 0x5ff3, 0x5ff6, 0x5ffa, 0x5ffc,
+  0x6007, 0x600a, 0x600d, 0x6013, 0x6014, 0x6017, 0x6018, 0x601a,
+  0x601f, 0x6024, 0x602d, 0x6033, 0x6035, 0x6040, 0x6047, 0x6048,
+  0x6049, 0x604c, 0x6051, 0x6054, 0x6056, 0x6057, 0x605d, 0x6061,
+  0x6067, 0x6071, 0x607e, 0x607f, 0x6082, 0x6086, 0x6088, 0x608a,
+  0x608e, 0x6091, 0x6093, 0x6095, 0x6098, 0x609d, 0x609e, 0x60a2,
+  0x60a4, 0x60a5, 0x60a8, 0x60b0, 0x60b1, 0x60b7,
+  /* 0x3e */
+  0x60bb, 0x60be, 0x60c2, 0x60c4, 0x60c8, 0x60c9, 0x60ca, 0x60cb,
+  0x60ce, 0x60cf, 0x60d4, 0x60d5, 0x60d9, 0x60db, 0x60dd, 0x60de,
+  0x60e2, 0x60e5, 0x60f2, 0x60f5, 0x60f8, 0x60fc, 0x60fd, 0x6102,
+  0x6107, 0x610a, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114,
+  0x6116, 0x6117, 0x6119, 0x611c, 0x611e, 0x6122, 0x612a, 0x612b,
+  0x6130, 0x6131, 0x6135, 0x6136, 0x6137, 0x6139, 0x6141, 0x6145,
+  0x6146, 0x6149, 0x615e, 0x6160, 0x616c, 0x6172, 0x6178, 0x617b,
+  0x617c, 0x617f, 0x6180, 0x6181, 0x6183, 0x6184, 0x618b, 0x618d,
+  0x6192, 0x6193, 0x6197, 0x6198, 0x619c, 0x619d, 0x619f, 0x61a0,
+  0x61a5, 0x61a8, 0x61aa, 0x61ad, 0x61b8, 0x61b9, 0x61bc, 0x61c0,
+  0x61c1, 0x61c2, 0x61ce, 0x61cf, 0x61d5, 0x61dc, 0x61dd, 0x61de,
+  0x61df, 0x61e1, 0x61e2, 0x61e7, 0x61e9, 0x61e5,
+  /* 0x3f */
+  0x61ec, 0x61ed, 0x61ef, 0x6201, 0x6203, 0x6204, 0x6207, 0x6213,
+  0x6215, 0x621c, 0x6220, 0x6222, 0x6223, 0x6227, 0x6229, 0x622b,
+  0x6239, 0x623d, 0x6242, 0x6243, 0x6244, 0x6246, 0x624c, 0x6250,
+  0x6251, 0x6252, 0x6254, 0x6256, 0x625a, 0x625c, 0x6264, 0x626d,
+  0x626f, 0x6273, 0x627a, 0x627d, 0x628d, 0x628e, 0x628f, 0x6290,
+  0x62a6, 0x62a8, 0x62b3, 0x62b6, 0x62b7, 0x62ba, 0x62be, 0x62bf,
+  0x62c4, 0x62ce, 0x62d5, 0x62d6, 0x62da, 0x62ea, 0x62f2, 0x62f4,
+  0x62fc, 0x62fd, 0x6303, 0x6304, 0x630a, 0x630b, 0x630d, 0x6310,
+  0x6313, 0x6316, 0x6318, 0x6329, 0x632a, 0x632d, 0x6335, 0x6336,
+  0x6339, 0x633c, 0x6341, 0x6342, 0x6343, 0x6344, 0x6346, 0x634a,
+  0x634b, 0x634e, 0x6352, 0x6353, 0x6354, 0x6358, 0x635b, 0x6365,
+  0x6366, 0x636c, 0x636d, 0x6371, 0x6374, 0x6375,
+  /* 0x40 */
+  0x6378, 0x637c, 0x637d, 0x637f, 0x6382, 0x6384, 0x6387, 0x638a,
+  0x6390, 0x6394, 0x6395, 0x6399, 0x639a, 0x639e, 0x63a4, 0x63a6,
+  0x63ad, 0x63ae, 0x63af, 0x63bd, 0x63c1, 0x63c5, 0x63c8, 0x63ce,
+  0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63dc, 0x63e0, 0x63e5, 0x63ea,
+  0x63ec, 0x63f2, 0x63f3, 0x63f5, 0x63f8, 0x63f9, 0x6409, 0x640a,
+  0x6410, 0x6412, 0x6414, 0x6418, 0x641e, 0x6420, 0x6422, 0x6424,
+  0x6425, 0x6429, 0x642a, 0x642f, 0x6430, 0x6435, 0x643d, 0x643f,
+  0x644b, 0x644f, 0x6451, 0x6452, 0x6453, 0x6454, 0x645a, 0x645b,
+  0x645c, 0x645d, 0x645f, 0x6460, 0x6461, 0x6463, 0x646d, 0x6473,
+  0x6474, 0x647b, 0x647d, 0x6485, 0x6487, 0x648f, 0x6490, 0x6491,
+  0x6498, 0x6499, 0x649b, 0x649d, 0x649f, 0x64a1, 0x64a3, 0x64a6,
+  0x64a8, 0x64ac, 0x64b3, 0x64bd, 0x64be, 0x64bf,
+  /* 0x41 */
+  0x64c4, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64ce, 0x64d0, 0x64d1,
+  0x64d5, 0x64d7, 0x64e4, 0x64e5, 0x64e9, 0x64ea, 0x64ed, 0x64f0,
+  0x64f5, 0x64f7, 0x64fb, 0x64ff, 0x6501, 0x6504, 0x6508, 0x6509,
+  0x650a, 0x650f, 0x6513, 0x6514, 0x6516, 0x6519, 0x651b, 0x651e,
+  0x651f, 0x6522, 0x6526, 0x6529, 0x652e, 0x6531, 0x653a, 0x653c,
+  0x653d, 0x6543, 0x6547, 0x6549, 0x6550, 0x6552, 0x6554, 0x655f,
+  0x6560, 0x6567, 0x656b, 0x657a, 0x657d, 0x6581, 0x6585, 0x658a,
+  0x6592, 0x6595, 0x6598, 0x659d, 0x65a0, 0x65a3, 0x65a6, 0x65ae,
+  0x65b2, 0x65b3, 0x65b4, 0x65bf, 0x65c2, 0x65c8, 0x65c9, 0x65ce,
+  0x65d0, 0x65d4, 0x65d6, 0x65d8, 0x65df, 0x65f0, 0x65f2, 0x65f4,
+  0x65f5, 0x65f9, 0x65fe, 0x65ff, 0x6600, 0x6604, 0x6608, 0x6609,
+  0x660d, 0x6611, 0x6612, 0x6615, 0x6616, 0x661d,
+  /* 0x42 */
+  0x661e, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662a,
+  0x662b, 0x662c, 0x662e, 0x6630, 0x6631, 0x6633, 0x6639, 0x6637,
+  0x6640, 0x6645, 0x6646, 0x664a, 0x664c, 0x6651, 0x664e, 0x6657,
+  0x6658, 0x6659, 0x665b, 0x665c, 0x6660, 0x6661, 0x66fb, 0x666a,
+  0x666b, 0x666c, 0x667e, 0x6673, 0x6675, 0x667f, 0x6677, 0x6678,
+  0x6679, 0x667b, 0x6680, 0x667c, 0x668b, 0x668c, 0x668d, 0x6690,
+  0x6692, 0x6699, 0x669a, 0x669b, 0x669c, 0x669f, 0x66a0, 0x66a4,
+  0x66ad, 0x66b1, 0x66b2, 0x66b5, 0x66bb, 0x66bf, 0x66c0, 0x66c2,
+  0x66c3, 0x66c8, 0x66cc, 0x66ce, 0x66cf, 0x66d4, 0x66db, 0x66df,
+  0x66e8, 0x66eb, 0x66ec, 0x66ee, 0x66fa, 0x6705, 0x6707, 0x670e,
+  0x6713, 0x6719, 0x671c, 0x6720, 0x6722, 0x6733, 0x673e, 0x6745,
+  0x6747, 0x6748, 0x674c, 0x6754, 0x6755, 0x675d,
+  /* 0x43 */
+  0x6766, 0x676c, 0x676e, 0x6774, 0x6776, 0x677b, 0x6781, 0x6784,
+  0x678e, 0x678f, 0x6791, 0x6793, 0x6796, 0x6798, 0x6799, 0x679b,
+  0x67b0, 0x67b1, 0x67b2, 0x67b5, 0x67bb, 0x67bc, 0x67bd, 0x67f9,
+  0x67c0, 0x67c2, 0x67c3, 0x67c5, 0x67c8, 0x67c9, 0x67d2, 0x67d7,
+  0x67d9, 0x67dc, 0x67e1, 0x67e6, 0x67f0, 0x67f2, 0x67f6, 0x67f7,
+  0x6852, 0x6814, 0x6819, 0x681d, 0x681f, 0x6828, 0x6827, 0x682c,
+  0x682d, 0x682f, 0x6830, 0x6831, 0x6833, 0x683b, 0x683f, 0x6844,
+  0x6845, 0x684a, 0x684c, 0x6855, 0x6857, 0x6858, 0x685b, 0x686b,
+  0x686e, 0x686f, 0x6870, 0x6871, 0x6872, 0x6875, 0x6879, 0x687a,
+  0x687b, 0x687c, 0x6882, 0x6884, 0x6886, 0x6888, 0x6896, 0x6898,
+  0x689a, 0x689c, 0x68a1, 0x68a3, 0x68a5, 0x68a9, 0x68aa, 0x68ae,
+  0x68b2, 0x68bb, 0x68c5, 0x68c8, 0x68cc, 0x68cf,
+  /* 0x44 */
+  0x68d0, 0x68d1, 0x68d3, 0x68d6, 0x68d9, 0x68dc, 0x68dd, 0x68e5,
+  0x68e8, 0x68ea, 0x68eb, 0x68ec, 0x68ed, 0x68f0, 0x68f1, 0x68f5,
+  0x68f6, 0x68fb, 0x68fc, 0x68fd, 0x6906, 0x6909, 0x690a, 0x6910,
+  0x6911, 0x6913, 0x6916, 0x6917, 0x6931, 0x6933, 0x6935, 0x6938,
+  0x693b, 0x6942, 0x6945, 0x6949, 0x694e, 0x6957, 0x695b, 0x6963,
+  0x6964, 0x6965, 0x6966, 0x6968, 0x6969, 0x696c, 0x6970, 0x6971,
+  0x6972, 0x697a, 0x697b, 0x697f, 0x6980, 0x698d, 0x6992, 0x6996,
+  0x6998, 0x69a1, 0x69a5, 0x69a6, 0x69a8, 0x69ab, 0x69ad, 0x69af,
+  0x69b7, 0x69b8, 0x69ba, 0x69bc, 0x69c5, 0x69c8, 0x69d1, 0x69d6,
+  0x69d7, 0x69e2, 0x69e5, 0x69ee, 0x69ef, 0x69f1, 0x69f3, 0x69f5,
+  0x69fe, 0x6a00, 0x6a01, 0x6a03, 0x6a0f, 0x6a11, 0x6a15, 0x6a1a,
+  0x6a1d, 0x6a20, 0x6a24, 0x6a28, 0x6a30, 0x6a32,
+  /* 0x45 */
+  0x6a34, 0x6a37, 0x6a3b, 0x6a3e, 0x6a3f, 0x6a45, 0x6a46, 0x6a49,
+  0x6a4a, 0x6a4e, 0x6a50, 0x6a51, 0x6a52, 0x6a55, 0x6a56, 0x6a5b,
+  0x6a64, 0x6a67, 0x6a6a, 0x6a71, 0x6a73, 0x6a7e, 0x6a81, 0x6a83,
+  0x6a86, 0x6a87, 0x6a89, 0x6a8b, 0x6a91, 0x6a9b, 0x6a9d, 0x6a9e,
+  0x6a9f, 0x6aa5, 0x6aab, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab4, 0x6abd,
+  0x6abe, 0x6abf, 0x6ac6, 0x6ac9, 0x6ac8, 0x6acc, 0x6ad0, 0x6ad4,
+  0x6ad5, 0x6ad6, 0x6adc, 0x6add, 0x6ae4, 0x6ae7, 0x6aec, 0x6af0,
+  0x6af1, 0x6af2, 0x6afc, 0x6afd, 0x6b02, 0x6b03, 0x6b06, 0x6b07,
+  0x6b09, 0x6b0f, 0x6b10, 0x6b11, 0x6b17, 0x6b1b, 0x6b1e, 0x6b24,
+  0x6b28, 0x6b2b, 0x6b2c, 0x6b2f, 0x6b35, 0x6b36, 0x6b3b, 0x6b3f,
+  0x6b46, 0x6b4a, 0x6b4d, 0x6b52, 0x6b56, 0x6b58, 0x6b5d, 0x6b60,
+  0x6b67, 0x6b6b, 0x6b6e, 0x6b70, 0x6b75, 0x6b7d,
+  /* 0x46 */
+  0x6b7e, 0x6b82, 0x6b85, 0x6b97, 0x6b9b, 0x6b9f, 0x6ba0, 0x6ba2,
+  0x6ba3, 0x6ba8, 0x6ba9, 0x6bac, 0x6bad, 0x6bae, 0x6bb0, 0x6bb8,
+  0x6bb9, 0x6bbd, 0x6bbe, 0x6bc3, 0x6bc4, 0x6bc9, 0x6bcc, 0x6bd6,
+  0x6bda, 0x6be1, 0x6be3, 0x6be6, 0x6be7, 0x6bee, 0x6bf1, 0x6bf7,
+  0x6bf9, 0x6bff, 0x6c02, 0x6c04, 0x6c05, 0x6c09, 0x6c0d, 0x6c0e,
+  0x6c10, 0x6c12, 0x6c19, 0x6c1f, 0x6c26, 0x6c27, 0x6c28, 0x6c2c,
+  0x6c2e, 0x6c33, 0x6c35, 0x6c36, 0x6c3a, 0x6c3b, 0x6c3f, 0x6c4a,
+  0x6c4b, 0x6c4d, 0x6c4f, 0x6c52, 0x6c54, 0x6c59, 0x6c5b, 0x6c5c,
+  0x6c6b, 0x6c6d, 0x6c6f, 0x6c74, 0x6c76, 0x6c78, 0x6c79, 0x6c7b,
+  0x6c85, 0x6c86, 0x6c87, 0x6c89, 0x6c94, 0x6c95, 0x6c97, 0x6c98,
+  0x6c9c, 0x6c9f, 0x6cb0, 0x6cb2, 0x6cb4, 0x6cc2, 0x6cc6, 0x6ccd,
+  0x6ccf, 0x6cd0, 0x6cd1, 0x6cd2, 0x6cd4, 0x6cd6,
+  /* 0x47 */
+  0x6cda, 0x6cdc, 0x6ce0, 0x6ce7, 0x6ce9, 0x6ceb, 0x6cec, 0x6cee,
+  0x6cf2, 0x6cf4, 0x6d04, 0x6d07, 0x6d0a, 0x6d0e, 0x6d0f, 0x6d11,
+  0x6d13, 0x6d1a, 0x6d26, 0x6d27, 0x6d28, 0x6c67, 0x6d2e, 0x6d2f,
+  0x6d31, 0x6d39, 0x6d3c, 0x6d3f, 0x6d57, 0x6d5e, 0x6d5f, 0x6d61,
+  0x6d65, 0x6d67, 0x6d6f, 0x6d70, 0x6d7c, 0x6d82, 0x6d87, 0x6d91,
+  0x6d92, 0x6d94, 0x6d96, 0x6d97, 0x6d98, 0x6daa, 0x6dac, 0x6db4,
+  0x6db7, 0x6db9, 0x6dbd, 0x6dbf, 0x6dc4, 0x6dc8, 0x6dca, 0x6dce,
+  0x6dcf, 0x6dd6, 0x6ddb, 0x6ddd, 0x6ddf, 0x6de0, 0x6de2, 0x6de5,
+  0x6de9, 0x6def, 0x6df0, 0x6df4, 0x6df6, 0x6dfc, 0x6e00, 0x6e04,
+  0x6e1e, 0x6e22, 0x6e27, 0x6e32, 0x6e36, 0x6e39, 0x6e3b, 0x6e3c,
+  0x6e44, 0x6e45, 0x6e48, 0x6e49, 0x6e4b, 0x6e4f, 0x6e51, 0x6e52,
+  0x6e53, 0x6e54, 0x6e57, 0x6e5c, 0x6e5d, 0x6e5e,
+  /* 0x48 */
+  0x6e62, 0x6e63, 0x6e68, 0x6e73, 0x6e7b, 0x6e7d, 0x6e8d, 0x6e93,
+  0x6e99, 0x6ea0, 0x6ea7, 0x6ead, 0x6eae, 0x6eb1, 0x6eb3, 0x6ebb,
+  0x6ebf, 0x6ec0, 0x6ec1, 0x6ec3, 0x6ec7, 0x6ec8, 0x6eca, 0x6ecd,
+  0x6ece, 0x6ecf, 0x6eeb, 0x6eed, 0x6eee, 0x6ef9, 0x6efb, 0x6efd,
+  0x6f04, 0x6f08, 0x6f0a, 0x6f0c, 0x6f0d, 0x6f16, 0x6f18, 0x6f1a,
+  0x6f1b, 0x6f26, 0x6f29, 0x6f2a, 0x6f2f, 0x6f30, 0x6f33, 0x6f36,
+  0x6f3b, 0x6f3c, 0x6f2d, 0x6f4f, 0x6f51, 0x6f52, 0x6f53, 0x6f57,
+  0x6f59, 0x6f5a, 0x6f5d, 0x6f5e, 0x6f61, 0x6f62, 0x6f68, 0x6f6c,
+  0x6f7d, 0x6f7e, 0x6f83, 0x6f87, 0x6f88, 0x6f8b, 0x6f8c, 0x6f8d,
+  0x6f90, 0x6f92, 0x6f93, 0x6f94, 0x6f96, 0x6f9a, 0x6f9f, 0x6fa0,
+  0x6fa5, 0x6fa6, 0x6fa7, 0x6fa8, 0x6fae, 0x6faf, 0x6fb0, 0x6fb5,
+  0x6fb6, 0x6fbc, 0x6fc5, 0x6fc7, 0x6fc8, 0x6fca,
+  /* 0x49 */
+  0x6fda, 0x6fde, 0x6fe8, 0x6fe9, 0x6ff0, 0x6ff5, 0x6ff9, 0x6ffc,
+  0x6ffd, 0x7000, 0x7005, 0x7006, 0x7007, 0x700d, 0x7017, 0x7020,
+  0x7023, 0x702f, 0x7034, 0x7037, 0x7039, 0x703c, 0x7043, 0x7044,
+  0x7048, 0x7049, 0x704a, 0x704b, 0x7054, 0x7055, 0x705d, 0x705e,
+  0x704e, 0x7064, 0x7065, 0x706c, 0x706e, 0x7075, 0x7076, 0x707e,
+  0x7081, 0x7085, 0x7086, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098,
+  0x709b, 0x70a4, 0x70ab, 0x70b0, 0x70b1, 0x70b4, 0x70b7, 0x70ca,
+  0x70d1, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d8, 0x70dc, 0x70e4,
+  0x70fa, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x710b, 0x710c,
+  0x710f, 0x711e, 0x7120, 0x712b, 0x712d, 0x712f, 0x7130, 0x7131,
+  0x7138, 0x7141, 0x7145, 0x7146, 0x7147, 0x714a, 0x714b, 0x7150,
+  0x7152, 0x7157, 0x715a, 0x715c, 0x715e, 0x7160,
+  /* 0x4a */
+  0x7168, 0x7179, 0x7180, 0x7185, 0x7187, 0x718c, 0x7192, 0x719a,
+  0x719b, 0x71a0, 0x71a2, 0x71af, 0x71b0, 0x71b2, 0x71b3, 0x71ba,
+  0x71bf, 0x71c0, 0x71c1, 0x71c4, 0x71cb, 0x71cc, 0x71d3, 0x71d6,
+  0x71d9, 0x71da, 0x71dc, 0x71f8, 0x71fe, 0x7200, 0x7207, 0x7208,
+  0x7209, 0x7213, 0x7217, 0x721a, 0x721d, 0x721f, 0x7224, 0x722b,
+  0x722f, 0x7234, 0x7238, 0x7239, 0x7241, 0x7242, 0x7243, 0x7245,
+  0x724e, 0x724f, 0x7250, 0x7253, 0x7255, 0x7256, 0x725a, 0x725c,
+  0x725e, 0x7260, 0x7263, 0x7268, 0x726b, 0x726e, 0x726f, 0x7271,
+  0x7277, 0x7278, 0x727b, 0x727c, 0x727f, 0x7284, 0x7289, 0x728d,
+  0x728e, 0x7293, 0x729b, 0x72a8, 0x72ad, 0x72ae, 0x72b1, 0x72b4,
+  0x72be, 0x72c1, 0x72c7, 0x72c9, 0x72cc, 0x72d5, 0x72d6, 0x72d8,
+  0x72df, 0x72e5, 0x72f3, 0x72f4, 0x72fa, 0x72fb,
+  /* 0x4b */
+  0x72fe, 0x7302, 0x7304, 0x7305, 0x7307, 0x730b, 0x730d, 0x7312,
+  0x7313, 0x7318, 0x7319, 0x731e, 0x7322, 0x7324, 0x7327, 0x7328,
+  0x732c, 0x7331, 0x7332, 0x7335, 0x733a, 0x733b, 0x733d, 0x7343,
+  0x734d, 0x7350, 0x7352, 0x7356, 0x7358, 0x735d, 0x735e, 0x735f,
+  0x7360, 0x7366, 0x7367, 0x7369, 0x736b, 0x736c, 0x736e, 0x736f,
+  0x7371, 0x7377, 0x7379, 0x737c, 0x7380, 0x7381, 0x7383, 0x7385,
+  0x7386, 0x738e, 0x7390, 0x7393, 0x7395, 0x7397, 0x7398, 0x739c,
+  0x739e, 0x739f, 0x73a0, 0x73a2, 0x73a5, 0x73a6, 0x73aa, 0x73ab,
+  0x73ad, 0x73b5, 0x73b7, 0x73b9, 0x73bc, 0x73bd, 0x73bf, 0x73c5,
+  0x73c6, 0x73c9, 0x73cb, 0x73cc, 0x73cf, 0x73d2, 0x73d3, 0x73d6,
+  0x73d9, 0x73dd, 0x73e1, 0x73e3, 0x73e6, 0x73e7, 0x73e9, 0x73f4,
+  0x73f5, 0x73f7, 0x73f9, 0x73fa, 0x73fb, 0x73fd,
+  /* 0x4c */
+  0x73ff, 0x7400, 0x7401, 0x7404, 0x7407, 0x740a, 0x7411, 0x741a,
+  0x741b, 0x7424, 0x7426, 0x7428, 0x7429, 0x742a, 0x742b, 0x742c,
+  0x742d, 0x742e, 0x742f, 0x7430, 0x7431, 0x7439, 0x7440, 0x7443,
+  0x7444, 0x7446, 0x7447, 0x744b, 0x744d, 0x7451, 0x7452, 0x7457,
+  0x745d, 0x7462, 0x7466, 0x7467, 0x7468, 0x746b, 0x746d, 0x746e,
+  0x7471, 0x7472, 0x7480, 0x7481, 0x7485, 0x7486, 0x7487, 0x7489,
+  0x748f, 0x7490, 0x7491, 0x7492, 0x7498, 0x7499, 0x749a, 0x749c,
+  0x749f, 0x74a0, 0x74a1, 0x74a3, 0x74a6, 0x74a8, 0x74a9, 0x74aa,
+  0x74ab, 0x74ae, 0x74af, 0x74b1, 0x74b2, 0x74b5, 0x74b9, 0x74bb,
+  0x74bf, 0x74c8, 0x74c9, 0x74cc, 0x74d0, 0x74d3, 0x74d8, 0x74da,
+  0x74db, 0x74de, 0x74df, 0x74e4, 0x74e8, 0x74ea, 0x74eb, 0x74ef,
+  0x74f4, 0x74fa, 0x74fb, 0x74fc, 0x74ff, 0x7506,
+  /* 0x4d */
+  0x7512, 0x7516, 0x7517, 0x7520, 0x7521, 0x7524, 0x7527, 0x7529,
+  0x752a, 0x752f, 0x7536, 0x7539, 0x753d, 0x753e, 0x753f, 0x7540,
+  0x7543, 0x7547, 0x7548, 0x754e, 0x7550, 0x7552, 0x7557, 0x755e,
+  0x755f, 0x7561, 0x756f, 0x7571, 0x7579, 0x757a, 0x757b, 0x757c,
+  0x757d, 0x757e, 0x7581, 0x7585, 0x7590, 0x7592, 0x7593, 0x7595,
+  0x7599, 0x759c, 0x75a2, 0x75a4, 0x75b4, 0x75ba, 0x75bf, 0x75c0,
+  0x75c1, 0x75c4, 0x75c6, 0x75cc, 0x75ce, 0x75cf, 0x75d7, 0x75dc,
+  0x75df, 0x75e0, 0x75e1, 0x75e4, 0x75e7, 0x75ec, 0x75ee, 0x75ef,
+  0x75f1, 0x75f9, 0x7600, 0x7602, 0x7603, 0x7604, 0x7607, 0x7608,
+  0x760a, 0x760c, 0x760f, 0x7612, 0x7613, 0x7615, 0x7616, 0x7619,
+  0x761b, 0x761c, 0x761d, 0x761e, 0x7623, 0x7625, 0x7626, 0x7629,
+  0x762d, 0x7632, 0x7633, 0x7635, 0x7638, 0x7639,
+  /* 0x4e */
+  0x763a, 0x763c, 0x764a, 0x7640, 0x7641, 0x7643, 0x7644, 0x7645,
+  0x7649, 0x764b, 0x7655, 0x7659, 0x765f, 0x7664, 0x7665, 0x766d,
+  0x766e, 0x766f, 0x7671, 0x7674, 0x7681, 0x7685, 0x768c, 0x768d,
+  0x7695, 0x769b, 0x769c, 0x769d, 0x769f, 0x76a0, 0x76a2, 0x76a3,
+  0x76a4, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76aa, 0x76ad, 0x76bd,
+  0x76c1, 0x76c5, 0x76c9, 0x76cb, 0x76cc, 0x76ce, 0x76d4, 0x76d9,
+  0x76e0, 0x76e6, 0x76e8, 0x76ec, 0x76f0, 0x76f1, 0x76f6, 0x76f9,
+  0x76fc, 0x7700, 0x7706, 0x770a, 0x770e, 0x7712, 0x7714, 0x7715,
+  0x7717, 0x7719, 0x771a, 0x771c, 0x7722, 0x7728, 0x772d, 0x772e,
+  0x772f, 0x7734, 0x7735, 0x7736, 0x7739, 0x773d, 0x773e, 0x7742,
+  0x7745, 0x7746, 0x774a, 0x774d, 0x774e, 0x774f, 0x7752, 0x7756,
+  0x7757, 0x775c, 0x775e, 0x775f, 0x7760, 0x7762,
+  /* 0x4f */
+  0x7764, 0x7767, 0x776a, 0x776c, 0x7770, 0x7772, 0x7773, 0x7774,
+  0x777a, 0x777d, 0x7780, 0x7784, 0x778c, 0x778d, 0x7794, 0x7795,
+  0x7796, 0x779a, 0x779f, 0x77a2, 0x77a7, 0x77aa, 0x77ae, 0x77af,
+  0x77b1, 0x77b5, 0x77be, 0x77c3, 0x77c9, 0x77d1, 0x77d2, 0x77d5,
+  0x77d9, 0x77de, 0x77df, 0x77e0, 0x77e4, 0x77e6, 0x77ea, 0x77ec,
+  0x77f0, 0x77f1, 0x77f4, 0x77f8, 0x77fb, 0x7805, 0x7806, 0x7809,
+  0x780d, 0x780e, 0x7811, 0x781d, 0x7821, 0x7822, 0x7823, 0x782d,
+  0x782e, 0x7830, 0x7835, 0x7837, 0x7843, 0x7844, 0x7847, 0x7848,
+  0x784c, 0x784e, 0x7852, 0x785c, 0x785e, 0x7860, 0x7861, 0x7863,
+  0x7864, 0x7868, 0x786a, 0x786e, 0x787a, 0x787e, 0x788a, 0x788f,
+  0x7894, 0x7898, 0x78a1, 0x789d, 0x789e, 0x789f, 0x78a4, 0x78a8,
+  0x78ac, 0x78ad, 0x78b0, 0x78b1, 0x78b2, 0x78b3,
+  /* 0x50 */
+  0x78bb, 0x78bd, 0x78bf, 0x78c7, 0x78c8, 0x78c9, 0x78cc, 0x78ce,
+  0x78d2, 0x78d3, 0x78d5, 0x78d6, 0x78e4, 0x78db, 0x78df, 0x78e0,
+  0x78e1, 0x78e6, 0x78ea, 0x78f2, 0x78f3, 0x7900, 0x78f6, 0x78f7,
+  0x78fa, 0x78fb, 0x78ff, 0x7906, 0x790c, 0x7910, 0x791a, 0x791c,
+  0x791e, 0x791f, 0x7920, 0x7925, 0x7927, 0x7929, 0x792d, 0x7931,
+  0x7934, 0x7935, 0x793b, 0x793d, 0x793f, 0x7944, 0x7945, 0x7946,
+  0x794a, 0x794b, 0x794f, 0x7951, 0x7954, 0x7958, 0x795b, 0x795c,
+  0x7967, 0x7969, 0x796b, 0x7972, 0x7979, 0x797b, 0x797c, 0x797e,
+  0x798b, 0x798c, 0x7991, 0x7993, 0x7994, 0x7995, 0x7996, 0x7998,
+  0x799b, 0x799c, 0x79a1, 0x79a8, 0x79a9, 0x79ab, 0x79af, 0x79b1,
+  0x79b4, 0x79b8, 0x79bb, 0x79c2, 0x79c4, 0x79c7, 0x79c8, 0x79ca,
+  0x79cf, 0x79d4, 0x79d6, 0x79da, 0x79dd, 0x79de,
+  /* 0x51 */
+  0x79e0, 0x79e2, 0x79e5, 0x79ea, 0x79eb, 0x79ed, 0x79f1, 0x79f8,
+  0x79fc, 0x7a02, 0x7a03, 0x7a07, 0x7a09, 0x7a0a, 0x7a0c, 0x7a11,
+  0x7a15, 0x7a1b, 0x7a1e, 0x7a21, 0x7a27, 0x7a2b, 0x7a2d, 0x7a2f,
+  0x7a30, 0x7a34, 0x7a35, 0x7a38, 0x7a39, 0x7a3a, 0x7a44, 0x7a45,
+  0x7a47, 0x7a48, 0x7a4c, 0x7a55, 0x7a56, 0x7a59, 0x7a5c, 0x7a5d,
+  0x7a5f, 0x7a60, 0x7a65, 0x7a67, 0x7a6a, 0x7a6d, 0x7a75, 0x7a78,
+  0x7a7e, 0x7a80, 0x7a82, 0x7a85, 0x7a86, 0x7a8a, 0x7a8b, 0x7a90,
+  0x7a91, 0x7a94, 0x7a9e, 0x7aa0, 0x7aa3, 0x7aac, 0x7ab3, 0x7ab5,
+  0x7ab9, 0x7abb, 0x7abc, 0x7ac6, 0x7ac9, 0x7acc, 0x7ace, 0x7ad1,
+  0x7adb, 0x7ae8, 0x7ae9, 0x7aeb, 0x7aec, 0x7af1, 0x7af4, 0x7afb,
+  0x7afd, 0x7afe, 0x7b07, 0x7b14, 0x7b1f, 0x7b23, 0x7b27, 0x7b29,
+  0x7b2a, 0x7b2b, 0x7b2d, 0x7b2e, 0x7b2f, 0x7b30,
+  /* 0x52 */
+  0x7b31, 0x7b34, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b47, 0x7b4e,
+  0x7b55, 0x7b60, 0x7b64, 0x7b66, 0x7b69, 0x7b6a, 0x7b6d, 0x7b6f,
+  0x7b72, 0x7b73, 0x7b77, 0x7b84, 0x7b89, 0x7b8e, 0x7b90, 0x7b91,
+  0x7b96, 0x7b9b, 0x7b9e, 0x7ba0, 0x7ba5, 0x7bac, 0x7baf, 0x7bb0,
+  0x7bb2, 0x7bb5, 0x7bb6, 0x7bba, 0x7bbb, 0x7bbc, 0x7bbd, 0x7bc2,
+  0x7bc5, 0x7bc8, 0x7bca, 0x7bd4, 0x7bd6, 0x7bd7, 0x7bd9, 0x7bda,
+  0x7bdb, 0x7be8, 0x7bea, 0x7bf2, 0x7bf4, 0x7bf5, 0x7bf8, 0x7bf9,
+  0x7bfa, 0x7bfc, 0x7bfe, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c06,
+  0x7c09, 0x7c0b, 0x7c0c, 0x7c0e, 0x7c0f, 0x7c19, 0x7c1b, 0x7c20,
+  0x7c25, 0x7c26, 0x7c28, 0x7c2c, 0x7c31, 0x7c33, 0x7c34, 0x7c36,
+  0x7c39, 0x7c3a, 0x7c46, 0x7c4a, 0x7c55, 0x7c51, 0x7c52, 0x7c53,
+  0x7c59, 0x7c5a, 0x7c5b, 0x7c5c, 0x7c5d, 0x7c5e,
+  /* 0x53 */
+  0x7c61, 0x7c63, 0x7c67, 0x7c69, 0x7c6d, 0x7c6e, 0x7c70, 0x7c72,
+  0x7c79, 0x7c7c, 0x7c7d, 0x7c86, 0x7c87, 0x7c8f, 0x7c94, 0x7c9e,
+  0x7ca0, 0x7ca6, 0x7cb0, 0x7cb6, 0x7cb7, 0x7cba, 0x7cbb, 0x7cbc,
+  0x7cbf, 0x7cc4, 0x7cc7, 0x7cc8, 0x7cc9, 0x7ccd, 0x7ccf, 0x7cd3,
+  0x7cd4, 0x7cd5, 0x7cd7, 0x7cd9, 0x7cda, 0x7cdd, 0x7ce6, 0x7ce9,
+  0x7ceb, 0x7cf5, 0x7d03, 0x7d07, 0x7d08, 0x7d09, 0x7d0f, 0x7d11,
+  0x7d12, 0x7d13, 0x7d16, 0x7d1d, 0x7d1e, 0x7d23, 0x7d26, 0x7d2a,
+  0x7d2d, 0x7d31, 0x7d3c, 0x7d3d, 0x7d3e, 0x7d40, 0x7d41, 0x7d47,
+  0x7d48, 0x7d4d, 0x7d51, 0x7d53, 0x7d57, 0x7d59, 0x7d5a, 0x7d5c,
+  0x7d5d, 0x7d65, 0x7d67, 0x7d6a, 0x7d70, 0x7d78, 0x7d7a, 0x7d7b,
+  0x7d7f, 0x7d81, 0x7d82, 0x7d83, 0x7d85, 0x7d86, 0x7d88, 0x7d8b,
+  0x7d8c, 0x7d8d, 0x7d91, 0x7d96, 0x7d97, 0x7d9d,
+  /* 0x54 */
+  0x7d9e, 0x7da6, 0x7da7, 0x7daa, 0x7db3, 0x7db6, 0x7db7, 0x7db9,
+  0x7dc2, 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dcc, 0x7dcd, 0x7dce,
+  0x7dd7, 0x7dd9, 0x7e00, 0x7de2, 0x7de5, 0x7de6, 0x7dea, 0x7deb,
+  0x7ded, 0x7df1, 0x7df5, 0x7df6, 0x7df9, 0x7dfa, 0x7e08, 0x7e10,
+  0x7e11, 0x7e15, 0x7e17, 0x7e1c, 0x7e1d, 0x7e20, 0x7e27, 0x7e28,
+  0x7e2c, 0x7e2d, 0x7e2f, 0x7e33, 0x7e36, 0x7e3f, 0x7e44, 0x7e45,
+  0x7e47, 0x7e4e, 0x7e50, 0x7e52, 0x7e58, 0x7e5f, 0x7e61, 0x7e62,
+  0x7e65, 0x7e6b, 0x7e6e, 0x7e6f, 0x7e73, 0x7e78, 0x7e7e, 0x7e81,
+  0x7e86, 0x7e87, 0x7e8a, 0x7e8d, 0x7e91, 0x7e95, 0x7e98, 0x7e9a,
+  0x7e9d, 0x7e9e, 0x7f3c, 0x7f3b, 0x7f3d, 0x7f3e, 0x7f3f, 0x7f43,
+  0x7f44, 0x7f47, 0x7f4f, 0x7f52, 0x7f53, 0x7f5b, 0x7f5c, 0x7f5d,
+  0x7f61, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f6d,
+  /* 0x55 */
+  0x7f71, 0x7f7d, 0x7f7e, 0x7f7f, 0x7f80, 0x7f8b, 0x7f8d, 0x7f8f,
+  0x7f90, 0x7f91, 0x7f96, 0x7f97, 0x7f9c, 0x7fa1, 0x7fa2, 0x7fa6,
+  0x7faa, 0x7fad, 0x7fb4, 0x7fbc, 0x7fbf, 0x7fc0, 0x7fc3, 0x7fc8,
+  0x7fce, 0x7fcf, 0x7fdb, 0x7fdf, 0x7fe3, 0x7fe5, 0x7fe8, 0x7fec,
+  0x7fee, 0x7fef, 0x7ff2, 0x7ffa, 0x7ffd, 0x7ffe, 0x7fff, 0x8007,
+  0x8008, 0x800a, 0x800d, 0x800e, 0x800f, 0x8011, 0x8013, 0x8014,
+  0x8016, 0x801d, 0x801e, 0x801f, 0x8020, 0x8024, 0x8026, 0x802c,
+  0x802e, 0x8030, 0x8034, 0x8035, 0x8037, 0x8039, 0x803a, 0x803c,
+  0x803e, 0x8040, 0x8044, 0x8060, 0x8064, 0x8066, 0x806d, 0x8071,
+  0x8075, 0x8081, 0x8088, 0x808e, 0x809c, 0x809e, 0x80a6, 0x80a7,
+  0x80ab, 0x80b8, 0x80b9, 0x80c8, 0x80cd, 0x80cf, 0x80d2, 0x80d4,
+  0x80d5, 0x80d7, 0x80d8, 0x80e0, 0x80ed, 0x80ee,
+  /* 0x56 */
+  0x80f0, 0x80f2, 0x80f3, 0x80f6, 0x80f9, 0x80fa, 0x80fe, 0x8103,
+  0x810b, 0x8116, 0x8117, 0x8118, 0x811c, 0x811e, 0x8120, 0x8124,
+  0x8127, 0x812c, 0x8130, 0x8135, 0x813a, 0x813c, 0x8145, 0x8147,
+  0x814a, 0x814c, 0x8152, 0x8157, 0x8160, 0x8161, 0x8167, 0x8168,
+  0x8169, 0x816d, 0x816f, 0x8177, 0x8181, 0x8190, 0x8184, 0x8185,
+  0x8186, 0x818b, 0x818e, 0x8196, 0x8198, 0x819b, 0x819e, 0x81a2,
+  0x81ae, 0x81b2, 0x81b4, 0x81bb, 0x81cb, 0x81c3, 0x81c5, 0x81ca,
+  0x81ce, 0x81cf, 0x81d5, 0x81d7, 0x81db, 0x81dd, 0x81de, 0x81e1,
+  0x81e4, 0x81eb, 0x81ec, 0x81f0, 0x81f1, 0x81f2, 0x81f5, 0x81f6,
+  0x81f8, 0x81f9, 0x81fd, 0x81ff, 0x8200, 0x8203, 0x820f, 0x8213,
+  0x8214, 0x8219, 0x821a, 0x821d, 0x8221, 0x8222, 0x8228, 0x8232,
+  0x8234, 0x823a, 0x8243, 0x8244, 0x8245, 0x8246,
+  /* 0x57 */
+  0x824b, 0x824e, 0x824f, 0x8251, 0x8256, 0x825c, 0x8260, 0x8263,
+  0x8267, 0x826d, 0x8274, 0x827b, 0x827d, 0x827f, 0x8280, 0x8281,
+  0x8283, 0x8284, 0x8287, 0x8289, 0x828a, 0x828e, 0x8291, 0x8294,
+  0x8296, 0x8298, 0x829a, 0x829b, 0x82a0, 0x82a1, 0x82a3, 0x82a4,
+  0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ae, 0x82b0, 0x82b2, 0x82b4,
+  0x82b7, 0x82ba, 0x82bc, 0x82be, 0x82bf, 0x82c6, 0x82d0, 0x82d5,
+  0x82da, 0x82e0, 0x82e2, 0x82e4, 0x82e8, 0x82ea, 0x82ed, 0x82ef,
+  0x82f6, 0x82f7, 0x82fd, 0x82fe, 0x8300, 0x8301, 0x8307, 0x8308,
+  0x830a, 0x830b, 0x8354, 0x831b, 0x831d, 0x831e, 0x831f, 0x8321,
+  0x8322, 0x832c, 0x832d, 0x832e, 0x8330, 0x8333, 0x8337, 0x833a,
+  0x833c, 0x833d, 0x8342, 0x8343, 0x8344, 0x8347, 0x834d, 0x834e,
+  0x8351, 0x8355, 0x8356, 0x8357, 0x8370, 0x8378,
+  /* 0x58 */
+  0x837d, 0x837f, 0x8380, 0x8382, 0x8384, 0x8386, 0x838d, 0x8392,
+  0x8394, 0x8395, 0x8398, 0x8399, 0x839b, 0x839c, 0x839d, 0x83a6,
+  0x83a7, 0x83a9, 0x83ac, 0x83be, 0x83bf, 0x83c0, 0x83c7, 0x83c9,
+  0x83cf, 0x83d0, 0x83d1, 0x83d4, 0x83dd, 0x8353, 0x83e8, 0x83ea,
+  0x83f6, 0x83f8, 0x83f9, 0x83fc, 0x8401, 0x8406, 0x840a, 0x840f,
+  0x8411, 0x8415, 0x8419, 0x83ad, 0x842f, 0x8439, 0x8445, 0x8447,
+  0x8448, 0x844a, 0x844d, 0x844f, 0x8451, 0x8452, 0x8456, 0x8458,
+  0x8459, 0x845a, 0x845c, 0x8460, 0x8464, 0x8465, 0x8467, 0x846a,
+  0x8470, 0x8473, 0x8474, 0x8476, 0x8478, 0x847c, 0x847d, 0x8481,
+  0x8485, 0x8492, 0x8493, 0x8495, 0x849e, 0x84a6, 0x84a8, 0x84a9,
+  0x84aa, 0x84af, 0x84b1, 0x84b4, 0x84ba, 0x84bd, 0x84be, 0x84c0,
+  0x84c2, 0x84c7, 0x84c8, 0x84cc, 0x84cf, 0x84d3,
+  /* 0x59 */
+  0x84dc, 0x84e7, 0x84ea, 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f7,
+  0x8532, 0x84fa, 0x84fb, 0x84fd, 0x8502, 0x8503, 0x8507, 0x850c,
+  0x850e, 0x8510, 0x851c, 0x851e, 0x8522, 0x8523, 0x8524, 0x8525,
+  0x8527, 0x852a, 0x852b, 0x852f, 0x8533, 0x8534, 0x8536, 0x853f,
+  0x8546, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8556, 0x8559,
+  0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, 0x8562, 0x8564,
+  0x856b, 0x856f, 0x8579, 0x857a, 0x857b, 0x857d, 0x857f, 0x8581,
+  0x8585, 0x8586, 0x8589, 0x858b, 0x858c, 0x858f, 0x8593, 0x8598,
+  0x859d, 0x859f, 0x85a0, 0x85a2, 0x85a5, 0x85a7, 0x85b4, 0x85b6,
+  0x85b7, 0x85b8, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c2, 0x85c7,
+  0x85ca, 0x85cb, 0x85ce, 0x85ad, 0x85d8, 0x85da, 0x85df, 0x85e0,
+  0x85e6, 0x85e8, 0x85ed, 0x85f3, 0x85f6, 0x85fc,
+  /* 0x5a */
+  0x85ff, 0x8600, 0x8604, 0x8605, 0x860d, 0x860e, 0x8610, 0x8611,
+  0x8612, 0x8618, 0x8619, 0x861b, 0x861e, 0x8621, 0x8627, 0x8629,
+  0x8636, 0x8638, 0x863a, 0x863c, 0x863d, 0x8640, 0x8642, 0x8646,
+  0x8652, 0x8653, 0x8656, 0x8657, 0x8658, 0x8659, 0x865d, 0x8660,
+  0x8661, 0x8662, 0x8663, 0x8664, 0x8669, 0x866c, 0x866f, 0x8675,
+  0x8676, 0x8677, 0x867a, 0x868d, 0x8691, 0x8696, 0x8698, 0x869a,
+  0x869c, 0x86a1, 0x86a6, 0x86a7, 0x86a8, 0x86ad, 0x86b1, 0x86b3,
+  0x86b4, 0x86b5, 0x86b7, 0x86b8, 0x86b9, 0x86bf, 0x86c0, 0x86c1,
+  0x86c3, 0x86c5, 0x86d1, 0x86d2, 0x86d5, 0x86d7, 0x86da, 0x86dc,
+  0x86e0, 0x86e3, 0x86e5, 0x86e7, 0x8688, 0x86fa, 0x86fc, 0x86fd,
+  0x8704, 0x8705, 0x8707, 0x870b, 0x870e, 0x870f, 0x8710, 0x8713,
+  0x8714, 0x8719, 0x871e, 0x871f, 0x8721, 0x8723,
+  /* 0x5b */
+  0x8728, 0x872e, 0x872f, 0x8731, 0x8732, 0x8739, 0x873a, 0x873c,
+  0x873d, 0x873e, 0x8740, 0x8743, 0x8745, 0x874d, 0x8758, 0x875d,
+  0x8761, 0x8764, 0x8765, 0x876f, 0x8771, 0x8772, 0x877b, 0x8783,
+  0x8784, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x878b, 0x878c,
+  0x8790, 0x8793, 0x8795, 0x8797, 0x8798, 0x8799, 0x879e, 0x87a0,
+  0x87a3, 0x87a7, 0x87ac, 0x87ad, 0x87ae, 0x87b1, 0x87b5, 0x87be,
+  0x87bf, 0x87c1, 0x87c8, 0x87c9, 0x87ca, 0x87ce, 0x87d5, 0x87d6,
+  0x87d9, 0x87da, 0x87dc, 0x87df, 0x87e2, 0x87e3, 0x87e4, 0x87ea,
+  0x87eb, 0x87ed, 0x87f1, 0x87f3, 0x87f8, 0x87fa, 0x87ff, 0x8801,
+  0x8803, 0x8806, 0x8809, 0x880a, 0x880b, 0x8810, 0x8819, 0x8812,
+  0x8813, 0x8814, 0x8818, 0x881a, 0x881b, 0x881c, 0x881e, 0x881f,
+  0x8828, 0x882d, 0x882e, 0x8830, 0x8832, 0x8835,
+  /* 0x5c */
+  0x883a, 0x883c, 0x8841, 0x8843, 0x8845, 0x8848, 0x8849, 0x884a,
+  0x884b, 0x884e, 0x8851, 0x8855, 0x8856, 0x8858, 0x885a, 0x885c,
+  0x885f, 0x8860, 0x8864, 0x8869, 0x8871, 0x8879, 0x887b, 0x8880,
+  0x8898, 0x889a, 0x889b, 0x889c, 0x889f, 0x88a0, 0x88a8, 0x88aa,
+  0x88ba, 0x88bd, 0x88be, 0x88c0, 0x88ca, 0x88cb, 0x88cc, 0x88cd,
+  0x88ce, 0x88d1, 0x88d2, 0x88d3, 0x88db, 0x88de, 0x88e7, 0x88ef,
+  0x88f0, 0x88f1, 0x88f5, 0x88f7, 0x8901, 0x8906, 0x890d, 0x890e,
+  0x890f, 0x8915, 0x8916, 0x8918, 0x8919, 0x891a, 0x891c, 0x8920,
+  0x8926, 0x8927, 0x8928, 0x8930, 0x8931, 0x8932, 0x8935, 0x8939,
+  0x893a, 0x893e, 0x8940, 0x8942, 0x8945, 0x8946, 0x8949, 0x894f,
+  0x8952, 0x8957, 0x895a, 0x895b, 0x895c, 0x8961, 0x8962, 0x8963,
+  0x896b, 0x896e, 0x8970, 0x8973, 0x8975, 0x897a,
+  /* 0x5d */
+  0x897b, 0x897c, 0x897d, 0x8989, 0x898d, 0x8990, 0x8994, 0x8995,
+  0x899b, 0x899c, 0x899f, 0x89a0, 0x89a5, 0x89b0, 0x89b4, 0x89b5,
+  0x89b6, 0x89b7, 0x89bc, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8,
+  0x89e5, 0x89e9, 0x89eb, 0x89ed, 0x89f1, 0x89f3, 0x89f6, 0x89f9,
+  0x89fd, 0x89ff, 0x8a04, 0x8a05, 0x8a07, 0x8a0f, 0x8a11, 0x8a12,
+  0x8a14, 0x8a15, 0x8a1e, 0x8a20, 0x8a22, 0x8a24, 0x8a26, 0x8a2b,
+  0x8a2c, 0x8a2f, 0x8a35, 0x8a37, 0x8a3d, 0x8a3e, 0x8a40, 0x8a43,
+  0x8a45, 0x8a47, 0x8a49, 0x8a4d, 0x8a4e, 0x8a53, 0x8a56, 0x8a57,
+  0x8a58, 0x8a5c, 0x8a5d, 0x8a61, 0x8a65, 0x8a67, 0x8a75, 0x8a76,
+  0x8a77, 0x8a79, 0x8a7a, 0x8a7b, 0x8a7e, 0x8a7f, 0x8a80, 0x8a83,
+  0x8a86, 0x8a8b, 0x8a8f, 0x8a90, 0x8a92, 0x8a96, 0x8a97, 0x8a99,
+  0x8a9f, 0x8aa7, 0x8aa9, 0x8aae, 0x8aaf, 0x8ab3,
+  /* 0x5e */
+  0x8ab6, 0x8ab7, 0x8abb, 0x8abe, 0x8ac3, 0x8ac6, 0x8ac8, 0x8ac9,
+  0x8aca, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad7, 0x8add, 0x8adf,
+  0x8aec, 0x8af0, 0x8af4, 0x8af5, 0x8af6, 0x8afc, 0x8aff, 0x8b05,
+  0x8b06, 0x8b0b, 0x8b11, 0x8b1c, 0x8b1e, 0x8b1f, 0x8b0a, 0x8b2d,
+  0x8b30, 0x8b37, 0x8b3c, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46,
+  0x8b48, 0x8b52, 0x8b53, 0x8b54, 0x8b59, 0x8b4d, 0x8b5e, 0x8b63,
+  0x8b6d, 0x8b76, 0x8b78, 0x8b79, 0x8b7c, 0x8b7e, 0x8b81, 0x8b84,
+  0x8b85, 0x8b8b, 0x8b8d, 0x8b8f, 0x8b94, 0x8b95, 0x8b9c, 0x8b9e,
+  0x8b9f, 0x8c38, 0x8c39, 0x8c3d, 0x8c3e, 0x8c45, 0x8c47, 0x8c49,
+  0x8c4b, 0x8c4f, 0x8c51, 0x8c53, 0x8c54, 0x8c57, 0x8c58, 0x8c5b,
+  0x8c5d, 0x8c59, 0x8c63, 0x8c64, 0x8c66, 0x8c68, 0x8c69, 0x8c6d,
+  0x8c73, 0x8c75, 0x8c76, 0x8c7b, 0x8c7e, 0x8c86,
+  /* 0x5f */
+  0x8c87, 0x8c8b, 0x8c90, 0x8c92, 0x8c93, 0x8c99, 0x8c9b, 0x8c9c,
+  0x8ca4, 0x8cb9, 0x8cba, 0x8cc5, 0x8cc6, 0x8cc9, 0x8ccb, 0x8ccf,
+  0x8cd6, 0x8cd5, 0x8cd9, 0x8cdd, 0x8ce1, 0x8ce8, 0x8cec, 0x8cef,
+  0x8cf0, 0x8cf2, 0x8cf5, 0x8cf7, 0x8cf8, 0x8cfe, 0x8cff, 0x8d01,
+  0x8d03, 0x8d09, 0x8d12, 0x8d17, 0x8d1b, 0x8d65, 0x8d69, 0x8d6c,
+  0x8d6e, 0x8d7f, 0x8d82, 0x8d84, 0x8d88, 0x8d8d, 0x8d90, 0x8d91,
+  0x8d95, 0x8d9e, 0x8d9f, 0x8da0, 0x8da6, 0x8dab, 0x8dac, 0x8daf,
+  0x8db2, 0x8db5, 0x8db7, 0x8db9, 0x8dbb, 0x8dc0, 0x8dc5, 0x8dc6,
+  0x8dc7, 0x8dc8, 0x8dca, 0x8dce, 0x8dd1, 0x8dd4, 0x8dd5, 0x8dd7,
+  0x8dd9, 0x8de4, 0x8de5, 0x8de7, 0x8dec, 0x8df0, 0x8dbc, 0x8df1,
+  0x8df2, 0x8df4, 0x8dfd, 0x8e01, 0x8e04, 0x8e05, 0x8e06, 0x8e0b,
+  0x8e11, 0x8e14, 0x8e16, 0x8e20, 0x8e21, 0x8e22,
+  /* 0x60 */
+  0x8e23, 0x8e26, 0x8e27, 0x8e31, 0x8e33, 0x8e36, 0x8e37, 0x8e38,
+  0x8e39, 0x8e3d, 0x8e40, 0x8e41, 0x8e4b, 0x8e4d, 0x8e4e, 0x8e4f,
+  0x8e54, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e61, 0x8e62, 0x8e69,
+  0x8e6c, 0x8e6d, 0x8e6f, 0x8e70, 0x8e71, 0x8e79, 0x8e7a, 0x8e7b,
+  0x8e82, 0x8e83, 0x8e89, 0x8e90, 0x8e92, 0x8e95, 0x8e9a, 0x8e9b,
+  0x8e9d, 0x8e9e, 0x8ea2, 0x8ea7, 0x8ea9, 0x8ead, 0x8eae, 0x8eb3,
+  0x8eb5, 0x8eba, 0x8ebb, 0x8ec0, 0x8ec1, 0x8ec3, 0x8ec4, 0x8ec7,
+  0x8ecf, 0x8ed1, 0x8ed4, 0x8edc, 0x8ee8, 0x8eee, 0x8ef0, 0x8ef1,
+  0x8ef7, 0x8ef9, 0x8efa, 0x8eed, 0x8f00, 0x8f02, 0x8f07, 0x8f08,
+  0x8f0f, 0x8f10, 0x8f16, 0x8f17, 0x8f18, 0x8f1e, 0x8f20, 0x8f21,
+  0x8f23, 0x8f25, 0x8f27, 0x8f28, 0x8f2c, 0x8f2d, 0x8f2e, 0x8f34,
+  0x8f35, 0x8f36, 0x8f37, 0x8f3a, 0x8f40, 0x8f41,
+  /* 0x61 */
+  0x8f43, 0x8f47, 0x8f4f, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55,
+  0x8f58, 0x8f5d, 0x8f5e, 0x8f65, 0x8f9d, 0x8fa0, 0x8fa1, 0x8fa4,
+  0x8fa5, 0x8fa6, 0x8fb5, 0x8fb6, 0x8fb8, 0x8fbe, 0x8fc0, 0x8fc1,
+  0x8fc6, 0x8fca, 0x8fcb, 0x8fcd, 0x8fd0, 0x8fd2, 0x8fd3, 0x8fd5,
+  0x8fe0, 0x8fe3, 0x8fe4, 0x8fe8, 0x8fee, 0x8ff1, 0x8ff5, 0x8ff6,
+  0x8ffb, 0x8ffe, 0x9002, 0x9004, 0x9008, 0x900c, 0x9018, 0x901b,
+  0x9028, 0x9029, 0x902f, 0x902a, 0x902c, 0x902d, 0x9033, 0x9034,
+  0x9037, 0x903f, 0x9043, 0x9044, 0x904c, 0x905b, 0x905d, 0x9062,
+  0x9066, 0x9067, 0x906c, 0x9070, 0x9074, 0x9079, 0x9085, 0x9088,
+  0x908b, 0x908c, 0x908e, 0x9090, 0x9095, 0x9097, 0x9098, 0x9099,
+  0x909b, 0x90a0, 0x90a1, 0x90a2, 0x90a5, 0x90b0, 0x90b2, 0x90b3,
+  0x90b4, 0x90b6, 0x90bd, 0x90cc, 0x90be, 0x90c3,
+  /* 0x62 */
+  0x90c4, 0x90c5, 0x90c7, 0x90c8, 0x90d5, 0x90d7, 0x90d8, 0x90d9,
+  0x90dc, 0x90dd, 0x90df, 0x90e5, 0x90d2, 0x90f6, 0x90eb, 0x90ef,
+  0x90f0, 0x90f4, 0x90fe, 0x90ff, 0x9100, 0x9104, 0x9105, 0x9106,
+  0x9108, 0x910d, 0x9110, 0x9114, 0x9116, 0x9117, 0x9118, 0x911a,
+  0x911c, 0x911e, 0x9120, 0x9125, 0x9122, 0x9123, 0x9127, 0x9129,
+  0x912e, 0x912f, 0x9131, 0x9134, 0x9136, 0x9137, 0x9139, 0x913a,
+  0x913c, 0x913d, 0x9143, 0x9147, 0x9148, 0x914f, 0x9153, 0x9157,
+  0x9159, 0x915a, 0x915b, 0x9161, 0x9164, 0x9167, 0x916d, 0x9174,
+  0x9179, 0x917a, 0x917b, 0x9181, 0x9183, 0x9185, 0x9186, 0x918a,
+  0x918e, 0x9191, 0x9193, 0x9194, 0x9195, 0x9198, 0x919e, 0x91a1,
+  0x91a6, 0x91a8, 0x91ac, 0x91ad, 0x91ae, 0x91b0, 0x91b1, 0x91b2,
+  0x91b3, 0x91b6, 0x91bb, 0x91bc, 0x91bd, 0x91bf,
+  /* 0x63 */
+  0x91c2, 0x91c3, 0x91c5, 0x91d3, 0x91d4, 0x91d7, 0x91d9, 0x91da,
+  0x91de, 0x91e4, 0x91e5, 0x91e9, 0x91ea, 0x91ec, 0x91ed, 0x91ee,
+  0x91ef, 0x91f0, 0x91f1, 0x91f7, 0x91f9, 0x91fb, 0x91fd, 0x9200,
+  0x9201, 0x9204, 0x9205, 0x9206, 0x9207, 0x9209, 0x920a, 0x920c,
+  0x9210, 0x9212, 0x9213, 0x9216, 0x9218, 0x921c, 0x921d, 0x9223,
+  0x9224, 0x9225, 0x9226, 0x9228, 0x922e, 0x922f, 0x9230, 0x9233,
+  0x9235, 0x9236, 0x9238, 0x9239, 0x923a, 0x923c, 0x923e, 0x9240,
+  0x9242, 0x9243, 0x9246, 0x9247, 0x924a, 0x924d, 0x924e, 0x924f,
+  0x9251, 0x9258, 0x9259, 0x925c, 0x925d, 0x9260, 0x9261, 0x9265,
+  0x9267, 0x9268, 0x9269, 0x926e, 0x926f, 0x9270, 0x9275, 0x9276,
+  0x9277, 0x9278, 0x9279, 0x927b, 0x927c, 0x927d, 0x927f, 0x9288,
+  0x9289, 0x928a, 0x928d, 0x928e, 0x9292, 0x9297,
+  /* 0x64 */
+  0x9299, 0x929f, 0x92a0, 0x92a4, 0x92a5, 0x92a7, 0x92a8, 0x92ab,
+  0x92af, 0x92b2, 0x92b6, 0x92b8, 0x92ba, 0x92bb, 0x92bc, 0x92bd,
+  0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c5, 0x92c6, 0x92c7,
+  0x92c8, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92d0, 0x92d3, 0x92d5,
+  0x92d7, 0x92d8, 0x92d9, 0x92dc, 0x92dd, 0x92df, 0x92e0, 0x92e1,
+  0x92e3, 0x92e5, 0x92e7, 0x92e8, 0x92ec, 0x92ee, 0x92f0, 0x92f9,
+  0x92fb, 0x92ff, 0x9300, 0x9302, 0x9308, 0x930d, 0x9311, 0x9314,
+  0x9315, 0x931c, 0x931d, 0x931e, 0x931f, 0x9321, 0x9324, 0x9325,
+  0x9327, 0x9329, 0x932a, 0x9333, 0x9334, 0x9336, 0x9337, 0x9347,
+  0x9348, 0x9349, 0x9350, 0x9351, 0x9352, 0x9355, 0x9357, 0x9358,
+  0x935a, 0x935e, 0x9364, 0x9365, 0x9367, 0x9369, 0x936a, 0x936d,
+  0x936f, 0x9370, 0x9371, 0x9373, 0x9374, 0x9376,
+  /* 0x65 */
+  0x937a, 0x937d, 0x937f, 0x9380, 0x9381, 0x9382, 0x9388, 0x938a,
+  0x938b, 0x938d, 0x938f, 0x9392, 0x9395, 0x9398, 0x939b, 0x939e,
+  0x93a1, 0x93a3, 0x93a4, 0x93a6, 0x93a8, 0x93ab, 0x93b4, 0x93b5,
+  0x93b6, 0x93ba, 0x93a9, 0x93c1, 0x93c4, 0x93c5, 0x93c6, 0x93c7,
+  0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93d3, 0x93d9, 0x93dc,
+  0x93de, 0x93df, 0x93e2, 0x93e6, 0x93e7, 0x93f9, 0x93f7, 0x93f8,
+  0x93fa, 0x93fb, 0x93fd, 0x9401, 0x9402, 0x9404, 0x9408, 0x9409,
+  0x940d, 0x940e, 0x940f, 0x9415, 0x9416, 0x9417, 0x941f, 0x942e,
+  0x942f, 0x9431, 0x9432, 0x9433, 0x9434, 0x943b, 0x943f, 0x943d,
+  0x9443, 0x9445, 0x9448, 0x944a, 0x944c, 0x9455, 0x9459, 0x945c,
+  0x945f, 0x9461, 0x9463, 0x9468, 0x946b, 0x946d, 0x946e, 0x946f,
+  0x9471, 0x9472, 0x9484, 0x9483, 0x9578, 0x9579,
+  /* 0x66 */
+  0x957e, 0x9584, 0x9588, 0x958c, 0x958d, 0x958e, 0x959d, 0x959e,
+  0x959f, 0x95a1, 0x95a6, 0x95a9, 0x95ab, 0x95ac, 0x95b4, 0x95b6,
+  0x95ba, 0x95bd, 0x95bf, 0x95c6, 0x95c8, 0x95c9, 0x95cb, 0x95d0,
+  0x95d1, 0x95d2, 0x95d3, 0x95d9, 0x95da, 0x95dd, 0x95de, 0x95df,
+  0x95e0, 0x95e4, 0x95e6, 0x961d, 0x961e, 0x9622, 0x9624, 0x9625,
+  0x9626, 0x962c, 0x9631, 0x9633, 0x9637, 0x9638, 0x9639, 0x963a,
+  0x963c, 0x963d, 0x9641, 0x9652, 0x9654, 0x9656, 0x9657, 0x9658,
+  0x9661, 0x966e, 0x9674, 0x967b, 0x967c, 0x967e, 0x967f, 0x9681,
+  0x9682, 0x9683, 0x9684, 0x9689, 0x9691, 0x9696, 0x969a, 0x969d,
+  0x969f, 0x96a4, 0x96a5, 0x96a6, 0x96a9, 0x96ae, 0x96af, 0x96b3,
+  0x96ba, 0x96ca, 0x96d2, 0x5db2, 0x96d8, 0x96da, 0x96dd, 0x96de,
+  0x96df, 0x96e9, 0x96ef, 0x96f1, 0x96fa, 0x9702,
+  /* 0x67 */
+  0x9703, 0x9705, 0x9709, 0x971a, 0x971b, 0x971d, 0x9721, 0x9722,
+  0x9723, 0x9728, 0x9731, 0x9733, 0x9741, 0x9743, 0x974a, 0x974e,
+  0x974f, 0x9755, 0x9757, 0x9758, 0x975a, 0x975b, 0x9763, 0x9767,
+  0x976a, 0x976e, 0x9773, 0x9776, 0x9777, 0x9778, 0x977b, 0x977d,
+  0x977f, 0x9780, 0x9789, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a,
+  0x979e, 0x979f, 0x97a2, 0x97ac, 0x97ae, 0x97b1, 0x97b2, 0x97b5,
+  0x97b6, 0x97b8, 0x97b9, 0x97ba, 0x97bc, 0x97be, 0x97bf, 0x97c1,
+  0x97c4, 0x97c5, 0x97c7, 0x97c9, 0x97ca, 0x97cc, 0x97cd, 0x97ce,
+  0x97d0, 0x97d1, 0x97d4, 0x97d7, 0x97d8, 0x97d9, 0x97dd, 0x97de,
+  0x97e0, 0x97db, 0x97e1, 0x97e4, 0x97ef, 0x97f1, 0x97f4, 0x97f7,
+  0x97f8, 0x97fa, 0x9807, 0x980a, 0x9819, 0x980d, 0x980e, 0x9814,
+  0x9816, 0x981c, 0x981e, 0x9820, 0x9823, 0x9826,
+  /* 0x68 */
+  0x982b, 0x982e, 0x982f, 0x9830, 0x9832, 0x9833, 0x9835, 0x9825,
+  0x983e, 0x9844, 0x9847, 0x984a, 0x9851, 0x9852, 0x9853, 0x9856,
+  0x9857, 0x9859, 0x985a, 0x9862, 0x9863, 0x9865, 0x9866, 0x986a,
+  0x986c, 0x98ab, 0x98ad, 0x98ae, 0x98b0, 0x98b4, 0x98b7, 0x98b8,
+  0x98ba, 0x98bb, 0x98bf, 0x98c2, 0x98c5, 0x98c8, 0x98cc, 0x98e1,
+  0x98e3, 0x98e5, 0x98e6, 0x98e7, 0x98ea, 0x98f3, 0x98f6, 0x9902,
+  0x9907, 0x9908, 0x9911, 0x9915, 0x9916, 0x9917, 0x991a, 0x991b,
+  0x991c, 0x991f, 0x9922, 0x9926, 0x9927, 0x992b, 0x9931, 0x9932,
+  0x9933, 0x9934, 0x9935, 0x9939, 0x993a, 0x993b, 0x993c, 0x9940,
+  0x9941, 0x9946, 0x9947, 0x9948, 0x994d, 0x994e, 0x9954, 0x9958,
+  0x9959, 0x995b, 0x995c, 0x995e, 0x995f, 0x9960, 0x999b, 0x999d,
+  0x999f, 0x99a6, 0x99b0, 0x99b1, 0x99b2, 0x99b5,
+  /* 0x69 */
+  0x99b9, 0x99ba, 0x99bd, 0x99bf, 0x99c3, 0x99c9, 0x99d3, 0x99d4,
+  0x99d9, 0x99da, 0x99dc, 0x99de, 0x99e7, 0x99ea, 0x99eb, 0x99ec,
+  0x99f0, 0x99f4, 0x99f5, 0x99f9, 0x99fd, 0x99fe, 0x9a02, 0x9a03,
+  0x9a04, 0x9a0b, 0x9a0c, 0x9a10, 0x9a11, 0x9a16, 0x9a1e, 0x9a20,
+  0x9a22, 0x9a23, 0x9a24, 0x9a27, 0x9a2d, 0x9a2e, 0x9a33, 0x9a35,
+  0x9a36, 0x9a38, 0x9a47, 0x9a41, 0x9a44, 0x9a4a, 0x9a4b, 0x9a4c,
+  0x9a4e, 0x9a51, 0x9a54, 0x9a56, 0x9a5d, 0x9aaa, 0x9aac, 0x9aae,
+  0x9aaf, 0x9ab2, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab9, 0x9abb, 0x9abe,
+  0x9abf, 0x9ac1, 0x9ac3, 0x9ac6, 0x9ac8, 0x9ace, 0x9ad0, 0x9ad2,
+  0x9ad5, 0x9ad6, 0x9ad7, 0x9adb, 0x9adc, 0x9ae0, 0x9ae4, 0x9ae5,
+  0x9ae7, 0x9ae9, 0x9aec, 0x9af2, 0x9af3, 0x9af5, 0x9af9, 0x9afa,
+  0x9afd, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b03,
+  /* 0x6a */
+  0x9b04, 0x9b05, 0x9b08, 0x9b09, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e,
+  0x9b10, 0x9b12, 0x9b16, 0x9b19, 0x9b1b, 0x9b1c, 0x9b20, 0x9b26,
+  0x9b2b, 0x9b2d, 0x9b33, 0x9b34, 0x9b35, 0x9b37, 0x9b39, 0x9b3a,
+  0x9b3d, 0x9b48, 0x9b4b, 0x9b4c, 0x9b55, 0x9b56, 0x9b57, 0x9b5b,
+  0x9b5e, 0x9b61, 0x9b63, 0x9b65, 0x9b66, 0x9b68, 0x9b6a, 0x9b6b,
+  0x9b6c, 0x9b6d, 0x9b6e, 0x9b73, 0x9b75, 0x9b77, 0x9b78, 0x9b79,
+  0x9b7f, 0x9b80, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b89, 0x9b8a,
+  0x9b8b, 0x9b8d, 0x9b8f, 0x9b90, 0x9b94, 0x9b9a, 0x9b9d, 0x9b9e,
+  0x9ba6, 0x9ba7, 0x9ba9, 0x9bac, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb7,
+  0x9bb8, 0x9bbb, 0x9bbc, 0x9bbe, 0x9bbf, 0x9bc1, 0x9bc7, 0x9bc8,
+  0x9bce, 0x9bd0, 0x9bd7, 0x9bd8, 0x9bdd, 0x9bdf, 0x9be5, 0x9be7,
+  0x9bea, 0x9beb, 0x9bef, 0x9bf3, 0x9bf7, 0x9bf8,
+  /* 0x6b */
+  0x9bf9, 0x9bfa, 0x9bfd, 0x9bff, 0x9c00, 0x9c02, 0x9c0b, 0x9c0f,
+  0x9c11, 0x9c16, 0x9c18, 0x9c19, 0x9c1a, 0x9c1c, 0x9c1e, 0x9c22,
+  0x9c23, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c31, 0x9c35,
+  0x9c36, 0x9c37, 0x9c3d, 0x9c41, 0x9c43, 0x9c44, 0x9c45, 0x9c49,
+  0x9c4a, 0x9c4e, 0x9c4f, 0x9c50, 0x9c53, 0x9c54, 0x9c56, 0x9c58,
+  0x9c5b, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c63, 0x9c69, 0x9c6a, 0x9c5c,
+  0x9c6b, 0x9c68, 0x9c6e, 0x9c70, 0x9c72, 0x9c75, 0x9c77, 0x9c7b,
+  0x9ce6, 0x9cf2, 0x9cf7, 0x9cf9, 0x9d0b, 0x9d02, 0x9d11, 0x9d17,
+  0x9d18, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d2f, 0x9d30, 0x9d32, 0x9d33,
+  0x9d34, 0x9d3a, 0x9d3c, 0x9d45, 0x9d3d, 0x9d42, 0x9d43, 0x9d47,
+  0x9d4a, 0x9d53, 0x9d54, 0x9d5f, 0x9d63, 0x9d62, 0x9d65, 0x9d69,
+  0x9d6a, 0x9d6b, 0x9d70, 0x9d76, 0x9d77, 0x9d7b,
+  /* 0x6c */
+  0x9d7c, 0x9d7e, 0x9d83, 0x9d84, 0x9d86, 0x9d8a, 0x9d8d, 0x9d8e,
+  0x9d92, 0x9d93, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9da1, 0x9daa,
+  0x9dac, 0x9dae, 0x9db1, 0x9db5, 0x9db9, 0x9dbc, 0x9dbf, 0x9dc3,
+  0x9dc7, 0x9dc9, 0x9dca, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dda,
+  0x9dde, 0x9ddf, 0x9de0, 0x9de5, 0x9de7, 0x9de9, 0x9deb, 0x9dee,
+  0x9df0, 0x9df3, 0x9df4, 0x9dfe, 0x9e0a, 0x9e02, 0x9e07, 0x9e0e,
+  0x9e10, 0x9e11, 0x9e12, 0x9e15, 0x9e16, 0x9e19, 0x9e1c, 0x9e1d,
+  0x9e7a, 0x9e7b, 0x9e7c, 0x9e80, 0x9e82, 0x9e83, 0x9e84, 0x9e85,
+  0x9e87, 0x9e8e, 0x9e8f, 0x9e96, 0x9e98, 0x9e9b, 0x9e9e, 0x9ea4,
+  0x9ea8, 0x9eac, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb3, 0x9eb4, 0x9eb5,
+  0x9ec6, 0x9ec8, 0x9ecb, 0x9ed5, 0x9edf, 0x9ee4, 0x9ee7, 0x9eec,
+  0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef5,
+  /* 0x6d */
+  0x9ef8, 0x9eff, 0x9f02, 0x9f03, 0x9f09, 0x9f0f, 0x9f10, 0x9f11,
+  0x9f12, 0x9f14, 0x9f16, 0x9f17, 0x9f19, 0x9f1a, 0x9f1b, 0x9f1f,
+  0x9f22, 0x9f26, 0x9f2a, 0x9f2b, 0x9f2f, 0x9f31, 0x9f32, 0x9f34,
+  0x9f37, 0x9f39, 0x9f3a, 0x9f3c, 0x9f3d, 0x9f3f, 0x9f41, 0x9f43,
+  0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f53, 0x9f55, 0x9f56, 0x9f57,
+  0x9f58, 0x9f5a, 0x9f5d, 0x9f5e, 0x9f68, 0x9f69, 0x9f6d, 0x9f6e,
+  0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f75, 0x9f7a, 0x9f7d, 0x9f8f,
+  0x9f90, 0x9f91, 0x9f92, 0x9f94, 0x9f96, 0x9f97, 0x9f9e, 0x9fa1,
+  0x9fa2, 0x9fa3, 0x9fa5,
+};
+
+static int
+jisx0212_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 == 0x22) || (c1 >= 0x26 && c1 <= 0x27) || (c1 >= 0x29 && c1 <= 0x2b) || (c1 >= 0x30 && c1 <= 0x6d)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        if (i < 470) {
+          if (i < 175)
+            wc = jisx0212_2uni_page22[i-94];
+        } else if (i < 752) {
+          if (i < 658)
+            wc = jisx0212_2uni_page26[i-470];
+        } else if (i < 1410) {
+          if (i < 1027)
+            wc = jisx0212_2uni_page29[i-752];
+        } else {
+          if (i < 7211)
+            wc = jisx0212_2uni_page30[i-1410];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short jisx0212_2charset[6067] = {
+  0x2237, 0x2242, 0x2270, 0x2243, 0x226d, 0x226c, 0x226e, 0x2234,
+  0x2231, 0x226b, 0x2244, 0x2a22, 0x2a21, 0x2a24, 0x2a2a, 0x2a23,
+  0x2a29, 0x2921, 0x2a2e, 0x2a32, 0x2a31, 0x2a34, 0x2a33, 0x2a40,
+  0x2a3f, 0x2a42, 0x2a41, 0x2a50, 0x2a52, 0x2a51, 0x2a54, 0x2a58,
+  0x2a53, 0x292c, 0x2a63, 0x2a62, 0x2a65, 0x2a64, 0x2a72, 0x2930,
+  0x294e, 0x2b22, 0x2b21, 0x2b24, 0x2b2a, 0x2b23, 0x2b29, 0x2941,
+  0x2b2e, 0x2b32, 0x2b31, 0x2b34, 0x2b33, 0x2b40, 0x2b3f, 0x2b42,
+  0x2b41, 0x2943, 0x2b50, 0x2b52, 0x2b51, 0x2b54, 0x2b58, 0x2b53,
+  0x294c, 0x2b63, 0x2b62, 0x2b65, 0x2b64, 0x2b72, 0x2950, 0x2b73,
+  0x2a27, 0x2b27, 0x2a25, 0x2b25, 0x2a28, 0x2b28, 0x2a2b, 0x2b2b,
+  0x2a2c, 0x2b2c, 0x2a2f, 0x2b2f, 0x2a2d, 0x2b2d, 0x2a30, 0x2b30,
+  0x2922, 0x2942, 0x2a37, 0x2b37, 0x2a36, 0x2b36, 0x2a38, 0x2b38,
+  0x2a35, 0x2b35, 0x2a3a, 0x2b3a, 0x2a3b, 0x2b3b, 0x2a3d, 0x2b3d,
+  0x2a3c, 0x2a3e, 0x2b3e, 0x2924, 0x2944, 0x2a47, 0x2b47, 0x2a45,
+  0x2b45, 0x2a46, 0x2b46, 0x2a44, 0x2945, 0x2926, 0x2946, 0x2a48,
+  0x2b48, 0x2a49, 0x2b49, 0x2947, 0x2a4a, 0x2b4a, 0x2a4c, 0x2b4c,
+  0x2a4b, 0x2b4b, 0x2929, 0x2949, 0x2928, 0x2948, 0x2a4d, 0x2b4d,
+  0x2a4f, 0x2b4f, 0x2a4e, 0x2b4e, 0x294a, 0x292b, 0x294b, 0x2a57,
+  0x2b57, 0x2a56, 0x2b56, 0x292d, 0x294d, 0x2a59, 0x2b59, 0x2a5b,
+  0x2b5b, 0x2a5a, 0x2b5a, 0x2a5c, 0x2b5c, 0x2a5d, 0x2b5d, 0x2a5f,
+  0x2b5f, 0x2a5e, 0x2b5e, 0x2a61, 0x2b61, 0x2a60, 0x2b60, 0x292f,
+  0x294f, 0x2a6c, 0x2b6c, 0x2a69, 0x2b69, 0x2a66, 0x2b66, 0x2a6b,
+  0x2b6b, 0x2a68, 0x2b68, 0x2a6a, 0x2b6a, 0x2a71, 0x2b71, 0x2a74,
+  0x2b74, 0x2a73, 0x2a75, 0x2b75, 0x2a77, 0x2b77, 0x2a76, 0x2b76,
+  0x2a26, 0x2b26, 0x2a43, 0x2b43, 0x2a55, 0x2b55, 0x2a67, 0x2b67,
+  0x2a70, 0x2b70, 0x2a6d, 0x2b6d, 0x2a6f, 0x2b6f, 0x2a6e, 0x2b6e,
+  0x2b39, 0x2230, 0x222f, 0x2232, 0x2236, 0x2235, 0x2233, 0x2238,
+  0x2239, 0x2661, 0x2662, 0x2663, 0x2664, 0x2667, 0x2669, 0x266c,
+  0x2676, 0x2665, 0x266a, 0x2671, 0x2672, 0x2673, 0x2674, 0x267b,
+  0x2678, 0x2675, 0x267a, 0x2677, 0x2679, 0x267c, 0x2742, 0x2743,
+  0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b,
+  0x274c, 0x274d, 0x274e, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776,
+  0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e,
+  0x2271, 0x226f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026,
+  0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e,
+  0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036,
+  0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e,
+  0x303f, 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046,
+  0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e,
+  0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056,
+  0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e,
+  0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067,
+  0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f,
+  0x3070, 0x305f, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076,
+  0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e,
+  0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
+  0x3129, 0x312a, 0x312b, 0x312c, 0x312d, 0x312e, 0x312f, 0x3130,
+  0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
+  0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
+  0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
+  0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
+  0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
+  0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x3176, 0x315f,
+  0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167,
+  0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f,
+  0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3177, 0x3178,
+  0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x3221, 0x3222,
+  0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a,
+  0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x3230, 0x3231, 0x3232,
+  0x3233, 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323a,
+  0x323b, 0x323c, 0x323d, 0x323e, 0x323f, 0x3240, 0x3241, 0x3242,
+  0x3243, 0x3244, 0x3245, 0x3251, 0x3246, 0x3247, 0x3248, 0x3249,
+  0x324a, 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3250, 0x3252,
+  0x3253, 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a,
+  0x325b, 0x325c, 0x325d, 0x325e, 0x325f, 0x3260, 0x3261, 0x3262,
+  0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a,
+  0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272,
+  0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a,
+  0x327b, 0x327c, 0x327d, 0x327e, 0x3321, 0x3322, 0x3323, 0x3324,
+  0x3325, 0x3326, 0x3327, 0x3328, 0x3329, 0x332a, 0x332b, 0x332c,
+  0x332d, 0x332e, 0x332f, 0x3330, 0x3331, 0x3332, 0x3333, 0x3334,
+  0x3335, 0x3336, 0x3337, 0x3338, 0x3339, 0x333a, 0x333b, 0x333c,
+  0x333d, 0x333e, 0x333f, 0x3340, 0x3341, 0x3342, 0x3343, 0x3344,
+  0x3345, 0x3346, 0x3347, 0x3348, 0x3349, 0x334a, 0x334b, 0x334c,
+  0x334d, 0x334e, 0x334f, 0x3350, 0x3351, 0x3352, 0x3353, 0x3354,
+  0x3355, 0x3356, 0x3357, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c,
+  0x335d, 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364,
+  0x3365, 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c,
+  0x336d, 0x336e, 0x336f, 0x3370, 0x3371, 0x3372, 0x3373, 0x3374,
+  0x3375, 0x3376, 0x3377, 0x3378, 0x3379, 0x337a, 0x337b, 0x337c,
+  0x337d, 0x337e, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426,
+  0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e,
+  0x342f, 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436,
+  0x3438, 0x3437, 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e,
+  0x343f, 0x3440, 0x3441, 0x3442, 0x3443, 0x3444, 0x3445, 0x3446,
+  0x3447, 0x3448, 0x3449, 0x344a, 0x344b, 0x344c, 0x344d, 0x344e,
+  0x344f, 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, 0x3455, 0x3456,
+  0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 0x345d, 0x345e,
+  0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 0x3466,
+  0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e,
+  0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476,
+  0x3477, 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e,
+  0x3521, 0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528,
+  0x3529, 0x352a, 0x352b, 0x352c, 0x352d, 0x352e, 0x352f, 0x3530,
+  0x3531, 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538,
+  0x3539, 0x353a, 0x353b, 0x353c, 0x353d, 0x353e, 0x353f, 0x3540,
+  0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548,
+  0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 0x3550,
+  0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558,
+  0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560,
+  0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568,
+  0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570,
+  0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578,
+  0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x3621, 0x3622,
+  0x3623, 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 0x362a,
+  0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 0x3631, 0x3632,
+  0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 0x363a,
+  0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642,
+  0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a,
+  0x364b, 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652,
+  0x3653, 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a,
+  0x365b, 0x365c, 0x365d, 0x365e, 0x365f, 0x3660, 0x3661, 0x3662,
+  0x3663, 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, 0x3669, 0x366a,
+  0x366b, 0x366c, 0x366d, 0x3670, 0x3671, 0x366e, 0x366f, 0x3672,
+  0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367a,
+  0x367b, 0x367d, 0x367e, 0x367c, 0x3721, 0x3722, 0x3723, 0x3724,
+  0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c,
+  0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
+  0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
+  0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
+  0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
+  0x374d, 0x374e, 0x374f, 0x3750, 0x3751, 0x3752, 0x3753, 0x3754,
+  0x3755, 0x3756, 0x3757, 0x3760, 0x3758, 0x3759, 0x375a, 0x375b,
+  0x375c, 0x375d, 0x375e, 0x375f, 0x3761, 0x3762, 0x3763, 0x3764,
+  0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 0x376c,
+  0x376d, 0x377e, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773,
+  0x3774, 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b,
+  0x377c, 0x377d, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826,
+  0x3827, 0x3828, 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e,
+  0x382f, 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836,
+  0x3837, 0x3838, 0x3839, 0x383a, 0x383b, 0x383c, 0x383d, 0x383e,
+  0x383f, 0x3840, 0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846,
+  0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 0x384d, 0x384e,
+  0x3850, 0x3851, 0x384f, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856,
+  0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e,
+  0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3867,
+  0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f,
+  0x3870, 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877,
+  0x3878, 0x3879, 0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x3921,
+  0x3922, 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929,
+  0x392a, 0x392b, 0x392c, 0x392d, 0x392e, 0x392f, 0x3930, 0x3931,
+  0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939,
+  0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 0x3940, 0x3941,
+  0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949,
+  0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951,
+  0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959,
+  0x395a, 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961,
+  0x3962, 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969,
+  0x396a, 0x396b, 0x396c, 0x396d, 0x396e, 0x396f, 0x3970, 0x3971,
+  0x3972, 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978, 0x3979,
+  0x397a, 0x397b, 0x397c, 0x397d, 0x397e, 0x3a21, 0x3a22, 0x3a23,
+  0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 0x3a2a, 0x3a2b,
+  0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a33, 0x3a34,
+  0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a32, 0x3a39, 0x3a3a, 0x3a3b,
+  0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43,
+  0x3a44, 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b,
+  0x3a4c, 0x3a4d, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53,
+  0x3a54, 0x3a55, 0x3a56, 0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b,
+  0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, 0x3a60, 0x3a61, 0x3a62, 0x3a63,
+  0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 0x3a6a, 0x3a6b,
+  0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a72, 0x3a73,
+  0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a, 0x3a7b,
+  0x3a7c, 0x3a7d, 0x3a7e, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25,
+  0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d,
+  0x3b2e, 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35,
+  0x3b36, 0x3b37, 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3d, 0x3b3c,
+  0x3b3e, 0x3b3f, 0x3b40, 0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45,
+  0x3b47, 0x3b48, 0x3b49, 0x3b4a, 0x3b46, 0x3b4b, 0x3b4c, 0x3b4d,
+  0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 0x3b53, 0x3b57, 0x3b55,
+  0x3b54, 0x3b56, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 0x3b5c, 0x3b5d,
+  0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64, 0x3b65,
+  0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d,
+  0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x6674, 0x3b73, 0x3b74,
+  0x3b75, 0x3b76, 0x3b77, 0x3b78, 0x3b7a, 0x3b79, 0x3b7b, 0x3b7c,
+  0x3b7d, 0x3b7e, 0x3c21, 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26,
+  0x3c27, 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, 0x3c2c, 0x3c2e, 0x3c2d,
+  0x3c2f, 0x3c30, 0x3c31, 0x3c34, 0x3c32, 0x3c33, 0x3c35, 0x3c36,
+  0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 0x3c3d, 0x3c3e,
+  0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 0x3c46,
+  0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e,
+  0x3c4f, 0x3c50, 0x3c52, 0x3c51, 0x3c53, 0x3c54, 0x3c55, 0x3c56,
+  0x3c57, 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e,
+  0x3c5f, 0x3c60, 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66,
+  0x3c67, 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e,
+  0x3c6f, 0x3c70, 0x3c71, 0x3c72, 0x3c73, 0x3c74, 0x3c75, 0x3c76,
+  0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 0x3c7c, 0x3c7d, 0x3c7e,
+  0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 0x3d27, 0x3d28,
+  0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, 0x3d2e, 0x3d2f, 0x3d32,
+  0x3d30, 0x3d31, 0x3d33, 0x3d34, 0x3d35, 0x3d36, 0x3d37, 0x3d38,
+  0x3d39, 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, 0x3d3e, 0x3d3f, 0x3d40,
+  0x3d41, 0x3d42, 0x3d43, 0x3d44, 0x3d45, 0x3d46, 0x3d47, 0x3d48,
+  0x3d49, 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, 0x3d4e, 0x3d4f, 0x3d50,
+  0x3d51, 0x3d52, 0x3d53, 0x3d54, 0x3d55, 0x3d56, 0x3d57, 0x3d58,
+  0x3d59, 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, 0x3d5e, 0x3d5f, 0x3d60,
+  0x3d61, 0x3d62, 0x3d63, 0x3d64, 0x3d65, 0x3d66, 0x3d67, 0x3d68,
+  0x3d69, 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, 0x3d6e, 0x3d6f, 0x3d70,
+  0x3d71, 0x3d72, 0x3d73, 0x3d74, 0x3d75, 0x3d76, 0x3d77, 0x3d78,
+  0x3d79, 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, 0x3d7e, 0x3e21, 0x3e22,
+  0x3e23, 0x3e24, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 0x3e2a,
+  0x3e2b, 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e32,
+  0x3e33, 0x3e34, 0x3e35, 0x3e36, 0x3e37, 0x3e38, 0x3e39, 0x3e3a,
+  0x3e3b, 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, 0x3e40, 0x3e41, 0x3e42,
+  0x3e43, 0x3e44, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 0x3e4a,
+  0x3e4b, 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e52,
+  0x3e53, 0x3e54, 0x3e55, 0x3e56, 0x3e57, 0x3e58, 0x3e59, 0x3e5a,
+  0x3e5b, 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, 0x3e60, 0x3e61, 0x3e62,
+  0x3e63, 0x3e64, 0x3e65, 0x3e66, 0x3e67, 0x3e68, 0x3e69, 0x3e6a,
+  0x3e6b, 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, 0x3e70, 0x3e71, 0x3e72,
+  0x3e73, 0x3e74, 0x3e75, 0x3e76, 0x3e77, 0x3e78, 0x3e79, 0x3e7a,
+  0x3e7b, 0x3e7e, 0x3e7c, 0x3e7d, 0x3f21, 0x3f22, 0x3f23, 0x3f24,
+  0x3f25, 0x3f26, 0x3f27, 0x3f28, 0x3f29, 0x3f2a, 0x3f2b, 0x3f2c,
+  0x3f2d, 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, 0x3f32, 0x3f33, 0x3f34,
+  0x3f35, 0x3f36, 0x3f37, 0x3f38, 0x3f39, 0x3f3a, 0x3f3b, 0x3f3c,
+  0x3f3d, 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, 0x3f42, 0x3f43, 0x3f44,
+  0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, 0x3f4a, 0x3f4b, 0x3f4c,
+  0x3f4d, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f52, 0x3f53, 0x3f54,
+  0x3f55, 0x3f56, 0x3f57, 0x3f58, 0x3f59, 0x3f5a, 0x3f5b, 0x3f5c,
+  0x3f5d, 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, 0x3f62, 0x3f63, 0x3f64,
+  0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, 0x3f6a, 0x3f6b, 0x3f6c,
+  0x3f6d, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f72, 0x3f73, 0x3f74,
+  0x3f75, 0x3f76, 0x3f77, 0x3f78, 0x3f79, 0x3f7a, 0x3f7b, 0x3f7c,
+  0x3f7d, 0x3f7e, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, 0x4026,
+  0x4027, 0x4028, 0x4029, 0x402a, 0x402b, 0x402c, 0x402d, 0x402e,
+  0x402f, 0x4030, 0x4031, 0x4032, 0x4033, 0x4034, 0x4035, 0x4036,
+  0x4037, 0x4038, 0x4039, 0x403a, 0x403b, 0x403c, 0x403d, 0x403e,
+  0x403f, 0x4040, 0x4041, 0x4042, 0x4043, 0x4044, 0x4045, 0x4046,
+  0x4047, 0x4048, 0x4049, 0x404a, 0x404b, 0x404c, 0x404d, 0x404e,
+  0x404f, 0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056,
+  0x4057, 0x4058, 0x4059, 0x405a, 0x405b, 0x405c, 0x405d, 0x405e,
+  0x405f, 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066,
+  0x4067, 0x4068, 0x4069, 0x406a, 0x406b, 0x406c, 0x406d, 0x406e,
+  0x406f, 0x4070, 0x4071, 0x4072, 0x4073, 0x4074, 0x4075, 0x4076,
+  0x4077, 0x4078, 0x4079, 0x407a, 0x407b, 0x407c, 0x407d, 0x407e,
+  0x4121, 0x4122, 0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128,
+  0x4129, 0x412a, 0x412b, 0x412c, 0x412d, 0x412e, 0x412f, 0x4130,
+  0x4131, 0x4132, 0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138,
+  0x4139, 0x413a, 0x413b, 0x413c, 0x413d, 0x413e, 0x413f, 0x4140,
+  0x4141, 0x4142, 0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148,
+  0x4149, 0x414a, 0x414b, 0x414c, 0x414d, 0x414e, 0x414f, 0x4150,
+  0x4151, 0x4152, 0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158,
+  0x4159, 0x415a, 0x415b, 0x415c, 0x415d, 0x415e, 0x415f, 0x4160,
+  0x4161, 0x4162, 0x4163, 0x4164, 0x4165, 0x4166, 0x4167, 0x4168,
+  0x4169, 0x416a, 0x416b, 0x416c, 0x416d, 0x416e, 0x416f, 0x4170,
+  0x4171, 0x4172, 0x4173, 0x4174, 0x4175, 0x4176, 0x4177, 0x4178,
+  0x4179, 0x417a, 0x417b, 0x417c, 0x417d, 0x417e, 0x4221, 0x4222,
+  0x4223, 0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 0x422a,
+  0x422b, 0x422c, 0x422d, 0x422e, 0x4230, 0x422f, 0x4231, 0x4232,
+  0x4233, 0x4234, 0x4235, 0x4237, 0x4236, 0x4238, 0x4239, 0x423a,
+  0x423b, 0x423c, 0x423d, 0x423e, 0x4240, 0x4241, 0x4242, 0x4244,
+  0x4245, 0x4247, 0x4248, 0x4249, 0x424a, 0x424c, 0x4243, 0x4246,
+  0x424b, 0x424d, 0x424e, 0x424f, 0x4250, 0x4251, 0x4252, 0x4253,
+  0x4254, 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425a, 0x425b,
+  0x425c, 0x425d, 0x425e, 0x425f, 0x4260, 0x4261, 0x4262, 0x4263,
+  0x4264, 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 0x426a, 0x426b,
+  0x426c, 0x426d, 0x423f, 0x426e, 0x426f, 0x4270, 0x4271, 0x4272,
+  0x4273, 0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, 0x427a,
+  0x427b, 0x427c, 0x427d, 0x427e, 0x4321, 0x4322, 0x4323, 0x4324,
+  0x4325, 0x4326, 0x4327, 0x4328, 0x4329, 0x432a, 0x432b, 0x432c,
+  0x432d, 0x432e, 0x432f, 0x4330, 0x4331, 0x4332, 0x4333, 0x4334,
+  0x4335, 0x4336, 0x4337, 0x4339, 0x433a, 0x433b, 0x433c, 0x433d,
+  0x433e, 0x433f, 0x4340, 0x4341, 0x4342, 0x4343, 0x4344, 0x4345,
+  0x4346, 0x4347, 0x4348, 0x4338, 0x434a, 0x434b, 0x434c, 0x434d,
+  0x434f, 0x434e, 0x4350, 0x4351, 0x4352, 0x4353, 0x4354, 0x4355,
+  0x4356, 0x4357, 0x4358, 0x4359, 0x435a, 0x435b, 0x4349, 0x435c,
+  0x435d, 0x435e, 0x435f, 0x4360, 0x4361, 0x4362, 0x4363, 0x4364,
+  0x4365, 0x4366, 0x4367, 0x4368, 0x4369, 0x436a, 0x436b, 0x436c,
+  0x436d, 0x436e, 0x436f, 0x4370, 0x4371, 0x4372, 0x4373, 0x4374,
+  0x4375, 0x4376, 0x4377, 0x4378, 0x4379, 0x437a, 0x437b, 0x437c,
+  0x437d, 0x437e, 0x4421, 0x4422, 0x4423, 0x4424, 0x4425, 0x4426,
+  0x4427, 0x4428, 0x4429, 0x442a, 0x442b, 0x442c, 0x442d, 0x442e,
+  0x442f, 0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435, 0x4436,
+  0x4437, 0x4438, 0x4439, 0x443a, 0x443b, 0x443c, 0x443d, 0x443e,
+  0x443f, 0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445, 0x4446,
+  0x4447, 0x4448, 0x4449, 0x444a, 0x444b, 0x444c, 0x444d, 0x444e,
+  0x444f, 0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455, 0x4456,
+  0x4457, 0x4458, 0x4459, 0x445a, 0x445b, 0x445c, 0x445d, 0x445e,
+  0x445f, 0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465, 0x4466,
+  0x4467, 0x4468, 0x4469, 0x446a, 0x446b, 0x446c, 0x446d, 0x446e,
+  0x446f, 0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475, 0x4476,
+  0x4477, 0x4478, 0x4479, 0x447a, 0x447b, 0x447c, 0x447d, 0x447e,
+  0x4521, 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527, 0x4528,
+  0x4529, 0x452a, 0x452b, 0x452c, 0x452d, 0x452e, 0x452f, 0x4530,
+  0x4531, 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537, 0x4538,
+  0x4539, 0x453a, 0x453b, 0x453c, 0x453d, 0x453e, 0x453f, 0x4540,
+  0x4541, 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548,
+  0x4549, 0x454a, 0x454b, 0x454d, 0x454c, 0x454e, 0x454f, 0x4550,
+  0x4551, 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557, 0x4558,
+  0x4559, 0x455a, 0x455b, 0x455c, 0x455d, 0x455e, 0x455f, 0x4560,
+  0x4561, 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567, 0x4568,
+  0x4569, 0x456a, 0x456b, 0x456c, 0x456d, 0x456e, 0x456f, 0x4570,
+  0x4571, 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577, 0x4578,
+  0x4579, 0x457a, 0x457b, 0x457c, 0x457d, 0x457e, 0x4621, 0x4622,
+  0x4623, 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629, 0x462a,
+  0x462b, 0x462c, 0x462d, 0x462e, 0x462f, 0x4630, 0x4631, 0x4632,
+  0x4633, 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, 0x4639, 0x463a,
+  0x463b, 0x463c, 0x463d, 0x463e, 0x463f, 0x4640, 0x4641, 0x4642,
+  0x4643, 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649, 0x464a,
+  0x464b, 0x464c, 0x464d, 0x464e, 0x464f, 0x4650, 0x4651, 0x4652,
+  0x4653, 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659, 0x465a,
+  0x465b, 0x465c, 0x465d, 0x465e, 0x465f, 0x4660, 0x4736, 0x4661,
+  0x4662, 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669,
+  0x466a, 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, 0x4670, 0x4671,
+  0x4672, 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679,
+  0x467a, 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, 0x4722, 0x4723,
+  0x4724, 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, 0x472a, 0x472b,
+  0x472c, 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, 0x4732, 0x4733,
+  0x4734, 0x4735, 0x4737, 0x4738, 0x4739, 0x473a, 0x473b, 0x473c,
+  0x473d, 0x473e, 0x473f, 0x4740, 0x4741, 0x4742, 0x4743, 0x4744,
+  0x4745, 0x4746, 0x4747, 0x4748, 0x4749, 0x474a, 0x474b, 0x474c,
+  0x474d, 0x474e, 0x474f, 0x4750, 0x4751, 0x4752, 0x4753, 0x4754,
+  0x4755, 0x4756, 0x4757, 0x4758, 0x4759, 0x475a, 0x475b, 0x475c,
+  0x475d, 0x475e, 0x475f, 0x4760, 0x4761, 0x4762, 0x4763, 0x4764,
+  0x4765, 0x4766, 0x4767, 0x4768, 0x4769, 0x476a, 0x476b, 0x476c,
+  0x476d, 0x476e, 0x476f, 0x4770, 0x4771, 0x4772, 0x4773, 0x4774,
+  0x4775, 0x4776, 0x4777, 0x4778, 0x4779, 0x477a, 0x477b, 0x477c,
+  0x477d, 0x477e, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826,
+  0x4827, 0x4828, 0x4829, 0x482a, 0x482b, 0x482c, 0x482d, 0x482e,
+  0x482f, 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836,
+  0x4837, 0x4838, 0x4839, 0x483a, 0x483b, 0x483c, 0x483d, 0x483e,
+  0x483f, 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846,
+  0x4847, 0x4848, 0x4849, 0x484a, 0x484b, 0x484c, 0x4853, 0x484d,
+  0x484e, 0x484f, 0x4850, 0x4851, 0x4852, 0x4854, 0x4855, 0x4856,
+  0x4857, 0x4858, 0x4859, 0x485a, 0x485b, 0x485c, 0x485d, 0x485e,
+  0x485f, 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866,
+  0x4867, 0x4868, 0x4869, 0x486a, 0x486b, 0x486c, 0x486d, 0x486e,
+  0x486f, 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876,
+  0x4877, 0x4878, 0x4879, 0x487a, 0x487b, 0x487c, 0x487d, 0x487e,
+  0x4921, 0x4922, 0x4923, 0x4924, 0x4925, 0x4926, 0x4927, 0x4928,
+  0x4929, 0x492a, 0x492b, 0x492c, 0x492d, 0x492e, 0x492f, 0x4930,
+  0x4931, 0x4932, 0x4933, 0x4934, 0x4935, 0x4936, 0x4937, 0x4938,
+  0x4939, 0x493a, 0x493b, 0x493c, 0x4941, 0x493d, 0x493e, 0x493f,
+  0x4940, 0x4942, 0x4943, 0x4944, 0x4945, 0x4946, 0x4947, 0x4948,
+  0x4949, 0x494a, 0x494b, 0x494c, 0x494d, 0x494e, 0x494f, 0x4950,
+  0x4951, 0x4952, 0x4953, 0x4954, 0x4955, 0x4956, 0x4957, 0x4958,
+  0x4959, 0x495a, 0x495b, 0x495c, 0x495d, 0x495e, 0x495f, 0x4960,
+  0x4961, 0x4962, 0x4963, 0x4964, 0x4965, 0x4966, 0x4967, 0x4968,
+  0x4969, 0x496a, 0x496b, 0x496c, 0x496d, 0x496e, 0x496f, 0x4970,
+  0x4971, 0x4972, 0x4973, 0x4974, 0x4975, 0x4976, 0x4977, 0x4978,
+  0x4979, 0x497a, 0x497b, 0x497c, 0x497d, 0x497e, 0x4a21, 0x4a22,
+  0x4a23, 0x4a24, 0x4a25, 0x4a26, 0x4a27, 0x4a28, 0x4a29, 0x4a2a,
+  0x4a2b, 0x4a2c, 0x4a2d, 0x4a2e, 0x4a2f, 0x4a30, 0x4a31, 0x4a32,
+  0x4a33, 0x4a34, 0x4a35, 0x4a36, 0x4a37, 0x4a38, 0x4a39, 0x4a3a,
+  0x4a3b, 0x4a3c, 0x4a3d, 0x4a3e, 0x4a3f, 0x4a40, 0x4a41, 0x4a42,
+  0x4a43, 0x4a44, 0x4a45, 0x4a46, 0x4a47, 0x4a48, 0x4a49, 0x4a4a,
+  0x4a4b, 0x4a4c, 0x4a4d, 0x4a4e, 0x4a4f, 0x4a50, 0x4a51, 0x4a52,
+  0x4a53, 0x4a54, 0x4a55, 0x4a56, 0x4a57, 0x4a58, 0x4a59, 0x4a5a,
+  0x4a5b, 0x4a5c, 0x4a5d, 0x4a5e, 0x4a5f, 0x4a60, 0x4a61, 0x4a62,
+  0x4a63, 0x4a64, 0x4a65, 0x4a66, 0x4a67, 0x4a68, 0x4a69, 0x4a6a,
+  0x4a6b, 0x4a6c, 0x4a6d, 0x4a6e, 0x4a6f, 0x4a70, 0x4a71, 0x4a72,
+  0x4a73, 0x4a74, 0x4a75, 0x4a76, 0x4a77, 0x4a78, 0x4a79, 0x4a7a,
+  0x4a7b, 0x4a7c, 0x4a7d, 0x4a7e, 0x4b21, 0x4b22, 0x4b23, 0x4b24,
+  0x4b25, 0x4b26, 0x4b27, 0x4b28, 0x4b29, 0x4b2a, 0x4b2b, 0x4b2c,
+  0x4b2d, 0x4b2e, 0x4b2f, 0x4b30, 0x4b31, 0x4b32, 0x4b33, 0x4b34,
+  0x4b35, 0x4b36, 0x4b37, 0x4b38, 0x4b39, 0x4b3a, 0x4b3b, 0x4b3c,
+  0x4b3d, 0x4b3e, 0x4b3f, 0x4b40, 0x4b41, 0x4b42, 0x4b43, 0x4b44,
+  0x4b45, 0x4b46, 0x4b47, 0x4b48, 0x4b49, 0x4b4a, 0x4b4b, 0x4b4c,
+  0x4b4d, 0x4b4e, 0x4b4f, 0x4b50, 0x4b51, 0x4b52, 0x4b53, 0x4b54,
+  0x4b55, 0x4b56, 0x4b57, 0x4b58, 0x4b59, 0x4b5a, 0x4b5b, 0x4b5c,
+  0x4b5d, 0x4b5e, 0x4b5f, 0x4b60, 0x4b61, 0x4b62, 0x4b63, 0x4b64,
+  0x4b65, 0x4b66, 0x4b67, 0x4b68, 0x4b69, 0x4b6a, 0x4b6b, 0x4b6c,
+  0x4b6d, 0x4b6e, 0x4b6f, 0x4b70, 0x4b71, 0x4b72, 0x4b73, 0x4b74,
+  0x4b75, 0x4b76, 0x4b77, 0x4b78, 0x4b79, 0x4b7a, 0x4b7b, 0x4b7c,
+  0x4b7d, 0x4b7e, 0x4c21, 0x4c22, 0x4c23, 0x4c24, 0x4c25, 0x4c26,
+  0x4c27, 0x4c28, 0x4c29, 0x4c2a, 0x4c2b, 0x4c2c, 0x4c2d, 0x4c2e,
+  0x4c2f, 0x4c30, 0x4c31, 0x4c32, 0x4c33, 0x4c34, 0x4c35, 0x4c36,
+  0x4c37, 0x4c38, 0x4c39, 0x4c3a, 0x4c3b, 0x4c3c, 0x4c3d, 0x4c3e,
+  0x4c3f, 0x4c40, 0x4c41, 0x4c42, 0x4c43, 0x4c44, 0x4c45, 0x4c46,
+  0x4c47, 0x4c48, 0x4c49, 0x4c4a, 0x4c4b, 0x4c4c, 0x4c4d, 0x4c4e,
+  0x4c4f, 0x4c50, 0x4c51, 0x4c52, 0x4c53, 0x4c54, 0x4c55, 0x4c56,
+  0x4c57, 0x4c58, 0x4c59, 0x4c5a, 0x4c5b, 0x4c5c, 0x4c5d, 0x4c5e,
+  0x4c5f, 0x4c60, 0x4c61, 0x4c62, 0x4c63, 0x4c64, 0x4c65, 0x4c66,
+  0x4c67, 0x4c68, 0x4c69, 0x4c6a, 0x4c6b, 0x4c6c, 0x4c6d, 0x4c6e,
+  0x4c6f, 0x4c70, 0x4c71, 0x4c72, 0x4c73, 0x4c74, 0x4c75, 0x4c76,
+  0x4c77, 0x4c78, 0x4c79, 0x4c7a, 0x4c7b, 0x4c7c, 0x4c7d, 0x4c7e,
+  0x4d21, 0x4d22, 0x4d23, 0x4d24, 0x4d25, 0x4d26, 0x4d27, 0x4d28,
+  0x4d29, 0x4d2a, 0x4d2b, 0x4d2c, 0x4d2d, 0x4d2e, 0x4d2f, 0x4d30,
+  0x4d31, 0x4d32, 0x4d33, 0x4d34, 0x4d35, 0x4d36, 0x4d37, 0x4d38,
+  0x4d39, 0x4d3a, 0x4d3b, 0x4d3c, 0x4d3d, 0x4d3e, 0x4d3f, 0x4d40,
+  0x4d41, 0x4d42, 0x4d43, 0x4d44, 0x4d45, 0x4d46, 0x4d47, 0x4d48,
+  0x4d49, 0x4d4a, 0x4d4b, 0x4d4c, 0x4d4d, 0x4d4e, 0x4d4f, 0x4d50,
+  0x4d51, 0x4d52, 0x4d53, 0x4d54, 0x4d55, 0x4d56, 0x4d57, 0x4d58,
+  0x4d59, 0x4d5a, 0x4d5b, 0x4d5c, 0x4d5d, 0x4d5e, 0x4d5f, 0x4d60,
+  0x4d61, 0x4d62, 0x4d63, 0x4d64, 0x4d65, 0x4d66, 0x4d67, 0x4d68,
+  0x4d69, 0x4d6a, 0x4d6b, 0x4d6c, 0x4d6d, 0x4d6e, 0x4d6f, 0x4d70,
+  0x4d71, 0x4d72, 0x4d73, 0x4d74, 0x4d75, 0x4d76, 0x4d77, 0x4d78,
+  0x4d79, 0x4d7a, 0x4d7b, 0x4d7c, 0x4d7d, 0x4d7e, 0x4e21, 0x4e22,
+  0x4e24, 0x4e25, 0x4e26, 0x4e27, 0x4e28, 0x4e29, 0x4e23, 0x4e2a,
+  0x4e2b, 0x4e2c, 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32,
+  0x4e33, 0x4e34, 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a,
+  0x4e3b, 0x4e3c, 0x4e3d, 0x4e3e, 0x4e3f, 0x4e40, 0x4e41, 0x4e42,
+  0x4e43, 0x4e44, 0x4e45, 0x4e46, 0x4e47, 0x4e48, 0x4e49, 0x4e4a,
+  0x4e4b, 0x4e4c, 0x4e4d, 0x4e4e, 0x4e4f, 0x4e50, 0x4e51, 0x4e52,
+  0x4e53, 0x4e54, 0x4e55, 0x4e56, 0x4e57, 0x4e58, 0x4e59, 0x4e5a,
+  0x4e5b, 0x4e5c, 0x4e5d, 0x4e5e, 0x4e5f, 0x4e60, 0x4e61, 0x4e62,
+  0x4e63, 0x4e64, 0x4e65, 0x4e66, 0x4e67, 0x4e68, 0x4e69, 0x4e6a,
+  0x4e6b, 0x4e6c, 0x4e6d, 0x4e6e, 0x4e6f, 0x4e70, 0x4e71, 0x4e72,
+  0x4e73, 0x4e74, 0x4e75, 0x4e76, 0x4e77, 0x4e78, 0x4e79, 0x4e7a,
+  0x4e7b, 0x4e7c, 0x4e7d, 0x4e7e, 0x4f21, 0x4f22, 0x4f23, 0x4f24,
+  0x4f25, 0x4f26, 0x4f27, 0x4f28, 0x4f29, 0x4f2a, 0x4f2b, 0x4f2c,
+  0x4f2d, 0x4f2e, 0x4f2f, 0x4f30, 0x4f31, 0x4f32, 0x4f33, 0x4f34,
+  0x4f35, 0x4f36, 0x4f37, 0x4f38, 0x4f39, 0x4f3a, 0x4f3b, 0x4f3c,
+  0x4f3d, 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f43, 0x4f44,
+  0x4f45, 0x4f46, 0x4f47, 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c,
+  0x4f4d, 0x4f4e, 0x4f4f, 0x4f50, 0x4f51, 0x4f52, 0x4f53, 0x4f54,
+  0x4f55, 0x4f56, 0x4f57, 0x4f58, 0x4f59, 0x4f5a, 0x4f5b, 0x4f5c,
+  0x4f5d, 0x4f5e, 0x4f5f, 0x4f60, 0x4f61, 0x4f62, 0x4f63, 0x4f64,
+  0x4f65, 0x4f66, 0x4f67, 0x4f68, 0x4f69, 0x4f6a, 0x4f6b, 0x4f6c,
+  0x4f6d, 0x4f6e, 0x4f6f, 0x4f70, 0x4f71, 0x4f72, 0x4f74, 0x4f75,
+  0x4f76, 0x4f73, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7b, 0x4f7c,
+  0x4f7d, 0x4f7e, 0x5021, 0x5022, 0x5023, 0x5024, 0x5025, 0x5026,
+  0x5027, 0x5028, 0x5029, 0x502a, 0x502b, 0x502c, 0x502e, 0x502f,
+  0x5030, 0x5031, 0x502d, 0x5032, 0x5033, 0x5034, 0x5035, 0x5037,
+  0x5038, 0x5039, 0x503a, 0x503b, 0x5036, 0x503c, 0x503d, 0x503e,
+  0x503f, 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045, 0x5046,
+  0x5047, 0x5048, 0x5049, 0x504a, 0x504b, 0x504c, 0x504d, 0x504e,
+  0x504f, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055, 0x5056,
+  0x5057, 0x5058, 0x5059, 0x505a, 0x505b, 0x505c, 0x505d, 0x505e,
+  0x505f, 0x5060, 0x5061, 0x5062, 0x5063, 0x5064, 0x5065, 0x5066,
+  0x5067, 0x5068, 0x5069, 0x506a, 0x506b, 0x506c, 0x506d, 0x506e,
+  0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, 0x5075, 0x5076,
+  0x5077, 0x5078, 0x5079, 0x507a, 0x507b, 0x507c, 0x507d, 0x507e,
+  0x5121, 0x5122, 0x5123, 0x5124, 0x5125, 0x5126, 0x5127, 0x5128,
+  0x5129, 0x512a, 0x512b, 0x512c, 0x512d, 0x512e, 0x512f, 0x5130,
+  0x5131, 0x5132, 0x5133, 0x5134, 0x5135, 0x5136, 0x5137, 0x5138,
+  0x5139, 0x513a, 0x513b, 0x513c, 0x513d, 0x513e, 0x513f, 0x5140,
+  0x5141, 0x5142, 0x5143, 0x5144, 0x5145, 0x5146, 0x5147, 0x5148,
+  0x5149, 0x514a, 0x514b, 0x514c, 0x514d, 0x514e, 0x514f, 0x5150,
+  0x5151, 0x5152, 0x5153, 0x5154, 0x5155, 0x5156, 0x5157, 0x5158,
+  0x5159, 0x515a, 0x515b, 0x515c, 0x515d, 0x515e, 0x515f, 0x5160,
+  0x5161, 0x5162, 0x5163, 0x5164, 0x5165, 0x5166, 0x5167, 0x5168,
+  0x5169, 0x516a, 0x516b, 0x516c, 0x516d, 0x516e, 0x516f, 0x5170,
+  0x5171, 0x5172, 0x5173, 0x5174, 0x5175, 0x5176, 0x5177, 0x5178,
+  0x5179, 0x517a, 0x517b, 0x517c, 0x517d, 0x517e, 0x5221, 0x5222,
+  0x5223, 0x5224, 0x5225, 0x5226, 0x5227, 0x5228, 0x5229, 0x522a,
+  0x522b, 0x522c, 0x522d, 0x522e, 0x522f, 0x5230, 0x5231, 0x5232,
+  0x5233, 0x5234, 0x5235, 0x5236, 0x5237, 0x5238, 0x5239, 0x523a,
+  0x523b, 0x523c, 0x523d, 0x523e, 0x523f, 0x5240, 0x5241, 0x5242,
+  0x5243, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524a,
+  0x524b, 0x524c, 0x524d, 0x524e, 0x524f, 0x5250, 0x5251, 0x5252,
+  0x5253, 0x5254, 0x5255, 0x5256, 0x5257, 0x5258, 0x5259, 0x525a,
+  0x525b, 0x525c, 0x525d, 0x525e, 0x525f, 0x5260, 0x5261, 0x5262,
+  0x5263, 0x5264, 0x5265, 0x5266, 0x5267, 0x5268, 0x5269, 0x526a,
+  0x526b, 0x526c, 0x526d, 0x526e, 0x526f, 0x5270, 0x5271, 0x5272,
+  0x5273, 0x5274, 0x5276, 0x5277, 0x5278, 0x5275, 0x5279, 0x527a,
+  0x527b, 0x527c, 0x527d, 0x527e, 0x5321, 0x5322, 0x5323, 0x5324,
+  0x5325, 0x5326, 0x5327, 0x5328, 0x5329, 0x532a, 0x532b, 0x532c,
+  0x532d, 0x532e, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334,
+  0x5335, 0x5336, 0x5337, 0x5338, 0x5339, 0x533a, 0x533b, 0x533c,
+  0x533d, 0x533e, 0x533f, 0x5340, 0x5341, 0x5342, 0x5343, 0x5344,
+  0x5345, 0x5346, 0x5347, 0x5348, 0x5349, 0x534a, 0x534b, 0x534c,
+  0x534d, 0x534e, 0x534f, 0x5350, 0x5351, 0x5352, 0x5353, 0x5354,
+  0x5355, 0x5356, 0x5357, 0x5358, 0x5359, 0x535a, 0x535b, 0x535c,
+  0x535d, 0x535e, 0x535f, 0x5360, 0x5361, 0x5362, 0x5363, 0x5364,
+  0x5365, 0x5366, 0x5367, 0x5368, 0x5369, 0x536a, 0x536b, 0x536c,
+  0x536d, 0x536e, 0x536f, 0x5370, 0x5371, 0x5372, 0x5373, 0x5374,
+  0x5375, 0x5376, 0x5377, 0x5378, 0x5379, 0x537a, 0x537b, 0x537c,
+  0x537d, 0x537e, 0x5421, 0x5422, 0x5423, 0x5424, 0x5425, 0x5426,
+  0x5427, 0x5428, 0x5429, 0x542a, 0x542b, 0x542c, 0x542d, 0x542e,
+  0x542f, 0x5430, 0x5431, 0x5432, 0x5434, 0x5435, 0x5436, 0x5437,
+  0x5438, 0x5439, 0x543a, 0x543b, 0x543c, 0x543d, 0x543e, 0x5433,
+  0x543f, 0x5440, 0x5441, 0x5442, 0x5443, 0x5444, 0x5445, 0x5446,
+  0x5447, 0x5448, 0x5449, 0x544a, 0x544b, 0x544c, 0x544d, 0x544e,
+  0x544f, 0x5450, 0x5451, 0x5452, 0x5453, 0x5454, 0x5455, 0x5456,
+  0x5457, 0x5458, 0x5459, 0x545a, 0x545b, 0x545c, 0x545d, 0x545e,
+  0x545f, 0x5460, 0x5461, 0x5462, 0x5463, 0x5464, 0x5465, 0x5466,
+  0x5467, 0x5468, 0x5469, 0x546a, 0x546c, 0x546b, 0x546d, 0x546e,
+  0x546f, 0x5470, 0x5471, 0x5472, 0x5473, 0x5474, 0x5475, 0x5476,
+  0x5477, 0x5478, 0x5479, 0x547a, 0x547b, 0x547c, 0x547d, 0x547e,
+  0x5521, 0x5522, 0x5523, 0x5524, 0x5525, 0x5526, 0x5527, 0x5528,
+  0x5529, 0x552a, 0x552b, 0x552c, 0x552d, 0x552e, 0x552f, 0x5530,
+  0x5531, 0x5532, 0x5533, 0x5534, 0x5535, 0x5536, 0x5537, 0x5538,
+  0x5539, 0x553a, 0x553b, 0x553c, 0x553d, 0x553e, 0x553f, 0x5540,
+  0x5541, 0x5542, 0x5543, 0x5544, 0x5545, 0x5546, 0x5547, 0x5548,
+  0x5549, 0x554a, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5550,
+  0x5551, 0x5552, 0x5553, 0x5554, 0x5555, 0x5556, 0x5557, 0x5558,
+  0x5559, 0x555a, 0x555b, 0x555c, 0x555d, 0x555e, 0x555f, 0x5560,
+  0x5561, 0x5562, 0x5563, 0x5564, 0x5565, 0x5566, 0x5567, 0x5568,
+  0x5569, 0x556a, 0x556b, 0x556c, 0x556d, 0x556e, 0x556f, 0x5570,
+  0x5571, 0x5572, 0x5573, 0x5574, 0x5575, 0x5576, 0x5577, 0x5578,
+  0x5579, 0x557a, 0x557b, 0x557c, 0x557d, 0x557e, 0x5621, 0x5622,
+  0x5623, 0x5624, 0x5625, 0x5626, 0x5627, 0x5628, 0x5629, 0x562a,
+  0x562b, 0x562c, 0x562d, 0x562e, 0x562f, 0x5630, 0x5631, 0x5632,
+  0x5633, 0x5634, 0x5635, 0x5636, 0x5637, 0x5638, 0x5639, 0x563a,
+  0x563b, 0x563c, 0x563d, 0x563e, 0x563f, 0x5640, 0x5641, 0x5642,
+  0x5643, 0x5644, 0x5645, 0x5647, 0x5648, 0x5649, 0x564a, 0x564b,
+  0x5646, 0x564c, 0x564d, 0x564e, 0x564f, 0x5650, 0x5651, 0x5652,
+  0x5653, 0x5654, 0x5656, 0x5657, 0x5658, 0x5655, 0x5659, 0x565a,
+  0x565b, 0x565c, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5662,
+  0x5663, 0x5664, 0x5665, 0x5666, 0x5667, 0x5668, 0x5669, 0x566a,
+  0x566b, 0x566c, 0x566d, 0x566e, 0x566f, 0x5670, 0x5671, 0x5672,
+  0x5673, 0x5674, 0x5675, 0x5676, 0x5677, 0x5678, 0x5679, 0x567a,
+  0x567b, 0x567c, 0x567d, 0x567e, 0x5721, 0x5722, 0x5723, 0x5724,
+  0x5725, 0x5726, 0x5727, 0x5728, 0x5729, 0x572a, 0x572b, 0x572c,
+  0x572d, 0x572e, 0x572f, 0x5730, 0x5731, 0x5732, 0x5733, 0x5734,
+  0x5735, 0x5736, 0x5737, 0x5738, 0x5739, 0x573a, 0x573b, 0x573c,
+  0x573d, 0x573e, 0x573f, 0x5740, 0x5741, 0x5742, 0x5743, 0x5744,
+  0x5745, 0x5746, 0x5747, 0x5748, 0x5749, 0x574a, 0x574b, 0x574c,
+  0x574d, 0x574e, 0x574f, 0x5750, 0x5751, 0x5752, 0x5753, 0x5754,
+  0x5755, 0x5756, 0x5757, 0x5758, 0x5759, 0x575a, 0x575b, 0x575c,
+  0x575d, 0x575e, 0x575f, 0x5760, 0x5761, 0x5762, 0x5764, 0x5765,
+  0x5766, 0x5767, 0x5768, 0x5769, 0x576a, 0x576b, 0x576c, 0x576d,
+  0x576e, 0x576f, 0x5770, 0x5771, 0x5772, 0x5773, 0x5774, 0x5775,
+  0x5776, 0x5777, 0x5778, 0x5779, 0x583e, 0x5763, 0x577a, 0x577b,
+  0x577c, 0x577d, 0x577e, 0x5821, 0x5822, 0x5823, 0x5824, 0x5825,
+  0x5826, 0x5827, 0x5828, 0x5829, 0x582a, 0x582b, 0x582c, 0x582d,
+  0x582e, 0x582f, 0x5830, 0x5831, 0x5832, 0x5833, 0x584c, 0x5834,
+  0x5835, 0x5836, 0x5837, 0x5838, 0x5839, 0x583a, 0x583b, 0x583c,
+  0x583d, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5844, 0x5845,
+  0x5846, 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584d, 0x584e,
+  0x584f, 0x5850, 0x5851, 0x5852, 0x5853, 0x5854, 0x5855, 0x5856,
+  0x5857, 0x5858, 0x5859, 0x585a, 0x585b, 0x585c, 0x585d, 0x585e,
+  0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, 0x5865, 0x5866,
+  0x5867, 0x5868, 0x5869, 0x586a, 0x586b, 0x586c, 0x586d, 0x586e,
+  0x586f, 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876,
+  0x5877, 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587e,
+  0x5921, 0x5922, 0x5923, 0x5924, 0x5925, 0x5926, 0x5927, 0x5928,
+  0x592a, 0x592b, 0x592c, 0x592d, 0x592e, 0x592f, 0x5930, 0x5931,
+  0x5932, 0x5933, 0x5934, 0x5935, 0x5936, 0x5937, 0x5938, 0x5939,
+  0x593a, 0x593b, 0x593c, 0x5929, 0x593d, 0x593e, 0x593f, 0x5940,
+  0x5941, 0x5942, 0x5943, 0x5944, 0x5945, 0x5946, 0x5947, 0x5948,
+  0x5949, 0x594a, 0x594b, 0x594c, 0x594d, 0x594e, 0x594f, 0x5950,
+  0x5951, 0x5952, 0x5953, 0x5954, 0x5955, 0x5956, 0x5957, 0x5958,
+  0x5959, 0x595a, 0x595b, 0x595c, 0x595d, 0x595e, 0x595f, 0x5960,
+  0x5961, 0x5962, 0x5963, 0x5964, 0x5965, 0x5966, 0x5974, 0x5967,
+  0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f,
+  0x5970, 0x5971, 0x5972, 0x5973, 0x5975, 0x5976, 0x5977, 0x5978,
+  0x5979, 0x597a, 0x597b, 0x597c, 0x597d, 0x597e, 0x5a21, 0x5a22,
+  0x5a23, 0x5a24, 0x5a25, 0x5a26, 0x5a27, 0x5a28, 0x5a29, 0x5a2a,
+  0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, 0x5a30, 0x5a31, 0x5a32,
+  0x5a33, 0x5a34, 0x5a35, 0x5a36, 0x3866, 0x5a37, 0x5a38, 0x5a39,
+  0x5a3a, 0x5a3b, 0x5a3c, 0x5a3d, 0x5a3e, 0x5a3f, 0x5a40, 0x5a41,
+  0x5a42, 0x5a43, 0x5a44, 0x5a45, 0x5a46, 0x5a47, 0x5a48, 0x5a49,
+  0x5a4a, 0x5a4b, 0x5a6d, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50,
+  0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a55, 0x5a56, 0x5a57, 0x5a58,
+  0x5a59, 0x5a5a, 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60,
+  0x5a61, 0x5a62, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a67, 0x5a68,
+  0x5a69, 0x5a6a, 0x5a6b, 0x5a6c, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71,
+  0x5a72, 0x5a73, 0x5a74, 0x5a75, 0x5a76, 0x5a77, 0x5a78, 0x5a79,
+  0x5a7a, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5b21, 0x5b22, 0x5b23,
+  0x5b24, 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b,
+  0x5b2c, 0x5b2d, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b32, 0x5b33,
+  0x5b34, 0x5b35, 0x5b36, 0x5b37, 0x5b38, 0x5b39, 0x5b3a, 0x5b3b,
+  0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b40, 0x5b41, 0x5b42, 0x5b43,
+  0x5b44, 0x5b45, 0x5b46, 0x5b47, 0x5b48, 0x5b49, 0x5b4a, 0x5b4b,
+  0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f, 0x5b50, 0x5b51, 0x5b52, 0x5b53,
+  0x5b54, 0x5b55, 0x5b56, 0x5b57, 0x5b58, 0x5b59, 0x5b5a, 0x5b5b,
+  0x5b5c, 0x5b5d, 0x5b5e, 0x5b5f, 0x5b60, 0x5b61, 0x5b62, 0x5b63,
+  0x5b64, 0x5b65, 0x5b66, 0x5b67, 0x5b68, 0x5b69, 0x5b6a, 0x5b6b,
+  0x5b6c, 0x5b6d, 0x5b6e, 0x5b70, 0x5b71, 0x5b72, 0x5b73, 0x5b6f,
+  0x5b74, 0x5b75, 0x5b76, 0x5b77, 0x5b78, 0x5b79, 0x5b7a, 0x5b7b,
+  0x5b7c, 0x5b7d, 0x5b7e, 0x5c21, 0x5c22, 0x5c23, 0x5c24, 0x5c25,
+  0x5c26, 0x5c27, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2c, 0x5c2d,
+  0x5c2e, 0x5c2f, 0x5c30, 0x5c31, 0x5c32, 0x5c33, 0x5c34, 0x5c35,
+  0x5c36, 0x5c37, 0x5c38, 0x5c39, 0x5c3a, 0x5c3b, 0x5c3c, 0x5c3d,
+  0x5c3e, 0x5c3f, 0x5c40, 0x5c41, 0x5c42, 0x5c43, 0x5c44, 0x5c45,
+  0x5c46, 0x5c47, 0x5c48, 0x5c49, 0x5c4a, 0x5c4b, 0x5c4c, 0x5c4d,
+  0x5c4e, 0x5c4f, 0x5c50, 0x5c51, 0x5c52, 0x5c53, 0x5c54, 0x5c55,
+  0x5c56, 0x5c57, 0x5c58, 0x5c59, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d,
+  0x5c5e, 0x5c5f, 0x5c60, 0x5c61, 0x5c62, 0x5c63, 0x5c64, 0x5c65,
+  0x5c66, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, 0x5c6c, 0x5c6d,
+  0x5c6e, 0x5c6f, 0x5c70, 0x5c71, 0x5c72, 0x5c73, 0x5c74, 0x5c75,
+  0x5c76, 0x5c77, 0x5c78, 0x5c79, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d,
+  0x5c7e, 0x5d21, 0x5d22, 0x5d23, 0x5d24, 0x5d25, 0x5d26, 0x5d27,
+  0x5d28, 0x5d29, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2d, 0x5d2e, 0x5d2f,
+  0x5d30, 0x5d31, 0x5d32, 0x5d33, 0x5d34, 0x5d35, 0x5d36, 0x5d37,
+  0x5d38, 0x5d39, 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3d, 0x5d3e, 0x5d3f,
+  0x5d40, 0x5d41, 0x5d42, 0x5d43, 0x5d44, 0x5d45, 0x5d46, 0x5d47,
+  0x5d48, 0x5d49, 0x5d4a, 0x5d4b, 0x5d4c, 0x5d4d, 0x5d4e, 0x5d4f,
+  0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57,
+  0x5d58, 0x5d59, 0x5d5a, 0x5d5b, 0x5d5c, 0x5d5d, 0x5d5e, 0x5d5f,
+  0x5d60, 0x5d61, 0x5d62, 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67,
+  0x5d68, 0x5d69, 0x5d6a, 0x5d6b, 0x5d6c, 0x5d6d, 0x5d6e, 0x5d6f,
+  0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d74, 0x5d75, 0x5d76, 0x5d77,
+  0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5e21,
+  0x5e22, 0x5e23, 0x5e24, 0x5e25, 0x5e26, 0x5e27, 0x5e28, 0x5e29,
+  0x5e2a, 0x5e2b, 0x5e2c, 0x5e2d, 0x5e2e, 0x5e2f, 0x5e30, 0x5e31,
+  0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e37, 0x5e38, 0x5e39,
+  0x5e3f, 0x5e3a, 0x5e3b, 0x5e3c, 0x5e3d, 0x5e3e, 0x5e40, 0x5e41,
+  0x5e42, 0x5e43, 0x5e44, 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49,
+  0x5e4e, 0x5e4a, 0x5e4b, 0x5e4c, 0x5e4d, 0x5e4f, 0x5e50, 0x5e51,
+  0x5e52, 0x5e53, 0x5e54, 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59,
+  0x5e5a, 0x5e5b, 0x5e5c, 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61,
+  0x5e62, 0x5e63, 0x5e64, 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69,
+  0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, 0x5e6f, 0x5e72, 0x5e70,
+  0x5e71, 0x5e73, 0x5e74, 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79,
+  0x5e7a, 0x5e7b, 0x5e7c, 0x5e7d, 0x5e7e, 0x5f21, 0x5f22, 0x5f23,
+  0x5f24, 0x5f25, 0x5f26, 0x5f27, 0x5f28, 0x5f29, 0x5f2a, 0x5f2b,
+  0x5f2c, 0x5f2d, 0x5f2e, 0x5f2f, 0x5f30, 0x5f32, 0x5f31, 0x5f33,
+  0x5f34, 0x5f35, 0x5f36, 0x5f37, 0x5f38, 0x5f39, 0x5f3a, 0x5f3b,
+  0x5f3c, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f40, 0x5f41, 0x5f42, 0x5f43,
+  0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, 0x5f4a, 0x5f4b,
+  0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f50, 0x5f51, 0x5f52, 0x5f53,
+  0x5f54, 0x5f55, 0x5f56, 0x5f57, 0x5f58, 0x5f59, 0x5f5a, 0x5f5b,
+  0x5f5c, 0x5f5d, 0x5f6f, 0x5f5e, 0x5f5f, 0x5f60, 0x5f61, 0x5f62,
+  0x5f63, 0x5f64, 0x5f65, 0x5f66, 0x5f67, 0x5f68, 0x5f69, 0x5f6a,
+  0x5f6b, 0x5f6c, 0x5f6d, 0x5f6e, 0x5f70, 0x5f71, 0x5f72, 0x5f73,
+  0x5f74, 0x5f75, 0x5f76, 0x5f77, 0x5f78, 0x5f79, 0x5f7a, 0x5f7b,
+  0x5f7c, 0x5f7d, 0x5f7e, 0x6021, 0x6022, 0x6023, 0x6024, 0x6025,
+  0x6026, 0x6027, 0x6028, 0x6029, 0x602a, 0x602b, 0x602c, 0x602d,
+  0x602e, 0x602f, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6035,
+  0x6036, 0x6037, 0x6038, 0x6039, 0x603a, 0x603b, 0x603c, 0x603d,
+  0x603e, 0x603f, 0x6040, 0x6041, 0x6042, 0x6043, 0x6044, 0x6045,
+  0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604b, 0x604c, 0x604d,
+  0x604e, 0x604f, 0x6050, 0x6051, 0x6052, 0x6053, 0x6054, 0x6055,
+  0x6056, 0x6057, 0x6058, 0x6059, 0x605a, 0x605b, 0x605c, 0x605d,
+  0x6064, 0x605e, 0x605f, 0x6060, 0x6061, 0x6062, 0x6063, 0x6065,
+  0x6066, 0x6067, 0x6068, 0x6069, 0x606a, 0x606b, 0x606c, 0x606d,
+  0x606e, 0x606f, 0x6070, 0x6071, 0x6072, 0x6073, 0x6074, 0x6075,
+  0x6076, 0x6077, 0x6078, 0x6079, 0x607a, 0x607b, 0x607c, 0x607d,
+  0x607e, 0x6121, 0x6122, 0x6123, 0x6124, 0x6125, 0x6126, 0x6127,
+  0x6128, 0x6129, 0x612a, 0x612b, 0x612c, 0x612d, 0x612e, 0x612f,
+  0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137,
+  0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x613f,
+  0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0x6147,
+  0x6148, 0x6149, 0x614a, 0x614b, 0x614c, 0x614d, 0x614e, 0x614f,
+  0x6150, 0x6151, 0x6152, 0x6154, 0x6155, 0x6156, 0x6153, 0x6157,
+  0x6158, 0x6159, 0x615a, 0x615b, 0x615c, 0x615d, 0x615e, 0x615f,
+  0x6160, 0x6161, 0x6162, 0x6163, 0x6164, 0x6165, 0x6166, 0x6167,
+  0x6168, 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f,
+  0x6170, 0x6171, 0x6172, 0x6173, 0x6174, 0x6175, 0x6176, 0x6177,
+  0x6178, 0x6179, 0x617a, 0x617b, 0x617d, 0x617e, 0x6221, 0x6222,
+  0x6223, 0x6224, 0x617c, 0x622d, 0x6225, 0x6226, 0x6227, 0x6228,
+  0x6229, 0x622a, 0x622b, 0x622c, 0x622f, 0x6230, 0x6231, 0x6232,
+  0x622e, 0x6233, 0x6234, 0x6235, 0x6236, 0x6237, 0x6238, 0x6239,
+  0x623a, 0x623b, 0x623c, 0x623d, 0x623e, 0x623f, 0x6240, 0x6241,
+  0x6242, 0x6243, 0x6245, 0x6246, 0x6244, 0x6247, 0x6248, 0x6249,
+  0x624a, 0x624b, 0x624c, 0x624d, 0x624e, 0x624f, 0x6250, 0x6251,
+  0x6252, 0x6253, 0x6254, 0x6255, 0x6256, 0x6257, 0x6258, 0x6259,
+  0x625a, 0x625b, 0x625c, 0x625d, 0x625e, 0x625f, 0x6260, 0x6261,
+  0x6262, 0x6263, 0x6264, 0x6265, 0x6266, 0x6267, 0x6268, 0x6269,
+  0x626a, 0x626b, 0x626c, 0x626d, 0x626e, 0x626f, 0x6270, 0x6271,
+  0x6272, 0x6273, 0x6274, 0x6275, 0x6276, 0x6277, 0x6278, 0x6279,
+  0x627a, 0x627b, 0x627c, 0x627d, 0x627e, 0x6321, 0x6322, 0x6323,
+  0x6324, 0x6325, 0x6326, 0x6327, 0x6328, 0x6329, 0x632a, 0x632b,
+  0x632c, 0x632d, 0x632e, 0x632f, 0x6330, 0x6331, 0x6332, 0x6333,
+  0x6334, 0x6335, 0x6336, 0x6337, 0x6338, 0x6339, 0x633a, 0x633b,
+  0x633c, 0x633d, 0x633e, 0x633f, 0x6340, 0x6341, 0x6342, 0x6343,
+  0x6344, 0x6345, 0x6346, 0x6347, 0x6348, 0x6349, 0x634a, 0x634b,
+  0x634c, 0x634d, 0x634e, 0x634f, 0x6350, 0x6351, 0x6352, 0x6353,
+  0x6354, 0x6355, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b,
+  0x635c, 0x635d, 0x635e, 0x635f, 0x6360, 0x6361, 0x6362, 0x6363,
+  0x6364, 0x6365, 0x6366, 0x6367, 0x6368, 0x6369, 0x636a, 0x636b,
+  0x636c, 0x636d, 0x636e, 0x636f, 0x6370, 0x6371, 0x6372, 0x6373,
+  0x6374, 0x6375, 0x6376, 0x6377, 0x6378, 0x6379, 0x637a, 0x637b,
+  0x637c, 0x637d, 0x637e, 0x6421, 0x6422, 0x6423, 0x6424, 0x6425,
+  0x6426, 0x6427, 0x6428, 0x6429, 0x642a, 0x642b, 0x642c, 0x642d,
+  0x642e, 0x642f, 0x6430, 0x6431, 0x6432, 0x6433, 0x6434, 0x6435,
+  0x6436, 0x6437, 0x6438, 0x6439, 0x643a, 0x643b, 0x643c, 0x643d,
+  0x643e, 0x643f, 0x6440, 0x6441, 0x6442, 0x6443, 0x6444, 0x6445,
+  0x6446, 0x6447, 0x6448, 0x6449, 0x644a, 0x644b, 0x644c, 0x644d,
+  0x644e, 0x644f, 0x6450, 0x6451, 0x6452, 0x6453, 0x6454, 0x6455,
+  0x6456, 0x6457, 0x6458, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d,
+  0x645e, 0x645f, 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465,
+  0x6466, 0x6467, 0x6468, 0x6469, 0x646a, 0x646b, 0x646c, 0x646d,
+  0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, 0x6474, 0x6475,
+  0x6476, 0x6477, 0x6478, 0x6479, 0x647a, 0x647b, 0x647c, 0x647d,
+  0x647e, 0x6521, 0x6522, 0x6523, 0x6524, 0x6525, 0x6526, 0x6527,
+  0x6528, 0x6529, 0x652a, 0x652b, 0x652c, 0x652d, 0x652e, 0x652f,
+  0x6530, 0x6531, 0x6532, 0x6533, 0x6534, 0x6535, 0x653b, 0x6536,
+  0x6537, 0x6538, 0x6539, 0x653a, 0x653c, 0x653d, 0x653e, 0x653f,
+  0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6545, 0x6546, 0x6547,
+  0x6548, 0x6549, 0x654a, 0x654b, 0x654c, 0x654d, 0x654f, 0x6550,
+  0x654e, 0x6551, 0x6552, 0x6553, 0x6554, 0x6555, 0x6556, 0x6557,
+  0x6558, 0x6559, 0x655a, 0x655b, 0x655c, 0x655d, 0x655e, 0x655f,
+  0x6560, 0x6561, 0x6562, 0x6563, 0x6564, 0x6565, 0x6566, 0x6568,
+  0x6567, 0x6569, 0x656a, 0x656b, 0x656c, 0x656d, 0x656e, 0x656f,
+  0x6570, 0x6571, 0x6572, 0x6573, 0x6574, 0x6575, 0x6576, 0x6577,
+  0x6578, 0x6579, 0x657a, 0x657c, 0x657b, 0x657d, 0x657e, 0x6621,
+  0x6622, 0x6623, 0x6624, 0x6625, 0x6626, 0x6627, 0x6628, 0x6629,
+  0x662a, 0x662b, 0x662c, 0x662d, 0x662e, 0x662f, 0x6630, 0x6631,
+  0x6632, 0x6633, 0x6634, 0x6635, 0x6636, 0x6637, 0x6638, 0x6639,
+  0x663a, 0x663b, 0x663c, 0x663d, 0x663e, 0x663f, 0x6640, 0x6641,
+  0x6642, 0x6643, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649,
+  0x664a, 0x664b, 0x664c, 0x664d, 0x664e, 0x664f, 0x6650, 0x6651,
+  0x6652, 0x6653, 0x6654, 0x6655, 0x6656, 0x6657, 0x6658, 0x6659,
+  0x665a, 0x665b, 0x665c, 0x665d, 0x665e, 0x665f, 0x6660, 0x6661,
+  0x6662, 0x6663, 0x6664, 0x6665, 0x6666, 0x6667, 0x6668, 0x6669,
+  0x666a, 0x666b, 0x666c, 0x666d, 0x666e, 0x666f, 0x6670, 0x6671,
+  0x6672, 0x6673, 0x6675, 0x6676, 0x6677, 0x6678, 0x6679, 0x667a,
+  0x667b, 0x667c, 0x667d, 0x667e, 0x6721, 0x6722, 0x6723, 0x6724,
+  0x6725, 0x6726, 0x6727, 0x6728, 0x6729, 0x672a, 0x672b, 0x672c,
+  0x672d, 0x672e, 0x672f, 0x6730, 0x6731, 0x6732, 0x6733, 0x6734,
+  0x6735, 0x6736, 0x6737, 0x6738, 0x6739, 0x673a, 0x673b, 0x673c,
+  0x673d, 0x673e, 0x673f, 0x6740, 0x6741, 0x6742, 0x6743, 0x6744,
+  0x6745, 0x6746, 0x6747, 0x6748, 0x6749, 0x674a, 0x674b, 0x674c,
+  0x674d, 0x674e, 0x674f, 0x6750, 0x6751, 0x6752, 0x6753, 0x6754,
+  0x6755, 0x6756, 0x6757, 0x6758, 0x6759, 0x675a, 0x675b, 0x675c,
+  0x675d, 0x675e, 0x675f, 0x6760, 0x6761, 0x6762, 0x6763, 0x6764,
+  0x6765, 0x6766, 0x676a, 0x6767, 0x6768, 0x6769, 0x676b, 0x676c,
+  0x676d, 0x676e, 0x676f, 0x6770, 0x6771, 0x6772, 0x6773, 0x6774,
+  0x6776, 0x6777, 0x6778, 0x6779, 0x6775, 0x677a, 0x677b, 0x677c,
+  0x677d, 0x6828, 0x677e, 0x6821, 0x6822, 0x6823, 0x6824, 0x6825,
+  0x6826, 0x6827, 0x6829, 0x682a, 0x682b, 0x682c, 0x682d, 0x682e,
+  0x682f, 0x6830, 0x6831, 0x6832, 0x6833, 0x6834, 0x6835, 0x6836,
+  0x6837, 0x6838, 0x6839, 0x683a, 0x683b, 0x683c, 0x683d, 0x683e,
+  0x683f, 0x6840, 0x6841, 0x6842, 0x6843, 0x6844, 0x6845, 0x6846,
+  0x6847, 0x6848, 0x6849, 0x684a, 0x684b, 0x684c, 0x684d, 0x684e,
+  0x684f, 0x6850, 0x6851, 0x6852, 0x6853, 0x6854, 0x6855, 0x6856,
+  0x6857, 0x6858, 0x6859, 0x685a, 0x685b, 0x685c, 0x685d, 0x685e,
+  0x685f, 0x6860, 0x6861, 0x6862, 0x6863, 0x6864, 0x6865, 0x6866,
+  0x6867, 0x6868, 0x6869, 0x686a, 0x686b, 0x686c, 0x686d, 0x686e,
+  0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6874, 0x6875, 0x6876,
+  0x6877, 0x6878, 0x6879, 0x687a, 0x687b, 0x687c, 0x687d, 0x687e,
+  0x6921, 0x6922, 0x6923, 0x6924, 0x6925, 0x6926, 0x6927, 0x6928,
+  0x6929, 0x692a, 0x692b, 0x692c, 0x692d, 0x692e, 0x692f, 0x6930,
+  0x6931, 0x6932, 0x6933, 0x6934, 0x6935, 0x6936, 0x6937, 0x6938,
+  0x6939, 0x693a, 0x693b, 0x693c, 0x693d, 0x693e, 0x693f, 0x6940,
+  0x6941, 0x6942, 0x6943, 0x6944, 0x6945, 0x6946, 0x6947, 0x6948,
+  0x6949, 0x694a, 0x694c, 0x694d, 0x694b, 0x694e, 0x694f, 0x6950,
+  0x6951, 0x6952, 0x6953, 0x6954, 0x6955, 0x6956, 0x6957, 0x6958,
+  0x6959, 0x695a, 0x695b, 0x695c, 0x695d, 0x695e, 0x695f, 0x6960,
+  0x6961, 0x6962, 0x6963, 0x6964, 0x6965, 0x6966, 0x6967, 0x6968,
+  0x6969, 0x696a, 0x696b, 0x696c, 0x696d, 0x696e, 0x696f, 0x6970,
+  0x6971, 0x6972, 0x6973, 0x6974, 0x6975, 0x6976, 0x6977, 0x6978,
+  0x6979, 0x697a, 0x697b, 0x697c, 0x697d, 0x697e, 0x6a21, 0x6a22,
+  0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a28, 0x6a29, 0x6a2a,
+  0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a2f, 0x6a30, 0x6a31, 0x6a32,
+  0x6a33, 0x6a34, 0x6a35, 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a,
+  0x6a3b, 0x6a3c, 0x6a3d, 0x6a3e, 0x6a3f, 0x6a40, 0x6a41, 0x6a42,
+  0x6a43, 0x6a44, 0x6a45, 0x6a46, 0x6a47, 0x6a48, 0x6a49, 0x6a4a,
+  0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a50, 0x6a51, 0x6a52,
+  0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a58, 0x6a59, 0x6a5a,
+  0x6a5b, 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a61, 0x6a62,
+  0x6a63, 0x6a64, 0x6a65, 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a,
+  0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e, 0x6a6f, 0x6a70, 0x6a71, 0x6a72,
+  0x6a73, 0x6a74, 0x6a75, 0x6a76, 0x6a77, 0x6a78, 0x6a79, 0x6a7a,
+  0x6a7b, 0x6a7c, 0x6a7d, 0x6a7e, 0x6b21, 0x6b22, 0x6b23, 0x6b24,
+  0x6b25, 0x6b26, 0x6b27, 0x6b28, 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c,
+  0x6b2d, 0x6b2e, 0x6b2f, 0x6b30, 0x6b31, 0x6b32, 0x6b33, 0x6b34,
+  0x6b35, 0x6b36, 0x6b37, 0x6b38, 0x6b39, 0x6b3a, 0x6b3b, 0x6b3c,
+  0x6b3d, 0x6b3e, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b43, 0x6b44,
+  0x6b45, 0x6b46, 0x6b47, 0x6b48, 0x6b49, 0x6b50, 0x6b4a, 0x6b4b,
+  0x6b4c, 0x6b4d, 0x6b52, 0x6b4e, 0x6b4f, 0x6b51, 0x6b53, 0x6b54,
+  0x6b55, 0x6b56, 0x6b57, 0x6b58, 0x6b59, 0x6b5a, 0x6b5b, 0x6b5c,
+  0x6b5e, 0x6b5d, 0x6b5f, 0x6b60, 0x6b61, 0x6b62, 0x6b63, 0x6b64,
+  0x6b65, 0x6b66, 0x6b67, 0x6b68, 0x6b69, 0x6b6a, 0x6b6b, 0x6b6d,
+  0x6b6e, 0x6b6f, 0x6b6c, 0x6b70, 0x6b71, 0x6b72, 0x6b73, 0x6b74,
+  0x6b76, 0x6b75, 0x6b77, 0x6b78, 0x6b79, 0x6b7a, 0x6b7b, 0x6b7c,
+  0x6b7d, 0x6b7e, 0x6c21, 0x6c22, 0x6c23, 0x6c24, 0x6c25, 0x6c26,
+  0x6c27, 0x6c28, 0x6c29, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c2e,
+  0x6c2f, 0x6c30, 0x6c31, 0x6c32, 0x6c33, 0x6c34, 0x6c35, 0x6c36,
+  0x6c37, 0x6c38, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3d, 0x6c3e,
+  0x6c3f, 0x6c40, 0x6c41, 0x6c42, 0x6c43, 0x6c44, 0x6c45, 0x6c46,
+  0x6c47, 0x6c48, 0x6c49, 0x6c4a, 0x6c4b, 0x6c4c, 0x6c4e, 0x6c4f,
+  0x6c4d, 0x6c50, 0x6c51, 0x6c52, 0x6c53, 0x6c54, 0x6c55, 0x6c56,
+  0x6c57, 0x6c58, 0x6c59, 0x6c5a, 0x6c5b, 0x6c5c, 0x6c5d, 0x6c5e,
+  0x6c5f, 0x6c60, 0x6c61, 0x6c62, 0x6c63, 0x6c64, 0x6c65, 0x6c66,
+  0x6c67, 0x6c68, 0x6c69, 0x6c6a, 0x6c6b, 0x6c6c, 0x6c6d, 0x6c6e,
+  0x6c6f, 0x6c70, 0x6c71, 0x6c72, 0x6c73, 0x6c74, 0x6c75, 0x6c76,
+  0x6c77, 0x6c78, 0x6c79, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7d, 0x6c7e,
+  0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d25, 0x6d26, 0x6d27, 0x6d28,
+  0x6d29, 0x6d2a, 0x6d2b, 0x6d2c, 0x6d2d, 0x6d2e, 0x6d2f, 0x6d30,
+  0x6d31, 0x6d32, 0x6d33, 0x6d34, 0x6d35, 0x6d36, 0x6d37, 0x6d38,
+  0x6d39, 0x6d3a, 0x6d3b, 0x6d3c, 0x6d3d, 0x6d3e, 0x6d3f, 0x6d40,
+  0x6d41, 0x6d42, 0x6d43, 0x6d44, 0x6d45, 0x6d46, 0x6d47, 0x6d48,
+  0x6d49, 0x6d4a, 0x6d4b, 0x6d4c, 0x6d4d, 0x6d4e, 0x6d4f, 0x6d50,
+  0x6d51, 0x6d52, 0x6d53, 0x6d54, 0x6d55, 0x6d56, 0x6d57, 0x6d58,
+  0x6d59, 0x6d5a, 0x6d5b, 0x6d5c, 0x6d5d, 0x6d5e, 0x6d5f, 0x6d60,
+  0x6d61, 0x6d62, 0x6d63,
+};
+
+static const Summary16 jisx0212_uni2indx_page00[70] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x4000 },
+  {    1, 0x0000 }, {    1, 0x0000 }, {    1, 0xc652 }, {    8, 0x8500 },
+  {   11, 0xffff }, {   27, 0xff7e }, {   41, 0xffff }, {   57, 0xff7f },
+  /* 0x0100 */
+  {   72, 0xffff }, {   88, 0xffcf }, {  102, 0xcff7 }, {  115, 0xffff },
+  {  131, 0x3fff }, {  145, 0xffff }, {  161, 0xffff }, {  177, 0x7fff },
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  {  192, 0xe000 }, {  195, 0x1fff }, {  208, 0x0000 }, {  208, 0x0020 },
+  /* 0x0200 */
+  {  209, 0x0000 }, {  209, 0x0000 }, {  209, 0x0000 }, {  209, 0x0000 },
+  {  209, 0x0000 }, {  209, 0x0000 }, {  209, 0x0000 }, {  209, 0x0000 },
+  {  209, 0x0000 }, {  209, 0x0000 }, {  209, 0x0000 }, {  209, 0x0000 },
+  {  209, 0x0080 }, {  210, 0x2f00 }, {  215, 0x0000 }, {  215, 0x0000 },
+  /* 0x0300 */
+  {  215, 0x0000 }, {  215, 0x0000 }, {  215, 0x0000 }, {  215, 0x0000 },
+  {  215, 0x0000 }, {  215, 0x0000 }, {  215, 0x0000 }, {  215, 0x0000 },
+  {  215, 0xd770 }, {  224, 0x0001 }, {  225, 0xfc00 }, {  231, 0x0001 },
+  {  232, 0x7c04 }, {  238, 0x0000 }, {  238, 0x0000 }, {  238, 0x0000 },
+  /* 0x0400 */
+  {  238, 0xdffc }, {  251, 0x0000 }, {  251, 0x0000 }, {  251, 0x0000 },
+  {  251, 0x0000 }, {  251, 0xdffc },
+};
+static const Summary16 jisx0212_uni2indx_page21[3] = {
+  /* 0x2100 */
+  {  264, 0x0000 }, {  264, 0x0040 }, {  265, 0x0004 },
+};
+static const Summary16 jisx0212_uni2indx_page4e[1307] = {
+  /* 0x4e00 */
+  {  266, 0x1034 }, {  270, 0x8004 }, {  272, 0xc918 }, {  278, 0x0021 },
+  {  280, 0x0093 }, {  284, 0x1402 }, {  287, 0x0308 }, {  290, 0x8230 },
+  {  294, 0x2000 }, {  295, 0x20c0 }, {  298, 0x8000 }, {  299, 0x0200 },
+  {  300, 0x0008 }, {  301, 0x0c01 }, {  304, 0x8107 }, {  309, 0xe02a },
+  /* 0x4f00 */
+  {  315, 0x190d }, {  321, 0x02e4 }, {  326, 0x4000 }, {  327, 0x4aaa },
+  {  334, 0x1b05 }, {  340, 0x8154 }, {  345, 0x5409 }, {  350, 0x6782 },
+  {  357, 0x5636 }, {  365, 0xc69d }, {  374, 0x0000 }, {  374, 0x7a84 },
+  {  381, 0xbb63 }, {  391, 0x1004 }, {  393, 0x0005 }, {  395, 0xb005 },
+  /* 0x5000 */
+  {  400, 0x5493 }, {  407, 0x7989 }, {  415, 0x4084 }, {  418, 0x082d },
+  {  423, 0x5467 }, {  431, 0x828e }, {  437, 0x24cd }, {  444, 0x0003 },
+  {  446, 0xc45a }, {  453, 0xd85d }, {  462, 0x8407 }, {  467, 0x2601 },
+  {  471, 0x5099 }, {  477, 0xb119 }, {  484, 0x8354 }, {  490, 0x4446 },
+  /* 0x5100 */
+  {  495, 0x79c8 }, {  503, 0x7a81 }, {  510, 0xb188 }, {  516, 0x033a },
+  {  522, 0x8404 }, {  525, 0x81a8 }, {  530, 0x0050 }, {  532, 0x4000 },
+  {  533, 0x4818 }, {  537, 0x2100 }, {  539, 0x200a }, {  542, 0xd500 },
+  {  547, 0x8104 }, {  550, 0x412e }, {  556, 0x4024 }, {  559, 0x009c },
+  /* 0x5200 */
+  {  563, 0x0026 }, {  566, 0x016c }, {  571, 0x0104 }, {  573, 0x1026 },
+  {  577, 0x0220 }, {  579, 0x95a0 }, {  585, 0x4043 }, {  589, 0x0380 },
+  {  592, 0x1425 }, {  597, 0x15e8 }, {  604, 0x80f0 }, {  609, 0x2dc1 },
+  {  616, 0x9151 }, {  622, 0x1852 }, {  627, 0x1722 }, {  633, 0x00d3 },
+  /* 0x5300 */
+  {  638, 0x1c09 }, {  643, 0xd90a }, {  650, 0x3ba0 }, {  657, 0x7025 },
+  {  663, 0x1804 }, {  666, 0x0a00 }, {  668, 0x302a }, {  673, 0x4204 },
+  {  676, 0x4188 }, {  680, 0x2218 }, {  684, 0x8c12 }, {  689, 0x25b4 },
+  {  696, 0x8021 }, {  699, 0x642c }, {  705, 0x00c1 }, {  708, 0x0020 },
+  /* 0x5400 */
+  {  709, 0x0004 }, {  710, 0x0408 }, {  712, 0x8582 }, {  717, 0x0032 },
+  {  720, 0xa098 }, {  725, 0x4000 }, {  726, 0x6ad4 }, {  734, 0x8010 },
+  {  736, 0x232a }, {  742, 0x9062 }, {  747, 0x66c2 }, {  754, 0x8e82 },
+  {  760, 0x6440 }, {  764, 0x0000 }, {  764, 0x9401 }, {  768, 0xd040 },
+  /* 0x5500 */
+  {  772, 0x7323 }, {  780, 0x0020 }, {  781, 0x0c00 }, {  783, 0x3864 },
+  {  789, 0x2682 }, {  794, 0x4d03 }, {  800, 0x0053 }, {  804, 0x8000 },
+  {  805, 0xc146 }, {  811, 0x009e }, {  816, 0x2018 }, {  819, 0x8004 },
+  {  821, 0x5a4a }, {  828, 0x498e }, {  835, 0x0204 }, {  837, 0x8040 },
+  /* 0x5600 */
+  {  839, 0xe520 }, {  845, 0x0207 }, {  849, 0x1000 }, {  850, 0xbaa9 },
+  {  859, 0xaa5b }, {  868, 0x4010 }, {  870, 0xa24f }, {  878, 0x0026 },
+  {  881, 0x1930 }, {  886, 0xe620 }, {  892, 0x3bc0 }, {  899, 0x408a },
+  {  903, 0xbe20 }, {  910, 0xb201 }, {  915, 0x29f2 }, {  923, 0x00c2 },
+  /* 0x5700 */
+  {  926, 0x1486 }, {  931, 0x2c22 }, {  936, 0xd63d }, {  946, 0xe018 },
+  {  951, 0x3060 }, {  955, 0x0004 }, {  956, 0xe9a4 }, {  964, 0x5ebb },
+  {  975, 0x100a }, {  978, 0xf6b0 }, {  987, 0x1382 }, {  992, 0x2100 },
+  {  994, 0x9180 }, {  998, 0x6020 }, { 1001, 0x22d2 }, { 1007, 0xe161 },
+  /* 0x5800 */
+  { 1014, 0x3318 }, { 1020, 0xc800 }, { 1023, 0x20c1 }, { 1027, 0x8204 },
+  { 1030, 0xb200 }, { 1034, 0x8021 }, { 1037, 0x0192 }, { 1041, 0x9100 },
+  { 1044, 0xb783 }, { 1053, 0x2051 }, { 1057, 0x0247 }, { 1062, 0x1006 },
+  { 1065, 0x6114 }, { 1070, 0x2455 }, { 1076, 0x0206 }, { 1079, 0x0008 },
+  /* 0x5900 */
+  { 1080, 0x1860 }, { 1084, 0x201c }, { 1088, 0x811a }, { 1093, 0x8069 },
+  { 1098, 0x0048 }, { 1100, 0xea0c }, { 1107, 0xa80a }, { 1112, 0x1a64 },
+  { 1118, 0x5800 }, { 1121, 0x80a4 }, { 1125, 0xe090 }, { 1130, 0x1489 },
+  { 1135, 0x251a }, { 1141, 0xe004 }, { 1145, 0xc098 }, { 1150, 0x0096 },
+  /* 0x5a00 */
+  { 1154, 0x7011 }, { 1159, 0x400c }, { 1162, 0x2598 }, { 1168, 0x0001 },
+  { 1169, 0x11b0 }, { 1174, 0x4021 }, { 1177, 0x20a8 }, { 1181, 0x4c80 },
+  { 1185, 0x0800 }, { 1186, 0xd249 }, { 1193, 0x1085 }, { 1197, 0x8d2e },
+  { 1205, 0x8150 }, { 1209, 0x1400 }, { 1211, 0x4421 }, { 1215, 0x2060 },
+  /* 0x5b00 */
+  { 1218, 0x0103 }, { 1221, 0x2a80 }, { 1225, 0x2022 }, { 1228, 0x0110 },
+  { 1230, 0x1802 }, { 1233, 0x4044 }, { 1236, 0xc100 }, { 1239, 0xf000 },
+  { 1243, 0x4452 }, { 1248, 0x005b }, { 1253, 0xb300 }, { 1258, 0x1486 },
+  { 1263, 0xa003 }, { 1267, 0x07c0 }, { 1272, 0x8001 }, { 1274, 0x2012 },
+  /* 0x5c00 */
+  { 1277, 0x1000 }, { 1278, 0xc080 }, { 1281, 0x5a48 }, { 1287, 0x0065 },
+  { 1291, 0x0000 }, { 1291, 0x1600 }, { 1294, 0x238c }, { 1300, 0x3c31 },
+  { 1307, 0x8580 }, { 1311, 0xa004 }, { 1314, 0x044d }, { 1319, 0x0434 },
+  { 1323, 0x0a00 }, { 1325, 0x2084 }, { 1328, 0x4000 }, { 1329, 0x0016 },
+  /* 0x5d00 */
+  { 1332, 0x2042 }, { 1335, 0x0004 }, { 1336, 0x08d8 }, { 1341, 0xa212 },
+  { 1346, 0x054c }, { 1351, 0x8222 }, { 1355, 0x2417 }, { 1361, 0xc601 },
+  { 1366, 0x050a }, { 1370, 0x8a3c }, { 1377, 0x0881 }, { 1380, 0x0315 },
+  { 1385, 0x4888 }, { 1389, 0x0301 }, { 1392, 0x0211 }, { 1395, 0x0300 },
+  /* 0x5e00 */
+  { 1397, 0x2081 }, { 1400, 0x8134 }, { 1405, 0x4101 }, { 1408, 0x4024 },
+  { 1411, 0x0a00 }, { 1413, 0x5943 }, { 1420, 0x7d00 }, { 1426, 0x0001 },
+  { 1427, 0x4801 }, { 1430, 0x0000 }, { 1430, 0x1534 }, { 1436, 0xe00a },
+  { 1441, 0x5840 }, { 1445, 0x5036 }, { 1451, 0x0820 }, { 1453, 0x0000 },
+  /* 0x5f00 */
+  { 1453, 0x41c4 }, { 1458, 0x3200 }, { 1461, 0x591e }, { 1469, 0xa851 },
+  { 1475, 0x20b1 }, { 1480, 0x0911 }, { 1484, 0x8099 }, { 1489, 0x6534 },
+  { 1496, 0xa200 }, { 1499, 0x3040 }, { 1502, 0x9894 }, { 1508, 0x0103 },
+  { 1511, 0x0b90 }, { 1516, 0x401f }, { 1522, 0xf706 }, { 1531, 0x144c },
+  /* 0x6000 */
+  { 1536, 0x2480 }, { 1539, 0x8598 }, { 1545, 0x2010 }, { 1547, 0x0028 },
+  { 1549, 0x1381 }, { 1554, 0x20d2 }, { 1559, 0x0082 }, { 1561, 0xc002 },
+  { 1564, 0x4544 }, { 1569, 0x612a }, { 1575, 0x0134 }, { 1579, 0x4883 },
+  { 1584, 0xcf14 }, { 1592, 0x6a30 }, { 1598, 0x0024 }, { 1600, 0x3124 },
+  /* 0x6100 */
+  { 1605, 0x1484 }, { 1609, 0x52df }, { 1619, 0x0c04 }, { 1622, 0x02e3 },
+  { 1628, 0x0262 }, { 1632, 0x4000 }, { 1633, 0x1001 }, { 1635, 0x9904 },
+  { 1640, 0x281b }, { 1646, 0xb18c }, { 1653, 0x2521 }, { 1658, 0x1300 },
+  { 1661, 0xc007 }, { 1666, 0xf020 }, { 1671, 0xb2a6 }, { 1679, 0x0000 },
+  /* 0x6200 */
+  { 1679, 0x009a }, { 1683, 0x1028 }, { 1686, 0x0a8d }, { 1692, 0x2200 },
+  { 1694, 0x105c }, { 1699, 0x1457 }, { 1706, 0xa010 }, { 1709, 0x2408 },
+  { 1712, 0xe000 }, { 1715, 0x0001 }, { 1716, 0x0140 }, { 1718, 0xc4c8 },
+  { 1724, 0x4010 }, { 1726, 0x0460 }, { 1729, 0x0400 }, { 1730, 0x3014 },
+  /* 0x6300 */
+  { 1734, 0x2c18 }, { 1739, 0x0149 }, { 1743, 0x2600 }, { 1746, 0x1260 },
+  { 1750, 0x4c5e }, { 1758, 0x091c }, { 1763, 0x3060 }, { 1767, 0xb132 },
+  { 1774, 0x0494 }, { 1778, 0x4631 }, { 1784, 0xe050 }, { 1789, 0x2000 },
+  { 1790, 0x4122 }, { 1794, 0x103a }, { 1799, 0x1421 }, { 1803, 0x032c },
+  /* 0x6400 */
+  { 1808, 0x0600 }, { 1810, 0x4115 }, { 1815, 0x8635 }, { 1822, 0xa021 },
+  { 1826, 0x8800 }, { 1828, 0xbc1e }, { 1837, 0x200b }, { 1841, 0x2818 },
+  { 1845, 0x80a0 }, { 1848, 0xab03 }, { 1855, 0x114a }, { 1860, 0xe008 },
+  { 1864, 0x5e10 }, { 1870, 0x00a3 }, { 1874, 0x2630 }, { 1879, 0x88a1 },
+  /* 0x6500 */
+  { 1884, 0x8712 }, { 1890, 0xca58 }, { 1897, 0x4244 }, { 1901, 0x3402 },
+  { 1905, 0x0288 }, { 1908, 0x8015 }, { 1912, 0x0881 }, { 1915, 0x2400 },
+  { 1917, 0x0422 }, { 1920, 0x2124 }, { 1924, 0x4049 }, { 1928, 0x801c },
+  { 1932, 0x4304 }, { 1936, 0x8151 }, { 1941, 0x0000 }, { 1941, 0xc235 },
+  /* 0x6600 */
+  { 1948, 0x2311 }, { 1953, 0x6066 }, { 1959, 0x5e5e }, { 1969, 0x028b },
+  { 1974, 0x5461 }, { 1980, 0x1b82 }, { 1986, 0x1c03 }, { 1991, 0xdba8 },
+  { 2000, 0x3801 }, { 2004, 0x9e05 }, { 2011, 0x2011 }, { 2014, 0x8826 },
+  { 2019, 0xd10d }, { 2026, 0x8810 }, { 2029, 0x5900 }, { 2033, 0x0c00 },
+  /* 0x6700 */
+  { 2035, 0x40a0 }, { 2038, 0x1208 }, { 2041, 0x0005 }, { 2043, 0x4008 },
+  { 2045, 0x11a0 }, { 2049, 0x2030 }, { 2052, 0x5040 }, { 2055, 0x0850 },
+  { 2058, 0xc012 }, { 2062, 0x0b4a }, { 2068, 0x0000 }, { 2068, 0x3827 },
+  { 2075, 0x032d }, { 2081, 0x1284 }, { 2085, 0x0042 }, { 2087, 0x02c5 },
+  /* 0x6800 */
+  { 2092, 0x0000 }, { 2092, 0xa210 }, { 2096, 0xb180 }, { 2101, 0x880b },
+  { 2106, 0x1430 }, { 2110, 0x09a4 }, { 2115, 0xc800 }, { 2118, 0x1e27 },
+  { 2126, 0x0154 }, { 2130, 0x1540 }, { 2134, 0x462a }, { 2140, 0x0804 },
+  { 2142, 0x9120 }, { 2146, 0x324b }, { 2153, 0x3d20 }, { 2159, 0x3863 },
+  /* 0x6900 */
+  { 2166, 0x0640 }, { 2169, 0x00cb }, { 2174, 0x0000 }, { 2174, 0x092a },
+  { 2179, 0x4224 }, { 2183, 0x0880 }, { 2185, 0x1378 }, { 2192, 0x8c07 },
+  { 2198, 0x2001 }, { 2200, 0x0144 }, { 2203, 0xa962 }, { 2210, 0x1580 },
+  { 2214, 0x0120 }, { 2216, 0x00c2 }, { 2219, 0xc024 }, { 2223, 0x402a },
+  /* 0x6a00 */
+  { 2227, 0x800b }, { 2231, 0x2422 }, { 2235, 0x0111 }, { 2238, 0xc895 },
+  { 2245, 0x4660 }, { 2250, 0x0867 }, { 2256, 0x0490 }, { 2259, 0x400a },
+  { 2262, 0x0aca }, { 2268, 0xe802 }, { 2273, 0x8820 }, { 2276, 0xe013 },
+  { 2282, 0x1340 }, { 2286, 0x3071 }, { 2292, 0x1090 }, { 2295, 0x3007 },
+  /* 0x6b00 */
+  { 2300, 0x82cc }, { 2306, 0x4883 }, { 2311, 0x9910 }, { 2316, 0x8860 },
+  { 2320, 0x2440 }, { 2323, 0x2144 }, { 2327, 0x4881 }, { 2331, 0x6021 },
+  { 2335, 0x0024 }, { 2337, 0x8880 }, { 2340, 0x730d }, { 2348, 0x6301 },
+  { 2353, 0x1218 }, { 2357, 0x0440 }, { 2359, 0x40ca }, { 2364, 0x8282 },
+  /* 0x6c00 */
+  { 2368, 0x6234 }, { 2374, 0x8205 }, { 2378, 0x51c0 }, { 2383, 0x8c68 },
+  { 2389, 0xac00 }, { 2393, 0x1a14 }, { 2398, 0xa880 }, { 2402, 0x0b50 },
+  { 2407, 0x02e0 }, { 2411, 0x91b0 }, { 2417, 0x0000 }, { 2417, 0x0015 },
+  { 2420, 0xa044 }, { 2424, 0x1457 }, { 2431, 0x5a81 }, { 2437, 0x0014 },
+  /* 0x6d00 */
+  { 2439, 0xc490 }, { 2444, 0x040a }, { 2447, 0xc1c0 }, { 2452, 0x9202 },
+  { 2456, 0x0000 }, { 2456, 0xc080 }, { 2459, 0x80a2 }, { 2463, 0x1001 },
+  { 2465, 0x0084 }, { 2467, 0x01d6 }, { 2473, 0x1400 }, { 2475, 0xa290 },
+  { 2480, 0xc510 }, { 2485, 0xa840 }, { 2489, 0x8225 }, { 2494, 0x1051 },
+  /* 0x6e00 */
+  { 2498, 0x0011 }, { 2500, 0x4000 }, { 2501, 0x0084 }, { 2503, 0x1a44 },
+  { 2508, 0x8b30 }, { 2514, 0x709e }, { 2522, 0x010c }, { 2525, 0x2808 },
+  { 2528, 0x2000 }, { 2529, 0x0208 }, { 2531, 0x6081 }, { 2535, 0x880a },
+  { 2539, 0xe58b }, { 2548, 0x0000 }, { 2548, 0x6800 }, { 2551, 0x2a00 },
+  /* 0x6f00 */
+  { 2554, 0x3510 }, { 2559, 0x0d40 }, { 2563, 0xa640 }, { 2568, 0x1849 },
+  { 2573, 0x8000 }, { 2574, 0x668e }, { 2582, 0x1106 }, { 2586, 0x6000 },
+  { 2588, 0x3988 }, { 2594, 0x845d }, { 2601, 0xc1e1 }, { 2608, 0x1061 },
+  { 2612, 0x05a0 }, { 2616, 0x4400 }, { 2618, 0x0300 }, { 2620, 0x3221 },
+  /* 0x7000 */
+  { 2625, 0x20e1 }, { 2630, 0x0080 }, { 2631, 0x8009 }, { 2634, 0x1290 },
+  { 2638, 0x4f18 }, { 2645, 0x6030 }, { 2649, 0x5030 }, { 2653, 0x4060 },
+  { 2656, 0x0062 }, { 2659, 0x09f0 }, { 2665, 0x0810 }, { 2667, 0x0093 },
+  { 2671, 0x0400 }, { 2672, 0x117a }, { 2679, 0x0010 }, { 2680, 0x0400 },
+  /* 0x7100 */
+  { 2681, 0x98f8 }, { 2689, 0x4000 }, { 2690, 0xa801 }, { 2694, 0x0103 },
+  { 2697, 0x0ce2 }, { 2703, 0x5485 }, { 2709, 0x0101 }, { 2711, 0x0200 },
+  { 2712, 0x10a1 }, { 2716, 0x0c04 }, { 2719, 0x8005 }, { 2722, 0x840d },
+  { 2727, 0x1813 }, { 2732, 0x1648 }, { 2737, 0x0000 }, { 2737, 0x4100 },
+  /* 0x7200 */
+  { 2739, 0x0381 }, { 2743, 0xa488 }, { 2748, 0x8810 }, { 2751, 0x0310 },
+  { 2754, 0xc02e }, { 2760, 0x5469 }, { 2767, 0xc909 }, { 2773, 0x9982 },
+  { 2779, 0x6210 }, { 2783, 0x0808 }, { 2785, 0x6100 }, { 2788, 0x4012 },
+  { 2791, 0x1282 }, { 2795, 0x8160 }, { 2799, 0x0020 }, { 2800, 0x4c18 },
+  /* 0x7300 */
+  { 2805, 0x28b4 }, { 2811, 0x430c }, { 2816, 0x1194 }, { 2821, 0x2c26 },
+  { 2827, 0x2008 }, { 2829, 0xe145 }, { 2836, 0xdac1 }, { 2844, 0x1282 },
+  { 2848, 0x406b }, { 2854, 0xd1a9 }, { 2862, 0x2c65 }, { 2869, 0xb2a0 },
+  { 2875, 0x9a60 }, { 2881, 0x224c }, { 2886, 0x02ca }, { 2891, 0xaeb0 },
+  /* 0x7400 */
+  { 2899, 0x0493 }, { 2904, 0x0c02 }, { 2907, 0xff50 }, { 2917, 0x0203 },
+  { 2920, 0x28d9 }, { 2927, 0x2086 }, { 2931, 0x69c4 }, { 2938, 0x0006 },
+  { 2940, 0x82e3 }, { 2947, 0x9707 }, { 2955, 0xcf4b }, { 2965, 0x8a26 },
+  { 2971, 0x1300 }, { 2974, 0xcd09 }, { 2981, 0x8d10 }, { 2986, 0x9c10 },
+  /* 0x7500 */
+  { 2991, 0x0040 }, { 2992, 0x00c4 }, { 2995, 0x8693 }, { 3002, 0xe240 },
+  { 3007, 0x4189 }, { 3012, 0xc085 }, { 3017, 0x8002 }, { 3019, 0x7e02 },
+  { 3026, 0x0022 }, { 3028, 0x122d }, { 3034, 0x0014 }, { 3036, 0x8410 },
+  { 3039, 0xd053 }, { 3046, 0x9080 }, { 3049, 0xd093 }, { 3056, 0x0202 },
+  /* 0x7600 */
+  { 3058, 0x959d }, { 3067, 0x7a6c }, { 3076, 0x2268 }, { 3081, 0x172c },
+  { 3088, 0x0e3b }, { 3096, 0x8220 }, { 3099, 0xe030 }, { 3104, 0x0012 },
+  { 3106, 0x3022 }, { 3110, 0xb820 }, { 3115, 0x25fd }, { 3125, 0x2000 },
+  { 3126, 0x5a22 }, { 3132, 0x0210 }, { 3134, 0x1141 }, { 3138, 0x1243 },
+  /* 0x7700 */
+  { 3143, 0x4441 }, { 3147, 0x16b4 }, { 3154, 0xe104 }, { 3159, 0x6270 },
+  { 3165, 0xe464 }, { 3172, 0xd0c4 }, { 3178, 0x1495 }, { 3184, 0x241d },
+  { 3190, 0x3011 }, { 3194, 0x8470 }, { 3199, 0xc484 }, { 3204, 0x4022 },
+  { 3207, 0x0208 }, { 3209, 0xc226 }, { 3215, 0x1451 }, { 3220, 0x0913 },
+  /* 0x7800 */
+  { 3225, 0x6260 }, { 3230, 0x2002 }, { 3232, 0x600e }, { 3237, 0x00a1 },
+  { 3240, 0x5198 }, { 3246, 0x5004 }, { 3249, 0x451b }, { 3256, 0x4400 },
+  { 3258, 0x8400 }, { 3260, 0xe110 }, { 3265, 0x3112 }, { 3270, 0xa80f },
+  { 3277, 0x5380 }, { 3282, 0x886c }, { 3288, 0x0453 }, { 3293, 0x8ccc },
+  /* 0x7900 */
+  { 3300, 0x1041 }, { 3303, 0xd401 }, { 3308, 0x22a1 }, { 3313, 0xa832 },
+  { 3319, 0x8c70 }, { 3325, 0x1912 }, { 3330, 0x0a80 }, { 3333, 0x5a04 },
+  { 3338, 0x1800 }, { 3340, 0x197a }, { 3348, 0x8b02 }, { 3353, 0x0912 },
+  { 3357, 0x8594 }, { 3363, 0x6450 }, { 3368, 0x2c25 }, { 3374, 0x1102 },
+  /* 0x7a00 */
+  { 3377, 0x168c }, { 3383, 0x4822 }, { 3387, 0xa882 }, { 3392, 0x0731 },
+  { 3398, 0x11b0 }, { 3403, 0xb260 }, { 3409, 0x24a1 }, { 3414, 0x4120 },
+  { 3417, 0x0c65 }, { 3423, 0x4013 }, { 3427, 0x1009 }, { 3430, 0x1a28 },
+  { 3435, 0x5240 }, { 3439, 0x0802 }, { 3441, 0x1b00 }, { 3445, 0x6812 },
+  /* 0x7b00 */
+  { 3450, 0x0080 }, { 3451, 0x8010 }, { 3453, 0xee88 }, { 3461, 0xa013 },
+  { 3466, 0x4083 }, { 3470, 0x0020 }, { 3471, 0xa651 }, { 3478, 0x008c },
+  { 3481, 0x4210 }, { 3484, 0x4843 }, { 3489, 0x9021 }, { 3493, 0x3c65 },
+  { 3501, 0x0524 }, { 3505, 0x0ed0 }, { 3511, 0x0500 }, { 3513, 0x5734 },
+  /* 0x7c00 */
+  { 3521, 0xda5e }, { 3531, 0x0a00 }, { 3533, 0x1161 }, { 3538, 0x065a },
+  { 3544, 0x0440 }, { 3546, 0x7e2e }, { 3556, 0x628a }, { 3562, 0x3205 },
+  { 3567, 0x80c0 }, { 3570, 0x4010 }, { 3572, 0x0041 }, { 3574, 0x9cc1 },
+  { 3581, 0xa390 }, { 3587, 0x26b8 }, { 3594, 0x0a40 }, { 3597, 0x0020 },
+  /* 0x7d00 */
+  { 3598, 0x8388 }, { 3603, 0x604e }, { 3609, 0x2448 }, { 3613, 0x7002 },
+  { 3617, 0x2183 }, { 3622, 0x368a }, { 3629, 0x04a0 }, { 3632, 0x8d01 },
+  { 3637, 0x396e }, { 3646, 0x60c2 }, { 3651, 0x04c0 }, { 3654, 0x02c8 },
+  { 3658, 0x707c }, { 3666, 0x0280 }, { 3668, 0x2c64 }, { 3674, 0x0662 },
+  /* 0x7e00 */
+  { 3679, 0x0101 }, { 3681, 0x30a3 }, { 3687, 0xb181 }, { 3693, 0x8048 },
+  { 3696, 0x40b0 }, { 3700, 0x8105 }, { 3704, 0xc826 }, { 3710, 0x4108 },
+  { 3713, 0x24c2 }, { 3718, 0x6522 }, { 3724, 0x0000 }, { 3724, 0x0000 },
+  { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0x0000 },
+  /* 0x7f00 */
+  { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0xf800 },
+  { 3729, 0x8098 }, { 3733, 0x380c }, { 3738, 0x207a }, { 3744, 0xe002 },
+  { 3748, 0xa801 }, { 3752, 0x10c3 }, { 3757, 0x2446 }, { 3762, 0x9010 },
+  { 3765, 0xc109 }, { 3770, 0x8800 }, { 3772, 0xd128 }, { 3778, 0xe404 },
+  /* 0x8000 */
+  { 3783, 0xe580 }, { 3789, 0xe05a }, { 3796, 0x5051 }, { 3801, 0x56b1 },
+  { 3809, 0x0011 }, { 3811, 0x0000 }, { 3811, 0x2051 }, { 3815, 0x0022 },
+  { 3817, 0x4102 }, { 3820, 0x5000 }, { 3822, 0x08c0 }, { 3825, 0x0300 },
+  { 3827, 0xa100 }, { 3830, 0x01b4 }, { 3835, 0x6001 }, { 3838, 0x464d },
+  /* 0x8100 */
+  { 3845, 0x0808 }, { 3847, 0x51c0 }, { 3852, 0x1091 }, { 3856, 0x1421 },
+  { 3860, 0x14a0 }, { 3864, 0x0084 }, { 3866, 0xa383 }, { 3873, 0x0080 },
+  { 3874, 0x4872 }, { 3880, 0x4941 }, { 3885, 0x4004 }, { 3887, 0x0814 },
+  { 3890, 0xcc28 }, { 3896, 0x68a0 }, { 3901, 0x1812 }, { 3905, 0xa367 },
+  /* 0x8200 */
+  { 3914, 0x8009 }, { 3917, 0x2618 }, { 3922, 0x0106 }, { 3925, 0x0414 },
+  { 3928, 0xc878 }, { 3935, 0x1042 }, { 3938, 0x2089 }, { 3942, 0xa810 },
+  { 3946, 0x469b }, { 3954, 0x0d52 }, { 3960, 0x479b }, { 3969, 0xd495 },
+  { 3977, 0x0040 }, { 3978, 0x0421 }, { 3981, 0xa515 }, { 3988, 0x60c0 },
+  /* 0x8300 */
+  { 3992, 0x0d83 }, { 3998, 0xe800 }, { 4002, 0x7006 }, { 4007, 0x3489 },
+  { 4013, 0x609c }, { 4019, 0x00fa }, { 4025, 0x0000 }, { 4025, 0xa101 },
+  { 4029, 0x2055 }, { 4034, 0x3b34 }, { 4042, 0x32c0 }, { 4047, 0xc000 },
+  { 4049, 0x8281 }, { 4053, 0x2013 }, { 4057, 0x0500 }, { 4059, 0x1340 },
+  /* 0x8400 */
+  { 4063, 0x8442 }, { 4067, 0x0222 }, { 4070, 0x8000 }, { 4071, 0x0200 },
+  { 4072, 0xa5a0 }, { 4078, 0x1746 }, { 4085, 0x04b1 }, { 4090, 0x3159 },
+  { 4097, 0x0022 }, { 4099, 0x402c }, { 4103, 0x8740 }, { 4108, 0x6412 },
+  { 4113, 0x9185 }, { 4119, 0x1008 }, { 4121, 0x8480 }, { 4124, 0x2c87 },
+  /* 0x8500 */
+  { 4131, 0x508c }, { 4136, 0x5001 }, { 4139, 0x8cbc }, { 4147, 0x805c },
+  { 4152, 0x8040 }, { 4154, 0xf24f }, { 4164, 0x8817 }, { 4170, 0xae00 },
+  { 4175, 0x9a62 }, { 4182, 0xa108 }, { 4186, 0x20a5 }, { 4191, 0xf1d0 },
+  { 4199, 0x4c84 }, { 4204, 0x8500 }, { 4207, 0x2141 }, { 4211, 0x9048 },
+  /* 0x8600 */
+  { 4215, 0x6031 }, { 4220, 0x4b07 }, { 4227, 0x0282 }, { 4230, 0x3540 },
+  { 4235, 0x0047 }, { 4239, 0x23cc }, { 4246, 0x921f }, { 4254, 0x04e0 },
+  { 4258, 0x2100 }, { 4260, 0x1542 }, { 4265, 0x21c2 }, { 4270, 0x83ba },
+  { 4278, 0x002b }, { 4282, 0x14a6 }, { 4288, 0x00a9 }, { 4292, 0x3400 },
+  /* 0x8700 */
+  { 4295, 0xc8b0 }, { 4301, 0xc219 }, { 4307, 0xc10a }, { 4312, 0x7606 },
+  { 4319, 0x2029 }, { 4323, 0x2100 }, { 4325, 0x8032 }, { 4329, 0x0806 },
+  { 4332, 0x1bf8 }, { 4341, 0x43a9 }, { 4348, 0x7089 }, { 4354, 0xc022 },
+  { 4358, 0x4702 }, { 4363, 0x9660 }, { 4369, 0x2c1c }, { 4375, 0x850a },
+  /* 0x8800 */
+  { 4380, 0x0e4a }, { 4386, 0xdf1d }, { 4397, 0x6100 }, { 4400, 0x1425 },
+  { 4405, 0x4f2a }, { 4413, 0x9562 }, { 4420, 0x0211 }, { 4423, 0x0a02 },
+  { 4426, 0x0001 }, { 4427, 0x9d00 }, { 4432, 0x0501 }, { 4435, 0x6400 },
+  { 4438, 0x7c01 }, { 4444, 0x480e }, { 4449, 0x8080 }, { 4451, 0x00a3 },
+  /* 0x8900 */
+  { 4455, 0xe042 }, { 4460, 0x1760 }, { 4466, 0x01c1 }, { 4470, 0x4627 },
+  { 4477, 0x8265 }, { 4483, 0x1c84 }, { 4488, 0x480e }, { 4493, 0x3c29 },
+  { 4500, 0x2200 }, { 4502, 0x9831 }, { 4508, 0x0021 }, { 4510, 0x10f1 },
+  { 4516, 0x0000 }, { 4516, 0x01f0 }, { 4521, 0x2a20 }, { 4525, 0xa24a },
+  /* 0x8a00 */
+  { 4531, 0x80b0 }, { 4535, 0x4036 }, { 4540, 0x9855 }, { 4547, 0x60a0 },
+  { 4551, 0x62a9 }, { 4558, 0x31c8 }, { 4564, 0x00a2 }, { 4567, 0xcee0 },
+  { 4575, 0x8849 }, { 4580, 0x82c5 }, { 4586, 0xc280 }, { 4590, 0x48c8 },
+  { 4595, 0x0748 }, { 4600, 0xa0ba }, { 4607, 0x1000 }, { 4608, 0x9071 },
+  /* 0x8b00 */
+  { 4614, 0x0c60 }, { 4618, 0xd002 }, { 4622, 0x2000 }, { 4623, 0x1081 },
+  { 4626, 0x217c }, { 4633, 0x421c }, { 4638, 0x2008 }, { 4640, 0x5340 },
+  { 4645, 0xa832 }, { 4651, 0xd030 }, { 4656, 0x0000 }, { 4656, 0x0000 },
+  { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x0000 },
+  /* 0x8c00 */
+  { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x6300 },
+  { 4660, 0x8aa0 }, { 4665, 0x2b9a }, { 4673, 0x2358 }, { 4679, 0x4868 },
+  { 4684, 0x08c0 }, { 4687, 0x1a0d }, { 4693, 0x0010 }, { 4694, 0x0600 },
+  { 4696, 0x8a60 }, { 4701, 0x2260 }, { 4705, 0x9102 }, { 4709, 0xc1a5 },
+  /* 0x8d00 */
+  { 4716, 0x020a }, { 4719, 0x0884 }, { 4722, 0x0000 }, { 4722, 0x0000 },
+  { 4722, 0x0000 }, { 4722, 0x0000 }, { 4722, 0x5220 }, { 4726, 0x8000 },
+  { 4727, 0x2114 }, { 4731, 0xc023 }, { 4736, 0x9841 }, { 4741, 0x1aa4 },
+  { 4747, 0x45e1 }, { 4754, 0x02b2 }, { 4759, 0x10b0 }, { 4763, 0x2017 },
+  /* 0x8e00 */
+  { 4768, 0x0872 }, { 4773, 0x0052 }, { 4776, 0x00cf }, { 4782, 0x23ca },
+  { 4789, 0xe803 }, { 4795, 0x7810 }, { 4800, 0xb206 }, { 4806, 0x0e03 },
+  { 4811, 0x020c }, { 4814, 0x6c25 }, { 4821, 0x6284 }, { 4826, 0x0c28 },
+  { 4830, 0x809b }, { 4836, 0x1012 }, { 4839, 0x6100 }, { 4842, 0x0683 },
+  /* 0x8f00 */
+  { 4847, 0x8185 }, { 4852, 0x41c1 }, { 4857, 0x71ab }, { 4866, 0x04f0 },
+  { 4871, 0x808b }, { 4876, 0x613e }, { 4884, 0x0020 }, { 4885, 0x0000 },
+  { 4885, 0x0000 }, { 4885, 0x2000 }, { 4886, 0x0073 }, { 4891, 0x4160 },
+  { 4895, 0x2c43 }, { 4901, 0x002d }, { 4905, 0x4119 }, { 4910, 0x4862 },
+  /* 0x9000 */
+  { 4915, 0x1114 }, { 4919, 0x0900 }, { 4921, 0xb700 }, { 4927, 0x8098 },
+  { 4931, 0x1018 }, { 4934, 0x2800 }, { 4936, 0x10c4 }, { 4940, 0x0211 },
+  { 4943, 0x5920 }, { 4948, 0x0ba1 }, { 4954, 0x0027 }, { 4958, 0x605d },
+  { 4965, 0x11b8 }, { 4971, 0xb3a4 }, { 4979, 0x8820 }, { 4982, 0xc051 },
+  /* 0x9100 */
+  { 4987, 0x2171 }, { 4993, 0x55d1 }, { 5001, 0xc2ad }, { 5009, 0x36d2 },
+  { 5017, 0x8188 }, { 5021, 0x0e88 }, { 5026, 0x2092 }, { 5030, 0x0e10 },
+  { 5034, 0x446a }, { 5040, 0x413a }, { 5046, 0x7142 }, { 5052, 0xb84f },
+  { 5061, 0x002c }, { 5064, 0x4698 }, { 5070, 0xf630 }, { 5078, 0x2a83 },
+  /* 0x9200 */
+  { 5084, 0x16f3 }, { 5093, 0x314d }, { 5100, 0xc178 }, { 5107, 0x5769 },
+  { 5116, 0xe4cd }, { 5125, 0x3302 }, { 5130, 0xc3a3 }, { 5138, 0xbbe1 },
+  { 5148, 0x6700 }, { 5153, 0x8284 }, { 5157, 0x89b1 }, { 5164, 0xbd44 },
+  { 5172, 0x79ef }, { 5184, 0xb3a9 }, { 5193, 0x51ab }, { 5201, 0x8a01 },
+  /* 0x9300 */
+  { 5205, 0x2105 }, { 5209, 0xf032 }, { 5216, 0x06b2 }, { 5222, 0x00d8 },
+  { 5226, 0x0380 }, { 5229, 0x45a7 }, { 5237, 0xa6b0 }, { 5244, 0xa45b },
+  { 5252, 0xad07 }, { 5260, 0x4924 }, { 5265, 0x0b5a }, { 5272, 0x0470 },
+  { 5276, 0x3ef2 }, { 5286, 0xd208 }, { 5291, 0x00c4 }, { 5294, 0x2f80 },
+  /* 0x9400 */
+  { 5300, 0xe316 }, { 5308, 0x80e0 }, { 5312, 0xc000 }, { 5314, 0xa81e },
+  { 5321, 0x1528 }, { 5326, 0x9220 }, { 5330, 0xe90a }, { 5337, 0x0006 },
+  { 5339, 0x0018 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 },
+  { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 },
+  /* 0x9500 */
+  { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 },
+  { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x4300 },
+  { 5344, 0x7110 }, { 5349, 0xe000 }, { 5352, 0x1a42 }, { 5357, 0xa450 },
+  { 5362, 0x0b40 }, { 5366, 0xe60f }, { 5375, 0x0051 }, { 5378, 0x0000 },
+  /* 0x9600 */
+  { 5378, 0x0000 }, { 5378, 0x6000 }, { 5380, 0x1074 }, { 5385, 0x378a },
+  { 5393, 0x0002 }, { 5394, 0x01d4 }, { 5399, 0x4002 }, { 5401, 0xd810 },
+  { 5406, 0x021e }, { 5411, 0xa442 }, { 5416, 0xc270 }, { 5422, 0x0408 },
+  { 5424, 0x0400 }, { 5425, 0xe504 }, { 5431, 0x8200 }, { 5433, 0x0402 },
+  /* 0x9700 */
+  { 5435, 0x022c }, { 5439, 0x2c00 }, { 5442, 0x010e }, { 5446, 0x000a },
+  { 5448, 0xc40a }, { 5453, 0x0da0 }, { 5458, 0x4488 }, { 5462, 0xa9c8 },
+  { 5469, 0x0201 }, { 5471, 0xc6e0 }, { 5478, 0x5004 }, { 5481, 0xd766 },
+  { 5491, 0x76b2 }, { 5500, 0x6b93 }, { 5509, 0x8013 }, { 5513, 0x0592 },
+  /* 0x9800 */
+  { 5518, 0x6480 }, { 5522, 0x5250 }, { 5527, 0xc869 }, { 5534, 0x402d },
+  { 5539, 0x0490 }, { 5542, 0x06ce }, { 5549, 0x146c }, { 5555, 0x0000 },
+  { 5555, 0x0000 }, { 5555, 0x0000 }, { 5555, 0x6800 }, { 5558, 0x8d91 },
+  { 5565, 0x1124 }, { 5569, 0x0000 }, { 5569, 0x04ea }, { 5575, 0x0048 },
+  /* 0x9900 */
+  { 5577, 0x0184 }, { 5580, 0x9ce2 }, { 5588, 0x08c4 }, { 5592, 0x1e3e },
+  { 5601, 0x61c3 }, { 5608, 0xdb10 }, { 5615, 0x0001 }, { 5616, 0x0000 },
+  { 5616, 0x0000 }, { 5616, 0xa800 }, { 5619, 0x0040 }, { 5620, 0xa627 },
+  { 5628, 0x0208 }, { 5630, 0x5618 }, { 5636, 0x1c80 }, { 5640, 0x6231 },
+  /* 0x9a00 */
+  { 5646, 0x181c }, { 5651, 0x4043 }, { 5655, 0x609d }, { 5662, 0x0168 },
+  { 5666, 0x5c92 }, { 5673, 0x2052 }, { 5677, 0x0000 }, { 5677, 0x0000 },
+  { 5677, 0x0000 }, { 5677, 0x0000 }, { 5677, 0xd400 }, { 5681, 0xca74 },
+  { 5689, 0x414a }, { 5694, 0x18e5 }, { 5701, 0x12b1 }, { 5707, 0xa62c },
+  /* 0x9b00 */
+  { 5714, 0x7b3f }, { 5726, 0x1a45 }, { 5732, 0x2841 }, { 5736, 0x26b8 },
+  { 5743, 0x1900 }, { 5746, 0x48e0 }, { 5751, 0x7d6a }, { 5761, 0x83a8 },
+  { 5767, 0xaef1 }, { 5777, 0x6411 }, { 5782, 0x12c0 }, { 5786, 0xd987 },
+  { 5795, 0x4182 }, { 5799, 0xa181 }, { 5804, 0x8ca0 }, { 5809, 0xa788 },
+  /* 0x9c00 */
+  { 5816, 0x8805 }, { 5820, 0x5742 }, { 5827, 0x07cc }, { 5834, 0x20e2 },
+  { 5839, 0xc63a }, { 5847, 0xf959 }, { 5857, 0x4f08 }, { 5863, 0x08a5 },
+  { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 },
+  { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0040 }, { 5869, 0x0284 },
+  /* 0x9d00 */
+  { 5872, 0x0804 }, { 5874, 0x7182 }, { 5880, 0x8000 }, { 5881, 0x341d },
+  { 5888, 0x04ac }, { 5893, 0x8018 }, { 5896, 0x0e2c }, { 5902, 0x58c1 },
+  { 5908, 0x6458 }, { 5914, 0x01ec }, { 5920, 0x5402 }, { 5924, 0x9222 },
+  { 5929, 0x0688 }, { 5933, 0xc4f0 }, { 5940, 0x4aa1 }, { 5946, 0x4019 },
+  /* 0x9e00 */
+  { 5950, 0x4484 }, { 5954, 0x3267 }, { 5962, 0x0000 }, { 5962, 0x0000 },
+  { 5962, 0x0000 }, { 5962, 0x0000 }, { 5962, 0x0000 }, { 5962, 0x1c00 },
+  { 5965, 0xc0bd }, { 5973, 0x4940 }, { 5977, 0xd110 }, { 5982, 0x0039 },
+  { 5986, 0x0940 }, { 5989, 0x8020 }, { 5991, 0x7090 }, { 5996, 0x8127 },
+  /* 0x9f00 */
+  { 6002, 0x820c }, { 6006, 0x8ed7 }, { 6016, 0x8c44 }, { 6021, 0xb696 },
+  { 6030, 0x00fa }, { 6036, 0x65e8 }, { 6044, 0xe300 }, { 6049, 0x242b },
+  { 6055, 0x8000 }, { 6056, 0x40d7 }, { 6063, 0x002e },
+};
+
+static int
+jisx0212_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x0460)
+      summary = &jisx0212_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x2100 && wc < 0x2130)
+      summary = &jisx0212_uni2indx_page21[(wc>>4)-0x210];
+    else if (wc >= 0x4e00 && wc < 0x9fb0)
+      summary = &jisx0212_uni2indx_page4e[(wc>>4)-0x4e0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = jisx0212_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/johab.h b/libiconv/johab.h
new file mode 100644 (file)
index 0000000..fe4d5c5
--- /dev/null
@@ -0,0 +1,114 @@
+
+/*
+ * JOHAB
+ */
+
+/*
+   Conversion between JOHAB codes (s1,s2) and KSX1001 codes (c1,c2):
+   Example. (s1,s2) = 0xD931, (c1,c2) = 0x2121.
+            (s1,s2) = 0xDEF1, (c1,c2) = 0x2C71.
+            (s1,s2) = 0xE031, (c1,c2) = 0x4A21.
+            (s1,s2) = 0xF9FE, (c1,c2) = 0x7D7E.
+   0xD9 <= s1 <= 0xDE || 0xE0 <= s1 <= 0xF9,
+   0x31 <= s2 <= 0x7E || 0x91 <= s2 <= 0xFE,
+   0x21 <= c1 <= 0x2C || 0x4A <= c1 <= 0x7D,
+   0x21 <= c2 <= 0x7E.
+   Invariant:
+     94*(s1 < 0xE0 ? 2*s1-0x1B2 : 2*s1-0x197) + (s2 < 0x91 ? s2-0x31 : s2-0x43)
+     = 94*(c1-0x21)+(c2-0x21)
+   Conversion (s1,s2) -> (c1,c2):
+     t1 := (s1 < 0xE0 ? 2*s1-0x1B2 : 2*s1-0x197)
+     t2 := (s2 < 0x91 ? s2-0x31 : s2-0x43)
+     c1 := t1 + (t2 < 0x5E ? 0 : 1) + 0x21
+     c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21
+   Conversion (c1,c2) -> (s1,s2):
+     t := (c1 < 0x4A ? (c1-0x21+0x1B2) : (c1-0x21+0x197))
+     s1 := t >> 1
+     t2 := (t & 1) * 0x5E + (c2 - 0x21)
+     s2 := (t2 < 0x4E ? t2+0x31 : t2+0x43)
+ */
+
+static int
+johab_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    if (c == 0x5c)
+      *pwc = (wchar_t) 0x20a9;
+    else
+      *pwc = (wchar_t) c;
+    return 1;
+  } else if (c < 0xd8) {
+    return johab_hangul_mbtowc(conv,pwc,s,n);
+  } else {
+    unsigned char s1, s2;
+    s1 = c;
+    if ((s1 >= 0xd9 && s1 <= 0xde) || (s1 >= 0xe0 && s1 <= 0xf9)) {
+      if (n < 2)
+        return RET_TOOFEW(0);
+      s2 = s[1];
+      if ((s2 >= 0x31 && s2 <= 0x7e) || (s2 >= 0x91 && s2 <= 0xfe)) {
+        unsigned char t1 = (s1 < 0xe0 ? 2*(s1-0xd9) : 2*s1-0x197);
+        unsigned char t2 = (s2 < 0x91 ? s2-0x31 : s2-0x43);
+        unsigned char buf[2];
+        buf[0] = t1 + (t2 < 0x5e ? 0 : 1) + 0x21;
+        buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21;
+        return ksc5601_mbtowc(conv,pwc,buf,2);
+      }
+    }
+    return RET_ILSEQ;
+  }
+}
+
+static int
+johab_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Try ASCII variation. */
+  if (wc < 0x0080 && wc != 0x005c) {
+    *r = wc;
+    return 1;
+  }
+  if (wc == 0x20a9) {
+    *r = 0x5c;
+    return 1;
+  }
+
+  /* Try JOHAB Hangul table before KSC5601 table, because the KSC5601 table
+     contains some (2350 out of 11172) Hangul syllables (rows 0x30XX..0x48XX),
+     and we want the search to return the JOHAB Hangul table entry. */
+
+  /* Try JOHAB Hangul. */
+  ret = johab_hangul_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    r[0] = buf[0];
+    r[1] = buf[1];
+    return 2;
+  }
+
+  /* Try KSC5601. */
+  ret = ksc5601_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    unsigned char c1, c2;
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    c1 = buf[0];
+    c2 = buf[1];
+    if (((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x4a && c1 <= 0x7d))
+        && (c2 >= 0x21 && c2 <= 0x7e)) {
+      unsigned int t = (c1 < 0x4A ? (c1-0x21+0x1B2) : (c1-0x21+0x197));
+      unsigned char t2 = ((t & 1) ? 0x5e : 0) + (c2 - 0x21);
+      r[0] = t >> 1;
+      r[1] = (t2 < 0x4e ? t2+0x31 : t2+0x43);
+      return 2;
+    }
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/johab_decomp.h b/libiconv/johab_decomp.h
new file mode 100644 (file)
index 0000000..0a45635
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Decomposition of JOHAB Hangul in one to three Johab Jamo elements.
+ *
+ * See Ken Lunde's "CJKV Information Processing", p. 181-184.
+ */
+
+/* Note that Jamo XX = UHC 0xA4A0+XX = Unicode 0x3130+XX */
+#define NONE 0xfd
+#define FILL 0xff
+static unsigned char jamo_initial[32] = {
+  NONE, FILL, 0x01, 0x02, 0x04, 0x07, 0x08, 0x09,
+  0x11, 0x12, 0x13, 0x15, 0x16, 0x17, 0x18, 0x19,
+  0x1a, 0x1b, 0x1c, 0x1d, 0x1e, NONE, NONE, NONE,
+  NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,
+};
+static unsigned char jamo_medial[32] = {
+  NONE, NONE, FILL, 0x1f, 0x20, 0x21, 0x22, 0x23,
+  NONE, NONE, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
+  NONE, NONE, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+  NONE, NONE, 0x30, 0x31, 0x32, 0x33, NONE, NONE,
+};
+static unsigned char jamo_final[32] = {
+  NONE, FILL, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
+  0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+  0x10, 0x11, NONE, 0x12, 0x14, 0x15, 0x16, 0x17,
+  0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, NONE, NONE,
+};
+
+/* Decompose wc into r[0..2], and return the number of resulting Jamo elements.
+   Return RET_ILSEQ if decomposition is not possible. */
+
+static int johab_hangul_decompose (conv_t conv, unsigned char* r, wchar_t wc)
+{
+  unsigned char buf[2];
+  int ret = johab_hangul_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    unsigned int hangul = (buf[0] << 8) | buf[1];
+    unsigned char jamo1 = jamo_initial[(hangul >> 10) & 31];
+    unsigned char jamo2 = jamo_medial[(hangul >> 5) & 31];
+    unsigned char jamo3 = jamo_final[hangul & 31];
+    if ((hangul >> 15) != 1) abort();
+    if (jamo1 != NONE && jamo2 != NONE && jamo3 != NONE) {
+      /* They are not all three == FILL because that would correspond to
+         hangul = 0x8441, but that is unmapped in the johab_hangul table. */
+      unsigned char* p = r;
+      if (jamo1 != FILL)
+        *p++ = jamo1;
+      if (jamo2 != FILL)
+        *p++ = jamo2;
+      if (jamo3 != FILL)
+        *p++ = jamo3;
+      return p-r;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+#undef FILL
+#undef NONE
diff --git a/libiconv/johab_hangul.h b/libiconv/johab_hangul.h
new file mode 100644 (file)
index 0000000..ec73be5
--- /dev/null
@@ -0,0 +1,3495 @@
+
+/*
+ * JOHAB Hangul
+ */
+
+static const unsigned short johab_hangul_2uni_page84[14975] = {
+  /* 0x84 */
+  0xfffd, 0xfffd, 0xfffd, 0x3133, 0xfffd, 0x3135, 0x3136, 0xfffd,
+  0xfffd, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
+  0xfffd, 0xfffd, 0xfffd, 0x3144, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x314f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3150, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3151, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3152, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3153, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x85 */
+  0x3154, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x3155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3156, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3157, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3158, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3159, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x86 */
+  0x315a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x315b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x315c, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x315d, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x315e, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x315f, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x87 */
+  0x3160, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x3161, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3162, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3163, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x88 */
+  0x3131, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xac00, 0xac01, 0xac02, 0xac03, 0xac04, 0xac05, 0xac06, 0xac07,
+  0xac08, 0xac09, 0xac0a, 0xac0b, 0xac0c, 0xac0d, 0xac0e, 0xac0f,
+  0xac10, 0xfffd, 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16,
+  0xac17, 0xac18, 0xac19, 0xac1a, 0xac1b, 0xfffd, 0xac1c, 0xac1d,
+  0xac1e, 0xac1f, 0xac20, 0xac21, 0xac22, 0xac23, 0xac24, 0xac25,
+  0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, 0xac2b, 0xac2c, 0xfffd,
+  0xac2d, 0xac2e, 0xac2f, 0xac30, 0xac31, 0xac32, 0xac33, 0xac34,
+  0xac35, 0xac36, 0xac37, 0xfffd, 0xfffd, 0xfffd, 0xac38, 0xac39,
+  0xac3a, 0xac3b, 0xac3c, 0xac3d, 0xac3e, 0xac3f, 0xac40, 0xac41,
+  0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xfffd,
+  0xac49, 0xac4a, 0xac4b, 0xac4c, 0xac4d, 0xac4e, 0xac4f, 0xac50,
+  0xac51, 0xac52, 0xac53, 0xfffd, 0xfffd, 0xfffd, 0xac54, 0xac55,
+  0xac56, 0xac57, 0xac58, 0xac59, 0xac5a, 0xac5b, 0xac5c, 0xac5d,
+  0xac5e, 0xac5f, 0xac60, 0xac61, 0xac62, 0xac63, 0xac64, 0xfffd,
+  0xac65, 0xac66, 0xac67, 0xac68, 0xac69, 0xac6a, 0xac6b, 0xac6c,
+  0xac6d, 0xac6e, 0xac6f, 0xfffd, 0xfffd, 0xfffd, 0xac70, 0xac71,
+  0xac72, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, 0xac79,
+  0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac7f, 0xac80, 0xfffd,
+  0xac81, 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88,
+  0xac89, 0xac8a, 0xac8b, 0xfffd,
+  /* 0x89 */
+  0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92, 0xac93,
+  0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, 0xac9b,
+  0xac9c, 0xfffd, 0xac9d, 0xac9e, 0xac9f, 0xaca0, 0xaca1, 0xaca2,
+  0xaca3, 0xaca4, 0xaca5, 0xaca6, 0xaca7, 0xfffd, 0xfffd, 0xfffd,
+  0xaca8, 0xaca9, 0xacaa, 0xacab, 0xacac, 0xacad, 0xacae, 0xacaf,
+  0xacb0, 0xacb1, 0xacb2, 0xacb3, 0xacb4, 0xacb5, 0xacb6, 0xacb7,
+  0xacb8, 0xfffd, 0xacb9, 0xacba, 0xacbb, 0xacbc, 0xacbd, 0xacbe,
+  0xacbf, 0xacc0, 0xacc1, 0xacc2, 0xacc3, 0xfffd, 0xacc4, 0xacc5,
+  0xacc6, 0xacc7, 0xacc8, 0xacc9, 0xacca, 0xaccb, 0xaccc, 0xaccd,
+  0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd2, 0xacd3, 0xacd4, 0xfffd,
+  0xacd5, 0xacd6, 0xacd7, 0xacd8, 0xacd9, 0xacda, 0xacdb, 0xacdc,
+  0xacdd, 0xacde, 0xacdf, 0xfffd, 0xfffd, 0xfffd, 0xace0, 0xace1,
+  0xace2, 0xace3, 0xace4, 0xace5, 0xace6, 0xace7, 0xace8, 0xace9,
+  0xacea, 0xaceb, 0xacec, 0xaced, 0xacee, 0xacef, 0xacf0, 0xfffd,
+  0xacf1, 0xacf2, 0xacf3, 0xacf4, 0xacf5, 0xacf6, 0xacf7, 0xacf8,
+  0xacf9, 0xacfa, 0xacfb, 0xfffd, 0xfffd, 0xfffd, 0xacfc, 0xacfd,
+  0xacfe, 0xacff, 0xad00, 0xad01, 0xad02, 0xad03, 0xad04, 0xad05,
+  0xad06, 0xad07, 0xad08, 0xad09, 0xad0a, 0xad0b, 0xad0c, 0xfffd,
+  0xad0d, 0xad0e, 0xad0f, 0xad10, 0xad11, 0xad12, 0xad13, 0xad14,
+  0xad15, 0xad16, 0xad17, 0xfffd, 0xfffd, 0xfffd, 0xad18, 0xad19,
+  0xad1a, 0xad1b, 0xad1c, 0xad1d, 0xad1e, 0xad1f, 0xad20, 0xad21,
+  0xad22, 0xad23, 0xad24, 0xad25, 0xad26, 0xad27, 0xad28, 0xfffd,
+  0xad29, 0xad2a, 0xad2b, 0xad2c, 0xad2d, 0xad2e, 0xad2f, 0xad30,
+  0xad31, 0xad32, 0xad33, 0xfffd,
+  /* 0x8a */
+  0xad34, 0xad35, 0xad36, 0xad37, 0xad38, 0xad39, 0xad3a, 0xad3b,
+  0xad3c, 0xad3d, 0xad3e, 0xad3f, 0xad40, 0xad41, 0xad42, 0xad43,
+  0xad44, 0xfffd, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49, 0xad4a,
+  0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xfffd, 0xfffd, 0xfffd,
+  0xad50, 0xad51, 0xad52, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57,
+  0xad58, 0xad59, 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f,
+  0xad60, 0xfffd, 0xad61, 0xad62, 0xad63, 0xad64, 0xad65, 0xad66,
+  0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xfffd, 0xad6c, 0xad6d,
+  0xad6e, 0xad6f, 0xad70, 0xad71, 0xad72, 0xad73, 0xad74, 0xad75,
+  0xad76, 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7b, 0xad7c, 0xfffd,
+  0xad7d, 0xad7e, 0xad7f, 0xad80, 0xad81, 0xad82, 0xad83, 0xad84,
+  0xad85, 0xad86, 0xad87, 0xfffd, 0xfffd, 0xfffd, 0xad88, 0xad89,
+  0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91,
+  0xad92, 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xfffd,
+  0xad99, 0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xada0,
+  0xada1, 0xada2, 0xada3, 0xfffd, 0xfffd, 0xfffd, 0xada4, 0xada5,
+  0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, 0xadad,
+  0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb2, 0xadb3, 0xadb4, 0xfffd,
+  0xadb5, 0xadb6, 0xadb7, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc,
+  0xadbd, 0xadbe, 0xadbf, 0xfffd, 0xfffd, 0xfffd, 0xadc0, 0xadc1,
+  0xadc2, 0xadc3, 0xadc4, 0xadc5, 0xadc6, 0xadc7, 0xadc8, 0xadc9,
+  0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, 0xadcf, 0xadd0, 0xfffd,
+  0xadd1, 0xadd2, 0xadd3, 0xadd4, 0xadd5, 0xadd6, 0xadd7, 0xadd8,
+  0xadd9, 0xadda, 0xaddb, 0xfffd,
+  /* 0x8b */
+  0xaddc, 0xaddd, 0xadde, 0xaddf, 0xade0, 0xade1, 0xade2, 0xade3,
+  0xade4, 0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 0xadea, 0xadeb,
+  0xadec, 0xfffd, 0xaded, 0xadee, 0xadef, 0xadf0, 0xadf1, 0xadf2,
+  0xadf3, 0xadf4, 0xadf5, 0xadf6, 0xadf7, 0xfffd, 0xfffd, 0xfffd,
+  0xadf8, 0xadf9, 0xadfa, 0xadfb, 0xadfc, 0xadfd, 0xadfe, 0xadff,
+  0xae00, 0xae01, 0xae02, 0xae03, 0xae04, 0xae05, 0xae06, 0xae07,
+  0xae08, 0xfffd, 0xae09, 0xae0a, 0xae0b, 0xae0c, 0xae0d, 0xae0e,
+  0xae0f, 0xae10, 0xae11, 0xae12, 0xae13, 0xfffd, 0xae14, 0xae15,
+  0xae16, 0xae17, 0xae18, 0xae19, 0xae1a, 0xae1b, 0xae1c, 0xae1d,
+  0xae1e, 0xae1f, 0xae20, 0xae21, 0xae22, 0xae23, 0xae24, 0xfffd,
+  0xae25, 0xae26, 0xae27, 0xae28, 0xae29, 0xae2a, 0xae2b, 0xae2c,
+  0xae2d, 0xae2e, 0xae2f, 0xfffd, 0xfffd, 0xfffd, 0xae30, 0xae31,
+  0xae32, 0xae33, 0xae34, 0xae35, 0xae36, 0xae37, 0xae38, 0xae39,
+  0xae3a, 0xae3b, 0xae3c, 0xae3d, 0xae3e, 0xae3f, 0xae40, 0xfffd,
+  0xae41, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48,
+  0xae49, 0xae4a, 0xae4b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x8c */
+  0x3132, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51, 0xae52, 0xae53,
+  0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, 0xae5a, 0xae5b,
+  0xae5c, 0xfffd, 0xae5d, 0xae5e, 0xae5f, 0xae60, 0xae61, 0xae62,
+  0xae63, 0xae64, 0xae65, 0xae66, 0xae67, 0xfffd, 0xae68, 0xae69,
+  0xae6a, 0xae6b, 0xae6c, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71,
+  0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae78, 0xfffd,
+  0xae79, 0xae7a, 0xae7b, 0xae7c, 0xae7d, 0xae7e, 0xae7f, 0xae80,
+  0xae81, 0xae82, 0xae83, 0xfffd, 0xfffd, 0xfffd, 0xae84, 0xae85,
+  0xae86, 0xae87, 0xae88, 0xae89, 0xae8a, 0xae8b, 0xae8c, 0xae8d,
+  0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92, 0xae93, 0xae94, 0xfffd,
+  0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, 0xae9b, 0xae9c,
+  0xae9d, 0xae9e, 0xae9f, 0xfffd, 0xfffd, 0xfffd, 0xaea0, 0xaea1,
+  0xaea2, 0xaea3, 0xaea4, 0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9,
+  0xaeaa, 0xaeab, 0xaeac, 0xaead, 0xaeae, 0xaeaf, 0xaeb0, 0xfffd,
+  0xaeb1, 0xaeb2, 0xaeb3, 0xaeb4, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8,
+  0xaeb9, 0xaeba, 0xaebb, 0xfffd, 0xfffd, 0xfffd, 0xaebc, 0xaebd,
+  0xaebe, 0xaebf, 0xaec0, 0xaec1, 0xaec2, 0xaec3, 0xaec4, 0xaec5,
+  0xaec6, 0xaec7, 0xaec8, 0xaec9, 0xaeca, 0xaecb, 0xaecc, 0xfffd,
+  0xaecd, 0xaece, 0xaecf, 0xaed0, 0xaed1, 0xaed2, 0xaed3, 0xaed4,
+  0xaed5, 0xaed6, 0xaed7, 0xfffd,
+  /* 0x8d */
+  0xaed8, 0xaed9, 0xaeda, 0xaedb, 0xaedc, 0xaedd, 0xaede, 0xaedf,
+  0xaee0, 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, 0xaee6, 0xaee7,
+  0xaee8, 0xfffd, 0xaee9, 0xaeea, 0xaeeb, 0xaeec, 0xaeed, 0xaeee,
+  0xaeef, 0xaef0, 0xaef1, 0xaef2, 0xaef3, 0xfffd, 0xfffd, 0xfffd,
+  0xaef4, 0xaef5, 0xaef6, 0xaef7, 0xaef8, 0xaef9, 0xaefa, 0xaefb,
+  0xaefc, 0xaefd, 0xaefe, 0xaeff, 0xaf00, 0xaf01, 0xaf02, 0xaf03,
+  0xaf04, 0xfffd, 0xaf05, 0xaf06, 0xaf07, 0xaf08, 0xaf09, 0xaf0a,
+  0xaf0b, 0xaf0c, 0xaf0d, 0xaf0e, 0xaf0f, 0xfffd, 0xaf10, 0xaf11,
+  0xaf12, 0xaf13, 0xaf14, 0xaf15, 0xaf16, 0xaf17, 0xaf18, 0xaf19,
+  0xaf1a, 0xaf1b, 0xaf1c, 0xaf1d, 0xaf1e, 0xaf1f, 0xaf20, 0xfffd,
+  0xaf21, 0xaf22, 0xaf23, 0xaf24, 0xaf25, 0xaf26, 0xaf27, 0xaf28,
+  0xaf29, 0xaf2a, 0xaf2b, 0xfffd, 0xfffd, 0xfffd, 0xaf2c, 0xaf2d,
+  0xaf2e, 0xaf2f, 0xaf30, 0xaf31, 0xaf32, 0xaf33, 0xaf34, 0xaf35,
+  0xaf36, 0xaf37, 0xaf38, 0xaf39, 0xaf3a, 0xaf3b, 0xaf3c, 0xfffd,
+  0xaf3d, 0xaf3e, 0xaf3f, 0xaf40, 0xaf41, 0xaf42, 0xaf43, 0xaf44,
+  0xaf45, 0xaf46, 0xaf47, 0xfffd, 0xfffd, 0xfffd, 0xaf48, 0xaf49,
+  0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51,
+  0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xfffd,
+  0xaf59, 0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60,
+  0xaf61, 0xaf62, 0xaf63, 0xfffd, 0xfffd, 0xfffd, 0xaf64, 0xaf65,
+  0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d,
+  0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf72, 0xaf73, 0xaf74, 0xfffd,
+  0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf79, 0xaf7a, 0xaf7b, 0xaf7c,
+  0xaf7d, 0xaf7e, 0xaf7f, 0xfffd,
+  /* 0x8e */
+  0xaf80, 0xaf81, 0xaf82, 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87,
+  0xaf88, 0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f,
+  0xaf90, 0xfffd, 0xaf91, 0xaf92, 0xaf93, 0xaf94, 0xaf95, 0xaf96,
+  0xaf97, 0xaf98, 0xaf99, 0xaf9a, 0xaf9b, 0xfffd, 0xfffd, 0xfffd,
+  0xaf9c, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xafa1, 0xafa2, 0xafa3,
+  0xafa4, 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, 0xafab,
+  0xafac, 0xfffd, 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb2,
+  0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafb7, 0xfffd, 0xafb8, 0xafb9,
+  0xafba, 0xafbb, 0xafbc, 0xafbd, 0xafbe, 0xafbf, 0xafc0, 0xafc1,
+  0xafc2, 0xafc3, 0xafc4, 0xafc5, 0xafc6, 0xafc7, 0xafc8, 0xfffd,
+  0xafc9, 0xafca, 0xafcb, 0xafcc, 0xafcd, 0xafce, 0xafcf, 0xafd0,
+  0xafd1, 0xafd2, 0xafd3, 0xfffd, 0xfffd, 0xfffd, 0xafd4, 0xafd5,
+  0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, 0xafdb, 0xafdc, 0xafdd,
+  0xafde, 0xafdf, 0xafe0, 0xafe1, 0xafe2, 0xafe3, 0xafe4, 0xfffd,
+  0xafe5, 0xafe6, 0xafe7, 0xafe8, 0xafe9, 0xafea, 0xafeb, 0xafec,
+  0xafed, 0xafee, 0xafef, 0xfffd, 0xfffd, 0xfffd, 0xaff0, 0xaff1,
+  0xaff2, 0xaff3, 0xaff4, 0xaff5, 0xaff6, 0xaff7, 0xaff8, 0xaff9,
+  0xaffa, 0xaffb, 0xaffc, 0xaffd, 0xaffe, 0xafff, 0xb000, 0xfffd,
+  0xb001, 0xb002, 0xb003, 0xb004, 0xb005, 0xb006, 0xb007, 0xb008,
+  0xb009, 0xb00a, 0xb00b, 0xfffd, 0xfffd, 0xfffd, 0xb00c, 0xb00d,
+  0xb00e, 0xb00f, 0xb010, 0xb011, 0xb012, 0xb013, 0xb014, 0xb015,
+  0xb016, 0xb017, 0xb018, 0xb019, 0xb01a, 0xb01b, 0xb01c, 0xfffd,
+  0xb01d, 0xb01e, 0xb01f, 0xb020, 0xb021, 0xb022, 0xb023, 0xb024,
+  0xb025, 0xb026, 0xb027, 0xfffd,
+  /* 0x8f */
+  0xb028, 0xb029, 0xb02a, 0xb02b, 0xb02c, 0xb02d, 0xb02e, 0xb02f,
+  0xb030, 0xb031, 0xb032, 0xb033, 0xb034, 0xb035, 0xb036, 0xb037,
+  0xb038, 0xfffd, 0xb039, 0xb03a, 0xb03b, 0xb03c, 0xb03d, 0xb03e,
+  0xb03f, 0xb040, 0xb041, 0xb042, 0xb043, 0xfffd, 0xfffd, 0xfffd,
+  0xb044, 0xb045, 0xb046, 0xb047, 0xb048, 0xb049, 0xb04a, 0xb04b,
+  0xb04c, 0xb04d, 0xb04e, 0xb04f, 0xb050, 0xb051, 0xb052, 0xb053,
+  0xb054, 0xfffd, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059, 0xb05a,
+  0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xb05f, 0xfffd, 0xb060, 0xb061,
+  0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069,
+  0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xfffd,
+  0xb071, 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078,
+  0xb079, 0xb07a, 0xb07b, 0xfffd, 0xfffd, 0xfffd, 0xb07c, 0xb07d,
+  0xb07e, 0xb07f, 0xb080, 0xb081, 0xb082, 0xb083, 0xb084, 0xb085,
+  0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08c, 0xfffd,
+  0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb092, 0xb093, 0xb094,
+  0xb095, 0xb096, 0xb097, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x90 */
+  0x3134, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f,
+  0xb0a0, 0xb0a1, 0xb0a2, 0xb0a3, 0xb0a4, 0xb0a5, 0xb0a6, 0xb0a7,
+  0xb0a8, 0xfffd, 0xb0a9, 0xb0aa, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae,
+  0xb0af, 0xb0b0, 0xb0b1, 0xb0b2, 0xb0b3, 0xfffd, 0xb0b4, 0xb0b5,
+  0xb0b6, 0xb0b7, 0xb0b8, 0xb0b9, 0xb0ba, 0xb0bb, 0xb0bc, 0xb0bd,
+  0xb0be, 0xb0bf, 0xb0c0, 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c4, 0xfffd,
+  0xb0c5, 0xb0c6, 0xb0c7, 0xb0c8, 0xb0c9, 0xb0ca, 0xb0cb, 0xb0cc,
+  0xb0cd, 0xb0ce, 0xb0cf, 0xfffd, 0xfffd, 0xfffd, 0xb0d0, 0xb0d1,
+  0xb0d2, 0xb0d3, 0xb0d4, 0xb0d5, 0xb0d6, 0xb0d7, 0xb0d8, 0xb0d9,
+  0xb0da, 0xb0db, 0xb0dc, 0xb0dd, 0xb0de, 0xb0df, 0xb0e0, 0xfffd,
+  0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, 0xb0e5, 0xb0e6, 0xb0e7, 0xb0e8,
+  0xb0e9, 0xb0ea, 0xb0eb, 0xfffd, 0xfffd, 0xfffd, 0xb0ec, 0xb0ed,
+  0xb0ee, 0xb0ef, 0xb0f0, 0xb0f1, 0xb0f2, 0xb0f3, 0xb0f4, 0xb0f5,
+  0xb0f6, 0xb0f7, 0xb0f8, 0xb0f9, 0xb0fa, 0xb0fb, 0xb0fc, 0xfffd,
+  0xb0fd, 0xb0fe, 0xb0ff, 0xb100, 0xb101, 0xb102, 0xb103, 0xb104,
+  0xb105, 0xb106, 0xb107, 0xfffd, 0xfffd, 0xfffd, 0xb108, 0xb109,
+  0xb10a, 0xb10b, 0xb10c, 0xb10d, 0xb10e, 0xb10f, 0xb110, 0xb111,
+  0xb112, 0xb113, 0xb114, 0xb115, 0xb116, 0xb117, 0xb118, 0xfffd,
+  0xb119, 0xb11a, 0xb11b, 0xb11c, 0xb11d, 0xb11e, 0xb11f, 0xb120,
+  0xb121, 0xb122, 0xb123, 0xfffd,
+  /* 0x91 */
+  0xb124, 0xb125, 0xb126, 0xb127, 0xb128, 0xb129, 0xb12a, 0xb12b,
+  0xb12c, 0xb12d, 0xb12e, 0xb12f, 0xb130, 0xb131, 0xb132, 0xb133,
+  0xb134, 0xfffd, 0xb135, 0xb136, 0xb137, 0xb138, 0xb139, 0xb13a,
+  0xb13b, 0xb13c, 0xb13d, 0xb13e, 0xb13f, 0xfffd, 0xfffd, 0xfffd,
+  0xb140, 0xb141, 0xb142, 0xb143, 0xb144, 0xb145, 0xb146, 0xb147,
+  0xb148, 0xb149, 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f,
+  0xb150, 0xfffd, 0xb151, 0xb152, 0xb153, 0xb154, 0xb155, 0xb156,
+  0xb157, 0xb158, 0xb159, 0xb15a, 0xb15b, 0xfffd, 0xb15c, 0xb15d,
+  0xb15e, 0xb15f, 0xb160, 0xb161, 0xb162, 0xb163, 0xb164, 0xb165,
+  0xb166, 0xb167, 0xb168, 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xfffd,
+  0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, 0xb172, 0xb173, 0xb174,
+  0xb175, 0xb176, 0xb177, 0xfffd, 0xfffd, 0xfffd, 0xb178, 0xb179,
+  0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb17e, 0xb17f, 0xb180, 0xb181,
+  0xb182, 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xfffd,
+  0xb189, 0xb18a, 0xb18b, 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xb190,
+  0xb191, 0xb192, 0xb193, 0xfffd, 0xfffd, 0xfffd, 0xb194, 0xb195,
+  0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xb19c, 0xb19d,
+  0xb19e, 0xb19f, 0xb1a0, 0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, 0xfffd,
+  0xb1a5, 0xb1a6, 0xb1a7, 0xb1a8, 0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac,
+  0xb1ad, 0xb1ae, 0xb1af, 0xfffd, 0xfffd, 0xfffd, 0xb1b0, 0xb1b1,
+  0xb1b2, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, 0xb1b7, 0xb1b8, 0xb1b9,
+  0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, 0xb1bf, 0xb1c0, 0xfffd,
+  0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, 0xb1c5, 0xb1c6, 0xb1c7, 0xb1c8,
+  0xb1c9, 0xb1ca, 0xb1cb, 0xfffd,
+  /* 0x92 */
+  0xb1cc, 0xb1cd, 0xb1ce, 0xb1cf, 0xb1d0, 0xb1d1, 0xb1d2, 0xb1d3,
+  0xb1d4, 0xb1d5, 0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, 0xb1db,
+  0xb1dc, 0xfffd, 0xb1dd, 0xb1de, 0xb1df, 0xb1e0, 0xb1e1, 0xb1e2,
+  0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, 0xfffd, 0xfffd, 0xfffd,
+  0xb1e8, 0xb1e9, 0xb1ea, 0xb1eb, 0xb1ec, 0xb1ed, 0xb1ee, 0xb1ef,
+  0xb1f0, 0xb1f1, 0xb1f2, 0xb1f3, 0xb1f4, 0xb1f5, 0xb1f6, 0xb1f7,
+  0xb1f8, 0xfffd, 0xb1f9, 0xb1fa, 0xb1fb, 0xb1fc, 0xb1fd, 0xb1fe,
+  0xb1ff, 0xb200, 0xb201, 0xb202, 0xb203, 0xfffd, 0xb204, 0xb205,
+  0xb206, 0xb207, 0xb208, 0xb209, 0xb20a, 0xb20b, 0xb20c, 0xb20d,
+  0xb20e, 0xb20f, 0xb210, 0xb211, 0xb212, 0xb213, 0xb214, 0xfffd,
+  0xb215, 0xb216, 0xb217, 0xb218, 0xb219, 0xb21a, 0xb21b, 0xb21c,
+  0xb21d, 0xb21e, 0xb21f, 0xfffd, 0xfffd, 0xfffd, 0xb220, 0xb221,
+  0xb222, 0xb223, 0xb224, 0xb225, 0xb226, 0xb227, 0xb228, 0xb229,
+  0xb22a, 0xb22b, 0xb22c, 0xb22d, 0xb22e, 0xb22f, 0xb230, 0xfffd,
+  0xb231, 0xb232, 0xb233, 0xb234, 0xb235, 0xb236, 0xb237, 0xb238,
+  0xb239, 0xb23a, 0xb23b, 0xfffd, 0xfffd, 0xfffd, 0xb23c, 0xb23d,
+  0xb23e, 0xb23f, 0xb240, 0xb241, 0xb242, 0xb243, 0xb244, 0xb245,
+  0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, 0xb24b, 0xb24c, 0xfffd,
+  0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, 0xb253, 0xb254,
+  0xb255, 0xb256, 0xb257, 0xfffd, 0xfffd, 0xfffd, 0xb258, 0xb259,
+  0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xb260, 0xb261,
+  0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xfffd,
+  0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270,
+  0xb271, 0xb272, 0xb273, 0xfffd,
+  /* 0x93 */
+  0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, 0xb27a, 0xb27b,
+  0xb27c, 0xb27d, 0xb27e, 0xb27f, 0xb280, 0xb281, 0xb282, 0xb283,
+  0xb284, 0xfffd, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a,
+  0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0xfffd, 0xfffd, 0xfffd,
+  0xb290, 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, 0xb296, 0xb297,
+  0xb298, 0xb299, 0xb29a, 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f,
+  0xb2a0, 0xfffd, 0xb2a1, 0xb2a2, 0xb2a3, 0xb2a4, 0xb2a5, 0xb2a6,
+  0xb2a7, 0xb2a8, 0xb2a9, 0xb2aa, 0xb2ab, 0xfffd, 0xb2ac, 0xb2ad,
+  0xb2ae, 0xb2af, 0xb2b0, 0xb2b1, 0xb2b2, 0xb2b3, 0xb2b4, 0xb2b5,
+  0xb2b6, 0xb2b7, 0xb2b8, 0xb2b9, 0xb2ba, 0xb2bb, 0xb2bc, 0xfffd,
+  0xb2bd, 0xb2be, 0xb2bf, 0xb2c0, 0xb2c1, 0xb2c2, 0xb2c3, 0xb2c4,
+  0xb2c5, 0xb2c6, 0xb2c7, 0xfffd, 0xfffd, 0xfffd, 0xb2c8, 0xb2c9,
+  0xb2ca, 0xb2cb, 0xb2cc, 0xb2cd, 0xb2ce, 0xb2cf, 0xb2d0, 0xb2d1,
+  0xb2d2, 0xb2d3, 0xb2d4, 0xb2d5, 0xb2d6, 0xb2d7, 0xb2d8, 0xfffd,
+  0xb2d9, 0xb2da, 0xb2db, 0xb2dc, 0xb2dd, 0xb2de, 0xb2df, 0xb2e0,
+  0xb2e1, 0xb2e2, 0xb2e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x94 */
+  0x3137, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xb2e4, 0xb2e5, 0xb2e6, 0xb2e7, 0xb2e8, 0xb2e9, 0xb2ea, 0xb2eb,
+  0xb2ec, 0xb2ed, 0xb2ee, 0xb2ef, 0xb2f0, 0xb2f1, 0xb2f2, 0xb2f3,
+  0xb2f4, 0xfffd, 0xb2f5, 0xb2f6, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa,
+  0xb2fb, 0xb2fc, 0xb2fd, 0xb2fe, 0xb2ff, 0xfffd, 0xb300, 0xb301,
+  0xb302, 0xb303, 0xb304, 0xb305, 0xb306, 0xb307, 0xb308, 0xb309,
+  0xb30a, 0xb30b, 0xb30c, 0xb30d, 0xb30e, 0xb30f, 0xb310, 0xfffd,
+  0xb311, 0xb312, 0xb313, 0xb314, 0xb315, 0xb316, 0xb317, 0xb318,
+  0xb319, 0xb31a, 0xb31b, 0xfffd, 0xfffd, 0xfffd, 0xb31c, 0xb31d,
+  0xb31e, 0xb31f, 0xb320, 0xb321, 0xb322, 0xb323, 0xb324, 0xb325,
+  0xb326, 0xb327, 0xb328, 0xb329, 0xb32a, 0xb32b, 0xb32c, 0xfffd,
+  0xb32d, 0xb32e, 0xb32f, 0xb330, 0xb331, 0xb332, 0xb333, 0xb334,
+  0xb335, 0xb336, 0xb337, 0xfffd, 0xfffd, 0xfffd, 0xb338, 0xb339,
+  0xb33a, 0xb33b, 0xb33c, 0xb33d, 0xb33e, 0xb33f, 0xb340, 0xb341,
+  0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xfffd,
+  0xb349, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350,
+  0xb351, 0xb352, 0xb353, 0xfffd, 0xfffd, 0xfffd, 0xb354, 0xb355,
+  0xb356, 0xb357, 0xb358, 0xb359, 0xb35a, 0xb35b, 0xb35c, 0xb35d,
+  0xb35e, 0xb35f, 0xb360, 0xb361, 0xb362, 0xb363, 0xb364, 0xfffd,
+  0xb365, 0xb366, 0xb367, 0xb368, 0xb369, 0xb36a, 0xb36b, 0xb36c,
+  0xb36d, 0xb36e, 0xb36f, 0xfffd,
+  /* 0x95 */
+  0xb370, 0xb371, 0xb372, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377,
+  0xb378, 0xb379, 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb37f,
+  0xb380, 0xfffd, 0xb381, 0xb382, 0xb383, 0xb384, 0xb385, 0xb386,
+  0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xfffd, 0xfffd, 0xfffd,
+  0xb38c, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, 0xb393,
+  0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b,
+  0xb39c, 0xfffd, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb3a1, 0xb3a2,
+  0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0xfffd, 0xb3a8, 0xb3a9,
+  0xb3aa, 0xb3ab, 0xb3ac, 0xb3ad, 0xb3ae, 0xb3af, 0xb3b0, 0xb3b1,
+  0xb3b2, 0xb3b3, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0xfffd,
+  0xb3b9, 0xb3ba, 0xb3bb, 0xb3bc, 0xb3bd, 0xb3be, 0xb3bf, 0xb3c0,
+  0xb3c1, 0xb3c2, 0xb3c3, 0xfffd, 0xfffd, 0xfffd, 0xb3c4, 0xb3c5,
+  0xb3c6, 0xb3c7, 0xb3c8, 0xb3c9, 0xb3ca, 0xb3cb, 0xb3cc, 0xb3cd,
+  0xb3ce, 0xb3cf, 0xb3d0, 0xb3d1, 0xb3d2, 0xb3d3, 0xb3d4, 0xfffd,
+  0xb3d5, 0xb3d6, 0xb3d7, 0xb3d8, 0xb3d9, 0xb3da, 0xb3db, 0xb3dc,
+  0xb3dd, 0xb3de, 0xb3df, 0xfffd, 0xfffd, 0xfffd, 0xb3e0, 0xb3e1,
+  0xb3e2, 0xb3e3, 0xb3e4, 0xb3e5, 0xb3e6, 0xb3e7, 0xb3e8, 0xb3e9,
+  0xb3ea, 0xb3eb, 0xb3ec, 0xb3ed, 0xb3ee, 0xb3ef, 0xb3f0, 0xfffd,
+  0xb3f1, 0xb3f2, 0xb3f3, 0xb3f4, 0xb3f5, 0xb3f6, 0xb3f7, 0xb3f8,
+  0xb3f9, 0xb3fa, 0xb3fb, 0xfffd, 0xfffd, 0xfffd, 0xb3fc, 0xb3fd,
+  0xb3fe, 0xb3ff, 0xb400, 0xb401, 0xb402, 0xb403, 0xb404, 0xb405,
+  0xb406, 0xb407, 0xb408, 0xb409, 0xb40a, 0xb40b, 0xb40c, 0xfffd,
+  0xb40d, 0xb40e, 0xb40f, 0xb410, 0xb411, 0xb412, 0xb413, 0xb414,
+  0xb415, 0xb416, 0xb417, 0xfffd,
+  /* 0x96 */
+  0xb418, 0xb419, 0xb41a, 0xb41b, 0xb41c, 0xb41d, 0xb41e, 0xb41f,
+  0xb420, 0xb421, 0xb422, 0xb423, 0xb424, 0xb425, 0xb426, 0xb427,
+  0xb428, 0xfffd, 0xb429, 0xb42a, 0xb42b, 0xb42c, 0xb42d, 0xb42e,
+  0xb42f, 0xb430, 0xb431, 0xb432, 0xb433, 0xfffd, 0xfffd, 0xfffd,
+  0xb434, 0xb435, 0xb436, 0xb437, 0xb438, 0xb439, 0xb43a, 0xb43b,
+  0xb43c, 0xb43d, 0xb43e, 0xb43f, 0xb440, 0xb441, 0xb442, 0xb443,
+  0xb444, 0xfffd, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, 0xb44a,
+  0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xfffd, 0xb450, 0xb451,
+  0xb452, 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459,
+  0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xfffd,
+  0xb461, 0xb462, 0xb463, 0xb464, 0xb465, 0xb466, 0xb467, 0xb468,
+  0xb469, 0xb46a, 0xb46b, 0xfffd, 0xfffd, 0xfffd, 0xb46c, 0xb46d,
+  0xb46e, 0xb46f, 0xb470, 0xb471, 0xb472, 0xb473, 0xb474, 0xb475,
+  0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xfffd,
+  0xb47d, 0xb47e, 0xb47f, 0xb480, 0xb481, 0xb482, 0xb483, 0xb484,
+  0xb485, 0xb486, 0xb487, 0xfffd, 0xfffd, 0xfffd, 0xb488, 0xb489,
+  0xb48a, 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491,
+  0xb492, 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xfffd,
+  0xb499, 0xb49a, 0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0,
+  0xb4a1, 0xb4a2, 0xb4a3, 0xfffd, 0xfffd, 0xfffd, 0xb4a4, 0xb4a5,
+  0xb4a6, 0xb4a7, 0xb4a8, 0xb4a9, 0xb4aa, 0xb4ab, 0xb4ac, 0xb4ad,
+  0xb4ae, 0xb4af, 0xb4b0, 0xb4b1, 0xb4b2, 0xb4b3, 0xb4b4, 0xfffd,
+  0xb4b5, 0xb4b6, 0xb4b7, 0xb4b8, 0xb4b9, 0xb4ba, 0xb4bb, 0xb4bc,
+  0xb4bd, 0xb4be, 0xb4bf, 0xfffd,
+  /* 0x97 */
+  0xb4c0, 0xb4c1, 0xb4c2, 0xb4c3, 0xb4c4, 0xb4c5, 0xb4c6, 0xb4c7,
+  0xb4c8, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb4cd, 0xb4ce, 0xb4cf,
+  0xb4d0, 0xfffd, 0xb4d1, 0xb4d2, 0xb4d3, 0xb4d4, 0xb4d5, 0xb4d6,
+  0xb4d7, 0xb4d8, 0xb4d9, 0xb4da, 0xb4db, 0xfffd, 0xfffd, 0xfffd,
+  0xb4dc, 0xb4dd, 0xb4de, 0xb4df, 0xb4e0, 0xb4e1, 0xb4e2, 0xb4e3,
+  0xb4e4, 0xb4e5, 0xb4e6, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, 0xb4eb,
+  0xb4ec, 0xfffd, 0xb4ed, 0xb4ee, 0xb4ef, 0xb4f0, 0xb4f1, 0xb4f2,
+  0xb4f3, 0xb4f4, 0xb4f5, 0xb4f6, 0xb4f7, 0xfffd, 0xb4f8, 0xb4f9,
+  0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, 0xb4fe, 0xb4ff, 0xb500, 0xb501,
+  0xb502, 0xb503, 0xb504, 0xb505, 0xb506, 0xb507, 0xb508, 0xfffd,
+  0xb509, 0xb50a, 0xb50b, 0xb50c, 0xb50d, 0xb50e, 0xb50f, 0xb510,
+  0xb511, 0xb512, 0xb513, 0xfffd, 0xfffd, 0xfffd, 0xb514, 0xb515,
+  0xb516, 0xb517, 0xb518, 0xb519, 0xb51a, 0xb51b, 0xb51c, 0xb51d,
+  0xb51e, 0xb51f, 0xb520, 0xb521, 0xb522, 0xb523, 0xb524, 0xfffd,
+  0xb525, 0xb526, 0xb527, 0xb528, 0xb529, 0xb52a, 0xb52b, 0xb52c,
+  0xb52d, 0xb52e, 0xb52f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x98 */
+  0x3138, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xb530, 0xb531, 0xb532, 0xb533, 0xb534, 0xb535, 0xb536, 0xb537,
+  0xb538, 0xb539, 0xb53a, 0xb53b, 0xb53c, 0xb53d, 0xb53e, 0xb53f,
+  0xb540, 0xfffd, 0xb541, 0xb542, 0xb543, 0xb544, 0xb545, 0xb546,
+  0xb547, 0xb548, 0xb549, 0xb54a, 0xb54b, 0xfffd, 0xb54c, 0xb54d,
+  0xb54e, 0xb54f, 0xb550, 0xb551, 0xb552, 0xb553, 0xb554, 0xb555,
+  0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, 0xb55b, 0xb55c, 0xfffd,
+  0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561, 0xb562, 0xb563, 0xb564,
+  0xb565, 0xb566, 0xb567, 0xfffd, 0xfffd, 0xfffd, 0xb568, 0xb569,
+  0xb56a, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571,
+  0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xfffd,
+  0xb579, 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb57f, 0xb580,
+  0xb581, 0xb582, 0xb583, 0xfffd, 0xfffd, 0xfffd, 0xb584, 0xb585,
+  0xb586, 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d,
+  0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, 0xb594, 0xfffd,
+  0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, 0xb59b, 0xb59c,
+  0xb59d, 0xb59e, 0xb59f, 0xfffd, 0xfffd, 0xfffd, 0xb5a0, 0xb5a1,
+  0xb5a2, 0xb5a3, 0xb5a4, 0xb5a5, 0xb5a6, 0xb5a7, 0xb5a8, 0xb5a9,
+  0xb5aa, 0xb5ab, 0xb5ac, 0xb5ad, 0xb5ae, 0xb5af, 0xb5b0, 0xfffd,
+  0xb5b1, 0xb5b2, 0xb5b3, 0xb5b4, 0xb5b5, 0xb5b6, 0xb5b7, 0xb5b8,
+  0xb5b9, 0xb5ba, 0xb5bb, 0xfffd,
+  /* 0x99 */
+  0xb5bc, 0xb5bd, 0xb5be, 0xb5bf, 0xb5c0, 0xb5c1, 0xb5c2, 0xb5c3,
+  0xb5c4, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, 0xb5c9, 0xb5ca, 0xb5cb,
+  0xb5cc, 0xfffd, 0xb5cd, 0xb5ce, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d2,
+  0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, 0xb5d7, 0xfffd, 0xfffd, 0xfffd,
+  0xb5d8, 0xb5d9, 0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5de, 0xb5df,
+  0xb5e0, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, 0xb5e5, 0xb5e6, 0xb5e7,
+  0xb5e8, 0xfffd, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ec, 0xb5ed, 0xb5ee,
+  0xb5ef, 0xb5f0, 0xb5f1, 0xb5f2, 0xb5f3, 0xfffd, 0xb5f4, 0xb5f5,
+  0xb5f6, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd,
+  0xb5fe, 0xb5ff, 0xb600, 0xb601, 0xb602, 0xb603, 0xb604, 0xfffd,
+  0xb605, 0xb606, 0xb607, 0xb608, 0xb609, 0xb60a, 0xb60b, 0xb60c,
+  0xb60d, 0xb60e, 0xb60f, 0xfffd, 0xfffd, 0xfffd, 0xb610, 0xb611,
+  0xb612, 0xb613, 0xb614, 0xb615, 0xb616, 0xb617, 0xb618, 0xb619,
+  0xb61a, 0xb61b, 0xb61c, 0xb61d, 0xb61e, 0xb61f, 0xb620, 0xfffd,
+  0xb621, 0xb622, 0xb623, 0xb624, 0xb625, 0xb626, 0xb627, 0xb628,
+  0xb629, 0xb62a, 0xb62b, 0xfffd, 0xfffd, 0xfffd, 0xb62c, 0xb62d,
+  0xb62e, 0xb62f, 0xb630, 0xb631, 0xb632, 0xb633, 0xb634, 0xb635,
+  0xb636, 0xb637, 0xb638, 0xb639, 0xb63a, 0xb63b, 0xb63c, 0xfffd,
+  0xb63d, 0xb63e, 0xb63f, 0xb640, 0xb641, 0xb642, 0xb643, 0xb644,
+  0xb645, 0xb646, 0xb647, 0xfffd, 0xfffd, 0xfffd, 0xb648, 0xb649,
+  0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651,
+  0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xfffd,
+  0xb659, 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660,
+  0xb661, 0xb662, 0xb663, 0xfffd,
+  /* 0x9a */
+  0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669, 0xb66a, 0xb66b,
+  0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb672, 0xb673,
+  0xb674, 0xfffd, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, 0xb67a,
+  0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb67f, 0xfffd, 0xfffd, 0xfffd,
+  0xb680, 0xb681, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687,
+  0xb688, 0xb689, 0xb68a, 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f,
+  0xb690, 0xfffd, 0xb691, 0xb692, 0xb693, 0xb694, 0xb695, 0xb696,
+  0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0xfffd, 0xb69c, 0xb69d,
+  0xb69e, 0xb69f, 0xb6a0, 0xb6a1, 0xb6a2, 0xb6a3, 0xb6a4, 0xb6a5,
+  0xb6a6, 0xb6a7, 0xb6a8, 0xb6a9, 0xb6aa, 0xb6ab, 0xb6ac, 0xfffd,
+  0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b1, 0xb6b2, 0xb6b3, 0xb6b4,
+  0xb6b5, 0xb6b6, 0xb6b7, 0xfffd, 0xfffd, 0xfffd, 0xb6b8, 0xb6b9,
+  0xb6ba, 0xb6bb, 0xb6bc, 0xb6bd, 0xb6be, 0xb6bf, 0xb6c0, 0xb6c1,
+  0xb6c2, 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, 0xfffd,
+  0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0,
+  0xb6d1, 0xb6d2, 0xb6d3, 0xfffd, 0xfffd, 0xfffd, 0xb6d4, 0xb6d5,
+  0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, 0xb6da, 0xb6db, 0xb6dc, 0xb6dd,
+  0xb6de, 0xb6df, 0xb6e0, 0xb6e1, 0xb6e2, 0xb6e3, 0xb6e4, 0xfffd,
+  0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, 0xb6ea, 0xb6eb, 0xb6ec,
+  0xb6ed, 0xb6ee, 0xb6ef, 0xfffd, 0xfffd, 0xfffd, 0xb6f0, 0xb6f1,
+  0xb6f2, 0xb6f3, 0xb6f4, 0xb6f5, 0xb6f6, 0xb6f7, 0xb6f8, 0xb6f9,
+  0xb6fa, 0xb6fb, 0xb6fc, 0xb6fd, 0xb6fe, 0xb6ff, 0xb700, 0xfffd,
+  0xb701, 0xb702, 0xb703, 0xb704, 0xb705, 0xb706, 0xb707, 0xb708,
+  0xb709, 0xb70a, 0xb70b, 0xfffd,
+  /* 0x9b */
+  0xb70c, 0xb70d, 0xb70e, 0xb70f, 0xb710, 0xb711, 0xb712, 0xb713,
+  0xb714, 0xb715, 0xb716, 0xb717, 0xb718, 0xb719, 0xb71a, 0xb71b,
+  0xb71c, 0xfffd, 0xb71d, 0xb71e, 0xb71f, 0xb720, 0xb721, 0xb722,
+  0xb723, 0xb724, 0xb725, 0xb726, 0xb727, 0xfffd, 0xfffd, 0xfffd,
+  0xb728, 0xb729, 0xb72a, 0xb72b, 0xb72c, 0xb72d, 0xb72e, 0xb72f,
+  0xb730, 0xb731, 0xb732, 0xb733, 0xb734, 0xb735, 0xb736, 0xb737,
+  0xb738, 0xfffd, 0xb739, 0xb73a, 0xb73b, 0xb73c, 0xb73d, 0xb73e,
+  0xb73f, 0xb740, 0xb741, 0xb742, 0xb743, 0xfffd, 0xb744, 0xb745,
+  0xb746, 0xb747, 0xb748, 0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d,
+  0xb74e, 0xb74f, 0xb750, 0xb751, 0xb752, 0xb753, 0xb754, 0xfffd,
+  0xb755, 0xb756, 0xb757, 0xb758, 0xb759, 0xb75a, 0xb75b, 0xb75c,
+  0xb75d, 0xb75e, 0xb75f, 0xfffd, 0xfffd, 0xfffd, 0xb760, 0xb761,
+  0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xb769,
+  0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xfffd,
+  0xb771, 0xb772, 0xb773, 0xb774, 0xb775, 0xb776, 0xb777, 0xb778,
+  0xb779, 0xb77a, 0xb77b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x9c */
+  0x3139, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xb77c, 0xb77d, 0xb77e, 0xb77f, 0xb780, 0xb781, 0xb782, 0xb783,
+  0xb784, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, 0xb78b,
+  0xb78c, 0xfffd, 0xb78d, 0xb78e, 0xb78f, 0xb790, 0xb791, 0xb792,
+  0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xfffd, 0xb798, 0xb799,
+  0xb79a, 0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, 0xb7a1,
+  0xb7a2, 0xb7a3, 0xb7a4, 0xb7a5, 0xb7a6, 0xb7a7, 0xb7a8, 0xfffd,
+  0xb7a9, 0xb7aa, 0xb7ab, 0xb7ac, 0xb7ad, 0xb7ae, 0xb7af, 0xb7b0,
+  0xb7b1, 0xb7b2, 0xb7b3, 0xfffd, 0xfffd, 0xfffd, 0xb7b4, 0xb7b5,
+  0xb7b6, 0xb7b7, 0xb7b8, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd,
+  0xb7be, 0xb7bf, 0xb7c0, 0xb7c1, 0xb7c2, 0xb7c3, 0xb7c4, 0xfffd,
+  0xb7c5, 0xb7c6, 0xb7c7, 0xb7c8, 0xb7c9, 0xb7ca, 0xb7cb, 0xb7cc,
+  0xb7cd, 0xb7ce, 0xb7cf, 0xfffd, 0xfffd, 0xfffd, 0xb7d0, 0xb7d1,
+  0xb7d2, 0xb7d3, 0xb7d4, 0xb7d5, 0xb7d6, 0xb7d7, 0xb7d8, 0xb7d9,
+  0xb7da, 0xb7db, 0xb7dc, 0xb7dd, 0xb7de, 0xb7df, 0xb7e0, 0xfffd,
+  0xb7e1, 0xb7e2, 0xb7e3, 0xb7e4, 0xb7e5, 0xb7e6, 0xb7e7, 0xb7e8,
+  0xb7e9, 0xb7ea, 0xb7eb, 0xfffd, 0xfffd, 0xfffd, 0xb7ec, 0xb7ed,
+  0xb7ee, 0xb7ef, 0xb7f0, 0xb7f1, 0xb7f2, 0xb7f3, 0xb7f4, 0xb7f5,
+  0xb7f6, 0xb7f7, 0xb7f8, 0xb7f9, 0xb7fa, 0xb7fb, 0xb7fc, 0xfffd,
+  0xb7fd, 0xb7fe, 0xb7ff, 0xb800, 0xb801, 0xb802, 0xb803, 0xb804,
+  0xb805, 0xb806, 0xb807, 0xfffd,
+  /* 0x9d */
+  0xb808, 0xb809, 0xb80a, 0xb80b, 0xb80c, 0xb80d, 0xb80e, 0xb80f,
+  0xb810, 0xb811, 0xb812, 0xb813, 0xb814, 0xb815, 0xb816, 0xb817,
+  0xb818, 0xfffd, 0xb819, 0xb81a, 0xb81b, 0xb81c, 0xb81d, 0xb81e,
+  0xb81f, 0xb820, 0xb821, 0xb822, 0xb823, 0xfffd, 0xfffd, 0xfffd,
+  0xb824, 0xb825, 0xb826, 0xb827, 0xb828, 0xb829, 0xb82a, 0xb82b,
+  0xb82c, 0xb82d, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb832, 0xb833,
+  0xb834, 0xfffd, 0xb835, 0xb836, 0xb837, 0xb838, 0xb839, 0xb83a,
+  0xb83b, 0xb83c, 0xb83d, 0xb83e, 0xb83f, 0xfffd, 0xb840, 0xb841,
+  0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849,
+  0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xfffd,
+  0xb851, 0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858,
+  0xb859, 0xb85a, 0xb85b, 0xfffd, 0xfffd, 0xfffd, 0xb85c, 0xb85d,
+  0xb85e, 0xb85f, 0xb860, 0xb861, 0xb862, 0xb863, 0xb864, 0xb865,
+  0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, 0xb86b, 0xb86c, 0xfffd,
+  0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871, 0xb872, 0xb873, 0xb874,
+  0xb875, 0xb876, 0xb877, 0xfffd, 0xfffd, 0xfffd, 0xb878, 0xb879,
+  0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb87f, 0xb880, 0xb881,
+  0xb882, 0xb883, 0xb884, 0xb885, 0xb886, 0xb887, 0xb888, 0xfffd,
+  0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88d, 0xb88e, 0xb88f, 0xb890,
+  0xb891, 0xb892, 0xb893, 0xfffd, 0xfffd, 0xfffd, 0xb894, 0xb895,
+  0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d,
+  0xb89e, 0xb89f, 0xb8a0, 0xb8a1, 0xb8a2, 0xb8a3, 0xb8a4, 0xfffd,
+  0xb8a5, 0xb8a6, 0xb8a7, 0xb8a8, 0xb8a9, 0xb8aa, 0xb8ab, 0xb8ac,
+  0xb8ad, 0xb8ae, 0xb8af, 0xfffd,
+  /* 0x9e */
+  0xb8b0, 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b4, 0xb8b5, 0xb8b6, 0xb8b7,
+  0xb8b8, 0xb8b9, 0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, 0xb8be, 0xb8bf,
+  0xb8c0, 0xfffd, 0xb8c1, 0xb8c2, 0xb8c3, 0xb8c4, 0xb8c5, 0xb8c6,
+  0xb8c7, 0xb8c8, 0xb8c9, 0xb8ca, 0xb8cb, 0xfffd, 0xfffd, 0xfffd,
+  0xb8cc, 0xb8cd, 0xb8ce, 0xb8cf, 0xb8d0, 0xb8d1, 0xb8d2, 0xb8d3,
+  0xb8d4, 0xb8d5, 0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, 0xb8db,
+  0xb8dc, 0xfffd, 0xb8dd, 0xb8de, 0xb8df, 0xb8e0, 0xb8e1, 0xb8e2,
+  0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, 0xb8e7, 0xfffd, 0xb8e8, 0xb8e9,
+  0xb8ea, 0xb8eb, 0xb8ec, 0xb8ed, 0xb8ee, 0xb8ef, 0xb8f0, 0xb8f1,
+  0xb8f2, 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, 0xb8f7, 0xb8f8, 0xfffd,
+  0xb8f9, 0xb8fa, 0xb8fb, 0xb8fc, 0xb8fd, 0xb8fe, 0xb8ff, 0xb900,
+  0xb901, 0xb902, 0xb903, 0xfffd, 0xfffd, 0xfffd, 0xb904, 0xb905,
+  0xb906, 0xb907, 0xb908, 0xb909, 0xb90a, 0xb90b, 0xb90c, 0xb90d,
+  0xb90e, 0xb90f, 0xb910, 0xb911, 0xb912, 0xb913, 0xb914, 0xfffd,
+  0xb915, 0xb916, 0xb917, 0xb918, 0xb919, 0xb91a, 0xb91b, 0xb91c,
+  0xb91d, 0xb91e, 0xb91f, 0xfffd, 0xfffd, 0xfffd, 0xb920, 0xb921,
+  0xb922, 0xb923, 0xb924, 0xb925, 0xb926, 0xb927, 0xb928, 0xb929,
+  0xb92a, 0xb92b, 0xb92c, 0xb92d, 0xb92e, 0xb92f, 0xb930, 0xfffd,
+  0xb931, 0xb932, 0xb933, 0xb934, 0xb935, 0xb936, 0xb937, 0xb938,
+  0xb939, 0xb93a, 0xb93b, 0xfffd, 0xfffd, 0xfffd, 0xb93c, 0xb93d,
+  0xb93e, 0xb93f, 0xb940, 0xb941, 0xb942, 0xb943, 0xb944, 0xb945,
+  0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94c, 0xfffd,
+  0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951, 0xb952, 0xb953, 0xb954,
+  0xb955, 0xb956, 0xb957, 0xfffd,
+  /* 0x9f */
+  0xb958, 0xb959, 0xb95a, 0xb95b, 0xb95c, 0xb95d, 0xb95e, 0xb95f,
+  0xb960, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967,
+  0xb968, 0xfffd, 0xb969, 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e,
+  0xb96f, 0xb970, 0xb971, 0xb972, 0xb973, 0xfffd, 0xfffd, 0xfffd,
+  0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979, 0xb97a, 0xb97b,
+  0xb97c, 0xb97d, 0xb97e, 0xb97f, 0xb980, 0xb981, 0xb982, 0xb983,
+  0xb984, 0xfffd, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a,
+  0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0xfffd, 0xb990, 0xb991,
+  0xb992, 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999,
+  0xb99a, 0xb99b, 0xb99c, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xfffd,
+  0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, 0xb9a6, 0xb9a7, 0xb9a8,
+  0xb9a9, 0xb9aa, 0xb9ab, 0xfffd, 0xfffd, 0xfffd, 0xb9ac, 0xb9ad,
+  0xb9ae, 0xb9af, 0xb9b0, 0xb9b1, 0xb9b2, 0xb9b3, 0xb9b4, 0xb9b5,
+  0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, 0xb9ba, 0xb9bb, 0xb9bc, 0xfffd,
+  0xb9bd, 0xb9be, 0xb9bf, 0xb9c0, 0xb9c1, 0xb9c2, 0xb9c3, 0xb9c4,
+  0xb9c5, 0xb9c6, 0xb9c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa0 */
+  0x3141, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xb9c8, 0xb9c9, 0xb9ca, 0xb9cb, 0xb9cc, 0xb9cd, 0xb9ce, 0xb9cf,
+  0xb9d0, 0xb9d1, 0xb9d2, 0xb9d3, 0xb9d4, 0xb9d5, 0xb9d6, 0xb9d7,
+  0xb9d8, 0xfffd, 0xb9d9, 0xb9da, 0xb9db, 0xb9dc, 0xb9dd, 0xb9de,
+  0xb9df, 0xb9e0, 0xb9e1, 0xb9e2, 0xb9e3, 0xfffd, 0xb9e4, 0xb9e5,
+  0xb9e6, 0xb9e7, 0xb9e8, 0xb9e9, 0xb9ea, 0xb9eb, 0xb9ec, 0xb9ed,
+  0xb9ee, 0xb9ef, 0xb9f0, 0xb9f1, 0xb9f2, 0xb9f3, 0xb9f4, 0xfffd,
+  0xb9f5, 0xb9f6, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xb9fb, 0xb9fc,
+  0xb9fd, 0xb9fe, 0xb9ff, 0xfffd, 0xfffd, 0xfffd, 0xba00, 0xba01,
+  0xba02, 0xba03, 0xba04, 0xba05, 0xba06, 0xba07, 0xba08, 0xba09,
+  0xba0a, 0xba0b, 0xba0c, 0xba0d, 0xba0e, 0xba0f, 0xba10, 0xfffd,
+  0xba11, 0xba12, 0xba13, 0xba14, 0xba15, 0xba16, 0xba17, 0xba18,
+  0xba19, 0xba1a, 0xba1b, 0xfffd, 0xfffd, 0xfffd, 0xba1c, 0xba1d,
+  0xba1e, 0xba1f, 0xba20, 0xba21, 0xba22, 0xba23, 0xba24, 0xba25,
+  0xba26, 0xba27, 0xba28, 0xba29, 0xba2a, 0xba2b, 0xba2c, 0xfffd,
+  0xba2d, 0xba2e, 0xba2f, 0xba30, 0xba31, 0xba32, 0xba33, 0xba34,
+  0xba35, 0xba36, 0xba37, 0xfffd, 0xfffd, 0xfffd, 0xba38, 0xba39,
+  0xba3a, 0xba3b, 0xba3c, 0xba3d, 0xba3e, 0xba3f, 0xba40, 0xba41,
+  0xba42, 0xba43, 0xba44, 0xba45, 0xba46, 0xba47, 0xba48, 0xfffd,
+  0xba49, 0xba4a, 0xba4b, 0xba4c, 0xba4d, 0xba4e, 0xba4f, 0xba50,
+  0xba51, 0xba52, 0xba53, 0xfffd,
+  /* 0xa1 */
+  0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59, 0xba5a, 0xba5b,
+  0xba5c, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63,
+  0xba64, 0xfffd, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, 0xba6a,
+  0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xfffd, 0xfffd, 0xfffd,
+  0xba70, 0xba71, 0xba72, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77,
+  0xba78, 0xba79, 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba7f,
+  0xba80, 0xfffd, 0xba81, 0xba82, 0xba83, 0xba84, 0xba85, 0xba86,
+  0xba87, 0xba88, 0xba89, 0xba8a, 0xba8b, 0xfffd, 0xba8c, 0xba8d,
+  0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, 0xba93, 0xba94, 0xba95,
+  0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, 0xba9b, 0xba9c, 0xfffd,
+  0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbaa1, 0xbaa2, 0xbaa3, 0xbaa4,
+  0xbaa5, 0xbaa6, 0xbaa7, 0xfffd, 0xfffd, 0xfffd, 0xbaa8, 0xbaa9,
+  0xbaaa, 0xbaab, 0xbaac, 0xbaad, 0xbaae, 0xbaaf, 0xbab0, 0xbab1,
+  0xbab2, 0xbab3, 0xbab4, 0xbab5, 0xbab6, 0xbab7, 0xbab8, 0xfffd,
+  0xbab9, 0xbaba, 0xbabb, 0xbabc, 0xbabd, 0xbabe, 0xbabf, 0xbac0,
+  0xbac1, 0xbac2, 0xbac3, 0xfffd, 0xfffd, 0xfffd, 0xbac4, 0xbac5,
+  0xbac6, 0xbac7, 0xbac8, 0xbac9, 0xbaca, 0xbacb, 0xbacc, 0xbacd,
+  0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad2, 0xbad3, 0xbad4, 0xfffd,
+  0xbad5, 0xbad6, 0xbad7, 0xbad8, 0xbad9, 0xbada, 0xbadb, 0xbadc,
+  0xbadd, 0xbade, 0xbadf, 0xfffd, 0xfffd, 0xfffd, 0xbae0, 0xbae1,
+  0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, 0xbae7, 0xbae8, 0xbae9,
+  0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, 0xbaef, 0xbaf0, 0xfffd,
+  0xbaf1, 0xbaf2, 0xbaf3, 0xbaf4, 0xbaf5, 0xbaf6, 0xbaf7, 0xbaf8,
+  0xbaf9, 0xbafa, 0xbafb, 0xfffd,
+  /* 0xa2 */
+  0xbafc, 0xbafd, 0xbafe, 0xbaff, 0xbb00, 0xbb01, 0xbb02, 0xbb03,
+  0xbb04, 0xbb05, 0xbb06, 0xbb07, 0xbb08, 0xbb09, 0xbb0a, 0xbb0b,
+  0xbb0c, 0xfffd, 0xbb0d, 0xbb0e, 0xbb0f, 0xbb10, 0xbb11, 0xbb12,
+  0xbb13, 0xbb14, 0xbb15, 0xbb16, 0xbb17, 0xfffd, 0xfffd, 0xfffd,
+  0xbb18, 0xbb19, 0xbb1a, 0xbb1b, 0xbb1c, 0xbb1d, 0xbb1e, 0xbb1f,
+  0xbb20, 0xbb21, 0xbb22, 0xbb23, 0xbb24, 0xbb25, 0xbb26, 0xbb27,
+  0xbb28, 0xfffd, 0xbb29, 0xbb2a, 0xbb2b, 0xbb2c, 0xbb2d, 0xbb2e,
+  0xbb2f, 0xbb30, 0xbb31, 0xbb32, 0xbb33, 0xfffd, 0xbb34, 0xbb35,
+  0xbb36, 0xbb37, 0xbb38, 0xbb39, 0xbb3a, 0xbb3b, 0xbb3c, 0xbb3d,
+  0xbb3e, 0xbb3f, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb44, 0xfffd,
+  0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 0xbb4a, 0xbb4b, 0xbb4c,
+  0xbb4d, 0xbb4e, 0xbb4f, 0xfffd, 0xfffd, 0xfffd, 0xbb50, 0xbb51,
+  0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59,
+  0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xfffd,
+  0xbb61, 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68,
+  0xbb69, 0xbb6a, 0xbb6b, 0xfffd, 0xfffd, 0xfffd, 0xbb6c, 0xbb6d,
+  0xbb6e, 0xbb6f, 0xbb70, 0xbb71, 0xbb72, 0xbb73, 0xbb74, 0xbb75,
+  0xbb76, 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xfffd,
+  0xbb7d, 0xbb7e, 0xbb7f, 0xbb80, 0xbb81, 0xbb82, 0xbb83, 0xbb84,
+  0xbb85, 0xbb86, 0xbb87, 0xfffd, 0xfffd, 0xfffd, 0xbb88, 0xbb89,
+  0xbb8a, 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91,
+  0xbb92, 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xfffd,
+  0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0,
+  0xbba1, 0xbba2, 0xbba3, 0xfffd,
+  /* 0xa3 */
+  0xbba4, 0xbba5, 0xbba6, 0xbba7, 0xbba8, 0xbba9, 0xbbaa, 0xbbab,
+  0xbbac, 0xbbad, 0xbbae, 0xbbaf, 0xbbb0, 0xbbb1, 0xbbb2, 0xbbb3,
+  0xbbb4, 0xfffd, 0xbbb5, 0xbbb6, 0xbbb7, 0xbbb8, 0xbbb9, 0xbbba,
+  0xbbbb, 0xbbbc, 0xbbbd, 0xbbbe, 0xbbbf, 0xfffd, 0xfffd, 0xfffd,
+  0xbbc0, 0xbbc1, 0xbbc2, 0xbbc3, 0xbbc4, 0xbbc5, 0xbbc6, 0xbbc7,
+  0xbbc8, 0xbbc9, 0xbbca, 0xbbcb, 0xbbcc, 0xbbcd, 0xbbce, 0xbbcf,
+  0xbbd0, 0xfffd, 0xbbd1, 0xbbd2, 0xbbd3, 0xbbd4, 0xbbd5, 0xbbd6,
+  0xbbd7, 0xbbd8, 0xbbd9, 0xbbda, 0xbbdb, 0xfffd, 0xbbdc, 0xbbdd,
+  0xbbde, 0xbbdf, 0xbbe0, 0xbbe1, 0xbbe2, 0xbbe3, 0xbbe4, 0xbbe5,
+  0xbbe6, 0xbbe7, 0xbbe8, 0xbbe9, 0xbbea, 0xbbeb, 0xbbec, 0xfffd,
+  0xbbed, 0xbbee, 0xbbef, 0xbbf0, 0xbbf1, 0xbbf2, 0xbbf3, 0xbbf4,
+  0xbbf5, 0xbbf6, 0xbbf7, 0xfffd, 0xfffd, 0xfffd, 0xbbf8, 0xbbf9,
+  0xbbfa, 0xbbfb, 0xbbfc, 0xbbfd, 0xbbfe, 0xbbff, 0xbc00, 0xbc01,
+  0xbc02, 0xbc03, 0xbc04, 0xbc05, 0xbc06, 0xbc07, 0xbc08, 0xfffd,
+  0xbc09, 0xbc0a, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0e, 0xbc0f, 0xbc10,
+  0xbc11, 0xbc12, 0xbc13, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa4 */
+  0x3142, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc19, 0xbc1a, 0xbc1b,
+  0xbc1c, 0xbc1d, 0xbc1e, 0xbc1f, 0xbc20, 0xbc21, 0xbc22, 0xbc23,
+  0xbc24, 0xfffd, 0xbc25, 0xbc26, 0xbc27, 0xbc28, 0xbc29, 0xbc2a,
+  0xbc2b, 0xbc2c, 0xbc2d, 0xbc2e, 0xbc2f, 0xfffd, 0xbc30, 0xbc31,
+  0xbc32, 0xbc33, 0xbc34, 0xbc35, 0xbc36, 0xbc37, 0xbc38, 0xbc39,
+  0xbc3a, 0xbc3b, 0xbc3c, 0xbc3d, 0xbc3e, 0xbc3f, 0xbc40, 0xfffd,
+  0xbc41, 0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, 0xbc47, 0xbc48,
+  0xbc49, 0xbc4a, 0xbc4b, 0xfffd, 0xfffd, 0xfffd, 0xbc4c, 0xbc4d,
+  0xbc4e, 0xbc4f, 0xbc50, 0xbc51, 0xbc52, 0xbc53, 0xbc54, 0xbc55,
+  0xbc56, 0xbc57, 0xbc58, 0xbc59, 0xbc5a, 0xbc5b, 0xbc5c, 0xfffd,
+  0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, 0xbc62, 0xbc63, 0xbc64,
+  0xbc65, 0xbc66, 0xbc67, 0xfffd, 0xfffd, 0xfffd, 0xbc68, 0xbc69,
+  0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71,
+  0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xfffd,
+  0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc7f, 0xbc80,
+  0xbc81, 0xbc82, 0xbc83, 0xfffd, 0xfffd, 0xfffd, 0xbc84, 0xbc85,
+  0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a, 0xbc8b, 0xbc8c, 0xbc8d,
+  0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbc94, 0xfffd,
+  0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a, 0xbc9b, 0xbc9c,
+  0xbc9d, 0xbc9e, 0xbc9f, 0xfffd,
+  /* 0xa5 */
+  0xbca0, 0xbca1, 0xbca2, 0xbca3, 0xbca4, 0xbca5, 0xbca6, 0xbca7,
+  0xbca8, 0xbca9, 0xbcaa, 0xbcab, 0xbcac, 0xbcad, 0xbcae, 0xbcaf,
+  0xbcb0, 0xfffd, 0xbcb1, 0xbcb2, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcb6,
+  0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0xfffd, 0xfffd, 0xfffd,
+  0xbcbc, 0xbcbd, 0xbcbe, 0xbcbf, 0xbcc0, 0xbcc1, 0xbcc2, 0xbcc3,
+  0xbcc4, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, 0xbcc9, 0xbcca, 0xbccb,
+  0xbccc, 0xfffd, 0xbccd, 0xbcce, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd2,
+  0xbcd3, 0xbcd4, 0xbcd5, 0xbcd6, 0xbcd7, 0xfffd, 0xbcd8, 0xbcd9,
+  0xbcda, 0xbcdb, 0xbcdc, 0xbcdd, 0xbcde, 0xbcdf, 0xbce0, 0xbce1,
+  0xbce2, 0xbce3, 0xbce4, 0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xfffd,
+  0xbce9, 0xbcea, 0xbceb, 0xbcec, 0xbced, 0xbcee, 0xbcef, 0xbcf0,
+  0xbcf1, 0xbcf2, 0xbcf3, 0xfffd, 0xfffd, 0xfffd, 0xbcf4, 0xbcf5,
+  0xbcf6, 0xbcf7, 0xbcf8, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfc, 0xbcfd,
+  0xbcfe, 0xbcff, 0xbd00, 0xbd01, 0xbd02, 0xbd03, 0xbd04, 0xfffd,
+  0xbd05, 0xbd06, 0xbd07, 0xbd08, 0xbd09, 0xbd0a, 0xbd0b, 0xbd0c,
+  0xbd0d, 0xbd0e, 0xbd0f, 0xfffd, 0xfffd, 0xfffd, 0xbd10, 0xbd11,
+  0xbd12, 0xbd13, 0xbd14, 0xbd15, 0xbd16, 0xbd17, 0xbd18, 0xbd19,
+  0xbd1a, 0xbd1b, 0xbd1c, 0xbd1d, 0xbd1e, 0xbd1f, 0xbd20, 0xfffd,
+  0xbd21, 0xbd22, 0xbd23, 0xbd24, 0xbd25, 0xbd26, 0xbd27, 0xbd28,
+  0xbd29, 0xbd2a, 0xbd2b, 0xfffd, 0xfffd, 0xfffd, 0xbd2c, 0xbd2d,
+  0xbd2e, 0xbd2f, 0xbd30, 0xbd31, 0xbd32, 0xbd33, 0xbd34, 0xbd35,
+  0xbd36, 0xbd37, 0xbd38, 0xbd39, 0xbd3a, 0xbd3b, 0xbd3c, 0xfffd,
+  0xbd3d, 0xbd3e, 0xbd3f, 0xbd40, 0xbd41, 0xbd42, 0xbd43, 0xbd44,
+  0xbd45, 0xbd46, 0xbd47, 0xfffd,
+  /* 0xa6 */
+  0xbd48, 0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f,
+  0xbd50, 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57,
+  0xbd58, 0xfffd, 0xbd59, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e,
+  0xbd5f, 0xbd60, 0xbd61, 0xbd62, 0xbd63, 0xfffd, 0xfffd, 0xfffd,
+  0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, 0xbd6b,
+  0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, 0xbd73,
+  0xbd74, 0xfffd, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a,
+  0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd7f, 0xfffd, 0xbd80, 0xbd81,
+  0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89,
+  0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xfffd,
+  0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98,
+  0xbd99, 0xbd9a, 0xbd9b, 0xfffd, 0xfffd, 0xfffd, 0xbd9c, 0xbd9d,
+  0xbd9e, 0xbd9f, 0xbda0, 0xbda1, 0xbda2, 0xbda3, 0xbda4, 0xbda5,
+  0xbda6, 0xbda7, 0xbda8, 0xbda9, 0xbdaa, 0xbdab, 0xbdac, 0xfffd,
+  0xbdad, 0xbdae, 0xbdaf, 0xbdb0, 0xbdb1, 0xbdb2, 0xbdb3, 0xbdb4,
+  0xbdb5, 0xbdb6, 0xbdb7, 0xfffd, 0xfffd, 0xfffd, 0xbdb8, 0xbdb9,
+  0xbdba, 0xbdbb, 0xbdbc, 0xbdbd, 0xbdbe, 0xbdbf, 0xbdc0, 0xbdc1,
+  0xbdc2, 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, 0xfffd,
+  0xbdc9, 0xbdca, 0xbdcb, 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0,
+  0xbdd1, 0xbdd2, 0xbdd3, 0xfffd, 0xfffd, 0xfffd, 0xbdd4, 0xbdd5,
+  0xbdd6, 0xbdd7, 0xbdd8, 0xbdd9, 0xbdda, 0xbddb, 0xbddc, 0xbddd,
+  0xbdde, 0xbddf, 0xbde0, 0xbde1, 0xbde2, 0xbde3, 0xbde4, 0xfffd,
+  0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbde9, 0xbdea, 0xbdeb, 0xbdec,
+  0xbded, 0xbdee, 0xbdef, 0xfffd,
+  /* 0xa7 */
+  0xbdf0, 0xbdf1, 0xbdf2, 0xbdf3, 0xbdf4, 0xbdf5, 0xbdf6, 0xbdf7,
+  0xbdf8, 0xbdf9, 0xbdfa, 0xbdfb, 0xbdfc, 0xbdfd, 0xbdfe, 0xbdff,
+  0xbe00, 0xfffd, 0xbe01, 0xbe02, 0xbe03, 0xbe04, 0xbe05, 0xbe06,
+  0xbe07, 0xbe08, 0xbe09, 0xbe0a, 0xbe0b, 0xfffd, 0xfffd, 0xfffd,
+  0xbe0c, 0xbe0d, 0xbe0e, 0xbe0f, 0xbe10, 0xbe11, 0xbe12, 0xbe13,
+  0xbe14, 0xbe15, 0xbe16, 0xbe17, 0xbe18, 0xbe19, 0xbe1a, 0xbe1b,
+  0xbe1c, 0xfffd, 0xbe1d, 0xbe1e, 0xbe1f, 0xbe20, 0xbe21, 0xbe22,
+  0xbe23, 0xbe24, 0xbe25, 0xbe26, 0xbe27, 0xfffd, 0xbe28, 0xbe29,
+  0xbe2a, 0xbe2b, 0xbe2c, 0xbe2d, 0xbe2e, 0xbe2f, 0xbe30, 0xbe31,
+  0xbe32, 0xbe33, 0xbe34, 0xbe35, 0xbe36, 0xbe37, 0xbe38, 0xfffd,
+  0xbe39, 0xbe3a, 0xbe3b, 0xbe3c, 0xbe3d, 0xbe3e, 0xbe3f, 0xbe40,
+  0xbe41, 0xbe42, 0xbe43, 0xfffd, 0xfffd, 0xfffd, 0xbe44, 0xbe45,
+  0xbe46, 0xbe47, 0xbe48, 0xbe49, 0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d,
+  0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xbe54, 0xfffd,
+  0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, 0xbe5a, 0xbe5b, 0xbe5c,
+  0xbe5d, 0xbe5e, 0xbe5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xa8 */
+  0x3143, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xbe60, 0xbe61, 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67,
+  0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f,
+  0xbe70, 0xfffd, 0xbe71, 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76,
+  0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0xfffd, 0xbe7c, 0xbe7d,
+  0xbe7e, 0xbe7f, 0xbe80, 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85,
+  0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, 0xbe8b, 0xbe8c, 0xfffd,
+  0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92, 0xbe93, 0xbe94,
+  0xbe95, 0xbe96, 0xbe97, 0xfffd, 0xfffd, 0xfffd, 0xbe98, 0xbe99,
+  0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbea1,
+  0xbea2, 0xbea3, 0xbea4, 0xbea5, 0xbea6, 0xbea7, 0xbea8, 0xfffd,
+  0xbea9, 0xbeaa, 0xbeab, 0xbeac, 0xbead, 0xbeae, 0xbeaf, 0xbeb0,
+  0xbeb1, 0xbeb2, 0xbeb3, 0xfffd, 0xfffd, 0xfffd, 0xbeb4, 0xbeb5,
+  0xbeb6, 0xbeb7, 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd,
+  0xbebe, 0xbebf, 0xbec0, 0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xfffd,
+  0xbec5, 0xbec6, 0xbec7, 0xbec8, 0xbec9, 0xbeca, 0xbecb, 0xbecc,
+  0xbecd, 0xbece, 0xbecf, 0xfffd, 0xfffd, 0xfffd, 0xbed0, 0xbed1,
+  0xbed2, 0xbed3, 0xbed4, 0xbed5, 0xbed6, 0xbed7, 0xbed8, 0xbed9,
+  0xbeda, 0xbedb, 0xbedc, 0xbedd, 0xbede, 0xbedf, 0xbee0, 0xfffd,
+  0xbee1, 0xbee2, 0xbee3, 0xbee4, 0xbee5, 0xbee6, 0xbee7, 0xbee8,
+  0xbee9, 0xbeea, 0xbeeb, 0xfffd,
+  /* 0xa9 */
+  0xbeec, 0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef2, 0xbef3,
+  0xbef4, 0xbef5, 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb,
+  0xbefc, 0xfffd, 0xbefd, 0xbefe, 0xbeff, 0xbf00, 0xbf01, 0xbf02,
+  0xbf03, 0xbf04, 0xbf05, 0xbf06, 0xbf07, 0xfffd, 0xfffd, 0xfffd,
+  0xbf08, 0xbf09, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, 0xbf0f,
+  0xbf10, 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xbf16, 0xbf17,
+  0xbf18, 0xfffd, 0xbf19, 0xbf1a, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf1e,
+  0xbf1f, 0xbf20, 0xbf21, 0xbf22, 0xbf23, 0xfffd, 0xbf24, 0xbf25,
+  0xbf26, 0xbf27, 0xbf28, 0xbf29, 0xbf2a, 0xbf2b, 0xbf2c, 0xbf2d,
+  0xbf2e, 0xbf2f, 0xbf30, 0xbf31, 0xbf32, 0xbf33, 0xbf34, 0xfffd,
+  0xbf35, 0xbf36, 0xbf37, 0xbf38, 0xbf39, 0xbf3a, 0xbf3b, 0xbf3c,
+  0xbf3d, 0xbf3e, 0xbf3f, 0xfffd, 0xfffd, 0xfffd, 0xbf40, 0xbf41,
+  0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49,
+  0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xfffd,
+  0xbf51, 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58,
+  0xbf59, 0xbf5a, 0xbf5b, 0xfffd, 0xfffd, 0xfffd, 0xbf5c, 0xbf5d,
+  0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, 0xbf64, 0xbf65,
+  0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, 0xfffd,
+  0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xbf74,
+  0xbf75, 0xbf76, 0xbf77, 0xfffd, 0xfffd, 0xfffd, 0xbf78, 0xbf79,
+  0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf7f, 0xbf80, 0xbf81,
+  0xbf82, 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xfffd,
+  0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90,
+  0xbf91, 0xbf92, 0xbf93, 0xfffd,
+  /* 0xaa */
+  0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b,
+  0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xbfa1, 0xbfa2, 0xbfa3,
+  0xbfa4, 0xfffd, 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa,
+  0xbfab, 0xbfac, 0xbfad, 0xbfae, 0xbfaf, 0xfffd, 0xfffd, 0xfffd,
+  0xbfb0, 0xbfb1, 0xbfb2, 0xbfb3, 0xbfb4, 0xbfb5, 0xbfb6, 0xbfb7,
+  0xbfb8, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, 0xbfbe, 0xbfbf,
+  0xbfc0, 0xfffd, 0xbfc1, 0xbfc2, 0xbfc3, 0xbfc4, 0xbfc5, 0xbfc6,
+  0xbfc7, 0xbfc8, 0xbfc9, 0xbfca, 0xbfcb, 0xfffd, 0xbfcc, 0xbfcd,
+  0xbfce, 0xbfcf, 0xbfd0, 0xbfd1, 0xbfd2, 0xbfd3, 0xbfd4, 0xbfd5,
+  0xbfd6, 0xbfd7, 0xbfd8, 0xbfd9, 0xbfda, 0xbfdb, 0xbfdc, 0xfffd,
+  0xbfdd, 0xbfde, 0xbfdf, 0xbfe0, 0xbfe1, 0xbfe2, 0xbfe3, 0xbfe4,
+  0xbfe5, 0xbfe6, 0xbfe7, 0xfffd, 0xfffd, 0xfffd, 0xbfe8, 0xbfe9,
+  0xbfea, 0xbfeb, 0xbfec, 0xbfed, 0xbfee, 0xbfef, 0xbff0, 0xbff1,
+  0xbff2, 0xbff3, 0xbff4, 0xbff5, 0xbff6, 0xbff7, 0xbff8, 0xfffd,
+  0xbff9, 0xbffa, 0xbffb, 0xbffc, 0xbffd, 0xbffe, 0xbfff, 0xc000,
+  0xc001, 0xc002, 0xc003, 0xfffd, 0xfffd, 0xfffd, 0xc004, 0xc005,
+  0xc006, 0xc007, 0xc008, 0xc009, 0xc00a, 0xc00b, 0xc00c, 0xc00d,
+  0xc00e, 0xc00f, 0xc010, 0xc011, 0xc012, 0xc013, 0xc014, 0xfffd,
+  0xc015, 0xc016, 0xc017, 0xc018, 0xc019, 0xc01a, 0xc01b, 0xc01c,
+  0xc01d, 0xc01e, 0xc01f, 0xfffd, 0xfffd, 0xfffd, 0xc020, 0xc021,
+  0xc022, 0xc023, 0xc024, 0xc025, 0xc026, 0xc027, 0xc028, 0xc029,
+  0xc02a, 0xc02b, 0xc02c, 0xc02d, 0xc02e, 0xc02f, 0xc030, 0xfffd,
+  0xc031, 0xc032, 0xc033, 0xc034, 0xc035, 0xc036, 0xc037, 0xc038,
+  0xc039, 0xc03a, 0xc03b, 0xfffd,
+  /* 0xab */
+  0xc03c, 0xc03d, 0xc03e, 0xc03f, 0xc040, 0xc041, 0xc042, 0xc043,
+  0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 0xc04a, 0xc04b,
+  0xc04c, 0xfffd, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, 0xc052,
+  0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xfffd, 0xfffd, 0xfffd,
+  0xc058, 0xc059, 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f,
+  0xc060, 0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067,
+  0xc068, 0xfffd, 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e,
+  0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0xfffd, 0xc074, 0xc075,
+  0xc076, 0xc077, 0xc078, 0xc079, 0xc07a, 0xc07b, 0xc07c, 0xc07d,
+  0xc07e, 0xc07f, 0xc080, 0xc081, 0xc082, 0xc083, 0xc084, 0xfffd,
+  0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, 0xc08b, 0xc08c,
+  0xc08d, 0xc08e, 0xc08f, 0xfffd, 0xfffd, 0xfffd, 0xc090, 0xc091,
+  0xc092, 0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, 0xc099,
+  0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a0, 0xfffd,
+  0xc0a1, 0xc0a2, 0xc0a3, 0xc0a4, 0xc0a5, 0xc0a6, 0xc0a7, 0xc0a8,
+  0xc0a9, 0xc0aa, 0xc0ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xac */
+  0x3145, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xc0ac, 0xc0ad, 0xc0ae, 0xc0af, 0xc0b0, 0xc0b1, 0xc0b2, 0xc0b3,
+  0xc0b4, 0xc0b5, 0xc0b6, 0xc0b7, 0xc0b8, 0xc0b9, 0xc0ba, 0xc0bb,
+  0xc0bc, 0xfffd, 0xc0bd, 0xc0be, 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c2,
+  0xc0c3, 0xc0c4, 0xc0c5, 0xc0c6, 0xc0c7, 0xfffd, 0xc0c8, 0xc0c9,
+  0xc0ca, 0xc0cb, 0xc0cc, 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d0, 0xc0d1,
+  0xc0d2, 0xc0d3, 0xc0d4, 0xc0d5, 0xc0d6, 0xc0d7, 0xc0d8, 0xfffd,
+  0xc0d9, 0xc0da, 0xc0db, 0xc0dc, 0xc0dd, 0xc0de, 0xc0df, 0xc0e0,
+  0xc0e1, 0xc0e2, 0xc0e3, 0xfffd, 0xfffd, 0xfffd, 0xc0e4, 0xc0e5,
+  0xc0e6, 0xc0e7, 0xc0e8, 0xc0e9, 0xc0ea, 0xc0eb, 0xc0ec, 0xc0ed,
+  0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f2, 0xc0f3, 0xc0f4, 0xfffd,
+  0xc0f5, 0xc0f6, 0xc0f7, 0xc0f8, 0xc0f9, 0xc0fa, 0xc0fb, 0xc0fc,
+  0xc0fd, 0xc0fe, 0xc0ff, 0xfffd, 0xfffd, 0xfffd, 0xc100, 0xc101,
+  0xc102, 0xc103, 0xc104, 0xc105, 0xc106, 0xc107, 0xc108, 0xc109,
+  0xc10a, 0xc10b, 0xc10c, 0xc10d, 0xc10e, 0xc10f, 0xc110, 0xfffd,
+  0xc111, 0xc112, 0xc113, 0xc114, 0xc115, 0xc116, 0xc117, 0xc118,
+  0xc119, 0xc11a, 0xc11b, 0xfffd, 0xfffd, 0xfffd, 0xc11c, 0xc11d,
+  0xc11e, 0xc11f, 0xc120, 0xc121, 0xc122, 0xc123, 0xc124, 0xc125,
+  0xc126, 0xc127, 0xc128, 0xc129, 0xc12a, 0xc12b, 0xc12c, 0xfffd,
+  0xc12d, 0xc12e, 0xc12f, 0xc130, 0xc131, 0xc132, 0xc133, 0xc134,
+  0xc135, 0xc136, 0xc137, 0xfffd,
+  /* 0xad */
+  0xc138, 0xc139, 0xc13a, 0xc13b, 0xc13c, 0xc13d, 0xc13e, 0xc13f,
+  0xc140, 0xc141, 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147,
+  0xc148, 0xfffd, 0xc149, 0xc14a, 0xc14b, 0xc14c, 0xc14d, 0xc14e,
+  0xc14f, 0xc150, 0xc151, 0xc152, 0xc153, 0xfffd, 0xfffd, 0xfffd,
+  0xc154, 0xc155, 0xc156, 0xc157, 0xc158, 0xc159, 0xc15a, 0xc15b,
+  0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, 0xc162, 0xc163,
+  0xc164, 0xfffd, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, 0xc16a,
+  0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xfffd, 0xc170, 0xc171,
+  0xc172, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179,
+  0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc17e, 0xc17f, 0xc180, 0xfffd,
+  0xc181, 0xc182, 0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188,
+  0xc189, 0xc18a, 0xc18b, 0xfffd, 0xfffd, 0xfffd, 0xc18c, 0xc18d,
+  0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192, 0xc193, 0xc194, 0xc195,
+  0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xfffd,
+  0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc1a1, 0xc1a2, 0xc1a3, 0xc1a4,
+  0xc1a5, 0xc1a6, 0xc1a7, 0xfffd, 0xfffd, 0xfffd, 0xc1a8, 0xc1a9,
+  0xc1aa, 0xc1ab, 0xc1ac, 0xc1ad, 0xc1ae, 0xc1af, 0xc1b0, 0xc1b1,
+  0xc1b2, 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, 0xc1b7, 0xc1b8, 0xfffd,
+  0xc1b9, 0xc1ba, 0xc1bb, 0xc1bc, 0xc1bd, 0xc1be, 0xc1bf, 0xc1c0,
+  0xc1c1, 0xc1c2, 0xc1c3, 0xfffd, 0xfffd, 0xfffd, 0xc1c4, 0xc1c5,
+  0xc1c6, 0xc1c7, 0xc1c8, 0xc1c9, 0xc1ca, 0xc1cb, 0xc1cc, 0xc1cd,
+  0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d2, 0xc1d3, 0xc1d4, 0xfffd,
+  0xc1d5, 0xc1d6, 0xc1d7, 0xc1d8, 0xc1d9, 0xc1da, 0xc1db, 0xc1dc,
+  0xc1dd, 0xc1de, 0xc1df, 0xfffd,
+  /* 0xae */
+  0xc1e0, 0xc1e1, 0xc1e2, 0xc1e3, 0xc1e4, 0xc1e5, 0xc1e6, 0xc1e7,
+  0xc1e8, 0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, 0xc1ed, 0xc1ee, 0xc1ef,
+  0xc1f0, 0xfffd, 0xc1f1, 0xc1f2, 0xc1f3, 0xc1f4, 0xc1f5, 0xc1f6,
+  0xc1f7, 0xc1f8, 0xc1f9, 0xc1fa, 0xc1fb, 0xfffd, 0xfffd, 0xfffd,
+  0xc1fc, 0xc1fd, 0xc1fe, 0xc1ff, 0xc200, 0xc201, 0xc202, 0xc203,
+  0xc204, 0xc205, 0xc206, 0xc207, 0xc208, 0xc209, 0xc20a, 0xc20b,
+  0xc20c, 0xfffd, 0xc20d, 0xc20e, 0xc20f, 0xc210, 0xc211, 0xc212,
+  0xc213, 0xc214, 0xc215, 0xc216, 0xc217, 0xfffd, 0xc218, 0xc219,
+  0xc21a, 0xc21b, 0xc21c, 0xc21d, 0xc21e, 0xc21f, 0xc220, 0xc221,
+  0xc222, 0xc223, 0xc224, 0xc225, 0xc226, 0xc227, 0xc228, 0xfffd,
+  0xc229, 0xc22a, 0xc22b, 0xc22c, 0xc22d, 0xc22e, 0xc22f, 0xc230,
+  0xc231, 0xc232, 0xc233, 0xfffd, 0xfffd, 0xfffd, 0xc234, 0xc235,
+  0xc236, 0xc237, 0xc238, 0xc239, 0xc23a, 0xc23b, 0xc23c, 0xc23d,
+  0xc23e, 0xc23f, 0xc240, 0xc241, 0xc242, 0xc243, 0xc244, 0xfffd,
+  0xc245, 0xc246, 0xc247, 0xc248, 0xc249, 0xc24a, 0xc24b, 0xc24c,
+  0xc24d, 0xc24e, 0xc24f, 0xfffd, 0xfffd, 0xfffd, 0xc250, 0xc251,
+  0xc252, 0xc253, 0xc254, 0xc255, 0xc256, 0xc257, 0xc258, 0xc259,
+  0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc260, 0xfffd,
+  0xc261, 0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268,
+  0xc269, 0xc26a, 0xc26b, 0xfffd, 0xfffd, 0xfffd, 0xc26c, 0xc26d,
+  0xc26e, 0xc26f, 0xc270, 0xc271, 0xc272, 0xc273, 0xc274, 0xc275,
+  0xc276, 0xc277, 0xc278, 0xc279, 0xc27a, 0xc27b, 0xc27c, 0xfffd,
+  0xc27d, 0xc27e, 0xc27f, 0xc280, 0xc281, 0xc282, 0xc283, 0xc284,
+  0xc285, 0xc286, 0xc287, 0xfffd,
+  /* 0xaf */
+  0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f,
+  0xc290, 0xc291, 0xc292, 0xc293, 0xc294, 0xc295, 0xc296, 0xc297,
+  0xc298, 0xfffd, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, 0xc29e,
+  0xc29f, 0xc2a0, 0xc2a1, 0xc2a2, 0xc2a3, 0xfffd, 0xfffd, 0xfffd,
+  0xc2a4, 0xc2a5, 0xc2a6, 0xc2a7, 0xc2a8, 0xc2a9, 0xc2aa, 0xc2ab,
+  0xc2ac, 0xc2ad, 0xc2ae, 0xc2af, 0xc2b0, 0xc2b1, 0xc2b2, 0xc2b3,
+  0xc2b4, 0xfffd, 0xc2b5, 0xc2b6, 0xc2b7, 0xc2b8, 0xc2b9, 0xc2ba,
+  0xc2bb, 0xc2bc, 0xc2bd, 0xc2be, 0xc2bf, 0xfffd, 0xc2c0, 0xc2c1,
+  0xc2c2, 0xc2c3, 0xc2c4, 0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9,
+  0xc2ca, 0xc2cb, 0xc2cc, 0xc2cd, 0xc2ce, 0xc2cf, 0xc2d0, 0xfffd,
+  0xc2d1, 0xc2d2, 0xc2d3, 0xc2d4, 0xc2d5, 0xc2d6, 0xc2d7, 0xc2d8,
+  0xc2d9, 0xc2da, 0xc2db, 0xfffd, 0xfffd, 0xfffd, 0xc2dc, 0xc2dd,
+  0xc2de, 0xc2df, 0xc2e0, 0xc2e1, 0xc2e2, 0xc2e3, 0xc2e4, 0xc2e5,
+  0xc2e6, 0xc2e7, 0xc2e8, 0xc2e9, 0xc2ea, 0xc2eb, 0xc2ec, 0xfffd,
+  0xc2ed, 0xc2ee, 0xc2ef, 0xc2f0, 0xc2f1, 0xc2f2, 0xc2f3, 0xc2f4,
+  0xc2f5, 0xc2f6, 0xc2f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xb0 */
+  0x3146, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xc2f8, 0xc2f9, 0xc2fa, 0xc2fb, 0xc2fc, 0xc2fd, 0xc2fe, 0xc2ff,
+  0xc300, 0xc301, 0xc302, 0xc303, 0xc304, 0xc305, 0xc306, 0xc307,
+  0xc308, 0xfffd, 0xc309, 0xc30a, 0xc30b, 0xc30c, 0xc30d, 0xc30e,
+  0xc30f, 0xc310, 0xc311, 0xc312, 0xc313, 0xfffd, 0xc314, 0xc315,
+  0xc316, 0xc317, 0xc318, 0xc319, 0xc31a, 0xc31b, 0xc31c, 0xc31d,
+  0xc31e, 0xc31f, 0xc320, 0xc321, 0xc322, 0xc323, 0xc324, 0xfffd,
+  0xc325, 0xc326, 0xc327, 0xc328, 0xc329, 0xc32a, 0xc32b, 0xc32c,
+  0xc32d, 0xc32e, 0xc32f, 0xfffd, 0xfffd, 0xfffd, 0xc330, 0xc331,
+  0xc332, 0xc333, 0xc334, 0xc335, 0xc336, 0xc337, 0xc338, 0xc339,
+  0xc33a, 0xc33b, 0xc33c, 0xc33d, 0xc33e, 0xc33f, 0xc340, 0xfffd,
+  0xc341, 0xc342, 0xc343, 0xc344, 0xc345, 0xc346, 0xc347, 0xc348,
+  0xc349, 0xc34a, 0xc34b, 0xfffd, 0xfffd, 0xfffd, 0xc34c, 0xc34d,
+  0xc34e, 0xc34f, 0xc350, 0xc351, 0xc352, 0xc353, 0xc354, 0xc355,
+  0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc35b, 0xc35c, 0xfffd,
+  0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, 0xc362, 0xc363, 0xc364,
+  0xc365, 0xc366, 0xc367, 0xfffd, 0xfffd, 0xfffd, 0xc368, 0xc369,
+  0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, 0xc371,
+  0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xfffd,
+  0xc379, 0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc37e, 0xc37f, 0xc380,
+  0xc381, 0xc382, 0xc383, 0xfffd,
+  /* 0xb1 */
+  0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a, 0xc38b,
+  0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, 0xc393,
+  0xc394, 0xfffd, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a,
+  0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xfffd, 0xfffd, 0xfffd,
+  0xc3a0, 0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, 0xc3a7,
+  0xc3a8, 0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, 0xc3af,
+  0xc3b0, 0xfffd, 0xc3b1, 0xc3b2, 0xc3b3, 0xc3b4, 0xc3b5, 0xc3b6,
+  0xc3b7, 0xc3b8, 0xc3b9, 0xc3ba, 0xc3bb, 0xfffd, 0xc3bc, 0xc3bd,
+  0xc3be, 0xc3bf, 0xc3c0, 0xc3c1, 0xc3c2, 0xc3c3, 0xc3c4, 0xc3c5,
+  0xc3c6, 0xc3c7, 0xc3c8, 0xc3c9, 0xc3ca, 0xc3cb, 0xc3cc, 0xfffd,
+  0xc3cd, 0xc3ce, 0xc3cf, 0xc3d0, 0xc3d1, 0xc3d2, 0xc3d3, 0xc3d4,
+  0xc3d5, 0xc3d6, 0xc3d7, 0xfffd, 0xfffd, 0xfffd, 0xc3d8, 0xc3d9,
+  0xc3da, 0xc3db, 0xc3dc, 0xc3dd, 0xc3de, 0xc3df, 0xc3e0, 0xc3e1,
+  0xc3e2, 0xc3e3, 0xc3e4, 0xc3e5, 0xc3e6, 0xc3e7, 0xc3e8, 0xfffd,
+  0xc3e9, 0xc3ea, 0xc3eb, 0xc3ec, 0xc3ed, 0xc3ee, 0xc3ef, 0xc3f0,
+  0xc3f1, 0xc3f2, 0xc3f3, 0xfffd, 0xfffd, 0xfffd, 0xc3f4, 0xc3f5,
+  0xc3f6, 0xc3f7, 0xc3f8, 0xc3f9, 0xc3fa, 0xc3fb, 0xc3fc, 0xc3fd,
+  0xc3fe, 0xc3ff, 0xc400, 0xc401, 0xc402, 0xc403, 0xc404, 0xfffd,
+  0xc405, 0xc406, 0xc407, 0xc408, 0xc409, 0xc40a, 0xc40b, 0xc40c,
+  0xc40d, 0xc40e, 0xc40f, 0xfffd, 0xfffd, 0xfffd, 0xc410, 0xc411,
+  0xc412, 0xc413, 0xc414, 0xc415, 0xc416, 0xc417, 0xc418, 0xc419,
+  0xc41a, 0xc41b, 0xc41c, 0xc41d, 0xc41e, 0xc41f, 0xc420, 0xfffd,
+  0xc421, 0xc422, 0xc423, 0xc424, 0xc425, 0xc426, 0xc427, 0xc428,
+  0xc429, 0xc42a, 0xc42b, 0xfffd,
+  /* 0xb2 */
+  0xc42c, 0xc42d, 0xc42e, 0xc42f, 0xc430, 0xc431, 0xc432, 0xc433,
+  0xc434, 0xc435, 0xc436, 0xc437, 0xc438, 0xc439, 0xc43a, 0xc43b,
+  0xc43c, 0xfffd, 0xc43d, 0xc43e, 0xc43f, 0xc440, 0xc441, 0xc442,
+  0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xfffd, 0xfffd, 0xfffd,
+  0xc448, 0xc449, 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f,
+  0xc450, 0xc451, 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457,
+  0xc458, 0xfffd, 0xc459, 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e,
+  0xc45f, 0xc460, 0xc461, 0xc462, 0xc463, 0xfffd, 0xc464, 0xc465,
+  0xc466, 0xc467, 0xc468, 0xc469, 0xc46a, 0xc46b, 0xc46c, 0xc46d,
+  0xc46e, 0xc46f, 0xc470, 0xc471, 0xc472, 0xc473, 0xc474, 0xfffd,
+  0xc475, 0xc476, 0xc477, 0xc478, 0xc479, 0xc47a, 0xc47b, 0xc47c,
+  0xc47d, 0xc47e, 0xc47f, 0xfffd, 0xfffd, 0xfffd, 0xc480, 0xc481,
+  0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489,
+  0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xfffd,
+  0xc491, 0xc492, 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498,
+  0xc499, 0xc49a, 0xc49b, 0xfffd, 0xfffd, 0xfffd, 0xc49c, 0xc49d,
+  0xc49e, 0xc49f, 0xc4a0, 0xc4a1, 0xc4a2, 0xc4a3, 0xc4a4, 0xc4a5,
+  0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, 0xc4aa, 0xc4ab, 0xc4ac, 0xfffd,
+  0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, 0xc4b2, 0xc4b3, 0xc4b4,
+  0xc4b5, 0xc4b6, 0xc4b7, 0xfffd, 0xfffd, 0xfffd, 0xc4b8, 0xc4b9,
+  0xc4ba, 0xc4bb, 0xc4bc, 0xc4bd, 0xc4be, 0xc4bf, 0xc4c0, 0xc4c1,
+  0xc4c2, 0xc4c3, 0xc4c4, 0xc4c5, 0xc4c6, 0xc4c7, 0xc4c8, 0xfffd,
+  0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, 0xc4cd, 0xc4ce, 0xc4cf, 0xc4d0,
+  0xc4d1, 0xc4d2, 0xc4d3, 0xfffd,
+  /* 0xb3 */
+  0xc4d4, 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, 0xc4da, 0xc4db,
+  0xc4dc, 0xc4dd, 0xc4de, 0xc4df, 0xc4e0, 0xc4e1, 0xc4e2, 0xc4e3,
+  0xc4e4, 0xfffd, 0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4e9, 0xc4ea,
+  0xc4eb, 0xc4ec, 0xc4ed, 0xc4ee, 0xc4ef, 0xfffd, 0xfffd, 0xfffd,
+  0xc4f0, 0xc4f1, 0xc4f2, 0xc4f3, 0xc4f4, 0xc4f5, 0xc4f6, 0xc4f7,
+  0xc4f8, 0xc4f9, 0xc4fa, 0xc4fb, 0xc4fc, 0xc4fd, 0xc4fe, 0xc4ff,
+  0xc500, 0xfffd, 0xc501, 0xc502, 0xc503, 0xc504, 0xc505, 0xc506,
+  0xc507, 0xc508, 0xc509, 0xc50a, 0xc50b, 0xfffd, 0xc50c, 0xc50d,
+  0xc50e, 0xc50f, 0xc510, 0xc511, 0xc512, 0xc513, 0xc514, 0xc515,
+  0xc516, 0xc517, 0xc518, 0xc519, 0xc51a, 0xc51b, 0xc51c, 0xfffd,
+  0xc51d, 0xc51e, 0xc51f, 0xc520, 0xc521, 0xc522, 0xc523, 0xc524,
+  0xc525, 0xc526, 0xc527, 0xfffd, 0xfffd, 0xfffd, 0xc528, 0xc529,
+  0xc52a, 0xc52b, 0xc52c, 0xc52d, 0xc52e, 0xc52f, 0xc530, 0xc531,
+  0xc532, 0xc533, 0xc534, 0xc535, 0xc536, 0xc537, 0xc538, 0xfffd,
+  0xc539, 0xc53a, 0xc53b, 0xc53c, 0xc53d, 0xc53e, 0xc53f, 0xc540,
+  0xc541, 0xc542, 0xc543, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xb4 */
+  0x3147, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, 0xc54a, 0xc54b,
+  0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, 0xc551, 0xc552, 0xc553,
+  0xc554, 0xfffd, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, 0xc55a,
+  0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0xfffd, 0xc560, 0xc561,
+  0xc562, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569,
+  0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xfffd,
+  0xc571, 0xc572, 0xc573, 0xc574, 0xc575, 0xc576, 0xc577, 0xc578,
+  0xc579, 0xc57a, 0xc57b, 0xfffd, 0xfffd, 0xfffd, 0xc57c, 0xc57d,
+  0xc57e, 0xc57f, 0xc580, 0xc581, 0xc582, 0xc583, 0xc584, 0xc585,
+  0xc586, 0xc587, 0xc588, 0xc589, 0xc58a, 0xc58b, 0xc58c, 0xfffd,
+  0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592, 0xc593, 0xc594,
+  0xc595, 0xc596, 0xc597, 0xfffd, 0xfffd, 0xfffd, 0xc598, 0xc599,
+  0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, 0xc5a0, 0xc5a1,
+  0xc5a2, 0xc5a3, 0xc5a4, 0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, 0xfffd,
+  0xc5a9, 0xc5aa, 0xc5ab, 0xc5ac, 0xc5ad, 0xc5ae, 0xc5af, 0xc5b0,
+  0xc5b1, 0xc5b2, 0xc5b3, 0xfffd, 0xfffd, 0xfffd, 0xc5b4, 0xc5b5,
+  0xc5b6, 0xc5b7, 0xc5b8, 0xc5b9, 0xc5ba, 0xc5bb, 0xc5bc, 0xc5bd,
+  0xc5be, 0xc5bf, 0xc5c0, 0xc5c1, 0xc5c2, 0xc5c3, 0xc5c4, 0xfffd,
+  0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cb, 0xc5cc,
+  0xc5cd, 0xc5ce, 0xc5cf, 0xfffd,
+  /* 0xb5 */
+  0xc5d0, 0xc5d1, 0xc5d2, 0xc5d3, 0xc5d4, 0xc5d5, 0xc5d6, 0xc5d7,
+  0xc5d8, 0xc5d9, 0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5de, 0xc5df,
+  0xc5e0, 0xfffd, 0xc5e1, 0xc5e2, 0xc5e3, 0xc5e4, 0xc5e5, 0xc5e6,
+  0xc5e7, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xfffd, 0xfffd, 0xfffd,
+  0xc5ec, 0xc5ed, 0xc5ee, 0xc5ef, 0xc5f0, 0xc5f1, 0xc5f2, 0xc5f3,
+  0xc5f4, 0xc5f5, 0xc5f6, 0xc5f7, 0xc5f8, 0xc5f9, 0xc5fa, 0xc5fb,
+  0xc5fc, 0xfffd, 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc602,
+  0xc603, 0xc604, 0xc605, 0xc606, 0xc607, 0xfffd, 0xc608, 0xc609,
+  0xc60a, 0xc60b, 0xc60c, 0xc60d, 0xc60e, 0xc60f, 0xc610, 0xc611,
+  0xc612, 0xc613, 0xc614, 0xc615, 0xc616, 0xc617, 0xc618, 0xfffd,
+  0xc619, 0xc61a, 0xc61b, 0xc61c, 0xc61d, 0xc61e, 0xc61f, 0xc620,
+  0xc621, 0xc622, 0xc623, 0xfffd, 0xfffd, 0xfffd, 0xc624, 0xc625,
+  0xc626, 0xc627, 0xc628, 0xc629, 0xc62a, 0xc62b, 0xc62c, 0xc62d,
+  0xc62e, 0xc62f, 0xc630, 0xc631, 0xc632, 0xc633, 0xc634, 0xfffd,
+  0xc635, 0xc636, 0xc637, 0xc638, 0xc639, 0xc63a, 0xc63b, 0xc63c,
+  0xc63d, 0xc63e, 0xc63f, 0xfffd, 0xfffd, 0xfffd, 0xc640, 0xc641,
+  0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649,
+  0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, 0xfffd,
+  0xc651, 0xc652, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658,
+  0xc659, 0xc65a, 0xc65b, 0xfffd, 0xfffd, 0xfffd, 0xc65c, 0xc65d,
+  0xc65e, 0xc65f, 0xc660, 0xc661, 0xc662, 0xc663, 0xc664, 0xc665,
+  0xc666, 0xc667, 0xc668, 0xc669, 0xc66a, 0xc66b, 0xc66c, 0xfffd,
+  0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671, 0xc672, 0xc673, 0xc674,
+  0xc675, 0xc676, 0xc677, 0xfffd,
+  /* 0xb6 */
+  0xc678, 0xc679, 0xc67a, 0xc67b, 0xc67c, 0xc67d, 0xc67e, 0xc67f,
+  0xc680, 0xc681, 0xc682, 0xc683, 0xc684, 0xc685, 0xc686, 0xc687,
+  0xc688, 0xfffd, 0xc689, 0xc68a, 0xc68b, 0xc68c, 0xc68d, 0xc68e,
+  0xc68f, 0xc690, 0xc691, 0xc692, 0xc693, 0xfffd, 0xfffd, 0xfffd,
+  0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, 0xc69a, 0xc69b,
+  0xc69c, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc6a1, 0xc6a2, 0xc6a3,
+  0xc6a4, 0xfffd, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa,
+  0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xfffd, 0xc6b0, 0xc6b1,
+  0xc6b2, 0xc6b3, 0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9,
+  0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c0, 0xfffd,
+  0xc6c1, 0xc6c2, 0xc6c3, 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8,
+  0xc6c9, 0xc6ca, 0xc6cb, 0xfffd, 0xfffd, 0xfffd, 0xc6cc, 0xc6cd,
+  0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3, 0xc6d4, 0xc6d5,
+  0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, 0xc6dc, 0xfffd,
+  0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3, 0xc6e4,
+  0xc6e5, 0xc6e6, 0xc6e7, 0xfffd, 0xfffd, 0xfffd, 0xc6e8, 0xc6e9,
+  0xc6ea, 0xc6eb, 0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1,
+  0xc6f2, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6f8, 0xfffd,
+  0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe, 0xc6ff, 0xc700,
+  0xc701, 0xc702, 0xc703, 0xfffd, 0xfffd, 0xfffd, 0xc704, 0xc705,
+  0xc706, 0xc707, 0xc708, 0xc709, 0xc70a, 0xc70b, 0xc70c, 0xc70d,
+  0xc70e, 0xc70f, 0xc710, 0xc711, 0xc712, 0xc713, 0xc714, 0xfffd,
+  0xc715, 0xc716, 0xc717, 0xc718, 0xc719, 0xc71a, 0xc71b, 0xc71c,
+  0xc71d, 0xc71e, 0xc71f, 0xfffd,
+  /* 0xb7 */
+  0xc720, 0xc721, 0xc722, 0xc723, 0xc724, 0xc725, 0xc726, 0xc727,
+  0xc728, 0xc729, 0xc72a, 0xc72b, 0xc72c, 0xc72d, 0xc72e, 0xc72f,
+  0xc730, 0xfffd, 0xc731, 0xc732, 0xc733, 0xc734, 0xc735, 0xc736,
+  0xc737, 0xc738, 0xc739, 0xc73a, 0xc73b, 0xfffd, 0xfffd, 0xfffd,
+  0xc73c, 0xc73d, 0xc73e, 0xc73f, 0xc740, 0xc741, 0xc742, 0xc743,
+  0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b,
+  0xc74c, 0xfffd, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752,
+  0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xfffd, 0xc758, 0xc759,
+  0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761,
+  0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xfffd,
+  0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770,
+  0xc771, 0xc772, 0xc773, 0xfffd, 0xfffd, 0xfffd, 0xc774, 0xc775,
+  0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, 0xc77c, 0xc77d,
+  0xc77e, 0xc77f, 0xc780, 0xc781, 0xc782, 0xc783, 0xc784, 0xfffd,
+  0xc785, 0xc786, 0xc787, 0xc788, 0xc789, 0xc78a, 0xc78b, 0xc78c,
+  0xc78d, 0xc78e, 0xc78f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xb8 */
+  0x3148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xc790, 0xc791, 0xc792, 0xc793, 0xc794, 0xc795, 0xc796, 0xc797,
+  0xc798, 0xc799, 0xc79a, 0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f,
+  0xc7a0, 0xfffd, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6,
+  0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xfffd, 0xc7ac, 0xc7ad,
+  0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b4, 0xc7b5,
+  0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7bc, 0xfffd,
+  0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, 0xc7c3, 0xc7c4,
+  0xc7c5, 0xc7c6, 0xc7c7, 0xfffd, 0xfffd, 0xfffd, 0xc7c8, 0xc7c9,
+  0xc7ca, 0xc7cb, 0xc7cc, 0xc7cd, 0xc7ce, 0xc7cf, 0xc7d0, 0xc7d1,
+  0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xfffd,
+  0xc7d9, 0xc7da, 0xc7db, 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0,
+  0xc7e1, 0xc7e2, 0xc7e3, 0xfffd, 0xfffd, 0xfffd, 0xc7e4, 0xc7e5,
+  0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec, 0xc7ed,
+  0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, 0xfffd,
+  0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0xc7fb, 0xc7fc,
+  0xc7fd, 0xc7fe, 0xc7ff, 0xfffd, 0xfffd, 0xfffd, 0xc800, 0xc801,
+  0xc802, 0xc803, 0xc804, 0xc805, 0xc806, 0xc807, 0xc808, 0xc809,
+  0xc80a, 0xc80b, 0xc80c, 0xc80d, 0xc80e, 0xc80f, 0xc810, 0xfffd,
+  0xc811, 0xc812, 0xc813, 0xc814, 0xc815, 0xc816, 0xc817, 0xc818,
+  0xc819, 0xc81a, 0xc81b, 0xfffd,
+  /* 0xb9 */
+  0xc81c, 0xc81d, 0xc81e, 0xc81f, 0xc820, 0xc821, 0xc822, 0xc823,
+  0xc824, 0xc825, 0xc826, 0xc827, 0xc828, 0xc829, 0xc82a, 0xc82b,
+  0xc82c, 0xfffd, 0xc82d, 0xc82e, 0xc82f, 0xc830, 0xc831, 0xc832,
+  0xc833, 0xc834, 0xc835, 0xc836, 0xc837, 0xfffd, 0xfffd, 0xfffd,
+  0xc838, 0xc839, 0xc83a, 0xc83b, 0xc83c, 0xc83d, 0xc83e, 0xc83f,
+  0xc840, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847,
+  0xc848, 0xfffd, 0xc849, 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e,
+  0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0xfffd, 0xc854, 0xc855,
+  0xc856, 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85b, 0xc85c, 0xc85d,
+  0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, 0xc863, 0xc864, 0xfffd,
+  0xc865, 0xc866, 0xc867, 0xc868, 0xc869, 0xc86a, 0xc86b, 0xc86c,
+  0xc86d, 0xc86e, 0xc86f, 0xfffd, 0xfffd, 0xfffd, 0xc870, 0xc871,
+  0xc872, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879,
+  0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc87f, 0xc880, 0xfffd,
+  0xc881, 0xc882, 0xc883, 0xc884, 0xc885, 0xc886, 0xc887, 0xc888,
+  0xc889, 0xc88a, 0xc88b, 0xfffd, 0xfffd, 0xfffd, 0xc88c, 0xc88d,
+  0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892, 0xc893, 0xc894, 0xc895,
+  0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, 0xc89b, 0xc89c, 0xfffd,
+  0xc89d, 0xc89e, 0xc89f, 0xc8a0, 0xc8a1, 0xc8a2, 0xc8a3, 0xc8a4,
+  0xc8a5, 0xc8a6, 0xc8a7, 0xfffd, 0xfffd, 0xfffd, 0xc8a8, 0xc8a9,
+  0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, 0xc8b1,
+  0xc8b2, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xfffd,
+  0xc8b9, 0xc8ba, 0xc8bb, 0xc8bc, 0xc8bd, 0xc8be, 0xc8bf, 0xc8c0,
+  0xc8c1, 0xc8c2, 0xc8c3, 0xfffd,
+  /* 0xba */
+  0xc8c4, 0xc8c5, 0xc8c6, 0xc8c7, 0xc8c8, 0xc8c9, 0xc8ca, 0xc8cb,
+  0xc8cc, 0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d2, 0xc8d3,
+  0xc8d4, 0xfffd, 0xc8d5, 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da,
+  0xc8db, 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0xfffd, 0xfffd, 0xfffd,
+  0xc8e0, 0xc8e1, 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7,
+  0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef,
+  0xc8f0, 0xfffd, 0xc8f1, 0xc8f2, 0xc8f3, 0xc8f4, 0xc8f5, 0xc8f6,
+  0xc8f7, 0xc8f8, 0xc8f9, 0xc8fa, 0xc8fb, 0xfffd, 0xc8fc, 0xc8fd,
+  0xc8fe, 0xc8ff, 0xc900, 0xc901, 0xc902, 0xc903, 0xc904, 0xc905,
+  0xc906, 0xc907, 0xc908, 0xc909, 0xc90a, 0xc90b, 0xc90c, 0xfffd,
+  0xc90d, 0xc90e, 0xc90f, 0xc910, 0xc911, 0xc912, 0xc913, 0xc914,
+  0xc915, 0xc916, 0xc917, 0xfffd, 0xfffd, 0xfffd, 0xc918, 0xc919,
+  0xc91a, 0xc91b, 0xc91c, 0xc91d, 0xc91e, 0xc91f, 0xc920, 0xc921,
+  0xc922, 0xc923, 0xc924, 0xc925, 0xc926, 0xc927, 0xc928, 0xfffd,
+  0xc929, 0xc92a, 0xc92b, 0xc92c, 0xc92d, 0xc92e, 0xc92f, 0xc930,
+  0xc931, 0xc932, 0xc933, 0xfffd, 0xfffd, 0xfffd, 0xc934, 0xc935,
+  0xc936, 0xc937, 0xc938, 0xc939, 0xc93a, 0xc93b, 0xc93c, 0xc93d,
+  0xc93e, 0xc93f, 0xc940, 0xc941, 0xc942, 0xc943, 0xc944, 0xfffd,
+  0xc945, 0xc946, 0xc947, 0xc948, 0xc949, 0xc94a, 0xc94b, 0xc94c,
+  0xc94d, 0xc94e, 0xc94f, 0xfffd, 0xfffd, 0xfffd, 0xc950, 0xc951,
+  0xc952, 0xc953, 0xc954, 0xc955, 0xc956, 0xc957, 0xc958, 0xc959,
+  0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc960, 0xfffd,
+  0xc961, 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968,
+  0xc969, 0xc96a, 0xc96b, 0xfffd,
+  /* 0xbb */
+  0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, 0xc971, 0xc972, 0xc973,
+  0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, 0xc97a, 0xc97b,
+  0xc97c, 0xfffd, 0xc97d, 0xc97e, 0xc97f, 0xc980, 0xc981, 0xc982,
+  0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xfffd, 0xfffd, 0xfffd,
+  0xc988, 0xc989, 0xc98a, 0xc98b, 0xc98c, 0xc98d, 0xc98e, 0xc98f,
+  0xc990, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, 0xc997,
+  0xc998, 0xfffd, 0xc999, 0xc99a, 0xc99b, 0xc99c, 0xc99d, 0xc99e,
+  0xc99f, 0xc9a0, 0xc9a1, 0xc9a2, 0xc9a3, 0xfffd, 0xc9a4, 0xc9a5,
+  0xc9a6, 0xc9a7, 0xc9a8, 0xc9a9, 0xc9aa, 0xc9ab, 0xc9ac, 0xc9ad,
+  0xc9ae, 0xc9af, 0xc9b0, 0xc9b1, 0xc9b2, 0xc9b3, 0xc9b4, 0xfffd,
+  0xc9b5, 0xc9b6, 0xc9b7, 0xc9b8, 0xc9b9, 0xc9ba, 0xc9bb, 0xc9bc,
+  0xc9bd, 0xc9be, 0xc9bf, 0xfffd, 0xfffd, 0xfffd, 0xc9c0, 0xc9c1,
+  0xc9c2, 0xc9c3, 0xc9c4, 0xc9c5, 0xc9c6, 0xc9c7, 0xc9c8, 0xc9c9,
+  0xc9ca, 0xc9cb, 0xc9cc, 0xc9cd, 0xc9ce, 0xc9cf, 0xc9d0, 0xfffd,
+  0xc9d1, 0xc9d2, 0xc9d3, 0xc9d4, 0xc9d5, 0xc9d6, 0xc9d7, 0xc9d8,
+  0xc9d9, 0xc9da, 0xc9db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xbc */
+  0x3149, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xc9dc, 0xc9dd, 0xc9de, 0xc9df, 0xc9e0, 0xc9e1, 0xc9e2, 0xc9e3,
+  0xc9e4, 0xc9e5, 0xc9e6, 0xc9e7, 0xc9e8, 0xc9e9, 0xc9ea, 0xc9eb,
+  0xc9ec, 0xfffd, 0xc9ed, 0xc9ee, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f2,
+  0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0xfffd, 0xc9f8, 0xc9f9,
+  0xc9fa, 0xc9fb, 0xc9fc, 0xc9fd, 0xc9fe, 0xc9ff, 0xca00, 0xca01,
+  0xca02, 0xca03, 0xca04, 0xca05, 0xca06, 0xca07, 0xca08, 0xfffd,
+  0xca09, 0xca0a, 0xca0b, 0xca0c, 0xca0d, 0xca0e, 0xca0f, 0xca10,
+  0xca11, 0xca12, 0xca13, 0xfffd, 0xfffd, 0xfffd, 0xca14, 0xca15,
+  0xca16, 0xca17, 0xca18, 0xca19, 0xca1a, 0xca1b, 0xca1c, 0xca1d,
+  0xca1e, 0xca1f, 0xca20, 0xca21, 0xca22, 0xca23, 0xca24, 0xfffd,
+  0xca25, 0xca26, 0xca27, 0xca28, 0xca29, 0xca2a, 0xca2b, 0xca2c,
+  0xca2d, 0xca2e, 0xca2f, 0xfffd, 0xfffd, 0xfffd, 0xca30, 0xca31,
+  0xca32, 0xca33, 0xca34, 0xca35, 0xca36, 0xca37, 0xca38, 0xca39,
+  0xca3a, 0xca3b, 0xca3c, 0xca3d, 0xca3e, 0xca3f, 0xca40, 0xfffd,
+  0xca41, 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0xca47, 0xca48,
+  0xca49, 0xca4a, 0xca4b, 0xfffd, 0xfffd, 0xfffd, 0xca4c, 0xca4d,
+  0xca4e, 0xca4f, 0xca50, 0xca51, 0xca52, 0xca53, 0xca54, 0xca55,
+  0xca56, 0xca57, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5c, 0xfffd,
+  0xca5d, 0xca5e, 0xca5f, 0xca60, 0xca61, 0xca62, 0xca63, 0xca64,
+  0xca65, 0xca66, 0xca67, 0xfffd,
+  /* 0xbd */
+  0xca68, 0xca69, 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f,
+  0xca70, 0xca71, 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77,
+  0xca78, 0xfffd, 0xca79, 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e,
+  0xca7f, 0xca80, 0xca81, 0xca82, 0xca83, 0xfffd, 0xfffd, 0xfffd,
+  0xca84, 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, 0xca8b,
+  0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, 0xca93,
+  0xca94, 0xfffd, 0xca95, 0xca96, 0xca97, 0xca98, 0xca99, 0xca9a,
+  0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0xfffd, 0xcaa0, 0xcaa1,
+  0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, 0xcaa7, 0xcaa8, 0xcaa9,
+  0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, 0xcaaf, 0xcab0, 0xfffd,
+  0xcab1, 0xcab2, 0xcab3, 0xcab4, 0xcab5, 0xcab6, 0xcab7, 0xcab8,
+  0xcab9, 0xcaba, 0xcabb, 0xfffd, 0xfffd, 0xfffd, 0xcabc, 0xcabd,
+  0xcabe, 0xcabf, 0xcac0, 0xcac1, 0xcac2, 0xcac3, 0xcac4, 0xcac5,
+  0xcac6, 0xcac7, 0xcac8, 0xcac9, 0xcaca, 0xcacb, 0xcacc, 0xfffd,
+  0xcacd, 0xcace, 0xcacf, 0xcad0, 0xcad1, 0xcad2, 0xcad3, 0xcad4,
+  0xcad5, 0xcad6, 0xcad7, 0xfffd, 0xfffd, 0xfffd, 0xcad8, 0xcad9,
+  0xcada, 0xcadb, 0xcadc, 0xcadd, 0xcade, 0xcadf, 0xcae0, 0xcae1,
+  0xcae2, 0xcae3, 0xcae4, 0xcae5, 0xcae6, 0xcae7, 0xcae8, 0xfffd,
+  0xcae9, 0xcaea, 0xcaeb, 0xcaec, 0xcaed, 0xcaee, 0xcaef, 0xcaf0,
+  0xcaf1, 0xcaf2, 0xcaf3, 0xfffd, 0xfffd, 0xfffd, 0xcaf4, 0xcaf5,
+  0xcaf6, 0xcaf7, 0xcaf8, 0xcaf9, 0xcafa, 0xcafb, 0xcafc, 0xcafd,
+  0xcafe, 0xcaff, 0xcb00, 0xcb01, 0xcb02, 0xcb03, 0xcb04, 0xfffd,
+  0xcb05, 0xcb06, 0xcb07, 0xcb08, 0xcb09, 0xcb0a, 0xcb0b, 0xcb0c,
+  0xcb0d, 0xcb0e, 0xcb0f, 0xfffd,
+  /* 0xbe */
+  0xcb10, 0xcb11, 0xcb12, 0xcb13, 0xcb14, 0xcb15, 0xcb16, 0xcb17,
+  0xcb18, 0xcb19, 0xcb1a, 0xcb1b, 0xcb1c, 0xcb1d, 0xcb1e, 0xcb1f,
+  0xcb20, 0xfffd, 0xcb21, 0xcb22, 0xcb23, 0xcb24, 0xcb25, 0xcb26,
+  0xcb27, 0xcb28, 0xcb29, 0xcb2a, 0xcb2b, 0xfffd, 0xfffd, 0xfffd,
+  0xcb2c, 0xcb2d, 0xcb2e, 0xcb2f, 0xcb30, 0xcb31, 0xcb32, 0xcb33,
+  0xcb34, 0xcb35, 0xcb36, 0xcb37, 0xcb38, 0xcb39, 0xcb3a, 0xcb3b,
+  0xcb3c, 0xfffd, 0xcb3d, 0xcb3e, 0xcb3f, 0xcb40, 0xcb41, 0xcb42,
+  0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xfffd, 0xcb48, 0xcb49,
+  0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51,
+  0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, 0xcb58, 0xfffd,
+  0xcb59, 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, 0xcb5e, 0xcb5f, 0xcb60,
+  0xcb61, 0xcb62, 0xcb63, 0xfffd, 0xfffd, 0xfffd, 0xcb64, 0xcb65,
+  0xcb66, 0xcb67, 0xcb68, 0xcb69, 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d,
+  0xcb6e, 0xcb6f, 0xcb70, 0xcb71, 0xcb72, 0xcb73, 0xcb74, 0xfffd,
+  0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79, 0xcb7a, 0xcb7b, 0xcb7c,
+  0xcb7d, 0xcb7e, 0xcb7f, 0xfffd, 0xfffd, 0xfffd, 0xcb80, 0xcb81,
+  0xcb82, 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89,
+  0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xfffd,
+  0xcb91, 0xcb92, 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98,
+  0xcb99, 0xcb9a, 0xcb9b, 0xfffd, 0xfffd, 0xfffd, 0xcb9c, 0xcb9d,
+  0xcb9e, 0xcb9f, 0xcba0, 0xcba1, 0xcba2, 0xcba3, 0xcba4, 0xcba5,
+  0xcba6, 0xcba7, 0xcba8, 0xcba9, 0xcbaa, 0xcbab, 0xcbac, 0xfffd,
+  0xcbad, 0xcbae, 0xcbaf, 0xcbb0, 0xcbb1, 0xcbb2, 0xcbb3, 0xcbb4,
+  0xcbb5, 0xcbb6, 0xcbb7, 0xfffd,
+  /* 0xbf */
+  0xcbb8, 0xcbb9, 0xcbba, 0xcbbb, 0xcbbc, 0xcbbd, 0xcbbe, 0xcbbf,
+  0xcbc0, 0xcbc1, 0xcbc2, 0xcbc3, 0xcbc4, 0xcbc5, 0xcbc6, 0xcbc7,
+  0xcbc8, 0xfffd, 0xcbc9, 0xcbca, 0xcbcb, 0xcbcc, 0xcbcd, 0xcbce,
+  0xcbcf, 0xcbd0, 0xcbd1, 0xcbd2, 0xcbd3, 0xfffd, 0xfffd, 0xfffd,
+  0xcbd4, 0xcbd5, 0xcbd6, 0xcbd7, 0xcbd8, 0xcbd9, 0xcbda, 0xcbdb,
+  0xcbdc, 0xcbdd, 0xcbde, 0xcbdf, 0xcbe0, 0xcbe1, 0xcbe2, 0xcbe3,
+  0xcbe4, 0xfffd, 0xcbe5, 0xcbe6, 0xcbe7, 0xcbe8, 0xcbe9, 0xcbea,
+  0xcbeb, 0xcbec, 0xcbed, 0xcbee, 0xcbef, 0xfffd, 0xcbf0, 0xcbf1,
+  0xcbf2, 0xcbf3, 0xcbf4, 0xcbf5, 0xcbf6, 0xcbf7, 0xcbf8, 0xcbf9,
+  0xcbfa, 0xcbfb, 0xcbfc, 0xcbfd, 0xcbfe, 0xcbff, 0xcc00, 0xfffd,
+  0xcc01, 0xcc02, 0xcc03, 0xcc04, 0xcc05, 0xcc06, 0xcc07, 0xcc08,
+  0xcc09, 0xcc0a, 0xcc0b, 0xfffd, 0xfffd, 0xfffd, 0xcc0c, 0xcc0d,
+  0xcc0e, 0xcc0f, 0xcc10, 0xcc11, 0xcc12, 0xcc13, 0xcc14, 0xcc15,
+  0xcc16, 0xcc17, 0xcc18, 0xcc19, 0xcc1a, 0xcc1b, 0xcc1c, 0xfffd,
+  0xcc1d, 0xcc1e, 0xcc1f, 0xcc20, 0xcc21, 0xcc22, 0xcc23, 0xcc24,
+  0xcc25, 0xcc26, 0xcc27, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xc0 */
+  0x314a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xcc28, 0xcc29, 0xcc2a, 0xcc2b, 0xcc2c, 0xcc2d, 0xcc2e, 0xcc2f,
+  0xcc30, 0xcc31, 0xcc32, 0xcc33, 0xcc34, 0xcc35, 0xcc36, 0xcc37,
+  0xcc38, 0xfffd, 0xcc39, 0xcc3a, 0xcc3b, 0xcc3c, 0xcc3d, 0xcc3e,
+  0xcc3f, 0xcc40, 0xcc41, 0xcc42, 0xcc43, 0xfffd, 0xcc44, 0xcc45,
+  0xcc46, 0xcc47, 0xcc48, 0xcc49, 0xcc4a, 0xcc4b, 0xcc4c, 0xcc4d,
+  0xcc4e, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, 0xcc53, 0xcc54, 0xfffd,
+  0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xcc59, 0xcc5a, 0xcc5b, 0xcc5c,
+  0xcc5d, 0xcc5e, 0xcc5f, 0xfffd, 0xfffd, 0xfffd, 0xcc60, 0xcc61,
+  0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69,
+  0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xfffd,
+  0xcc71, 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, 0xcc78,
+  0xcc79, 0xcc7a, 0xcc7b, 0xfffd, 0xfffd, 0xfffd, 0xcc7c, 0xcc7d,
+  0xcc7e, 0xcc7f, 0xcc80, 0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85,
+  0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, 0xcc8b, 0xcc8c, 0xfffd,
+  0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, 0xcc93, 0xcc94,
+  0xcc95, 0xcc96, 0xcc97, 0xfffd, 0xfffd, 0xfffd, 0xcc98, 0xcc99,
+  0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca0, 0xcca1,
+  0xcca2, 0xcca3, 0xcca4, 0xcca5, 0xcca6, 0xcca7, 0xcca8, 0xfffd,
+  0xcca9, 0xccaa, 0xccab, 0xccac, 0xccad, 0xccae, 0xccaf, 0xccb0,
+  0xccb1, 0xccb2, 0xccb3, 0xfffd,
+  /* 0xc1 */
+  0xccb4, 0xccb5, 0xccb6, 0xccb7, 0xccb8, 0xccb9, 0xccba, 0xccbb,
+  0xccbc, 0xccbd, 0xccbe, 0xccbf, 0xccc0, 0xccc1, 0xccc2, 0xccc3,
+  0xccc4, 0xfffd, 0xccc5, 0xccc6, 0xccc7, 0xccc8, 0xccc9, 0xccca,
+  0xcccb, 0xcccc, 0xcccd, 0xccce, 0xcccf, 0xfffd, 0xfffd, 0xfffd,
+  0xccd0, 0xccd1, 0xccd2, 0xccd3, 0xccd4, 0xccd5, 0xccd6, 0xccd7,
+  0xccd8, 0xccd9, 0xccda, 0xccdb, 0xccdc, 0xccdd, 0xccde, 0xccdf,
+  0xcce0, 0xfffd, 0xcce1, 0xcce2, 0xcce3, 0xcce4, 0xcce5, 0xcce6,
+  0xcce7, 0xcce8, 0xcce9, 0xccea, 0xcceb, 0xfffd, 0xccec, 0xcced,
+  0xccee, 0xccef, 0xccf0, 0xccf1, 0xccf2, 0xccf3, 0xccf4, 0xccf5,
+  0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, 0xccfb, 0xccfc, 0xfffd,
+  0xccfd, 0xccfe, 0xccff, 0xcd00, 0xcd01, 0xcd02, 0xcd03, 0xcd04,
+  0xcd05, 0xcd06, 0xcd07, 0xfffd, 0xfffd, 0xfffd, 0xcd08, 0xcd09,
+  0xcd0a, 0xcd0b, 0xcd0c, 0xcd0d, 0xcd0e, 0xcd0f, 0xcd10, 0xcd11,
+  0xcd12, 0xcd13, 0xcd14, 0xcd15, 0xcd16, 0xcd17, 0xcd18, 0xfffd,
+  0xcd19, 0xcd1a, 0xcd1b, 0xcd1c, 0xcd1d, 0xcd1e, 0xcd1f, 0xcd20,
+  0xcd21, 0xcd22, 0xcd23, 0xfffd, 0xfffd, 0xfffd, 0xcd24, 0xcd25,
+  0xcd26, 0xcd27, 0xcd28, 0xcd29, 0xcd2a, 0xcd2b, 0xcd2c, 0xcd2d,
+  0xcd2e, 0xcd2f, 0xcd30, 0xcd31, 0xcd32, 0xcd33, 0xcd34, 0xfffd,
+  0xcd35, 0xcd36, 0xcd37, 0xcd38, 0xcd39, 0xcd3a, 0xcd3b, 0xcd3c,
+  0xcd3d, 0xcd3e, 0xcd3f, 0xfffd, 0xfffd, 0xfffd, 0xcd40, 0xcd41,
+  0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49,
+  0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xfffd,
+  0xcd51, 0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58,
+  0xcd59, 0xcd5a, 0xcd5b, 0xfffd,
+  /* 0xc2 */
+  0xcd5c, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61, 0xcd62, 0xcd63,
+  0xcd64, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, 0xcd6a, 0xcd6b,
+  0xcd6c, 0xfffd, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71, 0xcd72,
+  0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xfffd, 0xfffd, 0xfffd,
+  0xcd78, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, 0xcd7f,
+  0xcd80, 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87,
+  0xcd88, 0xfffd, 0xcd89, 0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e,
+  0xcd8f, 0xcd90, 0xcd91, 0xcd92, 0xcd93, 0xfffd, 0xcd94, 0xcd95,
+  0xcd96, 0xcd97, 0xcd98, 0xcd99, 0xcd9a, 0xcd9b, 0xcd9c, 0xcd9d,
+  0xcd9e, 0xcd9f, 0xcda0, 0xcda1, 0xcda2, 0xcda3, 0xcda4, 0xfffd,
+  0xcda5, 0xcda6, 0xcda7, 0xcda8, 0xcda9, 0xcdaa, 0xcdab, 0xcdac,
+  0xcdad, 0xcdae, 0xcdaf, 0xfffd, 0xfffd, 0xfffd, 0xcdb0, 0xcdb1,
+  0xcdb2, 0xcdb3, 0xcdb4, 0xcdb5, 0xcdb6, 0xcdb7, 0xcdb8, 0xcdb9,
+  0xcdba, 0xcdbb, 0xcdbc, 0xcdbd, 0xcdbe, 0xcdbf, 0xcdc0, 0xfffd,
+  0xcdc1, 0xcdc2, 0xcdc3, 0xcdc4, 0xcdc5, 0xcdc6, 0xcdc7, 0xcdc8,
+  0xcdc9, 0xcdca, 0xcdcb, 0xfffd, 0xfffd, 0xfffd, 0xcdcc, 0xcdcd,
+  0xcdce, 0xcdcf, 0xcdd0, 0xcdd1, 0xcdd2, 0xcdd3, 0xcdd4, 0xcdd5,
+  0xcdd6, 0xcdd7, 0xcdd8, 0xcdd9, 0xcdda, 0xcddb, 0xcddc, 0xfffd,
+  0xcddd, 0xcdde, 0xcddf, 0xcde0, 0xcde1, 0xcde2, 0xcde3, 0xcde4,
+  0xcde5, 0xcde6, 0xcde7, 0xfffd, 0xfffd, 0xfffd, 0xcde8, 0xcde9,
+  0xcdea, 0xcdeb, 0xcdec, 0xcded, 0xcdee, 0xcdef, 0xcdf0, 0xcdf1,
+  0xcdf2, 0xcdf3, 0xcdf4, 0xcdf5, 0xcdf6, 0xcdf7, 0xcdf8, 0xfffd,
+  0xcdf9, 0xcdfa, 0xcdfb, 0xcdfc, 0xcdfd, 0xcdfe, 0xcdff, 0xce00,
+  0xce01, 0xce02, 0xce03, 0xfffd,
+  /* 0xc3 */
+  0xce04, 0xce05, 0xce06, 0xce07, 0xce08, 0xce09, 0xce0a, 0xce0b,
+  0xce0c, 0xce0d, 0xce0e, 0xce0f, 0xce10, 0xce11, 0xce12, 0xce13,
+  0xce14, 0xfffd, 0xce15, 0xce16, 0xce17, 0xce18, 0xce19, 0xce1a,
+  0xce1b, 0xce1c, 0xce1d, 0xce1e, 0xce1f, 0xfffd, 0xfffd, 0xfffd,
+  0xce20, 0xce21, 0xce22, 0xce23, 0xce24, 0xce25, 0xce26, 0xce27,
+  0xce28, 0xce29, 0xce2a, 0xce2b, 0xce2c, 0xce2d, 0xce2e, 0xce2f,
+  0xce30, 0xfffd, 0xce31, 0xce32, 0xce33, 0xce34, 0xce35, 0xce36,
+  0xce37, 0xce38, 0xce39, 0xce3a, 0xce3b, 0xfffd, 0xce3c, 0xce3d,
+  0xce3e, 0xce3f, 0xce40, 0xce41, 0xce42, 0xce43, 0xce44, 0xce45,
+  0xce46, 0xce47, 0xce48, 0xce49, 0xce4a, 0xce4b, 0xce4c, 0xfffd,
+  0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51, 0xce52, 0xce53, 0xce54,
+  0xce55, 0xce56, 0xce57, 0xfffd, 0xfffd, 0xfffd, 0xce58, 0xce59,
+  0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xce5f, 0xce60, 0xce61,
+  0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67, 0xce68, 0xfffd,
+  0xce69, 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, 0xce70,
+  0xce71, 0xce72, 0xce73, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xc4 */
+  0x314b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, 0xce7a, 0xce7b,
+  0xce7c, 0xce7d, 0xce7e, 0xce7f, 0xce80, 0xce81, 0xce82, 0xce83,
+  0xce84, 0xfffd, 0xce85, 0xce86, 0xce87, 0xce88, 0xce89, 0xce8a,
+  0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xfffd, 0xce90, 0xce91,
+  0xce92, 0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99,
+  0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xfffd,
+  0xcea1, 0xcea2, 0xcea3, 0xcea4, 0xcea5, 0xcea6, 0xcea7, 0xcea8,
+  0xcea9, 0xceaa, 0xceab, 0xfffd, 0xfffd, 0xfffd, 0xceac, 0xcead,
+  0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb2, 0xceb3, 0xceb4, 0xceb5,
+  0xceb6, 0xceb7, 0xceb8, 0xceb9, 0xceba, 0xcebb, 0xcebc, 0xfffd,
+  0xcebd, 0xcebe, 0xcebf, 0xcec0, 0xcec1, 0xcec2, 0xcec3, 0xcec4,
+  0xcec5, 0xcec6, 0xcec7, 0xfffd, 0xfffd, 0xfffd, 0xcec8, 0xcec9,
+  0xceca, 0xcecb, 0xcecc, 0xcecd, 0xcece, 0xcecf, 0xced0, 0xced1,
+  0xced2, 0xced3, 0xced4, 0xced5, 0xced6, 0xced7, 0xced8, 0xfffd,
+  0xced9, 0xceda, 0xcedb, 0xcedc, 0xcedd, 0xcede, 0xcedf, 0xcee0,
+  0xcee1, 0xcee2, 0xcee3, 0xfffd, 0xfffd, 0xfffd, 0xcee4, 0xcee5,
+  0xcee6, 0xcee7, 0xcee8, 0xcee9, 0xceea, 0xceeb, 0xceec, 0xceed,
+  0xceee, 0xceef, 0xcef0, 0xcef1, 0xcef2, 0xcef3, 0xcef4, 0xfffd,
+  0xcef5, 0xcef6, 0xcef7, 0xcef8, 0xcef9, 0xcefa, 0xcefb, 0xcefc,
+  0xcefd, 0xcefe, 0xceff, 0xfffd,
+  /* 0xc5 */
+  0xcf00, 0xcf01, 0xcf02, 0xcf03, 0xcf04, 0xcf05, 0xcf06, 0xcf07,
+  0xcf08, 0xcf09, 0xcf0a, 0xcf0b, 0xcf0c, 0xcf0d, 0xcf0e, 0xcf0f,
+  0xcf10, 0xfffd, 0xcf11, 0xcf12, 0xcf13, 0xcf14, 0xcf15, 0xcf16,
+  0xcf17, 0xcf18, 0xcf19, 0xcf1a, 0xcf1b, 0xfffd, 0xfffd, 0xfffd,
+  0xcf1c, 0xcf1d, 0xcf1e, 0xcf1f, 0xcf20, 0xcf21, 0xcf22, 0xcf23,
+  0xcf24, 0xcf25, 0xcf26, 0xcf27, 0xcf28, 0xcf29, 0xcf2a, 0xcf2b,
+  0xcf2c, 0xfffd, 0xcf2d, 0xcf2e, 0xcf2f, 0xcf30, 0xcf31, 0xcf32,
+  0xcf33, 0xcf34, 0xcf35, 0xcf36, 0xcf37, 0xfffd, 0xcf38, 0xcf39,
+  0xcf3a, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf3f, 0xcf40, 0xcf41,
+  0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xfffd,
+  0xcf49, 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50,
+  0xcf51, 0xcf52, 0xcf53, 0xfffd, 0xfffd, 0xfffd, 0xcf54, 0xcf55,
+  0xcf56, 0xcf57, 0xcf58, 0xcf59, 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d,
+  0xcf5e, 0xcf5f, 0xcf60, 0xcf61, 0xcf62, 0xcf63, 0xcf64, 0xfffd,
+  0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69, 0xcf6a, 0xcf6b, 0xcf6c,
+  0xcf6d, 0xcf6e, 0xcf6f, 0xfffd, 0xfffd, 0xfffd, 0xcf70, 0xcf71,
+  0xcf72, 0xcf73, 0xcf74, 0xcf75, 0xcf76, 0xcf77, 0xcf78, 0xcf79,
+  0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf7f, 0xcf80, 0xfffd,
+  0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88,
+  0xcf89, 0xcf8a, 0xcf8b, 0xfffd, 0xfffd, 0xfffd, 0xcf8c, 0xcf8d,
+  0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, 0xcf93, 0xcf94, 0xcf95,
+  0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, 0xcf9b, 0xcf9c, 0xfffd,
+  0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xcfa1, 0xcfa2, 0xcfa3, 0xcfa4,
+  0xcfa5, 0xcfa6, 0xcfa7, 0xfffd,
+  /* 0xc6 */
+  0xcfa8, 0xcfa9, 0xcfaa, 0xcfab, 0xcfac, 0xcfad, 0xcfae, 0xcfaf,
+  0xcfb0, 0xcfb1, 0xcfb2, 0xcfb3, 0xcfb4, 0xcfb5, 0xcfb6, 0xcfb7,
+  0xcfb8, 0xfffd, 0xcfb9, 0xcfba, 0xcfbb, 0xcfbc, 0xcfbd, 0xcfbe,
+  0xcfbf, 0xcfc0, 0xcfc1, 0xcfc2, 0xcfc3, 0xfffd, 0xfffd, 0xfffd,
+  0xcfc4, 0xcfc5, 0xcfc6, 0xcfc7, 0xcfc8, 0xcfc9, 0xcfca, 0xcfcb,
+  0xcfcc, 0xcfcd, 0xcfce, 0xcfcf, 0xcfd0, 0xcfd1, 0xcfd2, 0xcfd3,
+  0xcfd4, 0xfffd, 0xcfd5, 0xcfd6, 0xcfd7, 0xcfd8, 0xcfd9, 0xcfda,
+  0xcfdb, 0xcfdc, 0xcfdd, 0xcfde, 0xcfdf, 0xfffd, 0xcfe0, 0xcfe1,
+  0xcfe2, 0xcfe3, 0xcfe4, 0xcfe5, 0xcfe6, 0xcfe7, 0xcfe8, 0xcfe9,
+  0xcfea, 0xcfeb, 0xcfec, 0xcfed, 0xcfee, 0xcfef, 0xcff0, 0xfffd,
+  0xcff1, 0xcff2, 0xcff3, 0xcff4, 0xcff5, 0xcff6, 0xcff7, 0xcff8,
+  0xcff9, 0xcffa, 0xcffb, 0xfffd, 0xfffd, 0xfffd, 0xcffc, 0xcffd,
+  0xcffe, 0xcfff, 0xd000, 0xd001, 0xd002, 0xd003, 0xd004, 0xd005,
+  0xd006, 0xd007, 0xd008, 0xd009, 0xd00a, 0xd00b, 0xd00c, 0xfffd,
+  0xd00d, 0xd00e, 0xd00f, 0xd010, 0xd011, 0xd012, 0xd013, 0xd014,
+  0xd015, 0xd016, 0xd017, 0xfffd, 0xfffd, 0xfffd, 0xd018, 0xd019,
+  0xd01a, 0xd01b, 0xd01c, 0xd01d, 0xd01e, 0xd01f, 0xd020, 0xd021,
+  0xd022, 0xd023, 0xd024, 0xd025, 0xd026, 0xd027, 0xd028, 0xfffd,
+  0xd029, 0xd02a, 0xd02b, 0xd02c, 0xd02d, 0xd02e, 0xd02f, 0xd030,
+  0xd031, 0xd032, 0xd033, 0xfffd, 0xfffd, 0xfffd, 0xd034, 0xd035,
+  0xd036, 0xd037, 0xd038, 0xd039, 0xd03a, 0xd03b, 0xd03c, 0xd03d,
+  0xd03e, 0xd03f, 0xd040, 0xd041, 0xd042, 0xd043, 0xd044, 0xfffd,
+  0xd045, 0xd046, 0xd047, 0xd048, 0xd049, 0xd04a, 0xd04b, 0xd04c,
+  0xd04d, 0xd04e, 0xd04f, 0xfffd,
+  /* 0xc7 */
+  0xd050, 0xd051, 0xd052, 0xd053, 0xd054, 0xd055, 0xd056, 0xd057,
+  0xd058, 0xd059, 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f,
+  0xd060, 0xfffd, 0xd061, 0xd062, 0xd063, 0xd064, 0xd065, 0xd066,
+  0xd067, 0xd068, 0xd069, 0xd06a, 0xd06b, 0xfffd, 0xfffd, 0xfffd,
+  0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071, 0xd072, 0xd073,
+  0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, 0xd07a, 0xd07b,
+  0xd07c, 0xfffd, 0xd07d, 0xd07e, 0xd07f, 0xd080, 0xd081, 0xd082,
+  0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0xfffd, 0xd088, 0xd089,
+  0xd08a, 0xd08b, 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091,
+  0xd092, 0xd093, 0xd094, 0xd095, 0xd096, 0xd097, 0xd098, 0xfffd,
+  0xd099, 0xd09a, 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0,
+  0xd0a1, 0xd0a2, 0xd0a3, 0xfffd, 0xfffd, 0xfffd, 0xd0a4, 0xd0a5,
+  0xd0a6, 0xd0a7, 0xd0a8, 0xd0a9, 0xd0aa, 0xd0ab, 0xd0ac, 0xd0ad,
+  0xd0ae, 0xd0af, 0xd0b0, 0xd0b1, 0xd0b2, 0xd0b3, 0xd0b4, 0xfffd,
+  0xd0b5, 0xd0b6, 0xd0b7, 0xd0b8, 0xd0b9, 0xd0ba, 0xd0bb, 0xd0bc,
+  0xd0bd, 0xd0be, 0xd0bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xc8 */
+  0x314c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xd0c0, 0xd0c1, 0xd0c2, 0xd0c3, 0xd0c4, 0xd0c5, 0xd0c6, 0xd0c7,
+  0xd0c8, 0xd0c9, 0xd0ca, 0xd0cb, 0xd0cc, 0xd0cd, 0xd0ce, 0xd0cf,
+  0xd0d0, 0xfffd, 0xd0d1, 0xd0d2, 0xd0d3, 0xd0d4, 0xd0d5, 0xd0d6,
+  0xd0d7, 0xd0d8, 0xd0d9, 0xd0da, 0xd0db, 0xfffd, 0xd0dc, 0xd0dd,
+  0xd0de, 0xd0df, 0xd0e0, 0xd0e1, 0xd0e2, 0xd0e3, 0xd0e4, 0xd0e5,
+  0xd0e6, 0xd0e7, 0xd0e8, 0xd0e9, 0xd0ea, 0xd0eb, 0xd0ec, 0xfffd,
+  0xd0ed, 0xd0ee, 0xd0ef, 0xd0f0, 0xd0f1, 0xd0f2, 0xd0f3, 0xd0f4,
+  0xd0f5, 0xd0f6, 0xd0f7, 0xfffd, 0xfffd, 0xfffd, 0xd0f8, 0xd0f9,
+  0xd0fa, 0xd0fb, 0xd0fc, 0xd0fd, 0xd0fe, 0xd0ff, 0xd100, 0xd101,
+  0xd102, 0xd103, 0xd104, 0xd105, 0xd106, 0xd107, 0xd108, 0xfffd,
+  0xd109, 0xd10a, 0xd10b, 0xd10c, 0xd10d, 0xd10e, 0xd10f, 0xd110,
+  0xd111, 0xd112, 0xd113, 0xfffd, 0xfffd, 0xfffd, 0xd114, 0xd115,
+  0xd116, 0xd117, 0xd118, 0xd119, 0xd11a, 0xd11b, 0xd11c, 0xd11d,
+  0xd11e, 0xd11f, 0xd120, 0xd121, 0xd122, 0xd123, 0xd124, 0xfffd,
+  0xd125, 0xd126, 0xd127, 0xd128, 0xd129, 0xd12a, 0xd12b, 0xd12c,
+  0xd12d, 0xd12e, 0xd12f, 0xfffd, 0xfffd, 0xfffd, 0xd130, 0xd131,
+  0xd132, 0xd133, 0xd134, 0xd135, 0xd136, 0xd137, 0xd138, 0xd139,
+  0xd13a, 0xd13b, 0xd13c, 0xd13d, 0xd13e, 0xd13f, 0xd140, 0xfffd,
+  0xd141, 0xd142, 0xd143, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148,
+  0xd149, 0xd14a, 0xd14b, 0xfffd,
+  /* 0xc9 */
+  0xd14c, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151, 0xd152, 0xd153,
+  0xd154, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159, 0xd15a, 0xd15b,
+  0xd15c, 0xfffd, 0xd15d, 0xd15e, 0xd15f, 0xd160, 0xd161, 0xd162,
+  0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xfffd, 0xfffd, 0xfffd,
+  0xd168, 0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f,
+  0xd170, 0xd171, 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177,
+  0xd178, 0xfffd, 0xd179, 0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd17e,
+  0xd17f, 0xd180, 0xd181, 0xd182, 0xd183, 0xfffd, 0xd184, 0xd185,
+  0xd186, 0xd187, 0xd188, 0xd189, 0xd18a, 0xd18b, 0xd18c, 0xd18d,
+  0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192, 0xd193, 0xd194, 0xfffd,
+  0xd195, 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xd19c,
+  0xd19d, 0xd19e, 0xd19f, 0xfffd, 0xfffd, 0xfffd, 0xd1a0, 0xd1a1,
+  0xd1a2, 0xd1a3, 0xd1a4, 0xd1a5, 0xd1a6, 0xd1a7, 0xd1a8, 0xd1a9,
+  0xd1aa, 0xd1ab, 0xd1ac, 0xd1ad, 0xd1ae, 0xd1af, 0xd1b0, 0xfffd,
+  0xd1b1, 0xd1b2, 0xd1b3, 0xd1b4, 0xd1b5, 0xd1b6, 0xd1b7, 0xd1b8,
+  0xd1b9, 0xd1ba, 0xd1bb, 0xfffd, 0xfffd, 0xfffd, 0xd1bc, 0xd1bd,
+  0xd1be, 0xd1bf, 0xd1c0, 0xd1c1, 0xd1c2, 0xd1c3, 0xd1c4, 0xd1c5,
+  0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ca, 0xd1cb, 0xd1cc, 0xfffd,
+  0xd1cd, 0xd1ce, 0xd1cf, 0xd1d0, 0xd1d1, 0xd1d2, 0xd1d3, 0xd1d4,
+  0xd1d5, 0xd1d6, 0xd1d7, 0xfffd, 0xfffd, 0xfffd, 0xd1d8, 0xd1d9,
+  0xd1da, 0xd1db, 0xd1dc, 0xd1dd, 0xd1de, 0xd1df, 0xd1e0, 0xd1e1,
+  0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e7, 0xd1e8, 0xfffd,
+  0xd1e9, 0xd1ea, 0xd1eb, 0xd1ec, 0xd1ed, 0xd1ee, 0xd1ef, 0xd1f0,
+  0xd1f1, 0xd1f2, 0xd1f3, 0xfffd,
+  /* 0xca */
+  0xd1f4, 0xd1f5, 0xd1f6, 0xd1f7, 0xd1f8, 0xd1f9, 0xd1fa, 0xd1fb,
+  0xd1fc, 0xd1fd, 0xd1fe, 0xd1ff, 0xd200, 0xd201, 0xd202, 0xd203,
+  0xd204, 0xfffd, 0xd205, 0xd206, 0xd207, 0xd208, 0xd209, 0xd20a,
+  0xd20b, 0xd20c, 0xd20d, 0xd20e, 0xd20f, 0xfffd, 0xfffd, 0xfffd,
+  0xd210, 0xd211, 0xd212, 0xd213, 0xd214, 0xd215, 0xd216, 0xd217,
+  0xd218, 0xd219, 0xd21a, 0xd21b, 0xd21c, 0xd21d, 0xd21e, 0xd21f,
+  0xd220, 0xfffd, 0xd221, 0xd222, 0xd223, 0xd224, 0xd225, 0xd226,
+  0xd227, 0xd228, 0xd229, 0xd22a, 0xd22b, 0xfffd, 0xd22c, 0xd22d,
+  0xd22e, 0xd22f, 0xd230, 0xd231, 0xd232, 0xd233, 0xd234, 0xd235,
+  0xd236, 0xd237, 0xd238, 0xd239, 0xd23a, 0xd23b, 0xd23c, 0xfffd,
+  0xd23d, 0xd23e, 0xd23f, 0xd240, 0xd241, 0xd242, 0xd243, 0xd244,
+  0xd245, 0xd246, 0xd247, 0xfffd, 0xfffd, 0xfffd, 0xd248, 0xd249,
+  0xd24a, 0xd24b, 0xd24c, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251,
+  0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xfffd,
+  0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, 0xd25e, 0xd25f, 0xd260,
+  0xd261, 0xd262, 0xd263, 0xfffd, 0xfffd, 0xfffd, 0xd264, 0xd265,
+  0xd266, 0xd267, 0xd268, 0xd269, 0xd26a, 0xd26b, 0xd26c, 0xd26d,
+  0xd26e, 0xd26f, 0xd270, 0xd271, 0xd272, 0xd273, 0xd274, 0xfffd,
+  0xd275, 0xd276, 0xd277, 0xd278, 0xd279, 0xd27a, 0xd27b, 0xd27c,
+  0xd27d, 0xd27e, 0xd27f, 0xfffd, 0xfffd, 0xfffd, 0xd280, 0xd281,
+  0xd282, 0xd283, 0xd284, 0xd285, 0xd286, 0xd287, 0xd288, 0xd289,
+  0xd28a, 0xd28b, 0xd28c, 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xfffd,
+  0xd291, 0xd292, 0xd293, 0xd294, 0xd295, 0xd296, 0xd297, 0xd298,
+  0xd299, 0xd29a, 0xd29b, 0xfffd,
+  /* 0xcb */
+  0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd2a1, 0xd2a2, 0xd2a3,
+  0xd2a4, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, 0xd2a9, 0xd2aa, 0xd2ab,
+  0xd2ac, 0xfffd, 0xd2ad, 0xd2ae, 0xd2af, 0xd2b0, 0xd2b1, 0xd2b2,
+  0xd2b3, 0xd2b4, 0xd2b5, 0xd2b6, 0xd2b7, 0xfffd, 0xfffd, 0xfffd,
+  0xd2b8, 0xd2b9, 0xd2ba, 0xd2bb, 0xd2bc, 0xd2bd, 0xd2be, 0xd2bf,
+  0xd2c0, 0xd2c1, 0xd2c2, 0xd2c3, 0xd2c4, 0xd2c5, 0xd2c6, 0xd2c7,
+  0xd2c8, 0xfffd, 0xd2c9, 0xd2ca, 0xd2cb, 0xd2cc, 0xd2cd, 0xd2ce,
+  0xd2cf, 0xd2d0, 0xd2d1, 0xd2d2, 0xd2d3, 0xfffd, 0xd2d4, 0xd2d5,
+  0xd2d6, 0xd2d7, 0xd2d8, 0xd2d9, 0xd2da, 0xd2db, 0xd2dc, 0xd2dd,
+  0xd2de, 0xd2df, 0xd2e0, 0xd2e1, 0xd2e2, 0xd2e3, 0xd2e4, 0xfffd,
+  0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, 0xd2ea, 0xd2eb, 0xd2ec,
+  0xd2ed, 0xd2ee, 0xd2ef, 0xfffd, 0xfffd, 0xfffd, 0xd2f0, 0xd2f1,
+  0xd2f2, 0xd2f3, 0xd2f4, 0xd2f5, 0xd2f6, 0xd2f7, 0xd2f8, 0xd2f9,
+  0xd2fa, 0xd2fb, 0xd2fc, 0xd2fd, 0xd2fe, 0xd2ff, 0xd300, 0xfffd,
+  0xd301, 0xd302, 0xd303, 0xd304, 0xd305, 0xd306, 0xd307, 0xd308,
+  0xd309, 0xd30a, 0xd30b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xcc */
+  0x314d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xd30c, 0xd30d, 0xd30e, 0xd30f, 0xd310, 0xd311, 0xd312, 0xd313,
+  0xd314, 0xd315, 0xd316, 0xd317, 0xd318, 0xd319, 0xd31a, 0xd31b,
+  0xd31c, 0xfffd, 0xd31d, 0xd31e, 0xd31f, 0xd320, 0xd321, 0xd322,
+  0xd323, 0xd324, 0xd325, 0xd326, 0xd327, 0xfffd, 0xd328, 0xd329,
+  0xd32a, 0xd32b, 0xd32c, 0xd32d, 0xd32e, 0xd32f, 0xd330, 0xd331,
+  0xd332, 0xd333, 0xd334, 0xd335, 0xd336, 0xd337, 0xd338, 0xfffd,
+  0xd339, 0xd33a, 0xd33b, 0xd33c, 0xd33d, 0xd33e, 0xd33f, 0xd340,
+  0xd341, 0xd342, 0xd343, 0xfffd, 0xfffd, 0xfffd, 0xd344, 0xd345,
+  0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, 0xd34b, 0xd34c, 0xd34d,
+  0xd34e, 0xd34f, 0xd350, 0xd351, 0xd352, 0xd353, 0xd354, 0xfffd,
+  0xd355, 0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c,
+  0xd35d, 0xd35e, 0xd35f, 0xfffd, 0xfffd, 0xfffd, 0xd360, 0xd361,
+  0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369,
+  0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xfffd,
+  0xd371, 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378,
+  0xd379, 0xd37a, 0xd37b, 0xfffd, 0xfffd, 0xfffd, 0xd37c, 0xd37d,
+  0xd37e, 0xd37f, 0xd380, 0xd381, 0xd382, 0xd383, 0xd384, 0xd385,
+  0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, 0xd38b, 0xd38c, 0xfffd,
+  0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392, 0xd393, 0xd394,
+  0xd395, 0xd396, 0xd397, 0xfffd,
+  /* 0xcd */
+  0xd398, 0xd399, 0xd39a, 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f,
+  0xd3a0, 0xd3a1, 0xd3a2, 0xd3a3, 0xd3a4, 0xd3a5, 0xd3a6, 0xd3a7,
+  0xd3a8, 0xfffd, 0xd3a9, 0xd3aa, 0xd3ab, 0xd3ac, 0xd3ad, 0xd3ae,
+  0xd3af, 0xd3b0, 0xd3b1, 0xd3b2, 0xd3b3, 0xfffd, 0xfffd, 0xfffd,
+  0xd3b4, 0xd3b5, 0xd3b6, 0xd3b7, 0xd3b8, 0xd3b9, 0xd3ba, 0xd3bb,
+  0xd3bc, 0xd3bd, 0xd3be, 0xd3bf, 0xd3c0, 0xd3c1, 0xd3c2, 0xd3c3,
+  0xd3c4, 0xfffd, 0xd3c5, 0xd3c6, 0xd3c7, 0xd3c8, 0xd3c9, 0xd3ca,
+  0xd3cb, 0xd3cc, 0xd3cd, 0xd3ce, 0xd3cf, 0xfffd, 0xd3d0, 0xd3d1,
+  0xd3d2, 0xd3d3, 0xd3d4, 0xd3d5, 0xd3d6, 0xd3d7, 0xd3d8, 0xd3d9,
+  0xd3da, 0xd3db, 0xd3dc, 0xd3dd, 0xd3de, 0xd3df, 0xd3e0, 0xfffd,
+  0xd3e1, 0xd3e2, 0xd3e3, 0xd3e4, 0xd3e5, 0xd3e6, 0xd3e7, 0xd3e8,
+  0xd3e9, 0xd3ea, 0xd3eb, 0xfffd, 0xfffd, 0xfffd, 0xd3ec, 0xd3ed,
+  0xd3ee, 0xd3ef, 0xd3f0, 0xd3f1, 0xd3f2, 0xd3f3, 0xd3f4, 0xd3f5,
+  0xd3f6, 0xd3f7, 0xd3f8, 0xd3f9, 0xd3fa, 0xd3fb, 0xd3fc, 0xfffd,
+  0xd3fd, 0xd3fe, 0xd3ff, 0xd400, 0xd401, 0xd402, 0xd403, 0xd404,
+  0xd405, 0xd406, 0xd407, 0xfffd, 0xfffd, 0xfffd, 0xd408, 0xd409,
+  0xd40a, 0xd40b, 0xd40c, 0xd40d, 0xd40e, 0xd40f, 0xd410, 0xd411,
+  0xd412, 0xd413, 0xd414, 0xd415, 0xd416, 0xd417, 0xd418, 0xfffd,
+  0xd419, 0xd41a, 0xd41b, 0xd41c, 0xd41d, 0xd41e, 0xd41f, 0xd420,
+  0xd421, 0xd422, 0xd423, 0xfffd, 0xfffd, 0xfffd, 0xd424, 0xd425,
+  0xd426, 0xd427, 0xd428, 0xd429, 0xd42a, 0xd42b, 0xd42c, 0xd42d,
+  0xd42e, 0xd42f, 0xd430, 0xd431, 0xd432, 0xd433, 0xd434, 0xfffd,
+  0xd435, 0xd436, 0xd437, 0xd438, 0xd439, 0xd43a, 0xd43b, 0xd43c,
+  0xd43d, 0xd43e, 0xd43f, 0xfffd,
+  /* 0xce */
+  0xd440, 0xd441, 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447,
+  0xd448, 0xd449, 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f,
+  0xd450, 0xfffd, 0xd451, 0xd452, 0xd453, 0xd454, 0xd455, 0xd456,
+  0xd457, 0xd458, 0xd459, 0xd45a, 0xd45b, 0xfffd, 0xfffd, 0xfffd,
+  0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xd460, 0xd461, 0xd462, 0xd463,
+  0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469, 0xd46a, 0xd46b,
+  0xd46c, 0xfffd, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471, 0xd472,
+  0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xfffd, 0xd478, 0xd479,
+  0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd47f, 0xd480, 0xd481,
+  0xd482, 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, 0xfffd,
+  0xd489, 0xd48a, 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490,
+  0xd491, 0xd492, 0xd493, 0xfffd, 0xfffd, 0xfffd, 0xd494, 0xd495,
+  0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, 0xd49b, 0xd49c, 0xd49d,
+  0xd49e, 0xd49f, 0xd4a0, 0xd4a1, 0xd4a2, 0xd4a3, 0xd4a4, 0xfffd,
+  0xd4a5, 0xd4a6, 0xd4a7, 0xd4a8, 0xd4a9, 0xd4aa, 0xd4ab, 0xd4ac,
+  0xd4ad, 0xd4ae, 0xd4af, 0xfffd, 0xfffd, 0xfffd, 0xd4b0, 0xd4b1,
+  0xd4b2, 0xd4b3, 0xd4b4, 0xd4b5, 0xd4b6, 0xd4b7, 0xd4b8, 0xd4b9,
+  0xd4ba, 0xd4bb, 0xd4bc, 0xd4bd, 0xd4be, 0xd4bf, 0xd4c0, 0xfffd,
+  0xd4c1, 0xd4c2, 0xd4c3, 0xd4c4, 0xd4c5, 0xd4c6, 0xd4c7, 0xd4c8,
+  0xd4c9, 0xd4ca, 0xd4cb, 0xfffd, 0xfffd, 0xfffd, 0xd4cc, 0xd4cd,
+  0xd4ce, 0xd4cf, 0xd4d0, 0xd4d1, 0xd4d2, 0xd4d3, 0xd4d4, 0xd4d5,
+  0xd4d6, 0xd4d7, 0xd4d8, 0xd4d9, 0xd4da, 0xd4db, 0xd4dc, 0xfffd,
+  0xd4dd, 0xd4de, 0xd4df, 0xd4e0, 0xd4e1, 0xd4e2, 0xd4e3, 0xd4e4,
+  0xd4e5, 0xd4e6, 0xd4e7, 0xfffd,
+  /* 0xcf */
+  0xd4e8, 0xd4e9, 0xd4ea, 0xd4eb, 0xd4ec, 0xd4ed, 0xd4ee, 0xd4ef,
+  0xd4f0, 0xd4f1, 0xd4f2, 0xd4f3, 0xd4f4, 0xd4f5, 0xd4f6, 0xd4f7,
+  0xd4f8, 0xfffd, 0xd4f9, 0xd4fa, 0xd4fb, 0xd4fc, 0xd4fd, 0xd4fe,
+  0xd4ff, 0xd500, 0xd501, 0xd502, 0xd503, 0xfffd, 0xfffd, 0xfffd,
+  0xd504, 0xd505, 0xd506, 0xd507, 0xd508, 0xd509, 0xd50a, 0xd50b,
+  0xd50c, 0xd50d, 0xd50e, 0xd50f, 0xd510, 0xd511, 0xd512, 0xd513,
+  0xd514, 0xfffd, 0xd515, 0xd516, 0xd517, 0xd518, 0xd519, 0xd51a,
+  0xd51b, 0xd51c, 0xd51d, 0xd51e, 0xd51f, 0xfffd, 0xd520, 0xd521,
+  0xd522, 0xd523, 0xd524, 0xd525, 0xd526, 0xd527, 0xd528, 0xd529,
+  0xd52a, 0xd52b, 0xd52c, 0xd52d, 0xd52e, 0xd52f, 0xd530, 0xfffd,
+  0xd531, 0xd532, 0xd533, 0xd534, 0xd535, 0xd536, 0xd537, 0xd538,
+  0xd539, 0xd53a, 0xd53b, 0xfffd, 0xfffd, 0xfffd, 0xd53c, 0xd53d,
+  0xd53e, 0xd53f, 0xd540, 0xd541, 0xd542, 0xd543, 0xd544, 0xd545,
+  0xd546, 0xd547, 0xd548, 0xd549, 0xd54a, 0xd54b, 0xd54c, 0xfffd,
+  0xd54d, 0xd54e, 0xd54f, 0xd550, 0xd551, 0xd552, 0xd553, 0xd554,
+  0xd555, 0xd556, 0xd557, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xd0 */
+  0x314e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xd558, 0xd559, 0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, 0xd55f,
+  0xd560, 0xd561, 0xd562, 0xd563, 0xd564, 0xd565, 0xd566, 0xd567,
+  0xd568, 0xfffd, 0xd569, 0xd56a, 0xd56b, 0xd56c, 0xd56d, 0xd56e,
+  0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, 0xfffd, 0xd574, 0xd575,
+  0xd576, 0xd577, 0xd578, 0xd579, 0xd57a, 0xd57b, 0xd57c, 0xd57d,
+  0xd57e, 0xd57f, 0xd580, 0xd581, 0xd582, 0xd583, 0xd584, 0xfffd,
+  0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a, 0xd58b, 0xd58c,
+  0xd58d, 0xd58e, 0xd58f, 0xfffd, 0xfffd, 0xfffd, 0xd590, 0xd591,
+  0xd592, 0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599,
+  0xd59a, 0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xfffd,
+  0xd5a1, 0xd5a2, 0xd5a3, 0xd5a4, 0xd5a5, 0xd5a6, 0xd5a7, 0xd5a8,
+  0xd5a9, 0xd5aa, 0xd5ab, 0xfffd, 0xfffd, 0xfffd, 0xd5ac, 0xd5ad,
+  0xd5ae, 0xd5af, 0xd5b0, 0xd5b1, 0xd5b2, 0xd5b3, 0xd5b4, 0xd5b5,
+  0xd5b6, 0xd5b7, 0xd5b8, 0xd5b9, 0xd5ba, 0xd5bb, 0xd5bc, 0xfffd,
+  0xd5bd, 0xd5be, 0xd5bf, 0xd5c0, 0xd5c1, 0xd5c2, 0xd5c3, 0xd5c4,
+  0xd5c5, 0xd5c6, 0xd5c7, 0xfffd, 0xfffd, 0xfffd, 0xd5c8, 0xd5c9,
+  0xd5ca, 0xd5cb, 0xd5cc, 0xd5cd, 0xd5ce, 0xd5cf, 0xd5d0, 0xd5d1,
+  0xd5d2, 0xd5d3, 0xd5d4, 0xd5d5, 0xd5d6, 0xd5d7, 0xd5d8, 0xfffd,
+  0xd5d9, 0xd5da, 0xd5db, 0xd5dc, 0xd5dd, 0xd5de, 0xd5df, 0xd5e0,
+  0xd5e1, 0xd5e2, 0xd5e3, 0xfffd,
+  /* 0xd1 */
+  0xd5e4, 0xd5e5, 0xd5e6, 0xd5e7, 0xd5e8, 0xd5e9, 0xd5ea, 0xd5eb,
+  0xd5ec, 0xd5ed, 0xd5ee, 0xd5ef, 0xd5f0, 0xd5f1, 0xd5f2, 0xd5f3,
+  0xd5f4, 0xfffd, 0xd5f5, 0xd5f6, 0xd5f7, 0xd5f8, 0xd5f9, 0xd5fa,
+  0xd5fb, 0xd5fc, 0xd5fd, 0xd5fe, 0xd5ff, 0xfffd, 0xfffd, 0xfffd,
+  0xd600, 0xd601, 0xd602, 0xd603, 0xd604, 0xd605, 0xd606, 0xd607,
+  0xd608, 0xd609, 0xd60a, 0xd60b, 0xd60c, 0xd60d, 0xd60e, 0xd60f,
+  0xd610, 0xfffd, 0xd611, 0xd612, 0xd613, 0xd614, 0xd615, 0xd616,
+  0xd617, 0xd618, 0xd619, 0xd61a, 0xd61b, 0xfffd, 0xd61c, 0xd61d,
+  0xd61e, 0xd61f, 0xd620, 0xd621, 0xd622, 0xd623, 0xd624, 0xd625,
+  0xd626, 0xd627, 0xd628, 0xd629, 0xd62a, 0xd62b, 0xd62c, 0xfffd,
+  0xd62d, 0xd62e, 0xd62f, 0xd630, 0xd631, 0xd632, 0xd633, 0xd634,
+  0xd635, 0xd636, 0xd637, 0xfffd, 0xfffd, 0xfffd, 0xd638, 0xd639,
+  0xd63a, 0xd63b, 0xd63c, 0xd63d, 0xd63e, 0xd63f, 0xd640, 0xd641,
+  0xd642, 0xd643, 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xfffd,
+  0xd649, 0xd64a, 0xd64b, 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650,
+  0xd651, 0xd652, 0xd653, 0xfffd, 0xfffd, 0xfffd, 0xd654, 0xd655,
+  0xd656, 0xd657, 0xd658, 0xd659, 0xd65a, 0xd65b, 0xd65c, 0xd65d,
+  0xd65e, 0xd65f, 0xd660, 0xd661, 0xd662, 0xd663, 0xd664, 0xfffd,
+  0xd665, 0xd666, 0xd667, 0xd668, 0xd669, 0xd66a, 0xd66b, 0xd66c,
+  0xd66d, 0xd66e, 0xd66f, 0xfffd, 0xfffd, 0xfffd, 0xd670, 0xd671,
+  0xd672, 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679,
+  0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd67f, 0xd680, 0xfffd,
+  0xd681, 0xd682, 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688,
+  0xd689, 0xd68a, 0xd68b, 0xfffd,
+  /* 0xd2 */
+  0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, 0xd693,
+  0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, 0xd69b,
+  0xd69c, 0xfffd, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd6a1, 0xd6a2,
+  0xd6a3, 0xd6a4, 0xd6a5, 0xd6a6, 0xd6a7, 0xfffd, 0xfffd, 0xfffd,
+  0xd6a8, 0xd6a9, 0xd6aa, 0xd6ab, 0xd6ac, 0xd6ad, 0xd6ae, 0xd6af,
+  0xd6b0, 0xd6b1, 0xd6b2, 0xd6b3, 0xd6b4, 0xd6b5, 0xd6b6, 0xd6b7,
+  0xd6b8, 0xfffd, 0xd6b9, 0xd6ba, 0xd6bb, 0xd6bc, 0xd6bd, 0xd6be,
+  0xd6bf, 0xd6c0, 0xd6c1, 0xd6c2, 0xd6c3, 0xfffd, 0xd6c4, 0xd6c5,
+  0xd6c6, 0xd6c7, 0xd6c8, 0xd6c9, 0xd6ca, 0xd6cb, 0xd6cc, 0xd6cd,
+  0xd6ce, 0xd6cf, 0xd6d0, 0xd6d1, 0xd6d2, 0xd6d3, 0xd6d4, 0xfffd,
+  0xd6d5, 0xd6d6, 0xd6d7, 0xd6d8, 0xd6d9, 0xd6da, 0xd6db, 0xd6dc,
+  0xd6dd, 0xd6de, 0xd6df, 0xfffd, 0xfffd, 0xfffd, 0xd6e0, 0xd6e1,
+  0xd6e2, 0xd6e3, 0xd6e4, 0xd6e5, 0xd6e6, 0xd6e7, 0xd6e8, 0xd6e9,
+  0xd6ea, 0xd6eb, 0xd6ec, 0xd6ed, 0xd6ee, 0xd6ef, 0xd6f0, 0xfffd,
+  0xd6f1, 0xd6f2, 0xd6f3, 0xd6f4, 0xd6f5, 0xd6f6, 0xd6f7, 0xd6f8,
+  0xd6f9, 0xd6fa, 0xd6fb, 0xfffd, 0xfffd, 0xfffd, 0xd6fc, 0xd6fd,
+  0xd6fe, 0xd6ff, 0xd700, 0xd701, 0xd702, 0xd703, 0xd704, 0xd705,
+  0xd706, 0xd707, 0xd708, 0xd709, 0xd70a, 0xd70b, 0xd70c, 0xfffd,
+  0xd70d, 0xd70e, 0xd70f, 0xd710, 0xd711, 0xd712, 0xd713, 0xd714,
+  0xd715, 0xd716, 0xd717, 0xfffd, 0xfffd, 0xfffd, 0xd718, 0xd719,
+  0xd71a, 0xd71b, 0xd71c, 0xd71d, 0xd71e, 0xd71f, 0xd720, 0xd721,
+  0xd722, 0xd723, 0xd724, 0xd725, 0xd726, 0xd727, 0xd728, 0xfffd,
+  0xd729, 0xd72a, 0xd72b, 0xd72c, 0xd72d, 0xd72e, 0xd72f, 0xd730,
+  0xd731, 0xd732, 0xd733, 0xfffd,
+  /* 0xd3 */
+  0xd734, 0xd735, 0xd736, 0xd737, 0xd738, 0xd739, 0xd73a, 0xd73b,
+  0xd73c, 0xd73d, 0xd73e, 0xd73f, 0xd740, 0xd741, 0xd742, 0xd743,
+  0xd744, 0xfffd, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, 0xd74a,
+  0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xfffd, 0xfffd, 0xfffd,
+  0xd750, 0xd751, 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757,
+  0xd758, 0xd759, 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f,
+  0xd760, 0xfffd, 0xd761, 0xd762, 0xd763, 0xd764, 0xd765, 0xd766,
+  0xd767, 0xd768, 0xd769, 0xd76a, 0xd76b, 0xfffd, 0xd76c, 0xd76d,
+  0xd76e, 0xd76f, 0xd770, 0xd771, 0xd772, 0xd773, 0xd774, 0xd775,
+  0xd776, 0xd777, 0xd778, 0xd779, 0xd77a, 0xd77b, 0xd77c, 0xfffd,
+  0xd77d, 0xd77e, 0xd77f, 0xd780, 0xd781, 0xd782, 0xd783, 0xd784,
+  0xd785, 0xd786, 0xd787, 0xfffd, 0xfffd, 0xfffd, 0xd788, 0xd789,
+  0xd78a, 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, 0xd791,
+  0xd792, 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, 0xfffd,
+  0xd799, 0xd79a, 0xd79b, 0xd79c, 0xd79d, 0xd79e, 0xd79f, 0xd7a0,
+  0xd7a1, 0xd7a2, 0xd7a3,
+};
+
+static int
+johab_hangul_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x84 && c1 <= 0xd3)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x41 && c2 < 0x7f) || (c2 >= 0x81 && c2 < 0xff)) {
+        unsigned int i = 188 * (c1 - 0x84) + (c2 - (c2 >= 0x81 ? 0x43 : 0x41));
+        unsigned short wc = 0xfffd;
+        {
+          if (i < 14975)
+            wc = johab_hangul_2uni_page84[i];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short johab_hangul_page31[56] = {
+  0x0000, 0x8841, 0x8c41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, /*0x30-0x37*/
+  0x9841, 0x9c41, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, /*0x38-0x3f*/
+  0x8450, 0xa041, 0xa441, 0xa841, 0x8454, 0xac41, 0xb041, 0xb441, /*0x40-0x47*/
+  0xb841, 0xbc41, 0xc041, 0xc441, 0xc841, 0xcc41, 0xd041, 0x8461, /*0x48-0x4f*/
+  0x8481, 0x84a1, 0x84c1, 0x84e1, 0x8541, 0x8561, 0x8581, 0x85a1, /*0x50-0x57*/
+  0x85c1, 0x85e1, 0x8641, 0x8661, 0x8681, 0x86a1, 0x86c1, 0x86e1, /*0x58-0x5f*/
+  0x8741, 0x8761, 0x8781, 0x87a1, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
+};
+static const unsigned short johab_hangul_pageac[11176] = {
+  0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, 0x8868, /*0x00-0x07*/
+  0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f, 0x8870, /*0x08-0x0f*/
+  0x8871, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, /*0x10-0x17*/
+  0x887a, 0x887b, 0x887c, 0x887d, 0x8881, 0x8882, 0x8883, 0x8884, /*0x18-0x1f*/
+  0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 0x888a, 0x888b, 0x888c, /*0x20-0x27*/
+  0x888d, 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, /*0x28-0x2f*/
+  0x8896, 0x8897, 0x8898, 0x8899, 0x889a, 0x889b, 0x889c, 0x889d, /*0x30-0x37*/
+  0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8, /*0x38-0x3f*/
+  0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0, /*0x40-0x47*/
+  0x88b1, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, 0x88b9, /*0x48-0x4f*/
+  0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88c1, 0x88c2, 0x88c3, 0x88c4, /*0x50-0x57*/
+  0x88c5, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0x88ca, 0x88cb, 0x88cc, /*0x58-0x5f*/
+  0x88cd, 0x88ce, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d4, 0x88d5, /*0x60-0x67*/
+  0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, /*0x68-0x6f*/
+  0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, /*0x70-0x77*/
+  0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, /*0x78-0x7f*/
+  0x88f1, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8, 0x88f9, /*0x80-0x87*/
+  0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x8941, 0x8942, 0x8943, 0x8944, /*0x88-0x8f*/
+  0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894a, 0x894b, 0x894c, /*0x90-0x97*/
+  0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8953, 0x8954, 0x8955, /*0x98-0x9f*/
+  0x8956, 0x8957, 0x8958, 0x8959, 0x895a, 0x895b, 0x895c, 0x895d, /*0xa0-0xa7*/
+  0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, /*0xa8-0xaf*/
+  0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, /*0xb0-0xb7*/
+  0x8971, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, /*0xb8-0xbf*/
+  0x897a, 0x897b, 0x897c, 0x897d, 0x8981, 0x8982, 0x8983, 0x8984, /*0xc0-0xc7*/
+  0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a, 0x898b, 0x898c, /*0xc8-0xcf*/
+  0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8993, 0x8994, 0x8995, /*0xd0-0xd7*/
+  0x8996, 0x8997, 0x8998, 0x8999, 0x899a, 0x899b, 0x899c, 0x899d, /*0xd8-0xdf*/
+  0x89a1, 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, /*0xe0-0xe7*/
+  0x89a9, 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, /*0xe8-0xef*/
+  0x89b1, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, /*0xf0-0xf7*/
+  0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89c1, 0x89c2, 0x89c3, 0x89c4, /*0xf8-0xff*/
+  /* 0xad00 */
+  0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, 0x89cb, 0x89cc, /*0x00-0x07*/
+  0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d3, 0x89d4, 0x89d5, /*0x08-0x0f*/
+  0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da, 0x89db, 0x89dc, 0x89dd, /*0x10-0x17*/
+  0x89e1, 0x89e2, 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, /*0x18-0x1f*/
+  0x89e9, 0x89ea, 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, /*0x20-0x27*/
+  0x89f1, 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, /*0x28-0x2f*/
+  0x89fa, 0x89fb, 0x89fc, 0x89fd, 0x8a41, 0x8a42, 0x8a43, 0x8a44, /*0x30-0x37*/
+  0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, /*0x38-0x3f*/
+  0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a53, 0x8a54, 0x8a55, /*0x40-0x47*/
+  0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, /*0x48-0x4f*/
+  0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, /*0x50-0x57*/
+  0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, /*0x58-0x5f*/
+  0x8a71, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, /*0x60-0x67*/
+  0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a81, 0x8a82, 0x8a83, 0x8a84, /*0x68-0x6f*/
+  0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c, /*0x70-0x77*/
+  0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a93, 0x8a94, 0x8a95, /*0x78-0x7f*/
+  0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c, 0x8a9d, /*0x80-0x87*/
+  0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, /*0x88-0x8f*/
+  0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, /*0x90-0x97*/
+  0x8ab1, 0x8ab3, 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, /*0x98-0x9f*/
+  0x8aba, 0x8abb, 0x8abc, 0x8abd, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4, /*0xa0-0xa7*/
+  0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, /*0xa8-0xaf*/
+  0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, /*0xb0-0xb7*/
+  0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, /*0xb8-0xbf*/
+  0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, /*0xc0-0xc7*/
+  0x8ae9, 0x8aea, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, /*0xc8-0xcf*/
+  0x8af1, 0x8af3, 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, /*0xd0-0xd7*/
+  0x8afa, 0x8afb, 0x8afc, 0x8afd, 0x8b41, 0x8b42, 0x8b43, 0x8b44, /*0xd8-0xdf*/
+  0x8b45, 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, /*0xe0-0xe7*/
+  0x8b4d, 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b53, 0x8b54, 0x8b55, /*0xe8-0xef*/
+  0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, /*0xf0-0xf7*/
+  0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, 0x8b66, 0x8b67, 0x8b68, /*0xf8-0xff*/
+  /* 0xae00 */
+  0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, /*0x00-0x07*/
+  0x8b71, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, /*0x08-0x0f*/
+  0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b81, 0x8b82, 0x8b83, 0x8b84, /*0x10-0x17*/
+  0x8b85, 0x8b86, 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, /*0x18-0x1f*/
+  0x8b8d, 0x8b8e, 0x8b8f, 0x8b90, 0x8b91, 0x8b93, 0x8b94, 0x8b95, /*0x20-0x27*/
+  0x8b96, 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, /*0x28-0x2f*/
+  0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, 0x8ba7, 0x8ba8, /*0x30-0x37*/
+  0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, 0x8baf, 0x8bb0, /*0x38-0x3f*/
+  0x8bb1, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, /*0x40-0x47*/
+  0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8c61, 0x8c62, 0x8c63, 0x8c64, /*0x48-0x4f*/
+  0x8c65, 0x8c66, 0x8c67, 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, /*0x50-0x57*/
+  0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c73, 0x8c74, 0x8c75, /*0x58-0x5f*/
+  0x8c76, 0x8c77, 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, /*0x60-0x67*/
+  0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88, /*0x68-0x6f*/
+  0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, /*0x70-0x77*/
+  0x8c91, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, /*0x78-0x7f*/
+  0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, /*0x80-0x87*/
+  0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, /*0x88-0x8f*/
+  0x8cad, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb3, 0x8cb4, 0x8cb5, /*0x90-0x97*/
+  0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, /*0x98-0x9f*/
+  0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, /*0xa0-0xa7*/
+  0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, /*0xa8-0xaf*/
+  0x8cd1, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, /*0xb0-0xb7*/
+  0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, /*0xb8-0xbf*/
+  0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, /*0xc0-0xc7*/
+  0x8ced, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf3, 0x8cf4, 0x8cf5, /*0xc8-0xcf*/
+  0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, /*0xd0-0xd7*/
+  0x8d41, 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, /*0xd8-0xdf*/
+  0x8d49, 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, /*0xe0-0xe7*/
+  0x8d51, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, /*0xe8-0xef*/
+  0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d61, 0x8d62, 0x8d63, 0x8d64, /*0xf0-0xf7*/
+  0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, 0x8d6a, 0x8d6b, 0x8d6c, /*0xf8-0xff*/
+  /* 0xaf00 */
+  0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, 0x8d73, 0x8d74, 0x8d75, /*0x00-0x07*/
+  0x8d76, 0x8d77, 0x8d78, 0x8d79, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, /*0x08-0x0f*/
+  0x8d81, 0x8d82, 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, /*0x10-0x17*/
+  0x8d89, 0x8d8a, 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, /*0x18-0x1f*/
+  0x8d91, 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, /*0x20-0x27*/
+  0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8da1, 0x8da2, 0x8da3, 0x8da4, /*0x28-0x2f*/
+  0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0x8dac, /*0x30-0x37*/
+  0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db3, 0x8db4, 0x8db5, /*0x38-0x3f*/
+  0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, /*0x40-0x47*/
+  0x8dc1, 0x8dc2, 0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, /*0x48-0x4f*/
+  0x8dc9, 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, /*0x50-0x57*/
+  0x8dd1, 0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, /*0x58-0x5f*/
+  0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, 0x8de1, 0x8de2, 0x8de3, 0x8de4, /*0x60-0x67*/
+  0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, 0x8deb, 0x8dec, /*0x68-0x6f*/
+  0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df3, 0x8df4, 0x8df5, /*0x70-0x77*/
+  0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa, 0x8dfb, 0x8dfc, 0x8dfd, /*0x78-0x7f*/
+  0x8e41, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, /*0x80-0x87*/
+  0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, /*0x88-0x8f*/
+  0x8e51, 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, /*0x90-0x97*/
+  0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e61, 0x8e62, 0x8e63, 0x8e64, /*0x98-0x9f*/
+  0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, 0x8e6c, /*0xa0-0xa7*/
+  0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e73, 0x8e74, 0x8e75, /*0xa8-0xaf*/
+  0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7c, 0x8e7d, /*0xb0-0xb7*/
+  0x8e81, 0x8e82, 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0x8e88, /*0xb8-0xbf*/
+  0x8e89, 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e8f, 0x8e90, /*0xc0-0xc7*/
+  0x8e91, 0x8e93, 0x8e94, 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, /*0xc8-0xcf*/
+  0x8e9a, 0x8e9b, 0x8e9c, 0x8e9d, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, /*0xd0-0xd7*/
+  0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, /*0xd8-0xdf*/
+  0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb3, 0x8eb4, 0x8eb5, /*0xe0-0xe7*/
+  0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, 0x8ebd, /*0xe8-0xef*/
+  0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, /*0xf0-0xf7*/
+  0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, /*0xf8-0xff*/
+  /* 0xb000 */
+  0x8ed1, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, /*0x00-0x07*/
+  0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, /*0x08-0x0f*/
+  0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, /*0x10-0x17*/
+  0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef3, 0x8ef4, 0x8ef5, /*0x18-0x1f*/
+  0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, /*0x20-0x27*/
+  0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, 0x8f48, /*0x28-0x2f*/
+  0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, /*0x30-0x37*/
+  0x8f51, 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, /*0x38-0x3f*/
+  0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d, 0x8f61, 0x8f62, 0x8f63, 0x8f64, /*0x40-0x47*/
+  0x8f65, 0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, /*0x48-0x4f*/
+  0x8f6d, 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f73, 0x8f74, 0x8f75, /*0x50-0x57*/
+  0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d, /*0x58-0x5f*/
+  0x8f81, 0x8f82, 0x8f83, 0x8f84, 0x8f85, 0x8f86, 0x8f87, 0x8f88, /*0x60-0x67*/
+  0x8f89, 0x8f8a, 0x8f8b, 0x8f8c, 0x8f8d, 0x8f8e, 0x8f8f, 0x8f90, /*0x68-0x6f*/
+  0x8f91, 0x8f93, 0x8f94, 0x8f95, 0x8f96, 0x8f97, 0x8f98, 0x8f99, /*0x70-0x77*/
+  0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, /*0x78-0x7f*/
+  0x8fa5, 0x8fa6, 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, /*0x80-0x87*/
+  0x8fad, 0x8fae, 0x8faf, 0x8fb0, 0x8fb1, 0x8fb3, 0x8fb4, 0x8fb5, /*0x88-0x8f*/
+  0x8fb6, 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, /*0x90-0x97*/
+  0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, 0x9068, /*0x98-0x9f*/
+  0x9069, 0x906a, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f, 0x9070, /*0xa0-0xa7*/
+  0x9071, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, /*0xa8-0xaf*/
+  0x907a, 0x907b, 0x907c, 0x907d, 0x9081, 0x9082, 0x9083, 0x9084, /*0xb0-0xb7*/
+  0x9085, 0x9086, 0x9087, 0x9088, 0x9089, 0x908a, 0x908b, 0x908c, /*0xb8-0xbf*/
+  0x908d, 0x908e, 0x908f, 0x9090, 0x9091, 0x9093, 0x9094, 0x9095, /*0xc0-0xc7*/
+  0x9096, 0x9097, 0x9098, 0x9099, 0x909a, 0x909b, 0x909c, 0x909d, /*0xc8-0xcf*/
+  0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8, /*0xd0-0xd7*/
+  0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0, /*0xd8-0xdf*/
+  0x90b1, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8, 0x90b9, /*0xe0-0xe7*/
+  0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90c1, 0x90c2, 0x90c3, 0x90c4, /*0xe8-0xef*/
+  0x90c5, 0x90c6, 0x90c7, 0x90c8, 0x90c9, 0x90ca, 0x90cb, 0x90cc, /*0xf0-0xf7*/
+  0x90cd, 0x90ce, 0x90cf, 0x90d0, 0x90d1, 0x90d3, 0x90d4, 0x90d5, /*0xf8-0xff*/
+  /* 0xb100 */
+  0x90d6, 0x90d7, 0x90d8, 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, /*0x00-0x07*/
+  0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8, /*0x08-0x0f*/
+  0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, /*0x10-0x17*/
+  0x90f1, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8, 0x90f9, /*0x18-0x1f*/
+  0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x9141, 0x9142, 0x9143, 0x9144, /*0x20-0x27*/
+  0x9145, 0x9146, 0x9147, 0x9148, 0x9149, 0x914a, 0x914b, 0x914c, /*0x28-0x2f*/
+  0x914d, 0x914e, 0x914f, 0x9150, 0x9151, 0x9153, 0x9154, 0x9155, /*0x30-0x37*/
+  0x9156, 0x9157, 0x9158, 0x9159, 0x915a, 0x915b, 0x915c, 0x915d, /*0x38-0x3f*/
+  0x9161, 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, /*0x40-0x47*/
+  0x9169, 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, /*0x48-0x4f*/
+  0x9171, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, /*0x50-0x57*/
+  0x917a, 0x917b, 0x917c, 0x917d, 0x9181, 0x9182, 0x9183, 0x9184, /*0x58-0x5f*/
+  0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a, 0x918b, 0x918c, /*0x60-0x67*/
+  0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9193, 0x9194, 0x9195, /*0x68-0x6f*/
+  0x9196, 0x9197, 0x9198, 0x9199, 0x919a, 0x919b, 0x919c, 0x919d, /*0x70-0x77*/
+  0x91a1, 0x91a2, 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, /*0x78-0x7f*/
+  0x91a9, 0x91aa, 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, /*0x80-0x87*/
+  0x91b1, 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, /*0x88-0x8f*/
+  0x91ba, 0x91bb, 0x91bc, 0x91bd, 0x91c1, 0x91c2, 0x91c3, 0x91c4, /*0x90-0x97*/
+  0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, 0x91cb, 0x91cc, /*0x98-0x9f*/
+  0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d3, 0x91d4, 0x91d5, /*0xa0-0xa7*/
+  0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dc, 0x91dd, /*0xa8-0xaf*/
+  0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, /*0xb0-0xb7*/
+  0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, /*0xb8-0xbf*/
+  0x91f1, 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, /*0xc0-0xc7*/
+  0x91fa, 0x91fb, 0x91fc, 0x91fd, 0x9241, 0x9242, 0x9243, 0x9244, /*0xc8-0xcf*/
+  0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, /*0xd0-0xd7*/
+  0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9253, 0x9254, 0x9255, /*0xd8-0xdf*/
+  0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, /*0xe0-0xe7*/
+  0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, /*0xe8-0xef*/
+  0x9269, 0x926a, 0x926b, 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, /*0xf0-0xf7*/
+  0x9271, 0x9273, 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, /*0xf8-0xff*/
+  /* 0xb200 */
+  0x927a, 0x927b, 0x927c, 0x927d, 0x9281, 0x9282, 0x9283, 0x9284, /*0x00-0x07*/
+  0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, /*0x08-0x0f*/
+  0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9293, 0x9294, 0x9295, /*0x10-0x17*/
+  0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, /*0x18-0x1f*/
+  0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, 0x92a8, /*0x20-0x27*/
+  0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92ae, 0x92af, 0x92b0, /*0x28-0x2f*/
+  0x92b1, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, /*0x30-0x37*/
+  0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92c1, 0x92c2, 0x92c3, 0x92c4, /*0x38-0x3f*/
+  0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc, /*0x40-0x47*/
+  0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d3, 0x92d4, 0x92d5, /*0x48-0x4f*/
+  0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, 0x92dd, /*0x50-0x57*/
+  0x92e1, 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, /*0x58-0x5f*/
+  0x92e9, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, /*0x60-0x67*/
+  0x92f1, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, /*0x68-0x6f*/
+  0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x9341, 0x9342, 0x9343, 0x9344, /*0x70-0x77*/
+  0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, /*0x78-0x7f*/
+  0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9353, 0x9354, 0x9355, /*0x80-0x87*/
+  0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d, /*0x88-0x8f*/
+  0x9361, 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, /*0x90-0x97*/
+  0x9369, 0x936a, 0x936b, 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, /*0x98-0x9f*/
+  0x9371, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, /*0xa0-0xa7*/
+  0x937a, 0x937b, 0x937c, 0x937d, 0x9381, 0x9382, 0x9383, 0x9384, /*0xa8-0xaf*/
+  0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, /*0xb0-0xb7*/
+  0x938d, 0x938e, 0x938f, 0x9390, 0x9391, 0x9393, 0x9394, 0x9395, /*0xb8-0xbf*/
+  0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, /*0xc0-0xc7*/
+  0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0x93a7, 0x93a8, /*0xc8-0xcf*/
+  0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, 0x93af, 0x93b0, /*0xd0-0xd7*/
+  0x93b1, 0x93b3, 0x93b4, 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, /*0xd8-0xdf*/
+  0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x9461, 0x9462, 0x9463, 0x9464, /*0xe0-0xe7*/
+  0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946a, 0x946b, 0x946c, /*0xe8-0xef*/
+  0x946d, 0x946e, 0x946f, 0x9470, 0x9471, 0x9473, 0x9474, 0x9475, /*0xf0-0xf7*/
+  0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, /*0xf8-0xff*/
+  /* 0xb300 */
+  0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488, /*0x00-0x07*/
+  0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490, /*0x08-0x0f*/
+  0x9491, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, /*0x10-0x17*/
+  0x949a, 0x949b, 0x949c, 0x949d, 0x94a1, 0x94a2, 0x94a3, 0x94a4, /*0x18-0x1f*/
+  0x94a5, 0x94a6, 0x94a7, 0x94a8, 0x94a9, 0x94aa, 0x94ab, 0x94ac, /*0x20-0x27*/
+  0x94ad, 0x94ae, 0x94af, 0x94b0, 0x94b1, 0x94b3, 0x94b4, 0x94b5, /*0x28-0x2f*/
+  0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, /*0x30-0x37*/
+  0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8, /*0x38-0x3f*/
+  0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, /*0x40-0x47*/
+  0x94d1, 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8, 0x94d9, /*0x48-0x4f*/
+  0x94da, 0x94db, 0x94dc, 0x94dd, 0x94e1, 0x94e2, 0x94e3, 0x94e4, /*0x50-0x57*/
+  0x94e5, 0x94e6, 0x94e7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0x94ec, /*0x58-0x5f*/
+  0x94ed, 0x94ee, 0x94ef, 0x94f0, 0x94f1, 0x94f3, 0x94f4, 0x94f5, /*0x60-0x67*/
+  0x94f6, 0x94f7, 0x94f8, 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, /*0x68-0x6f*/
+  0x9541, 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, /*0x70-0x77*/
+  0x9549, 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, /*0x78-0x7f*/
+  0x9551, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, /*0x80-0x87*/
+  0x955a, 0x955b, 0x955c, 0x955d, 0x9561, 0x9562, 0x9563, 0x9564, /*0x88-0x8f*/
+  0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, /*0x90-0x97*/
+  0x956d, 0x956e, 0x956f, 0x9570, 0x9571, 0x9573, 0x9574, 0x9575, /*0x98-0x9f*/
+  0x9576, 0x9577, 0x9578, 0x9579, 0x957a, 0x957b, 0x957c, 0x957d, /*0xa0-0xa7*/
+  0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, /*0xa8-0xaf*/
+  0x9589, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, /*0xb0-0xb7*/
+  0x9591, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, /*0xb8-0xbf*/
+  0x959a, 0x959b, 0x959c, 0x959d, 0x95a1, 0x95a2, 0x95a3, 0x95a4, /*0xc0-0xc7*/
+  0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab, 0x95ac, /*0xc8-0xcf*/
+  0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b3, 0x95b4, 0x95b5, /*0xd0-0xd7*/
+  0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0x95bd, /*0xd8-0xdf*/
+  0x95c1, 0x95c2, 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, /*0xe0-0xe7*/
+  0x95c9, 0x95ca, 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, /*0xe8-0xef*/
+  0x95d1, 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, /*0xf0-0xf7*/
+  0x95da, 0x95db, 0x95dc, 0x95dd, 0x95e1, 0x95e2, 0x95e3, 0x95e4, /*0xf8-0xff*/
+  /* 0xb400 */
+  0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, /*0x00-0x07*/
+  0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f3, 0x95f4, 0x95f5, /*0x08-0x0f*/
+  0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, 0x95fb, 0x95fc, 0x95fd, /*0x10-0x17*/
+  0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, /*0x18-0x1f*/
+  0x9649, 0x964a, 0x964b, 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, /*0x20-0x27*/
+  0x9651, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, /*0x28-0x2f*/
+  0x965a, 0x965b, 0x965c, 0x965d, 0x9661, 0x9662, 0x9663, 0x9664, /*0x30-0x37*/
+  0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a, 0x966b, 0x966c, /*0x38-0x3f*/
+  0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673, 0x9674, 0x9675, /*0x40-0x47*/
+  0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, /*0x48-0x4f*/
+  0x9681, 0x9682, 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, /*0x50-0x57*/
+  0x9689, 0x968a, 0x968b, 0x968c, 0x968d, 0x968e, 0x968f, 0x9690, /*0x58-0x5f*/
+  0x9691, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, /*0x60-0x67*/
+  0x969a, 0x969b, 0x969c, 0x969d, 0x96a1, 0x96a2, 0x96a3, 0x96a4, /*0x68-0x6f*/
+  0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, /*0x70-0x77*/
+  0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b3, 0x96b4, 0x96b5, /*0x78-0x7f*/
+  0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc, 0x96bd, /*0x80-0x87*/
+  0x96c1, 0x96c2, 0x96c3, 0x96c4, 0x96c5, 0x96c6, 0x96c7, 0x96c8, /*0x88-0x8f*/
+  0x96c9, 0x96ca, 0x96cb, 0x96cc, 0x96cd, 0x96ce, 0x96cf, 0x96d0, /*0x90-0x97*/
+  0x96d1, 0x96d3, 0x96d4, 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, /*0x98-0x9f*/
+  0x96da, 0x96db, 0x96dc, 0x96dd, 0x96e1, 0x96e2, 0x96e3, 0x96e4, /*0xa0-0xa7*/
+  0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec, /*0xa8-0xaf*/
+  0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f3, 0x96f4, 0x96f5, /*0xb0-0xb7*/
+  0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc, 0x96fd, /*0xb8-0xbf*/
+  0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, /*0xc0-0xc7*/
+  0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, 0x9750, /*0xc8-0xcf*/
+  0x9751, 0x9753, 0x9754, 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, /*0xd0-0xd7*/
+  0x975a, 0x975b, 0x975c, 0x975d, 0x9761, 0x9762, 0x9763, 0x9764, /*0xd8-0xdf*/
+  0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, /*0xe0-0xe7*/
+  0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9773, 0x9774, 0x9775, /*0xe8-0xef*/
+  0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d, /*0xf0-0xf7*/
+  0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, 0x9788, /*0xf8-0xff*/
+  /* 0xb500 */
+  0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0x978e, 0x978f, 0x9790, /*0x00-0x07*/
+  0x9791, 0x9793, 0x9794, 0x9795, 0x9796, 0x9797, 0x9798, 0x9799, /*0x08-0x0f*/
+  0x979a, 0x979b, 0x979c, 0x979d, 0x97a1, 0x97a2, 0x97a3, 0x97a4, /*0x10-0x17*/
+  0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, /*0x18-0x1f*/
+  0x97ad, 0x97ae, 0x97af, 0x97b0, 0x97b1, 0x97b3, 0x97b4, 0x97b5, /*0x20-0x27*/
+  0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, /*0x28-0x2f*/
+  0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, /*0x30-0x37*/
+  0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0x9870, /*0x38-0x3f*/
+  0x9871, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, 0x9879, /*0x40-0x47*/
+  0x987a, 0x987b, 0x987c, 0x987d, 0x9881, 0x9882, 0x9883, 0x9884, /*0x48-0x4f*/
+  0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 0x988a, 0x988b, 0x988c, /*0x50-0x57*/
+  0x988d, 0x988e, 0x988f, 0x9890, 0x9891, 0x9893, 0x9894, 0x9895, /*0x58-0x5f*/
+  0x9896, 0x9897, 0x9898, 0x9899, 0x989a, 0x989b, 0x989c, 0x989d, /*0x60-0x67*/
+  0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8, /*0x68-0x6f*/
+  0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, /*0x70-0x77*/
+  0x98b1, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, /*0x78-0x7f*/
+  0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98c1, 0x98c2, 0x98c3, 0x98c4, /*0x80-0x87*/
+  0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, 0x98cc, /*0x88-0x8f*/
+  0x98cd, 0x98ce, 0x98cf, 0x98d0, 0x98d1, 0x98d3, 0x98d4, 0x98d5, /*0x90-0x97*/
+  0x98d6, 0x98d7, 0x98d8, 0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, /*0x98-0x9f*/
+  0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8, /*0xa0-0xa7*/
+  0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0, /*0xa8-0xaf*/
+  0x98f1, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8, 0x98f9, /*0xb0-0xb7*/
+  0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x9941, 0x9942, 0x9943, 0x9944, /*0xb8-0xbf*/
+  0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a, 0x994b, 0x994c, /*0xc0-0xc7*/
+  0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9953, 0x9954, 0x9955, /*0xc8-0xcf*/
+  0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c, 0x995d, /*0xd0-0xd7*/
+  0x9961, 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, /*0xd8-0xdf*/
+  0x9969, 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, /*0xe0-0xe7*/
+  0x9971, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, /*0xe8-0xef*/
+  0x997a, 0x997b, 0x997c, 0x997d, 0x9981, 0x9982, 0x9983, 0x9984, /*0xf0-0xf7*/
+  0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, 0x998b, 0x998c, /*0xf8-0xff*/
+  /* 0xb600 */
+  0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, /*0x00-0x07*/
+  0x9996, 0x9997, 0x9998, 0x9999, 0x999a, 0x999b, 0x999c, 0x999d, /*0x08-0x0f*/
+  0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, /*0x10-0x17*/
+  0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, /*0x18-0x1f*/
+  0x99b1, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, /*0x20-0x27*/
+  0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99c1, 0x99c2, 0x99c3, 0x99c4, /*0x28-0x2f*/
+  0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, /*0x30-0x37*/
+  0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d3, 0x99d4, 0x99d5, /*0x38-0x3f*/
+  0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, /*0x40-0x47*/
+  0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, /*0x48-0x4f*/
+  0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, /*0x50-0x57*/
+  0x99f1, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, /*0x58-0x5f*/
+  0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x9a41, 0x9a42, 0x9a43, 0x9a44, /*0x60-0x67*/
+  0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b, 0x9a4c, /*0x68-0x6f*/
+  0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a53, 0x9a54, 0x9a55, /*0x70-0x77*/
+  0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, /*0x78-0x7f*/
+  0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, /*0x80-0x87*/
+  0x9a69, 0x9a6a, 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, /*0x88-0x8f*/
+  0x9a71, 0x9a73, 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, /*0x90-0x97*/
+  0x9a7a, 0x9a7b, 0x9a7c, 0x9a7d, 0x9a81, 0x9a82, 0x9a83, 0x9a84, /*0x98-0x9f*/
+  0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 0x9a8a, 0x9a8b, 0x9a8c, /*0xa0-0xa7*/
+  0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a93, 0x9a94, 0x9a95, /*0xa8-0xaf*/
+  0x9a96, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c, 0x9a9d, /*0xb0-0xb7*/
+  0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, /*0xb8-0xbf*/
+  0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, 0x9aae, 0x9aaf, 0x9ab0, /*0xc0-0xc7*/
+  0x9ab1, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, /*0xc8-0xcf*/
+  0x9aba, 0x9abb, 0x9abc, 0x9abd, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, /*0xd0-0xd7*/
+  0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc, /*0xd8-0xdf*/
+  0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ad5, /*0xe0-0xe7*/
+  0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add, /*0xe8-0xef*/
+  0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, /*0xf0-0xf7*/
+  0x9ae9, 0x9aea, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0x9aef, 0x9af0, /*0xf8-0xff*/
+  /* 0xb700 */
+  0x9af1, 0x9af3, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, /*0x00-0x07*/
+  0x9afa, 0x9afb, 0x9afc, 0x9afd, 0x9b41, 0x9b42, 0x9b43, 0x9b44, /*0x08-0x0f*/
+  0x9b45, 0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, /*0x10-0x17*/
+  0x9b4d, 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b53, 0x9b54, 0x9b55, /*0x18-0x1f*/
+  0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d, /*0x20-0x27*/
+  0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, /*0x28-0x2f*/
+  0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, /*0x30-0x37*/
+  0x9b71, 0x9b73, 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, /*0x38-0x3f*/
+  0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d, 0x9b81, 0x9b82, 0x9b83, 0x9b84, /*0x40-0x47*/
+  0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, /*0x48-0x4f*/
+  0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b93, 0x9b94, 0x9b95, /*0x50-0x57*/
+  0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, /*0x58-0x5f*/
+  0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, /*0x60-0x67*/
+  0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, /*0x68-0x6f*/
+  0x9bb1, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, /*0x70-0x77*/
+  0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9c61, 0x9c62, 0x9c63, 0x9c64, /*0x78-0x7f*/
+  0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, /*0x80-0x87*/
+  0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c73, 0x9c74, 0x9c75, /*0x88-0x8f*/
+  0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, /*0x90-0x97*/
+  0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88, /*0x98-0x9f*/
+  0x9c89, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, /*0xa0-0xa7*/
+  0x9c91, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, 0x9c98, 0x9c99, /*0xa8-0xaf*/
+  0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, /*0xb0-0xb7*/
+  0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, 0x9ca9, 0x9caa, 0x9cab, 0x9cac, /*0xb8-0xbf*/
+  0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb3, 0x9cb4, 0x9cb5, /*0xc0-0xc7*/
+  0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, /*0xc8-0xcf*/
+  0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, /*0xd0-0xd7*/
+  0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, /*0xd8-0xdf*/
+  0x9cd1, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, 0x9cd9, /*0xe0-0xe7*/
+  0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, /*0xe8-0xef*/
+  0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, /*0xf0-0xf7*/
+  0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf3, 0x9cf4, 0x9cf5, /*0xf8-0xff*/
+  /* 0xb800 */
+  0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, /*0x00-0x07*/
+  0x9d41, 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, /*0x08-0x0f*/
+  0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, /*0x10-0x17*/
+  0x9d51, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, /*0x18-0x1f*/
+  0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d61, 0x9d62, 0x9d63, 0x9d64, /*0x20-0x27*/
+  0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, 0x9d6b, 0x9d6c, /*0x28-0x2f*/
+  0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d73, 0x9d74, 0x9d75, /*0x30-0x37*/
+  0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, /*0x38-0x3f*/
+  0x9d81, 0x9d82, 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, /*0x40-0x47*/
+  0x9d89, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, /*0x48-0x4f*/
+  0x9d91, 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, /*0x50-0x57*/
+  0x9d9a, 0x9d9b, 0x9d9c, 0x9d9d, 0x9da1, 0x9da2, 0x9da3, 0x9da4, /*0x58-0x5f*/
+  0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, 0x9dab, 0x9dac, /*0x60-0x67*/
+  0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db3, 0x9db4, 0x9db5, /*0x68-0x6f*/
+  0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, /*0x70-0x77*/
+  0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, /*0x78-0x7f*/
+  0x9dc9, 0x9dca, 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, /*0x80-0x87*/
+  0x9dd1, 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, /*0x88-0x8f*/
+  0x9dda, 0x9ddb, 0x9ddc, 0x9ddd, 0x9de1, 0x9de2, 0x9de3, 0x9de4, /*0x90-0x97*/
+  0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, /*0x98-0x9f*/
+  0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df3, 0x9df4, 0x9df5, /*0xa0-0xa7*/
+  0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, 0x9dfb, 0x9dfc, 0x9dfd, /*0xa8-0xaf*/
+  0x9e41, 0x9e42, 0x9e43, 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, /*0xb0-0xb7*/
+  0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, /*0xb8-0xbf*/
+  0x9e51, 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, /*0xc0-0xc7*/
+  0x9e5a, 0x9e5b, 0x9e5c, 0x9e5d, 0x9e61, 0x9e62, 0x9e63, 0x9e64, /*0xc8-0xcf*/
+  0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, /*0xd0-0xd7*/
+  0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e73, 0x9e74, 0x9e75, /*0xd8-0xdf*/
+  0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, /*0xe0-0xe7*/
+  0x9e81, 0x9e82, 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e87, 0x9e88, /*0xe8-0xef*/
+  0x9e89, 0x9e8a, 0x9e8b, 0x9e8c, 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, /*0xf0-0xf7*/
+  0x9e91, 0x9e93, 0x9e94, 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, /*0xf8-0xff*/
+  /* 0xb900 */
+  0x9e9a, 0x9e9b, 0x9e9c, 0x9e9d, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, /*0x00-0x07*/
+  0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, /*0x08-0x0f*/
+  0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb3, 0x9eb4, 0x9eb5, /*0x10-0x17*/
+  0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc, 0x9ebd, /*0x18-0x1f*/
+  0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, /*0x20-0x27*/
+  0x9ec9, 0x9eca, 0x9ecb, 0x9ecc, 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, /*0x28-0x2f*/
+  0x9ed1, 0x9ed3, 0x9ed4, 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, /*0x30-0x37*/
+  0x9eda, 0x9edb, 0x9edc, 0x9edd, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4, /*0x38-0x3f*/
+  0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec, /*0x40-0x47*/
+  0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef3, 0x9ef4, 0x9ef5, /*0x48-0x4f*/
+  0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, /*0x50-0x57*/
+  0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f48, /*0x58-0x5f*/
+  0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, /*0x60-0x67*/
+  0x9f51, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, /*0x68-0x6f*/
+  0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f61, 0x9f62, 0x9f63, 0x9f64, /*0x70-0x77*/
+  0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, /*0x78-0x7f*/
+  0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f74, 0x9f75, /*0x80-0x87*/
+  0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, /*0x88-0x8f*/
+  0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, 0x9f87, 0x9f88, /*0x90-0x97*/
+  0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0x9f8f, 0x9f90, /*0x98-0x9f*/
+  0x9f91, 0x9f93, 0x9f94, 0x9f95, 0x9f96, 0x9f97, 0x9f98, 0x9f99, /*0xa0-0xa7*/
+  0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, /*0xa8-0xaf*/
+  0x9fa5, 0x9fa6, 0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, /*0xb0-0xb7*/
+  0x9fad, 0x9fae, 0x9faf, 0x9fb0, 0x9fb1, 0x9fb3, 0x9fb4, 0x9fb5, /*0xb8-0xbf*/
+  0x9fb6, 0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, /*0xc0-0xc7*/
+  0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xa067, 0xa068, /*0xc8-0xcf*/
+  0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f, 0xa070, /*0xd0-0xd7*/
+  0xa071, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, /*0xd8-0xdf*/
+  0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa081, 0xa082, 0xa083, 0xa084, /*0xe0-0xe7*/
+  0xa085, 0xa086, 0xa087, 0xa088, 0xa089, 0xa08a, 0xa08b, 0xa08c, /*0xe8-0xef*/
+  0xa08d, 0xa08e, 0xa08f, 0xa090, 0xa091, 0xa093, 0xa094, 0xa095, /*0xf0-0xf7*/
+  0xa096, 0xa097, 0xa098, 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, /*0xf8-0xff*/
+  /* 0xba00 */
+  0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, /*0x00-0x07*/
+  0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0, /*0x08-0x0f*/
+  0xa0b1, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, 0xa0b9, /*0x10-0x17*/
+  0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, /*0x18-0x1f*/
+  0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, /*0x20-0x27*/
+  0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d3, 0xa0d4, 0xa0d5, /*0x28-0x2f*/
+  0xa0d6, 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, /*0x30-0x37*/
+  0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, /*0x38-0x3f*/
+  0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, /*0x40-0x47*/
+  0xa0f1, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, 0xa0f9, /*0x48-0x4f*/
+  0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa141, 0xa142, 0xa143, 0xa144, /*0x50-0x57*/
+  0xa145, 0xa146, 0xa147, 0xa148, 0xa149, 0xa14a, 0xa14b, 0xa14c, /*0x58-0x5f*/
+  0xa14d, 0xa14e, 0xa14f, 0xa150, 0xa151, 0xa153, 0xa154, 0xa155, /*0x60-0x67*/
+  0xa156, 0xa157, 0xa158, 0xa159, 0xa15a, 0xa15b, 0xa15c, 0xa15d, /*0x68-0x6f*/
+  0xa161, 0xa162, 0xa163, 0xa164, 0xa165, 0xa166, 0xa167, 0xa168, /*0x70-0x77*/
+  0xa169, 0xa16a, 0xa16b, 0xa16c, 0xa16d, 0xa16e, 0xa16f, 0xa170, /*0x78-0x7f*/
+  0xa171, 0xa173, 0xa174, 0xa175, 0xa176, 0xa177, 0xa178, 0xa179, /*0x80-0x87*/
+  0xa17a, 0xa17b, 0xa17c, 0xa17d, 0xa181, 0xa182, 0xa183, 0xa184, /*0x88-0x8f*/
+  0xa185, 0xa186, 0xa187, 0xa188, 0xa189, 0xa18a, 0xa18b, 0xa18c, /*0x90-0x97*/
+  0xa18d, 0xa18e, 0xa18f, 0xa190, 0xa191, 0xa193, 0xa194, 0xa195, /*0x98-0x9f*/
+  0xa196, 0xa197, 0xa198, 0xa199, 0xa19a, 0xa19b, 0xa19c, 0xa19d, /*0xa0-0xa7*/
+  0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, /*0xa8-0xaf*/
+  0xa1a9, 0xa1aa, 0xa1ab, 0xa1ac, 0xa1ad, 0xa1ae, 0xa1af, 0xa1b0, /*0xb0-0xb7*/
+  0xa1b1, 0xa1b3, 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, /*0xb8-0xbf*/
+  0xa1ba, 0xa1bb, 0xa1bc, 0xa1bd, 0xa1c1, 0xa1c2, 0xa1c3, 0xa1c4, /*0xc0-0xc7*/
+  0xa1c5, 0xa1c6, 0xa1c7, 0xa1c8, 0xa1c9, 0xa1ca, 0xa1cb, 0xa1cc, /*0xc8-0xcf*/
+  0xa1cd, 0xa1ce, 0xa1cf, 0xa1d0, 0xa1d1, 0xa1d3, 0xa1d4, 0xa1d5, /*0xd0-0xd7*/
+  0xa1d6, 0xa1d7, 0xa1d8, 0xa1d9, 0xa1da, 0xa1db, 0xa1dc, 0xa1dd, /*0xd8-0xdf*/
+  0xa1e1, 0xa1e2, 0xa1e3, 0xa1e4, 0xa1e5, 0xa1e6, 0xa1e7, 0xa1e8, /*0xe0-0xe7*/
+  0xa1e9, 0xa1ea, 0xa1eb, 0xa1ec, 0xa1ed, 0xa1ee, 0xa1ef, 0xa1f0, /*0xe8-0xef*/
+  0xa1f1, 0xa1f3, 0xa1f4, 0xa1f5, 0xa1f6, 0xa1f7, 0xa1f8, 0xa1f9, /*0xf0-0xf7*/
+  0xa1fa, 0xa1fb, 0xa1fc, 0xa1fd, 0xa241, 0xa242, 0xa243, 0xa244, /*0xf8-0xff*/
+  /* 0xbb00 */
+  0xa245, 0xa246, 0xa247, 0xa248, 0xa249, 0xa24a, 0xa24b, 0xa24c, /*0x00-0x07*/
+  0xa24d, 0xa24e, 0xa24f, 0xa250, 0xa251, 0xa253, 0xa254, 0xa255, /*0x08-0x0f*/
+  0xa256, 0xa257, 0xa258, 0xa259, 0xa25a, 0xa25b, 0xa25c, 0xa25d, /*0x10-0x17*/
+  0xa261, 0xa262, 0xa263, 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, /*0x18-0x1f*/
+  0xa269, 0xa26a, 0xa26b, 0xa26c, 0xa26d, 0xa26e, 0xa26f, 0xa270, /*0x20-0x27*/
+  0xa271, 0xa273, 0xa274, 0xa275, 0xa276, 0xa277, 0xa278, 0xa279, /*0x28-0x2f*/
+  0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa281, 0xa282, 0xa283, 0xa284, /*0x30-0x37*/
+  0xa285, 0xa286, 0xa287, 0xa288, 0xa289, 0xa28a, 0xa28b, 0xa28c, /*0x38-0x3f*/
+  0xa28d, 0xa28e, 0xa28f, 0xa290, 0xa291, 0xa293, 0xa294, 0xa295, /*0x40-0x47*/
+  0xa296, 0xa297, 0xa298, 0xa299, 0xa29a, 0xa29b, 0xa29c, 0xa29d, /*0x48-0x4f*/
+  0xa2a1, 0xa2a2, 0xa2a3, 0xa2a4, 0xa2a5, 0xa2a6, 0xa2a7, 0xa2a8, /*0x50-0x57*/
+  0xa2a9, 0xa2aa, 0xa2ab, 0xa2ac, 0xa2ad, 0xa2ae, 0xa2af, 0xa2b0, /*0x58-0x5f*/
+  0xa2b1, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa2b9, /*0x60-0x67*/
+  0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2c1, 0xa2c2, 0xa2c3, 0xa2c4, /*0x68-0x6f*/
+  0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, 0xa2cb, 0xa2cc, /*0x70-0x77*/
+  0xa2cd, 0xa2ce, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d3, 0xa2d4, 0xa2d5, /*0x78-0x7f*/
+  0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, /*0x80-0x87*/
+  0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, /*0x88-0x8f*/
+  0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef, 0xa2f0, /*0x90-0x97*/
+  0xa2f1, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, 0xa2f9, /*0x98-0x9f*/
+  0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa341, 0xa342, 0xa343, 0xa344, /*0xa0-0xa7*/
+  0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, /*0xa8-0xaf*/
+  0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa353, 0xa354, 0xa355, /*0xb0-0xb7*/
+  0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa35c, 0xa35d, /*0xb8-0xbf*/
+  0xa361, 0xa362, 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xa368, /*0xc0-0xc7*/
+  0xa369, 0xa36a, 0xa36b, 0xa36c, 0xa36d, 0xa36e, 0xa36f, 0xa370, /*0xc8-0xcf*/
+  0xa371, 0xa373, 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, /*0xd0-0xd7*/
+  0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa381, 0xa382, 0xa383, 0xa384, /*0xd8-0xdf*/
+  0xa385, 0xa386, 0xa387, 0xa388, 0xa389, 0xa38a, 0xa38b, 0xa38c, /*0xe0-0xe7*/
+  0xa38d, 0xa38e, 0xa38f, 0xa390, 0xa391, 0xa393, 0xa394, 0xa395, /*0xe8-0xef*/
+  0xa396, 0xa397, 0xa398, 0xa399, 0xa39a, 0xa39b, 0xa39c, 0xa39d, /*0xf0-0xf7*/
+  0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, /*0xf8-0xff*/
+  /* 0xbc00 */
+  0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, /*0x00-0x07*/
+  0xa3b1, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, /*0x08-0x0f*/
+  0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa461, 0xa462, 0xa463, 0xa464, /*0x10-0x17*/
+  0xa465, 0xa466, 0xa467, 0xa468, 0xa469, 0xa46a, 0xa46b, 0xa46c, /*0x18-0x1f*/
+  0xa46d, 0xa46e, 0xa46f, 0xa470, 0xa471, 0xa473, 0xa474, 0xa475, /*0x20-0x27*/
+  0xa476, 0xa477, 0xa478, 0xa479, 0xa47a, 0xa47b, 0xa47c, 0xa47d, /*0x28-0x2f*/
+  0xa481, 0xa482, 0xa483, 0xa484, 0xa485, 0xa486, 0xa487, 0xa488, /*0x30-0x37*/
+  0xa489, 0xa48a, 0xa48b, 0xa48c, 0xa48d, 0xa48e, 0xa48f, 0xa490, /*0x38-0x3f*/
+  0xa491, 0xa493, 0xa494, 0xa495, 0xa496, 0xa497, 0xa498, 0xa499, /*0x40-0x47*/
+  0xa49a, 0xa49b, 0xa49c, 0xa49d, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, /*0x48-0x4f*/
+  0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, /*0x50-0x57*/
+  0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, 0xa4b3, 0xa4b4, 0xa4b5, /*0x58-0x5f*/
+  0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, /*0x60-0x67*/
+  0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, /*0x68-0x6f*/
+  0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, /*0x70-0x77*/
+  0xa4d1, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, 0xa4d8, 0xa4d9, /*0x78-0x7f*/
+  0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, /*0x80-0x87*/
+  0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, /*0x88-0x8f*/
+  0xa4ed, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1, 0xa4f3, 0xa4f4, 0xa4f5, /*0x90-0x97*/
+  0xa4f6, 0xa4f7, 0xa4f8, 0xa4f9, 0xa4fa, 0xa4fb, 0xa4fc, 0xa4fd, /*0x98-0x9f*/
+  0xa541, 0xa542, 0xa543, 0xa544, 0xa545, 0xa546, 0xa547, 0xa548, /*0xa0-0xa7*/
+  0xa549, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa54e, 0xa54f, 0xa550, /*0xa8-0xaf*/
+  0xa551, 0xa553, 0xa554, 0xa555, 0xa556, 0xa557, 0xa558, 0xa559, /*0xb0-0xb7*/
+  0xa55a, 0xa55b, 0xa55c, 0xa55d, 0xa561, 0xa562, 0xa563, 0xa564, /*0xb8-0xbf*/
+  0xa565, 0xa566, 0xa567, 0xa568, 0xa569, 0xa56a, 0xa56b, 0xa56c, /*0xc0-0xc7*/
+  0xa56d, 0xa56e, 0xa56f, 0xa570, 0xa571, 0xa573, 0xa574, 0xa575, /*0xc8-0xcf*/
+  0xa576, 0xa577, 0xa578, 0xa579, 0xa57a, 0xa57b, 0xa57c, 0xa57d, /*0xd0-0xd7*/
+  0xa581, 0xa582, 0xa583, 0xa584, 0xa585, 0xa586, 0xa587, 0xa588, /*0xd8-0xdf*/
+  0xa589, 0xa58a, 0xa58b, 0xa58c, 0xa58d, 0xa58e, 0xa58f, 0xa590, /*0xe0-0xe7*/
+  0xa591, 0xa593, 0xa594, 0xa595, 0xa596, 0xa597, 0xa598, 0xa599, /*0xe8-0xef*/
+  0xa59a, 0xa59b, 0xa59c, 0xa59d, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, /*0xf0-0xf7*/
+  0xa5a5, 0xa5a6, 0xa5a7, 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, /*0xf8-0xff*/
+  /* 0xbd00 */
+  0xa5ad, 0xa5ae, 0xa5af, 0xa5b0, 0xa5b1, 0xa5b3, 0xa5b4, 0xa5b5, /*0x00-0x07*/
+  0xa5b6, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, /*0x08-0x0f*/
+  0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, 0xa5c8, /*0x10-0x17*/
+  0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d0, /*0x18-0x1f*/
+  0xa5d1, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5d8, 0xa5d9, /*0x20-0x27*/
+  0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, /*0x28-0x2f*/
+  0xa5e5, 0xa5e6, 0xa5e7, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, /*0x30-0x37*/
+  0xa5ed, 0xa5ee, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f3, 0xa5f4, 0xa5f5, /*0x38-0x3f*/
+  0xa5f6, 0xa5f7, 0xa5f8, 0xa5f9, 0xa5fa, 0xa5fb, 0xa5fc, 0xa5fd, /*0x40-0x47*/
+  0xa641, 0xa642, 0xa643, 0xa644, 0xa645, 0xa646, 0xa647, 0xa648, /*0x48-0x4f*/
+  0xa649, 0xa64a, 0xa64b, 0xa64c, 0xa64d, 0xa64e, 0xa64f, 0xa650, /*0x50-0x57*/
+  0xa651, 0xa653, 0xa654, 0xa655, 0xa656, 0xa657, 0xa658, 0xa659, /*0x58-0x5f*/
+  0xa65a, 0xa65b, 0xa65c, 0xa65d, 0xa661, 0xa662, 0xa663, 0xa664, /*0x60-0x67*/
+  0xa665, 0xa666, 0xa667, 0xa668, 0xa669, 0xa66a, 0xa66b, 0xa66c, /*0x68-0x6f*/
+  0xa66d, 0xa66e, 0xa66f, 0xa670, 0xa671, 0xa673, 0xa674, 0xa675, /*0x70-0x77*/
+  0xa676, 0xa677, 0xa678, 0xa679, 0xa67a, 0xa67b, 0xa67c, 0xa67d, /*0x78-0x7f*/
+  0xa681, 0xa682, 0xa683, 0xa684, 0xa685, 0xa686, 0xa687, 0xa688, /*0x80-0x87*/
+  0xa689, 0xa68a, 0xa68b, 0xa68c, 0xa68d, 0xa68e, 0xa68f, 0xa690, /*0x88-0x8f*/
+  0xa691, 0xa693, 0xa694, 0xa695, 0xa696, 0xa697, 0xa698, 0xa699, /*0x90-0x97*/
+  0xa69a, 0xa69b, 0xa69c, 0xa69d, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, /*0x98-0x9f*/
+  0xa6a5, 0xa6a6, 0xa6a7, 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, /*0xa0-0xa7*/
+  0xa6ad, 0xa6ae, 0xa6af, 0xa6b0, 0xa6b1, 0xa6b3, 0xa6b4, 0xa6b5, /*0xa8-0xaf*/
+  0xa6b6, 0xa6b7, 0xa6b8, 0xa6b9, 0xa6ba, 0xa6bb, 0xa6bc, 0xa6bd, /*0xb0-0xb7*/
+  0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, 0xa6c8, /*0xb8-0xbf*/
+  0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, 0xa6d0, /*0xc0-0xc7*/
+  0xa6d1, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, 0xa6d7, 0xa6d8, 0xa6d9, /*0xc8-0xcf*/
+  0xa6da, 0xa6db, 0xa6dc, 0xa6dd, 0xa6e1, 0xa6e2, 0xa6e3, 0xa6e4, /*0xd0-0xd7*/
+  0xa6e5, 0xa6e6, 0xa6e7, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0xa6ec, /*0xd8-0xdf*/
+  0xa6ed, 0xa6ee, 0xa6ef, 0xa6f0, 0xa6f1, 0xa6f3, 0xa6f4, 0xa6f5, /*0xe0-0xe7*/
+  0xa6f6, 0xa6f7, 0xa6f8, 0xa6f9, 0xa6fa, 0xa6fb, 0xa6fc, 0xa6fd, /*0xe8-0xef*/
+  0xa741, 0xa742, 0xa743, 0xa744, 0xa745, 0xa746, 0xa747, 0xa748, /*0xf0-0xf7*/
+  0xa749, 0xa74a, 0xa74b, 0xa74c, 0xa74d, 0xa74e, 0xa74f, 0xa750, /*0xf8-0xff*/
+  /* 0xbe00 */
+  0xa751, 0xa753, 0xa754, 0xa755, 0xa756, 0xa757, 0xa758, 0xa759, /*0x00-0x07*/
+  0xa75a, 0xa75b, 0xa75c, 0xa75d, 0xa761, 0xa762, 0xa763, 0xa764, /*0x08-0x0f*/
+  0xa765, 0xa766, 0xa767, 0xa768, 0xa769, 0xa76a, 0xa76b, 0xa76c, /*0x10-0x17*/
+  0xa76d, 0xa76e, 0xa76f, 0xa770, 0xa771, 0xa773, 0xa774, 0xa775, /*0x18-0x1f*/
+  0xa776, 0xa777, 0xa778, 0xa779, 0xa77a, 0xa77b, 0xa77c, 0xa77d, /*0x20-0x27*/
+  0xa781, 0xa782, 0xa783, 0xa784, 0xa785, 0xa786, 0xa787, 0xa788, /*0x28-0x2f*/
+  0xa789, 0xa78a, 0xa78b, 0xa78c, 0xa78d, 0xa78e, 0xa78f, 0xa790, /*0x30-0x37*/
+  0xa791, 0xa793, 0xa794, 0xa795, 0xa796, 0xa797, 0xa798, 0xa799, /*0x38-0x3f*/
+  0xa79a, 0xa79b, 0xa79c, 0xa79d, 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, /*0x40-0x47*/
+  0xa7a5, 0xa7a6, 0xa7a7, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7ab, 0xa7ac, /*0x48-0x4f*/
+  0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b3, 0xa7b4, 0xa7b5, /*0x50-0x57*/
+  0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, /*0x58-0x5f*/
+  0xa861, 0xa862, 0xa863, 0xa864, 0xa865, 0xa866, 0xa867, 0xa868, /*0x60-0x67*/
+  0xa869, 0xa86a, 0xa86b, 0xa86c, 0xa86d, 0xa86e, 0xa86f, 0xa870, /*0x68-0x6f*/
+  0xa871, 0xa873, 0xa874, 0xa875, 0xa876, 0xa877, 0xa878, 0xa879, /*0x70-0x77*/
+  0xa87a, 0xa87b, 0xa87c, 0xa87d, 0xa881, 0xa882, 0xa883, 0xa884, /*0x78-0x7f*/
+  0xa885, 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, /*0x80-0x87*/
+  0xa88d, 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa893, 0xa894, 0xa895, /*0x88-0x8f*/
+  0xa896, 0xa897, 0xa898, 0xa899, 0xa89a, 0xa89b, 0xa89c, 0xa89d, /*0x90-0x97*/
+  0xa8a1, 0xa8a2, 0xa8a3, 0xa8a4, 0xa8a5, 0xa8a6, 0xa8a7, 0xa8a8, /*0x98-0x9f*/
+  0xa8a9, 0xa8aa, 0xa8ab, 0xa8ac, 0xa8ad, 0xa8ae, 0xa8af, 0xa8b0, /*0xa0-0xa7*/
+  0xa8b1, 0xa8b3, 0xa8b4, 0xa8b5, 0xa8b6, 0xa8b7, 0xa8b8, 0xa8b9, /*0xa8-0xaf*/
+  0xa8ba, 0xa8bb, 0xa8bc, 0xa8bd, 0xa8c1, 0xa8c2, 0xa8c3, 0xa8c4, /*0xb0-0xb7*/
+  0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, /*0xb8-0xbf*/
+  0xa8cd, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d3, 0xa8d4, 0xa8d5, /*0xc0-0xc7*/
+  0xa8d6, 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, /*0xc8-0xcf*/
+  0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, 0xa8e7, 0xa8e8, /*0xd0-0xd7*/
+  0xa8e9, 0xa8ea, 0xa8eb, 0xa8ec, 0xa8ed, 0xa8ee, 0xa8ef, 0xa8f0, /*0xd8-0xdf*/
+  0xa8f1, 0xa8f3, 0xa8f4, 0xa8f5, 0xa8f6, 0xa8f7, 0xa8f8, 0xa8f9, /*0xe0-0xe7*/
+  0xa8fa, 0xa8fb, 0xa8fc, 0xa8fd, 0xa941, 0xa942, 0xa943, 0xa944, /*0xe8-0xef*/
+  0xa945, 0xa946, 0xa947, 0xa948, 0xa949, 0xa94a, 0xa94b, 0xa94c, /*0xf0-0xf7*/
+  0xa94d, 0xa94e, 0xa94f, 0xa950, 0xa951, 0xa953, 0xa954, 0xa955, /*0xf8-0xff*/
+  /* 0xbf00 */
+  0xa956, 0xa957, 0xa958, 0xa959, 0xa95a, 0xa95b, 0xa95c, 0xa95d, /*0x00-0x07*/
+  0xa961, 0xa962, 0xa963, 0xa964, 0xa965, 0xa966, 0xa967, 0xa968, /*0x08-0x0f*/
+  0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970, /*0x10-0x17*/
+  0xa971, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978, 0xa979, /*0x18-0x1f*/
+  0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa981, 0xa982, 0xa983, 0xa984, /*0x20-0x27*/
+  0xa985, 0xa986, 0xa987, 0xa988, 0xa989, 0xa98a, 0xa98b, 0xa98c, /*0x28-0x2f*/
+  0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, 0xa993, 0xa994, 0xa995, /*0x30-0x37*/
+  0xa996, 0xa997, 0xa998, 0xa999, 0xa99a, 0xa99b, 0xa99c, 0xa99d, /*0x38-0x3f*/
+  0xa9a1, 0xa9a2, 0xa9a3, 0xa9a4, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, /*0x40-0x47*/
+  0xa9a9, 0xa9aa, 0xa9ab, 0xa9ac, 0xa9ad, 0xa9ae, 0xa9af, 0xa9b0, /*0x48-0x4f*/
+  0xa9b1, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9, /*0x50-0x57*/
+  0xa9ba, 0xa9bb, 0xa9bc, 0xa9bd, 0xa9c1, 0xa9c2, 0xa9c3, 0xa9c4, /*0x58-0x5f*/
+  0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 0xa9ca, 0xa9cb, 0xa9cc, /*0x60-0x67*/
+  0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d3, 0xa9d4, 0xa9d5, /*0x68-0x6f*/
+  0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9da, 0xa9db, 0xa9dc, 0xa9dd, /*0x70-0x77*/
+  0xa9e1, 0xa9e2, 0xa9e3, 0xa9e4, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, /*0x78-0x7f*/
+  0xa9e9, 0xa9ea, 0xa9eb, 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0xa9f0, /*0x80-0x87*/
+  0xa9f1, 0xa9f3, 0xa9f4, 0xa9f5, 0xa9f6, 0xa9f7, 0xa9f8, 0xa9f9, /*0x88-0x8f*/
+  0xa9fa, 0xa9fb, 0xa9fc, 0xa9fd, 0xaa41, 0xaa42, 0xaa43, 0xaa44, /*0x90-0x97*/
+  0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49, 0xaa4a, 0xaa4b, 0xaa4c, /*0x98-0x9f*/
+  0xaa4d, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51, 0xaa53, 0xaa54, 0xaa55, /*0xa0-0xa7*/
+  0xaa56, 0xaa57, 0xaa58, 0xaa59, 0xaa5a, 0xaa5b, 0xaa5c, 0xaa5d, /*0xa8-0xaf*/
+  0xaa61, 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xaa66, 0xaa67, 0xaa68, /*0xb0-0xb7*/
+  0xaa69, 0xaa6a, 0xaa6b, 0xaa6c, 0xaa6d, 0xaa6e, 0xaa6f, 0xaa70, /*0xb8-0xbf*/
+  0xaa71, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xaa79, /*0xc0-0xc7*/
+  0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa81, 0xaa82, 0xaa83, 0xaa84, /*0xc8-0xcf*/
+  0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xaa8b, 0xaa8c, /*0xd0-0xd7*/
+  0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa93, 0xaa94, 0xaa95, /*0xd8-0xdf*/
+  0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, 0xaa9b, 0xaa9c, 0xaa9d, /*0xe0-0xe7*/
+  0xaaa1, 0xaaa2, 0xaaa3, 0xaaa4, 0xaaa5, 0xaaa6, 0xaaa7, 0xaaa8, /*0xe8-0xef*/
+  0xaaa9, 0xaaaa, 0xaaab, 0xaaac, 0xaaad, 0xaaae, 0xaaaf, 0xaab0, /*0xf0-0xf7*/
+  0xaab1, 0xaab3, 0xaab4, 0xaab5, 0xaab6, 0xaab7, 0xaab8, 0xaab9, /*0xf8-0xff*/
+  /* 0xc000 */
+  0xaaba, 0xaabb, 0xaabc, 0xaabd, 0xaac1, 0xaac2, 0xaac3, 0xaac4, /*0x00-0x07*/
+  0xaac5, 0xaac6, 0xaac7, 0xaac8, 0xaac9, 0xaaca, 0xaacb, 0xaacc, /*0x08-0x0f*/
+  0xaacd, 0xaace, 0xaacf, 0xaad0, 0xaad1, 0xaad3, 0xaad4, 0xaad5, /*0x10-0x17*/
+  0xaad6, 0xaad7, 0xaad8, 0xaad9, 0xaada, 0xaadb, 0xaadc, 0xaadd, /*0x18-0x1f*/
+  0xaae1, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, 0xaae8, /*0x20-0x27*/
+  0xaae9, 0xaaea, 0xaaeb, 0xaaec, 0xaaed, 0xaaee, 0xaaef, 0xaaf0, /*0x28-0x2f*/
+  0xaaf1, 0xaaf3, 0xaaf4, 0xaaf5, 0xaaf6, 0xaaf7, 0xaaf8, 0xaaf9, /*0x30-0x37*/
+  0xaafa, 0xaafb, 0xaafc, 0xaafd, 0xab41, 0xab42, 0xab43, 0xab44, /*0x38-0x3f*/
+  0xab45, 0xab46, 0xab47, 0xab48, 0xab49, 0xab4a, 0xab4b, 0xab4c, /*0x40-0x47*/
+  0xab4d, 0xab4e, 0xab4f, 0xab50, 0xab51, 0xab53, 0xab54, 0xab55, /*0x48-0x4f*/
+  0xab56, 0xab57, 0xab58, 0xab59, 0xab5a, 0xab5b, 0xab5c, 0xab5d, /*0x50-0x57*/
+  0xab61, 0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, /*0x58-0x5f*/
+  0xab69, 0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, /*0x60-0x67*/
+  0xab71, 0xab73, 0xab74, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79, /*0x68-0x6f*/
+  0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab81, 0xab82, 0xab83, 0xab84, /*0x70-0x77*/
+  0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, /*0x78-0x7f*/
+  0xab8d, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab93, 0xab94, 0xab95, /*0x80-0x87*/
+  0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d, /*0x88-0x8f*/
+  0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5, 0xaba6, 0xaba7, 0xaba8, /*0x90-0x97*/
+  0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad, 0xabae, 0xabaf, 0xabb0, /*0x98-0x9f*/
+  0xabb1, 0xabb3, 0xabb4, 0xabb5, 0xabb6, 0xabb7, 0xabb8, 0xabb9, /*0xa0-0xa7*/
+  0xabba, 0xabbb, 0xabbc, 0xabbd, 0xac61, 0xac62, 0xac63, 0xac64, /*0xa8-0xaf*/
+  0xac65, 0xac66, 0xac67, 0xac68, 0xac69, 0xac6a, 0xac6b, 0xac6c, /*0xb0-0xb7*/
+  0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71, 0xac73, 0xac74, 0xac75, /*0xb8-0xbf*/
+  0xac76, 0xac77, 0xac78, 0xac79, 0xac7a, 0xac7b, 0xac7c, 0xac7d, /*0xc0-0xc7*/
+  0xac81, 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, /*0xc8-0xcf*/
+  0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, /*0xd0-0xd7*/
+  0xac91, 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, /*0xd8-0xdf*/
+  0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xaca1, 0xaca2, 0xaca3, 0xaca4, /*0xe0-0xe7*/
+  0xaca5, 0xaca6, 0xaca7, 0xaca8, 0xaca9, 0xacaa, 0xacab, 0xacac, /*0xe8-0xef*/
+  0xacad, 0xacae, 0xacaf, 0xacb0, 0xacb1, 0xacb3, 0xacb4, 0xacb5, /*0xf0-0xf7*/
+  0xacb6, 0xacb7, 0xacb8, 0xacb9, 0xacba, 0xacbb, 0xacbc, 0xacbd, /*0xf8-0xff*/
+  /* 0xc100 */
+  0xacc1, 0xacc2, 0xacc3, 0xacc4, 0xacc5, 0xacc6, 0xacc7, 0xacc8, /*0x00-0x07*/
+  0xacc9, 0xacca, 0xaccb, 0xaccc, 0xaccd, 0xacce, 0xaccf, 0xacd0, /*0x08-0x0f*/
+  0xacd1, 0xacd3, 0xacd4, 0xacd5, 0xacd6, 0xacd7, 0xacd8, 0xacd9, /*0x10-0x17*/
+  0xacda, 0xacdb, 0xacdc, 0xacdd, 0xace1, 0xace2, 0xace3, 0xace4, /*0x18-0x1f*/
+  0xace5, 0xace6, 0xace7, 0xace8, 0xace9, 0xacea, 0xaceb, 0xacec, /*0x20-0x27*/
+  0xaced, 0xacee, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf4, 0xacf5, /*0x28-0x2f*/
+  0xacf6, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, 0xacfc, 0xacfd, /*0x30-0x37*/
+  0xad41, 0xad42, 0xad43, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, /*0x38-0x3f*/
+  0xad49, 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad50, /*0x40-0x47*/
+  0xad51, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59, /*0x48-0x4f*/
+  0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad61, 0xad62, 0xad63, 0xad64, /*0x50-0x57*/
+  0xad65, 0xad66, 0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, /*0x58-0x5f*/
+  0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, 0xad73, 0xad74, 0xad75, /*0x60-0x67*/
+  0xad76, 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7b, 0xad7c, 0xad7d, /*0x68-0x6f*/
+  0xad81, 0xad82, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, /*0x70-0x77*/
+  0xad89, 0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, /*0x78-0x7f*/
+  0xad91, 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, /*0x80-0x87*/
+  0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xada1, 0xada2, 0xada3, 0xada4, /*0x88-0x8f*/
+  0xada5, 0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, /*0x90-0x97*/
+  0xadad, 0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb3, 0xadb4, 0xadb5, /*0x98-0x9f*/
+  0xadb6, 0xadb7, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc, 0xadbd, /*0xa0-0xa7*/
+  0xadc1, 0xadc2, 0xadc3, 0xadc4, 0xadc5, 0xadc6, 0xadc7, 0xadc8, /*0xa8-0xaf*/
+  0xadc9, 0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, 0xadcf, 0xadd0, /*0xb0-0xb7*/
+  0xadd1, 0xadd3, 0xadd4, 0xadd5, 0xadd6, 0xadd7, 0xadd8, 0xadd9, /*0xb8-0xbf*/
+  0xadda, 0xaddb, 0xaddc, 0xaddd, 0xade1, 0xade2, 0xade3, 0xade4, /*0xc0-0xc7*/
+  0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 0xadea, 0xadeb, 0xadec, /*0xc8-0xcf*/
+  0xaded, 0xadee, 0xadef, 0xadf0, 0xadf1, 0xadf3, 0xadf4, 0xadf5, /*0xd0-0xd7*/
+  0xadf6, 0xadf7, 0xadf8, 0xadf9, 0xadfa, 0xadfb, 0xadfc, 0xadfd, /*0xd8-0xdf*/
+  0xae41, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, /*0xe0-0xe7*/
+  0xae49, 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, /*0xe8-0xef*/
+  0xae51, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, /*0xf0-0xf7*/
+  0xae5a, 0xae5b, 0xae5c, 0xae5d, 0xae61, 0xae62, 0xae63, 0xae64, /*0xf8-0xff*/
+  /* 0xc200 */
+  0xae65, 0xae66, 0xae67, 0xae68, 0xae69, 0xae6a, 0xae6b, 0xae6c, /*0x00-0x07*/
+  0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xae73, 0xae74, 0xae75, /*0x08-0x0f*/
+  0xae76, 0xae77, 0xae78, 0xae79, 0xae7a, 0xae7b, 0xae7c, 0xae7d, /*0x10-0x17*/
+  0xae81, 0xae82, 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, /*0x18-0x1f*/
+  0xae89, 0xae8a, 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, /*0x20-0x27*/
+  0xae91, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, /*0x28-0x2f*/
+  0xae9a, 0xae9b, 0xae9c, 0xae9d, 0xaea1, 0xaea2, 0xaea3, 0xaea4, /*0x30-0x37*/
+  0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9, 0xaeaa, 0xaeab, 0xaeac, /*0x38-0x3f*/
+  0xaead, 0xaeae, 0xaeaf, 0xaeb0, 0xaeb1, 0xaeb3, 0xaeb4, 0xaeb5, /*0x40-0x47*/
+  0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, 0xaebb, 0xaebc, 0xaebd, /*0x48-0x4f*/
+  0xaec1, 0xaec2, 0xaec3, 0xaec4, 0xaec5, 0xaec6, 0xaec7, 0xaec8, /*0x50-0x57*/
+  0xaec9, 0xaeca, 0xaecb, 0xaecc, 0xaecd, 0xaece, 0xaecf, 0xaed0, /*0x58-0x5f*/
+  0xaed1, 0xaed3, 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0xaed8, 0xaed9, /*0x60-0x67*/
+  0xaeda, 0xaedb, 0xaedc, 0xaedd, 0xaee1, 0xaee2, 0xaee3, 0xaee4, /*0x68-0x6f*/
+  0xaee5, 0xaee6, 0xaee7, 0xaee8, 0xaee9, 0xaeea, 0xaeeb, 0xaeec, /*0x70-0x77*/
+  0xaeed, 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef3, 0xaef4, 0xaef5, /*0x78-0x7f*/
+  0xaef6, 0xaef7, 0xaef8, 0xaef9, 0xaefa, 0xaefb, 0xaefc, 0xaefd, /*0x80-0x87*/
+  0xaf41, 0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf48, /*0x88-0x8f*/
+  0xaf49, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, /*0x90-0x97*/
+  0xaf51, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, /*0x98-0x9f*/
+  0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf61, 0xaf62, 0xaf63, 0xaf64, /*0xa0-0xa7*/
+  0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, /*0xa8-0xaf*/
+  0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf73, 0xaf74, 0xaf75, /*0xb0-0xb7*/
+  0xaf76, 0xaf77, 0xaf78, 0xaf79, 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, /*0xb8-0xbf*/
+  0xaf81, 0xaf82, 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87, 0xaf88, /*0xc0-0xc7*/
+  0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, /*0xc8-0xcf*/
+  0xaf91, 0xaf93, 0xaf94, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, /*0xd0-0xd7*/
+  0xaf9a, 0xaf9b, 0xaf9c, 0xaf9d, 0xafa1, 0xafa2, 0xafa3, 0xafa4, /*0xd8-0xdf*/
+  0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, 0xafab, 0xafac, /*0xe0-0xe7*/
+  0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb3, 0xafb4, 0xafb5, /*0xe8-0xef*/
+  0xafb6, 0xafb7, 0xafb8, 0xafb9, 0xafba, 0xafbb, 0xafbc, 0xafbd, /*0xf0-0xf7*/
+  0xb061, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, /*0xf8-0xff*/
+  /* 0xc300 */
+  0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, /*0x00-0x07*/
+  0xb071, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, /*0x08-0x0f*/
+  0xb07a, 0xb07b, 0xb07c, 0xb07d, 0xb081, 0xb082, 0xb083, 0xb084, /*0x10-0x17*/
+  0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08c, /*0x18-0x1f*/
+  0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb093, 0xb094, 0xb095, /*0x20-0x27*/
+  0xb096, 0xb097, 0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, /*0x28-0x2f*/
+  0xb0a1, 0xb0a2, 0xb0a3, 0xb0a4, 0xb0a5, 0xb0a6, 0xb0a7, 0xb0a8, /*0x30-0x37*/
+  0xb0a9, 0xb0aa, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, 0xb0b0, /*0x38-0x3f*/
+  0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b6, 0xb0b7, 0xb0b8, 0xb0b9, /*0x40-0x47*/
+  0xb0ba, 0xb0bb, 0xb0bc, 0xb0bd, 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c4, /*0x48-0x4f*/
+  0xb0c5, 0xb0c6, 0xb0c7, 0xb0c8, 0xb0c9, 0xb0ca, 0xb0cb, 0xb0cc, /*0x50-0x57*/
+  0xb0cd, 0xb0ce, 0xb0cf, 0xb0d0, 0xb0d1, 0xb0d3, 0xb0d4, 0xb0d5, /*0x58-0x5f*/
+  0xb0d6, 0xb0d7, 0xb0d8, 0xb0d9, 0xb0da, 0xb0db, 0xb0dc, 0xb0dd, /*0x60-0x67*/
+  0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, 0xb0e5, 0xb0e6, 0xb0e7, 0xb0e8, /*0x68-0x6f*/
+  0xb0e9, 0xb0ea, 0xb0eb, 0xb0ec, 0xb0ed, 0xb0ee, 0xb0ef, 0xb0f0, /*0x70-0x77*/
+  0xb0f1, 0xb0f3, 0xb0f4, 0xb0f5, 0xb0f6, 0xb0f7, 0xb0f8, 0xb0f9, /*0x78-0x7f*/
+  0xb0fa, 0xb0fb, 0xb0fc, 0xb0fd, 0xb141, 0xb142, 0xb143, 0xb144, /*0x80-0x87*/
+  0xb145, 0xb146, 0xb147, 0xb148, 0xb149, 0xb14a, 0xb14b, 0xb14c, /*0x88-0x8f*/
+  0xb14d, 0xb14e, 0xb14f, 0xb150, 0xb151, 0xb153, 0xb154, 0xb155, /*0x90-0x97*/
+  0xb156, 0xb157, 0xb158, 0xb159, 0xb15a, 0xb15b, 0xb15c, 0xb15d, /*0x98-0x9f*/
+  0xb161, 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, /*0xa0-0xa7*/
+  0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, /*0xa8-0xaf*/
+  0xb171, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179, /*0xb0-0xb7*/
+  0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb181, 0xb182, 0xb183, 0xb184, /*0xb8-0xbf*/
+  0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a, 0xb18b, 0xb18c, /*0xc0-0xc7*/
+  0xb18d, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb193, 0xb194, 0xb195, /*0xc8-0xcf*/
+  0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xb19c, 0xb19d, /*0xd0-0xd7*/
+  0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a8, /*0xd8-0xdf*/
+  0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, 0xb1ae, 0xb1af, 0xb1b0, /*0xe0-0xe7*/
+  0xb1b1, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, 0xb1b7, 0xb1b8, 0xb1b9, /*0xe8-0xef*/
+  0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, /*0xf0-0xf7*/
+  0xb1c5, 0xb1c6, 0xb1c7, 0xb1c8, 0xb1c9, 0xb1ca, 0xb1cb, 0xb1cc, /*0xf8-0xff*/
+  /* 0xc400 */
+  0xb1cd, 0xb1ce, 0xb1cf, 0xb1d0, 0xb1d1, 0xb1d3, 0xb1d4, 0xb1d5, /*0x00-0x07*/
+  0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, 0xb1db, 0xb1dc, 0xb1dd, /*0x08-0x0f*/
+  0xb1e1, 0xb1e2, 0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, 0xb1e8, /*0x10-0x17*/
+  0xb1e9, 0xb1ea, 0xb1eb, 0xb1ec, 0xb1ed, 0xb1ee, 0xb1ef, 0xb1f0, /*0x18-0x1f*/
+  0xb1f1, 0xb1f3, 0xb1f4, 0xb1f5, 0xb1f6, 0xb1f7, 0xb1f8, 0xb1f9, /*0x20-0x27*/
+  0xb1fa, 0xb1fb, 0xb1fc, 0xb1fd, 0xb241, 0xb242, 0xb243, 0xb244, /*0x28-0x2f*/
+  0xb245, 0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, 0xb24b, 0xb24c, /*0x30-0x37*/
+  0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb253, 0xb254, 0xb255, /*0x38-0x3f*/
+  0xb256, 0xb257, 0xb258, 0xb259, 0xb25a, 0xb25b, 0xb25c, 0xb25d, /*0x40-0x47*/
+  0xb261, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, /*0x48-0x4f*/
+  0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, /*0x50-0x57*/
+  0xb271, 0xb273, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, /*0x58-0x5f*/
+  0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb281, 0xb282, 0xb283, 0xb284, /*0x60-0x67*/
+  0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a, 0xb28b, 0xb28c, /*0x68-0x6f*/
+  0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb293, 0xb294, 0xb295, /*0x70-0x77*/
+  0xb296, 0xb297, 0xb298, 0xb299, 0xb29a, 0xb29b, 0xb29c, 0xb29d, /*0x78-0x7f*/
+  0xb2a1, 0xb2a2, 0xb2a3, 0xb2a4, 0xb2a5, 0xb2a6, 0xb2a7, 0xb2a8, /*0x80-0x87*/
+  0xb2a9, 0xb2aa, 0xb2ab, 0xb2ac, 0xb2ad, 0xb2ae, 0xb2af, 0xb2b0, /*0x88-0x8f*/
+  0xb2b1, 0xb2b3, 0xb2b4, 0xb2b5, 0xb2b6, 0xb2b7, 0xb2b8, 0xb2b9, /*0x90-0x97*/
+  0xb2ba, 0xb2bb, 0xb2bc, 0xb2bd, 0xb2c1, 0xb2c2, 0xb2c3, 0xb2c4, /*0x98-0x9f*/
+  0xb2c5, 0xb2c6, 0xb2c7, 0xb2c8, 0xb2c9, 0xb2ca, 0xb2cb, 0xb2cc, /*0xa0-0xa7*/
+  0xb2cd, 0xb2ce, 0xb2cf, 0xb2d0, 0xb2d1, 0xb2d3, 0xb2d4, 0xb2d5, /*0xa8-0xaf*/
+  0xb2d6, 0xb2d7, 0xb2d8, 0xb2d9, 0xb2da, 0xb2db, 0xb2dc, 0xb2dd, /*0xb0-0xb7*/
+  0xb2e1, 0xb2e2, 0xb2e3, 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e7, 0xb2e8, /*0xb8-0xbf*/
+  0xb2e9, 0xb2ea, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, 0xb2ef, 0xb2f0, /*0xc0-0xc7*/
+  0xb2f1, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f6, 0xb2f7, 0xb2f8, 0xb2f9, /*0xc8-0xcf*/
+  0xb2fa, 0xb2fb, 0xb2fc, 0xb2fd, 0xb341, 0xb342, 0xb343, 0xb344, /*0xd0-0xd7*/
+  0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, /*0xd8-0xdf*/
+  0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb353, 0xb354, 0xb355, /*0xe0-0xe7*/
+  0xb356, 0xb357, 0xb358, 0xb359, 0xb35a, 0xb35b, 0xb35c, 0xb35d, /*0xe8-0xef*/
+  0xb361, 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xb367, 0xb368, /*0xf0-0xf7*/
+  0xb369, 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0xb370, /*0xf8-0xff*/
+  /* 0xc500 */
+  0xb371, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379, /*0x00-0x07*/
+  0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb381, 0xb382, 0xb383, 0xb384, /*0x08-0x0f*/
+  0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38c, /*0x10-0x17*/
+  0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb393, 0xb394, 0xb395, /*0x18-0x1f*/
+  0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, 0xb39c, 0xb39d, /*0x20-0x27*/
+  0xb3a1, 0xb3a2, 0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0xb3a8, /*0x28-0x2f*/
+  0xb3a9, 0xb3aa, 0xb3ab, 0xb3ac, 0xb3ad, 0xb3ae, 0xb3af, 0xb3b0, /*0x30-0x37*/
+  0xb3b1, 0xb3b3, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0xb3b9, /*0x38-0x3f*/
+  0xb3ba, 0xb3bb, 0xb3bc, 0xb3bd, 0xb461, 0xb462, 0xb463, 0xb464, /*0x40-0x47*/
+  0xb465, 0xb466, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46c, /*0x48-0x4f*/
+  0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb473, 0xb474, 0xb475, /*0x50-0x57*/
+  0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xb47d, /*0x58-0x5f*/
+  0xb481, 0xb482, 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, /*0x60-0x67*/
+  0xb489, 0xb48a, 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, /*0x68-0x6f*/
+  0xb491, 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, /*0x70-0x77*/
+  0xb49a, 0xb49b, 0xb49c, 0xb49d, 0xb4a1, 0xb4a2, 0xb4a3, 0xb4a4, /*0x78-0x7f*/
+  0xb4a5, 0xb4a6, 0xb4a7, 0xb4a8, 0xb4a9, 0xb4aa, 0xb4ab, 0xb4ac, /*0x80-0x87*/
+  0xb4ad, 0xb4ae, 0xb4af, 0xb4b0, 0xb4b1, 0xb4b3, 0xb4b4, 0xb4b5, /*0x88-0x8f*/
+  0xb4b6, 0xb4b7, 0xb4b8, 0xb4b9, 0xb4ba, 0xb4bb, 0xb4bc, 0xb4bd, /*0x90-0x97*/
+  0xb4c1, 0xb4c2, 0xb4c3, 0xb4c4, 0xb4c5, 0xb4c6, 0xb4c7, 0xb4c8, /*0x98-0x9f*/
+  0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb4cd, 0xb4ce, 0xb4cf, 0xb4d0, /*0xa0-0xa7*/
+  0xb4d1, 0xb4d3, 0xb4d4, 0xb4d5, 0xb4d6, 0xb4d7, 0xb4d8, 0xb4d9, /*0xa8-0xaf*/
+  0xb4da, 0xb4db, 0xb4dc, 0xb4dd, 0xb4e1, 0xb4e2, 0xb4e3, 0xb4e4, /*0xb0-0xb7*/
+  0xb4e5, 0xb4e6, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, 0xb4eb, 0xb4ec, /*0xb8-0xbf*/
+  0xb4ed, 0xb4ee, 0xb4ef, 0xb4f0, 0xb4f1, 0xb4f3, 0xb4f4, 0xb4f5, /*0xc0-0xc7*/
+  0xb4f6, 0xb4f7, 0xb4f8, 0xb4f9, 0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, /*0xc8-0xcf*/
+  0xb541, 0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, /*0xd0-0xd7*/
+  0xb549, 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, /*0xd8-0xdf*/
+  0xb551, 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, /*0xe0-0xe7*/
+  0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb561, 0xb562, 0xb563, 0xb564, /*0xe8-0xef*/
+  0xb565, 0xb566, 0xb567, 0xb568, 0xb569, 0xb56a, 0xb56b, 0xb56c, /*0xf0-0xf7*/
+  0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, 0xb573, 0xb574, 0xb575, /*0xf8-0xff*/
+  /* 0xc600 */
+  0xb576, 0xb577, 0xb578, 0xb579, 0xb57a, 0xb57b, 0xb57c, 0xb57d, /*0x00-0x07*/
+  0xb581, 0xb582, 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, /*0x08-0x0f*/
+  0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, /*0x10-0x17*/
+  0xb591, 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, /*0x18-0x1f*/
+  0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb5a1, 0xb5a2, 0xb5a3, 0xb5a4, /*0x20-0x27*/
+  0xb5a5, 0xb5a6, 0xb5a7, 0xb5a8, 0xb5a9, 0xb5aa, 0xb5ab, 0xb5ac, /*0x28-0x2f*/
+  0xb5ad, 0xb5ae, 0xb5af, 0xb5b0, 0xb5b1, 0xb5b3, 0xb5b4, 0xb5b5, /*0x30-0x37*/
+  0xb5b6, 0xb5b7, 0xb5b8, 0xb5b9, 0xb5ba, 0xb5bb, 0xb5bc, 0xb5bd, /*0x38-0x3f*/
+  0xb5c1, 0xb5c2, 0xb5c3, 0xb5c4, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, /*0x40-0x47*/
+  0xb5c9, 0xb5ca, 0xb5cb, 0xb5cc, 0xb5cd, 0xb5ce, 0xb5cf, 0xb5d0, /*0x48-0x4f*/
+  0xb5d1, 0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, 0xb5d7, 0xb5d8, 0xb5d9, /*0x50-0x57*/
+  0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, /*0x58-0x5f*/
+  0xb5e5, 0xb5e6, 0xb5e7, 0xb5e8, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ec, /*0x60-0x67*/
+  0xb5ed, 0xb5ee, 0xb5ef, 0xb5f0, 0xb5f1, 0xb5f3, 0xb5f4, 0xb5f5, /*0x68-0x6f*/
+  0xb5f6, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd, /*0x70-0x77*/
+  0xb641, 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, /*0x78-0x7f*/
+  0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, /*0x80-0x87*/
+  0xb651, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, /*0x88-0x8f*/
+  0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb661, 0xb662, 0xb663, 0xb664, /*0x90-0x97*/
+  0xb665, 0xb666, 0xb667, 0xb668, 0xb669, 0xb66a, 0xb66b, 0xb66c, /*0x98-0x9f*/
+  0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb673, 0xb674, 0xb675, /*0xa0-0xa7*/
+  0xb676, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb67b, 0xb67c, 0xb67d, /*0xa8-0xaf*/
+  0xb681, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, /*0xb0-0xb7*/
+  0xb689, 0xb68a, 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, /*0xb8-0xbf*/
+  0xb691, 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, /*0xc0-0xc7*/
+  0xb69a, 0xb69b, 0xb69c, 0xb69d, 0xb6a1, 0xb6a2, 0xb6a3, 0xb6a4, /*0xc8-0xcf*/
+  0xb6a5, 0xb6a6, 0xb6a7, 0xb6a8, 0xb6a9, 0xb6aa, 0xb6ab, 0xb6ac, /*0xd0-0xd7*/
+  0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b1, 0xb6b3, 0xb6b4, 0xb6b5, /*0xd8-0xdf*/
+  0xb6b6, 0xb6b7, 0xb6b8, 0xb6b9, 0xb6ba, 0xb6bb, 0xb6bc, 0xb6bd, /*0xe0-0xe7*/
+  0xb6c1, 0xb6c2, 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, /*0xe8-0xef*/
+  0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0, /*0xf0-0xf7*/
+  0xb6d1, 0xb6d3, 0xb6d4, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, /*0xf8-0xff*/
+  /* 0xc700 */
+  0xb6da, 0xb6db, 0xb6dc, 0xb6dd, 0xb6e1, 0xb6e2, 0xb6e3, 0xb6e4, /*0x00-0x07*/
+  0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, 0xb6ea, 0xb6eb, 0xb6ec, /*0x08-0x0f*/
+  0xb6ed, 0xb6ee, 0xb6ef, 0xb6f0, 0xb6f1, 0xb6f3, 0xb6f4, 0xb6f5, /*0x10-0x17*/
+  0xb6f6, 0xb6f7, 0xb6f8, 0xb6f9, 0xb6fa, 0xb6fb, 0xb6fc, 0xb6fd, /*0x18-0x1f*/
+  0xb741, 0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, /*0x20-0x27*/
+  0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, /*0x28-0x2f*/
+  0xb751, 0xb753, 0xb754, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759, /*0x30-0x37*/
+  0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb761, 0xb762, 0xb763, 0xb764, /*0x38-0x3f*/
+  0xb765, 0xb766, 0xb767, 0xb768, 0xb769, 0xb76a, 0xb76b, 0xb76c, /*0x40-0x47*/
+  0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb773, 0xb774, 0xb775, /*0x48-0x4f*/
+  0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77c, 0xb77d, /*0x50-0x57*/
+  0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, /*0x58-0x5f*/
+  0xb789, 0xb78a, 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb78f, 0xb790, /*0x60-0x67*/
+  0xb791, 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, /*0x68-0x6f*/
+  0xb79a, 0xb79b, 0xb79c, 0xb79d, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, /*0x70-0x77*/
+  0xb7a5, 0xb7a6, 0xb7a7, 0xb7a8, 0xb7a9, 0xb7aa, 0xb7ab, 0xb7ac, /*0x78-0x7f*/
+  0xb7ad, 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b3, 0xb7b4, 0xb7b5, /*0x80-0x87*/
+  0xb7b6, 0xb7b7, 0xb7b8, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd, /*0x88-0x8f*/
+  0xb861, 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, /*0x90-0x97*/
+  0xb869, 0xb86a, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, 0xb870, /*0x98-0x9f*/
+  0xb871, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, /*0xa0-0xa7*/
+  0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb881, 0xb882, 0xb883, 0xb884, /*0xa8-0xaf*/
+  0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, /*0xb0-0xb7*/
+  0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb893, 0xb894, 0xb895, /*0xb8-0xbf*/
+  0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, /*0xc0-0xc7*/
+  0xb8a1, 0xb8a2, 0xb8a3, 0xb8a4, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a8, /*0xc8-0xcf*/
+  0xb8a9, 0xb8aa, 0xb8ab, 0xb8ac, 0xb8ad, 0xb8ae, 0xb8af, 0xb8b0, /*0xd0-0xd7*/
+  0xb8b1, 0xb8b3, 0xb8b4, 0xb8b5, 0xb8b6, 0xb8b7, 0xb8b8, 0xb8b9, /*0xd8-0xdf*/
+  0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, 0xb8c1, 0xb8c2, 0xb8c3, 0xb8c4, /*0xe0-0xe7*/
+  0xb8c5, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0xb8ca, 0xb8cb, 0xb8cc, /*0xe8-0xef*/
+  0xb8cd, 0xb8ce, 0xb8cf, 0xb8d0, 0xb8d1, 0xb8d3, 0xb8d4, 0xb8d5, /*0xf0-0xf7*/
+  0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, 0xb8db, 0xb8dc, 0xb8dd, /*0xf8-0xff*/
+  /* 0xc800 */
+  0xb8e1, 0xb8e2, 0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, 0xb8e7, 0xb8e8, /*0x00-0x07*/
+  0xb8e9, 0xb8ea, 0xb8eb, 0xb8ec, 0xb8ed, 0xb8ee, 0xb8ef, 0xb8f0, /*0x08-0x0f*/
+  0xb8f1, 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, 0xb8f7, 0xb8f8, 0xb8f9, /*0x10-0x17*/
+  0xb8fa, 0xb8fb, 0xb8fc, 0xb8fd, 0xb941, 0xb942, 0xb943, 0xb944, /*0x18-0x1f*/
+  0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94c, /*0x20-0x27*/
+  0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951, 0xb953, 0xb954, 0xb955, /*0x28-0x2f*/
+  0xb956, 0xb957, 0xb958, 0xb959, 0xb95a, 0xb95b, 0xb95c, 0xb95d, /*0x30-0x37*/
+  0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, /*0x38-0x3f*/
+  0xb969, 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xb970, /*0x40-0x47*/
+  0xb971, 0xb973, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979, /*0x48-0x4f*/
+  0xb97a, 0xb97b, 0xb97c, 0xb97d, 0xb981, 0xb982, 0xb983, 0xb984, /*0x50-0x57*/
+  0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a, 0xb98b, 0xb98c, /*0x58-0x5f*/
+  0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb993, 0xb994, 0xb995, /*0x60-0x67*/
+  0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, 0xb99d, /*0x68-0x6f*/
+  0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, 0xb9a6, 0xb9a7, 0xb9a8, /*0x70-0x77*/
+  0xb9a9, 0xb9aa, 0xb9ab, 0xb9ac, 0xb9ad, 0xb9ae, 0xb9af, 0xb9b0, /*0x78-0x7f*/
+  0xb9b1, 0xb9b3, 0xb9b4, 0xb9b5, 0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, /*0x80-0x87*/
+  0xb9ba, 0xb9bb, 0xb9bc, 0xb9bd, 0xb9c1, 0xb9c2, 0xb9c3, 0xb9c4, /*0x88-0x8f*/
+  0xb9c5, 0xb9c6, 0xb9c7, 0xb9c8, 0xb9c9, 0xb9ca, 0xb9cb, 0xb9cc, /*0x90-0x97*/
+  0xb9cd, 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d3, 0xb9d4, 0xb9d5, /*0x98-0x9f*/
+  0xb9d6, 0xb9d7, 0xb9d8, 0xb9d9, 0xb9da, 0xb9db, 0xb9dc, 0xb9dd, /*0xa0-0xa7*/
+  0xb9e1, 0xb9e2, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e6, 0xb9e7, 0xb9e8, /*0xa8-0xaf*/
+  0xb9e9, 0xb9ea, 0xb9eb, 0xb9ec, 0xb9ed, 0xb9ee, 0xb9ef, 0xb9f0, /*0xb0-0xb7*/
+  0xb9f1, 0xb9f3, 0xb9f4, 0xb9f5, 0xb9f6, 0xb9f7, 0xb9f8, 0xb9f9, /*0xb8-0xbf*/
+  0xb9fa, 0xb9fb, 0xb9fc, 0xb9fd, 0xba41, 0xba42, 0xba43, 0xba44, /*0xc0-0xc7*/
+  0xba45, 0xba46, 0xba47, 0xba48, 0xba49, 0xba4a, 0xba4b, 0xba4c, /*0xc8-0xcf*/
+  0xba4d, 0xba4e, 0xba4f, 0xba50, 0xba51, 0xba53, 0xba54, 0xba55, /*0xd0-0xd7*/
+  0xba56, 0xba57, 0xba58, 0xba59, 0xba5a, 0xba5b, 0xba5c, 0xba5d, /*0xd8-0xdf*/
+  0xba61, 0xba62, 0xba63, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, /*0xe0-0xe7*/
+  0xba69, 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, /*0xe8-0xef*/
+  0xba71, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79, /*0xf0-0xf7*/
+  0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba81, 0xba82, 0xba83, 0xba84, /*0xf8-0xff*/
+  /* 0xc900 */
+  0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, 0xba8b, 0xba8c, /*0x00-0x07*/
+  0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba93, 0xba94, 0xba95, /*0x08-0x0f*/
+  0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, 0xba9b, 0xba9c, 0xba9d, /*0x10-0x17*/
+  0xbaa1, 0xbaa2, 0xbaa3, 0xbaa4, 0xbaa5, 0xbaa6, 0xbaa7, 0xbaa8, /*0x18-0x1f*/
+  0xbaa9, 0xbaaa, 0xbaab, 0xbaac, 0xbaad, 0xbaae, 0xbaaf, 0xbab0, /*0x20-0x27*/
+  0xbab1, 0xbab3, 0xbab4, 0xbab5, 0xbab6, 0xbab7, 0xbab8, 0xbab9, /*0x28-0x2f*/
+  0xbaba, 0xbabb, 0xbabc, 0xbabd, 0xbac1, 0xbac2, 0xbac3, 0xbac4, /*0x30-0x37*/
+  0xbac5, 0xbac6, 0xbac7, 0xbac8, 0xbac9, 0xbaca, 0xbacb, 0xbacc, /*0x38-0x3f*/
+  0xbacd, 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad3, 0xbad4, 0xbad5, /*0x40-0x47*/
+  0xbad6, 0xbad7, 0xbad8, 0xbad9, 0xbada, 0xbadb, 0xbadc, 0xbadd, /*0x48-0x4f*/
+  0xbae1, 0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, 0xbae7, 0xbae8, /*0x50-0x57*/
+  0xbae9, 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, 0xbaef, 0xbaf0, /*0x58-0x5f*/
+  0xbaf1, 0xbaf3, 0xbaf4, 0xbaf5, 0xbaf6, 0xbaf7, 0xbaf8, 0xbaf9, /*0x60-0x67*/
+  0xbafa, 0xbafb, 0xbafc, 0xbafd, 0xbb41, 0xbb42, 0xbb43, 0xbb44, /*0x68-0x6f*/
+  0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 0xbb4a, 0xbb4b, 0xbb4c, /*0x70-0x77*/
+  0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, 0xbb53, 0xbb54, 0xbb55, /*0x78-0x7f*/
+  0xbb56, 0xbb57, 0xbb58, 0xbb59, 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, /*0x80-0x87*/
+  0xbb61, 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, /*0x88-0x8f*/
+  0xbb69, 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, /*0x90-0x97*/
+  0xbb71, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, /*0x98-0x9f*/
+  0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb81, 0xbb82, 0xbb83, 0xbb84, /*0xa0-0xa7*/
+  0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8c, /*0xa8-0xaf*/
+  0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb93, 0xbb94, 0xbb95, /*0xb0-0xb7*/
+  0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, /*0xb8-0xbf*/
+  0xbba1, 0xbba2, 0xbba3, 0xbba4, 0xbba5, 0xbba6, 0xbba7, 0xbba8, /*0xc0-0xc7*/
+  0xbba9, 0xbbaa, 0xbbab, 0xbbac, 0xbbad, 0xbbae, 0xbbaf, 0xbbb0, /*0xc8-0xcf*/
+  0xbbb1, 0xbbb3, 0xbbb4, 0xbbb5, 0xbbb6, 0xbbb7, 0xbbb8, 0xbbb9, /*0xd0-0xd7*/
+  0xbbba, 0xbbbb, 0xbbbc, 0xbbbd, 0xbc61, 0xbc62, 0xbc63, 0xbc64, /*0xd8-0xdf*/
+  0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, 0xbc6c, /*0xe0-0xe7*/
+  0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, 0xbc73, 0xbc74, 0xbc75, /*0xe8-0xef*/
+  0xbc76, 0xbc77, 0xbc78, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, /*0xf0-0xf7*/
+  0xbc81, 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, /*0xf8-0xff*/
+  /* 0xca00 */
+  0xbc89, 0xbc8a, 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, /*0x00-0x07*/
+  0xbc91, 0xbc93, 0xbc94, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, /*0x08-0x0f*/
+  0xbc9a, 0xbc9b, 0xbc9c, 0xbc9d, 0xbca1, 0xbca2, 0xbca3, 0xbca4, /*0x10-0x17*/
+  0xbca5, 0xbca6, 0xbca7, 0xbca8, 0xbca9, 0xbcaa, 0xbcab, 0xbcac, /*0x18-0x1f*/
+  0xbcad, 0xbcae, 0xbcaf, 0xbcb0, 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, /*0x20-0x27*/
+  0xbcb6, 0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0xbcbc, 0xbcbd, /*0x28-0x2f*/
+  0xbcc1, 0xbcc2, 0xbcc3, 0xbcc4, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, /*0x30-0x37*/
+  0xbcc9, 0xbcca, 0xbccb, 0xbccc, 0xbccd, 0xbcce, 0xbccf, 0xbcd0, /*0x38-0x3f*/
+  0xbcd1, 0xbcd3, 0xbcd4, 0xbcd5, 0xbcd6, 0xbcd7, 0xbcd8, 0xbcd9, /*0x40-0x47*/
+  0xbcda, 0xbcdb, 0xbcdc, 0xbcdd, 0xbce1, 0xbce2, 0xbce3, 0xbce4, /*0x48-0x4f*/
+  0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xbce9, 0xbcea, 0xbceb, 0xbcec, /*0x50-0x57*/
+  0xbced, 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, 0xbcf3, 0xbcf4, 0xbcf5, /*0x58-0x5f*/
+  0xbcf6, 0xbcf7, 0xbcf8, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfc, 0xbcfd, /*0x60-0x67*/
+  0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, /*0x68-0x6f*/
+  0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, /*0x70-0x77*/
+  0xbd51, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59, /*0x78-0x7f*/
+  0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd61, 0xbd62, 0xbd63, 0xbd64, /*0x80-0x87*/
+  0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, /*0x88-0x8f*/
+  0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd73, 0xbd74, 0xbd75, /*0x90-0x97*/
+  0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, /*0x98-0x9f*/
+  0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, /*0xa0-0xa7*/
+  0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, /*0xa8-0xaf*/
+  0xbd91, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, /*0xb0-0xb7*/
+  0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbda1, 0xbda2, 0xbda3, 0xbda4, /*0xb8-0xbf*/
+  0xbda5, 0xbda6, 0xbda7, 0xbda8, 0xbda9, 0xbdaa, 0xbdab, 0xbdac, /*0xc0-0xc7*/
+  0xbdad, 0xbdae, 0xbdaf, 0xbdb0, 0xbdb1, 0xbdb3, 0xbdb4, 0xbdb5, /*0xc8-0xcf*/
+  0xbdb6, 0xbdb7, 0xbdb8, 0xbdb9, 0xbdba, 0xbdbb, 0xbdbc, 0xbdbd, /*0xd0-0xd7*/
+  0xbdc1, 0xbdc2, 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, /*0xd8-0xdf*/
+  0xbdc9, 0xbdca, 0xbdcb, 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0, /*0xe0-0xe7*/
+  0xbdd1, 0xbdd3, 0xbdd4, 0xbdd5, 0xbdd6, 0xbdd7, 0xbdd8, 0xbdd9, /*0xe8-0xef*/
+  0xbdda, 0xbddb, 0xbddc, 0xbddd, 0xbde1, 0xbde2, 0xbde3, 0xbde4, /*0xf0-0xf7*/
+  0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbde9, 0xbdea, 0xbdeb, 0xbdec, /*0xf8-0xff*/
+  /* 0xcb00 */
+  0xbded, 0xbdee, 0xbdef, 0xbdf0, 0xbdf1, 0xbdf3, 0xbdf4, 0xbdf5, /*0x00-0x07*/
+  0xbdf6, 0xbdf7, 0xbdf8, 0xbdf9, 0xbdfa, 0xbdfb, 0xbdfc, 0xbdfd, /*0x08-0x0f*/
+  0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, /*0x10-0x17*/
+  0xbe49, 0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, /*0x18-0x1f*/
+  0xbe51, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, /*0x20-0x27*/
+  0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe61, 0xbe62, 0xbe63, 0xbe64, /*0x28-0x2f*/
+  0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, /*0x30-0x37*/
+  0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, /*0x38-0x3f*/
+  0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, /*0x40-0x47*/
+  0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, /*0x48-0x4f*/
+  0xbe89, 0xbe8a, 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, /*0x50-0x57*/
+  0xbe91, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, /*0x58-0x5f*/
+  0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbea1, 0xbea2, 0xbea3, 0xbea4, /*0x60-0x67*/
+  0xbea5, 0xbea6, 0xbea7, 0xbea8, 0xbea9, 0xbeaa, 0xbeab, 0xbeac, /*0x68-0x6f*/
+  0xbead, 0xbeae, 0xbeaf, 0xbeb0, 0xbeb1, 0xbeb3, 0xbeb4, 0xbeb5, /*0x70-0x77*/
+  0xbeb6, 0xbeb7, 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd, /*0x78-0x7f*/
+  0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xbec5, 0xbec6, 0xbec7, 0xbec8, /*0x80-0x87*/
+  0xbec9, 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, 0xbecf, 0xbed0, /*0x88-0x8f*/
+  0xbed1, 0xbed3, 0xbed4, 0xbed5, 0xbed6, 0xbed7, 0xbed8, 0xbed9, /*0x90-0x97*/
+  0xbeda, 0xbedb, 0xbedc, 0xbedd, 0xbee1, 0xbee2, 0xbee3, 0xbee4, /*0x98-0x9f*/
+  0xbee5, 0xbee6, 0xbee7, 0xbee8, 0xbee9, 0xbeea, 0xbeeb, 0xbeec, /*0xa0-0xa7*/
+  0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef3, 0xbef4, 0xbef5, /*0xa8-0xaf*/
+  0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0xbefd, /*0xb0-0xb7*/
+  0xbf41, 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, /*0xb8-0xbf*/
+  0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, /*0xc0-0xc7*/
+  0xbf51, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, /*0xc8-0xcf*/
+  0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf61, 0xbf62, 0xbf63, 0xbf64, /*0xd0-0xd7*/
+  0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, /*0xd8-0xdf*/
+  0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf73, 0xbf74, 0xbf75, /*0xe0-0xe7*/
+  0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, /*0xe8-0xef*/
+  0xbf81, 0xbf82, 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, /*0xf0-0xf7*/
+  0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, /*0xf8-0xff*/
+  /* 0xcc00 */
+  0xbf91, 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, /*0x00-0x07*/
+  0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, /*0x08-0x0f*/
+  0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, 0xbfab, 0xbfac, /*0x10-0x17*/
+  0xbfad, 0xbfae, 0xbfaf, 0xbfb0, 0xbfb1, 0xbfb3, 0xbfb4, 0xbfb5, /*0x18-0x1f*/
+  0xbfb6, 0xbfb7, 0xbfb8, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, /*0x20-0x27*/
+  0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, /*0x28-0x2f*/
+  0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, /*0x30-0x37*/
+  0xc071, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, /*0x38-0x3f*/
+  0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc081, 0xc082, 0xc083, 0xc084, /*0x40-0x47*/
+  0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, 0xc08b, 0xc08c, /*0x48-0x4f*/
+  0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc093, 0xc094, 0xc095, /*0x50-0x57*/
+  0xc096, 0xc097, 0xc098, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, /*0x58-0x5f*/
+  0xc0a1, 0xc0a2, 0xc0a3, 0xc0a4, 0xc0a5, 0xc0a6, 0xc0a7, 0xc0a8, /*0x60-0x67*/
+  0xc0a9, 0xc0aa, 0xc0ab, 0xc0ac, 0xc0ad, 0xc0ae, 0xc0af, 0xc0b0, /*0x68-0x6f*/
+  0xc0b1, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0b7, 0xc0b8, 0xc0b9, /*0x70-0x77*/
+  0xc0ba, 0xc0bb, 0xc0bc, 0xc0bd, 0xc0c1, 0xc0c2, 0xc0c3, 0xc0c4, /*0x78-0x7f*/
+  0xc0c5, 0xc0c6, 0xc0c7, 0xc0c8, 0xc0c9, 0xc0ca, 0xc0cb, 0xc0cc, /*0x80-0x87*/
+  0xc0cd, 0xc0ce, 0xc0cf, 0xc0d0, 0xc0d1, 0xc0d3, 0xc0d4, 0xc0d5, /*0x88-0x8f*/
+  0xc0d6, 0xc0d7, 0xc0d8, 0xc0d9, 0xc0da, 0xc0db, 0xc0dc, 0xc0dd, /*0x90-0x97*/
+  0xc0e1, 0xc0e2, 0xc0e3, 0xc0e4, 0xc0e5, 0xc0e6, 0xc0e7, 0xc0e8, /*0x98-0x9f*/
+  0xc0e9, 0xc0ea, 0xc0eb, 0xc0ec, 0xc0ed, 0xc0ee, 0xc0ef, 0xc0f0, /*0xa0-0xa7*/
+  0xc0f1, 0xc0f3, 0xc0f4, 0xc0f5, 0xc0f6, 0xc0f7, 0xc0f8, 0xc0f9, /*0xa8-0xaf*/
+  0xc0fa, 0xc0fb, 0xc0fc, 0xc0fd, 0xc141, 0xc142, 0xc143, 0xc144, /*0xb0-0xb7*/
+  0xc145, 0xc146, 0xc147, 0xc148, 0xc149, 0xc14a, 0xc14b, 0xc14c, /*0xb8-0xbf*/
+  0xc14d, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc153, 0xc154, 0xc155, /*0xc0-0xc7*/
+  0xc156, 0xc157, 0xc158, 0xc159, 0xc15a, 0xc15b, 0xc15c, 0xc15d, /*0xc8-0xcf*/
+  0xc161, 0xc162, 0xc163, 0xc164, 0xc165, 0xc166, 0xc167, 0xc168, /*0xd0-0xd7*/
+  0xc169, 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, /*0xd8-0xdf*/
+  0xc171, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179, /*0xe0-0xe7*/
+  0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc181, 0xc182, 0xc183, 0xc184, /*0xe8-0xef*/
+  0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, 0xc18c, /*0xf0-0xf7*/
+  0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc193, 0xc194, 0xc195, /*0xf8-0xff*/
+  /* 0xcd00 */
+  0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, /*0x00-0x07*/
+  0xc1a1, 0xc1a2, 0xc1a3, 0xc1a4, 0xc1a5, 0xc1a6, 0xc1a7, 0xc1a8, /*0x08-0x0f*/
+  0xc1a9, 0xc1aa, 0xc1ab, 0xc1ac, 0xc1ad, 0xc1ae, 0xc1af, 0xc1b0, /*0x10-0x17*/
+  0xc1b1, 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, 0xc1b7, 0xc1b8, 0xc1b9, /*0x18-0x1f*/
+  0xc1ba, 0xc1bb, 0xc1bc, 0xc1bd, 0xc1c1, 0xc1c2, 0xc1c3, 0xc1c4, /*0x20-0x27*/
+  0xc1c5, 0xc1c6, 0xc1c7, 0xc1c8, 0xc1c9, 0xc1ca, 0xc1cb, 0xc1cc, /*0x28-0x2f*/
+  0xc1cd, 0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d3, 0xc1d4, 0xc1d5, /*0x30-0x37*/
+  0xc1d6, 0xc1d7, 0xc1d8, 0xc1d9, 0xc1da, 0xc1db, 0xc1dc, 0xc1dd, /*0x38-0x3f*/
+  0xc1e1, 0xc1e2, 0xc1e3, 0xc1e4, 0xc1e5, 0xc1e6, 0xc1e7, 0xc1e8, /*0x40-0x47*/
+  0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f0, /*0x48-0x4f*/
+  0xc1f1, 0xc1f3, 0xc1f4, 0xc1f5, 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, /*0x50-0x57*/
+  0xc1fa, 0xc1fb, 0xc1fc, 0xc1fd, 0xc241, 0xc242, 0xc243, 0xc244, /*0x58-0x5f*/
+  0xc245, 0xc246, 0xc247, 0xc248, 0xc249, 0xc24a, 0xc24b, 0xc24c, /*0x60-0x67*/
+  0xc24d, 0xc24e, 0xc24f, 0xc250, 0xc251, 0xc253, 0xc254, 0xc255, /*0x68-0x6f*/
+  0xc256, 0xc257, 0xc258, 0xc259, 0xc25a, 0xc25b, 0xc25c, 0xc25d, /*0x70-0x77*/
+  0xc261, 0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, /*0x78-0x7f*/
+  0xc269, 0xc26a, 0xc26b, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, /*0x80-0x87*/
+  0xc271, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, /*0x88-0x8f*/
+  0xc27a, 0xc27b, 0xc27c, 0xc27d, 0xc281, 0xc282, 0xc283, 0xc284, /*0x90-0x97*/
+  0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, /*0x98-0x9f*/
+  0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc293, 0xc294, 0xc295, /*0xa0-0xa7*/
+  0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, /*0xa8-0xaf*/
+  0xc2a1, 0xc2a2, 0xc2a3, 0xc2a4, 0xc2a5, 0xc2a6, 0xc2a7, 0xc2a8, /*0xb0-0xb7*/
+  0xc2a9, 0xc2aa, 0xc2ab, 0xc2ac, 0xc2ad, 0xc2ae, 0xc2af, 0xc2b0, /*0xb8-0xbf*/
+  0xc2b1, 0xc2b3, 0xc2b4, 0xc2b5, 0xc2b6, 0xc2b7, 0xc2b8, 0xc2b9, /*0xc0-0xc7*/
+  0xc2ba, 0xc2bb, 0xc2bc, 0xc2bd, 0xc2c1, 0xc2c2, 0xc2c3, 0xc2c4, /*0xc8-0xcf*/
+  0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9, 0xc2ca, 0xc2cb, 0xc2cc, /*0xd0-0xd7*/
+  0xc2cd, 0xc2ce, 0xc2cf, 0xc2d0, 0xc2d1, 0xc2d3, 0xc2d4, 0xc2d5, /*0xd8-0xdf*/
+  0xc2d6, 0xc2d7, 0xc2d8, 0xc2d9, 0xc2da, 0xc2db, 0xc2dc, 0xc2dd, /*0xe0-0xe7*/
+  0xc2e1, 0xc2e2, 0xc2e3, 0xc2e4, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, /*0xe8-0xef*/
+  0xc2e9, 0xc2ea, 0xc2eb, 0xc2ec, 0xc2ed, 0xc2ee, 0xc2ef, 0xc2f0, /*0xf0-0xf7*/
+  0xc2f1, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f6, 0xc2f7, 0xc2f8, 0xc2f9, /*0xf8-0xff*/
+  /* 0xce00 */
+  0xc2fa, 0xc2fb, 0xc2fc, 0xc2fd, 0xc341, 0xc342, 0xc343, 0xc344, /*0x00-0x07*/
+  0xc345, 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, 0xc34b, 0xc34c, /*0x08-0x0f*/
+  0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc353, 0xc354, 0xc355, /*0x10-0x17*/
+  0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc35b, 0xc35c, 0xc35d, /*0x18-0x1f*/
+  0xc361, 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, /*0x20-0x27*/
+  0xc369, 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, /*0x28-0x2f*/
+  0xc371, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379, /*0x30-0x37*/
+  0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc381, 0xc382, 0xc383, 0xc384, /*0x38-0x3f*/
+  0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a, 0xc38b, 0xc38c, /*0x40-0x47*/
+  0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc393, 0xc394, 0xc395, /*0x48-0x4f*/
+  0xc396, 0xc397, 0xc398, 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, /*0x50-0x57*/
+  0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, 0xc3a7, 0xc3a8, /*0x58-0x5f*/
+  0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, 0xc3af, 0xc3b0, /*0x60-0x67*/
+  0xc3b1, 0xc3b3, 0xc3b4, 0xc3b5, 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, /*0x68-0x6f*/
+  0xc3ba, 0xc3bb, 0xc3bc, 0xc3bd, 0xc461, 0xc462, 0xc463, 0xc464, /*0x70-0x77*/
+  0xc465, 0xc466, 0xc467, 0xc468, 0xc469, 0xc46a, 0xc46b, 0xc46c, /*0x78-0x7f*/
+  0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc473, 0xc474, 0xc475, /*0x80-0x87*/
+  0xc476, 0xc477, 0xc478, 0xc479, 0xc47a, 0xc47b, 0xc47c, 0xc47d, /*0x88-0x8f*/
+  0xc481, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, /*0x90-0x97*/
+  0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, /*0x98-0x9f*/
+  0xc491, 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, /*0xa0-0xa7*/
+  0xc49a, 0xc49b, 0xc49c, 0xc49d, 0xc4a1, 0xc4a2, 0xc4a3, 0xc4a4, /*0xa8-0xaf*/
+  0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, 0xc4aa, 0xc4ab, 0xc4ac, /*0xb0-0xb7*/
+  0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, 0xc4b3, 0xc4b4, 0xc4b5, /*0xb8-0xbf*/
+  0xc4b6, 0xc4b7, 0xc4b8, 0xc4b9, 0xc4ba, 0xc4bb, 0xc4bc, 0xc4bd, /*0xc0-0xc7*/
+  0xc4c1, 0xc4c2, 0xc4c3, 0xc4c4, 0xc4c5, 0xc4c6, 0xc4c7, 0xc4c8, /*0xc8-0xcf*/
+  0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, 0xc4cd, 0xc4ce, 0xc4cf, 0xc4d0, /*0xd0-0xd7*/
+  0xc4d1, 0xc4d3, 0xc4d4, 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, /*0xd8-0xdf*/
+  0xc4da, 0xc4db, 0xc4dc, 0xc4dd, 0xc4e1, 0xc4e2, 0xc4e3, 0xc4e4, /*0xe0-0xe7*/
+  0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4e9, 0xc4ea, 0xc4eb, 0xc4ec, /*0xe8-0xef*/
+  0xc4ed, 0xc4ee, 0xc4ef, 0xc4f0, 0xc4f1, 0xc4f3, 0xc4f4, 0xc4f5, /*0xf0-0xf7*/
+  0xc4f6, 0xc4f7, 0xc4f8, 0xc4f9, 0xc4fa, 0xc4fb, 0xc4fc, 0xc4fd, /*0xf8-0xff*/
+  /* 0xcf00 */
+  0xc541, 0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, /*0x00-0x07*/
+  0xc549, 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, /*0x08-0x0f*/
+  0xc551, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, /*0x10-0x17*/
+  0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc561, 0xc562, 0xc563, 0xc564, /*0x18-0x1f*/
+  0xc565, 0xc566, 0xc567, 0xc568, 0xc569, 0xc56a, 0xc56b, 0xc56c, /*0x20-0x27*/
+  0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, /*0x28-0x2f*/
+  0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc57b, 0xc57c, 0xc57d, /*0x30-0x37*/
+  0xc581, 0xc582, 0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, /*0x38-0x3f*/
+  0xc589, 0xc58a, 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, /*0x40-0x47*/
+  0xc591, 0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0xc598, 0xc599, /*0x48-0x4f*/
+  0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, /*0x50-0x57*/
+  0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, 0xc5a9, 0xc5aa, 0xc5ab, 0xc5ac, /*0x58-0x5f*/
+  0xc5ad, 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, 0xc5b3, 0xc5b4, 0xc5b5, /*0x60-0x67*/
+  0xc5b6, 0xc5b7, 0xc5b8, 0xc5b9, 0xc5ba, 0xc5bb, 0xc5bc, 0xc5bd, /*0x68-0x6f*/
+  0xc5c1, 0xc5c2, 0xc5c3, 0xc5c4, 0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, /*0x70-0x77*/
+  0xc5c9, 0xc5ca, 0xc5cb, 0xc5cc, 0xc5cd, 0xc5ce, 0xc5cf, 0xc5d0, /*0x78-0x7f*/
+  0xc5d1, 0xc5d3, 0xc5d4, 0xc5d5, 0xc5d6, 0xc5d7, 0xc5d8, 0xc5d9, /*0x80-0x87*/
+  0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5e1, 0xc5e2, 0xc5e3, 0xc5e4, /*0x88-0x8f*/
+  0xc5e5, 0xc5e6, 0xc5e7, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ec, /*0x90-0x97*/
+  0xc5ed, 0xc5ee, 0xc5ef, 0xc5f0, 0xc5f1, 0xc5f3, 0xc5f4, 0xc5f5, /*0x98-0x9f*/
+  0xc5f6, 0xc5f7, 0xc5f8, 0xc5f9, 0xc5fa, 0xc5fb, 0xc5fc, 0xc5fd, /*0xa0-0xa7*/
+  0xc641, 0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, /*0xa8-0xaf*/
+  0xc649, 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, /*0xb0-0xb7*/
+  0xc651, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658, 0xc659, /*0xb8-0xbf*/
+  0xc65a, 0xc65b, 0xc65c, 0xc65d, 0xc661, 0xc662, 0xc663, 0xc664, /*0xc0-0xc7*/
+  0xc665, 0xc666, 0xc667, 0xc668, 0xc669, 0xc66a, 0xc66b, 0xc66c, /*0xc8-0xcf*/
+  0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671, 0xc673, 0xc674, 0xc675, /*0xd0-0xd7*/
+  0xc676, 0xc677, 0xc678, 0xc679, 0xc67a, 0xc67b, 0xc67c, 0xc67d, /*0xd8-0xdf*/
+  0xc681, 0xc682, 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc688, /*0xe0-0xe7*/
+  0xc689, 0xc68a, 0xc68b, 0xc68c, 0xc68d, 0xc68e, 0xc68f, 0xc690, /*0xe8-0xef*/
+  0xc691, 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, /*0xf0-0xf7*/
+  0xc69a, 0xc69b, 0xc69c, 0xc69d, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a4, /*0xf8-0xff*/
+  /* 0xd000 */
+  0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, 0xc6ac, /*0x00-0x07*/
+  0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b3, 0xc6b4, 0xc6b5, /*0x08-0x0f*/
+  0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, /*0x10-0x17*/
+  0xc6c1, 0xc6c2, 0xc6c3, 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, /*0x18-0x1f*/
+  0xc6c9, 0xc6ca, 0xc6cb, 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, /*0x20-0x27*/
+  0xc6d1, 0xc6d3, 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, /*0x28-0x2f*/
+  0xc6da, 0xc6db, 0xc6dc, 0xc6dd, 0xc6e1, 0xc6e2, 0xc6e3, 0xc6e4, /*0x30-0x37*/
+  0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, /*0x38-0x3f*/
+  0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f3, 0xc6f4, 0xc6f5, /*0x40-0x47*/
+  0xc6f6, 0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, /*0x48-0x4f*/
+  0xc741, 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, /*0x50-0x57*/
+  0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, /*0x58-0x5f*/
+  0xc751, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, /*0x60-0x67*/
+  0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc761, 0xc762, 0xc763, 0xc764, /*0x68-0x6f*/
+  0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c, /*0x70-0x77*/
+  0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc773, 0xc774, 0xc775, /*0x78-0x7f*/
+  0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, 0xc77c, 0xc77d, /*0x80-0x87*/
+  0xc781, 0xc782, 0xc783, 0xc784, 0xc785, 0xc786, 0xc787, 0xc788, /*0x88-0x8f*/
+  0xc789, 0xc78a, 0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0xc790, /*0x90-0x97*/
+  0xc791, 0xc793, 0xc794, 0xc795, 0xc796, 0xc797, 0xc798, 0xc799, /*0x98-0x9f*/
+  0xc79a, 0xc79b, 0xc79c, 0xc79d, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, /*0xa0-0xa7*/
+  0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac, /*0xa8-0xaf*/
+  0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b3, 0xc7b4, 0xc7b5, /*0xb0-0xb7*/
+  0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7bc, 0xc7bd, /*0xb8-0xbf*/
+  0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, /*0xc0-0xc7*/
+  0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, /*0xc8-0xcf*/
+  0xc871, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879, /*0xd0-0xd7*/
+  0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc881, 0xc882, 0xc883, 0xc884, /*0xd8-0xdf*/
+  0xc885, 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a, 0xc88b, 0xc88c, /*0xe0-0xe7*/
+  0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc893, 0xc894, 0xc895, /*0xe8-0xef*/
+  0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, 0xc89b, 0xc89c, 0xc89d, /*0xf0-0xf7*/
+  0xc8a1, 0xc8a2, 0xc8a3, 0xc8a4, 0xc8a5, 0xc8a6, 0xc8a7, 0xc8a8, /*0xf8-0xff*/
+  /* 0xd100 */
+  0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, /*0x00-0x07*/
+  0xc8b1, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9, /*0x08-0x0f*/
+  0xc8ba, 0xc8bb, 0xc8bc, 0xc8bd, 0xc8c1, 0xc8c2, 0xc8c3, 0xc8c4, /*0x10-0x17*/
+  0xc8c5, 0xc8c6, 0xc8c7, 0xc8c8, 0xc8c9, 0xc8ca, 0xc8cb, 0xc8cc, /*0x18-0x1f*/
+  0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d3, 0xc8d4, 0xc8d5, /*0x20-0x27*/
+  0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, /*0x28-0x2f*/
+  0xc8e1, 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7, 0xc8e8, /*0x30-0x37*/
+  0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, /*0x38-0x3f*/
+  0xc8f1, 0xc8f3, 0xc8f4, 0xc8f5, 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9, /*0x40-0x47*/
+  0xc8fa, 0xc8fb, 0xc8fc, 0xc8fd, 0xc941, 0xc942, 0xc943, 0xc944, /*0x48-0x4f*/
+  0xc945, 0xc946, 0xc947, 0xc948, 0xc949, 0xc94a, 0xc94b, 0xc94c, /*0x50-0x57*/
+  0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, 0xc953, 0xc954, 0xc955, /*0x58-0x5f*/
+  0xc956, 0xc957, 0xc958, 0xc959, 0xc95a, 0xc95b, 0xc95c, 0xc95d, /*0x60-0x67*/
+  0xc961, 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, /*0x68-0x6f*/
+  0xc969, 0xc96a, 0xc96b, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, /*0x70-0x77*/
+  0xc971, 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, /*0x78-0x7f*/
+  0xc97a, 0xc97b, 0xc97c, 0xc97d, 0xc981, 0xc982, 0xc983, 0xc984, /*0x80-0x87*/
+  0xc985, 0xc986, 0xc987, 0xc988, 0xc989, 0xc98a, 0xc98b, 0xc98c, /*0x88-0x8f*/
+  0xc98d, 0xc98e, 0xc98f, 0xc990, 0xc991, 0xc993, 0xc994, 0xc995, /*0x90-0x97*/
+  0xc996, 0xc997, 0xc998, 0xc999, 0xc99a, 0xc99b, 0xc99c, 0xc99d, /*0x98-0x9f*/
+  0xc9a1, 0xc9a2, 0xc9a3, 0xc9a4, 0xc9a5, 0xc9a6, 0xc9a7, 0xc9a8, /*0xa0-0xa7*/
+  0xc9a9, 0xc9aa, 0xc9ab, 0xc9ac, 0xc9ad, 0xc9ae, 0xc9af, 0xc9b0, /*0xa8-0xaf*/
+  0xc9b1, 0xc9b3, 0xc9b4, 0xc9b5, 0xc9b6, 0xc9b7, 0xc9b8, 0xc9b9, /*0xb0-0xb7*/
+  0xc9ba, 0xc9bb, 0xc9bc, 0xc9bd, 0xc9c1, 0xc9c2, 0xc9c3, 0xc9c4, /*0xb8-0xbf*/
+  0xc9c5, 0xc9c6, 0xc9c7, 0xc9c8, 0xc9c9, 0xc9ca, 0xc9cb, 0xc9cc, /*0xc0-0xc7*/
+  0xc9cd, 0xc9ce, 0xc9cf, 0xc9d0, 0xc9d1, 0xc9d3, 0xc9d4, 0xc9d5, /*0xc8-0xcf*/
+  0xc9d6, 0xc9d7, 0xc9d8, 0xc9d9, 0xc9da, 0xc9db, 0xc9dc, 0xc9dd, /*0xd0-0xd7*/
+  0xc9e1, 0xc9e2, 0xc9e3, 0xc9e4, 0xc9e5, 0xc9e6, 0xc9e7, 0xc9e8, /*0xd8-0xdf*/
+  0xc9e9, 0xc9ea, 0xc9eb, 0xc9ec, 0xc9ed, 0xc9ee, 0xc9ef, 0xc9f0, /*0xe0-0xe7*/
+  0xc9f1, 0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0xc9f8, 0xc9f9, /*0xe8-0xef*/
+  0xc9fa, 0xc9fb, 0xc9fc, 0xc9fd, 0xca41, 0xca42, 0xca43, 0xca44, /*0xf0-0xf7*/
+  0xca45, 0xca46, 0xca47, 0xca48, 0xca49, 0xca4a, 0xca4b, 0xca4c, /*0xf8-0xff*/
+  /* 0xd200 */
+  0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51, 0xca53, 0xca54, 0xca55, /*0x00-0x07*/
+  0xca56, 0xca57, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5c, 0xca5d, /*0x08-0x0f*/
+  0xca61, 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, /*0x10-0x17*/
+  0xca69, 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, /*0x18-0x1f*/
+  0xca71, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, /*0x20-0x27*/
+  0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca81, 0xca82, 0xca83, 0xca84, /*0x28-0x2f*/
+  0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, 0xca8b, 0xca8c, /*0x30-0x37*/
+  0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca93, 0xca94, 0xca95, /*0x38-0x3f*/
+  0xca96, 0xca97, 0xca98, 0xca99, 0xca9a, 0xca9b, 0xca9c, 0xca9d, /*0x40-0x47*/
+  0xcaa1, 0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, 0xcaa7, 0xcaa8, /*0x48-0x4f*/
+  0xcaa9, 0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, 0xcaaf, 0xcab0, /*0x50-0x57*/
+  0xcab1, 0xcab3, 0xcab4, 0xcab5, 0xcab6, 0xcab7, 0xcab8, 0xcab9, /*0x58-0x5f*/
+  0xcaba, 0xcabb, 0xcabc, 0xcabd, 0xcac1, 0xcac2, 0xcac3, 0xcac4, /*0x60-0x67*/
+  0xcac5, 0xcac6, 0xcac7, 0xcac8, 0xcac9, 0xcaca, 0xcacb, 0xcacc, /*0x68-0x6f*/
+  0xcacd, 0xcace, 0xcacf, 0xcad0, 0xcad1, 0xcad3, 0xcad4, 0xcad5, /*0x70-0x77*/
+  0xcad6, 0xcad7, 0xcad8, 0xcad9, 0xcada, 0xcadb, 0xcadc, 0xcadd, /*0x78-0x7f*/
+  0xcae1, 0xcae2, 0xcae3, 0xcae4, 0xcae5, 0xcae6, 0xcae7, 0xcae8, /*0x80-0x87*/
+  0xcae9, 0xcaea, 0xcaeb, 0xcaec, 0xcaed, 0xcaee, 0xcaef, 0xcaf0, /*0x88-0x8f*/
+  0xcaf1, 0xcaf3, 0xcaf4, 0xcaf5, 0xcaf6, 0xcaf7, 0xcaf8, 0xcaf9, /*0x90-0x97*/
+  0xcafa, 0xcafb, 0xcafc, 0xcafd, 0xcb41, 0xcb42, 0xcb43, 0xcb44, /*0x98-0x9f*/
+  0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, 0xcb4a, 0xcb4b, 0xcb4c, /*0xa0-0xa7*/
+  0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, 0xcb53, 0xcb54, 0xcb55, /*0xa8-0xaf*/
+  0xcb56, 0xcb57, 0xcb58, 0xcb59, 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, /*0xb0-0xb7*/
+  0xcb61, 0xcb62, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, /*0xb8-0xbf*/
+  0xcb69, 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, /*0xc0-0xc7*/
+  0xcb71, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79, /*0xc8-0xcf*/
+  0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb81, 0xcb82, 0xcb83, 0xcb84, /*0xd0-0xd7*/
+  0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89, 0xcb8a, 0xcb8b, 0xcb8c, /*0xd8-0xdf*/
+  0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb93, 0xcb94, 0xcb95, /*0xe0-0xe7*/
+  0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9c, 0xcb9d, /*0xe8-0xef*/
+  0xcba1, 0xcba2, 0xcba3, 0xcba4, 0xcba5, 0xcba6, 0xcba7, 0xcba8, /*0xf0-0xf7*/
+  0xcba9, 0xcbaa, 0xcbab, 0xcbac, 0xcbad, 0xcbae, 0xcbaf, 0xcbb0, /*0xf8-0xff*/
+  /* 0xd300 */
+  0xcbb1, 0xcbb3, 0xcbb4, 0xcbb5, 0xcbb6, 0xcbb7, 0xcbb8, 0xcbb9, /*0x00-0x07*/
+  0xcbba, 0xcbbb, 0xcbbc, 0xcbbd, 0xcc61, 0xcc62, 0xcc63, 0xcc64, /*0x08-0x0f*/
+  0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69, 0xcc6a, 0xcc6b, 0xcc6c, /*0x10-0x17*/
+  0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71, 0xcc73, 0xcc74, 0xcc75, /*0x18-0x1f*/
+  0xcc76, 0xcc77, 0xcc78, 0xcc79, 0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, /*0x20-0x27*/
+  0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, /*0x28-0x2f*/
+  0xcc89, 0xcc8a, 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, /*0x30-0x37*/
+  0xcc91, 0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc98, 0xcc99, /*0x38-0x3f*/
+  0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, 0xcca1, 0xcca2, 0xcca3, 0xcca4, /*0x40-0x47*/
+  0xcca5, 0xcca6, 0xcca7, 0xcca8, 0xcca9, 0xccaa, 0xccab, 0xccac, /*0x48-0x4f*/
+  0xccad, 0xccae, 0xccaf, 0xccb0, 0xccb1, 0xccb3, 0xccb4, 0xccb5, /*0x50-0x57*/
+  0xccb6, 0xccb7, 0xccb8, 0xccb9, 0xccba, 0xccbb, 0xccbc, 0xccbd, /*0x58-0x5f*/
+  0xccc1, 0xccc2, 0xccc3, 0xccc4, 0xccc5, 0xccc6, 0xccc7, 0xccc8, /*0x60-0x67*/
+  0xccc9, 0xccca, 0xcccb, 0xcccc, 0xcccd, 0xccce, 0xcccf, 0xccd0, /*0x68-0x6f*/
+  0xccd1, 0xccd3, 0xccd4, 0xccd5, 0xccd6, 0xccd7, 0xccd8, 0xccd9, /*0x70-0x77*/
+  0xccda, 0xccdb, 0xccdc, 0xccdd, 0xcce1, 0xcce2, 0xcce3, 0xcce4, /*0x78-0x7f*/
+  0xcce5, 0xcce6, 0xcce7, 0xcce8, 0xcce9, 0xccea, 0xcceb, 0xccec, /*0x80-0x87*/
+  0xcced, 0xccee, 0xccef, 0xccf0, 0xccf1, 0xccf3, 0xccf4, 0xccf5, /*0x88-0x8f*/
+  0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, 0xccfb, 0xccfc, 0xccfd, /*0x90-0x97*/
+  0xcd41, 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, /*0x98-0x9f*/
+  0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, /*0xa0-0xa7*/
+  0xcd51, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59, /*0xa8-0xaf*/
+  0xcd5a, 0xcd5b, 0xcd5c, 0xcd5d, 0xcd61, 0xcd62, 0xcd63, 0xcd64, /*0xb0-0xb7*/
+  0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, 0xcd6a, 0xcd6b, 0xcd6c, /*0xb8-0xbf*/
+  0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71, 0xcd73, 0xcd74, 0xcd75, /*0xc0-0xc7*/
+  0xcd76, 0xcd77, 0xcd78, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, /*0xc8-0xcf*/
+  0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd88, /*0xd0-0xd7*/
+  0xcd89, 0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, /*0xd8-0xdf*/
+  0xcd91, 0xcd93, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, /*0xe0-0xe7*/
+  0xcd9a, 0xcd9b, 0xcd9c, 0xcd9d, 0xcda1, 0xcda2, 0xcda3, 0xcda4, /*0xe8-0xef*/
+  0xcda5, 0xcda6, 0xcda7, 0xcda8, 0xcda9, 0xcdaa, 0xcdab, 0xcdac, /*0xf0-0xf7*/
+  0xcdad, 0xcdae, 0xcdaf, 0xcdb0, 0xcdb1, 0xcdb3, 0xcdb4, 0xcdb5, /*0xf8-0xff*/
+  /* 0xd400 */
+  0xcdb6, 0xcdb7, 0xcdb8, 0xcdb9, 0xcdba, 0xcdbb, 0xcdbc, 0xcdbd, /*0x00-0x07*/
+  0xcdc1, 0xcdc2, 0xcdc3, 0xcdc4, 0xcdc5, 0xcdc6, 0xcdc7, 0xcdc8, /*0x08-0x0f*/
+  0xcdc9, 0xcdca, 0xcdcb, 0xcdcc, 0xcdcd, 0xcdce, 0xcdcf, 0xcdd0, /*0x10-0x17*/
+  0xcdd1, 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, 0xcdd7, 0xcdd8, 0xcdd9, /*0x18-0x1f*/
+  0xcdda, 0xcddb, 0xcddc, 0xcddd, 0xcde1, 0xcde2, 0xcde3, 0xcde4, /*0x20-0x27*/
+  0xcde5, 0xcde6, 0xcde7, 0xcde8, 0xcde9, 0xcdea, 0xcdeb, 0xcdec, /*0x28-0x2f*/
+  0xcded, 0xcdee, 0xcdef, 0xcdf0, 0xcdf1, 0xcdf3, 0xcdf4, 0xcdf5, /*0x30-0x37*/
+  0xcdf6, 0xcdf7, 0xcdf8, 0xcdf9, 0xcdfa, 0xcdfb, 0xcdfc, 0xcdfd, /*0x38-0x3f*/
+  0xce41, 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, /*0x40-0x47*/
+  0xce49, 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, /*0x48-0x4f*/
+  0xce51, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce58, 0xce59, /*0x50-0x57*/
+  0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce61, 0xce62, 0xce63, 0xce64, /*0x58-0x5f*/
+  0xce65, 0xce66, 0xce67, 0xce68, 0xce69, 0xce6a, 0xce6b, 0xce6c, /*0x60-0x67*/
+  0xce6d, 0xce6e, 0xce6f, 0xce70, 0xce71, 0xce73, 0xce74, 0xce75, /*0x68-0x6f*/
+  0xce76, 0xce77, 0xce78, 0xce79, 0xce7a, 0xce7b, 0xce7c, 0xce7d, /*0x70-0x77*/
+  0xce81, 0xce82, 0xce83, 0xce84, 0xce85, 0xce86, 0xce87, 0xce88, /*0x78-0x7f*/
+  0xce89, 0xce8a, 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce90, /*0x80-0x87*/
+  0xce91, 0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, /*0x88-0x8f*/
+  0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xcea1, 0xcea2, 0xcea3, 0xcea4, /*0x90-0x97*/
+  0xcea5, 0xcea6, 0xcea7, 0xcea8, 0xcea9, 0xceaa, 0xceab, 0xceac, /*0x98-0x9f*/
+  0xcead, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb3, 0xceb4, 0xceb5, /*0xa0-0xa7*/
+  0xceb6, 0xceb7, 0xceb8, 0xceb9, 0xceba, 0xcebb, 0xcebc, 0xcebd, /*0xa8-0xaf*/
+  0xcec1, 0xcec2, 0xcec3, 0xcec4, 0xcec5, 0xcec6, 0xcec7, 0xcec8, /*0xb0-0xb7*/
+  0xcec9, 0xceca, 0xcecb, 0xcecc, 0xcecd, 0xcece, 0xcecf, 0xced0, /*0xb8-0xbf*/
+  0xced1, 0xced3, 0xced4, 0xced5, 0xced6, 0xced7, 0xced8, 0xced9, /*0xc0-0xc7*/
+  0xceda, 0xcedb, 0xcedc, 0xcedd, 0xcee1, 0xcee2, 0xcee3, 0xcee4, /*0xc8-0xcf*/
+  0xcee5, 0xcee6, 0xcee7, 0xcee8, 0xcee9, 0xceea, 0xceeb, 0xceec, /*0xd0-0xd7*/
+  0xceed, 0xceee, 0xceef, 0xcef0, 0xcef1, 0xcef3, 0xcef4, 0xcef5, /*0xd8-0xdf*/
+  0xcef6, 0xcef7, 0xcef8, 0xcef9, 0xcefa, 0xcefb, 0xcefc, 0xcefd, /*0xe0-0xe7*/
+  0xcf41, 0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, /*0xe8-0xef*/
+  0xcf49, 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, /*0xf0-0xf7*/
+  0xcf51, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59, /*0xf8-0xff*/
+  /* 0xd500 */
+  0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf61, 0xcf62, 0xcf63, 0xcf64, /*0x00-0x07*/
+  0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69, 0xcf6a, 0xcf6b, 0xcf6c, /*0x08-0x0f*/
+  0xcf6d, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71, 0xcf73, 0xcf74, 0xcf75, /*0x10-0x17*/
+  0xcf76, 0xcf77, 0xcf78, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, /*0x18-0x1f*/
+  0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88, /*0x20-0x27*/
+  0xcf89, 0xcf8a, 0xcf8b, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, /*0x28-0x2f*/
+  0xcf91, 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, /*0x30-0x37*/
+  0xcf9a, 0xcf9b, 0xcf9c, 0xcf9d, 0xcfa1, 0xcfa2, 0xcfa3, 0xcfa4, /*0x38-0x3f*/
+  0xcfa5, 0xcfa6, 0xcfa7, 0xcfa8, 0xcfa9, 0xcfaa, 0xcfab, 0xcfac, /*0x40-0x47*/
+  0xcfad, 0xcfae, 0xcfaf, 0xcfb0, 0xcfb1, 0xcfb3, 0xcfb4, 0xcfb5, /*0x48-0x4f*/
+  0xcfb6, 0xcfb7, 0xcfb8, 0xcfb9, 0xcfba, 0xcfbb, 0xcfbc, 0xcfbd, /*0x50-0x57*/
+  0xd061, 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, /*0x58-0x5f*/
+  0xd069, 0xd06a, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, /*0x60-0x67*/
+  0xd071, 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, /*0x68-0x6f*/
+  0xd07a, 0xd07b, 0xd07c, 0xd07d, 0xd081, 0xd082, 0xd083, 0xd084, /*0x70-0x77*/
+  0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a, 0xd08b, 0xd08c, /*0x78-0x7f*/
+  0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd093, 0xd094, 0xd095, /*0x80-0x87*/
+  0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, 0xd09b, 0xd09c, 0xd09d, /*0x88-0x8f*/
+  0xd0a1, 0xd0a2, 0xd0a3, 0xd0a4, 0xd0a5, 0xd0a6, 0xd0a7, 0xd0a8, /*0x90-0x97*/
+  0xd0a9, 0xd0aa, 0xd0ab, 0xd0ac, 0xd0ad, 0xd0ae, 0xd0af, 0xd0b0, /*0x98-0x9f*/
+  0xd0b1, 0xd0b3, 0xd0b4, 0xd0b5, 0xd0b6, 0xd0b7, 0xd0b8, 0xd0b9, /*0xa0-0xa7*/
+  0xd0ba, 0xd0bb, 0xd0bc, 0xd0bd, 0xd0c1, 0xd0c2, 0xd0c3, 0xd0c4, /*0xa8-0xaf*/
+  0xd0c5, 0xd0c6, 0xd0c7, 0xd0c8, 0xd0c9, 0xd0ca, 0xd0cb, 0xd0cc, /*0xb0-0xb7*/
+  0xd0cd, 0xd0ce, 0xd0cf, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4, 0xd0d5, /*0xb8-0xbf*/
+  0xd0d6, 0xd0d7, 0xd0d8, 0xd0d9, 0xd0da, 0xd0db, 0xd0dc, 0xd0dd, /*0xc0-0xc7*/
+  0xd0e1, 0xd0e2, 0xd0e3, 0xd0e4, 0xd0e5, 0xd0e6, 0xd0e7, 0xd0e8, /*0xc8-0xcf*/
+  0xd0e9, 0xd0ea, 0xd0eb, 0xd0ec, 0xd0ed, 0xd0ee, 0xd0ef, 0xd0f0, /*0xd0-0xd7*/
+  0xd0f1, 0xd0f3, 0xd0f4, 0xd0f5, 0xd0f6, 0xd0f7, 0xd0f8, 0xd0f9, /*0xd8-0xdf*/
+  0xd0fa, 0xd0fb, 0xd0fc, 0xd0fd, 0xd141, 0xd142, 0xd143, 0xd144, /*0xe0-0xe7*/
+  0xd145, 0xd146, 0xd147, 0xd148, 0xd149, 0xd14a, 0xd14b, 0xd14c, /*0xe8-0xef*/
+  0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151, 0xd153, 0xd154, 0xd155, /*0xf0-0xf7*/
+  0xd156, 0xd157, 0xd158, 0xd159, 0xd15a, 0xd15b, 0xd15c, 0xd15d, /*0xf8-0xff*/
+  /* 0xd600 */
+  0xd161, 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd168, /*0x00-0x07*/
+  0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f, 0xd170, /*0x08-0x0f*/
+  0xd171, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, /*0x10-0x17*/
+  0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd181, 0xd182, 0xd183, 0xd184, /*0x18-0x1f*/
+  0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a, 0xd18b, 0xd18c, /*0x20-0x27*/
+  0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd193, 0xd194, 0xd195, /*0x28-0x2f*/
+  0xd196, 0xd197, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xd19c, 0xd19d, /*0x30-0x37*/
+  0xd1a1, 0xd1a2, 0xd1a3, 0xd1a4, 0xd1a5, 0xd1a6, 0xd1a7, 0xd1a8, /*0x38-0x3f*/
+  0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1ad, 0xd1ae, 0xd1af, 0xd1b0, /*0x40-0x47*/
+  0xd1b1, 0xd1b3, 0xd1b4, 0xd1b5, 0xd1b6, 0xd1b7, 0xd1b8, 0xd1b9, /*0x48-0x4f*/
+  0xd1ba, 0xd1bb, 0xd1bc, 0xd1bd, 0xd1c1, 0xd1c2, 0xd1c3, 0xd1c4, /*0x50-0x57*/
+  0xd1c5, 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ca, 0xd1cb, 0xd1cc, /*0x58-0x5f*/
+  0xd1cd, 0xd1ce, 0xd1cf, 0xd1d0, 0xd1d1, 0xd1d3, 0xd1d4, 0xd1d5, /*0x60-0x67*/
+  0xd1d6, 0xd1d7, 0xd1d8, 0xd1d9, 0xd1da, 0xd1db, 0xd1dc, 0xd1dd, /*0x68-0x6f*/
+  0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e7, 0xd1e8, /*0x70-0x77*/
+  0xd1e9, 0xd1ea, 0xd1eb, 0xd1ec, 0xd1ed, 0xd1ee, 0xd1ef, 0xd1f0, /*0x78-0x7f*/
+  0xd1f1, 0xd1f3, 0xd1f4, 0xd1f5, 0xd1f6, 0xd1f7, 0xd1f8, 0xd1f9, /*0x80-0x87*/
+  0xd1fa, 0xd1fb, 0xd1fc, 0xd1fd, 0xd241, 0xd242, 0xd243, 0xd244, /*0x88-0x8f*/
+  0xd245, 0xd246, 0xd247, 0xd248, 0xd249, 0xd24a, 0xd24b, 0xd24c, /*0x90-0x97*/
+  0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd253, 0xd254, 0xd255, /*0x98-0x9f*/
+  0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, /*0xa0-0xa7*/
+  0xd261, 0xd262, 0xd263, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, /*0xa8-0xaf*/
+  0xd269, 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, /*0xb0-0xb7*/
+  0xd271, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, /*0xb8-0xbf*/
+  0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd281, 0xd282, 0xd283, 0xd284, /*0xc0-0xc7*/
+  0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a, 0xd28b, 0xd28c, /*0xc8-0xcf*/
+  0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd293, 0xd294, 0xd295, /*0xd0-0xd7*/
+  0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29c, 0xd29d, /*0xd8-0xdf*/
+  0xd2a1, 0xd2a2, 0xd2a3, 0xd2a4, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, /*0xe0-0xe7*/
+  0xd2a9, 0xd2aa, 0xd2ab, 0xd2ac, 0xd2ad, 0xd2ae, 0xd2af, 0xd2b0, /*0xe8-0xef*/
+  0xd2b1, 0xd2b3, 0xd2b4, 0xd2b5, 0xd2b6, 0xd2b7, 0xd2b8, 0xd2b9, /*0xf0-0xf7*/
+  0xd2ba, 0xd2bb, 0xd2bc, 0xd2bd, 0xd2c1, 0xd2c2, 0xd2c3, 0xd2c4, /*0xf8-0xff*/
+  /* 0xd700 */
+  0xd2c5, 0xd2c6, 0xd2c7, 0xd2c8, 0xd2c9, 0xd2ca, 0xd2cb, 0xd2cc, /*0x00-0x07*/
+  0xd2cd, 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0xd2d3, 0xd2d4, 0xd2d5, /*0x08-0x0f*/
+  0xd2d6, 0xd2d7, 0xd2d8, 0xd2d9, 0xd2da, 0xd2db, 0xd2dc, 0xd2dd, /*0x10-0x17*/
+  0xd2e1, 0xd2e2, 0xd2e3, 0xd2e4, 0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, /*0x18-0x1f*/
+  0xd2e9, 0xd2ea, 0xd2eb, 0xd2ec, 0xd2ed, 0xd2ee, 0xd2ef, 0xd2f0, /*0x20-0x27*/
+  0xd2f1, 0xd2f3, 0xd2f4, 0xd2f5, 0xd2f6, 0xd2f7, 0xd2f8, 0xd2f9, /*0x28-0x2f*/
+  0xd2fa, 0xd2fb, 0xd2fc, 0xd2fd, 0xd341, 0xd342, 0xd343, 0xd344, /*0x30-0x37*/
+  0xd345, 0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, 0xd34b, 0xd34c, /*0x38-0x3f*/
+  0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd353, 0xd354, 0xd355, /*0x40-0x47*/
+  0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, /*0x48-0x4f*/
+  0xd361, 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, /*0x50-0x57*/
+  0xd369, 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, /*0x58-0x5f*/
+  0xd371, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379, /*0x60-0x67*/
+  0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd381, 0xd382, 0xd383, 0xd384, /*0x68-0x6f*/
+  0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, 0xd38b, 0xd38c, /*0x70-0x77*/
+  0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd393, 0xd394, 0xd395, /*0x78-0x7f*/
+  0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, 0xd39b, 0xd39c, 0xd39d, /*0x80-0x87*/
+  0xd3a1, 0xd3a2, 0xd3a3, 0xd3a4, 0xd3a5, 0xd3a6, 0xd3a7, 0xd3a8, /*0x88-0x8f*/
+  0xd3a9, 0xd3aa, 0xd3ab, 0xd3ac, 0xd3ad, 0xd3ae, 0xd3af, 0xd3b0, /*0x90-0x97*/
+  0xd3b1, 0xd3b3, 0xd3b4, 0xd3b5, 0xd3b6, 0xd3b7, 0xd3b8, 0xd3b9, /*0x98-0x9f*/
+  0xd3ba, 0xd3bb, 0xd3bc, 0xd3bd, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
+};
+
+static int
+johab_hangul_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    unsigned short c = 0;
+    if (wc >= 0x3130 && wc < 0x3168)
+      c = johab_hangul_page31[wc-0x3130];
+    else if (wc >= 0xac00 && wc < 0xd7a8)
+      c = johab_hangul_pageac[wc-0xac00];
+    if (c != 0) {
+      r[0] = (c >> 8); r[1] = (c & 0xff);
+      return 2;
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/koi8_r.h b/libiconv/koi8_r.h
new file mode 100644 (file)
index 0000000..b0c802e
--- /dev/null
@@ -0,0 +1,134 @@
+
+/*
+ * KOI8-R
+ */
+
+/* Specification: RFC 1489 */
+
+static const unsigned short koi8_r_2uni[128] = {
+  /* 0x80 */
+  0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
+  0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
+  /* 0x90 */
+  0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
+  0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
+  /* 0xa0 */
+  0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
+  0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
+  /* 0xb0 */
+  0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
+  0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
+  /* 0xc0 */
+  0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
+  0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+  /* 0xd0 */
+  0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
+  0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
+  /* 0xe0 */
+  0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
+  0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+  /* 0xf0 */
+  0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
+  0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
+};
+
+static int
+koi8_r_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) koi8_r_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char koi8_r_page00[88] = {
+  0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */
+};
+static const unsigned char koi8_r_page04[88] = {
+  0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */
+  0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */
+  0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */
+  0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */
+  0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */
+  0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */
+  0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */
+  0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */
+  0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+};
+static const unsigned char koi8_r_page22[80] = {
+  0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */
+};
+static const unsigned char koi8_r_page23[8] = {
+  0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char koi8_r_page25[168] = {
+  0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, /* 0x50-0x57 */
+  0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */
+  0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* 0x60-0x67 */
+  0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+koi8_r_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00f8)
+    c = koi8_r_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0458)
+    c = koi8_r_page04[wc-0x0400];
+  else if (wc >= 0x2218 && wc < 0x2268)
+    c = koi8_r_page22[wc-0x2218];
+  else if (wc >= 0x2320 && wc < 0x2328)
+    c = koi8_r_page23[wc-0x2320];
+  else if (wc >= 0x2500 && wc < 0x25a8)
+    c = koi8_r_page25[wc-0x2500];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/koi8_ru.h b/libiconv/koi8_ru.h
new file mode 100644 (file)
index 0000000..caf71b1
--- /dev/null
@@ -0,0 +1,140 @@
+
+/*
+ * KOI8-RU
+ */
+
+static const unsigned short koi8_ru_2uni[128] = {
+  /* 0x80 */
+  0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
+  0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
+  /* 0x90 */
+  0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
+  0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
+  /* 0xa0 */
+  0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
+  0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x045e, 0x255e,
+  /* 0xb0 */
+  0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
+  0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x040e, 0x00a9,
+  /* 0xc0 */
+  0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
+  0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+  /* 0xd0 */
+  0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
+  0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
+  /* 0xe0 */
+  0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
+  0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+  /* 0xf0 */
+  0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
+  0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
+};
+
+static int
+koi8_ru_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) koi8_ru_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char koi8_ru_page00[88] = {
+  0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */
+};
+static const unsigned char koi8_ru_page04[152] = {
+  0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, /* 0x08-0x0f */
+  0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */
+  0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */
+  0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */
+  0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */
+  0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */
+  0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */
+  0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */
+  0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */
+  0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char koi8_ru_page22[80] = {
+  0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */
+};
+static const unsigned char koi8_ru_page23[8] = {
+  0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char koi8_ru_page25[168] = {
+  0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */
+  0xa9, 0xaa, 0xab, 0xac, 0x00, 0x00, 0xaf, 0xb0, /* 0x58-0x5f */
+  0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */
+  0xba, 0xbb, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+koi8_ru_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00f8)
+    c = koi8_ru_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0498)
+    c = koi8_ru_page04[wc-0x0400];
+  else if (wc >= 0x2218 && wc < 0x2268)
+    c = koi8_ru_page22[wc-0x2218];
+  else if (wc >= 0x2320 && wc < 0x2328)
+    c = koi8_ru_page23[wc-0x2320];
+  else if (wc >= 0x2500 && wc < 0x25a8)
+    c = koi8_ru_page25[wc-0x2500];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/koi8_u.h b/libiconv/koi8_u.h
new file mode 100644 (file)
index 0000000..bc0bfd0
--- /dev/null
@@ -0,0 +1,142 @@
+
+/*
+ * KOI8-U
+ */
+
+/* Specification: RFC 2319 */
+
+static const unsigned short koi8_u_2uni[128] = {
+  /* 0x80 */
+  0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
+  0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
+  /* 0x90 */
+  0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
+  0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
+  /* 0xa0 */
+  0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
+  0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
+  /* 0xb0 */
+  0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
+  0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
+  /* 0xc0 */
+  0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
+  0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+  /* 0xd0 */
+  0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
+  0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
+  /* 0xe0 */
+  0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
+  0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+  /* 0xf0 */
+  0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
+  0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
+};
+
+static int
+koi8_u_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) koi8_u_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char koi8_u_page00[88] = {
+  0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */
+};
+static const unsigned char koi8_u_page04[152] = {
+  0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */
+  0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */
+  0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */
+  0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */
+  0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */
+  0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */
+  0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */
+  0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */
+  0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char koi8_u_page22[80] = {
+  0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */
+};
+static const unsigned char koi8_u_page23[8] = {
+  0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char koi8_u_page25[168] = {
+  0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */
+  0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */
+  0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */
+  0xba, 0xbb, 0xbc, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+koi8_u_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00f8)
+    c = koi8_u_page00[wc-0x00a0];
+  else if (wc >= 0x0400 && wc < 0x0498)
+    c = koi8_u_page04[wc-0x0400];
+  else if (wc >= 0x2218 && wc < 0x2268)
+    c = koi8_u_page22[wc-0x2218];
+  else if (wc >= 0x2320 && wc < 0x2328)
+    c = koi8_u_page23[wc-0x2320];
+  else if (wc >= 0x2500 && wc < 0x25a8)
+    c = koi8_u_page25[wc-0x2500];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/ksc5601.h b/libiconv/ksc5601.h
new file mode 100644 (file)
index 0000000..01778bb
--- /dev/null
@@ -0,0 +1,3069 @@
+
+/*
+ * KSC5601.1987-0
+ */
+
+static const unsigned short ksc5601_2uni_page21[3760] = {
+  /* 0x21 */
+  0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003,
+  0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c,
+  0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
+  0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7,
+  0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033,
+  0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, 0x2220,
+  0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, 0x203b,
+  0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1,
+  0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191,
+  0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d,
+  0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282,
+  0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2,
+  /* 0x22 */
+  0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, 0x02d8,
+  0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, 0x02d0,
+  0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 0x25c0,
+  0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663,
+  0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5,
+  0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c,
+  0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196,
+  0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, 0x2116,
+  0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0xc932, 0xc933, 0xc935,
+  0xc936, 0xc937, 0xc938, 0xc939, 0xc93a, 0xc93b, 0xc93c, 0xc93d,
+  0xc93e, 0xc93f, 0xc940, 0xc941, 0xc942, 0xc943, 0xc944, 0xc945,
+  0xc946, 0xc947, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x23 */
+  0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08,
+  0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
+  0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
+  0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
+  0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
+  0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
+  0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
+  0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40,
+  0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
+  0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
+  0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
+  0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
+  /* 0x24 */
+  0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
+  0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
+  0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
+  0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
+  0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
+  0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
+  0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168,
+  0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170,
+  0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178,
+  0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, 0x3180,
+  0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 0x3188,
+  0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e,
+  /* 0x25 */
+  0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
+  0x2178, 0x2179, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2160,
+  0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168,
+  0x2169, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
+  0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
+  0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
+  0xca69, 0xca6a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
+  0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
+  0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
+  0xca85, 0xca86, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x26 */
+  0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c,
+  0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
+  0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f,
+  0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542,
+  0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d,
+  0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, 0x252a,
+  0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, 0x253a,
+  0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, 0x2546,
+  0x2547, 0x2548, 0x2549, 0x254a, 0xcaca, 0xcacb, 0xcace, 0xcad0,
+  0xcad2, 0xcad4, 0xcad5, 0xcad6, 0xcad7, 0xcada, 0xcadb, 0xcadc,
+  0xcadd, 0xcade, 0xcadf, 0xcae1, 0xcae2, 0xcae3, 0xcae4, 0xcae5,
+  0xcae6, 0xcae7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x27 */
+  0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4,
+  0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, 0x339e,
+  0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, 0x338f,
+  0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, 0x33b1,
+  0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9,
+  0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc,
+  0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394,
+  0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5,
+  0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac,
+  0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6, 0xcb39,
+  0xcb3a, 0xcb3b, 0xcb3c, 0xcb3d, 0xcb3e, 0xcb3f, 0xcb40, 0xcb42,
+  0xcb43, 0xcb44, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x28 */
+  0x00c6, 0x00d0, 0x00aa, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x013f,
+  0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, 0xfffd,
+  0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267,
+  0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f,
+  0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277,
+  0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, 0x24d3,
+  0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db,
+  0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3,
+  0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 0x2461,
+  0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
+  0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154,
+  0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e,
+  /* 0x29 */
+  0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0140,
+  0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, 0x0149,
+  0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, 0x3207,
+  0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 0x320f,
+  0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217,
+  0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f,
+  0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7,
+  0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af,
+  0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475,
+  0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d,
+  0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, 0x00b3,
+  0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084,
+  /* 0x2a */
+  0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
+  0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
+  0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
+  0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
+  0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
+  0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
+  0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
+  0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
+  0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
+  0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
+  0x3091, 0x3092, 0x3093, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f,
+  0xcc71, 0xcc72, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2b */
+  0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
+  0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
+  0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
+  0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
+  0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
+  0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
+  0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
+  0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
+  0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
+  0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
+  0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xccd7, 0xccd8,
+  0xccd9, 0xccda, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2c */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
+  0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+  0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
+  0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
+  0x042f, 0xccff, 0xcd00, 0xcd02, 0xcd03, 0xcd04, 0xcd05, 0xcd06,
+  0xcd07, 0xcd0a, 0xcd0b, 0xcd0d, 0xcd0e, 0xcd0f, 0xcd11, 0xcd12,
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
+  0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+  0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
+  0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
+  0x044f, 0xcd35, 0xcd36, 0xcd37, 0xcd38, 0xcd3a, 0xcd3b, 0xcd3c,
+  0xcd3d, 0xcd3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2d */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xcd61, 0xcd62, 0xcd63, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69,
+  0xcd6a, 0xcd6b, 0xcd6e, 0xcd70, 0xcd72, 0xcd73, 0xcd74, 0xcd75,
+  0xcd76, 0xcd77, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e,
+  0xcd7f, 0xcd80, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd89,
+  0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91,
+  0xcd92, 0xcd93, 0xcd96, 0xcd97, 0xcd99, 0xcd9a, 0xcd9b, 0xcd9d,
+  0xcd9e, 0xcd9f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2e */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xcdc6, 0xcdc7, 0xcdc8, 0xcdc9, 0xcdca, 0xcdcb, 0xcdcd, 0xcdce,
+  0xcdcf, 0xcdd1, 0xcdd2, 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, 0xcdd7,
+  0xcdd8, 0xcdd9, 0xcdda, 0xcddb, 0xcddc, 0xcddd, 0xcdde, 0xcddf,
+  0xcde0, 0xcde1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xcde2, 0xcde3, 0xcde4, 0xcde5, 0xcde6, 0xcde7, 0xcde9, 0xcdea,
+  0xcdeb, 0xcded, 0xcdee, 0xcdef, 0xcdf1, 0xcdf2, 0xcdf3, 0xcdf4,
+  0xcdf5, 0xcdf6, 0xcdf7, 0xcdfa, 0xcdfc, 0xcdfe, 0xcdff, 0xce00,
+  0xce01, 0xce02, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x2f */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xce2c, 0xce2d, 0xce2e, 0xce2f, 0xce32, 0xce34, 0xce36, 0xce37,
+  0xce38, 0xce39, 0xce3a, 0xce3b, 0xce3c, 0xce3d, 0xce3e, 0xce3f,
+  0xce40, 0xce41, 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47,
+  0xce48, 0xce49, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51,
+  0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce5a, 0xce5b,
+  0xce5d, 0xce5e, 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67,
+  0xce6a, 0xce6c, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x30 */
+  0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10,
+  0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19,
+  0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d,
+  0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b,
+  0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77,
+  0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86,
+  0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d,
+  0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf,
+  0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4,
+  0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7,
+  0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5,
+  0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06,
+  /* 0x31 */
+  0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, 0xad29,
+  0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45,
+  0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, 0xad6c,
+  0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c,
+  0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, 0xad90,
+  0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8,
+  0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9,
+  0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d,
+  0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, 0xae40,
+  0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e,
+  0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61,
+  0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78,
+  /* 0x32 */
+  0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, 0xaebc,
+  0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0,
+  0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, 0xaef4,
+  0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d,
+  0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, 0xaf42,
+  0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65,
+  0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, 0xaf9c,
+  0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb,
+  0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, 0xaff1,
+  0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014,
+  0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, 0xb04c,
+  0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059,
+  /* 0x33 */
+  0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, 0xb08f,
+  0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1,
+  0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af,
+  0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5,
+  0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, 0xb0e0,
+  0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113,
+  0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, 0xb125,
+  0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140,
+  0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, 0xb158,
+  0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188,
+  0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, 0xb19c,
+  0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd,
+  /* 0x34 */
+  0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd,
+  0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217,
+  0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268,
+  0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290,
+  0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3,
+  0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9,
+  0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2,
+  0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee,
+  0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa,
+  0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311,
+  0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358,
+  0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365,
+  /* 0x35 */
+  0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378,
+  0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, 0xb394,
+  0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb,
+  0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db,
+  0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c,
+  0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, 0xb454,
+  0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488,
+  0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0,
+  0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3,
+  0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514,
+  0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528,
+  0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538,
+  /* 0x36 */
+  0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d,
+  0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, 0xb5a0,
+  0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3,
+  0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, 0xb5cc,
+  0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611,
+  0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, 0xb668,
+  0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4,
+  0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, 0xb729,
+  0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748,
+  0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, 0xb771,
+  0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d,
+  0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797,
+  /* 0x37 */
+  0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac,
+  0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, 0xb7ed,
+  0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807,
+  0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, 0xb81d,
+  0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838,
+  0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, 0xb860,
+  0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d,
+  0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, 0xb8c5,
+  0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9,
+  0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, 0xb918,
+  0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951,
+  0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969,
+  /* 0x38 */
+  0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985,
+  0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0,
+  0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc,
+  0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db,
+  0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec,
+  0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01,
+  0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48,
+  0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58,
+  0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71,
+  0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8,
+  0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb,
+  0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc,
+  /* 0x39 */
+  0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20,
+  0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c,
+  0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f,
+  0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c,
+  0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4,
+  0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00,
+  0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11,
+  0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d,
+  0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30,
+  0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45,
+  0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88,
+  0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97,
+  /* 0x3a */
+  0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, 0xbcb0,
+  0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4,
+  0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, 0xbcf4,
+  0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09,
+  0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, 0xbd4c,
+  0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84,
+  0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, 0xbd95,
+  0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5,
+  0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, 0xbe03,
+  0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f,
+  0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, 0xbe57,
+  0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64,
+  /* 0x3b */
+  0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, 0xbe7b,
+  0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90,
+  0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, 0xbed7,
+  0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08,
+  0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, 0xbf41,
+  0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5,
+  0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, 0xc03c,
+  0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091,
+  0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, 0xc0ad,
+  0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd,
+  0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, 0xc0d0,
+  0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4,
+  /* 0x3c */
+  0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100,
+  0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f,
+  0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f,
+  0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148,
+  0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c,
+  0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178,
+  0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c,
+  0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0,
+  0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0,
+  0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200,
+  0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c,
+  0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d,
+  /* 0x3d */
+  0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254,
+  0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c,
+  0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b,
+  0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5,
+  0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb,
+  0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb,
+  0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314,
+  0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, 0xc345,
+  0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c,
+  0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc,
+  0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5,
+  0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430,
+  /* 0x3e */
+  0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c,
+  0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, 0xc4bc,
+  0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500,
+  0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, 0xc52c,
+  0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548,
+  0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, 0xc555,
+  0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564,
+  0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, 0xc57d,
+  0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595,
+  0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, 0xc5b8,
+  0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6,
+  0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce,
+  /* 0x3f */
+  0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5,
+  0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, 0xc5fc,
+  0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607,
+  0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, 0xc624,
+  0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634,
+  0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, 0xc648,
+  0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660,
+  0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, 0xc688,
+  0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4,
+  0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, 0xc6b9,
+  0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0,
+  0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8,
+  /* 0x40 */
+  0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705,
+  0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721,
+  0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c,
+  0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751,
+  0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c,
+  0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d,
+  0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a,
+  0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a,
+  0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad,
+  0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8,
+  0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8,
+  0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a,
+  /* 0x41 */
+  0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820,
+  0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840,
+  0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, 0xc874,
+  0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887,
+  0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8,
+  0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7,
+  0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900,
+  0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918,
+  0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, 0xc961,
+  0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c,
+  0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4,
+  0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3,
+  /* 0x42 */
+  0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, 0xc9e2,
+  0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8,
+  0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, 0xca0d,
+  0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c,
+  0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, 0xca98,
+  0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1,
+  0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, 0xcb10,
+  0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c,
+  0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, 0xcb9c,
+  0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10,
+  0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, 0xcc29,
+  0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b,
+  /* 0x43 */
+  0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, 0xcc54,
+  0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68,
+  0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, 0xcca9,
+  0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4,
+  0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, 0xccf0,
+  0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b,
+  0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, 0xcd64,
+  0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95,
+  0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, 0xcdc4,
+  0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb,
+  0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, 0xce21,
+  0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35,
+  /* 0x44 */
+  0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69,
+  0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85,
+  0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1,
+  0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5,
+  0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9,
+  0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15,
+  0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31,
+  0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67,
+  0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c,
+  0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8,
+  0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011,
+  0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c,
+  /* 0x45 */
+  0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060,
+  0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4,
+  0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0,
+  0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4,
+  0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef,
+  0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, 0xd138,
+  0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d,
+  0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c,
+  0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0,
+  0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4,
+  0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234,
+  0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c,
+  /* 0x46 */
+  0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295,
+  0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2bc,
+  0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8,
+  0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, 0xd300,
+  0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314,
+  0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, 0xd328,
+  0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d,
+  0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, 0xd38d,
+  0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8,
+  0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, 0xd3c5,
+  0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed,
+  0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401,
+  /* 0x47 */
+  0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d,
+  0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, 0xd488,
+  0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4,
+  0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, 0xd4fd,
+  0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d,
+  0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, 0xd559,
+  0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574,
+  0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, 0xd589,
+  0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8,
+  0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, 0xd5f4,
+  0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610,
+  0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620,
+  /* 0x48 */
+  0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648,
+  0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c,
+  0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c,
+  0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac,
+  0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1,
+  0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5,
+  0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c,
+  0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738,
+  0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756,
+  0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769,
+  0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789,
+  0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d,
+};
+static const unsigned short ksc5601_2uni_page4a[4888] = {
+  /* 0x4a */
+  0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 0x54e5,
+  0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c,
+  0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36,
+  0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404,
+  0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3,
+  0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7,
+  0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, 0x78f5,
+  0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, 0x9593,
+  0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, 0x8910,
+  0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 0x61be,
+  0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3,
+  0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95,
+  /* 0x4b */
+  0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, 0x5808,
+  0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, 0x6c5f,
+  0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, 0x8221,
+  0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, 0x4ef7,
+  0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 0x69ea,
+  0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900,
+  0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9,
+  0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da,
+  0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d,
+  0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106,
+  0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, 0x5091,
+  0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2,
+  /* 0x4c */
+  0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9,
+  0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694,
+  0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b,
+  0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a,
+  0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac,
+  0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, 0x5770,
+  0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, 0x666f,
+  0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, 0x74a5,
+  0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 0x7d93,
+  0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1,
+  0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951,
+  0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0,
+  /* 0x4d */
+  0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b,
+  0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, 0x53e9,
+  0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, 0x62f7,
+  0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 0x75fc,
+  0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6,
+  0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c,
+  0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2,
+  0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606,
+  0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904,
+  0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, 0x6050,
+  0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, 0x8ca2,
+  0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc,
+  /* 0x4e */
+  0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846,
+  0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec,
+  0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50,
+  0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec,
+  0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, 0x6d38,
+  0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, 0x639b,
+  0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, 0x62d0,
+  0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 0x50d1,
+  0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821,
+  0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e,
+  0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18,
+  0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe,
+  /* 0x4f */
+  0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, 0x5bc7,
+  0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, 0x69cb,
+  0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 0x7396,
+  0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205,
+  0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1,
+  0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b,
+  0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4,
+  0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae,
+  0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, 0x52f8,
+  0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, 0x53a5,
+  0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, 0x8a6d,
+  0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4,
+  /* 0x50 */
+  0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea,
+  0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035,
+  0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908,
+  0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, 0x9699,
+  0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, 0x747e,
+  0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, 0xf909,
+  0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 0x79bd,
+  0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca,
+  0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc,
+  0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b,
+  0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e,
+  0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3,
+  /* 0x51 */
+  0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, 0x6c23,
+  0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 0x74a3,
+  0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a,
+  0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18,
+  0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e,
+  0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854,
+  0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d,
+  0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, 0xf913,
+  0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, 0xf919,
+  0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, 0xf91f,
+  0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 0x6960,
+  0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925,
+  /* 0x52 */
+  0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929,
+  0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0,
+  0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, 0x606c,
+  0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, 0x5f29,
+  0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, 0xf935,
+  0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 0xf93c,
+  0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3,
+  0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166,
+  0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e,
+  0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952,
+  0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959,
+  0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336,
+  /* 0x53 */
+  0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 0x65b7,
+  0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde,
+  0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8,
+  0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b,
+  0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7,
+  0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510,
+  0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, 0x7cd6,
+  0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, 0x5cb1,
+  0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, 0x8cb8,
+  0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 0x5230,
+  0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6,
+  0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843,
+  /* 0x54 */
+  0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc,
+  0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, 0x8e48,
+  0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, 0x6bd2,
+  0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, 0x7e9b,
+  0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 0x711e,
+  0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd,
+  0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c,
+  0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597,
+  0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017,
+  0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97,
+  0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, 0x9127,
+  0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85,
+  /* 0x55 */
+  0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de,
+  0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375,
+  0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3,
+  0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd,
+  0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a,
+  0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, 0x5fa0,
+  0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, 0x51c9,
+  0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, 0x8f1b,
+  0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 0x623e,
+  0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62,
+  0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b,
+  0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23,
+  /* 0x56 */
+  0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, 0x934a,
+  0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, 0x6582,
+  0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, 0xf95f,
+  0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 0x8046,
+  0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7,
+  0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3,
+  0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def,
+  0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0,
+  0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727,
+  0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, 0x78ca,
+  0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, 0x5ed6,
+  0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc,
+  /* 0x57 */
+  0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda,
+  0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b,
+  0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409,
+  0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e,
+  0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, 0x5f8b,
+  0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, 0x51cc,
+  0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, 0x5398,
+  0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 0x7281,
+  0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8,
+  0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d,
+  0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f,
+  0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c,
+  /* 0x58 */
+  0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, 0x78e8,
+  0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, 0x83ab,
+  0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 0x633d,
+  0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513,
+  0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab,
+  0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b,
+  0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb,
+  0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164,
+  0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, 0x964c,
+  0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, 0x840c,
+  0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, 0x7704,
+  0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5,
+  /* 0x59 */
+  0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f,
+  0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4,
+  0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478,
+  0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, 0x7261,
+  0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, 0x8b28,
+  0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, 0x9da9,
+  0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 0x5999,
+  0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7,
+  0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab,
+  0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46,
+  0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8,
+  0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587,
+  /* 0x5a */
+  0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, 0x52ff,
+  0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 0x5fae,
+  0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e,
+  0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d,
+  0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9,
+  0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd,
+  0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94,
+  0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, 0x99c1,
+  0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, 0x6591,
+  0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, 0x76fc,
+  0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 0x9812,
+  0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51,
+  /* 0x5b */
+  0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d,
+  0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9,
+  0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, 0x80aa,
+  0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, 0x90a6,
+  0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, 0x62dc,
+  0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 0x88f4,
+  0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70,
+  0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a,
+  0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc,
+  0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e,
+  0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb,
+  0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656,
+  /* 0x5c */
+  0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 0x8b8a,
+  0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19,
+  0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5,
+  0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08,
+  0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a,
+  0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14,
+  0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, 0x798f,
+  0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, 0x99a5,
+  0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, 0x5cf0,
+  0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 0x8702,
+  0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256,
+  0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66,
+  /* 0x5d */
+  0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7,
+  0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, 0x8151,
+  0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, 0x8cfb,
+  0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, 0x9ce7,
+  0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 0x5fff,
+  0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde,
+  0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f,
+  0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15,
+  0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2,
+  0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6,
+  0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, 0x7891,
+  0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5,
+  /* 0x5e */
+  0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb,
+  0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c,
+  0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7,
+  0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b,
+  0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2,
+  0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, 0x5beb,
+  0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, 0x659c,
+  0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, 0x6e23,
+  0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 0x7be9,
+  0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df,
+  0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc,
+  0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a,
+  /* 0x5f */
+  0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, 0x759d,
+  0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, 0x715e,
+  0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, 0x8518,
+  0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 0x50cf,
+  0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38,
+  0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d,
+  0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4,
+  0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7,
+  0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d,
+  0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, 0x6055,
+  0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, 0x68f2,
+  0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72,
+  /* 0x60 */
+  0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd,
+  0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790,
+  0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b,
+  0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e,
+  0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, 0x766c,
+  0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, 0x861a,
+  0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, 0x9bae,
+  0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 0x859b,
+  0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2,
+  0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee,
+  0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f,
+  0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c,
+  /* 0x61 */
+  0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, 0x6b72,
+  0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, 0x562f,
+  0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 0x6414,
+  0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2,
+  0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20,
+  0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5,
+  0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f,
+  0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0,
+  0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, 0x8a1f,
+  0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, 0x9396,
+  0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, 0x58fd,
+  0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101,
+  /* 0x62 */
+  0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a,
+  0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2,
+  0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac,
+  0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, 0x8896,
+  0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, 0x92b9,
+  0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, 0x9ad3,
+  0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 0x6f5a,
+  0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa,
+  0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3,
+  0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340,
+  0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4,
+  0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27,
+  /* 0x63 */
+  0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, 0x8936,
+  0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 0x6607,
+  0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4,
+  0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f,
+  0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494,
+  0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4,
+  0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184,
+  0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, 0x4f81,
+  0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, 0x71fc,
+  0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, 0x85ce,
+  0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 0x5ba4,
+  0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81,
+  /* 0x64 */
+  0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341,
+  0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25,
+  0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, 0x8a1d,
+  0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, 0x5dbd,
+  0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, 0x9354,
+  0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 0x6848,
+  0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb,
+  0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4,
+  0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f,
+  0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16,
+  0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, 0x5384,
+  0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d,
+  /* 0x65 */
+  0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 0x591c,
+  0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31,
+  0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d,
+  0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da,
+  0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001,
+  0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c,
+  0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, 0x5704,
+  0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, 0x9b5a,
+  0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, 0x5830,
+  0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 0x513c,
+  0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88,
+  0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982,
+  /* 0x66 */
+  0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207,
+  0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, 0xf988,
+  0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, 0xf98c,
+  0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, 0x5827,
+  0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 0x6350,
+  0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5,
+  0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5,
+  0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f,
+  0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b,
+  0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1,
+  0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3,
+  0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2,
+  /* 0x67 */
+  0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449,
+  0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac,
+  0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41,
+  0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b,
+  0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1,
+  0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, 0xf9b4,
+  0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, 0x6fca,
+  0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, 0x88d4,
+  0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 0x9810,
+  0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da,
+  0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca,
+  0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3,
+  /* 0x68 */
+  0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, 0x9f07,
+  0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, 0x761f,
+  0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, 0x7515,
+  0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 0x7aa9,
+  0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b,
+  0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9,
+  0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0,
+  0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a,
+  0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb,
+  0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, 0xf9bc,
+  0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, 0x66dc,
+  0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1,
+  /* 0x69 */
+  0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef,
+  0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32,
+  0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7,
+  0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67,
+  0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, 0x84c9,
+  0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, 0x512a,
+  0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, 0x6182,
+  0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 0x79b9,
+  0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5,
+  0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631,
+  0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52,
+  0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553,
+  /* 0x6a */
+  0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, 0x718a,
+  0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, 0x5a9b,
+  0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 0x6e72,
+  0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060,
+  0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d,
+  0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170,
+  0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466,
+  0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f,
+  0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, 0x5b7a,
+  0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, 0x6109,
+  0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, 0x6961,
+  0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb,
+  /* 0x6b */
+  0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652,
+  0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb,
+  0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9,
+  0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, 0x80b2,
+  0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, 0x6f64,
+  0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, 0xf9d9,
+  0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 0xf9dc,
+  0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59,
+  0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3,
+  0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100,
+  0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3,
+  0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc,
+  /* 0x6c */
+  0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, 0x5937,
+  0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 0xf9e1,
+  0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5,
+  0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7,
+  0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c,
+  0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a,
+  0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb,
+  0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, 0x8335,
+  0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, 0xf9f3,
+  0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, 0x93b0,
+  0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 0xf9f5,
+  0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344,
+  /* 0x6d */
+  0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4,
+  0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063,
+  0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, 0x78c1,
+  0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, 0x8cc7,
+  0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, 0x70b8,
+  0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 0x68e7,
+  0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a,
+  0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef,
+  0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756,
+  0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b,
+  0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523,
+  0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577,
+  /* 0x6e */
+  0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 0x683d,
+  0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09,
+  0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e,
+  0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17,
+  0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7,
+  0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8,
+  0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, 0x6575,
+  0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, 0x7e3e,
+  0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, 0x8fea,
+  0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 0x5178,
+  0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb,
+  0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1,
+  /* 0x6f */
+  0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b,
+  0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, 0x9293,
+  0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, 0x622a,
+  0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, 0x5cbe,
+  0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 0x63a5,
+  0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448,
+  0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a,
+  0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89,
+  0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1,
+  0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d,
+  0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, 0x914a,
+  0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756,
+  /* 0x70 */
+  0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d,
+  0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd,
+  0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d,
+  0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14,
+  0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d,
+  0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, 0x722a,
+  0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, 0x7c97,
+  0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, 0x8abf,
+  0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 0x9ce5,
+  0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9,
+  0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9,
+  0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b,
+  /* 0x71 */
+  0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, 0x5ea7,
+  0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, 0x80c4,
+  0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, 0x665d,
+  0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 0x70b7,
+  0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db,
+  0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152,
+  0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8,
+  0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c,
+  0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301,
+  0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, 0x6c41,
+  0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, 0x75c7,
+  0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea,
+  /* 0x72 */
+  0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f,
+  0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c,
+  0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3,
+  0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072,
+  0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, 0x5875,
+  0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, 0x6d25,
+  0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, 0x771e,
+  0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 0x8a3a,
+  0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707,
+  0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be,
+  0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f,
+  0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f,
+  /* 0x73 */
+  0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, 0x501f,
+  0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, 0x7b9a,
+  0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 0x7a84,
+  0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da,
+  0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d,
+  0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed,
+  0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92,
+  0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70,
+  0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, 0x6f32,
+  0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, 0x50b5,
+  0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, 0x83dc,
+  0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56,
+  /* 0x74 */
+  0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254,
+  0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620,
+  0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929,
+  0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, 0x85a6,
+  0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, 0x51f8,
+  0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, 0x8f4d,
+  0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 0x7c3d,
+  0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252,
+  0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8,
+  0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff,
+  0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d,
+  0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2,
+  /* 0x75 */
+  0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, 0x790e,
+  0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 0x8c82,
+  0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7,
+  0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a,
+  0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283,
+  0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e,
+  0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf,
+  0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, 0x939a,
+  0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, 0x7b51,
+  0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, 0x6625,
+  0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 0x6c96,
+  0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403,
+  /* 0x76 */
+  0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0,
+  0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074,
+  0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, 0x55e4,
+  0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, 0x75d4,
+  0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, 0x81f4,
+  0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 0x98ed,
+  0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88,
+  0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31,
+  0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253,
+  0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c,
+  0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b,
+  0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17,
+  /* 0x77 */
+  0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 0x7058,
+  0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d,
+  0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03,
+  0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70,
+  0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04,
+  0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e,
+  0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, 0x5806,
+  0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, 0x59ac,
+  0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, 0x5a46,
+  0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 0x722c,
+  0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742,
+  0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211,
+  /* 0x78 */
+  0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557,
+  0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, 0x5f6d,
+  0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, 0x7247,
+  0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, 0x576a,
+  0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 0x5ee2,
+  0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305,
+  0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b,
+  0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de,
+  0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea,
+  0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07,
+  0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, 0x74e2,
+  0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43,
+  /* 0x79 */
+  0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c,
+  0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c,
+  0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d,
+  0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630,
+  0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15,
+  0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, 0x608d,
+  0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, 0x9591,
+  0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, 0x54b8,
+  0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 0x9677,
+  0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c,
+  0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d,
+  0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a,
+  /* 0x7a */
+  0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, 0x595a,
+  0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, 0x89e3,
+  0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, 0x5016,
+  0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 0x73e6,
+  0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b,
+  0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57,
+  0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8,
+  0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d,
+  0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249,
+  0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, 0x5354,
+  0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, 0x83a2,
+  0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b,
+  /* 0x7b */
+  0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9,
+  0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8,
+  0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af,
+  0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5,
+  0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, 0x6dcf,
+  0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, 0x7425,
+  0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, 0x82a6,
+  0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 0x93ac,
+  0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7,
+  0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18,
+  0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b,
+  0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575,
+  /* 0x7c */
+  0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, 0x9774,
+  0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, 0x559a,
+  0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 0x6853,
+  0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b,
+  0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d,
+  0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f,
+  0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352,
+  0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a,
+  0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, 0x6fae,
+  0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, 0x8cc4,
+  0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, 0x5b5d,
+  0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6,
+  /* 0x7d */
+  0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e,
+  0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd,
+  0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb,
+  0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, 0x8431,
+  0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, 0x7147,
+  0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, 0x8667,
+  0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 0x80f8,
+  0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07,
+  0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5,
+  0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09,
+  0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9,
+  0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70,
+};
+
+static int
+ksc5601_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x21 && c1 <= 0x48) || (c1 >= 0x4a && c1 <= 0x7d)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x21 && c2 < 0x7f) {
+        unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
+        unsigned short wc = 0xfffd;
+        if (i < 3854) {
+          if (i < 3760)
+            wc = ksc5601_2uni_page21[i];
+        } else {
+          if (i < 8742)
+            wc = ksc5601_2uni_page4a[i-3854];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (wchar_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short ksc5601_2charset[8473] = {
+  0x222e, 0x2234, 0x2157, 0x2127, 0x2823, 0x2129, 0x2146, 0x213e,
+  0x2977, 0x2978, 0x2225, 0x2252, 0x2124, 0x222c, 0x2976, 0x282c,
+  0x2879, 0x2876, 0x287a, 0x222f, 0x2821, 0x2822, 0x213f, 0x282a,
+  0x282d, 0x292c, 0x2921, 0x2923, 0x2140, 0x292a, 0x292d, 0x2922,
+  0x2824, 0x2924, 0x2925, 0x2826, 0x2926, 0x2927, 0x2828, 0x2928,
+  0x2829, 0x2929, 0x2930, 0x282f, 0x292f, 0x282b, 0x292b, 0x282e,
+  0x292e, 0x2227, 0x2230, 0x2228, 0x222b, 0x222a, 0x222d, 0x2229,
+  0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548,
+  0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, 0x2550,
+  0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558,
+  0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568,
+  0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, 0x2570,
+  0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2577, 0x2578,
+  0x2c27, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, 0x2c28,
+  0x2c29, 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x2c2f, 0x2c30,
+  0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37, 0x2c38,
+  0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f, 0x2c40,
+  0x2c41, 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, 0x2c58,
+  0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f, 0x2c60,
+  0x2c61, 0x2c62, 0x2c63, 0x2c64, 0x2c65, 0x2c66, 0x2c67, 0x2c68,
+  0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6d, 0x2c6e, 0x2c6f, 0x2c70,
+  0x2c71, 0x2c57, 0x212a, 0x212e, 0x212f, 0x2130, 0x2131, 0x2253,
+  0x2254, 0x2125, 0x2126, 0x2236, 0x2147, 0x2148, 0x2158, 0x2979,
+  0x297a, 0x297b, 0x297c, 0x297d, 0x297e, 0x2149, 0x2235, 0x2724,
+  0x2260, 0x2265, 0x2262, 0x2759, 0x214a, 0x2877, 0x2878, 0x287b,
+  0x287c, 0x287d, 0x287e, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534,
+  0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x2521, 0x2522, 0x2523,
+  0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x2167,
+  0x2168, 0x2166, 0x2169, 0x216a, 0x2255, 0x2258, 0x2256, 0x2259,
+  0x2257, 0x2221, 0x2222, 0x2223, 0x2153, 0x2224, 0x2154, 0x2174,
+  0x2175, 0x2233, 0x2232, 0x216e, 0x2170, 0x2144, 0x2150, 0x212b,
+  0x217c, 0x217d, 0x217b, 0x217a, 0x2172, 0x2173, 0x2231, 0x2145,
+  0x2171, 0x212d, 0x216f, 0x2156, 0x2141, 0x2155, 0x2142, 0x2143,
+  0x216c, 0x216d, 0x2178, 0x2179, 0x2176, 0x2177, 0x2241, 0x2151,
+  0x2152, 0x2867, 0x2868, 0x2869, 0x286a, 0x286b, 0x286c, 0x286d,
+  0x286e, 0x286f, 0x2870, 0x2871, 0x2872, 0x2873, 0x2874, 0x2875,
+  0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, 0x296d, 0x296e,
+  0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, 0x2975, 0x294d,
+  0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955,
+  0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, 0x295c, 0x295d,
+  0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965,
+  0x2966, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, 0x2852, 0x2853,
+  0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, 0x285b,
+  0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, 0x2862, 0x2863,
+  0x2864, 0x2865, 0x2866, 0x2621, 0x262c, 0x2622, 0x262d, 0x2623,
+  0x2648, 0x2647, 0x262e, 0x2624, 0x2642, 0x2641, 0x262f, 0x2626,
+  0x2646, 0x2645, 0x2631, 0x2625, 0x2644, 0x2643, 0x2630, 0x2627,
+  0x263c, 0x2649, 0x264a, 0x2637, 0x264b, 0x264c, 0x2632, 0x2629,
+  0x263e, 0x264d, 0x264e, 0x2639, 0x264f, 0x2650, 0x2634, 0x2628,
+  0x2651, 0x2652, 0x2638, 0x263d, 0x2653, 0x2654, 0x2633, 0x262a,
+  0x2655, 0x2656, 0x263a, 0x263f, 0x2657, 0x2658, 0x2635, 0x262b,
+  0x2659, 0x265a, 0x263b, 0x265b, 0x265c, 0x2640, 0x265d, 0x265e,
+  0x265f, 0x2660, 0x2661, 0x2662, 0x2663, 0x2664, 0x2636, 0x2246,
+  0x2161, 0x2160, 0x2243, 0x2247, 0x2248, 0x224b, 0x224a, 0x2249,
+  0x224c, 0x2163, 0x2162, 0x223a, 0x2239, 0x2165, 0x2164, 0x2238,
+  0x2237, 0x215f, 0x215e, 0x2242, 0x215b, 0x215d, 0x215c, 0x2244,
+  0x2245, 0x215a, 0x2159, 0x224f, 0x224e, 0x2250, 0x2251, 0x214f,
+  0x214e, 0x223c, 0x223d, 0x2240, 0x223b, 0x223e, 0x223f, 0x224d,
+  0x225b, 0x225c, 0x225d, 0x225a, 0x2121, 0x2122, 0x2123, 0x2128,
+  0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, 0x213a, 0x213b,
+  0x213c, 0x213d, 0x216b, 0x2132, 0x2133, 0x2a21, 0x2a22, 0x2a23,
+  0x2a24, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, 0x2a2a, 0x2a2b,
+  0x2a2c, 0x2a2d, 0x2a2e, 0x2a2f, 0x2a30, 0x2a31, 0x2a32, 0x2a33,
+  0x2a34, 0x2a35, 0x2a36, 0x2a37, 0x2a38, 0x2a39, 0x2a3a, 0x2a3b,
+  0x2a3c, 0x2a3d, 0x2a3e, 0x2a3f, 0x2a40, 0x2a41, 0x2a42, 0x2a43,
+  0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, 0x2a4a, 0x2a4b,
+  0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50, 0x2a51, 0x2a52, 0x2a53,
+  0x2a54, 0x2a55, 0x2a56, 0x2a57, 0x2a58, 0x2a59, 0x2a5a, 0x2a5b,
+  0x2a5c, 0x2a5d, 0x2a5e, 0x2a5f, 0x2a60, 0x2a61, 0x2a62, 0x2a63,
+  0x2a64, 0x2a65, 0x2a66, 0x2a67, 0x2a68, 0x2a69, 0x2a6a, 0x2a6b,
+  0x2a6c, 0x2a6d, 0x2a6e, 0x2a6f, 0x2a70, 0x2a71, 0x2a72, 0x2a73,
+  0x2b21, 0x2b22, 0x2b23, 0x2b24, 0x2b25, 0x2b26, 0x2b27, 0x2b28,
+  0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e, 0x2b2f, 0x2b30,
+  0x2b31, 0x2b32, 0x2b33, 0x2b34, 0x2b35, 0x2b36, 0x2b37, 0x2b38,
+  0x2b39, 0x2b3a, 0x2b3b, 0x2b3c, 0x2b3d, 0x2b3e, 0x2b3f, 0x2b40,
+  0x2b41, 0x2b42, 0x2b43, 0x2b44, 0x2b45, 0x2b46, 0x2b47, 0x2b48,
+  0x2b49, 0x2b4a, 0x2b4b, 0x2b4c, 0x2b4d, 0x2b4e, 0x2b4f, 0x2b50,
+  0x2b51, 0x2b52, 0x2b53, 0x2b54, 0x2b55, 0x2b56, 0x2b57, 0x2b58,
+  0x2b59, 0x2b5a, 0x2b5b, 0x2b5c, 0x2b5d, 0x2b5e, 0x2b5f, 0x2b60,
+  0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65, 0x2b66, 0x2b67, 0x2b68,
+  0x2b69, 0x2b6a, 0x2b6b, 0x2b6c, 0x2b6d, 0x2b6e, 0x2b6f, 0x2b70,
+  0x2b71, 0x2b72, 0x2b73, 0x2b74, 0x2b75, 0x2b76, 0x2421, 0x2422,
+  0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, 0x242a,
+  0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, 0x2432,
+  0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, 0x243a,
+  0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, 0x2442,
+  0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244a,
+  0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, 0x2452,
+  0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245a,
+  0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, 0x2462,
+  0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
+  0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
+  0x2473, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
+  0x247b, 0x247c, 0x247d, 0x247e, 0x2931, 0x2932, 0x2933, 0x2934,
+  0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
+  0x293d, 0x293e, 0x293f, 0x2940, 0x2941, 0x2942, 0x2943, 0x2944,
+  0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c,
+  0x225f, 0x2831, 0x2832, 0x2833, 0x2834, 0x2835, 0x2836, 0x2837,
+  0x2838, 0x2839, 0x283a, 0x283b, 0x283c, 0x283d, 0x283e, 0x283f,
+  0x2840, 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, 0x2846, 0x2847,
+  0x2848, 0x2849, 0x284a, 0x284b, 0x284c, 0x225e, 0x2749, 0x274a,
+  0x274b, 0x274c, 0x274d, 0x273a, 0x273b, 0x275c, 0x275d, 0x275e,
+  0x2736, 0x2737, 0x2738, 0x2754, 0x2755, 0x2756, 0x2757, 0x2758,
+  0x2721, 0x2722, 0x2723, 0x2725, 0x272b, 0x272c, 0x272d, 0x272e,
+  0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2727, 0x2728,
+  0x2729, 0x272a, 0x273d, 0x273e, 0x2765, 0x2766, 0x2767, 0x2768,
+  0x2761, 0x2762, 0x2763, 0x273f, 0x2740, 0x2741, 0x2742, 0x2743,
+  0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x274e, 0x274f, 0x2750,
+  0x2751, 0x2752, 0x2753, 0x275a, 0x275b, 0x2263, 0x276c, 0x2726,
+  0x2760, 0x276f, 0x2261, 0x273c, 0x276d, 0x2735, 0x2739, 0x276a,
+  0x276b, 0x275f, 0x2264, 0x2764, 0x276e, 0x2769, 0x6c69, 0x6f4b,
+  0x7652, 0x5832, 0x6d5b, 0x5f32, 0x5f3e, 0x793b, 0x5c74, 0x7564,
+  0x7326, 0x5d60, 0x6126, 0x4e78, 0x5c30, 0x632a, 0x7169, 0x4d7a,
+  0x7c2f, 0x5321, 0x712b, 0x6751, 0x522c, 0x4e79, 0x717d, 0x5e3f,
+  0x7b3a, 0x7939, 0x4e52, 0x632b, 0x6b60, 0x4e7a, 0x4b77, 0x6525,
+  0x4a61, 0x544c, 0x6a61, 0x5c63, 0x5f2d, 0x4b6b, 0x552f, 0x5675,
+  0x6578, 0x5e40, 0x6c23, 0x694d, 0x6a27, 0x6976, 0x7b3b, 0x6769,
+  0x6f4c, 0x5066, 0x5e41, 0x642c, 0x584c, 0x7971, 0x4e5f, 0x7a24,
+  0x6632, 0x7a7b, 0x7a3d, 0x4c48, 0x6f4d, 0x5555, 0x5322, 0x6c51,
+  0x6427, 0x6c52, 0x7631, 0x4e7b, 0x5051, 0x4b3f, 0x6d24, 0x6d28,
+  0x5e42, 0x7662, 0x6d5c, 0x5c75, 0x6039, 0x544e, 0x7435, 0x535b,
+  0x5635, 0x6c24, 0x6466, 0x716a, 0x4b6c, 0x4b40, 0x6c72, 0x506a,
+  0x7972, 0x6c25, 0x505f, 0x676a, 0x506b, 0x5c51, 0x5b69, 0x7d4c,
+  0x5b57, 0x5a61, 0x5636, 0x635f, 0x5e43, 0x5e44, 0x4a21, 0x6e6c,
+  0x5323, 0x6e37, 0x784f, 0x6a48, 0x6e38, 0x712c, 0x7125, 0x694e,
+  0x793c, 0x6579, 0x6c6a, 0x5d56, 0x6d42, 0x7825, 0x653a, 0x5b58,
+  0x4a22, 0x514d, 0x6e6d, 0x6c6b, 0x5e45, 0x6360, 0x4a49, 0x7269,
+  0x554e, 0x7636, 0x4e42, 0x5647, 0x6334, 0x712d, 0x6a62, 0x5742,
+  0x7327, 0x4d6a, 0x6b6e, 0x5932, 0x7d25, 0x7655, 0x5562, 0x7835,
+  0x4c75, 0x7535, 0x642d, 0x676b, 0x7155, 0x703b, 0x6935, 0x4c49,
+  0x7a55, 0x6154, 0x5756, 0x5c41, 0x5e46, 0x7a6f, 0x6361, 0x6173,
+  0x5c76, 0x4e7c, 0x5b44, 0x7871, 0x5c64, 0x656f, 0x5c31, 0x5556,
+  0x735a, 0x4b41, 0x5b43, 0x597a, 0x536e, 0x7a38, 0x7d26, 0x6b6f,
+  0x7426, 0x4c4a, 0x7328, 0x735b, 0x5b27, 0x7637, 0x4f66, 0x7072,
+  0x4b5a, 0x6752, 0x5743, 0x7670, 0x685e, 0x6526, 0x6567, 0x4a23,
+  0x4c27, 0x6a49, 0x7836, 0x7a25, 0x712e, 0x6f4e, 0x4b6d, 0x7630,
+  0x6f4f, 0x694f, 0x775e, 0x4e53, 0x5c77, 0x5b28, 0x4b78, 0x5f21,
+  0x5d61, 0x754a, 0x6936, 0x676c, 0x6e6e, 0x7370, 0x5f3f, 0x4c4b,
+  0x5041, 0x7452, 0x603a, 0x5f40, 0x4e60, 0x5c52, 0x7d6a, 0x5676,
+  0x6a4a, 0x6869, 0x632c, 0x7350, 0x4a24, 0x5b78, 0x5e47, 0x6b70,
+  0x7156, 0x6562, 0x4c4c, 0x4b7b, 0x6a63, 0x5f41, 0x566d, 0x6950,
+  0x6e39, 0x5563, 0x5153, 0x6570, 0x6834, 0x6b43, 0x6a2a, 0x7a7c,
+  0x7576, 0x703c, 0x7d54, 0x603b, 0x4e43, 0x503a, 0x773a, 0x5873,
+  0x774d, 0x642e, 0x545f, 0x5067, 0x6c7d, 0x522e, 0x6e6f, 0x5557,
+  0x6a64, 0x7822, 0x4d6b, 0x573f, 0x7b31, 0x4d6c, 0x5c32, 0x506c,
+  0x4e7d, 0x6e70, 0x4c42, 0x506d, 0x6577, 0x737c, 0x6e22, 0x5933,
+  0x5874, 0x6937, 0x4e2e, 0x5922, 0x5871, 0x544f, 0x6527, 0x5552,
+  0x5629, 0x7422, 0x7157, 0x5558, 0x703d, 0x5750, 0x5450, 0x574f,
+  0x6b6a, 0x7d6b, 0x5b6d, 0x7c45, 0x4b42, 0x7d55, 0x7448, 0x686a,
+  0x7573, 0x795e, 0x536f, 0x6c53, 0x5d42, 0x6f37, 0x6754, 0x4a4a,
+  0x597b, 0x7a7d, 0x562a, 0x7478, 0x7777, 0x5c2c, 0x5757, 0x5f22,
+  0x4e3e, 0x5370, 0x7024, 0x616c, 0x4f67, 0x734b, 0x6d29, 0x4a3e,
+  0x746f, 0x764e, 0x5e7b, 0x503b, 0x5537, 0x6e71, 0x7428, 0x5c78,
+  0x4b27, 0x5a4e, 0x6066, 0x6d25, 0x6e72, 0x5c79, 0x795c, 0x735c,
+  0x7872, 0x7479, 0x7c71, 0x503c, 0x5b79, 0x5731, 0x4b7c, 0x7025,
+  0x4b7d, 0x5574, 0x4d6d, 0x4a25, 0x562b, 0x5042, 0x703e, 0x523d,
+  0x4c24, 0x7a36, 0x4c4d, 0x5a7a, 0x764f, 0x6938, 0x5875, 0x4c4e,
+  0x574d, 0x5451, 0x696d, 0x4a6b, 0x5962, 0x7d32, 0x632d, 0x564c,
+  0x5934, 0x6127, 0x6e53, 0x5043, 0x7d33, 0x5564, 0x4f68, 0x6d43,
+  0x5032, 0x4e7e, 0x5a28, 0x7850, 0x7d56, 0x7851, 0x7852, 0x5c53,
+  0x5d62, 0x7b79, 0x5d41, 0x6335, 0x6d5d, 0x4e44, 0x4b21, 0x5d63,
+  0x7c5d, 0x792f, 0x527b, 0x4f21, 0x6428, 0x7436, 0x6c7e, 0x632e,
+  0x676d, 0x7d41, 0x5a62, 0x5833, 0x5d64, 0x706f, 0x7671, 0x7a70,
+  0x5175, 0x5a4f, 0x5c54, 0x5c26, 0x6f3f, 0x4e4f, 0x6059, 0x5956,
+  0x6c54, 0x6a4b, 0x4a3f, 0x5530, 0x4f69, 0x716d, 0x4c4f, 0x6478,
+  0x646d, 0x5758, 0x7d27, 0x6a2b, 0x7632, 0x4f70, 0x793d, 0x6674,
+  0x4b5b, 0x7351, 0x6951, 0x7329, 0x5060, 0x6952, 0x5a63, 0x6252,
+  0x7622, 0x6174, 0x5a64, 0x6755, 0x753f, 0x4f22, 0x4d2f, 0x4f23,
+  0x4d30, 0x717e, 0x5023, 0x612f, 0x7823, 0x4a26, 0x773b, 0x726a,
+  0x5e48, 0x6953, 0x5e49, 0x7d5e, 0x4a40, 0x796a, 0x514e, 0x6e54,
+  0x5452, 0x5923, 0x7d28, 0x5759, 0x774e, 0x7a3e, 0x4f56, 0x5770,
+  0x6b61, 0x7845, 0x5c7a, 0x5d43, 0x795f, 0x676f, 0x7d65, 0x7623,
+  0x597c, 0x7d29, 0x676e, 0x5565, 0x6f50, 0x4d31, 0x7722, 0x7132,
+  0x7131, 0x4d32, 0x5a2b, 0x4a27, 0x6362, 0x7b3c, 0x5924, 0x6e3a,
+  0x7853, 0x7b7a, 0x4f24, 0x5c7b, 0x7663, 0x6d2a, 0x7221, 0x4e61,
+  0x7a26, 0x7960, 0x6c56, 0x646e, 0x7921, 0x7b6f, 0x796b, 0x6e23,
+  0x6a2c, 0x4a28, 0x747a, 0x4d56, 0x7c76, 0x7449, 0x7854, 0x7826,
+  0x5e4a, 0x7246, 0x575a, 0x5350, 0x5845, 0x6a66, 0x735d, 0x645a,
+  0x7664, 0x7672, 0x5f42, 0x597d, 0x4c76, 0x533a, 0x642f, 0x7961,
+  0x7026, 0x4b53, 0x603c, 0x744a, 0x547a, 0x7d2a, 0x7962, 0x7437,
+  0x7d42, 0x7c30, 0x7d6c, 0x4a62, 0x7d3d, 0x6a67, 0x5f43, 0x5152,
+  0x4e62, 0x5324, 0x7d2b, 0x5f60, 0x7247, 0x6770, 0x506e, 0x732a,
+  0x5e4b, 0x7638, 0x6175, 0x7133, 0x7723, 0x4a29, 0x4f25, 0x5f44,
+  0x6130, 0x703f, 0x7624, 0x6336, 0x7a46, 0x506f, 0x7d6d, 0x5d44,
+  0x7c77, 0x663f, 0x5e2d, 0x7a3f, 0x6571, 0x6d44, 0x5225, 0x7d6e,
+  0x7536, 0x6176, 0x5e4c, 0x7c5e, 0x6c57, 0x4d5d, 0x5637, 0x4d33,
+  0x7855, 0x6558, 0x4f6a, 0x4f50, 0x6a4c, 0x6a2e, 0x6a2d, 0x5371,
+  0x5325, 0x774f, 0x6e24, 0x5024, 0x7222, 0x5070, 0x7223, 0x7778,
+  0x5033, 0x5b29, 0x533b, 0x4a6c, 0x7126, 0x4b55, 0x7767, 0x4d5e,
+  0x7724, 0x7840, 0x535d, 0x4c50, 0x4f26, 0x7673, 0x6177, 0x535c,
+  0x7a7e, 0x7a27, 0x6b59, 0x4f27, 0x6a2f, 0x646f, 0x6939, 0x7158,
+  0x5858, 0x6072, 0x6634, 0x5c7c, 0x7371, 0x6350, 0x727b, 0x5b46,
+  0x5071, 0x5072, 0x4f5c, 0x5351, 0x4c31, 0x7758, 0x4b28, 0x6b3c,
+  0x643e, 0x745c, 0x5c42, 0x7027, 0x6640, 0x4a6d, 0x686b, 0x6568,
+  0x5c43, 0x6d5e, 0x5372, 0x4c77, 0x4e54, 0x672b, 0x4b43, 0x6131,
+  0x7732, 0x5373, 0x5352, 0x7540, 0x5f5d, 0x6e73, 0x6771, 0x7d34,
+  0x7248, 0x7352, 0x6e74, 0x6253, 0x4c51, 0x5f6a, 0x693a, 0x5957,
+  0x754d, 0x7172, 0x7a47, 0x5978, 0x5442, 0x7665, 0x5d45, 0x6772,
+  0x6d5f, 0x4a4b, 0x5b7a, 0x6835, 0x5326, 0x7d35, 0x7949, 0x6462,
+  0x7b3d, 0x5724, 0x4e45, 0x4e55, 0x5666, 0x653d, 0x5e4d, 0x6c73,
+  0x6d60, 0x6c6c, 0x7b3e, 0x5f6b, 0x6178, 0x793e, 0x5073, 0x602a,
+  0x6862, 0x6254, 0x527d, 0x6528, 0x5953, 0x535e, 0x7438, 0x773c,
+  0x5c7d, 0x686c, 0x6467, 0x6377, 0x6c28, 0x7a71, 0x6572, 0x5074,
+  0x522f, 0x5c65, 0x5025, 0x7134, 0x7c31, 0x4c78, 0x5d46, 0x7a51,
+  0x775f, 0x7a28, 0x6e75, 0x5e4e, 0x6773, 0x772c, 0x6b44, 0x6d61,
+  0x602b, 0x5d47, 0x5233, 0x523f, 0x4a4c, 0x7b3f, 0x657d, 0x5d65,
+  0x584d, 0x6c74, 0x5075, 0x686d, 0x5052, 0x5958, 0x7666, 0x5b2a,
+  0x7760, 0x5859, 0x7423, 0x745d, 0x6f51, 0x5935, 0x6d2b, 0x6337,
+  0x6e3b, 0x4d34, 0x6073, 0x6a4d, 0x6c75, 0x686e, 0x4b29, 0x712f,
+  0x4a4d, 0x6c29, 0x726b, 0x7d6f, 0x7973, 0x6641, 0x6c58, 0x6d2c,
+  0x6a4e, 0x685f, 0x5e4f, 0x5226, 0x6774, 0x5156, 0x6642, 0x6363,
+  0x6430, 0x5834, 0x7625, 0x735e, 0x5725, 0x7768, 0x6846, 0x7b66,
+  0x5d66, 0x5c7e, 0x585a, 0x5a2c, 0x6a30, 0x6338, 0x4a2a, 0x6179,
+  0x6a31, 0x726c, 0x7a6e, 0x6e55, 0x7974, 0x526c, 0x7b7b, 0x7d70,
+  0x603d, 0x4e63, 0x7846, 0x5e2e, 0x5f45, 0x653e, 0x6d2d, 0x7a6a,
+  0x4d6e, 0x6d26, 0x6d2e, 0x706d, 0x5d21, 0x6d2f, 0x7c78, 0x586b,
+  0x4c79, 0x4d35, 0x7a29, 0x615d, 0x6255, 0x6d4f, 0x5d22, 0x794a,
+  0x6a68, 0x656d, 0x536b, 0x6954, 0x617a, 0x644c, 0x6164, 0x6847,
+  0x4e5b, 0x5c55, 0x7735, 0x7c73, 0x7073, 0x4e2f, 0x7135, 0x6f52,
+  0x6848, 0x6b71, 0x4b54, 0x603e, 0x6378, 0x6a69, 0x7c32, 0x6074,
+  0x4f60, 0x6e25, 0x7a2a, 0x6643, 0x6132, 0x4a2b, 0x6364, 0x693b,
+  0x6256, 0x7372, 0x6e56, 0x6a32, 0x5076, 0x6c59, 0x5a4b, 0x4f28,
+  0x5d23, 0x585b, 0x794e, 0x6955, 0x6351, 0x523c, 0x582c, 0x734c,
+  0x4d7b, 0x7656, 0x6775, 0x686f, 0x6379, 0x523b, 0x7373, 0x637b,
+  0x5e50, 0x4e30, 0x5677, 0x7159, 0x7541, 0x5c44, 0x753b, 0x5e51,
+  0x5c66, 0x5e52, 0x6d62, 0x6e76, 0x6a4f, 0x706e, 0x637c, 0x535f,
+  0x5374, 0x6133, 0x6134, 0x7453, 0x5f46, 0x6956, 0x5b2b, 0x7626,
+  0x6339, 0x6b45, 0x7429, 0x4d36, 0x5279, 0x5a2d, 0x5263, 0x4f51,
+  0x4b5c, 0x4c7a, 0x4f5d, 0x6829, 0x633b, 0x633a, 0x605a, 0x6e77,
+  0x5c33, 0x5375, 0x5726, 0x7635, 0x575b, 0x6155, 0x546a, 0x5f23,
+  0x7d5f, 0x5077, 0x6d54, 0x4b2a, 0x645b, 0x617b, 0x4b22, 0x5360,
+  0x643f, 0x7b40, 0x5a3e, 0x644d, 0x5639, 0x6f40, 0x617c, 0x7639,
+  0x5f47, 0x6431, 0x5c67, 0x5c68, 0x7a56, 0x5376, 0x715a, 0x7a72,
+  0x627d, 0x554f, 0x5078, 0x4d5f, 0x754b, 0x6470, 0x4b2b, 0x5744,
+  0x627e, 0x5d5a, 0x5a2e, 0x4a6e, 0x5539, 0x6321, 0x6863, 0x732b,
+  0x4f29, 0x5377, 0x5471, 0x4e64, 0x6872, 0x6575, 0x672e, 0x563a,
+  0x5f6c, 0x6440, 0x6864, 0x5835, 0x645c, 0x7439, 0x7136, 0x625e,
+  0x6135, 0x4d6f, 0x7127, 0x4e65, 0x4b5d, 0x5963, 0x732c, 0x5079,
+  0x6c2b, 0x5e53, 0x7769, 0x7975, 0x615e, 0x4b6e, 0x633c, 0x7856,
+  0x5b6e, 0x7d71, 0x7736, 0x745e, 0x726d, 0x5b59, 0x7028, 0x617d,
+  0x5e54, 0x602c, 0x6d63, 0x5361, 0x5f48, 0x5936, 0x7d2c, 0x6f53,
+  0x6441, 0x786b, 0x5b2c, 0x7c46, 0x582d, 0x763a, 0x5b5f, 0x5353,
+  0x7847, 0x4a4e, 0x7841, 0x5234, 0x5c34, 0x7a39, 0x4a4f, 0x7c33,
+  0x6a6a, 0x6a6b, 0x507a, 0x6d64, 0x5d67, 0x5f49, 0x5f6d, 0x6e3c,
+  0x6f41, 0x4c52, 0x5d24, 0x5f4a, 0x5378, 0x7128, 0x4d37, 0x6f54,
+  0x645d, 0x5f6e, 0x4b2c, 0x693c, 0x6a6c, 0x5f4b, 0x793f, 0x562f,
+  0x5546, 0x4f2a, 0x4e29, 0x5678, 0x7137, 0x6e78, 0x5959, 0x735f,
+  0x7848, 0x4e46, 0x5566, 0x7466, 0x6645, 0x6f55, 0x4b6f, 0x7c5f,
+  0x5c27, 0x5667, 0x7849, 0x6352, 0x633d, 0x4f61, 0x7040, 0x6c5a,
+  0x5d57, 0x7b70, 0x6c2c, 0x7029, 0x7a57, 0x7b41, 0x5240, 0x6530,
+  0x6d65, 0x4b2d, 0x7930, 0x7725, 0x4b2e, 0x5a2f, 0x5836, 0x5327,
+  0x7b32, 0x7d44, 0x6c2d, 0x7b21, 0x6569, 0x696e, 0x7374, 0x7873,
+  0x7041, 0x5e2f, 0x7830, 0x7360, 0x672f, 0x5b2d, 0x6635, 0x7928,
+  0x5d58, 0x6859, 0x6f56, 0x5362, 0x625f, 0x7c60, 0x5748, 0x7d2d,
+  0x5f6f, 0x4c53, 0x5379, 0x5470, 0x5b47, 0x5e55, 0x7074, 0x5550,
+  0x6559, 0x7c47, 0x5c56, 0x6260, 0x5a30, 0x7323, 0x536c, 0x744b,
+  0x7d45, 0x637d, 0x7931, 0x507b, 0x6c5b, 0x753c, 0x7224, 0x584e,
+  0x584f, 0x7577, 0x7661, 0x5237, 0x7b6c, 0x5d48, 0x6468, 0x5241,
+  0x7857, 0x563b, 0x5e56, 0x773d, 0x6c2e, 0x5061, 0x6075, 0x6a33,
+  0x4e56, 0x4c25, 0x6c76, 0x6261, 0x633e, 0x7c48, 0x4d70, 0x7976,
+  0x5f70, 0x653f, 0x4e3f, 0x7c61, 0x6d30, 0x7d51, 0x763b, 0x794f,
+  0x6b5a, 0x4a41, 0x5238, 0x4d71, 0x6353, 0x7d66, 0x666d, 0x637a,
+  0x702a, 0x7950, 0x7c62, 0x7827, 0x6165, 0x6e79, 0x6776, 0x6a6d,
+  0x7c34, 0x7542, 0x575c, 0x7075, 0x5d68, 0x536d, 0x757c, 0x5a3f,
+  0x4c7b, 0x537a, 0x7424, 0x6f57, 0x5443, 0x7b63, 0x7b6d, 0x602d,
+  0x6a6e, 0x7b33, 0x6442, 0x7667, 0x525d, 0x5f4c, 0x7c49, 0x6529,
+  0x6076, 0x7633, 0x617e, 0x4b70, 0x6a6f, 0x6a70, 0x5a40, 0x7834,
+  0x6b72, 0x6443, 0x6957, 0x6471, 0x4a6f, 0x4e57, 0x7c4a, 0x7361,
+  0x4b44, 0x6365, 0x4b45, 0x6a34, 0x693d, 0x5749, 0x6b5b, 0x6d31,
+  0x4c43, 0x773e, 0x7c4b, 0x7874, 0x5937, 0x7353, 0x7354, 0x7764,
+  0x7751, 0x5837, 0x4e31, 0x4a42, 0x7b34, 0x4b46, 0x7076, 0x5567,
+  0x6a50, 0x4c54, 0x4b2f, 0x742a, 0x692f, 0x7543, 0x6958, 0x5d69,
+  0x7173, 0x557b, 0x5e3b, 0x747b, 0x7d73, 0x7d72, 0x7726, 0x5d49,
+  0x5453, 0x4c28, 0x5a41, 0x4c55, 0x5964, 0x7a4a, 0x6563, 0x533c,
+  0x4a70, 0x5044, 0x4a50, 0x7a2b, 0x6b6b, 0x6778, 0x5965, 0x5157,
+  0x7324, 0x547b, 0x7c63, 0x7a58, 0x7355, 0x4f2b, 0x6b73, 0x557c,
+  0x5354, 0x4d7c, 0x5966, 0x6279, 0x6221, 0x6b54, 0x6077, 0x6432,
+  0x4c7c, 0x7b64, 0x742b, 0x503d, 0x4a71, 0x6f38, 0x5740, 0x6e7a,
+  0x7d74, 0x5363, 0x7b42, 0x5568, 0x5b2e, 0x6136, 0x7837, 0x603f,
+  0x7b43, 0x5d6a, 0x6222, 0x6e26, 0x7668, 0x7675, 0x5d4a, 0x5062,
+  0x5d26, 0x5d6b, 0x6479, 0x632f, 0x507c, 0x747c, 0x4c3c, 0x776a,
+  0x6564, 0x5f71, 0x7761, 0x7977, 0x6f39, 0x7858, 0x7929, 0x7859,
+  0x6e3d, 0x5846, 0x6463, 0x754e, 0x5d59, 0x5967, 0x5239, 0x5543,
+  0x5a65, 0x5a50, 0x5159, 0x4e58, 0x4b5e, 0x742c, 0x5a7b, 0x7669,
+  0x6873, 0x4f2c, 0x7070, 0x747d, 0x5b48, 0x4e40, 0x6354, 0x514f,
+  0x7175, 0x4d72, 0x4f6b, 0x4d38, 0x6326, 0x515a, 0x7225, 0x7226,
+  0x644e, 0x537b, 0x7129, 0x7249, 0x6f58, 0x6649, 0x5838, 0x7a73,
+  0x7335, 0x7824, 0x5173, 0x6648, 0x785a, 0x5c69, 0x5e57, 0x4b5f,
+  0x4f6c, 0x745f, 0x5174, 0x523a, 0x5f72, 0x6137, 0x6223, 0x537c,
+  0x6d66, 0x5b49, 0x647a, 0x4f5e, 0x4e50, 0x5553, 0x7375, 0x772e,
+  0x6f48, 0x4d73, 0x754f, 0x6573, 0x7042, 0x4a51, 0x6a71, 0x5026,
+  0x595a, 0x702b, 0x6b67, 0x6540, 0x7c35, 0x6444, 0x4c29, 0x7d46,
+  0x6a35, 0x652a, 0x5f3a, 0x615f, 0x5a51, 0x6138, 0x6874, 0x537d,
+  0x6224, 0x724a, 0x5a66, 0x7733, 0x7d4d, 0x7336, 0x6e57, 0x7544,
+  0x5824, 0x7227, 0x5938, 0x5939, 0x6f49, 0x564e, 0x774b, 0x5f2e,
+  0x6875, 0x5235, 0x5355, 0x744c, 0x5a7c, 0x5968, 0x776b, 0x7549,
+  0x733c, 0x5a52, 0x5335, 0x6836, 0x564f, 0x743a, 0x7749, 0x4c2a,
+  0x7043, 0x4c56, 0x5053, 0x533d, 0x5b7b, 0x4b60, 0x5364, 0x7677,
+  0x553a, 0x734d, 0x4b61, 0x6b74, 0x742d, 0x7c2a, 0x776c, 0x6876,
+  0x5a67, 0x774c, 0x6541, 0x606e, 0x557d, 0x4e66, 0x7c2b, 0x553b,
+  0x7228, 0x6225, 0x4d39, 0x6a72, 0x4b47, 0x4d74, 0x5b2f, 0x6f59,
+  0x4d3a, 0x7c79, 0x5f73, 0x4e67, 0x5a42, 0x4f2d, 0x6779, 0x7828,
+  0x7362, 0x4a72, 0x5f24, 0x5444, 0x4c57, 0x6542, 0x4d3b, 0x6f5a,
+  0x6e58, 0x5d27, 0x6226, 0x6040, 0x5630, 0x784a, 0x7c7a, 0x597e,
+  0x5e30, 0x5d6c, 0x5a68, 0x5460, 0x5679, 0x4d57, 0x5e58, 0x7278,
+  0x6456, 0x5045, 0x742e, 0x5d28, 0x6d45, 0x7356, 0x5e59, 0x6366,
+  0x5328, 0x5b30, 0x655a, 0x633f, 0x5b31, 0x5569, 0x6041, 0x6f5b,
+  0x7069, 0x5732, 0x507d, 0x5969, 0x507e, 0x6c6d, 0x5329, 0x7229,
+  0x7044, 0x6262, 0x696f, 0x7951, 0x6959, 0x685a, 0x5a43, 0x5a44,
+  0x5445, 0x677a, 0x4d60, 0x6330, 0x5b32, 0x7b44, 0x7363, 0x5925,
+  0x7b67, 0x5d4b, 0x5054, 0x6636, 0x602e, 0x7d5a, 0x5c35, 0x6078,
+  0x6731, 0x7570, 0x585c, 0x6d46, 0x6139, 0x6340, 0x7940, 0x6970,
+  0x595b, 0x7364, 0x5c36, 0x6469, 0x7045, 0x6341, 0x7c4c, 0x7c4d,
+  0x724b, 0x724c, 0x644f, 0x715b, 0x7a59, 0x7138, 0x7d75, 0x6079,
+  0x677b, 0x7c37, 0x7c64, 0x7b45, 0x6367, 0x5839, 0x7678, 0x5c45,
+  0x4c58, 0x602f, 0x7467, 0x6f5c, 0x4f7c, 0x6f5d, 0x722a, 0x7d3e,
+  0x4a2c, 0x7d3b, 0x7d47, 0x6732, 0x6a51, 0x5f74, 0x516c, 0x645e,
+  0x6543, 0x5926, 0x4d3c, 0x7365, 0x6d55, 0x593a, 0x6d67, 0x7b35,
+  0x786c, 0x6067, 0x4c59, 0x5446, 0x6725, 0x5575, 0x533e, 0x7c7b,
+  0x6472, 0x5f75, 0x6878, 0x786d, 0x4e47, 0x7d76, 0x6858, 0x4d58,
+  0x6756, 0x4c5a, 0x4a63, 0x5f76, 0x7047, 0x7046, 0x583a, 0x7174,
+  0x7470, 0x754c, 0x7c65, 0x6a45, 0x6a73, 0x5d5b, 0x5c57, 0x5e7d,
+  0x7279, 0x5547, 0x5850, 0x7048, 0x5121, 0x5122, 0x5954, 0x5668,
+  0x594a, 0x5a31, 0x5847, 0x5c62, 0x734e, 0x7574, 0x7139, 0x5a53,
+  0x766a, 0x4f75, 0x7d2e, 0x4a52, 0x5f34, 0x575d, 0x7a3a, 0x6e27,
+  0x753d, 0x7875, 0x6d68, 0x5461, 0x5123, 0x6156, 0x7978, 0x5b4a,
+  0x4b79, 0x5454, 0x595c, 0x6e3e, 0x776d, 0x526e, 0x6166, 0x7779,
+  0x5d6d, 0x685b, 0x5b33, 0x5177, 0x6030, 0x5462, 0x7657, 0x5779,
+  0x585d, 0x4d7d, 0x722b, 0x4d3d, 0x7842, 0x722c, 0x4a2d, 0x4a2e,
+  0x4f2e, 0x6342, 0x5c37, 0x5b5a, 0x593b, 0x4a73, 0x7653, 0x6678,
+  0x6a75, 0x6a76, 0x7679, 0x4f2f, 0x4a53, 0x4a2f, 0x5230, 0x713a,
+  0x5733, 0x6343, 0x737d, 0x5e5a, 0x5e5b, 0x6f5e, 0x6263, 0x6e7b,
+  0x5f77, 0x574a, 0x4e68, 0x5b5b, 0x713b, 0x6971, 0x7a37, 0x5046,
+  0x4c2b, 0x6e28, 0x4b7a, 0x7979, 0x4c7d, 0x537e, 0x6450, 0x726e,
+  0x5455, 0x5f4d, 0x7c38, 0x5150, 0x724d, 0x7752, 0x4a54, 0x5559,
+  0x585e, 0x4d59, 0x6e29, 0x763c, 0x4c5b, 0x7049, 0x7c7c, 0x6849,
+  0x747e, 0x677c, 0x575e, 0x5e5c, 0x702c, 0x4c7e, 0x4d61, 0x613a,
+  0x5b6f, 0x5a32, 0x5125, 0x5c38, 0x5876, 0x5124, 0x4d62, 0x5c6a,
+  0x7077, 0x704a, 0x503e, 0x5d5c, 0x5456, 0x5356, 0x6d50, 0x4d21,
+  0x5f35, 0x5f78, 0x5421, 0x4e32, 0x684a, 0x6b75, 0x6355, 0x7550,
+  0x7521, 0x5927, 0x652b, 0x664b, 0x7571, 0x6545, 0x7923, 0x605b,
+  0x766b, 0x4b71, 0x596a, 0x7522, 0x5751, 0x5178, 0x6a78, 0x6a79,
+  0x5a33, 0x6f5f, 0x716f, 0x6576, 0x6e3f, 0x6264, 0x503f, 0x7a2c,
+  0x7551, 0x6733, 0x693e, 0x724e, 0x5b34, 0x7c4e, 0x5d6e, 0x6734,
+  0x5734, 0x7734, 0x4d3e, 0x5a69, 0x4f30, 0x7759, 0x7366, 0x4e59,
+  0x4e2a, 0x4b48, 0x5027, 0x704b, 0x5047, 0x6445, 0x5b60, 0x555a,
+  0x5727, 0x6e40, 0x7876, 0x7552, 0x6d69, 0x593c, 0x6546, 0x7523,
+  0x5a54, 0x6227, 0x7b7c, 0x715c, 0x4a74, 0x687a, 0x4e69, 0x6978,
+  0x6265, 0x5039, 0x5472, 0x5126, 0x5f4e, 0x7c74, 0x532a, 0x4c2c,
+  0x6f60, 0x6565, 0x5055, 0x5b7c, 0x7c66, 0x4b7e, 0x6d6a, 0x5e31,
+  0x7963, 0x5422, 0x4f76, 0x5650, 0x556a, 0x716e, 0x7a4b, 0x6521,
+  0x5531, 0x4f6d, 0x6d6b, 0x5532, 0x553c, 0x7d62, 0x732d, 0x7d5b,
+  0x6930, 0x5127, 0x7d63, 0x4e33, 0x7d64, 0x7a4e, 0x4a30, 0x7727,
+  0x4f31, 0x6622, 0x7c36, 0x722d, 0x6f61, 0x732e, 0x5c46, 0x596b,
+  0x6860, 0x6128, 0x5576, 0x4f7d, 0x5e5d, 0x5951, 0x646a, 0x724f,
+  0x773f, 0x6266, 0x6228, 0x6356, 0x6d51, 0x6979, 0x5631, 0x5e32,
+  0x6068, 0x532b, 0x6b5c, 0x5f2f, 0x4a43, 0x6e7c, 0x7d43, 0x6b76,
+  0x4f32, 0x596c, 0x593d, 0x585f, 0x5438, 0x6b3e, 0x5d6f, 0x5d70,
+  0x5d71, 0x5d72, 0x593e, 0x7b46, 0x4f33, 0x6e7d, 0x642b, 0x5a45,
+  0x586c, 0x5128, 0x6229, 0x5e3c, 0x6735, 0x5b70, 0x6f62, 0x7170,
+  0x4f34, 0x5b71, 0x6031, 0x5f25, 0x7952, 0x677d, 0x6623, 0x7b71,
+  0x4b30, 0x722e, 0x4d67, 0x685c, 0x6757, 0x7740, 0x5063, 0x5a21,
+  0x4c3d, 0x5129, 0x5d4c, 0x637e, 0x512a, 0x682a, 0x6a36, 0x797a,
+  0x664c, 0x7658, 0x5447, 0x594b, 0x5952, 0x534b, 0x5877, 0x5a29,
+  0x7578, 0x5e5e, 0x722f, 0x7829, 0x5848, 0x6e41, 0x7941, 0x5d73,
+  0x6a7a, 0x763d, 0x613b, 0x4d3f, 0x7454, 0x664d, 0x7c4f, 0x7b22,
+  0x605c, 0x743b, 0x5a55, 0x7932, 0x7b72, 0x5b76, 0x5e5f, 0x5b72,
+  0x785c, 0x776e, 0x6b68, 0x527a, 0x713c, 0x7a5a, 0x5a6a, 0x5a46,
+  0x7741, 0x6736, 0x6547, 0x562c, 0x5c47, 0x6129, 0x622a, 0x5526,
+  0x5457, 0x7250, 0x6a7b, 0x605d, 0x7b73, 0x713d, 0x6267, 0x7d57,
+  0x4e48, 0x6a37, 0x7c40, 0x7d67, 0x776f, 0x5735, 0x6f3a, 0x715d,
+  0x5e33, 0x684b, 0x785d, 0x7b47, 0x5548, 0x575f, 0x5d29, 0x6931,
+  0x7a2d, 0x7659, 0x7a74, 0x782a, 0x666e, 0x4c5c, 0x613c, 0x606f,
+  0x693f, 0x7c7d, 0x664e, 0x6157, 0x664f, 0x7471, 0x6473, 0x647b,
+  0x7964, 0x6f63, 0x4f6e, 0x763e, 0x6032, 0x7c7e, 0x512b, 0x577a,
+  0x7b48, 0x6257, 0x5423, 0x7078, 0x5728, 0x6167, 0x533f, 0x6f64,
+  0x5745, 0x6b62, 0x7c67, 0x6422, 0x6268, 0x6650, 0x7b68, 0x7468,
+  0x6574, 0x743c, 0x7455, 0x5f36, 0x7c39, 0x6e42, 0x4a75, 0x6f65,
+  0x4b62, 0x5424, 0x5e60, 0x5a7d, 0x6446, 0x683e, 0x605e, 0x7634,
+  0x6a52, 0x797b, 0x6042, 0x4a64, 0x6737, 0x6a7d, 0x595d, 0x5a34,
+  0x6e2a, 0x7b69, 0x5b4b, 0x5a35, 0x713e, 0x532c, 0x7b49, 0x5f4f,
+  0x5340, 0x6357, 0x6f66, 0x7c50, 0x6940, 0x7553, 0x6c5c, 0x7737,
+  0x6a38, 0x5179, 0x5c48, 0x6a39, 0x715e, 0x5736, 0x4f35, 0x5928,
+  0x6c6e, 0x5d2a, 0x4d22, 0x682e, 0x613d, 0x7251, 0x6941, 0x527c,
+  0x5b35, 0x7367, 0x587e, 0x7c51, 0x6d32, 0x742f, 0x7b23, 0x7c41,
+  0x6e2b, 0x5425, 0x7472, 0x6e59, 0x7b4a, 0x4d63, 0x583b, 0x655b,
+  0x7877, 0x7654, 0x5729, 0x4b49, 0x6651, 0x704c, 0x582e, 0x7953,
+  0x557e, 0x583c, 0x7230, 0x622b, 0x7368, 0x6f42, 0x6d6c, 0x6738,
+  0x5a7e, 0x4c3e, 0x727c, 0x5a6b, 0x6258, 0x6d56, 0x5651, 0x6033,
+  0x7c52, 0x6b48, 0x5341, 0x704d, 0x4f77, 0x6d52, 0x5458, 0x5c49,
+  0x5771, 0x5f3b, 0x7325, 0x744d, 0x713f, 0x7831, 0x697a, 0x7b4b,
+  0x4a55, 0x7954, 0x774a, 0x5648, 0x7c68, 0x733d, 0x6e7e, 0x677e,
+  0x5342, 0x5336, 0x4c2d, 0x767a, 0x5632, 0x5258, 0x6758, 0x6325,
+  0x6739, 0x702d, 0x7b4c, 0x6b21, 0x5426, 0x7b4d, 0x553d, 0x715f,
+  0x767b, 0x5e34, 0x556b, 0x6548, 0x7b24, 0x5439, 0x5e61, 0x6423,
+  0x5737, 0x786e, 0x5e35, 0x5652, 0x7955, 0x673a, 0x6b55, 0x5577,
+  0x6f67, 0x613e, 0x7a2e, 0x5669, 0x566e, 0x673b, 0x6c4b, 0x5533,
+  0x4e34, 0x7b25, 0x616e, 0x7728, 0x7b4e, 0x583d, 0x7b7d, 0x7c69,
+  0x4f36, 0x6d47, 0x6e2c, 0x4c5d, 0x7627, 0x667a, 0x7524, 0x7d5c,
+  0x6d33, 0x4e49, 0x6f68, 0x613f, 0x7a5b, 0x4b63, 0x7729, 0x7b26,
+  0x5c39, 0x7140, 0x6d48, 0x6f43, 0x562d, 0x7d4e, 0x6821, 0x7b74,
+  0x5527, 0x7176, 0x6653, 0x4c5e, 0x7832, 0x5c6b, 0x7d36, 0x656a,
+  0x7160, 0x5b4c, 0x5d4d, 0x5448, 0x596d, 0x7525, 0x667b, 0x6654,
+  0x7d48, 0x5621, 0x7d3f, 0x7c53, 0x6f21, 0x673c, 0x516e, 0x6655,
+  0x6972, 0x5f30, 0x5860, 0x7c3a, 0x7d2f, 0x704e, 0x5b61, 0x6549,
+  0x6d34, 0x6043, 0x6358, 0x697b, 0x6a28, 0x7d37, 0x7b27, 0x6942,
+  0x7d77, 0x6259, 0x5c6c, 0x6822, 0x6670, 0x7d78, 0x7d79, 0x763f,
+  0x6727, 0x6657, 0x5473, 0x5449, 0x567a, 0x5772, 0x6140, 0x5b62,
+  0x6658, 0x673d, 0x704f, 0x733e, 0x622c, 0x7537, 0x6070, 0x7d38,
+  0x6368, 0x5427, 0x687c, 0x7a52, 0x786f, 0x5653, 0x5534, 0x7050,
+  0x7770, 0x6e33, 0x6a3a, 0x6a53, 0x6d49, 0x5d2b, 0x652c, 0x7d21,
+  0x5f50, 0x6c33, 0x5f51, 0x6d6d, 0x7838, 0x777a, 0x782b, 0x7460,
+  0x543a, 0x6433, 0x695a, 0x5e36, 0x593f, 0x5940, 0x566f, 0x594c,
+  0x5a2a, 0x5f65, 0x7765, 0x4c32, 0x5f79, 0x5760, 0x543b, 0x7d7a,
+  0x4c33, 0x5b73, 0x5f52, 0x4e4a, 0x6e5a, 0x6464, 0x7b4f, 0x4f37,
+  0x6e43, 0x4e6a, 0x622d, 0x5761, 0x7a75, 0x5549, 0x782c, 0x6759,
+  0x7369, 0x586d, 0x6344, 0x7071, 0x6865, 0x607a, 0x6e44, 0x595e,
+  0x6b22, 0x6b23, 0x7c42, 0x6a3b, 0x682b, 0x5e62, 0x6d6f, 0x6823,
+  0x4f71, 0x543c, 0x7c6a, 0x673e, 0x7c72, 0x5634, 0x622e, 0x5337,
+  0x7a4c, 0x7a5c, 0x6d35, 0x6163, 0x682c, 0x685d, 0x6f69, 0x743d,
+  0x4f38, 0x695b, 0x512c, 0x5a47, 0x6b49, 0x684c, 0x5e37, 0x563c,
+  0x5365, 0x7a5d, 0x5a56, 0x4a31, 0x5a48, 0x5f26, 0x7933, 0x7252,
+  0x4a44, 0x4e4b, 0x4d75, 0x7d30, 0x5528, 0x7141, 0x6269, 0x5c4a,
+  0x6c34, 0x7a40, 0x7b28, 0x5028, 0x5a6c, 0x596e, 0x607b, 0x6f6a,
+  0x7a5e, 0x6044, 0x4f39, 0x554a, 0x5762, 0x622f, 0x5738, 0x684d,
+  0x765a, 0x6f22, 0x625a, 0x767c, 0x7b50, 0x512d, 0x4d64, 0x512e,
+  0x5c6d, 0x684e, 0x7079, 0x4e35, 0x667c, 0x577b, 0x5056, 0x5d75,
+  0x7771, 0x767d, 0x5b77, 0x7b6a, 0x695c, 0x5941, 0x7572, 0x6045,
+  0x6a54, 0x7942, 0x6a3c, 0x5245, 0x7b51, 0x6740, 0x6b25, 0x5f7a,
+  0x6322, 0x5739, 0x6943, 0x687d, 0x682f, 0x7253, 0x7b29, 0x5825,
+  0x554b, 0x5048, 0x512f, 0x5763, 0x6046, 0x5622, 0x6d70, 0x5773,
+  0x7c54, 0x5a57, 0x4c5f, 0x7254, 0x5130, 0x4c60, 0x5b7d, 0x733f,
+  0x7051, 0x7c3b, 0x6230, 0x6625, 0x625b, 0x5f5e, 0x6047, 0x726f,
+  0x4c61, 0x566a, 0x6742, 0x4e36, 0x7340, 0x4d7e, 0x7b52, 0x7878,
+  0x777b, 0x683f, 0x6837, 0x6d36, 0x5c3a, 0x4c34, 0x7177, 0x6838,
+  0x4a76, 0x6424, 0x7456, 0x5f66, 0x5f27, 0x5f67, 0x6141, 0x6944,
+  0x5c4b, 0x6945, 0x6f23, 0x6b26, 0x4b23, 0x6369, 0x517b, 0x6f24,
+  0x6f6b, 0x5034, 0x4d23, 0x6866, 0x6f25, 0x534c, 0x5a6d, 0x573a,
+  0x7255, 0x7565, 0x596f, 0x7934, 0x5554, 0x7d4f, 0x5b63, 0x7161,
+  0x6c36, 0x7b7e, 0x5357, 0x5131, 0x4b31, 0x5132, 0x4b32, 0x7142,
+  0x7461, 0x7935, 0x6143, 0x6142, 0x6b77, 0x5f28, 0x4b4a, 0x6639,
+  0x785e, 0x792a, 0x4a77, 0x6d37, 0x5338, 0x7256, 0x5459, 0x6e45,
+  0x7270, 0x4a32, 0x5c3b, 0x7178, 0x6c37, 0x654a, 0x7640, 0x7d5d,
+  0x5463, 0x4c62, 0x7754, 0x5765, 0x5343, 0x5826, 0x7641, 0x5d76,
+  0x4d40, 0x655c, 0x654b, 0x6144, 0x6830, 0x7430, 0x736a, 0x5a6e,
+  0x573b, 0x6231, 0x572a, 0x567b, 0x645f, 0x4a56, 0x6b28, 0x5b7e,
+  0x7642, 0x6f3b, 0x547d, 0x6048, 0x6839, 0x6f26, 0x4d24, 0x5474,
+  0x5b21, 0x5b5c, 0x5b5d, 0x6e5c, 0x4b4b, 0x7c55, 0x4e6b, 0x4d41,
+  0x7b53, 0x792b, 0x7554, 0x5929, 0x695d, 0x5b4d, 0x5d4e, 0x6743,
+  0x6c4c, 0x796c, 0x4b4c, 0x607c, 0x5428, 0x6d53, 0x586f, 0x7257,
+  0x4a78, 0x5a6f, 0x5654, 0x594d, 0x586e, 0x7241, 0x5f53, 0x5a70,
+  0x626a, 0x607d, 0x5878, 0x772f, 0x5a36, 0x4a57, 0x7258, 0x5879,
+  0x7a5f, 0x4f6f, 0x5942, 0x7052, 0x6451, 0x7337, 0x7a60, 0x6f6c,
+  0x6232, 0x543d, 0x594e, 0x7462, 0x5429, 0x4d42, 0x675a, 0x7259,
+  0x592a, 0x583e, 0x5c2d, 0x626b, 0x567c, 0x4a79, 0x545a, 0x7457,
+  0x4c21, 0x4f3a, 0x7538, 0x5943, 0x5068, 0x6345, 0x6b78, 0x7231,
+  0x4f3b, 0x532d, 0x6861, 0x4e6c, 0x6034, 0x5e63, 0x5d77, 0x7232,
+  0x7376, 0x765b, 0x577e, 0x785f, 0x7772, 0x5029, 0x665a, 0x7526,
+  0x573c, 0x4c63, 0x665b, 0x5d5d, 0x5133, 0x6f6d, 0x565e, 0x6474,
+  0x616f, 0x5d78, 0x684f, 0x4a65, 0x5c21, 0x6035, 0x7c2c, 0x7c2d,
+  0x5827, 0x6d38, 0x5b36, 0x5670, 0x732f, 0x4d25, 0x5a71, 0x5828,
+  0x4c64, 0x5134, 0x4a58, 0x5a72, 0x7527, 0x7528, 0x6626, 0x556c,
+  0x5578, 0x5a73, 0x6346, 0x5e64, 0x5e65, 0x5135, 0x5136, 0x5137,
+  0x7233, 0x695e, 0x7053, 0x7234, 0x7054, 0x4b64, 0x7b54, 0x7566,
+  0x636a, 0x5e66, 0x5f54, 0x7879, 0x702e, 0x5138, 0x565f, 0x5057,
+  0x7c21, 0x6f6e, 0x5c58, 0x695f, 0x655d, 0x7d7b, 0x6049, 0x5649,
+  0x542a, 0x654c, 0x6960, 0x5058, 0x7c22, 0x543e, 0x6233, 0x5e67,
+  0x5c3c, 0x5236, 0x7555, 0x4e21, 0x7529, 0x5d79, 0x5d7a, 0x7055,
+  0x765f, 0x725a, 0x646b, 0x7271, 0x6c39, 0x7d7c, 0x612a, 0x4a59,
+  0x6f6f, 0x752a, 0x6c79, 0x782d, 0x7242, 0x7643, 0x5752, 0x7922,
+  0x7056, 0x707a, 0x7660, 0x6973, 0x7243, 0x542b, 0x4a33, 0x4d26,
+  0x4d43, 0x4d5a, 0x594f, 0x7644, 0x6e5d, 0x6744, 0x6234, 0x5f62,
+  0x675b, 0x6831, 0x7c2e, 0x654d, 0x7a6b, 0x4f3c, 0x4f62, 0x4d76,
+  0x6f70, 0x743e, 0x544d, 0x7338, 0x6921, 0x7272, 0x736b, 0x7057,
+  0x4f57, 0x4f5f, 0x6840, 0x6841, 0x4f63, 0x6922, 0x502a, 0x7341,
+  0x502b, 0x5464, 0x6f3c, 0x5821, 0x595f, 0x7357, 0x5c3d, 0x4c65,
+  0x6d71, 0x7162, 0x545b, 0x6235, 0x4a66, 0x532e, 0x4c66, 0x7153,
+  0x7567, 0x4a5a, 0x7b6e, 0x6145, 0x5f69, 0x6e5e, 0x7742, 0x5822,
+  0x5d2c, 0x702f, 0x563d, 0x612b, 0x7936, 0x5475, 0x5049, 0x6f27,
+  0x626c, 0x5b6a, 0x4e4c, 0x7568, 0x7755, 0x534d, 0x737e, 0x5035,
+  0x607e, 0x5f7b, 0x665d, 0x6824, 0x4b4d, 0x6f28, 0x6e34, 0x5a58,
+  0x5139, 0x5f29, 0x7330, 0x4c44, 0x4e37, 0x6f29, 0x5f55, 0x6d57,
+  0x6e46, 0x6f3d, 0x7c56, 0x5b74, 0x6f2a, 0x7839, 0x7569, 0x6359,
+  0x6146, 0x543f, 0x5e68, 0x706a, 0x7342, 0x532f, 0x4a5b, 0x7c57,
+  0x6d58, 0x6147, 0x7458, 0x5633, 0x5d2d, 0x553e, 0x7143, 0x6e5f,
+  0x566b, 0x7459, 0x5766, 0x5a37, 0x5d7b, 0x5d4f, 0x5823, 0x5a59,
+  0x7058, 0x6f44, 0x6158, 0x7154, 0x6d72, 0x555b, 0x555c, 0x7344,
+  0x4b57, 0x6236, 0x6f71, 0x7b55, 0x5358, 0x5d50, 0x7059, 0x4b33,
+  0x555d, 0x4d27, 0x502c, 0x513a, 0x7144, 0x6533, 0x7b75, 0x6961,
+  0x7d60, 0x7c3c, 0x5a22, 0x5a23, 0x5221, 0x526f, 0x626d, 0x5e69,
+  0x4e5c, 0x7235, 0x5064, 0x5d51, 0x6148, 0x5b37, 0x5f63, 0x6d39,
+  0x7145, 0x734f, 0x572b, 0x612c, 0x636b, 0x6e47, 0x6149, 0x4a7a,
+  0x707b, 0x7a61, 0x705a, 0x4c67, 0x5a74, 0x4c3f, 0x4e6d, 0x5529,
+  0x7a62, 0x5065, 0x6b56, 0x6c5f, 0x5f7c, 0x7756, 0x5e6a, 0x4b34,
+  0x6f3e, 0x4c35, 0x4f3d, 0x6f72, 0x6237, 0x4c68, 0x707c, 0x5660,
+  0x7146, 0x6238, 0x6b2b, 0x4b35, 0x5851, 0x744e, 0x7377, 0x5746,
+  0x513b, 0x772a, 0x6d4a, 0x5753, 0x587a, 0x7645, 0x514c, 0x5d7c,
+  0x5f7d, 0x7965, 0x604a, 0x727d, 0x5330, 0x7473, 0x5a49, 0x665e,
+  0x783a, 0x6850, 0x587b, 0x6a55, 0x5623, 0x7646, 0x725b, 0x647c,
+  0x6832, 0x5a5a, 0x725c, 0x7b56, 0x6932, 0x6e2d, 0x7a63, 0x5c6e,
+  0x756a, 0x6660, 0x707d, 0x572c, 0x7545, 0x6e60, 0x5b65, 0x5d5e,
+  0x5970, 0x6923, 0x7179, 0x7244, 0x604b, 0x6924, 0x6239, 0x6331,
+  0x7c6b, 0x4d28, 0x4c36, 0x705b, 0x663a, 0x4d29, 0x7343, 0x6159,
+  0x6f2b, 0x6745, 0x6069, 0x7345, 0x5440, 0x553f, 0x5d2e, 0x797c,
+  0x4c40, 0x6522, 0x4e38, 0x5852, 0x7956, 0x712a, 0x4e51, 0x7647,
+  0x5b6b, 0x5f7e, 0x5861, 0x7773, 0x5767, 0x547e, 0x513c, 0x654f,
+  0x4b36, 0x5a38, 0x4d44, 0x563e, 0x623a, 0x4f58, 0x604c, 0x6b79,
+  0x7d7d, 0x5768, 0x4b58, 0x6962, 0x683a, 0x6347, 0x6c4d, 0x6c4e,
+  0x563f, 0x6327, 0x5f56, 0x7d68, 0x6e61, 0x7628, 0x5d7d, 0x783b,
+  0x6851, 0x7957, 0x4e6e, 0x6c4f, 0x6925, 0x5655, 0x4d45, 0x6d3a,
+  0x513d, 0x4f3e, 0x6c3b, 0x5231, 0x4c69, 0x5944, 0x697c, 0x513e,
+  0x6c3c, 0x652d, 0x7730, 0x4c6a, 0x5344, 0x5640, 0x567d, 0x6121,
+  0x5e3d, 0x7629, 0x5a24, 0x5624, 0x7546, 0x6122, 0x6946, 0x7245,
+  0x7469, 0x566c, 0x6b53, 0x6c3d, 0x625c, 0x5e6b, 0x705c, 0x6b3f,
+  0x574e, 0x513f, 0x752b, 0x797d, 0x4a5c, 0x4d46, 0x7236, 0x5d7e,
+  0x4c37, 0x5b38, 0x5069, 0x4e5d, 0x6b40, 0x7d22, 0x784b, 0x6a56,
+  0x7130, 0x5b4e, 0x7743, 0x5b4f, 0x4b24, 0x7860, 0x7b57, 0x6b4a,
+  0x6021, 0x4e4d, 0x545c, 0x7d58, 0x5276, 0x7237, 0x7a76, 0x762a,
+  0x7a77, 0x5866, 0x7431, 0x6852, 0x4a45, 0x4c6b, 0x626e, 0x623b,
+  0x772d, 0x7861, 0x736c, 0x5e21, 0x647d, 0x636c, 0x5d2f, 0x5d30,
+  0x4b37, 0x6853, 0x6123, 0x5260, 0x707e, 0x6926, 0x4b72, 0x6d73,
+  0x5c59, 0x604d, 0x775a, 0x5b39, 0x4c2e, 0x5a5b, 0x4d47, 0x5d31,
+  0x582f, 0x6323, 0x4e6f, 0x7273, 0x7833, 0x604e, 0x757d, 0x6b6c,
+  0x5345, 0x7c6c, 0x525b, 0x546b, 0x5e22, 0x6566, 0x7030, 0x5544,
+  0x6d74, 0x636d, 0x6842, 0x6d75, 0x577c, 0x6d3b, 0x762b, 0x7238,
+  0x7648, 0x5366, 0x725d, 0x4f3f, 0x6b2c, 0x4f40, 0x6628, 0x7d69,
+  0x4f41, 0x605f, 0x5e6c, 0x6022, 0x743f, 0x626f, 0x5971, 0x7147,
+  0x4b38, 0x797e, 0x5b3a, 0x5a75, 0x766c, 0x5a5c, 0x7a64, 0x604f,
+  0x5d32, 0x6629, 0x6f73, 0x736d, 0x6b7a, 0x7966, 0x4a5d, 0x555e,
+  0x4a5e, 0x5f64, 0x667d, 0x752c, 0x6475, 0x6963, 0x6d4b, 0x4f64,
+  0x5853, 0x5d33, 0x546c, 0x7239, 0x5f37, 0x4b4e, 0x7b58, 0x5059,
+  0x5d52, 0x7774, 0x675c, 0x6425, 0x7c23, 0x5b3b, 0x723a, 0x697d,
+  0x504a, 0x7556, 0x5945, 0x6434, 0x6d27, 0x6a3d, 0x667e, 0x7744,
+  0x752d, 0x5960, 0x4a34, 0x7862, 0x4f42, 0x6c3e, 0x6534, 0x4d48,
+  0x6e48, 0x6748, 0x4d49, 0x7937, 0x7168, 0x5972, 0x5b75, 0x4a35,
+  0x5946, 0x5849, 0x592b, 0x6d3c, 0x5854, 0x5c5a, 0x623c, 0x7c6d,
+  0x6c60, 0x527e, 0x6947, 0x662a, 0x6270, 0x7a3b, 0x752e, 0x7b2a,
+  0x6c7b, 0x6c3f, 0x7c58, 0x5465, 0x7943, 0x6e62, 0x5769, 0x6d76,
+  0x5e6d, 0x4c6c, 0x636e, 0x6854, 0x7a78, 0x5d34, 0x6435, 0x5830,
+  0x5855, 0x746a, 0x4e39, 0x5661, 0x4f52, 0x5036, 0x4e22, 0x736e,
+  0x7378, 0x5c4c, 0x504b, 0x7c24, 0x4d4a, 0x5754, 0x5e23, 0x6460,
+  0x6e49, 0x625d, 0x757e, 0x542c, 0x5551, 0x5870, 0x7843, 0x6a57,
+  0x7557, 0x583f, 0x7d40, 0x6b2d, 0x552a, 0x6728, 0x6e4a, 0x4a67,
+  0x7863, 0x545d, 0x6a58, 0x7b59, 0x6d77, 0x6535, 0x502d, 0x7171,
+  0x623d, 0x6348, 0x5955, 0x5f2a, 0x5b3c, 0x7864, 0x717a, 0x6536,
+  0x736f, 0x7b5a, 0x6160, 0x592c, 0x756b, 0x6036, 0x6948, 0x4b4f,
+  0x6349, 0x5e6e, 0x623e, 0x5c6f, 0x5625, 0x6271, 0x567e, 0x5921,
+  0x5840, 0x5c5b, 0x6d3d, 0x5f38, 0x6a25, 0x572d, 0x7379, 0x6d78,
+  0x7547, 0x614a, 0x6b63, 0x725e, 0x784c, 0x6a59, 0x5346, 0x5b66,
+  0x752f, 0x4e70, 0x697e, 0x7b36, 0x6272, 0x4f72, 0x7739, 0x5973,
+  0x614b, 0x5a5d, 0x5a39, 0x6b7b, 0x4b39, 0x6d79, 0x6060, 0x7440,
+  0x7d3c, 0x5f31, 0x636f, 0x6023, 0x7d39, 0x7031, 0x4d4b, 0x6d3e,
+  0x5540, 0x6370, 0x6d7a, 0x6964, 0x556d, 0x675d, 0x5476, 0x6537,
+  0x5b67, 0x623f, 0x6e4b, 0x5774, 0x705d, 0x4e2b, 0x675e, 0x5656,
+  0x614c, 0x6833, 0x656e, 0x5c22, 0x6050, 0x5535, 0x5521, 0x7b5b,
+  0x794b, 0x4b73, 0x7425, 0x7a48, 0x5657, 0x6965, 0x7b5c, 0x7d50,
+  0x7b76, 0x5a25, 0x5b3d, 0x6c62, 0x4d77, 0x705e, 0x7649, 0x5e6f,
+  0x5331, 0x7c6e, 0x6843, 0x7148, 0x4e71, 0x796d, 0x7274, 0x6436,
+  0x7539, 0x5c70, 0x6371, 0x6825, 0x723b, 0x5e24, 0x5a4c, 0x4a69,
+  0x635a, 0x7c59, 0x6a5a, 0x7944, 0x6324, 0x7b5d, 0x6f4a, 0x6844,
+  0x554c, 0x6b57, 0x592d, 0x7b2b, 0x5359, 0x5522, 0x765e, 0x5a76,
+  0x6051, 0x6928, 0x7579, 0x7a2f, 0x6b7c, 0x606a, 0x6332, 0x5545,
+  0x7163, 0x556e, 0x4d4c, 0x6d59, 0x5841, 0x7a6c, 0x716b, 0x7a3c,
+  0x6662, 0x7a65, 0x627a, 0x4a36, 0x6437, 0x6a5b, 0x757a, 0x7b2c,
+  0x4f43, 0x6b7d, 0x787a, 0x5f39, 0x6171, 0x5224, 0x757b, 0x505a,
+  0x505b, 0x6a3e, 0x5931, 0x4a37, 0x5367, 0x7865, 0x5332, 0x6240,
+  0x725f, 0x4d65, 0x792c, 0x4d4d, 0x6e2e, 0x562e, 0x576a, 0x6760,
+  0x6b2e, 0x4f59, 0x5c4d, 0x6d7b, 0x5e70, 0x576b, 0x5e25, 0x5f57,
+  0x5b50, 0x5b51, 0x5523, 0x7032, 0x5c5c, 0x4a68, 0x7866, 0x5c4e,
+  0x6a5c, 0x5b52, 0x6933, 0x775b, 0x6328, 0x572e, 0x6061, 0x4b3a,
+  0x6551, 0x505c, 0x5541, 0x584a, 0x6329, 0x6024, 0x6929, 0x5347,
+  0x5c5d, 0x782e, 0x4c38, 0x502e, 0x5872, 0x634a, 0x4c2f, 0x542d,
+  0x7651, 0x504c, 0x4a46, 0x5542, 0x4e3a, 0x4a47, 0x7a30, 0x5f58,
+  0x753a, 0x656b, 0x6f74, 0x5d35, 0x4d2a, 0x6372, 0x7b77, 0x7750,
+  0x7d3a, 0x7d61, 0x767e, 0x5140, 0x6845, 0x6438, 0x6168, 0x4c41,
+  0x526d, 0x5b3e, 0x6062, 0x7a49, 0x614d, 0x4a38, 0x7260, 0x7149,
+  0x5e71, 0x705f, 0x7844, 0x6e4c, 0x5e72, 0x6749, 0x6273, 0x6761,
+  0x634b, 0x634c, 0x4f78, 0x6f2c, 0x7d7e, 0x7c25, 0x7a31, 0x5f59,
+  0x6052, 0x745a, 0x714a, 0x4e23, 0x723c, 0x6c63, 0x6025, 0x772b,
+  0x6b2f, 0x655e, 0x6124, 0x4d2b, 0x5974, 0x6826, 0x4d4e, 0x6169,
+  0x7c6f, 0x6063, 0x6241, 0x4e24, 0x5e26, 0x6b7e, 0x6b5d, 0x7060,
+  0x745b, 0x6274, 0x5348, 0x746b, 0x6e35, 0x7558, 0x555f, 0x5665,
+  0x6b30, 0x7463, 0x634d, 0x7474, 0x7a32, 0x6f75, 0x4a5f, 0x6b31,
+  0x6d3f, 0x7d49, 0x6426, 0x7924, 0x7033, 0x656c, 0x5167, 0x5947,
+  0x6457, 0x6a5d, 0x5477, 0x5a3a, 0x5a4d, 0x794c, 0x615a, 0x5b3f,
+  0x4c45, 0x6c50, 0x4b3b, 0x5e73, 0x692a, 0x5948, 0x6e63, 0x573d,
+  0x4f44, 0x504d, 0x7c26, 0x717b, 0x7d52, 0x5141, 0x635b, 0x5349,
+  0x5c4f, 0x4c6d, 0x5e27, 0x663b, 0x6c21, 0x4c39, 0x7b5e, 0x6762,
+  0x5441, 0x5c28, 0x6242, 0x7358, 0x6553, 0x7359, 0x7346, 0x4d5b,
+  0x4d2c, 0x7c43, 0x5467, 0x5142, 0x7925, 0x6855, 0x634e, 0x544a,
+  0x5f5a, 0x7b5f, 0x6763, 0x787b, 0x634f, 0x7530, 0x5867, 0x5949,
+  0x782f, 0x6f76, 0x5d36, 0x6e2f, 0x4d78, 0x5e38, 0x7c27, 0x777c,
+  0x7731, 0x4e3b, 0x7421, 0x6e4d, 0x612e, 0x6c43, 0x4f7e, 0x783f,
+  0x5862, 0x5368, 0x5e28, 0x7464, 0x6c42, 0x5975, 0x7945, 0x5d53,
+  0x5671, 0x6c7c, 0x7c70, 0x6d40, 0x4a39, 0x6e64, 0x7261, 0x5e39,
+  0x5672, 0x5e74, 0x5f5b, 0x5b53, 0x7a67, 0x5863, 0x7441, 0x5d37,
+  0x7275, 0x542e, 0x5673, 0x5d38, 0x4f45, 0x5f5f, 0x723e, 0x7621,
+  0x6b4b, 0x717c, 0x7347, 0x606b, 0x6d7c, 0x615b, 0x6e65, 0x5e75,
+  0x7a53, 0x714b, 0x502f, 0x5d39, 0x5143, 0x7531, 0x6a46, 0x7061,
+  0x762c, 0x7559, 0x706b, 0x5d3a, 0x723f, 0x7745, 0x5b22, 0x7276,
+  0x4a3a, 0x7775, 0x4b65, 0x6e66, 0x6053, 0x4e25, 0x5658, 0x542f,
+  0x6949, 0x534e, 0x7442, 0x4b66, 0x7121, 0x6b32, 0x7122, 0x6b33,
+  0x7034, 0x4b74, 0x5430, 0x7332, 0x7b37, 0x756c, 0x6e67, 0x7432,
+  0x756d, 0x4f73, 0x7062, 0x6e4e, 0x714c, 0x6538, 0x5775, 0x6373,
+  0x4f65, 0x4f46, 0x7333, 0x6458, 0x4f79, 0x4f5a, 0x7a4d, 0x6663,
+  0x7262, 0x756e, 0x4a3b, 0x635c, 0x4e72, 0x5659, 0x6e30, 0x7465,
+  0x5842, 0x5c50, 0x4c6e, 0x5560, 0x764a, 0x7d4a, 0x5856, 0x744f,
+  0x5626, 0x5c3e, 0x5b54, 0x5747, 0x727e, 0x714d, 0x6243, 0x5c5e,
+  0x5c5f, 0x6f2d, 0x662b, 0x795d, 0x6a3f, 0x6f2e, 0x7450, 0x4e73,
+  0x662c, 0x4e5e, 0x5579, 0x6374, 0x4d50, 0x5538, 0x777d, 0x5c29,
+  0x5e76, 0x5c2a, 0x7263, 0x6934, 0x525c, 0x6966, 0x6376, 0x674a,
+  0x504e, 0x5a77, 0x4a3c, 0x6e68, 0x5a5e, 0x7277, 0x627b, 0x4c26,
+  0x5a3b, 0x6e69, 0x755a, 0x775c, 0x616a, 0x4e41, 0x5431, 0x7d31,
+  0x663d, 0x7b2d, 0x7867, 0x614e, 0x7762, 0x756f, 0x4f47, 0x5432,
+  0x4c6f, 0x5468, 0x6e4f, 0x7757, 0x6026, 0x5641, 0x615c, 0x7063,
+  0x7164, 0x5c71, 0x5627, 0x7475, 0x714e, 0x7264, 0x5030, 0x6c6f,
+  0x793a, 0x6b35, 0x546d, 0x6244, 0x6967, 0x6b34, 0x6a21, 0x783c,
+  0x4e26, 0x7946, 0x7c5a, 0x5433, 0x5339, 0x6a5e, 0x692b, 0x6161,
+  0x534f, 0x7476, 0x6a40, 0x614f, 0x4c3a, 0x6e6a, 0x7064, 0x7334,
+  0x546e, 0x7240, 0x7165, 0x7443, 0x6054, 0x6b36, 0x5721, 0x4b68,
+  0x792d, 0x692d, 0x5864, 0x7a33, 0x6245, 0x7c3d, 0x6c44, 0x5831,
+  0x5c2b, 0x5524, 0x6b69, 0x683b, 0x5857, 0x7b2e, 0x5161, 0x5b40,
+  0x753e, 0x5e77, 0x4a7b, 0x7746, 0x4f48, 0x6150, 0x6e50, 0x6974,
+  0x4e74, 0x554d, 0x4f5b, 0x5d3b, 0x4e2c, 0x6968, 0x5434, 0x6447,
+  0x755b, 0x7a41, 0x5e29, 0x5478, 0x6f77, 0x5333, 0x6b37, 0x6f78,
+  0x755c, 0x6d4c, 0x5b55, 0x714f, 0x7150, 0x7532, 0x592e, 0x552c,
+  0x6246, 0x7d23, 0x7b65, 0x5f2b, 0x6275, 0x762d, 0x7533, 0x7035,
+  0x6125, 0x755d, 0x6c22, 0x6d7d, 0x7534, 0x7b38, 0x5b23, 0x564a,
+  0x4b59, 0x6554, 0x737a, 0x6b38, 0x6037, 0x576c, 0x716c, 0x652f,
+  0x5561, 0x576d, 0x5151, 0x6172, 0x6f79, 0x5d3c, 0x765c, 0x7065,
+  0x7444, 0x6969, 0x737b, 0x546f, 0x4c22, 0x777e, 0x5f3c, 0x6b4d,
+  0x5037, 0x5642, 0x682d, 0x6f2f, 0x4b25, 0x4b69, 0x7a68, 0x4c46,
+  0x6667, 0x6a47, 0x5b24, 0x4f49, 0x627c, 0x6f7a, 0x6b5e, 0x7548,
+  0x545e, 0x6055, 0x6f30, 0x6247, 0x592f, 0x7967, 0x6765, 0x4f4a,
+  0x6151, 0x6248, 0x6f7b, 0x7a79, 0x5c72, 0x6027, 0x7868, 0x4b6a,
+  0x4b3c, 0x5662, 0x755e, 0x755f, 0x6e36, 0x6276, 0x534a, 0x6f7c,
+  0x5144, 0x6f31, 0x5145, 0x505e, 0x5961, 0x6038, 0x4d51, 0x7339,
+  0x674c, 0x5628, 0x4e27, 0x5435, 0x6448, 0x5334, 0x6b39, 0x4b75,
+  0x765d, 0x7123, 0x4c47, 0x694a, 0x6170, 0x7560, 0x7b2f, 0x4b51,
+  0x7b60, 0x7265, 0x6c70, 0x706c, 0x6e6b, 0x694b, 0x4c70, 0x572f,
+  0x7321, 0x7c75, 0x7124, 0x6056, 0x6f32, 0x7451, 0x7721, 0x7151,
+  0x4a7c, 0x4a7d, 0x4e4e, 0x7348, 0x733a, 0x6d7e, 0x5a26, 0x606c,
+  0x784d, 0x4b52, 0x6b4e, 0x7958, 0x7959, 0x4a60, 0x5a4a, 0x4b26,
+  0x4a48, 0x796e, 0x5b6c, 0x5031, 0x556f, 0x6673, 0x6722, 0x6459,
+  0x6461, 0x7c44, 0x796f, 0x4f74, 0x7766, 0x4e3c, 0x7445, 0x5c23,
+  0x5d3d, 0x7446, 0x7821, 0x6856, 0x5b41, 0x7066, 0x6439, 0x766d,
+  0x792e, 0x5d3e, 0x5730, 0x5868, 0x4b3d, 0x795a, 0x784e, 0x7970,
+  0x606d, 0x6333, 0x7433, 0x6a42, 0x7266, 0x7036, 0x5b56, 0x6b64,
+  0x7267, 0x5755, 0x5436, 0x7968, 0x5741, 0x6555, 0x696a, 0x574c,
+  0x5369, 0x6249, 0x7c5b, 0x4d2d, 0x4c30, 0x6a22, 0x6476, 0x5040,
+  0x7037, 0x6e21, 0x5776, 0x624a, 0x624b, 0x7a4f, 0x6b5f, 0x564b,
+  0x7434, 0x6d4d, 0x6452, 0x6a29, 0x643a, 0x7322, 0x4d52, 0x764b,
+  0x7166, 0x6d41, 0x683c, 0x6e51, 0x7067, 0x624c, 0x642a, 0x7561,
+  0x6d5a, 0x576e, 0x5171, 0x696b, 0x696c, 0x6064, 0x5a27, 0x5d54,
+  0x6a23, 0x5643, 0x5674, 0x5a5f, 0x6f33, 0x624d, 0x6f7d, 0x7268,
+  0x6f45, 0x6767, 0x577d, 0x674e, 0x5f5c, 0x7947, 0x5976, 0x5f2c,
+  0x565a, 0x5c24, 0x7038, 0x557a, 0x6477, 0x5644, 0x746c, 0x6f7e,
+  0x7021, 0x5e2a, 0x5a3c, 0x587c, 0x7a54, 0x6c65, 0x7c28, 0x6c66,
+  0x584b, 0x7b39, 0x6453, 0x4d79, 0x4f53, 0x4a6a, 0x4f54, 0x783d,
+  0x7447, 0x6a5f, 0x795b, 0x5437, 0x6b65, 0x6152, 0x6a24, 0x7a42,
+  0x7b61, 0x7a6d, 0x7022, 0x4c71, 0x7a23, 0x6277, 0x624e, 0x6975,
+  0x616b, 0x6768, 0x6857, 0x5a78, 0x544b, 0x7776, 0x5645, 0x5469,
+  0x7a7a, 0x4c72, 0x775d, 0x5e3a, 0x4e28, 0x7039, 0x647e, 0x6449,
+  0x6454, 0x6a43, 0x6f34, 0x573e, 0x7b62, 0x4d53, 0x6f35, 0x7a69,
+  0x7926, 0x5f3d, 0x7747, 0x787d, 0x787c, 0x5e2b, 0x5b68, 0x635d,
+  0x6162, 0x5146, 0x7650, 0x6b66, 0x5a79, 0x6c47, 0x5e78, 0x7869,
+  0x635e, 0x4e75, 0x7a43, 0x6557, 0x6c48, 0x7349, 0x643b, 0x662e,
+  0x6f36, 0x5c3f, 0x4e3d, 0x5843, 0x504f, 0x4f7a, 0x734a, 0x6057,
+  0x5147, 0x692e, 0x683d, 0x7a44, 0x624f, 0x7a45, 0x7938, 0x5c60,
+  0x7b30, 0x5829, 0x655f, 0x7927, 0x766e, 0x764c, 0x6278, 0x6c71,
+  0x5a60, 0x7152, 0x524c, 0x4f4b, 0x4a3d, 0x5d3f, 0x766f, 0x5e79,
+  0x7a34, 0x552d, 0x7167, 0x5e3e, 0x5c40, 0x5148, 0x5149, 0x783e,
+  0x4b76, 0x5479, 0x7562, 0x6153, 0x5869, 0x787e, 0x4f4c, 0x7d24,
+  0x4e76, 0x7a50, 0x4c73, 0x663e, 0x762e, 0x5570, 0x514a, 0x7c3e,
+  0x5571, 0x4d69, 0x7a35, 0x6250, 0x7477, 0x4d54, 0x6723, 0x5b25,
+  0x6251, 0x5722, 0x7763, 0x6a26, 0x5021, 0x4e5a, 0x7b6b, 0x5b26,
+  0x5b5e, 0x5865, 0x6a60, 0x582a, 0x6560, 0x565b, 0x6f46, 0x786a,
+  0x6455, 0x4e77, 0x6058, 0x576f, 0x746d, 0x4d66, 0x4c74, 0x7563,
+  0x644a, 0x5c61, 0x7948, 0x7c3f, 0x6827, 0x5844, 0x4b3e, 0x5c2e,
+  0x5777, 0x7068, 0x5d40, 0x4f4d, 0x5c73, 0x5930, 0x6669, 0x643c,
+  0x6a44, 0x646c, 0x6465, 0x7b78, 0x4c3b, 0x643d, 0x4d5c, 0x5977,
+  0x5d5f, 0x6d4e, 0x5950, 0x6523, 0x794d, 0x4d2e, 0x4f4e, 0x762f,
+  0x7d53, 0x6b6d, 0x565c, 0x6524, 0x5536, 0x565d, 0x7969, 0x6724,
+  0x5663, 0x514b, 0x5664, 0x5572, 0x5e7a, 0x5778, 0x586a, 0x4f55,
+  0x587d, 0x582b, 0x7d4b, 0x7c5c, 0x6028, 0x5573, 0x7d59, 0x4c23,
+  0x5979, 0x536a, 0x7575, 0x6f47, 0x535a, 0x5a3d, 0x6828, 0x5c2f,
+  0x7023, 0x4d55, 0x6029, 0x5e2c, 0x703a, 0x6e31, 0x6e32, 0x764d,
+  0x6e52, 0x5646, 0x6065, 0x733b, 0x6561, 0x644b, 0x5723, 0x5b42,
+  0x4a7e, 0x4f4f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026,
+  0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e,
+  0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036,
+  0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e,
+  0x303f, 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046,
+  0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e,
+  0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056,
+  0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e,
+  0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066,
+  0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e,
+  0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076,
+  0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e,
+  0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
+  0x3129, 0x312a, 0x312b, 0x312c, 0x312d, 0x312e, 0x312f, 0x3130,
+  0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
+  0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
+  0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
+  0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
+  0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
+  0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
+  0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168,
+  0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170,
+  0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178,
+  0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x3221, 0x3222,
+  0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a,
+  0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x3230, 0x3231, 0x3232,
+  0x3233, 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323a,
+  0x323b, 0x323c, 0x323d, 0x323e, 0x323f, 0x3240, 0x3241, 0x3242,
+  0x3243, 0x3244, 0x3245, 0x3246, 0x3247, 0x3248, 0x3249, 0x324a,
+  0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3250, 0x3251, 0x3252,
+  0x3253, 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a,
+  0x325b, 0x325c, 0x325d, 0x325e, 0x325f, 0x3260, 0x3261, 0x3262,
+  0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a,
+  0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272,
+  0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a,
+  0x327b, 0x327c, 0x327d, 0x327e, 0x3321, 0x3322, 0x3323, 0x3324,
+  0x3325, 0x3326, 0x3327, 0x3328, 0x3329, 0x332a, 0x332b, 0x332c,
+  0x332d, 0x332e, 0x332f, 0x3330, 0x3331, 0x3332, 0x3333, 0x3334,
+  0x3335, 0x3336, 0x3337, 0x3338, 0x3339, 0x333a, 0x333b, 0x333c,
+  0x333d, 0x333e, 0x333f, 0x3340, 0x3341, 0x3342, 0x3343, 0x3344,
+  0x3345, 0x3346, 0x3347, 0x3348, 0x3349, 0x334a, 0x334b, 0x334c,
+  0x334d, 0x334e, 0x334f, 0x3350, 0x3351, 0x3352, 0x3353, 0x3354,
+  0x3355, 0x3356, 0x3357, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c,
+  0x335d, 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364,
+  0x3365, 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c,
+  0x336d, 0x336e, 0x336f, 0x3370, 0x3371, 0x3372, 0x3373, 0x3374,
+  0x3375, 0x3376, 0x3377, 0x3378, 0x3379, 0x337a, 0x337b, 0x337c,
+  0x337d, 0x337e, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426,
+  0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e,
+  0x342f, 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436,
+  0x3437, 0x3438, 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e,
+  0x343f, 0x3440, 0x3441, 0x3442, 0x3443, 0x3444, 0x3445, 0x3446,
+  0x3447, 0x3448, 0x3449, 0x344a, 0x344b, 0x344c, 0x344d, 0x344e,
+  0x344f, 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, 0x3455, 0x3456,
+  0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 0x345d, 0x345e,
+  0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 0x3466,
+  0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e,
+  0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476,
+  0x3477, 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e,
+  0x3521, 0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528,
+  0x3529, 0x352a, 0x352b, 0x352c, 0x352d, 0x352e, 0x352f, 0x3530,
+  0x3531, 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538,
+  0x3539, 0x353a, 0x353b, 0x353c, 0x353d, 0x353e, 0x353f, 0x3540,
+  0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548,
+  0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 0x3550,
+  0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558,
+  0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560,
+  0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568,
+  0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570,
+  0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578,
+  0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x3621, 0x3622,
+  0x3623, 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 0x362a,
+  0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 0x3631, 0x3632,
+  0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 0x363a,
+  0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642,
+  0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a,
+  0x364b, 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652,
+  0x3653, 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a,
+  0x365b, 0x365c, 0x365d, 0x365e, 0x365f, 0x3660, 0x3661, 0x3662,
+  0x3663, 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, 0x3669, 0x366a,
+  0x366b, 0x366c, 0x366d, 0x366e, 0x366f, 0x3670, 0x3671, 0x3672,
+  0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367a,
+  0x367b, 0x367c, 0x367d, 0x367e, 0x3721, 0x3722, 0x3723, 0x3724,
+  0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c,
+  0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
+  0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
+  0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
+  0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
+  0x374d, 0x374e, 0x374f, 0x3750, 0x3751, 0x3752, 0x3753, 0x3754,
+  0x3755, 0x3756, 0x3757, 0x3758, 0x3759, 0x375a, 0x375b, 0x375c,
+  0x375d, 0x375e, 0x375f, 0x3760, 0x3761, 0x3762, 0x3763, 0x3764,
+  0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 0x376c,
+  0x376d, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774,
+  0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c,
+  0x377d, 0x377e, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826,
+  0x3827, 0x3828, 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e,
+  0x382f, 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836,
+  0x3837, 0x3838, 0x3839, 0x383a, 0x383b, 0x383c, 0x383d, 0x383e,
+  0x383f, 0x3840, 0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846,
+  0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 0x384d, 0x384e,
+  0x384f, 0x3850, 0x3851, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856,
+  0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e,
+  0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866,
+  0x3867, 0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e,
+  0x386f, 0x3870, 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876,
+  0x3877, 0x3878, 0x3879, 0x387a, 0x387b, 0x387c, 0x387d, 0x387e,
+  0x3921, 0x3922, 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928,
+  0x3929, 0x392a, 0x392b, 0x392c, 0x392d, 0x392e, 0x392f, 0x3930,
+  0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938,
+  0x3939, 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 0x3940,
+  0x3941, 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948,
+  0x3949, 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950,
+  0x3951, 0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958,
+  0x3959, 0x395a, 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960,
+  0x3961, 0x3962, 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968,
+  0x3969, 0x396a, 0x396b, 0x396c, 0x396d, 0x396e, 0x396f, 0x3970,
+  0x3971, 0x3972, 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978,
+  0x3979, 0x397a, 0x397b, 0x397c, 0x397d, 0x397e, 0x3a21, 0x3a22,
+  0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 0x3a2a,
+  0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a32,
+  0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a39, 0x3a3a,
+  0x3a3b, 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42,
+  0x3a43, 0x3a44, 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a,
+  0x3a4b, 0x3a4c, 0x3a4d, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52,
+  0x3a53, 0x3a54, 0x3a55, 0x3a56, 0x3a57, 0x3a58, 0x3a59, 0x3a5a,
+  0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, 0x3a60, 0x3a61, 0x3a62,
+  0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 0x3a6a,
+  0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a72,
+  0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a,
+  0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3b21, 0x3b22, 0x3b23, 0x3b24,
+  0x3b25, 0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c,
+  0x3b2d, 0x3b2e, 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34,
+  0x3b35, 0x3b36, 0x3b37, 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3c,
+  0x3b3d, 0x3b3e, 0x3b3f, 0x3b40, 0x3b41, 0x3b42, 0x3b43, 0x3b44,
+  0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, 0x3b4a, 0x3b4b, 0x3b4c,
+  0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 0x3b53, 0x3b54,
+  0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 0x3b5c,
+  0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64,
+  0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c,
+  0x3b6d, 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x3b73, 0x3b74,
+  0x3b75, 0x3b76, 0x3b77, 0x3b78, 0x3b79, 0x3b7a, 0x3b7b, 0x3b7c,
+  0x3b7d, 0x3b7e, 0x3c21, 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26,
+  0x3c27, 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, 0x3c2c, 0x3c2d, 0x3c2e,
+  0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33, 0x3c34, 0x3c35, 0x3c36,
+  0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 0x3c3d, 0x3c3e,
+  0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 0x3c46,
+  0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e,
+  0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, 0x3c54, 0x3c55, 0x3c56,
+  0x3c57, 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e,
+  0x3c5f, 0x3c60, 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66,
+  0x3c67, 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e,
+  0x3c6f, 0x3c70, 0x3c71, 0x3c72, 0x3c73, 0x3c74, 0x3c75, 0x3c76,
+  0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 0x3c7c, 0x3c7d, 0x3c7e,
+  0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 0x3d27, 0x3d28,
+  0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, 0x3d2e, 0x3d2f, 0x3d30,
+  0x3d31, 0x3d32, 0x3d33, 0x3d34, 0x3d35, 0x3d36, 0x3d37, 0x3d38,
+  0x3d39, 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, 0x3d3e, 0x3d3f, 0x3d40,
+  0x3d41, 0x3d42, 0x3d43, 0x3d44, 0x3d45, 0x3d46, 0x3d47, 0x3d48,
+  0x3d49, 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, 0x3d4e, 0x3d4f, 0x3d50,
+  0x3d51, 0x3d52, 0x3d53, 0x3d54, 0x3d55, 0x3d56, 0x3d57, 0x3d58,
+  0x3d59, 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, 0x3d5e, 0x3d5f, 0x3d60,
+  0x3d61, 0x3d62, 0x3d63, 0x3d64, 0x3d65, 0x3d66, 0x3d67, 0x3d68,
+  0x3d69, 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, 0x3d6e, 0x3d6f, 0x3d70,
+  0x3d71, 0x3d72, 0x3d73, 0x3d74, 0x3d75, 0x3d76, 0x3d77, 0x3d78,
+  0x3d79, 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, 0x3d7e, 0x3e21, 0x3e22,
+  0x3e23, 0x3e24, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 0x3e2a,
+  0x3e2b, 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e32,
+  0x3e33, 0x3e34, 0x3e35, 0x3e36, 0x3e37, 0x3e38, 0x3e39, 0x3e3a,
+  0x3e3b, 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, 0x3e40, 0x3e41, 0x3e42,
+  0x3e43, 0x3e44, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 0x3e4a,
+  0x3e4b, 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e52,
+  0x3e53, 0x3e54, 0x3e55, 0x3e56, 0x3e57, 0x3e58, 0x3e59, 0x3e5a,
+  0x3e5b, 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, 0x3e60, 0x3e61, 0x3e62,
+  0x3e63, 0x3e64, 0x3e65, 0x3e66, 0x3e67, 0x3e68, 0x3e69, 0x3e6a,
+  0x3e6b, 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, 0x3e70, 0x3e71, 0x3e72,
+  0x3e73, 0x3e74, 0x3e75, 0x3e76, 0x3e77, 0x3e78, 0x3e79, 0x3e7a,
+  0x3e7b, 0x3e7c, 0x3e7d, 0x3e7e, 0x3f21, 0x3f22, 0x3f23, 0x3f24,
+  0x3f25, 0x3f26, 0x3f27, 0x3f28, 0x3f29, 0x3f2a, 0x3f2b, 0x3f2c,
+  0x3f2d, 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, 0x3f32, 0x3f33, 0x3f34,
+  0x3f35, 0x3f36, 0x3f37, 0x3f38, 0x3f39, 0x3f3a, 0x3f3b, 0x3f3c,
+  0x3f3d, 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, 0x3f42, 0x3f43, 0x3f44,
+  0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, 0x3f4a, 0x3f4b, 0x3f4c,
+  0x3f4d, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f52, 0x3f53, 0x3f54,
+  0x3f55, 0x3f56, 0x3f57, 0x3f58, 0x3f59, 0x3f5a, 0x3f5b, 0x3f5c,
+  0x3f5d, 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, 0x3f62, 0x3f63, 0x3f64,
+  0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, 0x3f6a, 0x3f6b, 0x3f6c,
+  0x3f6d, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f72, 0x3f73, 0x3f74,
+  0x3f75, 0x3f76, 0x3f77, 0x3f78, 0x3f79, 0x3f7a, 0x3f7b, 0x3f7c,
+  0x3f7d, 0x3f7e, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, 0x4026,
+  0x4027, 0x4028, 0x4029, 0x402a, 0x402b, 0x402c, 0x402d, 0x402e,
+  0x402f, 0x4030, 0x4031, 0x4032, 0x4033, 0x4034, 0x4035, 0x4036,
+  0x4037, 0x4038, 0x4039, 0x403a, 0x403b, 0x403c, 0x403d, 0x403e,
+  0x403f, 0x4040, 0x4041, 0x4042, 0x4043, 0x4044, 0x4045, 0x4046,
+  0x4047, 0x4048, 0x4049, 0x404a, 0x404b, 0x404c, 0x404d, 0x404e,
+  0x404f, 0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056,
+  0x4057, 0x4058, 0x4059, 0x405a, 0x405b, 0x405c, 0x405d, 0x405e,
+  0x405f, 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066,
+  0x4067, 0x4068, 0x4069, 0x406a, 0x406b, 0x406c, 0x406d, 0x406e,
+  0x406f, 0x4070, 0x4071, 0x4072, 0x4073, 0x4074, 0x4075, 0x4076,
+  0x4077, 0x4078, 0x4079, 0x407a, 0x407b, 0x407c, 0x407d, 0x407e,
+  0x4121, 0x4122, 0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128,
+  0x4129, 0x412a, 0x412b, 0x412c, 0x412d, 0x412e, 0x412f, 0x4130,
+  0x4131, 0x4132, 0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138,
+  0x4139, 0x413a, 0x413b, 0x413c, 0x413d, 0x413e, 0x413f, 0x4140,
+  0x4141, 0x4142, 0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148,
+  0x4149, 0x414a, 0x414b, 0x414c, 0x414d, 0x414e, 0x414f, 0x4150,
+  0x4151, 0x4152, 0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158,
+  0x4159, 0x415a, 0x415b, 0x415c, 0x415d, 0x415e, 0x415f, 0x4160,
+  0x4161, 0x2266, 0x2267, 0x4162, 0x2268, 0x2269, 0x226a, 0x226b,
+  0x226c, 0x226d, 0x226e, 0x226f, 0x2270, 0x2271, 0x2272, 0x2273,
+  0x2274, 0x2275, 0x2276, 0x2277, 0x2278, 0x2279, 0x227a, 0x4163,
+  0x4164, 0x4165, 0x4166, 0x4167, 0x4168, 0x4169, 0x416a, 0x416b,
+  0x416c, 0x416d, 0x416e, 0x416f, 0x4170, 0x4171, 0x4172, 0x4173,
+  0x4174, 0x4175, 0x4176, 0x4177, 0x4178, 0x4179, 0x417a, 0x417b,
+  0x417c, 0x417d, 0x417e, 0x4221, 0x4222, 0x4223, 0x4224, 0x4225,
+  0x4226, 0x4227, 0x4228, 0x4229, 0x422a, 0x422b, 0x422c, 0x422d,
+  0x422e, 0x422f, 0x4230, 0x4231, 0x4232, 0x4233, 0x4234, 0x4235,
+  0x4236, 0x4237, 0x4238, 0x4239, 0x423a, 0x423b, 0x423c, 0x423d,
+  0x423e, 0x423f, 0x4240, 0x4241, 0x4242, 0x4243, 0x4244, 0x4245,
+  0x2559, 0x255a, 0x4246, 0x4247, 0x2579, 0x257a, 0x4248, 0x4249,
+  0x424a, 0x424b, 0x424c, 0x2665, 0x2666, 0x424d, 0x424e, 0x2667,
+  0x424f, 0x2668, 0x4250, 0x2669, 0x4251, 0x266a, 0x266b, 0x266c,
+  0x266d, 0x4252, 0x4253, 0x266e, 0x266f, 0x2670, 0x2671, 0x2672,
+  0x2673, 0x4254, 0x2674, 0x2675, 0x2676, 0x2677, 0x2678, 0x2679,
+  0x267a, 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425a, 0x425b,
+  0x425c, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776,
+  0x2777, 0x425d, 0x2778, 0x2779, 0x277a, 0x425e, 0x425f, 0x4260,
+  0x4261, 0x4262, 0x4263, 0x4264, 0x4265, 0x4266, 0x4267, 0x4268,
+  0x4269, 0x426a, 0x426b, 0x426c, 0x426d, 0x426e, 0x426f, 0x4270,
+  0x4271, 0x4272, 0x4273, 0x4274, 0x4275, 0x4276, 0x4277, 0x4278,
+  0x4279, 0x427a, 0x427b, 0x427c, 0x427d, 0x427e, 0x4321, 0x4322,
+  0x4323, 0x4324, 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, 0x432a,
+  0x432b, 0x432c, 0x432d, 0x432e, 0x432f, 0x4330, 0x2a74, 0x2a75,
+  0x2a76, 0x2a77, 0x2a78, 0x4331, 0x2a79, 0x2a7a, 0x4332, 0x4333,
+  0x4334, 0x4335, 0x4336, 0x4337, 0x4338, 0x4339, 0x433a, 0x433b,
+  0x433c, 0x433d, 0x433e, 0x433f, 0x4340, 0x4341, 0x4342, 0x4343,
+  0x4344, 0x4345, 0x2b77, 0x2b78, 0x2b79, 0x2b7a, 0x4346, 0x4347,
+  0x4348, 0x2c42, 0x2c43, 0x4349, 0x2c44, 0x2c45, 0x2c46, 0x2c47,
+  0x2c48, 0x2c49, 0x434a, 0x434b, 0x2c4a, 0x2c4b, 0x434c, 0x2c4c,
+  0x2c4d, 0x2c4e, 0x434d, 0x2c4f, 0x2c50, 0x434e, 0x434f, 0x4350,
+  0x4351, 0x4352, 0x4353, 0x4354, 0x2c72, 0x2c73, 0x2c74, 0x2c75,
+  0x4355, 0x2c76, 0x2c77, 0x2c78, 0x2c79, 0x2c7a, 0x4356, 0x4357,
+  0x2d41, 0x2d42, 0x2d43, 0x4358, 0x2d44, 0x2d45, 0x2d46, 0x2d47,
+  0x2d48, 0x2d49, 0x2d4a, 0x4359, 0x435a, 0x2d4b, 0x435b, 0x2d4c,
+  0x435c, 0x2d4d, 0x2d4e, 0x2d4f, 0x2d50, 0x2d51, 0x2d52, 0x435d,
+  0x2d53, 0x2d54, 0x2d55, 0x2d56, 0x2d57, 0x2d58, 0x2d59, 0x2d5a,
+  0x2d61, 0x2d62, 0x2d63, 0x2d64, 0x2d65, 0x2d66, 0x2d67, 0x435e,
+  0x2d68, 0x2d69, 0x2d6a, 0x2d6b, 0x2d6c, 0x2d6d, 0x2d6e, 0x2d6f,
+  0x2d70, 0x2d71, 0x2d72, 0x435f, 0x4360, 0x2d73, 0x2d74, 0x4361,
+  0x2d75, 0x2d76, 0x2d77, 0x4362, 0x2d78, 0x2d79, 0x2d7a, 0x4363,
+  0x4364, 0x4365, 0x4366, 0x4367, 0x4368, 0x2e41, 0x2e42, 0x2e43,
+  0x2e44, 0x2e45, 0x2e46, 0x4369, 0x2e47, 0x2e48, 0x2e49, 0x436a,
+  0x2e4a, 0x2e4b, 0x2e4c, 0x2e4d, 0x2e4e, 0x2e4f, 0x2e50, 0x2e51,
+  0x2e52, 0x2e53, 0x2e54, 0x2e55, 0x2e56, 0x2e57, 0x2e58, 0x2e59,
+  0x2e5a, 0x2e61, 0x2e62, 0x2e63, 0x2e64, 0x2e65, 0x2e66, 0x436b,
+  0x2e67, 0x2e68, 0x2e69, 0x436c, 0x2e6a, 0x2e6b, 0x2e6c, 0x436d,
+  0x2e6d, 0x2e6e, 0x2e6f, 0x2e70, 0x2e71, 0x2e72, 0x2e73, 0x436e,
+  0x436f, 0x2e74, 0x4370, 0x2e75, 0x4371, 0x2e76, 0x2e77, 0x2e78,
+  0x2e79, 0x2e7a, 0x4372, 0x4373, 0x4374, 0x4375, 0x4376, 0x4377,
+  0x4378, 0x4379, 0x437a, 0x2f41, 0x2f42, 0x2f43, 0x2f44, 0x437b,
+  0x437c, 0x2f45, 0x437d, 0x2f46, 0x437e, 0x2f47, 0x2f48, 0x2f49,
+  0x2f4a, 0x2f4b, 0x2f4c, 0x2f4d, 0x2f4e, 0x2f4f, 0x2f50, 0x2f51,
+  0x2f52, 0x2f53, 0x2f54, 0x2f55, 0x2f56, 0x2f57, 0x2f58, 0x2f59,
+  0x2f5a, 0x2f61, 0x2f62, 0x2f63, 0x2f64, 0x2f65, 0x2f66, 0x2f67,
+  0x2f68, 0x2f69, 0x2f6a, 0x2f6b, 0x2f6c, 0x2f6d, 0x2f6e, 0x4421,
+  0x4422, 0x2f6f, 0x2f70, 0x4423, 0x2f71, 0x2f72, 0x4424, 0x4425,
+  0x4426, 0x2f73, 0x2f74, 0x2f75, 0x2f76, 0x2f77, 0x2f78, 0x4427,
+  0x4428, 0x2f79, 0x4429, 0x2f7a, 0x442a, 0x442b, 0x442c, 0x442d,
+  0x442e, 0x442f, 0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435,
+  0x4436, 0x4437, 0x4438, 0x4439, 0x443a, 0x443b, 0x443c, 0x443d,
+  0x443e, 0x443f, 0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445,
+  0x4446, 0x4447, 0x4448, 0x4449, 0x444a, 0x444b, 0x444c, 0x444d,
+  0x444e, 0x444f, 0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455,
+  0x4456, 0x4457, 0x4458, 0x4459, 0x445a, 0x445b, 0x445c, 0x445d,
+  0x445e, 0x445f, 0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465,
+  0x4466, 0x4467, 0x4468, 0x4469, 0x446a, 0x446b, 0x446c, 0x446d,
+  0x446e, 0x446f, 0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475,
+  0x4476, 0x4477, 0x4478, 0x4479, 0x447a, 0x447b, 0x447c, 0x447d,
+  0x447e, 0x4521, 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527,
+  0x4528, 0x4529, 0x452a, 0x452b, 0x452c, 0x452d, 0x452e, 0x452f,
+  0x4530, 0x4531, 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537,
+  0x4538, 0x4539, 0x453a, 0x453b, 0x453c, 0x453d, 0x453e, 0x453f,
+  0x4540, 0x4541, 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547,
+  0x4548, 0x4549, 0x454a, 0x454b, 0x454c, 0x454d, 0x454e, 0x454f,
+  0x4550, 0x4551, 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557,
+  0x4558, 0x4559, 0x455a, 0x455b, 0x455c, 0x455d, 0x455e, 0x455f,
+  0x4560, 0x4561, 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567,
+  0x4568, 0x4569, 0x456a, 0x456b, 0x456c, 0x456d, 0x456e, 0x456f,
+  0x4570, 0x4571, 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577,
+  0x4578, 0x4579, 0x457a, 0x457b, 0x457c, 0x457d, 0x457e, 0x4621,
+  0x4622, 0x4623, 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629,
+  0x462a, 0x462b, 0x462c, 0x462d, 0x462e, 0x462f, 0x4630, 0x4631,
+  0x4632, 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, 0x4639,
+  0x463a, 0x463b, 0x463c, 0x463d, 0x463e, 0x463f, 0x4640, 0x4641,
+  0x4642, 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649,
+  0x464a, 0x464b, 0x464c, 0x464d, 0x464e, 0x464f, 0x4650, 0x4651,
+  0x4652, 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659,
+  0x465a, 0x465b, 0x465c, 0x465d, 0x465e, 0x465f, 0x4660, 0x4661,
+  0x4662, 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669,
+  0x466a, 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, 0x4670, 0x4671,
+  0x4672, 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679,
+  0x467a, 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, 0x4722, 0x4723,
+  0x4724, 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, 0x472a, 0x472b,
+  0x472c, 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, 0x4732, 0x4733,
+  0x4734, 0x4735, 0x4736, 0x4737, 0x4738, 0x4739, 0x473a, 0x473b,
+  0x473c, 0x473d, 0x473e, 0x473f, 0x4740, 0x4741, 0x4742, 0x4743,
+  0x4744, 0x4745, 0x4746, 0x4747, 0x4748, 0x4749, 0x474a, 0x474b,
+  0x474c, 0x474d, 0x474e, 0x474f, 0x4750, 0x4751, 0x4752, 0x4753,
+  0x4754, 0x4755, 0x4756, 0x4757, 0x4758, 0x4759, 0x475a, 0x475b,
+  0x475c, 0x475d, 0x475e, 0x475f, 0x4760, 0x4761, 0x4762, 0x4763,
+  0x4764, 0x4765, 0x4766, 0x4767, 0x4768, 0x4769, 0x476a, 0x476b,
+  0x476c, 0x476d, 0x476e, 0x476f, 0x4770, 0x4771, 0x4772, 0x4773,
+  0x4774, 0x4775, 0x4776, 0x4777, 0x4778, 0x4779, 0x477a, 0x477b,
+  0x477c, 0x477d, 0x477e, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825,
+  0x4826, 0x4827, 0x4828, 0x4829, 0x482a, 0x482b, 0x482c, 0x482d,
+  0x482e, 0x482f, 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835,
+  0x4836, 0x4837, 0x4838, 0x4839, 0x483a, 0x483b, 0x483c, 0x483d,
+  0x483e, 0x483f, 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845,
+  0x4846, 0x4847, 0x4848, 0x4849, 0x484a, 0x484b, 0x484c, 0x484d,
+  0x484e, 0x484f, 0x4850, 0x4851, 0x4852, 0x4853, 0x4854, 0x4855,
+  0x4856, 0x4857, 0x4858, 0x4859, 0x485a, 0x485b, 0x485c, 0x485d,
+  0x485e, 0x485f, 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865,
+  0x4866, 0x4867, 0x4868, 0x4869, 0x486a, 0x486b, 0x486c, 0x486d,
+  0x486e, 0x486f, 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875,
+  0x4876, 0x4877, 0x4878, 0x4879, 0x487a, 0x487b, 0x487c, 0x487d,
+  0x487e, 0x4b50, 0x4b56, 0x4b67, 0x4d4f, 0x4d68, 0x4e2d, 0x4f7b,
+  0x5022, 0x5038, 0x5050, 0x505d, 0x5154, 0x5155, 0x5158, 0x515b,
+  0x515c, 0x515d, 0x515e, 0x515f, 0x5160, 0x5162, 0x5163, 0x5164,
+  0x5165, 0x5166, 0x5168, 0x5169, 0x516a, 0x516b, 0x516d, 0x516f,
+  0x5170, 0x5172, 0x5176, 0x517a, 0x517c, 0x517d, 0x517e, 0x5222,
+  0x5223, 0x5227, 0x5228, 0x5229, 0x522a, 0x522b, 0x522d, 0x5232,
+  0x523e, 0x5242, 0x5243, 0x5244, 0x5246, 0x5247, 0x5248, 0x5249,
+  0x524a, 0x524b, 0x524d, 0x524e, 0x524f, 0x5250, 0x5251, 0x5252,
+  0x5253, 0x5254, 0x5255, 0x5256, 0x5257, 0x5259, 0x525a, 0x525e,
+  0x525f, 0x5261, 0x5262, 0x5264, 0x5265, 0x5266, 0x5267, 0x5268,
+  0x5269, 0x526a, 0x526b, 0x5270, 0x5271, 0x5272, 0x5273, 0x5274,
+  0x5275, 0x5277, 0x5278, 0x5466, 0x547c, 0x5525, 0x552b, 0x552e,
+  0x5638, 0x564d, 0x574b, 0x5764, 0x5b45, 0x5b64, 0x5c25, 0x5d25,
+  0x5d55, 0x5d74, 0x5e7c, 0x5e7e, 0x5f33, 0x5f61, 0x5f68, 0x6071,
+  0x612d, 0x616d, 0x6375, 0x6421, 0x6429, 0x652e, 0x6531, 0x6532,
+  0x6539, 0x653b, 0x653c, 0x6544, 0x654e, 0x6550, 0x6552, 0x6556,
+  0x657a, 0x657b, 0x657c, 0x657e, 0x6621, 0x6624, 0x6627, 0x662d,
+  0x662f, 0x6630, 0x6631, 0x6633, 0x6637, 0x6638, 0x663c, 0x6644,
+  0x6646, 0x6647, 0x664a, 0x6652, 0x6656, 0x6659, 0x665c, 0x665f,
+  0x6661, 0x6664, 0x6665, 0x6666, 0x6668, 0x666a, 0x666b, 0x666c,
+  0x666f, 0x6671, 0x6672, 0x6675, 0x6676, 0x6677, 0x6679, 0x6721,
+  0x6726, 0x6729, 0x672a, 0x672c, 0x672d, 0x6730, 0x673f, 0x6741,
+  0x6746, 0x6747, 0x674b, 0x674d, 0x674f, 0x6750, 0x6753, 0x675f,
+  0x6764, 0x6766, 0x6777, 0x6867, 0x6868, 0x6870, 0x6871, 0x6877,
+  0x6879, 0x687b, 0x687e, 0x6927, 0x692c, 0x694c, 0x6977, 0x6a41,
+  0x6a65, 0x6a74, 0x6a77, 0x6a7c, 0x6a7e, 0x6b24, 0x6b27, 0x6b29,
+  0x6b2a, 0x6b3a, 0x6b3b, 0x6b3d, 0x6b41, 0x6b42, 0x6b46, 0x6b47,
+  0x6b4c, 0x6b4f, 0x6b50, 0x6b51, 0x6b52, 0x6b58, 0x6c26, 0x6c27,
+  0x6c2a, 0x6c2f, 0x6c30, 0x6c31, 0x6c32, 0x6c35, 0x6c38, 0x6c3a,
+  0x6c40, 0x6c41, 0x6c45, 0x6c46, 0x6c49, 0x6c4a, 0x6c55, 0x6c5d,
+  0x6c5e, 0x6c61, 0x6c64, 0x6c67, 0x6c68, 0x6c77, 0x6c78, 0x6c7a,
+  0x6d21, 0x6d22, 0x6d23, 0x6d6e, 0x6e5b, 0x723d, 0x727a, 0x7331,
+  0x7427, 0x746e, 0x7674, 0x7676, 0x7738, 0x7748, 0x7753, 0x785b,
+  0x7870, 0x7a21, 0x7a22, 0x7a66, 0x7c29, 0x2321, 0x2322, 0x2323,
+  0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, 0x232b,
+  0x232c, 0x232d, 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, 0x2333,
+  0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b,
+  0x233c, 0x233d, 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, 0x2343,
+  0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b,
+  0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353,
+  0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b,
+  0x212c, 0x235d, 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, 0x2363,
+  0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b,
+  0x236c, 0x236d, 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, 0x2373,
+  0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b,
+  0x237c, 0x237d, 0x2226, 0x214b, 0x214c, 0x217e, 0x237e, 0x214d,
+  0x235c,
+};
+
+static const Summary16 ksc5601_uni2indx_page00[70] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x2592 }, {    6, 0xf7df },
+  {   20, 0x0040 }, {   21, 0xc181 }, {   26, 0x0040 }, {   27, 0x4181 },
+  /* 0x0100 */
+  {   31, 0x0000 }, {   31, 0x0002 }, {   32, 0x00c0 }, {   34, 0x810e },
+  {   39, 0x0e07 }, {   45, 0x000c }, {   47, 0x00c0 }, {   49, 0x0000 },
+  {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 },
+  {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 },
+  /* 0x0200 */
+  {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 },
+  {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 },
+  {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 }, {   49, 0x0000 },
+  {   49, 0x0080 }, {   50, 0x2f01 }, {   56, 0x0000 }, {   56, 0x0000 },
+  /* 0x0300 */
+  {   56, 0x0000 }, {   56, 0x0000 }, {   56, 0x0000 }, {   56, 0x0000 },
+  {   56, 0x0000 }, {   56, 0x0000 }, {   56, 0x0000 }, {   56, 0x0000 },
+  {   56, 0x0000 }, {   56, 0xfffe }, {   71, 0x03fb }, {   80, 0xfffe },
+  {   95, 0x03fb }, {  104, 0x0000 }, {  104, 0x0000 }, {  104, 0x0000 },
+  /* 0x0400 */
+  {  104, 0x0002 }, {  105, 0xffff }, {  121, 0xffff }, {  137, 0xffff },
+  {  153, 0xffff }, {  169, 0x0002 },
+};
+static const Summary16 ksc5601_uni2indx_page20[103] = {
+  /* 0x2000 */
+  {  170, 0x0000 }, {  170, 0x3320 }, {  175, 0x0063 }, {  179, 0x080d },
+  {  183, 0x0000 }, {  183, 0x0000 }, {  183, 0x0000 }, {  183, 0x8010 },
+  {  185, 0x001e }, {  189, 0x0000 }, {  189, 0x0000 }, {  189, 0x0000 },
+  {  189, 0x0000 }, {  189, 0x0000 }, {  189, 0x0000 }, {  189, 0x0000 },
+  /* 0x2100 */
+  {  189, 0x0208 }, {  191, 0x0048 }, {  193, 0x0846 }, {  197, 0x0000 },
+  {  197, 0x0000 }, {  197, 0x7818 }, {  203, 0x03ff }, {  213, 0x03ff },
+  {  223, 0x0000 }, {  223, 0x03ff }, {  233, 0x0000 }, {  233, 0x0000 },
+  {  233, 0x0000 }, {  233, 0x0014 }, {  235, 0x0000 }, {  235, 0x0000 },
+  /* 0x2200 */
+  {  235, 0x898d }, {  242, 0x6402 }, {  246, 0x5fa1 }, {  255, 0x3030 },
+  {  259, 0x0000 }, {  259, 0x0004 }, {  260, 0x0c33 }, {  266, 0x0000 },
+  {  266, 0x00cc }, {  270, 0x0200 }, {  271, 0x0020 }, {  272, 0x0000 },
+  {  272, 0x0000 }, {  272, 0x0000 }, {  272, 0x0000 }, {  272, 0x0000 },
+  /* 0x2300 */
+  {  272, 0x0000 }, {  272, 0x0004 }, {  273, 0x0000 }, {  273, 0x0000 },
+  {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 },
+  {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 },
+  {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 },
+  /* 0x2400 */
+  {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x0000 },
+  {  273, 0x0000 }, {  273, 0x0000 }, {  273, 0x7fff }, {  288, 0xfff0 },
+  {  300, 0x0007 }, {  303, 0xf000 }, {  307, 0xffff }, {  323, 0x003f },
+  {  329, 0x0000 }, {  329, 0xffff }, {  345, 0x03ff }, {  355, 0x0000 },
+  /* 0x2500 */
+  {  355, 0xf00f }, {  363, 0xffff }, {  379, 0xffff }, {  395, 0xffff },
+  {  411, 0x0fff }, {  423, 0x0000 }, {  423, 0x0000 }, {  423, 0x0000 },
+  {  423, 0x0000 }, {  423, 0x0004 }, {  424, 0x03fb }, {  433, 0x30cc },
+  {  439, 0xc9c3 }, {  447, 0x0003 }, {  449, 0x0000 }, {  449, 0x0000 },
+  /* 0x2600 */
+  {  449, 0xc060 }, {  453, 0x5000 }, {  455, 0x0000 }, {  455, 0x0000 },
+  {  455, 0x0005 }, {  457, 0x0000 }, {  457, 0x37bb },
+};
+static const Summary16 ksc5601_uni2indx_page30[62] = {
+  /* 0x3000 */
+  {  468, 0xff0f }, {  480, 0x003b }, {  485, 0x0000 }, {  485, 0x0000 },
+  {  485, 0xfffe }, {  500, 0xffff }, {  516, 0xffff }, {  532, 0xffff },
+  {  548, 0xffff }, {  564, 0x000f }, {  568, 0xfffe }, {  583, 0xffff },
+  {  599, 0xffff }, {  615, 0xffff }, {  631, 0xffff }, {  647, 0x007f },
+  /* 0x3100 */
+  {  654, 0x0000 }, {  654, 0x0000 }, {  654, 0x0000 }, {  654, 0xfffe },
+  {  669, 0xffff }, {  685, 0xffff }, {  701, 0xffff }, {  717, 0xffff },
+  {  733, 0x7fff }, {  748, 0x0000 }, {  748, 0x0000 }, {  748, 0x0000 },
+  {  748, 0x0000 }, {  748, 0x0000 }, {  748, 0x0000 }, {  748, 0x0000 },
+  /* 0x3200 */
+  {  748, 0xffff }, {  764, 0x1fff }, {  777, 0x0000 }, {  777, 0x0000 },
+  {  777, 0x0000 }, {  777, 0x0000 }, {  777, 0xffff }, {  793, 0x8fff },
+  {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 },
+  {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 },
+  /* 0x3300 */
+  {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 },
+  {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 }, {  806, 0x0000 },
+  {  806, 0xff1f }, {  819, 0xffff }, {  835, 0xffff }, {  851, 0xffff },
+  {  867, 0x87ff }, {  879, 0x3949 },
+};
+static const Summary16 ksc5601_uni2indx_page4e[1306] = {
+  /* 0x4e00 */
+  {  886, 0x2f8b }, {  895, 0x4372 }, {  902, 0x2000 }, {  903, 0x0b04 },
+  {  907, 0xe82c }, {  914, 0xe340 }, {  920, 0x2800 }, {  922, 0x40c8 },
+  {  926, 0x5944 }, {  932, 0x4937 }, {  940, 0x7976 }, {  950, 0x0440 },
+  {  952, 0x2c93 }, {  959, 0xa3f0 }, {  967, 0x0038 }, {  970, 0x08c5 },
+  /* 0x4f00 */
+  {  975, 0xee02 }, {  982, 0x0003 }, {  984, 0x8000 }, {  985, 0x3550 },
+  {  991, 0xe1c8 }, {  998, 0x1e23 }, { 1005, 0x8200 }, { 1007, 0xc449 },
+  { 1013, 0xad5a }, { 1022, 0x2942 }, { 1027, 0xc000 }, { 1029, 0x8060 },
+  { 1032, 0x461c }, { 1038, 0xa49a }, { 1045, 0xc003 }, { 1049, 0x052a },
+  /* 0x5000 */
+  { 1054, 0x2a44 }, { 1059, 0xd646 }, { 1067, 0x3dda }, { 1077, 0x0800 },
+  { 1078, 0x8388 }, { 1083, 0x1420 }, { 1086, 0x0020 }, { 1087, 0x0170 },
+  { 1091, 0x2021 }, { 1094, 0x0302 }, { 1097, 0x3000 }, { 1099, 0x40ac },
+  { 1104, 0x8620 }, { 1108, 0x4462 }, { 1113, 0x20a0 }, { 1116, 0x8a00 },
+  /* 0x5100 */
+  { 1119, 0x0253 }, { 1124, 0x8004 }, { 1126, 0x0402 }, { 1128, 0x1484 },
+  { 1132, 0x7bfb }, { 1145, 0x1004 }, { 1147, 0x7fa4 }, { 1157, 0x11e2 },
+  { 1163, 0x2441 }, { 1167, 0x00a4 }, { 1170, 0x1421 }, { 1174, 0x20c0 },
+  { 1177, 0x3a50 }, { 1183, 0x7000 }, { 1186, 0x0002 }, { 1187, 0x2743 },
+  /* 0x5200 */
+  { 1194, 0x45c9 }, { 1201, 0x2082 }, { 1204, 0x4630 }, { 1209, 0x0fc1 },
+  { 1216, 0x3c88 }, { 1222, 0x2850 }, { 1226, 0x8602 }, { 1230, 0xa024 },
+  { 1234, 0x2388 }, { 1239, 0x8806 }, { 1243, 0x0e19 }, { 1249, 0x4000 },
+  { 1250, 0x22aa }, { 1256, 0xeb64 }, { 1265, 0x001c }, { 1268, 0xcd28 },
+  /* 0x5300 */
+  { 1275, 0xa120 }, { 1279, 0x02e1 }, { 1284, 0x840b }, { 1289, 0x8200 },
+  { 1291, 0x279b }, { 1300, 0x549e }, { 1308, 0x8141 }, { 1312, 0xa0b3 },
+  { 1319, 0x0010 }, { 1320, 0x8508 }, { 1324, 0x2061 }, { 1328, 0x0800 },
+  { 1329, 0x2f08 }, { 1335, 0x08d0 }, { 1339, 0xbe3e }, { 1350, 0x010f },
+  /* 0x5400 */
+  { 1355, 0xf718 }, { 1364, 0xa803 }, { 1369, 0x0a41 }, { 1373, 0x5b08 },
+  { 1379, 0x0504 }, { 1382, 0x0002 }, { 1383, 0x0500 }, { 1385, 0x382a },
+  { 1391, 0x5041 }, { 1395, 0x0001 }, { 1396, 0x1910 }, { 1400, 0x2108 },
+  { 1403, 0x0313 }, { 1408, 0x0000 }, { 1408, 0x6122 }, { 1413, 0x0404 },
+  /* 0x5500 */
+  { 1415, 0x40d0 }, { 1419, 0x1001 }, { 1421, 0x8000 }, { 1422, 0x4022 },
+  { 1425, 0x8050 }, { 1428, 0x4048 }, { 1431, 0x0008 }, { 1432, 0x1000 },
+  { 1433, 0x06d1 }, { 1439, 0x3700 }, { 1444, 0x5e80 }, { 1450, 0x0000 },
+  { 1450, 0x00a0 }, { 1452, 0x9410 }, { 1456, 0x0018 }, { 1458, 0x6000 },
+  /* 0x5600 */
+  { 1460, 0x0240 }, { 1462, 0x0090 }, { 1464, 0x8000 }, { 1465, 0x0054 },
+  { 1468, 0x0000 }, { 1468, 0x0008 }, { 1469, 0x0900 }, { 1471, 0x0010 },
+  { 1472, 0x0040 }, { 1473, 0x0000 }, { 1473, 0x5020 }, { 1476, 0x1010 },
+  { 1478, 0x2400 }, { 1480, 0x4c02 }, { 1484, 0x0001 }, { 1485, 0x0601 },
+  /* 0x5700 */
+  { 1488, 0x2918 }, { 1493, 0x814c }, { 1498, 0x2100 }, { 1500, 0x0801 },
+  { 1502, 0x6485 }, { 1508, 0x0003 }, { 1510, 0x4452 }, { 1515, 0x1021 },
+  { 1518, 0x0904 }, { 1521, 0x0008 }, { 1522, 0x000d }, { 1525, 0x0000 },
+  { 1525, 0x4988 }, { 1530, 0x8000 }, { 1531, 0x0001 }, { 1532, 0x1691 },
+  /* 0x5800 */
+  { 1538, 0x0765 }, { 1545, 0x4000 }, { 1546, 0x8492 }, { 1551, 0x0433 },
+  { 1556, 0x8c00 }, { 1559, 0x4592 }, { 1565, 0x0016 }, { 1568, 0x5220 },
+  { 1572, 0x0228 }, { 1575, 0xd008 }, { 1579, 0x4300 }, { 1582, 0x4c08 },
+  { 1586, 0x40a2 }, { 1590, 0xc32a }, { 1597, 0x9810 }, { 1601, 0x2e00 },
+  /* 0x5900 */
+  { 1605, 0x8000 }, { 1606, 0x1670 }, { 1612, 0x6e84 }, { 1619, 0x4082 },
+  { 1622, 0xc390 }, { 1628, 0x04b3 }, { 1634, 0x7c85 }, { 1642, 0x2118 },
+  { 1646, 0x041c }, { 1650, 0x02c8 }, { 1654, 0x1120 }, { 1657, 0x4a00 },
+  { 1660, 0x0a48 }, { 1664, 0x361b }, { 1672, 0x5540 }, { 1677, 0x8900 },
+  /* 0x5a00 */
+  { 1680, 0x000a }, { 1682, 0x9902 }, { 1687, 0x0221 }, { 1690, 0x1040 },
+  { 1692, 0x0242 }, { 1695, 0x0400 }, { 1696, 0x0044 }, { 1698, 0x0000 },
+  { 1698, 0x0000 }, { 1698, 0x0c04 }, { 1701, 0x0010 }, { 1702, 0x0000 },
+  { 1702, 0x1216 }, { 1707, 0x0000 }, { 1707, 0x0242 }, { 1710, 0x0000 },
+  /* 0x5b00 */
+  { 1710, 0x1a20 }, { 1714, 0x0040 }, { 1715, 0x0400 }, { 1716, 0x0000 },
+  { 1716, 0x0009 }, { 1718, 0xb5b3 }, { 1728, 0x0a18 }, { 1732, 0x1523 },
+  { 1738, 0x9ba0 }, { 1745, 0x1fe8 }, { 1754, 0x507c }, { 1761, 0x8379 },
+  { 1769, 0x10fd }, { 1777, 0xc09d }, { 1784, 0xdbf6 }, { 1796, 0x0560 },
+  /* 0x5c00 */
+  { 1800, 0xef92 }, { 1810, 0x0242 }, { 1813, 0x0110 }, { 1815, 0xdf02 },
+  { 1823, 0x6961 }, { 1830, 0x0822 }, { 1833, 0x9035 }, { 1839, 0x0202 },
+  { 1841, 0x0000 }, { 1841, 0x0003 }, { 1843, 0x1a02 }, { 1847, 0x45aa },
+  { 1854, 0x0001 }, { 1855, 0x0200 }, { 1856, 0x8101 }, { 1859, 0x2851 },
+  /* 0x5d00 */
+  { 1864, 0x6080 }, { 1867, 0x02d2 }, { 1872, 0x0280 }, { 1874, 0x0000 },
+  { 1874, 0x1800 }, { 1876, 0x0001 }, { 1877, 0x9200 }, { 1880, 0x0000 },
+  { 1880, 0x0880 }, { 1882, 0x2000 }, { 1883, 0x0405 }, { 1886, 0x3500 },
+  { 1890, 0x2000 }, { 1891, 0x6044 }, { 1895, 0x49e6 }, { 1903, 0x609e },
+  /* 0x5e00 */
+  { 1910, 0x104c }, { 1914, 0x2a42 }, { 1919, 0x2820 }, { 1922, 0xa148 },
+  { 1927, 0x10b1 }, { 1932, 0x8020 }, { 1934, 0x000e }, { 1937, 0x7b9c },
+  { 1947, 0x8490 }, { 1951, 0x14a0 }, { 1955, 0x28c1 }, { 1960, 0x41e0 },
+  { 1965, 0x0704 }, { 1969, 0x8c49 }, { 1975, 0x100d }, { 1979, 0x0cc8 },
+  /* 0x5f00 */
+  { 1984, 0x8412 }, { 1988, 0x89ba }, { 1996, 0x02c0 }, { 1999, 0x1422 },
+  { 2003, 0x5500 }, { 2007, 0x0ac0 }, { 2011, 0x3ec4 }, { 2019, 0x9283 },
+  { 2025, 0x1ca3 }, { 2032, 0x4387 }, { 2039, 0x4703 }, { 2045, 0x22a0 },
+  { 2049, 0x3028 }, { 2053, 0x03c0 }, { 2057, 0x0801 }, { 2059, 0xa020 },
+  /* 0x6000 */
+  { 2062, 0x8000 }, { 2063, 0x3044 }, { 2067, 0x85a3 }, { 2074, 0x0000 },
+  { 2074, 0x200e }, { 2078, 0x2225 }, { 2083, 0xb73c }, { 2093, 0x0001 },
+  { 2094, 0x3220 }, { 2098, 0x8c50 }, { 2103, 0x0099 }, { 2107, 0x315d },
+  { 2115, 0x00a0 }, { 2117, 0x9402 }, { 2121, 0x0003 }, { 2123, 0x0e4b },
+  /* 0x6100 */
+  { 2130, 0xe342 }, { 2137, 0x8c20 }, { 2141, 0x0080 }, { 2142, 0xd091 },
+  { 2148, 0x1d94 }, { 2155, 0xa328 }, { 2161, 0x499c }, { 2168, 0x60c1 },
+  { 2173, 0x4406 }, { 2177, 0x0713 }, { 2183, 0x5a90 }, { 2189, 0x4444 },
+  { 2193, 0x0f88 }, { 2199, 0x0000 }, { 2199, 0x0040 }, { 2200, 0x95c4 },
+  /* 0x6200 */
+  { 2207, 0x7581 }, { 2214, 0x8447 }, { 2220, 0x4402 }, { 2223, 0xc053 },
+  { 2229, 0x2b83 }, { 2236, 0x0108 }, { 2238, 0x4000 }, { 2239, 0x9242 },
+  { 2244, 0x0611 }, { 2248, 0x09a6 }, { 2254, 0x0800 }, { 2255, 0x3222 },
+  { 2260, 0xb384 }, { 2267, 0x1bdd }, { 2277, 0xf000 }, { 2281, 0xc08a },
+  /* 0x6300 */
+  { 2286, 0x0282 }, { 2289, 0x0002 }, { 2290, 0x8800 }, { 2292, 0x6c00 },
+  { 2296, 0x9200 }, { 2299, 0x0021 }, { 2301, 0x4180 }, { 2304, 0x8c84 },
+  { 2309, 0x1308 }, { 2313, 0x0944 }, { 2317, 0x07a7 }, { 2325, 0x0000 },
+  { 2325, 0x8051 }, { 2329, 0x0c41 }, { 2333, 0x6002 }, { 2336, 0x00d0 },
+  /* 0x6400 */
+  { 2339, 0xa000 }, { 2341, 0x10d0 }, { 2345, 0x3004 }, { 2348, 0x4400 },
+  { 2350, 0x0000 }, { 2350, 0x0100 }, { 2351, 0x8201 }, { 2354, 0x0700 },
+  { 2357, 0x0100 }, { 2358, 0x440e }, { 2363, 0x6830 }, { 2368, 0x0805 },
+  { 2371, 0x64b2 }, { 2378, 0x0514 }, { 2382, 0x10e6 }, { 2388, 0x4414 },
+  /* 0x6500 */
+  { 2392, 0x0011 }, { 2394, 0x2100 }, { 2396, 0x9c08 }, { 2401, 0xcbc0 },
+  { 2408, 0xe120 }, { 2413, 0x40c2 }, { 2417, 0x304c }, { 2422, 0x41b4 },
+  { 2428, 0x10ac }, { 2433, 0x9a83 }, { 2440, 0x98b2 }, { 2447, 0x3281 },
+  { 2452, 0x9822 }, { 2457, 0x0084 }, { 2459, 0x3369 }, { 2467, 0xbc12 },
+  /* 0x6600 */
+  { 2474, 0xd6c0 }, { 2481, 0xc03b }, { 2488, 0xa1a1 }, { 2494, 0x0c53 },
+  { 2500, 0x8a1e }, { 2507, 0xea00 }, { 2512, 0xcbf0 }, { 2521, 0x05d8 },
+  { 2527, 0x4390 }, { 2532, 0x21c3 }, { 2538, 0x4805 }, { 2542, 0x4a1c },
+  { 2548, 0x02d0 }, { 2552, 0x3240 }, { 2556, 0x0041 }, { 2558, 0xd79d },
+  /* 0x6700 */
+  { 2569, 0x2b09 }, { 2575, 0xe8b0 }, { 2582, 0x7dc0 }, { 2590, 0x2452 },
+  { 2595, 0xc240 }, { 2599, 0xd04b }, { 2606, 0xa000 }, { 2608, 0xc8ab },
+  { 2616, 0x8a80 }, { 2620, 0x34a9 }, { 2627, 0x8000 }, { 2628, 0x41c9 },
+  { 2634, 0x8010 }, { 2636, 0x241f }, { 2643, 0x9200 }, { 2646, 0x487b },
+  /* 0x6800 */
+  { 2654, 0x0000 }, { 2654, 0x00cc }, { 2658, 0x8406 }, { 2662, 0x3300 },
+  { 2666, 0x410f }, { 2672, 0x001b }, { 2676, 0x2000 }, { 2677, 0x8040 },
+  { 2679, 0x8022 }, { 2682, 0xa098 }, { 2687, 0xa186 }, { 2693, 0x006b },
+  { 2698, 0x2a30 }, { 2703, 0x85a4 }, { 2709, 0x4181 }, { 2713, 0x0604 },
+  /* 0x6900 */
+  { 2716, 0x6021 }, { 2720, 0x0004 }, { 2721, 0x0080 }, { 2722, 0xa001 },
+  { 2725, 0x0400 }, { 2726, 0x46b8 }, { 2733, 0xe90f }, { 2742, 0x03a0 },
+  { 2746, 0x0000 }, { 2746, 0x1820 }, { 2749, 0x40a0 }, { 2752, 0x0810 },
+  { 2754, 0x380a }, { 2759, 0x0001 }, { 2760, 0x0500 }, { 2762, 0xa800 },
+  /* 0x6a00 */
+  { 2765, 0x0404 }, { 2767, 0xc28a }, { 2773, 0x000a }, { 2775, 0x2720 },
+  { 2780, 0x0910 }, { 2783, 0x830c }, { 2788, 0x0802 }, { 2790, 0x0000 },
+  { 2790, 0x6211 }, { 2795, 0x1080 }, { 2797, 0x000c }, { 2799, 0x0808 },
+  { 2801, 0x000c }, { 2803, 0x0c08 }, { 2806, 0x0000 }, { 2806, 0x0840 },
+  /* 0x6b00 */
+  { 2808, 0x1410 }, { 2811, 0x0044 }, { 2813, 0x000b }, { 2816, 0x6404 },
+  { 2820, 0x50c0 }, { 2824, 0x8001 }, { 2826, 0x047e }, { 2833, 0x8984 },
+  { 2838, 0x0658 }, { 2843, 0x4140 }, { 2846, 0xc000 }, { 2848, 0x94a4 },
+  { 2854, 0xa862 }, { 2860, 0x09dc }, { 2867, 0x1800 }, { 2869, 0x0000 },
+  /* 0x6c00 */
+  { 2869, 0x8100 }, { 2871, 0x000a }, { 2873, 0x0008 }, { 2874, 0x4190 },
+  { 2878, 0x4007 }, { 2882, 0xe4a1 }, { 2889, 0x2501 }, { 2893, 0x6445 },
+  { 2899, 0x11ee }, { 2907, 0x0e7d }, { 2916, 0x4800 }, { 2918, 0xfb08 },
+  { 2926, 0x1616 }, { 2932, 0x08a8 }, { 2936, 0xc92e }, { 2944, 0x0009 },
+  /* 0x6d00 */
+  { 2946, 0x1800 }, { 2948, 0x4a82 }, { 2953, 0x06a0 }, { 2957, 0x6b64 },
+  { 2965, 0x0002 }, { 2966, 0x1600 }, { 2969, 0x5648 }, { 2975, 0x8390 },
+  { 2980, 0x73a0 }, { 2987, 0x002a }, { 2990, 0x8000 }, { 2991, 0x0024 },
+  { 2993, 0x88f9 }, { 3001, 0x4702 }, { 3006, 0x4d02 }, { 3011, 0x0faa },
+  /* 0x6e00 */
+  { 3019, 0x0000 }, { 3019, 0x8e80 }, { 3024, 0xb87b }, { 3034, 0x7554 },
+  { 3042, 0x2418 }, { 3046, 0xd940 }, { 3052, 0xc880 }, { 3056, 0x040c },
+  { 3059, 0x0000 }, { 3059, 0xb041 }, { 3064, 0x8c24 }, { 3069, 0x0442 },
+  { 3072, 0x5a34 }, { 3079, 0x001a }, { 3082, 0x8000 }, { 3083, 0xc110 },
+  /* 0x6f00 */
+  { 3087, 0x8046 }, { 3091, 0x0032 }, { 3094, 0x180d }, { 3099, 0x8106 },
+  { 3103, 0x0002 }, { 3104, 0xcd92 }, { 3112, 0x6014 }, { 3116, 0x7401 },
+  { 3121, 0x6112 }, { 3126, 0x0091 }, { 3129, 0xc098 }, { 3134, 0x420a },
+  { 3138, 0x040f }, { 3143, 0x8420 }, { 3146, 0x9a13 }, { 3153, 0x4002 },
+  /* 0x7000 */
+  { 3155, 0x8a62 }, { 3161, 0xfd22 }, { 3170, 0x8188 }, { 3174, 0x4080 },
+  { 3176, 0x1000 }, { 3177, 0x2103 }, { 3181, 0x0808 }, { 3183, 0x3101 },
+  { 3187, 0x4420 }, { 3190, 0x0704 }, { 3194, 0xb812 }, { 3200, 0x0388 },
+  { 3204, 0x8900 }, { 3207, 0xa300 }, { 3211, 0x0000 }, { 3211, 0x2202 },
+  /* 0x7100 */
+  { 3214, 0x1210 }, { 3217, 0x4600 }, { 3220, 0x0042 }, { 3222, 0x0041 },
+  { 3224, 0x5680 }, { 3229, 0x5241 }, { 3234, 0x52f0 }, { 3241, 0x2000 },
+  { 3242, 0x8610 }, { 3246, 0x8214 }, { 3250, 0x1004 }, { 3252, 0x4602 },
+  { 3256, 0x430a }, { 3261, 0x8035 }, { 3266, 0x60e0 }, { 3271, 0xd800 },
+  /* 0x7200 */
+  { 3275, 0x0041 }, { 3277, 0x0801 }, { 3279, 0x3400 }, { 3282, 0x6c65 },
+  { 3290, 0x11c1 }, { 3295, 0xab04 }, { 3301, 0x0286 }, { 3305, 0x2204 },
+  { 3308, 0x0003 }, { 3310, 0x0000 }, { 3310, 0x9084 }, { 3314, 0x0000 },
+  { 3314, 0x4015 }, { 3318, 0x0281 }, { 3321, 0x0202 }, { 3323, 0x3300 },
+  /* 0x7300 */
+  { 3327, 0x0400 }, { 3328, 0x3840 }, { 3332, 0x0e20 }, { 3336, 0xc0c0 },
+  { 3340, 0x0030 }, { 3342, 0x0085 }, { 3345, 0x0500 }, { 3347, 0x0d25 },
+  { 3353, 0x4ad0 }, { 3359, 0x81d0 }, { 3364, 0x2280 }, { 3367, 0x020c },
+  { 3370, 0xb605 }, { 3377, 0x6240 }, { 3381, 0x2679 }, { 3389, 0x6280 },
+  /* 0x7400 */
+  { 3393, 0x02ea }, { 3399, 0x0808 }, { 3401, 0xdd67 }, { 3412, 0x8579 },
+  { 3420, 0x081b }, { 3425, 0xdea0 }, { 3433, 0x8735 }, { 3441, 0x4000 },
+  { 3442, 0x0a8c }, { 3447, 0xd100 }, { 3451, 0x05aa }, { 3457, 0xa225 },
+  { 3463, 0x8440 }, { 3466, 0x1510 }, { 3470, 0x404d }, { 3475, 0x0080 },
+  /* 0x7500 */
+  { 3476, 0x0012 }, { 3478, 0x8d22 }, { 3484, 0x1968 }, { 3490, 0x058f },
+  { 3497, 0x9080 }, { 3500, 0x3a1a }, { 3507, 0x8464 }, { 3512, 0x8561 },
+  { 3518, 0xccc0 }, { 3524, 0x2002 }, { 3526, 0x0820 }, { 3528, 0x732e },
+  { 3537, 0x20a4 }, { 3541, 0x0b34 }, { 3547, 0x0004 }, { 3548, 0x1415 },
+  /* 0x7600 */
+  { 3553, 0x2001 }, { 3555, 0x8200 }, { 3557, 0x0057 }, { 3562, 0x0800 },
+  { 3563, 0x5004 }, { 3566, 0x0044 }, { 3568, 0x1212 }, { 3572, 0x7905 },
+  { 3579, 0x40d0 }, { 3583, 0x0009 }, { 3585, 0x4000 }, { 3586, 0x8400 },
+  { 3588, 0x054c }, { 3593, 0xd844 }, { 3599, 0x409a }, { 3604, 0x5114 },
+  /* 0x7700 */
+  { 3609, 0x0b12 }, { 3614, 0x4000 }, { 3615, 0x0201 }, { 3617, 0x1580 },
+  { 3621, 0x2001 }, { 3623, 0x0800 }, { 3624, 0x084a }, { 3628, 0xc200 },
+  { 3631, 0x0800 }, { 3632, 0x4002 }, { 3634, 0x3020 }, { 3637, 0x9809 },
+  { 3642, 0x0000 }, { 3642, 0x1880 }, { 3645, 0xe22c }, { 3652, 0x0008 },
+  /* 0x7800 */
+  { 3653, 0x0004 }, { 3654, 0x0004 }, { 3655, 0x10e0 }, { 3659, 0x0014 },
+  { 3661, 0x8020 }, { 3663, 0x2000 }, { 3664, 0x9800 }, { 3667, 0x1000 },
+  { 3668, 0x7082 }, { 3673, 0x0082 }, { 3675, 0x0288 }, { 3678, 0x1c00 },
+  { 3681, 0x4c22 }, { 3686, 0x0001 }, { 3687, 0x9100 }, { 3690, 0x0820 },
+  /* 0x7900 */
+  { 3692, 0x4002 }, { 3694, 0x0040 }, { 3695, 0x1c00 }, { 3698, 0x4400 },
+  { 3700, 0x0383 }, { 3705, 0x7cc1 }, { 3713, 0x2121 }, { 3717, 0x8400 },
+  { 3719, 0xe002 }, { 3723, 0x0002 }, { 3724, 0x44c0 }, { 3728, 0xe20a },
+  { 3734, 0x0e03 }, { 3739, 0x8126 }, { 3744, 0x02d0 }, { 3748, 0x0800 },
+  /* 0x7a00 */
+  { 3749, 0x2921 }, { 3754, 0x9690 }, { 3760, 0x4001 }, { 3762, 0xb8c2 },
+  { 3769, 0x6241 }, { 3774, 0x0080 }, { 3775, 0x0a06 }, { 3779, 0xa651 },
+  { 3786, 0x0112 }, { 3789, 0x812c }, { 3794, 0xc600 }, { 3798, 0x0400 },
+  { 3799, 0x0cb0 }, { 3804, 0xa280 }, { 3808, 0xa429 }, { 3814, 0x8640 },
+  /* 0x7b00 */
+  { 3818, 0x8000 }, { 3819, 0x4a02 }, { 3823, 0x3041 }, { 3827, 0x0200 },
+  { 3828, 0xba40 }, { 3834, 0x0057 }, { 3839, 0x5001 }, { 3842, 0x2020 },
+  { 3844, 0x8880 }, { 3847, 0x24b0 }, { 3852, 0x2002 }, { 3854, 0x0112 },
+  { 3857, 0x02d3 }, { 3863, 0x0004 }, { 3864, 0x0211 }, { 3867, 0x0000 },
+  /* 0x7c00 */
+  { 3867, 0x0080 }, { 3868, 0x4004 }, { 3870, 0x0c82 }, { 3874, 0xe000 },
+  { 3877, 0x3008 }, { 3880, 0x0000 }, { 3880, 0x1011 }, { 3883, 0x0008 },
+  { 3884, 0x0208 }, { 3886, 0x81a4 }, { 3891, 0x40a0 }, { 3894, 0x420e },
+  { 3899, 0x0400 }, { 3900, 0xc040 }, { 3903, 0x0081 }, { 3905, 0x4800 },
+  /* 0x7d00 */
+  { 3907, 0x2df5 }, { 3917, 0x0f91 }, { 3924, 0xd807 }, { 3931, 0x0629 },
+  { 3936, 0x007c }, { 3941, 0x4001 }, { 3943, 0x4546 }, { 3949, 0x824e },
+  { 3955, 0xc000 }, { 3957, 0x1008 }, { 3959, 0x3005 }, { 3963, 0xed36 },
+  { 3973, 0x0c80 }, { 3976, 0x6540 }, { 3981, 0x930b }, { 3988, 0x0810 },
+  /* 0x7e00 */
+  { 3990, 0x0600 }, { 3992, 0xe820 }, { 3997, 0xc80a }, { 4002, 0x6082 },
+  { 4006, 0x00ca }, { 4010, 0x4034 }, { 4014, 0x2e02 }, { 4019, 0x1201 },
+  { 4022, 0x9004 }, { 4025, 0x1948 }, { 4030, 0x0000 }, { 4030, 0x0000 },
+  { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0000 },
+  /* 0x7f00 */
+  { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0540 },
+  { 4033, 0x1000 }, { 4034, 0x0031 }, { 4037, 0x4c00 }, { 4040, 0x02a5 },
+  { 4045, 0x5520 }, { 4050, 0x4410 }, { 4053, 0x0310 }, { 4056, 0x2304 },
+  { 4060, 0x5422 }, { 4065, 0x8034 }, { 4069, 0x0a03 }, { 4073, 0x1201 },
+  /* 0x8000 */
+  { 4076, 0x126b }, { 4083, 0x01a1 }, { 4087, 0x2000 }, { 4088, 0xa048 },
+  { 4092, 0x0448 }, { 4095, 0x4540 }, { 4099, 0x8000 }, { 4100, 0xe08d },
+  { 4107, 0x1af0 }, { 4114, 0x2840 }, { 4117, 0x8626 }, { 4123, 0x0416 },
+  { 4127, 0x5018 }, { 4131, 0x4c00 }, { 4134, 0x0032 }, { 4137, 0x2112 },
+  /* 0x8100 */
+  { 4141, 0x05e4 }, { 4147, 0x0d00 }, { 4150, 0x8a08 }, { 4154, 0x4200 },
+  { 4156, 0x4800 }, { 4158, 0x0033 }, { 4162, 0x0860 }, { 4165, 0x8703 },
+  { 4171, 0x8501 }, { 4175, 0x3400 }, { 4178, 0x0109 }, { 4181, 0xe428 },
+  { 4187, 0x2045 }, { 4191, 0x8100 }, { 4193, 0x25a8 }, { 4199, 0x5c18 },
+  /* 0x8200 */
+  { 4205, 0x35a0 }, { 4211, 0xd804 }, { 4216, 0x1c02 }, { 4220, 0x02e0 },
+  { 4224, 0x00a1 }, { 4227, 0x0200 }, { 4228, 0xc050 }, { 4232, 0x4146 },
+  { 4237, 0x6800 }, { 4240, 0xa604 }, { 4245, 0xf260 }, { 4252, 0xbb8a },
+  { 4261, 0x0000 }, { 4261, 0xc8b6 }, { 4269, 0x00e2 }, { 4273, 0x6002 },
+  /* 0x8300 */
+  { 4276, 0x023e }, { 4282, 0x0080 }, { 4283, 0x8900 }, { 4286, 0x0372 },
+  { 4292, 0x8681 }, { 4297, 0x0006 }, { 4299, 0x0000 }, { 4299, 0x0888 },
+  { 4302, 0x4600 }, { 4305, 0x4140 }, { 4308, 0x0e04 }, { 4312, 0x2000 },
+  { 4313, 0x1622 }, { 4318, 0x1048 }, { 4321, 0x8a00 }, { 4324, 0x2217 },
+  /* 0x8400 */
+  { 4330, 0x7418 }, { 4336, 0x0000 }, { 4336, 0x1200 }, { 4338, 0x2102 },
+  { 4341, 0x0200 }, { 4342, 0x0880 }, { 4344, 0x984a }, { 4350, 0x0420 },
+  { 4352, 0x0000 }, { 4352, 0x1211 }, { 4356, 0x0002 }, { 4357, 0x9904 },
+  { 4362, 0x2a55 }, { 4369, 0x0402 }, { 4371, 0x5000 }, { 4373, 0x1010 },
+  /* 0x8500 */
+  { 4375, 0x0000 }, { 4375, 0x459a }, { 4382, 0xb02a }, { 4388, 0xa000 },
+  { 4390, 0x420a }, { 4394, 0x0208 }, { 4396, 0x2708 }, { 4401, 0x0000 },
+  { 4401, 0x8090 }, { 4404, 0x0812 }, { 4407, 0x8740 }, { 4412, 0x0401 },
+  { 4414, 0xe202 }, { 4419, 0x3020 }, { 4422, 0x0630 }, { 4426, 0x8c80 },
+  /* 0x8600 */
+  { 4430, 0x04c4 }, { 4434, 0x04c0 }, { 4437, 0x2000 }, { 4438, 0x8000 },
+  { 4439, 0x4000 }, { 4440, 0xd831 }, { 4447, 0x0080 }, { 4448, 0x0200 },
+  { 4449, 0x1400 }, { 4451, 0x0008 }, { 4452, 0x0218 }, { 4455, 0x0000 },
+  { 4455, 0x0880 }, { 4457, 0x8a10 }, { 4461, 0x2010 }, { 4463, 0x4000 },
+  /* 0x8700 */
+  { 4464, 0x010d }, { 4468, 0x1500 }, { 4471, 0x0000 }, { 4471, 0x0000 },
+  { 4471, 0x4000 }, { 4472, 0x80a0 }, { 4475, 0x0140 }, { 4477, 0x0150 },
+  { 4480, 0x2004 }, { 4482, 0x8000 }, { 4483, 0x0004 }, { 4484, 0x0408 },
+  { 4486, 0x0010 }, { 4487, 0x0000 }, { 4487, 0x9001 }, { 4490, 0x4a04 },
+  /* 0x8800 */
+  { 4494, 0x0020 }, { 4495, 0x8000 }, { 4496, 0x000c }, { 4498, 0x0842 },
+  { 4501, 0x3041 }, { 4505, 0x2a8c }, { 4511, 0x090e }, { 4516, 0xc085 },
+  { 4521, 0x2906 }, { 4526, 0x40c4 }, { 4530, 0x0800 }, { 4531, 0x0010 },
+  { 4532, 0x8006 }, { 4535, 0xb230 }, { 4541, 0x0102 }, { 4543, 0x2138 },
+  /* 0x8900 */
+  { 4548, 0x0080 }, { 4549, 0x030d }, { 4554, 0x0420 }, { 4556, 0x0940 },
+  { 4559, 0x0012 }, { 4561, 0x8000 }, { 4562, 0x0410 }, { 4564, 0x8004 },
+  { 4566, 0x88ca }, { 4572, 0x0048 }, { 4574, 0x0602 }, { 4577, 0x2404 },
+  { 4580, 0x0001 }, { 4581, 0x0004 }, { 4582, 0x0008 }, { 4583, 0x0110 },
+  /* 0x8a00 */
+  { 4585, 0x550d }, { 4592, 0xa9c8 }, { 4599, 0x2428 }, { 4603, 0x0c52 },
+  { 4608, 0x0000 }, { 4608, 0x4831 }, { 4613, 0x624d }, { 4620, 0x022f },
+  { 4626, 0x30a0 }, { 4630, 0x4128 }, { 4634, 0x057b }, { 4642, 0xd205 },
+  { 4648, 0xa894 }, { 4654, 0x1844 }, { 4658, 0x6cc2 }, { 4665, 0x45c2 },
+  /* 0x8b00 */
+  { 4671, 0x4017 }, { 4676, 0x2ed1 }, { 4684, 0x1901 }, { 4688, 0x0208 },
+  { 4690, 0xc202 }, { 4694, 0x1500 }, { 4697, 0x9040 }, { 4700, 0x2091 },
+  { 4704, 0x0401 }, { 4706, 0x044d }, { 4711, 0x0000 }, { 4711, 0x0000 },
+  { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x0000 },
+  /* 0x8c00 */
+  { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x8080 },
+  { 4713, 0x1542 }, { 4718, 0x0420 }, { 4720, 0x0c02 }, { 4723, 0x0600 },
+  { 4725, 0x1404 }, { 4728, 0x6000 }, { 4730, 0x9f87 }, { 4740, 0xb9d9 },
+  { 4750, 0x059f }, { 4758, 0x540a }, { 4763, 0x245d }, { 4770, 0x3810 },
+  /* 0x8d00 */
+  { 4774, 0x25b0 }, { 4780, 0x0048 }, { 4782, 0x0000 }, { 4782, 0x0000 },
+  { 4782, 0x0000 }, { 4782, 0x0000 }, { 4782, 0x0850 }, { 4785, 0x0099 },
+  { 4789, 0x0420 }, { 4791, 0x0200 }, { 4792, 0x0108 }, { 4794, 0x4408 },
+  { 4797, 0x9840 }, { 4801, 0x2800 }, { 4803, 0x810a }, { 4807, 0x0008 },
+  /* 0x8e00 */
+  { 4808, 0x8400 }, { 4810, 0x4001 }, { 4812, 0x0400 }, { 4813, 0x0021 },
+  { 4815, 0x0794 }, { 4821, 0x8200 }, { 4823, 0x0001 }, { 4824, 0x0050 },
+  { 4826, 0x2482 }, { 4830, 0x0000 }, { 4830, 0x1c00 }, { 4833, 0x0000 },
+  { 4833, 0x3c01 }, { 4838, 0x8004 }, { 4840, 0x0800 }, { 4841, 0x4900 },
+  /* 0x8f00 */
+  { 4844, 0x0228 }, { 4847, 0xf83c }, { 4856, 0x86c0 }, { 4861, 0xcb08 },
+  { 4867, 0x6230 }, { 4872, 0xa000 }, { 4874, 0x0004 }, { 4875, 0x0000 },
+  { 4875, 0x0000 }, { 4875, 0x1800 }, { 4877, 0xa148 }, { 4882, 0x0007 },
+  { 4885, 0x4024 }, { 4888, 0x0012 }, { 4890, 0x2c40 }, { 4894, 0x2285 },
+  /* 0x9000 */
+  { 4899, 0xa96f }, { 4909, 0xe6b3 }, { 4919, 0x400f }, { 4924, 0x5126 },
+  { 4930, 0x6c86 }, { 4937, 0x723b }, { 4946, 0xe20b }, { 4953, 0xb5a4 },
+  { 4961, 0x859f }, { 4970, 0x0222 }, { 4973, 0x854c }, { 4979, 0x0123 },
+  { 4983, 0x0402 }, { 4985, 0x4000 }, { 4986, 0x2102 }, { 4989, 0x2020 },
+  /* 0x9100 */
+  { 4991, 0x0004 }, { 4992, 0x0224 }, { 4995, 0x2080 }, { 4997, 0x0004 },
+  { 4998, 0x7e00 }, { 5004, 0x0004 }, { 5005, 0x1604 }, { 5009, 0x01a0 },
+  { 5012, 0x2a80 }, { 5016, 0x1004 }, { 5018, 0xd800 }, { 5022, 0x0032 },
+  { 5025, 0xfa81 }, { 5033, 0x3183 }, { 5039, 0x0488 }, { 5042, 0x0020 },
+  /* 0x9200 */
+  { 5043, 0x2000 }, { 5044, 0x4087 }, { 5049, 0x0000 }, { 5049, 0x8410 },
+  { 5052, 0x0221 }, { 5055, 0x4880 }, { 5058, 0x0074 }, { 5062, 0x0000 },
+  { 5062, 0x0029 }, { 5065, 0x114a }, { 5070, 0x0000 }, { 5070, 0x02c8 },
+  { 5074, 0x9000 }, { 5076, 0x0004 }, { 5077, 0x0410 }, { 5079, 0x1100 },
+  /* 0x9300 */
+  { 5081, 0x0010 }, { 5082, 0xc501 }, { 5087, 0xc957 }, { 5096, 0x0000 },
+  { 5096, 0x2d00 }, { 5100, 0x0810 }, { 5102, 0x4000 }, { 5103, 0x5020 },
+  { 5106, 0x1000 }, { 5107, 0x0450 }, { 5110, 0x3088 }, { 5114, 0x0001 },
+  { 5115, 0x0008 }, { 5116, 0x4002 }, { 5118, 0x0012 }, { 5120, 0x0040 },
+  /* 0x9400 */
+  { 5121, 0x0010 }, { 5122, 0x0100 }, { 5123, 0x0820 }, { 5125, 0x0120 },
+  { 5127, 0x0010 }, { 5128, 0x0806 }, { 5131, 0x0000 }, { 5131, 0xa000 },
+  { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 },
+  { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 },
+  /* 0x9500 */
+  { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 },
+  { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0080 },
+  { 5134, 0x8a09 }, { 5139, 0x011e }, { 5144, 0x2138 }, { 5149, 0x1802 },
+  { 5152, 0x0480 }, { 5154, 0x1070 }, { 5158, 0x0006 }, { 5160, 0x0000 },
+  /* 0x9600 */
+  { 5160, 0x0000 }, { 5160, 0x1000 }, { 5161, 0x4402 }, { 5164, 0x8804 },
+  { 5167, 0x3815 }, { 5173, 0xf801 }, { 5179, 0x041c }, { 5183, 0x21e9 },
+  { 5190, 0x6c60 }, { 5196, 0x1b30 }, { 5202, 0x0588 }, { 5206, 0x0882 },
+  { 5209, 0x7af3 }, { 5220, 0x1a60 }, { 5225, 0x870c }, { 5231, 0x0ac5 },
+  /* 0x9700 */
+  { 5237, 0x00c1 }, { 5240, 0x524a }, { 5246, 0x0080 }, { 5247, 0x2205 },
+  { 5251, 0x0114 }, { 5254, 0x5042 }, { 5258, 0x2206 }, { 5262, 0x0490 },
+  { 5265, 0xa800 }, { 5268, 0x0000 }, { 5268, 0x2901 }, { 5272, 0x0000 },
+  { 5272, 0x0840 }, { 5274, 0x1008 }, { 5276, 0x0000 }, { 5276, 0x8848 },
+  /* 0x9800 */
+  { 5280, 0x156f }, { 5289, 0x018f }, { 5295, 0x2000 }, { 5296, 0x0b01 },
+  { 5300, 0x7040 }, { 5304, 0x4510 }, { 5308, 0x88a0 }, { 5312, 0x0000 },
+  { 5312, 0x0000 }, { 5312, 0x0000 }, { 5312, 0x8100 }, { 5314, 0x0002 },
+  { 5315, 0x0090 }, { 5317, 0x9800 }, { 5320, 0xe006 }, { 5325, 0x7010 },
+  /* 0x9900 */
+  { 5329, 0x1608 }, { 5333, 0x4109 }, { 5337, 0x0101 }, { 5339, 0x0000 },
+  { 5339, 0x3a20 }, { 5344, 0x0096 }, { 5348, 0x0000 }, { 5348, 0x0000 },
+  { 5348, 0x0000 }, { 5348, 0x2240 }, { 5351, 0x7120 }, { 5356, 0x021a },
+  { 5360, 0x0002 }, { 5361, 0xa227 }, { 5368, 0x2000 }, { 5369, 0x8002 },
+  /* 0x9a00 */
+  { 5371, 0xc102 }, { 5375, 0x0200 }, { 5376, 0x0800 }, { 5377, 0x00c1 },
+  { 5380, 0x2029 }, { 5384, 0x8ca0 }, { 5389, 0x0624 }, { 5393, 0x0000 },
+  { 5393, 0x0000 }, { 5393, 0x0000 }, { 5393, 0x0100 }, { 5394, 0x0100 },
+  { 5395, 0x0000 }, { 5395, 0x0118 }, { 5398, 0x4020 }, { 5400, 0x0000 },
+  /* 0x9b00 */
+  { 5400, 0x0000 }, { 5400, 0x0400 }, { 5401, 0x0480 }, { 5403, 0x1002 },
+  { 5405, 0x803e }, { 5411, 0x0410 }, { 5413, 0x8000 }, { 5414, 0x0000 },
+  { 5414, 0x4000 }, { 5415, 0x8002 }, { 5417, 0x4800 }, { 5419, 0x0000 },
+  { 5419, 0x0200 }, { 5420, 0x0040 }, { 5421, 0x0110 }, { 5423, 0x0000 },
+  /* 0x9c00 */
+  { 5423, 0x2000 }, { 5424, 0x0025 }, { 5427, 0x0020 }, { 5428, 0x0804 },
+  { 5430, 0x0280 }, { 5432, 0x0080 }, { 5433, 0x0000 }, { 5433, 0x0000 },
+  { 5433, 0x0000 }, { 5433, 0x0000 }, { 5433, 0x0000 }, { 5433, 0x0000 },
+  { 5433, 0x0000 }, { 5433, 0x0000 }, { 5433, 0x02a0 }, { 5436, 0x0058 },
+  /* 0x9d00 */
+  { 5439, 0x0200 }, { 5440, 0x0800 }, { 5441, 0x0140 }, { 5443, 0x0800 },
+  { 5444, 0x0000 }, { 5444, 0x2002 }, { 5446, 0x1003 }, { 5449, 0x0004 },
+  { 5450, 0x0000 }, { 5450, 0x0000 }, { 5450, 0x8200 }, { 5452, 0x0010 },
+  { 5453, 0x0010 }, { 5454, 0x0080 }, { 5455, 0x0000 }, { 5455, 0x0704 },
+  /* 0x9e00 */
+  { 5459, 0x0000 }, { 5459, 0x4400 }, { 5461, 0x0000 }, { 5461, 0x0000 },
+  { 5461, 0x0000 }, { 5461, 0x0000 }, { 5461, 0x0000 }, { 5461, 0xa220 },
+  { 5465, 0x0000 }, { 5465, 0xa08c }, { 5470, 0x0020 }, { 5471, 0x4830 },
+  { 5475, 0x6008 }, { 5478, 0x5912 }, { 5484, 0x0100 }, { 5485, 0x0010 },
+  /* 0x9f00 */
+  { 5486, 0x4180 }, { 5489, 0x0008 }, { 5490, 0x0001 }, { 5491, 0x0800 },
+  { 5492, 0x4c00 }, { 5495, 0x8004 }, { 5497, 0x1482 }, { 5501, 0x0080 },
+  { 5502, 0x2000 }, { 5503, 0x1021 },
+};
+static const Summary16 ksc5601_uni2indx_pageac[698] = {
+  /* 0xac00 */
+  { 5506, 0x0793 }, { 5513, 0x3eff }, { 5526, 0xb011 }, { 5531, 0x1303 },
+  { 5536, 0x2801 }, { 5539, 0x1110 }, { 5542, 0x0000 }, { 5542, 0x0593 },
+  { 5548, 0x1e7b }, { 5558, 0xb011 }, { 5563, 0x9703 }, { 5570, 0x3b01 },
+  { 5576, 0x1112 }, { 5580, 0x00a0 }, { 5582, 0x9593 }, { 5590, 0x306b },
+  /* 0xad00 */
+  { 5597, 0xb051 }, { 5603, 0x1102 }, { 5606, 0x3201 }, { 5610, 0x1130 },
+  { 5614, 0x02b0 }, { 5618, 0x0111 }, { 5621, 0x300a }, { 5625, 0xb879 },
+  { 5634, 0x1306 }, { 5639, 0x3001 }, { 5642, 0x0010 }, { 5643, 0x0080 },
+  { 5644, 0x0113 }, { 5648, 0x100b }, { 5652, 0x0011 }, { 5654, 0x9300 },
+  /* 0xae00 */
+  { 5658, 0x2b03 }, { 5664, 0x0010 }, { 5665, 0x0000 }, { 5665, 0x0593 },
+  { 5671, 0x746b }, { 5680, 0xb051 }, { 5686, 0x1323 }, { 5692, 0x3b01 },
+  { 5698, 0x1030 }, { 5701, 0x0000 }, { 5701, 0x0000 }, { 5701, 0x7000 },
+  { 5704, 0xb011 }, { 5709, 0x1303 }, { 5714, 0x2900 }, { 5717, 0x1110 },
+  /* 0xaf00 */
+  { 5720, 0x2180 }, { 5723, 0x0001 }, { 5724, 0x3000 }, { 5726, 0xb015 },
+  { 5732, 0x030e }, { 5737, 0x3001 }, { 5740, 0x0030 }, { 5742, 0x0200 },
+  { 5743, 0x0111 }, { 5746, 0x1023 }, { 5750, 0x0000 }, { 5750, 0x1300 },
+  { 5753, 0x6b81 }, { 5760, 0x1010 }, { 5762, 0x0300 }, { 5764, 0x0113 },
+  /* 0xb000 */
+  { 5768, 0x1013 }, { 5772, 0x3011 }, { 5776, 0x0100 }, { 5777, 0x0000 },
+  { 5777, 0x5530 }, { 5783, 0x22b8 }, { 5789, 0x0000 }, { 5789, 0x3000 },
+  { 5791, 0xb011 }, { 5796, 0x9702 }, { 5802, 0xfb07 }, { 5812, 0x113a },
+  { 5818, 0x03b0 }, { 5823, 0x0113 }, { 5827, 0x0021 }, { 5829, 0x0000 },
+  /* 0xb100 */
+  { 5829, 0x1b00 }, { 5833, 0x3b0d }, { 5841, 0x1138 }, { 5846, 0x03b0 },
+  { 5851, 0x0113 }, { 5855, 0x1133 }, { 5861, 0x0001 }, { 5862, 0x1300 },
+  { 5865, 0x2b05 }, { 5871, 0x111c }, { 5876, 0x0100 }, { 5877, 0x0000 },
+  { 5877, 0x1000 }, { 5878, 0xb011 }, { 5883, 0x1300 }, { 5886, 0x2a01 },
+  /* 0xb200 */
+  { 5890, 0x1930 }, { 5895, 0x02b0 }, { 5899, 0x0001 }, { 5900, 0x1010 },
+  { 5902, 0x0000 }, { 5902, 0x1100 }, { 5904, 0x0301 }, { 5907, 0x1030 },
+  { 5910, 0x0230 }, { 5913, 0x0713 }, { 5919, 0x146b }, { 5926, 0x0011 },
+  { 5928, 0x1300 }, { 5931, 0x2b05 }, { 5937, 0xf974 }, { 5947, 0x8fb8 },
+  /* 0xb300 */
+  { 5956, 0x0113 }, { 5960, 0x103b }, { 5966, 0x0000 }, { 5966, 0x0000 },
+  { 5966, 0x0000 }, { 5966, 0xd970 }, { 5974, 0x4ab0 }, { 5980, 0x0113 },
+  { 5984, 0x103b }, { 5990, 0x0011 }, { 5992, 0x1103 }, { 5996, 0x0000 },
+  { 5996, 0x5930 }, { 6002, 0x2ab1 }, { 6009, 0x0111 }, { 6012, 0x1000 },
+  /* 0xb400 */
+  { 6013, 0x0000 }, { 6013, 0x1101 }, { 6016, 0x0b01 }, { 6020, 0x0010 },
+  { 6021, 0x0000 }, { 6021, 0x0113 }, { 6025, 0x102b }, { 6030, 0x0000 },
+  { 6030, 0x0101 }, { 6032, 0x2000 }, { 6033, 0x1110 }, { 6036, 0x02a0 },
+  { 6039, 0x0111 }, { 6042, 0x3021 }, { 6046, 0xb059 }, { 6053, 0x0102 },
+  /* 0xb500 */
+  { 6055, 0x0000 }, { 6055, 0x1930 }, { 6060, 0x07b0 }, { 6066, 0x0113 },
+  { 6070, 0x383b }, { 6078, 0xb011 }, { 6083, 0x0003 }, { 6085, 0x0000 },
+  { 6085, 0x0000 }, { 6085, 0x0000 }, { 6085, 0x0d13 }, { 6091, 0x383b },
+  { 6099, 0xb011 }, { 6104, 0x0103 }, { 6107, 0x1000 }, { 6108, 0x0000 },
+  /* 0xb600 */
+  { 6108, 0x0000 }, { 6108, 0x0113 }, { 6112, 0x1020 }, { 6114, 0x0010 },
+  { 6115, 0x0100 }, { 6116, 0x0000 }, { 6116, 0x0110 }, { 6118, 0x0000 },
+  { 6118, 0x0000 }, { 6118, 0x3000 }, { 6120, 0x1811 }, { 6124, 0x0002 },
+  { 6125, 0x0000 }, { 6125, 0x0010 }, { 6126, 0x0000 }, { 6126, 0x0111 },
+  /* 0xb700 */
+  { 6129, 0x0023 }, { 6132, 0x0000 }, { 6132, 0x9300 }, { 6136, 0x0b01 },
+  { 6140, 0x1110 }, { 6143, 0x0030 }, { 6145, 0x0111 }, { 6148, 0x302b },
+  { 6154, 0xb011 }, { 6159, 0x13c7 }, { 6167, 0x3b01 }, { 6173, 0x0130 },
+  { 6176, 0x0280 }, { 6178, 0x0000 }, { 6178, 0x3000 }, { 6180, 0xb011 },
+  /* 0xb800 */
+  { 6185, 0x1383 }, { 6191, 0x2b01 }, { 6196, 0x1130 }, { 6200, 0x03b0 },
+  { 6205, 0x0011 }, { 6207, 0x300a }, { 6211, 0xb011 }, { 6216, 0x1102 },
+  { 6219, 0x2000 }, { 6220, 0x0000 }, { 6220, 0x0100 }, { 6221, 0x0111 },
+  { 6224, 0x102b }, { 6229, 0xa011 }, { 6233, 0x1302 }, { 6237, 0x2b01 },
+  /* 0xb900 */
+  { 6242, 0x0010 }, { 6243, 0x0100 }, { 6244, 0x0001 }, { 6245, 0x3000 },
+  { 6247, 0x9011 }, { 6251, 0x1302 }, { 6255, 0x2b01 }, { 6260, 0x1130 },
+  { 6264, 0x66b0 }, { 6271, 0x0000 }, { 6271, 0x3000 }, { 6273, 0xb011 },
+  { 6278, 0xd302 }, { 6284, 0x6b07 }, { 6292, 0x113a }, { 6298, 0x07b0 },
+  /* 0xba00 */
+  { 6304, 0x0103 }, { 6307, 0x0020 }, { 6308, 0x0000 }, { 6308, 0x1300 },
+  { 6311, 0x6b05 }, { 6318, 0x1138 }, { 6323, 0x03b0 }, { 6328, 0x0113 },
+  { 6332, 0x10b8 }, { 6337, 0x0000 }, { 6337, 0x1b00 }, { 6341, 0x2b05 },
+  { 6347, 0x0110 }, { 6349, 0x0300 }, { 6351, 0x0000 }, { 6351, 0x1000 },
+  /* 0xbb00 */
+  { 6352, 0xa011 }, { 6356, 0x1102 }, { 6359, 0x0a01 }, { 6362, 0x7970 },
+  { 6370, 0xa2b0 }, { 6376, 0x0111 }, { 6379, 0x100a }, { 6382, 0x0000 },
+  { 6382, 0x1100 }, { 6384, 0x0001 }, { 6385, 0x1110 }, { 6388, 0x0090 },
+  { 6390, 0x0111 }, { 6393, 0x0009 }, { 6395, 0x0000 }, { 6395, 0x9300 },
+  /* 0xbc00 */
+  { 6399, 0xbb05 }, { 6407, 0xf9f2 }, { 6418, 0x22b0 }, { 6423, 0x0113 },
+  { 6427, 0x323b }, { 6435, 0x2001 }, { 6437, 0x0000 }, { 6437, 0x0000 },
+  { 6437, 0x5930 }, { 6443, 0x06b0 }, { 6448, 0x0193 }, { 6453, 0x303b },
+  { 6460, 0xa011 }, { 6464, 0x1123 }, { 6469, 0x0000 }, { 6469, 0x1170 },
+  /* 0xbd00 */
+  { 6474, 0x02b0 }, { 6478, 0x0011 }, { 6480, 0x1010 }, { 6482, 0x0000 },
+  { 6482, 0x1301 }, { 6486, 0x0301 }, { 6489, 0x0110 }, { 6491, 0x0000 },
+  { 6491, 0x0793 }, { 6498, 0x162b }, { 6505, 0x0010 }, { 6506, 0x0101 },
+  { 6508, 0x0000 }, { 6508, 0x1130 }, { 6512, 0x0200 }, { 6513, 0x0111 },
+  /* 0xbe00 */
+  { 6516, 0x3029 }, { 6521, 0xb011 }, { 6526, 0x0000 }, { 6526, 0x0000 },
+  { 6526, 0x5130 }, { 6531, 0x0eb0 }, { 6537, 0x0513 }, { 6542, 0x383b },
+  { 6550, 0xb011 }, { 6555, 0x0303 }, { 6559, 0x0100 }, { 6560, 0x0000 },
+  { 6560, 0x0000 }, { 6560, 0x0193 }, { 6565, 0x1039 }, { 6570, 0x0000 },
+  /* 0xbf00 */
+  { 6570, 0x0302 }, { 6573, 0x3b00 }, { 6578, 0x0000 }, { 6578, 0x0000 },
+  { 6578, 0x0113 }, { 6582, 0x0023 }, { 6585, 0x0000 }, { 6585, 0x0000 },
+  { 6585, 0x0000 }, { 6585, 0x0010 }, { 6586, 0x0000 }, { 6586, 0x0001 },
+  { 6587, 0x3020 }, { 6590, 0x9011 }, { 6594, 0x0002 }, { 6595, 0x0000 },
+  /* 0xc000 */
+  { 6595, 0x0000 }, { 6595, 0x0000 }, { 6595, 0x0000 }, { 6595, 0x1000 },
+  { 6596, 0x0000 }, { 6596, 0x1102 }, { 6599, 0x0301 }, { 6602, 0x0000 },
+  { 6602, 0x0000 }, { 6602, 0x0113 }, { 6606, 0xb02b }, { 6613, 0xb079 },
+  { 6621, 0x1323 }, { 6627, 0x3b01 }, { 6633, 0x1130 }, { 6637, 0x02b0 },
+  /* 0xc100 */
+  { 6641, 0x0111 }, { 6644, 0xf021 }, { 6650, 0xb0d9 }, { 6658, 0x1343 },
+  { 6664, 0x3b01 }, { 6670, 0x1130 }, { 6674, 0x03b0 }, { 6679, 0x0111 },
+  { 6682, 0x7020 }, { 6686, 0xb051 }, { 6692, 0x1322 }, { 6697, 0x2001 },
+  { 6699, 0x1110 }, { 6702, 0x0190 }, { 6705, 0x0111 }, { 6708, 0x300b },
+  /* 0xc200 */
+  { 6713, 0xb011 }, { 6718, 0x9302 }, { 6723, 0xab01 }, { 6729, 0x0016 },
+  { 6732, 0x0100 }, { 6733, 0x0113 }, { 6737, 0x3021 }, { 6741, 0xb011 },
+  { 6746, 0x0302 }, { 6749, 0x2901 }, { 6753, 0x3130 }, { 6758, 0x02b0 },
+  { 6762, 0x0000 }, { 6762, 0x3000 }, { 6764, 0xb819 }, { 6771, 0x1b42 },
+  /* 0xc300 */
+  { 6777, 0x3301 }, { 6782, 0x1138 }, { 6787, 0x0330 }, { 6791, 0x0000 },
+  { 6791, 0x0020 }, { 6792, 0x0000 }, { 6792, 0x1300 }, { 6795, 0x3305 },
+  { 6801, 0x1110 }, { 6804, 0x0000 }, { 6804, 0x0000 }, { 6804, 0x0000 },
+  { 6804, 0x0001 }, { 6805, 0x9300 }, { 6809, 0x2305 }, { 6814, 0x0130 },
+  /* 0xc400 */
+  { 6817, 0x0100 }, { 6818, 0x0001 }, { 6819, 0x1010 }, { 6821, 0x3011 },
+  { 6825, 0x0100 }, { 6826, 0x0000 }, { 6826, 0x1130 }, { 6830, 0x0230 },
+  { 6833, 0x0001 }, { 6834, 0x1010 }, { 6836, 0x0000 }, { 6836, 0x1100 },
+  { 6838, 0x0000 }, { 6838, 0x0000 }, { 6838, 0x0200 }, { 6839, 0x8513 },
+  /* 0xc500 */
+  { 6845, 0x1003 }, { 6848, 0x1011 }, { 6851, 0x1300 }, { 6854, 0x2b01 },
+  { 6859, 0x7730 }, { 6867, 0x63b8 }, { 6875, 0x0113 }, { 6879, 0x303b },
+  { 6886, 0xb091 }, { 6892, 0x11a2 }, { 6897, 0x0201 }, { 6899, 0x7b30 },
+  { 6907, 0x57f0 }, { 6916, 0x0113 }, { 6920, 0x702b }, { 6927, 0xf0d1 },
+  /* 0xc600 */
+  { 6935, 0x11e3 }, { 6942, 0x1b01 }, { 6947, 0x7130 }, { 6953, 0x0ab9 },
+  { 6960, 0x0113 }, { 6964, 0x303b }, { 6971, 0x9001 }, { 6974, 0x1302 },
+  { 6978, 0x2b01 }, { 6983, 0x1130 }, { 6987, 0x02b0 }, { 6991, 0x0713 },
+  { 6997, 0x302b }, { 7003, 0x3011 }, { 7007, 0x1303 }, { 7012, 0x2301 },
+  /* 0xc700 */
+  { 7016, 0x1130 }, { 7020, 0x02b0 }, { 7024, 0x0113 }, { 7028, 0x30ab },
+  { 7035, 0xb411 }, { 7041, 0x11fe }, { 7050, 0x0901 }, { 7053, 0x7130 },
+  { 7059, 0x47b8 }, { 7067, 0x05d3 }, { 7074, 0x307b }, { 7082, 0xb011 },
+  { 7087, 0x5303 }, { 7093, 0x2101 }, { 7096, 0x1110 }, { 7099, 0x0000 },
+  /* 0xc800 */
+  { 7099, 0x0513 }, { 7104, 0x306b }, { 7111, 0xb011 }, { 7116, 0x1102 },
+  { 7119, 0x3301 }, { 7124, 0x0010 }, { 7125, 0x0000 }, { 7125, 0x0513 },
+  { 7130, 0x38eb }, { 7139, 0xa010 }, { 7142, 0x0102 }, { 7144, 0x3000 },
+  { 7146, 0x1110 }, { 7149, 0x02b0 }, { 7153, 0x0013 }, { 7156, 0x3020 },
+  /* 0xc900 */
+  { 7159, 0xb071 }, { 7166, 0x0102 }, { 7168, 0x1000 }, { 7169, 0xfffc },
+  { 7183, 0x00ff }, { 7191, 0x0113 }, { 7195, 0x100b }, { 7199, 0x1011 },
+  { 7202, 0x1300 }, { 7205, 0x2b01 }, { 7210, 0x0000 }, { 7210, 0x0000 },
+  { 7210, 0x0593 }, { 7216, 0x366b }, { 7225, 0xb095 }, { 7232, 0x1303 },
+  /* 0xca00 */
+  { 7237, 0x3b01 }, { 7243, 0x0110 }, { 7245, 0x0200 }, { 7246, 0x0000 },
+  { 7246, 0x3000 }, { 7248, 0xb011 }, { 7253, 0x0703 }, { 7258, 0x2000 },
+  { 7259, 0x0070 }, { 7262, 0x0100 }, { 7263, 0x0000 }, { 7263, 0x3000 },
+  { 7265, 0xfc11 }, { 7273, 0xffff }, { 7289, 0x10ff }, { 7298, 0x0010 },
+  /* 0xcb00 */
+  { 7299, 0x0100 }, { 7300, 0x0111 }, { 7303, 0x0003 }, { 7305, 0xfe00 },
+  { 7312, 0x131f }, { 7320, 0x2301 }, { 7324, 0x0010 }, { 7325, 0x0300 },
+  { 7327, 0x0000 }, { 7327, 0x1000 }, { 7328, 0x0000 }, { 7328, 0x0100 },
+  { 7329, 0x0000 }, { 7329, 0x0010 }, { 7330, 0x0290 }, { 7333, 0x0000 },
+  /* 0xcc00 */
+  { 7333, 0x3000 }, { 7335, 0x3011 }, { 7339, 0x5386 }, { 7346, 0x7b01 },
+  { 7353, 0x1130 }, { 7357, 0x03b0 }, { 7362, 0xf951 }, { 7371, 0x0027 },
+  { 7375, 0x0000 }, { 7375, 0x1300 }, { 7378, 0x3b01 }, { 7384, 0x1130 },
+  { 7388, 0x02b0 }, { 7392, 0x0791 }, { 7398, 0x1010 }, { 7400, 0x8001 },
+  /* 0xcd00 */
+  { 7402, 0xffff }, { 7418, 0x2b07 }, { 7425, 0x1110 }, { 7428, 0x7fe0 },
+  { 7438, 0x0000 }, { 7438, 0x1000 }, { 7439, 0xffff }, { 7455, 0xffff },
+  { 7471, 0xffff }, { 7487, 0xffff }, { 7503, 0x02b0 }, { 7507, 0x0001 },
+  { 7508, 0xffd0 }, { 7519, 0xffff }, { 7535, 0xffff }, { 7551, 0xffff },
+  /* 0xce00 */
+  { 7567, 0x1117 }, { 7573, 0x0210 }, { 7575, 0xf113 }, { 7583, 0xffff },
+  { 7599, 0xffff }, { 7615, 0xffff }, { 7631, 0x3fff }, { 7645, 0x1130 },
+  { 7649, 0x02b0 }, { 7653, 0x0113 }, { 7657, 0x303b }, { 7664, 0x0000 },
+  { 7664, 0x0002 }, { 7665, 0x0000 }, { 7665, 0x1930 }, { 7670, 0x03b0 },
+  /* 0xcf00 */
+  { 7675, 0x0113 }, { 7679, 0x102b }, { 7684, 0xb011 }, { 7689, 0x0103 },
+  { 7692, 0x0000 }, { 7692, 0x1130 }, { 7696, 0x02b0 }, { 7700, 0x0113 },
+  { 7704, 0x1021 }, { 7707, 0x0000 }, { 7707, 0x0102 }, { 7709, 0x0001 },
+  { 7710, 0x0010 }, { 7711, 0x0000 }, { 7711, 0x0113 }, { 7715, 0x102b },
+  /* 0xd000 */
+  { 7720, 0x0011 }, { 7722, 0x0102 }, { 7724, 0x2000 }, { 7725, 0x1130 },
+  { 7729, 0x02b0 }, { 7733, 0x0111 }, { 7736, 0x3001 }, { 7739, 0x3011 },
+  { 7743, 0x0002 }, { 7744, 0x0000 }, { 7744, 0x1130 }, { 7748, 0x02b0 },
+  { 7752, 0x0313 }, { 7757, 0x303b }, { 7764, 0xb011 }, { 7769, 0x0103 },
+  /* 0xd100 */
+  { 7772, 0x2000 }, { 7773, 0x0000 }, { 7773, 0x0000 }, { 7773, 0x0513 },
+  { 7778, 0x303b }, { 7785, 0xb011 }, { 7790, 0x1102 }, { 7793, 0x1000 },
+  { 7794, 0x0110 }, { 7796, 0x0000 }, { 7796, 0x0113 }, { 7800, 0x142b },
+  { 7806, 0x0001 }, { 7807, 0x0100 }, { 7808, 0x0000 }, { 7808, 0x0110 },
+  /* 0xd200 */
+  { 7810, 0x0280 }, { 7812, 0x0001 }, { 7813, 0x3000 }, { 7815, 0xb011 },
+  { 7820, 0x0102 }, { 7822, 0x1000 }, { 7823, 0x0010 }, { 7824, 0x0000 },
+  { 7824, 0x0113 }, { 7828, 0x1023 }, { 7832, 0x1011 }, { 7835, 0x9302 },
+  { 7840, 0x0b05 }, { 7845, 0x1110 }, { 7848, 0x0030 }, { 7850, 0x0113 },
+  /* 0xd300 */
+  { 7854, 0x702b }, { 7861, 0xb051 }, { 7867, 0x1323 }, { 7873, 0x3b01 },
+  { 7879, 0x0030 }, { 7881, 0x0000 }, { 7881, 0x0000 }, { 7881, 0x3000 },
+  { 7883, 0xb011 }, { 7888, 0x1303 }, { 7893, 0x2b01 }, { 7898, 0x1110 },
+  { 7901, 0x0330 }, { 7905, 0x0101 }, { 7907, 0x300a }, { 7911, 0xb011 },
+  /* 0xd400 */
+  { 7916, 0x0102 }, { 7918, 0x2000 }, { 7919, 0x0000 }, { 7919, 0x0000 },
+  { 7919, 0x0011 }, { 7921, 0x1000 }, { 7922, 0xa011 }, { 7926, 0x9300 },
+  { 7930, 0x2b05 }, { 7936, 0x0010 }, { 7937, 0x0200 }, { 7938, 0x0000 },
+  { 7938, 0x1000 }, { 7939, 0x9011 }, { 7943, 0x1100 }, { 7945, 0x2901 },
+  /* 0xd500 */
+  { 7949, 0x1110 }, { 7952, 0x00b0 }, { 7955, 0x0000 }, { 7955, 0x3000 },
+  { 7957, 0xb011 }, { 7962, 0x1302 }, { 7966, 0x2b21 }, { 7972, 0x1130 },
+  { 7976, 0x03b0 }, { 7981, 0x0001 }, { 7982, 0x0020 }, { 7983, 0x0000 },
+  { 7983, 0x1300 }, { 7986, 0x2b05 }, { 7992, 0x1130 }, { 7996, 0x02b0 },
+  /* 0xd600 */
+  { 8000, 0x0113 }, { 8004, 0x103b }, { 8010, 0x2011 }, { 8013, 0x1300 },
+  { 8016, 0x2b21 }, { 8022, 0x1132 }, { 8027, 0x0280 }, { 8029, 0x0013 },
+  { 8032, 0x3028 }, { 8036, 0xa011 }, { 8040, 0x1102 }, { 8043, 0x0a01 },
+  { 8046, 0x1130 }, { 8050, 0x0292 }, { 8054, 0x0111 }, { 8057, 0x3021 },
+  /* 0xd700 */
+  { 8061, 0x0011 }, { 8063, 0x1302 }, { 8067, 0x2b01 }, { 8072, 0x1130 },
+  { 8076, 0x0290 }, { 8079, 0x03d3 }, { 8086, 0x122b }, { 8092, 0x3011 },
+  { 8096, 0x1302 }, { 8100, 0x2b01 },
+};
+static const Summary16 ksc5601_uni2indx_pagef9[17] = {
+  /* 0xf900 */
+  { 8105, 0xffff }, { 8121, 0xffff }, { 8137, 0xffff }, { 8153, 0xffff },
+  { 8169, 0xffff }, { 8185, 0xffff }, { 8201, 0xffff }, { 8217, 0xffff },
+  { 8233, 0xffff }, { 8249, 0xffff }, { 8265, 0xffff }, { 8281, 0xffff },
+  { 8297, 0xffff }, { 8313, 0xffff }, { 8329, 0xffff }, { 8345, 0xffff },
+  /* 0xfa00 */
+  { 8361, 0x0fff },
+};
+static const Summary16 ksc5601_uni2indx_pageff[15] = {
+  /* 0xff00 */
+  { 8373, 0xfffe }, { 8388, 0xffff }, { 8404, 0xffff }, { 8420, 0xffff },
+  { 8436, 0xffff }, { 8452, 0x7fff }, { 8467, 0x0000 }, { 8467, 0x0000 },
+  { 8467, 0x0000 }, { 8467, 0x0000 }, { 8467, 0x0000 }, { 8467, 0x0000 },
+  { 8467, 0x0000 }, { 8467, 0x0000 }, { 8467, 0x006f },
+};
+
+static int
+ksc5601_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x0460)
+      summary = &ksc5601_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x2000 && wc < 0x2670)
+      summary = &ksc5601_uni2indx_page20[(wc>>4)-0x200];
+    else if (wc >= 0x3000 && wc < 0x33e0)
+      summary = &ksc5601_uni2indx_page30[(wc>>4)-0x300];
+    else if (wc >= 0x4e00 && wc < 0x9fa0)
+      summary = &ksc5601_uni2indx_page4e[(wc>>4)-0x4e0];
+    else if (wc >= 0xac00 && wc < 0xd7a0)
+      summary = &ksc5601_uni2indx_pageac[(wc>>4)-0xac0];
+    else if (wc >= 0xf900 && wc < 0xfa10)
+      summary = &ksc5601_uni2indx_pagef9[(wc>>4)-0xf90];
+    else if (wc >= 0xff00 && wc < 0xfff0)
+      summary = &ksc5601_uni2indx_pageff[(wc>>4)-0xff0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = ksc5601_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/mac_arabic.h b/libiconv/mac_arabic.h
new file mode 100644 (file)
index 0000000..b54c53c
--- /dev/null
@@ -0,0 +1,113 @@
+
+/*
+ * MacArabic
+ */
+
+static const unsigned short mac_arabic_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00a0, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x06ba, 0x00ab, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x2026, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00bb, 0x00f4, 0x00f6, 0x00f7, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x066a, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xb0 */
+  0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
+  0x0668, 0x0669, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f,
+  /* 0xc0 */
+  0x066d, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
+  0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
+  /* 0xd0 */
+  0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
+  0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xe0 */
+  0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
+  0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f,
+  /* 0xf0 */
+  0x0650, 0x0651, 0x0652, 0x067e, 0x0679, 0x0686, 0x06d5, 0x06a4,
+  0x06af, 0x0688, 0x0691, 0xfffd, 0xfffd, 0xfffd, 0x0698, 0x06d2,
+};
+
+static int
+mac_arabic_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_arabic_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_arabic_page00[96] = {
+  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x82, /* 0xc0-0xc7 */
+  0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x00, 0x8a, 0x00, 0x00, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x00, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x96, 0x00, 0x97, 0x99, 0x00, 0x9a, 0x9b, /* 0xf0-0xf7 */
+  0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char mac_arabic_page06[208] = {
+  0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */
+  0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
+  0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */
+  0xb8, 0xb9, 0xa5, 0x00, 0x00, 0xc0, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00, /* 0x80-0x87 */
+  0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0xff, 0x00, 0x00, 0xf6, 0x00, 0x00, /* 0xd0-0xd7 */
+};
+
+static int
+mac_arabic_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = mac_arabic_page00[wc-0x00a0];
+  else if (wc >= 0x0608 && wc < 0x06d8)
+    c = mac_arabic_page06[wc-0x0608];
+  else if (wc == 0x2026)
+    c = 0x93;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_centraleurope.h b/libiconv/mac_centraleurope.h
new file mode 100644 (file)
index 0000000..b26353f
--- /dev/null
@@ -0,0 +1,120 @@
+
+/*
+ * MacCentralEurope
+ */
+
+static const unsigned short mac_centraleurope_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x0100, 0x0101, 0x00c9, 0x0104, 0x00d6, 0x00dc, 0x00e1,
+  0x0105, 0x010c, 0x00e4, 0x010d, 0x0106, 0x0107, 0x00e9, 0x0179,
+  /* 0x90 */
+  0x017a, 0x010e, 0x00ed, 0x010f, 0x0112, 0x0113, 0x0116, 0x00f3,
+  0x0117, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x011a, 0x011b, 0x00fc,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x0118, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,
+  0x00ae, 0x00a9, 0x2122, 0x0119, 0x00a8, 0x2260, 0x0123, 0x012e,
+  /* 0xb0 */
+  0x012f, 0x012a, 0x2264, 0x2265, 0x012b, 0x0136, 0x2202, 0x2211,
+  0x0142, 0x013b, 0x013c, 0x013d, 0x013e, 0x0139, 0x013a, 0x0145,
+  /* 0xc0 */
+  0x0146, 0x0143, 0x00ac, 0x221a, 0x0144, 0x0147, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x0148, 0x0150, 0x00d5, 0x0151, 0x014c,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,
+  0x014d, 0x0154, 0x0155, 0x0158, 0x2039, 0x203a, 0x0159, 0x0156,
+  /* 0xe0 */
+  0x0157, 0x0160, 0x201a, 0x201e, 0x0161, 0x015a, 0x015b, 0x00c1,
+  0x0164, 0x0165, 0x00cd, 0x017d, 0x017e, 0x016a, 0x00d3, 0x00d4,
+  /* 0xf0 */
+  0x016b, 0x016e, 0x00da, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173,
+  0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7,
+};
+
+static int
+mac_centraleurope_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) mac_centraleurope_2uni[c-0x80];
+  return 1;
+}
+
+static const unsigned char mac_centraleurope_page00[224] = {
+  0xca, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0xac, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */
+  0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0xe7, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x83, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0xf2, 0x00, 0x86, 0xf8, 0x00, 0xa7, /* 0xd8-0xdf */
+  0x00, 0x87, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0x00, 0x8e, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0x00, 0x00, 0x9c, 0x00, 0x9f, 0xf9, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x81, 0x82, 0x00, 0x00, 0x84, 0x88, 0x8c, 0x8d, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x89, 0x8b, 0x91, 0x93, /* 0x08-0x0f */
+  0x00, 0x00, 0x94, 0x95, 0x00, 0x00, 0x96, 0x98, /* 0x10-0x17 */
+  0xa2, 0xab, 0x9d, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xfe, 0xae, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0xb1, 0xb4, 0x00, 0x00, 0xaf, 0xb0, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xfa, /* 0x30-0x37 */
+  0x00, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0xbc, 0x00, /* 0x38-0x3f */
+  0x00, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0xc0, 0xc5, /* 0x40-0x47 */
+  0xcb, 0x00, 0x00, 0x00, 0xcf, 0xd8, 0x00, 0x00, /* 0x48-0x4f */
+  0xcc, 0xce, 0x00, 0x00, 0xd9, 0xda, 0xdf, 0xe0, /* 0x50-0x57 */
+  0xdb, 0xde, 0xe5, 0xe6, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xe1, 0xe4, 0x00, 0x00, 0xe8, 0xe9, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0xed, 0xf0, 0x00, 0x00, 0xf1, 0xf3, /* 0x68-0x6f */
+  0xf4, 0xf5, 0xf6, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0xec, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char mac_centraleurope_page20[48] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */
+  0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+static const unsigned char mac_centraleurope_page22[32] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+};
+static const unsigned char mac_centraleurope_page22_1[8] = {
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_centraleurope_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0180)
+    c = mac_centraleurope_page00[wc-0x00a0];
+  else if (wc == 0x02c7)
+    c = 0xff;
+  else if (wc >= 0x2010 && wc < 0x2040)
+    c = mac_centraleurope_page20[wc-0x2010];
+  else if (wc == 0x2122)
+    c = 0xaa;
+  else if (wc >= 0x2200 && wc < 0x2220)
+    c = mac_centraleurope_page22[wc-0x2200];
+  else if (wc >= 0x2260 && wc < 0x2268)
+    c = mac_centraleurope_page22_1[wc-0x2260];
+  else if (wc == 0x25ca)
+    c = 0xd7;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_croatian.h b/libiconv/mac_croatian.h
new file mode 100644 (file)
index 0000000..104a199
--- /dev/null
@@ -0,0 +1,146 @@
+
+/*
+ * MacCroatian
+ */
+
+static const unsigned short mac_croatian_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,
+  0x00ae, 0x0160, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x017d, 0x00d8,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x2206, 0x00b5, 0x2202, 0x2211,
+  0x220f, 0x0161, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x017e, 0x00f8,
+  /* 0xc0 */
+  0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0106, 0x00ab,
+  0x010c, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,
+  /* 0xd0 */
+  0x0110, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,
+  0xfffd, 0x00a9, 0x2044, 0x00a4, 0x2039, 0x203a, 0x00c6, 0x00bb,
+  /* 0xe0 */
+  0x2013, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x0107, 0x00c1,
+  0x010d, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,
+  /* 0xf0 */
+  0x0111, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,
+  0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7,
+};
+
+static int
+mac_croatian_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_croatian_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_croatian_page00[248] = {
+  0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0xac, 0xd9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */
+  0xfc, 0x00, 0xbc, 0xdf, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */
+  0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xde, 0x82, /* 0xc0-0xc7 */
+  0xe9, 0x83, 0xfd, 0xfa, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */
+  0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */
+  0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xfe, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xe6, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char mac_croatian_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0xfb, 0x00, 0xf7, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char mac_croatian_page20[56] = {
+  0x00, 0x00, 0x00, 0xe0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */
+  0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+};
+static const unsigned char mac_croatian_page21[8] = {
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_croatian_page22[104] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb4, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */
+  0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_croatian_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0198)
+    c = mac_croatian_page00[wc-0x00a0];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = mac_croatian_page02[wc-0x02c0];
+  else if (wc == 0x03c0)
+    c = 0xf9;
+  else if (wc >= 0x2010 && wc < 0x2048)
+    c = mac_croatian_page20[wc-0x2010];
+  else if (wc >= 0x2120 && wc < 0x2128)
+    c = mac_croatian_page21[wc-0x2120];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_croatian_page22[wc-0x2200];
+  else if (wc == 0x25ca)
+    c = 0xd7;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_cyrillic.h b/libiconv/mac_cyrillic.h
new file mode 100644 (file)
index 0000000..4b82275
--- /dev/null
@@ -0,0 +1,117 @@
+
+/*
+ * MacCyrillic
+ */
+
+static const unsigned short mac_cyrillic_2uni[128] = {
+  /* 0x80 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
+  0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
+  /* 0x90 */
+  0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
+  0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406,
+  0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x2202, 0x0408,
+  0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a,
+  /* 0xc0 */
+  0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e,
+  0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f,
+  /* 0xe0 */
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
+  0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
+  /* 0xf0 */
+  0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+  0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4,
+};
+
+static int
+mac_cyrillic_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0x80)
+    *pwc = (wchar_t) mac_cyrillic_2uni[c-0x80];
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char mac_cyrillic_page00[32] = {
+  0xca, 0x00, 0xa2, 0xa3, 0xff, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0x00, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char mac_cyrillic_page04[96] = {
+  0x00, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, /* 0x00-0x07 */
+  0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x00, 0xd8, 0xda, /* 0x08-0x0f */
+  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */
+  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */
+  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */
+  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* 0x48-0x4f */
+  0x00, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, /* 0x50-0x57 */
+  0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0x00, 0xd9, 0xdb, /* 0x58-0x5f */
+};
+static const unsigned char mac_cyrillic_page20[24] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xd7, 0x00, /* 0x18-0x1f */
+  0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_cyrillic_page21[24] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_cyrillic_page22[104] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_cyrillic_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = mac_cyrillic_page00[wc-0x00a0];
+  else if (wc == 0x00f7)
+    c = 0xd6;
+  else if (wc == 0x0192)
+    c = 0xc4;
+  else if (wc >= 0x0400 && wc < 0x0460)
+    c = mac_cyrillic_page04[wc-0x0400];
+  else if (wc >= 0x2010 && wc < 0x2028)
+    c = mac_cyrillic_page20[wc-0x2010];
+  else if (wc >= 0x2110 && wc < 0x2128)
+    c = mac_cyrillic_page21[wc-0x2110];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_cyrillic_page22[wc-0x2200];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_greek.h b/libiconv/mac_greek.h
new file mode 100644 (file)
index 0000000..650c51b
--- /dev/null
@@ -0,0 +1,116 @@
+
+/*
+ * MacGreek
+ */
+
+static const unsigned short mac_greek_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385,
+  0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd,
+  0x2030, 0x00f4, 0x00f6, 0x00a6, 0x00ad, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df,
+  0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x0387,
+  /* 0xb0 */
+  0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396,
+  0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9,
+  /* 0xc0 */
+  0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153,
+  /* 0xd0 */
+  0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389,
+  0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f,
+  /* 0xe0 */
+  0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3,
+  0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf,
+  /* 0xf0 */
+  0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2,
+  0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0xfffd,
+};
+
+static int
+mac_greek_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_greek_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_greek_page00[96] = {
+  0xca, 0x00, 0x00, 0x92, 0x00, 0xb4, 0x9b, 0xac, /* 0xa0-0xa7 */
+  0x8c, 0xa9, 0x00, 0xc7, 0xc2, 0x9c, 0xa8, 0x00, /* 0xa8-0xaf */
+  0xae, 0xb1, 0x82, 0x84, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x81, 0x00, 0xc8, 0x00, 0x97, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */
+  0x88, 0x00, 0x89, 0x00, 0x8a, 0x00, 0x00, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x00, 0x00, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0x00, 0x9d, 0x00, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char mac_greek_page03[80] = {
+  0x00, 0x00, 0x00, 0x00, 0x8b, 0x87, 0xcd, 0xaf, /* 0x80-0x87 */
+  0xce, 0xd7, 0xd8, 0x00, 0xd9, 0x00, 0xda, 0xdf, /* 0x88-0x8f */
+  0xfd, 0xb0, 0xb5, 0xa1, 0xa2, 0xb6, 0xb7, 0xb8, /* 0x90-0x97 */
+  0xa3, 0xb9, 0xba, 0xa4, 0xbb, 0xc1, 0xa5, 0xc3, /* 0x98-0x9f */
+  0xa6, 0xc4, 0x00, 0xaa, 0xc6, 0xcb, 0xbc, 0xcc, /* 0xa0-0xa7 */
+  0xbe, 0xbf, 0xab, 0xbd, 0xc0, 0xdb, 0xdc, 0xdd, /* 0xa8-0xaf */
+  0xfe, 0xe1, 0xe2, 0xe7, 0xe4, 0xe5, 0xfa, 0xe8, /* 0xb0-0xb7 */
+  0xf5, 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xea, 0xef, /* 0xb8-0xbf */
+  0xf0, 0xf2, 0xf7, 0xf3, 0xf4, 0xf9, 0xe6, 0xf8, /* 0xc0-0xc7 */
+  0xe3, 0xf6, 0xfb, 0xfc, 0xde, 0xe0, 0xf1, 0x00, /* 0xc8-0xcf */
+};
+static const unsigned char mac_greek_page20[40] = {
+  0x00, 0x00, 0x00, 0xd0, 0x00, 0xd1, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0x00, 0x00, /* 0x18-0x1f */
+  0xa0, 0x00, 0x96, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+};
+static const unsigned char mac_greek_page22[32] = {
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_greek_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = mac_greek_page00[wc-0x00a0];
+  else if (wc == 0x0153)
+    c = 0xcf;
+  else if (wc >= 0x0380 && wc < 0x03d0)
+    c = mac_greek_page03[wc-0x0380];
+  else if (wc >= 0x2010 && wc < 0x2038)
+    c = mac_greek_page20[wc-0x2010];
+  else if (wc == 0x2122)
+    c = 0x93;
+  else if (wc >= 0x2248 && wc < 0x2268)
+    c = mac_greek_page22[wc-0x2248];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_hebrew.h b/libiconv/mac_hebrew.h
new file mode 100644 (file)
index 0000000..0b0c23e
--- /dev/null
@@ -0,0 +1,113 @@
+
+/*
+ * MacHebrew
+ */
+
+static const unsigned short mac_hebrew_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0xfb1f, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x20aa, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xb0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0xc0 */
+  0xfffd, 0x201e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x05bc, 0xfb4b,
+  0xfb35, 0x2026, 0x00a0, 0x05b8, 0x05b7, 0x05b5, 0x05b6, 0x05b4,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0xfb2a, 0xfb2b,
+  0x05bf, 0x05b0, 0x05b2, 0x05b1, 0x05bb, 0x05b9, 0xfffd, 0x05b3,
+  /* 0xe0 */
+  0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
+  0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
+  /* 0xf0 */
+  0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
+  0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+mac_hebrew_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else if (c >= 0x80) {
+    unsigned short wc = mac_hebrew_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_hebrew_page00[96] = {
+  0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x82, /* 0xc0-0xc7 */
+  0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x00, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0x00, /* 0xf0-0xf7 */
+  0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char mac_hebrew_page05[64] = {
+  0xd9, 0xdb, 0xda, 0xdf, 0xcf, 0xcd, 0xce, 0xcc, /* 0xb0-0xb7 */
+  0xcb, 0xdd, 0x00, 0xdc, 0xc6, 0x00, 0x00, 0xd8, /* 0xb8-0xbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */
+  0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+};
+static const unsigned char mac_hebrew_page20[24] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xc1, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_hebrew_pagefb[56] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0xd6, 0xd7, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+};
+
+static int
+mac_hebrew_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = mac_hebrew_page00[wc-0x00a0];
+  else if (wc >= 0x05b0 && wc < 0x05f0)
+    c = mac_hebrew_page05[wc-0x05b0];
+  else if (wc >= 0x2010 && wc < 0x2028)
+    c = mac_hebrew_page20[wc-0x2010];
+  else if (wc == 0x20aa)
+    c = 0xa6;
+  else if (wc >= 0xfb18 && wc < 0xfb50)
+    c = mac_hebrew_pagefb[wc-0xfb18];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_iceland.h b/libiconv/mac_iceland.h
new file mode 100644 (file)
index 0000000..bd14041
--- /dev/null
@@ -0,0 +1,143 @@
+
+/*
+ * MacIceland
+ */
+
+static const unsigned short mac_iceland_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,
+  0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,
+  0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8,
+  /* 0xc0 */
+  0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,
+  0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe,
+  /* 0xe0 */
+  0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,
+  0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,
+  /* 0xf0 */
+  0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,
+  0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7,
+};
+
+static int
+mac_iceland_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_iceland_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_iceland_page00[96] = {
+  0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */
+  0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */
+  0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */
+  0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */
+  0xdc, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */
+  0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0xa0, 0xde, 0xa7, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0xdd, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xe0, 0xdf, 0xd8, /* 0xf8-0xff */
+};
+static const unsigned char mac_iceland_page01[104] = {
+  0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char mac_iceland_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char mac_iceland_page20[56] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+};
+static const unsigned char mac_iceland_page21[8] = {
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_iceland_page22[104] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */
+  0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_iceland_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = mac_iceland_page00[wc-0x00a0];
+  else if (wc >= 0x0130 && wc < 0x0198)
+    c = mac_iceland_page01[wc-0x0130];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = mac_iceland_page02[wc-0x02c0];
+  else if (wc == 0x03c0)
+    c = 0xb9;
+  else if (wc >= 0x2010 && wc < 0x2048)
+    c = mac_iceland_page20[wc-0x2010];
+  else if (wc >= 0x2120 && wc < 0x2128)
+    c = mac_iceland_page21[wc-0x2120];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_iceland_page22[wc-0x2200];
+  else if (wc == 0x25ca)
+    c = 0xd7;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_roman.h b/libiconv/mac_roman.h
new file mode 100644 (file)
index 0000000..130c459
--- /dev/null
@@ -0,0 +1,148 @@
+
+/*
+ * MacRoman
+ */
+
+static const unsigned short mac_roman_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,
+  0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,
+  0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8,
+  /* 0xc0 */
+  0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,
+  0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0xfb01, 0xfb02,
+  /* 0xe0 */
+  0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,
+  0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,
+  /* 0xf0 */
+  0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,
+  0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7,
+};
+
+static int
+mac_roman_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_roman_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_roman_page00[96] = {
+  0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */
+  0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */
+  0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */
+  0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */
+  0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */
+  0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */
+};
+static const unsigned char mac_roman_page01[104] = {
+  0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char mac_roman_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char mac_roman_page20[56] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */
+  0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+};
+static const unsigned char mac_roman_page21[8] = {
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_roman_page22[104] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */
+  0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+static const unsigned char mac_roman_pagefb[8] = {
+  0x00, 0xde, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+};
+
+static int
+mac_roman_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = mac_roman_page00[wc-0x00a0];
+  else if (wc >= 0x0130 && wc < 0x0198)
+    c = mac_roman_page01[wc-0x0130];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = mac_roman_page02[wc-0x02c0];
+  else if (wc == 0x03c0)
+    c = 0xb9;
+  else if (wc >= 0x2010 && wc < 0x2048)
+    c = mac_roman_page20[wc-0x2010];
+  else if (wc >= 0x2120 && wc < 0x2128)
+    c = mac_roman_page21[wc-0x2120];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_roman_page22[wc-0x2200];
+  else if (wc == 0x25ca)
+    c = 0xd7;
+  else if (wc >= 0xfb00 && wc < 0xfb08)
+    c = mac_roman_pagefb[wc-0xfb00];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_romania.h b/libiconv/mac_romania.h
new file mode 100644 (file)
index 0000000..d0c64f1
--- /dev/null
@@ -0,0 +1,146 @@
+
+/*
+ * MacRomania
+ */
+
+static const unsigned short mac_romania_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,
+  0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x0102, 0x015e,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,
+  0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x0103, 0x015f,
+  /* 0xc0 */
+  0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,
+  0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0x0162, 0x0163,
+  /* 0xe0 */
+  0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,
+  0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,
+  /* 0xf0 */
+  0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,
+  0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7,
+};
+
+static int
+mac_romania_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_romania_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_romania_page00[248] = {
+  0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */
+  0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */
+  0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0x00, 0x82, /* 0xc0-0xc7 */
+  0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */
+  0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */
+  0x00, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x00, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xbf, /* 0x58-0x5f */
+  0x00, 0x00, 0xde, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char mac_romania_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char mac_romania_page20[56] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */
+  0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+};
+static const unsigned char mac_romania_page21[8] = {
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_romania_page22[104] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */
+  0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_romania_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0198)
+    c = mac_romania_page00[wc-0x00a0];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = mac_romania_page02[wc-0x02c0];
+  else if (wc == 0x03c0)
+    c = 0xb9;
+  else if (wc >= 0x2010 && wc < 0x2048)
+    c = mac_romania_page20[wc-0x2010];
+  else if (wc >= 0x2120 && wc < 0x2128)
+    c = mac_romania_page21[wc-0x2120];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_romania_page22[wc-0x2200];
+  else if (wc == 0x25ca)
+    c = 0xd7;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_thai.h b/libiconv/mac_thai.h
new file mode 100644 (file)
index 0000000..ab756e0
--- /dev/null
@@ -0,0 +1,109 @@
+
+/*
+ * MacThai
+ */
+
+static const unsigned short mac_thai_2uni[128] = {
+  /* 0x80 */
+  0x00ab, 0x00bb, 0x2026, 0xf88c, 0xf88f, 0xf892, 0xf895, 0xf898,
+  0xf88b, 0xf88e, 0xf891, 0xf894, 0xf897, 0x201c, 0x201d, 0xf899,
+  /* 0x90 */
+  0xfffd, 0x2022, 0xf884, 0xf889, 0xf885, 0xf886, 0xf887, 0xf888,
+  0xf88a, 0xf88d, 0xf890, 0xf893, 0xf896, 0x2018, 0x2019, 0xfffd,
+  /* 0xa0 */
+  0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
+  0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
+  /* 0xb0 */
+  0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
+  0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
+  /* 0xc0 */
+  0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
+  0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
+  /* 0xd0 */
+  0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
+  0x0e38, 0x0e39, 0x0e3a, 0xfeff, 0x200b, 0x2013, 0x2014, 0x0e3f,
+  /* 0xe0 */
+  0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
+  0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x2122, 0x0e4f,
+  /* 0xf0 */
+  0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
+  0x0e58, 0x0e59, 0x00ae, 0x00a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+mac_thai_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_thai_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_thai_page00[32] = {
+  0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0xfb, 0x00, 0x80, 0x00, 0x00, 0xfa, 0x00, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char mac_thai_page0e[96] = {
+  0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
+  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
+  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
+  0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0xef, /* 0x48-0x4f */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
+  0xf8, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+};
+static const unsigned char mac_thai_page20[32] = {
+  0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x9d, 0x9e, 0x00, 0x00, 0x8d, 0x8e, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x82, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_thai_pagef8[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x92, 0x94, 0x95, 0x96, /* 0x80-0x87 */
+  0x97, 0x93, 0x98, 0x88, 0x83, 0x99, 0x89, 0x84, /* 0x88-0x8f */
+  0x9a, 0x8a, 0x85, 0x9b, 0x8b, 0x86, 0x9c, 0x8c, /* 0x90-0x97 */
+  0x87, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+};
+
+static int
+mac_thai_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = mac_thai_page00[wc-0x00a0];
+  else if (wc >= 0x0e00 && wc < 0x0e60)
+    c = mac_thai_page0e[wc-0x0e00];
+  else if (wc >= 0x2008 && wc < 0x2028)
+    c = mac_thai_page20[wc-0x2008];
+  else if (wc == 0x2122)
+    c = 0xee;
+  else if (wc >= 0xf880 && wc < 0xf8a0)
+    c = mac_thai_pagef8[wc-0xf880];
+  else if (wc == 0xfeff)
+    c = 0xdb;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_turkish.h b/libiconv/mac_turkish.h
new file mode 100644 (file)
index 0000000..c73503b
--- /dev/null
@@ -0,0 +1,144 @@
+
+/*
+ * MacTurkish
+ */
+
+static const unsigned short mac_turkish_2uni[128] = {
+  /* 0x80 */
+  0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,
+  0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,
+  /* 0x90 */
+  0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,
+  0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,
+  0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,
+  0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8,
+  /* 0xc0 */
+  0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,
+  0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f,
+  /* 0xe0 */
+  0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,
+  0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,
+  /* 0xf0 */
+  0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0xfffd, 0x02c6, 0x02dc,
+  0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7,
+};
+
+static int
+mac_turkish_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mac_turkish_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mac_turkish_page00[96] = {
+  0xca, 0xc1, 0xa2, 0xa3, 0x00, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */
+  0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */
+  0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */
+  0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */
+  0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */
+  0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */
+  0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */
+  0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */
+  0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */
+  0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */
+};
+static const unsigned char mac_turkish_page01[128] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xdb, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xdf, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char mac_turkish_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char mac_turkish_page20[40] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */
+  0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+};
+static const unsigned char mac_turkish_page21[8] = {
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_turkish_page22[104] = {
+  0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */
+  0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_turkish_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = mac_turkish_page00[wc-0x00a0];
+  else if (wc >= 0x0118 && wc < 0x0198)
+    c = mac_turkish_page01[wc-0x0118];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = mac_turkish_page02[wc-0x02c0];
+  else if (wc == 0x03c0)
+    c = 0xb9;
+  else if (wc >= 0x2010 && wc < 0x2038)
+    c = mac_turkish_page20[wc-0x2010];
+  else if (wc >= 0x2120 && wc < 0x2128)
+    c = mac_turkish_page21[wc-0x2120];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_turkish_page22[wc-0x2200];
+  else if (wc == 0x25ca)
+    c = 0xd7;
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mac_ukraine.h b/libiconv/mac_ukraine.h
new file mode 100644 (file)
index 0000000..2fdf2df
--- /dev/null
@@ -0,0 +1,124 @@
+
+/*
+ * MacUkraine
+ */
+
+static const unsigned short mac_ukraine_2uni[128] = {
+  /* 0x80 */
+  0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
+  0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
+  /* 0x90 */
+  0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
+  0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
+  /* 0xa0 */
+  0x2020, 0x00b0, 0x0490, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406,
+  0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453,
+  /* 0xb0 */
+  0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408,
+  0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a,
+  /* 0xc0 */
+  0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,
+  0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455,
+  /* 0xd0 */
+  0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e,
+  0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f,
+  /* 0xe0 */
+  0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
+  0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
+  /* 0xf0 */
+  0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+  0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4,
+};
+
+static int
+mac_ukraine_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c >= 0x80)
+    *pwc = (wchar_t) mac_ukraine_2uni[c-0x80];
+  else
+    *pwc = (wchar_t) c;
+  return 1;
+}
+
+static const unsigned char mac_ukraine_page00[32] = {
+  0xca, 0x00, 0x00, 0xa3, 0xff, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */
+  0x00, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */
+  0xa1, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+};
+static const unsigned char mac_ukraine_page04[152] = {
+  0x00, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, /* 0x00-0x07 */
+  0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x00, 0xd8, 0xda, /* 0x08-0x0f */
+  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */
+  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */
+  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */
+  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* 0x48-0x4f */
+  0x00, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, /* 0x50-0x57 */
+  0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0x00, 0xd9, 0xdb, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0xa2, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char mac_ukraine_page20[24] = {
+  0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xd7, 0x00, /* 0x18-0x1f */
+  0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_ukraine_page21[24] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char mac_ukraine_page22[104] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */
+};
+
+static int
+mac_ukraine_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x00c0)
+    c = mac_ukraine_page00[wc-0x00a0];
+  else if (wc == 0x00f7)
+    c = 0xd6;
+  else if (wc == 0x0192)
+    c = 0xc4;
+  else if (wc >= 0x0400 && wc < 0x0498)
+    c = mac_ukraine_page04[wc-0x0400];
+  else if (wc >= 0x2010 && wc < 0x2028)
+    c = mac_ukraine_page20[wc-0x2010];
+  else if (wc >= 0x2110 && wc < 0x2128)
+    c = mac_ukraine_page21[wc-0x2110];
+  else if (wc >= 0x2200 && wc < 0x2268)
+    c = mac_ukraine_page22[wc-0x2200];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/mulelao.h b/libiconv/mulelao.h
new file mode 100644 (file)
index 0000000..03e138b
--- /dev/null
@@ -0,0 +1,77 @@
+
+/*
+ * MULELAO-1
+ */
+
+static const unsigned short mulelao_2uni[96] = {
+  /* 0xa0 */
+  0x00a0, 0x0e81, 0x0e82, 0xfffd, 0x0e84, 0xfffd, 0xfffd, 0x0e87,
+  0x0e88, 0xfffd, 0x0e8a, 0xfffd, 0xfffd, 0x0e8d, 0xfffd, 0xfffd,
+  /* 0xb0 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e94, 0x0e95, 0x0e96, 0x0e97,
+  0xfffd, 0x0e99, 0x0e9a, 0x0e9b, 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f,
+  /* 0xc0 */
+  0xfffd, 0x0ea1, 0x0ea2, 0x0ea3, 0xfffd, 0x0ea5, 0xfffd, 0x0ea7,
+  0xfffd, 0xfffd, 0x0eaa, 0x0eab, 0xfffd, 0x0ead, 0x0eae, 0x0eaf,
+  /* 0xd0 */
+  0x0eb0, 0x0eb1, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7,
+  0x0eb8, 0x0eb9, 0xfffd, 0x0ebb, 0x0ebc, 0x0ebd, 0xfffd, 0xfffd,
+  /* 0xe0 */
+  0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0xfffd, 0x0ec6, 0xfffd,
+  0x0ec8, 0x0ec9, 0x0eca, 0x0ecb, 0x0ecc, 0x0ecd, 0xfffd, 0xfffd,
+  /* 0xf0 */
+  0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7,
+  0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x0edc, 0x0edd, 0xfffd, 0xfffd,
+};
+
+static int
+mulelao_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0xa0) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = mulelao_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char mulelao_page0e[96] = {
+  0x00, 0xa1, 0xa2, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0x80-0x87 */
+  0xa8, 0x00, 0xaa, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x90-0x97 */
+  0x00, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x98-0x9f */
+  0x00, 0xc1, 0xc2, 0xc3, 0x00, 0xc5, 0x00, 0xc7, /* 0xa0-0xa7 */
+  0x00, 0x00, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xa8-0xaf */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xb0-0xb7 */
+  0xd8, 0xd9, 0x00, 0xdb, 0xdc, 0xdd, 0x00, 0x00, /* 0xb8-0xbf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x00, 0xe6, 0x00, /* 0xc0-0xc7 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0x00, /* 0xc8-0xcf */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */
+  0xf8, 0xf9, 0x00, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+
+static int
+mulelao_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x00a0) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc == 0x00a0)
+    c = 0xa0;
+  else if (wc >= 0x0e80 && wc < 0x0ee0)
+    c = mulelao_page0e[wc-0x0e80];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/nextstep.h b/libiconv/nextstep.h
new file mode 100644 (file)
index 0000000..8f06ae6
--- /dev/null
@@ -0,0 +1,122 @@
+
+/*
+ * NEXTSTEP
+ */
+
+static const unsigned short nextstep_2uni[128] = {
+  /* 0x80 */
+  0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7,
+  0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
+  /* 0x90 */
+  0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9,
+  0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7,
+  /* 0xa0 */
+  0x00a9, 0x00a1, 0x00a2, 0x00a3, 0x2044, 0x00a5, 0x0192, 0x00a7,
+  0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, 0x203a, 0xfb01, 0xfb02,
+  /* 0xb0 */
+  0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, 0x00b6, 0x2022,
+  0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, 0x00bf,
+  /* 0xc0 */
+  0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9,
+  0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7,
+  /* 0xd0 */
+  0x2014, 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2,
+  0x00e3, 0x00e4, 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb,
+  /* 0xe0 */
+  0x00ec, 0x00c6, 0x00ed, 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1,
+  0x0141, 0x00d8, 0x0152, 0x00ba, 0x00f2, 0x00f3, 0x00f4, 0x00f5,
+  /* 0xf0 */
+  0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, 0x0131, 0x00fc, 0x00fd,
+  0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, 0xfffd, 0xfffd,
+};
+
+static int
+nextstep_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else {
+    unsigned short wc = nextstep_2uni[c-0x80];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char nextstep_page00[96] = {
+  0x80, 0xa1, 0xa2, 0xa3, 0xa8, 0xa5, 0xb5, 0xa7, /* 0xa0-0xa7 */
+  0xc8, 0xa0, 0xe3, 0xab, 0xbe, 0x00, 0xb0, 0xc5, /* 0xa8-0xaf */
+  0x00, 0xd1, 0xc9, 0xcc, 0xc2, 0x9d, 0xb6, 0xb4, /* 0xb0-0xb7 */
+  0xcb, 0xc0, 0xeb, 0xbb, 0xd2, 0xd3, 0xd4, 0xbf, /* 0xb8-0xbf */
+  0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xe1, 0x87, /* 0xc0-0xc7 */
+  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0xc8-0xcf */
+  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x9e, /* 0xd0-0xd7 */
+  0xe9, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0xfb, /* 0xd8-0xdf */
+  0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xf1, 0xdb, /* 0xe0-0xe7 */
+  0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe2, 0xe4, 0xe5, /* 0xe8-0xef */
+  0xe6, 0xe7, 0xec, 0xed, 0xee, 0xef, 0xf0, 0x9f, /* 0xf0-0xf7 */
+  0xf9, 0xf2, 0xf3, 0xf4, 0xf6, 0xf7, 0xfc, 0xfd, /* 0xf8-0xff */
+};
+static const unsigned char nextstep_page01[104] = {
+  0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0xe8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0xea, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char nextstep_page02[32] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xcf, /* 0xc0-0xc7 */
+  0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+  0xc6, 0xc7, 0xca, 0xce, 0xc4, 0xcd, 0x00, 0x00, /* 0xd8-0xdf */
+};
+static const unsigned char nextstep_page20[56] = {
+  0x00, 0x00, 0x00, 0xb1, 0xd0, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0xa9, 0xb8, 0x00, 0xaa, 0xba, 0xb9, 0x00, /* 0x18-0x1f */
+  0xb2, 0xb3, 0xb7, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x20-0x27 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0xac, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+};
+static const unsigned char nextstep_pagefb[8] = {
+  0x00, 0xae, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+};
+
+static int
+nextstep_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x0100)
+    c = nextstep_page00[wc-0x00a0];
+  else if (wc >= 0x0130 && wc < 0x0198)
+    c = nextstep_page01[wc-0x0130];
+  else if (wc >= 0x02c0 && wc < 0x02e0)
+    c = nextstep_page02[wc-0x02c0];
+  else if (wc >= 0x2010 && wc < 0x2048)
+    c = nextstep_page20[wc-0x2010];
+  else if (wc >= 0xfb00 && wc < 0xfb08)
+    c = nextstep_pagefb[wc-0xfb00];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/sjis.h b/libiconv/sjis.h
new file mode 100644 (file)
index 0000000..ab8c615
--- /dev/null
@@ -0,0 +1,113 @@
+
+/*
+ * SHIFT-JIS
+ */
+
+/*
+   Conversion between SJIS codes (s1,s2) and JISX0208 codes (c1,c2):
+   Example. (s1,s2) = 0x8140, (c1,c2) = 0x2121.
+   0x81 <= s1 <= 0x9F || 0xE0 <= s1 <= 0xEA,
+   0x40 <= s2 <= 0x7E || 0x80 <= s2 <= 0xFC,
+   0x21 <= c1 <= 0x74, 0x21 <= c2 <= 0x7E.
+   Invariant:
+     94*2*(s1 < 0xE0 ? s1-0x81 : s1-0xC1) + (s2 < 0x80 ? s2-0x40 : s2-0x41)
+     = 94*(c1-0x21)+(c2-0x21)
+   Conversion (s1,s2) -> (c1,c2):
+     t1 := (s1 < 0xE0 ? s1-0x81 : s1-0xC1)
+     t2 := (s2 < 0x80 ? s2-0x40 : s2-0x41)
+     c1 := 2*t1 + (t2 < 0x5E ? 0 : 1) + 0x21
+     c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21
+   Conversion (c1,c2) -> (s1,s2):
+     t1 := (c1 - 0x21) >> 1
+     t2 := ((c1 - 0x21) & 1) * 0x5E + (c2 - 0x21)
+     s1 := (t1 < 0x1F ? t1+0x81 : t1+0xC1)
+     s2 := (t2 < 0x3F ? t2+0x40 : t2+0x41)
+ */
+
+static int
+sjis_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80 || (c >= 0xa1 && c <= 0xdf))
+    return jisx0201_mbtowc(conv,pwc,s,n);
+  else {
+    unsigned char s1, s2;
+    s1 = c;
+    if ((s1 >= 0x81 && s1 <= 0x9f) || (s1 >= 0xe0 && s1 <= 0xea)) {
+      if (n < 2)
+        return RET_TOOFEW(0);
+      s2 = s[1];
+      if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) {
+        unsigned char t1 = (s1 < 0xe0 ? s1-0x81 : s1-0xc1);
+        unsigned char t2 = (s2 < 0x80 ? s2-0x40 : s2-0x41);
+        unsigned char buf[2];
+        buf[0] = 2*t1 + (t2 < 0x5e ? 0 : 1) + 0x21;
+        buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21;
+        return jisx0208_mbtowc(conv,pwc,buf,2);
+      }
+    } else if (s1 >= 0xf0 && s1 <= 0xf9) {
+      /* User-defined range. See
+       * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+      if (n < 2)
+        return RET_TOOFEW(0);
+      s2 = s[1];
+      if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) {
+        *pwc = 0xe000 + 188*(s1 - 0xf0) + (s2 < 0x80 ? s2-0x40 : s2-0x41);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+}
+
+static int
+sjis_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Try JIS X 0201-1976. */
+  ret = jisx0201_wctomb(conv,buf,wc,1);
+  if (ret != RET_ILSEQ) {
+    unsigned char c;
+    if (ret != 1) abort();
+    c = buf[0];
+    if (c < 0x80 || (c >= 0xa1 && c <= 0xdf)) {
+      r[0] = c;
+      return 1;
+    }
+  }
+
+  /* Try JIS X 0208-1990. */
+  ret = jisx0208_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    unsigned char c1, c2;
+    if (ret != 2) abort();
+    if (n < 2)
+      return RET_TOOSMALL;
+    c1 = buf[0];
+    c2 = buf[1];
+    if ((c1 >= 0x21 && c1 <= 0x74) && (c2 >= 0x21 && c2 <= 0x7e)) {
+      unsigned char t1 = (c1 - 0x21) >> 1;
+      unsigned char t2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21);
+      r[0] = (t1 < 0x1f ? t1+0x81 : t1+0xc1);
+      r[1] = (t2 < 0x3f ? t2+0x40 : t2+0x41);
+      return 2;
+    }
+  }
+
+  /* User-defined range. See
+   * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
+  if (wc >= 0xe000 && wc < 0xe758) {
+    unsigned char c1, c2;
+    if (n < 2)
+      return RET_TOOSMALL;
+    c1 = (unsigned int) (wc - 0xe000) / 188;
+    c2 = (unsigned int) (wc - 0xe000) % 188;
+    r[0] = c1+0xf0;
+    r[1] = (c2 < 0x3f ? c2+0x40 : c2+0x41);
+    return 2;
+  }
+
+  return RET_ILSEQ;
+}
diff --git a/libiconv/tcvn.h b/libiconv/tcvn.h
new file mode 100644 (file)
index 0000000..32330bf
--- /dev/null
@@ -0,0 +1,133 @@
+
+/*
+ * TCVN-5712
+ */
+
+static const unsigned short tcvn_2uni_1[32] = {
+  /* 0x00 */
+  0x0000, 0x00da, 0x1ee4, 0x0003, 0x1eea, 0x1eec, 0x1eee, 0x0007,
+  0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
+  /* 0x10 */
+  0x0010, 0x1ee8, 0x1ef0, 0x1ef2, 0x1ef6, 0x1ef8, 0x00dd, 0x1ef4,
+  0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
+};
+static const unsigned short tcvn_2uni_2[128] = {
+  /* 0x80 */
+  0x00c0, 0x1ea2, 0x00c3, 0x00c1, 0x1ea0, 0x1eb6, 0x1eac, 0x00c8,
+  0x1eba, 0x1ebc, 0x00c9, 0x1eb8, 0x1ec6, 0x00cc, 0x1ec8, 0x0128,
+  /* 0x90 */
+  0x00cd, 0x1eca, 0x00d2, 0x1ece, 0x00d5, 0x00d3, 0x1ecc, 0x1ed8,
+  0x1edc, 0x1ede, 0x1ee0, 0x1eda, 0x1ee2, 0x00d9, 0x1ee6, 0x0168,
+  /* 0xa0 */
+  0x00a0, 0x0102, 0x00c2, 0x00ca, 0x00d4, 0x01a0, 0x01af, 0x0110,
+  0x0103, 0x00e2, 0x00ea, 0x00f4, 0x01a1, 0x01b0, 0x0111, 0x1eb0,
+  /* 0xb0 */
+  0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0x00e0, 0x1ea3, 0x00e3,
+  0x00e1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4,
+  /* 0xc0 */
+  0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7,
+  0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0x00e8, 0x1ec2, 0x1ebb, 0x1ebd,
+  /* 0xd0 */
+  0x00e9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0x00ec,
+  0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0x00ed, 0x1ecb, 0x00f2,
+  /* 0xe0 */
+  0x1ed4, 0x1ecf, 0x00f5, 0x00f3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7,
+  0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0x00f9,
+  /* 0xf0 */
+  0x1ed6, 0x1ee7, 0x0169, 0x00fa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef,
+  0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0x00fd, 0x1ef5, 0x1ed0,
+};
+
+static int
+tcvn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x20)
+    *pwc = (wchar_t) tcvn_2uni_1[c];
+  else if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) tcvn_2uni_2[c-0x80];
+  return 1;
+}
+
+static const unsigned char tcvn_page00[96+184] = {
+  0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+  0x80, 0x83, 0xa2, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0x87, 0x8a, 0xa3, 0x00, 0x8d, 0x90, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0x92, 0x95, 0xa4, 0x94, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0x9d, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, /* 0xd8-0xdf */
+  0xb5, 0xb8, 0xa9, 0xb7, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0xcc, 0xd0, 0xaa, 0x00, 0xd7, 0xdd, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0xdf, 0xe3, 0xab, 0xe2, 0x00, 0x00, /* 0xf0-0xf7 */
+  0x00, 0xef, 0xf3, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0xa1, 0xa8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xa7, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0x8f, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x9f, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0xa5, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, /* 0xa8-0xaf */
+  0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char tcvn_page03[40] = {
+  0xb0, 0xb3, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char tcvn_page1e[96] = {
+  0x84, 0xb9, 0x81, 0xb6, 0xc4, 0xca, 0xc1, 0xc7, /* 0xa0-0xa7 */
+  0xc2, 0xc8, 0xc3, 0xc9, 0x86, 0xcb, 0xc0, 0xbe, /* 0xa8-0xaf */
+  0xaf, 0xbb, 0xba, 0xbc, 0xbf, 0xbd, 0x85, 0xc6, /* 0xb0-0xb7 */
+  0x8b, 0xd1, 0x88, 0xce, 0x89, 0xcf, 0xda, 0xd5, /* 0xb8-0xbf */
+  0xc5, 0xd2, 0xcd, 0xd3, 0xd9, 0xd4, 0x8c, 0xd6, /* 0xc0-0xc7 */
+  0x8e, 0xd8, 0x91, 0xde, 0x96, 0xe4, 0x93, 0xe1, /* 0xc8-0xcf */
+  0xff, 0xe8, 0xdb, 0xe5, 0xe0, 0xe6, 0xf0, 0xe7, /* 0xd0-0xd7 */
+  0x97, 0xe9, 0x9b, 0xed, 0x98, 0xea, 0x99, 0xeb, /* 0xd8-0xdf */
+  0x9a, 0xec, 0x9c, 0xee, 0x02, 0xf4, 0x9e, 0xf1, /* 0xe0-0xe7 */
+  0x11, 0xf8, 0x04, 0xf5, 0x05, 0xf6, 0x06, 0xf7, /* 0xe8-0xef */
+  0x12, 0xf9, 0x13, 0xfa, 0x17, 0xfe, 0x14, 0xfb, /* 0xf0-0xf7 */
+  0x15, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+
+static int
+tcvn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076 & (1 << wc)) == 0)) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00a0 && wc < 0x01b8)
+    c = tcvn_page00[wc-0x00a0];
+  else if (wc >= 0x0300 && wc < 0x0328)
+    c = tcvn_page03[wc-0x0300];
+  else if (wc >= 0x1ea0 && wc < 0x1f00)
+    c = tcvn_page1e[wc-0x1ea0];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/tis620.h b/libiconv/tis620.h
new file mode 100644 (file)
index 0000000..830834b
--- /dev/null
@@ -0,0 +1,77 @@
+
+/*
+ * TIS620.2533-1
+ */
+
+static const unsigned short tis620_2uni[96] = {
+  /* 0xa0 */
+  0xfffd, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
+  0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
+  /* 0xb0 */
+  0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
+  0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
+  /* 0xc0 */
+  0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
+  0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
+  /* 0xd0 */
+  0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
+  0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f,
+  /* 0xe0 */
+  0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
+  0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,
+  /* 0xf0 */
+  0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
+  0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+tis620_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x80) {
+    *pwc = (wchar_t) c;
+    return 1;
+  }
+  else if (c < 0xa0) {
+  }
+  else {
+    unsigned short wc = tis620_2uni[c-0xa0];
+    if (wc != 0xfffd) {
+      *pwc = (wchar_t) wc;
+      return 1;
+    }
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned char tis620_page0e[96] = {
+  0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
+  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */
+  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
+  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
+  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
+  0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
+  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
+  0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+};
+
+static int
+tis620_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x0e00 && wc < 0x0e60)
+    c = tis620_page0e[wc-0x0e00];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/ucs2.h b/libiconv/ucs2.h
new file mode 100644 (file)
index 0000000..5332a8f
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * UCS-2
+ */
+
+/* Here we accept FFFE/FEFF marks as endianness indicators everywhere
+   in the stream, not just at the beginning. The default is big-endian. */
+/* The state is 0 if big-endian, 1 if little-endian. */
+static int
+ucs2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  int count = 0;
+  for (; n >= 2;) {
+    wchar_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]);
+    s += 2; n -= 2; count += 2;
+    if (wc == 0xfeff) {
+    } else if (wc == 0xfffe) {
+      state ^= 1;
+    } else {
+      *pwc = wc;
+      conv->istate = state;
+      return count;
+    }
+  }
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+/* But we output UCS-2 in big-endian order, without byte-order mark. */
+/* RFC 2152 says:
+   "ISO/IEC 10646-1:1993(E) specifies that when characters the UCS-2 form are
+    serialized as octets, that the most significant octet appear first." */
+static int
+ucs2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x10000 && wc != 0xfffe) {
+    if (n >= 2) {
+      r[0] = (unsigned char) (wc >> 8);
+      r[1] = (unsigned char) wc;
+      return 2;
+    } else
+      return RET_TOOSMALL;
+  } else
+    return RET_ILSEQ;
+}
diff --git a/libiconv/ucs2internal.h b/libiconv/ucs2internal.h
new file mode 100644 (file)
index 0000000..d89e79c
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * UCS-2-INTERNAL = UCS-2 with machine dependent endianness and alignment
+ */
+
+static int
+ucs2internal_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  if (n >= 2) {
+    *pwc = *(unsigned short *)s;
+    return 2;
+  }
+  return RET_TOOFEW(0);
+}
+
+static int
+ucs2internal_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x10000) {
+    if (n >= 2) {
+      *(unsigned short *)r = wc;
+      return 2;
+    } else
+      return RET_TOOSMALL;
+  } else
+    return RET_ILSEQ;
+}
diff --git a/libiconv/ucs2swapped.h b/libiconv/ucs2swapped.h
new file mode 100644 (file)
index 0000000..5aea47c
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * UCS-2-SWAPPED = UCS-2-INTERNAL with inverted endianness
+ */
+
+static int
+ucs2swapped_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  if (n >= 2) {
+    unsigned short x = *(unsigned short *)s;
+    x = (x >> 8) | (x << 8);
+    *pwc = x;
+    return 2;
+  }
+  return RET_TOOFEW(0);
+}
+
+static int
+ucs2swapped_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc < 0x10000) {
+    if (n >= 2) {
+      unsigned short x = wc;
+      x = (x >> 8) | (x << 8);
+      *(unsigned short *)r = x;
+      return 2;
+    } else
+      return RET_TOOSMALL;
+  } else
+    return RET_ILSEQ;
+}
+
+/*
+ * UCS-2-BE = UCS-2 big endian, with machine dependent alignment
+ * UCS-2-LE = UCS-2 little endian, with machine dependent alignment
+ */
+
+#ifdef WORDS_LITTLEENDIAN
+#define ucs2be_mbtowc ucs2swapped_mbtowc
+#define ucs2be_wctomb ucs2swapped_wctomb
+#define ucs2le_mbtowc ucs2internal_mbtowc
+#define ucs2le_wctomb ucs2internal_wctomb
+#else
+#define ucs2be_mbtowc ucs2internal_mbtowc
+#define ucs2be_wctomb ucs2internal_wctomb
+#define ucs2le_mbtowc ucs2swapped_mbtowc
+#define ucs2le_wctomb ucs2swapped_wctomb
+#endif
diff --git a/libiconv/ucs4.h b/libiconv/ucs4.h
new file mode 100644 (file)
index 0000000..f7121f7
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * UCS-4
+ */
+
+/* Here we accept 0000FFFE/0000FEFF marks as endianness indicators everywhere
+   in the stream, not just at the beginning. The default is big-endian. */
+/* The state is 0 if big-endian, 1 if little-endian. */
+static int
+ucs4_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  int count = 0;
+  for (; n >= 4;) {
+    wchar_t wc = (state
+                  ? s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24)
+                  : (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]);
+    s += 4; n -= 4; count += 4;
+    if (wc == 0xfeff) {
+    } else if (wc == 0xfffe) {
+      state ^= 1;
+    } else if (wc <= 0x7fffffff) {
+      *pwc = wc;
+      conv->istate = state;
+      return count;
+    } else
+      return RET_ILSEQ;
+  }
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+/* But we output UCS-4 in big-endian order, without byte-order mark. */
+static int
+ucs4_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc != 0xfffe) {
+    if (n >= 4) {
+      r[0] = (unsigned char) (wc >> 24);
+      r[1] = (unsigned char) (wc >> 16);
+      r[2] = (unsigned char) (wc >> 8);
+      r[3] = (unsigned char) wc;
+      return 4;
+    } else
+      return RET_TOOSMALL;
+  } else
+    return RET_ILSEQ;
+}
diff --git a/libiconv/ucs4internal.h b/libiconv/ucs4internal.h
new file mode 100644 (file)
index 0000000..3b536cd
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * UCS-4-INTERNAL = UCS-4 with machine dependent endianness and alignment
+ */
+
+static int
+ucs4internal_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  if (n >= 4) {
+    *pwc = *(unsigned int *)s;
+    return 4;
+  }
+  return RET_TOOFEW(0);
+}
+
+static int
+ucs4internal_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 4) {
+    *(unsigned int *)r = wc;
+    return 4;
+  } else
+    return RET_TOOSMALL;
+}
diff --git a/libiconv/ucs4swapped.h b/libiconv/ucs4swapped.h
new file mode 100644 (file)
index 0000000..9f408bd
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * UCS-4-SWAPPED = UCS-4-INTERNAL with inverted endianness
+ */
+
+static int
+ucs4swapped_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  if (n >= 4) {
+    unsigned int x = *(unsigned int *)s;
+    x = ((x & 0xffffffff) >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | ((x << 24) & 0xffffffff);
+    *pwc = x;
+    return 4;
+  }
+  return RET_TOOFEW(0);
+}
+
+static int
+ucs4swapped_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (n >= 4) {
+    unsigned int x = wc;
+    x = ((x & 0xffffffff) >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | ((x << 24) & 0xffffffff);
+    *(unsigned int *)r = x;
+    return 4;
+  } else
+    return RET_TOOSMALL;
+}
+
+/*
+ * UCS-4-BE = UCS-4 big endian, with machine dependent alignment
+ * UCS-4-LE = UCS-4 little endian, with machine dependent alignment
+ */
+
+#ifdef WORDS_LITTLEENDIAN
+#define ucs4be_mbtowc ucs4swapped_mbtowc
+#define ucs4be_wctomb ucs4swapped_wctomb
+#define ucs4le_mbtowc ucs4internal_mbtowc
+#define ucs4le_wctomb ucs4internal_wctomb
+#else
+#define ucs4be_mbtowc ucs4internal_mbtowc
+#define ucs4be_wctomb ucs4internal_wctomb
+#define ucs4le_mbtowc ucs4swapped_mbtowc
+#define ucs4le_wctomb ucs4swapped_wctomb
+#endif
diff --git a/libiconv/utf16.h b/libiconv/utf16.h
new file mode 100644 (file)
index 0000000..872c155
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * UTF-16
+ */
+
+/* Here we accept FFFE/FEFF marks as endianness indicators everywhere
+   in the stream, not just at the beginning. The default is big-endian. */
+/* The state is 0 if big-endian, 1 if little-endian. */
+static int
+utf16_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  int count = 0;
+  for (; n >= 2;) {
+    wchar_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]);
+    if (wc == 0xfeff) {
+    } else if (wc == 0xfffe) {
+      state ^= 1;
+    } else if (wc >= 0xd800 && wc < 0xdc00) {
+      if (n >= 4) {
+        wchar_t wc2 = (state ? s[2] + (s[3] << 8) : (s[2] << 8) + s[3]);
+        if (!(wc2 >= 0xdc00 && wc2 < 0xe000))
+          return RET_ILSEQ;
+        *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
+        conv->istate = state;
+        return count+4;
+      } else
+        break;
+    } else if (wc >= 0xdc00 && wc < 0xe000) {
+      return RET_ILSEQ;
+    } else {
+      *pwc = wc;
+      conv->istate = state;
+      return count+2;
+    }
+    s += 2; n -= 2; count += 2;
+  }
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+/* But we output UTF-16 in big-endian order, without byte-order mark. */
+static int
+utf16_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  if (wc != 0xfffe) {
+    if (wc < 0x10000) {
+      if (n >= 2) {
+        r[0] = (unsigned char) (wc >> 8);
+        r[1] = (unsigned char) wc;
+        return 2;
+      } else
+        return RET_TOOSMALL;
+    }
+    else if (wc < 0x110000) {
+      if (n >= 4) {
+        wchar_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+        wchar_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+        r[0] = (unsigned char) (wc1 >> 8);
+        r[1] = (unsigned char) wc1;
+        r[2] = (unsigned char) (wc2 >> 8);
+        r[3] = (unsigned char) wc2;
+        return 4;
+      } else
+        return RET_TOOSMALL;
+    }
+  }
+  return RET_ILSEQ;
+}
diff --git a/libiconv/utf7.h b/libiconv/utf7.h
new file mode 100644 (file)
index 0000000..09dc1f6
--- /dev/null
@@ -0,0 +1,331 @@
+/*
+ * UTF-7
+ */
+
+/* Specification: RFC 2152 (and old RFC 1641, RFC 1642) */
+/* The original Base64 encoding is defined in RFC 2045. */
+
+/* Set of direct characters:
+ *   A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr
+ */
+static const unsigned char direct_tab[128/8] = {
+  0x00, 0x24, 0x00, 0x00, 0x81, 0xf3, 0xff, 0x87,
+  0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07,
+};
+#define isdirect(ch) ((ch) < 128 && ((direct_tab[(ch)>>3] >> (ch & 7)) & 1))
+
+/* Set of direct and optional direct characters:
+ *   A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr
+ *   ! " # $ % & * ; < = > @ [ ] ^ _ ` { | }
+ */
+static const unsigned char xdirect_tab[128/8] = {
+  0x00, 0x24, 0x00, 0x00, 0xff, 0xf7, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x3f,
+};
+#define isxdirect(ch) ((ch) < 128 && ((xdirect_tab[(ch)>>3] >> (ch & 7)) & 1))
+
+/* Set of base64 characters, extended:
+ *   A-Z a-z 0-9 + / -
+ */
+static const unsigned char xbase64_tab[128/8] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xff, 0x03,
+  0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07,
+};
+#define isxbase64(ch) ((ch) < 128 && ((xbase64_tab[(ch)>>3] >> (ch & 7)) & 1))
+
+/*
+ * The state is structured as follows:
+ * bit 1..0: shift
+ * bit 7..2: data
+ * Precise meaning:
+ *   shift      data
+ *     0         0           not inside base64 encoding
+ *     1         0           inside base64, no pending bits
+ *     2      XXXX00         inside base64, 4 bits remain from 2nd byte
+ *     3      XX0000         inside base64, 2 bits remain from 3rd byte
+ */
+
+static int
+utf7_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  state_t state = conv->istate;
+  int count = 0; /* number of input bytes already read */
+  if (state & 3)
+    goto active;
+  else
+    goto inactive;
+
+inactive:
+  {
+    /* Here (state & 3) == 0 */
+    if (n < count+1)
+      goto none;
+    {
+      unsigned char c = *s;
+      if (isxdirect(c)) {
+        *pwc = (wchar_t) c;
+        conv->istate = state;
+        return count+1;
+      }
+      if (c == '+') {
+        if (n < count+2)
+          goto none;
+        if (s[1] == '-') {
+          *pwc = (wchar_t) '+';
+          conv->istate = state;
+          return count+2;
+        }
+        s++; count++;
+        state = 1;
+        goto active;
+      }
+      return RET_ILSEQ;
+    }
+  }
+
+active:
+  {
+    /* base64 encoding active */
+    unsigned int wc = 0;
+    state_t base64state = state;
+    unsigned int kmax = 2; /* number of payload bytes to read */
+    unsigned int k = 0; /* number of payload bytes already read */
+    unsigned int base64count = 0; /* number of base64 bytes already read */
+    for (;;) {
+      unsigned char c = *s;
+      unsigned int i;
+      if (c >= 'A' && c <= 'Z')
+        i = c-'A';
+      else if (c >= 'a' && c <= 'z')
+        i = c-'a'+26;
+      else if (c >= '0' && c <= '9')
+        i = c-'0'+52;
+      else if (c == '+')
+        i = 62;
+      else if (c == '/')
+        i = 63;
+      else {
+        /* c terminates base64 encoding */
+        if (base64state & -4)
+          return RET_ILSEQ; /* data must be 0, otherwise illegal */
+        if (base64count)
+          return RET_ILSEQ; /* partial UTF-16 characters are invalid */
+        if (c == '-') {
+          s++; count++;
+        }
+        state = 0;
+        goto inactive;
+      }
+      s++; base64count++;
+      /* read 6 bits: 0 <= i < 64 */
+      switch (base64state & 3) {
+        case 1: /* inside base64, no pending bits */
+          base64state = (i << 2) | 0; break;
+        case 0: /* inside base64, 6 bits remain from 1st byte */
+          wc = (wc << 8) | (base64state & -4) | (i >> 4); k++;
+          base64state = ((i & 15) << 4) | 2; break;
+        case 2: /* inside base64, 4 bits remain from 2nd byte */
+          wc = (wc << 8) | (base64state & -4) | (i >> 2); k++;
+          base64state = ((i & 3) << 6) | 3; break;
+        case 3: /* inside base64, 2 bits remain from 3rd byte */
+          wc = (wc << 8) | (base64state & -4) | i; k++;
+          base64state = 1; break;
+      }
+      if (k == kmax) {
+        /* UTF-16: When we see a High Surrogate, we must also decode
+           the following Low Surrogate. */
+        if (kmax == 2 && (wc >= 0xd800 && wc < 0xdc00))
+          kmax = 4;
+        else
+          break;
+      }
+      if (n < count+base64count+1)
+        goto none;
+    }
+    /* Here k = kmax > 0, hence base64count > 0. */
+    if ((base64state & 3) == 0) abort();
+    if (kmax == 4) {
+      wchar_t wc1 = wc >> 16;
+      wchar_t wc2 = wc & 0xffff;
+      if (!(wc1 >= 0xd800 && wc1 < 0xdc00)) abort();
+      if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ;
+      *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
+    } else {
+      *pwc = wc;
+    }
+    conv->istate = base64state;
+    return count+base64count;
+  }
+
+none:
+  conv->istate = state;
+  return RET_TOOFEW(count);
+}
+
+/*
+ * The state is structured as follows:
+ * bit 1..0: shift
+ * bit 7..2: data
+ * Precise meaning:
+ *   shift      data
+ *     0         0           not inside base64 encoding
+ *     1         0           inside base64, no pending bits
+ *     2       XX00          inside base64, 2 bits known for 2nd byte
+ *     3       XXXX          inside base64, 4 bits known for 3rd byte
+ */
+
+/* Define this to 1 if you want the so-called "optional direct" characters
+      ! " # $ % & * ; < = > @ [ ] ^ _ ` { | }
+   to be encoded. Define to 0 if you want them to be passed straight through,
+   like the so-called "direct" characters.
+   We set this to 1 because it's safer.
+ */
+#define UTF7_ENCODE_OPTIONAL_CHARS 1
+
+static int
+utf7_wctomb (conv_t conv, unsigned char *r, wchar_t iwc, int n)
+{
+  state_t state = conv->ostate;
+  unsigned int wc = iwc;
+  int count = 0;
+  if (state & 3)
+    goto active;
+
+/*inactive:*/
+  {
+    if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect(wc) : isxdirect(wc)) {
+      r[0] = (unsigned char) wc;
+      /*conv->ostate = state;*/
+      return 1;
+    } else {
+      *r++ = '+';
+      if (wc == '-') {
+        if (n < 2)
+          return RET_TOOSMALL;
+        *r = '-';
+        /*conv->ostate = state;*/
+        return 2;
+      }
+      count = 1;
+      state = 1;
+      goto active;
+    }
+  }
+
+active:
+  {
+    /* base64 encoding active */
+    if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect(wc) : isxdirect(wc)) {
+      /* deactivate base64 encoding */
+      count += ((state & 3) >= 2 ? 1 : 0) + (isxbase64(wc) ? 1 : 0) + 1;
+      if (n < count)
+        return RET_TOOSMALL;
+      if ((state & 3) >= 2) {
+        unsigned int i = state & -4;
+        unsigned char c;
+        if (i < 26)
+          c = i+'A';
+        else if (i < 52)
+          c = i-26+'a';
+        else if (i < 62)
+          c = i-52+'0';
+        else if (i == 62)
+          c = '+';
+        else if (i == 63)
+          c = '/';
+        else
+          abort();
+        *r++ = c;
+      }
+      if (isxbase64(wc))
+        *r++ = '-';
+      state = 0;
+      *r++ = (unsigned char) wc;
+      conv->ostate = state;
+      return count;
+    } else {
+      unsigned int k; /* number of payload bytes to write */
+      if (wc < 0x10000) {
+        k = 2;
+        count += ((state & 3) >= 2 ? 3 : 2);
+      } else if (wc < 0x110000) {
+        unsigned int wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+        unsigned int wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+        wc = (wc1 << 16) | wc2;
+        k = 4;
+        count += ((state & 3) >= 3 ? 6 : 5);
+      } else
+        return RET_ILSEQ;
+      if (n < count)
+        return RET_TOOSMALL;
+      for (;;) {
+        unsigned int i;
+        unsigned char c;
+        switch (state & 3) {
+          case 0: /* inside base64, 6 bits known for 4th byte */
+            c = (state & -4) >> 2; state = 1; break;
+          case 1: /* inside base64, no pending bits */
+            i = (wc >> (8 * --k)) & 0xff;
+            c = i >> 2; state = ((i & 3) << 4) | 2; break;
+          case 2: /* inside base64, 2 bits known for 2nd byte */
+            i = (wc >> (8 * --k)) & 0xff;
+            c = (state & -4) | (i >> 4); state = ((i & 15) << 2) | 3; break;
+          case 3: /* inside base64, 4 bits known for 3rd byte */
+            i = (wc >> (8 * --k)) & 0xff;
+            c = (state & -4) | (i >> 6); state = ((i & 63) << 2) | 0; break;
+          default: abort(); /* stupid gcc */
+        }
+        if (c < 26)
+          c = c+'A';
+        else if (c < 52)
+          c = c-26+'a';
+        else if (c < 62)
+          c = c-52+'0';
+        else if (c == 62)
+          c = '+';
+        else if (c == 63)
+          c = '/';
+        else
+          abort();
+        *r++ = c;
+        if ((state & 3) && (k == 0))
+          break;
+      }
+      conv->ostate = state;
+      return count;
+    }
+  }
+}
+
+static int
+utf7_reset (conv_t conv, unsigned char *r, int n)
+{
+  state_t state = conv->ostate;
+  if (state & 3) {
+    /* deactivate base64 encoding */
+    unsigned int count = ((state & 3) >= 2 ? 1 : 0) + 1;
+    if (n < count)
+      return RET_TOOSMALL;
+    if ((state & 3) >= 2) {
+      unsigned int i = state & -4;
+      unsigned char c;
+      if (i < 26)
+        c = i+'A';
+      else if (i < 52)
+        c = i-26+'a';
+      else if (i < 62)
+        c = i-52+'0';
+      else if (i == 62)
+        c = '+';
+      else if (i == 63)
+        c = '/';
+      else
+        abort();
+      *r++ = c;
+    }
+    *r++ = '-';
+    /* conv->ostate = 0; will be done by the caller */
+    return count;
+  } else
+    return 0;
+}
diff --git a/libiconv/utf8.h b/libiconv/utf8.h
new file mode 100644 (file)
index 0000000..57143bc
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ * UTF-8
+ */
+
+/* Specification: RFC 2279 */
+
+static int
+utf8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = s[0];
+
+  if (c < 0x80) {
+    *pwc = c;
+    return 1;
+  } else if (c < 0xc2) {
+    return RET_ILSEQ;
+  } else if (c < 0xe0) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    if (!((s[1] ^ 0x80) < 0x40))
+      return RET_ILSEQ;
+    *pwc = ((wchar_t) (c & 0x1f) << 6)
+           | (wchar_t) (s[1] ^ 0x80);
+    return 2;
+  } else if (c < 0xf0) {
+    if (n < 3)
+      return RET_TOOFEW(0);
+    if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+          && (c >= 0xe1 || s[1] >= 0xa0)))
+      return RET_ILSEQ;
+    *pwc = ((wchar_t) (c & 0x0f) << 12)
+           | ((wchar_t) (s[1] ^ 0x80) << 6)
+           | (wchar_t) (s[2] ^ 0x80);
+    return 3;
+  } else if (c < 0xf8 && sizeof(wchar_t)*8 >= 32) {
+    if (n < 4)
+      return RET_TOOFEW(0);
+    if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+          && (s[3] ^ 0x80) < 0x40
+          && (c >= 0xf1 || s[1] >= 0x90)))
+      return RET_ILSEQ;
+    *pwc = ((wchar_t) (c & 0x07) << 18)
+           | ((wchar_t) (s[1] ^ 0x80) << 12)
+           | ((wchar_t) (s[2] ^ 0x80) << 6)
+           | (wchar_t) (s[3] ^ 0x80);
+    return 4;
+  } else if (c < 0xfc && sizeof(wchar_t)*8 >= 32) {
+    if (n < 5)
+      return RET_TOOFEW(0);
+    if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+          && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+          && (c >= 0xf9 || s[1] >= 0x88)))
+      return RET_ILSEQ;
+    *pwc = ((wchar_t) (c & 0x03) << 24)
+           | ((wchar_t) (s[1] ^ 0x80) << 18)
+           | ((wchar_t) (s[2] ^ 0x80) << 12)
+           | ((wchar_t) (s[3] ^ 0x80) << 6)
+           | (wchar_t) (s[4] ^ 0x80);
+    return 5;
+  } else if (c < 0xfe && sizeof(wchar_t)*8 >= 32) {
+    if (n < 6)
+      return RET_TOOFEW(0);
+    if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+          && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+          && (s[5] ^ 0x80) < 0x40
+          && (c >= 0xfd || s[1] >= 0x84)))
+      return RET_ILSEQ;
+    *pwc = ((wchar_t) (c & 0x01) << 30)
+           | ((wchar_t) (s[1] ^ 0x80) << 24)
+           | ((wchar_t) (s[2] ^ 0x80) << 18)
+           | ((wchar_t) (s[3] ^ 0x80) << 12)
+           | ((wchar_t) (s[4] ^ 0x80) << 6)
+           | (wchar_t) (s[5] ^ 0x80);
+    return 6;
+  } else
+    return RET_ILSEQ;
+}
+
+static int
+utf8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n) /* n == 0 is acceptable */
+{
+  int count;
+  if (wc < 0x80)
+    count = 1;
+  else if (wc < 0x800)
+    count = 2;
+  else if (wc < 0x10000)
+    count = 3;
+  else if (wc < 0x200000)
+    count = 4;
+  else if (wc < 0x4000000)
+    count = 5;
+  else if (wc <= 0x7fffffff)
+    count = 6;
+  else
+    return RET_ILSEQ;
+  if (n < count)
+    return RET_TOOSMALL;
+  switch (count) { /* note: code falls through cases! */
+    case 6: r[5] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x4000000;
+    case 5: r[4] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x200000;
+    case 4: r[3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000;
+    case 3: r[2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800;
+    case 2: r[1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0;
+    case 1: r[0] = wc;
+  }
+  return count;
+}
diff --git a/libiconv/viscii.h b/libiconv/viscii.h
new file mode 100644 (file)
index 0000000..b43bc62
--- /dev/null
@@ -0,0 +1,122 @@
+
+/*
+ * VISCII1.1-1
+ */
+
+/* Specification: RFC 1456 */
+
+static const unsigned short viscii_2uni_1[32] = {
+  /* 0x00 */
+  0x0000, 0x0001, 0x1eb2, 0x0003, 0x0004, 0x1eb4, 0x1eaa, 0x0007,
+  0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
+  /* 0x10 */
+  0x0010, 0x0011, 0x0012, 0x0013, 0x1ef6, 0x0015, 0x0016, 0x0017,
+  0x0018, 0x1ef8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1ef4, 0x001f,
+};
+static const unsigned short viscii_2uni_2[128] = {
+  /* 0x80 */
+  0x1ea0, 0x1eae, 0x1eb0, 0x1eb6, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eac,
+  0x1ebc, 0x1eb8, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ed0,
+  /* 0x90 */
+  0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1ee2, 0x1eda, 0x1edc, 0x1ede,
+  0x1eca, 0x1ece, 0x1ecc, 0x1ec8, 0x1ee6, 0x0168, 0x1ee4, 0x1ef2,
+  /* 0xa0 */
+  0x00d5, 0x1eaf, 0x1eb1, 0x1eb7, 0x1ea5, 0x1ea7, 0x1ea9, 0x1ead,
+  0x1ebd, 0x1eb9, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ed1,
+  /* 0xb0 */
+  0x1ed3, 0x1ed5, 0x1ed7, 0x1ee0, 0x01a0, 0x1ed9, 0x1edd, 0x1edf,
+  0x1ecb, 0x1ef0, 0x1ee8, 0x1eea, 0x1eec, 0x01a1, 0x1edb, 0x01af,
+  /* 0xc0 */
+  0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x1ea2, 0x0102, 0x1eb3, 0x1eb5,
+  0x00c8, 0x00c9, 0x00ca, 0x1eba, 0x00cc, 0x00cd, 0x0128, 0x1ef3,
+  /* 0xd0 */
+  0x0110, 0x1ee9, 0x00d2, 0x00d3, 0x00d4, 0x1ea1, 0x1ef7, 0x1eeb,
+  0x1eed, 0x00d9, 0x00da, 0x1ef9, 0x1ef5, 0x00dd, 0x1ee1, 0x01b0,
+  /* 0xe0 */
+  0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x1ea3, 0x0103, 0x1eef, 0x1eab,
+  0x00e8, 0x00e9, 0x00ea, 0x1ebb, 0x00ec, 0x00ed, 0x0129, 0x1ec9,
+  /* 0xf0 */
+  0x0111, 0x1ef1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x1ecf, 0x1ecd,
+  0x1ee5, 0x00f9, 0x00fa, 0x0169, 0x1ee7, 0x00fd, 0x1ee3, 0x1eee,
+};
+
+static int
+viscii_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  if (c < 0x20)
+    *pwc = (wchar_t) viscii_2uni_1[c];
+  else if (c < 0x80)
+    *pwc = (wchar_t) c;
+  else
+    *pwc = (wchar_t) viscii_2uni_2[c-0x80];
+  return 1;
+}
+
+static const unsigned char viscii_page00[64+184] = {
+  0xc0, 0xc1, 0xc2, 0xc3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+  0xc8, 0xc9, 0xca, 0x00, 0xcc, 0xcd, 0x00, 0x00, /* 0xc8-0xcf */
+  0x00, 0x00, 0xd2, 0xd3, 0xd4, 0xa0, 0x00, 0x00, /* 0xd0-0xd7 */
+  0x00, 0xd9, 0xda, 0x00, 0x00, 0xdd, 0x00, 0x00, /* 0xd8-0xdf */
+  0xe0, 0xe1, 0xe2, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+  0xe8, 0xe9, 0xea, 0x00, 0xec, 0xed, 0x00, 0x00, /* 0xe8-0xef */
+  0x00, 0x00, 0xf2, 0xf3, 0xf4, 0xf5, 0x00, 0x00, /* 0xf0-0xf7 */
+  0x00, 0xf9, 0xfa, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
+  /* 0x0100 */
+  0x00, 0x00, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+  0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+  0xce, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+  0x9d, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+  0xb4, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xa8-0xaf */
+  0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char viscii_page1e[96] = {
+  0x80, 0xd5, 0xc4, 0xe4, 0x84, 0xa4, 0x85, 0xa5, /* 0xa0-0xa7 */
+  0x86, 0xa6, 0x06, 0xe7, 0x87, 0xa7, 0x81, 0xa1, /* 0xa8-0xaf */
+  0x82, 0xa2, 0x02, 0xc6, 0x05, 0xc7, 0x83, 0xa3, /* 0xb0-0xb7 */
+  0x89, 0xa9, 0xcb, 0xeb, 0x88, 0xa8, 0x8a, 0xaa, /* 0xb8-0xbf */
+  0x8b, 0xab, 0x8c, 0xac, 0x8d, 0xad, 0x8e, 0xae, /* 0xc0-0xc7 */
+  0x9b, 0xef, 0x98, 0xb8, 0x9a, 0xf7, 0x99, 0xf6, /* 0xc8-0xcf */
+  0x8f, 0xaf, 0x90, 0xb0, 0x91, 0xb1, 0x92, 0xb2, /* 0xd0-0xd7 */
+  0x93, 0xb5, 0x95, 0xbe, 0x96, 0xb6, 0x97, 0xb7, /* 0xd8-0xdf */
+  0xb3, 0xde, 0x94, 0xfe, 0x9e, 0xf8, 0x9c, 0xfc, /* 0xe0-0xe7 */
+  0xba, 0xd1, 0xbb, 0xd7, 0xbc, 0xd8, 0xff, 0xe6, /* 0xe8-0xef */
+  0xb9, 0xf1, 0x9f, 0xcf, 0x1e, 0xdc, 0x14, 0xd6, /* 0xf0-0xf7 */
+  0x19, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+
+static int
+viscii_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+  unsigned char c = 0;
+  if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064 & (1 << wc)) == 0)) {
+    *r = wc;
+    return 1;
+  }
+  else if (wc >= 0x00c0 && wc < 0x01b8)
+    c = viscii_page00[wc-0x00c0];
+  else if (wc >= 0x1ea0 && wc < 0x1f00)
+    c = viscii_page1e[wc-0x1ea0];
+  if (c != 0) {
+    *r = c;
+    return 1;
+  }
+  return RET_ILSEQ;
+}
index 5384c212da17e286204a602a60b7849b2e983f6c..1c69d2fb30911271751fc580d0c2721cf13aafd1 100644 (file)
@@ -4,7 +4,7 @@
 
        * gettext.m4: New file.  Have getcwd checked at configuration time.
        * nls.m4: Deleted.
-\f
+
 1998-10-20  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am (AUTOMAKE_OPTIONS): Add --gnits.
index 11350cdc2120f3a660d32ad82446cd5d20e16b9a..5b85f6beff0e48fc9229c9855d6ef30e8142b9dc 100644 (file)
@@ -1,3 +1,47 @@
+1999-12-29  François Pinard  <pinard@iro.umontreal.ca>
+
+       * mixed.c (struct mixed): Delete original_task.
+       (start_accumulation): New name for plumb_input_to_buffer.
+       (recode_accumulated): Merges previous plumb_buffer_to_output,
+       a call to recode_perform_task, and previous plumb_input_to_output.
+       Usages adjusted accordingly.
+
+1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
+
+       * iconv.c: New file, from Bruno Haible's libiconv 0.2.
+       * libiconv.c: Now unconditional.  Do not include <iconv.h>.
+       * outer.c, request.c: Presume WITH_LIBICONV, do not test it.
+       * Makefile.am: Adjusted.
+       (INCLUDES): Include $(top_srcdir)/libiconv.
+
+1999-12-24  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recodext.h: Introduce RECODE_SUBTASK.
+       * All: Adapt everywhere to use subtask instead of step/task pairs.
+
+       * task.c (recode_if_nogo): New function.
+       * recodext.h: Declare it.
+       (SET_TASK_ERROR, RETURN_IF_NOGO): Use it.
+\f
+1999-12-22  François Pinard  <pinard@iro.umontreal.ca>
+
+       * vn.c (viscii_viqr_data, viscii_vni_data): Final DONE was missing.
+       (viscii_vni_data): Latin-1 characters were sign extended.
+       Reported by Nguyên-Ðai Quý.
+
+1999-12-20  François Pinard  <pinard@iro.umontreal.ca>
+
+       * libiconv.c: New file.
+       * outer.c (internal_iconv, declare_libiconv) [WITH_LIBICONV]:
+       New functions.
+       (register_all_modules): Initialise libiconv_pivot.
+       [WITH_LIBICONV]: Call module_iniconv.
+       * recodext.h: Declare transform_with_libiconv.
+       (struct recode_outer): Declare declare_libiconv and libiconv_pivot.
+       * request.c: Recognise and handle a double libiconv step.
+       * Makefile.am (librecode_la_SOURCES): Add libiconv.c.
+       (noinst_HEADERS): Add libiconv.h.
+
 1999-12-18  François Pinard  <pinard@iro.umontreal.ca>
 
        * vn.c: New file.
        (EXTRA_DIST): Include $(MANS).  This should force regeneration of
        the man page with the correct version, in distributions.
        Reported by Brendan O'Dea, Santiago Vila Doncel and Scott Schwartz.
-\f
+
 1999-04-18  François Pinard  <pinard@iro.umontreal.ca>
 
        * request.c (scan_charset): Ignore implied surfaces when the only
index adfce693bd21cce6d47eb4f52c819b67ced9cec4..18795b0309da8bee4124412408fa215351ea7ee3 100644 (file)
@@ -24,7 +24,8 @@ man_MANS = recode.1
 include_HEADERS = recode.h recodext.h
 
 noinst_HEADERS = argmatch.h charname.h common.h decsteps.h \
-fr-charname.h hash.h inisteps.h rfc1345.h $(H_FALLBACKS) $(H_SURFACES)
+fr-charname.h hash.h inisteps.h libiconv.h rfc1345.h $(H_FALLBACKS) \
+$(H_SURFACES)
 EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.py $(MANS)
 
 C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \
@@ -43,16 +44,13 @@ L_SURFACES =
 
 recode_SOURCES = main.c freeze.c mixed.c
 recode_LDADD = librecode.la ../lib/libreco.a
-#d_recode = main.c
-#d_recode_LDADD = librecode.la ../lib/libreco.la @INTLLIBS@
-#d_recode_LDFLAGS = -static
 
 librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c \
-hash.c merged.c names.c outer.c recode.c request.c strip-pool.c task.c \
-$(C_STEPS)
+hash.c iconv.c libiconv.c merged.c names.c outer.c recode.c request.c \
+strip-pool.c task.c $(C_STEPS)
 librecode_la_LDFLAGS = -version-info 0:0:0
 
-INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib
+INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/libiconv
 
 ETAGS_ARGS = $(L_STEPS)
 TAGS_DEPENDENCIES = $(L_STEPS)
index 4a553eebdaa178fb1ae0ae72e00bef607ee15e5f..b8004a06288123d5b576a85f882b779ee194749d 100644 (file)
@@ -127,7 +127,7 @@ lib_LTLIBRARIES = librecode.la
 man_MANS = recode.1
 include_HEADERS = recode.h recodext.h
 
-noinst_HEADERS = argmatch.h charname.h common.h decsteps.h fr-charname.h hash.h inisteps.h rfc1345.h $(H_FALLBACKS) $(H_SURFACES)
+noinst_HEADERS = argmatch.h charname.h common.h decsteps.h fr-charname.h hash.h inisteps.h libiconv.h rfc1345.h $(H_FALLBACKS) $(H_SURFACES)
 
 EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.py $(MANS)
 
@@ -146,15 +146,12 @@ L_SURFACES =
 
 recode_SOURCES = main.c freeze.c mixed.c
 recode_LDADD = librecode.la ../lib/libreco.a
-#d_recode = main.c
-#d_recode_LDADD = librecode.la ../lib/libreco.la @INTLLIBS@
-#d_recode_LDFLAGS = -static
 
-librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c hash.c merged.c names.c outer.c recode.c request.c strip-pool.c task.c $(C_STEPS)
+librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c hash.c iconv.c libiconv.c merged.c names.c outer.c recode.c request.c strip-pool.c task.c $(C_STEPS)
 
 librecode_la_LDFLAGS = -version-info 0:0:0
 
-INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib
+INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/libiconv
 
 ETAGS_ARGS = $(L_STEPS)
 TAGS_DEPENDENCIES = $(L_STEPS)
@@ -179,13 +176,14 @@ LIBS = @LIBS@
 ANSI2KNR = @ANSI2KNR@
 librecode_la_LIBADD = 
 librecode_la_OBJECTS =  argmatch$U.lo charname$U.lo combine$U.lo \
-fr-charname$U.lo hash$U.lo merged$U.lo names$U.lo outer$U.lo \
-recode$U.lo request$U.lo strip-pool$U.lo task$U.lo african$U.lo \
-afrtran$U.lo applemac$U.lo atarist$U.lo bangbang$U.lo cdcnos$U.lo \
-debug$U.lo ebcdic$U.lo ibmpc$U.lo iconqnx$U.lo lat1asci$U.lo mule$U.lo \
-strip-data$U.lo ucs$U.lo utf16$U.lo utf7$U.lo utf8$U.lo varia$U.lo \
-vn$U.lo flat$U.lo html$U.lo lat1ltex$U.lo lat1texi$U.lo lat1txte$U.lo \
-rfc1345$U.lo base64$U.lo dump$U.lo endline$U.lo permut$U.lo quoted$U.lo
+fr-charname$U.lo hash$U.lo iconv$U.lo libiconv$U.lo merged$U.lo \
+names$U.lo outer$U.lo recode$U.lo request$U.lo strip-pool$U.lo \
+task$U.lo african$U.lo afrtran$U.lo applemac$U.lo atarist$U.lo \
+bangbang$U.lo cdcnos$U.lo debug$U.lo ebcdic$U.lo ibmpc$U.lo \
+iconqnx$U.lo lat1asci$U.lo mule$U.lo strip-data$U.lo ucs$U.lo \
+utf16$U.lo utf7$U.lo utf8$U.lo varia$U.lo vn$U.lo flat$U.lo html$U.lo \
+lat1ltex$U.lo lat1texi$U.lo lat1txte$U.lo rfc1345$U.lo base64$U.lo \
+dump$U.lo endline$U.lo permut$U.lo quoted$U.lo
 PROGRAMS =  $(bin_PROGRAMS)
 
 recode_OBJECTS =  main$U.o freeze$U.o mixed$U.o
@@ -381,6 +379,8 @@ ibmpc_.c: ibmpc.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ibmpc.c; then echo $(srcdir)/ibmpc.c; else echo ibmpc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > ibmpc_.c
 iconqnx_.c: iconqnx.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/iconqnx.c; then echo $(srcdir)/iconqnx.c; else echo iconqnx.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > iconqnx_.c
+iconv_.c: iconv.c $(ANSI2KNR)
+       $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/iconv.c; then echo $(srcdir)/iconv.c; else echo iconv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > iconv_.c
 lat1asci_.c: lat1asci.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lat1asci.c; then echo $(srcdir)/lat1asci.c; else echo lat1asci.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lat1asci_.c
 lat1ltex_.c: lat1ltex.c $(ANSI2KNR)
@@ -389,6 +389,8 @@ lat1texi_.c: lat1texi.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lat1texi.c; then echo $(srcdir)/lat1texi.c; else echo lat1texi.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lat1texi_.c
 lat1txte_.c: lat1txte.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lat1txte.c; then echo $(srcdir)/lat1txte.c; else echo lat1txte.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lat1txte_.c
+libiconv_.c: libiconv.c $(ANSI2KNR)
+       $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/libiconv.c; then echo $(srcdir)/libiconv.c; else echo libiconv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > libiconv_.c
 main_.c: main.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > main_.c
 merged_.c: merged.c $(ANSI2KNR)
@@ -435,15 +437,15 @@ bangbang_.lo base64_.o base64_.lo cdcnos_.o cdcnos_.lo charname_.o \
 charname_.lo combine_.o combine_.lo debug_.o debug_.lo dump_.o dump_.lo \
 ebcdic_.o ebcdic_.lo endline_.o endline_.lo flat_.o flat_.lo \
 fr-charname_.o fr-charname_.lo freeze_.o freeze_.lo hash_.o hash_.lo \
-html_.o html_.lo ibmpc_.o ibmpc_.lo iconqnx_.o iconqnx_.lo lat1asci_.o \
-lat1asci_.lo lat1ltex_.o lat1ltex_.lo lat1texi_.o lat1texi_.lo \
-lat1txte_.o lat1txte_.lo main_.o main_.lo merged_.o merged_.lo mixed_.o \
-mixed_.lo mule_.o mule_.lo names_.o names_.lo outer_.o outer_.lo \
-permut_.o permut_.lo quoted_.o quoted_.lo recode_.o recode_.lo \
-request_.o request_.lo rfc1345_.o rfc1345_.lo strip-data_.o \
-strip-data_.lo strip-pool_.o strip-pool_.lo task_.o task_.lo ucs_.o \
-ucs_.lo utf16_.o utf16_.lo utf7_.o utf7_.lo utf8_.o utf8_.lo varia_.o \
-varia_.lo vn_.o vn_.lo : $(ANSI2KNR)
+html_.o html_.lo ibmpc_.o ibmpc_.lo iconqnx_.o iconqnx_.lo iconv_.o \
+iconv_.lo lat1asci_.o lat1asci_.lo lat1ltex_.o lat1ltex_.lo lat1texi_.o \
+lat1texi_.lo lat1txte_.o lat1txte_.lo libiconv_.o libiconv_.lo main_.o \
+main_.lo merged_.o merged_.lo mixed_.o mixed_.lo mule_.o mule_.lo \
+names_.o names_.lo outer_.o outer_.lo permut_.o permut_.lo quoted_.o \
+quoted_.lo recode_.o recode_.lo request_.o request_.lo rfc1345_.o \
+rfc1345_.lo strip-data_.o strip-data_.lo strip-pool_.o strip-pool_.lo \
+task_.o task_.lo ucs_.o ucs_.lo utf16_.o utf16_.lo utf7_.o utf7_.lo \
+utf8_.o utf8_.lo varia_.o varia_.lo vn_.o vn_.lo : $(ANSI2KNR)
 
 install-man1:
        $(mkinstalldirs) $(DESTDIR)$(man1dir)
@@ -584,6 +586,52 @@ ibmpc.lo ibmpc.o : ibmpc.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
 iconqnx.lo iconqnx.o : iconqnx.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
+iconv.lo iconv.o : iconv.c common.h ../config.h ../lib/xalloc.h \
+       ../lib/error.h recodext.h recode.h libiconv.h \
+       ../libiconv/ascii.h ../libiconv/utf8.h ../libiconv/ucs2.h \
+       ../libiconv/ucs4.h ../libiconv/utf16.h ../libiconv/utf7.h \
+       ../libiconv/ucs2internal.h ../libiconv/ucs2swapped.h \
+       ../libiconv/ucs4internal.h ../libiconv/ucs4swapped.h \
+       ../libiconv/java.h ../libiconv/iso8859_1.h \
+       ../libiconv/iso8859_2.h ../libiconv/iso8859_3.h \
+       ../libiconv/iso8859_4.h ../libiconv/iso8859_5.h \
+       ../libiconv/iso8859_6.h ../libiconv/iso8859_7.h \
+       ../libiconv/iso8859_8.h ../libiconv/iso8859_9.h \
+       ../libiconv/iso8859_10.h ../libiconv/iso8859_13.h \
+       ../libiconv/iso8859_14.h ../libiconv/iso8859_15.h \
+       ../libiconv/koi8_r.h ../libiconv/koi8_u.h ../libiconv/koi8_ru.h \
+       ../libiconv/cp1250.h ../libiconv/cp1251.h ../libiconv/cp1252.h \
+       ../libiconv/cp1253.h ../libiconv/cp1254.h ../libiconv/cp1255.h \
+       ../libiconv/cp1256.h ../libiconv/cp1257.h ../libiconv/cp1258.h \
+       ../libiconv/cp850.h ../libiconv/cp866.h ../libiconv/mac_roman.h \
+       ../libiconv/mac_centraleurope.h ../libiconv/mac_iceland.h \
+       ../libiconv/mac_croatian.h ../libiconv/mac_romania.h \
+       ../libiconv/mac_cyrillic.h ../libiconv/mac_ukraine.h \
+       ../libiconv/mac_greek.h ../libiconv/mac_turkish.h \
+       ../libiconv/mac_hebrew.h ../libiconv/mac_arabic.h \
+       ../libiconv/mac_thai.h ../libiconv/hp_roman8.h \
+       ../libiconv/nextstep.h ../libiconv/armscii_8.h \
+       ../libiconv/georgian_academy.h ../libiconv/georgian_ps.h \
+       ../libiconv/mulelao.h ../libiconv/cp1133.h ../libiconv/tis620.h \
+       ../libiconv/cp874.h ../libiconv/viscii.h ../libiconv/tcvn.h \
+       ../libiconv/jisx0201.h ../libiconv/jisx0208.h \
+       ../libiconv/jisx0212.h ../libiconv/gb2312.h ../libiconv/gbk.h \
+       ../libiconv/gbkext1.h ../libiconv/gbkext2.h \
+       ../libiconv/gbkext_inv.h ../libiconv/cp936ext.h \
+       ../libiconv/cns11643.h ../libiconv/cns11643_1.h \
+       ../libiconv/cns11643_2.h ../libiconv/cns11643_3.h \
+       ../libiconv/cns11643_inv.h ../libiconv/big5.h \
+       ../libiconv/ksc5601.h ../libiconv/johab_hangul.h \
+       ../libiconv/johab_decomp.h ../libiconv/euc_jp.h \
+       ../libiconv/sjis.h ../libiconv/cp932.h ../libiconv/cp932ext.h \
+       ../libiconv/iso2022_jp.h ../libiconv/iso2022_jp1.h \
+       ../libiconv/iso2022_jp2.h ../libiconv/euc_cn.h \
+       ../libiconv/ces_gbk.h ../libiconv/iso2022_cn.h \
+       ../libiconv/iso2022_cnext.h ../libiconv/hz.h \
+       ../libiconv/euc_tw.h ../libiconv/ces_big5.h ../libiconv/cp950.h \
+       ../libiconv/cp950ext.h ../libiconv/euc_kr.h ../libiconv/johab.h \
+       ../libiconv/iso2022_kr.h ../libiconv/encodings.def \
+       ../libiconv/aliases.h
 lat1asci.lo lat1asci.o : lat1asci.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
 lat1ltex.lo lat1ltex.o : lat1ltex.c common.h ../config.h ../lib/xalloc.h \
@@ -592,6 +640,8 @@ lat1texi.lo lat1texi.o : lat1texi.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
 lat1txte.lo lat1txte.o : lat1txte.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
+libiconv.lo libiconv.o : libiconv.c common.h ../config.h ../lib/xalloc.h \
+       ../lib/error.h recodext.h recode.h libiconv.h
 main.o: main.c common.h ../config.h ../lib/xalloc.h ../lib/error.h \
        recodext.h recode.h ../lib/getopt.h
 merged.lo merged.o : merged.c common.h ../config.h ../lib/xalloc.h \
@@ -630,10 +680,6 @@ utf8.lo utf8.o : utf8.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
 varia.lo varia.o : varia.c common.h ../config.h ../lib/xalloc.h \
        ../lib/error.h recodext.h recode.h
-viet.lo viet.o : viet.c common.h ../config.h ../lib/xalloc.h \
-       ../lib/error.h recodext.h recode.h
-vietnam.lo vietnam.o : vietnam.c common.h ../config.h ../lib/xalloc.h \
-       ../lib/error.h recodext.h recode.h
 vn.lo vn.o : vn.c common.h ../config.h ../lib/xalloc.h ../lib/error.h \
        recodext.h recode.h
 
index 980212100eb3f213773e8ca8cbd14c8559e3f821..58d559e66fab6543a4ea57d2371df0a9591805c2 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
index bc8f6707ecdada592f44f290452fc0c7c38750c9..1779144f1b25dbbf723669927a3a45898aab9811 100644 (file)
 
 %%
 
-\<\b\"|\"\b\<                  { put_byte (171, task); }
-\>\b\"|\"\b\>                  { put_byte (187, task); }
-A\b`|`\bA                      { put_byte (192, task); }
-A\b'|'\bA                      { put_byte (193, task); }
-A\b^|^\bA                      { put_byte (194, task); }
-A\b~|~\bA                      { put_byte (195, task); }
-A\b\"|\"\bA                    { put_byte (196, task); }
-C\b,|,\bC                      { put_byte (199, task); }
-E\b`|`\bE                      { put_byte (200, task); }
-E\b'|'\bE                      { put_byte (201, task); }
-E\b^|^\bE                      { put_byte (202, task); }
-E\b\"|\"\bE                    { put_byte (203, task); }
-I\b`|`\bI                      { put_byte (204, task); }
-I\b'|'\bI                      { put_byte (205, task); }
-I\b^|^\bI                      { put_byte (206, task); }
-I\b\"|\"\bI                    { put_byte (207, task); }
-N\b~|~\bN                      { put_byte (209, task); }
-O\b`|`\bO                      { put_byte (210, task); }
-O\b'|'\bO                      { put_byte (211, task); }
-O\b^|^\bO                      { put_byte (212, task); }
-O\b~|~\bO                      { put_byte (213, task); }
-O\b\"|\"\bO                    { put_byte (214, task); }
-O\b\/|\/\bO                    { put_byte (216, task); }
-U\b`|`\bU                      { put_byte (217, task); }
-U\b'|'\bU                      { put_byte (218, task); }
-U\b^|^\bU                      { put_byte (219, task); }
-U\b\"|\"\bU                    { put_byte (220, task); }
-Y\b'|'\bY                      { put_byte (221, task); }
-s\b\"|\"\bs                    { put_byte (223, task); }
-a\b`|`\ba                      { put_byte (224, task); }
-a\b'|'\ba                      { put_byte (225, task); }
-a\b^|^\ba                      { put_byte (226, task); }
-a\b~|~\ba                      { put_byte (227, task); }
-a\b\"|\"\ba                    { put_byte (228, task); }
-c\b,|,\bc                      { put_byte (231, task); }
-e\b`|`\be                      { put_byte (232, task); }
-e\b'|'\be                      { put_byte (233, task); }
-e\b^|^\be                      { put_byte (234, task); }
-e\b\"|\"\be                    { put_byte (235, task); }
-i\b`|`\bi                      { put_byte (236, task); }
-i\b'|'\bi                      { put_byte (237, task); }
-i\b^|^\bi                      { put_byte (238, task); }
-i\b\"|\"\bi                    { put_byte (239, task); }
-n\b~|~\bn                      { put_byte (241, task); }
-o\b`|`\bo                      { put_byte (242, task); }
-o\b'|'\bo                      { put_byte (243, task); }
-o\b^|^\bo                      { put_byte (244, task); }
-o\b~|~\bo                      { put_byte (245, task); }
-o\b\"|\"\bo                    { put_byte (246, task); }
-o\b\/|\/\bo                    { put_byte (248, task); }
-u\b`|`\bu                      { put_byte (249, task); }
-u\b'|'\bu                      { put_byte (250, task); }
-u\b^|^\bu                      { put_byte (251, task); }
-u\b\"|\"\bu                    { put_byte (252, task); }
-y\b'|'\by                      { put_byte (253, task); }
-y\b\"|\"\by                    { put_byte (255, task); }
+\<\b\"|\"\b\<                  { put_byte (171, subtask); }
+\>\b\"|\"\b\>                  { put_byte (187, subtask); }
+A\b`|`\bA                      { put_byte (192, subtask); }
+A\b'|'\bA                      { put_byte (193, subtask); }
+A\b^|^\bA                      { put_byte (194, subtask); }
+A\b~|~\bA                      { put_byte (195, subtask); }
+A\b\"|\"\bA                    { put_byte (196, subtask); }
+C\b,|,\bC                      { put_byte (199, subtask); }
+E\b`|`\bE                      { put_byte (200, subtask); }
+E\b'|'\bE                      { put_byte (201, subtask); }
+E\b^|^\bE                      { put_byte (202, subtask); }
+E\b\"|\"\bE                    { put_byte (203, subtask); }
+I\b`|`\bI                      { put_byte (204, subtask); }
+I\b'|'\bI                      { put_byte (205, subtask); }
+I\b^|^\bI                      { put_byte (206, subtask); }
+I\b\"|\"\bI                    { put_byte (207, subtask); }
+N\b~|~\bN                      { put_byte (209, subtask); }
+O\b`|`\bO                      { put_byte (210, subtask); }
+O\b'|'\bO                      { put_byte (211, subtask); }
+O\b^|^\bO                      { put_byte (212, subtask); }
+O\b~|~\bO                      { put_byte (213, subtask); }
+O\b\"|\"\bO                    { put_byte (214, subtask); }
+O\b\/|\/\bO                    { put_byte (216, subtask); }
+U\b`|`\bU                      { put_byte (217, subtask); }
+U\b'|'\bU                      { put_byte (218, subtask); }
+U\b^|^\bU                      { put_byte (219, subtask); }
+U\b\"|\"\bU                    { put_byte (220, subtask); }
+Y\b'|'\bY                      { put_byte (221, subtask); }
+s\b\"|\"\bs                    { put_byte (223, subtask); }
+a\b`|`\ba                      { put_byte (224, subtask); }
+a\b'|'\ba                      { put_byte (225, subtask); }
+a\b^|^\ba                      { put_byte (226, subtask); }
+a\b~|~\ba                      { put_byte (227, subtask); }
+a\b\"|\"\ba                    { put_byte (228, subtask); }
+c\b,|,\bc                      { put_byte (231, subtask); }
+e\b`|`\be                      { put_byte (232, subtask); }
+e\b'|'\be                      { put_byte (233, subtask); }
+e\b^|^\be                      { put_byte (234, subtask); }
+e\b\"|\"\be                    { put_byte (235, subtask); }
+i\b`|`\bi                      { put_byte (236, subtask); }
+i\b'|'\bi                      { put_byte (237, subtask); }
+i\b^|^\bi                      { put_byte (238, subtask); }
+i\b\"|\"\bi                    { put_byte (239, subtask); }
+n\b~|~\bn                      { put_byte (241, subtask); }
+o\b`|`\bo                      { put_byte (242, subtask); }
+o\b'|'\bo                      { put_byte (243, subtask); }
+o\b^|^\bo                      { put_byte (244, subtask); }
+o\b~|~\bo                      { put_byte (245, subtask); }
+o\b\"|\"\bo                    { put_byte (246, subtask); }
+o\b\/|\/\bo                    { put_byte (248, subtask); }
+u\b`|`\bu                      { put_byte (249, subtask); }
+u\b'|'\bu                      { put_byte (250, subtask); }
+u\b^|^\bu                      { put_byte (251, subtask); }
+u\b\"|\"\bu                    { put_byte (252, subtask); }
+y\b'|'\by                      { put_byte (253, subtask); }
+y\b\"|\"\by                    { put_byte (255, subtask); }
 
 %%
 
index 000010629e81fce2b496d65845480f480229a30c..86f27b31d8cd46b7b4412ec98ead25f80d658956 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1993, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
index a709dbadab8c97b0dd3d4c2e95e9091773d0b458..d9b0afdcb1ec0187c94b3c6fb65b4722c52e35d1 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -298,18 +297,17 @@ init_latin1_bangbang (RECODE_STEP step,
 }
 
 static bool
-transform_bangbang_latin1 (RECODE_CONST_STEP step,
-                          RECODE_TASK task)
+transform_bangbang_latin1 (RECODE_SUBTASK subtask)
 {
   int input_char;              /* current character */
 
-  while (input_char = get_byte (task), input_char != EOF)
+  while (input_char = get_byte (subtask), input_char != EOF)
     {
       if (input_char >= 'A' && input_char <= 'Z')
         input_char += 'a' - 'A';
       else if (input_char == '!')
        {
-         input_char = get_byte (task);
+         input_char = get_byte (subtask);
          if (input_char >= 'a' && input_char <= 'z')
            input_char += 'A' - 'a';
          else if (input_char < 'A' || input_char > 'Z')
@@ -340,9 +338,9 @@ transform_bangbang_latin1 (RECODE_CONST_STEP step,
              case '_': input_char = 127; break; /* del */
 
              case '!':
-               input_char = get_byte (task);
+               input_char = get_byte (subtask);
                if (input_char == 'J' || input_char == 'j')
-                 RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+                 RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
 
                /* FIXME: What is canonical?  Upper case or lower case?  */
                if (input_char >= 'A' && input_char <= 'Z')
@@ -360,24 +358,24 @@ transform_bangbang_latin1 (RECODE_CONST_STEP step,
                    case '_': input_char = 31; break;
 
                    default:
-                     RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-                     put_byte ('!', task);
-                     put_byte ('!', task);
+                     RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+                     put_byte ('!', subtask);
+                     put_byte ('!', subtask);
                      if (input_char == EOF)
-                       TASK_RETURN (task);
+                       SUBTASK_RETURN (subtask);
                    }
                break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte ('!', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte ('!', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
        }
-      put_byte (input_char, task);
+      put_byte (input_char, subtask);
     }
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index b95e14274529e6248cc3ddf392b34f6a9f21b2e7..dbe02b93c028f308ab403b14acee7cc11a3b0b7b 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -73,7 +72,7 @@ short base64_char_to_value[128] =
    Base64 characters.  */
 
 static bool
-transform_data_base64 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_data_base64 (RECODE_SUBTASK subtask)
 {
   int counter;
   int character;
@@ -82,7 +81,7 @@ transform_data_base64 (RECODE_CONST_STEP step, RECODE_TASK task)
   counter = 0;
   while (true)
     {
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        break;
 
@@ -92,53 +91,53 @@ transform_data_base64 (RECODE_CONST_STEP step, RECODE_TASK task)
        counter++;
       else
        {
-         put_byte ('\n', task);
+         put_byte ('\n', subtask);
          counter = 1;
        }
 
       /* Process first byte of a triplet.  */
 
-      put_byte (base64_value_to_char[MASK (6) & character >> 2], task);
+      put_byte (base64_value_to_char[MASK (6) & character >> 2], subtask);
       value = (MASK (2) & character) << 4;
 
       /* Process second byte of a triplet.  */
 
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        {
-         put_byte (base64_value_to_char[value], task);
-         put_byte ('=', task);
-         put_byte ('=', task);
+         put_byte (base64_value_to_char[value], subtask);
+         put_byte ('=', subtask);
+         put_byte ('=', subtask);
          break;
        }
       put_byte (base64_value_to_char[value | (MASK (4) & character >> 4)],
-               task);
+               subtask);
       value = (MASK (4) & character) << 2;
 
       /* Process third byte of a triplet.  */
 
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        {
-         put_byte (base64_value_to_char[value], task);
-         put_byte ('=', task);
+         put_byte (base64_value_to_char[value], subtask);
+         put_byte ('=', subtask);
          break;
        }
       put_byte (base64_value_to_char[value | (MASK (2) & character >> 6)],
-               task);
-      put_byte (base64_value_to_char[MASK (6) & character], task);
+               subtask);
+      put_byte (base64_value_to_char[MASK (6) & character], subtask);
     }
 
   /* Complete last partial line.  */
 
   if (counter > 0)
-    put_byte ('\n', task);
+    put_byte ('\n', subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_base64_data (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_base64_data (RECODE_SUBTASK subtask)
 {
   int counter = 0;
   int character;
@@ -148,18 +147,18 @@ transform_base64_data (RECODE_CONST_STEP step, RECODE_TASK task)
     {
       /* Accept wrapping lines, reversibly if at each 76 characters.  */
 
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        {
          if (counter != 0)
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-         TASK_RETURN (task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+         SUBTASK_RETURN (subtask);
        }
 
       if (character == '\n')
        {
          if (counter != MIME_LINE_LENGTH / 4)
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
          counter = 0;
          continue;
        }
@@ -172,57 +171,57 @@ transform_base64_data (RECODE_CONST_STEP step, RECODE_TASK task)
        value = base64_char_to_value[character] << 18;
       else
        {
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
          value = 0;
        }
 
       /* Process second byte of a quadruplet.  */
 
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        {
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-         TASK_RETURN (task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+         SUBTASK_RETURN (subtask);
        }
 
       if (IS_BASE64 (character))
        value |= base64_char_to_value[character] << 12;
       else
-       RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+       RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
 
-      put_byte (value >> 16, task);
+      put_byte (value >> 16, subtask);
 
       /* Process third byte of a quadruplet.  */
 
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        {
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-         TASK_RETURN (task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+         SUBTASK_RETURN (subtask);
        }
 
       if (character == '=')
        {
-         character = get_byte (task);
+         character = get_byte (subtask);
          if (character != '=')
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
          continue;
        }
 
       if (IS_BASE64 (character))
        value |= base64_char_to_value[character] << 6;
       else
-       RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+       RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
 
-      put_byte (MASK (8) & value >> 8, task);
+      put_byte (MASK (8) & value >> 8, subtask);
 
       /* Process fourth byte of a quadruplet.  */
 
-      character = get_byte (task);
+      character = get_byte (subtask);
       if (character == EOF)
        {
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-         TASK_RETURN (task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+         SUBTASK_RETURN (subtask);
        }
 
       if (character == '=')
@@ -231,9 +230,9 @@ transform_base64_data (RECODE_CONST_STEP step, RECODE_TASK task)
       if (IS_BASE64 (character))
        value |= base64_char_to_value[character];
       else
-       RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+       RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
 
-      put_byte (MASK (8) & value, task);
+      put_byte (MASK (8) & value, subtask);
     }
 }
 
index 853d15eba2712900d6d97028e3d53da537899a0e..3229d73355e9e955729861f6c5ef6e0937fd004d 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
index 3dfa6df25f3e41a4a47e7ed27e01be7a3c9c6000..2848be5e62c0337a393ae701246aa0cebbb4f7e7 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -179,71 +178,70 @@ init_ascii_cdcnos (RECODE_STEP step,
 
 /* Previous obsolete lex code:
 
-@A                     { put_byte ('@', task); }
-@B                     { put_byte ('^', task); }
-@D                     { put_byte (':', task); }
-@G                     { put_byte ('`', task); }
+@A                     { put_byte ('@', subtask); }
+@B                     { put_byte ('^', subtask); }
+@D                     { put_byte (':', subtask); }
+@G                     { put_byte ('`', subtask); }
 
-\^" "                  { put_byte ( 13, task); }
-\^!                    { put_byte ( 22, task); }
-\^\"                   { put_byte ( 20, task); }
-\^#                    { put_byte ( 16, task); }
-\^$                    { put_byte ( 11, task); }
-\^\%                   { put_byte ( 19, task); }
-\^&                    { put_byte ( 23, task); }
-\^'                    { put_byte ( 24, task); }
-\^\(                   { put_byte (  9, task); }
-\^\)                   { put_byte ( 10, task); }
-\^\*                   { put_byte (  7, task); }
-\^\+                   { put_byte (  5, task); }
-\^\,                   { put_byte ( 14, task); }
-\^-                    { put_byte (  6, task); }
-\^\.                   { put_byte ( 15, task); }
-\^\/                   { put_byte (  8, task); }
+\^" "                  { put_byte ( 13, subtask); }
+\^!                    { put_byte ( 22, subtask); }
+\^\"                   { put_byte ( 20, subtask); }
+\^#                    { put_byte ( 16, subtask); }
+\^$                    { put_byte ( 11, subtask); }
+\^\%                   { put_byte ( 19, subtask); }
+\^&                    { put_byte ( 23, subtask); }
+\^'                    { put_byte ( 24, subtask); }
+\^\(                   { put_byte (  9, subtask); }
+\^\)                   { put_byte ( 10, subtask); }
+\^\*                   { put_byte (  7, subtask); }
+\^\+                   { put_byte (  5, subtask); }
+\^\,                   { put_byte ( 14, subtask); }
+\^-                    { put_byte (  6, subtask); }
+\^\.                   { put_byte ( 15, subtask); }
+\^\/                   { put_byte (  8, subtask); }
 
-\^0                    { put_byte ('{', task); }
-\^1                    { put_byte ('|', task); }
-\^2                    { put_byte ('}', task); }
-\^3                    { put_byte ('~', task); }
-\^4                    { put_byte (127, task); }
+\^0                    { put_byte ('{', subtask); }
+\^1                    { put_byte ('|', subtask); }
+\^2                    { put_byte ('}', subtask); }
+\^3                    { put_byte ('~', subtask); }
+\^4                    { put_byte (127, subtask); }
 
-\^5                    { put_byte (  0, task); }
-\^6                    { put_byte (  1, task); }
-\^7                    { put_byte (  2, task); }
-\^8                    { put_byte (  3, task); }
-\^9                    { put_byte (  4, task); }
+\^5                    { put_byte (  0, subtask); }
+\^6                    { put_byte (  1, subtask); }
+\^7                    { put_byte (  2, subtask); }
+\^8                    { put_byte (  3, subtask); }
+\^9                    { put_byte (  4, subtask); }
 
-\^;                    { put_byte ( 31, task); }
-\^<                    { put_byte ( 26, task); }
-\^=                    { put_byte ( 12, task); }
-\^>                    { put_byte ( 27, task); }
-\^?                    { put_byte ( 25, task); }
-\^@                    { put_byte ( 28, task); }
+\^;                    { put_byte ( 31, subtask); }
+\^<                    { put_byte ( 26, subtask); }
+\^=                    { put_byte ( 12, subtask); }
+\^>                    { put_byte ( 27, subtask); }
+\^?                    { put_byte ( 25, subtask); }
+\^@                    { put_byte ( 28, subtask); }
 
-\^[A-Z]                        { put_byte (yytext[1]-'A'+'a', task); }
+\^[A-Z]                        { put_byte (yytext[1]-'A'+'a', subtask); }
 
-\^\[                   { put_byte ( 17, task); }
-\^\\                   { put_byte ( 29, task); }
-\^]                    { put_byte ( 18, task); }
-\^\^                   { put_byte ( 30, task); }
-\^_                    { put_byte ( 21, task); }
+\^\[                   { put_byte ( 17, subtask); }
+\^\\                   { put_byte ( 29, subtask); }
+\^]                    { put_byte ( 18, subtask); }
+\^\^                   { put_byte ( 30, subtask); }
+\^_                    { put_byte ( 21, subtask); }
 
-\^[a-z]                        { put_byte (yytext[1], task); }
+\^[a-z]                        { put_byte (yytext[1], subtask); }
 
 */
 
 static bool
-transform_cdcnos_ascii (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_cdcnos_ascii (RECODE_SUBTASK subtask)
 {
   int input_char;              /* current character */
 
-  while (input_char = get_byte (task), input_char != EOF)
+  while (input_char = get_byte (subtask), input_char != EOF)
     {
       switch (input_char)
        {
         case '@':
-         switch (input_char = get_byte (task), input_char)
+         switch (input_char = get_byte (subtask), input_char)
            {
            case 'A': case 'a': input_char = '@'; break;
            case 'B': case 'b': input_char = '^'; break;
@@ -251,15 +249,15 @@ transform_cdcnos_ascii (RECODE_CONST_STEP step,
            case 'G': case 'g': input_char = '`'; break;
 
            default:
-             RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-             put_byte ('@', task);
+             RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+             put_byte ('@', subtask);
              if (input_char == EOF)
-               TASK_RETURN (task);
+               SUBTASK_RETURN (subtask);
            }
          break;
 
        case '^':
-         input_char = get_byte (task);
+         input_char = get_byte (subtask);
          if (input_char >= 'A' && input_char <= 'Z')
            input_char += 'a' - 'A';
          else if (input_char < 'a' || input_char > 'z')
@@ -276,7 +274,7 @@ transform_cdcnos_ascii (RECODE_CONST_STEP step,
              case '(': input_char = 9; break;
 
              case ')':
-               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
                input_char = '\n'; /* 10 */
                break;
 
@@ -309,16 +307,16 @@ transform_cdcnos_ascii (RECODE_CONST_STEP step,
              case '_': input_char = 21; break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte ('^', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte ('^', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
          break;
        }
-      put_byte (input_char, task);
+      put_byte (input_char, subtask);
     }
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index b6f87f671bf47c6be085234194f1f5f4b6dda37a..51dc83ef049500a53a04544fa83824a2872edde7 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1993, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
index 4885e36a53158e4cba75d570f0c1a4acbe3dd8de..6428660b303f6ae7acbf3e27916149d3568dfedc 100644 (file)
@@ -2,7 +2,6 @@
 
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
index 99d43d70caf0960b1a63157abd946cebbc14fcec..192e9af4ab38e0337cf8f5005d5f7d34fd79768f 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 92, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -120,12 +119,12 @@ init_explode (RECODE_STEP step,
 `------------------------------------*/
 
 bool
-explode_byte_byte (RECODE_CONST_STEP step, RECODE_TASK task)
+explode_byte_byte (RECODE_SUBTASK subtask)
 {
-  Hash_table *table = step->step_table;
+  Hash_table *table = subtask->step->step_table;
   unsigned value;
 
-  while (value = get_byte (task), value != EOF)
+  while (value = get_byte (subtask), value != EOF)
     {
       unsigned short lookup = value;
       unsigned short *result = hash_lookup (table, &lookup);
@@ -135,24 +134,24 @@ explode_byte_byte (RECODE_CONST_STEP step, RECODE_TASK task)
          result++;
          while (*result != DONE && *result != ELSE)
            {
-             put_byte (*result, task);
+             put_byte (*result, subtask);
              result++;
            }
        }
       else
-       put_byte (value, task);
+       put_byte (value, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
-explode_ucs2_byte (RECODE_CONST_STEP step, RECODE_TASK task)
+explode_ucs2_byte (RECODE_SUBTASK subtask)
 {
-  Hash_table *table = step->step_table;
+  Hash_table *table = subtask->step->step_table;
   unsigned value;
 
-  while (get_ucs2 (&value, step, task))
+  while (get_ucs2 (&value, subtask))
     {
       unsigned short lookup = value;
       unsigned short *result = hash_lookup (table, &lookup);
@@ -162,27 +161,27 @@ explode_ucs2_byte (RECODE_CONST_STEP step, RECODE_TASK task)
          result++;
          while (*result != DONE && *result != ELSE)
            {
-             put_byte (*result, task);
+             put_byte (*result, subtask);
              result++;
            }
        }
       else
-       put_byte (value, task);
+       put_byte (value, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
-explode_byte_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
+explode_byte_ucs2 (RECODE_SUBTASK subtask)
 {
-  Hash_table *table = step->step_table;
+  Hash_table *table = subtask->step->step_table;
   unsigned value;
 
-  if (value = get_byte (task), value != EOF)
+  if (value = get_byte (subtask), value != EOF)
     {
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (true)
        {
@@ -193,29 +192,29 @@ explode_byte_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
            {
              result++;
              while (*result != DONE && *result != ELSE)
-               put_ucs2 (*result++, task);
+               put_ucs2 (*result++, subtask);
            }
          else
-           put_ucs2 (value, task);
+           put_ucs2 (value, subtask);
 
-         if (value = get_byte (task), value == EOF)
+         if (value = get_byte (subtask), value == EOF)
            break;
        }
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
-explode_ucs2_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
+explode_ucs2_ucs2 (RECODE_SUBTASK subtask)
 {
-  Hash_table *table = step->step_table;
+  Hash_table *table = subtask->step->step_table;
   unsigned value;
 
-  if (get_ucs2 (&value, step, task))
+  if (get_ucs2 (&value, subtask))
     {
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (true)
        {
@@ -226,17 +225,17 @@ explode_ucs2_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
            {
              result++;
              while (*result != DONE && *result != ELSE)
-               put_ucs2 (*result++, task);
+               put_ucs2 (*result++, subtask);
            }
          else
-           put_ucs2 (value, task);
+           put_ucs2 (value, subtask);
 
-         if (!get_ucs2 (&value, step, task))
+         if (!get_ucs2 (&value, subtask))
            break;
        }
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 \f
 /* Combining.  */
@@ -429,27 +428,27 @@ init_combine (RECODE_STEP step,
    If we later find that it does, backtracing will have to be revisited.  */
 
 static void
-backtrack_byte (struct state *state,  RECODE_TASK task)
+backtrack_byte (struct state *state, RECODE_SUBTASK subtask)
 {
   if (state->result == NOT_A_CHARACTER)
     {
-      backtrack_byte (state->unshift, task);
-      put_byte (state->character, task);
+      backtrack_byte (state->unshift, subtask);
+      put_byte (state->character, subtask);
     }
   else
-    put_byte (state->result, task);
+    put_byte (state->result, subtask);
 }
 
 static void
-backtrack_ucs2 (struct state *state,  RECODE_TASK task)
+backtrack_ucs2 (struct state *state,  RECODE_SUBTASK subtask)
 {
   if (state->result == NOT_A_CHARACTER)
     {
-      backtrack_ucs2 (state->unshift, task);
-      put_ucs2 (state->character, task);
+      backtrack_ucs2 (state->unshift, subtask);
+      put_ucs2 (state->character, subtask);
     }
   else
-    put_ucs2 (state->result, task);
+    put_ucs2 (state->result, subtask);
 }
 
 /*------------------------------------.
@@ -457,185 +456,189 @@ backtrack_ucs2 (struct state *state,  RECODE_TASK task)
 `------------------------------------*/
 
 bool
-combine_byte_byte (RECODE_CONST_STEP step, RECODE_TASK task)
+combine_byte_byte (RECODE_SUBTASK subtask)
 {
   struct state *state = NULL;
   unsigned value;
 
-  if (value = get_byte (task), value != EOF)
+  if (value = get_byte (subtask), value != EOF)
     {
       while (true)
        {
-         struct state *shift = find_shifted_state (state, value, step);
+         struct state *shift
+           = find_shifted_state (state, value, subtask->step);
 
          if (shift)
            {
              state = shift;
-             if (value = get_byte (task), value == EOF)
+             if (value = get_byte (subtask), value == EOF)
                break;
            }
          else if (state)
            {
              if (state->result == NOT_A_CHARACTER)
-               backtrack_byte (state, task);
+               backtrack_byte (state, subtask);
              else
-               put_byte (state->result, task);
+               put_byte (state->result, subtask);
              state = NULL;
            }
          else
            {
-             put_byte (value, task);
-             if (value = get_byte (task), value == EOF)
+             put_byte (value, subtask);
+             if (value = get_byte (subtask), value == EOF)
                break;
            }
        }
 
       if (state)
        if (state->result == NOT_A_CHARACTER)
-         backtrack_byte (state, task);
+         backtrack_byte (state, subtask);
        else
-         put_byte (state->result, task);
+         put_byte (state->result, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
-combine_ucs2_byte (RECODE_CONST_STEP step, RECODE_TASK task)
+combine_ucs2_byte (RECODE_SUBTASK subtask)
 {
   struct state *state = NULL;
   unsigned value;
 
-  if (get_ucs2 (&value, step, task))
+  if (get_ucs2 (&value, subtask))
     {
       while (true)
        {
-         struct state *shift = find_shifted_state (state, value, step);
+         struct state *shift
+           = find_shifted_state (state, value, subtask->step);
 
          if (shift)
            {
              state = shift;
-             if (!get_ucs2 (&value, step, task))
+             if (!get_ucs2 (&value, subtask))
                break;
            }
          else if (state)
            {
              if (state->result == NOT_A_CHARACTER)
-               backtrack_byte (state, task);
+               backtrack_byte (state, subtask);
              else
-               put_byte (state->result, task);
+               put_byte (state->result, subtask);
              state = NULL;
            }
          else
            {
-             put_byte (value, task);
-             if (!get_ucs2 (&value, step, task))
+             put_byte (value, subtask);
+             if (!get_ucs2 (&value, subtask))
                break;
            }
        }
 
       if (state)
        if (state->result == NOT_A_CHARACTER)
-         backtrack_byte (state, task);
+         backtrack_byte (state, subtask);
        else
-         put_byte (state->result, task);
+         put_byte (state->result, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
-combine_byte_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
+combine_byte_ucs2 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
-  if (value = get_byte (task), value != EOF)
+  if (value = get_byte (subtask), value != EOF)
     {
       struct state *state = NULL;
 
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (true)
        {
-         struct state *shift = find_shifted_state (state, value, step);
+         struct state *shift
+           = find_shifted_state (state, value, subtask->step);
 
          if (shift)
            {
              state = shift;
-             if (value = get_byte (task), value == EOF)
+             if (value = get_byte (subtask), value == EOF)
                break;
            }
          else if (state)
            {
              if (state->result == NOT_A_CHARACTER)
-               backtrack_ucs2 (state, task);
+               backtrack_ucs2 (state, subtask);
              else
-               put_ucs2 (state->result, task);
+               put_ucs2 (state->result, subtask);
              state = NULL;
            }
          else
            {
-             put_ucs2 (value, task);
-             if (value = get_byte (task), value == EOF)
+             put_ucs2 (value, subtask);
+             if (value = get_byte (subtask), value == EOF)
                break;
            }
        }
 
       if (state)
        if (state->result == NOT_A_CHARACTER)
-         backtrack_ucs2 (state, task);
+         backtrack_ucs2 (state, subtask);
        else
-         put_ucs2 (state->result, task);
+         put_ucs2 (state->result, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
-combine_ucs2_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
+combine_ucs2_ucs2 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
-  if (get_ucs2 (&value, step, task))
+  if (get_ucs2 (&value, subtask))
     {
       struct state *state = NULL;
 
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (true)
        {
-         struct state *shift = find_shifted_state (state, value, step);
+         struct state *shift
+           = find_shifted_state (state, value, subtask->step);
 
          if (shift)
            {
              state = shift;
-             if (!get_ucs2 (&value, step, task))
+             if (!get_ucs2 (&value, subtask))
                break;
            }
          else if (state)
            {
              if (state->result == NOT_A_CHARACTER)
-               backtrack_ucs2 (state, task);
+               backtrack_ucs2 (state, subtask);
              else
-               put_ucs2 (state->result, task);
+               put_ucs2 (state->result, subtask);
              state = NULL;
            }
          else
            {
-             put_ucs2 (value, task);
-             if (!get_ucs2 (&value, step, task))
+             put_ucs2 (value, subtask);
+             if (!get_ucs2 (&value, subtask))
                break;
            }
        }
 
       if (state)
        if (state->result == NOT_A_CHARACTER)
-         backtrack_ucs2 (state, task);
+         backtrack_ucs2 (state, subtask);
        else
-         put_ucs2 (state->result, task);
+         put_ucs2 (state->result, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
index 0388ee267b18bff10078b857f64c905a43dbba52..da13b9d8be6374a0eb013562465000c6e27db5c2 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
index 7fd63d33a5fcde5f1297adddc20b61892767631e..eb9c308afe1c12621087f0204986c8cd0a6c34a3 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
    requested from the `before' position in the request.  */
 
 static bool
-test7_data (RECODE_CONST_STEP step, RECODE_TASK task)
+test7_data (RECODE_SUBTASK subtask)
 {
   unsigned counter;
   int value;
 
   for (counter = 0; counter < 1 << 7; counter++)
-    put_byte (counter, task);
+    put_byte (counter, subtask);
 
   /* Copy the rest verbatim.  */
-  while (value = get_byte (task), value != EOF)
-    put_byte (value, task);
+  while (value = get_byte (subtask), value != EOF)
+    put_byte (value, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-test8_data (RECODE_CONST_STEP step, RECODE_TASK task)
+test8_data (RECODE_SUBTASK subtask)
 {
   unsigned counter;
   int value;
 
   for (counter = 0; counter < 1 << 8; counter++)
-    put_byte (counter, task);
+    put_byte (counter, subtask);
 
   /* Copy the rest verbatim.  */
-  while (value = get_byte (task), value != EOF)
-    put_byte (value, task);
+  while (value = get_byte (subtask), value != EOF)
+    put_byte (value, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-test15_data (RECODE_CONST_STEP step, RECODE_TASK task)
+test15_data (RECODE_SUBTASK subtask)
 {
   unsigned counter;
   unsigned value;
 
-  put_ucs2 (BYTE_ORDER_MARK, task);
+  put_ucs2 (BYTE_ORDER_MARK, subtask);
 
   /* Before surrogate area.  */
   for (counter = 0; counter < 0xDC00; counter++)
-    put_ucs2 (counter, task);
+    put_ucs2 (counter, subtask);
   /* After surrogate area.  */
   for (counter = 0xE000; counter < 1 << 16; counter++)
     switch (counter)
@@ -83,30 +82,30 @@ test15_data (RECODE_CONST_STEP step, RECODE_TASK task)
        break;
 
       default:
-       put_ucs2 (counter, task);
+       put_ucs2 (counter, subtask);
       }
 
   /* Copy the rest verbatim.  */
-  while (value = get_byte (task), value != EOF)
-    put_byte (value, task);
+  while (value = get_byte (subtask), value != EOF)
+    put_byte (value, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-test16_data (RECODE_CONST_STEP step, RECODE_TASK task)
+test16_data (RECODE_SUBTASK subtask)
 {
   unsigned counter;
   unsigned value;
 
   for (counter = 0; counter < 1 << 16; counter++)
-    put_ucs2 (counter, task);
+    put_ucs2 (counter, subtask);
 
   /* Copy the rest verbatim.  */
-  while (value = get_byte (task), value != EOF)
-    put_byte (value, task);
+  while (value = get_byte (subtask), value != EOF)
+    put_byte (value, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-----------------------------------------------.
@@ -146,9 +145,9 @@ compare_item (const void *void_first, const void *void_second)
 }
 
 static bool
-produce_count (RECODE_CONST_STEP step, RECODE_TASK task)
+produce_count (RECODE_SUBTASK subtask)
 {
-  RECODE_OUTER outer = task->request->outer;
+  RECODE_OUTER outer = subtask->task->request->outer;
   Hash_table *table;           /* hash table for UCS-2 characters */
   unsigned character;          /* current character being counted */
   size_t size;                 /* number of different characters */
@@ -162,7 +161,7 @@ produce_count (RECODE_CONST_STEP step, RECODE_TASK task)
 
   /* Count characters.  */
 
-  while (get_ucs2 (&character, step, task))
+  while (get_ucs2 (&character, subtask))
     {
       struct ucs2_to_count lookup;
       struct ucs2_to_count *entry;
@@ -254,7 +253,7 @@ produce_count (RECODE_CONST_STEP step, RECODE_TASK task)
   }
   hash_free (table);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*---------------------------.
@@ -262,7 +261,7 @@ produce_count (RECODE_CONST_STEP step, RECODE_TASK task)
 `---------------------------*/
 
 static bool
-produce_full_dump (RECODE_CONST_STEP step, RECODE_TASK task)
+produce_full_dump (RECODE_SUBTASK subtask)
 {
   unsigned character;          /* character to dump */
   const char *charname;                /* charname for code */
@@ -286,7 +285,7 @@ produce_full_dump (RECODE_CONST_STEP step, RECODE_TASK task)
 
   fputs (_("UCS2   Mne   Description\n\n"), stdout);
 
-  while (get_ucs2 (&character, step, task))
+  while (get_ucs2 (&character, subtask))
     {
       const char *mnemonic = ucs2_to_rfc1345 (character);
 
@@ -317,7 +316,7 @@ produce_full_dump (RECODE_CONST_STEP step, RECODE_TASK task)
       printf ("\n");
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-----------------------------------------.
index 4562747f9cd144bd0276524725dd372ba44c8fa3..6450375f3923b4d9d0d534544668fdbdfac855cf 100644 (file)
@@ -34,8 +34,8 @@ bool module_utf8 PARAMS ((struct recode_outer *));
 bool module_utf8 PARAMS ((struct recode_outer *));
 bool module_varia PARAMS ((struct recode_outer *));
 bool module_varia PARAMS ((struct recode_outer *));
-bool module_viet PARAMS ((struct recode_outer *));
-bool module_viet PARAMS ((struct recode_outer *));
+bool module_vietnamese PARAMS ((struct recode_outer *));
+bool module_vietnamese PARAMS ((struct recode_outer *));
 bool module_flat PARAMS ((struct recode_outer *));
 bool module_flat PARAMS ((struct recode_outer *));
 bool module_html PARAMS ((struct recode_outer *));
index 5ddf7e112eb9df91c2f999a7f24fc163a62cbba2..fdba89188a6b914460d9e1a89dbd26bac7273b7f 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1997, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -53,12 +52,12 @@ static unsigned per_line_table[3][5]
      { 0, 12, 8, 7, 6 }};
 
 static bool
-dump (RECODE_CONST_STEP step, RECODE_TASK task,
+dump (RECODE_SUBTASK subtask,
       enum base base, unsigned size)
 {
   unsigned per_line = per_line_table[base][size];
   unsigned column = 0;
-  int character = get_byte (task);
+  int character = get_byte (subtask);
 
   while (character != EOF)
     {
@@ -69,7 +68,7 @@ dump (RECODE_CONST_STEP step, RECODE_TASK task,
 
       for (byte_count = 1; byte_count < size; byte_count++)
        {
-         character = get_byte (task);
+         character = get_byte (subtask);
          if (character == EOF)
            break;
          value = value << 8 | MASK (8) & character;
@@ -79,16 +78,16 @@ dump (RECODE_CONST_STEP step, RECODE_TASK task,
 
       if (column == per_line)
        {
-         put_byte (',', task);
-         put_byte ('\n', task);
+         put_byte (',', subtask);
+         put_byte ('\n', subtask);
          column = 1;
        }
       else if (column == 0)
        column = 1;
       else
        {
-         put_byte (',', task);
-         put_byte (' ', task);
+         put_byte (',', subtask);
+         put_byte (' ', subtask);
          column++;
        }
 
@@ -96,25 +95,25 @@ dump (RECODE_CONST_STEP step, RECODE_TASK task,
 
       sprintf (buffer, format_table[base][byte_count], value);
       for (cursor = buffer; *cursor; cursor++)
-       put_byte (*cursor, task);
+       put_byte (*cursor, subtask);
 
       /* Prepare for next iteration.  */
 
       if (character != EOF)
-       character = get_byte (task);
+       character = get_byte (subtask);
     }
 
-  put_byte ('\n', task);
-  TASK_RETURN (task);
+  put_byte ('\n', subtask);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-undump (RECODE_CONST_STEP step, RECODE_TASK task,
+undump (RECODE_SUBTASK subtask,
        enum base expected_base, unsigned expected_size)
 {
   unsigned per_line = per_line_table[expected_base][expected_size];
   unsigned column = 0;
-  int character = get_byte (task);
+  int character = get_byte (subtask);
   bool last_is_short = false;
   bool comma_on_last = character != EOF;
 
@@ -132,14 +131,14 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
          if (character == ' ')
            width++;
          else
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
 
-         character = get_byte (task);
+         character = get_byte (subtask);
        }
       if (character == EOF)
        {
          if (width != 0)
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
          break;
        }
 
@@ -148,22 +147,22 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
 
       if (character == '0')
        {
-         character = get_byte (task);
+         character = get_byte (subtask);
 
          if (character == 'x')
            {
              if (width != 0)
-               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              width = 0;
              base = HEXADECIMAL;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          else if (character >= '0' && character <= '9')
            {
              /* If followed by 8 or 9, declare it octal nevertheless.  It
                 is the proper thing to do, a reject might occur below.  */
              if (width != 0)
-               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              width = 0;
              base = OCTAL;
            }
@@ -182,17 +181,17 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
             line.  FIXME: This should probably skip multi-line comments or
             string constants, so to not get fooled by them.  */
 
-         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
          while (character != '\n' && character != EOF)
-           character = get_byte (task);
+           character = get_byte (subtask);
          if (character == '\n')
-           character = get_byte (task);
+           character = get_byte (subtask);
 
          continue;
        }
 
       if (base != expected_base)
-       RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+       RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
 
       /* Decode one value.  */
 
@@ -203,7 +202,7 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
            {
              value = value << 3 | character - '0';
              width++;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          break;
 
@@ -212,7 +211,7 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
            {
              value = value * 10 + character - '0';
              width++;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          break;
 
@@ -222,19 +221,19 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
              {
                value = value << 4 | character - '0';
                width++;
-               character = get_byte (task);
+               character = get_byte (subtask);
              }
            else if (character >= 'A' && character <= 'F')
              {
                value = value << 4 | character - 'A' + 10;
                width++;
-               character = get_byte (task);
+               character = get_byte (subtask);
              }
            else if (character >= 'a' && character <= 'f')
              {
                value = value << 4 | character - 'a' + 10;
                width++;
-               character = get_byte (task);
+               character = get_byte (subtask);
              }
            else
              break;
@@ -246,14 +245,14 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
          /* If the observed width is greater than expected, the input is
             invalid, even if the value is in range.  */
 
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
        }
       else
        {
          if (last_is_short)
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
          if (!comma_on_last)
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
 
          /* Decide how many bytes to produce.  */
 
@@ -269,7 +268,7 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
                  break;
              if (size == 4)
                {
-                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                  continue;
                }
            }
@@ -282,7 +281,7 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
            unsigned shift;
 
            for (shift = size * 8; shift != 0; shift -= 8)
-             put_byte (MASK (8) & value >> shift - 8, task);
+             put_byte (MASK (8) & value >> shift - 8, subtask);
          }
        }
 
@@ -291,38 +290,38 @@ undump (RECODE_CONST_STEP step, RECODE_TASK task,
       comma_on_last = character == ',';
       if (!comma_on_last)
        if (character == '\n')
-         character = get_byte (task);
+         character = get_byte (subtask);
        else
-         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
       else
        {
-         character = get_byte (task);
+         character = get_byte (subtask);
          if (character == ' ')
            {
              column++;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          else if (character == '\n')
            {
              if (column + 1!= per_line)
-               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              column = 0;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
        }
     }
 
   if (comma_on_last)
-    RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+    RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 #define TRANSFORM(Name, Service, Base, Size) \
   static bool                                                          \
-  Name (RECODE_CONST_STEP step, RECODE_TASK task)      \
+  Name (RECODE_SUBTASK subtask)        \
   {                                                                    \
-    return Service (step, task, Base, Size);                           \
+    return Service (subtask, Base, Size);                              \
   }
 
 TRANSFORM (data_oct1, dump, OCTAL, 1)
index d6e56d1611130f86f33f3e8721957a8948ea5ef0..f0e31e023222d79aed0e9343f438e92ad6bcc63c 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
index 6f8c43cbbcee4a192c0e3d208d32c594e5f09c2e..ee671f10507b8c7603c2f9e205f529a485b2ab7f 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
 #define OLD_EOF 26             /* oldish end of file */
 
 static bool
-transform_data_cr (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_data_cr (RECODE_SUBTASK subtask)
 {
-  bool strict = step->fallback_routine != reversibility;
+  bool strict = subtask->step->fallback_routine != reversibility;
   int character;
 
-  while (character = get_byte (task), character != EOF)
+  while (character = get_byte (subtask), character != EOF)
     switch (character)
       {
       case '\n':
-       put_byte (CR, task);
+       put_byte (CR, subtask);
        break;
 
       case CR:
        if (!strict)
          {
-           put_byte ('\n', task);
+           put_byte ('\n', subtask);
            break;
          }
-       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
        /* Fall through.  */
 
       default:
-       put_byte (character, task);
+       put_byte (character, subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_cr_data (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_cr_data (RECODE_SUBTASK subtask)
 {
-  bool strict = step->fallback_routine != reversibility;
+  bool strict = subtask->step->fallback_routine != reversibility;
   int character;
 
-  while (character = get_byte (task), character != EOF)
+  while (character = get_byte (subtask), character != EOF)
     switch (character)
       {
       case CR:
-       put_byte ('\n', task);
+       put_byte ('\n', subtask);
        break;
 
       case '\n':
        if (!strict)
          {
-           put_byte (CR, task);
+           put_byte (CR, subtask);
            break;
          }
-       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
        /* Fall through.  */
 
       default:
-       put_byte (character, task);
+       put_byte (character, subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_data_crlf (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_data_crlf (RECODE_SUBTASK subtask)
 {
-  int character = get_byte (task);
+  int character = get_byte (subtask);
 
   while (character != EOF)
     switch (character)
       {
       case '\n':
-       put_byte (CR, task);
-       put_byte (LF, task);
-       character = get_byte (task);
+       put_byte (CR, subtask);
+       put_byte (LF, subtask);
+       character = get_byte (subtask);
        break;
 
       case CR:
-       character = get_byte (task);
+       character = get_byte (subtask);
        if (character == LF)
-         RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-       put_byte (CR, task);
+         RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+       put_byte (CR, subtask);
        break;
 
       case OLD_EOF:
-       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
        /* Fall through.  */
 
       default:
-       put_byte (character, task);
-       character = get_byte (task);
+       put_byte (character, subtask);
+       character = get_byte (subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_crlf_data (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_crlf_data (RECODE_SUBTASK subtask)
 {
-  int character = get_byte (task);
+  int character = get_byte (subtask);
 
   while (character != EOF)
     switch (character)
       {
       case OLD_EOF:
-       RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-       TASK_RETURN (task);
+       RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+       SUBTASK_RETURN (subtask);
 
       case CR:
-       character = get_byte (task);
+       character = get_byte (subtask);
        if (character == LF)
          {
-           put_byte ('\n', task);
-           character = get_byte (task);
+           put_byte ('\n', subtask);
+           character = get_byte (subtask);
          }
        else
-         put_byte (CR, task);
+         put_byte (CR, subtask);
        break;
 
       case LF:
-       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
        /* Fall through.  */
 
       default:
-       put_byte (character, task);
-       character = get_byte (task);
+       put_byte (character, subtask);
+       character = get_byte (subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index abe4bfceafa17fd626f2a1481f7106bcfa0bcdf0..9ac04042d861d76e112738c83420b948040cafca 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
 #include "common.h"
 
 static bool
-transform_ascii_flat (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ascii_flat (RECODE_SUBTASK subtask)
 {
   int input_char;              /* current character */
   int temp_char;               /* look ahead character */
 
-  input_char = get_byte (task);
+  input_char = get_byte (subtask);
   while (true)
     switch (input_char)
       {
       case EOF:
-       TASK_RETURN (task);
+       SUBTASK_RETURN (subtask);
 
       case '\n':
       case '\t':
-       put_byte (input_char, task);
-       input_char = get_byte (task);
+       put_byte (input_char, subtask);
+       input_char = get_byte (subtask);
        break;
 
       case '\b':
-       input_char = get_byte (task);
+       input_char = get_byte (subtask);
        switch (input_char)
          {
          case '\'':
@@ -50,12 +49,12 @@ transform_ascii_flat (RECODE_CONST_STEP step, RECODE_TASK task)
          case '~':
          case ',':
          case '_':
-           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-           input_char = get_byte (task);
+           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+           input_char = get_byte (subtask);
            break;
 
          default:
-           put_byte ('\b', task);
+           put_byte ('\b', subtask);
          }
        break;
 
@@ -66,15 +65,15 @@ transform_ascii_flat (RECODE_CONST_STEP step, RECODE_TASK task)
       case '~':
       case ',':
       case '_':
-       temp_char = get_byte (task);
+       temp_char = get_byte (subtask);
        if (temp_char == '\b')
          {
-           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-           input_char = get_byte (task);
+           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+           input_char = get_byte (subtask);
          }
        else
          {
-           put_byte (input_char, task);
+           put_byte (input_char, subtask);
            input_char = temp_char;
          }
        break;
@@ -82,19 +81,19 @@ transform_ascii_flat (RECODE_CONST_STEP step, RECODE_TASK task)
       default:
        if (!IS_ASCII (input_char))
          {
-           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-           put_byte ('M', task);
-           put_byte ('-', task);
+           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+           put_byte ('M', subtask);
+           put_byte ('-', subtask);
            input_char &= MASK (7);
          }
        if (input_char < ' ' || input_char == MASK (7))
          {
-           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-           put_byte ('^', task);
+           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+           put_byte ('^', subtask);
            input_char ^= (1 << 6);
          }
-       put_byte (input_char, task);
-       input_char = get_byte (task);
+       put_byte (input_char, subtask);
+       input_char = get_byte (subtask);
       }
 }
 
index 0e2ccdc5fb515f3d6e770b781922967f43487c69..00d169dabac37d280041fcf2282718a2b6fc2534 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1993, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
index 8acfc71e347590d4715b385d2e7ef48a93466a30..96bde7b3d45cf3c93bcb7972deb7405fea6f974a 100644 (file)
@@ -2,7 +2,6 @@
 
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
index e10efe26538e8bb872de2efa96d1629c9589f39c..e20f9422b283bda4ab81c475cff1243e65c22d85 100644 (file)
@@ -40,7 +40,6 @@ recode_freeze_tables (RECODE_OUTER outer)
 \n\
 /* Conversion of files between different charsets and surfaces.\n\
    Copyright © 1998 Free Software Foundation, Inc.\n\
-   This file is part of the GNU C Library.\n\
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1998.\n\
 \n\
    The `recode' Library is free software; you can redistribute it and/or\n\
index 59e1763d6edb7de824c378fe2d0b858e678d93e5..b0044d12bd9a2343247e08d4a8274a3cf89be686 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -491,12 +490,12 @@ init_ucs2_html_v40 (RECODE_STEP step,
 `-----------------*/
 
 static bool
-transform_ucs2_html (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ucs2_html (RECODE_SUBTASK subtask)
 {
-  Hash_table *table = step->step_table;
+  Hash_table *table = subtask->step->step_table;
   unsigned value;
 
-  while (get_ucs2 (&value, step, task))
+  while (get_ucs2 (&value, subtask))
     {
       struct ucs2_to_string lookup;
       struct ucs2_to_string *entry;
@@ -507,34 +506,34 @@ transform_ucs2_html (RECODE_CONST_STEP step, RECODE_TASK task)
        {
          const char *cursor = entry->string;
 
-         put_byte ('&', task);
+         put_byte ('&', subtask);
          while (*cursor)
            {
-             put_byte (*cursor, task);
+             put_byte (*cursor, subtask);
              cursor++;
            }
-         put_byte (';', task);
+         put_byte (';', subtask);
        }
       else if (value < 32 && value != '\n' && value != '\t' || value >= 127)
        {
          unsigned divider = 10000;
 
-         put_byte ('&', task);
-         put_byte ('#', task);
+         put_byte ('&', subtask);
+         put_byte ('#', subtask);
          while (divider > value)
            divider /= 10;
          while (divider)
            {
-             put_byte ('0' + value / divider, task);
+             put_byte ('0' + value / divider, subtask);
              divider /= 10;
            }
-         put_byte (';', task);
+         put_byte (';', subtask);
        }
       else
-       put_byte(value, task);
+       put_byte(value, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 \f
 /* HTML towards UCS-2.  */
@@ -542,10 +541,10 @@ transform_ucs2_html (RECODE_CONST_STEP step, RECODE_TASK task)
 #define ENTITY_BUFFER_LENGTH 20
 
 /*
-&quot; { if (request->diacritics_only) ECHO; else put_ucs2 (34, task); }
-&amp;  { if (request->diacritics_only) ECHO; else put_ucs2 (38, task); }
-&lt;   { if (request->diacritics_only) ECHO; else put_ucs2 (60, task); }
-&gt;   { if (request->diacritics_only) ECHO; else put_ucs2 (62, task); }
+&quot; { if (request->diacritics_only) ECHO; else put_ucs2 (34, subtask); }
+&amp;  { if (request->diacritics_only) ECHO; else put_ucs2 (38, subtask); }
+&lt;   { if (request->diacritics_only) ECHO; else put_ucs2 (60, subtask); }
+&gt;   { if (request->diacritics_only) ECHO; else put_ucs2 (62, subtask); }
 */
 
 /*-------------------------------------.
@@ -657,14 +656,14 @@ init_html_v40_ucs2 (RECODE_STEP step,
 `-----------------*/
 
 static bool
-transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_html_ucs2 (RECODE_SUBTASK subtask)
 {
-  RECODE_CONST_REQUEST request = task->request;
+  RECODE_CONST_REQUEST request = subtask->task->request;
   int input_char;
 
-  input_char = get_byte (task);
+  input_char = get_byte (subtask);
   if (input_char != EOF)
-    put_ucs2 (BYTE_ORDER_MARK, task);  /* FIXME: experimental */
+    put_ucs2 (BYTE_ORDER_MARK, subtask);       /* FIXME: experimental */
 
   while (input_char != EOF)
 
@@ -675,10 +674,10 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
        bool valid = true;
        bool echo = false;
 
-       input_char = get_byte (task);
+       input_char = get_byte (subtask);
        if (input_char == '#')
          {
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            if (input_char == 'x' || input_char == 'X')
              {
                unsigned value = 0;
@@ -687,7 +686,7 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
 
                *cursor++ = '#';
                *cursor++ = input_char;
-               input_char = get_byte (task);
+               input_char = get_byte (subtask);
 
                while (valid)
                  {
@@ -707,7 +706,7 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
                    else
                      {
                        *cursor++ = input_char;
-                       input_char = get_byte (task);
+                       input_char = get_byte (subtask);
                      }
                  }
 
@@ -719,9 +718,9 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
                    }
                  else
                    {
-                     put_ucs2 (value, task);
+                     put_ucs2 (value, subtask);
                      if (input_char == ';')
-                       input_char = get_byte (task);
+                       input_char = get_byte (subtask);
                    }
                else
                  *cursor = '\0';
@@ -748,7 +747,7 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
                    else
                      {
                        *cursor++ = input_char;
-                       input_char = get_byte (task);
+                       input_char = get_byte (subtask);
                      }
                  }
 
@@ -760,9 +759,9 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
                    }
                  else
                    {
-                     put_ucs2 (value, task);
+                     put_ucs2 (value, subtask);
                      if (input_char == ';')
-                       input_char = get_byte (task);
+                       input_char = get_byte (subtask);
                    }
                else
                  *cursor = '\0';
@@ -774,7 +773,7 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
            /* Scan &[A-Za-z][A-Za-z0-9]*; notation.  */
 
            *cursor++ = input_char;
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
 
            while (valid
                   && input_char != EOF
@@ -786,7 +785,7 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
              else
                {
                  *cursor++ = input_char;
-                 input_char = get_byte (task);
+                 input_char = get_byte (subtask);
                }
            *cursor = '\0';
 
@@ -796,12 +795,12 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
                struct ucs2_to_string *entry;
 
                lookup.string = buffer;
-               entry = hash_lookup (step->step_table, &lookup);
+               entry = hash_lookup (subtask->step->step_table, &lookup);
                if (entry)
                  {
-                   put_ucs2 (entry->code, task);
+                   put_ucs2 (entry->code, subtask);
                    if (input_char == ';')
-                     input_char = get_byte (task);
+                     input_char = get_byte (subtask);
                  }
                else
                  valid = false;
@@ -810,18 +809,18 @@ transform_html_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
 
        if (echo || !valid)
          {
-           put_ucs2 ('&', task);
+           put_ucs2 ('&', subtask);
            for (cursor = buffer; *cursor; cursor++)
-             put_ucs2 (*cursor, task);
+             put_ucs2 (*cursor, subtask);
          }
       }
     else
       {
-       put_ucs2 (input_char, task);
-       input_char = get_byte (task);
+       put_ucs2 (input_char, subtask);
+       input_char = get_byte (subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 \f
 /* Module declaration.  */
index fd63c97f69684c05380918b9027e27901e678af1..44ac61e9542f64d437c65026f9605977e0c8cc7f 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -168,119 +167,117 @@ static struct recode_known_pair known_pairs[] =
 #define NUMBER_OF_PAIRS (sizeof (known_pairs) / sizeof (struct recode_known_pair))
 
 static bool
-transform_latin1_ibmpc (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_latin1_ibmpc (RECODE_SUBTASK subtask)
 {
-  if (step->fallback_routine == reversibility)
+  if (subtask->step->fallback_routine == reversibility)
     {
-      const unsigned char *table = step->step_table;
+      const unsigned char *table = subtask->step->step_table;
       int input_char;
 
-      while (input_char = get_byte (task), input_char != EOF)
+      while (input_char = get_byte (subtask), input_char != EOF)
        if (input_char == '\n')
          {
-           put_byte (DOS_CR, task);
-           put_byte (DOS_LF, task);
+           put_byte (DOS_CR, subtask);
+           put_byte (DOS_LF, subtask);
          }
        else
-         put_byte (table[input_char], task);
+         put_byte (table[input_char], subtask);
     }
   else
     {
-      const char *const *table = step->step_table;
+      const char *const *table = subtask->step->step_table;
       int input_char;
 
-      while (input_char = get_byte (task), input_char != EOF)
+      while (input_char = get_byte (subtask), input_char != EOF)
        if (input_char == '\n')
          {
-           put_byte (DOS_CR, task);
-           put_byte (DOS_LF, task);
+           put_byte (DOS_CR, subtask);
+           put_byte (DOS_LF, subtask);
          }
        else if (table[input_char])
-         put_byte (*table[input_char], task);
+         put_byte (*table[input_char], subtask);
        else
-         RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
+         RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
     }
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_ibmpc_latin1 (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_ibmpc_latin1 (RECODE_SUBTASK subtask)
 {
-  if (step->fallback_routine == reversibility)
+  if (subtask->step->fallback_routine == reversibility)
     {
-      const unsigned char *table = step->step_table;
-      int input_char = get_byte (task);
+      const unsigned char *table = subtask->step->step_table;
+      int input_char = get_byte (subtask);
 
       while (input_char != EOF)
        switch (input_char)
          {
          case DOS_EOF:
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
            input_char = EOF;
            break;
 
          case DOS_CR:
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            if (input_char == DOS_LF)
              {
-               put_byte ('\n', task);
-               input_char = get_byte (task);
+               put_byte ('\n', subtask);
+               input_char = get_byte (subtask);
              }
            else
-             put_byte (table[DOS_CR], task);
+             put_byte (table[DOS_CR], subtask);
            break;
 
          case DOS_LF:
-           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
            /* Fall through.  */
 
          default:
-           put_byte (table[input_char], task);
-           input_char = get_byte (task);
+           put_byte (table[input_char], subtask);
+           input_char = get_byte (subtask);
          }
     }
   else
     {
-      const char *const *table = step->step_table;
-      int input_char = get_byte (task);
+      const char *const *table = subtask->step->step_table;
+      int input_char = get_byte (subtask);
 
       while (input_char != EOF)
        switch (input_char)
          {
          case DOS_EOF:
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
            input_char = EOF;
            break;
 
          case DOS_CR:
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            if (input_char == DOS_LF)
              {
-               put_byte ('\n', task);
-               input_char = get_byte (task);
+               put_byte ('\n', subtask);
+               input_char = get_byte (subtask);
              }
            else if (table[DOS_CR])
-             put_byte (*table[DOS_CR], task);
+             put_byte (*table[DOS_CR], subtask);
            else
-             RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
+             RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
            break;
 
          case DOS_LF:
-           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+           RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
            /* Fall through.  */
 
          default:
            if (table[input_char])
-             put_byte (*table[input_char], task);
+             put_byte (*table[input_char], subtask);
            else
-             RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
-           input_char = get_byte (task);
+             RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
+           input_char = get_byte (subtask);
          }
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
index 6550cb27f800e4a24d6332b724d9c8b53994b5e2..f18a4550d87537620e8143a8c24e9886c55833e7 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
 #define ENDLINE 30             /* end-line code for QNX */
 
 #define TRANSLATE_AND_BREAK(c2, c3) \
-  put_byte (ESCAPE, task);             \
-  put_byte (c2, task);         \
-  put_byte (c3, task);         \
-  input_char = get_byte (task);        \
+  put_byte (ESCAPE, subtask);          \
+  put_byte (c2, subtask);              \
+  put_byte (c3, subtask);              \
+  input_char = get_byte (subtask);     \
   break;
 
 static bool
-transform_ibmpc_iconqnx (RECODE_CONST_STEP step,
-                        RECODE_TASK task)
+transform_ibmpc_iconqnx (RECODE_SUBTASK subtask)
 {
   int input_char;
 
-  input_char = get_byte (task);
+  input_char = get_byte (subtask);
   while (true)
     switch (input_char)
       {
       case DOS_EOF:
-       RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+       RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
        /* Fall through.  */
 
       case EOF:
-       TASK_RETURN (task);
+       SUBTASK_RETURN (subtask);
 
       case 133: TRANSLATE_AND_BREAK ('A', 'a');
       case 138: TRANSLATE_AND_BREAK ('A', 'e');
@@ -68,59 +66,58 @@ transform_ibmpc_iconqnx (RECODE_CONST_STEP step,
       case 128: TRANSLATE_AND_BREAK ('K', 'C');
 
       case DOS_CR:
-       input_char = get_byte (task);
+       input_char = get_byte (subtask);
        if (input_char == DOS_LF)
          {
-           put_byte (ENDLINE, task);
-           input_char = get_byte (task);
+           put_byte (ENDLINE, subtask);
+           input_char = get_byte (subtask);
          }
        else
-         put_byte (DOS_CR, task);
+         put_byte (DOS_CR, subtask);
        break;
 
       case ENDLINE:
       case ESCAPE:
-       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
+       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
        /* Fall through.  */
 
       default:
-       put_byte (input_char, task);
-       input_char = get_byte (task);
+       put_byte (input_char, subtask);
+       input_char = get_byte (subtask);
       }
 }
 
 static bool
-transform_iconqnx_ibmpc (RECODE_CONST_STEP step,
-                        RECODE_TASK task)
+transform_iconqnx_ibmpc (RECODE_SUBTASK subtask)
 {
   int input_char;              /* current character */
 
-  input_char = get_byte (task);
+  input_char = get_byte (subtask);
   while (true)
     switch (input_char)
       {
       case EOF:
-       TASK_RETURN (task);
+       SUBTASK_RETURN (subtask);
 
       case ENDLINE:
-       put_byte (DOS_CR, task);
-       put_byte (DOS_LF, task);
-       input_char = get_byte (task);
+       put_byte (DOS_CR, subtask);
+       put_byte (DOS_LF, subtask);
+       input_char = get_byte (subtask);
        break;
 
       case DOS_CR:
-       input_char = get_byte (task);
+       input_char = get_byte (subtask);
        if (input_char == DOS_LF)
-         RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-       put_byte (DOS_CR, task);
+         RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+       put_byte (DOS_CR, subtask);
        break;
 
       case ESCAPE:
-       input_char = get_byte (task);
+       input_char = get_byte (subtask);
        switch (input_char)
          {
          case 'A':
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            switch (input_char)
              {
              case 'a': input_char = 133; break;
@@ -128,32 +125,32 @@ transform_iconqnx_ibmpc (RECODE_CONST_STEP step,
              case 'u': input_char = 151; break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte (ESCAPE, task);
-               put_byte ('A', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte (ESCAPE, subtask);
+               put_byte ('A', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
            break;
 
          case 'B':
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            switch (input_char)
              {
              case 'e': input_char = 130; break;
              case 'E': input_char = 144; break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte (ESCAPE, task);
-               put_byte ('B', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte (ESCAPE, subtask);
+               put_byte ('B', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
            break;
 
          case 'C':
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            switch (input_char)
              {
              case 'a': input_char = 131; break;
@@ -163,16 +160,16 @@ transform_iconqnx_ibmpc (RECODE_CONST_STEP step,
              case 'u': input_char = 150; break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte (ESCAPE, task);
-               put_byte ('C', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte (ESCAPE, subtask);
+               put_byte ('C', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
            break;
 
          case 'H':
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            switch (input_char)
              {
              case 'e': input_char = 137; break;
@@ -180,41 +177,41 @@ transform_iconqnx_ibmpc (RECODE_CONST_STEP step,
              case 'u': input_char = 129; break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte (ESCAPE, task);
-               put_byte ('H', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte (ESCAPE, subtask);
+               put_byte ('H', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
            break;
 
          case 'K':
-           input_char = get_byte (task);
+           input_char = get_byte (subtask);
            switch (input_char)
              {
              case 'c': input_char = 135; break;
              case 'C': input_char = 128; break;
 
              default:
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-               put_byte (ESCAPE, task);
-               put_byte ('K', task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+               put_byte (ESCAPE, subtask);
+               put_byte ('K', subtask);
                if (input_char == EOF)
-                 TASK_RETURN (task);
+                 SUBTASK_RETURN (subtask);
              }
            break;
 
          default:
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-           put_byte (ESCAPE, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+           put_byte (ESCAPE, subtask);
            if (input_char == EOF)
-             TASK_RETURN (task);
+             SUBTASK_RETURN (subtask);
          }
        /* Fall through.  */
 
       default:
-       put_byte (input_char, task);
-       input_char = get_byte (task);
+       put_byte (input_char, subtask);
+       input_char = get_byte (subtask);
       }
 }
 
diff --git a/src/iconv.c b/src/iconv.c
new file mode 100644 (file)
index 0000000..604c339
--- /dev/null
@@ -0,0 +1,402 @@
+/* Copyright (C) 1999 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU ICONV Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU ICONV Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include "common.h"
+#include "libiconv.h"
+
+/* Define our own notion of wchar_t, as UCS-4, according to ISO-10646-1. */
+#undef wchar_t
+#define wchar_t  unsigned int
+
+/* State used by a conversion. 0 denotes the initial state. */
+typedef unsigned int state_t;
+
+/* iconv_t is an opaque type. This is the real iconv_t type. */
+typedef struct conv_struct * conv_t;
+
+/*
+ * Data type for conversion multibyte -> unicode
+ */
+struct mbtowc_funcs {
+  int (*xxx_mbtowc) (conv_t conv, wchar_t *pwc, unsigned char const *s, int n);
+  /*
+   * int xxx_mbtowc (conv_t conv, wchar_t *pwc, unsigned char const *s, int n)
+   * converts the byte sequence starting at s to a wide character. Up to n bytes
+   * are available at s. n is >= 1.
+   * Result is number of bytes consumed (if a wide character was read),
+   * or 0 if invalid, or -1 if n too small, or -1-(number of bytes consumed)
+   * if only a shift sequence was read.
+   */
+};
+
+/*
+ * Data type for conversion unicode -> multibyte
+ */
+struct wctomb_funcs {
+  int (*xxx_wctomb) (conv_t conv, unsigned char *r, wchar_t wc, int n);
+  /*
+   * int xxx_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+   * converts the wide character wc to the character set xxx, and stores the
+   * result beginning at r. Up to n bytes may be written at r. n is >= 1.
+   * Result is number of bytes written, or 0 if invalid, or -1 if n too small.
+   */
+  int (*xxx_reset) (conv_t conv, unsigned char *r, int n);
+  /*
+   * int xxx_reset (conv_t conv, unsigned char *r, int n)
+   * stores a shift sequences returning to the initial state beginning at r.
+   * Up to n bytes may be written at r. n is >= 0.
+   * Result is number of bytes written, or -1 if n too small.
+   */
+};
+
+/* Return code if invalid. (xxx_mbtowc, xxx_wctomb) */
+#define RET_ILSEQ      0
+/* Return code if only a shift sequence of n bytes was read. (xxx_mbtowc) */
+#define RET_TOOFEW(n)  (-1-(n))
+/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */
+#define RET_TOOSMALL   -1
+
+/*
+ * Contents of a conversion descriptor.
+ */
+struct conv_struct {
+  /* Input (conversion multibyte -> unicode) */
+  struct mbtowc_funcs ifuncs;
+  state_t istate;
+  /* Output (conversion unicode -> multibyte) */
+  struct wctomb_funcs ofuncs;
+  state_t ostate;
+  /* Operation flags */
+  int transliterate;
+};
+
+/*
+ * Include all the converters.
+ */
+
+#include "ascii.h"
+
+/* General multi-byte encodings */
+#include "utf8.h"
+#include "ucs2.h"
+#include "ucs4.h"
+#include "utf16.h"
+#include "utf7.h"
+#include "ucs2internal.h"
+#include "ucs2swapped.h"
+#include "ucs4internal.h"
+#include "ucs4swapped.h"
+#include "java.h"
+
+/* 8-bit encodings */
+#include "iso8859_1.h"
+#include "iso8859_2.h"
+#include "iso8859_3.h"
+#include "iso8859_4.h"
+#include "iso8859_5.h"
+#include "iso8859_6.h"
+#include "iso8859_7.h"
+#include "iso8859_8.h"
+#include "iso8859_9.h"
+#include "iso8859_10.h"
+#include "iso8859_13.h"
+#include "iso8859_14.h"
+#include "iso8859_15.h"
+#include "koi8_r.h"
+#include "koi8_u.h"
+#include "koi8_ru.h"
+#include "cp1250.h"
+#include "cp1251.h"
+#include "cp1252.h"
+#include "cp1253.h"
+#include "cp1254.h"
+#include "cp1255.h"
+#include "cp1256.h"
+#include "cp1257.h"
+#include "cp1258.h"
+#include "cp850.h"
+#include "cp866.h"
+#include "mac_roman.h"
+#include "mac_centraleurope.h"
+#include "mac_iceland.h"
+#include "mac_croatian.h"
+#include "mac_romania.h"
+#include "mac_cyrillic.h"
+#include "mac_ukraine.h"
+#include "mac_greek.h"
+#include "mac_turkish.h"
+#include "mac_hebrew.h"
+#include "mac_arabic.h"
+#include "mac_thai.h"
+#include "hp_roman8.h"
+#include "nextstep.h"
+#include "armscii_8.h"
+#include "georgian_academy.h"
+#include "georgian_ps.h"
+#include "mulelao.h"
+#include "cp1133.h"
+#include "tis620.h"
+#include "cp874.h"
+#include "viscii.h"
+#include "tcvn.h"
+
+/* CJK character sets [CCS = coded character set] [CJKV.INF chapter 3] */
+
+typedef struct {
+  unsigned short indx; /* index into big table */
+  unsigned short used; /* bitmask of used entries */
+} Summary16;
+
+#include "jisx0201.h"
+#include "jisx0208.h"
+#include "jisx0212.h"
+
+#include "gb2312.h"
+/*#include "gb12345.h"*/
+#include "gbk.h"
+#include "cns11643.h"
+#include "big5.h"
+
+#include "ksc5601.h"
+#include "johab_hangul.h"
+#include "johab_decomp.h"
+
+/* CJK encodings [CES = character encoding scheme] [CJKV.INF chapter 4] */
+
+#include "euc_jp.h"
+#include "sjis.h"
+#include "cp932.h"
+#include "iso2022_jp.h"
+#include "iso2022_jp1.h"
+#include "iso2022_jp2.h"
+
+#include "euc_cn.h"
+#include "ces_gbk.h"
+#include "iso2022_cn.h"
+#include "iso2022_cnext.h"
+#include "hz.h"
+#include "euc_tw.h"
+#include "ces_big5.h"
+#include "cp950.h"
+
+#include "euc_kr.h"
+#include "johab.h"
+#include "iso2022_kr.h"
+
+/*
+ * Table of all supported encodings.
+ */
+struct encoding {
+  struct mbtowc_funcs ifuncs; /* conversion multibyte -> unicode */
+  struct wctomb_funcs ofuncs; /* conversion unicode -> multibyte */
+};
+enum {
+#define DEFENCODING(xxx_names,xxx,xxx_ifuncs,xxx_ofuncs1,xxx_ofuncs2) \
+  ei_##xxx ,
+#include "encodings.def"
+#undef DEFENCODING
+ei_for_broken_compilers_that_dont_like_trailing_commas
+};
+static struct encoding const all_encodings[] = {
+#define DEFENCODING(xxx_names,xxx,xxx_ifuncs,xxx_ofuncs1,xxx_ofuncs2) \
+  { xxx_ifuncs, xxx_ofuncs1,xxx_ofuncs2 },
+#include "encodings.def"
+#undef DEFENCODING
+};
+
+/*
+ * Alias lookup function.
+ * Defines
+ *   struct alias { const char* name; unsigned int encoding_index; };
+ *   const struct alias * aliases_lookup (const char *str, unsigned int len);
+ *   #define MAX_WORD_LENGTH ...
+ */
+#include "aliases.h"
+
+#if 0
+/* Like !strcasecmp, except that the both strings can be assumed to be ASCII
+   and the first string can be assumed to be in uppercase. */
+static int strequal (const char* str1, const char* str2)
+{
+  unsigned char c1;
+  unsigned char c2;
+  for (;;) {
+    c1 = * (unsigned char *) str1++;
+    c2 = * (unsigned char *) str2++;
+    if (c1 == 0)
+      break;
+    if (c2 >= 'a' && c2 <= 'z')
+      c2 -= 'a'-'A';
+    if (c1 != c2)
+      break;
+  }
+  return (c1 == c2);
+}
+#endif
+
+iconv_t iconv_open (const char* tocode, const char* fromcode)
+{
+  struct conv_struct * cd = (struct conv_struct *) malloc(sizeof(struct conv_struct));
+  char buf[MAX_WORD_LENGTH+1];
+  const char* cp;
+  char* bp;
+  const struct alias * ap;
+  unsigned int count;
+
+  if (cd == NULL) {
+    errno = ENOMEM;
+    return (iconv_t)(-1);
+  }
+  /* Before calling aliases_lookup, convert the input string to upper case,
+   * and check whether it's entirely ASCII (we call gperf with option "-7"
+   * to achieve a smaller table) and non-empty. If it's not entirely ASCII,
+   * or if it's too long, it is not a valid encoding name.
+   */
+  /* Search tocode in the table. */
+  for (cp = tocode, bp = buf, count = MAX_WORD_LENGTH+1; ; cp++, bp++) {
+    unsigned char c = * (unsigned char *) cp;
+    if (c >= 0x80)
+      goto invalid;
+    if (c >= 'a' && c <= 'z')
+      c -= 'a'-'A';
+    *bp = c;
+    if (c == '\0')
+      break;
+    if (--count == 0)
+      goto invalid;
+  }
+  ap = aliases_lookup(buf,bp-buf);
+  if (ap == NULL)
+    goto invalid;
+  cd->ofuncs = all_encodings[ap->encoding_index].ofuncs;
+  /* Search fromcode in the table. */
+  for (cp = fromcode, bp = buf, count = MAX_WORD_LENGTH+1; ; cp++, bp++) {
+    unsigned char c = * (unsigned char *) cp;
+    if (c >= 0x80)
+      goto invalid;
+    if (c >= 'a' && c <= 'z')
+      c -= 'a'-'A';
+    *bp = c;
+    if (c == '\0')
+      break;
+    if (--count == 0)
+      goto invalid;
+  }
+  ap = aliases_lookup(buf,bp-buf);
+  if (ap == NULL)
+    goto invalid;
+  cd->ifuncs = all_encodings[ap->encoding_index].ifuncs;
+  /* Initialize the states. */
+  memset(&cd->istate,'\0',sizeof(state_t));
+  memset(&cd->ostate,'\0',sizeof(state_t));
+  /* Initialize the operation flags. */
+  cd->transliterate = 1;
+  /* Done. */
+  return (iconv_t)cd;
+invalid:
+  errno = EINVAL;
+  return (iconv_t)(-1);
+}
+
+size_t iconv (iconv_t icd,
+              const char* * inbuf, size_t *inbytesleft,
+              char* * outbuf, size_t *outbytesleft)
+{
+  conv_t cd = (conv_t) icd;
+  if (inbuf == NULL || *inbuf == NULL) {
+    if (outbuf == NULL || *outbuf == NULL) {
+      /* Reset the states. */
+      memset(&cd->istate,'\0',sizeof(state_t));
+      memset(&cd->ostate,'\0',sizeof(state_t));
+      return 0;
+    } else {
+      if (cd->ofuncs.xxx_reset) {
+        int outcount = cd->ofuncs.xxx_reset(cd,*outbuf,*outbytesleft);
+        if (outcount < 0) {
+          errno = E2BIG;
+          return -1;
+        }
+        *outbuf += outcount; *outbytesleft -= outcount;
+      }
+      memset(&cd->istate,'\0',sizeof(state_t));
+      memset(&cd->ostate,'\0',sizeof(state_t));
+      return 0;
+    }
+  } else {
+    size_t result = 0;
+    const unsigned char* inptr = (const unsigned char*) *inbuf;
+    size_t inleft = *inbytesleft;
+    unsigned char* outptr = (unsigned char*) *outbuf;
+    size_t outleft = *outbytesleft;
+    while (inleft > 0) {
+      wchar_t wc;
+      int incount;
+      int outcount;
+      incount = cd->ifuncs.xxx_mbtowc(cd,&wc,inptr,inleft);
+      if (incount <= 0) {
+        if (incount == 0) {
+          /* Case 1: invalid input */
+          errno = EILSEQ;
+          result = -1;
+          break;
+        }
+        if (incount == -1) {
+          /* Case 2: not enough bytes available to detect anything */
+          errno = EINVAL;
+          result = -1;
+          break;
+        }
+        /* Case 3: k bytes read, but only a shift sequence */
+        incount = -1-incount;
+      } else {
+        /* Case 4: k bytes read, making up a wide character */
+        outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft);
+        if (outcount == 0) {
+          /* This is not optimal. Transliteration would be better. */
+          outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft);
+          if (outcount == 0) {
+            errno = EILSEQ;
+            result = -1;
+            break;
+          }
+        }
+        if (outcount < 0) {
+          errno = E2BIG;
+          result = -1;
+          break;
+        }
+        if (!(outcount <= outleft)) abort();
+        outptr += outcount; outleft -= outcount;
+      }
+      if (!(incount <= inleft)) abort();
+      inptr += incount; inleft -= incount;
+    }
+    *inbuf = (const char*) inptr;
+    *inbytesleft = inleft;
+    *outbuf = (char*) outptr;
+    *outbytesleft = outleft;
+    return result;
+  }
+}
+
+int iconv_close (iconv_t icd)
+{
+  conv_t cd = (conv_t) icd;
+  free(cd);
+  return 0;
+}
index 3ed21d7904e9f98ddeaa291783eaa3038e03c40b..2ba4d7587fcbe2467a4476e2c7d06aa53c4a53b9 100644 (file)
@@ -16,7 +16,7 @@
   if (!module_utf7 (outer)) return false;
   if (!module_utf8 (outer)) return false;
   if (!module_varia (outer)) return false;
-  if (!module_viet (outer)) return false;
+  if (!module_vietnamese (outer)) return false;
   if (!module_flat (outer)) return false;
   if (!module_html (outer)) return false;
   if (!module_latin1_latex (outer)) return false;
index 0f21e57b83c8b5576228ccf4e6b4328be431804b..1c663ec9a09f65ff190384986e6592e4cec63d4a 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
index eb89ce777ea47c61dca4b9753458d3a98d83a57c..dfbf644e2dc86153abfd653a97e905c1e7de9f26 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
index c1b4ab5525346a864f09a79893e35bd4b27e4c89..4902cc9e7d6dc691602de08a9ff581eb3db4ebb1 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
index ab4da2468bcb309731f95104b111219a0a12a242..2044fae48cac183558964f088b430c0d696e0930 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
diff --git a/src/libiconv.c b/src/libiconv.c
new file mode 100644 (file)
index 0000000..45d0a62
--- /dev/null
@@ -0,0 +1,167 @@
+/* Conversion of files between different charsets and surfaces.
+   Copyright © 1999 Free Software Foundation, Inc.
+   Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
+
+   The `recode' Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License
+   as published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The `recode' Library is distributed in the hope that it will be
+   useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the `recode' Library; see the file `COPYING.LIB'.
+   If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+   Suite 330, Boston, MA 02111-1307, USA.  */
+
+#include "common.h"
+#include "libiconv.h"
+
+/*-----------------------------------------.
+| Use `libiconv' to handle a double step.  |
+`-----------------------------------------*/
+
+#define LIBICONV_BUFFER_SIZE 2048
+
+static bool
+wrapped_transform (iconv_t conversion,
+                  RECODE_SUBTASK subtask)
+{
+  int input_char = get_byte (subtask);
+  char input_buffer[LIBICONV_BUFFER_SIZE];
+  char output_buffer[LIBICONV_BUFFER_SIZE];
+  size_t input_left;
+  size_t output_left;
+  size_t converted;
+  const char *input;
+  char *output;
+  char *cursor;
+
+  cursor = input_buffer;
+  while (cursor > input_buffer || input_char != EOF)
+    {
+      /* Fill the input buffer as much as possible.  */
+      while (input_char != EOF && cursor < input_buffer + LIBICONV_BUFFER_SIZE)
+       {
+         *cursor++ = input_char;
+         input_char = get_byte (subtask);
+       }
+      if (cursor > input_buffer)
+       {
+         /* Convert accumulated input into the output buffer.  */
+         input_left = cursor - input_buffer;
+         input = input_buffer;
+         output_left = LIBICONV_BUFFER_SIZE;
+         output = output_buffer;
+         converted
+           = iconv (conversion, &input, &input_left, &output, &output_left);
+         /* If there was no progress, we have a fatal conversion error.
+            Then, we suspect invalid input, but we do not really know.  */
+         if (input == input_buffer && output == output_buffer)
+           {
+             SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask);
+             SUBTASK_RETURN (subtask);
+           }
+         /* Send the converted result, to free the output buffer.  */
+         for (cursor = output_buffer; cursor < output; cursor++)
+           put_byte (*cursor, subtask);
+         /* Skip one byte if an invalid input sequence.  This is crude,
+            `libiconv' knows much better, and should do it.  FIXME!  */
+         if (converted == (size_t) -1 && errno == EILSEQ)
+           {
+             RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+             input++;
+             input_left--;
+             /* Reset converstion state.  */
+             output_left = LIBICONV_BUFFER_SIZE;
+             output = output_buffer;
+             iconv (conversion, NULL, NULL, &output, &output_left);
+             for (cursor = output_buffer; cursor < output; cursor++)
+               put_byte (*cursor, subtask);
+           }
+         /* Shift back the unconverted part of the input buffer.  */
+         cursor = input_buffer;
+         while (input_left != 0)
+           {
+             *cursor++ = *input++;
+             input_left--;
+           }
+       }
+    }
+
+  SUBTASK_RETURN (subtask);
+}
+
+bool
+transform_with_libiconv (RECODE_SUBTASK subtask)
+{
+  RECODE_CONST_STEP step = subtask->step;
+  iconv_t conversion = iconv_open (step->after->name, step->before->name);
+  bool status;
+
+  if (conversion == (iconv_t) -1)
+    {
+      SET_SUBTASK_ERROR (RECODE_SYSTEM_ERROR, subtask);
+      SUBTASK_RETURN (subtask);
+    }
+
+  status = wrapped_transform (conversion, subtask);
+  iconv_close (conversion);
+  return status;
+}
+
+/*---------------------------------------------------------.
+| Declare all character sets which `libiconv' may handle.  |
+`---------------------------------------------------------*/
+
+bool
+module_libiconv (RECODE_OUTER outer)
+{
+  const char **cursor;
+
+  for (cursor = iconv_name_list; *cursor; cursor++)
+    {
+      const char **aliases = cursor;
+      const char *charset_name = *cursor;
+
+      /* Scan aliases for some charset which would already be known.  If any,
+        use its official name as a charset.  Else, use the first alias.  */
+
+      while (*cursor)
+       {
+         RECODE_SYMBOL symbol
+           = find_symbol (outer, *cursor, SYMBOL_FIND_AS_CHARSET);
+
+         if (symbol)
+           {
+             charset_name = symbol->charset->name;
+             break;
+           }
+         cursor++;
+       }
+
+      if (!declare_libiconv (outer, charset_name))
+       return false;
+
+      /* Declare all aliases, given they bring something we do not already
+        know.  Even then, we still declare too many useless aliases, as the
+        desambiguating tables are not recomputed as we go.  FIXME!  */
+
+      for (cursor = aliases; *cursor; cursor++)
+       {
+         RECODE_SYMBOL symbol
+           = find_symbol (outer, *cursor, SYMBOL_FIND_AS_CHARSET);
+
+         /* If there is a charset contradiction, call declare_alias
+            nevertheless, as the error processing will occur there.  */
+         if (!symbol || symbol->charset->name != charset_name)
+           if (!declare_alias (outer, *cursor, charset_name))
+             return false;
+       }
+    }
+
+  return true;
+}
diff --git a/src/libiconv.h b/src/libiconv.h
new file mode 100644 (file)
index 0000000..ad9737c
--- /dev/null
@@ -0,0 +1,333 @@
+/* DO NOT MODIFY THIS FILE!  It was generated by `recode/doc/tables.py'.  */
+
+/* Conversion of files between different charsets and surfaces.
+   Copyright © 1999 Free Software Foundation, Inc.
+   Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
+
+   The `recode' Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License
+   as published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The `recode' Library is distributed in the hope that it will be
+   useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the `recode' Library; see the file `COPYING.LIB'.
+   If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+   Suite 330, Boston, MA 02111-1307, USA.  */
+
+/* This is derived from Bruno Haible's `libiconv' package.  */
+static const char *iconv_name_list[350] =
+  {
+    "US-ASCII",
+       "ASCII",
+       "ISO646-US",
+       "ISO_646.IRV:1991",
+       "ISO-IR-6",
+       "ANSI_X3.4-1968",
+       "CP367",
+       "IBM367",
+       "US",
+       "CSASCII", NULL,
+
+    /* General multi-byte encodings.  */
+
+    "UTF-8", NULL,
+    "UCS-2",
+       "ISO-10646-UCS-2",
+       "CSUNICODE", NULL,
+    "UCS-4",
+       "ISO-10646-UCS-4",
+       "CSUCS4", NULL,
+    "UTF-16", NULL,
+    "UTF-7",
+       "UNICODE-1-1-UTF-7",
+       "CSUNICODE11UTF7", NULL,
+    "UCS-2-INTERNAL", NULL,
+    "UCS-2-SWAPPED", NULL,
+    "UCS-2-BE",
+       "UNICODEBIG", NULL,
+    "UCS-2-LE",
+       "UNICODELITTLE", NULL,
+    "UCS-4-INTERNAL", NULL,
+    "UCS-4-SWAPPED", NULL,
+    "UCS-4-BE", NULL,
+    "UCS-4-LE", NULL,
+    "JAVA", NULL,
+
+    /* Standard 8-bit encodings.  */
+
+    "ISO-8859-1",
+       "ISO_8859-1",
+       "ISO_8859-1:1987",
+       "ISO-IR-100",
+       "CP819",
+       "IBM819",
+       "LATIN1",
+       "L1",
+       "CSISOLATIN1", NULL,
+    "ISO-8859-2",
+       "ISO_8859-2",
+       "ISO_8859-2:1987",
+       "ISO-IR-101",
+       "LATIN2",
+       "L2",
+       "CSISOLATIN2", NULL,
+    "ISO-8859-3",
+       "ISO_8859-3",
+       "ISO_8859-3:1988",
+       "ISO-IR-109",
+       "LATIN3",
+       "L3",
+       "CSISOLATIN3", NULL,
+    "ISO-8859-4",
+       "ISO_8859-4",
+       "ISO_8859-4:1988",
+       "ISO-IR-110",
+       "LATIN4",
+       "L4",
+       "CSISOLATIN4", NULL,
+    "ISO-8859-5",
+       "ISO_8859-5",
+       "ISO_8859-5:1988",
+       "ISO-IR-144",
+       "CYRILLIC",
+       "CSISOLATINCYRILLIC", NULL,
+    "ISO-8859-6",
+       "ISO_8859-6",
+       "ISO_8859-6:1987",
+       "ISO-IR-127",
+       "ECMA-114",
+       "ASMO-708",
+       "ARABIC",
+       "CSISOLATINARABIC", NULL,
+    "ISO-8859-7",
+       "ISO_8859-7",
+       "ISO_8859-7:1987",
+       "ISO-IR-126",
+       "ECMA-118",
+       "ELOT_928",
+       "GREEK8",
+       "GREEK",
+       "CSISOLATINGREEK", NULL,
+    "ISO-8859-8",
+       "ISO_8859-8",
+       "ISO_8859-8:1988",
+       "ISO-IR-138",
+       "HEBREW",
+       "CSISOLATINHEBREW", NULL,
+    "ISO-8859-9",
+       "ISO_8859-9",
+       "ISO_8859-9:1989",
+       "ISO-IR-148",
+       "LATIN5",
+       "L5",
+       "CSISOLATIN5", NULL,
+    "ISO-8859-10",
+       "ISO_8859-10",
+       "ISO_8859-10:1992",
+       "ISO-IR-157",
+       "LATIN6",
+       "L6",
+       "CSISOLATIN6", NULL,
+    "ISO-8859-13",
+       "ISO_8859-13",
+       "ISO-IR-179",
+       "LATIN7",
+       "L7", NULL,
+    "ISO-8859-14",
+       "ISO_8859-14",
+       "ISO_8859-14:1998",
+       "LATIN8",
+       "L8", NULL,
+    "ISO-8859-15",
+       "ISO_8859-15",
+       "ISO_8859-15:1998", NULL,
+    "KOI8-R",
+       "CSKOI8R", NULL,
+    "KOI8-U", NULL,
+    "KOI8-RU", NULL,
+
+    /* Windows 8-bit encodings.  */
+
+    "CP1250",
+       "WINDOWS-1250",
+       "MS-EE", NULL,
+    "CP1251",
+       "WINDOWS-1251",
+       "MS-CYRL", NULL,
+    "CP1252",
+       "WINDOWS-1252",
+       "MS-ANSI", NULL,
+    "CP1253",
+       "WINDOWS-1253",
+       "MS-GREEK", NULL,
+    "CP1254",
+       "WINDOWS-1254",
+       "MS-TURK", NULL,
+    "CP1255",
+       "WINDOWS-1255",
+       "MS-HEBR", NULL,
+    "CP1256",
+       "WINDOWS-1256",
+       "MS-ARAB", NULL,
+    "CP1257",
+       "WINDOWS-1257",
+       "WINBALTRIM", NULL,
+    "CP1258",
+       "WINDOWS-1258", NULL,
+
+    /* DOS 8-bit encodings.  */
+
+    "CP850",
+       "IBM850",
+       "850",
+       "CSPC850MULTILINGUAL", NULL,
+    "CP866",
+       "IBM866",
+       "866",
+       "CSIBM866", NULL,
+
+    /* Macintosh 8-bit encodings.  */
+
+    "MacRoman",
+       "Macintosh", NULL,
+    "MacCentralEurope", NULL,
+    "MacIceland", NULL,
+    "MacCroatian", NULL,
+    "MacRomania", NULL,
+    "MacCyrillic", NULL,
+    "MacUkraine", NULL,
+    "MacGreek", NULL,
+    "MacTurkish", NULL,
+    "MacHebrew", NULL,
+    "MacArabic", NULL,
+    "MacThai", NULL,
+
+    /* Other platform specific 8-bit encodings.  */
+
+    "HP-ROMAN8",
+       "ROMAN8",
+       "R8",
+       "CSHPROMAN8", NULL,
+    "NEXTSTEP", NULL,
+
+    /* Regional 8-bit encodings used for a single language.  */
+
+    "ARMSCII-8", NULL,
+    "Georgian-Academy", NULL,
+    "Georgian-PS", NULL,
+    "MuleLao-1", NULL,
+    "CP1133",
+       "IBM-CP1133", NULL,
+    "TIS-620",
+       "TIS620",
+       "TIS620-0",
+       "TIS620.2529-1",
+       "TIS620.2533-0",
+       "TIS620.2533-1",
+       "ISO-IR-166", NULL,
+    "CP874",
+       "WINDOWS-874", NULL,
+    "VISCII",
+       "VISCII1.1-1",
+       "CSVISCII", NULL,
+    "TCVN",
+       "TCVN-5712",
+       "TCVN5712-1",
+       "TCVN5712-1:1993", NULL,
+
+    /* CJK character sets.  */
+
+    "JIS_X0201",
+       "JISX0201-1976",
+       "JISX0201.1976-0",
+       "X0201",
+       "CSHALFWIDTHKATAKANA", NULL,
+    "JIS_X0208",
+       "JIS_X0208.1983-0",
+       "JIS_X0208.1983-1",
+       "JIS_X0208-1983",
+       "JIS_X0208-1990",
+       "JIS0208", NULL,
+    "JIS_X0212",
+       "JIS_X0212.1990-0",
+       "JIS_X0212-1990",
+       "X0212",
+       "ISO-IR-159",
+       "CSISO159JISX02121990", NULL,
+    "KSC_5601",
+       "KSC5601.1987-0",
+       "KS_C_5601-1987",
+       "KS_C_5601-1989",
+       "ISO-IR-149",
+       "CSKSC56011987",
+       "KOREAN",
+       "CP949", NULL,
+
+    /* CJK encodings.  */
+
+    "EUC-JP",
+       "EUCJP",
+       "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
+       "CSEUCPKDFMTJAPANESE", NULL,
+    "SJIS",
+       "SHIFT_JIS",
+       "SHIFT-JIS",
+       "MS_KANJI",
+       "CSSHIFTJIS", NULL,
+    "CP932", NULL,
+    "ISO-2022-JP",
+       "CSISO2022JP", NULL,
+    "ISO-2022-JP-1", NULL,
+    "ISO-2022-JP-2",
+       "CSISO2022JP2", NULL,
+    "EUC-CN",
+       "EUCCN",
+       "GB2312",
+       "CSGB2312", NULL,
+    "GBK",
+       "CP936", NULL,
+    "ISO-2022-CN",
+       "CSISO2022CN", NULL,
+    "ISO-2022-CN-EXT", NULL,
+    "HZ",
+       "HZ-GB-2312", NULL,
+    "EUC-TW",
+       "EUCTW",
+       "CSEUCTW", NULL,
+    "BIG5",
+       "BIG-5",
+       "BIG-FIVE",
+       "BIGFIVE",
+       "CSBIG5", NULL,
+    "CP950", NULL,
+    "EUC-KR",
+       "EUCKR",
+       "CSEUCKR", NULL,
+    "JOHAB",
+       "CP1361", NULL,
+    "ISO-2022-KR",
+       "CSISO2022KR", NULL,
+    NULL
+  };
+
+typedef void *iconv_t;
+#ifndef EILSEQ
+# define EILSEQ EINVAL
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+iconv_t iconv_open (const char *, const char *);
+size_t iconv (iconv_t, const char **, size_t *, char **, size_t *);
+extern int iconv_close (iconv_t cd);
+
+#ifdef __cplusplus
+}
+#endif
index 6223f00342f8e95367ad3aa82c15b62ee9bbe31d..ec6d89e00a14a70e45501ef32354bdce6b3bcc6f 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -25,98 +24,98 @@ Braces                      [ \t]*(\{\})?
 
 %%
 
-\\"#"                          { PUT_NON_DIACRITIC_BYTE ('#', task); }
-\\"$"                          { PUT_NON_DIACRITIC_BYTE ('$', task); }
-\\"%"                          { PUT_NON_DIACRITIC_BYTE ('%', task); }
-\\"&"                          { PUT_NON_DIACRITIC_BYTE ('&', task); }
-\\"_"                          { PUT_NON_DIACRITIC_BYTE ('_', task); }
-\\"{"                          { PUT_NON_DIACRITIC_BYTE ('{', task); }
-\\"}"                          { PUT_NON_DIACRITIC_BYTE ('}', task); }
+\\"#"                          { PUT_NON_DIACRITIC_BYTE ('#', subtask); }
+\\"$"                          { PUT_NON_DIACRITIC_BYTE ('$', subtask); }
+\\"%"                          { PUT_NON_DIACRITIC_BYTE ('%', subtask); }
+\\"&"                          { PUT_NON_DIACRITIC_BYTE ('&', subtask); }
+\\"_"                          { PUT_NON_DIACRITIC_BYTE ('_', subtask); }
+\\"{"                          { PUT_NON_DIACRITIC_BYTE ('{', subtask); }
+\\"}"                          { PUT_NON_DIACRITIC_BYTE ('}', subtask); }
 
-\\backslash{Braces}            { PUT_NON_DIACRITIC_BYTE ('\\', task); }
+\\backslash{Braces}            { PUT_NON_DIACRITIC_BYTE ('\\', subtask); }
 
-"~"                            { PUT_NON_DIACRITIC_BYTE (160, task); }
-"!`"                           { PUT_NON_DIACRITIC_BYTE (161, task); }
-\\pound{Braces}                        { PUT_NON_DIACRITIC_BYTE (163, task); }
-\\S{Braces}                    { PUT_NON_DIACRITIC_BYTE (167, task); }
-\\\"                           { PUT_NON_DIACRITIC_BYTE (168, task); }
-\\copyright{Braces}            { PUT_NON_DIACRITIC_BYTE (169, task); }
-"``"                           { PUT_NON_DIACRITIC_BYTE (171, task); }
-\\neg{Braces}                  { PUT_NON_DIACRITIC_BYTE (172, task); }
-\\"-"                          { PUT_NON_DIACRITIC_BYTE (173, task); }
-\\mbox"{$^\\circ$}"            { PUT_NON_DIACRITIC_BYTE (176, task); }
-\\mbox"{$\\pm$}"               { PUT_NON_DIACRITIC_BYTE (177, task); }
-\\mbox"{$^2$}"                 { PUT_NON_DIACRITIC_BYTE (178, task); }
-\\mbox"{$^3$}"                 { PUT_NON_DIACRITIC_BYTE (179, task); }
-\\"'"                          { PUT_NON_DIACRITIC_BYTE (180, task); }
-\\mbox"{$\\mu$}"               { PUT_NON_DIACRITIC_BYTE (181, task); }
-\\cdotp                                { PUT_NON_DIACRITIC_BYTE (183, task); }
-\\","                          { PUT_NON_DIACRITIC_BYTE (184, task); }
-\\mbox"{$^1$}"                 { PUT_NON_DIACRITIC_BYTE (185, task); }
-"''"                           { PUT_NON_DIACRITIC_BYTE (187, task); }
-\\frac"1/4"{Braces}            { PUT_NON_DIACRITIC_BYTE (188, task); }
-\\frac"1/2"{Braces}            { PUT_NON_DIACRITIC_BYTE (189, task); }
-\\frac"3/4"{Braces}            { PUT_NON_DIACRITIC_BYTE (190, task); }
-"?`"                           { PUT_NON_DIACRITIC_BYTE (191, task); }
+"~"                            { PUT_NON_DIACRITIC_BYTE (160, subtask); }
+"!`"                           { PUT_NON_DIACRITIC_BYTE (161, subtask); }
+\\pound{Braces}                        { PUT_NON_DIACRITIC_BYTE (163, subtask); }
+\\S{Braces}                    { PUT_NON_DIACRITIC_BYTE (167, subtask); }
+\\\"                           { PUT_NON_DIACRITIC_BYTE (168, subtask); }
+\\copyright{Braces}            { PUT_NON_DIACRITIC_BYTE (169, subtask); }
+"``"                           { PUT_NON_DIACRITIC_BYTE (171, subtask); }
+\\neg{Braces}                  { PUT_NON_DIACRITIC_BYTE (172, subtask); }
+\\"-"                          { PUT_NON_DIACRITIC_BYTE (173, subtask); }
+\\mbox"{$^\\circ$}"            { PUT_NON_DIACRITIC_BYTE (176, subtask); }
+\\mbox"{$\\pm$}"               { PUT_NON_DIACRITIC_BYTE (177, subtask); }
+\\mbox"{$^2$}"                 { PUT_NON_DIACRITIC_BYTE (178, subtask); }
+\\mbox"{$^3$}"                 { PUT_NON_DIACRITIC_BYTE (179, subtask); }
+\\"'"                          { PUT_NON_DIACRITIC_BYTE (180, subtask); }
+\\mbox"{$\\mu$}"               { PUT_NON_DIACRITIC_BYTE (181, subtask); }
+\\cdotp                                { PUT_NON_DIACRITIC_BYTE (183, subtask); }
+\\","                          { PUT_NON_DIACRITIC_BYTE (184, subtask); }
+\\mbox"{$^1$}"                 { PUT_NON_DIACRITIC_BYTE (185, subtask); }
+"''"                           { PUT_NON_DIACRITIC_BYTE (187, subtask); }
+\\frac"1/4"{Braces}            { PUT_NON_DIACRITIC_BYTE (188, subtask); }
+\\frac"1/2"{Braces}            { PUT_NON_DIACRITIC_BYTE (189, subtask); }
+\\frac"3/4"{Braces}            { PUT_NON_DIACRITIC_BYTE (190, subtask); }
+"?`"                           { PUT_NON_DIACRITIC_BYTE (191, subtask); }
 
-\\"`"A|\\"`{A}"                        { put_byte (192, task); }
-\\"'"A|\\"'{A}"                        { put_byte (193, task); }
-\\"^"A|\\"^{A}"                        { put_byte (194, task); }
-\\"~"A|\\"~{A}"                        { put_byte (195, task); }
-\\\"A|\\\""{A}"                        { put_byte (196, task); }
-\\AA{Braces}                   { put_byte (197, task); }
-\\AE{Braces}                   { put_byte (198, task); }
-\\c[ \t]+C|\\c"{C}"            { put_byte (199, task); }
-\\"`"E|\\"`{E}"                        { put_byte (200, task); }
-\\"'"E|\\"'{E}"                        { put_byte (201, task); }
-\\"^"E|\\"^{E}"                        { put_byte (202, task); }
-\\\"E|\\\""{E}"                        { put_byte (203, task); }
-\\"`"I|\\"`{I}"                        { put_byte (204, task); }
-\\"'"I|\\"'{I}"                        { put_byte (205, task); }
-\\"^"I|\\"^{I}"                        { put_byte (206, task); }
-\\\"I|\\\""{I}"                        { put_byte (207, task); }
-\\"~"N|\\"~{N}"                        { put_byte (209, task); }
-\\"`"O|\\"`{O}"                        { put_byte (210, task); }
-\\"'"O|\\"'{O}"                        { put_byte (211, task); }
-\\"^"O|\\"^{O}"                        { put_byte (212, task); }
-\\"~"O|\\"~{O}"                        { put_byte (213, task); }
-\\\"O|\\\""{O}"                        { put_byte (214, task); }
-\\O{Braces}                    { put_byte (216, task); }
-\\"`"U|\\"`{U}"                        { put_byte (217, task); }
-\\"'"U|\\"'{U}"                        { put_byte (218, task); }
-\\"^"U|\\"^{U}"                        { put_byte (219, task); }
-\\\"U|\\\""{U}"                        { put_byte (220, task); }
-\\"'"Y|\\"'{Y}"                        { put_byte (221, task); }
-\\ss{Braces}                   { put_byte (223, task); }
-\\"`"a|\\"`{a}"                        { put_byte (224, task); }
-\\"'"a|\\"'{a}"                        { put_byte (225, task); }
-\\"^"a|\\"^{a}"                        { put_byte (226, task); }
-\\"~"a|\\"~{a}"                        { put_byte (227, task); }
-\\\"a|\\\""{a}"                        { put_byte (228, task); }
-\\aa{Braces}                   { put_byte (229, task); }
-\\ae{Braces}                   { put_byte (230, task); }
-\\c[ \t]+c|\\c"{c}"            { put_byte (231, task); }
-\\"`"e|\\"`{e}"                        { put_byte (232, task); }
-\\"'"e|\\"'{e}"                        { put_byte (233, task); }
-\\"^"e|\\"^{e}"                        { put_byte (234, task); }
-\\\"e|\\\""{e}"                        { put_byte (235, task); }
-\\"`"\\i{Braces}|\\"`{\\i}"    { put_byte (236, task); }
-\\"'"\\i{Braces}|\\"'{\\i}"    { put_byte (237, task); }
-\\"^"\\i{Braces}|\\"^{\\i}"    { put_byte (238, task); }
-\\\"\\i{Braces}|\\\""{\\i}"    { put_byte (239, task); }
-\\"~"n|\\"~{n}"                        { put_byte (241, task); }
-\\"`"o|\\"`{o}"                        { put_byte (242, task); }
-\\"'"o|\\"'{o}"                        { put_byte (243, task); }
-\\"^"o|\\"^{o}"                        { put_byte (244, task); }
-\\"~"o|\\"~{o}"                        { put_byte (245, task); }
-\\\"o|\\\""{o}"                        { put_byte (246, task); }
-\\o{Braces}                    { put_byte (248, task); }
-\\"`"u|\\"`{u}"                        { put_byte (249, task); }
-\\"'"u|\\"'{u}"                        { put_byte (250, task); }
-\\"^"u|\\"^{u}"                        { put_byte (251, task); }
-\\\"u|\\\""{u}"                        { put_byte (252, task); }
-\\"'"y|\\"'{y}"                        { put_byte (253, task); }
-\\\"y|\\\""{y}"                        { put_byte (255, task); }
+\\"`"A|\\"`{A}"                        { put_byte (192, subtask); }
+\\"'"A|\\"'{A}"                        { put_byte (193, subtask); }
+\\"^"A|\\"^{A}"                        { put_byte (194, subtask); }
+\\"~"A|\\"~{A}"                        { put_byte (195, subtask); }
+\\\"A|\\\""{A}"                        { put_byte (196, subtask); }
+\\AA{Braces}                   { put_byte (197, subtask); }
+\\AE{Braces}                   { put_byte (198, subtask); }
+\\c[ \t]+C|\\c"{C}"            { put_byte (199, subtask); }
+\\"`"E|\\"`{E}"                        { put_byte (200, subtask); }
+\\"'"E|\\"'{E}"                        { put_byte (201, subtask); }
+\\"^"E|\\"^{E}"                        { put_byte (202, subtask); }
+\\\"E|\\\""{E}"                        { put_byte (203, subtask); }
+\\"`"I|\\"`{I}"                        { put_byte (204, subtask); }
+\\"'"I|\\"'{I}"                        { put_byte (205, subtask); }
+\\"^"I|\\"^{I}"                        { put_byte (206, subtask); }
+\\\"I|\\\""{I}"                        { put_byte (207, subtask); }
+\\"~"N|\\"~{N}"                        { put_byte (209, subtask); }
+\\"`"O|\\"`{O}"                        { put_byte (210, subtask); }
+\\"'"O|\\"'{O}"                        { put_byte (211, subtask); }
+\\"^"O|\\"^{O}"                        { put_byte (212, subtask); }
+\\"~"O|\\"~{O}"                        { put_byte (213, subtask); }
+\\\"O|\\\""{O}"                        { put_byte (214, subtask); }
+\\O{Braces}                    { put_byte (216, subtask); }
+\\"`"U|\\"`{U}"                        { put_byte (217, subtask); }
+\\"'"U|\\"'{U}"                        { put_byte (218, subtask); }
+\\"^"U|\\"^{U}"                        { put_byte (219, subtask); }
+\\\"U|\\\""{U}"                        { put_byte (220, subtask); }
+\\"'"Y|\\"'{Y}"                        { put_byte (221, subtask); }
+\\ss{Braces}                   { put_byte (223, subtask); }
+\\"`"a|\\"`{a}"                        { put_byte (224, subtask); }
+\\"'"a|\\"'{a}"                        { put_byte (225, subtask); }
+\\"^"a|\\"^{a}"                        { put_byte (226, subtask); }
+\\"~"a|\\"~{a}"                        { put_byte (227, subtask); }
+\\\"a|\\\""{a}"                        { put_byte (228, subtask); }
+\\aa{Braces}                   { put_byte (229, subtask); }
+\\ae{Braces}                   { put_byte (230, subtask); }
+\\c[ \t]+c|\\c"{c}"            { put_byte (231, subtask); }
+\\"`"e|\\"`{e}"                        { put_byte (232, subtask); }
+\\"'"e|\\"'{e}"                        { put_byte (233, subtask); }
+\\"^"e|\\"^{e}"                        { put_byte (234, subtask); }
+\\\"e|\\\""{e}"                        { put_byte (235, subtask); }
+\\"`"\\i{Braces}|\\"`{\\i}"    { put_byte (236, subtask); }
+\\"'"\\i{Braces}|\\"'{\\i}"    { put_byte (237, subtask); }
+\\"^"\\i{Braces}|\\"^{\\i}"    { put_byte (238, subtask); }
+\\\"\\i{Braces}|\\\""{\\i}"    { put_byte (239, subtask); }
+\\"~"n|\\"~{n}"                        { put_byte (241, subtask); }
+\\"`"o|\\"`{o}"                        { put_byte (242, subtask); }
+\\"'"o|\\"'{o}"                        { put_byte (243, subtask); }
+\\"^"o|\\"^{o}"                        { put_byte (244, subtask); }
+\\"~"o|\\"~{o}"                        { put_byte (245, subtask); }
+\\\"o|\\\""{o}"                        { put_byte (246, subtask); }
+\\o{Braces}                    { put_byte (248, subtask); }
+\\"`"u|\\"`{u}"                        { put_byte (249, subtask); }
+\\"'"u|\\"'{u}"                        { put_byte (250, subtask); }
+\\"^"u|\\"^{u}"                        { put_byte (251, subtask); }
+\\\"u|\\\""{u}"                        { put_byte (252, subtask); }
+\\"'"y|\\"'{y}"                        { put_byte (253, subtask); }
+\\\"y|\\\""{y}"                        { put_byte (255, subtask); }
 
 \\[`'^"]\\i{Letter}*{Braces}   { ECHO; }
 \\{Letter}+{Braces}            { ECHO; }
index 082e70d076647c925f70d5a6f76802e769e49178..a8def107af870eed9c8cd931c4ef675afe9e6c45 100644 (file)
@@ -641,6 +641,8 @@ Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"),
   /* Register all modules and build internal tables.  */
 
   outer = recode_new_outer (true);
+  if (!outer)
+    abort ();
 
   if (freeze_tables)
     {
index ccc7e4586b56277474fdee83930931de73740b25..ae5daf73cf2b35f23a8d7d4353162254f170cecf 100644 (file)
@@ -787,7 +787,7 @@ char *yytext;
 /* This file is generated automatically by `mergelex.py'.  */
 #include "common.h"
 static RECODE_CONST_REQUEST request;
-static RECODE_TASK task;
+static RECODE_SUBTASK subtask;
 #define ascii_latin1 1
 
 #define latex_latin1 2
@@ -1037,585 +1037,585 @@ case YY_STATE_EOF(texte_latin1):
 
 case 1:
 YY_RULE_SETUP
-{ put_byte (171, task); }
+{ put_byte (171, subtask); }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-{ put_byte (187, task); }
+{ put_byte (187, subtask); }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-{ put_byte (192, task); }
+{ put_byte (192, subtask); }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-{ put_byte (193, task); }
+{ put_byte (193, subtask); }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-{ put_byte (194, task); }
+{ put_byte (194, subtask); }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-{ put_byte (195, task); }
+{ put_byte (195, subtask); }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-{ put_byte (196, task); }
+{ put_byte (196, subtask); }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-{ put_byte (199, task); }
+{ put_byte (199, subtask); }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-{ put_byte (200, task); }
+{ put_byte (200, subtask); }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-{ put_byte (201, task); }
+{ put_byte (201, subtask); }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-{ put_byte (202, task); }
+{ put_byte (202, subtask); }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-{ put_byte (203, task); }
+{ put_byte (203, subtask); }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-{ put_byte (204, task); }
+{ put_byte (204, subtask); }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-{ put_byte (205, task); }
+{ put_byte (205, subtask); }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-{ put_byte (206, task); }
+{ put_byte (206, subtask); }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-{ put_byte (207, task); }
+{ put_byte (207, subtask); }
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-{ put_byte (209, task); }
+{ put_byte (209, subtask); }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-{ put_byte (210, task); }
+{ put_byte (210, subtask); }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-{ put_byte (211, task); }
+{ put_byte (211, subtask); }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-{ put_byte (212, task); }
+{ put_byte (212, subtask); }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-{ put_byte (213, task); }
+{ put_byte (213, subtask); }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-{ put_byte (214, task); }
+{ put_byte (214, subtask); }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-{ put_byte (216, task); }
+{ put_byte (216, subtask); }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-{ put_byte (217, task); }
+{ put_byte (217, subtask); }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-{ put_byte (218, task); }
+{ put_byte (218, subtask); }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-{ put_byte (219, task); }
+{ put_byte (219, subtask); }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-{ put_byte (220, task); }
+{ put_byte (220, subtask); }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-{ put_byte (221, task); }
+{ put_byte (221, subtask); }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-{ put_byte (223, task); }
+{ put_byte (223, subtask); }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-{ put_byte (224, task); }
+{ put_byte (224, subtask); }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-{ put_byte (225, task); }
+{ put_byte (225, subtask); }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-{ put_byte (226, task); }
+{ put_byte (226, subtask); }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-{ put_byte (227, task); }
+{ put_byte (227, subtask); }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-{ put_byte (228, task); }
+{ put_byte (228, subtask); }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-{ put_byte (231, task); }
+{ put_byte (231, subtask); }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-{ put_byte (232, task); }
+{ put_byte (232, subtask); }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-{ put_byte (233, task); }
+{ put_byte (233, subtask); }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-{ put_byte (234, task); }
+{ put_byte (234, subtask); }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-{ put_byte (235, task); }
+{ put_byte (235, subtask); }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-{ put_byte (236, task); }
+{ put_byte (236, subtask); }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-{ put_byte (237, task); }
+{ put_byte (237, subtask); }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-{ put_byte (238, task); }
+{ put_byte (238, subtask); }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-{ put_byte (239, task); }
+{ put_byte (239, subtask); }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-{ put_byte (241, task); }
+{ put_byte (241, subtask); }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-{ put_byte (242, task); }
+{ put_byte (242, subtask); }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-{ put_byte (243, task); }
+{ put_byte (243, subtask); }
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-{ put_byte (244, task); }
+{ put_byte (244, subtask); }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-{ put_byte (245, task); }
+{ put_byte (245, subtask); }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-{ put_byte (246, task); }
+{ put_byte (246, subtask); }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-{ put_byte (248, task); }
+{ put_byte (248, subtask); }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-{ put_byte (249, task); }
+{ put_byte (249, subtask); }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-{ put_byte (250, task); }
+{ put_byte (250, subtask); }
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-{ put_byte (251, task); }
+{ put_byte (251, subtask); }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-{ put_byte (252, task); }
+{ put_byte (252, subtask); }
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-{ put_byte (253, task); }
+{ put_byte (253, subtask); }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-{ put_byte (255, task); }
+{ put_byte (255, subtask); }
        YY_BREAK
 
 
 case 57:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('#', task); }
+{ PUT_NON_DIACRITIC_BYTE ('#', subtask); }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('$', task); }
+{ PUT_NON_DIACRITIC_BYTE ('$', subtask); }
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('%', task); }
+{ PUT_NON_DIACRITIC_BYTE ('%', subtask); }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('&', task); }
+{ PUT_NON_DIACRITIC_BYTE ('&', subtask); }
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('_', task); }
+{ PUT_NON_DIACRITIC_BYTE ('_', subtask); }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('{', task); }
+{ PUT_NON_DIACRITIC_BYTE ('{', subtask); }
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('}', task); }
+{ PUT_NON_DIACRITIC_BYTE ('}', subtask); }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE ('\\', task); }
+{ PUT_NON_DIACRITIC_BYTE ('\\', subtask); }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (160, task); }
+{ PUT_NON_DIACRITIC_BYTE (160, subtask); }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (161, task); }
+{ PUT_NON_DIACRITIC_BYTE (161, subtask); }
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (163, task); }
+{ PUT_NON_DIACRITIC_BYTE (163, subtask); }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (167, task); }
+{ PUT_NON_DIACRITIC_BYTE (167, subtask); }
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (168, task); }
+{ PUT_NON_DIACRITIC_BYTE (168, subtask); }
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (169, task); }
+{ PUT_NON_DIACRITIC_BYTE (169, subtask); }
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (171, task); }
+{ PUT_NON_DIACRITIC_BYTE (171, subtask); }
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (172, task); }
+{ PUT_NON_DIACRITIC_BYTE (172, subtask); }
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (173, task); }
+{ PUT_NON_DIACRITIC_BYTE (173, subtask); }
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (176, task); }
+{ PUT_NON_DIACRITIC_BYTE (176, subtask); }
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (177, task); }
+{ PUT_NON_DIACRITIC_BYTE (177, subtask); }
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (178, task); }
+{ PUT_NON_DIACRITIC_BYTE (178, subtask); }
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (179, task); }
+{ PUT_NON_DIACRITIC_BYTE (179, subtask); }
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (180, task); }
+{ PUT_NON_DIACRITIC_BYTE (180, subtask); }
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (181, task); }
+{ PUT_NON_DIACRITIC_BYTE (181, subtask); }
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (183, task); }
+{ PUT_NON_DIACRITIC_BYTE (183, subtask); }
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (184, task); }
+{ PUT_NON_DIACRITIC_BYTE (184, subtask); }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (185, task); }
+{ PUT_NON_DIACRITIC_BYTE (185, subtask); }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (187, task); }
+{ PUT_NON_DIACRITIC_BYTE (187, subtask); }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (188, task); }
+{ PUT_NON_DIACRITIC_BYTE (188, subtask); }
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (189, task); }
+{ PUT_NON_DIACRITIC_BYTE (189, subtask); }
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (190, task); }
+{ PUT_NON_DIACRITIC_BYTE (190, subtask); }
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-{ PUT_NON_DIACRITIC_BYTE (191, task); }
+{ PUT_NON_DIACRITIC_BYTE (191, subtask); }
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-{ put_byte (192, task); }
+{ put_byte (192, subtask); }
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-{ put_byte (193, task); }
+{ put_byte (193, subtask); }
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-{ put_byte (194, task); }
+{ put_byte (194, subtask); }
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-{ put_byte (195, task); }
+{ put_byte (195, subtask); }
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-{ put_byte (196, task); }
+{ put_byte (196, subtask); }
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-{ put_byte (197, task); }
+{ put_byte (197, subtask); }
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-{ put_byte (198, task); }
+{ put_byte (198, subtask); }
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-{ put_byte (199, task); }
+{ put_byte (199, subtask); }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-{ put_byte (200, task); }
+{ put_byte (200, subtask); }
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-{ put_byte (201, task); }
+{ put_byte (201, subtask); }
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-{ put_byte (202, task); }
+{ put_byte (202, subtask); }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-{ put_byte (203, task); }
+{ put_byte (203, subtask); }
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-{ put_byte (204, task); }
+{ put_byte (204, subtask); }
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-{ put_byte (205, task); }
+{ put_byte (205, subtask); }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-{ put_byte (206, task); }
+{ put_byte (206, subtask); }
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-{ put_byte (207, task); }
+{ put_byte (207, subtask); }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-{ put_byte (209, task); }
+{ put_byte (209, subtask); }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-{ put_byte (210, task); }
+{ put_byte (210, subtask); }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-{ put_byte (211, task); }
+{ put_byte (211, subtask); }
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-{ put_byte (212, task); }
+{ put_byte (212, subtask); }
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-{ put_byte (213, task); }
+{ put_byte (213, subtask); }
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-{ put_byte (214, task); }
+{ put_byte (214, subtask); }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-{ put_byte (216, task); }
+{ put_byte (216, subtask); }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-{ put_byte (217, task); }
+{ put_byte (217, subtask); }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-{ put_byte (218, task); }
+{ put_byte (218, subtask); }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-{ put_byte (219, task); }
+{ put_byte (219, subtask); }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-{ put_byte (220, task); }
+{ put_byte (220, subtask); }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-{ put_byte (221, task); }
+{ put_byte (221, subtask); }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-{ put_byte (223, task); }
+{ put_byte (223, subtask); }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-{ put_byte (224, task); }
+{ put_byte (224, subtask); }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-{ put_byte (225, task); }
+{ put_byte (225, subtask); }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-{ put_byte (226, task); }
+{ put_byte (226, subtask); }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-{ put_byte (227, task); }
+{ put_byte (227, subtask); }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-{ put_byte (228, task); }
+{ put_byte (228, subtask); }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-{ put_byte (229, task); }
+{ put_byte (229, subtask); }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-{ put_byte (230, task); }
+{ put_byte (230, subtask); }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-{ put_byte (231, task); }
+{ put_byte (231, subtask); }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-{ put_byte (232, task); }
+{ put_byte (232, subtask); }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-{ put_byte (233, task); }
+{ put_byte (233, subtask); }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-{ put_byte (234, task); }
+{ put_byte (234, subtask); }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-{ put_byte (235, task); }
+{ put_byte (235, subtask); }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-{ put_byte (236, task); }
+{ put_byte (236, subtask); }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-{ put_byte (237, task); }
+{ put_byte (237, subtask); }
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-{ put_byte (238, task); }
+{ put_byte (238, subtask); }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-{ put_byte (239, task); }
+{ put_byte (239, subtask); }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-{ put_byte (241, task); }
+{ put_byte (241, subtask); }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-{ put_byte (242, task); }
+{ put_byte (242, subtask); }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-{ put_byte (243, task); }
+{ put_byte (243, subtask); }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-{ put_byte (244, task); }
+{ put_byte (244, subtask); }
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-{ put_byte (245, task); }
+{ put_byte (245, subtask); }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-{ put_byte (246, task); }
+{ put_byte (246, subtask); }
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-{ put_byte (248, task); }
+{ put_byte (248, subtask); }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-{ put_byte (249, task); }
+{ put_byte (249, subtask); }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-{ put_byte (250, task); }
+{ put_byte (250, subtask); }
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-{ put_byte (251, task); }
+{ put_byte (251, subtask); }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-{ put_byte (252, task); }
+{ put_byte (252, subtask); }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-{ put_byte (253, task); }
+{ put_byte (253, subtask); }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-{ put_byte (255, task); }
+{ put_byte (255, subtask); }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
@@ -1629,19 +1629,19 @@ YY_RULE_SETUP
 
 case 148:
 YY_RULE_SETUP
-{ put_byte (171, task); }
+{ put_byte (171, subtask); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-{ put_byte (187, task); }
+{ put_byte (187, subtask); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-{ put_byte (192, task); }
+{ put_byte (192, subtask); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-{ put_byte (194, task); }
+{ put_byte (194, subtask); }
        YY_BREAK
 case 152:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1649,18 +1649,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (196, task);
+                           put_byte (196, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-{ put_byte (224, task); }
+{ put_byte (224, subtask); }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-{ put_byte (226, task); }
+{ put_byte (226, subtask); }
        YY_BREAK
 case 155:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1668,7 +1668,7 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (228, task);
+                           put_byte (228, subtask);
                          else
                            ECHO;
                        }
@@ -1678,34 +1678,34 @@ case 156:
 yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-{ put_byte (199, task); }
+{ put_byte (199, subtask); }
        YY_BREAK
 case 157:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
 yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-{ put_byte (231, task); }
+{ put_byte (231, subtask); }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-{ put_byte (200, task); }
+{ put_byte (200, subtask); }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-{ put_byte (201, task); put_byte (187, task); }
+{ put_byte (201, subtask); put_byte (187, subtask); }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-{ put_byte ('E', task); put_byte (187, task); }
+{ put_byte ('E', subtask); put_byte (187, subtask); }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-{ put_byte (201, task); }
+{ put_byte (201, subtask); }
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-{ put_byte (202, task); }
+{ put_byte (202, subtask); }
        YY_BREAK
 case 163:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1713,30 +1713,30 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (203, task);
+                           put_byte (203, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-{ put_byte (232, task); }
+{ put_byte (232, subtask); }
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-{ put_byte (233, task); put_byte (187, task); }
+{ put_byte (233, subtask); put_byte (187, subtask); }
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-{ put_byte ('e', task); put_byte (187, task); }
+{ put_byte ('e', subtask); put_byte (187, subtask); }
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-{ put_byte (233, task); }
+{ put_byte (233, subtask); }
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-{ put_byte (234, task); }
+{ put_byte (234, subtask); }
        YY_BREAK
 case 169:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1744,18 +1744,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (235, task);
+                           put_byte (235, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-{ put_byte (204, task); }
+{ put_byte (204, subtask); }
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-{ put_byte (206, task); }
+{ put_byte (206, subtask); }
        YY_BREAK
 case 172:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1763,18 +1763,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (207, task);
+                           put_byte (207, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-{ put_byte (236, task); }
+{ put_byte (236, subtask); }
        YY_BREAK
 case 174:
 YY_RULE_SETUP
-{ put_byte (238, task); }
+{ put_byte (238, subtask); }
        YY_BREAK
 case 175:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1782,18 +1782,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (239, task);
+                           put_byte (239, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-{ put_byte (210, task); }
+{ put_byte (210, subtask); }
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-{ put_byte (212, task); }
+{ put_byte (212, subtask); }
        YY_BREAK
 case 178:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1801,18 +1801,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (214, task);
+                           put_byte (214, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 179:
 YY_RULE_SETUP
-{ put_byte (242, task); }
+{ put_byte (242, subtask); }
        YY_BREAK
 case 180:
 YY_RULE_SETUP
-{ put_byte (244, task); }
+{ put_byte (244, subtask); }
        YY_BREAK
 case 181:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1820,18 +1820,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (246, task);
+                           put_byte (246, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-{ put_byte (217, task); }
+{ put_byte (217, subtask); }
        YY_BREAK
 case 183:
 YY_RULE_SETUP
-{ put_byte (219, task); }
+{ put_byte (219, subtask); }
        YY_BREAK
 case 184:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1839,18 +1839,18 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (220, task);
+                           put_byte (220, subtask);
                          else
                            ECHO;
                        }
        YY_BREAK
 case 185:
 YY_RULE_SETUP
-{ put_byte (249, task); }
+{ put_byte (249, subtask); }
        YY_BREAK
 case 186:
 YY_RULE_SETUP
-{ put_byte (251, task); }
+{ put_byte (251, subtask); }
        YY_BREAK
 case 187:
 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
@@ -1858,7 +1858,7 @@ yy_c_buf_p = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
 { if (yytext[1] == request->diaeresis_char)
-                           put_byte (252, task);
+                           put_byte (252, subtask);
                          else
                            ECHO;
                        }
@@ -2858,13 +2858,13 @@ int main()
 
 
 static bool
-transform_ascii_latin1 (RECODE_CONST_STEP step, RECODE_TASK task_argument)
+transform_ascii_latin1 (RECODE_SUBTASK subtask_argument)
 {
-  task = task_argument;
-  request = task->request;
+  subtask = subtask_argument;
+  request = subtask->task->request;
   yy_init = 1;
-  yyin = task->input.file;
-  yyout = task->output.file;
+  yyin = subtask->input.file;
+  yyout = subtask->output.file;
   BEGIN ascii_latin1;
   return yylex ();
 }
@@ -2881,7 +2881,6 @@ module_ascii_latin1 (RECODE_OUTER outer)
 }
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -2901,13 +2900,13 @@ module_ascii_latin1 (RECODE_OUTER outer)
 
 
 static bool
-transform_latex_latin1 (RECODE_CONST_STEP step, RECODE_TASK task_argument)
+transform_latex_latin1 (RECODE_SUBTASK subtask_argument)
 {
-  task = task_argument;
-  request = task->request;
+  subtask = subtask_argument;
+  request = subtask->task->request;
   yy_init = 1;
-  yyin = task->input.file;
-  yyout = task->output.file;
+  yyin = subtask->input.file;
+  yyout = subtask->output.file;
   BEGIN latex_latin1;
   return yylex ();
 }
@@ -2924,7 +2923,6 @@ NULL, transform_latex_latin1)
 }
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1989.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -2944,13 +2942,13 @@ NULL, transform_latex_latin1)
 
 
 static bool
-transform_texte_latin1 (RECODE_CONST_STEP step, RECODE_TASK task_argument)
+transform_texte_latin1 (RECODE_SUBTASK subtask_argument)
 {
-  task = task_argument;
-  request = task->request;
+  subtask = subtask_argument;
+  request = subtask->task->request;
   yy_init = 1;
-  yyin = task->input.file;
-  yyout = task->output.file;
+  yyin = subtask->input.file;
+  yyout = subtask->output.file;
   BEGIN texte_latin1;
   return yylex ();
 }
@@ -2969,23 +2967,23 @@ texte_latin1_diaeresis (void)
               diagnostic in flex.  This astonishing bug has been hard to
               isolate, so I'll leave this comment around for a while.  */
 
-         case 'A': put_byte (196, task); break;
-         case 'E': put_byte (203, task); break;
-         case 'I': put_byte (207, task); break;
-         case 'O': put_byte (214, task); break;
-         case 'U': put_byte (220, task); break;
-         case 'a': put_byte (228, task); break;
-         case 'e': put_byte (235, task); break;
-         case 'i': put_byte (239, task); break;
-         case 'o': put_byte (246, task); break;
-         case 'u': put_byte (252, task); break;
-         case 'y': put_byte (255, task); break;
-         default:  put_byte (yytext[counter], task);
+         case 'A': put_byte (196, subtask); break;
+         case 'E': put_byte (203, subtask); break;
+         case 'I': put_byte (207, subtask); break;
+         case 'O': put_byte (214, subtask); break;
+         case 'U': put_byte (220, subtask); break;
+         case 'a': put_byte (228, subtask); break;
+         case 'e': put_byte (235, subtask); break;
+         case 'i': put_byte (239, subtask); break;
+         case 'o': put_byte (246, subtask); break;
+         case 'u': put_byte (252, subtask); break;
+         case 'y': put_byte (255, subtask); break;
+         default:  put_byte (yytext[counter], subtask);
          }
        counter++;
       }
     else
-      put_byte (yytext[counter], task);
+      put_byte (yytext[counter], subtask);
 }
 
 bool
index 4383b89c6b91fa4210dd48412f09446369abc243..afb481930c44334b2770173f533022d1cdd89645 100644 (file)
@@ -29,7 +29,7 @@ section1 = ["\n"
             "%{\n"
             '#include "common.h"\n'
             "static RECODE_CONST_REQUEST request;\n"
-            "static RECODE_TASK task;\n"
+            "static RECODE_SUBTASK subtask;\n"
             "%}\n"]
 # Flex rules.
 section2 = ["%%\n"
@@ -58,14 +58,13 @@ while 1:
         section3.append(
             '\n'
             'static bool\n'
-            'transform_%s'
-            ' (RECODE_CONST_STEP step, RECODE_TASK task_argument)\n'
+            'transform_%s (RECODE_SUBTASK subtask_argument)\n'
             '{\n'
-            '  task = task_argument;\n'
-            '  request = task->request;\n'
+            '  subtask = subtask_argument;\n'
+            '  request = subtask->task->request;\n'
             '  yy_init = 1;\n'
-            '  yyin = task->input.file;\n'
-            '  yyout = task->output.file;\n'
+            '  yyin = subtask->input.file;\n'
+            '  yyout = subtask->output.file;\n'
             '  BEGIN %s;\n'
             '  return yylex ();\n'
             '}\n'
index 93bcd21b95231602f9919c080cb7329cedb54187..703a86da8bdcd91900dcbf2a0e94b7ecd0a8404e 100644 (file)
 
 struct mixed
 {
-  /* Original task descriptor.  */
-  RECODE_TASK original_task;
-
   /* File names saved from original task.  */
   const char *input_name;
   const char *output_name;
 
-  /* Task where plumbing takes place.  */
-  struct recode_task task;
+  /* Subtask, from input directly to either output or in memory buffer.  */
+  struct recode_subtask subtask;
 
   /* In memory buffer.  */
   struct recode_read_write_text buffer;
@@ -41,9 +38,10 @@ struct mixed
 static bool
 open_mixed (struct mixed *mixed, RECODE_TASK task)
 {
-  mixed->original_task = task;
   mixed->input_name = task->input.name;
   mixed->output_name = task->output.name;
+  task->strategy = RECODE_SEQUENCE_IN_MEMORY;
+  task->byte_order_mark = false;
 
   /* Open both files ourselves.  */
 
@@ -71,9 +69,10 @@ open_mixed (struct mixed *mixed, RECODE_TASK task)
 
   /* Prepare for dynamic plumbing copy.  */
 
-  mixed->task = *task;
-  mixed->task.strategy = RECODE_SEQUENCE_IN_MEMORY;
-  mixed->task.byte_order_mark = false;
+  memset (&mixed->subtask, 0, sizeof (struct recode_subtask));
+  mixed->subtask.task = task;
+  mixed->subtask.input = task->input;
+  mixed->subtask.output = task->output;
   memset (&mixed->buffer, 0, sizeof (struct recode_read_write_text));
 
   return true;
@@ -85,36 +84,37 @@ close_mixed (struct mixed *mixed)
   /* Clean up.  */
 
   if (*(mixed->input_name))
-    fclose (mixed->original_task->input.file);
+    fclose (mixed->subtask.task->input.file);
   if (*(mixed->output_name))
-    fclose (mixed->original_task->output.file);
+    fclose (mixed->subtask.task->output.file);
 }
 
 static inline void
-plumb_input_to_buffer (struct mixed *mixed)
+start_accumulation (struct mixed *mixed)
 {
-  /* Une only after plumb_input_to_output, or after initial state.  */
   mixed->buffer.cursor = mixed->buffer.buffer;
-  mixed->task.output = mixed->buffer;
+  mixed->subtask.output = mixed->buffer;
 }
 
-static inline void
-plumb_buffer_to_output (struct mixed *mixed)
+static inline bool
+recode_accumulated (struct mixed *mixed)
 {
-  /* Use only after plumb_input_to_buffer.  */
-  mixed->buffer = mixed->task.output;
-  mixed->task.output = mixed->original_task->output;
-  mixed->task.input.file = NULL;
-  mixed->task.input.buffer = mixed->buffer.buffer;
-  mixed->task.input.cursor = mixed->buffer.buffer;
-  mixed->task.input.limit = mixed->buffer.cursor;
-}
+  RECODE_TASK task = mixed->subtask.task;
+  struct recode_read_only_text saved_input = task->input;
+  bool status;
 
-static inline void
-plumb_input_to_output (struct mixed *mixed)
-{
-  /* Use only after plumb_buffer_to_output.  */
-  mixed->task.input = mixed->original_task->input;
+  mixed->buffer = mixed->subtask.output;
+
+  task->input.file = NULL;
+  task->input.buffer = mixed->buffer.buffer;
+  task->input.cursor = mixed->buffer.buffer;
+  task->input.limit = mixed->buffer.cursor;
+
+  status = recode_perform_task (task);
+
+  task->input = saved_input;
+  mixed->subtask.output = task->output;
+  return status;
 }
 
 /*-----------------------------------------------------------------------.
@@ -131,15 +131,15 @@ transform_c_source (RECODE_TASK task)
   if (!open_mixed (&mixed, task))
     return false;
 
-  character = get_byte (&mixed.task);
+  character = get_byte (&mixed.subtask);
   while (character != EOF)
     switch (character)
       {
       case '\'':
        /* Skip character constant, while copying it untranslated.  */
 
-       put_byte ('\'', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('\'', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
 
        if (character == EOF)
          {
@@ -149,21 +149,21 @@ transform_c_source (RECODE_TASK task)
 
        if (character == '\\')
          {
-           put_byte ('\\', &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte ('\\', &mixed.subtask);
+           character = get_byte (&mixed.subtask);
            if (character == EOF)
              {
                status = false;
                break;
              }
-           put_byte (character, &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte (character, &mixed.subtask);
+           character = get_byte (&mixed.subtask);
          }
 
        if (character == '\'')
          {
-           put_byte ('\'', &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte ('\'', &mixed.subtask);
+           character = get_byte (&mixed.subtask);
          }
        else
          status = false;
@@ -172,19 +172,18 @@ transform_c_source (RECODE_TASK task)
       case '"':
        /* Copy the string, translated.  */
 
-       put_byte ('"', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('"', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
 
        /* Read in string.  */
 
-       plumb_input_to_buffer (&mixed);
+       start_accumulation (&mixed);
 
        while (true)
          {
            if (character == EOF)
              {
-               plumb_buffer_to_output (&mixed);
-               recode_perform_task (&mixed.task);
+               recode_accumulated (&mixed);
                status = false;
                break;
              }
@@ -193,76 +192,70 @@ transform_c_source (RECODE_TASK task)
 
            if (character == '\\')
              {
-               put_byte ('\\', &mixed.task);
-               character = get_byte (&mixed.task);
+               put_byte ('\\', &mixed.subtask);
+               character = get_byte (&mixed.subtask);
                if (character == EOF)
                  {
-                   plumb_buffer_to_output (&mixed);
-                   recode_perform_task (&mixed.task);
+                   recode_accumulated (&mixed);
                    status = false;
                    break;
                  }
              }
-           put_byte (character, &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte (character, &mixed.subtask);
+           character = get_byte (&mixed.subtask);
          }
        if (character == EOF)
          break;
 
        /* Translate string and dump it.  */
 
-       plumb_buffer_to_output (&mixed);
-       if (!recode_perform_task (&mixed.task))
+       if (!recode_accumulated (&mixed))
          status = false;
-       put_byte ('"', &mixed.task);
-
-       plumb_input_to_output (&mixed);
-       character = get_byte (&mixed.task);
+       put_byte ('"', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        break;
 
       case '/':
-       put_byte ('/', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('/', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character == EOF)
          break;
        if (character == '*')
          {
            /* Copy the comment, translated.  */
 
-           put_byte ('*', &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte ('*', &mixed.subtask);
+           character = get_byte (&mixed.subtask);
 
            /* Read in comment.  */
 
-           plumb_input_to_buffer (&mixed);
+           start_accumulation (&mixed);
            while (true)
              {
                if (character == EOF)
                  {
-                   plumb_buffer_to_output (&mixed);
-                   recode_perform_task (&mixed.task);
+                   recode_accumulated (&mixed);
                    status = false;
                    break;
                  }
                if (character == '*')
                  {
-                   character = get_byte (&mixed.task);
+                   character = get_byte (&mixed.subtask);
                    if (character == EOF)
                      {
-                       plumb_buffer_to_output (&mixed);
-                       recode_perform_task (&mixed.task);
+                       recode_accumulated (&mixed);
                        status = false;
-                       put_byte ('*', &mixed.task);
+                       put_byte ('*', &mixed.subtask);
                        break;
                      }
                    if (character == '/')
                      break;
-                   put_byte ('*', &mixed.task);
+                   put_byte ('*', &mixed.subtask);
                  }
                else
                  {
-                   put_byte (character, &mixed.task);
-                   character = get_byte (&mixed.task);
+                   put_byte (character, &mixed.subtask);
+                   character = get_byte (&mixed.subtask);
                  }
              }
 
@@ -271,20 +264,17 @@ transform_c_source (RECODE_TASK task)
 
            /* Translate comment and dump it.  */
 
-           plumb_buffer_to_output (&mixed);
-           if (!recode_perform_task (&mixed.task))
+           if (!recode_accumulated (&mixed))
              status = false;
-           put_byte ('*', &mixed.task);
-           put_byte ('/', &mixed.task);
-
-           plumb_input_to_output (&mixed);
-           character = get_byte (&mixed.task);
+           put_byte ('*', &mixed.subtask);
+           put_byte ('/', &mixed.subtask);
+           character = get_byte (&mixed.subtask);
          }
        break;
 
       default:
-       put_byte (character, &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte (character, &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        break;
       }
 
@@ -316,40 +306,38 @@ transform_po_source (RECODE_TASK task)
   if (!open_mixed (&mixed, task))
     return false;
 
-  character = get_byte (&mixed.task);
+  character = get_byte (&mixed.subtask);
   while (character != EOF)
     switch (character)
       {
       case '#':
        /* Copy a comment, recoding only those written by translators.  */
 
-       put_byte ('#', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('#', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character == EOF)
          break;
        recode = character == ' ' || character == '\t';
 
        if (recode)
-         plumb_input_to_buffer (&mixed);
+         start_accumulation (&mixed);
 
        while (character != '\n' && character != EOF)
          {
-           put_byte (character, &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte (character, &mixed.subtask);
+           character = get_byte (&mixed.subtask);
          }
 
        if (recode)
          {
-           plumb_buffer_to_output (&mixed);
-           if (!recode_perform_task (&mixed.task))
+           if (!recode_accumulated (&mixed))
              status = false;
-           plumb_input_to_output (&mixed);
          }
 
        if (character == EOF)
          break;
-       put_byte ('\n', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('\n', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        break;
 
       case 'm':
@@ -357,28 +345,28 @@ transform_po_source (RECODE_TASK task)
 
        msgstr = false;
 
-       put_byte ('m', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('m', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character != 's')
          break;
-       put_byte ('s', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('s', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character != 'g')
          break;
-       put_byte ('g', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('g', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character != 's')
          break;
-       put_byte ('s', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('s', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character != 't')
          break;
-       put_byte ('t', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('t', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        if (character != 'r')
          break;
-       put_byte ('r', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('r', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
 
        msgstr = true;
        break;
@@ -386,12 +374,12 @@ transform_po_source (RECODE_TASK task)
       case '"':
        /* Copy the string, translating only the `msgstr' ones.  */
 
-       put_byte ('"', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('"', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        recode = msgstr;
 
        if (recode)
-         plumb_input_to_buffer (&mixed);
+         start_accumulation (&mixed);
 
        while (true)
          {
@@ -399,8 +387,7 @@ transform_po_source (RECODE_TASK task)
              {
                if (recode)
                  {
-                   plumb_buffer_to_output (&mixed);
-                   recode_perform_task (&mixed.task);
+                   recode_accumulated (&mixed);
                    status = false;
                  }
                break;
@@ -410,21 +397,20 @@ transform_po_source (RECODE_TASK task)
 
            if (character == '\\')
              {
-               put_byte ('\\', &mixed.task);
-               character = get_byte (&mixed.task);
+               put_byte ('\\', &mixed.subtask);
+               character = get_byte (&mixed.subtask);
                if (character == EOF)
                  {
                    if (recode)
                      {
-                       plumb_buffer_to_output (&mixed);
-                       recode_perform_task (&mixed.task);
+                       recode_accumulated (&mixed);
                        status = false;
                      }
                    break;
                  }
              }
-           put_byte (character, &mixed.task);
-           character = get_byte (&mixed.task);
+           put_byte (character, &mixed.subtask);
+           character = get_byte (&mixed.subtask);
          }
 
        if (character == EOF)
@@ -432,19 +418,17 @@ transform_po_source (RECODE_TASK task)
 
        if (recode)
          {
-           plumb_buffer_to_output (&mixed);
-           if (!recode_perform_task (&mixed.task))
+           if (!recode_accumulated (&mixed))
              status = false;
-           plumb_input_to_output (&mixed);
          }
 
-       put_byte ('"', &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte ('"', &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        break;
 
       default:
-       put_byte (character, &mixed.task);
-       character = get_byte (&mixed.task);
+       put_byte (character, &mixed.subtask);
+       character = get_byte (&mixed.subtask);
        break;
       }
 
index 5e904b00cbcbc8757b19bf31f669de7933219bf3..7db9d9fe0e8b9e3f3e7f69c423bb2376e6300d22 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1997, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
 #include "common.h"
 
 static bool
-transform_latin_mule (RECODE_CONST_STEP step, RECODE_TASK task,
+transform_latin_mule (RECODE_SUBTASK subtask,
                      unsigned prefix)
 {
   int character;
 
-  while (character = get_byte (task), character != EOF)
+  while (character = get_byte (subtask), character != EOF)
     {
       if (!IS_ASCII (character))
-       put_byte (prefix, task);
-      put_byte (character, task);
+       put_byte (prefix, subtask);
+      put_byte (character, subtask);
     }
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_mule_latin (RECODE_CONST_STEP step, RECODE_TASK task,
+transform_mule_latin (RECODE_SUBTASK subtask,
                      unsigned prefix)
 {
   int character;
 
-  while (character = get_byte (task), character != EOF)
+  while (character = get_byte (subtask), character != EOF)
     if (IS_ASCII (character))
-      put_byte (character, task);
+      put_byte (character, subtask);
     else if ((character & MASK (8)) == prefix)
       {
-       character = get_byte (task);
+       character = get_byte (subtask);
 
        while ((character & MASK (8)) == prefix)
          {
            /* This happens in practice, sometimes, that Emacs goes a bit
               berzerk and generates strings of prefix characters.  Remove
               all succeeding prefixes in a row.  This is irreversible.  */
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-           character = get_byte (task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+           character = get_byte (subtask);
          }
 
        if (character == EOF)
          {
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
            break;
          }
 
        if (IS_ASCII (character))
-         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-       put_byte (character, task);
+         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+       put_byte (character, subtask);
       }
     else
-      RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
+      RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 #define TRANSFORM_LATIN(To_mule, From_mule, Prefix) \
                                                                        \
   static bool                                                          \
-  To_mule (RECODE_CONST_STEP step, RECODE_TASK task)   \
+  To_mule (RECODE_SUBTASK subtask)     \
   {                                                                    \
-    return transform_latin_mule (step, task, Prefix);                  \
+    return transform_latin_mule (subtask, Prefix);                     \
   }                                                                    \
                                                                        \
   static bool                                                          \
-  From_mule (RECODE_CONST_STEP step, RECODE_TASK task) \
+  From_mule (RECODE_SUBTASK subtask)   \
   {                                                                    \
-    return transform_mule_latin (step, task, Prefix);                  \
+    return transform_mule_latin (subtask, Prefix);                     \
   }
 
 TRANSFORM_LATIN (transform_latin1_mule, transform_mule_latin1, 129)
index 14ae43ba2f5a038a43e326f7ee88a71871e5ae9f..cb844de03de3af6bb26f7bbe898406281361c265 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1993, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
index bbab7152976532e0953b571a8a166509d9dfadf9..ab161c7fbc48fc27a2cce6852f884ebd1521ad6a 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 92, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -26,7 +25,7 @@
 `-----------------------------------------------------------------------*/
 
 bool
-reversibility (RECODE_CONST_STEP step, RECODE_TASK task, unsigned code)
+reversibility (RECODE_SUBTASK subtask, unsigned code)
 {
   return false;
 }
@@ -74,11 +73,13 @@ declare_single (RECODE_OUTER outer,
   if (!single)
     return NULL;
 
-  if (symbol = find_symbol (outer, before_name, SYMBOL_CREATE_CHARSET), !symbol)
+  if (symbol = find_symbol (outer, before_name, SYMBOL_CREATE_CHARSET),
+      !symbol)
     return NULL;
   single->before = symbol->charset;
 
-  if (symbol = find_symbol (outer, after_name, SYMBOL_CREATE_CHARSET), !symbol)
+  if (symbol = find_symbol (outer, after_name, SYMBOL_CREATE_CHARSET),
+      !symbol)
     {
 #if 0
       /* FIXME: We should delink from the list of charsets before freeing.
@@ -116,6 +117,51 @@ declare_single (RECODE_OUTER outer,
   return single;
 }
 
+/*---------------------------------------------------------------------------.
+| Declare a charset available through `libiconv', given the NAME of this     |
+| charset (which might already exist as an alias).  Make two single steps in |
+| and out of it.                                                             |
+`---------------------------------------------------------------------------*/
+
+static bool
+internal_iconv (RECODE_SUBTASK subtask)
+{
+  SET_SUBTASK_ERROR (RECODE_USER_ERROR, subtask);
+  SUBTASK_RETURN (subtask);
+}
+
+bool
+declare_libiconv (RECODE_OUTER outer, const char *name)
+{
+  RECODE_SYMBOL symbol;
+  RECODE_SINGLE single;
+
+  if (symbol = find_symbol (outer, name, SYMBOL_FIND_AS_EITHER),
+      !symbol)
+    if (symbol = find_symbol (outer, name, SYMBOL_CREATE_CHARSET),
+       !symbol)
+      return false;
+  symbol->charset->charset_flag = true;
+
+  if (single = new_single_step (outer), !single)
+    return false;
+  single->before = symbol->charset;
+  single->after = outer->libiconv_pivot;
+  single->quality = outer->quality_variable_to_variable;
+  single->init_routine = NULL;
+  single->transform_routine = internal_iconv;
+
+  if (single = new_single_step (outer), !single)
+    return false;
+  single->before = outer->libiconv_pivot;
+  single->after = symbol->charset;
+  single->quality = outer->quality_variable_to_variable;
+  single->init_routine = NULL;
+  single->transform_routine = internal_iconv;
+
+  return true;
+}
+
 #if 0
 
 /*-------------------------------------------------.
@@ -357,8 +403,17 @@ register_all_modules (RECODE_OUTER outer)
   if (symbol = find_symbol (outer, "ISO-10646-UCS-2", SYMBOL_CREATE_CHARSET),
       !symbol)
     return false;
+  symbol->charset->charset_flag = true;
   outer->ucs2_charset = symbol->charset;
 
+  if (symbol = find_symbol (outer, ":libiconv:", SYMBOL_CREATE_CHARSET),
+      !symbol)
+    return false;
+  symbol->charset->charset_flag = true;
+  outer->libiconv_pivot = symbol->charset;
+  if (!declare_alias (outer, ":", ":libiconv:"))
+    return false;
+
   if (symbol = find_symbol (outer, "CR-LF", SYMBOL_CREATE_CHARSET), !symbol)
     return false;
   outer->crlf_surface = symbol->charset;
@@ -378,13 +433,19 @@ register_all_modules (RECODE_OUTER outer)
     return false;
   if (!declare_alias (outer, "Latin-1", "ISO-8859-1"))
     return false;
-
   /* Needed for compatibility with recode version 3.2.  */
   if (!declare_alias (outer, "lat1", "Latin-1"))
     return false;
 
 #include "inisteps.h"
 
+  /* Force this one last: it does not segregate between charsets and aliases,
+     confusing some other initialisations that would come after it.  */
+  if (!make_argmatch_arrays (outer))
+    return false;
+  if (!module_libiconv (outer))
+    return false;
+
   for (single = outer->single_list; single; single = single->next)
     estimate_single_cost (outer, single);
 
index 3e4f8b8db5ea2f24dd22262649449ad11fa3f97c..2d80b231ae71a2ae3fff919b2108eaf45c5f1dbd 100644 (file)
 #include "common.h"
 
 static bool
-permute_21 (RECODE_CONST_STEP step, RECODE_TASK task)
+permute_21 (RECODE_SUBTASK subtask)
 {
   int character1;
   int character2;
 
   while (true)
     {
-      character1 = get_byte (task);
+      character1 = get_byte (subtask);
       if (character1 == EOF)
        break;
 
-      character2 = get_byte (task);
+      character2 = get_byte (subtask);
       if (character2 == EOF)
        {
-         put_byte (character1, task);
+         put_byte (character1, subtask);
          break;
        }
 
-      put_byte (character2, task);
-      put_byte (character1, task);
+      put_byte (character2, subtask);
+      put_byte (character1, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-permute_4321 (RECODE_CONST_STEP step, RECODE_TASK task)
+permute_4321 (RECODE_SUBTASK subtask)
 {
   int character1;
   int character2;
@@ -56,41 +56,41 @@ permute_4321 (RECODE_CONST_STEP step, RECODE_TASK task)
 
   while (true)
     {
-      character1 = get_byte (task);
+      character1 = get_byte (subtask);
       if (character1 == EOF)
        break;
 
-      character2 = get_byte (task);
+      character2 = get_byte (subtask);
       if (character2 == EOF)
        {
-         put_byte (character1, task);
+         put_byte (character1, subtask);
          break;
        }
 
-      character3 = get_byte (task);
+      character3 = get_byte (subtask);
       if (character3 == EOF)
        {
-         put_byte (character2, task);
-         put_byte (character1, task);
+         put_byte (character2, subtask);
+         put_byte (character1, subtask);
          break;
        }
 
-      character4 = get_byte (task);
+      character4 = get_byte (subtask);
       if (character4 == EOF)
        {
-         put_byte (character3, task);
-         put_byte (character2, task);
-         put_byte (character1, task);
+         put_byte (character3, subtask);
+         put_byte (character2, subtask);
+         put_byte (character1, subtask);
          break;
        }
 
-      put_byte (character4, task);
-      put_byte (character3, task);
-      put_byte (character2, task);
-      put_byte (character1, task);
+      put_byte (character4, subtask);
+      put_byte (character3, subtask);
+      put_byte (character2, subtask);
+      put_byte (character1, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index 5ef93ea090133916674be707abfbb8ee9f35e9fa..ed0d783cfea7ca729fab768558255854a9cb387d 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -55,20 +54,19 @@ static const char safe_char_bitnet[1 << 7] =
   do {                                                         \
     unsigned nibble;                                                   \
                                                                \
-    put_byte ('=', task);                                      \
+    put_byte ('=', subtask);                                   \
     nibble = MASK (4) & (Character) >> 4;                      \
-    put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, task);  \
+    put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, subtask);       \
     nibble = MASK (4) & (Character);                           \
-    put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, task);  \
+    put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, subtask);       \
   } while (false)
 
 static bool
-transform_data_quoted_printable (RECODE_CONST_STEP step,
-                                RECODE_TASK task)
+transform_data_quoted_printable (RECODE_SUBTASK subtask)
 {
   const char *safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual;
   unsigned available = MIME_LINE_LENGTH;
-  int character = get_byte (task);
+  int character = get_byte (subtask);
   int next_character;
 
   /* Proper maximum filling of quoted-printable lines, avoiding a line buffer
@@ -81,31 +79,31 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
 
       if (available > 1)
        {
-         put_byte (character, task);
+         put_byte (character, subtask);
          available--;
-         character = get_byte (task);
+         character = get_byte (subtask);
        }
       else
        {
-         next_character = get_byte (task);
+         next_character = get_byte (subtask);
          if (next_character == '\n')
            {
-             put_byte (character, task);
-             put_byte ('\n', task);
+             put_byte (character, subtask);
+             put_byte ('\n', subtask);
              available = MIME_LINE_LENGTH;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          else if (next_character == EOF)
            {
-             put_byte (character, task);
+             put_byte (character, subtask);
              available--;
              character = EOF;
            }
          else
            {
-             put_byte ('=', task);
-             put_byte ('\n', task);
-             put_byte (character, task);
+             put_byte ('=', subtask);
+             put_byte ('\n', subtask);
+             put_byte (character, subtask);
              available = MIME_LINE_LENGTH - 1;
              character = next_character;
            }
@@ -117,9 +115,9 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
 
          /* Case of a newline.  */
 
-         put_byte ('\n', task);
+         put_byte ('\n', subtask);
          available = MIME_LINE_LENGTH;
-         character = get_byte (task);
+         character = get_byte (subtask);
          break;
 
        case '\t':
@@ -127,25 +125,25 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
 
          /* Case of a space character.  */
 
-         next_character = get_byte (task);
+         next_character = get_byte (subtask);
          if (next_character == '\n')
            {
              if (available < 3)
                {
-                 put_byte ('=', task);
-                 put_byte ('\n', task);
+                 put_byte ('=', subtask);
+                 put_byte ('\n', subtask);
                }
              PUT_QUOTED (character);
-             put_byte ('\n', task);
+             put_byte ('\n', subtask);
              available = MIME_LINE_LENGTH;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          else if (next_character == EOF)
            {
              if (available < 3)
                {
-                 put_byte ('=', task);
-                 put_byte ('\n', task);
+                 put_byte ('=', subtask);
+                 put_byte ('\n', subtask);
                  available = MIME_LINE_LENGTH;
                }
              PUT_QUOTED (character);
@@ -156,11 +154,11 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
            {
              if (available == 1)
                {
-                 put_byte ('=', task);
-                 put_byte ('\n', task);
+                 put_byte ('=', subtask);
+                 put_byte ('\n', subtask);
                  available = MIME_LINE_LENGTH;
                }
-             put_byte (character, task);
+             put_byte (character, subtask);
              available--;
              character = next_character;
            }
@@ -174,17 +172,17 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
            {
              PUT_QUOTED (character);
              available -= 3;
-             character = get_byte (task);
+             character = get_byte (subtask);
            }
          else
            {
-             next_character = get_byte (task);
+             next_character = get_byte (subtask);
              if (available == 3 && next_character == '\n')
                {
                  PUT_QUOTED (character);
-                 put_byte ('\n', task);
+                 put_byte ('\n', subtask);
                  available = MIME_LINE_LENGTH;
-                 character = get_byte (task);
+                 character = get_byte (subtask);
                }
              else if (next_character == EOF)
                {
@@ -194,8 +192,8 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
                }
              else
                {
-                 put_byte ('=', task);
-                 put_byte ('\n', task);
+                 put_byte ('=', subtask);
+                 put_byte ('\n', subtask);
                  PUT_QUOTED (character);
                  available = MIME_LINE_LENGTH - 3;
                  character = next_character;
@@ -207,20 +205,19 @@ transform_data_quoted_printable (RECODE_CONST_STEP step,
     {
       /* The last line was incomplete.  */
 
-      put_byte ('=', task);
-      put_byte ('\n', task);
+      put_byte ('=', subtask);
+      put_byte ('\n', subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_quoted_printable_data (RECODE_CONST_STEP step,
-                                RECODE_TASK task)
+transform_quoted_printable_data (RECODE_SUBTASK subtask)
 {
   const char *safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual;
   unsigned counter = 0;
-  int character = get_byte (task);
+  int character = get_byte (subtask);
   char buffer[MIME_LINE_LENGTH + 1];
   char *cursor;
   unsigned value;
@@ -232,10 +229,10 @@ transform_quoted_printable_data (RECODE_CONST_STEP step,
        /* Process hard line break.  */
 
        if (counter > MIME_LINE_LENGTH)
-         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
        counter = 0;
-       put_byte ('\n', task);
-       character = get_byte (task);
+       put_byte ('\n', subtask);
+       character = get_byte (subtask);
        break;
 
       case ' ':
@@ -247,52 +244,52 @@ transform_quoted_printable_data (RECODE_CONST_STEP step,
          {
            if (cursor == buffer + MIME_LINE_LENGTH)
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                for (cursor = buffer;
                     cursor < buffer + MIME_LINE_LENGTH;
                     cursor++)
-                 put_byte (*cursor, task);
+                 put_byte (*cursor, subtask);
              }
            counter++;
            *cursor++ = character;
-           character = get_byte (task);
+           character = get_byte (subtask);
          }
        if (character == '\n' || character == EOF)
          {
-           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+           RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
            counter = 0;
            break;
          }
        *cursor = '\0';
        for (cursor = buffer; *cursor; cursor++)
-         put_byte (*cursor, task);
+         put_byte (*cursor, subtask);
        break;
 
       case '=':
        counter++;
-       character = get_byte (task);
+       character = get_byte (subtask);
        if (character == ' ' || character == '\t' || character == '\n')
          {
            /* Process soft line break.  */
 
            if (character == ' ' || character == '\t')
              {
-               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
                while (character == ' ' || character == '\t')
                  {
                    counter++;
-                   character = get_byte (task);
+                   character = get_byte (subtask);
                  }
              }
            if (character != '\n')
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            if (counter > MIME_LINE_LENGTH)
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
            counter = 0;
-           character = get_byte (task);
+           character = get_byte (subtask);
            break;
          }
 
@@ -307,10 +304,10 @@ transform_quoted_printable_data (RECODE_CONST_STEP step,
          value = (character - 'A' + 10) << 4;
        else
          {
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
            break;
          }
-       character = get_byte (task);
+       character = get_byte (subtask);
        counter++;
        if (character >= '0' && character <= '9')
          value |= character - '0';
@@ -320,14 +317,14 @@ transform_quoted_printable_data (RECODE_CONST_STEP step,
          value |= character - 'A' + 10;
        else
          {
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
            break;
          }
        if (!(value & (1 << 7)) && safe_char[value])
-         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
 
-       put_byte (value, task);
-       character = get_byte (task);
+       put_byte (value, subtask);
+       character = get_byte (subtask);
        break;
 
       default:
@@ -335,16 +332,16 @@ transform_quoted_printable_data (RECODE_CONST_STEP step,
 
        counter++;
        if (character & (1 << 7) || !safe_char[character])
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-       put_byte (character, task);
-       character = get_byte (task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+       put_byte (character, subtask);
+       character = get_byte (subtask);
       }
 
   if (counter != 0)
     /* Last line is not terminated.  */
-    RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+    RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index 3c2194f1eb158169d2cf43335a0b37c575e317ab..678026525c889918f3936bb4997b4cc6a2473cb9 100644 (file)
@@ -1,9 +1,9 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.019.
-.TH RECODE "1" "December 1999" "Free recode 3.5a" FSF
+.TH RECODE "1" "December 1999" "Free recode 3.5c" FSF
 .SH NAME
-recode \- manual page for recode 3.5a
+recode \- manual page for recode 3.5c
 .SH SYNOPSIS
-.B lt-recode
+.B ./recode
 [\fIOPTION\fR]... [ [\fICHARSET\fR] \fI| REQUEST \fR[\fIFILE\fR]... ]
 .SH DESCRIPTION
 Free `recode' converts files between various character sets and surfaces.
index 9607975bd52811be50785764bd1b0d5a475d7031..141ae1368db4a3252b625b25a89d73eaf994b647 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 92, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -356,33 +355,32 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step,
 `-------------------------------------------------------------------------*/
 
 bool
-transform_byte_to_ucs2 (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_byte_to_ucs2 (RECODE_SUBTASK subtask)
 {
   int input_char;              /* current character */
   int output_value;            /* value being output */
 
-  if (input_char = get_byte (task), input_char != EOF)
+  if (input_char = get_byte (subtask), input_char != EOF)
     {
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (input_char != EOF)
        {
-         output_value = code_to_ucs2 (step->before, input_char);
+         output_value = code_to_ucs2 (subtask->step->before, input_char);
          if (output_value < 0)
            {
-             RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
-             put_ucs2 (REPLACEMENT_CHARACTER, task);
+             RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
+             put_ucs2 (REPLACEMENT_CHARACTER, subtask);
            }
          else
-           put_ucs2 (output_value, task);
+           put_ucs2 (output_value, subtask);
 
-         input_char = get_byte (task);
+         input_char = get_byte (subtask);
        }
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-------------------------------------------------------------------------.
@@ -441,25 +439,24 @@ init_ucs2_to_byte (RECODE_STEP step,
 }
 
 bool
-transform_ucs2_to_byte (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_ucs2_to_byte (RECODE_SUBTASK subtask)
 {
-  Hash_table *table = step->local;
+  Hash_table *table = subtask->step->local;
   struct ucs2_to_byte lookup;
   struct ucs2_to_byte *entry;
   unsigned input_value;                /* current UCS-2 character */
 
-  while (get_ucs2 (&input_value, step, task))
+  while (get_ucs2 (&input_value, subtask))
     {
       lookup.code = input_value;
       entry = hash_lookup (table, &lookup);
       if (entry)
-       put_byte (entry->byte, task);
+       put_byte (entry->byte, subtask);
       else
-       RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
+       RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 \f
 /* Table editing on stdout.  */
index 6717030bc199617360aab6205f05f60ebe7aaf48..394fb5ef9f66b8d6f323649fae203752f53c012f 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
index 80df7689bea80670161cbb469c1d54646b1df274..c874b9a328348e7aa7622ea855db46258f49bb44 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -29,6 +28,7 @@ typedef struct recode_option_list *           RECODE_OPTION_LIST;
 typedef struct recode_single *                 RECODE_SINGLE;
 typedef struct recode_step *                   RECODE_STEP;
 typedef struct recode_symbol *                 RECODE_SYMBOL;
+typedef struct recode_subtask *                        RECODE_SUBTASK;
 
 typedef const struct recode_option_list *      RECODE_CONST_OPTION_LIST;
 typedef const struct recode_outer *            RECODE_CONST_OUTER;
@@ -36,34 +36,28 @@ typedef const struct recode_step *          RECODE_CONST_STEP;
 typedef const struct recode_symbol *           RECODE_CONST_SYMBOL;
 typedef const struct recode_task *             RECODE_CONST_TASK;
 
-/*------------------------------------------------------.
-| Maintain maximum of ERROR and current error in TASK.  |
-`------------------------------------------------------*/
+/*---------------------------------------------------------.
+| Maintain maximum of ERROR and current error in SUBTASK.  |
+`---------------------------------------------------------*/
 
-#define SET_TASK_ERROR(Error, Step, Task) \
-  if ((Error) > (Task)->error_so_far)                          \
-    ((Task)->error_so_far = (Error),                           \
-     (Task)->error_at_step = (Step));                          \
-  else
+#define SET_SUBTASK_ERROR(Error, Subtask) \
+  recode_if_nogo (Error, Subtask)
 
-/*-----------------------------------------------------------------------.
-| Return from TASK with `false', if the failure level has been reached.  |
-`-----------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------.
+| Return from SUBTASK with `false', if the failure level has been reached.  |
+`--------------------------------------------------------------------------*/
 
-#define TASK_RETURN(Task) \
-  return (Task)->error_so_far < (Task)->fail_level
+#define SUBTASK_RETURN(Subtask) \
+  return (Subtask)->task->error_so_far < (Subtask)->task->fail_level
 
 /*-------------------------------------------------------------------------.
-| Maintain maximum of ERROR and current error in TASK.  If the abort level |
-| has been reached, then return immediately as with TASK_RETURN.           |
+| Maintain maximum of ERROR and current error in SUBTASK.  If the abort    |
+| level has been reached, then return immediately as with SUBTASK_RETURN.  |
 `-------------------------------------------------------------------------*/
 
-#define RETURN_IF_NOGO(Error, Step, Task) \
-  if ((Error) <= (Task)->error_so_far ? false                  \
-      : ((Task)->error_so_far = (Error),                       \
-        (Task)->error_at_step = (Step),                        \
-        (Error) >= (Task)->abort_level))                       \
-    TASK_RETURN (Task);                                                \
+#define RETURN_IF_NOGO(Error, Subtask) \
+  if (recode_if_nogo (Error, Subtask))                         \
+    SUBTASK_RETURN (Subtask);                                  \
   else
 \f
 /* Various structure declarations.  */
@@ -160,6 +154,7 @@ struct recode_outer
   /* Preset charsets and surfaces.  */
   RECODE_CHARSET data_charset;/* special charset defining surfaces */
   RECODE_CHARSET ucs2_charset; /* UCS-2 */
+  RECODE_CHARSET libiconv_pivot; /* `libiconv' internal UCS */
   RECODE_CHARSET crlf_surface; /* for IBM PC machines */
   RECODE_CHARSET cr_surface; /* for Macintosh machines */
 
@@ -230,9 +225,8 @@ typedef bool (*Recode_init) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
                                     RECODE_CONST_OPTION_LIST,
                                     RECODE_CONST_OPTION_LIST));
 typedef bool (*Recode_term) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST));
-typedef bool (*Recode_transform) PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-typedef bool (*Recode_fallback) PARAMS ((RECODE_CONST_STEP, RECODE_TASK,
-                                        unsigned));
+typedef bool (*Recode_transform) PARAMS ((RECODE_SUBTASK));
+typedef bool (*Recode_fallback) PARAMS ((RECODE_SUBTASK, unsigned));
 
 /* The `single' structure holds data needed to decide of sequences, and is
    invariant over actual requests.  The `step' structure holds data needed for
@@ -421,17 +415,46 @@ enum recode_swap_input
   RECODE_SWAP_YES              /* should swap incoming pair of bytes */
 };
 
-/*----------------------------------------------------------------------.
-| A recoding task associates a recoding sequence to a given input text, |
-| for producing a corresponding output text.                            |
-`----------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------.
+| A recoding subtask associates a particular recoding step to a given input |
+| text, for producing a corresponding output text.  It also holds error     |
+| related statistics for the execution of that step.                        |
+`--------------------------------------------------------------------------*/
+
+struct recode_subtask
+{
+  /* Task for which this subtask is an element.  */
+  RECODE_TASK task;
+
+  /* Step being executed by this subtask.  */
+  RECODE_CONST_STEP step;
+
+  /* Current input and output.  */
+  struct recode_read_only_text input;
+  struct recode_read_write_text output;
+
+  /* Line count and character count in last line, both zero-based.  */
+  unsigned newline_count;
+  unsigned character_count;
+};
+
+#define GOT_CHARACTER(Subtask) \
+  ((Subtask)->character_count++)
+
+#define GOT_NEWLINE(Subtask) \
+  ((Subtask)->newline_count++, (Subtask)->character_count = 0)
+
+/*--------------------------------------------------------------------------.
+| A recoding task associates a sequence of steps to a given input text, for |
+| producing a corresponding output text.  It holds an array of subtasks.    |
+`--------------------------------------------------------------------------*/
 
 struct recode_task
 {
   /* Associated request.  */
   RECODE_CONST_REQUEST request;
 
-  /* Current input and output.  */
+  /* Initial input and final output.  */
   struct recode_read_only_text input;
   struct recode_read_write_text output;
 
@@ -474,7 +497,6 @@ struct recode_known_pair
 | Various definitions.  |
 `----------------------*/
 
-/* FIXME!  Changer pour ucs2_t, peut-être?  */
 typedef unsigned short recode_ucs2;
 
 /* Double tables are generated as arrays of indices into a pool of strips,
@@ -541,11 +563,11 @@ unsigned char *invert_table PARAMS ((RECODE_OUTER, const unsigned char *));
 bool complete_pairs PARAMS ((RECODE_OUTER, RECODE_STEP,
                             const struct recode_known_pair *, unsigned,
                             bool, bool));
-bool transform_byte_to_ucs2 PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
+bool transform_byte_to_ucs2 PARAMS ((RECODE_SUBTASK));
 bool init_ucs2_to_byte PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
                                RECODE_CONST_OPTION_LIST,
                                RECODE_CONST_OPTION_LIST));
-bool transform_ucs2_to_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
+bool transform_ucs2_to_byte PARAMS ((RECODE_SUBTASK));
 
 /* charname.c and fr-charname.c.  */
 
@@ -588,23 +610,27 @@ bool decode_known_pairs PARAMS ((RECODE_OUTER, const char *));
 bool init_explode PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
                           RECODE_CONST_OPTION_LIST,
                           RECODE_CONST_OPTION_LIST));
-bool explode_byte_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool explode_ucs2_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool explode_byte_ucs2 PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool explode_ucs2_ucs2 PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
+bool explode_byte_byte PARAMS ((RECODE_SUBTASK));
+bool explode_ucs2_byte PARAMS ((RECODE_SUBTASK));
+bool explode_byte_ucs2 PARAMS ((RECODE_SUBTASK));
+bool explode_ucs2_ucs2 PARAMS ((RECODE_SUBTASK));
 
 bool init_combine PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
                           RECODE_CONST_OPTION_LIST,
                           RECODE_CONST_OPTION_LIST));
-bool combine_byte_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool combine_ucs2_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool combine_byte_ucs2 PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool combine_ucs2_ucs2 PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
+bool combine_byte_byte PARAMS ((RECODE_SUBTASK));
+bool combine_ucs2_byte PARAMS ((RECODE_SUBTASK));
+bool combine_byte_ucs2 PARAMS ((RECODE_SUBTASK));
+bool combine_ucs2_ucs2 PARAMS ((RECODE_SUBTASK));
 
 /* freeze.c.  */
 
 void recode_freeze_tables PARAMS ((RECODE_OUTER));
 
+/* libiconv.c.  */
+
+bool transform_with_libiconv PARAMS ((RECODE_SUBTASK));
+
 /* mixed.c.  */
 
 bool transform_c_source PARAMS ((RECODE_TASK));
@@ -612,13 +638,14 @@ bool transform_po_source PARAMS ((RECODE_TASK));
 
 /* outer.c.  */
 
-bool reversibility PARAMS ((RECODE_CONST_STEP, RECODE_TASK, unsigned));
+bool reversibility PARAMS ((RECODE_SUBTASK, unsigned));
 RECODE_SINGLE declare_single
   PARAMS ((RECODE_OUTER, const char *, const char *,
           struct recode_quality,
           bool (*) (RECODE_STEP, RECODE_CONST_REQUEST,
                     RECODE_CONST_OPTION_LIST, RECODE_CONST_OPTION_LIST),
-          bool (*) (RECODE_CONST_STEP, RECODE_TASK)));
+          bool (*) (RECODE_SUBTASK)));
+bool declare_libiconv PARAMS ((RECODE_OUTER, const char *));
 bool declare_explode_data PARAMS ((RECODE_OUTER, const unsigned short *,
                                   const char *, const char *));
 bool declare_strip_data PARAMS ((RECODE_OUTER, struct strip_data *,
@@ -639,11 +666,12 @@ const char *ucs2_to_rfc1345 PARAMS ((recode_ucs2));
 /* task.c.  */
 
 #if USE_HELPERS
-int get_byte_helper PARAMS ((RECODE_TASK));
+int get_byte_helper PARAMS ((RECODE_SUBTASK));
 #endif
-void put_byte_helper PARAMS ((int, RECODE_TASK));
-bool transform_byte_to_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-bool transform_byte_to_variable PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
+void put_byte_helper PARAMS ((int, RECODE_SUBTASK));
+bool recode_if_nogo PARAMS ((enum recode_error, RECODE_SUBTASK));
+bool transform_byte_to_byte PARAMS ((RECODE_SUBTASK));
+bool transform_byte_to_variable PARAMS ((RECODE_SUBTASK));
 
 /* ucs.c.  */
 
@@ -659,10 +687,10 @@ bool transform_byte_to_variable PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
 /* Never an UCS-2 character.  */
 #define NOT_A_CHARACTER 0xFFFF
 
-bool get_ucs2 PARAMS ((unsigned *, RECODE_CONST_STEP, RECODE_TASK));
-bool get_ucs4 PARAMS ((unsigned *, RECODE_CONST_STEP, RECODE_TASK));
-bool put_ucs2 PARAMS ((unsigned, RECODE_TASK));
-bool put_ucs4 PARAMS ((unsigned, RECODE_TASK));
+bool get_ucs2 PARAMS ((unsigned *, RECODE_SUBTASK));
+bool get_ucs4 PARAMS ((unsigned *, RECODE_SUBTASK));
+bool put_ucs2 PARAMS ((unsigned, RECODE_SUBTASK));
+bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK));
 
 #ifdef __cplusplus
 }
@@ -675,27 +703,27 @@ bool put_ucs4 PARAMS ((unsigned, RECODE_TASK));
 
 #if USE_HELPERS
 
-# define get_byte(Task) \
-    get_byte_helper ((Task))
+# define get_byte(Subtask) \
+    get_byte_helper ((Subtask))
 
-# define put_byte(Byte, Task) \
-    put_byte_helper ((Byte), (Task))
+# define put_byte(Byte, Subtask) \
+    put_byte_helper ((Byte), (Subtask))
 
 #else /* not USE_HELPERS */
 
-# define get_byte(Task) \
-    ((Task)->input.file                                                \
-     ? getc ((Task)->input.file)                               \
-     : (Task)->input.cursor == (Task)->input.limit             \
+# define get_byte(Subtask) \
+    ((Subtask)->input.file                                     \
+     ? getc ((Subtask)->input.file)                            \
+     : (Subtask)->input.cursor == (Subtask)->input.limit       \
      ? EOF                                                     \
-     : (unsigned char) *(Task)->input.cursor++)
+     : (unsigned char) *(Subtask)->input.cursor++)
 
-# define put_byte(Byte, Task) \
-    ((Task)->output.file                                       \
-     ? (void) putc ((Byte), (Task)->output.file)               \
-     : (Task)->output.cursor == (Task)->output.limit           \
-     ? put_byte_helper ((int) (Byte), (Task))                  \
-     : (void) (*(Task)->output.cursor++ = (Byte)))
+# define put_byte(Byte, Subtask) \
+    ((Subtask)->output.file                                    \
+     ? (void) putc ((Byte), (Subtask)->output.file)            \
+     : (Subtask)->output.cursor == (Subtask)->output.limit     \
+     ? put_byte_helper ((int) (Byte), (Subtask))               \
+     : (void) (*(Subtask)->output.cursor++ = (Byte)))
 
 #endif /* not USE_HELPERS */
 
@@ -704,23 +732,26 @@ bool put_ucs4 PARAMS ((unsigned, RECODE_TASK));
 # if !INLINE_HARDER
 
 #  undef put_byte
-#  define put_byte(Byte, Task) \
-     put_byte_helper ((Byte), (Task))
+#  define put_byte(Byte, Subtask) \
+     put_byte_helper ((Byte), (Subtask))
 
 # endif
 
-# define PUT_NON_DIACRITIC_BYTE(Byte, Task) \
-    if (request->diacritics_only) ECHO; else put_byte ((Byte), (Task))
+# define PUT_NON_DIACRITIC_BYTE(Byte, Subtask) \
+    if (request->diacritics_only)                              \
+      ECHO;                                                    \
+    else                                                       \
+      put_byte ((Byte), (Subtask))
 
-/* ECHO may not have a (Task) argument, because some ECHO without argument
+/* ECHO may not have a (Subtask) argument, because some ECHO without argument
    is generated by Flex -- yet Vern tells me it won't happen if I inhibit
-   the rule about default copying.  Happily enough, within Flex, Task is
-   `task' quite systematically, so it may be used as a constant, here.  */
+   the rule about default copying.  Happily enough, within Flex, Subtask is
+   `subtask' quite systematically, so it may be used as a constant, here.  */
 # define ECHO \
     do {                                                       \
       const char *cursor = yytext; int counter = yyleng;       \
       for (; counter > 0; cursor++, counter--)                 \
-       put_byte (*cursor, task);                               \
+       put_byte (*cursor, subtask);                            \
     } while (false)
 
 #endif /* FLEX_SCANNER */
index 59e62f545fb6c7880e2fbe47981a691768240c9b..e5077fe8aee12e09c394f284c445c7b838a33713 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 92, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -567,7 +566,7 @@ simplify_sequence (RECODE_REQUEST request)
 
   saved_steps = 0;
 
-  /* See if there are some double UCS-2 steps to merge.  */
+  /* See if there are some double steps to merge.  */
 
   in = request->sequence_array;
   out = request->sequence_array;
@@ -580,6 +579,7 @@ simplify_sequence (RECODE_REQUEST request)
        && in[1].before == outer->ucs2_charset
        && in[1].after->charset_type == RECODE_STRIP_DATA)
       {
+       /* This is a double UCS-2 step.  */
        out->before = in[0].before;
        out->after = in[1].after;
        out->quality = in[0].quality;
@@ -591,6 +591,21 @@ simplify_sequence (RECODE_REQUEST request)
        if (!complete_double_ucs2_step (outer, out))
          return false;
 
+       in += 2;
+       saved_steps++;
+       out++;
+      }
+    else if (in < limit - 1
+            && in[0].after == outer->libiconv_pivot
+            && in[1].before == outer->libiconv_pivot)
+      {
+       /* This is a double `libiconv' step.  */
+       out->before = in[0].before;
+       out->after = in[1].after;
+       out->quality = in[0].quality;
+       merge_qualities (&out->quality, in[1].quality);
+       out->transform_routine = transform_with_libiconv;
+
        in += 2;
        saved_steps++;
        out++;
@@ -1042,6 +1057,32 @@ decode_request (RECODE_REQUEST request, const char *string)
 | REQUEST level functions.  |
 `--------------------------*/
 
+/* Guarantee four NULs at the end of the output memory buffer for TASK, yet
+   not counting them as data.  The number of NULs should depend on the goal
+   charset: often one, but two for UCS-2 and four for UCS-4.  FIXME!  */
+
+static void
+guarantee_nul_terminator (RECODE_TASK task)
+{
+  if (task->output.cursor + 4 >= task->output.limit)
+    {
+      RECODE_OUTER outer = task->request->outer;
+      size_t old_size = task->output.limit - task->output.buffer;
+      size_t new_size = task->output.cursor + 4 - task->output.buffer;
+
+      /* FIXME: Rethink about how the error should be reported.  */
+      if (REALLOC (task->output.buffer, new_size, char))
+       {
+         task->output.cursor = task->output.buffer + old_size;
+         task->output.limit = task->output.buffer + new_size;
+       }
+    }
+  task->output.cursor[0] = NUL;
+  task->output.cursor[1] = NUL;
+  task->output.cursor[2] = NUL;
+  task->output.cursor[3] = NUL;
+}
+
 RECODE_REQUEST
 recode_new_request (RECODE_OUTER outer)
 {
@@ -1135,16 +1176,9 @@ recode_buffer_to_buffer (RECODE_CONST_REQUEST request,
 
   task->strategy = RECODE_SEQUENCE_IN_MEMORY;
   success = recode_perform_task (task);
-  /* FIXME: the number of NULs should depend on the goal charset.  Often
-     one, but two for UCS-2 and four for UCS-4.  Just play safe for now.
-     FIXME: rely on the fact it is known that the result is a buffer.  */
-  put_byte (NUL, task);
-  put_byte (NUL, task);
-  put_byte (NUL, task);
-  put_byte (NUL, task);
-
+  guarantee_nul_terminator (task);
   *output_buffer_pointer = task->output.buffer;
-  *output_length_pointer = task->output.cursor - task->output.buffer - 4;
+  *output_length_pointer = task->output.cursor - task->output.buffer;
   *output_allocated_pointer = task->output.limit - task->output.buffer;
 
   recode_delete_task (task);
@@ -1195,16 +1229,9 @@ recode_file_to_buffer (RECODE_CONST_REQUEST request,
 
   task->strategy = RECODE_SEQUENCE_IN_MEMORY;
   success = recode_perform_task (task);
-  /* FIXME: the number of NULs should depend on the goal charset.  Often
-     one, but two for UCS-2 and four for UCS-4.  Just play safe for now.
-     FIXME: rely on the fact it is known that the result is a buffer.  */
-  put_byte (NUL, task);
-  put_byte (NUL, task);
-  put_byte (NUL, task);
-  put_byte (NUL, task);
-
+  guarantee_nul_terminator (task);
   *output_buffer_pointer = task->output.buffer;
-  *output_length_pointer = task->output.cursor - task->output.buffer - 4;
+  *output_length_pointer = task->output.cursor - task->output.buffer;
   *output_allocated_pointer = task->output.limit - task->output.buffer;
 
   recode_delete_task (task);
index 6c63eb9eee5dd2d4cc615d04cc7cfd8ecc0e6e1e..aad80981c51a8a433f36df6936b7465772cafd0b 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1993, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -91,52 +90,51 @@ struct local
 `-----------------------------------------------*/
 
 static bool
-transform_ucs2_rfc1345 (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_ucs2_rfc1345 (RECODE_SUBTASK subtask)
 {
-  struct local *local = step->local;
+  struct local *local = subtask->step->local;
   const char intro = local->intro;
   unsigned value;
 
-  while (get_ucs2 (&value, step, task))
+  while (get_ucs2 (&value, subtask))
     if (IS_ASCII (value))
       if (value == intro)
        {
-         put_byte (intro, task);
-         put_byte (intro, task);
+         put_byte (intro, subtask);
+         put_byte (intro, subtask);
        }
       else
-       put_byte (value, task);
+       put_byte (value, subtask);
     else
       {
        const char *string = ucs2_to_rfc1345 (value);
 
        if (!string || !string[0])
-         RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
+         RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
        else if (!string[1])
-         put_byte (string[0], task);
+         put_byte (string[0], subtask);
        else if (!string[2])
          {
-           put_byte (intro, task);
-           put_byte (string[0], task);
-           put_byte (string[1], task);
+           put_byte (intro, subtask);
+           put_byte (string[0], subtask);
+           put_byte (string[1], subtask);
          }
        else
          {
            const char *cursor = string;
 
-           put_byte (intro, task);
-           put_byte ('_', task);
+           put_byte (intro, subtask);
+           put_byte ('_', subtask);
            while (*cursor)
              {
-               put_byte (*cursor, task);
+               put_byte (*cursor, subtask);
                cursor++;
              }
-           put_byte ('_', task);
+           put_byte ('_', subtask);
          }
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-----------------------------------------------.
@@ -144,33 +142,32 @@ transform_ucs2_rfc1345 (RECODE_CONST_STEP step,
 `-----------------------------------------------*/
 
 static bool
-transform_rfc1345_ucs2 (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_rfc1345_ucs2 (RECODE_SUBTASK subtask)
 {
-  struct local *local = step->local;
+  struct local *local = subtask->step->local;
   const char intro = local->intro;
   int character;
 
-  while (character = get_byte (task), character != EOF)
+  while (character = get_byte (subtask), character != EOF)
 
     if (character == intro)
       {
-       character = get_byte (task);
+       character = get_byte (subtask);
        if (character == EOF)
-         RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+         RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
 
        if (character == intro)
-         put_ucs2 (intro, task);
+         put_ucs2 (intro, subtask);
        else if (character == '_')
          {
            char buffer[MAX_MNEMONIC_LENGTH + 1];
            char *cursor = buffer;
 
-           character = get_byte (task);
+           character = get_byte (subtask);
            while (true)
              if (character == EOF)
                {
-                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                  break;
                }
              else if (character == '_')
@@ -180,20 +177,20 @@ transform_rfc1345_ucs2 (RECODE_CONST_STEP step,
                  *cursor = NUL;
                  value = rfc1345_to_ucs2 (buffer);
                  if (value == NOT_A_CHARACTER)
-                   RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                   RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                  else
-                   put_ucs2 (value, task);
+                   put_ucs2 (value, subtask);
                  break;
                }
              else if (cursor == buffer + MAX_MNEMONIC_LENGTH)
                {
-                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                  break;
                }
              else
                {
                  buffer[*cursor++] = character;
-                 character = get_byte (task);
+                 character = get_byte (subtask);
                }
          }
        else
@@ -202,27 +199,27 @@ transform_rfc1345_ucs2 (RECODE_CONST_STEP step,
            recode_ucs2 value;
 
            buffer[0] = character;
-           character = get_byte (task);
+           character = get_byte (subtask);
            if (character == EOF)
-             RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+             RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
            buffer[1] = character;
            buffer[2] = NUL;
 
            value = rfc1345_to_ucs2 (buffer);
            if (value == NOT_A_CHARACTER)
-             RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+             RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
            else
              {
                if (IS_ASCII (value))
-                 RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-               put_ucs2 (value, task);
+                 RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+               put_ucs2 (value, subtask);
              }
          }
       }
     else
-      put_ucs2 (character, task);
+      put_ucs2 (character, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-----------------------.
index e2474a6015aa36e4311b5bf839bd3c40f4696e1c..e4ae446ada578113296d71ebca25416c2e7f301b 100644 (file)
@@ -2,7 +2,6 @@
 
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
index 448da167e07971d83b38c52327548ec7d32cbdc3..3d508790e949cf65afc20b42c4c33b42827ce370 100644 (file)
@@ -2,7 +2,6 @@
 
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
index 0b94f242bb34905c21c567f454e60d39d8fc88b1..1eb352f8307705a07afd55106c3015d28ea14d25 100644 (file)
@@ -2,7 +2,6 @@
 
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    The `recode' Library is free software; you can redistribute it and/or
index 305511a0c3c4d8c6df3406c9485e13e89c169faf..09c4d3f9c7c5ff908b06445a2155d0e3cba7a8be 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 92, 93, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -59,27 +58,47 @@ get_byte_helper (RECODE_TASK task)
    generated code.  */
 
 void
-put_byte_helper (int byte, RECODE_TASK task)
+put_byte_helper (int byte, RECODE_SUBTASK subtask)
 {
-  if (task->output.file)
-    putc (byte, task->output.file);
-  else if (task->output.cursor == task->output.limit)
+  if (subtask->output.file)
+    putc (byte, subtask->output.file);
+  else if (subtask->output.cursor == subtask->output.limit)
     {
-      RECODE_OUTER outer = task->request->outer;
-      size_t old_size = task->output.limit - task->output.buffer;
+      RECODE_OUTER outer = subtask->task->request->outer;
+      size_t old_size = subtask->output.limit - subtask->output.buffer;
       size_t new_size = old_size * 3 / 2 + 40;
 
       /* FIXME: Rethink about how the error should be reported.  */
 
-      if (REALLOC (task->output.buffer, new_size, char))
+      if (REALLOC (subtask->output.buffer, new_size, char))
        {
-         task->output.cursor = task->output.buffer + old_size;
-         task->output.limit = task->output.buffer + new_size;
-         *task->output.cursor++ = byte;
+         subtask->output.cursor = subtask->output.buffer + old_size;
+         subtask->output.limit = subtask->output.buffer + new_size;
+         *subtask->output.cursor++ = byte;
        }
     }
   else
-    *task->output.cursor++ = byte;
+    *subtask->output.cursor++ = byte;
+}
+\f
+/* Error processing.  */
+
+/*------------------------------------------------------------------------.
+| Handle a given ERROR, while executing STEP within TASK.  Return true if |
+| the abort level has been reached.                                       |
+`------------------------------------------------------------------------*/
+
+bool
+recode_if_nogo (enum recode_error error, RECODE_SUBTASK subtask)
+{
+  RECODE_TASK task = subtask->task;
+
+  if (error > task->error_so_far)
+    {
+      task->error_so_far = error;
+      task->error_at_step = subtask->step;
+    }
+  return task->error_so_far >= task->abort_level;
 }
 \f
 /* Recoding execution control.  */
@@ -89,47 +108,47 @@ put_byte_helper (int byte, RECODE_TASK task)
 `--------------*/
 
 static bool
-transform_mere_copy (RECODE_TASK task)
+transform_mere_copy (RECODE_SUBTASK subtask)
 {
-  if (task->input.file && task->output.file)
+  if (subtask->input.file && subtask->output.file)
     {
       /* File to file.  */
 
       char buffer[BUFFER_SIZE];
       size_t size;
 
-      while (size = fread (buffer, 1, BUFFER_SIZE, task->input.file),
+      while (size = fread (buffer, 1, BUFFER_SIZE, subtask->input.file),
             size == BUFFER_SIZE)
-       if (fwrite (buffer, BUFFER_SIZE, 1, task->output.file) != 1)
+       if (fwrite (buffer, BUFFER_SIZE, 1, subtask->output.file) != 1)
          {
            recode_perror (NULL, "fwrite ()");
            return false;
          }
       if (size > 0)
-       if (fwrite (buffer, size, 1, task->output.file) != 1)
+       if (fwrite (buffer, size, 1, subtask->output.file) != 1)
          {
            recode_perror (NULL, "fwrite ()");
            return false;
          }
     }
-  else if (task->input.file)
+  else if (subtask->input.file)
     {
       /* File to buffer.  */
 
       int character;
 
       /* FIXME: buy now, pay (optimise) only later.   */
-      while (character = get_byte (task), character != EOF)
-       put_byte (character, task);
+      while (character = get_byte (subtask), character != EOF)
+       put_byte (character, subtask);
     }
-  else if (task->output.file)
+  else if (subtask->output.file)
     {
       /* Buffer to file.  */
 
-      if (task->input.cursor < task->input.limit)
-       if (fwrite (task->input.cursor,
-                   (unsigned) (task->input.limit - task->input.cursor),
-                   1, task->output.file)
+      if (subtask->input.cursor < subtask->input.limit)
+       if (fwrite (subtask->input.cursor,
+                   (unsigned) (subtask->input.limit - subtask->input.cursor),
+                   1, subtask->output.file)
            != 1)
          {
            recode_perror (NULL, "fwrite ()");
@@ -143,8 +162,8 @@ transform_mere_copy (RECODE_TASK task)
       int character;
 
       /* FIXME: buy now, pay (optimise) only later.  */
-      while (character = get_byte (task), character != EOF)
-       put_byte (character, task);
+      while (character = get_byte (subtask), character != EOF)
+       put_byte (character, subtask);
     }
 
   return true;
@@ -155,16 +174,15 @@ transform_mere_copy (RECODE_TASK task)
 `--------------------------------------------------*/
 
 bool
-transform_byte_to_byte (RECODE_CONST_STEP step,
-                       RECODE_TASK task)
+transform_byte_to_byte (RECODE_SUBTASK subtask)
 {
-  unsigned const char *table = step->step_table;
+  unsigned const char *table = subtask->step->step_table;
   int input_char;
 
-  while (input_char = get_byte (task), input_char != EOF)
-    put_byte (table[input_char], task);
+  while (input_char = get_byte (subtask), input_char != EOF)
+    put_byte (table[input_char], subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*---------------------------------------------------.
@@ -172,26 +190,25 @@ transform_byte_to_byte (RECODE_CONST_STEP step,
 `---------------------------------------------------*/
 
 bool
-transform_byte_to_variable (RECODE_CONST_STEP step,
-                           RECODE_TASK task)
+transform_byte_to_variable (RECODE_SUBTASK subtask)
 {
-  const char *const *table = step->step_table;
+  const char *const *table = subtask->step->step_table;
   int input_char;
   const char *output_string;
 
   /* Copy the file through the one to many recoding table.  */
 
-  while (input_char = get_byte (task), input_char != EOF)
+  while (input_char = get_byte (subtask), input_char != EOF)
     if (output_string = table[input_char], output_string)
       while (*output_string)
        {
-         put_byte (*output_string, task);
+         put_byte (*output_string, subtask);
          output_string++;
        }
    else
-     RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
+     RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*---------------------------------------------------------------------.
@@ -204,24 +221,23 @@ static bool
 perform_memory_sequence (RECODE_TASK task)
 {
   RECODE_CONST_REQUEST request = task->request;
-  RECODE_TASK subtask = recode_new_task (request);
+  struct recode_subtask subtask_block;
+  RECODE_SUBTASK subtask = &subtask_block;
   struct recode_read_write_text input;
   struct recode_read_write_text output;
   unsigned sequence_index;
   RECODE_CONST_STEP step;
 
-  if (!subtask)
-    return false;
-
-  subtask->byte_order_mark = task->byte_order_mark;
+  memset (subtask, 0, sizeof (struct recode_subtask));
   memset (&input, 0, sizeof (struct recode_read_write_text));
   memset (&output, 0, sizeof (struct recode_read_write_text));
+  subtask->task = task;
 
   /* Execute one pass for each step of the sequence.  */
 
   for (sequence_index = 0;
        sequence_index < request->sequence_length
-        && subtask->error_so_far < subtask->abort_level;
+        && task->error_so_far < task->abort_level;
        sequence_index++)
     {
       /* Select the input text for this step.  */
@@ -272,12 +288,8 @@ perform_memory_sequence (RECODE_TASK task)
       /* Execute one recoding step.  */
 
       step = request->sequence_array + sequence_index;
-      (*step->transform_routine) (step, subtask);
-      if (subtask->error_so_far > task->error_so_far)
-       {
-         task->error_so_far = subtask->error_so_far;
-         task->error_at_step = subtask->error_at_step;
-       }
+      subtask->step = step;
+      (*step->transform_routine) (subtask);
 
       /* Post-step clean up.  */
 
@@ -294,7 +306,7 @@ perform_memory_sequence (RECODE_TASK task)
 
       /* Prepare for next step.  */
 
-      subtask->swap_input = RECODE_SWAP_UNDECIDED;
+      task->swap_input = RECODE_SWAP_UNDECIDED;
 
       if (sequence_index < request->sequence_length - 1)
        {
@@ -320,8 +332,7 @@ perform_memory_sequence (RECODE_TASK task)
   if (output.buffer)
     free (output.buffer);
 
-  /* How does subtask get freed?  FIXME!  */
-  TASK_RETURN (subtask);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-------------------------------------------------------------------------.
@@ -387,7 +398,8 @@ static bool
 perform_pass_sequence (RECODE_TASK task)
 {
   RECODE_CONST_REQUEST request = task->request;
-  RECODE_TASK subtask = recode_new_task (request);
+  struct recode_subtask subtask_block;
+  RECODE_SUBTASK subtask = &subtask_block;
   struct recode_read_write_text input;
   struct recode_read_write_text output;
   unsigned sequence_index;
@@ -397,12 +409,10 @@ perform_pass_sequence (RECODE_TASK task)
   char temporary_name_2[L_tmpnam];
 #endif
 
-  if (!subtask)
-    return false;
-
-  subtask->byte_order_mark = task->byte_order_mark;
+  memset (subtask, 0, sizeof (struct recode_subtask));
   memset (&input, 0, sizeof (struct recode_read_write_text));
   memset (&output, 0, sizeof (struct recode_read_write_text));
+  subtask->task = task;
 
 #if USE_TMPNAM
 # if DOSWIN_OR_OS2
@@ -421,7 +431,7 @@ perform_pass_sequence (RECODE_TASK task)
 
   for (sequence_index = 0;
        sequence_index < request->sequence_length
-        && subtask->error_so_far < subtask->abort_level;
+        && task->error_so_far < task->abort_level;
        sequence_index++)
     {
       /* Select the input text for this step.  */
@@ -502,12 +512,8 @@ perform_pass_sequence (RECODE_TASK task)
       /* Execute one recoding step.  */
 
       step = request->sequence_array + sequence_index;
-      (*step->transform_routine) (step, subtask);
-      if (subtask->error_so_far > task->error_so_far)
-       {
-         task->error_so_far = subtask->error_so_far;
-         task->error_at_step = subtask->error_at_step;
-       }
+      subtask->step = step;
+      (*step->transform_routine) (subtask);
 
       /* Post-step clean up.  */
 
@@ -537,7 +543,7 @@ perform_pass_sequence (RECODE_TASK task)
 
       /* Prepare for next step.  */
 
-      subtask->swap_input = RECODE_SWAP_UNDECIDED;
+      task->swap_input = RECODE_SWAP_UNDECIDED;
 
       if (sequence_index < request->sequence_length - 1)
        {
@@ -552,8 +558,8 @@ perform_pass_sequence (RECODE_TASK task)
          task->output = subtask->output;
        }
     }
-  /* How does subtask get freed?  FIXME!  */
-  TASK_RETURN (subtask);
+
+  SUBTASK_RETURN (subtask);
 }
 
 #if HAVE_PIPE
@@ -630,22 +636,29 @@ perform_pipe_sequence (RECODE_TASK task)
 {
   RECODE_CONST_REQUEST request = task->request;
   RECODE_OUTER outer = request->outer;
+  struct recode_subtask subtask_block;
+  RECODE_SUBTASK subtask = &subtask_block;
 
   unsigned sequence_index;     /* index into sequence */
-  RECODE_CONST_STEP step; /* pointer into single_steps */
+  RECODE_CONST_STEP step;      /* pointer into single_steps */
 
   int pipe_pair[2];            /* pair of file descriptors for a pipe */
   int child_process;           /* child process number, zero if child */
   int wait_status;             /* status returned by wait() */
 
+  memset (subtask, 0, sizeof (struct recode_subtask));
+  subtask->task = task;
+  subtask->input = task->input;
+  subtask->output = task->output;
+
   /* Prepare the final output file.  */
 
-  if (!*task->output.name)
-    task->output.file = stdout;
-  else if (task->output.file = fopen (task->output.name, "w"),
-          task->output.file == NULL)
+  if (!*subtask->output.name)
+    subtask->output.file = stdout;
+  else if (subtask->output.file = fopen (subtask->output.name, "w"),
+          subtask->output.file == NULL)
     {
-      recode_perror (outer, "fopen (%s)", task->output.name);
+      recode_perror (outer, "fopen (%s)", subtask->output.name);
       return false;
     }
 
@@ -676,20 +689,21 @@ perform_pipe_sequence (RECODE_TASK task)
              recode_perror (outer, "close ()");
              return false;
            }
-         if (task->input.file = fdopen (pipe_pair[0], "r"),
-             task->input.file == NULL)
+         if (subtask->input.file = fdopen (pipe_pair[0], "r"),
+             subtask->input.file == NULL)
            {
              recode_perror (outer, "fdopen ()");
              return false;
            }
 
          step = request->sequence_array + sequence_index;
-         (*step->transform_routine) (step, task);
+         subtask->step = step;
+         (*step->transform_routine) (subtask);
 
-         fclose (task->input.file);
+         fclose (subtask->input.file);
          if (sequence_index < request->sequence_length - 1
-             || *task->output.name)
-           fclose (task->output.file);
+             || *subtask->output.name)
+           fclose (subtask->output.file);
 
          exit (task->error_so_far < task->fail_level ? EXIT_SUCCESS
                : EXIT_FAILURE);
@@ -698,7 +712,7 @@ perform_pipe_sequence (RECODE_TASK task)
        {
           /* The parent redirects the current output file to the pipe.  */
 
-         if (dup2 (pipe_pair[1], fileno (task->output.file)) < 0)
+         if (dup2 (pipe_pair[1], fileno (subtask->output.file)) < 0)
            {
              recode_perror (outer, "dup2 ()");
              return false;
@@ -719,22 +733,23 @@ perform_pipe_sequence (RECODE_TASK task)
   /* All the children are created, blocked on read.  Now, feed the whole
      chain of processes with the output of the first recoding step.  */
 
-  if (!*task->input.name)
-    task->input.file = stdin;
-  else if (task->input.file = fopen (task->input.name, "r"),
-          task->input.file == NULL)
+  if (!*subtask->input.name)
+    subtask->input.file = stdin;
+  else if (subtask->input.file = fopen (subtask->input.name, "r"),
+          subtask->input.file == NULL)
     {
-      recode_perror (outer, "fopen (%s)", task->input.name);
+      recode_perror (outer, "fopen (%s)", subtask->input.name);
       return false;
     }
 
   step = request->sequence_array;
-  (*step->transform_routine) (step, task);
+  subtask->step = step;
+  (*step->transform_routine) (subtask);
 
-  if (*task->input.name)
-    fclose (task->input.file);
+  if (*subtask->input.name)
+    fclose (subtask->input.file);
 
-  fclose (task->output.file);
+  fclose (subtask->output.file);
 
   /* Wait on all children, mainly to avoid synchronisation problems on
      output file contents, but also to reduce the number of zombie
@@ -774,7 +789,7 @@ perform_pipe_sequence (RECODE_TASK task)
       }
 #endif
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 #else /* not 1 */
@@ -783,31 +798,38 @@ static bool
 perform_pipe_sequence (RECODE_TASK task)
 {
   RECODE_CONST_REQUEST request = task->request;
+  struct recode_subtask subtask_block;
+  RECODE_SUBTASK subtask = &subtask_block;
 
   unsigned sequence_index;     /* index into sequence */
-  RECODE_CONST_STEP step; /* pointer into single_steps */
+  RECODE_CONST_STEP step;      /* pointer into single_steps */
 
   int pipe_pair[2];            /* pair of file descriptors for a pipe */
   int child_process;           /* child process number, zero if child */
   int wait_status;             /* status returned by wait() */
 
+  memset (subtask, 0, sizeof (struct recode_subtask));
+  subtask->task = task;
+  subtask->input = task->input;
+  subtask->output = task->output;
+
   /* Prepare the final files.  */
 
-  if (!*task->input.name)
-    task->input.file = stdin;
-  else if (task->input.file = fopen (task->input.name, "r"),
-          task->input.file == NULL)
+  if (!*subtask->input.name)
+    subtask->input.file = stdin;
+  else if (subtask->input.file = fopen (subtask->input.name, "r"),
+          subtask->input.file == NULL)
     {
-      recode_perror (outer, "fopen (%s)", task->input.name);
+      recode_perror (outer, "fopen (%s)", subtask->input.name);
       return false;
     }
 
-  if (!*task->output.name)
-    task->output.file = stdout;
-  else if (task->output.file = fopen (task->output.name, "w"),
-          task->output.file == NULL)
+  if (!*subtask->output.name)
+    subtask->output.file = stdout;
+  else if (subtask->output.file = fopen (subtask->output.name, "w"),
+          subtask->output.file == NULL)
     {
-      recode_perror (outer, "fopen (%s)", task->output.name);
+      recode_perror (outer, "fopen (%s)", subtask->output.name);
       return false;
     }
 
@@ -838,20 +860,21 @@ perform_pipe_sequence (RECODE_TASK task)
              recode_perror (outer, "close ()");
              return false;
            }
-         if (task->input.file = fdopen (pipe_pair[0], "r"),
-             task->input.file == NULL)
+         if (subtask->input.file = fdopen (pipe_pair[0], "r"),
+             subtask->input.file == NULL)
            {
              recode_perror (outer, "fdopen ()");
              return false;
            }
 
          step = request->sequence_array[sequence_index];
-         (*step->transform_routine) (step, task);
+         subtask->step = step;
+         (*step->transform_routine) (subtask);
 
-         fclose (task->input.file);
+         fclose (subtask->input.file);
          if (sequence_index < request->sequence_length - 1
-             || *task->output.name)
-           fclose (task->output.file);
+             || *subtask->output.name)
+           fclose (subtask->output.file);
 
          exit (task->error_so_far < task->fail_level ? EXIT_SUCCESS
                : EXIT_FAILURE);
@@ -860,7 +883,7 @@ perform_pipe_sequence (RECODE_TASK task)
        {
           /* The parent redirects the current output file to the pipe.  */
 
-         if (dup2 (pipe_pair[1], fileno (task->output.file)) < 0)
+         if (dup2 (pipe_pair[1], fileno (subtask->output.file)) < 0)
            {
              recode_perror (outer, "dup2 ()");
              return false;
@@ -884,22 +907,23 @@ perform_pipe_sequence (RECODE_TASK task)
   /* All the children are created, blocked on read.  Now, feed the whole
      chain of processes with the output of the first recoding step.  */
 
-  if (!*task->input.name)
-    task->input.file = stdin;
-  else if (task->input.file = fopen (task->input.name, "r"),
-          task->input.file == NULL)
+  if (!*subtask->input.name)
+    subtask->input.file = stdin;
+  else if (subtask->input.file = fopen (subtask->input.name, "r"),
+          subtask->input.file == NULL)
     {
-      recode_perror (outer, "fopen (%s)", task->input.name);
+      recode_perror (outer, "fopen (%s)", subtask->input.name);
       return false;
     }
 
   step = request->sequence_array[0];
-  (*step->transform_routine) (step, task);
+  subtask->step = step;
+  (*step->transform_routine) (subtask);
 
-  if (*task->input.name)
-    fclose (task->input.file);
+  if (*subtask->input.name)
+    fclose (subtask->input.file);
 
-  fclose (task->output.file);
+  fclose (subtask->output.file);
 
   /* Wait on all children, mainly to avoid synchronisation problems on
      output file contents, but also to reduce the number of zombie
@@ -936,7 +960,7 @@ perform_pipe_sequence (RECODE_TASK task)
        task->error_at_step = step;
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 #endif /* not 1 */
@@ -1003,8 +1027,6 @@ bool
 recode_perform_task (RECODE_TASK task)
 {
   RECODE_CONST_REQUEST request = task->request;
-
-  RECODE_CONST_STEP step;
   bool success;
 
 #if DOSWIN_OR_OS2
@@ -1067,40 +1089,50 @@ recode_perform_task (RECODE_TASK task)
       }
   else
     {
+      struct recode_subtask subtask_block;
+      RECODE_SUBTASK subtask = &subtask_block;
+
       /* Execute a simple recoding (a single step, or no step at all).  */
 
-      if (task->input.name)
-       if (!*task->input.name)
-         task->input.file = stdin;
-       else if (task->input.file = fopen (task->input.name, "r"),
-                task->input.file == NULL)
+      memset (subtask, 0, sizeof (struct recode_subtask));
+      subtask->task = task;
+      subtask->input = task->input;
+      subtask->output = task->output;
+
+      if (subtask->input.name)
+       if (!*subtask->input.name)
+         subtask->input.file = stdin;
+       else if (subtask->input.file = fopen (subtask->input.name, "r"),
+                subtask->input.file == NULL)
          {
-           recode_perror (NULL, "fopen (%s)", task->input.name);
+           recode_perror (NULL, "fopen (%s)", subtask->input.name);
            return false;
          }
 
-      if (task->output.name)
-       if (!*task->output.name)
-         task->output.file = stdout;
-       else if (task->output.file = fopen (task->output.name, "w"),
-                task->output.file == NULL)
+      if (subtask->output.name)
+       if (!*subtask->output.name)
+         subtask->output.file = stdout;
+       else if (subtask->output.file = fopen (subtask->output.name, "w"),
+                subtask->output.file == NULL)
          {
-           recode_perror (NULL, "fopen (%s)", task->output.name);
+           recode_perror (NULL, "fopen (%s)", subtask->output.name);
            return false;
          }
 
       if (request->sequence_length == 1)
        {
-         step = request->sequence_array;
-         success = (*step->transform_routine) (step, task);
+         RECODE_CONST_STEP step = request->sequence_array;
+
+         subtask->step = step;
+         success = (*step->transform_routine) (subtask);
        }
       else
-       success = transform_mere_copy (task);
+       success = transform_mere_copy (subtask);
 
-      if (task->input.name && *task->input.name)
-       fclose (task->input.file);
-      if (task->output.name && *task->output.name)
-       fclose (task->output.file);
+      if (subtask->input.name && *subtask->input.name)
+       fclose (subtask->input.file);
+      if (subtask->output.name && *subtask->output.name)
+       fclose (subtask->output.file);
     }
 
   return success;
index 0aa52a878892b7d7d45fe40c3d681e644a3620b8..721b1a9a385ce7e2b9e604d8c133c94834a44ed0 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1989.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -31,89 +30,89 @@ d                   [:"]
 l                      [a-zA-Z]
 %%
 
-``                     { put_byte (171, task); }
-''                     { put_byte (187, task); }
+``                     { put_byte (171, subtask); }
+''                     { put_byte (187, subtask); }
 
-A`                     { put_byte (192, task); }
-A^                     { put_byte (194, task); }
+A`                     { put_byte (192, subtask); }
+A^                     { put_byte (194, subtask); }
 A{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (196, task);
+                           put_byte (196, subtask);
                          else
                            ECHO;
                        }
-a`                     { put_byte (224, task); }
-a^                     { put_byte (226, task); }
+a`                     { put_byte (224, subtask); }
+a^                     { put_byte (226, subtask); }
 a{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (228, task);
+                           put_byte (228, subtask);
                          else
                            ECHO;
                        }
 
-C\,/[aAoOuU]           { put_byte (199, task); }
-c\,/[aAoOuU]           { put_byte (231, task); }
+C\,/[aAoOuU]           { put_byte (199, subtask); }
+c\,/[aAoOuU]           { put_byte (231, subtask); }
 
-E`                     { put_byte (200, task); }
-E'''                   { put_byte (201, task); put_byte (187, task); }
-E''                    { put_byte ('E', task); put_byte (187, task); }
-E'                     { put_byte (201, task); }
-E^                     { put_byte (202, task); }
+E`                     { put_byte (200, subtask); }
+E'''                   { put_byte (201, subtask); put_byte (187, subtask); }
+E''                    { put_byte ('E', subtask); put_byte (187, subtask); }
+E'                     { put_byte (201, subtask); }
+E^                     { put_byte (202, subtask); }
 E{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (203, task);
+                           put_byte (203, subtask);
                          else
                            ECHO;
                        }
-e`                     { put_byte (232, task); }
-e'''                   { put_byte (233, task); put_byte (187, task); }
-e''                    { put_byte ('e', task); put_byte (187, task); }
-e'                     { put_byte (233, task); }
-e^                     { put_byte (234, task); }
+e`                     { put_byte (232, subtask); }
+e'''                   { put_byte (233, subtask); put_byte (187, subtask); }
+e''                    { put_byte ('e', subtask); put_byte (187, subtask); }
+e'                     { put_byte (233, subtask); }
+e^                     { put_byte (234, subtask); }
 e{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (235, task);
+                           put_byte (235, subtask);
                          else
                            ECHO;
                        }
 
-I`                     { put_byte (204, task); }
-I^                     { put_byte (206, task); }
+I`                     { put_byte (204, subtask); }
+I^                     { put_byte (206, subtask); }
 I{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (207, task);
+                           put_byte (207, subtask);
                          else
                            ECHO;
                        }
-i`                     { put_byte (236, task); }
-i^                     { put_byte (238, task); }
+i`                     { put_byte (236, subtask); }
+i^                     { put_byte (238, subtask); }
 i{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (239, task);
+                           put_byte (239, subtask);
                          else
                            ECHO;
                        }
 
-O`                     { put_byte (210, task); }
-O^                     { put_byte (212, task); }
+O`                     { put_byte (210, subtask); }
+O^                     { put_byte (212, subtask); }
 O{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (214, task);
+                           put_byte (214, subtask);
                          else
                            ECHO;
                        }
-o`                     { put_byte (242, task); }
-o^                     { put_byte (244, task); }
+o`                     { put_byte (242, subtask); }
+o^                     { put_byte (244, subtask); }
 o{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (246, task);
+                           put_byte (246, subtask);
                          else
                            ECHO;
                        }
 
-U`                     { put_byte (217, task); }
-U^                     { put_byte (219, task); }
+U`                     { put_byte (217, subtask); }
+U^                     { put_byte (219, subtask); }
 U{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (220, task);
+                           put_byte (220, subtask);
                          else
                            ECHO;
                        }
-u`                     { put_byte (249, task); }
-u^                     { put_byte (251, task); }
+u`                     { put_byte (249, subtask); }
+u^                     { put_byte (251, subtask); }
 u{d}/{l}               { if (yytext[1] == request->diaeresis_char)
-                           put_byte (252, task);
+                           put_byte (252, subtask);
                          else
                            ECHO;
                        }
@@ -158,23 +157,23 @@ texte_latin1_diaeresis (void)
               diagnostic in flex.  This astonishing bug has been hard to
               isolate, so I'll leave this comment around for a while.  */
 
-         case 'A': put_byte (196, task); break;
-         case 'E': put_byte (203, task); break;
-         case 'I': put_byte (207, task); break;
-         case 'O': put_byte (214, task); break;
-         case 'U': put_byte (220, task); break;
-         case 'a': put_byte (228, task); break;
-         case 'e': put_byte (235, task); break;
-         case 'i': put_byte (239, task); break;
-         case 'o': put_byte (246, task); break;
-         case 'u': put_byte (252, task); break;
-         case 'y': put_byte (255, task); break;
-         default:  put_byte (yytext[counter], task);
+         case 'A': put_byte (196, subtask); break;
+         case 'E': put_byte (203, subtask); break;
+         case 'I': put_byte (207, subtask); break;
+         case 'O': put_byte (214, subtask); break;
+         case 'U': put_byte (220, subtask); break;
+         case 'a': put_byte (228, subtask); break;
+         case 'e': put_byte (235, subtask); break;
+         case 'i': put_byte (239, subtask); break;
+         case 'o': put_byte (246, subtask); break;
+         case 'u': put_byte (252, subtask); break;
+         case 'y': put_byte (255, subtask); break;
+         default:  put_byte (yytext[counter], subtask);
          }
        counter++;
       }
     else
-      put_byte (yytext[counter], task);
+      put_byte (yytext[counter], subtask);
 }
 
 bool
index 7c404c21416d0dca6962338825597fdcc2a29b55..2aea93e2427ce1b789b39f9d5aca5efea071b80b 100644 (file)
--- a/src/ucs.c
+++ b/src/ucs.c
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -375,8 +374,7 @@ static const unsigned short combining_data [] =
    the first, starting with a byte order mark, regardless of byte order.  */
 
 bool
-get_ucs2 (unsigned *value, RECODE_CONST_STEP step,
-         RECODE_TASK task)
+get_ucs2 (unsigned *value, RECODE_SUBTASK subtask)
 {
   while (true)
     {
@@ -384,35 +382,35 @@ get_ucs2 (unsigned *value, RECODE_CONST_STEP step,
       int character2;
       unsigned chunk;
 
-      character1 = get_byte (task);
+      character1 = get_byte (subtask);
       if (character1 == EOF)
        return false;
-      character2 = get_byte (task);
+      character2 = get_byte (subtask);
       if (character2 == EOF)
        {
-         SET_TASK_ERROR (RECODE_INVALID_INPUT, step, task);
+         SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask);
          return false;
        }
 
-      switch (task->swap_input)
+      switch (subtask->task->swap_input)
        {
        case RECODE_SWAP_UNDECIDED:
          chunk = (MASK (8) & character1) << 8 | MASK (8) & character2;
          switch (chunk)
            {
            case BYTE_ORDER_MARK:
-             task->swap_input = RECODE_SWAP_NO;
+             subtask->task->swap_input = RECODE_SWAP_NO;
              break;
 
            case BYTE_ORDER_MARK_SWAPPED:
-             task->swap_input = RECODE_SWAP_YES;
+             subtask->task->swap_input = RECODE_SWAP_YES;
              break;
 
            default:
              *value = chunk;
-             task->swap_input = RECODE_SWAP_NO;
-             if (task->byte_order_mark)
-               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             subtask->task->swap_input = RECODE_SWAP_NO;
+             if (subtask->task->byte_order_mark)
+               RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              return true;
            }
          break;
@@ -422,12 +420,12 @@ get_ucs2 (unsigned *value, RECODE_CONST_STEP step,
          switch (chunk)
            {
            case BYTE_ORDER_MARK:
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              break;
 
            case BYTE_ORDER_MARK_SWAPPED:
-             task->swap_input = RECODE_SWAP_YES;
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             subtask->task->swap_input = RECODE_SWAP_YES;
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              break;
 
            default:
@@ -441,12 +439,12 @@ get_ucs2 (unsigned *value, RECODE_CONST_STEP step,
          switch (chunk)
            {
            case BYTE_ORDER_MARK:
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              break;
 
            case BYTE_ORDER_MARK_SWAPPED:
-             task->swap_input = RECODE_SWAP_NO;
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             subtask->task->swap_input = RECODE_SWAP_NO;
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
              break;
 
            default:
@@ -463,10 +461,10 @@ get_ucs2 (unsigned *value, RECODE_CONST_STEP step,
 `-------------------------------*/
 
 bool
-put_ucs2 (unsigned value, RECODE_TASK task)
+put_ucs2 (unsigned value, RECODE_SUBTASK subtask)
 {
-  put_byte (MASK (8) & value >> 8, task);
-  put_byte (MASK (8) & value, task);
+  put_byte (MASK (8) & value >> 8, subtask);
+  put_byte (MASK (8) & value, subtask);
   return true;
 }
 \f
@@ -477,37 +475,36 @@ put_ucs2 (unsigned value, RECODE_TASK task)
 `-------------------------------*/
 
 bool
-get_ucs4 (unsigned *value, RECODE_CONST_STEP step,
-         RECODE_TASK task)
+get_ucs4 (unsigned *value, RECODE_SUBTASK subtask)
 {
   int character;
   unsigned chunk;
 
-  character = get_byte (task);
+  character = get_byte (subtask);
   if (character == EOF)
     return false;
   chunk = (MASK (8) & character) << 24;
 
-  character = get_byte (task);
+  character = get_byte (subtask);
   if (character == EOF)
     {
-      SET_TASK_ERROR (RECODE_INVALID_INPUT, step, task);
+      SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask);
       return false;
     }
   chunk |= (MASK (8) & character) << 16;
 
-  character = get_byte (task);
+  character = get_byte (subtask);
   if (character == EOF)
     {
-      SET_TASK_ERROR (RECODE_INVALID_INPUT, step, task);
+      SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask);
       return false;
     }
   chunk |= (MASK (8) & character) << 8;
 
-  character = get_byte (task);
+  character = get_byte (subtask);
   if (character == EOF)
     {
-      SET_TASK_ERROR (RECODE_INVALID_INPUT, step, task);
+      SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask);
       return false;
     }
   chunk |= MASK (8) & character;
@@ -521,12 +518,12 @@ get_ucs4 (unsigned *value, RECODE_CONST_STEP step,
 `-------------------------------*/
 
 bool
-put_ucs4 (unsigned value, RECODE_TASK task)
+put_ucs4 (unsigned value, RECODE_SUBTASK subtask)
 {
-  put_byte (MASK (8) & value >> 24, task);
-  put_byte (MASK (8) & value >> 16, task);
-  put_byte (MASK (8) & value >> 8, task);
-  put_byte (MASK (8) & value, task);
+  put_byte (MASK (8) & value >> 24, subtask);
+  put_byte (MASK (8) & value >> 16, subtask);
+  put_byte (MASK (8) & value >> 8, subtask);
+  put_byte (MASK (8) & value, subtask);
   return true;
 }
 \f
@@ -563,14 +560,14 @@ init_ucs2_combined (RECODE_STEP step,
 `-----------------------------*/
 
 static bool
-transform_latin1_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_latin1_ucs4 (RECODE_SUBTASK subtask)
 {
   int character;
 
-  while (character = get_byte (task), character != EOF)
-    put_ucs4 (MASK (8) & character, task);
+  while (character = get_byte (subtask), character != EOF)
+    put_ucs4 (MASK (8) & character, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*---------------------------.
@@ -578,14 +575,14 @@ transform_latin1_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
 `---------------------------*/
 
 static bool
-transform_ucs2_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ucs2_ucs4 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
-  while (get_ucs2 (&value, step, task))
-    put_ucs4 (value, task);
+  while (get_ucs2 (&value, subtask))
+    put_ucs4 (value, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /*-----------------------------------------------------------------.
index 45c95eacafdef724ab8adae6ba7738c9d39d7fd8..d167e07e1275db3a8668f6adcae9c173113e5652 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
 #include "common.h"
 
 static bool
-transform_ucs4_utf16 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ucs4_utf16 (RECODE_SUBTASK subtask)
 {
   int character;
   unsigned value;
   unsigned chunk;
 
-  if (get_ucs4 (&value, step, task))
+  if (get_ucs4 (&value, subtask))
     {
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (true)
        {
@@ -40,37 +39,37 @@ transform_ucs4_utf16 (RECODE_CONST_STEP step, RECODE_TASK task)
                /* Double UCS-2 character.  */
 
                value -= 1 << 16;
-               put_ucs2 (0xD800 | (MASK (10) & value >> 10), task);
-               put_ucs2 (0xDC00 | (MASK (10) & value), task);
+               put_ucs2 (0xD800 | (MASK (10) & value >> 10), subtask);
+               put_ucs2 (0xDC00 | (MASK (10) & value), subtask);
              }
            else
              {
-               RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
-               put_ucs2 (REPLACEMENT_CHARACTER, task);
+               RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
+               put_ucs2 (REPLACEMENT_CHARACTER, subtask);
              }
          else
            {
              /* Single UCS-2 character.  */
 
              if (value >= 0xD800 && value < 0xE000)
-               RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-             put_ucs2 (value, task);
+               RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+             put_ucs2 (value, subtask);
            }
 
-         if (!get_ucs4 (&value, step, task))
+         if (!get_ucs4 (&value, subtask))
            break;
        }
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_utf16_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_utf16_ucs4 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
-  if (get_ucs2 (&value, step, task))
+  if (get_ucs2 (&value, subtask))
 
     while (true)
       if (value >= 0xD800 && value < 0xE000)
@@ -78,22 +77,22 @@ transform_utf16_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
          {
            unsigned chunk;
 
-           if (!get_ucs2 (&chunk, step, task))
+           if (!get_ucs2 (&chunk, subtask))
              break;
 
            if (chunk >= 0xDC00 && chunk < 0xE000)
              {
                put_ucs4 ((((1 << 16) + ((value - 0xD800) << 10))
                           | (chunk - 0xDC00)),
-                         task);
-               if (!get_ucs2 (&value, step, task))
+                         subtask);
+               if (!get_ucs2 (&value, subtask))
                  break;
              }
            else
              {
                /* Discard the first chunk if the pair is invalid.  */
 
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                value = chunk;
              }
          }
@@ -101,40 +100,40 @@ transform_utf16_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
          {
            /* Discard a second chunk when presented first.  */
 
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-           if (!get_ucs2 (&value, step, task))
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+           if (!get_ucs2 (&value, subtask))
              break;
          }
       else
        {
-         put_ucs4 (value, task);
-         if (!get_ucs2 (&value, step, task))
+         put_ucs4 (value, subtask);
+         if (!get_ucs2 (&value, subtask))
            break;
        }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_ucs2_utf16 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ucs2_utf16 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
   /* This function does nothing, besides checking that the number of input
      bytes is even, and that special UTF-16 values do not appear.  */
 
-  while (get_ucs2 (&value, step, task))
+  while (get_ucs2 (&value, subtask))
     {
       if (value >= 0xD800 && value < 0xE000)
-       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, step, task);
-      put_ucs2 (value, task);
+       RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask);
+      put_ucs2 (value, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_utf16_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_utf16_ucs2 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
@@ -142,10 +141,10 @@ transform_utf16_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
      valid UTF-16, and replacing UTF-16 extended values with the replacement
      character.  */
 
-  if (get_ucs2 (&value, step, task))
+  if (get_ucs2 (&value, subtask))
     {
-      if (task->byte_order_mark)
-       put_ucs2 (BYTE_ORDER_MARK, task);
+      if (subtask->task->byte_order_mark)
+       put_ucs2 (BYTE_ORDER_MARK, subtask);
 
       while (true)
        if (value >= 0xD800 && value < 0xE000)
@@ -153,21 +152,21 @@ transform_utf16_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
            {
              unsigned chunk;
 
-             if (!get_ucs2 (&chunk, step, task))
+             if (!get_ucs2 (&chunk, subtask))
                break;
 
              if (chunk >= 0xDC00 && chunk < 0xE000)
                {
-                 RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, step, task);
-                 put_ucs2 (REPLACEMENT_CHARACTER, task);
-                 if (!get_ucs2 (&value, step, task))
+                 RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask);
+                 put_ucs2 (REPLACEMENT_CHARACTER, subtask);
+                 if (!get_ucs2 (&value, subtask))
                    break;
                }
              else
                {
                  /* Discard the first chunk if the pair is invalid.  */
 
-                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                  value = chunk;
                }
            }
@@ -175,19 +174,19 @@ transform_utf16_ucs2 (RECODE_CONST_STEP step, RECODE_TASK task)
            {
              /* Discard a second chunk when presented first.  */
 
-             RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-             if (!get_ucs2 (&value, step, task))
+             RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+             if (!get_ucs2 (&value, subtask))
                break;
            }
        else
          {
-           put_ucs2 (value, task);
-           if (!get_ucs2 (&value, step, task))
+           put_ucs2 (value, subtask);
+           if (!get_ucs2 (&value, subtask))
              break;
          }
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index af45bd00bca865cd7c4baaec428f0d1392f18836..b503331c3fcfcac91883be41b522fa71a26d8e9c 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
@@ -71,13 +70,13 @@ static char classification[128] =
    encoded into Base64 characters.  */
 
 static bool
-transform_utf16_utf7 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_utf16_utf7 (RECODE_SUBTASK subtask)
 {
   int character;
   unsigned value;
 
-  if (!get_ucs2 (&value, step, task))
-    TASK_RETURN (task);
+  if (!get_ucs2 (&value, subtask))
+    SUBTASK_RETURN (subtask);
 
   while (true)
 
@@ -85,15 +84,15 @@ transform_utf16_utf7 (RECODE_CONST_STEP step, RECODE_TASK task)
       {
        /* Copy one direct character.  */
 
-       put_byte (value, task);
-       if (!get_ucs2 (&value, step, task))
-         TASK_RETURN (task);
+       put_byte (value, subtask);
+       if (!get_ucs2 (&value, subtask))
+         SUBTASK_RETURN (subtask);
       }
     else
       {
        /* Copy a string of non-direct characters.  */
 
-       put_byte ('+', task);
+       put_byte ('+', subtask);
 
        while (!IS_BODY_DIRECT (value))
          {
@@ -101,180 +100,180 @@ transform_utf16_utf7 (RECODE_CONST_STEP step, RECODE_TASK task)
 
            /* Process first UCS-2 value of a triplet.  */
 
-           put_byte (base64_value_to_char[MASK (6) & value >> 10], task);
-           put_byte (base64_value_to_char[MASK (6) & value >> 4], task);
+           put_byte (base64_value_to_char[MASK (6) & value >> 10], subtask);
+           put_byte (base64_value_to_char[MASK (6) & value >> 4], subtask);
            split = (value & MASK (4)) << 2;
-           if (!get_ucs2 (&value, step, task))
+           if (!get_ucs2 (&value, subtask))
              {
-               put_byte (base64_value_to_char[split], task);
-               TASK_RETURN (task);
+               put_byte (base64_value_to_char[split], subtask);
+               SUBTASK_RETURN (subtask);
              }
 
            /* Process second UCS-2 value of a triplet.  */
 
            if (IS_BODY_DIRECT (value))
              {
-               put_byte (base64_value_to_char[split], task);
+               put_byte (base64_value_to_char[split], subtask);
                break;
              }
            put_byte (base64_value_to_char[split | (MASK (2) & value >> 14)],
-                     task);
-           put_byte (base64_value_to_char[MASK (6) & value >> 8], task);
-           put_byte (base64_value_to_char[MASK (6) & value >> 2], task);
+                     subtask);
+           put_byte (base64_value_to_char[MASK (6) & value >> 8], subtask);
+           put_byte (base64_value_to_char[MASK (6) & value >> 2], subtask);
            split = (value & MASK (2)) << 4;
-           if (!get_ucs2 (&value, step, task))
+           if (!get_ucs2 (&value, subtask))
              {
-               put_byte (base64_value_to_char[split], task);
-               TASK_RETURN (task);
+               put_byte (base64_value_to_char[split], subtask);
+               SUBTASK_RETURN (subtask);
              }
 
            /* Process third UCS-2 value of a triplet.  */
 
            if (IS_BODY_DIRECT (value))
              {
-               put_byte (base64_value_to_char[split], task);
+               put_byte (base64_value_to_char[split], subtask);
                break;
              }
            put_byte (base64_value_to_char[split | (MASK (4) & value >> 12)],
-                     task);
-           put_byte (base64_value_to_char[MASK (6) & value >> 6], task);
-           put_byte (base64_value_to_char[MASK (6) & value], task);
-           if (!get_ucs2 (&value, step, task))
-             TASK_RETURN (task);
+                     subtask);
+           put_byte (base64_value_to_char[MASK (6) & value >> 6], subtask);
+           put_byte (base64_value_to_char[MASK (6) & value], subtask);
+           if (!get_ucs2 (&value, subtask))
+             SUBTASK_RETURN (subtask);
          }
 
        if (IS_BASE64 (value))
-         put_byte ('-', task);
+         put_byte ('-', subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_utf7_utf16 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_utf7_utf16 (RECODE_SUBTASK subtask)
 {
   int character;
   unsigned value;
   unsigned split;
 
-  character = get_byte (task);
+  character = get_byte (subtask);
 
-  if (character != EOF && task->byte_order_mark)
-    put_ucs2 (BYTE_ORDER_MARK, task);
+  if (character != EOF && subtask->task->byte_order_mark)
+    put_ucs2 (BYTE_ORDER_MARK, subtask);
 
   while (character != EOF)
     if (character == '+')
       {
-       character = get_byte (task);
+       character = get_byte (subtask);
        while (IS_BASE64 (character))
          {
            /* Process first byte of first quadruplet.  */
 
            value = base64_char_to_value[character] << 10;
-           character = get_byte (task);
+           character = get_byte (subtask);
 
            /* Process second byte of first quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            value |= base64_char_to_value[character] << 4;
-           character = get_byte (task);
+           character = get_byte (subtask);
 
            /* Process third byte of first quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            split = base64_char_to_value[character];
            value |= split >> 2;
            if (IS_BODY_DIRECT (value))
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-           put_ucs2 (value, task);
-           character = get_byte (task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+           put_ucs2 (value, subtask);
+           character = get_byte (subtask);
 
            /* Process fourth byte of first quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
                if (MASK (2) & split)
-                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            value = ((MASK (2) & split) << 14
                     | base64_char_to_value[character] << 8);
-           character = get_byte (task);
+           character = get_byte (subtask);
 
            /* Process first byte of second quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            value |= base64_char_to_value[character] << 2;
-           character = get_byte (task);
+           character = get_byte (subtask);
 
            /* Process second byte of second quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            split = base64_char_to_value[character];
            value |= split >> 4;
            if (IS_BODY_DIRECT (value))
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-           put_ucs2 (value, task);
-           character = get_byte (task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+           put_ucs2 (value, subtask);
+           character = get_byte (subtask);
 
            /* Process third byte of second quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
                if (MASK (4) & split)
-                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+                 RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            value = ((MASK (4) & split) << 12
                     | base64_char_to_value[character] << 6);
-           character = get_byte (task);
+           character = get_byte (subtask);
 
            /* Process fourth byte of second quadruplet.  */
 
            if (!IS_BASE64 (character))
              {
-               RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+               RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
                break;
              }
            value |= base64_char_to_value[character];
            if (IS_BODY_DIRECT (value))
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-           put_ucs2 (value, task);
-           character = get_byte (task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+           put_ucs2 (value, subtask);
+           character = get_byte (subtask);
          }
        if (character == '-')
          {
-           character = get_byte (task);
+           character = get_byte (subtask);
            if (!IS_BASE64 (character))
-             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+             RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
          }
       }
     else
       {
        if (!IS_BODY_DIRECT (character))
-         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
-       put_byte (NUL, task);
-       put_byte (character, task);
-       character = get_byte (task);
+         RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask);
+       put_byte (NUL, subtask);
+       put_byte (character, subtask);
+       character = get_byte (subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index 4a19afc8bafab5abbfb2fc630e7a2091d654e680..ed603314c4825801af0a003718c530f5febed4a8 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1996, 97, 98, 99 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1996.
 
    The `recode' Library is free software; you can redistribute it and/or
    This macro is meant to be used only within the `while' loop in
    `transform_utf8_ucs[24]'.  */
 #define GET_DATA_BYTE \
-  character = get_byte (task);                                         \
+  character = get_byte (subtask);                                              \
   if (character == EOF)                                                        \
     {                                                                  \
-      RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);               \
+      RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);          \
       break;                                                           \
     }                                                                  \
   else if ((MASK (2) << 6 & character) != 1 << 7)                      \
     {                                                                  \
-      RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);               \
+      RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);          \
       continue;                                                                \
     }                                                                  \
   else
   GET_DATA_BYTE /* ... else */ value |= (MASK (6) & character) << Position
 \f
 static bool
-transform_ucs2_utf8 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ucs2_utf8 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
-  while (get_ucs2 (&value, step, task))
+  while (get_ucs2 (&value, subtask))
     {
       if (value & ~MASK (7))
        if (value & ~MASK (11))
          {
            /* 3 bytes - more than 11 bits, but not more than 16.  */
-           put_byte ((MASK (3) << 5) | (MASK (6) & value >> 12), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 6), task);
-           put_byte ((1 << 7) | (MASK (6) & value), task);
+           put_byte ((MASK (3) << 5) | (MASK (6) & value >> 12), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value), subtask);
          }
        else
          {
            /* 2 bytes - more than 7 bits, but not more than 11.  */
-           put_byte ((MASK (2) << 6) | (MASK (6) & value >> 6), task);
-           put_byte ((1 << 7) | (MASK (6) & value), task);
+           put_byte ((MASK (2) << 6) | (MASK (6) & value >> 6), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value), subtask);
          }
       else
        /* 1 byte - not more than 7 bits (that is, ASCII).  */
-       put_byte (value, task);
+       put_byte (value, subtask);
     }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 static bool
-transform_ucs4_utf8 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_ucs4_utf8 (RECODE_SUBTASK subtask)
 {
   unsigned value;
 
-  while (get_ucs4 (&value, step, task))
+  while (get_ucs4 (&value, subtask))
     if (value & ~MASK (16))
       if (value & ~MASK (26))
        if (value & ~MASK (31))
@@ -88,62 +87,62 @@ transform_ucs4_utf8 (RECODE_CONST_STEP step, RECODE_TASK task)
 #if HANDLE_32_BITS
            /* 7 bytes - more than 31 bits (that is, exactly 32 :-).  */
            put_byte (MASK (7) << 1);
-           put_byte ((1 << 7) | (MASK (6) & value >> 30), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 24), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 18), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 12), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 6), task);
-           put_byte ((1 << 7) | (MASK (6) & value), task);
+           put_byte ((1 << 7) | (MASK (6) & value >> 30), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 24), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 18), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value), subtask);
 #else
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
 #endif
          }
        else
          {
            /* 6 bytes - more than 26 bits, but not more than 31.  */
-           put_byte ((MASK (6) << 2) | (MASK (6) & value >> 30), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 24), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 18), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 12), task);
-           put_byte ((1 << 7) | (MASK (6) & value >> 6), task);
-           put_byte ((1 << 7) | (MASK (6) & value), task);
+           put_byte ((MASK (6) << 2) | (MASK (6) & value >> 30), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 24), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 18), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask);
+           put_byte ((1 << 7) | (MASK (6) & value), subtask);
          }
       else if (value & ~MASK (21))
        {
          /* 5 bytes - more than 21 bits, but not more than 26.  */
-         put_byte ((MASK (5) << 3) | (MASK (6) & value >> 24), task);
-         put_byte ((1 << 7) | (MASK (6) & value >> 18), task);
-         put_byte ((1 << 7) | (MASK (6) & value >> 12), task);
-         put_byte ((1 << 7) | (MASK (6) & value >> 6), task);
-         put_byte ((1 << 7) | (MASK (6) & value), task);
+         put_byte ((MASK (5) << 3) | (MASK (6) & value >> 24), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value >> 18), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value), subtask);
        }
       else
        {
          /* 4 bytes - more than 16 bits, but not more than 21.  */
-         put_byte ((MASK (4) << 4) | (MASK (6) & value >> 18), task);
-         put_byte ((1 << 7) | (MASK (6) & value >> 12), task);
-         put_byte ((1 << 7) | (MASK (6) & value >> 6), task);
-         put_byte ((1 << 7) | (MASK (6) & value), task);
+         put_byte ((MASK (4) << 4) | (MASK (6) & value >> 18), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value), subtask);
        }
     else if (value & ~MASK (7))
       if (value & ~MASK (11))
        {
          /* 3 bytes - more than 11 bits, but not more than 16.  */
-         put_byte ((MASK (3) << 5) | (MASK (6) & value >> 12), task);
-         put_byte ((1 << 7) | (MASK (6) & value >> 6), task);
-         put_byte ((1 << 7) | (MASK (6) & value), task);
+         put_byte ((MASK (3) << 5) | (MASK (6) & value >> 12), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value), subtask);
        }
       else
        {
          /* 2 bytes - more than 7 bits, but not more than 11.  */
-         put_byte ((MASK (2) << 6) | (MASK (6) & value >> 6), task);
-         put_byte ((1 << 7) | (MASK (6) & value), task);
+         put_byte ((MASK (2) << 6) | (MASK (6) & value >> 6), subtask);
+         put_byte ((1 << 7) | (MASK (6) & value), subtask);
        }
     else
       /* 1 byte - not more than 7 bits (that is, ASCII).  */
-      put_byte (value, task);
+      put_byte (value, subtask);
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 /* FIXME: The UTF-8 decoding algorithms do not validate that the minimum
@@ -152,9 +151,9 @@ transform_ucs4_utf8 (RECODE_CONST_STEP step, RECODE_TASK task)
    surface is also a requirement of UTF-8 specification.  */
 
 static bool
-transform_utf8_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
+transform_utf8_ucs4 (RECODE_SUBTASK subtask)
 {
-  int character = get_byte (task);
+  int character = get_byte (subtask);
   unsigned value;
 
   while (character != EOF)
@@ -174,11 +173,11 @@ transform_utf8_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
            GET_DATA_BYTE_AT (12);
            GET_DATA_BYTE_AT (6);
            GET_DATA_BYTE_AT (0);
-           put_ucs4 (value, task);
-           character = get_byte (task);
+           put_ucs4 (value, subtask);
+           character = get_byte (subtask);
 #else
-           RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-           character = get_byte (task);
+           RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+           character = get_byte (subtask);
 #endif
          }
        else
@@ -190,8 +189,8 @@ transform_utf8_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
            GET_DATA_BYTE_AT (12);
            GET_DATA_BYTE_AT (6);
            GET_DATA_BYTE_AT (0);
-           put_ucs4 (value, task);
-           character = get_byte (task);
+           put_ucs4 (value, subtask);
+           character = get_byte (subtask);
          }
       else if ((character & MASK (5) << 3) == MASK (5) << 3)
        {
@@ -201,8 +200,8 @@ transform_utf8_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
          GET_DATA_BYTE_AT (12);
          GET_DATA_BYTE_AT (6);
          GET_DATA_BYTE_AT (0);
-         put_ucs4 (value, task);
-         character = get_byte (task);
+         put_ucs4 (value, subtask);
+         character = get_byte (subtask);
        }
       else
        {
@@ -211,8 +210,8 @@ transform_utf8_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
          GET_DATA_BYTE_AT (12);
          GET_DATA_BYTE_AT (6);
          GET_DATA_BYTE_AT (0);
-         put_ucs4 (value, task);
-         character = get_byte (task);
+         put_ucs4 (value, subtask);
+         character = get_byte (subtask);
        }
     else if ((character & MASK (2) << 6) == MASK (2) << 6)
       if ((character & MASK (3) << 5) == MASK (3) << 5)
@@ -221,31 +220,31 @@ transform_utf8_ucs4 (RECODE_CONST_STEP step, RECODE_TASK task)
          value = (MASK (4) & character) << 12;
          GET_DATA_BYTE_AT (6);
          GET_DATA_BYTE_AT (0);
-         put_ucs4 (value, task);
-         character = get_byte (task);
+         put_ucs4 (value, subtask);
+         character = get_byte (subtask);
        }
       else
        {
          /* 2 bytes - more than 7 bits, but not more than 11.  */
          value = (MASK (5) & character) << 6;
          GET_DATA_BYTE_AT (0);
-         put_ucs4 (value, task);
-         character = get_byte (task);
+         put_ucs4 (value, subtask);
+         character = get_byte (subtask);
        }
     else if ((character & 1 << 7) == 1 << 7)
       {
        /* Valid only as a continuation byte.  */
-       RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
-       character = get_byte (task);
+       RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask);
+       character = get_byte (subtask);
       }
     else
       {
        /* 1 byte - not more than 7 bits (that is, ASCII).  */
-       put_ucs4 (MASK (8) & character, task);
-       character = get_byte (task);
+       put_ucs4 (MASK (8) & character, subtask);
+       character = get_byte (subtask);
       }
 
-  TASK_RETURN (task);
+  SUBTASK_RETURN (subtask);
 }
 
 bool
index 06b1857f3769e8ed1239aaaf2d37767d05e1e05e..889f593887da5807f6d444770be7b4592deef5dc 100644 (file)
@@ -1,6 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993.
 
    The `recode' Library is free software; you can redistribute it and/or
index 4f2c7b105088cc17f18a5286ee337d2e5d872e25..18c4ec53729a89f0264dc0348b5f71e35991e6f3 100644 (file)
--- a/src/vn.c
+++ b/src/vn.c
@@ -1,6 +1,21 @@
 /* Vietnamese charset processing.
    Copyright © 1999 Progiciels Bourbeau-Pinard inc.
-   François Pinard <pinard@iro.umontreal.ca>, 1999.  */
+   Contributed by François Pinard <pinard@iro.umontreal.ca>, 1999.
+
+   The `recode' Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License
+   as published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The `recode' Library is distributed in the hope that it will be
+   useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the `recode' Library; see the file `COPYING.LIB'.
+   If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+   Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "common.h"
 
@@ -278,148 +293,153 @@ static const unsigned short viscii_viqr_data[] =
     253, 'y', '\'', DONE,
     254, 'o', '+', '.', DONE,
     255, 'U', '+', '~', DONE,
+    DONE
   };
 
+#define u(Character) ((unsigned char) (Character))
+/* FIXME: Should not use Latin-1 characters, anyway.  */
+
 static const unsigned short viscii_vni_data[] =
   {
-    2, 'A', 'Ú', DONE,
-    5, 'A', 'Ü', DONE,
-    6, 'A', 'Ã', DONE,
-    20, 'Y', 'Û', DONE,
-    25, 'Y', 'Õ', DONE,
-    30, 'Î', DONE,
-    128, 'A', 'Ï', DONE,
-    129, 'A', 'É', DONE,
-    130, 'A', 'É', DONE,
-    131, 'A', 'Ë', DONE,
-    132, 'A', 'Á', DONE,
-    133, 'A', 'À', DONE,
-    134, 'A', 'Å', DONE,
-    135, 'A', 'Ä', DONE,
-    136, 'E', 'Õ', DONE,
-    137, 'E', 'Ï', DONE,
-    138, 'E', 'Á', DONE,
-    139, 'E', 'À', DONE,
-    140, 'E', 'Å', DONE,
-    141, 'E', 'Ã', DONE,
-    142, 'E', 'Ä', DONE,
-    143, 'O', 'Á', DONE,
-    144, 'O', 'À', DONE,
-    145, 'O', 'Å', DONE,
-    146, 'O', 'Ã', DONE,
-    147, 'O', 'Ä', DONE,
-    148, 'Ô', 'Ï', DONE,
-    149, 'Ô', 'Ù', DONE,
-    150, 'Ô', 'Ø', DONE,
-    151, 'Ô', 'Û', DONE,
-    152, 'Ò', DONE,
-    153, 'O', 'Û', DONE,
-    154, 'O', 'Ï', DONE,
-    155, 'Æ', DONE,
-    156, 'U', 'Û', DONE,
-    157, 'U', 'Õ', DONE,
-    158, 'U', 'Ï', DONE,
-    159, 'Y', 'Ø', DONE,
-    160, 'O', 'Õ', DONE,
-    161, 'a', 'é', DONE,
-    162, 'a', 'è', DONE,
-    163, 'a', 'ë', DONE,
-    164, 'a', 'á', DONE,
-    165, 'a', 'à', DONE,
-    166, 'a', 'å', DONE,
-    167, 'a', 'ä', DONE,
-    168, 'e', 'õ', DONE,
-    169, 'e', 'ï', DONE,
-    170, 'e', 'á', DONE,
-    171, 'e', 'à', DONE,
-    172, 'e', 'å', DONE,
-    173, 'e', 'ã', DONE,
-    174, 'e', 'ä', DONE,
-    175, 'o', 'á', DONE,
-    176, 'o', 'à', DONE,
-    177, 'o', 'å', DONE,
-    178, 'o', 'ã', DONE,
-    179, 'Ô', 'Õ', DONE,
-    180, 'Ô', DONE,
-    181, 'o', 'ä', DONE,
-    182, 'ô', 'ø', DONE,
-    183, 'ô', 'û', DONE,
-    184, 'ò', DONE,
-    185, 'Ö', 'Ï', DONE,
-    186, 'Ö', 'Ù', DONE,
-    187, 'Ö', 'Ø', DONE,
-    188, 'Ö', 'Û', DONE,
-    189, 'ô', DONE,
-    190, 'ô', 'ù', DONE,
-    191, 'Ö', DONE,
-    192, 'A', 'Ø', DONE,
-    193, 'A', 'Ù', DONE,
-    194, 'A', 'Â', DONE,
-    195, 'A', 'Õ', DONE,
-    196, 'A', 'Û', DONE,
-    197, 'A', 'Ê', DONE,
-    198, 'a', 'ú', DONE,
-    199, 'a', 'ü', DONE,
-    200, 'E', 'Ø', DONE,
-    201, 'E', 'Ù', DONE,
-    202, 'E', 'Â', DONE,
-    203, 'E', 'Û', DONE,
-    204, 'Ì', DONE,
-    205, 'Í', DONE,
-    206, 'Ó', DONE,
-    207, 'y', 'ø', DONE,
-    208, 'Ñ', DONE,
-    209, 'ö', 'ù', DONE,
-    210, 'O', 'Ø', DONE,
-    211, 'O', 'Ù', DONE,
-    212, 'O', 'Â', DONE,
-    213, 'a', 'ï', DONE,
-    214, 'y', 'û', DONE,
-    215, 'ö', 'ø', DONE,
-    216, 'ö', 'û', DONE,
-    217, 'U', 'Ø', DONE,
-    218, 'U', 'Ù', DONE,
-    219, 'y', 'õ', DONE,
-    220, 'î', DONE,
-    221, 'Y', 'Ù', DONE,
-    222, 'ô', 'õ', DONE,
-    223, 'ö', DONE,
-    224, 'a', 'ø', DONE,
-    225, 'a', 'ù', DONE,
-    226, 'a', 'â', DONE,
-    227, 'a', 'õ', DONE,
-    228, 'a', 'û', DONE,
-    229, 'a', 'ê', DONE,
-    230, 'ö', 'õ', DONE,
-    231, 'a', 'ã', DONE,
-    232, 'e', 'ø', DONE,
-    233, 'e', 'ù', DONE,
-    234, 'e', 'â', DONE,
-    235, 'e', 'û', DONE,
-    236, 'ì', DONE,
-    237, 'í', DONE,
-    238, 'ó', DONE,
-    239, 'æ', DONE,
-    240, 'ñ', DONE,
-    241, 'ö', 'ï', DONE,
-    242, 'o', 'ø', DONE,
-    243, 'o', 'ù', DONE,
-    244, 'o', 'â', DONE,
-    245, 'o', 'õ', DONE,
-    246, 'o', 'û', DONE,
-    247, 'o', 'ï', DONE,
-    248, 'u', 'ï', DONE,
-    249, 'u', 'ø', DONE,
-    250, 'u', 'ù', DONE,
-    251, 'u', 'õ', DONE,
-    252, 'u', 'û', DONE,
-    253, 'y', 'ù', DONE,
-    254, 'ô', 'ï', DONE,
-    255, 'Ö', 'Õ', DONE,
+    2, u('A'), u('Ú'), DONE,
+    5, u('A'), u('Ü'), DONE,
+    6, u('A'), u('Ã'), DONE,
+    20, u('Y'), u('Û'), DONE,
+    25, u('Y'), u('Õ'), DONE,
+    30, u('Î'), DONE,
+    128, u('A'), u('Ï'), DONE,
+    129, u('A'), u('È'), DONE,
+    130, u('A'), u('É'), DONE,
+    131, u('A'), u('Ë'), DONE,
+    132, u('A'), u('Á'), DONE,
+    133, u('A'), u('À'), DONE,
+    134, u('A'), u('Å'), DONE,
+    135, u('A'), u('Ä'), DONE,
+    136, u('E'), u('Õ'), DONE,
+    137, u('E'), u('Ï'), DONE,
+    138, u('E'), u('Á'), DONE,
+    139, u('E'), u('À'), DONE,
+    140, u('E'), u('Å'), DONE,
+    141, u('E'), u('Ã'), DONE,
+    142, u('E'), u('Ä'), DONE,
+    143, u('O'), u('Á'), DONE,
+    144, u('O'), u('À'), DONE,
+    145, u('O'), u('Å'), DONE,
+    146, u('O'), u('Ã'), DONE,
+    147, u('O'), u('Ä'), DONE,
+    148, u('Ô'), u('Ï'), DONE,
+    149, u('Ô'), u('Ù'), DONE,
+    150, u('Ô'), u('Ø'), DONE,
+    151, u('Ô'), u('Û'), DONE,
+    152, u('Ò'), DONE,
+    153, u('O'), u('Û'), DONE,
+    154, u('O'), u('Ï'), DONE,
+    155, u('Æ'), DONE,
+    156, u('U'), u('Û'), DONE,
+    157, u('U'), u('Õ'), DONE,
+    158, u('U'), u('Ï'), DONE,
+    159, u('Y'), u('Ø'), DONE,
+    160, u('O'), u('Õ'), DONE,
+    161, u('a'), u('é'), DONE,
+    162, u('a'), u('è'), DONE,
+    163, u('a'), u('ë'), DONE,
+    164, u('a'), u('á'), DONE,
+    165, u('a'), u('à'), DONE,
+    166, u('a'), u('å'), DONE,
+    167, u('a'), u('ä'), DONE,
+    168, u('e'), u('õ'), DONE,
+    169, u('e'), u('ï'), DONE,
+    170, u('e'), u('á'), DONE,
+    171, u('e'), u('à'), DONE,
+    172, u('e'), u('å'), DONE,
+    173, u('e'), u('ã'), DONE,
+    174, u('e'), u('ä'), DONE,
+    175, u('o'), u('á'), DONE,
+    176, u('o'), u('à'), DONE,
+    177, u('o'), u('å'), DONE,
+    178, u('o'), u('ã'), DONE,
+    179, u('Ô'), u('Õ'), DONE,
+    180, u('Ô'), DONE,
+    181, u('o'), u('ä'), DONE,
+    182, u('ô'), u('ø'), DONE,
+    183, u('ô'), u('û'), DONE,
+    184, u('ò'), DONE,
+    185, u('Ö'), u('Ï'), DONE,
+    186, u('Ö'), u('Ù'), DONE,
+    187, u('Ö'), u('Ø'), DONE,
+    188, u('Ö'), u('Û'), DONE,
+    189, u('ô'), DONE,
+    190, u('ô'), u('ù'), DONE,
+    191, u('Ö'), DONE,
+    192, u('A'), u('Ø'), DONE,
+    193, u('A'), u('Ù'), DONE,
+    194, u('A'), u('Â'), DONE,
+    195, u('A'), u('Õ'), DONE,
+    196, u('A'), u('Û'), DONE,
+    197, u('A'), u('Ê'), DONE,
+    198, u('a'), u('ú'), DONE,
+    199, u('a'), u('ü'), DONE,
+    200, u('E'), u('Ø'), DONE,
+    201, u('E'), u('Ù'), DONE,
+    202, u('E'), u('Â'), DONE,
+    203, u('E'), u('Û'), DONE,
+    204, u('Ì'), DONE,
+    205, u('Í'), DONE,
+    206, u('Ó'), DONE,
+    207, u('y'), u('ø'), DONE,
+    208, u('Ñ'), DONE,
+    209, u('ö'), u('ù'), DONE,
+    210, u('O'), u('Ø'), DONE,
+    211, u('O'), u('Ù'), DONE,
+    212, u('O'), u('Â'), DONE,
+    213, u('a'), u('ï'), DONE,
+    214, u('y'), u('û'), DONE,
+    215, u('ö'), u('ø'), DONE,
+    216, u('ö'), u('û'), DONE,
+    217, u('U'), u('Ø'), DONE,
+    218, u('U'), u('Ù'), DONE,
+    219, u('y'), u('õ'), DONE,
+    220, u('î'), DONE,
+    221, u('Y'), u('Ù'), DONE,
+    222, u('ô'), u('õ'), DONE,
+    223, u('ö'), DONE,
+    224, u('a'), u('ø'), DONE,
+    225, u('a'), u('ù'), DONE,
+    226, u('a'), u('â'), DONE,
+    227, u('a'), u('õ'), DONE,
+    228, u('a'), u('û'), DONE,
+    229, u('a'), u('ê'), DONE,
+    230, u('ö'), u('õ'), DONE,
+    231, u('a'), u('ã'), DONE,
+    232, u('e'), u('ø'), DONE,
+    233, u('e'), u('ù'), DONE,
+    234, u('e'), u('â'), DONE,
+    235, u('e'), u('û'), DONE,
+    236, u('ì'), DONE,
+    237, u('í'), DONE,
+    238, u('ó'), DONE,
+    239, u('æ'), DONE,
+    240, u('ñ'), DONE,
+    241, u('ö'), u('ï'), DONE,
+    242, u('o'), u('ø'), DONE,
+    243, u('o'), u('ù'), DONE,
+    244, u('o'), u('â'), DONE,
+    245, u('o'), u('õ'), DONE,
+    246, u('o'), u('û'), DONE,
+    247, u('o'), u('ï'), DONE,
+    248, u('u'), u('ï'), DONE,
+    249, u('u'), u('ø'), DONE,
+    250, u('u'), u('ù'), DONE,
+    251, u('u'), u('õ'), DONE,
+    252, u('u'), u('û'), DONE,
+    253, u('y'), u('ù'), DONE,
+    254, u('ô'), u('ï'), DONE,
+    255, u('Ö'), u('Õ'), DONE,
+    DONE
   };
 
 bool
-module_viet (RECODE_OUTER outer)
+module_vietnamese (RECODE_OUTER outer)
 {
   if (!declare_strip_data (outer, &tcvn_strip_data, "TCVN"))
     return false;
index ef5935b7f0cb9efeb003df1c92a7a850b86d28ee..e02bbc17cda9c32d0b6035234489a78b7dd282db 100644 (file)
@@ -1,3 +1,11 @@
+1999-12-24  François Pinard  <pinard@iro.umontreal.ca>
+
+       * names.m4: Adjusted for defaulted libiconv.
+\f
+1999-12-23  François Pinard  <pinard@iro.umontreal.ca>
+
+       * names.m4: Adjusted for :libiconv:.
+
 1999-12-19  François Pinard  <pinard@iro.umontreal.ca>
 
        * names.m4: Adjusted for vietnamese charsets.
@@ -29,7 +37,7 @@
 1999-06-02  François Pinard  <pinard@iro.umontreal.ca>
 
        * atgeneral.m4 (at_usage): Typo.
-\f
+
 1999-06-01  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am (check-local): Do not warn for installed library, as
index 74dd48c542c19fd6612114edba65bd95f52e83ee..657c1dd372e5d0bd17f2f804b2079009c5e75cd1 100644 (file)
@@ -24,24 +24,32 @@ cat >expout <<'EOF'
 /test8
 /test15
 /test16
+:libiconv: :
 AFRFUL-102-BPI_OCIL bambara bra ewondo fulfulde
 AFRFUL-103-BPI_OCIL t-bambara t-bra t-ewondo t-fulfulde
 AFRL1-101-BPI_OCIL t-fra t-francais
 AFRLIN-104-BPI_OCIL lin lingala sango wolof
 AFRLIN-105-BPI_OCIL t-lin t-lingala t-sango t-wolof
-ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF IBM367/CR-LF ISO646-US iso-ir-6 ISO_646.irv:1991 us US-ASCII
+ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF CSASCII IBM367/CR-LF ISO646-US iso-ir-6 ISO_646.irv:1991 us US-ASCII
 Apple-Mac/CR
+ARMSCII-8
 ASCII-BS BS
 ASMO_449 arabic7 iso-ir-89 ISO_9036
 AtariST
 baltic iso-ir-179
 Bang-Bang
+BIG5 BIG-5 BIG-FIVE BIGFIVE CSBIG5
 BS_4730 gb ISO646-GB iso-ir-4 uk
 BS_viewdata iso-ir-47
 CDC-NOS NOS
 combined-UCS-2 co
 CORK T1
 count-characters
+CP866 866 CSIBM866 IBM866
+CP874 WINDOWS-874
+CP932
+CP950
+CP1133 IBM-CP1133
 CP1250/CR-LF 1250/CR-LF ms-ee windows-1250
 CP1251/CR-LF 1251/CR-LF ms-cyrl windows-1251
 CP1252/CR-LF 1252/CR-LF ms-ansi windows-1252
@@ -50,6 +58,7 @@ CP1254/CR-LF 1254/CR-LF ms-turk windows-1254
 CP1255/CR-LF 1255/CR-LF ms-hebr windows-1255
 CP1256/CR-LF 1256/CR-LF ms-arab windows-1256
 CP1257/CR-LF 1257/CR-LF WinBaltRim windows-1257
+CP1258 WINDOWS-1258
 CSA_Z243.4-1985-1 ca csa7-1 ISO646-CA iso-ir-121
 CSA_Z243.4-1985-2 csa7-2 ISO646-CA2 iso-ir-122
 CSA_Z243.4-1985-gr iso-ir-123
@@ -81,18 +90,26 @@ EBCDIC-US
 ECMA-cyrillic ECMA-113 ECMA-113:1986 iso-ir-111
 ES ISO646-ES iso-ir-17
 ES2 ISO646-ES2 iso-ir-85
+EUC-CN CSGB2312 EUCCN GB2312
+EUC-JP CSEUCPKDFMTJAPANESE EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE
+EUC-KR CSEUCKR EUCKR
+EUC-TW CSEUCTW EUCTW
 flat
+GBK CP936
 GB_1988-80 cn ISO646-CN iso-ir-57
+Georgian-Academy
+Georgian-PS
 GOST_19768-87 iso-ir-153 ST_SEV_358-88
 greek7 iso-ir-88
 greek7-old iso-ir-18
 greek-ccitt iso-ir-150
-hp-roman8 r8 roman8
+hp-roman8 CSHPROMAN8 r8 roman8
 HTML-i18n 2070 RFC2070
 HTML_1.1 h1
 HTML_2.0 1866 h2 RFC1866
 HTML_3.2 h3
 HTML_4.0 h h4 HTML
+HZ HZ-GB-2312
 IBM037/CR-LF 037/CR-LF CP037/CR-LF ebcdic-cp-ca ebcdic-cp-nl ebcdic-cp-us ebcdic-cp-wt
 IBM038/CR-LF 038/CR-LF CP038/CR-LF EBCDIC-INT
 IBM256/CR-LF 256/CR-LF CP256/CR-LF EBCDIC-INT1
@@ -112,7 +129,7 @@ IBM423/CR-LF 423/CR-LF CP423/CR-LF ebcdic-cp-gr
 IBM424/CR-LF 424/CR-LF CP424/CR-LF ebcdic-cp-he
 IBM437/CR-LF 437/CR-LF CP437/CR-LF
 IBM500/CR-LF 500/CR-LF 500V1 CP500/CR-LF ebcdic-cp-be ebcdic-cp-ch
-IBM850/CR-LF 850/CR-LF CP850/CR-LF
+IBM850/CR-LF 850/CR-LF CP850/CR-LF CSPC850MULTILINGUAL
 IBM851/CR-LF 851/CR-LF CP851/CR-LF
 IBM852/CR-LF 852/CR-LF CP852/CR-LF pcl2 pclatin2
 IBM855/CR-LF 855/CR-LF CP855/CR-LF
@@ -144,21 +161,27 @@ INIS iso-ir-49
 INIS-8 iso-ir-50
 INIS-cyrillic iso-ir-51
 INVARIANT iso-ir-170
-ISO-8859-1 819/CR-LF CP819/CR-LF IBM819/CR-LF iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1
-ISO-8859-2 912/CR-LF CP912/CR-LF IBM912/CR-LF iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2
-ISO-8859-3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3
-ISO-8859-4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4
-ISO-8859-5 cyrillic iso-ir-144 ISO_8859-5 ISO_8859-5:1988
-ISO-8859-6 arabic ASMO-708 ECMA-114 iso-ir-127 ISO_8859-6 ISO_8859-6:1987
-ISO-8859-7 ECMA-118 ELOT_928 greek greek8 iso-ir-126 ISO_8859-7 ISO_8859-7:1987
-ISO-8859-8 hebrew iso-ir-138 ISO_8859-8 ISO_8859-8:1988
-ISO-8859-9 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 l5 latin5
-ISO-8859-10 iso-ir-157 ISO_8859-10 ISO_8859-10:1993 l6 latin6
-ISO-8859-13 iso-baltic iso-ir-179a ISO_8859-13 ISO_8859-13:1998 l7 latin7
+ISO-2022-CN CSISO2022CN
+ISO-2022-CN-EXT
+ISO-2022-JP CSISO2022JP
+ISO-2022-JP-1
+ISO-2022-JP-2 CSISO2022JP2
+ISO-2022-KR CSISO2022KR
+ISO-8859-1 819/CR-LF CP819/CR-LF CSISOLATIN1 IBM819/CR-LF iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1
+ISO-8859-2 912/CR-LF CP912/CR-LF CSISOLATIN2 IBM912/CR-LF iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2
+ISO-8859-3 CSISOLATIN3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3
+ISO-8859-4 CSISOLATIN4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4
+ISO-8859-5 CSISOLATINCYRILLIC cyrillic iso-ir-144 ISO_8859-5 ISO_8859-5:1988
+ISO-8859-6 arabic ASMO-708 CSISOLATINARABIC ECMA-114 iso-ir-127 ISO_8859-6 ISO_8859-6:1987
+ISO-8859-7 CSISOLATINGREEK ECMA-118 ELOT_928 greek greek8 iso-ir-126 ISO_8859-7 ISO_8859-7:1987
+ISO-8859-8 CSISOLATINHEBREW hebrew iso-ir-138 ISO_8859-8 ISO_8859-8:1988
+ISO-8859-9 CSISOLATIN5 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 l5 latin5
+ISO-8859-10 CSISOLATIN6 iso-ir-157 ISO_8859-10 ISO_8859-10:1992 ISO_8859-10:1993 l6 latin6
+ISO-8859-13 iso-baltic ISO-IR-179 iso-ir-179a ISO_8859-13 ISO_8859-13:1998 l7 latin7
 ISO-8859-14 iso-celtic iso-ir-199 ISO_8859-14 ISO_8859-14:1998 l8 latin8
 ISO-8859-15 iso-ir-203 ISO_8859-15 ISO_8859-15:1998 l9 latin9
-ISO-10646-UCS-2 BMP rune u2 UCS-2 UNICODE-1-1
-ISO-10646-UCS-4 10646 ISO_10646 u4 UCS UCS-4
+ISO-10646-UCS-2 BMP CSUNICODE rune u2 UCS-2 UNICODE-1-1
+ISO-10646-UCS-4 10646 CSUCS4 ISO_10646 u4 UCS UCS-4
 ISO_646.basic ISO_646.basic:1983 ref
 ISO_646.irv irv iso-ir-2 ISO_646.irv:1983
 ISO_2033-1983 e13b iso-ir-98
@@ -169,6 +192,7 @@ ISO_6937-2-25 iso-ir-152
 ISO_8859-supp iso-ir-154 latin1-2-5
 ISO_10367-box iso-ir-155
 IT ISO646-IT iso-ir-15
+JAVA
 JIS_C6220-1969-jp iso-ir-13 JIS_C6220-1969 katakana x0201-7
 JIS_C6220-1969-ro ISO646-JP iso-ir-14 jp
 JIS_C6229-1984-a jp-ocr-a
@@ -177,26 +201,42 @@ JIS_C6229-1984-b-add iso-ir-93 jp-ocr-b-add
 JIS_C6229-1984-hand iso-ir-94 jp-ocr-hand
 JIS_C6229-1984-hand-add iso-ir-95 jp-ocr-hand-add
 JIS_C6229-1984-kana iso-ir-96
-JIS_X0201 X0201
+JIS_X0201 CSHALFWIDTHKATAKANA JISX0201-1976 JISX0201.1976-0 X0201
+JIS_X0208 JIS0208 JIS_X0208-1983 JIS_X0208-1990 JIS_X0208.1983-0 JIS_X0208.1983-1
+JIS_X0212 CSISO159JISX02121990 ISO-IR-159 JIS_X0212-1990 JIS_X0212.1990-0 X0212
+JOHAB CP1361
 JUS_I.B1.002 ISO646-YU iso-ir-141 js yu
 JUS_I.B1.003-mac iso-ir-147 macedonian
 JUS_I.B1.003-serb iso-ir-146 serbian
 KEYBCS2 Kamenicky
-KOI8-R
+KOI8-R CSKOI8R
 KOI8-RU
 KOI8-U
 KOI-7
 KOI-8 GOST_19768-74
 KOI-8_CS2
 KSC5636 ISO646-KR
+KSC_5601 CP949 CSKSC56011987 ISO-IR-149 KOREAN KSC5601.1987-0 KS_C_5601-1987 KS_C_5601-1989
 LaTeX ltex TeX
 latin-greek iso-ir-19
 Latin-greek-1 iso-ir-27
 mac-is
-macintosh/CR mac/CR
+MacArabic
+MacCentralEurope
+MacCroatian
+MacCyrillic
+MacGreek
+MacHebrew
+MacIceland
+macintosh/CR mac/CR MacRoman
 macintosh_ce/CR macce/CR
+MacRomania
+MacThai
+MacTurkish
+MacUkraine
 MSZ_7795.3 hu ISO646-HU iso-ir-86
 Mule
+MuleLao-1
 NATS-DANO iso-ir-9-1
 NATS-DANO-ADD iso-ir-9-2
 NATS-SEFI iso-ir-8-1
@@ -213,15 +253,25 @@ RFC1345 1345 mnemonic
 sami iso-ir-158 lap latin-lap
 SEN_850200_B FI ISO646-FI ISO646-SE iso-ir-10 se SS636127
 SEN_850200_C ISO646-SE2 iso-ir-11 se2
+SJIS CSSHIFTJIS MS_KANJI SHIFT-JIS SHIFT_JIS
 T.61-7bit iso-ir-102
-TCVN
+TCVN TCVN5712-1 TCVN5712-1:1993 TCVN-5712
 Texinfo texi ti
 Texte txte
-UNICODE-1-1-UTF-7 TF-7 u7 UTF-7
+TIS-620 ISO-IR-166 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
+UCS-2-BE UNICODEBIG
+UCS-2-INTERNAL
+UCS-2-LE UNICODELITTLE
+UCS-2-SWAPPED
+UCS-4-BE
+UCS-4-INTERNAL
+UCS-4-LE
+UCS-4-SWAPPED
+UNICODE-1-1-UTF-7 CSUNICODE11UTF7 TF-7 u7 UTF-7
 UTF-8 FSS_UTF TF-8 u8 UTF-2 UTF-FSS
 UTF-16 TF-16 u6 Unicode
 VIQR
-VISCII
+VISCII CSVISCII VISCII1.1-1
 VNI
 VPS
 EOF
index b3bc9e03a3617a8de52dac9a87701c255938ab85..2e1ce3a4b6bc27ccdf397cddae95fb7629a849d4 100644 (file)
@@ -127,24 +127,32 @@ cat >expout <<'EOF'
 /test8
 /test15
 /test16
+:libiconv: :
 AFRFUL-102-BPI_OCIL bambara bra ewondo fulfulde
 AFRFUL-103-BPI_OCIL t-bambara t-bra t-ewondo t-fulfulde
 AFRL1-101-BPI_OCIL t-fra t-francais
 AFRLIN-104-BPI_OCIL lin lingala sango wolof
 AFRLIN-105-BPI_OCIL t-lin t-lingala t-sango t-wolof
-ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF IBM367/CR-LF ISO646-US iso-ir-6 ISO_646.irv:1991 us US-ASCII
+ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF CSASCII IBM367/CR-LF ISO646-US iso-ir-6 ISO_646.irv:1991 us US-ASCII
 Apple-Mac/CR
+ARMSCII-8
 ASCII-BS BS
 ASMO_449 arabic7 iso-ir-89 ISO_9036
 AtariST
 baltic iso-ir-179
 Bang-Bang
+BIG5 BIG-5 BIG-FIVE BIGFIVE CSBIG5
 BS_4730 gb ISO646-GB iso-ir-4 uk
 BS_viewdata iso-ir-47
 CDC-NOS NOS
 combined-UCS-2 co
 CORK T1
 count-characters
+CP866 866 CSIBM866 IBM866
+CP874 WINDOWS-874
+CP932
+CP950
+CP1133 IBM-CP1133
 CP1250/CR-LF 1250/CR-LF ms-ee windows-1250
 CP1251/CR-LF 1251/CR-LF ms-cyrl windows-1251
 CP1252/CR-LF 1252/CR-LF ms-ansi windows-1252
@@ -153,6 +161,7 @@ CP1254/CR-LF 1254/CR-LF ms-turk windows-1254
 CP1255/CR-LF 1255/CR-LF ms-hebr windows-1255
 CP1256/CR-LF 1256/CR-LF ms-arab windows-1256
 CP1257/CR-LF 1257/CR-LF WinBaltRim windows-1257
+CP1258 WINDOWS-1258
 CSA_Z243.4-1985-1 ca csa7-1 ISO646-CA iso-ir-121
 CSA_Z243.4-1985-2 csa7-2 ISO646-CA2 iso-ir-122
 CSA_Z243.4-1985-gr iso-ir-123
@@ -184,18 +193,26 @@ EBCDIC-US
 ECMA-cyrillic ECMA-113 ECMA-113:1986 iso-ir-111
 ES ISO646-ES iso-ir-17
 ES2 ISO646-ES2 iso-ir-85
+EUC-CN CSGB2312 EUCCN GB2312
+EUC-JP CSEUCPKDFMTJAPANESE EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE
+EUC-KR CSEUCKR EUCKR
+EUC-TW CSEUCTW EUCTW
 flat
+GBK CP936
 GB_1988-80 cn ISO646-CN iso-ir-57
+Georgian-Academy
+Georgian-PS
 GOST_19768-87 iso-ir-153 ST_SEV_358-88
 greek7 iso-ir-88
 greek7-old iso-ir-18
 greek-ccitt iso-ir-150
-hp-roman8 r8 roman8
+hp-roman8 CSHPROMAN8 r8 roman8
 HTML-i18n 2070 RFC2070
 HTML_1.1 h1
 HTML_2.0 1866 h2 RFC1866
 HTML_3.2 h3
 HTML_4.0 h h4 HTML
+HZ HZ-GB-2312
 IBM037/CR-LF 037/CR-LF CP037/CR-LF ebcdic-cp-ca ebcdic-cp-nl ebcdic-cp-us ebcdic-cp-wt
 IBM038/CR-LF 038/CR-LF CP038/CR-LF EBCDIC-INT
 IBM256/CR-LF 256/CR-LF CP256/CR-LF EBCDIC-INT1
@@ -215,7 +232,7 @@ IBM423/CR-LF 423/CR-LF CP423/CR-LF ebcdic-cp-gr
 IBM424/CR-LF 424/CR-LF CP424/CR-LF ebcdic-cp-he
 IBM437/CR-LF 437/CR-LF CP437/CR-LF
 IBM500/CR-LF 500/CR-LF 500V1 CP500/CR-LF ebcdic-cp-be ebcdic-cp-ch
-IBM850/CR-LF 850/CR-LF CP850/CR-LF
+IBM850/CR-LF 850/CR-LF CP850/CR-LF CSPC850MULTILINGUAL
 IBM851/CR-LF 851/CR-LF CP851/CR-LF
 IBM852/CR-LF 852/CR-LF CP852/CR-LF pcl2 pclatin2
 IBM855/CR-LF 855/CR-LF CP855/CR-LF
@@ -247,21 +264,27 @@ INIS iso-ir-49
 INIS-8 iso-ir-50
 INIS-cyrillic iso-ir-51
 INVARIANT iso-ir-170
-ISO-8859-1 819/CR-LF CP819/CR-LF IBM819/CR-LF iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1
-ISO-8859-2 912/CR-LF CP912/CR-LF IBM912/CR-LF iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2
-ISO-8859-3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3
-ISO-8859-4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4
-ISO-8859-5 cyrillic iso-ir-144 ISO_8859-5 ISO_8859-5:1988
-ISO-8859-6 arabic ASMO-708 ECMA-114 iso-ir-127 ISO_8859-6 ISO_8859-6:1987
-ISO-8859-7 ECMA-118 ELOT_928 greek greek8 iso-ir-126 ISO_8859-7 ISO_8859-7:1987
-ISO-8859-8 hebrew iso-ir-138 ISO_8859-8 ISO_8859-8:1988
-ISO-8859-9 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 l5 latin5
-ISO-8859-10 iso-ir-157 ISO_8859-10 ISO_8859-10:1993 l6 latin6
-ISO-8859-13 iso-baltic iso-ir-179a ISO_8859-13 ISO_8859-13:1998 l7 latin7
+ISO-2022-CN CSISO2022CN
+ISO-2022-CN-EXT
+ISO-2022-JP CSISO2022JP
+ISO-2022-JP-1
+ISO-2022-JP-2 CSISO2022JP2
+ISO-2022-KR CSISO2022KR
+ISO-8859-1 819/CR-LF CP819/CR-LF CSISOLATIN1 IBM819/CR-LF iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1
+ISO-8859-2 912/CR-LF CP912/CR-LF CSISOLATIN2 IBM912/CR-LF iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2
+ISO-8859-3 CSISOLATIN3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3
+ISO-8859-4 CSISOLATIN4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4
+ISO-8859-5 CSISOLATINCYRILLIC cyrillic iso-ir-144 ISO_8859-5 ISO_8859-5:1988
+ISO-8859-6 arabic ASMO-708 CSISOLATINARABIC ECMA-114 iso-ir-127 ISO_8859-6 ISO_8859-6:1987
+ISO-8859-7 CSISOLATINGREEK ECMA-118 ELOT_928 greek greek8 iso-ir-126 ISO_8859-7 ISO_8859-7:1987
+ISO-8859-8 CSISOLATINHEBREW hebrew iso-ir-138 ISO_8859-8 ISO_8859-8:1988
+ISO-8859-9 CSISOLATIN5 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 l5 latin5
+ISO-8859-10 CSISOLATIN6 iso-ir-157 ISO_8859-10 ISO_8859-10:1992 ISO_8859-10:1993 l6 latin6
+ISO-8859-13 iso-baltic ISO-IR-179 iso-ir-179a ISO_8859-13 ISO_8859-13:1998 l7 latin7
 ISO-8859-14 iso-celtic iso-ir-199 ISO_8859-14 ISO_8859-14:1998 l8 latin8
 ISO-8859-15 iso-ir-203 ISO_8859-15 ISO_8859-15:1998 l9 latin9
-ISO-10646-UCS-2 BMP rune u2 UCS-2 UNICODE-1-1
-ISO-10646-UCS-4 10646 ISO_10646 u4 UCS UCS-4
+ISO-10646-UCS-2 BMP CSUNICODE rune u2 UCS-2 UNICODE-1-1
+ISO-10646-UCS-4 10646 CSUCS4 ISO_10646 u4 UCS UCS-4
 ISO_646.basic ISO_646.basic:1983 ref
 ISO_646.irv irv iso-ir-2 ISO_646.irv:1983
 ISO_2033-1983 e13b iso-ir-98
@@ -272,6 +295,7 @@ ISO_6937-2-25 iso-ir-152
 ISO_8859-supp iso-ir-154 latin1-2-5
 ISO_10367-box iso-ir-155
 IT ISO646-IT iso-ir-15
+JAVA
 JIS_C6220-1969-jp iso-ir-13 JIS_C6220-1969 katakana x0201-7
 JIS_C6220-1969-ro ISO646-JP iso-ir-14 jp
 JIS_C6229-1984-a jp-ocr-a
@@ -280,26 +304,42 @@ JIS_C6229-1984-b-add iso-ir-93 jp-ocr-b-add
 JIS_C6229-1984-hand iso-ir-94 jp-ocr-hand
 JIS_C6229-1984-hand-add iso-ir-95 jp-ocr-hand-add
 JIS_C6229-1984-kana iso-ir-96
-JIS_X0201 X0201
+JIS_X0201 CSHALFWIDTHKATAKANA JISX0201-1976 JISX0201.1976-0 X0201
+JIS_X0208 JIS0208 JIS_X0208-1983 JIS_X0208-1990 JIS_X0208.1983-0 JIS_X0208.1983-1
+JIS_X0212 CSISO159JISX02121990 ISO-IR-159 JIS_X0212-1990 JIS_X0212.1990-0 X0212
+JOHAB CP1361
 JUS_I.B1.002 ISO646-YU iso-ir-141 js yu
 JUS_I.B1.003-mac iso-ir-147 macedonian
 JUS_I.B1.003-serb iso-ir-146 serbian
 KEYBCS2 Kamenicky
-KOI8-R
+KOI8-R CSKOI8R
 KOI8-RU
 KOI8-U
 KOI-7
 KOI-8 GOST_19768-74
 KOI-8_CS2
 KSC5636 ISO646-KR
+KSC_5601 CP949 CSKSC56011987 ISO-IR-149 KOREAN KSC5601.1987-0 KS_C_5601-1987 KS_C_5601-1989
 LaTeX ltex TeX
 latin-greek iso-ir-19
 Latin-greek-1 iso-ir-27
 mac-is
-macintosh/CR mac/CR
+MacArabic
+MacCentralEurope
+MacCroatian
+MacCyrillic
+MacGreek
+MacHebrew
+MacIceland
+macintosh/CR mac/CR MacRoman
 macintosh_ce/CR macce/CR
+MacRomania
+MacThai
+MacTurkish
+MacUkraine
 MSZ_7795.3 hu ISO646-HU iso-ir-86
 Mule
+MuleLao-1
 NATS-DANO iso-ir-9-1
 NATS-DANO-ADD iso-ir-9-2
 NATS-SEFI iso-ir-8-1
@@ -316,23 +356,33 @@ RFC1345 1345 mnemonic
 sami iso-ir-158 lap latin-lap
 SEN_850200_B FI ISO646-FI ISO646-SE iso-ir-10 se SS636127
 SEN_850200_C ISO646-SE2 iso-ir-11 se2
+SJIS CSSHIFTJIS MS_KANJI SHIFT-JIS SHIFT_JIS
 T.61-7bit iso-ir-102
-TCVN
+TCVN TCVN5712-1 TCVN5712-1:1993 TCVN-5712
 Texinfo texi ti
 Texte txte
-UNICODE-1-1-UTF-7 TF-7 u7 UTF-7
+TIS-620 ISO-IR-166 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
+UCS-2-BE UNICODEBIG
+UCS-2-INTERNAL
+UCS-2-LE UNICODELITTLE
+UCS-2-SWAPPED
+UCS-4-BE
+UCS-4-INTERNAL
+UCS-4-LE
+UCS-4-SWAPPED
+UNICODE-1-1-UTF-7 CSUNICODE11UTF7 TF-7 u7 UTF-7
 UTF-8 FSS_UTF TF-8 u8 UTF-2 UTF-FSS
 UTF-16 TF-16 u6 Unicode
 VIQR
-VISCII
+VISCII CSVISCII VISCII1.1-1
 VNI
 VPS
 EOF
 
 $at_traceoff
 test -n "$at_verbose" \
-  && echo "$srcdir/names.m4:229: testing..."
-echo names.m4:229 > at-check-line
+  && echo "$srcdir/names.m4:279: testing..."
+echo names.m4:279 > at-check-line
 test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
 $at_traceon
 recode -l
@@ -377,19 +427,19 @@ if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
 
 rm -rf stdout stderr expout
 # Snippet )c2)
-  echo names.m4:233 > at-check-line
+  echo names.m4:283 > at-check-line
   if test -n "$at_verbose"; then
     echo 'testing the --find-subsets option'
     echo $at_n "     $at_c"
   fi
-  echo $at_n "2. $srcdir/names.m4:233       $at_c"
+  echo $at_n "2. $srcdir/names.m4:283       $at_c"
   if test -z "$at_skip_mode"; then
     (
 # Snippet (d2(
 # Testing the --find-subsets option
 # Snippet )d2)
 # Snippet (s2(
-# starting from `names.m4:233'.
+# starting from `names.m4:283'.
 $at_traceon
 
 cat >expout <<'EOF'
@@ -840,8 +890,8 @@ EOF
 
 $at_traceoff
 test -n "$at_verbose" \
-  && echo "$srcdir/names.m4:684: testing..."
-echo names.m4:684 > at-check-line
+  && echo "$srcdir/names.m4:734: testing..."
+echo names.m4:734 > at-check-line
 test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
 $at_traceon
 recode -T | sort