Current section
Files
Jump to
Current section
Files
src/iso_8859.gleam
//// This library decodes ISO/IEC 8859 binary data into a native string. All 15
//// ISO/IEC 8859 encodings are supported.
import gleam/bit_array
import gleam/list
import gleam/string
/// The ISO/IEC 8859 encodings that can be decoded. All 15 ISO/IEC 8859
/// encodings are supported.
///
pub type Encoding {
Part1
Part2
Part3
Part4
Part5
Part6
Part7
Part8
Part9
Part10
Part11
Part13
Part14
Part15
Part16
}
/// Converts ISO/IEC 8859 binary data to a UTF-8 string. Any bytes that are not
/// valid for the specified encoding are replaced with the `U+FFFD` character:
/// �.
///
@external(javascript, "./text_decoder.mjs", "decode_bytes")
pub fn decode_bytes(bytes: BitArray, encoding: Encoding) -> String {
let lut = case encoding {
Part1 -> part_1_lut
Part2 -> part_2_lut
Part3 -> part_3_lut
Part4 -> part_4_lut
Part5 -> part_5_lut
Part6 -> part_6_lut
Part7 -> part_7_lut
Part8 -> part_8_lut
Part9 -> part_9_lut
Part10 -> part_10_lut
Part11 -> part_11_lut
Part13 -> part_13_lut
Part14 -> part_14_lut
Part15 -> part_15_lut
Part16 -> part_16_lut
}
bits_to_codepoints(bytes, lut, [])
|> list.reverse
|> string.from_utf_codepoints
}
fn bits_to_codepoints(
bytes: BitArray,
lut: BitArray,
acc: List(UtfCodepoint),
) -> List(UtfCodepoint) {
case bytes {
<<next_byte:size(8), rest:bytes>> -> {
// Read the 16-bit code point value out of the LUT
let assert Ok(<<cp:size(16)>>) = bit_array.slice(lut, next_byte * 2, 2)
// Convert to a native code point. This will always succeed because there
// is no invalid code point data in the LUTs.
let assert Ok(cp) = string.utf_codepoint(cp)
bits_to_codepoints(rest, lut, [cp, ..acc])
}
_ -> acc
}
}
/// Lookup table for ISO/IEC 8859 Part 1.
///
const part_1_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x00A1:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x00A5:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x00AA:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00B8:16, 0x00B9:16, 0x00BA:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0x00BF:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x00D0:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x00DE:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x00F0:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x00FE:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 2.
///
const part_2_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x02D8:16, 0x0141:16, 0x00A4:16, 0x013D:16, 0x015A:16, 0x00A7:16,
0x00A8:16, 0x0160:16, 0x015E:16, 0x0164:16, 0x0179:16, 0x00AD:16, 0x017D:16,
0x017B:16, 0x00B0:16, 0x0105:16, 0x02DB:16, 0x0142:16, 0x00B4:16, 0x013E:16,
0x015B:16, 0x02C7:16, 0x00B8:16, 0x0161:16, 0x015F:16, 0x0165:16, 0x017A:16,
0x02DD:16, 0x017E:16, 0x017C:16, 0x0154:16, 0x00C1:16, 0x00C2:16, 0x0102:16,
0x00C4:16, 0x0139:16, 0x0106:16, 0x00C7:16, 0x010C:16, 0x00C9:16, 0x0118:16,
0x00CB:16, 0x011A:16, 0x00CD:16, 0x00CE:16, 0x010E:16, 0x0110:16, 0x0143:16,
0x0147:16, 0x00D3:16, 0x00D4:16, 0x0150:16, 0x00D6:16, 0x00D7:16, 0x0158:16,
0x016E:16, 0x00DA:16, 0x0170:16, 0x00DC:16, 0x00DD:16, 0x0162:16, 0x00DF:16,
0x0155:16, 0x00E1:16, 0x00E2:16, 0x0103:16, 0x00E4:16, 0x013A:16, 0x0107:16,
0x00E7:16, 0x010D:16, 0x00E9:16, 0x0119:16, 0x00EB:16, 0x011B:16, 0x00ED:16,
0x00EE:16, 0x010F:16, 0x0111:16, 0x0144:16, 0x0148:16, 0x00F3:16, 0x00F4:16,
0x0151:16, 0x00F6:16, 0x00F7:16, 0x0159:16, 0x016F:16, 0x00FA:16, 0x0171:16,
0x00FC:16, 0x00FD:16, 0x0163:16, 0x02D9:16,
>>
/// Lookup table for ISO/IEC 8859 Part 3.
///
const part_3_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0126:16, 0x02D8:16, 0x00A3:16, 0x00A4:16, 0xFFFD:16, 0x0124:16, 0x00A7:16,
0x00A8:16, 0x0130:16, 0x015E:16, 0x011E:16, 0x0134:16, 0x00AD:16, 0xFFFD:16,
0x017B:16, 0x00B0:16, 0x0127:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x0125:16, 0x00B7:16, 0x00B8:16, 0x0131:16, 0x015F:16, 0x011F:16, 0x0135:16,
0x00BD:16, 0xFFFD:16, 0x017C:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0xFFFD:16,
0x00C4:16, 0x010A:16, 0x0108:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0xFFFD:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x0120:16, 0x00D6:16, 0x00D7:16, 0x011C:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x016C:16, 0x015C:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0xFFFD:16, 0x00E4:16, 0x010B:16, 0x0109:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0xFFFD:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x0121:16, 0x00F6:16, 0x00F7:16, 0x011D:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x016D:16, 0x015D:16, 0x02D9:16,
>>
/// Lookup table for ISO/IEC 8859 Part 4.
///
const part_4_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x0138:16, 0x0156:16, 0x00A4:16, 0x0128:16, 0x013B:16, 0x00A7:16,
0x00A8:16, 0x0160:16, 0x0112:16, 0x0122:16, 0x0166:16, 0x00AD:16, 0x017D:16,
0x00AF:16, 0x00B0:16, 0x0105:16, 0x02DB:16, 0x0157:16, 0x00B4:16, 0x0129:16,
0x013C:16, 0x02C7:16, 0x00B8:16, 0x0161:16, 0x0113:16, 0x0123:16, 0x0167:16,
0x014A:16, 0x017E:16, 0x014B:16, 0x0100:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x012E:16, 0x010C:16, 0x00C9:16, 0x0118:16,
0x00CB:16, 0x0116:16, 0x00CD:16, 0x00CE:16, 0x012A:16, 0x0110:16, 0x0145:16,
0x014C:16, 0x0136:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x0172:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x0168:16, 0x016A:16, 0x00DF:16,
0x0101:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x012F:16, 0x010D:16, 0x00E9:16, 0x0119:16, 0x00EB:16, 0x0117:16, 0x00ED:16,
0x00EE:16, 0x012B:16, 0x0111:16, 0x0146:16, 0x014D:16, 0x0137:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x0173:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x0169:16, 0x016B:16, 0x02D9:16,
>>
/// Lookup table for ISO/IEC 8859 Part 5.
///
const part_5_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0401:16, 0x0402:16, 0x0403:16, 0x0404:16, 0x0405:16, 0x0406:16, 0x0407:16,
0x0408:16, 0x0409:16, 0x040A:16, 0x040B:16, 0x040C:16, 0x00AD:16, 0x040E:16,
0x040F:16, 0x0410:16, 0x0411:16, 0x0412:16, 0x0413:16, 0x0414:16, 0x0415:16,
0x0416:16, 0x0417:16, 0x0418:16, 0x0419:16, 0x041A:16, 0x041B:16, 0x041C:16,
0x041D:16, 0x041E:16, 0x041F:16, 0x0420:16, 0x0421:16, 0x0422:16, 0x0423:16,
0x0424:16, 0x0425:16, 0x0426:16, 0x0427:16, 0x0428:16, 0x0429:16, 0x042A:16,
0x042B:16, 0x042C:16, 0x042D:16, 0x042E:16, 0x042F:16, 0x0430:16, 0x0431:16,
0x0432:16, 0x0433:16, 0x0434:16, 0x0435:16, 0x0436:16, 0x0437:16, 0x0438:16,
0x0439:16, 0x043A:16, 0x043B:16, 0x043C:16, 0x043D:16, 0x043E:16, 0x043F:16,
0x0440:16, 0x0441:16, 0x0442:16, 0x0443:16, 0x0444:16, 0x0445:16, 0x0446:16,
0x0447:16, 0x0448:16, 0x0449:16, 0x044A:16, 0x044B:16, 0x044C:16, 0x044D:16,
0x044E:16, 0x044F:16, 0x2116:16, 0x0451:16, 0x0452:16, 0x0453:16, 0x0454:16,
0x0455:16, 0x0456:16, 0x0457:16, 0x0458:16, 0x0459:16, 0x045A:16, 0x045B:16,
0x045C:16, 0x00A7:16, 0x045E:16, 0x045F:16,
>>
/// Lookup table for ISO/IEC 8859 Part 6.
///
const part_6_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x00A4:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x060C:16, 0x00AD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x061B:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0x061F:16, 0xFFFD:16, 0x0621:16, 0x0622:16, 0x0623:16,
0x0624:16, 0x0625:16, 0x0626:16, 0x0627:16, 0x0628:16, 0x0629:16, 0x062A:16,
0x062B:16, 0x062C:16, 0x062D:16, 0x062E:16, 0x062F:16, 0x0630:16, 0x0631:16,
0x0632:16, 0x0633:16, 0x0634:16, 0x0635:16, 0x0636:16, 0x0637:16, 0x0638:16,
0x0639:16, 0x063A:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0x0640:16, 0x0641:16, 0x0642:16, 0x0643:16, 0x0644:16, 0x0645:16, 0x0646:16,
0x0647:16, 0x0648:16, 0x0649:16, 0x064A:16, 0x064B:16, 0x064C:16, 0x064D:16,
0x064E:16, 0x064F:16, 0x0650:16, 0x0651:16, 0x0652:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 7.
///
const part_7_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x2018:16, 0x2019:16, 0x00A3:16, 0x20AC:16, 0x20AF:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x037A:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0xFFFD:16,
0x2015:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x0384:16, 0x0385:16,
0x0386:16, 0x00B7:16, 0x0388:16, 0x0389:16, 0x038A:16, 0x00BB:16, 0x038C:16,
0x00BD:16, 0x038E:16, 0x038F:16, 0x0390:16, 0x0391:16, 0x0392:16, 0x0393:16,
0x0394:16, 0x0395:16, 0x0396:16, 0x0397:16, 0x0398:16, 0x0399:16, 0x039A:16,
0x039B:16, 0x039C:16, 0x039D:16, 0x039E:16, 0x039F:16, 0x03A0:16, 0x03A1:16,
0xFFFD:16, 0x03A3:16, 0x03A4:16, 0x03A5:16, 0x03A6:16, 0x03A7:16, 0x03A8:16,
0x03A9:16, 0x03AA:16, 0x03AB:16, 0x03AC:16, 0x03AD:16, 0x03AE:16, 0x03AF:16,
0x03B0:16, 0x03B1:16, 0x03B2:16, 0x03B3:16, 0x03B4:16, 0x03B5:16, 0x03B6:16,
0x03B7:16, 0x03B8:16, 0x03B9:16, 0x03BA:16, 0x03BB:16, 0x03BC:16, 0x03BD:16,
0x03BE:16, 0x03BF:16, 0x03C0:16, 0x03C1:16, 0x03C2:16, 0x03C3:16, 0x03C4:16,
0x03C5:16, 0x03C6:16, 0x03C7:16, 0x03C8:16, 0x03C9:16, 0x03CA:16, 0x03CB:16,
0x03CC:16, 0x03CD:16, 0x03CE:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 8.
///
const part_8_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0xFFFD:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x00A5:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x00D7:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00B8:16, 0x00B9:16, 0x00F7:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x2017:16,
0x05D0:16, 0x05D1:16, 0x05D2:16, 0x05D3:16, 0x05D4:16, 0x05D5:16, 0x05D6:16,
0x05D7:16, 0x05D8:16, 0x05D9:16, 0x05DA:16, 0x05DB:16, 0x05DC:16, 0x05DD:16,
0x05DE:16, 0x05DF:16, 0x05E0:16, 0x05E1:16, 0x05E2:16, 0x05E3:16, 0x05E4:16,
0x05E5:16, 0x05E6:16, 0x05E7:16, 0x05E8:16, 0x05E9:16, 0x05EA:16, 0xFFFD:16,
0xFFFD:16, 0x200E:16, 0x200F:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 9.
///
const part_9_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x00A1:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x00A5:16, 0x00A6:16, 0x00A7:16,
0x00A8:16, 0x00A9:16, 0x00AA:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x00B4:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00B8:16, 0x00B9:16, 0x00BA:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0x00BF:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x011E:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x0130:16, 0x015E:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x011F:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x0131:16, 0x015F:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 10.
///
const part_10_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x0112:16, 0x0122:16, 0x012A:16, 0x0128:16, 0x0136:16, 0x00A7:16,
0x013B:16, 0x0110:16, 0x0160:16, 0x0166:16, 0x017D:16, 0x00AD:16, 0x016A:16,
0x014A:16, 0x00B0:16, 0x0105:16, 0x0113:16, 0x0123:16, 0x012B:16, 0x0129:16,
0x0137:16, 0x00B7:16, 0x013C:16, 0x0111:16, 0x0161:16, 0x0167:16, 0x017E:16,
0x2015:16, 0x016B:16, 0x014B:16, 0x0100:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x012E:16, 0x010C:16, 0x00C9:16, 0x0118:16,
0x00CB:16, 0x0116:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x00D0:16, 0x0145:16,
0x014C:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x0168:16, 0x00D8:16,
0x0172:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x00DE:16, 0x00DF:16,
0x0101:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x012F:16, 0x010D:16, 0x00E9:16, 0x0119:16, 0x00EB:16, 0x0117:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x00F0:16, 0x0146:16, 0x014D:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x0169:16, 0x00F8:16, 0x0173:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x00FE:16, 0x0138:16,
>>
/// Lookup table for ISO/IEC 8859 Part 11.
///
const part_11_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0E01:16, 0x0E02:16, 0x0E03:16, 0x0E04:16, 0x0E05:16, 0x0E06:16, 0x0E07:16,
0x0E08:16, 0x0E09:16, 0x0E0A:16, 0x0E0B:16, 0x0E0C:16, 0x0E0D:16, 0x0E0E:16,
0x0E0F:16, 0x0E10:16, 0x0E11:16, 0x0E12:16, 0x0E13:16, 0x0E14:16, 0x0E15:16,
0x0E16:16, 0x0E17:16, 0x0E18:16, 0x0E19:16, 0x0E1A:16, 0x0E1B:16, 0x0E1C:16,
0x0E1D:16, 0x0E1E:16, 0x0E1F:16, 0x0E20:16, 0x0E21:16, 0x0E22:16, 0x0E23:16,
0x0E24:16, 0x0E25:16, 0x0E26:16, 0x0E27:16, 0x0E28:16, 0x0E29:16, 0x0E2A:16,
0x0E2B:16, 0x0E2C:16, 0x0E2D:16, 0x0E2E:16, 0x0E2F:16, 0x0E30:16, 0x0E31:16,
0x0E32:16, 0x0E33:16, 0x0E34:16, 0x0E35:16, 0x0E36:16, 0x0E37:16, 0x0E38:16,
0x0E39:16, 0x0E3A:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0x0E3F:16,
0x0E40:16, 0x0E41:16, 0x0E42:16, 0x0E43:16, 0x0E44:16, 0x0E45:16, 0x0E46:16,
0x0E47:16, 0x0E48:16, 0x0E49:16, 0x0E4A:16, 0x0E4B:16, 0x0E4C:16, 0x0E4D:16,
0x0E4E:16, 0x0E4F:16, 0x0E50:16, 0x0E51:16, 0x0E52:16, 0x0E53:16, 0x0E54:16,
0x0E55:16, 0x0E56:16, 0x0E57:16, 0x0E58:16, 0x0E59:16, 0x0E5A:16, 0x0E5B:16,
0xFFFD:16, 0xFFFD:16, 0xFFFD:16, 0xFFFD:16,
>>
/// Lookup table for ISO/IEC 8859 Part 13.
///
const part_13_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x201D:16, 0x00A2:16, 0x00A3:16, 0x00A4:16, 0x201E:16, 0x00A6:16, 0x00A7:16,
0x00D8:16, 0x00A9:16, 0x0156:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00C6:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x201C:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x00F8:16, 0x00B9:16, 0x0157:16, 0x00BB:16, 0x00BC:16,
0x00BD:16, 0x00BE:16, 0x00E6:16, 0x0104:16, 0x012E:16, 0x0100:16, 0x0106:16,
0x00C4:16, 0x00C5:16, 0x0118:16, 0x0112:16, 0x010C:16, 0x00C9:16, 0x0179:16,
0x0116:16, 0x0122:16, 0x0136:16, 0x012A:16, 0x013B:16, 0x0160:16, 0x0143:16,
0x0145:16, 0x00D3:16, 0x014C:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x0172:16,
0x0141:16, 0x015A:16, 0x016A:16, 0x00DC:16, 0x017B:16, 0x017D:16, 0x00DF:16,
0x0105:16, 0x012F:16, 0x0101:16, 0x0107:16, 0x00E4:16, 0x00E5:16, 0x0119:16,
0x0113:16, 0x010D:16, 0x00E9:16, 0x017A:16, 0x0117:16, 0x0123:16, 0x0137:16,
0x012B:16, 0x013C:16, 0x0161:16, 0x0144:16, 0x0146:16, 0x00F3:16, 0x014D:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x0173:16, 0x0142:16, 0x015B:16, 0x016B:16,
0x00FC:16, 0x017C:16, 0x017E:16, 0x2019:16,
>>
/// Lookup table for ISO/IEC 8859 Part 14.
///
const part_14_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x1E02:16, 0x1E03:16, 0x00A3:16, 0x010A:16, 0x010B:16, 0x1E0A:16, 0x00A7:16,
0x1E80:16, 0x00A9:16, 0x1E82:16, 0x1E0B:16, 0x1EF2:16, 0x00AD:16, 0x00AE:16,
0x0178:16, 0x1E1E:16, 0x1E1F:16, 0x0120:16, 0x0121:16, 0x1E40:16, 0x1E41:16,
0x00B6:16, 0x1E56:16, 0x1E81:16, 0x1E57:16, 0x1E83:16, 0x1E60:16, 0x1EF3:16,
0x1E84:16, 0x1E85:16, 0x1E61:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x0174:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x1E6A:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x0176:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x0175:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x1E6B:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x0177:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 15.
///
const part_15_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x00A1:16, 0x00A2:16, 0x00A3:16, 0x20AC:16, 0x00A5:16, 0x0160:16, 0x00A7:16,
0x0161:16, 0x00A9:16, 0x00AA:16, 0x00AB:16, 0x00AC:16, 0x00AD:16, 0x00AE:16,
0x00AF:16, 0x00B0:16, 0x00B1:16, 0x00B2:16, 0x00B3:16, 0x017D:16, 0x00B5:16,
0x00B6:16, 0x00B7:16, 0x017E:16, 0x00B9:16, 0x00BA:16, 0x00BB:16, 0x0152:16,
0x0153:16, 0x0178:16, 0x00BF:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x00C3:16,
0x00C4:16, 0x00C5:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x00D0:16, 0x00D1:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x00D5:16, 0x00D6:16, 0x00D7:16, 0x00D8:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x00DD:16, 0x00DE:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x00E3:16, 0x00E4:16, 0x00E5:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x00F0:16, 0x00F1:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x00F5:16, 0x00F6:16, 0x00F7:16, 0x00F8:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x00FD:16, 0x00FE:16, 0x00FF:16,
>>
/// Lookup table for ISO/IEC 8859 Part 16.
///
const part_16_lut = <<
0x0000:16, 0x0001:16, 0x0002:16, 0x0003:16, 0x0004:16, 0x0005:16, 0x0006:16,
0x0007:16, 0x0008:16, 0x0009:16, 0x000A:16, 0x000B:16, 0x000C:16, 0x000D:16,
0x000E:16, 0x000F:16, 0x0010:16, 0x0011:16, 0x0012:16, 0x0013:16, 0x0014:16,
0x0015:16, 0x0016:16, 0x0017:16, 0x0018:16, 0x0019:16, 0x001A:16, 0x001B:16,
0x001C:16, 0x001D:16, 0x001E:16, 0x001F:16, 0x0020:16, 0x0021:16, 0x0022:16,
0x0023:16, 0x0024:16, 0x0025:16, 0x0026:16, 0x0027:16, 0x0028:16, 0x0029:16,
0x002A:16, 0x002B:16, 0x002C:16, 0x002D:16, 0x002E:16, 0x002F:16, 0x0030:16,
0x0031:16, 0x0032:16, 0x0033:16, 0x0034:16, 0x0035:16, 0x0036:16, 0x0037:16,
0x0038:16, 0x0039:16, 0x003A:16, 0x003B:16, 0x003C:16, 0x003D:16, 0x003E:16,
0x003F:16, 0x0040:16, 0x0041:16, 0x0042:16, 0x0043:16, 0x0044:16, 0x0045:16,
0x0046:16, 0x0047:16, 0x0048:16, 0x0049:16, 0x004A:16, 0x004B:16, 0x004C:16,
0x004D:16, 0x004E:16, 0x004F:16, 0x0050:16, 0x0051:16, 0x0052:16, 0x0053:16,
0x0054:16, 0x0055:16, 0x0056:16, 0x0057:16, 0x0058:16, 0x0059:16, 0x005A:16,
0x005B:16, 0x005C:16, 0x005D:16, 0x005E:16, 0x005F:16, 0x0060:16, 0x0061:16,
0x0062:16, 0x0063:16, 0x0064:16, 0x0065:16, 0x0066:16, 0x0067:16, 0x0068:16,
0x0069:16, 0x006A:16, 0x006B:16, 0x006C:16, 0x006D:16, 0x006E:16, 0x006F:16,
0x0070:16, 0x0071:16, 0x0072:16, 0x0073:16, 0x0074:16, 0x0075:16, 0x0076:16,
0x0077:16, 0x0078:16, 0x0079:16, 0x007A:16, 0x007B:16, 0x007C:16, 0x007D:16,
0x007E:16, 0x007F:16, 0x0080:16, 0x0081:16, 0x0082:16, 0x0083:16, 0x0084:16,
0x0085:16, 0x0086:16, 0x0087:16, 0x0088:16, 0x0089:16, 0x008A:16, 0x008B:16,
0x008C:16, 0x008D:16, 0x008E:16, 0x008F:16, 0x0090:16, 0x0091:16, 0x0092:16,
0x0093:16, 0x0094:16, 0x0095:16, 0x0096:16, 0x0097:16, 0x0098:16, 0x0099:16,
0x009A:16, 0x009B:16, 0x009C:16, 0x009D:16, 0x009E:16, 0x009F:16, 0x00A0:16,
0x0104:16, 0x0105:16, 0x0141:16, 0x20AC:16, 0x201E:16, 0x0160:16, 0x00A7:16,
0x0161:16, 0x00A9:16, 0x0218:16, 0x00AB:16, 0x0179:16, 0x00AD:16, 0x017A:16,
0x017B:16, 0x00B0:16, 0x00B1:16, 0x010C:16, 0x0142:16, 0x017D:16, 0x201D:16,
0x00B6:16, 0x00B7:16, 0x017E:16, 0x010D:16, 0x0219:16, 0x00BB:16, 0x0152:16,
0x0153:16, 0x0178:16, 0x017C:16, 0x00C0:16, 0x00C1:16, 0x00C2:16, 0x0102:16,
0x00C4:16, 0x0106:16, 0x00C6:16, 0x00C7:16, 0x00C8:16, 0x00C9:16, 0x00CA:16,
0x00CB:16, 0x00CC:16, 0x00CD:16, 0x00CE:16, 0x00CF:16, 0x0110:16, 0x0143:16,
0x00D2:16, 0x00D3:16, 0x00D4:16, 0x0150:16, 0x00D6:16, 0x015A:16, 0x0170:16,
0x00D9:16, 0x00DA:16, 0x00DB:16, 0x00DC:16, 0x0118:16, 0x021A:16, 0x00DF:16,
0x00E0:16, 0x00E1:16, 0x00E2:16, 0x0103:16, 0x00E4:16, 0x0107:16, 0x00E6:16,
0x00E7:16, 0x00E8:16, 0x00E9:16, 0x00EA:16, 0x00EB:16, 0x00EC:16, 0x00ED:16,
0x00EE:16, 0x00EF:16, 0x0111:16, 0x0144:16, 0x00F2:16, 0x00F3:16, 0x00F4:16,
0x0151:16, 0x00F6:16, 0x015B:16, 0x0171:16, 0x00F9:16, 0x00FA:16, 0x00FB:16,
0x00FC:16, 0x0119:16, 0x021B:16, 0x00FF:16,
>>