diff options
author | duerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-21 07:24:39 +0000 |
---|---|---|
committer | duerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-21 07:24:39 +0000 |
commit | 968eb8beac192fcbfad25151879d505911716e99 (patch) | |
tree | 27281e4e8bc4622460fdc72330aaa68b41895902 /transcode_data_one_byte.c | |
parent | f1a81f92cabff73ea06dd2bc8c8efbbc47d924fc (diff) | |
download | ruby-968eb8beac192fcbfad25151879d505911716e99.tar.gz |
Fri Dec 21 16:25:25 2007 Martin Duerst <duerst@it.aoyama.ac.jp>
* common.mk, transcode_data_iso_8859.c: renamed to
transcode_data_one_byte.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode_data_one_byte.c')
-rw-r--r-- | transcode_data_one_byte.c | 2933 |
1 files changed, 2933 insertions, 0 deletions
diff --git a/transcode_data_one_byte.c b/transcode_data_one_byte.c new file mode 100644 index 0000000000..2e2db23da1 --- /dev/null +++ b/transcode_data_one_byte.c @@ -0,0 +1,2933 @@ +#define TRANSCODE_DATA +#include "transcode_data.h" + +static const unsigned char +from_ISO_8859_1_offsets[256] = { + /* used from from_ISO_8859_1 */ + /* used from from_ISO_8859_9 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, +}; +static const struct byte_lookup* const +from_ISO_8859_1_infos[129] = { + NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA1), o2(0xC2,0xA2), + o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC2,0xA5), o2(0xC2,0xA6), + o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC2,0xA9), o2(0xC2,0xAA), + o2(0xC2,0xAB), o2(0xC2,0xAC), o2(0xC2,0xAD), o2(0xC2,0xAE), + o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC2,0xB1), o2(0xC2,0xB2), + o2(0xC2,0xB3), o2(0xC2,0xB4), o2(0xC2,0xB5), o2(0xC2,0xB6), + o2(0xC2,0xB7), o2(0xC2,0xB8), o2(0xC2,0xB9), o2(0xC2,0xBA), + o2(0xC2,0xBB), o2(0xC2,0xBC), o2(0xC2,0xBD), o2(0xC2,0xBE), + o2(0xC2,0xBF), o2(0xC3,0x80), o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86), + o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A), + o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC3,0x8F), o2(0xC3,0x90), o2(0xC3,0x91), o2(0xC3,0x92), + o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96), + o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC3,0x99), o2(0xC3,0x9A), + o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC3,0x9D), o2(0xC3,0x9E), + o2(0xC3,0x9F), o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6), + o2(0xC3,0xA7), o2(0xC3,0xA8), o2(0xC3,0xA9), o2(0xC3,0xAA), + o2(0xC3,0xAB), o2(0xC3,0xAC), o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC3,0xAF), o2(0xC3,0xB0), o2(0xC3,0xB1), o2(0xC3,0xB2), + o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6), + o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC3,0xB9), o2(0xC3,0xBA), + o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC3,0xBD), o2(0xC3,0xBE), + o2(0xC3,0xBF), +}; +const BYTE_LOOKUP +from_ISO_8859_1 = { + from_ISO_8859_1_offsets, + from_ISO_8859_1_infos +}; + +static const unsigned char +to_ISO_8859_1_C2_offsets[64] = { + /* used from to_ISO_8859_1_C2 */ + /* used from to_ISO_8859_1_C3 */ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, +}; +static const struct byte_lookup* const +to_ISO_8859_1_C2_infos[64] = { + /* used from to_ISO_8859_1_C2 */ + /* used from to_ISO_8859_9_C2 */ + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA1), o1(0xA2), o1(0xA3), + o1(0xA4), o1(0xA5), o1(0xA6), o1(0xA7), + o1(0xA8), o1(0xA9), o1(0xAA), o1(0xAB), + o1(0xAC), o1(0xAD), o1(0xAE), o1(0xAF), + o1(0xB0), o1(0xB1), o1(0xB2), o1(0xB3), + o1(0xB4), o1(0xB5), o1(0xB6), o1(0xB7), + o1(0xB8), o1(0xB9), o1(0xBA), o1(0xBB), + o1(0xBC), o1(0xBD), o1(0xBE), o1(0xBF), +}; +static const BYTE_LOOKUP +to_ISO_8859_1_C2 = { + to_ISO_8859_1_C2_offsets, + to_ISO_8859_1_C2_infos +}; + +static const struct byte_lookup* const +to_ISO_8859_1_C3_infos[64] = { + /* used from to_ISO_8859_1_C3 */ + /* used from to_ISO_8859_15_C3 */ + o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3), + o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7), + o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB), + o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF), + o1(0xD0), o1(0xD1), o1(0xD2), o1(0xD3), + o1(0xD4), o1(0xD5), o1(0xD6), o1(0xD7), + o1(0xD8), o1(0xD9), o1(0xDA), o1(0xDB), + o1(0xDC), o1(0xDD), o1(0xDE), o1(0xDF), + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3), + o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7), + o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB), + o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF), + o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7), + o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB), + o1(0xFC), o1(0xFD), o1(0xFE), o1(0xFF), +}; +static const BYTE_LOOKUP +to_ISO_8859_1_C3 = { + to_ISO_8859_1_C2_offsets, + to_ISO_8859_1_C3_infos +}; + +static const unsigned char +to_ISO_8859_1_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +}; +static const struct byte_lookup* const +to_ISO_8859_1_infos[4] = { + NOMAP, &to_ISO_8859_1_C2, + &to_ISO_8859_1_C3, UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_1 = { + to_ISO_8859_1_offsets, + to_ISO_8859_1_infos +}; + +static const unsigned char +from_ISO_8859_15_offsets[256] = { + /* used from from_ISO_8859_15 */ + /* used from from_ISO_8859_2 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, +}; +static const struct byte_lookup* const +from_ISO_8859_2_infos[129] = { + NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0x84), o2(0xCB,0x98), + o2(0xC5,0x81), o2(0xC2,0xA4), o2(0xC4,0xBD), o2(0xC5,0x9A), + o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC5,0xA0), o2(0xC5,0x9E), + o2(0xC5,0xA4), o2(0xC5,0xB9), o2(0xC2,0xAD), o2(0xC5,0xBD), + o2(0xC5,0xBB), o2(0xC2,0xB0), o2(0xC4,0x85), o2(0xCB,0x9B), + o2(0xC5,0x82), o2(0xC2,0xB4), o2(0xC4,0xBE), o2(0xC5,0x9B), + o2(0xCB,0x87), o2(0xC2,0xB8), o2(0xC5,0xA1), o2(0xC5,0x9F), + o2(0xC5,0xA5), o2(0xC5,0xBA), o2(0xCB,0x9D), o2(0xC5,0xBE), + o2(0xC5,0xBC), o2(0xC5,0x94), o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC4,0x82), o2(0xC3,0x84), o2(0xC4,0xB9), o2(0xC4,0x86), + o2(0xC3,0x87), o2(0xC4,0x8C), o2(0xC3,0x89), o2(0xC4,0x98), + o2(0xC3,0x8B), o2(0xC4,0x9A), o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC4,0x8E), o2(0xC4,0x90), o2(0xC5,0x83), o2(0xC5,0x87), + o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC5,0x90), o2(0xC3,0x96), + o2(0xC3,0x97), o2(0xC5,0x98), o2(0xC5,0xAE), o2(0xC3,0x9A), + o2(0xC5,0xB0), o2(0xC3,0x9C), o2(0xC3,0x9D), o2(0xC5,0xA2), + o2(0xC3,0x9F), o2(0xC5,0x95), o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC4,0x83), o2(0xC3,0xA4), o2(0xC4,0xBA), o2(0xC4,0x87), + o2(0xC3,0xA7), o2(0xC4,0x8D), o2(0xC3,0xA9), o2(0xC4,0x99), + o2(0xC3,0xAB), o2(0xC4,0x9B), o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC4,0x8F), o2(0xC4,0x91), o2(0xC5,0x84), o2(0xC5,0x88), + o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC5,0x91), o2(0xC3,0xB6), + o2(0xC3,0xB7), o2(0xC5,0x99), o2(0xC5,0xAF), o2(0xC3,0xBA), + o2(0xC5,0xB1), o2(0xC3,0xBC), o2(0xC3,0xBD), o2(0xC5,0xA3), + o2(0xCB,0x99), +}; +const BYTE_LOOKUP +from_ISO_8859_2 = { + from_ISO_8859_15_offsets, + from_ISO_8859_2_infos +}; + +static const unsigned char +to_ISO_8859_2_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 40, 40, 40, 33, 40, 40, 34, 35, 40, 40, 40, 40, 36, 40, 40, + 37, 40, 40, 40, 38, 40, 40, 40, 39, 40, 40, 40, 40, 40, 40, 40, +}; +static const struct byte_lookup* const +to_ISO_8859_2_C2_infos[41] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA4), o1(0xA7), o1(0xA8), + o1(0xAD), o1(0xB0), o1(0xB4), o1(0xB8), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_2_C2 = { + to_ISO_8859_2_C2_offsets, + to_ISO_8859_2_C2_infos +}; + +static const unsigned char +to_ISO_8859_2_C3_offsets[64] = { + 31, 0, 1, 31, 2, 31, 31, 3, 31, 4, 31, 5, 31, 6, 7, 31, + 31, 31, 31, 8, 9, 31, 10, 11, 31, 31, 12, 31, 13, 14, 31, 15, + 31, 16, 17, 31, 18, 31, 31, 19, 31, 20, 31, 21, 31, 22, 23, 31, + 31, 31, 31, 24, 25, 31, 26, 27, 31, 31, 28, 31, 29, 30, 31, 31, +}; +static const struct byte_lookup* const +to_ISO_8859_2_C3_infos[32] = { + o1(0xC1), o1(0xC2), o1(0xC4), o1(0xC7), + o1(0xC9), o1(0xCB), o1(0xCD), o1(0xCE), + o1(0xD3), o1(0xD4), o1(0xD6), o1(0xD7), + o1(0xDA), o1(0xDC), o1(0xDD), o1(0xDF), + o1(0xE1), o1(0xE2), o1(0xE4), o1(0xE7), + o1(0xE9), o1(0xEB), o1(0xED), o1(0xEE), + o1(0xF3), o1(0xF4), o1(0xF6), o1(0xF7), + o1(0xFA), o1(0xFC), o1(0xFD), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_2_C3 = { + to_ISO_8859_2_C3_offsets, + to_ISO_8859_2_C3_infos +}; + +static const unsigned char +to_ISO_8859_2_C4_offsets[64] = { + 20, 20, 0, 1, 2, 3, 4, 5, 20, 20, 20, 20, 6, 7, 8, 9, + 10, 11, 20, 20, 20, 20, 20, 20, 12, 13, 14, 15, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 17, 20, 20, 18, 19, 20, +}; +static const struct byte_lookup* const +to_ISO_8859_2_C4_infos[21] = { + o1(0xC3), o1(0xE3), o1(0xA1), o1(0xB1), + o1(0xC6), o1(0xE6), o1(0xC8), o1(0xE8), + o1(0xCF), o1(0xEF), o1(0xD0), o1(0xF0), + o1(0xCA), o1(0xEA), o1(0xCC), o1(0xEC), + o1(0xC5), o1(0xE5), o1(0xA5), o1(0xB5), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_2_C4 = { + to_ISO_8859_2_C4_offsets, + to_ISO_8859_2_C4_infos +}; + +static const unsigned char +to_ISO_8859_2_C5_offsets[64] = { + 32, 0, 1, 2, 3, 32, 32, 4, 5, 32, 32, 32, 32, 32, 32, 32, + 6, 7, 32, 32, 8, 9, 32, 32, 10, 11, 12, 13, 32, 32, 14, 15, + 16, 17, 18, 19, 20, 21, 32, 32, 32, 32, 32, 32, 32, 32, 22, 23, + 24, 25, 32, 32, 32, 32, 32, 32, 32, 26, 27, 28, 29, 30, 31, 32, +}; +static const struct byte_lookup* const +to_ISO_8859_2_C5_infos[33] = { + o1(0xA3), o1(0xB3), o1(0xD1), o1(0xF1), + o1(0xD2), o1(0xF2), o1(0xD5), o1(0xF5), + o1(0xC0), o1(0xE0), o1(0xD8), o1(0xF8), + o1(0xA6), o1(0xB6), o1(0xAA), o1(0xBA), + o1(0xA9), o1(0xB9), o1(0xDE), o1(0xFE), + o1(0xAB), o1(0xBB), o1(0xD9), o1(0xF9), + o1(0xDB), o1(0xFB), o1(0xAC), o1(0xBC), + o1(0xAF), o1(0xBF), o1(0xAE), o1(0xBE), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_2_C5 = { + to_ISO_8859_2_C5_offsets, + to_ISO_8859_2_C5_infos +}; + +static const unsigned char +to_ISO_8859_2_CB_offsets[64] = { + 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 1, 2, 5, 3, 5, 4, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; +static const struct byte_lookup* const +to_ISO_8859_2_CB_infos[6] = { + o1(0xB7), o1(0xA2), o1(0xFF), o1(0xB2), + o1(0xBD), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_2_CB = { + to_ISO_8859_2_CB_offsets, + to_ISO_8859_2_CB_infos +}; + +static const unsigned char +to_ISO_8859_2_offsets[256] = { + /* used from to_ISO_8859_2 */ + /* used from to_ISO_8859_3 */ + /* used from to_ISO_8859_4 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 1, 2, 3, 4, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; +static const struct byte_lookup* const +to_ISO_8859_2_infos[7] = { + NOMAP, &to_ISO_8859_2_C2, + &to_ISO_8859_2_C3, &to_ISO_8859_2_C4, + &to_ISO_8859_2_C5, &to_ISO_8859_2_CB, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_2 = { + to_ISO_8859_2_offsets, + to_ISO_8859_2_infos +}; + +static const unsigned char +from_ISO_8859_3_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37,122, 38, 39, 40, 41, 42, 43, 44, 45,122, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,122, 61, + 62, 63, 64,122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 122, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94,122, 95, 96, 97, 98, 99,100,101,102,103,104,105,106, + 122,107,108,109,110,111,112,113, 114,115,116,117,118,119,120,121, +}; +static const struct byte_lookup* const +from_ISO_8859_3_infos[123] = { + NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0xA6), o2(0xCB,0x98), + o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC4,0xA4), o2(0xC2,0xA7), + o2(0xC2,0xA8), o2(0xC4,0xB0), o2(0xC5,0x9E), o2(0xC4,0x9E), + o2(0xC4,0xB4), o2(0xC2,0xAD), o2(0xC5,0xBB), o2(0xC2,0xB0), + o2(0xC4,0xA7), o2(0xC2,0xB2), o2(0xC2,0xB3), o2(0xC2,0xB4), + o2(0xC2,0xB5), o2(0xC4,0xA5), o2(0xC2,0xB7), o2(0xC2,0xB8), + o2(0xC4,0xB1), o2(0xC5,0x9F), o2(0xC4,0x9F), o2(0xC4,0xB5), + o2(0xC2,0xBD), o2(0xC5,0xBC), o2(0xC3,0x80), o2(0xC3,0x81), + o2(0xC3,0x82), o2(0xC3,0x84), o2(0xC4,0x8A), o2(0xC4,0x88), + o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A), + o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC3,0x8F), o2(0xC3,0x91), o2(0xC3,0x92), o2(0xC3,0x93), + o2(0xC3,0x94), o2(0xC4,0xA0), o2(0xC3,0x96), o2(0xC3,0x97), + o2(0xC4,0x9C), o2(0xC3,0x99), o2(0xC3,0x9A), o2(0xC3,0x9B), + o2(0xC3,0x9C), o2(0xC5,0xAC), o2(0xC5,0x9C), o2(0xC3,0x9F), + o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2), o2(0xC3,0xA4), + o2(0xC4,0x8B), o2(0xC4,0x89), o2(0xC3,0xA7), o2(0xC3,0xA8), + o2(0xC3,0xA9), o2(0xC3,0xAA), o2(0xC3,0xAB), o2(0xC3,0xAC), + o2(0xC3,0xAD), o2(0xC3,0xAE), o2(0xC3,0xAF), o2(0xC3,0xB1), + o2(0xC3,0xB2), o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC4,0xA1), + o2(0xC3,0xB6), o2(0xC3,0xB7), o2(0xC4,0x9D), o2(0xC3,0xB9), + o2(0xC3,0xBA), o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC5,0xAD), + o2(0xC5,0x9D), o2(0xCB,0x99), UNDEF, +}; +const BYTE_LOOKUP +from_ISO_8859_3 = { + from_ISO_8859_3_offsets, + from_ISO_8859_3_infos +}; + +static const unsigned char +to_ISO_8859_3_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 46, 46, 33, 34, 46, 46, 35, 36, 46, 46, 46, 46, 37, 46, 46, + 38, 46, 39, 40, 41, 42, 46, 43, 44, 46, 46, 46, 46, 45, 46, 46, +}; +static const struct byte_lookup* const +to_ISO_8859_3_C2_infos[47] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA3), o1(0xA4), o1(0xA7), + o1(0xA8), o1(0xAD), o1(0xB0), o1(0xB2), + o1(0xB3), o1(0xB4), o1(0xB5), o1(0xB7), + o1(0xB8), o1(0xBD), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_3_C2 = { + to_ISO_8859_3_C2_offsets, + to_ISO_8859_3_C2_infos +}; + +static const unsigned char +to_ISO_8859_3_C3_offsets[64] = { + 0, 1, 2, 47, 3, 47, 47, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 47, 13, 14, 15, 16, 47, 17, 18, 47, 19, 20, 21, 22, 47, 47, 23, + 24, 25, 26, 47, 27, 47, 47, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 47, 37, 38, 39, 40, 47, 41, 42, 47, 43, 44, 45, 46, 47, 47, 47, +}; +static const struct byte_lookup* const +to_ISO_8859_3_C3_infos[48] = { + o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC4), + o1(0xC7), o1(0xC8), o1(0xC9), o1(0xCA), + o1(0xCB), o1(0xCC), o1(0xCD), o1(0xCE), + o1(0xCF), o1(0xD1), o1(0xD2), o1(0xD3), + o1(0xD4), o1(0xD6), o1(0xD7), o1(0xD9), + o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDF), + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE4), + o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA), + o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE), + o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF6), o1(0xF7), o1(0xF9), + o1(0xFA), o1(0xFB), o1(0xFC), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_3_C3 = { + to_ISO_8859_3_C3_offsets, + to_ISO_8859_3_C3_infos +}; + +static const unsigned char +to_ISO_8859_3_C4_offsets[64] = { + 18, 18, 18, 18, 18, 18, 18, 18, 0, 1, 2, 3, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 4, 5, 6, 7, + 8, 9, 18, 18, 10, 11, 12, 13, 18, 18, 18, 18, 18, 18, 18, 18, + 14, 15, 18, 18, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, +}; +static const struct byte_lookup* const +to_ISO_8859_3_C4_infos[19] = { + o1(0xC6), o1(0xE6), o1(0xC5), o1(0xE5), + o1(0xD8), o1(0xF8), o1(0xAB), o1(0xBB), + o1(0xD5), o1(0xF5), o1(0xA6), o1(0xB6), + o1(0xA1), o1(0xB1), o1(0xA9), o1(0xB9), + o1(0xAC), o1(0xBC), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_3_C4 = { + to_ISO_8859_3_C4_offsets, + to_ISO_8859_3_C4_infos +}; + +static const unsigned char +to_ISO_8859_3_C5_offsets[64] = { + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 1, 2, 3, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 5, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 8, 8, +}; +static const struct byte_lookup* const +to_ISO_8859_3_C5_infos[9] = { + o1(0xDE), o1(0xFE), o1(0xAA), o1(0xBA), + o1(0xDD), o1(0xFD), o1(0xAF), o1(0xBF), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_3_C5 = { + to_ISO_8859_3_C5_offsets, + to_ISO_8859_3_C5_infos +}; + +static const unsigned char +to_ISO_8859_3_CB_offsets[64] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 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, +}; +static const struct byte_lookup* const +to_ISO_8859_3_CB_infos[3] = { + o1(0xA2), o1(0xFF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_3_CB = { + to_ISO_8859_3_CB_offsets, + to_ISO_8859_3_CB_infos +}; + +static const struct byte_lookup* const +to_ISO_8859_3_infos[7] = { + NOMAP, &to_ISO_8859_3_C2, + &to_ISO_8859_3_C3, &to_ISO_8859_3_C4, + &to_ISO_8859_3_C5, &to_ISO_8859_3_CB, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_3 = { + to_ISO_8859_2_offsets, + to_ISO_8859_3_infos +}; + +static const unsigned char +from_ISO_8859_13_offsets[256] = { + /* used from from_ISO_8859_13 */ + /* used from from_ISO_8859_14 */ + /* used from from_ISO_8859_4 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, +}; +static const struct byte_lookup* const +from_ISO_8859_4_infos[129] = { + NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC4,0x84), o2(0xC4,0xB8), + o2(0xC5,0x96), o2(0xC2,0xA4), o2(0xC4,0xA8), o2(0xC4,0xBB), + o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC5,0xA0), o2(0xC4,0x92), + o2(0xC4,0xA2), o2(0xC5,0xA6), o2(0xC2,0xAD), o2(0xC5,0xBD), + o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC4,0x85), o2(0xCB,0x9B), + o2(0xC5,0x97), o2(0xC2,0xB4), o2(0xC4,0xA9), o2(0xC4,0xBC), + o2(0xCB,0x87), o2(0xC2,0xB8), o2(0xC5,0xA1), o2(0xC4,0x93), + o2(0xC4,0xA3), o2(0xC5,0xA7), o2(0xC5,0x8A), o2(0xC5,0xBE), + o2(0xC5,0x8B), o2(0xC4,0x80), o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86), + o2(0xC4,0xAE), o2(0xC4,0x8C), o2(0xC3,0x89), o2(0xC4,0x98), + o2(0xC3,0x8B), o2(0xC4,0x96), o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC4,0xAA), o2(0xC4,0x90), o2(0xC5,0x85), o2(0xC5,0x8C), + o2(0xC4,0xB6), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96), + o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC5,0xB2), o2(0xC3,0x9A), + o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC5,0xA8), o2(0xC5,0xAA), + o2(0xC3,0x9F), o2(0xC4,0x81), o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6), + o2(0xC4,0xAF), o2(0xC4,0x8D), o2(0xC3,0xA9), o2(0xC4,0x99), + o2(0xC3,0xAB), o2(0xC4,0x97), o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC4,0xAB), o2(0xC4,0x91), o2(0xC5,0x86), o2(0xC5,0x8D), + o2(0xC4,0xB7), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6), + o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC5,0xB3), o2(0xC3,0xBA), + o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC5,0xA9), o2(0xC5,0xAB), + o2(0xCB,0x99), +}; +const BYTE_LOOKUP +from_ISO_8859_4 = { + from_ISO_8859_13_offsets, + from_ISO_8859_4_infos +}; + +static const unsigned char +to_ISO_8859_4_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 41, 41, 41, 33, 41, 41, 34, 35, 41, 41, 41, 41, 36, 41, 37, + 38, 41, 41, 41, 39, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 41, +}; +static const struct byte_lookup* const +to_ISO_8859_4_C2_infos[42] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA4), o1(0xA7), o1(0xA8), + o1(0xAD), o1(0xAF), o1(0xB0), o1(0xB4), + o1(0xB8), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_4_C2 = { + to_ISO_8859_4_C2_offsets, + to_ISO_8859_4_C2_infos +}; + +static const unsigned char +to_ISO_8859_4_C3_offsets[64] = { + 37, 0, 1, 2, 3, 4, 5, 37, 37, 6, 37, 7, 37, 8, 9, 37, + 37, 37, 37, 37, 10, 11, 12, 13, 14, 37, 15, 16, 17, 37, 37, 18, + 37, 19, 20, 21, 22, 23, 24, 37, 37, 25, 37, 26, 37, 27, 28, 37, + 37, 37, 37, 37, 29, 30, 31, 32, 33, 37, 34, 35, 36, 37, 37, 37, +}; +static const struct byte_lookup* const +to_ISO_8859_4_C3_infos[38] = { + o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4), + o1(0xC5), o1(0xC6), o1(0xC9), o1(0xCB), + o1(0xCD), o1(0xCE), o1(0xD4), o1(0xD5), + o1(0xD6), o1(0xD7), o1(0xD8), o1(0xDA), + o1(0xDB), o1(0xDC), o1(0xDF), o1(0xE1), + o1(0xE2), o1(0xE3), o1(0xE4), o1(0xE5), + o1(0xE6), o1(0xE9), o1(0xEB), o1(0xED), + o1(0xEE), o1(0xF4), o1(0xF5), o1(0xF6), + o1(0xF7), o1(0xF8), o1(0xFA), o1(0xFB), + o1(0xFC), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_4_C3 = { + to_ISO_8859_4_C3_offsets, + to_ISO_8859_4_C3_infos +}; + +static const unsigned char +to_ISO_8859_10_C4_offsets[64] = { + /* used from to_ISO_8859_10_C4 */ + /* used from to_ISO_8859_4_C4 */ + 0, 1, 27, 27, 2, 3, 27, 27, 27, 27, 27, 27, 4, 5, 27, 27, + 6, 7, 8, 9, 27, 27, 10, 11, 12, 13, 27, 27, 27, 27, 27, 27, + 27, 27, 14, 15, 27, 27, 27, 27, 16, 17, 18, 19, 27, 27, 20, 21, + 27, 27, 27, 27, 27, 27, 22, 23, 24, 27, 27, 25, 26, 27, 27, 27, +}; +static const struct byte_lookup* const +to_ISO_8859_4_C4_infos[28] = { + o1(0xC0), o1(0xE0), o1(0xA1), o1(0xB1), + o1(0xC8), o1(0xE8), o1(0xD0), o1(0xF0), + o1(0xAA), o1(0xBA), o1(0xCC), o1(0xEC), + o1(0xCA), o1(0xEA), o1(0xAB), o1(0xBB), + o1(0xA5), o1(0xB5), o1(0xCF), o1(0xEF), + o1(0xC7), o1(0xE7), o1(0xD3), o1(0xF3), + o1(0xA2), o1(0xA6), o1(0xB6), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_4_C4 = { + to_ISO_8859_10_C4_offsets, + to_ISO_8859_4_C4_infos +}; + +static const unsigned char +to_ISO_8859_4_C5_offsets[64] = { + 20, 20, 20, 20, 20, 0, 1, 20, 20, 20, 2, 3, 4, 5, 20, 20, + 20, 20, 20, 20, 20, 20, 6, 7, 20, 20, 20, 20, 20, 20, 20, 20, + 8, 9, 20, 20, 20, 20, 10, 11, 12, 13, 14, 15, 20, 20, 20, 20, + 20, 20, 16, 17, 20, 20, 20, 20, 20, 20, 20, 20, 20, 18, 19, 20, +}; +static const struct byte_lookup* const +to_ISO_8859_4_C5_infos[21] = { + o1(0xD1), o1(0xF1), o1(0xBD), o1(0xBF), + o1(0xD2), o1(0xF2), o1(0xA3), o1(0xB3), + o1(0xA9), o1(0xB9), o1(0xAC), o1(0xBC), + o1(0xDD), o1(0xFD), o1(0xDE), o1(0xFE), + o1(0xD9), o1(0xF9), o1(0xAE), o1(0xBE), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_4_C5 = { + to_ISO_8859_4_C5_offsets, + to_ISO_8859_4_C5_infos +}; + +static const unsigned char +to_ISO_8859_4_CB_offsets[64] = { + 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +}; +static const struct byte_lookup* const +to_ISO_8859_4_CB_infos[4] = { + o1(0xB7), o1(0xFF), o1(0xB2), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_4_CB = { + to_ISO_8859_4_CB_offsets, + to_ISO_8859_4_CB_infos +}; + +static const struct byte_lookup* const +to_ISO_8859_4_infos[7] = { + NOMAP, &to_ISO_8859_4_C2, + &to_ISO_8859_4_C3, &to_ISO_8859_4_C4, + &to_ISO_8859_4_C5, &to_ISO_8859_4_CB, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_4 = { + to_ISO_8859_2_offsets, + to_ISO_8859_4_infos +}; + +static const unsigned char +from_ISO_8859_10_offsets[256] = { + /* used from from_ISO_8859_10 */ + /* used from from_ISO_8859_5 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, +}; +static const struct byte_lookup* const +from_ISO_8859_5_infos[129] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o2(0xD0,0x81), o2(0xD0,0x82), + o2(0xD0,0x83), o2(0xD0,0x84), + o2(0xD0,0x85), o2(0xD0,0x86), + o2(0xD0,0x87), o2(0xD0,0x88), + o2(0xD0,0x89), o2(0xD0,0x8A), + o2(0xD0,0x8B), o2(0xD0,0x8C), + o2(0xC2,0xAD), o2(0xD0,0x8E), + o2(0xD0,0x8F), o2(0xD0,0x90), + o2(0xD0,0x91), o2(0xD0,0x92), + o2(0xD0,0x93), o2(0xD0,0x94), + o2(0xD0,0x95), o2(0xD0,0x96), + o2(0xD0,0x97), o2(0xD0,0x98), + o2(0xD0,0x99), o2(0xD0,0x9A), + o2(0xD0,0x9B), o2(0xD0,0x9C), + o2(0xD0,0x9D), o2(0xD0,0x9E), + o2(0xD0,0x9F), o2(0xD0,0xA0), + o2(0xD0,0xA1), o2(0xD0,0xA2), + o2(0xD0,0xA3), o2(0xD0,0xA4), + o2(0xD0,0xA5), o2(0xD0,0xA6), + o2(0xD0,0xA7), o2(0xD0,0xA8), + o2(0xD0,0xA9), o2(0xD0,0xAA), + o2(0xD0,0xAB), o2(0xD0,0xAC), + o2(0xD0,0xAD), o2(0xD0,0xAE), + o2(0xD0,0xAF), o2(0xD0,0xB0), + o2(0xD0,0xB1), o2(0xD0,0xB2), + o2(0xD0,0xB3), o2(0xD0,0xB4), + o2(0xD0,0xB5), o2(0xD0,0xB6), + o2(0xD0,0xB7), o2(0xD0,0xB8), + o2(0xD0,0xB9), o2(0xD0,0xBA), + o2(0xD0,0xBB), o2(0xD0,0xBC), + o2(0xD0,0xBD), o2(0xD0,0xBE), + o2(0xD0,0xBF), o2(0xD1,0x80), + o2(0xD1,0x81), o2(0xD1,0x82), + o2(0xD1,0x83), o2(0xD1,0x84), + o2(0xD1,0x85), o2(0xD1,0x86), + o2(0xD1,0x87), o2(0xD1,0x88), + o2(0xD1,0x89), o2(0xD1,0x8A), + o2(0xD1,0x8B), o2(0xD1,0x8C), + o2(0xD1,0x8D), o2(0xD1,0x8E), + o2(0xD1,0x8F), o3(0xE2,0x84,0x96), + o2(0xD1,0x91), o2(0xD1,0x92), + o2(0xD1,0x93), o2(0xD1,0x94), + o2(0xD1,0x95), o2(0xD1,0x96), + o2(0xD1,0x97), o2(0xD1,0x98), + o2(0xD1,0x99), o2(0xD1,0x9A), + o2(0xD1,0x9B), o2(0xD1,0x9C), + o2(0xC2,0xA7), o2(0xD1,0x9E), + o2(0xD1,0x9F), +}; +const BYTE_LOOKUP +from_ISO_8859_5 = { + from_ISO_8859_10_offsets, + from_ISO_8859_5_infos +}; + +static const unsigned char +to_ISO_8859_5_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 35, 35, 35, 35, 35, 35, 33, 35, 35, 35, 35, 35, 34, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, +}; +static const struct byte_lookup* const +to_ISO_8859_5_C2_infos[36] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xFD), o1(0xAD), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_5_C2 = { + to_ISO_8859_5_C2_offsets, + to_ISO_8859_5_C2_infos +}; + +static const unsigned char +to_ISO_8859_5_D0_offsets[64] = { + 62, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 62, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, +}; +static const struct byte_lookup* const +to_ISO_8859_5_D0_infos[63] = { + o1(0xA1), o1(0xA2), o1(0xA3), o1(0xA4), + o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8), + o1(0xA9), o1(0xAA), o1(0xAB), o1(0xAC), + o1(0xAE), o1(0xAF), o1(0xB0), o1(0xB1), + o1(0xB2), o1(0xB3), o1(0xB4), o1(0xB5), + o1(0xB6), o1(0xB7), o1(0xB8), o1(0xB9), + o1(0xBA), o1(0xBB), o1(0xBC), o1(0xBD), + o1(0xBE), o1(0xBF), o1(0xC0), o1(0xC1), + o1(0xC2), o1(0xC3), o1(0xC4), o1(0xC5), + o1(0xC6), o1(0xC7), o1(0xC8), o1(0xC9), + o1(0xCA), o1(0xCB), o1(0xCC), o1(0xCD), + o1(0xCE), o1(0xCF), o1(0xD0), o1(0xD1), + o1(0xD2), o1(0xD3), o1(0xD4), o1(0xD5), + o1(0xD6), o1(0xD7), o1(0xD8), o1(0xD9), + o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDD), + o1(0xDE), o1(0xDF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_5_D0 = { + to_ISO_8859_5_D0_offsets, + to_ISO_8859_5_D0_infos +}; + +static const unsigned char +to_ISO_8859_5_D1_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 30, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 28, 29, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, +}; +static const struct byte_lookup* const +to_ISO_8859_5_D1_infos[31] = { + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3), + o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7), + o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB), + o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF), + o1(0xF1), o1(0xF2), o1(0xF3), o1(0xF4), + o1(0xF5), o1(0xF6), o1(0xF7), o1(0xF8), + o1(0xF9), o1(0xFA), o1(0xFB), o1(0xFC), + o1(0xFE), o1(0xFF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_5_D1 = { + to_ISO_8859_5_D1_offsets, + to_ISO_8859_5_D1_infos +}; + +static const unsigned char +to_ISO_8859_5_E2_84_offsets[64] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +}; +static const struct byte_lookup* const +to_ISO_8859_5_E2_84_infos[2] = { + o1(0xF0), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_5_E2_84 = { + to_ISO_8859_5_E2_84_offsets, + to_ISO_8859_5_E2_84_infos +}; + +static const unsigned char +to_ISO_8859_5_E2_offsets[64] = { + 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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 const struct byte_lookup* const +to_ISO_8859_5_E2_infos[2] = { + &to_ISO_8859_5_E2_84, UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_5_E2 = { + to_ISO_8859_5_E2_offsets, + to_ISO_8859_5_E2_infos +}; + +static const unsigned char +to_ISO_8859_5_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; +static const struct byte_lookup* const +to_ISO_8859_5_infos[6] = { + NOMAP, &to_ISO_8859_5_C2, + &to_ISO_8859_5_D0, &to_ISO_8859_5_D1, + &to_ISO_8859_5_E2, UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_5 = { + to_ISO_8859_5_offsets, + to_ISO_8859_5_infos +}; + +static const unsigned char +from_ISO_8859_6_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 84, 84, 84, 34, 84, 84, 84, 84, 84, 84, 84, 35, 36, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 37, 84, 84, 84, 38, + 84, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 84, 84, 84, 84, 84, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, +}; +static const struct byte_lookup* const +from_ISO_8859_6_infos[85] = { + NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA4), o2(0xD8,0x8C), + o2(0xC2,0xAD), o2(0xD8,0x9B), o2(0xD8,0x9F), o2(0xD8,0xA1), + o2(0xD8,0xA2), o2(0xD8,0xA3), o2(0xD8,0xA4), o2(0xD8,0xA5), + o2(0xD8,0xA6), o2(0xD8,0xA7), o2(0xD8,0xA8), o2(0xD8,0xA9), + o2(0xD8,0xAA), o2(0xD8,0xAB), o2(0xD8,0xAC), o2(0xD8,0xAD), + o2(0xD8,0xAE), o2(0xD8,0xAF), o2(0xD8,0xB0), o2(0xD8,0xB1), + o2(0xD8,0xB2), o2(0xD8,0xB3), o2(0xD8,0xB4), o2(0xD8,0xB5), + o2(0xD8,0xB6), o2(0xD8,0xB7), o2(0xD8,0xB8), o2(0xD8,0xB9), + o2(0xD8,0xBA), o2(0xD9,0x80), o2(0xD9,0x81), o2(0xD9,0x82), + o2(0xD9,0x83), o2(0xD9,0x84), o2(0xD9,0x85), o2(0xD9,0x86), + o2(0xD9,0x87), o2(0xD9,0x88), o2(0xD9,0x89), o2(0xD9,0x8A), + o2(0xD9,0x8B), o2(0xD9,0x8C), o2(0xD9,0x8D), o2(0xD9,0x8E), + o2(0xD9,0x8F), o2(0xD9,0x90), o2(0xD9,0x91), o2(0xD9,0x92), + UNDEF, +}; +const BYTE_LOOKUP +from_ISO_8859_6 = { + from_ISO_8859_6_offsets, + from_ISO_8859_6_infos +}; + +static const unsigned char +to_ISO_8859_6_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 35, 35, 35, 33, 35, 35, 35, 35, 35, 35, 35, 35, 34, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, +}; +static const struct byte_lookup* const +to_ISO_8859_6_C2_infos[36] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA4), o1(0xAD), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_6_C2 = { + to_ISO_8859_6_C2_offsets, + to_ISO_8859_6_C2_infos +}; + +static const unsigned char +to_ISO_8859_6_D8_offsets[64] = { + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 0, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1, 29, 29, 29, 2, + 29, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 29, 29, 29, +}; +static const struct byte_lookup* const +to_ISO_8859_6_D8_infos[30] = { + o1(0xAC), o1(0xBB), o1(0xBF), o1(0xC1), + o1(0xC2), o1(0xC3), o1(0xC4), o1(0xC5), + o1(0xC6), o1(0xC7), o1(0xC8), o1(0xC9), + o1(0xCA), o1(0xCB), o1(0xCC), o1(0xCD), + o1(0xCE), o1(0xCF), o1(0xD0), o1(0xD1), + o1(0xD2), o1(0xD3), o1(0xD4), o1(0xD5), + o1(0xD6), o1(0xD7), o1(0xD8), o1(0xD9), + o1(0xDA), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_6_D8 = { + to_ISO_8859_6_D8_offsets, + to_ISO_8859_6_D8_infos +}; + +static const unsigned char +to_ISO_8859_6_D9_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, +}; +static const struct byte_lookup* const +to_ISO_8859_6_D9_infos[20] = { + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3), + o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7), + o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB), + o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF), + o1(0xF0), o1(0xF1), o1(0xF2), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_6_D9 = { + to_ISO_8859_6_D9_offsets, + to_ISO_8859_6_D9_infos +}; + +static const unsigned char +to_ISO_8859_6_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 2, 3, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +}; +static const struct byte_lookup* const +to_ISO_8859_6_infos[5] = { + NOMAP, &to_ISO_8859_6_C2, + &to_ISO_8859_6_D8, &to_ISO_8859_6_D9, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_6 = { + to_ISO_8859_6_offsets, + to_ISO_8859_6_infos +}; + +static const unsigned char +from_ISO_8859_7_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,126, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81,126, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99,100,101,102, 103,104,105,106,107,108,109,110, + 111,112,113,114,115,116,117,118, 119,120,121,122,123,124,125,126, +}; +static const struct byte_lookup* const +from_ISO_8859_7_infos[127] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o3(0xE2,0x80,0x98), o3(0xE2,0x80,0x99), + o2(0xC2,0xA3), o3(0xE2,0x82,0xAC), + o3(0xE2,0x82,0xAF), o2(0xC2,0xA6), + o2(0xC2,0xA7), o2(0xC2,0xA8), + o2(0xC2,0xA9), o2(0xCD,0xBA), + o2(0xC2,0xAB), o2(0xC2,0xAC), + o2(0xC2,0xAD), o3(0xE2,0x80,0x95), + o2(0xC2,0xB0), o2(0xC2,0xB1), + o2(0xC2,0xB2), o2(0xC2,0xB3), + o2(0xCE,0x84), o2(0xCE,0x85), + o2(0xCE,0x86), o2(0xC2,0xB7), + o2(0xCE,0x88), o2(0xCE,0x89), + o2(0xCE,0x8A), o2(0xC2,0xBB), + o2(0xCE,0x8C), o2(0xC2,0xBD), + o2(0xCE,0x8E), o2(0xCE,0x8F), + o2(0xCE,0x90), o2(0xCE,0x91), + o2(0xCE,0x92), o2(0xCE,0x93), + o2(0xCE,0x94), o2(0xCE,0x95), + o2(0xCE,0x96), o2(0xCE,0x97), + o2(0xCE,0x98), o2(0xCE,0x99), + o2(0xCE,0x9A), o2(0xCE,0x9B), + o2(0xCE,0x9C), o2(0xCE,0x9D), + o2(0xCE,0x9E), o2(0xCE,0x9F), + o2(0xCE,0xA0), o2(0xCE,0xA1), + o2(0xCE,0xA3), o2(0xCE,0xA4), + o2(0xCE,0xA5), o2(0xCE,0xA6), + o2(0xCE,0xA7), o2(0xCE,0xA8), + o2(0xCE,0xA9), o2(0xCE,0xAA), + o2(0xCE,0xAB), o2(0xCE,0xAC), + o2(0xCE,0xAD), o2(0xCE,0xAE), + o2(0xCE,0xAF), o2(0xCE,0xB0), + o2(0xCE,0xB1), o2(0xCE,0xB2), + o2(0xCE,0xB3), o2(0xCE,0xB4), + o2(0xCE,0xB5), o2(0xCE,0xB6), + o2(0xCE,0xB7), o2(0xCE,0xB8), + o2(0xCE,0xB9), o2(0xCE,0xBA), + o2(0xCE,0xBB), o2(0xCE,0xBC), + o2(0xCE,0xBD), o2(0xCE,0xBE), + o2(0xCE,0xBF), o2(0xCF,0x80), + o2(0xCF,0x81), o2(0xCF,0x82), + o2(0xCF,0x83), o2(0xCF,0x84), + o2(0xCF,0x85), o2(0xCF,0x86), + o2(0xCF,0x87), o2(0xCF,0x88), + o2(0xCF,0x89), o2(0xCF,0x8A), + o2(0xCF,0x8B), o2(0xCF,0x8C), + o2(0xCF,0x8D), o2(0xCF,0x8E), + UNDEF, +}; +const BYTE_LOOKUP +from_ISO_8859_7 = { + from_ISO_8859_7_offsets, + from_ISO_8859_7_infos +}; + +static const unsigned char +to_ISO_8859_7_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 48, 48, 33, 48, 48, 34, 35, 36, 37, 48, 38, 39, 40, 48, 48, + 41, 42, 43, 44, 48, 48, 48, 45, 48, 48, 48, 46, 48, 47, 48, 48, +}; +static const struct byte_lookup* const +to_ISO_8859_7_C2_infos[49] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA3), o1(0xA6), o1(0xA7), + o1(0xA8), o1(0xA9), o1(0xAB), o1(0xAC), + o1(0xAD), o1(0xB0), o1(0xB1), o1(0xB2), + o1(0xB3), o1(0xB7), o1(0xBB), o1(0xBD), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_C2 = { + to_ISO_8859_7_C2_offsets, + to_ISO_8859_7_C2_infos +}; + +static const unsigned char +to_ISO_8859_7_CD_offsets[64] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, +}; +static const struct byte_lookup* const +to_ISO_8859_7_CD_infos[2] = { + o1(0xAA), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_CD = { + to_ISO_8859_7_CD_offsets, + to_ISO_8859_7_CD_infos +}; + +static const unsigned char +to_ISO_8859_7_CE_offsets[64] = { + 56, 56, 56, 56, 0, 1, 2, 56, 3, 4, 5, 56, 6, 56, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 56, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, +}; +static const struct byte_lookup* const +to_ISO_8859_7_CE_infos[57] = { + o1(0xB4), o1(0xB5), o1(0xB6), o1(0xB8), + o1(0xB9), o1(0xBA), o1(0xBC), o1(0xBE), + o1(0xBF), o1(0xC0), o1(0xC1), o1(0xC2), + o1(0xC3), o1(0xC4), o1(0xC5), o1(0xC6), + o1(0xC7), o1(0xC8), o1(0xC9), o1(0xCA), + o1(0xCB), o1(0xCC), o1(0xCD), o1(0xCE), + o1(0xCF), o1(0xD0), o1(0xD1), o1(0xD3), + o1(0xD4), o1(0xD5), o1(0xD6), o1(0xD7), + o1(0xD8), o1(0xD9), o1(0xDA), o1(0xDB), + o1(0xDC), o1(0xDD), o1(0xDE), o1(0xDF), + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3), + o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7), + o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB), + o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_CE = { + to_ISO_8859_7_CE_offsets, + to_ISO_8859_7_CE_infos +}; + +static const unsigned char +to_ISO_8859_7_CF_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +}; +static const struct byte_lookup* const +to_ISO_8859_7_CF_infos[16] = { + o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7), + o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB), + o1(0xFC), o1(0xFD), o1(0xFE), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_CF = { + to_ISO_8859_7_CF_offsets, + to_ISO_8859_7_CF_infos +}; + +static const unsigned char +to_ISO_8859_7_E2_80_offsets[64] = { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 0, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +}; +static const struct byte_lookup* const +to_ISO_8859_7_E2_80_infos[4] = { + o1(0xAF), o1(0xA1), o1(0xA2), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_E2_80 = { + to_ISO_8859_7_E2_80_offsets, + to_ISO_8859_7_E2_80_infos +}; + +static const unsigned char +to_ISO_8859_7_E2_82_offsets[64] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +}; +static const struct byte_lookup* const +to_ISO_8859_7_E2_82_infos[3] = { + o1(0xA4), o1(0xA5), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_E2_82 = { + to_ISO_8859_7_E2_82_offsets, + to_ISO_8859_7_E2_82_infos +}; + +static const unsigned char +to_ISO_8859_7_E2_offsets[64] = { + 0, 2, 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, +}; +static const struct byte_lookup* const +to_ISO_8859_7_E2_infos[3] = { + &to_ISO_8859_7_E2_80, &to_ISO_8859_7_E2_82, + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_7_E2 = { + to_ISO_8859_7_E2_offsets, + to_ISO_8859_7_E2_infos +}; + +static const unsigned char +to_ISO_8859_7_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 3, 4, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; +static const struct byte_lookup* const +to_ISO_8859_7_infos[7] = { + NOMAP, &to_ISO_8859_7_C2, + &to_ISO_8859_7_CD, &to_ISO_8859_7_CE, + &to_ISO_8859_7_CF, &to_ISO_8859_7_E2, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_7 = { + to_ISO_8859_7_offsets, + to_ISO_8859_7_infos +}; + +static const unsigned char +from_ISO_8859_8_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 93, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 93, 91, 92, 93, +}; +static const struct byte_lookup* const +from_ISO_8859_8_infos[94] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o2(0xC2,0xA2), o2(0xC2,0xA3), + o2(0xC2,0xA4), o2(0xC2,0xA5), + o2(0xC2,0xA6), o2(0xC2,0xA7), + o2(0xC2,0xA8), o2(0xC2,0xA9), + o2(0xC3,0x97), o2(0xC2,0xAB), + o2(0xC2,0xAC), o2(0xC2,0xAD), + o2(0xC2,0xAE), o2(0xC2,0xAF), + o2(0xC2,0xB0), o2(0xC2,0xB1), + o2(0xC2,0xB2), o2(0xC2,0xB3), + o2(0xC2,0xB4), o2(0xC2,0xB5), + o2(0xC2,0xB6), o2(0xC2,0xB7), + o2(0xC2,0xB8), o2(0xC2,0xB9), + o2(0xC3,0xB7), o2(0xC2,0xBB), + o2(0xC2,0xBC), o2(0xC2,0xBD), + o2(0xC2,0xBE), o3(0xE2,0x80,0x97), + o2(0xD7,0x90), o2(0xD7,0x91), + o2(0xD7,0x92), o2(0xD7,0x93), + o2(0xD7,0x94), o2(0xD7,0x95), + o2(0xD7,0x96), o2(0xD7,0x97), + o2(0xD7,0x98), o2(0xD7,0x99), + o2(0xD7,0x9A), o2(0xD7,0x9B), + o2(0xD7,0x9C), o2(0xD7,0x9D), + o2(0xD7,0x9E), o2(0xD7,0x9F), + o2(0xD7,0xA0), o2(0xD7,0xA1), + o2(0xD7,0xA2), o2(0xD7,0xA3), + o2(0xD7,0xA4), o2(0xD7,0xA5), + o2(0xD7,0xA6), o2(0xD7,0xA7), + o2(0xD7,0xA8), o2(0xD7,0xA9), + o2(0xD7,0xAA), o3(0xE2,0x80,0x8E), + o3(0xE2,0x80,0x8F), UNDEF, +}; +const BYTE_LOOKUP +from_ISO_8859_8 = { + from_ISO_8859_8_offsets, + from_ISO_8859_8_infos +}; + +static const unsigned char +to_ISO_8859_8_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 60, 33, 34, 35, 36, 37, 38, 39, 40, 60, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 60, 56, 57, 58, 59, 60, +}; +static const struct byte_lookup* const +to_ISO_8859_8_C2_infos[61] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA2), o1(0xA3), o1(0xA4), + o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8), + o1(0xA9), o1(0xAB), o1(0xAC), o1(0xAD), + o1(0xAE), o1(0xAF), o1(0xB0), o1(0xB1), + o1(0xB2), o1(0xB3), o1(0xB4), o1(0xB5), + o1(0xB6), o1(0xB7), o1(0xB8), o1(0xB9), + o1(0xBB), o1(0xBC), o1(0xBD), o1(0xBE), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_8_C2 = { + to_ISO_8859_8_C2_offsets, + to_ISO_8859_8_C2_infos +}; + +static const unsigned char +to_ISO_8859_8_C3_offsets[64] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 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, 1, 2, 2, 2, 2, 2, 2, 2, 2, +}; +static const struct byte_lookup* const +to_ISO_8859_8_C3_infos[3] = { + o1(0xAA), o1(0xBA), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_8_C3 = { + to_ISO_8859_8_C3_offsets, + to_ISO_8859_8_C3_infos +}; + +static const unsigned char +to_ISO_8859_8_D7_offsets[64] = { + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +}; +static const struct byte_lookup* const +to_ISO_8859_8_D7_infos[28] = { + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3), + o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7), + o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB), + o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF), + o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7), + o1(0xF8), o1(0xF9), o1(0xFA), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_8_D7 = { + to_ISO_8859_8_D7_offsets, + to_ISO_8859_8_D7_infos +}; + +static const unsigned char +to_ISO_8859_8_E2_80_offsets[64] = { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, + 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +}; +static const struct byte_lookup* const +to_ISO_8859_8_E2_80_infos[4] = { + o1(0xFD), o1(0xFE), o1(0xDF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_8_E2_80 = { + to_ISO_8859_8_E2_80_offsets, + to_ISO_8859_8_E2_80_infos +}; + +static const unsigned char +to_ISO_8859_13_E2_offsets[64] = { + /* used from to_ISO_8859_13_E2 */ + /* used from to_ISO_8859_8_E2 */ + 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, +}; +static const struct byte_lookup* const +to_ISO_8859_8_E2_infos[2] = { + &to_ISO_8859_8_E2_80, UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_8_E2 = { + to_ISO_8859_13_E2_offsets, + to_ISO_8859_8_E2_infos +}; + +static const unsigned char +to_ISO_8859_8_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 1, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; +static const struct byte_lookup* const +to_ISO_8859_8_infos[6] = { + NOMAP, &to_ISO_8859_8_C2, + &to_ISO_8859_8_C3, &to_ISO_8859_8_D7, + &to_ISO_8859_8_E2, UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_8 = { + to_ISO_8859_8_offsets, + to_ISO_8859_8_infos +}; + +static const struct byte_lookup* const +from_ISO_8859_9_infos[129] = { + NOMAP, o2(0xC2,0x80), o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), o2(0xC2,0xA1), o2(0xC2,0xA2), + o2(0xC2,0xA3), o2(0xC2,0xA4), o2(0xC2,0xA5), o2(0xC2,0xA6), + o2(0xC2,0xA7), o2(0xC2,0xA8), o2(0xC2,0xA9), o2(0xC2,0xAA), + o2(0xC2,0xAB), o2(0xC2,0xAC), o2(0xC2,0xAD), o2(0xC2,0xAE), + o2(0xC2,0xAF), o2(0xC2,0xB0), o2(0xC2,0xB1), o2(0xC2,0xB2), + o2(0xC2,0xB3), o2(0xC2,0xB4), o2(0xC2,0xB5), o2(0xC2,0xB6), + o2(0xC2,0xB7), o2(0xC2,0xB8), o2(0xC2,0xB9), o2(0xC2,0xBA), + o2(0xC2,0xBB), o2(0xC2,0xBC), o2(0xC2,0xBD), o2(0xC2,0xBE), + o2(0xC2,0xBF), o2(0xC3,0x80), o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC3,0x83), o2(0xC3,0x84), o2(0xC3,0x85), o2(0xC3,0x86), + o2(0xC3,0x87), o2(0xC3,0x88), o2(0xC3,0x89), o2(0xC3,0x8A), + o2(0xC3,0x8B), o2(0xC3,0x8C), o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC3,0x8F), o2(0xC4,0x9E), o2(0xC3,0x91), o2(0xC3,0x92), + o2(0xC3,0x93), o2(0xC3,0x94), o2(0xC3,0x95), o2(0xC3,0x96), + o2(0xC3,0x97), o2(0xC3,0x98), o2(0xC3,0x99), o2(0xC3,0x9A), + o2(0xC3,0x9B), o2(0xC3,0x9C), o2(0xC4,0xB0), o2(0xC5,0x9E), + o2(0xC3,0x9F), o2(0xC3,0xA0), o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC3,0xA3), o2(0xC3,0xA4), o2(0xC3,0xA5), o2(0xC3,0xA6), + o2(0xC3,0xA7), o2(0xC3,0xA8), o2(0xC3,0xA9), o2(0xC3,0xAA), + o2(0xC3,0xAB), o2(0xC3,0xAC), o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC3,0xAF), o2(0xC4,0x9F), o2(0xC3,0xB1), o2(0xC3,0xB2), + o2(0xC3,0xB3), o2(0xC3,0xB4), o2(0xC3,0xB5), o2(0xC3,0xB6), + o2(0xC3,0xB7), o2(0xC3,0xB8), o2(0xC3,0xB9), o2(0xC3,0xBA), + o2(0xC3,0xBB), o2(0xC3,0xBC), o2(0xC4,0xB1), o2(0xC5,0x9F), + o2(0xC3,0xBF), +}; +const BYTE_LOOKUP +from_ISO_8859_9 = { + from_ISO_8859_1_offsets, + from_ISO_8859_9_infos +}; + +static const unsigned char +to_ISO_8859_15_C3_offsets[64] = { + /* used from to_ISO_8859_15_C3 */ + /* used from to_ISO_8859_9_C2 */ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, +}; +static const BYTE_LOOKUP +to_ISO_8859_9_C2 = { + to_ISO_8859_15_C3_offsets, + to_ISO_8859_1_C2_infos +}; + +static const unsigned char +to_ISO_8859_9_C3_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 58, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 58, 58, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 58, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 58, 57, +}; +static const struct byte_lookup* const +to_ISO_8859_9_C3_infos[59] = { + o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3), + o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7), + o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB), + o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF), + o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4), + o1(0xD5), o1(0xD6), o1(0xD7), o1(0xD8), + o1(0xD9), o1(0xDA), o1(0xDB), o1(0xDC), + o1(0xDF), o1(0xE0), o1(0xE1), o1(0xE2), + o1(0xE3), o1(0xE4), o1(0xE5), o1(0xE6), + o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA), + o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE), + o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7), + o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB), + o1(0xFC), o1(0xFF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_9_C3 = { + to_ISO_8859_9_C3_offsets, + to_ISO_8859_9_C3_infos +}; + +static const unsigned char +to_ISO_8859_9_C4_offsets[64] = { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +}; +static const struct byte_lookup* const +to_ISO_8859_9_C4_infos[5] = { + o1(0xD0), o1(0xF0), o1(0xDD), o1(0xFD), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_9_C4 = { + to_ISO_8859_9_C4_offsets, + to_ISO_8859_9_C4_infos +}; + +static const unsigned char +to_ISO_8859_9_C5_offsets[64] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 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, +}; +static const struct byte_lookup* const +to_ISO_8859_9_C5_infos[3] = { + o1(0xDE), o1(0xFE), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_9_C5 = { + to_ISO_8859_9_C5_offsets, + to_ISO_8859_9_C5_infos +}; + +static const unsigned char +to_ISO_8859_9_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; +static const struct byte_lookup* const +to_ISO_8859_9_infos[6] = { + NOMAP, &to_ISO_8859_9_C2, + &to_ISO_8859_9_C3, &to_ISO_8859_9_C4, + &to_ISO_8859_9_C5, UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_9 = { + to_ISO_8859_9_offsets, + to_ISO_8859_9_infos +}; + +static const struct byte_lookup* const +from_ISO_8859_10_infos[129] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o2(0xC4,0x84), o2(0xC4,0x92), + o2(0xC4,0xA2), o2(0xC4,0xAA), + o2(0xC4,0xA8), o2(0xC4,0xB6), + o2(0xC2,0xA7), o2(0xC4,0xBB), + o2(0xC4,0x90), o2(0xC5,0xA0), + o2(0xC5,0xA6), o2(0xC5,0xBD), + o2(0xC2,0xAD), o2(0xC5,0xAA), + o2(0xC5,0x8A), o2(0xC2,0xB0), + o2(0xC4,0x85), o2(0xC4,0x93), + o2(0xC4,0xA3), o2(0xC4,0xAB), + o2(0xC4,0xA9), o2(0xC4,0xB7), + o2(0xC2,0xB7), o2(0xC4,0xBC), + o2(0xC4,0x91), o2(0xC5,0xA1), + o2(0xC5,0xA7), o2(0xC5,0xBE), + o3(0xE2,0x80,0x95), o2(0xC5,0xAB), + o2(0xC5,0x8B), o2(0xC4,0x80), + o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC3,0x83), o2(0xC3,0x84), + o2(0xC3,0x85), o2(0xC3,0x86), + o2(0xC4,0xAE), o2(0xC4,0x8C), + o2(0xC3,0x89), o2(0xC4,0x98), + o2(0xC3,0x8B), o2(0xC4,0x96), + o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC3,0x8F), o2(0xC3,0x90), + o2(0xC5,0x85), o2(0xC5,0x8C), + o2(0xC3,0x93), o2(0xC3,0x94), + o2(0xC3,0x95), o2(0xC3,0x96), + o2(0xC5,0xA8), o2(0xC3,0x98), + o2(0xC5,0xB2), o2(0xC3,0x9A), + o2(0xC3,0x9B), o2(0xC3,0x9C), + o2(0xC3,0x9D), o2(0xC3,0x9E), + o2(0xC3,0x9F), o2(0xC4,0x81), + o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC3,0xA3), o2(0xC3,0xA4), + o2(0xC3,0xA5), o2(0xC3,0xA6), + o2(0xC4,0xAF), o2(0xC4,0x8D), + o2(0xC3,0xA9), o2(0xC4,0x99), + o2(0xC3,0xAB), o2(0xC4,0x97), + o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC3,0xAF), o2(0xC3,0xB0), + o2(0xC5,0x86), o2(0xC5,0x8D), + o2(0xC3,0xB3), o2(0xC3,0xB4), + o2(0xC3,0xB5), o2(0xC3,0xB6), + o2(0xC5,0xA9), o2(0xC3,0xB8), + o2(0xC5,0xB3), o2(0xC3,0xBA), + o2(0xC3,0xBB), o2(0xC3,0xBC), + o2(0xC3,0xBD), o2(0xC3,0xBE), + o2(0xC4,0xB8), +}; +const BYTE_LOOKUP +from_ISO_8859_10 = { + from_ISO_8859_10_offsets, + from_ISO_8859_10_infos +}; + +static const unsigned char +to_ISO_8859_10_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 37, 37, 37, 37, 37, 37, 33, 37, 37, 37, 37, 37, 34, 37, 37, + 35, 37, 37, 37, 37, 37, 37, 36, 37, 37, 37, 37, 37, 37, 37, 37, +}; +static const struct byte_lookup* const +to_ISO_8859_10_C2_infos[38] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA7), o1(0xAD), o1(0xB0), + o1(0xB7), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_10_C2 = { + to_ISO_8859_10_C2_offsets, + to_ISO_8859_10_C2_infos +}; + +static const unsigned char +to_ISO_8859_10_C3_offsets[64] = { + 45, 0, 1, 2, 3, 4, 5, 45, 45, 6, 45, 7, 45, 8, 9, 10, + 11, 45, 45, 12, 13, 14, 15, 45, 16, 45, 17, 18, 19, 20, 21, 22, + 45, 23, 24, 25, 26, 27, 28, 45, 45, 29, 45, 30, 45, 31, 32, 33, + 34, 45, 45, 35, 36, 37, 38, 45, 39, 45, 40, 41, 42, 43, 44, 45, +}; +static const struct byte_lookup* const +to_ISO_8859_10_C3_infos[46] = { + o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4), + o1(0xC5), o1(0xC6), o1(0xC9), o1(0xCB), + o1(0xCD), o1(0xCE), o1(0xCF), o1(0xD0), + o1(0xD3), o1(0xD4), o1(0xD5), o1(0xD6), + o1(0xD8), o1(0xDA), o1(0xDB), o1(0xDC), + o1(0xDD), o1(0xDE), o1(0xDF), o1(0xE1), + o1(0xE2), o1(0xE3), o1(0xE4), o1(0xE5), + o1(0xE6), o1(0xE9), o1(0xEB), o1(0xED), + o1(0xEE), o1(0xEF), o1(0xF0), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF8), + o1(0xFA), o1(0xFB), o1(0xFC), o1(0xFD), + o1(0xFE), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_10_C3 = { + to_ISO_8859_10_C3_offsets, + to_ISO_8859_10_C3_infos +}; + +static const struct byte_lookup* const +to_ISO_8859_10_C4_infos[28] = { + o1(0xC0), o1(0xE0), o1(0xA1), o1(0xB1), + o1(0xC8), o1(0xE8), o1(0xA9), o1(0xB9), + o1(0xA2), o1(0xB2), o1(0xCC), o1(0xEC), + o1(0xCA), o1(0xEA), o1(0xA3), o1(0xB3), + o1(0xA5), o1(0xB5), o1(0xA4), o1(0xB4), + o1(0xC7), o1(0xE7), o1(0xA6), o1(0xB6), + o1(0xFF), o1(0xA8), o1(0xB8), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_10_C4 = { + to_ISO_8859_10_C4_offsets, + to_ISO_8859_10_C4_infos +}; + +static const unsigned char +to_ISO_8859_10_C5_offsets[64] = { + 18, 18, 18, 18, 18, 0, 1, 18, 18, 18, 2, 3, 4, 5, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 6, 7, 18, 18, 18, 18, 8, 9, 10, 11, 12, 13, 18, 18, 18, 18, + 18, 18, 14, 15, 18, 18, 18, 18, 18, 18, 18, 18, 18, 16, 17, 18, +}; +static const struct byte_lookup* const +to_ISO_8859_10_C5_infos[19] = { + o1(0xD1), o1(0xF1), o1(0xAF), o1(0xBF), + o1(0xD2), o1(0xF2), o1(0xAA), o1(0xBA), + o1(0xAB), o1(0xBB), o1(0xD7), o1(0xF7), + o1(0xAE), o1(0xBE), o1(0xD9), o1(0xF9), + o1(0xAC), o1(0xBC), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_10_C5 = { + to_ISO_8859_10_C5_offsets, + to_ISO_8859_10_C5_infos +}; + +static const unsigned char +to_ISO_8859_10_E2_80_offsets[64] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +}; +static const struct byte_lookup* const +to_ISO_8859_10_E2_80_infos[2] = { + o1(0xBD), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_10_E2_80 = { + to_ISO_8859_10_E2_80_offsets, + to_ISO_8859_10_E2_80_infos +}; + +static const unsigned char +to_ISO_8859_10_E2_offsets[64] = { + 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, +}; +static const struct byte_lookup* const +to_ISO_8859_10_E2_infos[2] = { + &to_ISO_8859_10_E2_80, UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_10_E2 = { + to_ISO_8859_10_E2_offsets, + to_ISO_8859_10_E2_infos +}; + +static const unsigned char +to_ISO_8859_10_offsets[256] = { + /* used from to_ISO_8859_10 */ + /* used from to_ISO_8859_13 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 1, 2, 3, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; +static const struct byte_lookup* const +to_ISO_8859_10_infos[7] = { + NOMAP, &to_ISO_8859_10_C2, + &to_ISO_8859_10_C3, &to_ISO_8859_10_C4, + &to_ISO_8859_10_C5, &to_ISO_8859_10_E2, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_10 = { + to_ISO_8859_10_offsets, + to_ISO_8859_10_infos +}; + +static const unsigned char +from_ISO_8859_11_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,121,121,121,121, 92, + 93, 94, 95, 96, 97, 98, 99,100, 101,102,103,104,105,106,107,108, + 109,110,111,112,113,114,115,116, 117,118,119,120,121,121,121,121, +}; +static const struct byte_lookup* const +from_ISO_8859_11_infos[122] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o3(0xE0,0xB8,0x81), o3(0xE0,0xB8,0x82), + o3(0xE0,0xB8,0x83), o3(0xE0,0xB8,0x84), + o3(0xE0,0xB8,0x85), o3(0xE0,0xB8,0x86), + o3(0xE0,0xB8,0x87), o3(0xE0,0xB8,0x88), + o3(0xE0,0xB8,0x89), o3(0xE0,0xB8,0x8A), + o3(0xE0,0xB8,0x8B), o3(0xE0,0xB8,0x8C), + o3(0xE0,0xB8,0x8D), o3(0xE0,0xB8,0x8E), + o3(0xE0,0xB8,0x8F), o3(0xE0,0xB8,0x90), + o3(0xE0,0xB8,0x91), o3(0xE0,0xB8,0x92), + o3(0xE0,0xB8,0x93), o3(0xE0,0xB8,0x94), + o3(0xE0,0xB8,0x95), o3(0xE0,0xB8,0x96), + o3(0xE0,0xB8,0x97), o3(0xE0,0xB8,0x98), + o3(0xE0,0xB8,0x99), o3(0xE0,0xB8,0x9A), + o3(0xE0,0xB8,0x9B), o3(0xE0,0xB8,0x9C), + o3(0xE0,0xB8,0x9D), o3(0xE0,0xB8,0x9E), + o3(0xE0,0xB8,0x9F), o3(0xE0,0xB8,0xA0), + o3(0xE0,0xB8,0xA1), o3(0xE0,0xB8,0xA2), + o3(0xE0,0xB8,0xA3), o3(0xE0,0xB8,0xA4), + o3(0xE0,0xB8,0xA5), o3(0xE0,0xB8,0xA6), + o3(0xE0,0xB8,0xA7), o3(0xE0,0xB8,0xA8), + o3(0xE0,0xB8,0xA9), o3(0xE0,0xB8,0xAA), + o3(0xE0,0xB8,0xAB), o3(0xE0,0xB8,0xAC), + o3(0xE0,0xB8,0xAD), o3(0xE0,0xB8,0xAE), + o3(0xE0,0xB8,0xAF), o3(0xE0,0xB8,0xB0), + o3(0xE0,0xB8,0xB1), o3(0xE0,0xB8,0xB2), + o3(0xE0,0xB8,0xB3), o3(0xE0,0xB8,0xB4), + o3(0xE0,0xB8,0xB5), o3(0xE0,0xB8,0xB6), + o3(0xE0,0xB8,0xB7), o3(0xE0,0xB8,0xB8), + o3(0xE0,0xB8,0xB9), o3(0xE0,0xB8,0xBA), + o3(0xE0,0xB8,0xBF), o3(0xE0,0xB9,0x80), + o3(0xE0,0xB9,0x81), o3(0xE0,0xB9,0x82), + o3(0xE0,0xB9,0x83), o3(0xE0,0xB9,0x84), + o3(0xE0,0xB9,0x85), o3(0xE0,0xB9,0x86), + o3(0xE0,0xB9,0x87), o3(0xE0,0xB9,0x88), + o3(0xE0,0xB9,0x89), o3(0xE0,0xB9,0x8A), + o3(0xE0,0xB9,0x8B), o3(0xE0,0xB9,0x8C), + o3(0xE0,0xB9,0x8D), o3(0xE0,0xB9,0x8E), + o3(0xE0,0xB9,0x8F), o3(0xE0,0xB9,0x90), + o3(0xE0,0xB9,0x91), o3(0xE0,0xB9,0x92), + o3(0xE0,0xB9,0x93), o3(0xE0,0xB9,0x94), + o3(0xE0,0xB9,0x95), o3(0xE0,0xB9,0x96), + o3(0xE0,0xB9,0x97), o3(0xE0,0xB9,0x98), + o3(0xE0,0xB9,0x99), o3(0xE0,0xB9,0x9A), + o3(0xE0,0xB9,0x9B), UNDEF, +}; +const BYTE_LOOKUP +from_ISO_8859_11 = { + from_ISO_8859_11_offsets, + from_ISO_8859_11_infos +}; + +static const unsigned char +to_ISO_8859_11_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, +}; +static const struct byte_lookup* const +to_ISO_8859_11_C2_infos[34] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_11_C2 = { + to_ISO_8859_11_C2_offsets, + to_ISO_8859_11_C2_infos +}; + +static const unsigned char +to_ISO_8859_11_E0_B8_offsets[64] = { + 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 59, 59, 59, 58, +}; +static const struct byte_lookup* const +to_ISO_8859_11_E0_B8_infos[60] = { + o1(0xA1), o1(0xA2), o1(0xA3), o1(0xA4), + o1(0xA5), o1(0xA6), o1(0xA7), o1(0xA8), + o1(0xA9), o1(0xAA), o1(0xAB), o1(0xAC), + o1(0xAD), o1(0xAE), o1(0xAF), o1(0xB0), + o1(0xB1), o1(0xB2), o1(0xB3), o1(0xB4), + o1(0xB5), o1(0xB6), o1(0xB7), o1(0xB8), + o1(0xB9), o1(0xBA), o1(0xBB), o1(0xBC), + o1(0xBD), o1(0xBE), o1(0xBF), o1(0xC0), + o1(0xC1), o1(0xC2), o1(0xC3), o1(0xC4), + o1(0xC5), o1(0xC6), o1(0xC7), o1(0xC8), + o1(0xC9), o1(0xCA), o1(0xCB), o1(0xCC), + o1(0xCD), o1(0xCE), o1(0xCF), o1(0xD0), + o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4), + o1(0xD5), o1(0xD6), o1(0xD7), o1(0xD8), + o1(0xD9), o1(0xDA), o1(0xDF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_11_E0_B8 = { + to_ISO_8859_11_E0_B8_offsets, + to_ISO_8859_11_E0_B8_infos +}; + +static const unsigned char +to_ISO_8859_11_E0_B9_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +}; +static const struct byte_lookup* const +to_ISO_8859_11_E0_B9_infos[29] = { + o1(0xE0), o1(0xE1), o1(0xE2), o1(0xE3), + o1(0xE4), o1(0xE5), o1(0xE6), o1(0xE7), + o1(0xE8), o1(0xE9), o1(0xEA), o1(0xEB), + o1(0xEC), o1(0xED), o1(0xEE), o1(0xEF), + o1(0xF0), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF7), + o1(0xF8), o1(0xF9), o1(0xFA), o1(0xFB), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_11_E0_B9 = { + to_ISO_8859_11_E0_B9_offsets, + to_ISO_8859_11_E0_B9_infos +}; + +static const unsigned char +to_ISO_8859_11_E0_offsets[64] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 2, 2, 2, 2, 2, 2, +}; +static const struct byte_lookup* const +to_ISO_8859_11_E0_infos[3] = { + &to_ISO_8859_11_E0_B8, &to_ISO_8859_11_E0_B9, + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_11_E0 = { + to_ISO_8859_11_E0_offsets, + to_ISO_8859_11_E0_infos +}; + +static const unsigned char +to_ISO_8859_11_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +}; +static const struct byte_lookup* const +to_ISO_8859_11_infos[4] = { + NOMAP, &to_ISO_8859_11_C2, + &to_ISO_8859_11_E0, UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_11 = { + to_ISO_8859_11_offsets, + to_ISO_8859_11_infos +}; + +static const struct byte_lookup* const +from_ISO_8859_13_infos[129] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o3(0xE2,0x80,0x9D), o2(0xC2,0xA2), + o2(0xC2,0xA3), o2(0xC2,0xA4), + o3(0xE2,0x80,0x9E), o2(0xC2,0xA6), + o2(0xC2,0xA7), o2(0xC3,0x98), + o2(0xC2,0xA9), o2(0xC5,0x96), + o2(0xC2,0xAB), o2(0xC2,0xAC), + o2(0xC2,0xAD), o2(0xC2,0xAE), + o2(0xC3,0x86), o2(0xC2,0xB0), + o2(0xC2,0xB1), o2(0xC2,0xB2), + o2(0xC2,0xB3), o3(0xE2,0x80,0x9C), + o2(0xC2,0xB5), o2(0xC2,0xB6), + o2(0xC2,0xB7), o2(0xC3,0xB8), + o2(0xC2,0xB9), o2(0xC5,0x97), + o2(0xC2,0xBB), o2(0xC2,0xBC), + o2(0xC2,0xBD), o2(0xC2,0xBE), + o2(0xC3,0xA6), o2(0xC4,0x84), + o2(0xC4,0xAE), o2(0xC4,0x80), + o2(0xC4,0x86), o2(0xC3,0x84), + o2(0xC3,0x85), o2(0xC4,0x98), + o2(0xC4,0x92), o2(0xC4,0x8C), + o2(0xC3,0x89), o2(0xC5,0xB9), + o2(0xC4,0x96), o2(0xC4,0xA2), + o2(0xC4,0xB6), o2(0xC4,0xAA), + o2(0xC4,0xBB), o2(0xC5,0xA0), + o2(0xC5,0x83), o2(0xC5,0x85), + o2(0xC3,0x93), o2(0xC5,0x8C), + o2(0xC3,0x95), o2(0xC3,0x96), + o2(0xC3,0x97), o2(0xC5,0xB2), + o2(0xC5,0x81), o2(0xC5,0x9A), + o2(0xC5,0xAA), o2(0xC3,0x9C), + o2(0xC5,0xBB), o2(0xC5,0xBD), + o2(0xC3,0x9F), o2(0xC4,0x85), + o2(0xC4,0xAF), o2(0xC4,0x81), + o2(0xC4,0x87), o2(0xC3,0xA4), + o2(0xC3,0xA5), o2(0xC4,0x99), + o2(0xC4,0x93), o2(0xC4,0x8D), + o2(0xC3,0xA9), o2(0xC5,0xBA), + o2(0xC4,0x97), o2(0xC4,0xA3), + o2(0xC4,0xB7), o2(0xC4,0xAB), + o2(0xC4,0xBC), o2(0xC5,0xA1), + o2(0xC5,0x84), o2(0xC5,0x86), + o2(0xC3,0xB3), o2(0xC5,0x8D), + o2(0xC3,0xB5), o2(0xC3,0xB6), + o2(0xC3,0xB7), o2(0xC5,0xB3), + o2(0xC5,0x82), o2(0xC5,0x9B), + o2(0xC5,0xAB), o2(0xC3,0xBC), + o2(0xC5,0xBC), o2(0xC5,0xBE), + o3(0xE2,0x80,0x99), +}; +const BYTE_LOOKUP +from_ISO_8859_13 = { + from_ISO_8859_13_offsets, + from_ISO_8859_13_infos +}; + +static const unsigned char +to_ISO_8859_13_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 55, 33, 34, 35, 55, 36, 37, 55, 38, 55, 39, 40, 41, 42, 55, + 43, 44, 45, 46, 55, 47, 48, 49, 55, 50, 55, 51, 52, 53, 54, 55, +}; +static const struct byte_lookup* const +to_ISO_8859_13_C2_infos[56] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA2), o1(0xA3), o1(0xA4), + o1(0xA6), o1(0xA7), o1(0xA9), o1(0xAB), + o1(0xAC), o1(0xAD), o1(0xAE), o1(0xB0), + o1(0xB1), o1(0xB2), o1(0xB3), o1(0xB5), + o1(0xB6), o1(0xB7), o1(0xB9), o1(0xBB), + o1(0xBC), o1(0xBD), o1(0xBE), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_13_C2 = { + to_ISO_8859_13_C2_offsets, + to_ISO_8859_13_C2_infos +}; + +static const unsigned char +to_ISO_8859_13_C3_offsets[64] = { + 21, 21, 21, 21, 0, 1, 2, 21, 21, 3, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 4, 21, 5, 6, 7, 8, 21, 21, 21, 9, 21, 21, 10, + 21, 21, 21, 21, 11, 12, 13, 21, 21, 14, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 15, 21, 16, 17, 18, 19, 21, 21, 21, 20, 21, 21, 21, +}; +static const struct byte_lookup* const +to_ISO_8859_13_C3_infos[22] = { + o1(0xC4), o1(0xC5), o1(0xAF), o1(0xC9), + o1(0xD3), o1(0xD5), o1(0xD6), o1(0xD7), + o1(0xA8), o1(0xDC), o1(0xDF), o1(0xE4), + o1(0xE5), o1(0xBF), o1(0xE9), o1(0xF3), + o1(0xF5), o1(0xF6), o1(0xF7), o1(0xB8), + o1(0xFC), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_13_C3 = { + to_ISO_8859_13_C3_offsets, + to_ISO_8859_13_C3_infos +}; + +static const unsigned char +to_ISO_8859_13_C4_offsets[64] = { + 0, 1, 24, 24, 2, 3, 4, 5, 24, 24, 24, 24, 6, 7, 24, 24, + 24, 24, 8, 9, 24, 24, 10, 11, 12, 13, 24, 24, 24, 24, 24, 24, + 24, 24, 14, 15, 24, 24, 24, 24, 24, 24, 16, 17, 24, 24, 18, 19, + 24, 24, 24, 24, 24, 24, 20, 21, 24, 24, 24, 22, 23, 24, 24, 24, +}; +static const struct byte_lookup* const +to_ISO_8859_13_C4_infos[25] = { + o1(0xC2), o1(0xE2), o1(0xC0), o1(0xE0), + o1(0xC3), o1(0xE3), o1(0xC8), o1(0xE8), + o1(0xC7), o1(0xE7), o1(0xCB), o1(0xEB), + o1(0xC6), o1(0xE6), o1(0xCC), o1(0xEC), + o1(0xCE), o1(0xEE), o1(0xC1), o1(0xE1), + o1(0xCD), o1(0xED), o1(0xCF), o1(0xEF), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_13_C4 = { + to_ISO_8859_13_C4_offsets, + to_ISO_8859_13_C4_infos +}; + +static const unsigned char +to_ISO_8859_13_C5_offsets[64] = { + 24, 0, 1, 2, 3, 4, 5, 24, 24, 24, 24, 24, 6, 7, 24, 24, + 24, 24, 24, 24, 24, 24, 8, 9, 24, 24, 10, 11, 24, 24, 24, 24, + 12, 13, 24, 24, 24, 24, 24, 24, 24, 24, 14, 15, 24, 24, 24, 24, + 24, 24, 16, 17, 24, 24, 24, 24, 24, 18, 19, 20, 21, 22, 23, 24, +}; +static const struct byte_lookup* const +to_ISO_8859_13_C5_infos[25] = { + o1(0xD9), o1(0xF9), o1(0xD1), o1(0xF1), + o1(0xD2), o1(0xF2), o1(0xD4), o1(0xF4), + o1(0xAA), o1(0xBA), o1(0xDA), o1(0xFA), + o1(0xD0), o1(0xF0), o1(0xDB), o1(0xFB), + o1(0xD8), o1(0xF8), o1(0xCA), o1(0xEA), + o1(0xDD), o1(0xFD), o1(0xDE), o1(0xFE), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_13_C5 = { + to_ISO_8859_13_C5_offsets, + to_ISO_8859_13_C5_infos +}; + +static const unsigned char +to_ISO_8859_13_E2_80_offsets[64] = { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 1, 2, 3, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +}; +static const struct byte_lookup* const +to_ISO_8859_13_E2_80_infos[5] = { + o1(0xFF), o1(0xB4), o1(0xA1), o1(0xA5), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_13_E2_80 = { + to_ISO_8859_13_E2_80_offsets, + to_ISO_8859_13_E2_80_infos +}; + +static const struct byte_lookup* const +to_ISO_8859_13_E2_infos[2] = { + &to_ISO_8859_13_E2_80, UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_13_E2 = { + to_ISO_8859_13_E2_offsets, + to_ISO_8859_13_E2_infos +}; + +static const struct byte_lookup* const +to_ISO_8859_13_infos[7] = { + NOMAP, &to_ISO_8859_13_C2, + &to_ISO_8859_13_C3, &to_ISO_8859_13_C4, + &to_ISO_8859_13_C5, &to_ISO_8859_13_E2, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_13 = { + to_ISO_8859_10_offsets, + to_ISO_8859_13_infos +}; + +static const struct byte_lookup* const +from_ISO_8859_14_infos[129] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o3(0xE1,0xB8,0x82), o3(0xE1,0xB8,0x83), + o2(0xC2,0xA3), o2(0xC4,0x8A), + o2(0xC4,0x8B), o3(0xE1,0xB8,0x8A), + o2(0xC2,0xA7), o3(0xE1,0xBA,0x80), + o2(0xC2,0xA9), o3(0xE1,0xBA,0x82), + o3(0xE1,0xB8,0x8B), o3(0xE1,0xBB,0xB2), + o2(0xC2,0xAD), o2(0xC2,0xAE), + o2(0xC5,0xB8), o3(0xE1,0xB8,0x9E), + o3(0xE1,0xB8,0x9F), o2(0xC4,0xA0), + o2(0xC4,0xA1), o3(0xE1,0xB9,0x80), + o3(0xE1,0xB9,0x81), o2(0xC2,0xB6), + o3(0xE1,0xB9,0x96), o3(0xE1,0xBA,0x81), + o3(0xE1,0xB9,0x97), o3(0xE1,0xBA,0x83), + o3(0xE1,0xB9,0xA0), o3(0xE1,0xBB,0xB3), + o3(0xE1,0xBA,0x84), o3(0xE1,0xBA,0x85), + o3(0xE1,0xB9,0xA1), o2(0xC3,0x80), + o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC3,0x83), o2(0xC3,0x84), + o2(0xC3,0x85), o2(0xC3,0x86), + o2(0xC3,0x87), o2(0xC3,0x88), + o2(0xC3,0x89), o2(0xC3,0x8A), + o2(0xC3,0x8B), o2(0xC3,0x8C), + o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC3,0x8F), o2(0xC5,0xB4), + o2(0xC3,0x91), o2(0xC3,0x92), + o2(0xC3,0x93), o2(0xC3,0x94), + o2(0xC3,0x95), o2(0xC3,0x96), + o3(0xE1,0xB9,0xAA), o2(0xC3,0x98), + o2(0xC3,0x99), o2(0xC3,0x9A), + o2(0xC3,0x9B), o2(0xC3,0x9C), + o2(0xC3,0x9D), o2(0xC5,0xB6), + o2(0xC3,0x9F), o2(0xC3,0xA0), + o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC3,0xA3), o2(0xC3,0xA4), + o2(0xC3,0xA5), o2(0xC3,0xA6), + o2(0xC3,0xA7), o2(0xC3,0xA8), + o2(0xC3,0xA9), o2(0xC3,0xAA), + o2(0xC3,0xAB), o2(0xC3,0xAC), + o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC3,0xAF), o2(0xC5,0xB5), + o2(0xC3,0xB1), o2(0xC3,0xB2), + o2(0xC3,0xB3), o2(0xC3,0xB4), + o2(0xC3,0xB5), o2(0xC3,0xB6), + o3(0xE1,0xB9,0xAB), o2(0xC3,0xB8), + o2(0xC3,0xB9), o2(0xC3,0xBA), + o2(0xC3,0xBB), o2(0xC3,0xBC), + o2(0xC3,0xBD), o2(0xC5,0xB7), + o2(0xC3,0xBF), +}; +const BYTE_LOOKUP +from_ISO_8859_14 = { + from_ISO_8859_13_offsets, + from_ISO_8859_14_infos +}; + +static const unsigned char +to_ISO_8859_14_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 39, 39, 33, 39, 39, 39, 34, 39, 35, 39, 39, 39, 36, 37, 39, + 39, 39, 39, 39, 39, 39, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, +}; +static const struct byte_lookup* const +to_ISO_8859_14_C2_infos[40] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA3), o1(0xA7), o1(0xA9), + o1(0xAD), o1(0xAE), o1(0xB6), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_C2 = { + to_ISO_8859_14_C2_offsets, + to_ISO_8859_14_C2_infos +}; + +static const unsigned char +to_ISO_8859_14_C3_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 58, 16, 17, 18, 19, 20, 21, 58, 22, 23, 24, 25, 26, 27, 58, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 58, 45, 46, 47, 48, 49, 50, 58, 51, 52, 53, 54, 55, 56, 58, 57, +}; +static const struct byte_lookup* const +to_ISO_8859_14_C3_infos[59] = { + o1(0xC0), o1(0xC1), o1(0xC2), o1(0xC3), + o1(0xC4), o1(0xC5), o1(0xC6), o1(0xC7), + o1(0xC8), o1(0xC9), o1(0xCA), o1(0xCB), + o1(0xCC), o1(0xCD), o1(0xCE), o1(0xCF), + o1(0xD1), o1(0xD2), o1(0xD3), o1(0xD4), + o1(0xD5), o1(0xD6), o1(0xD8), o1(0xD9), + o1(0xDA), o1(0xDB), o1(0xDC), o1(0xDD), + o1(0xDF), o1(0xE0), o1(0xE1), o1(0xE2), + o1(0xE3), o1(0xE4), o1(0xE5), o1(0xE6), + o1(0xE7), o1(0xE8), o1(0xE9), o1(0xEA), + o1(0xEB), o1(0xEC), o1(0xED), o1(0xEE), + o1(0xEF), o1(0xF1), o1(0xF2), o1(0xF3), + o1(0xF4), o1(0xF5), o1(0xF6), o1(0xF8), + o1(0xF9), o1(0xFA), o1(0xFB), o1(0xFC), + o1(0xFD), o1(0xFF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_C3 = { + to_ISO_8859_14_C3_offsets, + to_ISO_8859_14_C3_infos +}; + +static const unsigned char +to_ISO_8859_14_C4_offsets[64] = { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +}; +static const struct byte_lookup* const +to_ISO_8859_14_C4_infos[5] = { + o1(0xA4), o1(0xA5), o1(0xB2), o1(0xB3), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_C4 = { + to_ISO_8859_14_C4_offsets, + to_ISO_8859_14_C4_infos +}; + +static const unsigned char +to_ISO_8859_14_C5_offsets[64] = { + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, +}; +static const struct byte_lookup* const +to_ISO_8859_14_C5_infos[6] = { + o1(0xD0), o1(0xF0), o1(0xDE), o1(0xFE), + o1(0xAF), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_C5 = { + to_ISO_8859_14_C5_offsets, + to_ISO_8859_14_C5_infos +}; + +static const unsigned char +to_ISO_8859_14_E1_B8_offsets[64] = { + 6, 6, 0, 1, 6, 6, 6, 6, 6, 6, 2, 3, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; +static const struct byte_lookup* const +to_ISO_8859_14_E1_B8_infos[7] = { + o1(0xA1), o1(0xA2), o1(0xA6), o1(0xAB), + o1(0xB0), o1(0xB1), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_E1_B8 = { + to_ISO_8859_14_E1_B8_offsets, + to_ISO_8859_14_E1_B8_infos +}; + +static const unsigned char +to_ISO_8859_14_E1_B9_offsets[64] = { + 0, 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 2, 3, 8, 8, 8, 8, 8, 8, 8, 8, + 4, 5, 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; +static const struct byte_lookup* const +to_ISO_8859_14_E1_B9_infos[9] = { + o1(0xB4), o1(0xB5), o1(0xB7), o1(0xB9), + o1(0xBB), o1(0xBF), o1(0xD7), o1(0xF7), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_E1_B9 = { + to_ISO_8859_14_E1_B9_offsets, + to_ISO_8859_14_E1_B9_infos +}; + +static const unsigned char +to_ISO_8859_14_E1_BA_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; +static const struct byte_lookup* const +to_ISO_8859_14_E1_BA_infos[7] = { + o1(0xA8), o1(0xB8), o1(0xAA), o1(0xBA), + o1(0xBD), o1(0xBE), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_E1_BA = { + to_ISO_8859_14_E1_BA_offsets, + to_ISO_8859_14_E1_BA_infos +}; + +static const unsigned char +to_ISO_8859_14_E1_BB_offsets[64] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +}; +static const struct byte_lookup* const +to_ISO_8859_14_E1_BB_infos[3] = { + o1(0xAC), o1(0xBC), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_E1_BB = { + to_ISO_8859_14_E1_BB_offsets, + to_ISO_8859_14_E1_BB_infos +}; + +static const unsigned char +to_ISO_8859_14_E1_offsets[64] = { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 2, 3, 4, 4, 4, 4, +}; +static const struct byte_lookup* const +to_ISO_8859_14_E1_infos[5] = { + &to_ISO_8859_14_E1_B8, &to_ISO_8859_14_E1_B9, + &to_ISO_8859_14_E1_BA, &to_ISO_8859_14_E1_BB, + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_14_E1 = { + to_ISO_8859_14_E1_offsets, + to_ISO_8859_14_E1_infos +}; + +static const unsigned char +to_ISO_8859_14_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 1, 2, 3, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; +static const struct byte_lookup* const +to_ISO_8859_14_infos[7] = { + NOMAP, &to_ISO_8859_14_C2, + &to_ISO_8859_14_C3, &to_ISO_8859_14_C4, + &to_ISO_8859_14_C5, &to_ISO_8859_14_E1, + UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_14 = { + to_ISO_8859_14_offsets, + to_ISO_8859_14_infos +}; + +static const struct byte_lookup* const +from_ISO_8859_15_infos[129] = { + NOMAP, o2(0xC2,0x80), + o2(0xC2,0x81), o2(0xC2,0x82), + o2(0xC2,0x83), o2(0xC2,0x84), + o2(0xC2,0x85), o2(0xC2,0x86), + o2(0xC2,0x87), o2(0xC2,0x88), + o2(0xC2,0x89), o2(0xC2,0x8A), + o2(0xC2,0x8B), o2(0xC2,0x8C), + o2(0xC2,0x8D), o2(0xC2,0x8E), + o2(0xC2,0x8F), o2(0xC2,0x90), + o2(0xC2,0x91), o2(0xC2,0x92), + o2(0xC2,0x93), o2(0xC2,0x94), + o2(0xC2,0x95), o2(0xC2,0x96), + o2(0xC2,0x97), o2(0xC2,0x98), + o2(0xC2,0x99), o2(0xC2,0x9A), + o2(0xC2,0x9B), o2(0xC2,0x9C), + o2(0xC2,0x9D), o2(0xC2,0x9E), + o2(0xC2,0x9F), o2(0xC2,0xA0), + o2(0xC2,0xA1), o2(0xC2,0xA2), + o2(0xC2,0xA3), o3(0xE2,0x82,0xAC), + o2(0xC2,0xA5), o2(0xC5,0xA0), + o2(0xC2,0xA7), o2(0xC5,0xA1), + o2(0xC2,0xA9), o2(0xC2,0xAA), + o2(0xC2,0xAB), o2(0xC2,0xAC), + o2(0xC2,0xAD), o2(0xC2,0xAE), + o2(0xC2,0xAF), o2(0xC2,0xB0), + o2(0xC2,0xB1), o2(0xC2,0xB2), + o2(0xC2,0xB3), o2(0xC5,0xBD), + o2(0xC2,0xB5), o2(0xC2,0xB6), + o2(0xC2,0xB7), o2(0xC5,0xBE), + o2(0xC2,0xB9), o2(0xC2,0xBA), + o2(0xC2,0xBB), o2(0xC5,0x92), + o2(0xC5,0x93), o2(0xC5,0xB8), + o2(0xC2,0xBF), o2(0xC3,0x80), + o2(0xC3,0x81), o2(0xC3,0x82), + o2(0xC3,0x83), o2(0xC3,0x84), + o2(0xC3,0x85), o2(0xC3,0x86), + o2(0xC3,0x87), o2(0xC3,0x88), + o2(0xC3,0x89), o2(0xC3,0x8A), + o2(0xC3,0x8B), o2(0xC3,0x8C), + o2(0xC3,0x8D), o2(0xC3,0x8E), + o2(0xC3,0x8F), o2(0xC3,0x90), + o2(0xC3,0x91), o2(0xC3,0x92), + o2(0xC3,0x93), o2(0xC3,0x94), + o2(0xC3,0x95), o2(0xC3,0x96), + o2(0xC3,0x97), o2(0xC3,0x98), + o2(0xC3,0x99), o2(0xC3,0x9A), + o2(0xC3,0x9B), o2(0xC3,0x9C), + o2(0xC3,0x9D), o2(0xC3,0x9E), + o2(0xC3,0x9F), o2(0xC3,0xA0), + o2(0xC3,0xA1), o2(0xC3,0xA2), + o2(0xC3,0xA3), o2(0xC3,0xA4), + o2(0xC3,0xA5), o2(0xC3,0xA6), + o2(0xC3,0xA7), o2(0xC3,0xA8), + o2(0xC3,0xA9), o2(0xC3,0xAA), + o2(0xC3,0xAB), o2(0xC3,0xAC), + o2(0xC3,0xAD), o2(0xC3,0xAE), + o2(0xC3,0xAF), o2(0xC3,0xB0), + o2(0xC3,0xB1), o2(0xC3,0xB2), + o2(0xC3,0xB3), o2(0xC3,0xB4), + o2(0xC3,0xB5), o2(0xC3,0xB6), + o2(0xC3,0xB7), o2(0xC3,0xB8), + o2(0xC3,0xB9), o2(0xC3,0xBA), + o2(0xC3,0xBB), o2(0xC3,0xBC), + o2(0xC3,0xBD), o2(0xC3,0xBE), + o2(0xC3,0xBF), +}; +const BYTE_LOOKUP +from_ISO_8859_15 = { + from_ISO_8859_15_offsets, + from_ISO_8859_15_infos +}; + +static const unsigned char +to_ISO_8859_15_C2_offsets[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 56, 36, 56, 37, 56, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 56, 49, 50, 51, 56, 52, 53, 54, 56, 56, 56, 55, +}; +static const struct byte_lookup* const +to_ISO_8859_15_C2_infos[57] = { + o1(0x80), o1(0x81), o1(0x82), o1(0x83), + o1(0x84), o1(0x85), o1(0x86), o1(0x87), + o1(0x88), o1(0x89), o1(0x8A), o1(0x8B), + o1(0x8C), o1(0x8D), o1(0x8E), o1(0x8F), + o1(0x90), o1(0x91), o1(0x92), o1(0x93), + o1(0x94), o1(0x95), o1(0x96), o1(0x97), + o1(0x98), o1(0x99), o1(0x9A), o1(0x9B), + o1(0x9C), o1(0x9D), o1(0x9E), o1(0x9F), + o1(0xA0), o1(0xA1), o1(0xA2), o1(0xA3), + o1(0xA5), o1(0xA7), o1(0xA9), o1(0xAA), + o1(0xAB), o1(0xAC), o1(0xAD), o1(0xAE), + o1(0xAF), o1(0xB0), o1(0xB1), o1(0xB2), + o1(0xB3), o1(0xB5), o1(0xB6), o1(0xB7), + o1(0xB9), o1(0xBA), o1(0xBB), o1(0xBF), + UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_15_C2 = { + to_ISO_8859_15_C2_offsets, + to_ISO_8859_15_C2_infos +}; + +static const BYTE_LOOKUP +to_ISO_8859_15_C3 = { + to_ISO_8859_15_C3_offsets, + to_ISO_8859_1_C3_infos +}; + +static const unsigned char +to_ISO_8859_15_C5_offsets[64] = { + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 2, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 5, 6, 7, +}; +static const struct byte_lookup* const +to_ISO_8859_15_C5_infos[8] = { + o1(0xBC), o1(0xBD), o1(0xA6), o1(0xA8), + o1(0xBE), o1(0xB4), o1(0xB8), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_15_C5 = { + to_ISO_8859_15_C5_offsets, + to_ISO_8859_15_C5_infos +}; + +static const unsigned char +to_ISO_8859_15_E2_82_offsets[64] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +}; +static const struct byte_lookup* const +to_ISO_8859_15_E2_82_infos[2] = { + o1(0xA4), UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_15_E2_82 = { + to_ISO_8859_15_E2_82_offsets, + to_ISO_8859_15_E2_82_infos +}; + +static const unsigned char +to_ISO_8859_15_E2_offsets[64] = { + 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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 const struct byte_lookup* const +to_ISO_8859_15_E2_infos[2] = { + &to_ISO_8859_15_E2_82, UNDEF, +}; +static const BYTE_LOOKUP +to_ISO_8859_15_E2 = { + to_ISO_8859_15_E2_offsets, + to_ISO_8859_15_E2_infos +}; + +static const unsigned char +to_ISO_8859_15_offsets[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 1, 2, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; +static const struct byte_lookup* const +to_ISO_8859_15_infos[6] = { + NOMAP, &to_ISO_8859_15_C2, + &to_ISO_8859_15_C3, &to_ISO_8859_15_C5, + &to_ISO_8859_15_E2, UNDEF, +}; +const BYTE_LOOKUP +to_ISO_8859_15 = { + to_ISO_8859_15_offsets, + to_ISO_8859_15_infos +}; + +/* Footprint (bytes): gross: 27684, saved: 3712, net: 23972 */ |