Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArturo Espinosa <unammx@src.gnome.org>1999-08-06 00:14:27 (GMT)
committer Arturo Espinosa <unammx@src.gnome.org>1999-08-06 00:14:27 (GMT)
commit50e9d31c05e9ca11ad43cc570556094782c1b956 (patch)
treee8d30241d1f97d7a52ad4486089a74e55160ad78
parentbd7dce23fec36adeb1713c164d594bbc0436b346 (diff)
Painful merge.
Painful merge. I merged the latest release into the CVS. This version supports the regular xpdf or gpdf if the GNOME libraries are found. Miguel.
-rw-r--r--pdf/goo/Makefile.in4
-rw-r--r--pdf/xpdf/CMapInfo.h15736
-rw-r--r--pdf/xpdf/Catalog.cc15
-rw-r--r--pdf/xpdf/Catalog.h4
-rw-r--r--pdf/xpdf/Error.cc21
-rw-r--r--pdf/xpdf/FontInfo.h22
-rw-r--r--pdf/xpdf/Gfx.cc37
-rw-r--r--pdf/xpdf/Gfx.h4
-rw-r--r--pdf/xpdf/GfxFont.cc680
-rw-r--r--pdf/xpdf/GfxFont.h85
-rw-r--r--pdf/xpdf/GfxState.cc25
-rw-r--r--pdf/xpdf/GfxState.h1
-rw-r--r--pdf/xpdf/ImageOutputDev.cc8
-rw-r--r--pdf/xpdf/Link.cc44
-rw-r--r--pdf/xpdf/Link.h8
-rw-r--r--pdf/xpdf/Makefile.am5
-rw-r--r--pdf/xpdf/Makefile.in69
-rw-r--r--pdf/xpdf/Object.cc9
-rw-r--r--pdf/xpdf/PDFDoc.cc3
-rw-r--r--pdf/xpdf/PSOutputDev.cc92
-rw-r--r--pdf/xpdf/PSOutputDev.h5
-rw-r--r--pdf/xpdf/Page.cc25
-rw-r--r--pdf/xpdf/Page.h9
-rw-r--r--pdf/xpdf/Params.cc5
-rw-r--r--pdf/xpdf/Params.h3
-rw-r--r--pdf/xpdf/Stream-CCITT.h72
-rw-r--r--pdf/xpdf/Stream.cc881
-rw-r--r--pdf/xpdf/Stream.h98
-rw-r--r--pdf/xpdf/TextOutputDev.cc333
-rw-r--r--pdf/xpdf/TextOutputDev.h25
-rw-r--r--pdf/xpdf/TextOutputFontInfo.h18
-rw-r--r--pdf/xpdf/XOutputDev.cc1088
-rw-r--r--pdf/xpdf/XOutputDev.h194
-rw-r--r--pdf/xpdf/XOutputFontInfo.h28
-rw-r--r--pdf/xpdf/makefile.w32228
-rw-r--r--pdf/xpdf/pdfimages.cc21
-rw-r--r--pdf/xpdf/pdfinfo.cc15
-rw-r--r--pdf/xpdf/pdftopbm.cc6
-rw-r--r--pdf/xpdf/pdftops.cc31
-rw-r--r--pdf/xpdf/pdftotext.cc34
-rw-r--r--pdf/xpdf/vms_make.com22
-rw-r--r--pdf/xpdf/xpdf-ltk.h54
-rw-r--r--pdf/xpdf/xpdf.cc457
-rw-r--r--pdf/xpdf/xpdf.ltk38
-rw-r--r--pdf/xpdf/xpdfconfig.h17
45 files changed, 19175 insertions, 1404 deletions
diff --git a/pdf/goo/Makefile.in b/pdf/goo/Makefile.in
index 45e1cdf..5881ce2 100644
--- a/pdf/goo/Makefile.in
+++ b/pdf/goo/Makefile.in
@@ -102,6 +102,10 @@ YACC = @YACC@
ZVT_LIBS = @ZVT_LIBS@
cflags_set = @cflags_set@
cxxflags_set = @cxxflags_set@
+t1_CFLAGS = @t1_CFLAGS@
+t1_LIBS = @t1_LIBS@
+t1x_CFLAGS = @t1x_CFLAGS@
+t1x_LIBS = @t1x_LIBS@
lib_LIBRARIES = libgoo.a
diff --git a/pdf/xpdf/CMapInfo.h b/pdf/xpdf/CMapInfo.h
index ef92c78..7a1d8e4 100644
--- a/pdf/xpdf/CMapInfo.h
+++ b/pdf/xpdf/CMapInfo.h
@@ -641,6 +641,7 @@ static Gushort japan1278EUCHMap2[1252] = {
};
static GfxFontEncoding16 japan1278EUCHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -692,6 +693,715 @@ static GfxFontEncoding16 japan1278EUCHEnc16 = {
japan1278EUCHMap2, 626
};
+static Gushort japan1278EUCVMap2[1306] = {
+ 0x0000, 0x0000,
+ 0x8ea0, 0x0146,
+ 0xa1a1, 0x0279,
+ 0xa2a1, 0x02d7,
+ 0xa3b0, 0x030c,
+ 0xa3c1, 0x0316,
+ 0xa3e1, 0x0330,
+ 0xa4a1, 0x034a,
+ 0xa5a1, 0x039d,
+ 0xa6a1, 0x03f3,
+ 0xa6c1, 0x040b,
+ 0xa7a1, 0x0423,
+ 0xa7d1, 0x0444,
+ 0xb0a1, 0x0465,
+ 0xb0a2, 0x1dd1,
+ 0xb0a3, 0x0467,
+ 0xb0a9, 0x204a,
+ 0xb0aa, 0x046e,
+ 0xb0b2, 0x1f19,
+ 0xb0b3, 0x1ca2,
+ 0xb0b4, 0x0478,
+ 0xb0bb, 0x1dd2,
+ 0xb0bc, 0x0480,
+ 0xb0ee, 0x1dd3,
+ 0xb0ef, 0x04b3,
+ 0xb0f3, 0x1dd4,
+ 0xb0f4, 0x04b8,
+ 0xb0fc, 0x1dd5,
+ 0xb0fd, 0x04c1,
+ 0xb1a1, 0x04c3,
+ 0xb1aa, 0x1dd6,
+ 0xb1ab, 0x04cd,
+ 0xb1b5, 0x1dd7,
+ 0xb1b6, 0x04d8,
+ 0xb1b9, 0x1dd8,
+ 0xb1ba, 0x04dc,
+ 0xb1bd, 0x1dda,
+ 0xb1be, 0x04e0,
+ 0xb1c2, 0x1ddb,
+ 0xb1c3, 0x04e5,
+ 0xb1eb, 0x1ddc,
+ 0xb1ec, 0x050e,
+ 0xb2a1, 0x0521,
+ 0xb2a8, 0x1ddd,
+ 0xb2a9, 0x1cc9,
+ 0xb2aa, 0x1dde,
+ 0xb2ab, 0x052b,
+ 0xb2e0, 0x1ddf,
+ 0xb2e1, 0x0561,
+ 0xb2fa, 0x1de0,
+ 0xb2fb, 0x057b,
+ 0xb2fd, 0x1de1,
+ 0xb2fe, 0x057e,
+ 0xb3a1, 0x057f,
+ 0xb3a2, 0x1de2,
+ 0xb3a3, 0x0581,
+ 0xb3c2, 0x1961,
+ 0xb3c3, 0x05a1,
+ 0xb3c9, 0x139f,
+ 0xb3ca, 0x05a8,
+ 0xb3e5, 0x1de3,
+ 0xb3e6, 0x05c4,
+ 0xb3eb, 0x1de4,
+ 0xb3ec, 0x05ca,
+ 0xb3f3, 0x1de5,
+ 0xb3f4, 0x05d2,
+ 0xb3f6, 0x1731,
+ 0xb3f7, 0x05d5,
+ 0xb3fa, 0x1de6,
+ 0xb3fb, 0x05d9,
+ 0xb4a1, 0x05dd,
+ 0xb4c2, 0x1de7,
+ 0xb4c3, 0x1572,
+ 0xb4c4, 0x0600,
+ 0xb4cd, 0x1de8,
+ 0xb4ce, 0x060a,
+ 0xb4d2, 0x1a20,
+ 0xb4d3, 0x060f,
+ 0xb4e5, 0x1de9,
+ 0xb4e6, 0x0622,
+ 0xb5a1, 0x063b,
+ 0xb5ab, 0x1dea,
+ 0xb5ac, 0x0646,
+ 0xb5c0, 0x1deb,
+ 0xb5c1, 0x065b,
+ 0xb6a1, 0x0699,
+ 0xb6a2, 0x1dec,
+ 0xb6a3, 0x069b,
+ 0xb6aa, 0x1ded,
+ 0xb6ab, 0x06a3,
+ 0xb6c6, 0x1d32,
+ 0xb6c7, 0x06bf,
+ 0xb6cf, 0x1dee,
+ 0xb6d0, 0x06c8,
+ 0xb6ed, 0x1def,
+ 0xb6ee, 0x06e6,
+ 0xb6f4, 0x1df0,
+ 0xb6f5, 0x06ed,
+ 0xb6fb, 0x1df1,
+ 0xb6fc, 0x06f4,
+ 0xb6fd, 0x1df2,
+ 0xb6fe, 0x06f6,
+ 0xb7a1, 0x06f7,
+ 0xb7a4, 0x1df3,
+ 0xb7a5, 0x06fb,
+ 0xb7b7, 0x1df4,
+ 0xb7b8, 0x070e,
+ 0xb7c5, 0x1df5,
+ 0xb7c6, 0x071c,
+ 0xb7ce, 0x1df6,
+ 0xb7cf, 0x0725,
+ 0xb7d2, 0x1df7,
+ 0xb7d3, 0x0729,
+ 0xb7d5, 0x1df8,
+ 0xb7d6, 0x072c,
+ 0xb7db, 0x1c0d,
+ 0xb7dc, 0x0732,
+ 0xb7e4, 0x1df9,
+ 0xb7e5, 0x073b,
+ 0xb7f1, 0x1dfa,
+ 0xb7f2, 0x0748,
+ 0xb7f9, 0x1dfb,
+ 0xb7fa, 0x0750,
+ 0xb7fe, 0x1dfc,
+ 0xb8a1, 0x0755,
+ 0xb8b4, 0x1dfd,
+ 0xb8b5, 0x0769,
+ 0xb8c1, 0x1dfe,
+ 0xb8c2, 0x0776,
+ 0xb9a1, 0x07b3,
+ 0xb9ab, 0x1dff,
+ 0xb9ac, 0x07be,
+ 0xb9b7, 0x1e00,
+ 0xb9b8, 0x07ca,
+ 0xb9c2, 0x1e01,
+ 0xb9c3, 0x07d5,
+ 0xb9dc, 0x16dd,
+ 0xb9dd, 0x07ef,
+ 0xb9ed, 0x1e02,
+ 0xb9ee, 0x0800,
+ 0xb9f4, 0x1e03,
+ 0xb9f5, 0x0807,
+ 0xb9f9, 0x1e04,
+ 0xb9fa, 0x080c,
+ 0xbaa1, 0x0811,
+ 0xbad3, 0x1e05,
+ 0xbad4, 0x0844,
+ 0xbae7, 0x1e06,
+ 0xbae8, 0x0858,
+ 0xbaf4, 0x1e07,
+ 0xbaf5, 0x0865,
+ 0xbba1, 0x086f,
+ 0xbba7, 0x1e08,
+ 0xbba8, 0x0876,
+ 0xbbaa, 0x1e09,
+ 0xbbab, 0x0879,
+ 0xbbac, 0x1e0a,
+ 0xbbad, 0x087b,
+ 0xbbb9, 0x1e0b,
+ 0xbbba, 0x0888,
+ 0xbca1, 0x08cd,
+ 0xbcc8, 0x1e0d,
+ 0xbcc9, 0x1929,
+ 0xbcca, 0x08f6,
+ 0xbcd7, 0x1e0e,
+ 0xbcd8, 0x0904,
+ 0xbcdd, 0x1e0f,
+ 0xbcdf, 0x090b,
+ 0xbda1, 0x092b,
+ 0xbdab, 0x1e11,
+ 0xbdac, 0x0936,
+ 0xbdb6, 0x1e12,
+ 0xbdb7, 0x0941,
+ 0xbdec, 0x1e13,
+ 0xbdee, 0x0978,
+ 0xbdf2, 0x1e15,
+ 0xbdf4, 0x097e,
+ 0xbea1, 0x0989,
+ 0xbea5, 0x1e17,
+ 0xbea6, 0x098e,
+ 0xbeb3, 0x1e18,
+ 0xbeb4, 0x099c,
+ 0xbebf, 0x1e19,
+ 0xbec0, 0x09a8,
+ 0xbed5, 0x1e1a,
+ 0xbed6, 0x09be,
+ 0xbedf, 0x1e1b,
+ 0xbee0, 0x09c8,
+ 0xbee4, 0x1e1c,
+ 0xbee5, 0x09cd,
+ 0xbfa1, 0x09e7,
+ 0xbfaa, 0x1e1d,
+ 0xbfab, 0x09f1,
+ 0xbfd9, 0x1e1e,
+ 0xbfda, 0x0a20,
+ 0xbfe0, 0x1e1f,
+ 0xbfe1, 0x0a27,
+ 0xbfe9, 0x1e20,
+ 0xbfea, 0x0a30,
+ 0xc0a1, 0x0a45,
+ 0xc0a2, 0x1e21,
+ 0xc0a3, 0x0a47,
+ 0xc0c2, 0x1e22,
+ 0xc0c3, 0x0a67,
+ 0xc0e6, 0x1e23,
+ 0xc0e7, 0x0a8b,
+ 0xc0f1, 0x1e24,
+ 0xc0f3, 0x0a97,
+ 0xc0f9, 0x1e26,
+ 0xc0fb, 0x0a9f,
+ 0xc1a1, 0x0aa3,
+ 0xc1a7, 0x1e28,
+ 0xc1a8, 0x1a6e,
+ 0xc1a9, 0x0aab,
+ 0xc1b9, 0x1e29,
+ 0xc1ba, 0x0abc,
+ 0xc1cc, 0x1e2a,
+ 0xc1cd, 0x0acf,
+ 0xc1cf, 0x1e2b,
+ 0xc1d0, 0x0ad2,
+ 0xc1df, 0x1e2c,
+ 0xc1e0, 0x0ae2,
+ 0xc1e9, 0x1e2d,
+ 0xc1ea, 0x0aec,
+ 0xc2a1, 0x0b01,
+ 0xc2bd, 0x1e2e,
+ 0xc2be, 0x0b1e,
+ 0xc2cd, 0x1e2f,
+ 0xc2ce, 0x0b2e,
+ 0xc2dc, 0x1e30,
+ 0xc2dd, 0x0b3d,
+ 0xc2e3, 0x1e31,
+ 0xc2e4, 0x0b44,
+ 0xc2ef, 0x1e32,
+ 0xc2f0, 0x0b50,
+ 0xc2f5, 0x1e33,
+ 0xc2f7, 0x0b57,
+ 0xc2fd, 0x1e35,
+ 0xc2fe, 0x0b5e,
+ 0xc3a1, 0x0b5f,
+ 0xc3a7, 0x1e36,
+ 0xc3a8, 0x0b66,
+ 0xc3a9, 0x1e37,
+ 0xc3ab, 0x0b69,
+ 0xc3ad, 0x1e39,
+ 0xc3af, 0x0b6d,
+ 0xc3bd, 0x1e3b,
+ 0xc3be, 0x0b7c,
+ 0xc3f0, 0x1e3c,
+ 0xc3f1, 0x0baf,
+ 0xc3f5, 0x1e3d,
+ 0xc3f6, 0x0bb4,
+ 0xc3fc, 0x1e3e,
+ 0xc3fd, 0x0bbb,
+ 0xc4a1, 0x0bbd,
+ 0xc4bd, 0x1e3f,
+ 0xc4be, 0x0bda,
+ 0xc4c8, 0x1e40,
+ 0xc4c9, 0x0be5,
+ 0xc4ca, 0x1e41,
+ 0xc4cb, 0x0be7,
+ 0xc4cd, 0x1e42,
+ 0xc4ce, 0x0bea,
+ 0xc4cf, 0x1e43,
+ 0xc4d0, 0x0bec,
+ 0xc4d4, 0x204b,
+ 0xc4d5, 0x0bf1,
+ 0xc4db, 0x11b5,
+ 0xc4dc, 0x0bf8,
+ 0xc5a1, 0x0c1b,
+ 0xc5a2, 0x1e44,
+ 0xc5a3, 0x0c1d,
+ 0xc5a7, 0x1e45,
+ 0xc5a8, 0x0c22,
+ 0xc5ae, 0x1e46,
+ 0xc5af, 0x0c29,
+ 0xc5b6, 0x1e47,
+ 0xc5b7, 0x0c31,
+ 0xc5bf, 0x1e48,
+ 0xc5c0, 0x0c3a,
+ 0xc5c8, 0x1e49,
+ 0xc5c9, 0x0c43,
+ 0xc5cb, 0x1e4a,
+ 0xc5cc, 0x0c46,
+ 0xc5d1, 0x1e4b,
+ 0xc5d3, 0x0c4d,
+ 0xc5d7, 0x16df,
+ 0xc5d8, 0x0c52,
+ 0xc5e4, 0x1e4d,
+ 0xc5e5, 0x0c5f,
+ 0xc5ee, 0x1450,
+ 0xc5ef, 0x0c69,
+ 0xc5f3, 0x1536,
+ 0xc5f4, 0x0c6e,
+ 0xc5f8, 0x1e4e,
+ 0xc5f9, 0x0c73,
+ 0xc6a1, 0x0c79,
+ 0xc6be, 0x1e4f,
+ 0xc6bf, 0x0c97,
+ 0xc6c2, 0x1e50,
+ 0xc6c3, 0x0c9b,
+ 0xc6d4, 0x1e51,
+ 0xc6d6, 0x0cae,
+ 0xc6db, 0x1e53,
+ 0xc6dd, 0x0cb5,
+ 0xc6e1, 0x1e55,
+ 0xc6e2, 0x0cba,
+ 0xc6e6, 0x1e56,
+ 0xc6e8, 0x0cc0,
+ 0xc6ea, 0x1e58,
+ 0xc6eb, 0x0cc3,
+ 0xc6f6, 0x1aed,
+ 0xc6f7, 0x0ccf,
+ 0xc7a1, 0x0cd7,
+ 0xc7a9, 0x1e59,
+ 0xc7aa, 0x0ce0,
+ 0xc7b9, 0x1e5a,
+ 0xc7ba, 0x0cf0,
+ 0xc7d7, 0x1e5b,
+ 0xc7d8, 0x0d0e,
+ 0xc7e7, 0x1e5c,
+ 0xc7e8, 0x1989,
+ 0xc7e9, 0x1e5d,
+ 0xc7ea, 0x0d20,
+ 0xc7ed, 0x1e5e,
+ 0xc7ee, 0x0d24,
+ 0xc8a1, 0x0d35,
+ 0xc8a4, 0x1e5f,
+ 0xc8a5, 0x0d39,
+ 0xc8ae, 0x1e60,
+ 0xc8af, 0x0d43,
+ 0xc8b0, 0x1e61,
+ 0xc8b1, 0x0d45,
+ 0xc8d4, 0x1e62,
+ 0xc8d5, 0x0d69,
+ 0xc8e2, 0x1e63,
+ 0xc8e3, 0x0d77,
+ 0xc8f5, 0x1e64,
+ 0xc8f6, 0x0d8a,
+ 0xc9a1, 0x0d93,
+ 0xc9a2, 0x1e65,
+ 0xc9a4, 0x0d96,
+ 0xc9af, 0x1e67,
+ 0xc9b0, 0x143b,
+ 0xc9b1, 0x0da3,
+ 0xc9b2, 0x1e68,
+ 0xc9b3, 0x0da5,
+ 0xc9b5, 0x1e69,
+ 0xc9b6, 0x0da8,
+ 0xc9c0, 0x1e6a,
+ 0xc9c1, 0x0db3,
+ 0xc9ce, 0x1e6b,
+ 0xc9cf, 0x0dc1,
+ 0xc9d1, 0x1e6c,
+ 0xc9d2, 0x0dc4,
+ 0xcaa1, 0x0df1,
+ 0xcac3, 0x1e6d,
+ 0xcac4, 0x0e14,
+ 0xcacd, 0x1e6e,
+ 0xcace, 0x0e1e,
+ 0xcada, 0x1e6f,
+ 0xcadb, 0x0e2b,
+ 0xcaf9, 0x1e70,
+ 0xcafa, 0x0e4a,
+ 0xcba1, 0x0e4f,
+ 0xcba2, 0x1e71,
+ 0xcba3, 0x0e51,
+ 0xcba9, 0x1e72,
+ 0xcbaa, 0x0e58,
+ 0xcbcb, 0x1e73,
+ 0xcbcc, 0x0e7a,
+ 0xcbea, 0x1d33,
+ 0xcbeb, 0x0e99,
+ 0xcbf0, 0x1e74,
+ 0xcbf1, 0x0e9f,
+ 0xcbf8, 0x1f2c,
+ 0xcbf9, 0x102f,
+ 0xcbfa, 0x0ea8,
+ 0xcca1, 0x0ead,
+ 0xcccd, 0x1e75,
+ 0xccce, 0x0eda,
+ 0xccd9, 0x1e76,
+ 0xccda, 0x0ee6,
+ 0xccdf, 0x1e77,
+ 0xcce0, 0x0eec,
+ 0xcce2, 0x1e78,
+ 0xcce3, 0x0eef,
+ 0xccf9, 0x1935,
+ 0xccfa, 0x1e79,
+ 0xccfb, 0x0f07,
+ 0xccfc, 0x1e7a,
+ 0xccfd, 0x0f09,
+ 0xccfe, 0x1e7b,
+ 0xcda1, 0x0f0b,
+ 0xcdb2, 0x1e7c,
+ 0xcdb3, 0x0f1d,
+ 0xcdd0, 0x1e7d,
+ 0xcdd1, 0x0f3b,
+ 0xcdd4, 0x1e7e,
+ 0xcdd5, 0x0f3f,
+ 0xcdda, 0x1d34,
+ 0xcddb, 0x0f45,
+ 0xcde9, 0x1e7f,
+ 0xcdea, 0x0f54,
+ 0xcea1, 0x0f69,
+ 0xcecb, 0x1e80,
+ 0xcecc, 0x0f94,
+ 0xcefa, 0x1e81,
+ 0xcefc, 0x0fc4,
+ 0xcfa1, 0x1e83,
+ 0xcfa2, 0x0fc8,
+ 0xcfb1, 0x1e84,
+ 0xcfb2, 0x0fd8,
+ 0xcfb6, 0x1777,
+ 0xcfb7, 0x0fdd,
+ 0xcfb9, 0x1e85,
+ 0xcfba, 0x0fe0,
+ 0xd0a1, 0x0ffa,
+ 0xd0d6, 0x0ea7,
+ 0xd0d7, 0x1030,
+ 0xd1a1, 0x1058,
+ 0xd1bd, 0x1e86,
+ 0xd1be, 0x1075,
+ 0xd1c7, 0x1e87,
+ 0xd1c8, 0x107f,
+ 0xd1cb, 0x1e88,
+ 0xd1cc, 0x1083,
+ 0xd1cd, 0x1e89,
+ 0xd1ce, 0x1085,
+ 0xd2a1, 0x10b6,
+ 0xd3a1, 0x1114,
+ 0xd3b0, 0x1e8a,
+ 0xd3b1, 0x1124,
+ 0xd3ba, 0x1e8b,
+ 0xd3bb, 0x112e,
+ 0xd3de, 0x1e8d,
+ 0xd3df, 0x1152,
+ 0xd3eb, 0x1e8e,
+ 0xd3ec, 0x115f,
+ 0xd4a1, 0x1172,
+ 0xd4c4, 0x1e8f,
+ 0xd4c5, 0x1196,
+ 0xd4e4, 0x0bf7,
+ 0xd4e5, 0x11b6,
+ 0xd5a1, 0x11d0,
+ 0xd5bd, 0x1e90,
+ 0xd5be, 0x11ed,
+ 0xd5e3, 0x1e91,
+ 0xd5e4, 0x1213,
+ 0xd6a1, 0x122e,
+ 0xd6a2, 0x1e92,
+ 0xd6a3, 0x1230,
+ 0xd7a1, 0x128c,
+ 0xd8a1, 0x12ea,
+ 0xd8a4, 0x1e94,
+ 0xd8a5, 0x12ee,
+ 0xd9a1, 0x1348,
+ 0xd9e0, 0x1e95,
+ 0xd9e1, 0x1388,
+ 0xd9ec, 0x1e96,
+ 0xd9ed, 0x1394,
+ 0xd9f8, 0x05a7,
+ 0xd9f9, 0x13a0,
+ 0xdaa1, 0x13a6,
+ 0xdab9, 0x1e97,
+ 0xdaba, 0x13bf,
+ 0xdacd, 0x1e98,
+ 0xdace, 0x13d3,
+ 0xdba1, 0x1404,
+ 0xdbc5, 0x1e99,
+ 0xdbc6, 0x1429,
+ 0xdbca, 0x1e9a,
+ 0xdbcb, 0x142e,
+ 0xdbd8, 0x0da2,
+ 0xdbd9, 0x143c,
+ 0xdbeb, 0x1e9b,
+ 0xdbec, 0x144f,
+ 0xdbed, 0x0c68,
+ 0xdbee, 0x1451,
+ 0xdbf4, 0x1e9c,
+ 0xdbf5, 0x1458,
+ 0xdca1, 0x1462,
+ 0xdda1, 0x14c0,
+ 0xdea1, 0x151e,
+ 0xdeb9, 0x0c6d,
+ 0xdeba, 0x1537,
+ 0xded0, 0x1e9d,
+ 0xded1, 0x154e,
+ 0xdef5, 0x05ff,
+ 0xdef6, 0x1573,
+ 0xdfa1, 0x157c,
+ 0xe0a1, 0x15da,
+ 0xe0a6, 0x1e9f,
+ 0xe0a7, 0x15e0,
+ 0xe0df, 0x1ea0,
+ 0xe0e0, 0x1619,
+ 0xe0f6, 0x1d35,
+ 0xe0f7, 0x1630,
+ 0xe1a1, 0x1638,
+ 0xe1ab, 0x1ea1,
+ 0xe1ac, 0x1643,
+ 0xe1b0, 0x1ea2,
+ 0xe1b2, 0x1649,
+ 0xe2a1, 0x1696,
+ 0xe2ab, 0x1ea4,
+ 0xe2ac, 0x16a1,
+ 0xe2e8, 0x07ee,
+ 0xe2e9, 0x16de,
+ 0xe2ea, 0x0c51,
+ 0xe2eb, 0x16e0,
+ 0xe2ef, 0x1ea5,
+ 0xe2f0, 0x16e5,
+ 0xe3a1, 0x16f4,
+ 0xe3ca, 0x1ea6,
+ 0xe3cb, 0x171e,
+ 0xe3d4, 0x1ea7,
+ 0xe3d5, 0x1728,
+ 0xe3de, 0x05d4,
+ 0xe3df, 0x1732,
+ 0xe4a1, 0x1752,
+ 0xe4b9, 0x1ea8,
+ 0xe4ba, 0x176b,
+ 0xe4c6, 0x0fdc,
+ 0xe4c7, 0x1778,
+ 0xe4e4, 0x1ea9,
+ 0xe4e5, 0x1796,
+ 0xe4ee, 0x1eaa,
+ 0xe4ef, 0x17a0,
+ 0xe5a1, 0x17b0,
+ 0xe5b9, 0x1eab,
+ 0xe5ba, 0x17c9,
+ 0xe5bb, 0x1eac,
+ 0xe5bc, 0x17cb,
+ 0xe5c6, 0x1ead,
+ 0xe5c7, 0x17d6,
+ 0xe6a1, 0x180e,
+ 0xe6c6, 0x1eae,
+ 0xe6c7, 0x1834,
+ 0xe7a1, 0x186c,
+ 0xe7e4, 0x1eaf,
+ 0xe7e5, 0x18b0,
+ 0xe7e9, 0x1eb0,
+ 0xe7ea, 0x18b5,
+ 0xe7f2, 0x1eb1,
+ 0xe7f3, 0x18be,
+ 0xe8a1, 0x18ca,
+ 0xe8b4, 0x1eb2,
+ 0xe8b5, 0x18de,
+ 0xe8bb, 0x1eb3,
+ 0xe8bc, 0x18e5,
+ 0xe8f4, 0x1eb4,
+ 0xe8f5, 0x191e,
+ 0xe9a1, 0x1928,
+ 0xe9a2, 0x08f5,
+ 0xe9a3, 0x192a,
+ 0xe9ae, 0x0f05,
+ 0xe9af, 0x1936,
+ 0xe9da, 0x05a0,
+ 0xe9db, 0x1962,
+ 0xeaa1, 0x1986,
+ 0xeaa4, 0x0d1e,
+ 0xeaa5, 0x198a,
+ 0xeaa7, 0x1eb6,
+ 0xeaa8, 0x198d,
+ 0xeabd, 0x1eb7,
+ 0xeabe, 0x19a3,
+ 0xeaef, 0x1eb8,
+ 0xeaf0, 0x19d5,
+ 0xeba1, 0x19e4,
+ 0xebb2, 0x1eb9,
+ 0xebb3, 0x19f6,
+ 0xebdd, 0x060e,
+ 0xebde, 0x1a21,
+ 0xebe6, 0x1eba,
+ 0xebe7, 0x1a2a,
+ 0xebf6, 0x1ebb,
+ 0xebf7, 0x1a3a,
+ 0xeca1, 0x1a42,
+ 0xeccd, 0x0aaa,
+ 0xecce, 0x1a6f,
+ 0xece9, 0x1ebc,
+ 0xecea, 0x1a8b,
+ 0xecf4, 0x1ebd,
+ 0xecf5, 0x1a96,
+ 0xeda1, 0x1aa0,
+ 0xedce, 0x1ebe,
+ 0xedcf, 0x1ace,
+ 0xedec, 0x1ebf,
+ 0xeded, 0x1aec,
+ 0xedee, 0x1ec0,
+ 0xedef, 0x1aee,
+ 0xeea1, 0x1afe,
+ 0xeea9, 0x1ec1,
+ 0xeeaa, 0x1b07,
+ 0xeebd, 0x1ec2,
+ 0xeebe, 0x1b1b,
+ 0xeed7, 0x1ec3,
+ 0xeed8, 0x1b35,
+ 0xefa1, 0x1b5c,
+ 0xf0a1, 0x1bba,
+ 0xf0c5, 0x1ec6,
+ 0xf0c6, 0x1bdf,
+ 0xf0d1, 0x1ec7,
+ 0xf0d2, 0x1beb,
+ 0xf0d7, 0x1ec8,
+ 0xf0d8, 0x1bf1,
+ 0xf0f4, 0x0731,
+ 0xf0f5, 0x1ec9,
+ 0xf0f6, 0x1c0f,
+ 0xf1a1, 0x1c18,
+ 0xf2a1, 0x1c76,
+ 0xf2ad, 0x1eca,
+ 0xf2ae, 0x1c83,
+ 0xf2bc, 0x1ecb,
+ 0xf2bd, 0x1c92,
+ 0xf2cd, 0x0477,
+ 0xf2ce, 0x1ecc,
+ 0xf2cf, 0x1ca4,
+ 0xf2f4, 0x0529,
+ 0xf2f5, 0x1cca,
+ 0xf3a1, 0x1cd4,
+ 0xf3d1, 0x1ecd,
+ 0xf3d2, 0x1d05,
+ 0xf3fd, 0x1ece,
+ 0xf3fe, 0x1d31,
+ 0xa1a2, 0x1ecf,
+ 0xa1b1, 0x1ed1,
+ 0xa1bc, 0x1ed3,
+ 0xa1c1, 0x1ed6,
+ 0xa1ca, 0x1edb,
+ 0xa1e1, 0x1eed,
+ 0xa4a1, 0x1eee,
+ 0xa4a3, 0x1eef,
+ 0xa4a5, 0x1ef0,
+ 0xa4a7, 0x1ef1,
+ 0xa4a9, 0x1ef2,
+ 0xa4c3, 0x1ef3,
+ 0xa4e3, 0x1ef4,
+ 0xa4e5, 0x1ef5,
+ 0xa4e7, 0x1ef6,
+ 0xa4ee, 0x1ef7,
+ 0xa5a1, 0x1ef8,
+ 0xa5a3, 0x1ef9,
+ 0xa5a5, 0x1efa,
+ 0xa5a7, 0x1efb,
+ 0xa5a9, 0x1efc,
+ 0xa5c3, 0x1efd,
+ 0xa5e3, 0x1efe,
+ 0xa5e5, 0x1eff,
+ 0xa5e7, 0x1f00,
+ 0xa5ee, 0x1f01,
+ 0xa5f5, 0x1f02,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1278EUCVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 },
+ { 0x0000, 0x0000, 0x0000( 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan1278EUCVMap2, 653
+};
+
static Gushort japan1278HMap2[1250] = {
0x0000, 0x0000,
0x2121, 0x0279,
@@ -1321,6 +2031,7 @@ static Gushort japan1278HMap2[1250] = {
};
static GfxFontEncoding16 japan1278HEnc16 = {
+ 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, 1,
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1351,7 +2062,7 @@ static GfxFontEncoding16 japan1278HEnc16 = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000( 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -2002,6 +2713,7 @@ static Gushort japan1278RKSJHMap2[1252] = {
};
static GfxFontEncoding16 japan1278RKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2053,6 +2765,1423 @@ static GfxFontEncoding16 japan1278RKSJHEnc16 = {
japan1278RKSJHMap2, 626
};
+static Gushort japan1278RKSJVMap2[1306] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x889f, 0x0465,
+ 0x88a0, 0x1dd1,
+ 0x88a1, 0x0467,
+ 0x88a7, 0x204a,
+ 0x88a8, 0x046e,
+ 0x88b0, 0x1f19,
+ 0x88b1, 0x1ca2,
+ 0x88b2, 0x0478,
+ 0x88b9, 0x1dd2,
+ 0x88ba, 0x0480,
+ 0x88ec, 0x1dd3,
+ 0x88ed, 0x04b3,
+ 0x88f1, 0x1dd4,
+ 0x88f2, 0x04b8,
+ 0x88fa, 0x1dd5,
+ 0x88fb, 0x04c1,
+ 0x8940, 0x04c3,
+ 0x8949, 0x1dd6,
+ 0x894a, 0x04cd,
+ 0x8954, 0x1dd7,
+ 0x8955, 0x04d8,
+ 0x8958, 0x1dd8,
+ 0x8959, 0x04dc,
+ 0x895c, 0x1dda,
+ 0x895d, 0x04e0,
+ 0x8961, 0x1ddb,
+ 0x8962, 0x04e5,
+ 0x8980, 0x0502,
+ 0x898b, 0x1ddc,
+ 0x898c, 0x050e,
+ 0x89a6, 0x1ddd,
+ 0x89a7, 0x1cc9,
+ 0x89a8, 0x1dde,
+ 0x89a9, 0x052b,
+ 0x89de, 0x1ddf,
+ 0x89df, 0x0561,
+ 0x89f8, 0x1de0,
+ 0x89f9, 0x057b,
+ 0x89fb, 0x1de1,
+ 0x89fc, 0x057e,
+ 0x8a40, 0x057f,
+ 0x8a41, 0x1de2,
+ 0x8a42, 0x0581,
+ 0x8a61, 0x1961,
+ 0x8a62, 0x05a1,
+ 0x8a68, 0x139f,
+ 0x8a69, 0x05a8,
+ 0x8a80, 0x05be,
+ 0x8a85, 0x1de3,
+ 0x8a86, 0x05c4,
+ 0x8a8b, 0x1de4,
+ 0x8a8c, 0x05ca,
+ 0x8a93, 0x1de5,
+ 0x8a94, 0x05d2,
+ 0x8a96, 0x1731,
+ 0x8a97, 0x05d5,
+ 0x8a9a, 0x1de6,
+ 0x8a9b, 0x05d9,
+ 0x8ac0, 0x1de7,
+ 0x8ac1, 0x1572,
+ 0x8ac2, 0x0600,
+ 0x8acb, 0x1de8,
+ 0x8acc, 0x060a,
+ 0x8ad0, 0x1a20,
+ 0x8ad1, 0x060f,
+ 0x8ae3, 0x1de9,
+ 0x8ae4, 0x0622,
+ 0x8b40, 0x063b,
+ 0x8b4a, 0x1dea,
+ 0x8b4b, 0x0646,
+ 0x8b5f, 0x1deb,
+ 0x8b60, 0x065b,
+ 0x8b80, 0x067a,
+ 0x8ba0, 0x1dec,
+ 0x8ba1, 0x069b,
+ 0x8ba8, 0x1ded,
+ 0x8ba9, 0x06a3,
+ 0x8bc4, 0x1d32,
+ 0x8bc5, 0x06bf,
+ 0x8bcd, 0x1dee,
+ 0x8bce, 0x06c8,
+ 0x8beb, 0x1def,
+ 0x8bec, 0x06e6,
+ 0x8bf2, 0x1df0,
+ 0x8bf3, 0x06ed,
+ 0x8bf9, 0x1df1,
+ 0x8bfa, 0x06f4,
+ 0x8bfb, 0x1df2,
+ 0x8bfc, 0x06f6,
+ 0x8c40, 0x06f7,
+ 0x8c43, 0x1df3,
+ 0x8c44, 0x06fb,
+ 0x8c56, 0x1df4,
+ 0x8c57, 0x070e,
+ 0x8c64, 0x1df5,
+ 0x8c65, 0x071c,
+ 0x8c6d, 0x1df6,
+ 0x8c6e, 0x0725,
+ 0x8c71, 0x1df7,
+ 0x8c72, 0x0729,
+ 0x8c74, 0x1df8,
+ 0x8c75, 0x072c,
+ 0x8c7a, 0x1c0d,
+ 0x8c7b, 0x0732,
+ 0x8c80, 0x0736,
+ 0x8c84, 0x1df9,
+ 0x8c85, 0x073b,
+ 0x8c91, 0x1dfa,
+ 0x8c92, 0x0748,
+ 0x8c99, 0x1dfb,
+ 0x8c9a, 0x0750,
+ 0x8c9e, 0x1dfc,
+ 0x8c9f, 0x0755,
+ 0x8cb2, 0x1dfd,
+ 0x8cb3, 0x0769,
+ 0x8cbf, 0x1dfe,
+ 0x8cc0, 0x0776,
+ 0x8d40, 0x07b3,
+ 0x8d4a, 0x1dff,
+ 0x8d4b, 0x07be,
+ 0x8d56, 0x1e00,
+ 0x8d57, 0x07ca,
+ 0x8d61, 0x1e01,
+ 0x8d62, 0x07d5,
+ 0x8d7b, 0x16dd,
+ 0x8d7c, 0x07ef,
+ 0x8d80, 0x07f2,
+ 0x8d8d, 0x1e02,
+ 0x8d8e, 0x0800,
+ 0x8d94, 0x1e03,
+ 0x8d95, 0x0807,
+ 0x8d99, 0x1e04,
+ 0x8d9a, 0x080c,
+ 0x8dd1, 0x1e05,
+ 0x8dd2, 0x0844,
+ 0x8de5, 0x1e06,
+ 0x8de6, 0x0858,
+ 0x8df2, 0x1e07,
+ 0x8df3, 0x0865,
+ 0x8e40, 0x086f,
+ 0x8e46, 0x1e08,
+ 0x8e47, 0x0876,
+ 0x8e49, 0x1e09,
+ 0x8e4a, 0x0879,
+ 0x8e4b, 0x1e0a,
+ 0x8e4c, 0x087b,
+ 0x8e58, 0x1e0b,
+ 0x8e59, 0x0888,
+ 0x8e80, 0x08ae,
+ 0x8ec6, 0x1e0d,
+ 0x8ec7, 0x1929,
+ 0x8ec8, 0x08f6,
+ 0x8ed5, 0x1e0e,
+ 0x8ed6, 0x0904,
+ 0x8edb, 0x1e0f,
+ 0x8edd, 0x090b,
+ 0x8f40, 0x092b,
+ 0x8f4a, 0x1e11,
+ 0x8f4b, 0x0936,
+ 0x8f55, 0x1e12,
+ 0x8f56, 0x0941,
+ 0x8f80, 0x096a,
+ 0x8f8c, 0x1e13,
+ 0x8f8e, 0x0978,
+ 0x8f92, 0x1e15,
+ 0x8f94, 0x097e,
+ 0x8fa3, 0x1e17,
+ 0x8fa4, 0x098e,
+ 0x8fb1, 0x1e18,
+ 0x8fb2, 0x099c,
+ 0x8fbd, 0x1e19,
+ 0x8fbe, 0x09a8,
+ 0x8fd3, 0x1e1a,
+ 0x8fd4, 0x09be,
+ 0x8fdd, 0x1e1b,
+ 0x8fde, 0x09c8,
+ 0x8fe2, 0x1e1c,
+ 0x8fe3, 0x09cd,
+ 0x9040, 0x09e7,
+ 0x9049, 0x1e1d,
+ 0x904a, 0x09f1,
+ 0x9078, 0x1e1e,
+ 0x9079, 0x0a20,
+ 0x9080, 0x1e1f,
+ 0x9081, 0x0a27,
+ 0x9089, 0x1e20,
+ 0x908a, 0x0a30,
+ 0x90a0, 0x1e21,
+ 0x90a1, 0x0a47,
+ 0x90c0, 0x1e22,
+ 0x90c1, 0x0a67,
+ 0x90e4, 0x1e23,
+ 0x90e5, 0x0a8b,
+ 0x90ef, 0x1e24,
+ 0x90f1, 0x0a97,
+ 0x90f7, 0x1e26,
+ 0x90f9, 0x0a9f,
+ 0x9140, 0x0aa3,
+ 0x9146, 0x1e28,
+ 0x9147, 0x1a6e,
+ 0x9148, 0x0aab,
+ 0x9158, 0x1e29,
+ 0x9159, 0x0abc,
+ 0x916b, 0x1e2a,
+ 0x916c, 0x0acf,
+ 0x916e, 0x1e2b,
+ 0x916f, 0x0ad2,
+ 0x917e, 0x1e2c,
+ 0x9180, 0x0ae2,
+ 0x9189, 0x1e2d,
+ 0x918a, 0x0aec,
+ 0x91bb, 0x1e2e,
+ 0x91bc, 0x0b1e,
+ 0x91cb, 0x1e2f,
+ 0x91cc, 0x0b2e,
+ 0x91da, 0x1e30,
+ 0x91db, 0x0b3d,
+ 0x91e1, 0x1e31,
+ 0x91e2, 0x0b44,
+ 0x91ed, 0x1e32,
+ 0x91ee, 0x0b50,
+ 0x91f3, 0x1e33,
+ 0x91f5, 0x0b57,
+ 0x91fb, 0x1e35,
+ 0x91fc, 0x0b5e,
+ 0x9240, 0x0b5f,
+ 0x9246, 0x1e36,
+ 0x9247, 0x0b66,
+ 0x9248, 0x1e37,
+ 0x924a, 0x0b69,
+ 0x924c, 0x1e39,
+ 0x924e, 0x0b6d,
+ 0x925c, 0x1e3b,
+ 0x925d, 0x0b7c,
+ 0x9280, 0x0b9e,
+ 0x9290, 0x1e3c,
+ 0x9291, 0x0baf,
+ 0x9295, 0x1e3d,
+ 0x9296, 0x0bb4,
+ 0x929c, 0x1e3e,
+ 0x929d, 0x0bbb,
+ 0x92bb, 0x1e3f,
+ 0x92bc, 0x0bda,
+ 0x92c6, 0x1e40,
+ 0x92c7, 0x0be5,
+ 0x92c8, 0x1e41,
+ 0x92c9, 0x0be7,
+ 0x92cb, 0x1e42,
+ 0x92cc, 0x0bea,
+ 0x92cd, 0x1e43,
+ 0x92ce, 0x0bec,
+ 0x92d2, 0x204b,
+ 0x92d3, 0x0bf1,
+ 0x92d9, 0x11b5,
+ 0x92da, 0x0bf8,
+ 0x9340, 0x0c1b,
+ 0x9341, 0x1e44,
+ 0x9342, 0x0c1d,
+ 0x9346, 0x1e45,
+ 0x9347, 0x0c22,
+ 0x934d, 0x1e46,
+ 0x934e, 0x0c29,
+ 0x9355, 0x1e47,
+ 0x9356, 0x0c31,
+ 0x935e, 0x1e48,
+ 0x935f, 0x0c3a,
+ 0x9367, 0x1e49,
+ 0x9368, 0x0c43,
+ 0x936a, 0x1e4a,
+ 0x936b, 0x0c46,
+ 0x9370, 0x1e4b,
+ 0x9372, 0x0c4d,
+ 0x9376, 0x16df,
+ 0x9377, 0x0c52,
+ 0x9380, 0x0c5a,
+ 0x9384, 0x1e4d,
+ 0x9385, 0x0c5f,
+ 0x938e, 0x1450,
+ 0x938f, 0x0c69,
+ 0x9393, 0x1536,
+ 0x9394, 0x0c6e,
+ 0x9398, 0x1e4e,
+ 0x9399, 0x0c73,
+ 0x93bc, 0x1e4f,
+ 0x93bd, 0x0c97,
+ 0x93c0, 0x1e50,
+ 0x93c1, 0x0c9b,
+ 0x93d2, 0x1e51,
+ 0x93d4, 0x0cae,
+ 0x93d9, 0x1e53,
+ 0x93db, 0x0cb5,
+ 0x93df, 0x1e55,
+ 0x93e0, 0x0cba,
+ 0x93e4, 0x1e56,
+ 0x93e6, 0x0cc0,
+ 0x93e8, 0x1e58,
+ 0x93e9, 0x0cc3,
+ 0x93f4, 0x1aed,
+ 0x93f5, 0x0ccf,
+ 0x9440, 0x0cd7,
+ 0x9448, 0x1e59,
+ 0x9449, 0x0ce0,
+ 0x9458, 0x1e5a,
+ 0x9459, 0x0cf0,
+ 0x9476, 0x1e5b,
+ 0x9477, 0x0d0e,
+ 0x9480, 0x0d16,
+ 0x9487, 0x1e5c,
+ 0x9488, 0x1989,
+ 0x9489, 0x1e5d,
+ 0x948a, 0x0d20,
+ 0x948d, 0x1e5e,
+ 0x948e, 0x0d24,
+ 0x94a2, 0x1e5f,
+ 0x94a3, 0x0d39,
+ 0x94ac, 0x1e60,
+ 0x94ad, 0x0d43,
+ 0x94ae, 0x1e61,
+ 0x94af, 0x0d45,
+ 0x94d2, 0x1e62,
+ 0x94d3, 0x0d69,
+ 0x94e0, 0x1e63,
+ 0x94e1, 0x0d77,
+ 0x94f3, 0x1e64,
+ 0x94f4, 0x0d8a,
+ 0x9540, 0x0d93,
+ 0x9541, 0x1e65,
+ 0x9543, 0x0d96,
+ 0x954e, 0x1e67,
+ 0x954f, 0x143b,
+ 0x9550, 0x0da3,
+ 0x9551, 0x1e68,
+ 0x9552, 0x0da5,
+ 0x9554, 0x1e69,
+ 0x9555, 0x0da8,
+ 0x955f, 0x1e6a,
+ 0x9560, 0x0db3,
+ 0x956d, 0x1e6b,
+ 0x956e, 0x0dc1,
+ 0x9570, 0x1e6c,
+ 0x9571, 0x0dc4,
+ 0x9580, 0x0dd2,
+ 0x95c1, 0x1e6d,
+ 0x95c2, 0x0e14,
+ 0x95cb, 0x1e6e,
+ 0x95cc, 0x0e1e,
+ 0x95d8, 0x1e6f,
+ 0x95d9, 0x0e2b,
+ 0x95f7, 0x1e70,
+ 0x95f8, 0x0e4a,
+ 0x9640, 0x0e4f,
+ 0x9641, 0x1e71,
+ 0x9642, 0x0e51,
+ 0x9648, 0x1e72,
+ 0x9649, 0x0e58,
+ 0x966a, 0x1e73,
+ 0x966b, 0x0e7a,
+ 0x9680, 0x0e8e,
+ 0x968a, 0x1d33,
+ 0x968b, 0x0e99,
+ 0x9690, 0x1e74,
+ 0x9691, 0x0e9f,
+ 0x9698, 0x1f2c,
+ 0x9699, 0x102f,
+ 0x969a, 0x0ea8,
+ 0x96cb, 0x1e75,
+ 0x96cc, 0x0eda,
+ 0x96d7, 0x1e76,
+ 0x96d8, 0x0ee6,
+ 0x96dd, 0x1e77,
+ 0x96de, 0x0eec,
+ 0x96e0, 0x1e78,
+ 0x96e1, 0x0eef,
+ 0x96f7, 0x1935,
+ 0x96f8, 0x1e79,
+ 0x96f9, 0x0f07,
+ 0x96fa, 0x1e7a,
+ 0x96fb, 0x0f09,
+ 0x96fc, 0x1e7b,
+ 0x9740, 0x0f0b,
+ 0x9751, 0x1e7c,
+ 0x9752, 0x0f1d,
+ 0x976f, 0x1e7d,
+ 0x9770, 0x0f3b,
+ 0x9773, 0x1e7e,
+ 0x9774, 0x0f3f,
+ 0x9779, 0x1d34,
+ 0x977a, 0x0f45,
+ 0x9780, 0x0f4a,
+ 0x9789, 0x1e7f,
+ 0x978a, 0x0f54,
+ 0x97c9, 0x1e80,
+ 0x97ca, 0x0f94,
+ 0x97f8, 0x1e81,
+ 0x97fa, 0x0fc4,
+ 0x9840, 0x1e83,
+ 0x9841, 0x0fc8,
+ 0x9850, 0x1e84,
+ 0x9851, 0x0fd8,
+ 0x9855, 0x1777,
+ 0x9856, 0x0fdd,
+ 0x9858, 0x1e85,
+ 0x9859, 0x0fe0,
+ 0x989f, 0x0ffa,
+ 0x98d4, 0x0ea7,
+ 0x98d5, 0x1030,
+ 0x9940, 0x1058,
+ 0x995c, 0x1e86,
+ 0x995d, 0x1075,
+ 0x9966, 0x1e87,
+ 0x9967, 0x107f,
+ 0x996a, 0x1e88,
+ 0x996b, 0x1083,
+ 0x996c, 0x1e89,
+ 0x996d, 0x1085,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a4f, 0x1e8a,
+ 0x9a50, 0x1124,
+ 0x9a59, 0x1e8b,
+ 0x9a5a, 0x112e,
+ 0x9a7d, 0x1e8d,
+ 0x9a7e, 0x1152,
+ 0x9a80, 0x1153,
+ 0x9a8b, 0x1e8e,
+ 0x9a8c, 0x115f,
+ 0x9ac2, 0x1e8f,
+ 0x9ac3, 0x1196,
+ 0x9ae2, 0x0bf7,
+ 0x9ae3, 0x11b6,
+ 0x9b40, 0x11d0,
+ 0x9b5c, 0x1e90,
+ 0x9b5d, 0x11ed,
+ 0x9b80, 0x120f,
+ 0x9b83, 0x1e91,
+ 0x9b84, 0x1213,
+ 0x9ba0, 0x1e92,
+ 0x9ba1, 0x1230,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9ca2, 0x1e94,
+ 0x9ca3, 0x12ee,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1e95,
+ 0x9d81, 0x1388,
+ 0x9d8c, 0x1e96,
+ 0x9d8d, 0x1394,
+ 0x9d98, 0x05a7,
+ 0x9d99, 0x13a0,
+ 0x9db7, 0x1e97,
+ 0x9db8, 0x13bf,
+ 0x9dcb, 0x1e98,
+ 0x9dcc, 0x13d3,
+ 0x9e40, 0x1404,
+ 0x9e64, 0x1e99,
+ 0x9e65, 0x1429,
+ 0x9e69, 0x1e9a,
+ 0x9e6a, 0x142e,
+ 0x9e77, 0x0da2,
+ 0x9e78, 0x143c,
+ 0x9e80, 0x1443,
+ 0x9e8b, 0x1e9b,
+ 0x9e8c, 0x144f,
+ 0x9e8d, 0x0c68,
+ 0x9e8e, 0x1451,
+ 0x9e94, 0x1e9c,
+ 0x9e95, 0x1458,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0x9fb7, 0x0c6d,
+ 0x9fb8, 0x1537,
+ 0x9fce, 0x1e9d,
+ 0x9fcf, 0x154e,
+ 0x9ff3, 0x05ff,
+ 0x9ff4, 0x1573,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe0a4, 0x1e9f,
+ 0xe0a5, 0x15e0,
+ 0xe0dd, 0x1ea0,
+ 0xe0de, 0x1619,
+ 0xe0f4, 0x1d35,
+ 0xe0f5, 0x1630,
+ 0xe140, 0x1638,
+ 0xe14a, 0x1ea1,
+ 0xe14b, 0x1643,
+ 0xe14f, 0x1ea2,
+ 0xe151, 0x1649,
+ 0xe180, 0x1677,
+ 0xe1a9, 0x1ea4,
+ 0xe1aa, 0x16a1,
+ 0xe1e6, 0x07ee,
+ 0xe1e7, 0x16de,
+ 0xe1e8, 0x0c51,
+ 0xe1e9, 0x16e0,
+ 0xe1ed, 0x1ea5,
+ 0xe1ee, 0x16e5,
+ 0xe240, 0x16f4,
+ 0xe269, 0x1ea6,
+ 0xe26a, 0x171e,
+ 0xe273, 0x1ea7,
+ 0xe274, 0x1728,
+ 0xe27d, 0x05d4,
+ 0xe27e, 0x1732,
+ 0xe280, 0x1733,
+ 0xe2b7, 0x1ea8,
+ 0xe2b8, 0x176b,
+ 0xe2c4, 0x0fdc,
+ 0xe2c5, 0x1778,
+ 0xe2e2, 0x1ea9,
+ 0xe2e3, 0x1796,
+ 0xe2ec, 0x1eaa,
+ 0xe2ed, 0x17a0,
+ 0xe340, 0x17b0,
+ 0xe358, 0x1eab,
+ 0xe359, 0x17c9,
+ 0xe35a, 0x1eac,
+ 0xe35b, 0x17cb,
+ 0xe365, 0x1ead,
+ 0xe366, 0x17d6,
+ 0xe380, 0x17ef,
+ 0xe3c4, 0x1eae,
+ 0xe3c5, 0x1834,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe484, 0x1eaf,
+ 0xe485, 0x18b0,
+ 0xe489, 0x1eb0,
+ 0xe48a, 0x18b5,
+ 0xe492, 0x1eb1,
+ 0xe493, 0x18be,
+ 0xe4b2, 0x1eb2,
+ 0xe4b3, 0x18de,
+ 0xe4b9, 0x1eb3,
+ 0xe4ba, 0x18e5,
+ 0xe4f2, 0x1eb4,
+ 0xe4f3, 0x191e,
+ 0xe540, 0x1928,
+ 0xe541, 0x08f5,
+ 0xe542, 0x192a,
+ 0xe54d, 0x0f05,
+ 0xe54e, 0x1936,
+ 0xe579, 0x05a0,
+ 0xe57a, 0x1962,
+ 0xe580, 0x1967,
+ 0xe5a2, 0x0d1e,
+ 0xe5a3, 0x198a,
+ 0xe5a5, 0x1eb6,
+ 0xe5a6, 0x198d,
+ 0xe5bb, 0x1eb7,
+ 0xe5bc, 0x19a3,
+ 0xe5ed, 0x1eb8,
+ 0xe5ee, 0x19d5,
+ 0xe640, 0x19e4,
+ 0xe651, 0x1eb9,
+ 0xe652, 0x19f6,
+ 0xe67c, 0x060e,
+ 0xe67d, 0x1a21,
+ 0xe680, 0x1a23,
+ 0xe686, 0x1eba,
+ 0xe687, 0x1a2a,
+ 0xe696, 0x1ebb,
+ 0xe697, 0x1a3a,
+ 0xe6cb, 0x0aaa,
+ 0xe6cc, 0x1a6f,
+ 0xe6e7, 0x1ebc,
+ 0xe6e8, 0x1a8b,
+ 0xe6f2, 0x1ebd,
+ 0xe6f3, 0x1a96,
+ 0xe740, 0x1aa0,
+ 0xe76d, 0x1ebe,
+ 0xe76e, 0x1ace,
+ 0xe780, 0x1adf,
+ 0xe78c, 0x1ebf,
+ 0xe78d, 0x1aec,
+ 0xe78e, 0x1ec0,
+ 0xe78f, 0x1aee,
+ 0xe7a7, 0x1ec1,
+ 0xe7a8, 0x1b07,
+ 0xe7bb, 0x1ec2,
+ 0xe7bc, 0x1b1b,
+ 0xe7d5, 0x1ec3,
+ 0xe7d6, 0x1b35,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe8c3, 0x1ec6,
+ 0xe8c4, 0x1bdf,
+ 0xe8cf, 0x1ec7,
+ 0xe8d0, 0x1beb,
+ 0xe8d5, 0x1ec8,
+ 0xe8d6, 0x1bf1,
+ 0xe8f2, 0x0731,
+ 0xe8f3, 0x1ec9,
+ 0xe8f4, 0x1c0f,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xe9ab, 0x1eca,
+ 0xe9ac, 0x1c83,
+ 0xe9ba, 0x1ecb,
+ 0xe9bb, 0x1c92,
+ 0xe9cb, 0x0477,
+ 0xe9cc, 0x1ecc,
+ 0xe9cd, 0x1ca4,
+ 0xe9f2, 0x0529,
+ 0xe9f3, 0x1cca,
+ 0xea40, 0x1cd4,
+ 0xea70, 0x1ecd,
+ 0xea71, 0x1d05,
+ 0xea80, 0x1d13,
+ 0xea9d, 0x1ece,
+ 0xea9e, 0x1d31,
+ 0x8141, 0x1ecf,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8169, 0x1edb,
+ 0x8181, 0x1eed,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1278RKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan1278RKSJVMap2, 653
+};
+
+static Gushort japan1278VMap2[1304] = {
+ 0x0000, 0x0000,
+ 0x2121, 0x0279,
+ 0x2221, 0x02d7,
+ 0x2330, 0x030c,
+ 0x2341, 0x0316,
+ 0x2361, 0x0330,
+ 0x2421, 0x034a,
+ 0x2521, 0x039d,
+ 0x2621, 0x03f3,
+ 0x2641, 0x040b,
+ 0x2721, 0x0423,
+ 0x2751, 0x0444,
+ 0x3021, 0x0465,
+ 0x3022, 0x1dd1,
+ 0x3023, 0x0467,
+ 0x3029, 0x204a,
+ 0x302a, 0x046e,
+ 0x3032, 0x1f19,
+ 0x3033, 0x1ca2,
+ 0x3034, 0x0478,
+ 0x303b, 0x1dd2,
+ 0x303c, 0x0480,
+ 0x306e, 0x1dd3,
+ 0x306f, 0x04b3,
+ 0x3073, 0x1dd4,
+ 0x3074, 0x04b8,
+ 0x307c, 0x1dd5,
+ 0x307d, 0x04c1,
+ 0x3121, 0x04c3,
+ 0x312a, 0x1dd6,
+ 0x312b, 0x04cd,
+ 0x3135, 0x1dd7,
+ 0x3136, 0x04d8,
+ 0x3139, 0x1dd8,
+ 0x313a, 0x04dc,
+ 0x313d, 0x1dda,
+ 0x313e, 0x04e0,
+ 0x3142, 0x1ddb,
+ 0x3143, 0x04e5,
+ 0x316b, 0x1ddc,
+ 0x316c, 0x050e,
+ 0x3221, 0x0521,
+ 0x3228, 0x1ddd,
+ 0x3229, 0x1cc9,
+ 0x322a, 0x1dde,
+ 0x322b, 0x052b,
+ 0x3260, 0x1ddf,
+ 0x3261, 0x0561,
+ 0x327a, 0x1de0,
+ 0x327b, 0x057b,
+ 0x327d, 0x1de1,
+ 0x327e, 0x057e,
+ 0x3321, 0x057f,
+ 0x3322, 0x1de2,
+ 0x3323, 0x0581,
+ 0x3342, 0x1961,
+ 0x3343, 0x05a1,
+ 0x3349, 0x139f,
+ 0x334a, 0x05a8,
+ 0x3365, 0x1de3,
+ 0x3366, 0x05c4,
+ 0x336b, 0x1de4,
+ 0x336c, 0x05ca,
+ 0x3373, 0x1de5,
+ 0x3374, 0x05d2,
+ 0x3376, 0x1731,
+ 0x3377, 0x05d5,
+ 0x337a, 0x1de6,
+ 0x337b, 0x05d9,
+ 0x3421, 0x05dd,
+ 0x3442, 0x1de7,
+ 0x3443, 0x1572,
+ 0x3444, 0x0600,
+ 0x344d, 0x1de8,
+ 0x344e, 0x060a,
+ 0x3452, 0x1a20,
+ 0x3453, 0x060f,
+ 0x3465, 0x1de9,
+ 0x3466, 0x0622,
+ 0x3521, 0x063b,
+ 0x352b, 0x1dea,
+ 0x352c, 0x0646,
+ 0x3540, 0x1deb,
+ 0x3541, 0x065b,
+ 0x3621, 0x0699,
+ 0x3622, 0x1dec,
+ 0x3623, 0x069b,
+ 0x362a, 0x1ded,
+ 0x362b, 0x06a3,
+ 0x3646, 0x1d32,
+ 0x3647, 0x06bf,
+ 0x364f, 0x1dee,
+ 0x3650, 0x06c8,
+ 0x366d, 0x1def,
+ 0x366e, 0x06e6,
+ 0x3674, 0x1df0,
+ 0x3675, 0x06ed,
+ 0x367b, 0x1df1,
+ 0x367c, 0x06f4,
+ 0x367d, 0x1df2,
+ 0x367e, 0x06f6,
+ 0x3721, 0x06f7,
+ 0x3724, 0x1df3,
+ 0x3725, 0x06fb,
+ 0x3737, 0x1df4,
+ 0x3738, 0x070e,
+ 0x3745, 0x1df5,
+ 0x3746, 0x071c,
+ 0x374e, 0x1df6,
+ 0x374f, 0x0725,
+ 0x3752, 0x1df7,
+ 0x3753, 0x0729,
+ 0x3755, 0x1df8,
+ 0x3756, 0x072c,
+ 0x375b, 0x1c0d,
+ 0x375c, 0x0732,
+ 0x3764, 0x1df9,
+ 0x3765, 0x073b,
+ 0x3771, 0x1dfa,
+ 0x3772, 0x0748,
+ 0x3779, 0x1dfb,
+ 0x377a, 0x0750,
+ 0x377e, 0x1dfc,
+ 0x3821, 0x0755,
+ 0x3834, 0x1dfd,
+ 0x3835, 0x0769,
+ 0x3841, 0x1dfe,
+ 0x3842, 0x0776,
+ 0x3921, 0x07b3,
+ 0x392b, 0x1dff,
+ 0x392c, 0x07be,
+ 0x3937, 0x1e00,
+ 0x3938, 0x07ca,
+ 0x3942, 0x1e01,
+ 0x3943, 0x07d5,
+ 0x395c, 0x16dd,
+ 0x395d, 0x07ef,
+ 0x396d, 0x1e02,
+ 0x396e, 0x0800,
+ 0x3974, 0x1e03,
+ 0x3975, 0x0807,
+ 0x3979, 0x1e04,
+ 0x397a, 0x080c,
+ 0x3a21, 0x0811,
+ 0x3a53, 0x1e05,
+ 0x3a54, 0x0844,
+ 0x3a67, 0x1e06,
+ 0x3a68, 0x0858,
+ 0x3a74, 0x1e07,
+ 0x3a75, 0x0865,
+ 0x3b21, 0x086f,
+ 0x3b27, 0x1e08,
+ 0x3b28, 0x0876,
+ 0x3b2a, 0x1e09,
+ 0x3b2b, 0x0879,
+ 0x3b2c, 0x1e0a,
+ 0x3b2d, 0x087b,
+ 0x3b39, 0x1e0b,
+ 0x3b3a, 0x0888,
+ 0x3c21, 0x08cd,
+ 0x3c48, 0x1e0d,
+ 0x3c49, 0x1929,
+ 0x3c4a, 0x08f6,
+ 0x3c57, 0x1e0e,
+ 0x3c58, 0x0904,
+ 0x3c5d, 0x1e0f,
+ 0x3c5f, 0x090b,
+ 0x3d21, 0x092b,
+ 0x3d2b, 0x1e11,
+ 0x3d2c, 0x0936,
+ 0x3d36, 0x1e12,
+ 0x3d37, 0x0941,
+ 0x3d6c, 0x1e13,
+ 0x3d6e, 0x0978,
+ 0x3d72, 0x1e15,
+ 0x3d74, 0x097e,
+ 0x3e21, 0x0989,
+ 0x3e25, 0x1e17,
+ 0x3e26, 0x098e,
+ 0x3e33, 0x1e18,
+ 0x3e34, 0x099c,
+ 0x3e3f, 0x1e19,
+ 0x3e40, 0x09a8,
+ 0x3e55, 0x1e1a,
+ 0x3e56, 0x09be,
+ 0x3e5f, 0x1e1b,
+ 0x3e60, 0x09c8,
+ 0x3e64, 0x1e1c,
+ 0x3e65, 0x09cd,
+ 0x3f21, 0x09e7,
+ 0x3f2a, 0x1e1d,
+ 0x3f2b, 0x09f1,
+ 0x3f59, 0x1e1e,
+ 0x3f5a, 0x0a20,
+ 0x3f60, 0x1e1f,
+ 0x3f61, 0x0a27,
+ 0x3f69, 0x1e20,
+ 0x3f6a, 0x0a30,
+ 0x4021, 0x0a45,
+ 0x4022, 0x1e21,
+ 0x4023, 0x0a47,
+ 0x4042, 0x1e22,
+ 0x4043, 0x0a67,
+ 0x4066, 0x1e23,
+ 0x4067, 0x0a8b,
+ 0x4071, 0x1e24,
+ 0x4073, 0x0a97,
+ 0x4079, 0x1e26,
+ 0x407b, 0x0a9f,
+ 0x4121, 0x0aa3,
+ 0x4127, 0x1e28,
+ 0x4128, 0x1a6e,
+ 0x4129, 0x0aab,
+ 0x4139, 0x1e29,
+ 0x413a, 0x0abc,
+ 0x414c, 0x1e2a,
+ 0x414d, 0x0acf,
+ 0x414f, 0x1e2b,
+ 0x4150, 0x0ad2,
+ 0x415f, 0x1e2c,
+ 0x4160, 0x0ae2,
+ 0x4169, 0x1e2d,
+ 0x416a, 0x0aec,
+ 0x4221, 0x0b01,
+ 0x423d, 0x1e2e,
+ 0x423e, 0x0b1e,
+ 0x424d, 0x1e2f,
+ 0x424e, 0x0b2e,
+ 0x425c, 0x1e30,
+ 0x425d, 0x0b3d,
+ 0x4263, 0x1e31,
+ 0x4264, 0x0b44,
+ 0x426f, 0x1e32,
+ 0x4270, 0x0b50,
+ 0x4275, 0x1e33,
+ 0x4277, 0x0b57,
+ 0x427d, 0x1e35,
+ 0x427e, 0x0b5e,
+ 0x4321, 0x0b5f,
+ 0x4327, 0x1e36,
+ 0x4328, 0x0b66,
+ 0x4329, 0x1e37,
+ 0x432b, 0x0b69,
+ 0x432d, 0x1e39,
+ 0x432f, 0x0b6d,
+ 0x433d, 0x1e3b,
+ 0x433e, 0x0b7c,
+ 0x4370, 0x1e3c,
+ 0x4371, 0x0baf,
+ 0x4375, 0x1e3d,
+ 0x4376, 0x0bb4,
+ 0x437c, 0x1e3e,
+ 0x437d, 0x0bbb,
+ 0x4421, 0x0bbd,
+ 0x443d, 0x1e3f,
+ 0x443e, 0x0bda,
+ 0x4448, 0x1e40,
+ 0x4449, 0x0be5,
+ 0x444a, 0x1e41,
+ 0x444b, 0x0be7,
+ 0x444d, 0x1e42,
+ 0x444e, 0x0bea,
+ 0x444f, 0x1e43,
+ 0x4450, 0x0bec,
+ 0x4454, 0x204b,
+ 0x4455, 0x0bf1,
+ 0x445b, 0x11b5,
+ 0x445c, 0x0bf8,
+ 0x4521, 0x0c1b,
+ 0x4522, 0x1e44,
+ 0x4523, 0x0c1d,
+ 0x4527, 0x1e45,
+ 0x4528, 0x0c22,
+ 0x452e, 0x1e46,
+ 0x452f, 0x0c29,
+ 0x4536, 0x1e47,
+ 0x4537, 0x0c31,
+ 0x453f, 0x1e48,
+ 0x4540, 0x0c3a,
+ 0x4548, 0x1e49,
+ 0x4549, 0x0c43,
+ 0x454b, 0x1e4a,
+ 0x454c, 0x0c46,
+ 0x4551, 0x1e4b,
+ 0x4553, 0x0c4d,
+ 0x4557, 0x16df,
+ 0x4558, 0x0c52,
+ 0x4564, 0x1e4d,
+ 0x4565, 0x0c5f,
+ 0x456e, 0x1450,
+ 0x456f, 0x0c69,
+ 0x4573, 0x1536,
+ 0x4574, 0x0c6e,
+ 0x4578, 0x1e4e,
+ 0x4579, 0x0c73,
+ 0x4621, 0x0c79,
+ 0x463e, 0x1e4f,
+ 0x463f, 0x0c97,
+ 0x4642, 0x1e50,
+ 0x4643, 0x0c9b,
+ 0x4654, 0x1e51,
+ 0x4656, 0x0cae,
+ 0x465b, 0x1e53,
+ 0x465d, 0x0cb5,
+ 0x4661, 0x1e55,
+ 0x4662, 0x0cba,
+ 0x4666, 0x1e56,
+ 0x4668, 0x0cc0,
+ 0x466a, 0x1e58,
+ 0x466b, 0x0cc3,
+ 0x4676, 0x1aed,
+ 0x4677, 0x0ccf,
+ 0x4721, 0x0cd7,
+ 0x4729, 0x1e59,
+ 0x472a, 0x0ce0,
+ 0x4739, 0x1e5a,
+ 0x473a, 0x0cf0,
+ 0x4757, 0x1e5b,
+ 0x4758, 0x0d0e,
+ 0x4767, 0x1e5c,
+ 0x4768, 0x1989,
+ 0x4769, 0x1e5d,
+ 0x476a, 0x0d20,
+ 0x476d, 0x1e5e,
+ 0x476e, 0x0d24,
+ 0x4821, 0x0d35,
+ 0x4824, 0x1e5f,
+ 0x4825, 0x0d39,
+ 0x482e, 0x1e60,
+ 0x482f, 0x0d43,
+ 0x4830, 0x1e61,
+ 0x4831, 0x0d45,
+ 0x4854, 0x1e62,
+ 0x4855, 0x0d69,
+ 0x4862, 0x1e63,
+ 0x4863, 0x0d77,
+ 0x4875, 0x1e64,
+ 0x4876, 0x0d8a,
+ 0x4921, 0x0d93,
+ 0x4922, 0x1e65,
+ 0x4924, 0x0d96,
+ 0x492f, 0x1e67,
+ 0x4930, 0x143b,
+ 0x4931, 0x0da3,
+ 0x4932, 0x1e68,
+ 0x4933, 0x0da5,
+ 0x4935, 0x1e69,
+ 0x4936, 0x0da8,
+ 0x4940, 0x1e6a,
+ 0x4941, 0x0db3,
+ 0x494e, 0x1e6b,
+ 0x494f, 0x0dc1,
+ 0x4951, 0x1e6c,
+ 0x4952, 0x0dc4,
+ 0x4a21, 0x0df1,
+ 0x4a43, 0x1e6d,
+ 0x4a44, 0x0e14,
+ 0x4a4d, 0x1e6e,
+ 0x4a4e, 0x0e1e,
+ 0x4a5a, 0x1e6f,
+ 0x4a5b, 0x0e2b,
+ 0x4a79, 0x1e70,
+ 0x4a7a, 0x0e4a,
+ 0x4b21, 0x0e4f,
+ 0x4b22, 0x1e71,
+ 0x4b23, 0x0e51,
+ 0x4b29, 0x1e72,
+ 0x4b2a, 0x0e58,
+ 0x4b4b, 0x1e73,
+ 0x4b4c, 0x0e7a,
+ 0x4b6a, 0x1d33,
+ 0x4b6b, 0x0e99,
+ 0x4b70, 0x1e74,
+ 0x4b71, 0x0e9f,
+ 0x4b78, 0x1f2c,
+ 0x4b79, 0x102f,
+ 0x4b7a, 0x0ea8,
+ 0x4c21, 0x0ead,
+ 0x4c4d, 0x1e75,
+ 0x4c4e, 0x0eda,
+ 0x4c59, 0x1e76,
+ 0x4c5a, 0x0ee6,
+ 0x4c5f, 0x1e77,
+ 0x4c60, 0x0eec,
+ 0x4c62, 0x1e78,
+ 0x4c63, 0x0eef,
+ 0x4c79, 0x1935,
+ 0x4c7a, 0x1e79,
+ 0x4c7b, 0x0f07,
+ 0x4c7c, 0x1e7a,
+ 0x4c7d, 0x0f09,
+ 0x4c7e, 0x1e7b,
+ 0x4d21, 0x0f0b,
+ 0x4d32, 0x1e7c,
+ 0x4d33, 0x0f1d,
+ 0x4d50, 0x1e7d,
+ 0x4d51, 0x0f3b,
+ 0x4d54, 0x1e7e,
+ 0x4d55, 0x0f3f,
+ 0x4d5a, 0x1d34,
+ 0x4d5b, 0x0f45,
+ 0x4d69, 0x1e7f,
+ 0x4d6a, 0x0f54,
+ 0x4e21, 0x0f69,
+ 0x4e4b, 0x1e80,
+ 0x4e4c, 0x0f94,
+ 0x4e7a, 0x1e81,
+ 0x4e7c, 0x0fc4,
+ 0x4f21, 0x1e83,
+ 0x4f22, 0x0fc8,
+ 0x4f31, 0x1e84,
+ 0x4f32, 0x0fd8,
+ 0x4f36, 0x1777,
+ 0x4f37, 0x0fdd,
+ 0x4f39, 0x1e85,
+ 0x4f3a, 0x0fe0,
+ 0x5021, 0x0ffa,
+ 0x5056, 0x0ea7,
+ 0x5057, 0x1030,
+ 0x5121, 0x1058,
+ 0x513d, 0x1e86,
+ 0x513e, 0x1075,
+ 0x5147, 0x1e87,
+ 0x5148, 0x107f,
+ 0x514b, 0x1e88,
+ 0x514c, 0x1083,
+ 0x514d, 0x1e89,
+ 0x514e, 0x1085,
+ 0x5221, 0x10b6,
+ 0x5321, 0x1114,
+ 0x5330, 0x1e8a,
+ 0x5331, 0x1124,
+ 0x533a, 0x1e8b,
+ 0x533b, 0x112e,
+ 0x535e, 0x1e8d,
+ 0x535f, 0x1152,
+ 0x536b, 0x1e8e,
+ 0x536c, 0x115f,
+ 0x5421, 0x1172,
+ 0x5444, 0x1e8f,
+ 0x5445, 0x1196,
+ 0x5464, 0x0bf7,
+ 0x5465, 0x11b6,
+ 0x5521, 0x11d0,
+ 0x553d, 0x1e90,
+ 0x553e, 0x11ed,
+ 0x5563, 0x1e91,
+ 0x5564, 0x1213,
+ 0x5621, 0x122e,
+ 0x5622, 0x1e92,
+ 0x5623, 0x1230,
+ 0x5721, 0x128c,
+ 0x5821, 0x12ea,
+ 0x5824, 0x1e94,
+ 0x5825, 0x12ee,
+ 0x5921, 0x1348,
+ 0x5960, 0x1e95,
+ 0x5961, 0x1388,
+ 0x596c, 0x1e96,
+ 0x596d, 0x1394,
+ 0x5978, 0x05a7,
+ 0x5979, 0x13a0,
+ 0x5a21, 0x13a6,
+ 0x5a39, 0x1e97,
+ 0x5a3a, 0x13bf,
+ 0x5a4d, 0x1e98,
+ 0x5a4e, 0x13d3,
+ 0x5b21, 0x1404,
+ 0x5b45, 0x1e99,
+ 0x5b46, 0x1429,
+ 0x5b4a, 0x1e9a,
+ 0x5b4b, 0x142e,
+ 0x5b58, 0x0da2,
+ 0x5b59, 0x143c,
+ 0x5b6b, 0x1e9b,
+ 0x5b6c, 0x144f,
+ 0x5b6d, 0x0c68,
+ 0x5b6e, 0x1451,
+ 0x5b74, 0x1e9c,
+ 0x5b75, 0x1458,
+ 0x5c21, 0x1462,
+ 0x5d21, 0x14c0,
+ 0x5e21, 0x151e,
+ 0x5e39, 0x0c6d,
+ 0x5e3a, 0x1537,
+ 0x5e50, 0x1e9d,
+ 0x5e51, 0x154e,
+ 0x5e75, 0x05ff,
+ 0x5e76, 0x1573,
+ 0x5f21, 0x157c,
+ 0x6021, 0x15da,
+ 0x6026, 0x1e9f,
+ 0x6027, 0x15e0,
+ 0x605f, 0x1ea0,
+ 0x6060, 0x1619,
+ 0x6076, 0x1d35,
+ 0x6077, 0x1630,
+ 0x6121, 0x1638,
+ 0x612b, 0x1ea1,
+ 0x612c, 0x1643,
+ 0x6130, 0x1ea2,
+ 0x6132, 0x1649,
+ 0x6221, 0x1696,
+ 0x622b, 0x1ea4,
+ 0x622c, 0x16a1,
+ 0x6268, 0x07ee,
+ 0x6269, 0x16de,
+ 0x626a, 0x0c51,
+ 0x626b, 0x16e0,
+ 0x626f, 0x1ea5,
+ 0x6270, 0x16e5,
+ 0x6321, 0x16f4,
+ 0x634a, 0x1ea6,
+ 0x634b, 0x171e,
+ 0x6354, 0x1ea7,
+ 0x6355, 0x1728,
+ 0x635e, 0x05d4,
+ 0x635f, 0x1732,
+ 0x6421, 0x1752,
+ 0x6439, 0x1ea8,
+ 0x643a, 0x176b,
+ 0x6446, 0x0fdc,
+ 0x6447, 0x1778,
+ 0x6464, 0x1ea9,
+ 0x6465, 0x1796,
+ 0x646e, 0x1eaa,
+ 0x646f, 0x17a0,
+ 0x6521, 0x17b0,
+ 0x6539, 0x1eab,
+ 0x653a, 0x17c9,
+ 0x653b, 0x1eac,
+ 0x653c, 0x17cb,
+ 0x6546, 0x1ead,
+ 0x6547, 0x17d6,
+ 0x6621, 0x180e,
+ 0x6646, 0x1eae,
+ 0x6647, 0x1834,
+ 0x6721, 0x186c,
+ 0x6764, 0x1eaf,
+ 0x6765, 0x18b0,
+ 0x6769, 0x1eb0,
+ 0x676a, 0x18b5,
+ 0x6772, 0x1eb1,
+ 0x6773, 0x18be,
+ 0x6821, 0x18ca,
+ 0x6834, 0x1eb2,
+ 0x6835, 0x18de,
+ 0x683b, 0x1eb3,
+ 0x683c, 0x18e5,
+ 0x6874, 0x1eb4,
+ 0x6875, 0x191e,
+ 0x6921, 0x1928,
+ 0x6922, 0x08f5,
+ 0x6923, 0x192a,
+ 0x692e, 0x0f05,
+ 0x692f, 0x1936,
+ 0x695a, 0x05a0,
+ 0x695b, 0x1962,
+ 0x6a21, 0x1986,
+ 0x6a24, 0x0d1e,
+ 0x6a25, 0x198a,
+ 0x6a27, 0x1eb6,
+ 0x6a28, 0x198d,
+ 0x6a3d, 0x1eb7,
+ 0x6a3e, 0x19a3,
+ 0x6a6f, 0x1eb8,
+ 0x6a70, 0x19d5,
+ 0x6b21, 0x19e4,
+ 0x6b32, 0x1eb9,
+ 0x6b33, 0x19f6,
+ 0x6b5d, 0x060e,
+ 0x6b5e, 0x1a21,
+ 0x6b66, 0x1eba,
+ 0x6b67, 0x1a2a,
+ 0x6b76, 0x1ebb,
+ 0x6b77, 0x1a3a,
+ 0x6c21, 0x1a42,
+ 0x6c4d, 0x0aaa,
+ 0x6c4e, 0x1a6f,
+ 0x6c69, 0x1ebc,
+ 0x6c6a, 0x1a8b,
+ 0x6c74, 0x1ebd,
+ 0x6c75, 0x1a96,
+ 0x6d21, 0x1aa0,
+ 0x6d4e, 0x1ebe,
+ 0x6d4f, 0x1ace,
+ 0x6d6c, 0x1ebf,
+ 0x6d6d, 0x1aec,
+ 0x6d6e, 0x1ec0,
+ 0x6d6f, 0x1aee,
+ 0x6e21, 0x1afe,
+ 0x6e29, 0x1ec1,
+ 0x6e2a, 0x1b07,
+ 0x6e3d, 0x1ec2,
+ 0x6e3e, 0x1b1b,
+ 0x6e57, 0x1ec3,
+ 0x6e58, 0x1b35,
+ 0x6f21, 0x1b5c,
+ 0x7021, 0x1bba,
+ 0x7045, 0x1ec6,
+ 0x7046, 0x1bdf,
+ 0x7051, 0x1ec7,
+ 0x7052, 0x1beb,
+ 0x7057, 0x1ec8,
+ 0x7058, 0x1bf1,
+ 0x7074, 0x0731,
+ 0x7075, 0x1ec9,
+ 0x7076, 0x1c0f,
+ 0x7121, 0x1c18,
+ 0x7221, 0x1c76,
+ 0x722d, 0x1eca,
+ 0x722e, 0x1c83,
+ 0x723c, 0x1ecb,
+ 0x723d, 0x1c92,
+ 0x724d, 0x0477,
+ 0x724e, 0x1ecc,
+ 0x724f, 0x1ca4,
+ 0x7274, 0x0529,
+ 0x7275, 0x1cca,
+ 0x7321, 0x1cd4,
+ 0x7351, 0x1ecd,
+ 0x7352, 0x1d05,
+ 0x737d, 0x1ece,
+ 0x737e, 0x1d31,
+ 0x2122, 0x1ecf,
+ 0x2131, 0x1ed1,
+ 0x213c, 0x1ed3,
+ 0x2141, 0x1ed6,
+ 0x214a, 0x1edb,
+ 0x2161, 0x1eed,
+ 0x2421, 0x1eee,
+ 0x2423, 0x1eef,
+ 0x2425, 0x1ef0,
+ 0x2427, 0x1ef1,
+ 0x2429, 0x1ef2,
+ 0x2443, 0x1ef3,
+ 0x2463, 0x1ef4,
+ 0x2465, 0x1ef5,
+ 0x2467, 0x1ef6,
+ 0x246e, 0x1ef7,
+ 0x2521, 0x1ef8,
+ 0x2523, 0x1ef9,
+ 0x2525, 0x1efa,
+ 0x2527, 0x1efb,
+ 0x2529, 0x1efc,
+ 0x2543, 0x1efd,
+ 0x2563, 0x1efe,
+ 0x2565, 0x1eff,
+ 0x2567, 0x1f00,
+ 0x256e, 0x1f01,
+ 0x2575, 0x1f02,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1278VEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan1278VMap2, 652
+};
+
static Gushort japan1278msRKSJHMap2[1424] = {
0x0000, 0x0000,
0x8140, 0x0279,
@@ -2769,6 +4898,7 @@ static Gushort japan1278msRKSJHMap2[1424] = {
};
static GfxFontEncoding16 japan1278msRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2820,6 +4950,852 @@ static GfxFontEncoding16 japan1278msRKSJHEnc16 = {
japan1278msRKSJHMap2, 712
};
+static Gushort japan1278msRKSJVMap2[1580] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x81b8, 0x02e5,
+ 0x81c8, 0x02ed,
+ 0x81da, 0x02f4,
+ 0x81f0, 0x0303,
+ 0x81fc, 0x030b,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x849f, 0x1d37,
+ 0x84a0, 0x1d39,
+ 0x84a1, 0x1d43,
+ 0x84a2, 0x1d47,
+ 0x84a3, 0x1d4f,
+ 0x84a4, 0x1d4b,
+ 0x84a5, 0x1d53,
+ 0x84a6, 0x1d63,
+ 0x84a7, 0x1d5b,
+ 0x84a8, 0x1d6b,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d38,
+ 0x84ab, 0x1d3a,
+ 0x84ac, 0x1d46,
+ 0x84ad, 0x1d4a,
+ 0x84ae, 0x1d52,
+ 0x84af, 0x1d4e,
+ 0x84b0, 0x1d5a,
+ 0x84b1, 0x1d6a,
+ 0x84b2, 0x1d62,
+ 0x84b3, 0x1d72,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d57,
+ 0x84b6, 0x1d66,
+ 0x84b7, 0x1d5f,
+ 0x84b8, 0x1d6e,
+ 0x84b9, 0x1d76,
+ 0x84ba, 0x1d54,
+ 0x84bb, 0x1d67,
+ 0x84bc, 0x1d5c,
+ 0x84bd, 0x1d6f,
+ 0x84be, 0x1d79,
+ 0x8740, 0x1d83,
+ 0x875f, 0x1da1,
+ 0x8761, 0x1f66,
+ 0x8762, 0x1da4,
+ 0x8763, 0x1f68,
+ 0x8764, 0x1da6,
+ 0x8765, 0x1f6a,
+ 0x8766, 0x1da8,
+ 0x8768, 0x1f6c,
+ 0x8769, 0x1dab,
+ 0x876b, 0x1f6b,
+ 0x876c, 0x1dae,
+ 0x876e, 0x1f6f,
+ 0x876f, 0x1db1,
+ 0x877e, 0x2083,
+ 0x8780, 0x1db8,
+ 0x8784, 0x1f77,
+ 0x8785, 0x1dbd,
+ 0x8790, 0x02fa,
+ 0x8791, 0x02f9,
+ 0x8792, 0x0301,
+ 0x8793, 0x1dc8,
+ 0x879a, 0x0300,
+ 0x879b, 0x1dcf,
+ 0x889f, 0x0465,
+ 0x88a0, 0x1dd1,
+ 0x88a1, 0x0467,
+ 0x88a7, 0x204a,
+ 0x88a8, 0x046e,
+ 0x88b0, 0x1f19,
+ 0x88b1, 0x1ca2,
+ 0x88b2, 0x0478,
+ 0x88b9, 0x1dd2,
+ 0x88ba, 0x0480,
+ 0x88ec, 0x1dd3,
+ 0x88ed, 0x04b3,
+ 0x88f1, 0x1dd4,
+ 0x88f2, 0x04b8,
+ 0x88fa, 0x1dd5,
+ 0x88fb, 0x04c1,
+ 0x8940, 0x04c3,
+ 0x8949, 0x1dd6,
+ 0x894a, 0x04cd,
+ 0x8954, 0x1dd7,
+ 0x8955, 0x04d8,
+ 0x8958, 0x1dd8,
+ 0x8959, 0x04dc,
+ 0x895c, 0x1dda,
+ 0x895d, 0x04e0,
+ 0x8961, 0x1ddb,
+ 0x8962, 0x04e5,
+ 0x8980, 0x0502,
+ 0x898b, 0x1ddc,
+ 0x898c, 0x050e,
+ 0x89a6, 0x1ddd,
+ 0x89a7, 0x1cc9,
+ 0x89a8, 0x1dde,
+ 0x89a9, 0x052b,
+ 0x89de, 0x1ddf,
+ 0x89df, 0x0561,
+ 0x89f8, 0x1de0,
+ 0x89f9, 0x057b,
+ 0x89fb, 0x1de1,
+ 0x89fc, 0x057e,
+ 0x8a40, 0x057f,
+ 0x8a41, 0x1de2,
+ 0x8a42, 0x0581,
+ 0x8a61, 0x1961,
+ 0x8a62, 0x05a1,
+ 0x8a68, 0x139f,
+ 0x8a69, 0x05a8,
+ 0x8a80, 0x05be,
+ 0x8a85, 0x1de3,
+ 0x8a86, 0x05c4,
+ 0x8a8b, 0x1de4,
+ 0x8a8c, 0x05ca,
+ 0x8a93, 0x1de5,
+ 0x8a94, 0x05d2,
+ 0x8a96, 0x1731,
+ 0x8a97, 0x05d5,
+ 0x8a9a, 0x1de6,
+ 0x8a9b, 0x05d9,
+ 0x8ac0, 0x1de7,
+ 0x8ac1, 0x1572,
+ 0x8ac2, 0x0600,
+ 0x8acb, 0x1de8,
+ 0x8acc, 0x060a,
+ 0x8ad0, 0x1a20,
+ 0x8ad1, 0x060f,
+ 0x8ae3, 0x1de9,
+ 0x8ae4, 0x0622,
+ 0x8b40, 0x063b,
+ 0x8b4a, 0x1dea,
+ 0x8b4b, 0x0646,
+ 0x8b5f, 0x1deb,
+ 0x8b60, 0x065b,
+ 0x8b80, 0x067a,
+ 0x8ba0, 0x1dec,
+ 0x8ba1, 0x069b,
+ 0x8ba8, 0x1ded,
+ 0x8ba9, 0x06a3,
+ 0x8bc4, 0x1d32,
+ 0x8bc5, 0x06bf,
+ 0x8bcd, 0x1dee,
+ 0x8bce, 0x06c8,
+ 0x8beb, 0x1def,
+ 0x8bec, 0x06e6,
+ 0x8bf2, 0x1df0,
+ 0x8bf3, 0x06ed,
+ 0x8bf9, 0x1df1,
+ 0x8bfa, 0x06f4,
+ 0x8bfb, 0x1df2,
+ 0x8bfc, 0x06f6,
+ 0x8c40, 0x06f7,
+ 0x8c43, 0x1df3,
+ 0x8c44, 0x06fb,
+ 0x8c56, 0x1df4,
+ 0x8c57, 0x070e,
+ 0x8c64, 0x1df5,
+ 0x8c65, 0x071c,
+ 0x8c6d, 0x1df6,
+ 0x8c6e, 0x0725,
+ 0x8c71, 0x1df7,
+ 0x8c72, 0x0729,
+ 0x8c74, 0x1df8,
+ 0x8c75, 0x072c,
+ 0x8c7a, 0x1c0d,
+ 0x8c7b, 0x0732,
+ 0x8c80, 0x0736,
+ 0x8c84, 0x1df9,
+ 0x8c85, 0x073b,
+ 0x8c91, 0x1dfa,
+ 0x8c92, 0x0748,
+ 0x8c99, 0x1dfb,
+ 0x8c9a, 0x0750,
+ 0x8c9e, 0x1dfc,
+ 0x8c9f, 0x0755,
+ 0x8cb2, 0x1dfd,
+ 0x8cb3, 0x0769,
+ 0x8cbf, 0x1dfe,
+ 0x8cc0, 0x0776,
+ 0x8d40, 0x07b3,
+ 0x8d4a, 0x1dff,
+ 0x8d4b, 0x07be,
+ 0x8d56, 0x1e00,
+ 0x8d57, 0x07ca,
+ 0x8d61, 0x1e01,
+ 0x8d62, 0x07d5,
+ 0x8d7b, 0x16dd,
+ 0x8d7c, 0x07ef,
+ 0x8d80, 0x07f2,
+ 0x8d8d, 0x1e02,
+ 0x8d8e, 0x0800,
+ 0x8d94, 0x1e03,
+ 0x8d95, 0x0807,
+ 0x8d99, 0x1e04,
+ 0x8d9a, 0x080c,
+ 0x8dd1, 0x1e05,
+ 0x8dd2, 0x0844,
+ 0x8de5, 0x1e06,
+ 0x8de6, 0x0858,
+ 0x8df2, 0x1e07,
+ 0x8df3, 0x0865,
+ 0x8e40, 0x086f,
+ 0x8e46, 0x1e08,
+ 0x8e47, 0x0876,
+ 0x8e49, 0x1e09,
+ 0x8e4a, 0x0879,
+ 0x8e4b, 0x1e0a,
+ 0x8e4c, 0x087b,
+ 0x8e58, 0x1e0b,
+ 0x8e59, 0x0888,
+ 0x8e80, 0x08ae,
+ 0x8ec6, 0x1e0d,
+ 0x8ec7, 0x1929,
+ 0x8ec8, 0x08f6,
+ 0x8ed5, 0x1e0e,
+ 0x8ed6, 0x0904,
+ 0x8edb, 0x1e0f,
+ 0x8edd, 0x090b,
+ 0x8f40, 0x092b,
+ 0x8f4a, 0x1e11,
+ 0x8f4b, 0x0936,
+ 0x8f55, 0x1e12,
+ 0x8f56, 0x0941,
+ 0x8f80, 0x096a,
+ 0x8f8c, 0x1e13,
+ 0x8f8e, 0x0978,
+ 0x8f92, 0x1e15,
+ 0x8f94, 0x097e,
+ 0x8fa3, 0x1e17,
+ 0x8fa4, 0x098e,
+ 0x8fb1, 0x1e18,
+ 0x8fb2, 0x099c,
+ 0x8fbd, 0x1e19,
+ 0x8fbe, 0x09a8,
+ 0x8fd3, 0x1e1a,
+ 0x8fd4, 0x09be,
+ 0x8fdd, 0x1e1b,
+ 0x8fde, 0x09c8,
+ 0x8fe2, 0x1e1c,
+ 0x8fe3, 0x09cd,
+ 0x9040, 0x09e7,
+ 0x9049, 0x1e1d,
+ 0x904a, 0x09f1,
+ 0x9078, 0x1e1e,
+ 0x9079, 0x0a20,
+ 0x9080, 0x1e1f,
+ 0x9081, 0x0a27,
+ 0x9089, 0x1e20,
+ 0x908a, 0x0a30,
+ 0x90a0, 0x1e21,
+ 0x90a1, 0x0a47,
+ 0x90c0, 0x1e22,
+ 0x90c1, 0x0a67,
+ 0x90e4, 0x1e23,
+ 0x90e5, 0x0a8b,
+ 0x90ef, 0x1e24,
+ 0x90f1, 0x0a97,
+ 0x90f7, 0x1e26,
+ 0x90f9, 0x0a9f,
+ 0x9140, 0x0aa3,
+ 0x9146, 0x1e28,
+ 0x9147, 0x1a6e,
+ 0x9148, 0x0aab,
+ 0x9158, 0x1e29,
+ 0x9159, 0x0abc,
+ 0x916b, 0x1e2a,
+ 0x916c, 0x0acf,
+ 0x916e, 0x1e2b,
+ 0x916f, 0x0ad2,
+ 0x917e, 0x1e2c,
+ 0x9180, 0x0ae2,
+ 0x9189, 0x1e2d,
+ 0x918a, 0x0aec,
+ 0x91bb, 0x1e2e,
+ 0x91bc, 0x0b1e,
+ 0x91cb, 0x1e2f,
+ 0x91cc, 0x0b2e,
+ 0x91da, 0x1e30,
+ 0x91db, 0x0b3d,
+ 0x91e1, 0x1e31,
+ 0x91e2, 0x0b44,
+ 0x91ed, 0x1e32,
+ 0x91ee, 0x0b50,
+ 0x91f3, 0x1e33,
+ 0x91f5, 0x0b57,
+ 0x91fb, 0x1e35,
+ 0x91fc, 0x0b5e,
+ 0x9240, 0x0b5f,
+ 0x9246, 0x1e36,
+ 0x9247, 0x0b66,
+ 0x9248, 0x1e37,
+ 0x924a, 0x0b69,
+ 0x924c, 0x1e39,
+ 0x924e, 0x0b6d,
+ 0x925c, 0x1e3b,
+ 0x925d, 0x0b7c,
+ 0x9280, 0x0b9e,
+ 0x9290, 0x1e3c,
+ 0x9291, 0x0baf,
+ 0x9295, 0x1e3d,
+ 0x9296, 0x0bb4,
+ 0x929c, 0x1e3e,
+ 0x929d, 0x0bbb,
+ 0x92bb, 0x1e3f,
+ 0x92bc, 0x0bda,
+ 0x92c6, 0x1e40,
+ 0x92c7, 0x0be5,
+ 0x92c8, 0x1e41,
+ 0x92c9, 0x0be7,
+ 0x92cb, 0x1e42,
+ 0x92cc, 0x0bea,
+ 0x92cd, 0x1e43,
+ 0x92ce, 0x0bec,
+ 0x92d2, 0x204b,
+ 0x92d3, 0x0bf1,
+ 0x92d9, 0x11b5,
+ 0x92da, 0x0bf8,
+ 0x9340, 0x0c1b,
+ 0x9341, 0x1e44,
+ 0x9342, 0x0c1d,
+ 0x9346, 0x1e45,
+ 0x9347, 0x0c22,
+ 0x934d, 0x1e46,
+ 0x934e, 0x0c29,
+ 0x9355, 0x1e47,
+ 0x9356, 0x0c31,
+ 0x935e, 0x1e48,
+ 0x935f, 0x0c3a,
+ 0x9367, 0x1e49,
+ 0x9368, 0x0c43,
+ 0x936a, 0x1e4a,
+ 0x936b, 0x0c46,
+ 0x9370, 0x1e4b,
+ 0x9372, 0x0c4d,
+ 0x9376, 0x16df,
+ 0x9377, 0x0c52,
+ 0x9380, 0x0c5a,
+ 0x9384, 0x1e4d,
+ 0x9385, 0x0c5f,
+ 0x938e, 0x1450,
+ 0x938f, 0x0c69,
+ 0x9393, 0x1536,
+ 0x9394, 0x0c6e,
+ 0x9398, 0x1e4e,
+ 0x9399, 0x0c73,
+ 0x93bc, 0x1e4f,
+ 0x93bd, 0x0c97,
+ 0x93c0, 0x1e50,
+ 0x93c1, 0x0c9b,
+ 0x93d2, 0x1e51,
+ 0x93d4, 0x0cae,
+ 0x93d9, 0x1e53,
+ 0x93db, 0x0cb5,
+ 0x93df, 0x1e55,
+ 0x93e0, 0x0cba,
+ 0x93e4, 0x1e56,
+ 0x93e6, 0x0cc0,
+ 0x93e8, 0x1e58,
+ 0x93e9, 0x0cc3,
+ 0x93f4, 0x1aed,
+ 0x93f5, 0x0ccf,
+ 0x9440, 0x0cd7,
+ 0x9448, 0x1e59,
+ 0x9449, 0x0ce0,
+ 0x9458, 0x1e5a,
+ 0x9459, 0x0cf0,
+ 0x9476, 0x1e5b,
+ 0x9477, 0x0d0e,
+ 0x9480, 0x0d16,
+ 0x9487, 0x1e5c,
+ 0x9488, 0x1989,
+ 0x9489, 0x1e5d,
+ 0x948a, 0x0d20,
+ 0x948d, 0x1e5e,
+ 0x948e, 0x0d24,
+ 0x94a2, 0x1e5f,
+ 0x94a3, 0x0d39,
+ 0x94ac, 0x1e60,
+ 0x94ad, 0x0d43,
+ 0x94ae, 0x1e61,
+ 0x94af, 0x0d45,
+ 0x94d2, 0x1e62,
+ 0x94d3, 0x0d69,
+ 0x94e0, 0x1e63,
+ 0x94e1, 0x0d77,
+ 0x94f3, 0x1e64,
+ 0x94f4, 0x0d8a,
+ 0x9540, 0x0d93,
+ 0x9541, 0x1e65,
+ 0x9543, 0x0d96,
+ 0x954e, 0x1e67,
+ 0x954f, 0x143b,
+ 0x9550, 0x0da3,
+ 0x9551, 0x1e68,
+ 0x9552, 0x0da5,
+ 0x9554, 0x1e69,
+ 0x9555, 0x0da8,
+ 0x955f, 0x1e6a,
+ 0x9560, 0x0db3,
+ 0x956d, 0x1e6b,
+ 0x956e, 0x0dc1,
+ 0x9570, 0x1e6c,
+ 0x9571, 0x0dc4,
+ 0x9580, 0x0dd2,
+ 0x95c1, 0x1e6d,
+ 0x95c2, 0x0e14,
+ 0x95cb, 0x1e6e,
+ 0x95cc, 0x0e1e,
+ 0x95d8, 0x1e6f,
+ 0x95d9, 0x0e2b,
+ 0x95f7, 0x1e70,
+ 0x95f8, 0x0e4a,
+ 0x9640, 0x0e4f,
+ 0x9641, 0x1e71,
+ 0x9642, 0x0e51,
+ 0x9648, 0x1e72,
+ 0x9649, 0x0e58,
+ 0x966a, 0x1e73,
+ 0x966b, 0x0e7a,
+ 0x9680, 0x0e8e,
+ 0x968a, 0x1d33,
+ 0x968b, 0x0e99,
+ 0x9690, 0x1e74,
+ 0x9691, 0x0e9f,
+ 0x9698, 0x1f2c,
+ 0x9699, 0x102f,
+ 0x969a, 0x0ea8,
+ 0x96cb, 0x1e75,
+ 0x96cc, 0x0eda,
+ 0x96d7, 0x1e76,
+ 0x96d8, 0x0ee6,
+ 0x96dd, 0x1e77,
+ 0x96de, 0x0eec,
+ 0x96e0, 0x1e78,
+ 0x96e1, 0x0eef,
+ 0x96f7, 0x1935,
+ 0x96f8, 0x1e79,
+ 0x96f9, 0x0f07,
+ 0x96fa, 0x1e7a,
+ 0x96fb, 0x0f09,
+ 0x96fc, 0x1e7b,
+ 0x9740, 0x0f0b,
+ 0x9751, 0x1e7c,
+ 0x9752, 0x0f1d,
+ 0x976f, 0x1e7d,
+ 0x9770, 0x0f3b,
+ 0x9773, 0x1e7e,
+ 0x9774, 0x0f3f,
+ 0x9779, 0x1d34,
+ 0x977a, 0x0f45,
+ 0x9780, 0x0f4a,
+ 0x9789, 0x1e7f,
+ 0x978a, 0x0f54,
+ 0x97c9, 0x1e80,
+ 0x97ca, 0x0f94,
+ 0x97f8, 0x1e81,
+ 0x97fa, 0x0fc4,
+ 0x9840, 0x1e83,
+ 0x9841, 0x0fc8,
+ 0x9850, 0x1e84,
+ 0x9851, 0x0fd8,
+ 0x9855, 0x1777,
+ 0x9856, 0x0fdd,
+ 0x9858, 0x1e85,
+ 0x9859, 0x0fe0,
+ 0x989f, 0x0ffa,
+ 0x98d4, 0x0ea7,
+ 0x98d5, 0x1030,
+ 0x9940, 0x1058,
+ 0x995c, 0x1e86,
+ 0x995d, 0x1075,
+ 0x9966, 0x1e87,
+ 0x9967, 0x107f,
+ 0x996a, 0x1e88,
+ 0x996b, 0x1083,
+ 0x996c, 0x1e89,
+ 0x996d, 0x1085,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a4f, 0x1e8a,
+ 0x9a50, 0x1124,
+ 0x9a59, 0x1e8b,
+ 0x9a5a, 0x112e,
+ 0x9a7d, 0x1e8d,
+ 0x9a7e, 0x1152,
+ 0x9a80, 0x1153,
+ 0x9a8b, 0x1e8e,
+ 0x9a8c, 0x115f,
+ 0x9ac2, 0x1e8f,
+ 0x9ac3, 0x1196,
+ 0x9ae2, 0x0bf7,
+ 0x9ae3, 0x11b6,
+ 0x9b40, 0x11d0,
+ 0x9b5c, 0x1e90,
+ 0x9b5d, 0x11ed,
+ 0x9b80, 0x120f,
+ 0x9b83, 0x1e91,
+ 0x9b84, 0x1213,
+ 0x9ba0, 0x1e92,
+ 0x9ba1, 0x1230,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9ca2, 0x1e94,
+ 0x9ca3, 0x12ee,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1e95,
+ 0x9d81, 0x1388,
+ 0x9d8c, 0x1e96,
+ 0x9d8d, 0x1394,
+ 0x9d98, 0x05a7,
+ 0x9d99, 0x13a0,
+ 0x9db7, 0x1e97,
+ 0x9db8, 0x13bf,
+ 0x9dcb, 0x1e98,
+ 0x9dcc, 0x13d3,
+ 0x9e40, 0x1404,
+ 0x9e64, 0x1e99,
+ 0x9e65, 0x1429,
+ 0x9e69, 0x1e9a,
+ 0x9e6a, 0x142e,
+ 0x9e77, 0x0da2,
+ 0x9e78, 0x143c,
+ 0x9e80, 0x1443,
+ 0x9e8b, 0x1e9b,
+ 0x9e8c, 0x144f,
+ 0x9e8d, 0x0c68,
+ 0x9e8e, 0x1451,
+ 0x9e94, 0x1e9c,
+ 0x9e95, 0x1458,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0x9fb7, 0x0c6d,
+ 0x9fb8, 0x1537,
+ 0x9fce, 0x1e9d,
+ 0x9fcf, 0x154e,
+ 0x9ff3, 0x05ff,
+ 0x9ff4, 0x1573,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe0a4, 0x1e9f,
+ 0xe0a5, 0x15e0,
+ 0xe0dd, 0x1ea0,
+ 0xe0de, 0x1619,
+ 0xe0f4, 0x1d35,
+ 0xe0f5, 0x1630,
+ 0xe140, 0x1638,
+ 0xe14a, 0x1ea1,
+ 0xe14b, 0x1643,
+ 0xe14f, 0x1ea2,
+ 0xe151, 0x1649,
+ 0xe180, 0x1677,
+ 0xe1a9, 0x1ea4,
+ 0xe1aa, 0x16a1,
+ 0xe1e6, 0x07ee,
+ 0xe1e7, 0x16de,
+ 0xe1e8, 0x0c51,
+ 0xe1e9, 0x16e0,
+ 0xe1ed, 0x1ea5,
+ 0xe1ee, 0x16e5,
+ 0xe240, 0x16f4,
+ 0xe269, 0x1ea6,
+ 0xe26a, 0x171e,
+ 0xe273, 0x1ea7,
+ 0xe274, 0x1728,
+ 0xe27d, 0x05d4,
+ 0xe27e, 0x1732,
+ 0xe280, 0x1733,
+ 0xe2b7, 0x1ea8,
+ 0xe2b8, 0x176b,
+ 0xe2c4, 0x0fdc,
+ 0xe2c5, 0x1778,
+ 0xe2e2, 0x1ea9,
+ 0xe2e3, 0x1796,
+ 0xe2ec, 0x1eaa,
+ 0xe2ed, 0x17a0,
+ 0xe340, 0x17b0,
+ 0xe358, 0x1eab,
+ 0xe359, 0x17c9,
+ 0xe35a, 0x1eac,
+ 0xe35b, 0x17cb,
+ 0xe365, 0x1ead,
+ 0xe366, 0x17d6,
+ 0xe380, 0x17ef,
+ 0xe3c4, 0x1eae,
+ 0xe3c5, 0x1834,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe484, 0x1eaf,
+ 0xe485, 0x18b0,
+ 0xe489, 0x1eb0,
+ 0xe48a, 0x18b5,
+ 0xe492, 0x1eb1,
+ 0xe493, 0x18be,
+ 0xe4b2, 0x1eb2,
+ 0xe4b3, 0x18de,
+ 0xe4b9, 0x1eb3,
+ 0xe4ba, 0x18e5,
+ 0xe4f2, 0x1eb4,
+ 0xe4f3, 0x191e,
+ 0xe540, 0x1928,
+ 0xe541, 0x08f5,
+ 0xe542, 0x192a,
+ 0xe54d, 0x0f05,
+ 0xe54e, 0x1936,
+ 0xe579, 0x05a0,
+ 0xe57a, 0x1962,
+ 0xe580, 0x1967,
+ 0xe5a2, 0x0d1e,
+ 0xe5a3, 0x198a,
+ 0xe5a5, 0x1eb6,
+ 0xe5a6, 0x198d,
+ 0xe5bb, 0x1eb7,
+ 0xe5bc, 0x19a3,
+ 0xe5ed, 0x1eb8,
+ 0xe5ee, 0x19d5,
+ 0xe640, 0x19e4,
+ 0xe651, 0x1eb9,
+ 0xe652, 0x19f6,
+ 0xe67c, 0x060e,
+ 0xe67d, 0x1a21,
+ 0xe680, 0x1a23,
+ 0xe686, 0x1eba,
+ 0xe687, 0x1a2a,
+ 0xe696, 0x1ebb,
+ 0xe697, 0x1a3a,
+ 0xe6cb, 0x0aaa,
+ 0xe6cc, 0x1a6f,
+ 0xe6e7, 0x1ebc,
+ 0xe6e8, 0x1a8b,
+ 0xe6f2, 0x1ebd,
+ 0xe6f3, 0x1a96,
+ 0xe740, 0x1aa0,
+ 0xe76d, 0x1ebe,
+ 0xe76e, 0x1ace,
+ 0xe780, 0x1adf,
+ 0xe78c, 0x1ebf,
+ 0xe78d, 0x1aec,
+ 0xe78e, 0x1ec0,
+ 0xe78f, 0x1aee,
+ 0xe7a7, 0x1ec1,
+ 0xe7a8, 0x1b07,
+ 0xe7bb, 0x1ec2,
+ 0xe7bc, 0x1b1b,
+ 0xe7d5, 0x1ec3,
+ 0xe7d6, 0x1b35,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe8c3, 0x1ec6,
+ 0xe8c4, 0x1bdf,
+ 0xe8cf, 0x1ec7,
+ 0xe8d0, 0x1beb,
+ 0xe8d5, 0x1ec8,
+ 0xe8d6, 0x1bf1,
+ 0xe8f2, 0x0731,
+ 0xe8f3, 0x1ec9,
+ 0xe8f4, 0x1c0f,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xe9ab, 0x1eca,
+ 0xe9ac, 0x1c83,
+ 0xe9ba, 0x1ecb,
+ 0xe9bb, 0x1c92,
+ 0xe9cb, 0x0477,
+ 0xe9cc, 0x1ecc,
+ 0xe9cd, 0x1ca4,
+ 0xe9f2, 0x0529,
+ 0xe9f3, 0x1cca,
+ 0xea40, 0x1cd4,
+ 0xea70, 0x1ecd,
+ 0xea71, 0x1d05,
+ 0xea80, 0x1d13,
+ 0xea9d, 0x1ece,
+ 0xea9e, 0x1d31,
+ 0xeaa3, 0x205c,
+ 0xed40, 0x20a7,
+ 0xed80, 0x20e6,
+ 0xedb4, 0x07c9,
+ 0xedb5, 0x211a,
+ 0xee40, 0x2162,
+ 0xee80, 0x21a1,
+ 0xeeef, 0x1f9c,
+ 0xeef9, 0x02ef,
+ 0xeefa, 0x1f45,
+ 0xfa40, 0x1f9c,
+ 0xfa4a, 0x1d97,
+ 0xfa54, 0x02ef,
+ 0xfa55, 0x1f45,
+ 0xfa58, 0x1dc2,
+ 0xfa59, 0x1dba,
+ 0xfa5a, 0x1f77,
+ 0xfa5b, 0x0300,
+ 0xfa5c, 0x20a7,
+ 0xfa80, 0x20ca,
+ 0xfad0, 0x07c9,
+ 0xfad1, 0x211a,
+ 0xfb40, 0x2146,
+ 0xfb80, 0x2185,
+ 0xfc40, 0x2202,
+ 0x8141, 0x1ecf,
+ 0x8143, 0x204c,
+ 0x8144, 0x2052,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8169, 0x1edb,
+ 0x8181, 0x1eed,
+ 0x81a8, 0x02e3,
+ 0x81a9, 0x02e2,
+ 0x81aa, 0x02e0,
+ 0x81ac, 0x204e,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0x849f, 0x1d39,
+ 0x84a0, 0x1d37,
+ 0x84a1, 0x1d47,
+ 0x84a2, 0x1d4f,
+ 0x84a3, 0x1d4b,
+ 0x84a4, 0x1d43,
+ 0x84a5, 0x1d63,
+ 0x84a6, 0x1d5b,
+ 0x84a7, 0x1d6b,
+ 0x84a8, 0x1d53,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d3a,
+ 0x84ab, 0x1d38,
+ 0x84ac, 0x1d4a,
+ 0x84ad, 0x1d52,
+ 0x84ae, 0x1d4e,
+ 0x84af, 0x1d46,
+ 0x84b0, 0x1d6a,
+ 0x84b1, 0x1d62,
+ 0x84b2, 0x1d72,
+ 0x84b3, 0x1d5a,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d66,
+ 0x84b6, 0x1d5f,
+ 0x84b7, 0x1d6e,
+ 0x84b8, 0x1d57,
+ 0x84b9, 0x1d79,
+ 0x84ba, 0x1d67,
+ 0x84bb, 0x1d5c,
+ 0x84bc, 0x1d6f,
+ 0x84bd, 0x1d54,
+ 0x84be, 0x1d76,
+ 0x875f, 0x1f04,
+ 0x8761, 0x2089,
+ 0x8762, 0x1f07,
+ 0x8763, 0x2093,
+ 0x8764, 0x1f09,
+ 0x8765, 0x2092,
+ 0x8766, 0x1f0b,
+ 0x8768, 0x2098,
+ 0x8769, 0x1f0e,
+ 0x876b, 0x209c,
+ 0x876c, 0x1f11,
+ 0x876e, 0x209d,
+ 0x8780, 0x1f14,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1278msRKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0277, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan1278msRKSJVMap2, 790
+};
+
static Gushort japan1283pvRKSJHMap2[436] = {
0x0000, 0x0000,
0x8140, 0x0279,
@@ -3042,6 +6018,7 @@ static Gushort japan1283pvRKSJHMap2[436] = {
};
static GfxFontEncoding16 japan1283pvRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3267,6 +6244,7 @@ static Gushort japan1290msRKSJHMap2[340] = {
};
static GfxFontEncoding16 japan1290msRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3318,6 +6296,310 @@ static GfxFontEncoding16 japan1290msRKSJHEnc16 = {
japan1290msRKSJHMap2, 170
};
+static Gushort japan1290msRKSJVMap2[496] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x81b8, 0x02e5,
+ 0x81c8, 0x02ed,
+ 0x81da, 0x02f4,
+ 0x81f0, 0x0303,
+ 0x81fc, 0x030b,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x849f, 0x1d37,
+ 0x84a0, 0x1d39,
+ 0x84a1, 0x1d43,
+ 0x84a2, 0x1d47,
+ 0x84a3, 0x1d4f,
+ 0x84a4, 0x1d4b,
+ 0x84a5, 0x1d53,
+ 0x84a6, 0x1d63,
+ 0x84a7, 0x1d5b,
+ 0x84a8, 0x1d6b,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d38,
+ 0x84ab, 0x1d3a,
+ 0x84ac, 0x1d46,
+ 0x84ad, 0x1d4a,
+ 0x84ae, 0x1d52,
+ 0x84af, 0x1d4e,
+ 0x84b0, 0x1d5a,
+ 0x84b1, 0x1d6a,
+ 0x84b2, 0x1d62,
+ 0x84b3, 0x1d72,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d57,
+ 0x84b6, 0x1d66,
+ 0x84b7, 0x1d5f,
+ 0x84b8, 0x1d6e,
+ 0x84b9, 0x1d76,
+ 0x84ba, 0x1d54,
+ 0x84bb, 0x1d67,
+ 0x84bc, 0x1d5c,
+ 0x84bd, 0x1d6f,
+ 0x84be, 0x1d79,
+ 0x8740, 0x1d83,
+ 0x875f, 0x1da1,
+ 0x8761, 0x1f66,
+ 0x8762, 0x1da4,
+ 0x8763, 0x1f68,
+ 0x8764, 0x1da6,
+ 0x8765, 0x1f6a,
+ 0x8766, 0x1da8,
+ 0x8768, 0x1f6c,
+ 0x8769, 0x1dab,
+ 0x876b, 0x1f6b,
+ 0x876c, 0x1dae,
+ 0x876e, 0x1f6f,
+ 0x876f, 0x1db1,
+ 0x877e, 0x2083,
+ 0x8780, 0x1db8,
+ 0x8784, 0x1f77,
+ 0x8785, 0x1dbd,
+ 0x8790, 0x02fa,
+ 0x8791, 0x02f9,
+ 0x8792, 0x0301,
+ 0x8793, 0x1dc8,
+ 0x879a, 0x0300,
+ 0x879b, 0x1dcf,
+ 0x889f, 0x0465,
+ 0x8940, 0x04c3,
+ 0x8980, 0x0502,
+ 0x8a40, 0x057f,
+ 0x8a80, 0x05be,
+ 0x8b40, 0x063b,
+ 0x8b80, 0x067a,
+ 0x8c40, 0x06f7,
+ 0x8c80, 0x0736,
+ 0x8d40, 0x07b3,
+ 0x8d80, 0x07f2,
+ 0x8e40, 0x086f,
+ 0x8e80, 0x08ae,
+ 0x8f40, 0x092b,
+ 0x8f80, 0x096a,
+ 0x9040, 0x09e7,
+ 0x9080, 0x0a26,
+ 0x9140, 0x0aa3,
+ 0x9180, 0x0ae2,
+ 0x9240, 0x0b5f,
+ 0x9280, 0x0b9e,
+ 0x9340, 0x0c1b,
+ 0x9380, 0x0c5a,
+ 0x9440, 0x0cd7,
+ 0x9480, 0x0d16,
+ 0x9540, 0x0d93,
+ 0x9580, 0x0dd2,
+ 0x9640, 0x0e4f,
+ 0x9680, 0x0e8e,
+ 0x9740, 0x0f0b,
+ 0x9780, 0x0f4a,
+ 0x9840, 0x0fc7,
+ 0x989f, 0x0ffa,
+ 0x9940, 0x1058,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a80, 0x1153,
+ 0x9b40, 0x11d0,
+ 0x9b80, 0x120f,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1387,
+ 0x9e40, 0x1404,
+ 0x9e80, 0x1443,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe140, 0x1638,
+ 0xe180, 0x1677,
+ 0xe240, 0x16f4,
+ 0xe280, 0x1733,
+ 0xe340, 0x17b0,
+ 0xe380, 0x17ef,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe540, 0x1928,
+ 0xe580, 0x1967,
+ 0xe640, 0x19e4,
+ 0xe680, 0x1a23,
+ 0xe740, 0x1aa0,
+ 0xe780, 0x1adf,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xea40, 0x1cd4,
+ 0xea80, 0x1d13,
+ 0xeaa3, 0x205c,
+ 0xed40, 0x20a7,
+ 0xed80, 0x20e6,
+ 0xedb4, 0x07c9,
+ 0xedb5, 0x211a,
+ 0xee40, 0x2162,
+ 0xee80, 0x21a1,
+ 0xeeef, 0x1f9c,
+ 0xeef9, 0x02ef,
+ 0xeefa, 0x1f45,
+ 0xfa40, 0x1f9c,
+ 0xfa4a, 0x1d97,
+ 0xfa54, 0x02ef,
+ 0xfa55, 0x1f45,
+ 0xfa58, 0x1dc2,
+ 0xfa59, 0x1dba,
+ 0xfa5a, 0x1f77,
+ 0xfa5b, 0x0300,
+ 0xfa5c, 0x20a7,
+ 0xfa80, 0x20ca,
+ 0xfad0, 0x07c9,
+ 0xfad1, 0x211a,
+ 0xfb40, 0x2146,
+ 0xfb80, 0x2185,
+ 0xfc40, 0x2202,
+ 0x8141, 0x1ecf,
+ 0x8143, 0x204c,
+ 0x8144, 0x2052,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8169, 0x1edb,
+ 0x8181, 0x1eed,
+ 0x81a8, 0x02e3,
+ 0x81a9, 0x02e2,
+ 0x81aa, 0x02e0,
+ 0x81ac, 0x204e,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0x849f, 0x1d39,
+ 0x84a0, 0x1d37,
+ 0x84a1, 0x1d47,
+ 0x84a2, 0x1d4f,
+ 0x84a3, 0x1d4b,
+ 0x84a4, 0x1d43,
+ 0x84a5, 0x1d63,
+ 0x84a6, 0x1d5b,
+ 0x84a7, 0x1d6b,
+ 0x84a8, 0x1d53,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d3a,
+ 0x84ab, 0x1d38,
+ 0x84ac, 0x1d4a,
+ 0x84ad, 0x1d52,
+ 0x84ae, 0x1d4e,
+ 0x84af, 0x1d46,
+ 0x84b0, 0x1d6a,
+ 0x84b1, 0x1d62,
+ 0x84b2, 0x1d72,
+ 0x84b3, 0x1d5a,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d66,
+ 0x84b6, 0x1d5f,
+ 0x84b7, 0x1d6e,
+ 0x84b8, 0x1d57,
+ 0x84b9, 0x1d79,
+ 0x84ba, 0x1d67,
+ 0x84bb, 0x1d5c,
+ 0x84bc, 0x1d6f,
+ 0x84bd, 0x1d54,
+ 0x84be, 0x1d76,
+ 0x875f, 0x1f04,
+ 0x8761, 0x2089,
+ 0x8762, 0x1f07,
+ 0x8763, 0x2093,
+ 0x8764, 0x1f09,
+ 0x8765, 0x2092,
+ 0x8766, 0x1f0b,
+ 0x8768, 0x2098,
+ 0x8769, 0x1f0e,
+ 0x876b, 0x209c,
+ 0x876c, 0x1f11,
+ 0x876e, 0x209d,
+ 0x8780, 0x1f14,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1290msRKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0277, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan1290msRKSJVMap2, 248
+};
+
static Gushort japan1290mspRKSJHMap2[340] = {
0x0000, 0x0000,
0x8140, 0x0279,
@@ -3492,6 +6774,7 @@ static Gushort japan1290mspRKSJHMap2[340] = {
};
static GfxFontEncoding16 japan1290mspRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3543,6 +6826,310 @@ static GfxFontEncoding16 japan1290mspRKSJHEnc16 = {
japan1290mspRKSJHMap2, 170
};
+static Gushort japan1290mspRKSJVMap2[496] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x81b8, 0x02e5,
+ 0x81c8, 0x02ed,
+ 0x81da, 0x02f4,
+ 0x81f0, 0x0303,
+ 0x81fc, 0x030b,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x849f, 0x1d37,
+ 0x84a0, 0x1d39,
+ 0x84a1, 0x1d43,
+ 0x84a2, 0x1d47,
+ 0x84a3, 0x1d4f,
+ 0x84a4, 0x1d4b,
+ 0x84a5, 0x1d53,
+ 0x84a6, 0x1d63,
+ 0x84a7, 0x1d5b,
+ 0x84a8, 0x1d6b,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d38,
+ 0x84ab, 0x1d3a,
+ 0x84ac, 0x1d46,
+ 0x84ad, 0x1d4a,
+ 0x84ae, 0x1d52,
+ 0x84af, 0x1d4e,
+ 0x84b0, 0x1d5a,
+ 0x84b1, 0x1d6a,
+ 0x84b2, 0x1d62,
+ 0x84b3, 0x1d72,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d57,
+ 0x84b6, 0x1d66,
+ 0x84b7, 0x1d5f,
+ 0x84b8, 0x1d6e,
+ 0x84b9, 0x1d76,
+ 0x84ba, 0x1d54,
+ 0x84bb, 0x1d67,
+ 0x84bc, 0x1d5c,
+ 0x84bd, 0x1d6f,
+ 0x84be, 0x1d79,
+ 0x8740, 0x1d83,
+ 0x875f, 0x1da1,
+ 0x8761, 0x1f66,
+ 0x8762, 0x1da4,
+ 0x8763, 0x1f68,
+ 0x8764, 0x1da6,
+ 0x8765, 0x1f6a,
+ 0x8766, 0x1da8,
+ 0x8768, 0x1f6c,
+ 0x8769, 0x1dab,
+ 0x876b, 0x1f6b,
+ 0x876c, 0x1dae,
+ 0x876e, 0x1f6f,
+ 0x876f, 0x1db1,
+ 0x877e, 0x2083,
+ 0x8780, 0x1db8,
+ 0x8784, 0x1f77,
+ 0x8785, 0x1dbd,
+ 0x8790, 0x02fa,
+ 0x8791, 0x02f9,
+ 0x8792, 0x0301,
+ 0x8793, 0x1dc8,
+ 0x879a, 0x0300,
+ 0x879b, 0x1dcf,
+ 0x889f, 0x0465,
+ 0x8940, 0x04c3,
+ 0x8980, 0x0502,
+ 0x8a40, 0x057f,
+ 0x8a80, 0x05be,
+ 0x8b40, 0x063b,
+ 0x8b80, 0x067a,
+ 0x8c40, 0x06f7,
+ 0x8c80, 0x0736,
+ 0x8d40, 0x07b3,
+ 0x8d80, 0x07f2,
+ 0x8e40, 0x086f,
+ 0x8e80, 0x08ae,
+ 0x8f40, 0x092b,
+ 0x8f80, 0x096a,
+ 0x9040, 0x09e7,
+ 0x9080, 0x0a26,
+ 0x9140, 0x0aa3,
+ 0x9180, 0x0ae2,
+ 0x9240, 0x0b5f,
+ 0x9280, 0x0b9e,
+ 0x9340, 0x0c1b,
+ 0x9380, 0x0c5a,
+ 0x9440, 0x0cd7,
+ 0x9480, 0x0d16,
+ 0x9540, 0x0d93,
+ 0x9580, 0x0dd2,
+ 0x9640, 0x0e4f,
+ 0x9680, 0x0e8e,
+ 0x9740, 0x0f0b,
+ 0x9780, 0x0f4a,
+ 0x9840, 0x0fc7,
+ 0x989f, 0x0ffa,
+ 0x9940, 0x1058,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a80, 0x1153,
+ 0x9b40, 0x11d0,
+ 0x9b80, 0x120f,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1387,
+ 0x9e40, 0x1404,
+ 0x9e80, 0x1443,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe140, 0x1638,
+ 0xe180, 0x1677,
+ 0xe240, 0x16f4,
+ 0xe280, 0x1733,
+ 0xe340, 0x17b0,
+ 0xe380, 0x17ef,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe540, 0x1928,
+ 0xe580, 0x1967,
+ 0xe640, 0x19e4,
+ 0xe680, 0x1a23,
+ 0xe740, 0x1aa0,
+ 0xe780, 0x1adf,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xea40, 0x1cd4,
+ 0xea80, 0x1d13,
+ 0xeaa3, 0x205c,
+ 0xed40, 0x20a7,
+ 0xed80, 0x20e6,
+ 0xedb4, 0x07c9,
+ 0xedb5, 0x211a,
+ 0xee40, 0x2162,
+ 0xee80, 0x21a1,
+ 0xeeef, 0x1f9c,
+ 0xeef9, 0x02ef,
+ 0xeefa, 0x1f45,
+ 0xfa40, 0x1f9c,
+ 0xfa4a, 0x1d97,
+ 0xfa54, 0x02ef,
+ 0xfa55, 0x1f45,
+ 0xfa58, 0x1dc2,
+ 0xfa59, 0x1dba,
+ 0xfa5a, 0x1f77,
+ 0xfa5b, 0x0300,
+ 0xfa5c, 0x20a7,
+ 0xfa80, 0x20ca,
+ 0xfad0, 0x07c9,
+ 0xfad1, 0x211a,
+ 0xfb40, 0x2146,
+ 0xfb80, 0x2185,
+ 0xfc40, 0x2202,
+ 0x8141, 0x1ecf,
+ 0x8143, 0x204c,
+ 0x8144, 0x2052,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8169, 0x1edb,
+ 0x8181, 0x1eed,
+ 0x81a8, 0x02e3,
+ 0x81a9, 0x02e2,
+ 0x81aa, 0x02e0,
+ 0x81ac, 0x204e,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0x849f, 0x1d39,
+ 0x84a0, 0x1d37,
+ 0x84a1, 0x1d47,
+ 0x84a2, 0x1d4f,
+ 0x84a3, 0x1d4b,
+ 0x84a4, 0x1d43,
+ 0x84a5, 0x1d63,
+ 0x84a6, 0x1d5b,
+ 0x84a7, 0x1d6b,
+ 0x84a8, 0x1d53,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d3a,
+ 0x84ab, 0x1d38,
+ 0x84ac, 0x1d4a,
+ 0x84ad, 0x1d52,
+ 0x84ae, 0x1d4e,
+ 0x84af, 0x1d46,
+ 0x84b0, 0x1d6a,
+ 0x84b1, 0x1d62,
+ 0x84b2, 0x1d72,
+ 0x84b3, 0x1d5a,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d66,
+ 0x84b6, 0x1d5f,
+ 0x84b7, 0x1d6e,
+ 0x84b8, 0x1d57,
+ 0x84b9, 0x1d79,
+ 0x84ba, 0x1d67,
+ 0x84bb, 0x1d5c,
+ 0x84bc, 0x1d6f,
+ 0x84bd, 0x1d54,
+ 0x84be, 0x1d76,
+ 0x875f, 0x1f04,
+ 0x8761, 0x2089,
+ 0x8762, 0x1f07,
+ 0x8763, 0x2093,
+ 0x8764, 0x1f09,
+ 0x8765, 0x2092,
+ 0x8766, 0x1f0b,
+ 0x8768, 0x2098,
+ 0x8769, 0x1f0e,
+ 0x876b, 0x209c,
+ 0x876c, 0x1f11,
+ 0x876e, 0x209d,
+ 0x8780, 0x1f14,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1290mspRKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
+ 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
+ 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018,
+ 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020,
+ 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028,
+ 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030,
+ 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038,
+ 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040,
+ 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
+ 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
+ 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
+ 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan1290mspRKSJVMap2, 248
+};
+
static Gushort japan1290pvRKSJHMap2[518] = {
0x0000, 0x0000,
0x8140, 0x0279,
@@ -3806,6 +7393,7 @@ static Gushort japan1290pvRKSJHMap2[518] = {
};
static GfxFontEncoding16 japan1290pvRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3857,6 +7445,372 @@ static GfxFontEncoding16 japan1290pvRKSJHEnc16 = {
japan1290pvRKSJHMap2, 259
};
+static Gushort japan1290pvRKSJVMap2[620] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x81b8, 0x02e5,
+ 0x81c8, 0x02ed,
+ 0x81da, 0x02f4,
+ 0x81f0, 0x0303,
+ 0x81fc, 0x030b,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x849f, 0x1d37,
+ 0x84a0, 0x1d39,
+ 0x84a1, 0x1d43,
+ 0x84a2, 0x1d47,
+ 0x84a3, 0x1d4f,
+ 0x84a4, 0x1d4b,
+ 0x84a5, 0x1d53,
+ 0x84a6, 0x1d63,
+ 0x84a7, 0x1d5b,
+ 0x84a8, 0x1d6b,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d38,
+ 0x84ab, 0x1d3a,
+ 0x84ac, 0x1d46,
+ 0x84ad, 0x1d4a,
+ 0x84ae, 0x1d52,
+ 0x84af, 0x1d4e,
+ 0x84b0, 0x1d5a,
+ 0x84b1, 0x1d6a,
+ 0x84b2, 0x1d62,
+ 0x84b3, 0x1d72,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d57,
+ 0x84b6, 0x1d66,
+ 0x84b7, 0x1d5f,
+ 0x84b8, 0x1d6e,
+ 0x84b9, 0x1d76,
+ 0x84ba, 0x1d54,
+ 0x84bb, 0x1d67,
+ 0x84bc, 0x1d5c,
+ 0x84bd, 0x1d6f,
+ 0x84be, 0x1d79,
+ 0x8540, 0x1d83,
+ 0x855e, 0x1f87,
+ 0x857c, 0x205e,
+ 0x8580, 0x2061,
+ 0x8591, 0x1f7d,
+ 0x859f, 0x1d97,
+ 0x85a9, 0x2021,
+ 0x85ab, 0x2067,
+ 0x85b3, 0x1f9c,
+ 0x85bd, 0x206a,
+ 0x85db, 0x1fb0,
+ 0x8640, 0x1db1,
+ 0x8641, 0x1ffa,
+ 0x8642, 0x1db2,
+ 0x8643, 0x1f54,
+ 0x8644, 0x1f56,
+ 0x8645, 0x206f,
+ 0x8646, 0x1db7,
+ 0x8647, 0x1f57,
+ 0x8648, 0x1db3,
+ 0x8649, 0x1f55,
+ 0x864a, 0x1db4,
+ 0x864b, 0x2070,
+ 0x864c, 0x1db5,
+ 0x864e, 0x1f65,
+ 0x864f, 0x1f58,
+ 0x8656, 0x2071,
+ 0x8657, 0x1f64,
+ 0x8658, 0x1f62,
+ 0x865a, 0x1f5f,
+ 0x865d, 0x2072,
+ 0x869b, 0x1dba,
+ 0x869e, 0x2073,
+ 0x869f, 0x1f52,
+ 0x86a0, 0x1f50,
+ 0x86a2, 0x1f53,
+ 0x86a3, 0x2013,
+ 0x86a4, 0x2015,
+ 0x86a5, 0x2014,
+ 0x86a6, 0x2016,
+ 0x86b3, 0x1f7a,
+ 0x86b4, 0x1f78,
+ 0x86b5, 0x2074,
+ 0x86c7, 0x201b,
+ 0x86cb, 0x2075,
+ 0x86cf, 0x1f4e,
+ 0x86d0, 0x1f4d,
+ 0x86d1, 0x1f4c,
+ 0x86d2, 0x1f4b,
+ 0x86d3, 0x200e,
+ 0x8740, 0x2005,
+ 0x8747, 0x1fd6,
+ 0x8748, 0x200c,
+ 0x8749, 0x1fd1,
+ 0x874a, 0x1fca,
+ 0x874b, 0x1dc4,
+ 0x874c, 0x1fd7,
+ 0x874d, 0x1dc2,
+ 0x874e, 0x1fd2,
+ 0x874f, 0x1fcd,
+ 0x8750, 0x1dc3,
+ 0x8751, 0x1fd5,
+ 0x8752, 0x1fd3,
+ 0x8753, 0x1fcf,
+ 0x8754, 0x1fd4,
+ 0x8755, 0x1fd0,
+ 0x8756, 0x1fcb,
+ 0x8758, 0x1fce,
+ 0x8791, 0x207d,
+ 0x8793, 0x1dbd,
+ 0x8798, 0x1fda,
+ 0x8799, 0x1fe5,
+ 0x879a, 0x207f,
+ 0x879b, 0x1fde,
+ 0x879c, 0x1fff,
+ 0x879d, 0x2080,
+ 0x879e, 0x201f,
+ 0x879f, 0x1da1,
+ 0x87a0, 0x1f66,
+ 0x87a1, 0x1da4,
+ 0x87a2, 0x1da2,
+ 0x87a3, 0x1f67,
+ 0x87a4, 0x1ff7,
+ 0x87a5, 0x2087,
+ 0x87a7, 0x1f6a,
+ 0x87a8, 0x1da8,
+ 0x87a9, 0x1f68,
+ 0x87ab, 0x1da6,
+ 0x87ac, 0x1da9,
+ 0x87ad, 0x1daf,
+ 0x87ae, 0x1f6e,
+ 0x87af, 0x1f6c,
+ 0x87b0, 0x1dab,
+ 0x87b1, 0x1f6d,
+ 0x87b2, 0x1f6b,
+ 0x87b3, 0x1dac,
+ 0x87b4, 0x1f6f,
+ 0x87b5, 0x1dae,
+ 0x87bd, 0x1f70,
+ 0x87be, 0x1f73,
+ 0x87c0, 0x1f71,
+ 0x87e5, 0x1dc5,
+ 0x87e8, 0x2083,
+ 0x87fa, 0x1f76,
+ 0x87fb, 0x2081,
+ 0x8840, 0x1dc8,
+ 0x8841, 0x1dcd,
+ 0x8854, 0x1db8,
+ 0x8868, 0x1f16,
+ 0x886a, 0x2079,
+ 0x889f, 0x0465,
+ 0x8940, 0x04c3,
+ 0x8980, 0x0502,
+ 0x8a40, 0x057f,
+ 0x8a80, 0x05be,
+ 0x8b40, 0x063b,
+ 0x8b80, 0x067a,
+ 0x8c40, 0x06f7,
+ 0x8c80, 0x0736,
+ 0x8d40, 0x07b3,
+ 0x8d80, 0x07f2,
+ 0x8e40, 0x086f,
+ 0x8e80, 0x08ae,
+ 0x8f40, 0x092b,
+ 0x8f80, 0x096a,
+ 0x9040, 0x09e7,
+ 0x9080, 0x0a26,
+ 0x9140, 0x0aa3,
+ 0x9180, 0x0ae2,
+ 0x9240, 0x0b5f,
+ 0x9280, 0x0b9e,
+ 0x9340, 0x0c1b,
+ 0x9380, 0x0c5a,
+ 0x9440, 0x0cd7,
+ 0x9480, 0x0d16,
+ 0x9540, 0x0d93,
+ 0x9580, 0x0dd2,
+ 0x9640, 0x0e4f,
+ 0x9680, 0x0e8e,
+ 0x9740, 0x0f0b,
+ 0x9780, 0x0f4a,
+ 0x9840, 0x0fc7,
+ 0x989f, 0x0ffa,
+ 0x9940, 0x1058,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a80, 0x1153,
+ 0x9b40, 0x11d0,
+ 0x9b80, 0x120f,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1387,
+ 0x9e40, 0x1404,
+ 0x9e80, 0x1443,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe140, 0x1638,
+ 0xe180, 0x1677,
+ 0xe240, 0x16f4,
+ 0xe280, 0x1733,
+ 0xe340, 0x17b0,
+ 0xe380, 0x17ef,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe540, 0x1928,
+ 0xe580, 0x1967,
+ 0xe640, 0x19e4,
+ 0xe680, 0x1a23,
+ 0xe740, 0x1aa0,
+ 0xe780, 0x1adf,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xea40, 0x1cd4,
+ 0xea80, 0x1d13,
+ 0xeaa3, 0x205c,
+ 0xeb41, 0x1ecf,
+ 0xeb50, 0x1ed1,
+ 0xeb5b, 0x1ed3,
+ 0xeb60, 0x1ed6,
+ 0xeb69, 0x1edb,
+ 0xeb81, 0x1eed,
+ 0xec9f, 0x1eee,
+ 0xeca1, 0x1eef,
+ 0xeca3, 0x1ef0,
+ 0xeca5, 0x1ef1,
+ 0xeca7, 0x1ef2,
+ 0xecc1, 0x1ef3,
+ 0xece1, 0x1ef4,
+ 0xece3, 0x1ef5,
+ 0xece5, 0x1ef6,
+ 0xecec, 0x1ef7,
+ 0xed40, 0x1ef8,
+ 0xed42, 0x1ef9,
+ 0xed44, 0x1efa,
+ 0xed46, 0x1efb,
+ 0xed48, 0x1efc,
+ 0xed62, 0x1efd,
+ 0xed83, 0x1efe,
+ 0xed85, 0x1eff,
+ 0xed87, 0x1f00,
+ 0xed8e, 0x1f01,
+ 0xed95, 0x1f02,
+ 0x8141, 0x1ecf,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8169, 0x1edb,
+ 0x8181, 0x1eed,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0x879f, 0x1f04,
+ 0x87a0, 0x2089,
+ 0x87a1, 0x1f07,
+ 0x87a2, 0x1f05,
+ 0x87a3, 0x208a,
+ 0x87a4, 0x208d,
+ 0x87a6, 0x2091,
+ 0x87a8, 0x1f0b,
+ 0x87a9, 0x2093,
+ 0x87ab, 0x1f09,
+ 0x87ac, 0x1f0c,
+ 0x87ad, 0x1f12,
+ 0x87ae, 0x2097,
+ 0x87b0, 0x1f0e,
+ 0x87b1, 0x209b,
+ 0x87b3, 0x1f0f,
+ 0x87b4, 0x209d,
+ 0x87b5, 0x1f11,
+ 0x87bd, 0x209e,
+ 0x87be, 0x20a1,
+ 0x87bf, 0x20a4,
+ 0x87c0, 0x20a6,
+ 0x87c1, 0x20a5,
+ 0x87fa, 0x2084,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan1290pvRKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
+ 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
+ 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018,
+ 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020,
+ 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028,
+ 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030,
+ 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038,
+ 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040,
+ 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
+ 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
+ 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
+ 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000,
+ 0x0061, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0098, 0x00e4, 0x007c },
+ japan1290pvRKSJVMap2, 310
+};
+
static Gushort japan12AddHMap2[1266] = {
0x0000, 0x0000,
0x2121, 0x0279,
@@ -4494,6 +8448,7 @@ static Gushort japan12AddHMap2[1266] = {
};
static GfxFontEncoding16 japan12AddHEnc16 = {
+ 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, 1,
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -5184,6 +9139,7 @@ static Gushort japan12AddRKSJHMap2[1270] = {
};
static GfxFontEncoding16 japan12AddRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -5235,6 +9191,1500 @@ static GfxFontEncoding16 japan12AddRKSJHEnc16 = {
japan12AddRKSJHMap2, 635
};
+static Gushort japan12AddRKSJVMap2[1384] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x81b8, 0x02e5,
+ 0x81c8, 0x02ed,
+ 0x81da, 0x02f4,
+ 0x81f0, 0x0303,
+ 0x81fc, 0x030b,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x82f2, 0x1f16,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x849f, 0x1d37,
+ 0x84a0, 0x1d39,
+ 0x84a1, 0x1d43,
+ 0x84a2, 0x1d47,
+ 0x84a3, 0x1d4f,
+ 0x84a4, 0x1d4b,
+ 0x84a5, 0x1d53,
+ 0x84a6, 0x1d63,
+ 0x84a7, 0x1d5b,
+ 0x84a8, 0x1d6b,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d38,
+ 0x84ab, 0x1d3a,
+ 0x84ac, 0x1d46,
+ 0x84ad, 0x1d4a,
+ 0x84ae, 0x1d52,
+ 0x84af, 0x1d4e,
+ 0x84b0, 0x1d5a,
+ 0x84b1, 0x1d6a,
+ 0x84b2, 0x1d62,
+ 0x84b3, 0x1d72,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d57,
+ 0x84b6, 0x1d66,
+ 0x84b7, 0x1d5f,
+ 0x84b8, 0x1d6e,
+ 0x84b9, 0x1d76,
+ 0x84ba, 0x1d54,
+ 0x84bb, 0x1d67,
+ 0x84bc, 0x1d5c,
+ 0x84bd, 0x1d6f,
+ 0x84be, 0x1d79,
+ 0x889f, 0x0465,
+ 0x88a0, 0x1dd1,
+ 0x88a1, 0x0467,
+ 0x88b0, 0x1f19,
+ 0x88b1, 0x0477,
+ 0x88b9, 0x1dd2,
+ 0x88ba, 0x0480,
+ 0x88ec, 0x1dd3,
+ 0x88ed, 0x04b3,
+ 0x88ef, 0x1f1a,
+ 0x88f0, 0x04b6,
+ 0x88f1, 0x1dd4,
+ 0x88f2, 0x04b8,
+ 0x88fa, 0x1dd5,
+ 0x88fb, 0x04c1,
+ 0x8940, 0x04c3,
+ 0x8949, 0x1dd6,
+ 0x894a, 0x04cd,
+ 0x8952, 0x1f1b,
+ 0x8953, 0x04d6,
+ 0x8954, 0x1dd7,
+ 0x8955, 0x04d8,
+ 0x8958, 0x1f1c,
+ 0x8959, 0x04dc,
+ 0x895c, 0x1dda,
+ 0x895d, 0x04e0,
+ 0x8961, 0x1ddb,
+ 0x8962, 0x04e5,
+ 0x8980, 0x0502,
+ 0x898b, 0x1ddc,
+ 0x898c, 0x050e,
+ 0x89a6, 0x1ddd,
+ 0x89a7, 0x0529,
+ 0x89a8, 0x1dde,
+ 0x89a9, 0x052b,
+ 0x89de, 0x1ddf,
+ 0x89df, 0x0561,
+ 0x89e5, 0x1f1d,
+ 0x89e6, 0x0568,
+ 0x89f8, 0x1de0,
+ 0x89f9, 0x057b,
+ 0x8a40, 0x057f,
+ 0x8a41, 0x1de2,
+ 0x8a42, 0x0581,
+ 0x8a80, 0x05be,
+ 0x8a8b, 0x1de4,
+ 0x8a8c, 0x05ca,
+ 0x8a93, 0x1de5,
+ 0x8a94, 0x05d2,
+ 0x8a9a, 0x1de6,
+ 0x8a9b, 0x05d9,
+ 0x8ac0, 0x1de7,
+ 0x8ac1, 0x05ff,
+ 0x8acb, 0x1de8,
+ 0x8acc, 0x060a,
+ 0x8ae3, 0x1de9,
+ 0x8ae4, 0x0622,
+ 0x8b40, 0x063b,
+ 0x8b4a, 0x1dea,
+ 0x8b4b, 0x0646,
+ 0x8b5f, 0x1deb,
+ 0x8b60, 0x065b,
+ 0x8b80, 0x067a,
+ 0x8b82, 0x1f1e,
+ 0x8b83, 0x067d,
+ 0x8b88, 0x1f1f,
+ 0x8b89, 0x0683,
+ 0x8ba0, 0x1dec,
+ 0x8ba1, 0x069b,
+ 0x8ba8, 0x1ded,
+ 0x8ba9, 0x06a3,
+ 0x8bc0, 0x1f20,
+ 0x8bc1, 0x06bb,
+ 0x8bcd, 0x1dee,
+ 0x8bce, 0x06c8,
+ 0x8beb, 0x1def,
+ 0x8bec, 0x06e6,
+ 0x8bf2, 0x1df0,
+ 0x8bf3, 0x06ed,
+ 0x8bf9, 0x1df1,
+ 0x8bfa, 0x06f4,
+ 0x8bfb, 0x1df2,
+ 0x8bfc, 0x06f6,
+ 0x8c40, 0x06f7,
+ 0x8c56, 0x1df4,
+ 0x8c57, 0x070e,
+ 0x8c71, 0x1df7,
+ 0x8c72, 0x0729,
+ 0x8c80, 0x0736,
+ 0x8c91, 0x1dfa,
+ 0x8c92, 0x0748,
+ 0x8c9d, 0x1f21,
+ 0x8c9e, 0x1dfc,
+ 0x8c9f, 0x0755,
+ 0x8cb2, 0x1dfd,
+ 0x8cb3, 0x0769,
+ 0x8cbf, 0x1dfe,
+ 0x8cc0, 0x0776,
+ 0x8d40, 0x07b3,
+ 0x8d4a, 0x1dff,
+ 0x8d4b, 0x07be,
+ 0x8d80, 0x07f2,
+ 0x8d8d, 0x1e02,
+ 0x8d8e, 0x0800,
+ 0x8d94, 0x1e03,
+ 0x8d95, 0x0807,
+ 0x8d99, 0x1e04,
+ 0x8d9a, 0x080c,
+ 0x8dd1, 0x1e05,
+ 0x8dd2, 0x0844,
+ 0x8de5, 0x1e06,
+ 0x8de6, 0x0858,
+ 0x8df2, 0x1e07,
+ 0x8df3, 0x0865,
+ 0x8e40, 0x086f,
+ 0x8e46, 0x1e08,
+ 0x8e47, 0x0876,
+ 0x8e49, 0x1e09,
+ 0x8e4a, 0x0879,
+ 0x8e4b, 0x1e0a,
+ 0x8e4c, 0x087b,
+ 0x8e58, 0x1e0b,
+ 0x8e59, 0x0888,
+ 0x8e60, 0x1f22,
+ 0x8e61, 0x0890,
+ 0x8e80, 0x08ae,
+ 0x8ec6, 0x1e0d,
+ 0x8ec7, 0x08f5,
+ 0x8edb, 0x1e0f,
+ 0x8edd, 0x090b,
+ 0x8f40, 0x092b,
+ 0x8f4a, 0x1e11,
+ 0x8f4b, 0x0936,
+ 0x8f55, 0x1e12,
+ 0x8f56, 0x0941,
+ 0x8f80, 0x096a,
+ 0x8f8c, 0x1e13,
+ 0x8f8d, 0x0977,
+ 0x8f92, 0x1e15,
+ 0x8f94, 0x097e,
+ 0x8fa3, 0x1e17,
+ 0x8fa4, 0x098e,
+ 0x8fb1, 0x1e18,
+ 0x8fb2, 0x099c,
+ 0x8fd3, 0x1e1a,
+ 0x8fd4, 0x09be,
+ 0x8fdd, 0x1e1b,
+ 0x8fde, 0x09c8,
+ 0x8fe2, 0x1e1c,
+ 0x8fe3, 0x09cd,
+ 0x9040, 0x09e7,
+ 0x9049, 0x1e1d,
+ 0x904a, 0x09f1,
+ 0x9078, 0x1f23,
+ 0x9079, 0x0a20,
+ 0x9080, 0x1e1f,
+ 0x9081, 0x0a27,
+ 0x90a0, 0x1e21,
+ 0x90a1, 0x0a47,
+ 0x90e4, 0x1e23,
+ 0x90e5, 0x0a8b,
+ 0x90ef, 0x1e24,
+ 0x90f0, 0x0a96,
+ 0x90f7, 0x1e26,
+ 0x90f8, 0x1f24,
+ 0x90f9, 0x0a9f,
+ 0x90fa, 0x1f25,
+ 0x90fc, 0x0aa2,
+ 0x9140, 0x0aa3,
+ 0x9146, 0x1e28,
+ 0x9147, 0x0aaa,
+ 0x9158, 0x1e29,
+ 0x9159, 0x0abc,
+ 0x916b, 0x1e2a,
+ 0x916c, 0x0acf,
+ 0x916e, 0x1e2b,
+ 0x916f, 0x0ad2,
+ 0x917e, 0x1e2c,
+ 0x9180, 0x0ae2,
+ 0x9189, 0x1e2d,
+ 0x918a, 0x0aec,
+ 0x91b5, 0x1f27,
+ 0x91b6, 0x0b18,
+ 0x91bb, 0x1e2e,
+ 0x91bc, 0x0b1e,
+ 0x91cb, 0x1e2f,
+ 0x91cc, 0x0b2e,
+ 0x91da, 0x1e30,
+ 0x91db, 0x0b3d,
+ 0x91e1, 0x1e31,
+ 0x91e2, 0x0b44,
+ 0x91ed, 0x1e32,
+ 0x91ee, 0x0b50,
+ 0x91fb, 0x1e35,
+ 0x91fc, 0x0b5e,
+ 0x9240, 0x0b5f,
+ 0x9246, 0x1e36,
+ 0x9247, 0x0b66,
+ 0x9248, 0x1e37,
+ 0x9249, 0x0b68,
+ 0x924c, 0x1e39,
+ 0x924e, 0x0b6d,
+ 0x925c, 0x1e3b,
+ 0x925d, 0x0b7c,
+ 0x9280, 0x0b9e,
+ 0x9290, 0x1e3c,
+ 0x9291, 0x0baf,
+ 0x9295, 0x1e3d,
+ 0x9296, 0x0bb4,
+ 0x929c, 0x1e3e,
+ 0x929d, 0x0bbb,
+ 0x92bb, 0x1e3f,
+ 0x92bc, 0x0bda,
+ 0x92c6, 0x1e40,
+ 0x92c7, 0x0be5,
+ 0x92c8, 0x1e41,
+ 0x92c9, 0x0be7,
+ 0x92cd, 0x1e43,
+ 0x92ce, 0x0bec,
+ 0x9340, 0x0c1b,
+ 0x9341, 0x1e44,
+ 0x9342, 0x0c1d,
+ 0x9346, 0x1e45,
+ 0x9347, 0x0c22,
+ 0x934d, 0x1e46,
+ 0x934e, 0x0c29,
+ 0x9355, 0x1e47,
+ 0x9356, 0x0c31,
+ 0x935e, 0x1e48,
+ 0x935f, 0x0c3a,
+ 0x9367, 0x1e49,
+ 0x9368, 0x0c43,
+ 0x936a, 0x1e4a,
+ 0x936b, 0x0c46,
+ 0x9370, 0x1f28,
+ 0x9371, 0x1e4c,
+ 0x9372, 0x0c4d,
+ 0x9380, 0x0c5a,
+ 0x9384, 0x1e4d,
+ 0x9385, 0x0c5f,
+ 0x9398, 0x1e4e,
+ 0x9399, 0x0c73,
+ 0x93c0, 0x1e50,
+ 0x93c1, 0x0c9b,
+ 0x93d2, 0x1e51,
+ 0x93d3, 0x0cad,
+ 0x93d9, 0x1e53,
+ 0x93da, 0x0cb4,
+ 0x93e4, 0x1e56,
+ 0x93e6, 0x0cc0,
+ 0x93e8, 0x1e58,
+ 0x93e9, 0x0cc3,
+ 0x93f4, 0x1ec0,
+ 0x93f5, 0x0ccf,
+ 0x9440, 0x0cd7,
+ 0x9448, 0x1e59,
+ 0x9449, 0x1f29,
+ 0x944a, 0x0ce1,
+ 0x9458, 0x1e5a,
+ 0x9459, 0x0cf0,
+ 0x9476, 0x1e5b,
+ 0x9477, 0x0d0e,
+ 0x9480, 0x0d16,
+ 0x9487, 0x1e5c,
+ 0x9488, 0x0d1e,
+ 0x9489, 0x1e5d,
+ 0x948a, 0x0d20,
+ 0x948d, 0x1e5e,
+ 0x948e, 0x0d24,
+ 0x94a2, 0x1e5f,
+ 0x94a3, 0x0d39,
+ 0x94ac, 0x1e60,
+ 0x94ad, 0x0d43,
+ 0x94ae, 0x1e61,
+ 0x94af, 0x0d45,
+ 0x94be, 0x1f2a,
+ 0x94bf, 0x0d55,
+ 0x94d2, 0x1e62,
+ 0x94d3, 0x0d69,
+ 0x94f3, 0x1e64,
+ 0x94f4, 0x0d8a,
+ 0x9540, 0x0d93,
+ 0x9541, 0x1e65,
+ 0x9543, 0x0d96,
+ 0x954e, 0x1e67,
+ 0x954f, 0x0da2,
+ 0x9551, 0x1e68,
+ 0x9552, 0x0da5,
+ 0x9554, 0x1e69,
+ 0x9555, 0x0da8,
+ 0x955f, 0x1e6a,
+ 0x9560, 0x0db3,
+ 0x956d, 0x1e6b,
+ 0x956e, 0x0dc1,
+ 0x9580, 0x0dd2,
+ 0x95c1, 0x1e6d,
+ 0x95c2, 0x0e14,
+ 0x95cb, 0x1e6e,
+ 0x95cc, 0x0e1e,
+ 0x95d1, 0x1f2b,
+ 0x95d2, 0x0e24,
+ 0x95d8, 0x1e6f,
+ 0x95d9, 0x0e2b,
+ 0x95f7, 0x1e70,
+ 0x95f8, 0x0e4a,
+ 0x9640, 0x0e4f,
+ 0x9648, 0x1e72,
+ 0x9649, 0x0e58,
+ 0x966a, 0x1e73,
+ 0x966b, 0x0e7a,
+ 0x9680, 0x0e8e,
+ 0x9690, 0x1e74,
+ 0x9691, 0x0e9f,
+ 0x9698, 0x1f2c,
+ 0x9699, 0x0ea7,
+ 0x96cb, 0x1e75,
+ 0x96cc, 0x0eda,
+ 0x96d7, 0x1e76,
+ 0x96d8, 0x0ee6,
+ 0x96dd, 0x1e77,
+ 0x96de, 0x0eec,
+ 0x96e0, 0x1e78,
+ 0x96e1, 0x0eef,
+ 0x96f8, 0x1e79,
+ 0x96f9, 0x0f07,
+ 0x96fa, 0x1e7a,
+ 0x96fb, 0x0f09,
+ 0x9740, 0x0f0b,
+ 0x9751, 0x1e7c,
+ 0x9752, 0x0f1d,
+ 0x976f, 0x1e7d,
+ 0x9770, 0x0f3b,
+ 0x9773, 0x1e7e,
+ 0x9774, 0x0f3f,
+ 0x9780, 0x0f4a,
+ 0x9789, 0x1e7f,
+ 0x978a, 0x0f54,
+ 0x97f8, 0x1e81,
+ 0x97fa, 0x1f2d,
+ 0x97fb, 0x0fc5,
+ 0x9840, 0x1e83,
+ 0x9841, 0x0fc8,
+ 0x9850, 0x1e84,
+ 0x9851, 0x0fd8,
+ 0x9858, 0x1e85,
+ 0x9859, 0x0fe0,
+ 0x989f, 0x0ffa,
+ 0x9940, 0x1058,
+ 0x9941, 0x1f2e,
+ 0x9942, 0x105a,
+ 0x995c, 0x1e86,
+ 0x995d, 0x1075,
+ 0x996c, 0x1e89,
+ 0x996d, 0x1085,
+ 0x9980, 0x1097,
+ 0x99b6, 0x1f2f,
+ 0x99b7, 0x10ce,
+ 0x9a40, 0x1114,
+ 0x9a4f, 0x1e8a,
+ 0x9a50, 0x1124,
+ 0x9a59, 0x1e8b,
+ 0x9a5a, 0x112e,
+ 0x9a67, 0x1f30,
+ 0x9a68, 0x113c,
+ 0x9a7d, 0x1e8d,
+ 0x9a7e, 0x1152,
+ 0x9a80, 0x1153,
+ 0x9a8b, 0x1e8e,
+ 0x9a8c, 0x1f31,
+ 0x9a8d, 0x1160,
+ 0x9ac2, 0x1e8f,
+ 0x9ac3, 0x1f32,
+ 0x9ac4, 0x1197,
+ 0x9aea, 0x1f33,
+ 0x9aeb, 0x11be,
+ 0x9b40, 0x11d0,
+ 0x9b5c, 0x1e90,
+ 0x9b5d, 0x11ed,
+ 0x9b80, 0x120f,
+ 0x9b83, 0x1e91,
+ 0x9b84, 0x1213,
+ 0x9b98, 0x1f34,
+ 0x9b99, 0x1228,
+ 0x9ba0, 0x1e92,
+ 0x9ba1, 0x1230,
+ 0x9bfb, 0x1f35,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9ca2, 0x1e94,
+ 0x9ca3, 0x12ee,
+ 0x9d40, 0x1348,
+ 0x9d47, 0x1f37,
+ 0x9d48, 0x1350,
+ 0x9d80, 0x1e95,
+ 0x9d81, 0x1388,
+ 0x9d8c, 0x1e96,
+ 0x9d8d, 0x1394,
+ 0x9db7, 0x1e97,
+ 0x9db8, 0x13bf,
+ 0x9df8, 0x1f38,
+ 0x9df9, 0x1400,
+ 0x9e40, 0x1404,
+ 0x9e64, 0x1e99,
+ 0x9e65, 0x1429,
+ 0x9e80, 0x1443,
+ 0x9e8b, 0x1e9b,
+ 0x9e8c, 0x144f,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0x9f81, 0x1f39,
+ 0x9f82, 0x1501,
+ 0x9fce, 0x1e9d,
+ 0x9fcf, 0x154e,
+ 0x9fd4, 0x1f3a,
+ 0x9fd5, 0x1554,
+ 0x9ff4, 0x1f3b,
+ 0x9ff5, 0x1574,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe093, 0x1e9e,
+ 0xe094, 0x15cf,
+ 0xe0a4, 0x1e9f,
+ 0xe0a5, 0x15e0,
+ 0xe0dd, 0x1ea0,
+ 0xe0de, 0x1619,
+ 0xe140, 0x1638,
+ 0xe14a, 0x1ea1,
+ 0xe14b, 0x1643,
+ 0xe180, 0x1677,
+ 0xe1ed, 0x1ea5,
+ 0xe1ee, 0x16e5,
+ 0xe240, 0x16f4,
+ 0xe269, 0x1ea6,
+ 0xe26a, 0x171e,
+ 0xe273, 0x1ea7,
+ 0xe274, 0x1728,
+ 0xe278, 0x1f3c,
+ 0xe279, 0x172d,
+ 0xe280, 0x1733,
+ 0xe2b7, 0x1ea8,
+ 0xe2b8, 0x176b,
+ 0xe2be, 0x1f3d,
+ 0xe2bf, 0x1772,
+ 0xe2e2, 0x1ea9,
+ 0xe2e3, 0x1796,
+ 0xe2ec, 0x1eaa,
+ 0xe2ed, 0x17a0,
+ 0xe340, 0x17b0,
+ 0xe358, 0x1eab,
+ 0xe359, 0x17c9,
+ 0xe35a, 0x1eac,
+ 0xe35b, 0x17cb,
+ 0xe365, 0x1ead,
+ 0xe366, 0x17d6,
+ 0xe380, 0x17ef,
+ 0xe3c7, 0x1f3e,
+ 0xe3c8, 0x1837,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe484, 0x1eaf,
+ 0xe485, 0x18b0,
+ 0xe489, 0x1eb0,
+ 0xe48a, 0x18b5,
+ 0xe492, 0x1eb1,
+ 0xe493, 0x18be,
+ 0xe4b9, 0x1eb3,
+ 0xe4ba, 0x18e5,
+ 0xe4cb, 0x1f3f,
+ 0xe4cc, 0x18f7,
+ 0xe540, 0x1928,
+ 0xe580, 0x1967,
+ 0xe59e, 0x1f40,
+ 0xe59f, 0x1986,
+ 0xe5ba, 0x1f41,
+ 0xe5bc, 0x19a3,
+ 0xe5ed, 0x1eb8,
+ 0xe5ee, 0x19d5,
+ 0xe640, 0x19e4,
+ 0xe651, 0x1eb9,
+ 0xe652, 0x19f6,
+ 0xe680, 0x1a23,
+ 0xe686, 0x1eba,
+ 0xe687, 0x1a2a,
+ 0xe6e7, 0x1ebc,
+ 0xe6e8, 0x1a8b,
+ 0xe740, 0x1aa0,
+ 0xe76d, 0x1ebe,
+ 0xe76e, 0x1ace,
+ 0xe780, 0x1adf,
+ 0xe7a7, 0x1ec1,
+ 0xe7a8, 0x1b07,
+ 0xe7bb, 0x1ec2,
+ 0xe7bc, 0x1b1b,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe8cf, 0x1ec7,
+ 0xe8d0, 0x1beb,
+ 0xe940, 0x1c18,
+ 0xe978, 0x1f43,
+ 0xe979, 0x1c51,
+ 0xe980, 0x1c57,
+ 0xe9ab, 0x1eca,
+ 0xe9ac, 0x1c83,
+ 0xe9ba, 0x1ecb,
+ 0xe9bb, 0x1c92,
+ 0xe9cc, 0x1ecc,
+ 0xe9cd, 0x1ca4,
+ 0xea40, 0x1cd4,
+ 0xea70, 0x1ecd,
+ 0xea71, 0x1f44,
+ 0xea72, 0x1d06,
+ 0xea80, 0x1d13,
+ 0xea9d, 0x1ece,
+ 0xea9e, 0x1d31,
+ 0xeaa3, 0x205c,
+ 0xec40, 0x1f45,
+ 0xec46, 0x1f48,
+ 0xec47, 0x0300,
+ 0xec48, 0x02fa,
+ 0xec49, 0x02f9,
+ 0xec4d, 0x1f49,
+ 0xec5b, 0x1db1,
+ 0xec5e, 0x1f54,
+ 0xec5f, 0x1db7,
+ 0xec60, 0x1f55,
+ 0xec63, 0x1db4,
+ 0xec66, 0x1f58,
+ 0xec70, 0x0303,
+ 0xec71, 0x1f62,
+ 0xec72, 0x0304,
+ 0xec73, 0x1f63,
+ 0xec76, 0x1f65,
+ 0xec78, 0x1da4,
+ 0xec79, 0x1da1,
+ 0xec7a, 0x1f66,
+ 0xec7b, 0x1da2,
+ 0xec7c, 0x1f67,
+ 0xec80, 0x1da6,
+ 0xec81, 0x1f6a,
+ 0xec82, 0x1da8,
+ 0xec83, 0x1dac,
+ 0xec84, 0x1f6b,
+ 0xec85, 0x1dae,
+ 0xec86, 0x1dab,
+ 0xec87, 0x1f6c,
+ 0xec89, 0x1daf,
+ 0xec8a, 0x1f6e,
+ 0xec94, 0x1f75,
+ 0xec9a, 0x1dba,
+ 0xec9b, 0x1f7b,
+ 0xec9e, 0x1f7c,
+ 0xeca7, 0x1f7d,
+ 0xecb2, 0x1f87,
+ 0xecc7, 0x1d83,
+ 0xecdb, 0x1f9b,
+ 0xecdc, 0x1d97,
+ 0xece9, 0x1f9c,
+ 0xed40, 0x1fb0,
+ 0xed64, 0x1f16,
+ 0xed68, 0x1fca,
+ 0xed6a, 0x1dc4,
+ 0xed6b, 0x1fcc,
+ 0xed6e, 0x1dc3,
+ 0xed6f, 0x1fcf,
+ 0xed74, 0x1dc2,
+ 0xed75, 0x1fd4,
+ 0xed7c, 0x1fd8,
+ 0xed80, 0x1fdb,
+ 0xed8f, 0x1fe6,
+ 0xef40, 0x1ecf,
+ 0xef42, 0x204c,
+ 0xef43, 0x2052,
+ 0xef44, 0x1ed1,
+ 0xef4e, 0x205a,
+ 0xef4f, 0x2053,
+ 0xef50, 0x2058,
+ 0xef51, 0x2055,
+ 0xef52, 0x1edb,
+ 0xef64, 0x1eee,
+ 0xef7a, 0x2048,
+ 0xef8d, 0x02e0,
+ 0xef91, 0x1ff6,
+ 0x8141, 0x1ecf,
+ 0x8143, 0x204c,
+ 0x8144, 0x2052,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8165, 0x205a,
+ 0x8166, 0x2053,
+ 0x8167, 0x2058,
+ 0x8168, 0x2055,
+ 0x8169, 0x1edb,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x82f3, 0x2048,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0xec78, 0x1f07,
+ 0xec79, 0x1f04,
+ 0xec7a, 0x2089,
+ 0xec7b, 0x1f05,
+ 0xec7c, 0x208a,
+ 0xec7d, 0x2093,
+ 0xec80, 0x1f09,
+ 0xec81, 0x2092,
+ 0xec82, 0x1f0b,
+ 0xec83, 0x1f0f,
+ 0xec84, 0x209c,
+ 0xec85, 0x1f11,
+ 0xec86, 0x1f0e,
+ 0xec87, 0x2098,
+ 0xec88, 0x209b,
+ 0xec89, 0x1f12,
+ 0xec8a, 0x2097,
+ 0xec8b, 0x209d,
+ 0xec8d, 0x20a6,
+ 0xec8e, 0x20a5,
+ 0xec8f, 0x20a1,
+ 0xec90, 0x20a4,
+ 0xec95, 0x2084,
+ 0xef92, 0x208d,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12AddRKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12AddRKSJVMap2, 692
+};
+
+static Gushort japan12AddVMap2[1380] = {
+ 0x0000, 0x0000,
+ 0x2121, 0x0279,
+ 0x2221, 0x02d7,
+ 0x223a, 0x02e5,
+ 0x224a, 0x02ed,
+ 0x225c, 0x02f4,
+ 0x2272, 0x0303,
+ 0x227e, 0x030b,
+ 0x2330, 0x030c,
+ 0x2341, 0x0316,
+ 0x2361, 0x0330,
+ 0x2421, 0x034a,
+ 0x2474, 0x1f16,
+ 0x2521, 0x039d,
+ 0x2621, 0x03f3,
+ 0x2641, 0x040b,
+ 0x2721, 0x0423,
+ 0x2751, 0x0444,
+ 0x2821, 0x1d37,
+ 0x2822, 0x1d39,
+ 0x2823, 0x1d43,
+ 0x2824, 0x1d47,
+ 0x2825, 0x1d4f,
+ 0x2826, 0x1d4b,
+ 0x2827, 0x1d53,
+ 0x2828, 0x1d63,
+ 0x2829, 0x1d5b,
+ 0x282a, 0x1d6b,
+ 0x282b, 0x1d73,
+ 0x282c, 0x1d38,
+ 0x282d, 0x1d3a,
+ 0x282e, 0x1d46,
+ 0x282f, 0x1d4a,
+ 0x2830, 0x1d52,
+ 0x2831, 0x1d4e,
+ 0x2832, 0x1d5a,
+ 0x2833, 0x1d6a,
+ 0x2834, 0x1d62,
+ 0x2835, 0x1d72,
+ 0x2836, 0x1d82,
+ 0x2837, 0x1d57,
+ 0x2838, 0x1d66,
+ 0x2839, 0x1d5f,
+ 0x283a, 0x1d6e,
+ 0x283b, 0x1d76,
+ 0x283c, 0x1d54,
+ 0x283d, 0x1d67,
+ 0x283e, 0x1d5c,
+ 0x283f, 0x1d6f,
+ 0x2840, 0x1d79,
+ 0x3021, 0x0465,
+ 0x3022, 0x1dd1,
+ 0x3023, 0x0467,
+ 0x3032, 0x1f19,
+ 0x3033, 0x0477,
+ 0x303b, 0x1dd2,
+ 0x303c, 0x0480,
+ 0x306e, 0x1dd3,
+ 0x306f, 0x04b3,
+ 0x3071, 0x1f1a,
+ 0x3072, 0x04b6,
+ 0x3073, 0x1dd4,
+ 0x3074, 0x04b8,
+ 0x307c, 0x1dd5,
+ 0x307d, 0x04c1,
+ 0x3121, 0x04c3,
+ 0x312a, 0x1dd6,
+ 0x312b, 0x04cd,
+ 0x3133, 0x1f1b,
+ 0x3134, 0x04d6,
+ 0x3135, 0x1dd7,
+ 0x3136, 0x04d8,
+ 0x3139, 0x1f1c,
+ 0x313a, 0x04dc,
+ 0x313d, 0x1dda,
+ 0x313e, 0x04e0,
+ 0x3142, 0x1ddb,
+ 0x3143, 0x04e5,
+ 0x316b, 0x1ddc,
+ 0x316c, 0x050e,
+ 0x3221, 0x0521,
+ 0x3228, 0x1ddd,
+ 0x3229, 0x0529,
+ 0x322a, 0x1dde,
+ 0x322b, 0x052b,
+ 0x3260, 0x1ddf,
+ 0x3261, 0x0561,
+ 0x3267, 0x1f1d,
+ 0x3268, 0x0568,
+ 0x327a, 0x1de0,
+ 0x327b, 0x057b,
+ 0x3321, 0x057f,
+ 0x3322, 0x1de2,
+ 0x3323, 0x0581,
+ 0x336b, 0x1de4,
+ 0x336c, 0x05ca,
+ 0x3373, 0x1de5,
+ 0x3374, 0x05d2,
+ 0x337a, 0x1de6,
+ 0x337b, 0x05d9,
+ 0x3421, 0x05dd,
+ 0x3442, 0x1de7,
+ 0x3443, 0x05ff,
+ 0x344d, 0x1de8,
+ 0x344e, 0x060a,
+ 0x3465, 0x1de9,
+ 0x3466, 0x0622,
+ 0x3521, 0x063b,
+ 0x352b, 0x1dea,
+ 0x352c, 0x0646,
+ 0x3540, 0x1deb,
+ 0x3541, 0x065b,
+ 0x3562, 0x1f1e,
+ 0x3563, 0x067d,
+ 0x3568, 0x1f1f,
+ 0x3569, 0x0683,
+ 0x3621, 0x0699,
+ 0x3622, 0x1dec,
+ 0x3623, 0x069b,
+ 0x362a, 0x1ded,
+ 0x362b, 0x06a3,
+ 0x3642, 0x1f20,
+ 0x3643, 0x06bb,
+ 0x364f, 0x1dee,
+ 0x3650, 0x06c8,
+ 0x366d, 0x1def,
+ 0x366e, 0x06e6,
+ 0x3674, 0x1df0,
+ 0x3675, 0x06ed,
+ 0x367b, 0x1df1,
+ 0x367c, 0x06f4,
+ 0x367d, 0x1df2,
+ 0x367e, 0x06f6,
+ 0x3721, 0x06f7,
+ 0x3737, 0x1df4,
+ 0x3738, 0x070e,
+ 0x3752, 0x1df7,
+ 0x3753, 0x0729,
+ 0x3771, 0x1dfa,
+ 0x3772, 0x0748,
+ 0x377d, 0x1f21,
+ 0x377e, 0x1dfc,
+ 0x3821, 0x0755,
+ 0x3834, 0x1dfd,
+ 0x3835, 0x0769,
+ 0x3841, 0x1dfe,
+ 0x3842, 0x0776,
+ 0x3921, 0x07b3,
+ 0x392b, 0x1dff,
+ 0x392c, 0x07be,
+ 0x396d, 0x1e02,
+ 0x396e, 0x0800,
+ 0x3974, 0x1e03,
+ 0x3975, 0x0807,
+ 0x3979, 0x1e04,
+ 0x397a, 0x080c,
+ 0x3a21, 0x0811,
+ 0x3a53, 0x1e05,
+ 0x3a54, 0x0844,
+ 0x3a67, 0x1e06,
+ 0x3a68, 0x0858,
+ 0x3a74, 0x1e07,
+ 0x3a75, 0x0865,
+ 0x3b21, 0x086f,
+ 0x3b27, 0x1e08,
+ 0x3b28, 0x0876,
+ 0x3b2a, 0x1e09,
+ 0x3b2b, 0x0879,
+ 0x3b2c, 0x1e0a,
+ 0x3b2d, 0x087b,
+ 0x3b39, 0x1e0b,
+ 0x3b3a, 0x0888,
+ 0x3b41, 0x1f22,
+ 0x3b42, 0x0890,
+ 0x3c21, 0x08cd,
+ 0x3c48, 0x1e0d,
+ 0x3c49, 0x08f5,
+ 0x3c5d, 0x1e0f,
+ 0x3c5f, 0x090b,
+ 0x3d21, 0x092b,
+ 0x3d2b, 0x1e11,
+ 0x3d2c, 0x0936,
+ 0x3d36, 0x1e12,
+ 0x3d37, 0x0941,
+ 0x3d6c, 0x1e13,
+ 0x3d6d, 0x0977,
+ 0x3d72, 0x1e15,
+ 0x3d74, 0x097e,
+ 0x3e21, 0x0989,
+ 0x3e25, 0x1e17,
+ 0x3e26, 0x098e,
+ 0x3e33, 0x1e18,
+ 0x3e34, 0x099c,
+ 0x3e55, 0x1e1a,
+ 0x3e56, 0x09be,
+ 0x3e5f, 0x1e1b,
+ 0x3e60, 0x09c8,
+ 0x3e64, 0x1e1c,
+ 0x3e65, 0x09cd,
+ 0x3f21, 0x09e7,
+ 0x3f2a, 0x1e1d,
+ 0x3f2b, 0x09f1,
+ 0x3f59, 0x1f23,
+ 0x3f5a, 0x0a20,
+ 0x3f60, 0x1e1f,
+ 0x3f61, 0x0a27,
+ 0x4021, 0x0a45,
+ 0x4022, 0x1e21,
+ 0x4023, 0x0a47,
+ 0x4066, 0x1e23,
+ 0x4067, 0x0a8b,
+ 0x4071, 0x1e24,
+ 0x4072, 0x0a96,
+ 0x4079, 0x1e26,
+ 0x407a, 0x1f24,
+ 0x407b, 0x0a9f,
+ 0x407c, 0x1f25,
+ 0x407e, 0x0aa2,
+ 0x4121, 0x0aa3,
+ 0x4127, 0x1e28,
+ 0x4128, 0x0aaa,
+ 0x4139, 0x1e29,
+ 0x413a, 0x0abc,
+ 0x414c, 0x1e2a,
+ 0x414d, 0x0acf,
+ 0x414f, 0x1e2b,
+ 0x4150, 0x0ad2,
+ 0x415f, 0x1e2c,
+ 0x4160, 0x0ae2,
+ 0x4169, 0x1e2d,
+ 0x416a, 0x0aec,
+ 0x4221, 0x0b01,
+ 0x4237, 0x1f27,
+ 0x4238, 0x0b18,
+ 0x423d, 0x1e2e,
+ 0x423e, 0x0b1e,
+ 0x424d, 0x1e2f,
+ 0x424e, 0x0b2e,
+ 0x425c, 0x1e30,
+ 0x425d, 0x0b3d,
+ 0x4263, 0x1e31,
+ 0x4264, 0x0b44,
+ 0x426f, 0x1e32,
+ 0x4270, 0x0b50,
+ 0x427d, 0x1e35,
+ 0x427e, 0x0b5e,
+ 0x4321, 0x0b5f,
+ 0x4327, 0x1e36,
+ 0x4328, 0x0b66,
+ 0x4329, 0x1e37,
+ 0x432a, 0x0b68,
+ 0x432d, 0x1e39,
+ 0x432f, 0x0b6d,
+ 0x433d, 0x1e3b,
+ 0x433e, 0x0b7c,
+ 0x4370, 0x1e3c,
+ 0x4371, 0x0baf,
+ 0x4375, 0x1e3d,
+ 0x4376, 0x0bb4,
+ 0x437c, 0x1e3e,
+ 0x437d, 0x0bbb,
+ 0x4421, 0x0bbd,
+ 0x443d, 0x1e3f,
+ 0x443e, 0x0bda,
+ 0x4448, 0x1e40,
+ 0x4449, 0x0be5,
+ 0x444a, 0x1e41,
+ 0x444b, 0x0be7,
+ 0x444f, 0x1e43,
+ 0x4450, 0x0bec,
+ 0x4521, 0x0c1b,
+ 0x4522, 0x1e44,
+ 0x4523, 0x0c1d,
+ 0x4527, 0x1e45,
+ 0x4528, 0x0c22,
+ 0x452e, 0x1e46,
+ 0x452f, 0x0c29,
+ 0x4536, 0x1e47,
+ 0x4537, 0x0c31,
+ 0x453f, 0x1e48,
+ 0x4540, 0x0c3a,
+ 0x4548, 0x1e49,
+ 0x4549, 0x0c43,
+ 0x454b, 0x1e4a,
+ 0x454c, 0x0c46,
+ 0x4551, 0x1f28,
+ 0x4552, 0x1e4c,
+ 0x4553, 0x0c4d,
+ 0x4564, 0x1e4d,
+ 0x4565, 0x0c5f,
+ 0x4578, 0x1e4e,
+ 0x4579, 0x0c73,
+ 0x4621, 0x0c79,
+ 0x4642, 0x1e50,
+ 0x4643, 0x0c9b,
+ 0x4654, 0x1e51,
+ 0x4655, 0x0cad,
+ 0x465b, 0x1e53,
+ 0x465c, 0x0cb4,
+ 0x4666, 0x1e56,
+ 0x4668, 0x0cc0,
+ 0x466a, 0x1e58,
+ 0x466b, 0x0cc3,
+ 0x4676, 0x1ec0,
+ 0x4677, 0x0ccf,
+ 0x4721, 0x0cd7,
+ 0x4729, 0x1e59,
+ 0x472a, 0x1f29,
+ 0x472b, 0x0ce1,
+ 0x4739, 0x1e5a,
+ 0x473a, 0x0cf0,
+ 0x4757, 0x1e5b,
+ 0x4758, 0x0d0e,
+ 0x4767, 0x1e5c,
+ 0x4768, 0x0d1e,
+ 0x4769, 0x1e5d,
+ 0x476a, 0x0d20,
+ 0x476d, 0x1e5e,
+ 0x476e, 0x0d24,
+ 0x4821, 0x0d35,
+ 0x4824, 0x1e5f,
+ 0x4825, 0x0d39,
+ 0x482e, 0x1e60,
+ 0x482f, 0x0d43,
+ 0x4830, 0x1e61,
+ 0x4831, 0x0d45,
+ 0x4840, 0x1f2a,
+ 0x4841, 0x0d55,
+ 0x4854, 0x1e62,
+ 0x4855, 0x0d69,
+ 0x4875, 0x1e64,
+ 0x4876, 0x0d8a,
+ 0x4921, 0x0d93,
+ 0x4922, 0x1e65,
+ 0x4924, 0x0d96,
+ 0x492f, 0x1e67,
+ 0x4930, 0x0da2,
+ 0x4932, 0x1e68,
+ 0x4933, 0x0da5,
+ 0x4935, 0x1e69,
+ 0x4936, 0x0da8,
+ 0x4940, 0x1e6a,
+ 0x4941, 0x0db3,
+ 0x494e, 0x1e6b,
+ 0x494f, 0x0dc1,
+ 0x4a21, 0x0df1,
+ 0x4a43, 0x1e6d,
+ 0x4a44, 0x0e14,
+ 0x4a4d, 0x1e6e,
+ 0x4a4e, 0x0e1e,
+ 0x4a53, 0x1f2b,
+ 0x4a54, 0x0e24,
+ 0x4a5a, 0x1e6f,
+ 0x4a5b, 0x0e2b,
+ 0x4a79, 0x1e70,
+ 0x4a7a, 0x0e4a,
+ 0x4b21, 0x0e4f,
+ 0x4b29, 0x1e72,
+ 0x4b2a, 0x0e58,
+ 0x4b4b, 0x1e73,
+ 0x4b4c, 0x0e7a,
+ 0x4b70, 0x1e74,
+ 0x4b71, 0x0e9f,
+ 0x4b78, 0x1f2c,
+ 0x4b79, 0x0ea7,
+ 0x4c21, 0x0ead,
+ 0x4c4d, 0x1e75,
+ 0x4c4e, 0x0eda,
+ 0x4c59, 0x1e76,
+ 0x4c5a, 0x0ee6,
+ 0x4c5f, 0x1e77,
+ 0x4c60, 0x0eec,
+ 0x4c62, 0x1e78,
+ 0x4c63, 0x0eef,
+ 0x4c7a, 0x1e79,
+ 0x4c7b, 0x0f07,
+ 0x4c7c, 0x1e7a,
+ 0x4c7d, 0x0f09,
+ 0x4d21, 0x0f0b,
+ 0x4d32, 0x1e7c,
+ 0x4d33, 0x0f1d,
+ 0x4d50, 0x1e7d,
+ 0x4d51, 0x0f3b,
+ 0x4d54, 0x1e7e,
+ 0x4d55, 0x0f3f,
+ 0x4d69, 0x1e7f,
+ 0x4d6a, 0x0f54,
+ 0x4e21, 0x0f69,
+ 0x4e7a, 0x1e81,
+ 0x4e7c, 0x1f2d,
+ 0x4e7d, 0x0fc5,
+ 0x4f21, 0x1e83,
+ 0x4f22, 0x0fc8,
+ 0x4f31, 0x1e84,
+ 0x4f32, 0x0fd8,
+ 0x4f39, 0x1e85,
+ 0x4f3a, 0x0fe0,
+ 0x5021, 0x0ffa,
+ 0x5121, 0x1058,
+ 0x5122, 0x1f2e,
+ 0x5123, 0x105a,
+ 0x513d, 0x1e86,
+ 0x513e, 0x1075,
+ 0x514d, 0x1e89,
+ 0x514e, 0x1085,
+ 0x5221, 0x10b6,
+ 0x5238, 0x1f2f,
+ 0x5239, 0x10ce,
+ 0x5321, 0x1114,
+ 0x5330, 0x1e8a,
+ 0x5331, 0x1124,
+ 0x533a, 0x1e8b,
+ 0x533b, 0x112e,
+ 0x5348, 0x1f30,
+ 0x5349, 0x113c,
+ 0x535e, 0x1e8d,
+ 0x535f, 0x1152,
+ 0x536b, 0x1e8e,
+ 0x536c, 0x1f31,
+ 0x536d, 0x1160,
+ 0x5421, 0x1172,
+ 0x5444, 0x1e8f,
+ 0x5445, 0x1f32,
+ 0x5446, 0x1197,
+ 0x546c, 0x1f33,
+ 0x546d, 0x11be,
+ 0x5521, 0x11d0,
+ 0x553d, 0x1e90,
+ 0x553e, 0x11ed,
+ 0x5563, 0x1e91,
+ 0x5564, 0x1213,
+ 0x5578, 0x1f34,
+ 0x5579, 0x1228,
+ 0x5621, 0x122e,
+ 0x5622, 0x1e92,
+ 0x5623, 0x1230,
+ 0x567d, 0x1f35,
+ 0x5721, 0x128c,
+ 0x5821, 0x12ea,
+ 0x5824, 0x1e94,
+ 0x5825, 0x12ee,
+ 0x5921, 0x1348,
+ 0x5928, 0x1f37,
+ 0x5929, 0x1350,
+ 0x5960, 0x1e95,
+ 0x5961, 0x1388,
+ 0x596c, 0x1e96,
+ 0x596d, 0x1394,
+ 0x5a21, 0x13a6,
+ 0x5a39, 0x1e97,
+ 0x5a3a, 0x13bf,
+ 0x5a7a, 0x1f38,
+ 0x5a7b, 0x1400,
+ 0x5b21, 0x1404,
+ 0x5b45, 0x1e99,
+ 0x5b46, 0x1429,
+ 0x5b6b, 0x1e9b,
+ 0x5b6c, 0x144f,
+ 0x5c21, 0x1462,
+ 0x5d21, 0x14c0,
+ 0x5d61, 0x1f39,
+ 0x5d62, 0x1501,
+ 0x5e21, 0x151e,
+ 0x5e50, 0x1e9d,
+ 0x5e51, 0x154e,
+ 0x5e56, 0x1f3a,
+ 0x5e57, 0x1554,
+ 0x5e76, 0x1f3b,
+ 0x5e77, 0x1574,
+ 0x5f21, 0x157c,
+ 0x5f73, 0x1e9e,
+ 0x5f74, 0x15cf,
+ 0x6021, 0x15da,
+ 0x6026, 0x1e9f,
+ 0x6027, 0x15e0,
+ 0x605f, 0x1ea0,
+ 0x6060, 0x1619,
+ 0x6121, 0x1638,
+ 0x612b, 0x1ea1,
+ 0x612c, 0x1643,
+ 0x6221, 0x1696,
+ 0x626f, 0x1ea5,
+ 0x6270, 0x16e5,
+ 0x6321, 0x16f4,
+ 0x634a, 0x1ea6,
+ 0x634b, 0x171e,
+ 0x6354, 0x1ea7,
+ 0x6355, 0x1728,
+ 0x6359, 0x1f3c,
+ 0x635a, 0x172d,
+ 0x6421, 0x1752,
+ 0x6439, 0x1ea8,
+ 0x643a, 0x176b,
+ 0x6440, 0x1f3d,
+ 0x6441, 0x1772,
+ 0x6464, 0x1ea9,
+ 0x6465, 0x1796,
+ 0x646e, 0x1eaa,
+ 0x646f, 0x17a0,
+ 0x6521, 0x17b0,
+ 0x6539, 0x1eab,
+ 0x653a, 0x17c9,
+ 0x653b, 0x1eac,
+ 0x653c, 0x17cb,
+ 0x6546, 0x1ead,
+ 0x6547, 0x17d6,
+ 0x6621, 0x180e,
+ 0x6649, 0x1f3e,
+ 0x664a, 0x1837,
+ 0x6721, 0x186c,
+ 0x6764, 0x1eaf,
+ 0x6765, 0x18b0,
+ 0x6769, 0x1eb0,
+ 0x676a, 0x18b5,
+ 0x6772, 0x1eb1,
+ 0x6773, 0x18be,
+ 0x6821, 0x18ca,
+ 0x683b, 0x1eb3,
+ 0x683c, 0x18e5,
+ 0x684d, 0x1f3f,
+ 0x684e, 0x18f7,
+ 0x6921, 0x1928,
+ 0x697e, 0x1f40,
+ 0x6a21, 0x1986,
+ 0x6a3c, 0x1f41,
+ 0x6a3e, 0x19a3,
+ 0x6a6f, 0x1eb8,
+ 0x6a70, 0x19d5,
+ 0x6b21, 0x19e4,
+ 0x6b32, 0x1eb9,
+ 0x6b33, 0x19f6,
+ 0x6b66, 0x1eba,
+ 0x6b67, 0x1a2a,
+ 0x6c21, 0x1a42,
+ 0x6c69, 0x1ebc,
+ 0x6c6a, 0x1a8b,
+ 0x6d21, 0x1aa0,
+ 0x6d4e, 0x1ebe,
+ 0x6d4f, 0x1ace,
+ 0x6e21, 0x1afe,
+ 0x6e29, 0x1ec1,
+ 0x6e2a, 0x1b07,
+ 0x6e3d, 0x1ec2,
+ 0x6e3e, 0x1b1b,
+ 0x6f21, 0x1b5c,
+ 0x7021, 0x1bba,
+ 0x7051, 0x1ec7,
+ 0x7052, 0x1beb,
+ 0x7121, 0x1c18,
+ 0x7159, 0x1f43,
+ 0x715a, 0x1c51,
+ 0x7221, 0x1c76,
+ 0x722d, 0x1eca,
+ 0x722e, 0x1c83,
+ 0x723c, 0x1ecb,
+ 0x723d, 0x1c92,
+ 0x724e, 0x1ecc,
+ 0x724f, 0x1ca4,
+ 0x7321, 0x1cd4,
+ 0x7351, 0x1ecd,
+ 0x7352, 0x1f44,
+ 0x7353, 0x1d06,
+ 0x737d, 0x1ece,
+ 0x737e, 0x1d31,
+ 0x7421, 0x1d32,
+ 0x7425, 0x205c,
+ 0x7721, 0x1f45,
+ 0x7727, 0x1f48,
+ 0x7728, 0x0300,
+ 0x7729, 0x02fa,
+ 0x772a, 0x02f9,
+ 0x772e, 0x1f49,
+ 0x773c, 0x1db1,
+ 0x773f, 0x1f54,
+ 0x7740, 0x1db7,
+ 0x7741, 0x1f55,
+ 0x7744, 0x1db4,
+ 0x7747, 0x1f58,
+ 0x7751, 0x0303,
+ 0x7752, 0x1f62,
+ 0x7753, 0x0304,
+ 0x7754, 0x1f63,
+ 0x7757, 0x1f65,
+ 0x7759, 0x1da4,
+ 0x775a, 0x1da1,
+ 0x775b, 0x1f66,
+ 0x775c, 0x1da2,
+ 0x775d, 0x1f67,
+ 0x7760, 0x1da6,
+ 0x7761, 0x1f6a,
+ 0x7762, 0x1da8,
+ 0x7763, 0x1dac,
+ 0x7764, 0x1f6b,
+ 0x7765, 0x1dae,
+ 0x7766, 0x1dab,
+ 0x7767, 0x1f6c,
+ 0x7769, 0x1daf,
+ 0x776a, 0x1f6e,
+ 0x7774, 0x1f75,
+ 0x777a, 0x1dba,
+ 0x777b, 0x1f7b,
+ 0x777e, 0x1f7c,
+ 0x7829, 0x1f7d,
+ 0x7834, 0x1f87,
+ 0x7849, 0x1d83,
+ 0x785d, 0x1f9b,
+ 0x785e, 0x1d97,
+ 0x786b, 0x1f9c,
+ 0x7921, 0x1fb0,
+ 0x7945, 0x1f16,
+ 0x7949, 0x1fca,
+ 0x794b, 0x1dc4,
+ 0x794c, 0x1fcc,
+ 0x794f, 0x1dc3,
+ 0x7950, 0x1fcf,
+ 0x7955, 0x1dc2,
+ 0x7956, 0x1fd4,
+ 0x795d, 0x1fd8,
+ 0x796f, 0x1fe6,
+ 0x7d21, 0x1ecf,
+ 0x7d23, 0x204c,
+ 0x7d24, 0x2052,
+ 0x7d25, 0x1ed1,
+ 0x7d2f, 0x205a,
+ 0x7d30, 0x2053,
+ 0x7d31, 0x2058,
+ 0x7d32, 0x2055,
+ 0x7d33, 0x1edb,
+ 0x7d45, 0x1eee,
+ 0x7d5b, 0x2048,
+ 0x7d6d, 0x02e0,
+ 0x7d71, 0x1ff6,
+ 0x2122, 0x1ecf,
+ 0x2124, 0x204c,
+ 0x2125, 0x2052,
+ 0x2131, 0x1ed1,
+ 0x213c, 0x1ed3,
+ 0x2141, 0x1ed6,
+ 0x2146, 0x205a,
+ 0x2147, 0x2053,
+ 0x2148, 0x2058,
+ 0x2149, 0x2055,
+ 0x214a, 0x1edb,
+ 0x2421, 0x1eee,
+ 0x2423, 0x1eef,
+ 0x2425, 0x1ef0,
+ 0x2427, 0x1ef1,
+ 0x2429, 0x1ef2,
+ 0x2443, 0x1ef3,
+ 0x2463, 0x1ef4,
+ 0x2465, 0x1ef5,
+ 0x2467, 0x1ef6,
+ 0x246e, 0x1ef7,
+ 0x2475, 0x2048,
+ 0x2521, 0x1ef8,
+ 0x2523, 0x1ef9,
+ 0x2525, 0x1efa,
+ 0x2527, 0x1efb,
+ 0x2529, 0x1efc,
+ 0x2543, 0x1efd,
+ 0x2563, 0x1efe,
+ 0x2565, 0x1eff,
+ 0x2567, 0x1f00,
+ 0x256e, 0x1f01,
+ 0x2575, 0x1f02,
+ 0x7759, 0x1f07,
+ 0x775a, 0x1f04,
+ 0x775b, 0x2089,
+ 0x775c, 0x1f05,
+ 0x775d, 0x208a,
+ 0x775e, 0x2093,
+ 0x7760, 0x1f09,
+ 0x7761, 0x2092,
+ 0x7762, 0x1f0b,
+ 0x7763, 0x1f0f,
+ 0x7764, 0x209c,
+ 0x7765, 0x1f11,
+ 0x7766, 0x1f0e,
+ 0x7767, 0x2098,
+ 0x7768, 0x209b,
+ 0x7769, 0x1f12,
+ 0x776a, 0x2097,
+ 0x776b, 0x209d,
+ 0x776d, 0x20a6,
+ 0x776e, 0x20a5,
+ 0x776f, 0x20a1,
+ 0x7770, 0x20a4,
+ 0x7775, 0x2084,
+ 0x7d72, 0x208d,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12AddVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12AddVMap2, 690
+};
+
static Gushort japan12AdobeJapan10Map2[70] = {
0x0000, 0x0000,
0x0000, 0x0000,
@@ -5274,6 +10724,7 @@ static Gushort japan12AdobeJapan10Map2[70] = {
};
static GfxFontEncoding16 japan12AdobeJapan10Enc16 = {
+ 0,
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -5364,6 +10815,7 @@ static Gushort japan12AdobeJapan11Map2[70] = {
};
static GfxFontEncoding16 japan12AdobeJapan11Enc16 = {
+ 0,
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -5456,6 +10908,7 @@ static Gushort japan12AdobeJapan12Map2[74] = {
};
static GfxFontEncoding16 japan12AdobeJapan12Enc16 = {
+ 0,
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -5632,6 +11085,7 @@ static Gushort japan12EUCHMap2[242] = {
};
static GfxFontEncoding16 japan12EUCHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -5683,6 +11137,210 @@ static GfxFontEncoding16 japan12EUCHEnc16 = {
japan12EUCHMap2, 121
};
+static Gushort japan12EUCVMap2[296] = {
+ 0x0000, 0x0000,
+ 0x8ea0, 0x0146,
+ 0xa1a1, 0x0279,
+ 0xa2a1, 0x02d7,
+ 0xa2ba, 0x02e5,
+ 0xa2ca, 0x02ed,
+ 0xa2dc, 0x02f4,
+ 0xa2f2, 0x0303,
+ 0xa2fe, 0x030b,
+ 0xa3b0, 0x030c,
+ 0xa3c1, 0x0316,
+ 0xa3e1, 0x0330,
+ 0xa4a1, 0x034a,
+ 0xa5a1, 0x039d,
+ 0xa6a1, 0x03f3,
+ 0xa6c1, 0x040b,
+ 0xa7a1, 0x0423,
+ 0xa7d1, 0x0444,
+ 0xa8a1, 0x1d37,
+ 0xa8a2, 0x1d39,
+ 0xa8a3, 0x1d43,
+ 0xa8a4, 0x1d47,
+ 0xa8a5, 0x1d4f,
+ 0xa8a6, 0x1d4b,
+ 0xa8a7, 0x1d53,
+ 0xa8a8, 0x1d63,
+ 0xa8a9, 0x1d5b,
+ 0xa8aa, 0x1d6b,
+ 0xa8ab, 0x1d73,
+ 0xa8ac, 0x1d38,
+ 0xa8ad, 0x1d3a,
+ 0xa8ae, 0x1d46,
+ 0xa8af, 0x1d4a,
+ 0xa8b0, 0x1d52,
+ 0xa8b1, 0x1d4e,
+ 0xa8b2, 0x1d5a,
+ 0xa8b3, 0x1d6a,
+ 0xa8b4, 0x1d62,
+ 0xa8b5, 0x1d72,
+ 0xa8b6, 0x1d82,
+ 0xa8b7, 0x1d57,
+ 0xa8b8, 0x1d66,
+ 0xa8b9, 0x1d5f,
+ 0xa8ba, 0x1d6e,
+ 0xa8bb, 0x1d76,
+ 0xa8bc, 0x1d54,
+ 0xa8bd, 0x1d67,
+ 0xa8be, 0x1d5c,
+ 0xa8bf, 0x1d6f,
+ 0xa8c0, 0x1d79,
+ 0xb0a1, 0x0465,
+ 0xb1a1, 0x04c3,
+ 0xb2a1, 0x0521,
+ 0xb3a1, 0x057f,
+ 0xb4a1, 0x05dd,
+ 0xb5a1, 0x063b,
+ 0xb6a1, 0x0699,
+ 0xb7a1, 0x06f7,
+ 0xb8a1, 0x0755,
+ 0xb9a1, 0x07b3,
+ 0xbaa1, 0x0811,
+ 0xbba1, 0x086f,
+ 0xbca1, 0x08cd,
+ 0xbda1, 0x092b,
+ 0xbea1, 0x0989,
+ 0xbfa1, 0x09e7,
+ 0xc0a1, 0x0a45,
+ 0xc1a1, 0x0aa3,
+ 0xc2a1, 0x0b01,
+ 0xc3a1, 0x0b5f,
+ 0xc4a1, 0x0bbd,
+ 0xc5a1, 0x0c1b,
+ 0xc6a1, 0x0c79,
+ 0xc7a1, 0x0cd7,
+ 0xc8a1, 0x0d35,
+ 0xc9a1, 0x0d93,
+ 0xcaa1, 0x0df1,
+ 0xcba1, 0x0e4f,
+ 0xcca1, 0x0ead,
+ 0xcda1, 0x0f0b,
+ 0xcea1, 0x0f69,
+ 0xcfa1, 0x0fc7,
+ 0xd0a1, 0x0ffa,
+ 0xd1a1, 0x1058,
+ 0xd2a1, 0x10b6,
+ 0xd3a1, 0x1114,
+ 0xd4a1, 0x1172,
+ 0xd5a1, 0x11d0,
+ 0xd6a1, 0x122e,
+ 0xd7a1, 0x128c,
+ 0xd8a1, 0x12ea,
+ 0xd9a1, 0x1348,
+ 0xdaa1, 0x13a6,
+ 0xdba1, 0x1404,
+ 0xdca1, 0x1462,
+ 0xdda1, 0x14c0,
+ 0xdea1, 0x151e,
+ 0xdfa1, 0x157c,
+ 0xe0a1, 0x15da,
+ 0xe1a1, 0x1638,
+ 0xe2a1, 0x1696,
+ 0xe3a1, 0x16f4,
+ 0xe4a1, 0x1752,
+ 0xe5a1, 0x17b0,
+ 0xe6a1, 0x180e,
+ 0xe7a1, 0x186c,
+ 0xe8a1, 0x18ca,
+ 0xe9a1, 0x1928,
+ 0xeaa1, 0x1986,
+ 0xeba1, 0x19e4,
+ 0xeca1, 0x1a42,
+ 0xeda1, 0x1aa0,
+ 0xeea1, 0x1afe,
+ 0xefa1, 0x1b5c,
+ 0xf0a1, 0x1bba,
+ 0xf1a1, 0x1c18,
+ 0xf2a1, 0x1c76,
+ 0xf3a1, 0x1cd4,
+ 0xf4a1, 0x1d32,
+ 0xf4a5, 0x205c,
+ 0xa1a2, 0x1ecf,
+ 0xa1b1, 0x1ed1,
+ 0xa1bc, 0x1ed3,
+ 0xa1c1, 0x1ed6,
+ 0xa1ca, 0x1edb,
+ 0xa1e1, 0x1eed,
+ 0xa4a1, 0x1eee,
+ 0xa4a3, 0x1eef,
+ 0xa4a5, 0x1ef0,
+ 0xa4a7, 0x1ef1,
+ 0xa4a9, 0x1ef2,
+ 0xa4c3, 0x1ef3,
+ 0xa4e3, 0x1ef4,
+ 0xa4e5, 0x1ef5,
+ 0xa4e7, 0x1ef6,
+ 0xa4ee, 0x1ef7,
+ 0xa5a1, 0x1ef8,
+ 0xa5a3, 0x1ef9,
+ 0xa5a5, 0x1efa,
+ 0xa5a7, 0x1efb,
+ 0xa5a9, 0x1efc,
+ 0xa5c3, 0x1efd,
+ 0xa5e3, 0x1efe,
+ 0xa5e5, 0x1eff,
+ 0xa5e7, 0x1f00,
+ 0xa5ee, 0x1f01,
+ 0xa5f5, 0x1f02,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12EUCVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12EUCVMap2, 148
+};
+
static Gushort japan12ExtHMap2[1326] = {
0x0000, 0x0000,
0x2121, 0x0279,
@@ -6350,6 +12008,7 @@ static Gushort japan12ExtHMap2[1326] = {
};
static GfxFontEncoding16 japan12ExtHEnc16 = {
+ 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, 1,
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -7070,6 +12729,7 @@ static Gushort japan12ExtRKSJHMap2[1330] = {
};
static GfxFontEncoding16 japan12ExtRKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -7121,6 +12781,1524 @@ static GfxFontEncoding16 japan12ExtRKSJHEnc16 = {
japan12ExtRKSJHMap2, 665
};
+static Gushort japan12ExtRKSJVMap2[1408] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x8189, 0x1d36,
+ 0x818a, 0x02c2,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x8540, 0x00e8,
+ 0x8580, 0x0186,
+ 0x8581, 0x0128,
+ 0x859f, 0x0147,
+ 0x85de, 0x0187,
+ 0x8640, 0x01a6,
+ 0x8680, 0x01e5,
+ 0x8692, 0x0127,
+ 0x8693, 0x01f7,
+ 0x86a2, 0x1d37,
+ 0x8740, 0x1d83,
+ 0x875f, 0x1da1,
+ 0x877e, 0x2083,
+ 0x8780, 0x1db8,
+ 0x8790, 0x02fa,
+ 0x8791, 0x02f9,
+ 0x8792, 0x0301,
+ 0x8793, 0x1dc8,
+ 0x879a, 0x0300,
+ 0x879b, 0x1dcf,
+ 0x889f, 0x0465,
+ 0x88a0, 0x1dd1,
+ 0x88a1, 0x0467,
+ 0x88b1, 0x1ca2,
+ 0x88b2, 0x0478,
+ 0x88b9, 0x1dd2,
+ 0x88ba, 0x0480,
+ 0x88ec, 0x1dd3,
+ 0x88ed, 0x04b3,
+ 0x88f1, 0x1dd4,
+ 0x88f2, 0x04b8,
+ 0x88fa, 0x1dd5,
+ 0x88fb, 0x04c1,
+ 0x8940, 0x04c3,
+ 0x8949, 0x1dd6,
+ 0x894a, 0x04cd,
+ 0x8954, 0x1dd7,
+ 0x8955, 0x04d8,
+ 0x8958, 0x1dd8,
+ 0x8959, 0x04dc,
+ 0x895b, 0x1dd9,
+ 0x895d, 0x04e0,
+ 0x8961, 0x1ddb,
+ 0x8962, 0x04e5,
+ 0x8980, 0x0502,
+ 0x898b, 0x1ddc,
+ 0x898c, 0x050e,
+ 0x89a6, 0x1ddd,
+ 0x89a7, 0x1cc9,
+ 0x89a8, 0x1dde,
+ 0x89a9, 0x052b,
+ 0x89de, 0x1ddf,
+ 0x89df, 0x0561,
+ 0x89f8, 0x1de0,
+ 0x89f9, 0x057b,
+ 0x89fb, 0x1de1,
+ 0x89fc, 0x057e,
+ 0x8a40, 0x057f,
+ 0x8a41, 0x1de2,
+ 0x8a42, 0x0581,
+ 0x8a61, 0x1961,
+ 0x8a62, 0x05a1,
+ 0x8a68, 0x139f,
+ 0x8a69, 0x05a8,
+ 0x8a80, 0x05be,
+ 0x8a85, 0x1de3,
+ 0x8a86, 0x05c4,
+ 0x8a8b, 0x1de4,
+ 0x8a8c, 0x05ca,
+ 0x8a93, 0x1de5,
+ 0x8a94, 0x05d2,
+ 0x8a96, 0x1731,
+ 0x8a97, 0x05d5,
+ 0x8a9a, 0x1de6,
+ 0x8a9b, 0x05d9,
+ 0x8ac0, 0x1de7,
+ 0x8ac1, 0x1572,
+ 0x8ac2, 0x0600,
+ 0x8acb, 0x1de8,
+ 0x8acc, 0x060a,
+ 0x8ad0, 0x1a20,
+ 0x8ad1, 0x060f,
+ 0x8ae3, 0x1de9,
+ 0x8ae4, 0x0622,
+ 0x8b40, 0x063b,
+ 0x8b4a, 0x1dea,
+ 0x8b4b, 0x0646,
+ 0x8b5f, 0x1deb,
+ 0x8b60, 0x065b,
+ 0x8b80, 0x067a,
+ 0x8ba0, 0x1dec,
+ 0x8ba1, 0x069b,
+ 0x8ba8, 0x1ded,
+ 0x8ba9, 0x06a3,
+ 0x8bc4, 0x1d32,
+ 0x8bc5, 0x06bf,
+ 0x8bcd, 0x1dee,
+ 0x8bce, 0x06c8,
+ 0x8beb, 0x1def,
+ 0x8bec, 0x06e6,
+ 0x8bf2, 0x1df0,
+ 0x8bf3, 0x06ed,
+ 0x8bf9, 0x1df1,
+ 0x8bfa, 0x06f4,
+ 0x8bfb, 0x1df2,
+ 0x8bfc, 0x06f6,
+ 0x8c40, 0x06f7,
+ 0x8c43, 0x1df3,
+ 0x8c44, 0x06fb,
+ 0x8c56, 0x1df4,
+ 0x8c57, 0x070e,
+ 0x8c64, 0x1df5,
+ 0x8c65, 0x071c,
+ 0x8c6d, 0x1df6,
+ 0x8c6e, 0x0725,
+ 0x8c71, 0x1df7,
+ 0x8c72, 0x0729,
+ 0x8c74, 0x1df8,
+ 0x8c75, 0x072c,
+ 0x8c7a, 0x1c0d,
+ 0x8c7b, 0x0732,
+ 0x8c80, 0x0736,
+ 0x8c84, 0x1df9,
+ 0x8c85, 0x073b,
+ 0x8c91, 0x1dfa,
+ 0x8c92, 0x0748,
+ 0x8c99, 0x1dfb,
+ 0x8c9a, 0x0750,
+ 0x8c9e, 0x1dfc,
+ 0x8c9f, 0x0755,
+ 0x8cb2, 0x1dfd,
+ 0x8cb3, 0x0769,
+ 0x8cbf, 0x1dfe,
+ 0x8cc0, 0x0776,
+ 0x8d40, 0x07b3,
+ 0x8d4a, 0x1dff,
+ 0x8d4b, 0x07be,
+ 0x8d56, 0x1e00,
+ 0x8d57, 0x07ca,
+ 0x8d61, 0x1e01,
+ 0x8d62, 0x07d5,
+ 0x8d7b, 0x16dd,
+ 0x8d7c, 0x07ef,
+ 0x8d80, 0x07f2,
+ 0x8d8d, 0x1e02,
+ 0x8d8e, 0x0800,
+ 0x8d94, 0x1e03,
+ 0x8d95, 0x0807,
+ 0x8d99, 0x1e04,
+ 0x8d9a, 0x080c,
+ 0x8dd1, 0x1e05,
+ 0x8dd2, 0x0844,
+ 0x8de5, 0x1e06,
+ 0x8de6, 0x0858,
+ 0x8df2, 0x1e07,
+ 0x8df3, 0x0865,
+ 0x8e40, 0x086f,
+ 0x8e46, 0x1e08,
+ 0x8e47, 0x0876,
+ 0x8e49, 0x1e09,
+ 0x8e4a, 0x0879,
+ 0x8e4b, 0x1e0a,
+ 0x8e4c, 0x087b,
+ 0x8e58, 0x1e0b,
+ 0x8e59, 0x0888,
+ 0x8e80, 0x08ae,
+ 0x8eb6, 0x1e0c,
+ 0x8eb7, 0x08e5,
+ 0x8ec6, 0x1e0d,
+ 0x8ec7, 0x1929,
+ 0x8ec8, 0x08f6,
+ 0x8ed5, 0x1e0e,
+ 0x8ed6, 0x0904,
+ 0x8edb, 0x1e0f,
+ 0x8edd, 0x090b,
+ 0x8f40, 0x092b,
+ 0x8f4a, 0x1e11,
+ 0x8f4b, 0x0936,
+ 0x8f55, 0x1e12,
+ 0x8f56, 0x0941,
+ 0x8f80, 0x096a,
+ 0x8f8c, 0x1e13,
+ 0x8f8e, 0x0978,
+ 0x8f92, 0x1e15,
+ 0x8f94, 0x097e,
+ 0x8fa3, 0x1e17,
+ 0x8fa4, 0x098e,
+ 0x8fb1, 0x1e18,
+ 0x8fb2, 0x099c,
+ 0x8fbd, 0x1e19,
+ 0x8fbe, 0x09a8,
+ 0x8fd3, 0x1e1a,
+ 0x8fd4, 0x09be,
+ 0x8fdd, 0x1e1b,
+ 0x8fde, 0x09c8,
+ 0x8fe2, 0x1e1c,
+ 0x8fe3, 0x09cd,
+ 0x9040, 0x09e7,
+ 0x9049, 0x1e1d,
+ 0x904a, 0x09f1,
+ 0x9078, 0x1e1e,
+ 0x9079, 0x0a20,
+ 0x9080, 0x1e1f,
+ 0x9081, 0x0a27,
+ 0x9089, 0x1e20,
+ 0x908a, 0x0a30,
+ 0x90a0, 0x1e21,
+ 0x90a1, 0x0a47,
+ 0x90c0, 0x1e22,
+ 0x90c1, 0x0a67,
+ 0x90e4, 0x1e23,
+ 0x90e5, 0x0a8b,
+ 0x90ef, 0x1e24,
+ 0x90f1, 0x0a97,
+ 0x90f7, 0x1e26,
+ 0x90f9, 0x0a9f,
+ 0x9140, 0x0aa3,
+ 0x9146, 0x1e28,
+ 0x9147, 0x1a6e,
+ 0x9148, 0x0aab,
+ 0x9158, 0x1e29,
+ 0x9159, 0x0abc,
+ 0x916b, 0x1e2a,
+ 0x916c, 0x0acf,
+ 0x916e, 0x1e2b,
+ 0x916f, 0x0ad2,
+ 0x917e, 0x1e2c,
+ 0x9180, 0x0ae2,
+ 0x9189, 0x1e2d,
+ 0x918a, 0x0aec,
+ 0x91bb, 0x1e2e,
+ 0x91bc, 0x0b1e,
+ 0x91cb, 0x1e2f,
+ 0x91cc, 0x0b2e,
+ 0x91da, 0x1e30,
+ 0x91db, 0x0b3d,
+ 0x91e1, 0x1e31,
+ 0x91e2, 0x0b44,
+ 0x91ed, 0x1e32,
+ 0x91ee, 0x0b50,
+ 0x91f3, 0x1e33,
+ 0x91f5, 0x0b57,
+ 0x91fb, 0x1e35,
+ 0x91fc, 0x0b5e,
+ 0x9240, 0x0b5f,
+ 0x9246, 0x1e36,
+ 0x9247, 0x0b66,
+ 0x9248, 0x1e37,
+ 0x924a, 0x0b69,
+ 0x924c, 0x1e39,
+ 0x924e, 0x0b6d,
+ 0x925c, 0x1e3b,
+ 0x925d, 0x0b7c,
+ 0x9280, 0x0b9e,
+ 0x9290, 0x1e3c,
+ 0x9291, 0x0baf,
+ 0x9295, 0x1e3d,
+ 0x9296, 0x0bb4,
+ 0x929c, 0x1e3e,
+ 0x929d, 0x0bbb,
+ 0x92bb, 0x1e3f,
+ 0x92bc, 0x0bda,
+ 0x92c6, 0x1e40,
+ 0x92c7, 0x0be5,
+ 0x92c8, 0x1e41,
+ 0x92c9, 0x0be7,
+ 0x92cb, 0x1e42,
+ 0x92cc, 0x0bea,
+ 0x92cd, 0x1e43,
+ 0x92ce, 0x0bec,
+ 0x92d9, 0x11b5,
+ 0x92da, 0x0bf8,
+ 0x9340, 0x0c1b,
+ 0x9341, 0x1e44,
+ 0x9342, 0x0c1d,
+ 0x9346, 0x1e45,
+ 0x9347, 0x0c22,
+ 0x934d, 0x1e46,
+ 0x934e, 0x0c29,
+ 0x9355, 0x1e47,
+ 0x9356, 0x0c31,
+ 0x935e, 0x1e48,
+ 0x935f, 0x0c3a,
+ 0x9367, 0x1e49,
+ 0x9368, 0x0c43,
+ 0x936a, 0x1e4a,
+ 0x936b, 0x0c46,
+ 0x9370, 0x1e4b,
+ 0x9372, 0x0c4d,
+ 0x9376, 0x16df,
+ 0x9377, 0x0c52,
+ 0x9380, 0x0c5a,
+ 0x9384, 0x1e4d,
+ 0x9385, 0x0c5f,
+ 0x938e, 0x1450,
+ 0x938f, 0x0c69,
+ 0x9393, 0x1536,
+ 0x9394, 0x0c6e,
+ 0x9398, 0x1e4e,
+ 0x9399, 0x0c73,
+ 0x93bc, 0x1e4f,
+ 0x93bd, 0x0c97,
+ 0x93c0, 0x1e50,
+ 0x93c1, 0x0c9b,
+ 0x93d2, 0x1e51,
+ 0x93d4, 0x0cae,
+ 0x93d9, 0x1e53,
+ 0x93db, 0x0cb5,
+ 0x93df, 0x1e55,
+ 0x93e0, 0x0cba,
+ 0x93e4, 0x1e56,
+ 0x93e6, 0x0cc0,
+ 0x93e8, 0x1e58,
+ 0x93e9, 0x0cc3,
+ 0x93f4, 0x1aed,
+ 0x93f5, 0x0ccf,
+ 0x9440, 0x0cd7,
+ 0x9448, 0x1e59,
+ 0x9449, 0x0ce0,
+ 0x9458, 0x1e5a,
+ 0x9459, 0x0cf0,
+ 0x9476, 0x1e5b,
+ 0x9477, 0x0d0e,
+ 0x9480, 0x0d16,
+ 0x9487, 0x1e5c,
+ 0x9488, 0x1989,
+ 0x9489, 0x1e5d,
+ 0x948a, 0x0d20,
+ 0x948d, 0x1e5e,
+ 0x948e, 0x0d24,
+ 0x94a2, 0x1e5f,
+ 0x94a3, 0x0d39,
+ 0x94ac, 0x1e60,
+ 0x94ad, 0x0d43,
+ 0x94ae, 0x1e61,
+ 0x94af, 0x0d45,
+ 0x94d2, 0x1e62,
+ 0x94d3, 0x0d69,
+ 0x94e0, 0x1e63,
+ 0x94e1, 0x0d77,
+ 0x94f3, 0x1e64,
+ 0x94f4, 0x0d8a,
+ 0x9540, 0x0d93,
+ 0x9541, 0x1e65,
+ 0x9543, 0x0d96,
+ 0x954e, 0x1e67,
+ 0x954f, 0x143b,
+ 0x9550, 0x0da3,
+ 0x9551, 0x1e68,
+ 0x9552, 0x0da5,
+ 0x9554, 0x1e69,
+ 0x9555, 0x0da8,
+ 0x955f, 0x1e6a,
+ 0x9560, 0x0db3,
+ 0x956d, 0x1e6b,
+ 0x956e, 0x0dc1,
+ 0x9570, 0x1e6c,
+ 0x9571, 0x0dc4,
+ 0x9580, 0x0dd2,
+ 0x95c1, 0x1e6d,
+ 0x95c2, 0x0e14,
+ 0x95cb, 0x1e6e,
+ 0x95cc, 0x0e1e,
+ 0x95d8, 0x1e6f,
+ 0x95d9, 0x0e2b,
+ 0x95f7, 0x1e70,
+ 0x95f8, 0x0e4a,
+ 0x9640, 0x0e4f,
+ 0x9641, 0x1e71,
+ 0x9642, 0x0e51,
+ 0x9648, 0x1e72,
+ 0x9649, 0x0e58,
+ 0x966a, 0x1e73,
+ 0x966b, 0x0e7a,
+ 0x9680, 0x0e8e,
+ 0x968a, 0x1d33,
+ 0x968b, 0x0e99,
+ 0x9690, 0x1e74,
+ 0x9691, 0x0e9f,
+ 0x9699, 0x102f,
+ 0x969a, 0x0ea8,
+ 0x96cb, 0x1e75,
+ 0x96cc, 0x0eda,
+ 0x96d7, 0x1e76,
+ 0x96d8, 0x0ee6,
+ 0x96dd, 0x1e77,
+ 0x96de, 0x0eec,
+ 0x96e0, 0x1e78,
+ 0x96e1, 0x0eef,
+ 0x96f7, 0x1935,
+ 0x96f8, 0x1e79,
+ 0x96f9, 0x0f07,
+ 0x96fa, 0x1e7a,
+ 0x96fb, 0x0f09,
+ 0x96fc, 0x1e7b,
+ 0x9740, 0x0f0b,
+ 0x9751, 0x1e7c,
+ 0x9752, 0x0f1d,
+ 0x976f, 0x1e7d,
+ 0x9770, 0x0f3b,
+ 0x9773, 0x1e7e,
+ 0x9774, 0x0f3f,
+ 0x9779, 0x1d34,
+ 0x977a, 0x0f45,
+ 0x9780, 0x0f4a,
+ 0x9789, 0x1e7f,
+ 0x978a, 0x0f54,
+ 0x97c9, 0x1e80,
+ 0x97ca, 0x0f94,
+ 0x97f8, 0x1e81,
+ 0x97fa, 0x0fc4,
+ 0x9840, 0x1e83,
+ 0x9841, 0x0fc8,
+ 0x9850, 0x1e84,
+ 0x9851, 0x0fd8,
+ 0x9855, 0x1777,
+ 0x9856, 0x0fdd,
+ 0x9858, 0x1e85,
+ 0x9859, 0x0fe0,
+ 0x989f, 0x0ffa,
+ 0x98d4, 0x0ea7,
+ 0x98d5, 0x1030,
+ 0x9940, 0x1058,
+ 0x995c, 0x1e86,
+ 0x995d, 0x1075,
+ 0x9966, 0x1e87,
+ 0x9967, 0x107f,
+ 0x996a, 0x1e88,
+ 0x996b, 0x1083,
+ 0x996c, 0x1e89,
+ 0x996d, 0x1085,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a4f, 0x1e8a,
+ 0x9a50, 0x1124,
+ 0x9a59, 0x1e8b,
+ 0x9a5a, 0x112e,
+ 0x9a6f, 0x1e8c,
+ 0x9a70, 0x1144,
+ 0x9a7d, 0x1e8d,
+ 0x9a7e, 0x1152,
+ 0x9a80, 0x1153,
+ 0x9a8b, 0x1e8e,
+ 0x9a8c, 0x115f,
+ 0x9ac2, 0x1e8f,
+ 0x9ac3, 0x1196,
+ 0x9ae2, 0x0bf7,
+ 0x9ae3, 0x11b6,
+ 0x9b40, 0x11d0,
+ 0x9b5c, 0x1e90,
+ 0x9b5d, 0x11ed,
+ 0x9b80, 0x120f,
+ 0x9b83, 0x1e91,
+ 0x9b84, 0x1213,
+ 0x9ba0, 0x1e92,
+ 0x9ba1, 0x1230,
+ 0x9bf0, 0x1e93,
+ 0x9bf1, 0x1280,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9ca2, 0x1e94,
+ 0x9ca3, 0x12ee,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1e95,
+ 0x9d81, 0x1388,
+ 0x9d8c, 0x1e96,
+ 0x9d8d, 0x1394,
+ 0x9d98, 0x05a7,
+ 0x9d99, 0x13a0,
+ 0x9db7, 0x1e97,
+ 0x9db8, 0x13bf,
+ 0x9dcb, 0x1e98,
+ 0x9dcc, 0x13d3,
+ 0x9e40, 0x1404,
+ 0x9e64, 0x1e99,
+ 0x9e65, 0x1429,
+ 0x9e69, 0x1e9a,
+ 0x9e6a, 0x142e,
+ 0x9e77, 0x0da2,
+ 0x9e78, 0x143c,
+ 0x9e80, 0x1443,
+ 0x9e8b, 0x1e9b,
+ 0x9e8c, 0x144f,
+ 0x9e8d, 0x0c68,
+ 0x9e8e, 0x1451,
+ 0x9e94, 0x1e9c,
+ 0x9e95, 0x1458,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0x9fb7, 0x0c6d,
+ 0x9fb8, 0x1537,
+ 0x9fce, 0x1e9d,
+ 0x9fcf, 0x154e,
+ 0x9ff3, 0x05ff,
+ 0x9ff4, 0x1573,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe093, 0x1e9e,
+ 0xe094, 0x15cf,
+ 0xe0a4, 0x1e9f,
+ 0xe0a5, 0x15e0,
+ 0xe0dd, 0x1ea0,
+ 0xe0de, 0x1619,
+ 0xe0f4, 0x1d35,
+ 0xe0f5, 0x1630,
+ 0xe140, 0x1638,
+ 0xe14a, 0x1ea1,
+ 0xe14b, 0x1643,
+ 0xe14f, 0x1ea2,
+ 0xe151, 0x1649,
+ 0xe180, 0x1677,
+ 0xe1a9, 0x1ea4,
+ 0xe1aa, 0x16a1,
+ 0xe1e6, 0x07ee,
+ 0xe1e7, 0x16de,
+ 0xe1e8, 0x0c51,
+ 0xe1e9, 0x16e0,
+ 0xe1ed, 0x1ea5,
+ 0xe1ee, 0x16e5,
+ 0xe240, 0x16f4,
+ 0xe269, 0x1ea6,
+ 0xe26a, 0x171e,
+ 0xe273, 0x1ea7,
+ 0xe274, 0x1728,
+ 0xe27d, 0x05d4,
+ 0xe27e, 0x1732,
+ 0xe280, 0x1733,
+ 0xe2b7, 0x1ea8,
+ 0xe2b8, 0x176b,
+ 0xe2c4, 0x0fdc,
+ 0xe2c5, 0x1778,
+ 0xe2e2, 0x1ea9,
+ 0xe2e3, 0x1796,
+ 0xe2ec, 0x1eaa,
+ 0xe2ed, 0x17a0,
+ 0xe340, 0x17b0,
+ 0xe358, 0x1eab,
+ 0xe359, 0x17c9,
+ 0xe35a, 0x1eac,
+ 0xe35b, 0x17cb,
+ 0xe365, 0x1ead,
+ 0xe366, 0x17d6,
+ 0xe380, 0x17ef,
+ 0xe3c4, 0x1eae,
+ 0xe3c5, 0x1834,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe484, 0x1eaf,
+ 0xe485, 0x18b0,
+ 0xe489, 0x1eb0,
+ 0xe48a, 0x18b5,
+ 0xe492, 0x1eb1,
+ 0xe493, 0x18be,
+ 0xe4b2, 0x1eb2,
+ 0xe4b3, 0x18de,
+ 0xe4b9, 0x1eb3,
+ 0xe4ba, 0x18e5,
+ 0xe4f2, 0x1eb4,
+ 0xe4f3, 0x191e,
+ 0xe540, 0x1928,
+ 0xe541, 0x08f5,
+ 0xe542, 0x192a,
+ 0xe54d, 0x0f05,
+ 0xe54e, 0x1936,
+ 0xe55b, 0x1eb5,
+ 0xe55c, 0x1944,
+ 0xe579, 0x05a0,
+ 0xe57a, 0x1962,
+ 0xe580, 0x1967,
+ 0xe5a2, 0x0d1e,
+ 0xe5a3, 0x198a,
+ 0xe5a5, 0x1eb6,
+ 0xe5a6, 0x198d,
+ 0xe5bb, 0x1eb7,
+ 0xe5bc, 0x19a3,
+ 0xe5ed, 0x1eb8,
+ 0xe5ee, 0x19d5,
+ 0xe640, 0x19e4,
+ 0xe651, 0x1eb9,
+ 0xe652, 0x19f6,
+ 0xe67c, 0x060e,
+ 0xe67d, 0x1a21,
+ 0xe680, 0x1a23,
+ 0xe686, 0x1eba,
+ 0xe687, 0x1a2a,
+ 0xe696, 0x1ebb,
+ 0xe697, 0x1a3a,
+ 0xe6cb, 0x0aaa,
+ 0xe6cc, 0x1a6f,
+ 0xe6e7, 0x1ebc,
+ 0xe6e8, 0x1a8b,
+ 0xe6f2, 0x1ebd,
+ 0xe6f3, 0x1a96,
+ 0xe740, 0x1aa0,
+ 0xe76d, 0x1ebe,
+ 0xe76e, 0x1ace,
+ 0xe780, 0x1adf,
+ 0xe78c, 0x1ebf,
+ 0xe78d, 0x1aec,
+ 0xe78e, 0x1ec0,
+ 0xe78f, 0x1aee,
+ 0xe7a7, 0x1ec1,
+ 0xe7a8, 0x1b07,
+ 0xe7bb, 0x1ec2,
+ 0xe7bc, 0x1b1b,
+ 0xe7d5, 0x1ec3,
+ 0xe7d6, 0x1b35,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe885, 0x1ec4,
+ 0xe886, 0x1ba1,
+ 0xe8b1, 0x1ec5,
+ 0xe8b2, 0x1bcd,
+ 0xe8c3, 0x1ec6,
+ 0xe8c4, 0x1bdf,
+ 0xe8cf, 0x1ec7,
+ 0xe8d0, 0x1beb,
+ 0xe8d5, 0x1ec8,
+ 0xe8d6, 0x1bf1,
+ 0xe8f2, 0x0731,
+ 0xe8f3, 0x1ec9,
+ 0xe8f4, 0x1c0f,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xe9ab, 0x1eca,
+ 0xe9ac, 0x1c83,
+ 0xe9ba, 0x1ecb,
+ 0xe9bb, 0x1c92,
+ 0xe9cb, 0x0477,
+ 0xe9cc, 0x1ecc,
+ 0xe9cd, 0x1ca4,
+ 0xe9f2, 0x0529,
+ 0xe9f3, 0x1cca,
+ 0xea40, 0x1cd4,
+ 0xea70, 0x1ecd,
+ 0xea71, 0x1d05,
+ 0xea80, 0x1d13,
+ 0xea9d, 0x1ece,
+ 0xea9e, 0x1d31,
+ 0xed40, 0x20a7,
+ 0xed80, 0x20e6,
+ 0xedb4, 0x07c9,
+ 0xedb5, 0x211a,
+ 0xee40, 0x2162,
+ 0xee80, 0x21a1,
+ 0xeeef, 0x1f9c,
+ 0xeef9, 0x02ef,
+ 0xeefa, 0x1f45,
+ 0x8141, 0x1ecf,
+ 0x8143, 0x204c,
+ 0x8144, 0x2052,
+ 0x814a, 0x2050,
+ 0x814b, 0x204f,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8165, 0x2059,
+ 0x8166, 0x2054,
+ 0x8167, 0x2057,
+ 0x8168, 0x2056,
+ 0x8169, 0x1edb,
+ 0x818b, 0x204d,
+ 0x818c, 0x2051,
+ 0x818d, 0x205b,
+ 0x81ac, 0x204e,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0x875f, 0x1f04,
+ 0x8780, 0x1f14,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12ExtRKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12ExtRKSJVMap2, 704
+};
+
+static Gushort japan12ExtVMap2[1404] = {
+ 0x0000, 0x0000,
+ 0x2121, 0x0279,
+ 0x2169, 0x1d36,
+ 0x216a, 0x02c2,
+ 0x2221, 0x02d7,
+ 0x2330, 0x030c,
+ 0x2341, 0x0316,
+ 0x2361, 0x0330,
+ 0x2421, 0x034a,
+ 0x2521, 0x039d,
+ 0x2621, 0x03f3,
+ 0x2641, 0x040b,
+ 0x2721, 0x0423,
+ 0x2751, 0x0444,
+ 0x2921, 0x00e8,
+ 0x2960, 0x0186,
+ 0x2961, 0x0128,
+ 0x2a21, 0x0147,
+ 0x2a60, 0x0187,
+ 0x2b21, 0x01a6,
+ 0x2b72, 0x0127,
+ 0x2b73, 0x01f7,
+ 0x2c24, 0x1d37,
+ 0x2d21, 0x1d83,
+ 0x2d40, 0x1da1,
+ 0x2d5f, 0x2083,
+ 0x2d60, 0x1db8,
+ 0x2d70, 0x02fa,
+ 0x2d71, 0x02f9,
+ 0x2d72, 0x0301,
+ 0x2d73, 0x1dc8,
+ 0x2d7a, 0x0300,
+ 0x2d7b, 0x1dcf,
+ 0x3021, 0x0465,
+ 0x3022, 0x1dd1,
+ 0x3023, 0x0467,
+ 0x3033, 0x1ca2,
+ 0x3034, 0x0478,
+ 0x303b, 0x1dd2,
+ 0x303c, 0x0480,
+ 0x306e, 0x1dd3,
+ 0x306f, 0x04b3,
+ 0x3073, 0x1dd4,
+ 0x3074, 0x04b8,
+ 0x307c, 0x1dd5,
+ 0x307d, 0x04c1,
+ 0x3121, 0x04c3,
+ 0x312a, 0x1dd6,
+ 0x312b, 0x04cd,
+ 0x3135, 0x1dd7,
+ 0x3136, 0x04d8,
+ 0x3139, 0x1dd8,
+ 0x313a, 0x04dc,
+ 0x313c, 0x1dd9,
+ 0x313e, 0x04e0,
+ 0x3142, 0x1ddb,
+ 0x3143, 0x04e5,
+ 0x316b, 0x1ddc,
+ 0x316c, 0x050e,
+ 0x3221, 0x0521,
+ 0x3228, 0x1ddd,
+ 0x3229, 0x1cc9,
+ 0x322a, 0x1dde,
+ 0x322b, 0x052b,
+ 0x3260, 0x1ddf,
+ 0x3261, 0x0561,
+ 0x327a, 0x1de0,
+ 0x327b, 0x057b,
+ 0x327d, 0x1de1,
+ 0x327e, 0x057e,
+ 0x3321, 0x057f,
+ 0x3322, 0x1de2,
+ 0x3323, 0x0581,
+ 0x3342, 0x1961,
+ 0x3343, 0x05a1,
+ 0x3349, 0x139f,
+ 0x334a, 0x05a8,
+ 0x3365, 0x1de3,
+ 0x3366, 0x05c4,
+ 0x336b, 0x1de4,
+ 0x336c, 0x05ca,
+ 0x3373, 0x1de5,
+ 0x3374, 0x05d2,
+ 0x3376, 0x1731,
+ 0x3377, 0x05d5,
+ 0x337a, 0x1de6,
+ 0x337b, 0x05d9,
+ 0x3421, 0x05dd,
+ 0x3442, 0x1de7,
+ 0x3443, 0x1572,
+ 0x3444, 0x0600,
+ 0x344d, 0x1de8,
+ 0x344e, 0x060a,
+ 0x3452, 0x1a20,
+ 0x3453, 0x060f,
+ 0x3465, 0x1de9,
+ 0x3466, 0x0622,
+ 0x3521, 0x063b,
+ 0x352b, 0x1dea,
+ 0x352c, 0x0646,
+ 0x3540, 0x1deb,
+ 0x3541, 0x065b,
+ 0x3621, 0x0699,
+ 0x3622, 0x1dec,
+ 0x3623, 0x069b,
+ 0x362a, 0x1ded,
+ 0x362b, 0x06a3,
+ 0x3646, 0x1d32,
+ 0x3647, 0x06bf,
+ 0x364f, 0x1dee,
+ 0x3650, 0x06c8,
+ 0x366d, 0x1def,
+ 0x366e, 0x06e6,
+ 0x3674, 0x1df0,
+ 0x3675, 0x06ed,
+ 0x367b, 0x1df1,
+ 0x367c, 0x06f4,
+ 0x367d, 0x1df2,
+ 0x367e, 0x06f6,
+ 0x3721, 0x06f7,
+ 0x3724, 0x1df3,
+ 0x3725, 0x06fb,
+ 0x3737, 0x1df4,
+ 0x3738, 0x070e,
+ 0x3745, 0x1df5,
+ 0x3746, 0x071c,
+ 0x374e, 0x1df6,
+ 0x374f, 0x0725,
+ 0x3752, 0x1df7,
+ 0x3753, 0x0729,
+ 0x3755, 0x1df8,
+ 0x3756, 0x072c,
+ 0x375b, 0x1c0d,
+ 0x375c, 0x0732,
+ 0x3764, 0x1df9,
+ 0x3765, 0x073b,
+ 0x3771, 0x1dfa,
+ 0x3772, 0x0748,
+ 0x3779, 0x1dfb,
+ 0x377a, 0x0750,
+ 0x377e, 0x1dfc,
+ 0x3821, 0x0755,
+ 0x3834, 0x1dfd,
+ 0x3835, 0x0769,
+ 0x3841, 0x1dfe,
+ 0x3842, 0x0776,
+ 0x3921, 0x07b3,
+ 0x392b, 0x1dff,
+ 0x392c, 0x07be,
+ 0x3937, 0x1e00,
+ 0x3938, 0x07ca,
+ 0x3942, 0x1e01,
+ 0x3943, 0x07d5,
+ 0x395c, 0x16dd,
+ 0x395d, 0x07ef,
+ 0x396d, 0x1e02,
+ 0x396e, 0x0800,
+ 0x3974, 0x1e03,
+ 0x3975, 0x0807,
+ 0x3979, 0x1e04,
+ 0x397a, 0x080c,
+ 0x3a21, 0x0811,
+ 0x3a53, 0x1e05,
+ 0x3a54, 0x0844,
+ 0x3a67, 0x1e06,
+ 0x3a68, 0x0858,
+ 0x3a74, 0x1e07,
+ 0x3a75, 0x0865,
+ 0x3b21, 0x086f,
+ 0x3b27, 0x1e08,
+ 0x3b28, 0x0876,
+ 0x3b2a, 0x1e09,
+ 0x3b2b, 0x0879,
+ 0x3b2c, 0x1e0a,
+ 0x3b2d, 0x087b,
+ 0x3b39, 0x1e0b,
+ 0x3b3a, 0x0888,
+ 0x3c21, 0x08cd,
+ 0x3c38, 0x1e0c,
+ 0x3c39, 0x08e5,
+ 0x3c48, 0x1e0d,
+ 0x3c49, 0x1929,
+ 0x3c4a, 0x08f6,
+ 0x3c57, 0x1e0e,
+ 0x3c58, 0x0904,
+ 0x3c5d, 0x1e0f,
+ 0x3c5f, 0x090b,
+ 0x3d21, 0x092b,
+ 0x3d2b, 0x1e11,
+ 0x3d2c, 0x0936,
+ 0x3d36, 0x1e12,
+ 0x3d37, 0x0941,
+ 0x3d6c, 0x1e13,
+ 0x3d6e, 0x0978,
+ 0x3d72, 0x1e15,
+ 0x3d74, 0x097e,
+ 0x3e21, 0x0989,
+ 0x3e25, 0x1e17,
+ 0x3e26, 0x098e,
+ 0x3e33, 0x1e18,
+ 0x3e34, 0x099c,
+ 0x3e3f, 0x1e19,
+ 0x3e40, 0x09a8,
+ 0x3e55, 0x1e1a,
+ 0x3e56, 0x09be,
+ 0x3e5f, 0x1e1b,
+ 0x3e60, 0x09c8,
+ 0x3e64, 0x1e1c,
+ 0x3e65, 0x09cd,
+ 0x3f21, 0x09e7,
+ 0x3f2a, 0x1e1d,
+ 0x3f2b, 0x09f1,
+ 0x3f59, 0x1e1e,
+ 0x3f5a, 0x0a20,
+ 0x3f60, 0x1e1f,
+ 0x3f61, 0x0a27,
+ 0x3f69, 0x1e20,
+ 0x3f6a, 0x0a30,
+ 0x4021, 0x0a45,
+ 0x4022, 0x1e21,
+ 0x4023, 0x0a47,
+ 0x4042, 0x1e22,
+ 0x4043, 0x0a67,
+ 0x4066, 0x1e23,
+ 0x4067, 0x0a8b,
+ 0x4071, 0x1e24,
+ 0x4073, 0x0a97,
+ 0x4079, 0x1e26,
+ 0x407b, 0x0a9f,
+ 0x4121, 0x0aa3,
+ 0x4127, 0x1e28,
+ 0x4128, 0x1a6e,
+ 0x4129, 0x0aab,
+ 0x4139, 0x1e29,
+ 0x413a, 0x0abc,
+ 0x414c, 0x1e2a,
+ 0x414d, 0x0acf,
+ 0x414f, 0x1e2b,
+ 0x4150, 0x0ad2,
+ 0x415f, 0x1e2c,
+ 0x4160, 0x0ae2,
+ 0x4169, 0x1e2d,
+ 0x416a, 0x0aec,
+ 0x4221, 0x0b01,
+ 0x423d, 0x1e2e,
+ 0x423e, 0x0b1e,
+ 0x424d, 0x1e2f,
+ 0x424e, 0x0b2e,
+ 0x425c, 0x1e30,
+ 0x425d, 0x0b3d,
+ 0x4263, 0x1e31,
+ 0x4264, 0x0b44,
+ 0x426f, 0x1e32,
+ 0x4270, 0x0b50,
+ 0x4275, 0x1e33,
+ 0x4277, 0x0b57,
+ 0x427d, 0x1e35,
+ 0x427e, 0x0b5e,
+ 0x4321, 0x0b5f,
+ 0x4327, 0x1e36,
+ 0x4328, 0x0b66,
+ 0x4329, 0x1e37,
+ 0x432b, 0x0b69,
+ 0x432d, 0x1e39,
+ 0x432f, 0x0b6d,
+ 0x433d, 0x1e3b,
+ 0x433e, 0x0b7c,
+ 0x4370, 0x1e3c,
+ 0x4371, 0x0baf,
+ 0x4375, 0x1e3d,
+ 0x4376, 0x0bb4,
+ 0x437c, 0x1e3e,
+ 0x437d, 0x0bbb,
+ 0x4421, 0x0bbd,
+ 0x443d, 0x1e3f,
+ 0x443e, 0x0bda,
+ 0x4448, 0x1e40,
+ 0x4449, 0x0be5,
+ 0x444a, 0x1e41,
+ 0x444b, 0x0be7,
+ 0x444d, 0x1e42,
+ 0x444e, 0x0bea,
+ 0x444f, 0x1e43,
+ 0x4450, 0x0bec,
+ 0x445b, 0x11b5,
+ 0x445c, 0x0bf8,
+ 0x4521, 0x0c1b,
+ 0x4522, 0x1e44,
+ 0x4523, 0x0c1d,
+ 0x4527, 0x1e45,
+ 0x4528, 0x0c22,
+ 0x452e, 0x1e46,
+ 0x452f, 0x0c29,
+ 0x4536, 0x1e47,
+ 0x4537, 0x0c31,
+ 0x453f, 0x1e48,
+ 0x4540, 0x0c3a,
+ 0x4548, 0x1e49,
+ 0x4549, 0x0c43,
+ 0x454b, 0x1e4a,
+ 0x454c, 0x0c46,
+ 0x4551, 0x1e4b,
+ 0x4553, 0x0c4d,
+ 0x4557, 0x16df,
+ 0x4558, 0x0c52,
+ 0x4564, 0x1e4d,
+ 0x4565, 0x0c5f,
+ 0x456e, 0x1450,
+ 0x456f, 0x0c69,
+ 0x4573, 0x1536,
+ 0x4574, 0x0c6e,
+ 0x4578, 0x1e4e,
+ 0x4579, 0x0c73,
+ 0x4621, 0x0c79,
+ 0x463e, 0x1e4f,
+ 0x463f, 0x0c97,
+ 0x4642, 0x1e50,
+ 0x4643, 0x0c9b,
+ 0x4654, 0x1e51,
+ 0x4656, 0x0cae,
+ 0x465b, 0x1e53,
+ 0x465d, 0x0cb5,
+ 0x4661, 0x1e55,
+ 0x4662, 0x0cba,
+ 0x4666, 0x1e56,
+ 0x4668, 0x0cc0,
+ 0x466a, 0x1e58,
+ 0x466b, 0x0cc3,
+ 0x4676, 0x1aed,
+ 0x4677, 0x0ccf,
+ 0x4721, 0x0cd7,
+ 0x4729, 0x1e59,
+ 0x472a, 0x0ce0,
+ 0x4739, 0x1e5a,
+ 0x473a, 0x0cf0,
+ 0x4757, 0x1e5b,
+ 0x4758, 0x0d0e,
+ 0x4767, 0x1e5c,
+ 0x4768, 0x1989,
+ 0x4769, 0x1e5d,
+ 0x476a, 0x0d20,
+ 0x476d, 0x1e5e,
+ 0x476e, 0x0d24,
+ 0x4821, 0x0d35,
+ 0x4824, 0x1e5f,
+ 0x4825, 0x0d39,
+ 0x482e, 0x1e60,
+ 0x482f, 0x0d43,
+ 0x4830, 0x1e61,
+ 0x4831, 0x0d45,
+ 0x4854, 0x1e62,
+ 0x4855, 0x0d69,
+ 0x4862, 0x1e63,
+ 0x4863, 0x0d77,
+ 0x4875, 0x1e64,
+ 0x4876, 0x0d8a,
+ 0x4921, 0x0d93,
+ 0x4922, 0x1e65,
+ 0x4924, 0x0d96,
+ 0x492f, 0x1e67,
+ 0x4930, 0x143b,
+ 0x4931, 0x0da3,
+ 0x4932, 0x1e68,
+ 0x4933, 0x0da5,
+ 0x4935, 0x1e69,
+ 0x4936, 0x0da8,
+ 0x4940, 0x1e6a,
+ 0x4941, 0x0db3,
+ 0x494e, 0x1e6b,
+ 0x494f, 0x0dc1,
+ 0x4951, 0x1e6c,
+ 0x4952, 0x0dc4,
+ 0x4a21, 0x0df1,
+ 0x4a43, 0x1e6d,
+ 0x4a44, 0x0e14,
+ 0x4a4d, 0x1e6e,
+ 0x4a4e, 0x0e1e,
+ 0x4a5a, 0x1e6f,
+ 0x4a5b, 0x0e2b,
+ 0x4a79, 0x1e70,
+ 0x4a7a, 0x0e4a,
+ 0x4b21, 0x0e4f,
+ 0x4b22, 0x1e71,
+ 0x4b23, 0x0e51,
+ 0x4b29, 0x1e72,
+ 0x4b2a, 0x0e58,
+ 0x4b4b, 0x1e73,
+ 0x4b4c, 0x0e7a,
+ 0x4b6a, 0x1d33,
+ 0x4b6b, 0x0e99,
+ 0x4b70, 0x1e74,
+ 0x4b71, 0x0e9f,
+ 0x4b79, 0x102f,
+ 0x4b7a, 0x0ea8,
+ 0x4c21, 0x0ead,
+ 0x4c4d, 0x1e75,
+ 0x4c4e, 0x0eda,
+ 0x4c59, 0x1e76,
+ 0x4c5a, 0x0ee6,
+ 0x4c5f, 0x1e77,
+ 0x4c60, 0x0eec,
+ 0x4c62, 0x1e78,
+ 0x4c63, 0x0eef,
+ 0x4c79, 0x1935,
+ 0x4c7a, 0x1e79,
+ 0x4c7b, 0x0f07,
+ 0x4c7c, 0x1e7a,
+ 0x4c7d, 0x0f09,
+ 0x4c7e, 0x1e7b,
+ 0x4d21, 0x0f0b,
+ 0x4d32, 0x1e7c,
+ 0x4d33, 0x0f1d,
+ 0x4d50, 0x1e7d,
+ 0x4d51, 0x0f3b,
+ 0x4d54, 0x1e7e,
+ 0x4d55, 0x0f3f,
+ 0x4d5a, 0x1d34,
+ 0x4d5b, 0x0f45,
+ 0x4d69, 0x1e7f,
+ 0x4d6a, 0x0f54,
+ 0x4e21, 0x0f69,
+ 0x4e4b, 0x1e80,
+ 0x4e4c, 0x0f94,
+ 0x4e7a, 0x1e81,
+ 0x4e7c, 0x0fc4,
+ 0x4f21, 0x1e83,
+ 0x4f22, 0x0fc8,
+ 0x4f31, 0x1e84,
+ 0x4f32, 0x0fd8,
+ 0x4f36, 0x1777,
+ 0x4f37, 0x0fdd,
+ 0x4f39, 0x1e85,
+ 0x4f3a, 0x0fe0,
+ 0x5021, 0x0ffa,
+ 0x5056, 0x0ea7,
+ 0x5057, 0x1030,
+ 0x5121, 0x1058,
+ 0x513d, 0x1e86,
+ 0x513e, 0x1075,
+ 0x5147, 0x1e87,
+ 0x5148, 0x107f,
+ 0x514b, 0x1e88,
+ 0x514c, 0x1083,
+ 0x514d, 0x1e89,
+ 0x514e, 0x1085,
+ 0x5221, 0x10b6,
+ 0x5321, 0x1114,
+ 0x5330, 0x1e8a,
+ 0x5331, 0x1124,
+ 0x533a, 0x1e8b,
+ 0x533b, 0x112e,
+ 0x5350, 0x1e8c,
+ 0x5351, 0x1144,
+ 0x535e, 0x1e8d,
+ 0x535f, 0x1152,
+ 0x536b, 0x1e8e,
+ 0x536c, 0x115f,
+ 0x5421, 0x1172,
+ 0x5444, 0x1e8f,
+ 0x5445, 0x1196,
+ 0x5464, 0x0bf7,
+ 0x5465, 0x11b6,
+ 0x5521, 0x11d0,
+ 0x553d, 0x1e90,
+ 0x553e, 0x11ed,
+ 0x5563, 0x1e91,
+ 0x5564, 0x1213,
+ 0x5621, 0x122e,
+ 0x5622, 0x1e92,
+ 0x5623, 0x1230,
+ 0x5672, 0x1e93,
+ 0x5673, 0x1280,
+ 0x5721, 0x128c,
+ 0x5821, 0x12ea,
+ 0x5824, 0x1e94,
+ 0x5825, 0x12ee,
+ 0x5921, 0x1348,
+ 0x5960, 0x1e95,
+ 0x5961, 0x1388,
+ 0x596c, 0x1e96,
+ 0x596d, 0x1394,
+ 0x5978, 0x05a7,
+ 0x5979, 0x13a0,
+ 0x5a21, 0x13a6,
+ 0x5a39, 0x1e97,
+ 0x5a3a, 0x13bf,
+ 0x5a4d, 0x1e98,
+ 0x5a4e, 0x13d3,
+ 0x5b21, 0x1404,
+ 0x5b45, 0x1e99,
+ 0x5b46, 0x1429,
+ 0x5b4a, 0x1e9a,
+ 0x5b4b, 0x142e,
+ 0x5b58, 0x0da2,
+ 0x5b59, 0x143c,
+ 0x5b6b, 0x1e9b,
+ 0x5b6c, 0x144f,
+ 0x5b6d, 0x0c68,
+ 0x5b6e, 0x1451,
+ 0x5b74, 0x1e9c,
+ 0x5b75, 0x1458,
+ 0x5c21, 0x1462,
+ 0x5d21, 0x14c0,
+ 0x5e21, 0x151e,
+ 0x5e39, 0x0c6d,
+ 0x5e3a, 0x1537,
+ 0x5e50, 0x1e9d,
+ 0x5e51, 0x154e,
+ 0x5e75, 0x05ff,
+ 0x5e76, 0x1573,
+ 0x5f21, 0x157c,
+ 0x5f73, 0x1e9e,
+ 0x5f74, 0x15cf,
+ 0x6021, 0x15da,
+ 0x6026, 0x1e9f,
+ 0x6027, 0x15e0,
+ 0x605f, 0x1ea0,
+ 0x6060, 0x1619,
+ 0x6076, 0x1d35,
+ 0x6077, 0x1630,
+ 0x6121, 0x1638,
+ 0x612b, 0x1ea1,
+ 0x612c, 0x1643,
+ 0x6130, 0x1ea2,
+ 0x6132, 0x1649,
+ 0x6221, 0x1696,
+ 0x622b, 0x1ea4,
+ 0x622c, 0x16a1,
+ 0x6268, 0x07ee,
+ 0x6269, 0x16de,
+ 0x626a, 0x0c51,
+ 0x626b, 0x16e0,
+ 0x626f, 0x1ea5,
+ 0x6270, 0x16e5,
+ 0x6321, 0x16f4,
+ 0x634a, 0x1ea6,
+ 0x634b, 0x171e,
+ 0x6354, 0x1ea7,
+ 0x6355, 0x1728,
+ 0x635e, 0x05d4,
+ 0x635f, 0x1732,
+ 0x6421, 0x1752,
+ 0x6439, 0x1ea8,
+ 0x643a, 0x176b,
+ 0x6446, 0x0fdc,
+ 0x6447, 0x1778,
+ 0x6464, 0x1ea9,
+ 0x6465, 0x1796,
+ 0x646e, 0x1eaa,
+ 0x646f, 0x17a0,
+ 0x6521, 0x17b0,
+ 0x6539, 0x1eab,
+ 0x653a, 0x17c9,
+ 0x653b, 0x1eac,
+ 0x653c, 0x17cb,
+ 0x6546, 0x1ead,
+ 0x6547, 0x17d6,
+ 0x6621, 0x180e,
+ 0x6646, 0x1eae,
+ 0x6647, 0x1834,
+ 0x6721, 0x186c,
+ 0x6764, 0x1eaf,
+ 0x6765, 0x18b0,
+ 0x6769, 0x1eb0,
+ 0x676a, 0x18b5,
+ 0x6772, 0x1eb1,
+ 0x6773, 0x18be,
+ 0x6821, 0x18ca,
+ 0x6834, 0x1eb2,
+ 0x6835, 0x18de,
+ 0x683b, 0x1eb3,
+ 0x683c, 0x18e5,
+ 0x6874, 0x1eb4,
+ 0x6875, 0x191e,
+ 0x6921, 0x1928,
+ 0x6922, 0x08f5,
+ 0x6923, 0x192a,
+ 0x692e, 0x0f05,
+ 0x692f, 0x1936,
+ 0x693c, 0x1eb5,
+ 0x693d, 0x1944,
+ 0x695a, 0x05a0,
+ 0x695b, 0x1962,
+ 0x6a21, 0x1986,
+ 0x6a24, 0x0d1e,
+ 0x6a25, 0x198a,
+ 0x6a27, 0x1eb6,
+ 0x6a28, 0x198d,
+ 0x6a3d, 0x1eb7,
+ 0x6a3e, 0x19a3,
+ 0x6a6f, 0x1eb8,
+ 0x6a70, 0x19d5,
+ 0x6b21, 0x19e4,
+ 0x6b32, 0x1eb9,
+ 0x6b33, 0x19f6,
+ 0x6b5d, 0x060e,
+ 0x6b5e, 0x1a21,
+ 0x6b66, 0x1eba,
+ 0x6b67, 0x1a2a,
+ 0x6b76, 0x1ebb,
+ 0x6b77, 0x1a3a,
+ 0x6c21, 0x1a42,
+ 0x6c4d, 0x0aaa,
+ 0x6c4e, 0x1a6f,
+ 0x6c69, 0x1ebc,
+ 0x6c6a, 0x1a8b,
+ 0x6c74, 0x1ebd,
+ 0x6c75, 0x1a96,
+ 0x6d21, 0x1aa0,
+ 0x6d4e, 0x1ebe,
+ 0x6d4f, 0x1ace,
+ 0x6d6c, 0x1ebf,
+ 0x6d6d, 0x1aec,
+ 0x6d6e, 0x1ec0,
+ 0x6d6f, 0x1aee,
+ 0x6e21, 0x1afe,
+ 0x6e29, 0x1ec1,
+ 0x6e2a, 0x1b07,
+ 0x6e3d, 0x1ec2,
+ 0x6e3e, 0x1b1b,
+ 0x6e57, 0x1ec3,
+ 0x6e58, 0x1b35,
+ 0x6f21, 0x1b5c,
+ 0x6f65, 0x1ec4,
+ 0x6f66, 0x1ba1,
+ 0x7021, 0x1bba,
+ 0x7033, 0x1ec5,
+ 0x7034, 0x1bcd,
+ 0x7045, 0x1ec6,
+ 0x7046, 0x1bdf,
+ 0x7051, 0x1ec7,
+ 0x7052, 0x1beb,
+ 0x7057, 0x1ec8,
+ 0x7058, 0x1bf1,
+ 0x7074, 0x0731,
+ 0x7075, 0x1ec9,
+ 0x7076, 0x1c0f,
+ 0x7121, 0x1c18,
+ 0x7221, 0x1c76,
+ 0x722d, 0x1eca,
+ 0x722e, 0x1c83,
+ 0x723c, 0x1ecb,
+ 0x723d, 0x1c92,
+ 0x724d, 0x0477,
+ 0x724e, 0x1ecc,
+ 0x724f, 0x1ca4,
+ 0x7274, 0x0529,
+ 0x7275, 0x1cca,
+ 0x7321, 0x1cd4,
+ 0x7351, 0x1ecd,
+ 0x7352, 0x1d05,
+ 0x737d, 0x1ece,
+ 0x737e, 0x1d31,
+ 0x7921, 0x20a7,
+ 0x7a21, 0x2105,
+ 0x7a36, 0x07c9,
+ 0x7a37, 0x211a,
+ 0x7b21, 0x2162,
+ 0x7c21, 0x21c0,
+ 0x7c71, 0x1f9c,
+ 0x7c7b, 0x02ef,
+ 0x7c7c, 0x1f45,
+ 0x2122, 0x1ecf,
+ 0x2124, 0x204c,
+ 0x2125, 0x2052,
+ 0x212b, 0x2050,
+ 0x212c, 0x204f,
+ 0x213c, 0x1ed3,
+ 0x2141, 0x1ed6,
+ 0x2146, 0x2059,
+ 0x2147, 0x2054,
+ 0x2148, 0x2057,
+ 0x2149, 0x2056,
+ 0x214a, 0x1edb,
+ 0x216b, 0x204d,
+ 0x216c, 0x2051,
+ 0x216d, 0x205b,
+ 0x222e, 0x204e,
+ 0x2421, 0x1eee,
+ 0x2423, 0x1eef,
+ 0x2425, 0x1ef0,
+ 0x2427, 0x1ef1,
+ 0x2429, 0x1ef2,
+ 0x2443, 0x1ef3,
+ 0x2463, 0x1ef4,
+ 0x2465, 0x1ef5,
+ 0x2467, 0x1ef6,
+ 0x246e, 0x1ef7,
+ 0x2521, 0x1ef8,
+ 0x2523, 0x1ef9,
+ 0x2525, 0x1efa,
+ 0x2527, 0x1efb,
+ 0x2529, 0x1efc,
+ 0x2543, 0x1efd,
+ 0x2563, 0x1efe,
+ 0x2565, 0x1eff,
+ 0x2567, 0x1f00,
+ 0x256e, 0x1f01,
+ 0x2575, 0x1f02,
+ 0x2d40, 0x1f04,
+ 0x2d60, 0x1f14,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12ExtVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12ExtVMap2, 702
+};
+
static Gushort japan12HMap2[240] = {
0x0000, 0x0000,
0x2121, 0x0279,
@@ -7245,6 +14423,7 @@ static Gushort japan12HMap2[240] = {
};
static GfxFontEncoding16 japan12HEnc16 = {
+ 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, 1,
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -7302,6 +14481,7 @@ static Gushort japan12HankakuMap2[4] = {
};
static GfxFontEncoding16 japan12HankakuEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -7359,6 +14539,7 @@ static Gushort japan12HiraganaMap2[4] = {
};
static GfxFontEncoding16 japan12HiraganaEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -7416,6 +14597,7 @@ static Gushort japan12KatakanaMap2[4] = {
};
static GfxFontEncoding16 japan12KatakanaEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -8232,6 +15414,7 @@ static Gushort japan12NWPHMap2[1522] = {
};
static GfxFontEncoding16 japan12NWPHEnc16 = {
+ 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, 1,
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -8283,6 +15466,871 @@ static GfxFontEncoding16 japan12NWPHEnc16 = {
japan12NWPHMap2, 761
};
+static Gushort japan12NWPVMap2[1618] = {
+ 0x0000, 0x0000,
+ 0x2121, 0x0279,
+ 0x2169, 0x1d36,
+ 0x216a, 0x02c2,
+ 0x2221, 0x02d7,
+ 0x223a, 0x02e5,
+ 0x224a, 0x02ed,
+ 0x225c, 0x02f4,
+ 0x2272, 0x0303,
+ 0x227e, 0x030b,
+ 0x2330, 0x030c,
+ 0x2341, 0x0316,
+ 0x2361, 0x0330,
+ 0x2421, 0x034a,
+ 0x2521, 0x039d,
+ 0x2621, 0x03f3,
+ 0x2641, 0x040b,
+ 0x2721, 0x0423,
+ 0x2751, 0x0444,
+ 0x2921, 0x00e8,
+ 0x2960, 0x0186,
+ 0x2961, 0x0128,
+ 0x2a21, 0x0147,
+ 0x2a60, 0x0187,
+ 0x2b21, 0x01a6,
+ 0x2b72, 0x0127,
+ 0x2b73, 0x01f7,
+ 0x2c24, 0x1d37,
+ 0x2d21, 0x1d83,
+ 0x2d40, 0x1da1,
+ 0x2d60, 0x1db8,
+ 0x2d70, 0x02fa,
+ 0x2d71, 0x02f9,
+ 0x2d72, 0x0301,
+ 0x2d73, 0x1dc8,
+ 0x2d7a, 0x0300,
+ 0x2d7b, 0x1dcf,
+ 0x2e21, 0x0282,
+ 0x2e22, 0x02a1,
+ 0x2e23, 0x0305,
+ 0x2e24, 0x02c8,
+ 0x2e25, 0x02cb,
+ 0x2e26, 0x02cd,
+ 0x2e27, 0x029f,
+ 0x2e28, 0x02a2,
+ 0x2e2a, 0x02ce,
+ 0x2e2b, 0x02b4,
+ 0x2e2c, 0x027c,
+ 0x2e2d, 0x02b5,
+ 0x2e2e, 0x027d,
+ 0x2e2f, 0x0297,
+ 0x2e30, 0x030c,
+ 0x2e3a, 0x027f,
+ 0x2e3c, 0x02bb,
+ 0x2e3d, 0x02b9,
+ 0x2e3e, 0x02bc,
+ 0x2e3f, 0x0281,
+ 0x2e40, 0x02cf,
+ 0x2e41, 0x0316,
+ 0x2e5b, 0x02a6,
+ 0x2e5c, 0x02c7,
+ 0x2e5d, 0x02a7,
+ 0x2e5e, 0x0288,
+ 0x2e5f, 0x028a,
+ 0x2e60, 0x0286,
+ 0x2e61, 0x0330,
+ 0x2e7b, 0x02a8,
+ 0x2e7c, 0x029b,
+ 0x2e7d, 0x02a9,
+ 0x2e7e, 0x0289,
+ 0x2f21, 0x027b,
+ 0x2f22, 0x02ae,
+ 0x2f24, 0x027a,
+ 0x2f25, 0x027e,
+ 0x2f26, 0x03ee,
+ 0x2f27, 0x039d,
+ 0x2f28, 0x039f,
+ 0x2f29, 0x03a1,
+ 0x2f2a, 0x03a3,
+ 0x2f2b, 0x03a5,
+ 0x2f2c, 0x03df,
+ 0x2f2d, 0x03e1,
+ 0x2f2e, 0x03e3,
+ 0x2f2f, 0x03bf,
+ 0x2f30, 0x0294,
+ 0x2f31, 0x039e,
+ 0x2f32, 0x03a0,
+ 0x2f33, 0x03a2,
+ 0x2f34, 0x03a4,
+ 0x2f35, 0x03a6,
+ 0x2f37, 0x03a9,
+ 0x2f38, 0x03ab,
+ 0x2f39, 0x03ad,
+ 0x2f3a, 0x03af,
+ 0x2f3b, 0x03b1,
+ 0x2f3c, 0x03b3,
+ 0x2f3d, 0x03b5,
+ 0x2f3e, 0x03b7,
+ 0x2f3f, 0x03b9,
+ 0x2f40, 0x03bb,
+ 0x2f41, 0x03bd,
+ 0x2f42, 0x03c0,
+ 0x2f43, 0x03c2,
+ 0x2f44, 0x03c4,
+ 0x2f45, 0x03c6,
+ 0x2f4b, 0x03ce,
+ 0x2f4c, 0x03d1,
+ 0x2f4d, 0x03d4,
+ 0x2f4e, 0x03d7,
+ 0x2f4f, 0x03da,
+ 0x2f54, 0x03e0,
+ 0x2f55, 0x03e2,
+ 0x2f56, 0x03e4,
+ 0x2f5c, 0x03eb,
+ 0x2f5d, 0x03ef,
+ 0x2f5e, 0x0283,
+ 0x2f60, 0x03ec,
+ 0x2f62, 0x03ea,
+ 0x2f63, 0x03f1,
+ 0x2f65, 0x03f0,
+ 0x2f66, 0x03a8,
+ 0x2f67, 0x03aa,
+ 0x2f68, 0x03ac,
+ 0x2f69, 0x03ae,
+ 0x2f6a, 0x03b0,
+ 0x2f6b, 0x03b2,
+ 0x2f6c, 0x03b4,
+ 0x2f6d, 0x03b6,
+ 0x2f6e, 0x03b8,
+ 0x2f6f, 0x03ba,
+ 0x2f70, 0x03bc,
+ 0x2f71, 0x03be,
+ 0x2f72, 0x03c1,
+ 0x2f73, 0x03c3,
+ 0x2f74, 0x03c5,
+ 0x2f75, 0x03cc,
+ 0x2f77, 0x03cf,
+ 0x2f79, 0x03d2,
+ 0x2f7b, 0x03d5,
+ 0x2f7d, 0x03d8,
+ 0x3021, 0x0465,
+ 0x3022, 0x1dd1,
+ 0x3023, 0x0467,
+ 0x3033, 0x1ca2,
+ 0x3034, 0x0478,
+ 0x303b, 0x1dd2,
+ 0x303c, 0x0480,
+ 0x306e, 0x1dd3,
+ 0x306f, 0x04b3,
+ 0x3073, 0x1dd4,
+ 0x3074, 0x04b8,
+ 0x307c, 0x1dd5,
+ 0x307d, 0x04c1,
+ 0x3121, 0x04c3,
+ 0x312a, 0x1dd6,
+ 0x312b, 0x04cd,
+ 0x3135, 0x1dd7,
+ 0x3136, 0x04d8,
+ 0x3139, 0x1dd8,
+ 0x313a, 0x04dc,
+ 0x313c, 0x1dd9,
+ 0x313e, 0x04e0,
+ 0x3142, 0x1ddb,
+ 0x3143, 0x04e5,
+ 0x316b, 0x1ddc,
+ 0x316c, 0x050e,
+ 0x3221, 0x0521,
+ 0x3228, 0x1ddd,
+ 0x3229, 0x1cc9,
+ 0x322a, 0x1dde,
+ 0x322b, 0x052b,
+ 0x3260, 0x1ddf,
+ 0x3261, 0x0561,
+ 0x327a, 0x1de0,
+ 0x327b, 0x057b,
+ 0x327d, 0x1de1,
+ 0x327e, 0x057e,
+ 0x3321, 0x057f,
+ 0x3322, 0x1de2,
+ 0x3323, 0x0581,
+ 0x3342, 0x1961,
+ 0x3343, 0x05a1,
+ 0x3349, 0x139f,
+ 0x334a, 0x05a8,
+ 0x3365, 0x1de3,
+ 0x3366, 0x05c4,
+ 0x336b, 0x1de4,
+ 0x336c, 0x05ca,
+ 0x3373, 0x1de5,
+ 0x3374, 0x05d2,
+ 0x3376, 0x1731,
+ 0x3377, 0x05d5,
+ 0x337a, 0x1de6,
+ 0x337b, 0x05d9,
+ 0x3421, 0x05dd,
+ 0x3442, 0x1de7,
+ 0x3443, 0x1572,
+ 0x3444, 0x0600,
+ 0x344d, 0x1de8,
+ 0x344e, 0x060a,
+ 0x3452, 0x1a20,
+ 0x3453, 0x060f,
+ 0x3465, 0x1de9,
+ 0x3466, 0x0622,
+ 0x3521, 0x063b,
+ 0x352b, 0x1dea,
+ 0x352c, 0x0646,
+ 0x3540, 0x1deb,
+ 0x3541, 0x065b,
+ 0x3621, 0x0699,
+ 0x3622, 0x1dec,
+ 0x3623, 0x069b,
+ 0x362a, 0x1ded,
+ 0x362b, 0x06a3,
+ 0x3646, 0x1d32,
+ 0x3647, 0x06bf,
+ 0x364f, 0x1dee,
+ 0x3650, 0x06c8,
+ 0x366d, 0x1def,
+ 0x366e, 0x06e6,
+ 0x3674, 0x1df0,
+ 0x3675, 0x06ed,
+ 0x367b, 0x1df1,
+ 0x367c, 0x06f4,
+ 0x367d, 0x1df2,
+ 0x367e, 0x06f6,
+ 0x3721, 0x06f7,
+ 0x3724, 0x1df3,
+ 0x3725, 0x06fb,
+ 0x3737, 0x1df4,
+ 0x3738, 0x070e,
+ 0x3745, 0x1df5,
+ 0x3746, 0x071c,
+ 0x374e, 0x1df6,
+ 0x374f, 0x0725,
+ 0x3752, 0x1df7,
+ 0x3753, 0x0729,
+ 0x3755, 0x1df8,
+ 0x3756, 0x072c,
+ 0x375b, 0x1c0d,
+ 0x375c, 0x0732,
+ 0x3764, 0x1df9,
+ 0x3765, 0x073b,
+ 0x3771, 0x1dfa,
+ 0x3772, 0x0748,
+ 0x3779, 0x1dfb,
+ 0x377a, 0x0750,
+ 0x377e, 0x1dfc,
+ 0x3821, 0x0755,
+ 0x3834, 0x1dfd,
+ 0x3835, 0x0769,
+ 0x3841, 0x1dfe,
+ 0x3842, 0x0776,
+ 0x3921, 0x07b3,
+ 0x392b, 0x1dff,
+ 0x392c, 0x07be,
+ 0x3937, 0x1e00,
+ 0x3938, 0x07ca,
+ 0x3942, 0x1e01,
+ 0x3943, 0x07d5,
+ 0x395c, 0x16dd,
+ 0x395d, 0x07ef,
+ 0x396d, 0x1e02,
+ 0x396e, 0x0800,
+ 0x3974, 0x1e03,
+ 0x3975, 0x0807,
+ 0x3979, 0x1e04,
+ 0x397a, 0x080c,
+ 0x3a21, 0x0811,
+ 0x3a53, 0x1e05,
+ 0x3a54, 0x0844,
+ 0x3a67, 0x1e06,
+ 0x3a68, 0x0858,
+ 0x3a74, 0x1e07,
+ 0x3a75, 0x0865,
+ 0x3b21, 0x086f,
+ 0x3b27, 0x1e08,
+ 0x3b28, 0x0876,
+ 0x3b2a, 0x1e09,
+ 0x3b2b, 0x0879,
+ 0x3b2c, 0x1e0a,
+ 0x3b2d, 0x087b,
+ 0x3b39, 0x1e0b,
+ 0x3b3a, 0x0888,
+ 0x3c21, 0x08cd,
+ 0x3c38, 0x1e0c,
+ 0x3c39, 0x08e5,
+ 0x3c48, 0x1e0d,
+ 0x3c49, 0x1929,
+ 0x3c4a, 0x08f6,
+ 0x3c57, 0x1e0e,
+ 0x3c58, 0x0904,
+ 0x3c5d, 0x1e0f,
+ 0x3c5f, 0x090b,
+ 0x3d21, 0x092b,
+ 0x3d2b, 0x1e11,
+ 0x3d2c, 0x0936,
+ 0x3d36, 0x1e12,
+ 0x3d37, 0x0941,
+ 0x3d6c, 0x1e13,
+ 0x3d6e, 0x0978,
+ 0x3d72, 0x1e15,
+ 0x3d74, 0x097e,
+ 0x3e21, 0x0989,
+ 0x3e25, 0x1e17,
+ 0x3e26, 0x098e,
+ 0x3e33, 0x1e18,
+ 0x3e34, 0x099c,
+ 0x3e3f, 0x1e19,
+ 0x3e40, 0x09a8,
+ 0x3e55, 0x1e1a,
+ 0x3e56, 0x09be,
+ 0x3e5f, 0x1e1b,
+ 0x3e60, 0x09c8,
+ 0x3e64, 0x1e1c,
+ 0x3e65, 0x09cd,
+ 0x3f21, 0x09e7,
+ 0x3f2a, 0x1e1d,
+ 0x3f2b, 0x09f1,
+ 0x3f59, 0x1e1e,
+ 0x3f5a, 0x0a20,
+ 0x3f60, 0x1e1f,
+ 0x3f61, 0x0a27,
+ 0x3f69, 0x1e20,
+ 0x3f6a, 0x0a30,
+ 0x4021, 0x0a45,
+ 0x4022, 0x1e21,
+ 0x4023, 0x0a47,
+ 0x4042, 0x1e22,
+ 0x4043, 0x0a67,
+ 0x4066, 0x1e23,
+ 0x4067, 0x0a8b,
+ 0x4071, 0x1e24,
+ 0x4073, 0x0a97,
+ 0x4079, 0x1e26,
+ 0x407b, 0x0a9f,
+ 0x4121, 0x0aa3,
+ 0x4127, 0x1e28,
+ 0x4128, 0x1a6e,
+ 0x4129, 0x0aab,
+ 0x4139, 0x1e29,
+ 0x413a, 0x0abc,
+ 0x414c, 0x1e2a,
+ 0x414d, 0x0acf,
+ 0x414f, 0x1e2b,
+ 0x4150, 0x0ad2,
+ 0x415f, 0x1e2c,
+ 0x4160, 0x0ae2,
+ 0x4169, 0x1e2d,
+ 0x416a, 0x0aec,
+ 0x4221, 0x0b01,
+ 0x423d, 0x1e2e,
+ 0x423e, 0x0b1e,
+ 0x424d, 0x1e2f,
+ 0x424e, 0x0b2e,
+ 0x425c, 0x1e30,
+ 0x425d, 0x0b3d,
+ 0x4263, 0x1e31,
+ 0x4264, 0x0b44,
+ 0x426f, 0x1e32,
+ 0x4270, 0x0b50,
+ 0x4275, 0x1e33,
+ 0x4277, 0x0b57,
+ 0x427d, 0x1e35,
+ 0x427e, 0x0b5e,
+ 0x4321, 0x0b5f,
+ 0x4327, 0x1e36,
+ 0x4328, 0x0b66,
+ 0x4329, 0x1e37,
+ 0x432b, 0x0b69,
+ 0x432d, 0x1e39,
+ 0x432f, 0x0b6d,
+ 0x433d, 0x1e3b,
+ 0x433e, 0x0b7c,
+ 0x4370, 0x1e3c,
+ 0x4371, 0x0baf,
+ 0x4375, 0x1e3d,
+ 0x4376, 0x0bb4,
+ 0x437c, 0x1e3e,
+ 0x437d, 0x0bbb,
+ 0x4421, 0x0bbd,
+ 0x443d, 0x1e3f,
+ 0x443e, 0x0bda,
+ 0x4448, 0x1e40,
+ 0x4449, 0x0be5,
+ 0x444a, 0x1e41,
+ 0x444b, 0x0be7,
+ 0x444d, 0x1e42,
+ 0x444e, 0x0bea,
+ 0x444f, 0x1e43,
+ 0x4450, 0x0bec,
+ 0x445b, 0x11b5,
+ 0x445c, 0x0bf8,
+ 0x4521, 0x0c1b,
+ 0x4522, 0x1e44,
+ 0x4523, 0x0c1d,
+ 0x4527, 0x1e45,
+ 0x4528, 0x0c22,
+ 0x452e, 0x1e46,
+ 0x452f, 0x0c29,
+ 0x4536, 0x1e47,
+ 0x4537, 0x0c31,
+ 0x453f, 0x1e48,
+ 0x4540, 0x0c3a,
+ 0x4548, 0x1e49,
+ 0x4549, 0x0c43,
+ 0x454b, 0x1e4a,
+ 0x454c, 0x0c46,
+ 0x4551, 0x1e4b,
+ 0x4553, 0x0c4d,
+ 0x4557, 0x16df,
+ 0x4558, 0x0c52,
+ 0x4564, 0x1e4d,
+ 0x4565, 0x0c5f,
+ 0x456e, 0x1450,
+ 0x456f, 0x0c69,
+ 0x4573, 0x1536,
+ 0x4574, 0x0c6e,
+ 0x4578, 0x1e4e,
+ 0x4579, 0x0c73,
+ 0x4621, 0x0c79,
+ 0x463e, 0x1e4f,
+ 0x463f, 0x0c97,
+ 0x4642, 0x1e50,
+ 0x4643, 0x0c9b,
+ 0x4654, 0x1e51,
+ 0x4656, 0x0cae,
+ 0x465b, 0x1e53,
+ 0x465d, 0x0cb5,
+ 0x4661, 0x1e55,
+ 0x4662, 0x0cba,
+ 0x4666, 0x1e56,
+ 0x4668, 0x0cc0,
+ 0x466a, 0x1e58,
+ 0x466b, 0x0cc3,
+ 0x4676, 0x1aed,
+ 0x4677, 0x0ccf,
+ 0x4721, 0x0cd7,
+ 0x4729, 0x1e59,
+ 0x472a, 0x0ce0,
+ 0x4739, 0x1e5a,
+ 0x473a, 0x0cf0,
+ 0x4757, 0x1e5b,
+ 0x4758, 0x0d0e,
+ 0x4767, 0x1e5c,
+ 0x4768, 0x1989,
+ 0x4769, 0x1e5d,
+ 0x476a, 0x0d20,
+ 0x476d, 0x1e5e,
+ 0x476e, 0x0d24,
+ 0x4821, 0x0d35,
+ 0x4824, 0x1e5f,
+ 0x4825, 0x0d39,
+ 0x482e, 0x1e60,
+ 0x482f, 0x0d43,
+ 0x4830, 0x1e61,
+ 0x4831, 0x0d45,
+ 0x4854, 0x1e62,
+ 0x4855, 0x0d69,
+ 0x4862, 0x1e63,
+ 0x4863, 0x0d77,
+ 0x4875, 0x1e64,
+ 0x4876, 0x0d8a,
+ 0x4921, 0x0d93,
+ 0x4922, 0x1e65,
+ 0x4924, 0x0d96,
+ 0x492f, 0x1e67,
+ 0x4930, 0x143b,
+ 0x4931, 0x0da3,
+ 0x4932, 0x1e68,
+ 0x4933, 0x0da5,
+ 0x4935, 0x1e69,
+ 0x4936, 0x0da8,
+ 0x4940, 0x1e6a,
+ 0x4941, 0x0db3,
+ 0x494e, 0x1e6b,
+ 0x494f, 0x0dc1,
+ 0x4951, 0x1e6c,
+ 0x4952, 0x0dc4,
+ 0x4a21, 0x0df1,
+ 0x4a43, 0x1e6d,
+ 0x4a44, 0x0e14,
+ 0x4a4d, 0x1e6e,
+ 0x4a4e, 0x0e1e,
+ 0x4a5a, 0x1e6f,
+ 0x4a5b, 0x0e2b,
+ 0x4a79, 0x1e70,
+ 0x4a7a, 0x0e4a,
+ 0x4b21, 0x0e4f,
+ 0x4b22, 0x1e71,
+ 0x4b23, 0x0e51,
+ 0x4b29, 0x1e72,
+ 0x4b2a, 0x0e58,
+ 0x4b4b, 0x1e73,
+ 0x4b4c, 0x0e7a,
+ 0x4b6a, 0x1d33,
+ 0x4b6b, 0x0e99,
+ 0x4b70, 0x1e74,
+ 0x4b71, 0x0e9f,
+ 0x4b79, 0x102f,
+ 0x4b7a, 0x0ea8,
+ 0x4c21, 0x0ead,
+ 0x4c4d, 0x1e75,
+ 0x4c4e, 0x0eda,
+ 0x4c59, 0x1e76,
+ 0x4c5a, 0x0ee6,
+ 0x4c5f, 0x1e77,
+ 0x4c60, 0x0eec,
+ 0x4c62, 0x1e78,
+ 0x4c63, 0x0eef,
+ 0x4c79, 0x1935,
+ 0x4c7a, 0x1e79,
+ 0x4c7b, 0x0f07,
+ 0x4c7c, 0x1e7a,
+ 0x4c7d, 0x0f09,
+ 0x4c7e, 0x1e7b,
+ 0x4d21, 0x0f0b,
+ 0x4d32, 0x1e7c,
+ 0x4d33, 0x0f1d,
+ 0x4d50, 0x1e7d,
+ 0x4d51, 0x0f3b,
+ 0x4d54, 0x1e7e,
+ 0x4d55, 0x0f3f,
+ 0x4d5a, 0x1d34,
+ 0x4d5b, 0x0f45,
+ 0x4d69, 0x1e7f,
+ 0x4d6a, 0x0f54,
+ 0x4e21, 0x0f69,
+ 0x4e4b, 0x1e80,
+ 0x4e4c, 0x0f94,
+ 0x4e7a, 0x1e81,
+ 0x4e7c, 0x0fc4,
+ 0x4f21, 0x1e83,
+ 0x4f22, 0x0fc8,
+ 0x4f31, 0x1e84,
+ 0x4f32, 0x0fd8,
+ 0x4f36, 0x1777,
+ 0x4f37, 0x0fdd,
+ 0x4f39, 0x1e85,
+ 0x4f3a, 0x0fe0,
+ 0x5021, 0x0ffa,
+ 0x5056, 0x0ea7,
+ 0x5057, 0x1030,
+ 0x5121, 0x1058,
+ 0x513d, 0x1e86,
+ 0x513e, 0x1075,
+ 0x5147, 0x1e87,
+ 0x5148, 0x107f,
+ 0x514b, 0x1e88,
+ 0x514c, 0x1083,
+ 0x514d, 0x1e89,
+ 0x514e, 0x1085,
+ 0x5221, 0x10b6,
+ 0x5321, 0x1114,
+ 0x5330, 0x1e8a,
+ 0x5331, 0x1124,
+ 0x533a, 0x1e8b,
+ 0x533b, 0x112e,
+ 0x5350, 0x1e8c,
+ 0x5351, 0x1144,
+ 0x535e, 0x1e8d,
+ 0x535f, 0x1152,
+ 0x536b, 0x1e8e,
+ 0x536c, 0x115f,
+ 0x5421, 0x1172,
+ 0x5444, 0x1e8f,
+ 0x5445, 0x1196,
+ 0x5464, 0x0bf7,
+ 0x5465, 0x11b6,
+ 0x5521, 0x11d0,
+ 0x553d, 0x1e90,
+ 0x553e, 0x11ed,
+ 0x5563, 0x1e91,
+ 0x5564, 0x1213,
+ 0x5621, 0x122e,
+ 0x5622, 0x1e92,
+ 0x5623, 0x1230,
+ 0x5672, 0x1e93,
+ 0x5673, 0x1280,
+ 0x5721, 0x128c,
+ 0x5821, 0x12ea,
+ 0x5824, 0x1e94,
+ 0x5825, 0x12ee,
+ 0x5921, 0x1348,
+ 0x5960, 0x1e95,
+ 0x5961, 0x1388,
+ 0x596c, 0x1e96,
+ 0x596d, 0x1394,
+ 0x5978, 0x05a7,
+ 0x5979, 0x13a0,
+ 0x5a21, 0x13a6,
+ 0x5a39, 0x1e97,
+ 0x5a3a, 0x13bf,
+ 0x5a4d, 0x1e98,
+ 0x5a4e, 0x13d3,
+ 0x5b21, 0x1404,
+ 0x5b45, 0x1e99,
+ 0x5b46, 0x1429,
+ 0x5b4a, 0x1e9a,
+ 0x5b4b, 0x142e,
+ 0x5b58, 0x0da2,
+ 0x5b59, 0x143c,
+ 0x5b6b, 0x1e9b,
+ 0x5b6c, 0x144f,
+ 0x5b6d, 0x0c68,
+ 0x5b6e, 0x1451,
+ 0x5b74, 0x1e9c,
+ 0x5b75, 0x1458,
+ 0x5c21, 0x1462,
+ 0x5d21, 0x14c0,
+ 0x5e21, 0x151e,
+ 0x5e39, 0x0c6d,
+ 0x5e3a, 0x1537,
+ 0x5e50, 0x1e9d,
+ 0x5e51, 0x154e,
+ 0x5e75, 0x05ff,
+ 0x5e76, 0x1573,
+ 0x5f21, 0x157c,
+ 0x5f73, 0x1e9e,
+ 0x5f74, 0x15cf,
+ 0x6021, 0x15da,
+ 0x6026, 0x1e9f,
+ 0x6027, 0x15e0,
+ 0x605f, 0x1ea0,
+ 0x6060, 0x1619,
+ 0x6076, 0x1d35,
+ 0x6077, 0x1630,
+ 0x6121, 0x1638,
+ 0x612b, 0x1ea1,
+ 0x612c, 0x1643,
+ 0x6130, 0x1ea2,
+ 0x6132, 0x1649,
+ 0x6221, 0x1696,
+ 0x622b, 0x1ea4,
+ 0x622c, 0x16a1,
+ 0x6268, 0x07ee,
+ 0x6269, 0x16de,
+ 0x626a, 0x0c51,
+ 0x626b, 0x16e0,
+ 0x626f, 0x1ea5,
+ 0x6270, 0x16e5,
+ 0x6321, 0x16f4,
+ 0x634a, 0x1ea6,
+ 0x634b, 0x171e,
+ 0x6354, 0x1ea7,
+ 0x6355, 0x1728,
+ 0x635e, 0x05d4,
+ 0x635f, 0x1732,
+ 0x6421, 0x1752,
+ 0x6439, 0x1ea8,
+ 0x643a, 0x176b,
+ 0x6446, 0x0fdc,
+ 0x6447, 0x1778,
+ 0x6464, 0x1ea9,
+ 0x6465, 0x1796,
+ 0x646e, 0x1eaa,
+ 0x646f, 0x17a0,
+ 0x6521, 0x17b0,
+ 0x6539, 0x1eab,
+ 0x653a, 0x17c9,
+ 0x653b, 0x1eac,
+ 0x653c, 0x17cb,
+ 0x6546, 0x1ead,
+ 0x6547, 0x17d6,
+ 0x6621, 0x180e,
+ 0x6646, 0x1eae,
+ 0x6647, 0x1834,
+ 0x6721, 0x186c,
+ 0x6764, 0x1eaf,
+ 0x6765, 0x18b0,
+ 0x6769, 0x1eb0,
+ 0x676a, 0x18b5,
+ 0x6772, 0x1eb1,
+ 0x6773, 0x18be,
+ 0x6821, 0x18ca,
+ 0x6834, 0x1eb2,
+ 0x6835, 0x18de,
+ 0x683b, 0x1eb3,
+ 0x683c, 0x18e5,
+ 0x6874, 0x1eb4,
+ 0x6875, 0x191e,
+ 0x6921, 0x1928,
+ 0x6922, 0x08f5,
+ 0x6923, 0x192a,
+ 0x692e, 0x0f05,
+ 0x692f, 0x1936,
+ 0x693c, 0x1eb5,
+ 0x693d, 0x1944,
+ 0x695a, 0x05a0,
+ 0x695b, 0x1962,
+ 0x6a21, 0x1986,
+ 0x6a24, 0x0d1e,
+ 0x6a25, 0x198a,
+ 0x6a27, 0x1eb6,
+ 0x6a28, 0x198d,
+ 0x6a3d, 0x1eb7,
+ 0x6a3e, 0x19a3,
+ 0x6a6f, 0x1eb8,
+ 0x6a70, 0x19d5,
+ 0x6b21, 0x19e4,
+ 0x6b32, 0x1eb9,
+ 0x6b33, 0x19f6,
+ 0x6b5d, 0x060e,
+ 0x6b5e, 0x1a21,
+ 0x6b66, 0x1eba,
+ 0x6b67, 0x1a2a,
+ 0x6b76, 0x1ebb,
+ 0x6b77, 0x1a3a,
+ 0x6c21, 0x1a42,
+ 0x6c4d, 0x0aaa,
+ 0x6c4e, 0x1a6f,
+ 0x6c69, 0x1ebc,
+ 0x6c6a, 0x1a8b,
+ 0x6c74, 0x1ebd,
+ 0x6c75, 0x1a96,
+ 0x6d21, 0x1aa0,
+ 0x6d4e, 0x1ebe,
+ 0x6d4f, 0x1ace,
+ 0x6d6c, 0x1ebf,
+ 0x6d6d, 0x1aec,
+ 0x6d6e, 0x1ec0,
+ 0x6d6f, 0x1aee,
+ 0x6e21, 0x1afe,
+ 0x6e29, 0x1ec1,
+ 0x6e2a, 0x1b07,
+ 0x6e3d, 0x1ec2,
+ 0x6e3e, 0x1b1b,
+ 0x6e57, 0x1ec3,
+ 0x6e58, 0x1b35,
+ 0x6f21, 0x1b5c,
+ 0x6f65, 0x1ec4,
+ 0x6f66, 0x1ba1,
+ 0x7021, 0x1bba,
+ 0x7033, 0x1ec5,
+ 0x7034, 0x1bcd,
+ 0x7045, 0x1ec6,
+ 0x7046, 0x1bdf,
+ 0x7051, 0x1ec7,
+ 0x7052, 0x1beb,
+ 0x7057, 0x1ec8,
+ 0x7058, 0x1bf1,
+ 0x7074, 0x0731,
+ 0x7075, 0x1ec9,
+ 0x7076, 0x1c0f,
+ 0x7121, 0x1c18,
+ 0x7221, 0x1c76,
+ 0x722d, 0x1eca,
+ 0x722e, 0x1c83,
+ 0x723c, 0x1ecb,
+ 0x723d, 0x1c92,
+ 0x724d, 0x0477,
+ 0x724e, 0x1ecc,
+ 0x724f, 0x1ca4,
+ 0x7274, 0x0529,
+ 0x7275, 0x1cca,
+ 0x7321, 0x1cd4,
+ 0x7351, 0x1ecd,
+ 0x7352, 0x1d05,
+ 0x737d, 0x1ece,
+ 0x737e, 0x1d31,
+ 0x2122, 0x1ecf,
+ 0x2124, 0x204c,
+ 0x2125, 0x2052,
+ 0x212b, 0x2050,
+ 0x212c, 0x204f,
+ 0x213c, 0x1ed3,
+ 0x2141, 0x1ed6,
+ 0x2146, 0x2059,
+ 0x2147, 0x2054,
+ 0x2148, 0x2057,
+ 0x2149, 0x2056,
+ 0x214a, 0x1edb,
+ 0x216b, 0x204d,
+ 0x216c, 0x2051,
+ 0x216d, 0x205b,
+ 0x222e, 0x204e,
+ 0x2421, 0x1eee,
+ 0x2423, 0x1eef,
+ 0x2425, 0x1ef0,
+ 0x2427, 0x1ef1,
+ 0x2429, 0x1ef2,
+ 0x2443, 0x1ef3,
+ 0x2463, 0x1ef4,
+ 0x2465, 0x1ef5,
+ 0x2467, 0x1ef6,
+ 0x246e, 0x1ef7,
+ 0x2521, 0x1ef8,
+ 0x2523, 0x1ef9,
+ 0x2525, 0x1efa,
+ 0x2527, 0x1efb,
+ 0x2529, 0x1efc,
+ 0x2543, 0x1efd,
+ 0x2563, 0x1efe,
+ 0x2565, 0x1eff,
+ 0x2567, 0x1f00,
+ 0x256e, 0x1f01,
+ 0x2575, 0x1f02,
+ 0x2d40, 0x1f04,
+ 0x2d60, 0x1f14,
+ 0x2f21, 0x1ed0,
+ 0x2f22, 0x1ee7,
+ 0x2f24, 0x1ecf,
+ 0x2f27, 0x1ef8,
+ 0x2f2c, 0x1efe,
+ 0x2f2f, 0x1efd,
+ 0x2f30, 0x1ed3,
+ 0x2f5e, 0x2050,
+ 0x2f5f, 0x204f,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12NWPVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12NWPVMap2, 809
+};
+
static Gushort japan12RKSJHMap2[244] = {
0x0000, 0x0000,
0x8140, 0x0279,
@@ -8409,6 +16457,7 @@ static Gushort japan12RKSJHMap2[244] = {
};
static GfxFontEncoding16 japan12RKSJHEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -8460,12 +16509,218 @@ static GfxFontEncoding16 japan12RKSJHEnc16 = {
japan12RKSJHMap2, 122
};
+static Gushort japan12RKSJVMap2[298] = {
+ 0x0000, 0x0000,
+ 0x8140, 0x0279,
+ 0x8180, 0x02b8,
+ 0x81b8, 0x02e5,
+ 0x81c8, 0x02ed,
+ 0x81da, 0x02f4,
+ 0x81f0, 0x0303,
+ 0x81fc, 0x030b,
+ 0x824f, 0x030c,
+ 0x8260, 0x0316,
+ 0x8281, 0x0330,
+ 0x829f, 0x034a,
+ 0x8340, 0x039d,
+ 0x8380, 0x03dc,
+ 0x839f, 0x03f3,
+ 0x83bf, 0x040b,
+ 0x8440, 0x0423,
+ 0x8470, 0x0444,
+ 0x8480, 0x0453,
+ 0x849f, 0x1d37,
+ 0x84a0, 0x1d39,
+ 0x84a1, 0x1d43,
+ 0x84a2, 0x1d47,
+ 0x84a3, 0x1d4f,
+ 0x84a4, 0x1d4b,
+ 0x84a5, 0x1d53,
+ 0x84a6, 0x1d63,
+ 0x84a7, 0x1d5b,
+ 0x84a8, 0x1d6b,
+ 0x84a9, 0x1d73,
+ 0x84aa, 0x1d38,
+ 0x84ab, 0x1d3a,
+ 0x84ac, 0x1d46,
+ 0x84ad, 0x1d4a,
+ 0x84ae, 0x1d52,
+ 0x84af, 0x1d4e,
+ 0x84b0, 0x1d5a,
+ 0x84b1, 0x1d6a,
+ 0x84b2, 0x1d62,
+ 0x84b3, 0x1d72,
+ 0x84b4, 0x1d82,
+ 0x84b5, 0x1d57,
+ 0x84b6, 0x1d66,
+ 0x84b7, 0x1d5f,
+ 0x84b8, 0x1d6e,
+ 0x84b9, 0x1d76,
+ 0x84ba, 0x1d54,
+ 0x84bb, 0x1d67,
+ 0x84bc, 0x1d5c,
+ 0x84bd, 0x1d6f,
+ 0x84be, 0x1d79,
+ 0x889f, 0x0465,
+ 0x8940, 0x04c3,
+ 0x8980, 0x0502,
+ 0x8a40, 0x057f,
+ 0x8a80, 0x05be,
+ 0x8b40, 0x063b,
+ 0x8b80, 0x067a,
+ 0x8c40, 0x06f7,
+ 0x8c80, 0x0736,
+ 0x8d40, 0x07b3,
+ 0x8d80, 0x07f2,
+ 0x8e40, 0x086f,
+ 0x8e80, 0x08ae,
+ 0x8f40, 0x092b,
+ 0x8f80, 0x096a,
+ 0x9040, 0x09e7,
+ 0x9080, 0x0a26,
+ 0x9140, 0x0aa3,
+ 0x9180, 0x0ae2,
+ 0x9240, 0x0b5f,
+ 0x9280, 0x0b9e,
+ 0x9340, 0x0c1b,
+ 0x9380, 0x0c5a,
+ 0x9440, 0x0cd7,
+ 0x9480, 0x0d16,
+ 0x9540, 0x0d93,
+ 0x9580, 0x0dd2,
+ 0x9640, 0x0e4f,
+ 0x9680, 0x0e8e,
+ 0x9740, 0x0f0b,
+ 0x9780, 0x0f4a,
+ 0x9840, 0x0fc7,
+ 0x989f, 0x0ffa,
+ 0x9940, 0x1058,
+ 0x9980, 0x1097,
+ 0x9a40, 0x1114,
+ 0x9a80, 0x1153,
+ 0x9b40, 0x11d0,
+ 0x9b80, 0x120f,
+ 0x9c40, 0x128c,
+ 0x9c80, 0x12cb,
+ 0x9d40, 0x1348,
+ 0x9d80, 0x1387,
+ 0x9e40, 0x1404,
+ 0x9e80, 0x1443,
+ 0x9f40, 0x14c0,
+ 0x9f80, 0x14ff,
+ 0xe040, 0x157c,
+ 0xe080, 0x15bb,
+ 0xe140, 0x1638,
+ 0xe180, 0x1677,
+ 0xe240, 0x16f4,
+ 0xe280, 0x1733,
+ 0xe340, 0x17b0,
+ 0xe380, 0x17ef,
+ 0xe440, 0x186c,
+ 0xe480, 0x18ab,
+ 0xe540, 0x1928,
+ 0xe580, 0x1967,
+ 0xe640, 0x19e4,
+ 0xe680, 0x1a23,
+ 0xe740, 0x1aa0,
+ 0xe780, 0x1adf,
+ 0xe840, 0x1b5c,
+ 0xe880, 0x1b9b,
+ 0xe940, 0x1c18,
+ 0xe980, 0x1c57,
+ 0xea40, 0x1cd4,
+ 0xea80, 0x1d13,
+ 0xeaa3, 0x205c,
+ 0x8141, 0x1ecf,
+ 0x8150, 0x1ed1,
+ 0x815b, 0x1ed3,
+ 0x8160, 0x1ed6,
+ 0x8169, 0x1edb,
+ 0x8181, 0x1eed,
+ 0x829f, 0x1eee,
+ 0x82a1, 0x1eef,
+ 0x82a3, 0x1ef0,
+ 0x82a5, 0x1ef1,
+ 0x82a7, 0x1ef2,
+ 0x82c1, 0x1ef3,
+ 0x82e1, 0x1ef4,
+ 0x82e3, 0x1ef5,
+ 0x82e5, 0x1ef6,
+ 0x82ec, 0x1ef7,
+ 0x8340, 0x1ef8,
+ 0x8342, 0x1ef9,
+ 0x8344, 0x1efa,
+ 0x8346, 0x1efb,
+ 0x8348, 0x1efc,
+ 0x8362, 0x1efd,
+ 0x8383, 0x1efe,
+ 0x8385, 0x1eff,
+ 0x8387, 0x1f00,
+ 0x838e, 0x1f01,
+ 0x8395, 0x1f02,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12RKSJVEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee,
+ 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6,
+ 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe,
+ 0x00ff, 0x0100, 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106,
+ 0x0107, 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e,
+ 0x010f, 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116,
+ 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c, 0x011d, 0x011e,
+ 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126,
+ 0x0127, 0x0128, 0x0129, 0x012a, 0x012b, 0x012c, 0x012d, 0x012e,
+ 0x012f, 0x0130, 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0146, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d,
+ 0x014e, 0x014f, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155,
+ 0x0156, 0x0157, 0x0158, 0x0159, 0x015a, 0x015b, 0x015c, 0x015d,
+ 0x015e, 0x015f, 0x0160, 0x0161, 0x0162, 0x0163, 0x0164, 0x0165,
+ 0x0166, 0x0167, 0x0168, 0x0169, 0x016a, 0x016b, 0x016c, 0x016d,
+ 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175,
+ 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d,
+ 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12RKSJVMap2, 149
+};
+
static Gushort japan12RomanMap2[4] = {
0x0000, 0x0000,
0xffff, 0x0000
};
static GfxFontEncoding16 japan12RomanEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -15484,6 +23739,7 @@ static Gushort japan12UniJISUCS2HMap2[13926] = {
};
static GfxFontEncoding16 japan12UniJISUCS2HEnc16 = {
+ 0,
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -15535,12 +23791,7380 @@ static GfxFontEncoding16 japan12UniJISUCS2HEnc16 = {
japan12UniJISUCS2HMap2, 6963
};
+static Gushort japan12UniJISUCS2VMap2[14216] = {
+ 0x0000, 0x0000,
+ 0x0020, 0x0001,
+ 0x005c, 0x0061,
+ 0x005d, 0x003e,
+ 0x00a1, 0x0065,
+ 0x00a4, 0x006b,
+ 0x00a5, 0x003d,
+ 0x00a6, 0x0063,
+ 0x00a7, 0x02d0,
+ 0x00a8, 0x0287,
+ 0x00a9, 0x0098,
+ 0x00aa, 0x008c,
+ 0x00ab, 0x006d,
+ 0x00ac, 0x0099,
+ 0x00ad, 0x0097,
+ 0x00ae, 0x009a,
+ 0x00af, 0x0081,
+ 0x00b0, 0x02c3,
+ 0x00b1, 0x02b6,
+ 0x00b2, 0x009d,
+ 0x00b4, 0x0285,
+ 0x00b5, 0x009f,
+ 0x00b6, 0x030a,
+ 0x00b7, 0x0075,
+ 0x00b8, 0x0086,
+ 0x00b9, 0x00a0,
+ 0x00ba, 0x0090,
+ 0x00bb, 0x007b,
+ 0x00bc, 0x00a1,
+ 0x00bf, 0x007e,
+ 0x00c0, 0x00a4,
+ 0x00c6, 0x008b,
+ 0x00c7, 0x00aa,
+ 0x00d7, 0x02b7,
+ 0x00d8, 0x008e,
+ 0x00d9, 0x00bb,
+ 0x00df, 0x0096,
+ 0x00e0, 0x00c1,
+ 0x00e6, 0x0091,
+ 0x00e7, 0x00c7,
+ 0x00f7, 0x02b8,
+ 0x00f8, 0x0094,
+ 0x00f9, 0x00d8,
+ 0x0131, 0x0092,
+ 0x0141, 0x008d,
+ 0x0142, 0x0093,
+ 0x0152, 0x008f,
+ 0x0153, 0x0095,
+ 0x0160, 0x00df,
+ 0x0161, 0x00e3,
+ 0x0178, 0x00e0,
+ 0x017d, 0x00e1,
+ 0x017e, 0x00e5,
+ 0x01c0, 0x0063,
+ 0x0300, 0x0041,
+ 0x0301, 0x007f,
+ 0x0303, 0x005f,
+ 0x0304, 0x0081,
+ 0x0305, 0x00e2,
+ 0x0306, 0x0082,
+ 0x030a, 0x0085,
+ 0x030b, 0x0087,
+ 0x030c, 0x0089,
+ 0x0327, 0x0086,
+ 0x0328, 0x0088,
+ 0x0332, 0x0040,
+ 0x0336, 0x008a,
+ 0x0361, 0x02f6,
+ 0x0391, 0x03f3,
+ 0x03a3, 0x0404,
+ 0x03b1, 0x040b,
+ 0x03c3, 0x041c,
+ 0x0401, 0x0429,
+ 0x0410, 0x0423,
+ 0x0416, 0x042a,
+ 0x0436, 0x044b,
+ 0x0451, 0x044a,
+ 0x2002, 0x00e7,
+ 0x2003, 0x0279,
+ 0x2010, 0x000e,
+ 0x2011, 0x000e,
+ 0x2012, 0x0072,
+ 0x2013, 0x0072,
+ 0x2014, 0x008a,
+ 0x2015, 0x0295,
+ 0x2016, 0x029a,
+ 0x2018, 0x029e,
+ 0x201a, 0x0078,
+ 0x201c, 0x02a0,
+ 0x201e, 0x0079,
+ 0x2020, 0x0308,
+ 0x2022, 0x0077,
+ 0x2025, 0x029d,
+ 0x2026, 0x029c,
+ 0x2030, 0x0304,
+ 0x2032, 0x02c4,
+ 0x2039, 0x006e,
+ 0x203b, 0x02de,
+ 0x203e, 0x0145,
+ 0x2044, 0x0068,
+ 0x20dd, 0x030b,
+ 0x2103, 0x02c6,
+ 0x2109, 0x2071,
+ 0x2113, 0x1f59,
+ 0x2116, 0x1dba,
+ 0x2121, 0x1f77,
+ 0x2122, 0x00e4,
+ 0x212b, 0x0303,
+ 0x2160, 0x1d97,
+ 0x216a, 0x2021,
+ 0x2170, 0x1f9c,
+ 0x217a, 0x206a,
+ 0x217f, 0x206f,
+ 0x2190, 0x02e1,
+ 0x2192, 0x02e0,
+ 0x2193, 0x02e3,
+ 0x21c4, 0x2076,
+ 0x21c6, 0x2075,
+ 0x21d2, 0x02f0,
+ 0x21d4, 0x02f1,
+ 0x21e6, 0x1f4d,
+ 0x21e7, 0x1f4c,
+ 0x21e8, 0x1f4e,
+ 0x21e9, 0x1f4b,
+ 0x2200, 0x02f2,
+ 0x2202, 0x02f7,
+ 0x2203, 0x02f3,
+ 0x2207, 0x02f8,
+ 0x2208, 0x02e5,
+ 0x220b, 0x02e6,
+ 0x2211, 0x1dc9,
+ 0x2212, 0x02b5,
+ 0x221a, 0x02fd,
+ 0x221d, 0x02ff,
+ 0x221e, 0x02bf,
+ 0x221f, 0x1dcd,
+ 0x2220, 0x02f4,
+ 0x2225, 0x029a,
+ 0x2227, 0x02ed,
+ 0x2229, 0x02ec,
+ 0x222a, 0x02eb,
+ 0x222b, 0x0301,
+ 0x222d, 0x2003,
+ 0x222e, 0x1dc8,
+ 0x2234, 0x02c0,
+ 0x2235, 0x0300,
+ 0x223c, 0x0299,
+ 0x223d, 0x02fe,
+ 0x2252, 0x02fa,
+ 0x2260, 0x02ba,
+ 0x2261, 0x02f9,
+ 0x2266, 0x02bd,
+ 0x226a, 0x02fb,
+ 0x2282, 0x02e9,
+ 0x2286, 0x02e7,
+ 0x22a5, 0x02f5,
+ 0x22bf, 0x1dce,
+ 0x22ee, 0x1ed9,
+ 0x22ef, 0x029c,
+ 0x2312, 0x02f6,
+ 0x2460, 0x1d83,
+ 0x2474, 0x1f87,
+ 0x2488, 0x1f7e,
+ 0x249c, 0x1fb0,
+ 0x24ea, 0x2020,
+ 0x2500, 0x1d37,
+ 0x2550, 0x203b,
+ 0x255e, 0x203c,
+ 0x2561, 0x203e,
+ 0x256a, 0x203d,
+ 0x256d, 0x2037,
+ 0x256f, 0x203a,
+ 0x2570, 0x2039,
+ 0x2571, 0x2045,
+ 0x2581, 0x2026,
+ 0x2589, 0x2034,
+ 0x258a, 0x2033,
+ 0x258b, 0x2032,
+ 0x258c, 0x2031,
+ 0x258d, 0x2030,
+ 0x258e, 0x202f,
+ 0x258f, 0x202e,
+ 0x2594, 0x2035,
+ 0x25a0, 0x02d9,
+ 0x25a1, 0x02d8,
+ 0x25a2, 0x1f4f,
+ 0x25b2, 0x02db,
+ 0x25b3, 0x02da,
+ 0x25b7, 0x1f4a,
+ 0x25bc, 0x02dd,
+ 0x25bd, 0x02dc,
+ 0x25c1, 0x1f49,
+ 0x25c6, 0x02d7,
+ 0x25c7, 0x02d6,
+ 0x25c9, 0x2012,
+ 0x25cb, 0x02d3,
+ 0x25ce, 0x02d5,
+ 0x25cf, 0x02d4,
+ 0x25e2, 0x203f,
+ 0x25e4, 0x2042,
+ 0x25e5, 0x2041,
+ 0x25ef, 0x030b,
+ 0x2600, 0x2017,
+ 0x2605, 0x02d2,
+ 0x2606, 0x02d1,
+ 0x260e, 0x1f78,
+ 0x261c, 0x201c,
+ 0x261e, 0x201b,
+ 0x261f, 0x201e,
+ 0x2640, 0x02c2,
+ 0x2642, 0x02c1,
+ 0x2660, 0x2013,
+ 0x2661, 0x1f51,
+ 0x2662, 0x1f53,
+ 0x2663, 0x2015,
+ 0x2664, 0x1f52,
+ 0x2665, 0x2014,
+ 0x2666, 0x2016,
+ 0x2667, 0x1f50,
+ 0x266a, 0x0307,
+ 0x266d, 0x0306,
+ 0x266f, 0x0305,
+ 0x2776, 0x205e,
+ 0x27a1, 0x200e,
+ 0x3000, 0x0279,
+ 0x3003, 0x028f,
+ 0x3004, 0x2074,
+ 0x3005, 0x0291,
+ 0x3008, 0x02aa,
+ 0x3012, 0x02df,
+ 0x3013, 0x02e4,
+ 0x3014, 0x02a4,
+ 0x301c, 0x0299,
+ 0x301d, 0x1db8,
+ 0x301f, 0x1db9,
+ 0x3020, 0x1f7a,
+ 0x3036, 0x1f79,
+ 0x3041, 0x034a,
+ 0x3094, 0x1f16,
+ 0x309b, 0x0283,
+ 0x309d, 0x028d,
+ 0x30a1, 0x039d,
+ 0x30f7, 0x2079,
+ 0x30fb, 0x027e,
+ 0x30fc, 0x0294,
+ 0x30fd, 0x028b,
+ 0x322a, 0x2006,
+ 0x3230, 0x2005,
+ 0x3231, 0x1dc2,
+ 0x3233, 0x1fcf,
+ 0x3234, 0x1fcd,
+ 0x3235, 0x1fd4,
+ 0x3236, 0x1fd3,
+ 0x3237, 0x200c,
+ 0x3238, 0x1fce,
+ 0x3239, 0x1dc4,
+ 0x323a, 0x1fd7,
+ 0x323b, 0x1fd5,
+ 0x323c, 0x1fd0,
+ 0x323d, 0x1fcb,
+ 0x323e, 0x1fd2,
+ 0x323f, 0x1fcc,
+ 0x3240, 0x1fd6,
+ 0x3241, 0x200d,
+ 0x3242, 0x1fd1,
+ 0x3243, 0x1fca,
+ 0x3291, 0x1fe1,
+ 0x3292, 0x1fe0,
+ 0x3293, 0x1fe2,
+ 0x3294, 0x1fdc,
+ 0x3296, 0x1fe5,
+ 0x3298, 0x1fde,
+ 0x3299, 0x201f,
+ 0x329d, 0x207f,
+ 0x329e, 0x1fff,
+ 0x32a4, 0x1dbd,
+ 0x32a9, 0x1fda,
+ 0x32aa, 0x1fdd,
+ 0x32ab, 0x1fdf,
+ 0x32ac, 0x1fe3,
+ 0x32ad, 0x1fd9,
+ 0x32ae, 0x1fe4,
+ 0x32af, 0x1fdb,
+ 0x32b0, 0x1fd8,
+ 0x3300, 0x1f70,
+ 0x3303, 0x1f6a,
+ 0x3305, 0x1ff7,
+ 0x330d, 0x1dab,
+ 0x3314, 0x1da2,
+ 0x3315, 0x1f69,
+ 0x3316, 0x1f67,
+ 0x3318, 0x1f68,
+ 0x331e, 0x1f73,
+ 0x3322, 0x1f66,
+ 0x3323, 0x1f6b,
+ 0x3326, 0x1dac,
+ 0x3327, 0x1da6,
+ 0x332a, 0x1f74,
+ 0x332b, 0x1dae,
+ 0x3331, 0x1f71,
+ 0x3333, 0x2087,
+ 0x3336, 0x1da8,
+ 0x3339, 0x1f6e,
+ 0x333b, 0x1f6f,
+ 0x3342, 0x1f6d,
+ 0x3347, 0x1f72,
+ 0x3349, 0x1da1,
+ 0x334a, 0x1daf,
+ 0x334d, 0x1da4,
+ 0x334e, 0x2088,
+ 0x3351, 0x1da9,
+ 0x3357, 0x1f6c,
+ 0x337b, 0x2083,
+ 0x337c, 0x1dc7,
+ 0x337d, 0x1dc6,
+ 0x337e, 0x1dc5,
+ 0x337f, 0x1f76,
+ 0x3385, 0x1f5f,
+ 0x3388, 0x2000,
+ 0x338e, 0x1db4,
+ 0x3390, 0x1f63,
+ 0x3396, 0x1f65,
+ 0x3397, 0x1f58,
+ 0x3398, 0x1f5a,
+ 0x339c, 0x1db1,
+ 0x339f, 0x1ffa,
+ 0x33a0, 0x1f54,
+ 0x33a1, 0x1db7,
+ 0x33a2, 0x1f55,
+ 0x33a3, 0x1ffb,
+ 0x33a4, 0x1f56,
+ 0x33a6, 0x1ffc,
+ 0x33b0, 0x1f5e,
+ 0x33b1, 0x1f5d,
+ 0x33b2, 0x1f5c,
+ 0x33b3, 0x1f5b,
+ 0x33c4, 0x1db6,
+ 0x33c8, 0x2002,
+ 0x33cb, 0x1f62,
+ 0x33cc, 0x1ff6,
+ 0x33cd, 0x1dbb,
+ 0x33d4, 0x1f64,
+ 0x4e00, 0x04b0,
+ 0x4e01, 0x0bb8,
+ 0x4e03, 0x08e3,
+ 0x4e07, 0x0eaa,
+ 0x4e08, 0x09ce,
+ 0x4e09, 0x087e,
+ 0x4e0a, 0x09cd,
+ 0x4e0b, 0x053c,
+ 0x4e0d, 0x0dc6,
+ 0x4e0e, 0x0f29,
+ 0x4e10, 0x0ffb,
+ 0x4e11, 0x04d1,
+ 0x4e14, 0x05cc,
+ 0x4e15, 0x0ffc,
+ 0x4e16, 0x0a48,
+ 0x4e17, 0x10d7,
+ 0x4e18, 0x0670,
+ 0x4e19, 0x0e0a,
+ 0x4e1e, 0x09cf,
+ 0x4e21, 0x0f86,
+ 0x4e26, 0x0e12,
+ 0x4e28, 0x20b3,
+ 0x4e2a, 0x0ffd,
+ 0x4e2d, 0x0ba4,
+ 0x4e31, 0x0ffe,
+ 0x4e32, 0x06f2,
+ 0x4e36, 0x0fff,
+ 0x4e38, 0x0619,
+ 0x4e39, 0x0b6e,
+ 0x4e3b, 0x0913,
+ 0x4e3c, 0x1000,
+ 0x4e3f, 0x1001,
+ 0x4e42, 0x1002,
+ 0x4e43, 0x0ceb,
+ 0x4e45, 0x0671,
+ 0x4e4b, 0x0ced,
+ 0x4e4d, 0x0cbb,
+ 0x4e4e, 0x0777,
+ 0x4e4f, 0x0e61,
+ 0x4e55, 0x1950,
+ 0x4e56, 0x1003,
+ 0x4e57, 0x09d0,
+ 0x4e58, 0x1004,
+ 0x4e59, 0x0535,
+ 0x4e5d, 0x06dd,
+ 0x4e5e, 0x07a4,
+ 0x4e5f, 0x0ef5,
+ 0x4e62, 0x1233,
+ 0x4e71, 0x0f5a,
+ 0x4e73, 0x0cd5,
+ 0x4e7e, 0x05e1,
+ 0x4e80, 0x064f,
+ 0x4e82, 0x1005,
+ 0x4e85, 0x1006,
+ 0x4e86, 0x0f83,
+ 0x4e88, 0x0f27,
+ 0x4e89, 0x0aea,
+ 0x4e8a, 0x1008,
+ 0x4e8b, 0x08c4,
+ 0x4e8c, 0x0ccb,
+ 0x4e8e, 0x100b,
+ 0x4e91, 0x04e0,
+ 0x4e92, 0x0793,
+ 0x4e94, 0x0792,
+ 0x4e95, 0x04aa,
+ 0x4e98, 0x0ff1,
+ 0x4e99, 0x0ff0,
+ 0x4e9b, 0x0823,
+ 0x4e9c, 0x0465,
+ 0x4e9e, 0x100c,
+ 0x4ea1, 0x0e62,
+ 0x4ea2, 0x100f,
+ 0x4ea4, 0x07a6,
+ 0x4ea5, 0x04ab,
+ 0x4ea6, 0x0ea0,
+ 0x4ea8, 0x0696,
+ 0x4eab, 0x0697,
+ 0x4ead, 0x0bfe,
+ 0x4eae, 0x0f84,
+ 0x4eb0, 0x1010,
+ 0x4eb3, 0x1011,
+ 0x4eb6, 0x1012,
+ 0x4eba, 0x0a13,
+ 0x4ec0, 0x0944,
+ 0x4ec1, 0x0a14,
+ 0x4ec2, 0x1017,
+ 0x4ec4, 0x1015,
+ 0x4ec6, 0x1016,
+ 0x4ec7, 0x0672,
+ 0x4eca, 0x0813,
+ 0x4ecb, 0x0570,
+ 0x4ecd, 0x1014,
+ 0x4ece, 0x1013,
+ 0x4ecf, 0x0df9,
+ 0x4ed4, 0x0894,
+ 0x4ed5, 0x0893,
+ 0x4ed6, 0x0b1e,
+ 0x4ed7, 0x1018,
+ 0x4ed8, 0x0dc7,
+ 0x4ed9, 0x0a8b,
+ 0x4edd, 0x0290,
+ 0x4ede, 0x1019,
+ 0x4edf, 0x101b,
+ 0x4ee1, 0x20b4,
+ 0x4ee3, 0x0b45,
+ 0x4ee4, 0x0fa9,
+ 0x4ee5, 0x048e,
+ 0x4eed, 0x101a,
+ 0x4eee, 0x053e,
+ 0x4ef0, 0x06bc,
+ 0x4ef2, 0x0ba5,
+ 0x4ef6, 0x0745,
+ 0x4ef7, 0x101c,
+ 0x4efb, 0x0cda,
+ 0x4efc, 0x20b5,
+ 0x4f00, 0x20b6,
+ 0x4f01, 0x0627,
+ 0x4f03, 0x20b7,
+ 0x4f09, 0x101d,
+ 0x4f0a, 0x048f,
+ 0x4f0d, 0x0794,
+ 0x4f0e, 0x0628,
+ 0x4f0f, 0x0dec,
+ 0x4f10, 0x0d46,
+ 0x4f11, 0x0673,
+ 0x4f1a, 0x0571,
+ 0x4f1c, 0x1040,
+ 0x4f1d, 0x0c3b,
+ 0x4f2f, 0x0d22,
+ 0x4f30, 0x101f,
+ 0x4f34, 0x0d50,
+ 0x4f36, 0x0faa,
+ 0x4f38, 0x09f3,
+ 0x4f39, 0x20b8,
+ 0x4f3a, 0x0895,
+ 0x4f3c, 0x08c5,
+ 0x4f3d, 0x0540,
+ 0x4f43, 0x0bed,
+ 0x4f46, 0x0b60,
+ 0x4f47, 0x1023,
+ 0x4f4d, 0x0490,
+ 0x4f4e, 0x0bff,
+ 0x4f4f, 0x0945,
+ 0x4f50, 0x0824,
+ 0x4f51, 0x0f0e,
+ 0x4f53, 0x0b2e,
+ 0x4f55, 0x053f,
+ 0x4f56, 0x20b9,
+ 0x4f57, 0x1022,
+ 0x4f59, 0x0f28,
+ 0x4f5a, 0x101e,
+ 0x4f5b, 0x1020,
+ 0x4f5c, 0x085e,
+ 0x4f5d, 0x1021,
+ 0x4f5e, 0x11d3,
+ 0x4f69, 0x1029,
+ 0x4f6f, 0x102c,
+ 0x4f70, 0x102a,
+ 0x4f73, 0x0542,
+ 0x4f75, 0x0e0b,
+ 0x4f76, 0x1024,
+ 0x4f7b, 0x1028,
+ 0x4f7c, 0x07a7,
+ 0x4f7f, 0x0896,
+ 0x4f83, 0x05e2,
+ 0x4f86, 0x102d,
+ 0x4f88, 0x1025,
+ 0x4f8a, 0x20bb,
+ 0x4f8b, 0x0fab,
+ 0x4f8d, 0x08c6,
+ 0x4f8f, 0x1026,
+ 0x4f91, 0x102b,
+ 0x4f92, 0x20ba,
+ 0x4f94, 0x20bd,
+ 0x4f96, 0x102e,
+ 0x4f98, 0x1027,
+ 0x4f9a, 0x20bc,
+ 0x4f9b, 0x0699,
+ 0x4f9d, 0x0491,
+ 0x4fa0, 0x069a,
+ 0x4fa1, 0x0541,
+ 0x4fab, 0x11d4,
+ 0x4fad, 0x0ea7,
+ 0x4fae, 0x0de0,
+ 0x4faf, 0x07a8,
+ 0x4fb5, 0x09f5,
+ 0x4fb6, 0x0f7f,
+ 0x4fbf, 0x0e28,
+ 0x4fc2, 0x070e,
+ 0x4fc3, 0x0b05,
+ 0x4fc4, 0x0564,
+ 0x4fc9, 0x20ac,
+ 0x4fca, 0x095d,
+ 0x4fcd, 0x20be,
+ 0x4fce, 0x1032,
+ 0x4fd0, 0x1037,
+ 0x4fd1, 0x1035,
+ 0x4fd4, 0x1030,
+ 0x4fd7, 0x0b0f,
+ 0x4fd8, 0x1033,
+ 0x4fda, 0x1036,
+ 0x4fdb, 0x1034,
+ 0x4fdd, 0x0e2d,
+ 0x4fdf, 0x1031,
+ 0x4fe0, 0x1dec,
+ 0x4fe1, 0x09f4,
+ 0x4fe3, 0x0ea1,
+ 0x4fe4, 0x1038,
+ 0x4fee, 0x092e,
+ 0x4fef, 0x1046,
+ 0x4ff3, 0x0d06,
+ 0x4ff5, 0x0da8,
+ 0x4ff6, 0x1041,
+ 0x4ff8, 0x0e40,
+ 0x4ffa, 0x0536,
+ 0x4ffe, 0x1045,
+ 0x4fff, 0x20c1,
+ 0x5005, 0x103f,
+ 0x5006, 0x1048,
+ 0x5009, 0x0ad4,
+ 0x500b, 0x0778,
+ 0x500d, 0x0d12,
+ 0x500f, 0x1600,
+ 0x5011, 0x1047,
+ 0x5012, 0x0c57,
+ 0x5014, 0x103c,
+ 0x5016, 0x07aa,
+ 0x5019, 0x07a9,
+ 0x501a, 0x103a,
+ 0x501e, 0x20c2,
+ 0x501f, 0x0906,
+ 0x5021, 0x1042,
+ 0x5022, 0x20c0,
+ 0x5023, 0x0e3f,
+ 0x5024, 0x0b8b,
+ 0x5025, 0x103e,
+ 0x5026, 0x0747,
+ 0x5028, 0x103b,
+ 0x5029, 0x1043,
+ 0x502a, 0x103d,
+ 0x502b, 0x0f99,
+ 0x502c, 0x1044,
+ 0x502d, 0x0fe7,
+ 0x5036, 0x06de,
+ 0x5039, 0x0746,
+ 0x5040, 0x20bf,
+ 0x5042, 0x20c5,
+ 0x5043, 0x1049,
+ 0x5046, 0x20c3,
+ 0x5047, 0x104a,
+ 0x5048, 0x104e,
+ 0x5049, 0x0492,
+ 0x504f, 0x0e20,
+ 0x5050, 0x104d,
+ 0x5055, 0x104c,
+ 0x5056, 0x1050,
+ 0x505a, 0x104f,
+ 0x505c, 0x0c00,
+ 0x5065, 0x0748,
+ 0x506c, 0x1051,
+ 0x5070, 0x20c4,
+ 0x5072, 0x08f1,
+ 0x5074, 0x0b06,
+ 0x5075, 0x0c01,
+ 0x5076, 0x06ee,
+ 0x5078, 0x1052,
+ 0x507d, 0x0650,
+ 0x5080, 0x1053,
+ 0x5085, 0x1055,
+ 0x508d, 0x0e63,
+ 0x5091, 0x073c,
+ 0x5094, 0x20c6,
+ 0x5098, 0x087f,
+ 0x5099, 0x0d8b,
+ 0x509a, 0x1054,
+ 0x50ac, 0x0835,
+ 0x50ad, 0x0f2d,
+ 0x50b2, 0x1057,
+ 0x50b3, 0x105a,
+ 0x50b4, 0x1056,
+ 0x50b5, 0x0834,
+ 0x50b7, 0x0987,
+ 0x50be, 0x070f,
+ 0x50c2, 0x105b,
+ 0x50c5, 0x06c7,
+ 0x50c9, 0x1058,
+ 0x50cd, 0x0c87,
+ 0x50cf, 0x0afe,
+ 0x50d1, 0x069b,
+ 0x50d5, 0x0e7b,
+ 0x50d6, 0x105c,
+ 0x50d8, 0x20c8,
+ 0x50da, 0x0f85,
+ 0x50de, 0x105d,
+ 0x50e3, 0x1060,
+ 0x50e5, 0x105e,
+ 0x50e7, 0x0ad0,
+ 0x50ed, 0x105f,
+ 0x50ee, 0x1061,
+ 0x50f4, 0x20c7,
+ 0x50f5, 0x1063,
+ 0x50f9, 0x1062,
+ 0x50fb, 0x0e18,
+ 0x5100, 0x0651,
+ 0x5101, 0x1065,
+ 0x5104, 0x052f,
+ 0x5109, 0x1064,
+ 0x5112, 0x0920,
+ 0x5114, 0x1069,
+ 0x5115, 0x1068,
+ 0x5116, 0x1067,
+ 0x5118, 0x102f,
+ 0x511a, 0x106a,
+ 0x511f, 0x0988,
+ 0x5121, 0x106b,
+ 0x512a, 0x0f0f,
+ 0x5132, 0x0ee5,
+ 0x5137, 0x106d,
+ 0x513a, 0x106c,
+ 0x513b, 0x106f,
+ 0x513c, 0x106e,
+ 0x513f, 0x1070,
+ 0x5141, 0x04b8,
+ 0x5143, 0x0769,
+ 0x5144, 0x0711,
+ 0x5145, 0x0946,
+ 0x5146, 0x0bb9,
+ 0x5147, 0x069c,
+ 0x5148, 0x0a8c,
+ 0x5149, 0x07ab,
+ 0x514a, 0x20c9,
+ 0x514b, 0x0800,
+ 0x514c, 0x1073,
+ 0x514d, 0x0ed4,
+ 0x514e, 0x0c40,
+ 0x5150, 0x08c7,
+ 0x5152, 0x1072,
+ 0x5154, 0x1074,
+ 0x515a, 0x0c58,
+ 0x515c, 0x05d3,
+ 0x5162, 0x1075,
+ 0x5164, 0x20ca,
+ 0x5165, 0x0cd6,
+ 0x5168, 0x0ab6,
+ 0x5169, 0x1077,
+ 0x516b, 0x0d40,
+ 0x516c, 0x07ac,
+ 0x516d, 0x0fe1,
+ 0x516e, 0x1079,
+ 0x5171, 0x069e,
+ 0x5175, 0x0e0c,
+ 0x5176, 0x0b16,
+ 0x5177, 0x06e9,
+ 0x5178, 0x0c2f,
+ 0x517c, 0x0749,
+ 0x5180, 0x107a,
+ 0x5182, 0x107b,
+ 0x5185, 0x0cba,
+ 0x5186, 0x0501,
+ 0x5189, 0x107e,
+ 0x518a, 0x086d,
+ 0x518c, 0x107d,
+ 0x518d, 0x0836,
+ 0x518f, 0x107f,
+ 0x5190, 0x185b,
+ 0x5191, 0x1080,
+ 0x5192, 0x0e6f,
+ 0x5193, 0x1081,
+ 0x5195, 0x1082,
+ 0x5197, 0x09d1,
+ 0x5199, 0x08f8,
+ 0x519d, 0x20cb,
+ 0x51a0, 0x05e3,
+ 0x51a2, 0x1086,
+ 0x51a4, 0x1084,
+ 0x51a5, 0x0ec9,
+ 0x51a6, 0x1085,
+ 0x51a8, 0x0dcc,
+ 0x51a9, 0x1087,
+ 0x51ac, 0x0c59,
+ 0x51b0, 0x108d,
+ 0x51b1, 0x108b,
+ 0x51b3, 0x108a,
+ 0x51b4, 0x0853,
+ 0x51b5, 0x108e,
+ 0x51b6, 0x0ef6,
+ 0x51b7, 0x0fac,
+ 0x51bd, 0x108f,
+ 0x51be, 0x20cc,
+ 0x51c4, 0x0a4c,
+ 0x51c5, 0x1090,
+ 0x51c6, 0x0964,
+ 0x51c9, 0x1091,
+ 0x51cb, 0x0bba,
+ 0x51cc, 0x0f87,
+ 0x51cd, 0x0c5a,
+ 0x51d6, 0x10da,
+ 0x51db, 0x1092,
+ 0x51dc, 0x205c,
+ 0x51dd, 0x06bd,
+ 0x51e0, 0x1093,
+ 0x51e1, 0x0e8c,
+ 0x51e6, 0x0972,
+ 0x51e7, 0x0b5c,
+ 0x51e9, 0x1095,
+ 0x51ea, 0x0cbc,
+ 0x51ec, 0x20cd,
+ 0x51ed, 0x1096,
+ 0x51f0, 0x1097,
+ 0x51f1, 0x058c,
+ 0x51f5, 0x1098,
+ 0x51f6, 0x069f,
+ 0x51f8, 0x0ca4,
+ 0x51f9, 0x051c,
+ 0x51fa, 0x095a,
+ 0x51fd, 0x0d35,
+ 0x51fe, 0x1099,
+ 0x5200, 0x0c5b,
+ 0x5203, 0x0a15,
+ 0x5204, 0x109a,
+ 0x5206, 0x0dfc,
+ 0x5207, 0x0a7e,
+ 0x5208, 0x05de,
+ 0x520a, 0x05e5,
+ 0x520b, 0x109b,
+ 0x520e, 0x109d,
+ 0x5211, 0x0710,
+ 0x5214, 0x109c,
+ 0x5215, 0x20ce,
+ 0x5217, 0x0fbb,
+ 0x521d, 0x0973,
+ 0x5224, 0x0d51,
+ 0x5225, 0x0e1c,
+ 0x5227, 0x109e,
+ 0x5229, 0x0f62,
+ 0x522a, 0x109f,
+ 0x522e, 0x10a0,
+ 0x5230, 0x0c78,
+ 0x5233, 0x10a1,
+ 0x5236, 0x0a4d,
+ 0x5237, 0x086e,
+ 0x5238, 0x074a,
+ 0x5239, 0x10a2,
+ 0x523a, 0x0897,
+ 0x523b, 0x0801,
+ 0x5243, 0x0c02,
+ 0x5244, 0x10a4,
+ 0x5247, 0x0b07,
+ 0x524a, 0x085f,
+ 0x524b, 0x10a5,
+ 0x524d, 0x0ab2,
+ 0x524f, 0x10a3,
+ 0x5254, 0x10a8,
+ 0x5256, 0x0e64,
+ 0x525b, 0x07f6,
+ 0x525d, 0x1e5e,
+ 0x525e, 0x10a7,
+ 0x5263, 0x074b,
+ 0x5264, 0x084e,
+ 0x5265, 0x0d23,
+ 0x5269, 0x10ab,
+ 0x526a, 0x10a9,
+ 0x526f, 0x0ded,
+ 0x5270, 0x09d2,
+ 0x5271, 0x10b2,
+ 0x5272, 0x05c2,
+ 0x5273, 0x10ac,
+ 0x5274, 0x10aa,
+ 0x5275, 0x0ad1,
+ 0x527d, 0x10ae,
+ 0x527f, 0x10ad,
+ 0x5283, 0x05a2,
+ 0x5287, 0x0736,
+ 0x5288, 0x10b3,
+ 0x5289, 0x0f75,
+ 0x528d, 0x10af,
+ 0x5291, 0x10b4,
+ 0x5292, 0x10b1,
+ 0x5294, 0x10b0,
+ 0x529b, 0x0f97,
+ 0x529c, 0x20cf,
+ 0x529f, 0x07ad,
+ 0x52a0, 0x0543,
+ 0x52a3, 0x0fbc,
+ 0x52a6, 0x20d0,
+ 0x52a9, 0x097f,
+ 0x52aa, 0x0c52,
+ 0x52ab, 0x07f7,
+ 0x52ac, 0x10b7,
+ 0x52af, 0x217d,
+ 0x52b1, 0x0fad,
+ 0x52b4, 0x0fd1,
+ 0x52b5, 0x10ba,
+ 0x52b9, 0x07ae,
+ 0x52bc, 0x10b9,
+ 0x52be, 0x058d,
+ 0x52c0, 0x20d1,
+ 0x52c1, 0x10bb,
+ 0x52c3, 0x0e84,
+ 0x52c5, 0x0bd8,
+ 0x52c7, 0x0f10,
+ 0x52c9, 0x0e29,
+ 0x52cd, 0x10bc,
+ 0x52d2, 0x1bee,
+ 0x52d5, 0x0c88,
+ 0x52d7, 0x10bd,
+ 0x52d8, 0x05e6,
+ 0x52d9, 0x0ebf,
+ 0x52db, 0x20d2,
+ 0x52dd, 0x0989,
+ 0x52de, 0x10be,
+ 0x52df, 0x0e37,
+ 0x52e0, 0x10c2,
+ 0x52e2, 0x0a4e,
+ 0x52e3, 0x10bf,
+ 0x52e4, 0x06c8,
+ 0x52e6, 0x10c0,
+ 0x52e7, 0x05e7,
+ 0x52f2, 0x0704,
+ 0x52f3, 0x10c3,
+ 0x52f5, 0x10c4,
+ 0x52f8, 0x10c5,
+ 0x52fa, 0x0907,
+ 0x52fe, 0x07af,
+ 0x52ff, 0x0eea,
+ 0x5300, 0x20d3,
+ 0x5301, 0x0ef4,
+ 0x5302, 0x0ccf,
+ 0x5305, 0x0e41,
+ 0x5306, 0x10c7,
+ 0x5307, 0x20d4,
+ 0x5308, 0x10c8,
+ 0x530d, 0x10ca,
+ 0x530f, 0x10cc,
+ 0x5310, 0x10cb,
+ 0x5315, 0x10cd,
+ 0x5316, 0x053d,
+ 0x5317, 0x0e7a,
+ 0x5319, 0x086c,
+ 0x531a, 0x10ce,
+ 0x531d, 0x0adb,
+ 0x5320, 0x098a,
+ 0x5321, 0x06a1,
+ 0x5323, 0x10cf,
+ 0x5324, 0x20d5,
+ 0x532a, 0x0d6f,
+ 0x532f, 0x10d0,
+ 0x5331, 0x10d1,
+ 0x5333, 0x10d2,
+ 0x5338, 0x10d3,
+ 0x5339, 0x0d96,
+ 0x533a, 0x06e0,
+ 0x533b, 0x04a9,
+ 0x533f, 0x0c97,
+ 0x5340, 0x10d4,
+ 0x5341, 0x0947,
+ 0x5343, 0x0a8d,
+ 0x5345, 0x10d6,
+ 0x5346, 0x10d5,
+ 0x5347, 0x098b,
+ 0x5348, 0x0795,
+ 0x5349, 0x10d8,
+ 0x534a, 0x0d52,
+ 0x534d, 0x10d9,
+ 0x5351, 0x0d70,
+ 0x5352, 0x0b14,
+ 0x5353, 0x0b4e,
+ 0x5354, 0x06a0,
+ 0x5357, 0x0cc6,
+ 0x5358, 0x0b6f,
+ 0x535a, 0x0d24,
+ 0x535c, 0x0e7c,
+ 0x535e, 0x10db,
+ 0x5360, 0x0a8e,
+ 0x5366, 0x070b,
+ 0x5369, 0x10dc,
+ 0x536e, 0x10dd,
+ 0x536f, 0x04ce,
+ 0x5370, 0x04b9,
+ 0x5371, 0x0629,
+ 0x5372, 0x20d6,
+ 0x5373, 0x0b08,
+ 0x5374, 0x066b,
+ 0x5375, 0x0f5b,
+ 0x5377, 0x10e0,
+ 0x5378, 0x0537,
+ 0x537b, 0x10df,
+ 0x537f, 0x06a2,
+ 0x5382, 0x10e1,
+ 0x5384, 0x0efd,
+ 0x5393, 0x20d7,
+ 0x5396, 0x10e2,
+ 0x5398, 0x0f9a,
+ 0x539a, 0x07b0,
+ 0x539f, 0x076a,
+ 0x53a0, 0x10e3,
+ 0x53a5, 0x10e5,
+ 0x53a6, 0x10e4,
+ 0x53a8, 0x0a25,
+ 0x53a9, 0x04db,
+ 0x53ad, 0x0500,
+ 0x53ae, 0x10e6,
+ 0x53b0, 0x10e7,
+ 0x53b2, 0x20d8,
+ 0x53b3, 0x076b,
+ 0x53b6, 0x10e8,
+ 0x53bb, 0x0688,
+ 0x53c2, 0x0880,
+ 0x53c3, 0x10e9,
+ 0x53c8, 0x0ea2,
+ 0x53c9, 0x0825,
+ 0x53ca, 0x0674,
+ 0x53cb, 0x0f11,
+ 0x53cc, 0x0ad2,
+ 0x53cd, 0x0d53,
+ 0x53ce, 0x0929,
+ 0x53d4, 0x0951,
+ 0x53d6, 0x0914,
+ 0x53d7, 0x0921,
+ 0x53d9, 0x0980,
+ 0x53db, 0x0d54,
+ 0x53dd, 0x20d9,
+ 0x53df, 0x10ec,
+ 0x53e1, 0x04e5,
+ 0x53e2, 0x0ad3,
+ 0x53e3, 0x07b1,
+ 0x53e4, 0x0779,
+ 0x53e5, 0x06df,
+ 0x53e8, 0x10f0,
+ 0x53e9, 0x0b5f,
+ 0x53ea, 0x0b5e,
+ 0x53eb, 0x06a3,
+ 0x53ec, 0x098c,
+ 0x53ed, 0x10f1,
+ 0x53ee, 0x10ef,
+ 0x53ef, 0x0544,
+ 0x53f0, 0x0b46,
+ 0x53f1, 0x08e4,
+ 0x53f2, 0x0899,
+ 0x53f3, 0x04c8,
+ 0x53f6, 0x05ce,
+ 0x53f7, 0x07f8,
+ 0x53f8, 0x0898,
+ 0x53fa, 0x10f2,
+ 0x5401, 0x10f3,
+ 0x5403, 0x0663,
+ 0x5404, 0x05a4,
+ 0x5408, 0x07f9,
+ 0x5409, 0x0662,
+ 0x540a, 0x0bfb,
+ 0x540b, 0x04c7,
+ 0x540c, 0x0c89,
+ 0x540d, 0x0eca,
+ 0x540e, 0x07b3,
+ 0x540f, 0x0f63,
+ 0x5410, 0x0c41,
+ 0x5411, 0x07b2,
+ 0x541b, 0x0705,
+ 0x541d, 0x10fc,
+ 0x541f, 0x06db,
+ 0x5420, 0x0e78,
+ 0x5426, 0x0d71,
+ 0x5429, 0x10fb,
+ 0x542b, 0x061a,
+ 0x542c, 0x10f6,
+ 0x542e, 0x10f9,
+ 0x5436, 0x10fa,
+ 0x5438, 0x0675,
+ 0x5439, 0x0a27,
+ 0x543b, 0x0dfd,
+ 0x543c, 0x10f8,
+ 0x543d, 0x10f4,
+ 0x543e, 0x0797,
+ 0x5440, 0x10f5,
+ 0x5442, 0x0fca,
+ 0x5446, 0x0e42,
+ 0x5448, 0x0c04,
+ 0x5449, 0x0796,
+ 0x544a, 0x0802,
+ 0x544e, 0x10fd,
+ 0x5451, 0x0cb5,
+ 0x545f, 0x1101,
+ 0x5468, 0x092a,
+ 0x546a, 0x0922,
+ 0x5470, 0x1104,
+ 0x5471, 0x1102,
+ 0x5473, 0x0eaf,
+ 0x5475, 0x10ff,
+ 0x5476, 0x1108,
+ 0x5477, 0x1103,
+ 0x547b, 0x1106,
+ 0x547c, 0x077a,
+ 0x547d, 0x0ecb,
+ 0x5480, 0x1107,
+ 0x5484, 0x1109,
+ 0x5486, 0x110b,
+ 0x548a, 0x20dc,
+ 0x548b, 0x0860,
+ 0x548c, 0x0fe8,
+ 0x548e, 0x1100,
+ 0x548f, 0x10fe,
+ 0x5490, 0x110a,
+ 0x5492, 0x1105,
+ 0x549c, 0x20db,
+ 0x54a2, 0x110d,
+ 0x54a4, 0x1116,
+ 0x54a5, 0x110f,
+ 0x54a8, 0x1113,
+ 0x54a9, 0x20dd,
+ 0x54ab, 0x1114,
+ 0x54ac, 0x1110,
+ 0x54af, 0x1131,
+ 0x54b2, 0x0859,
+ 0x54b3, 0x058f,
+ 0x54b8, 0x110e,
+ 0x54bc, 0x1118,
+ 0x54bd, 0x04ba,
+ 0x54be, 0x1117,
+ 0x54c0, 0x0469,
+ 0x54c1, 0x0dbc,
+ 0x54c2, 0x1115,
+ 0x54c4, 0x1111,
+ 0x54c7, 0x110c,
+ 0x54c8, 0x1112,
+ 0x54c9, 0x0838,
+ 0x54d8, 0x1119,
+ 0x54e1, 0x04bb,
+ 0x54e2, 0x1122,
+ 0x54e5, 0x111a,
+ 0x54e8, 0x098d,
+ 0x54e9, 0x0e97,
+ 0x54ed, 0x1120,
+ 0x54ee, 0x111f,
+ 0x54f2, 0x0c29,
+ 0x54fa, 0x1121,
+ 0x54fd, 0x111e,
+ 0x54ff, 0x20de,
+ 0x5504, 0x04d6,
+ 0x5506, 0x0826,
+ 0x5507, 0x09f6,
+ 0x550f, 0x111c,
+ 0x5510, 0x0c5c,
+ 0x5514, 0x111d,
+ 0x5516, 0x0466,
+ 0x552e, 0x1127,
+ 0x552f, 0x0f0d,
+ 0x5531, 0x098f,
+ 0x5533, 0x112d,
+ 0x5538, 0x112c,
+ 0x5539, 0x1123,
+ 0x553e, 0x0b23,
+ 0x5540, 0x1124,
+ 0x5544, 0x0b4f,
+ 0x5545, 0x1129,
+ 0x5546, 0x098e,
+ 0x554c, 0x1126,
+ 0x554f, 0x0ef0,
+ 0x5553, 0x0712,
+ 0x5556, 0x112a,
+ 0x555c, 0x1128,
+ 0x555d, 0x112e,
+ 0x555e, 0x1dd1,
+ 0x5563, 0x1125,
+ 0x557b, 0x1134,
+ 0x557c, 0x1139,
+ 0x557e, 0x1135,
+ 0x5580, 0x1130,
+ 0x5583, 0x113a,
+ 0x5584, 0x0ab3,
+ 0x5586, 0x20df,
+ 0x5587, 0x113c,
+ 0x5589, 0x07b4,
+ 0x558a, 0x1132,
+ 0x558b, 0x0bbb,
+ 0x5598, 0x1136,
+ 0x5599, 0x112f,
+ 0x559a, 0x05e9,
+ 0x559c, 0x062a,
+ 0x559d, 0x05c3,
+ 0x559e, 0x1137,
+ 0x559f, 0x1133,
+ 0x55a7, 0x074c,
+ 0x55a8, 0x113d,
+ 0x55a9, 0x113b,
+ 0x55aa, 0x0ad5,
+ 0x55ab, 0x0664,
+ 0x55ac, 0x06a4,
+ 0x55ae, 0x1138,
+ 0x55b0, 0x06ec,
+ 0x55b6, 0x04e6,
+ 0x55c4, 0x1141,
+ 0x55c5, 0x113f,
+ 0x55c7, 0x1178,
+ 0x55d4, 0x1144,
+ 0x55da, 0x113e,
+ 0x55dc, 0x1142,
+ 0x55df, 0x1140,
+ 0x55e3, 0x089a,
+ 0x55e4, 0x1143,
+ 0x55f7, 0x1146,
+ 0x55f9, 0x114b,
+ 0x55fd, 0x1149,
+ 0x55fe, 0x1148,
+ 0x5606, 0x0b70,
+ 0x5609, 0x0545,
+ 0x5614, 0x1145,
+ 0x5616, 0x1147,
+ 0x5617, 0x0990,
+ 0x5618, 0x04d5,
+ 0x561b, 0x114a,
+ 0x5629, 0x055e,
+ 0x562f, 0x1155,
+ 0x5631, 0x09e4,
+ 0x5632, 0x1151,
+ 0x5634, 0x114f,
+ 0x5636, 0x1150,
+ 0x5638, 0x1152,
+ 0x5642, 0x04df,
+ 0x564c, 0x0abb,
+ 0x564e, 0x114c,
+ 0x5650, 0x114d,
+ 0x5653, 0x1f1b,
+ 0x565b, 0x05d8,
+ 0x5664, 0x1154,
+ 0x5668, 0x062b,
+ 0x566a, 0x1157,
+ 0x566b, 0x1153,
+ 0x566c, 0x1156,
+ 0x5674, 0x0dfe,
+ 0x5678, 0x0cad,
+ 0x567a, 0x0d4c,
+ 0x5680, 0x1159,
+ 0x5686, 0x1158,
+ 0x5687, 0x05a3,
+ 0x568a, 0x115a,
+ 0x568f, 0x115d,
+ 0x5694, 0x115c,
+ 0x5699, 0x1de6,
+ 0x56a0, 0x115b,
+ 0x56a2, 0x0cef,
+ 0x56a5, 0x115e,
+ 0x56ae, 0x115f,
+ 0x56b4, 0x1161,
+ 0x56b6, 0x1160,
+ 0x56bc, 0x1163,
+ 0x56c0, 0x1166,
+ 0x56c1, 0x1164,
+ 0x56c2, 0x1162,
+ 0x56c3, 0x1165,
+ 0x56c8, 0x1167,
+ 0x56ca, 0x1e5a,
+ 0x56ce, 0x1168,
+ 0x56d1, 0x1169,
+ 0x56d3, 0x116a,
+ 0x56d7, 0x116b,
+ 0x56d8, 0x107c,
+ 0x56da, 0x0928,
+ 0x56db, 0x089b,
+ 0x56de, 0x0573,
+ 0x56e0, 0x04bc,
+ 0x56e3, 0x0b82,
+ 0x56ee, 0x116c,
+ 0x56f0, 0x0814,
+ 0x56f2, 0x0493,
+ 0x56f3, 0x0a24,
+ 0x56f9, 0x116d,
+ 0x56fa, 0x077b,
+ 0x56fd, 0x0803,
+ 0x56ff, 0x116f,
+ 0x5700, 0x116e,
+ 0x5703, 0x0e30,
+ 0x5704, 0x1170,
+ 0x5708, 0x1172,
+ 0x5709, 0x1171,
+ 0x570b, 0x1173,
+ 0x570d, 0x1174,
+ 0x570f, 0x074d,
+ 0x5712, 0x0502,
+ 0x5713, 0x1175,
+ 0x5716, 0x1177,
+ 0x5718, 0x1176,
+ 0x571c, 0x1179,
+ 0x571f, 0x0c54,
+ 0x5726, 0x117a,
+ 0x5727, 0x0479,
+ 0x5728, 0x084f,
+ 0x572d, 0x0713,
+ 0x5730, 0x0b8d,
+ 0x5737, 0x117b,
+ 0x573b, 0x117e,
+ 0x5740, 0x117f,
+ 0x5742, 0x0854,
+ 0x5747, 0x06c9,
+ 0x574a, 0x0e65,
+ 0x574e, 0x117d,
+ 0x574f, 0x1180,
+ 0x5750, 0x0831,
+ 0x5751, 0x07b5,
+ 0x5759, 0x20e0,
+ 0x5761, 0x1184,
+ 0x5764, 0x0815,
+ 0x5765, 0x20e1,
+ 0x5766, 0x0b71,
+ 0x5769, 0x1181,
+ 0x576a, 0x0bf6,
+ 0x577f, 0x1185,
+ 0x5782, 0x0a28,
+ 0x5788, 0x1183,
+ 0x5789, 0x1186,
+ 0x578b, 0x0715,
+ 0x5793, 0x1187,
+ 0x57a0, 0x1188,
+ 0x57a2, 0x07b6,
+ 0x57a3, 0x059e,
+ 0x57a4, 0x118a,
+ 0x57aa, 0x118b,
+ 0x57ac, 0x20e2,
+ 0x57b0, 0x118c,
+ 0x57b3, 0x1189,
+ 0x57c0, 0x1182,
+ 0x57c3, 0x118d,
+ 0x57c6, 0x118e,
+ 0x57c7, 0x20e4,
+ 0x57c8, 0x20e3,
+ 0x57cb, 0x0e92,
+ 0x57ce, 0x09d3,
+ 0x57d2, 0x1190,
+ 0x57d4, 0x118f,
+ 0x57d6, 0x1193,
+ 0x57dc, 0x0cee,
+ 0x57df, 0x04ac,
+ 0x57e0, 0x0dc8,
+ 0x57e3, 0x1194,
+ 0x57f4, 0x09e5,
+ 0x57f7, 0x08e5,
+ 0x57f9, 0x0d13,
+ 0x57fa, 0x062c,
+ 0x57fc, 0x085b,
+ 0x5800, 0x0e87,
+ 0x5802, 0x0c8a,
+ 0x5805, 0x074e,
+ 0x5806, 0x0b2f,
+ 0x580a, 0x1192,
+ 0x580b, 0x1195,
+ 0x5815, 0x0b24,
+ 0x5819, 0x1196,
+ 0x581d, 0x1197,
+ 0x5821, 0x1199,
+ 0x5824, 0x0c05,
+ 0x582a, 0x05ea,
+ 0x582f, 0x1d32,
+ 0x5830, 0x0503,
+ 0x5831, 0x0e43,
+ 0x5834, 0x09d4,
+ 0x5835, 0x0c42,
+ 0x583a, 0x0856,
+ 0x583d, 0x119f,
+ 0x5840, 0x0e0d,
+ 0x5841, 0x0fa5,
+ 0x584a, 0x0574,
+ 0x584b, 0x119b,
+ 0x5851, 0x0abc,
+ 0x5852, 0x119e,
+ 0x5854, 0x0c5d,
+ 0x5857, 0x0c43,
+ 0x5858, 0x0c5e,
+ 0x5859, 0x0d4d,
+ 0x585a, 0x0be9,
+ 0x585e, 0x0839,
+ 0x5861, 0x1e47,
+ 0x5862, 0x119a,
+ 0x5869, 0x0518,
+ 0x586b, 0x0c30,
+ 0x5870, 0x119c,
+ 0x5872, 0x1198,
+ 0x5875, 0x0a16,
+ 0x5879, 0x11a0,
+ 0x587e, 0x0958,
+ 0x5883, 0x06a5,
+ 0x5885, 0x11a1,
+ 0x5893, 0x0e38,
+ 0x5897, 0x0aff,
+ 0x589c, 0x0be2,
+ 0x589e, 0x20e7,
+ 0x589f, 0x11a3,
+ 0x58a8, 0x0e7d,
+ 0x58ab, 0x11a4,
+ 0x58ae, 0x11a9,
+ 0x58b2, 0x20e8,
+ 0x58b3, 0x0dff,
+ 0x58b8, 0x11a8,
+ 0x58b9, 0x11a2,
+ 0x58ba, 0x11a5,
+ 0x58bb, 0x11a7,
+ 0x58be, 0x0816,
+ 0x58c1, 0x0e19,
+ 0x58c5, 0x11aa,
+ 0x58c7, 0x0b83,
+ 0x58ca, 0x0575,
+ 0x58cc, 0x09d5,
+ 0x58d1, 0x11ac,
+ 0x58d3, 0x11ab,
+ 0x58d5, 0x07fa,
+ 0x58d7, 0x11ad,
+ 0x58d8, 0x11af,
+ 0x58d9, 0x11ae,
+ 0x58dc, 0x11b1,
+ 0x58de, 0x11a6,
+ 0x58df, 0x11b3,
+ 0x58e4, 0x11b2,
+ 0x58e5, 0x11b0,
+ 0x58eb, 0x089c,
+ 0x58ec, 0x0a17,
+ 0x58ee, 0x0ad6,
+ 0x58ef, 0x11b4,
+ 0x58f0, 0x0a60,
+ 0x58f1, 0x04b1,
+ 0x58f2, 0x0d1a,
+ 0x58f7, 0x0bf7,
+ 0x58f9, 0x11b6,
+ 0x58fa, 0x11b5,
+ 0x58fb, 0x11b7,
+ 0x5902, 0x11ba,
+ 0x5909, 0x0e21,
+ 0x590a, 0x11bb,
+ 0x590b, 0x20e9,
+ 0x590f, 0x0546,
+ 0x5910, 0x11bc,
+ 0x5915, 0x0f26,
+ 0x5916, 0x058e,
+ 0x5918, 0x10de,
+ 0x5919, 0x0952,
+ 0x591a, 0x0b1f,
+ 0x591b, 0x11bd,
+ 0x591c, 0x0ef7,
+ 0x5922, 0x0ec0,
+ 0x5925, 0x11bf,
+ 0x5927, 0x0b47,
+ 0x5929, 0x0c31,
+ 0x592a, 0x0b20,
+ 0x592b, 0x0dc9,
+ 0x592c, 0x11c0,
+ 0x592e, 0x051d,
+ 0x5931, 0x08e6,
+ 0x5932, 0x11c2,
+ 0x5937, 0x0494,
+ 0x5938, 0x11c3,
+ 0x593e, 0x11c4,
+ 0x5944, 0x0504,
+ 0x5947, 0x062d,
+ 0x5948, 0x0cb8,
+ 0x5949, 0x0e44,
+ 0x594e, 0x11c8,
+ 0x594f, 0x0ad7,
+ 0x5950, 0x11c7,
+ 0x5951, 0x0716,
+ 0x5953, 0x20ea,
+ 0x5954, 0x0e89,
+ 0x5955, 0x11c6,
+ 0x5957, 0x0c5f,
+ 0x5958, 0x11ca,
+ 0x595a, 0x11c9,
+ 0x595b, 0x20eb,
+ 0x595d, 0x20ec,
+ 0x5960, 0x11cc,
+ 0x5962, 0x11cb,
+ 0x5963, 0x20ed,
+ 0x5965, 0x051e,
+ 0x5967, 0x11cd,
+ 0x5968, 0x0991,
+ 0x5969, 0x11cf,
+ 0x596a, 0x0b63,
+ 0x596c, 0x11ce,
+ 0x596e, 0x0e03,
+ 0x5973, 0x0981,
+ 0x5974, 0x0c55,
+ 0x5978, 0x11d0,
+ 0x597d, 0x07b7,
+ 0x5981, 0x11d1,
+ 0x5982, 0x0cd7,
+ 0x5983, 0x0d72,
+ 0x5984, 0x0edd,
+ 0x598a, 0x0cdb,
+ 0x598d, 0x11da,
+ 0x5993, 0x0652,
+ 0x5996, 0x0f2f,
+ 0x5999, 0x0ebb,
+ 0x599b, 0x1239,
+ 0x599d, 0x11d2,
+ 0x59a3, 0x11d5,
+ 0x59a4, 0x20ee,
+ 0x59a5, 0x0b25,
+ 0x59a8, 0x0e66,
+ 0x59ac, 0x0c44,
+ 0x59b2, 0x11d6,
+ 0x59b9, 0x0e93,
+ 0x59ba, 0x20ef,
+ 0x59bb, 0x083a,
+ 0x59be, 0x0992,
+ 0x59c6, 0x11d7,
+ 0x59c9, 0x089e,
+ 0x59cb, 0x089d,
+ 0x59d0, 0x047d,
+ 0x59d1, 0x077c,
+ 0x59d3, 0x0a4f,
+ 0x59d4, 0x0495,
+ 0x59d9, 0x11db,
+ 0x59dc, 0x11d9,
+ 0x59e5, 0x04da,
+ 0x59e6, 0x05eb,
+ 0x59e8, 0x11d8,
+ 0x59ea, 0x0ed1,
+ 0x59eb, 0x0da3,
+ 0x59f6, 0x046c,
+ 0x59fb, 0x04bd,
+ 0x59ff, 0x089f,
+ 0x5a01, 0x0496,
+ 0x5a03, 0x0467,
+ 0x5a09, 0x11e1,
+ 0x5a11, 0x11df,
+ 0x5a18, 0x0ec8,
+ 0x5a1a, 0x11e2,
+ 0x5a1c, 0x11e0,
+ 0x5a1f, 0x11de,
+ 0x5a20, 0x09f7,
+ 0x5a25, 0x11dd,
+ 0x5a29, 0x0e2a,
+ 0x5a2f, 0x0798,
+ 0x5a35, 0x11e6,
+ 0x5a3c, 0x0993,
+ 0x5a40, 0x11e3,
+ 0x5a41, 0x0fd2,
+ 0x5a46, 0x0d02,
+ 0x5a49, 0x11e5,
+ 0x5a5a, 0x0817,
+ 0x5a62, 0x11e8,
+ 0x5a66, 0x0dca,
+ 0x5a6a, 0x11e9,
+ 0x5a6c, 0x11e4,
+ 0x5a7f, 0x0ec7,
+ 0x5a92, 0x0d14,
+ 0x5a9a, 0x11ea,
+ 0x5a9b, 0x0da4,
+ 0x5abc, 0x11eb,
+ 0x5abd, 0x11ef,
+ 0x5abe, 0x11ec,
+ 0x5ac1, 0x0547,
+ 0x5ac2, 0x11ee,
+ 0x5ac9, 0x08e7,
+ 0x5acb, 0x11ed,
+ 0x5acc, 0x074f,
+ 0x5ad0, 0x11fb,
+ 0x5ad6, 0x11f4,
+ 0x5ad7, 0x11f1,
+ 0x5ae1, 0x0ba2,
+ 0x5ae3, 0x11f0,
+ 0x5ae6, 0x11f2,
+ 0x5ae9, 0x11f3,
+ 0x5afa, 0x11f5,
+ 0x5b09, 0x062e,
+ 0x5b0b, 0x11f8,
+ 0x5b0c, 0x11f7,
+ 0x5b16, 0x11f9,
+ 0x5b22, 0x09d6,
+ 0x5b2a, 0x11fc,
+ 0x5b2c, 0x0bf8,
+ 0x5b30, 0x04e7,
+ 0x5b32, 0x11fa,
+ 0x5b36, 0x11fd,
+ 0x5b3e, 0x11fe,
+ 0x5b40, 0x1201,
+ 0x5b43, 0x11ff,
+ 0x5b45, 0x1200,
+ 0x5b50, 0x08a0,
+ 0x5b51, 0x1202,
+ 0x5b54, 0x07b8,
+ 0x5b55, 0x1203,
+ 0x5b56, 0x20f0,
+ 0x5b57, 0x08c8,
+ 0x5b58, 0x0b18,
+ 0x5b5a, 0x1204,
+ 0x5b5c, 0x08a8,
+ 0x5b5d, 0x07b9,
+ 0x5b5f, 0x0ede,
+ 0x5b63, 0x0642,
+ 0x5b64, 0x077d,
+ 0x5b65, 0x1206,
+ 0x5b66, 0x05b6,
+ 0x5b69, 0x1207,
+ 0x5b6b, 0x0b19,
+ 0x5b70, 0x1208,
+ 0x5b71, 0x1230,
+ 0x5b73, 0x1209,
+ 0x5b75, 0x120a,
+ 0x5b78, 0x120b,
+ 0x5b7a, 0x120d,
+ 0x5b80, 0x120e,
+ 0x5b83, 0x120f,
+ 0x5b85, 0x0b50,
+ 0x5b87, 0x04c9,
+ 0x5b88, 0x0915,
+ 0x5b89, 0x0486,
+ 0x5b8b, 0x0ad9,
+ 0x5b8c, 0x05ec,
+ 0x5b8d, 0x08e1,
+ 0x5b8f, 0x07ba,
+ 0x5b95, 0x0c60,
+ 0x5b97, 0x092b,
+ 0x5b98, 0x05ed,
+ 0x5b99, 0x0ba6,
+ 0x5b9a, 0x0c06,
+ 0x5b9b, 0x047c,
+ 0x5b9c, 0x0653,
+ 0x5b9d, 0x0e45,
+ 0x5b9f, 0x08ee,
+ 0x5ba2, 0x066c,
+ 0x5ba3, 0x0a8f,
+ 0x5ba4, 0x08e8,
+ 0x5ba5, 0x0f12,
+ 0x5ba6, 0x1210,
+ 0x5bae, 0x0676,
+ 0x5bb0, 0x083b,
+ 0x5bb3, 0x0590,
+ 0x5bb4, 0x0505,
+ 0x5bb5, 0x0994,
+ 0x5bb6, 0x0548,
+ 0x5bb8, 0x1211,
+ 0x5bb9, 0x0f30,
+ 0x5bbf, 0x0953,
+ 0x5bc0, 0x20f1,
+ 0x5bc2, 0x0910,
+ 0x5bc3, 0x1212,
+ 0x5bc4, 0x062f,
+ 0x5bc5, 0x0caa,
+ 0x5bc6, 0x0eb5,
+ 0x5bc7, 0x1213,
+ 0x5bc9, 0x1214,
+ 0x5bcc, 0x0dcb,
+ 0x5bd0, 0x1216,
+ 0x5bd2, 0x05e4,
+ 0x5bd3, 0x06ef,
+ 0x5bd4, 0x1215,
+ 0x5bd8, 0x20f3,
+ 0x5bdb, 0x05ee,
+ 0x5bdd, 0x09f8,
+ 0x5bde, 0x121a,
+ 0x5bdf, 0x086f,
+ 0x5be1, 0x0549,
+ 0x5be2, 0x1219,
+ 0x5be4, 0x1217,
+ 0x5be5, 0x121b,
+ 0x5be6, 0x1218,
+ 0x5be7, 0x0ce1,
+ 0x5be8, 0x148e,
+ 0x5be9, 0x09f9,
+ 0x5beb, 0x121c,
+ 0x5bec, 0x20f4,
+ 0x5bee, 0x0f88,
+ 0x5bf0, 0x121d,
+ 0x5bf3, 0x121f,
+ 0x5bf5, 0x0bbc,
+ 0x5bf6, 0x121e,
+ 0x5bf8, 0x0a47,
+ 0x5bfa, 0x08c9,
+ 0x5bfe, 0x0b30,
+ 0x5bff, 0x0923,
+ 0x5c01, 0x0de7,
+ 0x5c02, 0x0a90,
+ 0x5c04, 0x08f9,
+ 0x5c05, 0x1220,
+ 0x5c06, 0x0995,
+ 0x5c07, 0x1221,
+ 0x5c09, 0x0497,
+ 0x5c0a, 0x0b1a,
+ 0x5c0b, 0x0a18,
+ 0x5c0d, 0x1223,
+ 0x5c0e, 0x0c8b,
+ 0x5c0f, 0x0996,
+ 0x5c11, 0x0997,
+ 0x5c13, 0x1224,
+ 0x5c16, 0x0a91,
+ 0x5c1a, 0x0998,
+ 0x5c1e, 0x20f5,
+ 0x5c20, 0x1225,
+ 0x5c22, 0x1226,
+ 0x5c24, 0x0eec,
+ 0x5c28, 0x1227,
+ 0x5c2d, 0x06be,
+ 0x5c31, 0x092c,
+ 0x5c38, 0x1228,
+ 0x5c3a, 0x0908,
+ 0x5c3b, 0x09f2,
+ 0x5c3c, 0x0ccc,
+ 0x5c3d, 0x0a1a,
+ 0x5c3e, 0x0d8c,
+ 0x5c3f, 0x0cd8,
+ 0x5c40, 0x06c1,
+ 0x5c41, 0x122a,
+ 0x5c45, 0x0689,
+ 0x5c46, 0x122b,
+ 0x5c48, 0x06f6,
+ 0x5c4a, 0x0ca7,
+ 0x5c4b, 0x0530,
+ 0x5c4d, 0x08a1,
+ 0x5c4e, 0x122c,
+ 0x5c4f, 0x122f,
+ 0x5c50, 0x122e,
+ 0x5c51, 0x06f5,
+ 0x5c53, 0x122d,
+ 0x5c55, 0x0c32,
+ 0x5c5b, 0x1e92,
+ 0x5c5e, 0x0b10,
+ 0x5c60, 0x0c45,
+ 0x5c61, 0x08f4,
+ 0x5c62, 0x1e0d,
+ 0x5c64, 0x0ada,
+ 0x5c65, 0x0f64,
+ 0x5c6c, 0x1231,
+ 0x5c6e, 0x1232,
+ 0x5c6f, 0x0cae,
+ 0x5c71, 0x0881,
+ 0x5c76, 0x1234,
+ 0x5c79, 0x1235,
+ 0x5c8c, 0x1236,
+ 0x5c90, 0x0630,
+ 0x5c91, 0x1237,
+ 0x5c94, 0x1238,
+ 0x5ca1, 0x052c,
+ 0x5ca6, 0x20f6,
+ 0x5ca8, 0x0abd,
+ 0x5ca9, 0x0620,
+ 0x5cab, 0x123a,
+ 0x5cac, 0x0eb4,
+ 0x5cb1, 0x0b32,
+ 0x5cb3, 0x05b7,
+ 0x5cb6, 0x123c,
+ 0x5cb7, 0x123e,
+ 0x5cb8, 0x061b,
+ 0x5cba, 0x20f7,
+ 0x5cbb, 0x123b,
+ 0x5cbc, 0x123d,
+ 0x5cbe, 0x1240,
+ 0x5cc5, 0x123f,
+ 0x5cc7, 0x1241,
+ 0x5cd9, 0x1242,
+ 0x5ce0, 0x0c95,
+ 0x5ce1, 0x06a6,
+ 0x5ce8, 0x0565,
+ 0x5ce9, 0x1243,
+ 0x5cea, 0x1248,
+ 0x5ced, 0x1246,
+ 0x5cef, 0x0e47,
+ 0x5cf0, 0x0e46,
+ 0x5cf5, 0x20f8,
+ 0x5cf6, 0x0c61,
+ 0x5cfa, 0x1245,
+ 0x5cfb, 0x095e,
+ 0x5cfd, 0x1244,
+ 0x5d07, 0x0a38,
+ 0x5d0b, 0x1249,
+ 0x5d0e, 0x085a,
+ 0x5d11, 0x124f,
+ 0x5d14, 0x1250,
+ 0x5d15, 0x124a,
+ 0x5d16, 0x0591,
+ 0x5d17, 0x124b,
+ 0x5d18, 0x1254,
+ 0x5d19, 0x1253,
+ 0x5d1a, 0x1252,
+ 0x5d1b, 0x124e,
+ 0x5d1f, 0x124d,
+ 0x5d22, 0x1251,
+ 0x5d27, 0x20f9,
+ 0x5d29, 0x0e48,
+ 0x5d42, 0x20fc,
+ 0x5d4b, 0x1258,
+ 0x5d4c, 0x1255,
+ 0x5d4e, 0x1257,
+ 0x5d50, 0x0f5c,
+ 0x5d52, 0x1256,
+ 0x5d53, 0x20fa,
+ 0x5d5c, 0x124c,
+ 0x5d69, 0x0a39,
+ 0x5d6c, 0x1259,
+ 0x5d6d, 0x20fd,
+ 0x5d6f, 0x0827,
+ 0x5d73, 0x125a,
+ 0x5d76, 0x125b,
+ 0x5d82, 0x125e,
+ 0x5d84, 0x125d,
+ 0x5d87, 0x125c,
+ 0x5d8b, 0x0c62,
+ 0x5d8c, 0x1247,
+ 0x5d90, 0x1264,
+ 0x5d9d, 0x1260,
+ 0x5da2, 0x125f,
+ 0x5dac, 0x1261,
+ 0x5dae, 0x1262,
+ 0x5db7, 0x1265,
+ 0x5db8, 0x20fe,
+ 0x5dba, 0x0fae,
+ 0x5dbc, 0x1266,
+ 0x5dbd, 0x1263,
+ 0x5dc9, 0x1267,
+ 0x5dcc, 0x061c,
+ 0x5dcd, 0x1268,
+ 0x5dd0, 0x2100,
+ 0x5dd2, 0x126a,
+ 0x5dd3, 0x1269,
+ 0x5dd6, 0x126b,
+ 0x5ddb, 0x126c,
+ 0x5ddd, 0x0a92,
+ 0x5dde, 0x092d,
+ 0x5de1, 0x096e,
+ 0x5de3, 0x0ae5,
+ 0x5de5, 0x07bb,
+ 0x5de6, 0x0828,
+ 0x5de7, 0x07bc,
+ 0x5de8, 0x068a,
+ 0x5deb, 0x126d,
+ 0x5dee, 0x0829,
+ 0x5df1, 0x077e,
+ 0x5df2, 0x126e,
+ 0x5df3, 0x0eb2,
+ 0x5df4, 0x0cf9,
+ 0x5df5, 0x126f,
+ 0x5df7, 0x07bd,
+ 0x5dfb, 0x05e8,
+ 0x5dfd, 0x0b65,
+ 0x5dfe, 0x06ca,
+ 0x5e02, 0x08a2,
+ 0x5e03, 0x0dcd,
+ 0x5e06, 0x0d55,
+ 0x5e0b, 0x1270,
+ 0x5e0c, 0x0631,
+ 0x5e11, 0x1273,
+ 0x5e16, 0x0bbd,
+ 0x5e19, 0x1272,
+ 0x5e1a, 0x1271,
+ 0x5e1b, 0x1274,
+ 0x5e1d, 0x0c07,
+ 0x5e25, 0x0a29,
+ 0x5e2b, 0x08a3,
+ 0x5e2d, 0x0a6e,
+ 0x5e2f, 0x0b33,
+ 0x5e30, 0x063c,
+ 0x5e33, 0x0bbe,
+ 0x5e36, 0x1275,
+ 0x5e38, 0x09d7,
+ 0x5e3d, 0x0e67,
+ 0x5e40, 0x1279,
+ 0x5e43, 0x1278,
+ 0x5e44, 0x1277,
+ 0x5e45, 0x0def,
+ 0x5e47, 0x1280,
+ 0x5e4c, 0x0e88,
+ 0x5e4e, 0x127a,
+ 0x5e54, 0x127c,
+ 0x5e55, 0x0e99,
+ 0x5e57, 0x127b,
+ 0x5e5f, 0x127d,
+ 0x5e61, 0x0d3c,
+ 0x5e62, 0x127e,
+ 0x5e63, 0x0e0e,
+ 0x5e64, 0x127f,
+ 0x5e72, 0x05ef,
+ 0x5e73, 0x0e0f,
+ 0x5e74, 0x0ce5,
+ 0x5e75, 0x1281,
+ 0x5e78, 0x07be,
+ 0x5e79, 0x05f0,
+ 0x5e7a, 0x1283,
+ 0x5e7b, 0x076c,
+ 0x5e7c, 0x0f2e,
+ 0x5e7d, 0x0f13,
+ 0x5e7e, 0x0632,
+ 0x5e7f, 0x1285,
+ 0x5e81, 0x0bbf,
+ 0x5e83, 0x07bf,
+ 0x5e84, 0x0999,
+ 0x5e87, 0x0d73,
+ 0x5e8a, 0x099a,
+ 0x5e8f, 0x0982,
+ 0x5e95, 0x0c08,
+ 0x5e96, 0x0e49,
+ 0x5e97, 0x0c33,
+ 0x5e9a, 0x07c0,
+ 0x5e9c, 0x0dce,
+ 0x5ea0, 0x1286,
+ 0x5ea6, 0x0c53,
+ 0x5ea7, 0x0832,
+ 0x5eab, 0x077f,
+ 0x5ead, 0x0c09,
+ 0x5eb5, 0x0487,
+ 0x5eb6, 0x0978,
+ 0x5eb7, 0x07c1,
+ 0x5eb8, 0x0f31,
+ 0x5ec1, 0x1287,
+ 0x5ec3, 0x0d07,
+ 0x5ec8, 0x1289,
+ 0x5ec9, 0x0fbf,
+ 0x5eca, 0x0fd3,
+ 0x5ecf, 0x128b,
+ 0x5ed0, 0x128a,
+ 0x5ed3, 0x05a5,
+ 0x5ed6, 0x128c,
+ 0x5eda, 0x128f,
+ 0x5edd, 0x128e,
+ 0x5edf, 0x0db2,
+ 0x5ee0, 0x099b,
+ 0x5ee1, 0x1292,
+ 0x5ee2, 0x1291,
+ 0x5ee3, 0x128d,
+ 0x5ee8, 0x1293,
+ 0x5eec, 0x1295,
+ 0x5ef0, 0x1298,
+ 0x5ef1, 0x1296,
+ 0x5ef3, 0x1297,
+ 0x5ef4, 0x1299,
+ 0x5ef6, 0x0506,
+ 0x5ef7, 0x0c0a,
+ 0x5ef8, 0x129a,
+ 0x5efa, 0x0750,
+ 0x5efb, 0x0576,
+ 0x5efc, 0x0cec,
+ 0x5efe, 0x129b,
+ 0x5eff, 0x0cd3,
+ 0x5f01, 0x0e2b,
+ 0x5f03, 0x129c,
+ 0x5f04, 0x0fd4,
+ 0x5f09, 0x129d,
+ 0x5f0a, 0x0e10,
+ 0x5f0b, 0x12a0,
+ 0x5f0c, 0x0ffa,
+ 0x5f0d, 0x100a,
+ 0x5f0f, 0x08dc,
+ 0x5f10, 0x0ccd,
+ 0x5f11, 0x12a1,
+ 0x5f13, 0x0677,
+ 0x5f14, 0x0bc0,
+ 0x5f15, 0x04be,
+ 0x5f16, 0x12a2,
+ 0x5f17, 0x0df6,
+ 0x5f18, 0x07c2,
+ 0x5f1b, 0x0b8e,
+ 0x5f1f, 0x0c0b,
+ 0x5f21, 0x2101,
+ 0x5f25, 0x0efb,
+ 0x5f26, 0x076d,
+ 0x5f27, 0x0780,
+ 0x5f29, 0x12a3,
+ 0x5f2d, 0x12a4,
+ 0x5f2f, 0x12aa,
+ 0x5f31, 0x0911,
+ 0x5f34, 0x2102,
+ 0x5f35, 0x0bc1,
+ 0x5f37, 0x06a7,
+ 0x5f38, 0x12a5,
+ 0x5f3c, 0x0d9d,
+ 0x5f3e, 0x0b84,
+ 0x5f41, 0x12a6,
+ 0x5f45, 0x20b2,
+ 0x5f48, 0x12a7,
+ 0x5f4a, 0x06a8,
+ 0x5f4c, 0x12a8,
+ 0x5f4e, 0x12a9,
+ 0x5f51, 0x12ab,
+ 0x5f53, 0x0c70,
+ 0x5f56, 0x12ac,
+ 0x5f59, 0x12ae,
+ 0x5f5c, 0x129f,
+ 0x5f5d, 0x129e,
+ 0x5f61, 0x12af,
+ 0x5f62, 0x0717,
+ 0x5f66, 0x0d99,
+ 0x5f67, 0x2103,
+ 0x5f69, 0x083c,
+ 0x5f6a, 0x0da9,
+ 0x5f6b, 0x0bc2,
+ 0x5f6c, 0x0dbd,
+ 0x5f6d, 0x12b0,
+ 0x5f70, 0x099c,
+ 0x5f71, 0x04e8,
+ 0x5f73, 0x12b1,
+ 0x5f77, 0x12b2,
+ 0x5f79, 0x0efe,
+ 0x5f7c, 0x0d74,
+ 0x5f7f, 0x12b5,
+ 0x5f80, 0x051f,
+ 0x5f81, 0x0a50,
+ 0x5f82, 0x12b4,
+ 0x5f83, 0x12b3,
+ 0x5f84, 0x0718,
+ 0x5f85, 0x0b34,
+ 0x5f87, 0x12b9,
+ 0x5f88, 0x12b7,
+ 0x5f8a, 0x12b6,
+ 0x5f8b, 0x0f6f,
+ 0x5f8c, 0x0799,
+ 0x5f90, 0x0983,
+ 0x5f91, 0x12b8,
+ 0x5f92, 0x0c46,
+ 0x5f93, 0x0948,
+ 0x5f97, 0x0c98,
+ 0x5f98, 0x12bc,
+ 0x5f99, 0x12bb,
+ 0x5f9e, 0x12ba,
+ 0x5fa0, 0x12bd,
+ 0x5fa1, 0x079a,
+ 0x5fa8, 0x12be,
+ 0x5fa9, 0x0dee,
+ 0x5faa, 0x0965,
+ 0x5fad, 0x12bf,
+ 0x5fae, 0x0d8d,
+ 0x5fb3, 0x0c99,
+ 0x5fb4, 0x0bc3,
+ 0x5fb7, 0x2104,
+ 0x5fb9, 0x0c2a,
+ 0x5fbc, 0x12c0,
+ 0x5fbd, 0x0645,
+ 0x5fc3, 0x09fa,
+ 0x5fc5, 0x0d9e,
+ 0x5fcc, 0x0633,
+ 0x5fcd, 0x0cdc,
+ 0x5fd6, 0x12c1,
+ 0x5fd7, 0x08a4,
+ 0x5fd8, 0x0e68,
+ 0x5fdc, 0x0520,
+ 0x5fdd, 0x12c6,
+ 0x5fde, 0x2105,
+ 0x5fe0, 0x0ba7,
+ 0x5fe4, 0x12c3,
+ 0x5feb, 0x0577,
+ 0x5ff0, 0x12f6,
+ 0x5ff1, 0x12c5,
+ 0x5ff5, 0x0ce6,
+ 0x5ff8, 0x12c4,
+ 0x5ffb, 0x12c2,
+ 0x5ffd, 0x080c,
+ 0x5fff, 0x12c8,
+ 0x600e, 0x12ce,
+ 0x600f, 0x12d4,
+ 0x6010, 0x12cc,
+ 0x6012, 0x0c56,
+ 0x6015, 0x12d1,
+ 0x6016, 0x0dcf,
+ 0x6019, 0x12cb,
+ 0x601b, 0x12d0,
+ 0x601c, 0x0faf,
+ 0x601d, 0x08a5,
+ 0x6020, 0x0b35,
+ 0x6021, 0x12c9,
+ 0x6025, 0x0678,
+ 0x6026, 0x12d3,
+ 0x6027, 0x0a51,
+ 0x6028, 0x0507,
+ 0x6029, 0x12cd,
+ 0x602a, 0x0578,
+ 0x602b, 0x12d2,
+ 0x602f, 0x06a9,
+ 0x6031, 0x12cf,
+ 0x603a, 0x12d5,
+ 0x6041, 0x12d7,
+ 0x6042, 0x12e1,
+ 0x6043, 0x12df,
+ 0x6046, 0x12dc,
+ 0x604a, 0x12db,
+ 0x604b, 0x0fc0,
+ 0x604d, 0x12dd,
+ 0x6050, 0x06aa,
+ 0x6052, 0x07c3,
+ 0x6055, 0x0984,
+ 0x6059, 0x12e4,
+ 0x605a, 0x12d6,
+ 0x605d, 0x2106,
+ 0x605f, 0x12da,
+ 0x6060, 0x12ca,
+ 0x6062, 0x057a,
+ 0x6063, 0x12de,
+ 0x6064, 0x12e0,
+ 0x6065, 0x0b8f,
+ 0x6068, 0x0818,
+ 0x6069, 0x0538,
+ 0x606a, 0x12d8,
+ 0x606b, 0x12e3,
+ 0x606c, 0x12e2,
+ 0x606d, 0x06ab,
+ 0x606f, 0x0b09,
+ 0x6070, 0x05c4,
+ 0x6075, 0x0719,
+ 0x6077, 0x12d9,
+ 0x6081, 0x12e5,
+ 0x6083, 0x12e8,
+ 0x6084, 0x12ea,
+ 0x6085, 0x2107,
+ 0x6089, 0x08e9,
+ 0x608a, 0x2108,
+ 0x608b, 0x12f0,
+ 0x608c, 0x0c0c,
+ 0x608d, 0x12e6,
+ 0x6092, 0x12ee,
+ 0x6094, 0x0579,
+ 0x6096, 0x12ec,
+ 0x609a, 0x12e9,
+ 0x609b, 0x12eb,
+ 0x609f, 0x079b,
+ 0x60a0, 0x0f14,
+ 0x60a3, 0x05f1,
+ 0x60a6, 0x04fb,
+ 0x60a7, 0x12ef,
+ 0x60a9, 0x0cf0,
+ 0x60aa, 0x0471,
+ 0x60b2, 0x0d75,
+ 0x60b3, 0x12c7,
+ 0x60b4, 0x12f5,
+ 0x60b5, 0x12f9,
+ 0x60b6, 0x0ef1,
+ 0x60b8, 0x12f2,
+ 0x60bc, 0x0c63,
+ 0x60bd, 0x12f7,
+ 0x60c5, 0x09d8,
+ 0x60c6, 0x12f8,
+ 0x60c7, 0x0caf,
+ 0x60d1, 0x0fed,
+ 0x60d3, 0x12f4,
+ 0x60d5, 0x210a,
+ 0x60d8, 0x12fa,
+ 0x60da, 0x080d,
+ 0x60dc, 0x0a6f,
+ 0x60de, 0x2109,
+ 0x60df, 0x0498,
+ 0x60e0, 0x12f3,
+ 0x60e1, 0x12f1,
+ 0x60e3, 0x0adc,
+ 0x60e7, 0x12e7,
+ 0x60e8, 0x0882,
+ 0x60f0, 0x0b26,
+ 0x60f1, 0x1306,
+ 0x60f2, 0x210c,
+ 0x60f3, 0x0add,
+ 0x60f4, 0x1301,
+ 0x60f6, 0x12fe,
+ 0x60f9, 0x0912,
+ 0x60fa, 0x1302,
+ 0x60fb, 0x1305,
+ 0x6100, 0x1300,
+ 0x6101, 0x092f,
+ 0x6103, 0x1303,
+ 0x6106, 0x12fd,
+ 0x6108, 0x0f08,
+ 0x6109, 0x0f07,
+ 0x610d, 0x1307,
+ 0x610f, 0x0499,
+ 0x6111, 0x210d,
+ 0x6115, 0x12fc,
+ 0x611a, 0x06ea,
+ 0x611b, 0x046a,
+ 0x611f, 0x05f2,
+ 0x6120, 0x210b,
+ 0x6121, 0x1304,
+ 0x6127, 0x130c,
+ 0x6128, 0x130b,
+ 0x612c, 0x1310,
+ 0x6130, 0x210f,
+ 0x6134, 0x1311,
+ 0x6137, 0x210e,
+ 0x613c, 0x130f,
+ 0x613d, 0x1312,
+ 0x613e, 0x130a,
+ 0x613f, 0x130e,
+ 0x6142, 0x1313,
+ 0x6144, 0x1314,
+ 0x6147, 0x1309,
+ 0x6148, 0x08ca,
+ 0x614a, 0x130d,
+ 0x614b, 0x0b36,
+ 0x614c, 0x07c4,
+ 0x614d, 0x12fb,
+ 0x614e, 0x09fb,
+ 0x6153, 0x1321,
+ 0x6155, 0x0e39,
+ 0x6158, 0x1317,
+ 0x615d, 0x1320,
+ 0x615f, 0x131f,
+ 0x6162, 0x0eab,
+ 0x6163, 0x05f3,
+ 0x6165, 0x131d,
+ 0x6167, 0x071b,
+ 0x6168, 0x0592,
+ 0x616b, 0x131a,
+ 0x616e, 0x0f80,
+ 0x616f, 0x131c,
+ 0x6170, 0x049a,
+ 0x6171, 0x131e,
+ 0x6173, 0x1315,
+ 0x6174, 0x131b,
+ 0x6175, 0x1322,
+ 0x6176, 0x071a,
+ 0x6177, 0x1316,
+ 0x617e, 0x0f47,
+ 0x6182, 0x0f15,
+ 0x6187, 0x1325,
+ 0x618a, 0x1329,
+ 0x618e, 0x0b00,
+ 0x6190, 0x0fc1,
+ 0x6191, 0x132a,
+ 0x6194, 0x1327,
+ 0x6196, 0x1324,
+ 0x6198, 0x2110,
+ 0x6199, 0x1323,
+ 0x619a, 0x1328,
+ 0x61a4, 0x0e00,
+ 0x61a7, 0x0c8c,
+ 0x61a9, 0x071c,
+ 0x61ab, 0x132b,
+ 0x61ac, 0x1326,
+ 0x61ae, 0x132c,
+ 0x61b2, 0x0751,
+ 0x61b6, 0x0531,
+ 0x61ba, 0x1334,
+ 0x61be, 0x05f4,
+ 0x61c3, 0x1332,
+ 0x61c6, 0x1333,
+ 0x61c7, 0x0819,
+ 0x61c8, 0x1331,
+ 0x61c9, 0x132f,
+ 0x61ca, 0x132e,
+ 0x61cb, 0x1335,
+ 0x61cc, 0x132d,
+ 0x61cd, 0x1337,
+ 0x61d0, 0x057b,
+ 0x61e3, 0x1339,
+ 0x61e6, 0x1338,
+ 0x61f2, 0x0bc4,
+ 0x61f4, 0x133c,
+ 0x61f6, 0x133a,
+ 0x61f7, 0x1330,
+ 0x61f8, 0x0752,
+ 0x61fa, 0x133b,
+ 0x61fc, 0x133f,
+ 0x61fd, 0x133e,
+ 0x61fe, 0x1340,
+ 0x61ff, 0x133d,
+ 0x6200, 0x1341,
+ 0x6208, 0x1342,
+ 0x620a, 0x0e3a,
+ 0x620c, 0x1345,
+ 0x620d, 0x1344,
+ 0x620e, 0x0949,
+ 0x6210, 0x0a52,
+ 0x6211, 0x0566,
+ 0x6212, 0x057c,
+ 0x6213, 0x2111,
+ 0x6214, 0x1346,
+ 0x6216, 0x0483,
+ 0x621a, 0x0a70,
+ 0x621b, 0x1347,
+ 0x621d, 0x1a64,
+ 0x621e, 0x1348,
+ 0x621f, 0x0737,
+ 0x6221, 0x1349,
+ 0x6226, 0x0a93,
+ 0x622a, 0x134a,
+ 0x622e, 0x134b,
+ 0x622f, 0x0654,
+ 0x6230, 0x134c,
+ 0x6232, 0x134d,
+ 0x6234, 0x0b37,
+ 0x6238, 0x0781,
+ 0x623b, 0x0eed,
+ 0x623f, 0x0e6a,
+ 0x6240, 0x0974,
+ 0x6241, 0x134f,
+ 0x6247, 0x0a94,
+ 0x6248, 0x1b1a,
+ 0x6249, 0x0d76,
+ 0x624b, 0x0916,
+ 0x624d, 0x083d,
+ 0x624e, 0x1350,
+ 0x6253, 0x0b27,
+ 0x6255, 0x0df7,
+ 0x6258, 0x0b51,
+ 0x625b, 0x1353,
+ 0x625e, 0x1351,
+ 0x6260, 0x1354,
+ 0x6263, 0x1352,
+ 0x6268, 0x1355,
+ 0x626e, 0x0e01,
+ 0x6271, 0x047b,
+ 0x6276, 0x0dd0,
+ 0x6279, 0x0d77,
+ 0x627c, 0x1356,
+ 0x627e, 0x1359,
+ 0x627f, 0x099d,
+ 0x6280, 0x0655,
+ 0x6282, 0x1357,
+ 0x6283, 0x135e,
+ 0x6284, 0x099e,
+ 0x6289, 0x1358,
+ 0x628a, 0x0cfa,
+ 0x6291, 0x0f48,
+ 0x6292, 0x135a,
+ 0x6294, 0x135f,
+ 0x6295, 0x0c64,
+ 0x6296, 0x135c,
+ 0x6297, 0x07c5,
+ 0x6298, 0x0a82,
+ 0x629b, 0x136d,
+ 0x629c, 0x0d48,
+ 0x629e, 0x0b52,
+ 0x62a6, 0x2112,
+ 0x62ab, 0x0d78,
+ 0x62ac, 0x13b2,
+ 0x62b1, 0x0e4a,
+ 0x62b5, 0x0c0d,
+ 0x62b9, 0x0ea3,
+ 0x62bb, 0x1362,
+ 0x62bc, 0x0521,
+ 0x62bd, 0x0ba8,
+ 0x62c2, 0x136b,
+ 0x62c5, 0x0b72,
+ 0x62c6, 0x1365,
+ 0x62c7, 0x136c,
+ 0x62c8, 0x1367,
+ 0x62c9, 0x136e,
+ 0x62ca, 0x136a,
+ 0x62cc, 0x1369,
+ 0x62cd, 0x0d25,
+ 0x62cf, 0x1363,
+ 0x62d0, 0x057d,
+ 0x62d1, 0x1361,
+ 0x62d2, 0x068b,
+ 0x62d3, 0x0b53,
+ 0x62d4, 0x135d,
+ 0x62d7, 0x1360,
+ 0x62d8, 0x07c6,
+ 0x62d9, 0x0a7f,
+ 0x62db, 0x099f,
+ 0x62dc, 0x1368,
+ 0x62dd, 0x0d08,
+ 0x62e0, 0x068c,
+ 0x62e1, 0x05a6,
+ 0x62ec, 0x05c5,
+ 0x62ed, 0x09e7,
+ 0x62ee, 0x1370,
+ 0x62ef, 0x1375,
+ 0x62f1, 0x1371,
+ 0x62f3, 0x0753,
+ 0x62f5, 0x1376,
+ 0x62f6, 0x0870,
+ 0x62f7, 0x07fb,
+ 0x62fe, 0x0930,
+ 0x62ff, 0x1364,
+ 0x6301, 0x08cb,
+ 0x6302, 0x1373,
+ 0x6307, 0x08a6,
+ 0x6308, 0x1374,
+ 0x6309, 0x0488,
+ 0x630c, 0x136f,
+ 0x6311, 0x0bc5,
+ 0x6319, 0x068d,
+ 0x631f, 0x06ac,
+ 0x6327, 0x1372,
+ 0x6328, 0x046b,
+ 0x632b, 0x0833,
+ 0x632f, 0x09fc,
+ 0x633a, 0x0c0e,
+ 0x633d, 0x0d68,
+ 0x633e, 0x1378,
+ 0x633f, 0x0ae0,
+ 0x6349, 0x0b0a,
+ 0x634c, 0x0879,
+ 0x634d, 0x1379,
+ 0x634f, 0x137b,
+ 0x6350, 0x1377,
+ 0x6355, 0x0e31,
+ 0x6357, 0x0bd9,
+ 0x635c, 0x0ade,
+ 0x6367, 0x0e4b,
+ 0x6368, 0x08fa,
+ 0x6369, 0x1387,
+ 0x636b, 0x1386,
+ 0x636e, 0x0a3e,
+ 0x6372, 0x0754,
+ 0x6376, 0x1380,
+ 0x6377, 0x09a1,
+ 0x637a, 0x0cc0,
+ 0x637b, 0x0ce7,
+ 0x6380, 0x137e,
+ 0x6383, 0x0adf,
+ 0x6388, 0x0924,
+ 0x6389, 0x1383,
+ 0x638c, 0x09a0,
+ 0x638e, 0x137d,
+ 0x638f, 0x1382,
+ 0x6392, 0x0d09,
+ 0x6396, 0x137c,
+ 0x6398, 0x06f7,
+ 0x639b, 0x05bb,
+ 0x639f, 0x1384,
+ 0x63a0, 0x0f73,
+ 0x63a1, 0x083e,
+ 0x63a2, 0x0b73,
+ 0x63a3, 0x1381,
+ 0x63a5, 0x0a80,
+ 0x63a7, 0x07c7,
+ 0x63a8, 0x0a2a,
+ 0x63a9, 0x0508,
+ 0x63aa, 0x0abe,
+ 0x63ab, 0x137f,
+ 0x63ac, 0x065f,
+ 0x63b2, 0x071d,
+ 0x63b4, 0x0beb,
+ 0x63b5, 0x1385,
+ 0x63bb, 0x0ae1,
+ 0x63be, 0x1388,
+ 0x63c0, 0x138a,
+ 0x63c3, 0x0b17,
+ 0x63c4, 0x1390,
+ 0x63c6, 0x138b,
+ 0x63c9, 0x138d,
+ 0x63cf, 0x0db3,
+ 0x63d0, 0x0c0f,
+ 0x63d2, 0x138e,
+ 0x63d6, 0x0f16,
+ 0x63da, 0x0f32,
+ 0x63db, 0x05f5,
+ 0x63e1, 0x0472,
+ 0x63e3, 0x138c,
+ 0x63e9, 0x1389,
+ 0x63ee, 0x0634,
+ 0x63f4, 0x0509,
+ 0x63f5, 0x2113,
+ 0x63f6, 0x138f,
+ 0x63fa, 0x0f33,
+ 0x6406, 0x1393,
+ 0x640d, 0x0b1b,
+ 0x640f, 0x139a,
+ 0x6413, 0x1394,
+ 0x6414, 0x1e2c,
+ 0x6416, 0x1391,
+ 0x6417, 0x1398,
+ 0x641c, 0x137a,
+ 0x6426, 0x1395,
+ 0x6428, 0x1399,
+ 0x642c, 0x0d56,
+ 0x642d, 0x0c65,
+ 0x6434, 0x1392,
+ 0x6436, 0x1396,
+ 0x643a, 0x071e,
+ 0x643e, 0x0861,
+ 0x6442, 0x0a81,
+ 0x644e, 0x139e,
+ 0x6451, 0x1e43,
+ 0x6458, 0x0c20,
+ 0x6460, 0x2114,
+ 0x6467, 0x139b,
+ 0x6469, 0x0e8e,
+ 0x646f, 0x139c,
+ 0x6476, 0x139d,
+ 0x6478, 0x0eda,
+ 0x647a, 0x0a46,
+ 0x6483, 0x0738,
+ 0x6488, 0x13a4,
+ 0x6492, 0x0883,
+ 0x6493, 0x13a1,
+ 0x6495, 0x13a0,
+ 0x649a, 0x0ce8,
+ 0x649d, 0x2115,
+ 0x649e, 0x0c8d,
+ 0x64a4, 0x0c2b,
+ 0x64a5, 0x13a2,
+ 0x64a9, 0x13a3,
+ 0x64ab, 0x0de1,
+ 0x64ad, 0x0cfb,
+ 0x64ae, 0x0871,
+ 0x64b0, 0x0a95,
+ 0x64b2, 0x0e7e,
+ 0x64b9, 0x05a7,
+ 0x64bb, 0x13aa,
+ 0x64bc, 0x13a5,
+ 0x64c1, 0x0f34,
+ 0x64c2, 0x13ac,
+ 0x64c5, 0x13a8,
+ 0x64c7, 0x13a9,
+ 0x64cd, 0x0ae2,
+ 0x64ce, 0x2116,
+ 0x64d2, 0x13a7,
+ 0x64d4, 0x1366,
+ 0x64d8, 0x13ab,
+ 0x64da, 0x13a6,
+ 0x64e0, 0x13b0,
+ 0x64e2, 0x0c21,
+ 0x64e3, 0x13b3,
+ 0x64e6, 0x0872,
+ 0x64e7, 0x13ae,
+ 0x64ec, 0x0656,
+ 0x64ef, 0x13b4,
+ 0x64f1, 0x13ad,
+ 0x64f2, 0x13b8,
+ 0x64f4, 0x13b7,
+ 0x64f6, 0x13b6,
+ 0x64fa, 0x13b9,
+ 0x64fd, 0x13bb,
+ 0x64fe, 0x09d9,
+ 0x6500, 0x13ba,
+ 0x6505, 0x13be,
+ 0x6518, 0x13bc,
+ 0x651c, 0x13bd,
+ 0x651d, 0x1397,
+ 0x6522, 0x1e97,
+ 0x6523, 0x13c0,
+ 0x6524, 0x13bf,
+ 0x652a, 0x139f,
+ 0x652b, 0x13c1,
+ 0x652c, 0x13b5,
+ 0x652f, 0x08a7,
+ 0x6534, 0x13c2,
+ 0x6536, 0x13c5,
+ 0x6537, 0x13c4,
+ 0x6538, 0x13c6,
+ 0x6539, 0x057e,
+ 0x653b, 0x07c8,
+ 0x653e, 0x0e4c,
+ 0x653f, 0x0a53,
+ 0x6545, 0x0782,
+ 0x6548, 0x13c8,
+ 0x654d, 0x13cb,
+ 0x654e, 0x2117,
+ 0x654f, 0x0dc4,
+ 0x6551, 0x0679,
+ 0x6555, 0x13ca,
+ 0x6556, 0x13c9,
+ 0x6557, 0x0d0a,
+ 0x6558, 0x13cc,
+ 0x6559, 0x06ad,
+ 0x655d, 0x13ce,
+ 0x655e, 0x13cd,
+ 0x6562, 0x05f6,
+ 0x6563, 0x0884,
+ 0x6566, 0x0cb0,
+ 0x656c, 0x071f,
+ 0x6570, 0x0a3a,
+ 0x6572, 0x13cf,
+ 0x6574, 0x0a54,
+ 0x6575, 0x0c22,
+ 0x6577, 0x0dd1,
+ 0x6578, 0x13d0,
+ 0x6582, 0x13d1,
+ 0x6587, 0x0e08,
+ 0x6588, 0x120c,
+ 0x6589, 0x0a6a,
+ 0x658c, 0x0dbe,
+ 0x658e, 0x0848,
+ 0x6590, 0x0d79,
+ 0x6591, 0x0d57,
+ 0x6597, 0x0c47,
+ 0x6599, 0x0f89,
+ 0x659b, 0x13d4,
+ 0x659c, 0x08fc,
+ 0x659f, 0x13d5,
+ 0x65a1, 0x047a,
+ 0x65a4, 0x06cc,
+ 0x65a5, 0x0a71,
+ 0x65a7, 0x0dd2,
+ 0x65ab, 0x13d6,
+ 0x65ac, 0x0890,
+ 0x65ad, 0x0b85,
+ 0x65af, 0x08a9,
+ 0x65b0, 0x09fd,
+ 0x65b7, 0x13d7,
+ 0x65b9, 0x0e4d,
+ 0x65bc, 0x0519,
+ 0x65bd, 0x08aa,
+ 0x65c1, 0x13da,
+ 0x65c3, 0x13d8,
+ 0x65c4, 0x13db,
+ 0x65c5, 0x0f81,
+ 0x65c6, 0x13d9,
+ 0x65cb, 0x0a9f,
+ 0x65cc, 0x13dc,
+ 0x65cf, 0x0b12,
+ 0x65d2, 0x13dd,
+ 0x65d7, 0x0636,
+ 0x65d9, 0x13df,
+ 0x65db, 0x13de,
+ 0x65e0, 0x13e0,
+ 0x65e2, 0x0637,
+ 0x65e5, 0x0cd4,
+ 0x65e6, 0x0b74,
+ 0x65e7, 0x0686,
+ 0x65e8, 0x08ab,
+ 0x65e9, 0x0ae3,
+ 0x65ec, 0x0966,
+ 0x65ed, 0x0474,
+ 0x65f1, 0x13e2,
+ 0x65fa, 0x0522,
+ 0x65fb, 0x13e6,
+ 0x6600, 0x2118,
+ 0x6602, 0x07c9,
+ 0x6603, 0x13e5,
+ 0x6606, 0x081b,
+ 0x6607, 0x09a2,
+ 0x6609, 0x211a,
+ 0x660a, 0x13e4,
+ 0x660c, 0x09a3,
+ 0x660e, 0x0ecc,
+ 0x660f, 0x081a,
+ 0x6613, 0x049b,
+ 0x6614, 0x0a72,
+ 0x6615, 0x2119,
+ 0x661c, 0x13eb,
+ 0x661e, 0x211c,
+ 0x661f, 0x0a55,
+ 0x6620, 0x04e9,
+ 0x6624, 0x211d,
+ 0x6625, 0x095f,
+ 0x6627, 0x0e94,
+ 0x6628, 0x0862,
+ 0x662d, 0x09a4,
+ 0x662e, 0x211b,
+ 0x662f, 0x0a4b,
+ 0x6631, 0x20ae,
+ 0x6634, 0x13ea,
+ 0x6635, 0x13e8,
+ 0x663b, 0x1e00,
+ 0x663c, 0x0ba9,
+ 0x663f, 0x1409,
+ 0x6641, 0x13ef,
+ 0x6642, 0x08cc,
+ 0x6643, 0x07ca,
+ 0x6644, 0x13ed,
+ 0x6649, 0x13ee,
+ 0x664b, 0x09fe,
+ 0x664f, 0x13ec,
+ 0x6652, 0x087d,
+ 0x6657, 0x211f,
+ 0x6659, 0x2120,
+ 0x665d, 0x13f1,
+ 0x665e, 0x13f0,
+ 0x665f, 0x13f5,
+ 0x6662, 0x13f6,
+ 0x6664, 0x13f2,
+ 0x6665, 0x211e,
+ 0x6666, 0x0580,
+ 0x6667, 0x13f3,
+ 0x6669, 0x0d69,
+ 0x666e, 0x0dd3,
+ 0x666f, 0x0720,
+ 0x6670, 0x13f7,
+ 0x6673, 0x2122,
+ 0x6674, 0x0a56,
+ 0x6676, 0x09a5,
+ 0x667a, 0x0b90,
+ 0x6681, 0x06bf,
+ 0x6683, 0x13f8,
+ 0x6684, 0x13fc,
+ 0x6687, 0x054b,
+ 0x6688, 0x13f9,
+ 0x6689, 0x13fb,
+ 0x668e, 0x13fa,
+ 0x6691, 0x0975,
+ 0x6696, 0x0b86,
+ 0x6697, 0x0489,
+ 0x6698, 0x13fd,
+ 0x6699, 0x2123,
+ 0x669d, 0x13fe,
+ 0x66a0, 0x2124,
+ 0x66a2, 0x0bc6,
+ 0x66a6, 0x0fb9,
+ 0x66ab, 0x0891,
+ 0x66ae, 0x0e3b,
+ 0x66b2, 0x2125,
+ 0x66b4, 0x0e6b,
+ 0x66b8, 0x1405,
+ 0x66b9, 0x1400,
+ 0x66bc, 0x1403,
+ 0x66be, 0x1402,
+ 0x66bf, 0x2126,
+ 0x66c1, 0x13ff,
+ 0x66c4, 0x1404,
+ 0x66c7, 0x0cb6,
+ 0x66c9, 0x1401,
+ 0x66d6, 0x1406,
+ 0x66d9, 0x0976,
+ 0x66da, 0x1407,
+ 0x66dc, 0x0f35,
+ 0x66dd, 0x0d2e,
+ 0x66e0, 0x1408,
+ 0x66e6, 0x140a,
+ 0x66e9, 0x140b,
+ 0x66f0, 0x140c,
+ 0x66f2, 0x06c2,
+ 0x66f3, 0x04ea,
+ 0x66f4, 0x07cb,
+ 0x66f5, 0x140d,
+ 0x66f7, 0x140e,
+ 0x66f8, 0x097b,
+ 0x66f9, 0x0ae4,
+ 0x66fa, 0x2127,
+ 0x66fb, 0x20b1,
+ 0x66fc, 0x10ed,
+ 0x66fd, 0x0ac0,
+ 0x66fe, 0x0abf,
+ 0x66ff, 0x0b38,
+ 0x6700, 0x0837,
+ 0x6703, 0x104b,
+ 0x6708, 0x0744,
+ 0x6709, 0x0f17,
+ 0x670b, 0x0e4e,
+ 0x670d, 0x0df0,
+ 0x670e, 0x2128,
+ 0x670f, 0x140f,
+ 0x6714, 0x0863,
+ 0x6715, 0x0bdb,
+ 0x6716, 0x1410,
+ 0x6717, 0x0fd5,
+ 0x671b, 0x0e6c,
+ 0x671d, 0x0bc7,
+ 0x671e, 0x1411,
+ 0x671f, 0x0638,
+ 0x6726, 0x1412,
+ 0x6728, 0x0ee6,
+ 0x672a, 0x0eb0,
+ 0x672b, 0x0ea4,
+ 0x672c, 0x0e8a,
+ 0x672d, 0x0873,
+ 0x672e, 0x1415,
+ 0x6731, 0x0917,
+ 0x6734, 0x0e7f,
+ 0x6736, 0x1417,
+ 0x6737, 0x141a,
+ 0x6738, 0x1419,
+ 0x673a, 0x0635,
+ 0x673d, 0x067a,
+ 0x673f, 0x1416,
+ 0x6741, 0x1418,
+ 0x6746, 0x141b,
+ 0x6749, 0x0a3f,
+ 0x674e, 0x0f65,
+ 0x674f, 0x048d,
+ 0x6750, 0x0850,
+ 0x6751, 0x0b1c,
+ 0x6753, 0x0909,
+ 0x6756, 0x09db,
+ 0x6759, 0x141e,
+ 0x675c, 0x0c48,
+ 0x675e, 0x141c,
+ 0x675f, 0x0b0b,
+ 0x6760, 0x141d,
+ 0x6761, 0x09da,
+ 0x6762, 0x0ee9,
+ 0x6763, 0x141f,
+ 0x6765, 0x0f52,
+ 0x6766, 0x212a,
+ 0x676a, 0x1425,
+ 0x676d, 0x07cc,
+ 0x676f, 0x0d0b,
+ 0x6770, 0x1422,
+ 0x6771, 0x0c66,
+ 0x6772, 0x13e3,
+ 0x6773, 0x13e7,
+ 0x6775, 0x0669,
+ 0x6777, 0x0cfd,
+ 0x677c, 0x1424,
+ 0x677e, 0x09a6,
+ 0x677f, 0x0d58,
+ 0x6785, 0x142a,
+ 0x6787, 0x0d8e,
+ 0x6789, 0x1421,
+ 0x678b, 0x1427,
+ 0x678c, 0x1426,
+ 0x6790, 0x0a73,
+ 0x6795, 0x0e9b,
+ 0x6797, 0x0f9b,
+ 0x679a, 0x0e95,
+ 0x679c, 0x054c,
+ 0x679d, 0x08ac,
+ 0x67a0, 0x0fee,
+ 0x67a1, 0x1429,
+ 0x67a2, 0x0a3b,
+ 0x67a6, 0x1428,
+ 0x67a9, 0x1423,
+ 0x67af, 0x0783,
+ 0x67b3, 0x142f,
+ 0x67b4, 0x142d,
+ 0x67b6, 0x054d,
+ 0x67b7, 0x142b,
+ 0x67b8, 0x1431,
+ 0x67b9, 0x1437,
+ 0x67bb, 0x212b,
+ 0x67c0, 0x212d,
+ 0x67c1, 0x0b28,
+ 0x67c4, 0x0e11,
+ 0x67c6, 0x1439,
+ 0x67ca, 0x0d94,
+ 0x67ce, 0x1438,
+ 0x67cf, 0x0d26,
+ 0x67d0, 0x0e6d,
+ 0x67d1, 0x05f7,
+ 0x67d3, 0x0a9b,
+ 0x67d4, 0x094a,
+ 0x67d8, 0x0bef,
+ 0x67da, 0x0f18,
+ 0x67dd, 0x1434,
+ 0x67de, 0x1433,
+ 0x67e2, 0x1435,
+ 0x67e4, 0x1432,
+ 0x67e7, 0x143a,
+ 0x67e9, 0x1430,
+ 0x67ec, 0x142e,
+ 0x67ee, 0x1436,
+ 0x67ef, 0x142c,
+ 0x67f1, 0x0baa,
+ 0x67f3, 0x0f04,
+ 0x67f4, 0x08f2,
+ 0x67f5, 0x0864,
+ 0x67fb, 0x082a,
+ 0x67fe, 0x0e9d,
+ 0x67ff, 0x059f,
+ 0x6801, 0x212e,
+ 0x6802, 0x0bea,
+ 0x6803, 0x0ca2,
+ 0x6804, 0x04eb,
+ 0x6805, 0x1e07,
+ 0x6813, 0x0a96,
+ 0x6816, 0x0a58,
+ 0x6817, 0x0700,
+ 0x681e, 0x143c,
+ 0x6821, 0x07cd,
+ 0x6822, 0x05da,
+ 0x6829, 0x143e,
+ 0x682a, 0x05d2,
+ 0x682b, 0x1444,
+ 0x6832, 0x1441,
+ 0x6834, 0x0a97,
+ 0x6838, 0x05a9,
+ 0x6839, 0x081c,
+ 0x683c, 0x05a8,
+ 0x683d, 0x083f,
+ 0x6840, 0x143f,
+ 0x6841, 0x073b,
+ 0x6842, 0x0721,
+ 0x6843, 0x0c67,
+ 0x6844, 0x212f,
+ 0x6846, 0x143d,
+ 0x6848, 0x048a,
+ 0x684d, 0x1440,
+ 0x684e, 0x1442,
+ 0x6850, 0x06c5,
+ 0x6851, 0x0702,
+ 0x6852, 0x212c,
+ 0x6853, 0x05f8,
+ 0x6854, 0x0665,
+ 0x6859, 0x1445,
+ 0x685c, 0x0869,
+ 0x685d, 0x0e9f,
+ 0x685f, 0x0885,
+ 0x6863, 0x1446,
+ 0x6867, 0x0da2,
+ 0x6874, 0x1452,
+ 0x6876, 0x0533,
+ 0x6877, 0x1447,
+ 0x687e, 0x1458,
+ 0x687f, 0x1448,
+ 0x6881, 0x0f8a,
+ 0x6883, 0x144f,
+ 0x6885, 0x0d15,
+ 0x688d, 0x1457,
+ 0x688e, 0x1e9c,
+ 0x688f, 0x144a,
+ 0x6893, 0x0478,
+ 0x6894, 0x144c,
+ 0x6897, 0x07ce,
+ 0x689b, 0x144e,
+ 0x689d, 0x144d,
+ 0x689f, 0x1449,
+ 0x68a0, 0x1454,
+ 0x68a2, 0x09a7,
+ 0x68a6, 0x11be,
+ 0x68a7, 0x079c,
+ 0x68a8, 0x0f66,
+ 0x68ad, 0x144b,
+ 0x68af, 0x0c10,
+ 0x68b0, 0x0581,
+ 0x68b1, 0x081d,
+ 0x68b3, 0x1443,
+ 0x68b5, 0x1453,
+ 0x68b6, 0x05bf,
+ 0x68b9, 0x1451,
+ 0x68ba, 0x1455,
+ 0x68bc, 0x0c68,
+ 0x68c4, 0x063a,
+ 0x68c6, 0x1473,
+ 0x68c8, 0x20af,
+ 0x68c9, 0x0ed5,
+ 0x68ca, 0x145a,
+ 0x68cb, 0x0639,
+ 0x68cd, 0x1461,
+ 0x68cf, 0x2130,
+ 0x68d2, 0x0e6e,
+ 0x68d4, 0x1462,
+ 0x68d5, 0x1464,
+ 0x68d7, 0x1468,
+ 0x68d8, 0x145c,
+ 0x68da, 0x0b68,
+ 0x68df, 0x0c69,
+ 0x68e0, 0x146c,
+ 0x68e1, 0x145f,
+ 0x68e3, 0x1469,
+ 0x68e7, 0x1463,
+ 0x68ee, 0x09ff,
+ 0x68ef, 0x146d,
+ 0x68f2, 0x0a57,
+ 0x68f9, 0x146b,
+ 0x68fa, 0x05f9,
+ 0x6900, 0x0ff6,
+ 0x6901, 0x1459,
+ 0x6904, 0x1467,
+ 0x6905, 0x049c,
+ 0x6908, 0x145b,
+ 0x690b, 0x0ec6,
+ 0x690c, 0x1460,
+ 0x690d, 0x09e8,
+ 0x690e, 0x0be3,
+ 0x690f, 0x1456,
+ 0x6912, 0x1466,
+ 0x6919, 0x0a40,
+ 0x691a, 0x1470,
+ 0x691b, 0x05cf,
+ 0x691c, 0x0755,
+ 0x6921, 0x1472,
+ 0x6922, 0x145d,
+ 0x6923, 0x1471,
+ 0x6925, 0x146a,
+ 0x6926, 0x145e,
+ 0x6928, 0x146e,
+ 0x692a, 0x146f,
+ 0x6930, 0x1480,
+ 0x6934, 0x0ca6,
+ 0x6936, 0x1465,
+ 0x6939, 0x147c,
+ 0x693d, 0x147e,
+ 0x693f, 0x0bf4,
+ 0x694a, 0x0f36,
+ 0x6953, 0x0de8,
+ 0x6954, 0x1479,
+ 0x6955, 0x0b2a,
+ 0x6959, 0x147f,
+ 0x695a, 0x0ac1,
+ 0x695c, 0x1476,
+ 0x695d, 0x1483,
+ 0x695e, 0x1482,
+ 0x6960, 0x0cc7,
+ 0x6961, 0x1481,
+ 0x6962, 0x0cc2,
+ 0x6968, 0x2132,
+ 0x696a, 0x1485,
+ 0x696b, 0x1478,
+ 0x696d, 0x06c0,
+ 0x696e, 0x147b,
+ 0x696f, 0x0967,
+ 0x6973, 0x0d16,
+ 0x6974, 0x147d,
+ 0x6975, 0x06c3,
+ 0x6977, 0x1475,
+ 0x6978, 0x1477,
+ 0x6979, 0x1474,
+ 0x697c, 0x0fd6,
+ 0x697d, 0x05b8,
+ 0x697e, 0x147a,
+ 0x6981, 0x1484,
+ 0x6982, 0x0593,
+ 0x698a, 0x0857,
+ 0x698e, 0x04ff,
+ 0x6991, 0x1495,
+ 0x6994, 0x0fd7,
+ 0x6995, 0x1498,
+ 0x6998, 0x2134,
+ 0x699b, 0x0a00,
+ 0x699c, 0x1497,
+ 0x69a0, 0x1496,
+ 0x69a7, 0x1493,
+ 0x69ae, 0x1487,
+ 0x69b1, 0x14a4,
+ 0x69b2, 0x1486,
+ 0x69b4, 0x1499,
+ 0x69bb, 0x1491,
+ 0x69be, 0x148c,
+ 0x69bf, 0x1489,
+ 0x69c1, 0x148a,
+ 0x69c3, 0x1492,
+ 0x69c7, 0x1d33,
+ 0x69ca, 0x148f,
+ 0x69cb, 0x07cf,
+ 0x69cc, 0x0be4,
+ 0x69cd, 0x0ae6,
+ 0x69ce, 0x148d,
+ 0x69d0, 0x1488,
+ 0x69d3, 0x148b,
+ 0x69d8, 0x0f37,
+ 0x69d9, 0x0e98,
+ 0x69dd, 0x1490,
+ 0x69de, 0x149a,
+ 0x69e2, 0x2135,
+ 0x69e7, 0x14a2,
+ 0x69e8, 0x149b,
+ 0x69eb, 0x14a8,
+ 0x69ed, 0x14a6,
+ 0x69f2, 0x14a1,
+ 0x69f9, 0x14a0,
+ 0x69fb, 0x0bec,
+ 0x69fd, 0x0ae7,
+ 0x69ff, 0x149e,
+ 0x6a02, 0x149c,
+ 0x6a05, 0x14a3,
+ 0x6a0a, 0x14a9,
+ 0x6a0b, 0x0d89,
+ 0x6a0c, 0x14af,
+ 0x6a12, 0x14aa,
+ 0x6a13, 0x14ad,
+ 0x6a14, 0x14a7,
+ 0x6a17, 0x0bb2,
+ 0x6a19, 0x0daa,
+ 0x6a1b, 0x149d,
+ 0x6a1e, 0x14a5,
+ 0x6a1f, 0x09a8,
+ 0x6a21, 0x0edb,
+ 0x6a22, 0x14b9,
+ 0x6a23, 0x14ac,
+ 0x6a29, 0x0756,
+ 0x6a2a, 0x0523,
+ 0x6a2b, 0x05bd,
+ 0x6a2e, 0x1494,
+ 0x6a30, 0x2136,
+ 0x6a35, 0x09a9,
+ 0x6a36, 0x14b1,
+ 0x6a38, 0x14b8,
+ 0x6a39, 0x0925,
+ 0x6a3a, 0x05d0,
+ 0x6a3d, 0x0b6c,
+ 0x6a44, 0x14ae,
+ 0x6a46, 0x2138,
+ 0x6a47, 0x14b3,
+ 0x6a48, 0x14b7,
+ 0x6a4b, 0x06ae,
+ 0x6a58, 0x0666,
+ 0x6a59, 0x14b5,
+ 0x6a5f, 0x063b,
+ 0x6a61, 0x0ca3,
+ 0x6a62, 0x14b4,
+ 0x6a66, 0x14b6,
+ 0x6a6b, 0x2137,
+ 0x6a72, 0x14b0,
+ 0x6a73, 0x2139,
+ 0x6a78, 0x14b2,
+ 0x6a7e, 0x213a,
+ 0x6a7f, 0x05be,
+ 0x6a80, 0x0b87,
+ 0x6a84, 0x14bd,
+ 0x6a8d, 0x14bb,
+ 0x6a8e, 0x079d,
+ 0x6a90, 0x14ba,
+ 0x6a97, 0x14c0,
+ 0x6a9c, 0x143b,
+ 0x6aa0, 0x14bc,
+ 0x6aa2, 0x14be,
+ 0x6aaa, 0x14cb,
+ 0x6aac, 0x14c7,
+ 0x6aae, 0x1450,
+ 0x6ab3, 0x14c6,
+ 0x6ab8, 0x14c5,
+ 0x6abb, 0x14c2,
+ 0x6ac1, 0x14ab,
+ 0x6ac2, 0x14c4,
+ 0x6ac3, 0x14c3,
+ 0x6ad1, 0x14c9,
+ 0x6ad3, 0x0fcc,
+ 0x6ada, 0x14cc,
+ 0x6adb, 0x06f3,
+ 0x6ade, 0x14c8,
+ 0x6adf, 0x14ca,
+ 0x6ae2, 0x213b,
+ 0x6ae4, 0x213c,
+ 0x6ae8, 0x0d3b,
+ 0x6aea, 0x14cd,
+ 0x6afa, 0x14d1,
+ 0x6afb, 0x14ce,
+ 0x6b04, 0x0f5d,
+ 0x6b05, 0x14cf,
+ 0x6b0a, 0x149f,
+ 0x6b12, 0x14d2,
+ 0x6b16, 0x14d3,
+ 0x6b1d, 0x04d7,
+ 0x6b1f, 0x14d5,
+ 0x6b20, 0x073d,
+ 0x6b21, 0x08cd,
+ 0x6b23, 0x06cd,
+ 0x6b27, 0x0524,
+ 0x6b32, 0x0f49,
+ 0x6b37, 0x14d7,
+ 0x6b38, 0x14d6,
+ 0x6b39, 0x14d9,
+ 0x6b3a, 0x0657,
+ 0x6b3d, 0x06ce,
+ 0x6b3e, 0x05fa,
+ 0x6b43, 0x14dc,
+ 0x6b47, 0x14db,
+ 0x6b49, 0x14dd,
+ 0x6b4c, 0x054e,
+ 0x6b4e, 0x0b75,
+ 0x6b50, 0x14de,
+ 0x6b53, 0x05fb,
+ 0x6b54, 0x14e0,
+ 0x6b59, 0x14df,
+ 0x6b5b, 0x14e1,
+ 0x6b5f, 0x14e2,
+ 0x6b61, 0x14e3,
+ 0x6b62, 0x08ad,
+ 0x6b63, 0x0a59,
+ 0x6b64, 0x0811,
+ 0x6b66, 0x0de2,
+ 0x6b69, 0x0e32,
+ 0x6b6a, 0x0fea,
+ 0x6b6f, 0x08c3,
+ 0x6b73, 0x0840,
+ 0x6b74, 0x0fba,
+ 0x6b78, 0x14e4,
+ 0x6b7b, 0x08ae,
+ 0x6b7f, 0x14e6,
+ 0x6b83, 0x14e9,
+ 0x6b84, 0x14e8,
+ 0x6b86, 0x0e86,
+ 0x6b89, 0x0968,
+ 0x6b8a, 0x0918,
+ 0x6b8b, 0x0892,
+ 0x6b8d, 0x14ea,
+ 0x6b95, 0x14ec,
+ 0x6b96, 0x09e9,
+ 0x6b98, 0x14eb,
+ 0x6b9e, 0x14ed,
+ 0x6ba4, 0x14ee,
+ 0x6baa, 0x14ef,
+ 0x6baf, 0x14f1,
+ 0x6bb1, 0x14f3,
+ 0x6bb2, 0x14f2,
+ 0x6bb3, 0x14f4,
+ 0x6bb4, 0x0525,
+ 0x6bb5, 0x0b88,
+ 0x6bb7, 0x14f5,
+ 0x6bba, 0x0874,
+ 0x6bbb, 0x05aa,
+ 0x6bbc, 0x14f6,
+ 0x6bbf, 0x0c3c,
+ 0x6bc0, 0x119d,
+ 0x6bc5, 0x063d,
+ 0x6bc6, 0x14f7,
+ 0x6bcb, 0x14f8,
+ 0x6bcd, 0x0e3c,
+ 0x6bce, 0x0e96,
+ 0x6bd2, 0x0c9f,
+ 0x6bd3, 0x14f9,
+ 0x6bd4, 0x0d7a,
+ 0x6bd6, 0x213d,
+ 0x6bd8, 0x0d8f,
+ 0x6bdb, 0x0edf,
+ 0x6bdf, 0x14fa,
+ 0x6beb, 0x14fc,
+ 0x6bec, 0x14fb,
+ 0x6bef, 0x14fe,
+ 0x6bf3, 0x14fd,
+ 0x6c08, 0x1500,
+ 0x6c0f, 0x08af,
+ 0x6c11, 0x0ebd,
+ 0x6c13, 0x1501,
+ 0x6c17, 0x063e,
+ 0x6c1b, 0x1503,
+ 0x6c23, 0x1505,
+ 0x6c24, 0x1504,
+ 0x6c34, 0x0a2b,
+ 0x6c37, 0x0dab,
+ 0x6c38, 0x04ec,
+ 0x6c3e, 0x0d59,
+ 0x6c3f, 0x213e,
+ 0x6c40, 0x0c11,
+ 0x6c41, 0x094b,
+ 0x6c42, 0x067b,
+ 0x6c4e, 0x0d5a,
+ 0x6c50, 0x08da,
+ 0x6c55, 0x1507,
+ 0x6c57, 0x05fc,
+ 0x6c5a, 0x051a,
+ 0x6c5c, 0x213f,
+ 0x6c5d, 0x0cca,
+ 0x6c5e, 0x1506,
+ 0x6c5f, 0x07d0,
+ 0x6c60, 0x0b91,
+ 0x6c62, 0x1508,
+ 0x6c68, 0x1510,
+ 0x6c6a, 0x1509,
+ 0x6c6f, 0x2141,
+ 0x6c70, 0x0b21,
+ 0x6c72, 0x067c,
+ 0x6c73, 0x1511,
+ 0x6c7a, 0x073e,
+ 0x6c7d, 0x063f,
+ 0x6c7e, 0x150f,
+ 0x6c81, 0x150d,
+ 0x6c82, 0x150a,
+ 0x6c83, 0x0f4a,
+ 0x6c86, 0x2140,
+ 0x6c88, 0x0bdc,
+ 0x6c8c, 0x0cb1,
+ 0x6c8d, 0x150b,
+ 0x6c90, 0x1513,
+ 0x6c92, 0x1512,
+ 0x6c93, 0x06f9,
+ 0x6c96, 0x052d,
+ 0x6c99, 0x082b,
+ 0x6c9a, 0x150c,
+ 0x6c9b, 0x150e,
+ 0x6ca1, 0x0e85,
+ 0x6ca2, 0x0b54,
+ 0x6cab, 0x0ea5,
+ 0x6cae, 0x151b,
+ 0x6cb1, 0x151c,
+ 0x6cb3, 0x054f,
+ 0x6cb8, 0x0df8,
+ 0x6cb9, 0x0f09,
+ 0x6cba, 0x151e,
+ 0x6cbb, 0x08cf,
+ 0x6cbc, 0x09aa,
+ 0x6cbd, 0x1517,
+ 0x6cbe, 0x151d,
+ 0x6cbf, 0x050a,
+ 0x6cc1, 0x06af,
+ 0x6cc4, 0x1514,
+ 0x6cc5, 0x1519,
+ 0x6cc9, 0x0a98,
+ 0x6cca, 0x0d27,
+ 0x6ccc, 0x0d7b,
+ 0x6cd3, 0x1516,
+ 0x6cd5, 0x0e4f,
+ 0x6cd7, 0x1518,
+ 0x6cd9, 0x1521,
+ 0x6cda, 0x2142,
+ 0x6cdb, 0x151f,
+ 0x6cdd, 0x151a,
+ 0x6ce1, 0x0e50,
+ 0x6ce2, 0x0cfe,
+ 0x6ce3, 0x067d,
+ 0x6ce5, 0x0c1f,
+ 0x6ce8, 0x0bab,
+ 0x6cea, 0x1522,
+ 0x6cef, 0x1520,
+ 0x6cf0, 0x0b39,
+ 0x6cf1, 0x1515,
+ 0x6cf3, 0x04ed,
+ 0x6d04, 0x2143,
+ 0x6d0b, 0x0f38,
+ 0x6d0c, 0x152d,
+ 0x6d12, 0x152c,
+ 0x6d17, 0x0a9a,
+ 0x6d19, 0x1529,
+ 0x6d1b, 0x0f56,
+ 0x6d1e, 0x0c8e,
+ 0x6d1f, 0x1523,
+ 0x6d25, 0x0be1,
+ 0x6d29, 0x04ee,
+ 0x6d2a, 0x07d1,
+ 0x6d2b, 0x1526,
+ 0x6d32, 0x0931,
+ 0x6d33, 0x152b,
+ 0x6d35, 0x152a,
+ 0x6d36, 0x1525,
+ 0x6d38, 0x1528,
+ 0x6d3b, 0x05c6,
+ 0x6d3d, 0x1527,
+ 0x6d3e, 0x0cff,
+ 0x6d41, 0x0f76,
+ 0x6d44, 0x09dc,
+ 0x6d45, 0x0a99,
+ 0x6d59, 0x1533,
+ 0x6d5a, 0x1531,
+ 0x6d5c, 0x0dbf,
+ 0x6d63, 0x152e,
+ 0x6d64, 0x1530,
+ 0x6d66, 0x04dc,
+ 0x6d69, 0x07d2,
+ 0x6d6a, 0x0fd8,
+ 0x6d6c, 0x059b,
+ 0x6d6e, 0x0dd4,
+ 0x6d6f, 0x2145,
+ 0x6d74, 0x0f4b,
+ 0x6d77, 0x0582,
+ 0x6d78, 0x0a01,
+ 0x6d79, 0x1532,
+ 0x6d85, 0x1537,
+ 0x6d87, 0x2144,
+ 0x6d88, 0x09ab,
+ 0x6d8c, 0x0f1a,
+ 0x6d8e, 0x1534,
+ 0x6d93, 0x152f,
+ 0x6d95, 0x1535,
+ 0x6d96, 0x2146,
+ 0x6d99, 0x0fa6,
+ 0x6d9b, 0x0c6d,
+ 0x6d9c, 0x0c9a,
+ 0x6dac, 0x2147,
+ 0x6daf, 0x0594,
+ 0x6db2, 0x04f7,
+ 0x6db5, 0x153b,
+ 0x6db8, 0x153e,
+ 0x6dbc, 0x0f8b,
+ 0x6dc0, 0x0f4e,
+ 0x6dc5, 0x1545,
+ 0x6dc6, 0x153f,
+ 0x6dc7, 0x153c,
+ 0x6dcb, 0x0f9c,
+ 0x6dcc, 0x1542,
+ 0x6dcf, 0x2148,
+ 0x6dd1, 0x0954,
+ 0x6dd2, 0x1544,
+ 0x6dd5, 0x1549,
+ 0x6dd8, 0x0c6b,
+ 0x6dd9, 0x1547,
+ 0x6dde, 0x1541,
+ 0x6de1, 0x0b76,
+ 0x6de4, 0x1548,
+ 0x6de6, 0x153d,
+ 0x6de8, 0x1543,
+ 0x6dea, 0x154a,
+ 0x6deb, 0x04c0,
+ 0x6dec, 0x1540,
+ 0x6dee, 0x154b,
+ 0x6df1, 0x0a02,
+ 0x6df2, 0x214a,
+ 0x6df3, 0x0969,
+ 0x6df5, 0x0df5,
+ 0x6df7, 0x081e,
+ 0x6df8, 0x2149,
+ 0x6df9, 0x1538,
+ 0x6dfa, 0x1546,
+ 0x6dfb, 0x0c34,
+ 0x6dfc, 0x214b,
+ 0x6e05, 0x0a5a,
+ 0x6e07, 0x05c7,
+ 0x6e08, 0x0841,
+ 0x6e09, 0x09ac,
+ 0x6e0a, 0x153a,
+ 0x6e0b, 0x094c,
+ 0x6e13, 0x0722,
+ 0x6e15, 0x1539,
+ 0x6e19, 0x154f,
+ 0x6e1a, 0x0977,
+ 0x6e1b, 0x076e,
+ 0x6e1d, 0x155e,
+ 0x6e1f, 0x1558,
+ 0x6e20, 0x068e,
+ 0x6e21, 0x0c49,
+ 0x6e23, 0x1553,
+ 0x6e24, 0x155c,
+ 0x6e25, 0x0473,
+ 0x6e26, 0x04d4,
+ 0x6e27, 0x214e,
+ 0x6e29, 0x0539,
+ 0x6e2b, 0x1555,
+ 0x6e2c, 0x0b0c,
+ 0x6e2d, 0x154c,
+ 0x6e2e, 0x154e,
+ 0x6e2f, 0x07d3,
+ 0x6e38, 0x155f,
+ 0x6e39, 0x214c,
+ 0x6e3a, 0x155a,
+ 0x6e3c, 0x214f,
+ 0x6e3e, 0x1552,
+ 0x6e43, 0x1559,
+ 0x6e4a, 0x0eb7,
+ 0x6e4d, 0x1557,
+ 0x6e4e, 0x155b,
+ 0x6e56, 0x0784,
+ 0x6e58, 0x09ad,
+ 0x6e5b, 0x0b77,
+ 0x6e5c, 0x214d,
+ 0x6e5f, 0x1551,
+ 0x6e67, 0x0f19,
+ 0x6e6b, 0x1554,
+ 0x6e6e, 0x154d,
+ 0x6e6f, 0x0c6c,
+ 0x6e72, 0x1550,
+ 0x6e76, 0x1556,
+ 0x6e7e, 0x0ff7,
+ 0x6e7f, 0x08ea,
+ 0x6e80, 0x0eac,
+ 0x6e82, 0x1560,
+ 0x6e8c, 0x0d42,
+ 0x6e8f, 0x156c,
+ 0x6e90, 0x076f,
+ 0x6e96, 0x096a,
+ 0x6e98, 0x1562,
+ 0x6e9c, 0x0f77,
+ 0x6e9d, 0x07d4,
+ 0x6e9f, 0x156f,
+ 0x6ea2, 0x04b2,
+ 0x6ea5, 0x156d,
+ 0x6eaa, 0x1561,
+ 0x6eaf, 0x1567,
+ 0x6eb2, 0x1569,
+ 0x6eb6, 0x0f39,
+ 0x6eb7, 0x1564,
+ 0x6eba, 0x0c28,
+ 0x6ebd, 0x1566,
+ 0x6ebf, 0x2150,
+ 0x6ec2, 0x156e,
+ 0x6ec4, 0x1568,
+ 0x6ec5, 0x0ed3,
+ 0x6ec9, 0x1563,
+ 0x6ecb, 0x08ce,
+ 0x6ecc, 0x157b,
+ 0x6ed1, 0x05c8,
+ 0x6ed3, 0x1565,
+ 0x6ed4, 0x156a,
+ 0x6edd, 0x0b4c,
+ 0x6ede, 0x0b3a,
+ 0x6eec, 0x1573,
+ 0x6eef, 0x1579,
+ 0x6ef2, 0x1577,
+ 0x6ef4, 0x0c23,
+ 0x6ef7, 0x157e,
+ 0x6ef8, 0x1574,
+ 0x6efe, 0x1575,
+ 0x6eff, 0x155d,
+ 0x6f01, 0x0693,
+ 0x6f02, 0x0dac,
+ 0x6f06, 0x08eb,
+ 0x6f09, 0x0809,
+ 0x6f0f, 0x0fd9,
+ 0x6f11, 0x1571,
+ 0x6f13, 0x157d,
+ 0x6f14, 0x050b,
+ 0x6f15, 0x0ae8,
+ 0x6f20, 0x0d2f,
+ 0x6f22, 0x05fd,
+ 0x6f23, 0x0fc2,
+ 0x6f2b, 0x0ead,
+ 0x6f2c, 0x0bee,
+ 0x6f31, 0x1578,
+ 0x6f32, 0x157a,
+ 0x6f38, 0x0ab4,
+ 0x6f3e, 0x157c,
+ 0x6f3f, 0x1576,
+ 0x6f41, 0x1570,
+ 0x6f45, 0x05ff,
+ 0x6f51, 0x1e60,
+ 0x6f54, 0x073f,
+ 0x6f58, 0x158a,
+ 0x6f5b, 0x1585,
+ 0x6f5c, 0x0a9c,
+ 0x6f5f, 0x05c1,
+ 0x6f64, 0x096b,
+ 0x6f66, 0x158e,
+ 0x6f6d, 0x1587,
+ 0x6f6e, 0x0bc8,
+ 0x6f6f, 0x1584,
+ 0x6f70, 0x0bf5,
+ 0x6f74, 0x15a7,
+ 0x6f78, 0x1581,
+ 0x6f7a, 0x1580,
+ 0x6f7c, 0x1589,
+ 0x6f80, 0x1583,
+ 0x6f81, 0x1582,
+ 0x6f82, 0x1588,
+ 0x6f84, 0x0a45,
+ 0x6f86, 0x157f,
+ 0x6f88, 0x2151,
+ 0x6f8e, 0x158b,
+ 0x6f91, 0x158c,
+ 0x6f97, 0x05fe,
+ 0x6fa1, 0x1591,
+ 0x6fa3, 0x1590,
+ 0x6fa4, 0x1592,
+ 0x6faa, 0x1595,
+ 0x6fb1, 0x0c3d,
+ 0x6fb3, 0x158f,
+ 0x6fb5, 0x2152,
+ 0x6fb9, 0x1593,
+ 0x6fc0, 0x0739,
+ 0x6fc1, 0x0b59,
+ 0x6fc2, 0x158d,
+ 0x6fc3, 0x0cf1,
+ 0x6fc6, 0x1594,
+ 0x6fd4, 0x1599,
+ 0x6fd5, 0x1597,
+ 0x6fd8, 0x159a,
+ 0x6fdb, 0x159d,
+ 0x6fdf, 0x1596,
+ 0x6fe0, 0x07fc,
+ 0x6fe1, 0x0cde,
+ 0x6fe4, 0x1536,
+ 0x6feb, 0x0f5e,
+ 0x6fec, 0x1598,
+ 0x6fee, 0x159c,
+ 0x6fef, 0x0b55,
+ 0x6ff1, 0x159b,
+ 0x6ff3, 0x1586,
+ 0x6ff5, 0x2153,
+ 0x6ff6, 0x1ba4,
+ 0x6ffa, 0x15a0,
+ 0x6ffe, 0x15a4,
+ 0x7001, 0x15a2,
+ 0x7005, 0x2154,
+ 0x7006, 0x1e50,
+ 0x7007, 0x2155,
+ 0x7009, 0x159e,
+ 0x700b, 0x159f,
+ 0x700f, 0x15a3,
+ 0x7011, 0x15a1,
+ 0x7015, 0x0dc0,
+ 0x7018, 0x15a9,
+ 0x701a, 0x15a6,
+ 0x701b, 0x15a5,
+ 0x701d, 0x15a8,
+ 0x701e, 0x0cac,
+ 0x701f, 0x15aa,
+ 0x7026, 0x0bb3,
+ 0x7027, 0x0b4d,
+ 0x7028, 0x2156,
+ 0x702c, 0x0a49,
+ 0x7030, 0x15ab,
+ 0x7032, 0x15ad,
+ 0x703e, 0x15ac,
+ 0x704c, 0x1572,
+ 0x7051, 0x15ae,
+ 0x7058, 0x0cbf,
+ 0x7063, 0x15af,
+ 0x706b, 0x0550,
+ 0x706f, 0x0c6e,
+ 0x7070, 0x0583,
+ 0x7078, 0x067e,
+ 0x707c, 0x090a,
+ 0x707d, 0x0842,
+ 0x7085, 0x2157,
+ 0x7089, 0x0fcd,
+ 0x708a, 0x0a2c,
+ 0x708e, 0x050c,
+ 0x7092, 0x15b1,
+ 0x7099, 0x15b0,
+ 0x70ab, 0x2158,
+ 0x70ac, 0x15b4,
+ 0x70ad, 0x0b78,
+ 0x70ae, 0x15b7,
+ 0x70af, 0x15b2,
+ 0x70b3, 0x15b6,
+ 0x70b8, 0x15b5,
+ 0x70b9, 0x0c3a,
+ 0x70ba, 0x049d,
+ 0x70bb, 0x20ad,
+ 0x70c8, 0x0fbd,
+ 0x70cb, 0x15b9,
+ 0x70cf, 0x04ca,
+ 0x70d9, 0x15bb,
+ 0x70dd, 0x15ba,
+ 0x70df, 0x15b8,
+ 0x70f1, 0x15b3,
+ 0x70f9, 0x0e51,
+ 0x70fd, 0x15bd,
+ 0x7104, 0x215a,
+ 0x7109, 0x15bc,
+ 0x710f, 0x2159,
+ 0x7114, 0x050d,
+ 0x7119, 0x15bf,
+ 0x711a, 0x0e02,
+ 0x711c, 0x15be,
+ 0x7121, 0x0ec1,
+ 0x7126, 0x09af,
+ 0x7130, 0x1ddc,
+ 0x7136, 0x0ab5,
+ 0x713c, 0x09ae,
+ 0x7146, 0x215c,
+ 0x7149, 0x0fc3,
+ 0x714c, 0x15c5,
+ 0x714e, 0x0a9d,
+ 0x7155, 0x15c1,
+ 0x7156, 0x15c6,
+ 0x7159, 0x050e,
+ 0x715c, 0x215b,
+ 0x7162, 0x15c4,
+ 0x7164, 0x0d17,
+ 0x7165, 0x15c0,
+ 0x7166, 0x15c3,
+ 0x7167, 0x09b0,
+ 0x7169, 0x0d65,
+ 0x716c, 0x15c7,
+ 0x716e, 0x08fd,
+ 0x717d, 0x0a9e,
+ 0x7184, 0x15ca,
+ 0x7188, 0x15c2,
+ 0x718a, 0x06fd,
+ 0x718f, 0x15c8,
+ 0x7194, 0x0f3a,
+ 0x7195, 0x15cb,
+ 0x7199, 0x205d,
+ 0x719f, 0x0959,
+ 0x71a8, 0x15cc,
+ 0x71ac, 0x15cd,
+ 0x71b1, 0x0ce4,
+ 0x71b9, 0x15cf,
+ 0x71be, 0x15d0,
+ 0x71c1, 0x215f,
+ 0x71c3, 0x0ce9,
+ 0x71c8, 0x0c6f,
+ 0x71c9, 0x15d2,
+ 0x71ce, 0x15d4,
+ 0x71d0, 0x0f9d,
+ 0x71d2, 0x15d1,
+ 0x71d4, 0x15d3,
+ 0x71d5, 0x050f,
+ 0x71d7, 0x15ce,
+ 0x71df, 0x114e,
+ 0x71e0, 0x15d5,
+ 0x71e5, 0x0ae9,
+ 0x71e6, 0x0886,
+ 0x71e7, 0x15d7,
+ 0x71ec, 0x15d6,
+ 0x71ed, 0x09ea,
+ 0x71ee, 0x10ee,
+ 0x71f5, 0x15d8,
+ 0x71f9, 0x15da,
+ 0x71fb, 0x15c9,
+ 0x71fc, 0x15d9,
+ 0x71fe, 0x2160,
+ 0x71ff, 0x15db,
+ 0x7206, 0x0d30,
+ 0x720d, 0x15dc,
+ 0x7210, 0x15dd,
+ 0x721b, 0x15de,
+ 0x7228, 0x15df,
+ 0x722a, 0x0bfa,
+ 0x722c, 0x15e1,
+ 0x722d, 0x15e0,
+ 0x7230, 0x15e2,
+ 0x7232, 0x15e3,
+ 0x7235, 0x090b,
+ 0x7236, 0x0dd5,
+ 0x723a, 0x0ef8,
+ 0x723b, 0x15e4,
+ 0x723d, 0x0ad8,
+ 0x723e, 0x08d0,
+ 0x723f, 0x15e6,
+ 0x7246, 0x15e8,
+ 0x7247, 0x0e22,
+ 0x7248, 0x0d5b,
+ 0x724b, 0x15e9,
+ 0x724c, 0x0d0d,
+ 0x7252, 0x0bc9,
+ 0x7258, 0x15ea,
+ 0x7259, 0x0567,
+ 0x725b, 0x0687,
+ 0x725d, 0x0ed2,
+ 0x725f, 0x0ec2,
+ 0x7261, 0x0534,
+ 0x7262, 0x0fda,
+ 0x7267, 0x0e80,
+ 0x7269, 0x0dfa,
+ 0x7272, 0x0a5b,
+ 0x7274, 0x15eb,
+ 0x7279, 0x0c9b,
+ 0x727d, 0x0757,
+ 0x727e, 0x15ec,
+ 0x7280, 0x0844,
+ 0x7281, 0x15ee,
+ 0x7282, 0x15ed,
+ 0x7287, 0x15ef,
+ 0x7292, 0x15f0,
+ 0x7296, 0x15f1,
+ 0x72a0, 0x0658,
+ 0x72a2, 0x15f2,
+ 0x72a7, 0x15f3,
+ 0x72ac, 0x0758,
+ 0x72af, 0x0d5c,
+ 0x72b1, 0x2161,
+ 0x72b2, 0x15f5,
+ 0x72b6, 0x09dd,
+ 0x72b9, 0x15f4,
+ 0x72be, 0x2162,
+ 0x72c2, 0x06b0,
+ 0x72c3, 0x15f6,
+ 0x72c4, 0x15f8,
+ 0x72c6, 0x15f7,
+ 0x72ce, 0x15f9,
+ 0x72d0, 0x0785,
+ 0x72d2, 0x15fa,
+ 0x72d7, 0x06e1,
+ 0x72d9, 0x0ac2,
+ 0x72db, 0x080f,
+ 0x72e0, 0x15fc,
+ 0x72e2, 0x15fb,
+ 0x72e9, 0x0919,
+ 0x72ec, 0x0ca0,
+ 0x72ed, 0x06b1,
+ 0x72f7, 0x15ff,
+ 0x72f8, 0x0b6a,
+ 0x72f9, 0x15fe,
+ 0x72fc, 0x0fdb,
+ 0x72fd, 0x0d18,
+ 0x730a, 0x1602,
+ 0x7316, 0x1604,
+ 0x7317, 0x1601,
+ 0x731b, 0x0ee0,
+ 0x731c, 0x1603,
+ 0x731d, 0x1605,
+ 0x731f, 0x0f8c,
+ 0x7324, 0x2163,
+ 0x7325, 0x1609,
+ 0x7329, 0x1608,
+ 0x732a, 0x0bb4,
+ 0x732b, 0x0ce3,
+ 0x732e, 0x0759,
+ 0x732f, 0x1607,
+ 0x7334, 0x1606,
+ 0x7336, 0x0f1b,
+ 0x733e, 0x160a,
+ 0x733f, 0x0510,
+ 0x7344, 0x0808,
+ 0x7345, 0x08b0,
+ 0x734e, 0x160b,
+ 0x7357, 0x160e,
+ 0x7363, 0x094d,
+ 0x7368, 0x1610,
+ 0x736a, 0x160f,
+ 0x7370, 0x1611,
+ 0x7372, 0x05ab,
+ 0x7375, 0x1613,
+ 0x7377, 0x2165,
+ 0x7378, 0x1612,
+ 0x737a, 0x1615,
+ 0x737b, 0x1614,
+ 0x7384, 0x0770,
+ 0x7387, 0x0f70,
+ 0x7389, 0x06c4,
+ 0x738b, 0x0526,
+ 0x7396, 0x06e2,
+ 0x73a9, 0x061d,
+ 0x73b2, 0x0fb0,
+ 0x73b3, 0x1617,
+ 0x73bb, 0x1619,
+ 0x73bd, 0x2166,
+ 0x73c0, 0x161a,
+ 0x73c2, 0x0551,
+ 0x73c8, 0x1616,
+ 0x73c9, 0x2167,
+ 0x73ca, 0x0887,
+ 0x73cd, 0x0bdd,
+ 0x73ce, 0x1618,
+ 0x73d2, 0x216a,
+ 0x73d6, 0x2168,
+ 0x73de, 0x161d,
+ 0x73e0, 0x091a,
+ 0x73e3, 0x2169,
+ 0x73e5, 0x161b,
+ 0x73ea, 0x0714,
+ 0x73ed, 0x0d5d,
+ 0x73ee, 0x161c,
+ 0x73f1, 0x1637,
+ 0x73f5, 0x216c,
+ 0x73f8, 0x1622,
+ 0x73fe, 0x0771,
+ 0x7403, 0x067f,
+ 0x7405, 0x161f,
+ 0x7406, 0x0f67,
+ 0x7407, 0x216b,
+ 0x7409, 0x0f78,
+ 0x7422, 0x0b56,
+ 0x7425, 0x1621,
+ 0x7426, 0x216d,
+ 0x7429, 0x216f,
+ 0x742a, 0x216e,
+ 0x742e, 0x2170,
+ 0x7432, 0x1623,
+ 0x7433, 0x0f9e,
+ 0x7434, 0x06cf,
+ 0x7435, 0x0d90,
+ 0x7436, 0x0d00,
+ 0x743a, 0x1624,
+ 0x743f, 0x1626,
+ 0x7441, 0x1629,
+ 0x7455, 0x1625,
+ 0x7459, 0x1628,
+ 0x745a, 0x079e,
+ 0x745b, 0x04ef,
+ 0x745c, 0x162a,
+ 0x745e, 0x0a36,
+ 0x745f, 0x1627,
+ 0x7460, 0x0fa4,
+ 0x7462, 0x2171,
+ 0x7463, 0x162d,
+ 0x7464, 0x1d35,
+ 0x7469, 0x162b,
+ 0x746a, 0x162e,
+ 0x746f, 0x1620,
+ 0x7470, 0x162c,
+ 0x7473, 0x082c,
+ 0x7476, 0x162f,
+ 0x747e, 0x1630,
+ 0x7483, 0x0f68,
+ 0x7489, 0x2172,
+ 0x748b, 0x1631,
+ 0x749e, 0x1632,
+ 0x749f, 0x2173,
+ 0x74a2, 0x161e,
+ 0x74a7, 0x1633,
+ 0x74b0, 0x0600,
+ 0x74bd, 0x08d1,
+ 0x74ca, 0x1634,
+ 0x74cf, 0x1635,
+ 0x74d4, 0x1636,
+ 0x74dc, 0x04dd,
+ 0x74e0, 0x1638,
+ 0x74e2, 0x0dad,
+ 0x74e3, 0x1639,
+ 0x74e6, 0x05e0,
+ 0x74e7, 0x163a,
+ 0x74e9, 0x163b,
+ 0x74ee, 0x163c,
+ 0x74f0, 0x163e,
+ 0x74f2, 0x163d,
+ 0x74f6, 0x0dc5,
+ 0x74f7, 0x1641,
+ 0x74f8, 0x1640,
+ 0x7501, 0x2174,
+ 0x7503, 0x1643,
+ 0x7504, 0x1642,
+ 0x7505, 0x1644,
+ 0x750c, 0x1645,
+ 0x750d, 0x1647,
+ 0x750e, 0x1646,
+ 0x7511, 0x080b,
+ 0x7513, 0x1649,
+ 0x7515, 0x1648,
+ 0x7518, 0x0601,
+ 0x751a, 0x0a19,
+ 0x751c, 0x0c36,
+ 0x751e, 0x164a,
+ 0x751f, 0x0a5c,
+ 0x7523, 0x0888,
+ 0x7525, 0x051b,
+ 0x7526, 0x164b,
+ 0x7528, 0x0f3b,
+ 0x752b, 0x0e33,
+ 0x752c, 0x164c,
+ 0x752f, 0x20f2,
+ 0x7530, 0x0c3e,
+ 0x7531, 0x0f1d,
+ 0x7532, 0x07d5,
+ 0x7533, 0x0a03,
+ 0x7537, 0x0b89,
+ 0x7538, 0x10c9,
+ 0x753a, 0x0bca,
+ 0x753b, 0x0568,
+ 0x753c, 0x164d,
+ 0x7544, 0x164e,
+ 0x7546, 0x1653,
+ 0x7549, 0x1651,
+ 0x754a, 0x1650,
+ 0x754b, 0x13c7,
+ 0x754c, 0x0584,
+ 0x754d, 0x164f,
+ 0x754f, 0x049e,
+ 0x7551, 0x0d3e,
+ 0x7554, 0x0d5e,
+ 0x7559, 0x0f79,
+ 0x755a, 0x1654,
+ 0x755b, 0x1652,
+ 0x755c, 0x0b9a,
+ 0x755d, 0x0a4a,
+ 0x7560, 0x0d3f,
+ 0x7562, 0x0d9f,
+ 0x7564, 0x1656,
+ 0x7565, 0x0f74,
+ 0x7566, 0x0723,
+ 0x7567, 0x1657,
+ 0x7569, 0x1655,
+ 0x756a, 0x0d6a,
+ 0x756b, 0x1658,
+ 0x756d, 0x1659,
+ 0x756f, 0x2175,
+ 0x7570, 0x049f,
+ 0x7573, 0x09de,
+ 0x7574, 0x165e,
+ 0x7576, 0x165b,
+ 0x7577, 0x0cc5,
+ 0x7578, 0x165a,
+ 0x757f, 0x0640,
+ 0x7582, 0x1661,
+ 0x7586, 0x165c,
+ 0x7589, 0x1660,
+ 0x758a, 0x165f,
+ 0x758b, 0x0d97,
+ 0x758e, 0x0ac4,
+ 0x758f, 0x0ac3,
+ 0x7591, 0x0659,
+ 0x7594, 0x1662,
+ 0x759a, 0x1663,
+ 0x759d, 0x1664,
+ 0x75a3, 0x1666,
+ 0x75a5, 0x1665,
+ 0x75ab, 0x04f8,
+ 0x75b1, 0x166e,
+ 0x75b2, 0x0d7c,
+ 0x75b3, 0x1668,
+ 0x75b5, 0x166a,
+ 0x75b8, 0x166c,
+ 0x75b9, 0x0a04,
+ 0x75bc, 0x166d,
+ 0x75bd, 0x166b,
+ 0x75be, 0x08ec,
+ 0x75c2, 0x1667,
+ 0x75c3, 0x1669,
+ 0x75c5, 0x0db4,
+ 0x75c7, 0x09b1,
+ 0x75ca, 0x1670,
+ 0x75cd, 0x166f,
+ 0x75d2, 0x1671,
+ 0x75d4, 0x08d2,
+ 0x75d5, 0x081f,
+ 0x75d8, 0x0c71,
+ 0x75d9, 0x1672,
+ 0x75db, 0x0be7,
+ 0x75de, 0x1674,
+ 0x75e2, 0x0f69,
+ 0x75e3, 0x1673,
+ 0x75e9, 0x0aeb,
+ 0x75f0, 0x1679,
+ 0x75f2, 0x167b,
+ 0x75f4, 0x0b92,
+ 0x75fa, 0x167a,
+ 0x75fc, 0x1677,
+ 0x75fe, 0x1675,
+ 0x7601, 0x1678,
+ 0x7609, 0x167f,
+ 0x760b, 0x167d,
+ 0x760d, 0x167e,
+ 0x761f, 0x1680,
+ 0x7620, 0x1682,
+ 0x7624, 0x1685,
+ 0x7626, 0x1e2d,
+ 0x7627, 0x1681,
+ 0x7630, 0x1687,
+ 0x7634, 0x1686,
+ 0x763b, 0x1688,
+ 0x7642, 0x0f8d,
+ 0x7646, 0x168b,
+ 0x7647, 0x1689,
+ 0x764c, 0x061e,
+ 0x7652, 0x0f0a,
+ 0x7656, 0x0e1a,
+ 0x7658, 0x168d,
+ 0x765c, 0x168c,
+ 0x7661, 0x168e,
+ 0x7667, 0x1693,
+ 0x7668, 0x1690,
+ 0x766c, 0x1694,
+ 0x7670, 0x1695,
+ 0x7672, 0x1696,
+ 0x7676, 0x1697,
+ 0x7678, 0x1698,
+ 0x767a, 0x0d43,
+ 0x767b, 0x0c4a,
+ 0x767c, 0x1699,
+ 0x767d, 0x0d28,
+ 0x767e, 0x0da6,
+ 0x7680, 0x169a,
+ 0x7682, 0x2176,
+ 0x7683, 0x169b,
+ 0x7684, 0x0c24,
+ 0x7686, 0x0585,
+ 0x7687, 0x07d6,
+ 0x7688, 0x169c,
+ 0x768b, 0x169d,
+ 0x768e, 0x169e,
+ 0x7690, 0x0877,
+ 0x7693, 0x16a0,
+ 0x7696, 0x169f,
+ 0x7699, 0x16a1,
+ 0x769b, 0x2179,
+ 0x769c, 0x2177,
+ 0x769e, 0x2178,
+ 0x76a6, 0x217a,
+ 0x76ae, 0x0d7d,
+ 0x76b0, 0x16a3,
+ 0x76b4, 0x16a4,
+ 0x76b7, 0x1d1c,
+ 0x76b8, 0x16a5,
+ 0x76bf, 0x087c,
+ 0x76c2, 0x16a8,
+ 0x76c3, 0x0d0c,
+ 0x76c6, 0x0e8d,
+ 0x76c8, 0x04f0,
+ 0x76ca, 0x04f9,
+ 0x76cd, 0x16a9,
+ 0x76d2, 0x16ab,
+ 0x76d6, 0x16aa,
+ 0x76d7, 0x0c6a,
+ 0x76db, 0x0a5d,
+ 0x76dc, 0x14d8,
+ 0x76de, 0x16ac,
+ 0x76df, 0x0ecd,
+ 0x76e1, 0x16ad,
+ 0x76e3, 0x0602,
+ 0x76e4, 0x0d6b,
+ 0x76e5, 0x16ae,
+ 0x76e7, 0x16af,
+ 0x76ea, 0x16b0,
+ 0x76ee, 0x0ee8,
+ 0x76f2, 0x0ee1,
+ 0x76f4, 0x0bda,
+ 0x76f8, 0x0aec,
+ 0x76fb, 0x16b2,
+ 0x76fe, 0x096c,
+ 0x7701, 0x09b2,
+ 0x7704, 0x16b5,
+ 0x7707, 0x16b4,
+ 0x7708, 0x16b3,
+ 0x7709, 0x0d91,
+ 0x770b, 0x0603,
+ 0x770c, 0x075d,
+ 0x771b, 0x16bb,
+ 0x771e, 0x16b8,
+ 0x771f, 0x0a05,
+ 0x7720, 0x0ebe,
+ 0x7724, 0x16b7,
+ 0x7725, 0x16b9,
+ 0x7729, 0x16b6,
+ 0x7737, 0x16bc,
+ 0x773a, 0x0bcb,
+ 0x773c, 0x061f,
+ 0x7740, 0x0ba3,
+ 0x7746, 0x217c,
+ 0x7747, 0x16be,
+ 0x775a, 0x16bf,
+ 0x775b, 0x16c2,
+ 0x7761, 0x0a2d,
+ 0x7762, 0x1ec5,
+ 0x7763, 0x0c9c,
+ 0x7765, 0x16c3,
+ 0x7766, 0x0e81,
+ 0x7768, 0x16c0,
+ 0x776b, 0x16c1,
+ 0x7779, 0x16c6,
+ 0x777e, 0x16c5,
+ 0x777f, 0x16c4,
+ 0x778b, 0x16c8,
+ 0x778e, 0x16c7,
+ 0x7791, 0x16c9,
+ 0x779e, 0x16cb,
+ 0x77a0, 0x16ca,
+ 0x77a5, 0x0e1d,
+ 0x77ac, 0x0960,
+ 0x77ad, 0x0f8e,
+ 0x77b0, 0x16cc,
+ 0x77b3, 0x0c8f,
+ 0x77b6, 0x16cd,
+ 0x77b9, 0x16ce,
+ 0x77bb, 0x16d2,
+ 0x77bc, 0x16d0,
+ 0x77bf, 0x16cf,
+ 0x77c7, 0x16d3,
+ 0x77cd, 0x16d4,
+ 0x77d7, 0x16d5,
+ 0x77da, 0x16d6,
+ 0x77db, 0x0ec3,
+ 0x77dc, 0x16d7,
+ 0x77e2, 0x0efc,
+ 0x77e3, 0x16d8,
+ 0x77e5, 0x0b8c,
+ 0x77e7, 0x0d20,
+ 0x77e9, 0x06e3,
+ 0x77ed, 0x0b79,
+ 0x77ee, 0x16d9,
+ 0x77ef, 0x06b2,
+ 0x77f3, 0x0a74,
+ 0x77fc, 0x16da,
+ 0x7802, 0x082d,
+ 0x780c, 0x16db,
+ 0x7812, 0x16dc,
+ 0x7814, 0x075a,
+ 0x7815, 0x0845,
+ 0x7820, 0x16de,
+ 0x7821, 0x217e,
+ 0x7825, 0x0c50,
+ 0x7826, 0x0846,
+ 0x7827, 0x0668,
+ 0x7832, 0x0e52,
+ 0x7834, 0x0d01,
+ 0x783a, 0x0c51,
+ 0x783f, 0x07ee,
+ 0x7845, 0x16e0,
+ 0x784e, 0x217f,
+ 0x785d, 0x09b3,
+ 0x7864, 0x2180,
+ 0x786b, 0x0f7a,
+ 0x786c, 0x07d7,
+ 0x786f, 0x075b,
+ 0x7872, 0x0d37,
+ 0x7874, 0x16e2,
+ 0x787a, 0x2181,
+ 0x787c, 0x16e4,
+ 0x7881, 0x079f,
+ 0x7886, 0x16e3,
+ 0x7887, 0x0c12,
+ 0x788c, 0x16e6,
+ 0x788d, 0x0595,
+ 0x788e, 0x16e1,
+ 0x7891, 0x0d7e,
+ 0x7893, 0x04d2,
+ 0x7895, 0x085c,
+ 0x7897, 0x0ff8,
+ 0x789a, 0x16e5,
+ 0x78a3, 0x16e7,
+ 0x78a7, 0x0e1b,
+ 0x78a9, 0x0a7d,
+ 0x78aa, 0x16e9,
+ 0x78af, 0x16ea,
+ 0x78b5, 0x16e8,
+ 0x78ba, 0x05ac,
+ 0x78bc, 0x16f0,
+ 0x78be, 0x16ef,
+ 0x78c1, 0x08d3,
+ 0x78c5, 0x16f1,
+ 0x78c6, 0x16ec,
+ 0x78ca, 0x16f2,
+ 0x78cb, 0x16ed,
+ 0x78d0, 0x0d6c,
+ 0x78d1, 0x16eb,
+ 0x78d4, 0x16ee,
+ 0x78da, 0x16f5,
+ 0x78e7, 0x16f4,
+ 0x78e8, 0x0e8f,
+ 0x78ec, 0x16f3,
+ 0x78ef, 0x04af,
+ 0x78f4, 0x16f7,
+ 0x78fd, 0x16f6,
+ 0x7901, 0x09b4,
+ 0x7907, 0x16f8,
+ 0x790e, 0x0ac5,
+ 0x7911, 0x16fa,
+ 0x7912, 0x16f9,
+ 0x7919, 0x16fb,
+ 0x7926, 0x16dd,
+ 0x792a, 0x16df,
+ 0x792b, 0x16fd,
+ 0x792c, 0x16fc,
+ 0x7930, 0x2182,
+ 0x793a, 0x08d4,
+ 0x793c, 0x0fb1,
+ 0x793e, 0x08fe,
+ 0x7940, 0x16fe,
+ 0x7941, 0x070d,
+ 0x7947, 0x065a,
+ 0x7948, 0x0641,
+ 0x7949, 0x08b1,
+ 0x7950, 0x0f1e,
+ 0x7953, 0x1704,
+ 0x7955, 0x1703,
+ 0x7956, 0x0ac6,
+ 0x7957, 0x1700,
+ 0x795a, 0x1702,
+ 0x795d, 0x0955,
+ 0x795e, 0x0a06,
+ 0x795f, 0x1701,
+ 0x7960, 0x16ff,
+ 0x7962, 0x0ce0,
+ 0x7965, 0x09b5,
+ 0x7968, 0x0dae,
+ 0x796d, 0x0847,
+ 0x7977, 0x0c72,
+ 0x797a, 0x1705,
+ 0x797f, 0x1706,
+ 0x7980, 0x171c,
+ 0x7981, 0x06d0,
+ 0x7984, 0x0fe3,
+ 0x7985, 0x0ab7,
+ 0x798a, 0x1707,
+ 0x798d, 0x0552,
+ 0x798e, 0x0c13,
+ 0x798f, 0x0df1,
+ 0x7994, 0x2186,
+ 0x799b, 0x2188,
+ 0x799d, 0x1708,
+ 0x79a6, 0x0694,
+ 0x79a7, 0x1709,
+ 0x79aa, 0x170b,
+ 0x79ae, 0x170c,
+ 0x79b0, 0x0cdf,
+ 0x79b1, 0x1e4e,
+ 0x79b3, 0x170d,
+ 0x79b9, 0x170e,
+ 0x79bd, 0x06d1,
+ 0x79be, 0x0553,
+ 0x79bf, 0x0c9d,
+ 0x79c0, 0x0932,
+ 0x79c1, 0x08b2,
+ 0x79c9, 0x1710,
+ 0x79cb, 0x0933,
+ 0x79d1, 0x054a,
+ 0x79d2, 0x0db5,
+ 0x79d5, 0x1711,
+ 0x79d8, 0x0d7f,
+ 0x79df, 0x0ac7,
+ 0x79e1, 0x1714,
+ 0x79e3, 0x1715,
+ 0x79e4, 0x0d1f,
+ 0x79e6, 0x0a07,
+ 0x79e7, 0x1712,
+ 0x79e9, 0x0b9f,
+ 0x79ec, 0x1713,
+ 0x79f0, 0x09b6,
+ 0x79fb, 0x04a0,
+ 0x7a00, 0x0643,
+ 0x7a08, 0x1716,
+ 0x7a0b, 0x0c14,
+ 0x7a0d, 0x1717,
+ 0x7a0e, 0x0a6b,
+ 0x7a14, 0x0eb9,
+ 0x7a17, 0x0d95,
+ 0x7a18, 0x1718,
+ 0x7a1a, 0x0b93,
+ 0x7a1c, 0x0f8f,
+ 0x7a1f, 0x171b,
+ 0x7a20, 0x171a,
+ 0x7a2e, 0x091b,
+ 0x7a31, 0x171d,
+ 0x7a32, 0x04b4,
+ 0x7a37, 0x1720,
+ 0x7a3b, 0x171e,
+ 0x7a3c, 0x0554,
+ 0x7a3d, 0x0724,
+ 0x7a3e, 0x171f,
+ 0x7a3f, 0x07d8,
+ 0x7a40, 0x0804,
+ 0x7a42, 0x0e36,
+ 0x7a43, 0x1721,
+ 0x7a46, 0x0e82,
+ 0x7a49, 0x1723,
+ 0x7a4d, 0x0a75,
+ 0x7a4e, 0x04f1,
+ 0x7a4f, 0x053a,
+ 0x7a50, 0x0470,
+ 0x7a57, 0x1722,
+ 0x7a61, 0x1724,
+ 0x7a63, 0x09df,
+ 0x7a69, 0x1726,
+ 0x7a6b, 0x05ad,
+ 0x7a70, 0x1728,
+ 0x7a74, 0x0740,
+ 0x7a76, 0x0680,
+ 0x7a79, 0x1729,
+ 0x7a7a, 0x06ed,
+ 0x7a7d, 0x172a,
+ 0x7a7f, 0x0aa0,
+ 0x7a81, 0x0ca5,
+ 0x7a83, 0x0a84,
+ 0x7a84, 0x0865,
+ 0x7a88, 0x172b,
+ 0x7a92, 0x0ba0,
+ 0x7a93, 0x0aed,
+ 0x7a95, 0x172d,
+ 0x7a96, 0x172f,
+ 0x7a97, 0x172c,
+ 0x7a98, 0x172e,
+ 0x7a9f, 0x06f8,
+ 0x7aa9, 0x1730,
+ 0x7aaa, 0x06fc,
+ 0x7aae, 0x0681,
+ 0x7aaf, 0x0f3c,
+ 0x7ab0, 0x1732,
+ 0x7ab6, 0x1733,
+ 0x7aba, 0x04d0,
+ 0x7abf, 0x1736,
+ 0x7ac3, 0x05d4,
+ 0x7ac4, 0x1735,
+ 0x7ac5, 0x1734,
+ 0x7ac7, 0x1738,
+ 0x7ac8, 0x1731,
+ 0x7aca, 0x1739,
+ 0x7acb, 0x0f71,
+ 0x7acd, 0x173a,
+ 0x7acf, 0x173b,
+ 0x7ad1, 0x2189,
+ 0x7ad2, 0x11c5,
+ 0x7ad3, 0x173d,
+ 0x7ad5, 0x173c,
+ 0x7ad9, 0x173e,
+ 0x7adc, 0x0f7d,
+ 0x7add, 0x1740,
+ 0x7adf, 0x1c08,
+ 0x7ae0, 0x09b7,
+ 0x7ae1, 0x1741,
+ 0x7ae3, 0x0961,
+ 0x7ae5, 0x0c90,
+ 0x7ae6, 0x1743,
+ 0x7ae7, 0x218a,
+ 0x7aea, 0x0b66,
+ 0x7aeb, 0x218c,
+ 0x7aed, 0x1744,
+ 0x7aef, 0x0b7a,
+ 0x7af0, 0x1745,
+ 0x7af6, 0x069d,
+ 0x7af8, 0x1076,
+ 0x7af9, 0x0b9b,
+ 0x7afa, 0x08df,
+ 0x7aff, 0x0604,
+ 0x7b02, 0x1746,
+ 0x7b04, 0x1753,
+ 0x7b06, 0x1749,
+ 0x7b08, 0x0682,
+ 0x7b0a, 0x1748,
+ 0x7b0b, 0x1755,
+ 0x7b0f, 0x1747,
+ 0x7b11, 0x09b8,
+ 0x7b18, 0x174b,
+ 0x7b1b, 0x0c25,
+ 0x7b1e, 0x174d,
+ 0x7b20, 0x05bc,
+ 0x7b25, 0x0a20,
+ 0x7b26, 0x0dd6,
+ 0x7b28, 0x174f,
+ 0x7b2c, 0x0b48,
+ 0x7b33, 0x174a,
+ 0x7b35, 0x174e,
+ 0x7b36, 0x1750,
+ 0x7b39, 0x086b,
+ 0x7b45, 0x1757,
+ 0x7b46, 0x0da0,
+ 0x7b48, 0x0d3a,
+ 0x7b49, 0x0c73,
+ 0x7b4b, 0x06d2,
+ 0x7b4c, 0x1756,
+ 0x7b4d, 0x1754,
+ 0x7b4f, 0x0d49,
+ 0x7b50, 0x1751,
+ 0x7b51, 0x0b9c,
+ 0x7b52, 0x0c75,
+ 0x7b54, 0x0c74,
+ 0x7b56, 0x0866,
+ 0x7b5d, 0x1769,
+ 0x7b65, 0x1759,
+ 0x7b67, 0x175b,
+ 0x7b6c, 0x175e,
+ 0x7b6e, 0x175f,
+ 0x7b70, 0x175c,
+ 0x7b74, 0x175a,
+ 0x7b75, 0x1758,
+ 0x7b7a, 0x1752,
+ 0x7b86, 0x0e1f,
+ 0x7b87, 0x0555,
+ 0x7b8b, 0x1766,
+ 0x7b8d, 0x1763,
+ 0x7b8f, 0x1768,
+ 0x7b92, 0x1767,
+ 0x7b94, 0x0d29,
+ 0x7b95, 0x0eb3,
+ 0x7b97, 0x0889,
+ 0x7b98, 0x1761,
+ 0x7b99, 0x176a,
+ 0x7b9a, 0x1765,
+ 0x7b9c, 0x1764,
+ 0x7b9d, 0x1760,
+ 0x7b9e, 0x218d,
+ 0x7b9f, 0x1762,
+ 0x7ba1, 0x0605,
+ 0x7baa, 0x0b7b,
+ 0x7bad, 0x0aa1,
+ 0x7bb1, 0x0d36,
+ 0x7bb4, 0x176f,
+ 0x7bb8, 0x0d38,
+ 0x7bc0, 0x0a85,
+ 0x7bc1, 0x176c,
+ 0x7bc4, 0x0d63,
+ 0x7bc6, 0x1770,
+ 0x7bc7, 0x0e23,
+ 0x7bc9, 0x0b99,
+ 0x7bcb, 0x176b,
+ 0x7bcc, 0x176d,
+ 0x7bcf, 0x176e,
+ 0x7bdd, 0x1771,
+ 0x7be0, 0x08f0,
+ 0x7be4, 0x0c9e,
+ 0x7be5, 0x1776,
+ 0x7be6, 0x1775,
+ 0x7be9, 0x1772,
+ 0x7bed, 0x0fdc,
+ 0x7bf3, 0x177b,
+ 0x7bf6, 0x177f,
+ 0x7bf7, 0x177c,
+ 0x7c00, 0x1778,
+ 0x7c07, 0x1779,
+ 0x7c0d, 0x177e,
+ 0x7c11, 0x1773,
+ 0x7c12, 0x10ea,
+ 0x7c13, 0x177a,
+ 0x7c14, 0x1774,
+ 0x7c17, 0x177d,
+ 0x7c1e, 0x1e3b,
+ 0x7c1f, 0x1783,
+ 0x7c21, 0x0606,
+ 0x7c23, 0x1780,
+ 0x7c27, 0x1781,
+ 0x7c2a, 0x1782,
+ 0x7c2b, 0x1785,
+ 0x7c37, 0x1784,
+ 0x7c38, 0x0d8a,
+ 0x7c3d, 0x1786,
+ 0x7c3e, 0x0fc4,
+ 0x7c3f, 0x0e3d,
+ 0x7c40, 0x178b,
+ 0x7c43, 0x1788,
+ 0x7c4c, 0x1787,
+ 0x7c4d, 0x0a76,
+ 0x7c4f, 0x178a,
+ 0x7c50, 0x178c,
+ 0x7c54, 0x1789,
+ 0x7c56, 0x1790,
+ 0x7c58, 0x178d,
+ 0x7c5f, 0x178e,
+ 0x7c60, 0x1777,
+ 0x7c64, 0x178f,
+ 0x7c65, 0x1791,
+ 0x7c6c, 0x1792,
+ 0x7c73, 0x0e16,
+ 0x7c75, 0x1793,
+ 0x7c7e, 0x0eee,
+ 0x7c81, 0x06c6,
+ 0x7c82, 0x06ff,
+ 0x7c83, 0x1794,
+ 0x7c89, 0x0e04,
+ 0x7c8b, 0x0a2e,
+ 0x7c8d, 0x0ebc,
+ 0x7c90, 0x1795,
+ 0x7c92, 0x0f7b,
+ 0x7c95, 0x0d2a,
+ 0x7c97, 0x0ac8,
+ 0x7c98, 0x0cea,
+ 0x7c9b, 0x0957,
+ 0x7c9f, 0x0484,
+ 0x7ca1, 0x179a,
+ 0x7ca2, 0x1798,
+ 0x7ca4, 0x1796,
+ 0x7ca5, 0x05dd,
+ 0x7ca7, 0x09b9,
+ 0x7ca8, 0x179b,
+ 0x7cab, 0x1799,
+ 0x7cad, 0x1797,
+ 0x7cae, 0x179f,
+ 0x7cb1, 0x179e,
+ 0x7cb2, 0x179d,
+ 0x7cb3, 0x179c,
+ 0x7cb9, 0x17a0,
+ 0x7cbd, 0x17a1,
+ 0x7cbe, 0x0a5e,
+ 0x7cc0, 0x17a2,
+ 0x7cc2, 0x17a4,
+ 0x7cc5, 0x17a3,
+ 0x7cca, 0x0786,
+ 0x7cce, 0x0aba,
+ 0x7cd2, 0x17a6,
+ 0x7cd6, 0x0c76,
+ 0x7cd8, 0x17a5,
+ 0x7cdc, 0x17a7,
+ 0x7cde, 0x0e05,
+ 0x7cdf, 0x0aee,
+ 0x7ce0, 0x07d9,
+ 0x7ce2, 0x17a8,
+ 0x7ce7, 0x0f90,
+ 0x7cef, 0x17aa,
+ 0x7cf2, 0x17ab,
+ 0x7cf4, 0x17ac,
+ 0x7cf6, 0x17ad,
+ 0x7cf8, 0x08b3,
+ 0x7cfa, 0x17ae,
+ 0x7cfb, 0x0725,
+ 0x7cfe, 0x0684,
+ 0x7d00, 0x0644,
+ 0x7d02, 0x17b0,
+ 0x7d04, 0x0eff,
+ 0x7d05, 0x07da,
+ 0x7d06, 0x17af,
+ 0x7d0a, 0x17b3,
+ 0x7d0b, 0x0ef2,
+ 0x7d0d, 0x0cf2,
+ 0x7d10, 0x0da5,
+ 0x7d14, 0x096d,
+ 0x7d15, 0x17b2,
+ 0x7d17, 0x08ff,
+ 0x7d18, 0x07db,
+ 0x7d19, 0x08b4,
+ 0x7d1a, 0x0683,
+ 0x7d1b, 0x0e06,
+ 0x7d1c, 0x17b1,
+ 0x7d20, 0x0ac9,
+ 0x7d21, 0x0e70,
+ 0x7d22, 0x0867,
+ 0x7d2b, 0x08b5,
+ 0x7d2c, 0x0bf9,
+ 0x7d2e, 0x17b6,
+ 0x7d2f, 0x0fa7,
+ 0x7d30, 0x0849,
+ 0x7d32, 0x17b7,
+ 0x7d33, 0x0a08,
+ 0x7d35, 0x17b9,
+ 0x7d39, 0x09ba,
+ 0x7d3a, 0x0820,
+ 0x7d3f, 0x17b8,
+ 0x7d42, 0x0934,
+ 0x7d43, 0x0772,
+ 0x7d44, 0x0aca,
+ 0x7d45, 0x17b4,
+ 0x7d46, 0x17ba,
+ 0x7d48, 0x218f,
+ 0x7d4b, 0x17b5,
+ 0x7d4c, 0x0726,
+ 0x7d4e, 0x17bd,
+ 0x7d4f, 0x17c1,
+ 0x7d50, 0x0741,
+ 0x7d56, 0x17bc,
+ 0x7d5b, 0x17c5,
+ 0x7d5c, 0x2190,
+ 0x7d5e, 0x07dc,
+ 0x7d61, 0x0f57,
+ 0x7d62, 0x0480,
+ 0x7d63, 0x17c2,
+ 0x7d66, 0x0685,
+ 0x7d68, 0x17bf,
+ 0x7d6e, 0x17c0,
+ 0x7d71, 0x0c77,
+ 0x7d72, 0x17be,
+ 0x7d73, 0x17bb,
+ 0x7d75, 0x0586,
+ 0x7d76, 0x0a88,
+ 0x7d79, 0x075c,
+ 0x7d7d, 0x17c7,
+ 0x7d89, 0x17c4,
+ 0x7d8f, 0x17c6,
+ 0x7d93, 0x17c3,
+ 0x7d99, 0x0727,
+ 0x7d9a, 0x0b13,
+ 0x7d9b, 0x17c8,
+ 0x7d9c, 0x0af0,
+ 0x7d9f, 0x17d5,
+ 0x7da0, 0x2192,
+ 0x7da2, 0x17d1,
+ 0x7da3, 0x17cb,
+ 0x7dab, 0x17cf,
+ 0x7dac, 0x0926,
+ 0x7dad, 0x04a1,
+ 0x7dae, 0x17ca,
+ 0x7daf, 0x17d2,
+ 0x7db0, 0x17d6,
+ 0x7db1, 0x07dd,
+ 0x7db2, 0x0ee2,
+ 0x7db4, 0x0bf2,
+ 0x7db5, 0x17cc,
+ 0x7db7, 0x2191,
+ 0x7db8, 0x17d4,
+ 0x7dba, 0x17c9,
+ 0x7dbb, 0x0b7c,
+ 0x7dbd, 0x17ce,
+ 0x7dbe, 0x0481,
+ 0x7dbf, 0x0ed6,
+ 0x7dc7, 0x17cd,
+ 0x7dca, 0x06d3,
+ 0x7dcb, 0x0d80,
+ 0x7dcf, 0x0aef,
+ 0x7dd1, 0x0f98,
+ 0x7dd2, 0x0979,
+ 0x7dd5, 0x17fd,
+ 0x7dd6, 0x2193,
+ 0x7dd8, 0x17d7,
+ 0x7dda, 0x0aa2,
+ 0x7ddc, 0x17d3,
+ 0x7ddd, 0x17d8,
+ 0x7dde, 0x17da,
+ 0x7de0, 0x0c15,
+ 0x7de1, 0x17dd,
+ 0x7de4, 0x17d9,
+ 0x7de8, 0x0e24,
+ 0x7de9, 0x0607,
+ 0x7dec, 0x0ed7,
+ 0x7def, 0x04a2,
+ 0x7df2, 0x17dc,
+ 0x7df4, 0x0fc5,
+ 0x7dfb, 0x17db,
+ 0x7e01, 0x0511,
+ 0x7e04, 0x0cc4,
+ 0x7e05, 0x17de,
+ 0x7e09, 0x17e5,
+ 0x7e0a, 0x17df,
+ 0x7e0b, 0x17e6,
+ 0x7e12, 0x17e2,
+ 0x7e1b, 0x0d31,
+ 0x7e1e, 0x08f6,
+ 0x7e1f, 0x17e4,
+ 0x7e21, 0x17e1,
+ 0x7e22, 0x17e7,
+ 0x7e23, 0x17e0,
+ 0x7e26, 0x094e,
+ 0x7e2b, 0x0e53,
+ 0x7e2e, 0x0956,
+ 0x7e31, 0x17e3,
+ 0x7e32, 0x17ef,
+ 0x7e35, 0x17eb,
+ 0x7e37, 0x17ee,
+ 0x7e39, 0x17ec,
+ 0x7e3a, 0x17f0,
+ 0x7e3b, 0x17ea,
+ 0x7e3d, 0x17d0,
+ 0x7e3e, 0x0a77,
+ 0x7e41, 0x0d5f,
+ 0x7e43, 0x17ed,
+ 0x7e46, 0x17e8,
+ 0x7e4a, 0x0aa3,
+ 0x7e4b, 0x0728,
+ 0x7e4d, 0x0935,
+ 0x7e52, 0x2194,
+ 0x7e54, 0x09eb,
+ 0x7e55, 0x0ab8,
+ 0x7e56, 0x17f3,
+ 0x7e59, 0x17f5,
+ 0x7e5d, 0x17f2,
+ 0x7e5e, 0x17f4,
+ 0x7e61, 0x1e11,
+ 0x7e66, 0x17e9,
+ 0x7e67, 0x17f1,
+ 0x7e69, 0x17f9,
+ 0x7e6a, 0x17f8,
+ 0x7e6b, 0x1df7,
+ 0x7e6d, 0x0ea8,
+ 0x7e70, 0x0701,
+ 0x7e79, 0x17f7,
+ 0x7e7b, 0x17fb,
+ 0x7e7c, 0x17fa,
+ 0x7e7d, 0x17fe,
+ 0x7e7f, 0x1800,
+ 0x7e82, 0x088a,
+ 0x7e83, 0x17fc,
+ 0x7e88, 0x1801,
+ 0x7e8a, 0x20a7,
+ 0x7e8c, 0x1803,
+ 0x7e8e, 0x1809,
+ 0x7e8f, 0x0c35,
+ 0x7e90, 0x1805,
+ 0x7e92, 0x1804,
+ 0x7e93, 0x1806,
+ 0x7e96, 0x1808,
+ 0x7e9b, 0x180a,
+ 0x7f36, 0x0608,
+ 0x7f38, 0x180c,
+ 0x7f3a, 0x180d,
+ 0x7f45, 0x180e,
+ 0x7f47, 0x2195,
+ 0x7f4c, 0x180f,
+ 0x7f50, 0x1812,
+ 0x7f54, 0x1815,
+ 0x7f55, 0x1814,
+ 0x7f58, 0x1816,
+ 0x7f5f, 0x1817,
+ 0x7f67, 0x181b,
+ 0x7f68, 0x1819,
+ 0x7f6a, 0x0851,
+ 0x7f6b, 0x0729,
+ 0x7f6e, 0x0b94,
+ 0x7f70, 0x0d47,
+ 0x7f72, 0x097a,
+ 0x7f75, 0x0d03,
+ 0x7f77, 0x0d81,
+ 0x7f78, 0x181c,
+ 0x7f79, 0x1336,
+ 0x7f82, 0x181d,
+ 0x7f83, 0x181f,
+ 0x7f85, 0x0f4f,
+ 0x7f86, 0x181e,
+ 0x7f87, 0x1821,
+ 0x7f88, 0x1820,
+ 0x7f8a, 0x0f3d,
+ 0x7f8c, 0x1822,
+ 0x7f8e, 0x0d92,
+ 0x7f94, 0x1823,
+ 0x7f9a, 0x1826,
+ 0x7f9d, 0x1825,
+ 0x7f9e, 0x1824,
+ 0x7fa1, 0x2196,
+ 0x7fa3, 0x1827,
+ 0x7fa4, 0x0708,
+ 0x7fa8, 0x0aa4,
+ 0x7fa9, 0x065b,
+ 0x7fae, 0x182b,
+ 0x7faf, 0x1828,
+ 0x7fb2, 0x1829,
+ 0x7fb6, 0x182c,
+ 0x7fb8, 0x182d,
+ 0x7fb9, 0x182a,
+ 0x7fbd, 0x04cb,
+ 0x7fc1, 0x0527,
+ 0x7fc5, 0x182f,
+ 0x7fca, 0x1831,
+ 0x7fcc, 0x0f4c,
+ 0x7fd2, 0x0936,
+ 0x7fd4, 0x1833,
+ 0x7fd5, 0x1832,
+ 0x7fe0, 0x0a2f,
+ 0x7fe1, 0x1834,
+ 0x7fe6, 0x1835,
+ 0x7fe9, 0x1836,
+ 0x7feb, 0x0621,
+ 0x7ff0, 0x0609,
+ 0x7ff3, 0x1837,
+ 0x7ff9, 0x1838,
+ 0x7ffb, 0x0e8b,
+ 0x7ffc, 0x0f4d,
+ 0x8000, 0x0f3e,
+ 0x8001, 0x0fdd,
+ 0x8003, 0x07df,
+ 0x8004, 0x183b,
+ 0x8005, 0x0900,
+ 0x8006, 0x183a,
+ 0x800b, 0x183c,
+ 0x800c, 0x08d5,
+ 0x8010, 0x0b31,
+ 0x8012, 0x183d,
+ 0x8015, 0x07de,
+ 0x8017, 0x0ee3,
+ 0x8018, 0x183e,
+ 0x801c, 0x1840,
+ 0x8021, 0x1841,
+ 0x8028, 0x1842,
+ 0x8033, 0x08d6,
+ 0x8036, 0x0ef9,
+ 0x803b, 0x1844,
+ 0x803d, 0x0b7d,
+ 0x803f, 0x1843,
+ 0x8046, 0x1846,
+ 0x804a, 0x1845,
+ 0x8052, 0x1847,
+ 0x8056, 0x0a5f,
+ 0x8058, 0x1848,
+ 0x805a, 0x1849,
+ 0x805e, 0x0e09,
+ 0x805f, 0x184a,
+ 0x8061, 0x0af1,
+ 0x8062, 0x184b,
+ 0x8068, 0x184c,
+ 0x806f, 0x0fc6,
+ 0x8070, 0x184f,
+ 0x8072, 0x184e,
+ 0x8073, 0x184d,
+ 0x8074, 0x0bcc,
+ 0x8076, 0x1850,
+ 0x8077, 0x09ec,
+ 0x8079, 0x1851,
+ 0x807d, 0x1852,
+ 0x807e, 0x0fde,
+ 0x807f, 0x1853,
+ 0x8084, 0x1854,
+ 0x8085, 0x1856,
+ 0x8086, 0x1855,
+ 0x8087, 0x0d39,
+ 0x8089, 0x0cd1,
+ 0x808b, 0x0fe4,
+ 0x808c, 0x0d3d,
+ 0x8093, 0x1858,
+ 0x8096, 0x09bb,
+ 0x8098, 0x0d9c,
+ 0x809a, 0x1859,
+ 0x809b, 0x1857,
+ 0x809d, 0x060a,
+ 0x80a1, 0x0788,
+ 0x80a2, 0x08b6,
+ 0x80a5, 0x0d82,
+ 0x80a9, 0x075e,
+ 0x80aa, 0x0e71,
+ 0x80ac, 0x185c,
+ 0x80ad, 0x185a,
+ 0x80af, 0x07e0,
+ 0x80b1, 0x07e1,
+ 0x80b2, 0x04ad,
+ 0x80b4, 0x0858,
+ 0x80ba, 0x0d0f,
+ 0x80c3, 0x04a3,
+ 0x80c4, 0x1861,
+ 0x80c6, 0x0b7e,
+ 0x80cc, 0x0d0e,
+ 0x80ce, 0x0b3b,
+ 0x80d6, 0x1863,
+ 0x80d9, 0x185f,
+ 0x80da, 0x1862,
+ 0x80db, 0x185d,
+ 0x80dd, 0x1860,
+ 0x80de, 0x0e54,
+ 0x80e1, 0x0789,
+ 0x80e4, 0x04c1,
+ 0x80e5, 0x185e,
+ 0x80ef, 0x1865,
+ 0x80f1, 0x1866,
+ 0x80f4, 0x0c91,
+ 0x80f8, 0x06b3,
+ 0x80fc, 0x1871,
+ 0x80fd, 0x0cf3,
+ 0x8102, 0x08b7,
+ 0x8105, 0x06b4,
+ 0x8106, 0x0a6c,
+ 0x8107, 0x0fec,
+ 0x8108, 0x0eba,
+ 0x8109, 0x1864,
+ 0x810a, 0x0a78,
+ 0x811a, 0x066d,
+ 0x811b, 0x1867,
+ 0x8123, 0x1869,
+ 0x8129, 0x1868,
+ 0x812f, 0x186a,
+ 0x8131, 0x0b64,
+ 0x8133, 0x0cf4,
+ 0x8139, 0x0bcd,
+ 0x813e, 0x186e,
+ 0x8146, 0x186d,
+ 0x814b, 0x186b,
+ 0x814e, 0x0a1b,
+ 0x8150, 0x0dd7,
+ 0x8151, 0x1870,
+ 0x8153, 0x186f,
+ 0x8154, 0x07e2,
+ 0x8155, 0x0ff9,
+ 0x815f, 0x1880,
+ 0x8165, 0x1874,
+ 0x816b, 0x091c,
+ 0x816e, 0x1873,
+ 0x8170, 0x080a,
+ 0x8171, 0x1872,
+ 0x8174, 0x1876,
+ 0x8178, 0x0bce,
+ 0x8179, 0x0df2,
+ 0x817a, 0x0aa5,
+ 0x817f, 0x0b3c,
+ 0x8180, 0x187a,
+ 0x8182, 0x187b,
+ 0x8183, 0x1877,
+ 0x8188, 0x1878,
+ 0x818a, 0x1879,
+ 0x818f, 0x07e3,
+ 0x8193, 0x1881,
+ 0x8195, 0x187d,
+ 0x819a, 0x0dd8,
+ 0x819c, 0x0e9a,
+ 0x819d, 0x0d9a,
+ 0x81a0, 0x187c,
+ 0x81a3, 0x187f,
+ 0x81a4, 0x187e,
+ 0x81a8, 0x0e72,
+ 0x81a9, 0x1882,
+ 0x81b0, 0x1883,
+ 0x81b3, 0x0ab9,
+ 0x81b5, 0x1884,
+ 0x81b8, 0x1886,
+ 0x81ba, 0x188a,
+ 0x81bd, 0x1887,
+ 0x81be, 0x1885,
+ 0x81bf, 0x0cf5,
+ 0x81c0, 0x1888,
+ 0x81c2, 0x1889,
+ 0x81c6, 0x0532,
+ 0x81c8, 0x1890,
+ 0x81c9, 0x188b,
+ 0x81cd, 0x188c,
+ 0x81d1, 0x188d,
+ 0x81d3, 0x0b01,
+ 0x81d8, 0x188f,
+ 0x81d9, 0x188e,
+ 0x81da, 0x1891,
+ 0x81df, 0x1892,
+ 0x81e3, 0x0a09,
+ 0x81e5, 0x0569,
+ 0x81e7, 0x1894,
+ 0x81e8, 0x0f9f,
+ 0x81ea, 0x08d7,
+ 0x81ed, 0x0937,
+ 0x81f3, 0x08b8,
+ 0x81f4, 0x0b95,
+ 0x81fa, 0x1895,
+ 0x81fc, 0x04d3,
+ 0x81fe, 0x1897,
+ 0x8201, 0x1898,
+ 0x8205, 0x189a,
+ 0x8207, 0x189b,
+ 0x8208, 0x06b5,
+ 0x8209, 0x13af,
+ 0x820a, 0x189c,
+ 0x820c, 0x0a89,
+ 0x820d, 0x189d,
+ 0x820e, 0x08f7,
+ 0x8210, 0x189e,
+ 0x8212, 0x1009,
+ 0x8216, 0x189f,
+ 0x8217, 0x0e2e,
+ 0x8218, 0x0618,
+ 0x821b, 0x0aa6,
+ 0x821c, 0x0962,
+ 0x821e, 0x0de3,
+ 0x821f, 0x0938,
+ 0x8229, 0x18a0,
+ 0x822a, 0x07e4,
+ 0x822b, 0x18a1,
+ 0x822c, 0x0d60,
+ 0x822e, 0x18af,
+ 0x8233, 0x18a3,
+ 0x8235, 0x0b29,
+ 0x8236, 0x0d2b,
+ 0x8237, 0x0773,
+ 0x8238, 0x18a2,
+ 0x8239, 0x0aa7,
+ 0x8240, 0x18a4,
+ 0x8247, 0x0c16,
+ 0x8258, 0x18a6,
+ 0x8259, 0x18a5,
+ 0x825a, 0x18a8,
+ 0x825d, 0x18a7,
+ 0x825f, 0x18a9,
+ 0x8262, 0x18ab,
+ 0x8264, 0x18aa,
+ 0x8266, 0x060b,
+ 0x8268, 0x18ac,
+ 0x826a, 0x18ad,
+ 0x826e, 0x0821,
+ 0x826f, 0x0f91,
+ 0x8271, 0x18b0,
+ 0x8272, 0x09ed,
+ 0x8276, 0x0512,
+ 0x8277, 0x18b1,
+ 0x827e, 0x18b3,
+ 0x828b, 0x04b6,
+ 0x828d, 0x18b4,
+ 0x8292, 0x18b5,
+ 0x8299, 0x0dd9,
+ 0x829d, 0x08f3,
+ 0x829f, 0x18b7,
+ 0x82a5, 0x0587,
+ 0x82a6, 0x0476,
+ 0x82ab, 0x18b6,
+ 0x82ac, 0x18b9,
+ 0x82ad, 0x0d04,
+ 0x82af, 0x0a0a,
+ 0x82b1, 0x0556,
+ 0x82b3, 0x0e55,
+ 0x82b8, 0x0733,
+ 0x82b9, 0x06d4,
+ 0x82bb, 0x18b8,
+ 0x82bd, 0x056a,
+ 0x82c5, 0x05df,
+ 0x82d1, 0x0513,
+ 0x82d2, 0x18bd,
+ 0x82d3, 0x0fb2,
+ 0x82d4, 0x0b3d,
+ 0x82d7, 0x0db6,
+ 0x82d9, 0x18c9,
+ 0x82db, 0x0557,
+ 0x82dc, 0x18c7,
+ 0x82de, 0x18c5,
+ 0x82df, 0x18bc,
+ 0x82e1, 0x18ba,
+ 0x82e3, 0x18bb,
+ 0x82e5, 0x090f,
+ 0x82e6, 0x06e4,
+ 0x82e7, 0x0bb5,
+ 0x82eb, 0x0ca9,
+ 0x82f1, 0x04f3,
+ 0x82f3, 0x18bf,
+ 0x82f4, 0x18be,
+ 0x82f9, 0x18c4,
+ 0x82fa, 0x18c0,
+ 0x82fb, 0x18c3,
+ 0x8301, 0x2198,
+ 0x8302, 0x0edc,
+ 0x8303, 0x18c2,
+ 0x8304, 0x0558,
+ 0x8305, 0x05db,
+ 0x8306, 0x18c6,
+ 0x8309, 0x18c8,
+ 0x830e, 0x072a,
+ 0x8316, 0x18cc,
+ 0x8317, 0x18d5,
+ 0x831c, 0x046f,
+ 0x8323, 0x18dd,
+ 0x8328, 0x04b5,
+ 0x832b, 0x18d4,
+ 0x832f, 0x18d3,
+ 0x8331, 0x18ce,
+ 0x8332, 0x18cd,
+ 0x8334, 0x18cb,
+ 0x8335, 0x18ca,
+ 0x8336, 0x0ba1,
+ 0x8338, 0x0b5b,
+ 0x8339, 0x18d0,
+ 0x8340, 0x18cf,
+ 0x8345, 0x18d2,
+ 0x8349, 0x0af2,
+ 0x834a, 0x072b,
+ 0x834f, 0x04e3,
+ 0x8350, 0x18d1,
+ 0x8352, 0x07e5,
+ 0x8358, 0x0af3,
+ 0x8362, 0x2199,
+ 0x8373, 0x18e3,
+ 0x8375, 0x18e4,
+ 0x8377, 0x0559,
+ 0x837b, 0x052e,
+ 0x837c, 0x18e1,
+ 0x837f, 0x219a,
+ 0x8385, 0x18d7,
+ 0x8387, 0x18df,
+ 0x8389, 0x18e6,
+ 0x838a, 0x18e0,
+ 0x838e, 0x18de,
+ 0x8393, 0x18c1,
+ 0x8396, 0x18dc,
+ 0x839a, 0x18d8,
+ 0x839e, 0x060c,
+ 0x839f, 0x18da,
+ 0x83a0, 0x18e5,
+ 0x83a2, 0x18db,
+ 0x83a8, 0x18e7,
+ 0x83aa, 0x18d9,
+ 0x83ab, 0x0d32,
+ 0x83b1, 0x0f53,
+ 0x83b5, 0x18e2,
+ 0x83bd, 0x18f8,
+ 0x83c1, 0x18f0,
+ 0x83c5, 0x0a41,
+ 0x83c7, 0x219b,
+ 0x83ca, 0x0660,
+ 0x83cc, 0x06d5,
+ 0x83ce, 0x18eb,
+ 0x83d3, 0x055b,
+ 0x83d6, 0x09bc,
+ 0x83d8, 0x18ee,
+ 0x83dc, 0x084a,
+ 0x83df, 0x0c4b,
+ 0x83e0, 0x18f3,
+ 0x83e9, 0x0e3e,
+ 0x83eb, 0x18ea,
+ 0x83ef, 0x055a,
+ 0x83f0, 0x078a,
+ 0x83f1, 0x0d9b,
+ 0x83f2, 0x18f4,
+ 0x83f4, 0x18e8,
+ 0x83f6, 0x219c,
+ 0x83f7, 0x18f1,
+ 0x83fb, 0x18fb,
+ 0x83fd, 0x18ec,
+ 0x8403, 0x18ed,
+ 0x8404, 0x0c92,
+ 0x8407, 0x18f2,
+ 0x840a, 0x1e7f,
+ 0x840b, 0x18ef,
+ 0x840c, 0x0e56,
+ 0x840d, 0x18f5,
+ 0x840e, 0x04a4,
+ 0x8413, 0x18e9,
+ 0x8420, 0x18f7,
+ 0x8422, 0x18f6,
+ 0x8429, 0x0d21,
+ 0x842a, 0x18fd,
+ 0x842c, 0x1908,
+ 0x8431, 0x05dc,
+ 0x8435, 0x190b,
+ 0x8438, 0x18f9,
+ 0x843c, 0x18fe,
+ 0x843d, 0x0f58,
+ 0x8446, 0x1907,
+ 0x8448, 0x219d,
+ 0x8449, 0x0f3f,
+ 0x844e, 0x0f72,
+ 0x8457, 0x0bb6,
+ 0x845b, 0x05c9,
+ 0x8461, 0x0de4,
+ 0x8462, 0x190d,
+ 0x8463, 0x0c79,
+ 0x8466, 0x0475,
+ 0x8469, 0x1906,
+ 0x846b, 0x1902,
+ 0x846c, 0x0af4,
+ 0x846d, 0x18fc,
+ 0x846e, 0x1904,
+ 0x846f, 0x1909,
+ 0x8471, 0x0ce2,
+ 0x8475, 0x046e,
+ 0x8477, 0x1901,
+ 0x8479, 0x190a,
+ 0x847a, 0x0dea,
+ 0x8482, 0x1905,
+ 0x8484, 0x1900,
+ 0x848b, 0x09bd,
+ 0x8490, 0x0939,
+ 0x8494, 0x08d8,
+ 0x8499, 0x0ee4,
+ 0x849c, 0x0db9,
+ 0x849f, 0x1910,
+ 0x84a1, 0x1919,
+ 0x84ad, 0x1903,
+ 0x84b2, 0x05d5,
+ 0x84b4, 0x219e,
+ 0x84b8, 0x09e0,
+ 0x84b9, 0x190e,
+ 0x84bb, 0x1913,
+ 0x84bc, 0x0af5,
+ 0x84bf, 0x190f,
+ 0x84c1, 0x1916,
+ 0x84c4, 0x0b9d,
+ 0x84c6, 0x1917,
+ 0x84c9, 0x0f40,
+ 0x84ca, 0x190c,
+ 0x84cb, 0x0596,
+ 0x84cd, 0x1912,
+ 0x84d0, 0x1915,
+ 0x84d1, 0x0eb8,
+ 0x84d6, 0x1918,
+ 0x84d9, 0x1911,
+ 0x84da, 0x1914,
+ 0x84dc, 0x20ab,
+ 0x84ec, 0x0e57,
+ 0x84ee, 0x0fc7,
+ 0x84f4, 0x191c,
+ 0x84fc, 0x1923,
+ 0x84ff, 0x191b,
+ 0x8500, 0x08ef,
+ 0x8506, 0x18fa,
+ 0x8511, 0x0e1e,
+ 0x8513, 0x0eae,
+ 0x8514, 0x1922,
+ 0x8515, 0x1921,
+ 0x8517, 0x191d,
+ 0x851a, 0x04d8,
+ 0x851f, 0x1920,
+ 0x8521, 0x191a,
+ 0x8523, 0x1e1a,
+ 0x8526, 0x0bf1,
+ 0x852c, 0x191f,
+ 0x852d, 0x04c2,
+ 0x8535, 0x0b02,
+ 0x853d, 0x0e13,
+ 0x853e, 0x1eb5,
+ 0x8540, 0x1924,
+ 0x8541, 0x1928,
+ 0x8543, 0x0d6d,
+ 0x8548, 0x1927,
+ 0x8549, 0x09be,
+ 0x854a, 0x08f5,
+ 0x854b, 0x192a,
+ 0x854e, 0x06b6,
+ 0x8553, 0x219f,
+ 0x8555, 0x192b,
+ 0x8557, 0x0deb,
+ 0x8558, 0x1926,
+ 0x8559, 0x21a0,
+ 0x855a, 0x18ff,
+ 0x8563, 0x1925,
+ 0x8568, 0x0ff5,
+ 0x8569, 0x0c7a,
+ 0x856a, 0x0de5,
+ 0x856b, 0x21a1,
+ 0x856d, 0x1932,
+ 0x8577, 0x1938,
+ 0x857e, 0x1939,
+ 0x8580, 0x192c,
+ 0x8584, 0x0d2c,
+ 0x8587, 0x1936,
+ 0x8588, 0x192e,
+ 0x858a, 0x1930,
+ 0x8590, 0x193a,
+ 0x8591, 0x192f,
+ 0x8594, 0x1933,
+ 0x8597, 0x0514,
+ 0x8599, 0x0cbd,
+ 0x859b, 0x1934,
+ 0x859c, 0x1937,
+ 0x85a4, 0x192d,
+ 0x85a6, 0x0aa8,
+ 0x85a8, 0x1931,
+ 0x85a9, 0x0875,
+ 0x85aa, 0x0a0b,
+ 0x85ab, 0x0706,
+ 0x85ac, 0x0f00,
+ 0x85ae, 0x0f05,
+ 0x85af, 0x097c,
+ 0x85b0, 0x21a3,
+ 0x85b9, 0x193e,
+ 0x85ba, 0x193c,
+ 0x85c1, 0x0ff4,
+ 0x85c9, 0x193b,
+ 0x85cd, 0x0f5f,
+ 0x85cf, 0x193d,
+ 0x85d0, 0x193f,
+ 0x85d5, 0x1940,
+ 0x85dc, 0x1943,
+ 0x85dd, 0x1941,
+ 0x85e4, 0x0c7b,
+ 0x85e5, 0x1942,
+ 0x85e9, 0x0d61,
+ 0x85ea, 0x1935,
+ 0x85f7, 0x097d,
+ 0x85f9, 0x1944,
+ 0x85fa, 0x1949,
+ 0x85fb, 0x0af6,
+ 0x85fe, 0x1948,
+ 0x8602, 0x1929,
+ 0x8606, 0x194a,
+ 0x8607, 0x0acb,
+ 0x860a, 0x1945,
+ 0x860b, 0x1947,
+ 0x8613, 0x1946,
+ 0x8616, 0x14d0,
+ 0x8617, 0x14c1,
+ 0x861a, 0x194c,
+ 0x8622, 0x194b,
+ 0x862d, 0x0f60,
+ 0x862f, 0x16b1,
+ 0x8630, 0x194d,
+ 0x863f, 0x194e,
+ 0x864d, 0x194f,
+ 0x864e, 0x078b,
+ 0x8650, 0x066e,
+ 0x8654, 0x1951,
+ 0x8655, 0x1094,
+ 0x865a, 0x068f,
+ 0x865c, 0x0f82,
+ 0x865e, 0x06eb,
+ 0x865f, 0x1952,
+ 0x8667, 0x1953,
+ 0x866b, 0x0bac,
+ 0x8671, 0x1954,
+ 0x8679, 0x0cd2,
+ 0x867b, 0x047e,
+ 0x868a, 0x0563,
+ 0x868b, 0x1959,
+ 0x8693, 0x1955,
+ 0x8695, 0x088b,
+ 0x86a3, 0x1956,
+ 0x86a4, 0x0cf8,
+ 0x86a9, 0x1957,
+ 0x86ab, 0x1962,
+ 0x86af, 0x195c,
+ 0x86b0, 0x195f,
+ 0x86b6, 0x195b,
+ 0x86c4, 0x195d,
+ 0x86c6, 0x195e,
+ 0x86c7, 0x0904,
+ 0x86c9, 0x1960,
+ 0x86cb, 0x0b7f,
+ 0x86cd, 0x072c,
+ 0x86ce, 0x05a0,
+ 0x86d4, 0x1963,
+ 0x86d9, 0x059d,
+ 0x86db, 0x1968,
+ 0x86de, 0x1964,
+ 0x86df, 0x1967,
+ 0x86e4, 0x0d4e,
+ 0x86e9, 0x1965,
+ 0x86ec, 0x1966,
+ 0x86ed, 0x0dba,
+ 0x86ee, 0x0d6e,
+ 0x86ef, 0x1969,
+ 0x86f8, 0x0b5d,
+ 0x86f9, 0x1973,
+ 0x86fb, 0x196f,
+ 0x86fe, 0x056b,
+ 0x8700, 0x196d,
+ 0x8702, 0x0e58,
+ 0x8703, 0x196e,
+ 0x8706, 0x196b,
+ 0x8708, 0x196c,
+ 0x8709, 0x1971,
+ 0x870a, 0x1974,
+ 0x870d, 0x1972,
+ 0x8711, 0x1970,
+ 0x8712, 0x196a,
+ 0x8718, 0x0b96,
+ 0x871a, 0x197b,
+ 0x871c, 0x0eb6,
+ 0x8725, 0x1979,
+ 0x8729, 0x197a,
+ 0x8734, 0x1975,
+ 0x8737, 0x1977,
+ 0x873b, 0x1978,
+ 0x873f, 0x1976,
+ 0x8749, 0x0a8a,
+ 0x874b, 0x0fdf,
+ 0x874c, 0x197f,
+ 0x874e, 0x1980,
+ 0x8753, 0x1986,
+ 0x8755, 0x09f0,
+ 0x8757, 0x1982,
+ 0x8759, 0x1985,
+ 0x875f, 0x197d,
+ 0x8760, 0x197c,
+ 0x8763, 0x1987,
+ 0x8766, 0x055c,
+ 0x8768, 0x1983,
+ 0x876a, 0x1988,
+ 0x876e, 0x1984,
+ 0x8774, 0x1981,
+ 0x8776, 0x0bcf,
+ 0x8778, 0x197e,
+ 0x877f, 0x0d1e,
+ 0x8782, 0x198c,
+ 0x878d, 0x0f25,
+ 0x879f, 0x198b,
+ 0x87a2, 0x198a,
+ 0x87ab, 0x1993,
+ 0x87af, 0x198d,
+ 0x87b3, 0x1995,
+ 0x87ba, 0x0f50,
+ 0x87bb, 0x1998,
+ 0x87bd, 0x198f,
+ 0x87c0, 0x1990,
+ 0x87c4, 0x1994,
+ 0x87c6, 0x1997,
+ 0x87c7, 0x1996,
+ 0x87cb, 0x198e,
+ 0x87d0, 0x1991,
+ 0x87d2, 0x19a2,
+ 0x87e0, 0x199b,
+ 0x87ec, 0x1e23,
+ 0x87ef, 0x1999,
+ 0x87f2, 0x199a,
+ 0x87f6, 0x199f,
+ 0x87f9, 0x0588,
+ 0x87fb, 0x065c,
+ 0x87fe, 0x199e,
+ 0x8805, 0x1989,
+ 0x8807, 0x21a6,
+ 0x880d, 0x199d,
+ 0x880e, 0x19a1,
+ 0x880f, 0x199c,
+ 0x8811, 0x19a3,
+ 0x8815, 0x19a5,
+ 0x8816, 0x19a4,
+ 0x881f, 0x1e85,
+ 0x8821, 0x19a7,
+ 0x8822, 0x19a6,
+ 0x8823, 0x1961,
+ 0x8827, 0x19ab,
+ 0x8831, 0x19a8,
+ 0x8836, 0x19a9,
+ 0x8839, 0x19aa,
+ 0x883b, 0x19ac,
+ 0x8840, 0x0742,
+ 0x8842, 0x19ae,
+ 0x8844, 0x19ad,
+ 0x8846, 0x093a,
+ 0x884c, 0x07e6,
+ 0x884d, 0x1524,
+ 0x8852, 0x19af,
+ 0x8853, 0x095b,
+ 0x8857, 0x0597,
+ 0x8859, 0x19b0,
+ 0x885b, 0x04f4,
+ 0x885d, 0x09bf,
+ 0x885e, 0x19b1,
+ 0x8861, 0x07e7,
+ 0x8862, 0x19b2,
+ 0x8863, 0x04a5,
+ 0x8868, 0x0daf,
+ 0x886b, 0x19b3,
+ 0x8870, 0x0a30,
+ 0x8872, 0x19ba,
+ 0x8875, 0x19b7,
+ 0x8877, 0x0bad,
+ 0x887d, 0x19b8,
+ 0x887e, 0x19b5,
+ 0x887f, 0x06d6,
+ 0x8881, 0x19b4,
+ 0x8882, 0x19bb,
+ 0x8888, 0x070c,
+ 0x888b, 0x0b3e,
+ 0x888d, 0x19c1,
+ 0x8892, 0x19bd,
+ 0x8896, 0x0b15,
+ 0x8897, 0x19bc,
+ 0x8899, 0x19bf,
+ 0x889e, 0x19b6,
+ 0x88a2, 0x19c0,
+ 0x88a4, 0x19c2,
+ 0x88ab, 0x0d83,
+ 0x88ae, 0x19be,
+ 0x88b0, 0x19c3,
+ 0x88b1, 0x19c5,
+ 0x88b4, 0x0787,
+ 0x88b5, 0x19b9,
+ 0x88b7, 0x0485,
+ 0x88bf, 0x19c4,
+ 0x88c1, 0x084b,
+ 0x88c2, 0x0fbe,
+ 0x88c3, 0x19c6,
+ 0x88c5, 0x0af7,
+ 0x88cf, 0x0f6a,
+ 0x88d4, 0x19c8,
+ 0x88d5, 0x0f1f,
+ 0x88d8, 0x19c9,
+ 0x88dc, 0x0e34,
+ 0x88dd, 0x19cb,
+ 0x88df, 0x0830,
+ 0x88e1, 0x0f6b,
+ 0x88e8, 0x19d0,
+ 0x88f2, 0x19d1,
+ 0x88f3, 0x09c0,
+ 0x88f4, 0x19cf,
+ 0x88f5, 0x21a7,
+ 0x88f8, 0x0f51,
+ 0x88f9, 0x19cc,
+ 0x88fc, 0x19ce,
+ 0x88fd, 0x0a61,
+ 0x88fe, 0x0a44,
+ 0x8902, 0x19cd,
+ 0x8904, 0x19d2,
+ 0x8907, 0x0df3,
+ 0x890a, 0x19d4,
+ 0x890c, 0x19d3,
+ 0x8910, 0x05ca,
+ 0x8912, 0x0e59,
+ 0x8913, 0x19d5,
+ 0x891c, 0x20a8,
+ 0x891d, 0x19e1,
+ 0x891e, 0x19d7,
+ 0x8925, 0x19d8,
+ 0x892a, 0x19d9,
+ 0x8936, 0x19de,
+ 0x8938, 0x19df,
+ 0x893b, 0x19dd,
+ 0x8941, 0x19db,
+ 0x8943, 0x19d6,
+ 0x8944, 0x19dc,
+ 0x894c, 0x19e0,
+ 0x894d, 0x1bd0,
+ 0x8956, 0x0528,
+ 0x895e, 0x19e3,
+ 0x895f, 0x06d7,
+ 0x8960, 0x19e2,
+ 0x8964, 0x19e5,
+ 0x8966, 0x19e4,
+ 0x896a, 0x19e7,
+ 0x896d, 0x19e6,
+ 0x896f, 0x19e8,
+ 0x8972, 0x093b,
+ 0x8974, 0x19e9,
+ 0x8977, 0x19ea,
+ 0x897e, 0x19eb,
+ 0x897f, 0x0a62,
+ 0x8981, 0x0f41,
+ 0x8983, 0x19ec,
+ 0x8986, 0x0df4,
+ 0x8987, 0x0cfc,
+ 0x8988, 0x19ed,
+ 0x898a, 0x19ee,
+ 0x898b, 0x075f,
+ 0x898f, 0x0646,
+ 0x8993, 0x19ef,
+ 0x8996, 0x08b9,
+ 0x8997, 0x0cf7,
+ 0x8998, 0x19f0,
+ 0x899a, 0x05ae,
+ 0x89a1, 0x19f1,
+ 0x89a6, 0x19f3,
+ 0x89a7, 0x0f61,
+ 0x89a9, 0x19f2,
+ 0x89aa, 0x0a0c,
+ 0x89ac, 0x19f4,
+ 0x89af, 0x19f5,
+ 0x89b2, 0x19f6,
+ 0x89b3, 0x060d,
+ 0x89ba, 0x19f7,
+ 0x89bd, 0x19f8,
+ 0x89bf, 0x19f9,
+ 0x89d2, 0x05af,
+ 0x89da, 0x19fb,
+ 0x89dc, 0x19fc,
+ 0x89e3, 0x0572,
+ 0x89e6, 0x09ee,
+ 0x89e7, 0x19fe,
+ 0x89f4, 0x19ff,
+ 0x89f8, 0x1a00,
+ 0x8a00, 0x0774,
+ 0x8a02, 0x0c17,
+ 0x8a03, 0x1a01,
+ 0x8a08, 0x072d,
+ 0x8a0a, 0x0a1c,
+ 0x8a0c, 0x1a04,
+ 0x8a0e, 0x0c7c,
+ 0x8a10, 0x1a03,
+ 0x8a12, 0x21a8,
+ 0x8a13, 0x0707,
+ 0x8a16, 0x1a02,
+ 0x8a17, 0x0b57,
+ 0x8a18, 0x0647,
+ 0x8a1b, 0x1a05,
+ 0x8a1d, 0x1a06,
+ 0x8a1f, 0x09c1,
+ 0x8a23, 0x0743,
+ 0x8a25, 0x1a07,
+ 0x8a2a, 0x0e5a,
+ 0x8a2d, 0x0a83,
+ 0x8a31, 0x0690,
+ 0x8a33, 0x0f01,
+ 0x8a34, 0x0acc,
+ 0x8a36, 0x1a08,
+ 0x8a37, 0x21a9,
+ 0x8a3a, 0x0a0d,
+ 0x8a3b, 0x0bae,
+ 0x8a3c, 0x09c2,
+ 0x8a41, 0x1a09,
+ 0x8a46, 0x1a0c,
+ 0x8a48, 0x1a0d,
+ 0x8a50, 0x082e,
+ 0x8a51, 0x0b22,
+ 0x8a52, 0x1a0b,
+ 0x8a54, 0x09c3,
+ 0x8a55, 0x0db0,
+ 0x8a5b, 0x1a0a,
+ 0x8a5e, 0x08ba,
+ 0x8a60, 0x04f5,
+ 0x8a62, 0x1a11,
+ 0x8a63, 0x072e,
+ 0x8a66, 0x08bc,
+ 0x8a69, 0x08bb,
+ 0x8a6b, 0x0ff3,
+ 0x8a6c, 0x1a10,
+ 0x8a6d, 0x1a0f,
+ 0x8a6e, 0x0aa9,
+ 0x8a70, 0x0667,
+ 0x8a71, 0x0fe9,
+ 0x8a72, 0x0598,
+ 0x8a73, 0x09c4,
+ 0x8a79, 0x21aa,
+ 0x8a7c, 0x1a0e,
+ 0x8a82, 0x1a13,
+ 0x8a84, 0x1a14,
+ 0x8a85, 0x1a12,
+ 0x8a87, 0x078c,
+ 0x8a89, 0x0f2a,
+ 0x8a8c, 0x08bd,
+ 0x8a8d, 0x0cdd,
+ 0x8a91, 0x1a17,
+ 0x8a93, 0x0a64,
+ 0x8a95, 0x0b80,
+ 0x8a98, 0x0f20,
+ 0x8a9a, 0x1a1a,
+ 0x8a9e, 0x07a0,
+ 0x8aa0, 0x0a63,
+ 0x8aa1, 0x1a16,
+ 0x8aa3, 0x1a1b,
+ 0x8aa4, 0x07a1,
+ 0x8aa5, 0x1a18,
+ 0x8aa7, 0x21ab,
+ 0x8aa8, 0x1a15,
+ 0x8aac, 0x0a86,
+ 0x8aad, 0x0ca1,
+ 0x8ab0, 0x0b6d,
+ 0x8ab2, 0x055d,
+ 0x8ab9, 0x0d84,
+ 0x8abc, 0x065d,
+ 0x8abe, 0x21ac,
+ 0x8abf, 0x0bd0,
+ 0x8ac2, 0x1a1e,
+ 0x8ac4, 0x1a1c,
+ 0x8ac7, 0x0b8a,
+ 0x8acb, 0x0a65,
+ 0x8acc, 0x060e,
+ 0x8acd, 0x1a1d,
+ 0x8acf, 0x0a21,
+ 0x8ad2, 0x0f92,
+ 0x8ad6, 0x0fe6,
+ 0x8ada, 0x1a1f,
+ 0x8adb, 0x1a2a,
+ 0x8adc, 0x0bd1,
+ 0x8ade, 0x1a29,
+ 0x8adf, 0x21ad,
+ 0x8ae0, 0x1a26,
+ 0x8ae1, 0x1a2e,
+ 0x8ae2, 0x1a27,
+ 0x8ae4, 0x1a23,
+ 0x8ae6, 0x0c18,
+ 0x8ae7, 0x1a22,
+ 0x8aeb, 0x1a20,
+ 0x8aed, 0x0f0b,
+ 0x8aee, 0x08be,
+ 0x8af1, 0x1a24,
+ 0x8af3, 0x1a21,
+ 0x8af6, 0x21af,
+ 0x8af7, 0x1a28,
+ 0x8af8, 0x097e,
+ 0x8afa, 0x0775,
+ 0x8afe, 0x0b5a,
+ 0x8b00, 0x0e73,
+ 0x8b01, 0x04fc,
+ 0x8b02, 0x04a6,
+ 0x8b04, 0x0c7d,
+ 0x8b07, 0x1a2c,
+ 0x8b0c, 0x1a2b,
+ 0x8b0e, 0x0cbe,
+ 0x8b10, 0x1a30,
+ 0x8b14, 0x1a25,
+ 0x8b16, 0x1a2f,
+ 0x8b17, 0x1a31,
+ 0x8b19, 0x0760,
+ 0x8b1a, 0x1a2d,
+ 0x8b1b, 0x07e8,
+ 0x8b1d, 0x0901,
+ 0x8b20, 0x1a32,
+ 0x8b21, 0x0f42,
+ 0x8b26, 0x1a35,
+ 0x8b28, 0x1a38,
+ 0x8b2b, 0x1a36,
+ 0x8b2c, 0x0da7,
+ 0x8b33, 0x1a33,
+ 0x8b39, 0x06d8,
+ 0x8b3e, 0x1a37,
+ 0x8b41, 0x1a39,
+ 0x8b49, 0x1a3d,
+ 0x8b4c, 0x1a3a,
+ 0x8b4e, 0x1a3c,
+ 0x8b4f, 0x1a3b,
+ 0x8b53, 0x21b0,
+ 0x8b56, 0x1a3e,
+ 0x8b58, 0x08dd,
+ 0x8b5a, 0x1a40,
+ 0x8b5b, 0x1a3f,
+ 0x8b5c, 0x0dda,
+ 0x8b5f, 0x1a42,
+ 0x8b66, 0x072f,
+ 0x8b6b, 0x1a41,
+ 0x8b6c, 0x1a43,
+ 0x8b6f, 0x1a44,
+ 0x8b70, 0x065e,
+ 0x8b71, 0x182e,
+ 0x8b72, 0x09e1,
+ 0x8b74, 0x1a45,
+ 0x8b77, 0x07a2,
+ 0x8b7d, 0x1a46,
+ 0x8b7f, 0x21b1,
+ 0x8b80, 0x1a47,
+ 0x8b83, 0x088c,
+ 0x8b8a, 0x13d3,
+ 0x8b8c, 0x1a48,
+ 0x8b8e, 0x1a49,
+ 0x8b90, 0x093c,
+ 0x8b92, 0x1a4a,
+ 0x8b96, 0x1a4c,
+ 0x8b99, 0x1a4d,
+ 0x8c37, 0x0b69,
+ 0x8c3a, 0x1a4f,
+ 0x8c3f, 0x1a51,
+ 0x8c41, 0x1a50,
+ 0x8c46, 0x0c7e,
+ 0x8c48, 0x1a52,
+ 0x8c4a, 0x0e5b,
+ 0x8c4c, 0x1a53,
+ 0x8c4e, 0x1a54,
+ 0x8c50, 0x1a55,
+ 0x8c55, 0x1a56,
+ 0x8c5a, 0x0cb2,
+ 0x8c61, 0x09c5,
+ 0x8c62, 0x1a57,
+ 0x8c6a, 0x07fd,
+ 0x8c6b, 0x1007,
+ 0x8c6c, 0x1a58,
+ 0x8c78, 0x1a59,
+ 0x8c79, 0x0db1,
+ 0x8c7a, 0x1a5a,
+ 0x8c7c, 0x1a62,
+ 0x8c82, 0x1a5b,
+ 0x8c85, 0x1a5d,
+ 0x8c89, 0x1a5c,
+ 0x8c8a, 0x1a5e,
+ 0x8c8c, 0x0e74,
+ 0x8c8d, 0x1a5f,
+ 0x8c94, 0x1a61,
+ 0x8c98, 0x1a63,
+ 0x8c9d, 0x058b,
+ 0x8c9e, 0x0c03,
+ 0x8ca0, 0x0ddb,
+ 0x8ca1, 0x0852,
+ 0x8ca2, 0x07e9,
+ 0x8ca7, 0x0dc1,
+ 0x8ca8, 0x055f,
+ 0x8ca9, 0x0d62,
+ 0x8caa, 0x1a66,
+ 0x8cab, 0x060f,
+ 0x8cac, 0x0a79,
+ 0x8cad, 0x1a65,
+ 0x8cae, 0x1a6a,
+ 0x8caf, 0x0bb7,
+ 0x8cb0, 0x0eef,
+ 0x8cb2, 0x1a68,
+ 0x8cb4, 0x0648,
+ 0x8cb6, 0x1a6b,
+ 0x8cb7, 0x0d19,
+ 0x8cb8, 0x0b3f,
+ 0x8cbb, 0x0d85,
+ 0x8cbc, 0x0c37,
+ 0x8cbd, 0x1a67,
+ 0x8cbf, 0x0e75,
+ 0x8cc0, 0x056c,
+ 0x8cc1, 0x1a6d,
+ 0x8cc2, 0x0fce,
+ 0x8cc3, 0x0bde,
+ 0x8cc4, 0x0feb,
+ 0x8cc7, 0x08bf,
+ 0x8cc8, 0x1a6c,
+ 0x8cca, 0x0b11,
+ 0x8ccd, 0x1a7d,
+ 0x8cce, 0x0aaa,
+ 0x8cd1, 0x0cd0,
+ 0x8cd3, 0x0dc2,
+ 0x8cda, 0x1a70,
+ 0x8cdb, 0x088d,
+ 0x8cdc, 0x08c0,
+ 0x8cde, 0x09c6,
+ 0x8ce0, 0x0d1b,
+ 0x8ce2, 0x0761,
+ 0x8ce3, 0x1a6f,
+ 0x8ce4, 0x1a6e,
+ 0x8ce6, 0x0ddc,
+ 0x8cea, 0x08ed,
+ 0x8ced, 0x0c4c,
+ 0x8cf0, 0x21b2,
+ 0x8cf4, 0x21b3,
+ 0x8cfa, 0x1a72,
+ 0x8cfc, 0x07ea,
+ 0x8cfd, 0x1a71,
+ 0x8d04, 0x1a74,
+ 0x8d07, 0x1a77,
+ 0x8d08, 0x0b03,
+ 0x8d0a, 0x1a76,
+ 0x8d0b, 0x0622,
+ 0x8d0d, 0x1a79,
+ 0x8d0f, 0x1a78,
+ 0x8d10, 0x1a7a,
+ 0x8d12, 0x21b4,
+ 0x8d13, 0x1a7c,
+ 0x8d14, 0x1a7e,
+ 0x8d16, 0x1a7f,
+ 0x8d64, 0x0a7a,
+ 0x8d66, 0x08fb,
+ 0x8d67, 0x1a80,
+ 0x8d6b, 0x05b0,
+ 0x8d6d, 0x1a81,
+ 0x8d70, 0x0af8,
+ 0x8d71, 0x1a82,
+ 0x8d73, 0x1a83,
+ 0x8d74, 0x0ddd,
+ 0x8d76, 0x21b5,
+ 0x8d77, 0x0649,
+ 0x8d81, 0x1a84,
+ 0x8d85, 0x0bd2,
+ 0x8d8a, 0x04fd,
+ 0x8d99, 0x1a85,
+ 0x8da3, 0x091d,
+ 0x8da8, 0x0a3c,
+ 0x8db3, 0x0b0d,
+ 0x8dba, 0x1a88,
+ 0x8dbe, 0x1a87,
+ 0x8dc2, 0x1a86,
+ 0x8dcb, 0x1a8e,
+ 0x8dcc, 0x1a8c,
+ 0x8dcf, 0x1a89,
+ 0x8dd6, 0x1a8b,
+ 0x8dda, 0x1a8a,
+ 0x8ddb, 0x1a8d,
+ 0x8ddd, 0x0691,
+ 0x8ddf, 0x1a91,
+ 0x8de1, 0x0a7b,
+ 0x8de3, 0x1a92,
+ 0x8de8, 0x078d,
+ 0x8dea, 0x1a8f,
+ 0x8def, 0x0fcf,
+ 0x8df3, 0x0bd3,
+ 0x8df5, 0x0aab,
+ 0x8dfc, 0x1a93,
+ 0x8dff, 0x1a96,
+ 0x8e08, 0x1a94,
+ 0x8e0a, 0x0f43,
+ 0x8e0f, 0x0c7f,
+ 0x8e10, 0x1a99,
+ 0x8e1d, 0x1a97,
+ 0x8e1f, 0x1a9a,
+ 0x8e2a, 0x1aa8,
+ 0x8e30, 0x1a9d,
+ 0x8e34, 0x1a9e,
+ 0x8e35, 0x1a9c,
+ 0x8e42, 0x1a9b,
+ 0x8e44, 0x0c19,
+ 0x8e47, 0x1aa0,
+ 0x8e48, 0x1aa4,
+ 0x8e49, 0x1aa1,
+ 0x8e4a, 0x1a9f,
+ 0x8e4c, 0x1aa2,
+ 0x8e50, 0x1aa3,
+ 0x8e55, 0x1aaa,
+ 0x8e59, 0x1aa5,
+ 0x8e5f, 0x0a7c,
+ 0x8e60, 0x1aa7,
+ 0x8e63, 0x1aa9,
+ 0x8e64, 0x1aa6,
+ 0x8e72, 0x1aac,
+ 0x8e74, 0x093d,
+ 0x8e76, 0x1aab,
+ 0x8e7c, 0x1aad,
+ 0x8e81, 0x1aae,
+ 0x8e84, 0x1ab1,
+ 0x8e85, 0x1ab0,
+ 0x8e87, 0x1aaf,
+ 0x8e8a, 0x1ab3,
+ 0x8e8b, 0x1ab2,
+ 0x8e8d, 0x0f02,
+ 0x8e91, 0x1ab5,
+ 0x8e93, 0x1ab4,
+ 0x8e94, 0x1ab6,
+ 0x8e99, 0x1ab7,
+ 0x8ea1, 0x1ab9,
+ 0x8eaa, 0x1ab8,
+ 0x8eab, 0x0a0e,
+ 0x8eac, 0x1aba,
+ 0x8eaf, 0x06e5,
+ 0x8eb0, 0x1abb,
+ 0x8eb1, 0x1abd,
+ 0x8ebe, 0x1abe,
+ 0x8ec0, 0x1def,
+ 0x8ec5, 0x1abf,
+ 0x8ec6, 0x1abc,
+ 0x8ec8, 0x1ac0,
+ 0x8eca, 0x0902,
+ 0x8ecb, 0x1ac1,
+ 0x8ecc, 0x064a,
+ 0x8ecd, 0x0709,
+ 0x8ecf, 0x21b7,
+ 0x8ed2, 0x0762,
+ 0x8edb, 0x1ac2,
+ 0x8edf, 0x0cc8,
+ 0x8ee2, 0x0c38,
+ 0x8ee3, 0x1ac3,
+ 0x8eeb, 0x1ac6,
+ 0x8ef8, 0x08e0,
+ 0x8efb, 0x1ac5,
+ 0x8efc, 0x1ac4,
+ 0x8efd, 0x0730,
+ 0x8efe, 0x1ac7,
+ 0x8f03, 0x05b1,
+ 0x8f05, 0x1ac9,
+ 0x8f09, 0x084c,
+ 0x8f0a, 0x1ac8,
+ 0x8f0c, 0x1ad1,
+ 0x8f12, 0x1acb,
+ 0x8f13, 0x1acd,
+ 0x8f14, 0x0e35,
+ 0x8f15, 0x1aca,
+ 0x8f19, 0x1acc,
+ 0x8f1b, 0x1ad0,
+ 0x8f1c, 0x1ace,
+ 0x8f1d, 0x064b,
+ 0x8f1f, 0x1acf,
+ 0x8f26, 0x1ad2,
+ 0x8f29, 0x0d10,
+ 0x8f2a, 0x0fa0,
+ 0x8f2f, 0x093e,
+ 0x8f33, 0x1ad3,
+ 0x8f38, 0x0f0c,
+ 0x8f39, 0x1ad5,
+ 0x8f3b, 0x1ad4,
+ 0x8f3e, 0x1ad8,
+ 0x8f3f, 0x0f2b,
+ 0x8f42, 0x1ad7,
+ 0x8f44, 0x05cb,
+ 0x8f45, 0x1ad6,
+ 0x8f46, 0x1adb,
+ 0x8f49, 0x1ada,
+ 0x8f4c, 0x1ad9,
+ 0x8f4d, 0x0c2c,
+ 0x8f4e, 0x1adc,
+ 0x8f57, 0x1add,
+ 0x8f5c, 0x1ade,
+ 0x8f5f, 0x07fe,
+ 0x8f61, 0x06fb,
+ 0x8f62, 0x1adf,
+ 0x8f9b, 0x0a0f,
+ 0x8f9c, 0x1ae2,
+ 0x8f9e, 0x08d9,
+ 0x8f9f, 0x1ae3,
+ 0x8fa3, 0x1ae4,
+ 0x8fa7, 0x10b6,
+ 0x8fa8, 0x10b5,
+ 0x8fad, 0x1ae5,
+ 0x8fae, 0x17ff,
+ 0x8faf, 0x1ae6,
+ 0x8fb0, 0x0b62,
+ 0x8fb1, 0x09f1,
+ 0x8fb2, 0x0cf6,
+ 0x8fb7, 0x1ae7,
+ 0x8fba, 0x0e25,
+ 0x8fbb, 0x0bf0,
+ 0x8fbc, 0x0810,
+ 0x8fbf, 0x0b67,
+ 0x8fc2, 0x04cc,
+ 0x8fc4, 0x0ea6,
+ 0x8fc5, 0x0a1d,
+ 0x8fce, 0x0734,
+ 0x8fd1, 0x06d9,
+ 0x8fd4, 0x0e26,
+ 0x8fda, 0x1ae8,
+ 0x8fe2, 0x1aea,
+ 0x8fe5, 0x1ae9,
+ 0x8fe6, 0x0560,
+ 0x8fe9, 0x0cce,
+ 0x8fea, 0x1aeb,
+ 0x8feb, 0x0d2d,
+ 0x8fed, 0x0c2d,
+ 0x8fef, 0x1aec,
+ 0x8ff0, 0x095c,
+ 0x8ff4, 0x1aee,
+ 0x8ff7, 0x0ece,
+ 0x8ff8, 0x1afd,
+ 0x8ff9, 0x1af0,
+ 0x8ffd, 0x0be5,
+ 0x9000, 0x0b40,
+ 0x9001, 0x0af9,
+ 0x9003, 0x0c80,
+ 0x9005, 0x1aef,
+ 0x9006, 0x066f,
+ 0x900b, 0x1af8,
+ 0x900d, 0x1af5,
+ 0x900e, 0x1b02,
+ 0x900f, 0x0c81,
+ 0x9010, 0x0b9e,
+ 0x9011, 0x1af2,
+ 0x9013, 0x0c1a,
+ 0x9014, 0x0c4d,
+ 0x9015, 0x1af3,
+ 0x9016, 0x1af7,
+ 0x9017, 0x0a26,
+ 0x9019, 0x0d1d,
+ 0x901a, 0x0be8,
+ 0x901d, 0x0a66,
+ 0x901e, 0x1af6,
+ 0x901f, 0x0b0e,
+ 0x9020, 0x0b04,
+ 0x9021, 0x1af4,
+ 0x9022, 0x046d,
+ 0x9023, 0x0fc8,
+ 0x9027, 0x1af9,
+ 0x902e, 0x0b41,
+ 0x9031, 0x093f,
+ 0x9032, 0x0a10,
+ 0x9035, 0x1afb,
+ 0x9036, 0x1afa,
+ 0x9038, 0x04b3,
+ 0x9039, 0x1afc,
+ 0x903c, 0x0da1,
+ 0x903e, 0x1b04,
+ 0x9041, 0x0cb3,
+ 0x9042, 0x0a31,
+ 0x9045, 0x0b97,
+ 0x9047, 0x06f0,
+ 0x9049, 0x1b03,
+ 0x904a, 0x0f21,
+ 0x904b, 0x04e1,
+ 0x904d, 0x0e27,
+ 0x904e, 0x0561,
+ 0x904f, 0x1afe,
+ 0x9053, 0x0c93,
+ 0x9054, 0x0b61,
+ 0x9055, 0x04a7,
+ 0x9056, 0x1b05,
+ 0x9058, 0x1b06,
+ 0x9059, 0x1d34,
+ 0x905c, 0x0b1d,
+ 0x905e, 0x1b07,
+ 0x9060, 0x0515,
+ 0x9061, 0x0ace,
+ 0x9063, 0x0763,
+ 0x9065, 0x0f44,
+ 0x9067, 0x21ba,
+ 0x9068, 0x1b08,
+ 0x9069, 0x0c26,
+ 0x906d, 0x0afa,
+ 0x906e, 0x0903,
+ 0x906f, 0x1b09,
+ 0x9072, 0x1b0c,
+ 0x9075, 0x096f,
+ 0x9076, 0x1b0a,
+ 0x9077, 0x0aad,
+ 0x9078, 0x0aac,
+ 0x907a, 0x04a8,
+ 0x907c, 0x0f93,
+ 0x907d, 0x1b0e,
+ 0x907f, 0x0d86,
+ 0x9080, 0x1b10,
+ 0x9081, 0x1b0f,
+ 0x9082, 0x1b0d,
+ 0x9083, 0x1737,
+ 0x9084, 0x0610,
+ 0x9087, 0x1aed,
+ 0x9089, 0x1b12,
+ 0x908a, 0x1b11,
+ 0x908f, 0x1b13,
+ 0x9091, 0x0f22,
+ 0x90a3, 0x0cb9,
+ 0x90a6, 0x0e5c,
+ 0x90a8, 0x1b14,
+ 0x90aa, 0x0905,
+ 0x90af, 0x1b15,
+ 0x90b1, 0x1b16,
+ 0x90b5, 0x1b17,
+ 0x90b8, 0x0c1b,
+ 0x90c1, 0x04ae,
+ 0x90ca, 0x07eb,
+ 0x90ce, 0x0fe0,
+ 0x90db, 0x1b1b,
+ 0x90de, 0x21bb,
+ 0x90e1, 0x070a,
+ 0x90e2, 0x1b18,
+ 0x90e4, 0x1b19,
+ 0x90e8, 0x0de6,
+ 0x90ed, 0x05b2,
+ 0x90f5, 0x0f23,
+ 0x90f7, 0x06b7,
+ 0x90fd, 0x0c4e,
+ 0x9102, 0x1b1c,
+ 0x9112, 0x1b1d,
+ 0x9115, 0x21bd,
+ 0x9119, 0x1b1e,
+ 0x9127, 0x21be,
+ 0x912d, 0x0c1c,
+ 0x9130, 0x1b20,
+ 0x9132, 0x1b1f,
+ 0x9149, 0x0cab,
+ 0x914a, 0x1b21,
+ 0x914b, 0x0940,
+ 0x914c, 0x090c,
+ 0x914d, 0x0d11,
+ 0x914e, 0x0baf,
+ 0x9152, 0x091e,
+ 0x9154, 0x0a32,
+ 0x9156, 0x1b22,
+ 0x9158, 0x1b23,
+ 0x9162, 0x0a23,
+ 0x9163, 0x1b24,
+ 0x9165, 0x1b25,
+ 0x9169, 0x1b26,
+ 0x916a, 0x0f59,
+ 0x916c, 0x0941,
+ 0x9172, 0x1b28,
+ 0x9173, 0x1b27,
+ 0x9175, 0x07ec,
+ 0x9177, 0x0805,
+ 0x9178, 0x088e,
+ 0x9182, 0x1b2b,
+ 0x9187, 0x0970,
+ 0x9189, 0x1b2a,
+ 0x918b, 0x1b29,
+ 0x918d, 0x0b49,
+ 0x9190, 0x07a3,
+ 0x9192, 0x0a67,
+ 0x9197, 0x0d44,
+ 0x919c, 0x0943,
+ 0x91a2, 0x1b2c,
+ 0x91a4, 0x09c7,
+ 0x91aa, 0x1b2f,
+ 0x91ab, 0x1b2d,
+ 0x91ac, 0x1e1b,
+ 0x91af, 0x1b2e,
+ 0x91b1, 0x1e61,
+ 0x91b4, 0x1b31,
+ 0x91b5, 0x1b30,
+ 0x91b8, 0x09e2,
+ 0x91ba, 0x1b32,
+ 0x91c0, 0x1b33,
+ 0x91c6, 0x0d64,
+ 0x91c7, 0x0843,
+ 0x91c8, 0x090d,
+ 0x91c9, 0x1b35,
+ 0x91cb, 0x1b36,
+ 0x91cc, 0x0f6c,
+ 0x91cd, 0x094f,
+ 0x91ce, 0x0efa,
+ 0x91cf, 0x0f94,
+ 0x91d0, 0x1b37,
+ 0x91d1, 0x06da,
+ 0x91d6, 0x1b38,
+ 0x91d7, 0x21c0,
+ 0x91d8, 0x0c1d,
+ 0x91da, 0x21bf,
+ 0x91db, 0x1b3b,
+ 0x91dc, 0x05d6,
+ 0x91dd, 0x0a11,
+ 0x91de, 0x21c1,
+ 0x91df, 0x1b39,
+ 0x91e1, 0x1b3a,
+ 0x91e3, 0x0bfc,
+ 0x91e4, 0x21c4,
+ 0x91e6, 0x0e83,
+ 0x91e7, 0x06f4,
+ 0x91ed, 0x21c2,
+ 0x91f5, 0x1b3d,
+ 0x91fc, 0x1b3c,
+ 0x91ff, 0x1b40,
+ 0x9206, 0x21c6,
+ 0x920a, 0x21c8,
+ 0x920d, 0x0cb7,
+ 0x920e, 0x05a1,
+ 0x9210, 0x21c7,
+ 0x9211, 0x1b44,
+ 0x9214, 0x1b41,
+ 0x9215, 0x1b43,
+ 0x921e, 0x1b3f,
+ 0x9229, 0x1b8a,
+ 0x922c, 0x1b42,
+ 0x9234, 0x0fb3,
+ 0x9237, 0x078e,
+ 0x9239, 0x21cf,
+ 0x923a, 0x21c9,
+ 0x923c, 0x21cb,
+ 0x923f, 0x1b4c,
+ 0x9240, 0x21ca,
+ 0x9244, 0x0c2e,
+ 0x9245, 0x1b47,
+ 0x9248, 0x1b4a,
+ 0x9249, 0x1b48,
+ 0x924b, 0x1b4d,
+ 0x924e, 0x21cc,
+ 0x9250, 0x1b4e,
+ 0x9251, 0x21ce,
+ 0x9257, 0x1b46,
+ 0x9259, 0x21cd,
+ 0x925a, 0x1b53,
+ 0x925b, 0x0516,
+ 0x925e, 0x1b45,
+ 0x9262, 0x0d41,
+ 0x9264, 0x1b49,
+ 0x9266, 0x09c8,
+ 0x9267, 0x21d0,
+ 0x9271, 0x07ed,
+ 0x9277, 0x21d2,
+ 0x927e, 0x0e76,
+ 0x9280, 0x06dc,
+ 0x9283, 0x0950,
+ 0x9285, 0x0c94,
+ 0x9288, 0x20aa,
+ 0x9291, 0x0aaf,
+ 0x9293, 0x1b51,
+ 0x9295, 0x1b4b,
+ 0x9296, 0x1b50,
+ 0x9298, 0x0ecf,
+ 0x929a, 0x0bd4,
+ 0x929b, 0x1b52,
+ 0x929c, 0x1b4f,
+ 0x92a7, 0x21d1,
+ 0x92ad, 0x0aae,
+ 0x92b7, 0x1b56,
+ 0x92b9, 0x1b55,
+ 0x92cf, 0x1b54,
+ 0x92d0, 0x21d7,
+ 0x92d2, 0x0e5d,
+ 0x92d3, 0x21db,
+ 0x92d5, 0x21d9,
+ 0x92d7, 0x21d5,
+ 0x92d9, 0x21d6,
+ 0x92e0, 0x21da,
+ 0x92e4, 0x0985,
+ 0x92e7, 0x21d4,
+ 0x92e9, 0x1b57,
+ 0x92ea, 0x0e2f,
+ 0x92ed, 0x04f6,
+ 0x92f2, 0x0db8,
+ 0x92f3, 0x0bb0,
+ 0x92f8, 0x0692,
+ 0x92f9, 0x20b0,
+ 0x92fa, 0x1b59,
+ 0x92fb, 0x21de,
+ 0x92fc, 0x07ef,
+ 0x92ff, 0x21e1,
+ 0x9302, 0x21e3,
+ 0x9306, 0x087a,
+ 0x930f, 0x1b58,
+ 0x9310, 0x0a33,
+ 0x9318, 0x0a34,
+ 0x9319, 0x1b5c,
+ 0x931a, 0x1b5e,
+ 0x931d, 0x21e2,
+ 0x931e, 0x21e0,
+ 0x9320, 0x09e3,
+ 0x9321, 0x21dd,
+ 0x9322, 0x1b5d,
+ 0x9323, 0x1b5f,
+ 0x9325, 0x21dc,
+ 0x9326, 0x06cb,
+ 0x9328, 0x0db7,
+ 0x932b, 0x090e,
+ 0x932c, 0x0fc9,
+ 0x932e, 0x1b5b,
+ 0x932f, 0x0868,
+ 0x9332, 0x0fe5,
+ 0x9335, 0x1b61,
+ 0x933a, 0x1b60,
+ 0x933b, 0x1b62,
+ 0x9344, 0x1b5a,
+ 0x9348, 0x20a9,
+ 0x934b, 0x0cc1,
+ 0x934d, 0x0c4f,
+ 0x9354, 0x0bf3,
+ 0x9356, 0x1b67,
+ 0x9357, 0x21e5,
+ 0x935b, 0x0b81,
+ 0x935c, 0x1b63,
+ 0x9360, 0x1b64,
+ 0x936c, 0x0703,
+ 0x936e, 0x1b66,
+ 0x9370, 0x21e4,
+ 0x9375, 0x0764,
+ 0x937c, 0x1b65,
+ 0x937e, 0x09c9,
+ 0x938c, 0x05d7,
+ 0x9394, 0x1b6b,
+ 0x9396, 0x082f,
+ 0x9397, 0x0afb,
+ 0x939a, 0x0be6,
+ 0x93a4, 0x21e6,
+ 0x93a7, 0x0599,
+ 0x93ac, 0x1b69,
+ 0x93ae, 0x0bdf,
+ 0x93b0, 0x1b68,
+ 0x93b9, 0x1b6c,
+ 0x93c3, 0x1b72,
+ 0x93c6, 0x21e7,
+ 0x93c8, 0x1b75,
+ 0x93d0, 0x1b74,
+ 0x93d1, 0x0c27,
+ 0x93d6, 0x1b6d,
+ 0x93d8, 0x1b71,
+ 0x93dd, 0x1b73,
+ 0x93de, 0x21e8,
+ 0x93e1, 0x06b8,
+ 0x93e4, 0x1b76,
+ 0x93e5, 0x1b70,
+ 0x93e8, 0x1b6f,
+ 0x93f8, 0x21e9,
+ 0x9403, 0x1b7a,
+ 0x9407, 0x1b7b,
+ 0x9410, 0x1b7c,
+ 0x9413, 0x1b79,
+ 0x9414, 0x1b78,
+ 0x9418, 0x09ca,
+ 0x9419, 0x0c82,
+ 0x941a, 0x1b77,
+ 0x9421, 0x1b80,
+ 0x942b, 0x1b7e,
+ 0x9431, 0x21ea,
+ 0x9435, 0x1b7f,
+ 0x9436, 0x1b7d,
+ 0x9438, 0x0b58,
+ 0x943a, 0x1b81,
+ 0x9441, 0x1b82,
+ 0x9444, 0x1b84,
+ 0x9445, 0x21eb,
+ 0x9448, 0x21ec,
+ 0x9451, 0x0611,
+ 0x9452, 0x1b83,
+ 0x9453, 0x0f06,
+ 0x945a, 0x1b8f,
+ 0x945b, 0x1b85,
+ 0x945e, 0x1b88,
+ 0x9460, 0x1b86,
+ 0x9462, 0x1b87,
+ 0x946a, 0x1b89,
+ 0x9470, 0x1b8b,
+ 0x9475, 0x1b8c,
+ 0x9477, 0x1b8d,
+ 0x947c, 0x1b90,
+ 0x947d, 0x1b8e,
+ 0x947e, 0x1b91,
+ 0x947f, 0x1b93,
+ 0x9481, 0x1b92,
+ 0x9577, 0x0bd5,
+ 0x9580, 0x0ef3,
+ 0x9582, 0x1b94,
+ 0x9583, 0x0ab0,
+ 0x9587, 0x1b95,
+ 0x9589, 0x0e14,
+ 0x958a, 0x1b96,
+ 0x958b, 0x0589,
+ 0x958f, 0x04de,
+ 0x9591, 0x0613,
+ 0x9592, 0x21ed,
+ 0x9593, 0x0612,
+ 0x9594, 0x1b97,
+ 0x9596, 0x1b98,
+ 0x9598, 0x1b99,
+ 0x95a0, 0x1b9b,
+ 0x95a2, 0x0614,
+ 0x95a3, 0x05b3,
+ 0x95a4, 0x07f0,
+ 0x95a5, 0x0d4a,
+ 0x95a7, 0x1b9d,
+ 0x95a8, 0x1b9c,
+ 0x95ad, 0x1b9e,
+ 0x95b2, 0x04fe,
+ 0x95b9, 0x1ba1,
+ 0x95bb, 0x1ba0,
+ 0x95bc, 0x1b9f,
+ 0x95be, 0x1ba2,
+ 0x95c3, 0x1ba5,
+ 0x95c7, 0x048b,
+ 0x95ca, 0x1ba3,
+ 0x95cc, 0x1ba7,
+ 0x95cd, 0x1ba6,
+ 0x95d4, 0x1ba9,
+ 0x95d5, 0x1ba8,
+ 0x95d6, 0x1baa,
+ 0x95d8, 0x0c86,
+ 0x95dc, 0x1bab,
+ 0x95e1, 0x1bac,
+ 0x95e2, 0x1bae,
+ 0x95e5, 0x1bad,
+ 0x961c, 0x0dde,
+ 0x9621, 0x1baf,
+ 0x9628, 0x1bb0,
+ 0x962a, 0x0855,
+ 0x962e, 0x1bb1,
+ 0x9632, 0x0e77,
+ 0x963b, 0x0acd,
+ 0x963f, 0x0468,
+ 0x9640, 0x0b2b,
+ 0x9642, 0x1bb3,
+ 0x9644, 0x0ddf,
+ 0x964b, 0x1bb6,
+ 0x964c, 0x1bb4,
+ 0x964d, 0x07f1,
+ 0x964f, 0x1bb5,
+ 0x9650, 0x0776,
+ 0x965b, 0x0e15,
+ 0x965c, 0x1bb8,
+ 0x965d, 0x1bba,
+ 0x965e, 0x1bb9,
+ 0x965f, 0x1bbb,
+ 0x9662, 0x04c3,
+ 0x9663, 0x0a1e,
+ 0x9664, 0x0986,
+ 0x9665, 0x0615,
+ 0x9666, 0x1bbc,
+ 0x966a, 0x0d1c,
+ 0x966c, 0x1bbe,
+ 0x9670, 0x04c4,
+ 0x9672, 0x1bbd,
+ 0x9673, 0x0be0,
+ 0x9675, 0x0f95,
+ 0x9676, 0x0c83,
+ 0x9677, 0x1bb7,
+ 0x9678, 0x0f6e,
+ 0x967a, 0x0765,
+ 0x967d, 0x0f45,
+ 0x9685, 0x06f1,
+ 0x9686, 0x0f7c,
+ 0x9688, 0x06fe,
+ 0x968a, 0x0b42,
+ 0x968b, 0x186c,
+ 0x968d, 0x1bbf,
+ 0x968e, 0x058a,
+ 0x968f, 0x0a35,
+ 0x9694, 0x05b4,
+ 0x9695, 0x1bc1,
+ 0x9697, 0x1bc2,
+ 0x9698, 0x1bc0,
+ 0x9699, 0x073a,
+ 0x969b, 0x084d,
+ 0x969c, 0x09cb,
+ 0x969d, 0x21f0,
+ 0x96a0, 0x04c5,
+ 0x96a3, 0x0fa1,
+ 0x96a7, 0x1bc4,
+ 0x96a8, 0x1b0b,
+ 0x96aa, 0x1bc3,
+ 0x96af, 0x21f1,
+ 0x96b0, 0x1bc7,
+ 0x96b1, 0x1bc5,
+ 0x96b4, 0x1bc8,
+ 0x96b6, 0x1bc9,
+ 0x96b7, 0x0fb4,
+ 0x96b8, 0x1bca,
+ 0x96bb, 0x0a6d,
+ 0x96bc, 0x0d4f,
+ 0x96c0, 0x0a43,
+ 0x96c1, 0x0623,
+ 0x96c4, 0x0f24,
+ 0x96c5, 0x056d,
+ 0x96c6, 0x0942,
+ 0x96c7, 0x078f,
+ 0x96c9, 0x1bce,
+ 0x96cb, 0x1bcd,
+ 0x96cc, 0x08c1,
+ 0x96cd, 0x1bcf,
+ 0x96ce, 0x1bcc,
+ 0x96d1, 0x0876,
+ 0x96d5, 0x1bd3,
+ 0x96d6, 0x1992,
+ 0x96d9, 0x10eb,
+ 0x96db, 0x0a3d,
+ 0x96dc, 0x1bd1,
+ 0x96e2, 0x0f6d,
+ 0x96e3, 0x0cc9,
+ 0x96e8, 0x04cd,
+ 0x96ea, 0x0a87,
+ 0x96eb, 0x08e2,
+ 0x96f0, 0x0e07,
+ 0x96f2, 0x04e2,
+ 0x96f6, 0x0fb5,
+ 0x96f7, 0x0f55,
+ 0x96f9, 0x1bd4,
+ 0x96fb, 0x0c3f,
+ 0x9700, 0x0927,
+ 0x9704, 0x1bd5,
+ 0x9706, 0x1bd6,
+ 0x9707, 0x0a12,
+ 0x9708, 0x1bd7,
+ 0x970a, 0x0fb6,
+ 0x970d, 0x1bd2,
+ 0x970e, 0x1bd9,
+ 0x970f, 0x1bdb,
+ 0x9711, 0x1bda,
+ 0x9713, 0x1bd8,
+ 0x9716, 0x1bdc,
+ 0x9719, 0x1bdd,
+ 0x971c, 0x0afc,
+ 0x971e, 0x0562,
+ 0x9724, 0x1bde,
+ 0x9727, 0x0ec4,
+ 0x972a, 0x1bdf,
+ 0x9730, 0x1be0,
+ 0x9732, 0x0fd0,
+ 0x9733, 0x21f2,
+ 0x9738, 0x1414,
+ 0x9739, 0x1be1,
+ 0x973b, 0x21f3,
+ 0x973d, 0x1be2,
+ 0x9742, 0x1be7,
+ 0x9743, 0x21f4,
+ 0x9744, 0x1be4,
+ 0x9746, 0x1be5,
+ 0x9748, 0x1be6,
+ 0x9749, 0x1be8,
+ 0x974d, 0x21f5,
+ 0x974f, 0x21f6,
+ 0x9751, 0x21f7,
+ 0x9752, 0x0a68,
+ 0x9755, 0x21f8,
+ 0x9756, 0x0f03,
+ 0x9759, 0x0a69,
+ 0x975c, 0x1be9,
+ 0x975e, 0x0d87,
+ 0x9760, 0x1bea,
+ 0x9761, 0x1d06,
+ 0x9762, 0x0ed8,
+ 0x9764, 0x1beb,
+ 0x9766, 0x1bec,
+ 0x9768, 0x1bed,
+ 0x9769, 0x05b5,
+ 0x976b, 0x1bef,
+ 0x976d, 0x0a1f,
+ 0x9771, 0x1bf0,
+ 0x9774, 0x06fa,
+ 0x9779, 0x1bf1,
+ 0x977a, 0x1bf5,
+ 0x977c, 0x1bf3,
+ 0x9781, 0x1bf4,
+ 0x9784, 0x05d1,
+ 0x9785, 0x1bf2,
+ 0x9786, 0x1bf6,
+ 0x978b, 0x1bf7,
+ 0x978d, 0x048c,
+ 0x978f, 0x1bf8,
+ 0x9798, 0x09cc,
+ 0x979c, 0x1bfa,
+ 0x97a0, 0x0661,
+ 0x97a3, 0x1bfd,
+ 0x97a6, 0x1bfc,
+ 0x97a8, 0x1bfb,
+ 0x97ab, 0x1a34,
+ 0x97ad, 0x0e2c,
+ 0x97b3, 0x1bfe,
+ 0x97c3, 0x1c00,
+ 0x97c6, 0x1c01,
+ 0x97c8, 0x1c02,
+ 0x97cb, 0x1c03,
+ 0x97d3, 0x0616,
+ 0x97dc, 0x1c04,
+ 0x97ed, 0x1c05,
+ 0x97ee, 0x0cd9,
+ 0x97f2, 0x1c07,
+ 0x97f3, 0x053b,
+ 0x97f5, 0x1c0a,
+ 0x97f6, 0x1c09,
+ 0x97fb, 0x04c6,
+ 0x97ff, 0x06b9,
+ 0x9801, 0x0e17,
+ 0x9802, 0x0bd6,
+ 0x9803, 0x0812,
+ 0x9805, 0x07f2,
+ 0x9806, 0x0971,
+ 0x9808, 0x0a22,
+ 0x980c, 0x1c0c,
+ 0x980f, 0x1c0b,
+ 0x9810, 0x0f2c,
+ 0x9811, 0x0624,
+ 0x9812, 0x0d66,
+ 0x9813, 0x0cb4,
+ 0x9817, 0x0a42,
+ 0x9818, 0x0f96,
+ 0x981a, 0x0731,
+ 0x9821, 0x1c0f,
+ 0x9824, 0x1c0e,
+ 0x982c, 0x0e79,
+ 0x982d, 0x0c84,
+ 0x9830, 0x1e73,
+ 0x9834, 0x04f2,
+ 0x9837, 0x1c10,
+ 0x9838, 0x1c0d,
+ 0x983b, 0x0dc3,
+ 0x983c, 0x0f54,
+ 0x983d, 0x1c11,
+ 0x9846, 0x1c12,
+ 0x984b, 0x1c14,
+ 0x984c, 0x0b4a,
+ 0x984d, 0x05b9,
+ 0x984f, 0x1c13,
+ 0x9854, 0x0625,
+ 0x9855, 0x0766,
+ 0x9857, 0x21f9,
+ 0x9858, 0x0626,
+ 0x985a, 0x1e48,
+ 0x985b, 0x0c39,
+ 0x985e, 0x0fa8,
+ 0x9865, 0x21fa,
+ 0x9867, 0x0790,
+ 0x986b, 0x1c15,
+ 0x986f, 0x1c16,
+ 0x9873, 0x1c1a,
+ 0x9874, 0x1c19,
+ 0x98a8, 0x0de9,
+ 0x98aa, 0x1c1b,
+ 0x98af, 0x1c1c,
+ 0x98b1, 0x1c1d,
+ 0x98b6, 0x1c1e,
+ 0x98c3, 0x1c20,
+ 0x98c4, 0x1c1f,
+ 0x98c6, 0x1c21,
+ 0x98db, 0x0d88,
+ 0x98dc, 0x1839,
+ 0x98df, 0x09ef,
+ 0x98e2, 0x064c,
+ 0x98e9, 0x1c22,
+ 0x98eb, 0x1c23,
+ 0x98ed, 0x10c1,
+ 0x98ee, 0x14da,
+ 0x98ef, 0x0d67,
+ 0x98f2, 0x04bf,
+ 0x98f4, 0x047f,
+ 0x98fc, 0x08c2,
+ 0x98fd, 0x0e5e,
+ 0x98fe, 0x09e6,
+ 0x9903, 0x1c24,
+ 0x9905, 0x0eeb,
+ 0x9909, 0x1c25,
+ 0x990a, 0x0f46,
+ 0x990c, 0x04e4,
+ 0x9910, 0x088f,
+ 0x9912, 0x1c26,
+ 0x9913, 0x056e,
+ 0x9914, 0x1c27,
+ 0x9918, 0x1c28,
+ 0x991d, 0x1c2a,
+ 0x9920, 0x1c2d,
+ 0x9921, 0x1c29,
+ 0x9924, 0x1c2c,
+ 0x9927, 0x21fd,
+ 0x9928, 0x0617,
+ 0x992c, 0x1c2e,
+ 0x992e, 0x1c2f,
+ 0x993d, 0x1c30,
+ 0x9942, 0x1c32,
+ 0x9945, 0x1c34,
+ 0x9949, 0x1c33,
+ 0x994b, 0x1c36,
+ 0x994c, 0x1c39,
+ 0x9950, 0x1c35,
+ 0x9951, 0x1c37,
+ 0x9955, 0x1c3a,
+ 0x9957, 0x06ba,
+ 0x9996, 0x091f,
+ 0x9997, 0x1c3b,
+ 0x9999, 0x07f3,
+ 0x999e, 0x21ff,
+ 0x99a5, 0x1c3d,
+ 0x99a8, 0x059c,
+ 0x99ac, 0x0d05,
+ 0x99ad, 0x1c3e,
+ 0x99b3, 0x0b98,
+ 0x99b4, 0x0cc3,
+ 0x99bc, 0x1c40,
+ 0x99c1, 0x0d33,
+ 0x99c4, 0x0b2c,
+ 0x99c5, 0x04fa,
+ 0x99c6, 0x06e6,
+ 0x99c8, 0x06e7,
+ 0x99d0, 0x0bb1,
+ 0x99d1, 0x1c45,
+ 0x99d2, 0x06e8,
+ 0x99d5, 0x056f,
+ 0x99d8, 0x1c44,
+ 0x99db, 0x1c42,
+ 0x99dd, 0x1c43,
+ 0x99df, 0x1c41,
+ 0x99e2, 0x1c4f,
+ 0x99ed, 0x1c46,
+ 0x99f1, 0x1c48,
+ 0x99f8, 0x1c4b,
+ 0x99fb, 0x1c4a,
+ 0x99ff, 0x0963,
+ 0x9a01, 0x1c4c,
+ 0x9a05, 0x1c4e,
+ 0x9a0e, 0x064d,
+ 0x9a0f, 0x1c4d,
+ 0x9a12, 0x0afd,
+ 0x9a13, 0x0767,
+ 0x9a19, 0x1c50,
+ 0x9a28, 0x0b2d,
+ 0x9a2b, 0x1c51,
+ 0x9a30, 0x0c85,
+ 0x9a37, 0x1c52,
+ 0x9a3e, 0x1c57,
+ 0x9a40, 0x1c55,
+ 0x9a42, 0x1c54,
+ 0x9a43, 0x1c56,
+ 0x9a45, 0x1c53,
+ 0x9a4d, 0x1c59,
+ 0x9a4e, 0x2200,
+ 0x9a52, 0x1e2f,
+ 0x9a55, 0x1c58,
+ 0x9a57, 0x1c5b,
+ 0x9a5a, 0x06bb,
+ 0x9a5b, 0x1c5a,
+ 0x9a5f, 0x1c5c,
+ 0x9a62, 0x1c5d,
+ 0x9a64, 0x1c5f,
+ 0x9a65, 0x1c5e,
+ 0x9a69, 0x1c60,
+ 0x9a6a, 0x1c62,
+ 0x9a6b, 0x1c61,
+ 0x9aa8, 0x080e,
+ 0x9aad, 0x1c63,
+ 0x9ab0, 0x1c64,
+ 0x9ab8, 0x059a,
+ 0x9abc, 0x1c65,
+ 0x9ac0, 0x1c66,
+ 0x9ac4, 0x0a37,
+ 0x9acf, 0x1c67,
+ 0x9ad1, 0x1c68,
+ 0x9ad3, 0x1c69,
+ 0x9ad8, 0x07f4,
+ 0x9ad9, 0x2201,
+ 0x9adc, 0x2202,
+ 0x9ade, 0x1c6b,
+ 0x9ae2, 0x1c6d,
+ 0x9ae6, 0x1c6f,
+ 0x9aea, 0x0d45,
+ 0x9aeb, 0x1c71,
+ 0x9aed, 0x0d98,
+ 0x9aee, 0x1c72,
+ 0x9aef, 0x1c70,
+ 0x9af1, 0x1c74,
+ 0x9af4, 0x1c73,
+ 0x9af7, 0x1c75,
+ 0x9afb, 0x1c76,
+ 0x9b06, 0x1c77,
+ 0x9b18, 0x1c78,
+ 0x9b1a, 0x1c79,
+ 0x9b1f, 0x1c7a,
+ 0x9b22, 0x1c7b,
+ 0x9b25, 0x1c7d,
+ 0x9b27, 0x1c7e,
+ 0x9b2e, 0x1c82,
+ 0x9b31, 0x14d4,
+ 0x9b32, 0x1c84,
+ 0x9b3b, 0x17a9,
+ 0x9b3c, 0x064e,
+ 0x9b41, 0x057f,
+ 0x9b42, 0x0822,
+ 0x9b43, 0x1c86,
+ 0x9b44, 0x1c85,
+ 0x9b45, 0x0eb1,
+ 0x9b4d, 0x1c88,
+ 0x9b4f, 0x1c87,
+ 0x9b51, 0x1c8a,
+ 0x9b54, 0x0e90,
+ 0x9b58, 0x1c8b,
+ 0x9b5a, 0x0695,
+ 0x9b6f, 0x0fcb,
+ 0x9b72, 0x2204,
+ 0x9b74, 0x1c8c,
+ 0x9b75, 0x2203,
+ 0x9b83, 0x1c8e,
+ 0x9b8e, 0x0482,
+ 0x9b8f, 0x2205,
+ 0x9b91, 0x1c8f,
+ 0x9b92, 0x0dfb,
+ 0x9b93, 0x1c8d,
+ 0x9b96, 0x1c90,
+ 0x9b9f, 0x1c92,
+ 0x9ba8, 0x1c94,
+ 0x9baa, 0x0e9c,
+ 0x9bab, 0x087b,
+ 0x9bad, 0x086a,
+ 0x9bae, 0x0ab1,
+ 0x9bb1, 0x2206,
+ 0x9bb4, 0x1c95,
+ 0x9bb9, 0x1c98,
+ 0x9bbb, 0x2207,
+ 0x9bc0, 0x1c96,
+ 0x9bc6, 0x1c99,
+ 0x9bc9, 0x07a5,
+ 0x9bca, 0x1c97,
+ 0x9bcf, 0x1c9a,
+ 0x9bd1, 0x1c9b,
+ 0x9bd4, 0x1ca0,
+ 0x9bd6, 0x0878,
+ 0x9bdb, 0x0b44,
+ 0x9be1, 0x1ca1,
+ 0x9be2, 0x1c9e,
+ 0x9be3, 0x1c9d,
+ 0x9be4, 0x1c9f,
+ 0x9be8, 0x0735,
+ 0x9bf0, 0x1ca5,
+ 0x9bf1, 0x1ca4,
+ 0x9bf2, 0x1ca3,
+ 0x9bf5, 0x0477,
+ 0x9c00, 0x2208,
+ 0x9c04, 0x1caf,
+ 0x9c06, 0x1cab,
+ 0x9c08, 0x1cac,
+ 0x9c09, 0x1ca8,
+ 0x9c0a, 0x1cae,
+ 0x9c0c, 0x1caa,
+ 0x9c0d, 0x05c0,
+ 0x9c10, 0x0ff2,
+ 0x9c12, 0x1cad,
+ 0x9c13, 0x1ca9,
+ 0x9c14, 0x1ca7,
+ 0x9c15, 0x1ca6,
+ 0x9c1b, 0x1cb1,
+ 0x9c21, 0x1cb4,
+ 0x9c24, 0x1cb3,
+ 0x9c25, 0x1cb2,
+ 0x9c2d, 0x0dbb,
+ 0x9c2e, 0x1cb0,
+ 0x9c2f, 0x04b7,
+ 0x9c30, 0x1cb5,
+ 0x9c32, 0x1cb7,
+ 0x9c39, 0x05cd,
+ 0x9c3a, 0x1ca2,
+ 0x9c3b, 0x04d9,
+ 0x9c3e, 0x1cb9,
+ 0x9c46, 0x1cb8,
+ 0x9c47, 0x1cb6,
+ 0x9c48, 0x0b6b,
+ 0x9c52, 0x0e9e,
+ 0x9c57, 0x0fa2,
+ 0x9c5a, 0x1cba,
+ 0x9c60, 0x1cbb,
+ 0x9c67, 0x1cbc,
+ 0x9c76, 0x1cbd,
+ 0x9c78, 0x1cbe,
+ 0x9ce5, 0x0bd7,
+ 0x9ce7, 0x1cbf,
+ 0x9ce9, 0x0d4b,
+ 0x9ceb, 0x1cc4,
+ 0x9cec, 0x1cc0,
+ 0x9cf0, 0x1cc1,
+ 0x9cf3, 0x0e5f,
+ 0x9cf4, 0x0ed0,
+ 0x9cf6, 0x0ca8,
+ 0x9d03, 0x1cc5,
+ 0x9d06, 0x1cc6,
+ 0x9d07, 0x0c96,
+ 0x9d08, 0x1cc3,
+ 0x9d09, 0x1cc2,
+ 0x9d0e, 0x052a,
+ 0x9d12, 0x1cce,
+ 0x9d15, 0x1ccd,
+ 0x9d1b, 0x0517,
+ 0x9d1f, 0x1ccb,
+ 0x9d23, 0x1cca,
+ 0x9d26, 0x1cc8,
+ 0x9d28, 0x05d9,
+ 0x9d2a, 0x1cc7,
+ 0x9d2b, 0x08de,
+ 0x9d2c, 0x0529,
+ 0x9d3b, 0x07f5,
+ 0x9d3e, 0x1cd1,
+ 0x9d3f, 0x1cd0,
+ 0x9d41, 0x1ccf,
+ 0x9d44, 0x1ccc,
+ 0x9d46, 0x1cd2,
+ 0x9d48, 0x1cd3,
+ 0x9d50, 0x1cd8,
+ 0x9d51, 0x1cd7,
+ 0x9d59, 0x1cd9,
+ 0x9d5c, 0x04cf,
+ 0x9d5d, 0x1cd4,
+ 0x9d60, 0x0806,
+ 0x9d61, 0x0ec5,
+ 0x9d64, 0x1cd6,
+ 0x9d6b, 0x220a,
+ 0x9d6c, 0x0e60,
+ 0x9d6f, 0x1cde,
+ 0x9d70, 0x2209,
+ 0x9d72, 0x1cda,
+ 0x9d7a, 0x1cdf,
+ 0x9d87, 0x1cdc,
+ 0x9d89, 0x1cdb,
+ 0x9d8f, 0x0732,
+ 0x9d9a, 0x1ce0,
+ 0x9da4, 0x1ce1,
+ 0x9da9, 0x1ce2,
+ 0x9dab, 0x1cdd,
+ 0x9daf, 0x1cc9,
+ 0x9db2, 0x1ce3,
+ 0x9db4, 0x0bfd,
+ 0x9db8, 0x1ce7,
+ 0x9dba, 0x1ce8,
+ 0x9dbb, 0x1ce6,
+ 0x9dc1, 0x1ce5,
+ 0x9dc2, 0x1ceb,
+ 0x9dc4, 0x1ce4,
+ 0x9dc6, 0x1ce9,
+ 0x9dcf, 0x1cea,
+ 0x9dd3, 0x1ced,
+ 0x9dd7, 0x1dde,
+ 0x9dd9, 0x1cec,
+ 0x9de6, 0x1cef,
+ 0x9ded, 0x1cf0,
+ 0x9def, 0x1cf1,
+ 0x9df2, 0x0fef,
+ 0x9df8, 0x1cee,
+ 0x9df9, 0x0b4b,
+ 0x9dfa, 0x085d,
+ 0x9dfd, 0x1cf2,
+ 0x9e19, 0x220c,
+ 0x9e1a, 0x1cf3,
+ 0x9e1e, 0x1cf5,
+ 0x9e75, 0x1cf6,
+ 0x9e78, 0x0768,
+ 0x9e79, 0x1cf7,
+ 0x9e7c, 0x1dfd,
+ 0x9e7d, 0x1cf8,
+ 0x9e7f, 0x08db,
+ 0x9e81, 0x1cf9,
+ 0x9e88, 0x1cfa,
+ 0x9e8b, 0x1cfb,
+ 0x9e91, 0x1cff,
+ 0x9e92, 0x1cfd,
+ 0x9e93, 0x0fe2,
+ 0x9e95, 0x1cfe,
+ 0x9e97, 0x0fb7,
+ 0x9e9d, 0x1d00,
+ 0x9e9f, 0x0fa3,
+ 0x9ea5, 0x1d01,
+ 0x9ea6, 0x0d34,
+ 0x9ea9, 0x1d02,
+ 0x9eaa, 0x1d04,
+ 0x9ead, 0x1d05,
+ 0x9eb4, 0x1e02,
+ 0x9eb5, 0x1e75,
+ 0x9eb8, 0x1d03,
+ 0x9eb9, 0x07ff,
+ 0x9eba, 0x0ed9,
+ 0x9ebb, 0x0e91,
+ 0x9ebc, 0x1284,
+ 0x9ebe, 0x14ff,
+ 0x9ebf, 0x0ea9,
+ 0x9ec4, 0x052b,
+ 0x9ecc, 0x1d07,
+ 0x9ecd, 0x066a,
+ 0x9ece, 0x1d08,
+ 0x9ed1, 0x220d,
+ 0x9ed2, 0x0807,
+ 0x9ed4, 0x1d0b,
+ 0x9ed8, 0x160d,
+ 0x9ed9, 0x0ee7,
+ 0x9edb, 0x0b43,
+ 0x9edc, 0x1d0c,
+ 0x9edd, 0x1d0e,
+ 0x9ede, 0x1d0d,
+ 0x9ee0, 0x1d0f,
+ 0x9ee5, 0x1d10,
+ 0x9ee8, 0x1d11,
+ 0x9eef, 0x1d12,
+ 0x9ef4, 0x1d13,
+ 0x9ef6, 0x1d14,
+ 0x9ef9, 0x1d16,
+ 0x9efb, 0x1d17,
+ 0x9f07, 0x1d1a,
+ 0x9f0e, 0x0c1e,
+ 0x9f13, 0x0791,
+ 0x9f15, 0x1d1d,
+ 0x9f20, 0x0acf,
+ 0x9f21, 0x1d1e,
+ 0x9f2c, 0x1d1f,
+ 0x9f3b, 0x0d93,
+ 0x9f3e, 0x1d20,
+ 0x9f4a, 0x1d21,
+ 0x9f4b, 0x170a,
+ 0x9f4e, 0x1a7b,
+ 0x9f4f, 0x1c06,
+ 0x9f52, 0x1d22,
+ 0x9f54, 0x1d23,
+ 0x9f5f, 0x1d25,
+ 0x9f62, 0x0fb8,
+ 0x9f63, 0x1d24,
+ 0x9f66, 0x1d28,
+ 0x9f6a, 0x1d2b,
+ 0x9f6c, 0x1d2a,
+ 0x9f72, 0x1d2d,
+ 0x9f76, 0x1d2e,
+ 0x9f77, 0x1d2c,
+ 0x9f8d, 0x0f7e,
+ 0x9f95, 0x1d2f,
+ 0x9f9c, 0x1d30,
+ 0x9f9d, 0x1727,
+ 0x9fa0, 0x1d31,
+ 0xf929, 0x2129,
+ 0xf9dc, 0x21ee,
+ 0xfa0e, 0x20da,
+ 0xfa0f, 0x20e5,
+ 0xfa11, 0x20fb,
+ 0xfa12, 0x2121,
+ 0xfa13, 0x2131,
+ 0xfa14, 0x2133,
+ 0xfa15, 0x215e,
+ 0xfa16, 0x2164,
+ 0xfa17, 0x217b,
+ 0xfa18, 0x2183,
+ 0xfa1b, 0x2187,
+ 0xfa1c, 0x218b,
+ 0xfa1d, 0x218e,
+ 0xfa1e, 0x2197,
+ 0xfa1f, 0x21a2,
+ 0xfa20, 0x21a4,
+ 0xfa22, 0x21ae,
+ 0xfa23, 0x21b6,
+ 0xfa24, 0x21b8,
+ 0xfa26, 0x21bc,
+ 0xfa27, 0x21d8,
+ 0xfa28, 0x21df,
+ 0xfa29, 0x21ef,
+ 0xfa2a, 0x21fb,
+ 0xfa2c, 0x21fe,
+ 0xfa2d, 0x220b,
+ 0xfb01, 0x0070,
+ 0xfe30, 0x1eda,
+ 0xfe31, 0x1ed4,
+ 0xfe33, 0x1ed2,
+ 0xfe35, 0x1edb,
+ 0xfe37, 0x1ee1,
+ 0xfe39, 0x1edd,
+ 0xfe3b, 0x1eeb,
+ 0xfe3d, 0x1ee5,
+ 0xfe3f, 0x1ee3,
+ 0xfe41, 0x1ee7,
+ 0xff01, 0x0282,
+ 0xff02, 0x1f47,
+ 0xff03, 0x02cc,
+ 0xff04, 0x02c8,
+ 0xff05, 0x02cb,
+ 0xff06, 0x02cd,
+ 0xff07, 0x1f46,
+ 0xff08, 0x02a2,
+ 0xff0a, 0x02ce,
+ 0xff0b, 0x02b4,
+ 0xff0c, 0x027c,
+ 0xff0d, 0x0296,
+ 0xff0e, 0x027d,
+ 0xff0f, 0x0297,
+ 0xff10, 0x030c,
+ 0xff1a, 0x027f,
+ 0xff1c, 0x02bb,
+ 0xff1d, 0x02b9,
+ 0xff1e, 0x02bc,
+ 0xff1f, 0x0281,
+ 0xff20, 0x02cf,
+ 0xff21, 0x0316,
+ 0xff3b, 0x02a6,
+ 0xff3c, 0x0298,
+ 0xff3d, 0x02a7,
+ 0xff3e, 0x0288,
+ 0xff3f, 0x028a,
+ 0xff40, 0x0286,
+ 0xff41, 0x0330,
+ 0xff5b, 0x02a8,
+ 0xff5c, 0x029b,
+ 0xff5d, 0x02a9,
+ 0xff5e, 0x0299,
+ 0xff61, 0x0147,
+ 0xffe0, 0x02c9,
+ 0xffe2, 0x02ef,
+ 0xffe3, 0x0289,
+ 0xffe4, 0x1f45,
+ 0xffe5, 0x02c7,
+ 0xffe8, 0x0143,
+ 0x00b0, 0x204d,
+ 0x2015, 0x1ed4,
+ 0x2016, 0x1ed7,
+ 0x2018, 0x2059,
+ 0x201c, 0x2057,
+ 0x2025, 0x1eda,
+ 0x2026, 0x1ed9,
+ 0x2032, 0x2051,
+ 0x2033, 0x205b,
+ 0x2190, 0x02e2,
+ 0x2191, 0x02e0,
+ 0x2192, 0x02e3,
+ 0x2193, 0x02e1,
+ 0x2225, 0x1ed7,
+ 0x223c, 0x1ed6,
+ 0x22ef, 0x1ed9,
+ 0x2500, 0x1d39,
+ 0x2502, 0x1d37,
+ 0x2504, 0x1d3d,
+ 0x2506, 0x1d3b,
+ 0x2508, 0x1d41,
+ 0x250a, 0x1d3f,
+ 0x250c, 0x1d47,
+ 0x250d, 0x1d49,
+ 0x250e, 0x1d48,
+ 0x250f, 0x1d4a,
+ 0x2510, 0x1d4f,
+ 0x2511, 0x1d51,
+ 0x2512, 0x1d50,
+ 0x2513, 0x1d52,
+ 0x2514, 0x1d43,
+ 0x2515, 0x1d45,
+ 0x2516, 0x1d44,
+ 0x2517, 0x1d46,
+ 0x2518, 0x1d4b,
+ 0x2519, 0x1d4d,
+ 0x251a, 0x1d4c,
+ 0x251b, 0x1d4e,
+ 0x251c, 0x1d63,
+ 0x251d, 0x1d67,
+ 0x251e, 0x1d65,
+ 0x251f, 0x1d64,
+ 0x2520, 0x1d66,
+ 0x2521, 0x1d69,
+ 0x2522, 0x1d68,
+ 0x2523, 0x1d6a,
+ 0x2525, 0x1d6f,
+ 0x2526, 0x1d6d,
+ 0x2527, 0x1d6c,
+ 0x2528, 0x1d6e,
+ 0x2529, 0x1d71,
+ 0x252a, 0x1d70,
+ 0x252b, 0x1d72,
+ 0x252c, 0x1d5b,
+ 0x252d, 0x1d5d,
+ 0x2530, 0x1d5c,
+ 0x2531, 0x1d60,
+ 0x2534, 0x1d53,
+ 0x2535, 0x1d55,
+ 0x2538, 0x1d54,
+ 0x2539, 0x1d58,
+ 0x253d, 0x1d77,
+ 0x2540, 0x1d75,
+ 0x2541, 0x1d74,
+ 0x2542, 0x1d76,
+ 0x2543, 0x1d7b,
+ 0x2544, 0x1d7d,
+ 0x2545, 0x1d7a,
+ 0x2546, 0x1d7c,
+ 0x2547, 0x1d81,
+ 0x2548, 0x1d80,
+ 0x2549, 0x1d7e,
+ 0x3001, 0x1ecf,
+ 0x3008, 0x1ee3,
+ 0x3013, 0x204e,
+ 0x3014, 0x1edd,
+ 0x301c, 0x1ed6,
+ 0x301d, 0x1f14,
+ 0x301f, 0x1f15,
+ 0x3041, 0x1eee,
+ 0x3043, 0x1eef,
+ 0x3045, 0x1ef0,
+ 0x3047, 0x1ef1,
+ 0x3049, 0x1ef2,
+ 0x3063, 0x1ef3,
+ 0x3083, 0x1ef4,
+ 0x3085, 0x1ef5,
+ 0x3087, 0x1ef6,
+ 0x308e, 0x1ef7,
+ 0x309b, 0x2050,
+ 0x309c, 0x204f,
+ 0x30a1, 0x1ef8,
+ 0x30a3, 0x1ef9,
+ 0x30a5, 0x1efa,
+ 0x30a7, 0x1efb,
+ 0x30a9, 0x1efc,
+ 0x30c3, 0x1efd,
+ 0x30e3, 0x1efe,
+ 0x30e5, 0x1eff,
+ 0x30e7, 0x1f00,
+ 0x30ee, 0x1f01,
+ 0x30f5, 0x1f02,
+ 0x30fc, 0x1ed3,
+ 0x3300, 0x209e,
+ 0x3303, 0x2092,
+ 0x3305, 0x208d,
+ 0x330d, 0x1f0e,
+ 0x3314, 0x1f05,
+ 0x3315, 0x2094,
+ 0x3316, 0x208a,
+ 0x3318, 0x2093,
+ 0x331e, 0x20a1,
+ 0x3322, 0x2089,
+ 0x3323, 0x209c,
+ 0x3326, 0x1f0f,
+ 0x3327, 0x1f09,
+ 0x332a, 0x20a4,
+ 0x332b, 0x1f11,
+ 0x3331, 0x20a6,
+ 0x3333, 0x208e,
+ 0x3336, 0x1f0b,
+ 0x3339, 0x2097,
+ 0x333b, 0x209d,
+ 0x3342, 0x209b,
+ 0x3347, 0x20a5,
+ 0x3349, 0x1f04,
+ 0x334a, 0x1f12,
+ 0x334d, 0x1f07,
+ 0x334e, 0x2091,
+ 0x3351, 0x1f0c,
+ 0x3357, 0x2098,
+ 0x337f, 0x2084,
+ 0xff08, 0x1edb,
+ 0xff0c, 0x204c,
+ 0xff0d, 0x1ed5,
+ 0xff0e, 0x2052,
+ 0xff1d, 0x1eed,
+ 0xff3b, 0x1edf,
+ 0xff3d, 0x1ee0,
+ 0xff3f, 0x1ed2,
+ 0xff5b, 0x1ee1,
+ 0xff5c, 0x1ed8,
+ 0xff5d, 0x1ee2,
+ 0xff5e, 0x1ed6,
+ 0xffe3, 0x1ed1,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12UniJISUCS2VEnc16 = {
+ 1,
+ { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12UniJISUCS2VMap2, 7108
+};
+
+static Gushort japan12VMap2[294] = {
+ 0x0000, 0x0000,
+ 0x2121, 0x0279,
+ 0x2221, 0x02d7,
+ 0x223a, 0x02e5,
+ 0x224a, 0x02ed,
+ 0x225c, 0x02f4,
+ 0x2272, 0x0303,
+ 0x227e, 0x030b,
+ 0x2330, 0x030c,
+ 0x2341, 0x0316,
+ 0x2361, 0x0330,
+ 0x2421, 0x034a,
+ 0x2521, 0x039d,
+ 0x2621, 0x03f3,
+ 0x2641, 0x040b,
+ 0x2721, 0x0423,
+ 0x2751, 0x0444,
+ 0x2821, 0x1d37,
+ 0x2822, 0x1d39,
+ 0x2823, 0x1d43,
+ 0x2824, 0x1d47,
+ 0x2825, 0x1d4f,
+ 0x2826, 0x1d4b,
+ 0x2827, 0x1d53,
+ 0x2828, 0x1d63,
+ 0x2829, 0x1d5b,
+ 0x282a, 0x1d6b,
+ 0x282b, 0x1d73,
+ 0x282c, 0x1d38,
+ 0x282d, 0x1d3a,
+ 0x282e, 0x1d46,
+ 0x282f, 0x1d4a,
+ 0x2830, 0x1d52,
+ 0x2831, 0x1d4e,
+ 0x2832, 0x1d5a,
+ 0x2833, 0x1d6a,
+ 0x2834, 0x1d62,
+ 0x2835, 0x1d72,
+ 0x2836, 0x1d82,
+ 0x2837, 0x1d57,
+ 0x2838, 0x1d66,
+ 0x2839, 0x1d5f,
+ 0x283a, 0x1d6e,
+ 0x283b, 0x1d76,
+ 0x283c, 0x1d54,
+ 0x283d, 0x1d67,
+ 0x283e, 0x1d5c,
+ 0x283f, 0x1d6f,
+ 0x2840, 0x1d79,
+ 0x3021, 0x0465,
+ 0x3121, 0x04c3,
+ 0x3221, 0x0521,
+ 0x3321, 0x057f,
+ 0x3421, 0x05dd,
+ 0x3521, 0x063b,
+ 0x3621, 0x0699,
+ 0x3721, 0x06f7,
+ 0x3821, 0x0755,
+ 0x3921, 0x07b3,
+ 0x3a21, 0x0811,
+ 0x3b21, 0x086f,
+ 0x3c21, 0x08cd,
+ 0x3d21, 0x092b,
+ 0x3e21, 0x0989,
+ 0x3f21, 0x09e7,
+ 0x4021, 0x0a45,
+ 0x4121, 0x0aa3,
+ 0x4221, 0x0b01,
+ 0x4321, 0x0b5f,
+ 0x4421, 0x0bbd,
+ 0x4521, 0x0c1b,
+ 0x4621, 0x0c79,
+ 0x4721, 0x0cd7,
+ 0x4821, 0x0d35,
+ 0x4921, 0x0d93,
+ 0x4a21, 0x0df1,
+ 0x4b21, 0x0e4f,
+ 0x4c21, 0x0ead,
+ 0x4d21, 0x0f0b,
+ 0x4e21, 0x0f69,
+ 0x4f21, 0x0fc7,
+ 0x5021, 0x0ffa,
+ 0x5121, 0x1058,
+ 0x5221, 0x10b6,
+ 0x5321, 0x1114,
+ 0x5421, 0x1172,
+ 0x5521, 0x11d0,
+ 0x5621, 0x122e,
+ 0x5721, 0x128c,
+ 0x5821, 0x12ea,
+ 0x5921, 0x1348,
+ 0x5a21, 0x13a6,
+ 0x5b21, 0x1404,
+ 0x5c21, 0x1462,
+ 0x5d21, 0x14c0,
+ 0x5e21, 0x151e,
+ 0x5f21, 0x157c,
+ 0x6021, 0x15da,
+ 0x6121, 0x1638,
+ 0x6221, 0x1696,
+ 0x6321, 0x16f4,
+ 0x6421, 0x1752,
+ 0x6521, 0x17b0,
+ 0x6621, 0x180e,
+ 0x6721, 0x186c,
+ 0x6821, 0x18ca,
+ 0x6921, 0x1928,
+ 0x6a21, 0x1986,
+ 0x6b21, 0x19e4,
+ 0x6c21, 0x1a42,
+ 0x6d21, 0x1aa0,
+ 0x6e21, 0x1afe,
+ 0x6f21, 0x1b5c,
+ 0x7021, 0x1bba,
+ 0x7121, 0x1c18,
+ 0x7221, 0x1c76,
+ 0x7321, 0x1cd4,
+ 0x7421, 0x1d32,
+ 0x7425, 0x205c,
+ 0x2122, 0x1ecf,
+ 0x2131, 0x1ed1,
+ 0x213c, 0x1ed3,
+ 0x2141, 0x1ed6,
+ 0x214a, 0x1edb,
+ 0x2161, 0x1eed,
+ 0x2421, 0x1eee,
+ 0x2423, 0x1eef,
+ 0x2425, 0x1ef0,
+ 0x2427, 0x1ef1,
+ 0x2429, 0x1ef2,
+ 0x2443, 0x1ef3,
+ 0x2463, 0x1ef4,
+ 0x2465, 0x1ef5,
+ 0x2467, 0x1ef6,
+ 0x246e, 0x1ef7,
+ 0x2521, 0x1ef8,
+ 0x2523, 0x1ef9,
+ 0x2525, 0x1efa,
+ 0x2527, 0x1efb,
+ 0x2529, 0x1efc,
+ 0x2543, 0x1efd,
+ 0x2563, 0x1efe,
+ 0x2565, 0x1eff,
+ 0x2567, 0x1f00,
+ 0x256e, 0x1f01,
+ 0x2575, 0x1f02,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12VEnc16 = {
+ 1,
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12VMap2, 147
+};
+
static Gushort japan12WPSymbolMap2[4] = {
0x0000, 0x0000,
0xffff, 0x0000
};
static GfxFontEncoding16 japan12WPSymbolEnc16 = {
+ 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, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -15592,6 +31216,99 @@ static GfxFontEncoding16 japan12WPSymbolEnc16 = {
japan12WPSymbolMap2, 2
};
+static Gushort japan12AdobeJapan12VMap2[74] = {
+ 0x0000, 0x0000,
+ 0x0000, 0x0000,
+ 0x0100, 0x0100,
+ 0x0200, 0x0200,
+ 0x0300, 0x0300,
+ 0x0400, 0x0400,
+ 0x0500, 0x0500,
+ 0x0600, 0x0600,
+ 0x0700, 0x0700,
+ 0x0800, 0x0800,
+ 0x0900, 0x0900,
+ 0x0a00, 0x0a00,
+ 0x0b00, 0x0b00,
+ 0x0c00, 0x0c00,
+ 0x0d00, 0x0d00,
+ 0x0e00, 0x0e00,
+ 0x0f00, 0x0f00,
+ 0x1000, 0x1000,
+ 0x1100, 0x1100,
+ 0x1200, 0x1200,
+ 0x1300, 0x1300,
+ 0x1400, 0x1400,
+ 0x1500, 0x1500,
+ 0x1600, 0x1600,
+ 0x1700, 0x1700,
+ 0x1800, 0x1800,
+ 0x1900, 0x1900,
+ 0x1a00, 0x1a00,
+ 0x1b00, 0x1b00,
+ 0x1c00, 0x1c00,
+ 0x1d00, 0x1d00,
+ 0x1e00, 0x1e00,
+ 0x1f00, 0x1f00,
+ 0x2000, 0x2000,
+ 0x2100, 0x2100,
+ 0x2200, 0x2200,
+ 0xffff, 0x0000
+};
+
+static GfxFontEncoding16 japan12AdobeJapan12VEnc16 = {
+ 1,
+ { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },
+ japan12AdobeJapan12VMap2, 37
+};
+
struct GfxFontEnc16Entry {
char *name;
GfxFontEncoding16 *enc;
@@ -15599,31 +31316,48 @@ struct GfxFontEnc16Entry {
static GfxFontEnc16Entry gfxFontEnc16Tab[] = {
{ "78-EUC-H", &japan1278EUCHEnc16 },
+ { "78-EUC-V", &japan1278EUCVEnc16 },
{ "78-H", &japan1278HEnc16 },
{ "78-RKSJ-H", &japan1278RKSJHEnc16 },
+ { "78-RKSJ-V", &japan1278RKSJVEnc16 },
+ { "78-V", &japan1278VEnc16 },
{ "78ms-RKSJ-H", &japan1278msRKSJHEnc16 },
+ { "78ms-RKSJ-V", &japan1278msRKSJVEnc16 },
{ "83pv-RKSJ-H", &japan1283pvRKSJHEnc16 },
{ "90ms-RKSJ-H", &japan1290msRKSJHEnc16 },
+ { "90ms-RKSJ-V", &japan1290msRKSJVEnc16 },
{ "90msp-RKSJ-H", &japan1290mspRKSJHEnc16 },
+ { "90msp-RKSJ-V", &japan1290mspRKSJVEnc16 },
{ "90pv-RKSJ-H", &japan1290pvRKSJHEnc16 },
+ { "90pv-RKSJ-V", &japan1290pvRKSJVEnc16 },
{ "Add-H", &japan12AddHEnc16 },
{ "Add-RKSJ-H", &japan12AddRKSJHEnc16 },
+ { "Add-RKSJ-V", &japan12AddRKSJVEnc16 },
+ { "Add-V", &japan12AddVEnc16 },
{ "Adobe-Japan1-0", &japan12AdobeJapan10Enc16 },
{ "Adobe-Japan1-1", &japan12AdobeJapan11Enc16 },
{ "Adobe-Japan1-2", &japan12AdobeJapan12Enc16 },
{ "EUC-H", &japan12EUCHEnc16 },
+ { "EUC-V", &japan12EUCVEnc16 },
{ "Ext-H", &japan12ExtHEnc16 },
{ "Ext-RKSJ-H", &japan12ExtRKSJHEnc16 },
+ { "Ext-RKSJ-V", &japan12ExtRKSJVEnc16 },
+ { "Ext-V", &japan12ExtVEnc16 },
{ "H", &japan12HEnc16 },
{ "Hankaku", &japan12HankakuEnc16 },
{ "Hiragana", &japan12HiraganaEnc16 },
{ "Katakana", &japan12KatakanaEnc16 },
{ "NWP-H", &japan12NWPHEnc16 },
+ { "NWP-V", &japan12NWPVEnc16 },
{ "RKSJ-H", &japan12RKSJHEnc16 },
+ { "RKSJ-V", &japan12RKSJVEnc16 },
{ "Roman", &japan12RomanEnc16 },
{ "UniJIS-UCS2-H", &japan12UniJISUCS2HEnc16 },
+ { "UniJIS-UCS2-V", &japan12UniJISUCS2VEnc16 },
+ { "V", &japan12VEnc16 },
{ "WP-Symbol", &japan12WPSymbolEnc16 },
{ "Identity-H", &japan12AdobeJapan12Enc16 },
+ { "Identity-V", &japan12AdobeJapan12VEnc16 },
{ NULL, NULL }
};
diff --git a/pdf/xpdf/Catalog.cc b/pdf/xpdf/Catalog.cc
index fded0be..ea968ee 100644
--- a/pdf/xpdf/Catalog.cc
+++ b/pdf/xpdf/Catalog.cc
@@ -26,7 +26,7 @@
Catalog::Catalog(Object *catDict) {
Object pagesDict;
- Object obj;
+ Object obj, obj2;
int i;
ok = gTrue;
@@ -74,6 +74,16 @@ Catalog::Catalog(Object *catDict) {
nameTree.initNull();
obj.free();
+ // read base URI
+ baseURI = NULL;
+ if (catDict->dictLookup("URI", &obj)->isDict()) {
+ if (obj.dictLookup("Base", &obj2)->isString()) {
+ baseURI = obj2.getString()->copy();
+ }
+ obj2.free();
+ }
+ obj.free();
+
return;
err3:
@@ -99,6 +109,9 @@ Catalog::~Catalog() {
}
dests.free();
nameTree.free();
+ if (baseURI) {
+ delete baseURI;
+ }
}
int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start) {
diff --git a/pdf/xpdf/Catalog.h b/pdf/xpdf/Catalog.h
index 72ff0a3..abda62d 100644
--- a/pdf/xpdf/Catalog.h
+++ b/pdf/xpdf/Catalog.h
@@ -41,6 +41,9 @@ public:
// Get a page.
Page *getPage(int i) { return pages[i-1]; }
+ // Return base URI, or NULL if none.
+ GString *getBaseURI() { return baseURI; }
+
// Find a page, given its object ID. Returns page number, or 0 if
// not found.
int findPage(int num, int gen);
@@ -56,6 +59,7 @@ private:
int numPages; // number of pages
Object dests; // named destination dictionary
Object nameTree; // name tree
+ GString *baseURI; // base URI for URI-type links
GBool ok; // true if catalog is valid
int readPageTree(Dict *pages, PageAttrs *attrs, int start);
diff --git a/pdf/xpdf/Error.cc b/pdf/xpdf/Error.cc
index cbb623b..0dc8150 100644
--- a/pdf/xpdf/Error.cc
+++ b/pdf/xpdf/Error.cc
@@ -20,23 +20,32 @@
// Send error messages to /dev/tty instead of stderr.
GBool errorsToTTY = gFalse;
-// File to send error (and other) messages to.
FILE *errFile;
+GBool errQuiet;
void errorInit() {
- if (!errorsToTTY || !(errFile = fopen("/dev/tty", "w")))
- errFile = stderr;
+ if (errQuiet) {
+ errFile = NULL;
+ } else {
+ if (!errorsToTTY || !(errFile = fopen("/dev/tty", "w")))
+ errFile = stderr;
+ }
}
void CDECL error(int pos, char *msg, ...) {
va_list args;
- if (printCommands)
+ if (errQuiet) {
+ return;
+ }
+ if (printCommands) {
fflush(stdout);
- if (pos >= 0)
+ }
+ if (pos >= 0) {
fprintf(errFile, "Error (%d): ", pos);
- else
+ } else {
fprintf(errFile, "Error: ");
+ }
va_start(args, msg);
vfprintf(errFile, msg, args);
va_end(args);
diff --git a/pdf/xpdf/FontInfo.h b/pdf/xpdf/FontInfo.h
index d4fd9a5..ee85b95 100644
--- a/pdf/xpdf/FontInfo.h
+++ b/pdf/xpdf/FontInfo.h
@@ -353,8 +353,8 @@ static char *standardEncodingNames[standardEncodingSize] = {
"ydieresis",
"zcaron"
};
-static GfxFontEncoding standardEncoding(standardEncodingNames,
- standardEncodingSize);
+static FontEncoding standardEncoding(standardEncodingNames,
+ standardEncodingSize);
#define symbolEncodingSize 257
static char *symbolEncodingNames[symbolEncodingSize] = {
@@ -616,8 +616,8 @@ static char *symbolEncodingNames[symbolEncodingSize] = {
NULL,
"apple"
};
-static GfxFontEncoding symbolEncoding(symbolEncodingNames,
- symbolEncodingSize);
+static FontEncoding symbolEncoding(symbolEncodingNames,
+ symbolEncodingSize);
#define zapfDingbatsEncodingSize 270
static char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = {
@@ -892,8 +892,8 @@ static char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = {
"a95",
"a96"
};
-static GfxFontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames,
- zapfDingbatsEncodingSize);
+static FontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames,
+ zapfDingbatsEncodingSize);
#define macRomanEncodingSize 256
static char *macRomanEncodingNames[macRomanEncodingSize] = {
@@ -1154,8 +1154,8 @@ static char *macRomanEncodingNames[macRomanEncodingSize] = {
"ogonek",
"caron"
};
-static GfxFontEncoding macRomanEncoding(macRomanEncodingNames,
- macRomanEncodingSize);
+static FontEncoding macRomanEncoding(macRomanEncodingNames,
+ macRomanEncodingSize);
#define winAnsiEncodingSize 256
static char *winAnsiEncodingNames[winAnsiEncodingSize] = {
@@ -1416,8 +1416,8 @@ static char *winAnsiEncodingNames[winAnsiEncodingSize] = {
"thorn",
"ydieresis"
};
-static GfxFontEncoding winAnsiEncoding(winAnsiEncodingNames,
- winAnsiEncodingSize);
+static FontEncoding winAnsiEncoding(winAnsiEncodingNames,
+ winAnsiEncodingSize);
//------------------------------------------------------------------------
// Character widths for built-in fonts.
@@ -2043,7 +2043,7 @@ static Gushort zapfDingbatsWidths[270] = {
struct BuiltinFont {
char *name;
Gushort *widths;
- GfxFontEncoding *encoding;
+ FontEncoding *encoding;
};
#define numBuiltinFonts ((int)(sizeof(builtinFonts)/sizeof(BuiltinFont)))
diff --git a/pdf/xpdf/Gfx.cc b/pdf/xpdf/Gfx.cc
index d58ddd8..bbf5bdf 100644
--- a/pdf/xpdf/Gfx.cc
+++ b/pdf/xpdf/Gfx.cc
@@ -167,6 +167,8 @@ Operator Gfx::opTab[] = {
&Gfx::opRectangle},
{"rg", 3, {tchkNum, tchkNum, tchkNum},
&Gfx::opSetFillRGBColor},
+ {"ri", 1, {tchkName},
+ &Gfx::opSetRenderingIntent},
{"s", 0, {tchkNone},
&Gfx::opCloseStroke},
{"sc", -4, {tchkNum, tchkNum, tchkNum, tchkNum},
@@ -174,6 +176,8 @@ Operator Gfx::opTab[] = {
{"scn", -5, {tchkSCN, tchkSCN, tchkSCN, tchkSCN,
tchkSCN},
&Gfx::opSetFillColorN},
+ {"sh", 1, {tchkName},
+ &Gfx::opShFill},
{"v", 4, {tchkNum, tchkNum, tchkNum, tchkNum},
&Gfx::opCurveTo1},
{"w", 1, {tchkNum},
@@ -560,6 +564,9 @@ void Gfx::opSetLineWidth(Object args[], int numArgs) {
void Gfx::opSetExtGState(Object args[], int numArgs) {
}
+void Gfx::opSetRenderingIntent(Object args[], int numArgs) {
+}
+
//------------------------------------------------------------------------
// color operators
//------------------------------------------------------------------------
@@ -884,6 +891,9 @@ void Gfx::opCloseEOFillStroke(Object args[], int numArgs) {
doEndPath();
}
+void Gfx::opShFill(Object args[], int numArgs) {
+}
+
void Gfx::doEndPath() {
if (state->isPath()) {
if (clip == clipNormal)
@@ -1088,7 +1098,7 @@ void Gfx::doShowText(GString *s) {
int c16;
GString *s16;
int m, n;
- double dx, dy, width, w, h;
+ double dx, dy, width, height, w, h;
if (fontChanged) {
out->updateFont(state);
@@ -1110,12 +1120,19 @@ void Gfx::doShowText(GString *s) {
n = s->getLength();
while (n > 0) {
m = getNextChar16(enc, p, &c16);
- width = state->getFontSize() * state->getHorizScaling() *
- font->getWidth16(c16) +
- state->getCharSpace();
- if (c16 == ' ')
- width += state->getWordSpace();
- state->textTransformDelta(width, 0, &w, &h);
+ if (enc->wMode == 0) {
+ width = state->getFontSize() * state->getHorizScaling() *
+ font->getWidth16(c16) +
+ state->getCharSpace();
+ if (c16 == ' ') {
+ width += state->getWordSpace();
+ }
+ height = 0;
+ } else {
+ width = 0;
+ height = state->getFontSize() * font->getHeight16(c16);
+ }
+ state->textTransformDelta(width, height, &w, &h);
if (out->useDrawChar()) {
out->drawChar16(state, state->getCurX() + dx, state->getCurY() + dy,
w, h, c16);
@@ -1124,7 +1141,7 @@ void Gfx::doShowText(GString *s) {
s16->setChar(1, (char)c16);
out->drawString16(state, s16);
}
- state->textShift(width);
+ state->textShift(width, height);
n -= m;
p += m;
}
@@ -1365,9 +1382,7 @@ void Gfx::doForm(Object *str) {
// check form type
dict->lookup("FormType", &obj1);
if (!(obj1.isInt() && obj1.getInt() == 1)) {
- obj1.free();
error(getPos(), "Unknown form type");
- return;
}
obj1.free();
@@ -1387,10 +1402,10 @@ void Gfx::doForm(Object *str) {
}
// push new resources on stack
+ res = new GfxResources(res);
dict->lookup("Resources", &obj1);
if (obj1.isDict()) {
resDict = obj1.getDict();
- res = new GfxResources(res);
res->fonts = NULL;
resDict->lookup("Font", &obj2);
if (obj2.isDict())
diff --git a/pdf/xpdf/Gfx.h b/pdf/xpdf/Gfx.h
index e1dc3d4..f725f85 100644
--- a/pdf/xpdf/Gfx.h
+++ b/pdf/xpdf/Gfx.h
@@ -61,7 +61,7 @@ struct Operator {
class GfxResources {
public:
- GfxResources(GfxResources *next1) { next = next1; }
+ GfxResources(GfxResources *next1) { fonts = NULL; next = next1; }
~GfxResources();
GfxFontDict *fonts;
@@ -119,6 +119,7 @@ private:
void opSetMiterLimit(Object args[], int numArgs);
void opSetLineWidth(Object args[], int numArgs);
void opSetExtGState(Object args[], int numArgs);
+ void opSetRenderingIntent(Object args[], int numArgs);
// color operators
void opSetFillGray(Object args[], int numArgs);
@@ -153,6 +154,7 @@ private:
void opCloseFillStroke(Object args[], int numArgs);
void opEOFillStroke(Object args[], int numArgs);
void opCloseEOFillStroke(Object args[], int numArgs);
+ void opShFill(Object args[], int numArgs);
void doEndPath();
// path clipping operators
diff --git a/pdf/xpdf/GfxFont.cc b/pdf/xpdf/GfxFont.cc
index d1148cf..d93a81f 100644
--- a/pdf/xpdf/GfxFont.cc
+++ b/pdf/xpdf/GfxFont.cc
@@ -24,6 +24,7 @@
#include "Dict.h"
#include "Error.h"
#include "Params.h"
+#include "FontFile.h"
#include "GfxFont.h"
#include "FontInfo.h"
@@ -34,6 +35,7 @@
//------------------------------------------------------------------------
static int CDECL cmpWidthExcep(const void *w1, const void *w2);
+static int CDECL cmpWidthExcepV(const void *w1, const void *w2);
//------------------------------------------------------------------------
@@ -53,124 +55,12 @@ static Gushort *defCharWidths[12] = {
};
//------------------------------------------------------------------------
-// GfxFontEncoding
-//------------------------------------------------------------------------
-
-inline int GfxFontEncoding::hash(char *name) {
- int h;
-
- h = name[0];
- if (name[1])
- h = h * 61 + name[1];
- return h % gfxFontEncHashSize;
-}
-
-GfxFontEncoding::GfxFontEncoding() {
- int i;
-
- encoding = (char **)gmalloc(256 * sizeof(char *));
- freeEnc = gTrue;
- for (i = 0; i < 256; ++i)
- encoding[i] = NULL;
- for (i = 0; i < gfxFontEncHashSize; ++i)
- hashTab[i] = -1;
-}
-
-GfxFontEncoding::GfxFontEncoding(char **encoding1, int encSize) {
- int i;
-
- encoding = encoding1;
- freeEnc = gFalse;
- for (i = 0; i < gfxFontEncHashSize; ++i)
- hashTab[i] = -1;
- for (i = 0; i < encSize; ++i) {
- if (encoding[i])
- addChar1(i, encoding[i]);
- }
-}
-
-void GfxFontEncoding::addChar(int code, char *name) {
- int h, i;
-
- // replace character associated with code
- if (encoding[code]) {
- h = hash(encoding[code]);
- for (i = 0; i < gfxFontEncHashSize; ++i) {
- if (hashTab[h] == code) {
- hashTab[h] = -2;
- break;
- }
- if (++h == gfxFontEncHashSize)
- h = 0;
- }
- gfree(encoding[code]);
- }
-
- // associate name with code
- encoding[code] = name;
-
- // insert name in hash table
- addChar1(code, name);
-}
-
-void GfxFontEncoding::addChar1(int code, char *name) {
- int h, i, code2;
-
- // insert name in hash table
- h = hash(name);
- for (i = 0; i < gfxFontEncHashSize; ++i) {
- code2 = hashTab[h];
- if (code2 < 0) {
- hashTab[h] = code;
- break;
- } else if (encoding[code2] && !strcmp(encoding[code2], name)) {
- // keep the highest code for each char -- this is needed because
- // X won't display chars with codes < 32
- if (code > code2)
- hashTab[h] = code;
- break;
- }
- if (++h == gfxFontEncHashSize)
- h = 0;
- }
-}
-
-GfxFontEncoding::~GfxFontEncoding() {
- int i;
-
- if (freeEnc) {
- for (i = 0; i < 256; ++i) {
- if (encoding[i])
- gfree(encoding[i]);
- }
- gfree(encoding);
- }
-}
-
-int GfxFontEncoding::getCharCode(char *name) {
- int h, i, code;
-
- h = hash(name);
- for (i = 0; i < gfxFontEncHashSize; ++i) {
- code = hashTab[h];
- if (code == -1 ||
- (code > 0 && encoding[code] && !strcmp(encoding[code], name)))
- return code;
- if (++h >= gfxFontEncHashSize)
- h = 0;
- }
- return -1;
-}
-
-//------------------------------------------------------------------------
// GfxFont
//------------------------------------------------------------------------
GfxFont::GfxFont(char *tag1, Ref id1, Dict *fontDict) {
BuiltinFont *builtinFont;
- char buf[256];
- Object obj1, obj2, obj3;
- char *p1, *p2;
+ Object obj1, obj2, obj3, obj4;
int i;
// get font tag and ID
@@ -200,6 +90,8 @@ GfxFont::GfxFont(char *tag1, Ref id1, Dict *fontDict) {
fontDict->lookup("Subtype", &obj1);
if (obj1.isName("Type1"))
type = fontType1;
+ else if (obj1.isName("Type1C"))
+ type = fontType1C;
else if (obj1.isName("Type3"))
type = fontType3;
else if (obj1.isName("TrueType"))
@@ -209,75 +101,78 @@ GfxFont::GfxFont(char *tag1, Ref id1, Dict *fontDict) {
obj1.free();
is16 = gFalse;
- // get info from font descriptor
- // for flags: assume Times-Roman (or TimesNewRoman), but
- // explicitly check for Arial and CourierNew -- certain PDF
- // generators apparently don't include FontDescriptors for Arial,
- // TimesNewRoman, and CourierNew
+ // assume Times-Roman (or TimesNewRoman), but explicitly check for
+ // Arial and CourierNew -- certain PDF generators apparently don't
+ // include FontDescriptors for Arial, TimesNewRoman, and CourierNew
flags = fontSerif; // assume Times-Roman by default
if (type == fontTrueType && !name->cmp("Arial"))
flags = 0;
else if (type == fontTrueType && !name->cmp("CourierNew"))
flags = fontFixedWidth;
+
+ // get info from font descriptor
+ embFontName = NULL;
embFontID.num = -1;
embFontID.gen = -1;
- embFontName = NULL;
- extFontFile = NULL;
fontDict->lookup("FontDescriptor", &obj1);
if (obj1.isDict()) {
- // flags
+ // get flags
obj1.dictLookup("Flags", &obj2);
if (obj2.isInt())
flags = obj2.getInt();
obj2.free();
- // embedded Type 1 font file and font name
+ // get name
+ obj1.dictLookup("FontName", &obj2);
+ if (obj2.isName())
+ embFontName = new GString(obj2.getName());
+ obj2.free();
+
+ // look for embedded font file
if (type == fontType1) {
obj1.dictLookupNF("FontFile", &obj2);
+ if (obj2.isRef())
+ embFontID = obj2.getRef();
+ obj2.free();
+ }
+ if (embFontID.num == -1 && type == fontTrueType) {
+ obj1.dictLookupNF("FontFile2", &obj2);
+ if (obj2.isRef())
+ embFontID = obj2.getRef();
+ obj2.free();
+ }
+ if (embFontID.num == -1) {
+ obj1.dictLookupNF("FontFile3", &obj2);
if (obj2.isRef()) {
embFontID = obj2.getRef();
-
- // get font name from the font file itself since font subsets
- // sometimes use the 'AAAAAA+foo' name and sometimes use just 'foo'
obj2.fetch(&obj3);
if (obj3.isStream()) {
- obj3.streamReset();
- for (i = 0; i < 64; ++i) {
- obj3.streamGetLine(buf, sizeof(buf));
- if (!strncmp(buf, "/FontName", 9)) {
- if ((p1 = strchr(buf+9, '/'))) {
- ++p1;
- for (p2 = p1; *p2 && !isspace(*p2); ++p2) ;
- embFontName = new GString(p1, p2 - p1);
- }
- break;
- }
- }
+ obj3.streamGetDict()->lookup("Subtype", &obj4);
+ if (obj4.isName("Type1"))
+ type = fontType1;
+ else if (obj4.isName("Type1C"))
+ type = fontType1C;
+ else if (obj4.isName("Type3"))
+ type = fontType3;
+ else if (obj4.isName("TrueType"))
+ type = fontTrueType;
+ else if (obj4.isName("Type0"))
+ type = fontType0;
+ obj4.free();
}
obj3.free();
- obj2.free();
-
- // couldn't find font name so just use the one in the PDF font
- // descriptor
- if (!embFontName) {
- obj1.dictLookup("FontName", &obj2);
- if (obj2.isName())
- embFontName = new GString(obj2.getName());
- }
}
obj2.free();
-
- // embedded TrueType font file
- } else if (type == fontTrueType) {
- obj1.dictLookupNF("FontFile2", &obj2);
- if (obj2.isRef())
- embFontID = obj2.getRef();
- obj2.free();
}
}
obj1.free();
+ // look for an external font file
+ extFontFile = NULL;
+ if (type == fontType1 && name)
+ findExtFontFile();
+
// get font matrix
fontMat[0] = fontMat[3] = 1;
fontMat[1] = fontMat[2] = fontMat[4] = fontMat[5] = 0;
@@ -291,15 +186,10 @@ GfxFont::GfxFont(char *tag1, Ref id1, Dict *fontDict) {
obj1.free();
// get encoding and character widths
- if (type == fontType0) {
+ if (type == fontType0)
getType0EncAndWidths(fontDict);
- } else if (builtinFont) {
- makeEncoding(fontDict, builtinFont->encoding);
- makeWidths(fontDict, builtinFont->encoding, builtinFont->widths);
- } else {
- makeEncoding(fontDict, NULL);
- makeWidths(fontDict, NULL, NULL);
- }
+ else
+ getEncAndWidths(fontDict, builtinFont);
}
GfxFont::~GfxFont() {
@@ -312,8 +202,10 @@ GfxFont::~GfxFont() {
delete embFontName;
if (extFontFile)
delete extFontFile;
- if (is16)
+ if (is16) {
gfree(widths16.exceps);
+ gfree(widths16.excepsV);
+ }
}
double GfxFont::getWidth(GString *s) {
@@ -348,36 +240,150 @@ double GfxFont::getWidth16(int c) {
return w;
}
-double GfxFont::getWidth16(GString *s) {
- double w;
- int c;
- int i;
+double GfxFont::getHeight16(int c) {
+ double h;
+ int a, b, m;
- w = 0;
- for (i = 0; i < s->getLength(); i += 2) {
- c = (s->getChar(i) << 8) + s->getChar(i+1);
- w += getWidth16(c);
+ h = widths16.defHeight;
+ a = -1;
+ b = widths16.numExcepsV;
+ // invariant: widths16.excepsV[a].last < c < widths16.excepsV[b].first
+ while (b - a > 1) {
+ m = (a + b) / 2;
+ if (widths16.excepsV[m].last < c) {
+ a = m;
+ } else if (c < widths16.excepsV[m].first) {
+ b = m;
+ } else {
+ h = widths16.excepsV[m].height;
+ break;
+ }
}
- return w;
+ return h;
}
-void GfxFont::makeEncoding(Dict *fontDict, GfxFontEncoding *builtinEncoding) {
- GfxFontEncoding *baseEnc;
+double GfxFont::getOriginX16(int c) {
+ double vx;
+ int a, b, m;
+
+ vx = widths16.defWidth / 2;
+ a = -1;
+ b = widths16.numExcepsV;
+ // invariant: widths16.excepsV[a].last < c < widths16.excepsV[b].first
+ while (b - a > 1) {
+ m = (a + b) / 2;
+ if (widths16.excepsV[m].last < c) {
+ a = m;
+ } else if (c < widths16.excepsV[m].first) {
+ b = m;
+ } else {
+ vx = widths16.excepsV[m].vx;
+ break;
+ }
+ }
+ return vx;
+}
+
+double GfxFont::getOriginY16(int c) {
+ double vy;
+ int a, b, m;
+
+ vy = widths16.defVY;
+ a = -1;
+ b = widths16.numExcepsV;
+ // invariant: widths16.excepsV[a].last < c < widths16.excepsV[b].first
+ while (b - a > 1) {
+ m = (a + b) / 2;
+ if (widths16.excepsV[m].last < c) {
+ a = m;
+ } else if (c < widths16.excepsV[m].first) {
+ b = m;
+ } else {
+ vy = widths16.excepsV[m].vy;
+ break;
+ }
+ }
+ return vy;
+}
+
+void GfxFont::getEncAndWidths(Dict *fontDict, BuiltinFont *builtinFont) {
Object obj1, obj2, obj3;
- char *charName;
+ char *buf;
+ int len;
+ FontFile *fontFile;
int code, i;
- // start with empty encoding
- encoding = new GfxFontEncoding();
-
- // get encoding from font dict
+ // Encodings start with a base encoding, which can come from
+ // (in order of priority):
+ // 1. FontDict.Encoding or FontDict.Encoding.BaseEncoding
+ // - MacRoman / WinAnsi / Standard
+ // 2. embedded font file
+ // 3. default:
+ // - builtin --> builtin encoding
+ // - TrueType --> MacRomanEncoding
+ // - others --> StandardEncoding
+ // and then add a list of differences from
+ // FontDict.Encoding.Differences.
+
+ // check FontDict for base encoding
+ encoding = NULL;
fontDict->lookup("Encoding", &obj1);
-
- // encoding specified by dictionary
if (obj1.isDict()) {
obj1.dictLookup("BaseEncoding", &obj2);
- baseEnc = makeEncoding1(obj2, fontDict, builtinEncoding);
+ if (obj2.isName("MacRomanEncoding")) {
+ encoding = macRomanEncoding.copy();
+ } else if (obj2.isName("WinAnsiEncoding")) {
+ encoding = winAnsiEncoding.copy();
+ } else if (obj2.isName("StandardEncoding")) {
+ encoding = standardEncoding.copy();
+ }
obj2.free();
+ } else if (obj1.isName("MacRomanEncoding")) {
+ encoding = macRomanEncoding.copy();
+ } else if (obj1.isName("WinAnsiEncoding")) {
+ encoding = winAnsiEncoding.copy();
+ } else if (obj1.isName("StandardEncoding")) {
+ encoding = standardEncoding.copy();
+ }
+ obj1.free();
+
+ // check embedded or external font file for base encoding
+ if ((type == fontType1 || type == fontType1C) &&
+ (extFontFile || embFontID.num >= 0)) {
+ if (extFontFile)
+ buf = readExtFontFile(&len);
+ else
+ buf = readEmbFontFile(&len);
+ if (buf) {
+ if (type == fontType1)
+ fontFile = new Type1FontFile(buf, len);
+ else
+ fontFile = new Type1CFontFile(buf, len);
+ if (fontFile->getName()) {
+ if (embFontName)
+ delete embFontName;
+ embFontName = new GString(fontFile->getName());
+ }
+ if (!encoding)
+ encoding = fontFile->getEncoding(gTrue);
+ delete fontFile;
+ gfree(buf);
+ }
+ }
+
+ // get default base encoding
+ if (!encoding) {
+ if (builtinFont)
+ encoding = builtinFont->encoding->copy();
+ else if (type == fontTrueType)
+ encoding = macRomanEncoding.copy();
+ else
+ encoding = standardEncoding.copy();
+ }
+
+ // merge differences into encoding
+ fontDict->lookup("Encoding", &obj1);
+ if (obj1.isDict()) {
obj1.dictLookup("Differences", &obj2);
if (obj2.isArray()) {
code = 0;
@@ -397,149 +403,95 @@ void GfxFont::makeEncoding(Dict *fontDict, GfxFontEncoding *builtinEncoding) {
}
}
obj2.free();
-
- // encoding specified by name or null
- } else {
- baseEnc = makeEncoding1(obj1, fontDict, builtinEncoding);
}
-
- // free the font dict encoding
obj1.free();
- // merge base encoding and differences;
- for (code = 0; code < 256; ++code) {
- if (!encoding->getCharName(code)) {
- if ((charName = baseEnc->getCharName(code)))
- encoding->addChar(code, copyString(charName));
- }
- }
+ // get character widths
+ if (builtinFont)
+ makeWidths(fontDict, builtinFont->encoding, builtinFont->widths);
+ else
+ makeWidths(fontDict, NULL, NULL);
}
-GfxFontEncoding *GfxFont::makeEncoding1(Object obj, Dict *fontDict,
- GfxFontEncoding *builtinEncoding) {
- GfxFontEncoding *enc;
- GBool haveEncoding;
- Object obj1, obj2;
+void GfxFont::findExtFontFile() {
char **path;
FILE *f;
- FileStream *str;
-
- // MacRoman, WinAnsi, or Standard encoding
- if (obj.isName("MacRomanEncoding")) {
- enc = &macRomanEncoding;
- } else if (obj.isName("WinAnsiEncoding")) {
- enc = &winAnsiEncoding;
- } else if (obj.isName("StandardEncoding")) {
- enc = &standardEncoding;
-
- // use the built-in font encoding if possible
- } else if (builtinEncoding) {
- enc = builtinEncoding;
-
- // check font type
- } else {
-
- // Type 1 font: try to get encoding from font file
- if (type == fontType1) {
-
- // default to using standard encoding
- enc = &standardEncoding;
-
- // is there an external font file?
- haveEncoding = gFalse;
- if (name) {
- for (path = fontPath; *path; ++path) {
- extFontFile = appendToPath(new GString(*path), name->getCString());
- f = fopen(extFontFile->getCString(), "rb");
- if (!f) {
- extFontFile->append(".pfb");
- f = fopen(extFontFile->getCString(), "rb");
- }
- if (!f) {
- extFontFile->del(extFontFile->getLength() - 4, 4);
- extFontFile->append(".pfa");
- f = fopen(extFontFile->getCString(), "rb");
- }
- if (f) {
- obj1.initNull();
- str = new FileStream(f, 0, -1, &obj1);
- getType1Encoding(str);
- delete str;
- fclose(f);
- haveEncoding = gTrue;
- break;
- }
- delete extFontFile;
- extFontFile = NULL;
- }
- }
- // is there an embedded font file?
- // (this has to be checked after the external font because
- // XOutputDev needs the encoding from the external font)
- if (!haveEncoding && embFontID.num >= 0) {
- obj1.initRef(embFontID.num, embFontID.gen);
- obj1.fetch(&obj2);
- if (obj2.isStream())
- getType1Encoding(obj2.getStream());
- obj2.free();
- obj1.free();
- }
-
- // TrueType font: use Mac encoding
- } else if (type == fontTrueType) {
- enc = &macRomanEncoding;
-
- // not Type 1 or TrueType: just use the standard encoding
- } else {
- enc = &standardEncoding;
+ for (path = fontPath; *path; ++path) {
+ extFontFile = appendToPath(new GString(*path), name->getCString());
+ f = fopen(extFontFile->getCString(), "rb");
+ if (!f) {
+ extFontFile->append(".pfb");
+ f = fopen(extFontFile->getCString(), "rb");
+ }
+ if (!f) {
+ extFontFile->del(extFontFile->getLength() - 4, 4);
+ extFontFile->append(".pfa");
+ f = fopen(extFontFile->getCString(), "rb");
}
+ if (f) {
+ fclose(f);
+ break;
+ }
+ delete extFontFile;
+ extFontFile = NULL;
}
+}
+
+char *GfxFont::readExtFontFile(int *len) {
+ FILE *f;
+ char *buf;
- return enc;
+ if (!(f = fopen(extFontFile->getCString(), "rb"))) {
+ error(-1, "Internal: external font file '%s' vanished", extFontFile);
+ return NULL;
+ }
+ fseek(f, 0, SEEK_END);
+ *len = (int)ftell(f);
+ fseek(f, 0, SEEK_SET);
+ buf = (char *)gmalloc(*len);
+ if ((int)fread(buf, 1, *len, f) != *len)
+ error(-1, "Error reading external font file '%s'", extFontFile);
+ fclose(f);
+ return buf;
}
-void GfxFont::getType1Encoding(Stream *str) {
- char buf[256];
- char *p;
- GBool found;
- int code, i;
+char *GfxFont::readEmbFontFile(int *len) {
+ char *buf;
+ Object obj1, obj2;
+ Stream *str;
+ int c;
+ int size, i;
- // look for encoding in font file
- str->reset();
- found = gFalse;
- for (i = 0; i < 100; ++i) {
- if (!str->getLine(buf, sizeof(buf)))
- break;
- if (!strncmp(buf, "/Encoding StandardEncoding def", 30))
- break;
- if (!strncmp(buf, "/Encoding 256 array", 19)) {
- found = gTrue;
- break;
- }
+ obj1.initRef(embFontID.num, embFontID.gen);
+ obj1.fetch(&obj2);
+ if (!obj2.isStream()) {
+ error(-1, "Embedded font file is not a stream");
+ obj2.free();
+ obj1.free();
+ return NULL;
}
+ str = obj2.getStream();
- // found the encoding, grab it
- if (found) {
- for (i = 0; i < 300; ++i) {
- if (!str->getLine(buf, sizeof(buf)))
- break;
- p = strtok(buf, " \t");
- if (p && !strcmp(p, "dup")) {
- if ((p = strtok(NULL, " \t"))) {
- code = atoi(p);
- if ((p = strtok(NULL, " \t"))) {
- if (p[0] == '/')
- encoding->addChar(code, copyString(p+1));
- }
- }
- }
+ buf = NULL;
+ i = size = 0;
+ str->reset();
+ while ((c = str->getChar()) != EOF) {
+ if (i == size) {
+ size += 4096;
+ buf = (char *)grealloc(buf, size);
}
- //~ look for getinterval/putinterval junk
+ buf[i++] = c;
}
+ *len = i;
+
+ obj2.free();
+ obj1.free();
+
+ return buf;
}
-void GfxFont::makeWidths(Dict *fontDict, GfxFontEncoding *builtinEncoding,
+void GfxFont::makeWidths(Dict *fontDict, FontEncoding *builtinEncoding,
Gushort *builtinWidths) {
Object obj1, obj2;
int firstChar, lastChar;
@@ -585,7 +537,7 @@ void GfxFont::makeWidths(Dict *fontDict, GfxFontEncoding *builtinEncoding,
} else {
// couldn't find widths -- use defaults
-#if 0
+#if 0 //~
//~ certain PDF generators apparently don't include widths
//~ for Arial and TimesNewRoman -- and this error message
//~ is a nuisance
@@ -614,10 +566,14 @@ void GfxFont::makeWidths(Dict *fontDict, GfxFontEncoding *builtinEncoding,
}
void GfxFont::getType0EncAndWidths(Dict *fontDict) {
- Object obj1, obj2, obj3, obj4, obj5, obj6;
+ Object obj1, obj2, obj3, obj4, obj5, obj6, obj7, obj8;
int excepsSize;
int i, j, k, n;
+ widths16.exceps = NULL;
+ widths16.excepsV = NULL;
+
+ // get the CIDFont
fontDict->lookup("DescendantFonts", &obj1);
if (!obj1.isArray() || obj1.arrayGetLength() != 1) {
error(-1, "Bad DescendantFonts entry for Type 0 font");
@@ -629,6 +585,7 @@ void GfxFont::getType0EncAndWidths(Dict *fontDict) {
goto err2;
}
+ // get font info
obj2.dictLookup("CIDSystemInfo", &obj3);
if (!obj3.isDict()) {
error(-1, "Bad CIDSystemInfo in Type 0 font descendant");
@@ -659,6 +616,7 @@ void GfxFont::getType0EncAndWidths(Dict *fontDict) {
obj4.free();
obj3.free();
+ // get default char width
obj2.dictLookup("DW", &obj3);
if (obj3.isInt())
widths16.defWidth = obj3.getInt() * 0.001;
@@ -666,6 +624,25 @@ void GfxFont::getType0EncAndWidths(Dict *fontDict) {
widths16.defWidth = 1.0;
obj3.free();
+ // get default char metrics for vertical font
+ obj2.dictLookup("DW2", &obj3);
+ widths16.defVY = 0.880;
+ widths16.defHeight = -1;
+ if (obj3.isArray() && obj3.arrayGetLength() == 2) {
+ obj3.arrayGet(0, &obj4);
+ if (obj4.isInt()) {
+ widths16.defVY = obj4.getInt() * 0.001;
+ }
+ obj4.free();
+ obj3.arrayGet(1, &obj4);
+ if (obj4.isInt()) {
+ widths16.defHeight = obj4.getInt() * 0.001;
+ }
+ obj4.free();
+ }
+ obj3.free();
+
+ // get char width exceptions
widths16.exceps = NULL;
widths16.numExceps = 0;
obj2.dictLookup("W", &obj3);
@@ -734,9 +711,93 @@ void GfxFont::getType0EncAndWidths(Dict *fontDict) {
}
obj3.free();
+ // get char metric exceptions for vertical font
+ widths16.excepsV = NULL;
+ widths16.numExcepsV = 0;
+ obj2.dictLookup("W2", &obj3);
+ if (obj3.isArray()) {
+ excepsSize = 0;
+ k = 0;
+ i = 0;
+ while (i+1 < obj3.arrayGetLength()) {
+ obj3.arrayGet(i, &obj4);
+ obj3.arrayGet(i+1, &obj5);
+ if (obj4.isInt() && obj5.isInt()) {
+ obj3.arrayGet(i+2, &obj6);
+ obj3.arrayGet(i+3, &obj7);
+ obj3.arrayGet(i+4, &obj8);
+ if (!obj6.isNum() || !obj7.isNum() || !obj8.isNum()) {
+ error(-1, "Bad widths (W2) array in Type 0 font");
+ obj8.free();
+ obj7.free();
+ obj6.free();
+ obj5.free();
+ obj4.free();
+ break;
+ }
+ if (k == excepsSize) {
+ excepsSize += 16;
+ widths16.excepsV = (GfxFontWidthExcepV *)
+ grealloc(widths16.excepsV,
+ excepsSize * sizeof(GfxFontWidthExcepV));
+ }
+ widths16.excepsV[k].first = obj4.getInt();
+ widths16.excepsV[k].last = obj5.getInt();
+ widths16.excepsV[k].height = obj6.getNum() * 0.001;
+ widths16.excepsV[k].vx = obj7.getNum() * 0.001;
+ widths16.excepsV[k].vy = obj8.getNum() * 0.001;
+ obj8.free();
+ obj7.free();
+ obj6.free();
+ ++k;
+ i += 5;
+ } else if (obj4.isInt() && obj5.isArray()) {
+ if (k + obj5.arrayGetLength() / 3 >= excepsSize) {
+ excepsSize = (k + obj5.arrayGetLength() / 3 + 15) & ~15;
+ widths16.excepsV = (GfxFontWidthExcepV *)
+ grealloc(widths16.excepsV,
+ excepsSize * sizeof(GfxFontWidthExcepV));
+ }
+ n = obj4.getInt();
+ for (j = 0; j < obj5.arrayGetLength(); j += 3) {
+ obj5.arrayGet(j, &obj6);
+ obj5.arrayGet(j+1, &obj7);
+ obj5.arrayGet(j+1, &obj8);
+ if (!obj6.isNum() || !obj7.isNum() || !obj8.isNum()) {
+ error(-1, "Bad widths (W2) array in Type 0 font");
+ obj6.free();
+ break;
+ }
+ widths16.excepsV[k].first = widths16.exceps[k].last = n++;
+ widths16.excepsV[k].height = obj6.getNum() * 0.001;
+ widths16.excepsV[k].vx = obj7.getNum() * 0.001;
+ widths16.excepsV[k].vy = obj8.getNum() * 0.001;
+ obj8.free();
+ obj7.free();
+ obj6.free();
+ ++k;
+ }
+ i += 2;
+ } else {
+ error(-1, "Bad widths array in Type 0 font");
+ obj5.free();
+ obj4.free();
+ break;
+ }
+ obj5.free();
+ obj4.free();
+ }
+ widths16.numExcepsV = k;
+ if (k > 0) {
+ qsort(widths16.excepsV, k, sizeof(GfxFontWidthExcepV), &cmpWidthExcepV);
+ }
+ }
+ obj3.free();
+
obj2.free();
obj1.free();
+ // get encoding (CMap)
fontDict->lookup("Encoding", &obj1);
if (!obj1.isName()) {
error(-1, "Bad encoding for Type 0 font");
@@ -769,7 +830,8 @@ void GfxFont::getType0EncAndWidths(Dict *fontDict) {
obj2.free();
err1:
obj1.free();
- makeEncoding(fontDict, NULL);
+ //~ fix this --> add 16-bit font support to FontFile
+ encoding = new FontEncoding();
makeWidths(fontDict, NULL, NULL);
}
@@ -777,6 +839,10 @@ static int CDECL cmpWidthExcep(const void *w1, const void *w2) {
return ((GfxFontWidthExcep *)w1)->first - ((GfxFontWidthExcep *)w2)->first;
}
+static int CDECL cmpWidthExcepV(const void *w1, const void *w2) {
+ return ((GfxFontWidthExcepV *)w1)->first - ((GfxFontWidthExcepV *)w2)->first;
+}
+
//------------------------------------------------------------------------
// GfxFontDict
//------------------------------------------------------------------------
diff --git a/pdf/xpdf/GfxFont.h b/pdf/xpdf/GfxFont.h
index 0e894d9..30bcf1a 100644
--- a/pdf/xpdf/GfxFont.h
+++ b/pdf/xpdf/GfxFont.h
@@ -16,46 +16,10 @@
#include "gtypes.h"
#include "GString.h"
#include "Object.h"
+#include "FontEncoding.h"
class Dict;
-
-//------------------------------------------------------------------------
-// GfxFontEncoding
-//------------------------------------------------------------------------
-
-#define gfxFontEncHashSize 419
-
-class GfxFontEncoding {
-public:
-
- // Construct an empty encoding.
- GfxFontEncoding();
-
- // Construct an encoding from an array of char names.
- GfxFontEncoding(char **encoding1, int encSize);
-
- // Destructor.
- ~GfxFontEncoding();
-
- // Add a char to the encoding.
- void addChar(int code, char *name);
-
- // Return the character name associated with <code>.
- char *getCharName(int code) { return encoding[code]; }
-
- // Return the code associated with <name>.
- int getCharCode(char *name);
-
-private:
-
- int hash(char *name);
- void addChar1(int code, char *name);
-
- char **encoding; // code --> name mapping
- GBool freeEnc; // should we free the encoding array?
- short // name --> code hash table
- hashTab[gfxFontEncHashSize];
-};
+struct BuiltinFont;
//------------------------------------------------------------------------
// GfxFontCharSet16
@@ -70,6 +34,7 @@ enum GfxFontCharSet16 {
//------------------------------------------------------------------------
struct GfxFontEncoding16 {
+ int wMode; // writing mode (0=horizontal, 1=vertical)
Guchar codeLen[256]; // length of codes, in bytes, indexed by
// first byte of code
Gushort map1[256]; // one-byte code mapping:
@@ -86,15 +51,26 @@ struct GfxFontEncoding16 {
//------------------------------------------------------------------------
struct GfxFontWidthExcep {
- int first; // chars <first>..<last> have
- int last; // width <width>
- double width;
+ int first; // this record applies to
+ int last; // chars <first>..<last>
+ double width; // char width
+};
+
+struct GfxFontWidthExcepV {
+ int first; // this record applies to
+ int last; // chars <first>..<last>
+ double height; // char height
+ double vx, vy; // origin position
};
struct GfxFontWidths16 {
double defWidth; // default char width
+ double defHeight; // default char height
+ double defVY; // default origin position
GfxFontWidthExcep *exceps; // exceptions
int numExceps; // number of valid entries in exceps
+ GfxFontWidthExcepV *excepsV; // exceptions for vertical font
+ int numExcepsV; // number of valid entries in excepsV
};
//------------------------------------------------------------------------
@@ -110,6 +86,7 @@ struct GfxFontWidths16 {
enum GfxFontType {
fontUnknownType,
fontType1,
+ fontType1C,
fontType3,
fontTrueType,
fontType0
@@ -167,8 +144,15 @@ public:
// Get width of a character or string.
double getWidth(Guchar c) { return widths[c]; }
double getWidth(GString *s);
+
+ // Get character metrics for 16-bit font.
double getWidth16(int c);
- double getWidth16(GString *s);
+ double getHeight16(int c);
+ double getOriginX16(int c);
+ double getOriginY16(int c);
+
+ // Return the encoding.
+ FontEncoding *getEncoding() { return encoding; }
// Return the character name associated with <code>.
char *getCharName(int code) { return encoding->getCharName(code); }
@@ -180,16 +164,21 @@ public:
GfxFontCharSet16 getCharSet16() { return enc16.charSet; }
GfxFontEncoding16 *getEncoding16() { return enc16.enc; }
+ // Get the writing mode (0=horizontal, 1=vertical).
+ int getWMode16() { return enc16.enc->wMode; }
+
// Return the font matrix.
double *getFontMatrix() { return fontMat; }
+ // Read an external or embedded font file into a buffer.
+ char *readExtFontFile(int *len);
+ char *readEmbFontFile(int *len);
+
private:
- void makeEncoding(Dict *fontDict, GfxFontEncoding *builtinEncoding);
- GfxFontEncoding *makeEncoding1(Object obj, Dict *fontDesc,
- GfxFontEncoding *builtinEncoding);
- void getType1Encoding(Stream *str);
- void makeWidths(Dict *fontDict, GfxFontEncoding *builtinEncoding,
+ void getEncAndWidths(Dict *fontDict, BuiltinFont *builtinFont);
+ void findExtFontFile();
+ void makeWidths(Dict *fontDict, FontEncoding *builtinEncoding,
Gushort *builtinWidths);
void getType0EncAndWidths(Dict *fontDict);
@@ -204,7 +193,7 @@ private:
GString *extFontFile; // external font file name
double fontMat[6]; // font matrix
union {
- GfxFontEncoding *encoding; // 8-bit font encoding
+ FontEncoding *encoding; // 8-bit font encoding
struct {
GfxFontCharSet16 charSet; // 16-bit character set
GfxFontEncoding16 *enc; // 16-bit encoding (CMap)
diff --git a/pdf/xpdf/GfxState.cc b/pdf/xpdf/GfxState.cc
index bf0e4de..c1b6090 100644
--- a/pdf/xpdf/GfxState.cc
+++ b/pdf/xpdf/GfxState.cc
@@ -45,12 +45,12 @@ GfxColorSpace::GfxColorSpace(Object *colorSpace) {
ok = gTrue;
lookup = NULL;
- // check for Separation colorspace
+ // check for Separation, DeviceN, and Pattern colorspaces
colorSpace->copy(&csObj);
sepFunc = NULL;
if (colorSpace->isArray()) {
colorSpace->arrayGet(0, &obj);
- if (obj.isName("Separation")) {
+ if (obj.isName("Separation") || obj.isName("DeviceN")) {
csObj.free();
colorSpace->arrayGet(2, &csObj);
sepFunc = new Function(colorSpace->arrayGet(3, &obj2));
@@ -59,6 +59,9 @@ GfxColorSpace::GfxColorSpace(Object *colorSpace) {
delete sepFunc;
sepFunc = NULL;
}
+ } else if (obj.isName("Pattern")) {
+ csObj.free();
+ colorSpace->arrayGet(1, &csObj);
}
obj.free();
}
@@ -80,8 +83,9 @@ GfxColorSpace::GfxColorSpace(Object *colorSpace) {
} else {
goto err1;
}
- if (!ok)
- return;
+ if (!ok) {
+ goto err1;
+ }
// get lookup table for indexed colorspace
if (indexed) {
@@ -528,6 +532,11 @@ GfxImageColorMap::GfxImageColorMap(int bits1, Object *decode,
colorSpace = colorSpace1;
mode = colorSpace->getMode();
+ // work around a bug in Distiller (?)
+ if (colorSpace->isIndexed() && maxPixel > colorSpace->getIndexHigh()) {
+ maxPixel = colorSpace->getIndexHigh();
+ }
+
// get decode map
if (decode->isNull()) {
if (colorSpace->isIndexed()) {
@@ -930,6 +939,14 @@ void GfxState::textShift(double tx) {
curY += dy;
}
+void GfxState::textShift(double tx, double ty) {
+ double dx, dy;
+
+ textTransformDelta(tx, ty, &dx, &dy);
+ curX += dx;
+ curY += dy;
+}
+
GfxState *GfxState::save() {
GfxState *newState;
diff --git a/pdf/xpdf/GfxState.h b/pdf/xpdf/GfxState.h
index 21bbec8..f93ef89 100644
--- a/pdf/xpdf/GfxState.h
+++ b/pdf/xpdf/GfxState.h
@@ -424,6 +424,7 @@ public:
void textMoveTo(double tx, double ty)
{ lineX = tx; lineY = ty; textTransform(tx, ty, &curX, &curY); }
void textShift(double tx);
+ void textShift(double tx, double ty);
// Push/pop GfxState on/off stack.
GfxState *save();
diff --git a/pdf/xpdf/ImageOutputDev.cc b/pdf/xpdf/ImageOutputDev.cc
index 00782fb..93d1c31 100644
--- a/pdf/xpdf/ImageOutputDev.cc
+++ b/pdf/xpdf/ImageOutputDev.cc
@@ -90,6 +90,7 @@ void ImageOutputDev::drawImage(GfxState *state, Stream *str, int width,
int height, GfxImageColorMap *colorMap,
GBool inlineImg) {
FILE *f;
+ ImageStream *imgStr;
Guchar pixBuf[4];
GfxColor color;
int x, y;
@@ -131,20 +132,23 @@ void ImageOutputDev::drawImage(GfxState *state, Stream *str, int width,
fprintf(f, "255\n");
// initialize stream
- str->resetImage(width, colorMap->getNumPixelComps(), colorMap->getBits());
+ imgStr = new ImageStream(str, width, colorMap->getNumPixelComps(),
+ colorMap->getBits());
+ imgStr->reset();
// for each line...
for (y = 0; y < height; ++y) {
// write the line
for (x = 0; x < width; ++x) {
- str->getImagePixel(pixBuf);
+ imgStr->getPixel(pixBuf);
colorMap->getColor(pixBuf, &color);
fputc((int)(color.getR() * 255 + 0.5), f);
fputc((int)(color.getG() * 255 + 0.5), f);
fputc((int)(color.getB() * 255 + 0.5), f);
}
}
+ delete imgStr;
fclose(f);
}
diff --git a/pdf/xpdf/Link.cc b/pdf/xpdf/Link.cc
index 02b355c..538618b 100644
--- a/pdf/xpdf/Link.cc
+++ b/pdf/xpdf/Link.cc
@@ -323,12 +323,39 @@ LinkLaunch::~LinkLaunch() {
// LinkURI
//------------------------------------------------------------------------
-LinkURI::LinkURI(Object *uriObj) {
+LinkURI::LinkURI(Object *uriObj, GString *baseURI) {
+ GString *uri2;
+ int n;
+ char c;
+
uri = NULL;
- if (uriObj->isString())
- uri = uriObj->getString()->copy();
- else
+ if (uriObj->isString()) {
+ uri2 = uriObj->getString()->copy();
+ if (baseURI) {
+ n = strcspn(uri2->getCString(), "/:");
+ if (n == uri2->getLength() || uri2->getChar(n) == '/') {
+ uri = baseURI->copy();
+ c = uri->getChar(uri->getLength() - 1);
+ if (c == '/' || c == '?') {
+ if (uri2->getChar(0) == '/') {
+ uri2->del(0);
+ }
+ } else {
+ if (uri2->getChar(0) != '/') {
+ uri->append('/');
+ }
+ }
+ uri->append(uri2);
+ delete uri2;
+ } else {
+ uri = uri2;
+ }
+ } else {
+ uri = uri2;
+ }
+ } else {
error(-1, "Illegal URI-type link");
+ }
}
LinkURI::~LinkURI() {
@@ -352,7 +379,7 @@ LinkUnknown::~LinkUnknown() {
// Link
//------------------------------------------------------------------------
-Link::Link(Dict *dict) {
+Link::Link(Dict *dict, GString *baseURI) {
Object obj1, obj2, obj3, obj4;
double t;
@@ -442,7 +469,7 @@ Link::Link(Dict *dict) {
// URI action
} else if (obj2.isName("URI")) {
obj1.dictLookup("URI", &obj3);
- action = new LinkURI(&obj3);
+ action = new LinkURI(&obj3, baseURI);
obj3.free();
// unknown action
@@ -485,7 +512,7 @@ Link::~Link() {
// Links
//------------------------------------------------------------------------
-Links::Links(Object *annots) {
+Links::Links(Object *annots, GString *baseURI) {
Link *link;
Object obj1, obj2;
int size;
@@ -499,7 +526,7 @@ Links::Links(Object *annots) {
for (i = 0; i < annots->arrayGetLength(); ++i) {
if (annots->arrayGet(i, &obj1)->isDict()) {
if (obj1.dictLookup("Subtype", &obj2)->isName("Link")) {
- link = new Link(obj1.getDict());
+ link = new Link(obj1.getDict(), baseURI);
if (link->isOk()) {
if (numLinks >= size) {
size += 16;
@@ -571,6 +598,7 @@ static GString *getFileSpecName(Object *fileSpecObj) {
name = obj1.getString()->copy();
else
error(-1, "Illegal file spec in link");
+ obj1.free();
// error
} else {
diff --git a/pdf/xpdf/Link.h b/pdf/xpdf/Link.h
index 62a4c85..71ad0c5 100644
--- a/pdf/xpdf/Link.h
+++ b/pdf/xpdf/Link.h
@@ -200,8 +200,8 @@ private:
class LinkURI: public LinkAction {
public:
- // Build a LinkURI given the URI (string).
- LinkURI(Object *uriObj);
+ // Build a LinkURI given the URI (string) and base URI.
+ LinkURI(Object *uriObj, GString *baseURI);
// Destructor.
virtual ~LinkURI();
@@ -251,7 +251,7 @@ class Link {
public:
// Construct a link, given its dictionary.
- Link(Dict *dict);
+ Link(Dict *dict, GString *baseURI);
// Destructor.
~Link();
@@ -288,7 +288,7 @@ class Links {
public:
// Extract links from array of annotations.
- Links(Object *annots);
+ Links(Object *annots, GString *baseURI);
// Destructor.
~Links();
diff --git a/pdf/xpdf/Makefile.am b/pdf/xpdf/Makefile.am
index 2fe723c..6b5935b 100644
--- a/pdf/xpdf/Makefile.am
+++ b/pdf/xpdf/Makefile.am
@@ -18,6 +18,11 @@ common_sources = \
Catalog.cc \
Dict.cc \
Error.cc \
+ FontEncoding.cc \
+ FontEncoding.h \
+ FontFile.cc \
+ FontFile.h \
+ FontInfo.h \
Gfx.cc \
GfxFont.cc \
GfxState.cc \
diff --git a/pdf/xpdf/Makefile.in b/pdf/xpdf/Makefile.in
index dc96dad..74f61c2 100644
--- a/pdf/xpdf/Makefile.in
+++ b/pdf/xpdf/Makefile.in
@@ -104,6 +104,10 @@ YACC = @YACC@
ZVT_LIBS = @ZVT_LIBS@
cflags_set = @cflags_set@
cxxflags_set = @cxxflags_set@
+t1_CFLAGS = @t1_CFLAGS@
+t1_LIBS = @t1_LIBS@
+t1x_CFLAGS = @t1x_CFLAGS@
+t1x_LIBS = @t1x_LIBS@
INCLUDES = -I$(top_srcdir)/goo -I$(top_srcdir)/ltk -DGPDF_GLADE_DIR=\""$(gladedir)"\" $(EXTRA_GNOME_CFLAGS)
@@ -112,7 +116,7 @@ INCLUDES = -I$(top_srcdir)/goo -I$(top_srcdir)/ltk -DGPDF_GLADE_DIR=\""$(gla
bin_PROGRAMS = pdftops pdftotext pdfinfo pdftopbm pdfimages $(gui)
-common_sources = Array.cc Catalog.cc Dict.cc Error.cc Gfx.cc GfxFont.cc GfxState.cc Lexer.cc Link.cc Object.cc OutputDev.cc Page.cc Params.cc Parser.cc PDFDoc.cc Stream.cc TextOutputDev.cc XRef.cc
+common_sources = Array.cc Catalog.cc Dict.cc Error.cc FontEncoding.cc FontEncoding.h FontFile.cc FontFile.h FontInfo.h Gfx.cc GfxFont.cc GfxState.cc Lexer.cc Link.cc Object.cc OutputDev.cc Page.cc Params.cc Parser.cc PDFDoc.cc Stream.cc TextOutputDev.cc XRef.cc
gpdf_CFLAGS =
@@ -176,41 +180,46 @@ X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
-pdftops_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o PSOutputDev.o pdftops.o
+pdftops_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o PSOutputDev.o pdftops.o
pdftops_DEPENDENCIES = ../goo/libgoo.a
pdftops_LDFLAGS =
-pdftotext_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o pdftotext.o
+pdftotext_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o pdftotext.o
pdftotext_DEPENDENCIES = ../goo/libgoo.a
pdftotext_LDFLAGS =
-pdfinfo_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o pdfinfo.o
+pdfinfo_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o pdfinfo.o
pdfinfo_DEPENDENCIES = ../goo/libgoo.a
pdfinfo_LDFLAGS =
-pdftopbm_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o PBMOutputDev.o XOutputDev.o \
-pdftopbm.o
+pdftopbm_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o PBMOutputDev.o XOutputDev.o pdftopbm.o
pdftopbm_DEPENDENCIES = ../goo/libgoo.a
pdftopbm_LDFLAGS =
-pdfimages_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o ImageOutputDev.o pdfimages.o
+pdfimages_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o ImageOutputDev.o pdfimages.o
pdfimages_DEPENDENCIES = ../goo/libgoo.a
pdfimages_LDFLAGS =
-gpdf_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o GOutputDev.o gpdf.o
+gpdf_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o GOutputDev.o gpdf.o
gpdf_DEPENDENCIES = ../goo/libgoo.a
gpdf_LDFLAGS =
-xpdf_OBJECTS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
-GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o Parser.o \
-PDFDoc.o Stream.o TextOutputDev.o XRef.o XOutputDev.o LTKOutputDev.o \
-PSOutputDev.o xpdf.o
+xpdf_OBJECTS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o Object.o \
+OutputDev.o Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
+XRef.o XOutputDev.o LTKOutputDev.o PSOutputDev.o xpdf.o
xpdf_DEPENDENCIES = ../goo/libgoo.a ../ltk/libltk.a
xpdf_LDFLAGS =
CXXFLAGS = @CXXFLAGS@
@@ -218,6 +227,11 @@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(glade_DATA)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
@@ -228,9 +242,10 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/Array.P .deps/Catalog.P .deps/Dict.P .deps/Error.P \
-.deps/GOutputDev.P .deps/Gfx.P .deps/GfxFont.P .deps/GfxState.P \
-.deps/ImageOutputDev.P .deps/LTKOutputDev.P .deps/Lexer.P .deps/Link.P \
-.deps/Object.P .deps/OutputDev.P .deps/PBMOutputDev.P .deps/PDFDoc.P \
+.deps/FontEncoding.P .deps/FontFile.P .deps/GOutputDev.P .deps/Gfx.P \
+.deps/GfxFont.P .deps/GfxState.P .deps/ImageOutputDev.P \
+.deps/LTKOutputDev.P .deps/Lexer.P .deps/Link.P .deps/Object.P \
+.deps/OutputDev.P .deps/PBMOutputDev.P .deps/PDFDoc.P \
.deps/PSOutputDev.P .deps/Page.P .deps/Params.P .deps/Parser.P \
.deps/Stream.P .deps/TextOutputDev.P .deps/XOutputDev.P .deps/XRef.P \
.deps/gpdf.P .deps/pdfimages.P .deps/pdfinfo.P .deps/pdftopbm.P \
diff --git a/pdf/xpdf/Object.cc b/pdf/xpdf/Object.cc
index 777f526..f9c1067 100644
--- a/pdf/xpdf/Object.cc
+++ b/pdf/xpdf/Object.cc
@@ -106,16 +106,19 @@ void Object::free() {
gfree(name);
break;
case objArray:
- if (!array->decRef())
+ if (!array->decRef()) {
delete array;
+ }
break;
case objDict:
- if (!dict->decRef())
+ if (!dict->decRef()) {
delete dict;
+ }
break;
case objStream:
- if (!stream->decRef())
+ if (!stream->decRef()) {
delete stream;
+ }
break;
case objCmd:
gfree(cmd);
diff --git a/pdf/xpdf/PDFDoc.cc b/pdf/xpdf/PDFDoc.cc
index 886b6a0..1537c6a 100644
--- a/pdf/xpdf/PDFDoc.cc
+++ b/pdf/xpdf/PDFDoc.cc
@@ -163,6 +163,7 @@ GBool PDFDoc::saveAs(GString *name) {
void PDFDoc::getLinks(int page) {
Object obj;
- links = new Links(catalog->getPage(page)->getAnnots(&obj));
+ links = new Links(catalog->getPage(page)->getAnnots(&obj),
+ catalog->getBaseURI());
obj.free();
}
diff --git a/pdf/xpdf/PSOutputDev.cc b/pdf/xpdf/PSOutputDev.cc
index bc7fb3c..edff5cd 100644
--- a/pdf/xpdf/PSOutputDev.cc
+++ b/pdf/xpdf/PSOutputDev.cc
@@ -21,6 +21,7 @@
#include "Error.h"
#include "GfxState.h"
#include "GfxFont.h"
+#include "FontFile.h"
#include "Catalog.h"
#include "Page.h"
#include "Stream.h"
@@ -45,6 +46,18 @@ static char *prolog[] = {
"% PDF special state",
"/pdfDictSize 14 def",
"/pdfSetup {",
+ " 2 array astore",
+ " /setpagedevice where {",
+ " pop 3 dict dup begin",
+ " exch /PageSize exch def",
+ " /ImagingBBox null def",
+ " /Policies 1 dict dup begin /PageSize 3 def end def",
+ " end setpagedevice",
+ " } {",
+ " pop",
+ " } ifelse",
+ "} def",
+ "/pdfStartPage {",
" pdfDictSize dict begin",
" /pdfFill [0] def",
" /pdfStroke [0] def",
@@ -58,18 +71,6 @@ static char *prolog[] = {
" /pdfWordSpacing 0 def",
" /pdfHorizScaling 1 def",
"} def",
- "/pdfStartPage {",
- " 2 array astore",
- " pdfSetup",
- " /setpagedevice where {",
- " pop 2 dict dup begin",
- " exch /PageSize exch def",
- " /ImagingBBox null def",
- " end setpagedevice",
- " } {",
- " pop",
- " } ifelse",
- "} def",
"/pdfEndPage { end } def",
"/sCol { pdfLastStroke not {",
" pdfStroke aload length",
@@ -116,7 +117,7 @@ static char *prolog[] = {
"/l { lineto } def",
"/c { curveto } def",
"/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto",
- " neg 0 rlineto closepath } def"
+ " neg 0 rlineto closepath } def",
"% path painting operators",
"/S { sCol stroke } def",
"/f { fCol fill } def",
@@ -316,10 +317,12 @@ PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog,
if ((resDict = catalog->getPage(pg)->getResourceDict()))
setupFonts(resDict);
}
- if (doForm)
+ if (doForm) {
writePS("end\n");
- else
+ } else {
+ writePS("%d %d pdfSetup\n", paperWidth, paperHeight);
writePS("%%%%EndSetup\n");
+ }
// write form header
if (doForm) {
@@ -421,21 +424,28 @@ void PSOutputDev::setupFont(GfxFont *font) {
}
fontIDs[fontIDLen++] = font->getID();
- // check for embedded font
+ // check for embedded Type 1 font
if (embedType1 && font->getType() == fontType1 &&
font->getEmbeddedFontID(&fontFileID)) {
- setupEmbeddedFont(&fontFileID);
+ setupEmbeddedType1Font(&fontFileID);
psName = font->getEmbeddedFontName();
scale = 1;
- // check for external font file
+ // check for external Type 1 font file
} else if (embedType1 && font->getType() == fontType1 &&
font->getExtFontFile()) {
- setupEmbeddedFont(font->getExtFontFile());
+ setupEmbeddedType1Font(font->getExtFontFile());
// this assumes that the PS font name matches the PDF font name
psName = font->getName()->getCString();
scale = 1;
+ // check for embedded Type 1C font
+ } else if (embedType1 && font->getType() == fontType1C &&
+ font->getEmbeddedFontID(&fontFileID)) {
+ setupEmbeddedType1CFont(font, &fontFileID);
+ psName = font->getEmbeddedFontName();
+ scale = 1;
+
// do font substitution
} else {
name = font->getName();
@@ -481,7 +491,7 @@ void PSOutputDev::setupFont(GfxFont *font) {
writePS("pdfMakeFont\n");
}
-void PSOutputDev::setupEmbeddedFont(Ref *id) {
+void PSOutputDev::setupEmbeddedType1Font(Ref *id) {
static char hexChar[17] = "0123456789abcdef";
Object refObj, strObj, obj1, obj2;
Dict *dict;
@@ -589,7 +599,7 @@ void PSOutputDev::setupEmbeddedFont(Ref *id) {
//~ This doesn't handle .pfb files or binary eexec data (which only
//~ happens in pfb files?).
-void PSOutputDev::setupEmbeddedFont(char *fileName) {
+void PSOutputDev::setupEmbeddedType1Font(char *fileName) {
FILE *fontFile;
int c;
int i;
@@ -618,6 +628,34 @@ void PSOutputDev::setupEmbeddedFont(char *fileName) {
fclose(fontFile);
}
+void PSOutputDev::setupEmbeddedType1CFont(GfxFont *font, Ref *id) {
+ char *fontBuf;
+ int fontLen;
+ Type1CFontConverter *cvt;
+ int i;
+
+ // check if font is already embedded
+ for (i = 0; i < fontFileIDLen; ++i) {
+ if (fontFileIDs[i].num == id->num &&
+ fontFileIDs[i].gen == id->gen)
+ return;
+ }
+
+ // add entry to fontFileIDs list
+ if (fontFileIDLen >= fontFileIDSize) {
+ fontFileIDSize += 64;
+ fontFileIDs = (Ref *)grealloc(fontFileIDs, fontFileIDSize * sizeof(Ref));
+ }
+ fontFileIDs[fontFileIDLen++] = *id;
+
+ // convert it to a Type 1 font
+ fontBuf = font->readEmbFontFile(&fontLen);
+ cvt = new Type1CFontConverter(fontBuf, fontLen, f);
+ cvt->convert();
+ delete cvt;
+ gfree(fontBuf);
+}
+
void PSOutputDev::startPage(int pageNum, GfxState *state) {
int x1, y1, x2, y2, width, height, t;
double xScale, yScale;
@@ -642,7 +680,7 @@ void PSOutputDev::startPage(int pageNum, GfxState *state) {
height = y2 - y1;
if (width > height) {
writePS("%%%%PageOrientation: Landscape\n");
- writePS("%d %d pdfStartPage\n", paperWidth, paperHeight);
+ writePS("pdfStartPage\n");
writePS("90 rotate\n");
writePS("%d %d translate\n", -x1, -(y1 + paperWidth));
t = width;
@@ -650,7 +688,7 @@ void PSOutputDev::startPage(int pageNum, GfxState *state) {
height = t;
} else {
writePS("%%%%PageOrientation: Portrait\n");
- writePS("%d %d pdfStartPage\n", paperWidth, paperHeight);
+ writePS("pdfStartPage\n");
if (x1 != 0 || y1 != 0)
writePS("%d %d translate\n", -x1, -y1);
}
@@ -911,6 +949,7 @@ void PSOutputDev::drawImage(GfxState *state, Stream *str, int width,
void PSOutputDev::doImageL1(GfxImageColorMap *colorMap,
GBool invert, GBool inlineImg,
Stream *str, int width, int height, int len) {
+ ImageStream *imgStr;
Guchar pixBuf[4];
GfxColor color;
int x, y, i;
@@ -930,7 +969,9 @@ void PSOutputDev::doImageL1(GfxImageColorMap *colorMap,
if (colorMap) {
// set up to process the data stream
- str->resetImage(width, colorMap->getNumPixelComps(), colorMap->getBits());
+ imgStr = new ImageStream(str, width, colorMap->getNumPixelComps(),
+ colorMap->getBits());
+ imgStr->reset();
// process the data stream
i = 0;
@@ -938,7 +979,7 @@ void PSOutputDev::doImageL1(GfxImageColorMap *colorMap,
// write the line
for (x = 0; x < width; ++x) {
- str->getImagePixel(pixBuf);
+ imgStr->getPixel(pixBuf);
colorMap->getColor(pixBuf, &color);
fprintf(f, "%02x", (int)(color.getGray() * 255 + 0.5));
if (++i == 32) {
@@ -949,6 +990,7 @@ void PSOutputDev::doImageL1(GfxImageColorMap *colorMap,
}
if (i != 0)
fputc('\n', f);
+ delete imgStr;
// imagemask
} else {
diff --git a/pdf/xpdf/PSOutputDev.h b/pdf/xpdf/PSOutputDev.h
index aa991fa..603cc08 100644
--- a/pdf/xpdf/PSOutputDev.h
+++ b/pdf/xpdf/PSOutputDev.h
@@ -124,8 +124,9 @@ private:
void setupFonts(Dict *resDict);
void setupFont(GfxFont *font);
- void setupEmbeddedFont(Ref *id);
- void setupEmbeddedFont(char *fileName);
+ void setupEmbeddedType1Font(Ref *id);
+ void setupEmbeddedType1Font(char *fileName);
+ void setupEmbeddedType1CFont(GfxFont *font, Ref *id);
void doPath(GfxPath *path);
void doImageL1(GfxImageColorMap *colorMap,
GBool invert, GBool inlineImg,
diff --git a/pdf/xpdf/Page.cc b/pdf/xpdf/Page.cc
index d09170a..7a5ee4b 100644
--- a/pdf/xpdf/Page.cc
+++ b/pdf/xpdf/Page.cc
@@ -97,23 +97,20 @@ PageAttrs::PageAttrs(PageAttrs *attrs, Dict *dict) {
if (obj2.isNum())
cropY2 = obj2.getNum();
obj2.free();
-
- // if the MediaBox is excessively larger than the CropBox,
- // just use the CropBox
- w = 0.25 * (cropX2 - cropX1);
- h = 0.25 * (cropY2 - cropY1);
- if (cropX1 - x1 > w || x2 - cropX2 > w ||
- cropY1 - y1 > h || y2 - cropY2 > h) {
- x1 = cropX1;
- x2 = cropX2;
- y1 = cropY1;
- y2 = cropY2;
- }
- } else {
- cropX1 = cropX2 = cropY1 = cropY2 = 0;
}
obj1.free();
+ // if the MediaBox is excessively larger than the CropBox,
+ // just use the CropBox
+ limitToCropBox = gFalse;
+ w = 0.25 * (cropX2 - cropX1);
+ h = 0.25 * (cropY2 - cropY1);
+ if (cropX2 > cropX1 &&
+ (cropX1 - x1 > w || x2 - cropX2 > w ||
+ cropY1 - y1 > h || y2 - cropY2 > h)) {
+ limitToCropBox = gTrue;
+ }
+
// rotate
dict->lookup("Rotate", &obj1);
if (obj1.isInt())
diff --git a/pdf/xpdf/Page.h b/pdf/xpdf/Page.h
index c74f0b5..6c020c7 100644
--- a/pdf/xpdf/Page.h
+++ b/pdf/xpdf/Page.h
@@ -35,10 +35,10 @@ public:
~PageAttrs();
// Accessors.
- double getX1() { return x1; }
- double getY1() { return y1; }
- double getX2() { return x2; }
- double getY2() { return y2; }
+ double getX1() { return limitToCropBox ? cropX1 : x1; }
+ double getY1() { return limitToCropBox ? cropY1 : y1; }
+ double getX2() { return limitToCropBox ? cropX2 : x2; }
+ double getY2() { return limitToCropBox ? cropY2 : y2; }
GBool isCropped() { return cropX2 > cropX1; }
double getCropX1() { return cropX1; }
double getCropY1() { return cropY1; }
@@ -52,6 +52,7 @@ private:
double x1, y1, x2, y2;
double cropX1, cropY1, cropX2, cropY2;
+ GBool limitToCropBox;
int rotate;
Object resources;
};
diff --git a/pdf/xpdf/Params.cc b/pdf/xpdf/Params.cc
index 8b6c508..35adfdf 100644
--- a/pdf/xpdf/Params.cc
+++ b/pdf/xpdf/Params.cc
@@ -73,12 +73,9 @@ void freeParams() {
int i;
if (fontPath) {
- for (i = 0; i < fontPathLen; ++i) {
+ for (i = 0; i < fontPathLen; ++i)
gfree(fontPath[i]);
- fontPath[i] = NULL;
- }
gfree(fontPath);
- fontPath = NULL;
}
if (devFontMap) {
for (i = 0; i < devFontMapLen; ++i) {
diff --git a/pdf/xpdf/Params.h b/pdf/xpdf/Params.h
index debe1a0..4b5cc9f 100644
--- a/pdf/xpdf/Params.h
+++ b/pdf/xpdf/Params.h
@@ -15,6 +15,9 @@ extern GBool printCommands;
// Send error messages to /dev/tty instead of stderr.
extern GBool errorsToTTY;
+// If this is set, error messages will be silently discarded.
+extern GBool errQuiet;
+
// Font search path.
extern char **fontPath;
diff --git a/pdf/xpdf/Stream-CCITT.h b/pdf/xpdf/Stream-CCITT.h
index fe33740..1af8742 100644
--- a/pdf/xpdf/Stream-CCITT.h
+++ b/pdf/xpdf/Stream-CCITT.h
@@ -29,14 +29,70 @@ struct CCITTCode {
#define twoDimVertR3 7
#define twoDimVertL3 8
-// 1-4 bit codes
-static CCITTCode twoDimTab1[16] = {
- {-1, -1}, // 0000
- {4, twoDimPass}, // 0001
- {3, twoDimHoriz}, {3, twoDimHoriz}, // 001x
- {3, twoDimVertL1}, {3, twoDimVertL1}, // 010x
- {3, twoDimVertR1}, {3, twoDimVertR1}, // 011x
- {1, twoDimVert0}, {1, twoDimVert0}, // 1xxx
+// 1-7 bit codes
+static CCITTCode twoDimTab1[128] = {
+ {-1, -1}, {-1, -1}, // 000000x
+ {7, twoDimVertL3}, // 0000010
+ {7, twoDimVertR3}, // 0000011
+ {6, twoDimVertL2}, {6, twoDimVertL2}, // 000010x
+ {6, twoDimVertR2}, {6, twoDimVertR2}, // 000011x
+ {4, twoDimPass}, {4, twoDimPass}, // 0001xxx
+ {4, twoDimPass}, {4, twoDimPass},
+ {4, twoDimPass}, {4, twoDimPass},
+ {4, twoDimPass}, {4, twoDimPass},
+ {3, twoDimHoriz}, {3, twoDimHoriz}, // 001xxxx
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimHoriz}, {3, twoDimHoriz},
+ {3, twoDimVertL1}, {3, twoDimVertL1}, // 010xxxx
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertL1}, {3, twoDimVertL1},
+ {3, twoDimVertR1}, {3, twoDimVertR1}, // 011xxxx
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {3, twoDimVertR1}, {3, twoDimVertR1},
+ {1, twoDimVert0}, {1, twoDimVert0}, // 1xxxxxx
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
+ {1, twoDimVert0}, {1, twoDimVert0},
{1, twoDimVert0}, {1, twoDimVert0},
{1, twoDimVert0}, {1, twoDimVert0},
{1, twoDimVert0}, {1, twoDimVert0}
diff --git a/pdf/xpdf/Stream.cc b/pdf/xpdf/Stream.cc
index d7040ce..667d07c 100644
--- a/pdf/xpdf/Stream.cc
+++ b/pdf/xpdf/Stream.cc
@@ -25,6 +25,15 @@
#include "Stream.h"
#include "Stream-CCITT.h"
+#ifdef _MSC_VER
+#define popen _popen
+#define pclose _pclose
+#endif
+
+#ifdef __DJGPP__
+static GBool setDJSYSFLAGS = gFalse;
+#endif
+
#ifdef VMS
#if (__VMS_VER < 70000000)
extern "C" int unlink(char *filename);
@@ -47,31 +56,14 @@ extern "C" int unlink(char *filename);
Stream::Stream() {
ref = 1;
- predictor = 1;
- rawLine = NULL;
- pixLine = NULL;
}
Stream::~Stream() {
- gfree(rawLine);
- gfree(pixLine);
-}
-
-void Stream::resetImage(int width1, int nComps1, int nBits1) {
- reset();
- if (predictor > 1 &&
- (width1 != width || nComps != nComps || nBits1 != nBits))
- error(-1, "Mismatched image parameters in predictor");
- width = width1;
- nComps = nComps1;
- nBits = nBits1;
- nVals = width * nComps;
- pixBytes = (nComps * nBits + 7) >> 3;
- rowBytes = (nVals * nBits + 7) >> 3;
- rawLine = (Guchar *)grealloc(rawLine, rowBytes + pixBytes);
- memset(rawLine, 0, rowBytes);
- pixLine = (Guchar *)grealloc(pixLine, ((nVals + 7) & ~7) * sizeof(Guchar));
- pixIdx = nVals;
+}
+
+int Stream::getRawChar() {
+ error(-1, "Internal: called getRawChar() on non-predictor stream");
+ return EOF;
}
char *Stream::getLine(char *buf, int size) {
@@ -95,154 +87,6 @@ char *Stream::getLine(char *buf, int size) {
return buf;
}
-GBool Stream::getImagePixel(Guchar *pix) {
- int curPred;
- int left, up, upLeft, p, pa, pb, pc;
- Guchar upLeftBuf[4];
- Gulong buf, bitMask;
- int c;
- int bits;
- int i, j;
-
- // read an image line
- if (pixIdx >= nVals) {
-
- // get PNG optimum predictor number
- if (predictor == 15) {
- if ((curPred = getChar()) == EOF)
- return EOF;
- curPred += 10;
- } else {
- curPred = predictor;
- }
-
- // read the raw line, apply byte predictor
- upLeftBuf[0] = upLeftBuf[1] = upLeftBuf[2] = upLeftBuf[3] = 0;
- for (i = 0; i < rowBytes; ++i) {
- upLeftBuf[3] = upLeftBuf[2];
- upLeftBuf[2] = upLeftBuf[1];
- upLeftBuf[1] = upLeftBuf[0];
- upLeftBuf[0] = rawLine[pixBytes+i];
- if ((c = getChar()) == EOF)
- return EOF;
- switch (curPred) {
- case 11: // PNG sub
- rawLine[pixBytes+i] = rawLine[i] + (Guchar)c;
- break;
- case 12: // PNG up
- rawLine[pixBytes+i] = rawLine[pixBytes+i] + (Guchar)c;
- break;
- case 13: // PNG average
- rawLine[pixBytes+i] = ((rawLine[i] + rawLine[pixBytes+i]) >> 1) +
- (Guchar)c;
- break;
- case 14: // PNG Paeth
- left = rawLine[i];
- up = rawLine[pixBytes+i];
- upLeft = upLeftBuf[pixBytes];
- p = left + up - upLeft;
- if ((pa = p - left) < 0)
- pa = -pa;
- if ((pb = p - up) < 0)
- pb = -pb;
- if ((pc = p - upLeft) < 0)
- pc = -pc;
- if (pa <= pb && pa <= pc)
- rawLine[pixBytes+i] = pa + (Guchar)c;
- else if (pb <= pc)
- rawLine[pixBytes+i] = pb + (Guchar)c;
- else
- rawLine[pixBytes+i] = pc + (Guchar)c;
- break;
- case 10: // PNG none
- default: // no predictor or TIFF predictor
- rawLine[pixBytes+i] = (Guchar)c;
- break;
- }
- }
-
- // convert into pixels, apply component predictor
- if (predictor == 2) {
- if (nBits == 1) {
- for (i = 0, j = pixBytes; i < nVals; i += 8, ++j) {
- c = rawLine[j];
- pixLine[i+0] = (Guchar)((pixLine[i+0] + (c >> 7)) & 1);
- pixLine[i+1] = (Guchar)((pixLine[i+1] + (c >> 6)) & 1);
- pixLine[i+2] = (Guchar)((pixLine[i+2] + (c >> 5)) & 1);
- pixLine[i+3] = (Guchar)((pixLine[i+3] + (c >> 4)) & 1);
- pixLine[i+4] = (Guchar)((pixLine[i+4] + (c >> 3)) & 1);
- pixLine[i+5] = (Guchar)((pixLine[i+5] + (c >> 2)) & 1);
- pixLine[i+6] = (Guchar)((pixLine[i+6] + (c >> 1)) & 1);
- pixLine[i+7] = (Guchar)((pixLine[i+7] + c) & 1);
- }
- } else if (nBits == 8) {
- for (i = 0, j = pixBytes; i < nVals; ++i, ++j)
- pixLine[i] = pixLine[i] + rawLine[j];
- } else {
- bitMask = (1 << nBits) - 1;
- buf = 0;
- bits = 0;
- j = pixBytes;
- for (i = 0; i < nVals; ++i) {
- if (bits < nBits) {
- buf = (buf << 8) | (rawLine[j++] & 0xff);
- bits += 8;
- }
- pixLine[i] = (Guchar)((pixLine[i] +
- (buf >> (bits - nBits))) & bitMask);
- bits -= nBits;
- }
- }
- } else {
- if (nBits == 1) {
- for (i = 0, j = pixBytes; i < nVals; i += 8, ++j) {
- c = rawLine[j];
- pixLine[i+0] = (Guchar)((c >> 7) & 1);
- pixLine[i+1] = (Guchar)((c >> 6) & 1);
- pixLine[i+2] = (Guchar)((c >> 5) & 1);
- pixLine[i+3] = (Guchar)((c >> 4) & 1);
- pixLine[i+4] = (Guchar)((c >> 3) & 1);
- pixLine[i+5] = (Guchar)((c >> 2) & 1);
- pixLine[i+6] = (Guchar)((c >> 1) & 1);
- pixLine[i+7] = (Guchar)(c & 1);
- }
- } else if (nBits == 8) {
- for (i = 0, j = pixBytes; i < nVals; ++i, ++j)
- pixLine[i] = rawLine[j];
- } else {
- bitMask = (1 << nBits) - 1;
- buf = 0;
- bits = 0;
- j = pixBytes;
- for (i = 0; i < nVals; ++i) {
- if (bits < nBits) {
- buf = (buf << 8) | (rawLine[j++] & 0xff);
- bits += 8;
- }
- pixLine[i] = (Guchar)((buf >> (bits - nBits)) & bitMask);
- bits -= nBits;
- }
- }
- }
-
- // read from start of line
- pixIdx = 0;
- }
-
- for (i = 0; i < nComps; ++i)
- pix[i] = pixLine[pixIdx++];
- return gTrue;
-}
-
-void Stream::skipImageLine() {
- int n, i;
-
- n = (nVals * nBits + 7) / 8;
- for (i = 0; i < n; ++i)
- getChar();
- pixIdx = nVals;
-}
-
void Stream::setPos(int pos) {
error(-1, "Internal: called setPos() on non-FileStream");
}
@@ -301,8 +145,7 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params) {
int bits;
int early;
int encoding;
- GBool byteAlign;
- GBool black;
+ GBool endOfLine, byteAlign, endOfBlock, black;
int columns, rows;
Object obj;
@@ -343,33 +186,51 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params) {
str = new RunLengthStream(str);
} else if (!strcmp(name, "CCITTFaxDecode") || !strcmp(name, "CCF")) {
encoding = 0;
+ endOfLine = gFalse;
byteAlign = gFalse;
columns = 1728;
rows = 0;
+ endOfBlock = gTrue;
black = gFalse;
if (params->isDict()) {
params->dictLookup("K", &obj);
- if (obj.isInt())
+ if (obj.isInt()) {
encoding = obj.getInt();
+ }
+ obj.free();
+ params->dictLookup("EndOfLine", &obj);
+ if (obj.isBool()) {
+ endOfLine = obj.getBool();
+ }
obj.free();
params->dictLookup("EncodedByteAlign", &obj);
- if (obj.isBool())
+ if (obj.isBool()) {
byteAlign = obj.getBool();
+ }
obj.free();
params->dictLookup("Columns", &obj);
- if (obj.isInt())
+ if (obj.isInt()) {
columns = obj.getInt();
+ }
obj.free();
params->dictLookup("Rows", &obj);
- if (obj.isInt())
+ if (obj.isInt()) {
rows = obj.getInt();
+ }
+ obj.free();
+ params->dictLookup("EndOfBlock", &obj);
+ if (obj.isBool()) {
+ endOfBlock = obj.getBool();
+ }
obj.free();
params->dictLookup("BlackIs1", &obj);
- if (obj.isBool())
+ if (obj.isBool()) {
black = obj.getBool();
+ }
obj.free();
}
- str = new CCITTFaxStream(str, encoding, byteAlign, columns, rows, black);
+ str = new CCITTFaxStream(str, encoding, endOfLine, byteAlign,
+ columns, rows, endOfBlock, black);
} else if (!strcmp(name, "DCTDecode") || !strcmp(name, "DCT")) {
str = new DCTStream(str);
} else if (!strcmp(name, "FlateDecode") || !strcmp(name, "Fl")) {
@@ -404,6 +265,249 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params) {
}
//------------------------------------------------------------------------
+// ImageStream
+//------------------------------------------------------------------------
+
+ImageStream::ImageStream(Stream *str, int width, int nComps, int nBits) {
+ int imgLineSize;
+
+ this->str = str;
+ this->width = width;
+ this->nComps = nComps;
+ this->nBits = nBits;
+
+ nVals = width * nComps;
+ if (nBits == 1) {
+ imgLineSize = (nVals + 7) & ~7;
+ } else {
+ imgLineSize = nVals;
+ }
+ imgLine = (Guchar *)gmalloc(imgLineSize * sizeof(Guchar));
+ imgIdx = nVals;
+}
+
+ImageStream::~ImageStream() {
+ gfree(imgLine);
+}
+
+void ImageStream::reset() {
+ str->reset();
+}
+
+GBool ImageStream::getPixel(Guchar *pix) {
+ Gulong buf, bitMask;
+ int bits;
+ int c;
+ int i;
+
+ if (imgIdx >= nVals) {
+
+ // read one line of image pixels
+ if (nBits == 1) {
+ for (i = 0; i < nVals; i += 8) {
+ c = str->getChar();
+ imgLine[i+0] = (Guchar)((c >> 7) & 1);
+ imgLine[i+1] = (Guchar)((c >> 6) & 1);
+ imgLine[i+2] = (Guchar)((c >> 5) & 1);
+ imgLine[i+3] = (Guchar)((c >> 4) & 1);
+ imgLine[i+4] = (Guchar)((c >> 3) & 1);
+ imgLine[i+5] = (Guchar)((c >> 2) & 1);
+ imgLine[i+6] = (Guchar)((c >> 1) & 1);
+ imgLine[i+7] = (Guchar)(c & 1);
+ }
+ } else if (nBits == 8) {
+ for (i = 0; i < nVals; ++i) {
+ imgLine[i] = str->getChar();
+ }
+ } else {
+ bitMask = (1 << nBits) - 1;
+ buf = 0;
+ bits = 0;
+ for (i = 0; i < nVals; ++i) {
+ if (bits < nBits) {
+ buf = (buf << 8) | (str->getChar() & 0xff);
+ bits += 8;
+ }
+ imgLine[i] = (Guchar)((buf >> (bits - nBits)) & bitMask);
+ bits -= nBits;
+ }
+ }
+
+ // reset to start of line
+ imgIdx = 0;
+ }
+
+ for (i = 0; i < nComps; ++i)
+ pix[i] = imgLine[imgIdx++];
+ return gTrue;
+}
+
+void ImageStream::skipLine() {
+ int n, i;
+
+ n = (nVals * nBits + 7) >> 3;
+ for (i = 0; i < n; ++i) {
+ str->getChar();
+ }
+}
+
+//------------------------------------------------------------------------
+// StreamPredictor
+//------------------------------------------------------------------------
+
+StreamPredictor::StreamPredictor(Stream *str, int predictor,
+ int width, int nComps, int nBits) {
+ this->str = str;
+ this->predictor = predictor;
+ this->width = width;
+ this->nComps = nComps;
+ this->nBits = nBits;
+
+ nVals = width * nComps;
+ pixBytes = (nComps * nBits + 7) >> 3;
+ rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes;
+ predLine = (Guchar *)gmalloc(rowBytes);
+ memset(predLine, 0, rowBytes);
+ predIdx = rowBytes;
+}
+
+StreamPredictor::~StreamPredictor() {
+ gfree(predLine);
+}
+
+int StreamPredictor::lookChar() {
+ if (predIdx >= rowBytes) {
+ if (!getNextLine()) {
+ return EOF;
+ }
+ }
+ return predLine[predIdx];
+}
+
+int StreamPredictor::getChar() {
+ if (predIdx >= rowBytes) {
+ if (!getNextLine()) {
+ return EOF;
+ }
+ }
+ return predLine[predIdx++];
+}
+
+GBool StreamPredictor::getNextLine() {
+ int curPred;
+ Guchar upLeftBuf[4];
+ int left, up, upLeft, p, pa, pb, pc;
+ int c;
+ Gulong inBuf, outBuf, bitMask;
+ int inBits, outBits;
+ int i, j, k;
+
+ // get PNG optimum predictor number
+ if (predictor == 15) {
+ if ((curPred = str->getRawChar()) == EOF) {
+ return gFalse;
+ }
+ curPred += 10;
+ } else {
+ curPred = predictor;
+ }
+
+ // read the raw line, apply PNG (byte) predictor
+ upLeftBuf[0] = upLeftBuf[1] = upLeftBuf[2] = upLeftBuf[3] = 0;
+ for (i = pixBytes; i < rowBytes; ++i) {
+ upLeftBuf[3] = upLeftBuf[2];
+ upLeftBuf[2] = upLeftBuf[1];
+ upLeftBuf[1] = upLeftBuf[0];
+ upLeftBuf[0] = predLine[i];
+ if ((c = str->getRawChar()) == EOF) {
+ break;
+ }
+ switch (curPred) {
+ case 11: // PNG sub
+ predLine[i] = predLine[i - pixBytes] + (Guchar)c;
+ break;
+ case 12: // PNG up
+ predLine[i] = predLine[i] + (Guchar)c;
+ break;
+ case 13: // PNG average
+ predLine[i] = ((predLine[i - pixBytes] + predLine[i]) >> 1) +
+ (Guchar)c;
+ break;
+ case 14: // PNG Paeth
+ left = predLine[i - pixBytes];
+ up = predLine[i];
+ upLeft = upLeftBuf[pixBytes];
+ p = left + up - upLeft;
+ if ((pa = p - left) < 0)
+ pa = -pa;
+ if ((pb = p - up) < 0)
+ pb = -pb;
+ if ((pc = p - upLeft) < 0)
+ pc = -pc;
+ if (pa <= pb && pa <= pc)
+ predLine[i] = pa + (Guchar)c;
+ else if (pb <= pc)
+ predLine[i] = pb + (Guchar)c;
+ else
+ predLine[i] = pc + (Guchar)c;
+ break;
+ case 10: // PNG none
+ default: // no predictor or TIFF predictor
+ predLine[i] = (Guchar)c;
+ break;
+ }
+ }
+
+ // apply TIFF (component) predictor
+ //~ this is completely untested
+ if (predictor == 2) {
+ if (nBits == 1) {
+ inBuf = predLine[pixBytes - 1];
+ for (i = pixBytes; i < rowBytes; i += 8) {
+ // 1-bit add is just xor
+ inBuf = (inBuf << 8) | predLine[i];
+ predLine[i] ^= inBuf >> nComps;
+ }
+ } else if (nBits == 8) {
+ for (i = pixBytes; i < rowBytes; ++i) {
+ predLine[i] += predLine[i - nComps];
+ }
+ } else {
+ upLeftBuf[0] = upLeftBuf[1] = upLeftBuf[2] = upLeftBuf[3] = 0;
+ bitMask = (1 << nBits) - 1;
+ inBuf = outBuf = 0;
+ inBits = outBits = 0;
+ j = k = pixBytes;
+ for (i = 0; i < nVals; ++i) {
+ if (inBits < nBits) {
+ inBuf = (inBuf << 8) | (predLine[j++] & 0xff);
+ inBits += 8;
+ }
+ upLeftBuf[3] = upLeftBuf[2];
+ upLeftBuf[2] = upLeftBuf[1];
+ upLeftBuf[1] = upLeftBuf[0];
+ upLeftBuf[0] = (upLeftBuf[nComps] +
+ (inBuf >> (inBits - nBits))) & bitMask;
+ outBuf = (outBuf << nBits) | upLeftBuf[0];
+ inBits -= nBits;
+ outBits += nBits;
+ if (outBits > 8) {
+ predLine[k++] = (Guchar)(outBuf >> (outBits - 8));
+ }
+ }
+ if (outBits > 0) {
+ predLine[k++] = (Guchar)(outBuf << (8 - outBits));
+ }
+ }
+ }
+
+ // reset to start of line
+ predIdx = pixBytes;
+
+ return gTrue;
+}
+
+//------------------------------------------------------------------------
// FileStream
//------------------------------------------------------------------------
@@ -485,7 +589,8 @@ GBool FileStream::checkHeader() {
start += i;
p = strtok(&hdrBuf[i+5], " \t\n\r");
version = atof(p);
- if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') || version > pdfVersionNum) {
+ if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') ||
+ version > pdfVersionNum + 0.0001) {
error(getPos(), "PDF version %s -- xpdf supports version %s"
" (continuing anyway)", p, pdfVersion);
return gFalse;
@@ -674,11 +779,10 @@ GBool ASCII85Stream::isBinary(GBool last) {
LZWStream::LZWStream(Stream *str1, int predictor1, int columns1, int colors1,
int bits1, int early1) {
str = str1;
- predictor = predictor1;
- if (predictor1 > 1) {
- width = columns1;
- nComps = colors1;
- nBits = bits1;
+ if (predictor1 != 1) {
+ pred = new StreamPredictor(this, predictor1, columns1, colors1, bits1);
+ } else {
+ pred = NULL;
}
early = early1;
zPipe = NULL;
@@ -695,17 +799,30 @@ LZWStream::~LZWStream() {
zPipe = NULL;
unlink(zName);
}
+ if (pred) {
+ delete pred;
+ }
delete str;
}
int LZWStream::getChar() {
+ if (pred) {
+ return pred->getChar();
+ }
return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff);
}
int LZWStream::lookChar() {
+ if (pred) {
+ return pred->lookChar();
+ }
return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff);
}
+int LZWStream::getRawChar() {
+ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff);
+}
+
void LZWStream::reset() {
FILE *f;
@@ -720,10 +837,19 @@ void LZWStream::reset() {
zPipe = NULL;
unlink(zName);
}
+#if __DJGPP__
+ if (!setDJSYSFLAGS) {
+ setenv("DJSYSFLAGS", "0x0002", 0);
+ setDJSYSFLAGS = gTrue;
+ }
+#endif
strcpy(zCmd, uncompressCmd);
strcat(zCmd, " ");
zName = zCmd + strlen(zCmd);
tmpnam(zName);
+#ifdef _MSC_VER
+ zName[strlen(zName) - 2] = '\0';
+#endif
strcat(zName, ".Z");
if (!(f = fopen(zName, "wb"))) {
error(getPos(), "Couldn't open temporary file '%s'", zName);
@@ -914,6 +1040,9 @@ GBool LZWStream::fillBuf() {
GString *LZWStream::getPSFilter(char *indent) {
GString *s;
+ if (pred) {
+ return NULL;
+ }
s = str->getPSFilter(indent);
s->append(indent)->append("/LZWDecode filter\n");
return s;
@@ -985,18 +1114,22 @@ GBool RunLengthStream::fillBuf() {
// CCITTFaxStream
//------------------------------------------------------------------------
-CCITTFaxStream::CCITTFaxStream(Stream *str1, int encoding1, GBool byteAlign1,
- int columns1, int rows1, GBool black1) {
- str = str1;
- encoding = encoding1;
- byteAlign = byteAlign1;
- columns = columns1;
- rows = rows1;
- black = black1;
+CCITTFaxStream::CCITTFaxStream(Stream *str, int encoding, GBool endOfLine,
+ GBool byteAlign, int columns, int rows,
+ GBool endOfBlock, GBool black) {
+ this->str = str;
+ this->encoding = encoding;
+ this->endOfLine = endOfLine;
+ this->byteAlign = byteAlign;
+ this->columns = columns;
+ this->rows = rows;
+ this->endOfBlock = endOfBlock;
+ this->black = black;
refLine = (short *)gmalloc((columns + 2) * sizeof(short));
codingLine = (short *)gmalloc((columns + 2) * sizeof(short));
eof = gFalse;
+ row = 0;
nextLine2D = encoding < 0;
inputBits = 0;
codingLine[0] = 0;
@@ -1013,39 +1146,55 @@ CCITTFaxStream::~CCITTFaxStream() {
}
void CCITTFaxStream::reset() {
+ int n;
+
str->reset();
eof = gFalse;
+ row = 0;
nextLine2D = encoding < 0;
inputBits = 0;
- if ((look13Bits() >> 1) == 0x001)
- eatBits(12);
codingLine[0] = 0;
codingLine[1] = refLine[2] = columns;
a0 = 1;
buf = EOF;
+
+ // get initial end-of-line marker and 2D encoding tag
+ if (endOfBlock) {
+ if (lookBits(12) == 0x001) {
+ eatBits(12);
+ }
+ } else {
+ for (n = 0; n < 11 && lookBits(n) == 0; ++n) ;
+ if (n == 11 && lookBits(12) == 0x001) {
+ eatBits(12);
+ }
+ }
+ if (encoding > 0) {
+ nextLine2D = !lookBits(1);
+ eatBits(1);
+ }
}
int CCITTFaxStream::lookChar() {
short code1, code2, code3;
int a0New;
+#if 0 //~
+ GBool err;
+#endif
int ret;
- int bits, i;
+ int bits, i, n;
// if at eof just return EOF
- if (eof && codingLine[a0] >= columns)
+ if (eof && codingLine[a0] >= columns) {
return EOF;
+ }
// read the next row
+#if 0 //~
+ err = gFalse;
+#endif
if (codingLine[a0] >= columns) {
- // check for end of file
- i = look13Bits();
- if (i == EOF || (i >> 1) == 0x001) {
- eof = gTrue;
- codingLine[a0 = 0] = columns;
- return EOF;
- }
-
// 2-D encoding
if (nextLine2D) {
for (i = 0; codingLine[i] < columns; ++i)
@@ -1143,7 +1292,13 @@ int CCITTFaxStream::lookChar() {
return EOF;
default:
error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1);
+#if 0 //~
+ err = gTrue;
+ break;
+#else
+ eof = gTrue;
return EOF;
+#endif
}
} while (codingLine[a0] < columns);
@@ -1170,21 +1325,104 @@ int CCITTFaxStream::lookChar() {
}
}
- if (codingLine[a0] != columns)
+ if (codingLine[a0] != columns) {
error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]);
+#if 0 //~
+ err = gTrue;
+#endif
+ }
- // check for end-of-line marker
- code1 = look13Bits();
- if ((code1 >> 1) == 0x001) {
- eatBits(12);
+ // byte-align the row
+ if (byteAlign) {
+ inputBits &= ~7;
+ }
+
+ // check for end-of-line marker, end-of-block marker, and
+ // 2D encoding tag
+ if (endOfBlock) {
+ code1 = lookBits(12);
+ if (code1 == EOF) {
+ eof = gTrue;
+ } else if (code1 == 0x001) {
+ eatBits(12);
+ if (encoding > 0) {
+ nextLine2D = !lookBits(1);
+ eatBits(1);
+ }
+ code1 = lookBits(12);
+ if (code1 == 0x001) {
+ eatBits(12);
+ if (encoding > 0) {
+ lookBits(1);
+ eatBits(1);
+ }
+ if (encoding >= 0) {
+ for (i = 0; i < 4; ++i) {
+ code1 = lookBits(12);
+ if (code1 != 0x001) {
+ error(getPos(), "Bad RTC code in CCITTFax stream");
+ }
+ eatBits(12);
+ if (encoding > 0) {
+ lookBits(1);
+ eatBits(1);
+ }
+ }
+ }
+ eof = gTrue;
+ }
+ } else {
+ if (encoding > 0) {
+ nextLine2D = !lookBits(1);
+ eatBits(1);
+ }
+ }
+ } else {
+ if (row == rows - 1) {
+ eof = gTrue;
+ } else {
+ for (n = 0; n < 11 && lookBits(n) == 0; ++n) ;
+ if (n == 11 && lookBits(12) == 0x001) {
+ eatBits(12);
+ }
+ if (encoding > 0) {
+ nextLine2D = !lookBits(1);
+ eatBits(1);
+ }
+ }
+ }
+
+#if 0 //~
+ // This looks for an end-of-line marker after an error, however
+ // some (most?) CCITT streams in PDF files don't use end-of-line
+ // markers, and the just-plow-on technique works better in those
+ // cases.
+ else if (err) {
+ do {
+ if (code1 == EOF) {
+ eof = gTrue;
+ return EOF;
+ }
+ eatBits(1);
+ code1 = look13Bits();
+ } while ((code1 >> 1) != 0x001);
+ eatBits(12);
+ codingLine[++a0] = columns;
if (encoding > 0) {
eatBits(1);
nextLine2D = !(code1 & 1);
}
}
+#endif
a0 = 0;
outputBits = codingLine[1] - codingLine[0];
+ if (outputBits == 0) {
+ a0 = 1;
+ outputBits = codingLine[2] - codingLine[1];
+ }
+
+ ++row;
}
// get a byte
@@ -1192,8 +1430,9 @@ int CCITTFaxStream::lookChar() {
ret = ((a0 & 1) == 0) ? 0xff : 0x00;
if ((outputBits -= 8) == 0) {
++a0;
- if (codingLine[a0] < columns)
+ if (codingLine[a0] < columns) {
outputBits = codingLine[a0 + 1] - codingLine[a0];
+ }
}
} else {
bits = 8;
@@ -1202,18 +1441,21 @@ int CCITTFaxStream::lookChar() {
if (outputBits > bits) {
i = bits;
bits = 0;
- if ((a0 & 1) == 0)
+ if ((a0 & 1) == 0) {
ret |= 0xff >> (8 - i);
+ }
outputBits -= i;
} else {
i = outputBits;
bits -= outputBits;
- if ((a0 & 1) == 0)
+ if ((a0 & 1) == 0) {
ret |= (0xff >> (8 - i)) << bits;
+ }
outputBits = 0;
++a0;
- if (codingLine[a0] < columns)
+ if (codingLine[a0] < columns) {
outputBits = codingLine[a0 + 1] - codingLine[a0];
+ }
}
} while (bits > 0 && codingLine[a0] < columns);
}
@@ -1222,50 +1464,74 @@ int CCITTFaxStream::lookChar() {
}
short CCITTFaxStream::getTwoDimCode() {
- short code, code0;
+ short code;
CCITTCode *p;
+ int n;
- code0 = look13Bits();
- code = code0 >> 6;
- if (code == 0x0002) {
- eatBits(7);
- return twoDimVertL3;
- }
- if (code == 0x0003) {
- eatBits(7);
- return twoDimVertR3;
- }
- code >>= 1;
- if (code == 0x0002) {
- eatBits(6);
- return twoDimVertL2;
- }
- if (code == 0x0003) {
- eatBits(6);
- return twoDimVertR2;
- }
- code >>= 2;
- p = &twoDimTab1[code];
- if (p->bits > 0) {
- eatBits(p->bits);
- return p->n;
+ code = 0; // make gcc happy
+ if (endOfBlock) {
+ code = lookBits(7);
+ p = &twoDimTab1[code];
+ if (p->bits > 0) {
+ eatBits(p->bits);
+ return p->n;
+ }
+ } else {
+ for (n = 1; n <= 7; ++n) {
+ code = lookBits(n);
+ if (n < 7) {
+ code <<= 7 - n;
+ }
+ p = &twoDimTab1[code];
+ if (p->bits == n) {
+ eatBits(n);
+ return p->n;
+ }
+ }
}
- error(getPos(), "Bad two dim code (%04x) in CCITTFax stream", code0);
+ error(getPos(), "Bad two dim code (%04x) in CCITTFax stream", code);
return EOF;
}
short CCITTFaxStream::getWhiteCode() {
short code;
CCITTCode *p;
+ int n;
- code = look13Bits();
- if ((code >> 6) == 0)
- p = &whiteTab1[code >> 1];
- else
- p = &whiteTab2[code >> 4];
- if (p->bits > 0) {
- eatBits(p->bits);
- return p->n;
+ code = 0; // make gcc happy
+ if (endOfBlock) {
+ code = lookBits(12);
+ if ((code >> 5) == 0)
+ p = &whiteTab1[code];
+ else
+ p = &whiteTab2[code >> 3];
+ if (p->bits > 0) {
+ eatBits(p->bits);
+ return p->n;
+ }
+ } else {
+ for (n = 1; n <= 9; ++n) {
+ code = lookBits(n);
+ if (n < 9) {
+ code <<= 9 - n;
+ }
+ p = &whiteTab2[code];
+ if (p->bits == n) {
+ eatBits(n);
+ return p->n;
+ }
+ }
+ for (n = 11; n <= 12; ++n) {
+ code = lookBits(n);
+ if (n < 12) {
+ code <<= 12 - n;
+ }
+ p = &whiteTab1[code];
+ if (p->bits == n) {
+ eatBits(n);
+ return p->n;
+ }
+ }
}
error(getPos(), "Bad white code (%04x) in CCITTFax stream", code);
return EOF;
@@ -1274,26 +1540,66 @@ short CCITTFaxStream::getWhiteCode() {
short CCITTFaxStream::getBlackCode() {
short code;
CCITTCode *p;
+ int n;
- code = look13Bits();
- if ((code >> 7) == 0)
- p = &blackTab1[code];
- else if ((code >> 9) == 0)
- p = &blackTab2[(code >> 1) - 64];
- else
- p = &blackTab3[code >> 7];
- if (p->bits > 0) {
- eatBits(p->bits);
- return p->n;
+ code = 0; // make gcc happy
+ if (endOfBlock) {
+ code = lookBits(13);
+ if ((code >> 7) == 0)
+ p = &blackTab1[code];
+ else if ((code >> 9) == 0)
+ p = &blackTab2[(code >> 1) - 64];
+ else
+ p = &blackTab3[code >> 7];
+ if (p->bits > 0) {
+ eatBits(p->bits);
+ return p->n;
+ }
+ } else {
+ for (n = 2; n <= 6; ++n) {
+ code = lookBits(n);
+ if (n < 6) {
+ code <<= 6 - n;
+ }
+ p = &blackTab3[code];
+ if (p->bits == n) {
+ eatBits(n);
+ return p->n;
+ }
+ }
+ for (n = 7; n <= 12; ++n) {
+ code = lookBits(n);
+ if (n < 12) {
+ code <<= 12 - n;
+ }
+ if (code >= 64) {
+ p = &blackTab2[code - 64];
+ if (p->bits == n) {
+ eatBits(n);
+ return p->n;
+ }
+ }
+ }
+ for (n = 10; n <= 13; ++n) {
+ code = lookBits(n);
+ if (n < 13) {
+ code <<= 13 - n;
+ }
+ p = &blackTab1[code];
+ if (p->bits == n) {
+ eatBits(n);
+ return p->n;
+ }
+ }
}
error(getPos(), "Bad black code (%04x) in CCITTFax stream", code);
return EOF;
}
-short CCITTFaxStream::look13Bits() {
+short CCITTFaxStream::lookBits(int n) {
int c;
- while (inputBits < 13) {
+ while (inputBits < n) {
if ((c = str->getChar()) == EOF) {
if (inputBits == 0)
return EOF;
@@ -1302,7 +1608,7 @@ short CCITTFaxStream::look13Bits() {
inputBuf = (inputBuf << 8) + c;
inputBits += 8;
}
- return (inputBuf >> (inputBits - 13)) & 0x1fff;
+ return (inputBuf >> (inputBits - n)) & (0xffff >> (16 - n));
}
GString *CCITTFaxStream::getPSFilter(char *indent) {
@@ -1315,16 +1621,24 @@ GString *CCITTFaxStream::getPSFilter(char *indent) {
sprintf(s1, "/K %d ", encoding);
s->append(s1);
}
- if (byteAlign)
+ if (endOfLine) {
+ s->append("/EndOfLine true ");
+ }
+ if (byteAlign) {
s->append("/EncodedByteAlign true ");
+ }
sprintf(s1, "/Columns %d ", columns);
s->append(s1);
if (rows != 0) {
sprintf(s1, "/Rows %d ", rows);
s->append(s1);
}
- if (black)
+ if (!endOfBlock) {
+ s->append("/EndOfBlock false ");
+ }
+ if (black) {
s->append("/BlackIs1 true ");
+ }
s->append(">> /CCITTFaxDecode filter\n");
return s;
}
@@ -1567,7 +1881,7 @@ GBool DCTStream::readMCURow() {
pCr = rowBuf[2][y2][x1+x2] - 128;
pR = ((pY << 16) + dctCrToR * pCr + 32768) >> 16;
rowBuf[0][y2][x1+x2] = dctClip[dctClipOffset + pR];
- pG = ((pY << 16) + dctCbToG * pCb + dctCrToG * pCr + 32678) >> 16;
+ pG = ((pY << 16) + dctCbToG * pCb + dctCrToG * pCr + 32768) >> 16;
rowBuf[1][y2][x1+x2] = dctClip[dctClipOffset + pG];
pB = ((pY << 16) + dctCbToB * pCb + 32768) >> 16;
rowBuf[2][y2][x1+x2] = dctClip[dctClipOffset + pB];
@@ -1995,6 +2309,7 @@ GBool DCTStream::readHeader() {
numDCHuffTables = 0;
numACHuffTables = 0;
colorXform = 0;
+ gotAdobeMarker = gFalse;
restartInterval = 0;
// read headers
@@ -2072,6 +2387,13 @@ GBool DCTStream::readHeader() {
for (j = 0; j < mcuHeight; ++j)
rowBuf[i][j] = (Guchar *)gmalloc(bufWidth * sizeof(Guchar));
+ // figure out color transform
+ if (!gotAdobeMarker && numComps == 3) {
+ if (compInfo[0].id == 1 && compInfo[1].id == 2 && compInfo[2].id == 3) {
+ colorXform = 1;
+ }
+ }
+
// initialize counters
comp = 0;
x = 0;
@@ -2237,6 +2559,7 @@ GBool DCTStream::readAdobeMarker() {
if (strncmp(buf, "Adobe", 5))
goto err;
colorXform = buf[11];
+ gotAdobeMarker = gTrue;
return gTrue;
err:
@@ -2367,15 +2690,17 @@ FlateDecode FlateStream::distDecode[flateMaxDistCodes] = {
FlateStream::FlateStream(Stream *str1, int predictor1, int columns1,
int colors1, int bits1) {
str = str1;
- predictor = predictor1;
- if (predictor1 > 1) {
- width = columns1;
- nComps = colors1;
- nBits = bits1;
+ if (predictor1 != 1) {
+ pred = new StreamPredictor(this, predictor1, columns1, colors1, bits1);
+ } else {
+ pred = NULL;
}
}
FlateStream::~FlateStream() {
+ if (pred) {
+ delete pred;
+ }
delete str;
}
@@ -2417,6 +2742,9 @@ void FlateStream::reset() {
int FlateStream::getChar() {
int c;
+ if (pred) {
+ return pred->getChar();
+ }
while (remain == 0) {
if (endOfBlock && eof)
return EOF;
@@ -2431,12 +2759,29 @@ int FlateStream::getChar() {
int FlateStream::lookChar() {
int c;
+ if (pred) {
+ return pred->lookChar();
+ }
+ while (remain == 0) {
+ if (endOfBlock && eof)
+ return EOF;
+ readSome();
+ }
+ c = buf[index];
+ return c;
+}
+
+int FlateStream::getRawChar() {
+ int c;
+
while (remain == 0) {
if (endOfBlock && eof)
return EOF;
readSome();
}
c = buf[index];
+ index = (index + 1) & flateMask;
+ --remain;
return c;
}
diff --git a/pdf/xpdf/Stream.h b/pdf/xpdf/Stream.h
index 409d2ae..3eb8160 100644
--- a/pdf/xpdf/Stream.h
+++ b/pdf/xpdf/Stream.h
@@ -54,28 +54,19 @@ public:
// Reset stream to beginning.
virtual void reset() = 0;
- // Reset stream and allocate buffers for use by getPixel().
- // The image has <width1> pixels per line, <nComps1> components per
- // pixel, and <nBits1> bits per component.
- virtual void resetImage(int width1, int nComps1, int nBits1);
-
// Get next char from stream.
virtual int getChar() = 0;
// Peek at next char in stream.
virtual int lookChar() = 0;
+ // Get next char from stream without using the predictor.
+ // This is only used by StreamPredictor.
+ virtual int getRawChar();
+
// Get next line from stream.
virtual char *getLine(char *buf, int size);
- // Gets the next pixel from the stream. (resetImage() must be called
- // first.) <pix> should be able to hold at least nComps elements.
- // Returns false at end of file.
- virtual GBool getImagePixel(Guchar *pix);
-
- // Skip an entire line from the image.
- virtual void skipImageLine();
-
// Get current position in file.
virtual int getPos() = 0;
@@ -109,10 +100,65 @@ private:
Stream *makeFilter(char *name, Stream *str, Object *params);
int ref; // reference count
+};
+
+//------------------------------------------------------------------------
+// ImageStream
+//------------------------------------------------------------------------
+
+class ImageStream {
+public:
+
+ // Create an image stream object for an image with the specified
+ // parameters. Note that these are the actual image parameters,
+ // which may be different from the predictor parameters.
+ ImageStream(Stream *str, int width, int nComps, int nBits);
+
+ ~ImageStream();
+
+ // Reset the stream.
+ void reset();
+
+ // Gets the next pixel from the stream. <pix> should be able to hold
+ // at least nComps elements. Returns false at end of file.
+ GBool getPixel(Guchar *pix);
+
+ // Skip an entire line from the image.
+ void skipLine();
+
+private:
+
+ Stream *str; // base stream
+ int width; // pixels per line
+ int nComps; // components per pixel
+ int nBits; // bits per component
+ int nVals; // components per line
+ Guchar *imgLine; // line buffer
+ int imgIdx; // current index in imgLine
+};
+
+//------------------------------------------------------------------------
+// StreamPredictor
+//------------------------------------------------------------------------
+
+class StreamPredictor {
+public:
+
+ // Create a predictor object. Note that the parameters are for the
+ // predictor, and may not match the actual image parameters.
+ StreamPredictor(Stream *str, int predictor,
+ int width, int nComps, int nBits);
+
+ ~StreamPredictor();
+
+ int lookChar();
+ int getChar();
+
+private:
-protected:
+ GBool getNextLine();
- //----- image stuff
+ Stream *str; // base stream
int predictor; // predictor
int width; // pixels per line
int nComps; // components per pixel
@@ -120,9 +166,8 @@ protected:
int nVals; // components per line
int pixBytes; // bytes per pixel
int rowBytes; // bytes per line
- Guchar *rawLine; // raw line buffer
- Guchar *pixLine; // pixel line buffer
- int pixIdx; // current index in line buffer
+ Guchar *predLine; // line buffer
+ int predIdx; // current index in predLine
};
//------------------------------------------------------------------------
@@ -266,6 +311,7 @@ public:
virtual void reset();
virtual int getChar();
virtual int lookChar();
+ virtual int getRawChar();
virtual int getPos() { return str->getPos(); }
virtual GString *getPSFilter(char *indent);
virtual GBool isBinary(GBool last = gTrue);
@@ -276,6 +322,7 @@ public:
private:
Stream *str; // stream
+ StreamPredictor *pred; // predictor
int early; // early parameter
char zCmd[256]; // uncompress command
FILE *zPipe; // uncompress pipe
@@ -334,8 +381,9 @@ struct CCITTCodeTable;
class CCITTFaxStream: public Stream {
public:
- CCITTFaxStream(Stream *str1, int encoding1, GBool byteAlign1,
- int columns1, int rows1, GBool black1);
+ CCITTFaxStream(Stream *str, int encoding, GBool endOfLine,
+ GBool byteAlign, int columns, int rows,
+ GBool endOfBlock, GBool black);
virtual ~CCITTFaxStream();
virtual StreamKind getKind() { return strCCITTFax; }
virtual void reset();
@@ -353,12 +401,15 @@ private:
Stream *str; // stream
int encoding; // 'K' parameter
+ GBool endOfLine; // 'EndOfLine' parameter
GBool byteAlign; // 'EncodedByteAlign' parameter
int columns; // 'Columns' parameter
int rows; // 'Rows' parameter
+ GBool endOfBlock; // 'EndOfBlock' parameter
GBool black; // 'BlackIs1' parameter
GBool eof; // true if at eof
GBool nextLine2D; // true if next line uses 2D encoding
+ int row; // current row
int inputBuf; // input buffer
int inputBits; // number of bits in input buffer
short *refLine; // reference line changing elements
@@ -371,8 +422,8 @@ private:
short getTwoDimCode();
short getWhiteCode();
short getBlackCode();
- short look13Bits();
- void eatBits(int bits) { inputBits -= bits; }
+ short lookBits(int n);
+ void eatBits(int n) { inputBits -= n; }
};
//------------------------------------------------------------------------
@@ -422,6 +473,7 @@ private:
DCTCompInfo compInfo[4]; // info for each component
int numComps; // number of components in image
int colorXform; // need YCbCr-to-RGB transform?
+ GBool gotAdobeMarker; // set if APP14 Adobe marker was present
int restartInterval; // restart interval, in MCUs
Guchar quantTables[4][64]; // quantization tables
int numQuantTables; // number of quantization tables
@@ -495,6 +547,7 @@ public:
virtual void reset();
virtual int getChar();
virtual int lookChar();
+ virtual int getRawChar();
virtual int getPos() { return str->getPos(); }
virtual GString *getPSFilter(char *indent);
virtual GBool isBinary(GBool last = gTrue);
@@ -505,6 +558,7 @@ public:
private:
Stream *str; // stream
+ StreamPredictor *pred; // predictor
Guchar buf[flateWindow]; // output data buffer
int index; // current index into output buffer
int remain; // number valid bytes in output buffer
diff --git a/pdf/xpdf/TextOutputDev.cc b/pdf/xpdf/TextOutputDev.cc
index 2d9ddde..6d675ef 100644
--- a/pdf/xpdf/TextOutputDev.cc
+++ b/pdf/xpdf/TextOutputDev.cc
@@ -19,7 +19,7 @@
#include "config.h"
#include "Error.h"
#include "GfxState.h"
-#include "GfxFont.h"
+#include "FontEncoding.h"
#include "TextOutputDev.h"
#include "TextOutputFontInfo.h"
@@ -34,8 +34,8 @@ static char *isoLatin1Subst[] = {
"S", // Scaron
"Y", // Ydieresis
"Z", // Zcaron
- "fi", // fi
- "fl", // fl
+ "fi", "fl", // ligatures
+ "ff", "ffi", "ffl", // ligatures
"i", // dotlessi
"l", // lslash
"oe", // oe
@@ -70,8 +70,8 @@ static char *ascii7Subst[] = {
"ae", // ae
"c", // ccedilla
"e", "e", "e", "e", // e{acute,circumflex,dieresis,grave}
- "fi", // fi
- "fl", // fl
+ "fi", "fl", // ligatures
+ "ff", "ffi", "ffl", // ligatures
"i", // dotlessi
"i", "i", "i", "i", // i{acute,circumflex,dieresis,grave}
"l", // lslash
@@ -94,6 +94,72 @@ static char *ascii7Subst[] = {
};
//------------------------------------------------------------------------
+// 16-bit fonts
+//------------------------------------------------------------------------
+
+#if JAPANESE_SUPPORT
+
+// CID 0 .. 96
+static Gushort japan12Map[96] = {
+ 0x2120, 0x2120, 0x212a, 0x2149, 0x2174, 0x2170, 0x2173, 0x2175, // 00 .. 07
+ 0x2147, 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x213e, 0x2123, // 08 .. 0f
+ 0x213f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, // 10 .. 17
+ 0x2337, 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, // 18 .. 1f
+ 0x2129, 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, // 20 .. 27
+ 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, // 28 .. 2f
+ 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, // 30 .. 37
+ 0x2357, 0x2358, 0x2359, 0x235a, 0x214e, 0x216f, 0x214f, 0x2130, // 38 .. 3f
+ 0x2132, 0x2146, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, // 40 .. 47
+ 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, // 48 .. 4f
+ 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, // 50 .. 57
+ 0x2377, 0x2378, 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2141 // 58 .. 5f
+};
+
+// CID 325 .. 421
+static Gushort japan12KanaMap1[97] = {
+ 0x2131, 0x2121, 0x2123, 0x2156, 0x2157, 0x2122, 0x2126, 0x2572,
+ 0x2521, 0x2523, 0x2525, 0x2527, 0x2529, 0x2563, 0x2565, 0x2567,
+ 0x2543, 0x213c, 0x2522, 0x2524, 0x2526, 0x2528, 0x252a, 0x252b,
+ 0x252d, 0x252f, 0x2531, 0x2533, 0x2535, 0x2537, 0x2539, 0x253b,
+ 0x253d, 0x253f, 0x2541, 0x2544, 0x2546, 0x2548, 0x254a, 0x254b,
+ 0x254c, 0x254d, 0x254e, 0x254f, 0x2552, 0x2555, 0x2558, 0x255b,
+ 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2564, 0x2566, 0x2568,
+ 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256f, 0x2573, 0x212b,
+ 0x212c, 0x212e, 0x2570, 0x2571, 0x256e, 0x2575, 0x2576, 0x2574,
+ 0x252c, 0x252e, 0x2530, 0x2532, 0x2534, 0x2536, 0x2538, 0x253a,
+ 0x253c, 0x253e, 0x2540, 0x2542, 0x2545, 0x2547, 0x2549, 0x2550,
+ 0x2551, 0x2553, 0x2554, 0x2556, 0x2557, 0x2559, 0x255a, 0x255c,
+ 0x255d
+};
+
+// CID 501 .. 598
+static Gushort japan12KanaMap2[98] = {
+ 0x212d, 0x212f, 0x216d, 0x214c, 0x214d, 0x2152, 0x2153, 0x2154,
+ 0x2155, 0x2158, 0x2159, 0x215a, 0x215b, 0x213d, 0x2121, 0x2472,
+ 0x2421, 0x2423, 0x2425, 0x2427, 0x2429, 0x2463, 0x2465, 0x2467,
+ 0x2443, 0x2422, 0x2424, 0x2426, 0x2428, 0x242a, 0x242b, 0x242d,
+ 0x242f, 0x2431, 0x2433, 0x2435, 0x2437, 0x2439, 0x243b, 0x243d,
+ 0x243f, 0x2441, 0x2444, 0x2446, 0x2448, 0x244a, 0x244b, 0x244c,
+ 0x244d, 0x244e, 0x244f, 0x2452, 0x2455, 0x2458, 0x245b, 0x245e,
+ 0x245f, 0x2460, 0x2461, 0x2462, 0x2464, 0x2466, 0x2468, 0x2469,
+ 0x246a, 0x246b, 0x246c, 0x246d, 0x246f, 0x2473, 0x2470, 0x2471,
+ 0x246e, 0x242c, 0x242e, 0x2430, 0x2432, 0x2434, 0x2436, 0x2438,
+ 0x243a, 0x243c, 0x243e, 0x2440, 0x2442, 0x2445, 0x2447, 0x2449,
+ 0x2450, 0x2451, 0x2453, 0x2454, 0x2456, 0x2457, 0x2459, 0x245a,
+ 0x245c, 0x245d
+};
+
+static char *japan12Roman[10] = {
+ "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"
+};
+
+static char *japan12Abbrev1[6] = {
+ "mm", "cm", "km", "mg", "kg", "cc"
+};
+
+#endif
+
+//------------------------------------------------------------------------
// TextString
//------------------------------------------------------------------------
@@ -193,15 +259,166 @@ void TextString::addChar(GfxState *state, double x, double y,
xMax = x + dx;
}
+void TextString::addChar16(GfxState *state, double x, double y,
+ double dx, double dy,
+ int c, GfxFontCharSet16 charSet) {
+ int c1, t1, t2;
+ int sub[8];
+ char *p;
+ int *q;
+ int i, j, n;
+
+ // get current index
+ i = text->getLength();
+
+ // convert the 16-bit character
+ c1 = 0;
+ sub[0] = 0;
+ switch (charSet) {
+
+ // convert Adobe-Japan1-2 to JIS X 0208-1983
+ case font16AdobeJapan12:
+#if JAPANESE_SUPPORT
+ if (c <= 96) {
+ c1 = 0x8080 + japan12Map[c];
+ } else if (c <= 632) {
+ if (c <= 230)
+ c1 = 0;
+ else if (c <= 324)
+ c1 = 0x8080 + japan12Map[c - 230];
+ else if (c <= 421)
+ c1 = 0x8080 + japan12KanaMap1[c - 325];
+ else if (c <= 500)
+ c1 = 0;
+ else if (c <= 598)
+ c1 = 0x8080 + japan12KanaMap2[c - 501];
+ else
+ c1 = 0;
+ } else if (c <= 1124) {
+ if (c <= 779) {
+ if (c <= 726)
+ c1 = 0xa1a1 + (c - 633);
+ else if (c <= 740)
+ c1 = 0xa2a1 + (c - 727);
+ else if (c <= 748)
+ c1 = 0xa2ba + (c - 741);
+ else if (c <= 755)
+ c1 = 0xa2ca + (c - 749);
+ else if (c <= 770)
+ c1 = 0xa2dc + (c - 756);
+ else if (c <= 778)
+ c1 = 0xa2f2 + (c - 771);
+ else
+ c1 = 0xa2fe;
+ } else if (c <= 841) {
+ if (c <= 789)
+ c1 = 0xa3b0 + (c - 780);
+ else if (c <= 815)
+ c1 = 0xa3c1 + (c - 790);
+ else
+ c1 = 0xa3e1 + (c - 816);
+ } else if (c <= 1010) {
+ if (c <= 924)
+ c1 = 0xa4a1 + (c - 842);
+ else
+ c1 = 0xa5a1 + (c - 925);
+ } else {
+ if (c <= 1034)
+ c1 = 0xa6a1 + (c - 1011);
+ else if (c <= 1058)
+ c1 = 0xa6c1 + (c - 1035);
+ else if (c <= 1091)
+ c1 = 0xa7a1 + (c - 1059);
+ else
+ c1 = 0xa7d1 + (c - 1092);
+ }
+ } else if (c <= 4089) {
+ t1 = (c - 1125) / 94;
+ t2 = (c - 1125) % 94;
+ c1 = 0xb0a1 + (t1 << 8) + t2;
+ } else if (c <= 7477) {
+ t1 = (c - 4090) / 94;
+ t2 = (c - 4090) % 94;
+ c1 = 0xd0a1 + (t1 << 8) + t2;
+ } else if (c <= 7554) {
+ c1 = 0;
+ } else if (c <= 7563) { // circled Arabic numbers 1..9
+ c1 = 0xa3b1 + (c - 7555);
+ } else if (c <= 7574) { // circled Arabic numbers 10..20
+ t1 = c - 7564 + 10;
+ sub[0] = 0xa3b0 + (t1 / 10);
+ sub[1] = 0xa3b0 + (t1 % 10);
+ sub[2] = 0;
+ c1 = -1;
+ } else if (c <= 7584) { // Roman numbers I..X
+ for (p = japan12Roman[c - 7575], q = sub; *p; ++p, ++q) {
+ *q = 0xa380 + *p;
+ }
+ *q = 0;
+ c1 = -1;
+ } else if (c <= 7632) {
+ if (c <= 7600) {
+ c1 = 0;
+ } else if (c <= 7606) {
+ for (p = japan12Abbrev1[c - 7601], q = sub; *p; ++p, ++q) {
+ *q = 0xa380 + *p;
+ }
+ *q = 0;
+ c1 = -1;
+ } else {
+ c1 = 0;
+ }
+ } else {
+ c1 = 0;
+ }
+#endif // JAPANESE_SUPPORT
+ break;
+ }
+
+ // append converted character to string
+ if (c1 == 0) {
+#if 0 //~
+ error(-1, "Unsupported Adobe-Japan1-2 character: %d", c);
+#endif
+ text->append(' ');
+ n = 1;
+ } else if (c1 > 0) {
+ text->append(c1 >> 8);
+ text->append(c1 & 0xff);
+ n = 2;
+ } else {
+ n = 0;
+ for (q = sub; *q; ++q) {
+ text->append(*q >> 8);
+ text->append(*q & 0xff);
+ n += 2;
+ }
+ }
+
+ // update position information
+ if (i+n > ((i+15) & ~15)) {
+ xRight = (double *)grealloc(xRight, ((i+n+15) & ~15) * sizeof(double));
+ }
+ if (i == 0) {
+ xMin = x;
+ }
+ for (j = 0; j < n; ++j) {
+ xRight[i+j] = x + dx;
+ }
+ xMax = x + dx;
+}
+
//------------------------------------------------------------------------
// TextPage
//------------------------------------------------------------------------
-TextPage::TextPage(GBool useASCII71) {
- useASCII7 = useASCII71;
+TextPage::TextPage(GBool useASCII7, GBool rawOrder) {
+ this->useASCII7 = useASCII7;
+ this->rawOrder = rawOrder;
curStr = NULL;
yxStrings = NULL;
xyStrings = NULL;
+ yxCur1 = yxCur2 = NULL;
}
TextPage::~TextPage() {
@@ -214,13 +431,47 @@ void TextPage::beginString(GfxState *state, GString *s, GBool hexCodes) {
void TextPage::addChar(GfxState *state, double x, double y,
double dx, double dy, Guchar c) {
- double x1, y1, w1, h1;
+ double x1, y1, w1, h1, dx2, dy2;
+ int n;
+ GBool hexCodes;
state->transform(x, y, &x1, &y1);
+ state->textTransformDelta(state->getCharSpace(), 0, &dx2, &dy2);
+ dx -= dx2;
+ dy -= dy2;
state->transformDelta(dx, dy, &w1, &h1);
+ n = curStr->text->getLength();
+ if (n > 0 &&
+ x1 - curStr->xRight[n-1] > 0.1 * (curStr->yMax - curStr->yMin)) {
+ hexCodes = curStr->hexCodes;
+ endString();
+ beginString(state, NULL, hexCodes);
+ }
curStr->addChar(state, x1, y1, w1, h1, c, useASCII7);
}
+void TextPage::addChar16(GfxState *state, double x, double y,
+ double dx, double dy, int c,
+ GfxFontCharSet16 charSet) {
+ double x1, y1, w1, h1, dx2, dy2;
+ int n;
+ GBool hexCodes;
+
+ state->transform(x, y, &x1, &y1);
+ state->textTransformDelta(state->getCharSpace(), 0, &dx2, &dy2);
+ dx -= dx2;
+ dy -= dy2;
+ state->transformDelta(dx, dy, &w1, &h1);
+ n = curStr->text->getLength();
+ if (n > 0 &&
+ x1 - curStr->xRight[n-1] > 0.1 * (curStr->yMax - curStr->yMin)) {
+ hexCodes = curStr->hexCodes;
+ endString();
+ beginString(state, NULL, hexCodes);
+ }
+ curStr->addChar16(state, x1, y1, w1, h1, c, charSet);
+}
+
void TextPage::endString() {
TextString *p1, *p2;
double h, y1, y2;
@@ -245,10 +496,25 @@ void TextPage::endString() {
h = curStr->yMax - curStr->yMin;
y1 = curStr->yMin + 0.5 * h;
y2 = curStr->yMin + 0.8 * h;
- for (p1 = NULL, p2 = yxStrings; p2; p1 = p2, p2 = p2->yxNext) {
- if (y1 < p2->yMin || (y2 < p2->yMax && curStr->xMax < p2->xMin))
- break;
+ if (rawOrder) {
+ p1 = yxCur1;
+ p2 = NULL;
+ } else if ((!yxCur1 ||
+ (y1 >= yxCur1->yMin &&
+ (y2 >= yxCur1->yMax || curStr->xMax >= yxCur1->xMin))) &&
+ (!yxCur2 ||
+ (y1 < yxCur2->yMin ||
+ (y2 < yxCur2->yMax && curStr->xMax < yxCur2->xMin)))) {
+ p1 = yxCur1;
+ p2 = yxCur2;
+ } else {
+ for (p1 = NULL, p2 = yxStrings; p2; p1 = p2, p2 = p2->yxNext) {
+ if (y1 < p2->yMin || (y2 < p2->yMax && curStr->xMax < p2->xMin))
+ break;
+ }
+ yxCur2 = p2;
}
+ yxCur1 = curStr;
if (p1)
p1->yxNext = curStr;
else
@@ -275,9 +541,17 @@ void TextPage::coalesce() {
space = str1->yMax - str1->yMin;
d = str2->xMin - str1->xMax;
#if 0 //~tmp
- if (str2->yMin < str1->yMax && d > -0.1 * space && d < 0.2 * space) {
+ if (((rawOrder &&
+ ((str2->yMin >= str1->yMin && str2->yMin <= str1->yMax) ||
+ (str2->yMax >= str1->yMin && str2->yMax <= str1->yMax))) ||
+ (!rawOrder && str2->yMin < str1->yMax)) &&
+ d > -0.1 * space && d < 0.2 * space) {
#else
- if (str2->yMin < str1->yMax && d > -0.5 * space && d < space) {
+ if (((rawOrder &&
+ ((str2->yMin >= str1->yMin && str2->yMin <= str1->yMax) ||
+ (str2->yMax >= str1->yMin && str2->yMax <= str1->yMax))) ||
+ (!rawOrder && str2->yMin < str1->yMax)) &&
+ d > -0.5 * space && d < space) {
#endif
n = str1->text->getLength();
if (d > 0.1 * space)
@@ -467,8 +741,13 @@ void TextPage::dump(FILE *f) {
for (str1 = yxStrings; str1; str1 = str1->yxNext) {
// line this string up with the correct column
- for (; col1 < str1->col; ++col1)
- fputc(' ', f);
+ if (rawOrder && col1 == 0) {
+ col1 = str1->col;
+ } else {
+ for (; col1 < str1->col; ++col1) {
+ fputc(' ', f);
+ }
+ }
// print the string
fputs(str1->text->getCString(), f);
@@ -482,10 +761,13 @@ void TextPage::dump(FILE *f) {
// if we've hit the end of the line...
#if 0 //~
- if (!(str1->yxNext && str1->yxNext->yMin < str1->yMax &&
+ if (!(str1->yxNext &&
+ !(rawOrder && str1->yxNext->yMax < str1->yMin) &&
+ str1->yxNext->yMin < str1->yMax &&
str1->yxNext->xMin >= str1->xMax)) {
#else
if (!(str1->yxNext &&
+ !(rawOrder && str1->yxNext->yMax < str1->yMin) &&
str1->yxNext->yMin < 0.2*str1->yMin + 0.8*str1->yMax &&
str1->yxNext->xMin >= str1->xMax)) {
#endif
@@ -508,8 +790,12 @@ void TextPage::dump(FILE *f) {
// print the space
d = (int)((yMin - yMax) / (str1->yMax - str1->yMin) + 0.5);
- for (; d > 0; --d)
+ if (rawOrder && d > 2) {
+ d = 2;
+ }
+ for (; d > 0; --d) {
fputc('\n', f);
+ }
}
// set up for next line
@@ -532,14 +818,16 @@ void TextPage::clear() {
}
yxStrings = NULL;
xyStrings = NULL;
+ yxCur1 = yxCur2 = NULL;
}
//------------------------------------------------------------------------
// TextOutputDev
//------------------------------------------------------------------------
-TextOutputDev::TextOutputDev(char *fileName, GBool useASCII7) {
+TextOutputDev::TextOutputDev(char *fileName, GBool useASCII7, GBool rawOrder) {
text = NULL;
+ this->rawOrder = rawOrder;
ok = gTrue;
// open file
@@ -559,7 +847,7 @@ TextOutputDev::TextOutputDev(char *fileName, GBool useASCII7) {
}
// set up text object
- text = new TextPage(useASCII7);
+ text = new TextPage(useASCII7, rawOrder);
}
TextOutputDev::~TextOutputDev() {
@@ -590,7 +878,7 @@ void TextOutputDev::updateFont(GfxState *state) {
// look for hex char codes in subsetted font
hexCodes = gFalse;
- if ((font = state->getFont())) {
+ if ((font = state->getFont()) && !font->is16Bit()) {
for (c = 0; c < 256; ++c) {
if ((charName = font->getCharName(c))) {
if ((charName[0] == 'B' || charName[0] == 'C' ||
@@ -621,6 +909,11 @@ void TextOutputDev::drawChar(GfxState *state, double x, double y,
text->addChar(state, x, y, dx, dy, c);
}
+void TextOutputDev::drawChar16(GfxState *state, double x, double y,
+ double dx, double dy, int c) {
+ text->addChar16(state, x, y, dx, dy, c, state->getFont()->getCharSet16());
+}
+
GBool TextOutputDev::findText(char *s, GBool top, GBool bottom,
double *xMin, double *yMin,
double *xMax, double *yMax) {
diff --git a/pdf/xpdf/TextOutputDev.h b/pdf/xpdf/TextOutputDev.h
index 8c1cc77..f13a23a 100644
--- a/pdf/xpdf/TextOutputDev.h
+++ b/pdf/xpdf/TextOutputDev.h
@@ -15,10 +15,10 @@
#include <stdio.h>
#include "gtypes.h"
+#include "GfxFont.h"
#include "OutputDev.h"
class GfxState;
-class GfxFont;
class GString;
//------------------------------------------------------------------------
@@ -39,6 +39,11 @@ public:
double dx, double dy,
Guchar c, GBool useASCII7);
+ // Add a 16-bit character to the string.
+ void addChar16(GfxState *state, double x, double y,
+ double dx, double dy,
+ int c, GfxFontCharSet16 charSet);
+
private:
double xMin, xMax; // bounding box x coordinates
@@ -61,7 +66,7 @@ class TextPage {
public:
// Constructor.
- TextPage(GBool useASCII71);
+ TextPage(GBool useASCII7, GBool rawOrder);
// Destructor.
~TextPage();
@@ -73,6 +78,11 @@ public:
void addChar(GfxState *state, double x, double y,
double dx, double dy, Guchar c);
+ // Add a 16-bit character to the current string.
+ void addChar16(GfxState *state, double x, double y,
+ double dx, double dy, int c,
+ GfxFontCharSet16 charSet);
+
// End the current string, sorting it into the list of strings.
void endString();
@@ -101,11 +111,13 @@ public:
private:
GBool useASCII7; // use 7-bit ASCII?
+ GBool rawOrder; // keep strings in content stream order
TextString *curStr; // currently active string
TextString *yxStrings; // strings in y-major order
TextString *xyStrings; // strings in x-major order
+ TextString *yxCur1, *yxCur2; // cursors for yxStrings list
};
//------------------------------------------------------------------------
@@ -118,8 +130,10 @@ public:
// Open a text output file. If <fileName> is NULL, no file is written
// (this is useful, e.g., for searching text). If <useASCII7> is true,
// text is converted to 7-bit ASCII; otherwise, text is converted to
- // 8-bit ISO Latin-1.
- TextOutputDev(char *fileName, GBool useASCII7);
+ // 8-bit ISO Latin-1. <useASCII7> should also be set for Japanese
+ // (EUC-JP) text. If <rawOrder> is true, the text is kept in content
+ // stream order.
+ TextOutputDev(char *fileName, GBool useASCII7, GBool rawOrder);
// Destructor.
virtual ~TextOutputDev();
@@ -152,6 +166,8 @@ public:
virtual void endString(GfxState *state);
virtual void drawChar(GfxState *state, double x, double y,
double dx, double dy, Guchar c);
+ virtual void drawChar16(GfxState *state, double x, double y,
+ double dx, double dy, int c);
//----- special access
@@ -169,6 +185,7 @@ private:
FILE *f; // text file
GBool needClose; // need to close the file?
TextPage *text; // text for the current page
+ GBool rawOrder; // keep text in content stream order
GBool hexCodes; // subsetted font with hex char codes
GBool ok; // set up ok?
};
diff --git a/pdf/xpdf/TextOutputFontInfo.h b/pdf/xpdf/TextOutputFontInfo.h
index 0f385cb..1405108 100644
--- a/pdf/xpdf/TextOutputFontInfo.h
+++ b/pdf/xpdf/TextOutputFontInfo.h
@@ -15,7 +15,7 @@
// Character encodings.
//------------------------------------------------------------------------
-#define ascii7EncodingSize 208
+#define ascii7EncodingSize 211
static char *ascii7EncodingNames[ascii7EncodingSize] = {
NULL,
NULL,
@@ -192,6 +192,9 @@ static char *ascii7EncodingNames[ascii7EncodingSize] = {
"egrave",
"fi",
"fl",
+ "ff",
+ "ffi",
+ "ffl",
"dotlessi",
"iacute",
"icircumflex",
@@ -226,10 +229,10 @@ static char *ascii7EncodingNames[ascii7EncodingSize] = {
"registered",
"trademark"
};
-static GfxFontEncoding ascii7Encoding(ascii7EncodingNames,
- ascii7EncodingSize);
+static FontEncoding ascii7Encoding(ascii7EncodingNames,
+ ascii7EncodingSize);
-#define isoLatin1EncodingSize 276
+#define isoLatin1EncodingSize 279
static char *isoLatin1EncodingNames[isoLatin1EncodingSize] = {
NULL,
NULL,
@@ -494,6 +497,9 @@ static char *isoLatin1EncodingNames[isoLatin1EncodingSize] = {
"Zcaron",
"fi",
"fl",
+ "ff",
+ "ffi",
+ "ffl",
"dotlessi",
"lslash",
"oe",
@@ -508,7 +514,7 @@ static char *isoLatin1EncodingNames[isoLatin1EncodingSize] = {
"quotesingle",
"trademark"
};
-static GfxFontEncoding isoLatin1Encoding(isoLatin1EncodingNames,
- isoLatin1EncodingSize);
+static FontEncoding isoLatin1Encoding(isoLatin1EncodingNames,
+ isoLatin1EncodingSize);
#endif
diff --git a/pdf/xpdf/XOutputDev.cc b/pdf/xpdf/XOutputDev.cc
index 3e762f6..119162c 100644
--- a/pdf/xpdf/XOutputDev.cc
+++ b/pdf/xpdf/XOutputDev.cc
@@ -13,6 +13,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
+#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
@@ -22,6 +23,8 @@
#include "Stream.h"
#include "GfxState.h"
#include "GfxFont.h"
+#include "FontFile.h"
+#include "FontEncoding.h"
#include "Error.h"
#include "Params.h"
#include "TextOutputDev.h"
@@ -50,9 +53,33 @@ typedef char *XPointer;
// Parameters
//------------------------------------------------------------------------
-GBool installCmap;
+GBool installCmap = gFalse;
-int rgbCubeSize;
+int rgbCubeSize = defaultRGBCube;
+
+#if HAVE_T1LIB_H
+GString *t1libControl = NULL;
+#endif
+
+GString *t1Courier = NULL;
+GString *t1CourierBold = NULL;
+GString *t1CourierBoldOblique = NULL;
+GString *t1CourierOblique = NULL;
+GString *t1Helvetica = NULL;
+GString *t1HelveticaBold = NULL;
+GString *t1HelveticaBoldOblique = NULL;
+GString *t1HelveticaOblique = NULL;
+GString *t1Symbol = NULL;
+GString *t1TimesBold = NULL;
+GString *t1TimesBoldItalic = NULL;
+GString *t1TimesItalic = NULL;
+GString *t1TimesRoman = NULL;
+GString *t1ZapfDingbats = NULL;
+
+GBool useEUCJP = gFalse;
+#if JAPANESE_SUPPORT
+GString *japan12Font = NULL;
+#endif
//------------------------------------------------------------------------
// Font map
@@ -61,52 +88,25 @@ int rgbCubeSize;
struct FontMapEntry {
char *pdfFont;
char *xFont;
- GfxFontEncoding *encoding;
+ GString **t1Font;
+ FontEncoding *encoding;
};
static FontMapEntry fontMap[] = {
- {"Courier",
- "-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Courier-Bold",
- "-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Courier-BoldOblique",
- "-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Courier-Oblique",
- "-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Helvetica",
- "-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Helvetica-Bold",
- "-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Helvetica-BoldOblique",
- "-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Helvetica-Oblique",
- "-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Symbol",
- "-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific",
- &symbolEncoding},
- {"Times-Bold",
- "-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Times-BoldItalic",
- "-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Times-Italic",
- "-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"Times-Roman",
- "-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1",
- &isoLatin1Encoding},
- {"ZapfDingbats",
- "-*-zapfdingbats-medium-r-normal-*-%s-*-*-*-*-*-*-*",
- &zapfDingbatsEncoding},
+ {"Courier", "-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Courier, &isoLatin1Encoding},
+ {"Courier-Bold", "-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBold, &isoLatin1Encoding},
+ {"Courier-BoldOblique", "-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBoldOblique, &isoLatin1Encoding},
+ {"Courier-Oblique", "-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierOblique, &isoLatin1Encoding},
+ {"Helvetica", "-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Helvetica, &isoLatin1Encoding},
+ {"Helvetica-Bold", "-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBold, &isoLatin1Encoding},
+ {"Helvetica-BoldOblique", "-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBoldOblique, &isoLatin1Encoding},
+ {"Helvetica-Oblique", "-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaOblique, &isoLatin1Encoding},
+ {"Symbol", "-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, &symbolEncoding},
+ {"Times-Bold", "-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBold, &isoLatin1Encoding},
+ {"Times-BoldItalic", "-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBoldItalic, &isoLatin1Encoding},
+ {"Times-Italic", "-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesItalic, &isoLatin1Encoding},
+ {"Times-Roman", "-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesRoman, &isoLatin1Encoding},
+ {"ZapfDingbats", "-*-zapfdingbats-medium-r-normal-*-%s-*-*-*-*-*-*-*", &t1ZapfDingbats, &zapfDingbatsEncoding},
{NULL}
};
@@ -118,27 +118,28 @@ static FontMapEntry *userFontMap;
struct FontSubst {
char *xFont;
+ GString **t1Font;
double mWidth;
};
// index: {symbolic:12, fixed:8, serif:4, sans-serif:0} + bold*2 + italic
static FontSubst fontSubst[16] = {
- {"-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", 0.833},
- {"-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", 0.833},
- {"-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", 0.889},
- {"-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", 0.889},
- {"-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", 0.788},
- {"-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1", 0.722},
- {"-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", 0.833},
- {"-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1", 0.778},
- {"-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", 0.600},
- {"-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", 0.600},
- {"-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", 0.600},
- {"-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", 0.600},
- {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", 0.576},
- {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", 0.576},
- {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", 0.576},
- {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", 0.576}
+ {"-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Helvetica, 0.833},
+ {"-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaOblique, 0.833},
+ {"-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBold, 0.889},
+ {"-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBoldOblique, 0.889},
+ {"-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesRoman, 0.788},
+ {"-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesItalic, 0.722},
+ {"-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBold, 0.833},
+ {"-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBoldItalic, 0.778},
+ {"-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Courier, 0.600},
+ {"-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierOblique, 0.600},
+ {"-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBold, 0.600},
+ {"-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBoldOblique, 0.600},
+ {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576},
+ {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576},
+ {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576},
+ {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576}
};
//------------------------------------------------------------------------
@@ -147,7 +148,8 @@ static FontSubst fontSubst[16] = {
#if JAPANESE_SUPPORT
-static char *japan12Font = "-*-fixed-medium-r-normal-*-%s-*-*-*-*-*-jisx0208.1983-0";
+static char *japan12DefFont =
+ "-*-fixed-medium-r-normal-*-%s-*-*-*-*-*-jisx0208.1983-0";
// CID 0 .. 96
static Gushort japan12Map[96] = {
@@ -219,7 +221,7 @@ static char *japan12Abbrev1[6] = {
#define firstConstrChar 0x105
#define lastConstrChar 0x106
#define firstMultiChar 0x107
-#define lastMultiChar 0x10d
+#define lastMultiChar 0x110
// substituted chars
static Guchar substChars[] = {
@@ -238,178 +240,184 @@ static Guchar substChars[] = {
static char *multiChars[] = {
"fi", // 107: fi
"fl", // 108: fl
- "OE", // 109: OE
- "oe", // 10a: oe
- "...", // 10b: ellipsis
- "``", // 10c: quotedblleft
- "''" // 10d: quotedblright
+ "ff", // 109: ff
+ "ffi", // 10a: ffi
+ "ffl", // 10b: ffl
+ "OE", // 10c: OE
+ "oe", // 10d: oe
+ "...", // 10e: ellipsis
+ "``", // 10f: quotedblleft
+ "''" // 110: quotedblright
};
// ignored chars
-// 10c: Lslash
-// 10d: Scaron
-// 10e: Zcaron
-// 10f: Ydieresis
-// 110: breve
-// 111: caron
-// 112: circumflex
-// 113: dagger
-// 114: daggerdbl
-// 115: dotaccent
-// 116: dotlessi
-// 117: florin
-// 118: grave
-// 119: guilsinglleft
-// 11a: guilsinglright
-// 11b: hungarumlaut
-// 11c: lslash
-// 11d: ogonek
-// 11e: perthousand
-// 11f: quotedblbase
-// 120: quotesinglbase
-// 121: scaron
-// 122: tilde
-// 123: zcaron
+// 111: Lslash
+// : Scaron
+// : Zcaron
+// : Ydieresis
+// : breve
+// : caron
+// : circumflex
+// : dagger
+// : daggerdbl
+// : dotaccent
+// : dotlessi
+// : florin
+// : grave
+// : guilsinglleft
+// : guilsinglright
+// : hungarumlaut
+// : lslash
+// : ogonek
+// : perthousand
+// : quotedblbase
+// : quotesinglbase
+// : scaron
+// : tilde
+// : zcaron
//------------------------------------------------------------------------
// XOutputFont
//------------------------------------------------------------------------
-// Note: if real font is substantially narrower than substituted
-// font, the size is reduced accordingly.
XOutputFont::XOutputFont(GfxFont *gfxFont, double m11, double m12,
- double m21, double m22, Display *display1) {
- GString *pdfFont;
- FontMapEntry *p;
- GfxFontEncoding *encoding;
- char *fontNameFmt;
- char fontName[200], fontSize[100];
- GBool rotated;
- double size;
- int startSize, sz;
- int index;
- int code, code2;
- double w1, w2, v;
- double *fm;
+ double m21, double m22, Display *display,
+ XOutputFontCache *cache) {
+ int code;
char *charName;
- int n;
- // init
id = gfxFont->getID();
- mat11 = m11;
- mat12 = m12;
- mat21 = m21;
- mat22 = m22;
- display = display1;
- xFont = NULL;
- hex = gFalse;
+ this->display = display;
+ tm11 = m11;
+ tm12 = m12;
+ tm21 = m21;
+ tm22 = m22;
- // construct X font name
- if (gfxFont->is16Bit()) {
- fontNameFmt = fontSubst[0].xFont;
- switch (gfxFont->getCharSet16()) {
- case font16AdobeJapan12:
-#if JAPANESE_SUPPORT
- fontNameFmt = japan12Font;
-#endif
- break;
- }
- } else {
- pdfFont = gfxFont->getName();
- if (pdfFont) {
- for (p = userFontMap; p->pdfFont; ++p) {
- if (!pdfFont->cmp(p->pdfFont))
+ // check for hex char names
+ hex = gFalse;
+ if (!gfxFont->is16Bit()) {
+ for (code = 0; code < 256; ++code) {
+ if ((charName = gfxFont->getCharName(code))) {
+ if ((charName[0] == 'B' || charName[0] == 'C' ||
+ charName[0] == 'G') &&
+ strlen(charName) == 3 &&
+ ((charName[1] >= 'a' && charName[1] <= 'f') ||
+ (charName[1] >= 'A' && charName[1] <= 'F') ||
+ (charName[2] >= 'a' && charName[2] <= 'f') ||
+ (charName[2] >= 'A' && charName[2] <= 'F'))) {
+ hex = gTrue;
break;
- }
- if (!p->pdfFont) {
- for (p = fontMap; p->pdfFont; ++p) {
- if (!pdfFont->cmp(p->pdfFont))
- break;
- }
- }
- } else {
- p = NULL;
- }
- if (p && p->pdfFont) {
- fontNameFmt = p->xFont;
- encoding = p->encoding;
- } else {
- encoding = &isoLatin1Encoding;
-//~ Some non-symbolic fonts are tagged as symbolic.
-// if (gfxFont->isSymbolic()) {
-// index = 12;
-// encoding = symbolEncoding;
-// } else
- if (gfxFont->isFixedWidth()) {
- index = 8;
- } else if (gfxFont->isSerif()) {
- index = 4;
- } else {
- index = 0;
- }
- if (gfxFont->isBold())
- index += 2;
- if (gfxFont->isItalic())
- index += 1;
- if ((code = gfxFont->getCharCode("m")) >= 0)
- w1 = gfxFont->getWidth(code);
- else
- w1 = 0;
- w2 = fontSubst[index].mWidth;
- if (gfxFont->getType() == fontType3) {
- // This is a hack which makes it possible to substitute for some
- // Type 3 fonts. The problem is that it's impossible to know what
- // the base coordinate system used in the font is without actually
- // rendering the font. This code tries to guess by looking at the
- // width of the character 'm' (which breaks if the font is a
- // subset that doesn't contain 'm').
- if (w1 > 0 && (w1 > 1.1 * w2 || w1 < 0.9 * w2)) {
- w1 /= w2;
- mat11 *= w1;
- mat12 *= w1;
- mat21 *= w1;
- mat22 *= w1;
- }
- fm = gfxFont->getFontMatrix();
- v = (fm[0] == 0) ? 1 : (fm[3] / fm[0]);
- mat12 *= v;
- mat22 *= v;
- } else if (!gfxFont->isSymbolic()) {
- if (w1 > 0.01 && w1 < 0.9 * w2) {
- w1 /= w2;
- if (w1 < 0.8)
- w1 = 0.8;
- mat11 *= w1;
- mat12 *= w1;
- mat21 *= w1;
- mat22 *= w1;
}
}
- fontNameFmt = fontSubst[index].xFont;
}
+ }
+}
+
+XOutputFont::~XOutputFont() {
+}
+
+#if HAVE_T1LIB_H
+//------------------------------------------------------------------------
+// XOutputT1Font
+//------------------------------------------------------------------------
+
+XOutputT1Font::XOutputT1Font(GfxFont *gfxFont, GString *pdfBaseFont,
+ double m11, double m12, double m21, double m22,
+ double size, double ntm11, double ntm12,
+ double ntm21, double ntm22,
+ Display *display, XOutputFontCache *cache):
+ XOutputFont(gfxFont, m11, m12, m21, m22, display, cache)
+{
+ Ref embRef;
+ T1_TMATRIX xform;
+
+ t1ID = -1;
+ t1libAA = cache->getT1libAA();
+
+ // keep size info (for drawChar())
+ this->size = (float)size;
+
+ // we can only handle 8-bit, Type 1/1C, with embedded font file
+ // or user-specified base fonts
+ //~ also look for external font files
+ if (!(pdfBaseFont ||
+ (!gfxFont->is16Bit() &&
+ (gfxFont->getType() == fontType1 ||
+ gfxFont->getType() == fontType1C) &&
+ gfxFont->getEmbeddedFontID(&embRef)))) {
+ return;
+ }
+
+ // load the font
+ if ((t1ID = cache->getT1Font(gfxFont, pdfBaseFont)) < 0)
+ return;
+
+ // transform the font
+ xform.cxx = ntm11;
+ xform.cxy = -ntm12;
+ xform.cyx = ntm21;
+ xform.cyy = -ntm22;
+ T1_TransformFont(t1ID, &xform);
+}
+
+XOutputT1Font::~XOutputT1Font() {
+ if (t1ID >= 0) {
+ T1_DeleteFont(t1ID);
+ }
+}
- // Construct forward and reverse map.
- // This tries to deal with font subset character names of the
- // form 'Bxx', 'Cxx', 'Gxx', with decimal or hex numbering.
+GBool XOutputT1Font::isOk() {
+ return t1ID >= 0;
+}
+
+void XOutputT1Font::updateGC(GC gc) {
+}
+
+void XOutputT1Font::drawChar(GfxState *state, Pixmap pixmap, GC gc,
+ double x, double y, int c) {
+ if (t1libAA) {
+ T1_AASetCharX(pixmap, gc, 0, xoutRound(x), xoutRound(y),
+ t1ID, c, size, NULL);
+ } else {
+ T1_SetCharX(pixmap, gc, 0, xoutRound(x), xoutRound(y),
+ t1ID, c, size, NULL);
+ }
+}
+#endif // HAVE_T1LIB_H
+
+//------------------------------------------------------------------------
+// XOutputServerFont
+//------------------------------------------------------------------------
+
+XOutputServerFont::XOutputServerFont(GfxFont *gfxFont, char *fontNameFmt,
+ FontEncoding *encoding,
+ double m11, double m12,
+ double m21, double m22,
+ double size,
+ double ntm11, double ntm12,
+ double ntm21, double ntm22,
+ Display *display,
+ XOutputFontCache *cache):
+ XOutputFont(gfxFont, m11, m12, m21, m22, display, cache)
+{
+ char fontName[200], fontSize[100];
+ GBool rotated;
+ int startSize, sz;
+ int code, code2;
+ char *charName;
+ int n;
+
+ xFont = NULL;
+
+ // Construct forward and reverse map.
+ // This tries to deal with font subset character names of the
+ // form 'Bxx', 'Cxx', 'Gxx', with decimal or hex numbering.
+ if (!gfxFont->is16Bit()) {
for (code = 0; code < 256; ++code)
revMap[code] = 0;
if (encoding) {
for (code = 0; code < 256; ++code) {
if ((charName = gfxFont->getCharName(code))) {
- if ((charName[0] == 'B' || charName[0] == 'C' ||
- charName[0] == 'G') &&
- strlen(charName) == 3 &&
- ((charName[1] >= 'a' && charName[1] <= 'f') ||
- (charName[1] >= 'A' && charName[1] <= 'F') ||
- (charName[2] >= 'a' && charName[2] <= 'f') ||
- (charName[2] >= 'A' && charName[2] <= 'F'))) {
- hex = gTrue;
- break;
- }
- }
- }
- for (code = 0; code < 256; ++code) {
- if ((charName = gfxFont->getCharName(code))) {
if ((code2 = encoding->getCharCode(charName)) < 0) {
n = strlen(charName);
if (hex && n == 3 &&
@@ -465,28 +473,27 @@ XOutputFont::XOutputFont(GfxFont *gfxFont, double m11, double m12,
}
}
- // compute size, normalize matrix
- size = sqrt(mat21*mat21 + mat22*mat22);
- mat11 = mat11 / size;
- mat12 = -mat12 / size;
- mat21 = mat21 / size;
- mat22 = -mat22 / size;
- startSize = (int)size;
+ // adjust transform for the X transform convention
+ ntm12 = -ntm12;
+ ntm22 = -ntm22;
// try to get a rotated font?
- rotated = !(mat11 > 0 && mat22 > 0 && fabs(mat11/mat22 - 1) < 0.2 &&
- fabs(mat12) < 0.01 && fabs(mat21) < 0.01);
+ rotated = !(ntm11 > 0 && ntm22 > 0 &&
+ fabs(ntm11 / ntm22 - 1) < 0.2 &&
+ fabs(ntm12) < 0.01 &&
+ fabs(ntm21) < 0.01);
// open X font -- if font is not found (which means the server can't
// scale fonts), try progressively smaller and then larger sizes
//~ This does a linear search -- it should get a list of fonts from
//~ the server and pick the closest.
+ startSize = (int)size;
if (rotated)
sprintf(fontSize, "[%s%0.2f %s%0.2f %s%0.2f %s%0.2f]",
- mat11<0 ? "~" : "", fabs(mat11 * startSize),
- mat12<0 ? "~" : "", fabs(mat12 * startSize),
- mat21<0 ? "~" : "", fabs(mat21 * startSize),
- mat22<0 ? "~" : "", fabs(mat22 * startSize));
+ ntm11<0 ? "~" : "", fabs(ntm11 * size),
+ ntm12<0 ? "~" : "", fabs(ntm12 * size),
+ ntm21<0 ? "~" : "", fabs(ntm21 * size),
+ ntm22<0 ? "~" : "", fabs(ntm22 * size));
else
sprintf(fontSize, "%d", startSize);
sprintf(fontName, fontNameFmt, fontSize);
@@ -515,79 +522,518 @@ XOutputFont::XOutputFont(GfxFont *gfxFont, double m11, double m12,
}
}
-XOutputFont::~XOutputFont() {
+XOutputServerFont::~XOutputServerFont() {
if (xFont)
XFreeFont(display, xFont);
}
+GBool XOutputServerFont::isOk() {
+ return xFont != NULL;
+}
+
+void XOutputServerFont::updateGC(GC gc) {
+ XSetFont(display, gc, xFont->fid);
+}
+
+void XOutputServerFont::drawChar(GfxState *state, Pixmap pixmap, GC gc,
+ double x, double y, int c) {
+ GfxFont *gfxFont;
+ Gushort c1;
+ char buf;
+ char *p;
+ int n, i;
+ double tx;
+
+ c1 = map[c];
+ if (c1 <= lastRegularChar) {
+ buf = (char)c1;
+ XDrawString(display, pixmap, gc, xoutRound(x), xoutRound(y), &buf, 1);
+ } else if (c1 <= lastSubstChar) {
+ buf = (char)substChars[c1 - firstSubstChar];
+ XDrawString(display, pixmap, gc, xoutRound(x), xoutRound(y), &buf, 1);
+ } else if (c1 <= lastConstrChar) {
+ gfxFont = state->getFont();
+ //~ need to deal with rotated text here
+ switch (c1 - firstConstrChar) {
+ case 0: // bullet
+ tx = 0.25 * state->getTransformedFontSize() * gfxFont->getWidth(c);
+ XFillRectangle(display, pixmap, gc,
+ xoutRound(x + tx),
+ xoutRound(y - 0.4 * xFont->ascent - tx),
+ xoutRound(2 * tx), xoutRound(2 * tx));
+ break;
+ case 1: // trademark
+//~ this should use a smaller font
+// tx = state->getTransformedFontSize() *
+// (gfxFont->getWidth(c) -
+// gfxFont->getWidth(font->revMap['M']));
+ tx = 0.9 * state->getTransformedFontSize() *
+ gfxFont->getWidth(revMap['T']);
+ y -= 0.33 * (double)xFont->ascent;
+ buf = 'T';
+ XDrawString(display, pixmap, gc,
+ xoutRound(x), xoutRound(y), &buf, 1);
+ x += tx;
+ buf = 'M';
+ XDrawString(display, pixmap, gc,
+ xoutRound(x), xoutRound(y), &buf, 1);
+ break;
+ }
+ } else if (c1 <= lastMultiChar) {
+ gfxFont = state->getFont();
+ p = multiChars[c1 - firstMultiChar];
+ n = strlen(p);
+ tx = gfxFont->getWidth(c);
+ tx -= gfxFont->getWidth(revMap[p[n-1]]);
+ tx = tx * state->getTransformedFontSize() / (double)(n - 1);
+ for (i = 0; i < n; ++i) {
+ XDrawString(display, pixmap, gc,
+ xoutRound(x), xoutRound(y), p + i, 1);
+ x += tx;
+ }
+ }
+}
+
//------------------------------------------------------------------------
// XOutputFontCache
//------------------------------------------------------------------------
-XOutputFontCache::XOutputFontCache(Display *display1) {
+XOutputFontCache::XOutputFontCache(Display *display) {
+ this->display = display;
+#if HAVE_T1LIB_H
+ t1Init = gFalse;
+ if (t1libControl) {
+ useT1lib = t1libControl->cmp("none") != 0;
+ t1libAA = t1libControl->cmp("plain") != 0;
+ t1libAAHigh = t1libControl->cmp("high") == 0;
+ } else {
+ useT1lib = gFalse;
+ t1libAA = gFalse;
+ t1libAAHigh = gFalse;
+ }
+#endif
+ clear();
+}
+
+XOutputFontCache::~XOutputFontCache() {
+ delFonts();
+}
+
+void XOutputFontCache::startDoc(int screenNum, Guint depth,
+ Colormap colormap) {
+ delFonts();
+ clear();
+
+#if HAVE_T1LIB_H
+ if (useT1lib) {
+ if (T1_InitLib(NO_LOGFILE | IGNORE_CONFIGFILE | IGNORE_FONTDATABASE |
+ T1_NO_AFM)) {
+ if (t1libAA) {
+ T1_AASetLevel(t1libAAHigh ? T1_AA_HIGH : T1_AA_LOW);
+ if (depth <= 8)
+ T1_AASetBitsPerPixel(8);
+ else if (depth <= 16)
+ T1_AASetBitsPerPixel(16);
+ else
+ T1_AASetBitsPerPixel(32);
+ }
+ T1_SetX11Params(display, DefaultVisual(display, screenNum),
+ depth, colormap);
+ t1Init = gTrue;
+ } else {
+ useT1lib = gFalse;
+ }
+ }
+#endif // HAVE_T1LIB_H
+}
+
+void XOutputFontCache::delFonts() {
int i;
- display = display1;
- for (i = 0; i < fontCacheSize; ++i)
- fonts[i] = NULL;
- numFonts = 0;
+#if HAVE_T1LIB_H
+ // delete Type 1 fonts
+ for (i = 0; i < nT1Fonts; ++i)
+ delete t1Fonts[i];
+ for (i = 0; i < t1BaseFontsSize && t1BaseFonts[i].num >= 0; ++i) {
+ T1_DeleteFont(t1BaseFonts[i].t1ID);
+ gfree(t1BaseFonts[i].encStr);
+ gfree(t1BaseFonts[i].enc);
+ }
+ gfree(t1BaseFonts);
+ if (t1Init) {
+ T1_CloseLib();
+ }
+#endif
+
+ // delete server fonts
+ for (i = 0; i < nServerFonts; ++i)
+ delete serverFonts[i];
}
-XOutputFontCache::~XOutputFontCache() {
+void XOutputFontCache::clear() {
int i;
- for (i = 0; i < numFonts; ++i)
- delete fonts[i];
+#if HAVE_T1LIB_H
+ // clear Type 1 font cache
+ for (i = 0; i < t1FontCacheSize; ++i)
+ t1Fonts[i] = NULL;
+ nT1Fonts = 0;
+ t1BaseFonts = NULL;
+ t1BaseFontsSize = 0;
+#endif
+
+ // clear server font cache
+ for (i = 0; i < serverFontCacheSize; ++i)
+ serverFonts[i] = NULL;
+ nServerFonts = 0;
}
XOutputFont *XOutputFontCache::getFont(GfxFont *gfxFont,
double m11, double m12,
double m21, double m22) {
- XOutputFont *font;
+#if HAVE_T1LIB_H
+ XOutputT1Font *t1Font;
+#endif
+ XOutputServerFont *serverFont;
+ FontMapEntry *fme;
+ GString *t1FontName;
+ char *xFontName;
+ FontEncoding *xEncoding;
+ double size;
+ double ntm11, ntm12, ntm21, ntm22;
+ double w1, w2, v;
+ double *fm;
+ int index;
+ int code;
int i, j;
- // is it the most recently used font?
- if (numFonts > 0 && fonts[0]->matches(gfxFont->getID(),
- m11, m12, m21, m22))
- return fonts[0];
+ // is it the most recently used Type 1 or server font?
+#if HAVE_T1LIB_H
+ if (useT1lib && nT1Fonts > 0 &&
+ t1Fonts[0]->matches(gfxFont->getID(), m11, m12, m21, m22)) {
+ return t1Fonts[0];
+ }
+#endif
+ if (nServerFonts > 0 && serverFonts[0]->matches(gfxFont->getID(),
+ m11, m12, m21, m22))
+ return serverFonts[0];
+
+#if HAVE_T1LIB_H
+ // is it in the Type 1 cache?
+ if (useT1lib) {
+ for (i = 1; i < nT1Fonts; ++i) {
+ if (t1Fonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) {
+ t1Font = t1Fonts[i];
+ for (j = i; j > 0; --j)
+ t1Fonts[j] = t1Fonts[j-1];
+ t1Fonts[0] = t1Font;
+ return t1Font;
+ }
+ }
+ }
+#endif
- // is it in the cache?
- for (i = 1; i < numFonts; ++i) {
- if (fonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) {
- font = fonts[i];
+ // is it in the server cache?
+ for (i = 1; i < nServerFonts; ++i) {
+ if (serverFonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) {
+ serverFont = serverFonts[i];
for (j = i; j > 0; --j)
- fonts[j] = fonts[j-1];
- fonts[0] = font;
- return font;
+ serverFonts[j] = serverFonts[j-1];
+ serverFonts[0] = serverFont;
+ return serverFont;
+ }
+ }
+
+ // compute size and normalized transform matrix
+ size = sqrt(m21*m21 + m22*m22);
+ ntm11 = m11 / size;
+ ntm12 = m12 / size;
+ ntm21 = m21 / size;
+ ntm22 = m22 / size;
+
+ // search for a font map entry
+ t1FontName = NULL;
+ xFontName = NULL;
+ xEncoding = NULL;
+ if (!gfxFont->is16Bit() && gfxFont->getName()) {
+ for (fme = userFontMap; fme->pdfFont; ++fme) {
+ if (!gfxFont->getName()->cmp(fme->pdfFont)) {
+ break;
+ }
+ }
+ if (!fme->pdfFont) {
+ for (fme = fontMap; fme->pdfFont; ++fme) {
+ if (!gfxFont->getName()->cmp(fme->pdfFont)) {
+ break;
+ }
+ }
+ }
+ if (fme && fme->t1Font) {
+ t1FontName = *fme->t1Font;
+ }
+ if (fme && fme->xFont && fme->encoding) {
+ xFontName = fme->xFont;
+ xEncoding = fme->encoding;
}
}
- // make a new font
- font = new XOutputFont(gfxFont, m11, m12, m21, m22, display);
- if (!font->getXFont()) {
- delete font;
- return NULL;
+ // no font map entry found, so substitute a font
+ if (!t1FontName && !xFontName) {
+ if (gfxFont->is16Bit()) {
+ xFontName = fontSubst[0].xFont;
+ t1FontName = NULL;
+ switch (gfxFont->getCharSet16()) {
+ case font16AdobeJapan12:
+#if JAPANESE_SUPPORT
+ xFontName = japan12Font ? japan12Font->getCString() : japan12DefFont;
+#endif
+ break;
+ }
+ } else {
+ if (gfxFont->isFixedWidth()) {
+ index = 8;
+ } else if (gfxFont->isSerif()) {
+ index = 4;
+ } else {
+ index = 0;
+ }
+ if (gfxFont->isBold())
+ index += 2;
+ if (gfxFont->isItalic())
+ index += 1;
+ xFontName = fontSubst[index].xFont;
+ t1FontName = *fontSubst[index].t1Font;
+ xEncoding = &isoLatin1Encoding;
+ // un-normalize
+ ntm11 = m11;
+ ntm12 = m12;
+ ntm21 = m21;
+ ntm22 = m22;
+ // get width of 'm' in real font and substituted font
+ if ((code = gfxFont->getCharCode("m")) >= 0)
+ w1 = gfxFont->getWidth(code);
+ else
+ w1 = 0;
+ w2 = fontSubst[index].mWidth;
+ if (gfxFont->getType() == fontType3) {
+ // This is a hack which makes it possible to substitute for some
+ // Type 3 fonts. The problem is that it's impossible to know what
+ // the base coordinate system used in the font is without actually
+ // rendering the font. This code tries to guess by looking at the
+ // width of the character 'm' (which breaks if the font is a
+ // subset that doesn't contain 'm').
+ if (w1 > 0 && (w1 > 1.1 * w2 || w1 < 0.9 * w2)) {
+ w1 /= w2;
+ ntm11 = m11 * w1;
+ ntm12 = m12 * w1;
+ ntm21 = m21 * w1;
+ ntm22 = m22 * w1;
+ }
+ fm = gfxFont->getFontMatrix();
+ v = (fm[0] == 0) ? 1 : (fm[3] / fm[0]);
+ ntm12 *= v;
+ ntm22 *= v;
+ } else if (!gfxFont->isSymbolic()) {
+ // if real font is substantially narrower than substituted
+ // font, reduce the font size accordingly
+ if (w1 > 0.01 && w1 < 0.9 * w2) {
+ w1 /= w2;
+ if (w1 < 0.8)
+ w1 = 0.8;
+ ntm11 = m11 * w1;
+ ntm12 = m12 * w1;
+ ntm21 = m21 * w1;
+ ntm22 = m22 * w1;
+ }
+ }
+ // renormalize
+ size = sqrt(ntm21*ntm21 + ntm22*ntm22);
+ ntm11 /= size;
+ ntm12 /= size;
+ ntm21 /= size;
+ ntm22 /= size;
+ }
}
- // insert font in cache
- if (numFonts == fontCacheSize) {
- --numFonts;
- delete fonts[numFonts];
+#if HAVE_T1LIB_H
+ // try to create a new Type 1 font
+ if (useT1lib) {
+ t1Font = new XOutputT1Font(gfxFont, t1FontName,
+ m11, m12, m21, m22,
+ size, ntm11, ntm12, ntm21, ntm22,
+ display, this);
+ if (t1Font->isOk()) {
+
+ // insert in cache
+ if (nT1Fonts == t1FontCacheSize) {
+ --nT1Fonts;
+ delete t1Fonts[nT1Fonts];
+ }
+ for (j = nT1Fonts; j > 0; --j)
+ t1Fonts[j] = t1Fonts[j-1];
+ t1Fonts[0] = t1Font;
+ ++nT1Fonts;
+
+ return t1Font;
+ }
+ delete t1Font;
}
- for (j = numFonts; j > 0; --j)
- fonts[j] = fonts[j-1];
- fonts[0] = font;
- ++numFonts;
+#endif
- // return it
- return font;
+ // create a new server font
+ serverFont = new XOutputServerFont(gfxFont, xFontName, xEncoding,
+ m11, m12, m21, m22,
+ size, ntm11, ntm12, ntm21, ntm22,
+ display, this);
+ if (serverFont->isOk()) {
+
+ // insert in cache
+ if (nServerFonts == serverFontCacheSize) {
+ --nServerFonts;
+ delete serverFonts[nServerFonts];
+ }
+ for (j = nServerFonts; j > 0; --j)
+ serverFonts[j] = serverFonts[j-1];
+ serverFonts[0] = serverFont;
+ ++nServerFonts;
+
+ return serverFont;
+ }
+ delete serverFont;
+
+ return NULL;
+}
+
+#if HAVE_T1LIB_H
+int XOutputFontCache::getT1Font(GfxFont *gfxFont, GString *pdfBaseFont) {
+ Ref id;
+ char *fileName;
+ char tmpFileName[60];
+ FILE *f;
+ char *fontBuf;
+ int fontLen;
+ Type1CFontConverter *cvt;
+ Ref embRef;
+ Object refObj, strObj;
+ FontEncoding *enc;
+ int encStrSize;
+ char *encPtr;
+ int t1ID;
+ int c;
+ int i, j;
+
+ id = gfxFont->getID();
+
+ // check available fonts
+ t1ID = -1;
+ for (i = 0; i < t1BaseFontsSize && t1BaseFonts[i].num >= 0; ++i) {
+ if (t1BaseFonts[i].num == id.num && t1BaseFonts[i].gen == id.gen) {
+ t1ID = t1BaseFonts[i].t1ID;
+ }
+ }
+
+ // create a new base font
+ if (t1ID < 0) {
+
+ // resize t1BaseFonts if necessary
+ if (i == t1BaseFontsSize) {
+ t1BaseFonts = (XOutputT1BaseFont *)
+ grealloc(t1BaseFonts,
+ (t1BaseFontsSize + 16) * sizeof(XOutputT1BaseFont));
+ for (j = 0; j < 16; ++j) {
+ t1BaseFonts[t1BaseFontsSize + j].num = -1;
+ }
+ t1BaseFontsSize += 16;
+ }
+
+ // create the font file
+ tmpFileName[0] = '\0';
+ if (!gfxFont->is16Bit() &&
+ (gfxFont->getType() == fontType1 ||
+ gfxFont->getType() == fontType1C) &&
+ gfxFont->getEmbeddedFontID(&embRef)) {
+ tmpnam(tmpFileName);
+ if (!(f = fopen(tmpFileName, "wb"))) {
+ error(-1, "Couldn't open temporary Type 1 font file '%s'",
+ tmpFileName);
+ return -1;
+ }
+ if (gfxFont->getType() == fontType1C) {
+ fontBuf = gfxFont->readEmbFontFile(&fontLen);
+ cvt = new Type1CFontConverter(fontBuf, fontLen, f);
+ cvt->convert();
+ delete cvt;
+ gfree(fontBuf);
+ } else {
+ gfxFont->getEmbeddedFontID(&embRef);
+ refObj.initRef(embRef.num, embRef.gen);
+ refObj.fetch(&strObj);
+ refObj.free();
+ strObj.streamReset();
+ while ((c = strObj.streamGetChar()) != EOF)
+ fputc(c, f);
+ }
+ fclose(f);
+ strObj.free();
+ fileName = tmpFileName;
+ } else {
+ fileName = pdfBaseFont->getCString();
+ }
+
+ // create the t1lib font
+ if ((t1ID = T1_AddFont(fileName)) < 0) {
+ error(-1, "Couldn't create t1lib font from '%s'", fileName);
+ return -1;
+ }
+ T1_LoadFont(t1ID);
+ t1BaseFonts[i].num = id.num;
+ t1BaseFonts[i].gen = id.gen;
+ t1BaseFonts[i].t1ID = t1ID;
+
+ // remove the font file
+ if (tmpFileName[0]) {
+ unlink(tmpFileName);
+ }
+
+ // reencode it
+ enc = gfxFont->getEncoding();
+ encStrSize = 0;
+ for (j = 0; j < 256 && j < enc->getSize(); ++j) {
+ if (enc->getCharName(j)) {
+ encStrSize += strlen(enc->getCharName(j)) + 1;
+ }
+ }
+ t1BaseFonts[i].enc = (char **)gmalloc(257 * sizeof(char *));
+ encPtr = (char *)gmalloc(encStrSize * sizeof(char));
+ t1BaseFonts[i].encStr = encPtr;
+ for (j = 0; j < 256 && j < enc->getSize(); ++j) {
+ if (enc->getCharName(j)) {
+ strcpy(encPtr, enc->getCharName(j));
+ t1BaseFonts[i].enc[j] = encPtr;
+ encPtr += strlen(encPtr) + 1;
+ } else {
+ t1BaseFonts[i].enc[j] = ".notdef";
+ }
+ }
+ for (; j < 256; ++j) {
+ t1BaseFonts[i].enc[j] = ".notdef";
+ }
+ t1BaseFonts[i].enc[256] = "custom";
+ T1_ReencodeFont(t1BaseFonts[i].t1ID, t1BaseFonts[i].enc);
+ }
+
+ // copy it
+ t1ID = T1_CopyFont(t1ID);
+
+ return t1ID;
}
+#endif
//------------------------------------------------------------------------
// XOutputDev
//------------------------------------------------------------------------
-XOutputDev::XOutputDev(Display *display1, Pixmap pixmap1, Guint depth1,
+XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth,
Colormap colormap, unsigned long paperColor) {
XVisualInfo visualTempl;
XVisualInfo *visualList;
@@ -600,15 +1046,16 @@ XOutputDev::XOutputDev(Display *display1, Pixmap pixmap1, Guint depth1,
GBool ok;
// get display/pixmap info
- display = display1;
+ this->display = display;
screenNum = DefaultScreen(display);
- pixmap = pixmap1;
- depth = depth1;
+ this->pixmap = pixmap;
+ this->depth = depth;
+ this->colormap = colormap;
// check for TrueColor visual
trueColor = gFalse;
if (depth == 0) {
- depth = DefaultDepth(display, screenNum);
+ this->depth = DefaultDepth(display, screenNum);
visualList = XGetVisualInfo(display, 0, &visualTempl, &nVisuals);
for (i = 0; i < nVisuals; ++i) {
if (visualList[i].visual == DefaultVisual(display, screenNum)) {
@@ -746,6 +1193,7 @@ XOutputDev::XOutputDev(Display *display1, Pixmap pixmap1, Guint depth1,
userFontMap[i].encoding = NULL;
else
userFontMap[i].encoding = &isoLatin1Encoding;
+ userFontMap[i].t1Font = NULL;
}
userFontMap[n].pdfFont = NULL;
@@ -758,7 +1206,7 @@ XOutputDev::XOutputDev(Display *display1, Pixmap pixmap1, Guint depth1,
save = NULL;
// create text object
- text = new TextPage(gFalse);
+ text = new TextPage(useEUCJP, gFalse);
}
XOutputDev::~XOutputDev() {
@@ -772,6 +1220,10 @@ XOutputDev::~XOutputDev() {
delete text;
}
+void XOutputDev::startDoc() {
+ fontCache->startDoc(screenNum, depth, colormap);
+}
+
void XOutputDev::startPage(int pageNum, GfxState *state) {
XOutputState *s;
XGCValues gcValues;
@@ -960,6 +1412,11 @@ void XOutputDev::updateLineAttrs(GfxState *state, GBool updateDash) {
cap = CapButt;
break;
}
+#if 1 //~ work around a bug in XFree86 (???)
+ if (dashLength > 0 && cap == CapProjecting) {
+ cap = CapButt;
+ }
+#endif
switch (state->getLineJoin()) {
case 0: join = JoinMiter; break;
case 1: join = JoinRound; break;
@@ -1005,8 +1462,8 @@ void XOutputDev::updateFont(GfxState *state) {
m21 *= state->getHorizScaling();
font = fontCache->getFont(gfxFont, m11, m12, m21, m22);
if (font) {
- XSetFont(display, fillGC, font->getXFont()->fid);
- XSetFont(display, strokeGC, font->getXFont()->fid);
+ font->updateGC(fillGC);
+ font->updateGC(strokeGC);
}
}
@@ -1398,12 +1855,7 @@ void XOutputDev::endString(GfxState *state) {
void XOutputDev::drawChar(GfxState *state, double x, double y,
double dx, double dy, Guchar c) {
- Gushort c1;
- char buf;
- char *p;
- int n, i;
double x1, y1;
- double tx;
text->addChar(state, x, y, dx, dy, c);
@@ -1415,61 +1867,9 @@ void XOutputDev::drawChar(GfxState *state, double x, double y,
return;
state->transform(x, y, &x1, &y1);
- c1 = font->mapChar(c);
- if (c1 <= lastRegularChar) {
- buf = (char)c1;
- XDrawString(display, pixmap,
- (state->getRender() & 1) ? strokeGC : fillGC,
- xoutRound(x1), xoutRound(y1), &buf, 1);
- } else if (c1 <= lastSubstChar) {
- buf = (char)substChars[c1 - firstSubstChar];
- XDrawString(display, pixmap,
- (state->getRender() & 1) ? strokeGC : fillGC,
- xoutRound(x1), xoutRound(y1), &buf, 1);
- } else if (c1 <= lastConstrChar) {
- //~ need to deal with rotated text here
- switch (c1 - firstConstrChar) {
- case 0: // bullet
- tx = 0.25 * state->getTransformedFontSize() *
- gfxFont->getWidth(c);
- XFillRectangle(display, pixmap,
- (state->getRender() & 1) ? strokeGC : fillGC,
- xoutRound(x1 + tx),
- xoutRound(y1 - 0.4 * font->getXFont()->ascent - tx),
- xoutRound(2 * tx), xoutRound(2 * tx));
- break;
- case 1: // trademark
-//~ this should use a smaller font
-// tx = state->getTransformedFontSize() *
-// (gfxFont->getWidth(c) -
-// gfxFont->getWidth(font->revCharMap('M')));
- tx = 0.9 * state->getTransformedFontSize() *
- gfxFont->getWidth(font->revMapChar('T'));
- y1 -= 0.33 * (double)font->getXFont()->ascent;
- buf = 'T';
- XDrawString(display, pixmap,
- (state->getRender() & 1) ? strokeGC : fillGC,
- xoutRound(x1), xoutRound(y1), &buf, 1);
- x1 += tx;
- buf = 'M';
- XDrawString(display, pixmap,
- (state->getRender() & 1) ? strokeGC : fillGC,
- xoutRound(x1), xoutRound(y1), &buf, 1);
- break;
- }
- } else if (c1 <= lastMultiChar) {
- p = multiChars[c1 - firstMultiChar];
- n = strlen(p);
- tx = gfxFont->getWidth(c);
- tx -= gfxFont->getWidth(font->revMapChar(p[n-1]));
- tx = tx * state->getTransformedFontSize() / (double)(n - 1);
- for (i = 0; i < n; ++i) {
- XDrawString(display, pixmap,
- (state->getRender() & 1) ? strokeGC : fillGC,
- xoutRound(x1), xoutRound(y1), p + i, 1);
- x1 += tx;
- }
- }
+
+ font->drawChar(state, pixmap, (state->getRender() & 1) ? strokeGC : fillGC,
+ xoutRound(x1), xoutRound(y1), c);
}
void XOutputDev::drawChar16(GfxState *state, double x, double y,
@@ -1484,6 +1884,12 @@ void XOutputDev::drawChar16(GfxState *state, double x, double y,
int n, i;
#endif
+ if (gfxFont) {
+ text->addChar16(state, x, y, dx, dy, c, gfxFont->getCharSet16());
+ }
+
+ //~ assumes font is an XOutputServerFont
+
if (!font)
return;
@@ -1491,6 +1897,12 @@ void XOutputDev::drawChar16(GfxState *state, double x, double y,
if ((state->getRender() & 3) == 3)
return;
+ // handle origin offset for vertical fonts
+ if (gfxFont->getWMode16() == 1) {
+ x -= gfxFont->getOriginX16(c) * state->getFontSize();
+ y -= gfxFont->getOriginY16(c) * state->getFontSize();
+ }
+
state->transform(x, y, &x1, &y1);
c1 = 0;
@@ -1658,6 +2070,7 @@ void XOutputDev::drawChar16(GfxState *state, double x, double y,
void XOutputDev::drawImageMask(GfxState *state, Stream *str,
int width, int height, GBool invert,
GBool inlineImg) {
+ ImageStream *imgStr;
XImage *image;
int x0, y0; // top left corner of image
int w0, h0, w1, h1; // size of image
@@ -1752,7 +2165,8 @@ void XOutputDev::drawImageMask(GfxState *state, Stream *str,
image, x2, y2);
// initialize the image stream
- str->resetImage(width, 1, 1);
+ imgStr = new ImageStream(str, width, 1, 1);
+ imgStr->reset();
// first line (column)
y = yFlip ? h1 - 1 : 0;
@@ -1770,7 +2184,7 @@ void XOutputDev::drawImageMask(GfxState *state, Stream *str,
// drop a line (column)
if (dy == 0) {
- str->skipImageLine();
+ imgStr->skipLine();
} else {
@@ -1789,7 +2203,7 @@ void XOutputDev::drawImageMask(GfxState *state, Stream *str,
}
// get image pixel
- str->getImagePixel(&pixBuf);
+ imgStr->getPixel(&pixBuf);
if (invert)
pixBuf ^= 1;
@@ -1833,6 +2247,7 @@ void XOutputDev::drawImageMask(GfxState *state, Stream *str,
XPutImage(display, pixmap, fillGC, image, x2, y2, x0, y0, w2, h2);
// free memory
+ delete imgStr;
gfree(image->data);
image->data = NULL;
XDestroyImage(image);
@@ -1881,6 +2296,7 @@ inline Gulong XOutputDev::findColor(RGBColor *x, RGBColor *err) {
void XOutputDev::drawImage(GfxState *state, Stream *str, int width,
int height, GfxImageColorMap *colorMap,
GBool inlineImg) {
+ ImageStream *imgStr;
XImage *image;
int x0, y0; // top left corner of image
int w0, h0, w1, h1; // size of image
@@ -1969,7 +2385,8 @@ void XOutputDev::drawImage(GfxState *state, Stream *str, int width,
}
// initialize the image stream
- str->resetImage(width, nComps, nBits);
+ imgStr = new ImageStream(str, width, nComps, nBits);
+ imgStr->reset();
// first line (column)
y = yFlip ? h1 - 1 : 0;
@@ -1987,7 +2404,7 @@ void XOutputDev::drawImage(GfxState *state, Stream *str, int width,
// drop a line (column)
if (dy == 0) {
- str->skipImageLine();
+ imgStr->skipLine();
} else {
@@ -2012,7 +2429,7 @@ void XOutputDev::drawImage(GfxState *state, Stream *str, int width,
}
// get image pixel
- str->getImagePixel(pixBuf);
+ imgStr->getPixel(pixBuf);
// draw image pixel
if (dx > 0) {
@@ -2114,6 +2531,7 @@ void XOutputDev::drawImage(GfxState *state, Stream *str, int width,
XPutImage(display, pixmap, fillGC, image, 0, 0, x0, y0, w0, h0);
// free memory
+ delete imgStr;
gfree(image->data);
image->data = NULL;
XDestroyImage(image);
diff --git a/pdf/xpdf/XOutputDev.h b/pdf/xpdf/XOutputDev.h
index 4845421..c0bcfd2 100644
--- a/pdf/xpdf/XOutputDev.h
+++ b/pdf/xpdf/XOutputDev.h
@@ -16,6 +16,10 @@
#include <stddef.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+#if HAVE_T1LIB_H
+#include <t1lib.h>
+#include <t1libx.h>
+#endif
#include "config.h"
#include "OutputDev.h"
@@ -25,6 +29,8 @@ class GfxFont;
class GfxSubpath;
class TextPage;
struct RGBColor;
+class FontEncoding;
+class XOutputFontCache;
//------------------------------------------------------------------------
// Constants
@@ -59,6 +65,40 @@ extern GBool installCmap;
// Size of RGB color cube.
extern int rgbCubeSize;
+#if HAVE_T1LIB_H
+// Type of t1lib font rendering to use:
+// "none" -- don't use t1lib
+// "plain" -- t1lib, without anti-aliasing
+// "low" -- t1lib, with low-level anti-aliasing
+// "high" -- t1lib, with high-level anti-aliasing
+extern GString *t1libControl;
+#endif
+
+// If any of these are set, xpdf will use t1lib to render those font(s)
+// instead of using the X server font(s).
+extern GString *t1Courier;
+extern GString *t1CourierBold;
+extern GString *t1CourierBoldOblique;
+extern GString *t1CourierOblique;
+extern GString *t1Helvetica;
+extern GString *t1HelveticaBold;
+extern GString *t1HelveticaBoldOblique;
+extern GString *t1HelveticaOblique;
+extern GString *t1Symbol;
+extern GString *t1TimesBold;
+extern GString *t1TimesBoldItalic;
+extern GString *t1TimesItalic;
+extern GString *t1TimesRoman;
+extern GString *t1ZapfDingbats;
+
+// Use the EUC-JP encoding.
+extern GBool useEUCJP;
+
+#if JAPANESE_SUPPORT
+// X font name pattern to use for Japanese text.
+extern GString *japan12Font;
+#endif
+
//------------------------------------------------------------------------
// XOutputFont
//------------------------------------------------------------------------
@@ -66,64 +106,168 @@ extern int rgbCubeSize;
class XOutputFont {
public:
- // Constructor.
XOutputFont(GfxFont *gfxFont, double m11, double m12,
- double m21, double m22, Display *display1);
+ double m21, double m22, Display *display,
+ XOutputFontCache *cache);
- // Destructor.
- ~XOutputFont();
+ virtual ~XOutputFont();
- // Does this font match the ID, size, and angle?
+ // Does this font match the ID and transform?
GBool matches(Ref id1, double m11, double m12, double m21, double m22)
{ return id.num == id1.num && id.gen == id1.gen &&
- mat11 == m11 && mat12 == m12 && mat21 == m21 && mat22 == m22; }
+ m11 == tm11 && m12 == tm12 && m21 == tm21 && m22 == tm22; }
- // Get X font.
- XFontStruct *getXFont() { return xFont; }
+ // Was font created successfully?
+ virtual GBool isOk() = 0;
- // Get character mapping.
- Gushort mapChar(Guchar c) { return map[c]; }
+ // Update <gc> with this font.
+ virtual void updateGC(GC gc) = 0;
- // Reverse map a character.
- Guchar revMapChar(Gushort c) { return revMap[c]; }
+ // Draw character <c> at <x>,<y>.
+ virtual void drawChar(GfxState *state, Pixmap pixmap, GC gc,
+ double x, double y, int c) = 0;
// Does this font use hex char codes?
GBool isHex() { return hex; }
-private:
+protected:
- Ref id;
- double mat11, mat12, mat21, mat22;
- Display *display;
- XFontStruct *xFont;
+ Ref id; // font ID
+ double tm11, tm12, // original transform matrix
+ tm21, tm22;
+ Display *display; // X display
GBool hex; // subsetted font with hex char codes
- Gushort map[256];
- Guchar revMap[256];
+ // (this flag is used for text output)
+};
+
+#if HAVE_T1LIB_H
+//------------------------------------------------------------------------
+// XOutputT1Font
+//------------------------------------------------------------------------
+
+class XOutputT1Font: public XOutputFont {
+public:
+
+ XOutputT1Font(GfxFont *gfxFont, GString *pdfBaseFont,
+ double m11, double m12, double m21, double m22,
+ double size, double ntm11, double ntm12,
+ double ntm21, double ntm22,
+ Display *display, XOutputFontCache *cache);
+
+ virtual ~XOutputT1Font();
+
+ // Was font created successfully?
+ virtual GBool isOk();
+
+ // Update <gc> with this font.
+ virtual void updateGC(GC gc);
+
+ // Draw character <c> at <x>,<y>.
+ virtual void drawChar(GfxState *state, Pixmap pixmap, GC gc,
+ double x, double y, int c);
+
+private:
+
+ float size; // font size
+ int t1ID; // t1lib font ID
+ GBool t1libAA; // true for anti-aliased fonts
+};
+#endif
+
+//------------------------------------------------------------------------
+// XOutputServerFont
+//------------------------------------------------------------------------
+
+class XOutputServerFont: public XOutputFont {
+public:
+
+ XOutputServerFont(GfxFont *gfxFont, char *fontNameFmt,
+ FontEncoding *encoding,
+ double m11, double m12, double m21, double m22,
+ double size, double ntm11, double ntm12,
+ double ntm21, double ntm22,
+ Display *display, XOutputFontCache *cache);
+
+ virtual ~XOutputServerFont();
+
+ // Was font created successfully?
+ virtual GBool isOk();
+
+ // Update <gc> with this font.
+ virtual void updateGC(GC gc);
+
+ // Draw character <c> at <x>,<y>.
+ virtual void drawChar(GfxState *state, Pixmap pixmap, GC gc,
+ double x, double y, int c);
+
+private:
+
+ XFontStruct *xFont; // the X font
+ Gushort map[256]; // forward map (PDF code -> font code)
+ Guchar revMap[256]; // reverese map (font code -> PDF code)
};
//------------------------------------------------------------------------
// XOutputFontCache
//------------------------------------------------------------------------
+#if HAVE_T1LIB_H
+struct XOutputT1BaseFont {
+ int num, gen;
+ int t1ID;
+ char **enc;
+ char *encStr;
+};
+#endif
+
class XOutputFontCache {
public:
// Constructor.
- XOutputFontCache(Display *display1);
+ XOutputFontCache(Display *display);
// Destructor.
~XOutputFontCache();
+ // Initialize (or re-initialize) the font cache for a new document.
+ void startDoc(int screenNum, Guint depth,
+ Colormap colormap);
+
// Get a font. This creates a new font if necessary.
XOutputFont *getFont(GfxFont *gfxFont, double m11, double m12,
double m21, double m22);
+#if HAVE_T1LIB_H
+ // Get a t1lib font.
+ int getT1Font(GfxFont *gfxFont, GString *pdfBaseFont);
+
+ // Use anti-aliased Type 1 fonts?
+ GBool getT1libAA() { return t1libAA; }
+#endif
+
private:
+ void delFonts();
+ void clear();
+
Display *display; // X display pointer
- XOutputFont * // fonts in reverse-LRU order
- fonts[fontCacheSize];
- int numFonts; // number of valid entries
+
+#if HAVE_T1LIB_H
+ GBool useT1lib; // if false, t1lib is not used at all
+ GBool t1libAA; // true for anti-aliased fonts
+ GBool t1libAAHigh; // low or high-level anti-aliasing
+ GBool t1Init; // set when t1lib has been initialized
+ XOutputT1Font * // Type 1 fonts in reverse-LRU order
+ t1Fonts[t1FontCacheSize];
+ int nT1Fonts; // number of valid entries in t1Fonts[]
+ XOutputT1BaseFont * // list of t1lib base fonts
+ t1BaseFonts;
+ int t1BaseFontsSize; // size of t1BaseFonts array
+#endif
+
+ XOutputServerFont * // X server fonts in reverse-LRU order
+ serverFonts[serverFontCacheSize];
+ int nServerFonts; // number of valid entries in serverFonts[]
};
//------------------------------------------------------------------------
@@ -219,6 +363,9 @@ public:
//----- special access
+ // Called to indicate that a new PDF document has been loaded.
+ void startDoc();
+
// Find a string. If <top> is true, starts looking at <xMin>,<yMin>;
// otherwise starts looking at top of page. If <bottom> is true,
// stops looking at <xMax>,<yMax>; otherwise stops looking at bottom
@@ -243,6 +390,7 @@ private:
Pixmap pixmap; // pixmap to draw into
int pixmapW, pixmapH; // size of pixmap
Guint depth; // pixmap depth
+ Colormap colormap; // X colormap
int flatness; // line flatness
GC paperGC; // GC for background
GC strokeGC; // GC with stroke color
diff --git a/pdf/xpdf/XOutputFontInfo.h b/pdf/xpdf/XOutputFontInfo.h
index 0c54be3..c33453a 100644
--- a/pdf/xpdf/XOutputFontInfo.h
+++ b/pdf/xpdf/XOutputFontInfo.h
@@ -15,7 +15,7 @@
// Character encodings.
//------------------------------------------------------------------------
-#define isoLatin1EncodingSize 294
+#define isoLatin1EncodingSize 297
static char *isoLatin1EncodingNames[isoLatin1EncodingSize] = {
NULL,
NULL,
@@ -282,6 +282,9 @@ static char *isoLatin1EncodingNames[isoLatin1EncodingSize] = {
"trademark",
"fi",
"fl",
+ "ff",
+ "ffi",
+ "ffl",
"OE",
"oe",
"ellipsis",
@@ -312,10 +315,10 @@ static char *isoLatin1EncodingNames[isoLatin1EncodingSize] = {
"tilde",
"zcaron"
};
-static GfxFontEncoding isoLatin1Encoding(isoLatin1EncodingNames,
- isoLatin1EncodingSize);
+static FontEncoding isoLatin1Encoding(isoLatin1EncodingNames,
+ isoLatin1EncodingSize);
-#define isoLatin2EncodingSize 294
+#define isoLatin2EncodingSize 297
static char *isoLatin2EncodingNames[isoLatin2EncodingSize] = {
NULL,
NULL,
@@ -508,7 +511,7 @@ static char *isoLatin2EncodingNames[isoLatin2EncodingSize] = {
"zacute",
"hungarumlaut",
"zcaron",
- "zdotaccent",
+ "zdotaccenp",
"Racute",
"Aacute",
"Acircumflex",
@@ -582,6 +585,9 @@ static char *isoLatin2EncodingNames[isoLatin2EncodingSize] = {
"trademark",
"fi",
"fl",
+ "ff",
+ "ffi",
+ "ffl",
"OE",
"oe",
"ellipsis",
@@ -612,8 +618,8 @@ static char *isoLatin2EncodingNames[isoLatin2EncodingSize] = {
"tilde",
NULL
};
-static GfxFontEncoding isoLatin2Encoding(isoLatin2EncodingNames,
- isoLatin2EncodingSize);
+static FontEncoding isoLatin2Encoding(isoLatin2EncodingNames,
+ isoLatin2EncodingSize);
#define symbolEncodingSize 256
static char *symbolEncodingNames[symbolEncodingSize] = {
@@ -874,8 +880,8 @@ static char *symbolEncodingNames[symbolEncodingSize] = {
"bracerightbt",
NULL
};
-static GfxFontEncoding symbolEncoding(symbolEncodingNames,
- symbolEncodingSize);
+static FontEncoding symbolEncoding(symbolEncodingNames,
+ symbolEncodingSize);
#define zapfDingbatsEncodingSize 256
static char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = {
@@ -1136,7 +1142,7 @@ static char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = {
"a191",
NULL
};
-static GfxFontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames,
- zapfDingbatsEncodingSize);
+static FontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames,
+ zapfDingbatsEncodingSize);
#endif
diff --git a/pdf/xpdf/makefile.w32 b/pdf/xpdf/makefile.w32
index 24a4672..80810db 100644
--- a/pdf/xpdf/makefile.w32
+++ b/pdf/xpdf/makefile.w32
@@ -14,10 +14,11 @@ GOOLIBDIR = ../goo
LTKSRCDIR = $(srcdir)/../ltk
LTKLIBDIR = ../ltk
-CXXFLAGS = -O2 -DHAVE_DIRENT_H=1 -DNO_POPEN -DUSE_GZIP=1 -I$(GOOSRCDIR) -I$(srcdir)
+CXXFLAGS = -O2 -DHAVE_DIRENT_H=1 -DJAPANESE_SUPPORT -DNO_POPEN -DUSE_GZIP=1 -I$(GOOSRCDIR) -I$(srcdir)
+XLIBS = -lXpm -lSM -lICE -L/usr/X11R6/lib -lX11
-XLIBS = -lXpm -lSM -lICE -L/usr/X11R6/lib -lX11
+OTHERLIBS =
CXX = gcc
STRIP = strip
@@ -39,6 +40,8 @@ CXX_SRC = \
$(srcdir)/Catalog.cc \
$(srcdir)/Dict.cc \
$(srcdir)/Error.cc \
+ $(srcdir)/FontEncoding.cc \
+ $(srcdir)/FontFile.cc \
$(srcdir)/Gfx.cc \
$(srcdir)/GfxFont.cc \
$(srcdir)/GfxState.cc \
@@ -70,102 +73,209 @@ CXX_SRC = \
all: xpdf$(EXE) pdftops$(EXE) pdftotext$(EXE) pdfinfo$(EXE) \
pdftopbm$(EXE) pdfimages$(EXE)
+all-no-x: pdftops$(EXE) pdftotext$(EXE) pdfinfo$(EXE) \
+ pdfimages$(EXE)
+
#------------------------------------------------------------------------
-XPDF_OBJS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
- GfxState.o Lexer.o Link.o LTKOutputDev.o Object.o OutputDev.o \
- Page.o Params.o Parser.o PDFDoc.o PSOutputDev.o Stream.o \
- TextOutputDev.o XOutputDev.o XRef.o xpdf.o
-XPDF_LIBS = -L$(LTKLIBDIR) -lLTK -L$(GOOLIBDIR) -lGoo $(XLIBS) -lm
+XPDF_OBJS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+ FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o \
+ LTKOutputDev.o Object.o OutputDev.o Page.o Params.o \
+ Parser.o PDFDoc.o PSOutputDev.o Stream.o TextOutputDev.o \
+ XOutputDev.o XRef.o xpdf.o
+XPDF_LIBS = -L$(LTKLIBDIR) -lLTK -L$(GOOLIBDIR) -lGoo $(XLIBS) $(OTHERLIBS) -lm
-xpdf$(EXE): $(XPDF_OBJS)
+xpdf$(EXE): $(XPDF_OBJS) \
+ $(GOOLIBDIR)/$(LIBPREFIX)Goo.a $(LTKLIBDIR)/$(LIBPREFIX)LTK.a
$(CXX) $(CXXFLAGS) -o xpdf$(EXE) $(XPDF_OBJS) $(XPDF_LIBS)
- $(STRIP) xpdf$(EXE).exe
+ $(STRIP) xpdf$(EXE)
xpdf-ltk.h: xpdf.ltk
- del $@
+# rm -f $@
$(LTKLIBDIR)/ltkbuild <xpdf.ltk >$@.new
mv $@.new $@
#------------------------------------------------------------------------
-PDFTOPS_OBJS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
- GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o \
- Parser.o PDFDoc.o PSOutputDev.o Stream.o XRef.o pdftops.o
-PDFTOPS_LIBS = -L$(GOOLIBDIR) -lGoo -lm
+PDFTOPS_OBJS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+ FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o \
+ Object.o OutputDev.o Page.o Params.o Parser.o PDFDoc.o \
+ PSOutputDev.o Stream.o XRef.o pdftops.o
+PDFTOPS_LIBS = -L$(GOOLIBDIR) -lGoo $(OTHERLIBS) -lm
-pdftops$(EXE): $(PDFTOPS_OBJS)
+pdftops$(EXE): $(PDFTOPS_OBJS) $(GOOLIBDIR)/$(LIBPREFIX)Goo.a
$(CXX) $(CXXFLAGS) -o pdftops$(EXE) $(PDFTOPS_OBJS) $(PDFTOPS_LIBS)
- $(STRIP) pdftops$(EXE).exe
+ $(STRIP) pdftops$(EXE)
#------------------------------------------------------------------------
-PDFTOTEXT_OBJS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
- GfxState.o Lexer.o Link.o Object.o OutputDev.o Page.o Params.o \
- Parser.o PDFDoc.o TextOutputDev.o Stream.o XRef.o pdftotext.o
-PDFTOTEXT_LIBS = -L$(GOOLIBDIR) -lGoo -lm
+PDFTOTEXT_OBJS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+ FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o \
+ Object.o OutputDev.o Page.o Params.o Parser.o PDFDoc.o \
+ TextOutputDev.o Stream.o XRef.o pdftotext.o
+PDFTOTEXT_LIBS = -L$(GOOLIBDIR) -lGoo $(OTHERLIBS) -lm
-pdftotext$(EXE): $(PDFTOTEXT_OBJS)
+pdftotext$(EXE): $(PDFTOTEXT_OBJS) $(GOOLIBDIR)/$(LIBPREFIX)Goo.a
$(CXX) $(CXXFLAGS) -o pdftotext$(EXE) $(PDFTOTEXT_OBJS) \
$(PDFTOTEXT_LIBS)
- $(STRIP) pdftotext$(EXE).exe
+ $(STRIP) pdftotext$(EXE)
#------------------------------------------------------------------------
-PDFINFO_OBJS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
- GfxState.o Lexer.o Link.o Object.o Page.o Params.o \
- Parser.o PDFDoc.o Stream.o XRef.o pdfinfo.o
-PDFINFO_LIBS = -L$(GOOLIBDIR) -lGoo -lm
+PDFINFO_OBJS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+ FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o \
+ Object.o OutputDev.o Page.o Params.o Parser.o PDFDoc.o \
+ Stream.o XRef.o pdfinfo.o
+PDFINFO_LIBS = -L$(GOOLIBDIR) -lGoo $(OTHERLIBS) -lm
-pdfinfo$(EXE): $(PDFINFO_OBJS)
+pdfinfo$(EXE): $(PDFINFO_OBJS) $(GOOLIBDIR)/$(LIBPREFIX)Goo.a
$(CXX) $(CXXFLAGS) -o pdfinfo$(EXE) $(PDFINFO_OBJS) $(PDFINFO_LIBS)
- $(STRIP) pdfinfo$(EXE).exe
+ $(STRIP) pdfinfo$(EXE)
#------------------------------------------------------------------------
-PDFTOPBM_OBJS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
- GfxState.o Lexer.o Link.o Object.o OutputDev.o PBMOutputDev.o \
- Page.o Params.o Parser.o PDFDoc.o Stream.o TextOutputDev.o \
- XOutputDev.o XRef.o pdftopbm.o
-PDFTOPBM_LIBS = -L$(GOOLIBDIR) -lGoo $(XLIBS) -lm
+PDFTOPBM_OBJS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+ FontFile.o Gfx.o GfxFont.o GfxState.o Lexer.o Link.o \
+ Object.o OutputDev.o PBMOutputDev.o Page.o Params.o \
+ Parser.o PDFDoc.o Stream.o TextOutputDev.o XOutputDev.o \
+ XRef.o pdftopbm.o
+PDFTOPBM_LIBS = -L$(GOOLIBDIR) -lGoo $(XLIBS) $(OTHERLIBS) -lm
-pdftopbm$(EXE): $(PDFTOPBM_OBJS)
+pdftopbm$(EXE): $(PDFTOPBM_OBJS) $(GOOLIBDIR)/$(LIBPREFIX)Goo.a
$(CXX) $(CXXFLAGS) -o pdftopbm$(EXE) $(PDFTOPBM_OBJS) $(PDFTOPBM_LIBS)
- $(STRIP) pdftopbm$(EXE).exe
+ $(STRIP) pdftopbm$(EXE)
#------------------------------------------------------------------------
-PDFIMAGES_OBJS = Array.o Catalog.o Dict.o Error.o Gfx.o GfxFont.o \
- GfxState.o ImageOutputDev.o Lexer.o Link.o Object.o OutputDev.o \
- Page.o Params.o Parser.o PDFDoc.o Stream.o XRef.o pdfimages.o
-PDFIMAGES_LIBS = -L$(GOOLIBDIR) -lGoo -lm
+PDFIMAGES_OBJS = Array.o Catalog.o Dict.o Error.o FontEncoding.o \
+ FontFile.o Gfx.o GfxFont.o GfxState.o ImageOutputDev.o \
+ Lexer.o Link.o Object.o OutputDev.o Page.o Params.o \
+ Parser.o PDFDoc.o Stream.o XRef.o pdfimages.o
+PDFIMAGES_LIBS = -L$(GOOLIBDIR) -lGoo $(OTHERLIBS) -lm
-pdfimages$(EXE): $(PDFIMAGES_OBJS)
+pdfimages$(EXE): $(PDFIMAGES_OBJS) $(GOOLIBDIR)/$(LIBPREFIX)Goo.a
$(CXX) $(CXXFLAGS) -o pdfimages$(EXE) $(PDFIMAGES_OBJS) \
$(PDFIMAGES_LIBS)
- $(STRIP) pdfimages$(EXE).exe
+ $(STRIP) pdfimages$(EXE)
#------------------------------------------------------------------------
clean:
- del *.o
- del xpdf$(EXE)
- del xpdf$(EXE).exe
- del pdftops$(EXE)
- del pdftops$(EXE).exe
- del pdftotext$(EXE)
- del pdftotext$(EXE).exe
- del pdfinfo$(EXE)
- del pdfinfo$(EXE).exe
- del pdftopbm$(EXE)
- del pdftopbm$(EXE).exe
- del pdfimages$(EXE)
- del pdfimages$(EXE).exe
-# rm -f Makefile.bak
+# rm -f $(XPDF_OBJS) xpdf-ltk.h.new xpdf$(EXE)
+# rm -f $(PDFTOPS_OBJS) pdftops$(EXE)
+# rm -f $(PDFTOTEXT_OBJS) pdftotext$(EXE)
+# rm -f $(PDFINFO_OBJS) pdfinfo$(EXE)
+# rm -f $(PDFTOPBM_OBJS) pdftopbm$(EXE)
+# rm -f $(PDFIMAGES_OBJS) pdfimages$(EXE)
#------------------------------------------------------------------------
-depend:
- $(CXX) $(CXXFLAGS) -M $(CXX_SRC) >Makefile.dep
-
-#include Makefile.dep
+distdepend:
+ cp Makefile.in Makefile.in.bak
+ sed '/^#----- dependences -----/q' Makefile.in.bak >Makefile.in
+ $(CXX) $(CXXFLAGS) -MM $(CXX_SRC) >>Makefile.in
+
+#----- dependences -----
+Array.o: ./Array.cc ../goo/gmem.h Object.h ../goo/gtypes.h X
+ ../goo/GString.h Array.h Dict.h Stream.h
+Catalog.o: ./Catalog.cc ../goo/gmem.h Object.h ../goo/gtypes.h \
+ ../goo/GString.h Array.h Dict.h Stream.h Page.h Error.h config.h \
+ Link.h Catalog.h
+Dict.o: ./Dict.cc ../goo/gmem.h Object.h ../goo/gtypes.h \
+ ../goo/GString.h Array.h Dict.h Stream.h XRef.h
+Error.o: ./Error.cc ../goo/gtypes.h Params.h Error.h config.h
+FontEncoding.o: ./FontEncoding.cc ../goo/gmem.h FontEncoding.h \
+ ../goo/gtypes.h
+FontFile.o: ./FontFile.cc ../goo/gmem.h Error.h config.h FontFile.h \
+ ../goo/gtypes.h ../goo/GString.h FontEncoding.h StdFontInfo.h \
+ CompactFontInfo.h
+Gfx.o: ./Gfx.cc ../goo/gmem.h Object.h ../goo/gtypes.h \
+ ../goo/GString.h Array.h Dict.h Stream.h Lexer.h Parser.h GfxFont.h \
+ FontEncoding.h GfxState.h OutputDev.h Params.h Error.h config.h Gfx.h
+GfxFont.o: ./GfxFont.cc ../goo/GString.h ../goo/gmem.h ../goo/gfile.h \
+ ../goo/gtypes.h config.h Object.h Array.h Dict.h Stream.h Error.h \
+ Params.h FontFile.h FontEncoding.h GfxFont.h FontInfo.h
+GfxState.o: ./GfxState.cc ../goo/gmem.h Error.h config.h Object.h \
+ ../goo/gtypes.h ../goo/GString.h Array.h Dict.h Stream.h GfxState.h
+ImageOutputDev.o: ./ImageOutputDev.cc ../goo/gmem.h config.h Error.h \
+ GfxState.h ../goo/gtypes.h Object.h ../goo/GString.h Array.h Dict.h \
+ Stream.h ImageOutputDev.h OutputDev.h
+Lexer.o: ./Lexer.cc Lexer.h Object.h ../goo/gtypes.h ../goo/gmem.h \
+ ../goo/GString.h Array.h Dict.h Stream.h Error.h config.h
+Link.o: ./Link.cc ../goo/gmem.h ../goo/GString.h Error.h config.h \
+ Object.h ../goo/gtypes.h Array.h Dict.h Stream.h Link.h
+LTKOutputDev.o: ./LTKOutputDev.cc ../goo/gmem.h ../goo/GString.h \
+ ../ltk/LTKWindow.h ../goo/gtypes.h ../ltk/LTKScrollingCanvas.h \
+ ../ltk/LTKWidget.h Object.h Array.h Dict.h Stream.h GfxState.h \
+ GfxFont.h FontEncoding.h Error.h config.h Params.h LTKOutputDev.h \
+ XOutputDev.h OutputDev.h
+Object.o: ./Object.cc Object.h ../goo/gtypes.h ../goo/gmem.h \
+ ../goo/GString.h Array.h Dict.h Stream.h Error.h config.h XRef.h
+OutputDev.o: ./OutputDev.cc Object.h ../goo/gtypes.h ../goo/gmem.h \
+ ../goo/GString.h Array.h Dict.h Stream.h GfxState.h OutputDev.h
+Page.o: ./Page.cc Object.h ../goo/gtypes.h ../goo/gmem.h \
+ ../goo/GString.h Array.h Dict.h Stream.h XRef.h OutputDev.h Gfx.h \
+ Error.h config.h Params.h Page.h
+Params.o: ./Params.cc ../goo/gtypes.h ../goo/gmem.h ../goo/GString.h \
+ ../goo/gfile.h Params.h
+Parser.o: ./Parser.cc Object.h ../goo/gtypes.h ../goo/gmem.h \
+ ../goo/GString.h Array.h Dict.h Stream.h Parser.h Lexer.h Error.h \
+ config.h
+PBMOutputDev.o: ./PBMOutputDev.cc ../goo/gmem.h ../goo/GString.h \
+ Object.h ../goo/gtypes.h Array.h Dict.h Stream.h GfxState.h GfxFont.h \
+ FontEncoding.h Error.h config.h Params.h PBMOutputDev.h XOutputDev.h \
+ OutputDev.h
+PDFDoc.o: ./PDFDoc.cc ../goo/GString.h config.h Page.h Object.h \
+ ../goo/gtypes.h ../goo/gmem.h Array.h Dict.h Stream.h Catalog.h \
+ XRef.h Link.h OutputDev.h Params.h Error.h PDFDoc.h
+PSOutputDev.o: ./PSOutputDev.cc ../goo/GString.h config.h Object.h \
+ ../goo/gtypes.h ../goo/gmem.h Array.h Dict.h Stream.h Error.h \
+ GfxState.h GfxFont.h FontEncoding.h FontFile.h Catalog.h Page.h \
+ PSOutputDev.h OutputDev.h
+Stream.o: ./Stream.cc ../goo/gmem.h config.h Error.h Object.h \
+ ../goo/gtypes.h ../goo/GString.h Array.h Dict.h Stream.h \
+ Stream-CCITT.h
+TextOutputDev.o: ./TextOutputDev.cc ../goo/GString.h ../goo/gmem.h \
+ config.h Error.h GfxState.h ../goo/gtypes.h FontEncoding.h \
+ TextOutputDev.h GfxFont.h Object.h Array.h Dict.h Stream.h \
+ OutputDev.h TextOutputFontInfo.h
+XOutputDev.o: ./XOutputDev.cc ../goo/gmem.h ../goo/GString.h Object.h \
+ ../goo/gtypes.h Array.h Dict.h Stream.h GfxState.h GfxFont.h \
+ FontEncoding.h FontFile.h Error.h config.h Params.h TextOutputDev.h \
+ OutputDev.h XOutputDev.h XOutputFontInfo.h
+XRef.o: ./XRef.cc ../goo/gmem.h Object.h ../goo/gtypes.h \
+ ../goo/GString.h Array.h Dict.h Stream.h Lexer.h Parser.h Error.h \
+ config.h XRef.h
+xpdf.o: ./xpdf.cc ../goo/gtypes.h ../goo/GString.h ../goo/parseargs.h \
+ ../goo/gfile.h ../goo/gmem.h ../htk/LTKAll.h ../ltk/LTKApp.h \
+ ../ltk/LTKWindow.h ../ltk/LTKMenu.h ../ltk/LTKWidget.h \
+ ../ltk/LTKCompoundWidget.h ../ltk/LTKBox.h ../ltk/LTKBorder.h \
+ ../ltk/LTKButtonDialog.h ../ltk/LTKButton.h ../ltk/LTKCanvas.h \
+ ../ltk/LTKDblBufCanvas.h ../ltk/LTKEmpty.h ../ltk/LTKFileReq.h \
+ ../ltk/LTKLabel.h ../ltk/LTKList.h ../ltk/LTKMenuButton.h \
+ ../ltk/LTKScrollbar.h ../ltk/LTKScrollingCanvas.h ../ltk/LTKTextIn.h \
+ ../ltk/LTKResources.h Object.h Array.h Dict.h Stream.h XRef.h \
+ Catalog.h Page.h Link.h PDFDoc.h XOutputDev.h config.h OutputDev.h \
+ LTKOutputDev.h PSOutputDev.h TextOutputDev.h GfxFont.h FontEncoding.h \
+ Params.h Error.h xpdfIcon.xpm leftArrow.xbm dblLeftArrow.xbm \
+ rightArrow.xbm dblRightArrow.xbm backArrow.xbm forwardArrow.xbm \
+ find.xbm postscript.xbm about.xbm xpdf-ltk.h
+pdftops.o: ./pdftops.cc ../goo/parseargs.h ../goo/gtypes.h \
+ ../goo/GString.h ../goo/gmem.h Object.h Array.h Dict.h Stream.h \
+ XRef.h Catalog.h Page.h PDFDoc.h Link.h PSOutputDev.h config.h \
+ OutputDev.h Params.h Error.h
+pdftotext.o: ./pdftotext.cc ../goo/parseargs.h ../goo/gtypes.h \
+ ../goo/GString.h ../goo/gmem.h Object.h Array.h Dict.h Stream.h \
+ XRef.h Catalog.h Page.h PDFDoc.h Link.h TextOutputDev.h GfxFont.h \
+ FontEncoding.h OutputDev.h Params.h Error.h config.h
+pdfinfo.o: ./pdfinfo.cc ../goo/parseargs.h ../goo/gtypes.h \
+ ../goo/GString.h ../goo/gmem.h Object.h Array.h Dict.h Stream.h \
+ XRef.h Catalog.h Page.h PDFDoc.h Link.h Params.h Error.h config.h
+pdftopbm.o: ./pdftopbm.cc ../goo/parseargs.h ../goo/gtypes.h \
+ ../goo/GString.h ../goo/gmem.h Object.h Array.h Dict.h Stream.h \
+ XRef.h Catalog.h Page.h PDFDoc.h Link.h PBMOutputDev.h config.h \
+ XOutputDev.h OutputDev.h Params.h Error.h
+pdfimages.o: ./pdfimages.cc ../goo/parseargs.h ../goo/gtypes.h \
+ ../goo/GString.h ../goo/gmem.h Object.h Array.h Dict.h Stream.h \
+ XRef.h Catalog.h Page.h PDFDoc.h Link.h ImageOutputDev.h OutputDev.h \
+ Params.h Error.h config.h
diff --git a/pdf/xpdf/pdfimages.cc b/pdf/xpdf/pdfimages.cc
index 1825a26..1dd59f0 100644
--- a/pdf/xpdf/pdfimages.cc
+++ b/pdf/xpdf/pdfimages.cc
@@ -39,6 +39,8 @@ static ArgDesc argDesc[] = {
"last page to convert"},
{"-j", argFlag, &dumpJPEG, 0,
"write JPEG images as JPEG files"},
+ {"-q", argFlag, &errQuiet, 0,
+ "don't print any messages or errors"},
{"-h", argFlag, &printHelp, 0,
"print usage information"},
{"-help", argFlag, &printHelp, 0,
@@ -70,11 +72,18 @@ int main(int argc, char *argv[]) {
// read config file
initParams(xpdfConfigFile);
- // open PDF file
+ // open PDF fihe
xref = NULL;
doc = new PDFDoc(fileName);
- if (!doc->isOk())
- exit(1);
+ if (!doc->isOk()) {
+ goto err1;
+ }
+
+ // check for copy permission
+ if (!doc->okToCopy()) {
+ error(-1, "Copying of images from this document is not allowed.");
+ goto err2;
+ }
// get page range
if (firstPage < 1)
@@ -89,12 +98,14 @@ int main(int argc, char *argv[]) {
delete imgOut;
// clean up
+ err2:
delete doc;
+ err1:
freeParams();
// check for memory leaks
- Object::memCheck(errFile);
- gMemReport(errFile);
+ Object::memCheck(stderr);
+ gMemReport(stderr);
return 0;
}
diff --git a/pdf/xpdf/pdfinfo.cc b/pdf/xpdf/pdfinfo.cc
index fae8a18..2c183c8 100644
--- a/pdf/xpdf/pdfinfo.cc
+++ b/pdf/xpdf/pdfinfo.cc
@@ -106,16 +106,23 @@ int main(int argc, char *argv[]) {
// print page count
printf("Pages: %d\n", doc->getNumPages());
- // print encrypted flag
- printf("Encrypted: %s\n", doc->isEncrypted() ? "yes" : "no");
+ // print encryption info
+ printf("Encrypted: ");
+ if (doc->isEncrypted()) {
+ printf("yes (print:%s copy:%s)\n",
+ doc->okToPrint() ? "yes" : "no",
+ doc->okToCopy() ? "yes" : "no");
+ } else {
+ printf("no\n");
+ }
// clean up
delete doc;
freeParams();
// check for memory leaks
- Object::memCheck(errFile);
- gMemReport(errFile);
+ Object::memCheck(stderr);
+ gMemReport(stderr);
return 0;
}
diff --git a/pdf/xpdf/pdftopbm.cc b/pdf/xpdf/pdftopbm.cc
index 42fa3cd..6cfe830 100644
--- a/pdf/xpdf/pdftopbm.cc
+++ b/pdf/xpdf/pdftopbm.cc
@@ -39,6 +39,8 @@ static ArgDesc argDesc[] = {
"last page to print"},
{"-r", argInt, &resolution, 0,
"resolution, in DPI (default is 150)"},
+ {"-q", argFlag, &errQuiet, 0,
+ "don't print any messages or errors"},
{"-h", argFlag, &printHelp, 0,
"print usage information"},
{"-help", argFlag, &printHelp, 0,
@@ -93,8 +95,8 @@ int main(int argc, char *argv[]) {
freeParams();
// check for memory leaks
- Object::memCheck(errFile);
- gMemReport(errFile);
+ Object::memCheck(stderr);
+ gMemReport(stderr);
return 0;
}
diff --git a/pdf/xpdf/pdftops.cc b/pdf/xpdf/pdftops.cc
index 08b369f..d6fd653 100644
--- a/pdf/xpdf/pdftops.cc
+++ b/pdf/xpdf/pdftops.cc
@@ -48,6 +48,8 @@ static ArgDesc argDesc[] = {
"don't embed Type 1 fonts"},
{"-form", argFlag, &doForm, 0,
"generate a PostScript form"},
+ {"-q", argFlag, &errQuiet, 0,
+ "don't print any messages or errors"},
{"-h", argFlag, &printHelp, 0,
"print usage information"},
{"-help", argFlag, &printHelp, 0,
@@ -86,8 +88,15 @@ int main(int argc, char *argv[]) {
// open PDF file
xref = NULL;
doc = new PDFDoc(fileName);
- if (!doc->isOk())
- exit(1);
+ if (!doc->isOk()) {
+ goto err1;
+ }
+
+ // check for print permission
+ if (!doc->okToPrint()) {
+ error(-1, "Printing this document is not allowed.");
+ goto err2;
+ }
// construct PostScript file name
if (argc == 3) {
@@ -111,22 +120,22 @@ int main(int argc, char *argv[]) {
lastPage = firstPage;
// write PostScript file
- if (doc->okToPrint()) {
- psOut = new PSOutputDev(psFileName->getCString(), doc->getCatalog(),
- firstPage, lastPage, !noEmbedFonts, doForm);
- if (psOut->isOk())
- doc->displayPages(psOut, firstPage, lastPage, 72, 0);
- delete psOut;
- }
+ psOut = new PSOutputDev(psFileName->getCString(), doc->getCatalog(),
+ firstPage, lastPage, !noEmbedFonts, doForm);
+ if (psOut->isOk())
+ doc->displayPages(psOut, firstPage, lastPage, 72, 0);
+ delete psOut;
// clean up
delete psFileName;
+ err2:
delete doc;
+ err1:
freeParams();
// check for memory leaks
- Object::memCheck(errFile);
- gMemReport(errFile);
+ Object::memCheck(stderr);
+ gMemReport(stderr);
return 0;
}
diff --git a/pdf/xpdf/pdftotext.cc b/pdf/xpdf/pdftotext.cc
index aa38a8b..189d489 100644
--- a/pdf/xpdf/pdftotext.cc
+++ b/pdf/xpdf/pdftotext.cc
@@ -29,6 +29,10 @@
static int firstPage = 1;
static int lastPage = 0;
static GBool useASCII7 = gFalse;
+#if JAPANESE_SUPPORT
+static GBool useEUCJP = gFalse;
+#endif
+static GBool rawOrder = gFalse;
GBool printCommands = gFalse;
static GBool printHelp = gFalse;
@@ -39,6 +43,14 @@ static ArgDesc argDesc[] = {
"last page to convert"},
{"-ascii7", argFlag, &useASCII7, 0,
"convert to 7-bit ASCII (default is 8-bit ISO Latin-1)"},
+#if JAPANESE_SUPPORT
+ {"-eucjp", argFlag, &useEUCJP, 0,
+ "convert Japanese text to EUC-JP"},
+#endif
+ {"-raw", argFlag, &rawOrder, 0,
+ "keep strings in content stream order"},
+ {"-q", argFlag, &errQuiet, 0,
+ "don't print any messages or errors"},
{"-h", argFlag, &printHelp, 0,
"print usage information"},
{"-help", argFlag, &printHelp, 0,
@@ -73,8 +85,15 @@ int main(int argc, char *argv[]) {
// open PDF file
xref = NULL;
doc = new PDFDoc(fileName);
- if (!doc->isOk())
- exit(1);
+ if (!doc->isOk()) {
+ goto err1;
+ }
+
+ // check for copy permission
+ if (!doc->okToCopy()) {
+ error(-1, "Copying of text from this document is not allowed.");
+ goto err2;
+ }
// construct text file name
if (argc == 3) {
@@ -96,19 +115,24 @@ int main(int argc, char *argv[]) {
lastPage = doc->getNumPages();
// write text file
- textOut = new TextOutputDev(textFileName->getCString(), useASCII7);
+#if JAPANESE_SUPPORT
+ useASCII7 |= useEUCJP;
+#endif
+ textOut = new TextOutputDev(textFileName->getCString(), useASCII7, rawOrder);
if (textOut->isOk())
doc->displayPages(textOut, firstPage, lastPage, 72, 0);
delete textOut;
// clean up
delete textFileName;
+ err2:
delete doc;
+ err1:
freeParams();
// check for memory leaks
- Object::memCheck(errFile);
- gMemReport(errFile);
+ Object::memCheck(stderr);
+ gMemReport(stderr);
return 0;
}
diff --git a/pdf/xpdf/vms_make.com b/pdf/xpdf/vms_make.com
index 18429fa..3267091 100644
--- a/pdf/xpdf/vms_make.com
+++ b/pdf/xpdf/vms_make.com
@@ -6,41 +6,47 @@ $! Copyright 1996 Derek B. Noonburg
$!
$!========================================================================
$!
-$ XPDF_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj,Gfx.obj," + -
+$ XPDF_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj," + -
+ "FontEncoding.obj,FontFile.obj,Gfx.obj," + -
"GfxFont.obj,GfxState.obj,Lexer.obj,Link.obj," + -
"LTKOutputDev.obj,Object.obj,OutputDev.obj,Page.obj," + -
"Params.obj,Parser.obj,PDFDoc.obj,PSOutputDev.obj," + -
"Stream.obj,TextOutputDev.obj,XOutputDev.obj,XRef.obj"
-$ XPDF_LIBS = "[-.goo]libgoo.olb/lib,[-.ltk]libltk.olb/lib"
+$ XPDF_LIBS = "[-.ltk]libltk.olb/lib,[-.goo]libgoo.olb/lib"
$!
-$ PDFTOPS_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj,Gfx.obj," + -
+$ PDFTOPS_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj," + -
+ "FontEncoding.obj,FontFile.obj,Gfx.obj," + -
"GfxFont.obj,GfxState.obj,Lexer.obj,Link.obj," + -
"Object.obj,OutputDev.obj,Page.obj,Params.obj," + -
"Parser.obj,PDFdoc.obj,PSOutputDev.obj,Stream.obj," + -
"XRef.obj"
$ PDFTOPS_LIBS = "[-.goo]libgoo.olb/lib"
$!
-$ PDFTOTEXT_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj,Gfx.obj," + -
+$ PDFTOTEXT_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj," + -
+ "FontEncoding.obj,FontFile.obj,Gfx.obj," + -
"GfxFont.obj,GfxState.obj,Lexer.obj,Link.obj," + -
"Object.obj,OutputDev.obj,Page.obj,Params.obj," + -
"Parser.obj,PDFdoc.obj,TextOutputDev.obj,Stream.obj," + -
"XRef.obj"
$ PDFTOTEXT_LIBS = "[-.goo]libgoo.olb/lib"
$!
-$ PDFINFO_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj,Gfx.obj," + -
+$ PDFINFO_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj," + -
+ "FontEncoding.obj,FontFile.obj,Gfx.obj," + -
"GfxFont.obj,GfxState.obj,Lexer.obj,Link.obj," + -
"Object.obj,OutputDev.obj,Page.obj,Params.obj," + -
"Parser.obj,PDFdoc.obj,Stream.obj,XRef.obj"
$ PDFINFO_LIBS = "[-.goo]libgoo.olb/lib"
$!
-$ PDFTOPBM_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj,Gfx.obj," + -
+$ PDFTOPBM_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj," + -
+ "FontEncoding.obj,FontFile.obj,Gfx.obj," + -
"GfxFont.obj,GfxState.obj,Lexer.obj,Link.obj," + -
"Object.obj,OutputDev.obj,PBMOutputDev.obj,Page.obj," + -
"Params.obj,Parser.obj,PDFdoc.obj,Stream.obj," + -
"TextOutputDev.obj,XOutputDev.obj,XRef.obj"
$ PDFTOPBM_LIBS = "[-.goo]libgoo.olb/lib"
$!
-$ PDFIMAGES_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj,Gfx.obj," + -
+$ PDFIMAGES_OBJS = "Array.obj,Catalog.obj,Dict.obj,Error.obj," + -
+ "FontEncoding.obj,FontFile.obj,Gfx.obj," + -
"GfxFont.obj,GfxState.obj,ImageOutputDev.obj," + -
"Lexer.obj,Link.obj,Object.obj,OutputDev.obj,Page.obj," + -
"Params.obj,Parser.obj,PDFdoc.obj,Stream.obj,XRef.obj"
@@ -54,6 +60,8 @@ $ CXXCOMP Array.cc
$ CXXCOMP Catalog.cc
$ CXXCOMP Dict.cc
$ CXXCOMP Error.cc
+$ CXXCOMP FontEncoding.cc
+$ CXXCOMP FontFile.cc
$ CXXCOMP Gfx.cc
$ CXXCOMP GfxFont.cc
$ CXXCOMP GfxState.cc
diff --git a/pdf/xpdf/xpdf-ltk.h b/pdf/xpdf/xpdf-ltk.h
index 2c18d32..bc06ee8 100644
--- a/pdf/xpdf/xpdf-ltk.h
+++ b/pdf/xpdf/xpdf-ltk.h
@@ -1,7 +1,7 @@
-// This file was generated by ltkbuild 0.80
+// This file was generated by ltkbuild 0.90
-LTKWindow *makeWindow(LTKApp *app) {
- return new LTKWindow(app, gFalse, "xpdf", xpdfIcon, NULL,
+LTKWindow *makeWindow(LTKApp *a) {
+ return new LTKWindow(a, gFalse, "xpdf", xpdfIcon, NULL,
new LTKBox(NULL, 1, 2, 0, 0, 0, 0, ltkBorderNone, 1, 1,
new LTKBox(NULL, 2, 2, 0, 0, 0, 0, ltkBorderNone, 1, 1,
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderSunken, 1, 1,
@@ -31,6 +31,9 @@ LTKWindow *makeWindow(LTKApp *app) {
new LTKButton(NULL, 0, dblRightArrow_bits, dblRightArrow_width, dblRightArrow_height, ltkButtonClick, &nextTenPageCbk)
),
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
+ new LTKButton(NULL, 0, forwardArrow_bits, forwardArrow_width, forwardArrow_height, ltkButtonClick, &forwardCbk)
+ ),
+ new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
new LTKLabel(NULL, 0, ltkLabelStatic, 8, "-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*", "Page")
),
new LTKBox(NULL, 1, 1, 4, 4, 2, 2, ltkBorderSunken, 0, 0,
@@ -40,10 +43,7 @@ LTKWindow *makeWindow(LTKApp *app) {
new LTKLabel("numPages", 0, ltkLabelMaxLength, 9, "-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*", NULL)
),
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
- new LTKButton(NULL, 0, zoomIn_bits, zoomIn_width, zoomIn_height, ltkButtonClick, &zoomInCbk)
- ),
- new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
- new LTKButton(NULL, 0, zoomOut_bits, zoomOut_width, zoomOut_height, ltkButtonClick, &zoomOutCbk)
+ new LTKMenuButton("zoom", 0, zoomMenu)
),
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
new LTKButton(NULL, 0, find_bits, find_width, find_height, ltkButtonClick, &findCbk)
@@ -78,8 +78,28 @@ LTKMenu *makeMenu() {
);
}
-LTKWindow *makePostScriptDialog(LTKApp *app) {
- return new LTKWindow(app, gTrue, "xpdf: PostScript output", NULL, "ok",
+LTKMenu *makeZoomMenu() {
+ return new LTKMenu("zoom", 14,
+ new LTKMenuItem("-5", NULL, -5, &zoomMenuCbk, NULL),
+ new LTKMenuItem("-4", NULL, -4, &zoomMenuCbk, NULL),
+ new LTKMenuItem("-3", NULL, -3, &zoomMenuCbk, NULL),
+ new LTKMenuItem("-2", NULL, -2, &zoomMenuCbk, NULL),
+ new LTKMenuItem("-1", NULL, -1, &zoomMenuCbk, NULL),
+ new LTKMenuItem("0", NULL, 0, &zoomMenuCbk, NULL),
+ new LTKMenuItem("+1", NULL, 1, &zoomMenuCbk, NULL),
+ new LTKMenuItem("+2", NULL, 2, &zoomMenuCbk, NULL),
+ new LTKMenuItem("+3", NULL, 3, &zoomMenuCbk, NULL),
+ new LTKMenuItem("+4", NULL, 4, &zoomMenuCbk, NULL),
+ new LTKMenuItem("+5", NULL, 5, &zoomMenuCbk, NULL),
+ new LTKMenuItem(NULL, NULL, 0, NULL, NULL),
+ new LTKMenuItem("fit page", NULL, 100, &zoomMenuCbk, NULL),
+ new LTKMenuItem("fit width", NULL, 101, &zoomMenuCbk, NULL)
+
+ );
+}
+
+LTKWindow *makePostScriptDialog(LTKApp *a) {
+ return new LTKWindow(a, gTrue, "xpdf: PostScript output", NULL, "ok",
new LTKBox(NULL, 1, 3, 0, 0, 0, 0, ltkBorderNone, 0, 0,
new LTKBox(NULL, 4, 1, 0, 0, 0, 0, ltkBorderNone, 0, 0,
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
@@ -118,8 +138,8 @@ LTKWindow *makePostScriptDialog(LTKApp *app) {
);
}
-LTKWindow *makeOpenDialog(LTKApp *app) {
- return new LTKWindow(app, gTrue, "xpdf: Open...", NULL, "open",
+LTKWindow *makeOpenDialog(LTKApp *a) {
+ return new LTKWindow(a, gTrue, "xpdf: Open...", NULL, "open",
new LTKBox(NULL, 1, 2, 0, 0, 0, 0, ltkBorderNone, 1, 1,
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 1, 1,
new LTKFileReq("fileReq", 0, openSelectCbk, "-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*")
@@ -139,8 +159,8 @@ LTKWindow *makeOpenDialog(LTKApp *app) {
);
}
-LTKWindow *makeSaveDialog(LTKApp *app) {
- return new LTKWindow(app, gTrue, "xpdf: Save as...", NULL, "save",
+LTKWindow *makeSaveDialog(LTKApp *a) {
+ return new LTKWindow(a, gTrue, "xpdf: Save as...", NULL, "save",
new LTKBox(NULL, 1, 2, 0, 0, 0, 0, ltkBorderNone, 1, 1,
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 1, 1,
new LTKFileReq("fileReq", 0, saveSelectCbk, "-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*")
@@ -160,8 +180,8 @@ LTKWindow *makeSaveDialog(LTKApp *app) {
);
}
-LTKWindow *makeFindWindow(LTKApp *app) {
- return new LTKWindow(app, gFalse, "xpdf: Find", NULL, "find",
+LTKWindow *makeFindWindow(LTKApp *a) {
+ return new LTKWindow(a, gFalse, "xpdf: Find", NULL, "find",
new LTKBox(NULL, 1, 3, 0, 0, 0, 0, ltkBorderNone, 1, 1,
new LTKBox(NULL, 2, 1, 0, 0, 0, 0, ltkBorderNone, 1, 0,
new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0,
@@ -189,8 +209,8 @@ LTKWindow *makeFindWindow(LTKApp *app) {
);
}
-LTKWindow *makeAboutWindow(LTKApp *app) {
- return new LTKWindow(app, gFalse, "About xpdf", NULL, "close",
+LTKWindow *makeAboutWindow(LTKApp *a) {
+ return new LTKWindow(a, gFalse, "About xpdf", NULL, "close",
new LTKBox(NULL, 1, 2, 0, 0, 0, 0, ltkBorderNone, 0, 0,
new LTKBox(NULL, 1, 11, 2, 2, 2, 2, ltkBorderSunken, 0, 0,
new LTKBox(NULL, 1, 1, 2, 2, 2, 0, ltkBorderNone, 0, 0,
diff --git a/pdf/xpdf/xpdf.cc b/pdf/xpdf/xpdf.cc
index edd1c75..4e5a2a8 100644
--- a/pdf/xpdf/xpdf.cc
+++ b/pdf/xpdf/xpdf.cc
@@ -72,7 +72,7 @@ enum XpdfMenuItem {
// loadFile / displayPage
static GBool loadFile(GString *fileName);
-static void displayPage(int page1, int zoom1, int rotate1);
+static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist);
// key press and menu callbacks
static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers,
@@ -94,9 +94,10 @@ static void nextPageCbk(LTKWidget *button, int n, GBool on);
static void nextTenPageCbk(LTKWidget *button, int n, GBool on);
static void prevPageCbk(LTKWidget *button, int n, GBool on);
static void prevTenPageCbk(LTKWidget *button, int n, GBool on);
+static void backCbk(LTKWidget *button, int n, GBool on);
+static void forwardCbk(LTKWidget *button, int n, GBool on);
static void pageNumCbk(LTKWidget *textIn, int n, GString *text);
-static void zoomInCbk(LTKWidget *button, int n, GBool on);
-static void zoomOutCbk(LTKWidget *button, int n, GBool on);
+static void zoomMenuCbk(LTKMenuItem *item);
static void postScriptCbk(LTKWidget *button, int n, GBool on);
static void aboutCbk(LTKWidget *button, int n, GBool on);
static void quitCbk(LTKWidget *button, int n, GBool on);
@@ -107,6 +108,7 @@ static void scrollHorizCbk(LTKWidget *scrollbar, int n, int val);
// misc callbacks
static void layoutCbk(LTKWindow *win1);
+static void updateScrollbars();
static void propChangeCbk(LTKWindow *win1, Atom atom);
// selection
@@ -140,22 +142,6 @@ static void doFind(char *s);
static void killCbk(LTKWindow *win1);
//------------------------------------------------------------------------
-// GUI includes
-//------------------------------------------------------------------------
-
-#include "xpdfIcon.xpm"
-#include "leftArrow.xbm"
-#include "dblLeftArrow.xbm"
-#include "rightArrow.xbm"
-#include "dblRightArrow.xbm"
-#include "zoomIn.xbm"
-#include "zoomOut.xbm"
-#include "find.xbm"
-#include "postscript.xbm"
-#include "about.xbm"
-#include "xpdf-ltk.h"
-
-//------------------------------------------------------------------------
// command line options
//------------------------------------------------------------------------
@@ -172,6 +158,12 @@ static XrmOptionDescRec opts[] = {
{"-cmap", ".installCmap", XrmoptionNoArg, (XPointer)"on"},
{"-rgb", ".rgbCubeSize", XrmoptionSepArg, NULL},
{"-papercolor", ".paperColor", XrmoptionSepArg, NULL},
+#if JAPANESE_SUPPORT
+ {"-eucjp", ".eucjp", XrmoptionNoArg, (XPointer)"off"},
+#endif
+#if HAVE_T1LIB_H
+ {"-t1lib", ".t1libControl", XrmoptionSepArg, NULL},
+#endif
{"-z", ".initialZoom", XrmoptionSepArg, NULL},
{"-ps", ".psFile", XrmoptionSepArg, NULL},
{"-paperw", ".psPaperWidth", XrmoptionSepArg, NULL},
@@ -185,12 +177,13 @@ static GBool printHelp = gFalse;
static char remoteName[100] = "xpdf_";
static GBool doRemoteRaise = gFalse;
static GBool doRemoteQuit = gFalse;
+static GBool viKeys = gFalse;
static ArgDesc argDesc[] = {
{"-err", argFlag, &errorsToTTY, 0,
"send error messages to /dev/tty instead of stderr"},
- {"-z", argIntDummy, NULL, 0,
- "initial zoom level (-5..5)"},
+ {"-z", argStringDummy, NULL, 0,
+ "initial zoom level (-5..5, page, width)"},
{"-g", argStringDummy, NULL, 0,
"initial window geometry"},
{"-geometry", argStringDummy, NULL, 0,
@@ -207,6 +200,14 @@ static ArgDesc argDesc[] = {
"biggest RGB cube to allocate (default is 5)"},
{"-papercolor", argStringDummy, NULL, 0,
"color of paper background"},
+#if JAPANESE_SUPPORT
+ {"-eucjp", argStringDummy, NULL, 0,
+ "convert Japanese text to EUC-JP"},
+#endif
+#if HAVE_T1LIB_H
+ {"-t1lib", argStringDummy, NULL, 0,
+ "t1lib font control: none, plain, low, high"},
+#endif
{"-ps", argStringDummy, NULL, 0,
"default PostScript file/command name"},
{"-paperw", argIntDummy, NULL, 0,
@@ -217,6 +218,8 @@ static ArgDesc argDesc[] = {
"generate Level 1 PostScript"},
{"-cmd", argFlag, &printCommands, 0,
"print commands as they're executed"},
+ {"-q", argFlag, &errQuiet, 0,
+ "don't print any messages or errors"},
{"-h", argFlag, &printHelp, 0,
"print usage information"},
{"-help", argFlag, &printHelp, 0,
@@ -229,14 +232,17 @@ static ArgDesc argDesc[] = {
//------------------------------------------------------------------------
// zoom factor is 1.2 (similar to DVI magsteps)
-#define minZoom -5
-#define maxZoom 5
+#define minZoom -5
+#define maxZoom 5
+#define zoomPage 100
+#define zoomWidth 101
static int zoomDPI[maxZoom - minZoom + 1] = {
29, 35, 42, 50, 60,
72,
86, 104, 124, 149, 179
};
-#define defZoom 1
+#define defZoom 1
+#define defZoomStr "1"
static PDFDoc *doc;
@@ -255,6 +261,19 @@ static GBool lastDragLeft; // last dragged selection edge was left/right
static GBool lastDragTop; // last dragged selection edge was top/bottom
static int panMX, panMY; // last mouse position for pan
+struct History {
+ GString *fileName;
+ int page;
+};
+#define historySize 50
+static History // page history queue
+ history[historySize];
+static int historyCur; // currently displayed page
+static int historyBLen; // number of valid entries backward from
+ // current entry
+static int historyFLen; // number of valid entries forward from
+ // current entry
+
static GString *defPSFileName;
static GString *psFileName;
static int psFirstPage, psLastPage;
@@ -266,11 +285,13 @@ static GString *urlCommand; // command to execute for URI links
static LTKApp *app;
static Display *display;
static LTKWindow *win;
+static LTKMenu *zoomMenu;
static LTKScrollingCanvas *canvas;
static LTKScrollbar *hScrollbar, *vScrollbar;
static LTKTextIn *pageNumText;
static LTKLabel *numPagesLabel;
static LTKLabel *linkLabel;
+static LTKMenuButton *zoomMenuBtn;
static LTKWindow *aboutWin;
static LTKWindow *psDialog;
static LTKWindow *openDialog;
@@ -280,6 +301,22 @@ static Atom remoteAtom;
static GC selectGC;
//------------------------------------------------------------------------
+// GUI includes
+//------------------------------------------------------------------------
+
+#include "xpdfIcon.xpm"
+#include "leftArrow.xbm"
+#include "dblLeftArrow.xbm"
+#include "rightArrow.xbm"
+#include "dblRightArrow.xbm"
+#include "backArrow.xbm"
+#include "forwardArrow.xbm"
+#include "find.xbm"
+#include "postscript.xbm"
+#include "about.xbm"
+#include "xpdf-ltk.h"
+
+//------------------------------------------------------------------------
// main program
//------------------------------------------------------------------------
@@ -294,8 +331,10 @@ int main(int argc, char *argv[]) {
int pg;
int x, y;
Guint width, height;
+ GString *zoomStr;
GBool ok;
char s[20];
+ int i;
int ret;
// initialize
@@ -372,8 +411,16 @@ int main(int argc, char *argv[]) {
}
// print banner
- fprintf(errFile, "xpdf version %s\n", xpdfVersion);
- fprintf(errFile, "%s\n", xpdfCopyright);
+ if (!errQuiet) {
+ fprintf(errFile, "xpdf version %s\n", xpdfVersion);
+ fprintf(errFile, "%s\n", xpdfCopyright);
+ }
+
+ // no history yet
+ historyCur = historySize - 1;
+ historyBLen = historyFLen = 0;
+ for (i = 0; i < historySize; ++i)
+ history[i].fileName = NULL;
// open PDF file
defPSFileName = app->getStringResource("psFile", NULL);
@@ -391,8 +438,9 @@ int main(int argc, char *argv[]) {
pg = 1;
// create window
- win = makeWindow(app);
menu = makeMenu();
+ zoomMenu = makeZoomMenu();
+ win = makeWindow(app);
win->setMenu(menu);
canvas = (LTKScrollingCanvas *)win->findWidget("canvas");
hScrollbar = (LTKScrollbar *)win->findWidget("hScrollbar");
@@ -400,6 +448,7 @@ int main(int argc, char *argv[]) {
pageNumText = (LTKTextIn *)win->findWidget("pageNum");
numPagesLabel = (LTKLabel *)win->findWidget("numPages");
linkLabel = (LTKLabel *)win->findWidget("link");
+ zoomMenuBtn = (LTKMenuButton *)win->findWidget("zoom");
win->setKeyCbk(&keyPressCbk);
win->setLayoutCbk(&layoutCbk);
canvas->setButtonPressCbk(&buttonPressCbk);
@@ -421,32 +470,80 @@ int main(int argc, char *argv[]) {
paperColor = app->getColorResource("paperColor", "white",
WhitePixel(display, app->getScreenNum()),
NULL);
- zoom = app->getIntResource("initialZoom", defZoom);
- if (zoom < minZoom)
- zoom = minZoom;
- else if (zoom > maxZoom)
- zoom = maxZoom;
-
- // get geometry
- x = -1;
- y = -1;
- if (!doc) {
- width = 612;
- height = 792;
- } else if (doc->getPageRotate(pg) == 90 || doc->getPageRotate(pg) == 270) {
- width = (int)(doc->getPageHeight(pg) + 0.5);
- height = (int)(doc->getPageWidth(pg) + 0.5);
+#if JAPANESE_SUPPORT
+ useEUCJP = app->getBoolResource("eucjp", gFalse);
+#else
+ useEUCJP = gFalse;
+#endif
+#if HAVE_T1LIB_H
+ t1libControl = app->getStringResource("t1libControl", "low");
+#endif
+ t1Courier = app->getStringResource("t1Courier", NULL);
+ t1CourierBold = app->getStringResource("t1CourierBold", NULL);
+ t1CourierBoldOblique = app->getStringResource("t1CourierBoldOblique", NULL);
+ t1CourierOblique = app->getStringResource("t1CourierOblique", NULL);
+ t1Helvetica = app->getStringResource("t1Helvetica", NULL);
+ t1HelveticaBold = app->getStringResource("t1HelveticaBold", NULL);
+ t1HelveticaBoldOblique =
+ app->getStringResource("t1HelveticaBoldOblique", NULL);
+ t1HelveticaOblique = app->getStringResource("t1HelveticaOblique", NULL);
+ t1Symbol = app->getStringResource("t1Symbol", NULL);
+ t1TimesBold = app->getStringResource("t1TimesBold", NULL);
+ t1TimesBoldItalic = app->getStringResource("t1TimesBoldItalic", NULL);
+ t1TimesItalic = app->getStringResource("t1TimesItalic", NULL);
+ t1TimesRoman = app->getStringResource("t1TimesRoman", NULL);
+ t1ZapfDingbats = app->getStringResource("t1ZapfDingbats", NULL);
+#if JAPANESE_SUPPORT
+ japan12Font = app->getStringResource("japaneseFont", NULL);
+#endif
+ zoomStr = app->getStringResource("initialZoom", defZoomStr);
+ if (!zoomStr->cmp("page")) {
+ zoom = zoomPage;
+ i = maxZoom - minZoom + 2;
+ } else if (!zoomStr->cmp("width")) {
+ zoom = zoomWidth;
+ i = maxZoom - minZoom + 3;
} else {
- width = (int)(doc->getPageWidth(pg) + 0.5);
- height = (int)(doc->getPageHeight(pg) + 0.5);
+ zoom = atoi(zoomStr->getCString());
+ if (zoom < minZoom)
+ zoom = minZoom;
+ else if (zoom > maxZoom)
+ zoom = maxZoom;
+ i = zoom - minZoom;
}
- width = (width * zoomDPI[zoom - minZoom]) / 72 + 28;
- if (width > (Guint)app->getDisplayWidth() - 100)
- width = app->getDisplayWidth() - 100;
- height = (height * zoomDPI[zoom - minZoom]) / 72 + 56;
- if (height > (Guint)app->getDisplayHeight() - 100)
- height = app->getDisplayHeight() - 100;
+ delete zoomStr;
+ zoomMenuBtn->setInitialMenuItem(zoomMenu->getItem(i));
+ viKeys = app->getBoolResource("viKeys", gFalse);
+
+ // get geometry
+ x = y = -1;
+ width = height = 0;
app->getGeometryResource("geometry", &x, &y, &width, &height);
+ if (width == 0 || height == 0) {
+ if (!doc || doc->getNumPages() == 0) {
+ width = 612;
+ height = 792;
+ } else if (doc->getPageRotate(pg) == 90 || doc->getPageRotate(pg) == 270) {
+ width = (int)(doc->getPageHeight(pg) + 0.5);
+ height = (int)(doc->getPageWidth(pg) + 0.5);
+ } else {
+ width = (int)(doc->getPageWidth(pg) + 0.5);
+ height = (int)(doc->getPageHeight(pg) + 0.5);
+ }
+ if (zoom == zoomPage || zoom == zoomWidth) {
+ width = (width * zoomDPI[defZoom - minZoom]) / 72 + 28;
+ height = (height * zoomDPI[defZoom - minZoom]) / 72 + 56;
+ } else {
+ width = (width * zoomDPI[zoom - minZoom]) / 72 + 28;
+ height = (height * zoomDPI[zoom - minZoom]) / 72 + 56;
+ }
+ if (width > (Guint)app->getDisplayWidth() - 100) {
+ width = app->getDisplayWidth() - 100;
+ }
+ if (height > (Guint)app->getDisplayHeight() - 100) {
+ height = app->getDisplayHeight() - 100;
+ }
+ }
// finish setting up window
sprintf(s, "of %d", doc ? doc->getNumPages() : 0);
@@ -480,9 +577,10 @@ int main(int argc, char *argv[]) {
// create output device
out = new LTKOutputDev(win, paperColor);
+ out->startDoc();
// display first page
- displayPage(pg, zoom, 0);
+ displayPage(pg, zoom, 0, gTrue);
// event loop
quit = gFalse;
@@ -517,11 +615,51 @@ int main(int argc, char *argv[]) {
delete fileReqDir;
if (urlCommand)
delete urlCommand;
+#if HAVE_T1LIB_H
+ if (t1libControl)
+ delete t1libControl;
+#endif
+ if (t1Courier)
+ delete t1Courier;
+ if (t1CourierBold)
+ delete t1CourierBold;
+ if (t1CourierBoldOblique)
+ delete t1CourierBoldOblique;
+ if (t1CourierOblique)
+ delete t1CourierOblique;
+ if (t1Helvetica)
+ delete t1Helvetica;
+ if (t1HelveticaBold)
+ delete t1HelveticaBold;
+ if (t1HelveticaBoldOblique)
+ delete t1HelveticaBoldOblique;
+ if (t1HelveticaOblique)
+ delete t1HelveticaOblique;
+ if (t1Symbol)
+ delete t1Symbol;
+ if (t1TimesBold)
+ delete t1TimesBold;
+ if (t1TimesBoldItalic)
+ delete t1TimesBoldItalic;
+ if (t1TimesItalic)
+ delete t1TimesItalic;
+ if (t1TimesRoman)
+ delete t1TimesRoman;
+ if (t1ZapfDingbats)
+ delete t1ZapfDingbats;
+#if JAPANESE_FONT
+ if (japan12Font)
+ delete japan12Font;
+#endif
+ for (i = 0; i < historySize; ++i) {
+ if (history[i].fileName)
+ delete history[i].fileName;
+ }
freeParams();
// check for memory leaks
- Object::memCheck(errFile);
- gMemReport(errFile);
+ Object::memCheck(errFile ? errFile : stderr);
+ gMemReport(errFile ? errFile : stderr);
return ret;
}
@@ -553,6 +691,8 @@ static GBool loadFile(GString *fileName) {
if (doc)
delete doc;
doc = newDoc;
+ if (out)
+ out->startDoc();
// nothing displayed yet
page = -99;
@@ -588,11 +728,14 @@ static GBool loadFile(GString *fileName) {
return gTrue;
}
-static void displayPage(int page1, int zoom1, int rotate1) {
+static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist) {
+ double hDPI, vDPI, dpi;
+ int rot;
char s[20];
+ History *h;
// check for document
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
// busy cursor
@@ -613,13 +756,50 @@ static void displayPage(int page1, int zoom1, int rotate1) {
lastDragLeft = lastDragTop = gTrue;
// draw the page
- doc->displayPage(out, page, zoomDPI[zoom - minZoom], rotate, gTrue);
- layoutCbk(win);
+ rot = rotate + doc->getPageRotate(page);
+ if (rot >= 360)
+ rot -= 360;
+ else if (rotate < 0)
+ rot += 360;
+ if (zoom == zoomPage) {
+ if (rot == 90 || rot == 270) {
+ hDPI = ((win->getWidth() - 28) / doc->getPageHeight(page)) * 72;
+ vDPI = ((win->getHeight() - 56) / doc->getPageWidth(page)) * 72;
+ } else {
+ hDPI = ((win->getWidth() - 28) / doc->getPageWidth(page)) * 72;
+ vDPI = ((win->getHeight() - 56) / doc->getPageHeight(page)) * 72;
+ }
+ dpi = (hDPI < vDPI) ? hDPI : vDPI;
+ } else if (zoom == zoomWidth) {
+ if (rot == 90 || rot == 270) {
+ dpi = ((win->getWidth() - 28) / doc->getPageHeight(page)) * 72;
+ } else {
+ dpi = ((win->getWidth() - 28) / doc->getPageWidth(page)) * 72;
+ }
+ } else {
+ dpi = zoomDPI[zoom - minZoom];
+ }
+ doc->displayPage(out, page, dpi, rotate, gTrue);
+ updateScrollbars();
// update page number display
sprintf(s, "%d", page);
pageNumText->setText(s);
+ // add to history
+ if (addToHist) {
+ if (++historyCur == historySize)
+ historyCur = 0;
+ h = &history[historyCur];
+ if (h->fileName)
+ delete h->fileName;
+ h->fileName = doc->getFileName()->copy();
+ h->page = page;
+ if (historyBLen < historySize)
+ ++historyBLen;
+ historyFLen = 0;
+ }
+
// back to regular cursor
win->setBusyCursor(gFalse);
}
@@ -662,15 +842,42 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers,
case '\177': // del
if (vScrollbar->getPos() == 0) {
prevPageCbk(NULL, 0, gTrue);
+ vScrollbar->setPos(canvas->getRealHeight() - canvas->getHeight(),
+ canvas->getHeight());
+ canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
} else {
vScrollbar->setPos(vScrollbar->getPos() - canvas->getHeight(),
canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
}
break;
+ case 'h': // vi-style left
+ if (viKeys) {
+ hScrollbar->setPos(hScrollbar->getPos() - 16, canvas->getWidth());
+ canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
+ }
+ break;
+ case 'l': // vi-style right
+ if (viKeys) {
+ hScrollbar->setPos(hScrollbar->getPos() + 16, canvas->getWidth());
+ canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
+ }
+ break;
+ case 'k': // vi-style up
+ if (viKeys) {
+ vScrollbar->setPos(vScrollbar->getPos() - 16, canvas->getHeight());
+ canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
+ }
+ break;
+ case 'j': // vi-style down
+ if (viKeys) {
+ vScrollbar->setPos(vScrollbar->getPos() + 16, canvas->getHeight());
+ canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
+ }
+ break;
case '\014': // ^L
win->redraw();
- displayPage(page, zoom, rotate);
+ displayPage(page, zoom, rotate, gFalse);
break;
case 'Q':
case 'q':
@@ -680,11 +887,13 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers,
} else {
switch (key) {
case XK_Home:
+ case XK_KP_Home:
hScrollbar->setPos(0, canvas->getWidth());
vScrollbar->setPos(0, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
break;
case XK_End:
+ case XK_KP_End:
hScrollbar->setPos(canvas->getRealWidth() - canvas->getWidth(),
canvas->getWidth());
vScrollbar->setPos(canvas->getRealHeight() - canvas->getHeight(),
@@ -692,8 +901,12 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers,
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
break;
case XK_Page_Up:
+ case XK_KP_Page_Up:
if (vScrollbar->getPos() == 0) {
prevPageCbk(NULL, 0, gTrue);
+ vScrollbar->setPos(canvas->getRealHeight() - canvas->getHeight(),
+ canvas->getHeight());
+ canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
} else {
vScrollbar->setPos(vScrollbar->getPos() - canvas->getHeight(),
canvas->getHeight());
@@ -701,6 +914,7 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers,
}
break;
case XK_Page_Down:
+ case XK_KP_Page_Down:
if (vScrollbar->getPos() >=
canvas->getRealHeight() - canvas->getHeight()) {
nextPageCbk(NULL, 0, gTrue);
@@ -711,18 +925,22 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers,
}
break;
case XK_Left:
+ case XK_KP_Left:
hScrollbar->setPos(hScrollbar->getPos() - 16, canvas->getWidth());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
break;
case XK_Right:
+ case XK_KP_Right:
hScrollbar->setPos(hScrollbar->getPos() + 16, canvas->getWidth());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
break;
case XK_Up:
+ case XK_KP_Up:
vScrollbar->setPos(vScrollbar->getPos() - 16, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
break;
case XK_Down:
+ case XK_KP_Down:
vScrollbar->setPos(vScrollbar->getPos() + 16, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
break;
@@ -744,13 +962,13 @@ static void menuCbk(LTKMenuItem *item) {
case menuRotateLeft:
if (doc) {
r = (rotate == 0) ? 270 : rotate - 90;
- displayPage(page, zoom, r);
+ displayPage(page, zoom, r, gFalse);
}
break;
case menuRotateRight:
if (doc) {
r = (rotate == 270) ? 0 : rotate + 90;
- displayPage(page, zoom, r);
+ displayPage(page, zoom, r, gFalse);
}
break;
case menuQuit:
@@ -765,7 +983,7 @@ static void menuCbk(LTKMenuItem *item) {
static void buttonPressCbk(LTKWidget *canvas1, int n,
int mx, int my, int button, GBool dblClick) {
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (button == 1) {
setSelection(mx, my, mx, my);
@@ -779,7 +997,7 @@ static void buttonReleaseCbk(LTKWidget *canvas1, int n,
int mx, int my, int button, GBool click) {
GString *s;
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (button == 1) {
@@ -789,6 +1007,8 @@ static void buttonReleaseCbk(LTKWidget *canvas1, int n,
if (doc->okToCopy()) {
s = out->getText(selectXMin, selectYMin, selectXMax, selectYMax);
win->setSelection(NULL, s);
+ } else {
+ error(-1, "Copying of text from this document is not allowed.");
}
#endif
@@ -856,7 +1076,7 @@ static void doLink(int mx, int my) {
}
if (!dest) {
if (kind == actionGoToR)
- displayPage(1, zoom, 0);
+ displayPage(1, zoom, 0, gTrue);
} else {
if (dest->isPageRef()) {
pageRef = dest->getPageRef();
@@ -865,9 +1085,9 @@ static void doLink(int mx, int my) {
pg = dest->getPageNum();
}
if (pg > 0 && pg != page)
- displayPage(pg, zoom, rotate);
+ displayPage(pg, zoom, rotate, gTrue);
else if (pg <= 0)
- displayPage(1, zoom, rotate);
+ displayPage(1, zoom, rotate, gTrue);
switch (dest->getKind()) {
case destXYZ:
out->cvtUserToDev(dest->getLeft(), dest->getTop(), &dx, &dy);
@@ -929,7 +1149,7 @@ static void doLink(int mx, int my) {
grabPath(doc->getFileName()->getCString()), s);
if (!loadFile(fileName))
return;
- displayPage(1, zoom, rotate);
+ displayPage(1, zoom, rotate, gTrue);
} else {
fileName = fileName->copy();
if (((LinkLaunch *)action)->getParams()) {
@@ -998,7 +1218,7 @@ static void mouseMoveCbk(LTKWidget *widget, int widgetNum, int mx, int my) {
LinkAction *action;
char *s;
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
out->cvtDevToUser(mx, my, &x, &y);
if ((action = doc->findLink(x, y))) {
@@ -1117,12 +1337,12 @@ static void mouseDragCbk(LTKWidget *widget, int widgetNum,
//------------------------------------------------------------------------
static void nextPageCbk(LTKWidget *button, int n, GBool on) {
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (page < doc->getNumPages()) {
vScrollbar->setPos(0, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
- displayPage(page + 1, zoom, rotate);
+ displayPage(page + 1, zoom, rotate, gTrue);
} else {
XBell(display, 0);
}
@@ -1131,26 +1351,26 @@ static void nextPageCbk(LTKWidget *button, int n, GBool on) {
static void nextTenPageCbk(LTKWidget *button, int n, GBool on) {
int pg;
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (page < doc->getNumPages()) {
vScrollbar->setPos(0, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
if ((pg = page + 10) > doc->getNumPages())
pg = doc->getNumPages();
- displayPage(pg, zoom, rotate);
+ displayPage(pg, zoom, rotate, gTrue);
} else {
XBell(display, 0);
}
}
static void prevPageCbk(LTKWidget *button, int n, GBool on) {
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (page > 1) {
vScrollbar->setPos(0, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
- displayPage(page - 1, zoom, rotate);
+ displayPage(page - 1, zoom, rotate, gTrue);
} else {
XBell(display, 0);
}
@@ -1159,29 +1379,65 @@ static void prevPageCbk(LTKWidget *button, int n, GBool on) {
static void prevTenPageCbk(LTKWidget *button, int n, GBool on) {
int pg;
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (page > 1) {
vScrollbar->setPos(0, canvas->getHeight());
canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos());
if ((pg = page - 10) < 1)
pg = 1;
- displayPage(pg, zoom, rotate);
+ displayPage(pg, zoom, rotate, gTrue);
} else {
XBell(display, 0);
}
}
+static void backCbk(LTKWidget *button, int n, GBool on) {
+ if (historyBLen <= 1) {
+ XBell(display, 0);
+ return;
+ }
+ if (--historyCur < 0)
+ historyCur = historySize - 1;
+ --historyBLen;
+ ++historyFLen;
+ if (history[historyCur].fileName->cmp(doc->getFileName()) != 0) {
+ if (!loadFile(history[historyCur].fileName->copy())) {
+ XBell(display, 0);
+ return;
+ }
+ }
+ displayPage(history[historyCur].page, zoom, rotate, gFalse);
+}
+
+static void forwardCbk(LTKWidget *button, int n, GBool on) {
+ if (historyFLen == 0) {
+ XBell(display, 0);
+ return;
+ }
+ if (++historyCur == historySize)
+ historyCur = 0;
+ --historyFLen;
+ ++historyBLen;
+ if (history[historyCur].fileName->cmp(doc->getFileName()) != 0) {
+ if (!loadFile(history[historyCur].fileName->copy())) {
+ XBell(display, 0);
+ return;
+ }
+ }
+ displayPage(history[historyCur].page, zoom, rotate, gFalse);
+}
+
static void pageNumCbk(LTKWidget *textIn, int n, GString *text) {
int page1;
char s[20];
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
page1 = atoi(text->getCString());
if (page1 >= 1 && page1 <= doc->getNumPages()) {
if (page1 != page)
- displayPage(page1, zoom, rotate);
+ displayPage(page1, zoom, rotate, gTrue);
} else {
XBell(display, 0);
sprintf(s, "%d", page);
@@ -1189,22 +1445,16 @@ static void pageNumCbk(LTKWidget *textIn, int n, GString *text) {
}
}
-static void zoomInCbk(LTKWidget *button, int n, GBool on) {
- if (!doc)
- return;
- if (zoom < maxZoom)
- displayPage(page, zoom + 1, rotate);
- else
- XBell(display, 0);
-}
+static void zoomMenuCbk(LTKMenuItem *item) {
+ int z;
-static void zoomOutCbk(LTKWidget *button, int n, GBool on) {
- if (!doc)
+ if (!doc || doc->getNumPages() == 0) {
return;
- if (zoom > minZoom)
- displayPage(page, zoom - 1, rotate);
- else
- XBell(display, 0);
+ }
+ z = item->getItemNum();
+ if (z != zoom) {
+ displayPage(page, z, rotate, gFalse);
+ }
}
static void postScriptCbk(LTKWidget *button, int n, GBool on) {
@@ -1240,6 +1490,14 @@ static void scrollHorizCbk(LTKWidget *scrollbar, int n, int val) {
//------------------------------------------------------------------------
static void layoutCbk(LTKWindow *win1) {
+ if (page >= 0 && (zoom == zoomPage || zoom == zoomWidth)) {
+ displayPage(page, zoom, rotate, gFalse);
+ } else {
+ updateScrollbars();
+ }
+}
+
+static void updateScrollbars() {
hScrollbar->setLimits(0, canvas->getRealWidth() - 1);
hScrollbar->setPos(hScrollbar->getPos(), canvas->getWidth());
hScrollbar->setScrollDelta(16);
@@ -1290,7 +1548,7 @@ static void propChangeCbk(LTKWindow *win1, Atom atom) {
delete newFileName;
}
if (newPage != page && newPage >= 1 && newPage <= doc->getNumPages())
- displayPage(newPage, zoom, rotate);
+ displayPage(newPage, zoom, rotate, gTrue);
// quit
} else if (cmd[0] == 'q') {
@@ -1447,7 +1705,7 @@ static void openSelectCbk(LTKWidget *widget, int n, GString *name) {
openDialog = NULL;
}
if (loadFile(name1))
- displayPage(1, zoom, rotate);
+ displayPage(1, zoom, rotate, gTrue);
}
//------------------------------------------------------------------------
@@ -1557,10 +1815,11 @@ static void psButtonCbk(LTKWidget *button, int n, GBool on) {
psOut = new PSOutputDev(psFileName->getCString(), doc->getCatalog(),
psFirstPage, psLastPage, gTrue, gFalse);
if (psOut->isOk()) {
- doc->displayPages(psOut, psFirstPage, psLastPage,
- zoomDPI[zoom - minZoom], rotate);
+ doc->displayPages(psOut, psFirstPage, psLastPage, 72, 0);
}
delete psOut;
+ } else {
+ error(-1, "Printing this document is not allowed.");
}
delete psDialog;
@@ -1596,7 +1855,7 @@ static void closeAboutCbk(LTKWidget *button, int n, GBool on) {
//------------------------------------------------------------------------
static void findCbk(LTKWidget *button, int n, GBool on) {
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
mapFindWin();
}
@@ -1614,7 +1873,7 @@ static void mapFindWin() {
static void findButtonCbk(LTKWidget *button, int n, GBool on) {
LTKTextIn *textIn;
- if (!doc)
+ if (!doc || doc->getNumPages() == 0)
return;
if (n == 1) {
textIn = (LTKTextIn *)findWin->findWidget("text");
@@ -1656,7 +1915,7 @@ static void doFind(char *s) {
goto found;
// search following pages
- textOut = new TextOutputDev(NULL, gFalse);
+ textOut = new TextOutputDev(NULL, useEUCJP, gFalse);
if (!textOut->isOk()) {
delete textOut;
goto done;
@@ -1690,7 +1949,7 @@ static void doFind(char *s) {
// found on a different page
foundPage:
delete textOut;
- displayPage(pg, zoom, rotate);
+ displayPage(pg, zoom, rotate, gTrue);
if (!out->findText(s, gTrue, gTrue, &xMin, &yMin, &xMax, &yMax))
goto done; // this can happen if coalescing is bad
diff --git a/pdf/xpdf/xpdf.ltk b/pdf/xpdf/xpdf.ltk
index 55afc90..ac56a09 100644
--- a/pdf/xpdf/xpdf.ltk
+++ b/pdf/xpdf/xpdf.ltk
@@ -28,7 +28,11 @@ Window(func:makeWindow title:"xpdf" icon:xpdfIcon) {
}
# buttons, page number, etc.
- Box(x:14 y:1 xfill:1) {
+ Box(x:15 y:1 xfill:1) {
+ Box1() {
+ IconButton(bitmap:backArrow_bits w:backArrow_width
+ h:backArrow_height press:&backCbk)
+ }
Box1() {
IconButton(bitmap:dblLeftArrow_bits w:dblLeftArrow_width
h:dblLeftArrow_height press:&prevTenPageCbk)
@@ -46,6 +50,10 @@ Window(func:makeWindow title:"xpdf" icon:xpdfIcon) {
h:dblRightArrow_height press:&nextTenPageCbk)
}
Box1() {
+ IconButton(bitmap:forwardArrow_bits w:forwardArrow_width
+ h:forwardArrow_height press:&forwardCbk)
+ }
+ Box1() {
Label(text:"Page"
font:"-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*")
}
@@ -58,12 +66,7 @@ Window(func:makeWindow title:"xpdf" icon:xpdfIcon) {
font:"-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*")
}
Box1() {
- IconButton(bitmap:zoomIn_bits w:zoomIn_width
- h:zoomIn_height press:&zoomInCbk)
- }
- Box1() {
- IconButton(bitmap:zoomOut_bits w:zoomOut_width
- h:zoomOut_height press:&zoomOutCbk)
+ MenuButton(name:"zoom" menu:zoomMenu)
}
Box1() {
IconButton(bitmap:find_bits w:find_width
@@ -106,6 +109,27 @@ Menu(func:makeMenu title:"xpdf" n:7) {
}
#------------------------------------------------------------------------
+# popup zoom menu
+#------------------------------------------------------------------------
+
+Menu(func:makeZoomMenu title:"zoom" n:14) {
+ MenuItem(text:"-5" num:-5 select:&zoomMenuCbk)
+ MenuItem(text:"-4" num:-4 select:&zoomMenuCbk)
+ MenuItem(text:"-3" num:-3 select:&zoomMenuCbk)
+ MenuItem(text:"-2" num:-2 select:&zoomMenuCbk)
+ MenuItem(text:"-1" num:-1 select:&zoomMenuCbk)
+ MenuItem(text:"0" num: 0 select:&zoomMenuCbk)
+ MenuItem(text:"+1" num: 1 select:&zoomMenuCbk)
+ MenuItem(text:"+2" num: 2 select:&zoomMenuCbk)
+ MenuItem(text:"+3" num: 3 select:&zoomMenuCbk)
+ MenuItem(text:"+4" num: 4 select:&zoomMenuCbk)
+ MenuItem(text:"+5" num: 5 select:&zoomMenuCbk)
+ MenuItem(text:NULL)
+ MenuItem(text:"fit page" num:100 select:&zoomMenuCbk)
+ MenuItem(text:"fit width" num:101 select:&zoomMenuCbk)
+}
+
+#------------------------------------------------------------------------
# "PostScript output" dialog
#------------------------------------------------------------------------
diff --git a/pdf/xpdf/xpdfconfig.h b/pdf/xpdf/xpdfconfig.h
index 5353d03..9816a08 100644
--- a/pdf/xpdf/xpdfconfig.h
+++ b/pdf/xpdf/xpdfconfig.h
@@ -14,14 +14,14 @@
//------------------------------------------------------------------------
// xpdf version
-#define xpdfVersion "0.80"
+#define xpdfVersion "0.90"
// supported PDF version
-#define pdfVersion "1.2"
-#define pdfVersionNum 1.2
+#define pdfVersion "1.3"
+#define pdfVersionNum 1.3
// copyright notice
-#define xpdfCopyright "Copyright \251 1996-1998 Derek B. Noonburg"
+#define xpdfCopyright "Copyright \251 1996-1999 Derek B. Noonburg"
// default paper size (in points) for PostScript output
#ifdef A4_PAPER
@@ -33,7 +33,7 @@
#endif
// config file name
-#if defined(VMS) || defined(__EMX__)
+#if defined(VMS)
#define xpdfConfigFile "xpdfrc"
#else
#define xpdfConfigFile ".xpdfrc"
@@ -46,8 +46,11 @@
// default maximum size of color cube to allocate
#define defaultRGBCube 5
-// number of fonts to cache
-#define fontCacheSize 16
+// number of X server fonts to cache
+#define serverFontCacheSize 16
+
+// number of Type 1 (t1lib) fonts to cache
+#define t1FontCacheSize 32
//------------------------------------------------------------------------
// uncompress program