aboutsummaryrefslogtreecommitdiff
path: root/iconvdata
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-12-08 13:12:47 +0000
committerUlrich Drepper <drepper@redhat.com>1998-12-08 13:12:47 +0000
commit5c2a0669c1c8a45cb57b4f7cbbd981cd4ce20aa7 (patch)
tree3369e0b05dd41d3ccdded98c8d469361b2f258fc /iconvdata
parentb38bb8ca8c9a7652087405d851e9ba6c55305854 (diff)
downloadglibc-5c2a0669c1c8a45cb57b4f7cbbd981cd4ce20aa7.tar.xz
glibc-5c2a0669c1c8a45cb57b4f7cbbd981cd4ce20aa7.zip
Update.
1998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de> * posix/regex.c: Get regex.h from system path, not from local directory. * posix/regex.h: Move internal interfaces to ... * include/regex.h: ...here. * posix/unistd.h: Move internal interfaces to ... * include/unistd.h: ...here. * math/math.h: Move internal interfaces to ... * include/math.h: ...here. * posix/glob.h: Move internal interfaces to ... * include/glob.h: ...here. * string/string.h: Move internal interfaces to ... * include/string.h: ...here. * time/sys/time.h: Move internal interfaces to ... * include/sys/time.h: ...here. * resolv/netdb.h: Move internal interfaces to ... * include/netdb.h: ...here. 1998-12-08 Ulrich Drepper <drepper@cygnus.com> * iconvdata/eucjp.c: Handle Yen in overscore conversion from ISO 10646 correctly. * iconvdata/iso-2022-jp.c: Handle Kana in 2022-JP2 correctly Fix various bugs in conversion routine. * iconvdata/jis0201.h: Correct variable name. * iconvdata/jis0208.c: Correct script to generate tables and regenerate them. * iconvdata/jis0208.h: Likewise. * iconvdata/jis0212.c: Likewise. * iconvdata/sjis.c: Likewise. Patch by HANATAKA Shinya <hanataka@abyss.rim.or.jp>.
Diffstat (limited to 'iconvdata')
-rw-r--r--iconvdata/eucjp.c6
-rw-r--r--iconvdata/iso-2022-jp.c194
-rw-r--r--iconvdata/jis0201.h4
-rw-r--r--iconvdata/jis0208.c4743
-rw-r--r--iconvdata/jis0208.h2
-rw-r--r--iconvdata/jis0212.c4482
-rw-r--r--iconvdata/sjis.c1951
7 files changed, 5890 insertions, 5492 deletions
diff --git a/iconvdata/eucjp.c b/iconvdata/eucjp.c
index 96e075628c..4936e40b62 100644
--- a/iconvdata/eucjp.c
+++ b/iconvdata/eucjp.c
@@ -138,6 +138,12 @@
if (ch <= 0x7f) \
/* It's plain ASCII. */ \
*outptr++ = ch; \
+ else if (ch == 0xa5) \
+ /* YEN sign => backslash */ \
+ *outptr++ = 0x5c; \
+ else if (ch == 0x203e) \
+ /* overscore => asciitilde */ \
+ *outptr++ = 0x7e; \
else \
{ \
/* Try the JIS character sets. */ \
diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
index 9aeaad6c3e..e888d310b7 100644
--- a/iconvdata/iso-2022-jp.c
+++ b/iconvdata/iso-2022-jp.c
@@ -91,7 +91,8 @@ enum
ASCII_set = 0,
JISX0208_1978_set,
JISX0208_1983_set,
- JISX0201_set,
+ JISX0201_Roman_set,
+ JISX0201_Kana_set,
GB2312_set,
KSC5601_set,
JISX0212_set,
@@ -224,13 +225,6 @@ gconv_end (struct gconv_step *data)
{ \
uint32_t ch = *inptr; \
\
- /* This is a 7bit character set, disallow all 8bit characters. */ \
- if (ch > 0x7f) \
- { \
- result = GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- \
/* Recognize escape sequences. */ \
if (ch == ESC) \
{ \
@@ -260,7 +254,14 @@ gconv_end (struct gconv_step *data)
else if (inptr[2] == 'J') \
{ \
/* JIS X 0201 selected. */ \
- set = JISX0201_set; \
+ set = JISX0201_Roman_set; \
+ inptr += 3; \
+ continue; \
+ } \
+ else if (var == iso2022jp2 && inptr[2] == 'I') \
+ { \
+ /* JIS X 0201 selected. */ \
+ set = JISX0201_Kana_set; \
inptr += 3; \
continue; \
} \
@@ -333,7 +334,18 @@ gconv_end (struct gconv_step *data)
|| (var >= ISO88591_set && ch < 0x20)) \
/* Almost done, just advance the input pointer. */ \
++inptr; \
- else if (set == JISX0201_set) \
+ else if (set == JISX0201_Roman_set) \
+ { \
+ /* Use the JIS X 0201 table. */ \
+ ch = jisx0201_to_ucs4 (ch); \
+ if (ch == UNKNOWN_10646_CHAR) \
+ { \
+ result = GCONV_ILLEGAL_INPUT; \
+ break; \
+ } \
+ ++inptr; \
+ } \
+ else if (set == JISX0201_Kana_set) \
{ \
/* Use the JIS X 0201 table. */ \
ch = jisx0201_to_ucs4 (ch + 0x80); \
@@ -348,13 +360,13 @@ gconv_end (struct gconv_step *data)
{ \
/* This is quite easy. All characters are defined and the \
ISO 10646 value is computed by adding 0x80. */ \
- ch += 0x80; \
+ ch |= 0x80; \
++inptr; \
} \
else if (set == ISO88597_set) \
{ \
/* We use the table from the ISO 8859-7 module. */ \
- ch = iso88597_to_ucs4[ch - 0x20]; \
+ ch = iso88597_to_ucs4[(ch & 0x7f) - 0x20]; \
if (ch == 0) \
{ \
result = GCONV_ILLEGAL_INPUT; \
@@ -415,16 +427,14 @@ gconv_end (struct gconv_step *data)
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- unsigned char ch; \
+ uint32_t ch; \
size_t written = 0; \
\
ch = *((uint32_t *) inptr); \
\
/* First see whether we can write the character using the currently \
selected character set. */ \
- if (set == ASCII_set \
- || (ch >= 0x01 && ((set < ISO88591_set && (ch < 0x21 || ch == 0x7f)) \
- || (set >= ISO88591_set && ch < 0x20)))) \
+ if (set == ASCII_set) \
{ \
/* Please note that the NUL byte is *not* matched if we are not \
currently using the ASCII charset. This is because we must \
@@ -435,13 +445,35 @@ gconv_end (struct gconv_step *data)
written = 1; \
} \
} \
- else if (set == JISX0201_set) \
- written = ucs4_to_jisx0201 (ch, outptr); \
+ else if (set == JISX0201_Roman_set) \
+ { \
+ unsigned char buf[2]; \
+ written = ucs4_to_jisx0201 (ch, buf); \
+ if (written != UNKNOWN_10646_CHAR && buf[0] > 0x20 && buf[0] < 0x80) \
+ { \
+ *outptr++ = buf[0]; \
+ written = 1; \
+ } \
+ else \
+ written = UNKNOWN_10646_CHAR; \
+ } \
+ else if (set == JISX0201_Kana_set) \
+ { \
+ unsigned char buf[2]; \
+ written = ucs4_to_jisx0201 (ch, buf); \
+ if (written != UNKNOWN_10646_CHAR && buf[0] > 0xa0 && buf[0] < 0xe0) \
+ { \
+ *outptr++ = buf[0] - 0x80; \
+ written = 1; \
+ } \
+ else \
+ written = UNKNOWN_10646_CHAR; \
+ } \
else if (set == ISO88591_set) \
{ \
- if (ch >= 0xa0 && ch <= 0xff) \
+ if (ch >= 0x80 && ch <= 0xff) \
{ \
- *outptr++ = ch - 0x80; \
+ *outptr++ = ch; \
written = 1; \
} \
} \
@@ -456,7 +488,7 @@ gconv_end (struct gconv_step *data)
unsigned char res = iso88597_from_ucs4[ch + rp->idx]; \
if (res != '\0') \
{ \
- *outptr++ = res; \
+ *outptr++ = res | 0x80; \
written = 1; \
} \
} \
@@ -488,9 +520,11 @@ gconv_end (struct gconv_step *data)
result = GCONV_FULL_OUTPUT; \
break; \
} \
+ else if (written != UNKNOWN_10646_CHAR) \
+ outptr += written; \
} \
\
- if (written == UNKNOWN_10646_CHAR) \
+ if (written == UNKNOWN_10646_CHAR || written == 0) \
{ \
/* Either this is an unknown character or we have to switch \
the currently selected character set. The character sets \
@@ -529,29 +563,6 @@ gconv_end (struct gconv_step *data)
\
*outptr++ = ch; \
} \
- else if (ch >= 0xa0 && ch <= 0xff) \
- { \
- /* This character set is not available in ISO-2022-JP. */ \
- if (var == iso2022jp) \
- { \
- result = GCONV_ILLEGAL_INPUT; \
- break; \
- } \
- \
- /* We must use the ISO 8859-1 upper half. */ \
- *outptr++ = ESC; \
- *outptr++ = '.'; \
- *outptr++ = 'A'; \
- set = ISO88591_set; \
- \
- if (NEED_LENGTH_TEST && outptr == outend) \
- { \
- result = GCONV_FULL_OUTPUT; \
- break; \
- } \
- \
- *outptr++ = ch - 0x80; \
- } \
else \
{ \
/* Now it becomes difficult. We must search the other \
@@ -562,13 +573,13 @@ gconv_end (struct gconv_step *data)
unsigned char buf[2]; \
\
written = ucs4_to_jisx0201 (ch, buf); \
- if (written != UNKNOWN_10646_CHAR) \
+ if (written != UNKNOWN_10646_CHAR && buf[0] < 0x80) \
{ \
/* We use JIS X 0201. */ \
*outptr++ = ESC; \
- *outptr++ = '$'; \
- *outptr++ = '@'; \
- set = JISX0201_set; \
+ *outptr++ = '('; \
+ *outptr++ = 'J'; \
+ set = JISX0201_Roman_set; \
\
if (NEED_LENGTH_TEST && outptr == outend) \
{ \
@@ -606,11 +617,11 @@ gconv_end (struct gconv_step *data)
} \
else \
{ \
- written = ucs4_to_jisx0208 (ch, buf, 2); \
+ written = ucs4_to_jisx0212 (ch, buf, 2); \
if (written != UNKNOWN_10646_CHAR) \
{ \
/* We use JIS X 0212. */ \
- if (outptr + 4 > outend) \
+ if (NEED_LENGTH_TEST && outptr + 4 > outend) \
{ \
result = GCONV_FULL_OUTPUT; \
break; \
@@ -632,43 +643,51 @@ gconv_end (struct gconv_step *data)
} \
else \
{ \
- written = ucs4_to_gb2312 (ch, buf, 2); \
- if (written != UNKNOWN_10646_CHAR) \
+ written = ucs4_to_jisx0201 (ch, buf); \
+ if (written != UNKNOWN_10646_CHAR && buf[0] >= 0x80) \
{ \
- /* We use GB 2312. */ \
+ /* We use JIS X 0201. */ \
*outptr++ = ESC; \
- *outptr++ = '$'; \
+ *outptr++ = '('; \
+ *outptr++ = 'I'; \
+ set = JISX0201_Kana_set; \
+ \
+ if (NEED_LENGTH_TEST && outptr == outend) \
+ { \
+ result = GCONV_FULL_OUTPUT; \
+ break; \
+ } \
+ \
+ *outptr++ = buf[0] - 0x80; \
+ } \
+ else if (ch != 0xa5 && ch >= 0x80 && ch <= 0xff) \
+ { \
+ /* ISO 8859-1 upper half. */ \
+ *outptr++ = ESC; \
+ *outptr++ = '.'; \
*outptr++ = 'A'; \
- set = GB2312_set; \
+ set = ISO88591_set; \
\
- if (NEED_LENGTH_TEST && outptr + 2 > outend) \
+ if (NEED_LENGTH_TEST && outptr == outend) \
{ \
result = GCONV_FULL_OUTPUT; \
break; \
} \
\
- *outptr++ = buf[0]; \
- *outptr++ = buf[1]; \
+ *outptr++ = ch; \
} \
else \
{ \
- written = ucs4_to_ksc5601 (ch, buf, 2); \
+ written = ucs4_to_gb2312 (ch, buf, 2); \
if (written != UNKNOWN_10646_CHAR) \
{ \
- /* We use KSC 5601. */ \
- if (outptr + 4 > outend) \
- { \
- result = GCONV_FULL_OUTPUT; \
- break; \
- } \
+ /* We use GB 2312. */ \
*outptr++ = ESC; \
*outptr++ = '$'; \
- *outptr++ = '('; \
- *outptr++ = 'C'; \
- set = KSC5601_set; \
+ *outptr++ = 'A'; \
+ set = GB2312_set; \
\
- if (NEED_LENGTH_TEST \
- && outptr + 2 > outend) \
+ if (NEED_LENGTH_TEST && outptr + 2 > outend) \
{ \
result = GCONV_FULL_OUTPUT; \
break; \
@@ -679,8 +698,37 @@ gconv_end (struct gconv_step *data)
} \
else \
{ \
- result = GCONV_ILLEGAL_INPUT; \
- break; \
+ written = ucs4_to_ksc5601 (ch, buf, 2); \
+ if (written != UNKNOWN_10646_CHAR) \
+ { \
+ /* We use KSC 5601. */ \
+ if (NEED_LENGTH_TEST \
+ && outptr + 4 > outend) \
+ { \
+ result = GCONV_FULL_OUTPUT; \
+ break; \
+ } \
+ *outptr++ = ESC; \
+ *outptr++ = '$'; \
+ *outptr++ = '('; \
+ *outptr++ = 'C'; \
+ set = KSC5601_set; \
+ \
+ if (NEED_LENGTH_TEST \
+ && outptr + 2 > outend) \
+ { \
+ result = GCONV_FULL_OUTPUT; \
+ break; \
+ } \
+ \
+ *outptr++ = buf[0]; \
+ *outptr++ = buf[1]; \
+ } \
+ else \
+ { \
+ result = GCONV_ILLEGAL_INPUT; \
+ break; \
+ } \
} \
} \
} \
diff --git a/iconvdata/jis0201.h b/iconvdata/jis0201.h
index 1514c88d73..362da17c0e 100644
--- a/iconvdata/jis0201.h
+++ b/iconvdata/jis0201.h
@@ -22,13 +22,13 @@
#define _JIS0201_H 1
/* Conversion table. */
-extern const uint32_t __jis0201_to_ucs4[];
+extern const uint32_t __jisx0201_to_ucs4[];
static inline uint32_t
jisx0201_to_ucs4 (char ch)
{
- uint32_t val = __jis0201_to_ucs4[(unsigned char) ch];
+ uint32_t val = __jisx0201_to_ucs4[(unsigned char) ch];
if (val == 0 && ch != '\0')
val = UNKNOWN_10646_CHAR;
diff --git a/iconvdata/jis0208.c b/iconvdata/jis0208.c
index 964f73dd26..06558f6983 100644
--- a/iconvdata/jis0208.c
+++ b/iconvdata/jis0208.c
@@ -67,7 +67,7 @@ const uint16_t __jis0208_to_ucs[0x1e80] =
[0x0010] = 0xffe3, [0x0011] = 0xff3f, [0x0012] = 0x30fd, [0x0013] = 0x30fe,
[0x0014] = 0x309d, [0x0015] = 0x309e, [0x0016] = 0x3003, [0x0017] = 0x4edd,
[0x0018] = 0x3005, [0x0019] = 0x3006, [0x001a] = 0x3007, [0x001b] = 0x30fc,
- [0x001c] = 0x2015, [0x001d] = 0x2010, [0x001e] = 0xff0f, [0x001f] = 0x005c,
+ [0x001c] = 0x2015, [0x001d] = 0x2010, [0x001e] = 0xff0f, [0x001f] = 0xff3c,
[0x0020] = 0x301c, [0x0021] = 0x2016, [0x0022] = 0xff5c, [0x0023] = 0x2026,
[0x0024] = 0x2025, [0x0025] = 0x2018, [0x0026] = 0x2019, [0x0027] = 0x201c,
[0x0028] = 0x201d, [0x0029] = 0xff08, [0x002a] = 0xff09, [0x002b] = 0x3014,
@@ -2622,6 +2622,7 @@ const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[] =
while (<>) {
local($ucs,$jis,%rest) = split;
local($u)=hex($ucs);
+ local($j)=hex($jis);
if ($u - $last > 6) {
if ($last != 0) {
$idx += $last - $first + 1;
@@ -2632,2380 +2633,2380 @@ const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[] =
fmt (0);
}
}
- fmt ($u);
+ fmt ($j);
$last=$u;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
const char __jisx0208_from_ucs_tab[14210][2] =
{
- "\x20\x10", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x20\x15",
- "\x20\x16", "\x00\x00", "\x20\x18", "\x20\x19", "\x00\x00", "\x00\x00",
- "\x20\x1c", "\x20\x1d", "\x00\x00", "\x00\x00", "\x20\x20", "\x20\x21",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x20\x25", "\x20\x26", "\x20\x30",
- "\x00\x00", "\x20\x32", "\x20\x33", "\x20\x3b", "\x21\x03", "\x21\x2b",
- "\x21\x90", "\x21\x91", "\x21\x92", "\x21\x93", "\x21\xd2", "\x00\x00",
- "\x21\xd4", "\x22\x00", "\x00\x00", "\x22\x02", "\x22\x03", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x22\x07", "\x22\x08", "\x00\x00", "\x00\x00",
- "\x22\x0b", "\x22\x12", "\x22\x1a", "\x00\x00", "\x00\x00", "\x22\x1d",
- "\x22\x1e", "\x00\x00", "\x22\x20", "\x22\x27", "\x22\x28", "\x22\x29",
- "\x22\x2a", "\x22\x2b", "\x22\x2c", "\x22\x34", "\x22\x35", "\x22\x3d",
- "\x22\x52", "\x22\x60", "\x22\x61", "\x00\x00", "\x00\x00", "\x00\x00",
- "\x00\x00", "\x22\x66", "\x22\x67", "\x00\x00", "\x00\x00", "\x22\x6a",
- "\x22\x6b", "\x22\x82", "\x22\x83", "\x00\x00", "\x00\x00", "\x22\x86",
- "\x22\x87", "\x22\xa5", "\x23\x12", "\x25\x00", "\x25\x01", "\x25\x02",
- "\x25\x03", "\x25\x0c", "\x00\x00", "\x00\x00", "\x25\x0f", "\x25\x10",
- "\x00\x00", "\x00\x00", "\x25\x13", "\x25\x14", "\x00\x00", "\x00\x00",
- "\x25\x17", "\x25\x18", "\x00\x00", "\x00\x00", "\x25\x1b", "\x25\x1c",
- "\x25\x1d", "\x00\x00", "\x00\x00", "\x25\x20", "\x00\x00", "\x00\x00",
- "\x25\x23", "\x25\x24", "\x25\x25", "\x00\x00", "\x00\x00", "\x25\x28",
- "\x00\x00", "\x00\x00", "\x25\x2b", "\x25\x2c", "\x00\x00", "\x00\x00",
- "\x25\x2f", "\x25\x30", "\x00\x00", "\x00\x00", "\x25\x33", "\x25\x34",
- "\x00\x00", "\x00\x00", "\x25\x37", "\x25\x38", "\x00\x00", "\x00\x00",
- "\x25\x3b", "\x25\x3c", "\x00\x00", "\x00\x00", "\x25\x3f", "\x00\x00",
- "\x00\x00", "\x25\x42", "\x25\x4b", "\x25\xa0", "\x25\xa1", "\x25\xb2",
- "\x25\xb3", "\x25\xbc", "\x25\xbd", "\x25\xc6", "\x25\xc7", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x25\xcb", "\x00\x00", "\x00\x00", "\x25\xce",
- "\x25\xcf", "\x25\xef", "\x26\x05", "\x26\x06", "\x26\x40", "\x00\x00",
- "\x26\x42", "\x26\x6a", "\x00\x00", "\x00\x00", "\x26\x6d", "\x00\x00",
- "\x26\x6f", "\x30\x00", "\x30\x01", "\x30\x02", "\x30\x03", "\x00\x00",
- "\x30\x05", "\x30\x06", "\x30\x07", "\x30\x08", "\x30\x09", "\x30\x0a",
- "\x30\x0b", "\x30\x0c", "\x30\x0d", "\x30\x0e", "\x30\x0f", "\x30\x10",
- "\x30\x11", "\x30\x12", "\x30\x13", "\x30\x14", "\x30\x15", "\x30\x1c",
- "\x30\x41", "\x30\x42", "\x30\x43", "\x30\x44", "\x30\x45", "\x30\x46",
- "\x30\x47", "\x30\x48", "\x30\x49", "\x30\x4a", "\x30\x4b", "\x30\x4c",
- "\x30\x4d", "\x30\x4e", "\x30\x4f", "\x30\x50", "\x30\x51", "\x30\x52",
- "\x30\x53", "\x30\x54", "\x30\x55", "\x30\x56", "\x30\x57", "\x30\x58",
- "\x30\x59", "\x30\x5a", "\x30\x5b", "\x30\x5c", "\x30\x5d", "\x30\x5e",
- "\x30\x5f", "\x30\x60", "\x30\x61", "\x30\x62", "\x30\x63", "\x30\x64",
- "\x30\x65", "\x30\x66", "\x30\x67", "\x30\x68", "\x30\x69", "\x30\x6a",
- "\x30\x6b", "\x30\x6c", "\x30\x6d", "\x30\x6e", "\x30\x6f", "\x30\x70",
- "\x30\x71", "\x30\x72", "\x30\x73", "\x30\x74", "\x30\x75", "\x30\x76",
- "\x30\x77", "\x30\x78", "\x30\x79", "\x30\x7a", "\x30\x7b", "\x30\x7c",
- "\x30\x7d", "\x30\x7e", "\x30\x7f", "\x30\x80", "\x30\x81", "\x30\x82",
- "\x30\x83", "\x30\x84", "\x30\x85", "\x30\x86", "\x30\x87", "\x30\x88",
- "\x30\x89", "\x30\x8a", "\x30\x8b", "\x30\x8c", "\x30\x8d", "\x30\x8e",
- "\x30\x8f", "\x30\x90", "\x30\x91", "\x30\x92", "\x30\x93", "\x30\x9b",
- "\x30\x9c", "\x30\x9d", "\x30\x9e", "\x00\x00", "\x00\x00", "\x30\xa1",
- "\x30\xa2", "\x30\xa3", "\x30\xa4", "\x30\xa5", "\x30\xa6", "\x30\xa7",
- "\x30\xa8", "\x30\xa9", "\x30\xaa", "\x30\xab", "\x30\xac", "\x30\xad",
- "\x30\xae", "\x30\xaf", "\x30\xb0", "\x30\xb1", "\x30\xb2", "\x30\xb3",
- "\x30\xb4", "\x30\xb5", "\x30\xb6", "\x30\xb7", "\x30\xb8", "\x30\xb9",
- "\x30\xba", "\x30\xbb", "\x30\xbc", "\x30\xbd", "\x30\xbe", "\x30\xbf",
- "\x30\xc0", "\x30\xc1", "\x30\xc2", "\x30\xc3", "\x30\xc4", "\x30\xc5",
- "\x30\xc6", "\x30\xc7", "\x30\xc8", "\x30\xc9", "\x30\xca", "\x30\xcb",
- "\x30\xcc", "\x30\xcd", "\x30\xce", "\x30\xcf", "\x30\xd0", "\x30\xd1",
- "\x30\xd2", "\x30\xd3", "\x30\xd4", "\x30\xd5", "\x30\xd6", "\x30\xd7",
- "\x30\xd8", "\x30\xd9", "\x30\xda", "\x30\xdb", "\x30\xdc", "\x30\xdd",
- "\x30\xde", "\x30\xdf", "\x30\xe0", "\x30\xe1", "\x30\xe2", "\x30\xe3",
- "\x30\xe4", "\x30\xe5", "\x30\xe6", "\x30\xe7", "\x30\xe8", "\x30\xe9",
- "\x30\xea", "\x30\xeb", "\x30\xec", "\x30\xed", "\x30\xee", "\x30\xef",
- "\x30\xf0", "\x30\xf1", "\x30\xf2", "\x30\xf3", "\x30\xf4", "\x30\xf5",
- "\x30\xf6", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x30\xfb",
- "\x30\xfc", "\x30\xfd", "\x30\xfe", "\x4e\x00", "\x4e\x01", "\x00\x00",
- "\x4e\x03", "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x07", "\x4e\x08",
- "\x4e\x09", "\x4e\x0a", "\x4e\x0b", "\x00\x00", "\x4e\x0d", "\x4e\x0e",
- "\x00\x00", "\x4e\x10", "\x4e\x11", "\x00\x00", "\x00\x00", "\x4e\x14",
- "\x4e\x15", "\x4e\x16", "\x4e\x17", "\x4e\x18", "\x4e\x19", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x1e", "\x00\x00", "\x00\x00",
- "\x4e\x21", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x26",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x2a", "\x00\x00", "\x00\x00",
- "\x4e\x2d", "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x31", "\x4e\x32",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x36", "\x00\x00", "\x4e\x38",
- "\x4e\x39", "\x00\x00", "\x4e\x3b", "\x4e\x3c", "\x00\x00", "\x00\x00",
- "\x4e\x3f", "\x00\x00", "\x00\x00", "\x4e\x42", "\x4e\x43", "\x00\x00",
- "\x4e\x45", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00",
- "\x4e\x4b", "\x00\x00", "\x4e\x4d", "\x4e\x4e", "\x4e\x4f", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\x55", "\x4e\x56",
- "\x4e\x57", "\x4e\x58", "\x4e\x59", "\x00\x00", "\x00\x00", "\x00\x00",
- "\x4e\x5d", "\x4e\x5e", "\x4e\x5f", "\x00\x00", "\x00\x00", "\x4e\x62",
- "\x4e\x71", "\x00\x00", "\x4e\x73", "\x4e\x7e", "\x00\x00", "\x4e\x80",
- "\x00\x00", "\x4e\x82", "\x00\x00", "\x00\x00", "\x4e\x85", "\x4e\x86",
- "\x00\x00", "\x4e\x88", "\x4e\x89", "\x4e\x8a", "\x4e\x8b", "\x4e\x8c",
- "\x00\x00", "\x4e\x8e", "\x00\x00", "\x00\x00", "\x4e\x91", "\x4e\x92",
- "\x00\x00", "\x4e\x94", "\x4e\x95", "\x00\x00", "\x00\x00", "\x4e\x98",
- "\x4e\x99", "\x00\x00", "\x4e\x9b", "\x4e\x9c", "\x00\x00", "\x4e\x9e",
- "\x4e\x9f", "\x4e\xa0", "\x4e\xa1", "\x4e\xa2", "\x00\x00", "\x4e\xa4",
- "\x4e\xa5", "\x4e\xa6", "\x00\x00", "\x4e\xa8", "\x00\x00", "\x00\x00",
- "\x4e\xab", "\x4e\xac", "\x4e\xad", "\x4e\xae", "\x00\x00", "\x4e\xb0",
- "\x00\x00", "\x00\x00", "\x4e\xb3", "\x00\x00", "\x00\x00", "\x4e\xb6",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\xba", "\x00\x00", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\xc0", "\x4e\xc1", "\x4e\xc2",
- "\x00\x00", "\x4e\xc4", "\x00\x00", "\x4e\xc6", "\x4e\xc7", "\x00\x00",
- "\x00\x00", "\x4e\xca", "\x4e\xcb", "\x00\x00", "\x4e\xcd", "\x4e\xce",
- "\x4e\xcf", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x4e\xd4",
- "\x4e\xd5", "\x4e\xd6", "\x4e\xd7", "\x4e\xd8", "\x4e\xd9", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x4e\xdd", "\x4e\xde", "\x4e\xdf", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x4e\xe3", "\x4e\xe4", "\x4e\xe5", "\x4e\xed",
- "\x4e\xee", "\x00\x00", "\x4e\xf0", "\x00\x00", "\x4e\xf2", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x4e\xf6", "\x4e\xf7", "\x00\x00", "\x00\x00",
- "\x00\x00", "\x4e\xfb", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00",
- "\x00\x00", "\x4f\x01", "\x4f\x09", "\x4f\x0a", "\x00\x00", "\x00\x00",
- "\x4f\x0d", "\x4f\x0e", "\x4f\x0f", "\x4f\x10", "\x4f\x11", "\x4f\x1a",
- "\x00\x00", "\x4f\x1c", "\x4f\x1d", "\x4f\x2f", "\x4f\x30", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x4f\x34", "\x00\x00", "\x4f\x36", "\x00\x00",
- "\x4f\x38", "\x00\x00", "\x4f\x3a", "\x00\x00", "\x4f\x3c", "\x4f\x3d",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x4f\x43",
- "\x00\x00", "\x00\x00", "\x4f\x46", "\x4f\x47", "\x00\x00", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4f\x4d", "\x4f\x4e", "\x4f\x4f",
- "\x4f\x50", "\x4f\x51", "\x00\x00", "\x4f\x53", "\x00\x00", "\x4f\x55",
- "\x00\x00", "\x4f\x57", "\x00\x00", "\x4f\x59", "\x4f\x5a", "\x4f\x5b",
- "\x4f\x5c", "\x4f\x5d", "\x4f\x5e", "\x4f\x69", "\x00\x00", "\x00\x00",
- "\x00\x00", "\x00\x00", "\x00\x00", "\x4f\x6f", "\x4f\x70", "\x00\x00",
- "\