/* !!! WARNING !!! DON'T CHANGE ORDER OF CHARS */ struct codepage_map codepage_utf8cyr_array[] = { { 0x000003, 216 }, // max size , char count { 0x00003f, 0 }, { 0x00003f, 0 }, { 0x00c280, 1 }, { 0x00c281, 2 }, { 0x00c282, 3 }, { 0x00c283, 4 }, { 0x00c284, 5 }, { 0x00c285, 6 }, { 0x00c286, 7 }, { 0x00c287, 8 }, { 0x00c288, 9 }, { 0x00c289, 10 }, { 0x00c28a, 11 }, { 0x00c28b, 12 }, { 0x00c28c, 13 }, { 0x00c28d, 14 }, { 0x00c28e, 15 }, { 0x00c28f, 16 }, { 0x00c290, 17 }, { 0x00c291, 18 }, { 0x00c292, 19 }, { 0x00c293, 20 }, { 0x00c294, 21 }, { 0x00c295, 22 }, { 0x00c296, 23 }, { 0x00c297, 24 }, { 0x00c298, 25 }, { 0x00c299, 26 }, { 0x00c29a, 27 }, { 0x00c29b, 28 }, { 0x00c29c, 29 }, { 0x00c29d, 30 }, { 0x00c29e, 31 }, { 0x00c29f, 32 }, { 0x00c2a0, 33 }, { 0x00c2a4, 34 }, { 0x00c2a6, 35 }, { 0x00c2a7, 36 }, { 0x00c2a9, 37 }, { 0x00c2ab, 38 }, { 0x00c2ac, 39 }, { 0x00c2ad, 40 }, { 0x00c2ae, 41 }, { 0x00c2b0, 42 }, { 0x00c2b1, 43 }, { 0x00c2b2, 44 }, { 0x00c2b5, 45 }, { 0x00c2b6, 46 }, { 0x00c2b7, 47 }, { 0x00c2bb, 48 }, { 0x00c3b7, 49 }, { 0x00d081, 50 }, { 0x00d082, 51 }, { 0x00d083, 52 }, { 0x00d084, 53 }, { 0x00d085, 54 }, { 0x00d086, 55 }, { 0x00d087, 56 }, { 0x00d088, 57 }, { 0x00d089, 58 }, { 0x00d08a, 59 }, { 0x00d08b, 60 }, { 0x00d08c, 61 }, { 0x00d08e, 62 }, { 0x00d08f, 63 }, { 0x00d090, 64 }, { 0x00d091, 65 }, { 0x00d092, 66 }, { 0x00d093, 67 }, { 0x00d094, 68 }, { 0x00d095, 69 }, { 0x00d096, 70 }, { 0x00d097, 71 }, { 0x00d098, 72 }, { 0x00d099, 73 }, { 0x00d09a, 74 }, { 0x00d09b, 75 }, { 0x00d09c, 76 }, { 0x00d09d, 77 }, { 0x00d09e, 78 }, { 0x00d09f, 79 }, { 0x00d0a0, 80 }, { 0x00d0a1, 81 }, { 0x00d0a2, 82 }, { 0x00d0a3, 83 }, { 0x00d0a4, 84 }, { 0x00d0a5, 85 }, { 0x00d0a6, 86 }, { 0x00d0a7, 87 }, { 0x00d0a8, 88 }, { 0x00d0a9, 89 }, { 0x00d0aa, 90 }, { 0x00d0ab, 91 }, { 0x00d0ac, 92 }, { 0x00d0ad, 93 }, { 0x00d0ae, 94 }, { 0x00d0af, 95 }, { 0x00d0b0, 96 }, { 0x00d0b1, 97 }, { 0x00d0b2, 98 }, { 0x00d0b3, 99 }, { 0x00d0b4, 100 }, { 0x00d0b5, 101 }, { 0x00d0b6, 102 }, { 0x00d0b7, 103 }, { 0x00d0b8, 104 }, { 0x00d0b9, 105 }, { 0x00d0ba, 106 }, { 0x00d0bb, 107 }, { 0x00d0bc, 108 }, { 0x00d0bd, 109 }, { 0x00d0be, 110 }, { 0x00d0bf, 111 }, { 0x00d180, 112 }, { 0x00d181, 113 }, { 0x00d182, 114 }, { 0x00d183, 115 }, { 0x00d184, 116 }, { 0x00d185, 117 }, { 0x00d186, 118 }, { 0x00d187, 119 }, { 0x00d188, 120 }, { 0x00d189, 121 }, { 0x00d18a, 122 }, { 0x00d18b, 123 }, { 0x00d18c, 124 }, { 0x00d18d, 125 }, { 0x00d18e, 126 }, { 0x00d18f, 127 }, { 0x00d191, 128 }, { 0x00d192, 129 }, { 0x00d193, 130 }, { 0x00d194, 131 }, { 0x00d195, 132 }, { 0x00d196, 133 }, { 0x00d197, 134 }, { 0x00d198, 135 }, { 0x00d199, 136 }, { 0x00d19a, 137 }, { 0x00d19b, 138 }, { 0x00d19c, 139 }, { 0x00d19e, 140 }, { 0x00d19f, 141 }, { 0x00d290, 142 }, { 0x00d291, 143 }, { 0xe28093, 144 }, { 0xe28094, 145 }, { 0xe28098, 146 }, { 0xe28099, 147 }, { 0xe2809a, 148 }, { 0xe2809c, 149 }, { 0xe2809d, 150 }, { 0xe2809e, 151 }, { 0xe280a0, 152 }, { 0xe280a1, 153 }, { 0xe280a2, 154 }, { 0xe280a6, 155 }, { 0xe280b0, 156 }, { 0xe280b9, 157 }, { 0xe280ba, 158 }, { 0xe28496, 159 }, { 0xe284a2, 160 }, { 0xe28899, 161 }, { 0xe2889a, 162 }, { 0xe28988, 163 }, { 0xe289a4, 164 }, { 0xe289a5, 165 }, { 0xe28ca0, 166 }, { 0xe28ca1, 167 }, { 0xe29480, 168 }, { 0xe29482, 169 }, { 0xe2948c, 170 }, { 0xe29490, 171 }, { 0xe29494, 172 }, { 0xe29498, 173 }, { 0xe2949c, 174 }, { 0xe294a4, 175 }, { 0xe294ac, 176 }, { 0xe294b4, 177 }, { 0xe294bc, 178 }, { 0xe29590, 179 }, { 0xe29591, 180 }, { 0xe29592, 181 }, { 0xe29593, 182 }, { 0xe29594, 183 }, { 0xe29595, 184 }, { 0xe29596, 185 }, { 0xe29597, 186 }, { 0xe29598, 187 }, { 0xe29599, 188 }, { 0xe2959a, 189 }, { 0xe2959b, 190 }, { 0xe2959c, 191 }, { 0xe2959d, 192 }, { 0xe2959e, 193 }, { 0xe2959f, 194 }, { 0xe295a0, 195 }, { 0xe295a1, 196 }, { 0xe295a2, 197 }, { 0xe295a3, 198 }, { 0xe295a4, 199 }, { 0xe295a5, 200 }, { 0xe295a6, 201 }, { 0xe295a7, 202 }, { 0xe295a8, 203 }, { 0xe295a9, 204 }, { 0xe295aa, 205 }, { 0xe295ab, 206 }, { 0xe295ac, 207 }, { 0xe29680, 208 }, { 0xe29684, 209 }, { 0xe29688, 210 }, { 0xe2968c, 211 }, { 0xe29690, 212 }, { 0xe29691, 213 }, { 0xe29692, 214 }, { 0xe29693, 215 }, { 0xe296a0, 216 }, { 0x000000, 0 } }; struct codepage_map codepage_win1251_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x0088, 9 }, { 0x0098, 25 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a0, 33 }, { 0x00a4, 37 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x00a9, 42 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x00ad, 46 }, { 0x00ae, 47 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x003f, 0 }, { 0x00b5, 54 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x00bb, 60 }, { 0x003f, 0 }, { 0x00a8, 41 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x00aa, 43 }, { 0x00bd, 62 }, { 0x00b2, 51 }, { 0x00af, 48 }, { 0x00a3, 36 }, { 0x008a, 11 }, { 0x008c, 13 }, { 0x008e, 15 }, { 0x008d, 14 }, { 0x00a1, 34 }, { 0x008f, 16 }, { 0x00c0, 65 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00c3, 68 }, { 0x00c4, 69 }, { 0x00c5, 70 }, { 0x00c6, 71 }, { 0x00c7, 72 }, { 0x00c8, 73 }, { 0x00c9, 74 }, { 0x00ca, 75 }, { 0x00cb, 76 }, { 0x00cc, 77 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x00cf, 80 }, { 0x00d0, 81 }, { 0x00d1, 82 }, { 0x00d2, 83 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d5, 86 }, { 0x00d6, 87 }, { 0x00d7, 88 }, { 0x00d8, 89 }, { 0x00d9, 90 }, { 0x00da, 91 }, { 0x00db, 92 }, { 0x00dc, 93 }, { 0x00dd, 94 }, { 0x00de, 95 }, { 0x00df, 96 }, { 0x00e0, 97 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00e3, 100 }, { 0x00e4, 101 }, { 0x00e5, 102 }, { 0x00e6, 103 }, { 0x00e7, 104 }, { 0x00e8, 105 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f0, 113 }, { 0x00f1, 114 }, { 0x00f2, 115 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f5, 118 }, { 0x00f6, 119 }, { 0x00f7, 120 }, { 0x00f8, 121 }, { 0x00f9, 122 }, { 0x00fa, 123 }, { 0x00fb, 124 }, { 0x00fc, 125 }, { 0x00fd, 126 }, { 0x00fe, 127 }, { 0x00ff, 128 }, { 0x00b8, 57 }, { 0x0090, 17 }, { 0x0083, 4 }, { 0x00ba, 59 }, { 0x00be, 63 }, { 0x00b3, 52 }, { 0x00bf, 64 }, { 0x00bc, 61 }, { 0x009a, 27 }, { 0x009c, 29 }, { 0x009e, 31 }, { 0x009d, 30 }, { 0x00a2, 35 }, { 0x009f, 32 }, { 0x00a5, 38 }, { 0x00b4, 53 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0082, 3 }, { 0x0093, 20 }, { 0x0094, 21 }, { 0x0084, 5 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0095, 22 }, { 0x0085, 6 }, { 0x0089, 10 }, { 0x008b, 12 }, { 0x009b, 28 }, { 0x00b9, 58 }, { 0x0099, 26 }, { 0x0000, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x0000, 0 } }; struct codepage_map codepage_koi8u_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x009a, 27 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00bf, 64 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x009c, 29 }, { 0x003f, 0 }, { 0x009d, 30 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x009e, 31 }, { 0x003f, 0 }, { 0x009f, 32 }, { 0x00b3, 52 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00b4, 53 }, { 0x003f, 0 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00f7, 120 }, { 0x00e7, 104 }, { 0x00e4, 101 }, { 0x00e5, 102 }, { 0x00f6, 119 }, { 0x00fa, 123 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f0, 113 }, { 0x00f2, 115 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f5, 118 }, { 0x00e6, 103 }, { 0x00e8, 105 }, { 0x00e3, 100 }, { 0x00fe, 127 }, { 0x00fb, 124 }, { 0x00fd, 126 }, { 0x00ff, 128 }, { 0x00f9, 122 }, { 0x00f8, 121 }, { 0x00fc, 125 }, { 0x00e0, 97 }, { 0x00f1, 114 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00d7, 88 }, { 0x00c7, 72 }, { 0x00c4, 69 }, { 0x00c5, 70 }, { 0x00d6, 87 }, { 0x00da, 91 }, { 0x00c9, 74 }, { 0x00ca, 75 }, { 0x00cb, 76 }, { 0x00cc, 77 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x00cf, 80 }, { 0x00d0, 81 }, { 0x00d2, 83 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d5, 86 }, { 0x00c6, 71 }, { 0x00c8, 73 }, { 0x00c3, 68 }, { 0x00de, 95 }, { 0x00db, 92 }, { 0x00dd, 94 }, { 0x00df, 96 }, { 0x00d9, 90 }, { 0x00d8, 89 }, { 0x00dc, 93 }, { 0x00c0, 65 }, { 0x00d1, 82 }, { 0x00a3, 36 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a4, 37 }, { 0x003f, 0 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00bd, 62 }, { 0x00ad, 46 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x0095, 22 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0098, 25 }, { 0x0099, 26 }, { 0x0093, 20 }, { 0x009b, 28 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x0082, 3 }, { 0x0083, 4 }, { 0x0084, 5 }, { 0x0085, 6 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0088, 9 }, { 0x0089, 10 }, { 0x008a, 11 }, { 0x00a0, 33 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x003f, 0 }, { 0x00a5, 38 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a8, 41 }, { 0x00a9, 42 }, { 0x00aa, 43 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x003f, 0 }, { 0x00ae, 47 }, { 0x00af, 48 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x00b2, 51 }, { 0x003f, 0 }, { 0x00b5, 54 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00b8, 57 }, { 0x00b9, 58 }, { 0x00ba, 59 }, { 0x00bb, 60 }, { 0x00bc, 61 }, { 0x003f, 0 }, { 0x00be, 63 }, { 0x008b, 12 }, { 0x008c, 13 }, { 0x008d, 14 }, { 0x008e, 15 }, { 0x008f, 16 }, { 0x0090, 17 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0094, 21 }, { 0x0000, 0 } }; struct codepage_map codepage_ibm866_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00ff, 128 }, { 0x00fd, 126 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f8, 121 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00fa, 123 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f0, 113 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f2, 115 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f4, 117 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f6, 119 }, { 0x003f, 0 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x0082, 3 }, { 0x0083, 4 }, { 0x0084, 5 }, { 0x0085, 6 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0088, 9 }, { 0x0089, 10 }, { 0x008a, 11 }, { 0x008b, 12 }, { 0x008c, 13 }, { 0x008d, 14 }, { 0x008e, 15 }, { 0x008f, 16 }, { 0x0090, 17 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0093, 20 }, { 0x0094, 21 }, { 0x0095, 22 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0098, 25 }, { 0x0099, 26 }, { 0x009a, 27 }, { 0x009b, 28 }, { 0x009c, 29 }, { 0x009d, 30 }, { 0x009e, 31 }, { 0x009f, 32 }, { 0x00a0, 33 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x00a3, 36 }, { 0x00a4, 37 }, { 0x00a5, 38 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x00a8, 41 }, { 0x00a9, 42 }, { 0x00aa, 43 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x00ad, 46 }, { 0x00ae, 47 }, { 0x00af, 48 }, { 0x00e0, 97 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00e3, 100 }, { 0x00e4, 101 }, { 0x00e5, 102 }, { 0x00e6, 103 }, { 0x00e7, 104 }, { 0x00e8, 105 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f1, 114 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f3, 116 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f5, 118 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f7, 120 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00fc, 125 }, { 0x003f, 0 }, { 0x00f9, 122 }, { 0x00fb, 124 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00c4, 69 }, { 0x00b3, 52 }, { 0x00da, 91 }, { 0x00bf, 64 }, { 0x00c0, 65 }, { 0x00d9, 90 }, { 0x00c3, 68 }, { 0x00b4, 53 }, { 0x00c2, 67 }, { 0x00c1, 66 }, { 0x00c5, 70 }, { 0x00cd, 78 }, { 0x00ba, 59 }, { 0x00d5, 86 }, { 0x00d6, 87 }, { 0x00c9, 74 }, { 0x00b8, 57 }, { 0x00b7, 56 }, { 0x00bb, 60 }, { 0x00d4, 85 }, { 0x00d3, 84 }, { 0x00c8, 73 }, { 0x00be, 63 }, { 0x00bd, 62 }, { 0x00bc, 61 }, { 0x00c6, 71 }, { 0x00c7, 72 }, { 0x00cc, 77 }, { 0x00b5, 54 }, { 0x00b6, 55 }, { 0x00b9, 58 }, { 0x00d1, 82 }, { 0x00d2, 83 }, { 0x00cb, 76 }, { 0x00cf, 80 }, { 0x00d0, 81 }, { 0x00ca, 75 }, { 0x00d8, 89 }, { 0x00d7, 88 }, { 0x00ce, 79 }, { 0x00df, 96 }, { 0x00dc, 93 }, { 0x00db, 92 }, { 0x00dd, 94 }, { 0x00de, 95 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x00b2, 51 }, { 0x00fe, 127 }, { 0x0000, 0 } }; struct codepage_map codepage_iso5_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x003f, 0 }, { 0x003f, 0 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x0082, 3 }, { 0x0083, 4 }, { 0x0084, 5 }, { 0x0085, 6 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0088, 9 }, { 0x0089, 10 }, { 0x008a, 11 }, { 0x008b, 12 }, { 0x008c, 13 }, { 0x008d, 14 }, { 0x008e, 15 }, { 0x008f, 16 }, { 0x0090, 17 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0093, 20 }, { 0x0094, 21 }, { 0x0095, 22 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0098, 25 }, { 0x0099, 26 }, { 0x009a, 27 }, { 0x009b, 28 }, { 0x009c, 29 }, { 0x009d, 30 }, { 0x009e, 31 }, { 0x009f, 32 }, { 0x00a0, 33 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00fd, 126 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00ad, 46 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x00a3, 36 }, { 0x00a4, 37 }, { 0x00a5, 38 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x00a8, 41 }, { 0x00a9, 42 }, { 0x00aa, 43 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x00ae, 47 }, { 0x00af, 48 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x00b2, 51 }, { 0x00b3, 52 }, { 0x00b4, 53 }, { 0x00b5, 54 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x00b8, 57 }, { 0x00b9, 58 }, { 0x00ba, 59 }, { 0x00bb, 60 }, { 0x00bc, 61 }, { 0x00bd, 62 }, { 0x00be, 63 }, { 0x00bf, 64 }, { 0x00c0, 65 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00c3, 68 }, { 0x00c4, 69 }, { 0x00c5, 70 }, { 0x00c6, 71 }, { 0x00c7, 72 }, { 0x00c8, 73 }, { 0x00c9, 74 }, { 0x00ca, 75 }, { 0x00cb, 76 }, { 0x00cc, 77 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x00cf, 80 }, { 0x00d0, 81 }, { 0x00d1, 82 }, { 0x00d2, 83 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d5, 86 }, { 0x00d6, 87 }, { 0x00d7, 88 }, { 0x00d8, 89 }, { 0x00d9, 90 }, { 0x00da, 91 }, { 0x00db, 92 }, { 0x00dc, 93 }, { 0x00dd, 94 }, { 0x00de, 95 }, { 0x00df, 96 }, { 0x00e0, 97 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00e3, 100 }, { 0x00e4, 101 }, { 0x00e5, 102 }, { 0x00e6, 103 }, { 0x00e7, 104 }, { 0x00e8, 105 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f1, 114 }, { 0x00f2, 115 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f5, 118 }, { 0x00f6, 119 }, { 0x00f7, 120 }, { 0x00f8, 121 }, { 0x00f9, 122 }, { 0x00fa, 123 }, { 0x00fb, 124 }, { 0x00fc, 125 }, { 0x00fe, 127 }, { 0x00ff, 128 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x00f0, 113 }, { 0x0000, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x003f, 0 }, { 0x0000, 0 } }; struct codepage_map codepage_koi8r_array[] = { { 0x0001, 128 }, // max size , char count for control { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x009a, 27 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x00bf, 64 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x009c, 29 }, { 0x005f, 0 }, { 0x009d, 30 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x009e, 31 }, { 0x005f, 0 }, { 0x009f, 32 }, { 0x00b3, 52 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x00e1, 98 }, { 0x00e2, 99 }, { 0x00f7, 120 }, { 0x00e7, 104 }, { 0x00e4, 101 }, { 0x00e5, 102 }, { 0x00f6, 119 }, { 0x00fa, 123 }, { 0x00e9, 106 }, { 0x00ea, 107 }, { 0x00eb, 108 }, { 0x00ec, 109 }, { 0x00ed, 110 }, { 0x00ee, 111 }, { 0x00ef, 112 }, { 0x00f0, 113 }, { 0x00f2, 115 }, { 0x00f3, 116 }, { 0x00f4, 117 }, { 0x00f5, 118 }, { 0x00e6, 103 }, { 0x00e8, 105 }, { 0x00e3, 100 }, { 0x00fe, 127 }, { 0x00fb, 124 }, { 0x00fd, 126 }, { 0x00ff, 128 }, { 0x00f9, 122 }, { 0x00f8, 121 }, { 0x00fc, 125 }, { 0x00e0, 97 }, { 0x00f1, 114 }, { 0x00c1, 66 }, { 0x00c2, 67 }, { 0x00d7, 88 }, { 0x00c7, 72 }, { 0x00c4, 69 }, { 0x00c5, 70 }, { 0x00d6, 87 }, { 0x00da, 91 }, { 0x00c9, 74 }, { 0x00ca, 75 }, { 0x00cb, 76 }, { 0x00cc, 77 }, { 0x00cd, 78 }, { 0x00ce, 79 }, { 0x00cf, 80 }, { 0x00d0, 81 }, { 0x00d2, 83 }, { 0x00d3, 84 }, { 0x00d4, 85 }, { 0x00d5, 86 }, { 0x00c6, 71 }, { 0x00c8, 73 }, { 0x00c3, 68 }, { 0x00de, 95 }, { 0x00db, 92 }, { 0x00dd, 94 }, { 0x00df, 96 }, { 0x00d9, 90 }, { 0x00d8, 89 }, { 0x00dc, 93 }, { 0x00c0, 65 }, { 0x00d1, 82 }, { 0x00a3, 36 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x005f, 0 }, { 0x0095, 22 }, { 0x0096, 23 }, { 0x0097, 24 }, { 0x0098, 25 }, { 0x0099, 26 }, { 0x0093, 20 }, { 0x009b, 28 }, { 0x0080, 1 }, { 0x0081, 2 }, { 0x0082, 3 }, { 0x0083, 4 }, { 0x0084, 5 }, { 0x0085, 6 }, { 0x0086, 7 }, { 0x0087, 8 }, { 0x0088, 9 }, { 0x0089, 10 }, { 0x008a, 11 }, { 0x00a0, 33 }, { 0x00a1, 34 }, { 0x00a2, 35 }, { 0x00a4, 37 }, { 0x00a5, 38 }, { 0x00a6, 39 }, { 0x00a7, 40 }, { 0x00a8, 41 }, { 0x00a9, 42 }, { 0x00aa, 43 }, { 0x00ab, 44 }, { 0x00ac, 45 }, { 0x00ad, 46 }, { 0x00ae, 47 }, { 0x00af, 48 }, { 0x00b0, 49 }, { 0x00b1, 50 }, { 0x00b2, 51 }, { 0x00b4, 53 }, { 0x00b5, 54 }, { 0x00b6, 55 }, { 0x00b7, 56 }, { 0x00b8, 57 }, { 0x00b9, 58 }, { 0x00ba, 59 }, { 0x00bb, 60 }, { 0x00bc, 61 }, { 0x00bd, 62 }, { 0x00be, 63 }, { 0x008b, 12 }, { 0x008c, 13 }, { 0x008d, 14 }, { 0x008e, 15 }, { 0x008f, 16 }, { 0x0090, 17 }, { 0x0091, 18 }, { 0x0092, 19 }, { 0x0094, 21 }, { 0x0000, 0 } };