diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..e0a8433 --- /dev/null +++ b/INSTALL @@ -0,0 +1,27 @@ +INSTALL + + Sun Sep 8 14:11:16 JST 2002 + +See Makefile, check + CC + CFLAGS + PERL +are correct. Then do + make +It should work on Linux, Solaris, Mac OS X. + +If mkstemp is not in the library, comment out +#define OVERWRITE in config.h + +To make Perl module, do + make perl +it creates NKF.mod. Or you can perform standard + perl Makefile.PL; make +in NKF.mod. It should work above Perl 5. Perl 5.6 or Perl 5.8 +is checked. + +You can do test, + make test +both in here and NKF.mod. + +Shinji KONO kono@ie.u-ryukyu.ac.jp diff --git a/INSTALL.j b/INSTALL.j new file mode 100644 index 0000000..51cdc40 --- /dev/null +++ b/INSTALL.j @@ -0,0 +1,23 @@ +INSTALL$B$N;EJ}(B + + Sun Sep 8 14:11:16 JST 2002 + +Makefile $B$,$"$k$N$G!"(B + CC + CFLAGS + PERL +$B$,@5$7$$$+$I$&$+$r3NG'$7$F!"(B + make +$B$7$F$/$@$5$$!#(BLinux, Solaris, Mac OS X $B$GF0:n3NG'$7$F$$$^$9!#(B + +mkstemp $B$,$J$$>l9g$O!"(Bconfig.h $B$N(B #define OVERWRITE $B$r%3%a%s%H%"%&%H(B +$B$7$F$/$@$5$$!#(B + +Perl $B%b%8%e!<%k$r:n$k$K$O!"(B + make perl +$B$G$9!#(BNKF.mod $B2<$K$G$-$^$9!#$=$A$i$G!"(Bperl Makefile.PL; make +$B$G$b(BOk$B!#(B Perl 5 $B0J>e$GF0:n$7$^$9!#(B5.6, 5.8 $B$GF0:n3NG'$7$F$$$^$9!#(B + +make test $B$G%F%9%H$,9T$o$l$^$9!#(BNKF.mod $B$G$b(B make test +$B$,2DG=!#(B + diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000..3180949 --- /dev/null +++ b/MANIFEST @@ -0,0 +1,29 @@ +MANIFEST +INSTALL.j +INSTALL +Makefile +config.h +make_test.pl +nkf.1 +nkf.1j +nkf.c +nkf.h +nkf.doc +nkf_test.pl +test.pl +utf8tbl.c +utf8tbl.h +nkf.mak +nkf32.c +nkf32.h +nkf32dll.c +version.rc +dll.rc +dll.def +NKF.mod/Changes +NKF.mod/MANIFEST +NKF.mod/Makefile.PL +NKF.mod/NKF.pm +NKF.mod/NKF.xs +NKF.mod/README +NKF.mod/test.pl diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b8a54f8 --- /dev/null +++ b/Makefile @@ -0,0 +1,84 @@ +CC = cc +CFLAGS = -g -O2 -Wall -pedantic +# CFLAGS = -O3 +SHAR = shar +# SHAR = shar -T +PERL = perl +RM = rm -rf +VERSION = 2.1.4 +MKDIR = mkdir +prefix = /usr/local +PYTHON2 = python +PYTHON3 = python + +.PHONY: clean install test tar shar + +nkf : nkf.o utf8tbl.o + $(CC) $(CFLAGS) $(LDFLAGS) -o nkf nkf.o utf8tbl.o + +nkf.o : nkf.c nkf.h utf8tbl.h config.h + $(CC) $(CFLAGS) -c nkf.c + +utf8tbl.o : utf8tbl.c utf8tbl.h config.h + $(CC) $(CFLAGS) -c utf8tbl.c + +clean: + -$(RM) nkf.o nkf nkf.exe nkf.in nkf.out nkf-$(VERSION) *~ *.bad utf8tbl.o + cd NKF.mod; if [ -f Makefile ]; then make clean; fi + +test: nkf + $(PERL) test.pl + +perl: + ( cd NKF.mod ; \ + $(PERL) Makefile.PL ; \ + make ; \ + make test ) + +python2: + ( cd NKF.python2 ; \ + $(PYTHON2) setup.py build ) + +python3: + ( cd NKF.python3 ; \ + $(PYTHON3) setup.py build ) + +install: install-main install-man install-man-ja + +install-main: + -$(MKDIR) $(prefix)/bin + cp -f nkf $(prefix)/bin/ + +install-man: + -$(MKDIR) $(prefix)/man + -$(MKDIR) $(prefix)/man/man1 + cp -f nkf.1 $(prefix)/man/man1/ + +install-man-ja: + -$(MKDIR) $(prefix)/man/ja + -$(MKDIR) $(prefix)/man/ja/man1 + cp -f nkf.1j $(prefix)/man/ja/man1/nkf.1 + +shar: + -mkdir nkf-$(VERSION) + -mkdir nkf-$(VERSION)/NKF.mod + for file in `cat MANIFEST`; \ + do \ + nkf -j -m0 $$file > nkf-$(VERSION)/$$file ; \ + done + echo "#!/bin/sh" >nkf-$(VERSION).shar + echo "mkdir nkf-$(VERSION)" >>nkf-$(VERSION).shar + echo "mkdir nkf-$(VERSION)/NKF.mod" >>nkf-$(VERSION).shar + echo "cd nkf-$(VERSION)" >>nkf-$(VERSION).shar + ( cd nkf-$(VERSION) ; $(SHAR) `cat ../MANIFEST` ) >> nkf-$(VERSION).shar + -$(RM) nkf-$(VERSION) + +tar: + -mkdir nkf-$(VERSION) + -mkdir nkf-$(VERSION)/NKF.mod + for file in `cat MANIFEST`; \ + do \ + cp $$file nkf-$(VERSION)/$$file ; \ + done + tar cf nkf-$(VERSION).tar nkf-$(VERSION) + -$(RM) nkf-$(VERSION) diff --git a/NKF.mod/Changes b/NKF.mod/Changes new file mode 100644 index 0000000..77e3530 --- /dev/null +++ b/NKF.mod/Changes @@ -0,0 +1,5 @@ +Revision history for Perl extension NKF. + +1.7 Sat Nov 7 16:50:33 1998 + - original version; created by h2xs 1.18 + diff --git a/NKF.mod/MANIFEST b/NKF.mod/MANIFEST new file mode 100644 index 0000000..7600ec4 --- /dev/null +++ b/NKF.mod/MANIFEST @@ -0,0 +1,6 @@ +Changes +MANIFEST +Makefile.PL +NKF.pm +NKF.xs +test.pl diff --git a/NKF.mod/Makefile.PL b/NKF.mod/Makefile.PL new file mode 100644 index 0000000..34202b6 --- /dev/null +++ b/NKF.mod/Makefile.PL @@ -0,0 +1,18 @@ +use ExtUtils::MakeMaker; +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. +WriteMakefile( + 'NAME' => 'NKF', + 'VERSION_FROM' => 'NKF.pm', # finds $VERSION + 'LIBS' => [''], # e.g., '-lm' + 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING' + 'INC' => '', # e.g., '-I/usr/include/other' + 'INC' => '', # e.g., '-I/usr/include/other' +); + +sub MM::postamble { + ' +NKF.c: ../nkf.c ../utf8tbl.c +'; +} + diff --git a/NKF.mod/NKF.pm b/NKF.mod/NKF.pm new file mode 100644 index 0000000..9abd9bc --- /dev/null +++ b/NKF.mod/NKF.pm @@ -0,0 +1,518 @@ +# Copyright (c) 1987, Fujitsu LTD. (Itaru ICHIKAWA). +# Copyright (c) 1996-2015, The nkf Project. +# All rights reserved. +# +# This software is provided 'as-is', without any express or implied +# warranty. In no event will the authors be held liable for any damages +# arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not +# claim that you wrote the original software. If you use this software +# in a product, an acknowledgment in the product documentation would be +# appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be +# misrepresented as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. + +package NKF; + +use strict; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); + +require Exporter; +require DynaLoader; + +@ISA = qw(Exporter DynaLoader); +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. +@EXPORT = qw( + nkf nkf_continue inputcode +); +$VERSION = '2.14'; + +bootstrap NKF $VERSION; + +# Preloaded methods go here. + +# Autoload methods go after =cut, and are processed by the autosplit program. + +1; +__END__ + +# +# =begin ���� =begin COMMAND �ޤǤ� Perl/NKF �Υɥ������ +# =begin COMMAND ���� =end �ޤǤ� nkf ���ޥ�ɤΥɥ������ +# + +=head1 NAME + +=begin + +NKF - Perl extension for Network Kanji Filter + +=begin COMMAND + +nkf - Network Kanji Filter + +=end + +=head1 SYNOPSIS + +=begin + + use NKF; + $output = nkf("-s",$input); + +=begin COMMAND + +nkf B<[-butjnesliohrTVvwWJESZxXFfmMBOcdILg]> B<[>IB<]> + +=end + +=head1 DESCRIPTION + +=begin + +This is a Perl Extension version of nkf (Network Kanji Filter). +It converts the last argument and return converted result. Conversion +details are specified by flags before the last argument. + +=end + +B is a yet another kanji code converter among networks, hosts and terminals. +It converts input kanji code to designated kanji code +such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32. + +One of the most unique faculty of B is the guess of the input kanji encodings. +It currently recognizes ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 and UTF-32. +So users needn't set the input kanji code explicitly. + +By default, X0201 kana is converted into X0208 kana. +For X0201 kana, SO/SI, SSO and ESC-(-I methods are supported. +For automatic code detection, nkf assumes no X0201 kana in Shift_JIS. +To accept X0201 in Shift_JIS, use B<-X>, B<-x> or B<-S>. + +multiple options are specifed as seprate strings, such as + + print nkf('--ic=UTF8-MAC', '-w', $string), "\n"; + +except the last arguments. + +=head1 OPTIONS + +=over + +=item B<-J -S -E -W -W16 -W32 -j -s -e -w -w16 -w32> + +Specify input and output encodings. Upper case is input. +cf. --ic and --oc. + +=over + +=item B<-J> + +ISO-2022-JP (JIS code). + +=item B<-S> + +Shift_JIS and JIS X 0201 kana. +EUC-JP is recognized as X0201 kana. Without B<-x> flag, +JIS X 0201 Katakana (a.k.a.halfwidth kana) is converted into JIS X 0208. +If you use Windows, see Windows-31J (CP932). + +=item B<-E> + +EUC-JP. + +=item B<-W> + +UTF-8N. + +=item B<-W16[BL][0]> + +UTF-16. +B or L gives whether Big Endian or Little Endian. +0 gives whther put BOM or not. + +=item B<-W32[BL][0]> + +UTF-32. +B or L gives whether Big Endian or Little Endian. +0 gives whther put BOM or not. + +=back + +=item B<-b -u> + +Output is buffered (DEFAULT), Output is unbuffered. + +=item B<-t> + +No conversion. + +=item B<-i[@B]> + +Specify the escape sequence for JIS X 0208. + +=over + +=item B<-i@> + +Use ESC ( @. (JIS X 0208-1978) + +=item B<-iB> + +Use ESC ( B. (JIS X 0208-1983/1990 DEFAULT) + +=back + +=item B<-o[BJ]> + +Specify the escape sequence for US-ASCII/JIS X 0201 Roman. (DEFAULT B) + +=item B<-r> + +{de/en}crypt ROT13/47 + +=item B<-h[123] --hiragana --katakana --katakana-hiragana> + +=over + +=item B<-h1 --hiragana> + +Katakana to Hiragana conversion. + +=item B<-h2 --katakana> + +Hiragana to Katakana conversion. + +=item B<-h3 --katakana-hiragana> + +Katakana to Hiragana and Hiragana to Katakana conversion. + +=back + +=item B<-T> + +Text mode output (MS-DOS) + +=item B<-f[I [- I]]> + +Folding on I length with I margin in a line. +Without this option, fold length is 60 and fold margin is 10. + +=item B<-F> + +New line preserving line folding. + +=item B<-Z[0-3]> + +Convert X0208 alphabet (Fullwidth Alphabets) to ASCII. + +=over + +=item B<-Z -Z0> + +Convert X0208 alphabet to ASCII. + +=item B<-Z1> + +Convert X0208 kankaku to single ASCII space. + +=item B<-Z2> + +Convert X0208 kankaku to double ASCII spaces. + +=item B<-Z3> + +Replacing fullwidth >, <, ", & into '>', '<', '"', '&' as in HTML. + +=back + +=item B<-X -x> + +With B<-X> or without this option, X0201 is converted into X0208 Kana. +With B<-x>, try to preserve X0208 kana and do not convert X0201 kana to X0208. +In JIS output, ESC-(-I is used. In EUC output, SS2 is used. + +=item B<-B[0-2]> + +Assume broken JIS-Kanji input, which lost ESC. +Useful when your site is using old B-News Nihongo patch. + +=over + +=item B<-B1> + +allows any chars after ESC-( or ESC-$. + +=item B<-B2> + +force ASCII after NL. + +=back + +=item B<-I> + +Replacing non iso-2022-jp char into a geta character +(substitute character in Japanese). + +=item B<-m[BQN0]> + +MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT) +To see ISO8859-1 (Latin-1) -l is necessary. + +=over + +=item B<-mB> + +Decode MIME base64 encoded stream. Remove header or other part before +conversion. + +=item B<-mQ> + +Decode MIME quoted stream. '_' in quoted stream is converted to space. + +=item B<-mN> + +Non-strict decoding. +It allows line break in the middle of the base64 encoding. + +=item B<-m0> + +No MIME decode. + +=back + +=item B<-M> + +MIME encode. Header style. All ASCII code and control characters are intact. + +=over + +=item B<-MB> + +MIME encode Base64 stream. +Kanji conversion is performed before encoding, so this cannot be used as a picture encoder. + +=item B<-MQ> + +Perform quoted encoding. + +=back + +=item B<-l> + +Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP. +B<-s>, B<-e> and B<-x> are not compatible with this option. + +=item B<-L[uwm] -d -c> + +Convert line breaks. + +=over + +=item B<-Lu -d> + +unix (LF) + +=item B<-Lw -c> + +windows (CRLF) + +=item B<-Lm> + +mac (CR) + +Without this option, nkf doesn't convert line breaks. + +=back + +=item B<--fj --unix --mac --msdos --windows> + +Convert for these systems. + +=item B<--jis --euc --sjis --mime --base64> + +Convert to named code. + +=item B<--jis-input --euc-input --sjis-input --mime-input --base64-input> + +Assume input system + +=item B<--ic=I --oc=I> + +Set the input or output codeset. +NKF supports following codesets and those codeset names are case insensitive. + +=over + +=item ISO-2022-JP + +a.k.a. RFC1468, 7bit JIS, JUNET + +=item EUC-JP (eucJP-nkf) + +a.k.a. AT&T JIS, Japanese EUC, UJIS + +=item eucJP-ascii + +=item eucJP-ms + +=item CP51932 + +Microsoft Version of EUC-JP. + +=item Shift_JIS + +a.k.a. SJIS, MS_Kanji + +=item Windows-31J + +a.k.a. CP932 + +=item UTF-8 + +same as UTF-8N + +=item UTF-8N + +UTF-8 without BOM + +=item UTF-8-BOM + +UTF-8 with BOM + +=item UTF8-MAC (input only) + +decomposed UTF-8 + +=item UTF-16 + +same as UTF-16BE + +=item UTF-16BE + +UTF-16 Big Endian without BOM + +=item UTF-16BE-BOM + +UTF-16 Big Endian with BOM + +=item UTF-16LE + +UTF-16 Little Endian without BOM + +=item UTF-16LE-BOM + +UTF-16 Little Endian with BOM + +=item UTF-32 + +same as UTF-32BE + +=item UTF-32BE + +UTF-32 Big Endian without BOM + +=item UTF-32BE-BOM + +UTF-32 Big Endian with BOM + +=item UTF-32LE + +UTF-32 Little Endian without BOM + +=item UTF-32LE-BOM + +UTF-32 Little Endian with BOM + +=back + +=item B<--fb-{skip, html, xml, perl, java, subchar}> + +Specify the way that nkf handles unassigned characters. +Without this option, --fb-skip is assumed. + +=item B<--prefix=II..> + +When nkf converts to Shift_JIS, +nkf adds a specified escape character to specified 2nd byte of Shift_JIS characters. +1st byte of argument is the escape character and following bytes are target characters. + +=item B<--no-cp932ext> + +Handle the characters extended in CP932 as unassigned characters. + +=item B<--no-best-fit-chars> + +When Unicode to Encoded byte conversion, +don't convert characters which is not round trip safe. +When Unicode to Unicode conversion, +with this and -x option, nkf can be used as UTF converter. +(In other words, without this and -x option, nkf doesn't save some characters) + +When nkf converts strings that related to path, you should use this opion. + +=item B<--cap-input> + +Decode hex encoded characters. + +=item B<--url-input> + +Unescape percent escaped characters. + +=item B<--numchar-input> + +Decode character reference, such as "&#....;". + +=begin COMMAND + +=item B<--in-place[=>IB<]> B<--overwrite[=>IB<]> + +Overwrite B listed files by filtered result. + +B --overwrite preserves timestamps of original files. + +=item B<--guess=[12]> + +Print guessed encoding and newline. (2 is default, 1 is only encoding) + +=item B<--help> + +Print nkf's help. + +=item B<--version> + +Print nkf's version. + +=end + +=item B<--> + +Ignore rest of -option. + +=back + +=head1 AUTHOR + +Copyright (c) 1987, Fujitsu LTD. (Itaru ICHIKAWA). + +Copyright (c) 1996-2015, The nkf Project. + +=begin + +=head1 SEE ALSO + +perl(1). nkf(1) + +=end + +=cut diff --git a/NKF.mod/NKF.xs b/NKF.mod/NKF.xs new file mode 100644 index 0000000..5b1c9c7 --- /dev/null +++ b/NKF.mod/NKF.xs @@ -0,0 +1,216 @@ +/*********************************************************************** +** Copyright (C) 1996,1998 +** Copyright (C) 2002 +** Ϣ���衧 ΰ����ؾ��󹩳ز� ���� ���� mime/X0208 support +** ��E-Mail Address: kono@ie.u-ryukyu.ac.jp�� +** Ϣ���衧 COW for DOS & Win16 & Win32 & OS/2 +** ��E-Mail Address: GHG00637@niftyserve.or.p�� +** +** ���Υ������Τ����ʤ�ʣ�̡����ѡ�������������ޤ����������� +** ���κݤˤϡ�ï���׸������򼨤�������ʬ��Ĥ����ȡ� +** �����ۤ仨�����Ͽ�ʤɤ��䤤��碌��ɬ�פ���ޤ��� +** �������Ѥ�嵭��ȿ���ʤ��ϰϤǵ��Ĥ��ޤ��� +** �Х��ʥ�����ۤκݤˤ�version message����¸���뤳�Ȥ���Ȥ��ޤ��� +** ���Υץ������ˤĤ��Ƥ��ä˲����ݾڤ⤷�ʤ����������餺�� +** +** Everyone is permitted to do anything on this program +** including copying, modifying, improving, +** as long as you don't try to pretend that you wrote it. +** i.e., the above copyright notice has to appear in all copies. +** Binar y distribution requires original version messages. +** You don't have to ask before copying, redistribution or publishing. +** THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE. +***********************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" +#ifdef __cplusplus +} +#endif + +/* Replace nkf's getchar/putchar for variable modification */ +/* we never use getc, ungetc */ + +#undef getc +#undef ungetc +#define getc(f) (input_ctr>=i_len?-1:input[input_ctr++]) +#define ungetc(c,f) input_ctr-- + +#define INCSIZE 32 +#undef putchar +#undef TRUE +#undef FALSE +#define putchar(c) nkf_putchar(c) + +/* Input/Output pointers */ + +static unsigned char *output; +static unsigned char *input; +static STRLEN input_ctr; +static STRLEN i_len; +static STRLEN output_ctr; +static STRLEN o_len; +static STRLEN incsize; + +static +SV *result; + +/* put one char in the result string variable */ + +static int nkf_putchar_grow(unsigned int c) ; + +/* inline ... no use */ +static +int +nkf_putchar(unsigned int c) +{ + /* string length is enough? */ + if(output_ctre$G(B +$BF0:n$9$k$O$:$G$9!#$$$D$b$N$h$&$K!"(B + perl Makefile.PL + make + make install +$B$H$9$k$3$H$K$h$j;H$($k$h$&$K$J$j$^$9!#(B + +$B;H$$J}$O!"(B + use NKF; + $output = nkf(@flag,$input); + +$B$N$h$&$K;H$$$^$9!#(Bflag $B$O!"(Bnkf $B$HF1$8$G$9!#(B + +$BG[I[$N>r7o$O!"(Bnkf $B$HF1MM$H$7$^$9!#(B + +-- $B$*$^$1(B + +Perl module $B$N(B debug $B$NJ}K!(B + make >& loglog +$B$G(Blog$B$r$H$j!"(Bcc $B$K(B-g $B$rIU$12C$($F(Bcompile$B$7$^$9!#(B + +setenv PERL_DL_NONLAZY 1 + +$B$7$F$+$i!"(B + gdb /usr/bin/perl +$B$=$7$F!"(B + run "-Iblib/lib" "-Iblib/arch" test.pl +$B$H$7$^$9!#$3$l$O!"(Bmake test $B$7$F$_$k$H%*%W%7%g%s$,$o$+$j$^$9!#(B diff --git a/NKF.mod/test.pl b/NKF.mod/test.pl new file mode 100644 index 0000000..3350aef --- /dev/null +++ b/NKF.mod/test.pl @@ -0,0 +1,148 @@ +#!/usr/bin/perl +# +# nkf test program for nkf 2.0 +# Shinji KONO +# Sun Aug 18 12:25:40 JST 1996 +# Sun Nov 8 00:16:06 JST 1998 +# Sun Sep 8 14:03:28 JST 2002 +# +# This is useful when you add new patch on nkf. +# Since this test is too strict, faileurs may not mean +# wrong conversion. +# +# nkf 2.0 utf8 +# nkf 1.5 differs on MIME decoding +# nkf 1.4 passes Basic Conversion tests +# nkf PDS version passes Basic Conversion tests using "nkf -iB -oB " +# + +$nkf = "./nkf"; +# $nkf = "doscmd nkf.exe"; + +# If you want to see the testing process, set next flag. + +$detail_all = 0; +$diff = 1; + +&library_test0(); +sub test { + use NKF; + &library_test(@_); +} + +sub library_test { + local ($nkf,$in,@ans) = @_; + local ($result); + + + # $nkf =~ s/^[^_]* //; + local (@nkf) = split(/ /,$nkf); + shift(@nkf); + print "\nINPUT:\n",$in if ($detail || $detail_all); + print "\nEXPECT:\n", $ans if ($detail || $detail_all); + $result = NKF::nkf(@nkf,$in); + print "\nGOT:\n",$result if ($detail || $detail_all); + + if( $nkf =~ /-\S*m/) { + $result =~ s/ //g; + } + $i = -1; + foreach $ans (@ans) { + $i++; + if( $nkf =~ /-\S*m/) { + $ans =~ s/ //g; + } + if ($result eq $ans){ + print "Ok\n"; + return $result; + } + } + $ans = @ans[$i]; + + print "Fail\n"; + if ($diff) { + open(R,"|od -c >tmp.result.bad"); binmode R; print R $result; close(R); + open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R); + print"$i\n;$result\n;$ans\n" if $nkf[0] eq'-w16B'; + system "diff -c tmp.result.bad tmp.expect.bad"; + } + return $result; +} + +sub library_test0 { +BEGIN { $| = 1; print "1..3\n"; } +END {print "not ok 1\n" unless $loaded;} + use NKF; + $loaded = 1; + print "ok 1\n"; + + ######################### End of black magic. + + # Insert your test code below (better if it prints "ok 13" + # (correspondingly "not ok 13") depending on the success of chunk 13 + # of the test code): + + if ( nkf("-m","-e","1") ) { + print "ok 2\n"; + } else { + print "no 2\n"; + } + + $output = nkf("\033\$@#1#3#2%B"); + if ($output) { + # print $output,"\n"; + print "ok 3\n"; + } else { + print "no 3\n"; + } + + $output = nkf("-Zj","\033\$@#1#3#2%B"); + if ($output) { + # print $output,"\n"; + print "ok 4\n"; + } else { + print "no 4\n"; + } + + # conversion makes strings longer + $output = "\244\306 " x 1024; + $old = length($output); + $output = nkf("-j",$output); + if ($output) { + # print $output,"\n"; + print "ok 5 $old ",length($output),"\n"; + } else { + print "no 5\n"; + } +} + +sub command_tests { + my @tests = @_; + my ($in, $out, $ans); + + for (my $i = 0; $i <= $#tests; $i += 3){ + local (@nkf) = split(/ /,$tests[$i]); + shift(@nkf); + $in = $tests[$i+1]; + $ans = $tests[$i+2]; + $out = NKF::nkf(@nkf,$in); + $out =~ s/ //g if $nkf =~ /-\w+m[NS]/o; + $ans =~ s/ //g if $nkf =~ /-\w+m[NS]/o; + if ($out ne $ans) { + last; + } + } + if ($out eq $ans) { + print "Ok\n"; + return; + } + print "Fail\n"; + if ($diff) { + open(R,"|od -c >tmp.result.bad"); binmode R; print R $out; close(R); + open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R); + system "diff -c tmp.result.bad tmp.expect.bad"; + } + return; +} + +do "../nkf_test.pl"; diff --git a/config.h b/config.h new file mode 100644 index 0000000..752ed38 --- /dev/null +++ b/config.h @@ -0,0 +1,51 @@ +#ifndef _CONFIG_H_ +#define _CONFIG_H_ + +/* UTF8 input and output */ +#define UTF8_INPUT_ENABLE +#define UTF8_OUTPUT_ENABLE + +/* invert characters invalid in Shift_JIS to CP932 */ +#define SHIFTJIS_CP932 + +/* fix input encoding when given by option */ +#define INPUT_CODE_FIX + +/* --overwrite option */ +/* by Satoru Takabayashi */ +#define OVERWRITE + +/* --cap-input, --url-input option */ +#define INPUT_OPTION + +/* --numchar-input option */ +#define NUMCHAR_OPTION + +/* --debug, --no-output option */ +#define CHECK_OPTION + +/* JIS X0212 */ +#define X0212_ENABLE + +/* --exec-in, --exec-out option + * require pipe, fork, execvp and so on. + * please undef this on MS-DOS, MinGW + * this is still buggy arround child process + */ +/* #define EXEC_IO */ + +/* Unicode Normalization */ +#define UNICODE_NORMALIZATION + +/* + * Select Default Output Encoding + * + */ + +/* #define DEFAULT_CODE_JIS */ +/* #define DEFAULT_CODE_SJIS */ +/* #define DEFAULT_CODE_WINDOWS_31J */ +/* #define DEFAULT_CODE_EUC */ +/* #define DEFAULT_CODE_UTF8 */ + +#endif /* _CONFIG_H_ */ diff --git a/dll.def b/dll.def new file mode 100755 index 0000000..ab182c2 --- /dev/null +++ b/dll.def @@ -0,0 +1,27 @@ +LIBRARY nkf32.dll + +EXPORTS + GetNkfVersion + SetNkfOption + NkfConvert + ToHankaku + ToZenkakuKana + EncodeSubject + ToMime + NkfGetKanjiCode + NkfFileConvert1 + NkfFileConvert2 + NkfConvertSafe + ToHankakuSafe + ToZenkakuKanaSafe + EncodeSubjectSafe + GetNkfVersionSafeA + NkfFileConvert1SafeA + NkfFileConvert2SafeA + GetNkfGuessA + GetNkfVersionSafeW + NkfFileConvert1SafeW + NkfFileConvert2SafeW + GetNkfGuessW + GetNkfSupportFunctions + NkfUsage diff --git a/dll.rc b/dll.rc new file mode 100755 index 0000000..8482299 --- /dev/null +++ b/dll.rc @@ -0,0 +1,34 @@ +#include + +1 VERSIONINFO +FILEVERSION 2,1,4,0 +PRODUCTVERSION 2,1,4,0 +FILEFLAGSMASK 0x3fL +#ifdef _DEBUG +FILEFLAGS 0x1L +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS__WINDOWS32 +FILETYPE VFT_DLL +FILESUBTYPE 0x0L +{ + BLOCK "StringFileInfo" + { + BLOCK "041103A4" + { + VALUE "CompanyName", "project nkf\0" + VALUE "FileDescription", "Network Kanji Filter\0" + VALUE "FileVersion", "2.1.4.0 1\0" + VALUE "InternalName", "nkf32\0" + VALUE "LegalCopyright", "Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA); Copyright (C) 2003-2004 T.kaneto\0" + VALUE "OriginalFilename", "nkf32.c\0" + VALUE "ProductName", "nkf32.dll\0" + VALUE "ProductVersion", "2.1.4.0 1\0" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x411, 932 + } +} diff --git a/make_test.pl b/make_test.pl new file mode 100644 index 0000000..1554606 --- /dev/null +++ b/make_test.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl +while ( ) { + $file = $_; + $test = $file; $test =~ s/\.cmd$//; + $out = $test.".out"; $out = `cat $out`; + $in = $test.".in"; $in = `cat $in`; + $opt = `cat $file`; chomp($opt); + + $inpack = pack('u',$in); chomp($inpack); + $outpack = pack('u',$out); chomp($outpack); + +print << "EOFEOF"; +# $test + +\$example{'$test'} = unpack('u',<<'eofeof'); +$inpack +eofeof + +\$example{'$test.ans'} = unpack('u',<<'eofeof'); +$outpack +eofeof + +printf "%-40s", "$test "; + \&test("\$nkf $opt",\$example{'$test'},\$example{'$test.ans'}); +EOFEOF + +} diff --git a/nkf.1 b/nkf.1 new file mode 100644 index 0000000..d9747a2 --- /dev/null +++ b/nkf.1 @@ -0,0 +1,486 @@ +.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "nkf 1" +.TH nkf 1 "2015-12-12" "nkf 2.1.4" " " +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +nkf \- Network Kanji Filter +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +nkf \fB[\-butjnesliohrTVvwWJESZxXFfmMBOcdILg]\fR \fB[\fR\fIfile ...\fR\fB]\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBNkf\fR is a yet another kanji code converter among networks, hosts and terminals. +It converts input kanji code to designated kanji code +such as \s-1ISO\-2022\-JP,\s0 Shift_JIS, EUC-JP, \s-1UTF\-8, UTF\-16\s0 or \s-1UTF\-32.\s0 +.PP +One of the most unique faculty of \fBnkf\fR is the guess of the input kanji encodings. +It currently recognizes \s-1ISO\-2022\-JP,\s0 Shift_JIS, EUC-JP, \s-1UTF\-8, UTF\-16\s0 and \s-1UTF\-32.\s0 +So users needn't set the input kanji code explicitly. +.PP +By default, X0201 kana is converted into X0208 kana. +For X0201 kana, \s-1SO/SI, SSO\s0 and \s-1ESC\-\s0(\-I methods are supported. +For automatic code detection, nkf assumes no X0201 kana in Shift_JIS. +To accept X0201 in Shift_JIS, use \fB\-X\fR, \fB\-x\fR or \fB\-S\fR. +.PP +multiple options are specifed as seprate strings, such as +.PP +.Vb 1 +\& print nkf(\*(Aq\-\-ic=UTF8\-MAC\*(Aq, \*(Aq\-w\*(Aq, $string), "\en"; +.Ve +.PP +except the last arguments. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-J \-S \-E \-W \-W16 \-W32 \-j \-s \-e \-w \-w16 \-w32\fR" 4 +.IX Item "-J -S -E -W -W16 -W32 -j -s -e -w -w16 -w32" +Specify input and output encodings. Upper case is input. +cf. \-\-ic and \-\-oc. +.RS 4 +.IP "\fB\-J\fR" 4 +.IX Item "-J" +\&\s-1ISO\-2022\-JP \s0(\s-1JIS\s0 code). +.IP "\fB\-S\fR" 4 +.IX Item "-S" +Shift_JIS and \s-1JIS X 0201\s0 kana. +EUC-JP is recognized as X0201 kana. Without \fB\-x\fR flag, +\&\s-1JIS X 0201\s0 Katakana (a.k.a.halfwidth kana) is converted into \s-1JIS X 0208.\s0 +If you use Windows, see Windows\-31J (\s-1CP932\s0). +.IP "\fB\-E\fR" 4 +.IX Item "-E" +EUC-JP. +.IP "\fB\-W\fR" 4 +.IX Item "-W" +\&\s-1UTF\-8N.\s0 +.IP "\fB\-W16[\s-1BL\s0][0]\fR" 4 +.IX Item "-W16[BL][0]" +\&\s-1UTF\-16. +B\s0 or L gives whether Big Endian or Little Endian. +0 gives whther put \s-1BOM\s0 or not. +.IP "\fB\-W32[\s-1BL\s0][0]\fR" 4 +.IX Item "-W32[BL][0]" +\&\s-1UTF\-32. +B\s0 or L gives whether Big Endian or Little Endian. +0 gives whther put \s-1BOM\s0 or not. +.RE +.RS 4 +.RE +.IP "\fB\-b \-u\fR" 4 +.IX Item "-b -u" +Output is buffered (\s-1DEFAULT\s0), Output is unbuffered. +.IP "\fB\-t\fR" 4 +.IX Item "-t" +No conversion. +.IP "\fB\-i[@B]\fR" 4 +.IX Item "-i[@B]" +Specify the escape sequence for \s-1JIS X 0208.\s0 +.RS 4 +.IP "\fB\-i@\fR" 4 +.IX Item "-i@" +Use \s-1ESC \s0( @. (\s-1JIS X 0208\-1978\s0) +.IP "\fB\-iB\fR" 4 +.IX Item "-iB" +Use \s-1ESC \s0( B. (\s-1JIS X 0208\-1983/1990 DEFAULT\s0) +.RE +.RS 4 +.RE +.IP "\fB\-o[\s-1BJ\s0]\fR" 4 +.IX Item "-o[BJ]" +Specify the escape sequence for \s-1US\-ASCII/JIS X 0201\s0 Roman. (\s-1DEFAULT B\s0) +.IP "\fB\-r\fR" 4 +.IX Item "-r" +{de/en}crypt \s-1ROT13/47\s0 +.IP "\fB\-h[123] \-\-hiragana \-\-katakana \-\-katakana\-hiragana\fR" 4 +.IX Item "-h[123] --hiragana --katakana --katakana-hiragana" +.RS 4 +.PD 0 +.IP "\fB\-h1 \-\-hiragana\fR" 4 +.IX Item "-h1 --hiragana" +.PD +Katakana to Hiragana conversion. +.IP "\fB\-h2 \-\-katakana\fR" 4 +.IX Item "-h2 --katakana" +Hiragana to Katakana conversion. +.IP "\fB\-h3 \-\-katakana\-hiragana\fR" 4 +.IX Item "-h3 --katakana-hiragana" +Katakana to Hiragana and Hiragana to Katakana conversion. +.RE +.RS 4 +.RE +.IP "\fB\-T\fR" 4 +.IX Item "-T" +Text mode output (MS-DOS) +.IP "\fB\-f[\f(BIm\fB [\- \f(BIn\fB]]\fR" 4 +.IX Item "-f[m [- n]]" +Folding on \fIm\fR length with \fIn\fR margin in a line. +Without this option, fold length is 60 and fold margin is 10. +.IP "\fB\-F\fR" 4 +.IX Item "-F" +New line preserving line folding. +.IP "\fB\-Z[0\-3]\fR" 4 +.IX Item "-Z[0-3]" +Convert X0208 alphabet (Fullwidth Alphabets) to \s-1ASCII.\s0 +.RS 4 +.IP "\fB\-Z \-Z0\fR" 4 +.IX Item "-Z -Z0" +Convert X0208 alphabet to \s-1ASCII.\s0 +.IP "\fB\-Z1\fR" 4 +.IX Item "-Z1" +Convert X0208 kankaku to single \s-1ASCII\s0 space. +.IP "\fB\-Z2\fR" 4 +.IX Item "-Z2" +Convert X0208 kankaku to double \s-1ASCII\s0 spaces. +.IP "\fB\-Z3\fR" 4 +.IX Item "-Z3" +Replacing fullwidth >, <, ", & into '>', '<', '"', '&' as in \s-1HTML.\s0 +.RE +.RS 4 +.RE +.IP "\fB\-X \-x\fR" 4 +.IX Item "-X -x" +With \fB\-X\fR or without this option, X0201 is converted into X0208 Kana. +With \fB\-x\fR, try to preserve X0208 kana and do not convert X0201 kana to X0208. +In \s-1JIS\s0 output, \s-1ESC\-\s0(\-I is used. In \s-1EUC\s0 output, \s-1SS2\s0 is used. +.IP "\fB\-B[0\-2]\fR" 4 +.IX Item "-B[0-2]" +Assume broken JIS-Kanji input, which lost \s-1ESC.\s0 +Useful when your site is using old B\-News Nihongo patch. +.RS 4 +.IP "\fB\-B1\fR" 4 +.IX Item "-B1" +allows any chars after \s-1ESC\-\s0( or \s-1ESC\-$.\s0 +.IP "\fB\-B2\fR" 4 +.IX Item "-B2" +force \s-1ASCII\s0 after \s-1NL.\s0 +.RE +.RS 4 +.RE +.IP "\fB\-I\fR" 4 +.IX Item "-I" +Replacing non iso\-2022\-jp char into a geta character +(substitute character in Japanese). +.IP "\fB\-m[\s-1BQN0\s0]\fR" 4 +.IX Item "-m[BQN0]" +\&\s-1MIME ISO\-2022\-JP/ISO8859\-1\s0 decode. (\s-1DEFAULT\s0) +To see \s-1ISO8859\-1 \s0(Latin\-1) \-l is necessary. +.RS 4 +.IP "\fB\-mB\fR" 4 +.IX Item "-mB" +Decode \s-1MIME\s0 base64 encoded stream. Remove header or other part before +conversion. +.IP "\fB\-mQ\fR" 4 +.IX Item "-mQ" +Decode \s-1MIME\s0 quoted stream. '_' in quoted stream is converted to space. +.IP "\fB\-mN\fR" 4 +.IX Item "-mN" +Non-strict decoding. +It allows line break in the middle of the base64 encoding. +.IP "\fB\-m0\fR" 4 +.IX Item "-m0" +No \s-1MIME\s0 decode. +.RE +.RS 4 +.RE +.IP "\fB\-M\fR" 4 +.IX Item "-M" +\&\s-1MIME\s0 encode. Header style. All \s-1ASCII\s0 code and control characters are intact. +.RS 4 +.IP "\fB\-MB\fR" 4 +.IX Item "-MB" +\&\s-1MIME\s0 encode Base64 stream. +Kanji conversion is performed before encoding, so this cannot be used as a picture encoder. +.IP "\fB\-MQ\fR" 4 +.IX Item "-MQ" +Perform quoted encoding. +.RE +.RS 4 +.RE +.IP "\fB\-l\fR" 4 +.IX Item "-l" +Input and output code is \s-1ISO8859\-1 \s0(Latin\-1) and \s-1ISO\-2022\-JP. +\&\s0\fB\-s\fR, \fB\-e\fR and \fB\-x\fR are not compatible with this option. +.IP "\fB\-L[uwm] \-d \-c\fR" 4 +.IX Item "-L[uwm] -d -c" +Convert line breaks. +.RS 4 +.IP "\fB\-Lu \-d\fR" 4 +.IX Item "-Lu -d" +unix (\s-1LF\s0) +.IP "\fB\-Lw \-c\fR" 4 +.IX Item "-Lw -c" +windows (\s-1CRLF\s0) +.IP "\fB\-Lm\fR" 4 +.IX Item "-Lm" +mac (\s-1CR\s0) +.Sp +Without this option, nkf doesn't convert line breaks. +.RE +.RS 4 +.RE +.IP "\fB\-\-fj \-\-unix \-\-mac \-\-msdos \-\-windows\fR" 4 +.IX Item "--fj --unix --mac --msdos --windows" +Convert for these systems. +.IP "\fB\-\-jis \-\-euc \-\-sjis \-\-mime \-\-base64\fR" 4 +.IX Item "--jis --euc --sjis --mime --base64" +Convert to named code. +.IP "\fB\-\-jis\-input \-\-euc\-input \-\-sjis\-input \-\-mime\-input \-\-base64\-input\fR" 4 +.IX Item "--jis-input --euc-input --sjis-input --mime-input --base64-input" +Assume input system +.IP "\fB\-\-ic=\f(BIinput codeset\fB \-\-oc=\f(BIoutput codeset\fB\fR" 4 +.IX Item "--ic=input codeset --oc=output codeset" +Set the input or output codeset. +\&\s-1NKF\s0 supports following codesets and those codeset names are case insensitive. +.RS 4 +.IP "\s-1ISO\-2022\-JP\s0" 4 +.IX Item "ISO-2022-JP" +a.k.a. \s-1RFC1468,\s0 7bit \s-1JIS, JUNET\s0 +.IP "EUC-JP (eucJP-nkf)" 4 +.IX Item "EUC-JP (eucJP-nkf)" +a.k.a. \s-1AT&T JIS,\s0 Japanese \s-1EUC, UJIS\s0 +.IP "eucJP-ascii" 4 +.IX Item "eucJP-ascii" +.PD 0 +.IP "eucJP-ms" 4 +.IX Item "eucJP-ms" +.IP "\s-1CP51932\s0" 4 +.IX Item "CP51932" +.PD +Microsoft Version of EUC-JP. +.IP "Shift_JIS" 4 +.IX Item "Shift_JIS" +a.k.a. \s-1SJIS,\s0 MS_Kanji +.IP "Windows\-31J" 4 +.IX Item "Windows-31J" +a.k.a. \s-1CP932\s0 +.IP "\s-1UTF\-8\s0" 4 +.IX Item "UTF-8" +same as \s-1UTF\-8N\s0 +.IP "\s-1UTF\-8N\s0" 4 +.IX Item "UTF-8N" +\&\s-1UTF\-8\s0 without \s-1BOM\s0 +.IP "\s-1UTF\-8\-BOM\s0" 4 +.IX Item "UTF-8-BOM" +\&\s-1UTF\-8\s0 with \s-1BOM\s0 +.IP "\s-1UTF8\-MAC \s0(input only)" 4 +.IX Item "UTF8-MAC (input only)" +decomposed \s-1UTF\-8\s0 +.IP "\s-1UTF\-16\s0" 4 +.IX Item "UTF-16" +same as \s-1UTF\-16BE\s0 +.IP "\s-1UTF\-16BE\s0" 4 +.IX Item "UTF-16BE" +\&\s-1UTF\-16\s0 Big Endian without \s-1BOM\s0 +.IP "\s-1UTF\-16BE\-BOM\s0" 4 +.IX Item "UTF-16BE-BOM" +\&\s-1UTF\-16\s0 Big Endian with \s-1BOM\s0 +.IP "\s-1UTF\-16LE\s0" 4 +.IX Item "UTF-16LE" +\&\s-1UTF\-16\s0 Little Endian without \s-1BOM\s0 +.IP "\s-1UTF\-16LE\-BOM\s0" 4 +.IX Item "UTF-16LE-BOM" +\&\s-1UTF\-16\s0 Little Endian with \s-1BOM\s0 +.IP "\s-1UTF\-32\s0" 4 +.IX Item "UTF-32" +same as \s-1UTF\-32BE\s0 +.IP "\s-1UTF\-32BE\s0" 4 +.IX Item "UTF-32BE" +\&\s-1UTF\-32\s0 Big Endian without \s-1BOM\s0 +.IP "\s-1UTF\-32BE\-BOM\s0" 4 +.IX Item "UTF-32BE-BOM" +\&\s-1UTF\-32\s0 Big Endian with \s-1BOM\s0 +.IP "\s-1UTF\-32LE\s0" 4 +.IX Item "UTF-32LE" +\&\s-1UTF\-32\s0 Little Endian without \s-1BOM\s0 +.IP "\s-1UTF\-32LE\-BOM\s0" 4 +.IX Item "UTF-32LE-BOM" +\&\s-1UTF\-32\s0 Little Endian with \s-1BOM\s0 +.RE +.RS 4 +.RE +.IP "\fB\-\-fb\-{skip, html, xml, perl, java, subchar}\fR" 4 +.IX Item "--fb-{skip, html, xml, perl, java, subchar}" +Specify the way that nkf handles unassigned characters. +Without this option, \-\-fb\-skip is assumed. +.IP "\fB\-\-prefix=\f(BIescape character\fB\f(BItarget character\fB..\fR" 4 +.IX Item "--prefix=escape charactertarget character.." +When nkf converts to Shift_JIS, +nkf adds a specified escape character to specified 2nd byte of Shift_JIS characters. +1st byte of argument is the escape character and following bytes are target characters. +.IP "\fB\-\-no\-cp932ext\fR" 4 +.IX Item "--no-cp932ext" +Handle the characters extended in \s-1CP932\s0 as unassigned characters. +.IP "\fB\-\-no\-best\-fit\-chars\fR" 4 +.IX Item "--no-best-fit-chars" +When Unicode to Encoded byte conversion, +don't convert characters which is not round trip safe. +When Unicode to Unicode conversion, +with this and \-x option, nkf can be used as \s-1UTF\s0 converter. +(In other words, without this and \-x option, nkf doesn't save some characters) +.Sp +When nkf converts strings that related to path, you should use this opion. +.IP "\fB\-\-cap\-input\fR" 4 +.IX Item "--cap-input" +Decode hex encoded characters. +.IP "\fB\-\-url\-input\fR" 4 +.IX Item "--url-input" +Unescape percent escaped characters. +.IP "\fB\-\-numchar\-input\fR" 4 +.IX Item "--numchar-input" +Decode character reference, such as \*(L"&#....;\*(R". +.IP "\fB\-\-in\-place[=\fR\fI\s-1SUFFIX\s0\fR\fB]\fR \fB\-\-overwrite[=\fR\fI\s-1SUFFIX\s0\fR\fB]\fR" 4 +.IX Item "--in-place[=SUFFIX] --overwrite[=SUFFIX]" +Overwrite \fBoriginal\fR listed files by filtered result. +.Sp +\&\fBNote\fR \-\-overwrite preserves timestamps of original files. +.IP "\fB\-\-guess=[12]\fR" 4 +.IX Item "--guess=[12]" +Print guessed encoding and newline. (2 is default, 1 is only encoding) +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +Print nkf's help. +.IP "\fB\-\-version\fR" 4 +.IX Item "--version" +Print nkf's version. +.IP "\fB\-\-\fR" 4 +.IX Item "--" +Ignore rest of \-option. +.SH "AUTHOR" +.IX Header "AUTHOR" +Copyright (c) 1987, Fujitsu \s-1LTD. \s0(Itaru \s-1ICHIKAWA\s0). +.PP +Copyright (c) 1996\-2015, The nkf Project. diff --git a/nkf.1j b/nkf.1j new file mode 100644 index 0000000..551211e --- /dev/null +++ b/nkf.1j @@ -0,0 +1,691 @@ +.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" ======================================================================== +.\" +.IX Title "nkf 1" +.TH nkf 1 "2015-12-12" "nkf 2.1.4" " " +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +nkf \- $B%M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%?(B +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +nkf \fB[\-butjnesliohrTVvwWJESZxXFfmMBOcdILg]\fR \fB[\fR\fIfile ...\fR\fB]\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBnkf\fR $B$O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!#(B +.PP +$B$3$N(B\fBnkf\fR$B$NFCD'$H$7$F$O!"F~NO4A;z%3!<%I7O$NE}7WE*$J<+F0G'<15!G=$,$"$k!#(B +$B$3$N$?$a!"MxMQo$N%K%e!<%9$d%a!<%k$N%a%C%;!<%8$K$D$$$F$O3NDj$9$k!#(B +.IP "\fB\-E\fR" 4 +.IX Item "-E" +$BF|K\8l(B \s-1EUC \s0(\s-1AT&T\s0) $B$r2>Dj$9$k!#(B +.IP "\fB\-S\fR" 4 +.IX Item "-S" +Shift_JIS $B$r2>Dj$9$k!#(B +$B$$$o$f$kH>3Q%+%J(B (\s-1JIS X 0201\s0 $BJR2>L>(B) $B$bDj$9$k!#(B +.IP "\fB\-W8\fR" 4 +.IX Item "-W8" +\&\s-1UTF\-8\s0 $B$r2>Dj$9$k!#(B +.IP "\fB\-W16\fR" 4 +.IX Item "-W16" +\&\s-1UTF\-16 \s0(Little Endian)$B$r2>Dj$9$k!#(B +.IP "\fB\-W16B\fR" 4 +.IX Item "-W16B" +\&\s-1UTF\-16 \s0(Big Endian)$B$r2>Dj$9$k!#(B +.IP "\fB\-W16L\fR" 4 +.IX Item "-W16L" +\&\s-1UTF\-16 \s0(Little Endian)$B$r2>Dj$9$k!#(B +.RE +.RS 4 +.RE +.IP "\fB\-x\fR" 4 +.IX Item "-x" +$BDL>o$*$3$J$o$l$k!"$$$o$f$kH>3Q%+%J(B (\s-1JIS X 0201\s0 $BJR2>L>(B) +$B$+$i$$$o$f$kA43Q%+%J(B (\s-1JIS X 0208\s0 $BJR2>L>(B) $B$X$NJQ49$r9T$o$:!"H>3Q%+%J$rJ]B8$9$k!#(B +$BF~NO$O!"(BShift_JIS $B$N(B 1byte $B%+%J!"(BSO/SI$B!"(BESC\-(\-I, \s-1SSO\s0 $B$r3Q%+%J(B (\s-1JIS X 0201\s0 $BJR2>L>(B) $B$r(B $B$$$o$f$kA43Q%+%J(B (\s-1JIS X 0208\s0 $BJR2>L>(B) $B$X$HJQ49$9$k!#(B +.IP "\fB\-B\fR" 4 +.IX Item "-B" +$B2u$l$?(B (Broken) \s-1JIS\s0 $B%3!<%I!#(B +\&\s-1ESC\s0 $B$,$J$/$J$C$?$H2>Dj$9$k!#(B +.RS 4 +.IP "\fB\-B1\fR" 4 +.IX Item "-B1" +\&\fB\s-1ESC\-\s0(\fR, \fB\s-1ESC\-$\s0\fR $B$N$"$H$N%3!<%I$rLd$o$J$$(B +.IP "\fB\-B2\fR" 4 +.IX Item "-B2" +$B2~9T$N$"$H$K6/@)E*$K(B \s-1ASCII\s0 $B$KLa$9(B +.RE +.RS 4 +.RE +.IP "\fB\-f\fR[\fIm\fR[\-\fIn\fR]]" 4 +.IX Item "-f[m[-n]]" +$B0l9T(B \fIm\fR $BJ8;z$K$J$k$h$&$K!"%^!<%8%s$r(B \fIn\fR $B$H$7$F4JC1$J@07A$r$*$3$J$&!#(B +$B%G%U%)%k%H$OJ8;z?t$O(B 60$B!"%^!<%8%s$O(B 10 $B$G$"$k!#(B +.IP "\fB\-Z[0\-3]\fR" 4 +.IX Item "-Z[0-3]" +\&\s-1JIS X 0208\s0 $B1Q?t;z$H3Q$KJQ49$9$k!#(B +.RS 4 +.IP "\fB\-Z \-Z0\fR" 4 +.IX Item "-Z -Z0" +Convert X0208 alphabet to \s-1ASCII.\s0 +.IP "\fB\-Z1\fR" 4 +.IX Item "-Z1" +\&\s-1JIS X 0208\s0 $BOB;z4V3V$r(B \s-1ASCII\s0 space $B0l$D$KJQ49$9$k!#(B +.IP "\fB\-Z2\fR" 4 +.IX Item "-Z2" +\&\s-1JIS X 0208\s0 $BOB;z4V3V$r(B \s-1ASCII\s0 space $BFs$D$KJQ49$9$k!#(B +.IP "\fB\-Z3\fR" 4 +.IX Item "-Z3" +$B!d!"!c!"!I!"!u!"$r(B >$B!"(B<$B!"(B"$B!"(B& $B$KJQ49$9$k!#(B +.RE +.RS 4 +.RE +.IP "\fB\-b\fR" 4 +.IX Item "-b" +$B%P%C%U%!%j%s%0=PNO$r9T$&!#(B($B%G%U%)%k%H(B) +.IP "\fB\-u\fR" 4 +.IX Item "-u" +$B=PNO;~$K!"%P%C%U%!%j%s%0$7$J$$!#(B +ssh localhost | nkf \-u $B$H$$$&$h$&$K;H$&!#(B +.IP "\fB\-t\fR" 4 +.IX Item "-t" +$B2?$b$7$J$$!#(B +.IP "\fB\-I\fR" 4 +.IX Item "-I" +\&\s-1ISO\-2022\-JP\s0 $B0J30$N4A;z%3!<%I$r".$KJQ49!#(B +.IP "\fB\-i[@B]\fR" 4 +.IX Item "-i[@B]" +\&\s-1JIS\s0 $B4A;z$r;X<($9$k%7!<%1%s%9$r;XDj$9$k!#(B +.RS 4 +.IP "\fB\-i@\fR" 4 +.IX Item "-i@" +\&\s-1JIS X 0208\-1978\s0 $B$rMQ$$$k!#(B +.IP "\fB\-iB\fR" 4 +.IX Item "-iB" +\&\s-1JIS X 0208\-1983/1990\s0 $B$rMQ$$$k!#(B +.RE +.RS 4 +.RE +.IP "\fB\-o[\s-1BJH\s0]\fR" 4 +.IX Item "-o[BJH]" +1 $B%P%$%H1Q?tJ8;z%;%C%H$r;X<($9$k%7!<%1%s%9$r;XDj$9$k!#(B +.RS 4 +.IP "\fB\-oB\fR" 4 +.IX Item "-oB" +1 $B%P%$%H1Q?tJ8;z%;%C%H$H$7$F(B US-ASCII $B$rMQ$$$k!#(B +.IP "\fB\-oJ\fR" 4 +.IX Item "-oJ" +1 $B%P%$%H1Q?tJ8;z%;%C%H$H$7$F(B \s-1JIS X 0201\s0 Roman $B$rMQ$$$k!#(B +.IP "\fB\-oH\fR" 4 +.IX Item "-oH" +\&\s-1ESC \s0( H $B$O=i4|$N(B \s-1JUNET\s0 $B%3!<%I$G$N$_MQ$$$i$l$?$b$N$G!"8=:_$O;H$C$F$O$J$i$J$$!#(B +.RE +.RS 4 +.RE +.IP "\fB\-r\fR" 4 +.IX Item "-r" +\&\s-1ROT13/47\s0 $B$NJQ49$r$9$k!#(B +.IP "\fB\-g\fR" 4 +.IX Item "-g" +$B<+F0H=JL$N7k2L$r=PNO$7$^$9!#(B +.IP "\fB\-T\fR" 4 +.IX Item "-T" +$B%F%-%9%H%b!<%I$G=PNO$9$k!#(B(\s-1MS\-DOS\s0 $B>e$G$N$_8zNO$r;}$D(B) +.IP "\fB\-l\fR" 4 +.IX Item "-l" +0x80\-0xfe $B$N%3!<%I$r(B \s-1ISO\-8859\-1 \s0(Latin\-1) $B$H$7$F07$&!#(B +\&\s-1JIS\s0 $B%3!<%I%"%&%H%W%C%H$H$NAH9g$;$_$N$_M-8z!#(B +\&\fB\-s, \-e, \-x\fR $B$H$ON>N)$7$J$$!#(B +.IP "\fB\-O\fR" 4 +.IX Item "-O" +$B%U%!%$%k$K=PNO$9$k!#(B +\&\s-1UNIX\s0 $B$G$OITMW$J5!G=$@$,(B Windows $B$d(B \s-1MSDOS\s0 $B$G$OI,MW$i$7$$!#(B +$BD>8e$N0z$-?t$G$J$/!":G8e$N%U%!%$%kL>$,=PNO%U%!%$%kL>$H$J$j>e=q$-$5$l$F$7$^$&$N$GCm0U!#(B +$B%U%!%$%kL>$,$J$$>l9g$O(B nkf.out$B!#(B +.IP "\fB\-L[uwm] \-d \-c\fR" 4 +.IX Item "-L[uwm] -d -c" +$B2~9T%3!<%I$rJQ49$9$k!#(B +.RS 4 +.IP "\fB\-Lu \-d\fR" 4 +.IX Item "-Lu -d" +unix (\s-1LF\s0) +.IP "\fB\-Lw \-c\fR" 4 +.IX Item "-Lw -c" +windows (\s-1CRLF\s0) +.IP "\fB\-Lm\fR" 4 +.IX Item "-Lm" +mac (\s-1CR\s0) +.RE +.RS 4 +.Sp +$B%G%U%)%k%H$G$OJQ49$7$J$$!#(B +.RE +.IP "\fB\-\-ic=>" 4 +.IX Item "--ic=>" +$BF~NO!&=PNO$N4A;z%3!<%I7O$r;XDj$7$^$9!#(B +.RS 4 +.IP "\fB\s-1ISO\-2022\-JP\s0\fR" 4 +.IX Item "ISO-2022-JP" +$B$$$o$f$k(B \s-1JIS\s0 $B%3!<%I!#(B\fB\-j, \-J\fR $B$HF1$8!#(B +.IP "\fB\s-1ISO\-2022\-JP\-1\s0\fR" 4 +.IX Item "ISO-2022-JP-1" +\&\s-1RFC 2237\s0 $B$KDj$a$i$l$?7A<0!#(B \s-1JIS X 0212\s0 $B$r4^$`!#(B +.IP "\fB\s-1ISO\-2022\-JP\-3\s0\fR" 4 +.IX Item "ISO-2022-JP-3" +\&\s-1RFC 2237\s0 $B$KDj$a$i$l$?7A<0!#(B \s-1JIS X 0213\s0 $B$r4^$`!#(B +.IP "\fBEUC-JP\fR" 4 +.IX Item "EUC-JP" +\&\s-1EUC\s0 $B%3!<%I!#(B\fB\-e, \-E\fR $B$HF1$8!#(B +.IP "\fB\s-1EUC\-JISX0213\s0\fR" 4 +.IX Item "EUC-JISX0213" +$BJ8;z=89g$K(B \s-1JIS X 0213:2000\s0 $B$rMQ$$$?(B EUC\-JP$B!#(B +.IP "\fB\s-1EUC\-JIS\-2004\s0\fR" 4 +.IX Item "EUC-JIS-2004" +$BJ8;z=89g$K(B \s-1JIS X 0213:2004\s0 $B$rMQ$$$?(B EUC\-JP$B!#(B +.IP "\fBeucJP-ascii\fR" 4 +.IX Item "eucJP-ascii" +$B%*!<%W%s%0%k!<%WF|K\%Y%s%@6(5D2q$,Dj5A$7$?(B eucJP\-ascii$B!#(B +\&\fB\-x\fR $B$,0EL[$N$&$A$K;XDj$5$l$k!#(B +.IP "\fBeucJP-ms\fR" 4 +.IX Item "eucJP-ms" +$B%*!<%W%s%0%k!<%WF|K\%Y%s%@6(5D2q$,Dj5A$7$?(B euc\-JPms$B!#(B +\&\fB\-x\fR $B$,0EL[$N$&$A$K;XDj$5$l$k!#(B +.IP "\fB\s-1CP51932\s0\fR" 4 +.IX Item "CP51932" +Micorosft Code Page 51932$B!#(B +\&\fB\-x\fR $B$,0EL[$N$&$A$K;XDj$5$l$k!#(B +.IP "\fBShift_JIS\fR" 4 +.IX Item "Shift_JIS" +Shift_JIS$B!#(B +\&\fB\-s, \-S\fR $B$HF1$8!#(B +.IP "\fBShift_JISX0213\fR" 4 +.IX Item "Shift_JISX0213" +$BJ8;z=89g$K(B \s-1JIS X 0213:2000\s0 $B$rMQ$$$?(B Shift_JIS$B!#(B +.IP "\fBShift_JIS\-2004\fR" 4 +.IX Item "Shift_JIS-2004" +$BJ8;z=89g$K(B \s-1JIS X 0213:2004\s0 $B$rMQ$$$?(B Shift_JIS$B!#(B +.IP "\fB\s-1CP932\s0\fR" 4 +.IX Item "CP932" +Micorosft Code Page 932$B!#(B +\&\fB\-x\fR $B$,0EL[$N$&$A$K;XDj$5$l$k!#(B +.IP "\fB\s-1UTF\-8 UTF\-8N\s0\fR" 4 +.IX Item "UTF-8 UTF-8N" +\&\s-1BOM\s0 $BL5$7$N(B UTF\-8$B!#(B +\&\fB\-w, \-W\fR $B$HF1$8!#(B +.IP "\fB\s-1UTF\-8\-BOM\s0\fR" 4 +.IX Item "UTF-8-BOM" +\&\s-1BOM\s0 $BIU$-$N(B UTF\-8$B!#(B\fB\-w8\fR $B$^$?$O(B \fB\-W\fR $B$HF1$8!#(B +.IP "\fB\s-1UTF8\-MAC\s0\fR" 4 +.IX Item "UTF8-MAC" +UTF8\-MAC$B!#8_49J,2r$5$l$?$R$i$,$J!&%+%?%+%JEy$r7k9g$7$^$9!#(B +$BF~NO$N$_$NBP1~$G$9!#(B +.IP "\fB\s-1UTF\-16 UTF\-16BE\-BOM\s0\fR" 4 +.IX Item "UTF-16 UTF-16BE-BOM" +\&\s-1BOM\s0 $BM-$j$G(B Big Endian $B$N(B UTF\-16$B!#(B +\&\fB\-w16B, \-W16B\fR $B$HF1$8!#(B +.IP "\fB\s-1UTF\-16BE\s0\fR" 4 +.IX Item "UTF-16BE" +\&\s-1BOM\s0 $BL5$7$G(B Big Endian $B$N(B UTF\-16$B!#(B +\&\fB\-w16B0. \-W16B\fR $B$HF1$8!#(B +.IP "\fB\s-1UTF\-16LE\-BOM\s0\fR" 4 +.IX Item "UTF-16LE-BOM" +\&\s-1BOM\s0 $BM-$j$G(B Little Endian $B$N(B UTF\-16$B!#(B +\&\fB\-w16L, \-W16L\fR $B$HF1$8!#(B +.IP "\fB\s-1UTF\-16LE\s0\fR" 4 +.IX Item "UTF-16LE" +\&\s-1BOM\s0 $BL5$7$G(B Little Endian $B$N(B UTF\-16$B!#(B +\&\fB\-w16L0, \-W16L\fR $B$HF1$8!#(B +.RE +.RS 4 +.RE +.IP "\fB\-\-fj \-\-unix \-\-mac \-\-msdos \-\-windows\fR" 4 +.IX Item "--fj --unix --mac --msdos --windows" +$B$3$l$i$N%7%9%F%`$KE,$7$?JQ49$r$7$^$9!#(B +.IP "\fB\-\-jis \-\-euc \-\-sjis \-\-mime \-\-base64\fR" 4 +.IX Item "--jis --euc --sjis --mime --base64" +$BBP1~$9$kJQ49$r$7$^$9!#(B +.IP "\fB\-\-hiragana \-\-katakana\fR" 4 +.IX Item "--hiragana --katakana" +$BJ?2>L>!"JR2>L>JQ49(B +.IP "\fB\-\-fb\-{skip, html, xml, perl, java, subchar}\fR" 4 +.IX Item "--fb-{skip, html, xml, perl, java, subchar}" +Unicode $B$+$i(B Shift_JIS, EUC-JP, \s-1ISO\-2022\-JP\s0 $B$KJQ49$9$k:]$K!"JQ49$G$-$J$+$C$?J8;z$r$I$&07$&$+$r;XDj$G$-$^$9!#(B +.IP "\fB\-\-prefix=\f(BIescape character\fB\f(BItarget character\fB..\fR" 4 +.IX Item "--prefix=escape charactertarget character.." +EUC-JP $B$+$i(B Shift_JIS $B$X$NJQ49$N:]!"(B2 $B%P%$%HL\(B +$B$K8=$l$?J8;z$NA0$K%(%9%1!<%WJ8;z$r$D$1$k$3$H$,$G$-$^$9!#(B +$B0z?t$N(B 1 $BJ8;zL\$,%(%9%1!<%WJ8;z!"(B2 $BJ8;zL\0J9_$K%(%9%1!<%W$5$l$k$Y$-J8;z$r;XDj$7$^$9!#(B +.Sp +$BNc$($P!"(B +.Sp +\&\-\-prefix=\e$@ $B$H$9$k$H!"(BShift_JIS $B$N(B 2 $BJ8;zL\$K(B $ $B$+(B @ $B$,Mh$?$i!"$=$NA0$K(B \e $B$,A^F~$5$l$^$9(B +\&\-\-prefix=@@ $B$H$9$k$H!"(BShift_JIS $B$N(B 2 $BJ8;zL\$K(B @ $B$,Mh$?$i!"$=$NA0$K(B @ $B$,A^F~$5$l$^$9(B +.IP "\fB\-\-no\-cp932ext\fR" 4 +.IX Item "--no-cp932ext" +\&\s-1CP932\s0 $B$K$*$$$F3HD%$5$l$?!"(BNEC $BFC)$7$^$9!#(B +.IP "\fB\-\-cap\-input, \-\-url\-input\fR" 4 +.IX Item "--cap-input, --url-input" +$B$=$l$>$l(B :$B!"(B% $B$KB3$/(B 16 $B?J?t$rJ8;z$KJQ49$9$k(B +.IP "\fB\-\-numchar\-input\fR" 4 +.IX Item "--numchar-input" +&#....; $B$N$h$&$J(B Unicode $BJ8;z;2>H$rJQ49$9$k(B +.IP "\fB\-\-in\-place[=\f(BI\s-1SUFFIX\s0\fB] \-\-overwrite[=\f(BI\s-1SUFFIX\s0\fB]\fR" 4 +.IX Item "--in-place[=SUFFIX] --overwrite[=SUFFIX]" +$B85$N%U%!%$%k$rJQ497k2L$GCV$-49$($k!#(B +$BJ#?t$N%U%!%$%k$r=q$-49$($k$3$H$b2DG=!#(B +$B85$N%U%!%$%k$N%?%$%`%9%?%s%W$H%Q!<%_%C%7%g%s$,J];}$5$l$k!#(B +$B8=:_!":n@.F|;~$d(B inode $B$OJQ99$5$l$k$,!">-Mh$K$o$?$C$F$3$NZ$OL5$$!#(B +.IP "\fB\-\-guess\fR" 4 +.IX Item "--guess" +$B<+F0H=JL$N7k2L$r=PNO$9$k(B +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +$B%3%^%s%I$N4JC1$J@bL@$rI=<($9$k!#(B +.IP "\fB\-V\fR" 4 +.IX Item "-V" +nkf $B$N@_Dj$rI=<($9$k!#(B +.IP "\fB\-v\fR \fB\-\-version\fR" 4 +.IX Item "-v --version" +nkf $B$N%P!<%8%g%s$rI=<($9$k!#(B +.IP "\fB\-\-\fR" 4 +.IX Item "--" +$B$3$l0J9_$N%*%W%7%g%s$rL5;k$9$k(B +.IP "\fB\-\-exec\-in\fR" 4 +.IX Item "--exec-in" +nkf [options] \-\-exec\-in cmd args... $B$H$d$k$H!"(Bcmd $B$N=PNO$r(B nkf $B$NF~NO$H$9$k(B +(config.h $B$G(B \s-1EXEC_IO\s0 $B$r(B define $B$7$F%3%s%Q%$%k$7$?;~$N$_M-8z(B) +.IP "\fB\-\-exec\-out\fR" 4 +.IX Item "--exec-out" +nkf [options] \-\-exec\-out cmd args... $B$H$d$k$H!"(Bnkf $B$N=PNO$r(B cmd $B$NF~NO$H$9$k(B +(config.h $B$G(B \s-1EXEC_IO\s0 $B$r(B define $B$7$F%3%s%Q%$%k$7$?;~$N$_M-8z(B) +.SH "BUGS" +.IX Header "BUGS" +$Bo$KG'<1$5$l$k!#(B +Shift_JIS$B!"(BEUC $B:.9g$b$[$H$s$I$N>l9g$OLdBj$,$J$$!#(B +$B$?$@$7!"(BShift_JIS $B$N$$$o$f$kH>3Q%+%J(B (\s-1JIS X 0201\s0 $BJR2>L>(B) $B$H(B \s-1EUC\s0 $B4A;z$,<1JL$G$-$J$$!#(B +$B$7$?$,$C$F!"%G%U%)%k%H$G$O(B Shift_JIS $B$N$$$o$f$kH>3Q%+%J$O$J$$$H2>Dj$7$F$$$k!#(B +($B$D$^$j!"(BShift_JIS $B$+(B \s-1EUC\s0 $B$+LB$C$?;~$O(B \s-1EUC\s0 $B$H$_$J$9(B) +.PP +Unicode $B$NF|K\8l0J30$NItJ,$NJQ49$K$OBP1~$7$F$$$J$$$,!"(B\fB\-\-no\-best\-fit\-chars\fR $B$r;XDj$9$l$P!"(BUTF\-8 $B$H(B \s-1UTF\-16\s0 $B$NAj8_JQ49$r$9$k$3$H$O2DG=$G$"$k!#(B +.SH "ACKNOWLEDGE" +.IX Header "ACKNOWLEDGE" +$B0J2<$N$+$?$,$?!"$I$&$b$"$j$,$H$&$4$6$$$^$7$?!#(B +.SS "nkf 1.4" +.IX Subsection "nkf 1.4" +morb@fujitsu, kiss@ayumi.stars.flab.fujitsu, cen122@flab.fujitsu, +yuki@flab.fujitsu $BB>!"(Bfujitsu & flab.fujitsu $B$N3'$5$s$N6(NO$K46 +ohta@src.ricoh.co.jp (Junn Ohta) +inouet@strl.nhk.or.jp (Tomoyuki Inoue) +kiri@pulser.win.or.jp (Tetsuaki Kiriyama) +Kimihiko Sato +a_kuroe@kuroe.aoba.yokohama.jp (Akihiko Kuroe) +kono@ie.u\-ryukyu.ac.jp (Shinji Kono) +GHG00637@nifty\-serve.or.jp (\s-1COW\s0) +.SS "nkf 1.9\-" +.IX Subsection "nkf 1.9-" +.IP "$B2OLn??<#(B" 4 +.IX Item "$B2OLn??<#(B" +.PD 0 +.IP "Akio Furukawa" 4 +.IX Item "Akio Furukawa" +.IP "Andy Taki" 4 +.IX Item "Andy Taki" +.IP "From: \s-1OHARA\s0 Shigeki" 4 +.IX Item "From: OHARA Shigeki" +.IP "Fumitaka Kitagawa" 4 +.IX Item "Fumitaka Kitagawa" +.IP "Hiroaki Sengoku" 4 +.IX Item "Hiroaki Sengoku" +.IP "Ikuhiro \s-1MORITA \s0($B?9ED(B $B0i9((B)" 4 +.IX Item "Ikuhiro MORITA ($B?9ED(B $B0i9((B)" +.IP "Yoshiharu \s-1ITO\s0" 4 +.IX Item "Yoshiharu ITO" +.IP "Junn Ohta" 4 +.IX Item "Junn Ohta" +.IP "\s-1KAWAMURA\s0 Masao" 4 +.IX Item "KAWAMURA Masao" +.IP "Kazuhiko Mori" 4 +.IX Item "Kazuhiko Mori" +.IP "Keitaro Isokawa" 4 +.IX Item "Keitaro Isokawa" +.IP "Ken-ichi Hirose" 4 +.IX Item "Ken-ichi Hirose" +.IP "Ki-ichiro \s-1SATO\s0" 4 +.IX Item "Ki-ichiro SATO" +.IP "Kiwamu Aoyama" 4 +.IX Item "Kiwamu Aoyama" +.IP "Koichi Hirayama" 4 +.IX Item "Koichi Hirayama" +.IP "Mitsuru Hase ($BD9C+!!K~(B)" 4 +.IX Item "Mitsuru Hase ($BD9C+(B $BK~(B)" +.IP "\s-1OHARA\s0 Shigeki ($BBg86(B $B=E>Hx(B" 4 +.IX Item "$B%$%s%H%i%M%C%H%7%9%F%`(B($B3t(B)$B>>Hx(B" +.IP "$B1-;tJ8IR(B" 4 +.IX Item "$B1-;tJ8IR(B" +.IP "$B1v:j(B $B5#I'(B(\s-1SHIOZAKI\s0 Takehiko)" 4 +.IX Item "$B1v:j(B $B5#I'(B(SHIOZAKI Takehiko)" +.IP "$B2OB<2mIW(B (Media Lab.)" 4 +.IX Item "$B2OB<2mIW(B (Media Lab.)" +.IP "$B2OLn(B $B9/;J(B" 4 +.IX Item "$B2OLn(B $B9/;J(B" +.IP "$B4n@%!HE_G-!I9@!wFn9q2-Fl(B" 4 +.IX Item "$B4n@%!HE_G-!I9@!wFn9q2-Fl(B" +.IP "$B6b0f(B $BCRI'(B" 4 +.IX Item "$B6b0f(B $BCRI'(B" +.IP "$B7KED(B $BM4;K(B ($B$+$D$i$@(B $B$^$5$7(B)" 4 +.IX Item "$B7KED(B $BM4;K(B ($B$+$D$i$@(B $B$^$5$7(B)" +.IP "$B9b6659LA(B" 4 +.IX Item "$B9b6659LA(B" +.IP "$B9q5H(B" 4 +.IX Item "$B9q5H(B" +.IP "$B9u9>L@I'(B" 4 +.IX Item "$B9u9>L@I'(B" +.IP "$B;0Bp@5BY(B" 4 +.IX Item "$B;0Bp@5BY(B" +.IP "$B;3AR(B $B??(B" 4 +.IX Item "$B;3AR(B $B??(B" +.IP "$B;3K\(B $BK'?M(B" 4 +.IX Item "$B;3K\(B $BK'?M(B" +.IP "$B;3LnM5;J(B ($B$d$^$N$f$&$8(B)" 4 +.IX Item "$B;3LnM5;J(B ($B$d$^$N$f$&$8(B)" +.IP "$B=EB.Eg4pLw(B" 4 +.IX Item "$B>.Eg4pLw(B" +.IP "$B>eED!!7r(B" 4 +.IX Item "$B>eED(B $B7r(B" +.IP "$B?70f(B $B9/;J(B (Koji Arai)" 4 +.IX Item "$B?70f(B $B9/;J(B (Koji Arai)" +.IP "$B?9!!@i3(;R(B" 4 +.IX Item "$B?9(B $B@i3(;R(B" +.IP "$B?9!!OBI'(B" 4 +.IX Item "$B?9(B $BOBI'(B" +.IP "$B?eLn(B $B5.J8(B" 4 +.IX Item "$B?eLn(B $B5.J8(B" +.IP "$BA0COOB=S(B" 4 +.IX Item "$BA0COOB=S(B" +.IP "$BCg=!:,!wJBNs?.Mj8&(B" 4 +.IX Item "$BCg=!:,!wJBNs?.Mj8&(B" +.IP "$BCvC+(B $B1Q0lO:(B == Eiichiro Itani" 4 +.IX Item "$BCvC+(B $B1Q0lO:(B == Eiichiro Itani" +.IP "$BF#86!!=(9T(B" 4 +.IX Item "$BF#86(B $B=(9T(B" +.IP "$BH,ED(B $B??9T(B (Masayuki Hatta)" 4 +.IX Item "$BH,ED(B $B??9T(B (Masayuki Hatta)" +.IP "$BHx@nIRLi(B" 4 +.IX Item "$BHx@nIRLi(B" +.IP "$BK>7n(B $B9';V(B" 4 +.IX Item "$BK>7n(B $B9';V(B" +.IP "$BLZB<(B ($B!wC^GHBg3X?t3X8&5f2J(B)" 4 +.IX Item "$BLZB<(B ($B!wC^GHBg3X?t3X8&5f2J(B)" +.IP "$BLnB<=S>4(B" 4 +.IX Item "$BLnB<=S>4(B" +.IP "$BM-2,!w%_%N%k%?(B" 4 +.IX Item "$BM-2,!w%_%N%k%?(B" +.IP "$BM-Bt(B $BL@9((B" 4 +.IX Item "$BM-Bt(B $BL@9((B" +.IP "$BMn9g0l4n(B" 4 +.IX Item "$BMn9g0l4n(B" +.IP "$BNS(B $BN<(B" 4 +.IX Item "$BNS(B $BN<(B" +.IP "$BT"0B(B $B<#(B" 4 +.IX Item "$BT"0B(B $B<#(B" +.IP "$BLZ2<(B $BM:2p(B" 4 +.IX Item "$BLZ2<(B $BM:2p(B" +.IP "$BEDCfN4M5(B" 4 +.IX Item "$BEDCfN4M5(B" +.IP "$BDaC+D> +#include +#endif +#if defined(__OS2__) +# define INCL_DOS +# define INCL_DOSERRORS +# include +#endif +#include + + +/* state of output_mode and input_mode + + c2 0 means ASCII + JIS_X_0201_1976_K + ISO_8859_1 + JIS_X_0208 + EOF all termination + c1 32bit data + + */ + +/* MIME ENCODE */ + +#define FIXED_MIME 7 +#define STRICT_MIME 8 + +/* byte order */ +enum byte_order { + ENDIAN_BIG = 1, + ENDIAN_LITTLE = 2, + ENDIAN_2143 = 3, + ENDIAN_3412 = 4 +}; + +/* ASCII CODE */ + +#define BS 0x08 +#define TAB 0x09 +#define LF 0x0a +#define CR 0x0d +#define ESC 0x1b +#define SP 0x20 +#define DEL 0x7f +#define SI 0x0f +#define SO 0x0e +#define SS2 0x8e +#define SS3 0x8f +#define CRLF 0x0D0A + + +/* encodings */ + +enum nkf_encodings { + ASCII, + ISO_8859_1, + ISO_2022_JP, + CP50220, + CP50221, + CP50222, + ISO_2022_JP_1, + ISO_2022_JP_3, + ISO_2022_JP_2004, + SHIFT_JIS, + WINDOWS_31J, + CP10001, + EUC_JP, + EUCJP_NKF, + CP51932, + EUCJP_MS, + EUCJP_ASCII, + SHIFT_JISX0213, + SHIFT_JIS_2004, + EUC_JISX0213, + EUC_JIS_2004, + UTF_8, + UTF_8N, + UTF_8_BOM, + UTF8_MAC, + UTF_16, + UTF_16BE, + UTF_16BE_BOM, + UTF_16LE, + UTF_16LE_BOM, + UTF_32, + UTF_32BE, + UTF_32BE_BOM, + UTF_32LE, + UTF_32LE_BOM, + BINARY, + NKF_ENCODING_TABLE_SIZE, + JIS_X_0201_1976_K = 0x1013, /* I */ /* JIS C 6220-1969 */ + /* JIS_X_0201_1976_R = 0x1014, */ /* J */ /* JIS C 6220-1969 */ + /* JIS_X_0208_1978 = 0x1040, */ /* @ */ /* JIS C 6226-1978 */ + /* JIS_X_0208_1983 = 0x1087, */ /* B */ /* JIS C 6226-1983 */ + JIS_X_0208 = 0x1168, /* @B */ + JIS_X_0212 = 0x1159, /* D */ + /* JIS_X_0213_2000_1 = 0x1228, */ /* O */ + JIS_X_0213_2 = 0x1229, /* P */ + JIS_X_0213_1 = 0x1233 /* Q */ +}; + +static nkf_char s_iconv(nkf_char c2, nkf_char c1, nkf_char c0); +static nkf_char e_iconv(nkf_char c2, nkf_char c1, nkf_char c0); +static nkf_char w_iconv(nkf_char c2, nkf_char c1, nkf_char c0); +static nkf_char w_iconv16(nkf_char c2, nkf_char c1, nkf_char c0); +static nkf_char w_iconv32(nkf_char c2, nkf_char c1, nkf_char c0); +static void j_oconv(nkf_char c2, nkf_char c1); +static void s_oconv(nkf_char c2, nkf_char c1); +static void e_oconv(nkf_char c2, nkf_char c1); +static void w_oconv(nkf_char c2, nkf_char c1); +static void w_oconv16(nkf_char c2, nkf_char c1); +static void w_oconv32(nkf_char c2, nkf_char c1); + +typedef struct { + const char *name; + nkf_char (*iconv)(nkf_char c2, nkf_char c1, nkf_char c0); + void (*oconv)(nkf_char c2, nkf_char c1); +} nkf_native_encoding; + +nkf_native_encoding NkfEncodingASCII = { "ASCII", e_iconv, e_oconv }; +nkf_native_encoding NkfEncodingISO_2022_JP = { "ISO-2022-JP", e_iconv, j_oconv }; +nkf_native_encoding NkfEncodingShift_JIS = { "Shift_JIS", s_iconv, s_oconv }; +nkf_native_encoding NkfEncodingEUC_JP = { "EUC-JP", e_iconv, e_oconv }; +nkf_native_encoding NkfEncodingUTF_8 = { "UTF-8", w_iconv, w_oconv }; +nkf_native_encoding NkfEncodingUTF_16 = { "UTF-16", w_iconv16, w_oconv16 }; +nkf_native_encoding NkfEncodingUTF_32 = { "UTF-32", w_iconv32, w_oconv32 }; + +typedef struct { + const int id; + const char *name; + const nkf_native_encoding *base_encoding; +} nkf_encoding; + +nkf_encoding nkf_encoding_table[] = { + {ASCII, "US-ASCII", &NkfEncodingASCII}, + {ISO_8859_1, "ISO-8859-1", &NkfEncodingASCII}, + {ISO_2022_JP, "ISO-2022-JP", &NkfEncodingISO_2022_JP}, + {CP50220, "CP50220", &NkfEncodingISO_2022_JP}, + {CP50221, "CP50221", &NkfEncodingISO_2022_JP}, + {CP50222, "CP50222", &NkfEncodingISO_2022_JP}, + {ISO_2022_JP_1, "ISO-2022-JP-1", &NkfEncodingISO_2022_JP}, + {ISO_2022_JP_3, "ISO-2022-JP-3", &NkfEncodingISO_2022_JP}, + {ISO_2022_JP_2004, "ISO-2022-JP-2004", &NkfEncodingISO_2022_JP}, + {SHIFT_JIS, "Shift_JIS", &NkfEncodingShift_JIS}, + {WINDOWS_31J, "Windows-31J", &NkfEncodingShift_JIS}, + {CP10001, "CP10001", &NkfEncodingShift_JIS}, + {EUC_JP, "EUC-JP", &NkfEncodingEUC_JP}, + {EUCJP_NKF, "eucJP-nkf", &NkfEncodingEUC_JP}, + {CP51932, "CP51932", &NkfEncodingEUC_JP}, + {EUCJP_MS, "eucJP-MS", &NkfEncodingEUC_JP}, + {EUCJP_ASCII, "eucJP-ASCII", &NkfEncodingEUC_JP}, + {SHIFT_JISX0213, "Shift_JISX0213", &NkfEncodingShift_JIS}, + {SHIFT_JIS_2004, "Shift_JIS-2004", &NkfEncodingShift_JIS}, + {EUC_JISX0213, "EUC-JISX0213", &NkfEncodingEUC_JP}, + {EUC_JIS_2004, "EUC-JIS-2004", &NkfEncodingEUC_JP}, + {UTF_8, "UTF-8", &NkfEncodingUTF_8}, + {UTF_8N, "UTF-8N", &NkfEncodingUTF_8}, + {UTF_8_BOM, "UTF-8-BOM", &NkfEncodingUTF_8}, + {UTF8_MAC, "UTF8-MAC", &NkfEncodingUTF_8}, + {UTF_16, "UTF-16", &NkfEncodingUTF_16}, + {UTF_16BE, "UTF-16BE", &NkfEncodingUTF_16}, + {UTF_16BE_BOM, "UTF-16BE-BOM", &NkfEncodingUTF_16}, + {UTF_16LE, "UTF-16LE", &NkfEncodingUTF_16}, + {UTF_16LE_BOM, "UTF-16LE-BOM", &NkfEncodingUTF_16}, + {UTF_32, "UTF-32", &NkfEncodingUTF_32}, + {UTF_32BE, "UTF-32BE", &NkfEncodingUTF_32}, + {UTF_32BE_BOM, "UTF-32BE-BOM", &NkfEncodingUTF_32}, + {UTF_32LE, "UTF-32LE", &NkfEncodingUTF_32}, + {UTF_32LE_BOM, "UTF-32LE-BOM", &NkfEncodingUTF_32}, + {BINARY, "BINARY", &NkfEncodingASCII}, + {-1, NULL, NULL} +}; + +struct { + const char *name; + const int id; +} encoding_name_to_id_table[] = { + {"US-ASCII", ASCII}, + {"ASCII", ASCII}, + {"646", ASCII}, + {"ROMAN8", ASCII}, + {"ISO-2022-JP", ISO_2022_JP}, + {"ISO2022JP-CP932", CP50220}, + {"CP50220", CP50220}, + {"CP50221", CP50221}, + {"CSISO2022JP", CP50221}, + {"CP50222", CP50222}, + {"ISO-2022-JP-1", ISO_2022_JP_1}, + {"ISO-2022-JP-3", ISO_2022_JP_3}, + {"ISO-2022-JP-2004", ISO_2022_JP_2004}, + {"SHIFT_JIS", SHIFT_JIS}, + {"SJIS", SHIFT_JIS}, + {"MS_Kanji", SHIFT_JIS}, + {"PCK", SHIFT_JIS}, + {"WINDOWS-31J", WINDOWS_31J}, + {"CSWINDOWS31J", WINDOWS_31J}, + {"CP932", WINDOWS_31J}, + {"MS932", WINDOWS_31J}, + {"CP10001", CP10001}, + {"EUCJP", EUC_JP}, + {"EUC-JP", EUC_JP}, + {"EUCJP-NKF", EUCJP_NKF}, + {"CP51932", CP51932}, + {"EUC-JP-MS", EUCJP_MS}, + {"EUCJP-MS", EUCJP_MS}, + {"EUCJPMS", EUCJP_MS}, + {"EUC-JP-ASCII", EUCJP_ASCII}, + {"EUCJP-ASCII", EUCJP_ASCII}, + {"SHIFT_JISX0213", SHIFT_JISX0213}, + {"SHIFT_JIS-2004", SHIFT_JIS_2004}, + {"EUC-JISX0213", EUC_JISX0213}, + {"EUC-JIS-2004", EUC_JIS_2004}, + {"UTF-8", UTF_8}, + {"UTF-8N", UTF_8N}, + {"UTF-8-BOM", UTF_8_BOM}, + {"UTF8-MAC", UTF8_MAC}, + {"UTF-8-MAC", UTF8_MAC}, + {"UTF-16", UTF_16}, + {"UTF-16BE", UTF_16BE}, + {"UTF-16BE-BOM", UTF_16BE_BOM}, + {"UTF-16LE", UTF_16LE}, + {"UTF-16LE-BOM", UTF_16LE_BOM}, + {"UTF-32", UTF_32}, + {"UTF-32BE", UTF_32BE}, + {"UTF-32BE-BOM", UTF_32BE_BOM}, + {"UTF-32LE", UTF_32LE}, + {"UTF-32LE-BOM", UTF_32LE_BOM}, + {"BINARY", BINARY}, + {NULL, -1} +}; + +#if defined(DEFAULT_CODE_JIS) +#define DEFAULT_ENCIDX ISO_2022_JP +#elif defined(DEFAULT_CODE_SJIS) +#define DEFAULT_ENCIDX SHIFT_JIS +#elif defined(DEFAULT_CODE_WINDOWS_31J) +#define DEFAULT_ENCIDX WINDOWS_31J +#elif defined(DEFAULT_CODE_EUC) +#define DEFAULT_ENCIDX EUC_JP +#elif defined(DEFAULT_CODE_UTF8) +#define DEFAULT_ENCIDX UTF_8 +#endif + + +#define is_alnum(c) \ + (('a'<=c && c<='z')||('A'<= c && c<='Z')||('0'<=c && c<='9')) + +/* I don't trust portablity of toupper */ +#define nkf_toupper(c) (('a'<=c && c<='z')?(c-('a'-'A')):c) +#define nkf_isoctal(c) ('0'<=c && c<='7') +#define nkf_isdigit(c) ('0'<=c && c<='9') +#define nkf_isxdigit(c) (nkf_isdigit(c) || ('a'<=c && c<='f') || ('A'<=c && c <= 'F')) +#define nkf_isblank(c) (c == SP || c == TAB) +#define nkf_isspace(c) (nkf_isblank(c) || c == CR || c == LF) +#define nkf_isalpha(c) (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) +#define nkf_isalnum(c) (nkf_isdigit(c) || nkf_isalpha(c)) +#define nkf_isprint(c) (SP<=c && c<='~') +#define nkf_isgraph(c) ('!'<=c && c<='~') +#define hex2bin(c) (('0'<=c&&c<='9') ? (c-'0') : \ + ('A'<=c&&c<='F') ? (c-'A'+10) : \ + ('a'<=c&&c<='f') ? (c-'a'+10) : 0) +#define bin2hex(c) ("0123456789ABCDEF"[c&15]) +#define is_eucg3(c2) (((unsigned short)c2 >> 8) == SS3) +#define nkf_noescape_mime(c) ((c == CR) || (c == LF) || \ + ((c > SP) && (c < DEL) && (c != '?') && (c != '=') && (c != '_') \ + && (c != '(') && (c != ')') && (c != '.') && (c != 0x22))) + +#define is_ibmext_in_sjis(c2) (CP932_TABLE_BEGIN <= c2 && c2 <= CP932_TABLE_END) +#define nkf_byte_jisx0201_katakana_p(c) (SP <= c && c <= 0x5F) + +#define HOLD_SIZE 1024 +#if defined(INT_IS_SHORT) +#define IOBUF_SIZE 2048 +#else +#define IOBUF_SIZE 16384 +#endif + +#define DEFAULT_J 'B' +#define DEFAULT_R 'B' + + +#define GETA1 0x22 +#define GETA2 0x2e + + +/* MIME preprocessor */ + +#ifdef EASYWIN /*Easy Win */ +extern POINT _BufferSize; +#endif + +struct input_code{ + const char *name; + nkf_char stat; + nkf_char score; + nkf_char index; + nkf_char buf[3]; + void (*status_func)(struct input_code *, nkf_char); + nkf_char (*iconv_func)(nkf_char c2, nkf_char c1, nkf_char c0); + int _file_stat; +}; + +static const char *input_codename = NULL; /* NULL: unestablished, "": BINARY */ +static nkf_encoding *input_encoding = NULL; +static nkf_encoding *output_encoding = NULL; + +#if defined(UTF8_INPUT_ENABLE) || defined(UTF8_OUTPUT_ENABLE) +/* UCS Mapping + * 0: Shift_JIS, eucJP-ascii + * 1: eucJP-ms + * 2: CP932, CP51932 + * 3: CP10001 + */ +#define UCS_MAP_ASCII 0 +#define UCS_MAP_MS 1 +#define UCS_MAP_CP932 2 +#define UCS_MAP_CP10001 3 +static int ms_ucs_map_f = UCS_MAP_ASCII; +#endif +#ifdef UTF8_INPUT_ENABLE +/* no NEC special, NEC-selected IBM extended and IBM extended characters */ +static int no_cp932ext_f = FALSE; +/* ignore ZERO WIDTH NO-BREAK SPACE */ +static int no_best_fit_chars_f = FALSE; +static int input_endian = ENDIAN_BIG; +static int input_bom_f = FALSE; +static nkf_char unicode_subchar = '?'; /* the regular substitution character */ +static void (*encode_fallback)(nkf_char c) = NULL; +static void w_status(struct input_code *, nkf_char); +#endif +#ifdef UTF8_OUTPUT_ENABLE +static int output_bom_f = FALSE; +static int output_endian = ENDIAN_BIG; +#endif + +static void std_putc(nkf_char c); +static nkf_char std_getc(FILE *f); +static nkf_char std_ungetc(nkf_char c,FILE *f); + +static nkf_char broken_getc(FILE *f); +static nkf_char broken_ungetc(nkf_char c,FILE *f); + +static nkf_char mime_getc(FILE *f); + +static void mime_putc(nkf_char c); + +/* buffers */ + +#if !defined(PERL_XS) && !defined(WIN32DLL) +static unsigned char stdibuf[IOBUF_SIZE]; +static unsigned char stdobuf[IOBUF_SIZE]; +#endif + +#define NKF_UNSPECIFIED (-TRUE) + +/* flags */ +static int unbuf_f = FALSE; +static int estab_f = FALSE; +static int nop_f = FALSE; +static int binmode_f = TRUE; /* binary mode */ +static int rot_f = FALSE; /* rot14/43 mode */ +static int hira_f = FALSE; /* hira/kata henkan */ +static int alpha_f = FALSE; /* convert JIx0208 alphbet to ASCII */ +static int mime_f = MIME_DECODE_DEFAULT; /* convert MIME B base64 or Q */ +static int mime_decode_f = FALSE; /* mime decode is explicitly on */ +static int mimebuf_f = FALSE; /* MIME buffered input */ +static int broken_f = FALSE; /* convert ESC-less broken JIS */ +static int iso8859_f = FALSE; /* ISO8859 through */ +static int mimeout_f = FALSE; /* base64 mode */ +static int x0201_f = NKF_UNSPECIFIED; /* convert JIS X 0201 */ +static int iso2022jp_f = FALSE; /* replace non ISO-2022-JP with GETA */ + +#ifdef UNICODE_NORMALIZATION +static int nfc_f = FALSE; +static nkf_char (*i_nfc_getc)(FILE *) = std_getc; /* input of ugetc */ +static nkf_char (*i_nfc_ungetc)(nkf_char c ,FILE *f) = std_ungetc; +#endif + +#ifdef INPUT_OPTION +static int cap_f = FALSE; +static nkf_char (*i_cgetc)(FILE *) = std_getc; /* input of cgetc */ +static nkf_char (*i_cungetc)(nkf_char c ,FILE *f) = std_ungetc; + +static int url_f = FALSE; +static nkf_char (*i_ugetc)(FILE *) = std_getc; /* input of ugetc */ +static nkf_char (*i_uungetc)(nkf_char c ,FILE *f) = std_ungetc; +#endif + +#define PREFIX_EUCG3 NKF_INT32_C(0x8F00) +#define CLASS_MASK NKF_INT32_C(0xFF000000) +#define CLASS_UNICODE NKF_INT32_C(0x01000000) +#define VALUE_MASK NKF_INT32_C(0x00FFFFFF) +#define UNICODE_BMP_MAX NKF_INT32_C(0x0000FFFF) +#define UNICODE_MAX NKF_INT32_C(0x0010FFFF) +#define nkf_char_euc3_new(c) ((c) | PREFIX_EUCG3) +#define nkf_char_unicode_new(c) ((c) | CLASS_UNICODE) +#define nkf_char_unicode_p(c) ((c & CLASS_MASK) == CLASS_UNICODE) +#define nkf_char_unicode_bmp_p(c) ((c & VALUE_MASK) <= UNICODE_BMP_MAX) +#define nkf_char_unicode_value_p(c) ((c & VALUE_MASK) <= UNICODE_MAX) + +#define UTF16_TO_UTF32(lead, trail) (((lead) << 10) + (trail) - NKF_INT32_C(0x35FDC00)) + +#ifdef NUMCHAR_OPTION +static int numchar_f = FALSE; +static nkf_char (*i_ngetc)(FILE *) = std_getc; /* input of ugetc */ +static nkf_char (*i_nungetc)(nkf_char c ,FILE *f) = std_ungetc; +#endif + +#ifdef CHECK_OPTION +static int noout_f = FALSE; +static void no_putc(nkf_char c); +static int debug_f = FALSE; +static void debug(const char *str); +static nkf_char (*iconv_for_check)(nkf_char c2,nkf_char c1,nkf_char c0) = 0; +#endif + +static int guess_f = 0; /* 0: OFF, 1: ON, 2: VERBOSE */ +static void set_input_codename(const char *codename); + +#ifdef EXEC_IO +static int exec_f = 0; +#endif + +#ifdef SHIFTJIS_CP932 +/* invert IBM extended characters to others */ +static int cp51932_f = FALSE; + +/* invert NEC-selected IBM extended characters to IBM extended characters */ +static int cp932inv_f = TRUE; + +/* static nkf_char cp932_conv(nkf_char c2, nkf_char c1); */ +#endif /* SHIFTJIS_CP932 */ + +static int x0212_f = FALSE; +static int x0213_f = FALSE; + +static unsigned char prefix_table[256]; + +static void e_status(struct input_code *, nkf_char); +static void s_status(struct input_code *, nkf_char); + +struct input_code input_code_list[] = { + {"EUC-JP", 0, 0, 0, {0, 0, 0}, e_status, e_iconv, 0}, + {"Shift_JIS", 0, 0, 0, {0, 0, 0}, s_status, s_iconv, 0}, +#ifdef UTF8_INPUT_ENABLE + {"UTF-8", 0, 0, 0, {0, 0, 0}, w_status, w_iconv, 0}, + {"UTF-16", 0, 0, 0, {0, 0, 0}, NULL, w_iconv16, 0}, + {"UTF-32", 0, 0, 0, {0, 0, 0}, NULL, w_iconv32, 0}, +#endif + {NULL, 0, 0, 0, {0, 0, 0}, NULL, NULL, 0} +}; + +static int mimeout_mode = 0; /* 0, -1, 'Q', 'B', 1, 2 */ +static int base64_count = 0; + +/* X0208 -> ASCII converter */ + +/* fold parameter */ +static int f_line = 0; /* chars in line */ +static int f_prev = 0; +static int fold_preserve_f = FALSE; /* preserve new lines */ +static int fold_f = FALSE; +static int fold_len = 0; + +/* options */ +static unsigned char kanji_intro = DEFAULT_J; +static unsigned char ascii_intro = DEFAULT_R; + +/* Folding */ + +#define FOLD_MARGIN 10 +#define DEFAULT_FOLD 60 + +static int fold_margin = FOLD_MARGIN; + +/* process default */ + +static nkf_char +no_connection2(ARG_UNUSED nkf_char c2, ARG_UNUSED nkf_char c1, ARG_UNUSED nkf_char c0) +{ + fprintf(stderr,"nkf internal module connection failure.\n"); + exit(EXIT_FAILURE); + return 0; /* LINT */ +} + +static void +no_connection(nkf_char c2, nkf_char c1) +{ + no_connection2(c2,c1,0); +} + +static nkf_char (*iconv)(nkf_char c2,nkf_char c1,nkf_char c0) = no_connection2; +static void (*oconv)(nkf_char c2,nkf_char c1) = no_connection; + +static void (*o_zconv)(nkf_char c2,nkf_char c1) = no_connection; +static void (*o_fconv)(nkf_char c2,nkf_char c1) = no_connection; +static void (*o_eol_conv)(nkf_char c2,nkf_char c1) = no_connection; +static void (*o_rot_conv)(nkf_char c2,nkf_char c1) = no_connection; +static void (*o_hira_conv)(nkf_char c2,nkf_char c1) = no_connection; +static void (*o_base64conv)(nkf_char c2,nkf_char c1) = no_connection; +static void (*o_iso2022jp_check_conv)(nkf_char c2,nkf_char c1) = no_connection; + +/* static redirections */ + +static void (*o_putc)(nkf_char c) = std_putc; + +static nkf_char (*i_getc)(FILE *f) = std_getc; /* general input */ +static nkf_char (*i_ungetc)(nkf_char c,FILE *f) =std_ungetc; + +static nkf_char (*i_bgetc)(FILE *) = std_getc; /* input of mgetc */ +static nkf_char (*i_bungetc)(nkf_char c ,FILE *f) = std_ungetc; + +static void (*o_mputc)(nkf_char c) = std_putc ; /* output of mputc */ + +static nkf_char (*i_mgetc)(FILE *) = std_getc; /* input of mgetc */ +static nkf_char (*i_mungetc)(nkf_char c ,FILE *f) = std_ungetc; + +/* for strict mime */ +static nkf_char (*i_mgetc_buf)(FILE *) = std_getc; /* input of mgetc_buf */ +static nkf_char (*i_mungetc_buf)(nkf_char c,FILE *f) = std_ungetc; + +/* Global states */ +static int output_mode = ASCII; /* output kanji mode */ +static int input_mode = ASCII; /* input kanji mode */ +static int mime_decode_mode = FALSE; /* MIME mode B base64, Q hex */ + +/* X0201 / X0208 conversion tables */ + +/* X0201 kana conversion table */ +/* 90-9F A0-DF */ +static const unsigned char cv[]= { + 0x21,0x21,0x21,0x23,0x21,0x56,0x21,0x57, + 0x21,0x22,0x21,0x26,0x25,0x72,0x25,0x21, + 0x25,0x23,0x25,0x25,0x25,0x27,0x25,0x29, + 0x25,0x63,0x25,0x65,0x25,0x67,0x25,0x43, + 0x21,0x3c,0x25,0x22,0x25,0x24,0x25,0x26, + 0x25,0x28,0x25,0x2a,0x25,0x2b,0x25,0x2d, + 0x25,0x2f,0x25,0x31,0x25,0x33,0x25,0x35, + 0x25,0x37,0x25,0x39,0x25,0x3b,0x25,0x3d, + 0x25,0x3f,0x25,0x41,0x25,0x44,0x25,0x46, + 0x25,0x48,0x25,0x4a,0x25,0x4b,0x25,0x4c, + 0x25,0x4d,0x25,0x4e,0x25,0x4f,0x25,0x52, + 0x25,0x55,0x25,0x58,0x25,0x5b,0x25,0x5e, + 0x25,0x5f,0x25,0x60,0x25,0x61,0x25,0x62, + 0x25,0x64,0x25,0x66,0x25,0x68,0x25,0x69, + 0x25,0x6a,0x25,0x6b,0x25,0x6c,0x25,0x6d, + 0x25,0x6f,0x25,0x73,0x21,0x2b,0x21,0x2c, + 0x00,0x00}; + + +/* X0201 kana conversion table for daguten */ +/* 90-9F A0-DF */ +static const unsigned char dv[]= { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x74, + 0x00,0x00,0x00,0x00,0x25,0x2c,0x25,0x2e, + 0x25,0x30,0x25,0x32,0x25,0x34,0x25,0x36, + 0x25,0x38,0x25,0x3a,0x25,0x3c,0x25,0x3e, + 0x25,0x40,0x25,0x42,0x25,0x45,0x25,0x47, + 0x25,0x49,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x25,0x50,0x25,0x53, + 0x25,0x56,0x25,0x59,0x25,0x5c,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; + +/* X0201 kana conversion table for han-daguten */ +/* 90-9F A0-DF */ +static const unsigned char ev[]= { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x25,0x51,0x25,0x54, + 0x25,0x57,0x25,0x5a,0x25,0x5d,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; + +/* X0201 kana to X0213 conversion table for han-daguten */ +/* 90-9F A0-DF */ +static const unsigned char ev_x0213[]= { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x25,0x77,0x25,0x78, + 0x25,0x79,0x25,0x7a,0x25,0x7b,0x00,0x00, + 0x00,0x00,0x00,0x00,0x25,0x7c,0x00,0x00, + 0x00,0x00,0x00,0x00,0x25,0x7d,0x00,0x00, + 0x25,0x7e,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; + + +/* X0208 kigou conversion table */ +/* 0x8140 - 0x819e */ +static const unsigned char fv[] = { + + 0x00,0x00,0x00,0x00,0x2c,0x2e,0x00,0x3a, + 0x3b,0x3f,0x21,0x00,0x00,0x27,0x60,0x00, + 0x5e,0x00,0x5f,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x2d,0x00,0x2f, + 0x5c,0x00,0x00,0x7c,0x00,0x00,0x60,0x27, + 0x22,0x22,0x28,0x29,0x00,0x00,0x5b,0x5d, + 0x7b,0x7d,0x3c,0x3e,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x2b,0x2d,0x00,0x00, + 0x00,0x3d,0x00,0x3c,0x3e,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x24,0x00,0x00,0x25,0x23,0x26,0x2a,0x40, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +} ; + + + +static int option_mode = 0; +static int file_out_f = FALSE; +#ifdef OVERWRITE +static int overwrite_f = FALSE; +static int preserve_time_f = FALSE; +static int backup_f = FALSE; +static char *backup_suffix = ""; +#endif + +static int eolmode_f = 0; /* CR, LF, CRLF */ +static int input_eol = 0; /* 0: unestablished, EOF: MIXED */ +static nkf_char prev_cr = 0; /* CR or 0 */ +#ifdef EASYWIN /*Easy Win */ +static int end_check; +#endif /*Easy Win */ + +static void * +nkf_xmalloc(size_t size) +{ + void *ptr; + + if (size == 0) size = 1; + + ptr = malloc(size); + if (ptr == NULL) { + perror("can't malloc"); + exit(EXIT_FAILURE); + } + + return ptr; +} + +static void * +nkf_xrealloc(void *ptr, size_t size) +{ + if (size == 0) size = 1; + + ptr = realloc(ptr, size); + if (ptr == NULL) { + perror("can't realloc"); + exit(EXIT_FAILURE); + } + + return ptr; +} + +#define nkf_xfree(ptr) free(ptr) + +static int +nkf_str_caseeql(const char *src, const char *target) +{ + int i; + for (i = 0; src[i] && target[i]; i++) { + if (nkf_toupper(src[i]) != nkf_toupper(target[i])) return FALSE; + } + if (src[i] || target[i]) return FALSE; + else return TRUE; +} + +static nkf_encoding* +nkf_enc_from_index(int idx) +{ + if (idx < 0 || NKF_ENCODING_TABLE_SIZE <= idx) { + return 0; + } + return &nkf_encoding_table[idx]; +} + +static int +nkf_enc_find_index(const char *name) +{ + int i; + if (name[0] == 'X' && *(name+1) == '-') name += 2; + for (i = 0; encoding_name_to_id_table[i].id >= 0; i++) { + if (nkf_str_caseeql(encoding_name_to_id_table[i].name, name)) { + return encoding_name_to_id_table[i].id; + } + } + return -1; +} + +static nkf_encoding* +nkf_enc_find(const char *name) +{ + int idx = -1; + idx = nkf_enc_find_index(name); + if (idx < 0) return 0; + return nkf_enc_from_index(idx); +} + +#define nkf_enc_name(enc) (enc)->name +#define nkf_enc_to_index(enc) (enc)->id +#define nkf_enc_to_base_encoding(enc) (enc)->base_encoding +#define nkf_enc_to_iconv(enc) nkf_enc_to_base_encoding(enc)->iconv +#define nkf_enc_to_oconv(enc) nkf_enc_to_base_encoding(enc)->oconv +#define nkf_enc_asciicompat(enc) (\ + nkf_enc_to_base_encoding(enc) == &NkfEncodingASCII ||\ + nkf_enc_to_base_encoding(enc) == &NkfEncodingISO_2022_JP) +#define nkf_enc_unicode_p(enc) (\ + nkf_enc_to_base_encoding(enc) == &NkfEncodingUTF_8 ||\ + nkf_enc_to_base_encoding(enc) == &NkfEncodingUTF_16 ||\ + nkf_enc_to_base_encoding(enc) == &NkfEncodingUTF_32) +#define nkf_enc_cp5022x_p(enc) (\ + nkf_enc_to_index(enc) == CP50220 ||\ + nkf_enc_to_index(enc) == CP50221 ||\ + nkf_enc_to_index(enc) == CP50222) + +#ifdef DEFAULT_CODE_LOCALE +static const char* +nkf_locale_charmap() +{ +#ifdef HAVE_LANGINFO_H + return nl_langinfo(CODESET); +#elif defined(__WIN32__) + static char buf[16]; + sprintf(buf, "CP%d", GetACP()); + return buf; +#elif defined(__OS2__) +# if defined(INT_IS_SHORT) + /* OS/2 1.x */ + return NULL; +# else + /* OS/2 32bit */ + static char buf[16]; + ULONG ulCP[1], ulncp; + DosQueryCp(sizeof(ulCP), ulCP, &ulncp); + if (ulCP[0] == 932 || ulCP[0] == 943) + strcpy(buf, "Shift_JIS"); + else + sprintf(buf, "CP%lu", ulCP[0]); + return buf; +# endif +#endif + return NULL; +} + +static nkf_encoding* +nkf_locale_encoding() +{ + nkf_encoding *enc = 0; + const char *encname = nkf_locale_charmap(); + if (encname) + enc = nkf_enc_find(encname); + return enc; +} +#endif /* DEFAULT_CODE_LOCALE */ + +static nkf_encoding* +nkf_utf8_encoding() +{ + return &nkf_encoding_table[UTF_8]; +} + +static nkf_encoding* +nkf_default_encoding() +{ + nkf_encoding *enc = 0; +#ifdef DEFAULT_CODE_LOCALE + enc = nkf_locale_encoding(); +#elif defined(DEFAULT_ENCIDX) + enc = nkf_enc_from_index(DEFAULT_ENCIDX); +#endif + if (!enc) enc = nkf_utf8_encoding(); + return enc; +} + +typedef struct { + long capa; + long len; + nkf_char *ptr; +} nkf_buf_t; + +static nkf_buf_t * +nkf_buf_new(int length) +{ + nkf_buf_t *buf = nkf_xmalloc(sizeof(nkf_buf_t)); + buf->ptr = nkf_xmalloc(sizeof(nkf_char) * length); + buf->capa = length; + buf->len = 0; + return buf; +} + +#if 0 +static void +nkf_buf_dispose(nkf_buf_t *buf) +{ + nkf_xfree(buf->ptr); + nkf_xfree(buf); +} +#endif + +#define nkf_buf_length(buf) ((buf)->len) +#define nkf_buf_empty_p(buf) ((buf)->len == 0) + +static nkf_char +nkf_buf_at(nkf_buf_t *buf, int index) +{ + assert(index <= buf->len); + return buf->ptr[index]; +} + +static void +nkf_buf_clear(nkf_buf_t *buf) +{ + buf->len = 0; +} + +static void +nkf_buf_push(nkf_buf_t *buf, nkf_char c) +{ + if (buf->capa <= buf->len) { + exit(EXIT_FAILURE); + } + buf->ptr[buf->len++] = c; +} + +static nkf_char +nkf_buf_pop(nkf_buf_t *buf) +{ + assert(!nkf_buf_empty_p(buf)); + return buf->ptr[--buf->len]; +} + +/* Normalization Form C */ +#ifndef PERL_XS +#ifdef WIN32DLL +#define fprintf dllprintf +#endif + +static void +version(void) +{ + fprintf(HELP_OUTPUT,"Network Kanji Filter Version " NKF_VERSION " (" NKF_RELEASE_DATE ") \n" COPY_RIGHT "\n"); +} + +static void +usage(void) +{ + fprintf(HELP_OUTPUT, + "Usage: nkf -[flags] [--] [in file] .. [out file for -O flag]\n" +#ifdef UTF8_OUTPUT_ENABLE + " j/s/e/w Specify output encoding ISO-2022-JP, Shift_JIS, EUC-JP\n" + " UTF options is -w[8[0],{16,32}[{B,L}[0]]]\n" +#else +#endif +#ifdef UTF8_INPUT_ENABLE + " J/S/E/W Specify input encoding ISO-2022-JP, Shift_JIS, EUC-JP\n" + " UTF option is -W[8,[16,32][B,L]]\n" +#else + " J/S/E Specify output encoding ISO-2022-JP, Shift_JIS, EUC-JP\n" +#endif + ); + fprintf(HELP_OUTPUT, + " m[BQSN0] MIME decode [B:base64,Q:quoted,S:strict,N:nonstrict,0:no decode]\n" + " M[BQ] MIME encode [B:base64 Q:quoted]\n" + " f/F Folding: -f60 or -f or -f60-10 (fold margin 10) F preserve nl\n" + ); + fprintf(HELP_OUTPUT, + " Z[0-4] Default/0: Convert JISX0208 Alphabet to ASCII\n" + " 1: Kankaku to one space 2: to two spaces 3: HTML Entity\n" + " 4: JISX0208 Katakana to JISX0201 Katakana\n" + " X,x Convert Halfwidth Katakana to Fullwidth or preserve it\n" + ); + fprintf(HELP_OUTPUT, + " O Output to File (DEFAULT 'nkf.out')\n" + " L[uwm] Line mode u:LF w:CRLF m:CR (DEFAULT noconversion)\n" + ); + fprintf(HELP_OUTPUT, + " --ic= Specify the input encoding\n" + " --oc= Specify the output encoding\n" + " --hiragana --katakana Hiragana/Katakana Conversion\n" + " --katakana-hiragana Converts each other\n" + ); + fprintf(HELP_OUTPUT, +#ifdef INPUT_OPTION + " --{cap, url}-input Convert hex after ':' or '%%'\n" +#endif +#ifdef NUMCHAR_OPTION + " --numchar-input Convert Unicode Character Reference\n" +#endif +#ifdef UTF8_INPUT_ENABLE + " --fb-{skip, html, xml, perl, java, subchar}\n" + " Specify unassigned character's replacement\n" +#endif + ); + fprintf(HELP_OUTPUT, +#ifdef OVERWRITE + " --in-place[=SUF] Overwrite original files\n" + " --overwrite[=SUF] Preserve timestamp of original files\n" +#endif + " -g --guess Guess the input code\n" + " -v --version Print the version\n" + " --help/-V Print this help / configuration\n" + ); + version(); +} + +static void +show_configuration(void) +{ + fprintf(HELP_OUTPUT, + "Summary of my nkf " NKF_VERSION " (" NKF_RELEASE_DATE ") configuration:\n" + " Compile-time options:\n" + " Compiled at: " __DATE__ " " __TIME__ "\n" + ); + fprintf(HELP_OUTPUT, + " Default output encoding: " +#ifdef DEFAULT_CODE_LOCALE + "LOCALE (%s)\n", nkf_enc_name(nkf_default_encoding()) +#elif defined(DEFAULT_ENCIDX) + "CONFIG (%s)\n", nkf_enc_name(nkf_default_encoding()) +#else + "NONE\n" +#endif + ); + fprintf(HELP_OUTPUT, + " Default output end of line: " +#if DEFAULT_NEWLINE == CR + "CR" +#elif DEFAULT_NEWLINE == CRLF + "CRLF" +#else + "LF" +#endif + "\n" + " Decode MIME encoded string: " +#if MIME_DECODE_DEFAULT + "ON" +#else + "OFF" +#endif + "\n" + " Convert JIS X 0201 Katakana: " +#if X0201_DEFAULT + "ON" +#else + "OFF" +#endif + "\n" + " --help, --version output: " +#if HELP_OUTPUT_HELP_OUTPUT + "HELP_OUTPUT" +#else + "STDOUT" +#endif + "\n"); +} +#endif /*PERL_XS*/ + +#ifdef OVERWRITE +static char* +get_backup_filename(const char *suffix, const char *filename) +{ + char *backup_filename; + int asterisk_count = 0; + int i, j; + int filename_length = strlen(filename); + + for(i = 0; suffix[i]; i++){ + if(suffix[i] == '*') asterisk_count++; + } + + if(asterisk_count){ + backup_filename = nkf_xmalloc(strlen(suffix) + (asterisk_count * (filename_length - 1)) + 1); + for(i = 0, j = 0; suffix[i];){ + if(suffix[i] == '*'){ + backup_filename[j] = '\0'; + strncat(backup_filename, filename, filename_length); + i++; + j += filename_length; + }else{ + backup_filename[j++] = suffix[i++]; + } + } + backup_filename[j] = '\0'; + }else{ + j = filename_length + strlen(suffix); + backup_filename = nkf_xmalloc(j + 1); + strcpy(backup_filename, filename); + strcat(backup_filename, suffix); + backup_filename[j] = '\0'; + } + return backup_filename; +} +#endif + +#ifdef UTF8_INPUT_ENABLE +static void +nkf_each_char_to_hex(void (*f)(nkf_char c2,nkf_char c1), nkf_char c) +{ + int shift = 20; + c &= VALUE_MASK; + while(shift >= 0){ + if(c >= NKF_INT32_C(1)<= 0){ + (*f)(0, bin2hex(c>>shift)); + shift -= 4; + } + }else{ + shift -= 4; + } + } + return; +} + +static void +encode_fallback_html(nkf_char c) +{ + (*oconv)(0, '&'); + (*oconv)(0, '#'); + c &= VALUE_MASK; + if(c >= NKF_INT32_C(1000000)) + (*oconv)(0, 0x30+(c/NKF_INT32_C(1000000))%10); + if(c >= NKF_INT32_C(100000)) + (*oconv)(0, 0x30+(c/NKF_INT32_C(100000) )%10); + if(c >= 10000) + (*oconv)(0, 0x30+(c/10000 )%10); + if(c >= 1000) + (*oconv)(0, 0x30+(c/1000 )%10); + if(c >= 100) + (*oconv)(0, 0x30+(c/100 )%10); + if(c >= 10) + (*oconv)(0, 0x30+(c/10 )%10); + if(c >= 0) + (*oconv)(0, 0x30+ c %10); + (*oconv)(0, ';'); + return; +} + +static void +encode_fallback_xml(nkf_char c) +{ + (*oconv)(0, '&'); + (*oconv)(0, '#'); + (*oconv)(0, 'x'); + nkf_each_char_to_hex(oconv, c); + (*oconv)(0, ';'); + return; +} + +static void +encode_fallback_java(nkf_char c) +{ + (*oconv)(0, '\\'); + c &= VALUE_MASK; + if(!nkf_char_unicode_bmp_p(c)){ + (*oconv)(0, 'U'); + (*oconv)(0, '0'); + (*oconv)(0, '0'); + (*oconv)(0, bin2hex(c>>20)); + (*oconv)(0, bin2hex(c>>16)); + }else{ + (*oconv)(0, 'u'); + } + (*oconv)(0, bin2hex(c>>12)); + (*oconv)(0, bin2hex(c>> 8)); + (*oconv)(0, bin2hex(c>> 4)); + (*oconv)(0, bin2hex(c )); + return; +} + +static void +encode_fallback_perl(nkf_char c) +{ + (*oconv)(0, '\\'); + (*oconv)(0, 'x'); + (*oconv)(0, '{'); + nkf_each_char_to_hex(oconv, c); + (*oconv)(0, '}'); + return; +} + +static void +encode_fallback_subchar(nkf_char c) +{ + c = unicode_subchar; + (*oconv)((c>>8)&0xFF, c&0xFF); + return; +} +#endif + +static const struct { + const char *name; + const char *alias; +} long_option[] = { + {"ic=", ""}, + {"oc=", ""}, + {"base64","jMB"}, + {"euc","e"}, + {"euc-input","E"}, + {"fj","jm"}, + {"help",""}, + {"jis","j"}, + {"jis-input","J"}, + {"mac","sLm"}, + {"mime","jM"}, + {"mime-input","m"}, + {"msdos","sLw"}, + {"sjis","s"}, + {"sjis-input","S"}, + {"unix","eLu"}, + {"version","v"}, + {"windows","sLw"}, + {"hiragana","h1"}, + {"katakana","h2"}, + {"katakana-hiragana","h3"}, + {"guess=", ""}, + {"guess", "g2"}, + {"cp932", ""}, + {"no-cp932", ""}, +#ifdef X0212_ENABLE + {"x0212", ""}, +#endif +#ifdef UTF8_OUTPUT_ENABLE + {"utf8", "w"}, + {"utf16", "w16"}, + {"ms-ucs-map", ""}, + {"fb-skip", ""}, + {"fb-html", ""}, + {"fb-xml", ""}, + {"fb-perl", ""}, + {"fb-java", ""}, + {"fb-subchar", ""}, + {"fb-subchar=", ""}, +#endif +#ifdef UTF8_INPUT_ENABLE + {"utf8-input", "W"}, + {"utf16-input", "W16"}, + {"no-cp932ext", ""}, + {"no-best-fit-chars",""}, +#endif +#ifdef UNICODE_NORMALIZATION + {"utf8mac-input", ""}, +#endif +#ifdef OVERWRITE + {"overwrite", ""}, + {"overwrite=", ""}, + {"in-place", ""}, + {"in-place=", ""}, +#endif +#ifdef INPUT_OPTION + {"cap-input", ""}, + {"url-input", ""}, +#endif +#ifdef NUMCHAR_OPTION + {"numchar-input", ""}, +#endif +#ifdef CHECK_OPTION + {"no-output", ""}, + {"debug", ""}, +#endif +#ifdef SHIFTJIS_CP932 + {"cp932inv", ""}, +#endif +#ifdef EXEC_IO + {"exec-in", ""}, + {"exec-out", ""}, +#endif + {"prefix=", ""}, +}; + +static void +set_input_encoding(nkf_encoding *enc) +{ + switch (nkf_enc_to_index(enc)) { + case ISO_8859_1: + iso8859_f = TRUE; + break; + case CP50221: + case CP50222: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ + case CP50220: +#ifdef SHIFTJIS_CP932 + cp51932_f = TRUE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + case ISO_2022_JP_1: + x0212_f = TRUE; + break; + case ISO_2022_JP_3: + x0212_f = TRUE; + x0213_f = TRUE; + break; + case ISO_2022_JP_2004: + x0212_f = TRUE; + x0213_f = TRUE; + break; + case SHIFT_JIS: + break; + case WINDOWS_31J: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef SHIFTJIS_CP932 + cp51932_f = TRUE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + break; + case CP10001: +#ifdef SHIFTJIS_CP932 + cp51932_f = TRUE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP10001; +#endif + break; + case EUC_JP: + break; + case EUCJP_NKF: + break; + case CP51932: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef SHIFTJIS_CP932 + cp51932_f = TRUE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + case EUCJP_MS: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef SHIFTJIS_CP932 + cp51932_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_MS; +#endif + break; + case EUCJP_ASCII: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef SHIFTJIS_CP932 + cp51932_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_ASCII; +#endif + break; + case SHIFT_JISX0213: + case SHIFT_JIS_2004: + x0213_f = TRUE; +#ifdef SHIFTJIS_CP932 + cp51932_f = FALSE; + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif + break; + case EUC_JISX0213: + case EUC_JIS_2004: + x0213_f = TRUE; +#ifdef SHIFTJIS_CP932 + cp51932_f = FALSE; +#endif + break; +#ifdef UTF8_INPUT_ENABLE +#ifdef UNICODE_NORMALIZATION + case UTF8_MAC: + nfc_f = TRUE; + break; +#endif + case UTF_16: + case UTF_16BE: + case UTF_16BE_BOM: + input_endian = ENDIAN_BIG; + break; + case UTF_16LE: + case UTF_16LE_BOM: + input_endian = ENDIAN_LITTLE; + break; + case UTF_32: + case UTF_32BE: + case UTF_32BE_BOM: + input_endian = ENDIAN_BIG; + break; + case UTF_32LE: + case UTF_32LE_BOM: + input_endian = ENDIAN_LITTLE; + break; +#endif + } +} + +static void +set_output_encoding(nkf_encoding *enc) +{ + switch (nkf_enc_to_index(enc)) { + case CP50220: +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + case CP50221: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + case ISO_2022_JP: +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif + break; + case ISO_2022_JP_1: + x0212_f = TRUE; +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif + break; + case ISO_2022_JP_3: + case ISO_2022_JP_2004: + x0212_f = TRUE; + x0213_f = TRUE; +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif + break; + case SHIFT_JIS: + break; + case WINDOWS_31J: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + case CP10001: +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP10001; +#endif + break; + case EUC_JP: + x0212_f = TRUE; +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_ASCII; +#endif + break; + case EUCJP_NKF: + x0212_f = FALSE; +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_ASCII; +#endif + break; + case CP51932: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + break; + case EUCJP_MS: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ + x0212_f = TRUE; +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_MS; +#endif + break; + case EUCJP_ASCII: + if (x0201_f == NKF_UNSPECIFIED) x0201_f = FALSE; /* -x specified implicitly */ + x0212_f = TRUE; +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_ASCII; +#endif + break; + case SHIFT_JISX0213: + case SHIFT_JIS_2004: + x0213_f = TRUE; +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif + break; + case EUC_JISX0213: + case EUC_JIS_2004: + x0212_f = TRUE; + x0213_f = TRUE; +#ifdef SHIFTJIS_CP932 + if (cp932inv_f == TRUE) cp932inv_f = FALSE; +#endif + break; +#ifdef UTF8_OUTPUT_ENABLE + case UTF_8_BOM: + output_bom_f = TRUE; + break; + case UTF_16: + case UTF_16BE_BOM: + output_bom_f = TRUE; + break; + case UTF_16LE: + output_endian = ENDIAN_LITTLE; + output_bom_f = FALSE; + break; + case UTF_16LE_BOM: + output_endian = ENDIAN_LITTLE; + output_bom_f = TRUE; + break; + case UTF_32: + case UTF_32BE_BOM: + output_bom_f = TRUE; + break; + case UTF_32LE: + output_endian = ENDIAN_LITTLE; + output_bom_f = FALSE; + break; + case UTF_32LE_BOM: + output_endian = ENDIAN_LITTLE; + output_bom_f = TRUE; + break; +#endif + } +} + +static struct input_code* +find_inputcode_byfunc(nkf_char (*iconv_func)(nkf_char c2,nkf_char c1,nkf_char c0)) +{ + if (iconv_func){ + struct input_code *p = input_code_list; + while (p->name){ + if (iconv_func == p->iconv_func){ + return p; + } + p++; + } + } + return 0; +} + +static void +set_iconv(nkf_char f, nkf_char (*iconv_func)(nkf_char c2,nkf_char c1,nkf_char c0)) +{ +#ifdef INPUT_CODE_FIX + if (f || !input_encoding) +#endif + if (estab_f != f){ + estab_f = f; + } + + if (iconv_func +#ifdef INPUT_CODE_FIX + && (f == -TRUE || !input_encoding) /* -TRUE means "FORCE" */ +#endif + ){ + iconv = iconv_func; + } +#ifdef CHECK_OPTION + if (estab_f && iconv_for_check != iconv){ + struct input_code *p = find_inputcode_byfunc(iconv); + if (p){ + set_input_codename(p->name); + debug(p->name); + } + iconv_for_check = iconv; + } +#endif +} + +#ifdef X0212_ENABLE +static nkf_char +x0212_shift(nkf_char c) +{ + nkf_char ret = c; + c &= 0x7f; + if (is_eucg3(ret)){ + if (0x75 <= c && c <= 0x7f){ + ret = c + (0x109 - 0x75); + } + }else{ + if (0x75 <= c && c <= 0x7f){ + ret = c + (0x113 - 0x75); + } + } + return ret; +} + + +static nkf_char +x0212_unshift(nkf_char c) +{ + nkf_char ret = c; + if (0x7f <= c && c <= 0x88){ + ret = c + (0x75 - 0x7f); + }else if (0x89 <= c && c <= 0x92){ + ret = PREFIX_EUCG3 | 0x80 | (c + (0x75 - 0x89)); + } + return ret; +} +#endif /* X0212_ENABLE */ + +static int +is_x0213_2_in_x0212(nkf_char c1) +{ + static const char x0213_2_table[] = + {0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1}; + int ku = c1 - 0x20; + if (ku <= 15) + return x0213_2_table[ku]; /* 1, 3-5, 8, 12-15 */ + if (78 <= ku && ku <= 94) + return 1; + return 0; +} + +static nkf_char +e2s_conv(nkf_char c2, nkf_char c1, nkf_char *p2, nkf_char *p1) +{ + nkf_char ndx; + if (is_eucg3(c2)){ + ndx = c2 & 0x7f; + if (x0213_f && is_x0213_2_in_x0212(ndx)){ + if((0x21 <= ndx && ndx <= 0x2F)){ + if (p2) *p2 = ((ndx - 1) >> 1) + 0xec - ndx / 8 * 3; + if (p1) *p1 = c1 + ((ndx & 1) ? ((c1 < 0x60) ? 0x1f : 0x20) : 0x7e); + return 0; + }else if(0x6E <= ndx && ndx <= 0x7E){ + if (p2) *p2 = ((ndx - 1) >> 1) + 0xbe; + if (p1) *p1 = c1 + ((ndx & 1) ? ((c1 < 0x60) ? 0x1f : 0x20) : 0x7e); + return 0; + } + return 1; + } +#ifdef X0212_ENABLE + else if(nkf_isgraph(ndx)){ + nkf_char val = 0; + const unsigned short *ptr; + ptr = x0212_shiftjis[ndx - 0x21]; + if (ptr){ + val = ptr[(c1 & 0x7f) - 0x21]; + } + if (val){ + c2 = val >> 8; + c1 = val & 0xff; + if (p2) *p2 = c2; + if (p1) *p1 = c1; + return 0; + } + c2 = x0212_shift(c2); + } +#endif /* X0212_ENABLE */ + } + if(0x7F < c2) return 1; + if (p2) *p2 = ((c2 - 1) >> 1) + ((c2 <= 0x5e) ? 0x71 : 0xb1); + if (p1) *p1 = c1 + ((c2 & 1) ? ((c1 < 0x60) ? 0x1f : 0x20) : 0x7e); + return 0; +} + +static nkf_char +s2e_conv(nkf_char c2, nkf_char c1, nkf_char *p2, nkf_char *p1) +{ +#if defined(SHIFTJIS_CP932) || defined(X0212_ENABLE) + nkf_char val; +#endif + static const char shift_jisx0213_s1a3_table[5][2] ={ { 1, 8}, { 3, 4}, { 5,12}, {13,14}, {15, 0} }; + if (0xFC < c1) return 1; +#ifdef SHIFTJIS_CP932 + if (!cp932inv_f && !x0213_f && is_ibmext_in_sjis(c2)){ + val = shiftjis_cp932[c2 - CP932_TABLE_BEGIN][c1 - 0x40]; + if (val){ + c2 = val >> 8; + c1 = val & 0xff; + } + } + if (cp932inv_f + && CP932INV_TABLE_BEGIN <= c2 && c2 <= CP932INV_TABLE_END){ + val = cp932inv[c2 - CP932INV_TABLE_BEGIN][c1 - 0x40]; + if (val){ + c2 = val >> 8; + c1 = val & 0xff; + } + } +#endif /* SHIFTJIS_CP932 */ +#ifdef X0212_ENABLE + if (!x0213_f && is_ibmext_in_sjis(c2)){ + val = shiftjis_x0212[c2 - 0xfa][c1 - 0x40]; + if (val){ + if (val > 0x7FFF){ + c2 = PREFIX_EUCG3 | ((val >> 8) & 0x7f); + c1 = val & 0xff; + }else{ + c2 = val >> 8; + c1 = val & 0xff; + } + if (p2) *p2 = c2; + if (p1) *p1 = c1; + return 0; + } + } +#endif + if(c2 >= 0x80){ + if(x0213_f && c2 >= 0xF0){ + if(c2 <= 0xF3 || (c2 == 0xF4 && c1 < 0x9F)){ /* k=1, 3<=k<=5, k=8, 12<=k<=15 */ + c2 = PREFIX_EUCG3 | 0x20 | shift_jisx0213_s1a3_table[c2 - 0xF0][0x9E < c1]; + }else{ /* 78<=k<=94 */ + c2 = PREFIX_EUCG3 | (c2 * 2 - 0x17B); + if (0x9E < c1) c2++; + } + }else{ +#define SJ0162 0x00e1 /* 01 - 62 ku offset */ +#define SJ6394 0x0161 /* 63 - 94 ku offset */ + c2 = c2 + c2 - ((c2 <= 0x9F) ? SJ0162 : SJ6394); + if (0x9E < c1) c2++; + } + if (c1 < 0x9F) + c1 = c1 - ((c1 > DEL) ? SP : 0x1F); + else { + c1 = c1 - 0x7E; + } + } + +#ifdef X0212_ENABLE + c2 = x0212_unshift(c2); +#endif + if (p2) *p2 = c2; + if (p1) *p1 = c1; + return 0; +} + +#if defined(UTF8_INPUT_ENABLE) || defined(UTF8_OUTPUT_ENABLE) +static void +nkf_unicode_to_utf8(nkf_char val, nkf_char *p1, nkf_char *p2, nkf_char *p3, nkf_char *p4) +{ + val &= VALUE_MASK; + if (val < 0x80){ + *p1 = val; + *p2 = 0; + *p3 = 0; + *p4 = 0; + }else if (val < 0x800){ + *p1 = 0xc0 | (val >> 6); + *p2 = 0x80 | (val & 0x3f); + *p3 = 0; + *p4 = 0; + } else if (nkf_char_unicode_bmp_p(val)) { + *p1 = 0xe0 | (val >> 12); + *p2 = 0x80 | ((val >> 6) & 0x3f); + *p3 = 0x80 | ( val & 0x3f); + *p4 = 0; + } else if (nkf_char_unicode_value_p(val)) { + *p1 = 0xf0 | (val >> 18); + *p2 = 0x80 | ((val >> 12) & 0x3f); + *p3 = 0x80 | ((val >> 6) & 0x3f); + *p4 = 0x80 | ( val & 0x3f); + } else { + *p1 = 0; + *p2 = 0; + *p3 = 0; + *p4 = 0; + } +} + +static nkf_char +nkf_utf8_to_unicode(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) +{ + nkf_char wc; + if (c1 <= 0x7F) { + /* single byte */ + wc = c1; + } + else if (c1 <= 0xC1) { + /* trail byte or invalid */ + return -1; + } + else if (c1 <= 0xDF) { + /* 2 bytes */ + wc = (c1 & 0x1F) << 6; + wc |= (c2 & 0x3F); + } + else if (c1 <= 0xEF) { + /* 3 bytes */ + wc = (c1 & 0x0F) << 12; + wc |= (c2 & 0x3F) << 6; + wc |= (c3 & 0x3F); + } + else if (c2 <= 0xF4) { + /* 4 bytes */ + wc = (c1 & 0x0F) << 18; + wc |= (c2 & 0x3F) << 12; + wc |= (c3 & 0x3F) << 6; + wc |= (c4 & 0x3F); + } + else { + return -1; + } + return wc; +} +#endif + +#ifdef UTF8_INPUT_ENABLE +static int +unicode_to_jis_common2(nkf_char c1, nkf_char c0, + const unsigned short *const *pp, nkf_char psize, + nkf_char *p2, nkf_char *p1) +{ + nkf_char c2; + const unsigned short *p; + unsigned short val; + + if (pp == 0) return 1; + + c1 -= 0x80; + if (c1 < 0 || psize <= c1) return 1; + p = pp[c1]; + if (p == 0) return 1; + + c0 -= 0x80; + if (c0 < 0 || sizeof_utf8_to_euc_C2 <= c0) return 1; + val = p[c0]; + if (val == 0) return 1; + if (no_cp932ext_f && ( + (val>>8) == 0x2D || /* NEC special characters */ + val > NKF_INT32_C(0xF300) /* IBM extended characters */ + )) return 1; + + c2 = val >> 8; + if (val > 0x7FFF){ + c2 &= 0x7f; + c2 |= PREFIX_EUCG3; + } + if (c2 == SO) c2 = JIS_X_0201_1976_K; + c1 = val & 0xFF; + if (p2) *p2 = c2; + if (p1) *p1 = c1; + return 0; +} + +static int +unicode_to_jis_common(nkf_char c2, nkf_char c1, nkf_char c0, nkf_char *p2, nkf_char *p1) +{ + const unsigned short *const *pp; + const unsigned short *const *const *ppp; + static const char no_best_fit_chars_table_C2[] = + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 2, + 0, 0, 1, 1, 0, 1, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1}; + static const char no_best_fit_chars_table_C2_ms[] = + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0}; + static const char no_best_fit_chars_table_932_C2[] = + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}; + static const char no_best_fit_chars_table_932_C3[] = + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1}; + nkf_char ret = 0; + + if(c2 < 0x80){ + *p2 = 0; + *p1 = c2; + }else if(c2 < 0xe0){ + if(no_best_fit_chars_f){ + if(ms_ucs_map_f == UCS_MAP_CP932){ + switch(c2){ + case 0xC2: + if(no_best_fit_chars_table_932_C2[c1&0x3F]) return 1; + break; + case 0xC3: + if(no_best_fit_chars_table_932_C3[c1&0x3F]) return 1; + break; + } + }else if(!cp932inv_f){ + switch(c2){ + case 0xC2: + if(no_best_fit_chars_table_C2[c1&0x3F]) return 1; + break; + case 0xC3: + if(no_best_fit_chars_table_932_C3[c1&0x3F]) return 1; + break; + } + }else if(ms_ucs_map_f == UCS_MAP_MS){ + if(c2 == 0xC2 && no_best_fit_chars_table_C2_ms[c1&0x3F]) return 1; + }else if(ms_ucs_map_f == UCS_MAP_CP10001){ + switch(c2){ + case 0xC2: + switch(c1){ + case 0xA2: + case 0xA3: + case 0xA5: + case 0xA6: + case 0xAC: + case 0xAF: + case 0xB8: + return 1; + } + break; + } + } + } + pp = + ms_ucs_map_f == UCS_MAP_CP932 ? utf8_to_euc_2bytes_932 : + ms_ucs_map_f == UCS_MAP_MS ? utf8_to_euc_2bytes_ms : + ms_ucs_map_f == UCS_MAP_CP10001 ? utf8_to_euc_2bytes_mac : + x0213_f ? utf8_to_euc_2bytes_x0213 : + utf8_to_euc_2bytes; + ret = unicode_to_jis_common2(c2, c1, pp, sizeof_utf8_to_euc_2bytes, p2, p1); + }else if(c0 < 0xF0){ + if(no_best_fit_chars_f){ + if(ms_ucs_map_f == UCS_MAP_CP932){ + if(c2 == 0xE3 && c1 == 0x82 && c0 == 0x94) return 1; + }else if(ms_ucs_map_f == UCS_MAP_MS){ + switch(c2){ + case 0xE2: + switch(c1){ + case 0x80: + if(c0 == 0x94 || c0 == 0x96 || c0 == 0xBE) return 1; + break; + case 0x88: + if(c0 == 0x92) return 1; + break; + } + break; + case 0xE3: + if(c1 == 0x80 || c0 == 0x9C) return 1; + break; + } + }else if(ms_ucs_map_f == UCS_MAP_CP10001){ + switch(c2){ + case 0xE3: + switch(c1){ + case 0x82: + if(c0 == 0x94) return 1; + break; + case 0x83: + if(c0 == 0xBB) return 1; + break; + } + break; + } + }else{ + switch(c2){ + case 0xE2: + switch(c1){ + case 0x80: + if(c0 == 0x95) return 1; + break; + case 0x88: + if(c0 == 0xA5) return 1; + break; + } + break; + case 0xEF: + switch(c1){ + case 0xBC: + if(c0 == 0x8D) return 1; + break; + case 0xBD: + if(c0 == 0x9E && !cp932inv_f) return 1; + break; + case 0xBF: + if(0xA0 <= c0 && c0 <= 0xA5) return 1; + break; + } + break; + } + } + } + ppp = + ms_ucs_map_f == UCS_MAP_CP932 ? utf8_to_euc_3bytes_932 : + ms_ucs_map_f == UCS_MAP_MS ? utf8_to_euc_3bytes_ms : + ms_ucs_map_f == UCS_MAP_CP10001 ? utf8_to_euc_3bytes_mac : + x0213_f ? utf8_to_euc_3bytes_x0213 : + utf8_to_euc_3bytes; + ret = unicode_to_jis_common2(c1, c0, ppp[c2 - 0xE0], sizeof_utf8_to_euc_C2, p2, p1); + }else return -1; +#ifdef SHIFTJIS_CP932 + if (!ret && !cp932inv_f && is_eucg3(*p2)) { + nkf_char s2, s1; + if (e2s_conv(*p2, *p1, &s2, &s1) == 0) { + s2e_conv(s2, s1, p2, p1); + }else{ + ret = 1; + } + } +#endif + return ret; +} + +#ifdef UTF8_OUTPUT_ENABLE +#define X0213_SURROGATE_FIND(tbl, size, euc) do { \ + int i; \ + for (i = 0; i < size; i++) \ + if (tbl[i][0] == euc) { \ + low = tbl[i][2]; \ + break; \ + } \ + } while (0) + +static nkf_char +e2w_conv(nkf_char c2, nkf_char c1) +{ + const unsigned short *p; + + if (c2 == JIS_X_0201_1976_K) { + if (ms_ucs_map_f == UCS_MAP_CP10001) { + switch (c1) { + case 0x20: + return 0xA0; + case 0x7D: + return 0xA9; + } + } + p = euc_to_utf8_1byte; +#ifdef X0212_ENABLE + } else if (is_eucg3(c2)){ + if(ms_ucs_map_f == UCS_MAP_ASCII&& c2 == NKF_INT32_C(0x8F22) && c1 == 0x43){ + return 0xA6; + } + c2 = (c2&0x7f) - 0x21; + if (0<=c2 && c2= sizeof_x0213_combining_chars) + return 0; + euc = (c2&0x7f)<<8 | (c1&0x7f); + for (i = 0; i < sizeof_x0213_combining_table; i++) + if (x0213_combining_table[i][0] == euc) + return x0213_combining_table[i][1]; + return 0; +} +#endif + +static nkf_char +w2e_conv(nkf_char c2, nkf_char c1, nkf_char c0, nkf_char *p2, nkf_char *p1) +{ + nkf_char ret = 0; + + if (!c1){ + *p2 = 0; + *p1 = c2; + }else if (0xc0 <= c2 && c2 <= 0xef) { + ret = unicode_to_jis_common(c2, c1, c0, p2, p1); +#ifdef NUMCHAR_OPTION + if (ret > 0){ + if (p2) *p2 = 0; + if (p1) *p1 = nkf_char_unicode_new(nkf_utf8_to_unicode(c2, c1, c0, 0)); + ret = 0; + } +#endif + } + return ret; +} + +#ifdef UTF8_INPUT_ENABLE +static nkf_char +w16e_conv(nkf_char val, nkf_char *p2, nkf_char *p1) +{ + nkf_char c1, c2, c3, c4; + nkf_char ret = 0; + val &= VALUE_MASK; + if (val < 0x80) { + *p2 = 0; + *p1 = val; + } + else if (nkf_char_unicode_bmp_p(val)){ + nkf_unicode_to_utf8(val, &c1, &c2, &c3, &c4); + ret = unicode_to_jis_common(c1, c2, c3, p2, p1); + if (ret > 0){ + *p2 = 0; + *p1 = nkf_char_unicode_new(val); + ret = 0; + } + } + else { + int i; + if (x0213_f) { + c1 = (val >> 10) + NKF_INT32_C(0xD7C0); /* high surrogate */ + c2 = (val & 0x3FF) + NKF_INT32_C(0xDC00); /* low surrogate */ + for (i = 0; i < sizeof_x0213_1_surrogate_table; i++) + if (x0213_1_surrogate_table[i][1] == c1 && x0213_1_surrogate_table[i][2] == c2) { + val = x0213_1_surrogate_table[i][0]; + *p2 = val >> 8; + *p1 = val & 0xFF; + return 0; + } + for (i = 0; i < sizeof_x0213_2_surrogate_table; i++) + if (x0213_2_surrogate_table[i][1] == c1 && x0213_2_surrogate_table[i][2] == c2) { + val = x0213_2_surrogate_table[i][0]; + *p2 = PREFIX_EUCG3 | (val >> 8); + *p1 = val & 0xFF; + return 0; + } + } + *p2 = 0; + *p1 = nkf_char_unicode_new(val); + } + return ret; +} +#endif + +static nkf_char +e_iconv(nkf_char c2, nkf_char c1, nkf_char c0) +{ + if (c2 == JIS_X_0201_1976_K || c2 == SS2){ + if (iso2022jp_f && !x0201_f) { + c2 = GETA1; c1 = GETA2; + } else { + c2 = JIS_X_0201_1976_K; + c1 &= 0x7f; + } +#ifdef X0212_ENABLE + }else if (c2 == 0x8f){ + if (c0 == 0){ + return -1; + } + if (!cp51932_f && !x0213_f && 0xF5 <= c1 && c1 <= 0xFE && 0xA1 <= c0 && c0 <= 0xFE) { + /* encoding is eucJP-ms, so invert to Unicode Private User Area */ + c1 = nkf_char_unicode_new((c1 - 0xF5) * 94 + c0 - 0xA1 + 0xE3AC); + c2 = 0; + } else { + c2 = (c2 << 8) | (c1 & 0x7f); + c1 = c0 & 0x7f; +#ifdef SHIFTJIS_CP932 + if (cp51932_f){ + nkf_char s2, s1; + if (e2s_conv(c2, c1, &s2, &s1) == 0){ + s2e_conv(s2, s1, &c2, &c1); + if (c2 < 0x100){ + c1 &= 0x7f; + c2 &= 0x7f; + } + } + } +#endif /* SHIFTJIS_CP932 */ + } +#endif /* X0212_ENABLE */ + } else if ((c2 == EOF) || (c2 == 0) || c2 < SP || c2 == ISO_8859_1) { + /* NOP */ + } else { + if (!cp51932_f && ms_ucs_map_f && 0xF5 <= c2 && c2 <= 0xFE && 0xA1 <= c1 && c1 <= 0xFE) { + /* encoding is eucJP-ms, so invert to Unicode Private User Area */ + c1 = nkf_char_unicode_new((c2 - 0xF5) * 94 + c1 - 0xA1 + 0xE000); + c2 = 0; + } else { + c1 &= 0x7f; + c2 &= 0x7f; +#ifdef SHIFTJIS_CP932 + if (cp51932_f && 0x79 <= c2 && c2 <= 0x7c){ + nkf_char s2, s1; + if (e2s_conv(c2, c1, &s2, &s1) == 0){ + s2e_conv(s2, s1, &c2, &c1); + if (c2 < 0x100){ + c1 &= 0x7f; + c2 &= 0x7f; + } + } + } +#endif /* SHIFTJIS_CP932 */ + } + } + (*oconv)(c2, c1); + return 0; +} + +static nkf_char +s_iconv(ARG_UNUSED nkf_char c2, nkf_char c1, ARG_UNUSED nkf_char c0) +{ + if (c2 == JIS_X_0201_1976_K || (0xA1 <= c2 && c2 <= 0xDF)) { + if (iso2022jp_f && !x0201_f) { + c2 = GETA1; c1 = GETA2; + } else { + c1 &= 0x7f; + } + } else if ((c2 == EOF) || (c2 == 0) || c2 < SP) { + /* NOP */ + } else if (!x0213_f && 0xF0 <= c2 && c2 <= 0xF9 && 0x40 <= c1 && c1 <= 0xFC) { + /* CP932 UDC */ + if(c1 == 0x7F) return 0; + c1 = nkf_char_unicode_new((c2 - 0xF0) * 188 + (c1 - 0x40 - (0x7E < c1)) + 0xE000); + c2 = 0; + } else { + nkf_char ret = s2e_conv(c2, c1, &c2, &c1); + if (ret) return ret; + } + (*oconv)(c2, c1); + return 0; +} + +static int +x0213_wait_combining_p(nkf_char wc) +{ + int i; + for (i = 0; i < sizeof_x0213_combining_table; i++) { + if (x0213_combining_table[i][1] == wc) { + return TRUE; + } + } + return FALSE; +} + +static int +x0213_combining_p(nkf_char wc) +{ + int i; + for (i = 0; i < sizeof_x0213_combining_chars; i++) { + if (x0213_combining_chars[i] == wc) { + return TRUE; + } + } + return FALSE; +} + +static nkf_char +w_iconv(nkf_char c1, nkf_char c2, nkf_char c3) +{ + nkf_char ret = 0, c4 = 0; + static const char w_iconv_utf8_1st_byte[] = + { /* 0xC0 - 0xFF */ + 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 33, 33, + 40, 41, 41, 41, 42, 43, 43, 43, 50, 50, 50, 50, 60, 60, 70, 70}; + + if (c3 > 0xFF) { + c4 = c3 & 0xFF; + c3 >>= 8; + } + + if (c1 < 0 || 0xff < c1) { + }else if (c1 == 0) { /* 0 : 1 byte*/ + c3 = 0; + } else if ((c1 & 0xC0) == 0x80) { /* 0x80-0xbf : trail byte */ + return 0; + } else{ + switch (w_iconv_utf8_1st_byte[c1 - 0xC0]) { + case 21: + if (c2 < 0x80 || 0xBF < c2) return 0; + break; + case 30: + if (c3 == 0) return -1; + if (c2 < 0xA0 || 0xBF < c2 || (c3 & 0xC0) != 0x80) + return 0; + break; + case 31: + case 33: + if (c3 == 0) return -1; + if ((c2 & 0xC0) != 0x80 || (c3 & 0xC0) != 0x80) + return 0; + break; + case 32: + if (c3 == 0) return -1; + if (c2 < 0x80 || 0x9F < c2 || (c3 & 0xC0) != 0x80) + return 0; + break; + case 40: + if (c3 == 0) return -2; + if (c2 < 0x90 || 0xBF < c2 || (c3 & 0xC0) != 0x80 || (c4 & 0xC0) != 0x80) + return 0; + break; + case 41: + if (c3 == 0) return -2; + if (c2 < 0x80 || 0xBF < c2 || (c3 & 0xC0) != 0x80 || (c4 & 0xC0) != 0x80) + return 0; + break; + case 42: + if (c3 == 0) return -2; + if (c2 < 0x80 || 0x8F < c2 || (c3 & 0xC0) != 0x80 || (c4 & 0xC0) != 0x80) + return 0; + break; + default: + return 0; + break; + } + } + if (c1 == 0 || c1 == EOF){ + } else if ((c1 & 0xf8) == 0xf0) { /* 4 bytes */ + c2 = nkf_char_unicode_new(nkf_utf8_to_unicode(c1, c2, c3, c4)); + c1 = 0; + } else { + if (x0213_f && x0213_wait_combining_p(nkf_utf8_to_unicode(c1, c2, c3, c4))) + return -3; + ret = w2e_conv(c1, c2, c3, &c1, &c2); + } + if (ret == 0){ + (*oconv)(c1, c2); + } + return ret; +} + +static nkf_char +w_iconv_nocombine(nkf_char c1, nkf_char c2, nkf_char c3) +{ + /* continue from the line below 'return -3;' in w_iconv() */ + nkf_char ret = w2e_conv(c1, c2, c3, &c1, &c2); + if (ret == 0){ + (*oconv)(c1, c2); + } + return ret; +} + +#define NKF_ICONV_INVALID_CODE_RANGE -13 +#define NKF_ICONV_WAIT_COMBINING_CHAR -14 +#define NKF_ICONV_NOT_COMBINED -15 +static size_t +unicode_iconv(nkf_char wc, int nocombine) +{ + nkf_char c1, c2; + int ret = 0; + + if (wc < 0x80) { + c2 = 0; + c1 = wc; + }else if ((wc>>11) == 27) { + /* unpaired surrogate */ + return NKF_ICONV_INVALID_CODE_RANGE; + }else if (wc < 0xFFFF) { + if (!nocombine && x0213_f && x0213_wait_combining_p(wc)) + return NKF_ICONV_WAIT_COMBINING_CHAR; + ret = w16e_conv(wc, &c2, &c1); + if (ret) return ret; + }else if (wc < 0x10FFFF) { + c2 = 0; + c1 = nkf_char_unicode_new(wc); + } else { + return NKF_ICONV_INVALID_CODE_RANGE; + } + (*oconv)(c2, c1); + return 0; +} + +static nkf_char +unicode_iconv_combine(nkf_char wc, nkf_char wc2) +{ + nkf_char c1, c2; + int i; + + if (wc2 < 0x80) { + return NKF_ICONV_NOT_COMBINED; + }else if ((wc2>>11) == 27) { + /* unpaired surrogate */ + return NKF_ICONV_INVALID_CODE_RANGE; + }else if (wc2 < 0xFFFF) { + if (!x0213_combining_p(wc2)) + return NKF_ICONV_NOT_COMBINED; + for (i = 0; i < sizeof_x0213_combining_table; i++) { + if (x0213_combining_table[i][1] == wc && + x0213_combining_table[i][2] == wc2) { + c2 = x0213_combining_table[i][0] >> 8; + c1 = x0213_combining_table[i][0] & 0x7f; + (*oconv)(c2, c1); + return 0; + } + } + }else if (wc2 < 0x10FFFF) { + return NKF_ICONV_NOT_COMBINED; + } else { + return NKF_ICONV_INVALID_CODE_RANGE; + } + return NKF_ICONV_NOT_COMBINED; +} + +static nkf_char +w_iconv_combine(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4, nkf_char c5, nkf_char c6) +{ + nkf_char wc, wc2; + wc = nkf_utf8_to_unicode(c1, c2, c3, 0); + wc2 = nkf_utf8_to_unicode(c4, c5, c6, 0); + if (wc2 < 0) + return wc2; + return unicode_iconv_combine(wc, wc2); +} + +#define NKF_ICONV_NEED_ONE_MORE_BYTE (size_t)-1 +#define NKF_ICONV_NEED_TWO_MORE_BYTES (size_t)-2 +static size_t +nkf_iconv_utf_16(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) +{ + nkf_char wc; + + if (c1 == EOF) { + (*oconv)(EOF, 0); + return 0; + } + + if (input_endian == ENDIAN_BIG) { + if (0xD8 <= c1 && c1 <= 0xDB) { + if (0xDC <= c3 && c3 <= 0xDF) { + wc = UTF16_TO_UTF32(c1 << 8 | c2, c3 << 8 | c4); + } else return NKF_ICONV_NEED_TWO_MORE_BYTES; + } else { + wc = c1 << 8 | c2; + } + } else { + if (0xD8 <= c2 && c2 <= 0xDB) { + if (0xDC <= c4 && c4 <= 0xDF) { + wc = UTF16_TO_UTF32(c2 << 8 | c1, c4 << 8 | c3); + } else return NKF_ICONV_NEED_TWO_MORE_BYTES; + } else { + wc = c2 << 8 | c1; + } + } + + return (*unicode_iconv)(wc, FALSE); +} + +static size_t +nkf_iconv_utf_16_combine(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) +{ + nkf_char wc, wc2; + + if (input_endian == ENDIAN_BIG) { + if (0xD8 <= c3 && c3 <= 0xDB) { + return NKF_ICONV_NOT_COMBINED; + } else { + wc = c1 << 8 | c2; + wc2 = c3 << 8 | c4; + } + } else { + if (0xD8 <= c2 && c2 <= 0xDB) { + return NKF_ICONV_NOT_COMBINED; + } else { + wc = c2 << 8 | c1; + wc2 = c4 << 8 | c3; + } + } + + return unicode_iconv_combine(wc, wc2); +} + +static size_t +nkf_iconv_utf_16_nocombine(nkf_char c1, nkf_char c2) +{ + nkf_char wc; + if (input_endian == ENDIAN_BIG) + wc = c1 << 8 | c2; + else + wc = c2 << 8 | c1; + return (*unicode_iconv)(wc, TRUE); +} + +static nkf_char +w_iconv16(nkf_char c2, nkf_char c1, ARG_UNUSED nkf_char c0) +{ + (*oconv)(c2, c1); + return 16; /* different from w_iconv32 */ +} + +static nkf_char +w_iconv32(nkf_char c2, nkf_char c1, ARG_UNUSED nkf_char c0) +{ + (*oconv)(c2, c1); + return 32; /* different from w_iconv16 */ +} + +static nkf_char +utf32_to_nkf_char(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) +{ + nkf_char wc; + + switch(input_endian){ + case ENDIAN_BIG: + wc = c2 << 16 | c3 << 8 | c4; + break; + case ENDIAN_LITTLE: + wc = c3 << 16 | c2 << 8 | c1; + break; + case ENDIAN_2143: + wc = c1 << 16 | c4 << 8 | c3; + break; + case ENDIAN_3412: + wc = c4 << 16 | c1 << 8 | c2; + break; + default: + return NKF_ICONV_INVALID_CODE_RANGE; + } + return wc; +} + +static size_t +nkf_iconv_utf_32(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) +{ + nkf_char wc; + + if (c1 == EOF) { + (*oconv)(EOF, 0); + return 0; + } + + wc = utf32_to_nkf_char(c1, c2, c3, c4); + if (wc < 0) + return wc; + + return (*unicode_iconv)(wc, FALSE); +} + +static nkf_char +nkf_iconv_utf_32_combine(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4, nkf_char c5, nkf_char c6, nkf_char c7, nkf_char c8) +{ + nkf_char wc, wc2; + + wc = utf32_to_nkf_char(c1, c2, c3, c4); + if (wc < 0) + return wc; + wc2 = utf32_to_nkf_char(c5, c6, c7, c8); + if (wc2 < 0) + return wc2; + + return unicode_iconv_combine(wc, wc2); +} + +static size_t +nkf_iconv_utf_32_nocombine(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) +{ + nkf_char wc; + + wc = utf32_to_nkf_char(c1, c2, c3, c4); + return (*unicode_iconv)(wc, TRUE); +} +#endif + +#define output_ascii_escape_sequence(mode) do { \ + if (output_mode != ASCII && output_mode != ISO_8859_1) { \ + (*o_putc)(ESC); \ + (*o_putc)('('); \ + (*o_putc)(ascii_intro); \ + output_mode = mode; \ + } \ + } while (0) + +static void +output_escape_sequence(int mode) +{ + if (output_mode == mode) + return; + switch(mode) { + case ISO_8859_1: + (*o_putc)(ESC); + (*o_putc)('.'); + (*o_putc)('A'); + break; + case JIS_X_0201_1976_K: + (*o_putc)(ESC); + (*o_putc)('('); + (*o_putc)('I'); + break; + case JIS_X_0208: + (*o_putc)(ESC); + (*o_putc)('$'); + (*o_putc)(kanji_intro); + break; + case JIS_X_0212: + (*o_putc)(ESC); + (*o_putc)('$'); + (*o_putc)('('); + (*o_putc)('D'); + break; + case JIS_X_0213_1: + (*o_putc)(ESC); + (*o_putc)('$'); + (*o_putc)('('); + (*o_putc)('Q'); + break; + case JIS_X_0213_2: + (*o_putc)(ESC); + (*o_putc)('$'); + (*o_putc)('('); + (*o_putc)('P'); + break; + } + output_mode = mode; +} + +static void +j_oconv(nkf_char c2, nkf_char c1) +{ +#ifdef NUMCHAR_OPTION + if (c2 == 0 && nkf_char_unicode_p(c1)){ + w16e_conv(c1, &c2, &c1); + if (c2 == 0 && nkf_char_unicode_p(c1)){ + c2 = c1 & VALUE_MASK; + if (ms_ucs_map_f && 0xE000 <= c2 && c2 <= 0xE757) { + /* CP5022x UDC */ + c1 &= 0xFFF; + c2 = 0x7F + c1 / 94; + c1 = 0x21 + c1 % 94; + } else { + if (encode_fallback) (*encode_fallback)(c1); + return; + } + } + } +#endif + if (c2 == 0) { + output_ascii_escape_sequence(ASCII); + (*o_putc)(c1); + } + else if (c2 == EOF) { + output_ascii_escape_sequence(ASCII); + (*o_putc)(EOF); + } + else if (c2 == ISO_8859_1) { + output_ascii_escape_sequence(ISO_8859_1); + (*o_putc)(c1|0x80); + } + else if (c2 == JIS_X_0201_1976_K) { + output_escape_sequence(JIS_X_0201_1976_K); + (*o_putc)(c1); +#ifdef X0212_ENABLE + } else if (is_eucg3(c2)){ + output_escape_sequence(x0213_f ? JIS_X_0213_2 : JIS_X_0212); + (*o_putc)(c2 & 0x7f); + (*o_putc)(c1); +#endif + } else { + if(ms_ucs_map_f + ? c2<0x20 || 0x92 0x3e); + (*o_putc)(c2); + (*o_putc)(c1); + return; + } else { + if(encode_fallback)(*encode_fallback)(c1); + return; + } + } + } +#endif + if (c2 == EOF) { + (*o_putc)(EOF); + return; + } else if (c2 == 0) { + output_mode = ASCII; + (*o_putc)(c1); + } else if (c2 == JIS_X_0201_1976_K) { + output_mode = SHIFT_JIS; + (*o_putc)(c1|0x80); + } else if (c2 == ISO_8859_1) { + output_mode = ISO_8859_1; + (*o_putc)(c1 | 0x080); +#ifdef X0212_ENABLE + } else if (is_eucg3(c2)){ + output_mode = SHIFT_JIS; + if (e2s_conv(c2, c1, &c2, &c1) == 0){ + (*o_putc)(c2); + (*o_putc)(c1); + } +#endif + } else { + if (!nkf_isprint(c1) || !nkf_isprint(c2)) { + set_iconv(FALSE, 0); + return; /* too late to rescue this char */ + } + output_mode = SHIFT_JIS; + e2s_conv(c2, c1, &c2, &c1); + +#ifdef SHIFTJIS_CP932 + if (cp932inv_f + && CP932INV_TABLE_BEGIN <= c2 && c2 <= CP932INV_TABLE_END){ + nkf_char c = cp932inv[c2 - CP932INV_TABLE_BEGIN][c1 - 0x40]; + if (c){ + c2 = c >> 8; + c1 = c & 0xff; + } + } +#endif /* SHIFTJIS_CP932 */ + + (*o_putc)(c2); + if (prefix_table[(unsigned char)c1]){ + (*o_putc)(prefix_table[(unsigned char)c1]); + } + (*o_putc)(c1); + } +} + +#ifdef UTF8_OUTPUT_ENABLE +#define OUTPUT_UTF8(val) do { \ + nkf_unicode_to_utf8(val, &c1, &c2, &c3, &c4); \ + (*o_putc)(c1); \ + if (c2) (*o_putc)(c2); \ + if (c3) (*o_putc)(c3); \ + if (c4) (*o_putc)(c4); \ + } while (0) + +static void +w_oconv(nkf_char c2, nkf_char c1) +{ + nkf_char c3, c4; + nkf_char val, val2; + + if (output_bom_f) { + output_bom_f = FALSE; + (*o_putc)('\357'); + (*o_putc)('\273'); + (*o_putc)('\277'); + } + + if (c2 == EOF) { + (*o_putc)(EOF); + return; + } + + if (c2 == 0 && nkf_char_unicode_p(c1)){ + val = c1 & VALUE_MASK; + OUTPUT_UTF8(val); + return; + } + + if (c2 == 0) { + (*o_putc)(c1); + } else { + val = e2w_conv(c2, c1); + if (val){ + val2 = e2w_combining(val, c2, c1); + if (val2) + OUTPUT_UTF8(val2); + OUTPUT_UTF8(val); + } + } +} + +#define OUTPUT_UTF16_BYTES(c1, c2) do { \ + if (output_endian == ENDIAN_LITTLE){ \ + (*o_putc)(c1); \ + (*o_putc)(c2); \ + }else{ \ + (*o_putc)(c2); \ + (*o_putc)(c1); \ + } \ + } while (0) + +#define OUTPUT_UTF16(val) do { \ + if (nkf_char_unicode_bmp_p(val)) { \ + c2 = (val >> 8) & 0xff; \ + c1 = val & 0xff; \ + OUTPUT_UTF16_BYTES(c1, c2); \ + } else { \ + val &= VALUE_MASK; \ + if (val <= UNICODE_MAX) { \ + c2 = (val >> 10) + NKF_INT32_C(0xD7C0); /* high surrogate */ \ + c1 = (val & 0x3FF) + NKF_INT32_C(0xDC00); /* low surrogate */ \ + OUTPUT_UTF16_BYTES(c2 & 0xff, (c2 >> 8) & 0xff); \ + OUTPUT_UTF16_BYTES(c1 & 0xff, (c1 >> 8) & 0xff); \ + } \ + } \ + } while (0) + +static void +w_oconv16(nkf_char c2, nkf_char c1) +{ + if (output_bom_f) { + output_bom_f = FALSE; + OUTPUT_UTF16_BYTES(0xFF, 0xFE); + } + + if (c2 == EOF) { + (*o_putc)(EOF); + return; + } + + if (c2 == 0 && nkf_char_unicode_p(c1)) { + OUTPUT_UTF16(c1); + } else if (c2) { + nkf_char val, val2; + val = e2w_conv(c2, c1); + if (!val) return; + val2 = e2w_combining(val, c2, c1); + if (val2) + OUTPUT_UTF16(val2); + OUTPUT_UTF16(val); + } else { + OUTPUT_UTF16_BYTES(c1, c2); + } +} + +#define OUTPUT_UTF32(c) do { \ + if (output_endian == ENDIAN_LITTLE){ \ + (*o_putc)( (c) & 0xFF); \ + (*o_putc)(((c) >> 8) & 0xFF); \ + (*o_putc)(((c) >> 16) & 0xFF); \ + (*o_putc)(0); \ + }else{ \ + (*o_putc)(0); \ + (*o_putc)(((c) >> 16) & 0xFF); \ + (*o_putc)(((c) >> 8) & 0xFF); \ + (*o_putc)( (c) & 0xFF); \ + } \ + } while (0) + +static void +w_oconv32(nkf_char c2, nkf_char c1) +{ + if (output_bom_f) { + output_bom_f = FALSE; + if (output_endian == ENDIAN_LITTLE){ + (*o_putc)(0xFF); + (*o_putc)(0xFE); + (*o_putc)(0); + (*o_putc)(0); + }else{ + (*o_putc)(0); + (*o_putc)(0); + (*o_putc)(0xFE); + (*o_putc)(0xFF); + } + } + + if (c2 == EOF) { + (*o_putc)(EOF); + return; + } + + if (c2 == ISO_8859_1) { + c1 |= 0x80; + } else if (c2 == 0 && nkf_char_unicode_p(c1)) { + c1 &= VALUE_MASK; + } else if (c2) { + nkf_char val, val2; + val = e2w_conv(c2, c1); + if (!val) return; + val2 = e2w_combining(val, c2, c1); + if (val2) + OUTPUT_UTF32(val2); + c1 = val; + } + OUTPUT_UTF32(c1); +} +#endif + +#define SCORE_L2 (1) /* Kanji Level 2 */ +#define SCORE_KANA (SCORE_L2 << 1) /* Halfwidth Katakana */ +#define SCORE_DEPEND (SCORE_KANA << 1) /* MD Characters */ +#define SCORE_CP932 (SCORE_DEPEND << 1) /* IBM extended characters */ +#define SCORE_X0212 (SCORE_CP932 << 1) /* JIS X 0212 */ +#define SCORE_X0213 (SCORE_X0212 << 1) /* JIS X 0213 */ +#define SCORE_NO_EXIST (SCORE_X0213 << 1) /* Undefined Characters */ +#define SCORE_iMIME (SCORE_NO_EXIST << 1) /* MIME selected */ +#define SCORE_ERROR (SCORE_iMIME << 1) /* Error */ + +#define SCORE_INIT (SCORE_iMIME) + +static const nkf_char score_table_A0[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, SCORE_DEPEND, SCORE_DEPEND, SCORE_DEPEND, + SCORE_DEPEND, SCORE_DEPEND, SCORE_DEPEND, SCORE_X0213, +}; + +static const nkf_char score_table_F0[] = { + SCORE_L2, SCORE_L2, SCORE_L2, SCORE_L2, + SCORE_L2, SCORE_DEPEND, SCORE_X0213, SCORE_X0213, + SCORE_DEPEND, SCORE_DEPEND, SCORE_CP932, SCORE_CP932, + SCORE_CP932, SCORE_X0213, SCORE_X0213, SCORE_ERROR, +}; + +static const nkf_char score_table_8FA0[] = { + 0, SCORE_X0213, SCORE_X0212, SCORE_X0213, + SCORE_X0213, SCORE_X0213, SCORE_X0212, SCORE_X0212, + SCORE_X0213, SCORE_X0212, SCORE_X0212, SCORE_X0212, + SCORE_X0213, SCORE_X0213, SCORE_X0213, SCORE_X0213, +}; + +static const nkf_char score_table_8FE0[] = { + SCORE_X0212, SCORE_X0212, SCORE_X0212, SCORE_X0212, + SCORE_X0212, SCORE_X0212, SCORE_X0212, SCORE_X0212, + SCORE_X0212, SCORE_X0212, SCORE_X0212, SCORE_X0212, + SCORE_X0212, SCORE_X0212, SCORE_X0213, SCORE_X0213, +}; + +static const nkf_char score_table_8FF0[] = { + SCORE_X0213, SCORE_X0213, SCORE_X0213, SCORE_X0212, + SCORE_X0212, SCORE_X0213, SCORE_X0213, SCORE_X0213, + SCORE_X0213, SCORE_X0213, SCORE_X0213, SCORE_X0213, + SCORE_X0213, SCORE_X0213, SCORE_X0213, SCORE_X0213, +}; + +static void +set_code_score(struct input_code *ptr, nkf_char score) +{ + if (ptr){ + ptr->score |= score; + } +} + +static void +clr_code_score(struct input_code *ptr, nkf_char score) +{ + if (ptr){ + ptr->score &= ~score; + } +} + +static void +code_score(struct input_code *ptr) +{ + nkf_char c2 = ptr->buf[0]; + nkf_char c1 = ptr->buf[1]; + if (c2 < 0){ + set_code_score(ptr, SCORE_ERROR); + }else if (c2 == SS2){ + set_code_score(ptr, SCORE_KANA); + }else if (c2 == 0x8f){ + if ((c1 & 0x70) == 0x20){ + set_code_score(ptr, score_table_8FA0[c1 & 0x0f]); + }else if ((c1 & 0x70) == 0x60){ + set_code_score(ptr, score_table_8FE0[c1 & 0x0f]); + }else if ((c1 & 0x70) == 0x70){ + set_code_score(ptr, score_table_8FF0[c1 & 0x0f]); + }else{ + set_code_score(ptr, SCORE_X0212); + } +#ifdef UTF8_OUTPUT_ENABLE + }else if (!e2w_conv(c2, c1)){ + set_code_score(ptr, SCORE_NO_EXIST); +#endif + }else if ((c2 & 0x70) == 0x20){ + set_code_score(ptr, score_table_A0[c2 & 0x0f]); + }else if ((c2 & 0x70) == 0x70){ + set_code_score(ptr, score_table_F0[c2 & 0x0f]); + }else if ((c2 & 0x70) >= 0x50){ + set_code_score(ptr, SCORE_L2); + } +} + +static void +status_disable(struct input_code *ptr) +{ + ptr->stat = -1; + ptr->buf[0] = -1; + code_score(ptr); + if (iconv == ptr->iconv_func) set_iconv(FALSE, 0); +} + +static void +status_push_ch(struct input_code *ptr, nkf_char c) +{ + ptr->buf[ptr->index++] = c; +} + +static void +status_clear(struct input_code *ptr) +{ + ptr->stat = 0; + ptr->index = 0; +} + +static void +status_reset(struct input_code *ptr) +{ + status_clear(ptr); + ptr->score = SCORE_INIT; +} + +static void +status_reinit(struct input_code *ptr) +{ + status_reset(ptr); + ptr->_file_stat = 0; +} + +static void +status_check(struct input_code *ptr, nkf_char c) +{ + if (c <= DEL && estab_f){ + status_reset(ptr); + } +} + +static void +s_status(struct input_code *ptr, nkf_char c) +{ + switch(ptr->stat){ + case -1: + status_check(ptr, c); + break; + case 0: + if (c <= DEL){ + break; + }else if (nkf_char_unicode_p(c)){ + break; + }else if (0xa1 <= c && c <= 0xdf){ + status_push_ch(ptr, SS2); + status_push_ch(ptr, c); + code_score(ptr); + status_clear(ptr); + }else if ((0x81 <= c && c < 0xa0) || (0xe0 <= c && c <= 0xea)){ + ptr->stat = 1; + status_push_ch(ptr, c); + }else if (0xed <= c && c <= 0xee){ + ptr->stat = 3; + status_push_ch(ptr, c); +#ifdef SHIFTJIS_CP932 + }else if (is_ibmext_in_sjis(c)){ + ptr->stat = 2; + status_push_ch(ptr, c); +#endif /* SHIFTJIS_CP932 */ +#ifdef X0212_ENABLE + }else if (0xf0 <= c && c <= 0xfc){ + ptr->stat = 1; + status_push_ch(ptr, c); +#endif /* X0212_ENABLE */ + }else{ + status_disable(ptr); + } + break; + case 1: + if ((0x40 <= c && c <= 0x7e) || (0x80 <= c && c <= 0xfc)){ + status_push_ch(ptr, c); + s2e_conv(ptr->buf[0], ptr->buf[1], &ptr->buf[0], &ptr->buf[1]); + code_score(ptr); + status_clear(ptr); + }else{ + status_disable(ptr); + } + break; + case 2: +#ifdef SHIFTJIS_CP932 + if ((0x40 <= c && c <= 0x7e) || (0x80 <= c && c <= 0xfc)) { + status_push_ch(ptr, c); + if (s2e_conv(ptr->buf[0], ptr->buf[1], &ptr->buf[0], &ptr->buf[1]) == 0) { + set_code_score(ptr, SCORE_CP932); + status_clear(ptr); + break; + } + } +#endif /* SHIFTJIS_CP932 */ + status_disable(ptr); + break; + case 3: + if ((0x40 <= c && c <= 0x7e) || (0x80 <= c && c <= 0xfc)){ + status_push_ch(ptr, c); + s2e_conv(ptr->buf[0], ptr->buf[1], &ptr->buf[0], &ptr->buf[1]); + set_code_score(ptr, SCORE_CP932); + status_clear(ptr); + }else{ + status_disable(ptr); + } + break; + } +} + +static void +e_status(struct input_code *ptr, nkf_char c) +{ + switch (ptr->stat){ + case -1: + status_check(ptr, c); + break; + case 0: + if (c <= DEL){ + break; + }else if (nkf_char_unicode_p(c)){ + break; + }else if (SS2 == c || (0xa1 <= c && c <= 0xfe)){ + ptr->stat = 1; + status_push_ch(ptr, c); +#ifdef X0212_ENABLE + }else if (0x8f == c){ + ptr->stat = 2; + status_push_ch(ptr, c); +#endif /* X0212_ENABLE */ + }else{ + status_disable(ptr); + } + break; + case 1: + if (0xa1 <= c && c <= 0xfe){ + status_push_ch(ptr, c); + code_score(ptr); + status_clear(ptr); + }else{ + status_disable(ptr); + } + break; +#ifdef X0212_ENABLE + case 2: + if (0xa1 <= c && c <= 0xfe){ + ptr->stat = 1; + status_push_ch(ptr, c); + }else{ + status_disable(ptr); + } +#endif /* X0212_ENABLE */ + } +} + +#ifdef UTF8_INPUT_ENABLE +static void +w_status(struct input_code *ptr, nkf_char c) +{ + switch (ptr->stat){ + case -1: + status_check(ptr, c); + break; + case 0: + if (c <= DEL){ + break; + }else if (nkf_char_unicode_p(c)){ + break; + }else if (0xc0 <= c && c <= 0xdf){ + ptr->stat = 1; + status_push_ch(ptr, c); + }else if (0xe0 <= c && c <= 0xef){ + ptr->stat = 2; + status_push_ch(ptr, c); + }else if (0xf0 <= c && c <= 0xf4){ + ptr->stat = 3; + status_push_ch(ptr, c); + }else{ + status_disable(ptr); + } + break; + case 1: + case 2: + if (0x80 <= c && c <= 0xbf){ + status_push_ch(ptr, c); + if (ptr->index > ptr->stat){ + int bom = (ptr->buf[0] == 0xef && ptr->buf[1] == 0xbb + && ptr->buf[2] == 0xbf); + w2e_conv(ptr->buf[0], ptr->buf[1], ptr->buf[2], + &ptr->buf[0], &ptr->buf[1]); + if (!bom){ + code_score(ptr); + } + status_clear(ptr); + } + }else{ + status_disable(ptr); + } + break; + case 3: + if (0x80 <= c && c <= 0xbf){ + if (ptr->index < ptr->stat){ + status_push_ch(ptr, c); + } else { + status_clear(ptr); + } + }else{ + status_disable(ptr); + } + break; + } +} +#endif + +static void +code_status(nkf_char c) +{ + int action_flag = 1; + struct input_code *result = 0; + struct input_code *p = input_code_list; + while (p->name){ + if (!p->status_func) { + ++p; + continue; + } + if (!p->status_func) + continue; + (p->status_func)(p, c); + if (p->stat > 0){ + action_flag = 0; + }else if(p->stat == 0){ + if (result){ + action_flag = 0; + }else{ + result = p; + } + } + ++p; + } + + if (action_flag){ + if (result && !estab_f){ + set_iconv(TRUE, result->iconv_func); + }else if (c <= DEL){ + struct input_code *ptr = input_code_list; + while (ptr->name){ + status_reset(ptr); + ++ptr; + } + } + } +} + +typedef struct { + nkf_buf_t *std_gc_buf; + nkf_char broken_state; + nkf_buf_t *broken_buf; + nkf_char mimeout_state; + nkf_buf_t *nfc_buf; +} nkf_state_t; + +static nkf_state_t *nkf_state = NULL; + +#define STD_GC_BUFSIZE (256) + +static void +nkf_state_init(void) +{ + if (nkf_state) { + nkf_buf_clear(nkf_state->std_gc_buf); + nkf_buf_clear(nkf_state->broken_buf); + nkf_buf_clear(nkf_state->nfc_buf); + } + else { + nkf_state = nkf_xmalloc(sizeof(nkf_state_t)); + nkf_state->std_gc_buf = nkf_buf_new(STD_GC_BUFSIZE); + nkf_state->broken_buf = nkf_buf_new(3); + nkf_state->nfc_buf = nkf_buf_new(9); + } + nkf_state->broken_state = 0; + nkf_state->mimeout_state = 0; +} + +#ifndef WIN32DLL +static nkf_char +std_getc(FILE *f) +{ + if (!nkf_buf_empty_p(nkf_state->std_gc_buf)){ + return nkf_buf_pop(nkf_state->std_gc_buf); + } + return getc(f); +} +#endif /*WIN32DLL*/ + +static nkf_char +std_ungetc(nkf_char c, ARG_UNUSED FILE *f) +{ + nkf_buf_push(nkf_state->std_gc_buf, c); + return c; +} + +#ifndef WIN32DLL +static void +std_putc(nkf_char c) +{ + if(c!=EOF) + putchar(c); +} +#endif /*WIN32DLL*/ + +static nkf_char hold_buf[HOLD_SIZE*2]; +static int hold_count = 0; +static nkf_char +push_hold_buf(nkf_char c2) +{ + if (hold_count >= HOLD_SIZE*2) + return (EOF); + hold_buf[hold_count++] = c2; + return ((hold_count >= HOLD_SIZE*2) ? EOF : hold_count); +} + +static int +h_conv(FILE *f, nkf_char c1, nkf_char c2) +{ + int ret; + int hold_index; + int fromhold_count; + nkf_char c3, c4; + + /** it must NOT be in the kanji shifte sequence */ + /** it must NOT be written in JIS7 */ + /** and it must be after 2 byte 8bit code */ + + hold_count = 0; + push_hold_buf(c1); + push_hold_buf(c2); + + while ((c2 = (*i_getc)(f)) != EOF) { + if (c2 == ESC){ + (*i_ungetc)(c2,f); + break; + } + code_status(c2); + if (push_hold_buf(c2) == EOF || estab_f) { + break; + } + } + + if (!estab_f) { + struct input_code *p = input_code_list; + struct input_code *result = p; + if (c2 == EOF) { + code_status(c2); + } + while (p->name) { + if (p->status_func && p->score < result->score) { + result = p; + } + p++; + } + set_iconv(TRUE, result->iconv_func); + } + + + /** now, + ** 1) EOF is detected, or + ** 2) Code is established, or + ** 3) Buffer is FULL (but last word is pushed) + ** + ** in 1) and 3) cases, we continue to use + ** Kanji codes by oconv and leave estab_f unchanged. + **/ + + ret = c2; + hold_index = 0; + while (hold_index < hold_count){ + c1 = hold_buf[hold_index++]; + if (nkf_char_unicode_p(c1)) { + (*oconv)(0, c1); + continue; + } + else if (c1 <= DEL){ + (*iconv)(0, c1, 0); + continue; + }else if (iconv == s_iconv && 0xa1 <= c1 && c1 <= 0xdf){ + (*iconv)(JIS_X_0201_1976_K, c1, 0); + continue; + } + fromhold_count = 1; + if (hold_index < hold_count){ + c2 = hold_buf[hold_index++]; + fromhold_count++; + }else{ + c2 = (*i_getc)(f); + if (c2 == EOF){ + c4 = EOF; + break; + } + code_status(c2); + } + c3 = 0; + switch ((*iconv)(c1, c2, 0)) { /* can be EUC/SJIS/UTF-8 */ + case -2: + /* 4 bytes UTF-8 */ + if (hold_index < hold_count){ + c3 = hold_buf[hold_index++]; + } else if ((c3 = (*i_getc)(f)) == EOF) { + ret = EOF; + break; + } + code_status(c3); + if (hold_index < hold_count){ + c4 = hold_buf[hold_index++]; + } else if ((c4 = (*i_getc)(f)) == EOF) { + c3 = ret = EOF; + break; + } + code_status(c4); + (*iconv)(c1, c2, (c3<<8)|c4); + break; + case -3: + /* 4 bytes UTF-8 (check combining character) */ + if (hold_index < hold_count){ + c3 = hold_buf[hold_index++]; + fromhold_count++; + } else if ((c3 = (*i_getc)(f)) == EOF) { + w_iconv_nocombine(c1, c2, 0); + break; + } + if (hold_index < hold_count){ + c4 = hold_buf[hold_index++]; + fromhold_count++; + } else if ((c4 = (*i_getc)(f)) == EOF) { + w_iconv_nocombine(c1, c2, 0); + if (fromhold_count <= 2) + (*i_ungetc)(c3,f); + else + hold_index--; + continue; + } + if (w_iconv_combine(c1, c2, 0, c3, c4, 0)) { + w_iconv_nocombine(c1, c2, 0); + if (fromhold_count <= 2) { + (*i_ungetc)(c4,f); + (*i_ungetc)(c3,f); + } else if (fromhold_count == 3) { + (*i_ungetc)(c4,f); + hold_index--; + } else { + hold_index -= 2; + } + } + break; + case -1: + /* 3 bytes EUC or UTF-8 */ + if (hold_index < hold_count){ + c3 = hold_buf[hold_index++]; + fromhold_count++; + } else if ((c3 = (*i_getc)(f)) == EOF) { + ret = EOF; + break; + } else { + code_status(c3); + } + if ((*iconv)(c1, c2, c3) == -3) { + /* 6 bytes UTF-8 (check combining character) */ + nkf_char c5, c6; + if (hold_index < hold_count){ + c4 = hold_buf[hold_index++]; + fromhold_count++; + } else if ((c4 = (*i_getc)(f)) == EOF) { + w_iconv_nocombine(c1, c2, c3); + continue; + } + if (hold_index < hold_count){ + c5 = hold_buf[hold_index++]; + fromhold_count++; + } else if ((c5 = (*i_getc)(f)) == EOF) { + w_iconv_nocombine(c1, c2, c3); + if (fromhold_count == 4) + hold_index--; + else + (*i_ungetc)(c4,f); + continue; + } + if (hold_index < hold_count){ + c6 = hold_buf[hold_index++]; + fromhold_count++; + } else if ((c6 = (*i_getc)(f)) == EOF) { + w_iconv_nocombine(c1, c2, c3); + if (fromhold_count == 5) { + hold_index -= 2; + } else if (fromhold_count == 4) { + hold_index--; + (*i_ungetc)(c5,f); + } else { + (*i_ungetc)(c5,f); + (*i_ungetc)(c4,f); + } + continue; + } + if (w_iconv_combine(c1, c2, c3, c4, c5, c6)) { + w_iconv_nocombine(c1, c2, c3); + if (fromhold_count == 6) { + hold_index -= 3; + } else if (fromhold_count == 5) { + hold_index -= 2; + (*i_ungetc)(c6,f); + } else if (fromhold_count == 4) { + hold_index--; + (*i_ungetc)(c6,f); + (*i_ungetc)(c5,f); + } else { + (*i_ungetc)(c6,f); + (*i_ungetc)(c5,f); + (*i_ungetc)(c4,f); + } + } + } + break; + } + if (c3 == EOF) break; + } + return ret; +} + +/* + * Check and Ignore BOM + */ +static void +check_bom(FILE *f) +{ + int c2; + input_bom_f = FALSE; + switch(c2 = (*i_getc)(f)){ + case 0x00: + if((c2 = (*i_getc)(f)) == 0x00){ + if((c2 = (*i_getc)(f)) == 0xFE){ + if((c2 = (*i_getc)(f)) == 0xFF){ + if(!input_encoding){ + set_iconv(TRUE, w_iconv32); + } + if (iconv == w_iconv32) { + input_bom_f = TRUE; + input_endian = ENDIAN_BIG; + return; + } + (*i_ungetc)(0xFF,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0xFE,f); + }else if(c2 == 0xFF){ + if((c2 = (*i_getc)(f)) == 0xFE){ + if(!input_encoding){ + set_iconv(TRUE, w_iconv32); + } + if (iconv == w_iconv32) { + input_endian = ENDIAN_2143; + return; + } + (*i_ungetc)(0xFF,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0xFF,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0x00,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0x00,f); + break; + case 0xEF: + if((c2 = (*i_getc)(f)) == 0xBB){ + if((c2 = (*i_getc)(f)) == 0xBF){ + if(!input_encoding){ + set_iconv(TRUE, w_iconv); + } + if (iconv == w_iconv) { + input_bom_f = TRUE; + return; + } + (*i_ungetc)(0xBF,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0xBB,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0xEF,f); + break; + case 0xFE: + if((c2 = (*i_getc)(f)) == 0xFF){ + if((c2 = (*i_getc)(f)) == 0x00){ + if((c2 = (*i_getc)(f)) == 0x00){ + if(!input_encoding){ + set_iconv(TRUE, w_iconv32); + } + if (iconv == w_iconv32) { + input_endian = ENDIAN_3412; + return; + } + (*i_ungetc)(0x00,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0x00,f); + }else (*i_ungetc)(c2,f); + if(!input_encoding){ + set_iconv(TRUE, w_iconv16); + } + if (iconv == w_iconv16) { + input_endian = ENDIAN_BIG; + input_bom_f = TRUE; + return; + } + (*i_ungetc)(0xFF,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0xFE,f); + break; + case 0xFF: + if((c2 = (*i_getc)(f)) == 0xFE){ + if((c2 = (*i_getc)(f)) == 0x00){ + if((c2 = (*i_getc)(f)) == 0x00){ + if(!input_encoding){ + set_iconv(TRUE, w_iconv32); + } + if (iconv == w_iconv32) { + input_endian = ENDIAN_LITTLE; + input_bom_f = TRUE; + return; + } + (*i_ungetc)(0x00,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0x00,f); + }else (*i_ungetc)(c2,f); + if(!input_encoding){ + set_iconv(TRUE, w_iconv16); + } + if (iconv == w_iconv16) { + input_endian = ENDIAN_LITTLE; + input_bom_f = TRUE; + return; + } + (*i_ungetc)(0xFE,f); + }else (*i_ungetc)(c2,f); + (*i_ungetc)(0xFF,f); + break; + default: + (*i_ungetc)(c2,f); + break; + } +} + +static nkf_char +broken_getc(FILE *f) +{ + nkf_char c, c1; + + if (!nkf_buf_empty_p(nkf_state->broken_buf)) { + return nkf_buf_pop(nkf_state->broken_buf); + } + c = (*i_bgetc)(f); + if (c=='$' && nkf_state->broken_state != ESC + && (input_mode == ASCII || input_mode == JIS_X_0201_1976_K)) { + c1= (*i_bgetc)(f); + nkf_state->broken_state = 0; + if (c1=='@'|| c1=='B') { + nkf_buf_push(nkf_state->broken_buf, c1); + nkf_buf_push(nkf_state->broken_buf, c); + return ESC; + } else { + (*i_bungetc)(c1,f); + return c; + } + } else if (c=='(' && nkf_state->broken_state != ESC + && (input_mode == JIS_X_0208 || input_mode == JIS_X_0201_1976_K)) { + c1= (*i_bgetc)(f); + nkf_state->broken_state = 0; + if (c1=='J'|| c1=='B') { + nkf_buf_push(nkf_state->broken_buf, c1); + nkf_buf_push(nkf_state->broken_buf, c); + return ESC; + } else { + (*i_bungetc)(c1,f); + return c; + } + } else { + nkf_state->broken_state = c; + return c; + } +} + +static nkf_char +broken_ungetc(nkf_char c, ARG_UNUSED FILE *f) +{ + if (nkf_buf_length(nkf_state->broken_buf) < 2) + nkf_buf_push(nkf_state->broken_buf, c); + return c; +} + +static void +eol_conv(nkf_char c2, nkf_char c1) +{ + if (guess_f && input_eol != EOF) { + if (c2 == 0 && c1 == LF) { + if (!input_eol) input_eol = prev_cr ? CRLF : LF; + else if (input_eol != (prev_cr ? CRLF : LF)) input_eol = EOF; + } else if (c2 == 0 && c1 == CR && input_eol == LF) input_eol = EOF; + else if (!prev_cr); + else if (!input_eol) input_eol = CR; + else if (input_eol != CR) input_eol = EOF; + } + if (prev_cr || (c2 == 0 && c1 == LF)) { + prev_cr = 0; + if (eolmode_f != LF) (*o_eol_conv)(0, CR); + if (eolmode_f != CR) (*o_eol_conv)(0, LF); + } + if (c2 == 0 && c1 == CR) prev_cr = CR; + else if (c2 != 0 || c1 != LF) (*o_eol_conv)(c2, c1); +} + +static void +put_newline(void (*func)(nkf_char)) +{ + switch (eolmode_f ? eolmode_f : DEFAULT_NEWLINE) { + case CRLF: + (*func)(0x0D); + (*func)(0x0A); + break; + case CR: + (*func)(0x0D); + break; + case LF: + (*func)(0x0A); + break; + } +} + +static void +oconv_newline(void (*func)(nkf_char, nkf_char)) +{ + switch (eolmode_f ? eolmode_f : DEFAULT_NEWLINE) { + case CRLF: + (*func)(0, 0x0D); + (*func)(0, 0x0A); + break; + case CR: + (*func)(0, 0x0D); + break; + case LF: + (*func)(0, 0x0A); + break; + } +} + +/* + Return value of fold_conv() + + LF add newline and output char + CR add newline and output nothing + SP space + 0 skip + 1 (or else) normal output + + fold state in prev (previous character) + + >0x80 Japanese (X0208/X0201) + <0x80 ASCII + LF new line + SP space + + This fold algorthm does not preserve heading space in a line. + This is the main difference from fmt. + */ + +#define char_size(c2,c1) (c2?2:1) + +static void +fold_conv(nkf_char c2, nkf_char c1) +{ + nkf_char prev0; + nkf_char fold_state; + + if (c1== CR && !fold_preserve_f) { + fold_state=0; /* ignore cr */ + }else if (c1== LF&&f_prev==CR && fold_preserve_f) { + f_prev = LF; + fold_state=0; /* ignore cr */ + } else if (c1== BS) { + if (f_line>0) f_line--; + fold_state = 1; + } else if (c2==EOF && f_line != 0) { /* close open last line */ + fold_state = LF; + } else if ((c1==LF && !fold_preserve_f) + || ((c1==CR||(c1==LF&&f_prev!=CR)) + && fold_preserve_f)) { + /* new line */ + if (fold_preserve_f) { + f_prev = c1; + f_line = 0; + fold_state = CR; + } else if ((f_prev == c1 && !fold_preserve_f) + || (f_prev == LF && fold_preserve_f) + ) { /* duplicate newline */ + if (f_line) { + f_line = 0; + fold_state = LF; /* output two newline */ + } else { + f_line = 0; + fold_state = 1; + } + } else { + if (f_prev&0x80) { /* Japanese? */ + f_prev = c1; + fold_state = 0; /* ignore given single newline */ + } else if (f_prev==SP) { + fold_state = 0; + } else { + f_prev = c1; + if (++f_line<=fold_len) + fold_state = SP; + else { + f_line = 0; + fold_state = CR; /* fold and output nothing */ + } + } + } + } else if (c1=='\f') { + f_prev = LF; + f_line = 0; + fold_state = LF; /* output newline and clear */ + } else if ((c2==0 && nkf_isblank(c1)) || (c2 == '!' && c1 == '!')) { + /* X0208 kankaku or ascii space */ + if (f_prev == SP) { + fold_state = 0; /* remove duplicate spaces */ + } else { + f_prev = SP; + if (++f_line<=fold_len) + fold_state = SP; /* output ASCII space only */ + else { + f_prev = SP; f_line = 0; + fold_state = CR; /* fold and output nothing */ + } + } + } else { + prev0 = f_prev; /* we still need this one... , but almost done */ + f_prev = c1; + if (c2 || c2 == JIS_X_0201_1976_K) + f_prev |= 0x80; /* this is Japanese */ + f_line += c2 == JIS_X_0201_1976_K ? 1: char_size(c2,c1); + if (f_line<=fold_len) { /* normal case */ + fold_state = 1; + } else { + if (f_line>fold_len+fold_margin) { /* too many kinsoku suspension */ + f_line = char_size(c2,c1); + fold_state = LF; /* We can't wait, do fold now */ + } else if (c2 == JIS_X_0201_1976_K) { + /* simple kinsoku rules return 1 means no folding */ + if (c1==(0xde&0x7f)) fold_state = 1; /* $B!+(B*/ + else if (c1==(0xdf&0x7f)) fold_state = 1; /* $B!,(B*/ + else if (c1==(0xa4&0x7f)) fold_state = 1; /* $B!#(B*/ + else if (c1==(0xa3&0x7f)) fold_state = 1; /* $B!$(B*/ + else if (c1==(0xa1&0x7f)) fold_state = 1; /* $B!W(B*/ + else if (c1==(0xb0&0x7f)) fold_state = 1; /* - */ + else if (SP<=c1 && c1<=(0xdf&0x7f)) { /* X0201 */ + f_line = 1; + fold_state = LF;/* add one new f_line before this character */ + } else { + f_line = 1; + fold_state = LF;/* add one new f_line before this character */ + } + } else if (c2==0) { + /* kinsoku point in ASCII */ + if ( c1==')'|| /* { [ ( */ + c1==']'|| + c1=='}'|| + c1=='.'|| + c1==','|| + c1=='!'|| + c1=='?'|| + c1=='/'|| + c1==':'|| + c1==';') { + fold_state = 1; + /* just after special */ + } else if (!is_alnum(prev0)) { + f_line = char_size(c2,c1); + fold_state = LF; + } else if ((prev0==SP) || /* ignored new f_line */ + (prev0==LF)|| /* ignored new f_line */ + (prev0&0x80)) { /* X0208 - ASCII */ + f_line = char_size(c2,c1); + fold_state = LF;/* add one new f_line before this character */ + } else { + fold_state = 1; /* default no fold in ASCII */ + } + } else { + if (c2=='!') { + if (c1=='"') fold_state = 1; /* $B!"(B */ + else if (c1=='#') fold_state = 1; /* $B!#(B */ + else if (c1=='W') fold_state = 1; /* $B!W(B */ + else if (c1=='K') fold_state = 1; /* $B!K(B */ + else if (c1=='$') fold_state = 1; /* $B!$(B */ + else if (c1=='%') fold_state = 1; /* $B!%(B */ + else if (c1=='\'') fold_state = 1; /* $B!\(B */ + else if (c1=='(') fold_state = 1; /* $B!((B */ + else if (c1==')') fold_state = 1; /* $B!)(B */ + else if (c1=='*') fold_state = 1; /* $B!*(B */ + else if (c1=='+') fold_state = 1; /* $B!+(B */ + else if (c1==',') fold_state = 1; /* $B!,(B */ + /* default no fold in kinsoku */ + else { + fold_state = LF; + f_line = char_size(c2,c1); + /* add one new f_line before this character */ + } + } else { + f_line = char_size(c2,c1); + fold_state = LF; + /* add one new f_line before this character */ + } + } + } + } + /* terminator process */ + switch(fold_state) { + case LF: + oconv_newline(o_fconv); + (*o_fconv)(c2,c1); + break; + case 0: + return; + case CR: + oconv_newline(o_fconv); + break; + case TAB: + case SP: + (*o_fconv)(0,SP); + break; + default: + (*o_fconv)(c2,c1); + } +} + +static nkf_char z_prev2=0,z_prev1=0; + +static void +z_conv(nkf_char c2, nkf_char c1) +{ + + /* if (c2) c1 &= 0x7f; assertion */ + + if (c2 == JIS_X_0201_1976_K && (c1 == 0x20 || c1 == 0x7D || c1 == 0x7E)) { + (*o_zconv)(c2,c1); + return; + } + + if (x0201_f) { + if (z_prev2 == JIS_X_0201_1976_K) { + if (c2 == JIS_X_0201_1976_K) { + if (c1 == (0xde&0x7f)) { /* $BByE@(B */ + z_prev2 = 0; + (*o_zconv)(dv[(z_prev1-SP)*2], dv[(z_prev1-SP)*2+1]); + return; + } else if (c1 == (0xdf&0x7f) && ev[(z_prev1-SP)*2]) { /* $BH>ByE@(B */ + z_prev2 = 0; + (*o_zconv)(ev[(z_prev1-SP)*2], ev[(z_prev1-SP)*2+1]); + return; + } else if (x0213_f && c1 == (0xdf&0x7f) && ev_x0213[(z_prev1-SP)*2]) { /* $BH>ByE@(B */ + z_prev2 = 0; + (*o_zconv)(ev_x0213[(z_prev1-SP)*2], ev_x0213[(z_prev1-SP)*2+1]); + return; + } + } + z_prev2 = 0; + (*o_zconv)(cv[(z_prev1-SP)*2], cv[(z_prev1-SP)*2+1]); + } + if (c2 == JIS_X_0201_1976_K) { + if (dv[(c1-SP)*2] || ev[(c1-SP)*2] || (x0213_f && ev_x0213[(c1-SP)*2])) { + /* wait for $BByE@(B or $BH>ByE@(B */ + z_prev1 = c1; + z_prev2 = c2; + return; + } else { + (*o_zconv)(cv[(c1-SP)*2], cv[(c1-SP)*2+1]); + return; + } + } + } + + if (c2 == EOF) { + (*o_zconv)(c2, c1); + return; + } + + if (alpha_f&1 && c2 == 0x23) { + /* JISX0208 Alphabet */ + c2 = 0; + } else if (c2 == 0x21) { + /* JISX0208 Kigou */ + if (0x21==c1) { + if (alpha_f&2) { + c2 = 0; + c1 = SP; + } else if (alpha_f&4) { + (*o_zconv)(0, SP); + (*o_zconv)(0, SP); + return; + } + } else if (alpha_f&1 && 0x20': entity = ">"; break; + case '<': entity = "<"; break; + case '\"': entity = """; break; + case '&': entity = "&"; break; + } + if (entity){ + while (*entity) (*o_zconv)(0, *entity++); + return; + } + } + + if (alpha_f & 16) { + /* JIS X 0208 Katakana to JIS X 0201 Katakana */ + if (c2 == 0x21) { + nkf_char c = 0; + switch (c1) { + case 0x23: + /* U+3002 (0x8142) Ideographic Full Stop -> U+FF61 (0xA1) Halfwidth Ideographic Full Stop */ + c = 0xA1; + break; + case 0x56: + /* U+300C (0x8175) Left Corner Bracket -> U+FF62 (0xA2) Halfwidth Left Corner Bracket */ + c = 0xA2; + break; + case 0x57: + /* U+300D (0x8176) Right Corner Bracket -> U+FF63 (0xA3) Halfwidth Right Corner Bracket */ + c = 0xA3; + break; + case 0x22: + /* U+3001 (0x8141) Ideographic Comma -> U+FF64 (0xA4) Halfwidth Ideographic Comma */ + c = 0xA4; + break; + case 0x26: + /* U+30FB (0x8145) Katakana Middle Dot -> U+FF65 (0xA5) Halfwidth Katakana Middle Dot */ + c = 0xA5; + break; + case 0x3C: + /* U+30FC (0x815B) Katakana-Hiragana Prolonged Sound Mark -> U+FF70 (0xB0) Halfwidth Katakana-Hiragana Prolonged Sound Mark */ + c = 0xB0; + break; + case 0x2B: + /* U+309B (0x814A) Katakana-Hiragana Voiced Sound Mark -> U+FF9E (0xDE) Halfwidth Katakana Voiced Sound Mark */ + c = 0xDE; + break; + case 0x2C: + /* U+309C (0x814B) Katakana-Hiragana Semi-Voiced Sound Mark -> U+FF9F (0xDF) Halfwidth Katakana Semi-Voiced Sound Mark */ + c = 0xDF; + break; + } + if (c) { + (*o_zconv)(JIS_X_0201_1976_K, c); + return; + } + } else if (c2 == 0x25) { + /* JISX0208 Katakana */ + static const int fullwidth_to_halfwidth[] = + { + 0x0000, 0x2700, 0x3100, 0x2800, 0x3200, 0x2900, 0x3300, 0x2A00, + 0x3400, 0x2B00, 0x3500, 0x3600, 0x365E, 0x3700, 0x375E, 0x3800, + 0x385E, 0x3900, 0x395E, 0x3A00, 0x3A5E, 0x3B00, 0x3B5E, 0x3C00, + 0x3C5E, 0x3D00, 0x3D5E, 0x3E00, 0x3E5E, 0x3F00, 0x3F5E, 0x4000, + 0x405E, 0x4100, 0x415E, 0x2F00, 0x4200, 0x425E, 0x4300, 0x435E, + 0x4400, 0x445E, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4A00, + 0x4A5E, 0x4A5F, 0x4B00, 0x4B5E, 0x4B5F, 0x4C00, 0x4C5E, 0x4C5F, + 0x4D00, 0x4D5E, 0x4D5F, 0x4E00, 0x4E5E, 0x4E5F, 0x4F00, 0x5000, + 0x5100, 0x5200, 0x5300, 0x2C00, 0x5400, 0x2D00, 0x5500, 0x2E00, + 0x5600, 0x5700, 0x5800, 0x5900, 0x5A00, 0x5B00, 0x0000, 0x5C00, + 0x0000, 0x0000, 0x2600, 0x5D00, 0x335E, 0x0000, 0x0000, 0x365F, + 0x375F, 0x385F, 0x395F, 0x3A5F, 0x3E5F, 0x425F, 0x445F, 0x0000 + }; + if (fullwidth_to_halfwidth[c1-0x20]){ + c2 = fullwidth_to_halfwidth[c1-0x20]; + (*o_zconv)(JIS_X_0201_1976_K, c2>>8); + if (c2 & 0xFF) { + (*o_zconv)(JIS_X_0201_1976_K, c2&0xFF); + } + return; + } + } else if (c2 == 0 && nkf_char_unicode_p(c1) && + ((c1&VALUE_MASK) == 0x3099 || (c1&VALUE_MASK) == 0x309A)) { /* $B9g@.MQByE@!&H>ByE@(B */ + (*o_zconv)(JIS_X_0201_1976_K, 0x5E + (c1&VALUE_MASK) - 0x3099); + return; + } + } + (*o_zconv)(c2,c1); +} + + +#define rot13(c) ( \ + ( c < 'A') ? c: \ + (c <= 'M') ? (c + 13): \ + (c <= 'Z') ? (c - 13): \ + (c < 'a') ? (c): \ + (c <= 'm') ? (c + 13): \ + (c <= 'z') ? (c - 13): \ + (c) \ + ) + +#define rot47(c) ( \ + ( c < '!') ? c: \ + ( c <= 'O') ? (c + 47) : \ + ( c <= '~') ? (c - 47) : \ + c \ + ) + +static void +rot_conv(nkf_char c2, nkf_char c1) +{ + if (c2 == 0 || c2 == JIS_X_0201_1976_K || c2 == ISO_8859_1) { + c1 = rot13(c1); + } else if (c2) { + c1 = rot47(c1); + c2 = rot47(c2); + } + (*o_rot_conv)(c2,c1); +} + +static void +hira_conv(nkf_char c2, nkf_char c1) +{ + if (hira_f & 1) { + if (c2 == 0x25) { + if (0x20 < c1 && c1 < 0x74) { + c2 = 0x24; + (*o_hira_conv)(c2,c1); + return; + } else if (c1 == 0x74 && nkf_enc_unicode_p(output_encoding)) { + c2 = 0; + c1 = nkf_char_unicode_new(0x3094); + (*o_hira_conv)(c2,c1); + return; + } + } else if (c2 == 0x21 && (c1 == 0x33 || c1 == 0x34)) { + c1 += 2; + (*o_hira_conv)(c2,c1); + return; + } + } + if (hira_f & 2) { + if (c2 == 0 && c1 == nkf_char_unicode_new(0x3094)) { + c2 = 0x25; + c1 = 0x74; + } else if (c2 == 0x24 && 0x20 < c1 && c1 < 0x74) { + c2 = 0x25; + } else if (c2 == 0x21 && (c1 == 0x35 || c1 == 0x36)) { + c1 -= 2; + } + } + (*o_hira_conv)(c2,c1); +} + + +static void +iso2022jp_check_conv(nkf_char c2, nkf_char c1) +{ +#define RANGE_NUM_MAX 18 + static const nkf_char range[RANGE_NUM_MAX][2] = { + {0x222f, 0x2239,}, + {0x2242, 0x2249,}, + {0x2251, 0x225b,}, + {0x226b, 0x2271,}, + {0x227a, 0x227d,}, + {0x2321, 0x232f,}, + {0x233a, 0x2340,}, + {0x235b, 0x2360,}, + {0x237b, 0x237e,}, + {0x2474, 0x247e,}, + {0x2577, 0x257e,}, + {0x2639, 0x2640,}, + {0x2659, 0x267e,}, + {0x2742, 0x2750,}, + {0x2772, 0x277e,}, + {0x2841, 0x287e,}, + {0x4f54, 0x4f7e,}, + {0x7425, 0x747e}, + }; + nkf_char i; + nkf_char start, end, c; + + if(c2 >= 0x00 && c2 <= 0x20 && c1 >= 0x7f && c1 <= 0xff) { + c2 = GETA1; + c1 = GETA2; + } + if((c2 >= 0x29 && c2 <= 0x2f) || (c2 >= 0x75 && c2 <= 0x7e)) { + c2 = GETA1; + c1 = GETA2; + } + + for (i = 0; i < RANGE_NUM_MAX; i++) { + start = range[i][0]; + end = range[i][1]; + c = (c2 << 8) + c1; + if (c >= start && c <= end) { + c2 = GETA1; + c1 = GETA2; + } + } + (*o_iso2022jp_check_conv)(c2,c1); +} + + +/* This converts =?ISO-2022-JP?B?HOGE HOGE?= */ + +static const unsigned char *mime_pattern[] = { + (const unsigned char *)"\075?EUC-JP?B?", + (const unsigned char *)"\075?SHIFT_JIS?B?", + (const unsigned char *)"\075?ISO-8859-1?Q?", + (const unsigned char *)"\075?ISO-8859-1?B?", + (const unsigned char *)"\075?ISO-2022-JP?B?", + (const unsigned char *)"\075?ISO-2022-JP?B?", + (const unsigned char *)"\075?ISO-2022-JP?Q?", +#if defined(UTF8_INPUT_ENABLE) + (const unsigned char *)"\075?UTF-8?B?", + (const unsigned char *)"\075?UTF-8?Q?", +#endif + (const unsigned char *)"\075?US-ASCII?Q?", + NULL +}; + + +/* $B3:Ev$9$k%3!<%I$NM%@hEY$r>e$2$k$?$a$NL\0u(B */ +nkf_char (*mime_priority_func[])(nkf_char c2, nkf_char c1, nkf_char c0) = { + e_iconv, s_iconv, 0, 0, 0, 0, 0, +#if defined(UTF8_INPUT_ENABLE) + w_iconv, w_iconv, +#endif + 0, +}; + +static const nkf_char mime_encode[] = { + EUC_JP, SHIFT_JIS, ISO_8859_1, ISO_8859_1, JIS_X_0208, JIS_X_0201_1976_K, JIS_X_0201_1976_K, +#if defined(UTF8_INPUT_ENABLE) + UTF_8, UTF_8, +#endif + ASCII, + 0 +}; + +static const nkf_char mime_encode_method[] = { + 'B', 'B','Q', 'B', 'B', 'B', 'Q', +#if defined(UTF8_INPUT_ENABLE) + 'B', 'Q', +#endif + 'Q', + 0 +}; + + +/* MIME preprocessor fifo */ + +#define MIME_BUF_SIZE (1024) /* 2^n ring buffer */ +#define MIME_BUF_MASK (MIME_BUF_SIZE-1) +#define mime_input_buf(n) mime_input_state.buf[(n)&MIME_BUF_MASK] +static struct { + unsigned char buf[MIME_BUF_SIZE]; + unsigned int top; + unsigned int last; /* decoded */ + unsigned int input; /* undecoded */ +} mime_input_state; +static nkf_char (*mime_iconv_back)(nkf_char c2,nkf_char c1,nkf_char c0) = NULL; + +#define MAXRECOVER 20 + +static void +mime_input_buf_unshift(nkf_char c) +{ + mime_input_buf(--mime_input_state.top) = (unsigned char)c; +} + +static nkf_char +mime_ungetc(nkf_char c, ARG_UNUSED FILE *f) +{ + mime_input_buf_unshift(c); + return c; +} + +static nkf_char +mime_ungetc_buf(nkf_char c, FILE *f) +{ + if (mimebuf_f) + (*i_mungetc_buf)(c,f); + else + mime_input_buf(--mime_input_state.input) = (unsigned char)c; + return c; +} + +static nkf_char +mime_getc_buf(FILE *f) +{ + /* we don't keep eof of mime_input_buf, becase it contains ?= as + a terminator. It was checked in mime_integrity. */ + return ((mimebuf_f)? + (*i_mgetc_buf)(f):mime_input_buf(mime_input_state.input++)); +} + +static void +switch_mime_getc(void) +{ + if (i_getc!=mime_getc) { + i_mgetc = i_getc; i_getc = mime_getc; + i_mungetc = i_ungetc; i_ungetc = mime_ungetc; + if(mime_f==STRICT_MIME) { + i_mgetc_buf = i_mgetc; i_mgetc = mime_getc_buf; + i_mungetc_buf = i_mungetc; i_mungetc = mime_ungetc_buf; + } + } +} + +static void +unswitch_mime_getc(void) +{ + if(mime_f==STRICT_MIME) { + i_mgetc = i_mgetc_buf; + i_mungetc = i_mungetc_buf; + } + i_getc = i_mgetc; + i_ungetc = i_mungetc; + if(mime_iconv_back)set_iconv(FALSE, mime_iconv_back); + mime_iconv_back = NULL; +} + +static nkf_char +mime_integrity(FILE *f, const unsigned char *p) +{ + nkf_char c,d; + unsigned int q; + /* In buffered mode, read until =? or NL or buffer full + */ + mime_input_state.input = mime_input_state.top; + mime_input_state.last = mime_input_state.top; + + while(*p) mime_input_buf(mime_input_state.input++) = *p++; + d = 0; + q = mime_input_state.input; + while((c=(*i_getc)(f))!=EOF) { + if (((mime_input_state.input-mime_input_state.top)&MIME_BUF_MASK)==0) { + break; /* buffer full */ + } + if (c=='=' && d=='?') { + /* checked. skip header, start decode */ + mime_input_buf(mime_input_state.input++) = (unsigned char)c; + /* mime_last_input = mime_input_state.input; */ + mime_input_state.input = q; + switch_mime_getc(); + return 1; + } + if (!( (c=='+'||c=='/'|| c=='=' || c=='?' || is_alnum(c)))) + break; + /* Should we check length mod 4? */ + mime_input_buf(mime_input_state.input++) = (unsigned char)c; + d=c; + } + /* In case of Incomplete MIME, no MIME decode */ + mime_input_buf(mime_input_state.input++) = (unsigned char)c; + mime_input_state.last = mime_input_state.input; /* point undecoded buffer */ + mime_decode_mode = 1; /* no decode on mime_input_buf last in mime_getc */ + switch_mime_getc(); /* anyway we need buffered getc */ + return 1; +} + +static nkf_char +mime_begin_strict(FILE *f) +{ + nkf_char c1 = 0; + int i,j,k; + const unsigned char *p,*q; + nkf_char r[MAXRECOVER]; /* recovery buffer, max mime pattern length */ + + mime_decode_mode = FALSE; + /* =? has been checked */ + j = 0; + p = mime_pattern[j]; + r[0]='='; r[1]='?'; + + for(i=2;p[i]>SP;i++) { /* start at =? */ + if (((r[i] = c1 = (*i_getc)(f))==EOF) || nkf_toupper(c1) != p[i]) { + /* pattern fails, try next one */ + q = p; + while (mime_pattern[++j]) { + p = mime_pattern[j]; + for(k=2;k i */ + if (p[k]!=q[k]) break; + if (k==i && nkf_toupper(c1)==p[k]) break; + } + p = mime_pattern[j]; + if (p) continue; /* found next one, continue */ + /* all fails, output from recovery buffer */ + (*i_ungetc)(c1,f); + for(j=0;jscore & (SCORE_DEPEND|SCORE_CP932)) + input_codename = "CP932"; + } else if (strcmp(input_codename, "EUC-JP") == 0) { + if (p->score & SCORE_X0213) + input_codename = "EUC-JIS-2004"; + else if (p->score & (SCORE_X0212)) + input_codename = "EUCJP-MS"; + else if (p->score & (SCORE_DEPEND|SCORE_CP932)) + input_codename = "CP51932"; + } else if (strcmp(input_codename, "ISO-2022-JP") == 0) { + if (p->score & (SCORE_KANA)) + input_codename = "CP50221"; + else if (p->score & (SCORE_DEPEND|SCORE_CP932)) + input_codename = "CP50220"; + } + } + return input_codename; +} + +#if !defined(PERL_XS) && !defined(WIN32DLL) +static void +print_guessed_code(char *filename) +{ + if (filename != NULL) printf("%s: ", filename); + if (input_codename && !*input_codename) { + printf("BINARY\n"); + } else { + input_codename = get_guessed_code(); + if (guess_f == 1) { + printf("%s\n", input_codename); + } else { + printf("%s%s%s%s\n", + input_codename, + iconv != w_iconv16 && iconv != w_iconv32 ? "" : + input_endian == ENDIAN_LITTLE ? " LE" : + input_endian == ENDIAN_BIG ? " BE" : + "[BUG]", + input_bom_f ? " (BOM)" : "", + input_eol == CR ? " (CR)" : + input_eol == LF ? " (LF)" : + input_eol == CRLF ? " (CRLF)" : + input_eol == EOF ? " (MIXED NL)" : + ""); + } + } +} +#endif /*WIN32DLL*/ + +#ifdef INPUT_OPTION + +static nkf_char +hex_getc(nkf_char ch, FILE *f, nkf_char (*g)(FILE *f), nkf_char (*u)(nkf_char c, FILE *f)) +{ + nkf_char c1, c2, c3; + c1 = (*g)(f); + if (c1 != ch){ + return c1; + } + c2 = (*g)(f); + if (!nkf_isxdigit(c2)){ + (*u)(c2, f); + return c1; + } + c3 = (*g)(f); + if (!nkf_isxdigit(c3)){ + (*u)(c2, f); + (*u)(c3, f); + return c1; + } + return (hex2bin(c2) << 4) | hex2bin(c3); +} + +static nkf_char +cap_getc(FILE *f) +{ + return hex_getc(':', f, i_cgetc, i_cungetc); +} + +static nkf_char +cap_ungetc(nkf_char c, FILE *f) +{ + return (*i_cungetc)(c, f); +} + +static nkf_char +url_getc(FILE *f) +{ + return hex_getc('%', f, i_ugetc, i_uungetc); +} + +static nkf_char +url_ungetc(nkf_char c, FILE *f) +{ + return (*i_uungetc)(c, f); +} +#endif + +#ifdef NUMCHAR_OPTION +static nkf_char +numchar_getc(FILE *f) +{ + nkf_char (*g)(FILE *) = i_ngetc; + nkf_char (*u)(nkf_char c ,FILE *f) = i_nungetc; + int i = 0, j; + nkf_char buf[12]; + nkf_char c = -1; + + buf[i] = (*g)(f); + if (buf[i] == '&'){ + buf[++i] = (*g)(f); + if (buf[i] == '#'){ + c = 0; + buf[++i] = (*g)(f); + if (buf[i] == 'x' || buf[i] == 'X'){ + for (j = 0; j < 7; j++){ + buf[++i] = (*g)(f); + if (!nkf_isxdigit(buf[i])){ + if (buf[i] != ';'){ + c = -1; + } + break; + } + c <<= 4; + c |= hex2bin(buf[i]); + } + }else{ + for (j = 0; j < 8; j++){ + if (j){ + buf[++i] = (*g)(f); + } + if (!nkf_isdigit(buf[i])){ + if (buf[i] != ';'){ + c = -1; + } + break; + } + c *= 10; + c += hex2bin(buf[i]); + } + } + } + } + if (c != -1){ + return nkf_char_unicode_new(c); + } + while (i > 0){ + (*u)(buf[i], f); + --i; + } + return buf[0]; +} + +static nkf_char +numchar_ungetc(nkf_char c, FILE *f) +{ + return (*i_nungetc)(c, f); +} +#endif + +#ifdef UNICODE_NORMALIZATION + +static nkf_char +nfc_getc(FILE *f) +{ + nkf_char (*g)(FILE *f) = i_nfc_getc; + nkf_char (*u)(nkf_char c ,FILE *f) = i_nfc_ungetc; + nkf_buf_t *buf = nkf_state->nfc_buf; + const unsigned char *array; + int lower=0, upper=NORMALIZATION_TABLE_LENGTH-1; + nkf_char c = (*g)(f); + + if (c == EOF || c > 0xFF || (c & 0xc0) == 0x80) return c; + + nkf_buf_push(buf, c); + do { + while (lower <= upper) { + int mid = (lower+upper) / 2; + int len; + array = normalization_table[mid].nfd; + for (len=0; len < NORMALIZATION_TABLE_NFD_LENGTH && array[len]; len++) { + if (len >= nkf_buf_length(buf)) { + c = (*g)(f); + if (c == EOF) { + len = 0; + lower = 1, upper = 0; + break; + } + nkf_buf_push(buf, c); + } + if (array[len] != nkf_buf_at(buf, len)) { + if (array[len] < nkf_buf_at(buf, len)) lower = mid + 1; + else upper = mid - 1; + len = 0; + break; + } + } + if (len > 0) { + int i; + array = normalization_table[mid].nfc; + nkf_buf_clear(buf); + for (i=0; i < NORMALIZATION_TABLE_NFC_LENGTH && array[i]; i++) + nkf_buf_push(buf, array[i]); + break; + } + } + } while (lower <= upper); + + while (nkf_buf_length(buf) > 1) (*u)(nkf_buf_pop(buf), f); + c = nkf_buf_pop(buf); + + return c; +} + +static nkf_char +nfc_ungetc(nkf_char c, FILE *f) +{ + return (*i_nfc_ungetc)(c, f); +} +#endif /* UNICODE_NORMALIZATION */ + + +static nkf_char +base64decode(nkf_char c) +{ + int i; + if (c > '@') { + if (c < '[') { + i = c - 'A'; /* A..Z 0-25 */ + } else if (c == '_') { + i = '?' /* 63 */ ; /* _ 63 */ + } else { + i = c - 'G' /* - 'a' + 26 */ ; /* a..z 26-51 */ + } + } else if (c > '/') { + i = c - '0' + '4' /* - '0' + 52 */ ; /* 0..9 52-61 */ + } else if (c == '+' || c == '-') { + i = '>' /* 62 */ ; /* + and - 62 */ + } else { + i = '?' /* 63 */ ; /* / 63 */ + } + return (i); +} + +static nkf_char +mime_getc(FILE *f) +{ + nkf_char c1, c2, c3, c4, cc; + nkf_char t1, t2, t3, t4, mode, exit_mode; + nkf_char lwsp_count; + char *lwsp_buf; + char *lwsp_buf_new; + nkf_char lwsp_size = 128; + + if (mime_input_state.top != mime_input_state.last) { /* Something is in FIFO */ + return mime_input_buf(mime_input_state.top++); + } + if (mime_decode_mode==1 ||mime_decode_mode==FALSE) { + mime_decode_mode=FALSE; + unswitch_mime_getc(); + return (*i_getc)(f); + } + + if (mimebuf_f == FIXED_MIME) + exit_mode = mime_decode_mode; + else + exit_mode = FALSE; + if (mime_decode_mode == 'Q') { + if ((c1 = (*i_mgetc)(f)) == EOF) return (EOF); + restart_mime_q: + if (c1=='_' && mimebuf_f != FIXED_MIME) return SP; + if (c1<=SP || DEL<=c1) { + mime_decode_mode = exit_mode; /* prepare for quit */ + return c1; + } + if (c1!='=' && (c1!='?' || mimebuf_f == FIXED_MIME)) { + return c1; + } + + mime_decode_mode = exit_mode; /* prepare for quit */ + if ((c2 = (*i_mgetc)(f)) == EOF) return (EOF); + if (c1=='?'&&c2=='=' && mimebuf_f != FIXED_MIME) { + /* end Q encoding */ + input_mode = exit_mode; + lwsp_count = 0; + lwsp_buf = nkf_xmalloc((lwsp_size+5)*sizeof(char)); + while ((c1=(*i_getc)(f))!=EOF) { + switch (c1) { + case LF: + case CR: + if (c1==LF) { + if ((c1=(*i_getc)(f))!=EOF && nkf_isblank(c1)) { + i_ungetc(SP,f); + continue; + } else { + i_ungetc(c1,f); + } + c1 = LF; + } else { + if ((c1=(*i_getc)(f))!=EOF && c1 == LF) { + if ((c1=(*i_getc)(f))!=EOF && nkf_isblank(c1)) { + i_ungetc(SP,f); + continue; + } else { + i_ungetc(c1,f); + } + i_ungetc(LF,f); + } else { + i_ungetc(c1,f); + } + c1 = CR; + } + break; + case SP: + case TAB: + lwsp_buf[lwsp_count] = (unsigned char)c1; + if (lwsp_count++>lwsp_size){ + lwsp_size <<= 1; + lwsp_buf_new = nkf_xrealloc(lwsp_buf, (lwsp_size+5)*sizeof(char)); + lwsp_buf = lwsp_buf_new; + } + continue; + } + break; + } + if (lwsp_count > 0 && (c1 != '=' || (lwsp_buf[lwsp_count-1] != SP && lwsp_buf[lwsp_count-1] != TAB))) { + i_ungetc(c1,f); + for(lwsp_count--;lwsp_count>0;lwsp_count--) + i_ungetc(lwsp_buf[lwsp_count],f); + c1 = lwsp_buf[0]; + } + nkf_xfree(lwsp_buf); + return c1; + } + if (c1=='='&&c20;lwsp_count--) + i_ungetc(lwsp_buf[lwsp_count],f); + c1 = lwsp_buf[0]; + } + nkf_xfree(lwsp_buf); + return c1; + } + mime_c3_retry: + if ((c3 = (*i_mgetc)(f))<=SP) { + if (c3==EOF) + return (EOF); + if (mime_f != STRICT_MIME) goto mime_c3_retry; + if (mimebuf_f!=FIXED_MIME) input_mode = ASCII; + return c3; + } + mime_c4_retry: + if ((c4 = (*i_mgetc)(f))<=SP) { + if (c4==EOF) + return (EOF); + if (mime_f != STRICT_MIME) goto mime_c4_retry; + if (mimebuf_f!=FIXED_MIME) input_mode = ASCII; + return c4; + } + + mime_decode_mode = mode; /* still in MIME sigh... */ + + /* BASE 64 decoding */ + + t1 = 0x3f & base64decode(c1); + t2 = 0x3f & base64decode(c2); + t3 = 0x3f & base64decode(c3); + t4 = 0x3f & base64decode(c4); + cc = ((t1 << 2) & 0x0fc) | ((t2 >> 4) & 0x03); + if (c2 != '=') { + mime_input_buf(mime_input_state.last++) = (unsigned char)cc; + cc = ((t2 << 4) & 0x0f0) | ((t3 >> 2) & 0x0f); + if (c3 != '=') { + mime_input_buf(mime_input_state.last++) = (unsigned char)cc; + cc = ((t3 << 6) & 0x0c0) | (t4 & 0x3f); + if (c4 != '=') + mime_input_buf(mime_input_state.last++) = (unsigned char)cc; + } + } else { + return c1; + } + return mime_input_buf(mime_input_state.top++); +} + +static const char basis_64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +#define MIMEOUT_BUF_LENGTH 74 +static struct { + unsigned char buf[MIMEOUT_BUF_LENGTH+1]; + int count; +} mimeout_state; + +/*nkf_char mime_lastchar2, mime_lastchar1;*/ + +static void +open_mime(nkf_char mode) +{ + const unsigned char *p; + int i; + int j; + p = mime_pattern[0]; + for(i=0;mime_pattern[i];i++) { + if (mode == mime_encode[i]) { + p = mime_pattern[i]; + break; + } + } + mimeout_mode = mime_encode_method[i]; + i = 0; + if (base64_count>45) { + if (mimeout_state.count>0 && nkf_isblank(mimeout_state.buf[i])){ + (*o_mputc)(mimeout_state.buf[i]); + i++; + } + put_newline(o_mputc); + (*o_mputc)(SP); + base64_count = 1; + if (mimeout_state.count>0 && nkf_isspace(mimeout_state.buf[i])) { + i++; + } + } + for (;i 0){ + if (c2 == EOF){ + if (base64_count + mimeout_state.count/3*4> 73){ + (*o_base64conv)(EOF,0); + oconv_newline(o_base64conv); + (*o_base64conv)(0,SP); + base64_count = 1; + } + } else { + if ((c2 != 0 || c1 > DEL) && base64_count + mimeout_state.count/3*4> 66) { + (*o_base64conv)(EOF,0); + oconv_newline(o_base64conv); + (*o_base64conv)(0,SP); + base64_count = 1; + mimeout_mode = -1; + } + } + } else if (c2) { + if (c2 != EOF && base64_count + mimeout_state.count/3*4> 60) { + mimeout_mode = (output_mode==ASCII ||output_mode == ISO_8859_1) ? 'Q' : 'B'; + open_mime(output_mode); + (*o_base64conv)(EOF,0); + oconv_newline(o_base64conv); + (*o_base64conv)(0,SP); + base64_count = 1; + mimeout_mode = -1; + } + } +} + +static void +close_mime(void) +{ + (*o_mputc)('?'); + (*o_mputc)('='); + base64_count += 2; + mimeout_mode = 0; +} + +static void +eof_mime(void) +{ + switch(mimeout_mode) { + case 'Q': + case 'B': + break; + case 2: + (*o_mputc)(basis_64[((nkf_state->mimeout_state & 0x3)<< 4)]); + (*o_mputc)('='); + (*o_mputc)('='); + base64_count += 3; + break; + case 1: + (*o_mputc)(basis_64[((nkf_state->mimeout_state & 0xF) << 2)]); + (*o_mputc)('='); + base64_count += 2; + break; + } + if (mimeout_mode > 0) { + if (mimeout_f!=FIXED_MIME) { + close_mime(); + } else if (mimeout_mode != 'Q') + mimeout_mode = 'B'; + } +} + +static void +mimeout_addchar(nkf_char c) +{ + switch(mimeout_mode) { + case 'Q': + if (c==CR||c==LF) { + (*o_mputc)(c); + base64_count = 0; + } else if(!nkf_isalnum(c)) { + (*o_mputc)('='); + (*o_mputc)(bin2hex(((c>>4)&0xf))); + (*o_mputc)(bin2hex((c&0xf))); + base64_count += 3; + } else { + (*o_mputc)(c); + base64_count++; + } + break; + case 'B': + nkf_state->mimeout_state=c; + (*o_mputc)(basis_64[c>>2]); + mimeout_mode=2; + base64_count ++; + break; + case 2: + (*o_mputc)(basis_64[((nkf_state->mimeout_state & 0x3)<< 4) | ((c & 0xF0) >> 4)]); + nkf_state->mimeout_state=c; + mimeout_mode=1; + base64_count ++; + break; + case 1: + (*o_mputc)(basis_64[((nkf_state->mimeout_state & 0xF) << 2) | ((c & 0xC0) >>6)]); + (*o_mputc)(basis_64[c & 0x3F]); + mimeout_mode='B'; + base64_count += 2; + break; + default: + (*o_mputc)(c); + base64_count++; + break; + } +} + +static void +mime_putc(nkf_char c) +{ + int i, j; + nkf_char lastchar; + + if (mimeout_f == FIXED_MIME){ + if (mimeout_mode == 'Q'){ + if (base64_count > 71){ + if (c!=CR && c!=LF) { + (*o_mputc)('='); + put_newline(o_mputc); + } + base64_count = 0; + } + }else{ + if (base64_count > 71){ + eof_mime(); + put_newline(o_mputc); + base64_count = 0; + } + if (c == EOF) { /* c==EOF */ + eof_mime(); + } + } + if (c != EOF) { /* c==EOF */ + mimeout_addchar(c); + } + return; + } + + /* mimeout_f != FIXED_MIME */ + + if (c == EOF) { /* c==EOF */ + if (mimeout_mode == -1 && mimeout_state.count > 1) open_mime(output_mode); + j = mimeout_state.count; + mimeout_state.count = 0; + i = 0; + if (mimeout_mode > 0) { + if (!nkf_isblank(mimeout_state.buf[j-1])) { + for (;i 0){ + lastchar = mimeout_state.buf[mimeout_state.count - 1]; + }else{ + lastchar = -1; + } + + if (mimeout_mode=='Q') { + if (c <= DEL && (output_mode==ASCII ||output_mode == ISO_8859_1)) { + if (c == CR || c == LF) { + close_mime(); + (*o_mputc)(c); + base64_count = 0; + return; + } else if (c <= SP) { + close_mime(); + if (base64_count > 70) { + put_newline(o_mputc); + base64_count = 0; + } + if (!nkf_isblank(c)) { + (*o_mputc)(SP); + base64_count++; + } + } else { + if (base64_count > 70) { + close_mime(); + put_newline(o_mputc); + (*o_mputc)(SP); + base64_count = 1; + open_mime(output_mode); + } + if (!nkf_noescape_mime(c)) { + mimeout_addchar(c); + return; + } + } + if (c != 0x1B) { + (*o_mputc)(c); + base64_count++; + return; + } + } + } + + if (mimeout_mode <= 0) { + if (c <= DEL && (output_mode==ASCII || output_mode == ISO_8859_1 || + output_mode == UTF_8)) { + if (nkf_isspace(c)) { + int flag = 0; + if (mimeout_mode == -1) { + flag = 1; + } + if (c==CR || c==LF) { + if (flag) { + open_mime(output_mode); + output_mode = 0; + } else { + base64_count = 0; + } + } + for (i=0;i 1 + && base64_count + mimeout_state.count > 76 + && mimeout_state.buf[0] != CR && mimeout_state.buf[0] != LF){ + static const char *str = "boundary=\""; + static int len = 10; + i = 0; + + for (; i < mimeout_state.count - len; ++i) { + if (!strncmp((char *)(mimeout_state.buf+i), str, len)) { + i += len - 2; + break; + } + } + + if (i == 0 || i == mimeout_state.count - len) { + put_newline(o_mputc); + base64_count = 0; + if (!nkf_isspace(mimeout_state.buf[0])){ + (*o_mputc)(SP); + base64_count++; + } + } + else { + int j; + for (j = 0; j <= i; ++j) { + (*o_mputc)(mimeout_state.buf[j]); + } + put_newline(o_mputc); + base64_count = 1; + for (; j <= mimeout_state.count; ++j) { + mimeout_state.buf[j - i] = mimeout_state.buf[j]; + } + mimeout_state.count -= i; + } + } + mimeout_state.buf[mimeout_state.count++] = (char)c; + if (mimeout_state.count>MIMEOUT_BUF_LENGTH) { + open_mime(output_mode); + } + } + return; + }else{ + if (lastchar==CR || lastchar == LF){ + for (i=0;iMIMEOUT_BUF_LENGTH) { + eof_mime(); + for (i=0;i0 && SPMIMEOUT_BUF_LENGTH) { + j = mimeout_state.count; + mimeout_state.count = 0; + for (i=0;i0) { + j = mimeout_state.count; + mimeout_state.count = 0; + for (i=0;iinput_buffer_size = IOBUF_SIZE; + converter->input_buffer = nkf_xmalloc(converter->input_buffer_size); + converter->output_buffer_size = IOBUF_SIZE * 2; + converter->output_buffer = nkf_xmalloc(converter->output_buffer_size); + converter->cd = iconv_open(tocode, fromcode); + if (converter->cd == (iconv_t)-1) + { + switch (errno) { + case EINVAL: + perror(fprintf("iconv doesn't support %s to %s conversion.", fromcode, tocode)); + return -1; + default: + perror("can't iconv_open"); + } + } +} + +static size_t +nkf_iconv_convert(nkf_iconv_t *converter, FILE *input) +{ + size_t invalid = (size_t)0; + char *input_buffer = converter->input_buffer; + size_t input_length = (size_t)0; + char *output_buffer = converter->output_buffer; + size_t output_length = converter->output_buffer_size; + int c; + + do { + if (c != EOF) { + while ((c = (*i_getc)(f)) != EOF) { + input_buffer[input_length++] = c; + if (input_length < converter->input_buffer_size) break; + } + } + + size_t ret = iconv(converter->cd, &input_buffer, &input_length, &output_buffer, &output_length); + while (output_length-- > 0) { + (*o_putc)(output_buffer[converter->output_buffer_size-output_length]); + } + if (ret == (size_t) - 1) { + switch (errno) { + case EINVAL: + if (input_buffer != converter->input_buffer) + memmove(converter->input_buffer, input_buffer, input_length); + break; + case E2BIG: + converter->output_buffer_size *= 2; + output_buffer = realloc(converter->outbuf, converter->output_buffer_size); + if (output_buffer == NULL) { + perror("can't realloc"); + return -1; + } + converter->output_buffer = output_buffer; + break; + default: + perror("can't iconv"); + return -1; + } + } else { + invalid += ret; + } + } while (1); + + return invalid; +} + + +static void +nkf_iconv_close(nkf_iconv_t *convert) +{ + nkf_xfree(converter->inbuf); + nkf_xfree(converter->outbuf); + iconv_close(converter->cd); +} +#endif + + +static void +reinit(void) +{ + { + struct input_code *p = input_code_list; + while (p->name){ + status_reinit(p++); + } + } + unbuf_f = FALSE; + estab_f = FALSE; + nop_f = FALSE; + binmode_f = TRUE; + rot_f = FALSE; + hira_f = FALSE; + alpha_f = FALSE; + mime_f = MIME_DECODE_DEFAULT; + mime_decode_f = FALSE; + mimebuf_f = FALSE; + broken_f = FALSE; + iso8859_f = FALSE; + mimeout_f = FALSE; + x0201_f = NKF_UNSPECIFIED; + iso2022jp_f = FALSE; +#if defined(UTF8_INPUT_ENABLE) || defined(UTF8_OUTPUT_ENABLE) + ms_ucs_map_f = UCS_MAP_ASCII; +#endif +#ifdef UTF8_INPUT_ENABLE + no_cp932ext_f = FALSE; + no_best_fit_chars_f = FALSE; + encode_fallback = NULL; + unicode_subchar = '?'; + input_endian = ENDIAN_BIG; +#endif +#ifdef UTF8_OUTPUT_ENABLE + output_bom_f = FALSE; + output_endian = ENDIAN_BIG; +#endif +#ifdef UNICODE_NORMALIZATION + nfc_f = FALSE; +#endif +#ifdef INPUT_OPTION + cap_f = FALSE; + url_f = FALSE; + numchar_f = FALSE; +#endif +#ifdef CHECK_OPTION + noout_f = FALSE; + debug_f = FALSE; +#endif + guess_f = 0; +#ifdef EXEC_IO + exec_f = 0; +#endif +#ifdef SHIFTJIS_CP932 + cp51932_f = TRUE; + cp932inv_f = TRUE; +#endif +#ifdef X0212_ENABLE + x0212_f = FALSE; + x0213_f = FALSE; +#endif + { + int i; + for (i = 0; i < 256; i++){ + prefix_table[i] = 0; + } + } + hold_count = 0; + mimeout_state.count = 0; + mimeout_mode = 0; + base64_count = 0; + f_line = 0; + f_prev = 0; + fold_preserve_f = FALSE; + fold_f = FALSE; + fold_len = 0; + kanji_intro = DEFAULT_J; + ascii_intro = DEFAULT_R; + fold_margin = FOLD_MARGIN; + o_zconv = no_connection; + o_fconv = no_connection; + o_eol_conv = no_connection; + o_rot_conv = no_connection; + o_hira_conv = no_connection; + o_base64conv = no_connection; + o_iso2022jp_check_conv = no_connection; + o_putc = std_putc; + i_getc = std_getc; + i_ungetc = std_ungetc; + i_bgetc = std_getc; + i_bungetc = std_ungetc; + o_mputc = std_putc; + i_mgetc = std_getc; + i_mungetc = std_ungetc; + i_mgetc_buf = std_getc; + i_mungetc_buf = std_ungetc; + output_mode = ASCII; + input_mode = ASCII; + mime_decode_mode = FALSE; + file_out_f = FALSE; + eolmode_f = 0; + input_eol = 0; + prev_cr = 0; + option_mode = 0; + z_prev2=0,z_prev1=0; +#ifdef CHECK_OPTION + iconv_for_check = 0; +#endif + input_codename = NULL; + input_encoding = NULL; + output_encoding = NULL; + nkf_state_init(); +#ifdef WIN32DLL + reinitdll(); +#endif /*WIN32DLL*/ +} + +static int +module_connection(void) +{ + if (input_encoding) set_input_encoding(input_encoding); + if (!output_encoding) { + output_encoding = nkf_default_encoding(); + } + if (!output_encoding) { + if (noout_f || guess_f) output_encoding = nkf_enc_from_index(ISO_2022_JP); + else return -1; + } + set_output_encoding(output_encoding); + oconv = nkf_enc_to_oconv(output_encoding); + o_putc = std_putc; + if (nkf_enc_unicode_p(output_encoding)) + output_mode = UTF_8; + + if (x0201_f == NKF_UNSPECIFIED) { + x0201_f = X0201_DEFAULT; + } + + /* replace continucation module, from output side */ + + /* output redicrection */ +#ifdef CHECK_OPTION + if (noout_f || guess_f){ + o_putc = no_putc; + } +#endif + if (mimeout_f) { + o_mputc = o_putc; + o_putc = mime_putc; + if (mimeout_f == TRUE) { + o_base64conv = oconv; oconv = base64_conv; + } + /* base64_count = 0; */ + } + + if (eolmode_f || guess_f) { + o_eol_conv = oconv; oconv = eol_conv; + } + if (rot_f) { + o_rot_conv = oconv; oconv = rot_conv; + } + if (iso2022jp_f) { + o_iso2022jp_check_conv = oconv; oconv = iso2022jp_check_conv; + } + if (hira_f) { + o_hira_conv = oconv; oconv = hira_conv; + } + if (fold_f) { + o_fconv = oconv; oconv = fold_conv; + f_line = 0; + } + if (alpha_f || x0201_f) { + o_zconv = oconv; oconv = z_conv; + } + + i_getc = std_getc; + i_ungetc = std_ungetc; + /* input redicrection */ +#ifdef INPUT_OPTION + if (cap_f){ + i_cgetc = i_getc; i_getc = cap_getc; + i_cungetc = i_ungetc; i_ungetc= cap_ungetc; + } + if (url_f){ + i_ugetc = i_getc; i_getc = url_getc; + i_uungetc = i_ungetc; i_ungetc= url_ungetc; + } +#endif +#ifdef NUMCHAR_OPTION + if (numchar_f){ + i_ngetc = i_getc; i_getc = numchar_getc; + i_nungetc = i_ungetc; i_ungetc= numchar_ungetc; + } +#endif +#ifdef UNICODE_NORMALIZATION + if (nfc_f){ + i_nfc_getc = i_getc; i_getc = nfc_getc; + i_nfc_ungetc = i_ungetc; i_ungetc= nfc_ungetc; + } +#endif + if (mime_f && mimebuf_f==FIXED_MIME) { + i_mgetc = i_getc; i_getc = mime_getc; + i_mungetc = i_ungetc; i_ungetc = mime_ungetc; + } + if (broken_f & 1) { + i_bgetc = i_getc; i_getc = broken_getc; + i_bungetc = i_ungetc; i_ungetc = broken_ungetc; + } + if (input_encoding) { + set_iconv(-TRUE, nkf_enc_to_iconv(input_encoding)); + } else { + set_iconv(FALSE, e_iconv); + } + + { + struct input_code *p = input_code_list; + while (p->name){ + status_reinit(p++); + } + } + return 0; +} + +/* + Conversion main loop. Code detection only. + */ + +#if !defined(PERL_XS) && !defined(WIN32DLL) +static nkf_char +noconvert(FILE *f) +{ + nkf_char c; + + if (nop_f == 2) + module_connection(); + while ((c = (*i_getc)(f)) != EOF) + (*o_putc)(c); + (*o_putc)(EOF); + return 1; +} +#endif + +#define NEXT continue /* no output, get next */ +#define SKIP c2=0;continue /* no output, get next */ +#define MORE c2=c1;continue /* need one more byte */ +#define SEND (void)0 /* output c1 and c2, get next */ +#define LAST break /* end of loop, go closing */ +#define set_input_mode(mode) do { \ + input_mode = mode; \ + shift_mode = 0; \ + set_input_codename("ISO-2022-JP"); \ + debug("ISO-2022-JP"); \ +} while (0) + +static int +kanji_convert(FILE *f) +{ + nkf_char c1=0, c2=0, c3=0, c4=0; + int shift_mode = 0; /* 0, 1, 2, 3 */ + int g2 = 0; + int is_8bit = FALSE; + + if (input_encoding && !nkf_enc_asciicompat(input_encoding)) { + is_8bit = TRUE; + } + + input_mode = ASCII; + output_mode = ASCII; + + if (module_connection() < 0) { +#if !defined(PERL_XS) && !defined(WIN32DLL) + fprintf(stderr, "no output encoding given\n"); +#endif + return -1; + } + check_bom(f); + +#ifdef UTF8_INPUT_ENABLE + if(iconv == w_iconv32){ + while ((c1 = (*i_getc)(f)) != EOF && + (c2 = (*i_getc)(f)) != EOF && + (c3 = (*i_getc)(f)) != EOF && + (c4 = (*i_getc)(f)) != EOF) { + nkf_char c5, c6, c7, c8; + if (nkf_iconv_utf_32(c1, c2, c3, c4) == (size_t)NKF_ICONV_WAIT_COMBINING_CHAR) { + if ((c5 = (*i_getc)(f)) != EOF && + (c6 = (*i_getc)(f)) != EOF && + (c7 = (*i_getc)(f)) != EOF && + (c8 = (*i_getc)(f)) != EOF) { + if (nkf_iconv_utf_32_combine(c1, c2, c3, c4, c5, c6, c7, c8)) { + (*i_ungetc)(c8, f); + (*i_ungetc)(c7, f); + (*i_ungetc)(c6, f); + (*i_ungetc)(c5, f); + nkf_iconv_utf_32_nocombine(c1, c2, c3, c4); + } + } else { + nkf_iconv_utf_32_nocombine(c1, c2, c3, c4); + } + } + } + goto finished; + } + else if (iconv == w_iconv16) { + while ((c1 = (*i_getc)(f)) != EOF && + (c2 = (*i_getc)(f)) != EOF) { + size_t ret = nkf_iconv_utf_16(c1, c2, 0, 0); + if (ret == NKF_ICONV_NEED_TWO_MORE_BYTES && + (c3 = (*i_getc)(f)) != EOF && + (c4 = (*i_getc)(f)) != EOF) { + nkf_iconv_utf_16(c1, c2, c3, c4); + } else if (ret == (size_t)NKF_ICONV_WAIT_COMBINING_CHAR) { + if ((c3 = (*i_getc)(f)) != EOF && + (c4 = (*i_getc)(f)) != EOF) { + if (nkf_iconv_utf_16_combine(c1, c2, c3, c4)) { + (*i_ungetc)(c4, f); + (*i_ungetc)(c3, f); + nkf_iconv_utf_16_nocombine(c1, c2); + } + } else { + nkf_iconv_utf_16_nocombine(c1, c2); + } + } + } + goto finished; + } +#endif + + while ((c1 = (*i_getc)(f)) != EOF) { +#ifdef INPUT_CODE_FIX + if (!input_encoding) +#endif + code_status(c1); + if (c2) { + /* second byte */ + if (c2 > ((input_encoding && nkf_enc_cp5022x_p(input_encoding)) ? 0x92 : DEL)) { + /* in case of 8th bit is on */ + if (!estab_f&&!mime_decode_mode) { + /* in case of not established yet */ + /* It is still ambiguious */ + if (h_conv(f, c2, c1)==EOF) { + LAST; + } + else { + SKIP; + } + } + else { + /* in case of already established */ + if (c1 < 0x40) { + /* ignore bogus code */ + SKIP; + } else { + SEND; + } + } + } + else { + /* 2nd byte of 7 bit code or SJIS */ + SEND; + } + } + else if (nkf_char_unicode_p(c1)) { + (*oconv)(0, c1); + NEXT; + } + else { + /* first byte */ + if (input_mode == JIS_X_0208 && DEL <= c1 && c1 < 0x92) { + /* CP5022x */ + MORE; + }else if (input_codename && input_codename[0] == 'I' && + 0xA1 <= c1 && c1 <= 0xDF) { + /* JIS X 0201 Katakana in 8bit JIS */ + c2 = JIS_X_0201_1976_K; + c1 &= 0x7f; + SEND; + } else if (c1 > DEL) { + /* 8 bit code */ + if (!estab_f && !iso8859_f) { + /* not established yet */ + MORE; + } else { /* estab_f==TRUE */ + if (iso8859_f) { + c2 = ISO_8859_1; + c1 &= 0x7f; + SEND; + } + else if ((iconv == s_iconv && 0xA0 <= c1 && c1 <= 0xDF) || + (ms_ucs_map_f == UCS_MAP_CP10001 && (c1 == 0xFD || c1 == 0xFE))) { + /* JIS X 0201 */ + c2 = JIS_X_0201_1976_K; + c1 &= 0x7f; + SEND; + } + else { + /* already established */ + MORE; + } + } + } else if (SP < c1 && c1 < DEL) { + /* in case of Roman characters */ + if (shift_mode) { + /* output 1 shifted byte */ + if (iso8859_f) { + c2 = ISO_8859_1; + SEND; + } else if (nkf_byte_jisx0201_katakana_p(c1)){ + /* output 1 shifted byte */ + c2 = JIS_X_0201_1976_K; + SEND; + } else { + /* look like bogus code */ + SKIP; + } + } else if (input_mode == JIS_X_0208 || input_mode == JIS_X_0212 || + input_mode == JIS_X_0213_1 || input_mode == JIS_X_0213_2) { + /* in case of Kanji shifted */ + MORE; + } else if (c1 == '=' && mime_f && !mime_decode_mode) { + /* Check MIME code */ + if ((c1 = (*i_getc)(f)) == EOF) { + (*oconv)(0, '='); + LAST; + } else if (c1 == '?') { + /* =? is mime conversion start sequence */ + if(mime_f == STRICT_MIME) { + /* check in real detail */ + if (mime_begin_strict(f) == EOF) + LAST; + SKIP; + } else if (mime_begin(f) == EOF) + LAST; + SKIP; + } else { + (*oconv)(0, '='); + (*i_ungetc)(c1,f); + SKIP; + } + } else { + /* normal ASCII code */ + SEND; + } + } else if (c1 == SI && (!is_8bit || mime_decode_mode)) { + shift_mode = 0; + SKIP; + } else if (c1 == SO && (!is_8bit || mime_decode_mode)) { + shift_mode = 1; + SKIP; + } else if (c1 == ESC && (!is_8bit || mime_decode_mode)) { + if ((c1 = (*i_getc)(f)) == EOF) { + (*oconv)(0, ESC); + LAST; + } + else if (c1 == '&') { + /* IRR */ + if ((c1 = (*i_getc)(f)) == EOF) { + LAST; + } else { + SKIP; + } + } + else if (c1 == '$') { + /* GZDMx */ + if ((c1 = (*i_getc)(f)) == EOF) { + /* don't send bogus code + (*oconv)(0, ESC); + (*oconv)(0, '$'); */ + LAST; + } else if (c1 == '@' || c1 == 'B') { + /* JIS X 0208 */ + set_input_mode(JIS_X_0208); + SKIP; + } else if (c1 == '(') { + /* GZDM4 */ + if ((c1 = (*i_getc)(f)) == EOF) { + /* don't send bogus code + (*oconv)(0, ESC); + (*oconv)(0, '$'); + (*oconv)(0, '('); + */ + LAST; + } else if (c1 == '@'|| c1 == 'B') { + /* JIS X 0208 */ + set_input_mode(JIS_X_0208); + SKIP; +#ifdef X0212_ENABLE + } else if (c1 == 'D'){ + set_input_mode(JIS_X_0212); + SKIP; +#endif /* X0212_ENABLE */ + } else if (c1 == 'O' || c1 == 'Q'){ + set_input_mode(JIS_X_0213_1); + SKIP; + } else if (c1 == 'P'){ + set_input_mode(JIS_X_0213_2); + SKIP; + } else { + /* could be some special code */ + (*oconv)(0, ESC); + (*oconv)(0, '$'); + (*oconv)(0, '('); + (*oconv)(0, c1); + SKIP; + } + } else if (broken_f&0x2) { + /* accept any ESC-(-x as broken code ... */ + input_mode = JIS_X_0208; + shift_mode = 0; + SKIP; + } else { + (*oconv)(0, ESC); + (*oconv)(0, '$'); + (*oconv)(0, c1); + SKIP; + } + } else if (c1 == '(') { + /* GZD4 */ + if ((c1 = (*i_getc)(f)) == EOF) { + /* don't send bogus code + (*oconv)(0, ESC); + (*oconv)(0, '('); */ + LAST; + } + else if (c1 == 'I') { + /* JIS X 0201 Katakana */ + set_input_mode(JIS_X_0201_1976_K); + shift_mode = 1; + SKIP; + } + else if (c1 == 'B' || c1 == 'J' || c1 == 'H') { + /* ISO-646IRV:1983 or JIS X 0201 Roman or JUNET */ + set_input_mode(ASCII); + SKIP; + } + else if (broken_f&0x2) { + set_input_mode(ASCII); + SKIP; + } + else { + (*oconv)(0, ESC); + (*oconv)(0, '('); + SEND; + } + } + else if (c1 == '.') { + /* G2D6 */ + if ((c1 = (*i_getc)(f)) == EOF) { + LAST; + } + else if (c1 == 'A') { + /* ISO-8859-1 */ + g2 = ISO_8859_1; + SKIP; + } + else { + (*oconv)(0, ESC); + (*oconv)(0, '.'); + SEND; + } + } + else if (c1 == 'N') { + /* SS2 */ + c1 = (*i_getc)(f); + if (g2 == ISO_8859_1) { + c2 = ISO_8859_1; + SEND; + }else{ + (*i_ungetc)(c1, f); + /* lonely ESC */ + (*oconv)(0, ESC); + SEND; + } + } + else { + i_ungetc(c1,f); + /* lonely ESC */ + (*oconv)(0, ESC); + SKIP; + } + } else if (c1 == ESC && iconv == s_iconv) { + /* ESC in Shift_JIS */ + if ((c1 = (*i_getc)(f)) == EOF) { + (*oconv)(0, ESC); + LAST; + } else if (c1 == '$') { + /* J-PHONE emoji */ + if ((c1 = (*i_getc)(f)) == EOF) { + LAST; + } else if (('E' <= c1 && c1 <= 'G') || + ('O' <= c1 && c1 <= 'Q')) { + /* + NUM : 0 1 2 3 4 5 + BYTE: G E F O P Q + C%7 : 1 6 0 2 3 4 + C%7 : 0 1 2 3 4 5 6 + NUM : 2 0 3 4 5 X 1 + */ + static const nkf_char jphone_emoji_first_table[7] = + {0xE1E0, 0xDFE0, 0xE2E0, 0xE3E0, 0xE4E0, 0xDFE0, 0xE0E0}; + c3 = nkf_char_unicode_new(jphone_emoji_first_table[c1 % 7]); + if ((c1 = (*i_getc)(f)) == EOF) LAST; + while (SP <= c1 && c1 <= 'z') { + (*oconv)(0, c1 + c3); + if ((c1 = (*i_getc)(f)) == EOF) LAST; + } + SKIP; + } + else { + (*oconv)(0, ESC); + (*oconv)(0, '$'); + SEND; + } + } + else { + i_ungetc(c1,f); + /* lonely ESC */ + (*oconv)(0, ESC); + SKIP; + } + } else if (c1 == LF || c1 == CR) { + if (broken_f&4) { + input_mode = ASCII; set_iconv(FALSE, 0); + SEND; + } else if (mime_decode_f && !mime_decode_mode){ + if (c1 == LF) { + if ((c1=(*i_getc)(f))!=EOF && c1 == SP) { + i_ungetc(SP,f); + continue; + } else { + i_ungetc(c1,f); + } + c1 = LF; + SEND; + } else { /* if (c1 == CR)*/ + if ((c1=(*i_getc)(f))!=EOF) { + if (c1==SP) { + i_ungetc(SP,f); + continue; + } else if (c1 == LF && (c1=(*i_getc)(f))!=EOF && c1 == SP) { + i_ungetc(SP,f); + continue; + } else { + i_ungetc(c1,f); + } + i_ungetc(LF,f); + } else { + i_ungetc(c1,f); + } + c1 = CR; + SEND; + } + } + } else + SEND; + } + /* send: */ + switch(input_mode){ + case ASCII: + switch ((*iconv)(c2, c1, 0)) { /* can be EUC / SJIS / UTF-8 */ + case -2: + /* 4 bytes UTF-8 */ + if ((c3 = (*i_getc)(f)) != EOF) { + code_status(c3); + c3 <<= 8; + if ((c4 = (*i_getc)(f)) != EOF) { + code_status(c4); + (*iconv)(c2, c1, c3|c4); + } + } + break; + case -3: + /* 4 bytes UTF-8 (check combining character) */ + if ((c3 = (*i_getc)(f)) != EOF) { + if ((c4 = (*i_getc)(f)) != EOF) { + if (w_iconv_combine(c2, c1, 0, c3, c4, 0)) { + (*i_ungetc)(c4, f); + (*i_ungetc)(c3, f); + w_iconv_nocombine(c2, c1, 0); + } + } else { + (*i_ungetc)(c3, f); + w_iconv_nocombine(c2, c1, 0); + } + } else { + w_iconv_nocombine(c2, c1, 0); + } + break; + case -1: + /* 3 bytes EUC or UTF-8 */ + if ((c3 = (*i_getc)(f)) != EOF) { + code_status(c3); + if ((*iconv)(c2, c1, c3) == -3) { + /* 6 bytes UTF-8 (check combining character) */ + nkf_char c5, c6; + if ((c4 = (*i_getc)(f)) != EOF) { + if ((c5 = (*i_getc)(f)) != EOF) { + if ((c6 = (*i_getc)(f)) != EOF) { + if (w_iconv_combine(c2, c1, c3, c4, c5, c6)) { + (*i_ungetc)(c6, f); + (*i_ungetc)(c5, f); + (*i_ungetc)(c4, f); + w_iconv_nocombine(c2, c1, c3); + } + } else { + (*i_ungetc)(c5, f); + (*i_ungetc)(c4, f); + w_iconv_nocombine(c2, c1, c3); + } + } else { + (*i_ungetc)(c4, f); + w_iconv_nocombine(c2, c1, c3); + } + } else { + w_iconv_nocombine(c2, c1, c3); + } + } + } + break; + } + break; + case JIS_X_0208: + case JIS_X_0213_1: + if (ms_ucs_map_f && + 0x7F <= c2 && c2 <= 0x92 && + 0x21 <= c1 && c1 <= 0x7E) { + /* CP932 UDC */ + c1 = nkf_char_unicode_new((c2 - 0x7F) * 94 + c1 - 0x21 + 0xE000); + c2 = 0; + } + (*oconv)(c2, c1); /* this is JIS, not SJIS/EUC case */ + break; +#ifdef X0212_ENABLE + case JIS_X_0212: + (*oconv)(PREFIX_EUCG3 | c2, c1); + break; +#endif /* X0212_ENABLE */ + case JIS_X_0213_2: + (*oconv)(PREFIX_EUCG3 | c2, c1); + break; + default: + (*oconv)(input_mode, c1); /* other special case */ + } + + c2 = 0; + c3 = 0; + continue; + /* goto next_word */ + } + +finished: + /* epilogue */ + (*iconv)(EOF, 0, 0); + if (!input_codename) + { + if (is_8bit) { + struct input_code *p = input_code_list; + struct input_code *result = p; + while (p->name){ + if (p->score < result->score) result = p; + ++p; + } + set_input_codename(result->name); +#ifdef CHECK_OPTION + debug(result->name); +#endif + } + } + return 0; +} + +/* + * int options(unsigned char *cp) + * + * return values: + * 0: success + * -1: ArgumentError + */ +static int +options(unsigned char *cp) +{ + nkf_char i, j; + unsigned char *p; + unsigned char *cp_back = NULL; + nkf_encoding *enc; + + if (option_mode==1) + return 0; + while(*cp && *cp++!='-'); + while (*cp || cp_back) { + if(!*cp){ + cp = cp_back; + cp_back = NULL; + continue; + } + p = 0; + switch (*cp++) { + case '-': /* literal options */ + if (!*cp || *cp == SP) { /* ignore the rest of arguments */ + option_mode = 1; + return 0; + } + for (i=0;i<(int)(sizeof(long_option)/sizeof(long_option[0]));i++) { + p = (unsigned char *)long_option[i].name; + for (j=0;*p && *p != '=' && *p == cp[j];p++, j++); + if (*p == cp[j] || cp[j] == SP){ + p = &cp[j] + 1; + break; + } + p = 0; + } + if (p == 0) { +#if !defined(PERL_XS) && !defined(WIN32DLL) + fprintf(stderr, "unknown long option: --%s\n", cp); +#endif + return -1; + } + while(*cp && *cp != SP && cp++); + if (long_option[i].alias[0]){ + cp_back = cp; + cp = (unsigned char *)long_option[i].alias; + }else{ +#ifndef PERL_XS + if (strcmp(long_option[i].name, "help") == 0){ + usage(); + exit(EXIT_SUCCESS); + } +#endif + if (strcmp(long_option[i].name, "ic=") == 0){ + enc = nkf_enc_find((char *)p); + if (!enc) continue; + input_encoding = enc; + continue; + } + if (strcmp(long_option[i].name, "oc=") == 0){ + enc = nkf_enc_find((char *)p); + /* if (enc <= 0) continue; */ + if (!enc) continue; + output_encoding = enc; + continue; + } + if (strcmp(long_option[i].name, "guess=") == 0){ + if (p[0] == '0' || p[0] == '1') { + guess_f = 1; + } else { + guess_f = 2; + } + continue; + } +#ifdef OVERWRITE + if (strcmp(long_option[i].name, "overwrite") == 0){ + file_out_f = TRUE; + overwrite_f = TRUE; + preserve_time_f = TRUE; + continue; + } + if (strcmp(long_option[i].name, "overwrite=") == 0){ + file_out_f = TRUE; + overwrite_f = TRUE; + preserve_time_f = TRUE; + backup_f = TRUE; + backup_suffix = (char *)p; + continue; + } + if (strcmp(long_option[i].name, "in-place") == 0){ + file_out_f = TRUE; + overwrite_f = TRUE; + preserve_time_f = FALSE; + continue; + } + if (strcmp(long_option[i].name, "in-place=") == 0){ + file_out_f = TRUE; + overwrite_f = TRUE; + preserve_time_f = FALSE; + backup_f = TRUE; + backup_suffix = (char *)p; + continue; + } +#endif +#ifdef INPUT_OPTION + if (strcmp(long_option[i].name, "cap-input") == 0){ + cap_f = TRUE; + continue; + } + if (strcmp(long_option[i].name, "url-input") == 0){ + url_f = TRUE; + continue; + } +#endif +#ifdef NUMCHAR_OPTION + if (strcmp(long_option[i].name, "numchar-input") == 0){ + numchar_f = TRUE; + continue; + } +#endif +#ifdef CHECK_OPTION + if (strcmp(long_option[i].name, "no-output") == 0){ + noout_f = TRUE; + continue; + } + if (strcmp(long_option[i].name, "debug") == 0){ + debug_f = TRUE; + continue; + } +#endif + if (strcmp(long_option[i].name, "cp932") == 0){ +#ifdef SHIFTJIS_CP932 + cp51932_f = TRUE; + cp932inv_f = -TRUE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_CP932; +#endif + continue; + } + if (strcmp(long_option[i].name, "no-cp932") == 0){ +#ifdef SHIFTJIS_CP932 + cp51932_f = FALSE; + cp932inv_f = FALSE; +#endif +#ifdef UTF8_OUTPUT_ENABLE + ms_ucs_map_f = UCS_MAP_ASCII; +#endif + continue; + } +#ifdef SHIFTJIS_CP932 + if (strcmp(long_option[i].name, "cp932inv") == 0){ + cp932inv_f = -TRUE; + continue; + } +#endif + +#ifdef X0212_ENABLE + if (strcmp(long_option[i].name, "x0212") == 0){ + x0212_f = TRUE; + continue; + } +#endif + +#ifdef EXEC_IO + if (strcmp(long_option[i].name, "exec-in") == 0){ + exec_f = 1; + return 0; + } + if (strcmp(long_option[i].name, "exec-out") == 0){ + exec_f = -1; + return 0; + } +#endif +#if defined(UTF8_OUTPUT_ENABLE) && defined(UTF8_INPUT_ENABLE) + if (strcmp(long_option[i].name, "no-cp932ext") == 0){ + no_cp932ext_f = TRUE; + continue; + } + if (strcmp(long_option[i].name, "no-best-fit-chars") == 0){ + no_best_fit_chars_f = TRUE; + continue; + } + if (strcmp(long_option[i].name, "fb-skip") == 0){ + encode_fallback = NULL; + continue; + } + if (strcmp(long_option[i].name, "fb-html") == 0){ + encode_fallback = encode_fallback_html; + continue; + } + if (strcmp(long_option[i].name, "fb-xml") == 0){ + encode_fallback = encode_fallback_xml; + continue; + } + if (strcmp(long_option[i].name, "fb-java") == 0){ + encode_fallback = encode_fallback_java; + continue; + } + if (strcmp(long_option[i].name, "fb-perl") == 0){ + encode_fallback = encode_fallback_perl; + continue; + } + if (strcmp(long_option[i].name, "fb-subchar") == 0){ + encode_fallback = encode_fallback_subchar; + continue; + } + if (strcmp(long_option[i].name, "fb-subchar=") == 0){ + encode_fallback = encode_fallback_subchar; + unicode_subchar = 0; + if (p[0] != '0'){ + /* decimal number */ + for (i = 0; i < 7 && nkf_isdigit(p[i]); i++){ + unicode_subchar *= 10; + unicode_subchar += hex2bin(p[i]); + } + }else if(p[1] == 'x' || p[1] == 'X'){ + /* hexadecimal number */ + for (i = 2; i < 8 && nkf_isxdigit(p[i]); i++){ + unicode_subchar <<= 4; + unicode_subchar |= hex2bin(p[i]); + } + }else{ + /* octal number */ + for (i = 1; i < 8 && nkf_isoctal(p[i]); i++){ + unicode_subchar *= 8; + unicode_subchar += hex2bin(p[i]); + } + } + w16e_conv(unicode_subchar, &i, &j); + unicode_subchar = i<<8 | j; + continue; + } +#endif +#ifdef UTF8_OUTPUT_ENABLE + if (strcmp(long_option[i].name, "ms-ucs-map") == 0){ + ms_ucs_map_f = UCS_MAP_MS; + continue; + } +#endif +#ifdef UNICODE_NORMALIZATION + if (strcmp(long_option[i].name, "utf8mac-input") == 0){ + nfc_f = TRUE; + continue; + } +#endif + if (strcmp(long_option[i].name, "prefix=") == 0){ + if (nkf_isgraph(p[0])){ + for (i = 1; nkf_isgraph(p[i]); i++){ + prefix_table[p[i]] = p[0]; + } + } + continue; + } +#if !defined(PERL_XS) && !defined(WIN32DLL) + fprintf(stderr, "unsupported long option: --%s\n", long_option[i].name); +#endif + return -1; + } + continue; + case 'b': /* buffered mode */ + unbuf_f = FALSE; + continue; + case 'u': /* non bufferd mode */ + unbuf_f = TRUE; + continue; + case 't': /* transparent mode */ + if (*cp=='1') { + /* alias of -t */ + cp++; + nop_f = TRUE; + } else if (*cp=='2') { + /* + * -t with put/get + * + * nkf -t2MB hoge.bin | nkf -t2mB | diff -s - hoge.bin + * + */ + cp++; + nop_f = 2; + } else + nop_f = TRUE; + continue; + case 'j': /* JIS output */ + case 'n': + output_encoding = nkf_enc_from_index(ISO_2022_JP); + continue; + case 'e': /* AT&T EUC output */ + output_encoding = nkf_enc_from_index(EUCJP_NKF); + continue; + case 's': /* SJIS output */ + output_encoding = nkf_enc_from_index(SHIFT_JIS); + continue; + case 'l': /* ISO8859 Latin-1 support, no conversion */ + iso8859_f = TRUE; /* Only compatible with ISO-2022-JP */ + input_encoding = nkf_enc_from_index(ISO_8859_1); + continue; + case 'i': /* Kanji IN ESC-$-@/B */ + if (*cp=='@'||*cp=='B') + kanji_intro = *cp++; + continue; + case 'o': /* ASCII IN ESC-(-J/B/H */ + /* ESC ( H was used in initial JUNET messages */ + if (*cp=='J'||*cp=='B'||*cp=='H') + ascii_intro = *cp++; + continue; + case 'h': + /* + bit:1 katakana->hiragana + bit:2 hiragana->katakana + */ + if ('9'>= *cp && *cp>='0') + hira_f |= (*cp++ -'0'); + else + hira_f |= 1; + continue; + case 'r': + rot_f = TRUE; + continue; +#if defined(MSDOS) || defined(__OS2__) + case 'T': + binmode_f = FALSE; + continue; +#endif +#ifndef PERL_XS + case 'V': + show_configuration(); + exit(EXIT_SUCCESS); + break; + case 'v': + version(); + exit(EXIT_SUCCESS); + break; +#endif +#ifdef UTF8_OUTPUT_ENABLE + case 'w': /* UTF-{8,16,32} output */ + if (cp[0] == '8') { + cp++; + if (cp[0] == '0'){ + cp++; + output_encoding = nkf_enc_from_index(UTF_8N); + } else { + output_bom_f = TRUE; + output_encoding = nkf_enc_from_index(UTF_8_BOM); + } + } else { + int enc_idx; + if ('1'== cp[0] && '6'==cp[1]) { + cp += 2; + enc_idx = UTF_16; + } else if ('3'== cp[0] && '2'==cp[1]) { + cp += 2; + enc_idx = UTF_32; + } else { + output_encoding = nkf_enc_from_index(UTF_8); + continue; + } + if (cp[0]=='L') { + cp++; + output_endian = ENDIAN_LITTLE; + output_bom_f = TRUE; + } else if (cp[0] == 'B') { + cp++; + output_bom_f = TRUE; + } + if (cp[0] == '0'){ + output_bom_f = FALSE; + cp++; + enc_idx = enc_idx == UTF_16 + ? (output_endian == ENDIAN_LITTLE ? UTF_16LE : UTF_16BE) + : (output_endian == ENDIAN_LITTLE ? UTF_32LE : UTF_32BE); + } else { + enc_idx = enc_idx == UTF_16 + ? (output_endian == ENDIAN_LITTLE ? UTF_16LE_BOM : UTF_16BE_BOM) + : (output_endian == ENDIAN_LITTLE ? UTF_32LE_BOM : UTF_32BE_BOM); + } + output_encoding = nkf_enc_from_index(enc_idx); + } + continue; +#endif +#ifdef UTF8_INPUT_ENABLE + case 'W': /* UTF input */ + if (cp[0] == '8') { + cp++; + input_encoding = nkf_enc_from_index(UTF_8); + }else{ + int enc_idx; + if ('1'== cp[0] && '6'==cp[1]) { + cp += 2; + input_endian = ENDIAN_BIG; + enc_idx = UTF_16; + } else if ('3'== cp[0] && '2'==cp[1]) { + cp += 2; + input_endian = ENDIAN_BIG; + enc_idx = UTF_32; + } else { + input_encoding = nkf_enc_from_index(UTF_8); + continue; + } + if (cp[0]=='L') { + cp++; + input_endian = ENDIAN_LITTLE; + } else if (cp[0] == 'B') { + cp++; + input_endian = ENDIAN_BIG; + } + enc_idx = (enc_idx == UTF_16 + ? (input_endian == ENDIAN_LITTLE ? UTF_16LE : UTF_16BE) + : (input_endian == ENDIAN_LITTLE ? UTF_32LE : UTF_32BE)); + input_encoding = nkf_enc_from_index(enc_idx); + } + continue; +#endif + /* Input code assumption */ + case 'J': /* ISO-2022-JP input */ + input_encoding = nkf_enc_from_index(ISO_2022_JP); + continue; + case 'E': /* EUC-JP input */ + input_encoding = nkf_enc_from_index(EUCJP_NKF); + continue; + case 'S': /* Shift_JIS input */ + input_encoding = nkf_enc_from_index(SHIFT_JIS); + continue; + case 'Z': /* Convert X0208 alphabet to asii */ + /* alpha_f + bit:0 Convert JIS X 0208 Alphabet to ASCII + bit:1 Convert Kankaku to one space + bit:2 Convert Kankaku to two spaces + bit:3 Convert HTML Entity + bit:4 Convert JIS X 0208 Katakana to JIS X 0201 Katakana + */ + while ('0'<= *cp && *cp <='4') { + alpha_f |= 1 << (*cp++ - '0'); + } + alpha_f |= 1; + continue; + case 'x': /* Convert X0201 kana to X0208 or X0201 Conversion */ + x0201_f = FALSE; /* No X0201->X0208 conversion */ + /* accept X0201 + ESC-(-I in JIS, EUC, MS Kanji + SI/SO in JIS, EUC, MS Kanji + SS2 in EUC, JIS, not in MS Kanji + MS Kanji (0xa0-0xdf) + output X0201 + ESC-(-I in JIS (0x20-0x5f) + SS2 in EUC (0xa0-0xdf) + 0xa0-0xd in MS Kanji (0xa0-0xdf) + */ + continue; + case 'X': /* Convert X0201 kana to X0208 */ + x0201_f = TRUE; + continue; + case 'F': /* prserve new lines */ + fold_preserve_f = TRUE; + case 'f': /* folding -f60 or -f */ + fold_f = TRUE; + fold_len = 0; + while('0'<= *cp && *cp <='9') { /* we don't use atoi here */ + fold_len *= 10; + fold_len += *cp++ - '0'; + } + if (!(0= *cp && *cp>='0') + broken_f |= 1<<(*cp++ -'0'); + else + broken_f |= TRUE; + continue; +#ifndef PERL_XS + case 'O':/* for Output file */ + file_out_f = TRUE; + continue; +#endif + case 'c':/* add cr code */ + eolmode_f = CRLF; + continue; + case 'd':/* delete cr code */ + eolmode_f = LF; + continue; + case 'I': /* ISO-2022-JP output */ + iso2022jp_f = TRUE; + continue; + case 'L': /* line mode */ + if (*cp=='u') { /* unix */ + eolmode_f = LF; cp++; + } else if (*cp=='m') { /* mac */ + eolmode_f = CR; cp++; + } else if (*cp=='w') { /* windows */ + eolmode_f = CRLF; cp++; + } else if (*cp=='0') { /* no conversion */ + eolmode_f = 0; cp++; + } + continue; +#ifndef PERL_XS + case 'g': + if ('2' <= *cp && *cp <= '9') { + guess_f = 2; + cp++; + } else if (*cp == '0' || *cp == '1') { + guess_f = 1; + cp++; + } else { + guess_f = 1; + } + continue; +#endif + case SP: + /* module muliple options in a string are allowed for Perl moudle */ + while(*cp && *cp++!='-'); + continue; + default: +#if !defined(PERL_XS) && !defined(WIN32DLL) + fprintf(stderr, "unknown option: -%c\n", *(cp-1)); +#endif + /* bogus option but ignored */ + return -1; + } + } + return 0; +} + +#ifdef WIN32DLL +#include "nkf32dll.c" +#elif defined(PERL_XS) +#else /* WIN32DLL */ +int +main(int argc, char **argv) +{ + FILE *fin; + unsigned char *cp; + + char *outfname = NULL; + char *origfname; + +#ifdef EASYWIN /*Easy Win */ + _BufferSize.y = 400;/*Set Scroll Buffer Size*/ +#endif +#ifdef DEFAULT_CODE_LOCALE + setlocale(LC_CTYPE, ""); +#endif + nkf_state_init(); + + for (argc--,argv++; (argc > 0) && **argv == '-'; argc--, argv++) { + cp = (unsigned char *)*argv; + options(cp); +#ifdef EXEC_IO + if (exec_f){ + int fds[2], pid; + if (pipe(fds) < 0 || (pid = fork()) < 0){ + abort(); + } + if (pid == 0){ + if (exec_f > 0){ + close(fds[0]); + dup2(fds[1], 1); + }else{ + close(fds[1]); + dup2(fds[0], 0); + } + execvp(argv[1], &argv[1]); + } + if (exec_f > 0){ + close(fds[1]); + dup2(fds[0], 0); + }else{ + close(fds[0]); + dup2(fds[1], 1); + } + argc = 0; + break; + } +#endif + } + + if (guess_f) { +#ifdef CHECK_OPTION + int debug_f_back = debug_f; +#endif +#ifdef EXEC_IO + int exec_f_back = exec_f; +#endif +#ifdef X0212_ENABLE + int x0212_f_back = x0212_f; +#endif + int x0213_f_back = x0213_f; + int guess_f_back = guess_f; + reinit(); + guess_f = guess_f_back; + mime_f = FALSE; +#ifdef CHECK_OPTION + debug_f = debug_f_back; +#endif +#ifdef EXEC_IO + exec_f = exec_f_back; +#endif + x0212_f = x0212_f_back; + x0213_f = x0213_f_back; + } + + if (binmode_f == TRUE) +#if defined(__OS2__) && (defined(__IBMC__) || defined(__IBMCPP__)) + if (freopen("","wb",stdout) == NULL) + return (-1); +#else + setbinmode(stdout); +#endif + + if (unbuf_f) + setbuf(stdout, (char *) NULL); + else + setvbuffer(stdout, (char *) stdobuf, IOBUF_SIZE); + + if (argc == 0) { + if (binmode_f == TRUE) +#if defined(__OS2__) && (defined(__IBMC__) || defined(__IBMCPP__)) + if (freopen("","rb",stdin) == NULL) return (-1); +#else + setbinmode(stdin); +#endif + setvbuffer(stdin, (char *) stdibuf, IOBUF_SIZE); + if (nop_f) + noconvert(stdin); + else { + kanji_convert(stdin); + if (guess_f) print_guessed_code(NULL); + } + } else { + int nfiles = argc; + int is_argument_error = FALSE; + while (argc--) { + input_codename = NULL; + input_eol = 0; +#ifdef CHECK_OPTION + iconv_for_check = 0; +#endif + if ((fin = fopen((origfname = *argv++), "r")) == NULL) { + perror(*(argv-1)); + is_argument_error = TRUE; + continue; + } else { +#ifdef OVERWRITE + int fd = 0; + int fd_backup = 0; +#endif + + /* reopen file for stdout */ + if (file_out_f == TRUE) { +#ifdef OVERWRITE + if (overwrite_f){ + outfname = nkf_xmalloc(strlen(origfname) + + strlen(".nkftmpXXXXXX") + + 1); + strcpy(outfname, origfname); +#ifdef MSDOS + { + int i; + for (i = strlen(outfname); i; --i){ + if (outfname[i - 1] == '/' + || outfname[i - 1] == '\\'){ + break; + } + } + outfname[i] = '\0'; + } + strcat(outfname, "ntXXXXXX"); + mktemp(outfname); + fd = open(outfname, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, + S_IREAD | S_IWRITE); +#else + strcat(outfname, ".nkftmpXXXXXX"); + fd = mkstemp(outfname); +#endif + if (fd < 0 + || (fd_backup = dup(fileno(stdout))) < 0 + || dup2(fd, fileno(stdout)) < 0 + ){ + perror(origfname); + return -1; + } + }else +#endif + if(argc == 1) { + outfname = *argv++; + argc--; + } else { + outfname = "nkf.out"; + } + + if(freopen(outfname, "w", stdout) == NULL) { + perror (outfname); + return (-1); + } + if (binmode_f == TRUE) { +#if defined(__OS2__) && (defined(__IBMC__) || defined(__IBMCPP__)) + if (freopen("","wb",stdout) == NULL) + return (-1); +#else + setbinmode(stdout); +#endif + } + } + if (binmode_f == TRUE) +#if defined(__OS2__) && (defined(__IBMC__) || defined(__IBMCPP__)) + if (freopen("","rb",fin) == NULL) + return (-1); +#else + setbinmode(fin); +#endif + setvbuffer(fin, (char *) stdibuf, IOBUF_SIZE); + if (nop_f) + noconvert(fin); + else { + char *filename = NULL; + kanji_convert(fin); + if (nfiles > 1) filename = origfname; + if (guess_f) print_guessed_code(filename); + } + fclose(fin); +#ifdef OVERWRITE + if (overwrite_f) { + struct stat sb; +#if defined(MSDOS) && !defined(__MINGW32__) && !defined(__WIN32__) && !defined(__WATCOMC__) && !defined(__EMX__) && !defined(__OS2__) && !defined(__DJGPP__) + time_t tb[2]; +#else + struct utimbuf tb; +#endif + + fflush(stdout); + close(fd); + if (dup2(fd_backup, fileno(stdout)) < 0){ + perror("dup2"); + } + if (stat(origfname, &sb)) { + fprintf(stderr, "Can't stat %s\n", origfname); + } + /* $B%Q!<%_%C%7%g%s$rI|85(B */ + if (chmod(outfname, sb.st_mode)) { + fprintf(stderr, "Can't set permission %s\n", outfname); + } + + /* $B%?%$%`%9%?%s%W$rI|85(B */ + if(preserve_time_f){ +#if defined(MSDOS) && !defined(__MINGW32__) && !defined(__WIN32__) && !defined(__WATCOMC__) && !defined(__EMX__) && !defined(__OS2__) && !defined(__DJGPP__) + tb[0] = tb[1] = sb.st_mtime; + if (utime(outfname, tb)) { + fprintf(stderr, "Can't set timestamp %s\n", outfname); + } +#else + tb.actime = sb.st_atime; + tb.modtime = sb.st_mtime; + if (utime(outfname, &tb)) { + fprintf(stderr, "Can't set timestamp %s\n", outfname); + } +#endif + } + if(backup_f){ + char *backup_filename = get_backup_filename(backup_suffix, origfname); +#ifdef MSDOS + unlink(backup_filename); +#endif + if (rename(origfname, backup_filename)) { + perror(backup_filename); + fprintf(stderr, "Can't rename %s to %s\n", + origfname, backup_filename); + } + nkf_xfree(backup_filename); + }else{ +#ifdef MSDOS + if (unlink(origfname)){ + perror(origfname); + } +#endif + } + if (rename(outfname, origfname)) { + perror(origfname); + fprintf(stderr, "Can't rename %s to %s\n", + outfname, origfname); + } + nkf_xfree(outfname); + } +#endif + } + } + if (is_argument_error) + return(-1); + } +#ifdef EASYWIN /*Easy Win */ + if (file_out_f == FALSE) + scanf("%d",&end_check); + else + fclose(stdout); +#else /* for Other OS */ + if (file_out_f == TRUE) + fclose(stdout); +#endif /*Easy Win */ + return (0); +} +#endif /* WIN32DLL */ diff --git a/nkf.doc b/nkf.doc new file mode 100644 index 0000000..c78171a --- /dev/null +++ b/nkf.doc @@ -0,0 +1,413 @@ +NAME + nkf - �ͥåȥ���Ѵ����������Ѵ��ե��륿 + +SYNOPSIS + nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [*file ...*] + +DESCRIPTION + nkf �ϥͥåȥ���ǥ᡼���˥塼�����ɤ߽񤭤򤹤뤿��˺��줿�����������ɤ��Ѵ��ե��륿�Ǥ��롣 + + ����nkf����ħ�Ȥ��Ƥϡ����ϴ��������ɷϤ�����Ū�ʼ�ưǧ����ǽ�����롣 + ���Τ��ᡢ���ѼԤϡ����ϴ��������ɷϤ����Ǥ��뤫���Τ�ʤ��Ƥ⡢���ϴ��������ɷϤΤ߻��ꤹ����ɤ����Ȥˤʤ롣 + ����������Ƚ�굡���ϡ�����Ū�ˤϴ����ǤϤʤ������̾�Υ˥塼����᡼��Υ�å������ˤĤ��Ƥϳμ¤�ư�������ʤ�ΤˤϤʤäƤ��롣 + + ���ߡ�nkf��ǧ���Ǥ������Ϥδ��������ɷϤϡ������� JIS ������ (ISO-2022-JP �˴�Ť����)��Shift_JIS (MS + ����������)�� ���ܸ� EUC (AT&T ������)��UTF-8��UTF-16 �Τ����줫�Ǥ��롣 ���Ϥ�����������ɷϤ⡢�����Ǥ��롣 + ���Ϥϡ��ե��������ꤷ�ʤ���С�ɸ�����ϤȤʤ롣 ���Ϥ�ɸ����ϤǤ��롣 + +OPTIONS + ����Ǥ��륪�ץ����ϡ��ʲ����̤ꡣ -mu �Τ褦��³���뤳�Ȥ��Ǥ��롣 + + -j JIS �����ɤ���Ϥ��롣 + + -e EUC �����ɤ���Ϥ��롣 + + -s Shift_JIS �����ɤ���Ϥ��롣 + + -w -w8[0] -w16[BL][0] + Unicode ����Ϥ��롣 + + -w -w80 + UTF8 �����ɤ���Ϥ��롣 (BOM ̵��) + + -w8 UTF8 �����ɤ���Ϥ��롣 + + -w16 -w16B0 + UTF16 �����ɤ���Ϥ��롣 (Big Endian / BOM ̵��) + + -w16B + UTF16 �����ɤ���Ϥ��롣 (Big Endian / BOM ͭ��) + + -w16L + UTF16 �����ɤ���Ϥ��롣 (Little Endian / BOM ͭ��) + + -w16L0 + UTF16 �����ɤ���Ϥ��롣 (Little Endian / BOM ̵��) + + -m[BQSN0] + MIME ����ɤ��롣(�ǥե����) ISO-2022-JP (B encode) �� ISO-8859-1 (Q encode) + �Τߤ���ɤ��롣 ISO-8859-1 (Latin-1) ����ɤ�����ϡ�-l �ե饰��ɬ�פǤ��롣 -m0 �Ǥ� MIME + ����ɤ��ʤ��� -mB, -mQ �Ǥϡ�BASE64, Q encode ����Ƥ����ΤȤ��ƽ������롣 + + -mB MIME base64 stream ����ɤ��롣 �إå��ʤɤϼ��������ȡ� + + -mQ MIME quoted stream ����ɤ��롣 + + -mS MIME �Υ����å��򸷤������� (�ǥե����) + + -mN MIME �Υ����å���ˤ����� + + -m0 MIME ����ɤ��ʤ��� + + -mS �ϡ���������Ƥȡ����θ��³�� encoded-text ��������������å����롣 -mN �ϡ����Ԥ��ڤ�줿 MIME + �ʤɤ���ɤ��롣���ɤ��ߤޤ�ʤ����Ȥ⤢�롣 + + -M[BQ] + MIME ���Ѵ����롣 + + -M �إå��������Ѵ����� + + -MB base64 stream ���Ѵ����� + + -MQ Quoted stream ���Ѵ����� + + -J -E -S -W + ���Ԥ�������ϥ����ɤ���������ꤹ�롣 + + -J ISO-2022-JP ���ꤹ�롣 + + -E ���ܸ� EUC (AT&T) ���ꤹ�롣 + + -S Shift_JIS ���ꤹ�롣 ������Ⱦ�ѥ��� (JIS X 0201 �Ҳ�̾) ���������롣 + + -W UTF-8 ���ꤹ�롣 + + -W8 UTF-8 ���ꤹ�롣 + + -W16 + UTF-16 (Little Endian)���ꤹ�롣 + + -W16B + UTF-16 (Big Endian)���ꤹ�롣 + + -W16L + UTF-16 (Little Endian)���ꤹ�롣 + + -x �̾浪���ʤ��롢������Ⱦ�ѥ��� (JIS X 0201 �Ҳ�̾) ���餤�������ѥ��� (JIS X 0208 �Ҳ�̾) + �ؤ��Ѵ���Ԥ鷺��Ⱦ�ѥ��ʤ���¸���롣 ���Ϥϡ�Shift_JIS �� 1byte ���ʡ�SO/SI��ESC-(-I, SSO + ������դ��롣 ���Ϥϡ����ܸ� EUC ��Ǥ� SSO��JIS ��������Ǥ� ESC-(-I ��ǥե���Ȥ��Ѥ��롣 + + -X ������Ⱦ�ѥ��� (JIS X 0201 �Ҳ�̾) �� ���������ѥ��� (JIS X 0208 �Ҳ�̾) �ؤ��Ѵ����롣 + + -B ���줿 (Broken) JIS �����ɡ� ESC ���ʤ��ʤä��Ȳ��ꤹ�롣 + + -B1 ESC-(, ESC-$ �Τ��ȤΥ����ɤ����ʤ� + + -B2 ���ԤΤ��Ȥ˶���Ū�� ASCII ���᤹ + + -f[*m*[-*n*]] + ��� *m* ʸ���ˤʤ�褦�ˡ��ޡ������ *n* �Ȥ��ƴ�ñ�������򤪤��ʤ��� �ǥե���Ȥ�ʸ������ 60���ޡ������ 10 �Ǥ��롣 + + -Z[0-3] + JIS X 0208 �ѿ����ȼ㴳�ε���� ASCII ���Ѵ����롣 �Ĥޤꡢ���Ѥ�Ⱦ�Ѥ��Ѵ����롣 + + -Z -Z0 + Convert X0208 alphabet to ASCII. + + -Z1 JIS X 0208 �»��ֳ֤� ASCII space ��Ĥ��Ѵ����롣 + + -Z2 JIS X 0208 �»��ֳ֤� ASCII space ��Ĥ��Ѵ����롣 + + -Z3 �䡢�㡢�ɡ������� >��<��"��& ���Ѵ����롣 + + -b �Хåե���󥰽��Ϥ�Ԥ���(�ǥե����) + + -u ���ϻ��ˡ��Хåե���󥰤��ʤ��� ssh localhost | nkf -u �Ȥ����褦�˻Ȥ��� + + -t ���⤷�ʤ��� + + -I ISO-2022-JP �ʳ��δ��������ɤ򢮤��Ѵ��� + + -i[@B] + JIS ������ؼ����륷�����󥹤���ꤹ�롣 + + -i@ JIS X 0208-1978 ���Ѥ��롣 + + -iB JIS X 0208-1983/1990 ���Ѥ��롣 + + -o[BJH] + 1 �Х��ȱѿ�ʸ�����åȤ�ؼ����륷�����󥹤���ꤹ�롣 + + -oB 1 �Х��ȱѿ�ʸ�����åȤȤ��� US-ASCII ���Ѥ��롣 + + -oJ 1 �Х��ȱѿ�ʸ�����åȤȤ��� JIS X 0201 Roman ���Ѥ��롣 + + -oH ESC ( H �Ͻ���� JUNET �����ɤǤΤ��Ѥ���줿��Τǡ����ߤϻȤäƤϤʤ�ʤ��� + + -r ROT13/47 ���Ѵ��򤹤롣 + + -g ��ưȽ�̤η�̤���Ϥ��ޤ��� + + -T �ƥ����ȥ⡼�ɤǽ��Ϥ��롣(MS-DOS ��ǤΤ߸��Ϥ����) + + -l 0x80-0xfe �Υ����ɤ� ISO-8859-1 (Latin-1) �Ȥ��ư����� JIS �����ɥ����ȥץåȤȤ��ȹ礻�ߤΤ�ͭ���� + -s, -e, -x �Ȥ�ξΩ���ʤ��� + + -O �ե�����˽��Ϥ��롣 UNIX �Ǥ����פʵ�ǽ���� Windows �� MSDOS �Ǥ�ɬ�פ餷���� + ľ��ΰ������Ǥʤ����Ǹ�Υե�����̾�����ϥե�����̾�Ȥʤ��񤭤���Ƥ��ޤ��Τ����ա� �ե�����̾���ʤ����� nkf.out�� + + -L[uwm] -d -c + ���ԥ����ɤ��Ѵ����롣 + + -Lu -d + unix (LF) + + -Lw -c + windows (CRLF) + + -Lm mac (CR) + + �ǥե���ȤǤ��Ѵ����ʤ��� + + --ic=> + ���ϡ����Ϥδ��������ɷϤ���ꤷ�ޤ��� + + ISO-2022-JP + ������ JIS �����ɡ�-j, -J ��Ʊ���� + + ISO-2022-JP-1 + RFC 2237 ������줿������ JIS X 0212 ��ޤࡣ + + ISO-2022-JP-3 + RFC 2237 ������줿������ JIS X 0213 ��ޤࡣ + + EUC-JP + EUC �����ɡ�-e, -E ��Ʊ���� + + EUC-JISX0213 + ʸ������� JIS X 0213:2000 ���Ѥ��� EUC-JP�� + + EUC-JIS-2004 + ʸ������� JIS X 0213:2004 ���Ѥ��� EUC-JP�� + + eucJP-ascii + �����ץ󥰥롼�����ܥ٥�����IJ�������� eucJP-ascii�� -x �����ۤΤ����˻��ꤵ��롣 + + eucJP-ms + �����ץ󥰥롼�����ܥ٥�����IJ�������� euc-JPms�� -x �����ۤΤ����˻��ꤵ��롣 + + CP51932 + Micorosft Code Page 51932�� -x �����ۤΤ����˻��ꤵ��롣 + + Shift_JIS + Shift_JIS�� -s, -S ��Ʊ���� + + Shift_JISX0213 + ʸ������� JIS X 0213:2000 ���Ѥ��� Shift_JIS�� + + Shift_JIS-2004 + ʸ������� JIS X 0213:2004 ���Ѥ��� Shift_JIS�� + + CP932 + Micorosft Code Page 932�� -x �����ۤΤ����˻��ꤵ��롣 + + UTF-8 UTF-8N + BOM ̵���� UTF-8�� -w, -W ��Ʊ���� + + UTF-8-BOM + BOM �դ��� UTF-8��-w8 �ޤ��� -W ��Ʊ���� + + UTF8-MAC + UTF8-MAC���ߴ�ʬ�򤵤줿�Ҥ餬�ʡ��������������礷�ޤ��� ���ϤΤߤ��б��Ǥ��� + + UTF-16 UTF-16BE-BOM + BOM ͭ��� Big Endian �� UTF-16�� -w16B, -W16B ��Ʊ���� + + UTF-16BE + BOM ̵���� Big Endian �� UTF-16�� -w16B0. -W16B ��Ʊ���� + + UTF-16LE-BOM + BOM ͭ��� Little Endian �� UTF-16�� -w16L, -W16L ��Ʊ���� + + UTF-16LE + BOM ̵���� Little Endian �� UTF-16�� -w16L0, -W16L ��Ʊ���� + + --fj --unix --mac --msdos --windows + �����Υ����ƥ��Ŭ�����Ѵ��򤷤ޤ��� + + --jis --euc --sjis --mime --base64 + �б������Ѵ��򤷤ޤ��� + + --hiragana --katakana + ʿ��̾���Ҳ�̾�Ѵ� + + --fb-{skip, html, xml, perl, java, subchar} + Unicode ���� Shift_JIS, EUC-JP, ISO-2022-JP + ���Ѵ�����ݤˡ��Ѵ��Ǥ��ʤ��ä�ʸ����ɤ������������Ǥ��ޤ��� + + --prefix=*escape character**target character*.. + EUC-JP ���� Shift_JIS �ؤ��Ѵ��κݡ�2 �Х����� �˸��줿ʸ�������˥���������ʸ����Ĥ��뤳�Ȥ��Ǥ��ޤ��� ������ 1 + ʸ���ܤ�����������ʸ����2 ʸ���ܰʹߤ˥��������פ����٤�ʸ������ꤷ�ޤ��� + + �㤨�С� + + --prefix=\$@ �Ȥ���ȡ�Shift_JIS �� 2 ʸ���ܤ� $ �� @ ���褿�顢�������� \ ����������ޤ� + --prefix=@@ �Ȥ���ȡ�Shift_JIS �� 2 ʸ���ܤ� @ ���褿�顢�������� @ ����������ޤ� + + --no-cp932ext + CP932 �ˤ����Ƴ�ĥ���줿��NEC �ü�ʸ����NEC ���� IBM ��ĥʸ�� (89-92 ��)��IBM ��ĥʸ�����Ѵ����ޤ��� + + --no-best-fit-chars + Unicode ������Ѵ��κݤˡ����������������ݤ���ʤ�ʸ�����Ѵ���Ԥ��ޤ��� Unicode ���� Unicode ���Ѵ��κݤ� + -x �ȶ��˻��ꤹ��ȡ�nkf �� UTF �������Ѵ����Ѥ��뤳�Ȥ��Ǥ��ޤ��� + (�դ˸����С��������ꤷ�ʤ��Ȱ�����ʸ������¸����ޤ���) + + �ѥ��˴ؤ��ʸ������Ѵ�����ݤˤϡ����Υ��ץ�������ꤹ�뤳�Ȥ򶯤��侩���ޤ��� + + --cap-input, --url-input + ���줾�� :��% ��³�� 16 �ʿ���ʸ�����Ѵ����� + + --numchar-input + &#....; �Τ褦�� Unicode ʸ�����Ȥ��Ѵ����� + + --in-place[=*SUFFIX*] --overwrite[=*SUFFIX*] + ���Υե�������Ѵ���̤��֤������롣 ʣ���Υե������񤭴����뤳�Ȥ��ǽ�� ���Υե�����Υ����ॹ����פȥѡ��ߥå�����ݻ�����롣 + ���ߡ����������� inode ���ѹ�����뤬������ˤ錄�äƤ��μ����ΤޤޤǤ����ݾڤ�̵���� + + --guess + ��ưȽ�̤η�̤���Ϥ��� + + --help + ���ޥ�ɤδ�ñ��������ɽ�����롣 + + -V nkf �������ɽ�����롣 + + -v --version + nkf �ΥС�������ɽ�����롣 + + -- ����ʹߤΥ��ץ�����̵�뤹�� + + --exec-in + nkf [options] --exec-in cmd args... �Ȥ��ȡ�cmd �ν��Ϥ� nkf �����ϤȤ��� + (config.h �� EXEC_IO �� define ���ƥ���ѥ��뤷�����Τ�ͭ��) + + --exec-out + nkf [options] --exec-out cmd args... �Ȥ��ȡ�nkf �ν��Ϥ� cmd �����ϤȤ��� + (config.h �� EXEC_IO �� define ���ƥ���ѥ��뤷�����Τ�ͭ��) + +BUGS + �¤ϡ����ϤΥ����ɷϤ�Ƚ��ϡ�Shift_JIS �� EUC �Ȥμ�ưȽ��Ǥ��ꡢ�ǽ������Ǥ���ʸ�����褿�����dz��ꤷ�Ƥ��ޤ��� + �����ơ�������ǽ�δ֤���α�Хåե��ˤ���Ƥ����졢�����˽�������롣 ���Τ��ᡢ7 �ӥå� JIS �Ͼ��ǧ������롣 + Shift_JIS��EUC �����ۤȤ�ɤξ������꤬�ʤ��� ��������Shift_JIS �Τ�����Ⱦ�ѥ��� (JIS X 0201 �Ҳ�̾) + �� EUC ���������̤Ǥ��ʤ��� �������äơ��ǥե���ȤǤ� Shift_JIS �Τ�����Ⱦ�ѥ��ʤϤʤ��Ȳ��ꤷ�Ƥ��롣 + (�ĤޤꡢShift_JIS �� EUC ���¤ä����� EUC �Ȥߤʤ�) + + Unicode �����ܸ�ʳ�����ʬ���Ѵ��ˤ��б����Ƥ��ʤ�����--no-best-fit-chars ����ꤹ��С�UTF-8 �� UTF-16 + ������Ѵ��򤹤뤳�Ȥϲ�ǽ�Ǥ��롣 + +ACKNOWLEDGE + �ʲ��Τ����������ɤ��⤢�꤬�Ȥ��������ޤ����� + + nkf 1.4 + morb@fujitsu, kiss@ayumi.stars.flab.fujitsu, cen122@flab.fujitsu, + yuki@flab.fujitsu ¾��fujitsu & flab.fujitsu �γ�����ζ��Ϥ˴��ա� + shinoda@cs.titech, kato@cs.titech, uematsu@cs.titech TNX + kono@ie.u-ryukyu.ac.jp void@merope.pleiades.or.jp (Kusakabe Youichi) + NIDE Naoyuki ohta@src.ricoh.co.jp (Junn Ohta) + inouet@strl.nhk.or.jp (Tomoyuki Inoue) kiri@pulser.win.or.jp (Tetsuaki + Kiriyama) Kimihiko Sato + a_kuroe@kuroe.aoba.yokohama.jp (Akihiko Kuroe) kono@ie.u-ryukyu.ac.jp + (Shinji Kono) GHG00637@nifty-serve.or.jp (COW) + + nkf 1.9- + ����� + Akio Furukawa + Andy Taki + From: OHARA Shigeki + Fumitaka Kitagawa + Hiroaki Sengoku + Ikuhiro MORITA (���� �鹨) + Yoshiharu ITO + Junn Ohta + KAWAMURA Masao + Kazuhiko Mori + Keitaro Isokawa + Ken-ichi Hirose + Ki-ichiro SATO + Kiwamu Aoyama + Koichi Hirayama + Mitsuru Hase (Ĺë ��) + OHARA Shigeki (�縶 �ż�) + Rei FURUKAWA + Satoru Takabayashi + Shigeyuki Takagi + Shin MICHIMUKO + Tadamasa Teranishi + TOYODA Jiro + TSUCHIYA Masatoshi + Tsutomu Sakai + YAMASHITA Junji (���� ���) + Yasuyuki Sato + Yoshiaki Yanagihara + hat@so-net + �ģãõ��������� + ���Ȥ� / ��ƣ ���� + ����dais + �Ҥ��� �ޤ����� + ����ȥ�ͥåȥ����ƥ�(��)���� + ����ʸ�� + ���� ��ɧ(SHIOZAKI Takehiko) + ��¼���� (Media Lab.) + ���� ���� + ��������ǭ�ɹ�������� + ��� ��ɧ + ���� ʹ�� (���Ĥ�� �ޤ���) + �ⶶ���� + ��� + ������ɧ + �������� + ���� �� + ���� ˧�� + ����͵�� (��ޤΤ椦��) + ��¼ˡ�� + ������� + ���� �� + ���� ���� (Koji Arai) + �� �鳨�� + �� ��ɧ + ���� ��ʸ + �����½� + �罡���������긦 + ��ë �Ѱ�Ϻ == Eiichiro Itani + ƣ�� ���� + Ȭ�� ���� (Masayuki Hatta) + �������� + ˾�� ���� + ��¼ (��������ؿ��ظ����) + ��¼�Ӿ� + ͭ�����ߥΥ륿 + ͭ�� ���� + ����� + �� μ + Ԣ�� �� + �ڲ� ͺ�� + ����δ͵ + ��ëľ�� + ���Ŀ��� + �錄�ʤ٤Ҥ��դ� + MoonWolf + sava + +AUTHOR + ���� �� ichikawa@flab.fujitsu.co.jp (was ichikawa@fujitsu.JUNET) + ���� ���� kono@ie.u-ryukyu.acjp + Rei FURUKAWA furukawa@tcp-ip.or.jp + ���� + mastodon + + http://sourceforge.jp/projects/nkf/ + + Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa). + + Copyright (C) 1996-2013, The nkf Project. + diff --git a/nkf.h b/nkf.h new file mode 100755 index 0000000..af44320 --- /dev/null +++ b/nkf.h @@ -0,0 +1,189 @@ +/* + * + * nkf.h - Header file for nkf + * + */ + +#ifndef NKF_H +#define NKF_H + +/* Wrapper of configurations */ + +#ifndef MIME_DECODE_DEFAULT +#define MIME_DECODE_DEFAULT STRICT_MIME +#endif +#ifndef X0201_DEFAULT +#define X0201_DEFAULT TRUE +#endif + +#if DEFAULT_NEWLINE == 0x0D0A +#elif DEFAULT_NEWLINE == 0x0D +#else +#define DEFAULT_NEWLINE 0x0A +#endif +#ifdef HELP_OUTPUT_STDERR +#define HELP_OUTPUT stderr +#else +#define HELP_OUTPUT stdout +#endif + + +/* Compatibility definitions */ + +#ifdef nkf_char +#elif defined(INT_IS_SHORT) +typedef long nkf_char; +#define NKF_INT32_C(n) (n##L) +#else +typedef int nkf_char; +#define NKF_INT32_C(n) (n) +#endif + +#if (defined(__TURBOC__) || defined(_MSC_VER) || defined(LSI_C) || (defined(__WATCOMC__) && defined(__386__) && !defined(__LINUX__)) || defined(__MINGW32__) || defined(__EMX__) || defined(__MSDOS__) || defined(__WINDOWS__) || defined(__DOS__) || defined(__OS2__)) && !defined(MSDOS) +#define MSDOS +#if (defined(__Win32__) || defined(_WIN32)) && !defined(__WIN32__) +#define __WIN32__ +#endif +#endif + +#ifdef PERL_XS +#undef OVERWRITE +#endif + +#ifndef PERL_XS +#include +#endif + +#include +#include + +#if defined(MSDOS) || defined(__OS2__) +#include +#include +#if defined(_MSC_VER) || defined(__WATCOMC__) +#define mktemp _mktemp +#endif +#endif + +#ifdef MSDOS +#ifdef LSI_C +#define setbinmode(fp) fsetbin(fp) +#elif defined(__DJGPP__) +#include +void setbinmode(FILE *fp) +{ + /* we do not use libc's setmode(), which changes COOKED/RAW mode in device. */ + int fd, m; + fd = fileno(fp); + m = (__file_handle_modes[fd] & (~O_TEXT)) | O_BINARY; + __file_handle_set(fd, m); +} +#else /* Microsoft C, Turbo C */ +#define setbinmode(fp) setmode(fileno(fp), O_BINARY) +#endif +#else /* UNIX */ +#define setbinmode(fp) (void)(fp) +#endif + +#ifdef _IOFBF /* SysV and MSDOS, Windows */ +#define setvbuffer(fp, buf, size) setvbuf(fp, buf, _IOFBF, size) +#else /* BSD */ +#define setvbuffer(fp, buf, size) setbuffer(fp, buf, size) +#endif + +/*Borland C++ 4.5 EasyWin*/ +#if defined(__TURBOC__) && defined(_Windows) && !defined(__WIN32__) /*Easy Win */ +#define EASYWIN +#ifndef __WIN16__ +#define __WIN16__ +#endif +#include +#endif + +#ifdef OVERWRITE +/* added by satoru@isoternet.org */ +#if defined(__EMX__) +#include +#endif +#include +#if !defined(MSDOS) || defined(__DJGPP__) /* UNIX, djgpp */ +#include +#if defined(__WATCOMC__) +#include +#else +#include +#endif +#else /* defined(MSDOS) */ +#ifdef __WIN32__ +#ifdef __BORLANDC__ /* BCC32 */ +#include +#else /* !defined(__BORLANDC__) */ +#include +#endif /* (__BORLANDC__) */ +#else /* !defined(__WIN32__) */ +#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__WATCOMC__) || defined(__OS2__) || defined(__EMX__) || defined(__IBMC__) || defined(__IBMCPP__) /* VC++, MinGW, Watcom, emx+gcc, IBM VAC++ */ +#include +#elif defined(__TURBOC__) /* BCC */ +#include +#elif defined(LSI_C) /* LSI C */ +#endif /* (__WIN32__) */ +#endif +#endif +#endif + +#if !defined(DEFAULT_CODE_JIS) && !defined(DEFAULT_CODE_SJIS) && \ + !defined(DEFAULT_CODE_WINDOWS_31J) && !defined(DEFAULT_CODE_EUC) && \ + !defined(DEFAULT_CODE_UTF8) && !defined(DEFAULT_CODE_LOCALE) +#define DEFAULT_CODE_LOCALE +#endif + +#ifdef DEFAULT_CODE_LOCALE + +#if defined(__WIN32__) /* not win32 should be posix */ +# ifndef HAVE_LOCALE_H +# define HAVE_LOCALE_H +# endif +#elif defined(__OS2__) +# undef HAVE_LANGINFO_H /* We do not use kLIBC's langinfo. */ +# ifndef HAVE_LOCALE_H +# define HAVE_LOCALE_H +# endif +#elif defined(MSDOS) +# ifndef HAVE_LOCALE_H +# define HAVE_LOCALE_H +# endif +#elif defined(__BIONIC__) /* bionic doesn't have locale */ +#else +# ifndef HAVE_LANGINFO_H +# define HAVE_LANGINFO_H +# endif +# ifndef HAVE_LOCALE_H +# define HAVE_LOCALE_H +# endif +#endif + +#ifdef HAVE_LANGINFO_H +#include +#endif +#ifdef HAVE_LOCALE_H +#include +#endif + +#endif /* DEFAULT_CODE_LOCALE */ + +#define FALSE 0 +#define TRUE 1 + +#ifndef ARG_UNUSED +#if defined(__GNUC__) +# define ARG_UNUSED __attribute__ ((unused)) +#else +# define ARG_UNUSED +#endif +#endif + +#ifdef WIN32DLL +#include "nkf32.h" +#endif + +#endif /* NKF_H */ diff --git a/nkf.mak b/nkf.mak new file mode 100755 index 0000000..d401b67 --- /dev/null +++ b/nkf.mak @@ -0,0 +1,41 @@ +# Visual C++ 2005 Express Edition +CC = cl +LD=link +CFLAGS = -O2 -DMSDOS -DWIN32 -D__WIN32__ -D_CRT_SECURE_NO_DEPRECATE +LD_FLAGS = +LIBS = user32.lib kernel32.lib gdi32.lib +RC = rc + +all: nkf.exe nkf32.dll + +nkf.exe : nkf.obj config.h utf8tbl.obj version.res + $(CC) $(CFLAGS) nkf.obj utf8tbl.obj version.res /link setargv.obj + +nkf32.dll: nkf32.obj utf8tbl.obj dll.res + $(LD) $(LDFLAGS) /DLL /DEF:dll.def nkf32.obj utf8tbl.obj dll.res + +nkf.obj : nkf.c config.h + $(CC) $(CFLAGS) -c nkf.c + +nkf32.obj: nkf32.c nkf.c nkf32dll.c config.h nkf.h + $(CC) $(CFLAGS) /DLL -DWIN32DLL -DTOMIME -DGETKANJICODE -DFILECONVERT1 -DFILECONVERT2 -DUNICODESUPPORT /c nkf32.c + +utf8tbl.obj : utf8tbl.c config.h + $(CC) $(CFLAGS) /c utf8tbl.c + +version.res: version.rc + $(RC) $(RCFLAGS) version.rc + +dll.res: dll.rc + $(RC) $(RCFLAGS) dll.rc + +clean: + -del nkf.obj + -del nkf32.obj + -del nkf32.exp + -del utf8tbl.obj + -del version.res + -del dll.res + -del nkf.exe + -del nkf32.dll + -del nkf32.lib diff --git a/nkf32.c b/nkf32.c new file mode 100755 index 0000000..d417f31 --- /dev/null +++ b/nkf32.c @@ -0,0 +1 @@ +#include "nkf.c" diff --git a/nkf32.h b/nkf32.h new file mode 100755 index 0000000..c21fb5d --- /dev/null +++ b/nkf32.h @@ -0,0 +1,85 @@ +#ifndef NKF32_H +#ifndef CLASS_DECLSPEC +/* dll __declspec(dllexport) */ +/* app __declspec(dllimport) */ +#define CLASS_DECLSPEC +#endif + +#ifndef LPSTR +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +#ifdef __BORLANDC__ +#pragma argsused +#endif /*__BORLANDC__*/ +/* uminchu nkf32103a.lzh 1.00 */ +void CALLBACK CLASS_DECLSPEC GetNkfVersion(LPSTR verStr); +int CALLBACK CLASS_DECLSPEC SetNkfOption(LPSTR optStr); +void CALLBACK CLASS_DECLSPEC NkfConvert(LPSTR outStr, LPCSTR inStr); +/* uminchu nkf32103a.lzh 1.02 */ +void CALLBACK CLASS_DECLSPEC ToHankaku(LPSTR inStr); +void CALLBACK CLASS_DECLSPEC ToZenkakuKana(LPSTR outStr ,LPCSTR inStr); +/* uminchu nkf32103a.lzh 1.03 */ +void CALLBACK CLASS_DECLSPEC EncodeSubject(LPSTR outStr ,LPCSTR inStr); +/* tkaneto nkf32204.zip 2.0.4.0 */ +#ifdef TOMIME +void CALLBACK CLASS_DECLSPEC ToMime(LPSTR outStr ,LPCSTR inStr); +#endif /*TOMIME*/ +#ifdef GETKANJICODE +int CALLBACK CLASS_DECLSPEC NkfGetKanjiCode(VOID); +#endif /*GETKANJICODE*/ +#ifdef FILECONVERT1 +void CALLBACK CLASS_DECLSPEC NkfFileConvert1(LPCSTR fName); +#endif /*FILECONVERT1*/ +#ifdef FILECONVERT2 +void CALLBACK CLASS_DECLSPEC NkfFileConvert2(LPCSTR fInName,LPCSTR fOutName); +#endif /*FILECONVERT2*/ +#ifndef NKF32103A +/* safe */ +BOOL WINAPI CLASS_DECLSPEC GetNkfVersionSafeA(LPSTR verStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC NkfConvertSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/, LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/); +BOOL WINAPI CLASS_DECLSPEC ToZenkakuKanaSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/,LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/); +BOOL WINAPI CLASS_DECLSPEC ToHankakuSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/,LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/); +BOOL WINAPI CLASS_DECLSPEC EncodeSubjectSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/,LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/); +BOOL WINAPI CLASS_DECLSPEC NkfFileConvert1SafeA(LPCSTR fName,DWORD nBufferLength /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC NkfFileConvert2SafeA(LPCSTR fInName,DWORD fInBufferLength /*in TCHARs*/,LPCSTR fOutName,DWORD fOutBufferLength /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC GetNkfGuessA(LPSTR outStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/); + +BOOL WINAPI CLASS_DECLSPEC GetNkfVersionSafeW(LPWSTR verStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC NkfFileConvert1SafeW(LPCWSTR fName,DWORD nBufferLength /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC NkfFileConvert2SafeW(LPCWSTR fInName,DWORD fInBufferLength /*in TCHARs*/,LPCWSTR fOutName,DWORD fOutBufferLength /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC GetNkfGuessW(LPWSTR outStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/); +BOOL WINAPI CLASS_DECLSPEC GetNkfSupportFunctions(void *outStr,DWORD nBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/); +BOOL WINAPI CLASS_DECLSPEC NkfUsage(LPSTR outStr,DWORD nBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/); + +#ifdef UNICODE +#define GetNkfVersionSafe GetNkfVersionSafeW +#define GetNkfGuess GetNkfGuessW +#define NkfFileConvert1Safe NkfFileConvert1SafeW +#define NkfFileConvert2Safe NkfFileConvert2SafeW +#else /*UNICODE*/ +#define GetNkfVersionSafe GetNkfVersionSafeA +#define GetNkfGuess GetNkfGuessA +#define NkfFileConvert1Safe NkfFileConvert1SafeA +#define NkfFileConvert2Safe NkfFileConvert2SafeA +#endif /*UNICODE*/ + +struct NKFSUPPORTFUNCTIONS { +DWORD size; +LPCSTR copyrightA; +LPCSTR versionA; +LPCSTR dateA; +DWORD functions; +}; + + +void reinitdll(void); +#endif /*!defined(NKF32103A)*/ + +#ifdef __cplusplus +} // Balance extern "C" above +#endif /*__cplusplus*/ +#endif diff --git a/nkf32dll.c b/nkf32dll.c new file mode 100644 index 0000000..60b22cf --- /dev/null +++ b/nkf32dll.c @@ -0,0 +1,1053 @@ +/* nkf32.dll nfk32dll.c */ +/* e-mail:tkaneto@nifty.com */ +/* URL: http://www1.ttcn.ne.jp/~kaneto */ + +/*WIN32DLL*/ +/* ������̃o�[�W�������X�V���Ă��������B */ +#define NKF_VERSIONW L"2.1.4" +/* NKF_VERSION �̃��C�h���� */ +#define DLL_VERSION "2.1.4.0 2" +/* DLL���Ԃ� */ +#define DLL_VERSIONW L"2.1.4.0 2" +/* DLL���Ԃ� DLL_VERSION �̃��C�h���� */ + +/* nkf32.dll main */ +#include +#include +#include + +#ifdef DLLDBG /* DLLDBG @@*/ +#include "nkf.h" + +void dumpn(unsigned char *buff,unsigned n) +{ + int i; + + i = 0; + while ( n ) { + if ( i == 0 ) { + printf(":%x ",buff); + } + printf("%02x ",*buff++); + i++; + if ( i == 16 ) { + printf("\n"); + i = 0; + } + n--; + } + printf("\n"); +} + +void dumpf(char *f); +void mkfile(char *f,char *p); +#endif /* DLLDBG @@*/ + +#ifndef GUESS +#define GUESS 64 +#endif /*GUESS*/ + +char *guessbuffA = NULL; +#ifdef UNICODESUPPORT +wchar_t *guessbuffW = NULL; +UINT guessCodePage = CP_OEMCP; +DWORD guessdwFlags = MB_PRECOMPOSED; + +wchar_t *tounicode(const char *p) +{ +static wchar_t buff[GUESS]; + int sts; + + sts = MultiByteToWideChar(guessCodePage,guessdwFlags,p,-1,buff,sizeof(buff) / sizeof(wchar_t)); + if ( sts ) { + return buff; + } else { + return L"(NULL)"; + } +} +#endif /*UNICODESUPPORT*/ + +char *ubuff; +int ulen; +int uret; + +int dllprintf(FILE *fp,char *fmt,...) +{ + va_list argp; + int sts; + + if ( uret != FALSE && ulen >= 1 && fmt != NULL && *fmt != 0 ) { + va_start(argp, fmt); + sts = _vsnprintf(ubuff,ulen - 1,fmt,argp); + va_end(argp); + if ( sts >= 0 ) { + ubuff += sts; + ulen -= sts; + } else { + uret = FALSE; + } + return sts; + } else return 0; +} + +/** Network Kanji Filter. (PDS Version) +************************************************************************ +** Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA) +** �A����F �i���j�x�m�ʌ������@�\�t�g�R���@�s��@�� +** �iE-Mail Address: ichikawa@flab.fujitsu.co.jp�j +** Copyright (C) 1996,1998 +** Copyright (C) 2002 +** �A����F ������w���H�w�� �͖� �^�� mime/X0208 support +** �iE-Mail Address: kono@ie.u-ryukyu.ac.jp�j +** �A����F COW for DOS & Win16 & Win32 & OS/2 +** �iE-Mail Address: GHG00637@niftyserve.or.p�j +** +** ���̃\�[�X�̂����Ȃ镡�ʁC���ρC�C�����������܂��B�������A +** ���̍ۂɂ́A�N���v���������������̕������c�����ƁB +** �Ĕz�z��G���̕t�^�Ȃǂ̖₢���킹���K�v����܂���B +** �c�����p����L�ɔ����Ȃ��͈͂ŋ��‚��܂��B +** �o�C�i���̔z�z�̍ۂɂ�version message��ۑ����邱�Ƃ������Ƃ��܂��B +** ���̃v���O�����ɂ‚��Ă͓��ɉ��̕ۏ؂����Ȃ��A�������炸�B +** +** Everyone is permitted to do anything on this program +** including copying, modifying, improving, +** as long as you don't try to pretend that you wrote it. +** i.e., the above copyright notice has to appear in all copies. +** Binary distribution requires original version messages. +** You don't have to ask before copying, redistribution or publishing. +** THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE. +***********************************************************************/ + +static const unsigned char *cin = NULL; +static int nin = -1; +static int ninmax = -1; +static int std_getc_mode = 1; + +int +std_getc(f) +FILE *f; +{ + if (!nkf_buf_empty_p(nkf_state->std_gc_buf)) { + return nkf_buf_pop(nkf_state->std_gc_buf); + } else { + if ( std_getc_mode == 1 ) { + return getc(f); + } + if ( std_getc_mode == 2 && cin != NULL ) { + if ( ninmax >= 0 ) { + if ( nin >= ninmax ) { + return EOF; + } else { + nin++; + return *cin++; + } + } else { + if ( *cin ) { + return *cin++; + } else { + return EOF; + } + } + } + } + return EOF; +} + +static FILE *fout = NULL; +static unsigned char *cout = NULL; +static int nout = -1; +static int noutmax = -1; +static int std_putc_mode = 1; + +void +std_putc(c) +int c; +{ + if(c!=EOF) + { + if ( (std_putc_mode & 1) && fout != NULL ) { + putc(c,fout); + } + if ( (std_putc_mode & 4) && nout != -1 ) { + if ( noutmax >= 0 && nout >= noutmax ) std_putc_mode &= ~2; + nout++; + } + if ( (std_putc_mode & 2) && cout != NULL ) { + *cout++ = c; + } + } +} + +void +print_guessed_code (filename) + char *filename; +{ + const char *codename = get_guessed_code(); + if (filename != NULL) { + guessbuffA = realloc(guessbuffA,(strlen(filename) + GUESS + 1) * sizeof (char) ); + sprintf(guessbuffA,"%s:%s", filename,codename); + } else { + guessbuffA = realloc(guessbuffA,(GUESS + 1) * sizeof (char) ); + sprintf(guessbuffA,"%s", codename); + } +} + +#ifdef UNICODESUPPORT +void +print_guessed_codeW (filename) + wchar_t *filename; +{ + const char *codename = get_guessed_code(); + size_t size; + if (filename != NULL) { + size = (wcslen(filename) + GUESS + 1) * sizeof (wchar_t); + guessbuffW = realloc(guessbuffW, size); + _snwprintf(guessbuffW, size, L"%s:%s", filename, tounicode(codename)); + } else { + size = (GUESS + 1) * sizeof (wchar_t); + guessbuffW = realloc(guessbuffW, size); + _snwprintf(guessbuffW, size, L"%s", tounicode(codename)); + } +} +#endif /*UNICODESUPPORT*/ + +/** + ** �p�b�`����� + ** void@merope.pleiades.or.jp (Kusakabe Youichi) + ** NIDE Naoyuki + ** ohta@src.ricoh.co.jp (Junn Ohta) + ** inouet@strl.nhk.or.jp (Tomoyuki Inoue) + ** kiri@pulser.win.or.jp (Tetsuaki Kiriyama) + ** Kimihiko Sato + ** a_kuroe@kuroe.aoba.yokohama.jp (Akihiko Kuroe) + ** kono@ie.u-ryukyu.ac.jp (Shinji Kono) + ** GHG00637@nifty-serve.or.jp (COW) + ** + **/ + +void +reinitdll(void) +{ + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + fout = stdout; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + if ( guessbuffA ) { + free(guessbuffA); + guessbuffA = NULL; + } +#ifdef UNICODESUPPORT + if ( guessbuffW ) { + free(guessbuffW); + guessbuffW = NULL; + } +#endif /*UNICODESUPPORT*/ +} + +#ifndef DLLDBG /* DLLDBG @@*/ +int WINAPI DllEntryPoint(HINSTANCE hinst,unsigned long reason,void* lpReserved) +{ + return 1; +} +#endif /* DLLDBG @@*/ + +static LPSTR nkfverA = NKF_VERSION; +static LPSTR dllverA = DLL_VERSION; +#ifdef UNICODESUPPORT +static LPWSTR nkfverW = NKF_VERSIONW; +static LPWSTR dllverW = DLL_VERSIONW; +#endif /*UNICODESUPPORT*/ + +BOOL scp(LPSTR s,LPSTR t,DWORD n) +{ + while ( n ) { + if ( (*s = *t) == 0 ) return TRUE; + if ( --n == 0 ) { + *s = 0; + break; + } + s++; + t++; + } + return FALSE; +} + +#ifdef UNICODESUPPORT +BOOL wscp(LPWSTR s,LPWSTR t,DWORD n) +{ + while ( n ) { + if ( (*s = *t) == 0 ) return TRUE; + if ( --n == 0 ) { + *s = 0; + break; + } + s++; + t++; + } + return FALSE; +} +#endif /*UNICODESUPPORT*/ + +void CALLBACK GetNkfVersion(LPSTR verStr){ + strcpy(verStr,dllverA); +} + +BOOL WINAPI GetNkfVersionSafeA(LPSTR verStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/) +{ + *lpTCHARsReturned = strlen(dllverA) + 1; + if ( verStr == NULL || nBufferLength == 0 ) return FALSE; + return scp(verStr,dllverA,nBufferLength); +} + +BOOL WINAPI GetNkfVersionSafeW(LPWSTR verStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/) +{ +#ifdef UNICODESUPPORT + *lpTCHARsReturned = wcslen(dllverW) + 1; + if ( verStr == NULL || nBufferLength == 0 ) return FALSE; + wcsncpy(verStr,dllverW,nBufferLength); + if ( wcslen(dllverW) >= nBufferLength ) { + *(verStr + nBufferLength - 1) = 0; + return FALSE; + } + return TRUE; +#else /*UNICODESUPPORT*/ + return FALSE; +#endif /*UNICODESUPPORT*/ +} + +static LPSTR optStr0 = NULL; + +int CALLBACK SetNkfOption(LPSTR optStr) +{ + LPSTR p; + int len; + + if ( *optStr == '-' ) { + len = strlen(optStr) + 1; + p = realloc(optStr0,len); + strcpy(p,optStr); + } else { + len = strlen(optStr) + 2; + p = realloc(optStr0,len); + *p = '-'; + strcpy(p + 1,optStr); + } + optStr0 = p; + return 0; +} + +int findspace(const char* str) +{ + int find_n = 0; + while (*str != 0) { + if (*str == ' ') { + find_n++; + } + str++; + } + return find_n; +} +// �I�v�V������ �󔒂ŋ�؂��Ă���ꍇ�� options �𕡐��Ăяo�� +void callOptions() +{ + char *work = strdup(optStr0); + int len = strlen(optStr0); + for (int i = 0; i < len; i++) { + if (work[i] == ' ') { + work[i] = '\0'; + } + } + int i = 0; + while (i < len) + { + // ������T�� + if (work[i] != '\0') { + // options �Ăяo�� + options(&work[i]); + + // �����̏I�[��T�� + while (work[i] != '\0' && i < len) { + i++; + } + } + else { + i++; + } + } + free(work); +} + +void options0(void) +{ + reinit(); + if ( optStr0 != NULL ) { + // option �̒��� �󔒂��������ꍇ options �𕪊����ČĂяo�� + if (findspace(optStr0) > 0) { + callOptions(); + } + else { + options(optStr0); + } + } +} + +void CALLBACK NkfConvert(LPSTR outStr, LPCSTR inStr) +{ + options0(); + std_putc_mode = 2; + cout = outStr; + noutmax = -1; + nout = -1; + std_getc_mode = 2; + cin = inStr; + ninmax = -1; + nin = -1; + kanji_convert(NULL); + *cout = 0; +} + +BOOL WINAPI NkfConvertSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/, LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/){ + if ( inStr == NULL ) return FALSE; + options0(); + std_putc_mode = 6; + cout = outStr; + noutmax = nOutBufferLength; + nout = 0; + std_getc_mode = 2; + cin = inStr; + ninmax = nInBufferLength; + nin = 0; + kanji_convert(NULL); + *lpBytesReturned = nout; + if ( nout < noutmax ) *cout = 0; + return TRUE; +} + +void CALLBACK ToHankaku(LPSTR inStr) +{ + unsigned char *p; + int len; + + len = strlen(inStr) + 1; + p = malloc(len); + if ( p == NULL ) return; + memcpy(p,inStr,len); + options("-ZSs"); + NkfConvert(inStr,p); + free(p); +} + +BOOL WINAPI ToHankakuSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/,LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/) +{ + options("-ZSs"); + return NkfConvertSafe(outStr,nOutBufferLength,lpBytesReturned,inStr,nInBufferLength); +} + +void CALLBACK ToZenkakuKana(LPSTR outStr, LPCSTR inStr) +{ + options("-Ss"); + NkfConvert(outStr, inStr); +} + +BOOL WINAPI ToZenkakuKanaSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/,LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/) +{ + options("-Ss"); + return NkfConvertSafe(outStr,nOutBufferLength,lpBytesReturned,inStr,nInBufferLength); +} + +void CALLBACK EncodeSubject(LPSTR outStr ,LPCSTR inStr){ + options("-jM"); + NkfConvert(outStr, inStr); +} + +BOOL WINAPI EncodeSubjectSafe(LPSTR outStr,DWORD nOutBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/,LPCSTR inStr,DWORD nInBufferLength /*in Bytes*/) +{ + options("-jM"); + return NkfConvertSafe(outStr,nOutBufferLength,lpBytesReturned,inStr,nInBufferLength); +} + +#ifdef TOMIME +void CALLBACK ToMime(LPSTR outStr ,LPCSTR inStr) +{ + EncodeSubject(outStr,inStr); +} +#endif /*TOMIME*/ + +#ifdef GETKANJICODE +int CALLBACK NkfGetKanjiCode(VOID) +{ + int iCode=0; + /* if(iconv == s_iconv)iCode=0; */ /* 0:�V�t�gJIS */ + if(iconv == w_iconv)iCode=3; /* UTF-8 */ + else if(iconv == w_iconv16){ + if(input_endian == ENDIAN_BIG)iCode=5; /* 5:UTF-16BE */ + else iCode=4; /* 4:UTF-16LE */ + }else if(iconv == e_iconv){ + if(estab_f == FALSE)iCode=2; /* 2:ISO-2022-JP */ + else iCode=1; /* 1:EUC */ + } + return iCode; +} +#endif /*GETKANJICODE*/ + +#ifdef FILECONVERT1 +void CALLBACK NkfFileConvert1(LPCSTR fName) +{ + FILE *fin; + char *tempdname; + char tempfname[MAX_PATH]; + char d[4]; + DWORD len; + BOOL sts; + + options0(); + len = GetTempPath(sizeof d,d); + tempdname = malloc(len + 1); + if ( tempdname == NULL ) return; + len = GetTempPath(len + 1,tempdname); + sts = GetTempFileName(tempdname,"NKF",0,tempfname); + if ( sts != 0 ) { + sts = CopyFileA(fName,tempfname,FALSE); + if ( sts ) { + if ((fin = fopen(tempfname, "rb")) != NULL) { + if ((fout = fopen(fName, "wb")) != NULL) { + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + kanji_convert(fin); + fclose(fin); + } + fclose(fout); + } + DeleteFile(tempfname); + } + } + free(tempdname); +} +#endif /*FILECONVERT1*/ + +BOOL WINAPI NkfFileConvert1SafeA(LPCSTR fName,DWORD nBufferLength /*in TCHARs*/) +{ + FILE *fin; + char *tempdname; + char tempfname[MAX_PATH]; + char d[4]; + DWORD len; + BOOL sts; + BOOL ret; + LPCSTR p; + + options0(); + ret = FALSE; + p = fName; + for ( ;; ) { + if ( nBufferLength == 0 ) return ret; + if ( *p == 0 ) break; + p++; + --nBufferLength; + } + if ( chmod(fName,_S_IREAD | _S_IWRITE) == -1 ) return ret; + len = GetTempPath(sizeof d,d); + tempdname = malloc(len + 1); + if ( tempdname == NULL ) return FALSE; + len = GetTempPath(len + 1,tempdname); + sts = GetTempFileName(tempdname,"NKF",0,tempfname); + if ( sts != 0 ) { + sts = CopyFileA(fName,tempfname,FALSE); + if ( sts ) { + if ((fin = fopen(tempfname, "rb")) != NULL) { + if ((fout = fopen(fName, "wb")) != NULL) { + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + kanji_convert(fin); + fclose(fin); + ret = TRUE; + } + fclose(fout); + } + DeleteFileA(tempfname); + } + } + free(tempdname); + return ret; +} + +BOOL WINAPI NkfFileConvert1SafeW(LPCWSTR fName,DWORD nBufferLength /*in TCHARs*/) +{ +#ifdef UNICODESUPPORT + FILE *fin; + wchar_t *tempdname; + wchar_t tempfname[MAX_PATH]; + wchar_t d[2]; + DWORD len; + BOOL sts; + BOOL ret; + LPCWSTR p; + + options0(); + ret = FALSE; + p = fName; + for ( ;; ) { + if ( nBufferLength == 0 ) return ret; + if ( *p == 0 ) break; + p++; + --nBufferLength; + } + if ( _wchmod(fName,_S_IREAD | _S_IWRITE) == -1 ) return ret; + len = GetTempPathW(sizeof d / sizeof(WCHAR),d); + tempdname = malloc((len + 1) * sizeof(WCHAR)); + if ( tempdname == NULL ) return FALSE; + len = GetTempPathW(len + 1,tempdname); + sts = GetTempFileNameW(tempdname,L"NKF",0,tempfname); + if ( sts != 0 ) { + sts = CopyFileW(fName,tempfname,FALSE); + if ( sts ) { + if ((fin = _wfopen(tempfname,L"rb")) != NULL) { + if ((fout = _wfopen(fName,L"wb")) != NULL) { + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + kanji_convert(fin); + fclose(fin); + ret = TRUE; + } + fclose(fout); + } + DeleteFileW(tempfname); + } + } + free(tempdname); + return ret; +#else /*UNICODESUPPORT*/ + return FALSE; +#endif /*UNICODESUPPORT*/ +} + +#ifdef FILECONVERT2 +void CALLBACK NkfFileConvert2(LPCSTR fInName,LPCSTR fOutName) +{ + FILE *fin; + + options0(); + if ((fin = fopen(fInName, "rb")) == NULL) return; + if((fout=fopen(fOutName, "wb")) == NULL) { + fclose(fin); + return; + } + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + kanji_convert(fin); + fclose(fin); + fclose(fout); +} +#endif /*FILECONVERT2*/ + +BOOL WINAPI NkfFileConvert2SafeA(LPCSTR fInName,DWORD fInBufferLength /*in TCHARs*/,LPCSTR fOutName,DWORD fOutBufferLength /*in TCHARs*/) +{ + FILE *fin; + BOOL sts; + BOOL ret; + LPCSTR p; + + options0(); + ret = FALSE; + p = fInName; + for ( ;; ) { + if ( fInBufferLength == 0 ) return ret; + if ( *p == 0 ) break; + p++; + --fInBufferLength; + } + p = fOutName; + for ( ;; ) { + if ( fOutBufferLength == 0 ) return ret; + if ( *p == 0 ) break; + p++; + --fOutBufferLength; + } + if ((fin = fopen(fInName, "rb")) != NULL) { + if((fout=fopen(fOutName, "wb")) != NULL) { + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + kanji_convert(fin); + fclose(fin); + ret = TRUE; + } + fclose(fout); + } + return ret; +} + +BOOL WINAPI NkfFileConvert2SafeW(LPCWSTR fInName,DWORD fInBufferLength /*in TCHARs*/,LPCWSTR fOutName,DWORD fOutBufferLength /*in TCHARs*/) +{ +#ifdef UNICODESUPPORT + FILE *fin; + BOOL sts; + BOOL ret; + LPCWSTR p; + + options0(); + ret = FALSE; + p = fInName; + for ( ;; ) { + if ( fInBufferLength == 0 ) return ret; + if ( *p == 0 ) break; + p++; + --fInBufferLength; + } + p = fOutName; + for ( ;; ) { + if ( fOutBufferLength == 0 ) return ret; + if ( *p == 0 ) break; + p++; + --fOutBufferLength; + } + if ( (fin = _wfopen(fInName,L"rb")) != NULL) { + if( (fout = _wfopen(fOutName,L"wb")) != NULL) { + cin = NULL; + nin = -1; + ninmax = -1; + std_getc_mode = 1; + cout = NULL; + nout = -1; + noutmax = -1; + std_putc_mode = 1; + kanji_convert(fin); + fclose(fin); + ret = TRUE; + } + fclose(fout); + } + return ret; +#else /*UNICODESUPPORT*/ + return FALSE; +#endif /*UNICODESUPPORT*/ +} + +BOOL WINAPI GetNkfGuessA(LPSTR outStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/) +{ + if ( outStr == NULL || nBufferLength == 0 ) return FALSE; + print_guessed_code(NULL); + *lpTCHARsReturned = strlen(guessbuffA) + 1; + return scp(outStr,guessbuffA,nBufferLength); +} + +BOOL WINAPI GetNkfGuessW(LPWSTR outStr,DWORD nBufferLength /*in TCHARs*/,LPDWORD lpTCHARsReturned /*in TCHARs*/) +{ +#ifdef UNICODESUPPORT + if ( outStr == NULL || nBufferLength == 0 ) return FALSE; + print_guessed_codeW(NULL); + *lpTCHARsReturned = wcslen(guessbuffW) + 1; + return wscp(outStr,guessbuffW,nBufferLength); +#else /*UNICODESUPPORT*/ + return FALSE; +#endif /*UNICODESUPPORT*/ +} + +static struct { +DWORD size; +LPCSTR copyrightA; +LPCSTR versionA; +LPCSTR dateA; +DWORD functions; +} NkfSupportFunctions = { +sizeof(NkfSupportFunctions), +NULL, +NKF_VERSION, +NKF_RELEASE_DATE, +1 /* nkf32103a.lzh uminchu 1.03 */ +/* | 2 */ /* nkf32dll.zip 0.91 */ +#if defined(TOMIME) && defined(GETKANJICODE) && defined(FILECONVERT1) && defined(FILECONVERT2) +| 4 /* nkf32204.zip Kaneto 2.0.4.0 */ +#endif +| 8 /* this */ +#ifdef UNICODESUPPORT +| 0x80000000 +#endif /*UNICODESUPPORT*/ +, +}; + +BOOL WINAPI GetNkfSupportFunctions(void *outStr,DWORD nBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/) +{ + *lpBytesReturned = sizeof NkfSupportFunctions; + if ( outStr == NULL || nBufferLength == 0 ) return FALSE; + NkfSupportFunctions.copyrightA = COPY_RIGHT; + memcpy(outStr,&NkfSupportFunctions,sizeof NkfSupportFunctions > nBufferLength ? nBufferLength : sizeof NkfSupportFunctions); + return TRUE; +} + +BOOL WINAPI NkfUsage(LPSTR outStr,DWORD nBufferLength /*in Bytes*/,LPDWORD lpBytesReturned /*in Bytes*/) +{ + ubuff = outStr; + ulen = nBufferLength; + uret = TRUE; + usage(); + if ( uret == TRUE ) { + *lpBytesReturned = nBufferLength - ulen; + } + return uret; +} + +/* nkf32.dll main end */ + +#ifdef DLLDBG /* DLLDBG @@*/ +/* dbg.exe */ +unsigned char buff[65536]; +unsigned char buff2[65536]; +unsigned char buff3[65536]; +unsigned char buff4[65536]; +char *code[] = {"�V�t�gJIS","EUC","ISO-2022-JP","UTF-8","UTF-16LE","UTF-16BE"}; + + int n; + BOOL sts; + DWORD len; + +void mimeencode(unsigned char *buff2) +{ + memset(buff,0,sizeof buff); + EncodeSubject(buff,buff2); + printf("EncodeSubject(%s)=%s\n",buff2,buff); + memset(buff,0,sizeof buff); + ToMime(buff,buff2); + printf("ToMime(%s)=%s\n",buff2,buff); + memset(buff,0,sizeof buff); + sts = EncodeSubjectSafe(buff,sizeof buff,&len,buff2,strlen(buff2)); + printf("EncodeSubjectSafe(%s)=%d len=%d '%s'\n",buff,sts,len,buff); + dumpn(buff2,strlen(buff2)); + dumpn(buff,len); +} + +void convert(char *arg,unsigned char *buff2) +{ + sts = SetNkfOption(arg); + printf("SetNkfOption(%s)=%d\n",arg,sts); + memset(buff,0,sizeof buff); + NkfConvert(buff,buff2); + printf("NkfConvert(%s)=%s\n",buff2,buff); + n = NkfGetKanjiCode(); + printf("NkfGetKanjiCode()=%d\n",n); + sts = SetNkfOption(arg); + printf("SetNkfOption(%s)=%d\n",arg,sts); + memset(buff,0,sizeof buff); + sts = NkfConvertSafe(buff,sizeof buff,&len,buff2,strlen(buff2)); + printf("NkfConvertSafe(%s)=%d len=%d '%s'\n",buff2,sts,len,buff); + dumpn(buff2,strlen(buff2)); + dumpn(buff,len); + n = NkfGetKanjiCode(); + printf("NkfGetKanjiCode()=%d\n",n); +} + +void guess(unsigned char *buff2) +{ + char *g = "--guess"; + + sts = SetNkfOption(g); + printf("SetNkfOption(%s)=%d\n",g,sts); + memset(buff,0,sizeof buff); + NkfConvert(buff,buff2); + printf("NkfConvert(%s)=%s\n",buff2,buff); + dumpn(buff2,strlen(buff2)); + n = NkfGetKanjiCode(); + printf("NkfGetKanjiCode()=%d %s\n",n,code[n]); + memset(buff,0,sizeof buff); + sts = GetNkfGuessA(buff,sizeof buff,&len); + printf("GetNkfGuessA()=%d len=%d '%s'\n",sts,len,buff); + dumpn(buff,len); + memset(buff,0,sizeof buff); + sts = GetNkfGuessW((LPWSTR)buff,sizeof buff / sizeof(WCHAR),&len); + printf("GetNkfGuessW()=%d len=%d\n",sts,len); + dumpn(buff,len * sizeof(WCHAR)); +} + +void dumpf(char *f) +{ + FILE *fp; + unsigned int n; + + fp = fopen(f,"rb"); + if ( fp == NULL ) return; + n = fread(buff,1,sizeof buff,fp); + fclose(fp); + printf("dumpf(%s,%d)\n",f,n); + dumpn(buff,n); +} + +void mkfile(char *f,char *p) +{ + FILE *fp; + + fp = fopen(f,"w"); + if ( fp == NULL ) return; + fputs(p,fp); + fclose(fp); + dumpf(f); +} + +void file(char *arg2,char *arg3,unsigned char *buf) +{ + sts = SetNkfOption(arg2); + printf("SetNkfOption(%s)=%d\n",arg2,sts); + mkfile(arg3,buf); + NkfFileConvert1(arg3); + printf("NkfFileConvert1(%s)\n",arg3); + dumpf(arg3); + sts = SetNkfOption(arg2); + printf("SetNkfOption(%s)=%d\n",arg2,sts); + mkfile(arg3,buf); + sts = NkfFileConvert1SafeA(arg3,strlen(arg3) + 1); + printf("NkfFileConvert1SafeA(%s)=%d\n",arg3,sts); + dumpf(arg3); + sts = SetNkfOption(arg2); + printf("SetNkfOption(%s)=%d\n",arg2,sts); + mkfile(arg3,buf); + sts = MultiByteToWideChar(CP_OEMCP,MB_PRECOMPOSED,arg3,-1,(wchar_t *)buff,sizeof(buff) / sizeof(wchar_t)); + printf("MultiByteToWideChar(%s)=%d\n",arg3,sts); + dumpn(buff,(wcslen((wchar_t *)buff) + 1) * sizeof(wchar_t)); + sts = NkfFileConvert1SafeW((wchar_t *)buff,sizeof buff / sizeof(wchar_t) /*wcslen((wchar_t *)buff) + 1*/); + printf("NkfFileConvert1SafeW()=%d\n",sts); + dumpf(arg3); +} + +void file2(char *arg2,char *arg3,char *arg4,unsigned char *buf) +{ + sts = SetNkfOption(arg2); + printf("SetNkfOption(%s)=%d\n",arg2,sts); + mkfile(arg3,buf); + NkfFileConvert2(arg3,arg4); + printf("NkfFileConvert1(%s,%s)\n",arg3,arg4); + dumpf(arg3); + dumpf(arg4); + sts = SetNkfOption(arg2); + printf("SetNkfOption(%s)=%d\n",arg2,sts); + mkfile(arg3,buf); + sts = NkfFileConvert2SafeA(arg3,strlen(arg3) + 1,arg4,strlen(arg4) + 1); + printf("NkfFileConvert2SafeA(%s,%s)=%d\n",arg3,arg4,sts); + dumpf(arg3); + dumpf(arg4); + sts = SetNkfOption(arg2); + printf("SetNkfOption(%s)=%d\n",arg2,sts); + mkfile(arg3,buf); + sts = MultiByteToWideChar(CP_OEMCP,MB_PRECOMPOSED,arg3,-1,(wchar_t *)buff,sizeof(buff) / sizeof(wchar_t)); + printf("MultiByteToWideChar(%s)=%d\n",arg3,sts); + dumpn(buff,(wcslen((wchar_t *)buff) + 1) * sizeof(wchar_t)); + sts = MultiByteToWideChar(CP_OEMCP,MB_PRECOMPOSED,arg4,-1,(wchar_t *)buff4,sizeof(buff4) / sizeof(wchar_t)); + printf("MultiByteToWideChar(%s)=%d\n",arg4,sts); + dumpn(buff4,(wcslen((wchar_t *)buff4) + 1) * sizeof(wchar_t)); + sts = NkfFileConvert2SafeW((wchar_t *)buff,sizeof buff / sizeof(wchar_t) ,(wchar_t *)buff4,sizeof buff4 / sizeof(wchar_t)); + printf("NkfFileConvert2SafeW()=%d\n",sts); + dumpf(arg3); + dumpf(arg4); +} + +int main(int argc,char **argv) +{ + struct NKFSUPPORTFUNCTIONS fnc; + + if ( argc < 2 ) return 0; + switch ( *argv[1] ) { + case 'v': + memset(buff,0,sizeof buff); + GetNkfVersion(buff); + printf("GetNkfVersion() '%s'\n",buff); + sts = GetNkfVersionSafeA(buff,sizeof buff,&len); + printf("GetNkfVersionSafeA()=%d len=%d '%s'\n",sts,len,buff); + sts = GetNkfVersionSafeW((LPWSTR)buff,sizeof buff / sizeof(WCHAR),&len); + printf("GetNkfVersionSafeW()=%d len=%d\n",sts,len); + dumpn(buff,len * sizeof(WCHAR)); + sts = GetNkfSupportFunctions(&fnc,sizeof fnc,&len); + printf("GetNkfSupportFunctions()=%d len=%d\n",sts,len); + printf("size=%d\n",fnc.size); + printf("copyrightA='%s'\n",fnc.copyrightA); + printf("versionA='%s'\n",fnc.versionA); + printf("dateA='%s'\n",fnc.dateA); + printf("functions=%d %x\n",fnc.functions,fnc.functions); + break; + case 'm': + if ( argc < 3 ) return 0; + mimeencode(argv[2]); + break; + case 'M': + if ( argc < 2 ) return 0; + gets(buff2); + mimeencode(buff2); + break; + case 'c': + if ( argc < 4 ) return 0; + convert(argv[2],argv[3]); + break; + case 'C': + if ( argc < 3 ) return 0; + gets(buff2); + convert(argv[2],buff2); + break; + case 'g': + if ( argc < 3 ) return 0; + guess(argv[2]); + break; + case 'G': + if ( argc < 2 ) return 0; + gets(buff2); + guess(buff2); + break; + case 'f': + if ( argc < 5 ) return 0; + file(argv[2],argv[3],argv[4]); + break; + case 'F': + if ( argc < 4 ) return 0; + gets(buff3); + file(argv[2],argv[3],buff3); + break; + case '2': + if ( argc < 6 ) return 0; + file2(argv[2],argv[3],argv[4],argv[5]); + break; + case '#': + if ( argc < 5 ) return 0; + gets(buff3); + file2(argv[2],argv[3],argv[4],buff3); + break; + case 'u': + sts = NkfUsage(buff,sizeof buff,&len); + printf("strlen(buff)=%d\n",strlen(buff)); + printf("NkfUsage()=%d len=%d \n%s",sts,len,buff); + break; + } + return 0; +} +/* dbg.exe end */ +#endif /* DLLDBG @@*/ +/*WIN32DLL*/ diff --git a/nkf_test.pl b/nkf_test.pl new file mode 100644 index 0000000..4e5a1fb --- /dev/null +++ b/nkf_test.pl @@ -0,0 +1,1469 @@ +#!/usr/local/bin/perl +# +# nkf test program for nkf-2 +# +# Shinji KONO +# Sun Aug 18 12:25:40 JST 1996 +# Sun Nov 8 00:16:06 JST 1998 +# +# This is useful when you add new patch on nkf. +# Since this test is too strict, faileurs may not mean +# wrong conversion. +# +# nkf 1.5 differs on MIME decoding +# nkf 1.4 passes Basic Conversion tests +# nkf PDS version passes Basic Conversion tests using "nkf -iB -oB " +# + +# Basic Conversion +print "\nBasic Conversion test\n\n"; + +# I gave up simple literal quote because there are big difference +# on perl4 and perl5 on literal quote. Of course we cannot use +# jperl. + +$example{'jis'} = unpack('u',<<'eofeof'); +M1FERED"6GIAR(%-E8V]N9"!3=&%G92"8I9=Y($AI +M#28./ +>@Y*#DR!+:6=O=2"!18&'@D^"8(._@]:$081@A+X* +eofeof + +$example{'euc'} = unpack('u',<<'eofeof'); +M1FERI?*E\R!+:6=O=2"AIJ'GH["CP:;!IMBGHJ?!J,`* +eofeof + +$example{'utf8'} = unpack('u',<<'eofeof'); +M[[N_1FER(A#_(?^Q`\D#$00O!$(E"@`` +eofeof + +$example{'u16L0'} = unpack('u',<<'eofeof'); +M1@!I`'(`L)C^.7S)AJ"0D* +eofeof + +$example{'euc1'} = unpack('u',<<'eofeof'); +8[;'Q\,&L"N6ZSN\*\NT)ON7.SL_+"0D* +eofeof + +$example{'utf1'} = unpack('u',<<'eofeof'); +AZ+J%Z:N/Z8JM"N>VNNFZEPKIM(D)Y+B*Z:"8Y+J8"0D* +eofeof + +$example{'jis2'} = unpack('u',<<'eofeof'); ++&R1".EA&(QLH0@H` +eofeof + +$example{'sjis2'} = unpack('u',<<'eofeof'); +%C=:3H0H` +eofeof + +$example{'euc2'} = unpack('u',<<'eofeof'); +%NMC&HPH` +eofeof + +$example{'utf2'} = unpack('u',<<'eofeof'); +'YI:.Z)>D"@`` +eofeof + +# From JIS + +print "JIS to JIS ...";&test("$nkf -j",$example{'jis'},$example{'jis'}); +print "JIS to SJIS...";&test("$nkf -s",$example{'jis'},$example{'sjis'}); +print "JIS to EUC ...";&test("$nkf -e",$example{'jis'},$example{'euc'}); +print "JIS to UTF8...";&test("$nkf -w",$example{'jis'},$example{'utf8N'}); +print "JIS to U16L...";&test("$nkf -w16L",$example{'jis'},$example{'u16L'}); +print "JIS to U16B...";&test("$nkf -w16B",$example{'jis'},$example{'u16B'}); +print "JIS to JIS ...";&test("$nkf --ic=iso-2022-jp --oc=iso-2022-jp" ,$example{'jis'},$example{'jis'}); +print "JIS to SJIS...";&test("$nkf --ic=iso-2022-jp --oc=shift_jis" ,$example{'jis'},$example{'sjis'}); +print "JIS to EUC ...";&test("$nkf --ic=iso-2022-jp --oc=euc-jp" ,$example{'jis'},$example{'euc'}); +print "JIS to UTF8...";&test("$nkf --ic=iso-2022-jp --oc=utf-8n" ,$example{'jis'},$example{'utf8N'}); +print "JIS to U16L...";&test("$nkf --ic=iso-2022-jp --oc=utf-16le-bom",$example{'jis'},$example{'u16L'}); +print "JIS to U16B...";&test("$nkf --ic=iso-2022-jp --oc=utf-16be-bom",$example{'jis'},$example{'u16B'}); + +# From SJIS + +print "SJIS to JIS ...";&test("$nkf -j",$example{'sjis'},$example{'jis'}); +print "SJIS to SJIS...";&test("$nkf -s",$example{'sjis'},$example{'sjis'}); +print "SJIS to EUC ...";&test("$nkf -e",$example{'sjis'},$example{'euc'}); +print "SJIS to UTF8...";&test("$nkf -w",$example{'sjis'},$example{'utf8N'}); +print "SJIS to U16L...";&test("$nkf -w16L",$example{'sjis'},$example{'u16L'}); +print "SJIS to U16B...";&test("$nkf -w16B",$example{'sjis'},$example{'u16B'}); +print "SJIS to JIS ...";&test("$nkf --ic=shift_jis --oc=iso-2022-jp" ,$example{'sjis'},$example{'jis'}); +print "SJIS to SJIS...";&test("$nkf --ic=shift_jis --oc=shift_jis" ,$example{'sjis'},$example{'sjis'}); +print "SJIS to EUC ...";&test("$nkf --ic=shift_jis --oc=euc-jp" ,$example{'sjis'},$example{'euc'}); +print "SJIS to UTF8...";&test("$nkf --ic=shift_jis --oc=utf-8n" ,$example{'sjis'},$example{'utf8N'}); +print "SJIS to U16L...";&test("$nkf --ic=shift_jis --oc=utf-16le-bom" ,$example{'sjis'},$example{'u16L'}); +print "SJIS to U16B...";&test("$nkf --ic=shift_jis --oc=utf-16be-bom" ,$example{'sjis'},$example{'u16B'}); + +# From EUC + +print "EUC to JIS ...";&test("$nkf -j",$example{'euc'},$example{'jis'}); +print "EUC to SJIS...";&test("$nkf -s",$example{'euc'},$example{'sjis'}); +print "EUC to EUC ...";&test("$nkf -e",$example{'euc'},$example{'euc'}); +print "EUC to UTF8...";&test("$nkf -w",$example{'euc'},$example{'utf8N'}); +print "EUC to U16L...";&test("$nkf -w16L",$example{'euc'},$example{'u16L'}); +print "EUC to U16B...";&test("$nkf -w16B",$example{'euc'},$example{'u16B'}); +print "EUC to JIS ...";&test("$nkf --ic=euc-jp --oc=iso-2022-jp" ,$example{'euc'},$example{'jis'}); +print "EUC to SJIS...";&test("$nkf --ic=euc-jp --oc=shift_jis" ,$example{'euc'},$example{'sjis'}); +print "EUC to EUC ...";&test("$nkf --ic=euc-jp --oc=euc-jp" ,$example{'euc'},$example{'euc'}); +print "EUC to UTF8...";&test("$nkf --ic=euc-jp --oc=utf-8n" ,$example{'euc'},$example{'utf8N'}); +print "EUC to U16L...";&test("$nkf --ic=euc-jp --oc=utf-16le-bom" ,$example{'euc'},$example{'u16L'}); +print "EUC to U16B...";&test("$nkf --ic=euc-jp --oc=utf-16be-bom" ,$example{'euc'},$example{'u16B'}); + +# From UTF8 + +print "UTF8 to JIS ...";&test("$nkf -j", $example{'utf8N'},$example{'jis'}); +print "UTF8 to SJIS...";&test("$nkf -s", $example{'utf8N'},$example{'sjis'}); +print "UTF8 to EUC ...";&test("$nkf -e", $example{'utf8N'},$example{'euc'}); +print "UTF8 to UTF8N..";&test("$nkf -w", $example{'utf8N'},$example{'utf8N'}); +print "UTF8 to UTF8...";&test("$nkf -w8", $example{'utf8N'},$example{'utf8'}); +print "UTF8 to UTF8N..";&test("$nkf -w80", $example{'utf8N'},$example{'utf8N'}); +print "UTF8 to U16L...";&test("$nkf -w16L", $example{'utf8N'},$example{'u16L'}); +print "UTF8 to U16L0..";&test("$nkf -w16L0", $example{'utf8N'},$example{'u16L0'}); +print "UTF8 to U16B...";&test("$nkf -w16B", $example{'utf8N'},$example{'u16B'}); +print "UTF8 to U16B0..";&test("$nkf -w16B0", $example{'utf8N'},$example{'u16B0'}); +print "UTF8 to JIS ...";&test("$nkf --ic=utf-8 --oc=iso-2022-jp", $example{'utf8N'},$example{'jis'}); +print "UTF8 to SJIS...";&test("$nkf --ic=utf-8 --oc=shift_jis", $example{'utf8N'},$example{'sjis'}); +print "UTF8 to EUC ...";&test("$nkf --ic=utf-8 --oc=euc-jp", $example{'utf8N'},$example{'euc'}); +print "UTF8 to UTF8N..";&test("$nkf --ic=utf-8 --oc=utf-8", $example{'utf8N'},$example{'utf8N'}); +print "UTF8 to UTF8BOM";&test("$nkf --ic=utf-8 --oc=utf-8-bom", $example{'utf8N'},$example{'utf8'}); +print "UTF8 to UTF8N..";&test("$nkf --ic=utf-8 --oc=utf-8n", $example{'utf8N'},$example{'utf8N'}); +print "UTF8 to U16L...";&test("$nkf --ic=utf-8 --oc=utf-16le-bom", $example{'utf8N'},$example{'u16L'}); +print "UTF8 to U16L0..";&test("$nkf --ic=utf-8 --oc=utf-16le", $example{'utf8N'},$example{'u16L0'}); +print "UTF8 to U16B...";&test("$nkf --ic=utf-8 --oc=utf-16be-bom", $example{'utf8N'},$example{'u16B'}); +print "UTF8 to U16B0..";&test("$nkf --ic=utf-8 --oc=utf-16be", $example{'utf8N'},$example{'u16B0'}); + +print "UTF8 to UTF8...";&test("$nkf -w","\xf0\xa0\x80\x8b","\xf0\xa0\x80\x8b"); + +# From JIS + +print "JIS to JIS ...";&test("$nkf -j",$example{'jis1'},$example{'jis1'}); +print "JIS to SJIS...";&test("$nkf -s",$example{'jis1'},$example{'sjis1'}); +print "JIS to EUC ...";&test("$nkf -e",$example{'jis1'},$example{'euc1'}); +print "JIS to UTF8...";&test("$nkf -w",$example{'jis1'},$example{'utf1'}); + +# From SJIS + +print "SJIS to JIS ...";&test("$nkf -j",$example{'sjis1'},$example{'jis1'}); +print "SJIS to SJIS...";&test("$nkf -s",$example{'sjis1'},$example{'sjis1'}); +print "SJIS to EUC ...";&test("$nkf -e",$example{'sjis1'},$example{'euc1'}); +print "SJIS to UTF8...";&test("$nkf -w",$example{'sjis1'},$example{'utf1'}); + +# From EUC + +print "EUC to JIS ...";&test("$nkf -j",$example{'euc1'},$example{'jis1'}); +print "EUC to SJIS...";&test("$nkf -s",$example{'euc1'},$example{'sjis1'}); +print "EUC to EUC ...";&test("$nkf -e",$example{'euc1'},$example{'euc1'}); +print "EUC to UTF8...";&test("$nkf -w",$example{'euc1'},$example{'utf1'}); + +# From UTF8 + +print "UTF8 to JIS ...";&test("$nkf -j",$example{'utf1'},$example{'jis1'}); +print "UTF8 to SJIS...";&test("$nkf -s",$example{'utf1'},$example{'sjis1'}); +print "UTF8 to EUC ...";&test("$nkf -e",$example{'utf1'},$example{'euc1'}); +print "UTF8 to UTF8...";&test("$nkf -w",$example{'utf1'},$example{'utf1'}); + +# UTF +sub h {pack("H*",shift)} +print "SJIS to -w... ";&test("$nkf -w",h("82A0"),h("E38182")); +print "SJIS to -w8... ";&test("$nkf -w8",h("82A0"),h("EFBBBFE38182")); +print "SJIS to -w80... ";&test("$nkf -w80",h("82A0"),h("E38182")); +print "SJIS to UTF-8... ";&test("$nkf --oc=UTF-8",h("82A0"),h("E38182")); +print "SJIS to UTF-8N... ";&test("$nkf --oc=UTF-8N",h("82A0"),h("E38182")); +print "SJIS to UTF-8-BOM... ";&test("$nkf --oc=UTF-8-BOM",h("82A0"),h("EFBBBFE38182")); +print "SJIS to -w16... ";&test("$nkf -w16",h("82A0"),h("FEFF3042")); +print "SJIS to UTF-16... ";&test("$nkf --oc=UTF-16",h("82A0"),h("FEFF3042")); +print "SJIS to -w16B... ";&test("$nkf -w16B",h("82A0"),h("FEFF3042")); +print "SJIS to -w16B0... ";&test("$nkf -w16B0",h("82A0"),h("3042")); +print "SJIS to UTF-16BE... ";&test("$nkf --oc=UTF-16BE",h("82A0"),h("3042")); +print "SJIS to UTF-16BE-BOM...";&test("$nkf --oc=UTF-16BE-BOM",h("82A0"),h("FEFF3042")); +print "SJIS to -w16L... ";&test("$nkf -w16L",h("82A0"),h("FFFE4230")); +print "SJIS to -w16L0... ";&test("$nkf -w16L0",h("82A0"),h("4230")); +print "SJIS to UTF-16LE... ";&test("$nkf --oc=UTF-16LE",h("82A0"),h("4230")); +print "SJIS to UTF-16LE-BOM...";&test("$nkf --oc=UTF-16LE-BOM",h("82A0"),h("FFFE4230")); +print "SJIS to -w32... ";&test("$nkf -w32",h("82A0"),h("0000FEFF00003042")); +print "SJIS to UTF-32... ";&test("$nkf --oc=UTF-32",h("82A0"),h("0000FEFF00003042")); +print "SJIS to -w32B... ";&test("$nkf -w32B",h("82A0"),h("0000FEFF00003042")); +print "SJIS to -w32B0... ";&test("$nkf -w32B0",h("82A0"),h("00003042")); +print "SJIS to UTF-32BE... ";&test("$nkf --oc=UTF-32BE",h("82A0"),h("00003042")); +print "SJIS to UTF-32BE-BOM...";&test("$nkf --oc=UTF-32BE-BOM",h("82A0"),h("0000FEFF00003042")); +print "SJIS to -w32L... ";&test("$nkf -w32L",h("82A0"),h("FFFE000042300000")); +print "SJIS to -w32L0... ";&test("$nkf -w32L0",h("82A0"),h("42300000")); +print "SJIS to UTF-32LE... ";&test("$nkf --oc=UTF-32LE",h("82A0"),h("42300000")); +print "SJIS to UTF-32LE-BOM...";&test("$nkf --oc=UTF-32LE-BOM",h("82A0"),h("FFFE000042300000")); + + +print "\nOther Features\n\n"; +# Ambigous Case + +$example{'amb'} = unpack('u',<<'eofeof'); +MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&E +MPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*P +ML:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&E +MPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7" +ML+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"Q +MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7" +ML+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(* +eofeof + +$example{'amb.euc'} = unpack('u',<<'eofeof'); +M&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(; +M*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +M)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +>)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(* +eofeof + +$example{'amb.sjis'} = unpack('u',<<'eofeof'); +M&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(; +M*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +M)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +>)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(* +eofeof + +printf "%-40s", "Ambiguous Case."; + &test("$nkf -j",$example{'amb'},$example{'amb.euc'}); + +# Input assumption + +printf "%-40s", "SJIS Input assumption"; + &test("$nkf -jSx",$example{'amb'},$example{'amb.sjis'}); + +# UTF8_STR_OF_JIS_SECOND_LEVEL_KANJI +$example{'utf8_str_of_jis_second_level_kanji'} = "\xe9\xa4\x83\xe5\xad\x90"; + +printf "%-40s", "UTF8_STR_OF_JIS_SECOND_LEVEL_KANJI"; + &test("$nkf -w",$example{'utf8_str_of_jis_second_level_kanji'}, + $example{'utf8_str_of_jis_second_level_kanji'}); + +# Broken JIS + +printf "%-40s", "Broken JIS"; + $input = $example{'jis'}; + $input =~ s/\033//g; + &test("$nkf -Be",$input,$example{'euc'}); +printf "%-40s", "Broken JIS is safe on Normal JIS?"; + $input = $example{'jis'}; + &test("$nkf -Be",$input,$example{'euc'}); + +# test_data/cp932 + +$example{'test_data/cp932'} = unpack('u',<<'eofeof'); +%^D`@_$L` +eofeof + +$example{'test_data/cp932.ans'} = unpack('u',<<'eofeof'); +%_/$@_.X` +eofeof + +printf "%-40s", "test_data/cp932"; + &test("$nkf -eS",$example{'test_data/cp932'},$example{'test_data/cp932.ans'}); +printf "%-40s", "test_data/cp51932"; + &test("$nkf --ic=cp932 --oc=cp51932",$example{'test_data/cp932'},$example{'test_data/cp932.ans'}); + +# test_data/cp932inv +printf "%-40s", "test_data/cp932inv"; + &test("$nkf -sE --cp932",$example{'test_data/cp932.ans'},$example{'test_data/cp932'}); + +# test_data/no-cp932inv + +$example{'test_data/no-cp932inv.ans'} = unpack('u',<<'eofeof'); +%[N\@[NP` +eofeof + +printf "%-40s", "test_data/no-cp932inv"; + &test("$nkf -sE --no-cp932",$example{'test_data/cp932.ans'},$example{'test_data/no-cp932inv.ans'}); +# JIS X 0212 +$example{'jisx0212_euc'} = "\x8F\xA2\xAF\x8F\xED\xE3"; +$example{'jisx0212_jis'} = "\x1b\x24\x28\x44\x22\x2f\x6d\x63\x1b\x28\x42"; + +printf "%-40s", "ISO-2022-JP-1 to EUC-JP"; + &test("$nkf --ic=ISO-2022-JP-1 --oc=EUC-JP",$example{'jisx0212_jis'},$example{'jisx0212_euc'}); + +printf "%-40s", "EUC-JP to ISO-2022-JP-1"; + &test("$nkf --ic=EUC-JP --oc=ISO-2022-JP-1",$example{'jisx0212_euc'},$example{'jisx0212_jis'}); +# JIS X 0213 + +$example{'jisx0213_sjis'} = unpack('u',<<'eofeof'); +0@:V(G9ATF)WJIN_W\$#\]``` +eofeof + +$example{'jisx0213_euc'} = unpack('u',<<'eofeof'); +2HJ^O_<_5S_WTJ/[YCZ&AC_[V +eofeof + +$example{'jisx0213_jis2000'} = unpack('u',<<'eofeof'); +;&R0H3R(O+WU/54]]="A^>1LD*%`A(7YV&RA" +eofeof +$example{'jisx0213_jis2004'} = unpack('u',<<'eofeof'); +;&R0H42(O+WU/54]]="A^>1LD*%`A(7YV&RA" +eofeof + +$example{'jisx0213_utf8'} = unpack('u',<<'eofeof'); +:[[R'Y:REY:V!Y;>+Y;>BZ;ZB\*""B?"JFK(` +eofeof + +printf "%-40s", "Shift_JISX0213 to EUC-JISX0213"; + &test("$nkf --ic=Shift_JISX0213 --oc=EUC-JISX0213",$example{'jisx0213_sjis'},$example{'jisx0213_euc'}); + +printf "%-40s", "EUC-JISX0213 to Shift_JISX0213"; + &test("$nkf --ic=EUC-JISX0213 --oc=Shift_JISX0213",$example{'jisx0213_euc'},$example{'jisx0213_sjis'}); + +printf "%-40s", "ISO-2022-JP-3 to EUC-JISX0213"; + &test("$nkf --ic=ISO-2022-JP-3 --oc=EUC-JISX0213",$example{'jisx0213_jis2000'},$example{'jisx0213_euc'}); + +printf "%-40s", "ISO-2022-JP-2004 to EUC-JISX0213"; + &test("$nkf --ic=ISO-2022-JP-2004 --oc=EUC-JISX0213",$example{'jisx0213_jis2004'},$example{'jisx0213_euc'}); + +printf "%-40s", "EUC-JISX0213 to ISO-2022-JP-2004"; + &test("$nkf --ic=EUC-JISX0213 --oc=ISO-2022-JP-2004",$example{'jisx0213_euc'},$example{'jisx0213_jis2004'}); + +printf "%-40s", "EUC-JISX0213 to UTF-8"; + &test("$nkf --ic=EUC-JISX0213 -w",$example{'jisx0213_euc'},$example{'jisx0213_utf8'}); + +printf "%-40s", "UTF-8 to EUC-JISX0213"; + &test("$nkf -W --oc=EUC-JISX0213",$example{'jisx0213_utf8'},$example{'jisx0213_euc'}); + +printf "%-40s", "ISO-2022-JP-{1,3,2004} to UTF-8"; + &test("$nkf --ic=iso-2022-jp-2004 -w", + "\x1b\$B5Y\x1b\$(O~e\x1b\$(Q.!\x1b\$(P#M\x1b\$(D\\e\x1b(B", + "\xe4\xbc\x91\xe9\xb7\x97\xe4\xbf\xb1\xe5\x8c\x8b\xe8\xa4\xb1"); +printf "%-40s", "UTF-8 to ISO-2022-JP-2004"; + &test("$nkf -W --oc=iso-2022-jp-2004", + "\xe4\xbc\x91\xe9\xb7\x97\xe4\xbf\xb1\xe5\x8c\x8b\xe8\xa4\xb1", + "\x1b\$(Q5Y~e.!\x1b\$(P#M\x1b(B"); + +# test_data/jisx0213nonbmp + +$example{'test_data/jisx0213nonbmp'} = unpack('u',<<'eofeof'); +MKJ*OPJ_,K^"O^\_4S^//[O6Z]?+VJ?:R]N#W[/C^^:GYQ_G4^>[ZW?NS^\G[ +M[/S)_-'^YH^AH8^AJX^AKH^AMH^AQH^A\(^A]X^A^8^CHH^CI8^CIX^CL8^C +MLH^CN(^COX^CP8^CRH^CTH^CTX^CV8^CW(^C]X^DJH^DL8^DLH^DNH^DO8^D +MV8^DW(^DWH^DXX^DZH^DZX^D\H^D](^D]8^EI8^ELH^EOH^EQ(^EQX^EU8^E +MUH^E_H^HL(^HMX^HN(^HNH^HNX^HOX^HP(^HQ8^HR(^HRH^HRX^HVX^HYH^H +M[(^LHH^LJX^LL(^LT(^LY8^L[8^L\H^MI(^MJ8^MJH^MLH^MM(^MM8^MN8^M +MUH^M_8^NHX^NI(^NNH^NO(^NO8^NPH^NPX^NQ(^NQX^NR8^NU8^NUH^NUX^N +MVX^N]X^N^(^OJH^OOX^OP(^OPH^OPX^OSH^OV8^OX8^OZ8^OZH^O\(^O]8_N +MHX_NM(_NR8_NW(_NWH_NWX_NX(_OLH_OQX_OS8_OX8_OY(_PHH_PLX_PN8_P +MTX_P^X_QKH_QL(_QM8_QQ(_QW8_QX8_QYH_QZ8_Q]8_Q]X_Q^H_RH8_RHX_R +MI(_RJ(_RK(_RO8_RR(_RVX_R]8_R]H_SLH_SO8_SOH_SP(_STH_SW8_SWH_S +M\X_S](_S]8_S]X_S^X_S_8_THH_TI(_TIX_TKH_TKX_TM(_TM8_TO8_TPH_T +MSX_TZ8_TZX_T\H_T]8_T^8_UM8_UNH_UQH_UUH_UV(_UVH_UW8_UWX_UXX_U +MZH_U\(_U\X_VQ(_VSH_VW8_V]8_V_H_WH8_WHH_WLX_WMH_WY(_WY8_WZX_W +M[H_W\X_XJ8_XJH_XK(_XM(_XO(_XOH_XPH_XUH_XXX_X]X_X^8_X^H_YI8_Y +MKX_YLH_YN8_YPH_YR(_YV8_YWH_YYH_YZX_Y^H_Y_H_ZH8_ZK(_ZKX_ZSX_Z +MT(_ZUX_ZY8_ZYH_Z\8_Z\H_Z_H_[H8_[K(_[K8_[MH_[MX_[O8_[OH_[SH_[ +MSX_[UX_[VH_[W(_[W8_[X8_[Y8_[YX_[Z8_[\8_\HH_\HX_\N(_\PH_\S(_\ +MUH_\V8_\W8_\]H_]K(_]RX_]S(_]V8_]VX_]W8_]YX_][8_]\(_^I8_^J8_^ +=JX_^LH_^M8_^TX_^V(_^VH_^[H_^\(_^\H_^]@H` +eofeof + +$example{'test_data/jisx0213nonbmp.ans'} = unpack('u',<<'eofeof'); +M\*"`B_"AB+WPH8R;\*&1KO"AHKWPH*Z?\*&:M/"AN+3PHX>$\*.7A/"CG+_P +MHYVC\*.SOO"DG['PI9*.\*64CO"EG;'PI:>$\*6VH?"FJ[_PIKF`\*>#M/"G +MFH3PJ(FW\*B/C?"JAI#PH(*)\*""HO"@@J3PH(:B\*"(D_"@C*OPH(Z!\*"- +ML?"@C[GPH)&*\*"4B?"@EY;PH)BH\*"=C_"@H(?PH*"Z\*"BN?"@I;SPH*:= +M\*"KD_"@K)WPH+6%\*"WH?"@NI7PH+FM\*"YI/"@O9_PH8B!\*&)E?"AB;OP +MH8FT\*&+I/"ABY?PH8N]\*&,MO"AC83PH8^$\*&1K?"AEY?PIK"I\*&9A_"A +MG(;PH9V"\*&G@_"AL9;PH;2M\*&UA?"AM;CPH;6B\*&VH?"AMISPH;:2\*&V +MM_"AMZ#PH;BS\*&\GO"AO;;PH;^Z\**%N_"BC)[PHHZM\**;L_"BH9OPHJ*K +M\**FC_"BJKCPHJV/\**MD/"BK8;PHK"=\**NIO"BL*3PHK>A\*.'@_"CA[7P +MHX:V\*.-LO"CCY/PHX^2\*./D/"CCZ3PHX^5\*./FO"CCY_PHY&*\*.1D?"C +MD8OPHY&E\*.3I/"CE9KPHY:4\*.8N?"CF8?PHYBX\*.8NO"CG)SPHYR,\*.= +MI/"CG[_PHY^G\*.@I/"CH+WPHZJ8\*.QO_"CM(#PH[6`\*.WNO"CM[GPH[>3 +M\*.]OO"D@I;PI(2#\*2'AO"DA[[PI(Z\\*28J?"DFJ7PI**6\*2IC?"DK9;P +MI*VO\*2PEO"DM)3PI+B.\*2XM_"DN:KPI+J+\*6!BO"E@97PI82B\*6&J?"E +MAZ7PI8>-\*6(GO"EB8SPI9"N\*63F?"EEJ?PI9ZI\*6>M/"EIY3PI:ND\*6K +MH_"EJ['PI:ZR\*6QB_"EL:3PI;BN\*6YEO"EN:7PI;FB\*6[F/"ENX+PI;NH +M\*6\H_"EO9SPI;^@\*6_E/"F@(SPI;^[\*:`E_"F@:#PIH.M\*:)L/"FBH;P +MIHV,\*.TCO"FD(+PIIF^\*::L/"FG)WPIJ.=\*:CJO"FI9'PIJ6O\*:GG?"F +MJ)[PIJF8\*:JC/"FJK?PIK&S\*:SG?"FN:7PIKZ4\*:_N/"FO[;PIK^W\*>$ +MC?"GA+GPIX^;\*>/FO"GC[[PIY"0\*>1B?"GF)7PIYB4\*>8L?"GFI/PIYR. +M\*>JA/"GKK/PIZZ^\*>OA_"GLKCPI[:@\*>XD/"GOK?P +MJ(**\*B"N_"HBH+PJ(NS\*B0C/"HD97PJ)6K\*B7B/"HEXGPJ)N7\*B;NO"H +MI8GPJ*6&\*BEJ_"HIH?PJ*:(\*BFNO"HIKOPJ*B>\*BHJ?"HJ;'PJ*F#\*BJ +MF?"HJXWPJ*ND\*BKG?"HKX'PJ*^O\*BTD/"HM;'PJ+>[\*BXG_"HN+;PJ+J) +M\*B[J_"HO++PJ+^X\*F*H/"IBK'PJ9*0\*F7C_"IF;_PJ9NP\*FQ\*J8@O"JF)KPJIJR"@`` +eofeof + +printf "%-40s", "EUC-JISX0213 to UTF-8 (not in BMP)"; + &test("$nkf --ic=euc-jisx0213 -w",$example{'test_data/jisx0213nonbmp'},$example{'test_data/jisx0213nonbmp.ans'}); +printf "%-40s", "UTF-8 to EUC-JISX0213 (not in BMP)"; + &test("$nkf -W --oc=euc-jisx0213",$example{'test_data/jisx0213nonbmp.ans'},$example{'test_data/jisx0213nonbmp'}); + +# test_data/jisx0213needx0213_f + +$example{'test_data/jisx0213needx0213_f'} = unpack('u',<<'eofeof'); +MXH*LPKS#B<.?P['%C<6"Q)C$C<6OR:[%B\63RJ+)FLN0RZ;+GN*=O^*%M^*3 +MFN.+DN.+G^*8GO"@@(OE@(+EA(OCDYOEC:'EC:/EEH;OJ+CEG+/EHJGEI9WE +MB9WFD[?FF8CFFJ#FGKOFH;+CKK;GI(#OJ8WGIKCOJ97GKYGGL:WGM9SGN8?H +M@+?PIJN_Z(VBZ(ZGZ(^1Z)2CZ)F;Z)FLZ*"?[ZFA[ZFB[ZFD\*B)M^F"F>F$ +ME>F$I^>J@N>JN>>MI.>ML^>OL.>RIN>SM>2+G>>VI^>ZD>>]DO"CM([H@([P +MIIJPZ(2>\*:CG>B)B^^IG>B*M.B.E.B0C^B1O.B4F^B5D?"FO[;HF:_HFZ;H +MG+KHG;+HH(OPIYB4Z*.2Z*6%Y)JAZ*BUY)R,\*>NOO"GMJ#HM(GHN:SDH8[H +MOK;HO['I@K#IA8;IA9GIB9'PJ*:(Z8N&Z8N[Z8V:Z9")Z96XZ9J]Z9N:Z9Z6 +MZ:"EZ:*\Z:.QZ:6`Z:B@Z:BQZ:NE\*FXO>FOKO"INZGIL:GPJH":Z;:9Z;B" +-\**(F/"JE['PJIJR"@`` +eofeof + +$example{'test_data/jisx0213needx0213_f.ans'} = unpack('u',<<'eofeof'); +MJ:&ILZG`J=6IYZG^JJZJOJK,JM6JZZKZJZJKO:O#J]6KX:OQK*JLO*S+K-VL +MZJW^KJ*NO*[,KMNN[Z[PKZJOMJ_%K]^OZ:_^]:3UN/7$]=CUX_7^^:WYM/G$ +M^='YYOGP^J3ZM/K(^MWZ[?KY^Z'[MOO.^]+[Y_OY_*_\N/S)_-W\[/SPC_.M +MC_.TC_/.C_/1C_/CC_/VC_2HC_2[C_3$C_3>C_3JC_3UC_6EC_6ZC_7!C_76 +MC_7KC_7TC_:BC_:WC_;!C_;2C_;FC_;PC_>AC_>[C_?.C_?:C_?BC_?\C_BJ +MC_BSC_C`C_C.C_C8C_CKC_CYC_FOC_FSC_G/C_GUO[7#M=^U][7[MA.V-[8_MGNV?[:OMKNVO[;[M +MO^W"[<[MS^W0[=[MW^WL[>[M[^W[[?SN1>Y.[D_N4>Y>[E_N;>YO[GWN?NZ' +F[HWNC^Z0[I[NG^ZF[J[NK^ZV[K_NQ^[.[L_NT.[?[NSN[^[[[OP` +eofeof + +$example{'test_data/shift_jisx0213-utf8-need-no-cp932.ans'} = unpack('u',<<'eofeof'); +MYZ&#YZ2>HN>>IK>^IE>>KJ^>MCN>MH.^IEN2) +MI.>QF>>TL>>U@>>WH^>XB.>XD>>_G^>_K.^IF^B%H.B%I^B%J.B*H^B*I.B, +MHNB,NNB-@^B/A^B/C^B0BNB2M.B2NNB3@NB6HNB6L.B9F^B9HNB>K>B>M>B@ +MG^BCM>^IH.BDF.BHE>BHHNBIN>^IH^BMAN^II.BWCO"HB;?HO93PJ(^-Z+ZF +/Z8*^Z82BZ82OZ8>[Z8>D +eofeof + +printf "%-40s", "test_data/shift_jisx0213-utf8-need-no-cp932 "; + &test("$nkf --ic=shift_jisx0213 -w",$example{'test_data/shift_jisx0213-utf8-need-no-cp932'},$example{'test_data/shift_jisx0213-utf8-need-no-cp932.ans'}); + +# jisx0213conflict-ibmext +$example{'shift_jisx0213conflict-ibmext'} = "\x87\x40\xed\x40\xee\xf6\xfa\x52\xfb\x45\xfb\xfc\xfc\x4b"; +$example{'shift_jisx0213conflict-ibmext.x0213utf8'} = "\xe2\x91\xa0\xe7\xa1\x83\xe9\x86\x9e\xe8\xb4\x89\xe9\x8c\x8d\xe9\xa8\xa0\xf0\xa9\xa9\xb2"; +$example{'shift_jisx0213conflict-ibmext.cp932utf8'} = "\xe2\x91\xa0\xe7\xba\x8a\xe2\x85\xb7\xe2\x85\xa8\xe6\xb7\xbc\xe9\xab\x99\xe9\xbb\x91"; + +printf "%-40s", "Shift_JISX0213 to UTF-8 (ibmext etc)"; + &test("$nkf --ic=shift_jisx0213 -w", + $example{'shift_jisx0213conflict-ibmext'}, + $example{'shift_jisx0213conflict-ibmext.x0213utf8'}); + +printf "%-40s", "CP932 to UTF-8 (ibmext etc)"; + &test("$nkf --ic=cp932 -w", + $example{'shift_jisx0213conflict-ibmext'}, + $example{'shift_jisx0213conflict-ibmext.cp932utf8'}); + +printf "%-40s", "UTF-8 to Shift_JISX0213 (ibmext etc)"; + &test("$nkf --oc=shift_jisx0213 -W", + $example{'shift_jisx0213conflict-ibmext.x0213utf8'}, + $example{'shift_jisx0213conflict-ibmext'}); + +printf "%-40s", "UTF-8 to CP932 (ibmext etc)"; + &test("$nkf --oc=cp932 -W --cp932inv", + $example{'shift_jisx0213conflict-ibmext.cp932utf8'}, + "\x87\x40\xfa\x5c\xfa\x47\x87\x5c\xfb\x45\xfb\xfc\xfc\x4b"); +# test_data/jisx0213utf8comb + +$example{'test_data/jisx0213utf8comb'} = unpack('u',<<'eofeof'); +MI/>D^*3YI/JD^Z7WI?BE^:7ZI?NE_*7]I?ZF^*O$J\BKR:O*J\NKS*O-J\ZK +.SZOEJ^:KVJOWXX*:PZ;,@,F4 +MS(#)E,R!RHS,@,J,S(')FD^*3YI/JD^Z7WI?BE^:7ZI?NE_*7]I?ZF^*O$J\BKR:O*J\NKS*O-J\ZK +,SZOEJ^:KVJOWXX*:PZ;,@,F4 +MS(#)E,R!RHS,@,J,S(')FX0208 conversion +# X0208 aphabet -> ASCII +# X0201 相互変換 + +print "\nX0201 test\n\n"; + +$example{'x0201.sjis'} = unpack('u',<<'eofeof'); +MD5.*<(-*@TR#3H-0@U*#2X--@T^#48-3"I%3B7""8()A@F*"8X)D@F6"9H*! +M@H*"@X*$@H6"AH*'"I%3BTR-AH%)@9>!E(&0@9.!3X&5@9:!:8%J@7R!>X&! +M@6V!;H%O@7"!CPJ4O(IPMK>X/;FZMMZWWKC>N=ZZWH+&"I2\BG#*W\O?S-_- +MW\[?M]^QW@K*W\O?S`IH86YK86MU(,K?R]_,I`K*W\O?S-VA"I2\BG""S(SC +!"@!" +eofeof + +$example{'x0201.euc'} = unpack('u',<<'eofeof'); +MP;2ST:6KI:VEKZ6QI;.EK*6NI;"ELJ6T"L&TL=&CP:/"H\.CQ*/%H\:CQZ/A +MH^*CXZ/DH^6CYJ/G"L&TM:VYYJ&JH?>A]*'PH?.AL*'UH?:ARJ'+H=VAW*'A +MHCK>.WHZXCMZ.N8[>CKJ. +MWJ3("LB^L]&.RH[?CLN.WX[,CM^.S8[?CLZ.WXZWCM^.L8[>"H[*CM^.RX[? +MCLP*:&%N:V%K=2".RH[?CLN.WX[,CJ0*CLJ.WX[+CM^.S([=CJ$*R+ZST:3. +#N.4* +eofeof + +$example{'x0201.utf'} = unpack('u',<<'eofeof'); +MY86HZ*>2XX*KXX*MXX*OXX*QXX*SXX*LXX*NXX*PXX*RXX*T"N6%J.B+L>^\ +MH>^\HN^\H^^\I.^\I>^\IN^\I^^]@>^]@N^]@^^]A.^]A>^]AN^]APKEA:CH +MJ)CEC[?OO('OO*#OO(/OO(3OO(7OO+[OO(;OO(KOO(COO(GBB)+OO(OOO)WO +MO+OOO+WOO9OOO9W"I0KEC8KHIY+OO;;OO;?OO;@][[VY[[VZ[[VV[[Z>[[VW +M[[Z>[[VX[[Z>[[VY[[Z>[[VZ[[Z>XX&H"N6-BNBGDN^^BN^^G^^^B^^^G^^^ +MC.^^G^^^C>^^G^^^CN^^G^^]M^^^G^^]L>^^G@KOOHKOOI_OOHOOOI_OOHP* +M:&%N:V%K=2#OOHKOOI_OOHOOOI_OOHSOO:0*[[Z*[[Z?[[Z+[[Z?[[Z,[[Z= +1[[VA"N6-BNBGDN.!KN6^C`H` +eofeof + +$example{'x0201.jis'} = unpack('u',<<'eofeof'); +M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$C02-"(T,C +M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA""ALD0D$T-2TY9B$J(7.5XZ7ALD0B1(&RA""ALD0D@^,U$;*$E*7TM?3%]-7TY? +M-U\Q7ALH0@H;*$E*7TM?3!LH0@IH86YK86MU(!LH24I?2U],)!LH0@H;*$E* +97TM?3%TA&RA""ALD0D@^,U$D3CAE&RA""@`` +eofeof + +$example{'x0201.sosi'} = unpack('u',<<'eofeof'); +M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA*"ALD0D$T,5$C02-"(T,C +M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA*"ALD0D$T-2TY9B$J(7.5XZ7@\;)$(D2!LH2@H;)$)(/C-1&RA*#DI?2U],7TU? +M3E\W7S%>#PH.2E]+7TP/&RA*"FAA;FMA:W4@#DI?2U],)`\;*$H*#DI?2U], +672$/&RA*"ALD0D@^,U$D3CAE&RA""@`` +eofeof + +$example{'x0201.x0208'} = unpack('u',<<'eofeof'); +M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$;*$)!0D-$ +M149'86)C9&5F9PH;)$)!-#4M.68;*$(A0",D)5XF*B@I+2L]6UU[?1LD0B%O +M&RA""ALD0D@^,U$E*R4M)2\;*$(]&R1")3$E,R4L)2XE,"4R)30D2!LH0@H; +M)$)(/C-1)5$E5"57)5HE724M(2PE(B$K&RA""ALD0B51)50E51LH0@IH86YK +M86MU(!LD0B51)50E52$B&RA""ALD0B51)50E525S(2,;*$(*&R1"2#XS421. +&.&4;*$(* +eofeof + +# -X is necessary to allow X0201 in SJIS +# -Z convert X0208 alphabet to ASCII +printf "%-40s", "X0201 conversion: SJIS"; + &test("$nkf -jXZ",$example{'x0201.sjis'},$example{'x0201.x0208'}); +printf "%-40s", "X0201 conversion: JIS"; + &test("$nkf -jZ",$example{'x0201.jis'},$example{'x0201.x0208'}); +printf "%-40s", "X0201 conversion: SI/SO"; + &test("$nkf -jZ",$example{'x0201.sosi'},$example{'x0201.x0208'}); +printf "%-40s", "X0201 conversion: EUC"; + &test("$nkf -jZ",$example{'x0201.euc'},$example{'x0201.x0208'}); +printf "%-40s", "X0201 conversion: UTF8"; + &test("$nkf -jZ",$example{'x0201.utf'},$example{'x0201.x0208'}); +printf "%-40s", "-wZ"; &test("$nkf -wZ", + "\xE3\x80\x80\xEF\xBD\x81\xEF\xBC\xA1&\xE3\x82\xA2", + "\xE3\x80\x80aA&\xE3\x82\xA2"); +printf "%-40s", "-wZ0"; &test("$nkf -wZ0", + "\xE3\x80\x80\xEF\xBD\x81\xEF\xBC\xA1&\xE3\x82\xA2", + "\xE3\x80\x80aA&\xE3\x82\xA2"); +printf "%-40s", "-wZ1"; &test("$nkf -wZ1", + "\xE3\x80\x80\xEF\xBD\x81\xEF\xBC\xA1&\xE3\x82\xA2", + " aA&\xE3\x82\xA2"); +printf "%-40s", "-wZ2"; &test("$nkf -wZ2", + "\xE3\x80\x80\xEF\xBD\x81\xEF\xBC\xA1&\xE3\x82\xA2", + " aA&\xE3\x82\xA2"); +printf "%-40s", "-wZ3"; &test("$nkf -wZ3", + "\xE3\x80\x80\xEF\xBD\x81\xEF\xBC\xA1&\xE3\x82\xA2", + "\xE3\x80\x80aA&\xE3\x82\xA2"); +printf "%-40s", "-wZ4"; &test("$nkf -wZ4", + "\xE3\x80\x80\xEF\xBD\x81\xEF\xBC\xA1&\xE3\x82\xA2", + "\xE3\x80\x80aA&\xEF\xBD\xB1"); +# -x means X0201 output +printf "%-40s", "X0201 output: SJIS"; + &test("$nkf -xs",$example{'x0201.euc'},$example{'x0201.sjis'}); +printf "%-40s", "X0201 output: JIS"; + &test("$nkf -xj",$example{'x0201.sjis'},$example{'x0201.jis'}); +printf "%-40s", "X0201 output: EUC"; + &test("$nkf -xe",$example{'x0201.jis'},$example{'x0201.euc'}); +printf "%-40s", "X0201 output: UTF8"; + &test("$nkf -xw",$example{'x0201.jis'},$example{'x0201.utf'}); +# test_data/x0201jis= + +$example{'test_data/x0201jis=.ans'} = unpack('u',<<'eofeof'); +MH:*CI*6FIZBIJJNLK:ZOL+&RL[2UMK>XN;J[O+V^O\#!PL/$Q<;'R,G*R\S- +2SL_0T=+3U-76U]C9VMO?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\x1b(B", + $example{'test_data/x0201jis=.ans'}); +# test_data/Xx0213 + +$example{'test_data/Xx0213'} = unpack('u',<<'eofeof'); +M[[VV[[Z?[[VW[[Z?[[VX[[Z?[[VY[[Z?[[VZ[[Z?[[V^[[Z?[[Z"[[Z?[[Z$ +*[[Z?XX>WXX*:"@`` +eofeof + +$example{'test_data/Xx0213.ans'} = unpack('u',<<'eofeof'); +3I?>E^*7YI?JE^Z7\I?VE_J;X"@`` +eofeof + +printf "%-40s", "test_data/Xx0213 "; + &test("$nkf -X -W --oc=euc-jisx0213",$example{'test_data/Xx0213'},$example{'test_data/Xx0213.ans'}); +# test_data/xx0213 + +$example{'test_data/xx0213'} = unpack('u',<<'eofeof'); +M[[VV[[Z?[[VW[[Z?[[VX[[Z?[[VY[[Z?[[VZ[[Z?[[V^[[Z?[[Z"[[Z?[[Z$ +*[[Z?XX>WXX*:"@`` +eofeof + +$example{'test_data/xx0213.ans'} = unpack('u',<<'eofeof'); +CCK:.WXZWCM^.N([?CKF.WXZZCM^.OH[?CL*.WX[$CM^F^`H` +eofeof + +printf "%-40s", "test_data/xx0213 "; + &test("$nkf -x -W --oc=euc-jisx0213",$example{'test_data/xx0213'},$example{'test_data/xx0213.ans'}); +# test_data/Z4x0213 + +$example{'test_data/Z4x0213'} = unpack('u',<<'eofeof'); +3I?>E^*7YI?JE^Z7\I?VE_J;X"@`` +eofeof + +$example{'test_data/Z4x0213.ans'} = unpack('u',<<'eofeof'); +M[[VV[[Z?[[VW[[Z?[[VX[[Z?[[VY[[Z?[[VZ[[Z?[[V^[[Z?[[Z"[[Z?[[Z$ +*[[Z?XX>WXX*:"@`` +eofeof + +printf "%-40s", "test_data/Z4x0213 "; + &test("$nkf -Z4 --ic=euc-jisx0213 -w",$example{'test_data/Z4x0213'},$example{'test_data/Z4x0213.ans'}); +# test_data/Z4comb + +$example{'test_data/Z4comb'} = unpack('u',<<'eofeof'); +MXX""XX",XX"-XX"!XX.[XX.\XX*;XX*XX.?XX.@XX.AXX.BXX.C +MXX.DXX.EXX.FXX.GXX.HXX.IXX.JXX.KXX.LXX.MXX.OXX.RXX.SXX.TXX*K +MXX*:XX*MXX*:XX*OXX*:XX*QXX*:XX*SXX*:XX*[XX*:XX.$XX*:XX.(XX*: +-XX>WXX*:XX*BXX*9"@`` +eofeof + +$example{'test_data/Z4comb.ans'} = unpack('u',<<'eofeof'); +MCJ&.HHZCCJ2.I8ZPCMZ.WXZGCK&.J(ZRCJF.LXZJCK2.JXZUCK:.MH[>CK>. +MMX[>CKB.N([>CKF.N8[>CKJ.NH[>CKN.NX[>CKR.O([>CKV.O8[>CKZ.OH[> +MCK^.OX[>CL".P([>CL&.P8[>CJ^.PH["CMZ.PX[#CMZ.Q([$CMZ.Q8[&CL>. +MR([)CLJ.RH[>CLJ.WX[+CLN.WH[+CM^.S([,CMZ.S([?CLV.S8[>CLV.WX[. +MCLZ.WH[.CM^.SX[0CM&.TH[3CJR.U(ZMCM6.KH[6CM>.V([9CMJ.VX[.WXZXCM^.N8[?CKJ.WXZ^CM^.PH[?CL2.WZ;XCK&.W@H` +eofeof + +printf "%-40s", "test_data/Z4comb "; + &test("$nkf -Z4 -W --oc=euc-jisx0213",$example{'test_data/Z4comb'},$example{'test_data/Z4comb.ans'}); + +# MIME decode + +print "\nMIME test\n\n"; + +# MIME ISO-2022-JP + +$example{'mime.iso2022'} = unpack('u',<<'eofeof'); +M/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23TI566Q/4U9)1WEH2S\]"CT_ +M:7-O+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]*55EL3U-624=Y:$L_/0H]/VES +M;RTR,#(R+4I0/U$_/3%")$(D1B11/3%"*$)?96YD/ST*&R1`)#TD)B0K)$H; +M*$H@/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D:'-O4V<]/3\] +M(&5N9"!O9B!L:6YE"CT_25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]0>6LW +M9&AS;U-G/3T_/2`]/TE33RTR,#(R+4I0/T(_1WE204Y%13=E:5)/4'EK-V1H +M5)!3D5%-V5I +44D]*55EL3QM;2U-624=Y:$L_/0H_ +eofeof + +$example{'mime.ans.strict'} = unpack('u',<<'eofeof'); +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A5)!3D5%-V5I4D]*55EL3QM;2U-624=Y:$L_/0H_ +eofeof + +$example{'mime.unbuf.strict'} = unpack('u',<<'eofeof'); +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-AB1./RD;*$)H5)! +M3D5%-V5I4D]0>6LW9&AS;U-G/3T_/0H;)$(T03MZ)$XE1ALH0EM+4U9)1WEH +$2S\]"F5I +eofeof + +$example{'mime.ans'} = unpack('u',<<'eofeof'); +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-AB1./RD;*$)HB1./RD[=ALH0@H;)$(T +603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`* +eofeof + +$example{'mime.unbuf'} = unpack('u',<<'eofeof'); +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-AB1./RD;*$)HB1./RD[=ALH0@H;)$(T +603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`* +eofeof + +$example{'mime.base64'} = unpack('u',<<'eofeof'); +M9W-M5"])3&YG$I+-&=Q=4,S24LS9W%Q0E%:3TUI-39,,S0Q-&=S5T)1 +M43!+9VUA1%9O3T@*9S)+1%1O3'=K8C)1;$E+;V=Q2T-X24MG9W5M0W%*3EEG +<$E+9V=U;4,X64Q&9W)70S592VMG<6U""F=Q +eofeof + +$example{'mime.base64.ans'} = unpack('u',<<'eofeof'); +M&R1")$M&?B1I)#LD1D0Z)"TD7B0Y)"PA(D5L-7XV83E9)$B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"96YD"ALD0B0])"8D*R1*&RA"&R1"-$$[>B1./RD[=ALH0F5N9&]F;&EN +M90H;)$(T03MZ)$X_*3MV-$$[>B1./RD[=ALH0@I"B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"96YD"ALD0B0])"8D*R1*&RA"&R1"-$$[>B1./RD[=ALH0F5N9&]F;&EN +M90H;)$(T03MZ)$X_*3MV-$$[>B1./RD[=ALH0@I"tmp1");printf "%-40s", OUT pack('u',$tmp);close(OUT); +# unbuf mode implies more pessimistic decode +printf "%-40s", "MIME decode (unbuf)"; + $tmp = &test("$nkf -jmNu",$example{'mime.iso2022'},$example{'mime.unbuf'},$example{'mime.unbuf.alt'}); + # open(OUT,">tmp2");printf "%-40s", OUT pack('u',$tmp);close(OUT); +printf "%-40s", "MIME decode (base64)"; + &test("$nkf -jmB",$example{'mime.base64'},$example{'mime.base64.ans'}); +#MIME BASE64 must be LF? + +# MIME ISO-8859-1 + +$example{'mime.is8859'} = unpack('u',<<'eofeof'); +M/3])4T\M.#@U.2TQ/U$_*CU#-V%V83\_/2`*4&5E2P@1$5.34%22R`@7"`B36EN(&OF<&AEI**DQ*2KI*:DR*&BI,FDIJ3BI-^DT*2HI*RD[Z3KI*2DMZ&B +MI,BDP:3EI*:DQZ3!I.>D\Z2NI.RDZZ2KI.*DMZ3SI,JDI*&C"J2SI+.DSR!# +M4B],1B"DSKG4H:,-"J2SI+.DSR!#4B"DSKG4H:,-I+.DLZ3/($Q&+T-2(*3. +9N=2AHPH-"J2SI+.DSR!,1B"DSKG4H:,*"@`` +eofeof + +$example{'test_data/long-fold-1.ans'} = unpack('u',<<'eofeof'); +M&R1")$HD+"0D)$HD+"0D)$HD+"%!)"0D+B1G)"8D+"0B)&HD7B0W)$8A(B0S +M)&PD)"(D1"0K&RA""ALD0B0F)$@A(B1))"8D8B1?)%`D*"0L +M)&\D:R0D)#I**DQ*2KI*:DR*&BI,FDIJ3BI-^DT*2HI*RD[Z3KI*2DMZ&B +MI,BDP:3EI*:DQZ3!I.>D\Z2NI.RDZZ2KI.*DMZ3SI,JDI*&C"J2SI+.DS\.[ +'I*2YU*&C"@`` +eofeof + +$example{'test_data/long-fold.ans'} = unpack('u',<<'eofeof'); +M&R1")$HD+"0D)$HD+"0D)$HD+"%!)"0D+B1G)"8D+"0B)&HD7B0W)$8A(B0S +M)&PD)"(D1"0K&RA""ALD0B0F)$@A(B1))"8D8B1?)%`D*"0L +M)&\D:R0D)#5)#2D-):TI#46U*0V=K2VE1 +M5%X2D1-:TY343-*1&MB2T5)/3\]"B`]/TE33RTR,#(R+4I0/T(_ +M1WE20TI$5)#2D-):TI#46U*0V=K2VE1 +M5%X2D1-:TY343-'>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)# +M2D1K:T]Y43E*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7 +M0U)B1WEH0S\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI&-&M8>5)G2D=%:UEI +M4FM*0U%K6FE1;TI'9V)+14D]/ST*+2TM+0I3=6)J96-T.B!A86%A(&%A86$@ +M86%A82!A86%A(&%A86$@86%A82!A86%A"B`]/TE33RTR,#(R+4I0/T(_1WE2 +M0TI#26M*0U%M2D-G:TMH5)#2D-):TI#46U*0V=K2VE1 +M5%X2D1-:TY343-*1&MK3WE1.4=Y:$,_/0H@/3])4T\M,C`R,BU* +M4#]"/T=Y4D-*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7 +M0U)B2D8T:UAY4F='>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#2D=%:UEI +M4FM*0U%K6FE1;TI'9V)+14D]/ST*+2TM+0I3=6)J96-T.B!A86%A(&%A86$@ +M86%A82!A86%A(&%A86$@86%A82!A86%A(#T_25-/+3(P,C(M2E`_0C]'>5)# +M2D-):TI"5)#2D-9:TM#47%' +@>6A#/ST@86%A82!A86%A(&%A86$@86%A80HM+2TM"@H` +eofeof + +$example{'test_data/mime_out.ans.alt3'} = unpack('u',<<'eofeof'); +M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@ +M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@86%A80HM+2TM +M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1 +M5%X2D1-:TY343-*1&MK3WE1.4=Y:$,_/0H@/3])4T\M,C`R,BU* +M4#]"/T=Y4D-*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7 +M0U)B2D8T:UAX5)#2D=!:UE3 +M4FE*1U%K2D-2;4I#9VMA0G-O46<]/3\]"BTM+2T*4W5B:F5C=#H@86%A82!A +M86%A(&%A86$@86%A82!A86%A(&%A86$@86%A82`]/TE33RTR,#(R+4I0/T(_ +M1WE20TI#26M*0G-O46<]/3\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI#66M+ +D0U%Q1WEH0S\](&%A86$@86%A82!A86%A(&%A86$*+2TM+0H*1 +eofeof + +printf "%-40s", "test_data/mime_out"; + &test("$nkf -jM",$example{'test_data/mime_out'},$example{'test_data/mime_out.ans'},$example{'test_data/mime_out.ans.alt'},$example{'test_data/mime_out.ans.alt2'},$example{'test_data/mime_out.ans.alt3'}); +# test_data/mime_out3 + +$example{'test_data/mime_out3'} = "\x82\xD9\x82\xB0 A"; + +$example{'test_data/mime_out3.ans'} = "=?ISO-2022-JP?B?GyRCJFskMhsoQg==?= A"; + +printf "%-40s", "test_data/mime_out3"; + &test("$nkf -jSM",$example{'test_data/mime_out3'},$example{'test_data/mime_out3.ans'}); +# test_data/multi-line + +$example{'test_data/multi-line'} = unpack('u',<<'eofeof'); +MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AH@"DLZ3L +MI/*DO:3.I-ZDWJ2BI,2DJZ2FI,BAHJ3)I*:DXJ3?I-"DJ*2LI.^DZZ2DI+>A +MHJ3(I,&DY:2FI,>DP:3GI/.DKJ3LI.NDJZ3BI+>D\Z3*I*2AHPJDLZ2SI,_# +8NZ2DN=2AHP`*I+.DLZ3/P[NDI+G4H:,* +eofeof + +$example{'test_data/multi-line.ans'} = unpack('u',<<'eofeof'); +MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AH@"DLZ3L +MI/*DO:3.I-ZDWJ2BI,2DJZ2FI,BAHJ3)I*:DXJ3?I-"DJ*2LI.^DZZ2DI+>A +MHJ3(I,&DY:2FI,>DP:3GI/.DKJ3LI.NDJZ3BI+>D\Z3*I*2AHPJDLZ2SI,_# +8NZ2DN=2AHP`*I+.DLZ3/P[NDI+G4H:,* +eofeof + +printf "%-40s", "test_data/multi-line"; + &test("$nkf -e",$example{'test_data/multi-line'},$example{'test_data/multi-line.ans'}); +# test_data/-Z4 + +$example{'test_data/-Z4'} = unpack('u',<<'eofeof'); +MH:.AUJ'7H:*AIJ&\H:NAK*6AI:*EHZ6DI:6EIJ6GI:BEJ:6JI:NEK*6MI:ZE +MKZ6PI;&ELJ6SI;2EM:6VI;>EN*6YI;JENZ6\I;VEOJ6_I<"EP:7"I<.EQ*7% +MI<:EQZ7(I&EXJ7CI>2EY:7FI>>EZ*7II>JEZZ7LI>VE[Z7RI?.E]``` +eofeof + +$example{'test_data/-Z4.ans'} = unpack('u',<<'eofeof'); +MCJ&.HHZCCJ2.I8ZPCMZ.WXZGCK&.J(ZRCJF.LXZJCK2.JXZUCK:.MH[>CK>. +MMX[>CKB.N([>CKF.N8[>CKJ.NH[>CKN.NX[>CKR.O([>CKV.O8[>CKZ.OH[> +MCK^.OX[>CL".P([>CL&.P8[>CJ^.PH["CMZ.PX[#CMZ.Q([$CMZ.Q8[&CL>. +MR([)CLJ.RH[>CLJ.WX[+CLN.WH[+CM^.S([,CMZ.S([?CLV.S8[>CLV.WX[. +MCLZ.WH[.CM^.SX[0CM&.TH[3CJR.U(ZMCM6.KH[6CM>.V([9CMJ.VX[$E+:6=R,D-V;TMI +,9W-30V]O3&,*/ST* +eofeof + +$example{'test_data/non-strict-mime.ans'} = unpack('u',<<'eofeof'); +M&R1")$8D)"0_)$`D)"1&)%XD.2$C&RA"#0H-"ALD0CMD)$\[?B$Y)6PE.21+ +<)&(]<20K)#LD1B0D)#\D0"0D)$8D)"1>&RA""@`` +eofeof + +printf "%-40s", "test_data/non-strict-mime"; + &test("$nkf -jmN",$example{'test_data/non-strict-mime'},$example{'test_data/non-strict-mime.ans'}); +# test_data/q-encode-softrap + +$example{'test_data/q-encode-softrap'} = unpack('u',<<'eofeof'); +H/3%")$(T03MZ)3T*,R$\)4DD3CTQ0BA""CTQ0B1"2E$T.3TQ0BA""@`` +eofeof + +$example{'test_data/q-encode-softrap.ans'} = unpack('u',<<'eofeof'); +>&R1"-$$[>B4S(3PE221.&RA""ALD0DI1-#D;*$(* +eofeof + +printf "%-40s", "test_data/q-encode-softrap"; + &test("$nkf -jmQ",$example{'test_data/q-encode-softrap'},$example{'test_data/q-encode-softrap.ans'}); +# test_data/q-encode-utf-8 + +$example{'test_data/q-encode-utf-8'} = <<'eofeof'; +=?utf-8?Q?=E3=81=82=E3=81=84=E3=81=86=E3=81=88=E3=81=8A?= +=?utf-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93?= +eofeof + +$example{'test_data/q-encode-utf-8.ans'} = <<"eofeof"; +\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A +\xE3\x81\x8B\xE3\x81\x8D\xE3\x81\x8F\xE3\x81\x91\xE3\x81\x93 +eofeof + +printf "%-40s", "test_data/q-encode-utf-8"; + &test("$nkf -w",$example{'test_data/q-encode-utf-8'},$example{'test_data/q-encode-utf-8.ans'}); +# test_data/rot13 + +$example{'test_data/rot13'} = unpack('u',<<'eofeof'); +MI+.D\Z3+I,&DSZ&BS:W"]*3(I*2DI*3>I+FAHPH*;FMF('9EI+FDK*&B05-#24D@I,O"T*2WI,8@ +M4D]4,3,@I*P*P+6DMZ2OQK"DI*3&I*2DRJ2DI.BDIJ3'H:*PRK*\I,ZDZ*2F +MI,O*T;2YI+6D[*3>I+ND\Z&C"@HE(&5C:&\@)VAO9V4G('P@;FMF("UR"FAO +#9V4* +eofeof + +$example{'test_data/rot13.ans'} = unpack('u',<<'eofeof'); +M&R1"4V)31%-Z4W!3?E!1?%QQ15-W4U-34U,O4VA04ALH0@H*87AS(&ER92XQ +M+CDR(!LD0E-#?$E\(E-D4VI3=5-34VY3;U-34W534U,O4VA36U!1&RA"3D90 +M5E8@&R1"4WIQ(5-F4W4;*$(@14)',3,@&R1"4UL;*$(*&R1";V139E->=5]3 +M4U-U4U-3>5-34SE355-V4%%?>6%K4WU3.5-54WIY(F-H4V13/5,O4VI31%!2 +A&RA""@HE(')P=6(@)W5B='(G('P@87AS("UE"G5B='(* +eofeof + +printf "%-40s", "test_data/rot13"; + &test("$nkf -jr",$example{'test_data/rot13'},$example{'test_data/rot13.ans'}); +# test_data/slash + +$example{'test_data/slash'} = unpack('u',<<'eofeof'); +7("`]/U8\5"U5.5=%2RTK.U4J..# +MH>.#O..#J^BAJ.FAC"#HJ:;IJ)/GE*CC@Z'C@[SC@ZOHH:CIH8P@Z*FFZ:B3 +3YY2HXX.AXX.\XX.KZ*&HZ:&,"@`` +eofeof + +$example{'test_data/bugs10904.ans'} = unpack('u',<<'eofeof'); +M4W5B:F5C=#H@/3])4T\M,C`R,BU*4#]"/T=Y4D-/,C0T33`Q4DI716A00U9R +?4U0Q0V%H5)#2E=%:%!#5G)35#%#86AS;U%I06)*14DW +?8FIG>E1616Q94T4X2E=T2E!52G%'>6A#24$]/3\]"@`` +M(#T_25-/+3(P,C(M2E`_0C]'>5)#3S(T-$TP,5)*5T5H4$-65)#6#)98DM%23T_/0H` +eofeof + +printf "%-40s", "test_data/bug19779 "; + &test("$nkf -jM",$example{'test_data/bug19779'},$example{'test_data/bug19779.ans'}); + +printf "%-40s", "[nkf-forum:47327] "; + &test("$nkf -wM",pack('H*','feffd852de76d814dc45000a'),"=?UTF-8?B?8KSptvCVgYU=?=\n"); + +printf "%-40s", "[nkf-forum:47334] "; + &test("$nkf -w",pack('H*','feff006100620063000a'),"abc\n"); + +printf "%-40s", "[nkf-bug:20079] "; + &test("$nkf -jSxM","\xBB \xBB","=?ISO-2022-JP?B?GyhJOxsoQiAbKEk7GyhC?="); + +printf "%-40s", "[nkf-bug:20079] "; + &test("$nkf -SxMw8","\xBB \xBB","=?UTF-8?B?77u/7727IO+9uw==?="); + +printf "%-40s", "[nkf-forum:48850] "; + &test("$nkf -jSM", + "From: \x82\xA0\x82\xA0\x82\xA0\x82\xA0\x82\xA0\x82\xA0\x82\xA0\x82\xA0\x82\xA0" . + " \n", + "From: =?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiGyhC?=" . + " \n"); + +printf "%-40s", "[nkf-bug:21393]-x "; + &test("$nkf --ic=UTF-8 --oc=CP932", + "\xEF\xBD\xBC\xEF\xBE\x9E\xEF\xBD\xAC\xEF\xBD\xB0\xEF\xBE\x8F\xEF\xBE\x9D\xEF\xBD\xA5\xEF\xBE\x8E\xEF\xBE\x9F\xEF\xBE\x83\xEF\xBE\x84\xEF\xBD\xA1", + "\xBC\xDE\xAC\xB0\xCF\xDD\xA5\xCE\xDF\xC3\xC4\xA1"); + +printf "%-40s", "[nkf-bug:21393]-X "; + &test("$nkf --ic=UTF-8 --oc=CP932 -X", + "\xEF\xBD\xBC\xEF\xBE\x9E\xEF\xBD\xAC\xEF\xBD\xB0\xEF\xBE\x8F\xEF\xBE\x9D\xEF\xBD\xA5\xEF\xBE\x8E\xEF\xBE\x9F\xEF\xBE\x83\xEF\xBE\x84\xEF\xBD\xA1", + "\x83W\x83\x83\x81[\x83}\x83\x93\x81E\x83|\x83e\x83g\x81B"); + +printf "%-40s", "[nkf-forum:65316] "; + &test("$nkf -xwW -f10", + "\xEF\xBD\xB1\xEF\xBD\xB2\xEF\xBD\xB3\xEF\xBD\xB4\xEF\xBD\xB5\xEF\xBD\xB6\xEF\xBD\xB7\xEF\xBD\xB8\xEF\xBD\xB9\xEF\xBD\xBA\xEF\xBD\xBB\xEF\xBD\xBC\xEF\xBD\xBD\xEF\xBD\xBE\xEF\xBD\xBF\xEF\xBE\x80\xEF\xBE\x81\xEF\xBE\x82\xEF\xBE\x83\xEF\xBE\x84", + "\xEF\xBD\xB1\xEF\xBD\xB2\xEF\xBD\xB3\xEF\xBD\xB4\xEF\xBD\xB5\xEF\xBD\xB6\xEF\xBD\xB7\xEF\xBD\xB8\xEF\xBD\xB9\xEF\xBD\xBA\n\xEF\xBD\xBB\xEF\xBD\xBC\xEF\xBD\xBD\xEF\xBD\xBE\xEF\xBD\xBF\xEF\xBE\x80\xEF\xBE\x81\xEF\xBE\x82\xEF\xBE\x83\xEF\xBE\x84\n"); + +printf "%-40s", "[nkf-forum:65482] "; + &test("$nkf --ic=CP50221 --oc=CP932", + "\x1b\x24\x42\x7f\x21\x80\x21\x1b\x28\x42\n", + "\xf0\x40\xf0\x9f\x0a"); + +# [KNOWNBUG] +# printf "%-40s", "[ruby-dev:47057] "; +# &test("$nkf -jW -M --cp932", +# "\xe3\x80\x8c\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82 by \xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\xe3\x80\x8d\xe3\x81\xae\xe3\x83\xac\xe3\x82\xb7\xe3\x83\x94", +# "=?ISO-2022-JP?B?GyRCIVYkIiQiJCIkIiQiJCIkIiQiJCIkIiQiGyhC?= by\n =?ISO-2022-JP?B?GyRCJCIkIiQiJCIkIiQiJCIkIiQiJCIhVyROJWwlNyVUGyhC?="); + +printf "%-40s", "[nkf-bug:32328] SJIS"; + &test("$nkf -Sw", + "\x1b\x82\xa0", + "\x1b\xe3\x81\x82"); + +printf "%-40s", "[nkf-bug:32328] JIS"; + &test("$nkf -Jw", + "\x1b\x1b\$B\$\x22\x1b(B", + "\x1b\xe3\x81\x82"); + + if (!NKF) { +printf "%-40s", "Guess NL"; +&command_tests( + "$nkf --guess","none", "ASCII\n", + "$nkf --guess","\n", "ASCII (LF)\n", + "$nkf --guess","\n\n", "ASCII (LF)\n", + "$nkf --guess","\n\r", "ASCII (MIXED NL)\n", + "$nkf --guess","\n\r\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\n.\n", "ASCII (LF)\n", + "$nkf --guess","\n.\r", "ASCII (MIXED NL)\n", + "$nkf --guess","\n.\r\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\r", "ASCII (CR)\n", + "$nkf --guess","\r\r", "ASCII (CR)\n", + "$nkf --guess","\r\r\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\r.\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\r.\r", "ASCII (CR)\n", + "$nkf --guess","\r.\r\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\r\n", "ASCII (CRLF)\n", + "$nkf --guess","\r\n\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\r\n\r", "ASCII (MIXED NL)\n", + "$nkf --guess","\r\n\r\n", "ASCII (CRLF)\n", + "$nkf --guess","\r\n.\n", "ASCII (MIXED NL)\n", + "$nkf --guess","\r\n.\r", "ASCII (MIXED NL)\n", + "$nkf --guess","\r\n.\r\n", "ASCII (CRLF)\n"); + } + +printf "%-40s", "Convert NL to LF"; +&command_tests( + "$nkf -jLu","none", "none", + "$nkf -jLu","\n", "\n", + "$nkf -jLu","\n\n", "\n\n", + "$nkf -jLu","\n\r", "\n\n", + "$nkf -jLu","\n\r\n", "\n\n", + "$nkf -jLu","\n.\n", "\n.\n", + "$nkf -jLu","\n.\r", "\n.\n", + "$nkf -jLu","\n.\r\n", "\n.\n", + "$nkf -jLu","\r", "\n", + "$nkf -jLu","\r\r", "\n\n", + "$nkf -jLu","\r\r\n", "\n\n", + "$nkf -jLu","\r.\n", "\n.\n", + "$nkf -jLu","\r.\r", "\n.\n", + "$nkf -jLu","\r.\r\n", "\n.\n", + "$nkf -jLu","\r\n", "\n", + "$nkf -jLu","\r\n\n", "\n\n", + "$nkf -jLu","\r\n\r", "\n\n", + "$nkf -jLu","\r\n\r\n", "\n\n", + "$nkf -jLu","\r\n.\n", "\n.\n", + "$nkf -jLu","\r\n.\r", "\n.\n", + "$nkf -jLu","\r\n.\r\n", "\n.\n"); + +printf "%-40s", "Convert NL to LF"; +&command_tests( + "$nkf -jLm","none", "none", + "$nkf -jLm","\n", "\r", + "$nkf -jLm","\n\n", "\r\r", + "$nkf -jLm","\n\r", "\r\r", + "$nkf -jLm","\n\r\n", "\r\r", + "$nkf -jLm","\n.\n", "\r.\r", + "$nkf -jLm","\n.\r", "\r.\r", + "$nkf -jLm","\n.\r\n", "\r.\r", + "$nkf -jLm","\r", "\r", + "$nkf -jLm","\r\r", "\r\r", + "$nkf -jLm","\r\r\n", "\r\r", + "$nkf -jLm","\r.\n", "\r.\r", + "$nkf -jLm","\r.\r", "\r.\r", + "$nkf -jLm","\r.\r\n", "\r.\r", + "$nkf -jLm","\r\n", "\r", + "$nkf -jLm","\r\n\n", "\r\r", + "$nkf -jLm","\r\n\r", "\r\r", + "$nkf -jLm","\r\n\r\n", "\r\r", + "$nkf -jLm","\r\n.\n", "\r.\r", + "$nkf -jLm","\r\n.\r", "\r.\r", + "$nkf -jLm","\r\n.\r\n", "\r.\r"); + +printf "%-40s", "Convert NL to CRLF"; +&command_tests( + "$nkf -jLw","none", "none", + "$nkf -jLw","\n", "\r\n", + "$nkf -jLw","\n\n", "\r\n\r\n", + "$nkf -jLw","\n\r", "\r\n\r\n", + "$nkf -jLw","\n\r\n", "\r\n\r\n", + "$nkf -jLw","\n.\n", "\r\n.\r\n", + "$nkf -jLw","\n.\r", "\r\n.\r\n", + "$nkf -jLw","\n.\r\n", "\r\n.\r\n", + "$nkf -jLw","\r", "\r\n", + "$nkf -jLw","\r\r", "\r\n\r\n", + "$nkf -jLw","\r\r\n", "\r\n\r\n", + "$nkf -jLw","\r.\n", "\r\n.\r\n", + "$nkf -jLw","\r.\r", "\r\n.\r\n", + "$nkf -jLw","\r.\r\n", "\r\n.\r\n", + "$nkf -jLw","\r\n", "\r\n", + "$nkf -jLw","\r\n\n", "\r\n\r\n", + "$nkf -jLw","\r\n\r", "\r\n\r\n", + "$nkf -jLw","\r\n\r\r\n", "\r\n\r\n\r\n", + "$nkf -jLw","\r\n.\n", "\r\n.\r\n", + "$nkf -jLw","\r\n.\r", "\r\n.\r\n", + "$nkf -jLw","\r\n.\r\n", "\r\n.\r\n"); +# end diff --git a/test.pl b/test.pl new file mode 100644 index 0000000..20241a0 --- /dev/null +++ b/test.pl @@ -0,0 +1,133 @@ +#!/usr/bin/perl +# +# nkf test program for nkf 2.0 +# Shinji KONO +# Sun Aug 18 12:25:40 JST 1996 +# Sun Nov 8 00:16:06 JST 1998 +# Sun Sep 8 14:04:02 JST 2002 +# +# This is useful when you add new patch on nkf. +# Since this test is too strict, faileurs may not mean +# wrong conversion. +# +# nkf 2.0 utf8 +# nkf 1.5 differs on MIME decoding +# nkf 1.4 passes Basic Conversion tests +# nkf PDS version passes Basic Conversion tests using "nkf -iB -oB " +# + +if ($ARGV[0]) { + $nkf = $ARGV[0]; +} else { + $nkf = 'MSWin32' eq $^O ? ".\\nkf" : "./nkf"; +} +# $nkf = "doscmd nkf.exe"; + +# If you want to see the testing process, set next flag. + +$error_count = 0; +$diff=1; + +# &library_test0(); +sub test { + &command_test(@_); +} + +sub command_test { + local ($nkf,$in,@ans) = @_; + local ($result); + + $result = ''; + open(OUT,"> nkf.in"); + binmode OUT; + print OUT $in; + close(OUT); + system("$nkf nkf.out"); # easy + open(IN,"< nkf.out"); + binmode IN; + while() { + $result .= $_; + } + + $result =~ s/ //g if $nkf =~ /-\w+m[NS]/o; + foreach $ans (@ans) { + $ans =~ s/ //g if $nkf =~ /-\w+m[NS]/o; + if ($result eq $ans) { + print "Ok\n"; + return $result; + } + } + $ans = $ans[0]; + print "Fail\n"; + system "mv nkf.in nkf.in.$error_count.bad"; + system "mv nkf.out nkf.out.$error_count.bad"; + open(OUT,"> nkf.expect.$error_count.bad"); + binmode OUT; + print OUT $ans; + close(OUT); + $error_count++; + if ($diff) { + open(R,"|od -c >tmp.result.bad"); binmode R; print R $result; close(R); + open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R); + system "diff -c tmp.result.bad tmp.expect.bad"; + } + return $result; +} + +sub command_tests { + my @tests = @_; + my ($in, $out, $ans); + + for (my $i = 0; $i <= $#tests; $i += 3){ + my $nkf = $tests[$i]; + $in = $tests[$i+1]; + $ans = $tests[$i+2]; + $out = ''; + open(OUT, "> nkf.in"); + binmode OUT; + print OUT $in; + close(OUT); + system("$nkf nkf.out"); # easy + open(IN,"< nkf.out"); + binmode IN; + while () { + $out .= $_; + } + close(IN); + $out =~ s/ //g if $nkf =~ /-\w+m[NS]/o; + $ans =~ s/ //g if $nkf =~ /-\w+m[NS]/o; + if ($out ne $ans) { + last; + } + } + if ($out eq $ans) { + print "Ok\n"; + return; + } + print "Fail\n"; + system "mv nkf.in nkf.in.$error_count.bad"; + system "mv nkf.out nkf.out.$error_count.bad"; + open(OUT,"> nkf.expect.$error_count.bad"); + binmode OUT; + print OUT $ans; + close(OUT); + $error_count++; + if ($diff) { + open(R,"|od -c >tmp.result.bad"); binmode R; print R $out; close(R); + open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R); + system "diff -c tmp.result.bad tmp.expect.bad"; + } + return; +} + +do "nkf_test.pl"; +unlink "nkf.in"; +unlink "nkf.out"; + +if ($error_count > 1) { + printf("%d errors were found.\n", $error_count); +} elsif ($error_count == 1) { + printf("1 error was found.\n"); +} else { + printf("All tests are succeeded.\n"); +} diff --git a/utf8tbl.c b/utf8tbl.c new file mode 100644 index 0000000..e493c6b --- /dev/null +++ b/utf8tbl.c @@ -0,0 +1,14628 @@ +/* + * utf8tbl.c - Convertion Table for nkf + * + */ + +#include "config.h" +#include "utf8tbl.h" + +#ifdef UTF8_OUTPUT_ENABLE +static const unsigned short euc_to_utf8_A1[] = { + 0x3000, 0x3001, 0x3002, 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, + 0xFF1B, 0xFF1F, 0xFF01, 0x309B, 0x309C, 0x00B4, 0xFF40, 0x00A8, + 0xFF3E, 0x203E, 0xFF3F, 0x30FD, 0x30FE, 0x309D, 0x309E, 0x3003, + 0x4EDD, 0x3005, 0x3006, 0x3007, 0x30FC, 0x2014, 0x2010, 0xFF0F, + 0xFF3C, 0x301C, 0x2016, 0xFF5C, 0x2026, 0x2025, 0x2018, 0x2019, + 0x201C, 0x201D, 0xFF08, 0xFF09, 0x3014, 0x3015, 0xFF3B, 0xFF3D, + 0xFF5B, 0xFF5D, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C, 0x300D, + 0x300E, 0x300F, 0x3010, 0x3011, 0xFF0B, 0x2212, 0x00B1, 0x00D7, + 0x00F7, 0xFF1D, 0x2260, 0xFF1C, 0xFF1E, 0x2266, 0x2267, 0x221E, + 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0x00A5, + 0xFF04, 0x00A2, 0x00A3, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20, + 0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7, +}; + +/* Microsoft UCS Mapping Compatible */ +static const unsigned short euc_to_utf8_A1_ms[] = { + 0x3000, 0x3001, 0x3002, 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, + 0xFF1B, 0xFF1F, 0xFF01, 0x309B, 0x309C, 0x00B4, 0xFF40, 0x00A8, + 0xFF3E, 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, 0x309D, 0x309E, 0x3003, + 0x4EDD, 0x3005, 0x3006, 0x3007, 0x30FC, 0x2015, 0x2010, 0xFF0F, + 0xFF3C, 0xFF5E, 0x2225, 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, 0xFF0D, 0x00B1, 0x00D7, + 0x00F7, 0xFF1D, 0x2260, 0xFF1C, 0xFF1E, 0x2266, 0x2267, 0x221E, + 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFFE5, + 0xFF04, 0xFFE0, 0xFFE1, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20, + 0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7, +}; +static const unsigned short euc_to_utf8_A2[] = { + 0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, + 0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283, + 0x222A, 0x2229, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2227, 0x2228, 0x00AC, 0x21D2, 0x21D4, 0x2200, + 0x2203, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2220, 0x22A5, 0x2312, 0x2202, + 0x2207, 0x2261, 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D, + 0x2235, 0x222B, 0x222C, 0, 0, 0, 0, 0, + 0, 0, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020, + 0x2021, 0x00B6, 0, 0, 0, 0, 0x25EF, +}; + +/* Microsoft UCS Mapping Compatible */ +static const unsigned short euc_to_utf8_A2_ms[] = { + 0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, + 0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283, + 0x222A, 0x2229, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2227, 0x2228, 0xFFE2, 0x21D2, 0x21D4, 0x2200, + 0x2203, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2220, 0x22A5, 0x2312, 0x2202, + 0x2207, 0x2261, 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D, + 0x2235, 0x222B, 0x222C, 0, 0, 0, 0, 0, + 0, 0, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020, + 0x2021, 0x00B6, 0, 0, 0, 0, 0x25EF, +}; +static const unsigned short euc_to_utf8_A2_x0213[] = { + 0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, + 0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xFF07, + 0xFF02, 0xFF0D, 0xFF5E, 0x3033, 0x3034, 0x3035, 0x303B, 0x303C, + 0x30FF, 0x309F, 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283, + 0x222A, 0x2229, 0x2284, 0x2285, 0x228A, 0x228B, 0x2209, 0x2205, + 0x2305, 0x2306, 0x2227, 0x2228, 0x00AC, 0x21D2, 0x21D4, 0x2200, + 0x2203, 0x2295, 0x2296, 0x2297, 0x2225, 0x2226, 0xFF5F, 0xFF60, + 0x3018, 0x3019, 0x3016, 0x3017, 0x2220, 0x22A5, 0x2312, 0x2202, + 0x2207, 0x2261, 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D, + 0x2235, 0x222B, 0x222C, 0x2262, 0x2243, 0x2245, 0x2248, 0x2276, + 0x2277, 0x2194, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020, + 0x2021, 0x00B6, 0x266E, 0x266B, 0x266C, 0x2669, 0x25EF, +}; +static const unsigned short euc_to_utf8_A3[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, + 0xFF18, 0xFF19, 0, 0, 0, 0, 0, 0, + 0, 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, 0, 0, 0, 0, 0, + 0, 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, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A3_x0213[] = { + 0x25B7, 0x25B6, 0x25C1, 0x25C0, 0x2197, 0x2198, 0x2196, + 0x2199, 0x21C4, 0x21E8, 0x21E6, 0x21E7, 0x21E9, 0x2934, 0x2935, + 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, + 0xFF18, 0xFF19, 0x29BF, 0x25C9, 0x303D, 0xFE46, 0xFE45, 0x25E6, + 0x2022, 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, 0x2213, 0x2135, 0x210F, 0x33CB, 0x2113, + 0x2127, 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, 0x30A0, 0x2013, 0x29FA, 0x29FB, +}; +static const unsigned short euc_to_utf8_A4[] = { + 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A4_x0213[] = { + 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, 0x3094, 0x3095, 0x3096, /*0x304B*/ 0x309A, + /*0x304D*/ 0x309A, /*0x304F*/ 0x309A, /*0x3051*/ 0x309A, /*0x3053*/ 0x309A, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A5[] = { + 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, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A5_x0213[] = { + 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, /*0x30AB*/ 0x309A, + /*0x30AD*/ 0x309A, /*0x30AF*/ 0x309A, /*0x30B1*/ 0x309A, /*0x30B3*/ 0x309A, /*0x30BB*/ 0x309A, /*0x30C4*/ 0x309A, /*0x30C8*/ 0x309A, +}; +static const unsigned short euc_to_utf8_A6[] = { + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, + 0x03A9, 0, 0, 0, 0, 0, 0, 0, + 0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x03C9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A6_x0213[] = { + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, + 0x03A9, 0x2664, 0x2660, 0x2662, 0x2666, 0x2661, 0x2665, 0x2667, + 0x2663, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x03C9, 0x03C2, 0x24F5, 0x24F6, 0x24F7, 0x24F8, 0x24F9, 0x24FA, + 0x24FB, 0x24FC, 0x24FD, 0x24FE, 0x2616, 0x2617, 0x3020, 0x260E, + 0x2600, 0x2601, 0x2602, 0x2603, 0x2668, 0x25B1, 0x31F0, 0x31F1, + 0x31F2, 0x31F3, 0x31F4, 0x31F5, 0x31F6, 0x31F7, 0x31F8, 0x31F9, + /*0x31F7*/ 0x309A, 0x31FA, 0x31FB, 0x31FC, 0x31FD, 0x31FE, 0x31FF, +}; +static const unsigned short euc_to_utf8_A7[] = { + 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A7_x0213[] = { + 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, 0x23BE, 0x23BF, 0x23C0, 0x23C1, 0x23C2, 0x23C3, + 0x23C4, 0x23C5, 0x23C6, 0x23C7, 0x23C8, 0x23C9, 0x23CA, 0x23CB, + 0x23CC, 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, 0x30F7, 0x30F8, 0x30F9, 0x30FA, 0x22DA, 0x22DB, + 0x2153, 0x2154, 0x2155, 0x2713, 0x2318, 0x2423, 0x23CE, +}; +static const unsigned short euc_to_utf8_A8[] = { + 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A8_x0213[] = { + 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, 0x3251, 0x3252, 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, + 0x3258, 0x3259, 0x325A, 0x325B, 0x325C, 0x325D, 0x325E, 0x325F, + 0x32B1, 0x32B2, 0x32B3, 0x32B4, 0x32B5, 0x32B6, 0x32B7, 0x32B8, + 0x32B9, 0x32BA, 0x32BB, 0x32BC, 0x32BD, 0x32BE, 0x32BF, 0, + 0, 0, 0, 0, 0, 0, 0, 0x25D0, + 0x25D1, 0x25D2, 0x25D3, 0x203C, 0x2047, 0x2048, 0x2049, 0x01CD, + 0x01CE, 0x01D0, 0x1E3E, 0x1E3F, 0x01F8, 0x01F9, 0x01D1, 0x01D2, + 0x01D4, 0x01D6, 0x01D8, 0x01DA, 0x01DC, 0, 0, +}; +static const unsigned short euc_to_utf8_A9[] = { + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, + 0x2467, 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, + 0x246F, 0x2470, 0x2471, 0x2472, 0x2473, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x2474, + 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C, + 0x247D, 0x247E, 0x247F, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, + 0x2485, 0x2486, 0x2487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2776, 0x2777, 0x2778, + 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, + 0x248E, 0x248F, 0x2490, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_A9_x0213[] = { + 0x20AC, 0x00A0, 0x00A1, 0x00A4, 0x00A6, 0x00A9, 0x00AA, + 0x00AB, 0x00AD, 0x00AE, 0x00AF, 0x00B2, 0x00B3, 0x00B7, 0x00B8, + 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, + 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, + 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D0, + 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D8, 0x00D9, + 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x00E0, 0x00E1, + 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, + 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0, 0x00F1, + 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F8, 0x00F9, 0x00FA, + 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF, 0x0100, 0x012A, 0x016A, + 0x0112, 0x014C, 0x0101, 0x012B, 0x016B, 0x0113, 0x014D, +}; +static const unsigned short euc_to_utf8_AA[] = { + 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, + 0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2170, 0x2171, 0x2172, + 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A, + 0x217B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_AA_x0213[] = { + 0x0104, 0x02D8, 0x0141, 0x013D, 0x015A, 0x0160, 0x015E, + 0x0164, 0x0179, 0x017D, 0x017B, 0x0105, 0x02DB, 0x0142, 0x013E, + 0x015B, 0x02C7, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, + 0x017C, 0x0154, 0x0102, 0x0139, 0x0106, 0x010C, 0x0118, 0x011A, + 0x010E, 0x0143, 0x0147, 0x0150, 0x0158, 0x016E, 0x0170, 0x0162, + 0x0155, 0x0103, 0x013A, 0x0107, 0x010D, 0x0119, 0x011B, 0x010F, + 0x0111, 0x0144, 0x0148, 0x0151, 0x0159, 0x016F, 0x0171, 0x0163, + 0x02D9, 0x0108, 0x011C, 0x0124, 0x0134, 0x015C, 0x016C, 0x0109, + 0x011D, 0x0125, 0x0135, 0x015D, 0x016D, 0x0271, 0x028B, 0x027E, + 0x0283, 0x0292, 0x026C, 0x026E, 0x0279, 0x0288, 0x0256, 0x0273, + 0x027D, 0x0282, 0x0290, 0x027B, 0x026D, 0x025F, 0x0272, 0x029D, + 0x028E, 0x0261, 0x014B, 0x0270, 0x0281, 0x0127, 0x0295, +}; +static const unsigned short euc_to_utf8_AB[] = { + 0x339C, 0x339F, 0x339D, 0x33A0, 0x33A4, 0, 0x33A1, + 0x33A5, 0x339E, 0x33A2, 0x338E, 0, 0x338F, 0x33C4, 0x3396, + 0x3397, 0x2113, 0x3398, 0x33B3, 0x33B2, 0x33B1, 0x33B0, 0x2109, + 0x33D4, 0x33CB, 0x3390, 0x3385, 0x3386, 0x3387, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2116, 0x33CD, 0x2121, 0, +}; +static const unsigned short euc_to_utf8_AB_x0213[] = { + 0x0294, 0x0266, 0x0298, 0x01C2, 0x0253, 0x0257, 0x0284, + 0x0260, 0x0193, 0x0153, 0x0152, 0x0268, 0x0289, 0x0258, 0x0275, + 0x0259, 0x025C, 0x025E, 0x0250, 0x026F, 0x028A, 0x0264, 0x028C, + 0x0254, 0x0251, 0x0252, 0x028D, 0x0265, 0x02A2, 0x02A1, 0x0255, + 0x0291, 0x027A, 0x0267, 0x025A, /*0x00E6*/ 0x0300, 0x01FD, 0x1F70, 0x1F71, + /*0x0254*/ 0x0300, /*0x0254*/ 0x0301, /*0x028C*/ 0x0300, /*0x028C*/ 0x0301, /*0x0259*/ 0x0300, /*0x0259*/ 0x0301, /*0x025A*/ 0x0300, /*0x025A*/ 0x0301, + 0x1F72, 0x1F73, 0x0361, 0x02C8, 0x02CC, 0x02D0, 0x02D1, 0x0306, + 0x203F, 0x030B, /*0*/ 0x0301, 0x0304, /*0*/ 0x0300, 0x030F, 0x030C, 0x0302, + /*0*/ 0x02E5, 0x02E6, 0x02E7, 0x02E8, /*0*/ 0x02E9, /*0x02E9*/ 0x02E5, /*0x02E5*/ 0x02E9, 0x0325, + 0x032C, 0x0339, 0x031C, 0x031F, 0x0320, 0x0308, 0x033D, 0x0329, + 0x032F, 0x02DE, 0x0324, 0x0330, 0x033C, 0x0334, 0x031D, 0x031E, + 0x0318, 0x0319, 0x032A, 0x033A, 0x033B, 0x0303, 0x031A, +}; +static const unsigned short euc_to_utf8_AC[] = { + 0x2664, 0x2667, 0x2661, 0x2662, 0x2660, 0x2663, 0x2665, + 0x2666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x3020, 0x260E, 0x3004, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x261E, 0x261C, 0x261D, 0x261F, 0x21C6, 0x21C4, 0x21C5, + 0, 0x21E8, 0x21E6, 0x21E7, 0x21E9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_AC_mac[] = { + 0x2664, 0x2667, 0x2661, 0x2662, 0x2660, 0x2663, 0x2665, + 0x2666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x3020, 0x260E, 0x3004, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x261E, 0x261C, 0x261D, 0x261F, 0x21C6, 0x21C4, 0x21C5, + 0, 0x21E8, 0x21E6, 0x21E7, 0x21E9, 0x2192, 0x2190, 0x2191, + 0x2193, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_AC_x0213[] = { + 0x2776, 0x2777, 0x2778, 0x2779, 0x277A, 0x277B, 0x277C, + 0x277D, 0x277E, 0x277F, 0x24EB, 0x24EC, 0x24ED, 0x24EE, 0x24EF, + 0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x2170, 0x2171, 0x2172, + 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A, + 0x217B, 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, 0x32D0, 0x32D1, 0x32D2, 0x32D3, 0x32D4, + 0x32D5, 0x32D6, 0x32D7, 0x32D8, 0x32D9, 0x32DA, 0x32DB, 0x32DC, + 0x32DD, 0x32DE, 0x32DF, 0x32E0, 0x32E1, 0x32E2, 0x32E3, 0x32FA, + 0x32E9, 0x32E5, 0x32ED, 0x32EC, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2051, 0x2042, +}; +static const unsigned short euc_to_utf8_AD[] = { + 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, 0, + 0x3349, 0x3314, 0x3322, 0x334D, 0x3318, 0x3327, 0x3303, 0x3336, + 0x3351, 0x3357, 0x330D, 0x3326, 0x3323, 0x332B, 0x334A, 0x333B, + 0x339C, 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4, 0x33A1, 0, + 0, 0, 0, 0, 0, 0, 0, 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, 0, 0x3299, +}; +static const unsigned short euc_to_utf8_AD_mac[] = { + 0x65E5, 0x6708, 0x706B, 0x6C34, 0x6728, 0x91D1, 0x571F, + 0x796D, 0x795D, 0x81EA, 0x81F3, 0x3239, 0x547C, 0x3231, 0x8CC7, + 0x540D, 0x3232, 0x5B66, 0x8CA1, 0x793E, 0x7279, 0x76E3, 0x4F01, + 0x5354, 0x52B4, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0, + 0x3349, 0x3314, 0x3322, 0x334D, 0x3318, 0x3327, 0x3303, 0x3336, + 0x3351, 0x3357, 0x330D, 0x3326, 0x3323, 0x332B, 0x334A, 0x333B, + 0x339C, 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4, 0x33A1, 0, + 0, 0, 0, 0, 0, 0, 0, 0x337B, + 0x301D, 0x301F, 0x2116, 0x33CD, 0x2121, 0x32A4, 0x32A5, 0x32A6, + 0x32A7, 0x32A8, 0x3231, 0x3232, 0x3239, 0x337E, 0x337D, 0x337C, + 0x2252, 0x5927, 0x5C0F, 0x32A4, 0x32A5, 0x32A6, 0x32A7, 0x32A8, + 0x533B, 0x8CA1, 0x512A, 0x52B4, 0x5370, 0x63A7, 0x79D8, +}; +static const unsigned short euc_to_utf8_AD_x0213[] = { + 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, 0x216A, + 0x3349, 0x3314, 0x3322, 0x334D, 0x3318, 0x3327, 0x3303, 0x3336, + 0x3351, 0x3357, 0x330D, 0x3326, 0x3323, 0x332B, 0x334A, 0x333B, + 0x339C, 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4, 0x33A1, 0x216B, + 0, 0, 0, 0, 0, 0, 0, 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, 0x2756, 0x261E, +}; +static const unsigned short euc_to_utf8_AE[] = { + 0x3349, 0x3322, 0x334D, 0x3314, 0x3316, 0x3305, 0x3333, + 0x334E, 0x3303, 0x3336, 0x3318, 0x3315, 0x3327, 0x3351, 0x334A, + 0x3339, 0x3357, 0x330D, 0x3342, 0x3323, 0x3326, 0x333B, 0x332B, + 0, 0, 0, 0, 0, 0, 0, 0x3300, + 0x331E, 0x332A, 0x3331, 0x3347, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x337E, + 0x337D, 0x337C, 0x337B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x337F, 0, 0, +}; +static const unsigned short euc_to_utf8_AE_x0213[] = { + 0x4FF1, 0xD840 /*0xDC0B*/, 0x3402, 0x4E28, 0x4E2F, 0x4E30, 0x4E8D, + 0x4EE1, 0x4EFD, 0x4EFF, 0x4F03, 0x4F0B, 0x4F60, 0x4F48, 0x4F49, + 0x4F56, 0x4F5F, 0x4F6A, 0x4F6C, 0x4F7E, 0x4F8A, 0x4F94, 0x4F97, + 0xFA30, 0x4FC9, 0x4FE0, 0x5001, 0x5002, 0x500E, 0x5018, 0x5027, + 0x502E, 0x5040, 0x503B, 0x5041, 0x5094, 0x50CC, 0x50F2, 0x50D0, + 0x50E6, 0xFA31, 0x5106, 0x5103, 0x510B, 0x511E, 0x5135, 0x514A, + 0xFA32, 0x5155, 0x5157, 0x34B5, 0x519D, 0x51C3, 0x51CA, 0x51DE, + 0x51E2, 0x51EE, 0x5201, 0x34DB, 0x5213, 0x5215, 0x5249, 0x5257, + 0x5261, 0x5293, 0x52C8, 0xFA33, 0x52CC, 0x52D0, 0x52D6, 0x52DB, + 0xFA34, 0x52F0, 0x52FB, 0x5300, 0x5307, 0x531C, 0xFA35, 0x5361, + 0x5363, 0x537D, 0x5393, 0x539D, 0x53B2, 0x5412, 0x5427, 0x544D, + 0x549C, 0x546B, 0x5474, 0x547F, 0x5488, 0x5496, 0x54A1, +}; +static const unsigned short euc_to_utf8_AF[] = { + 0x222E, 0x221F, 0x22BF, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x301D, 0x301F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x3094, 0, 0x30F7, 0x30F8, 0x30F9, 0x30FA, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_AF_x0213[] = { + 0x54A9, 0x54C6, 0x54FF, 0x550E, 0x552B, 0x5535, 0x5550, + 0x555E, 0x5581, 0x5586, 0x558E, 0xFA36, 0x55AD, 0x55CE, 0xFA37, + 0x5608, 0x560E, 0x563B, 0x5649, 0x5676, 0x5666, 0xFA38, 0x566F, + 0x5671, 0x5672, 0x5699, 0x569E, 0x56A9, 0x56AC, 0x56B3, 0x56C9, + 0x56CA, 0x570A, 0xD844 /*0xDE3D*/, 0x5721, 0x572F, 0x5733, 0x5734, 0x5770, + 0x5777, 0x577C, 0x579C, 0xFA0F, 0xD844 /*0xDF1B*/, 0x57B8, 0x57C7, 0x57C8, + 0x57CF, 0x57E4, 0x57ED, 0x57F5, 0x57F6, 0x57FF, 0x5809, 0xFA10, + 0x5861, 0x5864, 0xFA39, 0x587C, 0x5889, 0x589E, 0xFA3A, 0x58A9, + 0xD845 /*0xDC6E*/, 0x58D2, 0x58CE, 0x58D4, 0x58DA, 0x58E0, 0x58E9, 0x590C, + 0x8641, 0x595D, 0x596D, 0x598B, 0x5992, 0x59A4, 0x59C3, 0x59D2, + 0x59DD, 0x5A13, 0x5A23, 0x5A67, 0x5A6D, 0x5A77, 0x5A7E, 0x5A84, + 0x5A9E, 0x5AA7, 0x5AC4, 0xD846 /*0xDCBD*/, 0x5B19, 0x5B25, 0x525D, +}; +static const unsigned short euc_to_utf8_B0[] = { + 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, +}; +static const unsigned short euc_to_utf8_B1[] = { + 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, +}; +static const unsigned short euc_to_utf8_B2[] = { + 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, +}; +static const unsigned short euc_to_utf8_B3[] = { + 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, +}; +static const unsigned short euc_to_utf8_B4[] = { + 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, +}; +static const unsigned short euc_to_utf8_B5[] = { + 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, +}; +static const unsigned short euc_to_utf8_B6[] = { + 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, +}; +static const unsigned short euc_to_utf8_B7[] = { + 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, +}; +static const unsigned short euc_to_utf8_B8[] = { + 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, +}; +static const unsigned short euc_to_utf8_B9[] = { + 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, +}; +static const unsigned short euc_to_utf8_BA[] = { + 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, +}; +static const unsigned short euc_to_utf8_BB[] = { + 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, +}; +static const unsigned short euc_to_utf8_BC[] = { + 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, +}; +static const unsigned short euc_to_utf8_BD[] = { + 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, +}; +static const unsigned short euc_to_utf8_BE[] = { + 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, +}; +static const unsigned short euc_to_utf8_BF[] = { + 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, +}; +static const unsigned short euc_to_utf8_C0[] = { + 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, +}; +static const unsigned short euc_to_utf8_C1[] = { + 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, +}; +static const unsigned short euc_to_utf8_C2[] = { + 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, +}; +static const unsigned short euc_to_utf8_C3[] = { + 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, +}; +static const unsigned short euc_to_utf8_C4[] = { + 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, +}; +static const unsigned short euc_to_utf8_C5[] = { + 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, +}; +static const unsigned short euc_to_utf8_C6[] = { + 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, +}; +static const unsigned short euc_to_utf8_C7[] = { + 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, +}; +static const unsigned short euc_to_utf8_C8[] = { + 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, +}; +static const unsigned short euc_to_utf8_C9[] = { + 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, +}; +static const unsigned short euc_to_utf8_CA[] = { + 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, +}; +static const unsigned short euc_to_utf8_CB[] = { + 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, +}; +static const unsigned short euc_to_utf8_CC[] = { + 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, +}; +static const unsigned short euc_to_utf8_CD[] = { + 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, +}; +static const unsigned short euc_to_utf8_CE[] = { + 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, +}; +static const unsigned short euc_to_utf8_CF[] = { + 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_CF_x0213[] = { + 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, 0xD842 /*0xDF9F*/, 0x5B41, 0x5B56, 0x5B7D, + 0x5B93, 0x5BD8, 0x5BEC, 0x5C12, 0x5C1E, 0x5C23, 0x5C2B, 0x378D, + 0x5C62, 0xFA3B, 0xFA3C, 0xD845 /*0xDEB4*/, 0x5C7A, 0x5C8F, 0x5C9F, 0x5CA3, + 0x5CAA, 0x5CBA, 0x5CCB, 0x5CD0, 0x5CD2, 0x5CF4, 0xD847 /*0xDE34*/, 0x37E2, + 0x5D0D, 0x5D27, 0xFA11, 0x5D46, 0x5D47, 0x5D53, 0x5D4A, 0x5D6D, + 0x5D81, 0x5DA0, 0x5DA4, 0x5DA7, 0x5DB8, 0x5DCB, 0x541E, +}; +static const unsigned short euc_to_utf8_D0[] = { + 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, +}; +static const unsigned short euc_to_utf8_D1[] = { + 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, +}; +static const unsigned short euc_to_utf8_D2[] = { + 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, +}; +static const unsigned short euc_to_utf8_D3[] = { + 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, +}; +static const unsigned short euc_to_utf8_D4[] = { + 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, +}; +static const unsigned short euc_to_utf8_D5[] = { + 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, +}; +static const unsigned short euc_to_utf8_D6[] = { + 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, +}; +static const unsigned short euc_to_utf8_D7[] = { + 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, +}; +static const unsigned short euc_to_utf8_D8[] = { + 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, +}; +static const unsigned short euc_to_utf8_D9[] = { + 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, +}; +static const unsigned short euc_to_utf8_DA[] = { + 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, +}; +static const unsigned short euc_to_utf8_DB[] = { + 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, +}; +static const unsigned short euc_to_utf8_DC[] = { + 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, +}; +static const unsigned short euc_to_utf8_DD[] = { + 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, +}; +static const unsigned short euc_to_utf8_DE[] = { + 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, +}; +static const unsigned short euc_to_utf8_DF[] = { + 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, +}; +static const unsigned short euc_to_utf8_E0[] = { + 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, +}; +static const unsigned short euc_to_utf8_E1[] = { + 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, +}; +static const unsigned short euc_to_utf8_E2[] = { + 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, +}; +static const unsigned short euc_to_utf8_E3[] = { + 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, +}; +static const unsigned short euc_to_utf8_E4[] = { + 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, +}; +static const unsigned short euc_to_utf8_E5[] = { + 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, +}; +static const unsigned short euc_to_utf8_E6[] = { + 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, +}; +static const unsigned short euc_to_utf8_E7[] = { + 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, +}; +static const unsigned short euc_to_utf8_E8[] = { + 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, +}; +static const unsigned short euc_to_utf8_E9[] = { + 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, +}; +static const unsigned short euc_to_utf8_EA[] = { + 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, +}; +static const unsigned short euc_to_utf8_EB[] = { + 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, +}; +static const unsigned short euc_to_utf8_EC[] = { + 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, +}; +static const unsigned short euc_to_utf8_ED[] = { + 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, +}; +static const unsigned short euc_to_utf8_EE[] = { + 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, +}; +static const unsigned short euc_to_utf8_EF[] = { + 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, +}; +static const unsigned short euc_to_utf8_F0[] = { + 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, +}; +static const unsigned short euc_to_utf8_F1[] = { + 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, +}; +static const unsigned short euc_to_utf8_F2[] = { + 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, +}; +static const unsigned short euc_to_utf8_F3[] = { + 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, +}; +static const unsigned short euc_to_utf8_F4[] = { + 0x582F, 0x69C7, 0x9059, 0x7464, 0x51DC, 0x7199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_F4_x0213[] = { + 0x582F, 0x69C7, 0x9059, 0x7464, 0x51DC, 0x7199, 0x5653, + 0x5DE2, 0x5E14, 0x5E18, 0x5E58, 0x5E5E, 0x5EBE, 0xF928, 0x5ECB, + 0x5EF9, 0x5F00, 0x5F02, 0x5F07, 0x5F1D, 0x5F23, 0x5F34, 0x5F36, + 0x5F3D, 0x5F40, 0x5F45, 0x5F54, 0x5F58, 0x5F64, 0x5F67, 0x5F7D, + 0x5F89, 0x5F9C, 0x5FA7, 0x5FAF, 0x5FB5, 0x5FB7, 0x5FC9, 0x5FDE, + 0x5FE1, 0x5FE9, 0x600D, 0x6014, 0x6018, 0x6033, 0x6035, 0x6047, + 0xFA3D, 0x609D, 0x609E, 0x60CB, 0x60D4, 0x60D5, 0x60DD, 0x60F8, + 0x611C, 0x612B, 0x6130, 0x6137, 0xFA3E, 0x618D, 0xFA3F, 0x61BC, + 0x61B9, 0xFA40, 0x6222, 0x623E, 0x6243, 0x6256, 0x625A, 0x626F, + 0x6285, 0x62C4, 0x62D6, 0x62FC, 0x630A, 0x6318, 0x6339, 0x6343, + 0x6365, 0x637C, 0x63E5, 0x63ED, 0x63F5, 0x6410, 0x6414, 0x6422, + 0x6479, 0x6451, 0x6460, 0x646D, 0x64CE, 0x64BE, 0x64BF, +}; +static const unsigned short euc_to_utf8_F5[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFE33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFE31, 0, 0, + 0, 0, 0, 0, 0, 0xFE30, 0, 0, + 0, 0, 0xFE35, 0xFE36, 0xFE39, 0xFE3A, 0, 0, + 0xFE37, 0xFE38, 0xFE3F, 0xFE40, 0xFE3D, 0xFE3E, 0xFE41, 0xFE42, + 0xFE43, 0xFE44, 0xFE3B, 0xFE3C, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_F5_x0213[] = { + 0x64C4, 0x64CA, 0x64D0, 0x64F7, 0x64FB, 0x6522, 0x6529, + 0xFA41, 0x6567, 0x659D, 0xFA42, 0x6600, 0x6609, 0x6615, 0x661E, + 0x663A, 0x6622, 0x6624, 0x662B, 0x6630, 0x6631, 0x6633, 0x66FB, + 0x6648, 0x664C, 0xD84C /*0xDDC4*/, 0x6659, 0x665A, 0x6661, 0x6665, 0x6673, + 0x6677, 0x6678, 0x668D, 0xFA43, 0x66A0, 0x66B2, 0x66BB, 0x66C6, + 0x66C8, 0x3B22, 0x66DB, 0x66E8, 0x66FA, 0x6713, 0xF929, 0x6733, + 0x6766, 0x6747, 0x6748, 0x677B, 0x6781, 0x6793, 0x6798, 0x679B, + 0x67BB, 0x67F9, 0x67C0, 0x67D7, 0x67FC, 0x6801, 0x6852, 0x681D, + 0x682C, 0x6831, 0x685B, 0x6872, 0x6875, 0xFA44, 0x68A3, 0x68A5, + 0x68B2, 0x68C8, 0x68D0, 0x68E8, 0x68ED, 0x68F0, 0x68F1, 0x68FC, + 0x690A, 0x6949, 0xD84D /*0xDDC4*/, 0x6935, 0x6942, 0x6957, 0x6963, 0x6964, + 0x6968, 0x6980, 0xFA14, 0x69A5, 0x69AD, 0x69CF, 0x3BB6, +}; +static const unsigned short euc_to_utf8_F6_x0213[] = { + 0x3BC3, 0x69E2, 0x69E9, 0x69EA, 0x69F5, 0x69F6, 0x6A0F, + 0x6A15, 0xD84D /*0xDF3F*/, 0x6A3B, 0x6A3E, 0x6A45, 0x6A50, 0x6A56, 0x6A5B, + 0x6A6B, 0x6A73, 0xD84D /*0xDF63*/, 0x6A89, 0x6A94, 0x6A9D, 0x6A9E, 0x6AA5, + 0x6AE4, 0x6AE7, 0x3C0F, 0xF91D, 0x6B1B, 0x6B1E, 0x6B2C, 0x6B35, + 0x6B46, 0x6B56, 0x6B60, 0x6B65, 0x6B67, 0x6B77, 0x6B82, 0x6BA9, + 0x6BAD, 0xF970, 0x6BCF, 0x6BD6, 0x6BD7, 0x6BFF, 0x6C05, 0x6C10, + 0x6C33, 0x6C59, 0x6C5C, 0x6CAA, 0x6C74, 0x6C76, 0x6C85, 0x6C86, + 0x6C98, 0x6C9C, 0x6CFB, 0x6CC6, 0x6CD4, 0x6CE0, 0x6CEB, 0x6CEE, + 0xD84F /*0xDCFE*/, 0x6D04, 0x6D0E, 0x6D2E, 0x6D31, 0x6D39, 0x6D3F, 0x6D58, + 0x6D65, 0xFA45, 0x6D82, 0x6D87, 0x6D89, 0x6D94, 0x6DAA, 0x6DAC, + 0x6DBF, 0x6DC4, 0x6DD6, 0x6DDA, 0x6DDB, 0x6DDD, 0x6DFC, 0xFA46, + 0x6E34, 0x6E44, 0x6E5C, 0x6E5E, 0x6EAB, 0x6EB1, 0x6EC1, +}; +static const unsigned short euc_to_utf8_F7_x0213[] = { + 0x6EC7, 0x6ECE, 0x6F10, 0x6F1A, 0xFA47, 0x6F2A, 0x6F2F, + 0x6F33, 0x6F51, 0x6F59, 0x6F5E, 0x6F61, 0x6F62, 0x6F7E, 0x6F88, + 0x6F8C, 0x6F8D, 0x6F94, 0x6FA0, 0x6FA7, 0x6FB6, 0x6FBC, 0x6FC7, + 0x6FCA, 0x6FF9, 0x6FF0, 0x6FF5, 0x7005, 0x7006, 0x7028, 0x704A, + 0x705D, 0x705E, 0x704E, 0x7064, 0x7075, 0x7085, 0x70A4, 0x70AB, + 0x70B7, 0x70D4, 0x70D8, 0x70E4, 0x710F, 0x712B, 0x711E, 0x7120, + 0x712E, 0x7130, 0x7146, 0x7147, 0x7151, 0xFA48, 0x7152, 0x715C, + 0x7160, 0x7168, 0xFA15, 0x7185, 0x7187, 0x7192, 0x71C1, 0x71BA, + 0x71C4, 0x71FE, 0x7200, 0x7215, 0x7255, 0x7256, 0x3E3F, 0x728D, + 0x729B, 0x72BE, 0x72C0, 0x72FB, 0xD851 /*0xDFF1*/, 0x7327, 0x7328, 0xFA16, + 0x7350, 0x7366, 0x737C, 0x7395, 0x739F, 0x73A0, 0x73A2, 0x73A6, + 0x73AB, 0x73C9, 0x73CF, 0x73D6, 0x73D9, 0x73E3, 0x73E9, +}; +static const unsigned short euc_to_utf8_F8_x0213[] = { + 0x7407, 0x740A, 0x741A, 0x741B, 0xFA4A, 0x7426, 0x7428, + 0x742A, 0x742B, 0x742C, 0x742E, 0x742F, 0x7430, 0x7444, 0x7446, + 0x7447, 0x744B, 0x7457, 0x7462, 0x746B, 0x746D, 0x7486, 0x7487, + 0x7489, 0x7498, 0x749C, 0x749F, 0x74A3, 0x7490, 0x74A6, 0x74A8, + 0x74A9, 0x74B5, 0x74BF, 0x74C8, 0x74C9, 0x74DA, 0x74FF, 0x7501, + 0x7517, 0x752F, 0x756F, 0x7579, 0x7592, 0x3F72, 0x75CE, 0x75E4, + 0x7600, 0x7602, 0x7608, 0x7615, 0x7616, 0x7619, 0x761E, 0x762D, + 0x7635, 0x7643, 0x764B, 0x7664, 0x7665, 0x766D, 0x766F, 0x7671, + 0x7681, 0x769B, 0x769D, 0x769E, 0x76A6, 0x76AA, 0x76B6, 0x76C5, + 0x76CC, 0x76CE, 0x76D4, 0x76E6, 0x76F1, 0x76FC, 0x770A, 0x7719, + 0x7734, 0x7736, 0x7746, 0x774D, 0x774E, 0x775C, 0x775F, 0x7762, + 0x777A, 0x7780, 0x7794, 0x77AA, 0x77E0, 0x782D, 0xD855 /*0xDC8E*/, +}; +static const unsigned short euc_to_utf8_F9[] = { + 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, +}; +static const unsigned short euc_to_utf8_F9_x0213[] = { + 0x7843, 0x784E, 0x784F, 0x7851, 0x7868, 0x786E, 0xFA4B, + 0x78B0, 0xD855 /*0xDD0E*/, 0x78AD, 0x78E4, 0x78F2, 0x7900, 0x78F7, 0x791C, + 0x792E, 0x7931, 0x7934, 0xFA4C, 0xFA4D, 0x7945, 0x7946, 0xFA4E, + 0xFA4F, 0xFA50, 0x795C, 0xFA51, 0xFA19, 0xFA1A, 0x7979, 0xFA52, + 0xFA53, 0xFA1B, 0x7998, 0x79B1, 0x79B8, 0x79C8, 0x79CA, 0xD855 /*0xDF71*/, + 0x79D4, 0x79DE, 0x79EB, 0x79ED, 0x7A03, 0xFA54, 0x7A39, 0x7A5D, + 0x7A6D, 0xFA55, 0x7A85, 0x7AA0, 0xD856 /*0xDDC4*/, 0x7AB3, 0x7ABB, 0x7ACE, + 0x7AEB, 0x7AFD, 0x7B12, 0x7B2D, 0x7B3B, 0x7B47, 0x7B4E, 0x7B60, + 0x7B6D, 0x7B6F, 0x7B72, 0x7B9E, 0xFA56, 0x7BD7, 0x7BD9, 0x7C01, + 0x7C31, 0x7C1E, 0x7C20, 0x7C33, 0x7C36, 0x4264, 0xD857 /*0xDDA1*/, 0x7C59, + 0x7C6D, 0x7C79, 0x7C8F, 0x7C94, 0x7CA0, 0x7CBC, 0x7CD5, 0x7CD9, + 0x7CDD, 0x7D07, 0x7D08, 0x7D13, 0x7D1D, 0x7D23, 0x7D31, +}; +static const unsigned short euc_to_utf8_FA[] = { + 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, +}; +static const unsigned short euc_to_utf8_FA_x0213[] = { + 0x7D41, 0x7D48, 0x7D53, 0x7D5C, 0x7D7A, 0x7D83, 0x7D8B, + 0x7DA0, 0x7DA6, 0x7DC2, 0x7DCC, 0x7DD6, 0x7DE3, 0xFA57, 0x7E28, + 0x7E08, 0x7E11, 0x7E15, 0xFA59, 0x7E47, 0x7E52, 0x7E61, 0x7E8A, + 0x7E8D, 0x7F47, 0xFA5A, 0x7F91, 0x7F97, 0x7FBF, 0x7FCE, 0x7FDB, + 0x7FDF, 0x7FEC, 0x7FEE, 0x7FFA, 0xFA5B, 0x8014, 0x8026, 0x8035, + 0x8037, 0x803C, 0x80CA, 0x80D7, 0x80E0, 0x80F3, 0x8118, 0x814A, + 0x8160, 0x8167, 0x8168, 0x816D, 0x81BB, 0x81CA, 0x81CF, 0x81D7, + 0xFA5C, 0x4453, 0x445B, 0x8260, 0x8274, 0xD85A /*0xDEFF*/, 0x828E, 0x82A1, + 0x82A3, 0x82A4, 0x82A9, 0x82AE, 0x82B7, 0x82BE, 0x82BF, 0x82C6, + 0x82D5, 0x82FD, 0x82FE, 0x8300, 0x8301, 0x8362, 0x8322, 0x832D, + 0x833A, 0x8343, 0x8347, 0x8351, 0x8355, 0x837D, 0x8386, 0x8392, + 0x8398, 0x83A7, 0x83A9, 0x83BF, 0x83C0, 0x83C7, 0x83CF, +}; +static const unsigned short euc_to_utf8_FB[] = { + 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, +}; +static const unsigned short euc_to_utf8_FB_x0213[] = { + 0x83D1, 0x83E1, 0x83EA, 0x8401, 0x8406, 0x840A, 0xFA5F, + 0x8448, 0x845F, 0x8470, 0x8473, 0x8485, 0x849E, 0x84AF, 0x84B4, + 0x84BA, 0x84C0, 0x84C2, 0xD85B /*0xDE40*/, 0x8532, 0x851E, 0x8523, 0x852F, + 0x8559, 0x8564, 0xFA1F, 0x85AD, 0x857A, 0x858C, 0x858F, 0x85A2, + 0x85B0, 0x85CB, 0x85CE, 0x85ED, 0x8612, 0x85FF, 0x8604, 0x8605, + 0x8610, 0xD85C /*0xDCF4*/, 0x8618, 0x8629, 0x8638, 0x8657, 0x865B, 0xF936, + 0x8662, 0x459D, 0x866C, 0x8675, 0x8698, 0x86B8, 0x86FA, 0x86FC, + 0x86FD, 0x870B, 0x8771, 0x8787, 0x8788, 0x87AC, 0x87AD, 0x87B5, + 0x45EA, 0x87D6, 0x87EC, 0x8806, 0x880A, 0x8810, 0x8814, 0x881F, + 0x8898, 0x88AA, 0x88CA, 0x88CE, 0xD85D /*0xDE84*/, 0x88F5, 0x891C, 0xFA60, + 0x8918, 0x8919, 0x891A, 0x8927, 0x8930, 0x8932, 0x8939, 0x8940, + 0x8994, 0xFA61, 0x89D4, 0x89E5, 0x89F6, 0x8A12, 0x8A15, +}; +static const unsigned short euc_to_utf8_FC[] = { + 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, 0, + 0, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, + 0x2177, 0x2178, 0x2179, 0xFFE2, 0x00A6, 0xFF07, 0xFF02, +}; + +/* Microsoft UCS Mapping Compatible */ +static const unsigned short euc_to_utf8_FC_ms[] = { + 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, 0, + 0, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, + 0x2177, 0x2178, 0x2179, 0xFFE2, 0xFFE4, 0xFF07, 0xFF02, +}; +static const unsigned short euc_to_utf8_FC_x0213[] = { + 0x8A22, 0x8A37, 0x8A47, 0x8A4E, 0x8A5D, 0x8A61, 0x8A75, + 0x8A79, 0x8AA7, 0x8AD0, 0x8ADF, 0x8AF4, 0x8AF6, 0xFA22, 0xFA62, + 0xFA63, 0x8B46, 0x8B54, 0x8B59, 0x8B69, 0x8B9D, 0x8C49, 0x8C68, + 0xFA64, 0x8CE1, 0x8CF4, 0x8CF8, 0x8CFE, 0xFA65, 0x8D12, 0x8D1B, + 0x8DAF, 0x8DCE, 0x8DD1, 0x8DD7, 0x8E20, 0x8E23, 0x8E3D, 0x8E70, + 0x8E7B, 0xD860 /*0xDE77*/, 0x8EC0, 0x4844, 0x8EFA, 0x8F1E, 0x8F2D, 0x8F36, + 0x8F54, 0xD860 /*0xDFCD*/, 0x8FA6, 0x8FB5, 0x8FE4, 0x8FE8, 0x8FEE, 0x9008, + 0x902D, 0xFA67, 0x9088, 0x9095, 0x9097, 0x9099, 0x909B, 0x90A2, + 0x90B3, 0x90BE, 0x90C4, 0x90C5, 0x90C7, 0x90D7, 0x90DD, 0x90DE, + 0x90EF, 0x90F4, 0xFA26, 0x9114, 0x9115, 0x9116, 0x9122, 0x9123, + 0x9127, 0x912F, 0x9131, 0x9134, 0x913D, 0x9148, 0x915B, 0x9183, + 0x919E, 0x91AC, 0x91B1, 0x91BC, 0x91D7, 0x91FB, 0x91E4, +}; +static const unsigned short euc_to_utf8_FD_x0213[] = { + 0x91E5, 0x91ED, 0x91F1, 0x9207, 0x9210, 0x9238, 0x9239, + 0x923A, 0x923C, 0x9240, 0x9243, 0x924F, 0x9278, 0x9288, 0x92C2, + 0x92CB, 0x92CC, 0x92D3, 0x92E0, 0x92FF, 0x9304, 0x931F, 0x9321, + 0x9325, 0x9348, 0x9349, 0x934A, 0x9364, 0x9365, 0x936A, 0x9370, + 0x939B, 0x93A3, 0x93BA, 0x93C6, 0x93DE, 0x93DF, 0x9404, 0x93FD, + 0x9433, 0x944A, 0x9463, 0x946B, 0x9471, 0x9472, 0x958E, 0x959F, + 0x95A6, 0x95A9, 0x95AC, 0x95B6, 0x95BD, 0x95CB, 0x95D0, 0x95D3, + 0x49B0, 0x95DA, 0x95DE, 0x9658, 0x9684, 0xF9DC, 0x969D, 0x96A4, + 0x96A5, 0x96D2, 0x96DE, 0xFA68, 0x96E9, 0x96EF, 0x9733, 0x973B, + 0x974D, 0x974E, 0x974F, 0x975A, 0x976E, 0x9773, 0x9795, 0x97AE, + 0x97BA, 0x97C1, 0x97C9, 0x97DE, 0x97DB, 0x97F4, 0xFA69, 0x980A, + 0x981E, 0x982B, 0x9830, 0xFA6A, 0x9852, 0x9853, 0x9856, +}; +static const unsigned short euc_to_utf8_FE_x0213[] = { + 0x9857, 0x9859, 0x985A, 0xF9D0, 0x9865, 0x986C, 0x98BA, + 0x98C8, 0x98E7, 0x9958, 0x999E, 0x9A02, 0x9A03, 0x9A24, 0x9A2D, + 0x9A2E, 0x9A38, 0x9A4A, 0x9A4E, 0x9A52, 0x9AB6, 0x9AC1, 0x9AC3, + 0x9ACE, 0x9AD6, 0x9AF9, 0x9B02, 0x9B08, 0x9B20, 0x4C17, 0x9B2D, + 0x9B5E, 0x9B79, 0x9B66, 0x9B72, 0x9B75, 0x9B84, 0x9B8A, 0x9B8F, + 0x9B9E, 0x9BA7, 0x9BC1, 0x9BCE, 0x9BE5, 0x9BF8, 0x9BFD, 0x9C00, + 0x9C23, 0x9C41, 0x9C4F, 0x9C50, 0x9C53, 0x9C63, 0x9C65, 0x9C77, + 0x9D1D, 0x9D1E, 0x9D43, 0x9D47, 0x9D52, 0x9D63, 0x9D70, 0x9D7C, + 0x9D8A, 0x9D96, 0x9DC0, 0x9DAC, 0x9DBC, 0x9DD7, 0xD868 /*0xDD90*/, 0x9DE7, + 0x9E07, 0x9E15, 0x9E7C, 0x9E9E, 0x9EA4, 0x9EAC, 0x9EAF, 0x9EB4, + 0x9EB5, 0x9EC3, 0x9ED1, 0x9F10, 0x9F39, 0x9F57, 0x9F90, 0x9F94, + 0x9F97, 0x9FA2, 0x59F8, 0x5C5B, 0x5E77, 0x7626, 0x7E6B, +}; + +static const unsigned short euc_to_utf8_8FA1_x0213[] = { + 0xD840 /*0xDC89*/, 0x4E02, 0x4E0F, 0x4E12, 0x4E29, 0x4E2B, 0x4E2E, + 0x4E40, 0x4E47, 0x4E48, 0xD840 /*0xDCA2*/, 0x4E51, 0x3406, 0xD840 /*0xDCA4*/, 0x4E5A, + 0x4E69, 0x4E9D, 0x342C, 0x342E, 0x4EB9, 0x4EBB, 0xD840 /*0xDDA2*/, 0x4EBC, + 0x4EC3, 0x4EC8, 0x4ED0, 0x4EEB, 0x4EDA, 0x4EF1, 0x4EF5, 0x4F00, + 0x4F16, 0x4F64, 0x4F37, 0x4F3E, 0x4F54, 0x4F58, 0xD840 /*0xDE13*/, 0x4F77, + 0x4F78, 0x4F7A, 0x4F7D, 0x4F82, 0x4F85, 0x4F92, 0x4F9A, 0x4FE6, + 0x4FB2, 0x4FBE, 0x4FC5, 0x4FCB, 0x4FCF, 0x4FD2, 0x346A, 0x4FF2, + 0x5000, 0x5010, 0x5013, 0x501C, 0x501E, 0x5022, 0x3468, 0x5042, + 0x5046, 0x504E, 0x5053, 0x5057, 0x5063, 0x5066, 0x506A, 0x5070, + 0x50A3, 0x5088, 0x5092, 0x5093, 0x5095, 0x5096, 0x509C, 0x50AA, + 0xD840 /*0xDF2B*/, 0x50B1, 0x50BA, 0x50BB, 0x50C4, 0x50C7, 0x50F3, 0xD840 /*0xDF81*/, + 0x50CE, 0xD840 /*0xDF71*/, 0x50D4, 0x50D9, 0x50E1, 0x50E9, 0x3492, +}; +static const unsigned short euc_to_utf8_8FA3_x0213[] = { + 0x5108, 0xD840 /*0xDFF9*/, 0x5117, 0x511B, 0xD841 /*0xDC4A*/, 0x5160, 0xD841 /*0xDD09*/, + 0x5173, 0x5183, 0x518B, 0x34BC, 0x5198, 0x51A3, 0x51AD, 0x34C7, + 0x51BC, 0xD841 /*0xDDD6*/, 0xD841 /*0xDE28*/, 0x51F3, 0x51F4, 0x5202, 0x5212, 0x5216, + 0xD841 /*0xDF4F*/, 0x5255, 0x525C, 0x526C, 0x5277, 0x5284, 0x5282, 0xD842 /*0xDC07*/, + 0x5298, 0xD842 /*0xDC3A*/, 0x52A4, 0x52A6, 0x52AF, 0x52BA, 0x52BB, 0x52CA, + 0x351F, 0x52D1, 0xD842 /*0xDCB9*/, 0x52F7, 0x530A, 0x530B, 0x5324, 0x5335, + 0x533E, 0x5342, 0xD842 /*0xDD7C*/, 0xD842 /*0xDD9D*/, 0x5367, 0x536C, 0x537A, 0x53A4, + 0x53B4, 0xD842 /*0xDED3*/, 0x53B7, 0x53C0, 0xD842 /*0xDF1D*/, 0x355D, 0x355E, 0x53D5, + 0x53DA, 0x3563, 0x53F4, 0x53F5, 0x5455, 0x5424, 0x5428, 0x356E, + 0x5443, 0x5462, 0x5466, 0x546C, 0x548A, 0x548D, 0x5495, 0x54A0, + 0x54A6, 0x54AD, 0x54AE, 0x54B7, 0x54BA, 0x54BF, 0x54C3, 0xD843 /*0xDD45*/, + 0x54EC, 0x54EF, 0x54F1, 0x54F3, 0x5500, 0x5501, 0x5509, +}; +static const unsigned short euc_to_utf8_8FA4_x0213[] = { + 0x553C, 0x5541, 0x35A6, 0x5547, 0x554A, 0x35A8, 0x5560, + 0x5561, 0x5564, 0xD843 /*0xDDE1*/, 0x557D, 0x5582, 0x5588, 0x5591, 0x35C5, + 0x55D2, 0xD843 /*0xDE95*/, 0xD843 /*0xDE6D*/, 0x55BF, 0x55C9, 0x55CC, 0x55D1, 0x55DD, + 0x35DA, 0x55E2, 0xD843 /*0xDE64*/, 0x55E9, 0x5628, 0xD843 /*0xDF5F*/, 0x5607, 0x5610, + 0x5630, 0x5637, 0x35F4, 0x563D, 0x563F, 0x5640, 0x5647, 0x565E, + 0x5660, 0x566D, 0x3605, 0x5688, 0x568C, 0x5695, 0x569A, 0x569D, + 0x56A8, 0x56AD, 0x56B2, 0x56C5, 0x56CD, 0x56DF, 0x56E8, 0x56F6, + 0x56F7, 0xD844 /*0xDE01*/, 0x5715, 0x5723, 0xD844 /*0xDE55*/, 0x5729, 0xD844 /*0xDE7B*/, 0x5745, + 0x5746, 0x574C, 0x574D, 0xD844 /*0xDE74*/, 0x5768, 0x576F, 0x5773, 0x5774, + 0x5775, 0x577B, 0xD844 /*0xDEE4*/, 0xD844 /*0xDED7*/, 0x57AC, 0x579A, 0x579D, 0x579E, + 0x57A8, 0x57D7, 0xD844 /*0xDEFD*/, 0x57CC, 0xD844 /*0xDF36*/, 0xD844 /*0xDF44*/, 0x57DE, 0x57E6, + 0x57F0, 0x364A, 0x57F8, 0x57FB, 0x57FD, 0x5804, 0x581E, +}; +static const unsigned short euc_to_utf8_8FA5_x0213[] = { + 0x5820, 0x5827, 0x5832, 0x5839, 0xD844 /*0xDFC4*/, 0x5849, 0x584C, + 0x5867, 0x588A, 0x588B, 0x588D, 0x588F, 0x5890, 0x5894, 0x589D, + 0x58AA, 0x58B1, 0xD845 /*0xDC6D*/, 0x58C3, 0x58CD, 0x58E2, 0x58F3, 0x58F4, + 0x5905, 0x5906, 0x590B, 0x590D, 0x5914, 0x5924, 0xD845 /*0xDDD7*/, 0x3691, + 0x593D, 0x3699, 0x5946, 0x3696, 0xD85B /*0xDC29*/, 0x595B, 0x595F, 0xD845 /*0xDE47*/, + 0x5975, 0x5976, 0x597C, 0x599F, 0x59AE, 0x59BC, 0x59C8, 0x59CD, + 0x59DE, 0x59E3, 0x59E4, 0x59E7, 0x59EE, 0xD845 /*0xDF06*/, 0xD845 /*0xDF42*/, 0x36CF, + 0x5A0C, 0x5A0D, 0x5A17, 0x5A27, 0x5A2D, 0x5A55, 0x5A65, 0x5A7A, + 0x5A8B, 0x5A9C, 0x5A9F, 0x5AA0, 0x5AA2, 0x5AB1, 0x5AB3, 0x5AB5, + 0x5ABA, 0x5ABF, 0x5ADA, 0x5ADC, 0x5AE0, 0x5AE5, 0x5AF0, 0x5AEE, + 0x5AF5, 0x5B00, 0x5B08, 0x5B17, 0x5B34, 0x5B2D, 0x5B4C, 0x5B52, + 0x5B68, 0x5B6F, 0x5B7C, 0x5B7F, 0x5B81, 0x5B84, 0xD846 /*0xDDC3*/, +}; +static const unsigned short euc_to_utf8_8FA8_x0213[] = { + 0x5B96, 0x5BAC, 0x3761, 0x5BC0, 0x3762, 0x5BCE, 0x5BD6, + 0x376C, 0x376B, 0x5BF1, 0x5BFD, 0x3775, 0x5C03, 0x5C29, 0x5C30, + 0xD847 /*0xDC56*/, 0x5C5F, 0x5C63, 0x5C67, 0x5C68, 0x5C69, 0x5C70, 0xD847 /*0xDD2D*/, + 0xD847 /*0xDD45*/, 0x5C7C, 0xD847 /*0xDD78*/, 0xD847 /*0xDD62*/, 0x5C88, 0x5C8A, 0x37C1, 0xD847 /*0xDDA1*/, + 0xD847 /*0xDD9C*/, 0x5CA0, 0x5CA2, 0x5CA6, 0x5CA7, 0xD847 /*0xDD92*/, 0x5CAD, 0x5CB5, + 0xD847 /*0xDDB7*/, 0x5CC9, 0xD847 /*0xDDE0*/, 0xD847 /*0xDE33*/, 0x5D06, 0x5D10, 0x5D2B, 0x5D1D, + 0x5D20, 0x5D24, 0x5D26, 0x5D31, 0x5D39, 0x5D42, 0x37E8, 0x5D61, + 0x5D6A, 0x37F4, 0x5D70, 0xD847 /*0xDF1E*/, 0x37FD, 0x5D88, 0x3800, 0x5D92, + 0x5D94, 0x5D97, 0x5D99, 0x5DB0, 0x5DB2, 0x5DB4, 0xD847 /*0xDF76*/, 0x5DB9, + 0x5DD1, 0x5DD7, 0x5DD8, 0x5DE0, 0xD847 /*0xDFFA*/, 0x5DE4, 0x5DE9, 0x382F, + 0x5E00, 0x3836, 0x5E12, 0x5E15, 0x3840, 0x5E1F, 0x5E2E, 0x5E3E, + 0x5E49, 0x385C, 0x5E56, 0x3861, 0x5E6B, 0x5E6C, 0x5E6D, +}; +static const unsigned short euc_to_utf8_8FAC_x0213[] = { + 0x5E6E, 0xD848 /*0xDD7B*/, 0x5EA5, 0x5EAA, 0x5EAC, 0x5EB9, 0x5EBF, + 0x5EC6, 0x5ED2, 0x5ED9, 0xD848 /*0xDF1E*/, 0x5EFD, 0x5F08, 0x5F0E, 0x5F1C, + 0xD848 /*0xDFAD*/, 0x5F1E, 0x5F47, 0x5F63, 0x5F72, 0x5F7E, 0x5F8F, 0x5FA2, + 0x5FA4, 0x5FB8, 0x5FC4, 0x38FA, 0x5FC7, 0x5FCB, 0x5FD2, 0x5FD3, + 0x5FD4, 0x5FE2, 0x5FEE, 0x5FEF, 0x5FF3, 0x5FFC, 0x3917, 0x6017, + 0x6022, 0x6024, 0x391A, 0x604C, 0x607F, 0x608A, 0x6095, 0x60A8, + 0xD849 /*0xDEF3*/, 0x60B0, 0x60B1, 0x60BE, 0x60C8, 0x60D9, 0x60DB, 0x60EE, + 0x60F2, 0x60F5, 0x6110, 0x6112, 0x6113, 0x6119, 0x611E, 0x613A, + 0x396F, 0x6141, 0x6146, 0x6160, 0x617C, 0xD84A /*0xDC5B*/, 0x6192, 0x6193, + 0x6197, 0x6198, 0x61A5, 0x61A8, 0x61AD, 0xD84A /*0xDCAB*/, 0x61D5, 0x61DD, + 0x61DF, 0x61F5, 0xD84A /*0xDD8F*/, 0x6215, 0x6223, 0x6229, 0x6246, 0x624C, + 0x6251, 0x6252, 0x6261, 0x6264, 0x627B, 0x626D, 0x6273, +}; +static const unsigned short euc_to_utf8_8FAD_x0213[] = { + 0x6299, 0x62A6, 0x62D5, 0xD84A /*0xDEB8*/, 0x62FD, 0x6303, 0x630D, + 0x6310, 0xD84A /*0xDF4F*/, 0xD84A /*0xDF50*/, 0x6332, 0x6335, 0x633B, 0x633C, 0x6341, + 0x6344, 0x634E, 0xD84A /*0xDF46*/, 0x6359, 0xD84B /*0xDC1D*/, 0xD84A /*0xDFA6*/, 0x636C, 0x6384, + 0x6399, 0xD84B /*0xDC24*/, 0x6394, 0x63BD, 0x63F7, 0x63D4, 0x63D5, 0x63DC, + 0x63E0, 0x63EB, 0x63EC, 0x63F2, 0x6409, 0x641E, 0x6425, 0x6429, + 0x642F, 0x645A, 0x645B, 0x645D, 0x6473, 0x647D, 0x6487, 0x6491, + 0x649D, 0x649F, 0x64CB, 0x64CC, 0x64D5, 0x64D7, 0xD84B /*0xDDE1*/, 0x64E4, + 0x64E5, 0x64FF, 0x6504, 0x3A6E, 0x650F, 0x6514, 0x6516, 0x3A73, + 0x651E, 0x6532, 0x6544, 0x6554, 0x656B, 0x657A, 0x6581, 0x6584, + 0x6585, 0x658A, 0x65B2, 0x65B5, 0x65B8, 0x65BF, 0x65C2, 0x65C9, + 0x65D4, 0x3AD6, 0x65F2, 0x65F9, 0x65FC, 0x6604, 0x6608, 0x6621, + 0x662A, 0x6645, 0x6651, 0x664E, 0x3AEA, 0xD84C /*0xDDC3*/, 0x6657, +}; +static const unsigned short euc_to_utf8_8FAE_x0213[] = { + 0x665B, 0x6663, 0xD84C /*0xDDF5*/, 0xD84C /*0xDDB6*/, 0x666A, 0x666B, 0x666C, + 0x666D, 0x667B, 0x6680, 0x6690, 0x6692, 0x6699, 0x3B0E, 0x66AD, + 0x66B1, 0x66B5, 0x3B1A, 0x66BF, 0x3B1C, 0x66EC, 0x3AD7, 0x6701, + 0x6705, 0x6712, 0xD84C /*0xDF72*/, 0x6719, 0xD84C /*0xDFD3*/, 0xD84C /*0xDFD2*/, 0x674C, 0x674D, + 0x6754, 0x675D, 0xD84C /*0xDFD0*/, 0xD84C /*0xDFE4*/, 0xD84C /*0xDFD5*/, 0x6774, 0x6776, 0xD84C /*0xDFDA*/, + 0x6792, 0xD84C /*0xDFDF*/, 0x8363, 0x6810, 0x67B0, 0x67B2, 0x67C3, 0x67C8, + 0x67D2, 0x67D9, 0x67DB, 0x67F0, 0x67F7, 0xD84D /*0xDC4A*/, 0xD84D /*0xDC51*/, 0xD84D /*0xDC4B*/, + 0x6818, 0x681F, 0x682D, 0xD84D /*0xDC65*/, 0x6833, 0x683B, 0x683E, 0x6844, + 0x6845, 0x6849, 0x684C, 0x6855, 0x6857, 0x3B77, 0x686B, 0x686E, + 0x687A, 0x687C, 0x6882, 0x6890, 0x6896, 0x3B6D, 0x6898, 0x6899, + 0x689A, 0x689C, 0x68AA, 0x68AB, 0x68B4, 0x68BB, 0x68FB, 0xD84D /*0xDCE4*/, + 0xD84D /*0xDD5A*/, 0xFA13, 0x68C3, 0x68C5, 0x68CC, 0x68CF, 0x68D6, +}; +static const unsigned short euc_to_utf8_8FAF_x0213[] = { + 0x68D9, 0x68E4, 0x68E5, 0x68EC, 0x68F7, 0x6903, 0x6907, + 0x3B87, 0x3B88, 0xD84D /*0xDD94*/, 0x693B, 0x3B8D, 0x6946, 0x6969, 0x696C, + 0x6972, 0x697A, 0x697F, 0x6992, 0x3BA4, 0x6996, 0x6998, 0x69A6, + 0x69B0, 0x69B7, 0x69BA, 0x69BC, 0x69C0, 0x69D1, 0x69D6, 0xD84D /*0xDE39*/, + 0xD84D /*0xDE47*/, 0x6A30, 0xD84D /*0xDE38*/, 0xD84D /*0xDE3A*/, 0x69E3, 0x69EE, 0x69EF, 0x69F3, + 0x3BCD, 0x69F4, 0x69FE, 0x6A11, 0x6A1A, 0x6A1D, 0xD84D /*0xDF1C*/, 0x6A32, + 0x6A33, 0x6A34, 0x6A3F, 0x6A46, 0x6A49, 0x6A7A, 0x6A4E, 0x6A52, + 0x6A64, 0xD84D /*0xDF0C*/, 0x6A7E, 0x6A83, 0x6A8B, 0x3BF0, 0x6A91, 0x6A9F, + 0x6AA1, 0xD84D /*0xDF64*/, 0x6AAB, 0x6ABD, 0x6AC6, 0x6AD4, 0x6AD0, 0x6ADC, + 0x6ADD, 0xD84D /*0xDFFF*/, 0xD84D /*0xDFE7*/, 0x6AEC, 0x6AF1, 0x6AF2, 0x6AF3, 0x6AFD, + 0xD84E /*0xDC24*/, 0x6B0B, 0x6B0F, 0x6B10, 0x6B11, 0xD84E /*0xDC3D*/, 0x6B17, 0x3C26, + 0x6B2F, 0x6B4A, 0x6B58, 0x6B6C, 0x6B75, 0x6B7A, 0x6B81, +}; +static const unsigned short euc_to_utf8_8FEE_x0213[] = { + 0x6B9B, 0x6BAE, 0xD84E /*0xDE98*/, 0x6BBD, 0x6BBE, 0x6BC7, 0x6BC8, + 0x6BC9, 0x6BDA, 0x6BE6, 0x6BE7, 0x6BEE, 0x6BF1, 0x6C02, 0x6C0A, + 0x6C0E, 0x6C35, 0x6C36, 0x6C3A, 0xD84F /*0xDC7F*/, 0x6C3F, 0x6C4D, 0x6C5B, + 0x6C6D, 0x6C84, 0x6C89, 0x3CC3, 0x6C94, 0x6C95, 0x6C97, 0x6CAD, + 0x6CC2, 0x6CD0, 0x3CD2, 0x6CD6, 0x6CDA, 0x6CDC, 0x6CE9, 0x6CEC, + 0x6CED, 0xD84F /*0xDD00*/, 0x6D00, 0x6D0A, 0x6D24, 0x6D26, 0x6D27, 0x6C67, + 0x6D2F, 0x6D3C, 0x6D5B, 0x6D5E, 0x6D60, 0x6D70, 0x6D80, 0x6D81, + 0x6D8A, 0x6D8D, 0x6D91, 0x6D98, 0xD84F /*0xDD40*/, 0x6E17, 0xD84F /*0xDDFA*/, 0xD84F /*0xDDF9*/, + 0xD84F /*0xDDD3*/, 0x6DAB, 0x6DAE, 0x6DB4, 0x6DC2, 0x6D34, 0x6DC8, 0x6DCE, + 0x6DCF, 0x6DD0, 0x6DDF, 0x6DE9, 0x6DF6, 0x6E36, 0x6E1E, 0x6E22, + 0x6E27, 0x3D11, 0x6E32, 0x6E3C, 0x6E48, 0x6E49, 0x6E4B, 0x6E4C, + 0x6E4F, 0x6E51, 0x6E53, 0x6E54, 0x6E57, 0x6E63, 0x3D1E, +}; +static const unsigned short euc_to_utf8_8FEF_x0213[] = { + 0x6E93, 0x6EA7, 0x6EB4, 0x6EBF, 0x6EC3, 0x6ECA, 0x6ED9, + 0x6F35, 0x6EEB, 0x6EF9, 0x6EFB, 0x6F0A, 0x6F0C, 0x6F18, 0x6F25, + 0x6F36, 0x6F3C, 0xD84F /*0xDF7E*/, 0x6F52, 0x6F57, 0x6F5A, 0x6F60, 0x6F68, + 0x6F98, 0x6F7D, 0x6F90, 0x6F96, 0x6FBE, 0x6F9F, 0x6FA5, 0x6FAF, + 0x3D64, 0x6FB5, 0x6FC8, 0x6FC9, 0x6FDA, 0x6FDE, 0x6FE9, 0xD850 /*0xDC96*/, + 0x6FFC, 0x7000, 0x7007, 0x700A, 0x7023, 0xD850 /*0xDD03*/, 0x7039, 0x703A, + 0x703C, 0x7043, 0x7047, 0x704B, 0x3D9A, 0x7054, 0x7065, 0x7069, + 0x706C, 0x706E, 0x7076, 0x707E, 0x7081, 0x7086, 0x7095, 0x7097, + 0x70BB, 0xD850 /*0xDDC6*/, 0x709F, 0x70B1, 0xD850 /*0xDDFE*/, 0x70EC, 0x70CA, 0x70D1, + 0x70D3, 0x70DC, 0x7103, 0x7104, 0x7106, 0x7107, 0x7108, 0x710C, + 0x3DC0, 0x712F, 0x7131, 0x7150, 0x714A, 0x7153, 0x715E, 0x3DD4, + 0x7196, 0x7180, 0x719B, 0x71A0, 0x71A2, 0x71AE, 0x71AF, +}; +static const unsigned short euc_to_utf8_8FF0_x0213[] = { + 0x71B3, 0xD850 /*0xDFBC*/, 0x71CB, 0x71D3, 0x71D9, 0x71DC, 0x7207, + 0x3E05, 0xFA49, 0x722B, 0x7234, 0x7238, 0x7239, 0x4E2C, 0x7242, + 0x7253, 0x7257, 0x7263, 0xD851 /*0xDE29*/, 0x726E, 0x726F, 0x7278, 0x727F, + 0x728E, 0xD851 /*0xDEA5*/, 0x72AD, 0x72AE, 0x72B0, 0x72B1, 0x72C1, 0x3E60, + 0x72CC, 0x3E66, 0x3E68, 0x72F3, 0x72FA, 0x7307, 0x7312, 0x7318, + 0x7319, 0x3E83, 0x7339, 0x732C, 0x7331, 0x7333, 0x733D, 0x7352, + 0x3E94, 0x736B, 0x736C, 0xD852 /*0xDC96*/, 0x736E, 0x736F, 0x7371, 0x7377, + 0x7381, 0x7385, 0x738A, 0x7394, 0x7398, 0x739C, 0x739E, 0x73A5, + 0x73A8, 0x73B5, 0x73B7, 0x73B9, 0x73BC, 0x73BF, 0x73C5, 0x73CB, + 0x73E1, 0x73E7, 0x73F9, 0x7413, 0x73FA, 0x7401, 0x7424, 0x7431, + 0x7439, 0x7453, 0x7440, 0x7443, 0x744D, 0x7452, 0x745D, 0x7471, + 0x7481, 0x7485, 0x7488, 0xD852 /*0xDE4D*/, 0x7492, 0x7497, 0x7499, +}; +static const unsigned short euc_to_utf8_8FF1_x0213[] = { + 0x74A0, 0x74A1, 0x74A5, 0x74AA, 0x74AB, 0x74B9, 0x74BB, + 0x74BA, 0x74D6, 0x74D8, 0x74DE, 0x74EF, 0x74EB, 0xD852 /*0xDF56*/, 0x74FA, + 0xD852 /*0xDF6F*/, 0x7520, 0x7524, 0x752A, 0x3F57, 0xD853 /*0xDC16*/, 0x753D, 0x753E, + 0x7540, 0x7548, 0x754E, 0x7550, 0x7552, 0x756C, 0x7572, 0x7571, + 0x757A, 0x757D, 0x757E, 0x7581, 0xD853 /*0xDD14*/, 0x758C, 0x3F75, 0x75A2, + 0x3F77, 0x75B0, 0x75B7, 0x75BF, 0x75C0, 0x75C6, 0x75CF, 0x75D3, + 0x75DD, 0x75DF, 0x75E0, 0x75E7, 0x75EC, 0x75EE, 0x75F1, 0x75F9, + 0x7603, 0x7618, 0x7607, 0x760F, 0x3FAE, 0xD853 /*0xDE0E*/, 0x7613, 0x761B, + 0x761C, 0xD853 /*0xDE37*/, 0x7625, 0x7628, 0x763C, 0x7633, 0xD853 /*0xDE6A*/, 0x3FC9, + 0x7641, 0xD853 /*0xDE8B*/, 0x7649, 0x7655, 0x3FD7, 0x766E, 0x7695, 0x769C, + 0x76A1, 0x76A0, 0x76A7, 0x76A8, 0x76AF, 0xD854 /*0xDC4A*/, 0x76C9, 0xD854 /*0xDC55*/, + 0x76E8, 0x76EC, 0xD854 /*0xDD22*/, 0x7717, 0x771A, 0x772D, 0x7735, +}; +static const unsigned short euc_to_utf8_8FF2_x0213[] = { + 0xD854 /*0xDDA9*/, 0x4039, 0xD854 /*0xDDE5*/, 0xD854 /*0xDDCD*/, 0x7758, 0x7760, 0x776A, + 0xD854 /*0xDE1E*/, 0x7772, 0x777C, 0x777D, 0xD854 /*0xDE4C*/, 0x4058, 0x779A, 0x779F, + 0x77A2, 0x77A4, 0x77A9, 0x77DE, 0x77DF, 0x77E4, 0x77E6, 0x77EA, + 0x77EC, 0x4093, 0x77F0, 0x77F4, 0x77FB, 0xD855 /*0xDC2E*/, 0x7805, 0x7806, + 0x7809, 0x780D, 0x7819, 0x7821, 0x782C, 0x7847, 0x7864, 0x786A, + 0xD855 /*0xDCD9*/, 0x788A, 0x7894, 0x78A4, 0x789D, 0x789E, 0x789F, 0x78BB, + 0x78C8, 0x78CC, 0x78CE, 0x78D5, 0x78E0, 0x78E1, 0x78E6, 0x78F9, + 0x78FA, 0x78FB, 0x78FE, 0xD855 /*0xDDA7*/, 0x7910, 0x791B, 0x7930, 0x7925, + 0x793B, 0x794A, 0x7958, 0x795B, 0x4105, 0x7967, 0x7972, 0x7994, + 0x7995, 0x7996, 0x799B, 0x79A1, 0x79A9, 0x79B4, 0x79BB, 0x79C2, + 0x79C7, 0x79CC, 0x79CD, 0x79D6, 0x4148, 0xD855 /*0xDFA9*/, 0xD855 /*0xDFB4*/, 0x414F, + 0x7A0A, 0x7A11, 0x7A15, 0x7A1B, 0x7A1E, 0x4163, 0x7A2D, +}; +static const unsigned short euc_to_utf8_8FF3_x0213[] = { + 0x7A38, 0x7A47, 0x7A4C, 0x7A56, 0x7A59, 0x7A5C, 0x7A5F, + 0x7A60, 0x7A67, 0x7A6A, 0x7A75, 0x7A78, 0x7A82, 0x7A8A, 0x7A90, + 0x7AA3, 0x7AAC, 0xD856 /*0xDDD4*/, 0x41B4, 0x7AB9, 0x7ABC, 0x7ABE, 0x41BF, + 0x7ACC, 0x7AD1, 0x7AE7, 0x7AE8, 0x7AF4, 0xD856 /*0xDEE4*/, 0xD856 /*0xDEE3*/, 0x7B07, + 0xD856 /*0xDEF1*/, 0x7B3D, 0x7B27, 0x7B2A, 0x7B2E, 0x7B2F, 0x7B31, 0x41E6, + 0x41F3, 0x7B7F, 0x7B41, 0x41EE, 0x7B55, 0x7B79, 0x7B64, 0x7B66, + 0x7B69, 0x7B73, 0xD856 /*0xDFB2*/, 0x4207, 0x7B90, 0x7B91, 0x7B9B, 0x420E, + 0x7BAF, 0x7BB5, 0x7BBC, 0x7BC5, 0x7BCA, 0xD857 /*0xDC4B*/, 0xD857 /*0xDC64*/, 0x7BD4, + 0x7BD6, 0x7BDA, 0x7BEA, 0x7BF0, 0x7C03, 0x7C0B, 0x7C0E, 0x7C0F, + 0x7C26, 0x7C45, 0x7C4A, 0x7C51, 0x7C57, 0x7C5E, 0x7C61, 0x7C69, + 0x7C6E, 0x7C6F, 0x7C70, 0xD857 /*0xDE2E*/, 0xD857 /*0xDE56*/, 0xD857 /*0xDE65*/, 0x7CA6, 0xD857 /*0xDE62*/, + 0x7CB6, 0x7CB7, 0x7CBF, 0xD857 /*0xDED8*/, 0x7CC4, 0xD857 /*0xDEC2*/, 0x7CC8, +}; +static const unsigned short euc_to_utf8_8FF4_x0213[] = { + 0x7CCD, 0xD857 /*0xDEE8*/, 0x7CD7, 0xD857 /*0xDF23*/, 0x7CE6, 0x7CEB, 0xD857 /*0xDF5C*/, + 0x7CF5, 0x7D03, 0x7D09, 0x42C6, 0x7D12, 0x7D1E, 0xD857 /*0xDFE0*/, 0xD857 /*0xDFD4*/, + 0x7D3D, 0x7D3E, 0x7D40, 0x7D47, 0xD858 /*0xDC0C*/, 0xD857 /*0xDFFB*/, 0x42D6, 0x7D59, + 0x7D5A, 0x7D6A, 0x7D70, 0x42DD, 0x7D7F, 0xD858 /*0xDC17*/, 0x7D86, 0x7D88, + 0x7D8C, 0x7D97, 0xD858 /*0xDC60*/, 0x7D9D, 0x7DA7, 0x7DAA, 0x7DB6, 0x7DB7, + 0x7DC0, 0x7DD7, 0x7DD9, 0x7DE6, 0x7DF1, 0x7DF9, 0x4302, 0xD858 /*0xDCED*/, + 0xFA58, 0x7E10, 0x7E17, 0x7E1D, 0x7E20, 0x7E27, 0x7E2C, 0x7E45, + 0x7E73, 0x7E75, 0x7E7E, 0x7E86, 0x7E87, 0x432B, 0x7E91, 0x7E98, + 0x7E9A, 0x4343, 0x7F3C, 0x7F3B, 0x7F3E, 0x7F43, 0x7F44, 0x7F4F, + 0x34C1, 0xD858 /*0xDE70*/, 0x7F52, 0xD858 /*0xDE86*/, 0x7F61, 0x7F63, 0x7F64, 0x7F6D, + 0x7F7D, 0x7F7E, 0xD858 /*0xDF4C*/, 0x7F90, 0x517B, 0xD84F /*0xDD0E*/, 0x7F96, 0x7F9C, + 0x7FAD, 0xD859 /*0xDC02*/, 0x7FC3, 0x7FCF, 0x7FE3, 0x7FE5, 0x7FEF, +}; +static const unsigned short euc_to_utf8_8FF5_x0213[] = { + 0x7FF2, 0x8002, 0x800A, 0x8008, 0x800E, 0x8011, 0x8016, + 0x8024, 0x802C, 0x8030, 0x8043, 0x8066, 0x8071, 0x8075, 0x807B, + 0x8099, 0x809C, 0x80A4, 0x80A7, 0x80B8, 0xD859 /*0xDE7E*/, 0x80C5, 0x80D5, + 0x80D8, 0x80E6, 0xD859 /*0xDEB0*/, 0x810D, 0x80F5, 0x80FB, 0x43EE, 0x8135, + 0x8116, 0x811E, 0x43F0, 0x8124, 0x8127, 0x812C, 0xD859 /*0xDF1D*/, 0x813D, + 0x4408, 0x8169, 0x4417, 0x8181, 0x441C, 0x8184, 0x8185, 0x4422, + 0x8198, 0x81B2, 0x81C1, 0x81C3, 0x81D6, 0x81DB, 0xD85A /*0xDCDD*/, 0x81E4, + 0xD85A /*0xDCEA*/, 0x81EC, 0xD85A /*0xDD51*/, 0x81FD, 0x81FF, 0xD85A /*0xDD6F*/, 0x8204, 0xD85A /*0xDDDD*/, + 0x8219, 0x8221, 0x8222, 0xD85A /*0xDE1E*/, 0x8232, 0x8234, 0x823C, 0x8246, + 0x8249, 0x8245, 0xD85A /*0xDE58*/, 0x824B, 0x4476, 0x824F, 0x447A, 0x8257, + 0xD85A /*0xDE8C*/, 0x825C, 0x8263, 0xD85A /*0xDEB7*/, 0xFA5D, 0xFA5E, 0x8279, 0x4491, + 0x827D, 0x827F, 0x8283, 0x828A, 0x8293, 0x82A7, 0x82A8, +}; +static const unsigned short euc_to_utf8_8FF6_x0213[] = { + 0x82B2, 0x82B4, 0x82BA, 0x82BC, 0x82E2, 0x82E8, 0x82F7, + 0x8307, 0x8308, 0x830C, 0x8354, 0x831B, 0x831D, 0x8330, 0x833C, + 0x8344, 0x8357, 0x44BE, 0x837F, 0x44D4, 0x44B3, 0x838D, 0x8394, + 0x8395, 0x839B, 0x839D, 0x83C9, 0x83D0, 0x83D4, 0x83DD, 0x83E5, + 0x83F9, 0x840F, 0x8411, 0x8415, 0xD85B /*0xDC73*/, 0x8417, 0x8439, 0x844A, + 0x844F, 0x8451, 0x8452, 0x8459, 0x845A, 0x845C, 0xD85B /*0xDCDD*/, 0x8465, + 0x8476, 0x8478, 0x847C, 0x8481, 0x450D, 0x84DC, 0x8497, 0x84A6, + 0x84BE, 0x4508, 0x84CE, 0x84CF, 0x84D3, 0xD85B /*0xDE65*/, 0x84E7, 0x84EA, + 0x84EF, 0x84F0, 0x84F1, 0x84FA, 0x84FD, 0x850C, 0x851B, 0x8524, + 0x8525, 0x852B, 0x8534, 0x854F, 0x856F, 0x4525, 0x4543, 0x853E, + 0x8551, 0x8553, 0x855E, 0x8561, 0x8562, 0xD85B /*0xDF94*/, 0x857B, 0x857D, + 0x857F, 0x8581, 0x8586, 0x8593, 0x859D, 0x859F, 0xD85B /*0xDFF8*/, +}; +static const unsigned short euc_to_utf8_8FF7_x0213[] = { + 0xD85B /*0xDFF6*/, 0xD85B /*0xDFF7*/, 0x85B7, 0x85BC, 0x85C7, 0x85CA, 0x85D8, + 0x85D9, 0x85DF, 0x85E1, 0x85E6, 0x85F6, 0x8600, 0x8611, 0x861E, + 0x8621, 0x8624, 0x8627, 0xD85C /*0xDD0D*/, 0x8639, 0x863C, 0xD85C /*0xDD39*/, 0x8640, + 0xFA20, 0x8653, 0x8656, 0x866F, 0x8677, 0x867A, 0x8687, 0x8689, + 0x868D, 0x8691, 0x869C, 0x869D, 0x86A8, 0xFA21, 0x86B1, 0x86B3, + 0x86C1, 0x86C3, 0x86D1, 0x86D5, 0x86D7, 0x86E3, 0x86E6, 0x45B8, + 0x8705, 0x8707, 0x870E, 0x8710, 0x8713, 0x8719, 0x871F, 0x8721, + 0x8723, 0x8731, 0x873A, 0x873E, 0x8740, 0x8743, 0x8751, 0x8758, + 0x8764, 0x8765, 0x8772, 0x877C, 0xD85C /*0xDFDB*/, 0xD85C /*0xDFDA*/, 0x87A7, 0x8789, + 0x878B, 0x8793, 0x87A0, 0xD85C /*0xDFFE*/, 0x45E5, 0x87BE, 0xD85D /*0xDC10*/, 0x87C1, + 0x87CE, 0x87F5, 0x87DF, 0xD85D /*0xDC49*/, 0x87E3, 0x87E5, 0x87E6, 0x87EA, + 0x87EB, 0x87ED, 0x8801, 0x8803, 0x880B, 0x8813, 0x8828, +}; +static const unsigned short euc_to_utf8_8FF8_x0213[] = { + 0x882E, 0x8832, 0x883C, 0x460F, 0x884A, 0x8858, 0x885F, + 0x8864, 0xD85D /*0xDE15*/, 0xD85D /*0xDE14*/, 0x8869, 0xD85D /*0xDE31*/, 0x886F, 0x88A0, 0x88BC, + 0x88BD, 0x88BE, 0x88C0, 0x88D2, 0xD85D /*0xDE93*/, 0x88D1, 0x88D3, 0x88DB, + 0x88F0, 0x88F1, 0x4641, 0x8901, 0xD85D /*0xDF0E*/, 0x8937, 0xD85D /*0xDF23*/, 0x8942, + 0x8945, 0x8949, 0xD85D /*0xDF52*/, 0x4665, 0x8962, 0x8980, 0x8989, 0x8990, + 0x899F, 0x89B0, 0x89B7, 0x89D6, 0x89D8, 0x89EB, 0x46A1, 0x89F1, + 0x89F3, 0x89FD, 0x89FF, 0x46AF, 0x8A11, 0x8A14, 0xD85E /*0xDD85*/, 0x8A21, + 0x8A35, 0x8A3E, 0x8A45, 0x8A4D, 0x8A58, 0x8AAE, 0x8A90, 0x8AB7, + 0x8ABE, 0x8AD7, 0x8AFC, 0xD85E /*0xDE84*/, 0x8B0A, 0x8B05, 0x8B0D, 0x8B1C, + 0x8B1F, 0x8B2D, 0x8B43, 0x470C, 0x8B51, 0x8B5E, 0x8B76, 0x8B7F, + 0x8B81, 0x8B8B, 0x8B94, 0x8B95, 0x8B9C, 0x8B9E, 0x8C39, 0xD85E /*0xDFB3*/, + 0x8C3D, 0xD85E /*0xDFBE*/, 0xD85E /*0xDFC7*/, 0x8C45, 0x8C47, 0x8C4F, 0x8C54, +}; +static const unsigned short euc_to_utf8_8FF9_x0213[] = { + 0x8C57, 0x8C69, 0x8C6D, 0x8C73, 0xD85F /*0xDCB8*/, 0x8C93, 0x8C92, + 0x8C99, 0x4764, 0x8C9B, 0x8CA4, 0x8CD6, 0x8CD5, 0x8CD9, 0xD85F /*0xDDA0*/, + 0x8CF0, 0x8CF1, 0xD85F /*0xDE10*/, 0x8D09, 0x8D0E, 0x8D6C, 0x8D84, 0x8D95, + 0x8DA6, 0xD85F /*0xDFB7*/, 0x8DC6, 0x8DC8, 0x8DD9, 0x8DEC, 0x8E0C, 0x47FD, + 0x8DFD, 0x8E06, 0xD860 /*0xDC8A*/, 0x8E14, 0x8E16, 0x8E21, 0x8E22, 0x8E27, + 0xD860 /*0xDCBB*/, 0x4816, 0x8E36, 0x8E39, 0x8E4B, 0x8E54, 0x8E62, 0x8E6C, + 0x8E6D, 0x8E6F, 0x8E98, 0x8E9E, 0x8EAE, 0x8EB3, 0x8EB5, 0x8EB6, + 0x8EBB, 0xD860 /*0xDE82*/, 0x8ED1, 0x8ED4, 0x484E, 0x8EF9, 0xD860 /*0xDEF3*/, 0x8F00, + 0x8F08, 0x8F17, 0x8F2B, 0x8F40, 0x8F4A, 0x8F58, 0xD861 /*0xDC0C*/, 0x8FA4, + 0x8FB4, 0xFA66, 0x8FB6, 0xD861 /*0xDC55*/, 0x8FC1, 0x8FC6, 0xFA24, 0x8FCA, + 0x8FCD, 0x8FD3, 0x8FD5, 0x8FE0, 0x8FF1, 0x8FF5, 0x8FFB, 0x9002, + 0x900C, 0x9037, 0xD861 /*0xDD6B*/, 0x9043, 0x9044, 0x905D, 0xD861 /*0xDDC8*/, +}; +static const unsigned short euc_to_utf8_8FFA_x0213[] = { + 0xD861 /*0xDDC9*/, 0x9085, 0x908C, 0x9090, 0x961D, 0x90A1, 0x48B5, + 0x90B0, 0x90B6, 0x90C3, 0x90C8, 0xD861 /*0xDED7*/, 0x90DC, 0x90DF, 0xD861 /*0xDEFA*/, + 0x90F6, 0x90F2, 0x9100, 0x90EB, 0x90FE, 0x90FF, 0x9104, 0x9106, + 0x9118, 0x911C, 0x911E, 0x9137, 0x9139, 0x913A, 0x9146, 0x9147, + 0x9157, 0x9159, 0x9161, 0x9164, 0x9174, 0x9179, 0x9185, 0x918E, + 0x91A8, 0x91AE, 0x91B3, 0x91B6, 0x91C3, 0x91C4, 0x91DA, 0xD862 /*0xDD49*/, + 0xD862 /*0xDD46*/, 0x91EC, 0x91EE, 0x9201, 0x920A, 0x9216, 0x9217, 0xD862 /*0xDD6B*/, + 0x9233, 0x9242, 0x9247, 0x924A, 0x924E, 0x9251, 0x9256, 0x9259, + 0x9260, 0x9261, 0x9265, 0x9267, 0x9268, 0xD862 /*0xDD87*/, 0xD862 /*0xDD88*/, 0x927C, + 0x927D, 0x927F, 0x9289, 0x928D, 0x9297, 0x9299, 0x929F, 0x92A7, + 0x92AB, 0xD862 /*0xDDBA*/, 0xD862 /*0xDDBB*/, 0x92B2, 0x92BF, 0x92C0, 0x92C6, 0x92CE, + 0x92D0, 0x92D7, 0x92D9, 0x92E5, 0x92E7, 0x9311, 0xD862 /*0xDE1E*/, +}; +static const unsigned short euc_to_utf8_8FFB_x0213[] = { + 0xD862 /*0xDE29*/, 0x92F7, 0x92F9, 0x92FB, 0x9302, 0x930D, 0x9315, + 0x931D, 0x931E, 0x9327, 0x9329, 0xD862 /*0xDE71*/, 0xD862 /*0xDE43*/, 0x9347, 0x9351, + 0x9357, 0x935A, 0x936B, 0x9371, 0x9373, 0x93A1, 0xD862 /*0xDE99*/, 0xD862 /*0xDECD*/, + 0x9388, 0x938B, 0x938F, 0x939E, 0x93F5, 0xD862 /*0xDEE4*/, 0xD862 /*0xDEDD*/, 0x93F1, + 0x93C1, 0x93C7, 0x93DC, 0x93E2, 0x93E7, 0x9409, 0x940F, 0x9416, + 0x9417, 0x93FB, 0x9432, 0x9434, 0x943B, 0x9445, 0xD862 /*0xDFC1*/, 0xD862 /*0xDFEF*/, + 0x946D, 0x946F, 0x9578, 0x9579, 0x9586, 0x958C, 0x958D, 0xD863 /*0xDD10*/, + 0x95AB, 0x95B4, 0xD863 /*0xDD71*/, 0x95C8, 0xD863 /*0xDDFB*/, 0xD863 /*0xDE1F*/, 0x962C, 0x9633, + 0x9634, 0xD863 /*0xDE36*/, 0x963C, 0x9641, 0x9661, 0xD863 /*0xDE89*/, 0x9682, 0xD863 /*0xDEEB*/, + 0x969A, 0xD863 /*0xDF32*/, 0x49E7, 0x96A9, 0x96AF, 0x96B3, 0x96BA, 0x96BD, + 0x49FA, 0xD863 /*0xDFF8*/, 0x96D8, 0x96DA, 0x96DD, 0x4A04, 0x9714, 0x9723, + 0x4A29, 0x9736, 0x9741, 0x9747, 0x9755, 0x9757, 0x975B, +}; +static const unsigned short euc_to_utf8_8FFC_x0213[] = { + 0x976A, 0xD864 /*0xDEA0*/, 0xD864 /*0xDEB1*/, 0x9796, 0x979A, 0x979E, 0x97A2, + 0x97B1, 0x97B2, 0x97BE, 0x97CC, 0x97D1, 0x97D4, 0x97D8, 0x97D9, + 0x97E1, 0x97F1, 0x9804, 0x980D, 0x980E, 0x9814, 0x9816, 0x4ABC, + 0xD865 /*0xDC90*/, 0x9823, 0x9832, 0x9833, 0x9825, 0x9847, 0x9866, 0x98AB, + 0x98AD, 0x98B0, 0xD865 /*0xDDCF*/, 0x98B7, 0x98B8, 0x98BB, 0x98BC, 0x98BF, + 0x98C2, 0x98C7, 0x98CB, 0x98E0, 0xD865 /*0xDE7F*/, 0x98E1, 0x98E3, 0x98E5, + 0x98EA, 0x98F0, 0x98F1, 0x98F3, 0x9908, 0x4B3B, 0xD865 /*0xDEF0*/, 0x9916, + 0x9917, 0xD865 /*0xDF19*/, 0x991A, 0x991B, 0x991C, 0xD865 /*0xDF50*/, 0x9931, 0x9932, + 0x9933, 0x993A, 0x993B, 0x993C, 0x9940, 0x9941, 0x9946, 0x994D, + 0x994E, 0x995C, 0x995F, 0x9960, 0x99A3, 0x99A6, 0x99B9, 0x99BD, + 0x99BF, 0x99C3, 0x99C9, 0x99D4, 0x99D9, 0x99DE, 0xD866 /*0xDCC6*/, 0x99F0, + 0x99F9, 0x99FC, 0x9A0A, 0x9A11, 0x9A16, 0x9A1A, 0x9A20, +}; +static const unsigned short euc_to_utf8_8FFD_x0213[] = { + 0x9A31, 0x9A36, 0x9A44, 0x9A4C, 0x9A58, 0x4BC2, 0x9AAF, + 0x4BCA, 0x9AB7, 0x4BD2, 0x9AB9, 0xD866 /*0xDE72*/, 0x9AC6, 0x9AD0, 0x9AD2, + 0x9AD5, 0x4BE8, 0x9ADC, 0x9AE0, 0x9AE5, 0x9AE9, 0x9B03, 0x9B0C, + 0x9B10, 0x9B12, 0x9B16, 0x9B1C, 0x9B2B, 0x9B33, 0x9B3D, 0x4C20, + 0x9B4B, 0x9B63, 0x9B65, 0x9B6B, 0x9B6C, 0x9B73, 0x9B76, 0x9B77, + 0x9BA6, 0x9BAC, 0x9BB1, 0xD867 /*0xDDDB*/, 0xD867 /*0xDE3D*/, 0x9BB2, 0x9BB8, 0x9BBE, + 0x9BC7, 0x9BF3, 0x9BD8, 0x9BDD, 0x9BE7, 0x9BEA, 0x9BEB, 0x9BEF, + 0x9BEE, 0xD867 /*0xDE15*/, 0x9BFA, 0xD867 /*0xDE8A*/, 0x9BF7, 0xD867 /*0xDE49*/, 0x9C16, 0x9C18, + 0x9C19, 0x9C1A, 0x9C1D, 0x9C22, 0x9C27, 0x9C29, 0x9C2A, 0xD867 /*0xDEC4*/, + 0x9C31, 0x9C36, 0x9C37, 0x9C45, 0x9C5C, 0xD867 /*0xDEE9*/, 0x9C49, 0x9C4A, + 0xD867 /*0xDEDB*/, 0x9C54, 0x9C58, 0x9C5B, 0x9C5D, 0x9C5F, 0x9C69, 0x9C6A, + 0x9C6B, 0x9C6D, 0x9C6E, 0x9C70, 0x9C72, 0x9C75, 0x9C7A, +}; +static const unsigned short euc_to_utf8_8FFE_x0213[] = { + 0x9CE6, 0x9CF2, 0x9D0B, 0x9D02, 0xD867 /*0xDFCE*/, 0x9D11, 0x9D17, + 0x9D18, 0xD868 /*0xDC2F*/, 0x4CC4, 0xD868 /*0xDC1A*/, 0x9D32, 0x4CD1, 0x9D42, 0x9D4A, + 0x9D5F, 0x9D62, 0xD868 /*0xDCF9*/, 0x9D69, 0x9D6B, 0xD868 /*0xDC82*/, 0x9D73, 0x9D76, + 0x9D77, 0x9D7E, 0x9D84, 0x9D8D, 0x9D99, 0x9DA1, 0x9DBF, 0x9DB5, + 0x9DB9, 0x9DBD, 0x9DC3, 0x9DC7, 0x9DC9, 0x9DD6, 0x9DDA, 0x9DDF, + 0x9DE0, 0x9DE3, 0x9DF4, 0x4D07, 0x9E0A, 0x9E02, 0x9E0D, 0x9E19, + 0x9E1C, 0x9E1D, 0x9E7B, 0xD848 /*0xDE18*/, 0x9E80, 0x9E85, 0x9E9B, 0x9EA8, + 0xD868 /*0xDF8C*/, 0x9EBD, 0xD869 /*0xDC37*/, 0x9EDF, 0x9EE7, 0x9EEE, 0x9EFF, 0x9F02, + 0x4D77, 0x9F03, 0x9F17, 0x9F19, 0x9F2F, 0x9F37, 0x9F3A, 0x9F3D, + 0x9F41, 0x9F45, 0x9F46, 0x9F53, 0x9F55, 0x9F58, 0xD869 /*0xDDF1*/, 0x9F5D, + 0xD869 /*0xDE02*/, 0x9F69, 0xD869 /*0xDE1A*/, 0x9F6D, 0x9F70, 0x9F75, 0xD869 /*0xDEB2*/, 0, + 0, 0, 0, 0, 0, 0, 0, +}; + +#ifdef X0212_ENABLE +static const unsigned short euc_to_utf8_8FA2[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x02D8, + 0x02C7, 0x00B8, 0x02D9, 0x02DD, 0x00AF, 0x02DB, 0x02DA, 0xFF5E, + 0x0384, 0x0385, 0, 0, 0, 0, 0, 0, + 0, 0, 0x00A1, 0xFFE4, 0x00BF, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x00BA, 0x00AA, 0x00A9, 0x00AE, 0x2122, + 0x00A4, 0x2116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_8FA6[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x0386, 0x0388, 0x0389, 0x038A, 0x03AA, 0, 0x038C, + 0, 0x038E, 0x03AB, 0, 0x038F, 0, 0, 0, + 0, 0x03AC, 0x03AD, 0x03AE, 0x03AF, 0x03CA, 0x0390, 0x03CC, + 0x03C2, 0x03CD, 0x03CB, 0x03B0, 0x03CE, 0, 0, +}; +static const unsigned short euc_to_utf8_8FA7[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, 0x040F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, + 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045E, 0x045F, +}; +static const unsigned short euc_to_utf8_8FA9[] = { + 0x00C6, 0x0110, 0, 0x0126, 0, 0x0132, 0, + 0x0141, 0x013F, 0, 0x014A, 0x00D8, 0x0152, 0, 0x0166, + 0x00DE, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x00E6, 0x0111, 0x00F0, 0x0127, 0x0131, 0x0133, 0x0138, + 0x0142, 0x0140, 0x0149, 0x014B, 0x00F8, 0x0153, 0x00DF, 0x0167, + 0x00FE, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_8FAA[] = { + 0x00C1, 0x00C0, 0x00C4, 0x00C2, 0x0102, 0x01CD, 0x0100, + 0x0104, 0x00C5, 0x00C3, 0x0106, 0x0108, 0x010C, 0x00C7, 0x010A, + 0x010E, 0x00C9, 0x00C8, 0x00CB, 0x00CA, 0x011A, 0x0116, 0x0112, + 0x0118, 0, 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, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_8FAB[] = { + 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, 0, 0x0121, 0x0125, 0x00ED, + 0x00EC, 0x00EF, 0x00EE, 0x01D0, 0, 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, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_8FB0[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB1[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB2[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB3[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB4[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB5[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB6[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB7[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB8[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FB9[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FBA[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FBB[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FBC[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FBD[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FBE[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FBF[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC0[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC1[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC2[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC3[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC4[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC5[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC6[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC7[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC8[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FC9[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FCA[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FCB[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FCC[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FCD[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FCE[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FCF[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD0[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD1[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD2[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD3[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD4[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD5[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD6[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD7[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD8[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FD9[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FDA[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FDB[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FDC[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FDD[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FDE[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FDF[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE0[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE1[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE2[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE3[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE4[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE5[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE6[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE7[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE8[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FE9[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FEA[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FEB[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FEC[] = { + 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, +}; +static const unsigned short euc_to_utf8_8FED[] = { + 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short euc_to_utf8_8FF3[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, + 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x2160, 0x2161, +}; +static const unsigned short euc_to_utf8_8FF4[] = { + 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, + 0x2169, 0xff07, 0xff02, 0x3231, 0x2116, 0x2121, 0x70bb, 0x4efc, + 0x50f4, 0x51ec, 0x5307, 0x5324, 0xfa0e, 0x548a, 0x5759, 0xfa0f, + 0xfa10, 0x589e, 0x5bec, 0x5cf5, 0x5d53, 0xfa11, 0x5fb7, 0x6085, + 0x6120, 0x654e, 0x663b, 0x6665, 0xfa12, 0xf929, 0x6801, 0xfa13, + 0xfa14, 0x6a6b, 0x6ae2, 0x6df8, 0x6df2, 0x7028, 0xfa15, 0xfa16, + 0x7501, 0x7682, 0x769e, 0xfa17, 0x7930, 0xfa18, 0xfa19, 0xfa1a, + 0xfa1b, 0x7ae7, 0xfa1c, 0xfa1d, 0x7da0, 0x7dd6, 0xfa1e, 0x8362, + 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0xfa22, 0x8b7f, 0x8cf4, + 0x8d76, 0xfa23, 0xfa24, 0xfa25, 0x90de, 0xfa26, 0x9115, 0xfa27, + 0xfa28, 0x9592, 0xf9dc, 0xfa29, 0x973b, 0x974d, 0x9751, 0xfa2a, + 0xfa2b, 0xfa2c, 0x999e, 0x9ad9, 0x9b72, 0xfa2d, 0x9ed1, +}; +#endif /* X0212_ENABLE */ + +const unsigned short euc_to_utf8_1byte[] = { + 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, + 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, + 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, + 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, + 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85, 0xFF86, 0xFF87, + 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, + 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 0xFF97, + 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x00A9, 0x2122, +}; +const unsigned short *const euc_to_utf8_2bytes[] = { + euc_to_utf8_A1, euc_to_utf8_A2, euc_to_utf8_A3, + euc_to_utf8_A4, euc_to_utf8_A5, euc_to_utf8_A6, euc_to_utf8_A7, + euc_to_utf8_A8, euc_to_utf8_A9, euc_to_utf8_AA, euc_to_utf8_AB, + euc_to_utf8_AC, euc_to_utf8_AD, euc_to_utf8_AE, euc_to_utf8_AF, + euc_to_utf8_B0, euc_to_utf8_B1, euc_to_utf8_B2, euc_to_utf8_B3, + euc_to_utf8_B4, euc_to_utf8_B5, euc_to_utf8_B6, euc_to_utf8_B7, + euc_to_utf8_B8, euc_to_utf8_B9, euc_to_utf8_BA, euc_to_utf8_BB, + euc_to_utf8_BC, euc_to_utf8_BD, euc_to_utf8_BE, euc_to_utf8_BF, + euc_to_utf8_C0, euc_to_utf8_C1, euc_to_utf8_C2, euc_to_utf8_C3, + euc_to_utf8_C4, euc_to_utf8_C5, euc_to_utf8_C6, euc_to_utf8_C7, + euc_to_utf8_C8, euc_to_utf8_C9, euc_to_utf8_CA, euc_to_utf8_CB, + euc_to_utf8_CC, euc_to_utf8_CD, euc_to_utf8_CE, euc_to_utf8_CF, + euc_to_utf8_D0, euc_to_utf8_D1, euc_to_utf8_D2, euc_to_utf8_D3, + euc_to_utf8_D4, euc_to_utf8_D5, euc_to_utf8_D6, euc_to_utf8_D7, + euc_to_utf8_D8, euc_to_utf8_D9, euc_to_utf8_DA, euc_to_utf8_DB, + euc_to_utf8_DC, euc_to_utf8_DD, euc_to_utf8_DE, euc_to_utf8_DF, + euc_to_utf8_E0, euc_to_utf8_E1, euc_to_utf8_E2, euc_to_utf8_E3, + euc_to_utf8_E4, euc_to_utf8_E5, euc_to_utf8_E6, euc_to_utf8_E7, + euc_to_utf8_E8, euc_to_utf8_E9, euc_to_utf8_EA, euc_to_utf8_EB, + euc_to_utf8_EC, euc_to_utf8_ED, euc_to_utf8_EE, euc_to_utf8_EF, + euc_to_utf8_F0, euc_to_utf8_F1, euc_to_utf8_F2, euc_to_utf8_F3, + euc_to_utf8_F4, euc_to_utf8_F5, 0, 0, + 0, euc_to_utf8_F9, euc_to_utf8_FA, euc_to_utf8_FB, + euc_to_utf8_FC, 0, 0, +}; +/* Microsoft UCS Mapping Compatible */ +const unsigned short *const euc_to_utf8_2bytes_ms[] = { + euc_to_utf8_A1_ms, euc_to_utf8_A2_ms, euc_to_utf8_A3, + euc_to_utf8_A4, euc_to_utf8_A5, euc_to_utf8_A6, euc_to_utf8_A7, + euc_to_utf8_A8, euc_to_utf8_A9, euc_to_utf8_AA, euc_to_utf8_AB, + euc_to_utf8_AC, euc_to_utf8_AD, euc_to_utf8_AE, euc_to_utf8_AF, + euc_to_utf8_B0, euc_to_utf8_B1, euc_to_utf8_B2, euc_to_utf8_B3, + euc_to_utf8_B4, euc_to_utf8_B5, euc_to_utf8_B6, euc_to_utf8_B7, + euc_to_utf8_B8, euc_to_utf8_B9, euc_to_utf8_BA, euc_to_utf8_BB, + euc_to_utf8_BC, euc_to_utf8_BD, euc_to_utf8_BE, euc_to_utf8_BF, + euc_to_utf8_C0, euc_to_utf8_C1, euc_to_utf8_C2, euc_to_utf8_C3, + euc_to_utf8_C4, euc_to_utf8_C5, euc_to_utf8_C6, euc_to_utf8_C7, + euc_to_utf8_C8, euc_to_utf8_C9, euc_to_utf8_CA, euc_to_utf8_CB, + euc_to_utf8_CC, euc_to_utf8_CD, euc_to_utf8_CE, euc_to_utf8_CF, + euc_to_utf8_D0, euc_to_utf8_D1, euc_to_utf8_D2, euc_to_utf8_D3, + euc_to_utf8_D4, euc_to_utf8_D5, euc_to_utf8_D6, euc_to_utf8_D7, + euc_to_utf8_D8, euc_to_utf8_D9, euc_to_utf8_DA, euc_to_utf8_DB, + euc_to_utf8_DC, euc_to_utf8_DD, euc_to_utf8_DE, euc_to_utf8_DF, + euc_to_utf8_E0, euc_to_utf8_E1, euc_to_utf8_E2, euc_to_utf8_E3, + euc_to_utf8_E4, euc_to_utf8_E5, euc_to_utf8_E6, euc_to_utf8_E7, + euc_to_utf8_E8, euc_to_utf8_E9, euc_to_utf8_EA, euc_to_utf8_EB, + euc_to_utf8_EC, euc_to_utf8_ED, euc_to_utf8_EE, euc_to_utf8_EF, + euc_to_utf8_F0, euc_to_utf8_F1, euc_to_utf8_F2, euc_to_utf8_F3, + euc_to_utf8_F4, euc_to_utf8_F5, 0, 0, + 0, euc_to_utf8_F9, euc_to_utf8_FA, euc_to_utf8_FB, + euc_to_utf8_FC_ms, 0, 0, +}; +/* CP10001 */ +const unsigned short *const euc_to_utf8_2bytes_mac[] = { + euc_to_utf8_A1_ms, euc_to_utf8_A2_ms, euc_to_utf8_A3, + euc_to_utf8_A4, euc_to_utf8_A5, euc_to_utf8_A6, euc_to_utf8_A7, + euc_to_utf8_A8, euc_to_utf8_A9, euc_to_utf8_AA, euc_to_utf8_AB, + euc_to_utf8_AC_mac, euc_to_utf8_AD_mac, euc_to_utf8_AE, euc_to_utf8_AF, + euc_to_utf8_B0, euc_to_utf8_B1, euc_to_utf8_B2, euc_to_utf8_B3, + euc_to_utf8_B4, euc_to_utf8_B5, euc_to_utf8_B6, euc_to_utf8_B7, + euc_to_utf8_B8, euc_to_utf8_B9, euc_to_utf8_BA, euc_to_utf8_BB, + euc_to_utf8_BC, euc_to_utf8_BD, euc_to_utf8_BE, euc_to_utf8_BF, + euc_to_utf8_C0, euc_to_utf8_C1, euc_to_utf8_C2, euc_to_utf8_C3, + euc_to_utf8_C4, euc_to_utf8_C5, euc_to_utf8_C6, euc_to_utf8_C7, + euc_to_utf8_C8, euc_to_utf8_C9, euc_to_utf8_CA, euc_to_utf8_CB, + euc_to_utf8_CC, euc_to_utf8_CD, euc_to_utf8_CE, euc_to_utf8_CF, + euc_to_utf8_D0, euc_to_utf8_D1, euc_to_utf8_D2, euc_to_utf8_D3, + euc_to_utf8_D4, euc_to_utf8_D5, euc_to_utf8_D6, euc_to_utf8_D7, + euc_to_utf8_D8, euc_to_utf8_D9, euc_to_utf8_DA, euc_to_utf8_DB, + euc_to_utf8_DC, euc_to_utf8_DD, euc_to_utf8_DE, euc_to_utf8_DF, + euc_to_utf8_E0, euc_to_utf8_E1, euc_to_utf8_E2, euc_to_utf8_E3, + euc_to_utf8_E4, euc_to_utf8_E5, euc_to_utf8_E6, euc_to_utf8_E7, + euc_to_utf8_E8, euc_to_utf8_E9, euc_to_utf8_EA, euc_to_utf8_EB, + euc_to_utf8_EC, euc_to_utf8_ED, euc_to_utf8_EE, euc_to_utf8_EF, + euc_to_utf8_F0, euc_to_utf8_F1, euc_to_utf8_F2, euc_to_utf8_F3, + euc_to_utf8_F4, euc_to_utf8_F5, 0, 0, + 0, euc_to_utf8_F9, euc_to_utf8_FA, euc_to_utf8_FB, + euc_to_utf8_FC_ms, 0, 0, +}; +const unsigned short *const euc_to_utf8_2bytes_x0213[] = { + euc_to_utf8_A1, euc_to_utf8_A2_x0213, euc_to_utf8_A3_x0213, + euc_to_utf8_A4_x0213, euc_to_utf8_A5_x0213, euc_to_utf8_A6_x0213, euc_to_utf8_A7_x0213, + euc_to_utf8_A8_x0213, euc_to_utf8_A9_x0213, euc_to_utf8_AA_x0213, euc_to_utf8_AB_x0213, + euc_to_utf8_AC_x0213, euc_to_utf8_AD_x0213, euc_to_utf8_AE_x0213, euc_to_utf8_AF_x0213, + euc_to_utf8_B0, euc_to_utf8_B1, euc_to_utf8_B2, euc_to_utf8_B3, + euc_to_utf8_B4, euc_to_utf8_B5, euc_to_utf8_B6, euc_to_utf8_B7, + euc_to_utf8_B8, euc_to_utf8_B9, euc_to_utf8_BA, euc_to_utf8_BB, + euc_to_utf8_BC, euc_to_utf8_BD, euc_to_utf8_BE, euc_to_utf8_BF, + euc_to_utf8_C0, euc_to_utf8_C1, euc_to_utf8_C2, euc_to_utf8_C3, + euc_to_utf8_C4, euc_to_utf8_C5, euc_to_utf8_C6, euc_to_utf8_C7, + euc_to_utf8_C8, euc_to_utf8_C9, euc_to_utf8_CA, euc_to_utf8_CB, + euc_to_utf8_CC, euc_to_utf8_CD, euc_to_utf8_CE, euc_to_utf8_CF_x0213, + euc_to_utf8_D0, euc_to_utf8_D1, euc_to_utf8_D2, euc_to_utf8_D3, + euc_to_utf8_D4, euc_to_utf8_D5, euc_to_utf8_D6, euc_to_utf8_D7, + euc_to_utf8_D8, euc_to_utf8_D9, euc_to_utf8_DA, euc_to_utf8_DB, + euc_to_utf8_DC, euc_to_utf8_DD, euc_to_utf8_DE, euc_to_utf8_DF, + euc_to_utf8_E0, euc_to_utf8_E1, euc_to_utf8_E2, euc_to_utf8_E3, + euc_to_utf8_E4, euc_to_utf8_E5, euc_to_utf8_E6, euc_to_utf8_E7, + euc_to_utf8_E8, euc_to_utf8_E9, euc_to_utf8_EA, euc_to_utf8_EB, + euc_to_utf8_EC, euc_to_utf8_ED, euc_to_utf8_EE, euc_to_utf8_EF, + euc_to_utf8_F0, euc_to_utf8_F1, euc_to_utf8_F2, euc_to_utf8_F3, + euc_to_utf8_F4_x0213, euc_to_utf8_F5_x0213, euc_to_utf8_F6_x0213, euc_to_utf8_F7_x0213, + euc_to_utf8_F8_x0213, euc_to_utf8_F9_x0213, euc_to_utf8_FA_x0213, euc_to_utf8_FB_x0213, + euc_to_utf8_FC_x0213, euc_to_utf8_FD_x0213, euc_to_utf8_FE_x0213, +}; + +#ifdef X0212_ENABLE +const unsigned short *const x0212_to_utf8_2bytes[] = { + 0, euc_to_utf8_8FA2, 0, + 0, 0, euc_to_utf8_8FA6, euc_to_utf8_8FA7, + 0, euc_to_utf8_8FA9, euc_to_utf8_8FAA, euc_to_utf8_8FAB, + 0, 0, 0, 0, + euc_to_utf8_8FB0, euc_to_utf8_8FB1, euc_to_utf8_8FB2, euc_to_utf8_8FB3, + euc_to_utf8_8FB4, euc_to_utf8_8FB5, euc_to_utf8_8FB6, euc_to_utf8_8FB7, + euc_to_utf8_8FB8, euc_to_utf8_8FB9, euc_to_utf8_8FBA, euc_to_utf8_8FBB, + euc_to_utf8_8FBC, euc_to_utf8_8FBD, euc_to_utf8_8FBE, euc_to_utf8_8FBF, + euc_to_utf8_8FC0, euc_to_utf8_8FC1, euc_to_utf8_8FC2, euc_to_utf8_8FC3, + euc_to_utf8_8FC4, euc_to_utf8_8FC5, euc_to_utf8_8FC6, euc_to_utf8_8FC7, + euc_to_utf8_8FC8, euc_to_utf8_8FC9, euc_to_utf8_8FCA, euc_to_utf8_8FCB, + euc_to_utf8_8FCC, euc_to_utf8_8FCD, euc_to_utf8_8FCE, euc_to_utf8_8FCF, + euc_to_utf8_8FD0, euc_to_utf8_8FD1, euc_to_utf8_8FD2, euc_to_utf8_8FD3, + euc_to_utf8_8FD4, euc_to_utf8_8FD5, euc_to_utf8_8FD6, euc_to_utf8_8FD7, + euc_to_utf8_8FD8, euc_to_utf8_8FD9, euc_to_utf8_8FDA, euc_to_utf8_8FDB, + euc_to_utf8_8FDC, euc_to_utf8_8FDD, euc_to_utf8_8FDE, euc_to_utf8_8FDF, + euc_to_utf8_8FE0, euc_to_utf8_8FE1, euc_to_utf8_8FE2, euc_to_utf8_8FE3, + euc_to_utf8_8FE4, euc_to_utf8_8FE5, euc_to_utf8_8FE6, euc_to_utf8_8FE7, + euc_to_utf8_8FE8, euc_to_utf8_8FE9, euc_to_utf8_8FEA, euc_to_utf8_8FEB, + euc_to_utf8_8FEC, euc_to_utf8_8FED, 0, 0, + 0, 0, 0, euc_to_utf8_8FF3, + euc_to_utf8_8FF4, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0,}; + +const unsigned short *const x0212_to_utf8_2bytes_x0213[] = { + euc_to_utf8_8FA1_x0213, euc_to_utf8_8FA2, euc_to_utf8_8FA3_x0213, + euc_to_utf8_8FA4_x0213, euc_to_utf8_8FA5_x0213, euc_to_utf8_8FA6, euc_to_utf8_8FA7, + euc_to_utf8_8FA8_x0213, euc_to_utf8_8FA9, euc_to_utf8_8FAA, euc_to_utf8_8FAB, + euc_to_utf8_8FAC_x0213, euc_to_utf8_8FAD_x0213, euc_to_utf8_8FAE_x0213, euc_to_utf8_8FAF_x0213, + euc_to_utf8_8FB0, euc_to_utf8_8FB1, euc_to_utf8_8FB2, euc_to_utf8_8FB3, + euc_to_utf8_8FB4, euc_to_utf8_8FB5, euc_to_utf8_8FB6, euc_to_utf8_8FB7, + euc_to_utf8_8FB8, euc_to_utf8_8FB9, euc_to_utf8_8FBA, euc_to_utf8_8FBB, + euc_to_utf8_8FBC, euc_to_utf8_8FBD, euc_to_utf8_8FBE, euc_to_utf8_8FBF, + euc_to_utf8_8FC0, euc_to_utf8_8FC1, euc_to_utf8_8FC2, euc_to_utf8_8FC3, + euc_to_utf8_8FC4, euc_to_utf8_8FC5, euc_to_utf8_8FC6, euc_to_utf8_8FC7, + euc_to_utf8_8FC8, euc_to_utf8_8FC9, euc_to_utf8_8FCA, euc_to_utf8_8FCB, + euc_to_utf8_8FCC, euc_to_utf8_8FCD, euc_to_utf8_8FCE, euc_to_utf8_8FCF, + euc_to_utf8_8FD0, euc_to_utf8_8FD1, euc_to_utf8_8FD2, euc_to_utf8_8FD3, + euc_to_utf8_8FD4, euc_to_utf8_8FD5, euc_to_utf8_8FD6, euc_to_utf8_8FD7, + euc_to_utf8_8FD8, euc_to_utf8_8FD9, euc_to_utf8_8FDA, euc_to_utf8_8FDB, + euc_to_utf8_8FDC, euc_to_utf8_8FDD, euc_to_utf8_8FDE, euc_to_utf8_8FDF, + euc_to_utf8_8FE0, euc_to_utf8_8FE1, euc_to_utf8_8FE2, euc_to_utf8_8FE3, + euc_to_utf8_8FE4, euc_to_utf8_8FE5, euc_to_utf8_8FE6, euc_to_utf8_8FE7, + euc_to_utf8_8FE8, euc_to_utf8_8FE9, euc_to_utf8_8FEA, euc_to_utf8_8FEB, + euc_to_utf8_8FEC, euc_to_utf8_8FED, euc_to_utf8_8FEE_x0213, euc_to_utf8_8FEF_x0213, + euc_to_utf8_8FF0_x0213, euc_to_utf8_8FF1_x0213, euc_to_utf8_8FF2_x0213, euc_to_utf8_8FF3_x0213, + euc_to_utf8_8FF4_x0213, euc_to_utf8_8FF5_x0213, euc_to_utf8_8FF6_x0213, euc_to_utf8_8FF7_x0213, + euc_to_utf8_8FF8_x0213, euc_to_utf8_8FF9_x0213, euc_to_utf8_8FFA_x0213, euc_to_utf8_8FFB_x0213, + euc_to_utf8_8FFC_x0213, euc_to_utf8_8FFD_x0213, euc_to_utf8_8FFE_x0213,}; +#endif /* X0212_ENABLE */ + +const unsigned short x0213_combining_chars[sizeof_x0213_combining_chars] = { + 0x309A, 0x0300, 0x0301, 0x02E5, 0x02E9, +}; +const unsigned short x0213_combining_table[sizeof_x0213_combining_table][3] = { + {0x2477, 0x304B, 0x309A}, + {0x2478, 0x304D, 0x309A}, + {0x2479, 0x304F, 0x309A}, + {0x247A, 0x3051, 0x309A}, + {0x247B, 0x3053, 0x309A}, + {0x2577, 0x30AB, 0x309A}, + {0x2578, 0x30AD, 0x309A}, + {0x2579, 0x30AF, 0x309A}, + {0x257A, 0x30B1, 0x309A}, + {0x257B, 0x30B3, 0x309A}, + {0x257C, 0x30BB, 0x309A}, + {0x257D, 0x30C4, 0x309A}, + {0x257E, 0x30C8, 0x309A}, + {0x2678, 0x31F7, 0x309A}, + {0x2B44, 0x00E6, 0x0300}, + {0x2B48, 0x0254, 0x0300}, + {0x2B49, 0x0254, 0x0301}, + {0x2B4A, 0x028C, 0x0300}, + {0x2B4B, 0x028C, 0x0301}, + {0x2B4C, 0x0259, 0x0300}, + {0x2B4D, 0x0259, 0x0301}, + {0x2B4E, 0x025A, 0x0300}, + {0x2B4F, 0x025A, 0x0301}, + {0x2B65, 0x02E9, 0x02E5}, + {0x2B66, 0x02E5, 0x02E9}, +}; +const unsigned short x0213_1_surrogate_table[sizeof_x0213_1_surrogate_table][3] = { + {0x2E22, 0xD840, 0xDC0B}, + {0x2F42, 0xD844, 0xDE3D}, + {0x2F4C, 0xD844, 0xDF1B}, + {0x2F60, 0xD845, 0xDC6E}, + {0x2F7B, 0xD846, 0xDCBD}, + {0x4F54, 0xD842, 0xDF9F}, + {0x4F63, 0xD845, 0xDEB4}, + {0x4F6E, 0xD847, 0xDE34}, + {0x753A, 0xD84C, 0xDDC4}, + {0x7572, 0xD84D, 0xDDC4}, + {0x7629, 0xD84D, 0xDF3F}, + {0x7632, 0xD84D, 0xDF63}, + {0x7660, 0xD84F, 0xDCFE}, + {0x776C, 0xD851, 0xDFF1}, + {0x787E, 0xD855, 0xDC8E}, + {0x7929, 0xD855, 0xDD0E}, + {0x7947, 0xD855, 0xDF71}, + {0x7954, 0xD856, 0xDDC4}, + {0x796E, 0xD857, 0xDDA1}, + {0x7A5D, 0xD85A, 0xDEFF}, + {0x7B33, 0xD85B, 0xDE40}, + {0x7B49, 0xD85C, 0xDCF4}, + {0x7B6C, 0xD85D, 0xDE84}, + {0x7C49, 0xD860, 0xDE77}, + {0x7C51, 0xD860, 0xDFCD}, + {0x7E66, 0xD868, 0xDD90}, +}; +const unsigned short x0213_2_surrogate_table[sizeof_x0213_2_surrogate_table][3] = { + {0x2121, 0xD840, 0xDC89}, + {0x212B, 0xD840, 0xDCA2}, + {0x212E, 0xD840, 0xDCA4}, + {0x2136, 0xD840, 0xDDA2}, + {0x2146, 0xD840, 0xDE13}, + {0x2170, 0xD840, 0xDF2B}, + {0x2177, 0xD840, 0xDF81}, + {0x2179, 0xD840, 0xDF71}, + {0x2322, 0xD840, 0xDFF9}, + {0x2325, 0xD841, 0xDC4A}, + {0x2327, 0xD841, 0xDD09}, + {0x2331, 0xD841, 0xDDD6}, + {0x2332, 0xD841, 0xDE28}, + {0x2338, 0xD841, 0xDF4F}, + {0x233F, 0xD842, 0xDC07}, + {0x2341, 0xD842, 0xDC3A}, + {0x234A, 0xD842, 0xDCB9}, + {0x2352, 0xD842, 0xDD7C}, + {0x2353, 0xD842, 0xDD9D}, + {0x2359, 0xD842, 0xDED3}, + {0x235C, 0xD842, 0xDF1D}, + {0x2377, 0xD843, 0xDD45}, + {0x242A, 0xD843, 0xDDE1}, + {0x2431, 0xD843, 0xDE95}, + {0x2432, 0xD843, 0xDE6D}, + {0x243A, 0xD843, 0xDE64}, + {0x243D, 0xD843, 0xDF5F}, + {0x2459, 0xD844, 0xDE01}, + {0x245C, 0xD844, 0xDE55}, + {0x245E, 0xD844, 0xDE7B}, + {0x2463, 0xD844, 0xDE74}, + {0x246A, 0xD844, 0xDEE4}, + {0x246B, 0xD844, 0xDED7}, + {0x2472, 0xD844, 0xDEFD}, + {0x2474, 0xD844, 0xDF36}, + {0x2475, 0xD844, 0xDF44}, + {0x2525, 0xD844, 0xDFC4}, + {0x2532, 0xD845, 0xDC6D}, + {0x253E, 0xD845, 0xDDD7}, + {0x2544, 0xD85B, 0xDC29}, + {0x2547, 0xD845, 0xDE47}, + {0x2555, 0xD845, 0xDF06}, + {0x2556, 0xD845, 0xDF42}, + {0x257E, 0xD846, 0xDDC3}, + {0x2830, 0xD847, 0xDC56}, + {0x2837, 0xD847, 0xDD2D}, + {0x2838, 0xD847, 0xDD45}, + {0x283A, 0xD847, 0xDD78}, + {0x283B, 0xD847, 0xDD62}, + {0x283F, 0xD847, 0xDDA1}, + {0x2840, 0xD847, 0xDD9C}, + {0x2845, 0xD847, 0xDD92}, + {0x2848, 0xD847, 0xDDB7}, + {0x284A, 0xD847, 0xDDE0}, + {0x284B, 0xD847, 0xDE33}, + {0x285B, 0xD847, 0xDF1E}, + {0x2866, 0xD847, 0xDF76}, + {0x286C, 0xD847, 0xDFFA}, + {0x2C22, 0xD848, 0xDD7B}, + {0x2C2B, 0xD848, 0xDF1E}, + {0x2C30, 0xD848, 0xDFAD}, + {0x2C50, 0xD849, 0xDEF3}, + {0x2C65, 0xD84A, 0xDC5B}, + {0x2C6D, 0xD84A, 0xDCAB}, + {0x2C72, 0xD84A, 0xDD8F}, + {0x2D24, 0xD84A, 0xDEB8}, + {0x2D29, 0xD84A, 0xDF4F}, + {0x2D2A, 0xD84A, 0xDF50}, + {0x2D32, 0xD84A, 0xDF46}, + {0x2D34, 0xD84B, 0xDC1D}, + {0x2D35, 0xD84A, 0xDFA6}, + {0x2D39, 0xD84B, 0xDC24}, + {0x2D56, 0xD84B, 0xDDE1}, + {0x2D7D, 0xD84C, 0xDDC3}, + {0x2E23, 0xD84C, 0xDDF5}, + {0x2E24, 0xD84C, 0xDDB6}, + {0x2E3A, 0xD84C, 0xDF72}, + {0x2E3C, 0xD84C, 0xDFD3}, + {0x2E3D, 0xD84C, 0xDFD2}, + {0x2E42, 0xD84C, 0xDFD0}, + {0x2E43, 0xD84C, 0xDFE4}, + {0x2E44, 0xD84C, 0xDFD5}, + {0x2E47, 0xD84C, 0xDFDA}, + {0x2E49, 0xD84C, 0xDFDF}, + {0x2E55, 0xD84D, 0xDC4A}, + {0x2E56, 0xD84D, 0xDC51}, + {0x2E57, 0xD84D, 0xDC4B}, + {0x2E5B, 0xD84D, 0xDC65}, + {0x2E77, 0xD84D, 0xDCE4}, + {0x2E78, 0xD84D, 0xDD5A}, + {0x2F2A, 0xD84D, 0xDD94}, + {0x2F3F, 0xD84D, 0xDE39}, + {0x2F40, 0xD84D, 0xDE47}, + {0x2F42, 0xD84D, 0xDE38}, + {0x2F43, 0xD84D, 0xDE3A}, + {0x2F4E, 0xD84D, 0xDF1C}, + {0x2F59, 0xD84D, 0xDF0C}, + {0x2F61, 0xD84D, 0xDF64}, + {0x2F69, 0xD84D, 0xDFFF}, + {0x2F6A, 0xD84D, 0xDFE7}, + {0x2F70, 0xD84E, 0xDC24}, + {0x2F75, 0xD84E, 0xDC3D}, + {0x6E23, 0xD84E, 0xDE98}, + {0x6E34, 0xD84F, 0xDC7F}, + {0x6E49, 0xD84F, 0xDD00}, + {0x6E5C, 0xD84F, 0xDD40}, + {0x6E5E, 0xD84F, 0xDDFA}, + {0x6E5F, 0xD84F, 0xDDF9}, + {0x6E60, 0xD84F, 0xDDD3}, + {0x6F32, 0xD84F, 0xDF7E}, + {0x6F47, 0xD850, 0xDC96}, + {0x6F4D, 0xD850, 0xDD03}, + {0x6F61, 0xD850, 0xDDC6}, + {0x6F64, 0xD850, 0xDDFE}, + {0x7022, 0xD850, 0xDFBC}, + {0x7033, 0xD851, 0xDE29}, + {0x7039, 0xD851, 0xDEA5}, + {0x7053, 0xD852, 0xDC96}, + {0x707B, 0xD852, 0xDE4D}, + {0x712E, 0xD852, 0xDF56}, + {0x7130, 0xD852, 0xDF6F}, + {0x7135, 0xD853, 0xDC16}, + {0x7144, 0xD853, 0xDD14}, + {0x715D, 0xD853, 0xDE0E}, + {0x7161, 0xD853, 0xDE37}, + {0x7166, 0xD853, 0xDE6A}, + {0x7169, 0xD853, 0xDE8B}, + {0x7175, 0xD854, 0xDC4A}, + {0x7177, 0xD854, 0xDC55}, + {0x717A, 0xD854, 0xDD22}, + {0x7221, 0xD854, 0xDDA9}, + {0x7223, 0xD854, 0xDDE5}, + {0x7224, 0xD854, 0xDDCD}, + {0x7228, 0xD854, 0xDE1E}, + {0x722C, 0xD854, 0xDE4C}, + {0x723D, 0xD855, 0xDC2E}, + {0x7248, 0xD855, 0xDCD9}, + {0x725B, 0xD855, 0xDDA7}, + {0x7275, 0xD855, 0xDFA9}, + {0x7276, 0xD855, 0xDFB4}, + {0x7332, 0xD856, 0xDDD4}, + {0x733D, 0xD856, 0xDEE4}, + {0x733E, 0xD856, 0xDEE3}, + {0x7340, 0xD856, 0xDEF1}, + {0x7352, 0xD856, 0xDFB2}, + {0x735D, 0xD857, 0xDC4B}, + {0x735E, 0xD857, 0xDC64}, + {0x7373, 0xD857, 0xDE2E}, + {0x7374, 0xD857, 0xDE56}, + {0x7375, 0xD857, 0xDE65}, + {0x7377, 0xD857, 0xDE62}, + {0x737B, 0xD857, 0xDED8}, + {0x737D, 0xD857, 0xDEC2}, + {0x7422, 0xD857, 0xDEE8}, + {0x7424, 0xD857, 0xDF23}, + {0x7427, 0xD857, 0xDF5C}, + {0x742E, 0xD857, 0xDFE0}, + {0x742F, 0xD857, 0xDFD4}, + {0x7434, 0xD858, 0xDC0C}, + {0x7435, 0xD857, 0xDFFB}, + {0x743D, 0xD858, 0xDC17}, + {0x7442, 0xD858, 0xDC60}, + {0x744F, 0xD858, 0xDCED}, + {0x7469, 0xD858, 0xDE70}, + {0x746B, 0xD858, 0xDE86}, + {0x7472, 0xD858, 0xDF4C}, + {0x7475, 0xD84F, 0xDD0E}, + {0x7479, 0xD859, 0xDC02}, + {0x7535, 0xD859, 0xDE7E}, + {0x753A, 0xD859, 0xDEB0}, + {0x7546, 0xD859, 0xDF1D}, + {0x7556, 0xD85A, 0xDCDD}, + {0x7558, 0xD85A, 0xDCEA}, + {0x755A, 0xD85A, 0xDD51}, + {0x755D, 0xD85A, 0xDD6F}, + {0x755F, 0xD85A, 0xDDDD}, + {0x7563, 0xD85A, 0xDE1E}, + {0x756A, 0xD85A, 0xDE58}, + {0x7570, 0xD85A, 0xDE8C}, + {0x7573, 0xD85A, 0xDEB7}, + {0x7644, 0xD85B, 0xDC73}, + {0x764E, 0xD85B, 0xDCDD}, + {0x765D, 0xD85B, 0xDE65}, + {0x7675, 0xD85B, 0xDF94}, + {0x767E, 0xD85B, 0xDFF8}, + {0x7721, 0xD85B, 0xDFF6}, + {0x7722, 0xD85B, 0xDFF7}, + {0x7733, 0xD85C, 0xDD0D}, + {0x7736, 0xD85C, 0xDD39}, + {0x7764, 0xD85C, 0xDFDB}, + {0x7765, 0xD85C, 0xDFDA}, + {0x776B, 0xD85C, 0xDFFE}, + {0x776E, 0xD85D, 0xDC10}, + {0x7773, 0xD85D, 0xDC49}, + {0x7829, 0xD85D, 0xDE15}, + {0x782A, 0xD85D, 0xDE14}, + {0x782C, 0xD85D, 0xDE31}, + {0x7834, 0xD85D, 0xDE93}, + {0x783C, 0xD85D, 0xDF0E}, + {0x783E, 0xD85D, 0xDF23}, + {0x7842, 0xD85D, 0xDF52}, + {0x7856, 0xD85E, 0xDD85}, + {0x7863, 0xD85E, 0xDE84}, + {0x7877, 0xD85E, 0xDFB3}, + {0x7879, 0xD85E, 0xDFBE}, + {0x787A, 0xD85E, 0xDFC7}, + {0x7925, 0xD85F, 0xDCB8}, + {0x792F, 0xD85F, 0xDDA0}, + {0x7932, 0xD85F, 0xDE10}, + {0x7939, 0xD85F, 0xDFB7}, + {0x7942, 0xD860, 0xDC8A}, + {0x7948, 0xD860, 0xDCBB}, + {0x7959, 0xD860, 0xDE82}, + {0x795E, 0xD860, 0xDEF3}, + {0x7966, 0xD861, 0xDC0C}, + {0x796B, 0xD861, 0xDC55}, + {0x797A, 0xD861, 0xDD6B}, + {0x797E, 0xD861, 0xDDC8}, + {0x7A21, 0xD861, 0xDDC9}, + {0x7A2C, 0xD861, 0xDED7}, + {0x7A2F, 0xD861, 0xDEFA}, + {0x7A4F, 0xD862, 0xDD49}, + {0x7A50, 0xD862, 0xDD46}, + {0x7A57, 0xD862, 0xDD6B}, + {0x7A65, 0xD862, 0xDD87}, + {0x7A66, 0xD862, 0xDD88}, + {0x7A71, 0xD862, 0xDDBA}, + {0x7A72, 0xD862, 0xDDBB}, + {0x7A7E, 0xD862, 0xDE1E}, + {0x7B21, 0xD862, 0xDE29}, + {0x7B2C, 0xD862, 0xDE71}, + {0x7B2D, 0xD862, 0xDE43}, + {0x7B36, 0xD862, 0xDE99}, + {0x7B37, 0xD862, 0xDECD}, + {0x7B3D, 0xD862, 0xDEE4}, + {0x7B3E, 0xD862, 0xDEDD}, + {0x7B4E, 0xD862, 0xDFC1}, + {0x7B4F, 0xD862, 0xDFEF}, + {0x7B57, 0xD863, 0xDD10}, + {0x7B5A, 0xD863, 0xDD71}, + {0x7B5C, 0xD863, 0xDDFB}, + {0x7B5D, 0xD863, 0xDE1F}, + {0x7B61, 0xD863, 0xDE36}, + {0x7B65, 0xD863, 0xDE89}, + {0x7B67, 0xD863, 0xDEEB}, + {0x7B69, 0xD863, 0xDF32}, + {0x7B71, 0xD863, 0xDFF8}, + {0x7C22, 0xD864, 0xDEA0}, + {0x7C23, 0xD864, 0xDEB1}, + {0x7C38, 0xD865, 0xDC90}, + {0x7C42, 0xD865, 0xDDCF}, + {0x7C4C, 0xD865, 0xDE7F}, + {0x7C56, 0xD865, 0xDEF0}, + {0x7C59, 0xD865, 0xDF19}, + {0x7C5D, 0xD865, 0xDF50}, + {0x7C76, 0xD866, 0xDCC6}, + {0x7D2C, 0xD866, 0xDE72}, + {0x7D4B, 0xD867, 0xDDDB}, + {0x7D4C, 0xD867, 0xDE3D}, + {0x7D59, 0xD867, 0xDE15}, + {0x7D5B, 0xD867, 0xDE8A}, + {0x7D5D, 0xD867, 0xDE49}, + {0x7D67, 0xD867, 0xDEC4}, + {0x7D6D, 0xD867, 0xDEE9}, + {0x7D70, 0xD867, 0xDEDB}, + {0x7E25, 0xD867, 0xDFCE}, + {0x7E29, 0xD868, 0xDC2F}, + {0x7E2B, 0xD868, 0xDC1A}, + {0x7E32, 0xD868, 0xDCF9}, + {0x7E35, 0xD868, 0xDC82}, + {0x7E53, 0xD848, 0xDE18}, + {0x7E58, 0xD868, 0xDF8C}, + {0x7E5A, 0xD869, 0xDC37}, + {0x7E6E, 0xD869, 0xDDF1}, + {0x7E70, 0xD869, 0xDE02}, + {0x7E72, 0xD869, 0xDE1A}, + {0x7E76, 0xD869, 0xDEB2}, +}; +#endif /* UTF8_OUTPUT_ENABLE */ + +#ifdef UTF8_INPUT_ENABLE +static const unsigned short utf8_to_euc_C2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xA242, 0x2171, 0x2172, 0xA270, 0x216F, 0xA243, 0x2178, + 0x212F, 0xA26D, 0xA26C, 0, 0x224C, 0, 0xA26E, 0xA234, + 0x216B, 0x215E, 0, 0, 0x212D, 0, 0x2279, 0, + 0xA231, 0, 0xA26B, 0, 0, 0, 0, 0xA244, +}; +static const unsigned short utf8_to_euc_C2_ms[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xA242, 0x2171, 0x2172, 0xA270, 0x5C, 0xA243, 0x2178, + 0x212F, 0xA26D, 0xA26C, 0, 0x224C, 0, 0xA26E, 0xA234, + 0x216B, 0x215E, 0, 0, 0x212D, 0, 0x2279, 0, + 0xA231, 0, 0xA26B, 0, 0, 0, 0, 0xA244, +}; +static const unsigned short utf8_to_euc_C2_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x00A0, 0xA242, 0x2171, 0x2172, 0xA270, 0x5C, 0xA243, 0x2178, + 0x212F, 0x00FD, 0xA26C, 0, 0x224C, 0, 0xA26E, 0xA234, + 0x216B, 0x215E, 0, 0, 0x212D, 0, 0x2279, 0, + 0xA231, 0, 0xA26B, 0, 0, 0, 0, 0xA244, +}; +static const unsigned short utf8_to_euc_C2_932[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x21, 0x2171, 0x2172, 0, 0x5C, 0x7C, 0x2178, + 0x212F, 0x63, 0x61, 0x2263, 0x224C, 0x2D, 0x52, 0x2131, + 0x216B, 0x215E, 0x32, 0x33, 0x212D, 0x264C, 0x2279, 0x2126, + 0x2124, 0x31, 0x6F, 0x2264, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_C2_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2922, 0x2923, 0x2171, 0x2172, 0x2924, 0x216F, 0x2925, 0x2178, + 0x212F, 0x2926, 0x2927, 0x2928, 0x224C, 0x2929, 0x292A, 0x292B, + 0x216B, 0x215E, 0x292C, 0x292D, 0x212D, 0, 0x2279, 0x292E, + 0x292F, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, +}; +static const unsigned short utf8_to_euc_C3[] = { + 0xAA22, 0xAA21, 0xAA24, 0xAA2A, 0xAA23, 0xAA29, 0xA921, 0xAA2E, + 0xAA32, 0xAA31, 0xAA34, 0xAA33, 0xAA40, 0xAA3F, 0xAA42, 0xAA41, + 0, 0xAA50, 0xAA52, 0xAA51, 0xAA54, 0xAA58, 0xAA53, 0x215F, + 0xA92C, 0xAA63, 0xAA62, 0xAA65, 0xAA64, 0xAA72, 0xA930, 0xA94E, + 0xAB22, 0xAB21, 0xAB24, 0xAB2A, 0xAB23, 0xAB29, 0xA941, 0xAB2E, + 0xAB32, 0xAB31, 0xAB34, 0xAB33, 0xAB40, 0xAB3F, 0xAB42, 0xAB41, + 0xA943, 0xAB50, 0xAB52, 0xAB51, 0xAB54, 0xAB58, 0xAB53, 0x2160, + 0xA94C, 0xAB63, 0xAB62, 0xAB65, 0xAB64, 0xAB72, 0xA950, 0xAB73, +}; +static const unsigned short utf8_to_euc_C3_932[] = { + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, + 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, + 0x44, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0x215F, + 0x4F, 0x55, 0x55, 0x55, 0x55, 0x59, 0x54, 0x73, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, + 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, + 0x64, 0x6E, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x2160, + 0x6F, 0x75, 0x75, 0x75, 0x75, 0x79, 0x74, 0x79, +}; +static const unsigned short utf8_to_euc_C3_x0213[] = { + 0x2937, 0x2938, 0x2939, 0x293A, 0x293B, 0x293C, 0x293D, 0x293E, + 0x293F, 0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, + 0x2947, 0x2948, 0x2949, 0x294A, 0x294B, 0x294C, 0x294D, 0x215F, + 0x294E, 0x294F, 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, + 0x2956, 0x2957, 0x2958, 0x2959, 0x295A, 0x295B, 0x295C, 0x295D, + 0x295E, 0x295F, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, + 0x2966, 0x2967, 0x2968, 0x2969, 0x296A, 0x296B, 0x296C, 0x2160, + 0x296D, 0x296E, 0x296F, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, +}; +static const unsigned short utf8_to_euc_C4[] = { + 0xAA27, 0xAB27, 0xAA25, 0xAB25, 0xAA28, 0xAB28, 0xAA2B, 0xAB2B, + 0xAA2C, 0xAB2C, 0xAA2F, 0xAB2F, 0xAA2D, 0xAB2D, 0xAA30, 0xAB30, + 0xA922, 0xA942, 0xAA37, 0xAB37, 0, 0, 0xAA36, 0xAB36, + 0xAA38, 0xAB38, 0xAA35, 0xAB35, 0xAA3A, 0xAB3A, 0xAA3B, 0xAB3B, + 0xAA3D, 0xAB3D, 0xAA3C, 0, 0xAA3E, 0xAB3E, 0xA924, 0xA944, + 0xAA47, 0xAB47, 0xAA45, 0xAB45, 0, 0, 0xAA46, 0xAB46, + 0xAA44, 0xA945, 0xA926, 0xA946, 0xAA48, 0xAB48, 0xAA49, 0xAB49, + 0xA947, 0xAA4A, 0xAB4A, 0xAA4C, 0xAB4C, 0xAA4B, 0xAB4B, 0xA929, +}; +static const unsigned short utf8_to_euc_C4_x0213[] = { + 0x2975, 0x297A, 0x2A3A, 0x2A49, 0x2A21, 0x2A2C, 0x2A3C, 0x2A4B, + 0x2A59, 0x2A5F, 0xAA2F, 0xAB2F, 0x2A3D, 0x2A4C, 0x2A40, 0x2A4F, + 0xA922, 0x2A50, 0x2978, 0x297D, 0, 0, 0xAA36, 0xAB36, + 0x2A3E, 0x2A4D, 0x2A3F, 0x2A4E, 0x2A5A, 0x2A60, 0xAA3B, 0xAB3B, + 0xAA3D, 0xAB3D, 0xAA3C, 0, 0x2A5B, 0x2A61, 0xA924, 0x2A7D, + 0xAA47, 0xAB47, 0x2976, 0x297B, 0, 0, 0xAA46, 0xAB46, + 0xAA44, 0xA945, 0xA926, 0xA946, 0x2A5C, 0x2A62, 0xAA49, 0xAB49, + 0xA947, 0x2A3B, 0x2A4A, 0xAA4C, 0xAB4C, 0x2A24, 0x2A2F, 0xA929, +}; +static const unsigned short utf8_to_euc_C5[] = { + 0xA949, 0xA928, 0xA948, 0xAA4D, 0xAB4D, 0xAA4F, 0xAB4F, 0xAA4E, + 0xAB4E, 0xA94A, 0xA92B, 0xA94B, 0xAA57, 0xAB57, 0, 0, + 0xAA56, 0xAB56, 0xA92D, 0xA94D, 0xAA59, 0xAB59, 0xAA5B, 0xAB5B, + 0xAA5A, 0xAB5A, 0xAA5C, 0xAB5C, 0xAA5D, 0xAB5D, 0xAA5F, 0xAB5F, + 0xAA5E, 0xAB5E, 0xAA61, 0xAB61, 0xAA60, 0xAB60, 0xA92F, 0xA94F, + 0xAA6C, 0xAB6C, 0xAA69, 0xAB69, 0xAA66, 0xAB66, 0xAA6B, 0xAB6B, + 0xAA68, 0xAB68, 0xAA6A, 0xAB6A, 0xAA71, 0xAB71, 0xAA74, 0xAB74, + 0xAA73, 0xAA75, 0xAB75, 0xAA77, 0xAB77, 0xAA76, 0xAB76, 0, +}; +static const unsigned short utf8_to_euc_C5_x0213[] = { + 0xA949, 0x2A23, 0x2A2E, 0x2A41, 0x2A51, 0xAA4F, 0xAB4F, 0x2A42, + 0x2A52, 0xA94A, 0xA92B, 0x2A7A, 0x2979, 0x297E, 0, 0, + 0x2A43, 0x2A53, 0x2B2B, 0x2B2A, 0x2A39, 0x2A48, 0xAA5B, 0xAB5B, + 0x2A44, 0x2A54, 0x2A25, 0x2A30, 0x2A5D, 0x2A63, 0x2A27, 0x2A33, + 0x2A26, 0x2A32, 0x2A47, 0x2A57, 0x2A28, 0x2A34, 0xA92F, 0xA94F, + 0xAA6C, 0xAB6C, 0x2977, 0x297C, 0x2A5E, 0x2A64, 0x2A45, 0x2A55, + 0x2A46, 0x2A56, 0xAA6A, 0xAB6A, 0xAA71, 0xAB71, 0xAA74, 0xAB74, + 0xAA73, 0x2A29, 0x2A35, 0x2A2B, 0x2A38, 0x2A2A, 0x2A37, 0, +}; +static const unsigned short utf8_to_euc_C6_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2B29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_C7[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xAA26, 0xAB26, 0xAA43, + 0xAB43, 0xAA55, 0xAB55, 0xAA67, 0xAB67, 0xAA70, 0xAB70, 0xAA6D, + 0xAB6D, 0xAA6F, 0xAB6F, 0xAA6E, 0xAB6E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xAB39, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_C7_x0213[] = { + 0, 0, 0x2B24, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x286F, 0x2870, 0xAA43, + 0x2871, 0x2876, 0x2877, 0xAA67, 0x2878, 0xAA70, 0x2879, 0xAA6D, + 0x287A, 0xAA6F, 0x287B, 0xAA6E, 0x287C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xAB39, 0, 0, + 0x2874, 0x2875, 0, 0, 0, 0x2B45, 0, 0, +}; +static const unsigned short utf8_to_euc_C9_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2B33, 0x2B39, 0x2B3A, 0x2B25, 0x2B38, 0x2B3F, 0x2A6E, 0x2B26, + 0x2B2E, 0x2B30, 0x2B43, 0, 0x2B31, 0, 0x2B32, 0x2A75, + 0x2B28, 0x2A79, 0, 0, 0x2B36, 0x2B3C, 0x2B22, 0x2B42, + 0x2B2C, 0, 0, 0, 0x2A6A, 0x2A74, 0x2A6B, 0x2B34, + 0x2A7B, 0x2A65, 0x2A76, 0x2A6F, 0, 0x2B2F, 0, 0, + 0, 0x2A6C, 0x2B41, 0x2A73, 0, 0x2A70, 0x2A67, 0, +}; +static const unsigned short utf8_to_euc_CA_x0213[] = { + 0, 0x2A7C, 0x2A71, 0x2A68, 0x2B27, 0, 0, 0, + 0x2A6D, 0x2B2D, 0x2B35, 0x2A66, 0x2B37, 0x2B3B, 0x2A78, 0, + 0x2A72, 0x2B40, 0x2A69, 0, 0x2B21, 0x2A7E, 0, 0, + 0x2B23, 0, 0, 0, 0, 0x2A77, 0, 0, + 0, 0x2B3E, 0x2B3D, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_CB[] = { + 0, 0, 0, 0, 0, 0, 0, 0xA230, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xA22F, 0xA232, 0xA236, 0xA235, 0, 0xA233, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_CB_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0x2A31, + 0x2B53, 0, 0, 0, 0x2B54, 0, 0, 0, + 0x2B55, 0x2B56, 0, 0, 0, 0, 0, 0, + 0x2A22, 0x2A58, 0xA236, 0x2A2D, 0, 0x2A36, 0x2B71, 0, + 0, 0, 0, 0, 0, 0x2B60, 0x2B61, 0x2B62, + 0x2B63, 0x2B64, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_CC_x0213[] = { + 0x2B5C, 0x2B5A, 0x2B5F, 0x2B7D, 0x2B5B, 0, 0x2B57, 0, + 0x2B6D, 0, 0, 0x2B59, 0x2B5E, 0, 0, 0x2B5D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2B78, 0x2B79, 0x2B7E, 0, 0x2B6A, 0x2B76, 0x2B77, 0x2B6B, + 0x2B6C, 0, 0, 0, 0x2B72, 0x2B67, 0, 0, + 0, 0x2B6F, 0x2B7A, 0, 0x2B68, 0, 0, 0x2B70, + 0x2B73, 0, 0, 0, 0x2B75, 0, 0, 0, + 0, 0x2B69, 0x2B7B, 0x2B7C, 0x2B74, 0x2B6E, 0, 0, +}; +static const unsigned short utf8_to_euc_CD_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2B52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_CE[] = { + 0, 0, 0, 0, 0xA238, 0xA239, 0xA661, 0, + 0xA662, 0xA663, 0xA664, 0, 0xA667, 0, 0xA669, 0xA66C, + 0xA676, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, 0x2626, 0x2627, + 0x2628, 0x2629, 0x262A, 0x262B, 0x262C, 0x262D, 0x262E, 0x262F, + 0x2630, 0x2631, 0, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, + 0x2637, 0x2638, 0xA665, 0xA66A, 0xA671, 0xA672, 0xA673, 0xA674, + 0xA67B, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, 0x2646, 0x2647, + 0x2648, 0x2649, 0x264A, 0x264B, 0x264C, 0x264D, 0x264E, 0x264F, +}; +static const unsigned short utf8_to_euc_CF[] = { + 0x2650, 0x2651, 0xA678, 0x2652, 0x2653, 0x2654, 0x2655, 0x2656, + 0x2657, 0x2658, 0xA675, 0xA67A, 0xA677, 0xA679, 0xA67C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_CF_x0213[] = { + 0x2650, 0x2651, 0x2659, 0x2652, 0x2653, 0x2654, 0x2655, 0x2656, + 0x2657, 0x2658, 0xA675, 0xA67A, 0xA677, 0xA679, 0xA67C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_D0[] = { + 0, 0x2727, 0xA742, 0xA743, 0xA744, 0xA745, 0xA746, 0xA747, + 0xA748, 0xA749, 0xA74A, 0xA74B, 0xA74C, 0, 0xA74D, 0xA74E, + 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, +}; +static const unsigned short utf8_to_euc_D1[] = { + 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2768, 0x2769, + 0x276A, 0x276B, 0x276C, 0x276D, 0x276E, 0x276F, 0x2770, 0x2771, + 0, 0x2757, 0xA772, 0xA773, 0xA774, 0xA775, 0xA776, 0xA777, + 0xA778, 0xA779, 0xA77A, 0xA77B, 0xA77C, 0, 0xA77D, 0xA77E, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E1B8_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2872, 0x2873, +}; +static const unsigned short utf8_to_euc_E1BD_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2B46, 0x2B47, 0x2B50, 0x2B51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E280[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x213E, 0, 0, 0, 0x213D, 0x213D, 0x2142, 0, + 0x2146, 0x2147, 0, 0, 0x2148, 0x2149, 0, 0, + 0x2277, 0x2278, 0, 0, 0, 0x2145, 0x2144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2273, 0, 0x216C, 0x216D, 0, 0, 0, 0, + 0, 0, 0, 0x2228, 0, 0, 0x2131, 0, +}; +static const unsigned short utf8_to_euc_E280_ms[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x213E, 0, 0, 0, 0x213D, 0x213D, 0x2142, 0, + 0x2146, 0x2147, 0, 0, 0x2148, 0x2149, 0, 0, + 0x2277, 0x2278, 0, 0, 0, 0x2145, 0x2144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2273, 0, 0x216C, 0x216D, 0, 0, 0, 0, + 0, 0, 0, 0x2228, 0, 0, 0x7E, 0, +}; +static const unsigned short utf8_to_euc_E280_932[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x213E, 0, 0, 0, 0, 0x213D, 0, 0, + 0x2146, 0x2147, 0, 0, 0x2148, 0x2149, 0, 0, + 0x2277, 0x2278, 0, 0, 0, 0x2145, 0x2144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2273, 0, 0x216C, 0x216D, 0, 0, 0, 0, + 0, 0, 0, 0x2228, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E280_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x213E, 0, 0, 0x237C, 0x213D, 0x213D, 0x2142, 0, + 0x2146, 0x2147, 0, 0, 0x2148, 0x2149, 0, 0, + 0x2277, 0x2278, 0x2340, 0, 0, 0x2145, 0x2144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2273, 0, 0x216C, 0x216D, 0, 0, 0, 0, + 0, 0, 0, 0x2228, 0x286B, 0, 0x2131, 0x2B58, +}; +static const unsigned short utf8_to_euc_E281_x0213[] = { + 0, 0, 0x2C7E, 0, 0, 0, 0, 0x286C, + 0x286D, 0x286E, 0, 0, 0, 0, 0, 0, + 0, 0x2C7D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E282_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2921, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E284[] = { + 0, 0, 0, 0x216E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2D62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2D64, 0xA26F, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E284_mac[] = { + 0, 0, 0, 0x216E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2B7B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2B7D, 0x00FE, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E284_x0213[] = { + 0, 0, 0, 0x216E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x235D, + 0, 0, 0, 0x235F, 0, 0, 0x2D62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2D64, 0xA26F, 0, 0, 0, 0, 0x2360, + 0, 0, 0, 0x2272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x235C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E285[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2D35, 0x2D36, 0x2D37, 0x2D38, 0x2D39, 0x2D3A, 0x2D3B, 0x2D3C, + 0x2D3D, 0x2D3E, 0, 0, 0, 0, 0, 0, + 0xF373, 0xF374, 0xF375, 0xF376, 0xF377, 0xF378, 0xF379, 0xF37A, + 0xF37B, 0xF37C, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E285_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2A21, 0x2A22, 0x2A23, 0x2A24, 0x2A25, 0x2A26, 0x2A27, 0x2A28, + 0x2A29, 0x2A2A, 0, 0, 0, 0, 0, 0, + 0x2A35, 0x2A36, 0x2A37, 0x2A38, 0x2A39, 0x2A3A, 0x2A3B, 0x2A3C, + 0x2A3D, 0x2A3E, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E285_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2778, 0x2779, 0x277A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2D35, 0x2D36, 0x2D37, 0x2D38, 0x2D39, 0x2D3A, 0x2D3B, 0x2D3C, + 0x2D3D, 0x2D3E, 0x2D3F, 0x2D57, 0, 0, 0, 0, + 0x2C35, 0x2C36, 0x2C37, 0x2C38, 0x2C39, 0x2C3A, 0x2C3B, 0x2C3C, + 0x2C3D, 0x2C3E, 0x2C3F, 0x2C40, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E286[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x222B, 0x222C, 0x222A, 0x222D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E286_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x222B, 0x222C, 0x222A, 0x222D, 0x2271, 0, 0x2327, 0x2325, + 0x2326, 0x2328, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E287[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x224D, 0, 0x224E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E287_x0213[] = { + 0, 0, 0, 0, 0x2329, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x224D, 0, 0x224E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x232B, 0x232C, + 0x232A, 0x232D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E288[] = { + 0x224F, 0, 0x225F, 0x2250, 0, 0, 0, 0x2260, + 0x223A, 0, 0, 0x223B, 0, 0, 0, 0, + 0, 0x2D74, 0x215D, 0, 0, 0, 0, 0, + 0, 0, 0x2265, 0, 0, 0x2267, 0x2167, 0x2D78, + 0x225C, 0, 0, 0, 0, 0x2142, 0, 0x224A, + 0x224B, 0x2241, 0x2240, 0x2269, 0x226A, 0, 0x2D73, 0, + 0, 0, 0, 0, 0x2168, 0x2268, 0, 0, + 0, 0, 0, 0, 0, 0x2266, 0, 0, +}; +static const unsigned short utf8_to_euc_E288_932[] = { + 0x224F, 0, 0x225F, 0x2250, 0, 0, 0, 0x2260, + 0x223A, 0, 0, 0x223B, 0, 0, 0, 0, + 0, 0x2D74, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2265, 0, 0, 0x2267, 0x2167, 0x2D78, + 0x225C, 0, 0, 0, 0, 0x2142, 0, 0x224A, + 0x224B, 0x2241, 0x2240, 0x2269, 0x226A, 0, 0x2D73, 0, + 0, 0, 0, 0, 0x2168, 0x2268, 0, 0, + 0, 0, 0, 0, 0, 0x2266, 0, 0, +}; +static const unsigned short utf8_to_euc_E288_mac[] = { + 0x224F, 0, 0x225F, 0x2250, 0, 0, 0, 0x2260, + 0x223A, 0, 0, 0x223B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2265, 0, 0, 0x2267, 0x2167, 0x2F22, + 0x225C, 0, 0, 0, 0, 0x2142, 0, 0x224A, + 0x224B, 0x2241, 0x2240, 0x2269, 0x226A, 0, 0x2F21, 0, + 0, 0, 0, 0, 0x2168, 0x2268, 0, 0, + 0, 0, 0, 0, 0, 0x2266, 0, 0, +}; +static const unsigned short utf8_to_euc_E288_x0213[] = { + 0x224F, 0, 0x225F, 0x2250, 0, 0x2247, 0, 0x2260, + 0x223A, 0x2246, 0, 0x223B, 0, 0, 0, 0, + 0, 0x2D74, 0x215D, 0x235B, 0, 0, 0, 0, + 0, 0, 0x2265, 0, 0, 0x2267, 0x2167, 0x2D78, + 0x225C, 0, 0, 0, 0, 0x2254, 0x2255, 0x224A, + 0x224B, 0x2241, 0x2240, 0x2269, 0x226A, 0, 0x2D73, 0, + 0, 0, 0, 0, 0x2168, 0x2268, 0, 0, + 0, 0, 0, 0, 0, 0x2266, 0, 0, +}; +static const unsigned short utf8_to_euc_E289[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2262, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2162, 0x2261, 0, 0, 0, 0, 0x2165, 0x2166, + 0, 0, 0x2263, 0x2264, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E289_x0213[] = { + 0, 0, 0, 0x226C, 0, 0x226D, 0, 0, + 0x226E, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2262, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2162, 0x2261, 0x226B, 0, 0, 0, 0x2165, 0x2166, + 0, 0, 0x2263, 0x2264, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x226F, 0x2270, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E28A[] = { + 0, 0, 0x223E, 0x223F, 0, 0, 0x223C, 0x223D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x225D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x2D79, +}; +static const unsigned short utf8_to_euc_E28A_mac[] = { + 0, 0, 0x223E, 0x223F, 0, 0, 0x223C, 0x223D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x225D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x2F23, +}; +static const unsigned short utf8_to_euc_E28A_x0213[] = { + 0, 0, 0x223E, 0x223F, 0x2242, 0x2243, 0x223C, 0x223D, + 0, 0, 0x2244, 0x2245, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2251, 0x2252, 0x2253, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x225D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x2D79, +}; +static const unsigned short utf8_to_euc_E28B_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2776, 0x2777, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E28C[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x225E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E28C_x0213[] = { + 0, 0, 0, 0, 0, 0x2248, 0x2249, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x225E, 0, 0, 0, 0, 0, + 0x277C, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E28E_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2742, 0x2743, +}; +static const unsigned short utf8_to_euc_E28F_x0213[] = { + 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274A, 0x274B, + 0x274C, 0x274D, 0x274E, 0x274F, 0x2750, 0, 0x277E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E290_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x277D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E291[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2D21, 0x2D22, 0x2D23, 0x2D24, 0x2D25, 0x2D26, 0x2D27, 0x2D28, + 0x2D29, 0x2D2A, 0x2D2B, 0x2D2C, 0x2D2D, 0x2D2E, 0x2D2F, 0x2D30, + 0x2D31, 0x2D32, 0x2D33, 0x2D34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E291_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2921, 0x2922, 0x2923, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, + 0x2929, 0x292A, 0x292B, 0x292C, 0x292D, 0x292E, 0x292F, 0x2930, + 0x2931, 0x2932, 0x2933, 0x2934, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E293_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2C41, 0x2C42, 0x2C43, 0x2C44, 0x2C45, 0x2C46, 0x2C47, 0x2C48, + 0x2C49, 0x2C4A, 0x2C4B, 0x2C4C, 0x2C4D, 0x2C4E, 0x2C4F, 0x2C50, + 0x2C51, 0x2C52, 0x2C53, 0x2C54, 0x2C55, 0x2C56, 0x2C57, 0x2C58, + 0x2C59, 0x2C5A, 0, 0x2C2B, 0x2C2C, 0x2C2D, 0x2C2E, 0x2C2F, + 0x2C30, 0x2C31, 0x2C32, 0x2C33, 0x2C34, 0x265A, 0x265B, 0x265C, + 0x265D, 0x265E, 0x265F, 0x2660, 0x2661, 0x2662, 0x2663, 0, +}; +static const unsigned short utf8_to_euc_E294[] = { + 0x2821, 0x282C, 0x2822, 0x282D, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2823, 0, 0, 0x282E, + 0x2824, 0, 0, 0x282F, 0x2826, 0, 0, 0x2831, + 0x2825, 0, 0, 0x2830, 0x2827, 0x283C, 0, 0, + 0x2837, 0, 0, 0x2832, 0x2829, 0x283E, 0, 0, + 0x2839, 0, 0, 0x2834, 0x2828, 0, 0, 0x2838, + 0x283D, 0, 0, 0x2833, 0x282A, 0, 0, 0x283A, + 0x283F, 0, 0, 0x2835, 0x282B, 0, 0, 0x283B, +}; +static const unsigned short utf8_to_euc_E295[] = { + 0, 0, 0x2840, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2836, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E296[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2223, 0x2222, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2225, 0x2224, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2227, 0x2226, 0, 0, +}; +static const unsigned short utf8_to_euc_E296_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2223, 0x2222, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x266D, 0x2225, 0x2224, 0, 0, 0x2322, 0x2321, + 0, 0, 0, 0, 0x2227, 0x2226, 0, 0, +}; +static const unsigned short utf8_to_euc_E297[] = { + 0, 0, 0, 0, 0, 0, 0x2221, 0x217E, + 0, 0, 0, 0x217B, 0, 0, 0x217D, 0x217C, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x227E, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E297_x0213[] = { + 0x2324, 0x2323, 0, 0, 0, 0, 0x2221, 0x217E, + 0, 0x233B, 0, 0x217B, 0, 0, 0x217D, 0x217C, + 0x2867, 0x2868, 0x2869, 0x286A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x233F, 0, + 0, 0, 0, 0, 0, 0, 0, 0x227E, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E298[] = { + 0, 0, 0, 0, 0, 0x217A, 0x2179, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E298_x0213[] = { + 0x2668, 0x2669, 0x266A, 0x266B, 0, 0x217A, 0x2179, 0, + 0, 0, 0, 0, 0, 0, 0x2667, 0, + 0, 0, 0, 0, 0, 0, 0x2664, 0x2665, + 0, 0, 0, 0, 0, 0, 0x2D7E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E299[] = { + 0x216A, 0, 0x2169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2276, 0, 0, 0x2275, 0, 0x2274, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E299_x0213[] = { + 0x216A, 0, 0x2169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x263A, 0x263D, 0x263B, 0x2640, 0x2639, 0x263E, 0x263C, 0x263F, + 0x266C, 0x227D, 0x2276, 0x227B, 0x227C, 0x2275, 0x227A, 0x2274, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E29C_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x277B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E29D_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2D7D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2C21, 0x2C22, + 0x2C23, 0x2C24, 0x2C25, 0x2C26, 0x2C27, 0x2C28, 0x2C29, 0x2C2A, +}; +static const unsigned short utf8_to_euc_E2A4_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x232E, 0x232F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E2A6_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x233A, +}; +static const unsigned short utf8_to_euc_E2A7_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x237D, 0x237E, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E380[] = { + 0x2121, 0x2122, 0x2123, 0x2137, 0, 0x2139, 0x213A, 0x213B, + 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, + 0x215A, 0x215B, 0x2229, 0x222E, 0x214C, 0x214D, 0, 0, + 0, 0, 0, 0, 0x2141, 0x2D60, 0, 0x2D61, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E380_932[] = { + 0x2121, 0x2122, 0x2123, 0x2137, 0, 0x2139, 0x213A, 0x213B, + 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, + 0x215A, 0x215B, 0x2229, 0x222E, 0x214C, 0x214D, 0, 0, + 0, 0, 0, 0, 0, 0x2D60, 0, 0x2D61, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E380_x0213[] = { + 0x2121, 0x2122, 0x2123, 0x2137, 0, 0x2139, 0x213A, 0x213B, + 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, + 0x215A, 0x215B, 0x2229, 0x222E, 0x214C, 0x214D, 0x225A, 0x225B, + 0x2258, 0x2259, 0, 0, 0x2141, 0x2D60, 0, 0x2D61, + 0x2666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2233, 0x2234, 0x2235, 0, 0, + 0, 0, 0, 0x2236, 0x2237, 0x233C, 0, 0, +}; +static const unsigned short utf8_to_euc_E381[] = { + 0, 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, +}; +static const unsigned short utf8_to_euc_E382[] = { + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, + 0x2470, 0x2471, 0x2472, 0x2473, 0, 0, 0, 0, + 0, 0, 0, 0x212B, 0x212C, 0x2135, 0x2136, 0, + 0, 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, +}; +static const unsigned short utf8_to_euc_E382_932[] = { + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, + 0x2470, 0x2471, 0x2472, 0x2473, 0x2574, 0, 0, 0, + 0, 0, 0, 0x212B, 0x212C, 0x2135, 0x2136, 0, + 0, 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, +}; +static const unsigned short utf8_to_euc_E382_x0213[] = { + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, + 0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0, + 0, 0, 0, 0x212B, 0x212C, 0x2135, 0x2136, 0x2239, + 0x237B, 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, +}; +static const unsigned short utf8_to_euc_E383[] = { + 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, 0, + 0, 0, 0, 0x2126, 0x213C, 0x2133, 0x2134, 0, +}; +static const unsigned short utf8_to_euc_E383_x0213[] = { + 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, 0x2772, + 0x2773, 0x2774, 0x2775, 0x2126, 0x213C, 0x2133, 0x2134, 0x2238, +}; +static const unsigned short utf8_to_euc_E387_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x266E, 0x266F, 0x2670, 0x2671, 0x2672, 0x2673, 0x2674, 0x2675, + 0x2676, 0x2677, 0x2679, 0x267A, 0x267B, 0x267C, 0x267D, 0x267E, +}; +static const unsigned short utf8_to_euc_E388[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2D6A, 0x2D6B, 0, 0, 0, 0, 0, + 0, 0x2D6C, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E388_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2D2E, 0x2D31, 0, 0, 0, 0, 0, + 0, 0x2D2C, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E389_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, 0x2846, 0x2847, + 0x2848, 0x2849, 0x284A, 0x284B, 0x284C, 0x284D, 0x284E, 0x284F, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38A[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2D65, 0x2D66, 0x2D67, 0x2D68, + 0x2D69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38A_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2D73, 0x2D74, 0x2D75, 0x2D76, + 0x2D77, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38A_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2D65, 0x2D66, 0x2D67, 0x2D68, + 0x2D69, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2850, 0x2851, 0x2852, 0x2853, 0x2854, 0x2855, 0x2856, + 0x2857, 0x2858, 0x2859, 0x285A, 0x285B, 0x285C, 0x285D, 0x285E, +}; +static const unsigned short utf8_to_euc_E38B_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2C5B, 0x2C5C, 0x2C5D, 0x2C5E, 0x2C5F, 0x2C60, 0x2C61, 0x2C62, + 0x2C63, 0x2C64, 0x2C65, 0x2C66, 0x2C67, 0x2C68, 0x2C69, 0x2C6A, + 0x2C6B, 0x2C6C, 0x2C6D, 0x2C6E, 0, 0x2C71, 0, 0, + 0, 0x2C70, 0, 0, 0x2C73, 0x2C72, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2C6F, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38C[] = { + 0, 0, 0, 0x2D46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2D4A, 0, 0, + 0, 0, 0, 0, 0x2D41, 0, 0, 0, + 0x2D44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2D42, 0x2D4C, 0, 0, 0x2D4B, 0x2D45, + 0, 0, 0, 0x2D4D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2D47, 0, + 0, 0, 0, 0x2D4F, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38C_mac[] = { + 0, 0, 0, 0x2E29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2E32, 0, 0, + 0, 0, 0, 0, 0x2E24, 0, 0, 0, + 0x2E2B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x2E22, 0x2E34, 0, 0, 0x2E35, 0x2E2D, + 0, 0, 0, 0x2E37, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2E2A, 0, + 0, 0, 0, 0x2E36, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38D[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2D40, 0x2D4E, 0, 0, 0x2D43, 0, 0, + 0, 0x2D48, 0, 0, 0, 0, 0, 0x2D49, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2D5F, 0x2D6F, 0x2D6E, 0x2D6D, 0, +}; +static const unsigned short utf8_to_euc_E38D_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x2E21, 0x2E2F, 0, 0, 0x2E23, 0, 0, + 0, 0x2E2E, 0, 0, 0, 0, 0, 0x2E31, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2E6A, 0x2E69, 0x2E68, 0x2E67, 0, +}; +static const unsigned short utf8_to_euc_E38E[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2D53, 0x2D54, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2D50, 0x2D51, 0x2D52, 0, + 0, 0x2D56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38E_mac[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x2B2B, 0x2B2D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x2B21, 0x2B23, 0x2B29, 0, + 0, 0x2B27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38F[] = { + 0, 0, 0, 0, 0x2D55, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2D63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38F_mac[] = { + 0, 0, 0, 0, 0x2B2E, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2B7C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E38F_x0213[] = { + 0, 0, 0, 0, 0x2D55, 0, 0, 0, + 0, 0, 0, 0x235E, 0, 0x2D63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E390_x0213[] = { + 0, 0, 0x2E23, 0, 0, 0, 0xA12D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xA132, 0, 0xA133, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E391_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xA15E, 0, 0xA156, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E392_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xA17E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x2E53, 0, 0, + 0, 0, 0, 0, 0xA32B, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E393_x0213[] = { + 0, 0xF468, 0, 0, 0, 0, 0, 0xA32F, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x2E5B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E394_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xA348, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E395_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xA35D, 0xA35E, 0, + 0, 0, 0, 0xA361, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xA367, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E396_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xA423, 0, + 0xA426, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E397_x0213[] = { + 0, 0, 0, 0, 0, 0xA42F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xA438, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xA442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E398_x0213[] = { + 0, 0, 0, 0, 0, 0xA44A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E399_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xA479, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E39A_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xA53F, 0, 0, 0, 0, 0xA543, 0, + 0, 0xA541, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E39B_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xA557, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E39D_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xA823, 0xA825, 0, 0, 0, 0, 0, + 0, 0, 0, 0xA829, 0xA828, 0, 0, 0, + 0, 0, 0, 0, 0, 0xA82C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E39E_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x4F5F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E39F_x0213[] = { + 0, 0xA83E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x4F6F, 0, 0, 0, 0, 0, + 0xA856, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xA859, 0, 0, 0, + 0, 0, 0, 0, 0, 0xA85C, 0, 0, +}; +static const unsigned short utf8_to_euc_E3A0_x0213[] = { + 0xA85E, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xA86F, + 0, 0, 0, 0, 0, 0, 0xA871, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3A1_x0213[] = { + 0xA874, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xA879, 0, 0, 0, + 0, 0xA87B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3A3_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xAC3B, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3A4_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xAC46, + 0, 0, 0xAC4A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3A5_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xAC60, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3A9_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xAD5B, 0, + 0, 0, 0, 0xAD5F, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3AB_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xAD71, 0xAE36, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xAD7C, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3AC_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xAE2E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xAE32, 0, 0xAE34, 0, 0, 0, + 0, 0, 0x7549, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3AD_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xAE6D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xAE65, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3AE_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0xAF28, + 0xAF29, 0, 0, 0, 0, 0xAF2C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xAF34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x757E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3AF_x0213[] = { + 0, 0, 0, 0x7621, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xAF48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xAF5D, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B0_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x763A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xAF77, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B3_x0213[] = { + 0, 0, 0, 0xEE3B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xEE42, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B4_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xEE71, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xEE7E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B5_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xEF40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B6_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xEF54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B7_x0213[] = { + 0xEF70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xEF77, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3B8_x0213[] = { + 0, 0, 0, 0, 0, 0xF028, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x7766, +}; +static const unsigned short utf8_to_euc_E3B9_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xF03F, 0, 0, 0, 0, 0, 0xF041, 0, + 0xF042, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3BA_x0213[] = { + 0, 0, 0, 0xF049, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xF050, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3BD_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF134, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x784D, 0, 0, 0xF146, 0, 0xF148, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3BE_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF15C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E3BF_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xF167, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF16C, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E480_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xF222, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E481_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xF22D, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E482_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xF239, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E484_x0213[] = { + 0, 0, 0, 0, 0, 0xF264, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E485_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0xF274, 0, 0, 0, 0, 0, 0, 0xF277, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xF27D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E486_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xF333, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF337, +}; +static const unsigned short utf8_to_euc_E487_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF347, 0, + 0, 0, 0, 0, 0, 0, 0xF34B, 0, + 0, 0, 0, 0xF348, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E488_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0xF353, + 0, 0, 0, 0, 0, 0, 0xF357, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E489_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x796D, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E48B_x0213[] = { + 0, 0, 0, 0, 0, 0, 0xF42B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF436, 0, + 0, 0, 0, 0, 0, 0xF43B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E48C_x0213[] = { + 0, 0, 0xF44E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xF45D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E48D_x0213[] = { + 0, 0, 0, 0xF461, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E48F_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF53E, 0, + 0xF542, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E490_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0xF548, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF54A, + 0, 0, 0, 0, 0xF54C, 0, 0, 0, + 0, 0, 0xF54F, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E491_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x7A59, 0, 0, 0, 0, + 0, 0, 0, 0x7A5A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF56C, 0, + 0, 0, 0xF56E, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E492_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xF577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xF635, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF632, 0, +}; +static const unsigned short utf8_to_euc_E493_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xF634, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E494_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0xF659, 0, 0, 0, 0, 0xF654, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xF66D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E495_x0213[] = { + 0, 0, 0, 0xF66E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E496_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x7B51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xF74F, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E497_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xF76C, 0, 0, + 0, 0, 0x7B60, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E498_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF824, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E499_x0213[] = { + 0, 0xF83A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xF843, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E49A_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xF84E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF853, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E49C_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xF86B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E49D_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xF929, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E49F_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xF93F, 0, 0, +}; +static const unsigned short utf8_to_euc_E4A0_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF949, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4A1_x0213[] = { + 0, 0, 0, 0, 0x7C4B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF95C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4A2_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFA27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4A6_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x7D58, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4A7_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFB6A, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB70, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4A8_x0213[] = { + 0, 0, 0, 0, 0xFB75, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB78, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4AA_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFC37, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4AC_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFC55, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4AF_x0213[] = { + 0, 0, 0xFD26, 0, 0, 0, 0, 0, + 0, 0, 0xFD28, 0, 0, 0, 0, 0, + 0, 0, 0xFD2A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFD31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4B0_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x7E3E, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFD3F, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4B3_x0213[] = { + 0, 0, 0, 0, 0xFE2A, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFE2D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4B4_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0xFE4B, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4B5_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFE60, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4B8[] = { + 0x306C, 0x437A, 0xB021, 0x3C37, 0xB022, 0xB023, 0, 0x4B7C, + 0x3E66, 0x3B30, 0x3E65, 0x323C, 0xB024, 0x4954, 0x4D3F, 0, + 0x5022, 0x312F, 0xB025, 0, 0x336E, 0x5023, 0x4024, 0x5242, + 0x3556, 0x4A3A, 0, 0, 0, 0, 0x3E67, 0xB026, + 0, 0x4E3E, 0, 0xB027, 0xB028, 0, 0x4A42, 0, + 0xB029, 0, 0x5024, 0xB02A, 0, 0x4366, 0xB02B, 0xB02C, + 0xB02D, 0x5025, 0x367A, 0, 0, 0xB02E, 0x5026, 0, + 0x345D, 0x4330, 0, 0x3C67, 0x5027, 0, 0, 0x5028, +}; +static const unsigned short utf8_to_euc_E4B8_x0213[] = { + 0x306C, 0x437A, 0xA122, 0x3C37, 0xB022, 0xB023, 0, 0x4B7C, + 0x3E66, 0x3B30, 0x3E65, 0x323C, 0xB024, 0x4954, 0x4D3F, 0xA123, + 0x5022, 0x312F, 0xA124, 0, 0x336E, 0x5023, 0x4024, 0x5242, + 0x3556, 0x4A3A, 0, 0, 0, 0, 0x3E67, 0xB026, + 0, 0x4E3E, 0, 0xB027, 0xB028, 0, 0x4A42, 0, + 0x2E24, 0xA125, 0x5024, 0xA126, 0xF02E, 0x4366, 0xA127, 0x2E25, + 0x2E26, 0x5025, 0x367A, 0, 0, 0xB02E, 0x5026, 0, + 0x345D, 0x4330, 0, 0x3C67, 0x5027, 0, 0, 0x5028, +}; +static const unsigned short utf8_to_euc_E4B9[] = { + 0xB02F, 0xB030, 0x5029, 0x4735, 0xB031, 0x3557, 0, 0xB032, + 0, 0, 0, 0x4737, 0, 0x4663, 0x3843, 0x4B33, + 0, 0xB033, 0, 0, 0, 0x6949, 0x502A, 0x3E68, + 0x502B, 0x3235, 0xB034, 0, 0xB035, 0x3665, 0x3870, 0x4C69, + 0, 0, 0x5626, 0xB036, 0, 0, 0, 0, + 0xB037, 0xB038, 0, 0, 0, 0, 0, 0, + 0, 0x4D70, 0, 0x467D, 0xB039, 0xB03A, 0, 0, + 0, 0xB03B, 0, 0, 0, 0, 0x3425, 0xB03C, +}; +static const unsigned short utf8_to_euc_E4B9_x0213[] = { + 0xA128, 0xB030, 0x5029, 0x4735, 0xB031, 0x3557, 0, 0xA129, + 0xA12A, 0, 0, 0x4737, 0, 0x4663, 0x3843, 0x4B33, + 0, 0xA12C, 0, 0, 0, 0x6949, 0x502A, 0x3E68, + 0x502B, 0x3235, 0xA12F, 0, 0xB035, 0x3665, 0x3870, 0x4C69, + 0, 0, 0x5626, 0xB036, 0, 0, 0, 0, + 0xB037, 0xA130, 0, 0, 0, 0, 0, 0, + 0, 0x4D70, 0, 0x467D, 0xB039, 0xB03A, 0, 0, + 0, 0xB03B, 0, 0, 0, 0, 0x3425, 0xB03C, +}; +static const unsigned short utf8_to_euc_E4BA[] = { + 0x3535, 0, 0x502C, 0, 0, 0x502D, 0x4E3B, 0, + 0x4D3D, 0x4168, 0x502F, 0x3B76, 0x4673, 0xB03D, 0x5032, 0, + 0, 0x313E, 0x385F, 0, 0x385E, 0x3066, 0xB03E, 0xB03F, + 0x4F4B, 0x4F4A, 0, 0x3A33, 0x3021, 0xB040, 0x5033, 0x5034, + 0x5035, 0x4B34, 0x5036, 0, 0x3872, 0x3067, 0x4B72, 0, + 0x357C, 0, 0, 0x357D, 0x357E, 0x4462, 0x4E3C, 0xB041, + 0x5037, 0, 0, 0x5038, 0, 0, 0x5039, 0, + 0, 0xB042, 0x3F4D, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4BA_x0213[] = { + 0x3535, 0, 0x502C, 0, 0, 0x502D, 0x4E3B, 0, + 0x4D3D, 0x4168, 0x502F, 0x3B76, 0x4673, 0x2E27, 0x5032, 0, + 0, 0x313E, 0x385F, 0, 0x385E, 0x3066, 0xB03E, 0xB03F, + 0x4F4B, 0x4F4A, 0, 0x3A33, 0x3021, 0xA131, 0x5033, 0x5034, + 0x5035, 0x4B34, 0x5036, 0, 0x3872, 0x3067, 0x4B72, 0, + 0x357C, 0, 0, 0x357D, 0x357E, 0x4462, 0x4E3C, 0xB041, + 0x5037, 0, 0, 0x5038, 0, 0, 0x5039, 0, + 0, 0xA134, 0x3F4D, 0xA135, 0xA137, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E4BB[] = { + 0x3D3A, 0x3F4E, 0x503E, 0xB043, 0x503C, 0, 0x503D, 0x3558, + 0, 0, 0x3A23, 0x3270, 0, 0x503B, 0x503A, 0x4A29, + 0xB044, 0, 0, 0, 0x3B46, 0x3B45, 0x423E, 0x503F, + 0x4955, 0x4067, 0xB045, 0xB046, 0, 0x2138, 0x5040, 0x5042, + 0xB047, 0xB048, 0xB049, 0x4265, 0x4E61, 0x304A, 0, 0, + 0xB04A, 0, 0, 0, 0, 0x5041, 0x323E, 0xB04B, + 0x3644, 0xB04C, 0x4367, 0xB04D, 0, 0xB04E, 0x376F, 0x5043, + 0, 0, 0, 0x4724, 0xF42F, 0xB04F, 0xB050, 0xB051, +}; +static const unsigned short utf8_to_euc_E4BB_x0213[] = { + 0x3D3A, 0x3F4E, 0x503E, 0xA138, 0x503C, 0, 0x503D, 0x3558, + 0xA139, 0, 0x3A23, 0x3270, 0, 0x503B, 0x503A, 0x4A29, + 0xA13A, 0, 0, 0, 0x3B46, 0x3B45, 0x423E, 0x503F, + 0x4955, 0x4067, 0xA13C, 0xB046, 0, 0x2138, 0x5040, 0x5042, + 0xB047, 0x2E28, 0xB049, 0x4265, 0x4E61, 0x304A, 0, 0, + 0xB04A, 0, 0, 0xA13B, 0, 0x5041, 0x323E, 0xB04B, + 0x3644, 0xA13D, 0x4367, 0xB04D, 0, 0xA13E, 0x376F, 0x5043, + 0, 0, 0, 0x4724, 0xF42F, 0x2E29, 0xB050, 0x2E2A, +}; +static const unsigned short utf8_to_euc_E4BC[] = { + 0xB052, 0x346B, 0xB053, 0xB054, 0, 0, 0, 0, + 0xB055, 0x5044, 0x304B, 0xB056, 0xB057, 0x3860, 0x346C, 0x497A, + 0x4832, 0x3559, 0xB058, 0, 0, 0xB059, 0xB05A, 0xB05B, + 0, 0xB05C, 0x3271, 0, 0x5067, 0x4541, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xB05D, 0x476C, + 0x5046, 0xB05E, 0, 0xB060, 0x483C, 0xB061, 0x4E62, 0xB062, + 0x3F2D, 0xB063, 0x3B47, 0xB064, 0x3B77, 0x3240, 0xB065, 0, +}; +static const unsigned short utf8_to_euc_E4BC_x0213[] = { + 0xA13F, 0x346B, 0xB053, 0x2E2B, 0, 0, 0, 0, + 0xB055, 0x5044, 0x304B, 0x2E2C, 0xB057, 0x3860, 0x346C, 0x497A, + 0x4832, 0x3559, 0xB058, 0, 0, 0xB059, 0xA140, 0xB05B, + 0, 0xB05C, 0x3271, 0, 0x5067, 0x4541, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xB05D, 0x476C, + 0x5046, 0xB05E, 0, 0xB060, 0x483C, 0xB061, 0x4E62, 0xA142, + 0x3F2D, 0xB063, 0x3B47, 0xB064, 0x3B77, 0x3240, 0xA143, 0, +}; +static const unsigned short utf8_to_euc_E4BD[] = { + 0xB066, 0, 0xB067, 0x4451, 0, 0, 0x4322, 0x504A, + 0xB068, 0xB069, 0, 0xB06A, 0xB06B, 0x304C, 0x4463, 0x3D3B, + 0x3A34, 0x4D24, 0xB06C, 0x424E, 0xB06D, 0x323F, 0xB06E, 0x5049, + 0xB06F, 0x4D3E, 0x5045, 0x5047, 0x3A6E, 0x5048, 0x5524, 0xB070, + 0xB05F, 0, 0, 0xB071, 0, 0, 0, 0, + 0, 0x5050, 0xB072, 0, 0xB073, 0, 0xB074, 0x5053, + 0x5051, 0xB075, 0, 0x3242, 0, 0x4A3B, 0x504B, 0xB076, + 0xB077, 0xB078, 0xB079, 0x504F, 0x3873, 0xB07A, 0xB07B, 0x3B48, +}; +static const unsigned short utf8_to_euc_E4BD_x0213[] = { + 0xB066, 0, 0xB067, 0x4451, 0, 0, 0x4322, 0x504A, + 0x2E2E, 0x2E2F, 0, 0xB06A, 0xB06B, 0x304C, 0x4463, 0x3D3B, + 0x3A34, 0x4D24, 0xB06C, 0x424E, 0xA144, 0x323F, 0x2E30, 0x5049, + 0xA145, 0x4D3E, 0x5045, 0x5047, 0x3A6E, 0x5048, 0x5524, 0x2E31, + 0x2E2D, 0, 0, 0xB071, 0xA141, 0, 0, 0, + 0, 0x5050, 0x2E32, 0, 0x2E33, 0, 0xB074, 0x5053, + 0x5051, 0xB075, 0, 0x3242, 0, 0x4A3B, 0x504B, 0xA147, + 0xA148, 0xB078, 0xA149, 0x504F, 0x3873, 0xA14A, 0x2E34, 0x3B48, +}; +static const unsigned short utf8_to_euc_E4BE[] = { + 0, 0xB07C, 0xB07D, 0x3426, 0xB07E, 0xB121, 0x5054, 0, + 0x504C, 0xB122, 0xB123, 0x4E63, 0xB124, 0x3B78, 0xB125, 0x504D, + 0xB126, 0x5052, 0xB127, 0xB128, 0xB129, 0, 0x5055, 0xB12A, + 0x504E, 0xB12B, 0xB12C, 0x3621, 0, 0x304D, 0xB12D, 0xB12E, + 0x3622, 0x3241, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x5525, 0, 0x4B79, 0x496E, 0x3874, + 0, 0, 0xB12F, 0, 0, 0x3F2F, 0x4E37, 0xB130, + 0, 0xB131, 0, 0xB132, 0xB133, 0xB134, 0xB135, 0x4A58, +}; +static const unsigned short utf8_to_euc_E4BE_x0213[] = { + 0, 0xB07C, 0xA14B, 0x3426, 0xB07E, 0xA14C, 0x5054, 0, + 0x504C, 0xB122, 0x2E35, 0x4E63, 0xB124, 0x3B78, 0xB125, 0x504D, + 0xB126, 0x5052, 0xA14D, 0xB128, 0x2E36, 0, 0x5055, 0x2E37, + 0x504E, 0xB12B, 0xA14E, 0x3621, 0, 0x304D, 0xB12D, 0xB12E, + 0x3622, 0x3241, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x5525, 0, 0x4B79, 0x496E, 0x3874, + 0, 0, 0xA150, 0, 0, 0x3F2F, 0x4E37, 0xB130, + 0, 0xB131, 0, 0xB132, 0xB133, 0xB134, 0xA151, 0x4A58, +}; +static const unsigned short utf8_to_euc_E4BF[] = { + 0xB136, 0xB137, 0x3738, 0x4225, 0x3264, 0xB138, 0xB139, 0, + 0xB13A, 0xB13B, 0x3D53, 0xB13C, 0xB13D, 0xB13E, 0x5059, 0xB13F, + 0x505E, 0x505C, 0xB140, 0, 0x5057, 0, 0, 0x422F, + 0x505A, 0, 0x505D, 0x505B, 0xB141, 0x4A5D, 0, 0x5058, + 0xB142, 0x3F2E, 0xB143, 0x4B73, 0x505F, 0x5060, 0, 0, + 0, 0, 0, 0, 0, 0, 0x3D24, 0x506D, + 0xB144, 0, 0xB145, 0x4750, 0, 0x4936, 0x5068, 0, + 0x4A70, 0, 0x3236, 0, 0xB146, 0xB147, 0x506C, 0xB148, +}; +static const unsigned short utf8_to_euc_E4BF_x0213[] = { + 0xB136, 0xB137, 0x3738, 0x4225, 0x3264, 0xA152, 0xB139, 0, + 0xB13A, 0x2E39, 0x3D53, 0xA153, 0xB13D, 0xB13E, 0x5059, 0xA154, + 0x505E, 0x505C, 0xA155, 0, 0x5057, 0, 0, 0x422F, + 0x505A, 0, 0x505D, 0x505B, 0xB141, 0x4A5D, 0, 0x5058, + 0x2E3A, 0x3F2E, 0xB143, 0x4B73, 0x505F, 0x5060, 0xA14F, 0, + 0, 0, 0, 0, 0, 0, 0x3D24, 0x506D, + 0xB144, 0x2E21, 0xA157, 0x4750, 0, 0x4936, 0x5068, 0, + 0x4A70, 0, 0x3236, 0, 0xB146, 0xB147, 0x506C, 0xB148, +}; +static const unsigned short utf8_to_euc_E580[] = { + 0xB149, 0xB14A, 0, 0, 0xB14B, 0x5066, 0x506F, 0xB14C, + 0, 0x4152, 0xB14D, 0x3844, 0xB14E, 0x475C, 0xB14F, 0x6047, + 0xB150, 0x506E, 0x455D, 0xB151, 0x5063, 0, 0x3876, 0xB152, + 0xB153, 0x3875, 0x5061, 0xB154, 0xB155, 0xB156, 0xB157, 0x3C5A, + 0, 0x5069, 0xB158, 0x4A6F, 0x434D, 0x5065, 0x3771, 0xB159, + 0x5062, 0x506A, 0x5064, 0x4E51, 0x506B, 0x4F41, 0xB15A, 0, + 0xB15B, 0, 0xB15C, 0xB15D, 0, 0xB15E, 0x3666, 0, + 0, 0x3770, 0, 0xB176, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E580_x0213[] = { + 0xA158, 0x2E3B, 0x2E3C, 0, 0xB14B, 0x5066, 0x506F, 0xB14C, + 0, 0x4152, 0xB14D, 0x3844, 0xB14E, 0x475C, 0x2E3D, 0x6047, + 0xA159, 0x506E, 0x455D, 0xA15A, 0x5063, 0, 0x3876, 0xB152, + 0x2E3E, 0x3875, 0x5061, 0xB154, 0xA15B, 0xB156, 0xA15C, 0x3C5A, + 0, 0x5069, 0xA15D, 0x4A6F, 0x434D, 0x5065, 0x3771, 0x2E3F, + 0x5062, 0x506A, 0x5064, 0x4E51, 0x506B, 0x4F41, 0x2E40, 0, + 0xB15B, 0, 0xB15C, 0xB15D, 0, 0xB15E, 0x3666, 0, + 0, 0x3770, 0, 0x2E42, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E581[] = { + 0xB15F, 0xB160, 0xB161, 0x5070, 0, 0xB162, 0xB163, 0x5071, + 0x5075, 0x304E, 0xB164, 0, 0xB165, 0, 0xB166, 0x4A50, + 0x5074, 0xB167, 0xB168, 0xB169, 0, 0x5073, 0x5077, 0xB16A, + 0, 0xB16B, 0x5076, 0, 0x4464, 0, 0, 0xB16C, + 0xB16D, 0, 0xB16E, 0xB16F, 0, 0x3772, 0xB170, 0xB171, + 0, 0, 0xB172, 0, 0x5078, 0xB173, 0, 0, + 0xB174, 0xB175, 0x3C45, 0, 0x4226, 0x4465, 0x3676, 0, + 0x5079, 0, 0, 0, 0, 0x3536, 0, 0, +}; +static const unsigned short utf8_to_euc_E581_x0213[] = { + 0x2E41, 0x2E43, 0xA15F, 0x5070, 0, 0xB162, 0xA160, 0x5071, + 0x5075, 0x304E, 0xB164, 0, 0xB165, 0, 0xA161, 0x4A50, + 0x5074, 0xB167, 0xB168, 0xA162, 0, 0x5073, 0x5077, 0xA163, + 0, 0xB16B, 0x5076, 0, 0x4464, 0, 0, 0xB16C, + 0xB16D, 0, 0xB16E, 0xA164, 0, 0x3772, 0xA165, 0xB171, + 0, 0, 0xA166, 0, 0x5078, 0xB173, 0, 0, + 0xA167, 0xB175, 0x3C45, 0, 0x4226, 0x4465, 0x3676, 0, + 0x5079, 0, 0, 0, 0, 0x3536, 0, 0, +}; +static const unsigned short utf8_to_euc_E582[] = { + 0x507A, 0xB177, 0, 0xB178, 0xB179, 0x507C, 0xB17A, 0, + 0, 0, 0xB17B, 0, 0, 0x4B35, 0xB17C, 0xB17D, + 0xB17E, 0x3766, 0xB221, 0xB222, 0xB223, 0, 0xB224, 0, + 0x3B31, 0x4877, 0x507B, 0xB225, 0xB226, 0, 0xB227, 0xB228, + 0xB229, 0xB22A, 0xB22B, 0, 0, 0, 0, 0, + 0, 0, 0xB22C, 0, 0x3A45, 0x4D43, 0, 0xB22D, + 0xB22E, 0, 0x507E, 0x5123, 0x507D, 0x3A44, 0, 0x3D7D, + 0, 0xB22F, 0xB230, 0, 0, 0xB231, 0x3739, 0, +}; +static const unsigned short utf8_to_euc_E582_x0213[] = { + 0x507A, 0xB177, 0, 0xB178, 0xB179, 0x507C, 0xB17A, 0, + 0xA169, 0, 0xB17B, 0, 0, 0x4B35, 0xB17C, 0xB17D, + 0xB17E, 0x3766, 0xA16A, 0xA16B, 0x2E44, 0xA16C, 0xA16D, 0, + 0x3B31, 0x4877, 0x507B, 0xB225, 0xA16E, 0, 0xB227, 0xB228, + 0xB229, 0xB22A, 0xB22B, 0xA168, 0, 0, 0, 0, + 0, 0, 0xA16F, 0, 0x3A45, 0x4D43, 0, 0xB22D, + 0xB22E, 0xA171, 0x507E, 0x5123, 0x507D, 0x3A44, 0, 0x3D7D, + 0, 0xB22F, 0xA172, 0xA173, 0, 0xB231, 0x3739, 0, +}; +static const unsigned short utf8_to_euc_E583[] = { + 0xB232, 0, 0x5124, 0xB233, 0xB234, 0x364F, 0, 0xB235, + 0, 0x5121, 0x5122, 0, 0xB236, 0x462F, 0xB237, 0x417C, + 0xB238, 0x3623, 0, 0xB239, 0xB23A, 0x4B4D, 0x5125, 0, + 0xB23B, 0, 0x4E3D, 0, 0xB23C, 0xB23D, 0x5126, 0xB23E, + 0, 0, 0xB23F, 0x5129, 0xB240, 0x5127, 0xB241, 0x414E, + 0xB242, 0xB243, 0, 0, 0, 0x5128, 0x512A, 0xB244, + 0, 0xB245, 0xB251, 0, 0xF430, 0x512C, 0xB246, 0, + 0, 0x512B, 0xB247, 0x4A48, 0, 0, 0xB248, 0, +}; +static const unsigned short utf8_to_euc_E583_x0213[] = { + 0xB232, 0, 0x5124, 0xB233, 0xA174, 0x364F, 0, 0xA175, + 0, 0x5121, 0x5122, 0, 0x2E45, 0x462F, 0xA178, 0x417C, + 0x2E47, 0x3623, 0, 0xB239, 0xA17A, 0x4B4D, 0x5125, 0, + 0xB23B, 0xA17B, 0x4E3D, 0, 0xB23C, 0xB23D, 0x5126, 0xB23E, + 0, 0xA17C, 0xB23F, 0x5129, 0xB240, 0x5127, 0x2E48, 0x414E, + 0xB242, 0xA17D, 0, 0, 0, 0x5128, 0x512A, 0xB244, + 0, 0xB245, 0x2E46, 0xA176, 0xF430, 0x512C, 0xB246, 0, + 0, 0x512B, 0xB247, 0x4A48, 0, 0, 0xB248, 0, +}; +static const unsigned short utf8_to_euc_E584[] = { + 0x3537, 0x512E, 0x512F, 0xB249, 0x322F, 0, 0xB24A, 0xB24B, + 0xB24C, 0x512D, 0, 0xB24D, 0xB24E, 0xB24F, 0xB250, 0, + 0xB252, 0, 0x3C74, 0, 0x5132, 0x5131, 0x5130, 0xB253, + 0x5056, 0xB254, 0x5133, 0xB255, 0xB256, 0xB257, 0xB258, 0x3D7E, + 0, 0x5134, 0, 0xB259, 0, 0, 0, 0xB25A, + 0xB25B, 0, 0x4D25, 0, 0xB25C, 0xB25D, 0, 0xB25E, + 0, 0xB25F, 0x4C59, 0xB260, 0xB261, 0xB262, 0, 0x5136, + 0xB263, 0xB264, 0x5135, 0x5138, 0x5137, 0, 0, 0x5139, +}; +static const unsigned short utf8_to_euc_E584_x0213[] = { + 0x3537, 0x512E, 0x512F, 0x2E4B, 0x322F, 0, 0x2E4A, 0xB24B, + 0xA321, 0x512D, 0, 0x2E4C, 0xB24E, 0xB24F, 0xB250, 0, + 0xB252, 0, 0x3C74, 0, 0x5132, 0x5131, 0x5130, 0xA323, + 0x5056, 0xB254, 0x5133, 0xA324, 0xB256, 0xB257, 0x2E4D, 0x3D7E, + 0, 0x5134, 0, 0xB259, 0, 0, 0, 0xB25A, + 0xB25B, 0, 0x4D25, 0, 0xB25C, 0xB25D, 0, 0xB25E, + 0, 0xB25F, 0x4C59, 0xB260, 0xB261, 0x2E4E, 0, 0x5136, + 0xB263, 0xB264, 0x5135, 0x5138, 0x5137, 0, 0, 0x5139, +}; +static const unsigned short utf8_to_euc_E585[] = { + 0x513A, 0x3074, 0xB265, 0x3835, 0x373B, 0x3D3C, 0x437B, 0x3624, + 0x4068, 0x3877, 0xB266, 0x396E, 0x513C, 0x4C48, 0x4546, 0xB267, + 0x3B79, 0, 0x513B, 0xB268, 0x513D, 0xB269, 0, 0xB26A, + 0xB26B, 0, 0x455E, 0, 0x3375, 0, 0, 0xB26C, + 0, 0, 0x513E, 0, 0xB26D, 0x467E, 0xB26E, 0, + 0x4134, 0x5140, 0x5141, 0x482C, 0x3878, 0x4F3B, 0x5142, 0, + 0, 0x3626, 0, 0, 0, 0x4A3C, 0x4236, 0x3671, + 0x4535, 0, 0, 0, 0x3773, 0, 0xB26F, 0, +}; +static const unsigned short utf8_to_euc_E585_x0213[] = { + 0x513A, 0x3074, 0xB265, 0x3835, 0x373B, 0x3D3C, 0x437B, 0x3624, + 0x4068, 0x3877, 0x2E4F, 0x396E, 0x513C, 0x4C48, 0x4546, 0xB267, + 0x3B79, 0, 0x513B, 0xB268, 0x513D, 0x2E51, 0, 0x2E52, + 0xB26B, 0, 0x455E, 0, 0x3375, 0, 0, 0xB26C, + 0xA326, 0, 0x513E, 0, 0xB26D, 0x467E, 0xB26E, 0, + 0x4134, 0x5140, 0x5141, 0x482C, 0x3878, 0x4F3B, 0x5142, 0, + 0, 0x3626, 0, 0xA328, 0, 0x4A3C, 0x4236, 0x3671, + 0x4535, 0, 0, 0xF474, 0x3773, 0, 0xB26F, 0, +}; +static const unsigned short utf8_to_euc_E586[] = { + 0x5143, 0, 0x5144, 0xB270, 0xB271, 0x4662, 0x315F, 0, + 0, 0x5147, 0x3A7D, 0xB272, 0x5146, 0x3A46, 0xB273, 0x5148, + 0x666E, 0x5149, 0x4B41, 0x514A, 0, 0x514B, 0x514C, 0x3E69, + 0xB274, 0x3C4C, 0, 0, 0, 0xB275, 0, 0, + 0x3427, 0xB276, 0x514F, 0xB277, 0x514D, 0x4C3D, 0x514E, 0, + 0x495A, 0x5150, 0x5151, 0x5152, 0x455F, 0xB278, 0, 0, + 0x5156, 0x5154, 0x5155, 0x5153, 0x3A63, 0x5157, 0x4C6A, 0x4E64, + 0xB279, 0, 0xB27A, 0, 0xB27B, 0x5158, 0xB27C, 0xB27D, +}; +static const unsigned short utf8_to_euc_E586_x0213[] = { + 0x5143, 0, 0x5144, 0xA329, 0xB271, 0x4662, 0x315F, 0, + 0, 0x5147, 0x3A7D, 0xA32A, 0x5146, 0x3A46, 0xB273, 0x5148, + 0x666E, 0x5149, 0x4B41, 0x514A, 0, 0x514B, 0x514C, 0x3E69, + 0xA32C, 0x3C4C, 0, 0, 0, 0x2E54, 0, 0, + 0x3427, 0xB276, 0x514F, 0xA32D, 0x514D, 0x4C3D, 0x514E, 0, + 0x495A, 0x5150, 0x5151, 0x5152, 0x455F, 0xA32E, 0, 0, + 0x5156, 0x5154, 0x5155, 0x5153, 0x3A63, 0x5157, 0x4C6A, 0x4E64, + 0xB279, 0, 0xB27A, 0, 0xA330, 0x5158, 0xB27C, 0xB27D, +}; +static const unsigned short utf8_to_euc_E587[] = { + 0, 0, 0xB27E, 0, 0x4028, 0x5159, 0x3D5A, 0, + 0xB321, 0x515A, 0, 0x437C, 0x4E3F, 0x4560, 0, 0xB322, + 0, 0xB323, 0xB324, 0xB325, 0, 0xB326, 0x5245, 0, + 0xB327, 0, 0, 0x515B, 0x7425, 0x3645, 0xB328, 0, + 0x515C, 0x4B5E, 0xB329, 0, 0, 0xB32A, 0x3D68, 0x427C, + 0, 0x515E, 0x4664, 0, 0xF431, 0x515F, 0xB32B, 0, + 0x5160, 0x332E, 0xB32C, 0xB32D, 0xB32E, 0x5161, 0x3627, 0xB32F, + 0x464C, 0x317A, 0x3D50, 0, 0, 0x4821, 0x5162, 0, +}; +static const unsigned short utf8_to_euc_E587_x0213[] = { + 0, 0, 0xB27E, 0x2E55, 0x4028, 0x5159, 0x3D5A, 0, + 0xB321, 0x515A, 0x2E56, 0x437C, 0x4E3F, 0x4560, 0, 0xB322, + 0, 0xB323, 0xB324, 0xB325, 0, 0xB326, 0x5245, 0, + 0xB327, 0, 0, 0x515B, 0x7425, 0x3645, 0x2E57, 0, + 0x515C, 0x4B5E, 0x2E58, 0, 0, 0xB32A, 0x3D68, 0x427C, + 0, 0x515E, 0x4664, 0, 0xF431, 0x515F, 0x2E59, 0, + 0x5160, 0x332E, 0xB32C, 0xA333, 0xA334, 0x5161, 0x3627, 0xB32F, + 0x464C, 0x317A, 0x3D50, 0, 0, 0x4821, 0x5162, 0, +}; +static const unsigned short utf8_to_euc_E588[] = { + 0x4561, 0xB330, 0xB331, 0x3F4F, 0x5163, 0xB332, 0x4A2C, 0x405A, + 0x3422, 0, 0x3429, 0x5164, 0, 0, 0x5166, 0, + 0, 0x373A, 0xB333, 0xB334, 0x5165, 0xB335, 0xB336, 0x4E73, + 0xB337, 0, 0, 0, 0, 0x3D69, 0, 0, + 0, 0, 0xB338, 0, 0x483D, 0x4A4C, 0, 0x5167, + 0xB339, 0x4D78, 0x5168, 0, 0, 0, 0x5169, 0, + 0x457E, 0xB33A, 0xB33B, 0x516A, 0, 0xB33C, 0x4029, 0x3A7E, + 0x3774, 0x516B, 0x3B49, 0x396F, 0xB33D, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E588_x0213[] = { + 0x4561, 0x2E5A, 0xA335, 0x3F4F, 0x5163, 0xB332, 0x4A2C, 0x405A, + 0x3422, 0, 0x3429, 0x5164, 0, 0, 0x5166, 0, + 0, 0x373A, 0xA336, 0x2E5C, 0x5165, 0x2E5D, 0xA337, 0x4E73, + 0xB337, 0, 0, 0, 0, 0x3D69, 0, 0, + 0, 0, 0xB338, 0, 0x483D, 0x4A4C, 0, 0x5167, + 0xB339, 0x4D78, 0x5168, 0, 0, 0, 0x5169, 0, + 0x457E, 0xB33A, 0xB33B, 0x516A, 0, 0xB33C, 0x4029, 0x3A7E, + 0x3774, 0x516B, 0x3B49, 0x396F, 0xB33D, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E589[] = { + 0, 0, 0, 0x4466, 0x516D, 0xB33E, 0, 0x4227, + 0, 0xB33F, 0x3A6F, 0x516E, 0x516F, 0x4130, 0, 0x516C, + 0, 0, 0, 0, 0x5171, 0xB340, 0x4B36, 0xB341, + 0xB342, 0, 0xB343, 0x3964, 0xB344, 0, 0x5170, 0xB345, + 0xB346, 0xB347, 0, 0x3775, 0x3A5E, 0x476D, 0xB348, 0, + 0, 0x5174, 0x5172, 0, 0, 0, 0xB349, 0x497B, + 0x3E6A, 0x517B, 0x3364, 0x5175, 0x5173, 0x414F, 0, 0xB34A, + 0xB34B, 0xB34C, 0, 0, 0, 0x5177, 0, 0x5176, +}; +static const unsigned short utf8_to_euc_E589_x0213[] = { + 0, 0, 0, 0x4466, 0x516D, 0xB33E, 0, 0x4227, + 0, 0x2E5E, 0x3A6F, 0x516E, 0x516F, 0x4130, 0, 0x516C, + 0, 0, 0, 0, 0x5171, 0xA339, 0x4B36, 0x2E5F, + 0xB342, 0, 0xB343, 0x3964, 0xA33A, 0x2F7E, 0x5170, 0xB345, + 0xB346, 0x2E60, 0, 0x3775, 0x3A5E, 0x476D, 0xB348, 0, + 0, 0x5174, 0x5172, 0, 0xA33B, 0, 0xB349, 0x497B, + 0x3E6A, 0x517B, 0x3364, 0x5175, 0x5173, 0x414F, 0, 0xA33C, + 0xB34B, 0xB34C, 0, 0, 0, 0x5177, 0, 0x5176, +}; +static const unsigned short utf8_to_euc_E58A[] = { + 0xB34D, 0, 0xB34E, 0x3344, 0, 0xB34F, 0, 0x3760, + 0x517C, 0x4E2D, 0xB350, 0, 0xB351, 0x5178, 0, 0, + 0, 0x517D, 0x517A, 0xB352, 0x5179, 0xB353, 0xB354, 0xB355, + 0xB356, 0, 0xB357, 0x4E4F, 0xB358, 0, 0, 0x3879, + 0x3243, 0, 0, 0x4E74, 0xB359, 0xB35A, 0xB35B, 0xB35C, + 0, 0x3D75, 0x4558, 0x3965, 0x5222, 0x5223, 0, 0xB35D, + 0xB35E, 0x4E65, 0, 0, 0x4F2B, 0x5225, 0xB35F, 0xB360, + 0xB361, 0x387A, 0xB362, 0xB363, 0x5224, 0xB364, 0x332F, 0, +}; +static const unsigned short utf8_to_euc_E58A_x0213[] = { + 0xB34D, 0, 0xA33E, 0x3344, 0xA33D, 0xB34F, 0, 0x3760, + 0x517C, 0x4E2D, 0xB350, 0, 0xB351, 0x5178, 0, 0, + 0, 0x517D, 0x517A, 0x2E61, 0x5179, 0xB353, 0xB354, 0xB355, + 0xA340, 0, 0xB357, 0x4E4F, 0xB358, 0, 0, 0x3879, + 0x3243, 0, 0, 0x4E74, 0xA342, 0xB35A, 0xA343, 0xB35C, + 0, 0x3D75, 0x4558, 0x3965, 0x5222, 0x5223, 0, 0xA344, + 0xB35E, 0x4E65, 0, 0, 0x4F2B, 0x5225, 0xB35F, 0xB360, + 0xB361, 0x387A, 0xA345, 0xA346, 0x5224, 0xB364, 0x332F, 0, +}; +static const unsigned short utf8_to_euc_E58B[] = { + 0xB365, 0x5226, 0, 0x4B56, 0xB366, 0x443C, 0xB367, 0x4D26, + 0xB368, 0x4A59, 0, 0, 0xB369, 0x5227, 0, 0xB36A, + 0, 0xB36B, 0x7055, 0, 0xB36C, 0x4630, 0xB36D, 0x5228, + 0x342A, 0x4C33, 0, 0xB36E, 0xB36F, 0x3E21, 0x5229, 0x4A67, + 0x522D, 0xB370, 0x402A, 0x522A, 0x3650, 0xB371, 0x522B, 0x342B, + 0xB372, 0xB373, 0xB374, 0, 0xB375, 0, 0, 0, + 0xB376, 0xB377, 0x372E, 0x522E, 0xB378, 0x522F, 0xB379, 0xB37A, + 0x5230, 0x5231, 0x3C5B, 0, 0, 0, 0x387B, 0x4C5E, +}; +static const unsigned short utf8_to_euc_E58B_x0213[] = { + 0xB365, 0x5226, 0, 0x4B56, 0xB366, 0x443C, 0xB367, 0x4D26, + 0x2E62, 0x4A59, 0xA347, 0, 0x2E64, 0x5227, 0, 0xB36A, + 0x2E65, 0xA349, 0x7055, 0, 0xB36C, 0x4630, 0x2E66, 0x5228, + 0x342A, 0x4C33, 0, 0x2E67, 0xB36F, 0x3E21, 0x5229, 0x4A67, + 0x522D, 0xB370, 0x402A, 0x522A, 0x3650, 0xB371, 0x522B, 0x342B, + 0xB372, 0xB373, 0xB374, 0, 0xB375, 0, 0, 0, + 0x2E69, 0xB377, 0x372E, 0x522E, 0xB378, 0x522F, 0xB379, 0xA34B, + 0x5230, 0x5231, 0x3C5B, 0x2E6A, 0, 0, 0x387B, 0x4C5E, +}; +static const unsigned short utf8_to_euc_E58C[] = { + 0xB37B, 0x4C68, 0x4677, 0xB37C, 0, 0x4A71, 0x5232, 0xF432, + 0x5233, 0, 0xB37D, 0xB37E, 0xB421, 0x5235, 0, 0x5237, + 0x5236, 0xB422, 0, 0xB423, 0, 0x5238, 0x323D, 0x4B4C, + 0xB424, 0x3A7C, 0x5239, 0xB425, 0xB426, 0x4159, 0xB427, 0xB428, + 0x3E22, 0x3629, 0, 0x523A, 0xF433, 0xB429, 0, 0xB42A, + 0xB42B, 0xB42C, 0x485B, 0xB42D, 0xB42E, 0xB42F, 0, 0x523B, + 0xB430, 0x523C, 0xB431, 0x523D, 0, 0xB432, 0, 0, + 0x523E, 0x4924, 0x3668, 0x3065, 0xB433, 0xB434, 0xB435, 0x463F, +}; +static const unsigned short utf8_to_euc_E58C_x0213[] = { + 0x2E6B, 0x4C68, 0x4677, 0xB37C, 0, 0x4A71, 0x5232, 0x2E6C, + 0x5233, 0, 0xA34C, 0xA34D, 0xB421, 0x5235, 0, 0x5237, + 0x5236, 0xB422, 0, 0xB423, 0, 0x5238, 0x323D, 0x4B4C, + 0xB424, 0x3A7C, 0x5239, 0xB425, 0x2E6D, 0x4159, 0xB427, 0xB428, + 0x3E22, 0x3629, 0, 0x523A, 0xA34E, 0xB429, 0, 0xB42A, + 0xB42B, 0xB42C, 0x485B, 0xB42D, 0xB42E, 0xB42F, 0, 0x523B, + 0xB430, 0x523C, 0xB431, 0x523D, 0, 0xA34F, 0, 0, + 0x523E, 0x4924, 0x3668, 0x3065, 0xB433, 0xB434, 0xA350, 0x463F, +}; +static const unsigned short utf8_to_euc_E58D[] = { + 0x523F, 0x3D3D, 0xB436, 0x4069, 0, 0x5241, 0x5240, 0x3E23, + 0x3861, 0x5243, 0x483E, 0xB438, 0xB437, 0x5244, 0, 0, + 0, 0x485C, 0x4234, 0x426E, 0x3628, 0, 0, 0x466E, + 0x4331, 0xB439, 0x476E, 0xB43A, 0x4B4E, 0, 0x5246, 0, + 0x406A, 0xB43B, 0, 0xB43C, 0, 0xB43D, 0x3735, 0, + 0, 0x5247, 0, 0, 0xB43E, 0xB43F, 0x5248, 0x312C, + 0x3075, 0x346D, 0xB440, 0x4228, 0x3551, 0x4D71, 0, 0x524B, + 0x3237, 0xB441, 0, 0x524A, 0, 0, 0xB442, 0x362A, +}; +static const unsigned short utf8_to_euc_E58D_x0213[] = { + 0x523F, 0x3D3D, 0xA351, 0x4069, 0, 0x5241, 0x5240, 0x3E23, + 0x3861, 0x5243, 0x483E, 0xB438, 0xB437, 0x5244, 0, 0, + 0, 0x485C, 0x4234, 0x426E, 0x3628, 0, 0, 0x466E, + 0x4331, 0xB439, 0x476E, 0xB43A, 0x4B4E, 0, 0x5246, 0, + 0x406A, 0x2E6F, 0, 0x2E70, 0, 0xB43D, 0x3735, 0xA354, + 0, 0x5247, 0, 0, 0xA355, 0xB43F, 0x5248, 0x312C, + 0x3075, 0x346D, 0xB440, 0x4228, 0x3551, 0x4D71, 0, 0x524B, + 0x3237, 0xB441, 0xA356, 0x524A, 0, 0x2E71, 0xB442, 0x362A, +}; +static const unsigned short utf8_to_euc_E58E[] = { + 0, 0, 0x524C, 0xB443, 0x4C71, 0, 0, 0xB444, + 0xB445, 0, 0, 0, 0, 0, 0xB446, 0, + 0, 0, 0, 0xB447, 0xB448, 0, 0x524D, 0, + 0x4E52, 0xB449, 0x387C, 0, 0, 0xB44A, 0, 0x3836, + 0x524E, 0xB44B, 0, 0, 0xB44C, 0x5250, 0x524F, 0, + 0x3F5F, 0x3139, 0xB44D, 0xB44E, 0, 0x315E, 0x5251, 0xB44F, + 0x5252, 0, 0xB450, 0x3837, 0xB451, 0xB452, 0x5253, 0xB453, + 0xB454, 0, 0xB455, 0x356E, 0, 0xB456, 0, 0, +}; +static const unsigned short utf8_to_euc_E58E_x0213[] = { + 0, 0, 0x524C, 0xB443, 0x4C71, 0, 0, 0xB444, + 0xB445, 0, 0, 0, 0, 0, 0xB446, 0, + 0, 0, 0, 0x2E72, 0xB448, 0, 0x524D, 0, + 0x4E52, 0xB449, 0x387C, 0, 0, 0x2E73, 0, 0x3836, + 0x524E, 0xB44B, 0, 0, 0xA357, 0x5250, 0x524F, 0, + 0x3F5F, 0x3139, 0xB44D, 0xB44E, 0, 0x315E, 0x5251, 0xB44F, + 0x5252, 0, 0x2E74, 0x3837, 0xA358, 0xB452, 0x5253, 0xA35A, + 0xB454, 0, 0xB455, 0x356E, 0, 0xB456, 0, 0, +}; +static const unsigned short utf8_to_euc_E58F[] = { + 0xB457, 0, 0x3B32, 0x5254, 0, 0xB458, 0, 0, + 0x4B74, 0x3A35, 0x355A, 0x4D27, 0x4150, 0x483F, 0x3C7D, 0xB459, + 0, 0, 0xB45A, 0xB45B, 0x3D47, 0xB45C, 0x3C68, 0x3C75, + 0, 0x3D76, 0xB45D, 0x4840, 0, 0xB45E, 0xB45F, 0x5257, + 0xB460, 0x3143, 0x4151, 0x387D, 0x3845, 0x3667, 0xB461, 0xB462, + 0x525B, 0x4321, 0x427E, 0x362B, 0x3E24, 0x525C, 0x525A, 0x3244, + 0x4266, 0x3C38, 0x3B4B, 0x3126, 0, 0xB463, 0x3370, 0x3966, + 0x3B4A, 0, 0x525D, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E58F_x0213[] = { + 0xA35B, 0, 0x3B32, 0x5254, 0, 0xB458, 0, 0, + 0x4B74, 0x3A35, 0x355A, 0x4D27, 0x4150, 0x483F, 0x3C7D, 0xB459, + 0, 0, 0xB45A, 0xB45B, 0x3D47, 0xA35F, 0x3C68, 0x3C75, + 0, 0x3D76, 0xA360, 0x4840, 0, 0xB45E, 0xB45F, 0x5257, + 0xB460, 0x3143, 0x4151, 0x387D, 0x3845, 0x3667, 0xB461, 0xB462, + 0x525B, 0x4321, 0x427E, 0x362B, 0x3E24, 0x525C, 0x525A, 0x3244, + 0x4266, 0x3C38, 0x3B4B, 0x3126, 0xA362, 0xA363, 0x3370, 0x3966, + 0x3B4A, 0, 0x525D, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E590[] = { + 0, 0x525E, 0xB464, 0x3549, 0x3346, 0, 0, 0, + 0x3967, 0x3548, 0x445F, 0x3125, 0x4631, 0x4C3E, 0x3921, 0x4D79, + 0x4547, 0x387E, 0, 0xB465, 0, 0, 0, 0, + 0, 0, 0xB466, 0x372F, 0, 0x5267, 0, 0x3663, + 0x4B4A, 0xB467, 0, 0, 0, 0, 0x485D, 0xB468, + 0xB469, 0x5266, 0xB46A, 0x345E, 0x5261, 0x5262, 0x5264, 0xB46B, + 0, 0xB46C, 0, 0, 0xB46D, 0xB46E, 0x5265, 0, + 0x355B, 0x3F61, 0, 0x4A2D, 0x5263, 0x525F, 0x3863, 0, +}; +static const unsigned short utf8_to_euc_E590_x0213[] = { + 0, 0x525E, 0xB464, 0x3549, 0x3346, 0, 0, 0, + 0x3967, 0x3548, 0x445F, 0x3125, 0x4631, 0x4C3E, 0x3921, 0x4D79, + 0x4547, 0x387E, 0x2E75, 0xB465, 0, 0, 0, 0, + 0, 0, 0xB466, 0x372F, 0, 0x5267, 0x4F7E, 0x3663, + 0x4B4A, 0xB467, 0, 0, 0xA365, 0, 0x485D, 0x2E76, + 0xA366, 0x5266, 0xB46A, 0x345E, 0x5261, 0x5262, 0x5264, 0xB46B, + 0, 0xB46C, 0, 0, 0xB46D, 0xB46E, 0x5265, 0, + 0x355B, 0x3F61, 0, 0x4A2D, 0x5263, 0x525F, 0x3863, 0, +}; +static const unsigned short utf8_to_euc_E591[] = { + 0x5260, 0, 0x4F24, 0xB46F, 0xB470, 0, 0x4A72, 0xB471, + 0x4468, 0x3862, 0x3970, 0, 0, 0xB472, 0x5268, 0xB473, + 0, 0x465D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xB474, 0x526C, + 0, 0, 0xB475, 0, 0xB476, 0, 0xB477, 0xB478, + 0x3C7E, 0xB479, 0x3C76, 0xB47A, 0, 0xB47B, 0xB47C, 0, + 0x526F, 0x526D, 0, 0x4C23, 0xB47D, 0x526A, 0x5273, 0x526E, + 0, 0, 0, 0x5271, 0x3846, 0x4C3F, 0, 0xB47E, +}; +static const unsigned short utf8_to_euc_E591_x0213[] = { + 0x5260, 0, 0x4F24, 0xA368, 0xB470, 0, 0x4A72, 0xB471, + 0x4468, 0x3862, 0x3970, 0, 0, 0x2E77, 0x5268, 0xB473, + 0, 0x465D, 0, 0, 0, 0xA364, 0, 0, + 0, 0, 0, 0, 0, 0, 0xB474, 0x526C, + 0, 0, 0xA369, 0, 0xB476, 0, 0xA36A, 0xB478, + 0x3C7E, 0xB479, 0x3C76, 0x2E79, 0xA36B, 0xB47B, 0xB47C, 0, + 0x526F, 0x526D, 0, 0x4C23, 0x2E7A, 0x526A, 0x5273, 0x526E, + 0, 0, 0, 0x5271, 0x3846, 0x4C3F, 0, 0x2E7B, +}; +static const unsigned short utf8_to_euc_E592[] = { + 0x5272, 0xB521, 0, 0xB522, 0x5274, 0xB523, 0x5276, 0, + 0xB524, 0xB525, 0xF435, 0x3A70, 0x4F42, 0xB526, 0x526B, 0x5269, + 0x5275, 0xB527, 0x5270, 0, 0, 0xB528, 0xB529, 0, + 0, 0, 0, 0, 0xB52A, 0, 0, 0xB52B, + 0, 0xB52C, 0x5278, 0, 0x5323, 0x527A, 0xB52D, 0xB52E, + 0x527E, 0xB52F, 0xB530, 0x5321, 0x527B, 0xB531, 0xB532, 0x533E, + 0, 0xB533, 0x3A69, 0x3331, 0, 0, 0, 0xB534, + 0x5279, 0xB535, 0xB536, 0xB537, 0x5325, 0x3076, 0x5324, 0xB538, +}; +static const unsigned short utf8_to_euc_E592_x0213[] = { + 0x5272, 0xB521, 0, 0xB522, 0x5274, 0xB523, 0x5276, 0, + 0x2E7C, 0xB525, 0xA36C, 0x3A70, 0x4F42, 0xA36D, 0x526B, 0x5269, + 0x5275, 0xB527, 0x5270, 0, 0, 0xA36E, 0x2E7D, 0, + 0, 0, 0, 0, 0x2E78, 0, 0, 0xB52B, + 0xA36F, 0x2E7E, 0x5278, 0, 0x5323, 0x527A, 0xA370, 0xB52E, + 0x527E, 0x2F21, 0xB530, 0x5321, 0x527B, 0xA371, 0xA372, 0x533E, + 0, 0xB533, 0x3A69, 0x3331, 0, 0, 0, 0xA373, + 0x5279, 0xB535, 0xA374, 0xB537, 0x5325, 0x3076, 0x5324, 0xA375, +}; +static const unsigned short utf8_to_euc_E593[] = { + 0x3025, 0x494A, 0x5322, 0, 0x527C, 0, 0xB539, 0x5277, + 0x527D, 0x3A48, 0xB53A, 0, 0, 0xB53B, 0xB53C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x5326, 0, 0, 0, 0, 0, 0, 0, + 0xB53D, 0x3077, 0x532F, 0, 0, 0x5327, 0x5328, 0, + 0x3E25, 0x4B69, 0xB53E, 0, 0xB53F, 0x532D, 0x532C, 0xB540, + 0, 0, 0x452F, 0, 0, 0, 0xB541, 0, + 0, 0, 0x532E, 0, 0xB542, 0x532B, 0xB543, 0xB544, +}; +static const unsigned short utf8_to_euc_E593_x0213[] = { + 0x3025, 0x494A, 0x5322, 0xA376, 0x527C, 0, 0x2F22, 0x5277, + 0x527D, 0x3A48, 0xB53A, 0, 0, 0xB53B, 0xB53C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x5326, 0, 0, 0, 0, 0, 0, 0, + 0xB53D, 0x3077, 0x532F, 0, 0, 0x5327, 0x5328, 0, + 0x3E25, 0x4B69, 0xB53E, 0, 0xA378, 0x532D, 0x532C, 0xA379, + 0, 0xA37A, 0x452F, 0xA37B, 0, 0, 0xB541, 0, + 0, 0, 0x532E, 0, 0xB542, 0x532B, 0xB543, 0x2F23, +}; +static const unsigned short utf8_to_euc_E594[] = { + 0xB545, 0xB546, 0, 0, 0x3134, 0xB547, 0x3A36, 0x3F30, + 0xB548, 0xB549, 0, 0, 0xB54A, 0xB54B, 0xB54C, 0x5329, + 0x4562, 0, 0, 0, 0x532A, 0xB54D, 0x3022, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xB54E, 0xB54F, 0, 0, 0x5334, 0x4D23, + 0, 0x3E27, 0xB550, 0x533A, 0, 0xB551, 0xB552, 0, + 0x5339, 0x5330, 0, 0xB553, 0xB554, 0xB555, 0x4243, 0, +}; +static const unsigned short utf8_to_euc_E594_x0213[] = { + 0xA37C, 0xA37D, 0, 0, 0x3134, 0xB547, 0x3A36, 0x3F30, + 0xB548, 0xA37E, 0, 0, 0xB54A, 0xB54B, 0x2F24, 0x5329, + 0x4562, 0, 0, 0, 0x532A, 0xB54D, 0x3022, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xB54E, 0x2F25, 0, 0, 0x5334, 0x4D23, + 0, 0x3E27, 0xB550, 0x533A, 0, 0x2F26, 0xB552, 0, + 0x5339, 0x5330, 0, 0xB553, 0xA421, 0xB555, 0x4243, 0, +}; +static const unsigned short utf8_to_euc_E595[] = { + 0x5331, 0xB556, 0, 0, 0x426F, 0x5336, 0x3E26, 0xB557, + 0, 0xB558, 0xB559, 0, 0x5333, 0xB55A, 0, 0x4C64, + 0xB55B, 0xB55C, 0, 0x373C, 0, 0, 0x5337, 0x5338, + 0xB55D, 0, 0xB55E, 0xB55F, 0x5335, 0x533B, 0xB560, 0, + 0xB561, 0xB562, 0, 0x5332, 0xB563, 0, 0xB564, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x5341, 0x5346, 0, 0x5342, 0xB565, +}; +static const unsigned short utf8_to_euc_E595_x0213[] = { + 0x5331, 0xA422, 0, 0, 0x426F, 0x5336, 0x3E26, 0xA424, + 0, 0xB558, 0xA425, 0, 0x5333, 0xB55A, 0, 0x4C64, + 0x2F27, 0xB55C, 0, 0x373C, 0, 0, 0x5337, 0x5338, + 0xB55D, 0, 0xB55E, 0xB55F, 0x5335, 0x533B, 0x2F28, 0, + 0xA427, 0xA428, 0, 0x5332, 0xA429, 0, 0xB564, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x5341, 0x5346, 0xA42B, 0x5342, 0xB565, +}; +static const unsigned short utf8_to_euc_E596[] = { + 0x533D, 0xB566, 0xB567, 0x5347, 0x4131, 0, 0xB568, 0x5349, + 0xB569, 0x3922, 0x533F, 0x437D, 0, 0, 0xB56A, 0xB56B, + 0, 0xB56C, 0xB56D, 0xB56E, 0xB56F, 0, 0, 0xB570, + 0x5343, 0x533C, 0x342D, 0, 0x346E, 0x3365, 0x5344, 0x5340, + 0, 0, 0, 0xB571, 0xB572, 0, 0, 0x3776, + 0x534A, 0x5348, 0x4153, 0x354A, 0x362C, 0xB573, 0x5345, 0, + 0x3674, 0, 0xB574, 0, 0, 0, 0x3144, 0, + 0, 0, 0, 0, 0, 0, 0, 0xB575, +}; +static const unsigned short utf8_to_euc_E596_x0213[] = { + 0x533D, 0x2F29, 0xA42C, 0x5347, 0x4131, 0, 0x2F2A, 0x5349, + 0xA42D, 0x3922, 0x533F, 0x437D, 0, 0, 0x2F2B, 0xB56B, + 0, 0xA42E, 0xB56D, 0xB56E, 0xB56F, 0, 0, 0xB570, + 0x5343, 0x533C, 0x342D, 0, 0x346E, 0x3365, 0x5344, 0x5340, + 0, 0, 0, 0xB571, 0xB572, 0, 0, 0x3776, + 0x534A, 0x5348, 0x4153, 0x354A, 0x362C, 0x2F2D, 0x5345, 0, + 0x3674, 0, 0xB574, 0, 0, 0, 0x3144, 0, + 0, 0, 0, 0, 0, 0, 0, 0xA433, +}; +static const unsigned short utf8_to_euc_E597[] = { + 0, 0xB576, 0, 0xB577, 0x534E, 0x534C, 0xB578, 0x5427, + 0, 0xB579, 0, 0xB57A, 0xB57B, 0, 0xB57C, 0, + 0, 0xB57D, 0xB57E, 0xB621, 0x5351, 0, 0, 0xB622, + 0xB623, 0, 0x534B, 0xB624, 0x534F, 0, 0xB625, 0x534D, + 0, 0, 0xB626, 0x3B4C, 0x5350, 0, 0, 0, + 0, 0xB627, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xB628, 0x5353, + 0, 0x5358, 0, 0, 0, 0x5356, 0x5355, 0xB629, +}; +static const unsigned short utf8_to_euc_E597_x0213[] = { + 0, 0xB576, 0, 0xB577, 0x534E, 0x534C, 0xB578, 0x5427, + 0, 0xA434, 0, 0xB57A, 0xA435, 0, 0x2F2E, 0, + 0, 0xA436, 0xA430, 0xB621, 0x5351, 0, 0, 0xB622, + 0xB623, 0, 0x534B, 0xB624, 0x534F, 0xA437, 0xB625, 0x534D, + 0, 0, 0xA439, 0x3B4C, 0x5350, 0, 0, 0, + 0, 0xA43B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xB628, 0x5353, + 0, 0x5358, 0, 0, 0, 0x5356, 0x5355, 0xB629, +}; +static const unsigned short utf8_to_euc_E598[] = { + 0, 0, 0, 0, 0, 0xB62A, 0x4332, 0, + 0xB62B, 0x3245, 0xB62C, 0, 0, 0xB62D, 0xB62E, 0xB62F, + 0xB630, 0xB631, 0xB632, 0, 0x5352, 0, 0x5354, 0x3E28, + 0x3133, 0xB633, 0, 0x5357, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x325E, 0, 0, 0xB634, 0, 0, 0x5362, + 0xB635, 0x3E7C, 0x535E, 0xB636, 0x535C, 0xB637, 0x535D, 0xB638, + 0x535F, 0xB639, 0, 0xB63A, 0xB63B, 0xB63C, 0, 0xB63D, +}; +static const unsigned short utf8_to_euc_E598_x0213[] = { + 0, 0, 0, 0, 0, 0xB62A, 0x4332, 0xA43E, + 0x2F30, 0x3245, 0xB62C, 0, 0, 0xB62D, 0x2F31, 0xB62F, + 0xA43F, 0xB631, 0xB632, 0, 0x5352, 0, 0x5354, 0x3E28, + 0x3133, 0xB633, 0, 0x5357, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xA43C, 0x325E, 0, 0, 0xB634, 0, 0, 0x5362, + 0xA440, 0x3E7C, 0x535E, 0xB636, 0x535C, 0xB637, 0x535D, 0xA441, + 0x535F, 0xB639, 0, 0x2F32, 0xB63B, 0xA443, 0, 0xA444, +}; +static const unsigned short utf8_to_euc_E599[] = { + 0xB63E, 0xB63F, 0x313D, 0xB640, 0xB641, 0, 0xB642, 0, + 0, 0xB643, 0, 0xB644, 0x4139, 0xB645, 0x5359, 0xB646, + 0x535A, 0, 0, 0, 0xB647, 0, 0, 0, + 0, 0, 0, 0x337A, 0, 0, 0xB648, 0, + 0xB649, 0xB64A, 0xB64B, 0xB64C, 0x5361, 0, 0xB64D, 0, + 0x346F, 0xB64E, 0x5364, 0x5360, 0x5363, 0xB64F, 0, 0xB650, + 0, 0xB651, 0xB652, 0, 0x4A2E, 0xB653, 0, 0, + 0x4655, 0, 0x4838, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E599_x0213[] = { + 0xA445, 0xB63F, 0x313D, 0xB640, 0xB641, 0, 0xB642, 0xA446, + 0, 0x2F33, 0, 0xB644, 0x4139, 0xB645, 0x5359, 0xB646, + 0x535A, 0, 0, 0x7427, 0xB647, 0, 0, 0, + 0, 0, 0, 0x337A, 0, 0, 0xA447, 0, + 0xA448, 0xB64A, 0xB64B, 0xB64C, 0x5361, 0, 0x2F35, 0, + 0x346F, 0xB64E, 0x5364, 0x5360, 0x5363, 0xA449, 0, 0x2F37, + 0, 0x2F38, 0x2F39, 0, 0x4A2E, 0xB653, 0x2F34, 0, + 0x4655, 0, 0x4838, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E59A[] = { + 0x5366, 0, 0, 0, 0xB654, 0xB655, 0x5365, 0x3345, + 0xB656, 0, 0x5367, 0xB657, 0xB658, 0, 0, 0x536A, + 0, 0, 0, 0, 0x5369, 0xB659, 0, 0, + 0, 0xB65A, 0xB65B, 0, 0, 0xB65C, 0xB65D, 0xB65E, + 0x5368, 0, 0x4739, 0, 0, 0x536B, 0xB65F, 0xB660, + 0xB661, 0xB662, 0, 0xB663, 0xB664, 0xB665, 0x536C, 0, + 0, 0xB666, 0, 0xB667, 0x536E, 0, 0x536D, 0xB668, + 0, 0, 0, 0, 0x5370, 0, 0xB669, 0, +}; +static const unsigned short utf8_to_euc_E59A_x0213[] = { + 0x5366, 0, 0, 0, 0xB654, 0xB655, 0x5365, 0x3345, + 0xA44B, 0, 0x5367, 0xB657, 0xA44C, 0, 0, 0x536A, + 0, 0, 0, 0, 0x5369, 0xA44D, 0, 0, + 0, 0x2F3A, 0xA44E, 0, 0, 0xA44F, 0x2F3B, 0xB65E, + 0x5368, 0, 0x4739, 0, 0, 0x536B, 0xB65F, 0xB660, + 0xA450, 0x2F3C, 0, 0xB663, 0x2F3D, 0xA451, 0x536C, 0, + 0, 0xB666, 0xA452, 0x2F3E, 0x536E, 0, 0x536D, 0xB668, + 0, 0, 0, 0, 0x5370, 0, 0xB669, 0, +}; +static const unsigned short utf8_to_euc_E59B[] = { + 0x5373, 0x5371, 0x536F, 0x5372, 0, 0xB66A, 0, 0, + 0x5374, 0xB66B, 0xB66C, 0xB66D, 0xB670, 0xB671, 0x5375, 0xB66E, + 0xB66F, 0x5376, 0, 0x5377, 0, 0, 0, 0x5378, + 0x5145, 0xB672, 0x3C7C, 0x3B4D, 0xB673, 0xB674, 0x3273, 0xB675, + 0x3078, 0xB676, 0, 0x4344, 0xB677, 0xB678, 0xB679, 0xB67A, + 0xB67B, 0, 0, 0xB67D, 0, 0xB67E, 0x5379, 0, + 0x3A24, 0xB67C, 0x304F, 0x3F5E, 0, 0, 0xB721, 0xB722, + 0, 0x537A, 0x3847, 0, 0, 0x3971, 0, 0x537C, +}; +static const unsigned short utf8_to_euc_E59B_x0213[] = { + 0x5373, 0x5371, 0x536F, 0x5372, 0, 0xA453, 0, 0, + 0x5374, 0x2F3F, 0x2F40, 0xB66D, 0xB670, 0xA454, 0x5375, 0xB66E, + 0xB66F, 0x5376, 0, 0x5377, 0, 0, 0, 0x5378, + 0x5145, 0xB672, 0x3C7C, 0x3B4D, 0xB673, 0xB674, 0x3273, 0xA455, + 0x3078, 0xB676, 0, 0x4344, 0xB677, 0xB678, 0xB679, 0xB67A, + 0xA456, 0, 0, 0xB67D, 0, 0xB67E, 0x5379, 0, + 0x3A24, 0xB67C, 0x304F, 0x3F5E, 0, 0, 0xA457, 0xA458, + 0, 0x537A, 0x3847, 0, 0, 0x3971, 0, 0x537C, +}; +static const unsigned short utf8_to_euc_E59C[] = { + 0x537B, 0xB723, 0xB724, 0x4A60, 0x537D, 0, 0, 0xB725, + 0x5421, 0x537E, 0xB726, 0x5422, 0xB727, 0x5423, 0, 0x3777, + 0, 0xB728, 0x3160, 0x5424, 0, 0xB729, 0x5426, 0, + 0x5425, 0, 0xB72A, 0xB72B, 0x5428, 0xB72C, 0, 0x455A, + 0xB72D, 0, 0xB72E, 0xB72F, 0xB730, 0xB731, 0x5429, 0x3035, + 0x3A5F, 0xB732, 0xB733, 0, 0xB734, 0x373D, 0xB735, 0xB736, + 0x434F, 0, 0, 0xB737, 0xB738, 0, 0, 0x542A, + 0x542B, 0, 0, 0x542D, 0, 0xB739, 0xB73A, 0xB73B, +}; +static const unsigned short utf8_to_euc_E59C_x0213[] = { + 0x537B, 0xB723, 0xB724, 0x4A60, 0x537D, 0, 0, 0xB725, + 0x5421, 0x537E, 0x2F41, 0x5422, 0xB727, 0x5423, 0, 0x3777, + 0, 0xB728, 0x3160, 0x5424, 0, 0xA45A, 0x5426, 0, + 0x5425, 0, 0xB72A, 0xB72B, 0x5428, 0xB72C, 0, 0x455A, + 0xB72D, 0x2F43, 0xB72E, 0xA45B, 0xB730, 0xB731, 0x5429, 0x3035, + 0x3A5F, 0xA45D, 0xB733, 0, 0xB734, 0x373D, 0xB735, 0x2F44, + 0x434F, 0, 0, 0x2F45, 0x2F46, 0, 0, 0x542A, + 0x542B, 0, 0, 0x542D, 0, 0xB739, 0xB73A, 0xB73B, +}; +static const unsigned short utf8_to_euc_E59D[] = { + 0x542E, 0, 0x3A64, 0, 0, 0xB73C, 0xB73D, 0x3651, + 0, 0, 0x4B37, 0, 0xB73E, 0xB73F, 0x542C, 0x542F, + 0x3A41, 0x3923, 0xB740, 0, 0, 0, 0, 0, + 0, 0xF436, 0, 0, 0, 0, 0, 0, + 0, 0x5433, 0xB741, 0, 0x3A25, 0xB742, 0x4333, 0xB743, + 0xB744, 0x5430, 0x445A, 0xB745, 0, 0xB746, 0xB747, 0xB748, + 0xB749, 0xB74A, 0, 0xB74B, 0xB74C, 0xB74D, 0, 0xB74E, + 0, 0xB74F, 0xB750, 0xB751, 0xB752, 0, 0xB753, 0x5434, +}; +static const unsigned short utf8_to_euc_E59D_x0213[] = { + 0x542E, 0, 0x3A64, 0, 0, 0xA45F, 0xA460, 0x3651, + 0, 0, 0x4B37, 0, 0xA461, 0xA462, 0x542C, 0x542F, + 0x3A41, 0x3923, 0xB740, 0, 0, 0, 0, 0, + 0, 0xF436, 0, 0, 0, 0, 0, 0, + 0, 0x5433, 0xB741, 0, 0x3A25, 0xB742, 0x4333, 0xB743, + 0xA464, 0x5430, 0x445A, 0xB745, 0, 0xB746, 0xB747, 0xA465, + 0x2F47, 0xB74A, 0, 0xA466, 0xA467, 0xA468, 0, 0x2F48, + 0, 0xB74F, 0xB750, 0xA469, 0x2F49, 0, 0xB753, 0x5434, +}; +static const unsigned short utf8_to_euc_E59E[] = { + 0, 0xB754, 0x3F62, 0xB755, 0, 0, 0, 0, + 0x5432, 0x5435, 0, 0x373F, 0xB756, 0, 0, 0, + 0, 0, 0, 0x5436, 0xB757, 0xB760, 0, 0xB758, + 0, 0xB759, 0xB75A, 0, 0xB75B, 0xB75C, 0xB75D, 0xB75E, + 0x5437, 0xB75F, 0x3924, 0x3340, 0x5439, 0, 0, 0xB761, + 0xB762, 0xB763, 0x543A, 0, 0xB764, 0, 0, 0, + 0x543B, 0, 0, 0x5438, 0, 0, 0, 0, + 0xB765, 0, 0, 0, 0, 0xB766, 0, 0, +}; +static const unsigned short utf8_to_euc_E59E_x0213[] = { + 0, 0xB754, 0x3F62, 0xB755, 0, 0, 0, 0, + 0x5432, 0x5435, 0, 0x373F, 0xB756, 0, 0, 0, + 0, 0, 0, 0x5436, 0xB757, 0xB760, 0, 0xB758, + 0, 0xB759, 0xA46D, 0, 0x2F4A, 0xA46E, 0xA46F, 0xB75E, + 0x5437, 0xB75F, 0x3924, 0x3340, 0x5439, 0, 0, 0xB761, + 0xA470, 0xB763, 0x543A, 0, 0xA46C, 0, 0, 0, + 0x543B, 0, 0, 0x5438, 0, 0, 0, 0, + 0x2F4D, 0, 0, 0, 0, 0xB766, 0, 0, +}; +static const unsigned short utf8_to_euc_E59F[] = { + 0x5431, 0, 0, 0x543C, 0, 0, 0x543D, 0xB767, + 0xB768, 0, 0, 0x4B64, 0xB769, 0, 0x3E6B, 0xB76A, + 0, 0, 0x543F, 0x5440, 0x543E, 0xB76B, 0x5442, 0, + 0, 0, 0, 0, 0x4738, 0xB76C, 0xB76D, 0x3068, + 0x4956, 0xB77E, 0, 0x5443, 0xB76E, 0, 0xB76F, 0xB770, + 0, 0xB771, 0, 0, 0, 0xB772, 0, 0, + 0xB773, 0, 0, 0, 0x3E7D, 0xB774, 0xB775, 0x3C39, + 0xB776, 0x475D, 0x3470, 0, 0x3A6B, 0xB777, 0xB778, 0xB779, +}; +static const unsigned short utf8_to_euc_E59F_x0213[] = { + 0x5431, 0, 0, 0x543C, 0, 0, 0x543D, 0x2F4E, + 0x2F4F, 0, 0, 0x4B64, 0xA473, 0, 0x3E6B, 0x2F50, + 0, 0, 0x543F, 0x5440, 0x543E, 0xB76B, 0x5442, 0xA471, + 0, 0, 0, 0, 0x4738, 0xB76C, 0xA476, 0x3068, + 0x4956, 0xB77E, 0, 0x5443, 0x2F51, 0, 0xA477, 0xB770, + 0, 0xB771, 0, 0, 0, 0x2F52, 0, 0, + 0xA478, 0, 0, 0, 0x3E7D, 0x2F53, 0x2F54, 0x3C39, + 0xA47A, 0x475D, 0x3470, 0xA47B, 0x3A6B, 0xA47C, 0xB778, 0x2F55, +}; +static const unsigned short utf8_to_euc_E5A0[] = { + 0x4B59, 0, 0x4632, 0xB77A, 0xB77B, 0x3778, 0x424F, 0, + 0xB77C, 0xB77D, 0x5441, 0x5444, 0xB821, 0xB822, 0, 0, + 0, 0, 0, 0, 0, 0x4244, 0, 0, + 0, 0x5445, 0, 0xB823, 0, 0x5446, 0xB824, 0xB825, + 0xB826, 0x5448, 0, 0, 0x4469, 0, 0xB827, 0xB828, + 0, 0, 0x342E, 0, 0, 0xB829, 0, 0x7421, + 0x3161, 0x4A73, 0xB82A, 0, 0x3E6C, 0x4548, 0, 0, + 0, 0xB82B, 0x3A66, 0, 0, 0x544E, 0, 0xB82C, +}; +static const unsigned short utf8_to_euc_E5A0_x0213[] = { + 0x4B59, 0, 0x4632, 0xB77A, 0xA47D, 0x3778, 0x424F, 0, + 0xB77C, 0x2F56, 0x5441, 0x5444, 0xB821, 0xB822, 0, 0, + 0, 0, 0, 0, 0, 0x4244, 0, 0, + 0, 0x5445, 0, 0xB823, 0, 0x5446, 0xA47E, 0xB825, + 0xA521, 0x5448, 0, 0, 0x4469, 0, 0xB827, 0xA522, + 0, 0, 0x342E, 0, 0, 0xB829, 0, 0x7421, + 0x3161, 0x4A73, 0xA523, 0, 0x3E6C, 0x4548, 0, 0, + 0, 0xA524, 0x3A66, 0, 0, 0x544E, 0, 0xB82C, +}; +static const unsigned short utf8_to_euc_E5A1[] = { + 0x4A3D, 0x4E5D, 0, 0, 0, 0, 0, 0, + 0, 0xB82D, 0x3274, 0x544A, 0xB82E, 0xB82F, 0, 0xB830, + 0xB831, 0x413A, 0x544D, 0, 0x4563, 0xB832, 0, 0x4549, + 0x4564, 0x4839, 0x444D, 0, 0, 0, 0x3A49, 0xB833, + 0, 0xB834, 0x5449, 0, 0xB835, 0, 0, 0xB836, + 0xB837, 0x3176, 0, 0x4536, 0, 0, 0, 0, + 0x544B, 0, 0x5447, 0, 0, 0x3F50, 0, 0, + 0xB838, 0x544F, 0, 0, 0xB839, 0, 0x3D4E, 0xB83A, +}; +static const unsigned short utf8_to_euc_E5A1_x0213[] = { + 0x4A3D, 0x4E5D, 0, 0, 0, 0, 0, 0, + 0, 0xA526, 0x3274, 0x544A, 0xA527, 0xB82F, 0, 0xB830, + 0xB831, 0x413A, 0x544D, 0, 0x4563, 0xB832, 0, 0x4549, + 0x4564, 0x4839, 0x444D, 0, 0, 0, 0x3A49, 0xB833, + 0, 0x2F58, 0x5449, 0, 0x2F59, 0, 0, 0xA528, + 0xB837, 0x3176, 0, 0x4536, 0, 0, 0, 0, + 0x544B, 0, 0x5447, 0, 0, 0x3F50, 0, 0, + 0xB838, 0x544F, 0, 0, 0x2F5B, 0, 0x3D4E, 0xB83A, +}; +static const unsigned short utf8_to_euc_E5A2[] = { + 0xB83B, 0xB83C, 0, 0x362D, 0, 0x5450, 0, 0xB83D, + 0xB83E, 0xB83F, 0xB840, 0, 0xB841, 0xB842, 0, 0xB843, + 0xB844, 0, 0, 0x4A68, 0xB845, 0, 0xB846, 0x417D, + 0, 0, 0, 0, 0x4446, 0xB847, 0xF439, 0x5452, + 0xB848, 0xB849, 0xB84A, 0, 0, 0, 0xB84B, 0, + 0x4B4F, 0xB84C, 0, 0x5453, 0, 0, 0x5458, 0, + 0, 0xB84D, 0xB84E, 0x4A2F, 0, 0, 0, 0, + 0x5457, 0x5451, 0x5454, 0x5456, 0xB850, 0, 0x3A26, 0, +}; +static const unsigned short utf8_to_euc_E5A2_x0213[] = { + 0xB83B, 0xB83C, 0, 0x362D, 0, 0x5450, 0, 0xB83D, + 0xB83E, 0x2F5C, 0xA529, 0xA52A, 0xB841, 0xA52B, 0, 0xA52C, + 0xA52D, 0, 0, 0x4A68, 0xA52E, 0, 0xB846, 0x417D, + 0, 0, 0, 0, 0x4446, 0xA52F, 0x2F5D, 0x5452, + 0xB848, 0xB849, 0xB84A, 0, 0, 0, 0xB84B, 0, + 0x4B4F, 0x2F5F, 0xA530, 0x5453, 0, 0, 0x5458, 0, + 0, 0xA531, 0xB84E, 0x4A2F, 0, 0, 0, 0, + 0x5457, 0x5451, 0x5454, 0x5456, 0xB850, 0, 0x3A26, 0, +}; +static const unsigned short utf8_to_euc_E5A3[] = { + 0, 0x4A49, 0xB851, 0, 0xB84F, 0x5459, 0, 0x4345, + 0xB852, 0, 0x3275, 0, 0x3E6D, 0xB853, 0xB854, 0, + 0xB855, 0x545B, 0xB856, 0x545A, 0xB857, 0x3968, 0xB858, 0x545C, + 0x545E, 0x545D, 0xB859, 0, 0x5460, 0xB85A, 0x5455, 0x5462, + 0, 0xB85B, 0xB85C, 0, 0x5461, 0x545F, 0, 0, + 0, 0xB85D, 0, 0x3B4E, 0x3F51, 0, 0x4154, 0x5463, + 0x403C, 0x306D, 0x4764, 0xB85E, 0, 0, 0, 0x445B, + 0, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468, 0, 0, +}; +static const unsigned short utf8_to_euc_E5A3_x0213[] = { + 0, 0x4A49, 0xB851, 0xA533, 0xB84F, 0x5459, 0, 0x4345, + 0xB852, 0, 0x3275, 0, 0x3E6D, 0xA534, 0x2F62, 0, + 0xB855, 0x545B, 0x2F61, 0x545A, 0x2F63, 0x3968, 0xB858, 0x545C, + 0x545E, 0x545D, 0x2F64, 0, 0x5460, 0xB85A, 0x5455, 0x5462, + 0x2F65, 0xB85B, 0xA535, 0, 0x5461, 0x545F, 0, 0, + 0, 0x2F66, 0, 0x3B4E, 0x3F51, 0, 0x4154, 0x5463, + 0x403C, 0x306D, 0x4764, 0xA536, 0xA537, 0, 0, 0x445B, + 0, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468, 0, 0, +}; +static const unsigned short utf8_to_euc_E5A4[] = { + 0, 0, 0x5469, 0, 0, 0xB85F, 0xB860, 0, + 0, 0x4A51, 0x546A, 0xB861, 0xB862, 0, 0, 0x3246, + 0x546B, 0, 0xB863, 0xB864, 0xB865, 0x4D3C, 0x3330, 0, + 0x5249, 0x3D48, 0x423F, 0x546C, 0x4C6B, 0xB867, 0, 0, + 0, 0xB868, 0x4C34, 0xB869, 0xB86A, 0x546E, 0, 0x4267, + 0xB86B, 0x4537, 0x4240, 0x4957, 0x546F, 0x5470, 0x317B, 0xB86C, + 0xB86D, 0x3C3A, 0x5471, 0xB86E, 0, 0xB86F, 0xB870, 0x3050, + 0x5472, 0, 0, 0, 0, 0, 0x5473, 0xB871, +}; +static const unsigned short utf8_to_euc_E5A4_x0213[] = { + 0, 0, 0x5469, 0, 0, 0xA538, 0xA539, 0, + 0, 0x4A51, 0x546A, 0xA53A, 0x2F67, 0xA53B, 0, 0x3246, + 0x546B, 0, 0xB863, 0xB864, 0xA53C, 0x4D3C, 0x3330, 0, + 0x5249, 0x3D48, 0x423F, 0x546C, 0x4C6B, 0xB867, 0, 0, + 0, 0xB868, 0x4C34, 0xB869, 0xA53D, 0x546E, 0, 0x4267, + 0xB86B, 0x4537, 0x4240, 0x4957, 0x546F, 0x5470, 0x317B, 0xB86C, + 0xB86D, 0x3C3A, 0x5471, 0xB86E, 0, 0xB86F, 0xB870, 0x3050, + 0x5472, 0, 0, 0, 0, 0xA540, 0x5473, 0xB871, +}; +static const unsigned short utf8_to_euc_E5A5[] = { + 0, 0, 0, 0xB872, 0x3162, 0, 0xB873, 0x3471, + 0x4660, 0x4A74, 0, 0, 0, 0, 0x5477, 0x4155, + 0x5476, 0x3740, 0xB874, 0xB875, 0x4B5B, 0x5475, 0, 0x4565, + 0x5479, 0xB876, 0x5478, 0xB877, 0, 0xB878, 0xB879, 0xB87A, + 0x547B, 0xB87B, 0x547A, 0xB87C, 0, 0x317C, 0, 0x547C, + 0x3E29, 0x547E, 0x4325, 0xB87D, 0x547D, 0xB87E, 0x4A33, 0xB921, + 0, 0, 0xB922, 0x3D77, 0x455B, 0xB923, 0xB924, 0, + 0x5521, 0xB925, 0, 0xB926, 0xB927, 0x3925, 0, 0, +}; +static const unsigned short utf8_to_euc_E5A5_x0213[] = { + 0, 0, 0, 0xB872, 0x3162, 0, 0xA542, 0x3471, + 0x4660, 0x4A74, 0, 0, 0, 0, 0x5477, 0x4155, + 0x5476, 0x3740, 0xB874, 0xB875, 0x4B5B, 0x5475, 0, 0x4565, + 0x5479, 0xB876, 0x5478, 0xA545, 0, 0x2F69, 0xB879, 0xA546, + 0x547B, 0xB87B, 0x547A, 0xB87C, 0, 0x317C, 0, 0x547C, + 0x3E29, 0x547E, 0x4325, 0xB87D, 0x547D, 0x2F6A, 0x4A33, 0xB921, + 0, 0, 0xB922, 0x3D77, 0x455B, 0xA548, 0xA549, 0, + 0x5521, 0xB925, 0, 0xB926, 0xA54A, 0x3925, 0, 0, +}; +static const unsigned short utf8_to_euc_E5A6[] = { + 0, 0x5522, 0x4721, 0x485E, 0x4C51, 0, 0, 0, + 0, 0, 0x4725, 0xB928, 0xB929, 0x552B, 0xB92A, 0, + 0, 0, 0xB92B, 0x3538, 0, 0xB92C, 0x4D45, 0xB92D, + 0, 0x4C2F, 0, 0x562C, 0, 0x5523, 0, 0xB92E, + 0, 0, 0, 0x5526, 0xB92F, 0x4245, 0, 0xB930, + 0x4B38, 0, 0, 0, 0x454A, 0xB931, 0xB932, 0xB933, + 0xB934, 0, 0x5527, 0xB935, 0, 0, 0, 0xB936, + 0, 0x4B65, 0xB937, 0x3A4A, 0xB938, 0, 0x3E2A, 0, +}; +static const unsigned short utf8_to_euc_E5A6_x0213[] = { + 0, 0x5522, 0x4721, 0x485E, 0x4C51, 0, 0, 0, + 0, 0, 0x4725, 0x2F6B, 0xB929, 0x552B, 0xB92A, 0, + 0, 0, 0x2F6C, 0x3538, 0, 0xB92C, 0x4D45, 0xB92D, + 0, 0x4C2F, 0, 0x562C, 0, 0x5523, 0, 0xA54B, + 0, 0, 0, 0x5526, 0x2F6D, 0x4245, 0, 0xB930, + 0x4B38, 0, 0, 0, 0x454A, 0xB931, 0xA54C, 0xB933, + 0xB934, 0, 0x5527, 0xB935, 0, 0, 0, 0xB936, + 0, 0x4B65, 0xB937, 0x3A4A, 0xA54D, 0, 0x3E2A, 0, +}; +static const unsigned short utf8_to_euc_E5A7[] = { + 0, 0xB939, 0, 0xB93A, 0xB93B, 0, 0x5528, 0, + 0xB93C, 0x3B50, 0xB93D, 0x3B4F, 0, 0xB93E, 0, 0, + 0x3039, 0x3848, 0xB93F, 0x402B, 0x3051, 0, 0, 0, + 0, 0x552C, 0x552D, 0, 0x552A, 0xB940, 0xB941, 0xB942, + 0, 0, 0, 0xB943, 0xB944, 0x3138, 0x342F, 0xB945, + 0x5529, 0, 0x4C45, 0x4931, 0, 0, 0xB946, 0xB947, + 0, 0xB948, 0xB949, 0, 0xB94A, 0, 0x3028, 0xB94B, + 0, 0, 0, 0x3079, 0, 0, 0, 0x3B51, +}; +static const unsigned short utf8_to_euc_E5A7_x0213[] = { + 0, 0xB939, 0, 0x2F6E, 0xB93B, 0, 0x5528, 0, + 0xA54E, 0x3B50, 0xB93D, 0x3B4F, 0, 0xA54F, 0, 0, + 0x3039, 0x3848, 0x2F6F, 0x402B, 0x3051, 0, 0, 0, + 0, 0x552C, 0x552D, 0, 0x552A, 0x2F70, 0xA550, 0xB942, + 0, 0, 0, 0xA551, 0xA552, 0x3138, 0x342F, 0xA553, + 0x5529, 0, 0x4C45, 0x4931, 0, 0, 0xA554, 0xB947, + 0, 0xB948, 0xB949, 0, 0xB94A, 0, 0x3028, 0xB94B, + 0x7E7A, 0, 0, 0x3079, 0, 0, 0, 0x3B51, +}; +static const unsigned short utf8_to_euc_E5A8[] = { + 0xB94C, 0x3052, 0, 0x3023, 0xB94D, 0, 0, 0, + 0, 0x5532, 0, 0, 0xB94E, 0xB94F, 0xB950, 0, + 0, 0x5530, 0xB951, 0xB952, 0, 0, 0, 0, + 0x4C3C, 0, 0x5533, 0, 0x5531, 0, 0xB953, 0x552F, + 0x3F31, 0, 0, 0xB954, 0xB955, 0x552E, 0, 0xB956, + 0xB957, 0x4A5A, 0xB958, 0, 0, 0xB959, 0, 0x3864, + 0xB95A, 0, 0, 0, 0, 0x5537, 0x5538, 0, + 0, 0, 0, 0, 0x3E2B, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E5A8_x0213[] = { + 0xB94C, 0x3052, 0, 0x3023, 0xB94D, 0, 0, 0, + 0, 0x5532, 0, 0, 0xA558, 0xA559, 0xB950, 0, + 0, 0x5530, 0xB951, 0x2F71, 0, 0, 0, 0xA55A, + 0x4C3C, 0, 0x5533, 0, 0x5531, 0, 0xB953, 0x552F, + 0x3F31, 0, 0, 0x2F72, 0xB955, 0x552E, 0, 0xA55B, + 0xB957, 0x4A5A, 0xB958, 0, 0, 0xA55C, 0, 0x3864, + 0xB95A, 0, 0, 0, 0, 0x5537, 0x5538, 0, + 0, 0, 0, 0, 0x3E2B, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E5A9[] = { + 0x5534, 0x4F2C, 0, 0, 0xB95B, 0xB95C, 0x474C, 0xB95D, + 0xB95E, 0x5536, 0, 0, 0xB95F, 0, 0, 0, + 0xB960, 0, 0, 0, 0, 0xB961, 0, 0, + 0, 0, 0x3A27, 0, 0, 0, 0xB962, 0, + 0, 0, 0x5539, 0xB963, 0, 0xB964, 0x4958, 0xB965, + 0, 0, 0x553A, 0, 0x5535, 0xB966, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xB967, + 0, 0, 0xB968, 0xB969, 0, 0, 0xB96A, 0x4C3B, +}; +static const unsigned short utf8_to_euc_E5A9_x0213[] = { + 0x5534, 0x4F2C, 0, 0, 0xB95B, 0xB95C, 0x474C, 0xB95D, + 0xB95E, 0x5536, 0, 0, 0xB95F, 0, 0, 0, + 0xB960, 0, 0, 0, 0, 0xA55D, 0, 0, + 0, 0, 0x3A27, 0, 0, 0, 0xB962, 0, + 0, 0, 0x5539, 0xB963, 0, 0xA55E, 0x4958, 0x2F73, + 0, 0, 0x553A, 0, 0x5535, 0x2F74, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x2F75, + 0, 0, 0xA55F, 0xB969, 0, 0, 0x2F76, 0x4C3B, +}; +static const unsigned short utf8_to_euc_E5AA[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xB96B, 0, 0, 0, 0, + 0xB96C, 0, 0x475E, 0xB96D, 0, 0, 0xB96E, 0, + 0, 0xB96F, 0x553B, 0x4932, 0xB970, 0, 0xB971, 0xB972, + 0xB973, 0, 0xB974, 0, 0, 0, 0, 0xB975, + 0, 0, 0, 0, 0xB976, 0, 0, 0, + 0, 0xB977, 0xB978, 0xB979, 0, 0xB97A, 0, 0, + 0xB97B, 0, 0xB97C, 0xB97D, 0x553C, 0x5540, 0x553D, 0xB97E, +}; +static const unsigned short utf8_to_euc_E5AA_x0213[] = { + 0, 0, 0, 0, 0x2F77, 0, 0, 0, + 0, 0, 0, 0xA560, 0, 0, 0, 0, + 0xB96C, 0, 0x475E, 0xB96D, 0, 0, 0xB96E, 0, + 0, 0xB96F, 0x553B, 0x4932, 0xA561, 0, 0x2F78, 0xA562, + 0xA563, 0, 0xA564, 0, 0, 0, 0, 0x2F79, + 0, 0, 0, 0, 0xB976, 0, 0, 0, + 0, 0xA565, 0xB978, 0xA566, 0, 0xA567, 0, 0, + 0xB97B, 0, 0xA568, 0xB97D, 0x553C, 0x5540, 0x553D, 0xA569, +}; +static const unsigned short utf8_to_euc_E5AB[] = { + 0, 0x3247, 0x553F, 0, 0xBA21, 0, 0xBA22, 0, + 0xBA23, 0x3C3B, 0, 0x553E, 0x3779, 0, 0, 0xBA24, + 0x554C, 0, 0, 0, 0, 0, 0x5545, 0x5542, + 0, 0, 0xBA25, 0, 0xBA26, 0, 0, 0, + 0xBA27, 0x4364, 0, 0x5541, 0, 0xBA28, 0x5543, 0, + 0, 0x5544, 0xBA29, 0, 0, 0, 0xBA2A, 0, + 0, 0, 0, 0, 0, 0xBA2B, 0xBA2C, 0, + 0, 0, 0x5546, 0x5547, 0, 0xBA2D, 0, 0, +}; +static const unsigned short utf8_to_euc_E5AB_x0213[] = { + 0, 0x3247, 0x553F, 0, 0x2F7A, 0, 0xBA22, 0, + 0xBA23, 0x3C3B, 0, 0x553E, 0x3779, 0, 0, 0xBA24, + 0x554C, 0, 0, 0, 0, 0, 0x5545, 0x5542, + 0, 0, 0xA56A, 0, 0xA56B, 0, 0, 0, + 0xA56C, 0x4364, 0, 0x5541, 0, 0xA56D, 0x5543, 0, + 0, 0x5544, 0xBA29, 0, 0, 0, 0xA56F, 0, + 0xA56E, 0, 0, 0, 0, 0xA570, 0xBA2C, 0, + 0, 0, 0x5546, 0x5547, 0, 0xBA2D, 0, 0, +}; +static const unsigned short utf8_to_euc_E5AC[] = { + 0xBA2E, 0xBA2F, 0, 0, 0, 0, 0, 0, + 0xBA30, 0x3472, 0, 0x5549, 0x5548, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x554A, 0xBA31, + 0, 0xBA33, 0, 0xBA34, 0, 0xBA35, 0, 0, + 0, 0xBA36, 0x3E6E, 0, 0, 0xBA37, 0, 0, + 0, 0, 0x554D, 0, 0x445C, 0xBA38, 0, 0, + 0x3145, 0, 0x554B, 0, 0xBA32, 0, 0x554E, 0, + 0xBA39, 0, 0, 0, 0, 0, 0x554F, 0, +}; +static const unsigned short utf8_to_euc_E5AC_x0213[] = { + 0xA571, 0xBA2F, 0, 0, 0, 0, 0, 0, + 0xA572, 0x3472, 0, 0x5549, 0x5548, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x554A, 0xA573, + 0, 0x2F7C, 0, 0xBA34, 0, 0xBA35, 0, 0, + 0, 0xBA36, 0x3E6E, 0, 0, 0x2F7D, 0, 0, + 0, 0, 0x554D, 0, 0x445C, 0xA575, 0, 0, + 0x3145, 0, 0x554B, 0, 0xA574, 0, 0x554E, 0, + 0xBA39, 0, 0, 0, 0, 0, 0x554F, 0, +}; +static const unsigned short utf8_to_euc_E5AD[] = { + 0x5552, 0xBA3A, 0, 0x5550, 0, 0x5551, 0, 0, + 0, 0, 0, 0xBA3B, 0xBA3C, 0, 0, 0, + 0x3B52, 0x5553, 0xBA3D, 0, 0x3926, 0x5554, 0xBA3E, 0x3B7A, + 0x4238, 0, 0x5555, 0x5556, 0x3B5A, 0x3927, 0xBA3F, 0x4C52, + 0, 0, 0, 0x3528, 0x3849, 0x5557, 0x3358, 0, + 0xBA40, 0x5558, 0, 0x4239, 0, 0, 0xBA41, 0xBA42, + 0x5559, 0x5623, 0, 0x555A, 0, 0x555B, 0, 0, + 0x555C, 0, 0x555E, 0, 0xBA43, 0xBA44, 0xBA45, 0xBA46, +}; +static const unsigned short utf8_to_euc_E5AD_x0213[] = { + 0x5552, 0x4F55, 0, 0x5550, 0, 0x5551, 0, 0, + 0, 0, 0, 0xBA3B, 0xA576, 0, 0, 0, + 0x3B52, 0x5553, 0xA577, 0, 0x3926, 0x5554, 0x4F56, 0x3B7A, + 0x4238, 0, 0x5555, 0x5556, 0x3B5A, 0x3927, 0xBA3F, 0x4C52, + 0, 0, 0, 0x3528, 0x3849, 0x5557, 0x3358, 0, + 0xA578, 0x5558, 0, 0x4239, 0, 0, 0xBA41, 0xA579, + 0x5559, 0x5623, 0, 0x555A, 0, 0x555B, 0, 0, + 0x555C, 0, 0x555E, 0, 0xA57A, 0x4F57, 0xBA45, 0xA57B, +}; +static const unsigned short utf8_to_euc_E5AE[] = { + 0x555F, 0xBA47, 0, 0x5560, 0xBA48, 0x4270, 0xBA49, 0x3127, + 0x3C69, 0x3042, 0xBA4A, 0x4157, 0x3430, 0x3C35, 0xBA4B, 0x3928, + 0xBA4C, 0xBA4D, 0, 0xBA4E, 0xBA4F, 0x4566, 0xBA50, 0x3D21, + 0x3431, 0x4368, 0x446A, 0x3038, 0x3539, 0x4A75, 0, 0x3C42, + 0, 0, 0x3552, 0x406B, 0x3C3C, 0x4D28, 0x5561, 0, + 0xBA51, 0xBA52, 0, 0, 0xBA53, 0xBA54, 0x355C, 0xBA55, + 0x3A4B, 0xBA56, 0xBA57, 0x3332, 0x3163, 0x3E2C, 0x3248, 0xBA58, + 0x5562, 0x4D46, 0xBA59, 0, 0xBA5A, 0, 0, 0x3D49, +}; +static const unsigned short utf8_to_euc_E5AE_x0213[] = { + 0x555F, 0xA57C, 0, 0x5560, 0xA57D, 0x4270, 0xBA49, 0x3127, + 0x3C69, 0x3042, 0xBA4A, 0x4157, 0x3430, 0x3C35, 0xBA4B, 0x3928, + 0xBA4C, 0xBA4D, 0, 0x4F58, 0xBA4F, 0x4566, 0xA821, 0x3D21, + 0x3431, 0x4368, 0x446A, 0x3038, 0x3539, 0x4A75, 0, 0x3C42, + 0, 0, 0x3552, 0x406B, 0x3C3C, 0x4D28, 0x5561, 0, + 0xBA51, 0xBA52, 0, 0, 0xA822, 0xBA54, 0x355C, 0xBA55, + 0x3A4B, 0xBA56, 0xBA57, 0x3332, 0x3163, 0x3E2C, 0x3248, 0xBA58, + 0x5562, 0x4D46, 0xBA59, 0, 0xBA5A, 0, 0, 0x3D49, +}; +static const unsigned short utf8_to_euc_E5AF[] = { + 0xBA5B, 0xBA5C, 0x3C64, 0x5563, 0x3473, 0x4652, 0x4C29, 0x5564, + 0, 0x5565, 0, 0, 0x4959, 0xBA5D, 0, 0xBA5E, + 0x5567, 0, 0x3428, 0x3677, 0x5566, 0, 0xBA5F, 0xBA60, + 0xBA61, 0xBA62, 0xBA63, 0x3432, 0, 0x3F32, 0x556B, 0x3B21, + 0xBA64, 0x3249, 0x556A, 0, 0x5568, 0x556C, 0x5569, 0x472B, + 0x5C4D, 0x3F33, 0, 0x556D, 0xF43A, 0, 0x4E40, 0xBA65, + 0x556E, 0xBA66, 0, 0x5570, 0xBA67, 0x437E, 0x556F, 0, + 0x4023, 0, 0x3B7B, 0, 0, 0xBA68, 0x4250, 0x3C77, +}; +static const unsigned short utf8_to_euc_E5AF_x0213[] = { + 0xA824, 0xBA5C, 0x3C64, 0x5563, 0x3473, 0x4652, 0x4C29, 0x5564, + 0, 0x5565, 0, 0, 0x4959, 0xBA5D, 0xA826, 0xBA5E, + 0x5567, 0, 0x3428, 0x3677, 0x5566, 0, 0xA827, 0xBA60, + 0x4F59, 0xBA62, 0xBA63, 0x3432, 0, 0x3F32, 0x556B, 0x3B21, + 0xBA64, 0x3249, 0x556A, 0, 0x5568, 0x556C, 0x5569, 0x472B, + 0x5C4D, 0x3F33, 0, 0x556D, 0x4F5A, 0, 0x4E40, 0xBA65, + 0x556E, 0xA82A, 0, 0x5570, 0xBA67, 0x437E, 0x556F, 0, + 0x4023, 0, 0x3B7B, 0, 0, 0xA82B, 0x4250, 0x3C77, +}; +static const unsigned short utf8_to_euc_E5B0[] = { + 0, 0x4975, 0x406C, 0, 0x3C4D, 0x5571, 0x3E2D, 0x5572, + 0x5573, 0x3053, 0x423A, 0x3F52, 0xBA69, 0x5574, 0x4633, 0x3E2E, + 0, 0x3E2F, 0, 0x5575, 0, 0, 0x406D, 0xBA6A, + 0, 0, 0x3E30, 0, 0, 0, 0xBA6B, 0xBA6C, + 0x5576, 0, 0x5577, 0xBA6D, 0x4C60, 0, 0xBA6E, 0, + 0x5578, 0xBA6F, 0, 0xBA70, 0xBA71, 0x3646, 0xBA72, 0, + 0xBA73, 0x3D22, 0xBA74, 0, 0, 0xBA75, 0xBA76, 0, + 0x5579, 0x557A, 0x3C5C, 0x3F2C, 0x4674, 0x3F54, 0x4878, 0x4722, +}; +static const unsigned short utf8_to_euc_E5B0_x0213[] = { + 0, 0x4975, 0x406C, 0xA82D, 0x3C4D, 0x5571, 0x3E2D, 0x5572, + 0x5573, 0x3053, 0x423A, 0x3F52, 0xBA69, 0x5574, 0x4633, 0x3E2E, + 0, 0x3E2F, 0x4F5B, 0x5575, 0, 0, 0x406D, 0xBA6A, + 0, 0, 0x3E30, 0, 0, 0, 0x4F5C, 0xBA6C, + 0x5576, 0, 0x5577, 0x4F5D, 0x4C60, 0, 0xBA6E, 0, + 0x5578, 0xA82E, 0, 0x4F5E, 0xBA71, 0x3646, 0xBA72, 0, + 0xA82F, 0x3D22, 0xBA74, 0, 0, 0xBA75, 0xBA76, 0, + 0x5579, 0x557A, 0x3C5C, 0x3F2C, 0x4674, 0x3F54, 0x4878, 0x4722, +}; +static const unsigned short utf8_to_euc_E5B1[] = { + 0x3649, 0x557B, 0, 0, 0, 0x356F, 0x557C, 0, + 0x367E, 0, 0x464F, 0x3230, 0, 0x3B53, 0x557D, 0x5622, + 0x5621, 0x367D, 0, 0x557E, 0, 0x4538, 0, 0, + 0, 0xBA77, 0xBA78, 0, 0xBA79, 0, 0x4230, 0, + 0x454B, 0x3C48, 0xBA7A, 0xBA7B, 0x4158, 0x4D7A, 0, 0xBA7C, + 0xBA7D, 0xBA7E, 0, 0, 0x5624, 0xBB21, 0x5625, 0x4656, + 0xBB22, 0x3B33, 0, 0, 0xBB23, 0xBB24, 0x5627, 0, + 0, 0x5628, 0xBB25, 0xBB26, 0xBB27, 0xBB28, 0, 0, +}; +static const unsigned short utf8_to_euc_E5B1_x0213[] = { + 0x3649, 0x557B, 0, 0, 0, 0x356F, 0x557C, 0, + 0x367E, 0, 0x464F, 0x3230, 0, 0x3B53, 0x557D, 0x5622, + 0x5621, 0x367D, 0, 0x557E, 0, 0x4538, 0, 0, + 0, 0xBA77, 0xBA78, 0x7E7B, 0xBA79, 0, 0x4230, 0xA831, + 0x454B, 0x3C48, 0x4F60, 0xA832, 0x4158, 0x4D7A, 0, 0xA833, + 0xA834, 0xA835, 0, 0, 0x5624, 0xBB21, 0x5625, 0x4656, + 0xA836, 0x3B33, 0, 0, 0xBB23, 0xBB24, 0x5627, 0, + 0, 0x5628, 0x4F64, 0xBB26, 0xA839, 0xBB28, 0, 0, +}; +static const unsigned short utf8_to_euc_E5B2[] = { + 0, 0, 0, 0, 0, 0, 0, 0xBB29, + 0xBB2A, 0, 0xBB2B, 0, 0x5629, 0, 0, 0xBB2C, + 0x3474, 0x562A, 0xBB2D, 0, 0x562B, 0, 0, 0, + 0, 0, 0, 0, 0, 0xBB2E, 0, 0xBB2F, + 0xBB30, 0x322C, 0xBB31, 0xBB32, 0, 0, 0xBB33, 0, + 0x413B, 0x3464, 0xBB34, 0x562D, 0x4C28, 0, 0, 0, + 0, 0x4252, 0xBB35, 0x3359, 0xBB36, 0xBB37, 0x562F, 0x5631, + 0x345F, 0, 0xBB38, 0x562E, 0x5630, 0, 0x5633, 0, +}; +static const unsigned short utf8_to_euc_E5B2_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0xBB29, + 0xA83C, 0, 0xA83D, 0, 0x5629, 0, 0, 0x4F65, + 0x3474, 0x562A, 0xBB2D, 0, 0x562B, 0, 0, 0, + 0, 0, 0, 0, 0, 0xBB2E, 0, 0x4F66, + 0xA841, 0x322C, 0xA842, 0x4F67, 0, 0, 0xA843, 0xA844, + 0x413B, 0x3464, 0x4F68, 0x562D, 0x4C28, 0xA846, 0, 0, + 0, 0x4252, 0xBB35, 0x3359, 0xBB36, 0xA847, 0x562F, 0x5631, + 0x345F, 0, 0x4F69, 0x562E, 0x5630, 0, 0x5633, 0, +}; +static const unsigned short utf8_to_euc_E5B3[] = { + 0, 0, 0, 0, 0, 0x5632, 0, 0x5634, + 0, 0xBB39, 0, 0xBB3A, 0, 0, 0, 0, + 0, 0, 0xBB3B, 0, 0, 0, 0, 0xBB3D, + 0, 0x5635, 0, 0, 0, 0xBB3C, 0, 0, + 0x463D, 0x362E, 0, 0, 0, 0, 0, 0, + 0x3265, 0x5636, 0x563B, 0, 0, 0x5639, 0xBB3E, 0x4A77, + 0x4A76, 0xBB3F, 0xBB40, 0, 0xBB41, 0xF43B, 0x4567, 0, + 0, 0, 0x5638, 0x3D54, 0, 0x5637, 0, 0, +}; +static const unsigned short utf8_to_euc_E5B3_x0213[] = { + 0, 0, 0, 0, 0, 0x5632, 0, 0x5634, + 0, 0xA849, 0, 0x4F6A, 0, 0, 0, 0, + 0x4F6B, 0, 0x4F6C, 0, 0, 0, 0, 0xBB3D, + 0, 0x5635, 0, 0, 0, 0xBB3C, 0, 0, + 0x463D, 0x362E, 0, 0, 0, 0, 0, 0, + 0x3265, 0x5636, 0x563B, 0, 0, 0x5639, 0xBB3E, 0x4A77, + 0x4A76, 0xBB3F, 0xBB40, 0, 0x4F6D, 0xF43B, 0x4567, 0, + 0, 0, 0x5638, 0x3D54, 0, 0x5637, 0, 0, +}; +static const unsigned short utf8_to_euc_E5B4[] = { + 0, 0xBB42, 0, 0, 0, 0, 0xBB43, 0x3F72, + 0, 0, 0, 0x563C, 0, 0xBB44, 0x3A6A, 0, + 0, 0x5642, 0xBB45, 0, 0x5643, 0x563D, 0x3333, 0x563E, + 0x5647, 0x5646, 0x5645, 0x5641, 0, 0, 0, 0x5640, + 0, 0, 0x5644, 0xBB47, 0xBB48, 0, 0xBB49, 0xBB4A, + 0, 0x4A78, 0, 0xBB46, 0, 0, 0, 0, + 0, 0xBB4B, 0, 0, 0xBB4C, 0, 0, 0, + 0, 0xBB4D, 0, 0, 0, 0xBB4E, 0, 0xBB4F, +}; +static const unsigned short utf8_to_euc_E5B4_x0213[] = { + 0, 0xBB42, 0, 0, 0, 0, 0xA84C, 0x3F72, + 0, 0, 0, 0x563C, 0, 0x4F70, 0x3A6A, 0, + 0xA84D, 0x5642, 0xBB45, 0, 0x5643, 0x563D, 0x3333, 0x563E, + 0x5647, 0x5646, 0x5645, 0x5641, 0, 0xA84F, 0, 0x5640, + 0xA850, 0, 0x5644, 0xBB47, 0xA851, 0, 0xA852, 0x4F71, + 0, 0x4A78, 0, 0xA84E, 0, 0, 0, 0, + 0, 0xA853, 0, 0, 0xBB4C, 0, 0, 0, + 0, 0xA854, 0, 0, 0, 0xBB4E, 0, 0xBB4F, +}; +static const unsigned short utf8_to_euc_E5B5[] = { + 0, 0, 0xBB50, 0xBB51, 0, 0, 0xBB52, 0, + 0xBB53, 0, 0xBB57, 0x564B, 0x5648, 0, 0x564A, 0, + 0x4D72, 0xBB55, 0x5649, 0xF43C, 0, 0xBB54, 0, 0, + 0, 0xBB56, 0, 0, 0x563F, 0, 0, 0xBB58, + 0xBB59, 0xBB5A, 0xBB5B, 0, 0xBB5C, 0, 0, 0, + 0, 0x3F73, 0xBB5D, 0, 0x564C, 0xBB5E, 0, 0x3A37, + 0xBB5F, 0, 0, 0x564D, 0, 0, 0x564E, 0, + 0, 0xBB60, 0xBB61, 0, 0, 0, 0xBB62, 0xBB63, +}; +static const unsigned short utf8_to_euc_E5B5_x0213[] = { + 0, 0, 0xA855, 0xBB51, 0, 0, 0x4F73, 0x4F74, + 0xBB53, 0, 0x4F76, 0x564B, 0x5648, 0, 0x564A, 0, + 0x4D72, 0xBB55, 0x5649, 0x4F75, 0, 0xBB54, 0, 0, + 0, 0xBB56, 0, 0, 0x563F, 0, 0, 0xBB58, + 0xBB59, 0xA857, 0xBB5B, 0, 0xBB5C, 0, 0, 0, + 0, 0x3F73, 0xA858, 0, 0x564C, 0x4F77, 0, 0x3A37, + 0xA85A, 0, 0, 0x564D, 0, 0, 0x564E, 0, + 0, 0xBB60, 0xBB61, 0, 0, 0, 0xBB62, 0xBB63, +}; +static const unsigned short utf8_to_euc_E5B6[] = { + 0, 0xBB64, 0x5651, 0xBB65, 0x5650, 0, 0, 0x564F, + 0xBB66, 0, 0xBB67, 0x4568, 0x563A, 0, 0, 0, + 0x5657, 0, 0xBB68, 0xBB69, 0xBB6A, 0xBB6B, 0, 0, + 0, 0xBB6C, 0, 0xBB6D, 0, 0x5653, 0, 0xBB6E, + 0xBB6F, 0, 0x5652, 0, 0, 0, 0, 0xBB70, + 0, 0, 0, 0xBB71, 0x5654, 0, 0x5655, 0, + 0xBB72, 0, 0xE674, 0, 0xBB73, 0, 0, 0x5658, + 0xBB74, 0xBB75, 0x4E66, 0, 0x5659, 0x5656, 0, 0, +}; +static const unsigned short utf8_to_euc_E5B6_x0213[] = { + 0, 0x4F78, 0x5651, 0xBB65, 0x5650, 0, 0, 0x564F, + 0xA85D, 0, 0xBB67, 0x4568, 0x563A, 0, 0, 0, + 0x5657, 0, 0xA85F, 0xBB69, 0xA860, 0xBB6B, 0, 0xA861, + 0, 0xA862, 0, 0xBB6D, 0, 0x5653, 0, 0xBB6E, + 0x4F79, 0, 0x5652, 0, 0x4F7A, 0, 0, 0x4F7B, + 0, 0, 0, 0xBB71, 0x5654, 0, 0x5655, 0, + 0xA863, 0, 0xA864, 0, 0xA865, 0, 0, 0x5658, + 0x4F7C, 0xA867, 0x4E66, 0, 0x5659, 0x5656, 0, 0, +}; +static const unsigned short utf8_to_euc_E5B7[] = { + 0, 0, 0, 0xBB76, 0, 0, 0, 0xBB77, + 0, 0x565A, 0, 0xBB78, 0x3460, 0x565B, 0xBB7A, 0, + 0xBB79, 0, 0x565D, 0x565C, 0, 0, 0x565E, 0, + 0xBB7B, 0xBB7C, 0, 0x565F, 0, 0x406E, 0x3D23, 0, + 0xBB7D, 0x3D64, 0, 0x4163, 0xBB7E, 0x3929, 0x3A38, 0x392A, + 0x3570, 0xBC21, 0, 0x5660, 0, 0, 0x3A39, 0, + 0, 0x384A, 0x5661, 0x4C26, 0x4743, 0x5662, 0, 0x392B, + 0xBC22, 0xBC23, 0, 0x342C, 0, 0x4327, 0x3652, 0, +}; +static const unsigned short utf8_to_euc_E5B7_x0213[] = { + 0, 0, 0, 0xBB76, 0, 0, 0, 0xBB77, + 0, 0x565A, 0, 0x4F7D, 0x3460, 0x565B, 0xBB7A, 0, + 0xBB79, 0xA868, 0x565D, 0x565C, 0, 0, 0x565E, 0xA869, + 0xA86A, 0xBB7C, 0, 0x565F, 0, 0x406E, 0x3D23, 0, + 0xA86B, 0x3D64, 0x7428, 0x4163, 0xA86D, 0x3929, 0x3A38, 0x392A, + 0x3570, 0xA86E, 0, 0x5660, 0, 0, 0x3A39, 0, + 0, 0x384A, 0x5661, 0x4C26, 0x4743, 0x5662, 0, 0x392B, + 0xBC22, 0xBC23, 0, 0x342C, 0, 0x4327, 0x3652, 0, +}; +static const unsigned short utf8_to_euc_E5B8[] = { + 0xBC24, 0, 0x3B54, 0x495B, 0, 0, 0x4841, 0xBC25, + 0, 0, 0, 0x5663, 0x3475, 0xBC26, 0, 0, + 0, 0x5666, 0xBC27, 0, 0xBC28, 0xBC29, 0x4421, 0, + 0xBC2A, 0x5665, 0x5664, 0x5667, 0, 0x446B, 0, 0xBC2B, + 0xBC2C, 0, 0, 0, 0, 0x3F63, 0, 0, + 0xBC2E, 0, 0, 0x3B55, 0, 0x404A, 0xBC2D, 0x4253, + 0x3522, 0, 0xBC2F, 0x4422, 0, 0xBC30, 0x5668, 0x5669, + 0x3E6F, 0, 0, 0, 0, 0x4B39, 0xBC31, 0, +}; +static const unsigned short utf8_to_euc_E5B8_x0213[] = { + 0xA870, 0, 0x3B54, 0x495B, 0, 0, 0x4841, 0xBC25, + 0, 0, 0, 0x5663, 0x3475, 0xBC26, 0, 0, + 0, 0x5666, 0xA872, 0, 0x7429, 0xA873, 0x4421, 0, + 0x742A, 0x5665, 0x5664, 0x5667, 0, 0x446B, 0, 0xA875, + 0xBC2C, 0, 0, 0, 0, 0x3F63, 0, 0, + 0xBC2E, 0, 0, 0x3B55, 0, 0x404A, 0xA876, 0x4253, + 0x3522, 0, 0xBC2F, 0x4422, 0, 0xBC30, 0x5668, 0x5669, + 0x3E6F, 0, 0, 0, 0, 0x4B39, 0xA877, 0, +}; +static const unsigned short utf8_to_euc_E5B9[] = { + 0x566C, 0, 0, 0x566B, 0x566A, 0x497D, 0, 0x5673, + 0, 0xBC34, 0, 0xBC32, 0x4B5A, 0, 0x566D, 0, + 0xBC33, 0xBC35, 0, 0, 0x566F, 0x4B6B, 0xBC36, 0x566E, + 0xBC37, 0, 0, 0xBC38, 0xBC39, 0, 0xBC3A, 0x5670, + 0, 0x4828, 0x5671, 0x4A3E, 0x5672, 0, 0, 0, + 0xBC3B, 0, 0xBC3C, 0xBC3D, 0xBC3E, 0xBC3F, 0xBC40, 0, + 0xBC41, 0, 0x3433, 0x4A3F, 0x472F, 0x5674, 0x5675, 0, + 0x392C, 0x3434, 0x5676, 0x3838, 0x4D44, 0x4D29, 0x3476, 0x5678, +}; +static const unsigned short utf8_to_euc_E5B9_x0213[] = { + 0x566C, 0, 0, 0x566B, 0x566A, 0x497D, 0, 0x5673, + 0, 0xA878, 0, 0xBC32, 0x4B5A, 0, 0x566D, 0, + 0xBC33, 0xBC35, 0, 0, 0x566F, 0x4B6B, 0xA87A, 0x566E, + 0x742B, 0, 0, 0xBC38, 0xBC39, 0, 0x742C, 0x5670, + 0, 0x4828, 0x5671, 0x4A3E, 0x5672, 0, 0, 0, + 0xBC3B, 0, 0xBC3C, 0xA87C, 0xA87D, 0xA87E, 0xAC21, 0, + 0xBC41, 0, 0x3433, 0x4A3F, 0x472F, 0x5674, 0x5675, 0x7E7C, + 0x392C, 0x3434, 0x5676, 0x3838, 0x4D44, 0x4D29, 0x3476, 0x5678, +}; +static const unsigned short utf8_to_euc_E5BA[] = { + 0xBC42, 0x4423, 0, 0x392D, 0x3E31, 0, 0, 0x485F, + 0, 0, 0x3E32, 0xBC43, 0, 0, 0xBC44, 0x3D78, + 0, 0, 0, 0, 0, 0x446C, 0x4A79, 0x4539, + 0, 0, 0x392E, 0, 0x495C, 0, 0, 0, + 0x5679, 0, 0xBC45, 0, 0xBC46, 0xBC47, 0x4559, 0x3A42, + 0xBC48, 0, 0xBC49, 0x384B, 0xBC4A, 0x446D, 0, 0, + 0, 0xBC4B, 0, 0xBC4C, 0, 0x3043, 0x3D6E, 0x392F, + 0x4D47, 0, 0, 0, 0, 0xBC4D, 0xBC4E, 0xBC4F, +}; +static const unsigned short utf8_to_euc_E5BA_x0213[] = { + 0xBC42, 0x4423, 0, 0x392D, 0x3E31, 0, 0, 0x485F, + 0, 0, 0x3E32, 0xBC43, 0, 0, 0xBC44, 0x3D78, + 0, 0, 0, 0, 0, 0x446C, 0x4A79, 0x4539, + 0, 0, 0x392E, 0, 0x495C, 0, 0, 0, + 0x5679, 0, 0xBC45, 0, 0xBC46, 0xAC23, 0x4559, 0x3A42, + 0xBC48, 0, 0xAC24, 0x384B, 0xAC25, 0x446D, 0, 0, + 0, 0xBC4B, 0, 0xBC4C, 0, 0x3043, 0x3D6E, 0x392F, + 0x4D47, 0xAC26, 0, 0, 0, 0xBC4D, 0x742D, 0xAC27, +}; +static const unsigned short utf8_to_euc_E5BB[] = { + 0, 0x567A, 0x567B, 0x4751, 0, 0, 0xBC50, 0, + 0x567C, 0x4E77, 0x4F2D, 0xBC52, 0xBC51, 0, 0xBC53, 0x567E, + 0x567D, 0xBC54, 0xBC55, 0x3347, 0xBC56, 0xBC57, 0x5721, 0, + 0, 0, 0x5724, 0x5725, 0xBC58, 0x5723, 0xBC59, 0x4940, + 0x3E33, 0x5727, 0x5726, 0x5722, 0, 0xBC5A, 0, 0, + 0x5728, 0x5729, 0, 0xBC5B, 0x572A, 0, 0, 0, + 0x572D, 0x572B, 0, 0x572C, 0x572E, 0, 0x3164, 0x446E, + 0x572F, 0, 0x377A, 0x3276, 0x4736, 0, 0x5730, 0x467B, +}; +static const unsigned short utf8_to_euc_E5BB_x0213[] = { + 0, 0x567A, 0x567B, 0x4751, 0, 0, 0xAC28, 0, + 0x567C, 0x4E77, 0x4F2D, 0x742F, 0xBC51, 0, 0xBC53, 0x567E, + 0x567D, 0xBC54, 0xAC29, 0x3347, 0xBC56, 0xBC57, 0x5721, 0, + 0, 0xAC2A, 0x5724, 0x5725, 0xBC58, 0x5723, 0xBC59, 0x4940, + 0x3E33, 0x5727, 0x5726, 0x5722, 0, 0xBC5A, 0, 0, + 0x5728, 0x5729, 0, 0xBC5B, 0x572A, 0, 0, 0, + 0x572D, 0x572B, 0, 0x572C, 0x572E, 0, 0x3164, 0x446E, + 0x572F, 0x7430, 0x377A, 0x3276, 0x4736, 0xAC2C, 0x5730, 0x467B, +}; +static const unsigned short utf8_to_euc_E5BC[] = { + 0, 0x4A5B, 0xBC5C, 0x5731, 0x4F2E, 0, 0xBC5D, 0xBC5E, + 0xBC5F, 0x5732, 0x4A40, 0x5735, 0x5021, 0x5031, 0xBC60, 0x3C30, + 0x4675, 0x5736, 0, 0x355D, 0x4424, 0x307A, 0x5737, 0x4A26, + 0x3930, 0xBC61, 0, 0x4350, 0xBC62, 0xBC63, 0, 0x446F, + 0, 0xBC64, 0xBC65, 0xBC66, 0xBC67, 0x4C6F, 0x3839, 0x384C, + 0xBC68, 0x5738, 0, 0xBC69, 0xBC6A, 0x5739, 0xBC6B, 0x573F, + 0xBC6C, 0x3C65, 0, 0, 0xBC6D, 0x4425, 0xBC6E, 0x362F, + 0x573A, 0, 0, 0xBC6F, 0x492B, 0xBC70, 0x4346, 0xBC71, +}; +static const unsigned short utf8_to_euc_E5BC_x0213[] = { + 0x7431, 0x4A5B, 0x7432, 0x5731, 0x4F2E, 0, 0xBC5D, 0x7433, + 0xAC2D, 0x5732, 0x4A40, 0x5735, 0x5021, 0x5031, 0xAC2E, 0x3C30, + 0x4675, 0x5736, 0, 0x355D, 0x4424, 0x307A, 0x5737, 0x4A26, + 0x3930, 0xBC61, 0, 0x4350, 0xAC2F, 0x7434, 0xAC31, 0x446F, + 0, 0xBC64, 0xBC65, 0x7435, 0xBC67, 0x4C6F, 0x3839, 0x384C, + 0xBC68, 0x5738, 0, 0xBC69, 0xBC6A, 0x5739, 0xBC6B, 0x573F, + 0xBC6C, 0x3C65, 0, 0, 0x7436, 0x4425, 0x7437, 0x362F, + 0x573A, 0, 0, 0xBC6F, 0x492B, 0x7438, 0x4346, 0xBC71, +}; +static const unsigned short utf8_to_euc_E5BD[] = { + 0xBC72, 0x573B, 0, 0, 0xBC73, 0xBC74, 0, 0xBC75, + 0x573C, 0, 0x3630, 0, 0x573D, 0xBC76, 0x573E, 0, + 0xBC77, 0x5740, 0, 0x4576, 0xBC78, 0, 0x5741, 0x5742, + 0xBC79, 0x5743, 0, 0xBC7A, 0x5734, 0x5733, 0, 0, + 0xBC7B, 0x5744, 0x3741, 0xBC7C, 0xBC7D, 0, 0x4927, 0xBC7E, + 0, 0x3A4C, 0x4937, 0x4426, 0x494B, 0x5745, 0, 0xBD21, + 0x3E34, 0x3146, 0xBD22, 0x5746, 0xBD23, 0xBD24, 0, 0x5747, + 0xBD25, 0x4C72, 0xBD26, 0, 0x4860, 0xBD27, 0xBD28, 0x574A, +}; +static const unsigned short utf8_to_euc_E5BD_x0213[] = { + 0x7439, 0x573B, 0, 0, 0xBC73, 0x743A, 0, 0xAC32, + 0x573C, 0, 0x3630, 0, 0x573D, 0xBC76, 0x573E, 0, + 0xBC77, 0x5740, 0, 0x4576, 0x743B, 0, 0x5741, 0x5742, + 0x743C, 0x5743, 0, 0xBC7A, 0x5734, 0x5733, 0, 0, + 0xBC7B, 0x5744, 0x3741, 0xAC33, 0x743D, 0, 0x4927, 0x743E, + 0, 0x3A4C, 0x4937, 0x4426, 0x494B, 0x5745, 0, 0xBD21, + 0x3E34, 0x3146, 0xAC34, 0x5746, 0xBD23, 0xBD24, 0, 0x5747, + 0xBD25, 0x4C72, 0xBD26, 0, 0x4860, 0x743F, 0xAC35, 0x574A, +}; +static const unsigned short utf8_to_euc_E5BE[] = { + 0x317D, 0x402C, 0x5749, 0x5748, 0x3742, 0x4254, 0, 0x574E, + 0x574C, 0xBD29, 0x574B, 0x4E27, 0x3865, 0xBD2A, 0, 0xBD2B, + 0x3D79, 0x574D, 0x454C, 0x3D3E, 0, 0, 0xBD2C, 0x4640, + 0x5751, 0x5750, 0, 0, 0xBD2D, 0xBD2E, 0x574F, 0, + 0x5752, 0x3866, 0xBD2F, 0, 0xBD32, 0, 0, 0xBD30, + 0x5753, 0x497C, 0x3D5B, 0xBD31, 0xBD33, 0x5754, 0x4879, 0xBD34, + 0xBD35, 0xBD36, 0, 0x4641, 0x4427, 0, 0, 0xF43E, + 0xBD37, 0x4530, 0, 0, 0x5755, 0x352B, 0, 0, +}; +static const unsigned short utf8_to_euc_E5BE_x0213[] = { + 0x317D, 0x402C, 0x5749, 0x5748, 0x3742, 0x4254, 0, 0x574E, + 0x574C, 0x7440, 0x574B, 0x4E27, 0x3865, 0xBD2A, 0, 0xAC36, + 0x3D79, 0x574D, 0x454C, 0x3D3E, 0, 0, 0xBD2C, 0x4640, + 0x5751, 0x5750, 0, 0, 0x7441, 0xBD2E, 0x574F, 0, + 0x5752, 0x3866, 0xAC37, 0, 0xAC38, 0, 0, 0x7442, + 0x5753, 0x497C, 0x3D5B, 0xBD31, 0xBD33, 0x5754, 0x4879, 0x7443, + 0xBD35, 0xBD36, 0, 0x4641, 0x4427, 0x7444, 0, 0x7445, + 0xAC39, 0x4530, 0, 0, 0x5755, 0x352B, 0, 0, +}; +static const unsigned short utf8_to_euc_E5BF[] = { + 0, 0, 0, 0x3F34, 0xBD38, 0x492C, 0, 0xBD39, + 0xBD3A, 0xBD3B, 0, 0xBD3C, 0x3477, 0x4726, 0, 0, + 0xBD3D, 0xBD3E, 0xBD3F, 0xBD40, 0xBD41, 0, 0x5756, 0x3B56, + 0x4B3A, 0x4B3B, 0, 0, 0x317E, 0x575B, 0xBD42, 0, + 0x4369, 0xBD43, 0xBD44, 0, 0x5758, 0, 0, 0, + 0xBD45, 0xBD46, 0xBD47, 0x3277, 0xBD48, 0xBD49, 0xBD4A, 0xBD4B, + 0x582D, 0x575A, 0xBD4C, 0xBD4D, 0, 0x4730, 0xBD4E, 0, + 0x5759, 0, 0xBD4F, 0x5757, 0xBD50, 0x397A, 0, 0x575D, +}; +static const unsigned short utf8_to_euc_E5BF_x0213[] = { + 0, 0, 0, 0x3F34, 0xAC3A, 0x492C, 0, 0xAC3C, + 0xBD3A, 0x7446, 0, 0xAC3D, 0x3477, 0x4726, 0, 0, + 0xBD3D, 0xBD3E, 0xAC3E, 0xAC3F, 0xAC40, 0, 0x5756, 0x3B56, + 0x4B3A, 0x4B3B, 0, 0, 0x317E, 0x575B, 0x7447, 0, + 0x4369, 0x7448, 0xAC41, 0, 0x5758, 0, 0, 0, + 0xBD45, 0x7449, 0xBD47, 0x3277, 0xBD48, 0xBD49, 0xAC42, 0xAC43, + 0x582D, 0x575A, 0xBD4C, 0xAC44, 0, 0x4730, 0xBD4E, 0, + 0x5759, 0, 0xBD4F, 0x5757, 0xAC45, 0x397A, 0, 0x575D, +}; +static const unsigned short utf8_to_euc_E680[] = { + 0, 0, 0, 0, 0, 0, 0, 0xBD51, + 0, 0, 0xBD52, 0, 0, 0xBD53, 0x5763, 0x5769, + 0x5761, 0, 0x455C, 0xBD54, 0xBD55, 0x5766, 0x495D, 0xBD56, + 0xBD57, 0x5760, 0xBD58, 0x5765, 0x4E67, 0x3B57, 0, 0xBD59, + 0x4255, 0x575E, 0, 0, 0xBD5A, 0x355E, 0x5768, 0x402D, + 0x3165, 0x5762, 0x3278, 0x5767, 0, 0xBD5B, 0, 0x3631, + 0, 0x5764, 0, 0xBD5C, 0, 0xBD5D, 0, 0, + 0, 0, 0x576A, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E680_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0xBD51, + 0, 0, 0xBD52, 0, 0, 0x744A, 0x5763, 0x5769, + 0x5761, 0, 0x455C, 0xBD54, 0x744B, 0x5766, 0x495D, 0xAC47, + 0x744C, 0x5760, 0xBD58, 0x5765, 0x4E67, 0x3B57, 0, 0xBD59, + 0x4255, 0x575E, 0xAC48, 0, 0xAC49, 0x355E, 0x5768, 0x402D, + 0x3165, 0x5762, 0x3278, 0x5767, 0, 0xBD5B, 0, 0x3631, + 0, 0x5764, 0, 0x744D, 0, 0x744E, 0, 0, + 0, 0, 0x576A, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E681[] = { + 0xBD5E, 0x576C, 0x5776, 0x5774, 0, 0, 0x5771, 0xBD5F, + 0xBD60, 0xBD61, 0x5770, 0x4E78, 0xBD62, 0x5772, 0, 0, + 0x3632, 0xBD63, 0x3931, 0, 0xBD64, 0x3D7A, 0xBD65, 0xBD66, + 0, 0x5779, 0x576B, 0, 0, 0xBD67, 0, 0x576F, + 0x575F, 0xBD68, 0x327A, 0x5773, 0x5775, 0x4351, 0, 0xBD69, + 0x3A28, 0x3238, 0x576D, 0x5778, 0x5777, 0x3633, 0, 0x4229, + 0x3366, 0xBD6A, 0, 0, 0, 0x3743, 0, 0x576E, + 0, 0, 0, 0, 0, 0, 0xBD6B, 0xBD6C, +}; +static const unsigned short utf8_to_euc_E681_x0213[] = { + 0xBD5E, 0x576C, 0x5776, 0x5774, 0, 0, 0x5771, 0x744F, + 0xBD60, 0xBD61, 0x5770, 0x4E78, 0xAC4B, 0x5772, 0, 0, + 0x3632, 0xBD63, 0x3931, 0, 0xBD64, 0x3D7A, 0xBD65, 0xBD66, + 0, 0x5779, 0x576B, 0, 0, 0xBD67, 0, 0x576F, + 0x575F, 0xBD68, 0x327A, 0x5773, 0x5775, 0x4351, 0, 0xBD69, + 0x3A28, 0x3238, 0x576D, 0x5778, 0x5777, 0x3633, 0, 0x4229, + 0x3366, 0xBD6A, 0, 0, 0, 0x3743, 0, 0x576E, + 0, 0, 0, 0, 0, 0, 0xBD6B, 0xAC4C, +}; +static const unsigned short utf8_to_euc_E682[] = { + 0, 0x577A, 0xBD6D, 0x577D, 0x5821, 0xF43F, 0xBD6E, 0, + 0xBD6F, 0x3C3D, 0xBD70, 0x5827, 0x4470, 0x577B, 0xBD71, 0, + 0, 0xBD72, 0x5825, 0xBD73, 0x3279, 0xBD74, 0x5823, 0x5824, + 0xBD75, 0, 0x577E, 0x5822, 0, 0xBD76, 0xBD77, 0x3867, + 0x4D2A, 0, 0xBD78, 0x3435, 0xBD79, 0xBD7A, 0x3159, 0x5826, + 0xBD7B, 0x473A, 0x302D, 0, 0, 0, 0, 0, + 0xBD7C, 0xBD7D, 0x4861, 0x575C, 0x582C, 0x5830, 0x4C65, 0xBD7E, + 0x5829, 0, 0, 0xBE21, 0x4569, 0x582E, 0xBE22, 0, +}; +static const unsigned short utf8_to_euc_E682_x0213[] = { + 0, 0x577A, 0xBD6D, 0x577D, 0x5821, 0xF43F, 0xBD6E, 0, + 0xBD6F, 0x3C3D, 0xAC4D, 0x5827, 0x4470, 0x577B, 0xBD71, 0, + 0, 0xBD72, 0x5825, 0xBD73, 0x3279, 0xAC4E, 0x5823, 0x5824, + 0xBD75, 0, 0x577E, 0x5822, 0, 0x7451, 0x7452, 0x3867, + 0x4D2A, 0, 0xBD78, 0x3435, 0xBD79, 0xBD7A, 0x3159, 0x5826, + 0xAC4F, 0x473A, 0x302D, 0, 0, 0, 0, 0, + 0xAC51, 0xAC52, 0x4861, 0x575C, 0x582C, 0x5830, 0x4C65, 0xBD7E, + 0x5829, 0, 0, 0xBE21, 0x4569, 0x582E, 0xAC53, 0, +}; +static const unsigned short utf8_to_euc_E683[] = { + 0, 0, 0xBE23, 0, 0xBE24, 0x3E70, 0x582F, 0x4657, + 0xBE25, 0xBE26, 0xBE27, 0xBE28, 0, 0, 0xBE29, 0xBE2A, + 0, 0x4F47, 0, 0x582B, 0xBE2B, 0xBE2C, 0, 0, + 0x5831, 0xBE2D, 0x397B, 0xBE2E, 0x404B, 0xBE2F, 0xBE30, 0x3054, + 0x582A, 0x5828, 0xBE31, 0x415A, 0, 0xBE32, 0, 0x577C, + 0x3B34, 0, 0, 0, 0, 0, 0, 0, + 0x4246, 0x583D, 0xBE33, 0x415B, 0x5838, 0xBE34, 0x5835, 0x5836, + 0xBE35, 0x3C66, 0x5839, 0x583C, 0xBE36, 0xBE37, 0, 0, +}; +static const unsigned short utf8_to_euc_E683_x0213[] = { + 0, 0, 0xBE23, 0, 0xBE24, 0x3E70, 0x582F, 0x4657, + 0xAC54, 0xBE26, 0xBE27, 0x7453, 0, 0, 0xBE29, 0xBE2A, + 0, 0x4F47, 0, 0x582B, 0x7454, 0x7455, 0, 0, + 0x5831, 0xAC55, 0x397B, 0xAC56, 0x404B, 0x7456, 0xBE30, 0x3054, + 0x582A, 0x5828, 0xBE31, 0x415A, 0, 0xBE32, 0, 0x577C, + 0x3B34, 0, 0, 0, 0, 0, 0xAC57, 0, + 0x4246, 0x583D, 0xAC58, 0x415B, 0x5838, 0xAC59, 0x5835, 0x5836, + 0x7457, 0x3C66, 0x5839, 0x583C, 0xBE36, 0xBE37, 0, 0, +}; +static const unsigned short utf8_to_euc_E684[] = { + 0x5837, 0x3D25, 0xBE38, 0x583A, 0, 0, 0x5834, 0xBE39, + 0x4C7C, 0x4C7B, 0xBE3A, 0, 0xBE3B, 0x583E, 0x583F, 0x3055, + 0xBE3C, 0xBE3D, 0xBE3E, 0xBE3F, 0xBE40, 0x5833, 0xBE41, 0xBE42, + 0, 0xBE43, 0x3672, 0x3026, 0xBE44, 0, 0xBE45, 0x3436, + 0xF440, 0x583B, 0xBE46, 0, 0, 0, 0, 0x5843, + 0x5842, 0, 0xBE47, 0xBE48, 0x5847, 0, 0, 0, + 0xBE49, 0xBE4A, 0, 0, 0x5848, 0xBE4B, 0xBE4C, 0xBE4D, + 0, 0xBE4E, 0, 0, 0x5846, 0x5849, 0x5841, 0x5845, +}; +static const unsigned short utf8_to_euc_E684_x0213[] = { + 0x5837, 0x3D25, 0xBE38, 0x583A, 0, 0, 0x5834, 0xBE39, + 0x4C7C, 0x4C7B, 0xBE3A, 0, 0xBE3B, 0x583E, 0x583F, 0x3055, + 0xAC5A, 0xBE3D, 0xAC5B, 0xAC5C, 0xBE40, 0x5833, 0xBE41, 0xBE42, + 0, 0xAC5D, 0x3672, 0x3026, 0x7458, 0, 0xAC5E, 0x3436, + 0xF440, 0x583B, 0xBE46, 0, 0, 0, 0, 0x5843, + 0x5842, 0, 0xBE47, 0x7459, 0x5847, 0, 0, 0, + 0x745A, 0xBE4A, 0, 0, 0x5848, 0xBE4B, 0xBE4C, 0x745B, + 0, 0xBE4E, 0xAC5F, 0, 0x5846, 0x5849, 0x5841, 0x5845, +}; +static const unsigned short utf8_to_euc_E685[] = { + 0, 0xBE4F, 0x584A, 0, 0x584B, 0xBE50, 0xBE51, 0x5840, + 0x3B7C, 0xBE52, 0x5844, 0x4256, 0x3932, 0x5832, 0x3F35, 0, + 0, 0, 0, 0x5858, 0, 0x4A69, 0, 0, + 0x584E, 0x584F, 0x5850, 0, 0, 0x5857, 0xBE53, 0x5856, + 0xBE54, 0, 0x4B7D, 0x3437, 0, 0x5854, 0, 0x3745, + 0x3334, 0, 0, 0x5851, 0xBE55, 0, 0x4E38, 0x5853, + 0x3056, 0x5855, 0xBE56, 0x584C, 0x5852, 0x5859, 0x3744, 0x584D, + 0xBE57, 0, 0, 0xBE58, 0xBE59, 0, 0x4D5D, 0xBE5A, +}; +static const unsigned short utf8_to_euc_E685_x0213[] = { + 0, 0xAC61, 0x584A, 0, 0x584B, 0xBE50, 0xAC62, 0x5840, + 0x3B7C, 0xBE52, 0x5844, 0x4256, 0x3932, 0x5832, 0x3F35, 0, + 0, 0, 0, 0x5858, 0, 0x4A69, 0, 0, + 0x584E, 0x584F, 0x5850, 0, 0, 0x5857, 0xBE53, 0x5856, + 0xAC63, 0, 0x4B7D, 0x3437, 0, 0x5854, 0, 0x3745, + 0x3334, 0, 0, 0x5851, 0xBE55, 0, 0x4E38, 0x5853, + 0x3056, 0x5855, 0xBE56, 0x584C, 0x5852, 0x5859, 0x3744, 0x584D, + 0xBE57, 0, 0, 0xBE58, 0xAC64, 0, 0x4D5D, 0xBE5A, +}; +static const unsigned short utf8_to_euc_E686[] = { + 0xBE5B, 0xBE5C, 0x4D2B, 0xBE5D, 0xBE5E, 0, 0, 0x585C, + 0, 0, 0x5860, 0xBE5F, 0, 0xBE60, 0x417E, 0, + 0x4E79, 0x5861, 0xBE61, 0xBE62, 0x585E, 0, 0x585B, 0xBE63, + 0xBE64, 0x585A, 0x585F, 0, 0xBE65, 0xBE66, 0, 0xBE67, + 0xBE68, 0, 0, 0, 0x4A30, 0xBE69, 0, 0x4634, + 0xBE6A, 0x3746, 0xBE6B, 0x5862, 0x585D, 0xBE6C, 0x5863, 0, + 0, 0, 0x377B, 0, 0, 0, 0x3231, 0, + 0xBE6D, 0xBE6E, 0x586B, 0, 0xBE6F, 0, 0x3438, 0, +}; +static const unsigned short utf8_to_euc_E686_x0213[] = { + 0xBE5B, 0xBE5C, 0x4D2B, 0xBE5D, 0xBE5E, 0, 0, 0x585C, + 0, 0, 0x5860, 0xBE5F, 0, 0x745D, 0x417E, 0, + 0x4E79, 0x5861, 0xAC66, 0xAC67, 0x585E, 0, 0x585B, 0xAC68, + 0xAC69, 0x585A, 0x585F, 0, 0xBE65, 0xBE66, 0, 0xBE67, + 0xBE68, 0, 0, 0, 0x4A30, 0xAC6A, 0, 0x4634, + 0xAC6B, 0x3746, 0xBE6B, 0x5862, 0x585D, 0xAC6C, 0x5863, 0, + 0, 0, 0x377B, 0, 0, 0, 0x3231, 0, + 0xBE6D, 0x7460, 0x586B, 0, 0x745F, 0, 0x3438, 0, +}; +static const unsigned short utf8_to_euc_E687[] = { + 0xBE70, 0xBE71, 0xBE72, 0x5869, 0, 0, 0x586A, 0x3A29, + 0x5868, 0x5866, 0x5865, 0x586C, 0x5864, 0x586E, 0xBE73, 0xBE74, + 0x327B, 0, 0, 0, 0, 0xBE75, 0, 0, + 0, 0, 0, 0, 0xBE76, 0xBE77, 0xBE78, 0xBE79, + 0, 0xBE7A, 0xBE7B, 0x5870, 0, 0xBE7E, 0x586F, 0xBE7C, + 0, 0xBE7D, 0, 0, 0xBF21, 0xBF22, 0, 0xBF23, + 0, 0, 0x4428, 0, 0x5873, 0, 0x5871, 0x5867, + 0x377C, 0, 0x5872, 0, 0x5876, 0x5875, 0x5877, 0x5874, +}; +static const unsigned short utf8_to_euc_E687_x0213[] = { + 0xBE70, 0xBE71, 0xBE72, 0x5869, 0, 0, 0x586A, 0x3A29, + 0x5868, 0x5866, 0x5865, 0x586C, 0x5864, 0x586E, 0xBE73, 0xBE74, + 0x327B, 0, 0, 0, 0, 0xAC6E, 0, 0, + 0, 0, 0, 0, 0xBE76, 0xAC6F, 0xBE78, 0xAC70, + 0, 0xBE7A, 0xBE7B, 0x5870, 0, 0xBE7E, 0x586F, 0xBE7C, + 0, 0xBE7D, 0, 0, 0xBF21, 0xBF22, 0, 0xBF23, + 0, 0, 0x4428, 0, 0x5873, 0xAC71, 0x5871, 0x5867, + 0x377C, 0, 0x5872, 0, 0x5876, 0x5875, 0x5877, 0x5874, +}; +static const unsigned short utf8_to_euc_E688[] = { + 0x5878, 0xBF24, 0, 0xBF25, 0xBF26, 0, 0, 0xBF27, + 0x5879, 0x587A, 0x4A6A, 0, 0x587C, 0x587B, 0x3D3F, 0, + 0x402E, 0x3266, 0x327C, 0xBF28, 0x587D, 0xBF29, 0x303F, 0, + 0, 0, 0x404C, 0x587E, 0xBF2A, 0x6C43, 0x5921, 0x3761, + 0xBF2B, 0x5922, 0xBF2C, 0xBF2D, 0, 0, 0x406F, 0xBF2E, + 0, 0xBF2F, 0x5923, 0xBF30, 0, 0, 0x5924, 0x353A, + 0x5925, 0, 0x5926, 0x5927, 0x4257, 0, 0, 0, + 0x384D, 0xBF31, 0, 0x4C61, 0, 0xBF32, 0, 0x4B3C, +}; +static const unsigned short utf8_to_euc_E688_x0213[] = { + 0x5878, 0xBF24, 0, 0xBF25, 0xBF26, 0, 0, 0xBF27, + 0x5879, 0x587A, 0x4A6A, 0, 0x587C, 0x587B, 0x3D3F, 0, + 0x402E, 0x3266, 0x327C, 0xBF28, 0x587D, 0xAC73, 0x303F, 0, + 0, 0, 0x404C, 0x587E, 0xBF2A, 0x6C43, 0x5921, 0x3761, + 0xBF2B, 0x5922, 0x7462, 0xAC74, 0, 0, 0x406F, 0xBF2E, + 0, 0xAC75, 0x5923, 0xBF30, 0, 0, 0x5924, 0x353A, + 0x5925, 0, 0x5926, 0x5927, 0x4257, 0, 0, 0, + 0x384D, 0xBF31, 0, 0x4C61, 0, 0xBF32, 0x7463, 0x4B3C, +}; +static const unsigned short utf8_to_euc_E689[] = { + 0x3D6A, 0x5928, 0xBF33, 0xBF34, 0xBF35, 0, 0xBF36, 0x4070, + 0x6E3D, 0x4862, 0, 0x3C6A, 0xBF37, 0x3A4D, 0x5929, 0, + 0xBF38, 0xBF39, 0xBF3A, 0x4247, 0xBF3B, 0x4A27, 0xBF3C, 0, + 0x4271, 0, 0xBF3D, 0x592C, 0xBF3E, 0, 0x592A, 0, + 0x592D, 0, 0, 0x592B, 0xBF3F, 0, 0, 0, + 0x592E, 0, 0, 0, 0, 0xBF40, 0x4A31, 0xBF41, + 0, 0x3037, 0, 0xBF42, 0, 0, 0x495E, 0, + 0, 0x4863, 0xBF43, 0, 0x592F, 0xBF44, 0x5932, 0x3E35, +}; +static const unsigned short utf8_to_euc_E689_x0213[] = { + 0x3D6A, 0x5928, 0xBF33, 0x7464, 0xBF35, 0, 0xAC76, 0x4070, + 0x6E3D, 0x4862, 0, 0x3C6A, 0xAC77, 0x3A4D, 0x5929, 0, + 0xBF38, 0xAC78, 0xAC79, 0x4247, 0xBF3B, 0x4A27, 0x7465, 0, + 0x4271, 0, 0x7466, 0x592C, 0xBF3E, 0, 0x592A, 0, + 0x592D, 0xAC7A, 0, 0x592B, 0xAC7B, 0, 0, 0, + 0x592E, 0, 0, 0, 0, 0xAC7D, 0x4A31, 0x7467, + 0, 0x3037, 0, 0xAC7E, 0, 0, 0x495E, 0, + 0, 0x4863, 0xBF43, 0xAC7C, 0x592F, 0xBF44, 0x5932, 0x3E35, +}; +static const unsigned short utf8_to_euc_E68A[] = { + 0x353B, 0, 0x5930, 0x5937, 0x3E36, 0, 0, 0, + 0, 0x5931, 0x4744, 0, 0, 0xBF45, 0xBF46, 0xBF47, + 0xBF48, 0x4D5E, 0x5933, 0x5934, 0x5938, 0x456A, 0x5935, 0x3933, + 0x405E, 0, 0, 0x5946, 0x4834, 0, 0x4272, 0, + 0, 0, 0, 0, 0, 0, 0xBF49, 0, + 0xBF4A, 0, 0, 0x4864, 0x5A2D, 0, 0, 0, + 0, 0x4A7A, 0, 0xBF4B, 0, 0x4471, 0xBF4C, 0xBF4D, + 0, 0x4B75, 0xBF4E, 0x593B, 0x3221, 0x436A, 0xBF4F, 0xBF50, +}; +static const unsigned short utf8_to_euc_E68A_x0213[] = { + 0x353B, 0, 0x5930, 0x5937, 0x3E36, 0x7468, 0, 0, + 0, 0x5931, 0x4744, 0, 0, 0xBF45, 0xBF46, 0xBF47, + 0xBF48, 0x4D5E, 0x5933, 0x5934, 0x5938, 0x456A, 0x5935, 0x3933, + 0x405E, 0xAD21, 0, 0x5946, 0x4834, 0, 0x4272, 0, + 0, 0, 0, 0, 0, 0, 0xAD22, 0, + 0xBF4A, 0, 0, 0x4864, 0x5A2D, 0, 0, 0, + 0, 0x4A7A, 0, 0xBF4B, 0, 0x4471, 0xBF4C, 0xBF4D, + 0, 0x4B75, 0xBF4E, 0x593B, 0x3221, 0x436A, 0xBF4F, 0xBF50, +}; +static const unsigned short utf8_to_euc_E68B[] = { + 0, 0, 0x5944, 0, 0xBF51, 0x4334, 0x593E, 0x5945, + 0x5940, 0x5947, 0x5943, 0, 0x5942, 0x476F, 0xBF52, 0x593C, + 0x327D, 0x593A, 0x3571, 0x4273, 0x5936, 0xBF53, 0xBF54, 0x5939, + 0x3934, 0x405B, 0xBF55, 0x3E37, 0x5941, 0x4752, 0, 0, + 0x3572, 0x3348, 0, 0, 0, 0, 0, 0, + 0, 0, 0xBF56, 0, 0x3367, 0x3F21, 0x5949, 0x594E, + 0, 0x594A, 0xBF57, 0x377D, 0xBF58, 0x594F, 0x3B22, 0x3969, + 0, 0, 0, 0, 0xBF59, 0xBF5A, 0x3D26, 0x593D, +}; +static const unsigned short utf8_to_euc_E68B_x0213[] = { + 0, 0, 0x5944, 0, 0x7469, 0x4334, 0x593E, 0x5945, + 0x5940, 0x5947, 0x5943, 0, 0x5942, 0x476F, 0xBF52, 0x593C, + 0x327D, 0x593A, 0x3571, 0x4273, 0x5936, 0xAD23, 0x746A, 0x5939, + 0x3934, 0x405B, 0xBF55, 0x3E37, 0x5941, 0x4752, 0, 0, + 0x3572, 0x3348, 0, 0, 0, 0, 0, 0, + 0, 0, 0xBF56, 0, 0x3367, 0x3F21, 0x5949, 0x594E, + 0, 0x594A, 0xBF57, 0x377D, 0xBF58, 0x594F, 0x3B22, 0x3969, + 0, 0, 0, 0, 0x746B, 0xAD25, 0x3D26, 0x593D, +}; +static const unsigned short utf8_to_euc_E68C[] = { + 0, 0x3B7D, 0x594C, 0xBF5B, 0xBF5C, 0, 0, 0x3B58, + 0x594D, 0x3044, 0xBF5D, 0xBF5E, 0x5948, 0xBF5F, 0, 0, + 0xBF60, 0x4429, 0, 0xBF61, 0, 0, 0xBF62, 0, + 0xBF63, 0x3573, 0, 0, 0, 0, 0, 0x3634, + 0, 0, 0, 0, 0, 0, 0, 0x594B, + 0x3027, 0xBF64, 0xBF65, 0x3A43, 0, 0xBF66, 0, 0x3F36, + 0, 0, 0, 0, 0, 0xBF67, 0xBF68, 0, + 0, 0xBF69, 0x4472, 0, 0xBF6A, 0x4854, 0x5951, 0x415E, +}; +static const unsigned short utf8_to_euc_E68C_x0213[] = { + 0, 0x3B7D, 0x594C, 0xAD26, 0xBF5C, 0, 0, 0x3B58, + 0x594D, 0x3044, 0x746C, 0xBF5E, 0x5948, 0xAD27, 0, 0, + 0xAD28, 0x4429, 0, 0xBF61, 0, 0, 0xBF62, 0, + 0x746D, 0x3573, 0, 0, 0, 0, 0, 0x3634, + 0, 0, 0, 0, 0, 0, 0, 0x594B, + 0x3027, 0xBF64, 0xBF65, 0x3A43, 0, 0xBF66, 0, 0x3F36, + 0, 0, 0xAD2B, 0, 0, 0xAD2C, 0xBF68, 0, + 0, 0x746E, 0x4472, 0xAD2D, 0xAD2E, 0x4854, 0x5951, 0x415E, +}; +static const unsigned short utf8_to_euc_E68D[] = { + 0, 0xBF6B, 0xBF6C, 0xBF6D, 0xBF6E, 0, 0xBF6F, 0, + 0, 0x422A, 0xBF70, 0xBF71, 0x3B2B, 0x5952, 0xBF72, 0x5954, + 0x5950, 0, 0xBF73, 0xBF74, 0xBF75, 0x4A61, 0, 0x443D, + 0xBF76, 0, 0, 0xBF77, 0x415C, 0, 0, 0, + 0, 0, 0, 0, 0, 0xBF78, 0xBF79, 0x4A7B, + 0x3C4E, 0x5960, 0, 0x595F, 0xBF7A, 0xBF7B, 0x3F78, 0, + 0, 0xBF7C, 0x377E, 0, 0xBF7D, 0xBF7E, 0x5959, 0x3E39, + 0xC021, 0, 0x4668, 0x4731, 0xC022, 0xC023, 0, 0xC024, +}; +static const unsigned short utf8_to_euc_E68D_x0213[] = { + 0, 0xAD2F, 0xBF6C, 0x746F, 0xAD30, 0, 0xBF6F, 0, + 0, 0x422A, 0xBF70, 0xBF71, 0x3B2B, 0x5952, 0xAD31, 0x5954, + 0x5950, 0, 0xBF73, 0xBF74, 0xBF75, 0x4A61, 0, 0x443D, + 0xBF76, 0xAD33, 0, 0xBF77, 0x415C, 0, 0, 0, + 0, 0, 0, 0, 0, 0x7470, 0xBF79, 0x4A7B, + 0x3C4E, 0x5960, 0, 0x595F, 0xAD36, 0xBF7B, 0x3F78, 0, + 0, 0xBF7C, 0x377E, 0, 0xBF7D, 0xBF7E, 0x5959, 0x3E39, + 0xC021, 0, 0x4668, 0x4731, 0x7471, 0xC023, 0, 0xC024, +}; +static const unsigned short utf8_to_euc_E68E[] = { + 0x5957, 0, 0xC025, 0x415D, 0xC026, 0, 0, 0xC027, + 0x3C78, 0x595C, 0xC028, 0, 0x3E38, 0, 0x5956, 0x595B, + 0xC029, 0, 0x4753, 0, 0xC02A, 0xC02B, 0x5955, 0, + 0x3721, 0xC02C, 0xC02D, 0x335D, 0, 0, 0xC02E, 0x595D, + 0x4E2B, 0x3A4E, 0x4335, 0x595A, 0xC02F, 0x405C, 0xC030, 0x3935, + 0x3F64, 0x3166, 0x413C, 0x5958, 0x3545, 0xC031, 0xC032, 0xC033, + 0, 0, 0x3747, 0, 0x444F, 0x595E, 0, 0, + 0, 0, 0, 0x415F, 0, 0xC034, 0x5961, 0, +}; +static const unsigned short utf8_to_euc_E68E_x0213[] = { + 0x5957, 0, 0xC025, 0x415D, 0xAD37, 0, 0, 0xC027, + 0x3C78, 0x595C, 0xC028, 0, 0x3E38, 0, 0x5956, 0x595B, + 0xC029, 0, 0x4753, 0, 0xAD3A, 0xC02B, 0x5955, 0, + 0x3721, 0xAD38, 0xC02D, 0x335D, 0, 0, 0xC02E, 0x595D, + 0x4E2B, 0x3A4E, 0x4335, 0x595A, 0xC02F, 0x405C, 0xC030, 0x3935, + 0x3F64, 0x3166, 0x413C, 0x5958, 0x3545, 0xC031, 0xC032, 0xC033, + 0, 0, 0x3747, 0, 0x444F, 0x595E, 0, 0, + 0, 0, 0, 0x415F, 0, 0xAD3B, 0x5961, 0, +}; +static const unsigned short utf8_to_euc_E68F[] = { + 0x5963, 0xC035, 0, 0x4237, 0x5969, 0xC036, 0x5964, 0, + 0xC037, 0x5966, 0, 0, 0, 0, 0xC038, 0x4941, + 0x4473, 0xC039, 0x5967, 0xC03A, 0xC03B, 0xC03C, 0x4D2C, 0, + 0, 0, 0x4D48, 0x3439, 0xC03D, 0, 0, 0, + 0xC03E, 0x302E, 0, 0x5965, 0, 0xC03F, 0, 0, + 0, 0x5962, 0xC040, 0, 0xC041, 0, 0x3478, 0, + 0, 0, 0xC042, 0xC043, 0x3167, 0xC044, 0x5968, 0, + 0xC045, 0xC046, 0x4D49, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E68F_x0213[] = { + 0x5963, 0xC035, 0, 0x4237, 0x5969, 0xC036, 0x5964, 0, + 0xC037, 0x5966, 0, 0, 0, 0, 0xC038, 0x4941, + 0x4473, 0xC039, 0x5967, 0xC03A, 0xAD3D, 0xAD3E, 0x4D2C, 0, + 0, 0, 0x4D48, 0x3439, 0xAD3F, 0, 0, 0, + 0xAD40, 0x302E, 0, 0x5965, 0, 0x7472, 0, 0, + 0, 0x5962, 0xC040, 0xAD41, 0xAD42, 0x7473, 0x3478, 0, + 0, 0, 0xAD43, 0xC043, 0x3167, 0x7474, 0x5968, 0xAD3C, + 0xC045, 0xC046, 0x4D49, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E690[] = { + 0, 0, 0, 0, 0, 0, 0x596C, 0, + 0, 0xC047, 0xC048, 0, 0, 0x423B, 0, 0x5973, + 0xC049, 0, 0xC04A, 0x596D, 0xC04B, 0, 0x596A, 0x5971, + 0xC04C, 0, 0, 0, 0x5953, 0, 0xC04D, 0, + 0xC04E, 0, 0xC04F, 0, 0xC050, 0xC051, 0x596E, 0, + 0x5972, 0xC052, 0xC053, 0, 0x4842, 0x456B, 0, 0xC054, + 0xC055, 0, 0, 0, 0x596B, 0xC056, 0x596F, 0, + 0, 0, 0x3748, 0, 0, 0xC057, 0x3A71, 0xC058, +}; +static const unsigned short utf8_to_euc_E690_x0213[] = { + 0, 0, 0, 0, 0, 0, 0x596C, 0, + 0, 0xAD44, 0xC048, 0, 0, 0x423B, 0, 0x5973, + 0x7475, 0, 0xC04A, 0x596D, 0x7476, 0, 0x596A, 0x5971, + 0xC04C, 0, 0, 0, 0x5953, 0, 0xAD45, 0, + 0xC04E, 0, 0x7477, 0, 0xC050, 0xAD46, 0x596E, 0, + 0x5972, 0xAD47, 0xC053, 0, 0x4842, 0x456B, 0, 0xAD48, + 0xC055, 0, 0, 0, 0x596B, 0xC056, 0x596F, 0, + 0, 0, 0x3748, 0, 0, 0xC057, 0x3A71, 0xC058, +}; +static const unsigned short utf8_to_euc_E691[] = { + 0, 0, 0x405D, 0, 0, 0, 0, 0, + 0, 0, 0, 0xC059, 0, 0, 0x5977, 0xC05A, + 0, 0xC05B, 0xC05C, 0xC05D, 0xC05E, 0, 0, 0, + 0x4526, 0, 0xC05F, 0xC060, 0xC061, 0xC062, 0, 0xC063, + 0xC064, 0xC065, 0, 0xC066, 0, 0, 0, 0x5974, + 0, 0x4B60, 0, 0, 0, 0xC067, 0, 0x5975, + 0, 0, 0, 0xC068, 0xC069, 0, 0x5976, 0, + 0x4C4E, 0, 0x4022, 0xC06A, 0, 0xC06B, 0, 0, +}; +static const unsigned short utf8_to_euc_E691_x0213[] = { + 0, 0, 0x405D, 0, 0, 0, 0, 0, + 0, 0, 0, 0xC059, 0, 0, 0x5977, 0xC05A, + 0, 0x7479, 0xC05C, 0xC05D, 0xC05E, 0, 0, 0, + 0x4526, 0, 0xAD49, 0xAD4A, 0xC061, 0xAD4B, 0, 0xC063, + 0x747A, 0xC065, 0, 0xC066, 0, 0, 0, 0x5974, + 0, 0x4B60, 0, 0, 0, 0x747B, 0, 0x5975, + 0, 0, 0, 0xAD4C, 0xC069, 0, 0x5976, 0, + 0x4C4E, 0x7478, 0x4022, 0xC06A, 0, 0xAD4D, 0, 0, +}; +static const unsigned short utf8_to_euc_E692[] = { + 0, 0, 0, 0x3762, 0, 0xC06C, 0, 0xC06D, + 0x597D, 0, 0, 0, 0, 0, 0, 0xC06E, + 0xC06F, 0xC070, 0x3B35, 0x597A, 0, 0x5979, 0, 0, + 0xC071, 0xC072, 0x4732, 0xC073, 0, 0xC074, 0x4635, 0xC075, + 0, 0xC076, 0, 0xC077, 0x4531, 0x597B, 0xC078, 0, + 0xC079, 0x597C, 0, 0x496F, 0xC07A, 0x4745, 0x3B23, 0, + 0x4071, 0, 0x4B50, 0xC07B, 0, 0, 0, 0, + 0, 0x3349, 0, 0x5A25, 0x597E, 0xC07C, 0xC07D, 0xC07E, +}; +static const unsigned short utf8_to_euc_E692_x0213[] = { + 0, 0, 0, 0x3762, 0, 0xC06C, 0, 0xAD4E, + 0x597D, 0, 0, 0, 0, 0, 0, 0xC06E, + 0xC06F, 0xAD4F, 0x3B35, 0x597A, 0, 0x5979, 0, 0, + 0xC071, 0xC072, 0x4732, 0xC073, 0, 0xAD50, 0x4635, 0xAD51, + 0, 0xC076, 0, 0xC077, 0x4531, 0x597B, 0xC078, 0, + 0xC079, 0x597C, 0, 0x496F, 0xC07A, 0x4745, 0x3B23, 0, + 0x4071, 0, 0x4B50, 0xC07B, 0, 0, 0, 0, + 0, 0x3349, 0, 0x5A25, 0x597E, 0xC07C, 0x747D, 0x747E, +}; +static const unsigned short utf8_to_euc_E693[] = { + 0, 0x4D4A, 0x5A27, 0, 0xC121, 0x5A23, 0, 0x5A24, + 0, 0xC122, 0xC123, 0xC124, 0xC125, 0x4160, 0xC126, 0, + 0xC127, 0xC128, 0x5A22, 0, 0x593F, 0xC129, 0, 0xC12A, + 0x5A26, 0, 0x5A21, 0, 0, 0, 0, 0, + 0x5A2B, 0x5A2C, 0x4527, 0x5A2E, 0xC12B, 0xC12C, 0x3B24, 0x5A29, + 0, 0xC12D, 0xC12E, 0, 0x353C, 0xC12F, 0, 0x5A2F, + 0xC130, 0x5A28, 0x5A33, 0, 0x5A32, 0xC131, 0x5A31, 0xC132, + 0, 0, 0x5A34, 0xC133, 0, 0x5A36, 0x3E71, 0xC134, +}; +static const unsigned short utf8_to_euc_E693_x0213[] = { + 0, 0x4D4A, 0x5A27, 0, 0x7521, 0x5A23, 0, 0x5A24, + 0, 0xC122, 0x7522, 0xAD52, 0xAD53, 0x4160, 0x747C, 0, + 0x7523, 0xC128, 0x5A22, 0, 0x593F, 0xAD54, 0, 0xAD55, + 0x5A26, 0, 0x5A21, 0, 0, 0, 0, 0, + 0x5A2B, 0x5A2C, 0x4527, 0x5A2E, 0xAD57, 0xAD58, 0x3B24, 0x5A29, + 0, 0xC12D, 0xC12E, 0, 0x353C, 0xC12F, 0, 0x5A2F, + 0xC130, 0x5A28, 0x5A33, 0, 0x5A32, 0xC131, 0x5A31, 0x7524, + 0, 0, 0x5A34, 0x7525, 0, 0x5A36, 0x3E71, 0xAD59, +}; +static const unsigned short utf8_to_euc_E694[] = { + 0x5A35, 0xC135, 0, 0, 0xC136, 0x5A39, 0, 0, + 0xC137, 0xC138, 0xC139, 0, 0, 0, 0, 0xC13A, + 0, 0, 0, 0xC13B, 0xC13C, 0, 0xC13D, 0, + 0x5A37, 0xC13E, 0, 0xC13F, 0x5A38, 0x5970, 0xC140, 0xC141, + 0, 0, 0xC142, 0x5A3B, 0x5A3A, 0, 0xC143, 0, + 0, 0xC144, 0x5978, 0x5A3C, 0x5A30, 0, 0xC145, 0x3B59, + 0, 0xC146, 0, 0, 0x5A3D, 0x5A3E, 0x5A40, 0x5A3F, + 0x5A41, 0x327E, 0xC147, 0x3936, 0xC148, 0xC149, 0x4A7C, 0x402F, +}; +static const unsigned short utf8_to_euc_E694_x0213[] = { + 0x5A35, 0xC135, 0, 0, 0xAD5A, 0x5A39, 0, 0, + 0xC137, 0xC138, 0xC139, 0, 0, 0, 0, 0xAD5C, + 0, 0, 0, 0xC13B, 0xAD5D, 0, 0xAD5E, 0, + 0x5A37, 0xC13E, 0, 0xC13F, 0x5A38, 0x5970, 0xAD60, 0xC141, + 0, 0, 0x7526, 0x5A3B, 0x5A3A, 0, 0xC143, 0, + 0, 0x7527, 0x5978, 0x5A3C, 0x5A30, 0, 0xC145, 0x3B59, + 0, 0xC146, 0xAD61, 0, 0x5A3D, 0x5A3E, 0x5A40, 0x5A3F, + 0x5A41, 0x327E, 0xC147, 0x3936, 0xC148, 0xC149, 0x4A7C, 0x402F, +}; +static const unsigned short utf8_to_euc_E695[] = { + 0, 0, 0, 0xC14A, 0, 0x384E, 0, 0xC14B, + 0x5A43, 0xC14C, 0, 0, 0, 0x5A46, 0xF441, 0x4952, + 0xC14D, 0x355F, 0xC14E, 0, 0xC14F, 0x5A45, 0x5A44, 0x4754, + 0x5A47, 0x3635, 0, 0, 0, 0x5A49, 0x5A48, 0xC150, + 0xC151, 0, 0x343A, 0x3B36, 0, 0, 0x4658, 0xC152, + 0, 0, 0, 0xC153, 0x3749, 0, 0, 0, + 0x3F74, 0, 0x5A4A, 0, 0x4030, 0x4528, 0, 0x495F, + 0x5A4B, 0, 0xC154, 0, 0, 0xC155, 0, 0, +}; +static const unsigned short utf8_to_euc_E695_x0213[] = { + 0, 0, 0, 0xC14A, 0xAD62, 0x384E, 0, 0xC14B, + 0x5A43, 0xC14C, 0, 0, 0, 0x5A46, 0xF441, 0x4952, + 0xC14D, 0x355F, 0xC14E, 0, 0xAD63, 0x5A45, 0x5A44, 0x4754, + 0x5A47, 0x3635, 0, 0, 0, 0x5A49, 0x5A48, 0xC150, + 0xC151, 0, 0x343A, 0x3B36, 0, 0, 0x4658, 0x7529, + 0, 0, 0, 0xAD64, 0x3749, 0, 0, 0, + 0x3F74, 0, 0x5A4A, 0, 0x4030, 0x4528, 0, 0x495F, + 0x5A4B, 0, 0xAD65, 0, 0, 0xC155, 0, 0, +}; +static const unsigned short utf8_to_euc_E696[] = { + 0, 0xC156, 0x5A4C, 0x5A4D, 0, 0xC157, 0, 0x4A38, + 0x555D, 0x4046, 0xC158, 0, 0x494C, 0, 0x3A58, 0, + 0x4865, 0x4843, 0xC159, 0, 0, 0xC15A, 0, 0x454D, + 0xC15B, 0x4E41, 0, 0x5A4F, 0x3C50, 0xC15C, 0, 0x5A50, + 0xC15D, 0x3036, 0, 0xC15E, 0x3654, 0x404D, 0xC15F, 0x4960, + 0, 0, 0, 0x5A51, 0x3B42, 0x4347, 0xC160, 0x3B5B, + 0x3F37, 0, 0xC161, 0xC162, 0xC163, 0, 0, 0x5A52, + 0, 0x4A7D, 0, 0, 0x3177, 0x3B5C, 0, 0xC164, +}; +static const unsigned short utf8_to_euc_E696_x0213[] = { + 0, 0xAD66, 0x5A4C, 0x5A4D, 0xAD67, 0xAD68, 0, 0x4A38, + 0x555D, 0x4046, 0xAD69, 0, 0x494C, 0, 0x3A58, 0, + 0x4865, 0x4843, 0xC159, 0, 0, 0xC15A, 0, 0x454D, + 0xC15B, 0x4E41, 0, 0x5A4F, 0x3C50, 0x752A, 0, 0x5A50, + 0xC15D, 0x3036, 0, 0xC15E, 0x3654, 0x404D, 0xC15F, 0x4960, + 0, 0, 0, 0x5A51, 0x3B42, 0x4347, 0xC160, 0x3B5B, + 0x3F37, 0, 0xAD6A, 0xC162, 0xC163, 0xAD6B, 0, 0x5A52, + 0xAD6C, 0x4A7D, 0, 0, 0x3177, 0x3B5C, 0, 0xAD6D, +}; +static const unsigned short utf8_to_euc_E697[] = { + 0, 0x5A55, 0xC165, 0x5A53, 0x5A56, 0x4E39, 0x5A54, 0, + 0xC166, 0xC167, 0, 0x407B, 0x5A57, 0, 0xC168, 0x4232, + 0xC169, 0, 0x5A58, 0, 0xC16A, 0, 0xC16B, 0x347A, + 0xC16C, 0x5A5A, 0, 0x5A59, 0, 0, 0, 0xC16D, + 0x5A5B, 0x5A5C, 0x347B, 0, 0, 0x467C, 0x4336, 0x356C, + 0x3B5D, 0x4161, 0, 0, 0x3D5C, 0x3030, 0, 0, + 0xC16E, 0x5A5D, 0xC16F, 0, 0xC170, 0xC171, 0, 0, + 0, 0xC172, 0x3222, 0x5A61, 0, 0, 0xC173, 0xC174, +}; +static const unsigned short utf8_to_euc_E697_x0213[] = { + 0, 0x5A55, 0xAD6E, 0x5A53, 0x5A56, 0x4E39, 0x5A54, 0, + 0xC166, 0xAD6F, 0, 0x407B, 0x5A57, 0, 0xC168, 0x4232, + 0xC169, 0, 0x5A58, 0, 0xAD70, 0, 0xC16B, 0x347A, + 0xC16C, 0x5A5A, 0, 0x5A59, 0, 0, 0, 0xC16D, + 0x5A5B, 0x5A5C, 0x347B, 0, 0, 0x467C, 0x4336, 0x356C, + 0x3B5D, 0x4161, 0, 0, 0x3D5C, 0x3030, 0, 0, + 0xC16E, 0x5A5D, 0xAD72, 0, 0xC170, 0xC171, 0, 0, + 0, 0xAD73, 0x3222, 0x5A61, 0xAD74, 0, 0xC173, 0xC174, +}; +static const unsigned short utf8_to_euc_E698[] = { + 0xC175, 0, 0x3937, 0x5A60, 0xC176, 0, 0x3A2B, 0x3E3A, + 0xC177, 0xC178, 0x5A5F, 0, 0x3E3B, 0xC179, 0x4C40, 0x3A2A, + 0, 0xC17A, 0xC17B, 0x3057, 0x404E, 0xC17C, 0xC17D, 0, + 0, 0, 0, 0, 0x5A66, 0xC17E, 0xC221, 0x4031, + 0x3147, 0xC222, 0xC223, 0xC224, 0xC225, 0x3D55, 0xC226, 0x4B66, + 0x3A72, 0xC227, 0xC228, 0xC229, 0xC22A, 0x3E3C, 0xC22B, 0x4027, + 0xC22C, 0xC22D, 0, 0xC22E, 0x5A65, 0x5A63, 0x5A64, 0xC230, + 0, 0xC22F, 0, 0xF442, 0x436B, 0, 0, 0x5B26, +}; +static const unsigned short utf8_to_euc_E698_x0213[] = { + 0x752C, 0, 0x3937, 0x5A60, 0xAD75, 0, 0x3A2B, 0x3E3A, + 0xAD76, 0x752D, 0x5A5F, 0, 0x3E3B, 0xC179, 0x4C40, 0x3A2A, + 0, 0xC17A, 0xC17B, 0x3057, 0x404E, 0x752E, 0xC17D, 0, + 0, 0, 0, 0, 0x5A66, 0xC17E, 0x752F, 0x4031, + 0x3147, 0xAD77, 0x7531, 0xC224, 0x7532, 0x3D55, 0xC226, 0x4B66, + 0x3A72, 0xC227, 0xAD78, 0x7533, 0xC22A, 0x3E3C, 0xC22B, 0x4027, + 0x7534, 0x7535, 0, 0x7536, 0x5A65, 0x5A63, 0x5A64, 0xC230, + 0, 0xC22F, 0x7530, 0xF442, 0x436B, 0, 0, 0x5B26, +}; +static const unsigned short utf8_to_euc_E699[] = { + 0xC231, 0x5A6A, 0x3B7E, 0x3938, 0x5A68, 0xC232, 0xC233, 0, + 0, 0x5A69, 0xC234, 0x3F38, 0xC235, 0, 0xC237, 0x5A67, + 0, 0xC236, 0x3B2F, 0, 0, 0, 0, 0xC238, + 0xC239, 0xC23A, 0, 0xC23B, 0xC23C, 0x5A6C, 0x5A6B, 0x5A70, + 0xC23D, 0xC23E, 0x5A71, 0, 0x5A6D, 0xF443, 0x3322, 0x5A6E, + 0x5A6F, 0x4855, 0xC240, 0xC241, 0xC242, 0, 0x4961, 0x374A, + 0x5A72, 0, 0, 0xC244, 0x4032, 0xC245, 0x3E3D, 0xC247, + 0xC248, 0xC249, 0x4352, 0xC24A, 0xC24C, 0, 0xC243, 0xC246, +}; +static const unsigned short utf8_to_euc_E699_x0213[] = { + 0xC231, 0x5A6A, 0x3B7E, 0x3938, 0x5A68, 0xAD79, 0xC233, 0, + 0x7538, 0x5A69, 0xC234, 0x3F38, 0x7539, 0, 0xAD7B, 0x5A67, + 0, 0xAD7A, 0x3B2F, 0, 0, 0, 0, 0xAD7E, + 0xC239, 0x753B, 0x753C, 0xAE21, 0xC23C, 0x5A6C, 0x5A6B, 0x5A70, + 0xC23D, 0x753D, 0x5A71, 0xAE22, 0x5A6D, 0x753E, 0x3322, 0x5A6E, + 0x5A6F, 0x4855, 0xAE25, 0xAE26, 0xAE27, 0xAE28, 0x4961, 0x374A, + 0x5A72, 0, 0, 0x753F, 0x4032, 0xC245, 0x3E3D, 0x7540, + 0x7541, 0xC249, 0x4352, 0xAE29, 0xC24C, 0, 0xC243, 0xC246, +}; +static const unsigned short utf8_to_euc_E69A[] = { + 0xC24B, 0x3647, 0, 0x5A73, 0x5A77, 0, 0, 0x324B, + 0x5A74, 0x5A76, 0, 0xC24D, 0xC24E, 0xC24F, 0x5A75, 0, + 0xC250, 0x3D6B, 0xC251, 0, 0, 0, 0x4348, 0x3045, + 0x5A78, 0xC252, 0xC253, 0xC254, 0xC255, 0x5A79, 0, 0xC256, + 0xC257, 0, 0x442A, 0, 0xC258, 0, 0x4E71, 0, + 0, 0, 0, 0x3B43, 0, 0xC259, 0x4A6B, 0, + 0, 0xC25A, 0xC25B, 0, 0x4B3D, 0xC25C, 0, 0, + 0x5B22, 0x5A7B, 0, 0xC25D, 0x5A7E, 0, 0x5A7D, 0xC25E, +}; +static const unsigned short utf8_to_euc_E69A_x0213[] = { + 0xAE2A, 0x3647, 0, 0x5A73, 0x5A77, 0, 0, 0x324B, + 0x5A74, 0x5A76, 0, 0xC24D, 0xC24E, 0x7542, 0x5A75, 0, + 0xAE2B, 0x3D6B, 0xAE2C, 0, 0, 0, 0x4348, 0x3045, + 0x5A78, 0xAE2D, 0xC253, 0xC254, 0xC255, 0x5A79, 0, 0xC256, + 0x7544, 0, 0x442A, 0, 0xC258, 0, 0x4E71, 0, + 0, 0, 0, 0x3B43, 0, 0xAE2F, 0x4A6B, 0, + 0, 0xAE30, 0x7545, 0, 0x4B3D, 0xAE31, 0, 0, + 0x5B22, 0x5A7B, 0, 0x7546, 0x5A7E, 0, 0x5A7D, 0xAE33, +}; +static const unsigned short utf8_to_euc_E69B[] = { + 0xC25F, 0x5A7A, 0xC260, 0xC261, 0x5B21, 0, 0, 0x465E, + 0xC262, 0x5A7C, 0, 0, 0xC263, 0, 0xC264, 0xC265, + 0, 0, 0, 0, 0xC266, 0, 0x5B23, 0, + 0, 0x3D6C, 0x5B24, 0xC267, 0x4D4B, 0x4778, 0, 0xC268, + 0x5B25, 0, 0, 0, 0, 0, 0x5B27, 0, + 0xC269, 0x5B28, 0, 0xC26A, 0xC26B, 0, 0xC26C, 0, + 0x5B29, 0, 0x364A, 0x3148, 0x3939, 0x5B2A, 0, 0x5B2B, + 0x3D71, 0x4162, 0xC26D, 0xC23F, 0x5258, 0x413E, 0x413D, 0x4258, +}; +static const unsigned short utf8_to_euc_E69B_x0213[] = { + 0xC25F, 0x5A7A, 0xC260, 0xC261, 0x5B21, 0, 0x7547, 0x465E, + 0x7548, 0x5A7C, 0, 0, 0xC263, 0, 0xC264, 0xC265, + 0, 0, 0, 0, 0xC266, 0, 0x5B23, 0, + 0, 0x3D6C, 0x5B24, 0x754A, 0x4D4B, 0x4778, 0, 0xC268, + 0x5B25, 0, 0, 0, 0, 0, 0x5B27, 0, + 0x754B, 0x5B28, 0, 0xC26A, 0xAE35, 0, 0xC26C, 0, + 0x5B29, 0, 0x364A, 0x3148, 0x3939, 0x5B2A, 0, 0x5B2B, + 0x3D71, 0x4162, 0x754C, 0x7537, 0x5258, 0x413E, 0x413D, 0x4258, +}; +static const unsigned short utf8_to_euc_E69C[] = { + 0x3A47, 0, 0, 0x5072, 0, 0xC26E, 0, 0xC26F, + 0x376E, 0x4D2D, 0, 0x4A7E, 0, 0x497E, 0xC270, 0x5B2C, + 0, 0, 0, 0xC271, 0x3A73, 0x443F, 0x5B2D, 0x4F2F, + 0, 0xC272, 0, 0x4B3E, 0xC273, 0x442B, 0x5B2E, 0x347C, + 0xC274, 0, 0xC275, 0, 0, 0, 0x5B2F, 0x5B30, + 0x4C5A, 0, 0x4C24, 0x4B76, 0x4B5C, 0x3B25, 0x5B32, 0, + 0, 0x3C6B, 0, 0xC276, 0x4B51, 0, 0x5B34, 0x5B37, + 0x5B36, 0, 0x3479, 0, 0, 0x3560, 0xC277, 0x5B33, +}; +static const unsigned short utf8_to_euc_E69C_x0213[] = { + 0x3A47, 0xAE37, 0, 0x5072, 0, 0xAE38, 0, 0xC26F, + 0x376E, 0x4D2D, 0, 0x4A7E, 0, 0x497E, 0xC270, 0x5B2C, + 0, 0, 0xAE39, 0x754D, 0x3A73, 0x443F, 0x5B2D, 0x4F2F, + 0, 0xAE3B, 0, 0x4B3E, 0xC273, 0x442B, 0x5B2E, 0x347C, + 0xC274, 0, 0xC275, 0, 0, 0, 0x5B2F, 0x5B30, + 0x4C5A, 0, 0x4C24, 0x4B76, 0x4B5C, 0x3B25, 0x5B32, 0, + 0, 0x3C6B, 0, 0x754F, 0x4B51, 0, 0x5B34, 0x5B37, + 0x5B36, 0, 0x3479, 0, 0, 0x3560, 0xC277, 0x5B33, +}; +static const unsigned short utf8_to_euc_E69D[] = { + 0, 0x5B35, 0, 0, 0, 0xC278, 0x5B38, 0xC279, + 0xC27A, 0x3F79, 0, 0, 0xC27B, 0, 0x4D7B, 0x3049, + 0x3A60, 0x423C, 0, 0x3C5D, 0xC27C, 0xC27D, 0x3E73, 0, + 0, 0x5B3B, 0, 0, 0x454E, 0xC27E, 0x5B39, 0x422B, + 0x5B3A, 0x3E72, 0x4C5D, 0x5B3C, 0x5B3D, 0x4D68, 0xC321, 0, + 0, 0, 0x5B42, 0, 0xC322, 0x393A, 0xC323, 0x4755, + 0x5B3F, 0x456C, 0x5A5E, 0x5A62, 0xC324, 0x354F, 0xC325, 0x4747, + 0, 0, 0, 0xC326, 0x5B41, 0, 0x3E3E, 0x4844, +}; +static const unsigned short utf8_to_euc_E69D_x0213[] = { + 0, 0x5B35, 0, 0, 0, 0xC278, 0x5B38, 0x7551, + 0x7552, 0x3F79, 0, 0, 0xAE3E, 0xAE3F, 0x4D7B, 0x3049, + 0x3A60, 0x423C, 0, 0x3C5D, 0xAE40, 0xC27D, 0x3E73, 0, + 0, 0x5B3B, 0, 0, 0x454E, 0xAE41, 0x5B39, 0x422B, + 0x5B3A, 0x3E72, 0x4C5D, 0x5B3C, 0x5B3D, 0x4D68, 0x7550, 0, + 0, 0, 0x5B42, 0, 0xC322, 0x393A, 0xC323, 0x4755, + 0x5B3F, 0x456C, 0x5A5E, 0x5A62, 0xAE45, 0x354F, 0xAE46, 0x4747, + 0, 0, 0, 0x7553, 0x5B41, 0, 0x3E3E, 0x4844, +}; +static const unsigned short utf8_to_euc_E69E[] = { + 0, 0xC327, 0, 0, 0xC328, 0x5B47, 0, 0x487A, + 0, 0x5B3E, 0, 0x5B44, 0x5B43, 0, 0xC329, 0xC32A, + 0x404F, 0xC32B, 0, 0xC32C, 0, 0x4B6D, 0xC32D, 0x4E53, + 0xC32E, 0xC32F, 0x4B67, 0xC330, 0x324C, 0x3B5E, 0, 0, + 0x4F48, 0x5B46, 0x3F75, 0, 0, 0, 0x5B45, 0, + 0, 0x5B40, 0, 0, 0, 0, 0, 0x384F, + 0xC331, 0xC332, 0xC333, 0x5B4C, 0x5B4A, 0xC334, 0x324D, 0x5B48, + 0x5B4E, 0x5B54, 0, 0xC335, 0xC336, 0xC337, 0, 0, +}; +static const unsigned short utf8_to_euc_E69E_x0213[] = { + 0, 0x7554, 0, 0, 0xC328, 0x5B47, 0, 0x487A, + 0, 0x5B3E, 0, 0x5B44, 0x5B43, 0, 0xC329, 0xC32A, + 0x404F, 0xC32B, 0xAE48, 0x7555, 0, 0x4B6D, 0xC32D, 0x4E53, + 0x7556, 0xC32F, 0x4B67, 0x7557, 0x324C, 0x3B5E, 0, 0, + 0x4F48, 0x5B46, 0x3F75, 0, 0, 0, 0x5B45, 0, + 0, 0x5B40, 0, 0, 0, 0, 0, 0x384F, + 0xAE4C, 0xC332, 0xAE4D, 0x5B4C, 0x5B4A, 0xC334, 0x324D, 0x5B48, + 0x5B4E, 0x5B54, 0, 0x7558, 0xC336, 0xC337, 0, 0, +}; +static const unsigned short utf8_to_euc_E69F[] = { + 0xC339, 0x4248, 0xC33A, 0xC33B, 0x4A41, 0xC33C, 0x5B56, 0, + 0xC33D, 0xC33E, 0x4922, 0, 0, 0, 0x5B55, 0x4770, + 0x4B3F, 0x343B, 0xC33F, 0x4077, 0x3D40, 0, 0, 0xC340, + 0x4453, 0xC341, 0x4D2E, 0, 0xC342, 0x5B51, 0x5B50, 0, + 0, 0xC343, 0x5B52, 0, 0x5B4F, 0, 0xC344, 0x5B57, + 0, 0x5B4D, 0, 0, 0x5B4B, 0, 0x5B53, 0x5B49, + 0xC345, 0x436C, 0xC346, 0x4C78, 0x3C46, 0x3A74, 0xC347, 0xC348, + 0, 0xC338, 0, 0x3A3A, 0, 0, 0x4B6F, 0x3341, +}; +static const unsigned short utf8_to_euc_E69F_x0213[] = { + 0x755A, 0x4248, 0xC33A, 0xAE4E, 0x4A41, 0xC33C, 0x5B56, 0, + 0xAE4F, 0xC33E, 0x4922, 0, 0, 0, 0x5B55, 0x4770, + 0x4B3F, 0x343B, 0xAE50, 0x4077, 0x3D40, 0, 0, 0x755B, + 0x4453, 0xAE51, 0x4D2E, 0xAE52, 0xC342, 0x5B51, 0x5B50, 0, + 0, 0xC343, 0x5B52, 0, 0x5B4F, 0, 0xC344, 0x5B57, + 0, 0x5B4D, 0, 0, 0x5B4B, 0, 0x5B53, 0x5B49, + 0xAE53, 0x436C, 0xC346, 0x4C78, 0x3C46, 0x3A74, 0xC347, 0xAE54, + 0, 0x7559, 0, 0x3A3A, 0x755C, 0, 0x4B6F, 0x3341, +}; +static const unsigned short utf8_to_euc_E6A0[] = { + 0, 0xF446, 0x444E, 0x464A, 0x3149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x4072, 0xC34A, 0, 0x4034, 0x372A, + 0, 0xC34B, 0, 0, 0, 0xC34C, 0x5B59, 0xC34D, + 0, 0x393B, 0x337C, 0, 0, 0, 0, 0xC34F, + 0xC34E, 0x5B5B, 0x3374, 0x5B61, 0xC350, 0xC351, 0, 0xC352, + 0xC353, 0xC354, 0x5B5E, 0xC355, 0x4073, 0, 0, 0, + 0x334B, 0x3A2C, 0, 0xC356, 0x334A, 0x3A4F, 0, 0xC357, +}; +static const unsigned short utf8_to_euc_E6A0_x0213[] = { + 0, 0x755D, 0x444E, 0x464A, 0x3149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xAE4B, 0, 0, 0x4072, 0xC34A, 0, 0x4034, 0x372A, + 0xAE58, 0xC34B, 0, 0, 0, 0x755F, 0x5B59, 0xAE59, + 0, 0x393B, 0x337C, 0, 0, 0, 0, 0xC34F, + 0xC34E, 0x5B5B, 0x3374, 0x5B61, 0x7560, 0xAE5A, 0, 0xC352, + 0xC353, 0x7561, 0x5B5E, 0xAE5C, 0x4073, 0, 0, 0, + 0x334B, 0x3A2C, 0, 0xAE5D, 0x334A, 0x3A4F, 0xAE5E, 0xC357, +}; +static const unsigned short utf8_to_euc_E6A1[] = { + 0x5B5C, 0x3765, 0x374B, 0x456D, 0xC358, 0xC359, 0x5B5A, 0, + 0x3046, 0, 0xC35A, 0, 0xC35B, 0x5B5D, 0x5B5F, 0, + 0x364D, 0x372C, 0xC349, 0x343C, 0x354B, 0xC35C, 0, 0xC35D, + 0xC35E, 0x5B62, 0, 0xC35F, 0x3A79, 0x4B71, 0, 0x3B37, + 0, 0, 0, 0x5B63, 0, 0, 0, 0x4930, + 0, 0, 0, 0xC360, 0, 0, 0xC361, 0xC362, + 0xC363, 0xC364, 0xC365, 0, 0x5B6F, 0xC366, 0x3233, 0x5B64, + 0, 0xC367, 0xC368, 0xC369, 0xC36A, 0, 0x5B75, 0x5B65, +}; +static const unsigned short utf8_to_euc_E6A1_x0213[] = { + 0x5B5C, 0x3765, 0x374B, 0x456D, 0xAE5F, 0xAE60, 0x5B5A, 0, + 0x3046, 0xAE61, 0xC35A, 0, 0xAE62, 0x5B5D, 0x5B5F, 0, + 0x364D, 0x372C, 0x755E, 0x343C, 0x354B, 0xAE63, 0, 0xAE64, + 0xC35E, 0x5B62, 0, 0x7562, 0x3A79, 0x4B71, 0, 0x3B37, + 0, 0, 0, 0x5B63, 0, 0, 0, 0x4930, + 0, 0, 0, 0xAE66, 0, 0, 0xAE67, 0xC362, + 0xC363, 0xC364, 0x7563, 0, 0x5B6F, 0x7564, 0x3233, 0x5B64, + 0, 0xC367, 0xAE68, 0xC369, 0xAE69, 0, 0x5B75, 0x5B65, +}; +static const unsigned short utf8_to_euc_E6A2[] = { + 0, 0x4E42, 0xC36B, 0x5B6C, 0xC36C, 0x475F, 0xC36D, 0, + 0xC36E, 0, 0, 0, 0, 0x5B74, 0, 0x5B67, + 0, 0, 0, 0x3034, 0x5B69, 0, 0xC36F, 0x393C, + 0xC370, 0, 0xC371, 0x5B6B, 0xC372, 0x5B6A, 0, 0x5B66, + 0x5B71, 0xC373, 0x3E3F, 0xC374, 0, 0xC375, 0x546D, 0x3868, + 0x4D7C, 0xC376, 0xC377, 0, 0, 0x5B68, 0xC378, 0x4474, + 0x3323, 0x3A2D, 0xC379, 0x5B60, 0, 0x5B70, 0x3361, 0, + 0, 0x5B6E, 0x5B72, 0xC37A, 0x456E, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6A2_x0213[] = { + 0, 0x4E42, 0xAE6A, 0x5B6C, 0xC36C, 0x475F, 0xC36D, 0, + 0xC36E, 0, 0, 0, 0, 0x5B74, 0, 0x5B67, + 0xAE6B, 0, 0, 0x3034, 0x5B69, 0, 0xAE6C, 0x393C, + 0xAE6E, 0xAE6F, 0xAE70, 0x5B6B, 0xAE71, 0x5B6A, 0, 0x5B66, + 0x5B71, 0xC373, 0x3E3F, 0x7566, 0, 0x7567, 0x546D, 0x3868, + 0x4D7C, 0xC376, 0xAE72, 0xAE73, 0, 0x5B68, 0xC378, 0x4474, + 0x3323, 0x3A2D, 0x7568, 0x5B60, 0xAE74, 0x5B70, 0x3361, 0, + 0, 0x5B6E, 0x5B72, 0xAE75, 0x456E, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6A3[] = { + 0, 0, 0, 0, 0x347E, 0xC37B, 0x5C32, 0, + 0xC37C, 0x4C49, 0x5B77, 0x347D, 0xC37D, 0x5B7E, 0, 0xC37E, + 0xC421, 0xC422, 0x4B40, 0xC423, 0x5C21, 0x5C23, 0xC424, 0x5C27, + 0x5B79, 0xC425, 0x432A, 0, 0xC426, 0xC427, 0, 0x456F, + 0x5C2B, 0x5B7C, 0, 0x5C28, 0, 0xC428, 0, 0x5C22, + 0xC429, 0, 0xC42A, 0xC42B, 0xC42C, 0xC42D, 0x3F39, 0x5C2C, + 0xC42E, 0xC42F, 0x4033, 0, 0, 0xC430, 0xC431, 0, + 0, 0x5C2A, 0x343D, 0xC432, 0xC433, 0xC434, 0, 0, +}; +static const unsigned short utf8_to_euc_E6A3_x0213[] = { + 0, 0, 0, 0xAE7A, 0x347E, 0xAE7B, 0x5C32, 0, + 0x7569, 0x4C49, 0x5B77, 0x347D, 0xAE7C, 0x5B7E, 0, 0xAE7D, + 0x756A, 0xC422, 0x4B40, 0xC423, 0x5C21, 0x5C23, 0xAE7E, 0x5C27, + 0x5B79, 0xAF21, 0x432A, 0, 0xC426, 0xC427, 0, 0x456F, + 0x5C2B, 0x5B7C, 0, 0x5C28, 0xAF22, 0xAF23, 0, 0x5C22, + 0x756B, 0, 0xC42A, 0xC42B, 0xAF24, 0x756C, 0x3F39, 0x5C2C, + 0x756D, 0x756E, 0x4033, 0, 0, 0xC430, 0xC431, 0xAF25, + 0, 0x5C2A, 0x343D, 0xAE76, 0x756F, 0xC434, 0, 0, +}; +static const unsigned short utf8_to_euc_E6A4[] = { + 0x4F50, 0x5B76, 0, 0, 0x5C26, 0x3058, 0xC435, 0, + 0x5B78, 0xC436, 0xC437, 0x4C3A, 0x5B7D, 0x3F22, 0x4447, 0x5B73, + 0xC438, 0xC439, 0x5C25, 0xC43A, 0, 0, 0xC43B, 0xC43C, + 0, 0x3F7A, 0x5C2F, 0x3371, 0x3821, 0, 0, 0, + 0, 0x5C31, 0x5B7A, 0x5C30, 0, 0x5C29, 0x5B7B, 0, + 0x5C2D, 0, 0x5C2E, 0, 0, 0, 0, 0, + 0x5C3F, 0xC43D, 0, 0xC43E, 0x464E, 0xC43F, 0x5C24, 0, + 0xC440, 0x5C3B, 0, 0xC441, 0, 0x5C3D, 0, 0x4458, +}; +static const unsigned short utf8_to_euc_E6A4_x0213[] = { + 0x4F50, 0x5B76, 0, 0xAF26, 0x5C26, 0x3058, 0xC435, 0xAF27, + 0x5B78, 0xC436, 0x7570, 0x4C3A, 0x5B7D, 0x3F22, 0x4447, 0x5B73, + 0xC438, 0xC439, 0x5C25, 0xC43A, 0, 0, 0xC43B, 0xC43C, + 0, 0x3F7A, 0x5C2F, 0x3371, 0x3821, 0, 0, 0, + 0, 0x5C31, 0x5B7A, 0x5C30, 0, 0x5C29, 0x5B7B, 0, + 0x5C2D, 0, 0x5C2E, 0, 0, 0, 0, 0, + 0x5C3F, 0xC43D, 0, 0xC43E, 0x464E, 0x7573, 0x5C24, 0, + 0xC440, 0x5C3B, 0, 0xAF2B, 0, 0x5C3D, 0, 0x4458, +}; +static const unsigned short utf8_to_euc_E6A5[] = { + 0, 0, 0xC442, 0, 0, 0xC443, 0, 0, + 0, 0xC444, 0x4D4C, 0, 0, 0, 0xC445, 0, + 0, 0, 0, 0x4976, 0x5C38, 0x424A, 0, 0xC446, + 0, 0x5C3E, 0x413F, 0xC447, 0x5C35, 0x5C42, 0x5C41, 0, + 0x466F, 0x5C40, 0x466A, 0xC448, 0xC449, 0xC44A, 0xC44B, 0, + 0xC44C, 0xC44D, 0x5C44, 0x5C37, 0xC44E, 0x3648, 0x5C3A, 0x3D5D, + 0xC44F, 0xC450, 0xC451, 0x4760, 0x5C3C, 0x364B, 0, 0x5C34, + 0x5C36, 0x5C33, 0xC452, 0xC453, 0x4F30, 0x335A, 0x5C39, 0xC454, +}; +static const unsigned short utf8_to_euc_E6A5_x0213[] = { + 0, 0, 0x7574, 0, 0, 0xC443, 0xAF2D, 0, + 0, 0x7571, 0x4D4C, 0, 0, 0, 0xC445, 0, + 0, 0, 0, 0x4976, 0x5C38, 0x424A, 0, 0x7575, + 0, 0x5C3E, 0x413F, 0xC447, 0x5C35, 0x5C42, 0x5C41, 0, + 0x466F, 0x5C40, 0x466A, 0x7576, 0x7577, 0xC44A, 0xC44B, 0, + 0x7578, 0xAF2E, 0x5C44, 0x5C37, 0xAF2F, 0x3648, 0x5C3A, 0x3D5D, + 0xC44F, 0xC450, 0xAF30, 0x4760, 0x5C3C, 0x364B, 0, 0x5C34, + 0x5C36, 0x5C33, 0xAF31, 0xC453, 0x4F30, 0x335A, 0x5C39, 0xAF32, +}; +static const unsigned short utf8_to_euc_E6A6[] = { + 0xC455, 0x5C43, 0x3335, 0, 0, 0, 0, 0, + 0, 0, 0x3A67, 0, 0, 0xC456, 0x315D, 0, + 0, 0x5C54, 0xC457, 0, 0x4F31, 0x5C57, 0xC458, 0, + 0xC459, 0, 0, 0x3F3A, 0x5C56, 0, 0, 0, + 0x5C55, 0xC45A, 0, 0, 0, 0xC45B, 0xC45C, 0x5C52, + 0xC45D, 0, 0, 0xC45E, 0, 0xC45F, 0x5C46, 0xC460, + 0, 0x5C63, 0x5C45, 0, 0x5C58, 0, 0, 0xC461, + 0xC462, 0, 0xC463, 0x5C50, 0xC464, 0, 0x5C4B, 0x5C48, +}; +static const unsigned short utf8_to_euc_E6A6_x0213[] = { + 0x7579, 0x5C43, 0x3335, 0, 0, 0, 0, 0, + 0, 0, 0x3A67, 0, 0, 0xC456, 0x315D, 0, + 0, 0x5C54, 0xAF33, 0, 0x4F31, 0x5C57, 0xAF35, 0, + 0xAF36, 0, 0, 0x3F3A, 0x5C56, 0, 0, 0, + 0x5C55, 0xC45A, 0, 0, 0, 0x757B, 0xAF37, 0x5C52, + 0xC45D, 0, 0, 0xC45E, 0, 0x757C, 0x5C46, 0xC460, + 0xAF38, 0x5C63, 0x5C45, 0, 0x5C58, 0, 0, 0xAF39, + 0xC462, 0, 0xAF3A, 0x5C50, 0xAF3B, 0, 0x5C4B, 0x5C48, +}; +static const unsigned short utf8_to_euc_E6A7[] = { + 0, 0x5C49, 0, 0x5C51, 0, 0xC465, 0, 0x7422, + 0xC466, 0, 0x5C4E, 0x393D, 0x4448, 0x4164, 0x5C4C, 0, + 0x5C47, 0xC467, 0, 0x5C4A, 0, 0, 0xC468, 0xC469, + 0x4D4D, 0x4B6A, 0, 0, 0, 0x5C4F, 0x5C59, 0, + 0, 0, 0xC46A, 0, 0, 0xC46B, 0, 0x5C61, + 0x5C5A, 0, 0, 0x5C67, 0, 0x5C65, 0xC46C, 0xC46D, + 0, 0xC46E, 0x5C60, 0xC46F, 0, 0xC470, 0, 0, + 0, 0x5C5F, 0, 0x4450, 0, 0x4165, 0xC471, 0x5C5D, +}; +static const unsigned short utf8_to_euc_E6A7_x0213[] = { + 0xAF3C, 0x5C49, 0, 0x5C51, 0, 0xC465, 0, 0x7422, + 0xC466, 0, 0x5C4E, 0x393D, 0x4448, 0x4164, 0x5C4C, 0x757D, + 0x5C47, 0xAF3D, 0, 0x5C4A, 0, 0, 0xAF3E, 0xC469, + 0x4D4D, 0x4B6A, 0, 0, 0, 0x5C4F, 0x5C59, 0, + 0, 0, 0x7622, 0xAF44, 0, 0xC46B, 0, 0x5C61, + 0x5C5A, 0x7623, 0x7624, 0x5C67, 0, 0x5C65, 0xAF45, 0xAF46, + 0, 0xC46E, 0x5C60, 0xAF47, 0xAF49, 0x7625, 0x7626, 0, + 0, 0x5C5F, 0, 0x4450, 0, 0x4165, 0xAF4A, 0x5C5D, +}; +static const unsigned short utf8_to_euc_E6A8[] = { + 0xC472, 0xC473, 0x5C5B, 0xC474, 0, 0x5C62, 0, 0, + 0, 0, 0x5C68, 0x4875, 0x5C6E, 0, 0, 0xC475, + 0, 0xC476, 0x5C69, 0x5C6C, 0x5C66, 0xC477, 0, 0x4374, + 0, 0x4938, 0xC478, 0x5C5C, 0, 0xC479, 0x5C64, 0x3E40, + 0xC47A, 0x4C4F, 0x5C78, 0x5C6B, 0xC47B, 0, 0, 0, + 0xC47C, 0x3822, 0x3223, 0x335F, 0, 0, 0x5C53, 0, + 0xC47D, 0, 0xC47E, 0, 0xC521, 0x3E41, 0x5C70, 0xC522, + 0x5C77, 0x3C79, 0x3372, 0xC523, 0, 0x432E, 0xC524, 0xC525, +}; +static const unsigned short utf8_to_euc_E6A8_x0213[] = { + 0xC472, 0xC473, 0x5C5B, 0xC474, 0, 0x5C62, 0, 0, + 0, 0, 0x5C68, 0x4875, 0x5C6E, 0, 0, 0x7627, + 0, 0xAF4B, 0x5C69, 0x5C6C, 0x5C66, 0x7628, 0, 0x4374, + 0, 0x4938, 0xAF4C, 0x5C5C, 0, 0xAF4D, 0x5C64, 0x3E40, + 0xC47A, 0x4C4F, 0x5C78, 0x5C6B, 0xC47B, 0, 0, 0, + 0xC47C, 0x3822, 0x3223, 0x335F, 0, 0, 0x5C53, 0, + 0xAF41, 0, 0xAF4F, 0xAF50, 0xAF51, 0x3E41, 0x5C70, 0xC522, + 0x5C77, 0x3C79, 0x3372, 0x762A, 0, 0x432E, 0x762B, 0xAF52, +}; +static const unsigned short utf8_to_euc_E6A9[] = { + 0, 0, 0, 0, 0x5C6D, 0xC526, 0xC527, 0x5C72, + 0x5C76, 0xC528, 0xC529, 0x3636, 0, 0, 0xC52A, 0, + 0xC52B, 0xC52C, 0xC52D, 0, 0, 0xC52E, 0xC52F, 0, + 0x354C, 0x5C74, 0, 0xC530, 0, 0, 0, 0x3521, + 0, 0x464B, 0x5C73, 0, 0xC531, 0, 0x5C75, 0xC532, + 0, 0, 0xC533, 0xF449, 0, 0, 0, 0, + 0, 0xC534, 0x5C6F, 0xC535, 0, 0, 0, 0, + 0x5C71, 0, 0, 0, 0, 0, 0xC536, 0x3360, +}; +static const unsigned short utf8_to_euc_E6A9_x0213[] = { + 0, 0, 0, 0, 0x5C6D, 0x762C, 0xAF53, 0x5C72, + 0x5C76, 0xAF54, 0xC529, 0x3636, 0, 0, 0xAF56, 0, + 0x762D, 0xC52C, 0xAF57, 0, 0, 0xC52E, 0x762E, 0, + 0x354C, 0x5C74, 0, 0x762F, 0, 0, 0, 0x3521, + 0, 0x464B, 0x5C73, 0, 0xAF58, 0, 0x5C75, 0xC532, + 0, 0, 0xC533, 0x7630, 0, 0, 0, 0, + 0, 0xC534, 0x5C6F, 0x7631, 0, 0, 0, 0, + 0x5C71, 0, 0xAF55, 0, 0, 0, 0xAF5A, 0x3360, +}; +static const unsigned short utf8_to_euc_E6AA[] = { + 0x4349, 0xC537, 0, 0xC538, 0x5C7C, 0, 0xC539, 0xC53A, + 0, 0xC53B, 0, 0xC53C, 0, 0x5C7A, 0x3869, 0, + 0x5C79, 0xC53D, 0, 0, 0, 0, 0, 0x5D21, + 0, 0, 0, 0xC53E, 0x5B58, 0xC53F, 0xC540, 0xC541, + 0x5C7B, 0, 0x5C7D, 0x5C7E, 0, 0xC542, 0, 0, + 0, 0, 0x5D2C, 0xC543, 0x5D28, 0, 0x5B6D, 0xC544, + 0xC545, 0xC546, 0, 0x5D27, 0xC547, 0, 0, 0, + 0x5D26, 0, 0, 0x5D23, 0, 0xC548, 0xC549, 0xC54A, +}; +static const unsigned short utf8_to_euc_E6AA_x0213[] = { + 0x4349, 0xC537, 0, 0xAF5B, 0x5C7C, 0, 0xC539, 0xC53A, + 0, 0x7633, 0, 0xAF5C, 0, 0x5C7A, 0x3869, 0, + 0x5C79, 0xAF5E, 0, 0, 0x7634, 0, 0, 0x5D21, + 0, 0, 0, 0xC53E, 0x5B58, 0x7635, 0x7636, 0xAF5F, + 0x5C7B, 0xAF60, 0x5C7D, 0x5C7E, 0, 0x7637, 0, 0, + 0, 0, 0x5D2C, 0xAF62, 0x5D28, 0, 0x5B6D, 0xC544, + 0xC545, 0xC546, 0, 0x5D27, 0xC547, 0, 0, 0, + 0x5D26, 0, 0, 0x5D23, 0, 0xAF63, 0xC549, 0xC54A, +}; +static const unsigned short utf8_to_euc_E6AB[] = { + 0, 0x5C6A, 0x5D25, 0x5D24, 0, 0, 0xC54B, 0, + 0xC54D, 0xC54C, 0, 0, 0xC54E, 0, 0, 0, + 0xC54F, 0x5D2A, 0, 0x4F26, 0xC550, 0xC551, 0xC552, 0, + 0, 0, 0x5D2D, 0x367B, 0xC553, 0xC554, 0x5D29, 0x5D2B, + 0, 0, 0xF44A, 0, 0xC555, 0, 0, 0xC556, + 0x4827, 0, 0x5D2E, 0, 0xC557, 0, 0, 0, + 0xC558, 0xC559, 0xC55A, 0, 0, 0, 0, 0, + 0, 0, 0x5D32, 0x5D2F, 0xC55B, 0xC55C, 0, 0, +}; +static const unsigned short utf8_to_euc_E6AB_x0213[] = { + 0, 0x5C6A, 0x5D25, 0x5D24, 0, 0, 0xAF64, 0, + 0xC54D, 0xC54C, 0, 0, 0xC54E, 0, 0, 0, + 0xAF66, 0x5D2A, 0, 0x4F26, 0xAF65, 0xC551, 0xC552, 0, + 0, 0, 0x5D2D, 0x367B, 0xAF67, 0xAF68, 0x5D29, 0x5D2B, + 0, 0, 0xF44A, 0, 0x7638, 0, 0, 0x7639, + 0x4827, 0, 0x5D2E, 0, 0xAF6B, 0, 0, 0, + 0xC558, 0xAF6C, 0xAF6D, 0xAF6E, 0, 0, 0, 0, + 0, 0, 0x5D32, 0x5D2F, 0xC55B, 0xAF6F, 0, 0, +}; +static const unsigned short utf8_to_euc_E6AC[] = { + 0, 0, 0xC55D, 0xC55E, 0x4D73, 0x5D30, 0xC55F, 0xC560, + 0, 0xC561, 0x5C5E, 0, 0, 0, 0, 0xC562, + 0xC563, 0xC564, 0x5D33, 0, 0, 0, 0x5D34, 0xC565, + 0, 0, 0, 0xC566, 0, 0x3135, 0xC567, 0x5D36, + 0x3767, 0x3C21, 0, 0x3655, 0xC568, 0, 0, 0x3224, + 0xC569, 0, 0, 0xC56A, 0xC56B, 0, 0, 0xC56C, + 0, 0, 0x4D5F, 0, 0, 0xC56D, 0xC56E, 0x5D38, + 0x5D37, 0x5D3A, 0x353D, 0xC56F, 0, 0x3656, 0x343E, 0xC570, +}; +static const unsigned short utf8_to_euc_E6AC_x0213[] = { + 0, 0, 0xC55D, 0xC55E, 0x4D73, 0x5D30, 0xC55F, 0xC560, + 0, 0xC561, 0x5C5E, 0xAF71, 0, 0, 0, 0xAF72, + 0xAF73, 0xAF74, 0x5D33, 0, 0, 0, 0x5D34, 0xAF76, + 0, 0, 0, 0x763C, 0, 0x3135, 0x763D, 0x5D36, + 0x3767, 0x3C21, 0, 0x3655, 0xC568, 0, 0, 0x3224, + 0xC569, 0, 0, 0xC56A, 0x763E, 0, 0, 0xAF78, + 0, 0, 0x4D5F, 0, 0, 0x763F, 0xC56E, 0x5D38, + 0x5D37, 0x5D3A, 0x353D, 0xC56F, 0, 0x3656, 0x343E, 0xC570, +}; +static const unsigned short utf8_to_euc_E6AD[] = { + 0, 0, 0, 0x5D3D, 0, 0, 0xC571, 0x5D3C, + 0, 0x5D3E, 0xC572, 0, 0x324E, 0xC573, 0x4337, 0, + 0x5D3F, 0, 0xC574, 0x343F, 0x5D41, 0, 0xC575, 0, + 0xC576, 0x5D40, 0, 0x5D42, 0, 0xC577, 0, 0x5D43, + 0xC578, 0x5D44, 0x3B5F, 0x4035, 0x3A21, 0, 0x4970, 0xC579, + 0, 0x4A62, 0x4F44, 0xC57A, 0, 0, 0xC57B, 0x3B75, + 0xC57C, 0, 0, 0x3A50, 0x4E72, 0xC57D, 0, 0, + 0x5D45, 0x5D46, 0, 0x3B60, 0, 0xC57E, 0xC621, 0x5D47, +}; +static const unsigned short utf8_to_euc_E6AD_x0213[] = { + 0, 0, 0, 0x5D3D, 0, 0, 0x7640, 0x5D3C, + 0, 0x5D3E, 0xAF79, 0, 0x324E, 0xC573, 0x4337, 0, + 0x5D3F, 0, 0xC574, 0x343F, 0x5D41, 0, 0x7641, 0, + 0xAF7A, 0x5D40, 0, 0x5D42, 0, 0xC577, 0, 0x5D43, + 0x7642, 0x5D44, 0x3B5F, 0x4035, 0x3A21, 0x7643, 0x4970, 0x7644, + 0, 0x4A62, 0x4F44, 0xC57A, 0xAF7B, 0, 0xC57B, 0x3B75, + 0xC57C, 0, 0, 0x3A50, 0x4E72, 0xAF7C, 0, 0x7645, + 0x5D45, 0x5D46, 0xAF7D, 0x3B60, 0, 0xC57E, 0xC621, 0x5D47, +}; +static const unsigned short utf8_to_euc_E6AE[] = { + 0x5D48, 0, 0xC622, 0x5D4A, 0x5D49, 0xC623, 0x4B58, 0, + 0, 0x3D5E, 0x3C6C, 0x3B44, 0, 0x5D4B, 0, 0, + 0, 0, 0, 0, 0, 0x5D4D, 0x3F23, 0xC624, + 0x5D4C, 0, 0, 0xC625, 0, 0, 0x5D4E, 0xC626, + 0xC627, 0, 0xC628, 0xC629, 0x5D4F, 0, 0, 0, + 0xC62A, 0xC62B, 0x5D50, 0x5D51, 0xC62C, 0xC62D, 0xC62E, 0x5D52, + 0xC62F, 0x5D54, 0x5D53, 0x5D55, 0x3225, 0x434A, 0, 0x5D56, + 0xC630, 0xC631, 0x3B26, 0x334C, 0x5D57, 0xC632, 0xC633, 0x4542, +}; +static const unsigned short utf8_to_euc_E6AE_x0213[] = { + 0x5D48, 0xAF7E, 0x7646, 0x5D4A, 0x5D49, 0xC623, 0x4B58, 0, + 0, 0x3D5E, 0x3C6C, 0x3B44, 0, 0x5D4B, 0, 0, + 0, 0, 0, 0, 0, 0x5D4D, 0x3F23, 0xC624, + 0x5D4C, 0, 0, 0xEE21, 0, 0, 0x5D4E, 0xC626, + 0xC627, 0, 0xC628, 0xC629, 0x5D4F, 0, 0, 0, + 0xC62A, 0x7647, 0x5D50, 0x5D51, 0xC62C, 0x7648, 0xEE22, 0x5D52, + 0xC62F, 0x5D54, 0x5D53, 0x5D55, 0x3225, 0x434A, 0, 0x5D56, + 0xC630, 0xC631, 0x3B26, 0x334C, 0x5D57, 0xEE24, 0xEE25, 0x4542, +}; +static const unsigned short utf8_to_euc_E6AF[] = { + 0x544C, 0, 0, 0xC634, 0xC635, 0x3523, 0x5D58, 0, + 0, 0xC636, 0, 0x5D59, 0xC637, 0x4A6C, 0x4B68, 0, + 0, 0, 0x4647, 0x5D5A, 0x4866, 0, 0xC638, 0, + 0x487B, 0, 0xC639, 0x4C53, 0, 0, 0, 0x5D5B, + 0, 0xC63A, 0, 0xC63B, 0, 0, 0xC63C, 0xC63D, + 0, 0, 0, 0x5D5D, 0x5D5C, 0, 0xC63E, 0x5D5F, + 0, 0xC63F, 0, 0x5D5E, 0, 0, 0, 0xC640, + 0, 0xC641, 0, 0, 0, 0, 0, 0xC642, +}; +static const unsigned short utf8_to_euc_E6AF_x0213[] = { + 0x544C, 0, 0, 0xC634, 0xC635, 0x3523, 0x5D58, 0xEE26, + 0xEE27, 0xEE28, 0, 0x5D59, 0xC637, 0x4A6C, 0x4B68, 0x764A, + 0, 0, 0x4647, 0x5D5A, 0x4866, 0, 0x764B, 0x764C, + 0x487B, 0, 0xEE29, 0x4C53, 0, 0, 0, 0x5D5B, + 0, 0xC63A, 0, 0xC63B, 0, 0, 0xEE2A, 0xEE2B, + 0, 0, 0, 0x5D5D, 0x5D5C, 0, 0xEE2C, 0x5D5F, + 0, 0xEE2D, 0, 0x5D5E, 0, 0, 0, 0xC640, + 0, 0xC641, 0, 0, 0, 0, 0, 0x764D, +}; +static const unsigned short utf8_to_euc_E6B0[] = { + 0, 0, 0xC643, 0, 0xC644, 0xC645, 0, 0, + 0x5D61, 0xC646, 0, 0, 0, 0xC647, 0xC648, 0x3B61, + 0xC649, 0x4C31, 0xC64A, 0x5D62, 0x5D63, 0, 0, 0x3524, + 0, 0xC64B, 0, 0x5D64, 0, 0, 0, 0xC64C, + 0, 0, 0, 0x5D66, 0x5D65, 0, 0xC64D, 0xC64E, + 0xC64F, 0, 0, 0, 0xC650, 0, 0xC651, 0, + 0, 0, 0, 0xC652, 0x3F65, 0xC653, 0xC654, 0x4939, + 0x314A, 0, 0xC655, 0xC656, 0, 0, 0x4845, 0xC657, +}; +static const unsigned short utf8_to_euc_E6B0_x0213[] = { + 0, 0, 0xEE2E, 0, 0xC644, 0x764E, 0, 0, + 0x5D61, 0xC646, 0xEE2F, 0, 0, 0xC647, 0xEE30, 0x3B61, + 0x764F, 0x4C31, 0xC64A, 0x5D62, 0x5D63, 0, 0, 0x3524, + 0, 0xC64B, 0, 0x5D64, 0, 0, 0, 0xC64C, + 0, 0, 0, 0x5D66, 0x5D65, 0, 0xC64D, 0xC64E, + 0xC64F, 0, 0, 0, 0xC650, 0, 0xC651, 0, + 0, 0, 0, 0x7650, 0x3F65, 0xEE31, 0xEE32, 0x4939, + 0x314A, 0, 0xEE33, 0xC656, 0, 0, 0x4845, 0xEE35, +}; +static const unsigned short utf8_to_euc_E6B1[] = { + 0x4475, 0x3D41, 0x3561, 0, 0, 0, 0, 0, + 0, 0, 0xC658, 0xC659, 0, 0xC65A, 0x4846, 0xC65B, + 0x3C2E, 0, 0xC65C, 0, 0xC65D, 0x5D68, 0, 0x3440, + 0, 0xC65E, 0x3178, 0xC65F, 0xC660, 0x4672, 0x5D67, 0x393E, + 0x4353, 0, 0x5D69, 0, 0, 0, 0, 0xC736, + 0x5D71, 0, 0x5D6A, 0xC661, 0, 0xC662, 0, 0xC663, + 0x4241, 0, 0x3562, 0x5D72, 0xC664, 0, 0xC665, 0, + 0xC666, 0xC667, 0x3768, 0xC668, 0, 0x3525, 0x5D70, 0, +}; +static const unsigned short utf8_to_euc_E6B1_x0213[] = { + 0x4475, 0x3D41, 0x3561, 0, 0, 0, 0, 0, + 0, 0, 0xC658, 0xC659, 0, 0xEE36, 0x4846, 0xC65B, + 0x3C2E, 0, 0xC65C, 0, 0xC65D, 0x5D68, 0, 0x3440, + 0, 0x7651, 0x3178, 0xEE37, 0x7652, 0x4672, 0x5D67, 0x393E, + 0x4353, 0, 0x5D69, 0, 0, 0, 0, 0xEE4F, + 0x5D71, 0, 0x5D6A, 0xC661, 0, 0xEE38, 0, 0xC663, + 0x4241, 0, 0x3562, 0x5D72, 0x7654, 0, 0x7655, 0, + 0xC666, 0xC667, 0x3768, 0xC668, 0, 0x3525, 0x5D70, 0, +}; +static const unsigned short utf8_to_euc_E6B2[] = { + 0, 0x5D6E, 0x5D6B, 0x4D60, 0, 0xC669, 0xC66A, 0xC66B, + 0x4440, 0xC66C, 0, 0, 0x4659, 0x5D6C, 0, 0, + 0x5D74, 0, 0x5D73, 0x3723, 0xC66D, 0xC66E, 0x322D, 0xC66F, + 0xC670, 0x3A3B, 0x5D6D, 0x5D6F, 0xC671, 0, 0, 0xC672, + 0, 0x4B57, 0x4274, 0, 0, 0, 0, 0, + 0, 0, 0, 0x4B77, 0, 0, 0x5D7C, 0, + 0xC673, 0x5D7D, 0xC674, 0x324F, 0xC675, 0, 0, 0, + 0x4A28, 0x4C7D, 0x5E21, 0x3C23, 0x3E42, 0x5D78, 0x5D7E, 0x3168, +}; +static const unsigned short utf8_to_euc_E6B2_x0213[] = { + 0, 0x5D6E, 0x5D6B, 0x4D60, 0xEE39, 0x7656, 0x7657, 0xC66B, + 0x4440, 0xEE3A, 0, 0, 0x4659, 0x5D6C, 0, 0, + 0x5D74, 0, 0x5D73, 0x3723, 0xEE3C, 0xEE3D, 0x322D, 0xEE3E, + 0x7658, 0x3A3B, 0x5D6D, 0x5D6F, 0x7659, 0, 0, 0xC672, + 0, 0x4B57, 0x4274, 0, 0, 0, 0, 0, + 0, 0, 0x7653, 0x4B77, 0, 0xEE3F, 0x5D7C, 0, + 0xC673, 0x5D7D, 0xC674, 0x324F, 0xC675, 0, 0, 0, + 0x4A28, 0x4C7D, 0x5E21, 0x3C23, 0x3E42, 0x5D78, 0x5D7E, 0x3168, +}; +static const unsigned short utf8_to_euc_E6B3[] = { + 0, 0x3637, 0xC676, 0, 0x5D75, 0x5D7A, 0xC677, 0, + 0, 0x4074, 0x4771, 0, 0x4867, 0xC678, 0, 0xC679, + 0xC67A, 0xC67B, 0xC67C, 0x5D77, 0xC67D, 0x4B21, 0xC67E, 0x5D79, + 0, 0x5E24, 0xC721, 0x5E22, 0xC722, 0x5D7B, 0, 0, + 0xC723, 0x4B22, 0x4748, 0x3563, 0, 0x4525, 0, 0xC724, + 0x436D, 0xC725, 0x5E25, 0xC726, 0xC727, 0, 0xC728, 0x5E23, + 0x4259, 0x5D76, 0xC729, 0x314B, 0xC72A, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6B3_x0213[] = { + 0, 0x3637, 0xEE40, 0, 0x5D75, 0x5D7A, 0x765B, 0, + 0, 0x4074, 0x4771, 0, 0x4867, 0xC678, 0, 0xC679, + 0xEE41, 0xC67B, 0xC67C, 0x5D77, 0x765C, 0x4B21, 0xEE43, 0x5D79, + 0, 0x5E24, 0xEE44, 0x5E22, 0xEE45, 0x5D7B, 0, 0, + 0x765D, 0x4B22, 0x4748, 0x3563, 0, 0x4525, 0, 0xC724, + 0x436D, 0xEE46, 0x5E25, 0x765E, 0xEE47, 0xEE48, 0x765F, 0x5E23, + 0x4259, 0x5D76, 0xC729, 0x314B, 0xC72A, 0, 0, 0, + 0, 0, 0, 0x765A, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6B4[] = { + 0, 0, 0, 0, 0xC72B, 0, 0, 0xC72C, + 0, 0, 0xC72D, 0x4D4E, 0x5E30, 0, 0xC72E, 0xC72F, + 0, 0xC730, 0x5E2F, 0xC731, 0, 0, 0, 0x4076, + 0, 0x5E2C, 0xC732, 0x4D6C, 0, 0, 0x4636, 0x5E26, + 0, 0, 0, 0, 0, 0x4445, 0xC733, 0xC734, + 0xC735, 0x314C, 0x393F, 0x5E29, 0, 0, 0xC737, 0xC738, + 0, 0xC739, 0x3D27, 0x5E2E, 0, 0x5E2D, 0x5E28, 0, + 0x5E2B, 0xC73A, 0, 0x3368, 0xC73B, 0x5E2A, 0x4749, 0xC73C, +}; +static const unsigned short utf8_to_euc_E6B4_x0213[] = { + 0xEE4A, 0, 0, 0, 0x7661, 0, 0, 0xC72C, + 0, 0, 0xEE4B, 0x4D4E, 0x5E30, 0, 0x7662, 0xC72F, + 0, 0xC730, 0x5E2F, 0xC731, 0, 0, 0, 0x4076, + 0, 0x5E2C, 0xC732, 0x4D6C, 0, 0, 0x4636, 0x5E26, + 0, 0, 0, 0, 0xEE4C, 0x4445, 0xEE4D, 0xEE4E, + 0xC735, 0x314C, 0x393F, 0x5E29, 0, 0, 0x7663, 0xEE50, + 0, 0x7664, 0x3D27, 0x5E2E, 0xEE65, 0x5E2D, 0x5E28, 0, + 0x5E2B, 0x7665, 0, 0x3368, 0xEE51, 0x5E2A, 0x4749, 0x7666, +}; +static const unsigned short utf8_to_euc_E6B5[] = { + 0, 0x4E2E, 0, 0, 0x3E74, 0x4075, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xC73D, + 0, 0x5E36, 0x5E34, 0, 0x494D, 0, 0xC73E, 0xC73F, + 0, 0xC740, 0, 0x5E31, 0x5E33, 0xC741, 0x313A, 0xC742, + 0, 0x3940, 0x4F32, 0, 0x333D, 0, 0x4962, 0xC743, + 0xC744, 0, 0, 0, 0x4D61, 0, 0, 0x3324, + 0x3F3B, 0x5E35, 0, 0, 0xC745, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6B5_x0213[] = { + 0, 0x4E2E, 0, 0, 0x3E74, 0x4075, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xC73D, + 0x7667, 0x5E36, 0x5E34, 0xEE52, 0x494D, 0, 0xEE53, 0xC73F, + 0xEE54, 0xC740, 0, 0x5E31, 0x5E33, 0x7668, 0x313A, 0xC742, + 0, 0x3940, 0x4F32, 0, 0x333D, 0, 0x4962, 0xC743, + 0xEE55, 0, 0, 0, 0x4D61, 0, 0, 0x3324, + 0x3F3B, 0x5E35, 0, 0, 0xC745, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6B6[] = { + 0, 0, 0xC746, 0, 0, 0x5E3A, 0, 0xC747, + 0x3E43, 0, 0, 0, 0x4D30, 0, 0x5E37, 0, + 0, 0xC748, 0xC749, 0x5E32, 0xC74A, 0x5E38, 0xC74B, 0xC74C, + 0xC74D, 0x4E5E, 0, 0x4573, 0x4642, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xC74E, 0, 0xC74F, 0, 0, 0x3336, + 0, 0, 0x3155, 0, 0xC750, 0x5E3E, 0, 0xC751, + 0x5E41, 0xC752, 0, 0, 0x4E43, 0xC753, 0, 0xC754, +}; +static const unsigned short utf8_to_euc_E6B6_x0213[] = { + 0xEE56, 0xEE57, 0x766A, 0, 0, 0x5E3A, 0, 0x766B, + 0x3E43, 0x766C, 0xEE58, 0, 0x4D30, 0xEE59, 0x5E37, 0, + 0, 0xEE5A, 0xC749, 0x5E32, 0x766D, 0x5E38, 0xC74B, 0xC74C, + 0xEE5B, 0x4E5E, 0, 0x4573, 0x4642, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x766E, 0xEE61, 0x766F, 0, 0xEE62, 0x3336, + 0, 0, 0x3155, 0, 0xEE63, 0x5E3E, 0, 0xC751, + 0x5E41, 0xC752, 0, 0, 0x4E43, 0xC753, 0, 0x7670, +}; +static const unsigned short utf8_to_euc_E6B7[] = { + 0x4D64, 0, 0, 0, 0xC755, 0x5E48, 0x5E42, 0x5E3F, + 0xC756, 0, 0xC757, 0x4E54, 0x5E45, 0, 0xC758, 0xC759, + 0, 0x3D4A, 0x5E47, 0, 0, 0x5E4C, 0xC75A, 0, + 0x4571, 0x5E4A, 0, 0xC75B, 0, 0xC75C, 0x5E44, 0xC75D, + 0xC75E, 0x4338, 0xC75F, 0, 0x5E4B, 0xC760, 0x5E40, 0, + 0x5E46, 0xC761, 0x5E4D, 0x307C, 0x5E43, 0, 0x5E4E, 0xC762, + 0xC763, 0x3F3C, 0xF44C, 0x3D5F, 0xC764, 0x4A25, 0xC765, 0x3A2E, + 0xF44B, 0x5E3B, 0x5E49, 0x453A, 0xC766, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6B7_x0213[] = { + 0x4D64, 0, 0xEE64, 0, 0x7671, 0x5E48, 0x5E42, 0x5E3F, + 0xEE66, 0, 0xC757, 0x4E54, 0x5E45, 0, 0xEE67, 0xEE68, + 0xEE69, 0x3D4A, 0x5E47, 0, 0, 0x5E4C, 0x7672, 0, + 0x4571, 0x5E4A, 0x7673, 0x7674, 0, 0x7675, 0x5E44, 0xEE6A, + 0xC75E, 0x4338, 0xC75F, 0, 0x5E4B, 0xC760, 0x5E40, 0, + 0x5E46, 0xEE6B, 0x5E4D, 0x307C, 0x5E43, 0, 0x5E4E, 0xC762, + 0xC763, 0x3F3C, 0xF44C, 0x3D5F, 0xC764, 0x4A25, 0xEE6C, 0x3A2E, + 0xF44B, 0x5E3B, 0x5E49, 0x453A, 0x7676, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6B8[] = { + 0xC767, 0, 0, 0, 0xC768, 0x4036, 0, 0x3369, + 0x3A51, 0x3E44, 0x5E3D, 0x3D42, 0, 0, 0, 0, + 0, 0, 0, 0x374C, 0, 0x5E3C, 0, 0, + 0, 0x5E52, 0x3D6D, 0x383A, 0, 0x5E61, 0xC769, 0x5E5B, + 0x3574, 0x454F, 0xC76A, 0x5E56, 0x5E5F, 0x302F, 0x3132, 0xC76B, + 0, 0x3239, 0, 0x5E58, 0x422C, 0x5E4F, 0x5E51, 0x3941, + 0, 0, 0xC76C, 0, 0, 0, 0xC76D, 0, + 0x5E62, 0xC76E, 0x5E5D, 0xC76F, 0xC770, 0, 0x5E55, 0, +}; +static const unsigned short utf8_to_euc_E6B8_x0213[] = { + 0xC767, 0, 0, 0, 0xC768, 0x4036, 0, 0x3369, + 0x3A51, 0x3E44, 0x5E3D, 0x3D42, 0, 0, 0, 0, + 0, 0, 0, 0x374C, 0, 0x5E3C, 0, 0xEE5D, + 0, 0x5E52, 0x3D6D, 0x383A, 0, 0x5E61, 0xEE6E, 0x5E5B, + 0x3574, 0x454F, 0xEE6F, 0x5E56, 0x5E5F, 0x302F, 0x3132, 0xEE70, + 0, 0x3239, 0, 0x5E58, 0x422C, 0x5E4F, 0x5E51, 0x3941, + 0, 0, 0xEE72, 0, 0x7678, 0, 0xEE6D, 0, + 0x5E62, 0xC76E, 0x5E5D, 0xC76F, 0xEE73, 0, 0x5E55, 0, +}; +static const unsigned short utf8_to_euc_E6B9[] = { + 0, 0, 0, 0x5E5C, 0xC771, 0xC772, 0, 0, + 0xC773, 0xC774, 0x4C2B, 0xC775, 0, 0x5E5A, 0x5E5E, 0xC776, + 0, 0xC777, 0xC778, 0xC779, 0xC77A, 0, 0x3850, 0xC77B, + 0x3E45, 0, 0, 0x4339, 0xC77C, 0xC77D, 0xC77E, 0x5E54, + 0, 0, 0xC821, 0xC822, 0, 0, 0, 0x4D2F, + 0xC823, 0, 0, 0x5E57, 0, 0, 0x5E50, 0x4572, + 0, 0, 0x5E53, 0xC824, 0, 0, 0x5E59, 0, + 0, 0, 0, 0xC825, 0, 0xC826, 0x4F51, 0x3C3E, +}; +static const unsigned short utf8_to_euc_E6B9_x0213[] = { + 0, 0, 0, 0x5E5C, 0x7679, 0xC772, 0, 0, + 0xEE74, 0xEE75, 0x4C2B, 0xEE76, 0xEE77, 0x5E5A, 0x5E5E, 0xEE78, + 0, 0xEE79, 0xC778, 0xEE7A, 0xEE7B, 0, 0x3850, 0xEE7C, + 0x3E45, 0, 0, 0x4339, 0x767A, 0xC77D, 0x767B, 0x5E54, + 0, 0, 0xC821, 0xEE7D, 0, 0, 0, 0x4D2F, + 0xC823, 0, 0, 0x5E57, 0, 0, 0x5E50, 0x4572, + 0, 0, 0x5E53, 0xC824, 0, 0, 0x5E59, 0, + 0, 0, 0, 0xC825, 0, 0xC826, 0x4F51, 0x3C3E, +}; +static const unsigned short utf8_to_euc_E6BA[] = { + 0x4B7E, 0, 0x5E63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x482E, 0xC827, 0, 0x5E6F, + 0x383B, 0, 0, 0xC828, 0, 0, 0x3D60, 0, + 0x5E65, 0xC829, 0, 0, 0x4E2F, 0x3942, 0, 0x5E72, + 0xC82A, 0, 0x306E, 0, 0, 0x5E70, 0, 0xC82B, + 0, 0, 0x5E64, 0, 0, 0xC82C, 0xC82D, 0x5E6A, + 0, 0xC82E, 0x5E6C, 0xC82F, 0, 0, 0x4D4F, 0x5E67, + 0, 0, 0x452E, 0xC830, 0, 0x5E69, 0, 0xC831, +}; +static const unsigned short utf8_to_euc_E6BA_x0213[] = { + 0x4B7E, 0, 0x5E63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x482E, 0xC827, 0, 0x5E6F, + 0x383B, 0, 0, 0xEF21, 0, 0, 0x3D60, 0, + 0x5E65, 0xC829, 0, 0, 0x4E2F, 0x3942, 0, 0x5E72, + 0xC82A, 0, 0x306E, 0, 0, 0x5E70, 0, 0xEF22, + 0, 0, 0x5E64, 0x767C, 0, 0xC82C, 0xC82D, 0x5E6A, + 0, 0x767D, 0x5E6C, 0xC82F, 0xEF23, 0, 0x4D4F, 0x5E67, + 0, 0, 0x452E, 0xC830, 0, 0x5E69, 0, 0xEF24, +}; +static const unsigned short utf8_to_euc_E6BB[] = { + 0xC832, 0xC833, 0x5E71, 0xC834, 0x5E6B, 0x4C47, 0, 0xC835, + 0xC836, 0x5E66, 0xC837, 0x3C22, 0x5E7E, 0xC838, 0xC839, 0xC83A, + 0, 0x336A, 0, 0x5E68, 0x5E6D, 0x5E6E, 0, 0, + 0, 0, 0, 0, 0, 0x426C, 0x425A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xC83B, 0x5E76, 0xC83C, 0xC83D, 0x5E7C, + 0, 0, 0x5E7A, 0, 0x4529, 0, 0, 0x5F23, + 0x5E77, 0xC83E, 0, 0xC83F, 0, 0xC840, 0x5E78, 0x5E60, +}; +static const unsigned short utf8_to_euc_E6BB_x0213[] = { + 0xC832, 0x767E, 0x5E71, 0xEF25, 0x5E6B, 0x4C47, 0, 0x7721, + 0xC836, 0x5E66, 0xEF26, 0x3C22, 0x5E7E, 0xC838, 0x7722, 0xC83A, + 0, 0x336A, 0, 0x5E68, 0x5E6D, 0x5E6E, 0, 0, + 0, 0xEF27, 0, 0, 0, 0x426C, 0x425A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xEF29, 0x5E76, 0xC83C, 0xC83D, 0x5E7C, + 0, 0, 0x5E7A, 0, 0x4529, 0, 0, 0x5F23, + 0x5E77, 0xEF2A, 0, 0xEF2B, 0, 0xC840, 0x5E78, 0x5E60, +}; +static const unsigned short utf8_to_euc_E6BC[] = { + 0, 0x3579, 0x493A, 0, 0xC841, 0, 0x3C3F, 0, + 0xC842, 0x3977, 0xC843, 0, 0xC844, 0xC845, 0, 0x4F33, + 0, 0x5E74, 0, 0x5F22, 0x3169, 0x4166, 0xC846, 0, + 0xC847, 0, 0xC848, 0xC849, 0, 0, 0, 0, + 0x4779, 0, 0x3441, 0x4E7A, 0, 0, 0xC84A, 0, + 0, 0xC84B, 0xC84C, 0x4C21, 0x4452, 0xC853, 0, 0xC84D, + 0xC84E, 0x5E7B, 0x5E7D, 0xC84F, 0, 0, 0xC850, 0, + 0x4132, 0, 0, 0xC851, 0xC852, 0, 0x5F21, 0x5E79, +}; +static const unsigned short utf8_to_euc_E6BC_x0213[] = { + 0, 0x3579, 0x493A, 0, 0xC841, 0, 0x3C3F, 0, + 0xC842, 0x3977, 0xEF2C, 0, 0xEF2D, 0xC845, 0, 0x4F33, + 0x7723, 0x5E74, 0, 0x5F22, 0x3169, 0x4166, 0xC846, 0, + 0xEF2E, 0, 0x7724, 0xC849, 0, 0, 0, 0, + 0x4779, 0, 0x3441, 0x4E7A, 0, 0xEF2F, 0xC84A, 0, + 0, 0xC84B, 0x7726, 0x4C21, 0x4452, 0xC853, 0, 0x7727, + 0xC84E, 0x5E7B, 0x5E7D, 0x7728, 0, 0xEF28, 0xEF30, 0, + 0x4132, 0, 0, 0xC851, 0xEF31, 0, 0x5F21, 0x5E79, +}; +static const unsigned short utf8_to_euc_E6BD[] = { + 0, 0x5E73, 0, 0, 0, 0x3443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xC854, + 0, 0xC855, 0xC856, 0xC857, 0x3769, 0, 0, 0xC858, + 0x5F2F, 0xC859, 0xC85A, 0x5F2A, 0x4078, 0xC85B, 0xC85C, 0x3363, + 0, 0xC85D, 0xC85E, 0, 0x3D61, 0, 0x5F33, 0, + 0xC85F, 0, 0, 0, 0xC860, 0x5F2C, 0x442C, 0x5F29, + 0x4459, 0, 0, 0, 0x5F4C, 0, 0, 0, + 0x5F26, 0, 0x5F25, 0, 0x5F2E, 0xC861, 0xC862, 0, +}; +static const unsigned short utf8_to_euc_E6BD_x0213[] = { + 0, 0x5E73, 0, 0, 0, 0x3443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xC854, + 0, 0x7729, 0xEF33, 0xC857, 0x3769, 0, 0, 0xEF34, + 0x5F2F, 0x772A, 0xEF35, 0x5F2A, 0x4078, 0xC85B, 0x772B, 0x3363, + 0xEF36, 0x772C, 0x772D, 0, 0x3D61, 0, 0x5F33, 0, + 0xEF37, 0, 0, 0, 0xC860, 0x5F2C, 0x442C, 0x5F29, + 0x4459, 0, 0, 0, 0x5F4C, 0, 0, 0, + 0x5F26, 0, 0x5F25, 0, 0x5F2E, 0xEF39, 0x772E, 0, +}; +static const unsigned short utf8_to_euc_E6BE[] = { + 0x5F28, 0x5F27, 0x5F2D, 0xC863, 0x4021, 0, 0x5F24, 0xC864, + 0xC865, 0, 0, 0xC866, 0xC867, 0xC868, 0x5F30, 0, + 0xC869, 0x5F31, 0xC86A, 0xC86B, 0xC86C, 0, 0xC86D, 0x3442, + 0, 0, 0xC86E, 0, 0, 0, 0, 0xC86F, + 0xC870, 0x5F36, 0, 0x5F35, 0x5F37, 0xC871, 0xC872, 0xC873, + 0xC874, 0, 0x5F3A, 0, 0, 0, 0xC875, 0xC876, + 0xC877, 0x4543, 0, 0x5F34, 0, 0xC878, 0xC879, 0, + 0, 0x5F38, 0, 0, 0xC87A, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E6BE_x0213[] = { + 0x5F28, 0x5F27, 0x5F2D, 0xC863, 0x4021, 0, 0x5F24, 0xC864, + 0x772F, 0, 0, 0xC866, 0x7730, 0x7731, 0x5F30, 0, + 0xEF3A, 0x5F31, 0xC86A, 0xC86B, 0x7732, 0, 0xEF3B, 0x3442, + 0xEF38, 0, 0xC86E, 0, 0, 0, 0, 0xEF3D, + 0x7733, 0x5F36, 0, 0x5F35, 0x5F37, 0xEF3E, 0xC872, 0x7734, + 0xC874, 0, 0x5F3A, 0, 0, 0, 0xC875, 0xEF3F, + 0xC877, 0x4543, 0, 0x5F34, 0, 0xEF41, 0x7735, 0, + 0, 0x5F38, 0, 0, 0x7736, 0, 0xEF3C, 0, +}; +static const unsigned short utf8_to_euc_E6BF[] = { + 0x3763, 0x4279, 0x5F32, 0x473B, 0, 0xC87B, 0x5F39, 0xC87C, + 0xC87D, 0, 0xC87E, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x5F3E, 0x5F3C, 0, 0, + 0x5F3F, 0, 0xC921, 0x5F42, 0, 0, 0xC922, 0x5F3B, + 0x396A, 0x4728, 0, 0, 0x5E39, 0, 0, 0, + 0xC923, 0xC924, 0, 0x4D74, 0x5F3D, 0, 0x5F41, 0x4275, + 0xC925, 0x5F40, 0, 0x5F2B, 0, 0xC926, 0x6F69, 0, + 0, 0xC927, 0x5F45, 0, 0xC928, 0xC929, 0x5F49, 0, +}; +static const unsigned short utf8_to_euc_E6BF_x0213[] = { + 0x3763, 0x4279, 0x5F32, 0x473B, 0, 0xC87B, 0x5F39, 0x7737, + 0xEF42, 0xEF43, 0x7738, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x5F3E, 0x5F3C, 0, 0, + 0x5F3F, 0, 0xEF44, 0x5F42, 0, 0, 0xEF45, 0x5F3B, + 0x396A, 0x4728, 0, 0, 0x5E39, 0, 0, 0, + 0xC923, 0xEF46, 0, 0x4D74, 0x5F3D, 0, 0x5F41, 0x4275, + 0x773A, 0x5F40, 0, 0x5F2B, 0, 0x773B, 0x6F69, 0, + 0, 0x7739, 0x5F45, 0, 0xEF48, 0xC929, 0x5F49, 0, +}; +static const unsigned short utf8_to_euc_E780[] = { + 0xC92A, 0x5F47, 0, 0, 0, 0xC92B, 0xC92C, 0xC92D, + 0, 0x5F43, 0, 0x5F44, 0, 0xC92E, 0, 0x5F48, + 0, 0x5F46, 0, 0, 0, 0x494E, 0, 0xC92F, + 0x5F4E, 0, 0x5F4B, 0x5F4A, 0, 0x5F4D, 0x4654, 0x5F4F, + 0xC930, 0, 0, 0xC931, 0, 0, 0x4375, 0x426D, + 0xF44D, 0, 0, 0, 0x4025, 0, 0, 0xC932, + 0x5F50, 0, 0x5F52, 0, 0xC933, 0, 0, 0xC934, + 0, 0xC935, 0, 0, 0xC936, 0, 0x5F51, 0, +}; +static const unsigned short utf8_to_euc_E780_x0213[] = { + 0xEF49, 0x5F47, 0, 0, 0, 0x773C, 0x773D, 0xEF4A, + 0, 0x5F43, 0xEF4B, 0x5F44, 0, 0xC92E, 0, 0x5F48, + 0, 0x5F46, 0, 0, 0, 0x494E, 0, 0xC92F, + 0x5F4E, 0, 0x5F4B, 0x5F4A, 0, 0x5F4D, 0x4654, 0x5F4F, + 0xC930, 0, 0, 0xEF4C, 0, 0, 0x4375, 0x426D, + 0x773E, 0, 0, 0, 0x4025, 0, 0, 0xC932, + 0x5F50, 0, 0x5F52, 0, 0xC933, 0, 0, 0xC934, + 0, 0xEF4E, 0xEF4F, 0, 0xEF50, 0, 0x5F51, 0, +}; +static const unsigned short utf8_to_euc_E781[] = { + 0, 0, 0, 0xC937, 0xC938, 0, 0, 0, + 0xC939, 0xC93A, 0xC93B, 0xC93C, 0x5E75, 0, 0xC941, 0, + 0, 0x5F53, 0, 0, 0xC93D, 0xC93E, 0, 0, + 0x4667, 0, 0, 0, 0, 0xC93F, 0xC940, 0, + 0, 0, 0, 0x5F54, 0xC942, 0xC943, 0, 0, + 0, 0, 0, 0x3250, 0xC944, 0, 0xC945, 0x4574, + 0x3325, 0, 0, 0, 0, 0xC946, 0xC947, 0, + 0x3564, 0, 0, 0, 0x3C5E, 0x3A52, 0xC948, 0, +}; +static const unsigned short utf8_to_euc_E781_x0213[] = { + 0, 0, 0, 0xEF51, 0xC938, 0, 0, 0xEF52, + 0xC939, 0xC93A, 0x773F, 0xEF53, 0x5E75, 0, 0x7742, 0, + 0, 0x5F53, 0, 0, 0xEF55, 0xC93E, 0, 0, + 0x4667, 0, 0, 0, 0, 0x7740, 0x7741, 0, + 0, 0, 0, 0x5F54, 0x7743, 0xEF56, 0, 0, + 0, 0xEF57, 0, 0x3250, 0xEF58, 0, 0xEF59, 0x4574, + 0x3325, 0, 0, 0, 0, 0x7744, 0xEF5A, 0, + 0x3564, 0, 0, 0, 0x3C5E, 0x3A52, 0xEF5B, 0, +}; +static const unsigned short utf8_to_euc_E782[] = { + 0, 0xC949, 0, 0, 0, 0xC94A, 0xC94B, 0, + 0, 0x4F27, 0x3F66, 0, 0, 0, 0x316A, 0, + 0, 0, 0x5F56, 0, 0xC94C, 0xC94D, 0xC94E, 0xC94F, + 0xC950, 0x5F55, 0, 0xC951, 0, 0, 0, 0, + 0, 0, 0, 0, 0xC952, 0, 0, 0, + 0, 0, 0, 0xC953, 0x5F59, 0x433A, 0x5F5C, 0x5F57, + 0xC954, 0xC955, 0, 0x5F5B, 0xC956, 0, 0, 0xC957, + 0x5F5A, 0x4540, 0x3059, 0xF42E, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E782_x0213[] = { + 0, 0xEF5C, 0, 0, 0, 0x7745, 0xEF5D, 0, + 0, 0x4F27, 0x3F66, 0, 0, 0, 0x316A, 0, + 0, 0, 0x5F56, 0, 0xC94C, 0xEF5E, 0xC94E, 0xEF5F, + 0xC950, 0x5F55, 0, 0xC951, 0, 0, 0, 0xEF62, + 0, 0, 0, 0, 0x7746, 0, 0, 0, + 0, 0, 0, 0x7747, 0x5F59, 0x433A, 0x5F5C, 0x5F57, + 0xC954, 0xEF63, 0, 0x5F5B, 0xC956, 0, 0, 0x7748, + 0x5F5A, 0x4540, 0x3059, 0xEF60, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E783[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0x4E75, 0, 0xC958, 0x5F5E, 0, 0, 0, 0x3128, + 0, 0xC959, 0, 0xC95A, 0xC95B, 0xC95C, 0xC95D, 0, + 0xC95E, 0x5F60, 0, 0, 0xC95F, 0x5F5F, 0, 0x5F5D, + 0, 0, 0, 0, 0xC960, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x5F58, 0, 0, 0, 0, 0, 0, + 0, 0x4B23, 0xC961, 0, 0, 0x5F62, 0, 0, +}; +static const unsigned short utf8_to_euc_E783_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0x4E75, 0, 0xEF66, 0x5F5E, 0, 0, 0, 0x3128, + 0, 0xEF67, 0, 0xEF68, 0x7749, 0xC95C, 0xC95D, 0, + 0x774A, 0x5F60, 0, 0, 0xEF69, 0x5F5F, 0, 0x5F5D, + 0, 0, 0, 0, 0x774B, 0, 0, 0, + 0, 0, 0, 0, 0xEF65, 0, 0, 0, + 0, 0x5F58, 0, 0, 0, 0, 0, 0, + 0, 0x4B23, 0xC961, 0, 0, 0x5F62, 0, 0, +}; +static const unsigned short utf8_to_euc_E784[] = { + 0, 0, 0, 0xC962, 0xC963, 0xC964, 0xC965, 0xC966, + 0, 0x5F61, 0, 0xC967, 0xC968, 0, 0, 0xC969, + 0, 0, 0, 0, 0x316B, 0, 0, 0, + 0, 0x5F64, 0x4A32, 0, 0x5F63, 0, 0xC96A, 0, + 0xC96B, 0x4C35, 0, 0, 0, 0, 0x3E47, 0, + 0, 0, 0, 0xC96C, 0, 0xC96D, 0, 0xC96E, + 0xC96F, 0xC970, 0, 0, 0, 0, 0x4133, 0, + 0xC971, 0, 0, 0, 0x3E46, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E784_x0213[] = { + 0, 0, 0, 0xEF6A, 0xEF6B, 0xC964, 0xEF6C, 0xEF6D, + 0xEF6E, 0x5F61, 0, 0xC967, 0xEF6F, 0, 0, 0x774C, + 0, 0, 0, 0, 0x316B, 0, 0, 0, + 0, 0x5F64, 0x4A32, 0, 0x5F63, 0, 0x774E, 0, + 0x774F, 0x4C35, 0, 0, 0, 0, 0x3E47, 0, + 0, 0, 0, 0x774D, 0, 0xC96D, 0x7750, 0xEF71, + 0x7751, 0xEF72, 0, 0, 0, 0, 0x4133, 0, + 0xC971, 0, 0, 0, 0x3E46, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E785[] = { + 0, 0xC972, 0, 0, 0, 0xC973, 0xC974, 0xC975, + 0, 0x4E7B, 0xC976, 0xC977, 0x5F6A, 0, 0x4079, 0, + 0xC978, 0, 0xC979, 0, 0, 0x5F66, 0x5F6B, 0xC97A, + 0, 0x316C, 0xC97B, 0, 0xC97C, 0, 0xC97D, 0, + 0xC97E, 0, 0x5F69, 0, 0x4761, 0x5F65, 0x5F68, 0x3E48, + 0xCA21, 0x4851, 0, 0, 0x5F6C, 0, 0x3C51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xCA22, 0, 0, 0, 0x407A, 0, 0, +}; +static const unsigned short utf8_to_euc_E785_x0213[] = { + 0, 0xC972, 0, 0, 0, 0xC973, 0x7752, 0x7753, + 0, 0x4E7B, 0xEF74, 0xC977, 0x5F6A, 0, 0x4079, 0, + 0xEF73, 0x7754, 0x7756, 0xEF75, 0, 0x5F66, 0x5F6B, 0xC97A, + 0, 0x316C, 0xC97B, 0, 0x7757, 0, 0xEF76, 0, + 0x7758, 0, 0x5F69, 0, 0x4761, 0x5F65, 0x5F68, 0x3E48, + 0x7759, 0x4851, 0, 0, 0x5F6C, 0, 0x3C51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xCA22, 0, 0, 0, 0x407A, 0, 0, +}; +static const unsigned short utf8_to_euc_E786[] = { + 0xCA23, 0, 0, 0, 0x5F6F, 0xCA24, 0, 0xCA25, + 0x5F67, 0, 0x3727, 0, 0xCA26, 0, 0, 0x5F6D, + 0, 0, 0xCA27, 0, 0x4D50, 0x5F70, 0, 0, + 0, 0x7426, 0xCA28, 0xCA29, 0, 0, 0, 0x3D4F, + 0xCA2A, 0, 0xCA2B, 0, 0, 0, 0, 0, + 0x5F71, 0, 0, 0, 0x5F72, 0, 0, 0xCA2C, + 0xCA2D, 0x472E, 0xCA2E, 0xCA2F, 0, 0, 0, 0, + 0, 0x5F74, 0xCA30, 0, 0, 0, 0x5F75, 0xCA31, +}; +static const unsigned short utf8_to_euc_E786_x0213[] = { + 0xEF79, 0, 0, 0, 0x5F6F, 0x775B, 0, 0x775C, + 0x5F67, 0, 0x3727, 0, 0xCA26, 0, 0, 0x5F6D, + 0, 0, 0x775D, 0, 0x4D50, 0x5F70, 0xEF78, 0, + 0, 0x7426, 0xCA28, 0xEF7A, 0, 0, 0, 0x3D4F, + 0xEF7B, 0, 0xEF7C, 0, 0, 0, 0, 0, + 0x5F71, 0, 0, 0, 0x5F72, 0, 0xEF7D, 0xEF7E, + 0xCA2D, 0x472E, 0xCA2E, 0xF021, 0, 0, 0, 0, + 0, 0x5F74, 0x775F, 0, 0, 0, 0x5F75, 0xCA31, +}; +static const unsigned short utf8_to_euc_E787[] = { + 0xCA32, 0xCA33, 0, 0x4733, 0xCA34, 0, 0, 0, + 0x4575, 0x5F77, 0, 0xCA35, 0xCA36, 0, 0x5F79, 0, + 0x4E55, 0, 0x5F76, 0xCA37, 0x5F78, 0x316D, 0xCA38, 0x5F73, + 0, 0xCA39, 0xCA3A, 0, 0xCA3B, 0, 0, 0x535B, + 0x5F7A, 0, 0, 0, 0, 0x4167, 0x3B38, 0x5F7C, + 0, 0, 0, 0, 0x5F7B, 0x3F24, 0x5259, 0, + 0, 0, 0, 0, 0, 0x5F7D, 0, 0, + 0xCA3C, 0x6021, 0, 0x5F6E, 0x5F7E, 0, 0xCA3D, 0x6022, +}; +static const unsigned short utf8_to_euc_E787_x0213[] = { + 0xCA32, 0x775E, 0, 0x4733, 0x7760, 0, 0, 0, + 0x4575, 0x5F77, 0, 0xF023, 0xCA36, 0, 0x5F79, 0, + 0x4E55, 0, 0x5F76, 0xF024, 0x5F78, 0x316D, 0xCA38, 0x5F73, + 0, 0xF025, 0xCA3A, 0, 0xF026, 0, 0, 0x535B, + 0x5F7A, 0, 0, 0, 0, 0x4167, 0x3B38, 0x5F7C, + 0, 0, 0, 0, 0x5F7B, 0x3F24, 0x5259, 0, + 0, 0, 0, 0, 0, 0x5F7D, 0, 0, + 0xCA3C, 0x6021, 0, 0x5F6E, 0x5F7E, 0, 0x7761, 0x6022, +}; +static const unsigned short utf8_to_euc_E788[] = { + 0xCA3E, 0, 0, 0, 0, 0, 0x477A, 0xCA3F, + 0xCA40, 0xCA41, 0, 0, 0, 0x6023, 0, 0, + 0x6024, 0, 0, 0xCA42, 0, 0, 0, 0xCA43, + 0, 0, 0xCA44, 0x6025, 0, 0xCA45, 0, 0xCA46, + 0, 0, 0, 0, 0xCA47, 0, 0, 0, + 0x6026, 0, 0x445E, 0xCA48, 0x6028, 0x6027, 0, 0xCA49, + 0x6029, 0, 0x602A, 0, 0xCA4A, 0x3C5F, 0x4963, 0, + 0xCA4B, 0xCA4C, 0x4C6C, 0x602B, 0x602C, 0x4156, 0x3C24, 0x602D, +}; +static const unsigned short utf8_to_euc_E788_x0213[] = { + 0x7762, 0, 0, 0, 0, 0, 0x477A, 0xF027, + 0xCA40, 0xCA41, 0, 0, 0, 0x6023, 0, 0, + 0x6024, 0, 0, 0xCA42, 0, 0x7763, 0, 0xCA43, + 0, 0, 0xCA44, 0x6025, 0, 0xCA45, 0, 0xCA46, + 0, 0, 0, 0, 0xCA47, 0, 0, 0, + 0x6026, 0, 0x445E, 0xF02A, 0x6028, 0x6027, 0, 0xCA49, + 0x6029, 0, 0x602A, 0, 0xF02B, 0x3C5F, 0x4963, 0, + 0xF02C, 0xF02D, 0x4C6C, 0x602B, 0x602C, 0x4156, 0x3C24, 0x602D, +}; +static const unsigned short utf8_to_euc_E789[] = { + 0x602E, 0xCA4D, 0xCA4E, 0xCA4F, 0, 0xCA50, 0x602F, 0x4A52, + 0x4847, 0, 0, 0x6030, 0x4757, 0, 0xCA51, 0xCA52, + 0xCA53, 0, 0x442D, 0xCA54, 0, 0xCA55, 0xCA56, 0, + 0x6031, 0x3267, 0xCA57, 0x356D, 0xCA58, 0x4C46, 0xCA59, 0x4C36, + 0xCA5A, 0x3234, 0x4F34, 0xCA5B, 0, 0, 0, 0x4B52, + 0xCA5C, 0x4A2A, 0, 0xCA5D, 0, 0, 0xCA5E, 0xCA5F, + 0, 0xCA60, 0x4037, 0, 0x6032, 0, 0, 0xCA61, + 0xCA62, 0x4643, 0, 0xCA63, 0xCA64, 0x3823, 0x6033, 0xCA65, +}; +static const unsigned short utf8_to_euc_E789_x0213[] = { + 0x602E, 0xCA4D, 0xF02F, 0xCA4F, 0, 0xCA50, 0x602F, 0x4A52, + 0x4847, 0, 0, 0x6030, 0x4757, 0, 0xCA51, 0xCA52, + 0xCA53, 0, 0x442D, 0xF030, 0, 0x7764, 0x7765, 0xF031, + 0x6031, 0x3267, 0xCA57, 0x356D, 0xCA58, 0x4C46, 0xCA59, 0x4C36, + 0xCA5A, 0x3234, 0x4F34, 0xF032, 0, 0, 0, 0x4B52, + 0xCA5C, 0x4A2A, 0, 0xCA5D, 0, 0, 0xF034, 0xF035, + 0, 0xCA60, 0x4037, 0, 0x6032, 0, 0, 0xCA61, + 0xF036, 0x4643, 0, 0xCA63, 0xCA64, 0x3823, 0x6033, 0xF037, +}; +static const unsigned short utf8_to_euc_E78A[] = { + 0x3A54, 0x6035, 0x6034, 0, 0xCA66, 0, 0, 0x6036, + 0, 0xCA67, 0, 0, 0, 0xCA68, 0xCA69, 0, + 0, 0, 0x6037, 0xCA6A, 0, 0, 0x6038, 0, + 0, 0, 0, 0xCA6B, 0, 0, 0, 0, + 0x353E, 0, 0x6039, 0, 0, 0, 0, 0x603A, + 0xCA6C, 0, 0, 0, 0x3824, 0xCA6D, 0xCA6E, 0x4848, + 0, 0xCA6F, 0x603C, 0, 0xCA70, 0, 0x3E75, 0, + 0, 0x603B, 0, 0, 0, 0, 0xCA71, 0, +}; +static const unsigned short utf8_to_euc_E78A_x0213[] = { + 0x3A54, 0x6035, 0x6034, 0, 0xCA66, 0, 0, 0x6036, + 0, 0xCA67, 0, 0, 0, 0x7767, 0xF038, 0, + 0, 0, 0x6037, 0xCA6A, 0, 0, 0x6038, 0, + 0, 0, 0, 0x7768, 0, 0, 0, 0, + 0x353E, 0, 0x6039, 0, 0, 0, 0, 0x603A, + 0xCA6C, 0, 0, 0, 0x3824, 0xF03A, 0xF03B, 0x4848, + 0xF03C, 0xF03D, 0x603C, 0, 0xCA70, 0, 0x3E75, 0, + 0, 0x603B, 0, 0, 0, 0, 0x7769, 0, +}; +static const unsigned short utf8_to_euc_E78B[] = { + 0, 0xCA72, 0x3638, 0x603D, 0x603F, 0, 0x603E, 0xCA73, + 0, 0xCA74, 0, 0, 0xCA75, 0, 0x6040, 0, + 0x3851, 0, 0x6041, 0, 0, 0xCA76, 0xCA77, 0x3669, + 0xCA78, 0x4140, 0, 0x397D, 0, 0, 0, 0xCA79, + 0x6043, 0x6044, 0x6042, 0, 0, 0xCA7A, 0, 0, + 0, 0x3C6D, 0, 0, 0x4648, 0x3639, 0, 0, + 0, 0, 0, 0xCA7B, 0xCA7C, 0, 0, 0x6046, + 0x432C, 0x6045, 0xCA7D, 0xCA7E, 0x4F35, 0x4762, 0xCB21, 0, +}; +static const unsigned short utf8_to_euc_E78B_x0213[] = { + 0x776A, 0xF03E, 0x3638, 0x603D, 0x603F, 0, 0x603E, 0xCA73, + 0, 0xCA74, 0, 0, 0xF040, 0, 0x6040, 0, + 0x3851, 0, 0x6041, 0, 0, 0xCA76, 0xCA77, 0x3669, + 0xCA78, 0x4140, 0, 0x397D, 0, 0, 0, 0xCA79, + 0x6043, 0x6044, 0x6042, 0, 0, 0xCA7A, 0, 0, + 0, 0x3C6D, 0, 0, 0x4648, 0x3639, 0, 0, + 0, 0, 0, 0xF043, 0xCA7C, 0, 0, 0x6046, + 0x432C, 0x6045, 0xF044, 0x776B, 0x4F35, 0x4762, 0xCB21, 0, +}; +static const unsigned short utf8_to_euc_E78C[] = { + 0, 0, 0xCB22, 0, 0xCB23, 0xCB24, 0, 0xCB25, + 0, 0, 0x6049, 0xCB26, 0, 0xCB27, 0, 0, + 0, 0, 0xCB28, 0xCB29, 0, 0, 0x604B, 0x6048, + 0xCB2A, 0xCB2B, 0, 0x4C54, 0x604A, 0x604C, 0xCB2C, 0x4E44, + 0, 0, 0xCB2D, 0, 0xCB2E, 0x6050, 0, 0xCB2F, + 0xCB30, 0x604F, 0x4376, 0x472D, 0xCB31, 0, 0x3825, 0x604E, + 0, 0xCB32, 0xCB33, 0, 0x604D, 0xCB34, 0x4D31, 0x4D32, + 0, 0, 0xCB35, 0xCB36, 0, 0xCB37, 0x6051, 0x316E, +}; +static const unsigned short utf8_to_euc_E78C_x0213[] = { + 0, 0, 0xCB22, 0, 0xCB23, 0xCB24, 0, 0xF045, + 0, 0, 0x6049, 0xCB26, 0, 0xCB27, 0, 0, + 0, 0, 0xF046, 0xCB29, 0, 0, 0x604B, 0x6048, + 0xF047, 0xF048, 0, 0x4C54, 0x604A, 0x604C, 0xCB2C, 0x4E44, + 0, 0, 0xCB2D, 0, 0xCB2E, 0x6050, 0, 0x776D, + 0x776E, 0x604F, 0x4376, 0x472D, 0xF04B, 0, 0x3825, 0x604E, + 0, 0xF04C, 0xCB33, 0xF04D, 0x604D, 0xCB34, 0x4D31, 0x4D32, + 0, 0xF04A, 0xCB35, 0xCB36, 0, 0xF04E, 0x6051, 0x316E, +}; +static const unsigned short utf8_to_euc_E78D[] = { + 0, 0, 0, 0xCB38, 0x3976, 0x3B62, 0, 0, + 0, 0, 0, 0, 0, 0xCB39, 0x6052, 0x6053, + 0xCB3A, 0, 0xCB3B, 0, 0, 0, 0xCB3C, 0x6055, + 0xCB3D, 0, 0, 0, 0, 0xCB3E, 0xCB3F, 0xCB40, + 0xCB41, 0, 0, 0x3D43, 0, 0, 0xCB42, 0xCB43, + 0x6057, 0xCB44, 0x6056, 0xCB45, 0xCB46, 0, 0xCB47, 0xCB48, + 0x6058, 0xCB49, 0x334D, 0, 0, 0x605A, 0, 0xCB4A, + 0x6059, 0xCB4B, 0x605C, 0x605B, 0xCB4C, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E78D_x0213[] = { + 0, 0, 0, 0xCB38, 0x3976, 0x3B62, 0, 0, + 0, 0, 0, 0, 0, 0xCB39, 0x6052, 0x6053, + 0x7770, 0, 0xF04F, 0, 0, 0, 0xCB3C, 0x6055, + 0xCB3D, 0, 0, 0, 0, 0xCB3E, 0xCB3F, 0xCB40, + 0xCB41, 0, 0, 0x3D43, 0, 0, 0x7771, 0xCB43, + 0x6057, 0xCB44, 0x6056, 0xF051, 0xF052, 0, 0xF054, 0xF055, + 0x6058, 0xF056, 0x334D, 0, 0, 0x605A, 0, 0xF057, + 0x6059, 0xCB4B, 0x605C, 0x605B, 0x7772, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E78E[] = { + 0xCB4D, 0xCB4E, 0, 0xCB4F, 0x383C, 0xCB50, 0xCB51, 0x4E28, + 0, 0x364C, 0, 0x3226, 0, 0, 0xCB52, 0, + 0xCB53, 0, 0, 0xCB54, 0, 0xCB55, 0x366A, 0xCB56, + 0xCB57, 0, 0, 0, 0xCB58, 0, 0xCB59, 0xCB5A, + 0xCB5B, 0, 0xCB5C, 0, 0, 0xCB5D, 0xCB5E, 0, + 0, 0x3461, 0xCB5F, 0xCB60, 0, 0xCB61, 0, 0, + 0, 0, 0x4E68, 0x605E, 0, 0xCB62, 0, 0xCB63, + 0, 0xCB64, 0, 0x6060, 0xCB65, 0xCB66, 0, 0xCB67, +}; +static const unsigned short utf8_to_euc_E78E_x0213[] = { + 0xCB4D, 0xF058, 0, 0xCB4F, 0x383C, 0xF059, 0xCB51, 0x4E28, + 0, 0x364C, 0xF05A, 0x3226, 0, 0, 0xCB52, 0, + 0xCB53, 0, 0, 0xCB54, 0xF05B, 0x7773, 0x366A, 0xCB56, + 0xF05C, 0, 0, 0, 0xF05D, 0, 0xF05E, 0x7774, + 0x7775, 0, 0x7776, 0, 0, 0xF05F, 0x7777, 0, + 0xF060, 0x3461, 0xCB5F, 0x7778, 0, 0xCB61, 0, 0, + 0, 0, 0x4E68, 0x605E, 0, 0xF061, 0, 0xF062, + 0, 0xF063, 0, 0x6060, 0xF064, 0xCB66, 0, 0xF065, +}; +static const unsigned short utf8_to_euc_E78F[] = { + 0x6061, 0, 0x3251, 0, 0, 0xCB68, 0xCB69, 0, + 0x605D, 0xCB6A, 0x3B39, 0xCB6B, 0xCB6C, 0x4441, 0x605F, 0xCB6D, + 0, 0, 0xCB6E, 0xCB6F, 0, 0, 0xCB70, 0, + 0, 0xCB71, 0, 0, 0, 0xCB72, 0x6064, 0, + 0x3C6E, 0xCB73, 0, 0xCB74, 0, 0x6062, 0xCB75, 0xCB76, + 0, 0xCB77, 0x373E, 0, 0, 0x4849, 0x6063, 0, + 0, 0x607E, 0, 0, 0xCB78, 0xCB79, 0, 0xCB7A, + 0x6069, 0xCB7B, 0xCB7C, 0xCB7D, 0, 0xCB7E, 0x383D, 0xCC21, +}; +static const unsigned short utf8_to_euc_E78F_x0213[] = { + 0x6061, 0, 0x3251, 0, 0, 0xF066, 0xCB69, 0, + 0x605D, 0x7779, 0x3B39, 0xF067, 0xCB6C, 0x4441, 0x605F, 0x777A, + 0, 0, 0xCB6E, 0xCB6F, 0, 0, 0x777B, 0, + 0, 0x777C, 0, 0, 0, 0xCB72, 0x6064, 0, + 0x3C6E, 0xF068, 0, 0x777D, 0, 0x6062, 0xCB75, 0xF069, + 0, 0x777E, 0x373E, 0, 0, 0x4849, 0x6063, 0, + 0, 0x607E, 0, 0, 0xCB78, 0xCB79, 0, 0xCB7A, + 0x6069, 0xF06A, 0xF06C, 0xCB7D, 0, 0xCB7E, 0x383D, 0xCC21, +}; +static const unsigned short utf8_to_euc_E790[] = { + 0xCC22, 0xCC23, 0, 0x3565, 0xCC24, 0x6066, 0x4D7D, 0xCC25, + 0, 0x4E30, 0xCC26, 0, 0, 0, 0, 0, + 0, 0xCC27, 0, 0, 0, 0, 0, 0, + 0, 0, 0xCC28, 0xCC29, 0, 0, 0, 0, + 0, 0, 0x4276, 0, 0xCC2A, 0x6068, 0xCC2B, 0, + 0xCC2C, 0xCC2D, 0xCC2E, 0xCC2F, 0xCC30, 0xCC31, 0xCC32, 0xCC33, + 0xCC34, 0xCC35, 0x606A, 0x4E56, 0x3657, 0x487C, 0x474A, 0, + 0, 0xCC36, 0x606B, 0, 0, 0, 0, 0x606D, +}; +static const unsigned short utf8_to_euc_E790_x0213[] = { + 0xCC22, 0xF06D, 0, 0x3565, 0xCC24, 0x6066, 0x4D7D, 0x7821, + 0, 0x4E30, 0x7822, 0, 0, 0, 0, 0, + 0, 0xCC27, 0, 0xF06B, 0, 0, 0, 0, + 0, 0, 0x7823, 0x7824, 0, 0, 0, 0, + 0, 0, 0x4276, 0, 0xF06E, 0x6068, 0x7826, 0, + 0x7827, 0xCC2D, 0x7828, 0x7829, 0x782A, 0xCC31, 0x782B, 0x782C, + 0x782D, 0xF06F, 0x606A, 0x4E56, 0x3657, 0x487C, 0x474A, 0, + 0, 0xF070, 0x606B, 0, 0, 0, 0, 0x606D, +}; +static const unsigned short utf8_to_euc_E791[] = { + 0xCC37, 0x6070, 0, 0xCC38, 0xCC39, 0, 0xCC3A, 0xCC3B, + 0, 0, 0, 0xCC3C, 0, 0xCC3D, 0, 0, + 0, 0xCC3E, 0xCC3F, 0, 0, 0x606C, 0, 0xCC40, + 0, 0x606F, 0x386A, 0x314D, 0x6071, 0xCC41, 0x3F70, 0x606E, + 0x4E5C, 0, 0xCC42, 0x6074, 0x7424, 0, 0xCC43, 0xCC44, + 0xCC45, 0x6072, 0x6075, 0xCC46, 0, 0xCC47, 0xCC48, 0x6067, + 0x6073, 0xCC49, 0xCC4A, 0x3A3C, 0, 0, 0x6076, 0, + 0, 0, 0, 0, 0, 0, 0x6077, 0, +}; +static const unsigned short utf8_to_euc_E791_x0213[] = { + 0xF072, 0x6070, 0, 0xF073, 0x782E, 0, 0x782F, 0x7830, + 0, 0, 0, 0x7831, 0, 0xF074, 0, 0, + 0, 0xCC3E, 0xF075, 0xF071, 0, 0x606C, 0, 0x7832, + 0, 0x606F, 0x386A, 0x314D, 0x6071, 0xF076, 0x3F70, 0x606E, + 0x4E5C, 0, 0x7833, 0x6074, 0x7424, 0, 0xCC43, 0xCC44, + 0xCC45, 0x6072, 0x6075, 0x7834, 0, 0x7835, 0xCC48, 0x6067, + 0x6073, 0xF077, 0xCC4A, 0x3A3C, 0, 0, 0x6076, 0, + 0, 0, 0, 0, 0, 0, 0x6077, 0, +}; +static const unsigned short utf8_to_euc_E792[] = { + 0xCC4B, 0xCC4C, 0, 0x4D7E, 0, 0xCC4D, 0xCC4E, 0xCC4F, + 0, 0xCC50, 0, 0x6078, 0, 0, 0, 0xCC51, + 0xCC52, 0xCC53, 0xCC54, 0, 0, 0, 0, 0, + 0xCC55, 0xCC56, 0xCC57, 0, 0xCC58, 0, 0x6079, 0xCC59, + 0xCC5A, 0xCC5B, 0x6065, 0xCC5C, 0, 0, 0xCC5D, 0x607A, + 0xCC5E, 0xCC5F, 0xCC60, 0xCC61, 0, 0, 0xCC62, 0xCC63, + 0x3444, 0xCC64, 0xCC65, 0, 0, 0xCC66, 0, 0, + 0, 0xCC67, 0, 0xCC68, 0, 0x3C25, 0, 0xCC69, +}; +static const unsigned short utf8_to_euc_E792_x0213[] = { + 0xCC4B, 0xF078, 0, 0x4D7E, 0, 0xF079, 0x7836, 0x7837, + 0xF07A, 0x7838, 0, 0x6078, 0, 0, 0, 0xCC51, + 0x783D, 0xCC53, 0xF07C, 0, 0, 0, 0, 0xF07D, + 0x7839, 0xF07E, 0xCC57, 0, 0x783A, 0, 0x6079, 0x783B, + 0xF121, 0xF122, 0x6065, 0x783C, 0, 0xF123, 0x783E, 0x607A, + 0x783F, 0x7840, 0xF124, 0xF125, 0, 0, 0xCC62, 0xCC63, + 0x3444, 0xCC64, 0xCC65, 0, 0, 0x7841, 0, 0, + 0, 0xF126, 0xF128, 0xF127, 0, 0x3C25, 0, 0x7842, +}; +static const unsigned short utf8_to_euc_E793[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0xCC6A, 0xCC6B, 0x607B, 0, 0xCC6C, 0, 0, 0x607C, + 0xCC6D, 0, 0, 0xCC6E, 0x607D, 0, 0, 0, + 0xCC6F, 0, 0xCC70, 0xCC71, 0x313B, 0, 0xCC72, 0xCC73, + 0x6121, 0, 0x493B, 0x6122, 0xCC74, 0, 0x3424, 0x6123, + 0xCC75, 0x6124, 0xCC76, 0xCC77, 0, 0, 0x6125, 0xCC78, + 0x6127, 0x6128, 0x6126, 0, 0xCC79, 0, 0x4953, 0x612A, + 0x6129, 0, 0xCC7A, 0xCC7B, 0xCC7C, 0, 0, 0xCC7D, +}; +static const unsigned short utf8_to_euc_E793_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0x7843, 0x7844, 0x607B, 0, 0xCC6C, 0, 0, 0x607C, + 0xCC6D, 0, 0, 0xCC6E, 0x607D, 0, 0xF129, 0, + 0xF12A, 0, 0x7845, 0xCC71, 0x313B, 0, 0xF12B, 0xCC73, + 0x6121, 0, 0x493B, 0x6122, 0xCC74, 0, 0x3424, 0x6123, + 0xCC75, 0x6124, 0xCC76, 0xF12D, 0, 0, 0x6125, 0xF12C, + 0x6127, 0x6128, 0x6126, 0, 0xCC79, 0, 0x4953, 0x612A, + 0x6129, 0, 0xF12F, 0xCC7B, 0xCC7C, 0, 0, 0x7846, +}; +static const unsigned short utf8_to_euc_E794[] = { + 0, 0xF450, 0, 0x612C, 0x612B, 0x612D, 0xCC7E, 0, + 0, 0, 0, 0, 0x612E, 0x6130, 0x612F, 0, + 0, 0x3979, 0xCD21, 0x6132, 0, 0x6131, 0xCD22, 0xCD23, + 0x3445, 0, 0x3F53, 0, 0x453C, 0, 0x6133, 0x4038, + 0xCD24, 0xCD25, 0, 0x3B3A, 0xCD26, 0x3179, 0x6134, 0xCD27, + 0x4D51, 0xCD28, 0xCD29, 0x4A63, 0x6135, 0, 0, 0xCD2A, + 0x4544, 0x4D33, 0x3943, 0x3F3D, 0, 0, 0xCD2B, 0x434B, + 0x5234, 0xCD2C, 0x442E, 0x3268, 0x6136, 0xCD2D, 0xCD2E, 0xCD2F, +}; +static const unsigned short utf8_to_euc_E794_x0213[] = { + 0, 0x7847, 0, 0x612C, 0x612B, 0x612D, 0xCC7E, 0, + 0, 0, 0, 0, 0x612E, 0x6130, 0x612F, 0, + 0, 0x3979, 0xCD21, 0x6132, 0, 0x6131, 0xCD22, 0x7848, + 0x3445, 0, 0x3F53, 0, 0x453C, 0, 0x6133, 0x4038, + 0xF131, 0xCD25, 0, 0x3B3A, 0xF132, 0x3179, 0x6134, 0xCD27, + 0x4D51, 0xCD28, 0xF133, 0x4A63, 0x6135, 0, 0, 0x7849, + 0x4544, 0x4D33, 0x3943, 0x3F3D, 0, 0, 0xCD2B, 0x434B, + 0x5234, 0xCD2C, 0x442E, 0x3268, 0x6136, 0xF136, 0xF137, 0xCD2F, +}; +static const unsigned short utf8_to_euc_E795[] = { + 0xCD30, 0, 0, 0xCD31, 0x6137, 0, 0x613C, 0xCD32, + 0xCD33, 0x613A, 0x6139, 0x5A42, 0x3326, 0x6138, 0xCD34, 0x305A, + 0xCD35, 0x482A, 0xCD36, 0, 0x484A, 0, 0, 0xCD37, + 0, 0x4E31, 0x613D, 0x613B, 0x435C, 0x4026, 0xCD38, 0xCD39, + 0x482B, 0xCD3A, 0x492D, 0, 0x613F, 0x4E2C, 0x374D, 0x6140, + 0, 0x613E, 0x4856, 0x6141, 0, 0x6142, 0, 0xCD3B, + 0x305B, 0xCD3C, 0, 0x3E76, 0x6147, 0, 0x6144, 0x466D, + 0x6143, 0xCD3D, 0xCD3E, 0xCD3F, 0xCD40, 0xCD41, 0xCD42, 0x3526, +}; +static const unsigned short utf8_to_euc_E795_x0213[] = { + 0xF138, 0, 0, 0xCD31, 0x6137, 0, 0x613C, 0xCD32, + 0xF139, 0x613A, 0x6139, 0x5A42, 0x3326, 0x6138, 0xF13A, 0x305A, + 0xF13B, 0x482A, 0xF13C, 0, 0x484A, 0, 0, 0xCD37, + 0, 0x4E31, 0x613D, 0x613B, 0x435C, 0x4026, 0xCD38, 0xCD39, + 0x482B, 0xCD3A, 0x492D, 0, 0x613F, 0x4E2C, 0x374D, 0x6140, + 0, 0x613E, 0x4856, 0x6141, 0xF13D, 0x6142, 0, 0x784A, + 0x305B, 0xF13F, 0xF13E, 0x3E76, 0x6147, 0, 0x6144, 0x466D, + 0x6143, 0x784B, 0xF140, 0xCD3F, 0xCD40, 0xF141, 0xF142, 0x3526, +}; +static const unsigned short utf8_to_euc_E796[] = { + 0, 0xCD43, 0x614A, 0, 0, 0xCD44, 0x6145, 0x6146, + 0, 0x6149, 0x6148, 0x4925, 0, 0, 0x4142, 0x4141, + 0xCD45, 0x353F, 0xCD46, 0xCD47, 0x614B, 0xCD48, 0, 0, + 0, 0xCD49, 0x614C, 0, 0xCD4A, 0x614D, 0, 0, + 0, 0, 0xCD4B, 0x614F, 0xCD4C, 0x614E, 0, 0, + 0, 0, 0, 0x3156, 0, 0, 0, 0, + 0, 0x6157, 0x4868, 0x6151, 0xCD4D, 0x6153, 0, 0, + 0x6155, 0x3F3E, 0xCD4E, 0, 0x6156, 0x6154, 0x3C40, 0xCD4F, +}; +static const unsigned short utf8_to_euc_E796_x0213[] = { + 0, 0xF143, 0x614A, 0, 0, 0xCD44, 0x6145, 0x6146, + 0, 0x6149, 0x6148, 0x4925, 0xF145, 0, 0x4142, 0x4141, + 0xCD45, 0x353F, 0x784C, 0xCD47, 0x614B, 0xCD48, 0, 0, + 0, 0xCD49, 0x614C, 0, 0xCD4A, 0x614D, 0, 0, + 0, 0, 0xF147, 0x614F, 0xCD4C, 0x614E, 0, 0, + 0, 0, 0, 0x3156, 0, 0, 0, 0, + 0xF149, 0x6157, 0x4868, 0x6151, 0xCD4D, 0x6153, 0, 0xF14A, + 0x6155, 0x3F3E, 0xCD4E, 0, 0x6156, 0x6154, 0x3C40, 0xF14B, +}; +static const unsigned short utf8_to_euc_E797[] = { + 0xCD50, 0xCD51, 0x6150, 0x6152, 0xCD52, 0x4942, 0xCD53, 0x3E49, + 0, 0, 0x6159, 0, 0xCD54, 0x6158, 0xCD55, 0xCD56, + 0, 0, 0x615A, 0, 0x3C26, 0x3A2F, 0, 0xCD57, + 0x4577, 0x615B, 0, 0x444B, 0xCD58, 0, 0x615D, 0xCD59, + 0xCD5A, 0xCD5B, 0x4E21, 0x615C, 0xCD5C, 0, 0, 0xCD5D, + 0, 0x4169, 0, 0, 0xCD5E, 0, 0xCD5F, 0xCD60, + 0x6162, 0xCD61, 0x6164, 0x6165, 0x4354, 0, 0, 0, + 0, 0xCD62, 0x6163, 0, 0x6160, 0, 0x615E, 0x615F, +}; +static const unsigned short utf8_to_euc_E797_x0213[] = { + 0xF14C, 0xCD51, 0x6150, 0x6152, 0xCD52, 0x4942, 0xF14D, 0x3E49, + 0, 0, 0x6159, 0, 0xCD54, 0x6158, 0x784E, 0xF14E, + 0, 0, 0x615A, 0xF14F, 0x3C26, 0x3A2F, 0, 0xCD57, + 0x4577, 0x615B, 0, 0x444B, 0xCD58, 0xF150, 0x615D, 0xF151, + 0xF152, 0xCD5B, 0x4E21, 0x615C, 0x784F, 0, 0, 0xF153, + 0, 0x4169, 0, 0, 0xF154, 0, 0xF155, 0xCD60, + 0x6162, 0xF156, 0x6164, 0x6165, 0x4354, 0, 0, 0, + 0, 0xF157, 0x6163, 0, 0x6160, 0, 0x615E, 0x615F, +}; +static const unsigned short utf8_to_euc_E798[] = { + 0xCD63, 0x6161, 0xCD64, 0xCD65, 0xCD66, 0, 0, 0xCD67, + 0xCD68, 0x6168, 0xCD69, 0x6166, 0xCD6A, 0x6167, 0, 0xCD6B, + 0, 0, 0xCD6C, 0xCD6D, 0, 0xCD6E, 0xCD6F, 0, + 0, 0xCD70, 0, 0xCD71, 0xCD72, 0xCD73, 0xCD74, 0x6169, + 0x616B, 0x616C, 0x616D, 0xCD75, 0x616E, 0xCD76, 0xCD77, 0x616A, + 0, 0xCD78, 0, 0, 0, 0xCD79, 0, 0, + 0x6170, 0, 0xCD7A, 0xCD7B, 0x616F, 0xCD7C, 0, 0, + 0xCD7D, 0xCD7E, 0xCE21, 0x6171, 0xCE22, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E798_x0213[] = { + 0x7850, 0x6161, 0x7851, 0xF158, 0xCD66, 0, 0, 0xF15A, + 0x7852, 0x6168, 0xCD69, 0x6166, 0xCD6A, 0x6167, 0, 0xF15B, + 0, 0, 0xCD6C, 0xF15E, 0, 0x7853, 0x7854, 0, + 0xF159, 0x7855, 0, 0xF15F, 0xF160, 0xCD73, 0x7856, 0x6169, + 0x616B, 0x616C, 0x616D, 0xCD75, 0x616E, 0xF162, 0x7E7D, 0x616A, + 0xF163, 0xCD78, 0, 0, 0, 0x7857, 0, 0, + 0x6170, 0, 0xCD7A, 0xF165, 0x616F, 0x7858, 0, 0, + 0xCD7D, 0xCD7E, 0xCE21, 0x6171, 0xF164, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E799[] = { + 0xCE24, 0xCE25, 0x4E45, 0xCE26, 0xCE27, 0xCE28, 0x6174, 0x6172, + 0x6173, 0xCE29, 0xCE23, 0xCE2A, 0x3462, 0, 0, 0, + 0, 0, 0x4C7E, 0, 0, 0xCE2B, 0x4A4A, 0, + 0x6176, 0xCE2C, 0, 0, 0x6175, 0, 0, 0xCE2D, + 0, 0x6177, 0x6178, 0, 0xCE2E, 0xCE2F, 0, 0x617C, + 0x6179, 0x617A, 0x617B, 0, 0x617D, 0xCE30, 0xCE31, 0xCE32, + 0x617E, 0xCE33, 0x6221, 0, 0xCE34, 0, 0x6222, 0, + 0x6223, 0, 0x482F, 0x4550, 0x6224, 0x4772, 0x4934, 0, +}; +static const unsigned short utf8_to_euc_E799_x0213[] = { + 0xCE24, 0xF168, 0x4E45, 0x7859, 0xCE27, 0xCE28, 0x6174, 0x6172, + 0x6173, 0xF16A, 0xCE23, 0x785A, 0x3462, 0, 0, 0, + 0, 0, 0x4C7E, 0, 0, 0xF16B, 0x4A4A, 0, + 0x6176, 0xCE2C, 0, 0, 0x6175, 0, 0, 0xCE2D, + 0, 0x6177, 0x6178, 0, 0x785B, 0x785C, 0, 0x617C, + 0x6179, 0x617A, 0x617B, 0, 0x617D, 0x785D, 0xF16D, 0x785E, + 0x617E, 0x785F, 0x6221, 0, 0xCE34, 0, 0x6222, 0, + 0x6223, 0, 0x482F, 0x4550, 0x6224, 0x4772, 0x4934, 0, +}; +static const unsigned short utf8_to_euc_E79A[] = { + 0x6225, 0xCE35, 0xF451, 0x6226, 0x452A, 0xCE36, 0x3327, 0x3944, + 0x6227, 0, 0, 0x6228, 0xCE37, 0xCE38, 0x6229, 0, + 0x3B29, 0, 0, 0x622B, 0, 0xCE39, 0x622A, 0, + 0, 0x622C, 0x622D, 0xCE3A, 0xCE3B, 0xCE3C, 0xF452, 0xCE3D, + 0xCE3E, 0, 0xCE3F, 0xCE40, 0xCE41, 0xCE42, 0xCE43, 0xCE44, + 0xCE45, 0, 0xCE46, 0, 0, 0xCE47, 0x4869, 0, + 0x622E, 0, 0, 0, 0x622F, 0, 0, 0x7369, + 0x6230, 0x6231, 0x6232, 0, 0, 0xCE48, 0, 0x3B2E, +}; +static const unsigned short utf8_to_euc_E79A_x0213[] = { + 0x6225, 0x7860, 0xF451, 0x6226, 0x452A, 0xCE36, 0x3327, 0x3944, + 0x6227, 0, 0, 0x6228, 0xCE37, 0xCE38, 0x6229, 0, + 0x3B29, 0, 0, 0x622B, 0, 0xF16E, 0x622A, 0, + 0, 0x622C, 0x622D, 0x7861, 0xF16F, 0x7862, 0x7863, 0xCE3D, + 0xF171, 0xF170, 0xCE3F, 0xCE40, 0xCE41, 0xCE42, 0x7864, 0xF172, + 0xF173, 0, 0x7865, 0, 0, 0xCE47, 0x4869, 0xF174, + 0x622E, 0, 0, 0, 0x622F, 0, 0x7866, 0x7369, + 0x6230, 0x6231, 0x6232, 0, 0, 0xCE48, 0, 0x3B2E, +}; +static const unsigned short utf8_to_euc_E79B[] = { + 0, 0xCE49, 0x6233, 0x4756, 0, 0xCE4A, 0x4B5F, 0, + 0x314E, 0xCE4B, 0x3157, 0xCE4C, 0xCE4D, 0x6234, 0xCE4E, 0, + 0, 0, 0x6236, 0, 0xCE4F, 0, 0x6235, 0x4570, + 0, 0xCE50, 0, 0x4039, 0x5D39, 0, 0x6237, 0x4C41, + 0xCE51, 0x6238, 0, 0x3446, 0x4857, 0x6239, 0xCE52, 0x623A, + 0xCE53, 0, 0x623B, 0, 0xCE54, 0, 0x4C5C, 0, + 0xCE55, 0xCE56, 0x4C55, 0, 0x443E, 0, 0xCE57, 0, + 0x416A, 0xCE58, 0, 0x623D, 0xCE59, 0, 0x3D62, 0, +}; +static const unsigned short utf8_to_euc_E79B_x0213[] = { + 0, 0xCE49, 0x6233, 0x4756, 0, 0x7867, 0x4B5F, 0, + 0x314E, 0xF176, 0x3157, 0xCE4C, 0x7868, 0x6234, 0x7869, 0, + 0, 0, 0x6236, 0, 0x786A, 0, 0x6235, 0x4570, + 0, 0xCE50, 0, 0x4039, 0x5D39, 0, 0x6237, 0x4C41, + 0xCE51, 0x6238, 0, 0x3446, 0x4857, 0x6239, 0x786B, 0x623A, + 0xF178, 0, 0x623B, 0, 0xF179, 0, 0x4C5C, 0, + 0xCE55, 0x786C, 0x4C55, 0, 0x443E, 0, 0xCE57, 0, + 0x416A, 0xCE58, 0, 0x623D, 0x786D, 0, 0x3D62, 0, +}; +static const unsigned short utf8_to_euc_E79C[] = { + 0xCE5A, 0x3E4A, 0, 0, 0x6240, 0, 0xCE5B, 0x623F, + 0x623E, 0x487D, 0xCE5C, 0x3447, 0x3829, 0, 0xCE5D, 0, + 0, 0, 0xCE5E, 0, 0xCE5F, 0xCE60, 0, 0xCE61, + 0, 0xCE62, 0xCE63, 0x6246, 0xCE64, 0, 0x6243, 0x3F3F, + 0x4C32, 0, 0xCE65, 0, 0x6242, 0x6244, 0x6245, 0, + 0xCE66, 0x6241, 0, 0, 0, 0xCE67, 0xCE68, 0xCE69, + 0, 0, 0, 0, 0xCE6A, 0xCE6B, 0xCE6C, 0x6247, + 0x6248, 0xCE6D, 0x442F, 0, 0x3463, 0xCE6E, 0xCE6F, 0, +}; +static const unsigned short utf8_to_euc_E79C_x0213[] = { + 0xCE5A, 0x3E4A, 0, 0, 0x6240, 0, 0xCE5B, 0x623F, + 0x623E, 0x487D, 0x786E, 0x3447, 0x3829, 0, 0xCE5D, 0, + 0, 0, 0xCE5E, 0, 0xCE5F, 0xCE60, 0, 0xF17B, + 0, 0x786F, 0xF17C, 0x6246, 0xCE64, 0, 0x6243, 0x3F3F, + 0x4C32, 0, 0xCE65, 0, 0x6242, 0x6244, 0x6245, 0, + 0xCE66, 0x6241, 0, 0, 0, 0xF17D, 0xCE68, 0xCE69, + 0, 0, 0, 0, 0x7870, 0xF17E, 0x7871, 0x6247, + 0x6248, 0xCE6D, 0x442F, 0, 0x3463, 0xCE6E, 0xCE6F, 0, +}; +static const unsigned short utf8_to_euc_E79D[] = { + 0x4365, 0, 0xCE70, 0, 0, 0xCE71, 0xCE72, 0x6249, + 0, 0, 0xCE73, 0, 0, 0xCE74, 0xCE75, 0xCE76, + 0, 0, 0xCE77, 0, 0, 0, 0xCE78, 0xCE79, + 0, 0, 0x624A, 0x624D, 0xCE7A, 0, 0xCE7B, 0xCE7C, + 0xCE7D, 0x3F67, 0xCE7E, 0x4644, 0xCF21, 0x624E, 0x4B53, 0xCF22, + 0x624B, 0, 0xCF23, 0x624C, 0xCF24, 0, 0, 0, + 0xCF25, 0, 0xCF26, 0xCF27, 0xCF28, 0, 0, 0, + 0, 0x6251, 0xCF29, 0, 0, 0xCF2A, 0x6250, 0x624F, +}; +static const unsigned short utf8_to_euc_E79D_x0213[] = { + 0x4365, 0, 0xCE70, 0, 0, 0xCE71, 0x7872, 0x6249, + 0, 0, 0xCE73, 0, 0, 0x7873, 0x7874, 0xCE76, + 0, 0, 0xCE77, 0, 0, 0, 0xCE78, 0xCE79, + 0xF225, 0, 0x624A, 0x624D, 0x7875, 0, 0xCE7B, 0x7876, + 0xF226, 0x3F67, 0x7877, 0x4644, 0xCF21, 0x624E, 0x4B53, 0xCF22, + 0x624B, 0, 0xF227, 0x624C, 0xCF24, 0, 0, 0, + 0xCF25, 0, 0xF229, 0xCF27, 0xCF28, 0, 0, 0, + 0, 0x6251, 0x7878, 0, 0xF22A, 0xF22B, 0x6250, 0x624F, +}; +static const unsigned short utf8_to_euc_E79E[] = { + 0xCF2B, 0, 0, 0, 0xCF2C, 0, 0, 0, + 0, 0, 0, 0x6253, 0xCF2D, 0xCF2E, 0x6252, 0, + 0, 0x6254, 0, 0, 0xCF2F, 0xCF30, 0xCF31, 0, + 0, 0, 0xCF32, 0, 0, 0, 0x6256, 0xCF33, + 0x6255, 0, 0xCF34, 0, 0, 0x4A4D, 0, 0xCF35, + 0, 0, 0xCF36, 0, 0x3D56, 0x4E46, 0xCF37, 0xCF38, + 0x6257, 0xCF39, 0, 0x4637, 0, 0xCF3A, 0x6258, 0, + 0, 0x6259, 0, 0x625D, 0x625B, 0x625C, 0xCF3B, 0x625A, +}; +static const unsigned short utf8_to_euc_E79E_x0213[] = { + 0x7879, 0, 0, 0, 0xCF2C, 0, 0, 0, + 0, 0, 0, 0x6253, 0xCF2D, 0xCF2E, 0x6252, 0, + 0, 0x6254, 0, 0, 0x787A, 0xCF30, 0xCF31, 0, + 0, 0, 0xF22E, 0, 0, 0, 0x6256, 0xF22F, + 0x6255, 0, 0xF230, 0, 0xF231, 0x4A4D, 0, 0xCF35, + 0, 0xF232, 0x787B, 0, 0x3D56, 0x4E46, 0xCF37, 0xCF38, + 0x6257, 0xCF39, 0, 0x4637, 0, 0xCF3A, 0x6258, 0, + 0, 0x6259, 0, 0x625D, 0x625B, 0x625C, 0xCF3B, 0x625A, +}; +static const unsigned short utf8_to_euc_E79F[] = { + 0, 0, 0, 0xCF3C, 0, 0, 0, 0x625E, + 0, 0xCF3D, 0, 0, 0, 0x625F, 0, 0, + 0, 0xCF3E, 0xCF3F, 0, 0, 0xCF40, 0, 0x6260, + 0, 0xCF41, 0x6261, 0x4C37, 0x6262, 0, 0xCF42, 0xCF43, + 0xCF44, 0, 0x4C70, 0x6263, 0xCF45, 0x434E, 0xCF46, 0x476A, + 0, 0x366B, 0xCF47, 0, 0xCF48, 0x433B, 0x6264, 0x363A, + 0xCF49, 0xCF4A, 0, 0x4050, 0xCF4B, 0, 0, 0, + 0xCF4C, 0, 0, 0xCF4D, 0x6265, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E79F_x0213[] = { + 0, 0, 0, 0xCF3C, 0, 0, 0, 0x625E, + 0, 0xCF3D, 0, 0, 0, 0x625F, 0, 0, + 0, 0xCF3E, 0xCF3F, 0, 0, 0xCF40, 0, 0x6260, + 0, 0xCF41, 0x6261, 0x4C37, 0x6262, 0, 0xF233, 0xF234, + 0x787C, 0, 0x4C70, 0x6263, 0xF235, 0x434E, 0xF236, 0x476A, + 0, 0x366B, 0xF237, 0, 0xF238, 0x433B, 0x6264, 0x363A, + 0xF23A, 0xCF4A, 0, 0x4050, 0xF23B, 0, 0, 0, + 0xCF4C, 0, 0, 0xF23C, 0x6265, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7A0[] = { + 0, 0, 0x3A3D, 0, 0, 0xCF4E, 0xCF4F, 0, + 0, 0xCF50, 0, 0, 0x6266, 0xCF51, 0xCF52, 0, + 0, 0xCF53, 0x6267, 0, 0x3826, 0x3A55, 0, 0, + 0, 0, 0, 0, 0, 0xCF54, 0, 0, + 0x6269, 0xCF55, 0xCF56, 0xCF57, 0, 0x4556, 0x3A56, 0x354E, + 0, 0, 0, 0, 0, 0xCF58, 0xCF59, 0, + 0xCF5A, 0, 0x4B24, 0, 0x474B, 0xCF5B, 0, 0xCF5C, + 0, 0, 0x4557, 0, 0, 0, 0, 0x395C, +}; +static const unsigned short utf8_to_euc_E7A0_x0213[] = { + 0, 0, 0x3A3D, 0, 0, 0xF23E, 0xF23F, 0, + 0, 0xF240, 0, 0, 0x6266, 0xF241, 0xCF52, 0, + 0, 0xCF53, 0x6267, 0, 0x3826, 0x3A55, 0, 0, + 0, 0xF242, 0, 0, 0, 0xCF54, 0, 0, + 0x6269, 0xF243, 0xCF56, 0xCF57, 0, 0x4556, 0x3A56, 0x354E, + 0, 0, 0, 0, 0xF244, 0x787D, 0xCF59, 0, + 0xCF5A, 0, 0x4B24, 0, 0x474B, 0xCF5B, 0, 0xCF5C, + 0, 0, 0x4557, 0, 0, 0, 0, 0x395C, +}; +static const unsigned short utf8_to_euc_E7A1[] = { + 0, 0, 0, 0xCF5D, 0xCF5E, 0x626B, 0, 0xCF5F, + 0xCF60, 0, 0, 0, 0xCF61, 0, 0xCF62, 0, + 0, 0, 0xCF63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xCF64, 0x3E4B, 0xCF65, 0, + 0xCF66, 0xCF67, 0, 0xCF68, 0xCF69, 0, 0, 0, + 0xCF6A, 0, 0xCF6B, 0x4E32, 0x3945, 0, 0xCF6C, 0x3827, + 0, 0, 0x4823, 0, 0x626D, 0, 0, 0, + 0, 0, 0xCF6D, 0, 0x626F, 0, 0xCF6E, 0, +}; +static const unsigned short utf8_to_euc_E7A1_x0213[] = { + 0, 0, 0, 0x7921, 0xCF5E, 0x626B, 0, 0xF245, + 0xCF60, 0, 0, 0, 0xCF61, 0, 0x7922, 0x7923, + 0, 0x7924, 0xCF63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xCF64, 0x3E4B, 0xCF65, 0, + 0xCF66, 0xCF67, 0, 0xCF68, 0xF246, 0, 0, 0, + 0x7925, 0, 0xF247, 0x4E32, 0x3945, 0, 0x7926, 0x3827, + 0, 0, 0x4823, 0, 0x626D, 0, 0, 0, + 0, 0, 0xCF6D, 0, 0x626F, 0, 0xCF6E, 0, +}; +static const unsigned short utf8_to_euc_E7A2[] = { + 0, 0x386B, 0, 0, 0, 0, 0x626E, 0x4476, + 0, 0, 0xCF6F, 0, 0x6271, 0x3337, 0x626C, 0xCF70, + 0, 0x486A, 0, 0x3130, 0xCF71, 0x3A6C, 0, 0x4F52, + 0xCF72, 0, 0x6270, 0, 0, 0xCF74, 0xCF75, 0xCF76, + 0, 0xCF73, 0, 0x6272, 0xCF77, 0, 0, 0x4A4B, + 0xCF78, 0x4059, 0x6274, 0, 0xCF79, 0xCF7A, 0, 0x6275, + 0xCF7B, 0xCF7C, 0xCF7D, 0xCF7E, 0, 0x6273, 0, 0, + 0, 0, 0x334E, 0xD021, 0x627B, 0xD022, 0x627A, 0xD023, +}; +static const unsigned short utf8_to_euc_E7A2_x0213[] = { + 0, 0x386B, 0, 0, 0, 0, 0x626E, 0x4476, + 0, 0, 0xF249, 0, 0x6271, 0x3337, 0x626C, 0xCF70, + 0, 0x486A, 0, 0x3130, 0xF24A, 0x3A6C, 0, 0x4F52, + 0xCF72, 0, 0x6270, 0, 0, 0xF24C, 0xF24D, 0xF24E, + 0, 0xCF73, 0, 0x6272, 0xF24B, 0, 0, 0x4A4B, + 0xCF78, 0x4059, 0x6274, 0, 0xCF79, 0x792A, 0, 0x6275, + 0x7928, 0xCF7C, 0xCF7D, 0xCF7E, 0, 0x6273, 0, 0, + 0, 0, 0x334E, 0xF24F, 0x627B, 0xD022, 0x627A, 0xD023, +}; +static const unsigned short utf8_to_euc_E7A3[] = { + 0, 0x3C27, 0, 0, 0, 0x627C, 0x6277, 0xD024, + 0xD025, 0xD026, 0x627D, 0x6278, 0xD027, 0, 0xD028, 0, + 0x4858, 0x6276, 0xD029, 0xD02A, 0x6279, 0xD02B, 0xD02C, 0, + 0, 0, 0x6322, 0xD02E, 0, 0, 0, 0xD02F, + 0xD030, 0xD031, 0, 0, 0xD02D, 0, 0xD032, 0x6321, + 0x4B61, 0, 0xD033, 0, 0x627E, 0, 0, 0x306B, + 0, 0, 0xD034, 0xD035, 0x6324, 0, 0xD037, 0xD038, + 0, 0, 0xD039, 0xD03A, 0, 0x6323, 0, 0xD03B, +}; +static const unsigned short utf8_to_euc_E7A3_x0213[] = { + 0, 0x3C27, 0, 0, 0, 0x627C, 0x6277, 0xD024, + 0xF250, 0xD026, 0x627D, 0x6278, 0xF251, 0, 0xF252, 0, + 0x4858, 0x6276, 0xD029, 0xD02A, 0x6279, 0xF253, 0xD02C, 0, + 0, 0, 0x6322, 0xD02E, 0, 0, 0, 0xD02F, + 0xF254, 0xF255, 0, 0, 0x792B, 0, 0xF256, 0x6321, + 0x4B61, 0, 0xD033, 0, 0x627E, 0, 0, 0x306B, + 0, 0, 0x792C, 0xD035, 0x6324, 0, 0xD037, 0x792E, + 0, 0xF257, 0xF258, 0xF259, 0, 0x6323, 0xF25A, 0xD03B, +}; +static const unsigned short utf8_to_euc_E7A4[] = { + 0xD036, 0x3E4C, 0, 0, 0, 0, 0xD03C, 0x6325, + 0, 0, 0, 0, 0xD03D, 0, 0x4143, 0, + 0xD03E, 0x6327, 0x6326, 0, 0, 0, 0, 0, + 0, 0x6328, 0xD03F, 0, 0xD040, 0, 0xD041, 0xD042, + 0xD043, 0, 0, 0, 0, 0xD044, 0x6268, 0xD045, + 0, 0xD046, 0x626A, 0x632A, 0x6329, 0xD047, 0, 0, + 0xF454, 0xD048, 0, 0, 0xD049, 0xD04A, 0, 0, + 0, 0, 0x3C28, 0xD04B, 0x4E69, 0xD04C, 0x3C52, 0xD04D, +}; +static const unsigned short utf8_to_euc_E7A4_x0213[] = { + 0x792D, 0x3E4C, 0, 0, 0, 0, 0xD03C, 0x6325, + 0, 0, 0, 0, 0xD03D, 0, 0x4143, 0, + 0xF25C, 0x6327, 0x6326, 0, 0, 0, 0, 0, + 0, 0x6328, 0xD03F, 0xF25D, 0x792F, 0, 0xD041, 0xD042, + 0xD043, 0, 0, 0, 0, 0xF25F, 0x6268, 0xD045, + 0, 0xD046, 0x626A, 0x632A, 0x6329, 0xD047, 0x7930, 0, + 0xF25E, 0x7931, 0, 0, 0x7932, 0xD04A, 0, 0, + 0, 0, 0x3C28, 0xF260, 0x4E69, 0xD04C, 0x3C52, 0xD04D, +}; +static const unsigned short utf8_to_euc_E7A5[] = { + 0x632B, 0x3737, 0, 0, 0xD04E, 0xD04F, 0xD050, 0x3540, + 0x3527, 0x3B63, 0xD051, 0xD052, 0, 0, 0, 0xD053, + 0x4D34, 0xD054, 0, 0x6331, 0xD055, 0x6330, 0x4144, 0x632D, + 0xD056, 0, 0x632F, 0xD057, 0xD058, 0x3D4B, 0x3F40, 0x632E, + 0x632C, 0, 0x472A, 0, 0, 0x3E4D, 0, 0xD059, + 0x493C, 0xD05A, 0, 0xD05B, 0, 0x3A57, 0, 0, + 0, 0, 0xD05C, 0, 0, 0, 0, 0x4578, + 0, 0xD05D, 0x6332, 0xD05E, 0xD05F, 0, 0xD060, 0x6333, +}; +static const unsigned short utf8_to_euc_E7A5_x0213[] = { + 0x632B, 0x3737, 0, 0, 0xD04E, 0x7935, 0x7936, 0x3540, + 0x3527, 0x3B63, 0xF261, 0xD052, 0, 0, 0, 0xD053, + 0x4D34, 0xD054, 0, 0x6331, 0xD055, 0x6330, 0x4144, 0x632D, + 0xF262, 0, 0x632F, 0xF263, 0x793A, 0x3D4B, 0x3F40, 0x632E, + 0x632C, 0, 0x472A, 0, 0, 0x3E4D, 0, 0xF265, + 0x493C, 0xD05A, 0, 0xD05B, 0, 0x3A57, 0, 0, + 0, 0, 0xF266, 0, 0, 0, 0, 0x4578, + 0, 0x793E, 0x6332, 0xD05E, 0xD05F, 0, 0xD060, 0x6333, +}; +static const unsigned short utf8_to_euc_E7A6[] = { + 0x6349, 0x3658, 0, 0, 0x4F3D, 0x4135, 0, 0, + 0, 0, 0x6334, 0xD061, 0xD062, 0x3252, 0x4477, 0x4A21, + 0, 0xD063, 0, 0xD064, 0xD065, 0xD066, 0xD067, 0, + 0xD068, 0, 0, 0xD069, 0xD06A, 0x6335, 0, 0, + 0, 0xD06B, 0, 0, 0, 0, 0x357A, 0x6336, + 0xD06C, 0xD06D, 0x6338, 0xD06E, 0, 0, 0x6339, 0xD06F, + 0x4729, 0xD070, 0, 0x633A, 0xD071, 0, 0, 0, + 0xD072, 0x633B, 0x633C, 0xD073, 0, 0x3659, 0x3253, 0x4645, +}; +static const unsigned short utf8_to_euc_E7A6_x0213[] = { + 0x6349, 0x3658, 0, 0, 0x4F3D, 0x4135, 0, 0, + 0, 0, 0x6334, 0xD061, 0xD062, 0x3252, 0x4477, 0x4A21, + 0, 0xD063, 0, 0xD064, 0xF267, 0xF268, 0xF269, 0, + 0x7942, 0, 0, 0xF26A, 0xD06A, 0x6335, 0, 0, + 0, 0xF26B, 0, 0, 0, 0, 0x357A, 0x6336, + 0xD06C, 0xF26C, 0x6338, 0xD06E, 0, 0, 0x6339, 0xD06F, + 0x4729, 0x7943, 0, 0x633A, 0xF26D, 0, 0, 0, + 0x7944, 0x633B, 0x633C, 0xF26E, 0, 0x3659, 0x3253, 0x4645, +}; +static const unsigned short utf8_to_euc_E7A7[] = { + 0x3D28, 0x3B64, 0xD074, 0, 0xD075, 0, 0, 0xD076, + 0xD077, 0x633D, 0xD078, 0x3D29, 0, 0, 0, 0xD079, + 0, 0x324A, 0x4943, 0, 0xD07A, 0x633E, 0xD07B, 0, + 0x486B, 0, 0xD07C, 0, 0, 0xD07D, 0xD07E, 0x4145, + 0xD121, 0x6341, 0xD122, 0x6342, 0x4769, 0xD123, 0x3F41, 0x633F, + 0, 0x4361, 0xD124, 0xD125, 0x6340, 0xD126, 0, 0, + 0x3E4E, 0xD127, 0, 0, 0, 0, 0, 0, + 0xD128, 0, 0, 0x305C, 0xD129, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7A7_x0213[] = { + 0x3D28, 0x3B64, 0xF26F, 0, 0xD075, 0, 0, 0xF270, + 0x7945, 0x633D, 0x7946, 0x3D29, 0xF271, 0xF272, 0, 0xD079, + 0, 0x324A, 0x4943, 0, 0x7948, 0x633E, 0xF273, 0, + 0x486B, 0, 0xD07C, 0, 0, 0xD07D, 0x7949, 0x4145, + 0xD121, 0x6341, 0xD122, 0x6342, 0x4769, 0xD123, 0x3F41, 0x633F, + 0, 0x4361, 0xD124, 0x794A, 0x6340, 0x794B, 0, 0, + 0x3E4E, 0xD127, 0, 0, 0, 0, 0, 0, + 0xD128, 0, 0, 0x305C, 0xD129, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7A8[] = { + 0x3529, 0, 0xD12A, 0xD12B, 0, 0, 0, 0xD12C, + 0x6343, 0xD12D, 0xD12E, 0x4478, 0xD12F, 0x6344, 0x4047, 0, + 0, 0xD130, 0, 0, 0x4C2D, 0xD131, 0, 0x4923, + 0x6345, 0x6346, 0x4355, 0xD132, 0x4E47, 0, 0xD133, 0x6348, + 0x6347, 0xD134, 0, 0, 0, 0, 0, 0xD135, + 0, 0, 0, 0xD136, 0, 0xD137, 0x3C6F, 0xD138, + 0xD139, 0x634A, 0x3070, 0, 0xD13A, 0xD13B, 0, 0x634D, + 0xD13C, 0xD13D, 0xD13E, 0x634B, 0x3254, 0x374E, 0x634C, 0x3946, +}; +static const unsigned short utf8_to_euc_E7A8_x0213[] = { + 0x3529, 0, 0xD12A, 0x794C, 0, 0, 0, 0xD12C, + 0x6343, 0xD12D, 0xF278, 0x4478, 0xD12F, 0x6344, 0x4047, 0, + 0, 0xF279, 0, 0, 0x4C2D, 0xF27A, 0, 0x4923, + 0x6345, 0x6346, 0x4355, 0xF27B, 0x4E47, 0, 0xF27C, 0x6348, + 0x6347, 0xD134, 0, 0, 0, 0, 0, 0xD135, + 0, 0, 0, 0xD136, 0, 0xF27E, 0x3C6F, 0xD138, + 0xD139, 0x634A, 0x3070, 0, 0xD13A, 0xD13B, 0, 0x634D, + 0xF321, 0x794E, 0xD13E, 0x634B, 0x3254, 0x374E, 0x634C, 0x3946, +}; +static const unsigned short utf8_to_euc_E7A9[] = { + 0x3972, 0, 0x4A66, 0x634E, 0xD13F, 0xD140, 0x4B54, 0xD141, + 0xD142, 0x6350, 0, 0, 0xD143, 0x4051, 0x314F, 0x323A, + 0x302C, 0, 0, 0, 0, 0xD144, 0xD145, 0x634F, + 0, 0xD146, 0, 0, 0xD147, 0xD148, 0, 0xD149, + 0xD14A, 0x6351, 0x6352, 0x3E77, 0, 0xD14B, 0, 0xD14C, + 0, 0x6353, 0xD14D, 0x334F, 0, 0xD14E, 0, 0, + 0x6355, 0, 0, 0, 0x376A, 0xD14F, 0x3566, 0, + 0xD150, 0x6356, 0x3675, 0, 0, 0x6357, 0xD151, 0x407C, +}; +static const unsigned short utf8_to_euc_E7A9_x0213[] = { + 0x3972, 0, 0x4A66, 0x634E, 0xD13F, 0xD140, 0x4B54, 0xF322, + 0xD142, 0x6350, 0, 0, 0xF323, 0x4051, 0x314F, 0x323A, + 0x302C, 0, 0, 0, 0, 0xD144, 0xF324, 0x634F, + 0, 0xF325, 0, 0, 0xF326, 0x794F, 0, 0xF327, + 0xF328, 0x6351, 0x6352, 0x3E77, 0, 0xD14B, 0, 0xF329, + 0, 0x6353, 0xF32A, 0x334F, 0, 0x7950, 0, 0, + 0x6355, 0, 0, 0, 0x376A, 0xF32B, 0x3566, 0, + 0xF32C, 0x6356, 0x3675, 0, 0, 0x6357, 0xD151, 0x407C, +}; +static const unsigned short utf8_to_euc_E7AA[] = { + 0xD152, 0x464D, 0xD153, 0x4060, 0x3A75, 0xD154, 0xD155, 0, + 0x6358, 0, 0xD156, 0xD157, 0, 0, 0, 0, + 0xD158, 0xD159, 0x4362, 0x416B, 0xD15A, 0x635A, 0x635C, 0x6359, + 0x635B, 0, 0, 0, 0, 0, 0xD15B, 0x3722, + 0xD15C, 0, 0, 0xD15D, 0, 0, 0, 0, + 0, 0x635D, 0x3726, 0, 0xD15E, 0, 0x3567, 0x4D52, + 0x635F, 0, 0, 0xD15F, 0, 0xD160, 0x6360, 0, + 0, 0xD161, 0x312E, 0xD162, 0xD163, 0, 0, 0x6363, +}; +static const unsigned short utf8_to_euc_E7AA_x0213[] = { + 0xD152, 0x464D, 0xF32D, 0x4060, 0x3A75, 0x7952, 0xD155, 0, + 0x6358, 0, 0xF32E, 0xD157, 0, 0, 0, 0, + 0xF32F, 0xD159, 0x4362, 0x416B, 0xD15A, 0x635A, 0x635C, 0x6359, + 0x635B, 0, 0, 0, 0, 0, 0xD15B, 0x3722, + 0x7953, 0, 0, 0xF330, 0, 0, 0, 0, + 0, 0x635D, 0x3726, 0, 0xF331, 0, 0x3567, 0x4D52, + 0x635F, 0, 0, 0x7955, 0, 0xD160, 0x6360, 0, + 0, 0xF334, 0x312E, 0x7956, 0xF335, 0, 0xF336, 0x6363, +}; +static const unsigned short utf8_to_euc_E7AB[] = { + 0, 0, 0, 0x3376, 0x6362, 0x6361, 0xD164, 0x6365, + 0x635E, 0xD165, 0x6366, 0x4E29, 0xD166, 0x6367, 0xD167, 0x6368, + 0, 0xD168, 0x5474, 0x636A, 0, 0x6369, 0, 0, + 0, 0x636B, 0x636C, 0xD169, 0x4E35, 0x636D, 0, 0x706F, + 0x3E4F, 0x636E, 0x636F, 0x3D57, 0, 0x4638, 0x6370, 0xF459, + 0xD16A, 0xD16B, 0x4328, 0xD16C, 0xD16D, 0x6371, 0, 0x433C, + 0x6372, 0xD16E, 0, 0, 0xD16F, 0, 0x3625, 0, + 0x513F, 0x435D, 0x3C33, 0xD170, 0, 0xD171, 0xD172, 0x3448, +}; +static const unsigned short utf8_to_euc_E7AB_x0213[] = { + 0, 0, 0, 0x3376, 0x6362, 0x6361, 0xD164, 0x6365, + 0x635E, 0xD165, 0x6366, 0x4E29, 0xF338, 0x6367, 0x7957, 0x6368, + 0, 0xF339, 0x5474, 0x636A, 0, 0x6369, 0, 0, + 0, 0x636B, 0x636C, 0xD169, 0x4E35, 0x636D, 0, 0x706F, + 0x3E4F, 0x636E, 0x636F, 0x3D57, 0, 0x4638, 0x6370, 0xF33A, + 0xF33B, 0xD16B, 0x4328, 0x7958, 0xD16D, 0x6371, 0, 0x433C, + 0x6372, 0xD16E, 0, 0, 0xF33C, 0, 0x3625, 0, + 0x513F, 0x435D, 0x3C33, 0xD170, 0, 0x7959, 0xD172, 0x3448, +}; +static const unsigned short utf8_to_euc_E7AC[] = { + 0, 0, 0x6373, 0, 0x6422, 0, 0x6376, 0xD173, + 0x3568, 0, 0x6375, 0x6424, 0, 0, 0, 0x6374, + 0, 0x3E50, 0, 0, 0xD174, 0, 0, 0, + 0x6378, 0x6379, 0, 0x452B, 0, 0, 0x637A, 0xD175, + 0x335E, 0, 0, 0xD176, 0, 0x3F5A, 0x4964, 0xD177, + 0x637C, 0xD178, 0xD179, 0xD17A, 0x4268, 0xD17B, 0xD17C, 0xD17D, + 0xD17E, 0xD221, 0, 0x6377, 0xD222, 0x637B, 0x637D, 0, + 0, 0x3A7B, 0, 0, 0, 0xD223, 0, 0xD224, +}; +static const unsigned short utf8_to_euc_E7AC_x0213[] = { + 0, 0, 0x6373, 0, 0x6422, 0, 0x6376, 0xF33F, + 0x3568, 0, 0x6375, 0x6424, 0, 0, 0, 0x6374, + 0, 0x3E50, 0x795A, 0, 0xD174, 0, 0, 0, + 0x6378, 0x6379, 0, 0x452B, 0, 0, 0x637A, 0xD175, + 0x335E, 0, 0, 0xD176, 0, 0x3F5A, 0x4964, 0xF342, + 0x637C, 0xD178, 0xF343, 0xD17A, 0x4268, 0x795B, 0xF344, 0xF345, + 0xD17E, 0xF346, 0, 0x6377, 0xD222, 0x637B, 0x637D, 0, + 0, 0x3A7B, 0, 0x795C, 0, 0xF341, 0, 0xD224, +}; +static const unsigned short utf8_to_euc_E7AD[] = { + 0xD225, 0xD226, 0, 0, 0, 0x6426, 0x492E, 0xD227, + 0x4826, 0x4579, 0, 0x365A, 0x6425, 0x6423, 0xD228, 0x4835, + 0x637E, 0x435E, 0x457B, 0, 0x457A, 0xD229, 0x3A76, 0, + 0, 0, 0, 0, 0, 0x6438, 0, 0, + 0xD22A, 0, 0, 0, 0xD22B, 0x6428, 0xD22C, 0x642A, + 0, 0xD22D, 0xD22E, 0, 0x642D, 0xD22F, 0x642E, 0xD230, + 0x642B, 0x642C, 0xD231, 0xD232, 0x6429, 0x6427, 0, 0xD233, + 0, 0, 0x6421, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7AD_x0213[] = { + 0xD225, 0xF34A, 0, 0, 0, 0x6426, 0x492E, 0x795D, + 0x4826, 0x4579, 0, 0x365A, 0x6425, 0x6423, 0x795E, 0x4835, + 0x637E, 0x435E, 0x457B, 0, 0x457A, 0xF34C, 0x3A76, 0, + 0, 0, 0, 0, 0, 0x6438, 0, 0, + 0x795F, 0, 0, 0, 0xF34E, 0x6428, 0xF34F, 0x642A, + 0, 0xF350, 0xD22E, 0, 0x642D, 0x7960, 0x642E, 0x7961, + 0x642B, 0x642C, 0x7962, 0xF351, 0x6429, 0x6427, 0, 0xD233, + 0, 0xF34D, 0x6421, 0, 0, 0, 0, 0xF349, +}; +static const unsigned short utf8_to_euc_E7AE[] = { + 0, 0, 0, 0, 0xD234, 0, 0x4A4F, 0x3255, + 0, 0xD235, 0, 0x6435, 0, 0x6432, 0xD236, 0x6437, + 0xD237, 0xD238, 0x6436, 0, 0x4773, 0x4C27, 0xD239, 0x3B3B, + 0x6430, 0x6439, 0x6434, 0xD23A, 0x6433, 0x642F, 0xD23B, 0x6431, + 0xD23C, 0x3449, 0, 0, 0, 0xD23D, 0, 0, + 0, 0, 0x433D, 0, 0xD23E, 0x407D, 0, 0xD23F, + 0xD240, 0x4822, 0xD241, 0, 0x643E, 0xD242, 0xD243, 0, + 0x4824, 0, 0xD244, 0xD245, 0xD246, 0xD247, 0, 0, +}; +static const unsigned short utf8_to_euc_E7AE_x0213[] = { + 0, 0, 0, 0, 0xD234, 0, 0x4A4F, 0x3255, + 0, 0xD235, 0, 0x6435, 0, 0x6432, 0xD236, 0x6437, + 0xF354, 0xF355, 0x6436, 0, 0x4773, 0x4C27, 0xD239, 0x3B3B, + 0x6430, 0x6439, 0x6434, 0xF356, 0x6433, 0x642F, 0x7963, 0x6431, + 0xD23C, 0x3449, 0, 0, 0, 0xD23D, 0, 0, + 0, 0, 0x433D, 0, 0xD23E, 0x407D, 0, 0xF358, + 0xD240, 0x4822, 0xD241, 0, 0x643E, 0xF359, 0xD243, 0, + 0x4824, 0, 0xD244, 0xD245, 0xF35A, 0xD247, 0, 0, +}; +static const unsigned short utf8_to_euc_E7AF[] = { + 0x4061, 0x643B, 0xD248, 0, 0x484F, 0xD249, 0x643F, 0x4A53, + 0xD24A, 0x435B, 0xD24B, 0x643A, 0x643C, 0, 0, 0x643D, + 0, 0, 0, 0, 0xD24C, 0, 0xD24D, 0xD24E, + 0, 0xD24F, 0xD250, 0xD251, 0, 0x6440, 0, 0, + 0x3C44, 0, 0, 0, 0x4646, 0x6445, 0x6444, 0, + 0xD252, 0x6441, 0xD253, 0, 0, 0x4F36, 0, 0, + 0, 0, 0xD254, 0x644A, 0xD255, 0xD256, 0x644E, 0x644B, + 0xD257, 0xD258, 0xD259, 0, 0xD25A, 0, 0xD25B, 0, +}; +static const unsigned short utf8_to_euc_E7AF_x0213[] = { + 0x4061, 0x643B, 0xD248, 0, 0x484F, 0xF35B, 0x643F, 0x4A53, + 0xD24A, 0x435B, 0xF35C, 0x643A, 0x643C, 0, 0, 0x643D, + 0, 0, 0, 0, 0xF35F, 0, 0xF360, 0x7965, + 0, 0x7966, 0xF361, 0xD251, 0, 0x6440, 0, 0, + 0x3C44, 0, 0, 0, 0x4646, 0x6445, 0x6444, 0, + 0xD252, 0x6441, 0xF362, 0, 0, 0x4F36, 0, 0, + 0xF363, 0, 0xD254, 0x644A, 0xD255, 0xD256, 0x644E, 0x644B, + 0xD257, 0xD258, 0xD259, 0, 0xD25A, 0, 0xD25B, 0, +}; +static const unsigned short utf8_to_euc_E7B0[] = { + 0x6447, 0xD25C, 0xD25D, 0xD25E, 0xD25F, 0, 0xD260, 0x6448, + 0, 0xD261, 0, 0xD262, 0xD263, 0x644D, 0xD264, 0xD265, + 0, 0x6442, 0x5255, 0x6449, 0x6443, 0, 0, 0x644C, + 0, 0xD266, 0, 0xD267, 0, 0, 0, 0x6452, + 0xD268, 0x344A, 0, 0x644F, 0, 0xD269, 0xD26A, 0x6450, + 0xD26B, 0, 0x6451, 0x6454, 0xD26C, 0, 0, 0, + 0, 0xD26D, 0, 0xD26E, 0xD26F, 0, 0xD270, 0x6453, + 0x4876, 0xD271, 0xD272, 0, 0, 0x6455, 0x4E7C, 0x4A6D, +}; +static const unsigned short utf8_to_euc_E7B0_x0213[] = { + 0x6447, 0x7967, 0xD25D, 0xF364, 0xD25F, 0, 0xD260, 0x6448, + 0, 0xD261, 0, 0xF365, 0xD263, 0x644D, 0xF366, 0xF367, + 0, 0x6442, 0x5255, 0x6449, 0x6443, 0, 0, 0x644C, + 0, 0xD266, 0, 0xD267, 0, 0, 0x7969, 0x6452, + 0x796A, 0x344A, 0, 0x644F, 0, 0xD269, 0xF368, 0x6450, + 0xD26B, 0, 0x6451, 0x6454, 0xD26C, 0, 0, 0, + 0, 0x7968, 0, 0x796B, 0xD26F, 0, 0x796C, 0x6453, + 0x4876, 0xD271, 0xD272, 0, 0, 0x6455, 0x4E7C, 0x4A6D, +}; +static const unsigned short utf8_to_euc_E7B1[] = { + 0x645A, 0, 0, 0x6457, 0, 0, 0xD273, 0, + 0, 0, 0xD274, 0, 0x6456, 0x4052, 0, 0x6459, + 0x645B, 0xD276, 0xD277, 0xD278, 0x6458, 0xD275, 0x645F, 0, + 0x645C, 0xD279, 0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xD27E, 0x645D, + 0x6446, 0xD321, 0, 0xD322, 0x645E, 0x6460, 0, 0xD323, + 0, 0xD324, 0, 0, 0x6461, 0xD325, 0xD326, 0, + 0xD327, 0, 0xD328, 0x4A46, 0, 0x6462, 0, 0, + 0, 0xD329, 0, 0, 0xD32A, 0xD32B, 0x4C62, 0, +}; +static const unsigned short utf8_to_euc_E7B1_x0213[] = { + 0x645A, 0, 0, 0x6457, 0, 0xF369, 0xD273, 0, + 0, 0, 0xF36A, 0, 0x6456, 0x4052, 0, 0x6459, + 0x645B, 0xF36B, 0xD277, 0xD278, 0x6458, 0xD275, 0x645F, 0xF36C, + 0x645C, 0x796F, 0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xF36D, 0x645D, + 0x6446, 0xF36E, 0, 0xD322, 0x645E, 0x6460, 0, 0xD323, + 0, 0xF36F, 0, 0, 0x6461, 0x7970, 0xF370, 0xF371, + 0xF372, 0, 0xD328, 0x4A46, 0, 0x6462, 0, 0, + 0, 0x7971, 0, 0, 0xD32A, 0xD32B, 0x4C62, 0, +}; +static const unsigned short utf8_to_euc_E7B2[] = { + 0, 0x364E, 0x3729, 0x6463, 0, 0, 0xD32C, 0xD32D, + 0, 0x4A34, 0, 0x3F68, 0, 0x4C30, 0, 0xD32E, + 0x6464, 0, 0x4E33, 0, 0xD32F, 0x4774, 0, 0x4146, + 0x4734, 0, 0, 0x3D4D, 0, 0, 0xD330, 0x3040, + 0xD331, 0x6469, 0x6467, 0, 0x6465, 0x3421, 0xD332, 0x3E51, + 0x646A, 0, 0, 0x6468, 0, 0x6466, 0x646E, 0, + 0xD333, 0x646D, 0x646C, 0x646B, 0, 0, 0xD334, 0xD335, + 0, 0x646F, 0xD336, 0xD337, 0xD338, 0x6470, 0x403A, 0xD339, +}; +static const unsigned short utf8_to_euc_E7B2_x0213[] = { + 0, 0x364E, 0x3729, 0x6463, 0, 0, 0xD32C, 0xD32D, + 0, 0x4A34, 0, 0x3F68, 0, 0x4C30, 0, 0x7972, + 0x6464, 0, 0x4E33, 0, 0x7973, 0x4774, 0, 0x4146, + 0x4734, 0, 0, 0x3D4D, 0, 0, 0xD330, 0x3040, + 0x7974, 0x6469, 0x6467, 0, 0x6465, 0x3421, 0xF376, 0x3E51, + 0x646A, 0, 0, 0x6468, 0, 0x6466, 0x646E, 0, + 0xD333, 0x646D, 0x646C, 0x646B, 0, 0, 0xF378, 0xF379, + 0, 0x646F, 0xD336, 0xD337, 0x7975, 0x6470, 0x403A, 0xF37A, +}; +static const unsigned short utf8_to_euc_E7B3[] = { + 0x6471, 0, 0x6473, 0, 0xD33A, 0x6472, 0, 0xD33B, + 0xD33C, 0xD33D, 0x3852, 0, 0, 0xD33E, 0x4138, 0xD33F, + 0, 0, 0x6475, 0xD340, 0xD341, 0xD342, 0x457C, 0xD343, + 0x6474, 0xD344, 0xD345, 0, 0x6476, 0xD346, 0x4A35, 0x416C, + 0x3947, 0, 0x6477, 0, 0, 0, 0xD347, 0x4E48, + 0, 0xD348, 0, 0xD349, 0, 0, 0, 0x6479, + 0, 0, 0x647A, 0, 0x647B, 0xD34A, 0x647C, 0, + 0x3B65, 0, 0x647D, 0x374F, 0, 0, 0x356A, 0, +}; +static const unsigned short utf8_to_euc_E7B3_x0213[] = { + 0x6471, 0, 0x6473, 0, 0xF37C, 0x6472, 0, 0xD33B, + 0xF37E, 0xD33D, 0x3852, 0, 0, 0xF421, 0x4138, 0xD33F, + 0, 0, 0x6475, 0xD340, 0xD341, 0x7976, 0x457C, 0xF423, + 0x6474, 0x7977, 0xD345, 0, 0x6476, 0x7978, 0x4A35, 0x416C, + 0x3947, 0, 0x6477, 0, 0, 0, 0xF425, 0x4E48, + 0, 0xD348, 0, 0xF426, 0, 0, 0, 0x6479, + 0, 0, 0x647A, 0, 0x647B, 0xF428, 0x647C, 0, + 0x3B65, 0, 0x647D, 0x374F, 0, 0, 0x356A, 0, +}; +static const unsigned short utf8_to_euc_E7B4[] = { + 0x352A, 0, 0x6521, 0xD34B, 0x4C73, 0x3948, 0x647E, 0xD34C, + 0xD34D, 0xD34E, 0x6524, 0x4C66, 0, 0x473C, 0, 0xD34F, + 0x4933, 0xD350, 0xD351, 0xD352, 0x3D63, 0x6523, 0xD353, 0x3C53, + 0x3949, 0x3B66, 0x3569, 0x4A36, 0x6522, 0xD354, 0xD355, 0, + 0x4147, 0x4B42, 0x3A77, 0xD356, 0, 0, 0xD357, 0, + 0, 0, 0xD358, 0x3B67, 0x445D, 0xD359, 0x6527, 0x4E5F, + 0x3A59, 0xD35A, 0x6528, 0x3F42, 0, 0x652A, 0, 0, + 0, 0x3E52, 0x3A30, 0, 0xD35B, 0xD35C, 0xD35D, 0x6529, +}; +static const unsigned short utf8_to_euc_E7B4_x0213[] = { + 0x352A, 0, 0x6521, 0xF429, 0x4C73, 0x3948, 0x647E, 0x7979, + 0x797A, 0xF42A, 0x6524, 0x4C66, 0, 0x473C, 0, 0xD34F, + 0x4933, 0xD350, 0xF42C, 0x797B, 0x3D63, 0x6523, 0xD353, 0x3C53, + 0x3949, 0x3B66, 0x3569, 0x4A36, 0x6522, 0x797C, 0xF42D, 0, + 0x4147, 0x4B42, 0x3A77, 0x797D, 0, 0, 0xD357, 0, + 0, 0, 0xD358, 0x3B67, 0x445D, 0xD359, 0x6527, 0x4E5F, + 0x3A59, 0x797E, 0x6528, 0x3F42, 0, 0x652A, 0, 0, + 0, 0x3E52, 0x3A30, 0, 0xD35B, 0xF430, 0xF431, 0x6529, +}; +static const unsigned short utf8_to_euc_E7B5[] = { + 0xD35E, 0xD35F, 0x3D2A, 0x383E, 0x4148, 0x6525, 0x652B, 0xD360, + 0xD361, 0, 0, 0x6526, 0x3750, 0xD362, 0x652E, 0x6532, + 0x376B, 0xD363, 0, 0xD364, 0, 0, 0x652D, 0xD365, + 0, 0xD366, 0xD367, 0x6536, 0xD368, 0xD369, 0x394A, 0, + 0, 0x4D6D, 0x303C, 0x6533, 0, 0xD36A, 0x356B, 0xD36B, + 0x6530, 0, 0xD36C, 0, 0, 0, 0x6531, 0, + 0xD36D, 0x457D, 0x652F, 0x652C, 0, 0x3328, 0x4064, 0, + 0xD36E, 0x3828, 0xD36F, 0xD370, 0, 0x6538, 0, 0xD371, +}; +static const unsigned short utf8_to_euc_E7B5_x0213[] = { + 0xF432, 0x7A21, 0x3D2A, 0x383E, 0x4148, 0x6525, 0x652B, 0xF433, + 0x7A22, 0, 0, 0x6526, 0x3750, 0xD362, 0x652E, 0x6532, + 0x376B, 0xD363, 0, 0x7A23, 0, 0, 0x652D, 0xD365, + 0, 0xF437, 0xF438, 0x6536, 0x7A24, 0xD369, 0x394A, 0, + 0, 0x4D6D, 0x303C, 0x6533, 0, 0xD36A, 0x356B, 0xD36B, + 0x6530, 0, 0xF439, 0, 0, 0, 0x6531, 0, + 0xF43A, 0x457D, 0x652F, 0x652C, 0, 0x3328, 0x4064, 0, + 0xD36E, 0x3828, 0x7A25, 0xD370, 0, 0x6538, 0, 0xF43C, +}; +static const unsigned short utf8_to_euc_E7B6[] = { + 0, 0xD372, 0xD373, 0xD374, 0, 0xD375, 0xD376, 0, + 0xD377, 0x6535, 0, 0xD378, 0xD379, 0xD37A, 0, 0x6537, + 0, 0xD37B, 0, 0x6534, 0, 0, 0xD37C, 0xD37D, + 0, 0x3751, 0x4233, 0x6539, 0x416E, 0xD37E, 0xD421, 0x6546, + 0xF45C, 0, 0x6542, 0x653C, 0, 0, 0xD422, 0xD423, + 0, 0, 0xD424, 0x6540, 0x3C7A, 0x305D, 0x653B, 0x6543, + 0x6547, 0x394B, 0x4C56, 0xD425, 0x4456, 0x653D, 0xD426, 0xD427, + 0x6545, 0xD428, 0x653A, 0x433E, 0, 0x653F, 0x303D, 0x4C4A, +}; +static const unsigned short utf8_to_euc_E7B6_x0213[] = { + 0, 0xD372, 0xD373, 0x7A26, 0, 0xD375, 0xF43E, 0, + 0xF43F, 0x6535, 0, 0x7A27, 0xF440, 0xD37A, 0, 0x6537, + 0, 0xD37B, 0, 0x6534, 0, 0, 0xD37C, 0xF441, + 0, 0x3751, 0x4233, 0x6539, 0x416E, 0xF443, 0xD421, 0x6546, + 0x7A28, 0, 0x6542, 0x653C, 0, 0, 0x7A29, 0xF444, + 0, 0, 0xF445, 0x6540, 0x3C7A, 0x305D, 0x653B, 0x6543, + 0x6547, 0x394B, 0x4C56, 0xD425, 0x4456, 0x653D, 0xF446, 0xF447, + 0x6545, 0xD428, 0x653A, 0x433E, 0, 0x653F, 0x303D, 0x4C4A, +}; +static const unsigned short utf8_to_euc_E7B7[] = { + 0, 0, 0xD429, 0xD42A, 0xD42B, 0xD42C, 0xD42D, 0x653E, + 0, 0, 0x365B, 0x486C, 0xD42E, 0xD42F, 0xD430, 0x416D, + 0, 0x4E50, 0x3D6F, 0, 0, 0x656E, 0xF45D, 0xD431, + 0x6548, 0xD432, 0x407E, 0, 0x6544, 0x6549, 0x654B, 0, + 0x4479, 0x654E, 0xD434, 0, 0x654A, 0xD435, 0xD436, 0, + 0x4A54, 0x344B, 0xD437, 0xD438, 0x4C4B, 0xD439, 0, 0x305E, + 0, 0xD43A, 0x654D, 0, 0x4E7D, 0xD43B, 0xD43C, 0, + 0, 0xD43D, 0xD43E, 0x654C, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7B7_x0213[] = { + 0xF448, 0, 0x7A2A, 0xD42A, 0xD42B, 0xD42C, 0xD42D, 0x653E, + 0, 0, 0x365B, 0x486C, 0x7A2B, 0xD42F, 0xD430, 0x416D, + 0, 0x4E50, 0x3D6F, 0, 0, 0x656E, 0x7A2C, 0xF449, + 0x6548, 0xF44A, 0x407E, 0, 0x6544, 0x6549, 0x654B, 0, + 0x4479, 0x654E, 0xD434, 0x7A2D, 0x654A, 0xD435, 0xF44B, 0, + 0x4A54, 0x344B, 0xD437, 0xD438, 0x4C4B, 0xD439, 0, 0x305E, + 0, 0xF44C, 0x654D, 0, 0x4E7D, 0xD43B, 0xD43C, 0, + 0, 0xF44D, 0xD43E, 0x654C, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7B8[] = { + 0xD433, 0x316F, 0, 0, 0x466C, 0x654F, 0, 0, + 0xD43F, 0x6556, 0x6550, 0x6557, 0, 0, 0, 0, + 0xD440, 0xD441, 0x6553, 0, 0, 0xD442, 0, 0xD443, + 0, 0, 0, 0x477B, 0xD444, 0xD445, 0x3C4A, 0x6555, + 0xD446, 0x6552, 0x6558, 0x6551, 0, 0, 0x3D44, 0xD447, + 0xD448, 0, 0, 0x4B25, 0xD449, 0xD44A, 0x3D4C, 0xD44B, + 0, 0x6554, 0x6560, 0xD44C, 0, 0x655C, 0xD44D, 0x655F, + 0, 0x655D, 0x6561, 0x655B, 0, 0x6541, 0x4053, 0xD44E, +}; +static const unsigned short utf8_to_euc_E7B8_x0213[] = { + 0xD433, 0x316F, 0, 0, 0x466C, 0x654F, 0, 0, + 0x7A30, 0x6556, 0x6550, 0x6557, 0, 0, 0, 0, + 0xF451, 0x7A31, 0x6553, 0, 0, 0x7A32, 0, 0xF452, + 0, 0, 0, 0x477B, 0xD444, 0xF453, 0x3C4A, 0x6555, + 0xF454, 0x6552, 0x6558, 0x6551, 0, 0, 0x3D44, 0xF455, + 0x7A2F, 0, 0, 0x4B25, 0xF456, 0xD44A, 0x3D4C, 0xD44B, + 0, 0x6554, 0x6560, 0xD44C, 0, 0x655C, 0xD44D, 0x655F, + 0, 0x655D, 0x6561, 0x655B, 0, 0x6541, 0x4053, 0xD44E, +}; +static const unsigned short utf8_to_euc_E7B9[] = { + 0, 0x484B, 0, 0x655E, 0xD44F, 0xD450, 0x6559, 0xD451, + 0, 0, 0x4121, 0x3752, 0, 0x3D2B, 0xD452, 0, + 0xD453, 0, 0xD454, 0, 0x3F25, 0x4136, 0x6564, 0, + 0xD455, 0x6566, 0x6567, 0, 0, 0x6563, 0x6565, 0xD456, + 0, 0xD457, 0xD458, 0, 0, 0xD459, 0x655A, 0x6562, + 0, 0x656A, 0x6569, 0xD45A, 0, 0x4B7A, 0xD45B, 0xD45C, + 0x372B, 0, 0, 0xD45D, 0, 0, 0, 0, + 0xD45E, 0x6568, 0, 0x656C, 0x656B, 0x656F, 0xD45F, 0x6571, +}; +static const unsigned short utf8_to_euc_E7B9_x0213[] = { + 0, 0x484B, 0, 0x655E, 0xD44F, 0xF457, 0x6559, 0x7A34, + 0, 0, 0x4121, 0x3752, 0, 0x3D2B, 0xD452, 0, + 0xD453, 0, 0x7A35, 0, 0x3F25, 0x4136, 0x6564, 0, + 0xD455, 0x6566, 0x6567, 0, 0, 0x6563, 0x6565, 0xD456, + 0, 0x7A36, 0xD458, 0, 0, 0xD459, 0x655A, 0x6562, + 0, 0x656A, 0x6569, 0x7E7E, 0, 0x4B7A, 0xD45B, 0xD45C, + 0x372B, 0, 0, 0xF458, 0, 0xF459, 0, 0, + 0xD45E, 0x6568, 0, 0x656C, 0x656B, 0x656F, 0xF45A, 0x6571, +}; +static const unsigned short utf8_to_euc_E7BA[] = { + 0, 0xD460, 0x3B3C, 0x656D, 0, 0, 0xD461, 0xD462, + 0x6572, 0x6573, 0xD463, 0, 0x6574, 0xD464, 0x657A, 0x453B, + 0x6576, 0xD465, 0x6575, 0x6577, 0x6578, 0xD466, 0x6579, 0, + 0xD467, 0, 0xD468, 0x657B, 0x657C, 0xD469, 0xD46A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7BA_x0213[] = { + 0, 0xD460, 0x3B3C, 0x656D, 0, 0, 0xF45B, 0xF45C, + 0x6572, 0x6573, 0x7A37, 0, 0x6574, 0x7A38, 0x657A, 0x453B, + 0x6576, 0xF45E, 0x6575, 0x6577, 0x6578, 0xD466, 0x6579, 0, + 0xF45F, 0, 0xF460, 0x657B, 0x657C, 0xD469, 0xD46A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E7BC[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x344C, 0, + 0x657D, 0, 0x657E, 0xD46C, 0xD46B, 0xD46D, 0xD46E, 0xD46F, +}; +static const unsigned short utf8_to_euc_E7BC_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x344C, 0, + 0x657D, 0, 0x657E, 0xF463, 0xF462, 0xD46D, 0xF464, 0xD46F, +}; +static const unsigned short utf8_to_euc_E7BD[] = { + 0, 0, 0, 0xD470, 0xD471, 0x6621, 0, 0xD472, + 0, 0, 0, 0, 0x6622, 0x6623, 0x6624, 0xD473, + 0x6625, 0x6626, 0xD474, 0xD475, 0x6628, 0x6627, 0, 0, + 0x6629, 0, 0, 0xD476, 0xD477, 0xD478, 0, 0x662A, + 0x662B, 0xD479, 0, 0xD47A, 0xD47B, 0xD47C, 0xD47D, 0x662E, + 0x662C, 0x662D, 0x3A61, 0x3753, 0, 0xD47E, 0x4356, 0, + 0x4833, 0xD521, 0x3D70, 0, 0, 0x474D, 0, 0x486D, + 0x662F, 0x586D, 0, 0, 0, 0xD522, 0xD523, 0xD524, +}; +static const unsigned short utf8_to_euc_E7BD_x0213[] = { + 0, 0, 0, 0xF465, 0xF466, 0x6621, 0, 0x7A39, + 0, 0, 0, 0, 0x6622, 0x6623, 0x6624, 0xF467, + 0x6625, 0x6626, 0xF46A, 0xD475, 0x6628, 0x6627, 0, 0, + 0x6629, 0, 0, 0xD476, 0xD477, 0xD478, 0, 0x662A, + 0x662B, 0xF46C, 0, 0xF46D, 0xF46E, 0xD47C, 0xD47D, 0x662E, + 0x662C, 0x662D, 0x3A61, 0x3753, 0, 0xF46F, 0x4356, 0, + 0x4833, 0xD521, 0x3D70, 0, 0, 0x474D, 0, 0x486D, + 0x662F, 0x586D, 0, 0, 0, 0xF470, 0xF471, 0xD524, +}; +static const unsigned short utf8_to_euc_E7BE[] = { + 0xD525, 0, 0x6630, 0x6632, 0, 0x4D65, 0x6631, 0x6634, + 0x6633, 0, 0x4D53, 0xD526, 0x6635, 0xD527, 0x487E, 0xD528, + 0xD529, 0xD52A, 0, 0, 0x6636, 0, 0xD52B, 0xD52C, + 0, 0, 0x6639, 0, 0xD52D, 0x6638, 0x6637, 0, + 0, 0xD52E, 0xD52F, 0x663A, 0x3732, 0, 0xD530, 0, + 0x4122, 0x3541, 0xD531, 0, 0, 0xD532, 0x663E, 0x663B, + 0, 0, 0x663C, 0, 0xD533, 0, 0x663F, 0, + 0x6640, 0x663D, 0, 0, 0xD534, 0x3129, 0, 0xD535, +}; +static const unsigned short utf8_to_euc_E7BE_x0213[] = { + 0xD525, 0, 0x6630, 0x6632, 0, 0x4D65, 0x6631, 0x6634, + 0x6633, 0, 0x4D53, 0xD526, 0x6635, 0xD527, 0x487E, 0xD528, + 0xF473, 0x7A3B, 0, 0, 0x6636, 0, 0xF476, 0x7A3C, + 0, 0, 0x6639, 0, 0xF477, 0x6638, 0x6637, 0, + 0, 0xD52E, 0xD52F, 0x663A, 0x3732, 0, 0xD530, 0, + 0x4122, 0x3541, 0xD531, 0, 0, 0xF478, 0x663E, 0x663B, + 0, 0, 0x663C, 0, 0xD533, 0, 0x663F, 0, + 0x6640, 0x663D, 0, 0, 0xD534, 0x3129, 0, 0x7A3D, +}; +static const unsigned short utf8_to_euc_E7BF[] = { + 0xD536, 0x3227, 0, 0xD537, 0, 0x6642, 0x6643, 0, + 0xD538, 0, 0x6644, 0, 0x4D62, 0, 0xD539, 0xD53A, + 0, 0, 0x3D2C, 0, 0x6646, 0x6645, 0, 0, + 0, 0, 0, 0xD53B, 0, 0, 0, 0xD53C, + 0x3F69, 0x6647, 0, 0xD53D, 0, 0xD53E, 0x6648, 0, + 0xD53F, 0x6649, 0, 0x3465, 0xD540, 0, 0xD541, 0xD542, + 0x344D, 0, 0xD543, 0x664A, 0, 0, 0, 0, + 0, 0x664B, 0xD544, 0x4B5D, 0x4D63, 0xD545, 0xD546, 0xD547, +}; +static const unsigned short utf8_to_euc_E7BF_x0213[] = { + 0xD536, 0x3227, 0, 0xF47A, 0, 0x6642, 0x6643, 0, + 0xD538, 0, 0x6644, 0, 0x4D62, 0, 0x7A3E, 0xF47B, + 0, 0, 0x3D2C, 0, 0x6646, 0x6645, 0, 0, + 0, 0, 0, 0x7A3F, 0, 0, 0, 0x7A40, + 0x3F69, 0x6647, 0, 0xF47C, 0, 0xF47D, 0x6648, 0, + 0xD53F, 0x6649, 0, 0x3465, 0x7A41, 0, 0x7A42, 0xF47E, + 0x344D, 0, 0xF521, 0x664A, 0, 0, 0, 0, + 0, 0x664B, 0x7A43, 0x4B5D, 0x4D63, 0xD545, 0xD546, 0xD547, +}; +static const unsigned short utf8_to_euc_E880[] = { + 0x4D54, 0x4F37, 0, 0x394D, 0x664E, 0x3C54, 0x664D, 0xD548, + 0xD549, 0, 0xD54A, 0x664F, 0x3C29, 0xD54B, 0xD54C, 0xD54D, + 0x4251, 0xD54E, 0x6650, 0xD54F, 0xD550, 0x394C, 0xD551, 0x4C57, + 0x6651, 0x6652, 0, 0, 0x6653, 0xD552, 0xD553, 0xD554, + 0xD555, 0x6654, 0, 0, 0xD556, 0, 0xD557, 0, + 0x6655, 0, 0, 0, 0xD558, 0, 0xD559, 0, + 0xD55A, 0, 0, 0x3C2A, 0xD55B, 0xD55C, 0x4C6D, 0xD55D, + 0, 0xD55E, 0xD55F, 0x6657, 0xD560, 0x433F, 0xD561, 0x6656, +}; +static const unsigned short utf8_to_euc_E880_x0213[] = { + 0x4D54, 0x4F37, 0xF522, 0x394D, 0x664E, 0x3C54, 0x664D, 0xD548, + 0xF524, 0, 0xF523, 0x664F, 0x3C29, 0xD54B, 0xF525, 0xD54D, + 0x4251, 0xF526, 0x6650, 0xD54F, 0x7A45, 0x394C, 0xF527, 0x4C57, + 0x6651, 0x6652, 0, 0, 0x6653, 0xD552, 0xD553, 0xD554, + 0xD555, 0x6654, 0, 0, 0xF528, 0, 0x7A46, 0, + 0x6655, 0, 0, 0, 0xF529, 0, 0xD559, 0, + 0xF52A, 0, 0, 0x3C2A, 0xD55B, 0x7A47, 0x4C6D, 0x7A48, + 0, 0xD55E, 0xD55F, 0x6657, 0x7A49, 0x433F, 0xD561, 0x6656, +}; +static const unsigned short utf8_to_euc_E881[] = { + 0xD562, 0, 0, 0, 0xD563, 0, 0x6659, 0, + 0, 0, 0x6658, 0, 0, 0, 0, 0, + 0, 0, 0x665A, 0, 0, 0, 0x403B, 0, + 0x665B, 0, 0x665C, 0, 0, 0, 0x4A39, 0x665D, + 0xD564, 0x416F, 0x665E, 0, 0xD565, 0, 0xD566, 0, + 0x665F, 0, 0, 0, 0, 0xD567, 0, 0x4E7E, + 0x6662, 0xD568, 0x6661, 0x6660, 0x4430, 0xD569, 0x6663, 0x3F26, + 0, 0x6664, 0, 0, 0, 0x6665, 0x4F38, 0x6666, +}; +static const unsigned short utf8_to_euc_E881_x0213[] = { + 0xD562, 0, 0, 0xF52B, 0xD563, 0, 0x6659, 0, + 0, 0, 0x6658, 0, 0, 0, 0, 0, + 0, 0, 0x665A, 0, 0, 0, 0x403B, 0, + 0x665B, 0, 0x665C, 0, 0, 0, 0x4A39, 0x665D, + 0xD564, 0x416F, 0x665E, 0, 0xD565, 0, 0xF52C, 0, + 0x665F, 0, 0, 0, 0, 0xD567, 0, 0x4E7E, + 0x6662, 0xF52D, 0x6661, 0x6660, 0x4430, 0xF52E, 0x6663, 0x3F26, + 0, 0x6664, 0, 0xF52F, 0, 0x6665, 0x4F38, 0x6666, +}; +static const unsigned short utf8_to_euc_E882[] = { + 0, 0xD56A, 0, 0, 0x6667, 0x6669, 0x6668, 0x4825, + 0xD56B, 0x4679, 0, 0x4F3E, 0x4829, 0, 0xD56C, 0, + 0, 0, 0, 0x666B, 0, 0, 0x3E53, 0, + 0x492A, 0, 0x666C, 0x666A, 0xD56D, 0x344E, 0xD56E, 0, + 0, 0x3854, 0x3B68, 0, 0, 0x486E, 0xD56F, 0xD570, + 0, 0x382A, 0x4B43, 0xD571, 0x666F, 0x666D, 0, 0x394E, + 0, 0x394F, 0x3069, 0, 0x3A68, 0, 0, 0, + 0xD572, 0xD573, 0x4759, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E882_x0213[] = { + 0, 0xD56A, 0, 0, 0x6667, 0x6669, 0x6668, 0x4825, + 0xD56B, 0x4679, 0, 0x4F3E, 0x4829, 0, 0xD56C, 0, + 0, 0, 0, 0x666B, 0, 0, 0x3E53, 0, + 0x492A, 0xF530, 0x666C, 0x666A, 0xF531, 0x344E, 0xD56E, 0, + 0, 0x3854, 0x3B68, 0, 0xF532, 0x486E, 0xD56F, 0xF533, + 0, 0x382A, 0x4B43, 0xD571, 0x666F, 0x666D, 0, 0x394E, + 0, 0x394F, 0x3069, 0, 0x3A68, 0, 0, 0, + 0xF534, 0xD573, 0x4759, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E883[] = { + 0, 0, 0, 0x305F, 0x6674, 0, 0x4340, 0, + 0xD574, 0, 0, 0, 0x4758, 0xD575, 0x425B, 0xD576, + 0, 0, 0xD577, 0, 0xD578, 0xD579, 0x6676, 0xD57A, + 0xD57B, 0x6672, 0x6675, 0x6670, 0, 0x6673, 0x4B26, 0, + 0xD57C, 0x3855, 0, 0, 0x307D, 0x6671, 0, 0, + 0, 0, 0, 0, 0, 0xD57D, 0xD57E, 0x6678, + 0xD621, 0x6679, 0xD622, 0xD623, 0x4639, 0, 0xD624, 0, + 0x363B, 0xD625, 0xD626, 0, 0x6726, 0x473D, 0xD627, 0, +}; +static const unsigned short utf8_to_euc_E883_x0213[] = { + 0, 0, 0, 0x305F, 0x6674, 0xF536, 0x4340, 0, + 0xD574, 0, 0x7A4A, 0, 0x4758, 0xD575, 0x425B, 0xD576, + 0, 0, 0xD577, 0, 0xD578, 0xF537, 0x6676, 0x7A4B, + 0xF538, 0x6672, 0x6675, 0x6670, 0, 0x6673, 0x4B26, 0, + 0x7A4C, 0x3855, 0, 0, 0x307D, 0x6671, 0xF539, 0, + 0, 0, 0, 0, 0, 0xD57D, 0xD57E, 0x6678, + 0xD621, 0x6679, 0xD622, 0x7A4D, 0x4639, 0xF53C, 0xD624, 0, + 0x363B, 0xD625, 0xD626, 0xF53D, 0x6726, 0x473D, 0xD627, 0, +}; +static const unsigned short utf8_to_euc_E884[] = { + 0, 0, 0x3B69, 0xD628, 0, 0x363C, 0x4048, 0x4F46, + 0x4C2E, 0x6677, 0x4054, 0xD629, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xD62A, 0xD62B, + 0xD62C, 0, 0x3553, 0x667A, 0xD62D, 0, 0xD62E, 0, + 0xD62F, 0, 0, 0x667C, 0xD630, 0, 0, 0xD631, + 0, 0x667B, 0, 0, 0xD632, 0, 0, 0x667D, + 0xD633, 0x4326, 0, 0x473E, 0, 0xD634, 0, 0, + 0, 0x4431, 0xD635, 0, 0xD636, 0, 0x6723, 0, +}; +static const unsigned short utf8_to_euc_E884_x0213[] = { + 0, 0, 0x3B69, 0xD628, 0, 0x363C, 0x4048, 0x4F46, + 0x4C2E, 0x6677, 0x4054, 0xD629, 0, 0xF53B, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF540, 0xD62B, + 0x7A4E, 0, 0x3553, 0x667A, 0xD62D, 0, 0xF541, 0, + 0xD62F, 0, 0, 0x667C, 0xF543, 0, 0, 0xF544, + 0, 0x667B, 0, 0, 0xF545, 0, 0, 0x667D, + 0xD633, 0x4326, 0, 0x473E, 0, 0xF53F, 0, 0, + 0, 0x4431, 0xD635, 0, 0xD636, 0xF547, 0x6723, 0, +}; +static const unsigned short utf8_to_euc_E885[] = { + 0, 0, 0, 0, 0, 0xD637, 0x6722, 0xD638, + 0, 0, 0xD639, 0x667E, 0xD63A, 0, 0x3F55, 0, + 0x4965, 0x6725, 0xD63B, 0x6724, 0x3950, 0x4F53, 0, 0xD63C, + 0, 0, 0, 0, 0, 0, 0, 0x6735, + 0xD63D, 0xD63E, 0, 0, 0, 0x6729, 0x672A, 0xD63F, + 0xD640, 0xD641, 0, 0x3C70, 0, 0xD642, 0x6728, 0xD643, + 0x3978, 0x6727, 0, 0, 0x672B, 0, 0, 0xD644, + 0x4432, 0x4A22, 0x4123, 0, 0, 0, 0, 0x425C, +}; +static const unsigned short utf8_to_euc_E885_x0213[] = { + 0, 0, 0, 0, 0, 0xD637, 0x6722, 0xD638, + 0, 0, 0x7A4F, 0x667E, 0xD63A, 0, 0x3F55, 0, + 0x4965, 0x6725, 0xD63B, 0x6724, 0x3950, 0x4F53, 0, 0xD63C, + 0, 0, 0, 0, 0, 0, 0, 0x6735, + 0x7A50, 0xD63E, 0, 0, 0, 0x6729, 0x672A, 0x7A51, + 0x7A52, 0xF549, 0, 0x3C70, 0, 0x7A53, 0x6728, 0xD643, + 0x3978, 0x6727, 0, 0, 0x672B, 0, 0, 0xD644, + 0x4432, 0x4A22, 0x4123, 0, 0, 0, 0, 0x425C, +}; +static const unsigned short utf8_to_euc_E886[] = { + 0x672F, 0xD645, 0x6730, 0x672C, 0xD647, 0xD648, 0xD649, 0, + 0x672D, 0, 0x672E, 0xD64A, 0, 0, 0xD64B, 0x3951, + 0xD646, 0, 0, 0x6736, 0, 0x6732, 0xD64C, 0, + 0xD64D, 0, 0x4966, 0xD64E, 0x4B6C, 0x4928, 0xD64F, 0, + 0x6731, 0, 0xD650, 0x6734, 0x6733, 0, 0, 0, + 0x4B44, 0x6737, 0, 0, 0, 0, 0xD651, 0, + 0x6738, 0, 0xD652, 0x4137, 0xD653, 0x6739, 0, 0, + 0x673B, 0, 0x673F, 0xD654, 0, 0x673C, 0x673A, 0x473F, +}; +static const unsigned short utf8_to_euc_E886_x0213[] = { + 0x672F, 0xF54B, 0x6730, 0x672C, 0xF54D, 0xF54E, 0xD649, 0, + 0x672D, 0, 0x672E, 0xD64A, 0, 0, 0xD64B, 0x3951, + 0xD646, 0, 0, 0x6736, 0, 0x6732, 0xD64C, 0, + 0xF550, 0, 0x4966, 0xD64E, 0x4B6C, 0x4928, 0xD64F, 0, + 0x6731, 0, 0xD650, 0x6734, 0x6733, 0, 0, 0, + 0x4B44, 0x6737, 0, 0, 0, 0, 0xD651, 0, + 0x6738, 0, 0xF551, 0x4137, 0xD653, 0x6739, 0, 0, + 0x673B, 0, 0x673F, 0x7A54, 0, 0x673C, 0x673A, 0x473F, +}; +static const unsigned short utf8_to_euc_E887[] = { + 0x673D, 0, 0x673E, 0xD656, 0, 0xD657, 0x3232, 0, + 0x6745, 0x6740, 0xD658, 0xD655, 0, 0x6741, 0xD659, 0xD65A, + 0, 0x6742, 0, 0x4221, 0, 0xD65B, 0, 0xD65C, + 0x6744, 0x6743, 0x6746, 0xD65D, 0, 0xD65E, 0xD65F, 0x6747, + 0x6748, 0xD660, 0, 0x3F43, 0xD661, 0x3269, 0, 0x6749, + 0x4E57, 0, 0x3C2B, 0xD662, 0xD663, 0x3D2D, 0, 0, + 0xD664, 0xD665, 0xD666, 0x3B6A, 0x4357, 0xD667, 0xD668, 0, + 0xD669, 0xD66A, 0x674A, 0x674B, 0x3131, 0xD66B, 0x674C, 0xD66C, +}; +static const unsigned short utf8_to_euc_E887_x0213[] = { + 0x673D, 0xF552, 0x673E, 0xF553, 0, 0xD657, 0x3232, 0, + 0x6745, 0x6740, 0x7A55, 0xD655, 0, 0x6741, 0xD659, 0x7A56, + 0, 0x6742, 0, 0x4221, 0, 0xD65B, 0xF554, 0x7A57, + 0x6744, 0x6743, 0x6746, 0xF555, 0, 0xD65E, 0xD65F, 0x6747, + 0x6748, 0xD660, 0, 0x3F43, 0xF557, 0x3269, 0, 0x6749, + 0x4E57, 0, 0x3C2B, 0xD662, 0xF559, 0x3D2D, 0, 0, + 0xD664, 0xD665, 0xD666, 0x3B6A, 0x4357, 0xD667, 0xD668, 0, + 0xD669, 0xD66A, 0x674A, 0x674B, 0x3131, 0xF55B, 0x674C, 0xF55C, +}; +static const unsigned short utf8_to_euc_E888[] = { + 0xD66D, 0x674D, 0x674E, 0xD66E, 0, 0x674F, 0, 0x6750, + 0x363D, 0x5A2A, 0x6751, 0, 0x4065, 0x6752, 0x3C4B, 0xD66F, + 0x6753, 0, 0x5030, 0xD670, 0xD671, 0, 0x6754, 0x4A5E, + 0x345C, 0xD672, 0xD673, 0x4124, 0x3D58, 0xD674, 0x4971, 0x3D2E, + 0, 0xD675, 0xD676, 0, 0, 0, 0, 0, + 0xD677, 0x6755, 0x3952, 0x6756, 0x484C, 0, 0x6764, 0, + 0, 0, 0xD678, 0x6758, 0xD679, 0x4249, 0x4775, 0x383F, + 0x6757, 0x4125, 0xD67A, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E888_x0213[] = { + 0xD66D, 0x674D, 0x674E, 0xD66E, 0xF55E, 0x674F, 0, 0x6750, + 0x363D, 0x5A2A, 0x6751, 0, 0x4065, 0x6752, 0x3C4B, 0xD66F, + 0x6753, 0, 0x5030, 0xD670, 0xD671, 0, 0x6754, 0x4A5E, + 0x345C, 0xF560, 0xD673, 0x4124, 0x3D58, 0xD674, 0x4971, 0x3D2E, + 0, 0xF561, 0xF562, 0, 0, 0, 0, 0, + 0xD677, 0x6755, 0x3952, 0x6756, 0x484C, 0, 0x6764, 0, + 0, 0, 0xF564, 0x6758, 0xF565, 0x4249, 0x4775, 0x383F, + 0x6757, 0x4125, 0xD67A, 0, 0xF566, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E889[] = { + 0x6759, 0, 0, 0xD67B, 0xD67C, 0xD67D, 0xD67E, 0x447A, + 0, 0, 0, 0xD721, 0, 0, 0xD722, 0xD723, + 0, 0xD724, 0, 0, 0, 0, 0xD725, 0, + 0x675B, 0x675A, 0x675D, 0, 0xD726, 0x675C, 0, 0x675E, + 0xD727, 0, 0x6760, 0xD728, 0x675F, 0, 0x344F, 0xD729, + 0x6761, 0, 0x6762, 0x6763, 0, 0xD72A, 0x3A31, 0x4E49, + 0, 0x6765, 0x3F27, 0, 0xD72B, 0, 0x3170, 0x6766, + 0x6767, 0, 0, 0xD72C, 0, 0xD72D, 0x6768, 0xD72E, +}; +static const unsigned short utf8_to_euc_E889_x0213[] = { + 0x6759, 0, 0, 0xD67B, 0xD67C, 0xF569, 0xF567, 0x447A, + 0, 0xF568, 0, 0xF56B, 0, 0, 0xD722, 0xF56D, + 0, 0xD724, 0, 0, 0, 0, 0xD725, 0xF56F, + 0x675B, 0x675A, 0x675D, 0, 0xF571, 0x675C, 0, 0x675E, + 0x7A5B, 0, 0x6760, 0xF572, 0x675F, 0, 0x344F, 0xD729, + 0x6761, 0, 0x6762, 0x6763, 0, 0xD72A, 0x3A31, 0x4E49, + 0, 0x6765, 0x3F27, 0, 0x7A5C, 0, 0x3170, 0x6766, + 0x6767, 0xF576, 0, 0xD72C, 0, 0xF578, 0x6768, 0xF579, +}; +static const unsigned short utf8_to_euc_E88A[] = { + 0xD72F, 0xD730, 0, 0xD731, 0xD732, 0, 0, 0xD733, + 0, 0xD734, 0xD735, 0x3072, 0, 0x6769, 0xD736, 0, + 0, 0xD737, 0x676A, 0, 0xD738, 0, 0xD739, 0, + 0xD73A, 0x4967, 0xD73B, 0xD73C, 0, 0x3C47, 0, 0x676C, + 0xD73D, 0xD73E, 0, 0xD73F, 0xD740, 0x3329, 0x3032, 0xD741, + 0xD742, 0xD743, 0xD744, 0x676B, 0x676E, 0x474E, 0xD745, 0x3F44, + 0xD746, 0x3256, 0xD747, 0x4B27, 0xD748, 0, 0, 0xD749, + 0x375D, 0x365C, 0xD74A, 0x676D, 0xD74B, 0x326A, 0xD74C, 0xD74D, +}; +static const unsigned short utf8_to_euc_E88A_x0213[] = { + 0xD72F, 0xD730, 0, 0xF57A, 0xD732, 0, 0, 0xD733, + 0, 0xD734, 0xF57B, 0x3072, 0, 0x6769, 0x7A5E, 0, + 0, 0xD737, 0x676A, 0xF57C, 0xD738, 0, 0xD739, 0, + 0xD73A, 0x4967, 0xD73B, 0xD73C, 0, 0x3C47, 0, 0x676C, + 0xD73D, 0x7A5F, 0, 0x7A60, 0x7A61, 0x3329, 0x3032, 0xF57D, + 0xF57E, 0x7A62, 0xD744, 0x676B, 0x676E, 0x474E, 0x7A63, 0x3F44, + 0xD746, 0x3256, 0xF621, 0x4B27, 0xF622, 0, 0, 0x7A64, + 0x375D, 0x365C, 0xF623, 0x676D, 0xF624, 0x326A, 0x7A65, 0x7A66, +}; +static const unsigned short utf8_to_euc_E88B[] = { + 0, 0, 0, 0, 0, 0x3423, 0xD74E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xD74F, 0x3171, 0x6772, 0x4E6A, 0x425D, 0xD750, 0, 0x4944, + 0, 0x677E, 0xD751, 0x3257, 0x677C, 0, 0x677A, 0x6771, + 0xD752, 0x676F, 0xD753, 0x6770, 0xD754, 0x3C63, 0x366C, 0x4377, + 0xD755, 0, 0xD756, 0x4651, 0, 0xD757, 0, 0xD758, + 0, 0x3151, 0, 0x6774, 0x6773, 0, 0xD759, 0xD75A, + 0, 0x6779, 0x6775, 0x6778, 0, 0xD75B, 0xD75C, 0, +}; +static const unsigned short utf8_to_euc_E88B_x0213[] = { + 0, 0, 0, 0, 0, 0x3423, 0x7A67, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xD74F, 0x3171, 0x6772, 0x4E6A, 0x425D, 0x7A68, 0, 0x4944, + 0, 0x677E, 0xD751, 0x3257, 0x677C, 0, 0x677A, 0x6771, + 0xD752, 0x676F, 0xF625, 0x6770, 0xD754, 0x3C63, 0x366C, 0x4377, + 0xF626, 0, 0xD756, 0x4651, 0, 0xD757, 0, 0xD758, + 0, 0x3151, 0, 0x6774, 0x6773, 0, 0xD759, 0xF627, + 0, 0x6779, 0x6775, 0x6778, 0, 0x7A69, 0x7A6A, 0, +}; +static const unsigned short utf8_to_euc_E88C[] = { + 0xD75D, 0xD75E, 0x4C50, 0x6777, 0x3258, 0x337D, 0x677B, 0xD75F, + 0xD760, 0x677D, 0xD761, 0xD762, 0, 0, 0x3754, 0, + 0, 0, 0, 0, 0, 0, 0x6823, 0x682C, + 0x682D, 0, 0, 0xD764, 0x302B, 0xD765, 0xD766, 0xD767, + 0, 0xD768, 0xD769, 0x6834, 0, 0, 0, 0, + 0x3071, 0, 0, 0x682B, 0xD76A, 0xD76B, 0xD76C, 0x682A, + 0xD76D, 0x6825, 0x6824, 0xD76E, 0x6822, 0x6821, 0x4363, 0xD76F, + 0x427B, 0x6827, 0xD770, 0, 0xD771, 0xD772, 0, 0, +}; +static const unsigned short utf8_to_euc_E88C_x0213[] = { + 0x7A6B, 0x7A6C, 0x4C50, 0x6777, 0x3258, 0x337D, 0x677B, 0xF628, + 0xF629, 0x677D, 0xD761, 0xD762, 0xF62A, 0, 0x3754, 0, + 0, 0, 0, 0, 0, 0, 0x6823, 0x682C, + 0x682D, 0, 0, 0xF62C, 0x302B, 0xF62D, 0xD766, 0xD767, + 0, 0xD768, 0x7A6E, 0x6834, 0, 0, 0, 0, + 0x3071, 0, 0, 0x682B, 0xD76A, 0x7A6F, 0xD76C, 0x682A, + 0xF62E, 0x6825, 0x6824, 0xD76E, 0x6822, 0x6821, 0x4363, 0xD76F, + 0x427B, 0x6827, 0x7A70, 0, 0xF62F, 0xD772, 0, 0, +}; +static const unsigned short utf8_to_euc_E88D[] = { + 0x6826, 0, 0xD773, 0xD774, 0xD775, 0x6829, 0, 0xD776, + 0, 0x4170, 0x3755, 0, 0, 0xD777, 0xD778, 0x3141, + 0x6828, 0xD779, 0x3953, 0xD83E, 0xD763, 0xD77A, 0xD77B, 0xD77C, + 0x4171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xF45F, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xD77D, 0, 0, 0x683A, 0, 0x683B, 0, 0x3259, + 0xD77E, 0, 0, 0x322E, 0x6838, 0xD821, 0, 0xD822, +}; +static const unsigned short utf8_to_euc_E88D_x0213[] = { + 0x6826, 0, 0xD773, 0x7A71, 0xF630, 0x6829, 0, 0x7A72, + 0, 0x4170, 0x3755, 0, 0, 0xD777, 0xD778, 0x3141, + 0x6828, 0x7A73, 0x3953, 0xD83E, 0xF62B, 0x7A74, 0xD77B, 0xF631, + 0x4171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x7A6D, 0xAE4A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xD77D, 0, 0, 0x683A, 0, 0x683B, 0, 0x3259, + 0xD77E, 0, 0, 0x322E, 0x6838, 0x7A75, 0, 0xF633, +}; +static const unsigned short utf8_to_euc_E88E[] = { + 0xD823, 0, 0xD824, 0, 0xD825, 0x682E, 0xD826, 0x6836, + 0, 0x683D, 0x6837, 0, 0, 0xD827, 0x6835, 0, + 0, 0, 0xD828, 0x6776, 0xD829, 0xD82A, 0x6833, 0, + 0xD82B, 0xD82C, 0x682F, 0xD82D, 0xD82E, 0xD82F, 0x3450, 0x6831, + 0x683C, 0, 0x6832, 0, 0, 0, 0xD830, 0xD831, + 0x683E, 0xD832, 0x6830, 0x477C, 0xD833, 0xD84C, 0, 0, + 0, 0x4D69, 0, 0, 0, 0x6839, 0, 0, + 0, 0, 0, 0, 0, 0x684F, 0xD834, 0xD835, +}; +static const unsigned short utf8_to_euc_E88E_x0213[] = { + 0xD823, 0, 0xD824, 0, 0xD825, 0x682E, 0x7A76, 0x6836, + 0, 0x683D, 0x6837, 0, 0, 0xF636, 0x6835, 0, + 0, 0, 0x7A77, 0x6776, 0xF637, 0xF638, 0x6833, 0, + 0x7A78, 0xD82C, 0x682F, 0xF639, 0xD82E, 0xF63A, 0x3450, 0x6831, + 0x683C, 0, 0x6832, 0, 0, 0, 0xD830, 0x7A79, + 0x683E, 0x7A7A, 0x6830, 0x477C, 0xD833, 0xD84C, 0, 0, + 0, 0x4D69, 0, 0, 0, 0x6839, 0, 0, + 0, 0, 0, 0, 0, 0x684F, 0xD834, 0x7A7B, +}; +static const unsigned short utf8_to_euc_E88F[] = { + 0xD836, 0x6847, 0, 0, 0, 0x3F7B, 0, 0xD837, + 0, 0xD838, 0x3546, 0, 0x365D, 0, 0x6842, 0xD839, + 0xD83A, 0xD83B, 0, 0x325B, 0xD83C, 0, 0x3E54, 0, + 0x6845, 0, 0, 0, 0x3A5A, 0xD83D, 0, 0x4551, + 0x684A, 0, 0, 0, 0, 0, 0, 0, + 0xD83F, 0x4A6E, 0xD840, 0x6841, 0, 0, 0, 0x325A, + 0x3856, 0x4929, 0x684B, 0, 0x683F, 0, 0xD841, 0x6848, + 0xD842, 0xD843, 0, 0x6852, 0xD844, 0x6843, 0, 0, +}; +static const unsigned short utf8_to_euc_E88F_x0213[] = { + 0x7A7C, 0x6847, 0, 0, 0, 0x3F7B, 0, 0x7A7D, + 0, 0xF63B, 0x3546, 0, 0x365D, 0, 0x6842, 0x7A7E, + 0xF63C, 0x7B21, 0, 0x325B, 0xF63D, 0, 0x3E54, 0, + 0x6845, 0, 0, 0, 0x3A5A, 0xF63E, 0, 0x4551, + 0x684A, 0x7B22, 0, 0, 0, 0xF63F, 0, 0, + 0xD83F, 0x4A6E, 0x7B23, 0x6841, 0, 0, 0, 0x325A, + 0x3856, 0x4929, 0x684B, 0, 0x683F, 0, 0xD841, 0x6848, + 0xD842, 0xF640, 0, 0x6852, 0xD844, 0x6843, 0, 0, +}; +static const unsigned short utf8_to_euc_E890[] = { + 0, 0xD845, 0, 0x6844, 0x463A, 0, 0xD846, 0x6849, + 0, 0, 0xD847, 0x6846, 0x4B28, 0x684C, 0x3060, 0xD848, + 0, 0xD849, 0, 0x6840, 0, 0xD84A, 0, 0, + 0, 0xD84B, 0, 0, 0, 0, 0, 0, + 0x684E, 0, 0x684D, 0, 0, 0, 0, 0, + 0, 0x476B, 0x6854, 0, 0x685F, 0, 0, 0xD84D, + 0, 0x337E, 0, 0, 0, 0x6862, 0, 0, + 0x6850, 0xD84E, 0, 0, 0x6855, 0x4D6E, 0, 0, +}; +static const unsigned short utf8_to_euc_E890_x0213[] = { + 0, 0x7B24, 0, 0x6844, 0x463A, 0, 0x7B25, 0x6849, + 0, 0, 0x7B26, 0x6846, 0x4B28, 0x684C, 0x3060, 0xF641, + 0, 0xF642, 0, 0x6840, 0, 0xF643, 0, 0xF645, + 0, 0xD84B, 0, 0, 0, 0, 0, 0, + 0x684E, 0, 0x684D, 0, 0, 0, 0, 0, + 0, 0x476B, 0x6854, 0, 0x685F, 0, 0, 0xD84D, + 0, 0x337E, 0, 0, 0, 0x6862, 0, 0, + 0x6850, 0xF646, 0, 0, 0x6855, 0x4D6E, 0, 0, +}; +static const unsigned short utf8_to_euc_E891[] = { + 0, 0, 0, 0, 0, 0xD84F, 0x685E, 0xD850, + 0xD851, 0x4D55, 0xD852, 0, 0, 0xD853, 0x4E2A, 0xD854, + 0, 0xD855, 0xD856, 0, 0, 0, 0xD857, 0x4378, + 0xD858, 0xD859, 0xD85A, 0x336B, 0xD85B, 0, 0, 0, + 0xD85C, 0x4972, 0x6864, 0x4621, 0xD85D, 0xD85E, 0x3031, 0xD85F, + 0, 0x685D, 0xD860, 0x6859, 0x4172, 0x6853, 0x685B, 0x6860, + 0xD861, 0x472C, 0, 0xD862, 0xD863, 0x302A, 0xD864, 0x6858, + 0xD865, 0x6861, 0x4978, 0, 0xD866, 0xD867, 0, 0, +}; +static const unsigned short utf8_to_euc_E891_x0213[] = { + 0, 0, 0, 0, 0, 0xD84F, 0x685E, 0xD850, + 0x7B28, 0x4D55, 0xF647, 0, 0, 0xD853, 0x4E2A, 0xF648, + 0, 0xF649, 0xF64A, 0, 0, 0, 0xD857, 0x4378, + 0xD858, 0xF64B, 0xF64C, 0x336B, 0xF64D, 0, 0, 0x7B29, + 0xD85C, 0x4972, 0x6864, 0x4621, 0xD85D, 0xF64F, 0x3031, 0xD85F, + 0, 0x685D, 0xD860, 0x6859, 0x4172, 0x6853, 0x685B, 0x6860, + 0x7B2A, 0x472C, 0, 0x7B2B, 0xD863, 0x302A, 0xF650, 0x6858, + 0xF651, 0x6861, 0x4978, 0, 0xF652, 0xD867, 0, 0, +}; +static const unsigned short utf8_to_euc_E892[] = { + 0, 0xD868, 0x685C, 0, 0x6857, 0xD869, 0, 0, + 0, 0, 0, 0x3E55, 0, 0, 0, 0, + 0x3D2F, 0, 0xD86A, 0xD86B, 0x3C2C, 0xD86C, 0, 0, + 0, 0x4C58, 0, 0, 0x4947, 0, 0xD86D, 0x6867, + 0, 0x6870, 0, 0, 0, 0, 0xD86E, 0, + 0xD86F, 0xD870, 0xD871, 0, 0, 0x685A, 0, 0xD872, + 0, 0xD873, 0x3377, 0, 0xD874, 0, 0, 0, + 0x3E78, 0x6865, 0xD875, 0x686A, 0x4173, 0xD876, 0xD877, 0x6866, +}; +static const unsigned short utf8_to_euc_E892_x0213[] = { + 0, 0xF653, 0x685C, 0, 0x6857, 0x7B2C, 0, 0, + 0, 0, 0, 0x3E55, 0, 0, 0, 0, + 0x3D2F, 0, 0xD86A, 0xD86B, 0x3C2C, 0xD86C, 0, 0xF656, + 0, 0x4C58, 0, 0, 0x4947, 0, 0x7B2D, 0x6867, + 0, 0x6870, 0, 0, 0, 0, 0xF657, 0, + 0xD86F, 0xD870, 0xD871, 0, 0, 0x685A, 0, 0x7B2E, + 0, 0xD873, 0x3377, 0, 0x7B2F, 0, 0, 0, + 0x3E78, 0x6865, 0x7B30, 0x686A, 0x4173, 0xD876, 0xF658, 0x6866, +}; +static const unsigned short utf8_to_euc_E893[] = { + 0xD878, 0x686D, 0xD879, 0, 0x435F, 0, 0x686E, 0xD87A, + 0xD87B, 0x4D56, 0x6863, 0x3338, 0xD87C, 0x6869, 0, 0xD87D, + 0x686C, 0x4C2C, 0, 0xD87E, 0, 0, 0x686F, 0, + 0, 0x6868, 0x686B, 0, 0xD921, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xD922, + 0, 0, 0xD923, 0, 0x4B29, 0, 0x4F21, 0xD924, + 0xD925, 0xD926, 0xD927, 0, 0x6873, 0, 0, 0xD928, + 0, 0, 0xD92A, 0xD92B, 0x687A, 0xD92C, 0, 0x6872, +}; +static const unsigned short utf8_to_euc_E893_x0213[] = { + 0x7B31, 0x686D, 0x7B32, 0, 0x435F, 0, 0x686E, 0xD87A, + 0xD87B, 0x4D56, 0x6863, 0x3338, 0xD87C, 0x6869, 0xF65A, 0xF65B, + 0x686C, 0x4C2C, 0, 0xF65C, 0, 0, 0x686F, 0, + 0, 0x6868, 0x686B, 0, 0xF655, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xF65E, + 0, 0, 0xF65F, 0, 0x4B29, 0, 0x4F21, 0xF660, + 0xF661, 0xF662, 0xD927, 0, 0x6873, 0, 0, 0xD928, + 0, 0, 0xF663, 0xD92B, 0x687A, 0xF664, 0, 0x6872, +}; +static const unsigned short utf8_to_euc_E894[] = { + 0x3C43, 0, 0xD92D, 0xD92E, 0, 0, 0x6851, 0xD92F, + 0, 0, 0, 0, 0xD930, 0, 0xD931, 0, + 0xD932, 0x4A4E, 0, 0x4C22, 0x6879, 0x6878, 0, 0x6874, + 0x6875, 0, 0x3136, 0, 0xD933, 0, 0xD934, 0x6877, + 0, 0x6871, 0xD935, 0xD936, 0xD937, 0xD938, 0x4455, 0xD939, + 0, 0, 0xD93A, 0xD93B, 0x6876, 0x307E, 0, 0xD93C, + 0, 0, 0xD929, 0xD93D, 0xD93E, 0x4222, 0xD93F, 0, + 0, 0, 0, 0, 0, 0x4A43, 0, 0xD940, +}; +static const unsigned short utf8_to_euc_E894_x0213[] = { + 0x3C43, 0, 0xD92D, 0xD92E, 0, 0, 0x6851, 0xD92F, + 0, 0, 0, 0, 0xF665, 0, 0xD931, 0, + 0xD932, 0x4A4E, 0, 0x4C22, 0x6879, 0x6878, 0, 0x6874, + 0x6875, 0, 0x3136, 0xF666, 0xD933, 0, 0x7B35, 0x6877, + 0, 0x6871, 0xD935, 0x7B36, 0xF667, 0xF668, 0x4455, 0xD939, + 0, 0, 0xD93A, 0xF669, 0x6876, 0x307E, 0, 0x7B37, + 0, 0, 0x7B34, 0xD93D, 0xF66A, 0x4222, 0xD93F, 0, + 0, 0, 0, 0, 0, 0x4A43, 0xF66F, 0xD940, +}; +static const unsigned short utf8_to_euc_E895[] = { + 0x687B, 0x6921, 0, 0x4859, 0, 0, 0xD941, 0, + 0x687E, 0x3E56, 0x3C49, 0x6923, 0, 0, 0x363E, 0xD942, + 0xD943, 0xD944, 0xD945, 0xD946, 0, 0x6924, 0xD947, 0x4979, + 0x687D, 0xD948, 0x6856, 0, 0xD949, 0xD94A, 0xD94B, 0xD94C, + 0xD94D, 0xD94E, 0xD94F, 0x687C, 0xD950, 0, 0, 0, + 0x4F4F, 0x4622, 0x4973, 0xD951, 0, 0x692B, 0, 0xD952, + 0, 0, 0, 0, 0, 0, 0, 0x6931, + 0, 0xD953, 0xD954, 0xD955, 0, 0xD956, 0x6932, 0xD957, +}; +static const unsigned short utf8_to_euc_E895_x0213[] = { + 0x687B, 0x6921, 0, 0x4859, 0, 0, 0xD941, 0, + 0x687E, 0x3E56, 0x3C49, 0x6923, 0, 0, 0x363E, 0xF66B, + 0xD943, 0xF670, 0xD945, 0xF671, 0, 0x6924, 0xD947, 0x4979, + 0x687D, 0x7B38, 0x6856, 0, 0xD949, 0xD94A, 0xF672, 0xD94C, + 0xD94D, 0xF673, 0xF674, 0x687C, 0x7B39, 0, 0, 0, + 0x4F4F, 0x4622, 0x4973, 0xD951, 0, 0x692B, 0, 0xF66C, + 0, 0, 0, 0, 0, 0, 0, 0x6931, + 0, 0xD953, 0x7B3C, 0xF676, 0, 0xF677, 0x6932, 0xF678, +}; +static const unsigned short utf8_to_euc_E896[] = { + 0x6925, 0xD958, 0, 0, 0x4776, 0xD959, 0xD95A, 0x692F, + 0x6927, 0xD95B, 0x6929, 0xD95C, 0xD95D, 0, 0, 0xD95E, + 0x6933, 0x6928, 0, 0xD95F, 0x692C, 0, 0, 0x3172, + 0xD960, 0x4665, 0, 0x692D, 0x6930, 0xD961, 0, 0xD962, + 0xD963, 0, 0xD964, 0, 0x6926, 0xD965, 0x4126, 0xD966, + 0x692A, 0x3B27, 0x3F45, 0x3730, 0x4C74, 0xD974, 0x4C79, 0x3D72, + 0xF461, 0, 0, 0, 0xD967, 0, 0xD968, 0xD969, + 0xD96A, 0x6937, 0x6935, 0, 0xD96B, 0xD96C, 0xD96D, 0xD96E, +}; +static const unsigned short utf8_to_euc_E896_x0213[] = { + 0x6925, 0xF679, 0, 0, 0x4776, 0xD959, 0xF67A, 0x692F, + 0x6927, 0xD95B, 0x6929, 0xD95C, 0x7B3D, 0, 0, 0x7B3E, + 0x6933, 0x6928, 0, 0xF67B, 0x692C, 0, 0, 0x3172, + 0xD960, 0x4665, 0, 0x692D, 0x6930, 0xF67C, 0, 0xF67D, + 0xD963, 0, 0x7B3F, 0, 0x6926, 0xD965, 0x4126, 0xD966, + 0x692A, 0x3B27, 0x3F45, 0x3730, 0x4C74, 0x7B3B, 0x4C79, 0x3D72, + 0x7B40, 0, 0, 0, 0xD967, 0, 0xD968, 0xF723, + 0xD96A, 0x6937, 0x6935, 0, 0xF724, 0xD96C, 0xD96D, 0xD96E, +}; +static const unsigned short utf8_to_euc_E897[] = { + 0, 0x4F4E, 0xD96F, 0, 0, 0, 0, 0xD970, + 0, 0x6934, 0xD971, 0xD972, 0, 0x4D75, 0xD973, 0x6936, + 0x6938, 0, 0, 0, 0, 0x6939, 0, 0, + 0xD975, 0, 0xD976, 0, 0x693C, 0x693A, 0, 0xD977, + 0xD978, 0, 0, 0, 0x4623, 0x693B, 0xD979, 0, + 0xD97A, 0x484D, 0x692E, 0, 0, 0xD97B, 0, 0, + 0, 0, 0, 0xD97C, 0, 0, 0xD97D, 0x3D73, + 0, 0x693D, 0x6942, 0x4174, 0xD97E, 0, 0x6941, 0xDA21, +}; +static const unsigned short utf8_to_euc_E897_x0213[] = { + 0, 0x4F4E, 0xD96F, 0, 0, 0, 0, 0xF725, + 0, 0x6934, 0xF726, 0x7B41, 0, 0x4D75, 0x7B42, 0x6936, + 0x6938, 0, 0, 0, 0, 0x6939, 0, 0, + 0xF727, 0xF728, 0xD976, 0, 0x693C, 0x693A, 0, 0xF729, + 0xD978, 0xF72A, 0, 0, 0x4623, 0x693B, 0xF72B, 0, + 0xD97A, 0x484D, 0x692E, 0, 0, 0x7B43, 0, 0, + 0, 0, 0, 0xD97C, 0, 0, 0xF72C, 0x3D73, + 0, 0x693D, 0x6942, 0x4174, 0xD97E, 0, 0x6941, 0x7B45, +}; +static const unsigned short utf8_to_euc_E898[] = { + 0xDA22, 0, 0x6922, 0, 0xDA23, 0xDA24, 0x6943, 0x4149, + 0, 0, 0x693E, 0x6940, 0, 0xDA25, 0xDA26, 0, + 0xDA27, 0xDA28, 0xDA29, 0x693F, 0, 0, 0x5D31, 0x5D22, + 0xDA2A, 0xDA2B, 0x6945, 0xDA2C, 0, 0, 0xDA2D, 0, + 0, 0xDA2E, 0x6944, 0, 0, 0, 0, 0xDA2F, + 0, 0xDA30, 0, 0, 0, 0x4D76, 0, 0x623C, + 0x6946, 0, 0, 0, 0, 0, 0xDA31, 0, + 0xDA32, 0, 0xDA33, 0, 0xDA34, 0xDA35, 0, 0x6947, +}; +static const unsigned short utf8_to_euc_E898_x0213[] = { + 0xF72D, 0, 0x6922, 0, 0x7B46, 0x7B47, 0x6943, 0x4149, + 0, 0, 0x693E, 0x6940, 0, 0xDA25, 0xDA26, 0, + 0x7B48, 0xF72E, 0x7B44, 0x693F, 0, 0, 0x5D31, 0x5D22, + 0x7B4A, 0xDA2B, 0x6945, 0xDA2C, 0, 0, 0xF72F, 0, + 0, 0xF730, 0x6944, 0, 0xF731, 0, 0, 0xF732, + 0, 0x7B4B, 0, 0, 0, 0x4D76, 0, 0x623C, + 0x6946, 0, 0, 0, 0, 0, 0xDA31, 0, + 0x7B4C, 0xF734, 0xDA33, 0, 0xF735, 0xDA35, 0, 0x6947, +}; +static const unsigned short utf8_to_euc_E899[] = { + 0xDA36, 0xB866, 0xDA37, 0, 0, 0, 0xDA38, 0, + 0, 0, 0, 0, 0, 0x6948, 0x3857, 0, + 0x3554, 0, 0xDA39, 0xDA3A, 0x694A, 0x515D, 0xDA3B, 0xDA3C, + 0xDA3D, 0xDA3E, 0x3575, 0, 0x4E3A, 0xDA3F, 0x3673, 0x694B, + 0xDA40, 0xDA41, 0xDA42, 0xDA43, 0xDA44, 0, 0, 0x694C, + 0, 0xDA45, 0, 0x436E, 0xDA46, 0, 0, 0xDA47, + 0, 0x694D, 0, 0, 0, 0xDA48, 0xDA49, 0xDA4A, + 0, 0x467A, 0xDA4B, 0x303A, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E899_x0213[] = { + 0xF737, 0x2F68, 0xDA37, 0, 0, 0, 0xDA38, 0, + 0, 0, 0, 0, 0, 0x6948, 0x3857, 0, + 0x3554, 0, 0xDA39, 0xF739, 0x694A, 0x515D, 0xF73A, 0x7B4D, + 0xDA3D, 0xDA3E, 0x3575, 0x7B4E, 0x4E3A, 0xDA3F, 0x3673, 0x694B, + 0xDA40, 0xDA41, 0x7B50, 0xDA43, 0xDA44, 0, 0, 0x694C, + 0, 0xDA45, 0, 0x436E, 0x7B52, 0, 0, 0xF73B, + 0, 0x694D, 0, 0, 0, 0x7B53, 0xDA49, 0xF73C, + 0, 0x467A, 0xF73D, 0x303A, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E89A[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0xDA6D, 0, 0x3263, 0x6952, 0x6953, 0xDA4C, 0, 0, + 0, 0xDA4D, 0, 0x694E, 0, 0x3B3D, 0xDA4E, 0, + 0xDA4F, 0, 0xDA50, 0, 0xDA51, 0, 0, 0, + 0, 0xDA52, 0, 0x694F, 0x4742, 0, 0xDA53, 0xDA54, + 0xDA55, 0x6950, 0x6951, 0x695B, 0, 0xDA56, 0, 0x6955, + 0x6958, 0xDA57, 0, 0xDA58, 0xDA59, 0xDA5A, 0x6954, 0xDA5B, + 0xDA5C, 0xDA5D, 0, 0, 0, 0, 0, 0xDA5E, +}; +static const unsigned short utf8_to_euc_E89A_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0xF73E, + 0xDA6D, 0xF73F, 0x3263, 0x6952, 0x6953, 0xF740, 0, 0, + 0, 0xF741, 0, 0x694E, 0, 0x3B3D, 0xDA4E, 0, + 0x7B54, 0, 0xDA50, 0, 0xF742, 0xF743, 0, 0, + 0, 0xDA52, 0, 0x694F, 0x4742, 0, 0xDA53, 0xDA54, + 0xF744, 0x6950, 0x6951, 0x695B, 0, 0xDA56, 0, 0x6955, + 0x6958, 0xF746, 0, 0xF747, 0xDA59, 0xDA5A, 0x6954, 0xDA5B, + 0x7B55, 0xDA5D, 0, 0, 0, 0, 0, 0xDA5E, +}; +static const unsigned short utf8_to_euc_E89B[] = { + 0xDA5F, 0xDA60, 0, 0xDA61, 0x6956, 0xDA62, 0x6957, 0x3C58, + 0, 0x6959, 0, 0x4341, 0, 0x3756, 0x3342, 0, + 0, 0xDA63, 0xDA64, 0, 0x695C, 0xDA65, 0, 0xDA66, + 0, 0x333F, 0xDA67, 0x6961, 0xDA68, 0, 0x695D, 0x6960, + 0xDA69, 0, 0, 0xDA6A, 0x483A, 0xDA6B, 0, 0xDA6C, + 0, 0x695E, 0, 0, 0x695F, 0x4948, 0x485A, 0x6962, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x427D, 0x696C, 0xDA6E, 0x6968, 0xDA6F, 0xDA70, 0x326B, 0, +}; +static const unsigned short utf8_to_euc_E89B_x0213[] = { + 0xDA5F, 0xF748, 0, 0xF749, 0x6956, 0xDA62, 0x6957, 0x3C58, + 0, 0x6959, 0, 0x4341, 0, 0x3756, 0x3342, 0, + 0, 0xF74A, 0xDA64, 0, 0x695C, 0xF74B, 0, 0xF74C, + 0, 0x333F, 0xDA67, 0x6961, 0xDA68, 0, 0x695D, 0x6960, + 0xDA69, 0, 0, 0xF74D, 0x483A, 0xDA6B, 0xF74E, 0xDA6C, + 0, 0x695E, 0, 0, 0x695F, 0x4948, 0x485A, 0x6962, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x427D, 0x696C, 0x7B56, 0x6968, 0x7B57, 0x7B58, 0x326B, 0, +}; +static const unsigned short utf8_to_euc_E89C[] = { + 0x6966, 0, 0x4B2A, 0x6967, 0xDA71, 0xDA72, 0x6964, 0xDA73, + 0x6965, 0x696A, 0x696D, 0xDA74, 0, 0x696B, 0xDA75, 0xDA76, + 0xDA77, 0x6969, 0x6963, 0xDA78, 0xDA79, 0, 0, 0, + 0x4358, 0xDA7A, 0x6974, 0, 0x4C2A, 0, 0xDA7B, 0xDA7C, + 0, 0xDA7D, 0, 0xDA7E, 0, 0x6972, 0, 0, + 0xDB21, 0x6973, 0, 0, 0, 0, 0xDB22, 0xDB23, + 0, 0xDB24, 0xDB25, 0, 0x696E, 0, 0, 0x6970, + 0, 0xDB26, 0xDB27, 0x6971, 0xDB28, 0xDB29, 0xDB2A, 0x696F, +}; +static const unsigned short utf8_to_euc_E89C_x0213[] = { + 0x6966, 0, 0x4B2A, 0x6967, 0xDA71, 0xF750, 0x6964, 0xF751, + 0x6965, 0x696A, 0x696D, 0x7B59, 0, 0x696B, 0xF752, 0xDA76, + 0xF753, 0x6969, 0x6963, 0xF754, 0xDA79, 0, 0, 0, + 0x4358, 0xF755, 0x6974, 0, 0x4C2A, 0, 0xDA7B, 0xF756, + 0, 0xF757, 0, 0xF758, 0, 0x6972, 0, 0, + 0xDB21, 0x6973, 0, 0, 0, 0, 0xDB22, 0xDB23, + 0, 0xF759, 0xDB25, 0, 0x696E, 0, 0, 0x6970, + 0, 0xDB26, 0xF75A, 0x6971, 0xDB28, 0xDB29, 0xF75B, 0x696F, +}; +static const unsigned short utf8_to_euc_E89D[] = { + 0xDB2B, 0, 0, 0xDB2C, 0, 0xDB2D, 0, 0, + 0, 0x4066, 0, 0x4F39, 0x6978, 0xDB2E, 0x6979, 0, + 0, 0, 0, 0x6A21, 0, 0x3F2A, 0, 0x697B, + 0xDB2F, 0x697E, 0, 0, 0, 0xDB30, 0, 0x6976, + 0x6975, 0xDB31, 0, 0x6A22, 0xDB32, 0xDB33, 0x325C, 0, + 0x697C, 0, 0x6A23, 0, 0, 0, 0x697D, 0xDB34, + 0, 0xDB35, 0xDB36, 0, 0x697A, 0, 0x4433, 0, + 0x6977, 0, 0, 0xDB37, 0, 0, 0, 0x4768, +}; +static const unsigned short utf8_to_euc_E89D_x0213[] = { + 0xF75C, 0, 0, 0xF75D, 0, 0xDB2D, 0, 0, + 0, 0x4066, 0, 0x4F39, 0x6978, 0xDB2E, 0x6979, 0, + 0, 0xF75E, 0, 0x6A21, 0, 0x3F2A, 0, 0x697B, + 0xF75F, 0x697E, 0, 0, 0, 0xDB30, 0, 0x6976, + 0x6975, 0xDB31, 0, 0x6A22, 0xF760, 0xF761, 0x325C, 0, + 0x697C, 0, 0x6A23, 0, 0, 0, 0x697D, 0xDB34, + 0, 0x7B5A, 0xF762, 0, 0x697A, 0, 0x4433, 0, + 0x6977, 0, 0, 0xDB37, 0xF763, 0, 0, 0x4768, +}; +static const unsigned short utf8_to_euc_E89E[] = { + 0, 0, 0x6A27, 0xDB38, 0xDB39, 0xDB3A, 0xDB3B, 0xDB3C, + 0xDB3D, 0xDB3E, 0, 0xDB3F, 0xDB40, 0x4D3B, 0, 0, + 0xDB41, 0, 0, 0xDB42, 0, 0xDB43, 0, 0xDB44, + 0xDB45, 0xDB46, 0, 0, 0, 0, 0xDB47, 0x6A26, + 0xDB48, 0, 0x6A25, 0xDB49, 0, 0, 0, 0xDB4A, + 0, 0, 0, 0x6A2E, 0xDB4B, 0xDB4C, 0xDB4D, 0x6A28, + 0, 0xDB4E, 0, 0x6A30, 0, 0xDB4F, 0, 0, + 0, 0, 0x4D66, 0x6A33, 0, 0x6A2A, 0xDB50, 0xDB51, +}; +static const unsigned short utf8_to_euc_E89E_x0213[] = { + 0, 0, 0x6A27, 0xDB38, 0xDB39, 0xDB3A, 0xDB3B, 0x7B5B, + 0x7B5C, 0xF767, 0, 0xF768, 0xDB40, 0x4D3B, 0, 0, + 0xDB41, 0, 0, 0xF769, 0, 0xDB43, 0, 0xDB44, + 0xDB45, 0xDB46, 0, 0, 0, 0, 0xDB47, 0x6A26, + 0xF76A, 0, 0x6A25, 0xDB49, 0, 0, 0, 0xF766, + 0, 0, 0, 0x6A2E, 0x7B5D, 0x7B5E, 0xDB4D, 0x6A28, + 0, 0xDB4E, 0, 0x6A30, 0, 0x7B5F, 0, 0, + 0, 0, 0x4D66, 0x6A33, 0, 0x6A2A, 0xF76D, 0xDB51, +}; +static const unsigned short utf8_to_euc_E89F[] = { + 0x6A2B, 0xDB52, 0, 0, 0x6A2F, 0, 0x6A32, 0x6A31, + 0xDB53, 0xDB54, 0xDB55, 0x6A29, 0, 0, 0xDB56, 0, + 0x6A2C, 0, 0x6A3D, 0, 0, 0xDB57, 0xDB58, 0, + 0, 0xDB59, 0xDB5A, 0, 0xDB5B, 0, 0, 0xDB5C, + 0x6A36, 0, 0xDB5D, 0xDB5E, 0xDB5F, 0, 0, 0, + 0, 0, 0xDB60, 0xDB61, 0, 0xDB62, 0, 0x6A34, + 0, 0xDB63, 0x6A35, 0xDB64, 0, 0, 0x6A3A, 0x6A3B, + 0xDB65, 0x332A, 0xDB66, 0x3542, 0, 0, 0x6A39, 0xDB67, +}; +static const unsigned short utf8_to_euc_E89F_x0213[] = { + 0x6A2B, 0xF76F, 0, 0, 0x6A2F, 0, 0x6A32, 0x6A31, + 0xDB53, 0xDB54, 0xDB55, 0x6A29, 0, 0, 0xF770, 0, + 0x6A2C, 0, 0x6A3D, 0, 0, 0xDB57, 0x7B61, 0, + 0, 0xDB59, 0xDB5A, 0, 0xDB5B, 0, 0, 0xF772, + 0x6A36, 0, 0xDB5D, 0xF774, 0xDB5F, 0xF775, 0xF776, 0, + 0, 0, 0xF777, 0xF778, 0x7B62, 0xF779, 0, 0x6A34, + 0, 0xDB63, 0x6A35, 0xDB64, 0, 0xF771, 0x6A3A, 0x6A3B, + 0xDB65, 0x332A, 0xDB66, 0x3542, 0, 0, 0x6A39, 0xDB67, +}; +static const unsigned short utf8_to_euc_E8A0[] = { + 0, 0xDB68, 0, 0xDB69, 0, 0x6A24, 0xDB6A, 0xF464, + 0, 0xDB6B, 0xDB6C, 0xDB6D, 0, 0x6A38, 0x6A3C, 0x6A37, + 0xDB6E, 0x6A3E, 0xDB70, 0xDB71, 0xDB72, 0x6A40, 0x6A3F, 0, + 0xDB73, 0xDB6F, 0xDB74, 0xDB75, 0xDB76, 0, 0xDB77, 0xDB78, + 0, 0x6A42, 0x6A41, 0x695A, 0, 0, 0, 0x6A46, + 0xDB79, 0, 0, 0, 0, 0xDB7A, 0xDB7B, 0, + 0xDB7C, 0x6A43, 0xDB7D, 0, 0, 0xDB7E, 0x6A44, 0, + 0, 0x6A45, 0xDC21, 0x6A47, 0xDC22, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8A0_x0213[] = { + 0, 0xF77A, 0, 0xF77B, 0, 0x6A24, 0x7B63, 0xF464, + 0, 0xDB6B, 0x7B64, 0xF77C, 0, 0x6A38, 0x6A3C, 0x6A37, + 0x7B65, 0x6A3E, 0xDB70, 0xF77D, 0x7B66, 0x6A40, 0x6A3F, 0, + 0xDB73, 0xDB6F, 0xDB74, 0xDB75, 0xDB76, 0, 0xDB77, 0x7B67, + 0, 0x6A42, 0x6A41, 0x695A, 0, 0, 0, 0x6A46, + 0xF77E, 0, 0, 0, 0, 0xDB7A, 0xF821, 0, + 0xDB7C, 0x6A43, 0xF822, 0, 0, 0xDB7E, 0x6A44, 0, + 0, 0x6A45, 0xDC21, 0x6A47, 0xF823, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8A1[] = { + 0x376C, 0xDC23, 0x6A49, 0xDC24, 0x6A48, 0xDC25, 0x3D30, 0, + 0xDC26, 0xDC27, 0xDC28, 0xDC29, 0x3954, 0x5E27, 0xDC2A, 0, + 0, 0xDC2B, 0x6A4A, 0x3D51, 0, 0xDC2C, 0xDC2D, 0x3339, + 0xDC2E, 0x6A4B, 0xDC2F, 0x3152, 0xDC30, 0x3E57, 0x6A4C, 0xDC31, + 0xDC32, 0x3955, 0x6A4D, 0x3061, 0xDC33, 0, 0, 0, + 0x493D, 0xDC34, 0, 0x6A4E, 0, 0, 0, 0, + 0x3F6A, 0xDC35, 0x6A55, 0, 0, 0x6A52, 0, 0x436F, + 0, 0xDC36, 0, 0xDC37, 0, 0x6A53, 0x6A50, 0x365E, +}; +static const unsigned short utf8_to_euc_E8A1_x0213[] = { + 0x376C, 0xDC23, 0x6A49, 0xDC24, 0x6A48, 0xDC25, 0x3D30, 0, + 0xDC26, 0xDC27, 0xF825, 0xDC29, 0x3954, 0x5E27, 0xDC2A, 0, + 0, 0xDC2B, 0x6A4A, 0x3D51, 0, 0xDC2C, 0xDC2D, 0x3339, + 0xF826, 0x6A4B, 0xDC2F, 0x3152, 0xDC30, 0x3E57, 0x6A4C, 0xF827, + 0xDC32, 0x3955, 0x6A4D, 0x3061, 0xF828, 0, 0, 0, + 0x493D, 0xF82B, 0, 0x6A4E, 0, 0, 0, 0xF82D, + 0x3F6A, 0xDC35, 0x6A55, 0, 0, 0x6A52, 0, 0x436F, + 0, 0xDC36, 0, 0xDC37, 0, 0x6A53, 0x6A50, 0x365E, +}; +static const unsigned short utf8_to_euc_E8A2[] = { + 0xDC38, 0x6A4F, 0x6A56, 0, 0, 0, 0, 0, + 0x3736, 0, 0, 0x425E, 0, 0x6A5C, 0, 0, + 0, 0, 0x6A58, 0, 0, 0, 0x4235, 0x6A57, + 0xDC39, 0x6A5A, 0xDC3A, 0xDC3B, 0xDC3C, 0, 0x6A51, 0xDC3D, + 0xDC3E, 0, 0x6A5B, 0, 0x6A5D, 0, 0, 0, + 0xDC3F, 0, 0xDC40, 0x486F, 0, 0, 0x6A59, 0, + 0x6A5E, 0x6A60, 0, 0, 0x3853, 0x6A54, 0, 0x3041, + 0, 0, 0xDC41, 0, 0, 0xDC42, 0xDC43, 0x6A5F, +}; +static const unsigned short utf8_to_euc_E8A2_x0213[] = { + 0xDC38, 0x6A4F, 0x6A56, 0, 0, 0, 0, 0, + 0x3736, 0, 0, 0x425E, 0, 0x6A5C, 0, 0, + 0, 0, 0x6A58, 0, 0, 0, 0x4235, 0x6A57, + 0x7B68, 0x6A5A, 0xDC3A, 0xDC3B, 0xDC3C, 0, 0x6A51, 0xDC3D, + 0xF82E, 0, 0x6A5B, 0, 0x6A5D, 0, 0, 0, + 0xDC3F, 0, 0x7B69, 0x486F, 0, 0, 0x6A59, 0, + 0x6A5E, 0x6A60, 0, 0, 0x3853, 0x6A54, 0, 0x3041, + 0, 0, 0xDC41, 0, 0xF82F, 0xF830, 0xF831, 0x6A5F, +}; +static const unsigned short utf8_to_euc_E8A3[] = { + 0xDC44, 0x3A5B, 0x4E76, 0x6A61, 0x6A62, 0x4175, 0, 0, + 0, 0, 0xDC45, 0xDC46, 0xDC47, 0xDC48, 0xDC49, 0x4E22, + 0, 0xDC4A, 0xDC4B, 0xDC4C, 0x6A63, 0x4D35, 0, 0, + 0x6A64, 0x6A65, 0, 0xDC4D, 0x4A64, 0x6A66, 0xDC4E, 0x3A40, + 0, 0x4E23, 0, 0, 0, 0, 0, 0xDC4F, + 0x6A6B, 0, 0, 0, 0, 0, 0, 0xDC50, + 0xDC51, 0xDC52, 0x6A6C, 0x3E58, 0x6A6A, 0xDC53, 0, 0xDC54, + 0x4D67, 0x6A67, 0, 0, 0x6A69, 0x403D, 0x3F7E, 0, +}; +static const unsigned short utf8_to_euc_E8A3_x0213[] = { + 0xF832, 0x3A5B, 0x4E76, 0x6A61, 0x6A62, 0x4175, 0, 0, + 0, 0, 0x7B6A, 0xDC46, 0xDC47, 0xDC48, 0x7B6B, 0x4E22, + 0, 0xF835, 0xF833, 0xF836, 0x6A63, 0x4D35, 0, 0, + 0x6A64, 0x6A65, 0, 0xF837, 0x4A64, 0x6A66, 0xDC4E, 0x3A40, + 0, 0x4E23, 0, 0, 0, 0, 0, 0xDC4F, + 0x6A6B, 0, 0, 0, 0, 0, 0, 0xDC50, + 0xF838, 0xF839, 0x6A6C, 0x3E58, 0x6A6A, 0x7B6D, 0, 0xDC54, + 0x4D67, 0x6A67, 0, 0, 0x6A69, 0x403D, 0x3F7E, 0, +}; +static const unsigned short utf8_to_euc_E8A4[] = { + 0, 0xDC55, 0x6A68, 0, 0x6A6D, 0, 0xDC56, 0x4A23, + 0, 0, 0x6A6F, 0, 0x6A6E, 0xDC57, 0xDC58, 0xDC59, + 0x336C, 0, 0x4B2B, 0x6A70, 0, 0xDC5A, 0xDC5B, 0, + 0xDC5C, 0xDC5D, 0xDC5E, 0, 0xDC5F, 0x6A7C, 0x6A72, 0, + 0xDC60, 0, 0, 0, 0, 0x6A73, 0xDC61, 0xDC62, + 0xDC63, 0, 0x6A74, 0x6A75, 0, 0, 0, 0, + 0xDC64, 0xDC65, 0xDC66, 0, 0, 0xDC67, 0x6A79, 0, + 0x6A7A, 0xDC68, 0xDC69, 0x6A78, 0, 0, 0xDC6A, 0, +}; +static const unsigned short utf8_to_euc_E8A4_x0213[] = { + 0, 0xF83B, 0x6A68, 0, 0x6A6D, 0, 0xDC56, 0x4A23, + 0, 0, 0x6A6F, 0, 0x6A6E, 0xDC57, 0xDC58, 0xDC59, + 0x336C, 0, 0x4B2B, 0x6A70, 0, 0xDC5A, 0xDC5B, 0, + 0x7B70, 0x7B71, 0x7B72, 0, 0x7B6E, 0x6A7C, 0x6A72, 0, + 0xDC60, 0, 0, 0, 0, 0x6A73, 0xDC61, 0x7B73, + 0xDC63, 0, 0x6A74, 0x6A75, 0, 0, 0, 0, + 0x7B74, 0xDC65, 0x7B75, 0, 0, 0xDC67, 0x6A79, 0xF83D, + 0x6A7A, 0x7B76, 0xDC69, 0x6A78, 0, 0, 0xDC6A, 0, +}; +static const unsigned short utf8_to_euc_E8A5[] = { + 0xDC6B, 0x6A76, 0xDC6C, 0x6A71, 0x6A77, 0xDC6D, 0xDC6E, 0, + 0, 0xDC6F, 0, 0, 0x6A7B, 0x7037, 0, 0xDC70, + 0, 0, 0xDC71, 0, 0, 0, 0x3228, 0xDC72, + 0, 0, 0xDC73, 0xDC74, 0xDC75, 0, 0x6A7E, 0x365F, + 0x6A7D, 0xDC76, 0xDC77, 0xDC78, 0x6B22, 0, 0x6B21, 0, + 0, 0, 0x6B24, 0xDC79, 0, 0x6B23, 0xDC7A, 0x6B25, + 0xDC7B, 0, 0x3D31, 0xDC7C, 0x6B26, 0xDC7D, 0, 0x6B27, + 0, 0, 0xDC7E, 0xDD21, 0xDD22, 0xDD23, 0x6B28, 0x403E, +}; +static const unsigned short utf8_to_euc_E8A5_x0213[] = { + 0x7B77, 0x6A76, 0xF83F, 0x6A71, 0x6A77, 0xF840, 0xDC6E, 0, + 0, 0xF841, 0, 0, 0x6A7B, 0x7037, 0, 0xDC70, + 0, 0, 0xDC71, 0, 0, 0, 0x3228, 0xDC72, + 0, 0, 0xDC73, 0xDC74, 0xDC75, 0, 0x6A7E, 0x365F, + 0x6A7D, 0xDC76, 0xF844, 0xDC78, 0x6B22, 0, 0x6B21, 0, + 0, 0, 0x6B24, 0xDC79, 0, 0x6B23, 0xDC7A, 0x6B25, + 0xDC7B, 0, 0x3D31, 0xDC7C, 0x6B26, 0xDC7D, 0, 0x6B27, + 0, 0, 0xDC7E, 0xDD21, 0xDD22, 0xDD23, 0x6B28, 0x403E, +}; +static const unsigned short utf8_to_euc_E8A6[] = { + 0, 0x4D57, 0, 0x6B29, 0, 0, 0x4A24, 0x4746, + 0x6B2A, 0xDD24, 0x6B2B, 0x382B, 0, 0xDD25, 0, 0x352C, + 0xDD26, 0, 0, 0x6B2C, 0xDD27, 0xDD28, 0x3B6B, 0x4741, + 0x6B2D, 0, 0x3350, 0xDD29, 0xDD2A, 0, 0, 0xDD2B, + 0xDD2C, 0x6B2E, 0, 0, 0, 0xDD2D, 0x6B30, 0x4D77, + 0, 0x6B2F, 0x3F46, 0, 0x6B31, 0, 0, 0x6B32, + 0xDD2E, 0, 0x6B33, 0x3451, 0xDD2F, 0xDD30, 0xDD31, 0xDD32, + 0, 0, 0x6B34, 0, 0xDD33, 0x6B35, 0, 0x6B36, +}; +static const unsigned short utf8_to_euc_E8A6_x0213[] = { + 0xF845, 0x4D57, 0, 0x6B29, 0, 0, 0x4A24, 0x4746, + 0x6B2A, 0xF846, 0x6B2B, 0x382B, 0, 0xDD25, 0, 0x352C, + 0xF847, 0, 0, 0x6B2C, 0x7B78, 0xDD28, 0x3B6B, 0x4741, + 0x6B2D, 0, 0x3350, 0xDD29, 0xDD2A, 0, 0, 0xF848, + 0xDD2C, 0x6B2E, 0, 0, 0, 0xDD2D, 0x6B30, 0x4D77, + 0, 0x6B2F, 0x3F46, 0, 0x6B31, 0, 0, 0x6B32, + 0xF849, 0, 0x6B33, 0x3451, 0xDD2F, 0xDD30, 0xDD31, 0xF84A, + 0, 0, 0x6B34, 0, 0xDD33, 0x6B35, 0, 0x6B36, +}; +static const unsigned short utf8_to_euc_E8A7[] = { + 0x6B37, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x3351, 0, 0xDD34, 0xDD35, 0xDD36, 0xDD37, + 0xDD38, 0, 0x6B38, 0, 0x6B39, 0x6B3A, 0, 0, + 0, 0, 0, 0x3272, 0, 0xDD39, 0x3F28, 0x6B3B, + 0, 0xDD3A, 0, 0xDD3B, 0, 0xDD3C, 0, 0, + 0, 0xDD3D, 0, 0xDD3E, 0x6B3C, 0, 0xDD3F, 0, + 0x6B3D, 0xDD40, 0, 0, 0, 0xDD41, 0, 0xDD42, +}; +static const unsigned short utf8_to_euc_E8A7_x0213[] = { + 0x6B37, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0x3351, 0, 0x7B7A, 0xDD35, 0xF84B, 0xDD37, + 0xF84C, 0, 0x6B38, 0, 0x6B39, 0x6B3A, 0, 0, + 0, 0, 0, 0x3272, 0, 0x7B7B, 0x3F28, 0x6B3B, + 0, 0xDD3A, 0, 0xF84D, 0, 0xDD3C, 0, 0, + 0, 0xF84F, 0, 0xF850, 0x6B3C, 0, 0x7B7C, 0, + 0x6B3D, 0xDD40, 0, 0, 0, 0xF851, 0, 0xF852, +}; +static const unsigned short utf8_to_euc_E8A8[] = { + 0x3840, 0, 0x447B, 0x6B3E, 0xDD43, 0xDD44, 0, 0xDD45, + 0x3757, 0, 0x3F56, 0, 0x6B41, 0, 0x4624, 0xDD46, + 0x6B40, 0xDD47, 0xDD48, 0x3731, 0xDD49, 0xDD4A, 0x6B3F, 0x4277, + 0x352D, 0, 0, 0x6B42, 0, 0x6B43, 0xDD4B, 0x3E59, + 0xDD4C, 0, 0xDD4D, 0x376D, 0xDD4E, 0x6B44, 0xDD4F, 0, + 0, 0, 0x4B2C, 0xDD50, 0xDD51, 0x405F, 0, 0xDD52, + 0, 0x3576, 0, 0x4C75, 0x414A, 0xDD53, 0x6B45, 0xDD54, + 0, 0, 0x3F47, 0x4370, 0x3E5A, 0xDD55, 0xDD56, 0, +}; +static const unsigned short utf8_to_euc_E8A8_x0213[] = { + 0x3840, 0, 0x447B, 0x6B3E, 0xDD43, 0xDD44, 0, 0xDD45, + 0x3757, 0, 0x3F56, 0, 0x6B41, 0, 0x4624, 0xDD46, + 0x6B40, 0xF854, 0x7B7D, 0x3731, 0xF855, 0x7B7E, 0x6B3F, 0x4277, + 0x352D, 0, 0, 0x6B42, 0, 0x6B43, 0xDD4B, 0x3E59, + 0xDD4C, 0xF857, 0x7C21, 0x376D, 0xDD4E, 0x6B44, 0xDD4F, 0, + 0, 0, 0x4B2C, 0xDD50, 0xDD51, 0x405F, 0, 0xDD52, + 0, 0x3576, 0, 0x4C75, 0x414A, 0xF858, 0x6B45, 0x7C22, + 0, 0, 0x3F47, 0x4370, 0x3E5A, 0xDD55, 0xF859, 0, +}; +static const unsigned short utf8_to_euc_E8A9[] = { + 0xDD57, 0x6B46, 0, 0xDD58, 0, 0xDD59, 0x6B49, 0xDD5A, + 0x6B4A, 0xDD5B, 0, 0, 0, 0xDD5C, 0xDD5D, 0, + 0x3A3E, 0x4242, 0x6B48, 0xDD5E, 0x3E5B, 0x493E, 0xDD5F, 0xDD60, + 0xDD61, 0, 0, 0x6B47, 0xDD62, 0xDD63, 0x3B6C, 0, + 0x3153, 0xDD64, 0x6B4E, 0x3758, 0, 0xDD65, 0x3B6E, 0xDD66, + 0, 0x3B6D, 0, 0x4F4D, 0x6B4D, 0x6B4C, 0x4127, 0, + 0x354D, 0x4F43, 0x333A, 0x3E5C, 0, 0xDD67, 0xDD68, 0xDD69, + 0, 0xDD6A, 0xDD6B, 0xDD6C, 0x6B4B, 0, 0xDD6D, 0xDD6E, +}; +static const unsigned short utf8_to_euc_E8A9_x0213[] = { + 0xDD57, 0x6B46, 0, 0xDD58, 0, 0xF85A, 0x6B49, 0x7C23, + 0x6B4A, 0xDD5B, 0, 0, 0, 0xF85B, 0x7C24, 0, + 0x3A3E, 0x4242, 0x6B48, 0xDD5E, 0x3E5B, 0x493E, 0xDD5F, 0xDD60, + 0xF85C, 0, 0, 0x6B47, 0xDD62, 0x7C25, 0x3B6C, 0, + 0x3153, 0x7C26, 0x6B4E, 0x3758, 0, 0xDD65, 0x3B6E, 0xDD66, + 0, 0x3B6D, 0, 0x4F4D, 0x6B4D, 0x6B4C, 0x4127, 0, + 0x354D, 0x4F43, 0x333A, 0x3E5C, 0, 0x7C27, 0xDD68, 0xDD69, + 0, 0x7C28, 0xDD6B, 0xDD6C, 0x6B4B, 0, 0xDD6D, 0xDD6E, +}; +static const unsigned short utf8_to_euc_E8AA[] = { + 0xDD6F, 0, 0x6B50, 0xDD70, 0x6B51, 0x6B4F, 0xDD71, 0x3858, + 0, 0x4D40, 0, 0xDD72, 0x3B6F, 0x4727, 0, 0xDD73, + 0xDD74, 0x6B54, 0xDD75, 0x4040, 0, 0x4342, 0xDD76, 0xDD77, + 0x4D36, 0xDD78, 0x6B57, 0, 0, 0, 0x386C, 0xDD79, + 0x403F, 0x6B53, 0, 0x6B58, 0x386D, 0x6B55, 0x6B56, 0xDD7A, + 0x6B52, 0xDD7B, 0, 0, 0x4062, 0x4649, 0xDD7C, 0xDD7D, + 0x432F, 0, 0x325D, 0xDD7E, 0, 0, 0xDE21, 0xDE22, + 0, 0x4870, 0, 0xDE23, 0x3543, 0, 0xDE24, 0x4434, +}; +static const unsigned short utf8_to_euc_E8AA_x0213[] = { + 0xDD6F, 0, 0x6B50, 0xDD70, 0x6B51, 0x6B4F, 0xDD71, 0x3858, + 0, 0x4D40, 0, 0xDD72, 0x3B6F, 0x4727, 0, 0xDD73, + 0xF85E, 0x6B54, 0xDD75, 0x4040, 0, 0x4342, 0xDD76, 0xDD77, + 0x4D36, 0xDD78, 0x6B57, 0, 0, 0, 0x386C, 0xDD79, + 0x403F, 0x6B53, 0, 0x6B58, 0x386D, 0x6B55, 0x6B56, 0x7C29, + 0x6B52, 0xDD7B, 0, 0, 0x4062, 0x4649, 0xF85D, 0xDD7D, + 0x432F, 0, 0x325D, 0xDD7E, 0, 0, 0xDE21, 0xF85F, + 0, 0x4870, 0, 0xDE23, 0x3543, 0, 0xF860, 0x4434, +}; +static const unsigned short utf8_to_euc_E8AB[] = { + 0, 0, 0x6B5B, 0xDE25, 0x6B59, 0, 0xDE26, 0x434C, + 0xDE27, 0xDE28, 0xDE29, 0x4041, 0x3452, 0x6B5A, 0, 0x3F5B, + 0, 0xDE2A, 0x4E4A, 0xDE2B, 0xDE2C, 0xDE2D, 0x4F40, 0xDE2E, + 0, 0, 0x6B5C, 0x6B67, 0x4435, 0xDE2F, 0x6B66, 0xDE30, + 0x6B63, 0x6B6B, 0x6B64, 0, 0x6B60, 0, 0x447C, 0x6B5F, + 0, 0, 0, 0x6B5D, 0xDE31, 0x4D21, 0x3B70, 0, + 0xDE32, 0x6B61, 0, 0x6B5E, 0xDE33, 0xDE34, 0xDE35, 0x6B65, + 0x3D74, 0, 0x3841, 0, 0xDE36, 0, 0x427A, 0xDE37, +}; +static const unsigned short utf8_to_euc_E8AB_x0213[] = { + 0, 0, 0x6B5B, 0xDE25, 0x6B59, 0, 0xDE26, 0x434C, + 0xDE27, 0xDE28, 0xDE29, 0x4041, 0x3452, 0x6B5A, 0, 0x3F5B, + 0x7C2A, 0xDE2A, 0x4E4A, 0xDE2B, 0xDE2C, 0xDE2D, 0x4F40, 0xF861, + 0, 0, 0x6B5C, 0x6B67, 0x4435, 0xDE2F, 0x6B66, 0x7C2B, + 0x6B63, 0x6B6B, 0x6B64, 0, 0x6B60, 0, 0x447C, 0x6B5F, + 0, 0, 0, 0x6B5D, 0xDE31, 0x4D21, 0x3B70, 0, + 0xDE32, 0x6B61, 0, 0x6B5E, 0x7C2C, 0xDE34, 0x7C2D, 0x6B65, + 0x3D74, 0, 0x3841, 0, 0xF862, 0, 0x427A, 0xDE37, +}; +static const unsigned short utf8_to_euc_E8AC[] = { + 0x4B45, 0x315A, 0x3062, 0, 0x4625, 0xDE38, 0xDE39, 0x6B69, + 0, 0, 0xDE3F, 0xDE3A, 0x6B68, 0, 0x4666, 0, + 0x6B6D, 0xDE3B, 0, 0, 0x6B62, 0, 0x6B6C, 0x6B6E, + 0, 0x382C, 0x6B6A, 0x3956, 0xDE3C, 0x3C55, 0xDE3D, 0xDE3E, + 0x6B6F, 0x4D58, 0, 0, 0, 0, 0x6B72, 0, + 0x6B75, 0, 0, 0x6B73, 0x4935, 0xDE40, 0, 0, + 0xDE41, 0, 0, 0x6B70, 0, 0, 0, 0xDE42, + 0, 0x3660, 0, 0, 0xDE43, 0, 0x6B74, 0, +}; +static const unsigned short utf8_to_euc_E8AC_x0213[] = { + 0x4B45, 0x315A, 0x3062, 0, 0x4625, 0xF865, 0xDE39, 0x6B69, + 0, 0, 0xF864, 0xDE3A, 0x6B68, 0xF866, 0x4666, 0, + 0x6B6D, 0xDE3B, 0, 0, 0x6B62, 0, 0x6B6C, 0x6B6E, + 0, 0x382C, 0x6B6A, 0x3956, 0xF867, 0x3C55, 0xDE3D, 0xF868, + 0x6B6F, 0x4D58, 0, 0, 0, 0, 0x6B72, 0, + 0x6B75, 0, 0, 0x6B73, 0x4935, 0xF869, 0, 0, + 0xDE41, 0, 0, 0x6B70, 0, 0, 0, 0xDE42, + 0, 0x3660, 0, 0, 0xDE43, 0, 0x6B74, 0, +}; +static const unsigned short utf8_to_euc_E8AD[] = { + 0, 0x6B76, 0xDE44, 0xDE45, 0xDE46, 0xDE47, 0xDE48, 0, + 0xDE49, 0x6B7A, 0, 0, 0x6B77, 0xDE4E, 0x6B79, 0x6B78, + 0, 0, 0xDE4A, 0xDE4B, 0xDE4C, 0, 0x6B7B, 0, + 0x3C31, 0xDE4D, 0x6B7D, 0x6B7C, 0x4968, 0, 0xDE4F, 0x6C21, + 0, 0, 0, 0xDE50, 0, 0, 0x3759, 0, + 0, 0, 0, 0x6B7E, 0x6C22, 0xDE51, 0, 0x6C23, + 0x3544, 0x6641, 0x3E79, 0, 0x6C24, 0, 0xDE52, 0x386E, + 0xDE53, 0xDE54, 0, 0, 0xDE55, 0x6C25, 0xDE56, 0xF466, +}; +static const unsigned short utf8_to_euc_E8AD_x0213[] = { + 0, 0x6B76, 0xDE44, 0xF86A, 0xDE46, 0xDE47, 0x7C31, 0, + 0xDE49, 0x6B7A, 0, 0, 0x6B77, 0xDE4E, 0x6B79, 0x6B78, + 0, 0xF86C, 0xDE4A, 0xDE4B, 0x7C32, 0, 0x6B7B, 0, + 0x3C31, 0x7C33, 0x6B7D, 0x6B7C, 0x4968, 0, 0xF86D, 0x6C21, + 0, 0, 0, 0xDE50, 0, 0, 0x3759, 0, + 0, 0x7C34, 0, 0x6B7E, 0x6C22, 0xDE51, 0, 0x6C23, + 0x3544, 0x6641, 0x3E79, 0, 0x6C24, 0, 0xF86E, 0x386E, + 0xDE53, 0xDE54, 0, 0, 0xDE55, 0x6C25, 0xDE56, 0xF86F, +}; +static const unsigned short utf8_to_euc_E8AE[] = { + 0x6C26, 0xDE57, 0, 0x3B3E, 0xDE58, 0xDE59, 0, 0, + 0, 0, 0x5A4E, 0xDE5A, 0x6C27, 0xDE5B, 0x6C28, 0xDE5C, + 0x3D32, 0, 0x6C29, 0x6C2A, 0xDE5D, 0xDE5E, 0x6C2B, 0, + 0, 0x6C2C, 0x6C2D, 0, 0xDE5F, 0, 0xDE60, 0xDE61, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8AE_x0213[] = { + 0x6C26, 0xF870, 0, 0x3B3E, 0xDE58, 0xDE59, 0, 0, + 0, 0, 0x5A4E, 0xF871, 0x6C27, 0xDE5B, 0x6C28, 0xDE5C, + 0x3D32, 0, 0x6C29, 0x6C2A, 0xF872, 0xF873, 0x6C2B, 0, + 0, 0x6C2C, 0x6C2D, 0, 0xF874, 0x7C35, 0xF875, 0xDE61, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8B0[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x432B, + 0xDE62, 0xDE63, 0x6C2E, 0, 0, 0xDE64, 0xDE65, 0x6C30, +}; +static const unsigned short utf8_to_euc_E8B0_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x432B, + 0xDE62, 0xF876, 0x6C2E, 0, 0, 0xF878, 0xDE65, 0x6C30, +}; +static const unsigned short utf8_to_euc_E8B1[] = { + 0, 0x6C2F, 0, 0, 0, 0xDE66, 0x4626, 0xDE67, + 0x6C31, 0xDE68, 0x4B2D, 0xDE69, 0x6C32, 0, 0x6C33, 0xDE6A, + 0x6C34, 0xDE6B, 0, 0xDE6C, 0xDE6D, 0x6C35, 0, 0xDE6E, + 0xDE6F, 0xDE72, 0x465A, 0xDE70, 0, 0xDE71, 0, 0, + 0, 0x3E5D, 0x6C36, 0xDE73, 0xDE74, 0, 0xDE75, 0, + 0xDE76, 0xDE77, 0x396B, 0x502E, 0x6C37, 0xDE78, 0, 0, + 0, 0, 0, 0xDE79, 0, 0xDE7A, 0xDE7B, 0, + 0x6C38, 0x493F, 0x6C39, 0xDE7C, 0x6C41, 0, 0xDE7D, 0, +}; +static const unsigned short utf8_to_euc_E8B1_x0213[] = { + 0, 0x6C2F, 0, 0, 0, 0xF87B, 0x4626, 0xF87C, + 0x6C31, 0x7C36, 0x4B2D, 0xDE69, 0x6C32, 0, 0x6C33, 0xF87D, + 0x6C34, 0xDE6B, 0, 0xDE6C, 0xF87E, 0x6C35, 0, 0xF921, + 0xDE6F, 0xDE72, 0x465A, 0xDE70, 0, 0xDE71, 0, 0, + 0, 0x3E5D, 0x6C36, 0xDE73, 0xDE74, 0, 0xDE75, 0, + 0x7C37, 0xF922, 0x396B, 0x502E, 0x6C37, 0xF923, 0, 0, + 0, 0, 0, 0xF924, 0, 0xDE7A, 0xDE7B, 0, + 0x6C38, 0x493F, 0x6C39, 0xDE7C, 0x6C41, 0, 0xDE7D, 0, +}; +static const unsigned short utf8_to_euc_E8B2[] = { + 0, 0, 0x6C3A, 0, 0, 0x6C3C, 0xDE7E, 0xDF21, + 0, 0x6C3B, 0x6C3D, 0xDF22, 0x4B46, 0x6C3E, 0x6C3F, 0, + 0xDF23, 0, 0xDF24, 0xDF25, 0x6C40, 0, 0, 0, + 0x6C42, 0xDF26, 0, 0xDF27, 0xDF28, 0x332D, 0x4467, 0, + 0x4969, 0x3A62, 0x3957, 0, 0xDF29, 0, 0, 0x494F, + 0x325F, 0x484E, 0x6C45, 0x3453, 0x4055, 0x6C44, 0x6C49, 0x4379, + 0x4C63, 0, 0x6C47, 0x6C48, 0x352E, 0, 0x6C4A, 0x4763, + 0x425F, 0xDF2A, 0xDF2B, 0x4871, 0x453D, 0x6C46, 0, 0x4B47, +}; +static const unsigned short utf8_to_euc_E8B2_x0213[] = { + 0, 0, 0x6C3A, 0, 0, 0x6C3C, 0xDE7E, 0xDF21, + 0, 0x6C3B, 0x6C3D, 0xDF22, 0x4B46, 0x6C3E, 0x6C3F, 0, + 0xDF23, 0, 0xF927, 0xF926, 0x6C40, 0, 0, 0, + 0x6C42, 0xF928, 0, 0xF92A, 0xDF28, 0x332D, 0x4467, 0, + 0x4969, 0x3A62, 0x3957, 0, 0xF92B, 0, 0, 0x494F, + 0x325F, 0x484E, 0x6C45, 0x3453, 0x4055, 0x6C44, 0x6C49, 0x4379, + 0x4C63, 0, 0x6C47, 0x6C48, 0x352E, 0, 0x6C4A, 0x4763, + 0x425F, 0xDF2A, 0xDF2B, 0x4871, 0x453D, 0x6C46, 0, 0x4B47, +}; +static const unsigned short utf8_to_euc_E8B3[] = { + 0x326C, 0x6C4C, 0x4F28, 0x4442, 0x4F45, 0xDF2C, 0xDF2D, 0x3B71, + 0x6C4B, 0xDF2E, 0x4231, 0xDF2F, 0, 0x6C5C, 0x4128, 0xDF30, + 0, 0x4678, 0, 0x4950, 0, 0xDF32, 0xDF31, 0, + 0, 0xDF33, 0x6C4F, 0x3B3F, 0x3B72, 0xDF34, 0x3E5E, 0, + 0x4765, 0xDF35, 0x382D, 0x6C4E, 0x6C4D, 0, 0x496A, 0, + 0xDF36, 0, 0x3C41, 0, 0xDF37, 0x4552, 0, 0xDF38, + 0xDF39, 0, 0xDF3A, 0, 0xF467, 0xDF3B, 0, 0xDF3C, + 0xDF3D, 0, 0x6C51, 0x6C52, 0x3958, 0x6C50, 0xDF3E, 0xDF3F, +}; +static const unsigned short utf8_to_euc_E8B3_x0213[] = { + 0x326C, 0x6C4C, 0x4F28, 0x4442, 0x4F45, 0xDF2C, 0xDF2D, 0x3B71, + 0x6C4B, 0xDF2E, 0x4231, 0xDF2F, 0, 0x6C5C, 0x4128, 0xDF30, + 0, 0x4678, 0, 0x4950, 0, 0xF92D, 0xF92C, 0, + 0, 0xF92E, 0x6C4F, 0x3B3F, 0x3B72, 0xDF34, 0x3E5E, 0, + 0x4765, 0x7C39, 0x382D, 0x6C4E, 0x6C4D, 0, 0x496A, 0, + 0xDF36, 0, 0x3C41, 0, 0xDF37, 0x4552, 0, 0xDF38, + 0xF930, 0xF931, 0xDF3A, 0, 0x7C3A, 0xDF3B, 0, 0xDF3C, + 0x7C3B, 0, 0x6C51, 0x6C52, 0x3958, 0x6C50, 0x7C3C, 0xDF3F, +}; +static const unsigned short utf8_to_euc_E8B4[] = { + 0, 0xDF40, 0, 0xDF41, 0x6C53, 0x6C54, 0, 0x6C56, + 0x4223, 0xDF42, 0x6C55, 0x3466, 0, 0x6C58, 0, 0x6C57, + 0x6C59, 0, 0xDF43, 0x6C5B, 0x6C5D, 0, 0x6C5E, 0xDF44, + 0, 0, 0, 0xDF45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8B4_x0213[] = { + 0, 0xDF40, 0, 0xDF41, 0x6C53, 0x6C54, 0, 0x6C56, + 0x4223, 0xF933, 0x6C55, 0x3466, 0, 0x6C58, 0xF934, 0x6C57, + 0x6C59, 0, 0x7C3E, 0x6C5B, 0x6C5D, 0, 0x6C5E, 0xDF44, + 0, 0, 0, 0x7C3F, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8B5[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x4056, 0xDF46, 0x3C4F, 0x6C5F, + 0, 0xDF47, 0, 0x3352, 0xDF48, 0x6C60, 0xDF49, 0, + 0x4176, 0x6C61, 0, 0x6C62, 0x496B, 0, 0xF468, 0x352F, + 0, 0, 0, 0, 0, 0, 0, 0xDF4A, +}; +static const unsigned short utf8_to_euc_E8B5_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x4056, 0xDF46, 0x3C4F, 0x6C5F, + 0, 0xDF47, 0, 0x3352, 0xF935, 0x6C60, 0xDF49, 0, + 0x4176, 0x6C61, 0, 0x6C62, 0x496B, 0, 0xF468, 0x352F, + 0, 0, 0, 0, 0, 0, 0, 0xDF4A, +}; +static const unsigned short utf8_to_euc_E8B6[] = { + 0, 0x6C63, 0xDF4B, 0, 0xDF4C, 0x4436, 0, 0, + 0xDF4D, 0, 0x315B, 0, 0, 0xDF4E, 0, 0, + 0xDF4F, 0xDF50, 0, 0, 0, 0xDF51, 0, 0, + 0, 0x6C64, 0, 0, 0, 0, 0xDF52, 0xDF53, + 0xDF54, 0, 0, 0x3C71, 0, 0, 0xDF55, 0, + 0x3F76, 0, 0, 0xDF56, 0xDF57, 0, 0, 0xDF58, + 0, 0, 0xDF59, 0x422D, 0, 0xDF5A, 0, 0xDF5B, + 0, 0xDF5C, 0x6C67, 0xDF5D, 0xDF6F, 0, 0x6C66, 0, +}; +static const unsigned short utf8_to_euc_E8B6_x0213[] = { + 0, 0x6C63, 0xDF4B, 0, 0xF936, 0x4436, 0, 0, + 0xDF4D, 0, 0x315B, 0, 0, 0xDF4E, 0, 0, + 0xDF4F, 0xDF50, 0, 0, 0, 0xF937, 0, 0, + 0, 0x6C64, 0, 0, 0, 0, 0xDF52, 0xDF53, + 0xDF54, 0, 0, 0x3C71, 0, 0, 0xF938, 0, + 0x3F76, 0, 0, 0xDF56, 0xDF57, 0, 0, 0x7C40, + 0, 0, 0xDF59, 0x422D, 0, 0xDF5A, 0, 0xDF5B, + 0, 0xDF5C, 0x6C67, 0xDF5D, 0xDF6F, 0, 0x6C66, 0, +}; +static const unsigned short utf8_to_euc_E8B7[] = { + 0xDF5E, 0, 0x6C65, 0, 0, 0xDF5F, 0xDF60, 0xDF61, + 0xDF62, 0, 0xDF63, 0x6C6D, 0x6C6B, 0, 0xDF64, 0x6C68, + 0, 0xDF65, 0, 0, 0xDF66, 0xDF67, 0x6C6A, 0xDF68, + 0, 0xDF69, 0x6C69, 0x6C6C, 0, 0x3577, 0, 0x6C70, + 0, 0x4057, 0, 0x6C71, 0xDF6A, 0xDF6B, 0, 0xDF6C, + 0x3859, 0, 0x6C6E, 0x6C6F, 0xDF6D, 0, 0, 0x4F29, + 0xDF6E, 0xDF70, 0xDF71, 0x4437, 0xDF72, 0x4129, 0, 0, + 0, 0, 0, 0, 0x6C72, 0xDF73, 0, 0x6C75, +}; +static const unsigned short utf8_to_euc_E8B7_x0213[] = { + 0xDF5E, 0, 0x6C65, 0, 0, 0xDF5F, 0xF93A, 0xDF61, + 0xF93B, 0, 0xDF63, 0x6C6D, 0x6C6B, 0, 0x7C41, 0x6C68, + 0, 0x7C42, 0, 0, 0xDF66, 0xDF67, 0x6C6A, 0x7C43, + 0, 0xF93C, 0x6C69, 0x6C6C, 0, 0x3577, 0, 0x6C70, + 0, 0x4057, 0, 0x6C71, 0xDF6A, 0xDF6B, 0, 0xDF6C, + 0x3859, 0, 0x6C6E, 0x6C6F, 0xF93D, 0, 0, 0x4F29, + 0xDF6E, 0xDF70, 0xDF71, 0x4437, 0xDF72, 0x4129, 0, 0, + 0, 0, 0, 0, 0x6C72, 0xF940, 0, 0x6C75, +}; +static const unsigned short utf8_to_euc_E8B8[] = { + 0, 0xDF74, 0, 0, 0xDF75, 0xDF76, 0xDF77, 0, + 0x6C73, 0x6C74, 0x4D59, 0xDF78, 0, 0, 0, 0x4627, + 0x6C78, 0xDF79, 0, 0, 0xDF7A, 0, 0xDF7B, 0, + 0, 0, 0, 0, 0, 0x6C76, 0x6C77, 0x6C79, + 0xDF7C, 0xDF7D, 0xDF7E, 0xE021, 0, 0, 0xE022, 0xE023, + 0, 0, 0x6D29, 0, 0, 0, 0, 0, + 0x6C7C, 0xE024, 0, 0xE025, 0x6C7D, 0x6C7B, 0xE026, 0xE027, + 0xE028, 0xE029, 0, 0, 0, 0xE02A, 0, 0, +}; +static const unsigned short utf8_to_euc_E8B8_x0213[] = { + 0, 0xDF74, 0, 0, 0xDF75, 0xDF76, 0xF941, 0, + 0x6C73, 0x6C74, 0x4D59, 0xDF78, 0xF93E, 0, 0, 0x4627, + 0x6C78, 0xDF79, 0, 0, 0xF943, 0, 0xF944, 0, + 0, 0, 0, 0, 0, 0x6C76, 0x6C77, 0x6C79, + 0x7C44, 0xF945, 0xF946, 0x7C45, 0, 0, 0xE022, 0xF947, + 0, 0, 0x6D29, 0, 0, 0, 0, 0, + 0x6C7C, 0xE024, 0, 0xE025, 0x6C7D, 0x6C7B, 0xF94A, 0xE027, + 0xE028, 0xF94B, 0, 0, 0, 0x7C46, 0, 0, +}; +static const unsigned short utf8_to_euc_E8B9[] = { + 0xE02B, 0xE02C, 0x6C7A, 0, 0x447D, 0, 0, 0x6D21, + 0x6D25, 0x6D22, 0x6C7E, 0xE02D, 0x6D23, 0xE02E, 0xE02F, 0xE030, + 0x6D24, 0, 0, 0, 0xE031, 0x6D2B, 0, 0, + 0, 0x6D26, 0, 0xE032, 0xE033, 0xE034, 0xE035, 0x4058, + 0x6D28, 0xE036, 0xE037, 0x6D2A, 0x6D27, 0, 0, 0, + 0, 0xE038, 0, 0, 0xE039, 0xE03A, 0, 0xE03B, + 0xE03C, 0xE03D, 0x6D2D, 0, 0x3D33, 0, 0x6D2C, 0, + 0, 0xE03E, 0xE03F, 0xE040, 0x6D2E, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8B9_x0213[] = { + 0xE02B, 0xE02C, 0x6C7A, 0, 0x447D, 0, 0, 0x6D21, + 0x6D25, 0x6D22, 0x6C7E, 0xF94C, 0x6D23, 0xE02E, 0xE02F, 0xE030, + 0x6D24, 0, 0, 0, 0xF94D, 0x6D2B, 0, 0, + 0, 0x6D26, 0, 0xE032, 0xE033, 0xE034, 0xE035, 0x4058, + 0x6D28, 0xE036, 0xF94E, 0x6D2A, 0x6D27, 0, 0, 0, + 0, 0xE038, 0, 0, 0xF94F, 0xF950, 0, 0xF951, + 0x7C47, 0xE03D, 0x6D2D, 0, 0x3D33, 0, 0x6D2C, 0, + 0, 0xE03E, 0xE03F, 0x7C48, 0x6D2E, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8BA[] = { + 0, 0x6D2F, 0xE041, 0xE042, 0x6D32, 0x6D31, 0, 0x6D30, + 0, 0xE043, 0x6D34, 0x6D33, 0, 0x4C76, 0, 0, + 0xE044, 0x6D36, 0xE045, 0x6D35, 0x6D37, 0xE046, 0, 0, + 0, 0x6D38, 0xE047, 0xE048, 0, 0xE049, 0xE04A, 0, + 0, 0x6D3A, 0xE04B, 0, 0, 0, 0, 0xE04C, + 0, 0xE04D, 0x6D39, 0x3F48, 0x6D3B, 0xE04E, 0xE04F, 0x366D, + 0x6D3C, 0x6D3E, 0, 0xE050, 0, 0xE051, 0, 0, + 0, 0, 0xE052, 0xE053, 0, 0, 0x6D3F, 0, +}; +static const unsigned short utf8_to_euc_E8BA_x0213[] = { + 0, 0x6D2F, 0xE041, 0xE042, 0x6D32, 0x6D31, 0, 0x6D30, + 0, 0xE043, 0x6D34, 0x6D33, 0, 0x4C76, 0, 0, + 0xE044, 0x6D36, 0xE045, 0x6D35, 0x6D37, 0xE046, 0, 0, + 0xF952, 0x6D38, 0xE047, 0xE048, 0, 0xE049, 0xF953, 0, + 0, 0x6D3A, 0xE04B, 0, 0, 0, 0, 0xE04C, + 0, 0xE04D, 0x6D39, 0x3F48, 0x6D3B, 0xE04E, 0xF954, 0x366D, + 0x6D3C, 0x6D3E, 0, 0xF955, 0, 0xF956, 0xF957, 0, + 0, 0, 0xE052, 0xF958, 0, 0, 0x6D3F, 0, +}; +static const unsigned short utf8_to_euc_E8BB[] = { + 0xE054, 0xE055, 0, 0xE056, 0xE057, 0x6D40, 0x6D3D, 0xE058, + 0x6D41, 0, 0x3C56, 0x6D42, 0x3530, 0x3733, 0, 0xE059, + 0, 0xE05A, 0x382E, 0, 0xE05B, 0, 0, 0, + 0, 0, 0, 0x6D43, 0xE05C, 0, 0, 0x4670, + 0, 0, 0x453E, 0x6D44, 0, 0, 0, 0, + 0xE05D, 0, 0, 0x6D47, 0, 0xE064, 0xE05E, 0, + 0xE05F, 0xE060, 0, 0, 0, 0, 0, 0xE061, + 0x3C34, 0xE062, 0xE063, 0x6D46, 0x6D45, 0x375A, 0x6D48, 0, +}; +static const unsigned short utf8_to_euc_E8BB_x0213[] = { + 0x7C4A, 0xE055, 0, 0xE056, 0xE057, 0x6D40, 0x6D3D, 0xE058, + 0x6D41, 0, 0x3C56, 0x6D42, 0x3530, 0x3733, 0, 0xE059, + 0, 0xF95A, 0x382E, 0, 0xF95B, 0, 0, 0, + 0, 0, 0, 0x6D43, 0xE05C, 0, 0, 0x4670, + 0, 0, 0x453E, 0x6D44, 0, 0, 0, 0, + 0xE05D, 0, 0, 0x6D47, 0, 0xE064, 0xE05E, 0, + 0xE05F, 0xE060, 0, 0, 0, 0, 0, 0xE061, + 0x3C34, 0xF95D, 0x7C4C, 0x6D46, 0x6D45, 0x375A, 0x6D48, 0, +}; +static const unsigned short utf8_to_euc_E8BC[] = { + 0xE065, 0, 0xE066, 0x3353, 0, 0x6D4A, 0, 0xE067, + 0xE068, 0x3A5C, 0x6D49, 0, 0x6D52, 0, 0, 0xE069, + 0xE06A, 0, 0x6D4C, 0x6D4E, 0x4A65, 0x6D4B, 0xE06B, 0xE06C, + 0xE06D, 0x6D4D, 0, 0x6D51, 0x6D4F, 0x3531, 0xE06E, 0x6D50, + 0xE06F, 0xE070, 0, 0xE071, 0, 0xE072, 0x6D53, 0xE073, + 0xE074, 0x475A, 0x4E58, 0, 0xE075, 0xE076, 0xE077, 0x3D34, + 0, 0, 0, 0x6D54, 0xE078, 0xE079, 0xE07A, 0xE07B, + 0x4D22, 0x6D56, 0xE07C, 0x6D55, 0, 0, 0x6D59, 0x4D41, +}; +static const unsigned short utf8_to_euc_E8BC_x0213[] = { + 0xF95F, 0, 0xE066, 0x3353, 0, 0x6D4A, 0, 0xE067, + 0xF960, 0x3A5C, 0x6D49, 0, 0x6D52, 0, 0, 0xE069, + 0xE06A, 0, 0x6D4C, 0x6D4E, 0x4A65, 0x6D4B, 0xE06B, 0xF961, + 0xE06D, 0x6D4D, 0, 0x6D51, 0x6D4F, 0x3531, 0x7C4D, 0x6D50, + 0xE06F, 0xE070, 0, 0xE071, 0, 0xE072, 0x6D53, 0xE073, + 0xE074, 0x475A, 0x4E58, 0xF962, 0xE075, 0x7C4E, 0xE077, 0x3D34, + 0, 0, 0, 0x6D54, 0xE078, 0xE079, 0x7C4F, 0xE07B, + 0x4D22, 0x6D56, 0xE07C, 0x6D55, 0, 0, 0x6D59, 0x4D41, +}; +static const unsigned short utf8_to_euc_E8BD[] = { + 0xE07D, 0xE07E, 0x6D58, 0xE121, 0x336D, 0x6D57, 0x6D5C, 0xE122, + 0, 0x6D5B, 0, 0, 0x6D5A, 0x4532, 0x6D5D, 0xE123, + 0, 0xE124, 0xE125, 0xE126, 0xE127, 0xE128, 0, 0x6D5E, + 0xE129, 0, 0, 0, 0x6D5F, 0xE12A, 0xE12B, 0x396C, + 0, 0x3725, 0x6D60, 0x6D61, 0x6D62, 0xE12C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8BD_x0213[] = { + 0xF963, 0xE07E, 0x6D58, 0xE121, 0x336D, 0x6D57, 0x6D5C, 0xE122, + 0, 0x6D5B, 0xF964, 0, 0x6D5A, 0x4532, 0x6D5D, 0xE123, + 0, 0xE124, 0xE125, 0xE126, 0x7C50, 0xE128, 0, 0x6D5E, + 0xF965, 0, 0, 0, 0x6D5F, 0xE12A, 0xE12B, 0x396C, + 0, 0x3725, 0x6D60, 0x6D61, 0x6D62, 0xE12C, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E8BE[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x3F49, 0x6D63, 0xE12D, 0x3C2D, 0x6D64, + 0xE12E, 0xE12F, 0, 0x6D65, 0xE130, 0xE131, 0xE132, 0x5221, + 0x517E, 0, 0, 0, 0, 0x6D66, 0x6570, 0x6D67, + 0x4324, 0x3F2B, 0x4740, 0, 0, 0xE133, 0xE134, 0x6D68, + 0xE135, 0, 0x4A55, 0x4454, 0x397E, 0, 0xE136, 0x4329, +}; +static const unsigned short utf8_to_euc_E8BE_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x3F49, 0x6D63, 0xE12D, 0x3C2D, 0x6D64, + 0xE12E, 0xE12F, 0, 0x6D65, 0xF967, 0xE131, 0x7C52, 0x5221, + 0x517E, 0, 0, 0, 0, 0x6D66, 0x6570, 0x6D67, + 0x4324, 0x3F2B, 0x4740, 0, 0xF968, 0x7C53, 0xF96A, 0x6D68, + 0xE135, 0, 0x4A55, 0x4454, 0x397E, 0, 0xE136, 0x4329, +}; +static const unsigned short utf8_to_euc_E8BF[] = { + 0xE137, 0xE138, 0x312A, 0, 0x4B78, 0x3F57, 0xE139, 0, + 0, 0, 0xE13A, 0xE13B, 0, 0xE13C, 0x375E, 0, + 0xE13D, 0x3661, 0xE13E, 0xE13F, 0x4A56, 0xE140, 0, 0, + 0, 0, 0x6D69, 0, 0, 0, 0, 0, + 0xE141, 0, 0x6D6B, 0xE142, 0xE143, 0x6D6A, 0x3260, 0, + 0xE144, 0x4676, 0x6D6C, 0x4777, 0, 0x4533, 0xE145, 0x6D6D, + 0x3D52, 0xE146, 0, 0, 0x6D6F, 0xE147, 0xE148, 0x4C42, + 0x6D7E, 0x6D71, 0x6D72, 0xE149, 0, 0x4449, 0xE14A, 0, +}; +static const unsigned short utf8_to_euc_E8BF_x0213[] = { + 0xE137, 0xF96C, 0x312A, 0, 0x4B78, 0x3F57, 0xF96D, 0, + 0, 0, 0xF96F, 0xE13B, 0, 0xF970, 0x375E, 0, + 0xE13D, 0x3661, 0xE13E, 0xF971, 0x4A56, 0xF972, 0, 0, + 0, 0, 0x6D69, 0, 0, 0, 0, 0, + 0xF973, 0, 0x6D6B, 0xE142, 0x7C54, 0x6D6A, 0x3260, 0, + 0x7C55, 0x4676, 0x6D6C, 0x4777, 0, 0x4533, 0x7C56, 0x6D6D, + 0x3D52, 0xF974, 0, 0, 0x6D6F, 0xF975, 0xE148, 0x4C42, + 0x6D7E, 0x6D71, 0x6D72, 0xF976, 0, 0x4449, 0xE14A, 0, +}; +static const unsigned short utf8_to_euc_E980[] = { + 0x4260, 0x4177, 0xE14B, 0x4628, 0xE14C, 0x6D70, 0x3555, 0, + 0xE14D, 0, 0, 0x6D79, 0xE14E, 0x6D76, 0x6E25, 0x4629, + 0x4360, 0x6D73, 0, 0x447E, 0x4553, 0x6D74, 0x6D78, 0x3F60, + 0xE14F, 0x4767, 0x444C, 0xE150, 0, 0x4042, 0x6D77, 0x422E, + 0x4224, 0x6D75, 0x3029, 0x4F22, 0, 0, 0, 0x6D7A, + 0xE151, 0xE152, 0xE154, 0, 0xE155, 0xE156, 0x4261, 0xE153, + 0, 0x3D35, 0x3F4A, 0xE157, 0xE158, 0x6D7C, 0x6D7B, 0xE159, + 0x306F, 0x6D7D, 0, 0, 0x492F, 0, 0x6E27, 0xE15A, +}; +static const unsigned short utf8_to_euc_E980_x0213[] = { + 0x4260, 0x4177, 0xF977, 0x4628, 0xE14C, 0x6D70, 0x3555, 0, + 0x7C57, 0, 0, 0x6D79, 0xF978, 0x6D76, 0x6E25, 0x4629, + 0x4360, 0x6D73, 0, 0x447E, 0x4553, 0x6D74, 0x6D78, 0x3F60, + 0xE14F, 0x4767, 0x444C, 0xE150, 0, 0x4042, 0x6D77, 0x422E, + 0x4224, 0x6D75, 0x3029, 0x4F22, 0, 0, 0, 0x6D7A, + 0xE151, 0xE152, 0xE154, 0, 0xE155, 0x7C58, 0x4261, 0xE153, + 0, 0x3D35, 0x3F4A, 0xE157, 0xE158, 0x6D7C, 0x6D7B, 0xF979, + 0x306F, 0x6D7D, 0, 0, 0x492F, 0, 0x6E27, 0xE15A, +}; +static const unsigned short utf8_to_euc_E981[] = { + 0, 0x465B, 0x3F6B, 0xE15B, 0xE15C, 0x4359, 0, 0x3678, + 0, 0x6E26, 0x4D37, 0x313F, 0xE15D, 0x4A57, 0x3261, 0x6E21, + 0x6E22, 0x6E23, 0x6E24, 0x463B, 0x4323, 0x3063, 0x6E28, 0, + 0x6E29, 0x7423, 0, 0xE15E, 0x423D, 0xE15F, 0x6E2A, 0, + 0x3173, 0x414C, 0xE160, 0x382F, 0, 0x4D5A, 0xE161, 0xE162, + 0x6E2B, 0x452C, 0, 0, 0xE163, 0x4178, 0x3C57, 0x6E2C, + 0xE164, 0, 0x6E2F, 0, 0xE165, 0x3D65, 0x6E2D, 0x412B, + 0x412A, 0xE166, 0x3064, 0, 0x4E4B, 0x6E31, 0, 0x4872, +}; +static const unsigned short utf8_to_euc_E981_x0213[] = { + 0, 0x465B, 0x3F6B, 0xF97B, 0xF97C, 0x4359, 0, 0x3678, + 0, 0x6E26, 0x4D37, 0x313F, 0xE15D, 0x4A57, 0x3261, 0x6E21, + 0x6E22, 0x6E23, 0x6E24, 0x463B, 0x4323, 0x3063, 0x6E28, 0, + 0x6E29, 0x7423, 0, 0xE15E, 0x423D, 0xF97D, 0x6E2A, 0, + 0x3173, 0x414C, 0xE160, 0x382F, 0, 0x4D5A, 0xE161, 0xE162, + 0x6E2B, 0x452C, 0, 0, 0xE163, 0x4178, 0x3C57, 0x6E2C, + 0xE164, 0, 0x6E2F, 0, 0xE165, 0x3D65, 0x6E2D, 0x412B, + 0x412A, 0xE166, 0x3064, 0, 0x4E4B, 0x6E31, 0, 0x4872, +}; +static const unsigned short utf8_to_euc_E982[] = { + 0x6E33, 0x6E32, 0x6E30, 0x6364, 0x3454, 0xE167, 0, 0x6D6E, + 0xE168, 0x6E35, 0x6E34, 0xE169, 0xE16A, 0, 0xE16B, 0x6E36, + 0xE16C, 0x4D38, 0, 0, 0, 0xE16D, 0, 0xE16E, + 0xE16F, 0xE170, 0, 0xE171, 0, 0, 0, 0, + 0xE172, 0xE173, 0xE174, 0x4661, 0, 0xE175, 0x4B2E, 0, + 0x6E37, 0, 0x3C59, 0, 0, 0, 0, 0x6E38, + 0xE176, 0x6E39, 0xE177, 0xE178, 0xE179, 0x6E3A, 0xE17A, 0, + 0x4521, 0, 0, 0, 0, 0xE17B, 0xE17D, 0, +}; +static const unsigned short utf8_to_euc_E982_x0213[] = { + 0x6E33, 0x6E32, 0x6E30, 0x6364, 0x3454, 0xFA22, 0, 0x6D6E, + 0x7C5A, 0x6E35, 0x6E34, 0xE169, 0xFA23, 0, 0xE16B, 0x6E36, + 0xFA24, 0x4D38, 0, 0, 0, 0x7C5B, 0, 0x7C5C, + 0xE16F, 0x7C5D, 0, 0x7C5E, 0, 0, 0, 0, + 0xE172, 0xFA26, 0x7C5F, 0x4661, 0, 0xE175, 0x4B2E, 0, + 0x6E37, 0, 0x3C59, 0, 0, 0, 0, 0x6E38, + 0xFA28, 0x6E39, 0xE177, 0x7C60, 0xE179, 0x6E3A, 0xFA29, 0, + 0x4521, 0, 0, 0, 0, 0xE17B, 0x7C61, 0, +}; +static const unsigned short utf8_to_euc_E983[] = { + 0, 0x306A, 0, 0xE17E, 0xE221, 0xE222, 0, 0xE223, + 0xE224, 0, 0x3959, 0, 0xE17C, 0, 0x4F3A, 0, + 0, 0, 0xE22D, 0, 0, 0xE225, 0, 0xE226, + 0xE227, 0xE228, 0, 0x6E3E, 0xE229, 0xE22A, 0xF46C, 0xE22B, + 0, 0x3734, 0x6E3B, 0, 0x6E3C, 0xE22C, 0, 0, + 0x4974, 0, 0, 0xE22F, 0, 0x3354, 0, 0xE230, + 0xE231, 0, 0, 0, 0xE232, 0x4D39, 0xE22E, 0x363F, + 0, 0, 0, 0, 0, 0x4554, 0xE233, 0xE234, +}; +static const unsigned short utf8_to_euc_E983_x0213[] = { + 0, 0x306A, 0, 0xFA2A, 0x7C62, 0x7C63, 0, 0x7C64, + 0xFA2B, 0, 0x3959, 0, 0xE17C, 0, 0x4F3A, 0, + 0, 0, 0xE22D, 0, 0, 0xE225, 0, 0x7C65, + 0xE227, 0xE228, 0, 0x6E3E, 0xFA2D, 0x7C66, 0x7C67, 0xFA2E, + 0, 0x3734, 0x6E3B, 0, 0x6E3C, 0xE22C, 0, 0, + 0x4974, 0, 0, 0xFA33, 0, 0x3354, 0, 0x7C68, + 0xE231, 0, 0xFA31, 0, 0x7C69, 0x4D39, 0xFA30, 0x363F, + 0, 0, 0, 0, 0, 0x4554, 0xFA34, 0xFA35, +}; +static const unsigned short utf8_to_euc_E984[] = { + 0xE235, 0, 0x6E3F, 0, 0xE236, 0xE237, 0xE238, 0, + 0xE239, 0, 0, 0, 0, 0xE23A, 0, 0, + 0xE23B, 0, 0x6E40, 0, 0xE23C, 0xF46E, 0xE23D, 0xE23E, + 0xE23F, 0x6E41, 0xE240, 0, 0xE241, 0, 0xE242, 0, + 0xE243, 0, 0xE245, 0xE246, 0, 0xE244, 0, 0xE247, + 0, 0xE248, 0, 0, 0, 0x4522, 0xE249, 0xE24A, + 0x6E43, 0xE24B, 0x6E42, 0, 0xE24C, 0, 0xE24D, 0xE24E, + 0, 0xE24F, 0xE250, 0, 0xE251, 0xE252, 0, 0, +}; +static const unsigned short utf8_to_euc_E984_x0213[] = { + 0xFA32, 0, 0x6E3F, 0, 0xFA36, 0xE237, 0xFA37, 0, + 0xE239, 0, 0, 0, 0, 0xE23A, 0, 0, + 0xE23B, 0, 0x6E40, 0, 0x7C6B, 0x7C6C, 0x7C6D, 0xE23E, + 0xFA38, 0x6E41, 0xE240, 0, 0xFA39, 0, 0xFA3A, 0, + 0xE243, 0, 0x7C6E, 0x7C6F, 0, 0xE244, 0, 0x7C70, + 0, 0xE248, 0, 0, 0, 0x4522, 0xE249, 0x7C71, + 0x6E43, 0x7C72, 0x6E42, 0, 0x7C73, 0, 0xE24D, 0xFA3B, + 0, 0xFA3C, 0xFA3D, 0, 0xE251, 0x7C74, 0, 0, +}; +static const unsigned short utf8_to_euc_E985[] = { + 0, 0, 0, 0xE253, 0, 0, 0, 0xE254, + 0xE255, 0x4653, 0x6E44, 0x3D36, 0x3C60, 0x475B, 0x4371, 0xE256, + 0, 0, 0x3C72, 0xE257, 0x3F6C, 0, 0x6E45, 0xE258, + 0x6E46, 0xE259, 0xE25A, 0xE25B, 0, 0, 0, 0, + 0, 0xE25C, 0x3F5D, 0x6E47, 0xE25D, 0x6E48, 0, 0xE25E, + 0, 0x6E49, 0x4D6F, 0, 0x3D37, 0xE25F, 0, 0, + 0, 0, 0x6E4B, 0x6E4A, 0xE260, 0x395A, 0, 0x3973, + 0x3B40, 0xE261, 0xE262, 0xE263, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E985_x0213[] = { + 0, 0, 0, 0xE253, 0, 0, 0xFA3E, 0xFA3F, + 0x7C75, 0x4653, 0x6E44, 0x3D36, 0x3C60, 0x475B, 0x4371, 0xE256, + 0, 0, 0x3C72, 0xE257, 0x3F6C, 0, 0x6E45, 0xFA40, + 0x6E46, 0xFA41, 0xE25A, 0x7C76, 0, 0, 0, 0, + 0, 0xFA42, 0x3F5D, 0x6E47, 0xFA43, 0x6E48, 0, 0xE25E, + 0, 0x6E49, 0x4D6F, 0, 0x3D37, 0xE25F, 0, 0, + 0, 0, 0x6E4B, 0x6E4A, 0xFA44, 0x395A, 0, 0x3973, + 0x3B40, 0xFA45, 0xE262, 0xE263, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E986[] = { + 0, 0xE264, 0x6E4E, 0xE265, 0, 0xE266, 0xE267, 0x3D66, + 0, 0x6E4D, 0xE268, 0x6E4C, 0, 0x4269, 0xE269, 0, + 0x386F, 0xE26A, 0x4043, 0xE26B, 0xE26C, 0xE26D, 0, 0x4830, + 0xE26E, 0, 0, 0, 0x3D39, 0, 0xE26F, 0, + 0, 0xE270, 0x6E4F, 0, 0x3E5F, 0, 0xE271, 0, + 0xE272, 0, 0x6E52, 0x6E50, 0xE273, 0xE274, 0xE275, 0x6E51, + 0xE276, 0xE277, 0xE278, 0xE279, 0x6E54, 0x6E53, 0xE27A, 0, + 0x3E7A, 0, 0x6E55, 0xE27B, 0xE27C, 0xE27D, 0, 0xE27E, +}; +static const unsigned short utf8_to_euc_E986_x0213[] = { + 0, 0xE264, 0x6E4E, 0x7C77, 0, 0xFA46, 0xE267, 0x3D66, + 0, 0x6E4D, 0xE268, 0x6E4C, 0, 0x4269, 0xFA47, 0, + 0x386F, 0xE26A, 0x4043, 0xE26B, 0xE26C, 0xE26D, 0, 0x4830, + 0xE26E, 0, 0, 0, 0x3D39, 0, 0x7C78, 0, + 0, 0xE270, 0x6E4F, 0, 0x3E5F, 0, 0xE271, 0, + 0xFA48, 0, 0x6E52, 0x6E50, 0x7C79, 0xE274, 0xFA49, 0x6E51, + 0xE276, 0x7C7A, 0xE278, 0xFA4A, 0x6E54, 0x6E53, 0xFA4B, 0, + 0x3E7A, 0, 0x6E55, 0xE27B, 0x7C7B, 0xE27D, 0, 0xE27E, +}; +static const unsigned short utf8_to_euc_E987[] = { + 0x6E56, 0x6E57, 0xE321, 0xE322, 0, 0xE323, 0x4850, 0x3A53, + 0x3C61, 0x6E58, 0, 0x6E59, 0x4E24, 0x3D45, 0x4C6E, 0x4E4C, + 0x6E5A, 0x3662, 0, 0xE324, 0xE325, 0, 0x6E5B, 0xE326, + 0x4523, 0xE327, 0xE328, 0x6E5E, 0x3378, 0x3F4B, 0xE329, 0x6E5C, + 0, 0x6E5D, 0, 0x4460, 0xE32A, 0xE32B, 0x4B55, 0x367C, + 0, 0xE32C, 0xE32D, 0, 0xE32E, 0xE32F, 0xE330, 0xE331, + 0xE332, 0xE333, 0, 0, 0, 0x6E60, 0x6E61, 0xE334, + 0, 0xE335, 0, 0xE336, 0x6E5F, 0xE337, 0, 0x6E63, +}; +static const unsigned short utf8_to_euc_E987_x0213[] = { + 0x6E56, 0x6E57, 0xE321, 0xFA4C, 0xFA4D, 0xE323, 0x4850, 0x3A53, + 0x3C61, 0x6E58, 0, 0x6E59, 0x4E24, 0x3D45, 0x4C6E, 0x4E4C, + 0x6E5A, 0x3662, 0, 0xE324, 0xE325, 0, 0x6E5B, 0x7C7C, + 0x4523, 0xE327, 0xFA4E, 0x6E5E, 0x3378, 0x3F4B, 0xE329, 0x6E5C, + 0, 0x6E5D, 0, 0x4460, 0x7C7E, 0x7D21, 0x4B55, 0x367C, + 0, 0xE32C, 0xE32D, 0, 0xFA51, 0x7D22, 0xFA52, 0xE331, + 0xE332, 0x7D23, 0, 0, 0, 0x6E60, 0x6E61, 0xE334, + 0, 0xE335, 0, 0x7C7D, 0x6E5F, 0xE337, 0, 0x6E63, +}; +static const unsigned short utf8_to_euc_E988[] = { + 0xE338, 0xE339, 0, 0, 0xE33A, 0xE33B, 0xE33C, 0xE33D, + 0, 0xE33E, 0xE33F, 0, 0xE340, 0x465F, 0x3343, 0, + 0xE341, 0x6E67, 0xE342, 0xE343, 0x6E64, 0x6E66, 0xE344, 0, + 0xE345, 0, 0, 0, 0xE346, 0xE347, 0x6E62, 0, + 0, 0, 0, 0xE348, 0xE349, 0xE34A, 0xE34B, 0, + 0xE34C, 0x6F4F, 0, 0, 0x6E65, 0, 0xE34D, 0xE34E, + 0xE34F, 0, 0, 0xE350, 0x4E6B, 0xE351, 0xE352, 0x385A, + 0xE353, 0xE354, 0xE355, 0, 0xE356, 0, 0xE357, 0x6E6F, +}; +static const unsigned short utf8_to_euc_E988_x0213[] = { + 0xE338, 0xFA53, 0, 0, 0xE33A, 0xE33B, 0xE33C, 0x7D24, + 0, 0xE33E, 0xFA54, 0, 0xE340, 0x465F, 0x3343, 0, + 0x7D25, 0x6E67, 0xE342, 0xE343, 0x6E64, 0x6E66, 0xFA55, 0xFA56, + 0xE345, 0, 0, 0, 0xE346, 0xE347, 0x6E62, 0, + 0, 0, 0, 0xE348, 0xE349, 0xE34A, 0xE34B, 0, + 0xE34C, 0x6F4F, 0, 0, 0x6E65, 0, 0xE34D, 0xE34E, + 0xE34F, 0, 0, 0xFA58, 0x4E6B, 0xE351, 0xE352, 0x385A, + 0x7D26, 0x7D27, 0x7D28, 0, 0x7D29, 0, 0xE357, 0x6E6F, +}; +static const unsigned short utf8_to_euc_E989[] = { + 0xE358, 0, 0xE359, 0xE35A, 0x4534, 0x6E6A, 0xE35B, 0xE35C, + 0x6E6D, 0x6E6B, 0xE35D, 0x6E70, 0, 0xE35E, 0xE35F, 0xE360, + 0x6E71, 0xE361, 0, 0, 0, 0, 0, 0x6E69, + 0xE362, 0xE363, 0x6E76, 0x3174, 0xE364, 0xE365, 0x6E68, 0, + 0xE366, 0xE367, 0x482D, 0, 0x6E6C, 0xE368, 0x3E60, 0xE369, + 0xE36A, 0xE36B, 0, 0, 0, 0, 0xE36C, 0xE36D, + 0xE36E, 0x395B, 0, 0, 0, 0xE36F, 0xE370, 0xE371, + 0xE372, 0xE373, 0, 0xE374, 0xE375, 0xE376, 0x4B48, 0xE377, +}; +static const unsigned short utf8_to_euc_E989_x0213[] = { + 0x7D2A, 0, 0xFA59, 0x7D2B, 0x4534, 0x6E6A, 0xE35B, 0xFA5A, + 0x6E6D, 0x6E6B, 0xFA5B, 0x6E70, 0, 0xE35E, 0xFA5C, 0x7D2C, + 0x6E71, 0xFA5D, 0, 0, 0, 0, 0xFA5E, 0x6E69, + 0xE362, 0xFA5F, 0x6E76, 0x3174, 0xE364, 0xE365, 0x6E68, 0, + 0xFA60, 0xFA61, 0x482D, 0, 0x6E6C, 0xFA62, 0x3E60, 0xFA63, + 0xFA64, 0xE36B, 0, 0, 0, 0, 0xE36C, 0xE36D, + 0xE36E, 0x395B, 0, 0, 0, 0xE36F, 0xE370, 0xE371, + 0x7D2D, 0xE373, 0, 0xE374, 0xFA67, 0xFA68, 0x4B48, 0xFA69, +}; +static const unsigned short utf8_to_euc_E98A[] = { + 0x3664, 0, 0, 0x3D46, 0, 0x463C, 0, 0, + 0xE378, 0xE379, 0xE37A, 0, 0, 0xE37B, 0xE37C, 0, + 0, 0x412D, 0xE37D, 0x6E74, 0, 0x6E6E, 0x6E73, 0xE37E, + 0x4C43, 0xE421, 0x4438, 0x6E75, 0x6E72, 0, 0, 0xE422, + 0xE423, 0, 0, 0, 0xE424, 0xE425, 0, 0xE426, + 0xE427, 0, 0, 0xE428, 0, 0x412C, 0, 0xE429, + 0, 0, 0xE42A, 0, 0, 0, 0xE42B, 0x6E79, + 0xE42C, 0x6E78, 0xE42D, 0xE42E, 0xE42F, 0xE430, 0, 0xE431, +}; +static const unsigned short utf8_to_euc_E98A_x0213[] = { + 0x3664, 0, 0, 0x3D46, 0, 0x463C, 0, 0, + 0x7D2E, 0xFA6A, 0xE37A, 0, 0, 0xFA6B, 0xE37C, 0, + 0, 0x412D, 0xE37D, 0x6E74, 0, 0x6E6E, 0x6E73, 0xFA6C, + 0x4C43, 0xFA6D, 0x4438, 0x6E75, 0x6E72, 0, 0, 0xFA6E, + 0xE423, 0, 0, 0, 0xE424, 0xE425, 0, 0xFA6F, + 0xE427, 0, 0, 0xFA70, 0, 0x412C, 0, 0xE429, + 0, 0, 0xFA73, 0, 0, 0, 0xE42B, 0x6E79, + 0xE42C, 0x6E78, 0xE42D, 0xE42E, 0xE42F, 0xE430, 0, 0xFA74, +}; +static const unsigned short utf8_to_euc_E98B[] = { + 0xE432, 0xE433, 0xE434, 0xE435, 0, 0xE436, 0xE437, 0xE438, + 0xE439, 0, 0, 0xE43A, 0xE43B, 0xE43C, 0xE43D, 0x6E77, + 0xE43E, 0, 0x4B2F, 0xE43F, 0, 0xE440, 0, 0xE441, + 0xE442, 0xE443, 0, 0, 0xE444, 0xE445, 0, 0xE446, + 0xE447, 0xE448, 0, 0xE449, 0x3D7B, 0xE44A, 0, 0xE44B, + 0xE44C, 0x6E7A, 0x4A5F, 0, 0xE44D, 0x3154, 0xE44E, 0, + 0xE44F, 0, 0x4946, 0x4372, 0, 0, 0, 0, + 0x3578, 0xE450, 0x6E7C, 0xE451, 0x395D, 0, 0, 0xE452, +}; +static const unsigned short utf8_to_euc_E98B_x0213[] = { + 0xFA75, 0xE433, 0x7D2F, 0xE435, 0, 0xE436, 0xFA76, 0xE438, + 0xE439, 0, 0, 0x7D30, 0x7D31, 0xE43C, 0xFA77, 0x6E77, + 0xFA78, 0, 0x4B2F, 0x7D32, 0, 0xE440, 0, 0xFA79, + 0xE442, 0xFA7A, 0, 0, 0xE444, 0xE445, 0, 0xE446, + 0x7D33, 0xE448, 0, 0xE449, 0x3D7B, 0xFA7B, 0, 0xFA7C, + 0xE44C, 0x6E7A, 0x4A5F, 0, 0xE44D, 0x3154, 0xE44E, 0, + 0xE44F, 0, 0x4946, 0x4372, 0, 0, 0, 0xFB22, + 0x3578, 0xFB23, 0x6E7C, 0xFB24, 0x395D, 0, 0, 0x7D34, +}; +static const unsigned short utf8_to_euc_E98C[] = { + 0xE453, 0, 0xE454, 0, 0, 0, 0x3B2C, 0, + 0xE455, 0, 0, 0, 0, 0xE456, 0, 0x6E7B, + 0x3F6D, 0xE457, 0, 0, 0xE458, 0xE459, 0, 0, + 0x3F6E, 0x6F21, 0x6F23, 0, 0xE45A, 0xE45B, 0xE45C, 0xE45D, + 0x3E7B, 0xE45E, 0x6F22, 0x6F24, 0xE45F, 0xE460, 0x3653, 0xE461, + 0x4945, 0xE462, 0xE463, 0x3C62, 0x4F23, 0, 0x6E7E, 0x3A78, + 0, 0, 0x4F3F, 0xE464, 0xE465, 0x6F26, 0xE466, 0xE467, + 0, 0, 0x6F25, 0x6F27, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E98C_x0213[] = { + 0xE453, 0, 0xFB25, 0, 0x7D35, 0, 0x3B2C, 0, + 0xE455, 0, 0, 0, 0, 0xFB26, 0, 0x6E7B, + 0x3F6D, 0xFA7D, 0, 0, 0xE458, 0xFB27, 0, 0, + 0x3F6E, 0x6F21, 0x6F23, 0, 0xE45A, 0xFB28, 0xFB29, 0x7D36, + 0x3E7B, 0x7D37, 0x6F22, 0x6F24, 0xE45F, 0x7D38, 0x3653, 0xFB2A, + 0x4945, 0xFB2B, 0xE463, 0x3C62, 0x4F23, 0, 0x6E7E, 0x3A78, + 0, 0, 0x4F3F, 0xE464, 0xE465, 0x6F26, 0xE466, 0xE467, + 0, 0, 0x6F25, 0x6F27, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E98D[] = { + 0, 0, 0, 0, 0x6E7D, 0, 0, 0xE468, + 0xE469, 0xE46A, 0, 0x4669, 0, 0x4555, 0, 0, + 0xE46B, 0xE46C, 0xE46D, 0, 0x4457, 0xE46E, 0x6F2C, 0xE46F, + 0xE470, 0, 0xE471, 0x4343, 0x6F28, 0, 0xE472, 0, + 0x6F29, 0, 0, 0, 0xE473, 0xE474, 0, 0xE475, + 0, 0xE476, 0xE477, 0, 0x372D, 0xE478, 0x6F2B, 0xE479, + 0xE47A, 0xE47B, 0, 0xE47C, 0xE47D, 0x3830, 0xE47E, 0, + 0, 0, 0xE521, 0, 0x6F2A, 0xE522, 0x3E61, 0xE523, +}; +static const unsigned short utf8_to_euc_E98D_x0213[] = { + 0, 0, 0, 0, 0x6E7D, 0, 0, 0xFB2E, + 0x7D39, 0x7D3A, 0x7D3B, 0x4669, 0, 0x4555, 0, 0, + 0xE46B, 0xFB2F, 0xE46D, 0, 0x4457, 0xE46E, 0x6F2C, 0xFB30, + 0xE470, 0, 0xFB31, 0x4343, 0x6F28, 0, 0xE472, 0, + 0x6F29, 0, 0, 0, 0x7D3C, 0x7D3D, 0, 0xE475, + 0, 0xE476, 0x7D3E, 0xFB32, 0x372D, 0xE478, 0x6F2B, 0xE479, + 0x7D3F, 0xFB33, 0, 0xFB34, 0xE47D, 0x3830, 0xE47E, 0, + 0, 0, 0xE521, 0, 0x6F2A, 0xE522, 0x3E61, 0xE523, +}; +static const unsigned short utf8_to_euc_E98E[] = { + 0xE524, 0xE525, 0xE526, 0, 0, 0, 0, 0, + 0xE527, 0, 0xE528, 0xE529, 0x3379, 0xE52A, 0, 0xE52B, + 0, 0, 0xE52C, 0, 0x6F30, 0xE52D, 0x3A3F, 0x4179, + 0xE52E, 0, 0x444A, 0xE52F, 0, 0, 0xE530, 0, + 0, 0xE531, 0, 0xE532, 0xE533, 0, 0xE534, 0x333B, + 0xE535, 0xE53B, 0, 0xE536, 0x6F2E, 0x6F2F, 0x4443, 0, + 0x6F2D, 0, 0, 0, 0xE537, 0xE538, 0xE539, 0, + 0, 0x6F31, 0xE53A, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E98E_x0213[] = { + 0xE524, 0xE525, 0xE526, 0, 0, 0, 0, 0, + 0xFB38, 0, 0xE528, 0xFB39, 0x3379, 0xE52A, 0, 0xFB3A, + 0, 0, 0xE52C, 0, 0x6F30, 0xE52D, 0x3A3F, 0x4179, + 0xE52E, 0, 0x444A, 0x7D40, 0, 0, 0xFB3B, 0, + 0, 0xFB35, 0, 0x7D41, 0xE533, 0, 0xE534, 0x333B, + 0xE535, 0xE53B, 0, 0xE536, 0x6F2E, 0x6F2F, 0x4443, 0, + 0x6F2D, 0, 0, 0, 0xE537, 0xE538, 0xE539, 0, + 0, 0x6F31, 0x7D42, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E98F[] = { + 0, 0xE53C, 0, 0x6F37, 0xE53D, 0xE53E, 0xE53F, 0xE540, + 0x6F3A, 0xE541, 0xE542, 0xE543, 0xE544, 0xE545, 0, 0, + 0x6F39, 0x452D, 0, 0xE546, 0, 0, 0x6F32, 0x6F33, + 0x6F36, 0xE547, 0, 0, 0xE548, 0x6F38, 0xE549, 0xE54A, + 0, 0x3640, 0xE54B, 0, 0x6F3B, 0x6F35, 0xE54C, 0xE54D, + 0x6F34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xE54F, + 0xE550, 0xE54E, 0xE551, 0xE552, 0, 0xE553, 0, 0, +}; +static const unsigned short utf8_to_euc_E98F_x0213[] = { + 0, 0xFB40, 0, 0x6F37, 0xE53D, 0xE53E, 0x7D43, 0xFB41, + 0x6F3A, 0xE541, 0xE542, 0xE543, 0xE544, 0xE545, 0, 0, + 0x6F39, 0x452D, 0, 0xE546, 0, 0, 0x6F32, 0x6F33, + 0x6F36, 0xE547, 0, 0, 0xFB42, 0x6F38, 0x7D44, 0x7D45, + 0, 0x3640, 0xFB43, 0, 0x6F3B, 0x6F35, 0xE54C, 0xFB44, + 0x6F34, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB3F, 0, 0, 0, 0xFB3C, 0, 0xE54F, + 0xE550, 0xE54E, 0xE551, 0xFB49, 0, 0x7D47, 0, 0, +}; +static const unsigned short utf8_to_euc_E990[] = { + 0, 0xE554, 0xE555, 0x6F3F, 0xE556, 0, 0, 0x6F40, + 0xE557, 0xE558, 0, 0, 0, 0xE559, 0xE55A, 0xE55B, + 0x6F41, 0, 0, 0x6F3E, 0x6F3D, 0xE55C, 0xE55D, 0xE55E, + 0x3E62, 0x462A, 0x6F3C, 0, 0, 0, 0, 0xE55F, + 0, 0x6F45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x6F43, 0, 0, 0xE560, 0xE561, + 0, 0xE562, 0xE563, 0xE564, 0xE565, 0x6F44, 0x6F42, 0, + 0x4278, 0, 0x6F46, 0xE566, 0, 0xE568, 0, 0xE567, +}; +static const unsigned short utf8_to_euc_E990_x0213[] = { + 0, 0xE554, 0xE555, 0x6F3F, 0x7D46, 0, 0, 0x6F40, + 0xE557, 0xFB45, 0, 0, 0, 0xE559, 0xE55A, 0xFB46, + 0x6F41, 0, 0, 0x6F3E, 0x6F3D, 0xE55C, 0xFB47, 0xFB48, + 0x3E62, 0x462A, 0x6F3C, 0, 0, 0, 0, 0xE55F, + 0, 0x6F45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x6F43, 0, 0, 0xE560, 0xE561, + 0, 0xE562, 0xFB4A, 0x7D48, 0xFB4B, 0x6F44, 0x6F42, 0, + 0x4278, 0, 0x6F46, 0xFB4C, 0, 0xE568, 0, 0xE567, +}; +static const unsigned short utf8_to_euc_E991[] = { + 0, 0x6F47, 0, 0xE569, 0x6F49, 0xE56A, 0, 0, + 0xE56B, 0, 0xE56C, 0, 0xE56D, 0, 0, 0, + 0, 0x3455, 0x6F48, 0x4C7A, 0, 0xE56E, 0, 0, + 0, 0xE56F, 0x6F54, 0x6F4A, 0xE570, 0, 0x6F4D, 0xE571, + 0x6F4B, 0xE572, 0x6F4C, 0xE573, 0, 0, 0, 0, + 0xE574, 0, 0x6F4E, 0xE575, 0, 0xE576, 0xE577, 0xE578, + 0x6F50, 0xE579, 0xE57A, 0, 0, 0x6F51, 0, 0x6F52, + 0, 0, 0, 0, 0x6F55, 0x6F53, 0x6F56, 0x6F58, +}; +static const unsigned short utf8_to_euc_E991_x0213[] = { + 0, 0x6F47, 0, 0xE569, 0x6F49, 0xFB4D, 0, 0, + 0xE56B, 0, 0x7D49, 0, 0xE56D, 0, 0, 0, + 0, 0x3455, 0x6F48, 0x4C7A, 0, 0xE56E, 0, 0, + 0, 0xE56F, 0x6F54, 0x6F4A, 0xE570, 0, 0x6F4D, 0xE571, + 0x6F4B, 0xE572, 0x6F4C, 0x7D4A, 0, 0, 0, 0, + 0xE574, 0, 0x6F4E, 0x7D4B, 0, 0xFB50, 0xE577, 0xFB51, + 0x6F50, 0x7D4C, 0x7D4D, 0, 0, 0x6F51, 0, 0x6F52, + 0, 0, 0, 0, 0x6F55, 0x6F53, 0x6F56, 0x6F58, +}; +static const unsigned short utf8_to_euc_E992[] = { + 0, 0x6F57, 0, 0xE57C, 0xE57B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E995[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x4439, + 0xE57D, 0xE57E, 0, 0, 0, 0, 0xE621, 0, +}; +static const unsigned short utf8_to_euc_E995_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x4439, + 0xFB52, 0xFB53, 0, 0, 0, 0, 0xE621, 0, +}; +static const unsigned short utf8_to_euc_E996[] = { + 0x4C67, 0, 0x6F59, 0x412E, 0xE622, 0, 0, 0x6F5A, + 0xE623, 0x4A44, 0x6F5B, 0x332B, 0xE624, 0xE625, 0xE626, 0x313C, + 0, 0x3457, 0xF471, 0x3456, 0x6F5C, 0, 0x6F5D, 0, + 0x6F5E, 0x6F5F, 0, 0, 0, 0xE627, 0xE628, 0xE629, + 0x6F60, 0xE62A, 0x3458, 0x3355, 0x395E, 0x4836, 0xE62B, 0x6F62, + 0x6F61, 0xE62C, 0, 0xE62D, 0xE62E, 0x6F63, 0, 0, + 0, 0, 0x315C, 0, 0xE62F, 0, 0xE630, 0, + 0, 0x6F66, 0xE631, 0x6F65, 0x6F64, 0xE632, 0x6F67, 0xE633, +}; +static const unsigned short utf8_to_euc_E996_x0213[] = { + 0x4C67, 0, 0x6F59, 0x412E, 0xE622, 0, 0xFB54, 0x6F5A, + 0xE623, 0x4A44, 0x6F5B, 0x332B, 0xFB55, 0xFB56, 0x7D4E, 0x313C, + 0, 0x3457, 0xF471, 0x3456, 0x6F5C, 0, 0x6F5D, 0, + 0x6F5E, 0x6F5F, 0, 0, 0, 0xE627, 0xE628, 0x7D4F, + 0x6F60, 0xE62A, 0x3458, 0x3355, 0x395E, 0x4836, 0x7D50, 0x6F62, + 0x6F61, 0x7D51, 0, 0xFB58, 0x7D52, 0x6F63, 0, 0, + 0, 0, 0x315C, 0, 0xFB59, 0, 0x7D53, 0, + 0, 0x6F66, 0xE631, 0x6F65, 0x6F64, 0x7D54, 0x6F67, 0xE633, +}; +static const unsigned short utf8_to_euc_E997[] = { + 0, 0, 0, 0x6F6A, 0, 0, 0xE634, 0x3047, + 0xE635, 0xE636, 0x6F68, 0xE637, 0x6F6C, 0x6F6B, 0, 0, + 0xE638, 0xE639, 0xE63A, 0xE63B, 0x6F6E, 0x6F6D, 0x6F6F, 0, + 0x462E, 0xE63C, 0xE63D, 0, 0x6F70, 0xE63E, 0xE63F, 0xE640, + 0xE641, 0x6F71, 0x6F73, 0, 0xE642, 0x6F72, 0xE643, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E997_x0213[] = { + 0, 0, 0, 0x6F6A, 0, 0, 0xE634, 0x3047, + 0xFB5B, 0xE636, 0x6F68, 0x7D55, 0x6F6C, 0x6F6B, 0, 0, + 0x7D56, 0xE639, 0xE63A, 0x7D57, 0x6F6E, 0x6F6D, 0x6F6F, 0, + 0x462E, 0xE63C, 0x7D59, 0, 0x6F70, 0xE63E, 0x7D5A, 0xE640, + 0xE641, 0x6F71, 0x6F73, 0, 0xE642, 0x6F72, 0xE643, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E998[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x496C, 0xE644, 0xE645, 0, + 0, 0x6F74, 0xE646, 0, 0xE647, 0xE648, 0xE649, 0, + 0x6F75, 0, 0x3A65, 0, 0xE64A, 0, 0x6F76, 0x6F77, + 0, 0xE64B, 0x4B49, 0xE64C, 0, 0, 0, 0xE64D, + 0xE64E, 0xE64F, 0xE650, 0x414B, 0xE651, 0xE652, 0, 0x3024, +}; +static const unsigned short utf8_to_euc_E998_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x496C, 0xFA25, 0xE645, 0, + 0, 0x6F74, 0xE646, 0, 0xE647, 0xE648, 0xE649, 0, + 0x6F75, 0, 0x3A65, 0, 0xFB5E, 0, 0x6F76, 0x6F77, + 0, 0xE64B, 0x4B49, 0xFB5F, 0xFB60, 0, 0, 0xE64D, + 0xE64E, 0xE64F, 0xE650, 0x414B, 0xFB62, 0xE652, 0, 0x3024, +}; +static const unsigned short utf8_to_euc_E999[] = { + 0x424B, 0xE653, 0x6F78, 0, 0x496D, 0, 0, 0, + 0, 0, 0, 0x6F7B, 0x6F79, 0x395F, 0, 0x6F7A, + 0x3842, 0, 0xE654, 0, 0xE655, 0, 0xE656, 0xE657, + 0xE658, 0, 0, 0x4A45, 0x6F7D, 0x7021, 0x6F7E, 0x7022, + 0, 0xE659, 0x3121, 0x3F58, 0x3D7C, 0x3459, 0x7023, 0, + 0, 0, 0x4766, 0, 0x7025, 0, 0xE65A, 0, + 0x3122, 0, 0x7024, 0x4444, 0xE65B, 0x4E4D, 0x462B, 0x6F7C, + 0x4E26, 0, 0x3831, 0xE65C, 0xE65D, 0x4D5B, 0xE65E, 0xE65F, +}; +static const unsigned short utf8_to_euc_E999_x0213[] = { + 0x424B, 0xFB63, 0x6F78, 0, 0x496D, 0, 0, 0, + 0, 0, 0, 0x6F7B, 0x6F79, 0x395F, 0, 0x6F7A, + 0x3842, 0, 0xE654, 0, 0xE655, 0, 0xE656, 0xE657, + 0x7D5B, 0, 0, 0x4A45, 0x6F7D, 0x7021, 0x6F7E, 0x7022, + 0, 0xFB64, 0x3121, 0x3F58, 0x3D7C, 0x3459, 0x7023, 0, + 0, 0, 0x4766, 0, 0x7025, 0, 0xE65A, 0, + 0x3122, 0, 0x7024, 0x4444, 0xE65B, 0x4E4D, 0x462B, 0x6F7C, + 0x4E26, 0, 0x3831, 0xE65C, 0xE65D, 0x4D5B, 0xE65E, 0xE65F, +}; +static const unsigned short utf8_to_euc_E99A[] = { + 0, 0xE660, 0xE661, 0xE662, 0xE663, 0x3679, 0x4E34, 0, + 0x3728, 0xE664, 0x4262, 0x6721, 0, 0x7026, 0x332C, 0x3F6F, + 0, 0xE665, 0, 0, 0x3356, 0x7028, 0xE666, 0x7029, + 0x7027, 0x3764, 0xE667, 0x3A5D, 0x3E63, 0xE668, 0, 0xE669, + 0x3123, 0, 0, 0x4E59, 0xE66A, 0xE66B, 0xE66C, 0x702B, + 0x6E2E, 0xE66D, 0x702A, 0, 0, 0, 0xE66E, 0xE66F, + 0x702E, 0x702C, 0x702D, 0xE670, 0x702F, 0, 0x7030, 0x4E6C, + 0x7031, 0x7032, 0xE671, 0x4049, 0x483B, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E99A_x0213[] = { + 0, 0xE660, 0xFB66, 0xE662, 0x7D5C, 0x3679, 0x4E34, 0, + 0x3728, 0xE664, 0x4262, 0x6721, 0, 0x7026, 0x332C, 0x3F6F, + 0, 0xE665, 0, 0, 0x3356, 0x7028, 0xE666, 0x7029, + 0x7027, 0x3764, 0xFB68, 0x3A5D, 0x3E63, 0x7D5E, 0, 0xE669, + 0x3123, 0, 0, 0x4E59, 0x7D5F, 0x7D60, 0xE66C, 0x702B, + 0x6E2E, 0xFB6B, 0x702A, 0, 0, 0, 0xE66E, 0xFB6C, + 0x702E, 0x702C, 0x702D, 0xFB6D, 0x702F, 0, 0x7030, 0x4E6C, + 0x7031, 0x7032, 0xFB6E, 0x4049, 0x483B, 0xFB6F, 0, 0, +}; +static const unsigned short utf8_to_euc_E99B[] = { + 0x3F7D, 0x3467, 0, 0, 0x4D3A, 0x326D, 0x3D38, 0x385B, + 0, 0x7035, 0xE672, 0x7034, 0x3B73, 0x7036, 0x7033, 0, + 0, 0x3B28, 0xE673, 0, 0, 0x703A, 0x6A2D, 0, + 0xE675, 0x5256, 0xE676, 0x3F77, 0x7038, 0xE677, 0xE678, 0xE679, + 0, 0, 0x4E25, 0x4671, 0, 0, 0, 0, + 0x312B, 0xE67A, 0x4063, 0x3C36, 0, 0, 0, 0xE67B, + 0x4A37, 0xE67C, 0x3140, 0, 0, 0, 0x4E6D, 0x4D6B, + 0, 0x703B, 0xE67D, 0x4545, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E99B_x0213[] = { + 0x3F7D, 0x3467, 0, 0, 0x4D3A, 0x326D, 0x3D38, 0x385B, + 0, 0x7035, 0xE672, 0x7034, 0x3B73, 0x7036, 0x7033, 0, + 0, 0x3B28, 0x7D61, 0, 0, 0x703A, 0x6A2D, 0, + 0xFB72, 0x5256, 0xFB73, 0x3F77, 0x7038, 0xFB74, 0x7D62, 0xE679, + 0, 0, 0x4E25, 0x4671, 0, 0, 0, 0, + 0x312B, 0x7D64, 0x4063, 0x3C36, 0, 0, 0, 0x7D65, + 0x4A37, 0xE67C, 0x3140, 0, 0, 0, 0x4E6D, 0x4D6B, + 0, 0x703B, 0xE67D, 0x4545, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E99C[] = { + 0x3C7B, 0, 0xE67E, 0xE721, 0x703C, 0xE722, 0x703D, 0x3F4C, + 0x703E, 0xE723, 0x4E6E, 0, 0, 0x7039, 0x7040, 0x7042, + 0, 0x7041, 0, 0x703F, 0, 0, 0x7043, 0, + 0, 0x7044, 0xE724, 0xE725, 0x417A, 0xE726, 0x3262, 0, + 0, 0xE727, 0xE728, 0xE729, 0x7045, 0, 0, 0x4C38, + 0xE72A, 0, 0x7046, 0, 0, 0, 0, 0, + 0x7047, 0xE72B, 0x4F2A, 0xE72C, 0, 0, 0, 0, + 0x5B31, 0x7048, 0, 0xF474, 0, 0x7049, 0x704A, 0, +}; +static const unsigned short utf8_to_euc_E99C_x0213[] = { + 0x3C7B, 0, 0xE67E, 0xE721, 0x703C, 0xE722, 0x703D, 0x3F4C, + 0x703E, 0xE723, 0x4E6E, 0, 0, 0x7039, 0x7040, 0x7042, + 0, 0x7041, 0, 0x703F, 0xFB76, 0, 0x7043, 0, + 0, 0x7044, 0xE724, 0xE725, 0x417A, 0xE726, 0x3262, 0, + 0, 0xE727, 0xE728, 0xFB77, 0x7045, 0, 0, 0x4C38, + 0xE72A, 0, 0x7046, 0, 0, 0, 0, 0, + 0x7047, 0xE72B, 0x4F2A, 0x7D66, 0, 0, 0xFB79, 0, + 0x5B31, 0x7048, 0, 0x7D67, 0, 0x7049, 0x704A, 0, +}; +static const unsigned short utf8_to_euc_E99D[] = { + 0, 0xE72D, 0x704E, 0xE72E, 0x704B, 0, 0x704C, 0, + 0x704D, 0x704F, 0xE72F, 0, 0, 0xF475, 0xE730, 0xE731, + 0, 0xF476, 0x4044, 0, 0, 0xE732, 0x4C77, 0xE733, + 0xE734, 0x4045, 0xE735, 0xE736, 0x7050, 0, 0x4873, 0, + 0x7051, 0x7353, 0x4C4C, 0xE737, 0x7052, 0, 0x7053, 0xE738, + 0x7054, 0x3357, 0xE739, 0x7056, 0, 0x3F59, 0xE73A, 0, + 0, 0x7057, 0, 0xE73B, 0x3724, 0, 0xE73C, 0xE73D, + 0xE73E, 0x7058, 0x705C, 0xE73F, 0x705A, 0xE740, 0, 0xE741, +}; +static const unsigned short utf8_to_euc_E99D_x0213[] = { + 0, 0xFB7A, 0x704E, 0xE72E, 0x704B, 0, 0x704C, 0xFB7B, + 0x704D, 0x704F, 0xE72F, 0, 0, 0x7D68, 0x7D69, 0x7D6A, + 0, 0xF476, 0x4044, 0, 0, 0xFB7C, 0x4C77, 0xFB7D, + 0xE734, 0x4045, 0x7D6B, 0xFB7E, 0x7050, 0, 0x4873, 0, + 0x7051, 0x7353, 0x4C4C, 0xE737, 0x7052, 0, 0x7053, 0xE738, + 0x7054, 0x3357, 0xFC21, 0x7056, 0, 0x3F59, 0x7D6C, 0, + 0, 0x7057, 0, 0x7D6D, 0x3724, 0, 0xE73C, 0xE73D, + 0xE73E, 0x7058, 0x705C, 0xE73F, 0x705A, 0xE740, 0, 0xE741, +}; +static const unsigned short utf8_to_euc_E99E[] = { + 0xE742, 0x705B, 0, 0, 0x3373, 0x7059, 0x705D, 0, + 0, 0xE743, 0, 0x705E, 0, 0x3048, 0, 0x705F, + 0x7060, 0, 0, 0, 0, 0xE744, 0xE745, 0xE746, + 0x3E64, 0xE747, 0xE748, 0, 0x7061, 0, 0xE749, 0xE74A, + 0x3547, 0, 0xE74B, 0x7064, 0, 0, 0x7063, 0, + 0x7062, 0, 0, 0x6B71, 0xE74C, 0x4A5C, 0xE74D, 0, + 0, 0xE74E, 0xE74F, 0x7065, 0x7066, 0xE750, 0xE751, 0, + 0xE752, 0xE753, 0xE754, 0, 0xE755, 0, 0xE756, 0xE757, +}; +static const unsigned short utf8_to_euc_E99E_x0213[] = { + 0xE742, 0x705B, 0, 0, 0x3373, 0x7059, 0x705D, 0, + 0, 0xE743, 0, 0x705E, 0, 0x3048, 0, 0x705F, + 0x7060, 0, 0, 0, 0, 0x7D6E, 0xFC24, 0xE746, + 0x3E64, 0xE747, 0xFC25, 0, 0x7061, 0, 0xFC26, 0xE74A, + 0x3547, 0, 0xFC27, 0x7064, 0, 0, 0x7063, 0, + 0x7062, 0, 0, 0x6B71, 0xE74C, 0x4A5C, 0x7D6F, 0, + 0, 0xFC28, 0xFC29, 0x7065, 0x7066, 0xE750, 0xE751, 0, + 0xE752, 0xE753, 0x7D70, 0, 0xE755, 0, 0xFC2A, 0xE757, +}; +static const unsigned short utf8_to_euc_E99F[] = { + 0, 0xE758, 0, 0x7067, 0xE759, 0xE75A, 0x7068, 0xE75B, + 0x7069, 0xE75C, 0xE75D, 0x706A, 0xE75E, 0xE75F, 0xE760, 0, + 0xE761, 0xE762, 0, 0x345A, 0xE763, 0, 0, 0xE764, + 0xE765, 0xE766, 0, 0xE76A, 0x706B, 0xE767, 0xE768, 0, + 0xE769, 0xE76B, 0, 0, 0xE76C, 0, 0, 0, + 0, 0, 0, 0, 0, 0x706C, 0x4723, 0xE76D, + 0, 0xE76E, 0x706E, 0x323B, 0xE76F, 0x7071, 0x7070, 0xE770, + 0xE771, 0, 0xE772, 0x3124, 0, 0, 0, 0x3641, +}; +static const unsigned short utf8_to_euc_E99F_x0213[] = { + 0, 0x7D71, 0, 0x7067, 0xE759, 0xE75A, 0x7068, 0xE75B, + 0x7069, 0x7D72, 0xE75D, 0x706A, 0xFC2B, 0xE75F, 0xE760, 0, + 0xE761, 0xFC2C, 0, 0x345A, 0xFC2D, 0, 0, 0xE764, + 0xFC2E, 0xFC2F, 0, 0x7D74, 0x706B, 0xE767, 0x7D73, 0, + 0xE769, 0xFC30, 0, 0, 0xE76C, 0, 0, 0, + 0, 0, 0, 0, 0, 0x706C, 0x4723, 0xE76D, + 0, 0xFC31, 0x706E, 0x323B, 0x7D75, 0x7071, 0x7070, 0xE770, + 0xE771, 0, 0xE772, 0x3124, 0, 0, 0, 0x3641, +}; +static const unsigned short utf8_to_euc_E9A0[] = { + 0, 0x4A47, 0x443A, 0x3A22, 0, 0x3960, 0x3D67, 0xE773, + 0x3F5C, 0, 0xE774, 0, 0x7073, 0xE776, 0xE777, 0x7072, + 0x4D42, 0x3468, 0x4852, 0x465C, 0xE778, 0, 0xE779, 0x3F7C, + 0x4E4E, 0xE775, 0x375B, 0, 0xE77A, 0, 0xE77B, 0, + 0xE77C, 0x7076, 0, 0xE77D, 0x7075, 0xE828, 0xE77E, 0, + 0, 0, 0, 0xE821, 0x4B4B, 0x462C, 0xE822, 0xE823, + 0xE824, 0, 0xE825, 0xE826, 0x3150, 0xE827, 0, 0x7077, + 0x7074, 0, 0, 0x4951, 0x4D6A, 0x7078, 0xE829, 0, +}; +static const unsigned short utf8_to_euc_E9A0_x0213[] = { + 0, 0x4A47, 0x443A, 0x3A22, 0xFC32, 0x3960, 0x3D67, 0xE773, + 0x3F5C, 0, 0x7D77, 0, 0x7073, 0xFC33, 0xFC34, 0x7072, + 0x4D42, 0x3468, 0x4852, 0x465C, 0xFC35, 0, 0xFC36, 0x3F7C, + 0x4E4E, 0xE775, 0x375B, 0, 0xE77A, 0, 0x7D78, 0, + 0xE77C, 0x7076, 0, 0xFC39, 0x7075, 0xFC3C, 0xE77E, 0, + 0, 0, 0, 0x7D79, 0x4B4B, 0x462C, 0xE822, 0xE823, + 0x7D7A, 0, 0xFC3A, 0xFC3B, 0x3150, 0xE827, 0, 0x7077, + 0x7074, 0, 0, 0x4951, 0x4D6A, 0x7078, 0xE829, 0, +}; +static const unsigned short utf8_to_euc_E9A1[] = { + 0, 0, 0, 0, 0xE82A, 0, 0x7079, 0xE82B, + 0, 0, 0xE82C, 0x707B, 0x426A, 0x335B, 0x335C, 0x707A, + 0, 0xE82D, 0xE82E, 0xE82F, 0x3469, 0x3832, 0xE830, 0xE831, + 0x346A, 0xE832, 0xE833, 0x453F, 0, 0, 0x4E60, 0, + 0, 0, 0xE834, 0xE835, 0, 0xE836, 0xE837, 0x385C, + 0, 0, 0xE838, 0x707C, 0xE839, 0, 0, 0x707D, + 0x707E, 0x7121, 0, 0x7123, 0x7122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9A1_x0213[] = { + 0, 0, 0, 0, 0xE82A, 0, 0x7079, 0xFC3D, + 0, 0, 0xE82C, 0x707B, 0x426A, 0x335B, 0x335C, 0x707A, + 0, 0xE82D, 0x7D7C, 0x7D7D, 0x3469, 0x3832, 0x7D7E, 0x7E21, + 0x346A, 0x7E22, 0x7E23, 0x453F, 0, 0, 0x4E60, 0, + 0, 0, 0xE834, 0xE835, 0, 0x7E25, 0xFC3E, 0x385C, + 0, 0, 0xE838, 0x707C, 0x7E26, 0, 0, 0x707D, + 0x707E, 0x7121, 0, 0x7123, 0x7122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9A2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x4977, 0, 0x7124, 0xE83A, 0, 0xE83B, 0xE83C, 0x7125, + 0xE83D, 0x7126, 0, 0, 0xE83E, 0, 0x7127, 0xE83F, + 0xE840, 0, 0xE841, 0xE842, 0, 0, 0, 0xE843, +}; +static const unsigned short utf8_to_euc_E9A2_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x4977, 0, 0x7124, 0xFC3F, 0, 0xFC40, 0xE83C, 0x7125, + 0xFC41, 0x7126, 0, 0, 0xE83E, 0, 0x7127, 0xFC43, + 0xFC44, 0, 0x7E27, 0xFC45, 0xFC46, 0, 0, 0xFC47, +}; +static const unsigned short utf8_to_euc_E9A3[] = { + 0, 0, 0xE844, 0x7129, 0x7128, 0xE845, 0x712A, 0, + 0xE846, 0, 0, 0, 0xE847, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x4874, 0x664C, 0, 0, 0x3F29, + 0, 0xE848, 0x3532, 0xE849, 0, 0xE84A, 0xE84B, 0xE84C, + 0, 0x712B, 0xE84D, 0x712C, 0, 0x522C, 0x5D3B, 0x4853, + 0, 0, 0x307B, 0xE84E, 0x303B, 0, 0xE84F, 0, + 0, 0, 0, 0, 0x3B74, 0x4B30, 0x3E7E, 0, +}; +static const unsigned short utf8_to_euc_E9A3_x0213[] = { + 0, 0, 0xFC48, 0x7129, 0x7128, 0xE845, 0x712A, 0xFC49, + 0x7E28, 0, 0, 0xFC4A, 0xE847, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x4874, 0x664C, 0, 0, 0x3F29, + 0xFC4B, 0xFC4D, 0x3532, 0xFC4E, 0, 0xFC4F, 0xE84B, 0x7E29, + 0, 0x712B, 0xFC50, 0x712C, 0, 0x522C, 0x5D3B, 0x4853, + 0xFC51, 0xFC52, 0x307B, 0xFC53, 0x303B, 0, 0xE84F, 0, + 0, 0, 0, 0, 0x3B74, 0x4B30, 0x3E7E, 0, +}; +static const unsigned short utf8_to_euc_E9A4[] = { + 0, 0, 0xE850, 0x712D, 0, 0x4C5F, 0, 0xE851, + 0xE852, 0x712E, 0x4D5C, 0, 0x3142, 0, 0, 0, + 0x3B41, 0xE853, 0x712F, 0x326E, 0x7130, 0xE854, 0xE855, 0xE856, + 0x7131, 0, 0xE857, 0xE858, 0xE859, 0x7133, 0x7134, 0xE85A, + 0x7136, 0x7132, 0xE85B, 0, 0x7135, 0, 0xE85C, 0xE85D, + 0x345B, 0, 0, 0xE85E, 0x7137, 0, 0x7138, 0, + 0, 0xE85F, 0xE860, 0xE861, 0xE862, 0xE863, 0, 0, + 0, 0xE864, 0xE865, 0xE866, 0xE867, 0x7139, 0x713A, 0, +}; +static const unsigned short utf8_to_euc_E9A4_x0213[] = { + 0, 0, 0xE850, 0x712D, 0, 0x4C5F, 0, 0xE851, + 0xFC54, 0x712E, 0x4D5C, 0, 0x3142, 0, 0, 0, + 0x3B41, 0xE853, 0x712F, 0x326E, 0x7130, 0xE854, 0xFC57, 0xFC58, + 0x7131, 0, 0xFC5A, 0xFC5B, 0xFC5C, 0x7133, 0x7134, 0xE85A, + 0x7136, 0x7132, 0xE85B, 0, 0x7135, 0, 0xE85C, 0xE85D, + 0x345B, 0, 0, 0xE85E, 0x7137, 0, 0x7138, 0, + 0, 0xFC5E, 0xFC5F, 0xFC60, 0xE862, 0xE863, 0, 0, + 0, 0xE864, 0xFC61, 0xFC62, 0xFC63, 0x7139, 0x713A, 0, +}; +static const unsigned short utf8_to_euc_E9A5[] = { + 0xE868, 0xE869, 0x713B, 0, 0, 0x713D, 0xE86A, 0xE86B, + 0xE86C, 0x713C, 0, 0x713F, 0x7142, 0xE86D, 0xE86E, 0, + 0x713E, 0x7140, 0x7141, 0, 0xE86F, 0x7143, 0, 0x3642, + 0xE870, 0xE871, 0, 0xE872, 0xE873, 0, 0xE874, 0xE875, + 0xE876, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9A5_x0213[] = { + 0xFC64, 0xFC65, 0x713B, 0, 0, 0x713D, 0xFC66, 0xE86B, + 0xE86C, 0x713C, 0, 0x713F, 0x7142, 0xFC67, 0xFC68, 0, + 0x713E, 0x7140, 0x7141, 0, 0xE86F, 0x7143, 0, 0x3642, + 0x7E2A, 0xE871, 0, 0xE872, 0xFC69, 0, 0xE874, 0xFC6A, + 0xFC6B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9A6[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x3C73, 0x7144, + 0x7145, 0x3961, 0, 0xE877, 0, 0xE878, 0xF47A, 0xE879, + 0, 0, 0, 0, 0, 0x7146, 0xE87A, 0, + 0x333E, 0, 0, 0, 0x474F, 0x7147, 0x7148, 0, + 0xE87B, 0xE87C, 0xE87D, 0x435A, 0x466B, 0xE87E, 0, 0, + 0, 0xE921, 0xE922, 0, 0x7149, 0xE923, 0, 0xE924, +}; +static const unsigned short utf8_to_euc_E9A6_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x3C73, 0x7144, + 0x7145, 0x3961, 0, 0xE877, 0, 0xE878, 0x7E2B, 0xE879, + 0, 0, 0, 0xFC6C, 0, 0x7146, 0xFC6D, 0, + 0x333E, 0, 0, 0, 0x474F, 0x7147, 0x7148, 0, + 0xE87B, 0xE87C, 0xE87D, 0x435A, 0x466B, 0xE87E, 0, 0, + 0, 0xFC6E, 0xE922, 0, 0x7149, 0xFC6F, 0, 0xFC70, +}; +static const unsigned short utf8_to_euc_E9A7[] = { + 0, 0x477D, 0, 0xE925, 0x424C, 0x3158, 0x366E, 0, + 0x366F, 0xE926, 0, 0, 0, 0, 0, 0, + 0x4373, 0x714E, 0x3670, 0xE927, 0xE928, 0x326F, 0, 0, + 0x714D, 0xE929, 0xE92A, 0x714B, 0xE92B, 0x714C, 0xE92C, 0x714A, + 0, 0, 0x7158, 0, 0, 0, 0, 0xE92D, + 0, 0, 0xE92E, 0xE92F, 0xE930, 0x714F, 0x7150, 0, + 0xE931, 0x7151, 0x7152, 0, 0xE932, 0xE933, 0, 0, + 0x7154, 0xE934, 0, 0x7153, 0, 0xE935, 0xE936, 0x3D59, +}; +static const unsigned short utf8_to_euc_E9A7_x0213[] = { + 0, 0x477D, 0, 0xFC71, 0x424C, 0x3158, 0x366E, 0, + 0x366F, 0xFC72, 0, 0, 0, 0, 0, 0, + 0x4373, 0x714E, 0x3670, 0xE927, 0xFC73, 0x326F, 0, 0, + 0x714D, 0xFC74, 0xE92A, 0x714B, 0xE92B, 0x714C, 0xFC75, 0x714A, + 0, 0, 0x7158, 0, 0, 0, 0, 0xE92D, + 0, 0, 0xE92E, 0xE92F, 0xE930, 0x714F, 0x7150, 0, + 0xFC77, 0x7151, 0x7152, 0, 0xE932, 0xE933, 0, 0, + 0x7154, 0xFC78, 0, 0x7153, 0xFC79, 0xE935, 0xE936, 0x3D59, +}; +static const unsigned short utf8_to_euc_E9A8[] = { + 0, 0x7155, 0xE937, 0xE938, 0xE939, 0x7157, 0, 0, + 0, 0, 0, 0xE93A, 0xE93B, 0, 0x3533, 0x7156, + 0xE93C, 0xE93D, 0x417B, 0x3833, 0, 0, 0xE93E, 0, + 0, 0x7159, 0, 0, 0, 0, 0xE93F, 0, + 0xE940, 0, 0xE941, 0xE942, 0xE943, 0, 0, 0xE944, + 0x424D, 0, 0, 0x715A, 0, 0xE945, 0xE946, 0, + 0x462D, 0, 0, 0xE947, 0, 0xE948, 0xE949, 0x715B, + 0xE94A, 0, 0, 0, 0, 0, 0x7160, 0, +}; +static const unsigned short utf8_to_euc_E9A8_x0213[] = { + 0, 0x7155, 0x7E2C, 0x7E2D, 0xE939, 0x7157, 0, 0, + 0, 0, 0xFC7A, 0xE93A, 0xE93B, 0, 0x3533, 0x7156, + 0xE93C, 0xFC7B, 0x417B, 0x3833, 0, 0, 0xFC7C, 0, + 0, 0x7159, 0xFC7D, 0, 0, 0, 0xE93F, 0, + 0xFC7E, 0, 0xE941, 0xE942, 0x7E2E, 0, 0, 0xE944, + 0x424D, 0, 0, 0x715A, 0, 0x7E2F, 0x7E30, 0, + 0x462D, 0xFD21, 0, 0xE947, 0, 0xE948, 0xFD22, 0x715B, + 0x7E31, 0, 0, 0, 0, 0, 0x7160, 0, +}; +static const unsigned short utf8_to_euc_E9A9[] = { + 0x715E, 0xE94C, 0x715D, 0x715F, 0xE94D, 0x715C, 0, 0xE94B, + 0, 0, 0xE94E, 0xE94F, 0xE950, 0x7162, 0xE951, 0, + 0, 0xE952, 0, 0, 0xE953, 0x7161, 0xE954, 0x7164, + 0, 0, 0x3643, 0x7163, 0, 0xE955, 0, 0x7165, + 0, 0, 0x7166, 0, 0x7168, 0x7167, 0, 0, + 0, 0x7169, 0x716B, 0x716A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9A9_x0213[] = { + 0x715E, 0xE94C, 0x715D, 0x715F, 0xFD23, 0x715C, 0, 0xE94B, + 0, 0, 0x7E32, 0xE94F, 0xFD24, 0x7162, 0x7E33, 0, + 0, 0xE952, 0x7E34, 0, 0xE953, 0x7161, 0xE954, 0x7164, + 0xFD25, 0, 0x3643, 0x7163, 0, 0xE955, 0, 0x7165, + 0, 0, 0x7166, 0, 0x7168, 0x7167, 0, 0, + 0, 0x7169, 0x716B, 0x716A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9AA[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x397C, 0, 0xE956, 0, 0xE957, 0x716C, 0xE958, 0xE959, + 0x716D, 0, 0xE95A, 0, 0xE95B, 0xE95C, 0xE95D, 0, + 0x333C, 0xE95E, 0, 0xE95F, 0x716E, 0, 0xE960, 0xE961, +}; +static const unsigned short utf8_to_euc_E9AA_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x397C, 0, 0xE956, 0, 0xE957, 0x716C, 0xE958, 0xFD27, + 0x716D, 0, 0xE95A, 0, 0xE95B, 0xE95C, 0x7E35, 0xFD29, + 0x333C, 0xFD2B, 0, 0xE95F, 0x716E, 0, 0xE960, 0xE961, +}; +static const unsigned short utf8_to_euc_E9AB[] = { + 0x716F, 0xE962, 0, 0xE963, 0x3F71, 0, 0xE964, 0, + 0xE965, 0, 0, 0, 0, 0, 0xE966, 0x7170, + 0xE967, 0x7171, 0xE968, 0x7172, 0x7173, 0xE969, 0xE96A, 0xE96B, + 0x3962, 0xF47B, 0, 0xE96C, 0xE96D, 0, 0x7174, 0x7175, + 0xE96E, 0, 0x7176, 0x7177, 0xE96F, 0xE970, 0x7178, 0xE971, + 0, 0xE972, 0x4831, 0x717A, 0xE973, 0x4926, 0x717B, 0x7179, + 0, 0x717D, 0xE974, 0xE975, 0x717C, 0xE976, 0, 0x717E, + 0, 0xE977, 0xE978, 0x7221, 0, 0xE979, 0, 0xE97A, +}; +static const unsigned short utf8_to_euc_E9AB_x0213[] = { + 0x716F, 0x7E36, 0, 0x7E37, 0x3F71, 0, 0xFD2D, 0, + 0xE965, 0, 0, 0, 0, 0, 0x7E38, 0x7170, + 0xFD2E, 0x7171, 0xFD2F, 0x7172, 0x7173, 0xFD30, 0x7E39, 0xE96B, + 0x3962, 0xF47B, 0, 0xE96C, 0xFD32, 0, 0x7174, 0x7175, + 0xFD33, 0, 0x7176, 0x7177, 0xE96F, 0xFD34, 0x7178, 0xE971, + 0, 0xFD35, 0x4831, 0x717A, 0xE973, 0x4926, 0x717B, 0x7179, + 0, 0x717D, 0xE974, 0xE975, 0x717C, 0xE976, 0, 0x717E, + 0, 0x7E3A, 0xE978, 0x7221, 0, 0xE979, 0, 0xE97A, +}; +static const unsigned short utf8_to_euc_E9AC[] = { + 0xE97B, 0xE97C, 0xE97D, 0xE97E, 0xEA21, 0xEA22, 0x7222, 0, + 0xEA23, 0xEA24, 0, 0xEA25, 0xEA26, 0xEA27, 0xEA28, 0, + 0xEA29, 0, 0xEA2A, 0, 0, 0, 0xEA2B, 0, + 0x7223, 0xEA2C, 0x7224, 0xEA2D, 0xEA2E, 0, 0, 0x7225, + 0xEA2F, 0, 0x7226, 0x7227, 0, 0x7228, 0xEA30, 0x7229, + 0x722A, 0x722B, 0x722C, 0xEA31, 0, 0xEA32, 0x722D, 0x722E, + 0, 0x5D35, 0x722F, 0xEA33, 0xEA34, 0xEA35, 0, 0xEA36, + 0, 0xEA37, 0xEA38, 0x6478, 0x3534, 0xEA39, 0, 0, +}; +static const unsigned short utf8_to_euc_E9AC_x0213[] = { + 0xE97B, 0xE97C, 0x7E3B, 0xFD36, 0xEA21, 0xEA22, 0x7222, 0, + 0x7E3C, 0xEA24, 0, 0xEA25, 0xFD37, 0xEA27, 0xEA28, 0, + 0xFD38, 0, 0xFD39, 0, 0, 0, 0xFD3A, 0, + 0x7223, 0xEA2C, 0x7224, 0xEA2D, 0xFD3B, 0, 0, 0x7225, + 0x7E3D, 0, 0x7226, 0x7227, 0, 0x7228, 0xEA30, 0x7229, + 0x722A, 0x722B, 0x722C, 0xFD3C, 0, 0x7E3F, 0x722D, 0x722E, + 0, 0x5D35, 0x722F, 0xFD3D, 0xEA34, 0xEA35, 0, 0xEA36, + 0, 0xEA37, 0xEA38, 0x6478, 0x3534, 0xFD3E, 0, 0, +}; +static const unsigned short utf8_to_euc_E9AD[] = { + 0, 0x3321, 0x3A32, 0x7231, 0x7230, 0x4C25, 0, 0, + 0xEA3A, 0, 0, 0xEA3B, 0xEA3C, 0x7233, 0x7234, 0x7232, + 0, 0x7235, 0, 0, 0x4B62, 0xEA3D, 0xEA3E, 0xEA3F, + 0x7236, 0, 0x357B, 0xEA40, 0, 0, 0xEA41, 0, + 0, 0xEA42, 0, 0xEA43, 0, 0xEA44, 0xEA45, 0, + 0xEA46, 0, 0xEA47, 0xEA48, 0xEA49, 0xEA4A, 0xEA4B, 0x4F25, + 0, 0, 0xF47C, 0xEA4C, 0x7237, 0xEA4D, 0, 0xEA4E, + 0xEA4F, 0xEA50, 0, 0, 0, 0, 0, 0xEA51, +}; +static const unsigned short utf8_to_euc_E9AD_x0213[] = { + 0, 0x3321, 0x3A32, 0x7231, 0x7230, 0x4C25, 0, 0, + 0xEA3A, 0, 0, 0xFD40, 0xEA3C, 0x7233, 0x7234, 0x7232, + 0, 0x7235, 0, 0, 0x4B62, 0xEA3D, 0xEA3E, 0xEA3F, + 0x7236, 0, 0x357B, 0xEA40, 0, 0, 0x7E40, 0, + 0, 0xEA42, 0, 0xFD41, 0, 0xFD42, 0x7E42, 0, + 0xEA46, 0, 0xEA47, 0xFD43, 0xFD44, 0xEA4A, 0xEA4B, 0x4F25, + 0, 0, 0x7E43, 0xFD45, 0x7237, 0x7E44, 0xFD46, 0xFD47, + 0xEA4F, 0x7E41, 0, 0, 0, 0, 0, 0xEA51, +}; +static const unsigned short utf8_to_euc_E9AE[] = { + 0xEA52, 0, 0, 0x7239, 0xEA53, 0xEA54, 0xEA55, 0xEA56, + 0, 0xEA57, 0xEA58, 0xEA59, 0, 0xEA5A, 0x303E, 0xEA5B, + 0xEA5C, 0x723A, 0x4A2B, 0x7238, 0xEA5D, 0, 0x723B, 0x723C, + 0, 0, 0xEA5E, 0, 0, 0xEA5F, 0xEA60, 0x723D, + 0x723E, 0, 0, 0, 0, 0, 0xEA61, 0xEA62, + 0x723F, 0xEA63, 0x4B6E, 0x3B2D, 0xEA64, 0x3A7A, 0x412F, 0, + 0xEA65, 0xEA66, 0xEA67, 0, 0x7240, 0, 0, 0xEA68, + 0xEA69, 0x7243, 0, 0xEA6A, 0xEA6B, 0, 0xEA6C, 0xEA6D, +}; +static const unsigned short utf8_to_euc_E9AE_x0213[] = { + 0xEA52, 0, 0, 0x7239, 0x7E45, 0xEA54, 0xEA55, 0xEA56, + 0, 0xEA57, 0x7E46, 0xEA59, 0, 0xEA5A, 0x303E, 0x7E47, + 0xEA5C, 0x723A, 0x4A2B, 0x7238, 0xEA5D, 0, 0x723B, 0x723C, + 0, 0, 0xEA5E, 0, 0, 0xEA5F, 0x7E48, 0x723D, + 0x723E, 0, 0, 0, 0, 0, 0xFD48, 0x7E49, + 0x723F, 0xEA63, 0x4B6E, 0x3B2D, 0xFD49, 0x3A7A, 0x412F, 0, + 0xEA65, 0xFD4A, 0xFD4D, 0, 0x7240, 0, 0, 0xEA68, + 0xFD4E, 0x7243, 0, 0xEA6A, 0xEA6B, 0, 0xFD4F, 0xEA6D, +}; +static const unsigned short utf8_to_euc_E9AF[] = { + 0x7241, 0xEA6E, 0, 0, 0, 0, 0x7244, 0xEA6F, + 0xEA70, 0x3871, 0x7242, 0, 0, 0, 0xEA71, 0x7245, + 0xEA72, 0x7246, 0x7247, 0, 0x724B, 0, 0x3B2A, 0xEA73, + 0xEA74, 0, 0, 0x4264, 0, 0xEA75, 0, 0xEA76, + 0, 0x724C, 0x7249, 0x7248, 0x724A, 0xEA77, 0, 0xEA78, + 0x375F, 0, 0xEA79, 0xEA7A, 0, 0, 0, 0xEA7B, + 0x7250, 0x724F, 0x724E, 0xEA7C, 0, 0x3033, 0, 0xEA7D, + 0xEA7E, 0xEB21, 0xEB22, 0, 0, 0xEB23, 0, 0xEB24, +}; +static const unsigned short utf8_to_euc_E9AF_x0213[] = { + 0x7241, 0x7E4A, 0, 0, 0, 0, 0x7244, 0xFD50, + 0xEA70, 0x3871, 0x7242, 0, 0, 0, 0x7E4B, 0x7245, + 0xEA72, 0x7246, 0x7247, 0, 0x724B, 0, 0x3B2A, 0xEA73, + 0xFD52, 0, 0, 0x4264, 0, 0xFD53, 0, 0xEA76, + 0, 0x724C, 0x7249, 0x7248, 0x724A, 0x7E4C, 0, 0xFD54, + 0x375F, 0, 0xFD55, 0xFD56, 0, 0, 0xFD58, 0xFD57, + 0x7250, 0x724F, 0x724E, 0xFD51, 0, 0x3033, 0, 0xFD5C, + 0x7E4D, 0xEB21, 0xFD5A, 0, 0, 0x7E4E, 0, 0xEB24, +}; +static const unsigned short utf8_to_euc_E9B0[] = { + 0xEB25, 0, 0xEB26, 0, 0x725A, 0, 0x7256, 0, + 0x7257, 0x7253, 0x7259, 0xEB27, 0x7255, 0x3362, 0, 0xEB28, + 0x4F4C, 0xEB29, 0x7258, 0x7254, 0x7252, 0x7251, 0xEB2A, 0, + 0xEB2B, 0xEB2C, 0xEB2D, 0x725C, 0xEB2E, 0, 0xEB2F, 0, + 0, 0x725F, 0xEB30, 0xEB31, 0x725E, 0x725D, 0xEB32, 0xEB33, + 0xEB34, 0xEB35, 0xEB36, 0, 0, 0x4949, 0x725B, 0x3073, + 0x7260, 0xEB37, 0x7262, 0, 0, 0xEB38, 0xEB39, 0xEB3A, + 0, 0x336F, 0x724D, 0x3137, 0, 0xEB3B, 0x7264, 0, +}; +static const unsigned short utf8_to_euc_E9B0_x0213[] = { + 0x7E4F, 0, 0xEB26, 0, 0x725A, 0, 0x7256, 0, + 0x7257, 0x7253, 0x7259, 0xEB27, 0x7255, 0x3362, 0, 0xEB28, + 0x4F4C, 0xEB29, 0x7258, 0x7254, 0x7252, 0x7251, 0xFD5E, 0, + 0xFD5F, 0xFD60, 0xFD61, 0x725C, 0xEB2E, 0xFD62, 0xEB2F, 0, + 0, 0x725F, 0xFD63, 0x7E50, 0x725E, 0x725D, 0xEB32, 0xFD64, + 0xEB34, 0xFD65, 0xFD66, 0, 0, 0x4949, 0x725B, 0x3073, + 0x7260, 0xFD68, 0x7262, 0, 0, 0xEB38, 0xFD69, 0xFD6A, + 0, 0x336F, 0x724D, 0x3137, 0, 0xEB3B, 0x7264, 0, +}; +static const unsigned short utf8_to_euc_E9B1[] = { + 0, 0xEB3C, 0, 0xEB3D, 0xEB3E, 0xEB3F, 0x7263, 0x7261, + 0x432D, 0xEB40, 0xEB41, 0, 0, 0, 0xEB42, 0xEB43, + 0xEB44, 0, 0x4B70, 0xEB45, 0xEB46, 0, 0xEB47, 0x4E5A, + 0xEB48, 0, 0x7265, 0xEB49, 0xEB50, 0xEB4A, 0xEB4B, 0xEB4C, + 0x7266, 0, 0, 0xEB4D, 0, 0, 0, 0x7267, + 0xEB52, 0xEB4E, 0xEB4F, 0xEB51, 0, 0, 0xEB53, 0, + 0xEB54, 0, 0xEB55, 0, 0, 0xEB56, 0x7268, 0xEB57, + 0x7269, 0, 0, 0xEB58, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9B1_x0213[] = { + 0, 0x7E51, 0, 0xEB3D, 0xEB3E, 0xFD6B, 0x7263, 0x7261, + 0x432D, 0xFD6E, 0xFD6F, 0, 0, 0, 0xEB42, 0x7E52, + 0x7E53, 0, 0x4B70, 0x7E54, 0xFD71, 0, 0xEB47, 0x4E5A, + 0xFD72, 0, 0x7265, 0xFD73, 0xFD6C, 0xFD74, 0xEB4B, 0xFD75, + 0x7266, 0, 0, 0x7E55, 0, 0x7E56, 0, 0x7267, + 0xEB52, 0xFD76, 0xFD77, 0xFD78, 0, 0xFD79, 0xFD7A, 0, + 0xFD7B, 0, 0xFD7C, 0, 0, 0xFD7D, 0x7268, 0x7E57, + 0x7269, 0, 0xFD7E, 0xEB58, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9B3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x443B, 0xEB59, 0x726A, + 0, 0x4837, 0, 0x726F, 0x726B, 0, 0, 0, + 0x726C, 0, 0xEB5A, 0x4B31, 0x4C44, 0, 0x4650, 0xEB5B, + 0, 0xEB5C, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9B3_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x443B, 0xFE21, 0x726A, + 0, 0x4837, 0, 0x726F, 0x726B, 0, 0, 0, + 0x726C, 0, 0xFE22, 0x4B31, 0x4C44, 0, 0x4650, 0xEB5B, + 0, 0xEB5C, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9B4[] = { + 0, 0, 0xEB5E, 0x7270, 0, 0, 0x7271, 0x463E, + 0x726E, 0x726D, 0, 0xEB5D, 0, 0, 0x322A, 0, + 0, 0xEB5F, 0x7279, 0, 0, 0x7278, 0, 0xEB60, + 0xEB61, 0, 0, 0x3175, 0xEB62, 0xEB63, 0xEB64, 0x7276, + 0, 0, 0, 0x7275, 0, 0, 0x7273, 0, + 0x337B, 0, 0x7272, 0x3C32, 0x3229, 0, 0, 0xEB65, + 0xEB66, 0, 0xEB67, 0xEB68, 0xEB69, 0, 0, 0, + 0, 0, 0xEB6A, 0x3963, 0xEB6B, 0xEB6D, 0x727C, 0x727B, +}; +static const unsigned short utf8_to_euc_E9B4_x0213[] = { + 0, 0, 0xFE24, 0x7270, 0, 0, 0x7271, 0x463E, + 0x726E, 0x726D, 0, 0xFE23, 0, 0, 0x322A, 0, + 0, 0xFE26, 0x7279, 0, 0, 0x7278, 0, 0xFE27, + 0xFE28, 0, 0, 0x3175, 0xEB62, 0x7E58, 0x7E59, 0x7276, + 0, 0, 0, 0x7275, 0, 0, 0x7273, 0, + 0x337B, 0, 0x7272, 0x3C32, 0x3229, 0, 0, 0xEB65, + 0xEB66, 0, 0xFE2C, 0xEB68, 0xEB69, 0, 0, 0, + 0, 0, 0xEB6A, 0x3963, 0xEB6B, 0xEB6D, 0x727C, 0x727B, +}; +static const unsigned short utf8_to_euc_E9B5[] = { + 0, 0x727A, 0xEB6E, 0xEB6F, 0x7277, 0xEB6C, 0x727D, 0xEB70, + 0x727E, 0, 0xEB71, 0, 0, 0, 0, 0, + 0x7325, 0x7324, 0, 0xEB72, 0xEB73, 0, 0, 0, + 0, 0x7326, 0, 0, 0x312D, 0x7321, 0x7322, 0xEB74, + 0x3974, 0x4C39, 0xEB76, 0xEB75, 0x7323, 0xEB77, 0, 0, + 0, 0xEB78, 0xEB79, 0xEB7A, 0x4B32, 0, 0, 0x732B, + 0xEB7B, 0, 0x7327, 0, 0, 0, 0xEB7C, 0xEB7D, + 0, 0, 0x732C, 0xEB7E, 0xEC21, 0, 0xEC22, 0, +}; +static const unsigned short utf8_to_euc_E9B5_x0213[] = { + 0, 0x727A, 0xFE2E, 0x7E5A, 0x7277, 0xEB6C, 0x727D, 0x7E5B, + 0x727E, 0, 0xFE2F, 0, 0, 0, 0, 0, + 0x7325, 0x7324, 0x7E5C, 0xEB72, 0xEB73, 0, 0, 0, + 0, 0x7326, 0, 0, 0x312D, 0x7321, 0x7322, 0xFE30, + 0x3974, 0x4C39, 0xFE31, 0x7E5D, 0x7323, 0xEB77, 0, 0, + 0, 0xFE33, 0xEB79, 0xFE34, 0x4B32, 0, 0, 0x732B, + 0x7E5E, 0, 0x7327, 0xFE36, 0, 0, 0xFE37, 0xFE38, + 0, 0, 0x732C, 0xEB7E, 0x7E5F, 0, 0xFE39, 0, +}; +static const unsigned short utf8_to_euc_E9B6[] = { + 0, 0, 0, 0xEC23, 0xEC24, 0, 0xEC25, 0x7329, + 0, 0x7328, 0xEC26, 0, 0, 0xEC27, 0xEC28, 0x375C, + 0, 0, 0xEC29, 0xEC2A, 0, 0xEC2B, 0xEC2C, 0xEC2D, + 0xEC2E, 0, 0x732D, 0, 0, 0, 0, 0, + 0, 0xEC2F, 0, 0, 0x732E, 0, 0, 0, + 0, 0x732F, 0xEC30, 0x732A, 0xEC31, 0, 0xEC32, 0x7274, + 0, 0xEC33, 0x7330, 0, 0x4461, 0xEC34, 0, 0, + 0x7334, 0xEC35, 0x7335, 0x7333, 0xEC36, 0, 0, 0xEC37, +}; +static const unsigned short utf8_to_euc_E9B6_x0213[] = { + 0, 0, 0, 0xEC23, 0xFE3A, 0, 0xEC25, 0x7329, + 0, 0x7328, 0x7E60, 0, 0, 0xFE3B, 0xEC28, 0x375C, + 0, 0, 0xEC29, 0xEC2A, 0, 0xEC2B, 0x7E61, 0xEC2D, + 0xEC2E, 0xFE3C, 0x732D, 0, 0, 0, 0, 0, + 0, 0xFE3D, 0, 0, 0x732E, 0, 0, 0, + 0, 0x732F, 0xEC30, 0x732A, 0x7E63, 0, 0xEC32, 0x7274, + 0, 0xEC33, 0x7330, 0, 0x4461, 0xFE3F, 0, 0, + 0x7334, 0xFE40, 0x7335, 0x7333, 0x7E64, 0xFE41, 0, 0xFE3E, +}; +static const unsigned short utf8_to_euc_E9B7[] = { + 0, 0x7332, 0x7338, 0xEC38, 0x7331, 0, 0x7336, 0xEC39, + 0, 0xEC3A, 0xEC3B, 0, 0, 0, 0, 0x7337, + 0, 0, 0, 0x733A, 0xEC3C, 0xEC3D, 0xEC3E, 0xEC3F, + 0, 0x7339, 0xEC40, 0, 0, 0, 0xEC41, 0xEC42, + 0xEC43, 0, 0, 0, 0, 0xEC44, 0x733C, 0xEC45, + 0, 0xEC46, 0, 0xEC47, 0, 0x733D, 0xEC48, 0x733E, + 0xEC49, 0, 0x4F49, 0xEC4A, 0xEC4B, 0, 0, 0, + 0x733B, 0x426B, 0x3A6D, 0, 0, 0x733F, 0xEC4C, 0, +}; +static const unsigned short utf8_to_euc_E9B7_x0213[] = { + 0x7E62, 0x7332, 0x7338, 0xFE42, 0x7331, 0, 0x7336, 0xFE43, + 0, 0xFE44, 0xEC3B, 0, 0, 0, 0, 0x7337, + 0, 0, 0, 0x733A, 0xEC3C, 0xEC3D, 0xFE45, 0x7E65, + 0, 0x7339, 0xFE46, 0, 0, 0, 0xEC41, 0xFE47, + 0xFE48, 0, 0, 0xFE49, 0, 0xEC44, 0x733C, 0x7E67, + 0, 0xEC46, 0, 0xEC47, 0, 0x733D, 0xEC48, 0x733E, + 0xEC49, 0, 0x4F49, 0xEC4A, 0xFE4A, 0, 0, 0, + 0x733B, 0x426B, 0x3A6D, 0, 0, 0x733F, 0xEC4C, 0, +}; +static const unsigned short utf8_to_euc_E9B8[] = { + 0, 0, 0xEC4E, 0, 0, 0, 0, 0xEC4F, + 0, 0, 0xEC4D, 0, 0, 0, 0xEC50, 0, + 0xEC51, 0xEC52, 0xEC53, 0, 0, 0xEC54, 0xEC55, 0, + 0, 0xEC56, 0x7340, 0x7341, 0xEC57, 0xEC58, 0x7342, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9B8_x0213[] = { + 0, 0, 0xFE4D, 0, 0, 0, 0, 0x7E68, + 0, 0, 0xFE4C, 0, 0, 0xFE4E, 0xEC50, 0, + 0xEC51, 0xEC52, 0xEC53, 0, 0, 0x7E69, 0xEC55, 0, + 0, 0xFE4F, 0x7340, 0x7341, 0xFE50, 0xFE51, 0x7342, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9B9[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x7343, 0, 0, + 0x3834, 0x7344, 0xEC59, 0xEC5A, 0xEC5B, 0x7345, 0, 0x3C2F, +}; +static const unsigned short utf8_to_euc_E9B9_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x7343, 0, 0, + 0x3834, 0x7344, 0xEC59, 0xFE52, 0x7E6A, 0x7345, 0, 0x3C2F, +}; +static const unsigned short utf8_to_euc_E9BA[] = { + 0xEC5C, 0x7346, 0xEC5D, 0xEC5E, 0xEC5F, 0xEC60, 0, 0xEC61, + 0x7347, 0, 0, 0x7348, 0x7349, 0, 0xEC62, 0xEC63, + 0, 0x734C, 0x734A, 0x4F3C, 0, 0x734B, 0xEC64, 0x4E6F, + 0xEC65, 0, 0, 0xEC66, 0, 0x734D, 0xEC67, 0x4E5B, + 0, 0, 0, 0, 0xEC68, 0x734E, 0x477E, 0, + 0xEC69, 0x734F, 0x7351, 0, 0xEC6A, 0x7352, 0xEC6B, 0xEC6C, + 0xEC6D, 0, 0, 0xEC6E, 0xEC6F, 0xEC70, 0, 0, + 0x7350, 0x396D, 0x4C4D, 0x4B63, 0x5677, 0, 0x5D60, 0x4B7B, +}; +static const unsigned short utf8_to_euc_E9BA_x0213[] = { + 0xFE54, 0x7346, 0xEC5D, 0xEC5E, 0xEC5F, 0xFE55, 0, 0xEC61, + 0x7347, 0, 0, 0x7348, 0x7349, 0, 0xEC62, 0xEC63, + 0, 0x734C, 0x734A, 0x4F3C, 0, 0x734B, 0xEC64, 0x4E6F, + 0xEC65, 0, 0, 0xFE56, 0, 0x734D, 0x7E6B, 0x4E5B, + 0, 0, 0, 0, 0x7E6C, 0x734E, 0x477E, 0, + 0xFE57, 0x734F, 0x7351, 0, 0x7E6D, 0x7352, 0xEC6B, 0x7E6E, + 0xEC6D, 0, 0, 0xEC6E, 0x7E6F, 0x7E70, 0, 0, + 0x7350, 0x396D, 0x4C4D, 0x4B63, 0x5677, 0xFE59, 0x5D60, 0x4B7B, +}; +static const unsigned short utf8_to_euc_E9BB[] = { + 0, 0, 0, 0, 0x322B, 0, 0xEC71, 0, + 0xEC72, 0, 0, 0xEC73, 0x7354, 0x3550, 0x7355, 0x7356, + 0x7357, 0xF47E, 0x3975, 0, 0x7358, 0xEC74, 0, 0, + 0x6054, 0x4C5B, 0, 0x4263, 0x7359, 0x735B, 0x735A, 0xEC75, + 0x735C, 0, 0, 0, 0xEC76, 0x735D, 0, 0xEC77, + 0x735E, 0, 0, 0, 0xEC78, 0xEC79, 0xEC7A, 0x735F, + 0xEC7B, 0xEC7C, 0xEC7D, 0, 0x7360, 0xEC7E, 0x7361, 0x7362, + 0xED21, 0x7363, 0, 0x7364, 0x7365, 0x7366, 0, 0xED22, +}; +static const unsigned short utf8_to_euc_E9BB_x0213[] = { + 0, 0, 0, 0x7E71, 0x322B, 0, 0xEC71, 0, + 0xEC72, 0, 0, 0xEC73, 0x7354, 0x3550, 0x7355, 0x7356, + 0x7357, 0x7E72, 0x3975, 0, 0x7358, 0xEC74, 0, 0, + 0x6054, 0x4C5B, 0, 0x4263, 0x7359, 0x735B, 0x735A, 0xFE5B, + 0x735C, 0, 0, 0, 0xEC76, 0x735D, 0, 0xFE5C, + 0x735E, 0, 0, 0, 0xEC78, 0xEC79, 0xFE5D, 0x735F, + 0xEC7B, 0xEC7C, 0xEC7D, 0, 0x7360, 0xEC7E, 0x7361, 0x7362, + 0xED21, 0x7363, 0, 0x7364, 0x7365, 0x7366, 0, 0xFE5E, +}; +static const unsigned short utf8_to_euc_E9BC[] = { + 0, 0, 0xED23, 0xED24, 0, 0, 0, 0x7367, + 0x7368, 0xED25, 0, 0, 0, 0, 0x4524, 0xED26, + 0xED27, 0xED28, 0xED29, 0x385D, 0xED2A, 0x736A, 0xED2B, 0xED2C, + 0, 0xED2D, 0xED2E, 0xED2F, 0, 0, 0, 0xED30, + 0x414D, 0x736B, 0xED31, 0, 0, 0, 0xED32, 0, + 0, 0, 0xED33, 0xED34, 0x736C, 0, 0, 0xED35, + 0, 0xED36, 0xED37, 0, 0xED38, 0, 0, 0xED39, + 0, 0xED3A, 0xED3B, 0x4921, 0xED3C, 0xED3D, 0x736D, 0xED3E, +}; +static const unsigned short utf8_to_euc_E9BC_x0213[] = { + 0, 0, 0xFE5F, 0xFE61, 0, 0, 0, 0x7367, + 0x7368, 0xED25, 0, 0, 0, 0, 0x4524, 0xED26, + 0x7E73, 0xED28, 0xED29, 0x385D, 0xED2A, 0x736A, 0xED2B, 0xFE62, + 0, 0xFE63, 0xED2E, 0xED2F, 0, 0, 0, 0xED30, + 0x414D, 0x736B, 0xED31, 0, 0, 0, 0xED32, 0, + 0, 0, 0xED33, 0xED34, 0x736C, 0, 0, 0xFE64, + 0, 0xED36, 0xED37, 0, 0xED38, 0, 0, 0xFE65, + 0, 0x7E74, 0xFE66, 0x4921, 0xED3C, 0xFE67, 0x736D, 0xED3E, +}; +static const unsigned short utf8_to_euc_E9BD[] = { + 0, 0xED3F, 0, 0xED40, 0xED41, 0xED42, 0xED43, 0xED44, + 0, 0, 0x736E, 0x6337, 0, 0, 0x6C5A, 0x706D, + 0, 0, 0x736F, 0xED45, 0x7370, 0xED46, 0xED47, 0xED48, + 0xED49, 0, 0xED4A, 0, 0, 0xED4B, 0xED4C, 0x7372, + 0x7373, 0x7374, 0x4E70, 0x7371, 0, 0, 0x7375, 0x7376, + 0xED4D, 0xED4E, 0x7378, 0, 0x7377, 0xED4F, 0xED50, 0xED51, + 0xED52, 0xED53, 0x737A, 0xED54, 0, 0xED55, 0x737B, 0x7379, + 0, 0, 0xED56, 0, 0, 0xED57, 0, 0, +}; +static const unsigned short utf8_to_euc_E9BD_x0213[] = { + 0, 0xFE68, 0, 0xED40, 0xED41, 0xFE69, 0xFE6A, 0xED44, + 0, 0, 0x736E, 0x6337, 0, 0, 0x6C5A, 0x706D, + 0, 0, 0x736F, 0xFE6B, 0x7370, 0xFE6C, 0xED47, 0x7E75, + 0xFE6D, 0, 0xED4A, 0, 0, 0xFE6F, 0xED4C, 0x7372, + 0x7373, 0x7374, 0x4E70, 0x7371, 0, 0, 0x7375, 0x7376, + 0xED4D, 0xFE71, 0x7378, 0, 0x7377, 0xFE73, 0xED50, 0xED51, + 0xFE74, 0xED53, 0x737A, 0xED54, 0, 0xFE75, 0x737B, 0x7379, + 0, 0, 0xED56, 0, 0, 0xED57, 0, 0, +}; +static const unsigned short utf8_to_euc_E9BE[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x4E36, 0, 0xED58, + 0xED59, 0xED5A, 0xED5B, 0, 0xED5C, 0x737C, 0xED5D, 0xED5E, + 0, 0, 0, 0, 0x737D, 0x6354, 0xED5F, 0, + 0x737E, 0xED60, 0xED61, 0xED62, 0, 0xED63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_E9BE_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x4E36, 0, 0xED58, + 0x7E76, 0xED5A, 0xED5B, 0, 0x7E77, 0x737C, 0xED5D, 0x7E78, + 0, 0, 0, 0, 0x737D, 0x6354, 0xED5F, 0, + 0x737E, 0xED60, 0x7E79, 0xED62, 0, 0xED63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA4[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xF445, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA4_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0x763B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x742E, 0x754E, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x7B4F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA5_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x7649, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA7[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xF472, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA7_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x7E24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0x7D5D, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA8[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF434, 0xF437, + 0xF438, 0xF43D, 0xF444, 0xF447, 0xF448, 0xF44E, 0xF44F, 0xF453, + 0xF455, 0xF456, 0xF457, 0xF458, 0xF45A, 0xF45B, 0xF45E, 0xF460, + 0xF462, 0xF463, 0xF465, 0xF469, 0xF46A, 0xF46B, 0xF46D, 0xF46F, + 0xF470, 0xF473, 0xF477, 0xF478, 0xF479, 0xF47D, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFA8_x0213[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xF434, 0x2F4B, + 0x2F57, 0x4F72, 0xF444, 0xAE79, 0x757A, 0x775A, 0x776F, 0xF453, + 0xF455, 0x793C, 0x793D, 0x7941, 0xF45A, 0xF45B, 0xF45E, 0x7B3A, + 0xF738, 0xF745, 0x7C2E, 0xF469, 0xF96E, 0xF46B, 0x7C6A, 0xF46F, + 0xF470, 0xF473, 0xF477, 0xF478, 0xF479, 0xF47D, 0, 0, + 0x2E38, 0x2E49, 0x2E50, 0x2E63, 0x2E68, 0x2E6E, 0x2F2C, 0x2F2F, + 0x2F36, 0x2F5A, 0x2F5E, 0x4F61, 0x4F62, 0x7450, 0x745C, 0x745E, +}; +static const unsigned short utf8_to_euc_EFA9_x0213[] = { + 0x7461, 0x7528, 0x752B, 0x7543, 0x7565, 0x7669, 0x7677, 0x7725, + 0x7755, 0xF029, 0x7825, 0x7927, 0x7933, 0x7934, 0x7937, 0x7938, + 0x7939, 0x793B, 0x793F, 0x7940, 0x794D, 0x7951, 0x7964, 0x7A2E, + 0xF450, 0x7A33, 0x7A3A, 0x7A44, 0x7A58, 0xF574, 0xF575, 0x7B27, + 0x7B6F, 0x7B79, 0x7C2F, 0x7C30, 0x7C38, 0x7C3D, 0xF969, 0x7C59, + 0x7D63, 0x7D76, 0x7D7B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFB9_x0213[] = { + 0, 0, 0, 0, 0, 0x233E, 0x233D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFBC[] = { + 0, 0x212A, 0xF42A, 0x2174, 0x2170, 0x2173, 0x2175, 0xF429, + 0x214A, 0x214B, 0x2176, 0x215C, 0x2124, 0x215D, 0x2125, 0x213F, + 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, + 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, + 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, + 0x2348, 0x2349, 0x234A, 0x234B, 0x234C, 0x234D, 0x234E, 0x234F, + 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, + 0x2358, 0x2359, 0x235A, 0x214E, 0x2140, 0x214F, 0x2130, 0x2132, +}; +static const unsigned short utf8_to_euc_EFBC_x0213[] = { + 0, 0x212A, 0x2230, 0x2174, 0x2170, 0x2173, 0x2175, 0x222F, + 0x214A, 0x214B, 0x2176, 0x215C, 0x2124, 0x2231, 0x2125, 0x213F, + 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, + 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, + 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, + 0x2348, 0x2349, 0x234A, 0x234B, 0x234C, 0x234D, 0x234E, 0x234F, + 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, + 0x2358, 0x2359, 0x235A, 0x214E, 0x2140, 0x214F, 0x2130, 0x2132, +}; +static const unsigned short utf8_to_euc_EFBD[] = { + 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, 0xA237, 0, + 0, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, + 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, + 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, + 0x0E38, 0x0E39, 0x0E3A, 0x0E3B, 0x0E3C, 0x0E3D, 0x0E3E, 0x0E3F, +}; +static const unsigned short utf8_to_euc_EFBD_ms[] = { + 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, 0x2141, 0, + 0, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, + 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, + 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, + 0x0E38, 0x0E39, 0x0E3A, 0x0E3B, 0x0E3C, 0x0E3D, 0x0E3E, 0x0E3F, +}; +static const unsigned short utf8_to_euc_EFBD_x0213[] = { + 0x212E, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, + 0x2368, 0x2369, 0x236A, 0x236B, 0x236C, 0x236D, 0x236E, 0x236F, + 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, + 0x2378, 0x2379, 0x237A, 0x2150, 0x2143, 0x2151, 0x2232, 0x2256, + 0x2257, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, + 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, + 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, + 0x0E38, 0x0E39, 0x0E3A, 0x0E3B, 0x0E3C, 0x0E3D, 0x0E3E, 0x0E3F, +}; +static const unsigned short utf8_to_euc_EFBE[] = { + 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, + 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, + 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, + 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0E5C, 0x0E5D, 0x0E5E, 0x0E5F, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short utf8_to_euc_EFBF[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0x2171, 0x2172, 0x224C, 0x2131, 0xA243, 0x216F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E1_x0213[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_E1B8_x0213, 0, 0, 0, + 0, utf8_to_euc_E1BD_x0213, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E2[] = { + utf8_to_euc_E280, 0, 0, 0, + utf8_to_euc_E284, utf8_to_euc_E285, utf8_to_euc_E286, utf8_to_euc_E287, + utf8_to_euc_E288, utf8_to_euc_E289, utf8_to_euc_E28A, 0, + utf8_to_euc_E28C, 0, 0, 0, + 0, utf8_to_euc_E291, 0, 0, + utf8_to_euc_E294, utf8_to_euc_E295, utf8_to_euc_E296, utf8_to_euc_E297, + utf8_to_euc_E298, utf8_to_euc_E299, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E2_ms[] = { + utf8_to_euc_E280_ms, 0, 0, 0, + utf8_to_euc_E284, utf8_to_euc_E285, utf8_to_euc_E286, utf8_to_euc_E287, + utf8_to_euc_E288, utf8_to_euc_E289, utf8_to_euc_E28A, 0, + utf8_to_euc_E28C, 0, 0, 0, + 0, utf8_to_euc_E291, 0, 0, + utf8_to_euc_E294, utf8_to_euc_E295, utf8_to_euc_E296, utf8_to_euc_E297, + utf8_to_euc_E298, utf8_to_euc_E299, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E2_932[] = { + utf8_to_euc_E280_932, 0, 0, 0, + utf8_to_euc_E284, utf8_to_euc_E285, utf8_to_euc_E286, utf8_to_euc_E287, + utf8_to_euc_E288_932, utf8_to_euc_E289, utf8_to_euc_E28A, 0, + utf8_to_euc_E28C, 0, 0, 0, + 0, utf8_to_euc_E291, 0, 0, + utf8_to_euc_E294, utf8_to_euc_E295, utf8_to_euc_E296, utf8_to_euc_E297, + utf8_to_euc_E298, utf8_to_euc_E299, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E2_mac[] = { + utf8_to_euc_E280_932, 0, 0, 0, + utf8_to_euc_E284_mac, utf8_to_euc_E285_mac, utf8_to_euc_E286, utf8_to_euc_E287, + utf8_to_euc_E288_mac, utf8_to_euc_E289, utf8_to_euc_E28A_mac, 0, + utf8_to_euc_E28C, 0, 0, 0, + 0, utf8_to_euc_E291_mac, 0, 0, + utf8_to_euc_E294, utf8_to_euc_E295, utf8_to_euc_E296, utf8_to_euc_E297, + utf8_to_euc_E298, utf8_to_euc_E299, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E2_x0213[] = { + utf8_to_euc_E280_x0213, utf8_to_euc_E281_x0213, utf8_to_euc_E282_x0213, 0, + utf8_to_euc_E284_x0213, utf8_to_euc_E285_x0213, utf8_to_euc_E286_x0213, utf8_to_euc_E287_x0213, + utf8_to_euc_E288_x0213, utf8_to_euc_E289_x0213, utf8_to_euc_E28A_x0213, utf8_to_euc_E28B_x0213, + utf8_to_euc_E28C_x0213, 0, utf8_to_euc_E28E_x0213, utf8_to_euc_E28F_x0213, + utf8_to_euc_E290_x0213, utf8_to_euc_E291, 0, utf8_to_euc_E293_x0213, + utf8_to_euc_E294, utf8_to_euc_E295, utf8_to_euc_E296_x0213, utf8_to_euc_E297_x0213, + utf8_to_euc_E298_x0213, utf8_to_euc_E299_x0213, 0, 0, + utf8_to_euc_E29C_x0213, utf8_to_euc_E29D_x0213, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_E2A4_x0213, 0, utf8_to_euc_E2A6_x0213, utf8_to_euc_E2A7_x0213, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E3[] = { + utf8_to_euc_E380, utf8_to_euc_E381, utf8_to_euc_E382, utf8_to_euc_E383, + 0, 0, 0, 0, + utf8_to_euc_E388, 0, utf8_to_euc_E38A, 0, + utf8_to_euc_E38C, utf8_to_euc_E38D, utf8_to_euc_E38E, utf8_to_euc_E38F, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E3_932[] = { + utf8_to_euc_E380_932, utf8_to_euc_E381, utf8_to_euc_E382_932, utf8_to_euc_E383, + 0, 0, 0, 0, + utf8_to_euc_E388, 0, utf8_to_euc_E38A, 0, + utf8_to_euc_E38C, utf8_to_euc_E38D, utf8_to_euc_E38E, utf8_to_euc_E38F, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E3_mac[] = { + utf8_to_euc_E380_932, utf8_to_euc_E381, utf8_to_euc_E382_932, utf8_to_euc_E383, + 0, 0, 0, 0, + utf8_to_euc_E388_mac, 0, utf8_to_euc_E38A_mac, 0, + utf8_to_euc_E38C_mac, utf8_to_euc_E38D_mac, utf8_to_euc_E38E_mac, utf8_to_euc_E38F_mac, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +static const unsigned short *const utf8_to_euc_E3_x0213[] = { + utf8_to_euc_E380_x0213, utf8_to_euc_E381, utf8_to_euc_E382_x0213, utf8_to_euc_E383_x0213, + 0, 0, 0, utf8_to_euc_E387_x0213, + utf8_to_euc_E388, utf8_to_euc_E389_x0213, utf8_to_euc_E38A_x0213, utf8_to_euc_E38B_x0213, + utf8_to_euc_E38C, utf8_to_euc_E38D, utf8_to_euc_E38E, utf8_to_euc_E38F_x0213, + utf8_to_euc_E390_x0213, utf8_to_euc_E391_x0213, utf8_to_euc_E392_x0213, utf8_to_euc_E393_x0213, + utf8_to_euc_E394_x0213, utf8_to_euc_E395_x0213, utf8_to_euc_E396_x0213, utf8_to_euc_E397_x0213, + utf8_to_euc_E398_x0213, utf8_to_euc_E399_x0213, utf8_to_euc_E39A_x0213, utf8_to_euc_E39B_x0213, + 0, utf8_to_euc_E39D_x0213, utf8_to_euc_E39E_x0213, utf8_to_euc_E39F_x0213, + utf8_to_euc_E3A0_x0213, utf8_to_euc_E3A1_x0213, 0, utf8_to_euc_E3A3_x0213, + utf8_to_euc_E3A4_x0213, utf8_to_euc_E3A5_x0213, 0, 0, + 0, utf8_to_euc_E3A9_x0213, 0, utf8_to_euc_E3AB_x0213, + utf8_to_euc_E3AC_x0213, utf8_to_euc_E3AD_x0213, utf8_to_euc_E3AE_x0213, utf8_to_euc_E3AF_x0213, + utf8_to_euc_E3B0_x0213, 0, 0, utf8_to_euc_E3B3_x0213, + utf8_to_euc_E3B4_x0213, utf8_to_euc_E3B5_x0213, utf8_to_euc_E3B6_x0213, utf8_to_euc_E3B7_x0213, + utf8_to_euc_E3B8_x0213, utf8_to_euc_E3B9_x0213, utf8_to_euc_E3BA_x0213, 0, + 0, utf8_to_euc_E3BD_x0213, utf8_to_euc_E3BE_x0213, utf8_to_euc_E3BF_x0213, +}; +static const unsigned short *const utf8_to_euc_E4[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_E4B8, utf8_to_euc_E4B9, utf8_to_euc_E4BA, utf8_to_euc_E4BB, + utf8_to_euc_E4BC, utf8_to_euc_E4BD, utf8_to_euc_E4BE, utf8_to_euc_E4BF, +}; +static const unsigned short *const utf8_to_euc_E4_x0213[] = { + utf8_to_euc_E480_x0213, utf8_to_euc_E481_x0213, utf8_to_euc_E482_x0213, 0, + utf8_to_euc_E484_x0213, utf8_to_euc_E485_x0213, utf8_to_euc_E486_x0213, utf8_to_euc_E487_x0213, + utf8_to_euc_E488_x0213, utf8_to_euc_E489_x0213, 0, utf8_to_euc_E48B_x0213, + utf8_to_euc_E48C_x0213, utf8_to_euc_E48D_x0213, 0, utf8_to_euc_E48F_x0213, + utf8_to_euc_E490_x0213, utf8_to_euc_E491_x0213, utf8_to_euc_E492_x0213, utf8_to_euc_E493_x0213, + utf8_to_euc_E494_x0213, utf8_to_euc_E495_x0213, utf8_to_euc_E496_x0213, utf8_to_euc_E497_x0213, + utf8_to_euc_E498_x0213, utf8_to_euc_E499_x0213, utf8_to_euc_E49A_x0213, 0, + utf8_to_euc_E49C_x0213, utf8_to_euc_E49D_x0213, 0, utf8_to_euc_E49F_x0213, + utf8_to_euc_E4A0_x0213, utf8_to_euc_E4A1_x0213, utf8_to_euc_E4A2_x0213, 0, + 0, 0, utf8_to_euc_E4A6_x0213, utf8_to_euc_E4A7_x0213, + utf8_to_euc_E4A8_x0213, 0, utf8_to_euc_E4AA_x0213, 0, + utf8_to_euc_E4AC_x0213, 0, 0, utf8_to_euc_E4AF_x0213, + utf8_to_euc_E4B0_x0213, 0, 0, utf8_to_euc_E4B3_x0213, + utf8_to_euc_E4B4_x0213, utf8_to_euc_E4B5_x0213, 0, 0, + utf8_to_euc_E4B8_x0213, utf8_to_euc_E4B9_x0213, utf8_to_euc_E4BA_x0213, utf8_to_euc_E4BB_x0213, + utf8_to_euc_E4BC_x0213, utf8_to_euc_E4BD_x0213, utf8_to_euc_E4BE_x0213, utf8_to_euc_E4BF_x0213, +}; +static const unsigned short *const utf8_to_euc_E5[] = { + utf8_to_euc_E580, utf8_to_euc_E581, utf8_to_euc_E582, utf8_to_euc_E583, + utf8_to_euc_E584, utf8_to_euc_E585, utf8_to_euc_E586, utf8_to_euc_E587, + utf8_to_euc_E588, utf8_to_euc_E589, utf8_to_euc_E58A, utf8_to_euc_E58B, + utf8_to_euc_E58C, utf8_to_euc_E58D, utf8_to_euc_E58E, utf8_to_euc_E58F, + utf8_to_euc_E590, utf8_to_euc_E591, utf8_to_euc_E592, utf8_to_euc_E593, + utf8_to_euc_E594, utf8_to_euc_E595, utf8_to_euc_E596, utf8_to_euc_E597, + utf8_to_euc_E598, utf8_to_euc_E599, utf8_to_euc_E59A, utf8_to_euc_E59B, + utf8_to_euc_E59C, utf8_to_euc_E59D, utf8_to_euc_E59E, utf8_to_euc_E59F, + utf8_to_euc_E5A0, utf8_to_euc_E5A1, utf8_to_euc_E5A2, utf8_to_euc_E5A3, + utf8_to_euc_E5A4, utf8_to_euc_E5A5, utf8_to_euc_E5A6, utf8_to_euc_E5A7, + utf8_to_euc_E5A8, utf8_to_euc_E5A9, utf8_to_euc_E5AA, utf8_to_euc_E5AB, + utf8_to_euc_E5AC, utf8_to_euc_E5AD, utf8_to_euc_E5AE, utf8_to_euc_E5AF, + utf8_to_euc_E5B0, utf8_to_euc_E5B1, utf8_to_euc_E5B2, utf8_to_euc_E5B3, + utf8_to_euc_E5B4, utf8_to_euc_E5B5, utf8_to_euc_E5B6, utf8_to_euc_E5B7, + utf8_to_euc_E5B8, utf8_to_euc_E5B9, utf8_to_euc_E5BA, utf8_to_euc_E5BB, + utf8_to_euc_E5BC, utf8_to_euc_E5BD, utf8_to_euc_E5BE, utf8_to_euc_E5BF, +}; +static const unsigned short *const utf8_to_euc_E5_x0213[] = { + utf8_to_euc_E580_x0213, utf8_to_euc_E581_x0213, utf8_to_euc_E582_x0213, utf8_to_euc_E583_x0213, + utf8_to_euc_E584_x0213, utf8_to_euc_E585_x0213, utf8_to_euc_E586_x0213, utf8_to_euc_E587_x0213, + utf8_to_euc_E588_x0213, utf8_to_euc_E589_x0213, utf8_to_euc_E58A_x0213, utf8_to_euc_E58B_x0213, + utf8_to_euc_E58C_x0213, utf8_to_euc_E58D_x0213, utf8_to_euc_E58E_x0213, utf8_to_euc_E58F_x0213, + utf8_to_euc_E590_x0213, utf8_to_euc_E591_x0213, utf8_to_euc_E592_x0213, utf8_to_euc_E593_x0213, + utf8_to_euc_E594_x0213, utf8_to_euc_E595_x0213, utf8_to_euc_E596_x0213, utf8_to_euc_E597_x0213, + utf8_to_euc_E598_x0213, utf8_to_euc_E599_x0213, utf8_to_euc_E59A_x0213, utf8_to_euc_E59B_x0213, + utf8_to_euc_E59C_x0213, utf8_to_euc_E59D_x0213, utf8_to_euc_E59E_x0213, utf8_to_euc_E59F_x0213, + utf8_to_euc_E5A0_x0213, utf8_to_euc_E5A1_x0213, utf8_to_euc_E5A2_x0213, utf8_to_euc_E5A3_x0213, + utf8_to_euc_E5A4_x0213, utf8_to_euc_E5A5_x0213, utf8_to_euc_E5A6_x0213, utf8_to_euc_E5A7_x0213, + utf8_to_euc_E5A8_x0213, utf8_to_euc_E5A9_x0213, utf8_to_euc_E5AA_x0213, utf8_to_euc_E5AB_x0213, + utf8_to_euc_E5AC_x0213, utf8_to_euc_E5AD_x0213, utf8_to_euc_E5AE_x0213, utf8_to_euc_E5AF_x0213, + utf8_to_euc_E5B0_x0213, utf8_to_euc_E5B1_x0213, utf8_to_euc_E5B2_x0213, utf8_to_euc_E5B3_x0213, + utf8_to_euc_E5B4_x0213, utf8_to_euc_E5B5_x0213, utf8_to_euc_E5B6_x0213, utf8_to_euc_E5B7_x0213, + utf8_to_euc_E5B8_x0213, utf8_to_euc_E5B9_x0213, utf8_to_euc_E5BA_x0213, utf8_to_euc_E5BB_x0213, + utf8_to_euc_E5BC_x0213, utf8_to_euc_E5BD_x0213, utf8_to_euc_E5BE_x0213, utf8_to_euc_E5BF_x0213, +}; +static const unsigned short *const utf8_to_euc_E6[] = { + utf8_to_euc_E680, utf8_to_euc_E681, utf8_to_euc_E682, utf8_to_euc_E683, + utf8_to_euc_E684, utf8_to_euc_E685, utf8_to_euc_E686, utf8_to_euc_E687, + utf8_to_euc_E688, utf8_to_euc_E689, utf8_to_euc_E68A, utf8_to_euc_E68B, + utf8_to_euc_E68C, utf8_to_euc_E68D, utf8_to_euc_E68E, utf8_to_euc_E68F, + utf8_to_euc_E690, utf8_to_euc_E691, utf8_to_euc_E692, utf8_to_euc_E693, + utf8_to_euc_E694, utf8_to_euc_E695, utf8_to_euc_E696, utf8_to_euc_E697, + utf8_to_euc_E698, utf8_to_euc_E699, utf8_to_euc_E69A, utf8_to_euc_E69B, + utf8_to_euc_E69C, utf8_to_euc_E69D, utf8_to_euc_E69E, utf8_to_euc_E69F, + utf8_to_euc_E6A0, utf8_to_euc_E6A1, utf8_to_euc_E6A2, utf8_to_euc_E6A3, + utf8_to_euc_E6A4, utf8_to_euc_E6A5, utf8_to_euc_E6A6, utf8_to_euc_E6A7, + utf8_to_euc_E6A8, utf8_to_euc_E6A9, utf8_to_euc_E6AA, utf8_to_euc_E6AB, + utf8_to_euc_E6AC, utf8_to_euc_E6AD, utf8_to_euc_E6AE, utf8_to_euc_E6AF, + utf8_to_euc_E6B0, utf8_to_euc_E6B1, utf8_to_euc_E6B2, utf8_to_euc_E6B3, + utf8_to_euc_E6B4, utf8_to_euc_E6B5, utf8_to_euc_E6B6, utf8_to_euc_E6B7, + utf8_to_euc_E6B8, utf8_to_euc_E6B9, utf8_to_euc_E6BA, utf8_to_euc_E6BB, + utf8_to_euc_E6BC, utf8_to_euc_E6BD, utf8_to_euc_E6BE, utf8_to_euc_E6BF, +}; +static const unsigned short *const utf8_to_euc_E6_x0213[] = { + utf8_to_euc_E680_x0213, utf8_to_euc_E681_x0213, utf8_to_euc_E682_x0213, utf8_to_euc_E683_x0213, + utf8_to_euc_E684_x0213, utf8_to_euc_E685_x0213, utf8_to_euc_E686_x0213, utf8_to_euc_E687_x0213, + utf8_to_euc_E688_x0213, utf8_to_euc_E689_x0213, utf8_to_euc_E68A_x0213, utf8_to_euc_E68B_x0213, + utf8_to_euc_E68C_x0213, utf8_to_euc_E68D_x0213, utf8_to_euc_E68E_x0213, utf8_to_euc_E68F_x0213, + utf8_to_euc_E690_x0213, utf8_to_euc_E691_x0213, utf8_to_euc_E692_x0213, utf8_to_euc_E693_x0213, + utf8_to_euc_E694_x0213, utf8_to_euc_E695_x0213, utf8_to_euc_E696_x0213, utf8_to_euc_E697_x0213, + utf8_to_euc_E698_x0213, utf8_to_euc_E699_x0213, utf8_to_euc_E69A_x0213, utf8_to_euc_E69B_x0213, + utf8_to_euc_E69C_x0213, utf8_to_euc_E69D_x0213, utf8_to_euc_E69E_x0213, utf8_to_euc_E69F_x0213, + utf8_to_euc_E6A0_x0213, utf8_to_euc_E6A1_x0213, utf8_to_euc_E6A2_x0213, utf8_to_euc_E6A3_x0213, + utf8_to_euc_E6A4_x0213, utf8_to_euc_E6A5_x0213, utf8_to_euc_E6A6_x0213, utf8_to_euc_E6A7_x0213, + utf8_to_euc_E6A8_x0213, utf8_to_euc_E6A9_x0213, utf8_to_euc_E6AA_x0213, utf8_to_euc_E6AB_x0213, + utf8_to_euc_E6AC_x0213, utf8_to_euc_E6AD_x0213, utf8_to_euc_E6AE_x0213, utf8_to_euc_E6AF_x0213, + utf8_to_euc_E6B0_x0213, utf8_to_euc_E6B1_x0213, utf8_to_euc_E6B2_x0213, utf8_to_euc_E6B3_x0213, + utf8_to_euc_E6B4_x0213, utf8_to_euc_E6B5_x0213, utf8_to_euc_E6B6_x0213, utf8_to_euc_E6B7_x0213, + utf8_to_euc_E6B8_x0213, utf8_to_euc_E6B9_x0213, utf8_to_euc_E6BA_x0213, utf8_to_euc_E6BB_x0213, + utf8_to_euc_E6BC_x0213, utf8_to_euc_E6BD_x0213, utf8_to_euc_E6BE_x0213, utf8_to_euc_E6BF_x0213, +}; +static const unsigned short *const utf8_to_euc_E7[] = { + utf8_to_euc_E780, utf8_to_euc_E781, utf8_to_euc_E782, utf8_to_euc_E783, + utf8_to_euc_E784, utf8_to_euc_E785, utf8_to_euc_E786, utf8_to_euc_E787, + utf8_to_euc_E788, utf8_to_euc_E789, utf8_to_euc_E78A, utf8_to_euc_E78B, + utf8_to_euc_E78C, utf8_to_euc_E78D, utf8_to_euc_E78E, utf8_to_euc_E78F, + utf8_to_euc_E790, utf8_to_euc_E791, utf8_to_euc_E792, utf8_to_euc_E793, + utf8_to_euc_E794, utf8_to_euc_E795, utf8_to_euc_E796, utf8_to_euc_E797, + utf8_to_euc_E798, utf8_to_euc_E799, utf8_to_euc_E79A, utf8_to_euc_E79B, + utf8_to_euc_E79C, utf8_to_euc_E79D, utf8_to_euc_E79E, utf8_to_euc_E79F, + utf8_to_euc_E7A0, utf8_to_euc_E7A1, utf8_to_euc_E7A2, utf8_to_euc_E7A3, + utf8_to_euc_E7A4, utf8_to_euc_E7A5, utf8_to_euc_E7A6, utf8_to_euc_E7A7, + utf8_to_euc_E7A8, utf8_to_euc_E7A9, utf8_to_euc_E7AA, utf8_to_euc_E7AB, + utf8_to_euc_E7AC, utf8_to_euc_E7AD, utf8_to_euc_E7AE, utf8_to_euc_E7AF, + utf8_to_euc_E7B0, utf8_to_euc_E7B1, utf8_to_euc_E7B2, utf8_to_euc_E7B3, + utf8_to_euc_E7B4, utf8_to_euc_E7B5, utf8_to_euc_E7B6, utf8_to_euc_E7B7, + utf8_to_euc_E7B8, utf8_to_euc_E7B9, utf8_to_euc_E7BA, 0, + utf8_to_euc_E7BC, utf8_to_euc_E7BD, utf8_to_euc_E7BE, utf8_to_euc_E7BF, +}; +static const unsigned short *const utf8_to_euc_E7_x0213[] = { + utf8_to_euc_E780_x0213, utf8_to_euc_E781_x0213, utf8_to_euc_E782_x0213, utf8_to_euc_E783_x0213, + utf8_to_euc_E784_x0213, utf8_to_euc_E785_x0213, utf8_to_euc_E786_x0213, utf8_to_euc_E787_x0213, + utf8_to_euc_E788_x0213, utf8_to_euc_E789_x0213, utf8_to_euc_E78A_x0213, utf8_to_euc_E78B_x0213, + utf8_to_euc_E78C_x0213, utf8_to_euc_E78D_x0213, utf8_to_euc_E78E_x0213, utf8_to_euc_E78F_x0213, + utf8_to_euc_E790_x0213, utf8_to_euc_E791_x0213, utf8_to_euc_E792_x0213, utf8_to_euc_E793_x0213, + utf8_to_euc_E794_x0213, utf8_to_euc_E795_x0213, utf8_to_euc_E796_x0213, utf8_to_euc_E797_x0213, + utf8_to_euc_E798_x0213, utf8_to_euc_E799_x0213, utf8_to_euc_E79A_x0213, utf8_to_euc_E79B_x0213, + utf8_to_euc_E79C_x0213, utf8_to_euc_E79D_x0213, utf8_to_euc_E79E_x0213, utf8_to_euc_E79F_x0213, + utf8_to_euc_E7A0_x0213, utf8_to_euc_E7A1_x0213, utf8_to_euc_E7A2_x0213, utf8_to_euc_E7A3_x0213, + utf8_to_euc_E7A4_x0213, utf8_to_euc_E7A5_x0213, utf8_to_euc_E7A6_x0213, utf8_to_euc_E7A7_x0213, + utf8_to_euc_E7A8_x0213, utf8_to_euc_E7A9_x0213, utf8_to_euc_E7AA_x0213, utf8_to_euc_E7AB_x0213, + utf8_to_euc_E7AC_x0213, utf8_to_euc_E7AD_x0213, utf8_to_euc_E7AE_x0213, utf8_to_euc_E7AF_x0213, + utf8_to_euc_E7B0_x0213, utf8_to_euc_E7B1_x0213, utf8_to_euc_E7B2_x0213, utf8_to_euc_E7B3_x0213, + utf8_to_euc_E7B4_x0213, utf8_to_euc_E7B5_x0213, utf8_to_euc_E7B6_x0213, utf8_to_euc_E7B7_x0213, + utf8_to_euc_E7B8_x0213, utf8_to_euc_E7B9_x0213, utf8_to_euc_E7BA_x0213, 0, + utf8_to_euc_E7BC_x0213, utf8_to_euc_E7BD_x0213, utf8_to_euc_E7BE_x0213, utf8_to_euc_E7BF_x0213, +}; +static const unsigned short *const utf8_to_euc_E8[] = { + utf8_to_euc_E880, utf8_to_euc_E881, utf8_to_euc_E882, utf8_to_euc_E883, + utf8_to_euc_E884, utf8_to_euc_E885, utf8_to_euc_E886, utf8_to_euc_E887, + utf8_to_euc_E888, utf8_to_euc_E889, utf8_to_euc_E88A, utf8_to_euc_E88B, + utf8_to_euc_E88C, utf8_to_euc_E88D, utf8_to_euc_E88E, utf8_to_euc_E88F, + utf8_to_euc_E890, utf8_to_euc_E891, utf8_to_euc_E892, utf8_to_euc_E893, + utf8_to_euc_E894, utf8_to_euc_E895, utf8_to_euc_E896, utf8_to_euc_E897, + utf8_to_euc_E898, utf8_to_euc_E899, utf8_to_euc_E89A, utf8_to_euc_E89B, + utf8_to_euc_E89C, utf8_to_euc_E89D, utf8_to_euc_E89E, utf8_to_euc_E89F, + utf8_to_euc_E8A0, utf8_to_euc_E8A1, utf8_to_euc_E8A2, utf8_to_euc_E8A3, + utf8_to_euc_E8A4, utf8_to_euc_E8A5, utf8_to_euc_E8A6, utf8_to_euc_E8A7, + utf8_to_euc_E8A8, utf8_to_euc_E8A9, utf8_to_euc_E8AA, utf8_to_euc_E8AB, + utf8_to_euc_E8AC, utf8_to_euc_E8AD, utf8_to_euc_E8AE, 0, + utf8_to_euc_E8B0, utf8_to_euc_E8B1, utf8_to_euc_E8B2, utf8_to_euc_E8B3, + utf8_to_euc_E8B4, utf8_to_euc_E8B5, utf8_to_euc_E8B6, utf8_to_euc_E8B7, + utf8_to_euc_E8B8, utf8_to_euc_E8B9, utf8_to_euc_E8BA, utf8_to_euc_E8BB, + utf8_to_euc_E8BC, utf8_to_euc_E8BD, utf8_to_euc_E8BE, utf8_to_euc_E8BF, +}; +static const unsigned short *const utf8_to_euc_E8_x0213[] = { + utf8_to_euc_E880_x0213, utf8_to_euc_E881_x0213, utf8_to_euc_E882_x0213, utf8_to_euc_E883_x0213, + utf8_to_euc_E884_x0213, utf8_to_euc_E885_x0213, utf8_to_euc_E886_x0213, utf8_to_euc_E887_x0213, + utf8_to_euc_E888_x0213, utf8_to_euc_E889_x0213, utf8_to_euc_E88A_x0213, utf8_to_euc_E88B_x0213, + utf8_to_euc_E88C_x0213, utf8_to_euc_E88D_x0213, utf8_to_euc_E88E_x0213, utf8_to_euc_E88F_x0213, + utf8_to_euc_E890_x0213, utf8_to_euc_E891_x0213, utf8_to_euc_E892_x0213, utf8_to_euc_E893_x0213, + utf8_to_euc_E894_x0213, utf8_to_euc_E895_x0213, utf8_to_euc_E896_x0213, utf8_to_euc_E897_x0213, + utf8_to_euc_E898_x0213, utf8_to_euc_E899_x0213, utf8_to_euc_E89A_x0213, utf8_to_euc_E89B_x0213, + utf8_to_euc_E89C_x0213, utf8_to_euc_E89D_x0213, utf8_to_euc_E89E_x0213, utf8_to_euc_E89F_x0213, + utf8_to_euc_E8A0_x0213, utf8_to_euc_E8A1_x0213, utf8_to_euc_E8A2_x0213, utf8_to_euc_E8A3_x0213, + utf8_to_euc_E8A4_x0213, utf8_to_euc_E8A5_x0213, utf8_to_euc_E8A6_x0213, utf8_to_euc_E8A7_x0213, + utf8_to_euc_E8A8_x0213, utf8_to_euc_E8A9_x0213, utf8_to_euc_E8AA_x0213, utf8_to_euc_E8AB_x0213, + utf8_to_euc_E8AC_x0213, utf8_to_euc_E8AD_x0213, utf8_to_euc_E8AE_x0213, 0, + utf8_to_euc_E8B0_x0213, utf8_to_euc_E8B1_x0213, utf8_to_euc_E8B2_x0213, utf8_to_euc_E8B3_x0213, + utf8_to_euc_E8B4_x0213, utf8_to_euc_E8B5_x0213, utf8_to_euc_E8B6_x0213, utf8_to_euc_E8B7_x0213, + utf8_to_euc_E8B8_x0213, utf8_to_euc_E8B9_x0213, utf8_to_euc_E8BA_x0213, utf8_to_euc_E8BB_x0213, + utf8_to_euc_E8BC_x0213, utf8_to_euc_E8BD_x0213, utf8_to_euc_E8BE_x0213, utf8_to_euc_E8BF_x0213, +}; +static const unsigned short *const utf8_to_euc_E9[] = { + utf8_to_euc_E980, utf8_to_euc_E981, utf8_to_euc_E982, utf8_to_euc_E983, + utf8_to_euc_E984, utf8_to_euc_E985, utf8_to_euc_E986, utf8_to_euc_E987, + utf8_to_euc_E988, utf8_to_euc_E989, utf8_to_euc_E98A, utf8_to_euc_E98B, + utf8_to_euc_E98C, utf8_to_euc_E98D, utf8_to_euc_E98E, utf8_to_euc_E98F, + utf8_to_euc_E990, utf8_to_euc_E991, utf8_to_euc_E992, 0, + 0, utf8_to_euc_E995, utf8_to_euc_E996, utf8_to_euc_E997, + utf8_to_euc_E998, utf8_to_euc_E999, utf8_to_euc_E99A, utf8_to_euc_E99B, + utf8_to_euc_E99C, utf8_to_euc_E99D, utf8_to_euc_E99E, utf8_to_euc_E99F, + utf8_to_euc_E9A0, utf8_to_euc_E9A1, utf8_to_euc_E9A2, utf8_to_euc_E9A3, + utf8_to_euc_E9A4, utf8_to_euc_E9A5, utf8_to_euc_E9A6, utf8_to_euc_E9A7, + utf8_to_euc_E9A8, utf8_to_euc_E9A9, utf8_to_euc_E9AA, utf8_to_euc_E9AB, + utf8_to_euc_E9AC, utf8_to_euc_E9AD, utf8_to_euc_E9AE, utf8_to_euc_E9AF, + utf8_to_euc_E9B0, utf8_to_euc_E9B1, 0, utf8_to_euc_E9B3, + utf8_to_euc_E9B4, utf8_to_euc_E9B5, utf8_to_euc_E9B6, utf8_to_euc_E9B7, + utf8_to_euc_E9B8, utf8_to_euc_E9B9, utf8_to_euc_E9BA, utf8_to_euc_E9BB, + utf8_to_euc_E9BC, utf8_to_euc_E9BD, utf8_to_euc_E9BE, 0, +}; +static const unsigned short *const utf8_to_euc_E9_x0213[] = { + utf8_to_euc_E980_x0213, utf8_to_euc_E981_x0213, utf8_to_euc_E982_x0213, utf8_to_euc_E983_x0213, + utf8_to_euc_E984_x0213, utf8_to_euc_E985_x0213, utf8_to_euc_E986_x0213, utf8_to_euc_E987_x0213, + utf8_to_euc_E988_x0213, utf8_to_euc_E989_x0213, utf8_to_euc_E98A_x0213, utf8_to_euc_E98B_x0213, + utf8_to_euc_E98C_x0213, utf8_to_euc_E98D_x0213, utf8_to_euc_E98E_x0213, utf8_to_euc_E98F_x0213, + utf8_to_euc_E990_x0213, utf8_to_euc_E991_x0213, utf8_to_euc_E992, 0, + 0, utf8_to_euc_E995_x0213, utf8_to_euc_E996_x0213, utf8_to_euc_E997_x0213, + utf8_to_euc_E998_x0213, utf8_to_euc_E999_x0213, utf8_to_euc_E99A_x0213, utf8_to_euc_E99B_x0213, + utf8_to_euc_E99C_x0213, utf8_to_euc_E99D_x0213, utf8_to_euc_E99E_x0213, utf8_to_euc_E99F_x0213, + utf8_to_euc_E9A0_x0213, utf8_to_euc_E9A1_x0213, utf8_to_euc_E9A2_x0213, utf8_to_euc_E9A3_x0213, + utf8_to_euc_E9A4_x0213, utf8_to_euc_E9A5_x0213, utf8_to_euc_E9A6_x0213, utf8_to_euc_E9A7_x0213, + utf8_to_euc_E9A8_x0213, utf8_to_euc_E9A9_x0213, utf8_to_euc_E9AA_x0213, utf8_to_euc_E9AB_x0213, + utf8_to_euc_E9AC_x0213, utf8_to_euc_E9AD_x0213, utf8_to_euc_E9AE_x0213, utf8_to_euc_E9AF_x0213, + utf8_to_euc_E9B0_x0213, utf8_to_euc_E9B1_x0213, 0, utf8_to_euc_E9B3_x0213, + utf8_to_euc_E9B4_x0213, utf8_to_euc_E9B5_x0213, utf8_to_euc_E9B6_x0213, utf8_to_euc_E9B7_x0213, + utf8_to_euc_E9B8_x0213, utf8_to_euc_E9B9_x0213, utf8_to_euc_E9BA_x0213, utf8_to_euc_E9BB_x0213, + utf8_to_euc_E9BC_x0213, utf8_to_euc_E9BD_x0213, utf8_to_euc_E9BE_x0213, 0, +}; +static const unsigned short *const utf8_to_euc_EF[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_EFA4, 0, 0, utf8_to_euc_EFA7, + utf8_to_euc_EFA8, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_EFBC, utf8_to_euc_EFBD, utf8_to_euc_EFBE, utf8_to_euc_EFBF, +}; +static const unsigned short *const utf8_to_euc_EF_ms[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_EFA4, 0, 0, utf8_to_euc_EFA7, + utf8_to_euc_EFA8, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_EFBC, utf8_to_euc_EFBD_ms, utf8_to_euc_EFBE, utf8_to_euc_EFBF, +}; +static const unsigned short *const utf8_to_euc_EF_x0213[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + utf8_to_euc_EFA4_x0213, utf8_to_euc_EFA5_x0213, 0, utf8_to_euc_EFA7_x0213, + utf8_to_euc_EFA8_x0213, utf8_to_euc_EFA9_x0213, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, utf8_to_euc_EFB9_x0213, 0, 0, + utf8_to_euc_EFBC_x0213, utf8_to_euc_EFBD_x0213, utf8_to_euc_EFBE, utf8_to_euc_EFBF, +}; +const unsigned short *const utf8_to_euc_2bytes[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, utf8_to_euc_C2, utf8_to_euc_C3, + utf8_to_euc_C4, utf8_to_euc_C5, 0, utf8_to_euc_C7, + 0, 0, 0, utf8_to_euc_CB, + 0, 0, utf8_to_euc_CE, utf8_to_euc_CF, + utf8_to_euc_D0, utf8_to_euc_D1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +const unsigned short *const utf8_to_euc_2bytes_ms[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, utf8_to_euc_C2_ms, utf8_to_euc_C3, + utf8_to_euc_C4, utf8_to_euc_C5, 0, utf8_to_euc_C7, + 0, 0, 0, utf8_to_euc_CB, + 0, 0, utf8_to_euc_CE, utf8_to_euc_CF, + utf8_to_euc_D0, utf8_to_euc_D1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +const unsigned short *const utf8_to_euc_2bytes_932[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, utf8_to_euc_C2_932, utf8_to_euc_C3_932, + utf8_to_euc_C4, utf8_to_euc_C5, 0, utf8_to_euc_C7, + 0, 0, 0, utf8_to_euc_CB, + 0, 0, utf8_to_euc_CE, utf8_to_euc_CF, + utf8_to_euc_D0, utf8_to_euc_D1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +const unsigned short *const utf8_to_euc_2bytes_mac[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, utf8_to_euc_C2_mac, utf8_to_euc_C3, + utf8_to_euc_C4, utf8_to_euc_C5, 0, utf8_to_euc_C7, + 0, 0, 0, utf8_to_euc_CB, + 0, 0, utf8_to_euc_CE, utf8_to_euc_CF, + utf8_to_euc_D0, utf8_to_euc_D1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +const unsigned short *const utf8_to_euc_2bytes_x0213[] = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, utf8_to_euc_C2_x0213, utf8_to_euc_C3_x0213, + utf8_to_euc_C4_x0213, utf8_to_euc_C5_x0213, utf8_to_euc_C6_x0213, utf8_to_euc_C7_x0213, + 0, utf8_to_euc_C9_x0213, utf8_to_euc_CA_x0213, utf8_to_euc_CB_x0213, + utf8_to_euc_CC_x0213, utf8_to_euc_CD_x0213, utf8_to_euc_CE, utf8_to_euc_CF_x0213, + utf8_to_euc_D0, utf8_to_euc_D1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, +}; +const unsigned short *const *const utf8_to_euc_3bytes[] = { + 0, 0, utf8_to_euc_E2, utf8_to_euc_E3, + utf8_to_euc_E4, utf8_to_euc_E5, utf8_to_euc_E6, utf8_to_euc_E7, + utf8_to_euc_E8, utf8_to_euc_E9, 0, 0, + 0, 0, 0, utf8_to_euc_EF, +}; +const unsigned short *const *const utf8_to_euc_3bytes_ms[] = { + 0, 0, utf8_to_euc_E2_ms, utf8_to_euc_E3, + utf8_to_euc_E4, utf8_to_euc_E5, utf8_to_euc_E6, utf8_to_euc_E7, + utf8_to_euc_E8, utf8_to_euc_E9, 0, 0, + 0, 0, 0, utf8_to_euc_EF_ms, +}; +const unsigned short *const *const utf8_to_euc_3bytes_932[] = { + 0, 0, utf8_to_euc_E2_932, utf8_to_euc_E3_932, + utf8_to_euc_E4, utf8_to_euc_E5, utf8_to_euc_E6, utf8_to_euc_E7, + utf8_to_euc_E8, utf8_to_euc_E9, 0, 0, + 0, 0, 0, utf8_to_euc_EF_ms, +}; +const unsigned short *const *const utf8_to_euc_3bytes_mac[] = { + 0, 0, utf8_to_euc_E2_mac, utf8_to_euc_E3_mac, + utf8_to_euc_E4, utf8_to_euc_E5, utf8_to_euc_E6, utf8_to_euc_E7, + utf8_to_euc_E8, utf8_to_euc_E9, 0, 0, + 0, 0, 0, utf8_to_euc_EF_ms, +}; +const unsigned short *const *const utf8_to_euc_3bytes_x0213[] = { + 0, utf8_to_euc_E1_x0213, utf8_to_euc_E2_x0213, utf8_to_euc_E3_x0213, + utf8_to_euc_E4_x0213, utf8_to_euc_E5_x0213, utf8_to_euc_E6_x0213, utf8_to_euc_E7_x0213, + utf8_to_euc_E8_x0213, utf8_to_euc_E9_x0213, 0, 0, + 0, 0, 0, utf8_to_euc_EF_x0213, +}; + +#ifdef UNICODE_NORMALIZATION + +/* Normalization Table by Apple */ +/* http://developer.apple.com/technotes/tn/tn1150table.html */ + +const struct normalization_pair normalization_table[] = { + {{0xcd,0xbe}, {0x3b}}, + {{0xc3,0x80}, {0x41,0xcc,0x80,0x00}}, + {{0xc3,0x81}, {0x41,0xcc,0x81}}, + {{0xc3,0x82}, {0x41,0xcc,0x82}}, + {{0xe1,0xba,0xa6}, {0x41,0xcc,0x82,0xcc,0x80}}, + {{0xe1,0xba,0xa4}, {0x41,0xcc,0x82,0xcc,0x81}}, + {{0xe1,0xba,0xaa}, {0x41,0xcc,0x82,0xcc,0x83}}, + {{0xe1,0xba,0xa8}, {0x41,0xcc,0x82,0xcc,0x89}}, + {{0xc3,0x83}, {0x41,0xcc,0x83}}, + {{0xc4,0x80}, {0x41,0xcc,0x84}}, + {{0xc4,0x82}, {0x41,0xcc,0x86}}, + {{0xe1,0xba,0xb0}, {0x41,0xcc,0x86,0xcc,0x80}}, + {{0xe1,0xba,0xae}, {0x41,0xcc,0x86,0xcc,0x81}}, + {{0xe1,0xba,0xb4}, {0x41,0xcc,0x86,0xcc,0x83}}, + {{0xe1,0xba,0xb2}, {0x41,0xcc,0x86,0xcc,0x89}}, + {{0xc7,0xa0}, {0x41,0xcc,0x87,0xcc,0x84}}, + {{0xc3,0x84}, {0x41,0xcc,0x88}}, + {{0xc7,0x9e}, {0x41,0xcc,0x88,0xcc,0x84}}, + {{0xe1,0xba,0xa2}, {0x41,0xcc,0x89}}, + {{0xc3,0x85}, {0x41,0xcc,0x8a}}, + {{0xc7,0xba}, {0x41,0xcc,0x8a,0xcc,0x81}}, + {{0xc7,0x8d}, {0x41,0xcc,0x8c}}, + {{0xc8,0x80}, {0x41,0xcc,0x8f}}, + {{0xc8,0x82}, {0x41,0xcc,0x91}}, + {{0xe1,0xba,0xa0}, {0x41,0xcc,0xa3}}, + {{0xe1,0xba,0xac}, {0x41,0xcc,0xa3,0xcc,0x82}}, + {{0xe1,0xba,0xb6}, {0x41,0xcc,0xa3,0xcc,0x86}}, + {{0xe1,0xb8,0x80}, {0x41,0xcc,0xa5}}, + {{0xc4,0x84}, {0x41,0xcc,0xa8}}, + {{0xe1,0xb8,0x82}, {0x42,0xcc,0x87}}, + {{0xe1,0xb8,0x84}, {0x42,0xcc,0xa3}}, + {{0xe1,0xb8,0x86}, {0x42,0xcc,0xb1}}, + {{0xc4,0x86}, {0x43,0xcc,0x81}}, + {{0xc4,0x88}, {0x43,0xcc,0x82}}, + {{0xc4,0x8a}, {0x43,0xcc,0x87}}, + {{0xc4,0x8c}, {0x43,0xcc,0x8c}}, + {{0xc3,0x87}, {0x43,0xcc,0xa7}}, + {{0xe1,0xb8,0x88}, {0x43,0xcc,0xa7,0xcc,0x81}}, + {{0xe1,0xb8,0x8a}, {0x44,0xcc,0x87}}, + {{0xc4,0x8e}, {0x44,0xcc,0x8c}}, + {{0xe1,0xb8,0x8c}, {0x44,0xcc,0xa3}}, + {{0xe1,0xb8,0x90}, {0x44,0xcc,0xa7}}, + {{0xe1,0xb8,0x92}, {0x44,0xcc,0xad}}, + {{0xe1,0xb8,0x8e}, {0x44,0xcc,0xb1}}, + {{0xc3,0x88}, {0x45,0xcc,0x80}}, + {{0xc3,0x89}, {0x45,0xcc,0x81}}, + {{0xc3,0x8a}, {0x45,0xcc,0x82}}, + {{0xe1,0xbb,0x80}, {0x45,0xcc,0x82,0xcc,0x80}}, + {{0xe1,0xba,0xbe}, {0x45,0xcc,0x82,0xcc,0x81}}, + {{0xe1,0xbb,0x84}, {0x45,0xcc,0x82,0xcc,0x83}}, + {{0xe1,0xbb,0x82}, {0x45,0xcc,0x82,0xcc,0x89}}, + {{0xe1,0xba,0xbc}, {0x45,0xcc,0x83}}, + {{0xc4,0x92}, {0x45,0xcc,0x84}}, + {{0xe1,0xb8,0x94}, {0x45,0xcc,0x84,0xcc,0x80}}, + {{0xe1,0xb8,0x96}, {0x45,0xcc,0x84,0xcc,0x81}}, + {{0xc4,0x94}, {0x45,0xcc,0x86}}, + {{0xc4,0x96}, {0x45,0xcc,0x87}}, + {{0xc3,0x8b}, {0x45,0xcc,0x88}}, + {{0xe1,0xba,0xba}, {0x45,0xcc,0x89}}, + {{0xc4,0x9a}, {0x45,0xcc,0x8c}}, + {{0xc8,0x84}, {0x45,0xcc,0x8f}}, + {{0xc8,0x86}, {0x45,0xcc,0x91}}, + {{0xe1,0xba,0xb8}, {0x45,0xcc,0xa3}}, + {{0xe1,0xbb,0x86}, {0x45,0xcc,0xa3,0xcc,0x82}}, + {{0xe1,0xb8,0x9c}, {0x45,0xcc,0xa7,0xcc,0x86}}, + {{0xc4,0x98}, {0x45,0xcc,0xa8}}, + {{0xe1,0xb8,0x98}, {0x45,0xcc,0xad}}, + {{0xe1,0xb8,0x9a}, {0x45,0xcc,0xb0}}, + {{0xe1,0xb8,0x9e}, {0x46,0xcc,0x87}}, + {{0xc7,0xb4}, {0x47,0xcc,0x81}}, + {{0xc4,0x9c}, {0x47,0xcc,0x82}}, + {{0xe1,0xb8,0xa0}, {0x47,0xcc,0x84}}, + {{0xc4,0x9e}, {0x47,0xcc,0x86}}, + {{0xc4,0xa0}, {0x47,0xcc,0x87}}, + {{0xc7,0xa6}, {0x47,0xcc,0x8c}}, + {{0xc4,0xa2}, {0x47,0xcc,0xa7}}, + {{0xc4,0xa4}, {0x48,0xcc,0x82}}, + {{0xe1,0xb8,0xa2}, {0x48,0xcc,0x87}}, + {{0xe1,0xb8,0xa6}, {0x48,0xcc,0x88}}, + {{0xe1,0xb8,0xa4}, {0x48,0xcc,0xa3}}, + {{0xe1,0xb8,0xa8}, {0x48,0xcc,0xa7}}, + {{0xe1,0xb8,0xaa}, {0x48,0xcc,0xae}}, + {{0xc3,0x8c}, {0x49,0xcc,0x80}}, + {{0xc3,0x8d}, {0x49,0xcc,0x81}}, + {{0xc3,0x8e}, {0x49,0xcc,0x82}}, + {{0xc4,0xa8}, {0x49,0xcc,0x83}}, + {{0xc4,0xaa}, {0x49,0xcc,0x84}}, + {{0xc4,0xac}, {0x49,0xcc,0x86}}, + {{0xc4,0xb0}, {0x49,0xcc,0x87}}, + {{0xc3,0x8f}, {0x49,0xcc,0x88}}, + {{0xe1,0xb8,0xae}, {0x49,0xcc,0x88,0xcc,0x81}}, + {{0xe1,0xbb,0x88}, {0x49,0xcc,0x89}}, + {{0xc7,0x8f}, {0x49,0xcc,0x8c}}, + {{0xc8,0x88}, {0x49,0xcc,0x8f}}, + {{0xc8,0x8a}, {0x49,0xcc,0x91}}, + {{0xe1,0xbb,0x8a}, {0x49,0xcc,0xa3}}, + {{0xc4,0xae}, {0x49,0xcc,0xa8}}, + {{0xe1,0xb8,0xac}, {0x49,0xcc,0xb0}}, + {{0xc4,0xb4}, {0x4a,0xcc,0x82}}, + {{0xe1,0xb8,0xb0}, {0x4b,0xcc,0x81}}, + {{0xc7,0xa8}, {0x4b,0xcc,0x8c}}, + {{0xe1,0xb8,0xb2}, {0x4b,0xcc,0xa3}}, + {{0xc4,0xb6}, {0x4b,0xcc,0xa7}}, + {{0xe1,0xb8,0xb4}, {0x4b,0xcc,0xb1}}, + {{0xc4,0xb9}, {0x4c,0xcc,0x81}}, + {{0xc4,0xbd}, {0x4c,0xcc,0x8c}}, + {{0xe1,0xb8,0xb6}, {0x4c,0xcc,0xa3}}, + {{0xe1,0xb8,0xb8}, {0x4c,0xcc,0xa3,0xcc,0x84}}, + {{0xc4,0xbb}, {0x4c,0xcc,0xa7}}, + {{0xe1,0xb8,0xbc}, {0x4c,0xcc,0xad}}, + {{0xe1,0xb8,0xba}, {0x4c,0xcc,0xb1}}, + {{0xe1,0xb8,0xbe}, {0x4d,0xcc,0x81}}, + {{0xe1,0xb9,0x80}, {0x4d,0xcc,0x87}}, + {{0xe1,0xb9,0x82}, {0x4d,0xcc,0xa3}}, + {{0xc5,0x83}, {0x4e,0xcc,0x81}}, + {{0xc3,0x91}, {0x4e,0xcc,0x83}}, + {{0xe1,0xb9,0x84}, {0x4e,0xcc,0x87}}, + {{0xc5,0x87}, {0x4e,0xcc,0x8c}}, + {{0xe1,0xb9,0x86}, {0x4e,0xcc,0xa3}}, + {{0xc5,0x85}, {0x4e,0xcc,0xa7}}, + {{0xe1,0xb9,0x8a}, {0x4e,0xcc,0xad}}, + {{0xe1,0xb9,0x88}, {0x4e,0xcc,0xb1}}, + {{0xc3,0x92}, {0x4f,0xcc,0x80}}, + {{0xc3,0x93}, {0x4f,0xcc,0x81}}, + {{0xc3,0x94}, {0x4f,0xcc,0x82}}, + {{0xe1,0xbb,0x92}, {0x4f,0xcc,0x82,0xcc,0x80}}, + {{0xe1,0xbb,0x90}, {0x4f,0xcc,0x82,0xcc,0x81}}, + {{0xe1,0xbb,0x96}, {0x4f,0xcc,0x82,0xcc,0x83}}, + {{0xe1,0xbb,0x94}, {0x4f,0xcc,0x82,0xcc,0x89}}, + {{0xc3,0x95}, {0x4f,0xcc,0x83}}, + {{0xe1,0xb9,0x8c}, {0x4f,0xcc,0x83,0xcc,0x81}}, + {{0xe1,0xb9,0x8e}, {0x4f,0xcc,0x83,0xcc,0x88}}, + {{0xc5,0x8c}, {0x4f,0xcc,0x84}}, + {{0xe1,0xb9,0x90}, {0x4f,0xcc,0x84,0xcc,0x80}}, + {{0xe1,0xb9,0x92}, {0x4f,0xcc,0x84,0xcc,0x81}}, + {{0xc5,0x8e}, {0x4f,0xcc,0x86}}, + {{0xc3,0x96}, {0x4f,0xcc,0x88}}, + {{0xe1,0xbb,0x8e}, {0x4f,0xcc,0x89}}, + {{0xc5,0x90}, {0x4f,0xcc,0x8b}}, + {{0xc7,0x91}, {0x4f,0xcc,0x8c}}, + {{0xc8,0x8c}, {0x4f,0xcc,0x8f}}, + {{0xc8,0x8e}, {0x4f,0xcc,0x91}}, + {{0xc6,0xa0}, {0x4f,0xcc,0x9b}}, + {{0xe1,0xbb,0x9c}, {0x4f,0xcc,0x9b,0xcc,0x80}}, + {{0xe1,0xbb,0x9a}, {0x4f,0xcc,0x9b,0xcc,0x81}}, + {{0xe1,0xbb,0xa0}, {0x4f,0xcc,0x9b,0xcc,0x83}}, + {{0xe1,0xbb,0x9e}, {0x4f,0xcc,0x9b,0xcc,0x89}}, + {{0xe1,0xbb,0xa2}, {0x4f,0xcc,0x9b,0xcc,0xa3}}, + {{0xe1,0xbb,0x8c}, {0x4f,0xcc,0xa3}}, + {{0xe1,0xbb,0x98}, {0x4f,0xcc,0xa3,0xcc,0x82}}, + {{0xc7,0xaa}, {0x4f,0xcc,0xa8}}, + {{0xc7,0xac}, {0x4f,0xcc,0xa8,0xcc,0x84}}, + {{0xe1,0xb9,0x94}, {0x50,0xcc,0x81}}, + {{0xe1,0xb9,0x96}, {0x50,0xcc,0x87}}, + {{0xc5,0x94}, {0x52,0xcc,0x81}}, + {{0xe1,0xb9,0x98}, {0x52,0xcc,0x87}}, + {{0xc5,0x98}, {0x52,0xcc,0x8c}}, + {{0xc8,0x90}, {0x52,0xcc,0x8f}}, + {{0xc8,0x92}, {0x52,0xcc,0x91}}, + {{0xe1,0xb9,0x9a}, {0x52,0xcc,0xa3}}, + {{0xe1,0xb9,0x9c}, {0x52,0xcc,0xa3,0xcc,0x84}}, + {{0xc5,0x96}, {0x52,0xcc,0xa7}}, + {{0xe1,0xb9,0x9e}, {0x52,0xcc,0xb1}}, + {{0xc5,0x9a}, {0x53,0xcc,0x81}}, + {{0xe1,0xb9,0xa4}, {0x53,0xcc,0x81,0xcc,0x87}}, + {{0xc5,0x9c}, {0x53,0xcc,0x82}}, + {{0xe1,0xb9,0xa0}, {0x53,0xcc,0x87}}, + {{0xc5,0xa0}, {0x53,0xcc,0x8c}}, + {{0xe1,0xb9,0xa6}, {0x53,0xcc,0x8c,0xcc,0x87}}, + {{0xe1,0xb9,0xa2}, {0x53,0xcc,0xa3}}, + {{0xe1,0xb9,0xa8}, {0x53,0xcc,0xa3,0xcc,0x87}}, + {{0xc5,0x9e}, {0x53,0xcc,0xa7}}, + {{0xe1,0xb9,0xaa}, {0x54,0xcc,0x87}}, + {{0xc5,0xa4}, {0x54,0xcc,0x8c}}, + {{0xe1,0xb9,0xac}, {0x54,0xcc,0xa3}}, + {{0xc5,0xa2}, {0x54,0xcc,0xa7}}, + {{0xe1,0xb9,0xb0}, {0x54,0xcc,0xad}}, + {{0xe1,0xb9,0xae}, {0x54,0xcc,0xb1}}, + {{0xc3,0x99}, {0x55,0xcc,0x80}}, + {{0xc3,0x9a}, {0x55,0xcc,0x81}}, + {{0xc3,0x9b}, {0x55,0xcc,0x82}}, + {{0xc5,0xa8}, {0x55,0xcc,0x83}}, + {{0xe1,0xb9,0xb8}, {0x55,0xcc,0x83,0xcc,0x81}}, + {{0xc5,0xaa}, {0x55,0xcc,0x84}}, + {{0xe1,0xb9,0xba}, {0x55,0xcc,0x84,0xcc,0x88}}, + {{0xc5,0xac}, {0x55,0xcc,0x86}}, + {{0xc3,0x9c}, {0x55,0xcc,0x88}}, + {{0xc7,0x9b}, {0x55,0xcc,0x88,0xcc,0x80}}, + {{0xc7,0x97}, {0x55,0xcc,0x88,0xcc,0x81}}, + {{0xc7,0x95}, {0x55,0xcc,0x88,0xcc,0x84}}, + {{0xc7,0x99}, {0x55,0xcc,0x88,0xcc,0x8c}}, + {{0xe1,0xbb,0xa6}, {0x55,0xcc,0x89}}, + {{0xc5,0xae}, {0x55,0xcc,0x8a}}, + {{0xc5,0xb0}, {0x55,0xcc,0x8b}}, + {{0xc7,0x93}, {0x55,0xcc,0x8c}}, + {{0xc8,0x94}, {0x55,0xcc,0x8f}}, + {{0xc8,0x96}, {0x55,0xcc,0x91}}, + {{0xc6,0xaf}, {0x55,0xcc,0x9b}}, + {{0xe1,0xbb,0xaa}, {0x55,0xcc,0x9b,0xcc,0x80}}, + {{0xe1,0xbb,0xa8}, {0x55,0xcc,0x9b,0xcc,0x81}}, + {{0xe1,0xbb,0xae}, {0x55,0xcc,0x9b,0xcc,0x83}}, + {{0xe1,0xbb,0xac}, {0x55,0xcc,0x9b,0xcc,0x89}}, + {{0xe1,0xbb,0xb0}, {0x55,0xcc,0x9b,0xcc,0xa3}}, + {{0xe1,0xbb,0xa4}, {0x55,0xcc,0xa3}}, + {{0xe1,0xb9,0xb2}, {0x55,0xcc,0xa4}}, + {{0xc5,0xb2}, {0x55,0xcc,0xa8}}, + {{0xe1,0xb9,0xb6}, {0x55,0xcc,0xad}}, + {{0xe1,0xb9,0xb4}, {0x55,0xcc,0xb0}}, + {{0xe1,0xb9,0xbc}, {0x56,0xcc,0x83}}, + {{0xe1,0xb9,0xbe}, {0x56,0xcc,0xa3}}, + {{0xe1,0xba,0x80}, {0x57,0xcc,0x80}}, + {{0xe1,0xba,0x82}, {0x57,0xcc,0x81}}, + {{0xc5,0xb4}, {0x57,0xcc,0x82}}, + {{0xe1,0xba,0x86}, {0x57,0xcc,0x87}}, + {{0xe1,0xba,0x84}, {0x57,0xcc,0x88}}, + {{0xe1,0xba,0x88}, {0x57,0xcc,0xa3}}, + {{0xe1,0xba,0x8a}, {0x58,0xcc,0x87}}, + {{0xe1,0xba,0x8c}, {0x58,0xcc,0x88}}, + {{0xe1,0xbb,0xb2}, {0x59,0xcc,0x80}}, + {{0xc3,0x9d}, {0x59,0xcc,0x81}}, + {{0xc5,0xb6}, {0x59,0xcc,0x82}}, + {{0xe1,0xbb,0xb8}, {0x59,0xcc,0x83}}, + {{0xe1,0xba,0x8e}, {0x59,0xcc,0x87}}, + {{0xc5,0xb8}, {0x59,0xcc,0x88}}, + {{0xe1,0xbb,0xb6}, {0x59,0xcc,0x89}}, + {{0xe1,0xbb,0xb4}, {0x59,0xcc,0xa3}}, + {{0xc5,0xb9}, {0x5a,0xcc,0x81}}, + {{0xe1,0xba,0x90}, {0x5a,0xcc,0x82}}, + {{0xc5,0xbb}, {0x5a,0xcc,0x87}}, + {{0xc5,0xbd}, {0x5a,0xcc,0x8c}}, + {{0xe1,0xba,0x92}, {0x5a,0xcc,0xa3}}, + {{0xe1,0xba,0x94}, {0x5a,0xcc,0xb1}}, + {{0xe1,0xbf,0xaf}, {0x60}}, + {{0xc3,0xa0}, {0x61,0xcc,0x80}}, + {{0xc3,0xa1}, {0x61,0xcc,0x81}}, + {{0xc3,0xa2}, {0x61,0xcc,0x82}}, + {{0xe1,0xba,0xa7}, {0x61,0xcc,0x82,0xcc,0x80}}, + {{0xe1,0xba,0xa5}, {0x61,0xcc,0x82,0xcc,0x81}}, + {{0xe1,0xba,0xab}, {0x61,0xcc,0x82,0xcc,0x83}}, + {{0xe1,0xba,0xa9}, {0x61,0xcc,0x82,0xcc,0x89}}, + {{0xc3,0xa3}, {0x61,0xcc,0x83}}, + {{0xc4,0x81}, {0x61,0xcc,0x84}}, + {{0xc4,0x83}, {0x61,0xcc,0x86}}, + {{0xe1,0xba,0xb1}, {0x61,0xcc,0x86,0xcc,0x80}}, + {{0xe1,0xba,0xaf}, {0x61,0xcc,0x86,0xcc,0x81}}, + {{0xe1,0xba,0xb5}, {0x61,0xcc,0x86,0xcc,0x83}}, + {{0xe1,0xba,0xb3}, {0x61,0xcc,0x86,0xcc,0x89}}, + {{0xc7,0xa1}, {0x61,0xcc,0x87,0xcc,0x84}}, + {{0xc3,0xa4}, {0x61,0xcc,0x88}}, + {{0xc7,0x9f}, {0x61,0xcc,0x88,0xcc,0x84}}, + {{0xe1,0xba,0xa3}, {0x61,0xcc,0x89}}, + {{0xc3,0xa5}, {0x61,0xcc,0x8a}}, + {{0xc7,0xbb}, {0x61,0xcc,0x8a,0xcc,0x81}}, + {{0xc7,0x8e}, {0x61,0xcc,0x8c}}, + {{0xc8,0x81}, {0x61,0xcc,0x8f}}, + {{0xc8,0x83}, {0x61,0xcc,0x91}}, + {{0xe1,0xba,0xa1}, {0x61,0xcc,0xa3}}, + {{0xe1,0xba,0xad}, {0x61,0xcc,0xa3,0xcc,0x82}}, + {{0xe1,0xba,0xb7}, {0x61,0xcc,0xa3,0xcc,0x86}}, + {{0xe1,0xb8,0x81}, {0x61,0xcc,0xa5}}, + {{0xc4,0x85}, {0x61,0xcc,0xa8}}, + {{0xe1,0xb8,0x83}, {0x62,0xcc,0x87}}, + {{0xe1,0xb8,0x85}, {0x62,0xcc,0xa3}}, + {{0xe1,0xb8,0x87}, {0x62,0xcc,0xb1}}, + {{0xc4,0x87}, {0x63,0xcc,0x81}}, + {{0xc4,0x89}, {0x63,0xcc,0x82}}, + {{0xc4,0x8b}, {0x63,0xcc,0x87}}, + {{0xc4,0x8d}, {0x63,0xcc,0x8c}}, + {{0xc3,0xa7}, {0x63,0xcc,0xa7}}, + {{0xe1,0xb8,0x89}, {0x63,0xcc,0xa7,0xcc,0x81}}, + {{0xe1,0xb8,0x8b}, {0x64,0xcc,0x87}}, + {{0xc4,0x8f}, {0x64,0xcc,0x8c}}, + {{0xe1,0xb8,0x8d}, {0x64,0xcc,0xa3}}, + {{0xe1,0xb8,0x91}, {0x64,0xcc,0xa7}}, + {{0xe1,0xb8,0x93}, {0x64,0xcc,0xad}}, + {{0xe1,0xb8,0x8f}, {0x64,0xcc,0xb1}}, + {{0xc3,0xa8}, {0x65,0xcc,0x80}}, + {{0xc3,0xa9}, {0x65,0xcc,0x81}}, + {{0xc3,0xaa}, {0x65,0xcc,0x82}}, + {{0xe1,0xbb,0x81}, {0x65,0xcc,0x82,0xcc,0x80}}, + {{0xe1,0xba,0xbf}, {0x65,0xcc,0x82,0xcc,0x81}}, + {{0xe1,0xbb,0x85}, {0x65,0xcc,0x82,0xcc,0x83}}, + {{0xe1,0xbb,0x83}, {0x65,0xcc,0x82,0xcc,0x89}}, + {{0xe1,0xba,0xbd}, {0x65,0xcc,0x83}}, + {{0xc4,0x93}, {0x65,0xcc,0x84}}, + {{0xe1,0xb8,0x95}, {0x65,0xcc,0x84,0xcc,0x80}}, + {{0xe1,0xb8,0x97}, {0x65,0xcc,0x84,0xcc,0x81}}, + {{0xc4,0x95}, {0x65,0xcc,0x86}}, + {{0xc4,0x97}, {0x65,0xcc,0x87}}, + {{0xc3,0xab}, {0x65,0xcc,0x88}}, + {{0xe1,0xba,0xbb}, {0x65,0xcc,0x89}}, + {{0xc4,0x9b}, {0x65,0xcc,0x8c}}, + {{0xc8,0x85}, {0x65,0xcc,0x8f}}, + {{0xc8,0x87}, {0x65,0xcc,0x91}}, + {{0xe1,0xba,0xb9}, {0x65,0xcc,0xa3}}, + {{0xe1,0xbb,0x87}, {0x65,0xcc,0xa3,0xcc,0x82}}, + {{0xe1,0xb8,0x9d}, {0x65,0xcc,0xa7,0xcc,0x86}}, + {{0xc4,0x99}, {0x65,0xcc,0xa8}}, + {{0xe1,0xb8,0x99}, {0x65,0xcc,0xad}}, + {{0xe1,0xb8,0x9b}, {0x65,0xcc,0xb0}}, + {{0xe1,0xb8,0x9f}, {0x66,0xcc,0x87}}, + {{0xc7,0xb5}, {0x67,0xcc,0x81}}, + {{0xc4,0x9d}, {0x67,0xcc,0x82}}, + {{0xe1,0xb8,0xa1}, {0x67,0xcc,0x84}}, + {{0xc4,0x9f}, {0x67,0xcc,0x86}}, + {{0xc4,0xa1}, {0x67,0xcc,0x87}}, + {{0xc7,0xa7}, {0x67,0xcc,0x8c}}, + {{0xc4,0xa3}, {0x67,0xcc,0xa7}}, + {{0xc4,0xa5}, {0x68,0xcc,0x82}}, + {{0xe1,0xb8,0xa3}, {0x68,0xcc,0x87}}, + {{0xe1,0xb8,0xa7}, {0x68,0xcc,0x88}}, + {{0xe1,0xb8,0xa5}, {0x68,0xcc,0xa3}}, + {{0xe1,0xb8,0xa9}, {0x68,0xcc,0xa7}}, + {{0xe1,0xb8,0xab}, {0x68,0xcc,0xae}}, + {{0xe1,0xba,0x96}, {0x68,0xcc,0xb1}}, + {{0xc3,0xac}, {0x69,0xcc,0x80}}, + {{0xc3,0xad}, {0x69,0xcc,0x81}}, + {{0xc3,0xae}, {0x69,0xcc,0x82}}, + {{0xc4,0xa9}, {0x69,0xcc,0x83}}, + {{0xc4,0xab}, {0x69,0xcc,0x84}}, + {{0xc4,0xad}, {0x69,0xcc,0x86}}, + {{0xc3,0xaf}, {0x69,0xcc,0x88}}, + {{0xe1,0xb8,0xaf}, {0x69,0xcc,0x88,0xcc,0x81}}, + {{0xe1,0xbb,0x89}, {0x69,0xcc,0x89}}, + {{0xc7,0x90}, {0x69,0xcc,0x8c}}, + {{0xc8,0x89}, {0x69,0xcc,0x8f}}, + {{0xc8,0x8b}, {0x69,0xcc,0x91}}, + {{0xe1,0xbb,0x8b}, {0x69,0xcc,0xa3}}, + {{0xc4,0xaf}, {0x69,0xcc,0xa8}}, + {{0xe1,0xb8,0xad}, {0x69,0xcc,0xb0}}, + {{0xc4,0xb5}, {0x6a,0xcc,0x82}}, + {{0xc7,0xb0}, {0x6a,0xcc,0x8c}}, + {{0xe1,0xb8,0xb1}, {0x6b,0xcc,0x81}}, + {{0xc7,0xa9}, {0x6b,0xcc,0x8c}}, + {{0xe1,0xb8,0xb3}, {0x6b,0xcc,0xa3}}, + {{0xc4,0xb7}, {0x6b,0xcc,0xa7}}, + {{0xe1,0xb8,0xb5}, {0x6b,0xcc,0xb1}}, + {{0xc4,0xba}, {0x6c,0xcc,0x81}}, + {{0xc4,0xbe}, {0x6c,0xcc,0x8c}}, + {{0xe1,0xb8,0xb7}, {0x6c,0xcc,0xa3}}, + {{0xe1,0xb8,0xb9}, {0x6c,0xcc,0xa3,0xcc,0x84}}, + {{0xc4,0xbc}, {0x6c,0xcc,0xa7}}, + {{0xe1,0xb8,0xbd}, {0x6c,0xcc,0xad}}, + {{0xe1,0xb8,0xbb}, {0x6c,0xcc,0xb1}}, + {{0xe1,0xb8,0xbf}, {0x6d,0xcc,0x81}}, + {{0xe1,0xb9,0x81}, {0x6d,0xcc,0x87}}, + {{0xe1,0xb9,0x83}, {0x6d,0xcc,0xa3}}, + {{0xc5,0x84}, {0x6e,0xcc,0x81}}, + {{0xc3,0xb1}, {0x6e,0xcc,0x83}}, + {{0xe1,0xb9,0x85}, {0x6e,0xcc,0x87}}, + {{0xc5,0x88}, {0x6e,0xcc,0x8c}}, + {{0xe1,0xb9,0x87}, {0x6e,0xcc,0xa3}}, + {{0xc5,0x86}, {0x6e,0xcc,0xa7}}, + {{0xe1,0xb9,0x8b}, {0x6e,0xcc,0xad}}, + {{0xe1,0xb9,0x89}, {0x6e,0xcc,0xb1}}, + {{0xc3,0xb2}, {0x6f,0xcc,0x80}}, + {{0xc3,0xb3}, {0x6f,0xcc,0x81}}, + {{0xc3,0xb4}, {0x6f,0xcc,0x82}}, + {{0xe1,0xbb,0x93}, {0x6f,0xcc,0x82,0xcc,0x80}}, + {{0xe1,0xbb,0x91}, {0x6f,0xcc,0x82,0xcc,0x81}}, + {{0xe1,0xbb,0x97}, {0x6f,0xcc,0x82,0xcc,0x83}}, + {{0xe1,0xbb,0x95}, {0x6f,0xcc,0x82,0xcc,0x89}}, + {{0xc3,0xb5}, {0x6f,0xcc,0x83}}, + {{0xe1,0xb9,0x8d}, {0x6f,0xcc,0x83,0xcc,0x81}}, + {{0xe1,0xb9,0x8f}, {0x6f,0xcc,0x83,0xcc,0x88}}, + {{0xc5,0x8d}, {0x6f,0xcc,0x84}}, + {{0xe1,0xb9,0x91}, {0x6f,0xcc,0x84,0xcc,0x80}}, + {{0xe1,0xb9,0x93}, {0x6f,0xcc,0x84,0xcc,0x81}}, + {{0xc5,0x8f}, {0x6f,0xcc,0x86}}, + {{0xc3,0xb6}, {0x6f,0xcc,0x88}}, + {{0xe1,0xbb,0x8f}, {0x6f,0xcc,0x89}}, + {{0xc5,0x91}, {0x6f,0xcc,0x8b}}, + {{0xc7,0x92}, {0x6f,0xcc,0x8c}}, + {{0xc8,0x8d}, {0x6f,0xcc,0x8f}}, + {{0xc8,0x8f}, {0x6f,0xcc,0x91}}, + {{0xc6,0xa1}, {0x6f,0xcc,0x9b}}, + {{0xe1,0xbb,0x9d}, {0x6f,0xcc,0x9b,0xcc,0x80}}, + {{0xe1,0xbb,0x9b}, {0x6f,0xcc,0x9b,0xcc,0x81}}, + {{0xe1,0xbb,0xa1}, {0x6f,0xcc,0x9b,0xcc,0x83}}, + {{0xe1,0xbb,0x9f}, {0x6f,0xcc,0x9b,0xcc,0x89}}, + {{0xe1,0xbb,0xa3}, {0x6f,0xcc,0x9b,0xcc,0xa3}}, + {{0xe1,0xbb,0x8d}, {0x6f,0xcc,0xa3}}, + {{0xe1,0xbb,0x99}, {0x6f,0xcc,0xa3,0xcc,0x82}}, + {{0xc7,0xab}, {0x6f,0xcc,0xa8}}, + {{0xc7,0xad}, {0x6f,0xcc,0xa8,0xcc,0x84}}, + {{0xe1,0xb9,0x95}, {0x70,0xcc,0x81}}, + {{0xe1,0xb9,0x97}, {0x70,0xcc,0x87}}, + {{0xc5,0x95}, {0x72,0xcc,0x81}}, + {{0xe1,0xb9,0x99}, {0x72,0xcc,0x87}}, + {{0xc5,0x99}, {0x72,0xcc,0x8c}}, + {{0xc8,0x91}, {0x72,0xcc,0x8f}}, + {{0xc8,0x93}, {0x72,0xcc,0x91}}, + {{0xe1,0xb9,0x9b}, {0x72,0xcc,0xa3}}, + {{0xe1,0xb9,0x9d}, {0x72,0xcc,0xa3,0xcc,0x84}}, + {{0xc5,0x97}, {0x72,0xcc,0xa7}}, + {{0xe1,0xb9,0x9f}, {0x72,0xcc,0xb1}}, + {{0xc5,0x9b}, {0x73,0xcc,0x81}}, + {{0xe1,0xb9,0xa5}, {0x73,0xcc,0x81,0xcc,0x87}}, + {{0xc5,0x9d}, {0x73,0xcc,0x82}}, + {{0xe1,0xb9,0xa1}, {0x73,0xcc,0x87}}, + {{0xc5,0xa1}, {0x73,0xcc,0x8c}}, + {{0xe1,0xb9,0xa7}, {0x73,0xcc,0x8c,0xcc,0x87}}, + {{0xe1,0xb9,0xa3}, {0x73,0xcc,0xa3}}, + {{0xe1,0xb9,0xa9}, {0x73,0xcc,0xa3,0xcc,0x87}}, + {{0xc5,0x9f}, {0x73,0xcc,0xa7}}, + {{0xe1,0xb9,0xab}, {0x74,0xcc,0x87}}, + {{0xe1,0xba,0x97}, {0x74,0xcc,0x88}}, + {{0xc5,0xa5}, {0x74,0xcc,0x8c}}, + {{0xe1,0xb9,0xad}, {0x74,0xcc,0xa3}}, + {{0xc5,0xa3}, {0x74,0xcc,0xa7}}, + {{0xe1,0xb9,0xb1}, {0x74,0xcc,0xad}}, + {{0xe1,0xb9,0xaf}, {0x74,0xcc,0xb1}}, + {{0xc3,0xb9}, {0x75,0xcc,0x80}}, + {{0xc3,0xba}, {0x75,0xcc,0x81}}, + {{0xc3,0xbb}, {0x75,0xcc,0x82}}, + {{0xc5,0xa9}, {0x75,0xcc,0x83}}, + {{0xe1,0xb9,0xb9}, {0x75,0xcc,0x83,0xcc,0x81}}, + {{0xc5,0xab}, {0x75,0xcc,0x84}}, + {{0xe1,0xb9,0xbb}, {0x75,0xcc,0x84,0xcc,0x88}}, + {{0xc5,0xad}, {0x75,0xcc,0x86}}, + {{0xc3,0xbc}, {0x75,0xcc,0x88}}, + {{0xc7,0x9c}, {0x75,0xcc,0x88,0xcc,0x80}}, + {{0xc7,0x98}, {0x75,0xcc,0x88,0xcc,0x81}}, + {{0xc7,0x96}, {0x75,0xcc,0x88,0xcc,0x84}}, + {{0xc7,0x9a}, {0x75,0xcc,0x88,0xcc,0x8c}}, + {{0xe1,0xbb,0xa7}, {0x75,0xcc,0x89}}, + {{0xc5,0xaf}, {0x75,0xcc,0x8a}}, + {{0xc5,0xb1}, {0x75,0xcc,0x8b}}, + {{0xc7,0x94}, {0x75,0xcc,0x8c}}, + {{0xc8,0x95}, {0x75,0xcc,0x8f}}, + {{0xc8,0x97}, {0x75,0xcc,0x91}}, + {{0xc6,0xb0}, {0x75,0xcc,0x9b}}, + {{0xe1,0xbb,0xab}, {0x75,0xcc,0x9b,0xcc,0x80}}, + {{0xe1,0xbb,0xa9}, {0x75,0xcc,0x9b,0xcc,0x81}}, + {{0xe1,0xbb,0xaf}, {0x75,0xcc,0x9b,0xcc,0x83}}, + {{0xe1,0xbb,0xad}, {0x75,0xcc,0x9b,0xcc,0x89}}, + {{0xe1,0xbb,0xb1}, {0x75,0xcc,0x9b,0xcc,0xa3}}, + {{0xe1,0xbb,0xa5}, {0x75,0xcc,0xa3}}, + {{0xe1,0xb9,0xb3}, {0x75,0xcc,0xa4}}, + {{0xc5,0xb3}, {0x75,0xcc,0xa8}}, + {{0xe1,0xb9,0xb7}, {0x75,0xcc,0xad}}, + {{0xe1,0xb9,0xb5}, {0x75,0xcc,0xb0}}, + {{0xe1,0xb9,0xbd}, {0x76,0xcc,0x83}}, + {{0xe1,0xb9,0xbf}, {0x76,0xcc,0xa3}}, + {{0xe1,0xba,0x81}, {0x77,0xcc,0x80}}, + {{0xe1,0xba,0x83}, {0x77,0xcc,0x81}}, + {{0xc5,0xb5}, {0x77,0xcc,0x82}}, + {{0xe1,0xba,0x87}, {0x77,0xcc,0x87}}, + {{0xe1,0xba,0x85}, {0x77,0xcc,0x88}}, + {{0xe1,0xba,0x98}, {0x77,0xcc,0x8a}}, + {{0xe1,0xba,0x89}, {0x77,0xcc,0xa3}}, + {{0xe1,0xba,0x8b}, {0x78,0xcc,0x87}}, + {{0xe1,0xba,0x8d}, {0x78,0xcc,0x88}}, + {{0xe1,0xbb,0xb3}, {0x79,0xcc,0x80}}, + {{0xc3,0xbd}, {0x79,0xcc,0x81}}, + {{0xc5,0xb7}, {0x79,0xcc,0x82}}, + {{0xe1,0xbb,0xb9}, {0x79,0xcc,0x83}}, + {{0xe1,0xba,0x8f}, {0x79,0xcc,0x87}}, + {{0xc3,0xbf}, {0x79,0xcc,0x88}}, + {{0xe1,0xbb,0xb7}, {0x79,0xcc,0x89}}, + {{0xe1,0xba,0x99}, {0x79,0xcc,0x8a}}, + {{0xe1,0xbb,0xb5}, {0x79,0xcc,0xa3}}, + {{0xc5,0xba}, {0x7a,0xcc,0x81}}, + {{0xe1,0xba,0x91}, {0x7a,0xcc,0x82}}, + {{0xc5,0xbc}, {0x7a,0xcc,0x87}}, + {{0xc5,0xbe}, {0x7a,0xcc,0x8c}}, + {{0xe1,0xba,0x93}, {0x7a,0xcc,0xa3}}, + {{0xe1,0xba,0x95}, {0x7a,0xcc,0xb1}}, + {{0xe1,0xbf,0xad}, {0xc2,0xa8,0xcc,0x80}}, + {{0xe1,0xbf,0xae}, {0xc2,0xa8,0xcc,0x81}}, + {{0xce,0x85}, {0xc2,0xa8,0xcc,0x8d}}, + {{0xe1,0xbf,0x81}, {0xc2,0xa8,0xcd,0x82}}, + {{0xe1,0xbf,0xbd}, {0xc2,0xb4}}, + {{0xce,0x87}, {0xc2,0xb7}}, + {{0xd3,0x94}, {0xc3,0x86}}, + {{0xc7,0xbc}, {0xc3,0x86,0xcc,0x81}}, + {{0xc7,0xa2}, {0xc3,0x86,0xcc,0x84}}, + {{0xc7,0xbe}, {0xc3,0x98,0xcc,0x81}}, + {{0xd3,0x95}, {0xc3,0xa6}}, + {{0xc7,0xbd}, {0xc3,0xa6,0xcc,0x81}}, + {{0xc7,0xa3}, {0xc3,0xa6,0xcc,0x84}}, + {{0xc7,0xbf}, {0xc3,0xb8,0xcc,0x81}}, + {{0xe1,0xba,0x9b}, {0xc5,0xbf,0xcc,0x87}}, + {{0xd3,0x98}, {0xc6,0x8f}}, + {{0xd3,0x9a}, {0xc6,0x8f,0xcc,0x88}}, + {{0xd3,0xa8}, {0xc6,0x9f}}, + {{0xd3,0xaa}, {0xc6,0x9f,0xcc,0x88}}, + {{0xd3,0xa0}, {0xc6,0xb7}}, + {{0xc7,0xae}, {0xc6,0xb7,0xcc,0x8c}}, + {{0xd3,0x99}, {0xc9,0x99}}, + {{0xd3,0x9b}, {0xc9,0x99,0xcc,0x88}}, + {{0xd3,0xa9}, {0xc9,0xb5}}, + {{0xd3,0xab}, {0xc9,0xb5,0xcc,0x88}}, + {{0xd3,0xa1}, {0xca,0x92}}, + {{0xc7,0xaf}, {0xca,0x92,0xcc,0x8c}}, + {{0xcd,0xb4}, {0xca,0xb9}}, + {{0xcd,0x80}, {0xcc,0x80}}, + {{0xcd,0x81}, {0xcc,0x81}}, + {{0xcc,0x90}, {0xcc,0x86,0xcc,0x87}}, + {{0xcd,0x84}, {0xcc,0x88,0xcc,0x8d}}, + {{0xcd,0x83}, {0xcc,0x93}}, + {{0xe1,0xbe,0xba}, {0xce,0x91,0xcc,0x80}}, + {{0xe1,0xbe,0xbb}, {0xce,0x91,0xcc,0x81}}, + {{0xe1,0xbe,0xb9}, {0xce,0x91,0xcc,0x84}}, + {{0xe1,0xbe,0xb8}, {0xce,0x91,0xcc,0x86}}, + {{0xce,0x86}, {0xce,0x91,0xcc,0x8d}}, + {{0xe1,0xbc,0x88}, {0xce,0x91,0xcc,0x93}}, + {{0xe1,0xbc,0x8a}, {0xce,0x91,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0x8c}, {0xce,0x91,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0x8e}, {0xce,0x91,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbc,0x89}, {0xce,0x91,0xcc,0x94}}, + {{0xe1,0xbc,0x8b}, {0xce,0x91,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0x8d}, {0xce,0x91,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbc,0x8f}, {0xce,0x91,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbe,0xbc}, {0xce,0x91,0xcd,0x85}}, + {{0xe1,0xbe,0x88}, {0xce,0x91,0xcd,0x85,0xcc,0x93}}, + {{0xe1,0xbe,0x8a}, {0xce,0x91,0xcd,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbe,0x8c}, {0xce,0x91,0xcd,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbe,0x8e}, {0xce,0x91,0xcd,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbe,0x89}, {0xce,0x91,0xcd,0x85,0xcc,0x94}}, + {{0xe1,0xbe,0x8b}, {0xce,0x91,0xcd,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbe,0x8d}, {0xce,0x91,0xcd,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbe,0x8f}, {0xce,0x91,0xcd,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0x88}, {0xce,0x95,0xcc,0x80}}, + {{0xe1,0xbf,0x89}, {0xce,0x95,0xcc,0x81}}, + {{0xce,0x88}, {0xce,0x95,0xcc,0x8d}}, + {{0xe1,0xbc,0x98}, {0xce,0x95,0xcc,0x93}}, + {{0xe1,0xbc,0x9a}, {0xce,0x95,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0x9c}, {0xce,0x95,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0x99}, {0xce,0x95,0xcc,0x94}}, + {{0xe1,0xbc,0x9b}, {0xce,0x95,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0x9d}, {0xce,0x95,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbf,0x8a}, {0xce,0x97,0xcc,0x80}}, + {{0xe1,0xbf,0x8b}, {0xce,0x97,0xcc,0x81}}, + {{0xce,0x89}, {0xce,0x97,0xcc,0x8d}}, + {{0xe1,0xbc,0xa8}, {0xce,0x97,0xcc,0x93}}, + {{0xe1,0xbc,0xaa}, {0xce,0x97,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0xac}, {0xce,0x97,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0xae}, {0xce,0x97,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbc,0xa9}, {0xce,0x97,0xcc,0x94}}, + {{0xe1,0xbc,0xab}, {0xce,0x97,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0xad}, {0xce,0x97,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbc,0xaf}, {0xce,0x97,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0x8c}, {0xce,0x97,0xcd,0x85}}, + {{0xe1,0xbe,0x98}, {0xce,0x97,0xcd,0x85,0xcc,0x93}}, + {{0xe1,0xbe,0x9a}, {0xce,0x97,0xcd,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbe,0x9c}, {0xce,0x97,0xcd,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbe,0x9e}, {0xce,0x97,0xcd,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbe,0x99}, {0xce,0x97,0xcd,0x85,0xcc,0x94}}, + {{0xe1,0xbe,0x9b}, {0xce,0x97,0xcd,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbe,0x9d}, {0xce,0x97,0xcd,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbe,0x9f}, {0xce,0x97,0xcd,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0x9a}, {0xce,0x99,0xcc,0x80}}, + {{0xe1,0xbf,0x9b}, {0xce,0x99,0xcc,0x81}}, + {{0xe1,0xbf,0x99}, {0xce,0x99,0xcc,0x84}}, + {{0xe1,0xbf,0x98}, {0xce,0x99,0xcc,0x86}}, + {{0xce,0xaa}, {0xce,0x99,0xcc,0x88}}, + {{0xce,0x8a}, {0xce,0x99,0xcc,0x8d}}, + {{0xe1,0xbc,0xb8}, {0xce,0x99,0xcc,0x93}}, + {{0xe1,0xbc,0xba}, {0xce,0x99,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0xbc}, {0xce,0x99,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0xbe}, {0xce,0x99,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbc,0xb9}, {0xce,0x99,0xcc,0x94}}, + {{0xe1,0xbc,0xbb}, {0xce,0x99,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0xbd}, {0xce,0x99,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbc,0xbf}, {0xce,0x99,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0xb8}, {0xce,0x9f,0xcc,0x80}}, + {{0xe1,0xbf,0xb9}, {0xce,0x9f,0xcc,0x81}}, + {{0xce,0x8c}, {0xce,0x9f,0xcc,0x8d}}, + {{0xe1,0xbd,0x88}, {0xce,0x9f,0xcc,0x93}}, + {{0xe1,0xbd,0x8a}, {0xce,0x9f,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbd,0x8c}, {0xce,0x9f,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbd,0x89}, {0xce,0x9f,0xcc,0x94}}, + {{0xe1,0xbd,0x8b}, {0xce,0x9f,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbd,0x8d}, {0xce,0x9f,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbf,0xac}, {0xce,0xa1,0xcc,0x94}}, + {{0xe1,0xbf,0xaa}, {0xce,0xa5,0xcc,0x80}}, + {{0xe1,0xbf,0xab}, {0xce,0xa5,0xcc,0x81}}, + {{0xe1,0xbf,0xa9}, {0xce,0xa5,0xcc,0x84}}, + {{0xe1,0xbf,0xa8}, {0xce,0xa5,0xcc,0x86}}, + {{0xce,0xab}, {0xce,0xa5,0xcc,0x88}}, + {{0xce,0x8e}, {0xce,0xa5,0xcc,0x8d}}, + {{0xe1,0xbd,0x99}, {0xce,0xa5,0xcc,0x94}}, + {{0xe1,0xbd,0x9b}, {0xce,0xa5,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbd,0x9d}, {0xce,0xa5,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbd,0x9f}, {0xce,0xa5,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0xba}, {0xce,0xa9,0xcc,0x80}}, + {{0xe1,0xbf,0xbb}, {0xce,0xa9,0xcc,0x81}}, + {{0xce,0x8f}, {0xce,0xa9,0xcc,0x8d}}, + {{0xe1,0xbd,0xa8}, {0xce,0xa9,0xcc,0x93}}, + {{0xe1,0xbd,0xaa}, {0xce,0xa9,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbd,0xac}, {0xce,0xa9,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbd,0xae}, {0xce,0xa9,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbd,0xa9}, {0xce,0xa9,0xcc,0x94}}, + {{0xe1,0xbd,0xab}, {0xce,0xa9,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbd,0xad}, {0xce,0xa9,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbd,0xaf}, {0xce,0xa9,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0xbc}, {0xce,0xa9,0xcd,0x85}}, + {{0xe1,0xbe,0xa8}, {0xce,0xa9,0xcd,0x85,0xcc,0x93}}, + {{0xe1,0xbe,0xaa}, {0xce,0xa9,0xcd,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbe,0xac}, {0xce,0xa9,0xcd,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbe,0xae}, {0xce,0xa9,0xcd,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbe,0xa9}, {0xce,0xa9,0xcd,0x85,0xcc,0x94}}, + {{0xe1,0xbe,0xab}, {0xce,0xa9,0xcd,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbe,0xad}, {0xce,0xa9,0xcd,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbe,0xaf}, {0xce,0xa9,0xcd,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbd,0xb0}, {0xce,0xb1,0xcc,0x80}}, + {{0xe1,0xbd,0xb1}, {0xce,0xb1,0xcc,0x81}}, + {{0xe1,0xbe,0xb1}, {0xce,0xb1,0xcc,0x84}}, + {{0xe1,0xbe,0xb0}, {0xce,0xb1,0xcc,0x86}}, + {{0xce,0xac}, {0xce,0xb1,0xcc,0x8d}}, + {{0xe1,0xbc,0x80}, {0xce,0xb1,0xcc,0x93}}, + {{0xe1,0xbc,0x82}, {0xce,0xb1,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0x84}, {0xce,0xb1,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0x86}, {0xce,0xb1,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbc,0x81}, {0xce,0xb1,0xcc,0x94}}, + {{0xe1,0xbc,0x83}, {0xce,0xb1,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0x85}, {0xce,0xb1,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbc,0x87}, {0xce,0xb1,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbe,0xb6}, {0xce,0xb1,0xcd,0x82}}, + {{0xe1,0xbe,0xb3}, {0xce,0xb1,0xcd,0x85}}, + {{0xe1,0xbe,0xb2}, {0xce,0xb1,0xcd,0x85,0xcc,0x80}}, + {{0xe1,0xbe,0xb4}, {0xce,0xb1,0xcd,0x85,0xcc,0x81}}, + {{0xe1,0xbe,0x80}, {0xce,0xb1,0xcd,0x85,0xcc,0x93}}, + {{0xe1,0xbe,0x82}, {0xce,0xb1,0xcd,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbe,0x84}, {0xce,0xb1,0xcd,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbe,0x86}, {0xce,0xb1,0xcd,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbe,0x81}, {0xce,0xb1,0xcd,0x85,0xcc,0x94}}, + {{0xe1,0xbe,0x83}, {0xce,0xb1,0xcd,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbe,0x85}, {0xce,0xb1,0xcd,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbe,0x87}, {0xce,0xb1,0xcd,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbe,0xb7}, {0xce,0xb1,0xcd,0x85,0xcd,0x82}}, + {{0xe1,0xbd,0xb2}, {0xce,0xb5,0xcc,0x80}}, + {{0xe1,0xbd,0xb3}, {0xce,0xb5,0xcc,0x81}}, + {{0xce,0xad}, {0xce,0xb5,0xcc,0x8d}}, + {{0xe1,0xbc,0x90}, {0xce,0xb5,0xcc,0x93}}, + {{0xe1,0xbc,0x92}, {0xce,0xb5,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0x94}, {0xce,0xb5,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0x91}, {0xce,0xb5,0xcc,0x94}}, + {{0xe1,0xbc,0x93}, {0xce,0xb5,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0x95}, {0xce,0xb5,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbd,0xb4}, {0xce,0xb7,0xcc,0x80}}, + {{0xe1,0xbd,0xb5}, {0xce,0xb7,0xcc,0x81}}, + {{0xce,0xae}, {0xce,0xb7,0xcc,0x8d}}, + {{0xe1,0xbc,0xa0}, {0xce,0xb7,0xcc,0x93}}, + {{0xe1,0xbc,0xa2}, {0xce,0xb7,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0xa4}, {0xce,0xb7,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0xa6}, {0xce,0xb7,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbc,0xa1}, {0xce,0xb7,0xcc,0x94}}, + {{0xe1,0xbc,0xa3}, {0xce,0xb7,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0xa5}, {0xce,0xb7,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbc,0xa7}, {0xce,0xb7,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0x86}, {0xce,0xb7,0xcd,0x82}}, + {{0xe1,0xbf,0x83}, {0xce,0xb7,0xcd,0x85}}, + {{0xe1,0xbf,0x82}, {0xce,0xb7,0xcd,0x85,0xcc,0x80}}, + {{0xe1,0xbf,0x84}, {0xce,0xb7,0xcd,0x85,0xcc,0x81}}, + {{0xe1,0xbe,0x90}, {0xce,0xb7,0xcd,0x85,0xcc,0x93}}, + {{0xe1,0xbe,0x92}, {0xce,0xb7,0xcd,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbe,0x94}, {0xce,0xb7,0xcd,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbe,0x96}, {0xce,0xb7,0xcd,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbe,0x91}, {0xce,0xb7,0xcd,0x85,0xcc,0x94}}, + {{0xe1,0xbe,0x93}, {0xce,0xb7,0xcd,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbe,0x95}, {0xce,0xb7,0xcd,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbe,0x97}, {0xce,0xb7,0xcd,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0x87}, {0xce,0xb7,0xcd,0x85,0xcd,0x82}}, + {{0xe1,0xbe,0xbe}, {0xce,0xb9}}, + {{0xe1,0xbd,0xb6}, {0xce,0xb9,0xcc,0x80}}, + {{0xe1,0xbd,0xb7}, {0xce,0xb9,0xcc,0x81}}, + {{0xe1,0xbf,0x91}, {0xce,0xb9,0xcc,0x84}}, + {{0xe1,0xbf,0x90}, {0xce,0xb9,0xcc,0x86}}, + {{0xcf,0x8a}, {0xce,0xb9,0xcc,0x88}}, + {{0xe1,0xbf,0x92}, {0xce,0xb9,0xcc,0x88,0xcc,0x80}}, + {{0xe1,0xbf,0x93}, {0xce,0xb9,0xcc,0x88,0xcc,0x81}}, + {{0xce,0x90}, {0xce,0xb9,0xcc,0x88,0xcc,0x8d}}, + {{0xe1,0xbf,0x97}, {0xce,0xb9,0xcc,0x88,0xcd,0x82}}, + {{0xce,0xaf}, {0xce,0xb9,0xcc,0x8d}}, + {{0xe1,0xbc,0xb0}, {0xce,0xb9,0xcc,0x93}}, + {{0xe1,0xbc,0xb2}, {0xce,0xb9,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbc,0xb4}, {0xce,0xb9,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbc,0xb6}, {0xce,0xb9,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbc,0xb1}, {0xce,0xb9,0xcc,0x94}}, + {{0xe1,0xbc,0xb3}, {0xce,0xb9,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbc,0xb5}, {0xce,0xb9,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbc,0xb7}, {0xce,0xb9,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0x96}, {0xce,0xb9,0xcd,0x82}}, + {{0xe1,0xbd,0xb8}, {0xce,0xbf,0xcc,0x80}}, + {{0xe1,0xbd,0xb9}, {0xce,0xbf,0xcc,0x81}}, + {{0xcf,0x8c}, {0xce,0xbf,0xcc,0x8d}}, + {{0xe1,0xbd,0x80}, {0xce,0xbf,0xcc,0x93}}, + {{0xe1,0xbd,0x82}, {0xce,0xbf,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbd,0x84}, {0xce,0xbf,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbd,0x81}, {0xce,0xbf,0xcc,0x94}}, + {{0xe1,0xbd,0x83}, {0xce,0xbf,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbd,0x85}, {0xce,0xbf,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbf,0xb4}, {0xce,0xbf,0xcd,0x85,0xcc,0x81}}, + {{0xe1,0xbf,0xa4}, {0xcf,0x81,0xcc,0x93}}, + {{0xe1,0xbf,0xa5}, {0xcf,0x81,0xcc,0x94}}, + {{0xe1,0xbd,0xba}, {0xcf,0x85,0xcc,0x80}}, + {{0xe1,0xbd,0xbb}, {0xcf,0x85,0xcc,0x81}}, + {{0xe1,0xbf,0xa1}, {0xcf,0x85,0xcc,0x84}}, + {{0xe1,0xbf,0xa0}, {0xcf,0x85,0xcc,0x86}}, + {{0xcf,0x8b}, {0xcf,0x85,0xcc,0x88}}, + {{0xe1,0xbf,0xa2}, {0xcf,0x85,0xcc,0x88,0xcc,0x80}}, + {{0xe1,0xbf,0xa3}, {0xcf,0x85,0xcc,0x88,0xcc,0x81}}, + {{0xce,0xb0}, {0xcf,0x85,0xcc,0x88,0xcc,0x8d}}, + {{0xe1,0xbf,0xa7}, {0xcf,0x85,0xcc,0x88,0xcd,0x82}}, + {{0xcf,0x8d}, {0xcf,0x85,0xcc,0x8d}}, + {{0xe1,0xbd,0x90}, {0xcf,0x85,0xcc,0x93}}, + {{0xe1,0xbd,0x92}, {0xcf,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbd,0x94}, {0xcf,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbd,0x96}, {0xcf,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbd,0x91}, {0xcf,0x85,0xcc,0x94}}, + {{0xe1,0xbd,0x93}, {0xcf,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbd,0x95}, {0xcf,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbd,0x97}, {0xcf,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0xa6}, {0xcf,0x85,0xcd,0x82}}, + {{0xe1,0xbd,0xbc}, {0xcf,0x89,0xcc,0x80}}, + {{0xe1,0xbd,0xbd}, {0xcf,0x89,0xcc,0x81}}, + {{0xcf,0x8e}, {0xcf,0x89,0xcc,0x8d}}, + {{0xe1,0xbd,0xa0}, {0xcf,0x89,0xcc,0x93}}, + {{0xe1,0xbd,0xa2}, {0xcf,0x89,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbd,0xa4}, {0xcf,0x89,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbd,0xa6}, {0xcf,0x89,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbd,0xa1}, {0xcf,0x89,0xcc,0x94}}, + {{0xe1,0xbd,0xa3}, {0xcf,0x89,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbd,0xa5}, {0xcf,0x89,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbd,0xa7}, {0xcf,0x89,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0xb6}, {0xcf,0x89,0xcd,0x82}}, + {{0xe1,0xbf,0xb3}, {0xcf,0x89,0xcd,0x85}}, + {{0xe1,0xbf,0xb2}, {0xcf,0x89,0xcd,0x85,0xcc,0x80}}, + {{0xe1,0xbe,0xa0}, {0xcf,0x89,0xcd,0x85,0xcc,0x93}}, + {{0xe1,0xbe,0xa2}, {0xcf,0x89,0xcd,0x85,0xcc,0x93,0xcc,0x80}}, + {{0xe1,0xbe,0xa4}, {0xcf,0x89,0xcd,0x85,0xcc,0x93,0xcc,0x81}}, + {{0xe1,0xbe,0xa6}, {0xcf,0x89,0xcd,0x85,0xcc,0x93,0xcd,0x82}}, + {{0xe1,0xbe,0xa1}, {0xcf,0x89,0xcd,0x85,0xcc,0x94}}, + {{0xe1,0xbe,0xa3}, {0xcf,0x89,0xcd,0x85,0xcc,0x94,0xcc,0x80}}, + {{0xe1,0xbe,0xa5}, {0xcf,0x89,0xcd,0x85,0xcc,0x94,0xcc,0x81}}, + {{0xe1,0xbe,0xa7}, {0xcf,0x89,0xcd,0x85,0xcc,0x94,0xcd,0x82}}, + {{0xe1,0xbf,0xb7}, {0xcf,0x89,0xcd,0x85,0xcd,0x82}}, + {{0xcf,0x94}, {0xcf,0x92,0xcc,0x88}}, + {{0xcf,0x93}, {0xcf,0x92,0xcc,0x8d}}, + {{0xd0,0x87}, {0xd0,0x86,0xcc,0x88}}, + {{0xd3,0x90}, {0xd0,0x90,0xcc,0x86}}, + {{0xd3,0x92}, {0xd0,0x90,0xcc,0x88}}, + {{0xd0,0x83}, {0xd0,0x93,0xcc,0x81}}, + {{0xd3,0x96}, {0xd0,0x95,0xcc,0x86}}, + {{0xd0,0x81}, {0xd0,0x95,0xcc,0x88}}, + {{0xd3,0x81}, {0xd0,0x96,0xcc,0x86}}, + {{0xd3,0x9c}, {0xd0,0x96,0xcc,0x88}}, + {{0xd3,0x9e}, {0xd0,0x97,0xcc,0x88}}, + {{0xd3,0xa2}, {0xd0,0x98,0xcc,0x84}}, + {{0xd0,0x99}, {0xd0,0x98,0xcc,0x86}}, + {{0xd3,0xa4}, {0xd0,0x98,0xcc,0x88}}, + {{0xd0,0x8c}, {0xd0,0x9a,0xcc,0x81}}, + {{0xd3,0xa6}, {0xd0,0x9e,0xcc,0x88}}, + {{0xd3,0xae}, {0xd0,0xa3,0xcc,0x84}}, + {{0xd0,0x8e}, {0xd0,0xa3,0xcc,0x86}}, + {{0xd3,0xb0}, {0xd0,0xa3,0xcc,0x88}}, + {{0xd3,0xb2}, {0xd0,0xa3,0xcc,0x8b}}, + {{0xd3,0xb4}, {0xd0,0xa7,0xcc,0x88}}, + {{0xd3,0xb8}, {0xd0,0xab,0xcc,0x88}}, + {{0xd3,0x91}, {0xd0,0xb0,0xcc,0x86}}, + {{0xd3,0x93}, {0xd0,0xb0,0xcc,0x88}}, + {{0xd1,0x93}, {0xd0,0xb3,0xcc,0x81}}, + {{0xd3,0x97}, {0xd0,0xb5,0xcc,0x86}}, + {{0xd1,0x91}, {0xd0,0xb5,0xcc,0x88}}, + {{0xd3,0x82}, {0xd0,0xb6,0xcc,0x86}}, + {{0xd3,0x9d}, {0xd0,0xb6,0xcc,0x88}}, + {{0xd3,0x9f}, {0xd0,0xb7,0xcc,0x88}}, + {{0xd3,0xa3}, {0xd0,0xb8,0xcc,0x84}}, + {{0xd0,0xb9}, {0xd0,0xb8,0xcc,0x86}}, + {{0xd3,0xa5}, {0xd0,0xb8,0xcc,0x88}}, + {{0xd1,0x9c}, {0xd0,0xba,0xcc,0x81}}, + {{0xd3,0xa7}, {0xd0,0xbe,0xcc,0x88}}, + {{0xd3,0xaf}, {0xd1,0x83,0xcc,0x84}}, + {{0xd1,0x9e}, {0xd1,0x83,0xcc,0x86}}, + {{0xd3,0xb1}, {0xd1,0x83,0xcc,0x88}}, + {{0xd3,0xb3}, {0xd1,0x83,0xcc,0x8b}}, + {{0xd3,0xb5}, {0xd1,0x87,0xcc,0x88}}, + {{0xd3,0xb9}, {0xd1,0x8b,0xcc,0x88}}, + {{0xd1,0x97}, {0xd1,0x96,0xcc,0x88}}, + {{0xd1,0xb6}, {0xd1,0xb4,0xcc,0x8f}}, + {{0xd1,0xb7}, {0xd1,0xb5,0xcc,0x8f}}, + {{0xef,0xac,0xae}, {0xd7,0x90,0xd6,0xb7}}, + {{0xef,0xac,0xaf}, {0xd7,0x90,0xd6,0xb8}}, + {{0xef,0xac,0xb0}, {0xd7,0x90,0xd6,0xbc}}, + {{0xef,0xac,0xb1}, {0xd7,0x91,0xd6,0xbc}}, + {{0xef,0xad,0x8c}, {0xd7,0x91,0xd6,0xbf}}, + {{0xef,0xac,0xb2}, {0xd7,0x92,0xd6,0xbc}}, + {{0xef,0xac,0xb3}, {0xd7,0x93,0xd6,0xbc}}, + {{0xef,0xac,0xb4}, {0xd7,0x94,0xd6,0xbc}}, + {{0xef,0xad,0x8b}, {0xd7,0x95,0xd6,0xb9}}, + {{0xef,0xac,0xb5}, {0xd7,0x95,0xd6,0xbc}}, + {{0xef,0xac,0xb6}, {0xd7,0x96,0xd6,0xbc}}, + {{0xef,0xac,0xb8}, {0xd7,0x98,0xd6,0xbc}}, + {{0xef,0xac,0xb9}, {0xd7,0x99,0xd6,0xbc}}, + {{0xef,0xac,0xba}, {0xd7,0x9a,0xd6,0xbc}}, + {{0xef,0xac,0xbb}, {0xd7,0x9b,0xd6,0xbc}}, + {{0xef,0xad,0x8d}, {0xd7,0x9b,0xd6,0xbf}}, + {{0xef,0xac,0xbc}, {0xd7,0x9c,0xd6,0xbc}}, + {{0xef,0xac,0xbe}, {0xd7,0x9e,0xd6,0xbc}}, + {{0xef,0xad,0x80}, {0xd7,0xa0,0xd6,0xbc}}, + {{0xef,0xad,0x81}, {0xd7,0xa1,0xd6,0xbc}}, + {{0xef,0xad,0x83}, {0xd7,0xa3,0xd6,0xbc}}, + {{0xef,0xad,0x84}, {0xd7,0xa4,0xd6,0xbc}}, + {{0xef,0xad,0x8e}, {0xd7,0xa4,0xd6,0xbf}}, + {{0xef,0xad,0x86}, {0xd7,0xa6,0xd6,0xbc}}, + {{0xef,0xad,0x87}, {0xd7,0xa7,0xd6,0xbc}}, + {{0xef,0xad,0x88}, {0xd7,0xa8,0xd6,0xbc}}, + {{0xef,0xad,0x89}, {0xd7,0xa9,0xd6,0xbc}}, + {{0xef,0xac,0xac}, {0xd7,0xa9,0xd6,0xbc,0xd7,0x81}}, + {{0xef,0xac,0xad}, {0xd7,0xa9,0xd6,0xbc,0xd7,0x82}}, + {{0xef,0xac,0xaa}, {0xd7,0xa9,0xd7,0x81}}, + {{0xef,0xac,0xab}, {0xd7,0xa9,0xd7,0x82}}, + {{0xef,0xad,0x8a}, {0xd7,0xaa,0xd6,0xbc}}, + {{0xef,0xac,0x9f}, {0xd7,0xb2,0xd6,0xb7}}, + {{0xe0,0xa5,0x98}, {0xe0,0xa4,0x95,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x99}, {0xe0,0xa4,0x96,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x9a}, {0xe0,0xa4,0x97,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x9b}, {0xe0,0xa4,0x9c,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x9c}, {0xe0,0xa4,0xa1,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x9d}, {0xe0,0xa4,0xa2,0xe0,0xa4,0xbc}}, + {{0xe0,0xa4,0xa9}, {0xe0,0xa4,0xa8,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x9e}, {0xe0,0xa4,0xab,0xe0,0xa4,0xbc}}, + {{0xe0,0xa5,0x9f}, {0xe0,0xa4,0xaf,0xe0,0xa4,0xbc}}, + {{0xe0,0xa4,0xb1}, {0xe0,0xa4,0xb0,0xe0,0xa4,0xbc}}, + {{0xe0,0xa4,0xb4}, {0xe0,0xa4,0xb3,0xe0,0xa4,0xbc}}, + {{0xe0,0xa7,0x9c}, {0xe0,0xa6,0xa1,0xe0,0xa6,0xbc}}, + {{0xe0,0xa7,0x9d}, {0xe0,0xa6,0xa2,0xe0,0xa6,0xbc}}, + {{0xe0,0xa6,0xb0}, {0xe0,0xa6,0xac,0xe0,0xa6,0xbc}}, + {{0xe0,0xa7,0x9f}, {0xe0,0xa6,0xaf,0xe0,0xa6,0xbc}}, + {{0xe0,0xa7,0x8b}, {0xe0,0xa7,0x87,0xe0,0xa6,0xbe}}, + {{0xe0,0xa7,0x8c}, {0xe0,0xa7,0x87,0xe0,0xa7,0x97}}, + {{0xe0,0xa9,0x99}, {0xe0,0xa8,0x96,0xe0,0xa8,0xbc}}, + {{0xe0,0xa9,0x9a}, {0xe0,0xa8,0x97,0xe0,0xa8,0xbc}}, + {{0xe0,0xa9,0x9b}, {0xe0,0xa8,0x9c,0xe0,0xa8,0xbc}}, + {{0xe0,0xa9,0x9c}, {0xe0,0xa8,0xa1,0xe0,0xa8,0xbc}}, + {{0xe0,0xa9,0x9e}, {0xe0,0xa8,0xab,0xe0,0xa8,0xbc}}, + {{0xe0,0xad,0x9c}, {0xe0,0xac,0xa1,0xe0,0xac,0xbc}}, + {{0xe0,0xad,0x9d}, {0xe0,0xac,0xa2,0xe0,0xac,0xbc}}, + {{0xe0,0xad,0x9f}, {0xe0,0xac,0xaf,0xe0,0xac,0xbc}}, + {{0xe0,0xad,0x8b}, {0xe0,0xad,0x87,0xe0,0xac,0xbe}}, + {{0xe0,0xad,0x88}, {0xe0,0xad,0x87,0xe0,0xad,0x96}}, + {{0xe0,0xad,0x8c}, {0xe0,0xad,0x87,0xe0,0xad,0x97}}, + {{0xe0,0xae,0x94}, {0xe0,0xae,0x92,0xe0,0xaf,0x97}}, + {{0xe0,0xaf,0x8a}, {0xe0,0xaf,0x86,0xe0,0xae,0xbe}}, + {{0xe0,0xaf,0x8c}, {0xe0,0xaf,0x86,0xe0,0xaf,0x97}}, + {{0xe0,0xaf,0x8b}, {0xe0,0xaf,0x87,0xe0,0xae,0xbe}}, + {{0xe0,0xb1,0x88}, {0xe0,0xb1,0x86,0xe0,0xb1,0x96}}, + {{0xe0,0xb3,0x80}, {0xe0,0xb2,0xbf,0xe0,0xb3,0x95}}, + {{0xe0,0xb3,0x8a}, {0xe0,0xb3,0x86,0xe0,0xb3,0x82}}, + {{0xe0,0xb3,0x8b}, {0xe0,0xb3,0x86,0xe0,0xb3,0x82,0xe0,0xb3,0x95}}, + {{0xe0,0xb3,0x87}, {0xe0,0xb3,0x86,0xe0,0xb3,0x95}}, + {{0xe0,0xb3,0x88}, {0xe0,0xb3,0x86,0xe0,0xb3,0x96}}, + {{0xe0,0xb5,0x8a}, {0xe0,0xb5,0x86,0xe0,0xb4,0xbe}}, + {{0xe0,0xb5,0x8c}, {0xe0,0xb5,0x86,0xe0,0xb5,0x97}}, + {{0xe0,0xb5,0x8b}, {0xe0,0xb5,0x87,0xe0,0xb4,0xbe}}, + {{0xe0,0xb8,0xb3}, {0xe0,0xb9,0x8d,0xe0,0xb8,0xb2}}, + {{0xe0,0xba,0xb3}, {0xe0,0xbb,0x8d,0xe0,0xba,0xb2}}, + {{0xe0,0xbd,0xa9}, {0xe0,0xbd,0x80,0xe0,0xbe,0xb5}}, + {{0xe0,0xbd,0x83}, {0xe0,0xbd,0x82,0xe0,0xbe,0xb7}}, + {{0xe0,0xbd,0x8d}, {0xe0,0xbd,0x8c,0xe0,0xbe,0xb7}}, + {{0xe0,0xbd,0x92}, {0xe0,0xbd,0x91,0xe0,0xbe,0xb7}}, + {{0xe0,0xbd,0x97}, {0xe0,0xbd,0x96,0xe0,0xbe,0xb7}}, + {{0xe0,0xbd,0x9c}, {0xe0,0xbd,0x9b,0xe0,0xbe,0xb7}}, + {{0xe0,0xbd,0xb3}, {0xe0,0xbd,0xb2,0xe0,0xbd,0xb1}}, + {{0xe0,0xbd,0xb5}, {0xe0,0xbd,0xb4,0xe0,0xbd,0xb1}}, + {{0xe0,0xbe,0x81}, {0xe0,0xbe,0x80,0xe0,0xbd,0xb1}}, + {{0xe0,0xbe,0xb9}, {0xe0,0xbe,0x90,0xe0,0xbe,0xb5}}, + {{0xe0,0xbe,0x93}, {0xe0,0xbe,0x92,0xe0,0xbe,0xb7}}, + {{0xe0,0xbe,0x9d}, {0xe0,0xbe,0x9c,0xe0,0xbe,0xb7}}, + {{0xe0,0xbe,0xa2}, {0xe0,0xbe,0xa1,0xe0,0xbe,0xb7}}, + {{0xe0,0xbe,0xa7}, {0xe0,0xbe,0xa6,0xe0,0xbe,0xb7}}, + {{0xe0,0xbe,0xac}, {0xe0,0xbe,0xab,0xe0,0xbe,0xb7}}, + {{0xe0,0xbd,0xb6}, {0xe0,0xbe,0xb2,0xe0,0xbe,0x80}}, + {{0xe0,0xbd,0xb7}, {0xe0,0xbe,0xb2,0xe0,0xbe,0x80,0xe0,0xbd,0xb1}}, + {{0xe0,0xbd,0xb8}, {0xe0,0xbe,0xb3,0xe0,0xbe,0x80}}, + {{0xe0,0xbd,0xb9}, {0xe0,0xbe,0xb3,0xe0,0xbe,0x80,0xe0,0xbd,0xb1}}, + {{0xe1,0xbf,0x8d}, {0xe1,0xbe,0xbf,0xcc,0x80}}, + {{0xe1,0xbf,0x8e}, {0xe1,0xbe,0xbf,0xcc,0x81}}, + {{0xe1,0xbf,0x8f}, {0xe1,0xbe,0xbf,0xcd,0x82}}, + {{0xe1,0xbf,0x9d}, {0xe1,0xbf,0xbe,0xcc,0x80}}, + {{0xe1,0xbf,0x9e}, {0xe1,0xbf,0xbe,0xcc,0x81}}, + {{0xe1,0xbf,0x9f}, {0xe1,0xbf,0xbe,0xcd,0x82}}, + {{0xe3,0x82,0x94}, {0xe3,0x81,0x86,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x8c}, {0xe3,0x81,0x8b,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x8e}, {0xe3,0x81,0x8d,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x90}, {0xe3,0x81,0x8f,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x92}, {0xe3,0x81,0x91,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x94}, {0xe3,0x81,0x93,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x96}, {0xe3,0x81,0x95,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x98}, {0xe3,0x81,0x97,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x9a}, {0xe3,0x81,0x99,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x9c}, {0xe3,0x81,0x9b,0xe3,0x82,0x99}}, + {{0xe3,0x81,0x9e}, {0xe3,0x81,0x9d,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xa0}, {0xe3,0x81,0x9f,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xa2}, {0xe3,0x81,0xa1,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xa5}, {0xe3,0x81,0xa4,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xa7}, {0xe3,0x81,0xa6,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xa9}, {0xe3,0x81,0xa8,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xb0}, {0xe3,0x81,0xaf,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xb1}, {0xe3,0x81,0xaf,0xe3,0x82,0x9a}}, + {{0xe3,0x81,0xb3}, {0xe3,0x81,0xb2,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xb4}, {0xe3,0x81,0xb2,0xe3,0x82,0x9a}}, + {{0xe3,0x81,0xb6}, {0xe3,0x81,0xb5,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xb7}, {0xe3,0x81,0xb5,0xe3,0x82,0x9a}}, + {{0xe3,0x81,0xb9}, {0xe3,0x81,0xb8,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xba}, {0xe3,0x81,0xb8,0xe3,0x82,0x9a}}, + {{0xe3,0x81,0xbc}, {0xe3,0x81,0xbb,0xe3,0x82,0x99}}, + {{0xe3,0x81,0xbd}, {0xe3,0x81,0xbb,0xe3,0x82,0x9a}}, + {{0xe3,0x82,0x9e}, {0xe3,0x82,0x9d,0xe3,0x82,0x99}}, + {{0xe3,0x83,0xb4}, {0xe3,0x82,0xa6,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xac}, {0xe3,0x82,0xab,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xae}, {0xe3,0x82,0xad,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xb0}, {0xe3,0x82,0xaf,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xb2}, {0xe3,0x82,0xb1,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xb4}, {0xe3,0x82,0xb3,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xb6}, {0xe3,0x82,0xb5,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xb8}, {0xe3,0x82,0xb7,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xba}, {0xe3,0x82,0xb9,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xbc}, {0xe3,0x82,0xbb,0xe3,0x82,0x99}}, + {{0xe3,0x82,0xbe}, {0xe3,0x82,0xbd,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x80}, {0xe3,0x82,0xbf,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x82}, {0xe3,0x83,0x81,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x85}, {0xe3,0x83,0x84,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x87}, {0xe3,0x83,0x86,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x89}, {0xe3,0x83,0x88,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x90}, {0xe3,0x83,0x8f,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x91}, {0xe3,0x83,0x8f,0xe3,0x82,0x9a}}, + {{0xe3,0x83,0x93}, {0xe3,0x83,0x92,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x94}, {0xe3,0x83,0x92,0xe3,0x82,0x9a}}, + {{0xe3,0x83,0x96}, {0xe3,0x83,0x95,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x97}, {0xe3,0x83,0x95,0xe3,0x82,0x9a}}, + {{0xe3,0x83,0x99}, {0xe3,0x83,0x98,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x9a}, {0xe3,0x83,0x98,0xe3,0x82,0x9a}}, + {{0xe3,0x83,0x9c}, {0xe3,0x83,0x9b,0xe3,0x82,0x99}}, + {{0xe3,0x83,0x9d}, {0xe3,0x83,0x9b,0xe3,0x82,0x9a}}, + {{0xe3,0x83,0xb7}, {0xe3,0x83,0xaf,0xe3,0x82,0x99}}, + {{0xe3,0x83,0xb8}, {0xe3,0x83,0xb0,0xe3,0x82,0x99}}, + {{0xe3,0x83,0xb9}, {0xe3,0x83,0xb1,0xe3,0x82,0x99}}, + {{0xe3,0x83,0xba}, {0xe3,0x83,0xb2,0xe3,0x82,0x99}}, + {{0xe3,0x83,0xbe}, {0xe3,0x83,0xbd,0xe3,0x82,0x99}}, +}; +#endif /* UNICODE_NORMALIZATION */ +#endif /* UTF8_INPUT_ENABLE */ + +#ifdef SHIFTJIS_CP932 +const unsigned short shiftjis_cp932[3][189] = { + { + 0xEEEF, 0xEEF0, 0xEEF1, 0xEEF2, 0xEEF3, 0xEEF4, 0xEEF5, 0xEEF6, + 0xEEF7, 0xEEF8, 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, + 0x875A, 0x875B, 0x875C, 0x875D, 0x81CA, 0xEEFA, 0xEEFB, 0xEEFC, + 0x878A, 0x8782, 0x8784, 0x81E6, 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, 0, + 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, 0xEDA1, 0xEDA2, 0xEDA3, + 0xEDA4, 0xEDA5, 0xEDA6, 0xEDA7, 0xEDA8, 0xEDA9, 0xEDAA, 0xEDAB, + 0xEDAC, 0xEDAD, 0xEDAE, 0xEDAF, 0xEDB0, 0xEDB1, 0xEDB2, 0xEDB3, + 0xEDB4, 0xEDB5, 0xEDB6, 0xEDB7, 0xEDB8, 0xEDB9, 0xEDBA, 0xEDBB, + 0xEDBC, 0xEDBD, 0xEDBE, 0xEDBF, 0xEDC0, 0xEDC1, 0xEDC2, 0xEDC3, + 0xEDC4, 0xEDC5, 0xEDC6, 0xEDC7, 0xEDC8, 0xEDC9, 0xEDCA, 0xEDCB, + 0xEDCC, 0xEDCD, 0xEDCE, 0xEDCF, 0xEDD0, 0xEDD1, 0xEDD2, 0xEDD3, + 0xEDD4, 0xEDD5, 0xEDD6, 0xEDD7, 0xEDD8, 0xEDD9, 0xEDDA, 0xEDDB, + 0xEDDC, 0xEDDD, 0xEDDE, 0xEDDF, 0xEDE0, + }, + { + 0xEDE1, 0xEDE2, 0xEDE3, 0xEDE4, 0xEDE5, 0xEDE6, 0xEDE7, 0xEDE8, + 0xEDE9, 0xEDEA, 0xEDEB, 0xEDEC, 0xEDED, 0xEDEE, 0xEDEF, 0xEDF0, + 0xEDF1, 0xEDF2, 0xEDF3, 0xEDF4, 0xEDF5, 0xEDF6, 0xEDF7, 0xEDF8, + 0xEDF9, 0xEDFA, 0xEDFB, 0xEDFC, 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, 0, + 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, 0xEEA1, 0xEEA2, 0xEEA3, + 0xEEA4, 0xEEA5, 0xEEA6, 0xEEA7, 0xEEA8, 0xEEA9, 0xEEAA, 0xEEAB, + 0xEEAC, 0xEEAD, 0xEEAE, 0xEEAF, 0xEEB0, 0xEEB1, 0xEEB2, 0xEEB3, + 0xEEB4, 0xEEB5, 0xEEB6, 0xEEB7, 0xEEB8, 0xEEB9, 0xEEBA, 0xEEBB, + 0xEEBC, 0xEEBD, 0xEEBE, 0xEEBF, 0xEEC0, 0xEEC1, 0xEEC2, 0xEEC3, + 0xEEC4, 0xEEC5, 0xEEC6, 0xEEC7, 0xEEC8, 0xEEC9, 0xEECA, 0xEECB, + 0xEECC, 0xEECD, 0xEECE, 0xEECF, 0xEED0, 0xEED1, 0xEED2, 0xEED3, + 0xEED4, 0xEED5, 0xEED6, 0xEED7, 0xEED8, 0xEED9, 0xEEDA, 0xEEDB, + 0xEEDC, 0xEEDD, 0xEEDE, 0xEEDF, 0xEEE0, + }, + { + 0xEEE1, 0xEEE2, 0xEEE3, 0xEEE4, 0xEEE5, 0xEEE6, 0xEEE7, 0xEEE8, + 0xEEE9, 0xEEEA, 0xEEEB, 0xEEEC, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + }, +}; +const unsigned short cp932inv[2][189] = { + { + 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, 0, + 0xFA9C, 0xFA9D, 0xFA9E, 0xFA9F, 0xFAA0, 0xFAA1, 0xFAA2, 0xFAA3, + 0xFAA4, 0xFAA5, 0xFAA6, 0xFAA7, 0xFAA8, 0xFAA9, 0xFAAA, 0xFAAB, + 0xFAAC, 0xFAAD, 0xFAAE, 0xFAAF, 0xFAB0, 0xFAB1, 0xFAB2, 0xFAB3, + 0xFAB4, 0xFAB5, 0xFAB6, 0xFAB7, 0xFAB8, 0xFAB9, 0xFABA, 0xFABB, + 0xFABC, 0xFABD, 0xFABE, 0xFABF, 0xFAC0, 0xFAC1, 0xFAC2, 0xFAC3, + 0xFAC4, 0xFAC5, 0xFAC6, 0xFAC7, 0xFAC8, 0xFAC9, 0xFACA, 0xFACB, + 0xFACC, 0xFACD, 0xFACE, 0xFACF, 0xFAD0, 0xFAD1, 0xFAD2, 0xFAD3, + 0xFAD4, 0xFAD5, 0xFAD6, 0xFAD7, 0xFAD8, 0xFAD9, 0xFADA, 0xFADB, + 0xFADC, 0xFADD, 0xFADE, 0xFADF, 0xFAE0, 0xFAE1, 0xFAE2, 0xFAE3, + 0xFAE4, 0xFAE5, 0xFAE6, 0xFAE7, 0xFAE8, 0xFAE9, 0xFAEA, 0xFAEB, + 0xFAEC, 0xFAED, 0xFAEE, 0xFAEF, 0xFAF0, 0xFAF1, 0xFAF2, 0xFAF3, + 0xFAF4, 0xFAF5, 0xFAF6, 0xFAF7, 0xFAF8, 0xFAF9, 0xFAFA, 0xFAFB, + 0xFAFC, 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, 0, + 0xFB9C, 0xFB9D, 0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA2, 0xFBA3, + 0xFBA4, 0xFBA5, 0xFBA6, 0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, 0xFBAB, + 0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF, 0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3, + 0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8, 0xFBB9, 0xFBBA, 0xFBBB, + 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1, 0xFBC2, 0xFBC3, + 0xFBC4, 0xFBC5, 0xFBC6, 0xFBC7, 0xFBC8, 0xFBC9, 0xFBCA, 0xFBCB, + 0xFBCC, 0xFBCD, 0xFBCE, 0xFBCF, 0xFBD0, 0xFBD1, 0xFBD2, 0xFBD3, + 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, 0xFBDB, + 0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3, + 0xFBE4, 0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEB, + 0xFBEC, 0xFBED, 0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, 0xFBF3, + 0xFBF4, 0xFBF5, 0xFBF6, 0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB, + 0xFBFC, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46, + 0xFC47, 0xFC48, 0xFC49, 0xFC4A, 0xFC4B, 0, 0, 0xFA40, + 0xFA41, 0xFA42, 0xFA43, 0xFA44, 0xFA45, 0xFA46, 0xFA47, 0xFA48, + 0xFA49, 0x81CA, 0xFA55, 0xFA56, 0xFA57, + }, +}; +#endif /* SHIFTJIS_CP932 */ + +#ifdef X0212_ENABLE +const unsigned short shiftjis_x0212[3][189] = { + { + 0xF373, 0xF374, 0xF375, 0xF376, 0xF377, 0xF378, 0xF379, 0xF37A, + 0xF37B, 0xF37C, 0xF37D, 0xF37E, 0xF421, 0xF422, 0xF423, 0xF424, + 0xF425, 0xF426, 0xF427, 0xF428, 0x224C, 0xA243, 0xF429, 0xF42A, + 0xF42B, 0xF42C, 0xF42D, 0x2268, 0xD463, 0xDC5F, 0xE469, 0xE378, + 0xD921, 0xB13B, 0xF42E, 0xC22D, 0xC37C, 0xE450, 0xC23F, 0xBC74, + 0xB029, 0xB048, 0xF42F, 0xB052, 0xB054, 0xB063, 0xB06E, 0xB127, + 0xB123, 0xB12C, 0xB129, 0xB13E, 0xB15F, 0xB158, 0xB148, 0xB157, + 0xB163, 0xB174, 0xB161, 0xB223, 0xF430, 0xB23B, 0xB266, 0, + 0xB26D, 0xB275, 0xB27C, 0xF431, 0xB335, 0xB358, 0xB35B, 0xB365, + 0xB36E, 0xB37B, 0xF432, 0xF433, 0xB440, 0xB447, 0xB450, 0xB45E, + 0xF434, 0xB52A, 0xF435, 0xB52F, 0xB544, 0xB568, 0xF436, 0xB742, + 0xB764, 0xB768, 0xB767, 0xF437, 0xF438, 0xF439, 0xB84E, 0xB861, + 0xB875, 0xB877, 0xB878, 0xB87C, 0xB92F, 0xB937, 0xBA3E, 0xBA5B, + 0xCD2A, 0xBA61, 0xF43A, 0xBA6B, 0xBB33, 0xBB38, 0xF43B, 0xBB4A, + 0xF43C, 0xF43D, 0xBB50, 0xBB5E, 0xBB74, 0xBB75, 0xBB79, 0xBC64, + 0xBC6D, 0xBC7E, 0xF43E, 0xBD42, 0xBD67, 0xF43F, 0xBD70, 0xBE30, + 0xBE2C, 0xF440, 0xBE33, 0xBE3D, 0xBE4D, 0xBE49, 0xBE64, 0xBF28, + 0xBF49, 0xC044, 0xC064, 0xC074, 0xC126, 0xF441, 0xC175, 0xC17C, + 0xF442, 0xC178, 0xC22B, 0xC221, 0xC225, 0xF443, 0xC238, 0xC23A, + 0xF444, 0xC244, 0xC252, 0xC257, 0xC25B, 0xC25E, 0xC26D, 0xC270, + 0xF445, 0xC321, 0xC335, 0xC349, 0xC339, 0xF446, 0xC358, 0xC37E, + 0xF447, 0xC44C, 0xF448, 0xC459, 0xC46A, 0xC47D, 0xF449, 0xC527, + 0xC535, 0xC536, 0xF44A, 0xC555, 0xC638, 0xC657, 0xC660, 0xC66A, + 0xC663, 0xC721, 0xC72B, 0xC747, 0xC743, + }, + { + 0xC74B, 0xC74F, 0xC759, 0xF44B, 0xF44C, 0xC766, 0xC76E, 0xC77C, + 0xC76B, 0xC770, 0xC831, 0xC865, 0xC878, 0xC926, 0xC92B, 0xC92D, + 0xF44D, 0xC94A, 0xC953, 0xC969, 0xC963, 0xC97C, 0xC974, 0xC975, + 0xF44E, 0xCA33, 0xCA3D, 0xCA6F, 0xCA71, 0xCB2E, 0xF44F, 0xCB4A, + 0xCB66, 0xCB6A, 0xCB70, 0xCB74, 0xCB6E, 0xCC25, 0xCB79, 0xCC2B, + 0xCC2E, 0xCC2D, 0xCC32, 0xCC42, 0xCC50, 0xCC59, 0xF450, 0xCD3B, + 0xF451, 0xCE3B, 0xF452, 0xCE3A, 0xCE43, 0xF453, 0xCE72, 0xB35D, + 0xCF55, 0xCF62, 0xCF69, 0xCF6D, 0xF454, 0xF455, 0xF456, 0, + 0xF457, 0xD065, 0xF458, 0xD069, 0xD168, 0xF459, 0xF45A, 0xD16C, + 0xD23B, 0xF45B, 0xD361, 0xD368, 0xD427, 0xF45C, 0xF45D, 0xD454, + 0xD472, 0xD52E, 0xF45E, 0xD75E, 0xF45F, 0xD822, 0xD837, 0xD841, + 0xD851, 0xD874, 0xD946, 0xD948, 0xD951, 0xF460, 0xF461, 0xF462, + 0xF463, 0xF464, 0xDC53, 0xDD48, 0xDD54, 0xDD6A, 0xDD7A, 0xDE24, + 0xDE30, 0xF465, 0xDE35, 0xDE4B, 0xF466, 0xDF39, 0xF467, 0xDF43, + 0xF468, 0xF469, 0xE059, 0xF46A, 0xF46B, 0xE162, 0xF46C, 0xF46D, + 0xF46E, 0xE247, 0xE328, 0xE326, 0xE329, 0xE32F, 0xE330, 0xE32A, + 0xE32B, 0xE33C, 0xE341, 0xE33F, 0xE355, 0xE358, 0xE356, 0xE35F, + 0xE363, 0xE361, 0xE354, 0xE369, 0xE426, 0xE371, 0xE372, 0xE44B, + 0xE441, 0xE443, 0xE43E, 0xF46F, 0xE440, 0xE447, 0xE43F, 0xE460, + 0xE45E, 0xE451, 0xF470, 0xE45C, 0xE452, 0xE45B, 0xE454, 0xE47A, + 0xE46F, 0xE533, 0xE53F, 0xE549, 0xE550, 0xE562, 0xE56A, 0xE56B, + 0xF471, 0xF472, 0xF473, 0xE668, 0xE66F, 0xE72C, 0xF474, 0xE72E, + 0xF475, 0xE731, 0xF476, 0xE732, 0xE831, 0xE836, 0xF477, 0xF478, + 0xE85D, 0xF479, 0xF47A, 0xE951, 0xF47B, + }, + { + 0xE96D, 0xEA4D, 0xF47C, 0xEA5B, 0xEA66, 0xEA6A, 0xEB25, 0xEB7B, + 0xEB7A, 0xF47D, 0xEC56, 0xF47E, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + }, +}; + +static const unsigned short x0212_shiftjis_A2[] = { + 0x819F, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x8143, 0, 0, 0x8150, 0, 0, 0x8160, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B0[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0xFA68, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFA69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFA6B, 0, 0xFA6C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA6D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFA6E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B1[] = { + 0, 0, 0xFA70, 0, 0, 0, 0xFA6F, + 0, 0xFA72, 0, 0, 0xFA71, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA61, 0, 0, 0xFA73, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFA76, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFA77, + 0xFA75, 0, 0, 0, 0, 0, 0, 0xFA74, + 0, 0xFA7A, 0, 0xFA78, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFA79, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B2[] = { + 0, 0, 0xFA7B, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA7D, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFA7E, 0, + 0, 0, 0, 0, 0, 0xFA80, 0, 0, + 0, 0, 0, 0, 0, 0xFA81, 0, 0, + 0, 0, 0, 0, 0xFA82, 0, 0, +}; +static const unsigned short x0212_shiftjis_B3[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFA84, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFA85, 0, 0, 0xFA86, 0, 0xFB77, 0, 0, + 0, 0, 0, 0, 0, 0xFA87, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFA88, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA89, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B4[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFA8C, 0, 0, 0, 0, 0, 0, 0xFA8D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFA8E, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFA8F, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B5[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFA91, 0, 0, 0, 0, 0xFA93, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFA94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFA95, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B7[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFA97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFA98, 0, 0, 0xFA9A, + 0xFA99, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_B8[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFA9E, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFA9F, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAA0, 0, 0xFAA1, + 0xFAA2, 0, 0, 0, 0xFAA3, 0, 0, +}; +static const unsigned short x0212_shiftjis_B9[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFAA4, + 0, 0, 0, 0, 0, 0, 0, 0xFAA5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_BA[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFAA6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFAA7, 0, 0, 0, 0, + 0, 0xFAA9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFAAB, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_BB[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFAAC, 0, 0, 0, 0, + 0xFAAD, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFAAF, 0, 0, 0, 0, 0, + 0xFAB2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFAB3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFAB4, 0xFAB5, 0, 0, + 0, 0xFAB6, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_BC[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFAB7, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAB8, 0, 0, + 0, 0, 0, 0, 0xFA67, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFAB9, +}; +static const unsigned short x0212_shiftjis_BD[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFABB, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFABC, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFABE, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_BE[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFAC0, 0, 0, 0, + 0xFABF, 0, 0, 0xFAC2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAC3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFAC5, 0, 0, 0, 0xFAC4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFAC6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_BF[] = { + 0, 0, 0, 0, 0, 0, 0, + 0xFAC7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFAC8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_C0[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFAC9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFACA, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFACB, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_C1[] = { + 0, 0, 0, 0, 0, 0xFACC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFACE, 0, 0, + 0xFAD1, 0, 0, 0, 0xFACF, 0, 0, +}; +static const unsigned short x0212_shiftjis_C2[] = { + 0xFAD3, 0, 0, 0, 0xFAD4, 0, 0, + 0, 0, 0, 0xFAD2, 0, 0xFA63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFAD6, 0, 0xFAD7, 0, 0, 0, 0, 0xFA66, + 0, 0, 0, 0, 0xFAD9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFADA, 0, 0, 0, 0, 0xFADB, + 0, 0, 0, 0xFADC, 0, 0, 0xFADD, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFADE, 0, 0, + 0xFADF, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_C3[] = { + 0xFAE1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAE2, 0, 0, + 0, 0xFAE4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFAE3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFAE6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFA64, 0, 0xFAE7, +}; +static const unsigned short x0212_shiftjis_C4[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFAE9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFAEB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFAEC, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAED, 0, +}; +static const unsigned short x0212_shiftjis_C5[] = { + 0, 0, 0, 0, 0, 0, 0xFAEF, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAF0, 0xFAF1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFAF3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_C6[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFAF4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFAF5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFAF6, 0, 0, 0xFAF8, 0, 0, 0, 0, + 0, 0, 0xFAF7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_C7[] = { + 0xFAF9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFAFA, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFAFC, 0, 0, 0, 0xFAFB, + 0, 0, 0, 0xFB40, 0, 0, 0, 0xFB41, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB42, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFB45, 0, + 0, 0, 0, 0xFB48, 0, 0, 0xFB46, 0, + 0xFB49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFB47, 0, 0, +}; +static const unsigned short x0212_shiftjis_C8[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB4A, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFB4B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFB4C, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_C9[] = { + 0, 0, 0, 0, 0, 0xFB4D, 0, + 0, 0, 0, 0xFB4E, 0, 0xFB4F, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB51, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFB52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFB54, 0, 0, 0, 0, + 0, 0xFB53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFB56, 0xFB57, 0, 0, + 0, 0, 0, 0, 0xFB55, 0, 0, +}; +static const unsigned short x0212_shiftjis_CA[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFB59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFB5A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFB5B, + 0, 0xFB5C, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_CB[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFB5D, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB5F, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFB60, 0, + 0, 0, 0xFB61, 0, 0, 0, 0xFB64, 0, + 0xFB62, 0, 0, 0, 0xFB63, 0, 0, 0, + 0, 0xFB66, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_CC[] = { + 0, 0, 0, 0, 0xFB65, 0, 0, + 0, 0, 0, 0xFB67, 0, 0xFB69, 0xFB68, 0, + 0, 0, 0xFB6A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB6B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFB6C, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB6D, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_CD[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFAA8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFB6F, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_CE[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB73, 0xFB71, 0, 0, 0, 0, + 0, 0, 0, 0xFB74, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB76, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_CF[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFB78, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB79, 0, 0, 0, 0, 0, + 0, 0xFB7A, 0, 0, 0, 0xFB7B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D0[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFB81, 0, 0, + 0, 0xFB83, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D1[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFB84, 0, 0, 0, 0xFB87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D2[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFB88, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D3[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB8A, 0, 0, 0, 0, 0, 0, + 0xFB8B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D4[] = { + 0, 0, 0, 0, 0, 0, 0xFB8C, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFB8F, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA5C, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFB90, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D5[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFB91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D7[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFB93, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D8[] = { + 0, 0xFB95, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFB96, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB97, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB98, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFB99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_D9[] = { + 0xFA60, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFB9A, 0, + 0xFB9B, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFB9C, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_DC[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFBA2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFA5D, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_DD[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFBA3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFBA4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFBA5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFBA6, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_DE[] = { + 0, 0, 0, 0xFBA7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFBA8, 0, 0, 0, 0, 0xFBAA, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFBAB, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_DF[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFBAD, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFBAF, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E0[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFBB2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E1[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFBB5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E2[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFBB9, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E3[] = { + 0, 0, 0, 0, 0, 0xFBBB, 0, + 0xFBBA, 0xFBBC, 0xFBBF, 0xFBC0, 0, 0, 0, 0xFBBD, + 0xFBBE, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFBC1, 0, 0, 0xFBC3, + 0, 0xFBC2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFBCA, 0xFBC4, 0xFBC6, 0, + 0xFBC5, 0, 0, 0, 0, 0, 0, 0xFBC7, + 0, 0xFBC9, 0, 0xFBC8, 0, 0, 0, 0, + 0, 0xFBCB, 0, 0, 0, 0, 0, 0, + 0, 0xFBCD, 0xFBCE, 0, 0, 0, 0, 0, + 0xFA5F, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E4[] = { + 0, 0, 0, 0, 0, 0xFBCC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFBD2, 0xFBD6, + 0xFBD4, 0xFBD0, 0, 0xFBD1, 0, 0, 0, 0xFBD5, + 0, 0, 0, 0xFBCF, 0, 0, 0, 0, + 0xFA65, 0xFBD9, 0xFBDC, 0, 0xFBDE, 0, 0, 0, + 0, 0, 0, 0xFBDD, 0xFBDB, 0, 0xFBD8, 0, + 0xFBD7, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFA5E, 0, 0, 0, 0, 0, 0xFBE0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFBDF, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E5[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFBE1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0xFBE2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFBE3, 0, 0, 0, 0, 0, 0, + 0xFBE4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFBE5, 0, 0, 0, 0, 0, + 0, 0, 0xFBE6, 0xFBE7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E6[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0xFBEB, 0, 0, 0, 0, 0, 0, 0xFBEC, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E7[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0xFBED, 0, 0xFBEF, 0, + 0, 0xFBF1, 0xFBF3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E8[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFBF4, 0, 0, 0, 0, 0xFBF5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFBF8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_E9[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0xFBFB, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFC40, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_EA[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0xFC41, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFC43, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFC44, 0, + 0, 0, 0xFC45, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_EB[] = { + 0, 0, 0, 0, 0xFC46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0xFC48, 0xFC47, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_EC[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0xFC4A, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, +}; +static const unsigned short x0212_shiftjis_F3[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xFA40, 0xFA41, 0xFA42, 0xFA43, 0xFA44, + 0xFA45, 0xFA46, 0xFA47, 0xFA48, 0xFA49, 0xFA4A, 0xFA4B, +}; +static const unsigned short x0212_shiftjis_F4[] = { + 0xFA4C, 0xFA4D, 0xFA4E, 0xFA4F, 0xFA50, 0xFA51, 0xFA52, + 0xFA53, 0xFA56, 0xFA57, 0xFA58, 0xFA59, 0xFA5A, 0xFA62, 0xFA6A, + 0xFA7C, 0xFA83, 0xFA8A, 0xFA8B, 0xFA90, 0xFA92, 0xFA96, 0xFA9B, + 0xFA9C, 0xFA9D, 0xFAAA, 0xFAAE, 0xFAB0, 0xFAB1, 0xFABA, 0xFABD, + 0xFAC1, 0xFACD, 0xFAD0, 0xFAD5, 0xFAD8, 0xFAE0, 0xFAE5, 0xFAE8, + 0xFAEA, 0xFAEE, 0xFAF2, 0xFB43, 0xFB44, 0xFB50, 0xFB58, 0xFB5E, + 0xFB6E, 0xFB70, 0xFB72, 0xFB75, 0xFB7C, 0xFB7D, 0xFB7E, 0xFB80, + 0xFB82, 0xFB85, 0xFB86, 0xFB89, 0xFB8D, 0xFB8E, 0xFB92, 0xFB94, + 0xFB9D, 0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA9, 0xFBAC, 0xFBAE, + 0xFBB0, 0xFBB1, 0xFBB3, 0xFBB4, 0xFBB6, 0xFBB7, 0xFBB8, 0xFBD3, + 0xFBDA, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEE, 0xFBF0, 0xFBF2, 0xFBF6, + 0xFBF7, 0xFBF9, 0xFBFA, 0xFBFC, 0xFC42, 0xFC49, 0xFC4B, +}; +const unsigned short *const x0212_shiftjis[] = { + 0, x0212_shiftjis_A2, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + x0212_shiftjis_B0, x0212_shiftjis_B1, x0212_shiftjis_B2, x0212_shiftjis_B3, + x0212_shiftjis_B4, x0212_shiftjis_B5, 0, x0212_shiftjis_B7, + x0212_shiftjis_B8, x0212_shiftjis_B9, x0212_shiftjis_BA, x0212_shiftjis_BB, + x0212_shiftjis_BC, x0212_shiftjis_BD, x0212_shiftjis_BE, x0212_shiftjis_BF, + x0212_shiftjis_C0, x0212_shiftjis_C1, x0212_shiftjis_C2, x0212_shiftjis_C3, + x0212_shiftjis_C4, x0212_shiftjis_C5, x0212_shiftjis_C6, x0212_shiftjis_C7, + x0212_shiftjis_C8, x0212_shiftjis_C9, x0212_shiftjis_CA, x0212_shiftjis_CB, + x0212_shiftjis_CC, x0212_shiftjis_CD, x0212_shiftjis_CE, x0212_shiftjis_CF, + x0212_shiftjis_D0, x0212_shiftjis_D1, x0212_shiftjis_D2, x0212_shiftjis_D3, + x0212_shiftjis_D4, x0212_shiftjis_D5, 0, x0212_shiftjis_D7, + x0212_shiftjis_D8, x0212_shiftjis_D9, 0, 0, + x0212_shiftjis_DC, x0212_shiftjis_DD, x0212_shiftjis_DE, x0212_shiftjis_DF, + x0212_shiftjis_E0, x0212_shiftjis_E1, x0212_shiftjis_E2, x0212_shiftjis_E3, + x0212_shiftjis_E4, x0212_shiftjis_E5, x0212_shiftjis_E6, x0212_shiftjis_E7, + x0212_shiftjis_E8, x0212_shiftjis_E9, x0212_shiftjis_EA, x0212_shiftjis_EB, + x0212_shiftjis_EC, 0, 0, 0, + 0, 0, 0, x0212_shiftjis_F3, + x0212_shiftjis_F4, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, +}; +#endif /* X0212_ENABLE */ diff --git a/utf8tbl.h b/utf8tbl.h new file mode 100644 index 0000000..96b61ed --- /dev/null +++ b/utf8tbl.h @@ -0,0 +1,72 @@ +/* + * utf8tbl.h - Header file for Convertion Table + * + */ + +#ifndef _UTF8TBL_H_ +#define _UTF8TBL_H_ + +#ifdef UTF8_OUTPUT_ENABLE +#define sizeof_euc_to_utf8_1byte 94 +#define sizeof_euc_to_utf8_2bytes 94 +extern const unsigned short euc_to_utf8_1byte[]; +extern const unsigned short *const euc_to_utf8_2bytes[]; +extern const unsigned short *const euc_to_utf8_2bytes_ms[]; +extern const unsigned short *const euc_to_utf8_2bytes_mac[]; +extern const unsigned short *const euc_to_utf8_2bytes_x0213[]; +extern const unsigned short *const x0212_to_utf8_2bytes[]; +extern const unsigned short *const x0212_to_utf8_2bytes_x0213[]; +#define sizeof_x0213_combining_chars 5 +#define sizeof_x0213_combining_table 25 +#define sizeof_x0213_1_surrogate_table 26 +#define sizeof_x0213_2_surrogate_table 277 +extern const unsigned short x0213_combining_chars[sizeof_x0213_combining_chars]; +extern const unsigned short x0213_combining_table[sizeof_x0213_combining_table][3]; +extern const unsigned short x0213_1_surrogate_table[sizeof_x0213_1_surrogate_table][3]; +extern const unsigned short x0213_2_surrogate_table[sizeof_x0213_2_surrogate_table][3]; +#endif /* UTF8_OUTPUT_ENABLE */ + +#ifdef UTF8_INPUT_ENABLE +#define sizeof_utf8_to_euc_C2 64 +#define sizeof_utf8_to_euc_E5B8 64 +#define sizeof_utf8_to_euc_2bytes 112 +#define sizeof_utf8_to_euc_3bytes 16 +extern const unsigned short *const utf8_to_euc_2bytes[]; +extern const unsigned short *const utf8_to_euc_2bytes_ms[]; +extern const unsigned short *const utf8_to_euc_2bytes_932[]; +extern const unsigned short *const utf8_to_euc_2bytes_mac[]; +extern const unsigned short *const utf8_to_euc_2bytes_x0213[]; +extern const unsigned short *const *const utf8_to_euc_3bytes[]; +extern const unsigned short *const *const utf8_to_euc_3bytes_ms[]; +extern const unsigned short *const *const utf8_to_euc_3bytes_932[]; +extern const unsigned short *const *const utf8_to_euc_3bytes_mac[]; +extern const unsigned short *const *const utf8_to_euc_3bytes_x0213[]; +#endif /* UTF8_INPUT_ENABLE */ + +#ifdef UNICODE_NORMALIZATION + +#define NORMALIZATION_TABLE_LENGTH 942 +#define NORMALIZATION_TABLE_NFC_LENGTH 3 +#define NORMALIZATION_TABLE_NFD_LENGTH 9 +struct normalization_pair { + const unsigned char nfc[NORMALIZATION_TABLE_NFC_LENGTH]; + const unsigned char nfd[NORMALIZATION_TABLE_NFD_LENGTH]; +}; +extern const struct normalization_pair normalization_table[]; +#endif + +#ifdef SHIFTJIS_CP932 +#define CP932_TABLE_BEGIN 0xFA +#define CP932_TABLE_END 0xFC +extern const unsigned short shiftjis_cp932[3][189]; +#define CP932INV_TABLE_BEGIN 0xED +#define CP932INV_TABLE_END 0xEE +extern const unsigned short cp932inv[2][189]; +#endif /* SHIFTJIS_CP932 */ + +#ifdef X0212_ENABLE +extern const unsigned short shiftjis_x0212[3][189]; +extern const unsigned short *const x0212_shiftjis[]; +#endif /* X0212_ENABLE */ + +#endif diff --git a/version.rc b/version.rc new file mode 100755 index 0000000..090c27b --- /dev/null +++ b/version.rc @@ -0,0 +1,34 @@ +#include + +1 VERSIONINFO +FILEVERSION 2,1,4,0 +PRODUCTVERSION 2,1,4,0 +FILEFLAGSMASK 0x3fL +#ifdef _DEBUG +FILEFLAGS 0x1L +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS__WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE 0x0L +{ + BLOCK "StringFileInfo" + { + BLOCK "041103A4" + { + VALUE "CompanyName", "project nkf\0" + VALUE "FileDescription", "Network Kanji Filter\0" + VALUE "FileVersion", "2.1.4\0" + VALUE "InternalName", "nkf\0" + VALUE "LegalCopyright", "Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)\0" + VALUE "OriginalFilename", "nkf.c\0" + VALUE "ProductName", "nkf.exe\0" + VALUE "ProductVersion", "2.1.4\0" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x411, 932 + } +}