From: Arturo Espinosa Date: Fri, 6 Aug 1999 00:14:27 +0000 (+0000) Subject: Painful merge. X-Git-Tag: ChangeLog~31 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=50e9d31c05e9ca11ad43cc570556094782c1b956;p=evince.git 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. --- diff --git a/pdf/goo/Makefile.in b/pdf/goo/Makefile.in index 45e1cdfd..5881ce2f 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 ef92c78f..7a1d8e4a 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,263 +693,3044 @@ static GfxFontEncoding16 japan1278EUCHEnc16 = { japan1278EUCHMap2, 626 }; -static Gushort japan1278HMap2[1250] = { +static Gushort japan1278EUCVMap2[1306] = { 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, + 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, + 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, + 0xffff, 0x0000 +}; + +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, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 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 }, + japan1278HMap2, 625 +}; + +static Gushort japan1278RKSJHMap2[1252] = { + 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, + 0xffff, 0x0000 +}; + +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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 }, + 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, @@ -1317,65 +4099,1986 @@ static Gushort japan1278HMap2[1250] = { 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, + 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, + 0xffff, 0x0000 +}; + +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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 }, + 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, + 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, 0x00e8, + 0x8580, 0x0186, + 0x8581, 0x0128, + 0x859f, 0x0147, + 0x85de, 0x0187, + 0x8640, 0x01a6, + 0x8680, 0x01e5, + 0x8692, 0x0127, + 0x8693, 0x01f7, + 0x86a2, 0x1d37, + 0x8740, 0x1d83, + 0x875f, 0x1da1, + 0x8780, 0x1db8, + 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, + 0xeb40, 0x0279, + 0xeb41, 0x1ecf, + 0xeb43, 0x027c, + 0xeb50, 0x1ed1, + 0xeb52, 0x028b, + 0xeb5b, 0x1ed3, + 0xeb5e, 0x0297, + 0xeb60, 0x1ed6, + 0xeb65, 0x029e, + 0xeb69, 0x1edb, + 0xeb7b, 0x02b4, + 0xeb80, 0x02b8, + 0xeb81, 0x1eed, + 0xeb82, 0x02ba, + 0xebb8, 0x02e5, + 0xebc8, 0x02ed, + 0xebda, 0x02f4, + 0xebf0, 0x0303, + 0xebfc, 0x030b, + 0xec4f, 0x030c, + 0xec60, 0x0316, + 0xec81, 0x0330, + 0xec9f, 0x1eee, + 0xeca0, 0x034b, + 0xeca1, 0x1eef, + 0xeca2, 0x034d, + 0xeca3, 0x1ef0, + 0xeca4, 0x034f, + 0xeca5, 0x1ef1, + 0xeca6, 0x0351, + 0xeca7, 0x1ef2, + 0xeca8, 0x0353, + 0xecc1, 0x1ef3, + 0xecc2, 0x036d, + 0xece1, 0x1ef4, + 0xece2, 0x038d, + 0xece3, 0x1ef5, + 0xece4, 0x038f, + 0xece5, 0x1ef6, + 0xece6, 0x0391, + 0xecec, 0x1ef7, + 0xeced, 0x0398, + 0xed40, 0x1ef8, + 0xed41, 0x039e, + 0xed42, 0x1ef9, + 0xed43, 0x03a0, + 0xed44, 0x1efa, + 0xed45, 0x03a2, + 0xed46, 0x1efb, + 0xed47, 0x03a4, + 0xed48, 0x1efc, + 0xed49, 0x03a6, + 0xed62, 0x1efd, + 0xed63, 0x03c0, + 0xed80, 0x03dc, + 0xed83, 0x1efe, + 0xed84, 0x03e0, + 0xed85, 0x1eff, + 0xed86, 0x03e2, + 0xed87, 0x1f00, + 0xed88, 0x03e4, + 0xed8e, 0x1f01, + 0xed8f, 0x03eb, + 0xed95, 0x1f02, + 0xed9f, 0x03f3, + 0xedbf, 0x040b, + 0xee40, 0x1d83, + 0xee5f, 0x1f04, + 0xee6f, 0x1db1, + 0xee80, 0x1f14, + 0xee82, 0x1dba, + 0xee90, 0x02fa, + 0xee91, 0x02f9, + 0xee92, 0x0301, + 0xee93, 0x1dc8, + 0xee9a, 0x0300, + 0xee9b, 0x1dcf, 0xffff, 0x0000 }; -static GfxFontEncoding16 japan1278HEnc16 = { +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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 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, + 2, 2, 2, 2, 2, 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, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan1278HMap2, 625 + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0098, 0x00e4, 0x007c }, + japan1283pvRKSJHMap2, 218 }; -static Gushort japan1278RKSJHMap2[1252] = { +static Gushort japan1290msRKSJHMap2[340] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, + 0x81b8, 0x02e5, + 0x81c8, 0x02ed, + 0x81da, 0x02f4, + 0x81f0, 0x0303, + 0x81fc, 0x030b, 0x824f, 0x030c, 0x8260, 0x0316, 0x8281, 0x0330, @@ -1387,621 +6090,161 @@ static Gushort japan1278RKSJHMap2[1252] = { 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, + 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, - 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, + 0x9080, 0x0a26, 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, + 0x9680, 0x0e8e, 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, + 0x9840, 0x0fc7, 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, + 0x9d80, 0x1387, 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, 0xffff, 0x0000 }; -static GfxFontEncoding16 japan1278RKSJHEnc16 = { +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, @@ -2033,7 +6276,7 @@ static GfxFontEncoding16 japan1278RKSJHEnc16 = { 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, + 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, @@ -2050,10 +6293,10 @@ static GfxFontEncoding16 japan1278RKSJHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan1278RKSJHMap2, 626 + japan1290msRKSJHMap2, 170 }; -static Gushort japan1278msRKSJHMap2[1424] = { +static Gushort japan1290msRKSJVMap2[496] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -2118,628 +6361,86 @@ static Gushort japan1278msRKSJHMap2[1424] = { 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, + 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, - 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, + 0x9080, 0x0a26, + 0x9140, 0x0aa3, + 0x9180, 0x0ae2, + 0x9240, 0x0b5f, + 0x9280, 0x0b9e, + 0x9340, 0x0c1b, 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, + 0x9840, 0x0fc7, 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, + 0x9d80, 0x1387, 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, + 0xe380, 0x17ef, + 0xe440, 0x186c, + 0xe480, 0x18ab, + 0xe540, 0x1928, + 0xe580, 0x1967, 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, @@ -2765,10 +6466,89 @@ static Gushort japan1278msRKSJHMap2[1424] = { 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 japan1278msRKSJHEnc16 = { +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, @@ -2817,10 +6597,10 @@ static GfxFontEncoding16 japan1278msRKSJHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan1278msRKSJHMap2, 712 + japan1290msRKSJVMap2, 248 }; -static Gushort japan1283pvRKSJHMap2[436] = { +static Gushort japan1290mspRKSJHMap2[340] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -2872,19 +6652,24 @@ static Gushort japan1283pvRKSJHMap2[436] = { 0x84bc, 0x1d5c, 0x84bd, 0x1d6f, 0x84be, 0x1d79, - 0x8540, 0x00e8, - 0x8580, 0x0186, - 0x8581, 0x0128, - 0x859f, 0x0147, - 0x85de, 0x0187, - 0x8640, 0x01a6, - 0x8680, 0x01e5, - 0x8692, 0x0127, - 0x8693, 0x01f7, - 0x86a2, 0x1d37, 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, @@ -2961,87 +6746,35 @@ static Gushort japan1283pvRKSJHMap2[436] = { 0xea40, 0x1cd4, 0xea80, 0x1d13, 0xeaa3, 0x205c, - 0xeb40, 0x0279, - 0xeb41, 0x1ecf, - 0xeb43, 0x027c, - 0xeb50, 0x1ed1, - 0xeb52, 0x028b, - 0xeb5b, 0x1ed3, - 0xeb5e, 0x0297, - 0xeb60, 0x1ed6, - 0xeb65, 0x029e, - 0xeb69, 0x1edb, - 0xeb7b, 0x02b4, - 0xeb80, 0x02b8, - 0xeb81, 0x1eed, - 0xeb82, 0x02ba, - 0xebb8, 0x02e5, - 0xebc8, 0x02ed, - 0xebda, 0x02f4, - 0xebf0, 0x0303, - 0xebfc, 0x030b, - 0xec4f, 0x030c, - 0xec60, 0x0316, - 0xec81, 0x0330, - 0xec9f, 0x1eee, - 0xeca0, 0x034b, - 0xeca1, 0x1eef, - 0xeca2, 0x034d, - 0xeca3, 0x1ef0, - 0xeca4, 0x034f, - 0xeca5, 0x1ef1, - 0xeca6, 0x0351, - 0xeca7, 0x1ef2, - 0xeca8, 0x0353, - 0xecc1, 0x1ef3, - 0xecc2, 0x036d, - 0xece1, 0x1ef4, - 0xece2, 0x038d, - 0xece3, 0x1ef5, - 0xece4, 0x038f, - 0xece5, 0x1ef6, - 0xece6, 0x0391, - 0xecec, 0x1ef7, - 0xeced, 0x0398, - 0xed40, 0x1ef8, - 0xed41, 0x039e, - 0xed42, 0x1ef9, - 0xed43, 0x03a0, - 0xed44, 0x1efa, - 0xed45, 0x03a2, - 0xed46, 0x1efb, - 0xed47, 0x03a4, - 0xed48, 0x1efc, - 0xed49, 0x03a6, - 0xed62, 0x1efd, - 0xed63, 0x03c0, - 0xed80, 0x03dc, - 0xed83, 0x1efe, - 0xed84, 0x03e0, - 0xed85, 0x1eff, - 0xed86, 0x03e2, - 0xed87, 0x1f00, - 0xed88, 0x03e4, - 0xed8e, 0x1f01, - 0xed8f, 0x03eb, - 0xed95, 0x1f02, - 0xed9f, 0x03f3, - 0xedbf, 0x040b, - 0xee40, 0x1d83, - 0xee5f, 0x1f04, - 0xee6f, 0x1db1, - 0xee80, 0x1f14, - 0xee82, 0x1dba, - 0xee90, 0x02fa, - 0xee91, 0x02f9, - 0xee92, 0x0301, - 0xee93, 0x1dc8, - 0xee9a, 0x0300, - 0xee9b, 0x1dcf, + 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, 0xffff, 0x0000 }; -static GfxFontEncoding16 japan1283pvRKSJHEnc16 = { +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, @@ -3074,7 +6807,7 @@ static GfxFontEncoding16 japan1283pvRKSJHEnc16 = { 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -3089,11 +6822,11 @@ static GfxFontEncoding16 japan1283pvRKSJHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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 }, - japan1283pvRKSJHMap2, 218 + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + japan1290mspRKSJHMap2, 170 }; -static Gushort japan1290msRKSJHMap2[340] = { +static Gushort japan1290mspRKSJVMap2[496] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -3263,10 +6996,89 @@ static Gushort japan1290msRKSJHMap2[340] = { 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 japan1290msRKSJHEnc16 = { +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, @@ -3287,18 +7099,18 @@ static GfxFontEncoding16 japan1290msRKSJHEnc16 = { 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, + 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, @@ -3315,10 +7127,10 @@ static GfxFontEncoding16 japan1290msRKSJHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan1290msRKSJHMap2, 170 + japan1290mspRKSJVMap2, 248 }; -static Gushort japan1290mspRKSJHMap2[340] = { +static Gushort japan1290pvRKSJHMap2[518] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -3370,30 +7182,116 @@ static Gushort japan1290mspRKSJHMap2[340] = { 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, + 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, @@ -3464,34 +7362,38 @@ static Gushort japan1290mspRKSJHMap2[340] = { 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, + 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, 0xffff, 0x0000 }; -static GfxFontEncoding16 japan1290mspRKSJHEnc16 = { +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, @@ -3524,7 +7426,7 @@ static GfxFontEncoding16 japan1290mspRKSJHEnc16 = { 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, + 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, @@ -3539,11 +7441,11 @@ static GfxFontEncoding16 japan1290mspRKSJHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan1290mspRKSJHMap2, 170 + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0098, 0x00e4, 0x007c }, + japan1290pvRKSJHMap2, 259 }; -static Gushort japan1290pvRKSJHMap2[518] = { +static Gushort japan1290pvRKSJVMap2[620] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -3802,10 +7704,62 @@ static Gushort japan1290pvRKSJHMap2[518] = { 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 japan1290pvRKSJHEnc16 = { +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, @@ -3854,7 +7808,7 @@ static GfxFontEncoding16 japan1290pvRKSJHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0098, 0x00e4, 0x007c }, - japan1290pvRKSJHMap2, 259 + japan1290pvRKSJVMap2, 310 }; static Gushort japan12AddHMap2[1266] = { @@ -4493,59 +8447,751 @@ static Gushort japan12AddHMap2[1266] = { 0xffff, 0x0000 }; -static GfxFontEncoding16 japan12AddHEnc16 = { +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, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 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 }, + japan12AddHMap2, 633 +}; + +static Gushort japan12AddRKSJHMap2[1270] = { + 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, + 0xffff, 0x0000 +}; + +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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 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, + 2, 2, 2, 2, 2, 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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 }, - japan12AddHMap2, 633 + japan12AddRKSJHMap2, 635 }; -static Gushort japan12AddRKSJHMap2[1270] = { +static Gushort japan12AddRKSJVMap2[1384] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -5180,59 +9826,863 @@ static Gushort japan12AddRKSJHMap2[1270] = { 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 japan12AddRKSJHEnc16 = { +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, 2, 2, 2, 2, 2, 2, 2, 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 }, + 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, - 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, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12AddRKSJHMap2, 635 + japan12AddVMap2, 690 }; static Gushort japan12AdobeJapan10Map2[70] = { @@ -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, @@ -5455,14 +10907,186 @@ static Gushort japan12AdobeJapan12Map2[74] = { 0xffff, 0x0000 }; -static GfxFontEncoding16 japan12AdobeJapan12Enc16 = { - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, +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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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 }, + japan12AdobeJapan12Map2, 37 +}; + +static Gushort japan12EUCHMap2[242] = { + 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, + 0xffff, 0x0000 +}; + +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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -5470,24 +11094,30 @@ static GfxFontEncoding16 japan12AdobeJapan12Enc16 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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, @@ -5504,10 +11134,10 @@ static GfxFontEncoding16 japan12AdobeJapan12Enc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12AdobeJapan12Map2, 37 + japan12EUCHMap2, 121 }; -static Gushort japan12EUCHMap2[242] = { +static Gushort japan12EUCVMap2[296] = { 0x0000, 0x0000, 0x8ea0, 0x0146, 0xa1a1, 0x0279, @@ -5628,10 +11258,38 @@ static Gushort japan12EUCHMap2[242] = { 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 japan12EUCHEnc16 = { +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, @@ -5680,7 +11338,7 @@ static GfxFontEncoding16 japan12EUCHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12EUCHMap2, 121 + japan12EUCVMap2, 148 }; static Gushort japan12ExtHMap2[1326] = { @@ -6349,59 +12007,781 @@ static Gushort japan12ExtHMap2[1326] = { 0xffff, 0x0000 }; -static GfxFontEncoding16 japan12ExtHEnc16 = { +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, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 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 }, + japan12ExtHMap2, 663 +}; + +static Gushort japan12ExtRKSJHMap2[1330] = { + 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, + 0xffff, 0x0000 +}; + +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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 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, + 2, 2, 2, 2, 2, 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, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 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 }, - japan12ExtHMap2, 663 + japan12ExtRKSJHMap2, 665 }; -static Gushort japan12ExtRKSJHMap2[1330] = { +static Gushort japan12ExtRKSJVMap2[1408] = { 0x0000, 0x0000, 0x8140, 0x0279, 0x8180, 0x02b8, @@ -7066,10 +13446,1042 @@ static Gushort japan12ExtRKSJHMap2[1330] = { 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, + 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, + 0xffff, 0x0000 +}; + +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, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 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 }, + japan12HMap2, 120 +}; + +static Gushort japan12HankakuMap2[4] = { + 0x0000, 0x0000, 0xffff, 0x0000 }; -static GfxFontEncoding16 japan12ExtRKSJHEnc16 = { +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, @@ -7078,14 +14490,14 @@ static GfxFontEncoding16 japan12ExtRKSJHEnc16 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 }, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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, @@ -7098,11 +14510,111 @@ static GfxFontEncoding16 japan12ExtRKSJHEnc16 = { 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, + 0x00e7, 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, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x0204, 0x0205, + 0x0206, 0x0207, 0x0208, 0x0209, 0x020a, 0x020b, 0x020c, 0x020d, + 0x0156, 0x020e, 0x020f, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, + 0x0215, 0x0216, 0x0217, 0x0218, 0x0219, 0x021a, 0x021b, 0x021c, + 0x0000, 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, + 0x021d, 0x021e, 0x021f, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, + 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, 0x022b, 0x022c, + 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, 0x0233, 0x0234, + 0x0235, 0x0236, 0x0237, 0x0238, 0x0239, 0x023a, 0x0184, 0x0185 }, + japan12HankakuMap2, 2 +}; + +static Gushort japan12HiraganaMap2[4] = { + 0x0000, 0x0000, + 0xffff, 0x0000 +}; + +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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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, + 0x0203, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x0204, 0x0205, + 0x0206, 0x0207, 0x0208, 0x0209, 0x020a, 0x020b, 0x020c, 0x020d, + 0x0156, 0x020e, 0x020f, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, + 0x0215, 0x0216, 0x0217, 0x0218, 0x0219, 0x021a, 0x021b, 0x021c, + 0x021d, 0x021e, 0x021f, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, + 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, 0x022b, 0x022c, + 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, 0x0233, 0x0234, + 0x0235, 0x0236, 0x0237, 0x0238, 0x0239, 0x023a, 0x0184, 0x0185, + 0x023b, 0x023c, 0x023d, 0x0000, 0x0000, 0x0000, 0x023e, 0x023f, + 0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, + 0x0248, 0x0249, 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, + 0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + japan12HiraganaMap2, 2 +}; + +static Gushort japan12KatakanaMap2[4] = { + 0x0000, 0x0000, + 0xffff, 0x0000 +}; + +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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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, @@ -7114,16 +14626,34 @@ static GfxFontEncoding16 japan12ExtRKSJHEnc16 = { 0x016e, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, + 0x0187, 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, 0x018e, + 0x018f, 0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, + 0x0197, 0x0198, 0x0199, 0x019a, 0x019b, 0x019c, 0x019d, 0x019e, + 0x019f, 0x01a0, 0x01a1, 0x01a2, 0x01a3, 0x01a4, 0x01a5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12ExtRKSJHMap2, 665 + japan12KatakanaMap2, 2 }; -static Gushort japan12HMap2[240] = { +static Gushort japan12NWPHMap2[1522] = { 0x0000, 0x0000, 0x2121, 0x0279, + 0x2169, 0x1d36, + 0x216a, 0x02c2, 0x2221, 0x02d7, 0x223a, 0x02e5, 0x224a, 0x02ed, @@ -7139,291 +14669,760 @@ static Gushort japan12HMap2[240] = { 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, + 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, - 0x4f21, 0x0fc7, + 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, - 0x7321, 0x1cd4, - 0x7421, 0x1d32, - 0x7425, 0x205c, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 japan12HEnc16 = { - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 }, - japan12HMap2, 120 -}; - -static Gushort japan12HankakuMap2[4] = { - 0x0000, 0x0000, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 japan12HankakuEnc16 = { - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 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, - 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, - 0x00e7, 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, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x0204, 0x0205, - 0x0206, 0x0207, 0x0208, 0x0209, 0x020a, 0x020b, 0x020c, 0x020d, - 0x0156, 0x020e, 0x020f, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, - 0x0215, 0x0216, 0x0217, 0x0218, 0x0219, 0x021a, 0x021b, 0x021c, - 0x0000, 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, - 0x021d, 0x021e, 0x021f, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, - 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, 0x022b, 0x022c, - 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, 0x0233, 0x0234, - 0x0235, 0x0236, 0x0237, 0x0238, 0x0239, 0x023a, 0x0184, 0x0185 }, - japan12HankakuMap2, 2 -}; - -static Gushort japan12HiraganaMap2[4] = { - 0x0000, 0x0000, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 japan12HiraganaEnc16 = { - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 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, - 0x0203, 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x0204, 0x0205, - 0x0206, 0x0207, 0x0208, 0x0209, 0x020a, 0x020b, 0x020c, 0x020d, - 0x0156, 0x020e, 0x020f, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, - 0x0215, 0x0216, 0x0217, 0x0218, 0x0219, 0x021a, 0x021b, 0x021c, - 0x021d, 0x021e, 0x021f, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, - 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, 0x022b, 0x022c, - 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, 0x0233, 0x0234, - 0x0235, 0x0236, 0x0237, 0x0238, 0x0239, 0x023a, 0x0184, 0x0185, - 0x023b, 0x023c, 0x023d, 0x0000, 0x0000, 0x0000, 0x023e, 0x023f, - 0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, - 0x0248, 0x0249, 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, - 0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12HiraganaMap2, 2 -}; - -static Gushort japan12KatakanaMap2[4] = { - 0x0000, 0x0000, + 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, 0xffff, 0x0000 }; -static GfxFontEncoding16 japan12KatakanaEnc16 = { +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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, @@ -7436,18 +15435,18 @@ static GfxFontEncoding16 japan12KatakanaEnc16 = { 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, - 0x0187, 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, 0x018e, - 0x018f, 0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, - 0x0197, 0x0198, 0x0199, 0x019a, 0x019b, 0x019c, 0x019d, 0x019e, - 0x019f, 0x01a0, 0x01a1, 0x01a2, 0x01a3, 0x01a4, 0x01a5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -7464,10 +15463,10 @@ static GfxFontEncoding16 japan12KatakanaEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12KatakanaMap2, 2 + japan12NWPHMap2, 761 }; -static Gushort japan12NWPHMap2[1522] = { +static Gushort japan12NWPVMap2[1618] = { 0x0000, 0x0000, 0x2121, 0x0279, 0x2169, 0x1d36, @@ -8228,10 +16227,59 @@ static Gushort japan12NWPHMap2[1522] = { 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 japan12NWPHEnc16 = { +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, @@ -8280,7 +16328,7 @@ static GfxFontEncoding16 japan12NWPHEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12NWPHMap2, 761 + japan12NWPVMap2, 809 }; static Gushort japan12RKSJHMap2[244] = { @@ -8408,96 +16456,7322 @@ static Gushort japan12RKSJHMap2[244] = { 0xffff, 0x0000 }; -static GfxFontEncoding16 japan12RKSJHEnc16 = { - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, +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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 }, + 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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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, + 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 }, + japan12RomanMap2, 2 +}; + +static Gushort japan12UniJISUCS2HMap2[13926] = { + 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, + 0xffff, 0x0000 +}; + +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, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 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 }, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, - 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 }, - japan12RKSJHMap2, 122 -}; - -static Gushort japan12RomanMap2[4] = { - 0x0000, 0x0000, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 japan12RomanEnc16 = { - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 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, - 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, @@ -8514,10 +23788,10 @@ static GfxFontEncoding16 japan12RomanEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12RomanMap2, 2 + japan12UniJISUCS2HMap2, 6963 }; -static Gushort japan12UniJISUCS2HMap2[13926] = { +static Gushort japan12UniJISUCS2VMap2[14216] = { 0x0000, 0x0000, 0x0020, 0x0001, 0x005c, 0x0061, @@ -15480,26 +30754,375 @@ static Gushort japan12UniJISUCS2HMap2[13926] = { 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 japan12UniJISUCS2HEnc16 = { - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +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, 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, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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, @@ -15532,7 +31155,7 @@ static GfxFontEncoding16 japan12UniJISUCS2HEnc16 = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - japan12UniJISUCS2HMap2, 6963 + japan12VMap2, 147 }; static Gushort japan12WPSymbolMap2[4] = { @@ -15541,6 +31164,7 @@ static Gushort japan12WPSymbolMap2[4] = { }; 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 fded0bef..ea968ee8 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 72ff0a30..abda62d2 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 cbb623ba..0dc81505 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 d4fd9a5b..ee85b95b 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 d58ddd8a..bbf5bdf2 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 e1dc3d4e..f725f85d 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 d1148cf2..d93a81f9 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); //------------------------------------------------------------------------ @@ -52,125 +54,13 @@ static Gushort *defCharWidths[12] = { timesBoldItalicWidths }; -//------------------------------------------------------------------------ -// 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 0e894d9c..30bcf1a5 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 . - char *getCharName(int code) { return encoding[code]; } - - // Return the code associated with . - 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 .. have - int last; // width - double width; + int first; // this record applies to + int last; // chars .. + double width; // char width +}; + +struct GfxFontWidthExcepV { + int first; // this record applies to + int last; // chars .. + 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 . 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 bf0e4de3..c1b6090e 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 21bbec84..f93ef890 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 00782fb5..93d1c312 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 02b355c1..538618bc 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 62a4c85e..71ad0c5c 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 2fe723c1..6b5935bf 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 dc96dadf..74f61c22 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 777f5262..f9c10674 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 886b6a0b..1537c6a3 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 bc7fb3c7..edff5cdd 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 aa991fa6..603cc08a 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 d09170a8..7a5ee4bb 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 c74f0b5b..6c020c7d 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 8b6c5083..35adfdfe 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 debe1a09..4b5cc9fb 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 fe337408..1af87422 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 d7040cee..667d07c8 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")) { @@ -403,6 +264,249 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params) { return str; } +//------------------------------------------------------------------------ +// 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 409d2ae4..3eb8160b 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 pixels per line, components per - // pixel, and 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.) 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. 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 2d9ddde1..6d675ef4 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 @@ -93,6 +93,72 @@ static char *ascii7Subst[] = { "TM" // trademark }; +//------------------------------------------------------------------------ +// 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 8c1cc778..f13a23a0 100644 --- a/pdf/xpdf/TextOutputDev.h +++ b/pdf/xpdf/TextOutputDev.h @@ -15,10 +15,10 @@ #include #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 is NULL, no file is written // (this is useful, e.g., for searching text). If 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. should also be set for Japanese + // (EUC-JP) text. If 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 0f385cbb..14051082 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 3e762f62..119162cb 100644 --- a/pdf/xpdf/XOutputDev.cc +++ b/pdf/xpdf/XOutputDev.cc @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -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,176 +240,182 @@ 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) { @@ -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 48454212..c0bcfd20 100644 --- a/pdf/xpdf/XOutputDev.h +++ b/pdf/xpdf/XOutputDev.h @@ -16,6 +16,10 @@ #include #include #include +#if HAVE_T1LIB_H +#include +#include +#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 with this font. + virtual void updateGC(GC gc) = 0; - // Reverse map a character. - Guchar revMapChar(Gushort c) { return revMap[c]; } + // Draw character at ,. + 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 with this font. + virtual void updateGC(GC gc); + + // Draw character at ,. + 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 with this font. + virtual void updateGC(GC gc); + + // Draw character at ,. + 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 is true, starts looking at ,; // otherwise starts looking at top of page. If is true, // stops looking at ,; 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 0c54be3b..c33453a0 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 24a4672d..80810db1 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 $@.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 1825a26a..1dd59f0b 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 fae8a182..2c183c83 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 42fa3cd8..6cfe8305 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 08b369fa..d6fd6534 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 aa38a8be..189d4898 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 18429fae..32670912 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 2c18d32e..bc06ee89 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, @@ -30,6 +30,9 @@ LTKWindow *makeWindow(LTKApp *app) { new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0, 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") ), @@ -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 edd1c758..4e5a2a8c 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 @@ -139,22 +141,6 @@ static void doFind(char *s); // app kill callback 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; @@ -279,6 +300,22 @@ static LTKWindow *findWin; 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 55afc906..ac56a091 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) @@ -45,6 +49,10 @@ Window(func:makeWindow title:"xpdf" icon:xpdfIcon) { IconButton(bitmap:dblRightArrow_bits w:dblRightArrow_width 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 @@ -105,6 +108,27 @@ Menu(func:makeMenu title:"xpdf" n:7) { select:&menuCbk) } +#------------------------------------------------------------------------ +# 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 5353d03e..9816a080 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