From 40e6a2c4a3bd625dc6b8d777bd17f807813c43a5 Mon Sep 17 00:00:00 2001 From: konimarti <30975830+konimarti@users.noreply.github.com> Date: Wed, 11 Feb 2026 01:10:12 +0100 Subject: [PATCH] codepage: add single-byte code page support (#2891) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * codepage: add single-byte code page support Add std::encoding::codepage with a shared engine for converting between single-byte code pages and UTF-8 using table-driven mappings. Introduce generated tables and wrappers for several code pages[1] each exposing encode/decode helpers built on a common CodePageTable structure. The mapping data is generated by cpgen[2] from the Unicode Consortium’s published code page mapping files and follows the Unicode standard’s interpretation of control characters (abstract characters) rather than historical VGA glyph shapes. [1] Code page overview/groups: DOS/OEM code pages (legacy PC): cp437 cp737 cp775 cp850 cp852 cp855 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 Windows code pages (ANSI/Windows): cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 ISO/IEC 8859 series (Latin/Regional): iso_8859_1 iso_8859_2 iso_8859_3 iso_8859_4 iso_8859_5 iso_8859_6 iso_8859_7 iso_8859_8 iso_8859_9 iso_8859_10 iso_8859_11 iso_8859_13 iso_8859_14 iso_8859_15 iso_8859_16 [2] github.com/konimarti/cpgen Signed-off-by: Koni Marti * codepage: change encoding format, streamline api * Use enum to collect the data. --------- Signed-off-by: Koni Marti Co-authored-by: Christoffer Lerno --- lib/std/encoding/codepage.c3 | 243 +++ lib/std/encoding/codepage_private.c3 | 2234 +++++++++++++++++++++++++ releasenotes.md | 1 + test/unit/stdlib/encoding/codepage.c3 | 92 + 4 files changed, 2570 insertions(+) create mode 100644 lib/std/encoding/codepage.c3 create mode 100644 lib/std/encoding/codepage_private.c3 create mode 100644 test/unit/stdlib/encoding/codepage.c3 diff --git a/lib/std/encoding/codepage.c3 b/lib/std/encoding/codepage.c3 new file mode 100644 index 000000000..e3da89a2f --- /dev/null +++ b/lib/std/encoding/codepage.c3 @@ -0,0 +1,243 @@ +// Copyright (c) 2026 Koni Marti. All rights reserved. +// Use of this source code is governed by the MIT license. +<* + Module providing generic single‑byte code page to UTF‑8 conversion. + + This module implements a compact, table‑driven approach for single-byte + (8‑bit) encodings (e.g. CP437, CP850, CP866, CP125x). It is designed so + that each concrete code page only needs to supply a small, static + mapping table; the conversion logic is shared. + + The design has two main goals: + + - Fast decode from code page to UTF‑8 with a single table lookup per byte. + - Memory‑efficient encode from UTF‑8 to code page without a large + Unicode‑to‑byte array (no 64k reverse map per code page). + + The design of CodePageTable and the packed reverse mapping is conceptually + similar to golang.org/x/text/encoding/charmap. + + *> +module std::encoding::codepage; +import std::sort; + +<* + Default replacement byte used when encoding from UTF‑8 to a single‑byte + code page and a Unicode scalar cannot be represented. + + By convention, 0x1A is the ASCII/IBM SUB (substitute) control character. +*> +const char REPLACEMENT_CHAR = 0x1a; + +<* + CodePageTable contains the bidirectional mapping tables for a single‑byte code + page in a compact packed form. + + to_codepoint is the forward map from code‑page byte (0x00–0xFF) to its UTF‑8 + sequence. The array index is the raw byte value, each entry occupying 4 bytes: + + - Byte 0 is the length of the UTF‑8 sequence (0–4) + - Bytes 1:len are the UTF‑8 bytes for the mapped Unicode scalar + + The table therefore uses 256 * 4 bytes and is stored as a flat + char[1024] array, where entry i starts at offset i*4. + + from_codepoint is the reverse map from Unicode scalar value to code‑page byte, + also stored as a packed char[1024] array. It contains 256 entries of 4 bytes + each, where each 4‑byte chunk is interpreted as a little‑endian uint + with the following packing scheme: + + high 8 bits = code‑page byte value (0x00–0xFF) + low 24 bits = Unicode scalar value (code point) + + In other words: + + entry = (byte_value << 24) | codepoint; + + Ordering: + The 256 packed uint entries in from_codepoint are sorted by the low 24 bits + (code points). This allows binary search over Unicode scalar values without + a 64k reverse‑lookup table. For any given code page, there are at most + 256 mappings, so a log2(256) or 8 step search is sufficient. +*> +struct CodePageTable +{ + char[1024] to_codepoint; + char[1024] from_codepoint; +} + +enum CodePage : (String name, CodePageTable* table) +{ + CP1250 = { "cp1250", &codepage::CP1250 }, + CP1251 = { "cp1251", &codepage::CP1251 }, + CP1252 = { "cp1252", &codepage::CP1252 }, + CP1253 = { "cp1253", &codepage::CP1253 }, + CP1254 = { "cp1254", &codepage::CP1254 }, + CP1255 = { "cp1255", &codepage::CP1255 }, + CP1256 = { "cp1256", &codepage::CP1256 }, + CP1257 = { "cp1257", &codepage::CP1257 }, + CP1258 = { "cp1258", &codepage::CP1258 }, + CP437 = { "cp437", &codepage::CP437 }, + CP737 = { "cp737", &codepage::CP737 }, + CP775 = { "cp775", &codepage::CP775 }, + CP850 = { "cp850", &codepage::CP850 }, + CP852 = { "cp852", &codepage::CP852 }, + CP855 = { "cp855", &codepage::CP855 }, + CP857 = { "cp857", &codepage::CP857 }, + CP860 = { "cp860", &codepage::CP860 }, + CP861 = { "cp861", &codepage::CP861 }, + CP862 = { "cp862", &codepage::CP862 }, + CP863 = { "cp863", &codepage::CP863 }, + CP864 = { "cp864", &codepage::CP864 }, + CP865 = { "cp865", &codepage::CP865 }, + CP866 = { "cp866", &codepage::CP866 }, + CP869 = { "cp869", &codepage::CP869 }, + CP874 = { "cp874", &codepage::CP874 }, + ISO_8859_1 = { "iso-8859-1", &codepage::ISO_8859_1 }, + ISO_8859_10 = { "iso-8859-10", &codepage::ISO_8859_10 }, + ISO_8859_11 = { "iso-8859-11", &codepage::ISO_8859_11 }, + ISO_8859_13 = { "iso-8859-13", &codepage::ISO_8859_13 }, + ISO_8859_14 = { "iso-8859-14", &codepage::ISO_8859_14 }, + ISO_8859_15 = { "iso-8859-15", &codepage::ISO_8859_15 }, + ISO_8859_16 = { "iso-8859-16", &codepage::ISO_8859_16 }, + ISO_8859_2 = { "iso-8859-2", &codepage::ISO_8859_2 }, + ISO_8859_3 = { "iso-8859-3", &codepage::ISO_8859_3 }, + ISO_8859_4 = { "iso-8859-4", &codepage::ISO_8859_4 }, + ISO_8859_5 = { "iso-8859-5", &codepage::ISO_8859_5 }, + ISO_8859_6 = { "iso-8859-6", &codepage::ISO_8859_6 }, + ISO_8859_7 = { "iso-8859-7", &codepage::ISO_8859_7 }, + ISO_8859_8 = { "iso-8859-8", &codepage::ISO_8859_8 }, + ISO_8859_9 = { "iso-8859-9", &codepage::ISO_8859_9 }, + US_ASCII = { "us-ascii", &codepage::US_ASCII }, +} + +<* + Returns a CodePage for the given charset name. + + @param [in] charset_name : "A name, case insensitive, using _ or - for separator" + @return "The CodePage for the name" + + @return? NOT_FOUND : "If the charset is unknown or unsupported" +*> +fn CodePage? by_name(String charset_name) => @pool() +{ + String name = charset_name.treplace("_","-"); + name.convert_to_lower(); + foreach (page : CodePage.values) + { + if (page.name == charset_name) return page; + } + return NOT_FOUND~; +} + +fn String? decode(Allocator allocator, char[] src, CodePage code_page) +{ + char[] dst = allocator::alloc_array(allocator, char, decode_len(src, code_page)); + return decode_buffer(src, dst, code_page); +} + +<* + Decode a code-page byte buffer into a UTF‑8 string. + + @param src : "Input byte array in the given code page." + @param dst : "Destination output string in UTF-8." + @param code_page : "Code page for this encoding." + @return "String in UTF-8." +*> +fn String? decode_buffer(char[] src, char[] dst, CodePage code_page) +{ + usz n = 0; + CodePageTable *table = code_page.table; + foreach (c: src) + { + usz pos = (usz)c * 4; + char len = table.to_codepoint[pos]; + + dst[n:len] = table.to_codepoint[pos+1:len]; + n += len; + } + + return (String)dst[:n]; +} + +fn char[]? encode(Allocator allocator, char[] src, CodePage code_page, char replacement = REPLACEMENT_CHAR) +{ + char[] dst = allocator::alloc_array(allocator, char, encode_len(src)); + return encode_buffer(src, dst, code_page, replacement); +} + +const uint MASK @private = (1u << 24) - 1; + +<* + Encode a UTF‑8 string into a single‑byte code page. + + @param src : "Input byte array in UTF-8" + @param dst : "Destination output byte array in the target code page" + @param code_page : "Code page for this encoding." + @param replacement : "Byte to emit when Unicode scalar cannot be represented in the target code page." + @return "Byte array in the given code page." +*> +fn char[]? encode_buffer(char[] src, char[] dst, CodePage code_page, char replacement = REPLACEMENT_CHAR) +{ + // Unpack the packed reverse table once into a local uint[256] view. + uint[256] from_map; + CodePageTable *table = code_page.table; + for (usz i = 0; i < 256; i++) + { + UIntLE *val = (UIntLE*)&table.from_codepoint[i * 4]; + from_map[i] = mem::load(val, 1).val; + } + + usz out = 0; + usz n = src.len; + for (usz i = 0; i < n; ) + { + usz rem = n - i; + if (rem > 4) rem = 4; + + Char32 codepoint = conv::utf8_to_char32(&src[i], &rem)!; + i += rem; + + // Binary search for codepoint in low 24 bits of each entry. + // Returned index is between [0..from_map.len). + usz index = sort::binarysearch(from_map[..], (uint)codepoint, fn int(uint lhs, uint rhs) => (int)(lhs & MASK) - (int)(rhs & MASK)); + + uint entry = from_map[index]; + if ((entry & MASK) == (uint)codepoint) + { + char b = (char)(entry >> 24); + dst[out++] = b; + } + else + { + dst[out++] = replacement; + } + } + + return dst[:out]; +} + +<* + Compute the number of UTF‑8 bytes produced when decoding src with the given + code page table. + @param src : "Input byte array in the given code page." + @param code_page : "Code page for this encoding." +*> +fn usz decode_len(char[] src, CodePage code_page) @inline +{ + usz n; + CodePageTable *table = code_page.table; + foreach (usz c: src) n += table.to_codepoint[c *4 ]; + return n; +} + +<* + Compute the number of output bytes produced when + encoding src from UTF‑8 to a single‑byte code page. + @param src : "Input byte array in UTF-8" +*> +fn usz encode_len(char[] src) @inline +{ + return conv::utf8_codepoints((String)src); +} + diff --git a/lib/std/encoding/codepage_private.c3 b/lib/std/encoding/codepage_private.c3 new file mode 100644 index 000000000..434a11ce1 --- /dev/null +++ b/lib/std/encoding/codepage_private.c3 @@ -0,0 +1,2234 @@ +// Copyright (c) 2026 Koni Marti. All rights reserved. +// Use of this source code is governed by the MIT license. +// Auto-generated by cpgen on 2026-02-09 16:48:56. +<* + Private module containing the codepage tables. +*> +module std::encoding::codepage @private; + +<* + Header from the original mappings file: + Name: cp1250 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1250 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoB + AAAAA+KAngPigKYD4oCgA+KAoQEAAAAD4oCwAsWgAAPigLkCxZoAAsWkAALFvQACxbkAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQBAAAAA+KEogLFoQAD4oC6AsWbAALFpQAC + xb4AAsW6AALCoAACy4cAAsuYAALFgQACwqQAAsSEAALCpgACwqcAAsKoAALCqQACxZ4AAsKr + AALCrAACwq0AAsKuAALFuwACwrAAAsKxAALLmwACxYIAAsK0AALCtQACwrYAAsK3AALCuAAC + xIUAAsWfAALCuwACxL0AAsudAALEvgACxbwAAsWUAALDgQACw4IAAsSCAALDhAACxLkAAsSG + AALDhwACxIwAAsOJAALEmAACw4sAAsSaAALDjQACw44AAsSOAALEkAACxYMAAsWHAALDkwAC + w5QAAsWQAALDlgACw5cAAsWYAALFrgACw5oAAsWwAALDnAACw50AAsWiAALDnwACxZUAAsOh + AALDogACxIMAAsOkAALEugACxIcAAsOnAALEjQACw6kAAsSZAALDqwACxJsAAsOtAALDrgAC + xI8AAsSRAALFhAACxYgAAsOzAALDtAACxZEAAsO2AALDtwACxZkAAsWvAALDugACxbEAAsO8 + AALDvQACxaMAAsuZAA==`, + .from_codepoint = b64`AAAAAAAAAJgAAACQAAAAiAAAAIMAAACBAQAAAQIAAAIDAAADBA + AABAUAAAUGAAAGBwAABwgAAAgJAAAJCgAACgsAAAsMAAAMDQAADQ4AAA4PAAAPEAAAEBEAAB + ESAAASEwAAExQAABQVAAAVFgAAFhcAABcYAAAYGQAAGRoAABobAAAbHAAAHB0AAB0eAAAeHw + AAHyAAACAhAAAhIgAAIiMAACMkAAAkJQAAJSYAACYnAAAnKAAAKCkAACkqAAAqKwAAKywAAC + wtAAAtLgAALi8AAC8wAAAwMQAAMTIAADIzAAAzNAAANDUAADU2AAA2NwAANzgAADg5AAA5Og + AAOjsAADs8AAA8PQAAPT4AAD4/AAA/QAAAQEEAAEFCAABCQwAAQ0QAAERFAABFRgAARkcAAE + dIAABISQAASUoAAEpLAABLTAAATE0AAE1OAABOTwAAT1AAAFBRAABRUgAAUlMAAFNUAABUVQ + AAVVYAAFZXAABXWAAAWFkAAFlaAABaWwAAW1wAAFxdAABdXgAAXl8AAF9gAABgYQAAYWIAAG + JjAABjZAAAZGUAAGVmAABmZwAAZ2gAAGhpAABpagAAamsAAGtsAABsbQAAbW4AAG5vAABvcA + AAcHEAAHFyAABycwAAc3QAAHR1AAB1dgAAdncAAHd4AAB4eQAAeXoAAHp7AAB7fAAAfH0AAH + 1+AAB+fwAAf6AAAKCkAACkpgAApqcAAKeoAACoqQAAqasAAKusAACsrQAAra4AAK6wAACwsQ + AAsbQAALS1AAC1tgAAtrcAALe4AAC4uwAAu8EAAMHCAADCxAAAxMcAAMfJAADJywAAy80AAM + 3OAADO0wAA09QAANTWAADW1wAA19oAANrcAADc3QAA3d8AAN/hAADh4gAA4uQAAOTnAADn6Q + AA6esAAOvtAADt7gAA7vMAAPP0AAD09gAA9vcAAPf6AAD6/AAA/P0AAP0CAQDDAwEA4wQBAK + UFAQC5BgEAxgcBAOYMAQDIDQEA6A4BAM8PAQDvEAEA0BEBAPAYAQDKGQEA6hoBAMwbAQDsOQ + EAxToBAOU9AQC8PgEAvkEBAKNCAQCzQwEA0UQBAPFHAQDSSAEA8lABANVRAQD1VAEAwFUBAO + BYAQDYWQEA+FoBAIxbAQCcXgEAql8BALpgAQCKYQEAmmIBAN5jAQD+ZAEAjWUBAJ1uAQDZbw + EA+XABANtxAQD7eQEAj3oBAJ97AQCvfAEAv30BAI5+AQCexwIAodgCAKLZAgD/2wIAst0CAL + 0TIACWFCAAlxggAJEZIACSGiAAghwgAJMdIACUHiAAhCAgAIYhIACHIiAAlSYgAIUwIACJOS + AAizogAJusIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1251 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1251 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAC0IIAAtCDAAPigJoC + 0ZMAA+KAngPigKYD4oCgA+KAoQPigqwD4oCwAtCJAAPigLkC0IoAAtCMAALQiwAC0I8AAtGS + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQBAAAAA+KEogLRmQAD4oC6AtGaAALRnAAC + 0ZsAAtGfAALCoAAC0I4AAtGeAALQiAACwqQAAtKQAALCpgACwqcAAtCBAALCqQAC0IQAAsKr + AALCrAACwq0AAsKuAALQhwACwrAAAsKxAALQhgAC0ZYAAtKRAALCtQACwrYAAsK3AALRkQAD + 4oSWAtGUAALCuwAC0ZgAAtCFAALRlQAC0ZcAAtCQAALQkQAC0JIAAtCTAALQlAAC0JUAAtCW + AALQlwAC0JgAAtCZAALQmgAC0JsAAtCcAALQnQAC0J4AAtCfAALQoAAC0KEAAtCiAALQowAC + 0KQAAtClAALQpgAC0KcAAtCoAALQqQAC0KoAAtCrAALQrAAC0K0AAtCuAALQrwAC0LAAAtCx + AALQsgAC0LMAAtC0AALQtQAC0LYAAtC3AALQuAAC0LkAAtC6AALQuwAC0LwAAtC9AALQvgAC + 0L8AAtGAAALRgQAC0YIAAtGDAALRhAAC0YUAAtGGAALRhwAC0YgAAtGJAALRigAC0YsAAtGM + AALRjQAC0Y4AAtGPAA==`, + .from_codepoint = b64`AAAAAAAAAJgBAAABAgAAAgMAAAMEAAAEBQAABQYAAAYHAAAHCA + AACAkAAAkKAAAKCwAACwwAAAwNAAANDgAADg8AAA8QAAAQEQAAERIAABITAAATFAAAFBUAAB + UWAAAWFwAAFxgAABgZAAAZGgAAGhsAABscAAAcHQAAHR4AAB4fAAAfIAAAICEAACEiAAAiIw + AAIyQAACQlAAAlJgAAJicAACcoAAAoKQAAKSoAACorAAArLAAALC0AAC0uAAAuLwAALzAAAD + AxAAAxMgAAMjMAADM0AAA0NQAANTYAADY3AAA3OAAAODkAADk6AAA6OwAAOzwAADw9AAA9Pg + AAPj8AAD9AAABAQQAAQUIAAEJDAABDRAAAREUAAEVGAABGRwAAR0gAAEhJAABJSgAASksAAE + tMAABMTQAATU4AAE5PAABPUAAAUFEAAFFSAABSUwAAU1QAAFRVAABVVgAAVlcAAFdYAABYWQ + AAWVoAAFpbAABbXAAAXF0AAF1eAABeXwAAX2AAAGBhAABhYgAAYmMAAGNkAABkZQAAZWYAAG + ZnAABnaAAAaGkAAGlqAABqawAAa2wAAGxtAABtbgAAbm8AAG9wAABwcQAAcXIAAHJzAABzdA + AAdHUAAHV2AAB2dwAAd3gAAHh5AAB5egAAensAAHt8AAB8fQAAfX4AAH5/AAB/oAAAoKQAAK + SmAACmpwAAp6kAAKmrAACrrAAArK0AAK2uAACusAAAsLEAALG1AAC1tgAAtrcAALe7AAC7AQ + QAqAIEAIADBACBBAQAqgUEAL0GBACyBwQArwgEAKMJBACKCgQAjAsEAI4MBACNDgQAoQ8EAI + 8QBADAEQQAwRIEAMITBADDFAQAxBUEAMUWBADGFwQAxxgEAMgZBADJGgQAyhsEAMscBADMHQ + QAzR4EAM4fBADPIAQA0CEEANEiBADSIwQA0yQEANQlBADVJgQA1icEANcoBADYKQQA2SoEAN + orBADbLAQA3C0EAN0uBADeLwQA3zAEAOAxBADhMgQA4jMEAOM0BADkNQQA5TYEAOY3BADnOA + QA6DkEAOk6BADqOwQA6zwEAOw9BADtPgQA7j8EAO9ABADwQQQA8UIEAPJDBADzRAQA9EUEAP + VGBAD2RwQA90gEAPhJBAD5SgQA+ksEAPtMBAD8TQQA/U4EAP5PBAD/UQQAuFIEAJBTBACDVA + QAulUEAL5WBACzVwQAv1gEALxZBACaWgQAnFsEAJ5cBACdXgQAol8EAJ+QBAClkQQAtBMgAJ + YUIACXGCAAkRkgAJIaIACCHCAAkx0gAJQeIACEICAAhiEgAIciIACVJiAAhTAgAIk5IACLOi + AAm6wgAIgWIQC5IiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1252 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1252 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoC + xpIAA+KAngPigKYD4oCgA+KAoQLLhgAD4oCwAsWgAAPigLkCxZIAAQAAAALFvQABAAAAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQCy5wAA+KEogLFoQAD4oC6AsWTAAEAAAAC + xb4AAsW4AALCoAACwqEAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQACwqoAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsK6AALCuwACwrwAAsK9AALCvgACwr8AAsOAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALDkAACw5EAAsOSAALDkwAC + w5QAAsOVAALDlgACw5cAAsOYAALDmQACw5oAAsObAALDnAACw50AAsOeAALDnwACw6AAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsOwAALDsQACw7IAAsOzAALDtAACw7UAAsO2AALDtwACw7gAAsO5AALDugACw7sAAsO8 + AALDvQACw74AAsO/AA==`, + .from_codepoint = b64`AAAAAAAAAJ0AAACQAAAAjwAAAI0AAACBAQAAAQIAAAIDAAADBA + AABAUAAAUGAAAGBwAABwgAAAgJAAAJCgAACgsAAAsMAAAMDQAADQ4AAA4PAAAPEAAAEBEAAB + ESAAASEwAAExQAABQVAAAVFgAAFhcAABcYAAAYGQAAGRoAABobAAAbHAAAHB0AAB0eAAAeHw + AAHyAAACAhAAAhIgAAIiMAACMkAAAkJQAAJSYAACYnAAAnKAAAKCkAACkqAAAqKwAAKywAAC + wtAAAtLgAALi8AAC8wAAAwMQAAMTIAADIzAAAzNAAANDUAADU2AAA2NwAANzgAADg5AAA5Og + AAOjsAADs8AAA8PQAAPT4AAD4/AAA/QAAAQEEAAEFCAABCQwAAQ0QAAERFAABFRgAARkcAAE + dIAABISQAASUoAAEpLAABLTAAATE0AAE1OAABOTwAAT1AAAFBRAABRUgAAUlMAAFNUAABUVQ + AAVVYAAFZXAABXWAAAWFkAAFlaAABaWwAAW1wAAFxdAABdXgAAXl8AAF9gAABgYQAAYWIAAG + JjAABjZAAAZGUAAGVmAABmZwAAZ2gAAGhpAABpagAAamsAAGtsAABsbQAAbW4AAG5vAABvcA + AAcHEAAHFyAABycwAAc3QAAHR1AAB1dgAAdncAAHd4AAB4eQAAeXoAAHp7AAB7fAAAfH0AAH + 1+AAB+fwAAf6AAAKChAAChogAAoqMAAKOkAACkpQAApaYAAKanAACnqAAAqKkAAKmqAACqqw + AAq6wAAKytAACtrgAArq8AAK+wAACwsQAAsbIAALKzAACztAAAtLUAALW2AAC2twAAt7gAAL + i5AAC5ugAAursAALu8AAC8vQAAvb4AAL6/AAC/wAAAwMEAAMHCAADCwwAAw8QAAMTFAADFxg + AAxscAAMfIAADIyQAAycoAAMrLAADLzAAAzM0AAM3OAADOzwAAz9AAANDRAADR0gAA0tMAAN + PUAADU1QAA1dYAANbXAADX2AAA2NkAANnaAADa2wAA29wAANzdAADd3gAA3t8AAN/gAADg4Q + AA4eIAAOLjAADj5AAA5OUAAOXmAADm5wAA5+gAAOjpAADp6gAA6usAAOvsAADs7QAA7e4AAO + 7vAADv8AAA8PEAAPHyAADy8wAA8/QAAPT1AAD19gAA9vcAAPf4AAD4+QAA+foAAPr7AAD7/A + AA/P0AAP3+AAD+/wAA/1IBAIxTAQCcYAEAimEBAJp4AQCffQEAjn4BAJ6SAQCDxgIAiNwCAJ + gTIACWFCAAlxggAJEZIACSGiAAghwgAJMdIACUHiAAhCAgAIYhIACHIiAAlSYgAIUwIACJOS + AAizogAJusIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1253 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1253 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoC + xpIAA+KAngPigKYD4oCgA+KAoQEAAAAD4oCwAQAAAAPigLkBAAAAAQAAAAEAAAABAAAAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQBAAAAA+KEogEAAAAD4oC6AQAAAAEAAAAB + AAAAAQAAAALCoAACzoUAAs6GAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQABAAAAAsKr + AALCrAACwq0AAsKuAAPigJUCwrAAAsKxAALCsgACwrMAAs6EAALCtQACwrYAAsK3AALOiAAC + zokAAs6KAALCuwACzowAAsK9AALOjgACzo8AAs6QAALOkQACzpIAAs6TAALOlAACzpUAAs6W + AALOlwACzpgAAs6ZAALOmgACzpsAAs6cAALOnQACzp4AAs6fAALOoAACzqEAAQAAAALOowAC + zqQAAs6lAALOpgACzqcAAs6oAALOqQACzqoAAs6rAALOrAACzq0AAs6uAALOrwACzrAAAs6x + AALOsgACzrMAAs60AALOtQACzrYAAs63AALOuAACzrkAAs66AALOuwACzrwAAs69AALOvgAC + zr8AAs+AAALPgQACz4IAAs+DAALPhAACz4UAAs+GAALPhwACz4gAAs+JAALPigACz4sAAs+M + AALPjQACz44AAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAP8AAADSAAAAqgAAAJ8AAACeAAAAnQAAAJwAAACaAA + AAmAAAAJAAAACPAAAAjgAAAI0AAACMAAAAigAAAIgAAACBAQAAAQIAAAIDAAADBAAABAUAAA + UGAAAGBwAABwgAAAgJAAAJCgAACgsAAAsMAAAMDQAADQ4AAA4PAAAPEAAAEBEAABESAAASEw + AAExQAABQVAAAVFgAAFhcAABcYAAAYGQAAGRoAABobAAAbHAAAHB0AAB0eAAAeHwAAHyAAAC + AhAAAhIgAAIiMAACMkAAAkJQAAJSYAACYnAAAnKAAAKCkAACkqAAAqKwAAKywAACwtAAAtLg + AALi8AAC8wAAAwMQAAMTIAADIzAAAzNAAANDUAADU2AAA2NwAANzgAADg5AAA5OgAAOjsAAD + s8AAA8PQAAPT4AAD4/AAA/QAAAQEEAAEFCAABCQwAAQ0QAAERFAABFRgAARkcAAEdIAABISQ + AASUoAAEpLAABLTAAATE0AAE1OAABOTwAAT1AAAFBRAABRUgAAUlMAAFNUAABUVQAAVVYAAF + ZXAABXWAAAWFkAAFlaAABaWwAAW1wAAFxdAABdXgAAXl8AAF9gAABgYQAAYWIAAGJjAABjZA + AAZGUAAGVmAABmZwAAZ2gAAGhpAABpagAAamsAAGtsAABsbQAAbW4AAG5vAABvcAAAcHEAAH + FyAABycwAAc3QAAHR1AAB1dgAAdncAAHd4AAB4eQAAeXoAAHp7AAB7fAAAfH0AAH1+AAB+fw + AAf6AAAKCjAACjpAAApKUAAKWmAACmpwAAp6gAAKipAACpqwAAq6wAAKytAACtrgAArrAAAL + CxAACxsgAAsrMAALO1AAC1tgAAtrcAALe7AAC7vQAAvZIBAIOEAwC0hQMAoYYDAKKIAwC4iQ + MAuYoDALqMAwC8jgMAvo8DAL+QAwDAkQMAwZIDAMKTAwDDlAMAxJUDAMWWAwDGlwMAx5gDAM + iZAwDJmgMAypsDAMucAwDMnQMAzZ4DAM6fAwDPoAMA0KEDANGjAwDTpAMA1KUDANWmAwDWpw + MA16gDANipAwDZqgMA2qsDANusAwDcrQMA3a4DAN6vAwDfsAMA4LEDAOGyAwDiswMA47QDAO + S1AwDltgMA5rcDAOe4AwDouQMA6boDAOq7AwDrvAMA7L0DAO2+AwDuvwMA78ADAPDBAwDxwg + MA8sMDAPPEAwD0xQMA9cYDAPbHAwD3yAMA+MkDAPnKAwD6ywMA+8wDAPzNAwD9zgMA/hMgAJ + YUIACXFSAArxggAJEZIACSGiAAghwgAJMdIACUHiAAhCAgAIYhIACHIiAAlSYgAIUwIACJOS + AAizogAJusIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1254 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1254 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoC + xpIAA+KAngPigKYD4oCgA+KAoQLLhgAD4oCwAsWgAAPigLkCxZIAAQAAAAEAAAABAAAAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQCy5wAA+KEogLFoQAD4oC6AsWTAAEAAAAB + AAAAAsW4AALCoAACwqEAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQACwqoAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsK6AALCuwACwrwAAsK9AALCvgACwr8AAsOAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALEngACw5EAAsOSAALDkwAC + w5QAAsOVAALDlgACw5cAAsOYAALDmQACw5oAAsObAALDnAACxLAAAsWeAALDnwACw6AAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsSfAALDsQACw7IAAsOzAALDtAACw7UAAsO2AALDtwACw7gAAsO5AALDugACw7sAAsO8 + AALEsQACxZ8AAsO/AA==`, + .from_codepoint = b64`AAAAAAAAAJ4AAACdAAAAkAAAAI8AAACOAAAAjQAAAIEBAAABAg + AAAgMAAAMEAAAEBQAABQYAAAYHAAAHCAAACAkAAAkKAAAKCwAACwwAAAwNAAANDgAADg8AAA + 8QAAAQEQAAERIAABITAAATFAAAFBUAABUWAAAWFwAAFxgAABgZAAAZGgAAGhsAABscAAAcHQ + AAHR4AAB4fAAAfIAAAICEAACEiAAAiIwAAIyQAACQlAAAlJgAAJicAACcoAAAoKQAAKSoAAC + orAAArLAAALC0AAC0uAAAuLwAALzAAADAxAAAxMgAAMjMAADM0AAA0NQAANTYAADY3AAA3OA + AAODkAADk6AAA6OwAAOzwAADw9AAA9PgAAPj8AAD9AAABAQQAAQUIAAEJDAABDRAAAREUAAE + VGAABGRwAAR0gAAEhJAABJSgAASksAAEtMAABMTQAATU4AAE5PAABPUAAAUFEAAFFSAABSUw + AAU1QAAFRVAABVVgAAVlcAAFdYAABYWQAAWVoAAFpbAABbXAAAXF0AAF1eAABeXwAAX2AAAG + BhAABhYgAAYmMAAGNkAABkZQAAZWYAAGZnAABnaAAAaGkAAGlqAABqawAAa2wAAGxtAABtbg + AAbm8AAG9wAABwcQAAcXIAAHJzAABzdAAAdHUAAHV2AAB2dwAAd3gAAHh5AAB5egAAensAAH + t8AAB8fQAAfX4AAH5/AAB/oAAAoKEAAKGiAACiowAAo6QAAKSlAAClpgAApqcAAKeoAACoqQ + AAqaoAAKqrAACrrAAArK0AAK2uAACurwAAr7AAALCxAACxsgAAsrMAALO0AAC0tQAAtbYAAL + a3AAC3uAAAuLkAALm6AAC6uwAAu7wAALy9AAC9vgAAvr8AAL/AAADAwQAAwcIAAMLDAADDxA + AAxMUAAMXGAADGxwAAx8gAAMjJAADJygAAyssAAMvMAADMzQAAzc4AAM7PAADP0QAA0dIAAN + LTAADT1AAA1NUAANXWAADW1wAA19gAANjZAADZ2gAA2tsAANvcAADc3wAA3+AAAODhAADh4g + AA4uMAAOPkAADk5QAA5eYAAObnAADn6AAA6OkAAOnqAADq6wAA6+wAAOztAADt7gAA7u8AAO + /xAADx8gAA8vMAAPP0AAD09QAA9fYAAPb3AAD3+AAA+PkAAPn6AAD6+wAA+/wAAPz/AAD/Hg + EA0B8BAPAwAQDdMQEA/VIBAIxTAQCcXgEA3l8BAP5gAQCKYQEAmngBAJ+SAQCDxgIAiNwCAJ + gTIACWFCAAlxggAJEZIACSGiAAghwgAJMdIACUHiAAhCAgAIYhIACHIiAAlSYgAIUwIACJOS + AAizogAJusIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1255 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 1/7/2000 + +*> +const CodePageTable CP1255 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoC + xpIAA+KAngPigKYD4oCgA+KAoQLLhgAD4oCwAQAAAAPigLkBAAAAAQAAAAEAAAABAAAAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQCy5wAA+KEogEAAAAD4oC6AQAAAAEAAAAB + AAAAAQAAAALCoAACwqEAAsKiAALCowAD4oKqAsKlAALCpgACwqcAAsKoAALCqQACw5cAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsO3AALCuwACwrwAAsK9AALCvgACwr8AAtawAALWsQAC1rIAAtazAALWtAAC1rUAAta2 + AALWtwAC1rgAAta5AAEAAAAC1rsAAta8AALWvQAC1r4AAta/AALXgAAC14EAAteCAALXgwAC + 17AAAtexAALXsgAC17MAAte0AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAC15AAAteR + AALXkgAC15MAAteUAALXlQAC15YAAteXAALXmAAC15kAAteaAALXmwAC15wAAtedAALXngAC + 158AAtegAALXoQAC16IAAtejAALXpAAC16UAAtemAALXpwAC16gAAtepAALXqgABAAAAAQAA + AAPigI4D4oCPAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAP8AAAD8AAAA+wAAAN8AAADeAAAA3QAAANwAAADbAA + AA2gAAANkAAADKAAAAnwAAAJ4AAACdAAAAnAAAAJoAAACQAAAAjwAAAI4AAACNAAAAjAAAAI + oAAACBAQAAAQIAAAIDAAADBAAABAUAAAUGAAAGBwAABwgAAAgJAAAJCgAACgsAAAsMAAAMDQ + AADQ4AAA4PAAAPEAAAEBEAABESAAASEwAAExQAABQVAAAVFgAAFhcAABcYAAAYGQAAGRoAAB + obAAAbHAAAHB0AAB0eAAAeHwAAHyAAACAhAAAhIgAAIiMAACMkAAAkJQAAJSYAACYnAAAnKA + AAKCkAACkqAAAqKwAAKywAACwtAAAtLgAALi8AAC8wAAAwMQAAMTIAADIzAAAzNAAANDUAAD + U2AAA2NwAANzgAADg5AAA5OgAAOjsAADs8AAA8PQAAPT4AAD4/AAA/QAAAQEEAAEFCAABCQw + AAQ0QAAERFAABFRgAARkcAAEdIAABISQAASUoAAEpLAABLTAAATE0AAE1OAABOTwAAT1AAAF + BRAABRUgAAUlMAAFNUAABUVQAAVVYAAFZXAABXWAAAWFkAAFlaAABaWwAAW1wAAFxdAABdXg + AAXl8AAF9gAABgYQAAYWIAAGJjAABjZAAAZGUAAGVmAABmZwAAZ2gAAGhpAABpagAAamsAAG + tsAABsbQAAbW4AAG5vAABvcAAAcHEAAHFyAABycwAAc3QAAHR1AAB1dgAAdncAAHd4AAB4eQ + AAeXoAAHp7AAB7fAAAfH0AAH1+AAB+fwAAf6AAAKChAAChogAAoqMAAKOlAAClpgAApqcAAK + eoAACoqQAAqasAAKusAACsrQAAra4AAK6vAACvsAAAsLEAALGyAACyswAAs7QAALS1AAC1tg + AAtrcAALe4AAC4uQAAubsAALu8AAC8vQAAvb4AAL6/AAC/1wAAqvcAALqSAQCDxgIAiNwCAJ + iwBQDAsQUAwbIFAMKzBQDDtAUAxLUFAMW2BQDGtwUAx7gFAMi5BQDJuwUAy7wFAMy9BQDNvg + UAzr8FAM/ABQDQwQUA0cIFANLDBQDT0AUA4NEFAOHSBQDi0wUA49QFAOTVBQDl1gUA5tcFAO + fYBQDo2QUA6doFAOrbBQDr3AUA7N0FAO3eBQDu3wUA7+AFAPDhBQDx4gUA8uMFAPPkBQD05Q + UA9eYFAPbnBQD36AUA+OkFAPnqBQD68AUA1PEFANXyBQDW8wUA1/QFANgOIAD9DyAA/hMgAJ + YUIACXGCAAkRkgAJIaIACCHCAAkx0gAJQeIACEICAAhiEgAIciIACVJiAAhTAgAIk5IACLOi + AAm6ogAKSsIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1256 to Unicode table + Unicode version: 2.1 + Table version: 2.01 + Table format: Format A + Date: 01/5/99 + +*> +const CodePageTable CP1256 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAtm+AAPigJoC + xpIAA+KAngPigKYD4oCgA+KAoQLLhgAD4oCwAtm5AAPigLkCxZIAAtqGAALamAAC2ogAAtqv + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQC2qkAA+KEogLakQAD4oC6AsWTAAPigIwD + 4oCNAtq6AALCoAAC2IwAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQAC2r4AAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAtibAALCuwACwrwAAsK9AALCvgAC2J8AAtuBAALYoQAC2KIAAtijAALYpAAC2KUAAtim + AALYpwAC2KgAAtipAALYqgAC2KsAAtisAALYrQAC2K4AAtivAALYsAAC2LEAAtiyAALYswAC + 2LQAAti1AALYtgACw5cAAti3AALYuAAC2LkAAti6AALZgAAC2YEAAtmCAALZgwACw6AAAtmE + AALDogAC2YUAAtmGAALZhwAC2YgAAsOnAALDqAACw6kAAsOqAALDqwAC2YkAAtmKAALDrgAC + w68AAtmLAALZjAAC2Y0AAtmOAALDtAAC2Y8AAtmQAALDtwAC2ZEAAsO5AALZkgACw7sAAsO8 + AAPigI4D4oCPAtuSAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAACgogAAoqMAAK + OkAACkpQAApaYAAKanAACnqAAAqKkAAKmrAACrrAAArK0AAK2uAACurwAAr7AAALCxAACxsg + AAsrMAALO0AAC0tQAAtbYAALa3AAC3uAAAuLkAALm7AAC7vAAAvL0AAL2+AAC+1wAA1+AAAO + DiAADi5wAA5+gAAOjpAADp6gAA6usAAOvuAADu7wAA7/QAAPT3AAD3+QAA+fsAAPv8AAD8Ug + EAjFMBAJySAQCDxgIAiAwGAKEbBgC6HwYAvyEGAMEiBgDCIwYAwyQGAMQlBgDFJgYAxicGAM + coBgDIKQYAySoGAMorBgDLLAYAzC0GAM0uBgDOLwYAzzAGANAxBgDRMgYA0jMGANM0BgDUNQ + YA1TYGANY3BgDYOAYA2TkGANo6BgDbQAYA3EEGAN1CBgDeQwYA30QGAOFFBgDjRgYA5EcGAO + VIBgDmSQYA7EoGAO1LBgDwTAYA8U0GAPJOBgDzTwYA9VAGAPZRBgD4UgYA+nkGAIp+BgCBhg + YAjYgGAI+RBgCamAYAjqkGAJivBgCQugYAn74GAKrBBgDA0gYA/wwgAJ0NIACeDiAA/Q8gAP + 4TIACWFCAAlxggAJEZIACSGiAAghwgAJMdIACUHiAAhCAgAIYhIACHIiAAlSYgAIUwIACJOS + AAizogAJusIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1257 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1257 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoB + AAAAA+KAngPigKYD4oCgA+KAoQEAAAAD4oCwAQAAAAPigLkBAAAAAsKoAALLhwACwrgAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQBAAAAA+KEogEAAAAD4oC6AQAAAALCrwAC + y5sAAQAAAALCoAABAAAAAsKiAALCowACwqQAAQAAAALCpgACwqcAAsOYAALCqQACxZYAAsKr + AALCrAACwq0AAsKuAALDhgACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALDuAAC + wrkAAsWXAALCuwACwrwAAsK9AALCvgACw6YAAsSEAALErgACxIAAAsSGAALDhAACw4UAAsSY + AALEkgACxIwAAsOJAALFuQACxJYAAsSiAALEtgACxKoAAsS7AALFoAACxYMAAsWFAALDkwAC + xYwAAsOVAALDlgACw5cAAsWyAALFgQACxZoAAsWqAALDnAACxbsAAsW9AALDnwACxIUAAsSv + AALEgQACxIcAAsOkAALDpQACxJkAAsSTAALEjQACw6kAAsW6AALElwACxKMAAsS3AALEqwAC + xLwAAsWhAALFhAACxYYAAsOzAALFjQACw7UAAsO2AALDtwACxbMAAsWCAALFmwACxasAAsO8 + AALFvAACxb4AAsuZAA==`, + .from_codepoint = b64`AAAAAAAAAKUAAAChAAAAnwAAAJwAAACaAAAAmAAAAJAAAACMAA + AAigAAAIgAAACDAAAAgQEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQAACQoAAA + oLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAABYXAAAXGA + AAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJAAAJCUAAC + UmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAADEyAAAyMw + AAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+PwAAP0AAAE + BBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAExNAABNTg + AATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWgAAWlsAAF + tcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAGdoAABoaQ + AAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQAAdXYAAH + Z3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAACgogAAoqMAAKOkAACkpg + AApqcAAKeoAACNqQAAqasAAKusAACsrQAAra4AAK6vAACdsAAAsLEAALGyAACyswAAs7QAAL + S1AAC1tgAAtrcAALe4AACPuQAAubsAALu8AAC8vQAAvb4AAL7EAADExQAAxcYAAK/JAADJ0w + AA09UAANXWAADW1wAA19gAAKjcAADc3wAA3+QAAOTlAADl5gAAv+kAAOnzAADz9QAA9fYAAP + b3AAD3+AAAuPwAAPwAAQDCAQEA4gQBAMAFAQDgBgEAwwcBAOMMAQDIDQEA6BIBAMcTAQDnFg + EAyxcBAOsYAQDGGQEA5iIBAMwjAQDsKgEAzisBAO4uAQDBLwEA4TYBAM03AQDtOwEAzzwBAO + 9BAQDZQgEA+UMBANFEAQDxRQEA0kYBAPJMAQDUTQEA9FYBAKpXAQC6WgEA2lsBAPpgAQDQYQ + EA8GoBANtrAQD7cgEA2HMBAPh5AQDKegEA6nsBAN18AQD9fQEA3n4BAP7HAgCO2QIA/9sCAJ + 4TIACWFCAAlxggAJEZIACSGiAAghwgAJMdIACUHiAAhCAgAIYhIACHIiAAlSYgAIUwIACJOS + AAizogAJusIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp1258 to Unicode table + Unicode version: 2.0 + Table version: 2.01 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP1258 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAPigJoC + xpIAA+KAngPigKYD4oCgA+KAoQLLhgAD4oCwAQAAAAPigLkCxZIAAQAAAAEAAAABAAAAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQCy5wAA+KEogEAAAAD4oC6AsWTAAEAAAAB + AAAAAsW4AALCoAACwqEAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQACwqoAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsK6AALCuwACwrwAAsK9AALCvgACwr8AAsOAAALDgQACw4IAAsSCAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsyAAALDjQACw44AAsOPAALEkAACw5EAAsyJAALDkwAC + w5QAAsagAALDlgACw5cAAsOYAALDmQACw5oAAsObAALDnAACxq8AAsyDAALDnwACw6AAAsOh + AALDogACxIMAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACzIEAAsOtAALDrgAC + w68AAsSRAALDsQACzKMAAsOzAALDtAACxqEAAsO2AALDtwACw7gAAsO5AALDugACw7sAAsO8 + AALGsAAD4oKrAsO/AA==`, + .from_codepoint = b64`AAAAAAAAAJ4AAACdAAAAmgAAAJAAAACPAAAAjgAAAI0AAACKAA + AAgQEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA + 0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGw + AAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJAAAJCUAACUmAAAmJwAAJygAAC + gpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAADEyAAAyMwAAMzQAADQ1AAA1Ng + AANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+PwAAP0AAAEBBAABBQgAAQkMAAE + NEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAExNAABNTgAATk8AAE9QAABQUQ + AAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWgAAWlsAAFtcAABcXQAAXV4AAF + 5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbA + AAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAH + l6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAACgoQAAoaIAAKKjAACjpAAApKUAAKWmAACmpw + AAp6gAAKipAACpqgAAqqsAAKusAACsrQAAra4AAK6vAACvsAAAsLEAALGyAACyswAAs7QAAL + S1AAC1tgAAtrcAALe4AAC4uQAAuboAALq7AAC7vAAAvL0AAL2+AAC+vwAAv8AAAMDBAADBwg + AAwsQAAMTFAADFxgAAxscAAMfIAADIyQAAycoAAMrLAADLzQAAzc4AAM7PAADP0QAA0dMAAN + PUAADU1gAA1tcAANfYAADY2QAA2doAANrbAADb3AAA3N8AAN/gAADg4QAA4eIAAOLkAADk5Q + AA5eYAAObnAADn6AAA6OkAAOnqAADq6wAA6+0AAO3uAADu7wAA7/EAAPHzAADz9AAA9PYAAP + b3AAD3+AAA+PkAAPn6AAD6+wAA+/wAAPz/AAD/AgEAwwMBAOMQAQDQEQEA8FIBAIxTAQCceA + EAn5IBAIOgAQDVoQEA9a8BAN2wAQD9xgIAiNwCAJgAAwDMAQMA7AMDAN4JAwDSIwMA8hMgAJ + YUIACXGCAAkRkgAJIaIACCHCAAkx0gAJQeIACEICAAhiEgAIciIACVJiAAhTAgAIk5IACLOi + AAm6sgAP6sIACAIiEAmQ==` +}; + +<* + Header from the original mappings file: + Name: cp437_DOSLatinUS to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP437 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOkAALDoAACw6UAAsOnAALDqgACw6sAAsOoAALDrwACw64AAsOsAALDhAACw4UAAsOJ + AALDpgACw4YAAsO0AALDtgACw7IAAsO7AALDuQACw78AAsOWAALDnAACwqIAAsKjAALCpQAD + 4oKnAsaSAALDoQACw60AAsOzAALDugACw7EAAsORAALCqgACwroAAsK/AAPijJACwqwAAsK9 + AALCvAACwqEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACzrEAAsOf + AALOkwACz4AAAs6jAALPgwACwrUAAs+EAALOpgACzpgAAs6pAALOtAAD4oieAs+GAALOtQAD + 4oipA+KJoQLCsQAD4omlA+KJpAPijKAD4oyhAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/oQAAraIAAJ + ujAACcpQAAnaoAAKarAACurAAAqrAAAPixAADxsgAA/bUAAOa3AAD6ugAAp7sAAK+8AACsvQ + AAq78AAKjEAACOxQAAj8YAAJLHAACAyQAAkNEAAKXWAACZ3AAAmt8AAOHgAACF4QAAoOIAAI + PkAACE5QAAhuYAAJHnAACH6AAAiukAAILqAACI6wAAiewAAI3tAACh7gAAjO8AAIvxAACk8g + AAlfMAAKL0AACT9gAAlPcAAPb5AACX+gAAo/sAAJb8AACB/wAAmJIBAJ+TAwDimAMA6aMDAO + SmAwDoqQMA6rEDAOC0AwDrtQMA7sADAOPDAwDlxAMA58YDAO1/IAD8pyAAnhkiAPkaIgD7Hi + IA7CkiAO9IIgD3YSIA8GQiAPNlIgDyECMAqSAjAPQhIwD1ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp737_DOSGreek to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP737 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACzpEAAs6SAALOkwAC + zpQAAs6VAALOlgACzpcAAs6YAALOmQACzpoAAs6bAALOnAACzp0AAs6eAALOnwACzqAAAs6h + AALOowACzqQAAs6lAALOpgACzqcAAs6oAALOqQACzrEAAs6yAALOswACzrQAAs61AALOtgAC + zrcAAs64AALOuQACzroAAs67AALOvAACzr0AAs6+AALOvwACz4AAAs+BAALPgwACz4IAAs+E + AALPhQACz4YAAs+HAALPiAAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACz4kAAs6s + AALOrQACzq4AAs+KAALOrwACz4wAAs+NAALPiwACz44AAs6GAALOiAACzokAAs6KAALOjAAC + zo4AAs6PAALCsQAD4omlA+KJpALOqgACzqsAAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/sAAA+LEAAP + GyAAD9twAA+vcAAPaGAwDqiAMA64kDAOyKAwDtjAMA7o4DAO+PAwDwkQMAgJIDAIGTAwCClA + MAg5UDAISWAwCFlwMAhpgDAIeZAwCImgMAiZsDAIqcAwCLnQMAjJ4DAI2fAwCOoAMAj6EDAJ + CjAwCRpAMAkqUDAJOmAwCUpwMAlagDAJapAwCXqgMA9KsDAPWsAwDhrQMA4q4DAOOvAwDlsQ + MAmLIDAJmzAwCatAMAm7UDAJy2AwCdtwMAnrgDAJ+5AwCgugMAobsDAKK8AwCjvQMApL4DAK + W/AwCmwAMAp8EDAKjCAwCqwwMAqcQDAKvFAwCsxgMArccDAK7IAwCvyQMA4MoDAOTLAwDozA + MA5s0DAOfOAwDpfyAA/BkiAPkaIgD7SCIA92QiAPNlIgDyACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp775_DOSBaltRim to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP775 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACxIYAAsO8AALDqQAC + xIEAAsOkAALEowACw6UAAsSHAALFggACxJMAAsWWAALFlwACxKsAAsW5AALDhAACw4UAAsOJ + AALDpgACw4YAAsWNAALDtgACxKIAAsKiAALFmgACxZsAAsOWAALDnAACw7gAAsKjAALDmAAC + w5cAAsKkAALEgAACxKoAAsOzAALFuwACxbwAAsW6AAPigJ0CwqYAAsKpAALCrgACwqwAAsK9 + AALCvAACxYEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpALEhAACxIwAAsSYAALElgAD + 4pWjA+KVkQPilZcD4pWdAsSuAALFoAAD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8AsWy + AALFqgAD4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsAsW9AALEhQACxI0AAsSZAALElwAC + xK8AAsWhAALFswACxasAAsW+AAPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACw5MAAsOf + AALFjAACxYMAAsO1AALDlQACwrUAAsWEAALEtgACxLcAAsS7AALEvAACxYYAAsSSAALFhQAD + 4oCZAsKtAALCsQAD4oCcAsK+AALCtgACwqcAAsO3AAPigJ4CwrAAA+KImQLCtwACwrkAAsKz + AALCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/ogAAlqMAAJ + ykAACfpgAAp6cAAPWpAACoqwAArqwAAKqtAADwrgAAqbAAAPixAADxsgAA/bMAAPy1AADmtg + AA9LcAAPq5AAD7uwAAr7wAAKy9AACrvgAA88QAAI7FAACPxgAAkskAAJDTAADg1QAA5dYAAJ + nXAACe2AAAndwAAJrfAADh5AAAhOUAAIbmAACR6QAAgvMAAKL1AADk9gAAlPcAAPb4AACb/A + AAgQABAKABAQCDBAEAtQUBANAGAQCABwEAhwwBALYNAQDREgEA7RMBAIkWAQC4FwEA0xgBAL + cZAQDSIgEAlSMBAIUqAQChKwEAjC4BAL0vAQDUNgEA6DcBAOk7AQDqPAEA60EBAK1CAQCIQw + EA40QBAOdFAQDuRgEA7EwBAOJNAQCTVgEAilcBAItaAQCXWwEAmGABAL5hAQDVagEAx2sBAN + dyAQDGcwEA1nkBAI16AQClewEAo3wBAKR9AQDPfgEA2BkgAO8cIADyHSAAph4gAPcZIgD5AC + UAxAIlALMMJQDaECUAvxQlAMAYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulQlAM + lXJQC7WiUAyF0lALxgJQDMYyUAuWYlAMtpJQDKbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp850_DOSLatin1 to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP850 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOkAALDoAACw6UAAsOnAALDqgACw6sAAsOoAALDrwACw64AAsOsAALDhAACw4UAAsOJ + AALDpgACw4YAAsO0AALDtgACw7IAAsO7AALDuQACw78AAsOWAALDnAACw7gAAsKjAALDmAAC + w5cAAsaSAALDoQACw60AAsOzAALDugACw7EAAsORAALCqgACwroAAsK/AALCrgACwqwAAsK9 + AALCvAACwqEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpALDgQACw4IAAsOAAALCqQAD + 4pWjA+KVkQPilZcD4pWdAsKiAALCpQAD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8AsOj + AALDgwAD4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsAsKkAALDsAACw5AAAsOKAALDiwAC + w4gAAsSxAALDjQACw44AAsOPAAPilJgD4pSMA+KWiAPiloQCwqYAAsOMAAPiloACw5MAAsOf + AALDlAACw5IAAsO1AALDlQACwrUAAsO+AALDngACw5oAAsObAALDmQACw70AAsOdAALCrwAC + wrQAAsKtAALCsQAD4oCXAsK+AALCtgACwqcAAsO3AALCuAACwrAAAsKoAALCtwACwrkAAsKz + AALCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/oQAAraIAAL + 2jAACcpAAAz6UAAL6mAADdpwAA9agAAPmpAAC4qgAApqsAAK6sAACqrQAA8K4AAKmvAADusA + AA+LEAAPGyAAD9swAA/LQAAO+1AADmtgAA9LcAAPq4AAD3uQAA+7oAAKe7AACvvAAArL0AAK + u+AADzvwAAqMAAALfBAAC1wgAAtsMAAMfEAACOxQAAj8YAAJLHAACAyAAA1MkAAJDKAADSyw + AA08wAAN7NAADWzgAA188AANjQAADR0QAApdIAAOPTAADg1AAA4tUAAOXWAACZ1wAAntgAAJ + 3ZAADr2gAA6dsAAOrcAACa3QAA7d4AAOjfAADh4AAAheEAAKDiAACD4wAAxuQAAITlAACG5g + AAkecAAIfoAACK6QAAguoAAIjrAACJ7AAAje0AAKHuAACM7wAAi/AAANDxAACk8gAAlfMAAK + L0AACT9QAA5PYAAJT3AAD2+AAAm/kAAJf6AACj+wAAlvwAAIH9AADs/gAA5/8AAJgxAQDVkg + EAnxcgAPIAJQDEAiUAswwlANoQJQC/FCUAwBglANkcJQDDJCUAtCwlAMI0JQDBPCUAxVAlAM + 1RJQC6VCUAyVclALtaJQDIXSUAvGAlAMxjJQC5ZiUAy2klAMpsJQDOgCUA34QlANyIJQDbkS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp852_DOSLatin2 to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP852 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOkAALFrwACxIcAAsOnAALFggACw6sAAsWQAALFkQACw64AAsW5AALDhAACxIYAAsOJ + AALEuQACxLoAAsO0AALDtgACxL0AAsS+AALFmgACxZsAAsOWAALDnAACxaQAAsWlAALFgQAC + w5cAAsSNAALDoQACw60AAsOzAALDugACxIQAAsSFAALFvQACxb4AAsSYAALEmQACwqwAAsW6 + AALEjAACxZ8AAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpALDgQACw4IAAsSaAALFngAD + 4pWjA+KVkQPilZcD4pWdAsW7AALFvAAD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8AsSC + AALEgwAD4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsAsKkAALEkQACxJAAAsSOAALDiwAC + xI8AAsWHAALDjQACw44AAsSbAAPilJgD4pSMA+KWiAPiloQCxaIAAsWuAAPiloACw5MAAsOf + AALDlAACxYMAAsWEAALFiAACxaAAAsWhAALFlAACw5oAAsWVAALFsAACw70AAsOdAALFowAC + wrQAAsKtAALLnQACy5sAAsuHAALLmAACwqcAAsO3AALCuAACwrAAAsKoAALLmQACxbEAAsWY + AALFmQAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/pAAAz6cAAP + WoAAD5qwAArqwAAKqtAADwsAAA+LQAAO+4AAD3uwAAr8EAALXCAAC2xAAAjscAAIDJAACQyw + AA080AANbOAADX0wAA4NQAAOLWAACZ1wAAntoAAOncAACa3QAA7d8AAOHhAACg4gAAg+QAAI + TnAACH6QAAgusAAIntAACh7gAAjPMAAKL0AACT9gAAlPcAAPb6AACj/AAAgf0AAOwCAQDGAw + EAxwQBAKQFAQClBgEAjwcBAIYMAQCsDQEAnw4BANIPAQDUEAEA0REBANAYAQCoGQEAqRoBAL + cbAQDYOQEAkToBAJI9AQCVPgEAlkEBAJ1CAQCIQwEA40QBAORHAQDVSAEA5VABAIpRAQCLVA + EA6FUBAOpYAQD8WQEA/VoBAJdbAQCYXgEAuF8BAK1gAQDmYQEA52IBAN1jAQDuZAEAm2UBAJ + xuAQDebwEAhXABAOtxAQD7eQEAjXoBAKt7AQC9fAEAvn0BAKZ+AQCnxwIA89gCAPTZAgD62w + IA8t0CAPEAJQDEAiUAswwlANoQJQC/FCUAwBglANkcJQDDJCUAtCwlAMI0JQDBPCUAxVAlAM + 1RJQC6VCUAyVclALtaJQDIXSUAvGAlAMxjJQC5ZiUAy2klAMpsJQDOgCUA34QlANyIJQDbkS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp855_DOSCyrillic to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP855 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAC0ZIAAtCCAALRkwAC + 0IMAAtGRAALQgQAC0ZQAAtCEAALRlQAC0IUAAtGWAALQhgAC0ZcAAtCHAALRmAAC0IgAAtGZ + AALQiQAC0ZoAAtCKAALRmwAC0IsAAtGcAALQjAAC0Z4AAtCOAALRnwAC0I8AAtGOAALQrgAC + 0YoAAtCqAALQsAAC0JAAAtCxAALQkQAC0YYAAtCmAALQtAAC0JQAAtC1AALQlQAC0YQAAtCk + AALQswAC0JMAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpALRhQAC0KUAAtC4AALQmAAD + 4pWjA+KVkQPilZcD4pWdAtC5AALQmQAD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8AtC6 + AALQmgAD4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsAsKkAALQuwAC0JsAAtC8AALQnAAC + 0L0AAtCdAALQvgAC0J4AAtC/AAPilJgD4pSMA+KWiAPiloQC0J8AAtGPAAPiloAC0K8AAtGA + AALQoAAC0YEAAtChAALRggAC0KIAAtGDAALQowAC0LYAAtCWAALQsgAC0JIAAtGMAALQrAAD + 4oSWAsKtAALRiwAC0KsAAtC3AALQlwAC0YgAAtCoAALRjQAC0K0AAtGJAALQqQAC0YcAAtCn + AALCpwAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/pAAAz6cAAP + 2rAACurQAA8LsAAK8BBACFAgQAgQMEAIMEBACHBQQAiQYEAIsHBACNCAQAjwkEAJEKBACTCw + QAlQwEAJcOBACZDwQAmxAEAKERBACjEgQA7BMEAK0UBACnFQQAqRYEAOoXBAD0GAQAuBkEAL + 4aBADHGwQA0RwEANMdBADVHgQA1x8EAN0gBADiIQQA5CIEAOYjBADoJAQAqyUEALYmBAClJw + QA/CgEAPYpBAD6KgQAnysEAPIsBADuLQQA+C4EAJ0vBADgMAQAoDEEAKIyBADrMwQArDQEAK + Y1BACoNgQA6TcEAPM4BAC3OQQAvToEAMY7BADQPAQA0j0EANQ+BADWPwQA2EAEAOFBBADjQg + QA5UMEAOdEBACqRQQAtUYEAKRHBAD7SAQA9UkEAPlKBACeSwQA8UwEAO1NBAD3TgQAnE8EAN + 5RBACEUgQAgFMEAIJUBACGVQQAiFYEAIpXBACMWAQAjlkEAJBaBACSWwQAlFwEAJZeBACYXw + QAmhYhAO8AJQDEAiUAswwlANoQJQC/FCUAwBglANkcJQDDJCUAtCwlAMI0JQDBPCUAxVAlAM + 1RJQC6VCUAyVclALtaJQDIXSUAvGAlAMxjJQC5ZiUAy2klAMpsJQDOgCUA34QlANyIJQDbkS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp857_DOSTurkish to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP857 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOkAALDoAACw6UAAsOnAALDqgACw6sAAsOoAALDrwACw64AAsSxAALDhAACw4UAAsOJ + AALDpgACw4YAAsO0AALDtgACw7IAAsO7AALDuQACxLAAAsOWAALDnAACw7gAAsKjAALDmAAC + xZ4AAsWfAALDoQACw60AAsOzAALDugACw7EAAsORAALEngACxJ8AAsK/AALCrgACwqwAAsK9 + AALCvAACwqEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpALDgQACw4IAAsOAAALCqQAD + 4pWjA+KVkQPilZcD4pWdAsKiAALCpQAD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8AsOj + AALDgwAD4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsAsKkAALCugACwqoAAsOKAALDiwAC + w4gAAQAAAALDjQACw44AAsOPAAPilJgD4pSMA+KWiAPiloQCwqYAAsOMAAPiloACw5MAAsOf + AALDlAACw5IAAsO1AALDlQACwrUAAQAAAALDlwACw5oAAsObAALDmQACw6wAAsO/AALCrwAC + wrQAAsKtAALCsQABAAAAAsK+AALCtgACwqcAAsO3AALCuAACwrAAAsKoAALCtwACwrkAAsKz + AALCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAAAAPIAAADnAAAA1QEAAAECAAACAwAAAwQAAAQFAAAFBg + AABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAAB + MUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQ + AAISIAACIjAAAjJAAAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC + 4vAAAvMAAAMDEAADEyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PA + AAPD0AAD0+AAA+PwAAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAE + lKAABKSwAAS0wAAExNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVw + AAV1gAAFhZAABZWgAAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAG + RlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcg + AAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH + +gAAD/oQAAraIAAL2jAACcpAAAz6UAAL6mAADdpwAA9agAAPmpAAC4qgAA0asAAK6sAACqrQ + AA8K4AAKmvAADusAAA+LEAAPGyAAD9swAA/LQAAO+1AADmtgAA9LcAAPq4AAD3uQAA+7oAAN + C7AACvvAAArL0AAKu+AADzvwAAqMAAALfBAAC1wgAAtsMAAMfEAACOxQAAj8YAAJLHAACAyA + AA1MkAAJDKAADSywAA08wAAN7NAADWzgAA188AANjRAACl0gAA49MAAODUAADi1QAA5dYAAJ + nXAADo2AAAndkAAOvaAADp2wAA6twAAJrfAADh4AAAheEAAKDiAACD4wAAxuQAAITlAACG5g + AAkecAAIfoAACK6QAAguoAAIjrAACJ7AAA7O0AAKHuAACM7wAAi/EAAKTyAACV8wAAovQAAJ + P1AADk9gAAlPcAAPb4AACb+QAAl/oAAKP7AACW/AAAgf8AAO0eAQCmHwEApzABAJgxAQCNXg + EAnl8BAJ8AJQDEAiUAswwlANoQJQC/FCUAwBglANkcJQDDJCUAtCwlAMI0JQDBPCUAxVAlAM + 1RJQC6VCUAyVclALtaJQDIXSUAvGAlAMxjJQC5ZiUAy2klAMpsJQDOgCUA34QlANyIJQDbkS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp860_DOSPortuguese to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP860 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOjAALDoAACw4EAAsOnAALDqgACw4oAAsOoAALDjQACw5QAAsOsAALDgwACw4IAAsOJ + AALDgAACw4gAAsO0AALDtQACw7IAAsOaAALDuQACw4wAAsOVAALDnAACwqIAAsKjAALDmQAD + 4oKnAsOTAALDoQACw60AAsOzAALDugACw7EAAsORAALCqgACwroAAsK/AALDkgACwqwAAsK9 + AALCvAACwqEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACzrEAAsOf + AALOkwACz4AAAs6jAALPgwACwrUAAs+EAALOpgACzpgAAs6pAALOtAAD4oieAs+GAALOtQAD + 4oipA+KJoQLCsQAD4omlA+KJpAPijKAD4oyhAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/oQAAraIAAJ + ujAACcqgAApqsAAK6sAACqsAAA+LEAAPGyAAD9tQAA5rcAAPq6AACnuwAAr7wAAKy9AACrvw + AAqMAAAJHBAACGwgAAj8MAAI7HAACAyAAAkskAAJDKAACJzAAAmM0AAIvRAACl0gAAqdMAAJ + /UAACM1QAAmdkAAJ3aAACW3AAAmt8AAOHgAACF4QAAoOIAAIPjAACE5wAAh+gAAIrpAACC6g + AAiOwAAI3tAACh8QAApPIAAJXzAACi9AAAk/UAAJT3AAD2+QAAl/oAAKP8AACBkwMA4pgDAO + mjAwDkpgMA6KkDAOqxAwDgtAMA67UDAO7AAwDjwwMA5cQDAOfGAwDtfyAA/KcgAJ4ZIgD5Gi + IA+x4iAOwpIgDvSCIA92EiAPBkIgDzZSIA8iAjAPQhIwD1ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp861_DOSIcelandic to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP861 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOkAALDoAACw6UAAsOnAALDqgACw6sAAsOoAALDkAACw7AAAsOeAALDhAACw4UAAsOJ + AALDpgACw4YAAsO0AALDtgACw74AAsO7AALDnQACw70AAsOWAALDnAACw7gAAsKjAALDmAAD + 4oKnAsaSAALDoQACw60AAsOzAALDugACw4EAAsONAALDkwACw5oAAsK/AAPijJACwqwAAsK9 + AALCvAACwqEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACzrEAAsOf + AALOkwACz4AAAs6jAALPgwACwrUAAs+EAALOpgACzpgAAs6pAALOtAAD4oieAs+GAALOtQAD + 4oipA+KJoQLCsQAD4omlA+KJpAPijKAD4oyhAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/oQAAraMAAJ + yrAACurAAAqrAAAPixAADxsgAA/bUAAOa3AAD6uwAAr7wAAKy9AACrvwAAqMEAAKTEAACOxQ + AAj8YAAJLHAACAyQAAkM0AAKXQAACL0wAAptYAAJnYAACd2gAAp9wAAJrdAACX3gAAjd8AAO + HgAACF4QAAoOIAAIPkAACE5QAAhuYAAJHnAACH6AAAiukAAILqAACI6wAAie0AAKHwAACM8w + AAovQAAJP2AACU9wAA9vgAAJv6AACj+wAAlvwAAIH9AACY/gAAlZIBAJ+TAwDimAMA6aMDAO + SmAwDoqQMA6rEDAOC0AwDrtQMA7sADAOPDAwDlxAMA58YDAO1/IAD8pyAAnhkiAPkaIgD7Hi + IA7CkiAO9IIgD3YSIA8GQiAPNlIgDyECMAqSAjAPQhIwD1ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp862_DOSHebrew to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP862 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAC15AAAteRAALXkgAC + 15MAAteUAALXlQAC15YAAteXAALXmAAC15kAAteaAALXmwAC15wAAtedAALXngAC158AAteg + AALXoQAC16IAAtejAALXpAAC16UAAtemAALXpwAC16gAAtepAALXqgACwqIAAsKjAALCpQAD + 4oKnAsaSAALDoQACw60AAsOzAALDugACw7EAAsORAALCqgACwroAAsK/AAPijJACwqwAAsK9 + AALCvAACwqEAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACzrEAAsOf + AALOkwACz4AAAs6jAALPgwACwrUAAs+EAALOpgACzpgAAs6pAALOtAAD4oieAs+GAALOtQAD + 4oipA+KJoQLCsQAD4omlA+KJpAPijKAD4oyhAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/oQAAraIAAJ + ujAACcpQAAnaoAAKarAACurAAAqrAAAPixAADxsgAA/bUAAOa3AAD6ugAAp7sAAK+8AACsvQ + AAq78AAKjRAACl3wAA4eEAAKDtAACh8QAApPMAAKL3AAD2+gAAo5IBAJ+TAwDimAMA6aMDAO + SmAwDoqQMA6rEDAOC0AwDrtQMA7sADAOPDAwDlxAMA58YDAO3QBQCA0QUAgdIFAILTBQCD1A + UAhNUFAIXWBQCG1wUAh9gFAIjZBQCJ2gUAitsFAIvcBQCM3QUAjd4FAI7fBQCP4AUAkOEFAJ + HiBQCS4wUAk+QFAJTlBQCV5gUAlucFAJfoBQCY6QUAmeoFAJp/IAD8pyAAnhkiAPkaIgD7Hi + IA7CkiAO9IIgD3YSIA8GQiAPNlIgDyECMAqSAjAPQhIwD1ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp863_DOSCanadaF to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP863 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOCAALDoAACwrYAAsOnAALDqgACw6sAAsOoAALDrwACw64AA+KAlwLDgAACwqcAAsOJ + AALDiAACw4oAAsO0AALDiwACw48AAsO7AALDuQACwqQAAsOUAALDnAACwqIAAsKjAALDmQAC + w5sAAsaSAALCpgACwrQAAsOzAALDugACwqgAAsK4AALCswACwq8AAsOOAAPijJACwqwAAsK9 + AALCvAACwr4AAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACzrEAAsOf + AALOkwACz4AAAs6jAALPgwACwrUAAs+EAALOpgACzpgAAs6pAALOtAAD4oieAs+GAALOtQAD + 4oipA+KJoQLCsQAD4omlA+KJpAPijKAD4oyhAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/ogAAm6MAAJ + ykAACYpgAAoKcAAI+oAACkqwAArqwAAKqvAACnsAAA+LEAAPGyAAD9swAAprQAAKG1AADmtg + AAhrcAAPq4AACluwAAr7wAAKy9AACrvgAArcAAAI7CAACExwAAgMgAAJHJAACQygAAkssAAJ + TOAACozwAAldQAAJnZAACd2wAAntwAAJrfAADh4AAAheIAAIPnAACH6AAAiukAAILqAACI6w + AAie4AAIzvAACL8wAAovQAAJP3AAD2+QAAl/oAAKP7AACW/AAAgZIBAJ+TAwDimAMA6aMDAO + SmAwDoqQMA6rEDAOC0AwDrtQMA7sADAOPDAwDlxAMA58YDAO0XIACNfyAA/BkiAPkaIgD7Hi + IA7CkiAO9IIgD3YSIA8GQiAPNlIgDyECMAqSAjAPQhIwD1ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp864_DOSArabic to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP864 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AALZqgABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwrAAAsK3AAPiiJkD + 4oiaA+KWkgPilIAD4pSCA+KUvAPilKQD4pSsA+KUnAPilLQD4pSQA+KUjAPilJQD4pSYAs6y + AAPiiJ4Cz4YAAsKxAALCvQACwrwAA+KJiALCqwACwrsAA++7twPvu7gBAAAAAQAAAAPvu7sD + 77u8AQAAAALCoAACwq0AA++6ggLCowACwqQAA++6hAEAAAABAAAAA++6jgPvuo8D77qVA++6 + mQLYjAAD77qdA++6oQPvuqUC2aAAAtmhAALZogAC2aMAAtmkAALZpQAC2aYAAtmnAALZqAAC + 2akAA++7kQLYmwAD77qxA++6tQPvurkC2J8AAsKiAAPvuoAD77qBA++6gwPvuoUD77uKA++6 + iwPvuo0D77qRA++6kwPvupcD77qbA++6nwPvuqMD77qnA++6qQPvuqsD77qtA++6rwPvurMD + 77q3A++6uwPvur8D77uBA++7hQPvu4sD77uPAsKmAALCrAACw7cAAsOXAAPvu4kC2YAAA++7 + kwPvu5cD77ubA++7nwPvu6MD77unA++7qwPvu60D77uvA++7swPvur0D77uMA++7jgPvu40D + 77uhA++5vQLZkQAD77ulA++7qQPvu6wD77uwA++7sgPvu5AD77uVA++7tQPvu7YD77udA++7 + mQPvu7ED4pagAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAP8AAACnAAAApgAAAJ8AAACcAAAAmwEAAAECAAACAw + AAAwQAAAQFAAAFBgAABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAAB + ARAAAREgAAEhMAABMUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHg + AAHh8AAB8gAAAgIQAAISIAACIjAAAjJAAAJCYAACYnAAAnKAAAKCkAACkqAAAqKwAAKywAAC + wtAAAtLgAALi8AAC8wAAAwMQAAMTIAADIzAAAzNAAANDUAADU2AAA2NwAANzgAADg5AAA5Og + AAOjsAADs8AAA8PQAAPT4AAD4/AAA/QAAAQEEAAEFCAABCQwAAQ0QAAERFAABFRgAARkcAAE + dIAABISQAASUoAAEpLAABLTAAATE0AAE1OAABOTwAAT1AAAFBRAABRUgAAUlMAAFNUAABUVQ + AAVVYAAFZXAABXWAAAWFkAAFlaAABaWwAAW1wAAFxdAABdXgAAXl8AAF9gAABgYQAAYWIAAG + JjAABjZAAAZGUAAGVmAABmZwAAZ2gAAGhpAABpagAAamsAAGtsAABsbQAAbW4AAG5vAABvcA + AAcHEAAHFyAABycwAAc3QAAHR1AAB1dgAAdncAAHd4AAB4eQAAeXoAAHp7AAB7fAAAfH0AAH + 1+AAB+fwAAf6AAAKCiAADAowAAo6QAAKSmAADbqwAAl6wAANytAAChsAAAgLEAAJO3AACBuw + AAmLwAAJW9AACU1wAA3vcAAN2yAwCQxgMAkgwGAKwbBgC7HwYAv0AGAOBRBgDxYAYAsGEGAL + FiBgCyYwYAs2QGALRlBgC1ZgYAtmcGALdoBgC4aQYAuWoGACUZIgCCGiIAgx4iAJFIIgCWAC + UAhQIlAIYMJQCNECUAjBQlAI4YJQCPHCUAiiQlAIgsJQCJNCUAizwlAIeSJQCEoCUA/n3+AP + CA/gDBgf4AwoL+AKKD/gDDhP4ApYX+AMSL/gDGjf4Ax47+AKiP/gCpkf4AyJP+AMmV/gCql/ + 4Aypn+AKub/gDLnf4ArZ/+AMyh/gCuo/4AzaX+AK+n/gDOqf4Az6v+ANCt/gDRr/4A0rH+AL + yz/gDTtf4Avbf+ANS5/gC+u/4A1b3+AOu//gDWwf4A18X+ANjJ/gDfyv4Axcv+ANnM/gDszf + 4A7s7+AO3P/gDa0P4A99H+ALrT/gDh1f4A+Nf+AOLZ/gD82/4A493+APvf/gDk4f4A7+P+AO + Xl/gDy5/4A5un+APPr/gDn7P4A9O3+AOjv/gDp8P4A9fH+AP3y/gD28/4A6vX+APn2/gD69/ + 4Amfj+AJr7/gCd/P4Ang==` +}; + +<* + Header from the original mappings file: + Name: cp865_DOSNordic to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP865 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACw4cAAsO8AALDqQAC + w6IAAsOkAALDoAACw6UAAsOnAALDqgACw6sAAsOoAALDrwACw64AAsOsAALDhAACw4UAAsOJ + AALDpgACw4YAAsO0AALDtgACw7IAAsO7AALDuQACw78AAsOWAALDnAACw7gAAsKjAALDmAAD + 4oKnAsaSAALDoQACw60AAsOzAALDugACw7EAAsORAALCqgACwroAAsK/AAPijJACwqwAAsK9 + AALCvAACwqEAAsKrAALCpAAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloACzrEAAsOf + AALOkwACz4AAAs6jAALPgwACwrUAAs+EAALOpgACzpgAAs6pAALOtAAD4oieAs+GAALOtQAD + 4oipA+KJoQLCsQAD4omlA+KJpAPijKAD4oyhAsO3AAPiiYgCwrAAA+KImQLCtwAD4oiaA+KB + vwLCsgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/oQAAraMAAJ + ykAACvqgAApqsAAK6sAACqsAAA+LEAAPGyAAD9tQAA5rcAAPq6AACnvAAArL0AAKu/AACoxA + AAjsUAAI/GAACSxwAAgMkAAJDRAACl1gAAmdgAAJ3cAACa3wAA4eAAAIXhAACg4gAAg+QAAI + TlAACG5gAAkecAAIfoAACK6QAAguoAAIjrAACJ7AAAje0AAKHuAACM7wAAi/EAAKTyAACV8w + AAovQAAJP2AACU9wAA9vgAAJv5AACX+gAAo/sAAJb8AACB/wAAmJIBAJ+TAwDimAMA6aMDAO + SmAwDoqQMA6rEDAOC0AwDrtQMA7sADAOPDAwDlxAMA58YDAO1/IAD8pyAAnhkiAPkaIgD7Hi + IA7CkiAO9IIgD3YSIA8GQiAPNlIgDyECMAqSAjAPQhIwD1ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp866_DOSCyrillicRussian to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP866 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAC0JAAAtCRAALQkgAC + 0JMAAtCUAALQlQAC0JYAAtCXAALQmAAC0JkAAtCaAALQmwAC0JwAAtCdAALQngAC0J8AAtCg + AALQoQAC0KIAAtCjAALQpAAC0KUAAtCmAALQpwAC0KgAAtCpAALQqgAC0KsAAtCsAALQrQAC + 0K4AAtCvAALQsAAC0LEAAtCyAALQswAC0LQAAtC1AALQtgAC0LcAAtC4AALQuQAC0LoAAtC7 + AALQvAAC0L0AAtC+AALQvwAD4paRA+KWkgPilpMD4pSCA+KUpAPilaED4pWiA+KVlgPilZUD + 4pWjA+KVkQPilZcD4pWdA+KVnAPilZsD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8A+KV + ngPilZ8D4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsA+KVpwPilagD4pWkA+KVpQPilZkD + 4pWYA+KVkgPilZMD4pWrA+KVqgPilJgD4pSMA+KWiAPiloQD4paMA+KWkAPiloAC0YAAAtGB + AALRggAC0YMAAtGEAALRhQAC0YYAAtGHAALRiAAC0YkAAtGKAALRiwAC0YwAAtGNAALRjgAC + 0Y8AAtCBAALRkQAC0IQAAtGUAALQhwAC0ZcAAtCOAALRngACwrAAA+KImQLCtwAD4oiaA+KE + lgLCpAAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/pAAA/bAAAP + i3AAD6AQQA8AQEAPIHBAD0DgQA9hAEAIARBACBEgQAghMEAIMUBACEFQQAhRYEAIYXBACHGA + QAiBkEAIkaBACKGwQAixwEAIwdBACNHgQAjh8EAI8gBACQIQQAkSIEAJIjBACTJAQAlCUEAJ + UmBACWJwQAlygEAJgpBACZKgQAmisEAJssBACcLQQAnS4EAJ4vBACfMAQAoDEEAKEyBACiMw + QAozQEAKQ1BAClNgQApjcEAKc4BACoOQQAqToEAKo7BACrPAQArD0EAK0+BACuPwQAr0AEAO + BBBADhQgQA4kMEAONEBADkRQQA5UYEAOZHBADnSAQA6EkEAOlKBADqSwQA60wEAOxNBADtTg + QA7k8EAO9RBADxVAQA81cEAPVeBAD3FiEA/BkiAPkaIgD7ACUAxAIlALMMJQDaECUAvxQlAM + AYJQDZHCUAwyQlALQsJQDCNCUAwTwlAMVQJQDNUSUAulIlANVTJQDWVCUAyVUlALhWJQC3Vy + UAu1glANRZJQDTWiUAyFslAL5cJQC9XSUAvF4lAMZfJQDHYCUAzGElALViJQC2YyUAuWQlAN + FlJQDSZiUAy2clAM9oJQDQaSUAymolANhrJQDXbCUAzoAlAN+EJQDciCUA24wlAN2QJQDekS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp869_DOSGreek2 to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/24/96 + Contact: Shawn.Steele@microsoft.com + +*> +const CodePageTable CP869 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAACzoYAAQAAAALCtwACwqwAAsKmAAPigJgD4oCZAs6IAAPigJUCzokAAs6K + AALOqgACzowAAQAAAAEAAAACzo4AAs6rAALCqQACzo8AAsKyAALCswACzqwAAsKjAALOrQAC + zq4AAs6vAALPigACzpAAAs+MAALPjQACzpEAAs6SAALOkwACzpQAAs6VAALOlgACzpcAAsK9 + AALOmAACzpkAAsKrAALCuwAD4paRA+KWkgPilpMD4pSCA+KUpALOmgACzpsAAs6cAALOnQAD + 4pWjA+KVkQPilZcD4pWdAs6eAALOnwAD4pSQA+KUlAPilLQD4pSsA+KUnAPilIAD4pS8As6g + AALOoQAD4pWaA+KVlAPilakD4pWmA+KVoAPilZAD4pWsAs6jAALOpAACzqUAAs6mAALOpwAC + zqgAAs6pAALOsQACzrIAAs6zAAPilJgD4pSMA+KWiAPiloQCzrQAAs61AAPiloACzrYAAs63 + AALOuAACzrkAAs66AALOuwACzrwAAs69AALOvgACzr8AAs+AAALPgQACz4MAAs+CAALPhAAC + zoQAAsKtAALCsQACz4UAAs+GAALPhwACwqcAAs+IAALOhQACwrAAAsKoAALPiQACz4sAAs6w + AALPjgAD4pagAsKgAA==`, + .from_codepoint = b64`AAAAAAAAAJQAAACTAAAAhwAAAIUAAACEAAAAgwAAAIIAAACBAA + AAgAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA + 0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGw + AAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJAAAJCUAACUmAAAmJwAAJygAAC + gpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAADEyAAAyMwAAMzQAADQ1AAA1Ng + AANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+PwAAP0AAAEBBAABBQgAAQkMAAE + NEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAExNAABNTgAATk8AAE9QAABQUQ + AAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWgAAWlsAAFtcAABcXQAAXV4AAF + 5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbA + AAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAH + l6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+gAAD/owAAnKYAAIqnAAD1qAAA+akAAJerAACurA + AAia0AAPCwAAD4sQAA8bIAAJmzAACatwAAiLsAAK+9AACrhAMA74UDAPeGAwCGiAMAjYkDAI + +KAwCQjAMAko4DAJWPAwCYkAMAoZEDAKSSAwClkwMAppQDAKeVAwColgMAqZcDAKqYAwCsmQ + MArZoDALWbAwC2nAMAt50DALieAwC9nwMAvqADAMahAwDHowMAz6QDANClAwDRpgMA0qcDAN + OoAwDUqQMA1aoDAJGrAwCWrAMAm60DAJ2uAwCerwMAn7ADAPyxAwDWsgMA17MDANi0AwDdtQ + MA3rYDAOC3AwDhuAMA4rkDAOO6AwDkuwMA5bwDAOa9AwDnvgMA6L8DAOnAAwDqwQMA68IDAO + 3DAwDsxAMA7sUDAPLGAwDzxwMA9MgDAPbJAwD6ygMAoMsDAPvMAwCizQMAo84DAP0VIACOGC + AAixkgAIwAJQDEAiUAswwlANoQJQC/FCUAwBglANkcJQDDJCUAtCwlAMI0JQDBPCUAxVAlAM + 1RJQC6VCUAyVclALtaJQDIXSUAvGAlAMxjJQC5ZiUAy2klAMpsJQDOgCUA34QlANyIJQDbkS + UAsJIlALGTJQCyoCUA/g==` +}; + +<* + Header from the original mappings file: + Name: cp874 to Unicode table + Unicode version: 2.0 + Table version: 2.00 + Table format: Format A + Date: 04/15/98 + +*> +const CodePageTable CP874 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAAD4oKsAQAAAAEAAAAB + AAAAAQAAAAPigKYBAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAPigJgD4oCZA+KAnAPigJ0D4oCiA+KAkwPigJQBAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAALCoAAD4LiBA+C4ggPguIMD4LiEA+C4hQPguIYD4LiHA+C4iAPguIkD4LiKA+C4 + iwPguIwD4LiNA+C4jgPguI8D4LiQA+C4kQPguJID4LiTA+C4lAPguJUD4LiWA+C4lwPguJgD + 4LiZA+C4mgPguJsD4LicA+C4nQPguJ4D4LifA+C4oAPguKED4LiiA+C4owPguKQD4LilA+C4 + pgPguKcD4LioA+C4qQPguKoD4LirA+C4rAPguK0D4LiuA+C4rwPguLAD4LixA+C4sgPguLMD + 4Li0A+C4tQPguLYD4Li3A+C4uAPguLkD4Li6AQAAAAEAAAABAAAAAQAAAAPguL8D4LmAA+C5 + gQPguYID4LmDA+C5hAPguYUD4LmGA+C5hwPguYgD4LmJA+C5igPguYsD4LmMA+C5jQPguY4D + 4LmPA+C5kAPguZED4LmSA+C5kwPguZQD4LmVA+C5lgPguZcD4LmYA+C5mQPguZoD4LmbAQAA + AAEAAAABAAAAAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAP8AAAD+AAAA/QAAAPwAAADeAAAA3QAAANwAAADbAA + AAnwAAAJ4AAACdAAAAnAAAAJsAAACaAAAAmQAAAJgAAACQAAAAjwAAAI4AAACNAAAAjAAAAI + sAAACKAAAAiQAAAIgAAACHAAAAhgAAAIQAAACDAAAAggAAAIEBAAABAgAAAgMAAAMEAAAEBQ + AABQYAAAYHAAAHCAAACAkAAAkKAAAKCwAACwwAAAwNAAANDgAADg8AAA8QAAAQEQAAERIAAB + ITAAATFAAAFBUAABUWAAAWFwAAFxgAABgZAAAZGgAAGhsAABscAAAcHQAAHR4AAB4fAAAfIA + AAICEAACEiAAAiIwAAIyQAACQlAAAlJgAAJicAACcoAAAoKQAAKSoAACorAAArLAAALC0AAC + 0uAAAuLwAALzAAADAxAAAxMgAAMjMAADM0AAA0NQAANTYAADY3AAA3OAAAODkAADk6AAA6Ow + AAOzwAADw9AAA9PgAAPj8AAD9AAABAQQAAQUIAAEJDAABDRAAAREUAAEVGAABGRwAAR0gAAE + hJAABJSgAASksAAEtMAABMTQAATU4AAE5PAABPUAAAUFEAAFFSAABSUwAAU1QAAFRVAABVVg + AAVlcAAFdYAABYWQAAWVoAAFpbAABbXAAAXF0AAF1eAABeXwAAX2AAAGBhAABhYgAAYmMAAG + NkAABkZQAAZWYAAGZnAABnaAAAaGkAAGlqAABqawAAa2wAAGxtAABtbgAAbm8AAG9wAABwcQ + AAcXIAAHJzAABzdAAAdHUAAHV2AAB2dwAAd3gAAHh5AAB5egAAensAAHt8AAB8fQAAfX4AAH + 5/AAB/oAAAoAEOAKECDgCiAw4AowQOAKQFDgClBg4ApgcOAKcIDgCoCQ4AqQoOAKoLDgCrDA + 4ArA0OAK0ODgCuDw4ArxAOALARDgCxEg4AshMOALMUDgC0FQ4AtRYOALYXDgC3GA4AuBkOAL + kaDgC6Gw4AuxwOALwdDgC9Hg4Avh8OAL8gDgDAIQ4AwSIOAMIjDgDDJA4AxCUOAMUmDgDGJw + 4AxygOAMgpDgDJKg4AyisOAMssDgDMLQ4AzS4OAM4vDgDPMA4A0DEOANEyDgDSMw4A0zQOAN + Q1DgDVNg4A1jcOANc4DgDYOQ4A2ToOANo/DgDfQA4A4EEOAOFCDgDiQw4A40QOAORFDgDlRg + 4A5kcOAOdIDgDoSQ4A6UoOAOpLDgDrTA4A7E0OAO1ODgDuTw4A71AOAPBRDgDxUg4A8lMOAP + NUDgD0VQ4A9VYOAPZXDgD3WA4A+FkOAPlaDgD6Ww4A+xMgAJYUIACXGCAAkRkgAJIcIACTHS + AAlCIgAJUmIACFrCAAgA==` +}; + +<* + Header from the original mappings file: + 8859-1.TXT + Date: 2015-12-02 20:19:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-1:1998 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_1 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACwqEAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQACwqoAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsK6AALCuwACwrwAAsK9AALCvgACwr8AAsOAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALDkAACw5EAAsOSAALDkwAC + w5QAAsOVAALDlgACw5cAAsOYAALDmQACw5oAAsObAALDnAACw50AAsOeAALDnwACw6AAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsOwAALDsQACw7IAAsOzAALDtAACw7UAAsO2AALDtwACw7gAAsO5AALDugACw7sAAsO8 + AALDvQACw74AAsO/AA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKChAAChogAAoqMAAKOkAACkpQAApaYAAKanAACnqAAAqKkAAKmqAACqqw + AAq6wAAKytAACtrgAArq8AAK+wAACwsQAAsbIAALKzAACztAAAtLUAALW2AAC2twAAt7gAAL + i5AAC5ugAAursAALu8AAC8vQAAvb4AAL6/AAC/wAAAwMEAAMHCAADCwwAAw8QAAMTFAADFxg + AAxscAAMfIAADIyQAAycoAAMrLAADLzAAAzM0AAM3OAADOzwAAz9AAANDRAADR0gAA0tMAAN + PUAADU1QAA1dYAANbXAADX2AAA2NkAANnaAADa2wAA29wAANzdAADd3gAA3t8AAN/gAADg4Q + AA4eIAAOLjAADj5AAA5OUAAOXmAADm5wAA5+gAAOjpAADp6gAA6usAAOvsAADs7QAA7e4AAO + 7vAADv8AAA8PEAAPHyAADy8wAA8/QAAPT1AAD19gAA9vcAAPf4AAD4+QAA+foAAPr7AAD7/A + AA/P0AAP3+AAD+/wAA/w==` +}; + +<* + Header from the original mappings file: + 8859-10.TXT + Date: 2015-12-02 21:53:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-10:1998 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 October 11 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_10 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACxIQAAsSSAALEogACxKoAAsSoAALEtgACwqcAAsS7AALEkAACxaAAAsWm + AALFvQACwq0AAsWqAALFigACwrAAAsSFAALEkwACxKMAAsSrAALEqQACxLcAAsK3AALEvAAC + xJEAAsWhAALFpwACxb4AA+KAlQLFqwACxYsAAsSAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALErgACxIwAAsOJAALEmAACw4sAAsSWAALDjQACw44AAsOPAALDkAACxYUAAsWMAALDkwAC + w5QAAsOVAALDlgACxagAAsOYAALFsgACw5oAAsObAALDnAACw50AAsOeAALDnwACxIEAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsSvAALEjQACw6kAAsSZAALDqwACxJcAAsOtAALDrgAC + w68AAsOwAALFhgACxY0AAsOzAALDtAACw7UAAsO2AALFqQACw7gAAsWzAALDugACw7sAAsO8 + AALDvQACw74AAsS4AA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCnAACnrQAArbAAALC3AAC3wQAAwcIAAMLDAADDxAAAxMUAAMXGAADGyQ + AAycsAAMvNAADNzgAAzs8AAM/QAADQ0wAA09QAANTVAADV1gAA1tgAANjaAADa2wAA29wAAN + zdAADd3gAA3t8AAN/hAADh4gAA4uMAAOPkAADk5QAA5eYAAObpAADp6wAA6+0AAO3uAADu7w + AA7/AAAPDzAADz9AAA9PUAAPX2AAD2+AAA+PoAAPr7AAD7/AAA/P0AAP3+AAD+AAEAwAEBAO + AEAQChBQEAsQwBAMgNAQDoEAEAqREBALkSAQCiEwEAshYBAMwXAQDsGAEAyhkBAOoiAQCjIw + EAsygBAKUpAQC1KgEApCsBALQuAQDHLwEA5zYBAKY3AQC2OAEA/zsBAKg8AQC4RQEA0UYBAP + FKAQCvSwEAv0wBANJNAQDyYAEAqmEBALpmAQCrZwEAu2gBANdpAQD3agEArmsBAL5yAQDZcw + EA+X0BAKx+AQC8FSAAvQ==` +}; + +<* + Header from the original mappings file: + 8859-11.TXT + Date: 2015-12-02 21:55:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-11:2001 to Unicode + Unicode version: 3.2 + Table version: 2.0 + Table format: Format A + Date: 2002 October 7 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_11 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAAD4LiBA+C4ggPguIMD4LiEA+C4hQPguIYD4LiHA+C4iAPguIkD4LiKA+C4 + iwPguIwD4LiNA+C4jgPguI8D4LiQA+C4kQPguJID4LiTA+C4lAPguJUD4LiWA+C4lwPguJgD + 4LiZA+C4mgPguJsD4LicA+C4nQPguJ4D4LifA+C4oAPguKED4LiiA+C4owPguKQD4LilA+C4 + pgPguKcD4LioA+C4qQPguKoD4LirA+C4rAPguK0D4LiuA+C4rwPguLAD4LixA+C4sgPguLMD + 4Li0A+C4tQPguLYD4Li3A+C4uAPguLkD4Li6AQAAAAEAAAABAAAAAQAAAAPguL8D4LmAA+C5 + gQPguYID4LmDA+C5hAPguYUD4LmGA+C5hwPguYgD4LmJA+C5igPguYsD4LmMA+C5jQPguY4D + 4LmPA+C5kAPguZED4LmSA+C5kwPguZQD4LmVA+C5lgPguZcD4LmYA+C5mQPguZoD4LmbAQAA + AAEAAAABAAAAAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ + AAAQIAAAIDAAADBAAABAUAAAUGAAAGBwAABwgAAAgJAAAJCgAACgsAAAsMAAAMDQAADQ4AAA + 4PAAAPEAAAEBEAABESAAASEwAAExQAABQVAAAVFgAAFhcAABcYAAAYGQAAGRoAABobAAAbHA + AAHB0AAB0eAAAeHwAAHyAAACAhAAAhIgAAIiMAACMkAAAkJQAAJSYAACYnAAAnKAAAKCkAAC + kqAAAqKwAAKywAACwtAAAtLgAALi8AAC8wAAAwMQAAMTIAADIzAAAzNAAANDUAADU2AAA2Nw + AANzgAADg5AAA5OgAAOjsAADs8AAA8PQAAPT4AAD4/AAA/QAAAQEEAAEFCAABCQwAAQ0QAAE + RFAABFRgAARkcAAEdIAABISQAASUoAAEpLAABLTAAATE0AAE1OAABOTwAAT1AAAFBRAABRUg + AAUlMAAFNUAABUVQAAVVYAAFZXAABXWAAAWFkAAFlaAABaWwAAW1wAAFxdAABdXgAAXl8AAF + 9gAABgYQAAYWIAAGJjAABjZAAAZGUAAGVmAABmZwAAZ2gAAGhpAABpagAAamsAAGtsAABsbQ + AAbW4AAG5vAABvcAAAcHEAAHFyAABycwAAc3QAAHR1AAB1dgAAdncAAHd4AAB4eQAAeXoAAH + p7AAB7fAAAfH0AAH1+AAB+fwAAf4AAAICBAACBggAAgoMAAIOEAACEhQAAhYYAAIaHAACHiA + AAiIkAAImKAACKiwAAi4wAAIyNAACNjgAAjo8AAI+QAACQkQAAkZIAAJKTAACTlAAAlJUAAJ + WWAACWlwAAl5gAAJiZAACZmgAAmpsAAJucAACcnQAAnZ4AAJ6fAACfoAAAoAEOAKECDgCiAw + 4AowQOAKQFDgClBg4ApgcOAKcIDgCoCQ4AqQoOAKoLDgCrDA4ArA0OAK0ODgCuDw4ArxAOAL + ARDgCxEg4AshMOALMUDgC0FQ4AtRYOALYXDgC3GA4AuBkOALkaDgC6Gw4AuxwOALwdDgC9Hg + 4Avh8OAL8gDgDAIQ4AwSIOAMIjDgDDJA4AxCUOAMUmDgDGJw4AxygOAMgpDgDJKg4AyisOAM + ssDgDMLQ4AzS4OAM4vDgDPMA4A0DEOANEyDgDSMw4A0zQOANQ1DgDVNg4A1jcOANc4DgDYOQ + 4A2ToOANo/DgDfQA4A4EEOAOFCDgDiQw4A40QOAORFDgDlRg4A5kcOAOdIDgDoSQ4A6UoOAO + pLDgDrTA4A7E0OAO1ODgDuTw4A71AOAPBRDgDxUg4A8lMOAPNUDgD0VQ4A9VYOAPZXDgD3WA + 4A+FkOAPlaDgD6Ww4A+w==` +}; + +<* + Header from the original mappings file: + 8859-13.TXT + Date: 2015-12-02 22:03:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-13:1998 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_13 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAAD4oCdAsKiAALCowACwqQAA+KAngLCpgACwqcAAsOYAALCqQACxZYAAsKr + AALCrAACwq0AAsKuAALDhgACwrAAAsKxAALCsgACwrMAA+KAnALCtQACwrYAAsK3AALDuAAC + wrkAAsWXAALCuwACwrwAAsK9AALCvgACw6YAAsSEAALErgACxIAAAsSGAALDhAACw4UAAsSY + AALEkgACxIwAAsOJAALFuQACxJYAAsSiAALEtgACxKoAAsS7AALFoAACxYMAAsWFAALDkwAC + xYwAAsOVAALDlgACw5cAAsWyAALFgQACxZoAAsWqAALDnAACxbsAAsW9AALDnwACxIUAAsSv + AALEgQACxIcAAsOkAALDpQACxJkAAsSTAALEjQACw6kAAsW6AALElwACxKMAAsS3AALEqwAC + xLwAAsWhAALFhAACxYYAAsOzAALFjQACw7UAAsO2AALDtwACxbMAAsWCAALFmwACxasAAsO8 + AALFvAACxb4AA+KAmQ==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCiAACiowAAo6QAAKSmAACmpwAAp6kAAKmrAACrrAAArK0AAK2uAACusA + AAsLEAALGyAACyswAAs7UAALW2AAC2twAAt7kAALm7AAC7vAAAvL0AAL2+AAC+xAAAxMUAAM + XGAACvyQAAydMAANPVAADV1gAA1tcAANfYAACo3AAA3N8AAN/kAADk5QAA5eYAAL/pAADp8w + AA8/UAAPX2AAD29wAA9/gAALj8AAD8AAEAwgEBAOIEAQDABQEA4AYBAMMHAQDjDAEAyA0BAO + gSAQDHEwEA5xYBAMsXAQDrGAEAxhkBAOYiAQDMIwEA7CoBAM4rAQDuLgEAwS8BAOE2AQDNNw + EA7TsBAM88AQDvQQEA2UIBAPlDAQDRRAEA8UUBANJGAQDyTAEA1E0BAPRWAQCqVwEAuloBAN + pbAQD6YAEA0GEBAPBqAQDbawEA+3IBANhzAQD4eQEAynoBAOp7AQDdfAEA/X0BAN5+AQD+GS + AA/xwgALQdIAChHiAApQ==` +}; + +<* + Header from the original mappings file: + 8859-14.TXT + Date: 2015-12-02 22:05:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-14:1998 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Markus Kuhn + Ken Whistler + +*> +const CodePageTable ISO_8859_14 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAAD4biCA+G4gwLCowACxIoAAsSLAAPhuIoCwqcAA+G6gALCqQAD4bqCA+G4 + iwPhu7ICwq0AAsKuAALFuAAD4bieA+G4nwLEoAACxKEAA+G5gAPhuYECwrYAA+G5lgPhuoED + 4bmXA+G6gwPhuaAD4buzA+G6hAPhuoUD4bmhAsOAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALFtAACw5EAAsOSAALDkwAC + w5QAAsOVAALDlgAD4bmqAsOYAALDmQACw5oAAsObAALDnAACw50AAsW2AALDnwACw6AAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsW1AALDsQACw7IAAsOzAALDtAACw7UAAsO2AAPhuasCw7gAAsO5AALDugACw7sAAsO8 + AALDvQACxbcAAsO/AA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCjAACjpwAAp6kAAKmtAACtrgAArrYAALbAAADAwQAAwcIAAMLDAADDxA + AAxMUAAMXGAADGxwAAx8gAAMjJAADJygAAyssAAMvMAADMzQAAzc4AAM7PAADP0QAA0dIAAN + LTAADT1AAA1NUAANXWAADW2AAA2NkAANnaAADa2wAA29wAANzdAADd3wAA3+AAAODhAADh4g + AA4uMAAOPkAADk5QAA5eYAAObnAADn6AAA6OkAAOnqAADq6wAA6+wAAOztAADt7gAA7u8AAO + /xAADx8gAA8vMAAPP0AAD09QAA9fYAAPb4AAD4+QAA+foAAPr7AAD7/AAA/P0AAP3/AAD/Cg + EApAsBAKUgAQCyIQEAs3QBANB1AQDwdgEA3ncBAP54AQCvAh4AoQMeAKIKHgCmCx4Aqx4eAL + AfHgCxQB4AtEEeALVWHgC3Vx4AuWAeALthHgC/ah4A12seAPeAHgCogR4AuIIeAKqDHgC6hB + 4AvYUeAL7yHgCs8x4AvA==` +}; + +<* + Header from the original mappings file: + 8859-15.TXT + Date: 2015-12-02 22:06:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-15:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Markus Kuhn + Ken Whistler + +*> +const CodePageTable ISO_8859_15 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACwqEAAsKiAALCowAD4oKsAsKlAALFoAACwqcAAsWhAALCqQACwqoAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsW9AALCtQACwrYAAsK3AALFvgAC + wrkAAsK6AALCuwACxZIAAsWTAALFuAACwr8AAsOAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALDkAACw5EAAsOSAALDkwAC + w5QAAsOVAALDlgACw5cAAsOYAALDmQACw5oAAsObAALDnAACw50AAsOeAALDnwACw6AAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsOwAALDsQACw7IAAsOzAALDtAACw7UAAsO2AALDtwACw7gAAsO5AALDugACw7sAAsO8 + AALDvQACw74AAsO/AA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKChAAChogAAoqMAAKOlAAClpwAAp6kAAKmqAACqqwAAq6wAAKytAACtrg + AArq8AAK+wAACwsQAAsbIAALKzAACztQAAtbYAALa3AAC3uQAAuboAALq7AAC7vwAAv8AAAM + DBAADBwgAAwsMAAMPEAADExQAAxcYAAMbHAADHyAAAyMkAAMnKAADKywAAy8wAAMzNAADNzg + AAzs8AAM/QAADQ0QAA0dIAANLTAADT1AAA1NUAANXWAADW1wAA19gAANjZAADZ2gAA2tsAAN + vcAADc3QAA3d4AAN7fAADf4AAA4OEAAOHiAADi4wAA4+QAAOTlAADl5gAA5ucAAOfoAADo6Q + AA6eoAAOrrAADr7AAA7O0AAO3uAADu7wAA7/AAAPDxAADx8gAA8vMAAPP0AAD09QAA9fYAAP + b3AAD3+AAA+PkAAPn6AAD6+wAA+/wAAPz9AAD9/gAA/v8AAP9SAQC8UwEAvWABAKZhAQCoeA + EAvn0BALR+AQC4rCAApA==` +}; + +<* + Header from the original mappings file: + 8859-16.TXT + Date: 2015-12-02 22:08:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-16:2001 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 2001 July 26 (header updated: 2015 December 02) + Authors: Markus Kuhn + +*> +const CodePageTable ISO_8859_16 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACxIQAAsSFAALFgQAD4oKsA+KAngLFoAACwqcAAsWhAALCqQACyJgAAsKr + AALFuQACwq0AAsW6AALFuwACwrAAAsKxAALEjAACxYIAAsW9AAPigJ0CwrYAAsK3AALFvgAC + xI0AAsiZAALCuwACxZIAAsWTAALFuAACxbwAAsOAAALDgQACw4IAAsSCAALDhAACxIYAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALEkAACxYMAAsOSAALDkwAC + w5QAAsWQAALDlgACxZoAAsWwAALDmQACw5oAAsObAALDnAACxJgAAsiaAALDnwACw6AAAsOh + AALDogACxIMAAsOkAALEhwACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsSRAALFhAACw7IAAsOzAALDtAACxZEAAsO2AALFmwACxbEAAsO5AALDugACw7sAAsO8 + AALEmQACyJsAAsO/AA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCnAACnqQAAqasAAKutAACtsAAAsLEAALG2AAC2twAAt7sAALvAAADAwQ + AAwcIAAMLEAADExgAAxscAAMfIAADIyQAAycoAAMrLAADLzAAAzM0AAM3OAADOzwAAz9IAAN + LTAADT1AAA1NYAANbZAADZ2gAA2tsAANvcAADc3wAA3+AAAODhAADh4gAA4uQAAOTmAADm5w + AA5+gAAOjpAADp6gAA6usAAOvsAADs7QAA7e4AAO7vAADv8gAA8vMAAPP0AAD09gAA9vkAAP + n6AAD6+wAA+/wAAPz/AAD/AgEAwwMBAOMEAQChBQEAogYBAMUHAQDlDAEAsg0BALkQAQDQEQ + EA8BgBAN0ZAQD9QQEAo0IBALNDAQDRRAEA8VABANVRAQD1UgEAvFMBAL1aAQDXWwEA92ABAK + ZhAQCocAEA2HEBAPh4AQC+eQEArHoBAK57AQCvfAEAv30BALR+AQC4GAIAqhkCALoaAgDeGw + IA/h0gALUeIAClrCAApA==` +}; + +<* + Header from the original mappings file: + 8859-2.TXT + Date: 2015-12-02 21:34:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO 8859-2:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_2 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACxIQAAsuYAALFgQACwqQAAsS9AALFmgACwqcAAsKoAALFoAACxZ4AAsWk + AALFuQACwq0AAsW9AALFuwACwrAAAsSFAALLmwACxYIAAsK0AALEvgACxZsAAsuHAALCuAAC + xaEAAsWfAALFpQACxboAAsudAALFvgACxbwAAsWUAALDgQACw4IAAsSCAALDhAACxLkAAsSG + AALDhwACxIwAAsOJAALEmAACw4sAAsSaAALDjQACw44AAsSOAALEkAACxYMAAsWHAALDkwAC + w5QAAsWQAALDlgACw5cAAsWYAALFrgACw5oAAsWwAALDnAACw50AAsWiAALDnwACxZUAAsOh + AALDogACxIMAAsOkAALEugACxIcAAsOnAALEjQACw6kAAsSZAALDqwACxJsAAsOtAALDrgAC + xI8AAsSRAALFhAACxYgAAsOzAALDtAACxZEAAsO2AALDtwACxZkAAsWvAALDugACxbEAAsO8 + AALDvQACxaMAAsuZAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCkAACkpwAAp6gAAKitAACtsAAAsLQAALS4AAC4wQAAwcIAAMLEAADExw + AAx8kAAMnLAADLzQAAzc4AAM7TAADT1AAA1NYAANbXAADX2gAA2twAANzdAADd3wAA3+EAAO + HiAADi5AAA5OcAAOfpAADp6wAA6+0AAO3uAADu8wAA8/QAAPT2AAD29wAA9/oAAPr8AAD8/Q + AA/QIBAMMDAQDjBAEAoQUBALEGAQDGBwEA5gwBAMgNAQDoDgEAzw8BAO8QAQDQEQEA8BgBAM + oZAQDqGgEAzBsBAOw5AQDFOgEA5T0BAKU+AQC1QQEAo0IBALNDAQDRRAEA8UcBANJIAQDyUA + EA1VEBAPVUAQDAVQEA4FgBANhZAQD4WgEAplsBALZeAQCqXwEAumABAKlhAQC5YgEA3mMBAP + 5kAQCrZQEAu24BANlvAQD5cAEA23EBAPt5AQCsegEAvHsBAK98AQC/fQEArn4BAL7HAgC32A + IAotkCAP/bAgCy3QIAvQ==` +}; + +<* + Header from the original mappings file: + 8859-3.TXT + Date: 2015-12-02 21:39:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-3:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_3 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACxKYAAsuYAALCowACwqQAAQAAAALEpAACwqcAAsKoAALEsAACxZ4AAsSe + AALEtAACwq0AAQAAAALFuwACwrAAAsSnAALCsgACwrMAAsK0AALCtQACxKUAAsK3AALCuAAC + xLEAAsWfAALEnwACxLUAAsK9AAEAAAACxbwAAsOAAALDgQACw4IAAQAAAALDhAACxIoAAsSI + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAAEAAAACw5EAAsOSAALDkwAC + w5QAAsSgAALDlgACw5cAAsScAALDmQACw5oAAsObAALDnAACxawAAsWcAALDnwACw6AAAsOh + AALDogABAAAAAsOkAALEiwACxIkAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAQAAAALDsQACw7IAAsOzAALDtAACxKEAAsO2AALDtwACxJ0AAsO5AALDugACw7sAAsO8 + AALFrQACxZ0AAsuZAA==`, + .from_codepoint = b64`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAg + AAAgMAAAMEAAAEBQAABQYAAAYHAAAHCAAACAkAAAkKAAAKCwAACwwAAAwNAAANDgAADg8AAA + 8QAAAQEQAAERIAABITAAATFAAAFBUAABUWAAAWFwAAFxgAABgZAAAZGgAAGhsAABscAAAcHQ + AAHR4AAB4fAAAfIAAAICEAACEiAAAiIwAAIyQAACQlAAAlJgAAJicAACcoAAAoKQAAKSoAAC + orAAArLAAALC0AAC0uAAAuLwAALzAAADAxAAAxMgAAMjMAADM0AAA0NQAANTYAADY3AAA3OA + AAODkAADk6AAA6OwAAOzwAADw9AAA9PgAAPj8AAD9AAABAQQAAQUIAAEJDAABDRAAAREUAAE + VGAABGRwAAR0gAAEhJAABJSgAASksAAEtMAABMTQAATU4AAE5PAABPUAAAUFEAAFFSAABSUw + AAU1QAAFRVAABVVgAAVlcAAFdYAABYWQAAWVoAAFpbAABbXAAAXF0AAF1eAABeXwAAX2AAAG + BhAABhYgAAYmMAAGNkAABkZQAAZWYAAGZnAABnaAAAaGkAAGlqAABqawAAa2wAAGxtAABtbg + AAbm8AAG9wAABwcQAAcXIAAHJzAABzdAAAdHUAAHV2AAB2dwAAd3gAAHh5AAB5egAAensAAH + t8AAB8fQAAfX4AAH5/AAB/gAAAgIEAAIGCAACCgwAAg4QAAISFAACFhgAAhocAAIeIAACIiQ + AAiYoAAIqLAACLjAAAjI0AAI2OAACOjwAAj5AAAJCRAACRkgAAkpMAAJOUAACUlQAAlZYAAJ + aXAACXmAAAmJkAAJmaAACamwAAm5wAAJydAACdngAAnp8AAJ+gAACgowAAo6QAAKSnAACnqA + AAqK0AAK2wAACwsgAAsrMAALO0AAC0tQAAtbcAALe4AAC4vQAAvcAAAMDBAADBwgAAwsQAAM + THAADHyAAAyMkAAMnKAADKywAAy8wAAMzNAADNzgAAzs8AAM/RAADR0gAA0tMAANPUAADU1g + AA1tcAANfZAADZ2gAA2tsAANvcAADc3wAA3+AAAODhAADh4gAA4uQAAOTnAADn6AAA6OkAAO + nqAADq6wAA6+wAAOztAADt7gAA7u8AAO/xAADx8gAA8vMAAPP0AAD09gAA9vcAAPf5AAD5+g + AA+vsAAPv8AAD8CAEAxgkBAOYKAQDFCwEA5RwBANgdAQD4HgEAqx8BALsgAQDVIQEA9SQBAK + YlAQC2JgEAoScBALEwAQCpMQEAuTQBAKw1AQC8XAEA3l0BAP5eAQCqXwEAumwBAN1tAQD9ew + EAr3wBAL/YAgCi2QIA/w==` +}; + +<* + Header from the original mappings file: + 8859-4.TXT + Date: 2015-12-02 21:41:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-4:1998 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_4 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACxIQAAsS4AALFlgACwqQAAsSoAALEuwACwqcAAsKoAALFoAACxJIAAsSi + AALFpgACwq0AAsW9AALCrwACwrAAAsSFAALLmwACxZcAAsK0AALEqQACxLwAAsuHAALCuAAC + xaEAAsSTAALEowACxacAAsWKAALFvgACxYsAAsSAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALErgACxIwAAsOJAALEmAACw4sAAsSWAALDjQACw44AAsSqAALEkAACxYUAAsWMAALEtgAC + w5QAAsOVAALDlgACw5cAAsOYAALFsgACw5oAAsObAALDnAACxagAAsWqAALDnwACxIEAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsSvAALEjQACw6kAAsSZAALDqwACxJcAAsOtAALDrgAC + xKsAAsSRAALFhgACxY0AAsS3AALDtAACw7UAAsO2AALDtwACw7gAAsWzAALDugACw7sAAsO8 + AALFqQACxasAAsuZAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCkAACkpwAAp6gAAKitAACtrwAAr7AAALC0AAC0uAAAuMEAAMHCAADCww + AAw8QAAMTFAADFxgAAxskAAMnLAADLzQAAzc4AAM7UAADU1QAA1dYAANbXAADX2AAA2NoAAN + rbAADb3AAA3N8AAN/hAADh4gAA4uMAAOPkAADk5QAA5eYAAObpAADp6wAA6+0AAO3uAADu9A + AA9PUAAPX2AAD29wAA9/gAAPj6AAD6+wAA+/wAAPwAAQDAAQEA4AQBAKEFAQCxDAEAyA0BAO + gQAQDQEQEA8BIBAKoTAQC6FgEAzBcBAOwYAQDKGQEA6iIBAKsjAQC7KAEApSkBALUqAQDPKw + EA7y4BAMcvAQDnNgEA0zcBAPM4AQCiOwEApjwBALZFAQDRRgEA8UoBAL1LAQC/TAEA0k0BAP + JWAQCjVwEAs2ABAKlhAQC5ZgEArGcBALxoAQDdaQEA/WoBAN5rAQD+cgEA2XMBAPl9AQCufg + EAvscCALfZAgD/2wIAsg==` +}; + +<* + Header from the original mappings file: + 8859-5.TXT + Date: 2015-12-02 21:43:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO 8859-5:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_5 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAAC0IEAAtCCAALQgwAC0IQAAtCFAALQhgAC0IcAAtCIAALQiQAC0IoAAtCL + AALQjAACwq0AAtCOAALQjwAC0JAAAtCRAALQkgAC0JMAAtCUAALQlQAC0JYAAtCXAALQmAAC + 0JkAAtCaAALQmwAC0JwAAtCdAALQngAC0J8AAtCgAALQoQAC0KIAAtCjAALQpAAC0KUAAtCm + AALQpwAC0KgAAtCpAALQqgAC0KsAAtCsAALQrQAC0K4AAtCvAALQsAAC0LEAAtCyAALQswAC + 0LQAAtC1AALQtgAC0LcAAtC4AALQuQAC0LoAAtC7AALQvAAC0L0AAtC+AALQvwAC0YAAAtGB + AALRggAC0YMAAtGEAALRhQAC0YYAAtGHAALRiAAC0YkAAtGKAALRiwAC0YwAAtGNAALRjgAC + 0Y8AA+KElgLRkQAC0ZIAAtGTAALRlAAC0ZUAAtGWAALRlwAC0ZgAAtGZAALRmgAC0ZsAAtGc + AALCpwAC0Z4AAtGfAA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKCnAAD9rQAArQEEAKECBACiAwQAowQEAKQFBAClBgQApgcEAKcIBACoCQ + QAqQoEAKoLBACrDAQArA4EAK4PBACvEAQAsBEEALESBACyEwQAsxQEALQVBAC1FgQAthcEAL + cYBAC4GQQAuRoEALobBAC7HAQAvB0EAL0eBAC+HwQAvyAEAMAhBADBIgQAwiMEAMMkBADEJQ + QAxSYEAMYnBADHKAQAyCkEAMkqBADKKwQAyywEAMwtBADNLgQAzi8EAM8wBADQMQQA0TIEAN + IzBADTNAQA1DUEANU2BADWNwQA1zgEANg5BADZOgQA2jsEANs8BADcPQQA3T4EAN4/BADfQA + QA4EEEAOFCBADiQwQA40QEAORFBADlRgQA5kcEAOdIBADoSQQA6UoEAOpLBADrTAQA7E0EAO + 1OBADuTwQA71EEAPFSBADyUwQA81QEAPRVBAD1VgQA9lcEAPdYBAD4WQQA+VoEAPpbBAD7XA + QA/F4EAP5fBAD/FiEA8A==` +}; + +<* + Header from the original mappings file: + 8859-6.TXT + Date: 2015-12-02 21:44:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO 8859-6:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_6 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAABAAAAAQAAAAEAAAACwqQAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AALYjAACwq0AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAALYmwABAAAAAQAAAAEAAAAC2J8AAQAAAALYoQAC2KIAAtijAALYpAAC2KUAAtim + AALYpwAC2KgAAtipAALYqgAC2KsAAtisAALYrQAC2K4AAtivAALYsAAC2LEAAtiyAALYswAC + 2LQAAti1AALYtgAC2LcAAti4AALYuQAC2LoAAQAAAAEAAAABAAAAAQAAAAEAAAAC2YAAAtmB + AALZggAC2YMAAtmEAALZhQAC2YYAAtmHAALZiAAC2YkAAtmKAALZiwAC2YwAAtmNAALZjgAC + 2Y8AAtmQAALZkQAC2ZIAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAECAAACAwAAAwQAAA + QFAAAFBgAABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREg + AAEhMAABMUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB + 8gAAAgIQAAISIAACIjAAAjJAAAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQ + AALS4AAC4vAAAvMAAAMDEAADEyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAAD + o7AAA7PAAAPD0AAD0+AAA+PwAAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSA + AASEkAAElKAABKSwAAS0wAAExNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAF + VWAABWVwAAV1gAAFhZAABZWgAAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYw + AAY2QAAGRlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAH + BxAABxcgAAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fg + AAfn8AAH+AAACAgQAAgYIAAIKDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAI + uMAACMjQAAjY4AAI6PAACPkAAAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQ + AAmZoAAJqbAACbnAAAnJ0AAJ2eAACenwAAn6AAAKCkAACkrQAArQwGAKwbBgC7HwYAvyEGAM + EiBgDCIwYAwyQGAMQlBgDFJgYAxicGAMcoBgDIKQYAySoGAMorBgDLLAYAzC0GAM0uBgDOLw + YAzzAGANAxBgDRMgYA0jMGANM0BgDUNQYA1TYGANY3BgDXOAYA2DkGANk6BgDaQAYA4EEGAO + FCBgDiQwYA40QGAORFBgDlRgYA5kcGAOdIBgDoSQYA6UoGAOpLBgDrTAYA7E0GAO1OBgDuTw + YA71AGAPBRBgDxUgYA8g==` +}; + +<* + Header from the original mappings file: + 8859-7.TXT + Date: 2015-12-02 21:47:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO 8859-7:2003 to Unicode + Unicode version: 4.0 + Table version: 3.0 + Table format: Format A + Date: 2003-Nov-12 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_7 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAAD4oCYA+KAmQLCowAD4oKsA+KCrwLCpgACwqcAAsKoAALCqQACzboAAsKr + AALCrAACwq0AAQAAAAPigJUCwrAAAsKxAALCsgACwrMAAs6EAALOhQACzoYAAsK3AALOiAAC + zokAAs6KAALCuwACzowAAsK9AALOjgACzo8AAs6QAALOkQACzpIAAs6TAALOlAACzpUAAs6W + AALOlwACzpgAAs6ZAALOmgACzpsAAs6cAALOnQACzp4AAs6fAALOoAACzqEAAQAAAALOowAC + zqQAAs6lAALOpgACzqcAAs6oAALOqQACzqoAAs6rAALOrAACzq0AAs6uAALOrwACzrAAAs6x + AALOsgACzrMAAs60AALOtQACzrYAAs63AALOuAACzrkAAs66AALOuwACzrwAAs69AALOvgAC + zr8AAs+AAALPgQACz4IAAs+DAALPhAACz4UAAs+GAALPhwACz4gAAs+JAALPigACz4sAAs+M + AALPjQACz44AAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAAAAAAAAAAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBg + AABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAAB + MUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQ + AAISIAACIjAAAjJAAAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC + 4vAAAvMAAAMDEAADEyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PA + AAPD0AAD0+AAA+PwAAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAE + lKAABKSwAAS0wAAExNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVw + AAV1gAAFhZAABZWgAAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAG + RlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcg + AAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH + +AAACAgQAAgYIAAIKDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQ + AAjY4AAI6PAACPkAAAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJ + qbAACbnAAAnJ0AAJ2eAACenwAAn6AAAKCjAACjpgAApqcAAKeoAACoqQAAqasAAKusAACsrQ + AArbAAALCxAACxsgAAsrMAALO3AAC3uwAAu70AAL16AwCqhAMAtIUDALWGAwC2iAMAuIkDAL + mKAwC6jAMAvI4DAL6PAwC/kAMAwJEDAMGSAwDCkwMAw5QDAMSVAwDFlgMAxpcDAMeYAwDImQ + MAyZoDAMqbAwDLnAMAzJ0DAM2eAwDOnwMAz6ADANChAwDRowMA06QDANSlAwDVpgMA1qcDAN + eoAwDYqQMA2aoDANqrAwDbrAMA3K0DAN2uAwDerwMA37ADAOCxAwDhsgMA4rMDAOO0AwDktQ + MA5bYDAOa3AwDnuAMA6LkDAOm6AwDquwMA67wDAOy9AwDtvgMA7r8DAO/AAwDwwQMA8cIDAP + LDAwDzxAMA9MUDAPXGAwD2xwMA98gDAPjJAwD5ygMA+ssDAPvMAwD8zQMA/c4DAP4VIACvGC + AAoRkgAKKsIACkryAApQ==` +}; + +<* + Header from the original mappings file: + 8859-8.TXT + Date: 2015-12-02 21:50:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-8:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 2000-Jan-03 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_8 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAABAAAAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQACw5cAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsO3AALCuwACwrwAAsK9AALCvgABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAPigJcC15AAAteR + AALXkgAC15MAAteUAALXlQAC15YAAteXAALXmAAC15kAAteaAALXmwAC15wAAtedAALXngAC + 158AAtegAALXoQAC16IAAtejAALXpAAC16UAAtemAALXpwAC16gAAtepAALXqgABAAAAAQAA + AAPigI4D4oCPAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQAACQoAAAoLAAALDAAADA0AAA + 0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAABYXAAAXGAAAGBkAABkaAAAaGw + AAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJAAAJCUAACUmAAAmJwAAJygAAC + gpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAADEyAAAyMwAAMzQAADQ1AAA1Ng + AANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+PwAAP0AAAEBBAABBQgAAQkMAAE + NEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAExNAABNTgAATk8AAE9QAABQUQ + AAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWgAAWlsAAFtcAABcXQAAXV4AAF + 5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbA + AAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAH + l6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAIKDAACDhAAAhIUAAIWGAACGhw + AAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkAAAkJEAAJGSAACSkwAAk5QAAJ + SVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ2eAACenwAAn6AAAKCiAACiow + AAo6QAAKSlAAClpgAApqcAAKeoAACoqQAAqasAAKusAACsrQAAra4AAK6vAACvsAAAsLEAAL + GyAACyswAAs7QAALS1AAC1tgAAtrcAALe4AAC4uQAAubsAALu8AAC8vQAAvb4AAL7XAACq9w + AAutAFAODRBQDh0gUA4tMFAOPUBQDk1QUA5dYFAObXBQDn2AUA6NkFAOnaBQDq2wUA69wFAO + zdBQDt3gUA7t8FAO/gBQDw4QUA8eIFAPLjBQDz5AUA9OUFAPXmBQD25wUA9+gFAPjpBQD56g + UA+g4gAP0PIAD+FyAA3w==` +}; + +<* + Header from the original mappings file: + 8859-9.TXT + Date: 2015-12-02 21:51:00 GMT [KW] + © 2015 Unicode®, Inc. + For terms of use, see http://www.unicode.org/terms_of_use.html + Name: ISO/IEC 8859-9:1999 to Unicode + Unicode version: 3.0 + Table version: 2.0 + Table format: Format A + Date: 1999 July 27 (header updated: 2015 December 02) + Authors: Ken Whistler + +*> +const CodePageTable ISO_8859_9 = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAAScAAAEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAAWAAAAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAACwoAAAsKBAALCggAC + woMAAsKEAALChQACwoYAAsKHAALCiAACwokAAsKKAALCiwACwowAAsKNAALCjgACwo8AAsKQ + AALCkQACwpIAAsKTAALClAACwpUAAsKWAALClwACwpgAAsKZAALCmgACwpsAAsKcAALCnQAC + wp4AAsKfAALCoAACwqEAAsKiAALCowACwqQAAsKlAALCpgACwqcAAsKoAALCqQACwqoAAsKr + AALCrAACwq0AAsKuAALCrwACwrAAAsKxAALCsgACwrMAAsK0AALCtQACwrYAAsK3AALCuAAC + wrkAAsK6AALCuwACwrwAAsK9AALCvgACwr8AAsOAAALDgQACw4IAAsODAALDhAACw4UAAsOG + AALDhwACw4gAAsOJAALDigACw4sAAsOMAALDjQACw44AAsOPAALEngACw5EAAsOSAALDkwAC + w5QAAsOVAALDlgACw5cAAsOYAALDmQACw5oAAsObAALDnAACxLAAAsWeAALDnwACw6AAAsOh + AALDogACw6MAAsOkAALDpQACw6YAAsOnAALDqAACw6kAAsOqAALDqwACw6wAAsOtAALDrgAC + w68AAsSfAALDsQACw7IAAsOzAALDtAACw7UAAsO2AALDtwACw7gAAsO5AALDugACw7sAAsO8 + AALEsQACxZ8AAsO/AA==`, + .from_codepoint = b64`AAAAAAEAAAECAAACAwAAAwQAAAQFAAAFBgAABgcAAAcIAAAICQ + AACQoAAAoLAAALDAAADA0AAA0OAAAODwAADxAAABARAAAREgAAEhMAABMUAAAUFQAAFRYAAB + YXAAAXGAAAGBkAABkaAAAaGwAAGxwAABwdAAAdHgAAHh8AAB8gAAAgIQAAISIAACIjAAAjJA + AAJCUAACUmAAAmJwAAJygAACgpAAApKgAAKisAACssAAAsLQAALS4AAC4vAAAvMAAAMDEAAD + EyAAAyMwAAMzQAADQ1AAA1NgAANjcAADc4AAA4OQAAOToAADo7AAA7PAAAPD0AAD0+AAA+Pw + AAP0AAAEBBAABBQgAAQkMAAENEAABERQAARUYAAEZHAABHSAAASEkAAElKAABKSwAAS0wAAE + xNAABNTgAATk8AAE9QAABQUQAAUVIAAFJTAABTVAAAVFUAAFVWAABWVwAAV1gAAFhZAABZWg + AAWlsAAFtcAABcXQAAXV4AAF5fAABfYAAAYGEAAGFiAABiYwAAY2QAAGRlAABlZgAAZmcAAG + doAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAHBxAABxcgAAcnMAAHN0AAB0dQ + AAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fgAAfn8AAH+AAACAgQAAgYIAAI + KDAACDhAAAhIUAAIWGAACGhwAAh4gAAIiJAACJigAAiosAAIuMAACMjQAAjY4AAI6PAACPkA + AAkJEAAJGSAACSkwAAk5QAAJSVAACVlgAAlpcAAJeYAACYmQAAmZoAAJqbAACbnAAAnJ0AAJ + 2eAACenwAAn6AAAKChAAChogAAoqMAAKOkAACkpQAApaYAAKanAACnqAAAqKkAAKmqAACqqw + AAq6wAAKytAACtrgAArq8AAK+wAACwsQAAsbIAALKzAACztAAAtLUAALW2AAC2twAAt7gAAL + i5AAC5ugAAursAALu8AAC8vQAAvb4AAL6/AAC/wAAAwMEAAMHCAADCwwAAw8QAAMTFAADFxg + AAxscAAMfIAADIyQAAycoAAMrLAADLzAAAzM0AAM3OAADOzwAAz9EAANHSAADS0wAA09QAAN + TVAADV1gAA1tcAANfYAADY2QAA2doAANrbAADb3AAA3N8AAN/gAADg4QAA4eIAAOLjAADj5A + AA5OUAAOXmAADm5wAA5+gAAOjpAADp6gAA6usAAOvsAADs7QAA7e4AAO7vAADv8QAA8fIAAP + LzAADz9AAA9PUAAPX2AAD29wAA9/gAAPj5AAD5+gAA+vsAAPv8AAD8/wAA/x4BANAfAQDwMA + EA3TEBAP1eAQDeXwEA/g==` +}; + +<* + Header from the original mappings file: + Name: ANSI X3.4-1968 (US-ASCII) with 0x60/0x27 as + left/right single quotation mark to Unicode + Unicode version: 3.2 + Table version: 1.0 + Table format: Format A + Date: 2003 April 8 + Authors: Markus Kuhn + +*> +const CodePageTable US_ASCII = { + .to_codepoint = b64`AQAAAAEBAAABAgAAAQMAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkA + AAEKAAABCwAAAQwAAAENAAABDgAAAQ8AAAEQAAABEQAAARIAAAETAAABFAAAARUAAAEWAAAB + FwAAARgAAAEZAAABGgAAARsAAAEcAAABHQAAAR4AAAEfAAABIAAAASEAAAEiAAABIwAAASQA + AAElAAABJgAAA+KAmQEoAAABKQAAASoAAAErAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAAB + MgAAATMAAAE0AAABNQAAATYAAAE3AAABOAAAATkAAAE6AAABOwAAATwAAAE9AAABPgAAAT8A + AAFAAAABQQAAAUIAAAFDAAABRAAAAUUAAAFGAAABRwAAAUgAAAFJAAABSgAAAUsAAAFMAAAB + TQAAAU4AAAFPAAABUAAAAVEAAAFSAAABUwAAAVQAAAFVAAABVgAAAVcAAAFYAAABWQAAAVoA + AAFbAAABXAAAAV0AAAFeAAABXwAAA+KAmAFhAAABYgAAAWMAAAFkAAABZQAAAWYAAAFnAAAB + aAAAAWkAAAFqAAABawAAAWwAAAFtAAABbgAAAW8AAAFwAAABcQAAAXIAAAFzAAABdAAAAXUA + AAF2AAABdwAAAXgAAAF5AAABegAAAXsAAAF8AAABfQAAAX4AAAF/AAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAA==`, + .from_codepoint = b64`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQIAAA + IDAAADBAAABAUAAAUGAAAGBwAABwgAAAgJAAAJCgAACgsAAAsMAAAMDQAADQ4AAA4PAAAPEA + AAEBEAABESAAASEwAAExQAABQVAAAVFgAAFhcAABcYAAAYGQAAGRoAABobAAAbHAAAHB0AAB + 0eAAAeHwAAHyAAACAhAAAhIgAAIiMAACMkAAAkJQAAJSYAACYoAAAoKQAAKSoAACorAAArLA + AALC0AAC0uAAAuLwAALzAAADAxAAAxMgAAMjMAADM0AAA0NQAANTYAADY3AAA3OAAAODkAAD + k6AAA6OwAAOzwAADw9AAA9PgAAPj8AAD9AAABAQQAAQUIAAEJDAABDRAAAREUAAEVGAABGRw + AAR0gAAEhJAABJSgAASksAAEtMAABMTQAATU4AAE5PAABPUAAAUFEAAFFSAABSUwAAU1QAAF + RVAABVVgAAVlcAAFdYAABYWQAAWVoAAFpbAABbXAAAXF0AAF1eAABeXwAAX2EAAGFiAABiYw + AAY2QAAGRlAABlZgAAZmcAAGdoAABoaQAAaWoAAGprAABrbAAAbG0AAG1uAABubwAAb3AAAH + BxAABxcgAAcnMAAHN0AAB0dQAAdXYAAHZ3AAB3eAAAeHkAAHl6AAB6ewAAe3wAAHx9AAB9fg + AAfn8AAH8YIABgGSAAJw==` +}; + diff --git a/releasenotes.md b/releasenotes.md index 1399ee88a..2b31da6f1 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -17,6 +17,7 @@ - Add Murmur3 hash. - Add optional line-length limitations to `io::readline` and `io::readline_to_stream`. #2879 - Add Xorshiro128++. +- Add single-byte code page support (DOS/OEM, Windows/ANSI, and ISO/IEC 8859). ### Fixes - Add error message if directory with output file name already exists diff --git a/test/unit/stdlib/encoding/codepage.c3 b/test/unit/stdlib/encoding/codepage.c3 new file mode 100644 index 000000000..0487380b2 --- /dev/null +++ b/test/unit/stdlib/encoding/codepage.c3 @@ -0,0 +1,92 @@ +// Copyright (c) 2026 Koni Marti. All rights reserved. +// Use of this source code is governed by the MIT license. +module std::encoding::codepage_test; +import std::encoding::codepage; + +fn void test_cp437() @test +{ + String want = "╔══════════════════════════════════════╗" + "║ SYSTEM STATUS: OK - 25°C ± 2°C ║" + "║ Café Menu: Crème Brûlée .... £5.00 ║" + "╚══════════════════════════════════════╝"; + + char[] bytes = + x"C9CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBB" + x"BA202053595354454D205354415455533A204F4B202D203235F84320F12032F843202020202020BA" + x"BA202043616682204D656E753A2043728A6D65204272966C8265202E2E2E2E209C352E30302020BA" + x"C8CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDBC"; + + @pool() + { + String got = codepage::decode(tmem, bytes, codepage::by_name("cp437"))!!; + assert(got == want, "cp437 decoding failed: got=%s, want=%s", got, want); + + got = (String)codepage::encode(tmem, got[..], codepage::by_name("cp437"))!!; + assert(got == (String)bytes, "cp437 encoding failed: got=%s, want=%s", + got, (String)bytes); + + }; +} + +fn void test_cp437_roundtrip() @test +{ + String s = "╔══ CP437: Café, π≈3.14 ══╗"; + check_roundtrip(s, "cp437"); +} + +fn void test_cp850_roundtrip() @test +{ + String s = "CP850: Crème Brûlée, Frühstück, £10.50"; + check_roundtrip(s, "cp850"); +} + +fn void test_cp866_roundtrip() @test +{ + String s = "CP866: Привет мир!"; + check_roundtrip(s, "cp866"); +} + +fn void test_cp863_roundtrip() @test +{ + String s = "CP863: Québec, érable, Noël"; + check_roundtrip(s, "cp863"); +} + +fn void test_iso8859_1() @test +{ + String s = "ISO-8859-1: Café, Ångström, Straße, Noël, £10.50"; + check_roundtrip(s, "iso-8859-1"); +} + +fn void test_iso8859_2_polish() @test +{ + String s = "Polski: Zażółć gęślą jaźń"; + check_roundtrip(s, "iso-8859-2"); +} + +fn void test_iso8859_2_czech() @test +{ + String s = "Česky: Příliš žluťoučký kůň úpěl ďábelské ódy"; + check_roundtrip(s, "iso-8859-2"); +} + +fn void test_iso8859_2_hungarian() @test +{ + String s = "Magyar: Árvíztűrő tükörfúrógép"; + check_roundtrip(s, "iso-8859-2"); +} + +fn void check_roundtrip(String utf8, String charset) => @pool() +{ + CodePage code_page = codepage::by_name(charset)!!; + + // Encode UTF‑8 to code page. + char[] bytes = codepage::encode(tmem, utf8[..], code_page)!!; + + // Decode back to UTF‑8 and compare. + String got = codepage::decode(tmem, bytes, code_page)!!; + + assert(got == utf8, + "roundtrip failed: got=%s, want=%s", got, utf8); +} +