/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
+#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
#include "common.h"
#ifdef _MSC_VER
#include <malloc.h>
}
/* Code 2 of 5 Standard (Code 2 of 5 Matrix) */
-INTERNAL int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
+int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number;
char dest[512]; /* 6 + 80 * 6 + 6 + 1 ~ 512*/
}
/* Code 2 of 5 Industrial */
-INTERNAL int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
+int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number;
char dest[512]; /* 6 + 40 * 10 + 6 + 1 */
}
/* Code 2 of 5 IATA */
-INTERNAL int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
+int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number;
char dest[512]; /* 4 + 45 * 10 + 3 + 1 */
}
/* Code 2 of 5 Data Logic */
-INTERNAL int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
+int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number;
char dest[512]; /* 4 + 80 * 6 + 3 + 1 */
}
/* Code 2 of 5 Interleaved */
-INTERNAL int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
+int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, error_number;
char bars[7], spaces[7], mixed[14], dest[1000];
return error_number;
}
- ustrcpy(temp, "");
+ ustrcpy(temp, (unsigned char *) "");
/* Input must be an even number of characters for Interlaced 2 of 5 to work:
if an odd number of characters has been entered then add a leading zero */
if (length & 1) {
- ustrcpy(temp, "0");
+ ustrcpy(temp, (unsigned char *) "0");
length++;
}
- ustrcat(temp, source);
+ strcat((char*) temp, (char*) source);
/* start character */
strcpy(dest, "1111");
- for (i = 0; i < (int) length; i += 2) {
+ for (i = 0; i < length; i += 2) {
int k = 0;
/* look up the bars and the spaces and put them in two strings */
strcpy(bars, "");
}
/* Interleaved 2-of-5 (ITF) */
-INTERNAL int itf14(struct zint_symbol *symbol, unsigned char source[], int length) {
+int itf14(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number, zeroes;
unsigned int count;
char localstr[16];
for (i = 0; i < zeroes; i++) {
localstr[i] = '0';
}
- ustrcpy(localstr + zeroes, source);
+ strcpy(localstr + zeroes, (char *) source);
/* Calculate the check digit - the same method used for EAN-13 */
for (i = 12; i >= 0; i--) {
localstr[13] = check_digit(count);
localstr[14] = '\0';
error_number = interleaved_two_of_five(symbol, (unsigned char *) localstr, strlen(localstr));
- ustrcpy(symbol->text, localstr);
+ ustrcpy(symbol->text, (unsigned char*) localstr);
return error_number;
}
/* Deutshe Post Leitcode */
-INTERNAL int dpleit(struct zint_symbol *symbol, unsigned char source[], int length) {
+int dpleit(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number;
unsigned int count;
char localstr[16];
zeroes = 13 - length;
for (i = 0; i < zeroes; i++)
localstr[i] = '0';
- ustrcpy(localstr + zeroes, source);
+ strcpy(localstr + zeroes, (char *) source);
for (i = 12; i >= 0; i--) {
count += 4 * ctoi(localstr[i]);
localstr[13] = check_digit(count);
localstr[14] = '\0';
error_number = interleaved_two_of_five(symbol, (unsigned char *) localstr, strlen(localstr));
- ustrcpy(symbol->text, localstr);
+ ustrcpy(symbol->text, (unsigned char*) localstr);
return error_number;
}
/* Deutsche Post Identcode */
-INTERNAL int dpident(struct zint_symbol *symbol, unsigned char source[], int length) {
+int dpident(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number, zeroes;
unsigned int count;
char localstr[16];
zeroes = 11 - length;
for (i = 0; i < zeroes; i++)
localstr[i] = '0';
- ustrcpy(localstr + zeroes, source);
+ strcpy(localstr + zeroes, (char *) source);
for (i = 10; i >= 0; i--) {
count += 4 * ctoi(localstr[i]);
localstr[11] = check_digit(count);
localstr[12] = '\0';
error_number = interleaved_two_of_five(symbol, (unsigned char *) localstr, strlen(localstr));
- ustrcpy(symbol->text, localstr);
+ ustrcpy(symbol->text, (unsigned char*) localstr);
return error_number;
}
+
+
project(zint)
-set(zint_COMMON_SRCS common.c library.c large.c reedsol.c gs1.c eci.c general_field.c sjis.c gb2312.c gb18030.c)
+set(zint_COMMON_SRCS common.c library.c render.c large.c reedsol.c gs1.c eci.c general_field.c)
set(zint_ONEDIM_SRCS code.c code128.c 2of5.c upcean.c telepen.c medical.c plessey.c rss.c)
set(zint_POSTAL_SRCS postal.c auspost.c imail.c mailmark.c)
set(zint_TWODIM_SRCS code16k.c codablock.c dmatrix.c pdf417.c qr.c maxicode.c composite.c aztec.c code49.c code1.c gridmtx.c hanxin.c dotcode.c ultra.c)
-set(zint_OUTPUT_SRCS vector.c ps.c svg.c emf.c bmp.c pcx.c gif.c png.c tif.c raster.c output.c)
+set(zint_OUTPUT_SRCS vector.c render.c ps.c svg.c emf.c bmp.c pcx.c gif.c png.c tif.c raster.c)
set(zint_SRCS ${zint_OUTPUT_SRCS} ${zint_COMMON_SRCS} ${zint_ONEDIM_SRCS} ${zint_POSTAL_SRCS} ${zint_TWODIM_SRCS})
add_library(zint SHARED ${zint_SRCS})
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#define GDSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz #"
}
/* Adds Reed-Solomon error correction to auspost */
-static void rs_error(char data_pattern[]) {
+void rs_error(char data_pattern[]) {
size_t reader, triple_writer = 0;
char triple[31];
unsigned char result[5];
}
/* Handles Australia Posts's 4 State Codes */
-INTERNAL int australia_post(struct zint_symbol *symbol, unsigned char source[], int length) {
+int australia_post(struct zint_symbol *symbol, unsigned char source[], int length) {
/* Customer Standard Barcode, Barcode 2 or Barcode 3 system determined automatically
(i.e. the FCC doesn't need to be specified by the user) dependent
on the length of the input string */
char fcc[3] = {0, 0, 0}, dpid[10];
char localstr[30];
- /* Check input immediately to catch nuls */
- error_number = is_sane(GDSET, source, length);
- if (error_number == ZINT_ERROR_INVALID_DATA) {
- strcpy(symbol->errtxt, "404: Invalid characters in data");
- return error_number;
- }
+ error_number = 0;
strcpy(localstr, "");
/* Do all of the length checking first to avoid stack smashing */
strcat(localstr, (char*) source);
h = strlen(localstr);
+ error_number = is_sane(GDSET, (unsigned char *) localstr, h);
+ if (error_number == ZINT_ERROR_INVALID_DATA) {
+ strcpy(symbol->errtxt, "404: Invalid characters in data");
+ return error_number;
+ }
+
/* Verifiy that the first 8 characters are numbers */
memcpy(dpid, localstr, 8);
dpid[8] = '\0';
return error_number;
}
+
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
#include "aztec.h"
#include "reedsol.h"
-#define AZTEC_MAX_CAPACITY 19968 /* ISO/IEC 24778:2008 5.3 Table 1 Maximum Symbol Bit Capacity */
-#define AZTEC_BIN_CAPACITY 17940 /* Above less 169 * 12 = 2028 bits (169 = 10% of 1664 + 3) */
-
static int AztecMap[22801];
static int count_doubles(const unsigned char source[], const int posn, const size_t src_len) {
cond = 0;
}
i += 2;
- } while ((i < (int) src_len) && cond);
+ } while ((i < src_len) && cond);
return c;
}
do {
i++;
- } while ((i < (int) src_len) && (encode_mode[i] == encode_mode[posn]));
- if (i >= (int) src_len) {
+ } while ((i < src_len) && (encode_mode[i] == encode_mode[posn]));
+ if (i >= src_len) {
return 'E';
} else {
return encode_mode[i];
}
}
-static int az_bin_append(const int arg, const int length, char *binary) {
- size_t posn = strlen(binary);
-
- if (posn + length > AZTEC_BIN_CAPACITY) {
- return 0; /* Fail */
- }
- bin_append_posn(arg, length, binary, posn);
-
- binary[posn + length] = '\0';
-
- return 1; /* Success */
-}
-
static int aztec_text_process(const unsigned char source[], const size_t src_len, char binary_string[], const int gs1, const int eci, const int debug) {
+ char *encode_mode;
int i, j;
char current_mode;
int count;
char next_mode;
+ unsigned char *reduced_source;
+ char *reduced_encode_mode;
int reduced_length;
int byte_mode = 0;
-#ifndef _MSC_VER
- char encode_mode[src_len + 1];
- unsigned char reduced_source[src_len + 1];
- char reduced_encode_mode[src_len + 1];
-#else
- char *encode_mode = (char *) _alloca(src_len + 1);
- unsigned char *reduced_source = (unsigned char *) _alloca(src_len + 1);
- char *reduced_encode_mode = (char *) _alloca(src_len + 1);
-#endif
+ encode_mode=(char*)malloc(src_len + 1);
+ reduced_source=(unsigned char*)malloc(src_len + 1);
+ reduced_encode_mode=(char*)malloc(src_len + 1);
+
+ if ((!encode_mode) ||
+ (!reduced_source) ||
+ (!reduced_encode_mode)) {
+ free(encode_mode);
+ free(reduced_source);
+ free(reduced_encode_mode);
+ return -1;
+ }
- for (i = 0; i < (int) src_len; i++) {
+ for (i = 0; i < src_len; i++) {
if (source[i] >= 128) {
encode_mode[i] = 'B';
} else {
// Deal first with letter combinations which can be combined to one codeword
// Combinations are (CR LF) (. SP) (, SP) (: SP) in Punct mode
current_mode = 'U';
- for (i = 0; i < (int) src_len - 1; i++) {
+ for (i = 0; i < src_len - 1; i++) {
// Combination (CR LF) should always be in Punct mode
if ((source[i] == 13) && (source[i + 1] == 10)) {
encode_mode[i] = 'P';
if (debug) {
printf("First Pass:\n");
- for (i = 0; i < (int) src_len; i++) {
+ for (i = 0; i < src_len; i++) {
printf("%c", encode_mode[i]);
}
printf("\n");
// Reduce two letter combinations to one codeword marked as [abcd] in Punct mode
i = 0;
j = 0;
- while (i < (int) src_len) {
+ do {
if ((source[i] == 13) && (source[i + 1] == 10)) { // CR LF
reduced_source[j] = 'a';
reduced_encode_mode[j] = encode_mode[i];
i++;
}
j++;
- }
+ } while (i < src_len);
reduced_length = j;
if (reduced_encode_mode[i] != current_mode) {
- for (count = 0; ((i + count) < reduced_length) && (reduced_encode_mode[i + count] == reduced_encode_mode[i]); count++);
+ for (count = 0; ((i + count) <= reduced_length) && (reduced_encode_mode[i + count] == reduced_encode_mode[i]); count++);
next_mode = get_next_mode(reduced_encode_mode, reduced_length, i);
if (reduced_encode_mode[i] == 'P') {
}
current_mode = 'U';
- for (i = 0; i < reduced_length; i++) {
+ for(i = 0; i < reduced_length; i++) {
if (reduced_encode_mode[i] != 'B') {
byte_mode = 0;
if (current_mode == 'U') {
switch (reduced_encode_mode[i]) {
case 'L':
- if (!az_bin_append(28, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // L/L
+ bin_append(28, 5, binary_string); // L/L
break;
case 'M':
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
+ bin_append(29, 5, binary_string); // M/L
break;
case 'P':
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/L
+ bin_append(29, 5, binary_string); // M/L
+ bin_append(30, 5, binary_string); // P/L
break;
case 'p':
- if (!az_bin_append(0, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/S
+ bin_append(0, 5, binary_string); // P/S
break;
case 'D':
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // D/L
+ bin_append(30, 5, binary_string); // D/L
break;
case 'B':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // B/S
+ bin_append(31, 5, binary_string); // B/S
break;
}
}
if (current_mode == 'L') {
switch (reduced_encode_mode[i]) {
case 'U':
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // D/L
- if (!az_bin_append(14, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
+ bin_append(30, 5, binary_string); // D/L
+ bin_append(14, 4, binary_string); // U/L
break;
case 'u':
- if (!az_bin_append(28, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/S
+ bin_append(28, 5, binary_string); // U/S
break;
case 'M':
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
+ bin_append(29, 5, binary_string); // M/L
break;
case 'P':
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/L
+ bin_append(29, 5, binary_string); // M/L
+ bin_append(30, 5, binary_string); // P/L
break;
case 'p':
- if (!az_bin_append(0, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/S
+ bin_append(0, 5, binary_string); // P/S
break;
case 'D':
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // D/L
+ bin_append(30, 5, binary_string); // D/L
break;
case 'B':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // B/S
+ bin_append(31, 5, binary_string); // B/S
break;
}
}
if (current_mode == 'M') {
switch (reduced_encode_mode[i]) {
case 'U':
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
+ bin_append(29, 5, binary_string); // U/L
break;
case 'L':
- if (!az_bin_append(28, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // L/L
+ bin_append(28, 5, binary_string); // L/L
break;
case 'P':
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/L
+ bin_append(30, 5, binary_string); // P/L
break;
case 'p':
- if (!az_bin_append(0, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/S
+ bin_append(0, 5, binary_string); // P/S
break;
case 'D':
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // D/L
+ bin_append(29, 5, binary_string); // U/L
+ bin_append(30, 5, binary_string); // D/L
break;
case 'B':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // B/S
+ bin_append(31, 5, binary_string); // B/S
break;
}
}
if (current_mode == 'P') {
switch (reduced_encode_mode[i]) {
case 'U':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
+ bin_append(31, 5, binary_string); // U/L
break;
case 'L':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(28, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // L/L
+ bin_append(31, 5, binary_string); // U/L
+ bin_append(28, 5, binary_string); // L/L
break;
case 'M':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
+ bin_append(31, 5, binary_string); // U/L
+ bin_append(29, 5, binary_string); // M/L
break;
case 'D':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // D/L
+ bin_append(31, 5, binary_string); // U/L
+ bin_append(30, 5, binary_string); // D/L
break;
case 'B':
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
+ bin_append(31, 5, binary_string); // U/L
current_mode = 'U';
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // B/S
+ bin_append(31, 5, binary_string); // B/S
break;
}
}
if (current_mode == 'D') {
switch (reduced_encode_mode[i]) {
case 'U':
- if (!az_bin_append(14, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
+ bin_append(14, 4, binary_string); // U/L
break;
case 'u':
- if (!az_bin_append(15, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/S
+ bin_append(15, 4, binary_string); // U/S
break;
case 'L':
- if (!az_bin_append(14, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(28, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // L/L
+ bin_append(14, 4, binary_string); // U/L
+ bin_append(28, 5, binary_string); // L/L
break;
case 'M':
- if (!az_bin_append(14, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
+ bin_append(14, 4, binary_string); // U/L
+ bin_append(29, 5, binary_string); // M/L
break;
case 'P':
- if (!az_bin_append(14, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
- if (!az_bin_append(29, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // M/L
- if (!az_bin_append(30, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // P/L
+ bin_append(14, 4, binary_string); // U/L
+ bin_append(29, 5, binary_string); // M/L
+ bin_append(30, 5, binary_string); // P/L
break;
case 'p':
- if (!az_bin_append(0, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // P/S
+ bin_append(0, 4, binary_string); // P/S
break;
case 'B':
- if (!az_bin_append(14, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // U/L
+ bin_append(14, 4, binary_string); // U/L
current_mode = 'U';
- if (!az_bin_append(31, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // B/S
+ bin_append(31, 5, binary_string); // B/S
break;
}
}
if (count > 31) {
/* Put 00000 followed by 11-bit number of bytes less 31 */
- if (!az_bin_append(0, 5, binary_string)) return ZINT_ERROR_TOO_LONG;
- if (!az_bin_append(count - 31, 11, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(0, 5, binary_string);
+ bin_append(count - 31, 11, binary_string);
} else {
/* Put 5-bit number of bytes */
- if (!az_bin_append(count, 5, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(count, 5, binary_string);
}
byte_mode = 1;
}
if ((reduced_encode_mode[i] == 'U') || (reduced_encode_mode[i] == 'u')) {
if (reduced_source[i] == ' ') {
- if (!az_bin_append(1, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // SP
+ bin_append(1, 5, binary_string); // SP
} else {
- if (!az_bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string);
}
}
if (reduced_encode_mode[i] == 'L') {
if (reduced_source[i] == ' ') {
- if (!az_bin_append(1, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // SP
+ bin_append(1, 5, binary_string); // SP
} else {
- if (!az_bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string);
}
}
if (reduced_encode_mode[i] == 'M') {
if (reduced_source[i] == ' ') {
- if (!az_bin_append(1, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // SP
+ bin_append(1, 5, binary_string); // SP
} else if (reduced_source[i] == 13) {
- if (!az_bin_append(14, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // CR
+ bin_append(14, 5, binary_string); // CR
} else {
- if (!az_bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string);
}
}
if ((reduced_encode_mode[i] == 'P') || (reduced_encode_mode[i] == 'p')) {
if (gs1 && (reduced_source[i] == '[')) {
- if (!az_bin_append(0, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // FLG(n)
- if (!az_bin_append(0, 3, binary_string)) return ZINT_ERROR_TOO_LONG; // FLG(0) = FNC1
+ bin_append(0, 5, binary_string); // FLG(0) = FNC1
} else if (reduced_source[i] == 13) {
- if (!az_bin_append(1, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // CR
+ bin_append(1, 5, binary_string); // CR
} else if (reduced_source[i] == 'a') {
- if (!az_bin_append(2, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // CR LF
+ bin_append(2, 5, binary_string); // CR LF
} else if (reduced_source[i] == 'b') {
- if (!az_bin_append(3, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // . SP
+ bin_append(3, 5, binary_string); // . SP
} else if (reduced_source[i] == 'c') {
- if (!az_bin_append(4, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // , SP
+ bin_append(4, 5, binary_string); // , SP
} else if (reduced_source[i] == 'd') {
- if (!az_bin_append(5, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // : SP
+ bin_append(5, 5, binary_string); // : SP
} else if (reduced_source[i] == ',') {
- if (!az_bin_append(17, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // Comma
+ bin_append(17, 5, binary_string); // Comma
} else if (reduced_source[i] == '.') {
- if (!az_bin_append(19, 5, binary_string)) return ZINT_ERROR_TOO_LONG; // Full stop
+ bin_append(19, 5, binary_string); // Full stop
} else {
- if (!az_bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(AztecSymbolChar[(int) reduced_source[i]], 5, binary_string);
}
}
if (reduced_encode_mode[i] == 'D') {
if (reduced_source[i] == ' ') {
- if (!az_bin_append(1, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // SP
+ bin_append(1, 4, binary_string); // SP
} else if (reduced_source[i] == ',') {
- if (!az_bin_append(12, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // Comma
+ bin_append(12, 4, binary_string); // Comma
} else if (reduced_source[i] == '.') {
- if (!az_bin_append(13, 4, binary_string)) return ZINT_ERROR_TOO_LONG; // Full stop
+ bin_append(13, 4, binary_string); // Full stop
} else {
- if (!az_bin_append(AztecSymbolChar[(int) reduced_source[i]], 4, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(AztecSymbolChar[(int) reduced_source[i]], 4, binary_string);
}
}
if (reduced_encode_mode[i] == 'B') {
- if (!az_bin_append(reduced_source[i], 8, binary_string)) return ZINT_ERROR_TOO_LONG;
+ bin_append(reduced_source[i], 8, binary_string);
}
}
printf("%s\n", binary_string);
}
+ free(encode_mode);
+ free(reduced_source);
+ free(reduced_encode_mode);
+
return 0;
}
AztecMap[(avoidReferenceGrid(76) * 151) + avoidReferenceGrid(77)] = 1;
}
-INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
int x, y, i, j, p, data_blocks, ecc_blocks, layers, total_bits;
- char binary_string[AZTEC_BIN_CAPACITY + 1], bit_pattern[20045], descriptor[42];
- char adjusted_string[AZTEC_MAX_CAPACITY + 1];
+ char binary_string[20000], bit_pattern[20045], descriptor[42];
+ char adjusted_string[20000];
unsigned char desc_data[4], desc_ecc[6];
int err_code, ecc_level, compact, data_length, data_maxsize, codeword_size, adjusted_length;
int remainder, padbits, count, gs1, adjustment_size;
- int debug = (symbol->debug & ZINT_DEBUG_PRINT), reader = 0;
+ int debug = symbol->debug, reader = 0;
int comp_loop = 4;
#ifdef _MSC_VER
unsigned int* ecc_part;
#endif
- memset(binary_string, 0, AZTEC_BIN_CAPACITY + 1);
- memset(adjusted_string, 0, AZTEC_MAX_CAPACITY + 1);
+ memset(binary_string, 0, 20000);
+ memset(adjusted_string, 0, 20000);
- if ((symbol->input_mode & 0x07) == GS1_MODE) {
+ if (symbol->input_mode == GS1_MODE) {
gs1 = 1;
} else {
gs1 = 0;
}
j = 0;
- count = 0;
- for (i = 0; i < data_length; i++) {
-
+ i = 0;
+ do {
if ((j + 1) % codeword_size == 0) {
- // Last bit of codeword
- /* 7.3.1.2 "whenever the first B-1 bits ... are all “0”s, then a dummy “1” is inserted..."
- * "Similarly a message codeword that starts with B-1 “1”s has a dummy “0” inserted..." */
+ /* Last bit of codeword */
+ int t, done = 0;
+ count = 0;
+
+ /* Discover how many '1's in current codeword */
+ for (t = 0; t < (codeword_size - 1); t++) {
+ if (binary_string[(i - (codeword_size - 1)) + t] == '1') count++;
+ }
if (count == (codeword_size - 1)) {
- // Codeword of B-1 '1's
adjusted_string[j] = '0';
j++;
+ done = 1;
}
if (count == 0) {
- // Codeword of B-1 '0's
adjusted_string[j] = '1';
j++;
+ done = 1;
}
- count = 0;
- } else if (binary_string[i] == '1') { /* Skip B so only counting B-1 */
- count++;
+ if (done == 0) {
+ adjusted_string[j] = binary_string[i];
+ j++;
+ i++;
+ }
}
-
adjusted_string[j] = binary_string[i];
j++;
- }
+ i++;
+ } while (i <= (data_length + 1));
adjusted_string[j] = '\0';
- adjusted_length = j;
+ adjusted_length = (int) strlen(adjusted_string);
adjustment_size = adjusted_length - data_length;
/* Add padding */
adjusted_string[adjusted_length - 1] = '0';
}
+/*
if (debug) {
printf("Codewords:\n");
for (i = 0; i < (adjusted_length / codeword_size); i++) {
for (j = 0; j < codeword_size; j++) {
printf("%c", adjusted_string[(i * codeword_size) + j]);
}
- printf(" ");
+ printf("\n");
}
- printf("\n");
}
+*/
} while (adjusted_length > data_maxsize);
/* This loop will only repeat on the rare occasions when the rule about not having all 1s or all 0s
}
j = 0;
- count = 0;
- for (i = 0; i < data_length; i++) {
-
+ i = 0;
+ do {
if ((j + 1) % codeword_size == 0) {
- // Last bit of codeword
+ /* Last bit of codeword */
+ int t, done = 0;
+ count = 0;
+
+ /* Discover how many '1's in current codeword */
+ for (t = 0; t < (codeword_size - 1); t++) {
+ if (binary_string[(i - (codeword_size - 1)) + t] == '1') count++;
+ }
if (count == (codeword_size - 1)) {
- // Codeword of B-1 '1's
adjusted_string[j] = '0';
j++;
+ done = 1;
}
if (count == 0) {
- // Codeword of B-1 '0's
adjusted_string[j] = '1';
j++;
+ done = 1;
}
- count = 0;
- } else if (binary_string[i] == '1') { /* Skip B so only counting B-1 */
- count++;
+ if (done == 0) {
+ adjusted_string[j] = binary_string[i];
+ j++;
+ i++;
+ }
}
-
adjusted_string[j] = binary_string[i];
j++;
- }
+ i++;
+ } while (i <= (data_length + 1));
adjusted_string[j] = '\0';
- adjusted_length = j;
+ adjusted_length = (int) strlen(adjusted_string);
remainder = adjusted_length % codeword_size;
for (j = 0; j < codeword_size; j++) {
printf("%c", adjusted_string[(i * codeword_size) + j]);
}
- printf(" ");
+ printf("\n");
}
- printf("\n");
}
}
}
/* Encodes Aztec runes as specified in ISO/IEC 24778:2008 Annex A */
-INTERNAL int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length) {
+int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length) {
int input_value, error_number, i, y, x;
char binary_string[28];
unsigned char data_codewords[3], ecc_codewords[6];
return 0;
}
+
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include "common.h"
#include "bmp.h" /* Bitmap header structure */
+#include <math.h>
#ifdef _MSC_VER
#include <io.h>
#include <fcntl.h>
#endif
-INTERNAL int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
+#define SSET "0123456789ABCDEF"
+
+int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int i, row, column;
- unsigned int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
+ int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int row_size;
- unsigned int data_offset, data_size, file_size;
+ unsigned int data_size;
unsigned char *bitmap_file_start, *bmp_posn;
- unsigned char *bitmap;
+ char *bitmap;
FILE *bmp_file;
bitmap_file_header_t file_header;
bitmap_info_header_t info_header;
- row_size = 4 * ((24 * symbol->bitmap_width + 31) / 32);
- data_size = symbol->bitmap_height * row_size;
- data_offset = sizeof (bitmap_file_header_t) + sizeof (bitmap_info_header_t);
- file_size = data_offset + data_size;
-
- bitmap_file_start = (unsigned char *) malloc(file_size);
- if (bitmap_file_start == NULL) {
- strcpy(symbol->errtxt, "602: Out of memory");
- return ZINT_ERROR_MEMORY;
- }
- memset(bitmap_file_start, 0, file_size); /* Not required but keeps padding bytes consistent */
+ if (symbol->bitmap != NULL)
+ free(symbol->bitmap);
- bitmap = bitmap_file_start + data_offset;
+ row_size = 4 * floor((24.0 * symbol->bitmap_width + 31) / 32);
+ bitmap = (char *) malloc(row_size * symbol->bitmap_height);
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
fggrn = (16 * ctoi(symbol->fgcolour[2])) + ctoi(symbol->fgcolour[3]);
bgblu = (16 * ctoi(symbol->bgcolour[4])) + ctoi(symbol->bgcolour[5]);
/* Pixel Plotting */
+ i = 0;
for (row = 0; row < symbol->bitmap_height; row++) {
for (column = 0; column < symbol->bitmap_width; column++) {
i = (3 * column) + (row * row_size);
switch (*(pixelbuf + (symbol->bitmap_width * (symbol->bitmap_height - row - 1)) + column)) {
- case 'W': // White
- bitmap[i] = 255;
- bitmap[i + 1] = 255;
- bitmap[i + 2] = 255;
- break;
- case 'C': // Cyan
- bitmap[i] = 255;
- bitmap[i + 1] = 255;
- bitmap[i + 2] = 0;
- break;
- case 'B': // Blue
- bitmap[i] = 255;
- bitmap[i + 1] = 0;
- bitmap[i + 2] = 0;
- break;
- case 'M': // Magenta
- bitmap[i] = 255;
- bitmap[i + 1] = 0;
- bitmap[i + 2] = 255;
- break;
- case 'R': // Red
- bitmap[i] = 0;
- bitmap[i + 1] = 0;
- bitmap[i + 2] = 255;
- break;
- case 'Y': // Yellow
- bitmap[i] = 0;
- bitmap[i + 1] = 255;
- bitmap[i + 2] = 255;
- break;
- case 'G': // Green
- bitmap[i] = 0;
- bitmap[i + 1] = 255;
- bitmap[i + 2] = 0;
- break;
- case 'K': // Black
- bitmap[i] = 0;
- bitmap[i + 1] = 0;
- bitmap[i + 2] = 0;
- break;
case '1':
bitmap[i] = fgblu;
bitmap[i + 1] = fggrn;
}
}
+ data_size = symbol->bitmap_height * row_size;
symbol->bitmap_byte_length = data_size;
file_header.header_field = 0x4d42; // "BM"
- file_header.file_size = file_size;
+ file_header.file_size = sizeof (bitmap_file_header_t) + sizeof (bitmap_info_header_t) + data_size;
file_header.reserved = 0;
- file_header.data_offset = data_offset;
+ file_header.data_offset = sizeof (bitmap_file_header_t) + sizeof (bitmap_info_header_t);
info_header.header_size = sizeof (bitmap_info_header_t);
info_header.width = symbol->bitmap_width;
info_header.colours = 0;
info_header.important_colours = 0;
+ bitmap_file_start = (unsigned char*) malloc(file_header.file_size);
+ memset(bitmap_file_start, 0xff, file_header.file_size);
+
bmp_posn = bitmap_file_start;
memcpy(bitmap_file_start, &file_header, sizeof (bitmap_file_header_t));
bmp_posn += sizeof (bitmap_file_header_t);
memcpy(bmp_posn, &info_header, sizeof (bitmap_info_header_t));
+ bmp_posn += sizeof (bitmap_info_header_t);
+ memcpy(bmp_posn, bitmap, data_size);
/* Open output file in binary mode */
if ((symbol->output_options & BARCODE_STDOUT) != 0) {
if (-1 == _setmode(_fileno(stdout), _O_BINARY)) {
strcpy(symbol->errtxt, "600: Can't open output file");
free(bitmap_file_start);
+ free(bitmap);
return ZINT_ERROR_FILE_ACCESS;
}
#endif
} else {
if (!(bmp_file = fopen(symbol->outfile, "wb"))) {
free(bitmap_file_start);
+ free(bitmap);
strcpy(symbol->errtxt, "601: Can't open output file");
return ZINT_ERROR_FILE_ACCESS;
}
fclose(bmp_file);
free(bitmap_file_start);
+ free(bitmap);
return 0;
}
+
+++ /dev/null
-/*
- libzint - the open source barcode library
- Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-
-/* Channel code precalculated values to avoid excessive looping */
-/* To generate uncomment CHANNEL_GENERATE_PRECALCS define and run "./test_channel -f generate -g" */
-/* Paste result below here */
-static channel_precalc channel_precalcs7[] = {
- { 115338, { 1, 3, 1, 1, 1, 1, 5, 1, }, { 1, 1, 1, 2, 1, 2, 3, 3, }, { 1, 7, 5, 5, 5, 5, 5, }, { 1, 7, 7, 7, 6, 6, 5, }, },
- { 230676, { 1, 1, 2, 2, 4, 1, 1, 2, }, { 1, 2, 1, 3, 2, 1, 3, 1, }, { 1, 7, 7, 6, 5, 2, 2, }, { 1, 7, 6, 6, 4, 3, 3, }, },
- { 346014, { 1, 2, 3, 1, 1, 1, 3, 2, }, { 1, 2, 2, 1, 1, 3, 1, 3, }, { 1, 7, 6, 4, 4, 4, 4, }, { 1, 7, 6, 5, 5, 5, 3, }, },
- { 461352, { 1, 2, 1, 1, 1, 2, 2, 4, }, { 1, 3, 1, 1, 3, 2, 2, 1, }, { 1, 7, 6, 6, 6, 6, 5, }, { 1, 7, 5, 5, 5, 3, 2, }, },
-};
-static channel_precalc channel_precalcs8[] = {
- { 119121, { 2, 1, 3, 2, 1, 3, 2, 1, }, { 1, 1, 1, 4, 3, 2, 1, 2, }, { 8, 7, 7, 5, 4, 4, 2, }, { 8, 8, 8, 8, 5, 3, 2, }, },
- { 238242, { 2, 1, 1, 2, 2, 2, 1, 4, }, { 1, 1, 3, 1, 1, 2, 4, 2, }, { 8, 7, 7, 7, 6, 5, 4, }, { 8, 8, 8, 6, 6, 6, 5, }, },
- { 357363, { 2, 2, 1, 4, 1, 1, 1, 3, }, { 1, 1, 1, 1, 3, 2, 5, 1, }, { 8, 7, 6, 6, 3, 3, 3, }, { 8, 8, 8, 8, 8, 6, 5, }, },
- { 476484, { 2, 2, 1, 1, 3, 2, 3, 1, }, { 1, 1, 3, 1, 2, 2, 3, 2, }, { 8, 7, 6, 6, 6, 4, 3, }, { 8, 8, 8, 6, 6, 5, 4, }, },
- { 595605, { 2, 3, 3, 2, 1, 1, 1, 2, }, { 1, 1, 2, 1, 1, 1, 5, 3, }, { 8, 7, 5, 3, 2, 2, 2, }, { 8, 8, 8, 7, 7, 7, 7, }, },
- { 714726, { 2, 1, 1, 6, 1, 1, 2, 1, }, { 1, 2, 1, 3, 1, 4, 1, 2, }, { 8, 7, 7, 7, 2, 2, 2, }, { 8, 8, 7, 7, 5, 5, 2, }, },
- { 833847, { 2, 1, 1, 3, 1, 3, 3, 1, }, { 1, 2, 3, 1, 1, 3, 2, 2, }, { 8, 7, 7, 7, 5, 5, 3, }, { 8, 8, 7, 5, 5, 5, 3, }, },
- { 952968, { 2, 2, 2, 3, 2, 1, 2, 1, }, { 1, 2, 2, 1, 2, 2, 2, 3, }, { 8, 7, 6, 5, 3, 2, 2, }, { 8, 8, 7, 6, 6, 5, 4, }, },
- { 1072089, { 2, 5, 1, 1, 2, 2, 1, 1, }, { 1, 2, 1, 3, 1, 3, 3, 1, }, { 8, 7, 3, 3, 3, 2, 1, }, { 8, 8, 7, 7, 5, 5, 3, }, },
- { 1191210, { 2, 2, 1, 2, 1, 1, 3, 3, }, { 1, 3, 1, 1, 5, 1, 1, 2, }, { 8, 7, 6, 6, 5, 5, 5, }, { 8, 8, 6, 6, 6, 2, 2, }, },
- { 1310331, { 2, 1, 2, 1, 2, 3, 2, 2, }, { 1, 4, 1, 3, 1, 1, 2, 2, }, { 8, 7, 7, 6, 6, 5, 3, }, { 8, 8, 5, 5, 3, 3, 3, }, },
- { 1429452, { 2, 2, 1, 2, 2, 3, 2, 1, }, { 1, 5, 3, 1, 2, 1, 1, 1, }, { 8, 7, 6, 6, 5, 4, 2, }, { 8, 8, 4, 2, 2, 1, 1, }, },
- { 1548573, { 3, 1, 1, 2, 5, 1, 1, 1, }, { 1, 1, 2, 2, 1, 2, 5, 1, }, { 8, 6, 6, 6, 5, 1, 1, }, { 8, 8, 8, 7, 6, 6, 5, }, },
- { 1667694, { 3, 2, 2, 1, 1, 3, 2, 1, }, { 1, 1, 1, 1, 2, 4, 3, 2, }, { 8, 6, 5, 4, 4, 4, 2, }, { 8, 8, 8, 8, 8, 7, 4, }, },
- { 1786815, { 3, 4, 2, 1, 2, 1, 1, 1, }, { 1, 1, 2, 1, 1, 2, 1, 6, }, { 8, 6, 3, 2, 2, 1, 1, }, { 8, 8, 8, 7, 7, 7, 6, }, },
- { 1905936, { 3, 2, 1, 3, 1, 3, 1, 1, }, { 1, 2, 1, 1, 1, 4, 2, 3, }, { 8, 6, 5, 5, 3, 3, 1, }, { 8, 8, 7, 7, 7, 7, 4, }, },
- { 2025057, { 3, 1, 2, 2, 1, 1, 4, 1, }, { 1, 3, 2, 1, 1, 1, 5, 1, }, { 8, 6, 6, 5, 4, 4, 4, }, { 8, 8, 6, 5, 5, 5, 5, }, },
- { 2144178, { 3, 1, 2, 1, 2, 2, 2, 2, }, { 1, 5, 1, 1, 4, 1, 1, 1, }, { 8, 6, 6, 5, 5, 4, 3, }, { 8, 8, 4, 4, 4, 1, 1, }, },
- { 2263299, { 4, 2, 1, 2, 1, 1, 1, 3, }, { 1, 1, 1, 1, 3, 3, 3, 2, }, { 8, 5, 4, 4, 3, 3, 3, }, { 8, 8, 8, 8, 8, 6, 4, }, },
- { 2382420, { 4, 2, 1, 1, 1, 1, 4, 1, }, { 1, 2, 2, 2, 2, 2, 2, 2, }, { 8, 5, 4, 4, 4, 4, 4, }, { 8, 8, 7, 6, 5, 4, 3, }, },
- { 2501541, { 5, 1, 1, 2, 2, 1, 1, 2, }, { 1, 1, 2, 3, 3, 1, 1, 3, }, { 8, 4, 4, 4, 3, 2, 2, }, { 8, 8, 8, 7, 5, 3, 3, }, },
- { 2620662, { 6, 1, 1, 1, 2, 1, 1, 2, }, { 1, 2, 4, 1, 2, 3, 1, 1, }, { 8, 3, 3, 3, 3, 2, 2, }, { 8, 8, 7, 4, 4, 3, 1, }, },
- { 2739783, { 1, 1, 1, 1, 3, 3, 4, 1, }, { 2, 1, 2, 1, 6, 1, 1, 1, }, { 8, 8, 8, 8, 8, 6, 4, }, { 8, 7, 7, 6, 6, 1, 1, }, },
- { 2858904, { 1, 1, 2, 3, 3, 1, 3, 1, }, { 2, 1, 3, 1, 3, 1, 2, 2, }, { 8, 8, 8, 7, 5, 3, 3, }, { 8, 7, 7, 5, 5, 3, 3, }, },
- { 2978025, { 1, 2, 2, 4, 1, 2, 1, 2, }, { 2, 1, 1, 1, 1, 3, 4, 2, }, { 8, 8, 7, 6, 3, 3, 2, }, { 8, 7, 7, 7, 7, 7, 5, }, },
- { 3097146, { 1, 2, 2, 1, 3, 3, 2, 1, }, { 2, 1, 3, 3, 2, 2, 1, 1, }, { 8, 8, 7, 6, 6, 4, 2, }, { 8, 7, 7, 5, 3, 2, 1, }, },
- { 3216267, { 1, 3, 1, 1, 1, 3, 1, 4, }, { 2, 1, 3, 2, 3, 2, 1, 1, }, { 8, 8, 6, 6, 6, 6, 4, }, { 8, 7, 7, 5, 4, 2, 1, }, },
- { 3335388, { 1, 1, 1, 4, 4, 1, 2, 1, }, { 2, 2, 1, 1, 1, 1, 3, 4, }, { 8, 8, 8, 8, 5, 2, 2, }, { 8, 7, 6, 6, 6, 6, 6, }, },
- { 3454509, { 1, 1, 2, 4, 3, 1, 2, 1, }, { 2, 2, 2, 5, 1, 1, 1, 1, }, { 8, 8, 8, 7, 4, 2, 2, }, { 8, 7, 6, 5, 1, 1, 1, }, },
- { 3573630, { 1, 2, 1, 3, 1, 2, 3, 2, }, { 2, 2, 2, 1, 1, 4, 2, 1, }, { 8, 8, 7, 7, 5, 5, 4, }, { 8, 7, 6, 5, 5, 5, 2, }, },
- { 3692751, { 1, 4, 2, 3, 2, 1, 1, 1, }, { 2, 2, 1, 1, 2, 1, 2, 4, }, { 8, 8, 5, 4, 2, 1, 1, }, { 8, 7, 6, 6, 6, 5, 5, }, },
- { 3811872, { 1, 1, 2, 1, 3, 5, 1, 1, }, { 2, 3, 3, 2, 2, 1, 1, 1, }, { 8, 8, 8, 7, 7, 5, 1, }, { 8, 7, 5, 3, 2, 1, 1, }, },
- { 3930993, { 1, 1, 1, 1, 6, 2, 2, 1, }, { 2, 4, 1, 2, 1, 3, 1, 1, }, { 8, 8, 8, 8, 8, 3, 2, }, { 8, 7, 4, 4, 3, 3, 1, }, },
- { 4050114, { 1, 3, 3, 2, 2, 1, 2, 1, }, { 2, 6, 2, 1, 1, 1, 1, 1, }, { 8, 8, 6, 4, 3, 2, 2, }, { 8, 7, 2, 1, 1, 1, 1, }, },
- { 4169235, { 2, 1, 2, 2, 4, 2, 1, 1, }, { 2, 1, 2, 1, 1, 1, 4, 3, }, { 8, 7, 7, 6, 5, 2, 1, }, { 8, 7, 7, 6, 6, 6, 6, }, },
- { 4288356, { 2, 2, 2, 1, 1, 3, 3, 1, }, { 2, 1, 1, 4, 2, 1, 1, 3, }, { 8, 7, 6, 5, 5, 5, 3, }, { 8, 7, 7, 7, 4, 3, 3, }, },
- { 4407477, { 2, 3, 3, 1, 2, 1, 1, 2, }, { 2, 1, 3, 2, 4, 1, 1, 1, }, { 8, 7, 5, 3, 3, 2, 2, }, { 8, 7, 7, 5, 4, 1, 1, }, },
- { 4526598, { 2, 1, 4, 1, 4, 1, 1, 1, }, { 2, 2, 2, 1, 2, 3, 1, 2, }, { 8, 7, 7, 4, 4, 1, 1, }, { 8, 7, 6, 5, 5, 4, 2, }, },
- { 4645719, { 2, 4, 2, 1, 1, 2, 1, 2, }, { 2, 2, 1, 1, 3, 2, 3, 1, }, { 8, 7, 4, 3, 3, 3, 2, }, { 8, 7, 6, 6, 6, 4, 3, }, },
- { 4764840, { 2, 1, 1, 1, 2, 4, 1, 3, }, { 2, 4, 1, 2, 1, 3, 1, 1, }, { 8, 7, 7, 7, 7, 6, 3, }, { 8, 7, 4, 4, 3, 3, 1, }, },
- { 4883961, { 3, 1, 1, 3, 2, 2, 1, 2, }, { 2, 1, 2, 2, 2, 1, 2, 3, }, { 8, 6, 6, 6, 4, 3, 2, }, { 8, 7, 7, 6, 5, 4, 4, }, },
- { 5003082, { 3, 3, 3, 1, 1, 1, 2, 1, }, { 2, 1, 2, 1, 1, 3, 1, 4, }, { 8, 6, 4, 2, 2, 2, 2, }, { 8, 7, 7, 6, 6, 6, 4, }, },
- { 5122203, { 3, 1, 1, 2, 1, 2, 1, 4, }, { 2, 3, 1, 1, 1, 2, 4, 1, }, { 8, 6, 6, 6, 5, 5, 4, }, { 8, 7, 5, 5, 5, 5, 4, }, },
- { 5241324, { 4, 1, 1, 3, 1, 2, 2, 1, }, { 2, 1, 3, 1, 1, 3, 3, 1, }, { 8, 5, 5, 5, 3, 3, 2, }, { 8, 7, 7, 5, 5, 5, 3, }, },
- { 5360445, { 4, 3, 1, 1, 2, 1, 1, 2, }, { 2, 4, 1, 3, 2, 1, 1, 1, }, { 8, 5, 3, 3, 3, 2, 2, }, { 8, 7, 4, 4, 2, 1, 1, }, },
- { 5479566, { 1, 1, 3, 1, 3, 2, 1, 3, }, { 3, 1, 1, 2, 1, 2, 1, 4, }, { 8, 8, 8, 6, 6, 4, 3, }, { 8, 6, 6, 6, 5, 5, 4, }, },
- { 5598687, { 1, 2, 1, 1, 5, 1, 3, 1, }, { 3, 1, 1, 1, 1, 3, 1, 4, }, { 8, 8, 7, 7, 7, 3, 3, }, { 8, 6, 6, 6, 6, 6, 4, }, },
- { 5717808, { 1, 3, 1, 2, 1, 3, 1, 3, }, { 3, 1, 1, 2, 4, 1, 1, 2, }, { 8, 8, 6, 6, 5, 5, 3, }, { 8, 6, 6, 6, 5, 2, 2, }, },
- { 5836929, { 1, 1, 2, 3, 1, 2, 3, 2, }, { 3, 2, 1, 1, 1, 1, 2, 4, }, { 8, 8, 8, 7, 5, 5, 4, }, { 8, 6, 5, 5, 5, 5, 5, }, },
- { 5956050, { 1, 2, 3, 3, 2, 2, 1, 1, }, { 3, 2, 3, 1, 1, 1, 1, 3, }, { 8, 8, 7, 5, 3, 2, 1, }, { 8, 6, 5, 3, 3, 3, 3, }, },
- { 6075171, { 1, 3, 1, 1, 3, 3, 2, 1, }, { 3, 3, 1, 1, 3, 1, 2, 1, }, { 8, 8, 6, 6, 6, 4, 2, }, { 8, 6, 4, 4, 4, 2, 2, }, },
- { 6194292, { 2, 1, 1, 3, 4, 1, 2, 1, }, { 3, 1, 2, 1, 3, 1, 3, 1, }, { 8, 7, 7, 7, 5, 2, 2, }, { 8, 6, 6, 5, 5, 3, 3, }, },
- { 6313413, { 2, 3, 2, 2, 1, 2, 2, 1, }, { 3, 1, 1, 2, 1, 3, 2, 2, }, { 8, 7, 5, 4, 3, 3, 2, }, { 8, 6, 6, 6, 5, 5, 3, }, },
- { 6432534, { 2, 3, 1, 1, 2, 2, 3, 1, }, { 3, 2, 1, 2, 3, 1, 2, 1, }, { 8, 7, 5, 5, 5, 4, 3, }, { 8, 6, 5, 5, 4, 2, 2, }, },
- { 6551655, { 3, 1, 1, 2, 1, 4, 1, 2, }, { 3, 1, 2, 3, 1, 1, 3, 1, }, { 8, 6, 6, 6, 5, 5, 2, }, { 8, 6, 6, 5, 3, 3, 3, }, },
- { 6670776, { 3, 1, 1, 1, 1, 3, 4, 1, }, { 3, 3, 1, 2, 1, 1, 3, 1, }, { 8, 6, 6, 6, 6, 6, 4, }, { 8, 6, 4, 4, 3, 3, 3, }, },
- { 6789897, { 5, 2, 1, 1, 2, 1, 2, 1, }, { 3, 1, 1, 1, 2, 2, 3, 2, }, { 8, 4, 3, 3, 3, 2, 2, }, { 8, 6, 6, 6, 6, 5, 4, }, },
- { 6909018, { 1, 2, 2, 2, 2, 1, 4, 1, }, { 4, 1, 1, 2, 1, 2, 1, 3, }, { 8, 8, 7, 6, 5, 4, 4, }, { 8, 5, 5, 5, 4, 4, 3, }, },
- { 7028139, { 1, 1, 3, 2, 2, 2, 1, 3, }, { 4, 2, 2, 1, 2, 2, 1, 1, }, { 8, 8, 8, 6, 5, 4, 3, }, { 8, 5, 4, 3, 3, 2, 1, }, },
- { 7147260, { 2, 1, 4, 3, 2, 1, 1, 1, }, { 4, 1, 1, 1, 4, 1, 1, 2, }, { 8, 7, 7, 4, 2, 1, 1, }, { 8, 5, 5, 5, 5, 2, 2, }, },
- { 7266381, { 2, 4, 1, 3, 2, 1, 1, 1, }, { 4, 2, 1, 1, 1, 2, 1, 3, }, { 8, 7, 4, 4, 2, 1, 1, }, { 8, 5, 4, 4, 4, 4, 3, }, },
- { 7385502, { 4, 2, 1, 3, 1, 2, 1, 1, }, { 4, 1, 1, 4, 2, 1, 1, 1, }, { 8, 5, 4, 4, 2, 2, 1, }, { 8, 5, 5, 5, 2, 1, 1, }, },
- { 7504623, { 1, 1, 3, 4, 3, 1, 1, 1, }, { 5, 2, 1, 1, 1, 1, 1, 3, }, { 8, 8, 8, 6, 3, 1, 1, }, { 8, 4, 3, 3, 3, 3, 3, }, },
- { 7623744, { 3, 1, 1, 2, 2, 1, 2, 3, }, { 5, 2, 1, 1, 1, 2, 1, 2, }, { 8, 6, 6, 6, 5, 4, 4, }, { 8, 4, 3, 3, 3, 3, 2, }, },
-};
/*
libzint - the open source barcode library
- Copyright (C) 2016 - 2020 Harald Oehlmann
+ Copyright (C) 2016 Harald Oehlmann
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
#include <math.h>
#include <string.h>
+#include <stdlib.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
-#include <assert.h>
#include "common.h"
-
-INTERNAL int code_128(struct zint_symbol *symbol, const unsigned char source[], const size_t length);
+#include "gs1.h"
#define uchar unsigned char
#define CShift 16
#define CFill 32
#define CodeFNC1 64
-#define CodeFNC4 128
#define ZTNum (CodeA+CodeB+CodeC)
#define ZTFNC1 (CodeA+CodeB+CodeC+CodeFNC1)
} CharacterSetTable;
/* Find the possible Code-128 Character sets for a character
- * The result is an or of CodeA, CodeB, CodeC, CodeFNC1, CodeFNC4 depending on the
+ * The result is an or of CodeA,CodeB,CodeC,CodeFNC1 in dependency of the
* possible Code 128 character sets.
*/
-static int GetPossibleCharacterSet(unsigned char C)
+int GetPossibleCharacterSet(unsigned char C)
{
- if (C<='\x1f') /* Control chars */
+ if (C<='\x19') /* Dec:31 */
return CodeA;
if (C>='0' && C<='9')
return ZTNum; /* ZTNum=CodeA+CodeB+CodeC */
if (C==aFNC1)
return ZTFNC1; /* ZTFNC1=CodeA+CodeB+CodeC+CodeFNC1 */
- if (C==aFNC4)
- return (CodeA | CodeB | CodeFNC4);
if (C>='\x60' && C<='\x7f') /* 60 to 127 */
return CodeB;
return CodeA+CodeB;
}
/* Create a Table with the following information for each Data character:
- * int CharacterSet is an or of CodeA, CodeB, CodeC, CodeFNC1, CodeFNC4,
- * depending on which character set is applicable.
+ * int CharacterSet is an or of CodeA,CodeB,CodeC,CodeFNC1, in
+ * dependency which character set is applicable.
* (Result of GetPossibleCharacterSet)
* int AFollowing,BFollowing The number of source characters you still may encode
* in this character set.
* int CFollowing The number of characters encodable in CodeC if we
* start here.
*/
-static void CreateCharacterSetTable(CharacterSetTable T[], unsigned char *data, const int dataLength)
+static void CreateCharacterSetTable(CharacterSetTable T[], unsigned char *data,const size_t dataLength)
{
int charCur;
int runChar;
/* CodeC possible */
runChar=charCur;
do{
- /* Whether this is FNC1, whether next is */
+ /* Wether this is FNC1 wether next is */
/* numeric */
if (T[runChar].CharacterSet==ZTFNC1)
/* FNC1 */
* one bundle into the line (up to here). This is calculated online because
* it depends on the space in the line.
*/
-static int RemainingDigits(CharacterSetTable *T, int charCur,int emptyColumns)
+int RemainingDigits(CharacterSetTable *T, int charCur,int emptyColumns)
{
int digitCount; /* Numerical digits fitting in the line */
int runChar;
}
/* Find the Character distribution at a given column count.
- * If too many rows (>44) are requested the columns are extended.
+ * If to many rows (>44) are requested the columns is extended.
+ * A oneLigner may be choosen if shorter.
* Parameters :
* T Pointer on the Characters which fit in the row
* If a different count is calculated it is corrected
* in the callers workspace.
* pFillings Output of filling characters
* pSet Output of the character sets used, allocated by me.
+ * Data The Data string to encode, exceptionnally not an out
* Return value Resulting row count
*/
-static int Columns2Rows(struct zint_symbol *symbol, CharacterSetTable *T, const int dataLength,
+static int Columns2Rows(CharacterSetTable *T, unsigned char *data, const size_t dataLength,
int * pRows, int * pUseColumns, int * pSet, int * pFillings)
{
int useColumns; /* Usable Characters per line */
int emptyColumns2; /* Alternative emptyColumns to compare */
int CPaires; /* Number of digit pairs which may fit in the line */
int characterSetCur; /* Current Character Set */
- int isFNC4; /* Set if current character FNC4 */
useColumns=*pUseColumns;
+ if (useColumns<3)
+ useColumns=3;
- /* >>> Loop until rowsCur <= 44 */
+ /* >>> Loop until rowsCur<44 */
do {
int charCur=0;
+ int fOneLiner=1; /* First try one-Liner */
memset(pSet,0,dataLength*sizeof(int));
rowsCur=0;
- /* >>> Line Loop */
+ /* >>> Line and OneLiner-try Loop */
do{
/* >> Start Character */
emptyColumns=useColumns; /* Remained place in Line */
+ if (fOneLiner)
+ emptyColumns+=2;
/* >>Choose in Set A or B */
/* (C is changed as an option later on) */
/* Start odd is not better */
/* We start in C */
pSet[charCur]=characterSetCur=CodeC;
- /* Increment charCur */
+ /* Inkrement charCur */
if (T[charCur].CharacterSet!=ZTFNC1)
++charCur; /* 2 Num.Digits */
}
/* >> Following characters */
while(emptyColumns>0 && charCur<dataLength)
{
- isFNC4 = (T[charCur].CharacterSet & CodeFNC4);
switch(characterSetCur){
case CodeA:
case CodeB:
emptyColumns-=2; /* <SwitchC>12 */
} else if (characterSetCur==CodeA)
{
- if (T[charCur].AFollowing == 0 || (isFNC4 && T[charCur].AFollowing == 1))
+ if(T[charCur].AFollowing==0)
{
/* Must change to B */
- if (emptyColumns == 1 || (isFNC4 && emptyColumns == 2))
+ if (emptyColumns==1)
{
/* Can't switch: */
pSet[charCur-1]|=CEnd+CFill;
emptyColumns=0;
}else{
/* <Shift> or <switchB>? */
- if (T[charCur].BFollowing == 1 || (isFNC4 && T[charCur].BFollowing == 2))
+ if (T[charCur].BFollowing==1)
{
- /* Note using order "FNC4 shift char" (same as CODE128) not "shift FNC4 char" as given in Table B.1 and Table B.2 */
- if (isFNC4) { /* So skip FNC4 and shift value instead */
- --emptyColumns;
- ++charCur;
- }
pSet[charCur]|=CShift;
} else {
pSet[charCur]|=CodeB;
emptyColumns-=2;
++charCur;
}
- } else if (isFNC4 && emptyColumns == 1) {
- /* Can't fit extended ASCII on same line */
- pSet[charCur-1]|=CEnd+CFill;
- emptyColumns=0;
}else{
--emptyColumns;
++charCur;
}
} else { /* Last possibility : CodeB */
- if (T[charCur].BFollowing == 0 || (isFNC4 && T[charCur].BFollowing == 1))
+ if(T[charCur].BFollowing==0)
{
/* Must change to A */
- if (emptyColumns == 1 || (isFNC4 && emptyColumns == 2))
+ if (emptyColumns==1)
{
/* Can't switch: */
pSet[charCur-1]|=CEnd+CFill;
emptyColumns=0;
} else {
/* <Shift> or <switchA>? */
- if (T[charCur].AFollowing == 1 || (isFNC4 && T[charCur].AFollowing == 2))
+ if (T[charCur].AFollowing==1)
{
- /* Note using order "FNC4 shift char" (same as CODE128) not "shift FNC4 char" as given in Table B.1 and Table B.2 */
- if (isFNC4) { /* So skip FNC4 and shift value instead */
- --emptyColumns;
- ++charCur;
- }
pSet[charCur]|=CShift;
} else {
pSet[charCur]|=CodeA;
emptyColumns-=2;
++charCur;
}
- } else if (isFNC4 && emptyColumns == 1) {
- /* Can't fit extended ASCII on same line */
- pSet[charCur-1]|=CEnd+CFill;
- emptyColumns=0;
}else{
--emptyColumns;
++charCur;
/* > End of Codeline */
pSet[charCur-1]|=CEnd;
++rowsCur;
+ if ( fOneLiner)
+ {
+ if (charCur<dataLength)
+ {
+ /* One line not sufficiant */
+ fOneLiner=0;
+ /* Reset and Start again */
+ charCur=0;
+ rowsCur=0;
+ memset(pSet,0,dataLength*sizeof(int));
+ }else{
+ /* Calculate real Length of OneLiner */
+ /* This is -2 BASED !!! */
+ useColumns-=emptyColumns;
+ }
+ }
} while (charCur<dataLength); /* <= Data.Len-1 */
- /* Allow for check characters K1, K2 */
- switch (emptyColumns) {
- case 1:
- pSet[charCur-1]|=CFill;
- /* fall through */
- case 0:
- ++rowsCur;
- fillings=useColumns-2+emptyColumns;
- break;
- case 2:
+ /* Place check characters C1,C2 */
+ if (fOneLiner)
fillings=0;
- break;
- default:
- pSet[charCur-1]|=CFill;
- fillings=emptyColumns-2;
+ else{
+ switch (emptyColumns) {
+ case 1:
+ pSet[charCur-1]|=CFill;
+ /* Glide in following block without break */
+ case 0:
+ ++rowsCur;
+ fillings=useColumns-2+emptyColumns;
+ break;
+ case 2:
+ fillings=0;
+ break;
+ default:
+ pSet[charCur-1]|=CFill;
+ fillings=emptyColumns-2;
+ }
}
if (rowsCur>44) {
if (useColumns > 62) {
return ZINT_ERROR_TOO_LONG;
}
- } else if (rowsCur == 1) {
- rowsCur = 2;
- fillings += useColumns;
}
} while(rowsCur>44);
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ #ifdef _DEBUG
printf(" -> out: rowsCur <%i>, useColumns <%i>, fillings <%i>\n",rowsCur,useColumns,fillings);
- }
+ #endif
*pUseColumns=useColumns;
*pRows=rowsCur;
*pFillings=fillings;
return 0;
}
-
/* Find columns if row count is given.
*/
-static int Rows2Columns(struct zint_symbol *symbol, CharacterSetTable *T, const int dataLength,
+static int Rows2Columns(CharacterSetTable *T, unsigned char *data, const size_t dataLength,
int * pRows, int * pUseColumns, int * pSet, int * pFillings)
{
int rowsCur;
int rowsRequested; /* Number of requested rows */
- int columnsRequested; /* Number of requested columns (if any) */
int backupRows = 0;
int fillings;
int backupFillings = 0;
int useColumns;
int testColumns; /* To enter into Width2Rows */
int backupColumns = 0;
- int fBackupOk = 0; /* The memorised set is o.k. */
+ int fBackupOk = 0; /* The memorysed set is o.k. */
int testListSize = 0;
int pTestList[62];
#ifndef _MSC_VER
#endif
rowsRequested=*pRows;
- columnsRequested = *pUseColumns >= 4 ? *pUseColumns : 0;
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Optimizer : Searching <%i> rows\n", rowsRequested);
- }
+ #ifdef _DEBUG
+ fprintf(stderr,"Optimizer : Searching <%i> rows\n",rowsRequested);
+ #endif
- if (columnsRequested) {
- testColumns = columnsRequested;
- } else {
+ if (rowsRequested==1)
+ /* OneLiners are self-calibrating */
+ testColumns=32767;
+ else {
/* First guess */
testColumns=dataLength/rowsRequested;
if (testColumns > 62)
testColumns = 62;
- else if (testColumns < 4)
- testColumns = 4;
+ else if (testColumns < 1)
+ testColumns = 1;
}
for (;;) {
pTestList[testListSize] = testColumns;
testListSize++;
useColumns=testColumns; /* Make a copy because it may be modified */
- errorCur = Columns2Rows(symbol, T, dataLength, &rowsCur, &useColumns, pSet, &fillings);
+ errorCur = Columns2Rows(T, data, dataLength, &rowsCur, &useColumns, pSet, &fillings);
if (errorCur != 0)
return errorCur;
if (rowsCur<=rowsRequested) {
/* Less or exactly line number found */
- /* check if column count below already tested or at smallest/requested */
- int fInTestList = (rowsCur == 2 || testColumns == 4 || testColumns == columnsRequested);
+ /* check if column count below already tested or Count = 1*/
+ int fInTestList = (rowsCur == 1 || testColumns == 1);
int posCur;
for (posCur = 0; posCur < testListSize && ! fInTestList; posCur++) {
if ( pTestList[posCur] == testColumns-1 )
}
if (fInTestList) {
/* >> Smaller Width already tested
+ * if rowsCur=rowsRequested->Exit
+ * if rowsCur<rowsRequested and fillings>0
+ * -> New search for rowsRequested:=rowsCur
*/
- if (rowsCur < rowsRequested) {
- fillings += useColumns * (rowsRequested - rowsCur);
- rowsCur = rowsRequested;
+ if ( rowsCur == rowsRequested || fillings == 0 || testColumns == 1 ) {
+ /* Exit with actual */
+ *pFillings=fillings;
+ *pRows=rowsCur;
+ *pUseColumns = useColumns;
+ return 0;
}
- /* Exit with actual */
- *pFillings=fillings;
- *pRows=rowsCur;
- *pUseColumns = useColumns;
- return 0;
+ /* Search again for smaller Line number */
+ rowsRequested=rowsCur;
+ pTestList[0] = testColumns;
+ testListSize = 1;
}
/* > Test more rows (shorter CDB) */
fBackupOk=(rowsCur==rowsRequested);
backupRows=rowsCur;
--testColumns;
} else {
- /* > Too many rows */
+ /* > To many rows */
int fInTestList = fBackupOk;
int posCur;
for (posCur = 0; posCur < testListSize && ! fInTestList; posCur++) {
/* Print a character in character set A
*/
-static void A2C128_A(uchar **ppOutPos,uchar c)
+void A2C128_A(uchar **ppOutPos,uchar c)
{
uchar * pOutPos = *ppOutPos;
switch(c){
}
(*ppOutPos)++;
}
-
/* Output c in Set B
*/
-static void A2C128_B(uchar **ppOutPos,uchar c)
+void A2C128_B(uchar **ppOutPos,uchar c)
{
uchar * pOutPos = *ppOutPos;
switch(c){
}
++(*ppOutPos);
}
-
/* Output c1, c2 in Set C
*/
-static void A2C128_C(uchar **ppOutPos,uchar c1,uchar c2)
+void A2C128_C(uchar **ppOutPos,uchar c1,uchar c2)
{
uchar * pOutPos = *ppOutPos;
switch(c1){
}
(*ppOutPos)++;
}
-
/* Output a character in Characterset
*/
-static void ASCIIZ128(uchar **ppOutPos, int CharacterSet,uchar c1, uchar c2)
+void ASCIIZ128(uchar **ppOutPos, int CharacterSet,uchar c1, uchar c2)
{
if (CharacterSet==CodeA)
A2C128_A(ppOutPos,c1);
else
A2C128_C(ppOutPos,c1,c2);
}
-
-/* XLate Tables D.2, D.3 and F.1 of Codablock-F Specification and call output
+/* XLate Table A of Codablock-F Specification and call output
*/
-static void SumASCII(uchar **ppOutPos, int Sum, int CharacterSet)
+void SumASCII(uchar **ppOutPos, int Sum, int CharacterSet)
{
switch (CharacterSet){
- case CodeA: /* Row # Indicators and Data Check Characters K1/K2 for CodeA and CodeB are the same */
+ case CodeA:
+ A2C128_A(ppOutPos, (uchar)Sum);
+ break;
case CodeB:
if (Sum<=31)
A2C128_B(ppOutPos, (uchar)(Sum+96));
/* Main function called by zint framework
*/
-INTERNAL int codablock(struct zint_symbol *symbol,const unsigned char source[], const size_t length) {
- int charCur, dataLength;
+int codablock(struct zint_symbol *symbol,const unsigned char source[], const size_t length) {
+ size_t charCur,dataLength;
int Error;
int rows, columns, useColumns;
int fillings;
int rowCur;
int characterSetCur;
int emptyColumns;
- char dest[1000];
- int r, c;
+ char dest[1000];
+ int r, c;
#ifdef _MSC_VER
CharacterSetTable *T;
unsigned char *data;
int *pSet;
uchar * pOutput;
#endif
- /* Suppresses clang-analyzer-core.VLASize warning */
- assert(length > 0);
/* Parameter check */
- /* option1: rows <= 0: automatic, 1..44 */
+ /* option1: rows 0: automatic, 1..44 */
rows = symbol->option_1;
- if (rows == 1) {
- Error = code_128(symbol, source, length);
- if (Error < 5) {
- symbol->output_options |= BARCODE_BIND;
- if (symbol->border_width == 0) { /* Allow override if non-zero */
- symbol->border_width = 1; /* AIM ISS-X-24 Section 4.6.1 b) (note change from previous default 2) */
- }
- }
- return Error;
- }
if (rows > 44) {
- strcpy(symbol->errtxt, "410: Rows parameter not in 0..44");
+ strcpy(symbol->errtxt, "410: Row parameter not in 0..44");
return ZINT_ERROR_INVALID_OPTION;
}
- /* option_2: (usable data) columns: <= 0: automatic, 9..67 (min 9 == 4 data, max 67 == 62 data) */
+ /* option_2: (usable data) columns: 0: automatic, 6..66 */
columns = symbol->option_2;
- if ( ! (columns <= 0 || (columns >= 9 && columns <= 67)) ) {
- strcpy(symbol->errtxt, "411: Columns parameter not in 0, 9..67");
+ if ( ! (columns <= 0 || (columns >= 6 && columns <=66)) ) {
+ strcpy(symbol->errtxt, "411: Columns parameter not in 0,6..66");
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ /* GS1 not implemented */
+ if (symbol->input_mode == GS1_MODE) {
+ strcpy(symbol->errtxt, "412: GS1 mode not supported");
return ZINT_ERROR_INVALID_OPTION;
}
-
#ifndef _MSC_VER
unsigned char data[length*2+1];
#else
dataLength++;
}
/* Replace all Codes>127 with <fnc4>Code-128 */
- for (charCur = 0; charCur < (int) length; charCur++) {
+ for (charCur=0;charCur<length;charCur++) {
if (source[charCur]>127)
{
data[dataLength] = aFNC4;
/* Find final row and column count */
/* nor row nor column count given */
- if (rows <= 0 && columns <= 0) {
- /* use 1/1 aspect/ratio Codablock */
- columns = floor(sqrt(dataLength)) + 5;
- if (columns > 67) {
- columns = 67;
- } else if (columns < 9) {
- columns = 9;
- }
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Auto column count for %d characters:%d\n", dataLength, columns);
+ if ( rows <= 0 && columns <= 5 ) {
+ /* Use Code128 until reasonable size */
+ if (dataLength < 9) {
+ rows = 1;
+ } else {
+ /* use 1/1 aspect/ratio Codablock */
+ columns = ((int)floor(sqrt(1.0*dataLength))+5);
+ if (columns > 64)
+ columns = 64;
+ #ifdef _DEBUG
+ printf("Auto column count for %zu characters:%d\n",dataLength,columns);
+ #endif
}
}
/* There are 5 Codewords for Organisation Start(2),row(1),CheckSum,Stop */
useColumns = columns - 5;
if ( rows > 0 ) {
/* row count given */
- Error = Rows2Columns(symbol, T, dataLength, &rows, &useColumns, pSet, &fillings);
+ Error=Rows2Columns(T,data,dataLength,&rows,&useColumns,pSet,&fillings);
} else {
/* column count given */
- Error = Columns2Rows(symbol, T, dataLength, &rows, &useColumns, pSet, &fillings);
+ Error=Columns2Rows(T,data,dataLength,&rows,&useColumns,pSet,&fillings);
}
if (Error != 0) {
- strcpy(symbol->errtxt, "413: Data string too long");
+ strcpy(symbol->errtxt, "413: Data string to long");
return Error;
}
- /* Suppresses clang-analyzer-core.VLASize warning */
- assert(rows >= 2 && useColumns >= 4);
-
- /* Data Check Characters K1 and K2, Annex F */
- Sum1 = Sum2 = 0;
- for (charCur = 0; charCur < (int) length; charCur++) {
- Sum1 = (Sum1 + (charCur + 1) * source[charCur]) % 86; /* Mod as we go along to avoid overflow */
- Sum2 = (Sum2 + charCur * source[charCur]) % 86;
+ /* Checksum */
+ Sum1=Sum2=0;
+ if (rows>1)
+ {
+ size_t charCur;
+ for (charCur=0 ; charCur<dataLength ; charCur++) {
+ Sum1=(Sum1 + (charCur%86+1)*data[charCur])%86;
+ Sum2=(Sum2 + (charCur%86)*data[charCur])%86;
+ }
}
- if (symbol->debug & ZINT_DEBUG_PRINT) { /* start a new level of local variables */
+ #ifdef _DEBUG
+ { /* start a new level of local variables */
int DPos;
printf("\nData:");
for (DPos=0 ; DPos< dataLength ; DPos++)
fputc(data[DPos],stdout);
+
printf("\n Set:");
for (DPos=0 ; DPos< dataLength ; DPos++) {
switch (pSet[DPos]&(CodeA+CodeB+CodeC)) {
for (DPos=0 ; DPos< dataLength ; DPos++)
fputc((pSet[DPos]&CFill)==0?'.':'X',stdout);
fputc('\n',stdout);
- printf("K1 %d, K2 %d\n", Sum1, Sum2);
}
+ #endif
columns = useColumns + 5;
for (rowCur=0 ; rowCur<rows ; rowCur++) {
if (charCur>=dataLength)
{
- /* >> Empty line with StartA, aCodeB, row #, and then filler aCodeC aCodeB etc */
+ /* >> Empty line with StartCCodeBCodeC */
+ characterSetCur=CodeC;
+ /* CDB Start C*/
*pOutPos='\x67';
pOutPos++;
- *pOutPos = 100; /* aCodeB */
+ *pOutPos='\x63';
pOutPos++;
- characterSetCur = CodeB;
- SumASCII(&pOutPos, rowCur + 42, characterSetCur); /* Row # */
- emptyColumns = useColumns;
- if (rowCur == rows - 1) {
- emptyColumns -= 2;
- }
+ SumASCII(&pOutPos,rowCur+42,CodeC);
+ emptyColumns=useColumns-2;
while (emptyColumns>0)
{
if(characterSetCur==CodeC)
case CodeA:
*pOutPos = '\x67';
pOutPos++;
- *pOutPos = '\x62';
- pOutPos++;
+ if (rows>1) {
+ *pOutPos = '\x62';
+ pOutPos++;
+ }
characterSetCur=CodeA;
break;
case CodeB:
- *pOutPos = '\x67';
- pOutPos++;
- *pOutPos = '\x64';
- pOutPos++;
+ if (rows==1) {
+ *pOutPos = '\x68';
+ pOutPos++;
+ } else {
+ *pOutPos = '\x67';
+ pOutPos++;
+ *pOutPos = '\x64';
+ pOutPos++;
+ }
characterSetCur=CodeB;
break;
case CodeC:
default:
- *pOutPos = '\x67';
- pOutPos++;
- *pOutPos = '\x63';
- pOutPos++;
+ if (rows==1) {
+ *pOutPos = '\x69';
+ pOutPos++;
+ } else {
+ *pOutPos = '\x67';
+ pOutPos++;
+ *pOutPos = '\x63';
+ pOutPos++;
+ }
characterSetCur=CodeC;
break;
}
- /* > Set F1 */
- /* In first line : # of rows */
- SumASCII(&pOutPos, rowCur == 0 ? rows - 2 : rowCur + 42, characterSetCur);
+ if (rows>1)
+ {
+ /* > Set F1 */
+ /* In first line : # of rows */
+ /* In Case of CodeA we shifted to CodeB */
+ SumASCII(&pOutPos
+ ,(rowCur==0)?rows-2:rowCur+42
+ ,(characterSetCur==CodeA)?CodeB:characterSetCur
+ );
+ }
/* >>> Data */
emptyColumns=useColumns;
+ /* +++ One liner don't have start/stop code */
+ if (rows == 1)
+ emptyColumns +=2;
/* >> Character loop */
- while (emptyColumns > 0 && charCur < dataLength)
+ while (emptyColumns>0)
{
/* ? Change character set */
- if (emptyColumns < useColumns)
+ /* not at first possition (It was then the start set) */
+ /* +++ special case for one-ligner */
+ if (emptyColumns<useColumns || (rows == 1 && charCur!=0) )
{
if ((pSet[charCur]&CodeA)!=0)
{
A2C128_C(&pOutPos,aFNC1,'\0');
else
{
- A2C128_C(&pOutPos, data[charCur], charCur + 1 < dataLength ? data[charCur + 1] : 0);
+ A2C128_C(&pOutPos,data[charCur],data[charCur+1]);
++charCur;
/* We need this here to get the good index */
/* for the termination flags in Set. */
--emptyColumns;
}
/* >> End Criteria */
- if ((pSet[charCur] & CFill) || (pSet[charCur] & CEnd))
+ if ((pSet[charCur] & CFill)!=0)
{
/* Fill Line but leave space for checks in last line */
- if (rowCur == rows - 1) {
- emptyColumns -= 2;
- }
+ if(rowCur==rows-1 && emptyColumns>=2)
+ emptyColumns-=2;
while(emptyColumns>0)
{
switch(characterSetCur){
--emptyColumns;
}
}
+ if ((pSet[charCur] & CEnd)!=0)
+ emptyColumns=0;
++charCur;
} /* Loop over characters */
} /* if filling-Line / normal */
/* Add checksum in last line */
- if (rowCur == rows - 1)
+ if(rows>1 && rowCur==rows-1)
{
SumASCII(&pOutPos,Sum1,characterSetCur);
SumASCII(&pOutPos,Sum2,characterSetCur);
}
/* Add Code 128 checksum */
{
- int Sum = pOutput[columns * rowCur] % 103;
- int Pos = 1;
+ int Sum=0;
+ int Pos=0;
for ( ; Pos < useColumns+3 ; Pos++)
{
- Sum = (Sum + pOutput[columns * rowCur + Pos] * Pos) % 103;
+ Sum = (Sum +
+ ((Pos==0?1:Pos) * pOutput[columns*rowCur+Pos]) % 103
+ ) % 103;
}
*pOutPos=(uchar)Sum;
pOutPos++;
pOutPos++;
} /* End Lineloop */
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ #ifdef _DEBUG
/* Dump the output to the screen
*/
printf("\nCode 128 Code Numbers:\n");
}
}
printf("rows=%i columns=%i fillings=%i\n", rows, columns, fillings);
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump(symbol, pOutput, rows * columns);
- }
-#endif
+ #endif
/* Paint the C128 patterns */
for (r = 0; r < rows; r++) {
symbol->row_height[r] = 10;
}
- symbol->output_options |= BARCODE_BIND;
-
- if (symbol->border_width == 0) { /* Allow override if non-zero */
- symbol->border_width = 1; /* AIM ISS-X-24 Section 4.6.1 b) (note change from previous default 2) */
+ if (!(symbol->output_options & BARCODE_BIND)) {
+ symbol->output_options += BARCODE_BIND;
}
+ if (symbol->border_width < 2) {
+ symbol->border_width = 2;
+ }
return 0;
}
+
+
-/* code.c - Handles Code 11, 39, 39+, 93, PZN, Channel and VIN */
-/* LOGMARS MIL-STD-1189 Rev. B https://apps.dtic.mil/dtic/tr/fulltext/u2/a473534.pdf */
-/* PZN https://www.ifaffm.de/mandanten/1/documents/04_ifa_coding_system/IFA_Info_Code_39_EN.pdf */
-/* PZN https://www.ifaffm.de/mandanten/1/documents/04_ifa_coding_system/IFA-Info_Check_Digit_Calculations_PZN_PPN_UDI_EN.pdf */
+/* code.c - Handles Code 11, 39, 39+ and 93 */
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/* In version 0.5 this file was 1,553 lines long! */
+#include <string.h>
#include <stdio.h>
-#include <assert.h>
+#include <stdlib.h>
#include "common.h"
-#define SODIUM "0123456789-"
-#define SILVER "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd"
+#define SODIUM "0123456789-"
+#define SILVER "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd"
#define ARSENIC "0123456789ABCDEFGHJKLMNPRSTUVWXYZ"
static const char *C11Table[11] = {
"121221", "312111", "311121", "122211"
};
+/* Global Variables for Channel Code */
+int S[11], B[11];
+long value;
+long target_value;
+char pattern[30];
+
+/* Function Prototypes */
+void NextS(int Chan, int i, int MaxS, int MaxB);
+void NextB(int Chan, int i, int MaxB, int MaxS);
+
/* *********************** CODE 11 ******************** */
-INTERNAL int code_11(struct zint_symbol *symbol, unsigned char source[], int length) { /* Code 11 */
+int code_11(struct zint_symbol *symbol, unsigned char source[], int length) { /* Code 11 */
- int i;
+ unsigned int i;
int h, c_digit, c_weight, c_count, k_digit, k_weight, k_count;
- int weight[122], error_number;
- char dest[750]; /* 6 + 121 * 6 + 2 * 6 + 5 + 1 == 750 */
+ int weight[128], error_number;
+ char dest[1024]; /* 6 + 121 * 6 + 2 * 6 + 5 + 1 ~ 1024*/
char checkstr[3];
- int num_check_digits;
-
- /* Suppresses clang-tidy clang-analyzer-core.UndefinedBinaryOperatorResult warning */
- assert(length > 0);
if (length > 121) {
strcpy(symbol->errtxt, "320: Input too long");
strcpy(symbol->errtxt, "321: Invalid characters in data");
return error_number;
}
-
- if (symbol->option_2 < 0 || symbol->option_2 > 2) {
- strcpy(symbol->errtxt, "339: Invalid check digit version");
- return ZINT_ERROR_INVALID_OPTION;
- }
- if (symbol->option_2 == 2) {
- num_check_digits = 0;
- } else if (symbol->option_2 == 1) {
- num_check_digits = 1;
- } else {
- num_check_digits = 2;
- }
-
c_weight = 1;
c_count = 0;
k_weight = 1;
strcpy(dest, "112211");
/* Draw main body of barcode */
- for (i = 0; i < length; i++) {
+ for (i = 0; i < (unsigned int) length; i++) {
lookup(SODIUM, C11Table, source[i], dest);
if (source[i] == '-')
weight[i] = 10;
weight[i] = ctoi(source[i]);
}
- if (num_check_digits) {
- /* Calculate C checksum */
- for (h = length - 1; h >= 0; h--) {
- c_count += (c_weight * weight[h]);
- c_weight++;
+ /* Calculate C checksum */
+ for (h = length - 1; h >= 0; h--) {
+ c_count += (c_weight * weight[h]);
+ c_weight++;
- if (c_weight > 10) {
- c_weight = 1;
- }
+ if (c_weight > 10) {
+ c_weight = 1;
}
- c_digit = c_count % 11;
-
- if (num_check_digits == 1) {
- checkstr[0] = itoc(c_digit);
- if (checkstr[0] == 'A') {
- checkstr[0] = '-';
- }
- checkstr[1] = '\0';
- lookup(SODIUM, C11Table, checkstr[0], dest);
- } else {
- weight[length] = c_digit;
+ }
+ c_digit = c_count % 11;
- /* Calculate K checksum */
- for (h = length; h >= 0; h--) {
- k_count += (k_weight * weight[h]);
- k_weight++;
+ weight[length] = c_digit;
- if (k_weight > 9) {
- k_weight = 1;
- }
- }
- k_digit = k_count % 11;
+ /* Calculate K checksum */
+ for (h = length; h >= 0; h--) {
+ k_count += (k_weight * weight[h]);
+ k_weight++;
- checkstr[0] = itoc(c_digit);
- checkstr[1] = itoc(k_digit);
- if (checkstr[0] == 'A') {
- checkstr[0] = '-';
- }
- if (checkstr[1] == 'A') {
- checkstr[1] = '-';
- }
- checkstr[2] = '\0';
- lookup(SODIUM, C11Table, checkstr[0], dest);
- lookup(SODIUM, C11Table, checkstr[1], dest);
+ if (k_weight > 9) {
+ k_weight = 1;
}
}
+ k_digit = k_count % 11;
+
+ checkstr[0] = itoc(c_digit);
+ checkstr[1] = itoc(k_digit);
+ if (checkstr[0] == 'A') {
+ checkstr[0] = '-';
+ }
+ if (checkstr[1] == 'A') {
+ checkstr[1] = '-';
+ }
+ checkstr[2] = '\0';
+ lookup(SODIUM, C11Table, checkstr[0], dest);
+ lookup(SODIUM, C11Table, checkstr[1], dest);
/* Stop character */
strcat(dest, "11221");
expand(symbol, dest);
ustrcpy(symbol->text, source);
- if (num_check_digits) {
- ustrcat(symbol->text, checkstr);
- }
+ strcat((char*) symbol->text, checkstr);
return error_number;
}
/* Code 39 */
-INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
- int i;
- int counter;
+int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+ unsigned int i;
+ unsigned int counter;
int error_number;
- char dest[880]; /* 10 (Start) + 85 * 10 + 10 (Check) + 9 (Stop) + 1 = 880 */
+ char dest[775];
char localstr[2] = {0};
counter = 0;
symbol->option_2 = 0;
}
- if ((symbol->symbology == BARCODE_LOGMARS) && (length > 30)) { /* MIL-STD-1189 Rev. B Section 5.2.6.2 */
+ if ((symbol->symbology == BARCODE_LOGMARS) && (length > 59)) {
strcpy(symbol->errtxt, "322: Input too long");
return ZINT_ERROR_TOO_LONG;
- } else if ((symbol->symbology == BARCODE_HIBC_39) && (length > 68)) { /* Prevent encoded_data out-of-bounds >= 143 due to wider 'wide' bars */
- strcpy(symbol->errtxt, "319: Input too long"); /* Note use 319 (2of5 range) as 340 taken by CODE128 */
- return ZINT_ERROR_TOO_LONG;
- } else if (length > 85) {
+ } else if (length > 74) {
strcpy(symbol->errtxt, "323: Input too long");
return ZINT_ERROR_TOO_LONG;
}
/* Start character */
strcpy(dest, "1211212111");
- for (i = 0; i < (int) length; i++) {
+ for (i = 0; i < (unsigned int) length; i++) {
lookup(SILVER, C39Table, source[i], dest);
counter += posn(SILVER, source[i]);
}
- if (symbol->option_2 == 1) {
+ if ((symbol->symbology == BARCODE_LOGMARS) || (symbol->option_2 == 1)) {
char check_digit;
counter = counter % 43;
if ((symbol->symbology == BARCODE_LOGMARS) || (symbol->symbology == BARCODE_HIBC_39)) {
/* LOGMARS uses wider 'wide' bars than normal Code 39 */
- counter = strlen(dest);
+ counter = (unsigned int) strlen(dest);
for (i = 0; i < counter; i++) {
if (dest[i] == '2') {
dest[i] = '3';
expand(symbol, dest);
if (symbol->symbology == BARCODE_CODE39) {
- ustrcpy(symbol->text, "*");
- ustrcat(symbol->text, source);
- ustrcat(symbol->text, localstr);
- ustrcat(symbol->text, "*");
+ strcpy((char*) symbol->text, "*");
+ strcat((char*) symbol->text, (char*) source);
+ strcat((char*) symbol->text, localstr);
+ strcat((char*) symbol->text, "*");
} else {
- ustrcpy(symbol->text, source);
- ustrcat(symbol->text, localstr);
+ strcpy((char*) symbol->text, (char*) source);
+ strcat((char*) symbol->text, localstr);
}
return error_number;
}
/* Pharmazentral Nummer (PZN) */
-INTERNAL int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length) {
+int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number, zeroes;
unsigned int count, check_digit;
char localstr[11];
+ count = 0;
if (length > 7) {
strcpy(symbol->errtxt, "325: Input wrong length");
return ZINT_ERROR_TOO_LONG;
zeroes = 7 - length + 1;
for (i = 1; i < zeroes; i++)
localstr[i] = '0';
- ustrcpy(localstr + zeroes, source);
+ strcpy(localstr + zeroes, (char *) source);
- count = 0;
for (i = 1; i < 8; i++) {
count += i * ctoi(localstr[i]);
}
check_digit = count % 11;
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("PZN: %s, check digit %d\n", localstr, check_digit);
+ if (check_digit == 11) {
+ check_digit = 0;
}
-
- if (check_digit == 10) {
+ localstr[8] = itoc(check_digit);
+ localstr[9] = '\0';
+ if (localstr[8] == 'A') {
strcpy(symbol->errtxt, "327: Invalid PZN Data");
return ZINT_ERROR_INVALID_DATA;
}
- localstr[8] = itoc(check_digit);
- localstr[9] = '\0';
error_number = c39(symbol, (unsigned char *) localstr, strlen(localstr));
- ustrcpy(symbol->text, "PZN ");
- ustrcat(symbol->text, localstr);
+ ustrcpy(symbol->text, (unsigned char *) "PZN");
+ strcat((char*) symbol->text, localstr);
return error_number;
}
/* Extended Code 39 - ISO/IEC 16388:2007 Annex A */
-INTERNAL int ec39(struct zint_symbol *symbol, unsigned char source[], int length) {
+int ec39(struct zint_symbol *symbol, unsigned char source[], int length) {
- unsigned char buffer[85 * 2 + 1] = {0};
- int i;
+ unsigned char buffer[150] = {0};
+ unsigned int i;
int error_number;
- if (length > 85) {
+ if (length > 74) {
strcpy(symbol->errtxt, "328: Input too long");
return ZINT_ERROR_TOO_LONG;
}
/* Creates a buffer string and places control characters into it */
- for (i = 0; i < length; i++) {
+ for (i = 0; i < (unsigned int) length; i++) {
if (source[i] > 127) {
/* Cannot encode extended ASCII */
strcpy(symbol->errtxt, "329: Invalid characters in input data");
return ZINT_ERROR_INVALID_DATA;
}
- ustrcat(buffer, EC39Ctrl[source[i]]);
+ strcat((char*) buffer, EC39Ctrl[source[i]]);
}
/* Then sends the buffer to the C39 function */
error_number = c39(symbol, buffer, ustrlen(buffer));
- for (i = 0; i < length; i++)
+ for (i = 0; i < (unsigned int) length; i++)
symbol->text[i] = source[i] ? source[i] : ' ';
symbol->text[length] = '\0';
}
/* Code 93 is an advancement on Code 39 and the definition is a lot tighter */
-INTERNAL int c93(struct zint_symbol *symbol, unsigned char source[], int length) {
+int c93(struct zint_symbol *symbol, unsigned char source[], int length) {
/* SILVER includes the extra characters a, b, c and d to represent Code 93 specific
shift characters 1, 2, 3 and 4 respectively. These characters are never used by
return error_number;
}
-typedef const struct s_channel_precalc {
- long value; unsigned char B[8]; unsigned char S[8]; unsigned char bmax[7]; unsigned char smax[7];
-} channel_precalc;
-
-//#define CHANNEL_GENERATE_PRECALCS
+/* NextS() and NextB() are from ANSI/AIM BC12-1998 and are Copyright (c) AIM 1997 */
-#ifdef CHANNEL_GENERATE_PRECALCS
-/* To generate precalc tables uncomment define and run "./test_channel -f generate -g" and place result in "channel_precalcs.h" */
-static void channel_generate_precalc(int channels, long value, int mod, int last, int B[8], int S[8], int bmax[7], int smax[7]) {
- int i;
- if (value == mod) printf("static channel_precalc channel_precalcs%d[] = {\n", channels);
- printf(" { %7ld, {", value); for (i = 0; i < 8; i++) printf(" %d,", B[i]); printf(" },");
- printf(" {"); for (i = 0; i < 8; i++) printf(" %d,", S[i]); printf(" },");
- printf(" {"); for (i = 0; i < 7; i++) printf(" %d,", bmax[i]); printf(" },");
- printf(" {"); for (i = 0; i < 7; i++) printf(" %d,", smax[i]); printf(" }, },\n");
- if (value == last) printf("};\n");
-}
-#else
-#include "channel_precalcs.h"
-#endif
+/* Their are used here on the understanding that they form part of the specification
+ for Channel Code and therefore their use is permitted under the following terms
+ set out in that document:
-static long channel_copy_precalc(channel_precalc precalc, int B[8], int S[8], int bmax[7], int smax[7]) {
- int i;
+ "It is the intent and understanding of AIM [t]hat the symbology presented in this
+ specification is entirely in the public domain and free of all use restrictions,
+ licenses and fees. AIM USA, its member companies, or individual officers
+ assume no liability for the use of this document." */
- for (i = 0; i < 7; i++) {
- B[i] = precalc.B[i];
- S[i] = precalc.S[i];
- bmax[i] = precalc.bmax[i];
- smax[i] = precalc.smax[i];
+void CheckCharacter() {
+
+ if (value == target_value) {
+ int i;
+ /* Target reached - save the generated pattern */
+ strcpy(pattern, "11110");
+ for (i = 0; i < 11; i++) {
+ char part[3];
+ part[0] = itoc(S[i]);
+ part[1] = itoc(B[i]);
+ part[2] = '\0';
+ strcat(pattern, part);
+ }
}
- B[7] = precalc.B[7];
- S[7] = precalc.S[7];
-
- return precalc.value;
}
-/* CHNCHR is adapted from ANSI/AIM BC12-1998 Annex D Figure D5 and is Copyright (c) AIM 1997 */
+void NextB(int Chan, int i, int MaxB, int MaxS) {
+ int b;
-/* It is used here on the understanding that it forms part of the specification
- for Channel Code and therefore its use is permitted under the following terms
- set out in that document:
+ b = (S[i] + B[i - 1] + S[i - 1] + B[i - 2] > 4) ? 1 : 2;
+ if (i < Chan + 2) {
+ for (; b <= MaxB; b++) {
+ B[i] = b;
+ NextS(Chan, i + 1, MaxS, MaxB + 1 - b);
+ }
+ } else if (b <= MaxB) {
+ B[i] = MaxB;
+ CheckCharacter();
+ value++;
+ }
+}
- "It is the intent and understanding of AIM [t]hat the symbology presented in this
- specification is entirely in the public domain and free of all use restrictions,
- licenses and fees. AIM USA, its member companies, or individual officers
- assume no liability for the use of this document." */
+void NextS(int Chan, int i, int MaxS, int MaxB) {
+ int s;
-static void CHNCHR(int channels, long target_value, int B[8], int S[8]) {
- /* Use of initial pre-calculations taken from Barcode Writer in Pure PostScript (bwipp)
- * Copyright (c) 2004-2020 Terry Burton (MIT/X-Consortium license) */
- static channel_precalc initial_precalcs[6] = {
- { 0, { 1, 1, 1, 1, 1, 2, 1, 2, }, { 1, 1, 1, 1, 1, 1, 1, 3, }, { 1, 1, 1, 1, 1, 3, 2, }, { 1, 1, 1, 1, 1, 3, 3, }, },
- { 0, { 1, 1, 1, 1, 2, 1, 1, 3, }, { 1, 1, 1, 1, 1, 1, 1, 4, }, { 1, 1, 1, 1, 4, 3, 3, }, { 1, 1, 1, 1, 4, 4, 4, }, },
- { 0, { 1, 1, 1, 2, 1, 1, 2, 3, }, { 1, 1, 1, 1, 1, 1, 1, 5, }, { 1, 1, 1, 5, 4, 4, 4, }, { 1, 1, 1, 5, 5, 5, 5, }, },
- { 0, { 1, 1, 2, 1, 1, 2, 1, 4, }, { 1, 1, 1, 1, 1, 1, 1, 6, }, { 1, 1, 6, 5, 5, 5, 4, }, { 1, 1, 6, 6, 6, 6, 6, }, },
- { 0, { 1, 2, 1, 1, 2, 1, 1, 5, }, { 1, 1, 1, 1, 1, 1, 1, 7, }, { 1, 7, 6, 6, 6, 5, 5, }, { 1, 7, 7, 7, 7, 7, 7, }, },
- { 0, { 2, 1, 1, 2, 1, 1, 2, 5, }, { 1, 1, 1, 1, 1, 1, 1, 8, }, { 8, 7, 7, 7, 6, 6, 6, }, { 8, 8, 8, 8, 8, 8, 8, }, },
- };
- int bmax[7], smax[7];
- long value = 0;
-
- channel_copy_precalc(initial_precalcs[channels - 3], B, S, bmax, smax);
-
-#ifndef CHANNEL_GENERATE_PRECALCS
- if (channels == 7 && target_value >= channel_precalcs7[0].value) {
- value = channel_copy_precalc(channel_precalcs7[(target_value / channel_precalcs7[0].value) - 1], B, S, bmax, smax);
- } else if (channels == 8 && target_value >= channel_precalcs8[0].value) {
- value = channel_copy_precalc(channel_precalcs8[(target_value / channel_precalcs8[0].value) - 1], B, S, bmax, smax);
- }
-#endif
-
- goto chkchr;
-
-ls0:smax[1] = smax[0] + 1 - S[0]; B[0] = 1;
- if (S[0] == 1) goto nb0;
-lb0: bmax[1] = bmax[0] + 1 - B[0]; S[1] = 1;
-ls1: smax[2] = smax[1] + 1 - S[1]; B[1] = 1;
- if (S[0] + B[0] + S[1] == 3) goto nb1;
-lb1: bmax[2] = bmax[1] + 1 - B[1]; S[2] = 1;
-ls2: smax[3] = smax[2] + 1 - S[2]; B[2] = 1;
- if (B[0] + S[1] + B[1] + S[2] == 4) goto nb2;
-lb2: bmax[3] = bmax[2] + 1 - B[2]; S[3] = 1;
-ls3: smax[4] = smax[3] + 1 - S[3]; B[3] = 1;
- if (B[1] + S[2] + B[2] + S[3] == 4) goto nb3;
-lb3: bmax[4] = bmax[3] + 1 - B[3]; S[4] = 1;
-ls4: smax[5] = smax[4] + 1 - S[4]; B[4] = 1;
- if (B[2] + S[3] + B[3] + S[4] == 4) goto nb4;
-lb4: bmax[5] = bmax[4] + 1 - B[4]; S[5] = 1;
-ls5: smax[6] = smax[5] + 1 - S[5]; B[5] = 1;
- if (B[3] + S[4] + B[4] + S[5] == 4) goto nb5;
-lb5: bmax[6] = bmax[5] + 1 - B[5]; S[6] = 1;
-ls6: S[7] = smax[6] + 1 - S[6]; B[6] = 1;
- if (B[4] + S[5] + B[5] + S[6] == 4) goto nb6;
-lb6: B[7] = bmax[6] + 1 - B[6];
- if (B[5] + S[6] + B[6] + S[7] + B[7] == 5) goto nb6;
-chkchr:
-#ifdef CHANNEL_GENERATE_PRECALCS
- if (channels == 7 && value && value % 115338 == 0) { /* 115338 == (576688 + 2) / 5 */
- channel_generate_precalc(channels, value, 115338, 115338 * (5 - 1), B, S, bmax, smax);
- } else if (channels == 8 && value && value % 119121 == 0) { /* 119121 == (7742862 + 3) / 65 */
- channel_generate_precalc(channels, value, 119121, 119121 * (65 - 1), B, S, bmax, smax);
- }
-#endif
- if (value == target_value) return;
- value++;
-nb6: if (++B[6] <= bmax[6]) goto lb6;
- if (++S[6] <= smax[6]) goto ls6;
-nb5: if (++B[5] <= bmax[5]) goto lb5;
- if (++S[5] <= smax[5]) goto ls5;
-nb4: if (++B[4] <= bmax[4]) goto lb4;
- if (++S[4] <= smax[4]) goto ls4;
-nb3: if (++B[3] <= bmax[3]) goto lb3;
- if (++S[3] <= smax[3]) goto ls3;
-nb2: if (++B[2] <= bmax[2]) goto lb2;
- if (++S[2] <= smax[2]) goto ls2;
-nb1: if (++B[1] <= bmax[1]) goto lb1;
- if (++S[1] <= smax[1]) goto ls1;
-nb0: if (++B[0] <= bmax[0]) goto lb0;
- if (++S[0] <= smax[0]) goto ls0;
+ for (s = (i < Chan + 2) ? 1 : MaxS; s <= MaxS; s++) {
+ S[i] = s;
+ NextB(Chan, i, MaxB, MaxS + 1 - s);
+ }
}
/* Channel Code - According to ANSI/AIM BC12-1998 */
-INTERNAL int channel_code(struct zint_symbol *symbol, unsigned char source[], int length) {
- int S[8] = {0}, B[8] = {0};
- long target_value = 0;
- char pattern[30];
+int channel_code(struct zint_symbol *symbol, unsigned char source[], int length) {
int channels, i;
- int error_number, range = 0, zeroes;
+ int error_number = 0, range = 0, zeroes;
char hrt[9];
+ target_value = 0;
+
if (length > 7) {
strcpy(symbol->errtxt, "333: Input too long");
return ZINT_ERROR_TOO_LONG;
} else {
channels = symbol->option_2;
}
-
- for (i = 0; i < length; i++) {
- target_value *= 10;
- target_value += ctoi((char) source[i]);
- }
-
if (channels == 0) {
channels = length + 1;
- if (target_value > 576688 && channels < 8) {
- channels = 8;
- } else if (target_value > 44072 && channels < 7) {
- channels = 7;
- } else if (target_value > 3493 && channels < 6) {
- channels = 6;
- } else if (target_value > 292 && channels < 5) {
- channels = 5;
- } else if (target_value > 26 && channels < 4) {
- channels = 4;
- }
}
if (channels == 2) {
channels = 3;
}
+ for (i = 0; i < length; i++) {
+ target_value *= 10;
+ target_value += ctoi((char) source[i]);
+ }
+
switch (channels) {
case 3: if (target_value > 26) {
range = 1;
return ZINT_ERROR_INVALID_DATA;
}
- CHNCHR(channels, target_value, B, S);
-
- strcpy(pattern, "111111111"); /* Finder pattern */
- for (i = 8 - channels; i < 8; i++) {
- char part[3];
- part[0] = itoc(S[i]);
- part[1] = itoc(B[i]);
- part[2] = '\0';
- strcat(pattern, part);
+ for (i = 0; i < 11; i++) {
+ B[i] = 0;
+ S[i] = 0;
}
+ B[0] = S[1] = B[1] = S[2] = B[2] = 1;
+ value = 0;
+ NextS(channels, 3, channels, channels);
+
zeroes = channels - 1 - length;
if (zeroes < 0) {
zeroes = 0;
}
memset(hrt, '0', zeroes);
- ustrcpy(hrt + zeroes, source);
- ustrcpy(symbol->text, hrt);
+ strcpy(hrt + zeroes, (char *) source);
+ ustrcpy(symbol->text, (unsigned char *) hrt);
expand(symbol, pattern);
return error_number;
}
-/* Vehicle Identification Number (VIN) */
-INTERNAL int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
+/* Vehicle Identification Number (VIN) */
+int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
+
/* This code verifies the check digit present in North American VIN codes */
-
+
+ int zeros;
char local_source[18];
char dest[200];
char input_check;
int sum;
int i;
int length = (int) in_length;
-
+
// Check length
- if (length != 17) {
- strcpy(symbol->errtxt, "336: Input wrong length, 17 characters required");
+ if (length > 17) {
+ strcpy(symbol->errtxt, "336: Input too long");
return ZINT_ERROR_TOO_LONG;
}
-
+
+ // Pad with zeros
+ zeros = 17 - length;
+
+ for (i = 0; i < 17; i++) {
+ local_source[i] = '0';
+ }
+ local_source[17] = '\0';
+
+ for (i = 0; i < length; i++) {
+ local_source[zeros + i] = source[i];
+ }
+
+ to_upper((unsigned char *) local_source);
+
// Check input characters, I, O and Q are not allowed
- if (is_sane(ARSENIC, source, length) == ZINT_ERROR_INVALID_DATA) {
+ if (is_sane(ARSENIC, (unsigned char *) local_source, length) == ZINT_ERROR_INVALID_DATA) {
strcpy(symbol->errtxt, "337: Invalid characters in input data");
return ZINT_ERROR_INVALID_DATA;
}
-
- ustrcpy(local_source, source);
-
- to_upper((unsigned char *) local_source);
-
-
- // Check digit only valid for North America
- if (local_source[0] >= '1' && local_source[0] <= '5') {
- input_check = local_source[8];
-
- for (i = 0; i < 17; i++) {
- if ((local_source[i] >= '0') && (local_source[i] <= '9')) {
- value[i] = local_source[i] - '0';
- } else if ((local_source[i] >= 'A') && (local_source[i] <= 'I')) {
- value[i] = (local_source[i] - 'A') + 1;
- } else if ((local_source[i] >= 'J') && (local_source[i] <= 'R')) {
- value[i] = (local_source[i] - 'J') + 1;
- } else if ((local_source[i] >= 'S') && (local_source[i] <= 'Z')) {
- value[i] = (local_source[i] - 'S') + 2;
- }
- }
-
- sum = 0;
- for (i = 0; i < 17; i++) {
- sum += value[i] * weight[i];
+
+ input_check = local_source[8];
+
+ for (i = 0; i < 17; i++) {
+ if ((local_source[i] >= '0') && (local_source[i] <= '9')) {
+ value[i] = local_source[i] - '0';
}
-
- output_check = '0' + (sum % 11);
-
- if (output_check == ':') {
- // Check digit was 10
- output_check = 'X';
+ if ((local_source[i] >= 'A') && (local_source[i] <= 'I')) {
+ value[i] = (local_source[i] - 'A') + 1;
}
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Producing VIN code: %s\n", local_source);
- printf("Input check was %c, calculated check is %c\n", input_check, output_check);
+ if ((local_source[i] >= 'J') && (local_source[i] <= 'R')) {
+ value[i] = (local_source[i] - 'J') + 1;
}
-
- if (input_check != output_check) {
- strcpy(symbol->errtxt, "338: Invalid check digit in input data");
- return ZINT_ERROR_INVALID_DATA;
+ if ((local_source[i] >= 'S') && (local_source[i] <= 'Z')) {
+ value[i] = (local_source[i] - 'S') + 2;
}
}
-
+
+ sum = 0;
+ for (i = 0; i < 17; i++) {
+ sum += value[i] * weight[i];
+ }
+
+ output_check = '0' + (sum % 11);
+
+ if (output_check == ':') {
+ // Check digit was 10
+ output_check = 'X';
+ }
+
+ if (symbol->debug) {
+ printf("Producing VIN code: %s\n", local_source);
+ printf("Input check was %c, calculated check is %c\n", input_check, output_check);
+ }
+
+ if (input_check != output_check) {
+ strcpy(symbol->errtxt, "338: Invalid check digit in input data");
+ return ZINT_ERROR_INVALID_DATA;
+ }
+
/* Start character */
strcpy(dest, "1211212111");
-
- /* Import character 'I' prefix? */
- if (symbol->option_2 & 1) {
- strcat(dest, "1121122111");
- }
-
+
// Copy glyphs to symbol
for (i = 0; i < 17; i++) {
lookup(SILVER, C39Table, local_source[i], dest);
}
-
+
+ /* Stop character */
strcat(dest, "121121211");
-
- ustrcpy(symbol->text, local_source);
+
+ ustrcpy(symbol->text, (unsigned char *) local_source);
expand(symbol, dest);
-
+
return 0;
}
+
/*
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include "common.h"
#include "code1.h"
#include "reedsol.h"
#include "large.h"
#include <stdio.h>
+#include <string.h>
#include <math.h>
-static void horiz(struct zint_symbol *symbol, int row_no, int full) {
+void horiz(struct zint_symbol *symbol, int row_no, int full) {
int i;
if (full) {
}
}
-static void central_finder(struct zint_symbol *symbol, int start_row, int row_count, int full_rows) {
+void central_finder(struct zint_symbol *symbol, int start_row, int row_count, int full_rows) {
int i;
for (i = 0; i < row_count; i++) {
}
}
-static void vert(struct zint_symbol *symbol, int column, int height, int top) {
+void vert(struct zint_symbol *symbol, int column, int height, int top) {
int i;
if (top) {
}
}
-static void spigot(struct zint_symbol *symbol, int row_no) {
+void spigot(struct zint_symbol *symbol, int row_no) {
int i;
for (i = symbol->width - 1; i > 0; i--) {
}
}
-static int isedi(unsigned char input) {
+int isedi(unsigned char input) {
int result = 0;
if (input == 13) {
return result;
}
-static int dq4bi(unsigned char source[], int sourcelen, int position) {
+int dq4bi(unsigned char source[], int sourcelen, int position) {
int i;
- for (i = 0; ((position + i) < sourcelen) && isedi(source[position + i]); i++);
+ for (i = position; isedi(source[position + i]) && ((position + i) < sourcelen); i++);
if ((position + i) == sourcelen) {
/* Reached end of input */
return 0;
}
- if (i == 0) {
- /* Not EDI */
- return 0;
- }
if (source[position + i - 1] == 13) {
return 1;
if (c40_count < edi_count) {
best_scheme = C1_C40;
} else {
+ done = 0;
if (c40_count == edi_count) {
if (dq4bi(source, sourcelen, position)) {
best_scheme = C1_EDI;
return best_scheme;
}
-static int c1_encode(struct zint_symbol *symbol, unsigned char source[], unsigned int target[], int length) {
+int c1_encode(struct zint_symbol *symbol, unsigned char source[], unsigned int target[], int length) {
int current_mode, next_mode;
int sp, tp, gs1, i, j, p, latch;
int c40_buffer[6], c40_p;
sp = 0;
tp = 0;
+ latch = 0;
memset(c40_buffer, 0, sizeof(*c40_buffer));
c40_p = 0;
memset(text_buffer, 0, sizeof(*text_buffer));
edi_p = 0;
strcpy(decimal_binary, "");
- if ((symbol->input_mode & 0x07) == GS1_MODE) {
+ if (symbol->input_mode == GS1_MODE) {
gs1 = 1;
} else {
gs1 = 0;
if (j == 13) {
latch = 0;
for (i = sp + 13; i < length; i++) {
- if (!((source[i] >= '0') && (source[i] <= '9'))) {
+ if (!((source[sp + i] >= '0') && (source[sp + i] <= '9'))) {
latch = 1;
}
}
}
if (next_mode == C1_ASCII) { /* Step B3 */
- if (istwodigits(source, length, sp)) {
+ if (istwodigits(source, sp) && ((sp + 1) != length)) {
target[tp] = (10 * ctoi(source[sp])) + ctoi(source[sp + 1]) + 130;
tp++;
sp += 2;
if (j == 7) {
latch = 0;
for (i = sp + 7; i < length; i++) {
- if (!((source[i] >= '0') && (source[i] <= '9'))) {
+ if (!((source[sp + i] >= '0') && (source[sp + i] <= '9'))) {
latch = 1;
}
}
return tp;
}
-static void block_copy(struct zint_symbol *symbol, char grid[][120], int start_row, int start_col, int height, int width, int row_offset, int col_offset) {
+void block_copy(struct zint_symbol *symbol, char grid[][120], int start_row, int start_col, int height, int width, int row_offset, int col_offset) {
int i, j;
for (i = start_row; i < (start_row + height); i++) {
}
}
-INTERNAL int code_one(struct zint_symbol *symbol, unsigned char source[], int length) {
+int code_one(struct zint_symbol *symbol, unsigned char source[], int length) {
int size = 1, i, j;
char datagrid[136][120];
if (symbol->option_2 == 9) {
/* Version S */
int codewords;
- large_int elreg;
+ short int elreg[112];
unsigned int data[15], ecc[15];
int stream[30];
int block_width;
block_width = 2;
}
- large_load_str_u64(&elreg, source, length);
+ binary_load(elreg, (char *) source, length);
for (i = 0; i < 15; i++) {
data[i] = 0;
ecc[i] = 0;
}
- large_uint_array(&elreg, data, codewords, 5 /*bits*/);
+ for (i = 0; i < codewords; i++) {
+ data[codewords - i - 1] += 1 * elreg[(i * 5)];
+ data[codewords - i - 1] += 2 * elreg[(i * 5) + 1];
+ data[codewords - i - 1] += 4 * elreg[(i * 5) + 2];
+ data[codewords - i - 1] += 8 * elreg[(i * 5) + 3];
+ data[codewords - i - 1] += 16 * elreg[(i * 5) + 4];
+ }
rs_init_gf(0x25);
rs_init_code(codewords, 1);
if (symbol->option_2 == 10) {
/* Version T */
- unsigned int data[80] = {0}; /* Allow for doubled digits */
- unsigned int ecc[22];
- unsigned int stream[60];
+ unsigned int data[40], ecc[25];
+ unsigned int stream[65];
int data_length;
int data_cw, ecc_cw, block_width;
- if (length > 80) {
- strcpy(symbol->errtxt, "519: Input data too long");
- return ZINT_ERROR_TOO_LONG;
+ for (i = 0; i < 40; i++) {
+ data[i] = 0;
}
-
data_length = c1_encode(symbol, source, data, length);
if (data_length == 0) {
return 0;
}
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2008-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2019 Robin Stuart <rstuart114@gmail.com>
Bugfixes thanks to Christian Sakowski and BogDan Vatra
Redistribution and use in source and binary forms, with or without
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
-#include <assert.h>
#include "common.h"
-#include "code128.h"
#include "gs1.h"
+#define TRUE 1
+#define FALSE 0
+#define SHIFTA 90
+#define LATCHA 91
+#define SHIFTB 92
+#define LATCHB 93
+#define SHIFTC 94
+#define LATCHC 95
+#define AORB 96
+#define ABORC 97
+
+#define DPDSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*"
+
+static int list[2][170];
+
/* Code 128 tables checked against ISO/IEC 15417:2007 */
static const char *C128Table[107] = {
};
/* Determine appropriate mode for a given character */
-INTERNAL int parunmodd(const unsigned char llyth) {
+int parunmodd(const unsigned char llyth) {
int modd;
+ modd = 0;
if (llyth <= 31) {
modd = SHIFTA;
/**
* bring together same type blocks
*/
-static void grwp(int list[2][C128_MAX], int *indexliste) {
+void grwp(int *indexliste) {
/* bring together same type blocks */
if (*(indexliste) > 1) {
list[0][i - 1] = list[0][i - 1] + list[0][i];
j = i + 1;
- /* decrease the list */
+ /* decreace the list */
while (j < *(indexliste)) {
list[0][j - 1] = list[0][j];
list[1][j - 1] = list[1][j];
/**
* Implements rules from ISO 15417 Annex E
*/
-INTERNAL void dxsmooth(int list[2][C128_MAX], int *indexliste) {
+void dxsmooth(int *indexliste) {
int i, last, next;
for (i = 0; i < *(indexliste); i++) {
- int current = list[1][i]; /* Either ABORC, AORB, SHIFTA or SHIFTB */
+ int current = list[1][i];
int length = list[0][i];
if (i != 0) {
last = list[1][i - 1];
}
if (i == 0) { /* first block */
+ if ((*(indexliste) == 1) && ((length == 2) && (current == ABORC))) {
+ /* Rule 1a */
+ list[1][i] = LATCHC;
+ }
if (current == ABORC) {
- if ((*(indexliste) == 1) && (length == 2)) {
- /* Rule 1a */
- list[1][i] = LATCHC;
- current = LATCHC;
- } else if (length >= 4) {
+ if (length >= 4) {
/* Rule 1b */
list[1][i] = LATCHC;
- current = LATCHC;
} else {
- current = AORB; /* Determine below */
+ list[1][i] = AORB;
+ current = AORB;
}
}
- if (current == AORB) {
- if (next == SHIFTA) {
- /* Rule 1c */
- list[1][i] = LATCHA;
- } else {
- /* Rule 1d */
- list[1][i] = LATCHB;
- }
- } else if (current == SHIFTA) {
+ if (current == SHIFTA) {
+ /* Rule 1c */
+ list[1][i] = LATCHA;
+ }
+ if ((current == AORB) && (next == SHIFTA)) {
/* Rule 1c */
list[1][i] = LATCHA;
- } else if (current == SHIFTB) { /* Unless LATCHC set above, can only be SHIFTB */
+ current = LATCHA;
+ }
+ if (current == AORB) {
/* Rule 1d */
list[1][i] = LATCHB;
}
} else {
+ if ((current == ABORC) && (length >= 4)) {
+ /* Rule 3 */
+ list[1][i] = LATCHC;
+ current = LATCHC;
+ }
if (current == ABORC) {
- if (length >= 4) {
- /* Rule 3 */
- list[1][i] = LATCHC;
- current = LATCHC;
- } else {
- current = AORB; /* Determine below */
- }
+ list[1][i] = AORB;
+ current = AORB;
+ }
+ if ((current == AORB) && (last == LATCHA)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == AORB) && (last == LATCHB)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == AORB) && (next == SHIFTA)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == AORB) && (next == SHIFTB)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
}
if (current == AORB) {
- if (last == LATCHA || last == SHIFTB) { /* Maintain state */
- list[1][i] = LATCHA;
- } else if (last == LATCHB || last == SHIFTA) { /* Maintain state */
- list[1][i] = LATCHB;
- } else if (next == SHIFTA) {
- list[1][i] = LATCHA;
- } else {
- list[1][i] = LATCHB;
- }
- } else if (current == SHIFTA) {
- if (length > 1) {
- /* Rule 4 */
- list[1][i] = LATCHA;
- } else if (last == LATCHA || last == SHIFTB) { /* Maintain state */
- list[1][i] = LATCHA;
- } else if (last == LATCHC) {
- list[1][i] = LATCHA;
- }
- } else if (current == SHIFTB) { /* Unless LATCHC set above, can only be SHIFTB */
- if (length > 1) {
- /* Rule 5 */
- list[1][i] = LATCHB;
- } else if (last == LATCHB || last == SHIFTA) { /* Maintain state */
- list[1][i] = LATCHB;
- } else if (last == LATCHC) {
- list[1][i] = LATCHB;
- }
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == SHIFTA) && (length > 1)) {
+ /* Rule 4 */
+ list[1][i] = LATCHA;
+ current = LATCHA;
}
- } /* Rule 2 is implemented elsewhere, Rule 6 is implied */
+ if ((current == SHIFTB) && (length > 1)) {
+ /* Rule 5 */
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == SHIFTA) && (last == LATCHA)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == SHIFTB) && (last == LATCHB)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == SHIFTA) && (last == LATCHC)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == SHIFTB) && (last == LATCHC)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ } /* Rule 2 is implimented elsewhere, Rule 6 is implied */
}
+ grwp(indexliste);
- grwp(list, indexliste);
}
/**
* Translate Code 128 Set A characters into barcodes.
- * This set handles all control characters NUL to US.
+ * This set handles all control characters NULL to US.
*/
-static void c128_set_a(unsigned char source, char dest[], int values[], int *bar_chars) {
+void c128_set_a(unsigned char source, char dest[], int values[], int *bar_chars) {
if (source > 127) {
if (source < 160) {
* This set handles all characters which are not part of long numbers and not
* control characters.
*/
-static void c128_set_b(unsigned char source, char dest[], int values[], int *bar_chars) {
+void c128_set_b(unsigned char source, char dest[], int values[], int *bar_chars) {
if (source > 127) {
strcat(dest, C128Table[source - 32 - 128]);
values[(*bar_chars)] = source - 32 - 128;
/* Translate Code 128 Set C characters into barcodes
* This set handles numbers in a compressed form
*/
-static void c128_set_c(unsigned char source_a, unsigned char source_b, char dest[], int values[], int *bar_chars) {
+void c128_set_c(unsigned char source_a, unsigned char source_b, char dest[], int values[], int *bar_chars) {
int weight;
weight = (10 * ctoi(source_a)) + ctoi(source_b);
(*bar_chars)++;
}
-/* Handle Code 128, 128B and HIBC 128 */
-INTERNAL int code_128(struct zint_symbol *symbol, const unsigned char source[], const size_t length) {
- int i, j, k, values[C128_MAX] = {0}, bar_characters, read, total_sum;
+/* Handle Code 128 and NVE-18 */
+int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+ int i, j, k, values[170] = {0}, bar_characters, read, total_sum;
int error_number, indexchaine, indexliste, f_state;
- int sourcelen;
- int list[2][C128_MAX] = {{0}};
- char set[C128_MAX] = {0}, fset[C128_MAX], mode, last_set, current_set = ' ';
+ size_t sourcelen;
+ char set[170] = {' '}, fset[170] = {' '}, mode, last_set, current_set = ' ';
float glyph_count;
char dest[1000];
- /* Suppresses clang-analyzer-core.UndefinedBinaryOperatorResult warning on fset which is fully set */
- assert(length > 0);
-
error_number = 0;
strcpy(dest, "");
sourcelen = length;
+ j = 0;
bar_characters = 0;
f_state = 0;
- if (sourcelen > C128_MAX) {
- /* This only blocks ridiculously long input - the actual length of the
+ if (sourcelen > 160) {
+ /* This only blocks rediculously long input - the actual length of the
resulting barcode depends on the type of data, so this is trapped later */
strcpy(symbol->errtxt, "340: Input too long");
return ZINT_ERROR_TOO_LONG;
/* Detect extended ASCII characters */
for (i = 0; i < sourcelen; i++) {
- fset[i] = source[i] >= 128 ? 'f' : ' ';
+ if (source[i] >= 128)
+ fset[i] = 'f';
}
+ fset[i] = '\0';
/* Decide when to latch to extended mode - Annex E note 3 */
j = 0;
for (i = 1; i < sourcelen; i++) {
if ((fset[i - 1] == 'F') && (fset[i] == ' ')) {
/* Detected a change from 8859-1 to 646 - count how long for */
- for (j = 0; ((i + j) < sourcelen) && (fset[i + j] == ' '); j++);
- /* Count how many 8859-1 beyond */
- k = 0;
- if (i + j < sourcelen) {
- for (k = 1; ((i + j + k) < sourcelen) && (fset[i + j + k] != ' '); k++);
- }
- if (j < 3 || (j < 5 && k > 2)) {
+ for (j = 0; (fset[i + j] == ' ') && ((i + j) < sourcelen); j++);
+ if ((j < 5) || ((j < 3) && ((i + j) == (sourcelen - 1)))) {
+ /* Uses the same figures recommended by Annex E note 3 */
/* Change to shifting back rather than latching back */
- /* Inverts the same figures recommended by Annex E note 3 */
for (k = 0; k < j; k++) {
fset[i + k] = 'n';
}
mode = AORB;
}
+ for (i = 0; i < 170; i++) {
+ list[0][i] = 0;
+ }
+
do {
list[1][indexliste] = mode;
while ((list[1][indexliste] == mode) && (indexchaine < sourcelen)) {
list[0][indexliste]++;
indexchaine++;
- if (indexchaine == sourcelen) {
- break;
- }
mode = parunmodd(source[indexchaine]);
if ((symbol->symbology == BARCODE_CODE128B) && (mode == ABORC)) {
mode = AORB;
indexliste++;
} while (indexchaine < sourcelen);
- dxsmooth(list, &indexliste);
+ dxsmooth(&indexliste);
/* Resolve odd length LATCHC blocks */
if ((list[1][0] == LATCHC) && (list[0][0] & 1)) {
}
}
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Data: %.*s (%d)\n", sourcelen, source, sourcelen);
- printf(" Set: %.*s\n", sourcelen, set);
- printf("FSet: %.*s\n", sourcelen, fset);
+ /* Adjust for strings which start with shift characters - make them latch instead */
+ if (set[0] == 'a') {
+ i = 0;
+ do {
+ set[i] = 'A';
+ i++;
+ } while (set[i] == 'a');
+ }
+
+ if (set[0] == 'b') {
+ i = 0;
+ do {
+ set[i] = 'B';
+ i++;
+ } while (set[i] == 'b');
}
/* Now we can calculate how long the barcode is going to be - and stop it from
being too long */
- last_set = set[0];
+ last_set = ' ';
glyph_count = 0.0;
for (i = 0; i < sourcelen; i++) {
if ((set[i] == 'a') || (set[i] == 'b')) {
}
}
bar_characters++;
+ last_set = set[0];
if (fset[0] == 'F') {
switch (current_set) {
} while (read < sourcelen);
/* check digit calculation */
- total_sum = values[0] % 103; /* Mod as we go along to avoid overflow */
+ total_sum = 0;
- for (i = 1; i < bar_characters; i++) {
- total_sum = (total_sum + values[i] * i) % 103;
+ for (i = 0; i < bar_characters; i++) {
+ if (i > 0) {
+ values[i] *= i;
+ }
+ total_sum += values[i];
}
- strcat(dest, C128Table[total_sum]);
- values[bar_characters] = total_sum;
- bar_characters++;
+ strcat(dest, C128Table[total_sum % 103]);
/* Stop character */
strcat(dest, C128Table[106]);
- values[bar_characters] = 106;
- bar_characters++;
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Codewords:");
- for (i = 0; i < bar_characters; i++) {
- printf(" %d", values[i]);
- }
- printf("\n");
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump_int(symbol, values, bar_characters);
- }
-#endif
-
expand(symbol, dest);
return error_number;
}
/* Handle EAN-128 (Now known as GS1-128) */
-INTERNAL int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
- int i, j, values[C128_MAX] = {0}, bar_characters, read, total_sum;
+int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+ int i, j, values[170], bar_characters, read, total_sum;
int error_number, indexchaine, indexliste;
- int list[2][C128_MAX] = {{0}};
- char set[C128_MAX] = {0}, mode, last_set;
+ char set[170], mode, last_set;
float glyph_count;
char dest[1000];
int separator_row, linkage_flag, c_count;
- int reduced_length;
#ifndef _MSC_VER
char reduced[length + 1];
#else
char* reduced = (char*) _alloca(length + 1);
#endif
-
+ error_number = 0;
strcpy(dest, "");
linkage_flag = 0;
+ j = 0;
bar_characters = 0;
separator_row = 0;
- if (length > C128_MAX) {
- /* This only blocks ridiculously long input - the actual length of the
+ memset(values, 0, sizeof (values));
+ memset(set, ' ', sizeof (set));
+
+ if (length > 160) {
+ /* This only blocks rediculously long input - the actual length of the
resulting barcode depends on the type of data, so this is trapped later */
strcpy(symbol->errtxt, "342: Input too long");
return ZINT_ERROR_TOO_LONG;
if (error_number != 0) {
return error_number;
}
- reduced_length = strlen(reduced);
/* Decide on mode using same system as PDF417 and rules of ISO 15417 Annex E */
indexliste = 0;
mode = ABORC;
}
+ for (i = 0; i < 170; i++) {
+ list[0][i] = 0;
+ }
+
do {
list[1][indexliste] = mode;
- while ((list[1][indexliste] == mode) && (indexchaine < reduced_length)) {
+ while ((list[1][indexliste] == mode) && (indexchaine < (int) strlen(reduced))) {
list[0][indexliste]++;
indexchaine++;
- if (indexchaine == reduced_length) {
- break;
- }
mode = parunmodd(reduced[indexchaine]);
if (reduced[indexchaine] == '[') {
mode = ABORC;
}
}
indexliste++;
- } while (indexchaine < reduced_length);
+ } while (indexchaine < (int) strlen(reduced));
- dxsmooth(list, &indexliste);
+ dxsmooth(&indexliste);
/* Put set data into set[] */
read = 0;
}
}
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Data: %s (%d)\n", reduced, reduced_length);
- printf(" Set: %.*s\n", reduced_length, set);
- }
-
/* Now we can calculate how long the barcode is going to be - and stop it from
being too long */
- last_set = set[0];
+ last_set = ' ';
glyph_count = 0.0;
- for (i = 0; i < reduced_length; i++) {
+ for (i = 0; i < (int) strlen(reduced); i++) {
if ((set[i] == 'a') || (set[i] == 'b')) {
glyph_count = glyph_count + 1.0;
}
bar_characters++;
read++;
}
- } while (read < reduced_length);
+ } while (read < (int) strlen(reduced));
/* "...note that the linkage flag is an extra code set character between
the last data character and the Symbol Check Character" (GS1 Specification) */
case 1:
case 2:
/* CC-A or CC-B 2D component */
- switch (set[reduced_length - 1]) {
+ switch (set[strlen(reduced) - 1]) {
case 'A': linkage_flag = 100;
break;
case 'B': linkage_flag = 99;
break;
case 3:
/* CC-C 2D component */
- switch (set[reduced_length - 1]) {
+ switch (set[strlen(reduced) - 1]) {
case 'A': linkage_flag = 99;
break;
case 'B': linkage_flag = 101;
}
/* check digit calculation */
- total_sum = values[0] % 103; /* Mod as we go along to avoid overflow */
+ total_sum = 0;
+ for (i = 0; i < bar_characters; i++) {
+ if (i > 0) {
+ values[i] *= i;
- for (i = 1; i < bar_characters; i++) {
- total_sum = (total_sum + values[i] * i) % 103;
+ }
+ total_sum += values[i];
}
- strcat(dest, C128Table[total_sum]);
- values[bar_characters] = total_sum;
+ strcat(dest, C128Table[total_sum % 103]);
+ values[bar_characters] = total_sum % 103;
bar_characters++;
/* Stop character */
strcat(dest, C128Table[106]);
values[bar_characters] = 106;
bar_characters++;
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Codewords:");
- for (i = 0; i < bar_characters; i++) {
- printf(" %d", values[i]);
- }
- printf("\n");
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump_int(symbol, values, bar_characters);
- }
-#endif
-
expand(symbol, dest);
/* Add the separator pattern for composite symbols */
}
}
- for (i = 0; i < (int) length; i++) {
+ for (i = 0; i < length; i++) {
if ((source[i] != '[') && (source[i] != ']')) {
symbol->text[i] = source[i];
}
}
/* Add check digit if encoding an NVE18 symbol */
-INTERNAL int nve_18(struct zint_symbol *symbol, unsigned char source[], int length) {
+int nve_18(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number, zeroes, i, nve_check, total_sum, sourcelen;
unsigned char ean128_equiv[25];
}
/* EAN-14 - A version of EAN-128 */
-INTERNAL int ean_14(struct zint_symbol *symbol, unsigned char source[], int length) {
+int ean_14(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, count, check_digit;
int error_number, zeroes;
unsigned char ean128_equiv[20];
return error_number;
}
+
+
+++ /dev/null
-/*
- libzint - the open source barcode library
- Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-
-#ifndef CODE128_H
-#define CODE128_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define C128_MAX 160
-
-#define SHIFTA 90
-#define LATCHA 91
-#define SHIFTB 92
-#define LATCHB 93
-#define SHIFTC 94
-#define LATCHC 95
-#define AORB 96
-#define ABORC 97
-
-INTERNAL int parunmodd(const unsigned char llyth);
-INTERNAL void dxsmooth(int list[2][C128_MAX], int *indexliste);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* CODE128_H */
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/* Updated to comply with BS EN 12323:2005 */
#include <string.h>
#include <stdio.h>
-#include <assert.h>
+#include <stdlib.h>
#include "common.h"
-#include "code128.h"
+
+#define TRUE 1
+#define FALSE 0
+#define SHIFTA 90
+#define LATCHA 91
+#define SHIFTB 92
+#define LATCHB 93
+#define SHIFTC 94
+#define LATCHC 95
+#define AORB 96
+#define ABORC 97
+#define CANDB 98
+#define CANDBB 99
+
+extern int parunmodd(const unsigned char llyth);
+
+static int list[2][170];
static const char *C16KTable[107] = {
/* EN 12323 Table 1 - "Code 16K" character encodations */
0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3
};
-static void c16k_set_a(const unsigned char source, int values[], int *bar_chars) {
+static void grwp16(unsigned int *indexliste) {
+
+ /* bring together same type blocks */
+ if (*(indexliste) > 1) {
+ int i = 1;
+ while(i < (int)*(indexliste)) {
+ if (list[1][i - 1] == list[1][i]) {
+ int j;
+ /* bring together */
+ list[0][i - 1] = list[0][i - 1] + list[0][i];
+ j = i + 1;
+
+ /* decreace the list */
+ while(j < (int)*(indexliste)) {
+ list[0][j - 1] = list[0][j];
+ list[1][j - 1] = list[1][j];
+ j++;
+ }
+ *(indexliste) = *(indexliste) - 1;
+ i--;
+ }
+ i++;
+ }
+ }
+}
+
+/* Implements rules from ISO 15417 Annex E */
+static void dxsmooth16(unsigned int *indexliste) {
+ int i, last, next;
+
+ for(i = 0; i < (int)*(indexliste); i++) {
+ int current = list[1][i];
+ int length = list[0][i];
+ if (i != 0) {
+ last = list[1][i - 1];
+ } else {
+ last = FALSE;
+ }
+ if (i != *(indexliste) - 1) {
+ next = list[1][i + 1];
+ } else {
+ next = FALSE;
+ }
+
+ if (i == 0) {
+ /* first block */
+ if ((*(indexliste) == 1) && ((length == 2) && (current == ABORC))) {
+ /* Rule 1a */
+ list[1][i] = LATCHC;
+ }
+ if (current == ABORC) {
+ if (length >= 4) {
+ /* Rule 1b */
+ list[1][i] = LATCHC;
+ } else {
+ list[1][i] = AORB;
+ current = AORB;
+ }
+ }
+ if (current == SHIFTA) {
+ /* Rule 1c */
+ list[1][i] = LATCHA;
+ }
+ if ((current == AORB) && (next == SHIFTA)) {
+ /* Rule 1c */
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if (current == AORB) {
+ /* Rule 1d */
+ list[1][i] = LATCHB;
+ }
+ } else {
+ if ((current == ABORC) && (length >= 4)) {
+ /* Rule 3 */
+ list[1][i] = LATCHC;
+ current = LATCHC;
+ }
+ if (current == ABORC) {
+ list[1][i] = AORB;
+ current = AORB;
+ }
+ if ((current == AORB) && (last == LATCHA)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == AORB) && (last == LATCHB)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == AORB) && (next == SHIFTA)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == AORB) && (next == SHIFTB)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if (current == AORB) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == SHIFTA) && (length > 1)) {
+ /* Rule 4 */
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == SHIFTB) && (length > 1)) {
+ /* Rule 5 */
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == SHIFTA) && (last == LATCHA)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == SHIFTB) && (last == LATCHB)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ if ((current == SHIFTA) && (last == LATCHC)) {
+ list[1][i] = LATCHA;
+ current = LATCHA;
+ }
+ if ((current == SHIFTB) && (last == LATCHC)) {
+ list[1][i] = LATCHB;
+ current = LATCHB;
+ }
+ } /* Rule 2 is implimented elsewhere, Rule 6 is implied */
+ }
+ grwp16(indexliste);
+
+}
+
+static void c16k_set_a(const unsigned char source, unsigned int values[], unsigned int *bar_chars) {
if (source > 127) {
if (source < 160) {
values[(*bar_chars)] = source + 64 - 128;
(*bar_chars)++;
}
-static void c16k_set_b(const unsigned char source, int values[], int *bar_chars) {
+static void c16k_set_b(const unsigned char source, unsigned int values[], unsigned int *bar_chars) {
if (source > 127) {
values[(*bar_chars)] = source - 32 - 128;
} else {
(*bar_chars)++;
}
-static void c16k_set_c(const unsigned char source_a, unsigned char source_b, int values[], int *bar_chars) {
+static void c16k_set_c(const unsigned char source_a, unsigned char source_b, unsigned int values[], unsigned int *bar_chars) {
int weight;
weight = (10 * ctoi(source_a)) + ctoi(source_b);
(*bar_chars)++;
}
-INTERNAL int code16k(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+int code16k(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
char width_pattern[100];
int current_row, rows_needed, looper, first_check, second_check;
- int indexchaine;
- int list[2][C128_MAX] = {{0}};
- char set[C128_MAX] = {0}, fset[C128_MAX], mode, last_set, current_set;
- int pads_needed, indexliste, i, j, m, read, mx_reader;
- int values[C128_MAX] = {0};
- int bar_characters;
+ int indexchaine, f_state;
+ char set[160] = {' '}, fset[160] = {' '}, mode, last_set, current_set;
+ unsigned int pads_needed, indexliste, i, j, k, m, read, mx_reader;
+ unsigned int values[160] = {0};
+ unsigned int bar_characters;
float glyph_count;
int errornum, first_sum, second_sum;
- int input_length;
+ size_t input_length;
int gs1, c_count;
- /* Suppresses clang-analyzer-core.UndefinedBinaryOperatorResult warning on fset which is fully set */
- assert(length > 0);
-
errornum = 0;
strcpy(width_pattern, "");
input_length = length;
- if ((symbol->input_mode & 0x07) == GS1_MODE) {
+ if (symbol->input_mode == GS1_MODE) {
gs1 = 1;
} else {
gs1 = 0;
}
- if (input_length > C128_MAX) {
+ if (input_length > 157) {
strcpy(symbol->errtxt, "420: Input too long");
return ZINT_ERROR_TOO_LONG;
}
bar_characters = 0;
/* Detect extended ASCII characters */
- for (i = 0; i < input_length; i++) {
- fset[i] = source[i] >= 128 ? 'f' : ' ';
+ for (i = 0; i < (unsigned int) input_length; i++) {
+ if (source[i] >= 128) {
+ fset[i] = 'f';
+ }
}
- /* Note to be safe not using extended ASCII latch as not mentioned in BS EN 12323:2005 */
+ fset[i] = '\0';
+ /* Decide when to latch to extended mode */
+ for (i = 0; i < (unsigned int) input_length; i++) {
+ j = 0;
+ if (fset[i] == 'f') {
+ do {
+ j++;
+ } while (fset[i + j] == 'f');
+ if ((j >= 5) || ((j >= 3) && ((i + j) == (input_length - 1)))) {
+ for (k = 0; k <= j; k++) {
+ fset[i + k] = 'F';
+ }
+ }
+ }
+ }
+
+ /* Decide if it is worth reverting to 646 encodation for a few characters */
+ if (input_length > 1) {
+ for (i = 1; i < (unsigned int) input_length; i++) {
+ if ((fset[i - 1] == 'F') && (fset[i] == ' ')) {
+ /* Detected a change from 8859-1 to 646 - count how long for */
+ for (j = 0; (fset[i + j] == ' ') && ((i + j) < (unsigned int) input_length); j++);
+ if ((j < 5) || ((j < 3) && ((i + j) == (input_length - 1)))) {
+ /* Change to shifting back rather than latching back */
+ for (k = 0; k < j; k++) {
+ fset[i + k] = 'n';
+ }
+ }
+ }
+ }
+ }
/* Detect mode A, B and C characters */
indexliste = 0;
indexchaine = 0;
mode = ABORC;
} /* FNC1 */
+ for (i = 0; i < 160; i++) {
+ list[0][i] = 0;
+ }
+
do {
list[1][indexliste] = mode;
while ((list[1][indexliste] == mode) && (indexchaine < input_length)) {
list[0][indexliste]++;
indexchaine++;
- if (indexchaine == input_length) {
- break;
- }
mode = parunmodd(source[indexchaine]);
if ((gs1) && (source[indexchaine] == '[')) {
mode = ABORC;
indexliste++;
} while (indexchaine < input_length);
- dxsmooth(list, &indexliste);
+ dxsmooth16(&indexliste);
/* Put set data into set[] */
read = 0;
}
}
+ /* Adjust for strings which start with shift characters - make them latch instead */
+ if (set[0] == 'a') {
+ i = 0;
+ do {
+ set[i] = 'A';
+ i++;
+ } while (set[i] == 'a');
+ }
+
+ if (set[0] == 'b') {
+ i = 0;
+ do {
+ set[i] = 'B';
+ i++;
+ } while (set[i] == 'b');
+ }
+
/* Watch out for odd-length Mode C blocks */
c_count = 0;
for (i = 0; i < read; i++) {
}
}
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Data: %.*s\n", input_length, source);
- printf(" Set: %.*s\n", input_length, set);
- printf("FSet: %.*s\n", input_length, fset);
- }
-
/* Make sure the data will fit in the symbol */
- last_set = set[0];
+ last_set = ' ';
glyph_count = 0.0;
for (i = 0; i < input_length; i++) {
if ((set[i] == 'a') || (set[i] == 'b')) {
glyph_count = glyph_count + 1.0;
}
- if (fset[i] == 'f') {
+ if ((fset[i] == 'f') || (fset[i] == 'n')) {
glyph_count = glyph_count + 1.0;
}
if (((set[i] == 'A') || (set[i] == 'B')) || (set[i] == 'C')) {
glyph_count = glyph_count - 1.0;
}
}
+ if (fset[i] == 'F') {
+ glyph_count = glyph_count + 2.0;
+ }
+ } else {
+ if ((fset[i] == 'F') && (fset[i - 1] != 'F')) {
+ glyph_count = glyph_count + 2.0;
+ }
+ if ((fset[i] != 'F') && (fset[i - 1] == 'F')) {
+ glyph_count = glyph_count + 2.0;
+ }
}
if ((set[i] == 'C') && (!((gs1) && (source[i] == '[')))) {
}
current_set = set[0];
+ f_state = 0;
+ /* f_state remembers if we are in Extended ASCII mode (value 1) or
+ in ISO/IEC 646 mode (value 0) */
+ if (fset[0] == 'F') {
+ switch (current_set) {
+ case 'A':
+ values[bar_characters] = 101;
+ values[bar_characters + 1] = 101;
+ break;
+ case 'B':
+ values[bar_characters] = 100;
+ values[bar_characters + 1] = 100;
+ break;
+ }
+ bar_characters += 2;
+ f_state = 1;
+ }
+
read = 0;
/* Encode the data */
}
}
- if (fset[read] == 'f') {
+ if (read != 0) {
+ if ((fset[read] == 'F') && (f_state == 0)) {
+ /* Latch beginning of extended mode */
+ switch (current_set) {
+ case 'A':
+ values[bar_characters] = 101;
+ values[bar_characters + 1] = 101;
+ break;
+ case 'B':
+ values[bar_characters] = 100;
+ values[bar_characters + 1] = 100;
+ break;
+ }
+ bar_characters += 2;
+ f_state = 1;
+ }
+ if ((fset[read] == ' ') && (f_state == 1)) {
+ /* Latch end of extended mode */
+ switch (current_set) {
+ case 'A':
+ values[bar_characters] = 101;
+ values[bar_characters + 1] = 101;
+ break;
+ case 'B':
+ values[bar_characters] = 100;
+ values[bar_characters + 1] = 100;
+ break;
+ }
+ bar_characters += 2;
+ f_state = 0;
+ }
+ }
+
+ if ((fset[i] == 'f') || (fset[i] == 'n')) {
/* Shift extended mode */
switch (current_set) {
case 'A':
bar_characters++;
}
- if ((set[read] == 'a') || (set[read] == 'b')) {
+ if ((set[i] == 'a') || (set[i] == 'b')) {
/* Insert shift character */
values[bar_characters] = 98;
bar_characters++;
bar_characters++;
read++;
}
- } while (read < input_length);
+ } while (read < ustrlen(source));
pads_needed = 5 - ((bar_characters + 2) % 5);
if (pads_needed == 5) {
pads_needed += 8 - (bar_characters + pads_needed);
}
for (i = 0; i < pads_needed; i++) {
- values[bar_characters] = 103;
+ values[bar_characters] = 106;
bar_characters++;
}
values[bar_characters + 1] = second_check;
bar_characters += 2;
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Codewords:");
- for (i = 0; i < bar_characters; i++) {
- printf(" %d", values[i]);
- }
- printf("\n");
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump_int(symbol, values, bar_characters); /* Missing row start/stop */
- }
-#endif
-
for (current_row = 0; current_row < rows_needed; current_row++) {
- int writer;
+ unsigned int writer;
int flip_flop;
- int len;
strcpy(width_pattern, "");
strcat(width_pattern, C16KStartStop[C16KStartValues[current_row]]);
/* Write the information into the symbol */
writer = 0;
flip_flop = 1;
- for (mx_reader = 0, len = strlen(width_pattern); mx_reader < len; mx_reader++) {
+ for (mx_reader = 0; mx_reader < strlen(width_pattern); mx_reader++) {
for (looper = 0; looper < ctoi(width_pattern[mx_reader]); looper++) {
if (flip_flop == 1) {
set_module(symbol, current_row, writer);
symbol->rows = rows_needed;
symbol->width = 70;
+ return errornum;
+}
- symbol->output_options |= BARCODE_BIND;
- if (symbol->border_width == 0) { /* Allow override if non-zero */
- symbol->border_width = 1; /* BS EN 12323:2005 Section 4.3.7 minimum (note change from previous default 2) */
- }
- return errornum;
-}
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
#include "common.h"
#include "code49.h"
-#define INSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%!&*"
+#define INSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%!&*"
/* "!" represents Shift 1 and "&" represents Shift 2, "*" represents FNC1 */
-INTERNAL int code_49(struct zint_symbol *symbol, unsigned char source[], const int length) {
+int code_49(struct zint_symbol *symbol, unsigned char source[], const int length) {
int i, j, rows, M, x_count, y_count, z_count, posn_val, local_value;
char intermediate[170] = "";
int codewords[170], codeword_count;
int pad_count = 0;
char pattern[80];
int gs1;
- int h, len;
+ size_t h;
if (length > 81) {
strcpy(symbol->errtxt, "430: Input too long");
return ZINT_ERROR_TOO_LONG;
}
- if ((symbol->input_mode & 0x07) == GS1_MODE) {
+ if (symbol->input_mode == GS1_MODE) {
gs1 = 1;
strcpy(intermediate, "*"); /* FNC1 */
} else {
}
c_grid[rows - 1][7] = j % 49;
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Codewords:\n");
- for (i = 0; i < rows; i++) {
- for (j = 0; j < 8; j++) {
- printf(" %2d", c_grid[i][j]);
- }
- printf("\n");
- }
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump_int(symbol, (int *)c_grid, rows * 8);
- }
-#endif
-
/* Transfer data to symbol character array (w grid) */
for (i = 0; i < rows; i++) {
for (j = 0; j < 4; j++) {
/* Expand into symbol */
symbol->row_height[i] = 10;
- for (j = 0, len = strlen(pattern); j < len; j++) {
+ for (j = 0; j < strlen(pattern); j++) {
if (pattern[j] == '1') {
set_module(symbol, i, j);
}
symbol->rows = rows;
symbol->width = strlen(pattern);
-
- symbol->output_options |= BARCODE_BIND;
-
- if (symbol->border_width == 0) { /* Allow override if non-zero */
- symbol->border_width = 1; /* ANSI/AIM BC6-2000 Section 2.1 (note change from previous default 2) */
+ symbol->whitespace_width = 10;
+ if (!(symbol->output_options & BARCODE_BIND)) {
+ symbol->output_options += BARCODE_BIND;
}
+ symbol->border_width = 2;
return 0;
}
+
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
SUCH DAMAGE.
*/
/* vim: set ts=4 sw=4 et : */
+#include <string.h>
#include <stdio.h>
-#ifdef _MSC_VER
-#include <malloc.h>
-#endif
+#include <stdlib.h>
#include "common.h"
+/* Local replacement for strlen() with unsigned char strings */
+size_t ustrlen(const unsigned char data[]) {
+ return strlen((const char*) data);
+}
+
/* Converts a character 0-9 to its equivalent integer value */
-INTERNAL int ctoi(const char source) {
+int ctoi(const char source) {
if ((source >= '0') && (source <= '9'))
return (source - '0');
if ((source >= 'A') && (source <= 'F'))
return -1;
}
-/* Convert an integer value to a string representing its binary equivalent */
-INTERNAL void bin_append(const int arg, const int length, char *binary) {
- size_t posn = strlen(binary);
-
- bin_append_posn(arg, length, binary, posn);
-
- binary[posn + length] = '\0';
-}
-/* Convert an integer value to a string representing its binary equivalent at a set position */
-INTERNAL void bin_append_posn(const int arg, const int length, char *binary, size_t posn) {
+/* Convert an integer value to a string representing its binary equivalent */
+void bin_append(const int arg, const int length, char *binary) {
int i;
int start;
+ size_t posn = strlen(binary);
start = 0x01 << (length - 1);
binary[posn + i] = '1';
}
}
+ binary[posn + length] = '\0';
+
+ return;
}
/* Converts an integer value to its hexadecimal character */
-INTERNAL char itoc(const int source) {
+char itoc(const int source) {
if ((source >= 0) && (source <= 9)) {
return ('0' + source);
} else {
return ('A' + (source - 10));
}
}
-
/* Converts lower case characters to upper case in a string source[] */
-INTERNAL void to_upper(unsigned char source[]) {
+void to_upper(unsigned char source[]) {
size_t i, src_len = ustrlen(source);
for (i = 0; i < src_len; i++) {
}
/* Verifies that a string only uses valid characters */
-INTERNAL int is_sane(const char test_string[], const unsigned char source[], const size_t length) {
+int is_sane(const char test_string[], const unsigned char source[], const size_t length) {
unsigned int j;
size_t i, lt = strlen(test_string);
}
/* Replaces huge switch statements for looking up in tables */
-INTERNAL void lookup(const char set_string[], const char *table[], const char data, char dest[]) {
+void lookup(const char set_string[], const char *table[], const char data, char dest[]) {
size_t i, n = strlen(set_string);
for (i = 0; i < n; i++) {
}
/* Returns the position of data in set_string */
-INTERNAL int posn(const char set_string[], const char data) {
+int posn(const char set_string[], const char data) {
int i, n = (int)strlen(set_string);
for (i = 0; i < n; i++) {
}
/* Returns the number of times a character occurs in a string */
-INTERNAL int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c) {
+int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c) {
int count = 0;
- unsigned int i;
+ int i;
for (i = 0; i < length; i++) {
if (string[i] == c) {
count++;
return count;
}
-/* Return true (1) if a module is dark/black/colour, otherwise false (0) */
-INTERNAL int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord) {
- if (symbol->symbology == BARCODE_ULTRA) {
- return symbol->encoded_data[y_coord][x_coord];
- } else {
- return (symbol->encoded_data[y_coord][x_coord / 8] >> (x_coord % 8)) & 1;
- }
+/* Return true (1) if a module is dark/black, otherwise false (0) */
+int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord) {
+ return (symbol->encoded_data[y_coord][x_coord / 7] >> (x_coord % 7)) & 1;
}
/* Set a module to dark/black */
-INTERNAL void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) {
- symbol->encoded_data[y_coord][x_coord / 8] |= 1 << (x_coord % 8);
-}
-
-/* Set a module to a colour */
-INTERNAL void set_module_colour(struct zint_symbol *symbol, const int y_coord, const int x_coord, const int colour) {
- symbol->encoded_data[y_coord][x_coord] = colour;
+void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) {
+ symbol->encoded_data[y_coord][x_coord / 7] |= 1 << (x_coord % 7);
}
/* Set (or unset) a module to white */
-INTERNAL void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) {
- symbol->encoded_data[y_coord][x_coord / 8] &= ~(1 << (x_coord % 8));
+void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) {
+ symbol->encoded_data[y_coord][x_coord / 7] &= ~(1 << (x_coord % 7));
}
/* Expands from a width pattern to a bit pattern */
-INTERNAL void expand(struct zint_symbol *symbol, const char data[]) {
+void expand(struct zint_symbol *symbol, const char data[]) {
size_t reader, n = strlen(data);
int writer, i;
symbol->rows = symbol->rows + 1;
}
-/* Indicates which symbologies can have row binding
- * Note: if change this must also change version in frontend/main.c */
-INTERNAL int is_stackable(const int symbology) {
+/* Indicates which symbologies can have row binding */
+int is_stackable(const int symbology) {
if (symbology < BARCODE_PDF417) {
return 1;
}
case BARCODE_ITF14:
case BARCODE_CODE32:
case BARCODE_CODABLOCKF:
- case BARCODE_HIBC_BLOCKF:
return 1;
}
}
/* Indicates which symbols can have addon (EAN-2 and EAN-5) */
-INTERNAL int is_extendable(const int symbology) {
+int is_extendable(const int symbology) {
if (symbology == BARCODE_EANX || symbology == BARCODE_EANX_CHK) {
return 1;
}
}
/* Indicates which symbols can have composite 2D component data */
-INTERNAL int is_composite(int symbology) {
+int is_composite(int symbology) {
return symbology >= BARCODE_EANX_CC && symbology <= BARCODE_RSS_EXPSTACK_CC;
}
-INTERNAL int istwodigits(const unsigned char source[], const int length, const int position) {
- if ((position + 1 < length) && (source[position] >= '0') && (source[position] <= '9')
- && (source[position + 1] >= '0') && (source[position + 1] <= '9')) {
- return 1;
+int istwodigits(const unsigned char source[], const size_t position) {
+ if ((source[position] >= '0') && (source[position] <= '9')) {
+ if ((source[position + 1] >= '0') && (source[position + 1] <= '9')) {
+ return 1;
+ }
}
return 0;
}
-/* State machine to decode UTF-8 to Unicode codepoints (state 0 means done, state 12 means error) */
-INTERNAL unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigned char byte) {
- /*
- Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
- See https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details.
- */
-
- static const unsigned char utf8d[] = {
- /* The first part of the table maps bytes to character classes that
- * reduce the size of the transition table and create bitmasks. */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
- 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
- 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8,
-
- /* The second part is a transition table that maps a combination
- * of a state of the automaton and a character class to a state. */
- 0,12,24,36,60,96,84,12,12,12,48,72, 12,12,12,12,12,12,12,12,12,12,12,12,
- 12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
- 12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
- 12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
- 12,36,12,12,12,12,12,12,12,12,12,12,
- };
-
- unsigned int type = utf8d[byte];
-
- *codep = *state != 0 ? (byte & 0x3fu) | (*codep << 6) : (0xff >> type) & byte;
-
- *state = utf8d[256 + *state + type];
-
- return *state;
-}
-
-/* Convert UTF-8 to Unicode. If `disallow_4byte` unset, allow all values (UTF-32).
- * If `disallow_4byte` set, only allow codepoints <= U+FFFF (ie four-byte sequences not allowed) (UTF-16, no surrogates) */
-INTERNAL int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte) {
+int utf8toutf16(struct zint_symbol *symbol, const unsigned char source[], int vals[], size_t *length) {
size_t bpos;
- int jpos;
- unsigned int codepoint, state = 0;
+ int jpos, error_number;
+ int next;
bpos = 0;
jpos = 0;
+ error_number = 0;
+ next = 0;
+
+ do {
+ if (source[bpos] <= 0x7f) {
+ /* 1 byte mode (7-bit ASCII) */
+ vals[jpos] = source[bpos];
+ next = bpos + 1;
+ jpos++;
+ } else {
+ if ((source[bpos] >= 0x80) && (source[bpos] <= 0xbf)) {
+ strcpy(symbol->errtxt, "240: Corrupt Unicode data");
+ return ZINT_ERROR_INVALID_DATA;
+ }
+ if ((source[bpos] >= 0xc0) && (source[bpos] <= 0xc1)) {
+ strcpy(symbol->errtxt, "241: Overlong encoding not supported");
+ return ZINT_ERROR_INVALID_DATA;
+ }
- while (bpos < *length) {
- do {
- decode_utf8(&state, &codepoint, source[bpos++]);
- } while (bpos < *length && state != 0 && state != 12);
-
- if (state != 0) {
- strcpy(symbol->errtxt, "240: Corrupt Unicode data");
- return ZINT_ERROR_INVALID_DATA;
- }
- if (disallow_4byte && codepoint > 0xffff) {
- strcpy(symbol->errtxt, "242: Unicode sequences of more than 3 bytes not supported");
- return ZINT_ERROR_INVALID_DATA;
+ if ((source[bpos] >= 0xc2) && (source[bpos] <= 0xdf)) {
+ /* 2 byte mode */
+ vals[jpos] = ((source[bpos] & 0x1f) << 6) + (source[bpos + 1] & 0x3f);
+ next = bpos + 2;
+ jpos++;
+ } else
+ if ((source[bpos] >= 0xe0) && (source[bpos] <= 0xef)) {
+ /* 3 byte mode */
+ vals[jpos] = ((source[bpos] & 0x0f) << 12) + ((source[bpos + 1] & 0x3f) << 6) + (source[bpos + 2] & 0x3f);
+ next = bpos + 3;
+ jpos++;
+ } else
+ if (source[bpos] >= 0xf0) {
+ strcpy(symbol->errtxt, "242: Unicode sequences of more than 3 bytes not supported");
+ return ZINT_ERROR_INVALID_DATA;
+ }
}
- vals[jpos] = codepoint;
- jpos++;
- }
+ bpos = next;
+ } while (bpos < *length);
*length = jpos;
- return 0;
+ return error_number;
}
-/* Enforce minimum permissable height of rows */
-INTERNAL void set_minimum_height(struct zint_symbol *symbol, const int min_height) {
+
+void set_minimum_height(struct zint_symbol *symbol, const int min_height) {
+ /* Enforce minimum permissable height of rows */
int fixed_height = 0;
int zero_count = 0;
int i;
}
}
-/* Calculate optimized encoding modes. Adapted from Project Nayuki */
-INTERNAL void pn_define_mode(char* mode, const unsigned int data[], const size_t length, const int debug,
- unsigned int state[], const char mode_types[], const int num_modes, pn_head_costs head_costs, pn_switch_cost switch_cost, pn_eod_cost eod_cost, pn_cur_cost cur_cost) {
- /*
- * Copyright (c) Project Nayuki. (MIT License)
- * https://www.nayuki.io/page/qr-code-generator-library
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- * - The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- */
- int i, j, k, cm_i;
- unsigned int min_cost;
- char cur_mode;
-#ifndef _MSC_VER
- unsigned int prev_costs[num_modes];
- char char_modes[length * num_modes];
- unsigned int cur_costs[num_modes];
-#else
- unsigned int* prev_costs;
- char* char_modes;
- unsigned int* cur_costs;
- prev_costs = (unsigned int*) _alloca(num_modes * sizeof(unsigned int));
- char_modes = (char*) _alloca(length * num_modes);
- cur_costs = (unsigned int*) _alloca(num_modes * sizeof(unsigned int));
-#endif
-
- /* char_modes[i * num_modes + j] represents the mode to encode the code point at index i such that the final
- * segment ends in mode_types[j] and the total number of bits is minimized over all possible choices */
- memset(char_modes, 0, length * num_modes);
-
- /* At the beginning of each iteration of the loop below, prev_costs[j] is the minimum number of 1/6 (1/XX_MULT)
- * bits needed to encode the entire string prefix of length i, and end in mode_types[j] */
- memcpy(prev_costs, (*head_costs)(state), num_modes * sizeof(unsigned int));
-
- /* Calculate costs using dynamic programming */
- for (i = 0, cm_i = 0; i < (int) length; i++, cm_i += num_modes) {
- memset(cur_costs, 0, num_modes * sizeof(unsigned int));
-
- (*cur_cost)(state, data, length, i, char_modes, prev_costs, cur_costs);
-
- if (eod_cost && i == (int) length - 1) { /* Add end of data costs if last character */
- for (j = 0; j < num_modes; j++) {
- if (char_modes[cm_i + j]) {
- cur_costs[j] += (*eod_cost)(state, j);
- }
- }
- }
-
- /* Start new segment at the end to switch modes */
- for (j = 0; j < num_modes; j++) { /* To mode */
- for (k = 0; k < num_modes; k++) { /* From mode */
- if (j != k && char_modes[cm_i + k]) {
- unsigned int new_cost = cur_costs[k] + (*switch_cost)(state, k, j);
- if (!char_modes[cm_i + j] || new_cost < cur_costs[j]) {
- cur_costs[j] = new_cost;
- char_modes[cm_i + j] = mode_types[k];
- }
- }
- }
- }
-
- memcpy(prev_costs, cur_costs, num_modes * sizeof(unsigned int));
- }
-
- /* Find optimal ending mode */
- min_cost = prev_costs[0];
- cur_mode = mode_types[0];
- for (i = 1; i < num_modes; i++) {
- if (prev_costs[i] < min_cost) {
- min_cost = prev_costs[i];
- cur_mode = mode_types[i];
- }
- }
-
- /* Get optimal mode for each code point by tracing backwards */
- for (i = length - 1, cm_i = i * num_modes; i >= 0; i--, cm_i -= num_modes) {
- j = strchr(mode_types, cur_mode) - mode_types;
- cur_mode = char_modes[cm_i + j];
- mode[i] = cur_mode;
- }
-
- if (debug & ZINT_DEBUG_PRINT) {
- printf(" Mode: %.*s\n", (int)length, mode);
- }
-}
-
-#ifdef ZINT_TEST
-/* Dumps hex-formatted codewords in symbol->errtxt (for use in testing) */
-void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewords, int length) {
- int i, max = length, cnt_len = 0;
- if (length > 30) { /* 30*3 < errtxt 92 (100 - "Warning ") chars */
- sprintf(symbol->errtxt, "(%d) ", length); /* Place the number of codewords at the front */
- cnt_len = strlen(symbol->errtxt);
- max = 30 - (cnt_len + 2) / 3;
- }
- for (i = 0; i < max; i++) {
- sprintf(symbol->errtxt + cnt_len + i * 3, "%02X ", codewords[i]);
- }
- symbol->errtxt[strlen(symbol->errtxt) - 1] = '\0'; /* Zap last space */
-}
-
-void debug_test_codeword_dump_int(struct zint_symbol *symbol, int* codewords, int length) {
- int i, max = 0, cnt_len, errtxt_len;
- char temp[20];
- errtxt_len = sprintf(symbol->errtxt, "(%d) ", length); /* Place the number of codewords at the front */
- for (i = 0, cnt_len = errtxt_len; i < length; i++) {
- cnt_len += sprintf(temp, "%d ", codewords[i]);
- if (cnt_len > 92) {
- break;
- }
- max++;
- }
- for (i = 0; i < max; i++) {
- errtxt_len += sprintf(symbol->errtxt + errtxt_len, "%d ", codewords[i]);
- }
- symbol->errtxt[strlen(symbol->errtxt) - 1] = '\0'; /* Zap last space */
-}
-#endif
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
#define __COMMON_H
#ifndef FALSE
-#define FALSE 0
+#define FALSE 0
#endif
#ifndef TRUE
-#define TRUE 1
+#define TRUE 1
#endif
/* The most commonly used set */
-#define NEON "0123456789"
+#define NEON "0123456789"
#include "zint.h"
#include <stdlib.h>
-#include <string.h>
-/* Helpers to cast away char pointer signedness */
-#define ustrlen(source) strlen((const char *) (source))
-#define ustrcpy(target, source) strcpy((char *) (target), (const char *) (source))
-#define ustrcat(target, source) strcat((char *) (target), (const char *) (source))
-
-#if defined(__GNUC__) && !defined(_WIN32) && !defined(ZINT_TEST)
-#define INTERNAL __attribute__ ((visibility ("hidden")))
-#else
-#define INTERNAL
-#endif
-
-#if defined(ZINT_TEST)
-#define STATIC_UNLESS_ZINT_TEST
-#else
-#define STATIC_UNLESS_ZINT_TEST static
-#endif
+#define ustrcpy(target,source) strcpy((char*)target,(const char*)source)
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
- INTERNAL int ctoi(const char source);
- INTERNAL char itoc(const int source);
- INTERNAL void to_upper(unsigned char source[]);
- INTERNAL int is_sane(const char test_string[], const unsigned char source[], const size_t length);
- INTERNAL void lookup(const char set_string[], const char *table[], const char data, char dest[]);
- INTERNAL void bin_append(const int arg, const int length, char *binary);
- INTERNAL void bin_append_posn(const int arg, const int length, char *binary, size_t posn);
- INTERNAL int posn(const char set_string[], const char data);
- INTERNAL int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c);
- INTERNAL int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord);
- INTERNAL void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord);
- INTERNAL void set_module_colour(struct zint_symbol *symbol, const int y_coord, const int x_coord, const int colour);
- INTERNAL void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord);
- INTERNAL void expand(struct zint_symbol *symbol, const char data[]);
- INTERNAL int is_stackable(const int symbology);
- INTERNAL int is_extendable(const int symbology);
- INTERNAL int is_composite(const int symbology);
- INTERNAL int istwodigits(const unsigned char source[], int length, const int position);
- INTERNAL unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigned char byte);
- INTERNAL int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte);
- INTERNAL void set_minimum_height(struct zint_symbol *symbol, const int min_height);
-
- typedef unsigned int* (*pn_head_costs)(unsigned int state[]);
- typedef unsigned int (*pn_switch_cost)(unsigned int state[], const int k, const int j);
- typedef unsigned int (*pn_eod_cost)(unsigned int state[], const int k);
- typedef void (*pn_cur_cost)(unsigned int state[], const unsigned int data[], const size_t length, const int i, char* char_modes, unsigned int prev_costs[], unsigned int cur_costs[]);
- INTERNAL void pn_define_mode(char* mode, const unsigned int data[], const size_t length, const int debug,
- unsigned int state[], const char mode_types[], const int num_modes, pn_head_costs head_costs, pn_switch_cost switch_cost, pn_eod_cost eod_cost, pn_cur_cost cur_cost);
-
- #ifdef ZINT_TEST
- void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewords, int length);
- void debug_test_codeword_dump_int(struct zint_symbol *symbol, int* codewords, int length);
- #endif
-
+ extern size_t ustrlen(const unsigned char data[]);
+ extern int ctoi(const char source);
+ extern char itoc(const int source);
+ extern void to_upper(unsigned char source[]);
+ extern int is_sane(const char test_string[], const unsigned char source[], const size_t length);
+ extern void lookup(const char set_string[], const char *table[], const char data, char dest[]);
+ extern void bin_append(const int arg, const int length, char *binary);
+ extern int posn(const char set_string[], const char data);
+ extern int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c);
+ extern int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord);
+ extern void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord);
+ extern int istwodigits(const unsigned char source[], const size_t position);
+ extern int parunmodd(const unsigned char llyth);
+ extern void expand(struct zint_symbol *symbol, const char data[]);
+ extern void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord);
+ extern int is_stackable(const int symbology);
+ extern int is_extendable(const int symbology);
+ extern int is_composite(const int symbology);
+ extern int utf8toutf16(struct zint_symbol *symbol, const unsigned char source[], int vals[], size_t *length);
+ extern void set_minimum_height(struct zint_symbol *symbol, const int min_height);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#define UINT unsigned short
-INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int length);
-INTERNAL int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length);
-INTERNAL void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]);
-INTERNAL int rss14(struct zint_symbol *symbol, unsigned char source[], int length);
-INTERNAL int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length);
-INTERNAL int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length);
+extern int eanx(struct zint_symbol *symbol, unsigned char source[], int length);
+extern int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length);
+extern void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]);
+extern int rss14(struct zint_symbol *symbol, unsigned char source[], int length);
+extern int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length);
+extern int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length);
static UINT pwr928[69][7];
for (i = 0; i < 8; i++) {
rsCodeWords[i] = 0;
}
+ total = 0;
for (i = 0; i < cwCnt; i++) {
total = (codeWords[i] + rsCodeWords[k - 1]) % 929;
for (j = k - 1; j >= 0; j--) {
for (loop = 0; loop < 50; loop++) {
mccorrection[loop] = 0;
}
+ total = 0;
for (i = 0; i < longueur; i++) {
total = (chainemc[i] + mccorrection[k - 1]) % 929;
for (j = k - 1; j >= 0; j--) {
for (loop = 0; loop < 520; loop++) {
mccorrection[loop] = 0;
}
+ total = 0;
for (i = 0; i < longueur; i++) {
total = (chainemc[i] + mccorrection[k - 1]) % 929;
for (j = k - 1; j >= 0; j--) {
return target_bitsize;
}
-static int calc_padding_ccb(int binary_length, int cc_width) {
+int calc_padding_ccb(int binary_length, int cc_width) {
int target_bitsize = 0;
switch (cc_width) {
return target_bitsize;
}
-static int calc_padding_ccc(int binary_length, int *cc_width, int lin_width, int *ecc) {
+int calc_padding_ccc(int binary_length, int *cc_width, int lin_width, int *ecc) {
int target_bitsize = 0;
int byte_length, codewords_used, ecc_level, ecc_codewords, rows;
int codewords_total, target_codewords, target_bytesize;
following the two-digit AI 90 starts with an alphanumeric string which
complies with a specific format." (para 5.3.2) */
- memset(ninety, 0, source_len + 1);
i = 0;
do {
ninety[i] = source[i + 2];
return 0;
}
-static int linear_dummy_run(unsigned char *source, int length) {
+int linear_dummy_run(unsigned char *source, int length) {
struct zint_symbol *dummy;
int error_number;
int linear_width;
}
}
-INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int length) {
+int composite(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number, cc_mode, cc_width, ecc_level;
int j, i, k;
unsigned int bs = 13 * length + 500 + 1; /* Allow for 8 bits + 5-bit latch per char + 500 bits overhead/padding */
return (E_INVALIDARG);
pdvi->info1.dwMajorVersion = 2;
- pdvi->info1.dwMinorVersion = 8;
+ pdvi->info1.dwMinorVersion = 2;
pdvi->info1.dwBuildNumber = 1;
pdvi->info1.dwPlatformID = DLLVER_PLATFORM_WINDOWS;
if (sizeof(DLLVERSIONINFO2) == pdvi->info1.cbSize)
- pdvi->ullVersion = MAKEDLLVERULL(2, 8, 1, 0);
+ pdvi->ullVersion = MAKEDLLVERULL(2, 2, 1, 0);
return S_OK;
}
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <assert.h>
#define ceilf ceil
#endif
#endif
-#include "common.h"
#include "reedsol.h"
+#include "common.h"
#include "dmatrix.h"
/* Annex M placement alorithm low level */
/* Encodes data using ASCII, C40, Text, X12, EDIFACT or Base 256 modes as appropriate
Supports encoding FNC1 in supporting systems */
-static int dm200encode(struct zint_symbol *symbol, const unsigned char source[], unsigned char target[], int *last_mode, size_t *length_p, int process_buffer[], int *process_p, int *binlen_p) {
+static int dm200encode(struct zint_symbol *symbol, const unsigned char source[], unsigned char target[], int *last_mode, size_t *length_p, int process_buffer[], int *process_p) {
size_t sp;
int tp, i, gs1;
size_t inputlen = *length_p;
int debug = symbol->debug;
#ifndef _MSC_VER
- char binary[2 * inputlen + 1 + 4 + 1]; /* Allow for GS1/READER_INIT, ECI and nul chars overhead */
+ char binary[2 * inputlen];
#else
- char* binary = (char*) _alloca(2 * inputlen + 1 + 4 + 1);
+ char* binary = (char*) _alloca(2 * inputlen);
#endif
sp = 0;
next_mode = DM_ASCII;
/* gs1 flag values: 0: no gs1, 1: gs1 with FNC1 serparator, 2: GS separator */
- if ((symbol->input_mode & 0x07) == GS1_MODE) {
+ if (symbol->input_mode == GS1_MODE) {
if (symbol->output_options & GS1_GS_SEPARATOR) {
gs1 = 2;
} else {
if (symbol->output_options & READER_INIT) {
if (gs1) {
- strcpy(symbol->errtxt, "521: Cannot encode in GS1 mode and Reader Initialisation at the same time");
+ strcpy(symbol->errtxt, "519: Cannot encode in GS1 mode and Reader Initialisation at the same time");
return ZINT_ERROR_INVALID_OPTION;
} else {
target[tp] = 234;
if (current_mode == DM_ASCII) {
next_mode = DM_ASCII;
- if (istwodigits(source, inputlen, sp)) {
+ if (istwodigits(source, sp) && ((sp + 1) != inputlen)) {
target[tp] = (unsigned char) ((10 * ctoi(source[sp])) + ctoi(source[sp + 1]) + 130);
if (debug) printf("N%d ", target[tp] - 130);
tp++;
process_buffer[*process_p] = value;
(*process_p)++;
- while (*process_p >= 3) {
+ if (*process_p >= 3) {
int iv;
iv = (1600 * process_buffer[0]) + (40 * process_buffer[1]) + (process_buffer[2]) + 1;
process_buffer[*process_p] = value;
(*process_p)++;
- while (*process_p >= 3) {
+ if (*process_p >= 3) {
int iv;
iv = (1600 * process_buffer[0]) + (40 * process_buffer[1]) + (process_buffer[2]) + 1;
process_buffer[*process_p] = value;
(*process_p)++;
- while (*process_p >= 3) {
+ if (*process_p >= 3) {
int iv;
iv = (1600 * process_buffer[0]) + (40 * process_buffer[1]) + (process_buffer[2]) + 1;
sp++;
}
- while (*process_p >= 4) {
+ if (*process_p >= 4) {
target[tp] = (unsigned char) ((process_buffer[0] << 2) + ((process_buffer[1] & 0x30) >> 4));
tp++;
target[tp] = ((process_buffer[1] & 0x0f) << 4) + ((process_buffer[2] & 0x3c) >> 2);
}
if (tp > 1558) {
- strcpy(symbol->errtxt, "520: Data too long to fit in symbol");
- return ZINT_ERROR_TOO_LONG;
+ return 0;
}
} /* while */
}
*(last_mode) = current_mode;
- *binlen_p = tp;
- return 0;
+ return tp;
}
static int dm200encode_remainder(unsigned char target[], int target_length, const unsigned char source[], const size_t inputlen, const int last_mode, const int process_buffer[], const int process_p, const int symbols_left) {
}
}
-static int data_matrix_200(struct zint_symbol *symbol,const unsigned char source[], const size_t in_length) {
- int i, skew = 0;
- size_t inputlen = in_length;
+int data_matrix_200(struct zint_symbol *symbol,const unsigned char source[], const size_t in_length) {
+ int i, skew = 0;
+ size_t inputlen=in_length;
unsigned char binary[2200];
int binlen;
int process_buffer[8]; /* holds remaining data to finalised */
int symbols_left;
/* inputlen may be decremented by 2 if macro character is used */
- error_number = dm200encode(symbol, source, binary, &last_mode, &inputlen, process_buffer, &process_p, &binlen);
- if (error_number != 0) {
- return error_number;
+ binlen = dm200encode(symbol, source, binary, &last_mode, &inputlen, process_buffer, &process_p);
+
+ if (binlen == 0) {
+ strcpy(symbol->errtxt, "520: Data too long to fit in symbol");
+ return ZINT_ERROR_TOO_LONG;
}
if ((symbol->option_2 >= 1) && (symbol->option_2 <= DMSIZESCOUNT)) {
#ifdef DEBUG
{
int CWCount;
- int posCur;
+ int posCur;
if (skew)
CWCount = 1558 + 620;
else
// Print position matrix as in standard
for (y = NR - 1; y >= 0; y--) {
for (x = 0; x < NC; x++) {
- int v;
+ int v;
if (x != 0)
fprintf(stderr, "|");
v = places[(NR - y - 1) * NC + x];
return error_number;
}
-INTERNAL int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
+int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
int error_number;
if (symbol->option_1 <= 1) {
return error_number;
}
+
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/*
Containes Extended Rectangular Data Matrix (DMRE)
Contact: harald.oehlmann@eurodatacouncil.org
*/
-#ifndef __DMATRIX_H
-#define __DMATRIX_H
+#include "common.h"
+
+#ifndef __IEC16022ECC200_H
+#define __IEC16022ECC200_H
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+extern int data_matrix_200(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
#define MAXBARCODE 3116
/*44*/ 56, /*104x104*/ 68, /*120x120*/ 62, /*132x132*/ 62 /*144x144*/
};
-#endif /* __DMATRIX_H */
+
+#endif
+
/*
libzint - the open source barcode library
- Copyright (C) 2017-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2017-2019 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/*
- * Attempts to encode DotCode according to (AIMD013) ISS DotCode Rev. 4.0, DRAFT 0.15, TSC Pre-PR #5, dated May 28, 2019
+ * Attempts to encode DotCode according to AIMD013 Rev 1.34a, dated Feb 19, 2009
* Incorporating suggestions from Terry Burton at BWIPP
*/
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <math.h>
#ifndef _MSC_VER
#include <stdint.h>
0x1b8, 0x1c6, 0x1cc
};
-// Printed() routine from Annex A adapted to char array of ASCII 1's and 0's
static int get_dot(char Dots[], const int Hgt, const int Wid, const int x, const int y) {
int retval = 0;
return 1;
}
-// calc penalty for empty interior columns
-static int col_penalty(char *Dots, int Hgt, int Wid) {
- int x, penalty = 0, penalty_local = 0;
+/* Dot pattern scoring routine from Annex A */
+const int score_array(char Dots[], int Hgt, int Wid) {
+ int x, y, worstedge, first, last, sum;
+ int penalty_local = 0;
+ int penalty = 0;
- for (x = 1; x < Wid - 1; x++) {
- if (clr_col(Dots, Hgt, Wid, x)) {
- if (penalty_local == 0) {
- penalty_local = Hgt;
- } else {
- penalty_local *= Hgt;
- }
- } else {
- if (penalty_local) {
- penalty += penalty_local;
- penalty_local = 0;
+ // first, guard against "pathelogical" gaps in the array
+ if (Hgt & 1) {
+ if (Hgt < 12) {
+ sum = 0;
+ for (x = 1; x < Wid - 1; x++) {
+ if (!(clr_col(Dots, Hgt, Wid, x))) {
+ sum = 0;
+ if (penalty_local) {
+ penalty += penalty_local;
+ penalty_local = 0;
+ }
+ } else {
+ sum++;
+ if (sum == 1) {
+ penalty_local = Hgt;
+ } else {
+ penalty_local *= Hgt;
+ }
+ }
}
}
- }
-
- return penalty + penalty_local;
-}
-
-// calc penalty for empty interior rows
-static int row_penalty(char *Dots, int Hgt, int Wid) {
- int y, penalty = 0, penalty_local = 0;
-
- for (y = 1; y < Hgt - 1; y++) {
- if (clr_row(Dots, Hgt, Wid, y)) {
- if (penalty_local == 0) {
- penalty_local = Wid;
- } else {
- penalty_local *= Wid;
- }
- } else {
- if (penalty_local) {
- penalty += penalty_local;
- penalty_local = 0;
+ } else {
+ if (Wid < 12) {
+ sum = 0;
+ for (y = 1; y < Hgt - 1; y++) {
+ if (!(clr_row(Dots, Hgt, Wid, y))) {
+ sum = 0;
+ if (penalty_local) {
+ penalty += penalty_local;
+ penalty_local = 0;
+ }
+ } else {
+ sum++;
+ if (sum == 1) {
+ penalty_local = Wid;
+ } else {
+ penalty_local *= Wid;
+ }
+ }
}
}
}
- return penalty + penalty_local;
-}
-
-/* Dot pattern scoring routine from Annex A */
-static int score_array(char Dots[], int Hgt, int Wid) {
- int x, y, worstedge, first, last, sum;
- int penalty = 0;
-
- // first, guard against "pathelogical" gaps in the array
- // subtract a penalty score for empty rows/columns from total code score for each mask,
- // where the penalty is Sum(N ^ n), where N is the number of positions in a column/row,
- // and n is the number of consecutive empty rows/columns
- penalty = row_penalty(Dots, Hgt, Wid) + col_penalty(Dots, Hgt, Wid);
-
sum = 0;
first = -1;
last = -1;
// across the top edge, count printed dots and measure their extent
- for (x = 0; x < Wid; x += 2) {
+ for (x = 0; x < Wid; x += 2)
if (get_dot(Dots, Hgt, Wid, x, 0)) {
if (first < 0) {
first = x;
last = x;
sum++;
}
- }
+ worstedge = sum + last - first;
+ worstedge *= Hgt;
+
if (sum == 0) {
return SCORE_UNLIT_EDGE; // guard against empty top edge
}
- worstedge = sum + last - first;
- worstedge *= Hgt;
-
sum = 0;
first = -1;
last = -1;
- // across the bottom edge, ditto
- for (x = Wid & 1; x < Wid; x += 2) {
+ //across the bottom edge, ditto
+ for (x = Wid & 1; x < Wid; x += 2)
if (get_dot(Dots, Hgt, Wid, x, Hgt - 1)) {
if (first < 0) {
first = x;
last = x;
sum++;
}
- }
- if (sum == 0) {
- return SCORE_UNLIT_EDGE; // guard against empty bottom edge
- }
-
sum += last - first;
sum *= Hgt;
if (sum < worstedge) {
worstedge = sum;
}
+ if (sum == 0) {
+ return SCORE_UNLIT_EDGE; // guard against empty bottom edge
+ }
+
sum = 0;
first = -1;
last = -1;
- // down the left edge, ditto
- for (y = 0; y < Hgt; y += 2) {
+ //down the left edge, ditto
+ for (y = 0; y < Hgt; y += 2)
if (get_dot(Dots, Hgt, Wid, 0, y)) {
if (first < 0) {
first = y;
last = y;
sum++;
}
- }
- if (sum == 0) {
- return SCORE_UNLIT_EDGE; // guard against empty left edge
- }
-
sum += last - first;
sum *= Wid;
if (sum < worstedge) {
worstedge = sum;
}
+ if (sum == 0) {
+ return SCORE_UNLIT_EDGE; // guard against empty left edge
+ }
+
sum = 0;
first = -1;
last = -1;
- // down the right edge, ditto
- for (y = Hgt & 1; y < Hgt; y += 2) {
+ //down the right edge, ditto
+ for (y = Hgt & 1; y < Hgt; y += 2)
if (get_dot(Dots, Hgt, Wid, Wid - 1, y)) {
if (first < 0) {
first = y;
last = y;
sum++;
}
- }
- if (sum == 0) {
- return SCORE_UNLIT_EDGE; // guard against empty right edge
- }
-
sum += last - first;
sum *= Wid;
if (sum < worstedge) {
worstedge = sum;
}
+ if (sum == 0) {
+ return SCORE_UNLIT_EDGE; // guard against empty right edge
+ }
+
// throughout the array, count the # of unprinted 5-somes (cross patterns)
// plus the # of printed dots surrounded by 8 unprinted neighbors
sum = 0;
// employing Galois Field GF, where GF is prime, with a prime modulus of PM
//-------------------------------------------------------------------------
-static void rsencode(int nd, int nc, unsigned char *wd) {
- // roots (antilogs): root[0] = 1; for (i = 1; i < GF - 1; i++) root[i] = (PM * root[i - 1]) % GF;
- static int root[GF - 1] = {
- 1, 3, 9, 27, 81, 17, 51, 40, 7, 21,
- 63, 76, 2, 6, 18, 54, 49, 34, 102, 80,
- 14, 42, 13, 39, 4, 12, 36, 108, 98, 68,
- 91, 47, 28, 84, 26, 78, 8, 24, 72, 103,
- 83, 23, 69, 94, 56, 55, 52, 43, 16, 48,
- 31, 93, 53, 46, 25, 75, 112, 110, 104, 86,
- 32, 96, 62, 73, 106, 92, 50, 37, 111, 107,
- 95, 59, 64, 79, 11, 33, 99, 71, 100, 74,
- 109, 101, 77, 5, 15, 45, 22, 66, 85, 29,
- 87, 35, 105, 89, 41, 10, 30, 90, 44, 19,
- 57, 58, 61, 70, 97, 65, 82, 20, 60, 67,
- 88, 38
- };
- int i, j, k, nw, start, step, c[GF];
+void rsencode(int nd, int nc, unsigned char *wd) {
+ int i, j, k, nw, start, step, root[GF], c[GF];
+
+ // Start by generating "nc" roots (antilogs):
+ root[0] = 1;
+ for (i = 1; (i <= nc) && (i < GF); i++)
+ root[i] = (PM * root[i - 1]) % GF;
// Here we compute how many interleaved R-S blocks will be needed
nw = nd + nc;
// ...& then for each such block:
for (start = 0; start < step; start++) {
- int ND = (nd - start + step - 1) / step;
- int NW = (nw - start + step - 1) / step;
- int NC = NW - ND;
+ int ND = (nd - start + step - 1) / step, NW = (nw - start + step - 1) / step, NC = NW - ND;
// first compute the generator polynomial "c" of order "NC":
- memset(c, 0, GF * sizeof(int)); // Keep clang-tidy happy (as far as UndefinedBinaryOperatorResult warning below at least)
-
+ for (i = 1; i <= NC; i++)
+ c[i] = 0;
c[0] = 1;
+
for (i = 1; i <= NC; i++) {
for (j = NC; j >= 1; j--) {
c[j] = (GF + c[j] - (root[i] * c[j - 1]) % GF) % GF;
// & then compute the corresponding checkword values into wd[]
// ... (a) starting at wd[start] & (b) stepping by step
- for (i = ND; i < NW; i++) {
+ for (i = ND; i < NW; i++)
wd[start + i * step] = 0;
- }
for (i = 0; i < ND; i++) {
- k = (wd[start + i * step] + wd[start + ND * step]) % GF; // NOLINT wd set 0..(nd - 1) and start + i * step <= nd - 1
+ k = (wd[start + i * step] + wd[start + ND * step]) % GF;
for (j = 0; j < NC - 1; j++) {
wd[start + (ND + j) * step] = (GF - ((c[j + 1] * k) % GF) + wd[start + (ND + j + 1) * step]) % GF;
}
wd[start + (ND + NC - 1) * step] = (GF - ((c[NC] * k) % GF)) % GF;
}
- for (i = ND; i < NW; i++) {
+ for (i = ND; i < NW; i++)
wd[start + i * step] = (GF - wd[start + i * step]) % GF;
- }
}
}
/* Check if the next character is directly encodable in code set A (Annex F.II.D) */
-static int datum_a(const unsigned char source[], int position, int length) {
+int datum_a(const unsigned char source[], int position, int length) {
int retval = 0;
if (position < length) {
return retval;
}
-/* Check if the next character is directly encodable in code set B (Annex F.II.D). Note changed to return 2 if CR/LF */
-static int datum_b(const unsigned char source[], int position, int length) {
+/* Check if the next character is directly encodable in code set B (Annex F.II.D) */
+int datum_b(const unsigned char source[], int position, int length) {
int retval = 0;
if (position < length) {
retval = 1;
}
- if (position + 1 < length) {
+ if (position != length - 2) {
if ((source[position] == 13) && (source[position + 1] == 10)) { // CRLF
- retval = 2;
+ retval = 1;
}
}
}
}
/* Check if the next characters are directly encodable in code set C (Annex F.II.D) */
-static int datum_c(const unsigned char source[], int position, int length) {
+int datum_c(const unsigned char source[], int position, int length) {
int retval = 0;
if (position <= length - 2) {
}
/* Returns how many consecutive digits lie immediately ahead (Annex F.II.A) */
-static int n_digits(const unsigned char source[], int position, int length) {
+int n_digits(const unsigned char source[], int position, int length) {
int i;
for (i = position; ((source[i] >= '0') && (source[i] <= '9')) && (i < length); i++);
}
/* checks ahead for 10 or more digits starting "17xxxxxx10..." (Annex F.II.B) */
-static int seventeen_ten(const unsigned char source[], int position, int length) {
+int seventeen_ten(const unsigned char source[], int position, int length) {
int found = 0;
if (n_digits(source, position, length) >= 10) {
/* checks how many characters ahead can be reached while datum_c is true,
* returning the resulting number of codewords (Annex F.II.E)
*/
-static int ahead_c(const unsigned char source[], int position, int length) {
+int ahead_c(const unsigned char source[], int position, int length) {
int count = 0;
int i;
}
/* Annex F.II.F */
-static int try_c(const unsigned char source[], int position, int length) {
+int try_c(const unsigned char source[], int position, int length) {
int retval = 0;
if (n_digits(source, position, length) > 0) {
}
/* Annex F.II.G */
-static int ahead_a(const unsigned char source[], int position, int length) {
+int ahead_a(const unsigned char source[], int position, int length) {
int count = 0;
int i;
return count;
}
-/* Annex F.II.H Note: changed to return number of chars encodable. Number of codewords returned in *p_nx. */
-static int ahead_b(const unsigned char source[], int position, int length, int *p_nx) {
+/* Annex F.II.H */
+int ahead_b(const unsigned char source[], int position, int length) {
int count = 0;
- int i, incr;
+ int i;
- for (i = position; (i < length) && (incr = datum_b(source, i, length))
- && (try_c(source, i, length) < 2); i += incr) {
+ for (i = position; ((i < length) && datum_b(source, i, length))
+ && (try_c(source, i, length) < 2); i++) {
count++;
}
- if (p_nx != NULL) {
- *p_nx = count;
- }
-
- return i - position;
+ return count;
}
/* checks if the next character is in the range 128 to 255 (Annex F.II.I) */
-static int binary(const unsigned char source[], int length, int position) {
+int binary(const unsigned char source[], int position) {
int retval = 0;
- if (position < length && source[position] >= 128) {
+ if (source[position] >= 128) {
retval = 1;
}
}
/* Analyse input data stream and encode using algorithm from Annex F */
-static int dotcode_encode_message(struct zint_symbol *symbol, const unsigned char source[], int length, unsigned char *codeword_array, int *binary_finish) {
- static char lead_specials[] = "\x09\x1C\x1D\x1E"; // HT, FS, GS, RS
-
+int dotcode_encode_message(struct zint_symbol *symbol, const unsigned char source[], int length, unsigned char *codeword_array, int *binary_finish) {
int input_position, array_length, i;
char encoding_mode;
int inside_macro;
- int debug = (symbol->debug & ZINT_DEBUG_PRINT);
+ int debug = symbol->debug;
int binary_buffer_size = 0;
int lawrencium[6]; // Reversed radix 103 values
- int nx;
#if defined(_MSC_VER) && _MSC_VER == 1200
uint64_t binary_buffer = 0;
array_length++;
}
- if ((symbol->input_mode & 0x07) != GS1_MODE) {
+ if (symbol->input_mode != GS1_MODE) {
if (length > 2) {
if (((source[input_position] >= '0') && (source[input_position] <= '9')) &&
((source[input_position + 1] >= '0') && (source[input_position + 1] <= '9'))) {
// the next three codewords valued A, B & C encode the ECI value of
// (A - 40) * 12769 + B * 113 + C + 40 (Section 5.2.1)
int a, b, c;
- a = (symbol->eci - 40) / 12769;
- b = ((symbol->eci - 40) - (12769 * a)) / 113;
+ a = (symbol->eci - 40) % 12769;
+ b = ((symbol->eci - 40) - (12769 * a)) % 113;
c = (symbol->eci - 40) - (12769 * a) - (113 * b);
codeword_array[array_length] = a + 40;
}
// Prevent encodation as a macro if a special character is in first position
- if (strchr(lead_specials, source[input_position]) != NULL) {
+ if (source[input_position] == 9) {
codeword_array[array_length] = 101; // Latch A
array_length++;
- codeword_array[array_length] = source[input_position] + 64;
+ codeword_array[array_length] = 73; // HT
array_length++;
encoding_mode = 'A';
- input_position++;
}
- while (input_position < length) {
+ if (source[input_position] == 28) {
+ codeword_array[array_length] = 101; // Latch A
+ array_length++;
+ codeword_array[array_length] = 92; // FS
+ array_length++;
+ encoding_mode = 'A';
+ }
+
+ if (source[input_position] == 29) {
+ codeword_array[array_length] = 101; // Latch A
+ array_length++;
+ codeword_array[array_length] = 93; // GS
+ array_length++;
+ encoding_mode = 'A';
+ }
+
+ if (source[input_position] == 30) {
+ codeword_array[array_length] = 101; // Latch A
+ array_length++;
+ codeword_array[array_length] = 94; // RS
+ array_length++;
+ encoding_mode = 'A';
+ }
+
+ do {
int done = 0;
/* Step A */
if ((input_position == length - 2) && (inside_macro != 0) && (inside_macro != 100)) {
}
}
- /* Step B */
if ((input_position == length - 1) && (inside_macro == 100)) {
// inside_macro only gets set to 100 if the last character is EOT
input_position++;
done = 1;
if (debug) {
- printf("B ");
+ printf("A ");
}
}
- /* Step C1 */
+ /* Step B1 */
if ((!done) && (encoding_mode == 'C')) {
- if ((array_length == 0) && (length > 6)) {
+ if ((array_length == 0) && (length > 9)) {
if ((source[input_position] == '[')
&& (source[input_position + 1] == ')')
&& (source[input_position + 2] == '>')
&& (source[input_position + 3] == 30) // RS
- && (source[length - 1] == 4)) { // EOT
+ && (source[length - 1] == 04)) { // EOT
if ((source[input_position + 6] == 29) && (source[length - 2] == 30)) { // GS/RS
if ((source[input_position + 4] == '0') && (source[input_position + 5] == '5')) {
- codeword_array[array_length] = 106; // Latch B
+ codeword_array[array_length] = 102; // Shift B
array_length++;
- encoding_mode = 'B';
codeword_array[array_length] = 97; // Macro
array_length++;
input_position += 7;
inside_macro = 97;
done = 1;
if (debug) {
- printf("C1/1 ");
+ printf("B1/1 ");
}
}
- if ((!done) && (source[input_position + 4] == '0') && (source[input_position + 5] == '6')) {
- codeword_array[array_length] = 106; // Latch B
+ if ((source[input_position + 4] == '0') && (source[input_position + 5] == '6')) {
+ codeword_array[array_length] = 102; // Shift B
array_length++;
- encoding_mode = 'B';
codeword_array[array_length] = 98; // Macro
array_length++;
input_position += 7;
inside_macro = 98;
done = 1;
if (debug) {
- printf("C1/2 ");
+ printf("B1/2 ");
}
}
- if ((!done) && (source[input_position + 4] == '1') && (source[input_position + 5] == '2')) {
- codeword_array[array_length] = 106; // Latch B
+ if ((source[input_position + 4] == '1') && (source[input_position + 5] == '2')) {
+ codeword_array[array_length] = 102; // Shift B
array_length++;
- encoding_mode = 'B';
codeword_array[array_length] = 99; // Macro
array_length++;
input_position += 7;
inside_macro = 99;
done = 1;
if (debug) {
- printf("C1/3 ");
+ printf("B1/3 ");
}
}
}
- if ((!done) && (source[input_position + 4] >= '0') && (source[input_position + 4] <= '9') &&
- (source[input_position + 5] >= '0') && (source[input_position + 5] <= '9')) {
- codeword_array[array_length] = 106; // Latch B
+ if ((!done) && (source[input_position] >= '0') && (source[input_position] <= '9') &&
+ (source[input_position + 1] >= '0') && (source[input_position + 1] <= '9')) {
+ codeword_array[array_length] = 102; // Shift B
array_length++;
- encoding_mode = 'B';
codeword_array[array_length] = 100; // Macro
array_length++;
input_position += 4;
inside_macro = 100;
done = 1;
if (debug) {
- printf("C1/4 ");
+ printf("B1/4 ");
}
}
}
}
}
- /* Step C2 */
+ /* Step B2 */
if ((!done) && (encoding_mode == 'C')) {
if (seventeen_ten(source, input_position, length)) {
codeword_array[array_length] = 100; // (17)...(10)
input_position += 10;
done = 1;
if (debug) {
- printf("C2/1 ");
+ printf("B2/1 ");
}
}
}
if ((!done) && (encoding_mode == 'C')) {
- if (datum_c(source, input_position, length) || ((source[input_position] == '[') && ((symbol->input_mode & 0x07) == GS1_MODE))) {
+ if (datum_c(source, input_position, length) || ((source[input_position] == '[') && (symbol->input_mode == GS1_MODE))) {
if (source[input_position] == '[') {
codeword_array[array_length] = 107; // FNC1
input_position++;
array_length++;
done = 1;
if (debug) {
- printf("C2/2 ");
+ printf("B2/2 ");
}
}
}
- /* Step C3 */
+ /* Step B3 */
if ((!done) && (encoding_mode == 'C')) {
- if (binary(source, length, input_position)) {
+ if (binary(source, input_position)) {
if (n_digits(source, input_position + 1, length) > 0) {
if ((source[input_position] - 128) < 32) {
- codeword_array[array_length] = 110; // Upper Shift A
+ codeword_array[array_length] = 110; // Bin Shift A
array_length++;
codeword_array[array_length] = source[input_position] - 128 + 64;
array_length++;
} else {
- codeword_array[array_length] = 111; // Upper Shift B
+ codeword_array[array_length] = 111; // Bin Shift B
array_length++;
codeword_array[array_length] = source[input_position] - 128 - 32;
array_length++;
}
done = 1;
if (debug) {
- printf("C3 ");
+ printf("B3 ");
}
}
}
- /* Step C4 */
+ /* Step B4 */
if ((!done) && (encoding_mode == 'C')) {
int m = ahead_a(source, input_position, length);
- int n = ahead_b(source, input_position, length, &nx);
+ int n = ahead_b(source, input_position, length);
if (m > n) {
codeword_array[array_length] = 101; // Latch A
array_length++;
encoding_mode = 'A';
} else {
- if (nx >= 1 && nx <= 4) {
- codeword_array[array_length] = 101 + nx; // nx Shift B
+ if (n <= 4) {
+ codeword_array[array_length] = 101 + n; // nx Shift B
array_length++;
- for (i = 0; i < nx; i++) {
- if (source[input_position] >= 32) {
- codeword_array[array_length] = source[input_position] - 32;
- } else if (source[input_position] == 13) { // CR/LF
- codeword_array[array_length] = 96;
- input_position++;
- } else {
- switch(source[input_position]) {
- case 9: codeword_array[array_length] = 97; break; // HT
- case 28: codeword_array[array_length] = 98; break; // FS
- case 29: codeword_array[array_length] = 99; break; // GS
- case 30: codeword_array[array_length] = 100; break; // RS
- }
- }
+ for (i = 0; i < n; i++) {
+ codeword_array[array_length] = source[input_position] - 32;
array_length++;
input_position++;
}
}
done = 1;
if (debug) {
- printf("C4 ");
+ printf("B4 ");
}
}
- /* Step D1 */
+ /* Step C1 */
if ((!done) && (encoding_mode == 'B')) {
int n = try_c(source, input_position, length);
}
done = 1;
if (debug) {
- printf("D1 ");
+ printf("C1 ");
}
}
}
- /* Step D2 */
+ /* Step C2 */
if ((!done) && (encoding_mode == 'B')) {
- if ((source[input_position] == '[') && ((symbol->input_mode & 0x07) == GS1_MODE)) {
+ if ((source[input_position] == '[') && (symbol->input_mode == GS1_MODE)) {
codeword_array[array_length] = 107; // FNC1
array_length++;
input_position++;
done = 1;
if (debug) {
- printf("D2/1 ");
+ printf("C2/1 ");
}
} else {
if (datum_b(source, input_position, length)) {
array_length++;
input_position++;
if (debug) {
- printf("D2/2 ");
+ printf("C2/2 ");
}
}
}
}
}
- /* Step D3 */
+ /* Step C3 */
if ((!done) && (encoding_mode == 'B')) {
- if (binary(source, length, input_position)) {
+ if (binary(source, input_position)) {
if (datum_b(source, input_position + 1, length)) {
if ((source[input_position] - 128) < 32) {
codeword_array[array_length] = 110; // Bin Shift A
}
done = 1;
if (debug) {
- printf("D3 ");
+ printf("C3 ");
}
}
}
- /* Step D4 */
+ /* Step C4 */
if ((!done) && (encoding_mode == 'B')) {
if (ahead_a(source, input_position, length) == 1) {
codeword_array[array_length] = 101; // Shift A
}
done = 1;
if (debug) {
- printf("D4 ");
+ printf("C4 ");
}
}
- /* Step E1 */
+ /* Step D1 */
if ((!done) && (encoding_mode == 'A')) {
int n = try_c(source, input_position, length);
if (n >= 2) {
}
done = 1;
if (debug) {
- printf("E1 ");
+ printf("D1 ");
}
}
}
- /* Step E2 */
+ /* Step D2 */
if ((!done) && (encoding_mode == 'A')) {
- if ((source[input_position] == '[') && ((symbol->input_mode & 0x07) == GS1_MODE)) {
- // Note: this branch probably never reached as no reason to be in Code Set A for GS1 data
+ if ((source[input_position] == '[') && (symbol->input_mode == GS1_MODE)) {
codeword_array[array_length] = 107; // FNC1
array_length++;
input_position++;
done = 1;
if (debug) {
- printf("E2/1 ");
+ printf("D2/1 ");
}
} else {
if (datum_a(source, input_position, length)) {
input_position++;
done = 1;
if (debug) {
- printf("E2/2 ");
+ printf("D2/2 ");
}
}
}
}
- /* Step E3 */
+ /* Step D3 */
if ((!done) && (encoding_mode == 'A')) {
- if (binary(source, length, input_position)) {
+ if (binary(source, input_position)) {
if (datum_a(source, input_position + 1, length)) {
if ((source[input_position] - 128) < 32) {
codeword_array[array_length] = 110; // Bin Shift A
}
done = 1;
if (debug) {
- printf("E3 ");
+ printf("D3 ");
}
}
}
- /* Step E4 */
+ /* Step D4 */
if ((!done) && (encoding_mode == 'A')) {
- ahead_b(source, input_position, length, &nx);
+ int n = ahead_b(source, input_position, length);
- if (nx >= 1 && nx <= 6) {
- codeword_array[array_length] = 95 + nx; // nx Shift B
+ if (n <= 6) {
+ codeword_array[array_length] = 95 + n; // nx Shift B
array_length++;
- for (i = 0; i < nx; i++) {
- if (source[input_position] >= 32) {
- codeword_array[array_length] = source[input_position] - 32;
- } else if (source[input_position] == 13) { // CR/LF
- codeword_array[array_length] = 96;
- input_position++;
- } else {
- switch(source[input_position]) {
- case 9: codeword_array[array_length] = 97; break; // HT
- case 28: codeword_array[array_length] = 98; break; // FS
- case 29: codeword_array[array_length] = 99; break; // GS
- case 30: codeword_array[array_length] = 100; break; // RS
- }
- }
+ for (i = 0; i < n; i++) {
+ codeword_array[array_length] = source[input_position] - 32;
array_length++;
input_position++;
}
}
done = 1;
if (debug) {
- printf("E4 ");
+ printf("D4 ");
}
}
- /* Step F1 */
+ /* Step E1 */
if ((!done) && (encoding_mode == 'X')) {
int n = try_c(source, input_position, length);
}
done = 1;
if (debug) {
- printf("F1 ");
+ printf("E1 ");
}
}
}
- /* Step F2 */
+ /* Step E2 */
/* Section 5.2.1.1 para D.2.i states:
* "Groups of six codewords, each valued between 0 and 102, are radix converted from
* base 103 into five base 259 values..."
*/
if ((!done) && (encoding_mode == 'X')) {
- if (binary(source, length, input_position)
- || binary(source, length, input_position + 1)
- || binary(source, length, input_position + 2)
- || binary(source, length, input_position + 3)) {
+ if (binary(source, input_position)
+ || binary(source, input_position + 1)
+ || binary(source, input_position + 2)
+ || binary(source, input_position + 3)) {
binary_buffer *= 259;
binary_buffer += source[input_position];
binary_buffer_size++;
input_position++;
done = 1;
if (debug) {
- printf("F2 ");
+ printf("E2 ");
}
}
}
- /* Step F3 */
+ /* Step E3 */
if ((!done) && (encoding_mode == 'X')) {
/* Empty binary buffer */
for (i = 0; i < (binary_buffer_size + 1); i++) {
binary_buffer = 0;
binary_buffer_size = 0;
- if (ahead_a(source, input_position, length) > ahead_b(source, input_position, length, NULL)) {
+ if (ahead_a(source, input_position, length) > ahead_b(source, input_position, length)) {
codeword_array[array_length] = 109; // Terminate with Latch to A
encoding_mode = 'A';
} else {
encoding_mode = 'B';
}
array_length++;
- // done = 1 // As long as last branch not needed
+ done = 1;
if (debug) {
- printf("F3 ");
+ printf("E3 ");
}
}
- }
+ } while (input_position < length);
if (encoding_mode == 'X') {
if (binary_buffer_size != 0) {
/* The rest of the data uses 9-bit dot patterns from Annex C */
for (i = 1; i < array_length; i++) {
- bin_append(dot_patterns[masked_array[i]], 9, dot_stream); // NOLINT masked_array values modulo 113 and fully set
+ bin_append(dot_patterns[masked_array[i]], 9, dot_stream);
}
return strlen(dot_stream);
/* Determines if a given dot is a reserved corner dot
* to be used by one of the last six bits
*/
-static int is_corner(int column, int row, int width, int height) {
+int is_corner(int column, int row, int width, int height) {
int corner = 0;
/* Top Left */
}
/* Place the dots in the symbol*/
-static void fold_dotstream(char dot_stream[], int width, int height, char dot_array[]) {
+void fold_dotstream(char dot_stream[], int width, int height, char dot_array[]) {
int column, row;
int input_position = 0;
}
}
-static void apply_mask(int mask, int data_length, unsigned char *masked_codeword_array, unsigned char *codeword_array, int ecc_length) {
+void apply_mask(int mask, int data_length, unsigned char *masked_codeword_array, unsigned char *codeword_array, int ecc_length, char *dot_stream) {
int weight = 0;
int j;
rsencode(data_length + 1, ecc_length, masked_codeword_array);
}
-static void force_corners(int width, int height, char *dot_array) {
+void force_corners(int width, int height, char *dot_array) {
if (width % 2) {
// "Vertical" symbol
dot_array[0] = '1';
}
}
-INTERNAL int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length) {
+int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length) {
int i, j, k;
size_t jc, n_dots;
int data_length, ecc_length;
int binary_finish = 0;
int debug = symbol->debug;
int padding_dots, is_first;
- int codeword_array_len = length * 4 + 8; /* Allow up to 4 codewords per input + 2 (FNC) + 4 (ECI) + 2 (special char 1st position) */
#ifdef _MSC_VER
unsigned char* masked_codeword_array;
#endif
#ifndef _MSC_VER
- unsigned char codeword_array[codeword_array_len];
+ unsigned char codeword_array[length * 3];
#else
char* dot_stream;
char* dot_array;
- unsigned char* codeword_array = (unsigned char *) _alloca(codeword_array_len);
+ unsigned char* codeword_array = (unsigned char *) _alloca(length * 3 * sizeof (unsigned char));
#endif /* _MSC_VER */
if (symbol->eci > 811799) {
ecc_length = 3 + (data_length / 2);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Codeword length = %d, ECC length = %d\n", data_length, ecc_length);
printf("Codewords: ");
for (i = 0; i < data_length; i++) {
}
printf("\n");
}
-#ifdef ZINT_TEST
- if (debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump(symbol, codeword_array, data_length);
- }
-#endif
min_dots = 9 * (data_length + 3 + (data_length / 2)) + 2;
min_area = min_dots * 2;
}
}
- if (debug & ZINT_DEBUG_PRINT) {
- printf("Width = %d, Height = %d\n", width, height);
- }
-
if ((height > 200) || (width > 200)) {
strcpy(symbol->errtxt, "526: Specified symbol size is too large");
return ZINT_ERROR_INVALID_OPTION;
ecc_length = 3 + (data_length / 2);
-
#ifndef _MSC_VER
unsigned char masked_codeword_array[data_length + 1 + ecc_length];
#else
/* Evaluate data mask options */
for (i = 0; i < 4; i++) {
- apply_mask(i, data_length, masked_codeword_array, codeword_array, ecc_length);
+ apply_mask(i, data_length, masked_codeword_array, codeword_array, ecc_length, dot_stream);
dot_stream_length = make_dotstream(masked_codeword_array, (data_length + ecc_length + 1), dot_stream);
mask_score[i] = score_array(dot_array, height, width);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Mask %d score is %d\n", i, mask_score[i]);
}
}
if (best_mask <= (height * width) / 2) {
for (i = 0; i < 4; i++) {
- apply_mask(i, data_length, masked_codeword_array, codeword_array, ecc_length);
+ apply_mask(i, data_length, masked_codeword_array, codeword_array, ecc_length, dot_stream);
dot_stream_length = make_dotstream(masked_codeword_array, (data_length + ecc_length + 1), dot_stream);
mask_score[i + 4] = score_array(dot_array, height, width);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Mask %d score is %d\n", i + 4, mask_score[i + 4]);
}
}
}
}
- if (debug & ZINT_DEBUG_PRINT) {
- printf("Applying mask %d, high_score %d\n", best_mask, high_score);
+ if (debug) {
+ printf("Applying mask %d\n", best_mask);
}
/* Apply best mask */
- apply_mask(best_mask % 4, data_length, masked_codeword_array, codeword_array, ecc_length);
+ apply_mask(best_mask % 4, data_length, masked_codeword_array, codeword_array, ecc_length, dot_stream);
dot_stream_length = make_dotstream(masked_codeword_array, (data_length + ecc_length + 1), dot_stream);
return 0;
}
+
/* eci.c - Extended Channel Interpretations
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
#include "eci.h"
-#include "common.h"
+#include "zint.h"
#ifdef _MSC_VER
#include <malloc.h>
#endif
/* Convert Unicode to other character encodings */
-INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length) {
+int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length) {
int in_posn;
int out_posn;
int ext;
bytelen = 2;
glyph = (source[in_posn] & 0x1f) << 6;
- if ((int) *length < (in_posn + 2)) {
+ if (*length < (in_posn + 2)) {
return ZINT_ERROR_INVALID_DATA;
}
bytelen = 3;
glyph = (source[in_posn] & 0x0f) << 12;
- if ((int) *length < (in_posn + 2)) {
+ if (*length < (in_posn + 2)) {
return ZINT_ERROR_INVALID_DATA;
}
- if ((int) *length < (in_posn + 3)) {
+ if (*length < (in_posn + 3)) {
return ZINT_ERROR_INVALID_DATA;
}
in_posn += bytelen;
out_posn++;
- } while (in_posn < (int) *length);
+ } while (in_posn < *length);
dest[out_posn] = '\0';
*length = out_posn;
}
/* Find the lowest ECI mode which will encode a given set of Unicode text */
-INTERNAL int get_best_eci(unsigned char source[], size_t length) {
+int get_best_eci(unsigned char source[], size_t length) {
int eci = 3;
#ifndef _MSC_VER
return 26; // If all of these fail, use Unicode!
}
+
+
/* emf.c - Support for Microsoft Enhanced Metafile Format
libzint - the open source barcode library
- Copyright (C) 2016 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2016-2018 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/* Developed according to [MS-EMF] - v20160714, Released July 14, 2016
* and [MS-WMF] - v20160714, Released July 14, 2016 */
#include "common.h"
#include "emf.h"
-int colour_to_red(int colour) {
- int return_val = 0;
-
- switch(colour) {
- case 0: // White
- case 3: // Magenta
- case 4: // Red
- case 5: // Yellow
- return_val = 255;
- break;
- }
-
- return return_val;
-}
-
-int colour_to_green(int colour) {
- int return_val = 0;
-
- switch(colour) {
- case 0: // White
- case 1: // Cyan
- case 5: // Yellow
- case 6: // Green
- return_val = 255;
- break;
- }
-
- return return_val;
-}
-
-int colour_to_blue(int colour) {
- int return_val = 0;
-
- switch(colour) {
- case 0: // White
- case 1: // Cyan
- case 2: // Blue
- case 3: // Magenta
- return_val = 255;
- break;
- }
-
- return return_val;
-}
-
-static int count_rectangles(struct zint_symbol *symbol) {
+int count_rectangles(struct zint_symbol *symbol) {
int rectangles = 0;
struct zint_vector_rect *rect;
return rectangles;
}
-static int count_circles(struct zint_symbol *symbol) {
+int count_circles(struct zint_symbol *symbol) {
int circles = 0;
struct zint_vector_circle *circ;
return circles;
}
-static int count_hexagons(struct zint_symbol *symbol) {
+int count_hexagons(struct zint_symbol *symbol) {
int hexagons = 0;
struct zint_vector_hexagon *hex;
return hexagons;
}
-static int count_strings(struct zint_symbol *symbol) {
+int count_strings(struct zint_symbol *symbol) {
int strings = 0;
struct zint_vector_string *str;
return strings;
}
-static void utfle_copy(unsigned char *output, unsigned char *input, int length) {
+void utfle_copy(unsigned char *output, unsigned char *input, int length) {
int i;
int o;
} while (i < length);
}
-static int bump_up(int input) {
+int bump_up(int input) {
/* Strings length must be a multiple of 4 bytes */
if ((input % 2) == 1) {
input++;
return input;
}
-INTERNAL int emf_plot(struct zint_symbol *symbol) {
+int emf_plot(struct zint_symbol *symbol) {
int i,j;
FILE *emf_file;
int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int string_count, this_text;
int bytecount, recordcount;
float radius;
- int colours_used = 0;
- int rectangle_count_bycolour[8];
unsigned char *this_string[6];
uint32_t spacing;
emr_eof_t emr_eof;
emr_createbrushindirect_t emr_createbrushindirect_fg;
emr_createbrushindirect_t emr_createbrushindirect_bg;
- emr_createbrushindirect_t emr_createbrushindirect_colour[8]; // Used for colour symbols only
emr_selectobject_t emr_selectobject_fgbrush;
emr_selectobject_t emr_selectobject_bgbrush;
- emr_selectobject_t emr_selectobject_colour[8]; // Used for colour symbols only
emr_createpen_t emr_createpen;
emr_selectobject_t emr_selectobject_pen;
emr_rectangle_t background;
string_count = count_strings(symbol);
#ifndef _MSC_VER
- emr_rectangle_t rectangle[rectangle_count ? rectangle_count : 1]; // Avoid sanitize runtime error by making always non-zero
- emr_ellipse_t circle[circle_count ? circle_count : 1];
- emr_polygon_t hexagon[hexagon_count ? hexagon_count : 1];
- emr_exttextoutw_t text[string_count ? string_count: 1];
+ emr_rectangle_t rectangle[rectangle_count];
+ emr_ellipse_t circle[circle_count];
+ emr_polygon_t hexagon[hexagon_count];
+ emr_exttextoutw_t text[string_count];
#else
rectangle = (emr_rectangle_t*) _alloca(rectangle_count * sizeof (emr_rectangle_t));
circle = (emr_ellipse_t*) _alloca(circle_count * sizeof (emr_ellipse_t));
hexagon = (emr_polygon_t*) _alloca(hexagon_count * sizeof (emr_polygon_t));
text = (emr_exttextoutw_t*) _alloca(string_count * sizeof (emr_exttextoutw_t));
#endif
-
- //Calculate how many coloured rectangles
- if (symbol->symbology == BARCODE_ULTRA) {
- for (i = 0; i < 8; i++) {
- rectangle_count_bycolour[i] = 0;
- }
-
- rect = symbol->vector->rectangles;
- while (rect) {
- if (rectangle_count_bycolour[rect->colour] == 0) {
- colours_used++;
- }
- rectangle_count_bycolour[rect->colour]++;
- rect = rect->next;
- }
- }
-
+
/* Header */
emr_header.type = 0x00000001; // EMR_HEADER
- emr_header.size = 108; // Including extensions
+ emr_header.size = 88; // Assuming no additional data in header
emr_header.emf_header.bounds.left = 0;
emr_header.emf_header.bounds.right = ceil(symbol->vector->width);
emr_header.emf_header.bounds.bottom = ceil(symbol->vector->height);
emr_header.emf_header.device.cy = 1000;
emr_header.emf_header.millimeters.cx = 300;
emr_header.emf_header.millimeters.cy = 300;
- /* HeaderExtension1 */
- emr_header.emf_header.cb_pixel_format = 0x0000; // None set
- emr_header.emf_header.off_pixel_format = 0x0000; // None set
- emr_header.emf_header.b_open_gl = 0x0000; // OpenGL not present
- /* HeaderExtension2 */
- emr_header.emf_header.micrometers.cx = 0;
- emr_header.emf_header.micrometers.cy = 0;
- bytecount = 108;
+ bytecount = 88;
recordcount = 1;
/* Create Brushes */
+ emr_createbrushindirect_fg.type = 0x00000027; // EMR_CREATEBRUSHINDIRECT
+ emr_createbrushindirect_fg.size = 24;
+ emr_createbrushindirect_fg.ih_brush = 1;
+ emr_createbrushindirect_fg.log_brush.brush_style = 0x0000; // BS_SOLID
+ emr_createbrushindirect_fg.log_brush.color.red = fgred;
+ emr_createbrushindirect_fg.log_brush.color.green = fggrn;
+ emr_createbrushindirect_fg.log_brush.color.blue = fgblu;
+ emr_createbrushindirect_fg.log_brush.color.reserved = 0;
+ emr_createbrushindirect_fg.log_brush.brush_hatch = 0x0006; // HS_SOLIDCLR
+ bytecount += 24;
+ recordcount++;
+
emr_createbrushindirect_bg.type = 0x00000027; // EMR_CREATEBRUSHINDIRECT
emr_createbrushindirect_bg.size = 24;
- emr_createbrushindirect_bg.ih_brush = 1;
+ emr_createbrushindirect_bg.ih_brush = 2;
emr_createbrushindirect_bg.log_brush.brush_style = 0x0000; // BS_SOLID
emr_createbrushindirect_bg.log_brush.color.red = bgred;
emr_createbrushindirect_bg.log_brush.color.green = bggrn;
bytecount += 24;
recordcount++;
- if (symbol->symbology == BARCODE_ULTRA) {
- for (i = 0; i < 8; i++) {
- emr_createbrushindirect_colour[i].type = 0x00000027; // EMR_CREATEBRUSHINDIRECT
- emr_createbrushindirect_colour[i].size = 24;
- emr_createbrushindirect_colour[i].ih_brush = 2 + i;
- emr_createbrushindirect_colour[i].log_brush.brush_style = 0x0000; // BS_SOLID
- emr_createbrushindirect_colour[i].log_brush.color.red = colour_to_red(i);
- emr_createbrushindirect_colour[i].log_brush.color.green = colour_to_green(i);
- emr_createbrushindirect_colour[i].log_brush.color.blue = colour_to_blue(i);
- emr_createbrushindirect_colour[i].log_brush.color.reserved = 0;
- emr_createbrushindirect_colour[i].log_brush.brush_hatch = 0x0006; // HS_SOLIDCLR
- }
- bytecount += colours_used * 24;
- recordcount += colours_used;
- } else {
- emr_createbrushindirect_fg.type = 0x00000027; // EMR_CREATEBRUSHINDIRECT
- emr_createbrushindirect_fg.size = 24;
- emr_createbrushindirect_fg.ih_brush = 2;
- emr_createbrushindirect_fg.log_brush.brush_style = 0x0000; // BS_SOLID
- emr_createbrushindirect_fg.log_brush.color.red = fgred;
- emr_createbrushindirect_fg.log_brush.color.green = fggrn;
- emr_createbrushindirect_fg.log_brush.color.blue = fgblu;
- emr_createbrushindirect_fg.log_brush.color.reserved = 0;
- emr_createbrushindirect_fg.log_brush.brush_hatch = 0x0006; // HS_SOLIDCLR
- bytecount += 24;
- recordcount++;
- }
+ emr_selectobject_fgbrush.type = 0x00000025; // EMR_SELECTOBJECT
+ emr_selectobject_fgbrush.size = 12;
+ emr_selectobject_fgbrush.ih_object = 1;
+ bytecount += 12;
+ recordcount++;
emr_selectobject_bgbrush.type = 0x00000025; // EMR_SELECTOBJECT
emr_selectobject_bgbrush.size = 12;
- emr_selectobject_bgbrush.ih_object = 1;
+ emr_selectobject_bgbrush.ih_object = 2;
bytecount += 12;
recordcount++;
- if (symbol->symbology == BARCODE_ULTRA) {
- for (i = 0; i < 8; i++) {
- emr_selectobject_colour[i].type = 0x00000025; // EMR_SELECTOBJECT
- emr_selectobject_colour[i].size = 12;
- emr_selectobject_colour[i].ih_object = 2 + i;
- }
- bytecount += colours_used * 12;
- recordcount += colours_used;
- } else {
- emr_selectobject_fgbrush.type = 0x00000025; // EMR_SELECTOBJECT
- emr_selectobject_fgbrush.size = 12;
- emr_selectobject_fgbrush.ih_object = 2;
- bytecount += 12;
- recordcount++;
- }
-
/* Create Pens */
emr_createpen.type = 0x00000026; // EMR_CREATEPEN
emr_createpen.size = 28;
- emr_createpen.ih_pen = 10;
+ emr_createpen.ih_pen = 3;
emr_createpen.log_pen.pen_style = 0x00000005; // PS_NULL
emr_createpen.log_pen.width.x = 1;
emr_createpen.log_pen.width.y = 0; // ignored
emr_selectobject_pen.type = 0x00000025; // EMR_SELECTOBJECT
emr_selectobject_pen.size = 12;
- emr_selectobject_pen.ih_object = 10;
+ emr_selectobject_pen.ih_object = 3;
bytecount += 12;
recordcount++;
fwrite(&emr_header, sizeof (emr_header_t), 1, emf_file);
+ fwrite(&emr_createbrushindirect_fg, sizeof (emr_createbrushindirect_t), 1, emf_file);
fwrite(&emr_createbrushindirect_bg, sizeof (emr_createbrushindirect_t), 1, emf_file);
-
- if (symbol->symbology == BARCODE_ULTRA) {
- for (i = 0; i < 8; i++) {
- if (rectangle_count_bycolour[i]) {
- fwrite(&emr_createbrushindirect_colour[i], sizeof (emr_createbrushindirect_t), 1, emf_file);
- }
- }
- } else {
- fwrite(&emr_createbrushindirect_fg, sizeof (emr_createbrushindirect_t), 1, emf_file);
- }
-
fwrite(&emr_createpen, sizeof (emr_createpen_t), 1, emf_file);
if (symbol->vector->strings) {
fwrite(&emr_selectobject_pen, sizeof (emr_selectobject_t), 1, emf_file);
fwrite(&background, sizeof (emr_rectangle_t), 1, emf_file);
- if (symbol->symbology == BARCODE_ULTRA) {
- for(i = 0; i < 8; i++) {
- if (rectangle_count_bycolour[i]) {
- fwrite(&emr_selectobject_colour[i], sizeof (emr_selectobject_t), 1, emf_file);
-
- rect = symbol->vector->rectangles;
- this_rectangle = 0;
- while (rect) {
- if (rect->colour == i) {
- fwrite(&rectangle[this_rectangle], sizeof (emr_rectangle_t), 1, emf_file);
- }
- this_rectangle++;
- rect = rect->next;
- }
- }
- }
- } else {
- fwrite(&emr_selectobject_fgbrush, sizeof (emr_selectobject_t), 1, emf_file);
+ fwrite(&emr_selectobject_fgbrush, sizeof (emr_selectobject_t), 1, emf_file);
- // Rectangles
- for (i = 0; i < rectangle_count; i++) {
- fwrite(&rectangle[i], sizeof (emr_rectangle_t), 1, emf_file);
- }
+ // Rectangles
+ for (i = 0; i < rectangle_count; i++) {
+ fwrite(&rectangle[i], sizeof (emr_rectangle_t), 1, emf_file);
}
// Hexagons
}
// Text
- if (string_count > 0) {
- fwrite(&emr_selectobject_font, sizeof (emr_selectobject_t), 1, emf_file);
- }
-
for (i = 0; i < string_count; i++) {
spacing = 8 * symbol->scale;
+ fwrite(&emr_selectobject_font, sizeof (emr_selectobject_t), 1, emf_file);
fwrite(&text[i], sizeof (emr_exttextoutw_t), 1, emf_file);
- fwrite(this_string[i], bump_up(text[i].w_emr_text.chars + 1) * 2, 1, emf_file); // NOLINT text set 0..(string_count - 1)
- free(this_string[i]);
+ fwrite(this_string[i], bump_up(text[i].w_emr_text.chars + 1) * 2, 1, emf_file);
for (j = 0; j < bump_up(text[i].w_emr_text.chars + 1); j++) {
fwrite(&spacing, 4, 1, emf_file);
}
uint32_t n_pal_entries;
size_l_t device;
size_l_t millimeters;
- // HeaderExtension1 Object
- uint32_t cb_pixel_format;
- uint32_t off_pixel_format;
- uint32_t b_open_gl;
- // HeaderExtension2 Object
- size_l_t micrometers;
} emf_header_t;
typedef struct emr_header {
+++ /dev/null
-/*
- libzint - the open source barcode library
- Copyright (C) 2008-2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-/*
- * Adapted from GNU LIBICONV library and patched to allow 2 duplicate mappings
- * for compatibility with GB 2312 (GB2312.TXT):
- * 1) U+30FB to 0xA1A4 (duplicate of U+00B7)
- * 2) U+2015 to 0xA1AA (duplicate of U+2014)
- */
-/*
- * Copyright (C) 1999-2001, 2005, 2012, 2016 Free Software Foundation, Inc.
- * This file is part of the GNU LIBICONV Library.
- *
- * The GNU LIBICONV Library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * The GNU LIBICONV Library is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
- * If not, see <https://www.gnu.org/licenses/>.
- */
-#include <string.h>
-#ifdef _MSC_VER
-#include <malloc.h>
-#endif
-#include "common.h"
-#include "gb2312.h"
-#include "gb18030.h"
-
-INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
-
-/*
- * CP936 extensions (libiconv-1.16/lib/cp936ext.h)
- */
-
-static const unsigned short cp936ext_page01[16] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa8bd, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
- 0xa8be, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
-};
-static const unsigned short cp936ext_page02[24] = {
- 0x0000, 0xa8bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0x0000, 0xa8c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
-};
-static const unsigned short cp936ext_pagefe[24] = {
- 0x0000, 0xa6f2, 0x0000, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, /*0x30-0x37*/
- 0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, /*0x38-0x3f*/
- 0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
-};
-
-static int cp936ext_wctomb(unsigned int* r, unsigned int wc) {
- unsigned short c = 0;
- if (wc >= 0x0140 && wc < 0x0150) {
- c = cp936ext_page01[wc-0x0140];
- } else if (wc >= 0x0250 && wc < 0x0268) {
- c = cp936ext_page02[wc-0x0250];
- } else if (wc >= 0xfe30 && wc < 0xfe48) {
- c = cp936ext_pagefe[wc-0xfe30];
- }
- if (c != 0) {
- *r = c;
- return 2;
- }
- return 0;
-}
-
-/*
- * GBK extensions (libiconv-1.16/lib/gbkext_inv.h)
- */
-
-static const unsigned short gbkext_inv_2charset[14313] = {
- 0xa840, 0xa841, 0xa842, 0xa95c, 0xa843, 0xa844, 0xa845, 0xa846,
- 0xa847, 0xa848, 0xa959, 0xa849, 0xa84a, 0xa84b, 0xa84c, 0xa84d,
- 0xa84e, 0xa84f, 0xa850, 0xa851, 0xa852, 0xa892, 0xa853, 0xa854,
- 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, 0xa85c,
- 0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, 0xa864,
- 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c,
- 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, 0xa874,
- 0xa875, 0xa876, 0xa877, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c,
- 0xa87d, 0xa87e, 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885,
- 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, 0xa88d,
- 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa965, 0xa996, 0xa893, 0xa894,
- 0xa895, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946,
- 0xa947, 0xa948, 0xa961, 0xa962, 0xa966, 0xa967, 0xa960, 0xa963,
- 0xa964, 0xa95a, 0xa949, 0xa94a, 0xa94b, 0xa94c, 0xa94d, 0xa94e,
- 0xa94f, 0xa950, 0xa951, 0xa952, 0xa953, 0xa954, 0x8140, 0x8141,
- 0x8142, 0x8143, 0x8144, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149,
- 0x814a, 0x814b, 0x814c, 0x814d, 0x814e, 0x814f, 0x8150, 0x8151,
- 0x8152, 0x8153, 0x8154, 0x8155, 0x8156, 0x8157, 0x8158, 0x8159,
- 0x815a, 0x815b, 0x815c, 0x815d, 0x815e, 0x815f, 0x8160, 0x8161,
- 0x8162, 0x8163, 0x8164, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169,
- 0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171,
- 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179,
- 0x817a, 0x817b, 0x817c, 0x817d, 0x817e, 0x8180, 0x8181, 0x8182,
- 0x8183, 0x8184, 0x8185, 0x8186, 0x8187, 0x8188, 0x8189, 0x818a,
- 0x818b, 0x818c, 0x818d, 0x818e, 0x818f, 0x8190, 0x8191, 0x8192,
- 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, 0x8199, 0x819a,
- 0x819b, 0x819c, 0x819d, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2,
- 0x81a3, 0x81a4, 0x81a5, 0x81a6, 0x81a7, 0x81a8, 0x81a9, 0x81aa,
- 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2,
- 0x81b3, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81ba,
- 0x81bb, 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2,
- 0x81c3, 0x81c4, 0x81c5, 0x81c6, 0x81c7, 0x81c8, 0x81c9, 0x81ca,
- 0x81cb, 0x81cc, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2,
- 0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da,
- 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2,
- 0x81e3, 0x81e4, 0x81e5, 0x81e6, 0x81e7, 0x81e8, 0x81e9, 0x81ea,
- 0x81eb, 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f2,
- 0x81f3, 0x81f4, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa,
- 0x81fb, 0x81fc, 0x81fd, 0x81fe, 0x8240, 0x8241, 0x8242, 0x8243,
- 0x8244, 0x8245, 0x8246, 0x8247, 0x8248, 0x8249, 0x824a, 0x824b,
- 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, 0x8252, 0x8253,
- 0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8259, 0x825a, 0x825b,
- 0x825c, 0x825d, 0x825e, 0x825f, 0x8260, 0x8261, 0x8262, 0x8263,
- 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b,
- 0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273,
- 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b,
- 0x827c, 0x827d, 0x827e, 0x8280, 0x8281, 0x8282, 0x8283, 0x8284,
- 0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 0x828a, 0x828b, 0x828c,
- 0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0x8292, 0x8293, 0x8294,
- 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x829b, 0x829c,
- 0x829d, 0x829e, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4,
- 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac,
- 0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4,
- 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc,
- 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4,
- 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc,
- 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4,
- 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc,
- 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4,
- 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec,
- 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4,
- 0x82f5, 0x82f6, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc,
- 0x82fd, 0x82fe, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345,
- 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d,
- 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355,
- 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d,
- 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365,
- 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d,
- 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375,
- 0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d,
- 0x837e, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386,
- 0x8387, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e,
- 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396,
- 0x8397, 0x8398, 0x8399, 0x839a, 0x839b, 0x839c, 0x839d, 0x839e,
- 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6,
- 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae,
- 0x83af, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6,
- 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, 0x83be,
- 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6,
- 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce,
- 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6,
- 0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, 0x83de,
- 0x83df, 0x83e0, 0x83e1, 0x83e2, 0x83e3, 0x83e4, 0x83e5, 0x83e6,
- 0x83e7, 0x83e8, 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0x83ed, 0x83ee,
- 0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3, 0x83f4, 0x83f5, 0x83f6,
- 0x83f7, 0x83f8, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe,
- 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8446, 0x8447,
- 0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f,
- 0x8450, 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457,
- 0x8458, 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f,
- 0x8460, 0x8461, 0x8462, 0x8463, 0x8464, 0x8465, 0x8466, 0x8467,
- 0x8468, 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x846f,
- 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0x8477,
- 0x8478, 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480,
- 0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488,
- 0x8489, 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490,
- 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8497, 0x8498,
- 0x8499, 0x849a, 0x849b, 0x849c, 0x849d, 0x849e, 0x849f, 0x84a0,
- 0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8,
- 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0,
- 0x84b1, 0x84b2, 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8,
- 0x84b9, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0,
- 0x84c1, 0x84c2, 0x84c3, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8,
- 0x84c9, 0x84ca, 0x84cb, 0x84cc, 0x84cd, 0x84ce, 0x84cf, 0x84d0,
- 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6, 0x84d7, 0x84d8,
- 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84dd, 0x84de, 0x84df, 0x84e0,
- 0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8,
- 0x84e9, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0,
- 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8,
- 0x84f9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0x84fe, 0x8540, 0x8541,
- 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0x8548, 0x8549,
- 0x854a, 0x854b, 0x854c, 0x854d, 0x854e, 0x854f, 0x8550, 0x8551,
- 0x8552, 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559,
- 0x855a, 0x855b, 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561,
- 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569,
- 0x856a, 0x856b, 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571,
- 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, 0x8579,
- 0x857a, 0x857b, 0x857c, 0x857d, 0x857e, 0x8580, 0x8581, 0x8582,
- 0x8583, 0x8584, 0x8585, 0x8586, 0x8587, 0x8588, 0x8589, 0x858a,
- 0x858b, 0x858c, 0x858d, 0x858e, 0x858f, 0x8590, 0x8591, 0x8592,
- 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859a,
- 0x859b, 0x859c, 0x859d, 0x859e, 0x859f, 0x85a0, 0x85a1, 0x85a2,
- 0x85a3, 0x85a4, 0x85a5, 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa,
- 0x85ab, 0x85ac, 0x85ad, 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2,
- 0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0x85ba,
- 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c0, 0x85c1, 0x85c2,
- 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85c9, 0x85ca,
- 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d2,
- 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da,
- 0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2,
- 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85e9, 0x85ea,
- 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f2,
- 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9, 0x85fa,
- 0x85fb, 0x85fc, 0x85fd, 0x85fe, 0x8640, 0x8641, 0x8642, 0x8643,
- 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864a, 0x864b,
- 0x864c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8652, 0x8653,
- 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865a, 0x865b,
- 0x865c, 0x865d, 0x865e, 0x865f, 0x8660, 0x8661, 0x8662, 0x8663,
- 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x866b,
- 0x866c, 0x866d, 0x866e, 0x866f, 0x8670, 0x8671, 0x8672, 0x8673,
- 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, 0x867a, 0x867b,
- 0x867c, 0x867d, 0x867e, 0x8680, 0x8681, 0x8682, 0x8683, 0x8684,
- 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868a, 0x868b, 0x868c,
- 0x868d, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8693, 0x8694,
- 0x8695, 0x8696, 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869c,
- 0x869d, 0x869e, 0x869f, 0x86a0, 0x86a1, 0x86a2, 0x86a3, 0x86a4,
- 0x86a5, 0x86a6, 0x86a7, 0x86a8, 0x86a9, 0x86aa, 0x86ab, 0x86ac,
- 0x86ad, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b2, 0x86b3, 0x86b4,
- 0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, 0x86ba, 0x86bb, 0x86bc,
- 0x86bd, 0x86be, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4,
- 0x86c5, 0x86c6, 0x86c7, 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc,
- 0x86cd, 0x86ce, 0x86cf, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4,
- 0x86d5, 0x86d6, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc,
- 0x86dd, 0x86de, 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4,
- 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0x86ea, 0x86eb, 0x86ec,
- 0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0x86f2, 0x86f3, 0x86f4,
- 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0x86fa, 0x86fb, 0x86fc,
- 0x86fd, 0x86fe, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745,
- 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d,
- 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8754, 0x8755,
- 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, 0x875c, 0x875d,
- 0x875e, 0x875f, 0x8760, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765,
- 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d,
- 0x876e, 0x876f, 0x8770, 0x8771, 0x8772, 0x8773, 0x8774, 0x8775,
- 0x8776, 0x8777, 0x8778, 0x8779, 0x877a, 0x877b, 0x877c, 0x877d,
- 0x877e, 0x8780, 0x8781, 0x8782, 0x8783, 0x8784, 0x8785, 0x8786,
- 0x8787, 0x8788, 0x8789, 0x878a, 0x878b, 0x878c, 0x878d, 0x878e,
- 0x878f, 0x8790, 0x8791, 0x8792, 0x8793, 0x8794, 0x8795, 0x8796,
- 0x8797, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e,
- 0x879f, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0x87a5, 0x87a6,
- 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae,
- 0x87af, 0x87b0, 0x87b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6,
- 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be,
- 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6,
- 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce,
- 0x87cf, 0x87d0, 0x87d1, 0x87d2, 0x87d3, 0x87d4, 0x87d5, 0x87d6,
- 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0x87dd, 0x87de,
- 0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e5, 0x87e6,
- 0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, 0x87ed, 0x87ee,
- 0x87ef, 0x87f0, 0x87f1, 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6,
- 0x87f7, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe,
- 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847,
- 0x8848, 0x8849, 0x884a, 0x884b, 0x884c, 0x884d, 0x884e, 0x884f,
- 0x8850, 0x8851, 0x8852, 0x8853, 0x8854, 0x8855, 0x8856, 0x8857,
- 0x8858, 0x8859, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, 0x885f,
- 0x8860, 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867,
- 0x8868, 0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f,
- 0x8870, 0x8871, 0x8872, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877,
- 0x8878, 0x8879, 0x887a, 0x887b, 0x887c, 0x887d, 0x887e, 0x8880,
- 0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888,
- 0x8889, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890,
- 0x8891, 0x8892, 0x8893, 0x8894, 0x8895, 0x8896, 0x8897, 0x8898,
- 0x8899, 0x889a, 0x889b, 0x889c, 0x889d, 0x889e, 0x889f, 0x88a0,
- 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8,
- 0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0,
- 0x88b1, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8,
- 0x88b9, 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88be, 0x88bf, 0x88c0,
- 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8,
- 0x88c9, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0,
- 0x88d1, 0x88d2, 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8,
- 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0,
- 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8,
- 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0,
- 0x88f1, 0x88f2, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8,
- 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941,
- 0x8942, 0x8943, 0x8944, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949,
- 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951,
- 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959,
- 0x895a, 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0x8960, 0x8961,
- 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969,
- 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971,
- 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979,
- 0x897a, 0x897b, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982,
- 0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a,
- 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992,
- 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a,
- 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2,
- 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, 0x89aa,
- 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2,
- 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba,
- 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2,
- 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca,
- 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d2,
- 0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da,
- 0x89db, 0x89dc, 0x89dd, 0x89de, 0x89df, 0x89e0, 0x89e1, 0x89e2,
- 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, 0x89e9, 0x89ea,
- 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, 0x89f1, 0x89f2,
- 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa,
- 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a40, 0x8a41, 0x8a42, 0x8a43,
- 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b,
- 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0x8a53,
- 0x8a54, 0x8a55, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b,
- 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63,
- 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b,
- 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73,
- 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0x8a7a, 0x8a7b,
- 0x8a7c, 0x8a7d, 0x8a7e, 0x8a80, 0x8a81, 0x8a82, 0x8a83, 0x8a84,
- 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c,
- 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94,
- 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c,
- 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4,
- 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac,
- 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4,
- 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, 0x8abc,
- 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4,
- 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc,
- 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4,
- 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc,
- 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4,
- 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec,
- 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4,
- 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, 0x8afc,
- 0x8afd, 0x8afe, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45,
- 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d,
- 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55,
- 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d,
- 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65,
- 0x8b66, 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d,
- 0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75,
- 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d,
- 0x8b7e, 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86,
- 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e,
- 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96,
- 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e,
- 0x8b9f, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6,
- 0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae,
- 0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6,
- 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8bbe,
- 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6,
- 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce,
- 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6,
- 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde,
- 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6,
- 0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0x8bec, 0x8bed, 0x8bee,
- 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6,
- 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe,
- 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47,
- 0x8c48, 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f,
- 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, 0x8c55, 0x8c56, 0x8c57,
- 0x8c58, 0x8c59, 0x8c5a, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, 0x8c5f,
- 0x8c60, 0x8c61, 0x8c62, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67,
- 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f,
- 0x8c70, 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0x8c75, 0x8c76, 0x8c77,
- 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, 0x8c80,
- 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88,
- 0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90,
- 0x8c91, 0x8c92, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98,
- 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0,
- 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8,
- 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0,
- 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8,
- 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0,
- 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8,
- 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0,
- 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8,
- 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0,
- 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8,
- 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, 0x8cee, 0x8cef, 0x8cf0,
- 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8,
- 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8d40, 0x8d41,
- 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49,
- 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51,
- 0x8d52, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59,
- 0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, 0x8d60, 0x8d61,
- 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69,
- 0x8d6a, 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71,
- 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d78, 0x8d79,
- 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d80, 0x8d81, 0x8d82,
- 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8a,
- 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d92,
- 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a,
- 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8d9f, 0x8da0, 0x8da1, 0x8da2,
- 0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa,
- 0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2,
- 0x8db3, 0x8db4, 0x8db5, 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba,
- 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, 0x8dc1, 0x8dc2,
- 0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca,
- 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2,
- 0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, 0x8dda,
- 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2,
- 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea,
- 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df2,
- 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa,
- 0x8dfb, 0x8dfc, 0x8dfd, 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43,
- 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b,
- 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53,
- 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b,
- 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63,
- 0x8e64, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b,
- 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73,
- 0x8e74, 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b,
- 0x8e7c, 0x8e7d, 0x8e7e, 0x8e80, 0x8e81, 0x8e82, 0x8e83, 0x8e84,
- 0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c,
- 0x8e8d, 0x8e8e, 0x8e8f, 0x8e90, 0x8e91, 0x8e92, 0x8e93, 0x8e94,
- 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9c,
- 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4,
- 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac,
- 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4,
- 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc,
- 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4,
- 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc,
- 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4,
- 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc,
- 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4,
- 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec,
- 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4,
- 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc,
- 0x8efd, 0x8efe, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45,
- 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d,
- 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55,
- 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d,
- 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65,
- 0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d,
- 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f72, 0x8f73, 0x8f74, 0x8f75,
- 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d,
- 0x8f7e, 0x8f80, 0x8f81, 0x8f82, 0x8f83, 0x8f84, 0x8f85, 0x8f86,
- 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0x8f8b, 0x8f8c, 0x8f8d, 0x8f8e,
- 0x8f8f, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96,
- 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e,
- 0x8f9f, 0x8fa0, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0x8fa5, 0x8fa6,
- 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x8fae,
- 0x8faf, 0x8fb0, 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb6,
- 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe,
- 0x8fbf, 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6,
- 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fce,
- 0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0x8fd6,
- 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde,
- 0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, 0x8fe6,
- 0x8fe7, 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, 0x8fec, 0x8fed, 0x8fee,
- 0x8fef, 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0x8ff6,
- 0x8ff7, 0x8ff8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0x8ffe,
- 0x9040, 0x9041, 0x9042, 0x9043, 0x9044, 0x9045, 0x9046, 0x9047,
- 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904d, 0x904e, 0x904f,
- 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0x9057,
- 0x9058, 0x9059, 0x905a, 0x905b, 0x905c, 0x905d, 0x905e, 0x905f,
- 0x9060, 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067,
- 0x9068, 0x9069, 0x906a, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f,
- 0x9070, 0x9071, 0x9072, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077,
- 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907d, 0x907e, 0x9080,
- 0x9081, 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088,
- 0x9089, 0x908a, 0x908b, 0x908c, 0x908d, 0x908e, 0x908f, 0x9090,
- 0x9091, 0x9092, 0x9093, 0x9094, 0x9095, 0x9096, 0x9097, 0x9098,
- 0x9099, 0x909a, 0x909b, 0x909c, 0x909d, 0x909e, 0x909f, 0x90a0,
- 0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8,
- 0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0,
- 0x90b1, 0x90b2, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8,
- 0x90b9, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0,
- 0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, 0x90c7, 0x90c8,
- 0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce, 0x90cf, 0x90d0,
- 0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0x90d7, 0x90d8,
- 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, 0x90de, 0x90df, 0x90e0,
- 0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8,
- 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0,
- 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8,
- 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, 0x9141,
- 0x9142, 0x9143, 0x9144, 0x9145, 0x9146, 0x9147, 0x9148, 0x9149,
- 0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0x9150, 0x9151,
- 0x9152, 0x9153, 0x9154, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159,
- 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, 0x915f, 0x9160, 0x9161,
- 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169,
- 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171,
- 0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179,
- 0x917a, 0x917b, 0x917c, 0x917d, 0x917e, 0x9180, 0x9181, 0x9182,
- 0x9183, 0x9184, 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a,
- 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9192,
- 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a,
- 0x919b, 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a2,
- 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91aa,
- 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, 0x91b2,
- 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba,
- 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2,
- 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca,
- 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d2,
- 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da,
- 0x91db, 0x91dc, 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2,
- 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea,
- 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2,
- 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa,
- 0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x9240, 0x9241, 0x9242, 0x9243,
- 0x9244, 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b,
- 0x924c, 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253,
- 0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b,
- 0x925c, 0x925d, 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263,
- 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b,
- 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273,
- 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, 0x927b,
- 0x927c, 0x927d, 0x927e, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284,
- 0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c,
- 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294,
- 0x9295, 0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c,
- 0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4,
- 0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac,
- 0x92ad, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0x92b4,
- 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc,
- 0x92bd, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4,
- 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc,
- 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0x92d4,
- 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc,
- 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4,
- 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, 0x92ea, 0x92eb, 0x92ec,
- 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4,
- 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0x92fa, 0x92fb, 0x92fc,
- 0x92fd, 0x92fe, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345,
- 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, 0x934d,
- 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355,
- 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d,
- 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365,
- 0x9366, 0x9367, 0x9368, 0x9369, 0x936a, 0x936b, 0x936c, 0x936d,
- 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375,
- 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, 0x937c, 0x937d,
- 0x937e, 0x9380, 0x9381, 0x9382, 0x9383, 0x9384, 0x9385, 0x9386,
- 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, 0x938e,
- 0x938f, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396,
- 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0x939e,
- 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6,
- 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae,
- 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, 0x93b5, 0x93b6,
- 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x93be,
- 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0x93c6,
- 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93ce,
- 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d6,
- 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de,
- 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6,
- 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee,
- 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6,
- 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe,
- 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447,
- 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f,
- 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457,
- 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f,
- 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467,
- 0x9468, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, 0x946f,
- 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477,
- 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x9480,
- 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488,
- 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490,
- 0x9491, 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498,
- 0x9499, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, 0x94a0,
- 0x94a1, 0x94a2, 0x94a3, 0x94a4, 0x94a5, 0x94a6, 0x94a7, 0x94a8,
- 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0,
- 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6, 0x94b7, 0x94b8,
- 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0,
- 0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8,
- 0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0,
- 0x94d1, 0x94d2, 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8,
- 0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0,
- 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0x94e6, 0x94e7, 0x94e8,
- 0x94e9, 0x94ea, 0x94eb, 0x94ec, 0x94ed, 0x94ee, 0x94ef, 0x94f0,
- 0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8,
- 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, 0x94fe, 0x9540, 0x9541,
- 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, 0x9549,
- 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551,
- 0x9552, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559,
- 0x955a, 0x955b, 0x955c, 0x955d, 0x955e, 0x955f, 0x9560, 0x9561,
- 0x9562, 0x9563, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569,
- 0x956a, 0x956b, 0x956c, 0x956d, 0x956e, 0x956f, 0x9570, 0x9571,
- 0x9572, 0x9573, 0x9574, 0x9575, 0x9576, 0x9577, 0x9578, 0x9579,
- 0x957a, 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582,
- 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a,
- 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592,
- 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a,
- 0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2,
- 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa,
- 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2,
- 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba,
- 0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2,
- 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca,
- 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2,
- 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da,
- 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2,
- 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea,
- 0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f2,
- 0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa,
- 0x95fb, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643,
- 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, 0x9649, 0x964a, 0x964b,
- 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, 0x9651, 0x9652, 0x9653,
- 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, 0x965a, 0x965b,
- 0x965c, 0x965d, 0x965e, 0x965f, 0x9660, 0x9661, 0x9662, 0x9663,
- 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a, 0x966b,
- 0x966c, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9672, 0x9673,
- 0x9674, 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x967b,
- 0x967c, 0x967d, 0x967e, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684,
- 0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968a, 0x968b, 0x968c,
- 0x968d, 0x968e, 0x968f, 0x9690, 0x9691, 0x9692, 0x9693, 0x9694,
- 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, 0x969a, 0x969b, 0x969c,
- 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, 0x96a4,
- 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac,
- 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4,
- 0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc,
- 0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, 0x96c3, 0x96c4,
- 0x96c5, 0x96c6, 0x96c7, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc,
- 0x96cd, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0x96d2, 0x96d3, 0x96d4,
- 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc,
- 0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4,
- 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec,
- 0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, 0x96f4,
- 0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc,
- 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745,
- 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d,
- 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755,
- 0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x975b, 0x975c, 0x975d,
- 0x975e, 0x975f, 0x9760, 0x9761, 0x9762, 0x9763, 0x9764, 0x9765,
- 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d,
- 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, 0x9773, 0x9774, 0x9775,
- 0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d,
- 0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786,
- 0x9787, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0x978e,
- 0x978f, 0x9790, 0x9791, 0x9792, 0x9793, 0x9794, 0x9795, 0x9796,
- 0x9797, 0x9798, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0x979e,
- 0x979f, 0x97a0, 0x97a1, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6,
- 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae,
- 0x97af, 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6,
- 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be,
- 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6,
- 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce,
- 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6,
- 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de,
- 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6,
- 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee,
- 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6,
- 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe,
- 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847,
- 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f,
- 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857,
- 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, 0x985f,
- 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867,
- 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f,
- 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877,
- 0x9878, 0x9879, 0x987a, 0x987b, 0x987c, 0x987d, 0x987e, 0x9880,
- 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888,
- 0x9889, 0x988a, 0x988b, 0x988c, 0x988d, 0x988e, 0x988f, 0x9890,
- 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, 0x9897, 0x9898,
- 0x9899, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0,
- 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8,
- 0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0,
- 0x98b1, 0x98b2, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8,
- 0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0,
- 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8,
- 0x98c9, 0x98ca, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0,
- 0x98d1, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0x98d8,
- 0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, 0x98e0,
- 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8,
- 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0,
- 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8,
- 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x9940, 0x9941,
- 0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949,
- 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951,
- 0x9952, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0x9959,
- 0x995a, 0x995b, 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961,
- 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969,
- 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971,
- 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979,
- 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, 0x9981, 0x9982,
- 0x9983, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a,
- 0x998b, 0x998c, 0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9992,
- 0x9993, 0x9994, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0x999a,
- 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2,
- 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa,
- 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2,
- 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba,
- 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2,
- 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca,
- 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2,
- 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da,
- 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2,
- 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea,
- 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2,
- 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, 0x99fa,
- 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, 0x9a41, 0x9a42, 0x9a43,
- 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b,
- 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53,
- 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b,
- 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, 0x9a62, 0x9a63,
- 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0x9a6a, 0x9a6b,
- 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73,
- 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0x9a7a, 0x9a7b,
- 0x9a7c, 0x9a7d, 0x9a7e, 0x9a80, 0x9a81, 0x9a82, 0x9a83, 0x9a84,
- 0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 0x9a8a, 0x9a8b, 0x9a8c,
- 0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94,
- 0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c,
- 0x9a9d, 0x9a9e, 0x9a9f, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4,
- 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac,
- 0x9aad, 0x9aae, 0x9aaf, 0x9ab0, 0x9ab1, 0x9ab2, 0x9ab3, 0x9ab4,
- 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0x9abb, 0x9abc,
- 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4,
- 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc,
- 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4,
- 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc,
- 0x9add, 0x9ade, 0x9adf, 0x9ae0, 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4,
- 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0x9ae9, 0x9aea, 0x9aeb, 0x9aec,
- 0x9aed, 0x9aee, 0x9aef, 0x9af0, 0x9af1, 0x9af2, 0x9af3, 0x9af4,
- 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0x9afb, 0x9afc,
- 0x9afd, 0x9afe, 0x9b40, 0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45,
- 0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d,
- 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b52, 0x9b53, 0x9b54, 0x9b55,
- 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d,
- 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65,
- 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d,
- 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0x9b75,
- 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d,
- 0x9b7e, 0x9b80, 0x9b81, 0x9b82, 0x9b83, 0x9b84, 0x9b85, 0x9b86,
- 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e,
- 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, 0x9b94, 0x9b95, 0x9b96,
- 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e,
- 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6,
- 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae,
- 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6,
- 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe,
- 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6,
- 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce,
- 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6,
- 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde,
- 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6,
- 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee,
- 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6,
- 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0x9bfe,
- 0x9c40, 0x9c41, 0x9c42, 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47,
- 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f,
- 0x9c50, 0x9c51, 0x9c52, 0x9c53, 0x9c54, 0x9c55, 0x9c56, 0x9c57,
- 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f,
- 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67,
- 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f,
- 0x9c70, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77,
- 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, 0x9c7e, 0x9c80,
- 0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88,
- 0x9c89, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90,
- 0x9c91, 0x9c92, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, 0x9c98,
- 0x9c99, 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0x9c9e, 0x9c9f, 0x9ca0,
- 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8,
- 0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0,
- 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8,
- 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, 0x9cbf, 0x9cc0,
- 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8,
- 0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0,
- 0x9cd1, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8,
- 0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, 0x9cdf, 0x9ce0,
- 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8,
- 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0,
- 0x9cf1, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8,
- 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41,
- 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49,
- 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51,
- 0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59,
- 0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61,
- 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69,
- 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71,
- 0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79,
- 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82,
- 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a,
- 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92,
- 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a,
- 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2,
- 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa,
- 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2,
- 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba,
- 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2,
- 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca,
- 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2,
- 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda,
- 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2,
- 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea,
- 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2,
- 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa,
- 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, 0x9e42, 0x9e43,
- 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b,
- 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e52, 0x9e53,
- 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0x9e5a, 0x9e5b,
- 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e63,
- 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b,
- 0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e72, 0x9e73,
- 0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b,
- 0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84,
- 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0x9e8a, 0x9e8b, 0x9e8c,
- 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, 0x9e93, 0x9e94,
- 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c,
- 0x9e9d, 0x9e9e, 0x9e9f, 0x9ea0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4,
- 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac,
- 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4,
- 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc,
- 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4,
- 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc,
- 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4,
- 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc,
- 0x9edd, 0x9ede, 0x9edf, 0x9ee0, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4,
- 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec,
- 0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4,
- 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc,
- 0x9efd, 0x9efe, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45,
- 0x9f46, 0x9f47, 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d,
- 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0x9f52, 0x9f53, 0x9f54, 0x9f55,
- 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d,
- 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0x9f65,
- 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d,
- 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0x9f74, 0x9f75,
- 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d,
- 0x9f7e, 0x9f80, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86,
- 0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e,
- 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, 0x9f96,
- 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9f9e,
- 0x9f9f, 0x9fa0, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0x9fa6,
- 0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae,
- 0x9faf, 0x9fb0, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0x9fb6,
- 0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0x9fbe,
- 0x9fbf, 0x9fc0, 0x9fc1, 0x9fc2, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6,
- 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0x9fcb, 0x9fcc, 0x9fcd, 0x9fce,
- 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6,
- 0x9fd7, 0x9fd8, 0x9fd9, 0x9fda, 0x9fdb, 0x9fdc, 0x9fdd, 0x9fde,
- 0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0x9fe3, 0x9fe4, 0x9fe5, 0x9fe6,
- 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, 0x9fed, 0x9fee,
- 0x9fef, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6,
- 0x9ff7, 0x9ff8, 0x9ff9, 0x9ffa, 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe,
- 0xa040, 0xa041, 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047,
- 0xa048, 0xa049, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xa04e, 0xa04f,
- 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, 0xa057,
- 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, 0xa05e, 0xa05f,
- 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xa067,
- 0xa068, 0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f,
- 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077,
- 0xa078, 0xa079, 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa07e, 0xa080,
- 0xa081, 0xa082, 0xa083, 0xa084, 0xa085, 0xa086, 0xa087, 0xa088,
- 0xa089, 0xa08a, 0xa08b, 0xa08c, 0xa08d, 0xa08e, 0xa08f, 0xa090,
- 0xa091, 0xa092, 0xa093, 0xa094, 0xa095, 0xa096, 0xa097, 0xa098,
- 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xa09e, 0xa09f, 0xa0a0,
- 0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8,
- 0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0,
- 0xa0b1, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8,
- 0xa0b9, 0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0,
- 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8,
- 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0,
- 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xa0d7, 0xa0d8,
- 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, 0xa0df, 0xa0e0,
- 0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8,
- 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0,
- 0xa0f1, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8,
- 0xa0f9, 0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41,
- 0xaa42, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49,
- 0xaa4a, 0xaa4b, 0xaa4c, 0xaa4d, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51,
- 0xaa52, 0xaa53, 0xaa54, 0xaa55, 0xaa56, 0xaa57, 0xaa58, 0xaa59,
- 0xaa5a, 0xaa5b, 0xaa5c, 0xaa5d, 0xaa5e, 0xaa5f, 0xaa60, 0xaa61,
- 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xaa66, 0xaa67, 0xaa68, 0xaa69,
- 0xaa6a, 0xaa6b, 0xaa6c, 0xaa6d, 0xaa6e, 0xaa6f, 0xaa70, 0xaa71,
- 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xaa79,
- 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa7e, 0xaa80, 0xaa81, 0xaa82,
- 0xaa83, 0xaa84, 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a,
- 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92,
- 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a,
- 0xaa9b, 0xaa9c, 0xaa9d, 0xaa9e, 0xaa9f, 0xaaa0, 0xab40, 0xab41,
- 0xab42, 0xab43, 0xab44, 0xab45, 0xab46, 0xab47, 0xab48, 0xab49,
- 0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xab51,
- 0xab52, 0xab53, 0xab54, 0xab55, 0xab56, 0xab57, 0xab58, 0xab59,
- 0xab5a, 0xab5b, 0xab5c, 0xab5d, 0xab5e, 0xab5f, 0xab60, 0xab61,
- 0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, 0xab69,
- 0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, 0xab71,
- 0xab72, 0xab73, 0xab74, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79,
- 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, 0xab80, 0xab81, 0xab82,
- 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xab8a,
- 0xab8b, 0xab8c, 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92,
- 0xab93, 0xab94, 0xab95, 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a,
- 0xab9b, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac40, 0xac41,
- 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49,
- 0xac4a, 0xac4b, 0xac4c, 0xac4d, 0xac4e, 0xac4f, 0xac50, 0xac51,
- 0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, 0xac59,
- 0xac5a, 0xac5b, 0xac5c, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61,
- 0xac62, 0xac63, 0xac64, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69,
- 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71,
- 0xac72, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, 0xac79,
- 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, 0xac82,
- 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, 0xac8a,
- 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92,
- 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a,
- 0xac9b, 0xac9c, 0xac9d, 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41,
- 0xad42, 0xad43, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49,
- 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad50, 0xad51,
- 0xad52, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59,
- 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61,
- 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69,
- 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71,
- 0xad72, 0xad73, 0xad74, 0xad75, 0xad76, 0xad77, 0xad78, 0xad79,
- 0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, 0xad80, 0xad81, 0xad82,
- 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, 0xad89, 0xad8a,
- 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92,
- 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a,
- 0xad9b, 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xada0, 0xae40, 0xae41,
- 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xae49,
- 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51,
- 0xae52, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59,
- 0xae5a, 0xae5b, 0xae5c, 0xae5d, 0xae5e, 0xae5f, 0xae60, 0xae61,
- 0xae62, 0xae63, 0xae64, 0xae65, 0xae66, 0xae67, 0xae68, 0xae69,
- 0xae6a, 0xae6b, 0xae6c, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71,
- 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae78, 0xae79,
- 0xae7a, 0xae7b, 0xae7c, 0xae7d, 0xae7e, 0xae80, 0xae81, 0xae82,
- 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a,
- 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92,
- 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a,
- 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaf40, 0xaf41,
- 0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf48, 0xaf49,
- 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51,
- 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59,
- 0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61,
- 0xaf62, 0xaf63, 0xaf64, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69,
- 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71,
- 0xaf72, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf79,
- 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf80, 0xaf81, 0xaf82,
- 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xaf8a,
- 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, 0xaf91, 0xaf92,
- 0xaf93, 0xaf94, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a,
- 0xaf9b, 0xaf9c, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xb040, 0xb041,
- 0xb042, 0xb043, 0xb044, 0xb045, 0xb046, 0xb047, 0xb048, 0xb049,
- 0xb04a, 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0xb04f, 0xb050, 0xb051,
- 0xb052, 0xb053, 0xb054, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059,
- 0xb05a, 0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xb05f, 0xb060, 0xb061,
- 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069,
- 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071,
- 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079,
- 0xb07a, 0xb07b, 0xb07c, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082,
- 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a,
- 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb092,
- 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb098, 0xb099, 0xb09a,
- 0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f, 0xb0a0, 0xb140, 0xb141,
- 0xb142, 0xb143, 0xb144, 0xb145, 0xb146, 0xb147, 0xb148, 0xb149,
- 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xb151,
- 0xb152, 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xb159,
- 0xb15a, 0xb15b, 0xb15c, 0xb15d, 0xb15e, 0xb15f, 0xb160, 0xb161,
- 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169,
- 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171,
- 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179,
- 0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb17e, 0xb180, 0xb181, 0xb182,
- 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a,
- 0xb18b, 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb192,
- 0xb193, 0xb194, 0xb195, 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a,
- 0xb19b, 0xb19c, 0xb19d, 0xb19e, 0xb19f, 0xb1a0, 0xb240, 0xb241,
- 0xb242, 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249,
- 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251,
- 0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb258, 0xb259,
- 0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xb260, 0xb261,
- 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269,
- 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, 0xb271,
- 0xb272, 0xb273, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279,
- 0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb27e, 0xb280, 0xb281, 0xb282,
- 0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a,
- 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb292,
- 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb298, 0xb299, 0xb29a,
- 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a0, 0xb340, 0xb341,
- 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349,
- 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351,
- 0xb352, 0xb353, 0xb354, 0xb355, 0xb356, 0xb357, 0xb358, 0xb359,
- 0xb35a, 0xb35b, 0xb35c, 0xb35d, 0xb35e, 0xb35f, 0xb360, 0xb361,
- 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xb367, 0xb368, 0xb369,
- 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0xb370, 0xb371,
- 0xb372, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379,
- 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xb382,
- 0xb383, 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a,
- 0xb38b, 0xb38c, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392,
- 0xb393, 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a,
- 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441,
- 0xb442, 0xb443, 0xb444, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449,
- 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb450, 0xb451,
- 0xb452, 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459,
- 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xb461,
- 0xb462, 0xb463, 0xb464, 0xb465, 0xb466, 0xb467, 0xb468, 0xb469,
- 0xb46a, 0xb46b, 0xb46c, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471,
- 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479,
- 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482,
- 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, 0xb489, 0xb48a,
- 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492,
- 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a,
- 0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541,
- 0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, 0xb549,
- 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, 0xb551,
- 0xb552, 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559,
- 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561,
- 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569,
- 0xb56a, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571,
- 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579,
- 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb580, 0xb581, 0xb582,
- 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a,
- 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592,
- 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a,
- 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641,
- 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, 0xb649,
- 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651,
- 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659,
- 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661,
- 0xb662, 0xb663, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669,
- 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671,
- 0xb672, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679,
- 0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb680, 0xb681, 0xb682,
- 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a,
- 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692,
- 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a,
- 0xb69b, 0xb69c, 0xb69d, 0xb69e, 0xb69f, 0xb6a0, 0xb740, 0xb741,
- 0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749,
- 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751,
- 0xb752, 0xb753, 0xb754, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759,
- 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb760, 0xb761,
- 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xb769,
- 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771,
- 0xb772, 0xb773, 0xb774, 0xb775, 0xb776, 0xb777, 0xb778, 0xb779,
- 0xb77a, 0xb77b, 0xb77c, 0xb77d, 0xb77e, 0xb780, 0xb781, 0xb782,
- 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a,
- 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb78f, 0xb790, 0xb791, 0xb792,
- 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, 0xb79a,
- 0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, 0xb840, 0xb841,
- 0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849,
- 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb851,
- 0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859,
- 0xb85a, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb85f, 0xb860, 0xb861,
- 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869,
- 0xb86a, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871,
- 0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879,
- 0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882,
- 0xb883, 0xb884, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a,
- 0xb88b, 0xb88c, 0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892,
- 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a,
- 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0xb8a0, 0xb940, 0xb941,
- 0xb942, 0xb943, 0xb944, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949,
- 0xb94a, 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951,
- 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0xb958, 0xb959,
- 0xb95a, 0xb95b, 0xb95c, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961,
- 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969,
- 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xb970, 0xb971,
- 0xb972, 0xb973, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979,
- 0xb97a, 0xb97b, 0xb97c, 0xb97d, 0xb97e, 0xb980, 0xb981, 0xb982,
- 0xb983, 0xb984, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a,
- 0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb992,
- 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a,
- 0xb99b, 0xb99c, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xba41,
- 0xba42, 0xba43, 0xba44, 0xba45, 0xba46, 0xba47, 0xba48, 0xba49,
- 0xba4a, 0xba4b, 0xba4c, 0xba4d, 0xba4e, 0xba4f, 0xba50, 0xba51,
- 0xba52, 0xba53, 0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59,
- 0xba5a, 0xba5b, 0xba5c, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61,
- 0xba62, 0xba63, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69,
- 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xba71,
- 0xba72, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79,
- 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82,
- 0xba83, 0xba84, 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a,
- 0xba8b, 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92,
- 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a,
- 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbb40, 0xbb41,
- 0xbb42, 0xbb43, 0xbb44, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49,
- 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51,
- 0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59,
- 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61,
- 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69,
- 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71,
- 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79,
- 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb80, 0xbb81, 0xbb82,
- 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a,
- 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb92,
- 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a,
- 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbc40, 0xbc41,
- 0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, 0xbc47, 0xbc48, 0xbc49,
- 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51,
- 0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59,
- 0xbc5a, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61,
- 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69,
- 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71,
- 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79,
- 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc80, 0xbc81, 0xbc82,
- 0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a,
- 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92,
- 0xbc93, 0xbc94, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a,
- 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, 0xbd41,
- 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49,
- 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51,
- 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59,
- 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61,
- 0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69,
- 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71,
- 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79,
- 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd80, 0xbd81, 0xbd82,
- 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89, 0xbd8a,
- 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd92,
- 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a,
- 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbe40, 0xbe41,
- 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49,
- 0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51,
- 0xbe52, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59,
- 0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61,
- 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69,
- 0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71,
- 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79,
- 0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82,
- 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a,
- 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92,
- 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a,
- 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41,
- 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49,
- 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51,
- 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59,
- 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61,
- 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69,
- 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71,
- 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79,
- 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf80, 0xbf81, 0xbf82,
- 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a,
- 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92,
- 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a,
- 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041,
- 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049,
- 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051,
- 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059,
- 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061,
- 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069,
- 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071,
- 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079,
- 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc080, 0xc081, 0xc082,
- 0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a,
- 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc092,
- 0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, 0xc099, 0xc09a,
- 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a0, 0xc140, 0xc141,
- 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc148, 0xc149,
- 0xc14a, 0xc14b, 0xc14c, 0xc14d, 0xc14e, 0xc14f, 0xc150, 0xc151,
- 0xc152, 0xc153, 0xc154, 0xc155, 0xc156, 0xc157, 0xc158, 0xc159,
- 0xc15a, 0xc15b, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161,
- 0xc162, 0xc163, 0xc164, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169,
- 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, 0xc171,
- 0xc172, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179,
- 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc17e, 0xc180, 0xc181, 0xc182,
- 0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a,
- 0xc18b, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192,
- 0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a,
- 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc240, 0xc241,
- 0xc242, 0xc243, 0xc244, 0xc245, 0xc246, 0xc247, 0xc248, 0xc249,
- 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xc250, 0xc251,
- 0xc252, 0xc253, 0xc254, 0xc255, 0xc256, 0xc257, 0xc258, 0xc259,
- 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc260, 0xc261,
- 0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, 0xc269,
- 0xc26a, 0xc26b, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, 0xc271,
- 0xc272, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279,
- 0xc27a, 0xc27b, 0xc27c, 0xc27d, 0xc27e, 0xc280, 0xc281, 0xc282,
- 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a,
- 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc292,
- 0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a,
- 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xc341,
- 0xc342, 0xc343, 0xc344, 0xc345, 0xc346, 0xc347, 0xc348, 0xc349,
- 0xc34a, 0xc34b, 0xc34c, 0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351,
- 0xc352, 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359,
- 0xc35a, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361,
- 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369,
- 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, 0xc371,
- 0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379,
- 0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc37e, 0xc380, 0xc381, 0xc382,
- 0xc383, 0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a,
- 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392,
- 0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a,
- 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, 0xc440, 0xc441,
- 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449,
- 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, 0xc451,
- 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, 0xc459,
- 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, 0xc461,
- 0xc462, 0xc463, 0xc464, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469,
- 0xc46a, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471,
- 0xc472, 0xc473, 0xc474, 0xc475, 0xc476, 0xc477, 0xc478, 0xc479,
- 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc480, 0xc481, 0xc482,
- 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc48a,
- 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc492,
- 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a,
- 0xc49b, 0xc49c, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541,
- 0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549,
- 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, 0xc551,
- 0xc552, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559,
- 0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0xc560, 0xc561,
- 0xc562, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569,
- 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571,
- 0xc572, 0xc573, 0xc574, 0xc575, 0xc576, 0xc577, 0xc578, 0xc579,
- 0xc57a, 0xc57b, 0xc57c, 0xc57d, 0xc57e, 0xc580, 0xc581, 0xc582,
- 0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, 0xc589, 0xc58a,
- 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592,
- 0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0xc598, 0xc599, 0xc59a,
- 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, 0xc5a0, 0xc640, 0xc641,
- 0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649,
- 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, 0xc651,
- 0xc652, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658, 0xc659,
- 0xc65a, 0xc65b, 0xc65c, 0xc65d, 0xc65e, 0xc65f, 0xc660, 0xc661,
- 0xc662, 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669,
- 0xc66a, 0xc66b, 0xc66c, 0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671,
- 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc678, 0xc679,
- 0xc67a, 0xc67b, 0xc67c, 0xc67d, 0xc67e, 0xc680, 0xc681, 0xc682,
- 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc688, 0xc689, 0xc68a,
- 0xc68b, 0xc68c, 0xc68d, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692,
- 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, 0xc69a,
- 0xc69b, 0xc69c, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc740, 0xc741,
- 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749,
- 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751,
- 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759,
- 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761,
- 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769,
- 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771,
- 0xc772, 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779,
- 0xc77a, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc780, 0xc781, 0xc782,
- 0xc783, 0xc784, 0xc785, 0xc786, 0xc787, 0xc788, 0xc789, 0xc78a,
- 0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0xc790, 0xc791, 0xc792,
- 0xc793, 0xc794, 0xc795, 0xc796, 0xc797, 0xc798, 0xc799, 0xc79a,
- 0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841,
- 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc848, 0xc849,
- 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, 0xc84f, 0xc850, 0xc851,
- 0xc852, 0xc853, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859,
- 0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861,
- 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869,
- 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xc871,
- 0xc872, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879,
- 0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882,
- 0xc883, 0xc884, 0xc885, 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a,
- 0xc88b, 0xc88c, 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892,
- 0xc893, 0xc894, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a,
- 0xc89b, 0xc89c, 0xc89d, 0xc89e, 0xc89f, 0xc8a0, 0xc940, 0xc941,
- 0xc942, 0xc943, 0xc944, 0xc945, 0xc946, 0xc947, 0xc948, 0xc949,
- 0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951,
- 0xc952, 0xc953, 0xc954, 0xc955, 0xc956, 0xc957, 0xc958, 0xc959,
- 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc960, 0xc961,
- 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, 0xc969,
- 0xc96a, 0xc96b, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, 0xc971,
- 0xc972, 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979,
- 0xc97a, 0xc97b, 0xc97c, 0xc97d, 0xc97e, 0xc980, 0xc981, 0xc982,
- 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc988, 0xc989, 0xc98a,
- 0xc98b, 0xc98c, 0xc98d, 0xc98e, 0xc98f, 0xc990, 0xc991, 0xc992,
- 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, 0xc998, 0xc999, 0xc99a,
- 0xc99b, 0xc99c, 0xc99d, 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41,
- 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0xca47, 0xca48, 0xca49,
- 0xca4a, 0xca4b, 0xca4c, 0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51,
- 0xca52, 0xca53, 0xca54, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59,
- 0xca5a, 0xca5b, 0xca5c, 0xca5d, 0xca5e, 0xca5f, 0xca60, 0xca61,
- 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69,
- 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, 0xca71,
- 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79,
- 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xca80, 0xca81, 0xca82,
- 0xca83, 0xca84, 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a,
- 0xca8b, 0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92,
- 0xca93, 0xca94, 0xca95, 0xca96, 0xca97, 0xca98, 0xca99, 0xca9a,
- 0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0xcaa0, 0xcb40, 0xcb41,
- 0xcb42, 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49,
- 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51,
- 0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, 0xcb58, 0xcb59,
- 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, 0xcb5e, 0xcb5f, 0xcb60, 0xcb61,
- 0xcb62, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69,
- 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71,
- 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79,
- 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb80, 0xcb81, 0xcb82,
- 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89, 0xcb8a,
- 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb92,
- 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a,
- 0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcc40, 0xcc41,
- 0xcc42, 0xcc43, 0xcc44, 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49,
- 0xcc4a, 0xcc4b, 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51,
- 0xcc52, 0xcc53, 0xcc54, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xcc59,
- 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61,
- 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69,
- 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71,
- 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, 0xcc78, 0xcc79,
- 0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc80, 0xcc81, 0xcc82,
- 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a,
- 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92,
- 0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc98, 0xcc99, 0xcc9a,
- 0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca0, 0xcd40, 0xcd41,
- 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49,
- 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xcd51,
- 0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59,
- 0xcd5a, 0xcd5b, 0xcd5c, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61,
- 0xcd62, 0xcd63, 0xcd64, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69,
- 0xcd6a, 0xcd6b, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71,
- 0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xcd78, 0xcd79,
- 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, 0xcd80, 0xcd81, 0xcd82,
- 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd88, 0xcd89, 0xcd8a,
- 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92,
- 0xcd93, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, 0xcd9a,
- 0xcd9b, 0xcd9c, 0xcd9d, 0xcd9e, 0xcd9f, 0xcda0, 0xce40, 0xce41,
- 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, 0xce49,
- 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51,
- 0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce58, 0xce59,
- 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xce5f, 0xce60, 0xce61,
- 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67, 0xce68, 0xce69,
- 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, 0xce70, 0xce71,
- 0xce72, 0xce73, 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79,
- 0xce7a, 0xce7b, 0xce7c, 0xce7d, 0xce7e, 0xce80, 0xce81, 0xce82,
- 0xce83, 0xce84, 0xce85, 0xce86, 0xce87, 0xce88, 0xce89, 0xce8a,
- 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce90, 0xce91, 0xce92,
- 0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a,
- 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41,
- 0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xcf49,
- 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, 0xcf51,
- 0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59,
- 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf5e, 0xcf5f, 0xcf60, 0xcf61,
- 0xcf62, 0xcf63, 0xcf64, 0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69,
- 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71,
- 0xcf72, 0xcf73, 0xcf74, 0xcf75, 0xcf76, 0xcf77, 0xcf78, 0xcf79,
- 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf80, 0xcf81, 0xcf82,
- 0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a,
- 0xcf8b, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92,
- 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a,
- 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xd040, 0xd041,
- 0xd042, 0xd043, 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049,
- 0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xd04e, 0xd04f, 0xd050, 0xd051,
- 0xd052, 0xd053, 0xd054, 0xd055, 0xd056, 0xd057, 0xd058, 0xd059,
- 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd060, 0xd061,
- 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069,
- 0xd06a, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071,
- 0xd072, 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079,
- 0xd07a, 0xd07b, 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xd082,
- 0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a,
- 0xd08b, 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092,
- 0xd093, 0xd094, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a,
- 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd140, 0xd141,
- 0xd142, 0xd143, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xd149,
- 0xd14a, 0xd14b, 0xd14c, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151,
- 0xd152, 0xd153, 0xd154, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159,
- 0xd15a, 0xd15b, 0xd15c, 0xd15d, 0xd15e, 0xd15f, 0xd160, 0xd161,
- 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd168, 0xd169,
- 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f, 0xd170, 0xd171,
- 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179,
- 0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd17e, 0xd180, 0xd181, 0xd182,
- 0xd183, 0xd184, 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a,
- 0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192,
- 0xd193, 0xd194, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a,
- 0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0xd1a0, 0xd240, 0xd241,
- 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd248, 0xd249,
- 0xd24a, 0xd24b, 0xd24c, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251,
- 0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259,
- 0xd25a, 0xd25b, 0xd25c, 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261,
- 0xd262, 0xd263, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269,
- 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271,
- 0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279,
- 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd280, 0xd281, 0xd282,
- 0xd283, 0xd284, 0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a,
- 0xd28b, 0xd28c, 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd292,
- 0xd293, 0xd294, 0xd295, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a,
- 0xd29b, 0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd340, 0xd341,
- 0xd342, 0xd343, 0xd344, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349,
- 0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351,
- 0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359,
- 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0xd360, 0xd361,
- 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369,
- 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xd371,
- 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379,
- 0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382,
- 0xd383, 0xd384, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a,
- 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392,
- 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a,
- 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441,
- 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449,
- 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451,
- 0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459,
- 0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xd460, 0xd461,
- 0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469,
- 0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471,
- 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd478, 0xd479,
- 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, 0xd481, 0xd482,
- 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, 0xd489, 0xd48a,
- 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492,
- 0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a,
- 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, 0xd4a0, 0xd540, 0xd541,
- 0xd542, 0xd543, 0xd544, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549,
- 0xd54a, 0xd54b, 0xd54c, 0xd54d, 0xd54e, 0xd54f, 0xd550, 0xd551,
- 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559,
- 0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561,
- 0xd562, 0xd563, 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569,
- 0xd56a, 0xd56b, 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571,
- 0xd572, 0xd573, 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579,
- 0xd57a, 0xd57b, 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582,
- 0xd583, 0xd584, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a,
- 0xd58b, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592,
- 0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a,
- 0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641,
- 0xd642, 0xd643, 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649,
- 0xd64a, 0xd64b, 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651,
- 0xd652, 0xd653, 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659,
- 0xd65a, 0xd65b, 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661,
- 0xd662, 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669,
- 0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671,
- 0xd672, 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679,
- 0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xd682,
- 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a,
- 0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692,
- 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a,
- 0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741,
- 0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749,
- 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751,
- 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759,
- 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xd760, 0xd761,
- 0xd762, 0xd763, 0xd764, 0xd765, 0xd766, 0xd767, 0xd768, 0xd769,
- 0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, 0xd770, 0xd771,
- 0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779,
- 0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, 0xd781, 0xd782,
- 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, 0xd789, 0xd78a,
- 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, 0xd791, 0xd792,
- 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, 0xd799, 0xd79a,
- 0xd79b, 0xd79c, 0xd79d, 0xd79e, 0xd79f, 0xd7a0, 0xd840, 0xd841,
- 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848, 0xd849,
- 0xd84a, 0xd84b, 0xd84c, 0xd84d, 0xd84e, 0xd84f, 0xd850, 0xd851,
- 0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xd858, 0xd859,
- 0xd85a, 0xd85b, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, 0xd861,
- 0xd862, 0xd863, 0xd864, 0xd865, 0xd866, 0xd867, 0xd868, 0xd869,
- 0xd86a, 0xd86b, 0xd86c, 0xd86d, 0xd86e, 0xd86f, 0xd870, 0xd871,
- 0xd872, 0xd873, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, 0xd879,
- 0xd87a, 0xd87b, 0xd87c, 0xd87d, 0xd87e, 0xd880, 0xd881, 0xd882,
- 0xd883, 0xd884, 0xd885, 0xd886, 0xd887, 0xd888, 0xd889, 0xd88a,
- 0xd88b, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892,
- 0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a,
- 0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941,
- 0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949,
- 0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951,
- 0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959,
- 0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961,
- 0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969,
- 0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971,
- 0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979,
- 0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982,
- 0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a,
- 0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992,
- 0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a,
- 0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41,
- 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49,
- 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xda4f, 0xda50, 0xda51,
- 0xda52, 0xda53, 0xda54, 0xda55, 0xda56, 0xda57, 0xda58, 0xda59,
- 0xda5a, 0xda5b, 0xda5c, 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61,
- 0xda62, 0xda63, 0xda64, 0xda65, 0xda66, 0xda67, 0xda68, 0xda69,
- 0xda6a, 0xda6b, 0xda6c, 0xda6d, 0xda6e, 0xda6f, 0xda70, 0xda71,
- 0xda72, 0xda73, 0xda74, 0xda75, 0xda76, 0xda77, 0xda78, 0xda79,
- 0xda7a, 0xda7b, 0xda7c, 0xda7d, 0xda7e, 0xda80, 0xda81, 0xda82,
- 0xda83, 0xda84, 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a,
- 0xda8b, 0xda8c, 0xda8d, 0xda8e, 0xda8f, 0xda90, 0xda91, 0xda92,
- 0xda93, 0xda94, 0xda95, 0xda96, 0xda97, 0xda98, 0xda99, 0xda9a,
- 0xda9b, 0xda9c, 0xda9d, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xdb41,
- 0xdb42, 0xdb43, 0xdb44, 0xdb45, 0xdb46, 0xdb47, 0xdb48, 0xdb49,
- 0xdb4a, 0xdb4b, 0xdb4c, 0xdb4d, 0xdb4e, 0xdb4f, 0xdb50, 0xdb51,
- 0xdb52, 0xdb53, 0xdb54, 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59,
- 0xdb5a, 0xdb5b, 0xdb5c, 0xdb5d, 0xdb5e, 0xdb5f, 0xdb60, 0xdb61,
- 0xdb62, 0xdb63, 0xdb64, 0xdb65, 0xdb66, 0xdb67, 0xdb68, 0xdb69,
- 0xdb6a, 0xdb6b, 0xdb6c, 0xdb6d, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71,
- 0xdb72, 0xdb73, 0xdb74, 0xdb75, 0xdb76, 0xdb77, 0xdb78, 0xdb79,
- 0xdb7a, 0xdb7b, 0xdb7c, 0xdb7d, 0xdb7e, 0xdb80, 0xdb81, 0xdb82,
- 0xdb83, 0xdb84, 0xdb85, 0xdb86, 0xdb87, 0xdb88, 0xdb89, 0xdb8a,
- 0xdb8b, 0xdb8c, 0xdb8d, 0xdb8e, 0xdb8f, 0xdb90, 0xdb91, 0xdb92,
- 0xdb93, 0xdb94, 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a,
- 0xdb9b, 0xdb9c, 0xdb9d, 0xdb9e, 0xdb9f, 0xdba0, 0xdc40, 0xdc41,
- 0xdc42, 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xdc47, 0xdc48, 0xdc49,
- 0xdc4a, 0xdc4b, 0xdc4c, 0xdc4d, 0xdc4e, 0xdc4f, 0xdc50, 0xdc51,
- 0xdc52, 0xdc53, 0xdc54, 0xdc55, 0xdc56, 0xdc57, 0xdc58, 0xdc59,
- 0xdc5a, 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xdc5f, 0xdc60, 0xdc61,
- 0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc69,
- 0xdc6a, 0xdc6b, 0xdc6c, 0xdc6d, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71,
- 0xdc72, 0xdc73, 0xdc74, 0xdc75, 0xdc76, 0xdc77, 0xdc78, 0xdc79,
- 0xdc7a, 0xdc7b, 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82,
- 0xdc83, 0xdc84, 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a,
- 0xdc8b, 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92,
- 0xdc93, 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a,
- 0xdc9b, 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41,
- 0xdd42, 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49,
- 0xdd4a, 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51,
- 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59,
- 0xdd5a, 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61,
- 0xdd62, 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69,
- 0xdd6a, 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71,
- 0xdd72, 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79,
- 0xdd7a, 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82,
- 0xdd83, 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a,
- 0xdd8b, 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92,
- 0xdd93, 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a,
- 0xdd9b, 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41,
- 0xde42, 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49,
- 0xde4a, 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51,
- 0xde52, 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59,
- 0xde5a, 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xde61,
- 0xde62, 0xde63, 0xde64, 0xde65, 0xde66, 0xde67, 0xde68, 0xde69,
- 0xde6a, 0xde6b, 0xde6c, 0xde6d, 0xde6e, 0xde6f, 0xde70, 0xde71,
- 0xde72, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, 0xde78, 0xde79,
- 0xde7a, 0xde7b, 0xde7c, 0xde7d, 0xde7e, 0xde80, 0xde81, 0xde82,
- 0xde83, 0xde84, 0xde85, 0xde86, 0xde87, 0xde88, 0xde89, 0xde8a,
- 0xde8b, 0xde8c, 0xde8d, 0xde8e, 0xde8f, 0xde90, 0xde91, 0xde92,
- 0xde93, 0xde94, 0xde95, 0xde96, 0xde97, 0xde98, 0xde99, 0xde9a,
- 0xde9b, 0xde9c, 0xde9d, 0xde9e, 0xde9f, 0xdea0, 0xdf40, 0xdf41,
- 0xdf42, 0xdf43, 0xdf44, 0xdf45, 0xdf46, 0xdf47, 0xdf48, 0xdf49,
- 0xdf4a, 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xdf50, 0xdf51,
- 0xdf52, 0xdf53, 0xdf54, 0xdf55, 0xdf56, 0xdf57, 0xdf58, 0xdf59,
- 0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xdf5e, 0xdf5f, 0xdf60, 0xdf61,
- 0xdf62, 0xdf63, 0xdf64, 0xdf65, 0xdf66, 0xdf67, 0xdf68, 0xdf69,
- 0xdf6a, 0xdf6b, 0xdf6c, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xdf71,
- 0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xdf76, 0xdf77, 0xdf78, 0xdf79,
- 0xdf7a, 0xdf7b, 0xdf7c, 0xdf7d, 0xdf7e, 0xdf80, 0xdf81, 0xdf82,
- 0xdf83, 0xdf84, 0xdf85, 0xdf86, 0xdf87, 0xdf88, 0xdf89, 0xdf8a,
- 0xdf8b, 0xdf8c, 0xdf8d, 0xdf8e, 0xdf8f, 0xdf90, 0xdf91, 0xdf92,
- 0xdf93, 0xdf94, 0xdf95, 0xdf96, 0xdf97, 0xdf98, 0xdf99, 0xdf9a,
- 0xdf9b, 0xdf9c, 0xdf9d, 0xdf9e, 0xdf9f, 0xdfa0, 0xe040, 0xe041,
- 0xe042, 0xe043, 0xe044, 0xe045, 0xe046, 0xe047, 0xe048, 0xe049,
- 0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, 0xe04f, 0xe050, 0xe051,
- 0xe052, 0xe053, 0xe054, 0xe055, 0xe056, 0xe057, 0xe058, 0xe059,
- 0xe05a, 0xe05b, 0xe05c, 0xe05d, 0xe05e, 0xe05f, 0xe060, 0xe061,
- 0xe062, 0xe063, 0xe064, 0xe065, 0xe066, 0xe067, 0xe068, 0xe069,
- 0xe06a, 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071,
- 0xe072, 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079,
- 0xe07a, 0xe07b, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xe081, 0xe082,
- 0xe083, 0xe084, 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a,
- 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092,
- 0xe093, 0xe094, 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a,
- 0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe140, 0xe141,
- 0xe142, 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, 0xe149,
- 0xe14a, 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, 0xe151,
- 0xe152, 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, 0xe159,
- 0xe15a, 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, 0xe161,
- 0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, 0xe169,
- 0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, 0xe171,
- 0xe172, 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0xe178, 0xe179,
- 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, 0xe180, 0xe181, 0xe182,
- 0xe183, 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a,
- 0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192,
- 0xe193, 0xe194, 0xe195, 0xe196, 0xe197, 0xe198, 0xe199, 0xe19a,
- 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241,
- 0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249,
- 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251,
- 0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259,
- 0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261,
- 0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269,
- 0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271,
- 0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279,
- 0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282,
- 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a,
- 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292,
- 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a,
- 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341,
- 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349,
- 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351,
- 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359,
- 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361,
- 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369,
- 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xe36e, 0xe36f, 0xe370, 0xe371,
- 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, 0xe379,
- 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, 0xe382,
- 0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xe388, 0xe389, 0xe38a,
- 0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, 0xe391, 0xe392,
- 0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, 0xe399, 0xe39a,
- 0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe440, 0xe441,
- 0xe442, 0xe443, 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, 0xe449,
- 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451,
- 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459,
- 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461,
- 0xe462, 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0xe468, 0xe469,
- 0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, 0xe470, 0xe471,
- 0xe472, 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479,
- 0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe480, 0xe481, 0xe482,
- 0xe483, 0xe484, 0xe485, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a,
- 0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, 0xe490, 0xe491, 0xe492,
- 0xe493, 0xe494, 0xe495, 0xe496, 0xe497, 0xe498, 0xe499, 0xe49a,
- 0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, 0xe4a0, 0xe540, 0xe541,
- 0xe542, 0xe543, 0xe544, 0xe545, 0xe546, 0xe547, 0xe548, 0xe549,
- 0xe54a, 0xe54b, 0xe54c, 0xe54d, 0xe54e, 0xe54f, 0xe550, 0xe551,
- 0xe552, 0xe553, 0xe554, 0xe555, 0xe556, 0xe557, 0xe558, 0xe559,
- 0xe55a, 0xe55b, 0xe55c, 0xe55d, 0xe55e, 0xe55f, 0xe560, 0xe561,
- 0xe562, 0xe563, 0xe564, 0xe565, 0xe566, 0xe567, 0xe568, 0xe569,
- 0xe56a, 0xe56b, 0xe56c, 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571,
- 0xe572, 0xe573, 0xe574, 0xe575, 0xe576, 0xe577, 0xe578, 0xe579,
- 0xe57a, 0xe57b, 0xe57c, 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582,
- 0xe583, 0xe584, 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a,
- 0xe58b, 0xe58c, 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592,
- 0xe593, 0xe594, 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a,
- 0xe59b, 0xe59c, 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe640, 0xe641,
- 0xe642, 0xe643, 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649,
- 0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651,
- 0xe652, 0xe653, 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659,
- 0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661,
- 0xe662, 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669,
- 0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671,
- 0xe672, 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679,
- 0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682,
- 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a,
- 0xe68b, 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692,
- 0xe693, 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a,
- 0xe69b, 0xe69c, 0xe69d, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741,
- 0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xe748, 0xe749,
- 0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751,
- 0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, 0xe759,
- 0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761,
- 0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, 0xe769,
- 0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, 0xe771,
- 0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, 0xe779,
- 0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, 0xe782,
- 0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a,
- 0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792,
- 0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, 0xe79a,
- 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, 0xe841,
- 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849,
- 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xe84f, 0xe850, 0xe851,
- 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, 0xe858, 0xe859,
- 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, 0xe860, 0xe861,
- 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869,
- 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, 0xe870, 0xe871,
- 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, 0xe878, 0xe879,
- 0xe87a, 0xe87b, 0xe87c, 0xe87d, 0xe87e, 0xe880, 0xe881, 0xe882,
- 0xe883, 0xe884, 0xe885, 0xe886, 0xe887, 0xe888, 0xe889, 0xe88a,
- 0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, 0xe890, 0xe891, 0xe892,
- 0xe893, 0xe894, 0xe895, 0xe896, 0xe897, 0xe898, 0xe899, 0xe89a,
- 0xe89b, 0xe89c, 0xe89d, 0xe89e, 0xe89f, 0xe8a0, 0xe940, 0xe941,
- 0xe942, 0xe943, 0xe944, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949,
- 0xe94a, 0xe94b, 0xe94c, 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951,
- 0xe952, 0xe953, 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959,
- 0xe95a, 0xe95b, 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961,
- 0xe962, 0xe963, 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969,
- 0xe96a, 0xe96b, 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971,
- 0xe972, 0xe973, 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979,
- 0xe97a, 0xe97b, 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982,
- 0xe983, 0xe984, 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a,
- 0xe98b, 0xe98c, 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992,
- 0xe993, 0xe994, 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a,
- 0xe99b, 0xe99c, 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41,
- 0xea42, 0xea43, 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49,
- 0xea4a, 0xea4b, 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51,
- 0xea52, 0xea53, 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59,
- 0xea5a, 0xea5b, 0xea5c, 0xea5d, 0xea5e, 0xea5f, 0xea60, 0xea61,
- 0xea62, 0xea63, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, 0xea69,
- 0xea6a, 0xea6b, 0xea6c, 0xea6d, 0xea6e, 0xea6f, 0xea70, 0xea71,
- 0xea72, 0xea73, 0xea74, 0xea75, 0xea76, 0xea77, 0xea78, 0xea79,
- 0xea7a, 0xea7b, 0xea7c, 0xea7d, 0xea7e, 0xea80, 0xea81, 0xea82,
- 0xea83, 0xea84, 0xea85, 0xea86, 0xea87, 0xea88, 0xea89, 0xea8a,
- 0xea8b, 0xea8c, 0xea8d, 0xea8e, 0xea8f, 0xea90, 0xea91, 0xea92,
- 0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, 0xea99, 0xea9a,
- 0xea9b, 0xea9c, 0xea9d, 0xea9e, 0xea9f, 0xeaa0, 0xeb40, 0xeb41,
- 0xeb42, 0xeb43, 0xeb44, 0xeb45, 0xeb46, 0xeb47, 0xeb48, 0xeb49,
- 0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51,
- 0xeb52, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59,
- 0xeb5a, 0xeb5b, 0xeb5c, 0xeb5d, 0xeb5e, 0xeb5f, 0xeb60, 0xeb61,
- 0xeb62, 0xeb63, 0xeb64, 0xeb65, 0xeb66, 0xeb67, 0xeb68, 0xeb69,
- 0xeb6a, 0xeb6b, 0xeb6c, 0xeb6d, 0xeb6e, 0xeb6f, 0xeb70, 0xeb71,
- 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, 0xeb77, 0xeb78, 0xeb79,
- 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, 0xeb7e, 0xeb80, 0xeb81, 0xeb82,
- 0xeb83, 0xeb84, 0xeb85, 0xeb86, 0xeb87, 0xeb88, 0xeb89, 0xeb8a,
- 0xeb8b, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, 0xeb90, 0xeb91, 0xeb92,
- 0xeb93, 0xeb94, 0xeb95, 0xeb96, 0xeb97, 0xeb98, 0xeb99, 0xeb9a,
- 0xeb9b, 0xeb9c, 0xeb9d, 0xeb9e, 0xeb9f, 0xeba0, 0xec40, 0xec41,
- 0xec42, 0xec43, 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49,
- 0xec4a, 0xec4b, 0xec4c, 0xec4d, 0xec4e, 0xec4f, 0xec50, 0xec51,
- 0xec52, 0xec53, 0xec54, 0xec55, 0xec56, 0xec57, 0xec58, 0xec59,
- 0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, 0xec60, 0xec61,
- 0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69,
- 0xec6a, 0xec6b, 0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71,
- 0xec72, 0xec73, 0xec74, 0xec75, 0xec76, 0xec77, 0xec78, 0xec79,
- 0xec7a, 0xec7b, 0xec7c, 0xec7d, 0xec7e, 0xec80, 0xec81, 0xec82,
- 0xec83, 0xec84, 0xec85, 0xec86, 0xec87, 0xec88, 0xec89, 0xec8a,
- 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xec8f, 0xec90, 0xec91, 0xec92,
- 0xec93, 0xec94, 0xec95, 0xec96, 0xec97, 0xec98, 0xec99, 0xec9a,
- 0xec9b, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41,
- 0xed42, 0xed43, 0xed44, 0xed45, 0xed46, 0xed47, 0xed48, 0xed49,
- 0xed4a, 0xed4b, 0xed4c, 0xed4d, 0xed4e, 0xed4f, 0xed50, 0xed51,
- 0xed52, 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59,
- 0xed5a, 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61,
- 0xed62, 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69,
- 0xed6a, 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71,
- 0xed72, 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79,
- 0xed7a, 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xed82,
- 0xed83, 0xed84, 0xed85, 0xed86, 0xed87, 0xed88, 0xed89, 0xed8a,
- 0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, 0xed92,
- 0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, 0xed9a,
- 0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, 0xee41,
- 0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49,
- 0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, 0xee51,
- 0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, 0xee59,
- 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, 0xee61,
- 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, 0xee69,
- 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, 0xee71,
- 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, 0xee79,
- 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, 0xee82,
- 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, 0xee8a,
- 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, 0xee92,
- 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, 0xee9a,
- 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, 0xef41,
- 0xef42, 0xef43, 0xef44, 0xef45, 0xef46, 0xef47, 0xef48, 0xef49,
- 0xef4a, 0xef4b, 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51,
- 0xef52, 0xef53, 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59,
- 0xef5a, 0xef5b, 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61,
- 0xef62, 0xef63, 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69,
- 0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71,
- 0xef72, 0xef73, 0xef74, 0xef75, 0xef76, 0xef77, 0xef78, 0xef79,
- 0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xef82,
- 0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a,
- 0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92,
- 0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, 0xef99, 0xef9a,
- 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xf040, 0xf041,
- 0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, 0xf048, 0xf049,
- 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, 0xf050, 0xf051,
- 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, 0xf058, 0xf059,
- 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, 0xf060, 0xf061,
- 0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, 0xf068, 0xf069,
- 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071,
- 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, 0xf078, 0xf079,
- 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082,
- 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, 0xf089, 0xf08a,
- 0xf08b, 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092,
- 0xf093, 0xf094, 0xf095, 0xf096, 0xf097, 0xf098, 0xf099, 0xf09a,
- 0xf09b, 0xf09c, 0xf09d, 0xf09e, 0xf09f, 0xf0a0, 0xf140, 0xf141,
- 0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149,
- 0xf14a, 0xf14b, 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151,
- 0xf152, 0xf153, 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159,
- 0xf15a, 0xf15b, 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161,
- 0xf162, 0xf163, 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169,
- 0xf16a, 0xf16b, 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171,
- 0xf172, 0xf173, 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179,
- 0xf17a, 0xf17b, 0xf17c, 0xf17d, 0xf17e, 0xf180, 0xf181, 0xf182,
- 0xf183, 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a,
- 0xf18b, 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192,
- 0xf193, 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a,
- 0xf19b, 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf240, 0xf241,
- 0xf242, 0xf243, 0xf244, 0xf245, 0xf246, 0xf247, 0xf248, 0xf249,
- 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, 0xf250, 0xf251,
- 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, 0xf258, 0xf259,
- 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, 0xf260, 0xf261,
- 0xf262, 0xf263, 0xf264, 0xf265, 0xf266, 0xf267, 0xf268, 0xf269,
- 0xf26a, 0xf26b, 0xf26c, 0xf26d, 0xf26e, 0xf26f, 0xf270, 0xf271,
- 0xf272, 0xf273, 0xf274, 0xf275, 0xf276, 0xf277, 0xf278, 0xf279,
- 0xf27a, 0xf27b, 0xf27c, 0xf27d, 0xf27e, 0xf280, 0xf281, 0xf282,
- 0xf283, 0xf284, 0xf285, 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a,
- 0xf28b, 0xf28c, 0xf28d, 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292,
- 0xf293, 0xf294, 0xf295, 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a,
- 0xf29b, 0xf29c, 0xf29d, 0xf29e, 0xf29f, 0xf2a0, 0xf340, 0xf341,
- 0xf342, 0xf343, 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, 0xf349,
- 0xf34a, 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351,
- 0xf352, 0xf353, 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, 0xf359,
- 0xf35a, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361,
- 0xf362, 0xf363, 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, 0xf369,
- 0xf36a, 0xf36b, 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371,
- 0xf372, 0xf373, 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, 0xf379,
- 0xf37a, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf382,
- 0xf383, 0xf384, 0xf385, 0xf386, 0xf387, 0xf388, 0xf389, 0xf38a,
- 0xf38b, 0xf38c, 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392,
- 0xf393, 0xf394, 0xf395, 0xf396, 0xf397, 0xf398, 0xf399, 0xf39a,
- 0xf39b, 0xf39c, 0xf39d, 0xf39e, 0xf39f, 0xf3a0, 0xf440, 0xf441,
- 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf447, 0xf448, 0xf449,
- 0xf44a, 0xf44b, 0xf44c, 0xf44d, 0xf44e, 0xf44f, 0xf450, 0xf451,
- 0xf452, 0xf453, 0xf454, 0xf455, 0xf456, 0xf457, 0xf458, 0xf459,
- 0xf45a, 0xf45b, 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461,
- 0xf462, 0xf463, 0xf464, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469,
- 0xf46a, 0xf46b, 0xf46c, 0xf46d, 0xf46e, 0xf46f, 0xf470, 0xf471,
- 0xf472, 0xf473, 0xf474, 0xf475, 0xf476, 0xf477, 0xf478, 0xf479,
- 0xf47a, 0xf47b, 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482,
- 0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a,
- 0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492,
- 0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a,
- 0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541,
- 0xf542, 0xf543, 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549,
- 0xf54a, 0xf54b, 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551,
- 0xf552, 0xf553, 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559,
- 0xf55a, 0xf55b, 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561,
- 0xf562, 0xf563, 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569,
- 0xf56a, 0xf56b, 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571,
- 0xf572, 0xf573, 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579,
- 0xf57a, 0xf57b, 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582,
- 0xf583, 0xf584, 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a,
- 0xf58b, 0xf58c, 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592,
- 0xf593, 0xf594, 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a,
- 0xf59b, 0xf59c, 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641,
- 0xf642, 0xf643, 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649,
- 0xf64a, 0xf64b, 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651,
- 0xf652, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659,
- 0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661,
- 0xf662, 0xf663, 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669,
- 0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671,
- 0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679,
- 0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682,
- 0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a,
- 0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692,
- 0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a,
- 0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741,
- 0xf742, 0xf743, 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749,
- 0xf74a, 0xf74b, 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751,
- 0xf752, 0xf753, 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759,
- 0xf75a, 0xf75b, 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761,
- 0xf762, 0xf763, 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769,
- 0xf76a, 0xf76b, 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771,
- 0xf772, 0xf773, 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779,
- 0xf77a, 0xf77b, 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xf781, 0xf782,
- 0xf783, 0xf784, 0xf785, 0xf786, 0xf787, 0xf788, 0xf789, 0xf78a,
- 0xf78b, 0xf78c, 0xf78d, 0xf78e, 0xf78f, 0xf790, 0xf791, 0xf792,
- 0xf793, 0xf794, 0xf795, 0xf796, 0xf797, 0xf798, 0xf799, 0xf79a,
- 0xf79b, 0xf79c, 0xf79d, 0xf79e, 0xf79f, 0xf7a0, 0xf840, 0xf841,
- 0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849,
- 0xf84a, 0xf84b, 0xf84c, 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851,
- 0xf852, 0xf853, 0xf854, 0xf855, 0xf856, 0xf857, 0xf858, 0xf859,
- 0xf85a, 0xf85b, 0xf85c, 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861,
- 0xf862, 0xf863, 0xf864, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869,
- 0xf86a, 0xf86b, 0xf86c, 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871,
- 0xf872, 0xf873, 0xf874, 0xf875, 0xf876, 0xf877, 0xf878, 0xf879,
- 0xf87a, 0xf87b, 0xf87c, 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882,
- 0xf883, 0xf884, 0xf885, 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a,
- 0xf88b, 0xf88c, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892,
- 0xf893, 0xf894, 0xf895, 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a,
- 0xf89b, 0xf89c, 0xf89d, 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941,
- 0xf942, 0xf943, 0xf944, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949,
- 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951,
- 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0xf958, 0xf959,
- 0xf95a, 0xf95b, 0xf95c, 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961,
- 0xf962, 0xf963, 0xf964, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969,
- 0xf96a, 0xf96b, 0xf96c, 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971,
- 0xf972, 0xf973, 0xf974, 0xf975, 0xf976, 0xf977, 0xf978, 0xf979,
- 0xf97a, 0xf97b, 0xf97c, 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982,
- 0xf983, 0xf984, 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a,
- 0xf98b, 0xf98c, 0xf98d, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992,
- 0xf993, 0xf994, 0xf995, 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a,
- 0xf99b, 0xf99c, 0xf99d, 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41,
- 0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49,
- 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51,
- 0xfa52, 0xfa53, 0xfa54, 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59,
- 0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61,
- 0xfa62, 0xfa63, 0xfa64, 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69,
- 0xfa6a, 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71,
- 0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79,
- 0xfa7a, 0xfa7b, 0xfa7c, 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82,
- 0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a,
- 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92,
- 0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a,
- 0xfa9b, 0xfa9c, 0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41,
- 0xfb42, 0xfb43, 0xfb44, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49,
- 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51,
- 0xfb52, 0xfb53, 0xfb54, 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59,
- 0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5e, 0xfb5f, 0xfb60, 0xfb61,
- 0xfb62, 0xfb63, 0xfb64, 0xfb65, 0xfb66, 0xfb67, 0xfb68, 0xfb69,
- 0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfb6f, 0xfb70, 0xfb71,
- 0xfb72, 0xfb73, 0xfb74, 0xfb75, 0xfb76, 0xfb77, 0xfb78, 0xfb79,
- 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xfb7e, 0xfb80, 0xfb81, 0xfb82,
- 0xfb83, 0xfb84, 0xfb85, 0xfb86, 0xfb87, 0xfb88, 0xfb89, 0xfb8a,
- 0xfb8b, 0xfb8c, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, 0xfb91, 0xfb92,
- 0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfb9a,
- 0xfb9b, 0xfb9c, 0xfb9d, 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41,
- 0xfc42, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xfc49,
- 0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, 0xfc4e, 0xfc4f, 0xfc50, 0xfc51,
- 0xfc52, 0xfc53, 0xfc54, 0xfc55, 0xfc56, 0xfc57, 0xfc58, 0xfc59,
- 0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, 0xfc5e, 0xfc5f, 0xfc60, 0xfc61,
- 0xfc62, 0xfc63, 0xfc64, 0xfc65, 0xfc66, 0xfc67, 0xfc68, 0xfc69,
- 0xfc6a, 0xfc6b, 0xfc6c, 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71,
- 0xfc72, 0xfc73, 0xfc74, 0xfc75, 0xfc76, 0xfc77, 0xfc78, 0xfc79,
- 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, 0xfc82,
- 0xfc83, 0xfc84, 0xfc85, 0xfc86, 0xfc87, 0xfc88, 0xfc89, 0xfc8a,
- 0xfc8b, 0xfc8c, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92,
- 0xfc93, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, 0xfc99, 0xfc9a,
- 0xfc9b, 0xfc9c, 0xfc9d, 0xfc9e, 0xfc9f, 0xfca0, 0xfd40, 0xfd41,
- 0xfd42, 0xfd43, 0xfd44, 0xfd45, 0xfd46, 0xfd47, 0xfd48, 0xfd49,
- 0xfd4a, 0xfd4b, 0xfd4c, 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51,
- 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 0xfd58, 0xfd59,
- 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, 0xfd61,
- 0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69,
- 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71,
- 0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 0xfd78, 0xfd79,
- 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfd80, 0xfd81, 0xfd82,
- 0xfd83, 0xfd84, 0xfd85, 0xfd86, 0xfd87, 0xfd88, 0xfd89, 0xfd8a,
- 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92,
- 0xfd93, 0xfd94, 0xfd95, 0xfd96, 0xfd97, 0xfd98, 0xfd99, 0xfd9a,
- 0xfd9b, 0xfd9c, 0xfd9d, 0xfd9e, 0xfd9f, 0xfda0, 0xfe40, 0xfe41,
- 0xfe42, 0xfe43, 0xfe44, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49,
- 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xa955, 0xa968,
- 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970,
- 0xa971, 0xa972, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978,
- 0xa979, 0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa97e, 0xa980, 0xa981,
- 0xa982, 0xa983, 0xa984, 0xa985, 0xa986, 0xa987, 0xa988, 0xa956,
- 0xa957,
-};
-
-typedef struct {
- unsigned short indx; /* index into big table */
- unsigned short used; /* bitmask of used entries */
-} Summary16;
-
-static const Summary16 gbkext_inv_uni2indx_page02[14] = {
- /* 0x0200 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0c00 }, { 2, 0x0200 },
-};
-static const Summary16 gbkext_inv_uni2indx_page20[44] = {
- /* 0x2000 */
- { 3, 0x0000 }, { 3, 0x0029 }, { 6, 0x0020 }, { 7, 0x0020 },
- { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
- { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
- { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
- /* 0x2100 */
- { 8, 0x0220 }, { 10, 0x0000 }, { 10, 0x0002 }, { 11, 0x0000 },
- { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 },
- { 11, 0x0000 }, { 11, 0x03c0 }, { 15, 0x0000 }, { 15, 0x0000 },
- { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 },
- /* 0x2200 */
- { 15, 0x0000 }, { 15, 0x8020 }, { 17, 0x0008 }, { 18, 0x0000 },
- { 18, 0x0000 }, { 18, 0x0004 }, { 19, 0x00c0 }, { 21, 0x0000 },
- { 21, 0x0000 }, { 21, 0x0020 }, { 22, 0x0000 }, { 22, 0x8000 },
-};
-static const Summary16 gbkext_inv_uni2indx_page25[17] = {
- /* 0x2500 */
- { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 },
- { 23, 0x0000 }, { 23, 0xffff }, { 39, 0xffff }, { 55, 0x000f },
- { 59, 0xfffe }, { 74, 0x0038 }, { 77, 0x0000 }, { 77, 0x3000 },
- { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x003c }, { 83, 0x0000 },
- /* 0x2600 */
- { 83, 0x0200 },
-};
-static const Summary16 gbkext_inv_uni2indx_page30[16] = {
- /* 0x3000 */
- { 84, 0x00c0 }, { 86, 0x6004 }, { 89, 0x03fe }, { 98, 0x0000 },
- { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 },
- { 98, 0x0000 }, { 98, 0x7800 }, { 102, 0x0000 }, { 102, 0x0000 },
- { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x7000 },
-};
-static const Summary16 gbkext_inv_uni2indx_page32[30] = {
- /* 0x3200 */
- { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0002 },
- { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 },
- { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0008 }, { 107, 0x0000 },
- { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 },
- /* 0x3300 */
- { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 },
- { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 },
- { 107, 0xc000 }, { 109, 0x7000 }, { 112, 0x0002 }, { 113, 0x0000 },
- { 113, 0x4010 }, { 115, 0x0026 },
-};
-static const Summary16 gbkext_inv_uni2indx_page4e[1307] = {
- /* 0x4e00 */
- { 118, 0x8074 }, { 123, 0x8084 }, { 126, 0xc24b }, { 133, 0x10aa },
- { 138, 0x0457 }, { 144, 0x0ca2 }, { 149, 0xfdbc }, { 161, 0xbff4 },
- { 173, 0x04bf }, { 181, 0x72c1 }, { 188, 0x8408 }, { 191, 0x73d3 },
- { 201, 0x9100 }, { 204, 0x1c05 }, { 209, 0xe2c5 }, { 217, 0x5712 },
- /* 0x4f00 */
- { 224, 0x19fd }, { 234, 0x307c }, { 241, 0x730a }, { 248, 0xcaaa },
- { 256, 0x1fb7 }, { 267, 0x0054 }, { 270, 0x6d46 }, { 278, 0x27a6 },
- { 286, 0x54e7 }, { 295, 0xd76d }, { 306, 0x2816 }, { 311, 0x7fdf },
- { 325, 0x3bc7 }, { 335, 0x0a7c }, { 342, 0x18b5 }, { 349, 0xbaf5 },
- /* 0x5000 */
- { 360, 0x4fff }, { 373, 0x68eb }, { 382, 0x889d }, { 389, 0xabff },
- { 402, 0x2e77 }, { 412, 0xebdf }, { 425, 0xefdf }, { 439, 0x373f },
- { 450, 0xdede }, { 462, 0xffff }, { 478, 0xec57 }, { 488, 0xf3fb },
- { 501, 0x7fff }, { 516, 0xfbbf }, { 530, 0x8f3f }, { 541, 0xf7d7 },
- /* 0x5100 */
- { 554, 0xf73f }, { 567, 0xfffb }, { 582, 0xfffd }, { 597, 0x7fff },
- { 612, 0xd484 }, { 618, 0xeb8d }, { 628, 0x86db }, { 637, 0xc404 },
- { 641, 0xccd8 }, { 649, 0xe51b }, { 658, 0x67ca }, { 667, 0xc710 },
- { 673, 0x652e }, { 681, 0xd7fd }, { 694, 0x57ec }, { 704, 0x4096 },
- /* 0x5200 */
- { 709, 0x9a30 }, { 715, 0xd039 }, { 722, 0x94ee }, { 731, 0x5036 },
- { 737, 0xcbf0 }, { 746, 0xafac }, { 756, 0x795d }, { 766, 0x5ffb },
- { 779, 0xfef9 }, { 792, 0x17f6 }, { 802, 0xc0f0 }, { 808, 0x3ff1 },
- { 819, 0xf577 }, { 831, 0x7eba }, { 842, 0xffef }, { 857, 0x39fe },
- /* 0x5300 */
- { 868, 0x5e9e }, { 878, 0xd91e }, { 887, 0xbbb4 }, { 897, 0x31ff },
- { 908, 0x3855 }, { 915, 0x2b11 }, { 921, 0x3520 }, { 926, 0x7a44 },
- { 933, 0xc58b }, { 941, 0x5adf }, { 952, 0xbc93 }, { 961, 0x77bf },
- { 974, 0xc0f9 }, { 982, 0x742d }, { 990, 0x0086 }, { 993, 0xc410 },
- /* 0x5400 */
- { 997, 0x08a5 }, { 1002, 0x1710 }, { 1007, 0x0434 }, { 1011, 0xa4c9 },
- { 1018, 0xf2b6 }, { 1028, 0xe402 }, { 1033, 0xfeab }, { 1045, 0xc611 },
- { 1051, 0x27aa }, { 1059, 0xd18a }, { 1066, 0x4027 }, { 1071, 0x56e5 },
- { 1080, 0x0c28 }, { 1084, 0x0940 }, { 1087, 0x981f }, { 1095, 0x4bf3 },
- /* 0x5500 */
- { 1105, 0x7d3d }, { 1116, 0xf7ec }, { 1128, 0x2b62 }, { 1135, 0x2f74 },
- { 1144, 0xf9a5 }, { 1154, 0xef9e }, { 1166, 0x8b0d }, { 1173, 0xa61f },
- { 1182, 0x7060 }, { 1187, 0x4ced }, { 1196, 0xff7f }, { 1211, 0x9555 },
- { 1219, 0xcdcf }, { 1230, 0x4fa1 }, { 1238, 0x6285 }, { 1244, 0x9f53 },
- /* 0x5600 */
- { 1254, 0x2cfc }, { 1263, 0x36ff }, { 1275, 0xcf67 }, { 1286, 0x75a9 },
- { 1295, 0x8fff }, { 1308, 0xec6f }, { 1319, 0xe0eb }, { 1328, 0xe7bd },
- { 1340, 0x3f9f }, { 1352, 0xfff7 }, { 1367, 0x7ff7 }, { 1381, 0xef7f },
- { 1395, 0xfbff }, { 1410, 0x136f }, { 1419, 0xd7e8 }, { 1429, 0x19cc },
- /* 0x5700 */
- { 1436, 0xf8a7 }, { 1446, 0x6fff }, { 1460, 0x08f7 }, { 1468, 0xb1f6 },
- { 1478, 0x0b7a }, { 1486, 0x037c }, { 1493, 0x50ac }, { 1499, 0xe737 },
- { 1510, 0xe783 }, { 1519, 0xf7f3 }, { 1532, 0x9520 }, { 1537, 0xfeeb },
- { 1550, 0x37f3 }, { 1561, 0x58cb }, { 1569, 0x5fee }, { 1581, 0xd8ef },
- /* 0x5800 */
- { 1592, 0xd73a }, { 1602, 0xbddd }, { 1614, 0xfbec }, { 1626, 0xffde },
- { 1640, 0xcfef }, { 1653, 0xbeed }, { 1665, 0xe7df }, { 1678, 0xbfff },
- { 1693, 0xfdd4 }, { 1704, 0x39f3 }, { 1714, 0xfcff }, { 1728, 0xefff },
- { 1743, 0xffdd }, { 1757, 0xffdd }, { 1771, 0xa7ef }, { 1783, 0xfdb6 },
- /* 0x5900 */
- { 1795, 0x5f6b }, { 1806, 0x698f }, { 1815, 0x114f }, { 1822, 0xe86d },
- { 1831, 0x3469 }, { 1838, 0xfa0d }, { 1847, 0xffda }, { 1860, 0xdca7 },
- { 1870, 0xda21 }, { 1877, 0xbd33 }, { 1887, 0x30c7 }, { 1894, 0xb5fb },
- { 1906, 0xf3bf }, { 1919, 0xca60 }, { 1925, 0xeed7 }, { 1937, 0x75ff },
- /* 0x5a00 */
- { 1950, 0xec05 }, { 1957, 0x6ef5 }, { 1968, 0xfdd6 }, { 1980, 0xefa9 },
- { 1991, 0xf9be }, { 2003, 0xfbdf }, { 2017, 0xfb7b }, { 2030, 0x7b0f },
- { 2040, 0xffff }, { 2056, 0xf3fb }, { 2069, 0xfbff }, { 2084, 0xbed3 },
- { 2095, 0xedf9 }, { 2107, 0xeeab }, { 2118, 0xf5b4 }, { 2128, 0xfffd },
- /* 0x5b00 */
- { 2143, 0xfdff }, { 2158, 0xff3f }, { 2172, 0xffff }, { 2188, 0xff6b },
- { 2201, 0xfffe }, { 2216, 0x4044 }, { 2219, 0xe983 }, { 2227, 0xdbd4 },
- { 2237, 0x6444 }, { 2242, 0x8057 }, { 2248, 0xf380 }, { 2255, 0x1c86 },
- { 2261, 0xef0b }, { 2271, 0x1ff2 }, { 2281, 0xbecd }, { 2292, 0x60fe },
- /* 0x5c00 */
- { 2301, 0x79ad }, { 2311, 0xca8d }, { 2319, 0xef4b }, { 2330, 0x00ed },
- { 2336, 0x30d8 }, { 2342, 0xbddc }, { 2353, 0x3f94 }, { 2362, 0x79fd },
- { 2374, 0xcef9 }, { 2385, 0xe02c }, { 2391, 0xc5f3 }, { 2401, 0x5e55 },
- { 2410, 0xf7ed }, { 2423, 0xfdfb }, { 2437, 0xda8d }, { 2446, 0xf7fe },
- /* 0x5d00 */
- { 2460, 0xbf33 }, { 2471, 0xb7af }, { 2483, 0x9d2f }, { 2493, 0x9fef },
- { 2506, 0xe37f }, { 2518, 0xd6ff }, { 2531, 0x65ff }, { 2543, 0xffef },
- { 2558, 0xfffb }, { 2573, 0xddff }, { 2587, 0xffff }, { 2603, 0xff7f },
- { 2618, 0xdfdf }, { 2632, 0x97ff }, { 2645, 0x3419 }, { 2651, 0x9f61 },
- /* 0x5e00 */
- { 2660, 0x6e91 }, { 2668, 0xc08c }, { 2673, 0x9f3f }, { 2685, 0xc67d },
- { 2695, 0xefcb }, { 2707, 0xb7cf }, { 2719, 0xfff9 }, { 2733, 0x42a3 },
- { 2739, 0x732e }, { 2748, 0x2904 }, { 2752, 0xdf1e }, { 2763, 0xbc17 },
- { 2772, 0xf9ff }, { 2786, 0xf7b1 }, { 2797, 0xfaff }, { 2811, 0x3b2f },
- /* 0x5f00 */
- { 2821, 0x72e0 }, { 2828, 0x7655 }, { 2837, 0x591e }, { 2845, 0xe9fd },
- { 2857, 0xfffe }, { 2872, 0xde12 }, { 2880, 0xc9a9 }, { 2888, 0xe574 },
- { 2897, 0xe048 }, { 2902, 0xec5a }, { 2911, 0x9afd }, { 2922, 0xcf5f },
- { 2934, 0x4d87 }, { 2942, 0xdc38 }, { 2950, 0x936c }, { 2958, 0x16dd },
- /* 0x6000 */
- { 2967, 0x1b80 }, { 2972, 0xc58b }, { 2980, 0x701c }, { 2986, 0x67df },
- { 2998, 0xd7f1 }, { 3009, 0xd9da }, { 3019, 0x4063 }, { 3024, 0x40b6 },
- { 3030, 0xcde7 }, { 3041, 0x53ab }, { 3050, 0x46b6 }, { 3058, 0xe6e9 },
- { 3068, 0xf39f }, { 3080, 0x4add }, { 3089, 0x043e }, { 3095, 0xf9a6 },
- /* 0x6100 */
- { 3105, 0x1cbc }, { 3113, 0x7bdf }, { 3126, 0xf726 }, { 3136, 0x7fff },
- { 3151, 0xaaff }, { 3163, 0xdfdd }, { 3176, 0xfe7b }, { 3189, 0xff5e },
- { 3202, 0xb7ff }, { 3216, 0xdfef }, { 3230, 0xec7f }, { 3242, 0xbf7f },
- { 3256, 0xf2fb }, { 3268, 0xffe9 }, { 3281, 0xffbf }, { 3296, 0x7fdf },
- /* 0x6200 */
- { 3310, 0x02bf }, { 3318, 0x7218 }, { 3324, 0xabc9 }, { 3333, 0x1f67 },
- { 3343, 0x8474 }, { 3349, 0xf6e1 }, { 3359, 0x0137 }, { 3365, 0x2db6 },
- { 3374, 0xf9ee }, { 3386, 0x7211 }, { 3392, 0xe6c8 }, { 3400, 0x45dd },
- { 3409, 0x880b }, { 3414, 0x6022 }, { 3418, 0x0c13 }, { 3423, 0x0f25 },
- /* 0x6300 */
- { 3430, 0xbc79 }, { 3440, 0x13bd }, { 3449, 0x72c0 }, { 3455, 0xd9fb },
- { 3467, 0x0593 }, { 3473, 0x3fde }, { 3485, 0x9d71 }, { 3494, 0xf33d },
- { 3505, 0x287a }, { 3512, 0xfeba }, { 3524, 0x8852 }, { 3529, 0xaa66 },
- { 3537, 0x1daf }, { 3547, 0xbfba }, { 3559, 0xd9f4 }, { 3569, 0x5eab },
- /* 0x6400 */
- { 3579, 0x67d8 }, { 3588, 0xa7e6 }, { 3598, 0xcbbc }, { 3608, 0x5bef },
- { 3620, 0xfa0d }, { 3629, 0xbeeb }, { 3641, 0xdd7f }, { 3654, 0xf8ff },
- { 3667, 0xff4b }, { 3679, 0xbd99 }, { 3689, 0x8def }, { 3700, 0xea5e },
- { 3710, 0x9fda }, { 3721, 0xbe7a }, { 3732, 0xffab }, { 3745, 0xffff },
- /* 0x6500 */
- { 3761, 0xfdfe }, { 3775, 0xfefb }, { 3789, 0x37df }, { 3801, 0x348f },
- { 3809, 0x6cdf }, { 3820, 0x959d }, { 3829, 0xe7b3 }, { 3840, 0xff6a },
- { 3852, 0xe77f }, { 3865, 0x6574 }, { 3873, 0x554d }, { 3881, 0xcdfe },
- { 3893, 0x2785 }, { 3900, 0xff3b }, { 3913, 0x0c1a }, { 3918, 0xfb3c },
- /* 0x6600 */
- { 3929, 0x2bb2 }, { 3937, 0x5dc7 }, { 3947, 0x5e5e }, { 3957, 0xaf8d },
- { 3967, 0x67f5 }, { 3978, 0x7b03 }, { 3986, 0x3ead }, { 3996, 0xbb2e },
- { 4006, 0xef6b }, { 4018, 0xdf3d }, { 4030, 0xbe7f }, { 4043, 0xbdef },
- { 4056, 0xffff }, { 4072, 0xc5ff }, { 4084, 0xfdbf }, { 4098, 0x2d62 },
- /* 0x6700 */
- { 4105, 0xd0fe }, { 4115, 0x574e }, { 4124, 0x42bf }, { 4133, 0xdbcd },
- { 4144, 0x2cb2 }, { 4151, 0x2fb4 }, { 4160, 0x58dc }, { 4168, 0x2f52 },
- { 4176, 0xf56d }, { 4187, 0x8a5e }, { 4195, 0x5253 }, { 4202, 0xfe16 },
- { 4212, 0x7fe5 }, { 4224, 0x88e0 }, { 4229, 0x6dda }, { 4239, 0x5fe4 },
- /* 0x6800 */
- { 4249, 0x205e }, { 4255, 0xdf35 }, { 4266, 0xf9fd }, { 4279, 0x8c73 },
- { 4287, 0xa880 }, { 4291, 0xffc4 }, { 4302, 0xf400 }, { 4307, 0xff2f },
- { 4320, 0x7f95 }, { 4331, 0xff77 }, { 4345, 0x5e3b }, { 4355, 0xffd6 },
- { 4368, 0xd5fa }, { 4379, 0xfadb }, { 4391, 0xbff6 }, { 4404, 0xe9dc },
- /* 0x6900 */
- { 4414, 0x97dd }, { 4425, 0x7ffa }, { 4438, 0xdfee }, { 4451, 0x5dee },
- { 4462, 0xfffb }, { 4477, 0x9b6f }, { 4488, 0xb7b6 }, { 4499, 0xec7d },
- { 4510, 0xdc2a }, { 4518, 0xe6cf }, { 4529, 0xd67f }, { 4541, 0xf76d },
- { 4553, 0xabfd }, { 4565, 0x77ee }, { 4577, 0xdffe }, { 4591, 0x5ffb },
- /* 0x6a00 */
- { 4604, 0xfbff }, { 4619, 0x7e7f }, { 4632, 0x7afd }, { 4644, 0x9fdd },
- { 4656, 0xff6f }, { 4670, 0xf4fe }, { 4682, 0xffdd }, { 4696, 0xedfd },
- { 4709, 0xbfee }, { 4722, 0xff7c }, { 4735, 0xe5fe }, { 4747, 0xffff },
- { 4763, 0xffff }, { 4779, 0xffff }, { 4795, 0xffff }, { 4811, 0xffff },
- /* 0x6b00 */
- { 4827, 0xffff }, { 4843, 0xffff }, { 4859, 0xff60 }, { 4869, 0xb97b },
- { 4880, 0xed37 }, { 4891, 0xfdff }, { 4906, 0xfb03 }, { 4915, 0xe5ff },
- { 4928, 0xd121 }, { 4934, 0xf3b3 }, { 4945, 0xfbfd }, { 4959, 0x7f47 },
- { 4970, 0x57d9 }, { 4980, 0xf503 }, { 4988, 0x73fd }, { 5000, 0xddd7 },
- /* 0x6c00 */
- { 5012, 0x5f1f }, { 5023, 0x7084 }, { 5028, 0x3829 }, { 5034, 0xdeca },
- { 5044, 0xf938 }, { 5053, 0x074e }, { 5060, 0xf8ec }, { 5070, 0x9daa },
- { 5079, 0x6c91 }, { 5086, 0x75e6 }, { 5096, 0x9105 }, { 5101, 0x04f1 },
- { 5107, 0xe9cf }, { 5118, 0xb706 }, { 5126, 0x32d0 }, { 5132, 0x8214 },
- /* 0x6d00 */
- { 5136, 0xa76d }, { 5146, 0xb17b }, { 5156, 0xb35f }, { 5167, 0x85d1 },
- { 5174, 0x1215 }, { 5179, 0xa9e1 }, { 5187, 0x39b6 }, { 5196, 0xee6f },
- { 5208, 0xacdb }, { 5218, 0x17c5 }, { 5226, 0x3024 }, { 5230, 0x7edb },
- { 5242, 0xe70e }, { 5251, 0x9cbd }, { 5261, 0xa7ac }, { 5270, 0xe575 },
- /* 0x6e00 */
- { 5280, 0x8bdf }, { 5291, 0xdb2c }, { 5300, 0x55c4 }, { 5307, 0xfaeb },
- { 5319, 0x9fe7 }, { 5331, 0x76a7 }, { 5341, 0xb7ff }, { 5355, 0x3fff },
- { 5369, 0x7d97 }, { 5380, 0x6efe }, { 5392, 0x7b5b }, { 5403, 0xd329 },
- { 5411, 0x7779 }, { 5422, 0x3b45 }, { 5430, 0xfc88 }, { 5438, 0xfdef },
- /* 0x6f00 */
- { 5452, 0x7dbb }, { 5464, 0xffc7 }, { 5477, 0x51ee }, { 5486, 0xbfb5 },
- { 5498, 0xd73f }, { 5510, 0xaeff }, { 5523, 0x9fbb }, { 5535, 0xeaeb },
- { 5546, 0x8cef }, { 5556, 0xefff }, { 5571, 0xff7d }, { 5585, 0xfdb7 },
- { 5598, 0xfdfa }, { 5611, 0xbff9 }, { 5624, 0x3ffc }, { 5636, 0xffff },
- /* 0x7000 */
- { 5652, 0xffff }, { 5668, 0xf3fd }, { 5681, 0xfff7 }, { 5696, 0xfddf },
- { 5710, 0x6fff }, { 5724, 0xbfff }, { 5739, 0x47ff }, { 5751, 0x2e9e },
- { 5760, 0xb9de }, { 5771, 0xcd8b }, { 5780, 0x07ff }, { 5791, 0xc475 },
- { 5799, 0xfaf0 }, { 5809, 0x74ff }, { 5821, 0x442f }, { 5828, 0xdd7f },
- /* 0x7100 */
- { 5841, 0xf9ff }, { 5855, 0xf896 }, { 5864, 0x7fbf }, { 5878, 0xffbc },
- { 5891, 0xabdf }, { 5903, 0xafff }, { 5917, 0xbe2f }, { 5928, 0xdaf3 },
- { 5939, 0x7bef }, { 5952, 0x7cef }, { 5964, 0xeefe }, { 5977, 0xfdd7 },
- { 5990, 0xbff7 }, { 6004, 0xffcf }, { 6018, 0xbf5e }, { 6030, 0xfdff },
- /* 0x7200 */
- { 6045, 0xffbf }, { 6060, 0xdfff }, { 6075, 0xeaff }, { 6088, 0x541c },
- { 6094, 0xce7f }, { 6106, 0x55bb }, { 6116, 0x3d39 }, { 6125, 0x39db },
- { 6135, 0x53ec }, { 6144, 0x7ffb }, { 6158, 0x4fff }, { 6171, 0xfc2e },
- { 6181, 0x9ee1 }, { 6190, 0xbd7a }, { 6201, 0x0cfc }, { 6209, 0xe260 },
- /* 0x7300 */
- { 6215, 0xbbf5 }, { 6227, 0x8717 }, { 6235, 0xa1d9 }, { 6243, 0x3c6d },
- { 6252, 0xdfff }, { 6267, 0xff7a }, { 6280, 0x4ffe }, { 6292, 0xbfff },
- { 6307, 0xb56f }, { 6318, 0x77bd }, { 6330, 0x35fb }, { 6341, 0xf372 },
- { 6351, 0x58fa }, { 6360, 0xbdfc }, { 6372, 0xdd5e }, { 6383, 0xfffb },
- /* 0x7400 */
- { 6398, 0x7997 }, { 6408, 0xf3fe }, { 6421, 0xaa9b }, { 6430, 0xef86 },
- { 6440, 0xfffd }, { 6455, 0x215f }, { 6463, 0xdfff }, { 6478, 0xbf3e },
- { 6490, 0xb774 }, { 6500, 0xaffe }, { 6513, 0xfc7f }, { 6526, 0xfbff },
- { 6541, 0xffff }, { 6557, 0xaffb }, { 6570, 0x3fa2 }, { 6579, 0x7f2f },
- /* 0x7500 */
- { 6591, 0x5fef }, { 6604, 0x68f5 }, { 6613, 0x44df }, { 6622, 0xb250 },
- { 6628, 0x26de }, { 6637, 0xe1ef }, { 6648, 0xfb9f }, { 6661, 0x7ceb },
- { 6672, 0x77b7 }, { 6684, 0x5929 }, { 6691, 0x27c4 }, { 6698, 0x8cc0 },
- { 6703, 0xd843 }, { 6710, 0xb68b }, { 6719, 0xf223 }, { 6727, 0x6dec },
- /* 0x7600 */
- { 6737, 0xebd4 }, { 6747, 0x745e }, { 6756, 0xd18a }, { 6763, 0x2ec6 },
- { 6771, 0xcff6 }, { 6783, 0xafaf }, { 6795, 0x77f7 }, { 6808, 0x96ff },
- { 6820, 0xb62b }, { 6829, 0xfdb5 }, { 6841, 0xbfef }, { 6855, 0x7fe9 },
- { 6867, 0x1a9b }, { 6875, 0x7628 }, { 6882, 0x3fdf }, { 6895, 0xace9 },
- /* 0x7700 */
- { 6904, 0xd46d }, { 6913, 0x79ff }, { 6926, 0x5cba }, { 6935, 0xea1f },
- { 6945, 0xff74 }, { 6957, 0xf3fc }, { 6969, 0xe691 }, { 6977, 0x1dff },
- { 6989, 0x8fce }, { 6999, 0x7ff9 }, { 7012, 0xe95a }, { 7021, 0x57d6 },
- { 7031, 0xdfff }, { 7046, 0xe77f }, { 7059, 0x8553 }, { 7066, 0x1eb7 },
- /* 0x7800 */
- { 7076, 0xcdf8 }, { 7086, 0x4a29 }, { 7092, 0xcd17 }, { 7101, 0xa06e },
- { 7108, 0xaf5e }, { 7119, 0xdf1a }, { 7129, 0x83ff }, { 7140, 0xef7f },
- { 7154, 0x8d7f }, { 7165, 0x6275 }, { 7173, 0xff55 }, { 7185, 0xbde0 },
- { 7194, 0xf1dd }, { 7205, 0xfdce }, { 7217, 0xeeff }, { 7231, 0xfb6b },
- /* 0x7900 */
- { 7243, 0xffdd }, { 7257, 0xbff7 }, { 7271, 0xffef }, { 7286, 0xa3ef },
- { 7297, 0xfcbc }, { 7308, 0x0337 }, { 7315, 0x5e5a }, { 7324, 0xfa7f },
- { 7337, 0x7bcc }, { 7347, 0xfbff }, { 7362, 0xff7f }, { 7377, 0x91f7 },
- { 7387, 0xd5b4 }, { 7396, 0x7ed9 }, { 7407, 0x5527 }, { 7415, 0xd6fe },
- /* 0x7a00 */
- { 7427, 0x97b2 }, { 7436, 0xbb6f }, { 7448, 0xfff6 }, { 7462, 0x4577 },
- { 7471, 0xffbf }, { 7486, 0xff7d }, { 7500, 0xffff }, { 7516, 0x782e },
- { 7524, 0xdea4 }, { 7533, 0x4e19 }, { 7540, 0xce9e }, { 7550, 0x7ff7 },
- { 7564, 0xf7ff }, { 7579, 0x3dbf }, { 7591, 0x5f96 }, { 7601, 0x59ff },
- /* 0x7b00 */
- { 7613, 0x72a7 }, { 7622, 0xb5cd }, { 7632, 0xa28e }, { 7639, 0xaaf5 },
- { 7649, 0x655f }, { 7659, 0xd2a8 }, { 7666, 0xbffa }, { 7679, 0xb559 },
- { 7688, 0xdfde }, { 7701, 0xcf4e }, { 7711, 0xc039 }, { 7717, 0xfeed },
- { 7730, 0xef3d }, { 7742, 0xd9f5 }, { 7753, 0xbb9d }, { 7764, 0xaf7d },
- /* 0x7c00 */
- { 7776, 0x677f }, { 7788, 0x7fbf }, { 7802, 0xfb3f }, { 7815, 0x7eff },
- { 7829, 0xdffc }, { 7842, 0xffff }, { 7858, 0xffff }, { 7874, 0xc7e7 },
- { 7885, 0xfdff }, { 7900, 0x0e59 }, { 7907, 0xbbcb }, { 7918, 0x8df1 },
- { 7927, 0xca5d }, { 7936, 0x6d1f }, { 7946, 0x7efe }, { 7959, 0xf6ff },
- /* 0x7d00 */
- { 7973, 0xfbff }, { 7988, 0xffff }, { 8004, 0x777a }, { 8015, 0xffff },
- { 8031, 0xffff }, { 8047, 0xffff }, { 8063, 0xbfff }, { 8078, 0xff7f },
- { 8093, 0xffff }, { 8109, 0xffff }, { 8125, 0xbfbf }, { 8139, 0xffff },
- { 8155, 0xffff }, { 8171, 0xffff }, { 8187, 0xffff }, { 8203, 0xffff },
- /* 0x7e00 */
- { 8219, 0xffff }, { 8235, 0xffff }, { 8251, 0xffff }, { 8267, 0xf7ff },
- { 8282, 0xff7d }, { 8296, 0xffff }, { 8312, 0xffff }, { 8328, 0xffff },
- { 8344, 0xfffb }, { 8359, 0x77ff }, { 8373, 0x4000 }, { 8374, 0x1810 },
- { 8377, 0x0000 }, { 8377, 0x0040 }, { 8378, 0x1010 }, { 8380, 0x0200 },
- /* 0x7f00 */
- { 8381, 0x0400 }, { 8382, 0x4001 }, { 8384, 0x0000 }, { 8384, 0xfa80 },
- { 8391, 0xffcb }, { 8404, 0x7a4c }, { 8412, 0xb8f9 }, { 8422, 0xbde9 },
- { 8433, 0xabfd }, { 8445, 0x1bef }, { 8456, 0x7f6d }, { 8468, 0x4cfa },
- { 8477, 0xabdd }, { 8488, 0x7ecf }, { 8500, 0xbd9c }, { 8510, 0xe7f4 },
- /* 0x8000 */
- { 8521, 0xc784 }, { 8528, 0xec0a }, { 8535, 0xf81a }, { 8543, 0x5615 },
- { 8550, 0xc3b3 }, { 8559, 0xfaeb }, { 8571, 0xf9ff }, { 8585, 0x7ffd },
- { 8599, 0xe526 }, { 8607, 0x42b7 }, { 8615, 0x11c8 }, { 8620, 0x0b69 },
- { 8627, 0x8fa0 }, { 8634, 0x813f }, { 8642, 0x404d }, { 8647, 0xcaa0 },
- /* 0x8100 */
- { 8653, 0x19bb }, { 8662, 0xbaa0 }, { 8669, 0x6fff }, { 8683, 0xbeb9 },
- { 8694, 0xe2bf }, { 8705, 0xf9c4 }, { 8714, 0x9d5e }, { 8724, 0x01ec },
- { 8730, 0x7afa }, { 8741, 0xc6fd }, { 8752, 0xfab7 }, { 8764, 0xf3f7 },
- { 8777, 0xebb0 }, { 8786, 0xffff }, { 8802, 0xcb77 }, { 8813, 0xa7e7 },
- /* 0x8200 */
- { 8824, 0xcf88 }, { 8832, 0x27ea }, { 8841, 0x42f1 }, { 8848, 0xb404 },
- { 8853, 0x756f }, { 8864, 0x7aff }, { 8877, 0x3eff }, { 8890, 0x19e2 },
- { 8897, 0x12eb }, { 8905, 0x4c79 }, { 8913, 0x008d }, { 8917, 0x9c64 },
- { 8924, 0x026d }, { 8930, 0x2641 }, { 8935, 0x7784 }, { 8943, 0xf56d },
- /* 0x8300 */
- { 8954, 0x2c01 }, { 8958, 0xe34d }, { 8967, 0x467f }, { 8977, 0xe885 },
- { 8984, 0x7d36 }, { 8994, 0x23e8 }, { 9001, 0x0004 }, { 9002, 0xc67f },
- { 9013, 0xbd9f }, { 9025, 0xa6f3 }, { 9035, 0xf0fe }, { 9046, 0xc820 },
- { 9050, 0x6b5c }, { 9059, 0x4eaf }, { 9069, 0xf9dc }, { 9080, 0xdcf8 },
- /* 0x8400 */
- { 9090, 0x07a5 }, { 9097, 0xcefd }, { 9109, 0xfe0f }, { 9120, 0xcefd },
- { 9132, 0xffbf }, { 9147, 0xe17d }, { 9157, 0xc5f5 }, { 9167, 0xfa95 },
- { 9177, 0xa47b }, { 9186, 0xed7f }, { 9199, 0x7ffd }, { 9213, 0x58eb },
- { 9222, 0xd9ed }, { 9233, 0x5fb4 }, { 9243, 0xef96 }, { 9254, 0x6ffe },
- /* 0x8500 */
- { 9267, 0xefff }, { 9282, 0x7b75 }, { 9293, 0xe7fd }, { 9306, 0xc07f },
- { 9315, 0xf8f7 }, { 9327, 0xbdbf }, { 9340, 0xfeef }, { 9354, 0xb1eb },
- { 9364, 0x7f4f }, { 9376, 0xe7ff }, { 9390, 0x3aef }, { 9401, 0xfd7e },
- { 9414, 0x7dfd }, { 9427, 0xefd6 }, { 9439, 0xfdef }, { 9453, 0x77ff },
- /* 0x8600 */
- { 9467, 0xffdf }, { 9482, 0xffbd }, { 9496, 0xfd7f }, { 9510, 0xeeff },
- { 9524, 0x1fff }, { 9537, 0xbbec }, { 9548, 0xa7fb }, { 9560, 0x01fd },
- { 9568, 0xc3f8 }, { 9577, 0xcfd7 }, { 9589, 0x6867 }, { 9597, 0xfb8c },
- { 9607, 0x312e }, { 9614, 0x34ec }, { 9622, 0x9def }, { 9634, 0xbce0 },
- /* 0x8700 */
- { 9642, 0xd872 }, { 9650, 0xaa53 }, { 9658, 0xbdd1 }, { 9668, 0x376d },
- { 9678, 0xac7f }, { 9689, 0xfd77 }, { 9702, 0xbfc6 }, { 9713, 0x87ae },
- { 9722, 0xd6d3 }, { 9732, 0x7f77 }, { 9745, 0x46ff }, { 9756, 0xdbd7 },
- { 9768, 0xf3be }, { 9780, 0xf7f1 }, { 9792, 0xbbde }, { 9804, 0xbdff },
- /* 0x8800 */
- { 9818, 0xfbf7 }, { 9832, 0xf797 }, { 9844, 0xfff9 }, { 9858, 0xedfb },
- { 9871, 0xcfce }, { 9882, 0xfd6f }, { 9895, 0xa4c1 }, { 9901, 0x1f7a },
- { 9911, 0xd6c9 }, { 9920, 0xefbb }, { 9933, 0xd7eb }, { 9945, 0xef7d },
- { 9958, 0xbd99 }, { 9968, 0x7ccb }, { 9978, 0xfec3 }, { 9989, 0xace4 },
- /* 0x8900 */
- { 9997, 0xfbfb }, { 10011, 0xf1f2 }, { 10021, 0xf3dd }, { 10033, 0xffae },
- { 10046, 0xffed }, { 10060, 0x3fff }, { 10074, 0xffbf }, { 10089, 0x77ff },
- { 10103, 0xffb5 }, { 10116, 0xffff }, { 10132, 0xffff }, { 10148, 0xffff },
- { 10164, 0x2009 }, { 10167, 0xabb8 }, { 10176, 0x7797 }, { 10187, 0xfff7 },
- /* 0x8a00 */
- { 10202, 0xff7e }, { 10216, 0xffff }, { 10232, 0xffff }, { 10248, 0xbfff },
- { 10263, 0xfeff }, { 10278, 0xffff }, { 10294, 0xffff }, { 10310, 0xfdff },
- { 10325, 0xf9ff }, { 10339, 0xfff7 }, { 10354, 0xffff }, { 10370, 0xffff },
- { 10386, 0xffff }, { 10402, 0xffff }, { 10418, 0xffff }, { 10434, 0xffff },
- /* 0x8b00 */
- { 10450, 0xff7f }, { 10465, 0xffff }, { 10481, 0xffbf }, { 10496, 0xffff },
- { 10512, 0xffff }, { 10528, 0xffff }, { 10544, 0xefbf }, { 10558, 0xffff },
- { 10574, 0xffff }, { 10590, 0xffff }, { 10606, 0x1000 }, { 10607, 0x0802 },
- { 10609, 0x0080 }, { 10610, 0x0001 }, { 10611, 0x0400 }, { 10612, 0x0000 },
- /* 0x8c00 */
- { 10612, 0x0200 }, { 10613, 0x4000 }, { 10614, 0x0000 }, { 10614, 0xff00 },
- { 10622, 0xed3d }, { 10633, 0xfbdf }, { 10647, 0xf3f9 }, { 10659, 0xf8f7 },
- { 10671, 0xe9db }, { 10682, 0xfeef }, { 10696, 0xffff }, { 10712, 0xffff },
- { 10728, 0xffff }, { 10744, 0xffff }, { 10760, 0xffff }, { 10776, 0xffff },
- /* 0x8d00 */
- { 10792, 0xffff }, { 10808, 0x1fff }, { 10821, 0x0001 }, { 10822, 0x0000 },
- { 10822, 0x0000 }, { 10822, 0x8086 }, { 10826, 0xd720 }, { 10833, 0xff06 },
- { 10843, 0xf3cd }, { 10854, 0x7fed }, { 10867, 0xfff7 }, { 10882, 0x2ac5 },
- { 10889, 0x27a7 }, { 10898, 0x133d }, { 10906, 0x62e7 }, { 10915, 0xd057 },
- /* 0x8e00 */
- { 10923, 0x69df }, { 10934, 0x1fef }, { 10946, 0x29f3 }, { 10955, 0xd9dd },
- { 10966, 0xf068 }, { 10973, 0xfdf9 }, { 10986, 0x4dbf }, { 10997, 0x6faa },
- { 11007, 0x7f5d }, { 11019, 0xafee }, { 11031, 0x67ff }, { 11044, 0xfbfb },
- { 11058, 0xbfff }, { 11073, 0xffff }, { 11089, 0xffff }, { 11105, 0xffff },
- /* 0x8f00 */
- { 11121, 0xffff }, { 11137, 0xffff }, { 11153, 0xffff }, { 11169, 0xffff },
- { 11185, 0xffff }, { 11201, 0xffff }, { 11217, 0x043f }, { 11224, 0x0000 },
- { 11224, 0x1001 }, { 11226, 0x2004 }, { 11228, 0xf4f7 }, { 11240, 0x9dbc },
- { 11250, 0xbe49 }, { 11259, 0x04c4 }, { 11263, 0x908b }, { 11269, 0xdc76 },
- /* 0x9000 */
- { 11279, 0x5180 }, { 11283, 0x1328 }, { 11288, 0x1fb8 }, { 11297, 0xa69f },
- { 11307, 0x5f69 }, { 11317, 0xf670 }, { 11326, 0x9ed3 }, { 11336, 0x5fcf },
- { 11348, 0xf6f2 }, { 11359, 0xd555 }, { 11368, 0x2bb1 }, { 11376, 0xb084 },
- { 11381, 0x3b4d }, { 11390, 0xc774 }, { 11399, 0x5639 }, { 11407, 0x9eef },
- /* 0x9100 */
- { 11419, 0xffeb }, { 11433, 0xbdff }, { 11447, 0x7ff3 }, { 11460, 0xfdfd },
- { 11474, 0x01b7 }, { 11481, 0x9b7a }, { 11491, 0x29c1 }, { 11497, 0x1c08 },
- { 11501, 0xc55f }, { 11511, 0xf3f8 }, { 11522, 0x1bf3 }, { 11532, 0xfbcf },
- { 11545, 0x097f }, { 11554, 0xeffd }, { 11568, 0xffff }, { 11584, 0xffff },
- /* 0x9200 */
- { 11600, 0xffff }, { 11616, 0xffff }, { 11632, 0xffff }, { 11648, 0xffff },
- { 11664, 0xffff }, { 11680, 0xffff }, { 11696, 0xffff }, { 11712, 0xffef },
- { 11727, 0xbfff }, { 11742, 0xffff }, { 11758, 0xbfff }, { 11773, 0xffff },
- { 11789, 0xfeff }, { 11804, 0xffff }, { 11820, 0xffff }, { 11836, 0xffff },
- /* 0x9300 */
- { 11852, 0xffff }, { 11868, 0xffff }, { 11884, 0xffff }, { 11900, 0xbfff },
- { 11915, 0xffff }, { 11931, 0xffff }, { 11947, 0xfbff }, { 11962, 0xffff },
- { 11978, 0x7fff }, { 11993, 0xffff }, { 12009, 0xffff }, { 12025, 0xffff },
- { 12041, 0xfbff }, { 12056, 0xffbf }, { 12071, 0xffff }, { 12087, 0xffff },
- /* 0x9400 */
- { 12103, 0xffff }, { 12119, 0xffff }, { 12135, 0xffff }, { 12151, 0xbfff },
- { 12166, 0xffff }, { 12182, 0xffff }, { 12198, 0xf7ff }, { 12213, 0xffff },
- { 12229, 0x001f }, { 12234, 0x0142 }, { 12237, 0x0000 }, { 12237, 0x0000 },
- { 12237, 0x8080 }, { 12239, 0x0418 }, { 12242, 0x0040 }, { 12243, 0x0800 },
- /* 0x9500 */
- { 12244, 0x0000 }, { 12244, 0x1000 }, { 12245, 0x0081 }, { 12247, 0x2008 },
- { 12249, 0x0908 }, { 12252, 0x0420 }, { 12254, 0x4001 }, { 12256, 0x7fb0 },
- { 12266, 0xffff }, { 12282, 0xffff }, { 12298, 0xffff }, { 12314, 0xffff },
- { 12330, 0xffff }, { 12346, 0xffff }, { 12362, 0x10ff }, { 12371, 0x8000 },
- /* 0x9600 */
- { 12372, 0x0080 }, { 12373, 0x4908 }, { 12377, 0xbbf9 }, { 12389, 0x4781 },
- { 12395, 0xc40a }, { 12400, 0x77ce }, { 12411, 0xe869 }, { 12419, 0xff0b },
- { 12430, 0x569f }, { 12440, 0xec6e }, { 12450, 0xff7f }, { 12465, 0x8db6 },
- { 12474, 0x0d0c }, { 12479, 0xffdb }, { 12493, 0x78fe }, { 12504, 0xbd37 },
- /* 0x9700 */
- { 12515, 0x1c2c }, { 12521, 0xafb7 }, { 12533, 0xdbff }, { 12547, 0xbcfa },
- { 12558, 0xffff }, { 12574, 0xb5b3 }, { 12584, 0xfdd8 }, { 12595, 0xefa7 },
- { 12607, 0xd7df }, { 12620, 0xfee9 }, { 12632, 0x57f6 }, { 12643, 0xffeb },
- { 12657, 0xffff }, { 12673, 0xffff }, { 12689, 0xc13f }, { 12698, 0xff97 },
- /* 0x9800 */
- { 12711, 0xffff }, { 12727, 0xffff }, { 12743, 0xffff }, { 12759, 0xffff },
- { 12775, 0xffff }, { 12791, 0xffff }, { 12807, 0xffff }, { 12823, 0x001f },
- { 12828, 0x4800 }, { 12830, 0x0224 }, { 12833, 0xff08 }, { 12842, 0xffff },
- { 12858, 0xbfff }, { 12873, 0x38d1 }, { 12880, 0xfe7f }, { 12894, 0xffff },
- /* 0x9900 */
- { 12910, 0xdfff }, { 12925, 0xfffe }, { 12940, 0xbfff }, { 12955, 0xffff },
- { 12971, 0xffff }, { 12987, 0xffcf }, { 13001, 0x0057 }, { 13006, 0x4b08 },
- { 13011, 0x520c }, { 13016, 0xfc00 }, { 13022, 0xfedf }, { 13036, 0xffff },
- { 13052, 0xffff }, { 13068, 0xffff }, { 13084, 0xffff }, { 13100, 0xffff },
- /* 0x9a00 */
- { 13116, 0xffff }, { 13132, 0xffff }, { 13148, 0xffff }, { 13164, 0xffff },
- { 13180, 0xffff }, { 13196, 0xffff }, { 13212, 0x0fff }, { 13224, 0x0004 },
- { 13225, 0x6208 }, { 13229, 0x0230 }, { 13232, 0xfe40 }, { 13240, 0xea3c },
- { 13249, 0xe7d8 }, { 13259, 0x7ef5 }, { 13271, 0x57bd }, { 13282, 0xf5ff },
- /* 0x9b00 */
- { 13296, 0x7ef7 }, { 13309, 0x7ff7 }, { 13323, 0x7ff7 }, { 13337, 0xe7fb },
- { 13350, 0x5c41 }, { 13356, 0xffed }, { 13370, 0xffff }, { 13386, 0xffff },
- { 13402, 0xffff }, { 13418, 0xffff }, { 13434, 0xffff }, { 13450, 0xffff },
- { 13466, 0xffff }, { 13482, 0xffff }, { 13498, 0xffff }, { 13514, 0xffff },
- /* 0x9c00 */
- { 13530, 0xffff }, { 13546, 0xffff }, { 13562, 0xffff }, { 13578, 0xffff },
- { 13594, 0xffff }, { 13610, 0xffff }, { 13626, 0xffff }, { 13642, 0x6fff },
- { 13656, 0x9619 }, { 13663, 0x23c8 }, { 13669, 0x9400 }, { 13672, 0xc200 },
- { 13675, 0x0307 }, { 13680, 0x0c06 }, { 13684, 0xfffb }, { 13699, 0xffff },
- /* 0x9d00 */
- { 13715, 0xffff }, { 13731, 0xffff }, { 13747, 0xffff }, { 13763, 0xffff },
- { 13779, 0xffff }, { 13795, 0xffff }, { 13811, 0xffff }, { 13827, 0xffff },
- { 13843, 0xffff }, { 13859, 0xffff }, { 13875, 0xffff }, { 13891, 0xffff },
- { 13907, 0xffff }, { 13923, 0xffff }, { 13939, 0xffff }, { 13955, 0xffff },
- /* 0x9e00 */
- { 13971, 0xffff }, { 13987, 0x7fff }, { 14002, 0x4090 }, { 14005, 0x1811 },
- { 14009, 0x2001 }, { 14011, 0xa25d }, { 14019, 0xc027 }, { 14025, 0x3ff4 },
- { 14036, 0xf67b }, { 14048, 0x5ff3 }, { 14060, 0xffbf }, { 14075, 0x96ef },
- { 14086, 0x1def }, { 14097, 0x46ed }, { 14106, 0x795a }, { 14115, 0xa5ff },
- /* 0x9f00 */
- { 14127, 0x97ff }, { 14140, 0xfd76 }, { 14152, 0x6ffa }, { 14164, 0x957f },
- { 14175, 0xffef }, { 14190, 0xfffc }, { 14204, 0xffff }, { 14220, 0x7fff },
- { 14235, 0xe006 }, { 14240, 0x71ff }, { 14252, 0x003e },
-};
-static const Summary16 gbkext_inv_uni2indx_pagef9[19] = {
- /* 0xf900 */
- { 14257, 0x0000 }, { 14257, 0x0000 }, { 14257, 0x1000 }, { 14258, 0x0000 },
- { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0200 },
- { 14259, 0x0000 }, { 14259, 0x0020 }, { 14260, 0x0000 }, { 14260, 0x0000 },
- { 14260, 0x0000 }, { 14260, 0x0000 }, { 14260, 0x0080 }, { 14261, 0x0002 },
- /* 0xfa00 */
- { 14262, 0xf000 }, { 14266, 0x811a }, { 14271, 0x039b },
-};
-static const Summary16 gbkext_inv_uni2indx_pagefe[31] = {
- /* 0xfe00 */
- { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0001 },
- { 14279, 0xfe00 }, { 14286, 0xfef7 }, { 14300, 0x0f7f }, { 14311, 0x0000 },
- { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
- { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
- /* 0xff00 */
- { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
- { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
- { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 },
- { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0014 },
-};
-
-static int gbkext_inv_wctomb(unsigned int* r, unsigned int wc) {
- const Summary16 *summary = NULL;
- if (wc >= 0x0200 && wc < 0x02e0) {
- summary = &gbkext_inv_uni2indx_page02[(wc>>4)-0x020];
- } else if (wc >= 0x2000 && wc < 0x22c0) {
- summary = &gbkext_inv_uni2indx_page20[(wc>>4)-0x200];
- } else if (wc >= 0x2500 && wc < 0x2610) {
- summary = &gbkext_inv_uni2indx_page25[(wc>>4)-0x250];
- } else if (wc >= 0x3000 && wc < 0x3100) {
- summary = &gbkext_inv_uni2indx_page30[(wc>>4)-0x300];
- } else if (wc >= 0x3200 && wc < 0x33e0) {
- summary = &gbkext_inv_uni2indx_page32[(wc>>4)-0x320];
- } else if (wc >= 0x4e00 && wc < 0x9fb0) {
- summary = &gbkext_inv_uni2indx_page4e[(wc>>4)-0x4e0];
- } else if (wc >= 0xf900 && wc < 0xfa30) {
- summary = &gbkext_inv_uni2indx_pagef9[(wc>>4)-0xf90];
- } else if (wc >= 0xfe00 && wc < 0xfff0) {
- summary = &gbkext_inv_uni2indx_pagefe[(wc>>4)-0xfe0];
- }
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- /* Keep in 'used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add 'summary->indx' and the number of bits set in 'used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- *r = gbkext_inv_2charset[summary->indx + used];
- return 2;
- }
- }
- return 0;
-}
-
-/*
- * GBK (libiconv-1.16/lib/gbk.h)
- */
-
-static int gbk_wctomb(unsigned int* r, unsigned int wc) {
- int ret;
-
- /* ZINT: Note these mappings U+30FB and U+2015 different from GB 2312 */
- if (wc != 0x30fb && wc != 0x2015) {
- ret = gb2312_wctomb_zint(r, wc); /* In gb2312.c */
- if (ret) {
- return ret;
- }
- }
- ret = gbkext_inv_wctomb(r, wc);
- if (ret) {
- return ret;
- }
- if (wc >= 0x2170 && wc <= 0x2179) {
- *r = 0xa2a1 + (wc-0x2170);
- return 2;
- }
- ret = cp936ext_wctomb(r, wc);
- if (ret) {
- return ret;
- }
- /* ZINT: gb2312_wctomb_zint() is patched to map U+00B7 to 0xA1A4 and U+2014 to 0xA1AA */
-
- return 0;
-}
-
-/*
- * GB18030 two-byte extension (libiconv-1.16/lib/gb18030ext.h)
- */
-
-static const unsigned short gb18030ext_page2e[80] = {
- 0x0000, 0xfe50, 0x0000, 0x0000, 0xfe54, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
- 0xfe57, 0x0000, 0x0000, 0xfe58, 0xfe5d, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5e, /*0x90-0x97*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe6b, /*0xa0-0xa7*/
- 0x0000, 0x0000, 0xfe6e, 0x0000, 0x0000, 0x0000, 0xfe71, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0x0000, 0x0000, 0xfe73, 0x0000, 0x0000, 0xfe74, 0xfe75, /*0xb0-0xb7*/
- 0x0000, 0x0000, 0x0000, 0xfe79, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/
- 0x0000, 0x0000, 0xfe84, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
-};
-static const unsigned short gb18030ext_page2f[16] = {
- 0xa98a, 0xa98b, 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, /*0xf0-0xf7*/
- 0xa992, 0xa993, 0xa994, 0xa995, 0x0000, 0x0000, 0x0000, 0x0000, /*0xf8-0xff*/
-};
-static const unsigned short gb18030ext_page34[56] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe56, /*0x40-0x47*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
- 0x0000, 0x0000, 0x0000, 0xfe55, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/
-};
-static const unsigned short gb18030ext_page36[24] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5c, 0x0000, /*0x08-0x0f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/
- 0x0000, 0x0000, 0xfe5b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
-};
-static const unsigned short gb18030ext_page39[24] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe62, /*0xc8-0xcf*/
- 0xfe65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe63, /*0xd8-0xdf*/
-};
-static const unsigned short gb18030ext_page43[56] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xfe78, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0xfe77, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7a, 0x0000, 0x0000, /*0xd8-0xdf*/
-};
-static const unsigned short gb18030ext_page46[32] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7d, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0x0000, 0xfe7c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
-};
-static const unsigned short gb18030ext_page47_1[16] = {
- 0x0000, 0x0000, 0x0000, 0xfe80, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/
- 0x0000, 0xfe81, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
-};
-static const unsigned short gb18030ext_page47_2[24] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xfe82, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe83, 0x0000, 0x0000, /*0x88-0x8f*/
-};
-static const unsigned short gb18030ext_page49[120] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe85, /*0x40-0x47*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/
- 0x0000, 0x0000, 0xfe86, 0x0000, 0x0000, 0xfe87, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0x0000, 0xfe88, 0xfe89, 0x0000, 0xfe8a, 0xfe8b, 0x0000, /*0x80-0x87*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
- 0x0000, 0x0000, 0x0000, 0xfe8d, 0x0000, 0x0000, 0x0000, 0xfe8c, /*0x98-0x9f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe8f, 0xfe8e, /*0xb0-0xb7*/
-};
-static const unsigned short gb18030ext_page4c[56] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe96, /*0x70-0x77*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe93, /*0x98-0x9f*/
- 0xfe94, 0xfe95, 0xfe97, 0xfe92, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
-};
-static const unsigned short gb18030ext_page4d[16] = {
- 0x0000, 0x0000, 0x0000, 0xfe98, 0xfe99, 0xfe9a, 0xfe9b, 0xfe9c, /*0x10-0x17*/
- 0xfe9d, 0xfe9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
-};
-static const unsigned short gb18030ext_page9f[16] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xfe59, 0xfe61, 0xfe66, 0xfe67, /*0xb0-0xb7*/
- 0xfe6d, 0xfe7e, 0xfe90, 0xfea0, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
-};
-static const unsigned short gb18030ext_pagefe[16] = {
- 0xa6d9, 0xa6db, 0xa6da, 0xa6dc, 0xa6dd, 0xa6de, 0xa6df, 0xa6ec, /*0x10-0x17*/
- 0xa6ed, 0xa6f3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
-};
-
-static int gb18030ext_wctomb(unsigned int* r, unsigned int wc) {
- unsigned short c = 0;
- if (wc == 0x01f9) {
- c = 0xa8bf;
- } else if (wc == 0x1e3f) {
- c = 0xa8bc;
- } else if (wc == 0x20ac) {
- c = 0xa2e3;
- } else if (wc >= 0x2e80 && wc < 0x2ed0) {
- c = gb18030ext_page2e[wc-0x2e80];
- } else if (wc >= 0x2ff0 && wc < 0x3000) {
- c = gb18030ext_page2f[wc-0x2ff0];
- } else if (wc == 0x303e) {
- c = 0xa989;
- } else if (wc >= 0x3440 && wc < 0x3478) {
- c = gb18030ext_page34[wc-0x3440];
- } else if (wc == 0x359e) {
- c = 0xfe5a;
- } else if (wc >= 0x3608 && wc < 0x3620) {
- c = gb18030ext_page36[wc-0x3608];
- } else if (wc == 0x3918) {
- c = 0xfe60;
- } else if (wc == 0x396e) {
- c = 0xfe5f;
- } else if (wc >= 0x39c8 && wc < 0x39e0) {
- c = gb18030ext_page39[wc-0x39c8];
- } else if (wc == 0x3a73) {
- c = 0xfe64;
- } else if (wc == 0x3b4e) {
- c = 0xfe68;
- } else if (wc == 0x3c6e) {
- c = 0xfe69;
- } else if (wc == 0x3ce0) {
- c = 0xfe6a;
- } else if (wc == 0x4056) {
- c = 0xfe6f;
- } else if (wc == 0x415f) {
- c = 0xfe70;
- } else if (wc == 0x4337) {
- c = 0xfe72;
- } else if (wc >= 0x43a8 && wc < 0x43e0) {
- c = gb18030ext_page43[wc-0x43a8];
- } else if (wc == 0x44d6) {
- c = 0xfe7b;
- } else if (wc >= 0x4648 && wc < 0x4668) {
- c = gb18030ext_page46[wc-0x4648];
- } else if (wc >= 0x4720 && wc < 0x4730) {
- c = gb18030ext_page47_1[wc-0x4720];
- } else if (wc >= 0x4778 && wc < 0x4790) {
- c = gb18030ext_page47_2[wc-0x4778];
- } else if (wc >= 0x4940 && wc < 0x49b8) {
- c = gb18030ext_page49[wc-0x4940];
- } else if (wc >= 0x4c70 && wc < 0x4ca8) {
- c = gb18030ext_page4c[wc-0x4c70];
- } else if (wc >= 0x4d10 && wc < 0x4d20) {
- c = gb18030ext_page4d[wc-0x4d10];
- } else if (wc == 0x4dae) {
- c = 0xfe9f;
- } else if (wc >= 0x9fb4 && wc < 0x9fbc) {
- c = gb18030ext_page9f[wc-0x9fb0];
- } else if (wc >= 0xfe10 && wc < 0xfe1a) {
- c = gb18030ext_pagefe[wc-0xfe10];
- } else if (wc == 0x20087) {
- c = 0xfe51;
- } else if (wc == 0x20089) {
- c = 0xfe52;
- } else if (wc == 0x200cc) {
- c = 0xfe53;
- } else if (wc == 0x215d7) {
- c = 0xfe6c;
- } else if (wc == 0x2298f) {
- c = 0xfe76;
- } else if (wc == 0x241fe) {
- c = 0xfe91;
- }
- if (c != 0) {
- *r = c;
- return 2;
- }
- return 0;
-}
-
-/*
- * GB18030 four-byte extension (libiconv-1.16/lib/gb18030uni.h)
- */
-
-static const unsigned short gb18030uni_uni2charset_ranges[412] = {
- 0x0080, 0x00a3, 0x00a5, 0x00a6, 0x00a9, 0x00af, 0x00b2, 0x00b6,
- 0x00b8, 0x00d6, 0x00d8, 0x00df, 0x00e2, 0x00e7, 0x00eb, 0x00eb,
- 0x00ee, 0x00f1, 0x00f4, 0x00f6, 0x00f8, 0x00f8, 0x00fb, 0x00fb,
- 0x00fd, 0x0100, 0x0102, 0x0112, 0x0114, 0x011a, 0x011c, 0x012a,
- 0x012c, 0x0143, 0x0145, 0x0147, 0x0149, 0x014c, 0x014e, 0x016a,
- 0x016c, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3,
- 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db,
- 0x01dd, 0x01f8, 0x01fa, 0x0250, 0x0252, 0x0260, 0x0262, 0x02c6,
- 0x02c8, 0x02c8, 0x02cc, 0x02d8, 0x02da, 0x0390, 0x03a2, 0x03a2,
- 0x03aa, 0x03b0, 0x03c2, 0x03c2, 0x03ca, 0x0400, 0x0402, 0x040f,
- 0x0450, 0x0450, 0x0452, 0x200f, 0x2011, 0x2012, 0x2017, 0x2017,
- 0x201a, 0x201b, 0x201e, 0x2024, 0x2027, 0x202f, 0x2031, 0x2031,
- 0x2034, 0x2034, 0x2036, 0x203a, 0x203c, 0x20ab, 0x20ad, 0x2102,
- 0x2104, 0x2104, 0x2106, 0x2108, 0x210a, 0x2115, 0x2117, 0x2120,
- 0x2122, 0x215f, 0x216c, 0x216f, 0x217a, 0x218f, 0x2194, 0x2195,
- 0x219a, 0x2207, 0x2209, 0x220e, 0x2210, 0x2210, 0x2212, 0x2214,
- 0x2216, 0x2219, 0x221b, 0x221c, 0x2221, 0x2222, 0x2224, 0x2224,
- 0x2226, 0x2226, 0x222c, 0x222d, 0x222f, 0x2233, 0x2238, 0x223c,
- 0x223e, 0x2247, 0x2249, 0x224b, 0x224d, 0x2251, 0x2253, 0x225f,
- 0x2262, 0x2263, 0x2268, 0x226d, 0x2270, 0x2294, 0x2296, 0x2298,
- 0x229a, 0x22a4, 0x22a6, 0x22be, 0x22c0, 0x2311, 0x2313, 0x245f,
- 0x246a, 0x2473, 0x249c, 0x24ff, 0x254c, 0x254f, 0x2574, 0x2580,
- 0x2590, 0x2592, 0x2596, 0x259f, 0x25a2, 0x25b1, 0x25b4, 0x25bb,
- 0x25be, 0x25c5, 0x25c8, 0x25ca, 0x25cc, 0x25cd, 0x25d0, 0x25e1,
- 0x25e6, 0x2604, 0x2607, 0x2608, 0x260a, 0x263f, 0x2641, 0x2641,
- 0x2643, 0x2e80, 0x2e82, 0x2e83, 0x2e85, 0x2e87, 0x2e89, 0x2e8a,
- 0x2e8d, 0x2e96, 0x2e98, 0x2ea6, 0x2ea8, 0x2ea9, 0x2eab, 0x2ead,
- 0x2eaf, 0x2eb2, 0x2eb4, 0x2eb5, 0x2eb8, 0x2eba, 0x2ebc, 0x2ec9,
- 0x2ecb, 0x2fef, 0x2ffc, 0x2fff, 0x3004, 0x3004, 0x3018, 0x301c,
- 0x301f, 0x3020, 0x302a, 0x303d, 0x303f, 0x3040, 0x3094, 0x309a,
- 0x309f, 0x30a0, 0x30f7, 0x30fb, 0x30ff, 0x3104, 0x312a, 0x321f,
- 0x322a, 0x3230, 0x3232, 0x32a2, 0x32a4, 0x338d, 0x3390, 0x339b,
- 0x339f, 0x33a0, 0x33a2, 0x33c3, 0x33c5, 0x33cd, 0x33cf, 0x33d0,
- 0x33d3, 0x33d4, 0x33d6, 0x3446, 0x3448, 0x3472, 0x3474, 0x359d,
- 0x359f, 0x360d, 0x360f, 0x3619, 0x361b, 0x3917, 0x3919, 0x396d,
- 0x396f, 0x39ce, 0x39d1, 0x39de, 0x39e0, 0x3a72, 0x3a74, 0x3b4d,
- 0x3b4f, 0x3c6d, 0x3c6f, 0x3cdf, 0x3ce1, 0x4055, 0x4057, 0x415e,
- 0x4160, 0x4336, 0x4338, 0x43ab, 0x43ad, 0x43b0, 0x43b2, 0x43dc,
- 0x43de, 0x44d5, 0x44d7, 0x464b, 0x464d, 0x4660, 0x4662, 0x4722,
- 0x4724, 0x4728, 0x472a, 0x477b, 0x477d, 0x478c, 0x478e, 0x4946,
- 0x4948, 0x4979, 0x497b, 0x497c, 0x497e, 0x4981, 0x4984, 0x4984,
- 0x4987, 0x499a, 0x499c, 0x499e, 0x49a0, 0x49b5, 0x49b8, 0x4c76,
- 0x4c78, 0x4c9e, 0x4ca4, 0x4d12, 0x4d1a, 0x4dad, 0x4daf, 0x4dff,
- 0x9fa6, 0xd7ff,
- 0xe76c, 0xe76c, 0xe7c8, 0xe7c8, 0xe7e7, 0xe7f3,
- 0xe815, 0xe815, 0xe819, 0xe81d, 0xe81f, 0xe825, 0xe827, 0xe82a,
- 0xe82d, 0xe830, 0xe833, 0xe83a, 0xe83c, 0xe842, 0xe844, 0xe853,
- 0xe856, 0xe863,
- 0xe865, 0xf92b, 0xf92d, 0xf978, 0xf97a, 0xf994,
- 0xf996, 0xf9e6, 0xf9e8, 0xf9f0, 0xf9f2, 0xfa0b, 0xfa10, 0xfa10,
- 0xfa12, 0xfa12, 0xfa15, 0xfa17, 0xfa19, 0xfa1e, 0xfa22, 0xfa22,
- 0xfa25, 0xfa26, 0xfa2a, 0xfe2f, 0xfe32, 0xfe32, 0xfe45, 0xfe48,
- 0xfe53, 0xfe53, 0xfe58, 0xfe58, 0xfe67, 0xfe67, 0xfe6c, 0xff00,
- 0xff5f, 0xffdf, 0xffe6, 0xffff
-};
-
-static const unsigned short gb18030uni_ranges[206] = {
- 128, 129, 131, 133, 134, 135, 137, 140,
- 142, 144, 145, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 171, 172, 189, 196, 213, 220, 221,
- 285, 286, 287, 291, 293, 295, 297, 298,
- 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 320, 330, 334, 338, 339, 340, 341,
- 342, 343, 347, 348, 349, 354, 355, 359,
- 360, 361, 362, 363, 365, 369, 371, 372,
- 373, 374, 375, 376, 386, 426, 502, 538,
- 553, 556, 558, 560, 562, 564, 565, 567,
- 571, 573, 574, 575, 576, 577, 578, 579,
- 581, 582, 583, 584, 585, 586, 588, 589,
- 590, 602, 606, 625, 627, 636, 637, 720,
- 724, 810, 813, 850, 860, 861, 862, 864,
- 867, 868, 869, 870, 872, 873, 874, 875,
- 876, 877, 878, 879, 880, 882, 883, 884,
- 885, 886, 887, 888, 889, 890, 891, 892,
- 893, 894, 895, 896, 897, 898, 899, 900,
- 901, 902, 903, 905, 907, 908, 909, 911,
- 912, 917, 924, 925, 21827,
- 25775, 25866, 25896,
- 25929, 25932, 25933, 25934, 25936, 25938, 25939, 25940,
- 25942,
- 25943, 25944, 25945, 25946, 25947, 25948, 25952,
- 25953, 25955, 25956, 25959, 25961, 25964, 25966, 25984,
- 25994, 25998, 26012, 26016, 26110, 26116
-};
-
-static int gb18030uni_wctomb(unsigned int* r1, unsigned int* r2, unsigned int wc) {
- unsigned int i = wc;
- if (i >= 0x0080 && i <= 0xffff) {
- if (i == 0xe7c7) {
- i = 7457;
- } else {
- unsigned int k1 = 0;
- unsigned int k2 = 205;
- while (k1 < k2) {
- unsigned int k = (k1 + k2) / 2;
- if (i <= gb18030uni_uni2charset_ranges[2*k+1]) {
- k2 = k;
- } else if (i >= gb18030uni_uni2charset_ranges[2*k+2]) {
- k1 = k + 1;
- } else {
- return 0;
- }
- }
- {
- unsigned int diff = gb18030uni_ranges[k1];
- i -= diff;
- }
- }
- *r2 = (i % 10) + 0x30; i = i / 10;
- *r2 |= ((i % 126) + 0x81) << 8; i = i / 126;
- *r1 = (i % 10) + 0x30; i = i / 10;
- *r1 |= (i + 0x81) << 8;
- return 4;
- }
- return 0;
-}
-
-/*
- * GB18030 (libiconv-1.16/lib/gb18030.h)
- */
-
-static const unsigned short gb18030_pua2charset[31*3] = {
-/* Unicode range GB18030 range */
- 0xe766, 0xe76b, 0xa2ab, /*.. 0xa2b0, */
- 0xe76d, 0xe76d, 0xa2e4,
- 0xe76e, 0xe76f, 0xa2ef, /*.. 0xa2f0, */
- 0xe770, 0xe771, 0xa2fd, /*.. 0xa2fe, */
- 0xe772, 0xe77c, 0xa4f4, /*.. 0xa4fe, */
- 0xe77d, 0xe784, 0xa5f7, /*.. 0xa5fe, */
- 0xe785, 0xe78c, 0xa6b9, /*.. 0xa6c0, */
- 0xe78d, 0xe793, 0xa6d9, /*.. 0xa6df, */
- 0xe794, 0xe795, 0xa6ec, /*.. 0xa6ed, */
- 0xe796, 0xe796, 0xa6f3,
- 0xe797, 0xe79f, 0xa6f6, /*.. 0xa6fe, */
- 0xe7a0, 0xe7ae, 0xa7c2, /*.. 0xa7d0, */
- 0xe7af, 0xe7bb, 0xa7f2, /*.. 0xa7fe, */
- 0xe7bc, 0xe7c6, 0xa896, /*.. 0xa8a0, */
- 0xe7c9, 0xe7cc, 0xa8c1, /*.. 0xa8c4, */
- 0xe7cd, 0xe7e1, 0xa8ea, /*.. 0xa8fe, */
- 0xe7e2, 0xe7e2, 0xa958,
- 0xe7e3, 0xe7e3, 0xa95b,
- 0xe7e4, 0xe7e6, 0xa95d, /*.. 0xa95f, */
- 0xe7f4, 0xe800, 0xa997, /*.. 0xa9a3, */
- 0xe801, 0xe80f, 0xa9f0, /*.. 0xa9fe, */
- 0xe810, 0xe814, 0xd7fa, /*.. 0xd7fe, */
- 0xe816, 0xe818, 0xfe51, /*.. 0xfe53, */
- 0xe81e, 0xe81e, 0xfe59,
- 0xe826, 0xe826, 0xfe61,
- 0xe82b, 0xe82c, 0xfe66, /*.. 0xfe67, */
- 0xe831, 0xe832, 0xfe6c, /*.. 0xfe6d, */
- 0xe83b, 0xe83b, 0xfe76,
- 0xe843, 0xe843, 0xfe7e,
- 0xe854, 0xe855, 0xfe90, /*.. 0xfe91, */
- 0xe864, 0xe864, 0xfea0,
-};
-
-INTERNAL int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc) {
- int ret;
-
- /* Code set 0 (ASCII) */
- if (wc < 0x0080) {
- *r1 = wc;
- return 1;
- }
-
- /* Code set 1 (GBK extended) */
- ret = gbk_wctomb(r1, wc);
- if (ret) {
- return ret;
- }
-
- ret = gb18030ext_wctomb(r1, wc);
- if (ret) {
- return ret;
- }
-
- /* Code set 2 (remainder of Unicode U+0000..U+FFFF) */
- if (wc >= 0xe000 && wc <= 0xe864) {
- if (wc < 0xe766) {
- /* User-defined characters range U+E000..U+E765 */
- if (wc < 0xe4c6) {
- unsigned int i = wc - 0xe000;
- *r1 = (i % 94) + 0xa1; i = i / 94;
- *r1 |= (i < 6 ? i + 0xaa : i + 0xf2) << 8;
- return 2;
- } else {
- unsigned int i = wc - 0xe4c6;
- *r1 = ((i / 96) + 0xa1) << 8; i = i % 96;
- *r1 |= i + (i >= 0x3f ? 0x41 : 0x40);
- return 2;
- }
- } else {
- /* User-defined characters, two-byte part of range U+E766..U+E864 */
- unsigned int k1 = 0;
- unsigned int k2 = 31;
- /* Invariant: We know that if wc occurs in Unicode interval in
- gb18030_pua2charset, it does so at a k with k1 <= k < k2. */
- while (k1 < k2) {
- unsigned int k = (k1 + k2) / 2;
- if (wc < gb18030_pua2charset[k*3+0]) {
- k2 = k;
- } else if (wc > gb18030_pua2charset[k*3+1]) {
- k1 = k + 1;
- } else {
- *r1 = gb18030_pua2charset[k*3+2] + (wc - gb18030_pua2charset[k*3+0]);
- return 2;
- }
- }
- }
- }
- ret = gb18030uni_wctomb(r1, r2, wc);
- if (ret) {
- return ret;
- }
-
- /* Code set 3 (Unicode U+10000..U+10FFFF) */
- if (wc >= 0x10000 && wc < 0x110000) {
- unsigned int i = wc - 0x10000;
- *r2 = (i % 10) + 0x30; i = i / 10;
- *r2 |= ((i % 126) + 0x81) << 8; i = i / 126;
- *r1 = (i % 10) + 0x30; i = i / 10;
- *r1 |= (i + 0x90) << 8;
- return 4;
- }
- return 0;
-}
-
-/* Convert UTF-8 string to GB 18030 and place in array of ints */
-INTERNAL int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
- int error_number, ret;
- unsigned int i, j, length;
-#ifndef _MSC_VER
- unsigned int utfdata[*p_length + 1];
-#else
- unsigned int* utfdata = (unsigned int*) _alloca((*p_length + 1) * sizeof(unsigned int));
-#endif
-
- error_number = utf8_to_unicode(symbol, source, utfdata, p_length, 0 /*disallow_4byte*/);
- if (error_number != 0) {
- return error_number;
- }
-
- for (i = 0, j = 0, length = *p_length; i < length; i++, j++) {
- if (utfdata[i] < 0x80) {
- gbdata[j] = utfdata[i];
- } else {
- ret = gb18030_wctomb_zint(gbdata + j, gbdata + j + 1, utfdata[i]);
- if (ret == 0) {
- strcpy(symbol->errtxt, "820: Invalid character in input data");
- return ZINT_ERROR_INVALID_DATA;
- }
- if (ret == 4) {
- j++;
- }
- }
- }
-
- *p_length = j;
-
- return 0;
-}
-
-/* Convert UTF-8 string to single byte ECI and place in array of ints */
-INTERNAL int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte) {
- int error_number;
-#ifndef _MSC_VER
- unsigned char single_byte[*p_length + 1];
-#else
- unsigned char* single_byte = (unsigned char*) _alloca(*p_length + 1);
-#endif
-
- error_number = utf_to_eci(eci, source, single_byte, p_length);
- if (error_number != 0) {
- /* Note not setting `symbol->errtxt`, up to caller */
- return error_number;
- }
-
- gb18030_cpy(single_byte, p_length, gbdata, full_multibyte);
-
- return 0;
-}
-
-/* If `full_multibyte` set, copy byte input stream to array of ints, putting double-bytes that match HANXIN Chinese mode in single entry,
- * and quad-bytes in 2 entries. If `full_multibyte` not set, do a straight copy */
-INTERNAL void gb18030_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte) {
- unsigned int i, j, length;
- int done;
- unsigned char c1, c2, c3, c4;
-
- if (full_multibyte) {
- for (i = 0, j = 0, length = *p_length; i < length; i++, j++) {
- done = 0;
- c1 = source[i];
- if (length - i >= 2) {
- if (c1 >= 0x81 && c1 <= 0xFE) {
- c2 = source[i + 1];
- if ((c2 >= 0x40 && c2 <= 0x7E) || (c2 >= 0x80 && c2 <= 0xFE)) {
- gbdata[j] = (c1 << 8) | c2;
- i++;
- done = 1;
- } else if (length - i >= 4 && (c2 >= 0x30 && c2 <= 0x39)) {
- c3 = source[i + 2];
- c4 = source[i + 3];
- if ((c3 >= 0x81 && c3 <= 0xFE) && (c4 >= 0x30 && c4 <= 0x39)) {
- gbdata[j++] = (c1 << 8) | c2;
- gbdata[j] = (c3 << 8) | c4;
- i += 3;
- done = 1;
- }
- }
- }
- }
- if (!done) {
- gbdata[j] = c1;
- }
- }
- *p_length = j;
- } else {
- /* Straight copy */
- for (i = 0, length = *p_length; i < length; i++) {
- gbdata[i] = source[i];
- }
- }
-}
-/* gb18030.h - Unicode to GB 18030
+/* gb18030.h - Unicode to GB 18030 lookup table
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-#ifndef GB18030_H
-#define GB18030_H
+static const unsigned short int gb18030_twobyte_lookup[] = {
+ 0x0144, 0xA8BD,
+ 0x0148, 0xA8BE,
+ 0x01F9, 0xA8BF,
+ 0x0251, 0xA8BB,
+ 0x0261, 0xA8C0,
+ 0x02CA, 0xA840,
+ 0x02CB, 0xA841,
+ 0x02D9, 0xA842,
+ 0x2010, 0xA95C,
+ 0x2013, 0xA843,
+ 0x2015, 0xA844,
+ 0x2025, 0xA845,
+ 0x2035, 0xA846,
+ 0x20AC, 0xA2E3,
+ 0x2105, 0xA847,
+ 0x2109, 0xA848,
+ 0x2121, 0xA959,
+ 0x2170, 0xA2A1,
+ 0x2171, 0xA2A2,
+ 0x2172, 0xA2A3,
+ 0x2173, 0xA2A4,
+ 0x2174, 0xA2A5,
+ 0x2175, 0xA2A6,
+ 0x2176, 0xA2A7,
+ 0x2177, 0xA2A8,
+ 0x2178, 0xA2A9,
+ 0x2179, 0xA2AA,
+ 0x2196, 0xA849,
+ 0x2197, 0xA84A,
+ 0x2198, 0xA84B,
+ 0x2199, 0xA84C,
+ 0x2215, 0xA84D,
+ 0x221F, 0xA84E,
+ 0x2223, 0xA84F,
+ 0x2252, 0xA850,
+ 0x2266, 0xA851,
+ 0x2267, 0xA852,
+ 0x2295, 0xA892,
+ 0x22BF, 0xA853,
+ 0x2550, 0xA854,
+ 0x2551, 0xA855,
+ 0x2552, 0xA856,
+ 0x2553, 0xA857,
+ 0x2554, 0xA858,
+ 0x2555, 0xA859,
+ 0x2556, 0xA85A,
+ 0x2557, 0xA85B,
+ 0x2558, 0xA85C,
+ 0x2559, 0xA85D,
+ 0x255A, 0xA85E,
+ 0x255B, 0xA85F,
+ 0x255C, 0xA860,
+ 0x255D, 0xA861,
+ 0x255E, 0xA862,
+ 0x255F, 0xA863,
+ 0x2560, 0xA864,
+ 0x2561, 0xA865,
+ 0x2562, 0xA866,
+ 0x2563, 0xA867,
+ 0x2564, 0xA868,
+ 0x2565, 0xA869,
+ 0x2566, 0xA86A,
+ 0x2567, 0xA86B,
+ 0x2568, 0xA86C,
+ 0x2569, 0xA86D,
+ 0x256A, 0xA86E,
+ 0x256B, 0xA86F,
+ 0x256C, 0xA870,
+ 0x256D, 0xA871,
+ 0x256E, 0xA872,
+ 0x256F, 0xA873,
+ 0x2570, 0xA874,
+ 0x2571, 0xA875,
+ 0x2572, 0xA876,
+ 0x2573, 0xA877,
+ 0x2581, 0xA878,
+ 0x2582, 0xA879,
+ 0x2583, 0xA87A,
+ 0x2584, 0xA87B,
+ 0x2585, 0xA87C,
+ 0x2586, 0xA87D,
+ 0x2587, 0xA87E,
+ 0x2588, 0xA880,
+ 0x2589, 0xA881,
+ 0x258A, 0xA882,
+ 0x258B, 0xA883,
+ 0x258C, 0xA884,
+ 0x258D, 0xA885,
+ 0x258E, 0xA886,
+ 0x258F, 0xA887,
+ 0x2593, 0xA888,
+ 0x2594, 0xA889,
+ 0x2595, 0xA88A,
+ 0x25BC, 0xA88B,
+ 0x25BD, 0xA88C,
+ 0x25E2, 0xA88D,
+ 0x25E3, 0xA88E,
+ 0x25E4, 0xA88F,
+ 0x25E5, 0xA890,
+ 0x2609, 0xA891,
+ 0x2E81, 0xFE50,
+ 0x2E84, 0xFE54,
+ 0x2E88, 0xFE57,
+ 0x2E8B, 0xFE58,
+ 0x2E8C, 0xFE5D,
+ 0x2E97, 0xFE5E,
+ 0x2EA7, 0xFE6B,
+ 0x2EAA, 0xFE6E,
+ 0x2EAE, 0xFE71,
+ 0x2EB3, 0xFE73,
+ 0x2EB6, 0xFE74,
+ 0x2EB7, 0xFE75,
+ 0x2EBB, 0xFE79,
+ 0x2ECA, 0xFE84,
+ 0x2FF0, 0xA98A,
+ 0x2FF1, 0xA98B,
+ 0x2FF2, 0xA98C,
+ 0x2FF3, 0xA98D,
+ 0x2FF4, 0xA98E,
+ 0x2FF5, 0xA98F,
+ 0x2FF6, 0xA990,
+ 0x2FF7, 0xA991,
+ 0x2FF8, 0xA992,
+ 0x2FF9, 0xA993,
+ 0x2FFA, 0xA994,
+ 0x2FFB, 0xA995,
+ 0x3006, 0xA965,
+ 0x3007, 0xA996,
+ 0x3012, 0xA893,
+ 0x301D, 0xA894,
+ 0x301E, 0xA895,
+ 0x3021, 0xA940,
+ 0x3022, 0xA941,
+ 0x3023, 0xA942,
+ 0x3024, 0xA943,
+ 0x3025, 0xA944,
+ 0x3026, 0xA945,
+ 0x3027, 0xA946,
+ 0x3028, 0xA947,
+ 0x3029, 0xA948,
+ 0x303E, 0xA989,
+ 0x309B, 0xA961,
+ 0x309C, 0xA962,
+ 0x309D, 0xA966,
+ 0x309E, 0xA967,
+ 0x30FC, 0xA960,
+ 0x30FD, 0xA963,
+ 0x30FE, 0xA964,
+ 0x3231, 0xA95A,
+ 0x32A3, 0xA949,
+ 0x338E, 0xA94A,
+ 0x338F, 0xA94B,
+ 0x339C, 0xA94C,
+ 0x339D, 0xA94D,
+ 0x339E, 0xA94E,
+ 0x33A1, 0xA94F,
+ 0x33C4, 0xA950,
+ 0x33CE, 0xA951,
+ 0x33D1, 0xA952,
+ 0x33D2, 0xA953,
+ 0x33D5, 0xA954,
+ 0x3447, 0xFE56,
+ 0x3473, 0xFE55,
+ 0x359E, 0xFE5A,
+ 0x360E, 0xFE5C,
+ 0x361A, 0xFE5B,
+ 0x3918, 0xFE60,
+ 0x396E, 0xFE5F,
+ 0x39CF, 0xFE62,
+ 0x39D0, 0xFE65,
+ 0x39DF, 0xFE63,
+ 0x3A73, 0xFE64,
+ 0x3B4E, 0xFE68,
+ 0x3C6E, 0xFE69,
+ 0x3CE0, 0xFE6A,
+ 0x4056, 0xFE6F,
+ 0x415F, 0xFE70,
+ 0x4337, 0xFE72,
+ 0x43AC, 0xFE78,
+ 0x43B1, 0xFE77,
+ 0x43DD, 0xFE7A,
+ 0x44D6, 0xFE7B,
+ 0x464C, 0xFE7D,
+ 0x4661, 0xFE7C,
+ 0x4723, 0xFE80,
+ 0x4729, 0xFE81,
+ 0x477C, 0xFE82,
+ 0x478D, 0xFE83,
+ 0x4947, 0xFE85,
+ 0x497A, 0xFE86,
+ 0x497D, 0xFE87,
+ 0x4982, 0xFE88,
+ 0x4983, 0xFE89,
+ 0x4985, 0xFE8A,
+ 0x4986, 0xFE8B,
+ 0x499B, 0xFE8D,
+ 0x499F, 0xFE8C,
+ 0x49B6, 0xFE8F,
+ 0x49B7, 0xFE8E,
+ 0x4C77, 0xFE96,
+ 0x4C9F, 0xFE93,
+ 0x4CA0, 0xFE94,
+ 0x4CA1, 0xFE95,
+ 0x4CA2, 0xFE97,
+ 0x4CA3, 0xFE92,
+ 0x4D13, 0xFE98,
+ 0x4D14, 0xFE99,
+ 0x4D15, 0xFE9A,
+ 0x4D16, 0xFE9B,
+ 0x4D17, 0xFE9C,
+ 0x4D18, 0xFE9D,
+ 0x4D19, 0xFE9E,
+ 0x4DAE, 0xFE9F,
+ 0x4E02, 0x8140,
+ 0x4E04, 0x8141,
+ 0x4E05, 0x8142,
+ 0x4E06, 0x8143,
+ 0x4E0F, 0x8144,
+ 0x4E12, 0x8145,
+ 0x4E17, 0x8146,
+ 0x4E1F, 0x8147,
+ 0x4E20, 0x8148,
+ 0x4E21, 0x8149,
+ 0x4E23, 0x814A,
+ 0x4E26, 0x814B,
+ 0x4E29, 0x814C,
+ 0x4E2E, 0x814D,
+ 0x4E2F, 0x814E,
+ 0x4E31, 0x814F,
+ 0x4E33, 0x8150,
+ 0x4E35, 0x8151,
+ 0x4E37, 0x8152,
+ 0x4E3C, 0x8153,
+ 0x4E40, 0x8154,
+ 0x4E41, 0x8155,
+ 0x4E42, 0x8156,
+ 0x4E44, 0x8157,
+ 0x4E46, 0x8158,
+ 0x4E4A, 0x8159,
+ 0x4E51, 0x815A,
+ 0x4E55, 0x815B,
+ 0x4E57, 0x815C,
+ 0x4E5A, 0x815D,
+ 0x4E5B, 0x815E,
+ 0x4E62, 0x815F,
+ 0x4E63, 0x8160,
+ 0x4E64, 0x8161,
+ 0x4E65, 0x8162,
+ 0x4E67, 0x8163,
+ 0x4E68, 0x8164,
+ 0x4E6A, 0x8165,
+ 0x4E6B, 0x8166,
+ 0x4E6C, 0x8167,
+ 0x4E6D, 0x8168,
+ 0x4E6E, 0x8169,
+ 0x4E6F, 0x816A,
+ 0x4E72, 0x816B,
+ 0x4E74, 0x816C,
+ 0x4E75, 0x816D,
+ 0x4E76, 0x816E,
+ 0x4E77, 0x816F,
+ 0x4E78, 0x8170,
+ 0x4E79, 0x8171,
+ 0x4E7A, 0x8172,
+ 0x4E7B, 0x8173,
+ 0x4E7C, 0x8174,
+ 0x4E7D, 0x8175,
+ 0x4E7F, 0x8176,
+ 0x4E80, 0x8177,
+ 0x4E81, 0x8178,
+ 0x4E82, 0x8179,
+ 0x4E83, 0x817A,
+ 0x4E84, 0x817B,
+ 0x4E85, 0x817C,
+ 0x4E87, 0x817D,
+ 0x4E8A, 0x817E,
+ 0x4E90, 0x8180,
+ 0x4E96, 0x8181,
+ 0x4E97, 0x8182,
+ 0x4E99, 0x8183,
+ 0x4E9C, 0x8184,
+ 0x4E9D, 0x8185,
+ 0x4E9E, 0x8186,
+ 0x4EA3, 0x8187,
+ 0x4EAA, 0x8188,
+ 0x4EAF, 0x8189,
+ 0x4EB0, 0x818A,
+ 0x4EB1, 0x818B,
+ 0x4EB4, 0x818C,
+ 0x4EB6, 0x818D,
+ 0x4EB7, 0x818E,
+ 0x4EB8, 0x818F,
+ 0x4EB9, 0x8190,
+ 0x4EBC, 0x8191,
+ 0x4EBD, 0x8192,
+ 0x4EBE, 0x8193,
+ 0x4EC8, 0x8194,
+ 0x4ECC, 0x8195,
+ 0x4ECF, 0x8196,
+ 0x4ED0, 0x8197,
+ 0x4ED2, 0x8198,
+ 0x4EDA, 0x8199,
+ 0x4EDB, 0x819A,
+ 0x4EDC, 0x819B,
+ 0x4EE0, 0x819C,
+ 0x4EE2, 0x819D,
+ 0x4EE6, 0x819E,
+ 0x4EE7, 0x819F,
+ 0x4EE9, 0x81A0,
+ 0x4EED, 0x81A1,
+ 0x4EEE, 0x81A2,
+ 0x4EEF, 0x81A3,
+ 0x4EF1, 0x81A4,
+ 0x4EF4, 0x81A5,
+ 0x4EF8, 0x81A6,
+ 0x4EF9, 0x81A7,
+ 0x4EFA, 0x81A8,
+ 0x4EFC, 0x81A9,
+ 0x4EFE, 0x81AA,
+ 0x4F00, 0x81AB,
+ 0x4F02, 0x81AC,
+ 0x4F03, 0x81AD,
+ 0x4F04, 0x81AE,
+ 0x4F05, 0x81AF,
+ 0x4F06, 0x81B0,
+ 0x4F07, 0x81B1,
+ 0x4F08, 0x81B2,
+ 0x4F0B, 0x81B3,
+ 0x4F0C, 0x81B4,
+ 0x4F12, 0x81B5,
+ 0x4F13, 0x81B6,
+ 0x4F14, 0x81B7,
+ 0x4F15, 0x81B8,
+ 0x4F16, 0x81B9,
+ 0x4F1C, 0x81BA,
+ 0x4F1D, 0x81BB,
+ 0x4F21, 0x81BC,
+ 0x4F23, 0x81BD,
+ 0x4F28, 0x81BE,
+ 0x4F29, 0x81BF,
+ 0x4F2C, 0x81C0,
+ 0x4F2D, 0x81C1,
+ 0x4F2E, 0x81C2,
+ 0x4F31, 0x81C3,
+ 0x4F33, 0x81C4,
+ 0x4F35, 0x81C5,
+ 0x4F37, 0x81C6,
+ 0x4F39, 0x81C7,
+ 0x4F3B, 0x81C8,
+ 0x4F3E, 0x81C9,
+ 0x4F3F, 0x81CA,
+ 0x4F40, 0x81CB,
+ 0x4F41, 0x81CC,
+ 0x4F42, 0x81CD,
+ 0x4F44, 0x81CE,
+ 0x4F45, 0x81CF,
+ 0x4F47, 0x81D0,
+ 0x4F48, 0x81D1,
+ 0x4F49, 0x81D2,
+ 0x4F4A, 0x81D3,
+ 0x4F4B, 0x81D4,
+ 0x4F4C, 0x81D5,
+ 0x4F52, 0x81D6,
+ 0x4F54, 0x81D7,
+ 0x4F56, 0x81D8,
+ 0x4F61, 0x81D9,
+ 0x4F62, 0x81DA,
+ 0x4F66, 0x81DB,
+ 0x4F68, 0x81DC,
+ 0x4F6A, 0x81DD,
+ 0x4F6B, 0x81DE,
+ 0x4F6D, 0x81DF,
+ 0x4F6E, 0x81E0,
+ 0x4F71, 0x81E1,
+ 0x4F72, 0x81E2,
+ 0x4F75, 0x81E3,
+ 0x4F77, 0x81E4,
+ 0x4F78, 0x81E5,
+ 0x4F79, 0x81E6,
+ 0x4F7A, 0x81E7,
+ 0x4F7D, 0x81E8,
+ 0x4F80, 0x81E9,
+ 0x4F81, 0x81EA,
+ 0x4F82, 0x81EB,
+ 0x4F85, 0x81EC,
+ 0x4F86, 0x81ED,
+ 0x4F87, 0x81EE,
+ 0x4F8A, 0x81EF,
+ 0x4F8C, 0x81F0,
+ 0x4F8E, 0x81F1,
+ 0x4F90, 0x81F2,
+ 0x4F92, 0x81F3,
+ 0x4F93, 0x81F4,
+ 0x4F95, 0x81F5,
+ 0x4F96, 0x81F6,
+ 0x4F98, 0x81F7,
+ 0x4F99, 0x81F8,
+ 0x4F9A, 0x81F9,
+ 0x4F9C, 0x81FA,
+ 0x4F9E, 0x81FB,
+ 0x4F9F, 0x81FC,
+ 0x4FA1, 0x81FD,
+ 0x4FA2, 0x81FE,
+ 0x4FA4, 0x8240,
+ 0x4FAB, 0x8241,
+ 0x4FAD, 0x8242,
+ 0x4FB0, 0x8243,
+ 0x4FB1, 0x8244,
+ 0x4FB2, 0x8245,
+ 0x4FB3, 0x8246,
+ 0x4FB4, 0x8247,
+ 0x4FB6, 0x8248,
+ 0x4FB7, 0x8249,
+ 0x4FB8, 0x824A,
+ 0x4FB9, 0x824B,
+ 0x4FBA, 0x824C,
+ 0x4FBB, 0x824D,
+ 0x4FBC, 0x824E,
+ 0x4FBD, 0x824F,
+ 0x4FBE, 0x8250,
+ 0x4FC0, 0x8251,
+ 0x4FC1, 0x8252,
+ 0x4FC2, 0x8253,
+ 0x4FC6, 0x8254,
+ 0x4FC7, 0x8255,
+ 0x4FC8, 0x8256,
+ 0x4FC9, 0x8257,
+ 0x4FCB, 0x8258,
+ 0x4FCC, 0x8259,
+ 0x4FCD, 0x825A,
+ 0x4FD2, 0x825B,
+ 0x4FD3, 0x825C,
+ 0x4FD4, 0x825D,
+ 0x4FD5, 0x825E,
+ 0x4FD6, 0x825F,
+ 0x4FD9, 0x8260,
+ 0x4FDB, 0x8261,
+ 0x4FE0, 0x8262,
+ 0x4FE2, 0x8263,
+ 0x4FE4, 0x8264,
+ 0x4FE5, 0x8265,
+ 0x4FE7, 0x8266,
+ 0x4FEB, 0x8267,
+ 0x4FEC, 0x8268,
+ 0x4FF0, 0x8269,
+ 0x4FF2, 0x826A,
+ 0x4FF4, 0x826B,
+ 0x4FF5, 0x826C,
+ 0x4FF6, 0x826D,
+ 0x4FF7, 0x826E,
+ 0x4FF9, 0x826F,
+ 0x4FFB, 0x8270,
+ 0x4FFC, 0x8271,
+ 0x4FFD, 0x8272,
+ 0x4FFF, 0x8273,
+ 0x5000, 0x8274,
+ 0x5001, 0x8275,
+ 0x5002, 0x8276,
+ 0x5003, 0x8277,
+ 0x5004, 0x8278,
+ 0x5005, 0x8279,
+ 0x5006, 0x827A,
+ 0x5007, 0x827B,
+ 0x5008, 0x827C,
+ 0x5009, 0x827D,
+ 0x500A, 0x827E,
+ 0x500B, 0x8280,
+ 0x500E, 0x8281,
+ 0x5010, 0x8282,
+ 0x5011, 0x8283,
+ 0x5013, 0x8284,
+ 0x5015, 0x8285,
+ 0x5016, 0x8286,
+ 0x5017, 0x8287,
+ 0x501B, 0x8288,
+ 0x501D, 0x8289,
+ 0x501E, 0x828A,
+ 0x5020, 0x828B,
+ 0x5022, 0x828C,
+ 0x5023, 0x828D,
+ 0x5024, 0x828E,
+ 0x5027, 0x828F,
+ 0x502B, 0x8290,
+ 0x502F, 0x8291,
+ 0x5030, 0x8292,
+ 0x5031, 0x8293,
+ 0x5032, 0x8294,
+ 0x5033, 0x8295,
+ 0x5034, 0x8296,
+ 0x5035, 0x8297,
+ 0x5036, 0x8298,
+ 0x5037, 0x8299,
+ 0x5038, 0x829A,
+ 0x5039, 0x829B,
+ 0x503B, 0x829C,
+ 0x503D, 0x829D,
+ 0x503F, 0x829E,
+ 0x5040, 0x829F,
+ 0x5041, 0x82A0,
+ 0x5042, 0x82A1,
+ 0x5044, 0x82A2,
+ 0x5045, 0x82A3,
+ 0x5046, 0x82A4,
+ 0x5049, 0x82A5,
+ 0x504A, 0x82A6,
+ 0x504B, 0x82A7,
+ 0x504D, 0x82A8,
+ 0x5050, 0x82A9,
+ 0x5051, 0x82AA,
+ 0x5052, 0x82AB,
+ 0x5053, 0x82AC,
+ 0x5054, 0x82AD,
+ 0x5056, 0x82AE,
+ 0x5057, 0x82AF,
+ 0x5058, 0x82B0,
+ 0x5059, 0x82B1,
+ 0x505B, 0x82B2,
+ 0x505D, 0x82B3,
+ 0x505E, 0x82B4,
+ 0x505F, 0x82B5,
+ 0x5060, 0x82B6,
+ 0x5061, 0x82B7,
+ 0x5062, 0x82B8,
+ 0x5063, 0x82B9,
+ 0x5064, 0x82BA,
+ 0x5066, 0x82BB,
+ 0x5067, 0x82BC,
+ 0x5068, 0x82BD,
+ 0x5069, 0x82BE,
+ 0x506A, 0x82BF,
+ 0x506B, 0x82C0,
+ 0x506D, 0x82C1,
+ 0x506E, 0x82C2,
+ 0x506F, 0x82C3,
+ 0x5070, 0x82C4,
+ 0x5071, 0x82C5,
+ 0x5072, 0x82C6,
+ 0x5073, 0x82C7,
+ 0x5074, 0x82C8,
+ 0x5075, 0x82C9,
+ 0x5078, 0x82CA,
+ 0x5079, 0x82CB,
+ 0x507A, 0x82CC,
+ 0x507C, 0x82CD,
+ 0x507D, 0x82CE,
+ 0x5081, 0x82CF,
+ 0x5082, 0x82D0,
+ 0x5083, 0x82D1,
+ 0x5084, 0x82D2,
+ 0x5086, 0x82D3,
+ 0x5087, 0x82D4,
+ 0x5089, 0x82D5,
+ 0x508A, 0x82D6,
+ 0x508B, 0x82D7,
+ 0x508C, 0x82D8,
+ 0x508E, 0x82D9,
+ 0x508F, 0x82DA,
+ 0x5090, 0x82DB,
+ 0x5091, 0x82DC,
+ 0x5092, 0x82DD,
+ 0x5093, 0x82DE,
+ 0x5094, 0x82DF,
+ 0x5095, 0x82E0,
+ 0x5096, 0x82E1,
+ 0x5097, 0x82E2,
+ 0x5098, 0x82E3,
+ 0x5099, 0x82E4,
+ 0x509A, 0x82E5,
+ 0x509B, 0x82E6,
+ 0x509C, 0x82E7,
+ 0x509D, 0x82E8,
+ 0x509E, 0x82E9,
+ 0x509F, 0x82EA,
+ 0x50A0, 0x82EB,
+ 0x50A1, 0x82EC,
+ 0x50A2, 0x82ED,
+ 0x50A4, 0x82EE,
+ 0x50A6, 0x82EF,
+ 0x50AA, 0x82F0,
+ 0x50AB, 0x82F1,
+ 0x50AD, 0x82F2,
+ 0x50AE, 0x82F3,
+ 0x50AF, 0x82F4,
+ 0x50B0, 0x82F5,
+ 0x50B1, 0x82F6,
+ 0x50B3, 0x82F7,
+ 0x50B4, 0x82F8,
+ 0x50B5, 0x82F9,
+ 0x50B6, 0x82FA,
+ 0x50B7, 0x82FB,
+ 0x50B8, 0x82FC,
+ 0x50B9, 0x82FD,
+ 0x50BC, 0x82FE,
+ 0x50BD, 0x8340,
+ 0x50BE, 0x8341,
+ 0x50BF, 0x8342,
+ 0x50C0, 0x8343,
+ 0x50C1, 0x8344,
+ 0x50C2, 0x8345,
+ 0x50C3, 0x8346,
+ 0x50C4, 0x8347,
+ 0x50C5, 0x8348,
+ 0x50C6, 0x8349,
+ 0x50C7, 0x834A,
+ 0x50C8, 0x834B,
+ 0x50C9, 0x834C,
+ 0x50CA, 0x834D,
+ 0x50CB, 0x834E,
+ 0x50CC, 0x834F,
+ 0x50CD, 0x8350,
+ 0x50CE, 0x8351,
+ 0x50D0, 0x8352,
+ 0x50D1, 0x8353,
+ 0x50D2, 0x8354,
+ 0x50D3, 0x8355,
+ 0x50D4, 0x8356,
+ 0x50D5, 0x8357,
+ 0x50D7, 0x8358,
+ 0x50D8, 0x8359,
+ 0x50D9, 0x835A,
+ 0x50DB, 0x835B,
+ 0x50DC, 0x835C,
+ 0x50DD, 0x835D,
+ 0x50DE, 0x835E,
+ 0x50DF, 0x835F,
+ 0x50E0, 0x8360,
+ 0x50E1, 0x8361,
+ 0x50E2, 0x8362,
+ 0x50E3, 0x8363,
+ 0x50E4, 0x8364,
+ 0x50E5, 0x8365,
+ 0x50E8, 0x8366,
+ 0x50E9, 0x8367,
+ 0x50EA, 0x8368,
+ 0x50EB, 0x8369,
+ 0x50EF, 0x836A,
+ 0x50F0, 0x836B,
+ 0x50F1, 0x836C,
+ 0x50F2, 0x836D,
+ 0x50F4, 0x836E,
+ 0x50F6, 0x836F,
+ 0x50F7, 0x8370,
+ 0x50F8, 0x8371,
+ 0x50F9, 0x8372,
+ 0x50FA, 0x8373,
+ 0x50FC, 0x8374,
+ 0x50FD, 0x8375,
+ 0x50FE, 0x8376,
+ 0x50FF, 0x8377,
+ 0x5100, 0x8378,
+ 0x5101, 0x8379,
+ 0x5102, 0x837A,
+ 0x5103, 0x837B,
+ 0x5104, 0x837C,
+ 0x5105, 0x837D,
+ 0x5108, 0x837E,
+ 0x5109, 0x8380,
+ 0x510A, 0x8381,
+ 0x510C, 0x8382,
+ 0x510D, 0x8383,
+ 0x510E, 0x8384,
+ 0x510F, 0x8385,
+ 0x5110, 0x8386,
+ 0x5111, 0x8387,
+ 0x5113, 0x8388,
+ 0x5114, 0x8389,
+ 0x5115, 0x838A,
+ 0x5116, 0x838B,
+ 0x5117, 0x838C,
+ 0x5118, 0x838D,
+ 0x5119, 0x838E,
+ 0x511A, 0x838F,
+ 0x511B, 0x8390,
+ 0x511C, 0x8391,
+ 0x511D, 0x8392,
+ 0x511E, 0x8393,
+ 0x511F, 0x8394,
+ 0x5120, 0x8395,
+ 0x5122, 0x8396,
+ 0x5123, 0x8397,
+ 0x5124, 0x8398,
+ 0x5125, 0x8399,
+ 0x5126, 0x839A,
+ 0x5127, 0x839B,
+ 0x5128, 0x839C,
+ 0x5129, 0x839D,
+ 0x512A, 0x839E,
+ 0x512B, 0x839F,
+ 0x512C, 0x83A0,
+ 0x512D, 0x83A1,
+ 0x512E, 0x83A2,
+ 0x512F, 0x83A3,
+ 0x5130, 0x83A4,
+ 0x5131, 0x83A5,
+ 0x5132, 0x83A6,
+ 0x5133, 0x83A7,
+ 0x5134, 0x83A8,
+ 0x5135, 0x83A9,
+ 0x5136, 0x83AA,
+ 0x5137, 0x83AB,
+ 0x5138, 0x83AC,
+ 0x5139, 0x83AD,
+ 0x513A, 0x83AE,
+ 0x513B, 0x83AF,
+ 0x513C, 0x83B0,
+ 0x513D, 0x83B1,
+ 0x513E, 0x83B2,
+ 0x5142, 0x83B3,
+ 0x5147, 0x83B4,
+ 0x514A, 0x83B5,
+ 0x514C, 0x83B6,
+ 0x514E, 0x83B7,
+ 0x514F, 0x83B8,
+ 0x5150, 0x83B9,
+ 0x5152, 0x83BA,
+ 0x5153, 0x83BB,
+ 0x5157, 0x83BC,
+ 0x5158, 0x83BD,
+ 0x5159, 0x83BE,
+ 0x515B, 0x83BF,
+ 0x515D, 0x83C0,
+ 0x515E, 0x83C1,
+ 0x515F, 0x83C2,
+ 0x5160, 0x83C3,
+ 0x5161, 0x83C4,
+ 0x5163, 0x83C5,
+ 0x5164, 0x83C6,
+ 0x5166, 0x83C7,
+ 0x5167, 0x83C8,
+ 0x5169, 0x83C9,
+ 0x516A, 0x83CA,
+ 0x516F, 0x83CB,
+ 0x5172, 0x83CC,
+ 0x517A, 0x83CD,
+ 0x517E, 0x83CE,
+ 0x517F, 0x83CF,
+ 0x5183, 0x83D0,
+ 0x5184, 0x83D1,
+ 0x5186, 0x83D2,
+ 0x5187, 0x83D3,
+ 0x518A, 0x83D4,
+ 0x518B, 0x83D5,
+ 0x518E, 0x83D6,
+ 0x518F, 0x83D7,
+ 0x5190, 0x83D8,
+ 0x5191, 0x83D9,
+ 0x5193, 0x83DA,
+ 0x5194, 0x83DB,
+ 0x5198, 0x83DC,
+ 0x519A, 0x83DD,
+ 0x519D, 0x83DE,
+ 0x519E, 0x83DF,
+ 0x519F, 0x83E0,
+ 0x51A1, 0x83E1,
+ 0x51A3, 0x83E2,
+ 0x51A6, 0x83E3,
+ 0x51A7, 0x83E4,
+ 0x51A8, 0x83E5,
+ 0x51A9, 0x83E6,
+ 0x51AA, 0x83E7,
+ 0x51AD, 0x83E8,
+ 0x51AE, 0x83E9,
+ 0x51B4, 0x83EA,
+ 0x51B8, 0x83EB,
+ 0x51B9, 0x83EC,
+ 0x51BA, 0x83ED,
+ 0x51BE, 0x83EE,
+ 0x51BF, 0x83EF,
+ 0x51C1, 0x83F0,
+ 0x51C2, 0x83F1,
+ 0x51C3, 0x83F2,
+ 0x51C5, 0x83F3,
+ 0x51C8, 0x83F4,
+ 0x51CA, 0x83F5,
+ 0x51CD, 0x83F6,
+ 0x51CE, 0x83F7,
+ 0x51D0, 0x83F8,
+ 0x51D2, 0x83F9,
+ 0x51D3, 0x83FA,
+ 0x51D4, 0x83FB,
+ 0x51D5, 0x83FC,
+ 0x51D6, 0x83FD,
+ 0x51D7, 0x83FE,
+ 0x51D8, 0x8440,
+ 0x51D9, 0x8441,
+ 0x51DA, 0x8442,
+ 0x51DC, 0x8443,
+ 0x51DE, 0x8444,
+ 0x51DF, 0x8445,
+ 0x51E2, 0x8446,
+ 0x51E3, 0x8447,
+ 0x51E5, 0x8448,
+ 0x51E6, 0x8449,
+ 0x51E7, 0x844A,
+ 0x51E8, 0x844B,
+ 0x51E9, 0x844C,
+ 0x51EA, 0x844D,
+ 0x51EC, 0x844E,
+ 0x51EE, 0x844F,
+ 0x51F1, 0x8450,
+ 0x51F2, 0x8451,
+ 0x51F4, 0x8452,
+ 0x51F7, 0x8453,
+ 0x51FE, 0x8454,
+ 0x5204, 0x8455,
+ 0x5205, 0x8456,
+ 0x5209, 0x8457,
+ 0x520B, 0x8458,
+ 0x520C, 0x8459,
+ 0x520F, 0x845A,
+ 0x5210, 0x845B,
+ 0x5213, 0x845C,
+ 0x5214, 0x845D,
+ 0x5215, 0x845E,
+ 0x521C, 0x845F,
+ 0x521E, 0x8460,
+ 0x521F, 0x8461,
+ 0x5221, 0x8462,
+ 0x5222, 0x8463,
+ 0x5223, 0x8464,
+ 0x5225, 0x8465,
+ 0x5226, 0x8466,
+ 0x5227, 0x8467,
+ 0x522A, 0x8468,
+ 0x522C, 0x8469,
+ 0x522F, 0x846A,
+ 0x5231, 0x846B,
+ 0x5232, 0x846C,
+ 0x5234, 0x846D,
+ 0x5235, 0x846E,
+ 0x523C, 0x846F,
+ 0x523E, 0x8470,
+ 0x5244, 0x8471,
+ 0x5245, 0x8472,
+ 0x5246, 0x8473,
+ 0x5247, 0x8474,
+ 0x5248, 0x8475,
+ 0x5249, 0x8476,
+ 0x524B, 0x8477,
+ 0x524E, 0x8478,
+ 0x524F, 0x8479,
+ 0x5252, 0x847A,
+ 0x5253, 0x847B,
+ 0x5255, 0x847C,
+ 0x5257, 0x847D,
+ 0x5258, 0x847E,
+ 0x5259, 0x8480,
+ 0x525A, 0x8481,
+ 0x525B, 0x8482,
+ 0x525D, 0x8483,
+ 0x525F, 0x8484,
+ 0x5260, 0x8485,
+ 0x5262, 0x8486,
+ 0x5263, 0x8487,
+ 0x5264, 0x8488,
+ 0x5266, 0x8489,
+ 0x5268, 0x848A,
+ 0x526B, 0x848B,
+ 0x526C, 0x848C,
+ 0x526D, 0x848D,
+ 0x526E, 0x848E,
+ 0x5270, 0x848F,
+ 0x5271, 0x8490,
+ 0x5273, 0x8491,
+ 0x5274, 0x8492,
+ 0x5275, 0x8493,
+ 0x5276, 0x8494,
+ 0x5277, 0x8495,
+ 0x5278, 0x8496,
+ 0x5279, 0x8497,
+ 0x527A, 0x8498,
+ 0x527B, 0x8499,
+ 0x527C, 0x849A,
+ 0x527E, 0x849B,
+ 0x5280, 0x849C,
+ 0x5283, 0x849D,
+ 0x5284, 0x849E,
+ 0x5285, 0x849F,
+ 0x5286, 0x84A0,
+ 0x5287, 0x84A1,
+ 0x5289, 0x84A2,
+ 0x528A, 0x84A3,
+ 0x528B, 0x84A4,
+ 0x528C, 0x84A5,
+ 0x528D, 0x84A6,
+ 0x528E, 0x84A7,
+ 0x528F, 0x84A8,
+ 0x5291, 0x84A9,
+ 0x5292, 0x84AA,
+ 0x5294, 0x84AB,
+ 0x5295, 0x84AC,
+ 0x5296, 0x84AD,
+ 0x5297, 0x84AE,
+ 0x5298, 0x84AF,
+ 0x5299, 0x84B0,
+ 0x529A, 0x84B1,
+ 0x529C, 0x84B2,
+ 0x52A4, 0x84B3,
+ 0x52A5, 0x84B4,
+ 0x52A6, 0x84B5,
+ 0x52A7, 0x84B6,
+ 0x52AE, 0x84B7,
+ 0x52AF, 0x84B8,
+ 0x52B0, 0x84B9,
+ 0x52B4, 0x84BA,
+ 0x52B5, 0x84BB,
+ 0x52B6, 0x84BC,
+ 0x52B7, 0x84BD,
+ 0x52B8, 0x84BE,
+ 0x52B9, 0x84BF,
+ 0x52BA, 0x84C0,
+ 0x52BB, 0x84C1,
+ 0x52BC, 0x84C2,
+ 0x52BD, 0x84C3,
+ 0x52C0, 0x84C4,
+ 0x52C1, 0x84C5,
+ 0x52C2, 0x84C6,
+ 0x52C4, 0x84C7,
+ 0x52C5, 0x84C8,
+ 0x52C6, 0x84C9,
+ 0x52C8, 0x84CA,
+ 0x52CA, 0x84CB,
+ 0x52CC, 0x84CC,
+ 0x52CD, 0x84CD,
+ 0x52CE, 0x84CE,
+ 0x52CF, 0x84CF,
+ 0x52D1, 0x84D0,
+ 0x52D3, 0x84D1,
+ 0x52D4, 0x84D2,
+ 0x52D5, 0x84D3,
+ 0x52D7, 0x84D4,
+ 0x52D9, 0x84D5,
+ 0x52DA, 0x84D6,
+ 0x52DB, 0x84D7,
+ 0x52DC, 0x84D8,
+ 0x52DD, 0x84D9,
+ 0x52DE, 0x84DA,
+ 0x52E0, 0x84DB,
+ 0x52E1, 0x84DC,
+ 0x52E2, 0x84DD,
+ 0x52E3, 0x84DE,
+ 0x52E5, 0x84DF,
+ 0x52E6, 0x84E0,
+ 0x52E7, 0x84E1,
+ 0x52E8, 0x84E2,
+ 0x52E9, 0x84E3,
+ 0x52EA, 0x84E4,
+ 0x52EB, 0x84E5,
+ 0x52EC, 0x84E6,
+ 0x52ED, 0x84E7,
+ 0x52EE, 0x84E8,
+ 0x52EF, 0x84E9,
+ 0x52F1, 0x84EA,
+ 0x52F2, 0x84EB,
+ 0x52F3, 0x84EC,
+ 0x52F4, 0x84ED,
+ 0x52F5, 0x84EE,
+ 0x52F6, 0x84EF,
+ 0x52F7, 0x84F0,
+ 0x52F8, 0x84F1,
+ 0x52FB, 0x84F2,
+ 0x52FC, 0x84F3,
+ 0x52FD, 0x84F4,
+ 0x5301, 0x84F5,
+ 0x5302, 0x84F6,
+ 0x5303, 0x84F7,
+ 0x5304, 0x84F8,
+ 0x5307, 0x84F9,
+ 0x5309, 0x84FA,
+ 0x530A, 0x84FB,
+ 0x530B, 0x84FC,
+ 0x530C, 0x84FD,
+ 0x530E, 0x84FE,
+ 0x5311, 0x8540,
+ 0x5312, 0x8541,
+ 0x5313, 0x8542,
+ 0x5314, 0x8543,
+ 0x5318, 0x8544,
+ 0x531B, 0x8545,
+ 0x531C, 0x8546,
+ 0x531E, 0x8547,
+ 0x531F, 0x8548,
+ 0x5322, 0x8549,
+ 0x5324, 0x854A,
+ 0x5325, 0x854B,
+ 0x5327, 0x854C,
+ 0x5328, 0x854D,
+ 0x5329, 0x854E,
+ 0x532B, 0x854F,
+ 0x532C, 0x8550,
+ 0x532D, 0x8551,
+ 0x532F, 0x8552,
+ 0x5330, 0x8553,
+ 0x5331, 0x8554,
+ 0x5332, 0x8555,
+ 0x5333, 0x8556,
+ 0x5334, 0x8557,
+ 0x5335, 0x8558,
+ 0x5336, 0x8559,
+ 0x5337, 0x855A,
+ 0x5338, 0x855B,
+ 0x533C, 0x855C,
+ 0x533D, 0x855D,
+ 0x5340, 0x855E,
+ 0x5342, 0x855F,
+ 0x5344, 0x8560,
+ 0x5346, 0x8561,
+ 0x534B, 0x8562,
+ 0x534C, 0x8563,
+ 0x534D, 0x8564,
+ 0x5350, 0x8565,
+ 0x5354, 0x8566,
+ 0x5358, 0x8567,
+ 0x5359, 0x8568,
+ 0x535B, 0x8569,
+ 0x535D, 0x856A,
+ 0x5365, 0x856B,
+ 0x5368, 0x856C,
+ 0x536A, 0x856D,
+ 0x536C, 0x856E,
+ 0x536D, 0x856F,
+ 0x5372, 0x8570,
+ 0x5376, 0x8571,
+ 0x5379, 0x8572,
+ 0x537B, 0x8573,
+ 0x537C, 0x8574,
+ 0x537D, 0x8575,
+ 0x537E, 0x8576,
+ 0x5380, 0x8577,
+ 0x5381, 0x8578,
+ 0x5383, 0x8579,
+ 0x5387, 0x857A,
+ 0x5388, 0x857B,
+ 0x538A, 0x857C,
+ 0x538E, 0x857D,
+ 0x538F, 0x857E,
+ 0x5390, 0x8580,
+ 0x5391, 0x8581,
+ 0x5392, 0x8582,
+ 0x5393, 0x8583,
+ 0x5394, 0x8584,
+ 0x5396, 0x8585,
+ 0x5397, 0x8586,
+ 0x5399, 0x8587,
+ 0x539B, 0x8588,
+ 0x539C, 0x8589,
+ 0x539E, 0x858A,
+ 0x53A0, 0x858B,
+ 0x53A1, 0x858C,
+ 0x53A4, 0x858D,
+ 0x53A7, 0x858E,
+ 0x53AA, 0x858F,
+ 0x53AB, 0x8590,
+ 0x53AC, 0x8591,
+ 0x53AD, 0x8592,
+ 0x53AF, 0x8593,
+ 0x53B0, 0x8594,
+ 0x53B1, 0x8595,
+ 0x53B2, 0x8596,
+ 0x53B3, 0x8597,
+ 0x53B4, 0x8598,
+ 0x53B5, 0x8599,
+ 0x53B7, 0x859A,
+ 0x53B8, 0x859B,
+ 0x53B9, 0x859C,
+ 0x53BA, 0x859D,
+ 0x53BC, 0x859E,
+ 0x53BD, 0x859F,
+ 0x53BE, 0x85A0,
+ 0x53C0, 0x85A1,
+ 0x53C3, 0x85A2,
+ 0x53C4, 0x85A3,
+ 0x53C5, 0x85A4,
+ 0x53C6, 0x85A5,
+ 0x53C7, 0x85A6,
+ 0x53CE, 0x85A7,
+ 0x53CF, 0x85A8,
+ 0x53D0, 0x85A9,
+ 0x53D2, 0x85AA,
+ 0x53D3, 0x85AB,
+ 0x53D5, 0x85AC,
+ 0x53DA, 0x85AD,
+ 0x53DC, 0x85AE,
+ 0x53DD, 0x85AF,
+ 0x53DE, 0x85B0,
+ 0x53E1, 0x85B1,
+ 0x53E2, 0x85B2,
+ 0x53E7, 0x85B3,
+ 0x53F4, 0x85B4,
+ 0x53FA, 0x85B5,
+ 0x53FE, 0x85B6,
+ 0x53FF, 0x85B7,
+ 0x5400, 0x85B8,
+ 0x5402, 0x85B9,
+ 0x5405, 0x85BA,
+ 0x5407, 0x85BB,
+ 0x540B, 0x85BC,
+ 0x5414, 0x85BD,
+ 0x5418, 0x85BE,
+ 0x5419, 0x85BF,
+ 0x541A, 0x85C0,
+ 0x541C, 0x85C1,
+ 0x5422, 0x85C2,
+ 0x5424, 0x85C3,
+ 0x5425, 0x85C4,
+ 0x542A, 0x85C5,
+ 0x5430, 0x85C6,
+ 0x5433, 0x85C7,
+ 0x5436, 0x85C8,
+ 0x5437, 0x85C9,
+ 0x543A, 0x85CA,
+ 0x543D, 0x85CB,
+ 0x543F, 0x85CC,
+ 0x5441, 0x85CD,
+ 0x5442, 0x85CE,
+ 0x5444, 0x85CF,
+ 0x5445, 0x85D0,
+ 0x5447, 0x85D1,
+ 0x5449, 0x85D2,
+ 0x544C, 0x85D3,
+ 0x544D, 0x85D4,
+ 0x544E, 0x85D5,
+ 0x544F, 0x85D6,
+ 0x5451, 0x85D7,
+ 0x545A, 0x85D8,
+ 0x545D, 0x85D9,
+ 0x545E, 0x85DA,
+ 0x545F, 0x85DB,
+ 0x5460, 0x85DC,
+ 0x5461, 0x85DD,
+ 0x5463, 0x85DE,
+ 0x5465, 0x85DF,
+ 0x5467, 0x85E0,
+ 0x5469, 0x85E1,
+ 0x546A, 0x85E2,
+ 0x546B, 0x85E3,
+ 0x546C, 0x85E4,
+ 0x546D, 0x85E5,
+ 0x546E, 0x85E6,
+ 0x546F, 0x85E7,
+ 0x5470, 0x85E8,
+ 0x5474, 0x85E9,
+ 0x5479, 0x85EA,
+ 0x547A, 0x85EB,
+ 0x547E, 0x85EC,
+ 0x547F, 0x85ED,
+ 0x5481, 0x85EE,
+ 0x5483, 0x85EF,
+ 0x5485, 0x85F0,
+ 0x5487, 0x85F1,
+ 0x5488, 0x85F2,
+ 0x5489, 0x85F3,
+ 0x548A, 0x85F4,
+ 0x548D, 0x85F5,
+ 0x5491, 0x85F6,
+ 0x5493, 0x85F7,
+ 0x5497, 0x85F8,
+ 0x5498, 0x85F9,
+ 0x549C, 0x85FA,
+ 0x549E, 0x85FB,
+ 0x549F, 0x85FC,
+ 0x54A0, 0x85FD,
+ 0x54A1, 0x85FE,
+ 0x54A2, 0x8640,
+ 0x54A5, 0x8641,
+ 0x54AE, 0x8642,
+ 0x54B0, 0x8643,
+ 0x54B2, 0x8644,
+ 0x54B5, 0x8645,
+ 0x54B6, 0x8646,
+ 0x54B7, 0x8647,
+ 0x54B9, 0x8648,
+ 0x54BA, 0x8649,
+ 0x54BC, 0x864A,
+ 0x54BE, 0x864B,
+ 0x54C3, 0x864C,
+ 0x54C5, 0x864D,
+ 0x54CA, 0x864E,
+ 0x54CB, 0x864F,
+ 0x54D6, 0x8650,
+ 0x54D8, 0x8651,
+ 0x54DB, 0x8652,
+ 0x54E0, 0x8653,
+ 0x54E1, 0x8654,
+ 0x54E2, 0x8655,
+ 0x54E3, 0x8656,
+ 0x54E4, 0x8657,
+ 0x54EB, 0x8658,
+ 0x54EC, 0x8659,
+ 0x54EF, 0x865A,
+ 0x54F0, 0x865B,
+ 0x54F1, 0x865C,
+ 0x54F4, 0x865D,
+ 0x54F5, 0x865E,
+ 0x54F6, 0x865F,
+ 0x54F7, 0x8660,
+ 0x54F8, 0x8661,
+ 0x54F9, 0x8662,
+ 0x54FB, 0x8663,
+ 0x54FE, 0x8664,
+ 0x5500, 0x8665,
+ 0x5502, 0x8666,
+ 0x5503, 0x8667,
+ 0x5504, 0x8668,
+ 0x5505, 0x8669,
+ 0x5508, 0x866A,
+ 0x550A, 0x866B,
+ 0x550B, 0x866C,
+ 0x550C, 0x866D,
+ 0x550D, 0x866E,
+ 0x550E, 0x866F,
+ 0x5512, 0x8670,
+ 0x5513, 0x8671,
+ 0x5515, 0x8672,
+ 0x5516, 0x8673,
+ 0x5517, 0x8674,
+ 0x5518, 0x8675,
+ 0x5519, 0x8676,
+ 0x551A, 0x8677,
+ 0x551C, 0x8678,
+ 0x551D, 0x8679,
+ 0x551E, 0x867A,
+ 0x551F, 0x867B,
+ 0x5521, 0x867C,
+ 0x5525, 0x867D,
+ 0x5526, 0x867E,
+ 0x5528, 0x8680,
+ 0x5529, 0x8681,
+ 0x552B, 0x8682,
+ 0x552D, 0x8683,
+ 0x5532, 0x8684,
+ 0x5534, 0x8685,
+ 0x5535, 0x8686,
+ 0x5536, 0x8687,
+ 0x5538, 0x8688,
+ 0x5539, 0x8689,
+ 0x553A, 0x868A,
+ 0x553B, 0x868B,
+ 0x553D, 0x868C,
+ 0x5540, 0x868D,
+ 0x5542, 0x868E,
+ 0x5545, 0x868F,
+ 0x5547, 0x8690,
+ 0x5548, 0x8691,
+ 0x554B, 0x8692,
+ 0x554C, 0x8693,
+ 0x554D, 0x8694,
+ 0x554E, 0x8695,
+ 0x554F, 0x8696,
+ 0x5551, 0x8697,
+ 0x5552, 0x8698,
+ 0x5553, 0x8699,
+ 0x5554, 0x869A,
+ 0x5557, 0x869B,
+ 0x5558, 0x869C,
+ 0x5559, 0x869D,
+ 0x555A, 0x869E,
+ 0x555B, 0x869F,
+ 0x555D, 0x86A0,
+ 0x555E, 0x86A1,
+ 0x555F, 0x86A2,
+ 0x5560, 0x86A3,
+ 0x5562, 0x86A4,
+ 0x5563, 0x86A5,
+ 0x5568, 0x86A6,
+ 0x5569, 0x86A7,
+ 0x556B, 0x86A8,
+ 0x556F, 0x86A9,
+ 0x5570, 0x86AA,
+ 0x5571, 0x86AB,
+ 0x5572, 0x86AC,
+ 0x5573, 0x86AD,
+ 0x5574, 0x86AE,
+ 0x5579, 0x86AF,
+ 0x557A, 0x86B0,
+ 0x557D, 0x86B1,
+ 0x557F, 0x86B2,
+ 0x5585, 0x86B3,
+ 0x5586, 0x86B4,
+ 0x558C, 0x86B5,
+ 0x558D, 0x86B6,
+ 0x558E, 0x86B7,
+ 0x5590, 0x86B8,
+ 0x5592, 0x86B9,
+ 0x5593, 0x86BA,
+ 0x5595, 0x86BB,
+ 0x5596, 0x86BC,
+ 0x5597, 0x86BD,
+ 0x559A, 0x86BE,
+ 0x559B, 0x86BF,
+ 0x559E, 0x86C0,
+ 0x55A0, 0x86C1,
+ 0x55A1, 0x86C2,
+ 0x55A2, 0x86C3,
+ 0x55A3, 0x86C4,
+ 0x55A4, 0x86C5,
+ 0x55A5, 0x86C6,
+ 0x55A6, 0x86C7,
+ 0x55A8, 0x86C8,
+ 0x55A9, 0x86C9,
+ 0x55AA, 0x86CA,
+ 0x55AB, 0x86CB,
+ 0x55AC, 0x86CC,
+ 0x55AD, 0x86CD,
+ 0x55AE, 0x86CE,
+ 0x55AF, 0x86CF,
+ 0x55B0, 0x86D0,
+ 0x55B2, 0x86D1,
+ 0x55B4, 0x86D2,
+ 0x55B6, 0x86D3,
+ 0x55B8, 0x86D4,
+ 0x55BA, 0x86D5,
+ 0x55BC, 0x86D6,
+ 0x55BF, 0x86D7,
+ 0x55C0, 0x86D8,
+ 0x55C1, 0x86D9,
+ 0x55C2, 0x86DA,
+ 0x55C3, 0x86DB,
+ 0x55C6, 0x86DC,
+ 0x55C7, 0x86DD,
+ 0x55C8, 0x86DE,
+ 0x55CA, 0x86DF,
+ 0x55CB, 0x86E0,
+ 0x55CE, 0x86E1,
+ 0x55CF, 0x86E2,
+ 0x55D0, 0x86E3,
+ 0x55D5, 0x86E4,
+ 0x55D7, 0x86E5,
+ 0x55D8, 0x86E6,
+ 0x55D9, 0x86E7,
+ 0x55DA, 0x86E8,
+ 0x55DB, 0x86E9,
+ 0x55DE, 0x86EA,
+ 0x55E0, 0x86EB,
+ 0x55E2, 0x86EC,
+ 0x55E7, 0x86ED,
+ 0x55E9, 0x86EE,
+ 0x55ED, 0x86EF,
+ 0x55EE, 0x86F0,
+ 0x55F0, 0x86F1,
+ 0x55F1, 0x86F2,
+ 0x55F4, 0x86F3,
+ 0x55F6, 0x86F4,
+ 0x55F8, 0x86F5,
+ 0x55F9, 0x86F6,
+ 0x55FA, 0x86F7,
+ 0x55FB, 0x86F8,
+ 0x55FC, 0x86F9,
+ 0x55FF, 0x86FA,
+ 0x5602, 0x86FB,
+ 0x5603, 0x86FC,
+ 0x5604, 0x86FD,
+ 0x5605, 0x86FE,
+ 0x5606, 0x8740,
+ 0x5607, 0x8741,
+ 0x560A, 0x8742,
+ 0x560B, 0x8743,
+ 0x560D, 0x8744,
+ 0x5610, 0x8745,
+ 0x5611, 0x8746,
+ 0x5612, 0x8747,
+ 0x5613, 0x8748,
+ 0x5614, 0x8749,
+ 0x5615, 0x874A,
+ 0x5616, 0x874B,
+ 0x5617, 0x874C,
+ 0x5619, 0x874D,
+ 0x561A, 0x874E,
+ 0x561C, 0x874F,
+ 0x561D, 0x8750,
+ 0x5620, 0x8751,
+ 0x5621, 0x8752,
+ 0x5622, 0x8753,
+ 0x5625, 0x8754,
+ 0x5626, 0x8755,
+ 0x5628, 0x8756,
+ 0x5629, 0x8757,
+ 0x562A, 0x8758,
+ 0x562B, 0x8759,
+ 0x562E, 0x875A,
+ 0x562F, 0x875B,
+ 0x5630, 0x875C,
+ 0x5633, 0x875D,
+ 0x5635, 0x875E,
+ 0x5637, 0x875F,
+ 0x5638, 0x8760,
+ 0x563A, 0x8761,
+ 0x563C, 0x8762,
+ 0x563D, 0x8763,
+ 0x563E, 0x8764,
+ 0x5640, 0x8765,
+ 0x5641, 0x8766,
+ 0x5642, 0x8767,
+ 0x5643, 0x8768,
+ 0x5644, 0x8769,
+ 0x5645, 0x876A,
+ 0x5646, 0x876B,
+ 0x5647, 0x876C,
+ 0x5648, 0x876D,
+ 0x5649, 0x876E,
+ 0x564A, 0x876F,
+ 0x564B, 0x8770,
+ 0x564F, 0x8771,
+ 0x5650, 0x8772,
+ 0x5651, 0x8773,
+ 0x5652, 0x8774,
+ 0x5653, 0x8775,
+ 0x5655, 0x8776,
+ 0x5656, 0x8777,
+ 0x565A, 0x8778,
+ 0x565B, 0x8779,
+ 0x565D, 0x877A,
+ 0x565E, 0x877B,
+ 0x565F, 0x877C,
+ 0x5660, 0x877D,
+ 0x5661, 0x877E,
+ 0x5663, 0x8780,
+ 0x5665, 0x8781,
+ 0x5666, 0x8782,
+ 0x5667, 0x8783,
+ 0x566D, 0x8784,
+ 0x566E, 0x8785,
+ 0x566F, 0x8786,
+ 0x5670, 0x8787,
+ 0x5672, 0x8788,
+ 0x5673, 0x8789,
+ 0x5674, 0x878A,
+ 0x5675, 0x878B,
+ 0x5677, 0x878C,
+ 0x5678, 0x878D,
+ 0x5679, 0x878E,
+ 0x567A, 0x878F,
+ 0x567D, 0x8790,
+ 0x567E, 0x8791,
+ 0x567F, 0x8792,
+ 0x5680, 0x8793,
+ 0x5681, 0x8794,
+ 0x5682, 0x8795,
+ 0x5683, 0x8796,
+ 0x5684, 0x8797,
+ 0x5687, 0x8798,
+ 0x5688, 0x8799,
+ 0x5689, 0x879A,
+ 0x568A, 0x879B,
+ 0x568B, 0x879C,
+ 0x568C, 0x879D,
+ 0x568D, 0x879E,
+ 0x5690, 0x879F,
+ 0x5691, 0x87A0,
+ 0x5692, 0x87A1,
+ 0x5694, 0x87A2,
+ 0x5695, 0x87A3,
+ 0x5696, 0x87A4,
+ 0x5697, 0x87A5,
+ 0x5698, 0x87A6,
+ 0x5699, 0x87A7,
+ 0x569A, 0x87A8,
+ 0x569B, 0x87A9,
+ 0x569C, 0x87AA,
+ 0x569D, 0x87AB,
+ 0x569E, 0x87AC,
+ 0x569F, 0x87AD,
+ 0x56A0, 0x87AE,
+ 0x56A1, 0x87AF,
+ 0x56A2, 0x87B0,
+ 0x56A4, 0x87B1,
+ 0x56A5, 0x87B2,
+ 0x56A6, 0x87B3,
+ 0x56A7, 0x87B4,
+ 0x56A8, 0x87B5,
+ 0x56A9, 0x87B6,
+ 0x56AA, 0x87B7,
+ 0x56AB, 0x87B8,
+ 0x56AC, 0x87B9,
+ 0x56AD, 0x87BA,
+ 0x56AE, 0x87BB,
+ 0x56B0, 0x87BC,
+ 0x56B1, 0x87BD,
+ 0x56B2, 0x87BE,
+ 0x56B3, 0x87BF,
+ 0x56B4, 0x87C0,
+ 0x56B5, 0x87C1,
+ 0x56B6, 0x87C2,
+ 0x56B8, 0x87C3,
+ 0x56B9, 0x87C4,
+ 0x56BA, 0x87C5,
+ 0x56BB, 0x87C6,
+ 0x56BD, 0x87C7,
+ 0x56BE, 0x87C8,
+ 0x56BF, 0x87C9,
+ 0x56C0, 0x87CA,
+ 0x56C1, 0x87CB,
+ 0x56C2, 0x87CC,
+ 0x56C3, 0x87CD,
+ 0x56C4, 0x87CE,
+ 0x56C5, 0x87CF,
+ 0x56C6, 0x87D0,
+ 0x56C7, 0x87D1,
+ 0x56C8, 0x87D2,
+ 0x56C9, 0x87D3,
+ 0x56CB, 0x87D4,
+ 0x56CC, 0x87D5,
+ 0x56CD, 0x87D6,
+ 0x56CE, 0x87D7,
+ 0x56CF, 0x87D8,
+ 0x56D0, 0x87D9,
+ 0x56D1, 0x87DA,
+ 0x56D2, 0x87DB,
+ 0x56D3, 0x87DC,
+ 0x56D5, 0x87DD,
+ 0x56D6, 0x87DE,
+ 0x56D8, 0x87DF,
+ 0x56D9, 0x87E0,
+ 0x56DC, 0x87E1,
+ 0x56E3, 0x87E2,
+ 0x56E5, 0x87E3,
+ 0x56E6, 0x87E4,
+ 0x56E7, 0x87E5,
+ 0x56E8, 0x87E6,
+ 0x56E9, 0x87E7,
+ 0x56EA, 0x87E8,
+ 0x56EC, 0x87E9,
+ 0x56EE, 0x87EA,
+ 0x56EF, 0x87EB,
+ 0x56F2, 0x87EC,
+ 0x56F3, 0x87ED,
+ 0x56F6, 0x87EE,
+ 0x56F7, 0x87EF,
+ 0x56F8, 0x87F0,
+ 0x56FB, 0x87F1,
+ 0x56FC, 0x87F2,
+ 0x5700, 0x87F3,
+ 0x5701, 0x87F4,
+ 0x5702, 0x87F5,
+ 0x5705, 0x87F6,
+ 0x5707, 0x87F7,
+ 0x570B, 0x87F8,
+ 0x570C, 0x87F9,
+ 0x570D, 0x87FA,
+ 0x570E, 0x87FB,
+ 0x570F, 0x87FC,
+ 0x5710, 0x87FD,
+ 0x5711, 0x87FE,
+ 0x5712, 0x8840,
+ 0x5713, 0x8841,
+ 0x5714, 0x8842,
+ 0x5715, 0x8843,
+ 0x5716, 0x8844,
+ 0x5717, 0x8845,
+ 0x5718, 0x8846,
+ 0x5719, 0x8847,
+ 0x571A, 0x8848,
+ 0x571B, 0x8849,
+ 0x571D, 0x884A,
+ 0x571E, 0x884B,
+ 0x5720, 0x884C,
+ 0x5721, 0x884D,
+ 0x5722, 0x884E,
+ 0x5724, 0x884F,
+ 0x5725, 0x8850,
+ 0x5726, 0x8851,
+ 0x5727, 0x8852,
+ 0x572B, 0x8853,
+ 0x5731, 0x8854,
+ 0x5732, 0x8855,
+ 0x5734, 0x8856,
+ 0x5735, 0x8857,
+ 0x5736, 0x8858,
+ 0x5737, 0x8859,
+ 0x5738, 0x885A,
+ 0x573C, 0x885B,
+ 0x573D, 0x885C,
+ 0x573F, 0x885D,
+ 0x5741, 0x885E,
+ 0x5743, 0x885F,
+ 0x5744, 0x8860,
+ 0x5745, 0x8861,
+ 0x5746, 0x8862,
+ 0x5748, 0x8863,
+ 0x5749, 0x8864,
+ 0x574B, 0x8865,
+ 0x5752, 0x8866,
+ 0x5753, 0x8867,
+ 0x5754, 0x8868,
+ 0x5755, 0x8869,
+ 0x5756, 0x886A,
+ 0x5758, 0x886B,
+ 0x5759, 0x886C,
+ 0x5762, 0x886D,
+ 0x5763, 0x886E,
+ 0x5765, 0x886F,
+ 0x5767, 0x8870,
+ 0x576C, 0x8871,
+ 0x576E, 0x8872,
+ 0x5770, 0x8873,
+ 0x5771, 0x8874,
+ 0x5772, 0x8875,
+ 0x5774, 0x8876,
+ 0x5775, 0x8877,
+ 0x5778, 0x8878,
+ 0x5779, 0x8879,
+ 0x577A, 0x887A,
+ 0x577D, 0x887B,
+ 0x577E, 0x887C,
+ 0x577F, 0x887D,
+ 0x5780, 0x887E,
+ 0x5781, 0x8880,
+ 0x5787, 0x8881,
+ 0x5788, 0x8882,
+ 0x5789, 0x8883,
+ 0x578A, 0x8884,
+ 0x578D, 0x8885,
+ 0x578E, 0x8886,
+ 0x578F, 0x8887,
+ 0x5790, 0x8888,
+ 0x5791, 0x8889,
+ 0x5794, 0x888A,
+ 0x5795, 0x888B,
+ 0x5796, 0x888C,
+ 0x5797, 0x888D,
+ 0x5798, 0x888E,
+ 0x5799, 0x888F,
+ 0x579A, 0x8890,
+ 0x579C, 0x8891,
+ 0x579D, 0x8892,
+ 0x579E, 0x8893,
+ 0x579F, 0x8894,
+ 0x57A5, 0x8895,
+ 0x57A8, 0x8896,
+ 0x57AA, 0x8897,
+ 0x57AC, 0x8898,
+ 0x57AF, 0x8899,
+ 0x57B0, 0x889A,
+ 0x57B1, 0x889B,
+ 0x57B3, 0x889C,
+ 0x57B5, 0x889D,
+ 0x57B6, 0x889E,
+ 0x57B7, 0x889F,
+ 0x57B9, 0x88A0,
+ 0x57BA, 0x88A1,
+ 0x57BB, 0x88A2,
+ 0x57BC, 0x88A3,
+ 0x57BD, 0x88A4,
+ 0x57BE, 0x88A5,
+ 0x57BF, 0x88A6,
+ 0x57C0, 0x88A7,
+ 0x57C1, 0x88A8,
+ 0x57C4, 0x88A9,
+ 0x57C5, 0x88AA,
+ 0x57C6, 0x88AB,
+ 0x57C7, 0x88AC,
+ 0x57C8, 0x88AD,
+ 0x57C9, 0x88AE,
+ 0x57CA, 0x88AF,
+ 0x57CC, 0x88B0,
+ 0x57CD, 0x88B1,
+ 0x57D0, 0x88B2,
+ 0x57D1, 0x88B3,
+ 0x57D3, 0x88B4,
+ 0x57D6, 0x88B5,
+ 0x57D7, 0x88B6,
+ 0x57DB, 0x88B7,
+ 0x57DC, 0x88B8,
+ 0x57DE, 0x88B9,
+ 0x57E1, 0x88BA,
+ 0x57E2, 0x88BB,
+ 0x57E3, 0x88BC,
+ 0x57E5, 0x88BD,
+ 0x57E6, 0x88BE,
+ 0x57E7, 0x88BF,
+ 0x57E8, 0x88C0,
+ 0x57E9, 0x88C1,
+ 0x57EA, 0x88C2,
+ 0x57EB, 0x88C3,
+ 0x57EC, 0x88C4,
+ 0x57EE, 0x88C5,
+ 0x57F0, 0x88C6,
+ 0x57F1, 0x88C7,
+ 0x57F2, 0x88C8,
+ 0x57F3, 0x88C9,
+ 0x57F5, 0x88CA,
+ 0x57F6, 0x88CB,
+ 0x57F7, 0x88CC,
+ 0x57FB, 0x88CD,
+ 0x57FC, 0x88CE,
+ 0x57FE, 0x88CF,
+ 0x57FF, 0x88D0,
+ 0x5801, 0x88D1,
+ 0x5803, 0x88D2,
+ 0x5804, 0x88D3,
+ 0x5805, 0x88D4,
+ 0x5808, 0x88D5,
+ 0x5809, 0x88D6,
+ 0x580A, 0x88D7,
+ 0x580C, 0x88D8,
+ 0x580E, 0x88D9,
+ 0x580F, 0x88DA,
+ 0x5810, 0x88DB,
+ 0x5812, 0x88DC,
+ 0x5813, 0x88DD,
+ 0x5814, 0x88DE,
+ 0x5816, 0x88DF,
+ 0x5817, 0x88E0,
+ 0x5818, 0x88E1,
+ 0x581A, 0x88E2,
+ 0x581B, 0x88E3,
+ 0x581C, 0x88E4,
+ 0x581D, 0x88E5,
+ 0x581F, 0x88E6,
+ 0x5822, 0x88E7,
+ 0x5823, 0x88E8,
+ 0x5825, 0x88E9,
+ 0x5826, 0x88EA,
+ 0x5827, 0x88EB,
+ 0x5828, 0x88EC,
+ 0x5829, 0x88ED,
+ 0x582B, 0x88EE,
+ 0x582C, 0x88EF,
+ 0x582D, 0x88F0,
+ 0x582E, 0x88F1,
+ 0x582F, 0x88F2,
+ 0x5831, 0x88F3,
+ 0x5832, 0x88F4,
+ 0x5833, 0x88F5,
+ 0x5834, 0x88F6,
+ 0x5836, 0x88F7,
+ 0x5837, 0x88F8,
+ 0x5838, 0x88F9,
+ 0x5839, 0x88FA,
+ 0x583A, 0x88FB,
+ 0x583B, 0x88FC,
+ 0x583C, 0x88FD,
+ 0x583D, 0x88FE,
+ 0x583E, 0x8940,
+ 0x583F, 0x8941,
+ 0x5840, 0x8942,
+ 0x5841, 0x8943,
+ 0x5842, 0x8944,
+ 0x5843, 0x8945,
+ 0x5845, 0x8946,
+ 0x5846, 0x8947,
+ 0x5847, 0x8948,
+ 0x5848, 0x8949,
+ 0x5849, 0x894A,
+ 0x584A, 0x894B,
+ 0x584B, 0x894C,
+ 0x584E, 0x894D,
+ 0x584F, 0x894E,
+ 0x5850, 0x894F,
+ 0x5852, 0x8950,
+ 0x5853, 0x8951,
+ 0x5855, 0x8952,
+ 0x5856, 0x8953,
+ 0x5857, 0x8954,
+ 0x5859, 0x8955,
+ 0x585A, 0x8956,
+ 0x585B, 0x8957,
+ 0x585C, 0x8958,
+ 0x585D, 0x8959,
+ 0x585F, 0x895A,
+ 0x5860, 0x895B,
+ 0x5861, 0x895C,
+ 0x5862, 0x895D,
+ 0x5863, 0x895E,
+ 0x5864, 0x895F,
+ 0x5866, 0x8960,
+ 0x5867, 0x8961,
+ 0x5868, 0x8962,
+ 0x5869, 0x8963,
+ 0x586A, 0x8964,
+ 0x586D, 0x8965,
+ 0x586E, 0x8966,
+ 0x586F, 0x8967,
+ 0x5870, 0x8968,
+ 0x5871, 0x8969,
+ 0x5872, 0x896A,
+ 0x5873, 0x896B,
+ 0x5874, 0x896C,
+ 0x5875, 0x896D,
+ 0x5876, 0x896E,
+ 0x5877, 0x896F,
+ 0x5878, 0x8970,
+ 0x5879, 0x8971,
+ 0x587A, 0x8972,
+ 0x587B, 0x8973,
+ 0x587C, 0x8974,
+ 0x587D, 0x8975,
+ 0x587F, 0x8976,
+ 0x5882, 0x8977,
+ 0x5884, 0x8978,
+ 0x5886, 0x8979,
+ 0x5887, 0x897A,
+ 0x5888, 0x897B,
+ 0x588A, 0x897C,
+ 0x588B, 0x897D,
+ 0x588C, 0x897E,
+ 0x588D, 0x8980,
+ 0x588E, 0x8981,
+ 0x588F, 0x8982,
+ 0x5890, 0x8983,
+ 0x5891, 0x8984,
+ 0x5894, 0x8985,
+ 0x5895, 0x8986,
+ 0x5896, 0x8987,
+ 0x5897, 0x8988,
+ 0x5898, 0x8989,
+ 0x589B, 0x898A,
+ 0x589C, 0x898B,
+ 0x589D, 0x898C,
+ 0x58A0, 0x898D,
+ 0x58A1, 0x898E,
+ 0x58A2, 0x898F,
+ 0x58A3, 0x8990,
+ 0x58A4, 0x8991,
+ 0x58A5, 0x8992,
+ 0x58A6, 0x8993,
+ 0x58A7, 0x8994,
+ 0x58AA, 0x8995,
+ 0x58AB, 0x8996,
+ 0x58AC, 0x8997,
+ 0x58AD, 0x8998,
+ 0x58AE, 0x8999,
+ 0x58AF, 0x899A,
+ 0x58B0, 0x899B,
+ 0x58B1, 0x899C,
+ 0x58B2, 0x899D,
+ 0x58B3, 0x899E,
+ 0x58B4, 0x899F,
+ 0x58B5, 0x89A0,
+ 0x58B6, 0x89A1,
+ 0x58B7, 0x89A2,
+ 0x58B8, 0x89A3,
+ 0x58B9, 0x89A4,
+ 0x58BA, 0x89A5,
+ 0x58BB, 0x89A6,
+ 0x58BD, 0x89A7,
+ 0x58BE, 0x89A8,
+ 0x58BF, 0x89A9,
+ 0x58C0, 0x89AA,
+ 0x58C2, 0x89AB,
+ 0x58C3, 0x89AC,
+ 0x58C4, 0x89AD,
+ 0x58C6, 0x89AE,
+ 0x58C7, 0x89AF,
+ 0x58C8, 0x89B0,
+ 0x58C9, 0x89B1,
+ 0x58CA, 0x89B2,
+ 0x58CB, 0x89B3,
+ 0x58CC, 0x89B4,
+ 0x58CD, 0x89B5,
+ 0x58CE, 0x89B6,
+ 0x58CF, 0x89B7,
+ 0x58D0, 0x89B8,
+ 0x58D2, 0x89B9,
+ 0x58D3, 0x89BA,
+ 0x58D4, 0x89BB,
+ 0x58D6, 0x89BC,
+ 0x58D7, 0x89BD,
+ 0x58D8, 0x89BE,
+ 0x58D9, 0x89BF,
+ 0x58DA, 0x89C0,
+ 0x58DB, 0x89C1,
+ 0x58DC, 0x89C2,
+ 0x58DD, 0x89C3,
+ 0x58DE, 0x89C4,
+ 0x58DF, 0x89C5,
+ 0x58E0, 0x89C6,
+ 0x58E1, 0x89C7,
+ 0x58E2, 0x89C8,
+ 0x58E3, 0x89C9,
+ 0x58E5, 0x89CA,
+ 0x58E6, 0x89CB,
+ 0x58E7, 0x89CC,
+ 0x58E8, 0x89CD,
+ 0x58E9, 0x89CE,
+ 0x58EA, 0x89CF,
+ 0x58ED, 0x89D0,
+ 0x58EF, 0x89D1,
+ 0x58F1, 0x89D2,
+ 0x58F2, 0x89D3,
+ 0x58F4, 0x89D4,
+ 0x58F5, 0x89D5,
+ 0x58F7, 0x89D6,
+ 0x58F8, 0x89D7,
+ 0x58FA, 0x89D8,
+ 0x58FB, 0x89D9,
+ 0x58FC, 0x89DA,
+ 0x58FD, 0x89DB,
+ 0x58FE, 0x89DC,
+ 0x58FF, 0x89DD,
+ 0x5900, 0x89DE,
+ 0x5901, 0x89DF,
+ 0x5903, 0x89E0,
+ 0x5905, 0x89E1,
+ 0x5906, 0x89E2,
+ 0x5908, 0x89E3,
+ 0x5909, 0x89E4,
+ 0x590A, 0x89E5,
+ 0x590B, 0x89E6,
+ 0x590C, 0x89E7,
+ 0x590E, 0x89E8,
+ 0x5910, 0x89E9,
+ 0x5911, 0x89EA,
+ 0x5912, 0x89EB,
+ 0x5913, 0x89EC,
+ 0x5917, 0x89ED,
+ 0x5918, 0x89EE,
+ 0x591B, 0x89EF,
+ 0x591D, 0x89F0,
+ 0x591E, 0x89F1,
+ 0x5920, 0x89F2,
+ 0x5921, 0x89F3,
+ 0x5922, 0x89F4,
+ 0x5923, 0x89F5,
+ 0x5926, 0x89F6,
+ 0x5928, 0x89F7,
+ 0x592C, 0x89F8,
+ 0x5930, 0x89F9,
+ 0x5932, 0x89FA,
+ 0x5933, 0x89FB,
+ 0x5935, 0x89FC,
+ 0x5936, 0x89FD,
+ 0x593B, 0x89FE,
+ 0x593D, 0x8A40,
+ 0x593E, 0x8A41,
+ 0x593F, 0x8A42,
+ 0x5940, 0x8A43,
+ 0x5943, 0x8A44,
+ 0x5945, 0x8A45,
+ 0x5946, 0x8A46,
+ 0x594A, 0x8A47,
+ 0x594C, 0x8A48,
+ 0x594D, 0x8A49,
+ 0x5950, 0x8A4A,
+ 0x5952, 0x8A4B,
+ 0x5953, 0x8A4C,
+ 0x5959, 0x8A4D,
+ 0x595B, 0x8A4E,
+ 0x595C, 0x8A4F,
+ 0x595D, 0x8A50,
+ 0x595E, 0x8A51,
+ 0x595F, 0x8A52,
+ 0x5961, 0x8A53,
+ 0x5963, 0x8A54,
+ 0x5964, 0x8A55,
+ 0x5966, 0x8A56,
+ 0x5967, 0x8A57,
+ 0x5968, 0x8A58,
+ 0x5969, 0x8A59,
+ 0x596A, 0x8A5A,
+ 0x596B, 0x8A5B,
+ 0x596C, 0x8A5C,
+ 0x596D, 0x8A5D,
+ 0x596E, 0x8A5E,
+ 0x596F, 0x8A5F,
+ 0x5970, 0x8A60,
+ 0x5971, 0x8A61,
+ 0x5972, 0x8A62,
+ 0x5975, 0x8A63,
+ 0x5977, 0x8A64,
+ 0x597A, 0x8A65,
+ 0x597B, 0x8A66,
+ 0x597C, 0x8A67,
+ 0x597E, 0x8A68,
+ 0x597F, 0x8A69,
+ 0x5980, 0x8A6A,
+ 0x5985, 0x8A6B,
+ 0x5989, 0x8A6C,
+ 0x598B, 0x8A6D,
+ 0x598C, 0x8A6E,
+ 0x598E, 0x8A6F,
+ 0x598F, 0x8A70,
+ 0x5990, 0x8A71,
+ 0x5991, 0x8A72,
+ 0x5994, 0x8A73,
+ 0x5995, 0x8A74,
+ 0x5998, 0x8A75,
+ 0x599A, 0x8A76,
+ 0x599B, 0x8A77,
+ 0x599C, 0x8A78,
+ 0x599D, 0x8A79,
+ 0x599F, 0x8A7A,
+ 0x59A0, 0x8A7B,
+ 0x59A1, 0x8A7C,
+ 0x59A2, 0x8A7D,
+ 0x59A6, 0x8A7E,
+ 0x59A7, 0x8A80,
+ 0x59AC, 0x8A81,
+ 0x59AD, 0x8A82,
+ 0x59B0, 0x8A83,
+ 0x59B1, 0x8A84,
+ 0x59B3, 0x8A85,
+ 0x59B4, 0x8A86,
+ 0x59B5, 0x8A87,
+ 0x59B6, 0x8A88,
+ 0x59B7, 0x8A89,
+ 0x59B8, 0x8A8A,
+ 0x59BA, 0x8A8B,
+ 0x59BC, 0x8A8C,
+ 0x59BD, 0x8A8D,
+ 0x59BF, 0x8A8E,
+ 0x59C0, 0x8A8F,
+ 0x59C1, 0x8A90,
+ 0x59C2, 0x8A91,
+ 0x59C3, 0x8A92,
+ 0x59C4, 0x8A93,
+ 0x59C5, 0x8A94,
+ 0x59C7, 0x8A95,
+ 0x59C8, 0x8A96,
+ 0x59C9, 0x8A97,
+ 0x59CC, 0x8A98,
+ 0x59CD, 0x8A99,
+ 0x59CE, 0x8A9A,
+ 0x59CF, 0x8A9B,
+ 0x59D5, 0x8A9C,
+ 0x59D6, 0x8A9D,
+ 0x59D9, 0x8A9E,
+ 0x59DB, 0x8A9F,
+ 0x59DE, 0x8AA0,
+ 0x59DF, 0x8AA1,
+ 0x59E0, 0x8AA2,
+ 0x59E1, 0x8AA3,
+ 0x59E2, 0x8AA4,
+ 0x59E4, 0x8AA5,
+ 0x59E6, 0x8AA6,
+ 0x59E7, 0x8AA7,
+ 0x59E9, 0x8AA8,
+ 0x59EA, 0x8AA9,
+ 0x59EB, 0x8AAA,
+ 0x59ED, 0x8AAB,
+ 0x59EE, 0x8AAC,
+ 0x59EF, 0x8AAD,
+ 0x59F0, 0x8AAE,
+ 0x59F1, 0x8AAF,
+ 0x59F2, 0x8AB0,
+ 0x59F3, 0x8AB1,
+ 0x59F4, 0x8AB2,
+ 0x59F5, 0x8AB3,
+ 0x59F6, 0x8AB4,
+ 0x59F7, 0x8AB5,
+ 0x59F8, 0x8AB6,
+ 0x59FA, 0x8AB7,
+ 0x59FC, 0x8AB8,
+ 0x59FD, 0x8AB9,
+ 0x59FE, 0x8ABA,
+ 0x5A00, 0x8ABB,
+ 0x5A02, 0x8ABC,
+ 0x5A0A, 0x8ABD,
+ 0x5A0B, 0x8ABE,
+ 0x5A0D, 0x8ABF,
+ 0x5A0E, 0x8AC0,
+ 0x5A0F, 0x8AC1,
+ 0x5A10, 0x8AC2,
+ 0x5A12, 0x8AC3,
+ 0x5A14, 0x8AC4,
+ 0x5A15, 0x8AC5,
+ 0x5A16, 0x8AC6,
+ 0x5A17, 0x8AC7,
+ 0x5A19, 0x8AC8,
+ 0x5A1A, 0x8AC9,
+ 0x5A1B, 0x8ACA,
+ 0x5A1D, 0x8ACB,
+ 0x5A1E, 0x8ACC,
+ 0x5A21, 0x8ACD,
+ 0x5A22, 0x8ACE,
+ 0x5A24, 0x8ACF,
+ 0x5A26, 0x8AD0,
+ 0x5A27, 0x8AD1,
+ 0x5A28, 0x8AD2,
+ 0x5A2A, 0x8AD3,
+ 0x5A2B, 0x8AD4,
+ 0x5A2C, 0x8AD5,
+ 0x5A2D, 0x8AD6,
+ 0x5A2E, 0x8AD7,
+ 0x5A2F, 0x8AD8,
+ 0x5A30, 0x8AD9,
+ 0x5A33, 0x8ADA,
+ 0x5A35, 0x8ADB,
+ 0x5A37, 0x8ADC,
+ 0x5A38, 0x8ADD,
+ 0x5A39, 0x8ADE,
+ 0x5A3A, 0x8ADF,
+ 0x5A3B, 0x8AE0,
+ 0x5A3D, 0x8AE1,
+ 0x5A3E, 0x8AE2,
+ 0x5A3F, 0x8AE3,
+ 0x5A41, 0x8AE4,
+ 0x5A42, 0x8AE5,
+ 0x5A43, 0x8AE6,
+ 0x5A44, 0x8AE7,
+ 0x5A45, 0x8AE8,
+ 0x5A47, 0x8AE9,
+ 0x5A48, 0x8AEA,
+ 0x5A4B, 0x8AEB,
+ 0x5A4C, 0x8AEC,
+ 0x5A4D, 0x8AED,
+ 0x5A4E, 0x8AEE,
+ 0x5A4F, 0x8AEF,
+ 0x5A50, 0x8AF0,
+ 0x5A51, 0x8AF1,
+ 0x5A52, 0x8AF2,
+ 0x5A53, 0x8AF3,
+ 0x5A54, 0x8AF4,
+ 0x5A56, 0x8AF5,
+ 0x5A57, 0x8AF6,
+ 0x5A58, 0x8AF7,
+ 0x5A59, 0x8AF8,
+ 0x5A5B, 0x8AF9,
+ 0x5A5C, 0x8AFA,
+ 0x5A5D, 0x8AFB,
+ 0x5A5E, 0x8AFC,
+ 0x5A5F, 0x8AFD,
+ 0x5A60, 0x8AFE,
+ 0x5A61, 0x8B40,
+ 0x5A63, 0x8B41,
+ 0x5A64, 0x8B42,
+ 0x5A65, 0x8B43,
+ 0x5A66, 0x8B44,
+ 0x5A68, 0x8B45,
+ 0x5A69, 0x8B46,
+ 0x5A6B, 0x8B47,
+ 0x5A6C, 0x8B48,
+ 0x5A6D, 0x8B49,
+ 0x5A6E, 0x8B4A,
+ 0x5A6F, 0x8B4B,
+ 0x5A70, 0x8B4C,
+ 0x5A71, 0x8B4D,
+ 0x5A72, 0x8B4E,
+ 0x5A73, 0x8B4F,
+ 0x5A78, 0x8B50,
+ 0x5A79, 0x8B51,
+ 0x5A7B, 0x8B52,
+ 0x5A7C, 0x8B53,
+ 0x5A7D, 0x8B54,
+ 0x5A7E, 0x8B55,
+ 0x5A80, 0x8B56,
+ 0x5A81, 0x8B57,
+ 0x5A82, 0x8B58,
+ 0x5A83, 0x8B59,
+ 0x5A84, 0x8B5A,
+ 0x5A85, 0x8B5B,
+ 0x5A86, 0x8B5C,
+ 0x5A87, 0x8B5D,
+ 0x5A88, 0x8B5E,
+ 0x5A89, 0x8B5F,
+ 0x5A8A, 0x8B60,
+ 0x5A8B, 0x8B61,
+ 0x5A8C, 0x8B62,
+ 0x5A8D, 0x8B63,
+ 0x5A8E, 0x8B64,
+ 0x5A8F, 0x8B65,
+ 0x5A90, 0x8B66,
+ 0x5A91, 0x8B67,
+ 0x5A93, 0x8B68,
+ 0x5A94, 0x8B69,
+ 0x5A95, 0x8B6A,
+ 0x5A96, 0x8B6B,
+ 0x5A97, 0x8B6C,
+ 0x5A98, 0x8B6D,
+ 0x5A99, 0x8B6E,
+ 0x5A9C, 0x8B6F,
+ 0x5A9D, 0x8B70,
+ 0x5A9E, 0x8B71,
+ 0x5A9F, 0x8B72,
+ 0x5AA0, 0x8B73,
+ 0x5AA1, 0x8B74,
+ 0x5AA2, 0x8B75,
+ 0x5AA3, 0x8B76,
+ 0x5AA4, 0x8B77,
+ 0x5AA5, 0x8B78,
+ 0x5AA6, 0x8B79,
+ 0x5AA7, 0x8B7A,
+ 0x5AA8, 0x8B7B,
+ 0x5AA9, 0x8B7C,
+ 0x5AAB, 0x8B7D,
+ 0x5AAC, 0x8B7E,
+ 0x5AAD, 0x8B80,
+ 0x5AAE, 0x8B81,
+ 0x5AAF, 0x8B82,
+ 0x5AB0, 0x8B83,
+ 0x5AB1, 0x8B84,
+ 0x5AB4, 0x8B85,
+ 0x5AB6, 0x8B86,
+ 0x5AB7, 0x8B87,
+ 0x5AB9, 0x8B88,
+ 0x5ABA, 0x8B89,
+ 0x5ABB, 0x8B8A,
+ 0x5ABC, 0x8B8B,
+ 0x5ABD, 0x8B8C,
+ 0x5ABF, 0x8B8D,
+ 0x5AC0, 0x8B8E,
+ 0x5AC3, 0x8B8F,
+ 0x5AC4, 0x8B90,
+ 0x5AC5, 0x8B91,
+ 0x5AC6, 0x8B92,
+ 0x5AC7, 0x8B93,
+ 0x5AC8, 0x8B94,
+ 0x5ACA, 0x8B95,
+ 0x5ACB, 0x8B96,
+ 0x5ACD, 0x8B97,
+ 0x5ACE, 0x8B98,
+ 0x5ACF, 0x8B99,
+ 0x5AD0, 0x8B9A,
+ 0x5AD1, 0x8B9B,
+ 0x5AD3, 0x8B9C,
+ 0x5AD5, 0x8B9D,
+ 0x5AD7, 0x8B9E,
+ 0x5AD9, 0x8B9F,
+ 0x5ADA, 0x8BA0,
+ 0x5ADB, 0x8BA1,
+ 0x5ADD, 0x8BA2,
+ 0x5ADE, 0x8BA3,
+ 0x5ADF, 0x8BA4,
+ 0x5AE2, 0x8BA5,
+ 0x5AE4, 0x8BA6,
+ 0x5AE5, 0x8BA7,
+ 0x5AE7, 0x8BA8,
+ 0x5AE8, 0x8BA9,
+ 0x5AEA, 0x8BAA,
+ 0x5AEC, 0x8BAB,
+ 0x5AED, 0x8BAC,
+ 0x5AEE, 0x8BAD,
+ 0x5AEF, 0x8BAE,
+ 0x5AF0, 0x8BAF,
+ 0x5AF2, 0x8BB0,
+ 0x5AF3, 0x8BB1,
+ 0x5AF4, 0x8BB2,
+ 0x5AF5, 0x8BB3,
+ 0x5AF6, 0x8BB4,
+ 0x5AF7, 0x8BB5,
+ 0x5AF8, 0x8BB6,
+ 0x5AF9, 0x8BB7,
+ 0x5AFA, 0x8BB8,
+ 0x5AFB, 0x8BB9,
+ 0x5AFC, 0x8BBA,
+ 0x5AFD, 0x8BBB,
+ 0x5AFE, 0x8BBC,
+ 0x5AFF, 0x8BBD,
+ 0x5B00, 0x8BBE,
+ 0x5B01, 0x8BBF,
+ 0x5B02, 0x8BC0,
+ 0x5B03, 0x8BC1,
+ 0x5B04, 0x8BC2,
+ 0x5B05, 0x8BC3,
+ 0x5B06, 0x8BC4,
+ 0x5B07, 0x8BC5,
+ 0x5B08, 0x8BC6,
+ 0x5B0A, 0x8BC7,
+ 0x5B0B, 0x8BC8,
+ 0x5B0C, 0x8BC9,
+ 0x5B0D, 0x8BCA,
+ 0x5B0E, 0x8BCB,
+ 0x5B0F, 0x8BCC,
+ 0x5B10, 0x8BCD,
+ 0x5B11, 0x8BCE,
+ 0x5B12, 0x8BCF,
+ 0x5B13, 0x8BD0,
+ 0x5B14, 0x8BD1,
+ 0x5B15, 0x8BD2,
+ 0x5B18, 0x8BD3,
+ 0x5B19, 0x8BD4,
+ 0x5B1A, 0x8BD5,
+ 0x5B1B, 0x8BD6,
+ 0x5B1C, 0x8BD7,
+ 0x5B1D, 0x8BD8,
+ 0x5B1E, 0x8BD9,
+ 0x5B1F, 0x8BDA,
+ 0x5B20, 0x8BDB,
+ 0x5B21, 0x8BDC,
+ 0x5B22, 0x8BDD,
+ 0x5B23, 0x8BDE,
+ 0x5B24, 0x8BDF,
+ 0x5B25, 0x8BE0,
+ 0x5B26, 0x8BE1,
+ 0x5B27, 0x8BE2,
+ 0x5B28, 0x8BE3,
+ 0x5B29, 0x8BE4,
+ 0x5B2A, 0x8BE5,
+ 0x5B2B, 0x8BE6,
+ 0x5B2C, 0x8BE7,
+ 0x5B2D, 0x8BE8,
+ 0x5B2E, 0x8BE9,
+ 0x5B2F, 0x8BEA,
+ 0x5B30, 0x8BEB,
+ 0x5B31, 0x8BEC,
+ 0x5B33, 0x8BED,
+ 0x5B35, 0x8BEE,
+ 0x5B36, 0x8BEF,
+ 0x5B38, 0x8BF0,
+ 0x5B39, 0x8BF1,
+ 0x5B3A, 0x8BF2,
+ 0x5B3B, 0x8BF3,
+ 0x5B3C, 0x8BF4,
+ 0x5B3D, 0x8BF5,
+ 0x5B3E, 0x8BF6,
+ 0x5B3F, 0x8BF7,
+ 0x5B41, 0x8BF8,
+ 0x5B42, 0x8BF9,
+ 0x5B43, 0x8BFA,
+ 0x5B44, 0x8BFB,
+ 0x5B45, 0x8BFC,
+ 0x5B46, 0x8BFD,
+ 0x5B47, 0x8BFE,
+ 0x5B48, 0x8C40,
+ 0x5B49, 0x8C41,
+ 0x5B4A, 0x8C42,
+ 0x5B4B, 0x8C43,
+ 0x5B4C, 0x8C44,
+ 0x5B4D, 0x8C45,
+ 0x5B4E, 0x8C46,
+ 0x5B4F, 0x8C47,
+ 0x5B52, 0x8C48,
+ 0x5B56, 0x8C49,
+ 0x5B5E, 0x8C4A,
+ 0x5B60, 0x8C4B,
+ 0x5B61, 0x8C4C,
+ 0x5B67, 0x8C4D,
+ 0x5B68, 0x8C4E,
+ 0x5B6B, 0x8C4F,
+ 0x5B6D, 0x8C50,
+ 0x5B6E, 0x8C51,
+ 0x5B6F, 0x8C52,
+ 0x5B72, 0x8C53,
+ 0x5B74, 0x8C54,
+ 0x5B76, 0x8C55,
+ 0x5B77, 0x8C56,
+ 0x5B78, 0x8C57,
+ 0x5B79, 0x8C58,
+ 0x5B7B, 0x8C59,
+ 0x5B7C, 0x8C5A,
+ 0x5B7E, 0x8C5B,
+ 0x5B7F, 0x8C5C,
+ 0x5B82, 0x8C5D,
+ 0x5B86, 0x8C5E,
+ 0x5B8A, 0x8C5F,
+ 0x5B8D, 0x8C60,
+ 0x5B8E, 0x8C61,
+ 0x5B90, 0x8C62,
+ 0x5B91, 0x8C63,
+ 0x5B92, 0x8C64,
+ 0x5B94, 0x8C65,
+ 0x5B96, 0x8C66,
+ 0x5B9F, 0x8C67,
+ 0x5BA7, 0x8C68,
+ 0x5BA8, 0x8C69,
+ 0x5BA9, 0x8C6A,
+ 0x5BAC, 0x8C6B,
+ 0x5BAD, 0x8C6C,
+ 0x5BAE, 0x8C6D,
+ 0x5BAF, 0x8C6E,
+ 0x5BB1, 0x8C6F,
+ 0x5BB2, 0x8C70,
+ 0x5BB7, 0x8C71,
+ 0x5BBA, 0x8C72,
+ 0x5BBB, 0x8C73,
+ 0x5BBC, 0x8C74,
+ 0x5BC0, 0x8C75,
+ 0x5BC1, 0x8C76,
+ 0x5BC3, 0x8C77,
+ 0x5BC8, 0x8C78,
+ 0x5BC9, 0x8C79,
+ 0x5BCA, 0x8C7A,
+ 0x5BCB, 0x8C7B,
+ 0x5BCD, 0x8C7C,
+ 0x5BCE, 0x8C7D,
+ 0x5BCF, 0x8C7E,
+ 0x5BD1, 0x8C80,
+ 0x5BD4, 0x8C81,
+ 0x5BD5, 0x8C82,
+ 0x5BD6, 0x8C83,
+ 0x5BD7, 0x8C84,
+ 0x5BD8, 0x8C85,
+ 0x5BD9, 0x8C86,
+ 0x5BDA, 0x8C87,
+ 0x5BDB, 0x8C88,
+ 0x5BDC, 0x8C89,
+ 0x5BE0, 0x8C8A,
+ 0x5BE2, 0x8C8B,
+ 0x5BE3, 0x8C8C,
+ 0x5BE6, 0x8C8D,
+ 0x5BE7, 0x8C8E,
+ 0x5BE9, 0x8C8F,
+ 0x5BEA, 0x8C90,
+ 0x5BEB, 0x8C91,
+ 0x5BEC, 0x8C92,
+ 0x5BED, 0x8C93,
+ 0x5BEF, 0x8C94,
+ 0x5BF1, 0x8C95,
+ 0x5BF2, 0x8C96,
+ 0x5BF3, 0x8C97,
+ 0x5BF4, 0x8C98,
+ 0x5BF5, 0x8C99,
+ 0x5BF6, 0x8C9A,
+ 0x5BF7, 0x8C9B,
+ 0x5BFD, 0x8C9C,
+ 0x5BFE, 0x8C9D,
+ 0x5C00, 0x8C9E,
+ 0x5C02, 0x8C9F,
+ 0x5C03, 0x8CA0,
+ 0x5C05, 0x8CA1,
+ 0x5C07, 0x8CA2,
+ 0x5C08, 0x8CA3,
+ 0x5C0B, 0x8CA4,
+ 0x5C0C, 0x8CA5,
+ 0x5C0D, 0x8CA6,
+ 0x5C0E, 0x8CA7,
+ 0x5C10, 0x8CA8,
+ 0x5C12, 0x8CA9,
+ 0x5C13, 0x8CAA,
+ 0x5C17, 0x8CAB,
+ 0x5C19, 0x8CAC,
+ 0x5C1B, 0x8CAD,
+ 0x5C1E, 0x8CAE,
+ 0x5C1F, 0x8CAF,
+ 0x5C20, 0x8CB0,
+ 0x5C21, 0x8CB1,
+ 0x5C23, 0x8CB2,
+ 0x5C26, 0x8CB3,
+ 0x5C28, 0x8CB4,
+ 0x5C29, 0x8CB5,
+ 0x5C2A, 0x8CB6,
+ 0x5C2B, 0x8CB7,
+ 0x5C2D, 0x8CB8,
+ 0x5C2E, 0x8CB9,
+ 0x5C2F, 0x8CBA,
+ 0x5C30, 0x8CBB,
+ 0x5C32, 0x8CBC,
+ 0x5C33, 0x8CBD,
+ 0x5C35, 0x8CBE,
+ 0x5C36, 0x8CBF,
+ 0x5C37, 0x8CC0,
+ 0x5C43, 0x8CC1,
+ 0x5C44, 0x8CC2,
+ 0x5C46, 0x8CC3,
+ 0x5C47, 0x8CC4,
+ 0x5C4C, 0x8CC5,
+ 0x5C4D, 0x8CC6,
+ 0x5C52, 0x8CC7,
+ 0x5C53, 0x8CC8,
+ 0x5C54, 0x8CC9,
+ 0x5C56, 0x8CCA,
+ 0x5C57, 0x8CCB,
+ 0x5C58, 0x8CCC,
+ 0x5C5A, 0x8CCD,
+ 0x5C5B, 0x8CCE,
+ 0x5C5C, 0x8CCF,
+ 0x5C5D, 0x8CD0,
+ 0x5C5F, 0x8CD1,
+ 0x5C62, 0x8CD2,
+ 0x5C64, 0x8CD3,
+ 0x5C67, 0x8CD4,
+ 0x5C68, 0x8CD5,
+ 0x5C69, 0x8CD6,
+ 0x5C6A, 0x8CD7,
+ 0x5C6B, 0x8CD8,
+ 0x5C6C, 0x8CD9,
+ 0x5C6D, 0x8CDA,
+ 0x5C70, 0x8CDB,
+ 0x5C72, 0x8CDC,
+ 0x5C73, 0x8CDD,
+ 0x5C74, 0x8CDE,
+ 0x5C75, 0x8CDF,
+ 0x5C76, 0x8CE0,
+ 0x5C77, 0x8CE1,
+ 0x5C78, 0x8CE2,
+ 0x5C7B, 0x8CE3,
+ 0x5C7C, 0x8CE4,
+ 0x5C7D, 0x8CE5,
+ 0x5C7E, 0x8CE6,
+ 0x5C80, 0x8CE7,
+ 0x5C83, 0x8CE8,
+ 0x5C84, 0x8CE9,
+ 0x5C85, 0x8CEA,
+ 0x5C86, 0x8CEB,
+ 0x5C87, 0x8CEC,
+ 0x5C89, 0x8CED,
+ 0x5C8A, 0x8CEE,
+ 0x5C8B, 0x8CEF,
+ 0x5C8E, 0x8CF0,
+ 0x5C8F, 0x8CF1,
+ 0x5C92, 0x8CF2,
+ 0x5C93, 0x8CF3,
+ 0x5C95, 0x8CF4,
+ 0x5C9D, 0x8CF5,
+ 0x5C9E, 0x8CF6,
+ 0x5C9F, 0x8CF7,
+ 0x5CA0, 0x8CF8,
+ 0x5CA1, 0x8CF9,
+ 0x5CA4, 0x8CFA,
+ 0x5CA5, 0x8CFB,
+ 0x5CA6, 0x8CFC,
+ 0x5CA7, 0x8CFD,
+ 0x5CA8, 0x8CFE,
+ 0x5CAA, 0x8D40,
+ 0x5CAE, 0x8D41,
+ 0x5CAF, 0x8D42,
+ 0x5CB0, 0x8D43,
+ 0x5CB2, 0x8D44,
+ 0x5CB4, 0x8D45,
+ 0x5CB6, 0x8D46,
+ 0x5CB9, 0x8D47,
+ 0x5CBA, 0x8D48,
+ 0x5CBB, 0x8D49,
+ 0x5CBC, 0x8D4A,
+ 0x5CBE, 0x8D4B,
+ 0x5CC0, 0x8D4C,
+ 0x5CC2, 0x8D4D,
+ 0x5CC3, 0x8D4E,
+ 0x5CC5, 0x8D4F,
+ 0x5CC6, 0x8D50,
+ 0x5CC7, 0x8D51,
+ 0x5CC8, 0x8D52,
+ 0x5CC9, 0x8D53,
+ 0x5CCA, 0x8D54,
+ 0x5CCC, 0x8D55,
+ 0x5CCD, 0x8D56,
+ 0x5CCE, 0x8D57,
+ 0x5CCF, 0x8D58,
+ 0x5CD0, 0x8D59,
+ 0x5CD1, 0x8D5A,
+ 0x5CD3, 0x8D5B,
+ 0x5CD4, 0x8D5C,
+ 0x5CD5, 0x8D5D,
+ 0x5CD6, 0x8D5E,
+ 0x5CD7, 0x8D5F,
+ 0x5CD8, 0x8D60,
+ 0x5CDA, 0x8D61,
+ 0x5CDB, 0x8D62,
+ 0x5CDC, 0x8D63,
+ 0x5CDD, 0x8D64,
+ 0x5CDE, 0x8D65,
+ 0x5CDF, 0x8D66,
+ 0x5CE0, 0x8D67,
+ 0x5CE2, 0x8D68,
+ 0x5CE3, 0x8D69,
+ 0x5CE7, 0x8D6A,
+ 0x5CE9, 0x8D6B,
+ 0x5CEB, 0x8D6C,
+ 0x5CEC, 0x8D6D,
+ 0x5CEE, 0x8D6E,
+ 0x5CEF, 0x8D6F,
+ 0x5CF1, 0x8D70,
+ 0x5CF2, 0x8D71,
+ 0x5CF3, 0x8D72,
+ 0x5CF4, 0x8D73,
+ 0x5CF5, 0x8D74,
+ 0x5CF6, 0x8D75,
+ 0x5CF7, 0x8D76,
+ 0x5CF8, 0x8D77,
+ 0x5CF9, 0x8D78,
+ 0x5CFA, 0x8D79,
+ 0x5CFC, 0x8D7A,
+ 0x5CFD, 0x8D7B,
+ 0x5CFE, 0x8D7C,
+ 0x5CFF, 0x8D7D,
+ 0x5D00, 0x8D7E,
+ 0x5D01, 0x8D80,
+ 0x5D04, 0x8D81,
+ 0x5D05, 0x8D82,
+ 0x5D08, 0x8D83,
+ 0x5D09, 0x8D84,
+ 0x5D0A, 0x8D85,
+ 0x5D0B, 0x8D86,
+ 0x5D0C, 0x8D87,
+ 0x5D0D, 0x8D88,
+ 0x5D0F, 0x8D89,
+ 0x5D10, 0x8D8A,
+ 0x5D11, 0x8D8B,
+ 0x5D12, 0x8D8C,
+ 0x5D13, 0x8D8D,
+ 0x5D15, 0x8D8E,
+ 0x5D17, 0x8D8F,
+ 0x5D18, 0x8D90,
+ 0x5D19, 0x8D91,
+ 0x5D1A, 0x8D92,
+ 0x5D1C, 0x8D93,
+ 0x5D1D, 0x8D94,
+ 0x5D1F, 0x8D95,
+ 0x5D20, 0x8D96,
+ 0x5D21, 0x8D97,
+ 0x5D22, 0x8D98,
+ 0x5D23, 0x8D99,
+ 0x5D25, 0x8D9A,
+ 0x5D28, 0x8D9B,
+ 0x5D2A, 0x8D9C,
+ 0x5D2B, 0x8D9D,
+ 0x5D2C, 0x8D9E,
+ 0x5D2F, 0x8D9F,
+ 0x5D30, 0x8DA0,
+ 0x5D31, 0x8DA1,
+ 0x5D32, 0x8DA2,
+ 0x5D33, 0x8DA3,
+ 0x5D35, 0x8DA4,
+ 0x5D36, 0x8DA5,
+ 0x5D37, 0x8DA6,
+ 0x5D38, 0x8DA7,
+ 0x5D39, 0x8DA8,
+ 0x5D3A, 0x8DA9,
+ 0x5D3B, 0x8DAA,
+ 0x5D3C, 0x8DAB,
+ 0x5D3F, 0x8DAC,
+ 0x5D40, 0x8DAD,
+ 0x5D41, 0x8DAE,
+ 0x5D42, 0x8DAF,
+ 0x5D43, 0x8DB0,
+ 0x5D44, 0x8DB1,
+ 0x5D45, 0x8DB2,
+ 0x5D46, 0x8DB3,
+ 0x5D48, 0x8DB4,
+ 0x5D49, 0x8DB5,
+ 0x5D4D, 0x8DB6,
+ 0x5D4E, 0x8DB7,
+ 0x5D4F, 0x8DB8,
+ 0x5D50, 0x8DB9,
+ 0x5D51, 0x8DBA,
+ 0x5D52, 0x8DBB,
+ 0x5D53, 0x8DBC,
+ 0x5D54, 0x8DBD,
+ 0x5D55, 0x8DBE,
+ 0x5D56, 0x8DBF,
+ 0x5D57, 0x8DC0,
+ 0x5D59, 0x8DC1,
+ 0x5D5A, 0x8DC2,
+ 0x5D5C, 0x8DC3,
+ 0x5D5E, 0x8DC4,
+ 0x5D5F, 0x8DC5,
+ 0x5D60, 0x8DC6,
+ 0x5D61, 0x8DC7,
+ 0x5D62, 0x8DC8,
+ 0x5D63, 0x8DC9,
+ 0x5D64, 0x8DCA,
+ 0x5D65, 0x8DCB,
+ 0x5D66, 0x8DCC,
+ 0x5D67, 0x8DCD,
+ 0x5D68, 0x8DCE,
+ 0x5D6A, 0x8DCF,
+ 0x5D6D, 0x8DD0,
+ 0x5D6E, 0x8DD1,
+ 0x5D70, 0x8DD2,
+ 0x5D71, 0x8DD3,
+ 0x5D72, 0x8DD4,
+ 0x5D73, 0x8DD5,
+ 0x5D75, 0x8DD6,
+ 0x5D76, 0x8DD7,
+ 0x5D77, 0x8DD8,
+ 0x5D78, 0x8DD9,
+ 0x5D79, 0x8DDA,
+ 0x5D7A, 0x8DDB,
+ 0x5D7B, 0x8DDC,
+ 0x5D7C, 0x8DDD,
+ 0x5D7D, 0x8DDE,
+ 0x5D7E, 0x8DDF,
+ 0x5D7F, 0x8DE0,
+ 0x5D80, 0x8DE1,
+ 0x5D81, 0x8DE2,
+ 0x5D83, 0x8DE3,
+ 0x5D84, 0x8DE4,
+ 0x5D85, 0x8DE5,
+ 0x5D86, 0x8DE6,
+ 0x5D87, 0x8DE7,
+ 0x5D88, 0x8DE8,
+ 0x5D89, 0x8DE9,
+ 0x5D8A, 0x8DEA,
+ 0x5D8B, 0x8DEB,
+ 0x5D8C, 0x8DEC,
+ 0x5D8D, 0x8DED,
+ 0x5D8E, 0x8DEE,
+ 0x5D8F, 0x8DEF,
+ 0x5D90, 0x8DF0,
+ 0x5D91, 0x8DF1,
+ 0x5D92, 0x8DF2,
+ 0x5D93, 0x8DF3,
+ 0x5D94, 0x8DF4,
+ 0x5D95, 0x8DF5,
+ 0x5D96, 0x8DF6,
+ 0x5D97, 0x8DF7,
+ 0x5D98, 0x8DF8,
+ 0x5D9A, 0x8DF9,
+ 0x5D9B, 0x8DFA,
+ 0x5D9C, 0x8DFB,
+ 0x5D9E, 0x8DFC,
+ 0x5D9F, 0x8DFD,
+ 0x5DA0, 0x8DFE,
+ 0x5DA1, 0x8E40,
+ 0x5DA2, 0x8E41,
+ 0x5DA3, 0x8E42,
+ 0x5DA4, 0x8E43,
+ 0x5DA5, 0x8E44,
+ 0x5DA6, 0x8E45,
+ 0x5DA7, 0x8E46,
+ 0x5DA8, 0x8E47,
+ 0x5DA9, 0x8E48,
+ 0x5DAA, 0x8E49,
+ 0x5DAB, 0x8E4A,
+ 0x5DAC, 0x8E4B,
+ 0x5DAD, 0x8E4C,
+ 0x5DAE, 0x8E4D,
+ 0x5DAF, 0x8E4E,
+ 0x5DB0, 0x8E4F,
+ 0x5DB1, 0x8E50,
+ 0x5DB2, 0x8E51,
+ 0x5DB3, 0x8E52,
+ 0x5DB4, 0x8E53,
+ 0x5DB5, 0x8E54,
+ 0x5DB6, 0x8E55,
+ 0x5DB8, 0x8E56,
+ 0x5DB9, 0x8E57,
+ 0x5DBA, 0x8E58,
+ 0x5DBB, 0x8E59,
+ 0x5DBC, 0x8E5A,
+ 0x5DBD, 0x8E5B,
+ 0x5DBE, 0x8E5C,
+ 0x5DBF, 0x8E5D,
+ 0x5DC0, 0x8E5E,
+ 0x5DC1, 0x8E5F,
+ 0x5DC2, 0x8E60,
+ 0x5DC3, 0x8E61,
+ 0x5DC4, 0x8E62,
+ 0x5DC6, 0x8E63,
+ 0x5DC7, 0x8E64,
+ 0x5DC8, 0x8E65,
+ 0x5DC9, 0x8E66,
+ 0x5DCA, 0x8E67,
+ 0x5DCB, 0x8E68,
+ 0x5DCC, 0x8E69,
+ 0x5DCE, 0x8E6A,
+ 0x5DCF, 0x8E6B,
+ 0x5DD0, 0x8E6C,
+ 0x5DD1, 0x8E6D,
+ 0x5DD2, 0x8E6E,
+ 0x5DD3, 0x8E6F,
+ 0x5DD4, 0x8E70,
+ 0x5DD5, 0x8E71,
+ 0x5DD6, 0x8E72,
+ 0x5DD7, 0x8E73,
+ 0x5DD8, 0x8E74,
+ 0x5DD9, 0x8E75,
+ 0x5DDA, 0x8E76,
+ 0x5DDC, 0x8E77,
+ 0x5DDF, 0x8E78,
+ 0x5DE0, 0x8E79,
+ 0x5DE3, 0x8E7A,
+ 0x5DE4, 0x8E7B,
+ 0x5DEA, 0x8E7C,
+ 0x5DEC, 0x8E7D,
+ 0x5DED, 0x8E7E,
+ 0x5DF0, 0x8E80,
+ 0x5DF5, 0x8E81,
+ 0x5DF6, 0x8E82,
+ 0x5DF8, 0x8E83,
+ 0x5DF9, 0x8E84,
+ 0x5DFA, 0x8E85,
+ 0x5DFB, 0x8E86,
+ 0x5DFC, 0x8E87,
+ 0x5DFF, 0x8E88,
+ 0x5E00, 0x8E89,
+ 0x5E04, 0x8E8A,
+ 0x5E07, 0x8E8B,
+ 0x5E09, 0x8E8C,
+ 0x5E0A, 0x8E8D,
+ 0x5E0B, 0x8E8E,
+ 0x5E0D, 0x8E8F,
+ 0x5E0E, 0x8E90,
+ 0x5E12, 0x8E91,
+ 0x5E13, 0x8E92,
+ 0x5E17, 0x8E93,
+ 0x5E1E, 0x8E94,
+ 0x5E1F, 0x8E95,
+ 0x5E20, 0x8E96,
+ 0x5E21, 0x8E97,
+ 0x5E22, 0x8E98,
+ 0x5E23, 0x8E99,
+ 0x5E24, 0x8E9A,
+ 0x5E25, 0x8E9B,
+ 0x5E28, 0x8E9C,
+ 0x5E29, 0x8E9D,
+ 0x5E2A, 0x8E9E,
+ 0x5E2B, 0x8E9F,
+ 0x5E2C, 0x8EA0,
+ 0x5E2F, 0x8EA1,
+ 0x5E30, 0x8EA2,
+ 0x5E32, 0x8EA3,
+ 0x5E33, 0x8EA4,
+ 0x5E34, 0x8EA5,
+ 0x5E35, 0x8EA6,
+ 0x5E36, 0x8EA7,
+ 0x5E39, 0x8EA8,
+ 0x5E3A, 0x8EA9,
+ 0x5E3E, 0x8EAA,
+ 0x5E3F, 0x8EAB,
+ 0x5E40, 0x8EAC,
+ 0x5E41, 0x8EAD,
+ 0x5E43, 0x8EAE,
+ 0x5E46, 0x8EAF,
+ 0x5E47, 0x8EB0,
+ 0x5E48, 0x8EB1,
+ 0x5E49, 0x8EB2,
+ 0x5E4A, 0x8EB3,
+ 0x5E4B, 0x8EB4,
+ 0x5E4D, 0x8EB5,
+ 0x5E4E, 0x8EB6,
+ 0x5E4F, 0x8EB7,
+ 0x5E50, 0x8EB8,
+ 0x5E51, 0x8EB9,
+ 0x5E52, 0x8EBA,
+ 0x5E53, 0x8EBB,
+ 0x5E56, 0x8EBC,
+ 0x5E57, 0x8EBD,
+ 0x5E58, 0x8EBE,
+ 0x5E59, 0x8EBF,
+ 0x5E5A, 0x8EC0,
+ 0x5E5C, 0x8EC1,
+ 0x5E5D, 0x8EC2,
+ 0x5E5F, 0x8EC3,
+ 0x5E60, 0x8EC4,
+ 0x5E63, 0x8EC5,
+ 0x5E64, 0x8EC6,
+ 0x5E65, 0x8EC7,
+ 0x5E66, 0x8EC8,
+ 0x5E67, 0x8EC9,
+ 0x5E68, 0x8ECA,
+ 0x5E69, 0x8ECB,
+ 0x5E6A, 0x8ECC,
+ 0x5E6B, 0x8ECD,
+ 0x5E6C, 0x8ECE,
+ 0x5E6D, 0x8ECF,
+ 0x5E6E, 0x8ED0,
+ 0x5E6F, 0x8ED1,
+ 0x5E70, 0x8ED2,
+ 0x5E71, 0x8ED3,
+ 0x5E75, 0x8ED4,
+ 0x5E77, 0x8ED5,
+ 0x5E79, 0x8ED6,
+ 0x5E7E, 0x8ED7,
+ 0x5E81, 0x8ED8,
+ 0x5E82, 0x8ED9,
+ 0x5E83, 0x8EDA,
+ 0x5E85, 0x8EDB,
+ 0x5E88, 0x8EDC,
+ 0x5E89, 0x8EDD,
+ 0x5E8C, 0x8EDE,
+ 0x5E8D, 0x8EDF,
+ 0x5E8E, 0x8EE0,
+ 0x5E92, 0x8EE1,
+ 0x5E98, 0x8EE2,
+ 0x5E9B, 0x8EE3,
+ 0x5E9D, 0x8EE4,
+ 0x5EA1, 0x8EE5,
+ 0x5EA2, 0x8EE6,
+ 0x5EA3, 0x8EE7,
+ 0x5EA4, 0x8EE8,
+ 0x5EA8, 0x8EE9,
+ 0x5EA9, 0x8EEA,
+ 0x5EAA, 0x8EEB,
+ 0x5EAB, 0x8EEC,
+ 0x5EAC, 0x8EED,
+ 0x5EAE, 0x8EEE,
+ 0x5EAF, 0x8EEF,
+ 0x5EB0, 0x8EF0,
+ 0x5EB1, 0x8EF1,
+ 0x5EB2, 0x8EF2,
+ 0x5EB4, 0x8EF3,
+ 0x5EBA, 0x8EF4,
+ 0x5EBB, 0x8EF5,
+ 0x5EBC, 0x8EF6,
+ 0x5EBD, 0x8EF7,
+ 0x5EBF, 0x8EF8,
+ 0x5EC0, 0x8EF9,
+ 0x5EC1, 0x8EFA,
+ 0x5EC2, 0x8EFB,
+ 0x5EC3, 0x8EFC,
+ 0x5EC4, 0x8EFD,
+ 0x5EC5, 0x8EFE,
+ 0x5EC6, 0x8F40,
+ 0x5EC7, 0x8F41,
+ 0x5EC8, 0x8F42,
+ 0x5ECB, 0x8F43,
+ 0x5ECC, 0x8F44,
+ 0x5ECD, 0x8F45,
+ 0x5ECE, 0x8F46,
+ 0x5ECF, 0x8F47,
+ 0x5ED0, 0x8F48,
+ 0x5ED4, 0x8F49,
+ 0x5ED5, 0x8F4A,
+ 0x5ED7, 0x8F4B,
+ 0x5ED8, 0x8F4C,
+ 0x5ED9, 0x8F4D,
+ 0x5EDA, 0x8F4E,
+ 0x5EDC, 0x8F4F,
+ 0x5EDD, 0x8F50,
+ 0x5EDE, 0x8F51,
+ 0x5EDF, 0x8F52,
+ 0x5EE0, 0x8F53,
+ 0x5EE1, 0x8F54,
+ 0x5EE2, 0x8F55,
+ 0x5EE3, 0x8F56,
+ 0x5EE4, 0x8F57,
+ 0x5EE5, 0x8F58,
+ 0x5EE6, 0x8F59,
+ 0x5EE7, 0x8F5A,
+ 0x5EE9, 0x8F5B,
+ 0x5EEB, 0x8F5C,
+ 0x5EEC, 0x8F5D,
+ 0x5EED, 0x8F5E,
+ 0x5EEE, 0x8F5F,
+ 0x5EEF, 0x8F60,
+ 0x5EF0, 0x8F61,
+ 0x5EF1, 0x8F62,
+ 0x5EF2, 0x8F63,
+ 0x5EF3, 0x8F64,
+ 0x5EF5, 0x8F65,
+ 0x5EF8, 0x8F66,
+ 0x5EF9, 0x8F67,
+ 0x5EFB, 0x8F68,
+ 0x5EFC, 0x8F69,
+ 0x5EFD, 0x8F6A,
+ 0x5F05, 0x8F6B,
+ 0x5F06, 0x8F6C,
+ 0x5F07, 0x8F6D,
+ 0x5F09, 0x8F6E,
+ 0x5F0C, 0x8F6F,
+ 0x5F0D, 0x8F70,
+ 0x5F0E, 0x8F71,
+ 0x5F10, 0x8F72,
+ 0x5F12, 0x8F73,
+ 0x5F14, 0x8F74,
+ 0x5F16, 0x8F75,
+ 0x5F19, 0x8F76,
+ 0x5F1A, 0x8F77,
+ 0x5F1C, 0x8F78,
+ 0x5F1D, 0x8F79,
+ 0x5F1E, 0x8F7A,
+ 0x5F21, 0x8F7B,
+ 0x5F22, 0x8F7C,
+ 0x5F23, 0x8F7D,
+ 0x5F24, 0x8F7E,
+ 0x5F28, 0x8F80,
+ 0x5F2B, 0x8F81,
+ 0x5F2C, 0x8F82,
+ 0x5F2E, 0x8F83,
+ 0x5F30, 0x8F84,
+ 0x5F32, 0x8F85,
+ 0x5F33, 0x8F86,
+ 0x5F34, 0x8F87,
+ 0x5F35, 0x8F88,
+ 0x5F36, 0x8F89,
+ 0x5F37, 0x8F8A,
+ 0x5F38, 0x8F8B,
+ 0x5F3B, 0x8F8C,
+ 0x5F3D, 0x8F8D,
+ 0x5F3E, 0x8F8E,
+ 0x5F3F, 0x8F8F,
+ 0x5F41, 0x8F90,
+ 0x5F42, 0x8F91,
+ 0x5F43, 0x8F92,
+ 0x5F44, 0x8F93,
+ 0x5F45, 0x8F94,
+ 0x5F46, 0x8F95,
+ 0x5F47, 0x8F96,
+ 0x5F48, 0x8F97,
+ 0x5F49, 0x8F98,
+ 0x5F4A, 0x8F99,
+ 0x5F4B, 0x8F9A,
+ 0x5F4C, 0x8F9B,
+ 0x5F4D, 0x8F9C,
+ 0x5F4E, 0x8F9D,
+ 0x5F4F, 0x8F9E,
+ 0x5F51, 0x8F9F,
+ 0x5F54, 0x8FA0,
+ 0x5F59, 0x8FA1,
+ 0x5F5A, 0x8FA2,
+ 0x5F5B, 0x8FA3,
+ 0x5F5C, 0x8FA4,
+ 0x5F5E, 0x8FA5,
+ 0x5F5F, 0x8FA6,
+ 0x5F60, 0x8FA7,
+ 0x5F63, 0x8FA8,
+ 0x5F65, 0x8FA9,
+ 0x5F67, 0x8FAA,
+ 0x5F68, 0x8FAB,
+ 0x5F6B, 0x8FAC,
+ 0x5F6E, 0x8FAD,
+ 0x5F6F, 0x8FAE,
+ 0x5F72, 0x8FAF,
+ 0x5F74, 0x8FB0,
+ 0x5F75, 0x8FB1,
+ 0x5F76, 0x8FB2,
+ 0x5F78, 0x8FB3,
+ 0x5F7A, 0x8FB4,
+ 0x5F7D, 0x8FB5,
+ 0x5F7E, 0x8FB6,
+ 0x5F7F, 0x8FB7,
+ 0x5F83, 0x8FB8,
+ 0x5F86, 0x8FB9,
+ 0x5F8D, 0x8FBA,
+ 0x5F8E, 0x8FBB,
+ 0x5F8F, 0x8FBC,
+ 0x5F91, 0x8FBD,
+ 0x5F93, 0x8FBE,
+ 0x5F94, 0x8FBF,
+ 0x5F96, 0x8FC0,
+ 0x5F9A, 0x8FC1,
+ 0x5F9B, 0x8FC2,
+ 0x5F9D, 0x8FC3,
+ 0x5F9E, 0x8FC4,
+ 0x5F9F, 0x8FC5,
+ 0x5FA0, 0x8FC6,
+ 0x5FA2, 0x8FC7,
+ 0x5FA3, 0x8FC8,
+ 0x5FA4, 0x8FC9,
+ 0x5FA5, 0x8FCA,
+ 0x5FA6, 0x8FCB,
+ 0x5FA7, 0x8FCC,
+ 0x5FA9, 0x8FCD,
+ 0x5FAB, 0x8FCE,
+ 0x5FAC, 0x8FCF,
+ 0x5FAF, 0x8FD0,
+ 0x5FB0, 0x8FD1,
+ 0x5FB1, 0x8FD2,
+ 0x5FB2, 0x8FD3,
+ 0x5FB3, 0x8FD4,
+ 0x5FB4, 0x8FD5,
+ 0x5FB6, 0x8FD6,
+ 0x5FB8, 0x8FD7,
+ 0x5FB9, 0x8FD8,
+ 0x5FBA, 0x8FD9,
+ 0x5FBB, 0x8FDA,
+ 0x5FBE, 0x8FDB,
+ 0x5FBF, 0x8FDC,
+ 0x5FC0, 0x8FDD,
+ 0x5FC1, 0x8FDE,
+ 0x5FC2, 0x8FDF,
+ 0x5FC7, 0x8FE0,
+ 0x5FC8, 0x8FE1,
+ 0x5FCA, 0x8FE2,
+ 0x5FCB, 0x8FE3,
+ 0x5FCE, 0x8FE4,
+ 0x5FD3, 0x8FE5,
+ 0x5FD4, 0x8FE6,
+ 0x5FD5, 0x8FE7,
+ 0x5FDA, 0x8FE8,
+ 0x5FDB, 0x8FE9,
+ 0x5FDC, 0x8FEA,
+ 0x5FDE, 0x8FEB,
+ 0x5FDF, 0x8FEC,
+ 0x5FE2, 0x8FED,
+ 0x5FE3, 0x8FEE,
+ 0x5FE5, 0x8FEF,
+ 0x5FE6, 0x8FF0,
+ 0x5FE8, 0x8FF1,
+ 0x5FE9, 0x8FF2,
+ 0x5FEC, 0x8FF3,
+ 0x5FEF, 0x8FF4,
+ 0x5FF0, 0x8FF5,
+ 0x5FF2, 0x8FF6,
+ 0x5FF3, 0x8FF7,
+ 0x5FF4, 0x8FF8,
+ 0x5FF6, 0x8FF9,
+ 0x5FF7, 0x8FFA,
+ 0x5FF9, 0x8FFB,
+ 0x5FFA, 0x8FFC,
+ 0x5FFC, 0x8FFD,
+ 0x6007, 0x8FFE,
+ 0x6008, 0x9040,
+ 0x6009, 0x9041,
+ 0x600B, 0x9042,
+ 0x600C, 0x9043,
+ 0x6010, 0x9044,
+ 0x6011, 0x9045,
+ 0x6013, 0x9046,
+ 0x6017, 0x9047,
+ 0x6018, 0x9048,
+ 0x601A, 0x9049,
+ 0x601E, 0x904A,
+ 0x601F, 0x904B,
+ 0x6022, 0x904C,
+ 0x6023, 0x904D,
+ 0x6024, 0x904E,
+ 0x602C, 0x904F,
+ 0x602D, 0x9050,
+ 0x602E, 0x9051,
+ 0x6030, 0x9052,
+ 0x6031, 0x9053,
+ 0x6032, 0x9054,
+ 0x6033, 0x9055,
+ 0x6034, 0x9056,
+ 0x6036, 0x9057,
+ 0x6037, 0x9058,
+ 0x6038, 0x9059,
+ 0x6039, 0x905A,
+ 0x603A, 0x905B,
+ 0x603D, 0x905C,
+ 0x603E, 0x905D,
+ 0x6040, 0x905E,
+ 0x6044, 0x905F,
+ 0x6045, 0x9060,
+ 0x6046, 0x9061,
+ 0x6047, 0x9062,
+ 0x6048, 0x9063,
+ 0x6049, 0x9064,
+ 0x604A, 0x9065,
+ 0x604C, 0x9066,
+ 0x604E, 0x9067,
+ 0x604F, 0x9068,
+ 0x6051, 0x9069,
+ 0x6053, 0x906A,
+ 0x6054, 0x906B,
+ 0x6056, 0x906C,
+ 0x6057, 0x906D,
+ 0x6058, 0x906E,
+ 0x605B, 0x906F,
+ 0x605C, 0x9070,
+ 0x605E, 0x9071,
+ 0x605F, 0x9072,
+ 0x6060, 0x9073,
+ 0x6061, 0x9074,
+ 0x6065, 0x9075,
+ 0x6066, 0x9076,
+ 0x606E, 0x9077,
+ 0x6071, 0x9078,
+ 0x6072, 0x9079,
+ 0x6074, 0x907A,
+ 0x6075, 0x907B,
+ 0x6077, 0x907C,
+ 0x607E, 0x907D,
+ 0x6080, 0x907E,
+ 0x6081, 0x9080,
+ 0x6082, 0x9081,
+ 0x6085, 0x9082,
+ 0x6086, 0x9083,
+ 0x6087, 0x9084,
+ 0x6088, 0x9085,
+ 0x608A, 0x9086,
+ 0x608B, 0x9087,
+ 0x608E, 0x9088,
+ 0x608F, 0x9089,
+ 0x6090, 0x908A,
+ 0x6091, 0x908B,
+ 0x6093, 0x908C,
+ 0x6095, 0x908D,
+ 0x6097, 0x908E,
+ 0x6098, 0x908F,
+ 0x6099, 0x9090,
+ 0x609C, 0x9091,
+ 0x609E, 0x9092,
+ 0x60A1, 0x9093,
+ 0x60A2, 0x9094,
+ 0x60A4, 0x9095,
+ 0x60A5, 0x9096,
+ 0x60A7, 0x9097,
+ 0x60A9, 0x9098,
+ 0x60AA, 0x9099,
+ 0x60AE, 0x909A,
+ 0x60B0, 0x909B,
+ 0x60B3, 0x909C,
+ 0x60B5, 0x909D,
+ 0x60B6, 0x909E,
+ 0x60B7, 0x909F,
+ 0x60B9, 0x90A0,
+ 0x60BA, 0x90A1,
+ 0x60BD, 0x90A2,
+ 0x60BE, 0x90A3,
+ 0x60BF, 0x90A4,
+ 0x60C0, 0x90A5,
+ 0x60C1, 0x90A6,
+ 0x60C2, 0x90A7,
+ 0x60C3, 0x90A8,
+ 0x60C4, 0x90A9,
+ 0x60C7, 0x90AA,
+ 0x60C8, 0x90AB,
+ 0x60C9, 0x90AC,
+ 0x60CC, 0x90AD,
+ 0x60CD, 0x90AE,
+ 0x60CE, 0x90AF,
+ 0x60CF, 0x90B0,
+ 0x60D0, 0x90B1,
+ 0x60D2, 0x90B2,
+ 0x60D3, 0x90B3,
+ 0x60D4, 0x90B4,
+ 0x60D6, 0x90B5,
+ 0x60D7, 0x90B6,
+ 0x60D9, 0x90B7,
+ 0x60DB, 0x90B8,
+ 0x60DE, 0x90B9,
+ 0x60E1, 0x90BA,
+ 0x60E2, 0x90BB,
+ 0x60E3, 0x90BC,
+ 0x60E4, 0x90BD,
+ 0x60E5, 0x90BE,
+ 0x60EA, 0x90BF,
+ 0x60F1, 0x90C0,
+ 0x60F2, 0x90C1,
+ 0x60F5, 0x90C2,
+ 0x60F7, 0x90C3,
+ 0x60F8, 0x90C4,
+ 0x60FB, 0x90C5,
+ 0x60FC, 0x90C6,
+ 0x60FD, 0x90C7,
+ 0x60FE, 0x90C8,
+ 0x60FF, 0x90C9,
+ 0x6102, 0x90CA,
+ 0x6103, 0x90CB,
+ 0x6104, 0x90CC,
+ 0x6105, 0x90CD,
+ 0x6107, 0x90CE,
+ 0x610A, 0x90CF,
+ 0x610B, 0x90D0,
+ 0x610C, 0x90D1,
+ 0x6110, 0x90D2,
+ 0x6111, 0x90D3,
+ 0x6112, 0x90D4,
+ 0x6113, 0x90D5,
+ 0x6114, 0x90D6,
+ 0x6116, 0x90D7,
+ 0x6117, 0x90D8,
+ 0x6118, 0x90D9,
+ 0x6119, 0x90DA,
+ 0x611B, 0x90DB,
+ 0x611C, 0x90DC,
+ 0x611D, 0x90DD,
+ 0x611E, 0x90DE,
+ 0x6121, 0x90DF,
+ 0x6122, 0x90E0,
+ 0x6125, 0x90E1,
+ 0x6128, 0x90E2,
+ 0x6129, 0x90E3,
+ 0x612A, 0x90E4,
+ 0x612C, 0x90E5,
+ 0x612D, 0x90E6,
+ 0x612E, 0x90E7,
+ 0x612F, 0x90E8,
+ 0x6130, 0x90E9,
+ 0x6131, 0x90EA,
+ 0x6132, 0x90EB,
+ 0x6133, 0x90EC,
+ 0x6134, 0x90ED,
+ 0x6135, 0x90EE,
+ 0x6136, 0x90EF,
+ 0x6137, 0x90F0,
+ 0x6138, 0x90F1,
+ 0x6139, 0x90F2,
+ 0x613A, 0x90F3,
+ 0x613B, 0x90F4,
+ 0x613C, 0x90F5,
+ 0x613D, 0x90F6,
+ 0x613E, 0x90F7,
+ 0x6140, 0x90F8,
+ 0x6141, 0x90F9,
+ 0x6142, 0x90FA,
+ 0x6143, 0x90FB,
+ 0x6144, 0x90FC,
+ 0x6145, 0x90FD,
+ 0x6146, 0x90FE,
+ 0x6147, 0x9140,
+ 0x6149, 0x9141,
+ 0x614B, 0x9142,
+ 0x614D, 0x9143,
+ 0x614F, 0x9144,
+ 0x6150, 0x9145,
+ 0x6152, 0x9146,
+ 0x6153, 0x9147,
+ 0x6154, 0x9148,
+ 0x6156, 0x9149,
+ 0x6157, 0x914A,
+ 0x6158, 0x914B,
+ 0x6159, 0x914C,
+ 0x615A, 0x914D,
+ 0x615B, 0x914E,
+ 0x615C, 0x914F,
+ 0x615E, 0x9150,
+ 0x615F, 0x9151,
+ 0x6160, 0x9152,
+ 0x6161, 0x9153,
+ 0x6163, 0x9154,
+ 0x6164, 0x9155,
+ 0x6165, 0x9156,
+ 0x6166, 0x9157,
+ 0x6169, 0x9158,
+ 0x616A, 0x9159,
+ 0x616B, 0x915A,
+ 0x616C, 0x915B,
+ 0x616D, 0x915C,
+ 0x616E, 0x915D,
+ 0x616F, 0x915E,
+ 0x6171, 0x915F,
+ 0x6172, 0x9160,
+ 0x6173, 0x9161,
+ 0x6174, 0x9162,
+ 0x6176, 0x9163,
+ 0x6178, 0x9164,
+ 0x6179, 0x9165,
+ 0x617A, 0x9166,
+ 0x617B, 0x9167,
+ 0x617C, 0x9168,
+ 0x617D, 0x9169,
+ 0x617E, 0x916A,
+ 0x617F, 0x916B,
+ 0x6180, 0x916C,
+ 0x6181, 0x916D,
+ 0x6182, 0x916E,
+ 0x6183, 0x916F,
+ 0x6184, 0x9170,
+ 0x6185, 0x9171,
+ 0x6186, 0x9172,
+ 0x6187, 0x9173,
+ 0x6188, 0x9174,
+ 0x6189, 0x9175,
+ 0x618A, 0x9176,
+ 0x618C, 0x9177,
+ 0x618D, 0x9178,
+ 0x618F, 0x9179,
+ 0x6190, 0x917A,
+ 0x6191, 0x917B,
+ 0x6192, 0x917C,
+ 0x6193, 0x917D,
+ 0x6195, 0x917E,
+ 0x6196, 0x9180,
+ 0x6197, 0x9181,
+ 0x6198, 0x9182,
+ 0x6199, 0x9183,
+ 0x619A, 0x9184,
+ 0x619B, 0x9185,
+ 0x619C, 0x9186,
+ 0x619E, 0x9187,
+ 0x619F, 0x9188,
+ 0x61A0, 0x9189,
+ 0x61A1, 0x918A,
+ 0x61A2, 0x918B,
+ 0x61A3, 0x918C,
+ 0x61A4, 0x918D,
+ 0x61A5, 0x918E,
+ 0x61A6, 0x918F,
+ 0x61AA, 0x9190,
+ 0x61AB, 0x9191,
+ 0x61AD, 0x9192,
+ 0x61AE, 0x9193,
+ 0x61AF, 0x9194,
+ 0x61B0, 0x9195,
+ 0x61B1, 0x9196,
+ 0x61B2, 0x9197,
+ 0x61B3, 0x9198,
+ 0x61B4, 0x9199,
+ 0x61B5, 0x919A,
+ 0x61B6, 0x919B,
+ 0x61B8, 0x919C,
+ 0x61B9, 0x919D,
+ 0x61BA, 0x919E,
+ 0x61BB, 0x919F,
+ 0x61BC, 0x91A0,
+ 0x61BD, 0x91A1,
+ 0x61BF, 0x91A2,
+ 0x61C0, 0x91A3,
+ 0x61C1, 0x91A4,
+ 0x61C3, 0x91A5,
+ 0x61C4, 0x91A6,
+ 0x61C5, 0x91A7,
+ 0x61C6, 0x91A8,
+ 0x61C7, 0x91A9,
+ 0x61C9, 0x91AA,
+ 0x61CC, 0x91AB,
+ 0x61CD, 0x91AC,
+ 0x61CE, 0x91AD,
+ 0x61CF, 0x91AE,
+ 0x61D0, 0x91AF,
+ 0x61D3, 0x91B0,
+ 0x61D5, 0x91B1,
+ 0x61D6, 0x91B2,
+ 0x61D7, 0x91B3,
+ 0x61D8, 0x91B4,
+ 0x61D9, 0x91B5,
+ 0x61DA, 0x91B6,
+ 0x61DB, 0x91B7,
+ 0x61DC, 0x91B8,
+ 0x61DD, 0x91B9,
+ 0x61DE, 0x91BA,
+ 0x61DF, 0x91BB,
+ 0x61E0, 0x91BC,
+ 0x61E1, 0x91BD,
+ 0x61E2, 0x91BE,
+ 0x61E3, 0x91BF,
+ 0x61E4, 0x91C0,
+ 0x61E5, 0x91C1,
+ 0x61E7, 0x91C2,
+ 0x61E8, 0x91C3,
+ 0x61E9, 0x91C4,
+ 0x61EA, 0x91C5,
+ 0x61EB, 0x91C6,
+ 0x61EC, 0x91C7,
+ 0x61ED, 0x91C8,
+ 0x61EE, 0x91C9,
+ 0x61EF, 0x91CA,
+ 0x61F0, 0x91CB,
+ 0x61F1, 0x91CC,
+ 0x61F2, 0x91CD,
+ 0x61F3, 0x91CE,
+ 0x61F4, 0x91CF,
+ 0x61F6, 0x91D0,
+ 0x61F7, 0x91D1,
+ 0x61F8, 0x91D2,
+ 0x61F9, 0x91D3,
+ 0x61FA, 0x91D4,
+ 0x61FB, 0x91D5,
+ 0x61FC, 0x91D6,
+ 0x61FD, 0x91D7,
+ 0x61FE, 0x91D8,
+ 0x6200, 0x91D9,
+ 0x6201, 0x91DA,
+ 0x6202, 0x91DB,
+ 0x6203, 0x91DC,
+ 0x6204, 0x91DD,
+ 0x6205, 0x91DE,
+ 0x6207, 0x91DF,
+ 0x6209, 0x91E0,
+ 0x6213, 0x91E1,
+ 0x6214, 0x91E2,
+ 0x6219, 0x91E3,
+ 0x621C, 0x91E4,
+ 0x621D, 0x91E5,
+ 0x621E, 0x91E6,
+ 0x6220, 0x91E7,
+ 0x6223, 0x91E8,
+ 0x6226, 0x91E9,
+ 0x6227, 0x91EA,
+ 0x6228, 0x91EB,
+ 0x6229, 0x91EC,
+ 0x622B, 0x91ED,
+ 0x622D, 0x91EE,
+ 0x622F, 0x91EF,
+ 0x6230, 0x91F0,
+ 0x6231, 0x91F1,
+ 0x6232, 0x91F2,
+ 0x6235, 0x91F3,
+ 0x6236, 0x91F4,
+ 0x6238, 0x91F5,
+ 0x6239, 0x91F6,
+ 0x623A, 0x91F7,
+ 0x623B, 0x91F8,
+ 0x623C, 0x91F9,
+ 0x6242, 0x91FA,
+ 0x6244, 0x91FB,
+ 0x6245, 0x91FC,
+ 0x6246, 0x91FD,
+ 0x624A, 0x91FE,
+ 0x624F, 0x9240,
+ 0x6250, 0x9241,
+ 0x6255, 0x9242,
+ 0x6256, 0x9243,
+ 0x6257, 0x9244,
+ 0x6259, 0x9245,
+ 0x625A, 0x9246,
+ 0x625C, 0x9247,
+ 0x625D, 0x9248,
+ 0x625E, 0x9249,
+ 0x625F, 0x924A,
+ 0x6260, 0x924B,
+ 0x6261, 0x924C,
+ 0x6262, 0x924D,
+ 0x6264, 0x924E,
+ 0x6265, 0x924F,
+ 0x6268, 0x9250,
+ 0x6271, 0x9251,
+ 0x6272, 0x9252,
+ 0x6274, 0x9253,
+ 0x6275, 0x9254,
+ 0x6277, 0x9255,
+ 0x6278, 0x9256,
+ 0x627A, 0x9257,
+ 0x627B, 0x9258,
+ 0x627D, 0x9259,
+ 0x6281, 0x925A,
+ 0x6282, 0x925B,
+ 0x6283, 0x925C,
+ 0x6285, 0x925D,
+ 0x6286, 0x925E,
+ 0x6287, 0x925F,
+ 0x6288, 0x9260,
+ 0x628B, 0x9261,
+ 0x628C, 0x9262,
+ 0x628D, 0x9263,
+ 0x628E, 0x9264,
+ 0x628F, 0x9265,
+ 0x6290, 0x9266,
+ 0x6294, 0x9267,
+ 0x6299, 0x9268,
+ 0x629C, 0x9269,
+ 0x629D, 0x926A,
+ 0x629E, 0x926B,
+ 0x62A3, 0x926C,
+ 0x62A6, 0x926D,
+ 0x62A7, 0x926E,
+ 0x62A9, 0x926F,
+ 0x62AA, 0x9270,
+ 0x62AD, 0x9271,
+ 0x62AE, 0x9272,
+ 0x62AF, 0x9273,
+ 0x62B0, 0x9274,
+ 0x62B2, 0x9275,
+ 0x62B3, 0x9276,
+ 0x62B4, 0x9277,
+ 0x62B6, 0x9278,
+ 0x62B7, 0x9279,
+ 0x62B8, 0x927A,
+ 0x62BA, 0x927B,
+ 0x62BE, 0x927C,
+ 0x62C0, 0x927D,
+ 0x62C1, 0x927E,
+ 0x62C3, 0x9280,
+ 0x62CB, 0x9281,
+ 0x62CF, 0x9282,
+ 0x62D1, 0x9283,
+ 0x62D5, 0x9284,
+ 0x62DD, 0x9285,
+ 0x62DE, 0x9286,
+ 0x62E0, 0x9287,
+ 0x62E1, 0x9288,
+ 0x62E4, 0x9289,
+ 0x62EA, 0x928A,
+ 0x62EB, 0x928B,
+ 0x62F0, 0x928C,
+ 0x62F2, 0x928D,
+ 0x62F5, 0x928E,
+ 0x62F8, 0x928F,
+ 0x62F9, 0x9290,
+ 0x62FA, 0x9291,
+ 0x62FB, 0x9292,
+ 0x6300, 0x9293,
+ 0x6303, 0x9294,
+ 0x6304, 0x9295,
+ 0x6305, 0x9296,
+ 0x6306, 0x9297,
+ 0x630A, 0x9298,
+ 0x630B, 0x9299,
+ 0x630C, 0x929A,
+ 0x630D, 0x929B,
+ 0x630F, 0x929C,
+ 0x6310, 0x929D,
+ 0x6312, 0x929E,
+ 0x6313, 0x929F,
+ 0x6314, 0x92A0,
+ 0x6315, 0x92A1,
+ 0x6317, 0x92A2,
+ 0x6318, 0x92A3,
+ 0x6319, 0x92A4,
+ 0x631C, 0x92A5,
+ 0x6326, 0x92A6,
+ 0x6327, 0x92A7,
+ 0x6329, 0x92A8,
+ 0x632C, 0x92A9,
+ 0x632D, 0x92AA,
+ 0x632E, 0x92AB,
+ 0x6330, 0x92AC,
+ 0x6331, 0x92AD,
+ 0x6333, 0x92AE,
+ 0x6334, 0x92AF,
+ 0x6335, 0x92B0,
+ 0x6336, 0x92B1,
+ 0x6337, 0x92B2,
+ 0x6338, 0x92B3,
+ 0x633B, 0x92B4,
+ 0x633C, 0x92B5,
+ 0x633E, 0x92B6,
+ 0x633F, 0x92B7,
+ 0x6340, 0x92B8,
+ 0x6341, 0x92B9,
+ 0x6344, 0x92BA,
+ 0x6347, 0x92BB,
+ 0x6348, 0x92BC,
+ 0x634A, 0x92BD,
+ 0x6351, 0x92BE,
+ 0x6352, 0x92BF,
+ 0x6353, 0x92C0,
+ 0x6354, 0x92C1,
+ 0x6356, 0x92C2,
+ 0x6357, 0x92C3,
+ 0x6358, 0x92C4,
+ 0x6359, 0x92C5,
+ 0x635A, 0x92C6,
+ 0x635B, 0x92C7,
+ 0x635C, 0x92C8,
+ 0x635D, 0x92C9,
+ 0x6360, 0x92CA,
+ 0x6364, 0x92CB,
+ 0x6365, 0x92CC,
+ 0x6366, 0x92CD,
+ 0x6368, 0x92CE,
+ 0x636A, 0x92CF,
+ 0x636B, 0x92D0,
+ 0x636C, 0x92D1,
+ 0x636F, 0x92D2,
+ 0x6370, 0x92D3,
+ 0x6372, 0x92D4,
+ 0x6373, 0x92D5,
+ 0x6374, 0x92D6,
+ 0x6375, 0x92D7,
+ 0x6378, 0x92D8,
+ 0x6379, 0x92D9,
+ 0x637C, 0x92DA,
+ 0x637D, 0x92DB,
+ 0x637E, 0x92DC,
+ 0x637F, 0x92DD,
+ 0x6381, 0x92DE,
+ 0x6383, 0x92DF,
+ 0x6384, 0x92E0,
+ 0x6385, 0x92E1,
+ 0x6386, 0x92E2,
+ 0x638B, 0x92E3,
+ 0x638D, 0x92E4,
+ 0x6391, 0x92E5,
+ 0x6393, 0x92E6,
+ 0x6394, 0x92E7,
+ 0x6395, 0x92E8,
+ 0x6397, 0x92E9,
+ 0x6399, 0x92EA,
+ 0x639A, 0x92EB,
+ 0x639B, 0x92EC,
+ 0x639C, 0x92ED,
+ 0x639D, 0x92EE,
+ 0x639E, 0x92EF,
+ 0x639F, 0x92F0,
+ 0x63A1, 0x92F1,
+ 0x63A4, 0x92F2,
+ 0x63A6, 0x92F3,
+ 0x63AB, 0x92F4,
+ 0x63AF, 0x92F5,
+ 0x63B1, 0x92F6,
+ 0x63B2, 0x92F7,
+ 0x63B5, 0x92F8,
+ 0x63B6, 0x92F9,
+ 0x63B9, 0x92FA,
+ 0x63BB, 0x92FB,
+ 0x63BD, 0x92FC,
+ 0x63BF, 0x92FD,
+ 0x63C0, 0x92FE,
+ 0x63C1, 0x9340,
+ 0x63C2, 0x9341,
+ 0x63C3, 0x9342,
+ 0x63C5, 0x9343,
+ 0x63C7, 0x9344,
+ 0x63C8, 0x9345,
+ 0x63CA, 0x9346,
+ 0x63CB, 0x9347,
+ 0x63CC, 0x9348,
+ 0x63D1, 0x9349,
+ 0x63D3, 0x934A,
+ 0x63D4, 0x934B,
+ 0x63D5, 0x934C,
+ 0x63D7, 0x934D,
+ 0x63D8, 0x934E,
+ 0x63D9, 0x934F,
+ 0x63DA, 0x9350,
+ 0x63DB, 0x9351,
+ 0x63DC, 0x9352,
+ 0x63DD, 0x9353,
+ 0x63DF, 0x9354,
+ 0x63E2, 0x9355,
+ 0x63E4, 0x9356,
+ 0x63E5, 0x9357,
+ 0x63E6, 0x9358,
+ 0x63E7, 0x9359,
+ 0x63E8, 0x935A,
+ 0x63EB, 0x935B,
+ 0x63EC, 0x935C,
+ 0x63EE, 0x935D,
+ 0x63EF, 0x935E,
+ 0x63F0, 0x935F,
+ 0x63F1, 0x9360,
+ 0x63F3, 0x9361,
+ 0x63F5, 0x9362,
+ 0x63F7, 0x9363,
+ 0x63F9, 0x9364,
+ 0x63FA, 0x9365,
+ 0x63FB, 0x9366,
+ 0x63FC, 0x9367,
+ 0x63FE, 0x9368,
+ 0x6403, 0x9369,
+ 0x6404, 0x936A,
+ 0x6406, 0x936B,
+ 0x6407, 0x936C,
+ 0x6408, 0x936D,
+ 0x6409, 0x936E,
+ 0x640A, 0x936F,
+ 0x640D, 0x9370,
+ 0x640E, 0x9371,
+ 0x6411, 0x9372,
+ 0x6412, 0x9373,
+ 0x6415, 0x9374,
+ 0x6416, 0x9375,
+ 0x6417, 0x9376,
+ 0x6418, 0x9377,
+ 0x6419, 0x9378,
+ 0x641A, 0x9379,
+ 0x641D, 0x937A,
+ 0x641F, 0x937B,
+ 0x6422, 0x937C,
+ 0x6423, 0x937D,
+ 0x6424, 0x937E,
+ 0x6425, 0x9380,
+ 0x6427, 0x9381,
+ 0x6428, 0x9382,
+ 0x6429, 0x9383,
+ 0x642B, 0x9384,
+ 0x642E, 0x9385,
+ 0x642F, 0x9386,
+ 0x6430, 0x9387,
+ 0x6431, 0x9388,
+ 0x6432, 0x9389,
+ 0x6433, 0x938A,
+ 0x6435, 0x938B,
+ 0x6436, 0x938C,
+ 0x6437, 0x938D,
+ 0x6438, 0x938E,
+ 0x6439, 0x938F,
+ 0x643B, 0x9390,
+ 0x643C, 0x9391,
+ 0x643E, 0x9392,
+ 0x6440, 0x9393,
+ 0x6442, 0x9394,
+ 0x6443, 0x9395,
+ 0x6449, 0x9396,
+ 0x644B, 0x9397,
+ 0x644C, 0x9398,
+ 0x644D, 0x9399,
+ 0x644E, 0x939A,
+ 0x644F, 0x939B,
+ 0x6450, 0x939C,
+ 0x6451, 0x939D,
+ 0x6453, 0x939E,
+ 0x6455, 0x939F,
+ 0x6456, 0x93A0,
+ 0x6457, 0x93A1,
+ 0x6459, 0x93A2,
+ 0x645A, 0x93A3,
+ 0x645B, 0x93A4,
+ 0x645C, 0x93A5,
+ 0x645D, 0x93A6,
+ 0x645F, 0x93A7,
+ 0x6460, 0x93A8,
+ 0x6461, 0x93A9,
+ 0x6462, 0x93AA,
+ 0x6463, 0x93AB,
+ 0x6464, 0x93AC,
+ 0x6465, 0x93AD,
+ 0x6466, 0x93AE,
+ 0x6468, 0x93AF,
+ 0x646A, 0x93B0,
+ 0x646B, 0x93B1,
+ 0x646C, 0x93B2,
+ 0x646E, 0x93B3,
+ 0x646F, 0x93B4,
+ 0x6470, 0x93B5,
+ 0x6471, 0x93B6,
+ 0x6472, 0x93B7,
+ 0x6473, 0x93B8,
+ 0x6474, 0x93B9,
+ 0x6475, 0x93BA,
+ 0x6476, 0x93BB,
+ 0x6477, 0x93BC,
+ 0x647B, 0x93BD,
+ 0x647C, 0x93BE,
+ 0x647D, 0x93BF,
+ 0x647E, 0x93C0,
+ 0x647F, 0x93C1,
+ 0x6480, 0x93C2,
+ 0x6481, 0x93C3,
+ 0x6483, 0x93C4,
+ 0x6486, 0x93C5,
+ 0x6488, 0x93C6,
+ 0x6489, 0x93C7,
+ 0x648A, 0x93C8,
+ 0x648B, 0x93C9,
+ 0x648C, 0x93CA,
+ 0x648D, 0x93CB,
+ 0x648E, 0x93CC,
+ 0x648F, 0x93CD,
+ 0x6490, 0x93CE,
+ 0x6493, 0x93CF,
+ 0x6494, 0x93D0,
+ 0x6497, 0x93D1,
+ 0x6498, 0x93D2,
+ 0x649A, 0x93D3,
+ 0x649B, 0x93D4,
+ 0x649C, 0x93D5,
+ 0x649D, 0x93D6,
+ 0x649F, 0x93D7,
+ 0x64A0, 0x93D8,
+ 0x64A1, 0x93D9,
+ 0x64A2, 0x93DA,
+ 0x64A3, 0x93DB,
+ 0x64A5, 0x93DC,
+ 0x64A6, 0x93DD,
+ 0x64A7, 0x93DE,
+ 0x64A8, 0x93DF,
+ 0x64AA, 0x93E0,
+ 0x64AB, 0x93E1,
+ 0x64AF, 0x93E2,
+ 0x64B1, 0x93E3,
+ 0x64B2, 0x93E4,
+ 0x64B3, 0x93E5,
+ 0x64B4, 0x93E6,
+ 0x64B6, 0x93E7,
+ 0x64B9, 0x93E8,
+ 0x64BB, 0x93E9,
+ 0x64BD, 0x93EA,
+ 0x64BE, 0x93EB,
+ 0x64BF, 0x93EC,
+ 0x64C1, 0x93ED,
+ 0x64C3, 0x93EE,
+ 0x64C4, 0x93EF,
+ 0x64C6, 0x93F0,
+ 0x64C7, 0x93F1,
+ 0x64C8, 0x93F2,
+ 0x64C9, 0x93F3,
+ 0x64CA, 0x93F4,
+ 0x64CB, 0x93F5,
+ 0x64CC, 0x93F6,
+ 0x64CF, 0x93F7,
+ 0x64D1, 0x93F8,
+ 0x64D3, 0x93F9,
+ 0x64D4, 0x93FA,
+ 0x64D5, 0x93FB,
+ 0x64D6, 0x93FC,
+ 0x64D9, 0x93FD,
+ 0x64DA, 0x93FE,
+ 0x64DB, 0x9440,
+ 0x64DC, 0x9441,
+ 0x64DD, 0x9442,
+ 0x64DF, 0x9443,
+ 0x64E0, 0x9444,
+ 0x64E1, 0x9445,
+ 0x64E3, 0x9446,
+ 0x64E5, 0x9447,
+ 0x64E7, 0x9448,
+ 0x64E8, 0x9449,
+ 0x64E9, 0x944A,
+ 0x64EA, 0x944B,
+ 0x64EB, 0x944C,
+ 0x64EC, 0x944D,
+ 0x64ED, 0x944E,
+ 0x64EE, 0x944F,
+ 0x64EF, 0x9450,
+ 0x64F0, 0x9451,
+ 0x64F1, 0x9452,
+ 0x64F2, 0x9453,
+ 0x64F3, 0x9454,
+ 0x64F4, 0x9455,
+ 0x64F5, 0x9456,
+ 0x64F6, 0x9457,
+ 0x64F7, 0x9458,
+ 0x64F8, 0x9459,
+ 0x64F9, 0x945A,
+ 0x64FA, 0x945B,
+ 0x64FB, 0x945C,
+ 0x64FC, 0x945D,
+ 0x64FD, 0x945E,
+ 0x64FE, 0x945F,
+ 0x64FF, 0x9460,
+ 0x6501, 0x9461,
+ 0x6502, 0x9462,
+ 0x6503, 0x9463,
+ 0x6504, 0x9464,
+ 0x6505, 0x9465,
+ 0x6506, 0x9466,
+ 0x6507, 0x9467,
+ 0x6508, 0x9468,
+ 0x650A, 0x9469,
+ 0x650B, 0x946A,
+ 0x650C, 0x946B,
+ 0x650D, 0x946C,
+ 0x650E, 0x946D,
+ 0x650F, 0x946E,
+ 0x6510, 0x946F,
+ 0x6511, 0x9470,
+ 0x6513, 0x9471,
+ 0x6514, 0x9472,
+ 0x6515, 0x9473,
+ 0x6516, 0x9474,
+ 0x6517, 0x9475,
+ 0x6519, 0x9476,
+ 0x651A, 0x9477,
+ 0x651B, 0x9478,
+ 0x651C, 0x9479,
+ 0x651D, 0x947A,
+ 0x651E, 0x947B,
+ 0x651F, 0x947C,
+ 0x6520, 0x947D,
+ 0x6521, 0x947E,
+ 0x6522, 0x9480,
+ 0x6523, 0x9481,
+ 0x6524, 0x9482,
+ 0x6526, 0x9483,
+ 0x6527, 0x9484,
+ 0x6528, 0x9485,
+ 0x6529, 0x9486,
+ 0x652A, 0x9487,
+ 0x652C, 0x9488,
+ 0x652D, 0x9489,
+ 0x6530, 0x948A,
+ 0x6531, 0x948B,
+ 0x6532, 0x948C,
+ 0x6533, 0x948D,
+ 0x6537, 0x948E,
+ 0x653A, 0x948F,
+ 0x653C, 0x9490,
+ 0x653D, 0x9491,
+ 0x6540, 0x9492,
+ 0x6541, 0x9493,
+ 0x6542, 0x9494,
+ 0x6543, 0x9495,
+ 0x6544, 0x9496,
+ 0x6546, 0x9497,
+ 0x6547, 0x9498,
+ 0x654A, 0x9499,
+ 0x654B, 0x949A,
+ 0x654D, 0x949B,
+ 0x654E, 0x949C,
+ 0x6550, 0x949D,
+ 0x6552, 0x949E,
+ 0x6553, 0x949F,
+ 0x6554, 0x94A0,
+ 0x6557, 0x94A1,
+ 0x6558, 0x94A2,
+ 0x655A, 0x94A3,
+ 0x655C, 0x94A4,
+ 0x655F, 0x94A5,
+ 0x6560, 0x94A6,
+ 0x6561, 0x94A7,
+ 0x6564, 0x94A8,
+ 0x6565, 0x94A9,
+ 0x6567, 0x94AA,
+ 0x6568, 0x94AB,
+ 0x6569, 0x94AC,
+ 0x656A, 0x94AD,
+ 0x656D, 0x94AE,
+ 0x656E, 0x94AF,
+ 0x656F, 0x94B0,
+ 0x6571, 0x94B1,
+ 0x6573, 0x94B2,
+ 0x6575, 0x94B3,
+ 0x6576, 0x94B4,
+ 0x6578, 0x94B5,
+ 0x6579, 0x94B6,
+ 0x657A, 0x94B7,
+ 0x657B, 0x94B8,
+ 0x657C, 0x94B9,
+ 0x657D, 0x94BA,
+ 0x657E, 0x94BB,
+ 0x657F, 0x94BC,
+ 0x6580, 0x94BD,
+ 0x6581, 0x94BE,
+ 0x6582, 0x94BF,
+ 0x6583, 0x94C0,
+ 0x6584, 0x94C1,
+ 0x6585, 0x94C2,
+ 0x6586, 0x94C3,
+ 0x6588, 0x94C4,
+ 0x6589, 0x94C5,
+ 0x658A, 0x94C6,
+ 0x658D, 0x94C7,
+ 0x658E, 0x94C8,
+ 0x658F, 0x94C9,
+ 0x6592, 0x94CA,
+ 0x6594, 0x94CB,
+ 0x6595, 0x94CC,
+ 0x6596, 0x94CD,
+ 0x6598, 0x94CE,
+ 0x659A, 0x94CF,
+ 0x659D, 0x94D0,
+ 0x659E, 0x94D1,
+ 0x65A0, 0x94D2,
+ 0x65A2, 0x94D3,
+ 0x65A3, 0x94D4,
+ 0x65A6, 0x94D5,
+ 0x65A8, 0x94D6,
+ 0x65AA, 0x94D7,
+ 0x65AC, 0x94D8,
+ 0x65AE, 0x94D9,
+ 0x65B1, 0x94DA,
+ 0x65B2, 0x94DB,
+ 0x65B3, 0x94DC,
+ 0x65B4, 0x94DD,
+ 0x65B5, 0x94DE,
+ 0x65B6, 0x94DF,
+ 0x65B7, 0x94E0,
+ 0x65B8, 0x94E1,
+ 0x65BA, 0x94E2,
+ 0x65BB, 0x94E3,
+ 0x65BE, 0x94E4,
+ 0x65BF, 0x94E5,
+ 0x65C0, 0x94E6,
+ 0x65C2, 0x94E7,
+ 0x65C7, 0x94E8,
+ 0x65C8, 0x94E9,
+ 0x65C9, 0x94EA,
+ 0x65CA, 0x94EB,
+ 0x65CD, 0x94EC,
+ 0x65D0, 0x94ED,
+ 0x65D1, 0x94EE,
+ 0x65D3, 0x94EF,
+ 0x65D4, 0x94F0,
+ 0x65D5, 0x94F1,
+ 0x65D8, 0x94F2,
+ 0x65D9, 0x94F3,
+ 0x65DA, 0x94F4,
+ 0x65DB, 0x94F5,
+ 0x65DC, 0x94F6,
+ 0x65DD, 0x94F7,
+ 0x65DE, 0x94F8,
+ 0x65DF, 0x94F9,
+ 0x65E1, 0x94FA,
+ 0x65E3, 0x94FB,
+ 0x65E4, 0x94FC,
+ 0x65EA, 0x94FD,
+ 0x65EB, 0x94FE,
+ 0x65F2, 0x9540,
+ 0x65F3, 0x9541,
+ 0x65F4, 0x9542,
+ 0x65F5, 0x9543,
+ 0x65F8, 0x9544,
+ 0x65F9, 0x9545,
+ 0x65FB, 0x9546,
+ 0x65FC, 0x9547,
+ 0x65FD, 0x9548,
+ 0x65FE, 0x9549,
+ 0x65FF, 0x954A,
+ 0x6601, 0x954B,
+ 0x6604, 0x954C,
+ 0x6605, 0x954D,
+ 0x6607, 0x954E,
+ 0x6608, 0x954F,
+ 0x6609, 0x9550,
+ 0x660B, 0x9551,
+ 0x660D, 0x9552,
+ 0x6610, 0x9553,
+ 0x6611, 0x9554,
+ 0x6612, 0x9555,
+ 0x6616, 0x9556,
+ 0x6617, 0x9557,
+ 0x6618, 0x9558,
+ 0x661A, 0x9559,
+ 0x661B, 0x955A,
+ 0x661C, 0x955B,
+ 0x661E, 0x955C,
+ 0x6621, 0x955D,
+ 0x6622, 0x955E,
+ 0x6623, 0x955F,
+ 0x6624, 0x9560,
+ 0x6626, 0x9561,
+ 0x6629, 0x9562,
+ 0x662A, 0x9563,
+ 0x662B, 0x9564,
+ 0x662C, 0x9565,
+ 0x662E, 0x9566,
+ 0x6630, 0x9567,
+ 0x6632, 0x9568,
+ 0x6633, 0x9569,
+ 0x6637, 0x956A,
+ 0x6638, 0x956B,
+ 0x6639, 0x956C,
+ 0x663A, 0x956D,
+ 0x663B, 0x956E,
+ 0x663D, 0x956F,
+ 0x663F, 0x9570,
+ 0x6640, 0x9571,
+ 0x6642, 0x9572,
+ 0x6644, 0x9573,
+ 0x6645, 0x9574,
+ 0x6646, 0x9575,
+ 0x6647, 0x9576,
+ 0x6648, 0x9577,
+ 0x6649, 0x9578,
+ 0x664A, 0x9579,
+ 0x664D, 0x957A,
+ 0x664E, 0x957B,
+ 0x6650, 0x957C,
+ 0x6651, 0x957D,
+ 0x6658, 0x957E,
+ 0x6659, 0x9580,
+ 0x665B, 0x9581,
+ 0x665C, 0x9582,
+ 0x665D, 0x9583,
+ 0x665E, 0x9584,
+ 0x6660, 0x9585,
+ 0x6662, 0x9586,
+ 0x6663, 0x9587,
+ 0x6665, 0x9588,
+ 0x6667, 0x9589,
+ 0x6669, 0x958A,
+ 0x666A, 0x958B,
+ 0x666B, 0x958C,
+ 0x666C, 0x958D,
+ 0x666D, 0x958E,
+ 0x6671, 0x958F,
+ 0x6672, 0x9590,
+ 0x6673, 0x9591,
+ 0x6675, 0x9592,
+ 0x6678, 0x9593,
+ 0x6679, 0x9594,
+ 0x667B, 0x9595,
+ 0x667C, 0x9596,
+ 0x667D, 0x9597,
+ 0x667F, 0x9598,
+ 0x6680, 0x9599,
+ 0x6681, 0x959A,
+ 0x6683, 0x959B,
+ 0x6685, 0x959C,
+ 0x6686, 0x959D,
+ 0x6688, 0x959E,
+ 0x6689, 0x959F,
+ 0x668A, 0x95A0,
+ 0x668B, 0x95A1,
+ 0x668D, 0x95A2,
+ 0x668E, 0x95A3,
+ 0x668F, 0x95A4,
+ 0x6690, 0x95A5,
+ 0x6692, 0x95A6,
+ 0x6693, 0x95A7,
+ 0x6694, 0x95A8,
+ 0x6695, 0x95A9,
+ 0x6698, 0x95AA,
+ 0x6699, 0x95AB,
+ 0x669A, 0x95AC,
+ 0x669B, 0x95AD,
+ 0x669C, 0x95AE,
+ 0x669E, 0x95AF,
+ 0x669F, 0x95B0,
+ 0x66A0, 0x95B1,
+ 0x66A1, 0x95B2,
+ 0x66A2, 0x95B3,
+ 0x66A3, 0x95B4,
+ 0x66A4, 0x95B5,
+ 0x66A5, 0x95B6,
+ 0x66A6, 0x95B7,
+ 0x66A9, 0x95B8,
+ 0x66AA, 0x95B9,
+ 0x66AB, 0x95BA,
+ 0x66AC, 0x95BB,
+ 0x66AD, 0x95BC,
+ 0x66AF, 0x95BD,
+ 0x66B0, 0x95BE,
+ 0x66B1, 0x95BF,
+ 0x66B2, 0x95C0,
+ 0x66B3, 0x95C1,
+ 0x66B5, 0x95C2,
+ 0x66B6, 0x95C3,
+ 0x66B7, 0x95C4,
+ 0x66B8, 0x95C5,
+ 0x66BA, 0x95C6,
+ 0x66BB, 0x95C7,
+ 0x66BC, 0x95C8,
+ 0x66BD, 0x95C9,
+ 0x66BF, 0x95CA,
+ 0x66C0, 0x95CB,
+ 0x66C1, 0x95CC,
+ 0x66C2, 0x95CD,
+ 0x66C3, 0x95CE,
+ 0x66C4, 0x95CF,
+ 0x66C5, 0x95D0,
+ 0x66C6, 0x95D1,
+ 0x66C7, 0x95D2,
+ 0x66C8, 0x95D3,
+ 0x66C9, 0x95D4,
+ 0x66CA, 0x95D5,
+ 0x66CB, 0x95D6,
+ 0x66CC, 0x95D7,
+ 0x66CD, 0x95D8,
+ 0x66CE, 0x95D9,
+ 0x66CF, 0x95DA,
+ 0x66D0, 0x95DB,
+ 0x66D1, 0x95DC,
+ 0x66D2, 0x95DD,
+ 0x66D3, 0x95DE,
+ 0x66D4, 0x95DF,
+ 0x66D5, 0x95E0,
+ 0x66D6, 0x95E1,
+ 0x66D7, 0x95E2,
+ 0x66D8, 0x95E3,
+ 0x66DA, 0x95E4,
+ 0x66DE, 0x95E5,
+ 0x66DF, 0x95E6,
+ 0x66E0, 0x95E7,
+ 0x66E1, 0x95E8,
+ 0x66E2, 0x95E9,
+ 0x66E3, 0x95EA,
+ 0x66E4, 0x95EB,
+ 0x66E5, 0x95EC,
+ 0x66E7, 0x95ED,
+ 0x66E8, 0x95EE,
+ 0x66EA, 0x95EF,
+ 0x66EB, 0x95F0,
+ 0x66EC, 0x95F1,
+ 0x66ED, 0x95F2,
+ 0x66EE, 0x95F3,
+ 0x66EF, 0x95F4,
+ 0x66F1, 0x95F5,
+ 0x66F5, 0x95F6,
+ 0x66F6, 0x95F7,
+ 0x66F8, 0x95F8,
+ 0x66FA, 0x95F9,
+ 0x66FB, 0x95FA,
+ 0x66FD, 0x95FB,
+ 0x6701, 0x95FC,
+ 0x6702, 0x95FD,
+ 0x6703, 0x95FE,
+ 0x6704, 0x9640,
+ 0x6705, 0x9641,
+ 0x6706, 0x9642,
+ 0x6707, 0x9643,
+ 0x670C, 0x9644,
+ 0x670E, 0x9645,
+ 0x670F, 0x9646,
+ 0x6711, 0x9647,
+ 0x6712, 0x9648,
+ 0x6713, 0x9649,
+ 0x6716, 0x964A,
+ 0x6718, 0x964B,
+ 0x6719, 0x964C,
+ 0x671A, 0x964D,
+ 0x671C, 0x964E,
+ 0x671E, 0x964F,
+ 0x6720, 0x9650,
+ 0x6721, 0x9651,
+ 0x6722, 0x9652,
+ 0x6723, 0x9653,
+ 0x6724, 0x9654,
+ 0x6725, 0x9655,
+ 0x6727, 0x9656,
+ 0x6729, 0x9657,
+ 0x672E, 0x9658,
+ 0x6730, 0x9659,
+ 0x6732, 0x965A,
+ 0x6733, 0x965B,
+ 0x6736, 0x965C,
+ 0x6737, 0x965D,
+ 0x6738, 0x965E,
+ 0x6739, 0x965F,
+ 0x673B, 0x9660,
+ 0x673C, 0x9661,
+ 0x673E, 0x9662,
+ 0x673F, 0x9663,
+ 0x6741, 0x9664,
+ 0x6744, 0x9665,
+ 0x6745, 0x9666,
+ 0x6747, 0x9667,
+ 0x674A, 0x9668,
+ 0x674B, 0x9669,
+ 0x674D, 0x966A,
+ 0x6752, 0x966B,
+ 0x6754, 0x966C,
+ 0x6755, 0x966D,
+ 0x6757, 0x966E,
+ 0x6758, 0x966F,
+ 0x6759, 0x9670,
+ 0x675A, 0x9671,
+ 0x675B, 0x9672,
+ 0x675D, 0x9673,
+ 0x6762, 0x9674,
+ 0x6763, 0x9675,
+ 0x6764, 0x9676,
+ 0x6766, 0x9677,
+ 0x6767, 0x9678,
+ 0x676B, 0x9679,
+ 0x676C, 0x967A,
+ 0x676E, 0x967B,
+ 0x6771, 0x967C,
+ 0x6774, 0x967D,
+ 0x6776, 0x967E,
+ 0x6778, 0x9680,
+ 0x6779, 0x9681,
+ 0x677A, 0x9682,
+ 0x677B, 0x9683,
+ 0x677D, 0x9684,
+ 0x6780, 0x9685,
+ 0x6782, 0x9686,
+ 0x6783, 0x9687,
+ 0x6785, 0x9688,
+ 0x6786, 0x9689,
+ 0x6788, 0x968A,
+ 0x678A, 0x968B,
+ 0x678C, 0x968C,
+ 0x678D, 0x968D,
+ 0x678E, 0x968E,
+ 0x678F, 0x968F,
+ 0x6791, 0x9690,
+ 0x6792, 0x9691,
+ 0x6793, 0x9692,
+ 0x6794, 0x9693,
+ 0x6796, 0x9694,
+ 0x6799, 0x9695,
+ 0x679B, 0x9696,
+ 0x679F, 0x9697,
+ 0x67A0, 0x9698,
+ 0x67A1, 0x9699,
+ 0x67A4, 0x969A,
+ 0x67A6, 0x969B,
+ 0x67A9, 0x969C,
+ 0x67AC, 0x969D,
+ 0x67AE, 0x969E,
+ 0x67B1, 0x969F,
+ 0x67B2, 0x96A0,
+ 0x67B4, 0x96A1,
+ 0x67B9, 0x96A2,
+ 0x67BA, 0x96A3,
+ 0x67BB, 0x96A4,
+ 0x67BC, 0x96A5,
+ 0x67BD, 0x96A6,
+ 0x67BE, 0x96A7,
+ 0x67BF, 0x96A8,
+ 0x67C0, 0x96A9,
+ 0x67C2, 0x96AA,
+ 0x67C5, 0x96AB,
+ 0x67C6, 0x96AC,
+ 0x67C7, 0x96AD,
+ 0x67C8, 0x96AE,
+ 0x67C9, 0x96AF,
+ 0x67CA, 0x96B0,
+ 0x67CB, 0x96B1,
+ 0x67CC, 0x96B2,
+ 0x67CD, 0x96B3,
+ 0x67CE, 0x96B4,
+ 0x67D5, 0x96B5,
+ 0x67D6, 0x96B6,
+ 0x67D7, 0x96B7,
+ 0x67DB, 0x96B8,
+ 0x67DF, 0x96B9,
+ 0x67E1, 0x96BA,
+ 0x67E3, 0x96BB,
+ 0x67E4, 0x96BC,
+ 0x67E6, 0x96BD,
+ 0x67E7, 0x96BE,
+ 0x67E8, 0x96BF,
+ 0x67EA, 0x96C0,
+ 0x67EB, 0x96C1,
+ 0x67ED, 0x96C2,
+ 0x67EE, 0x96C3,
+ 0x67F2, 0x96C4,
+ 0x67F5, 0x96C5,
+ 0x67F6, 0x96C6,
+ 0x67F7, 0x96C7,
+ 0x67F8, 0x96C8,
+ 0x67F9, 0x96C9,
+ 0x67FA, 0x96CA,
+ 0x67FB, 0x96CB,
+ 0x67FC, 0x96CC,
+ 0x67FE, 0x96CD,
+ 0x6801, 0x96CE,
+ 0x6802, 0x96CF,
+ 0x6803, 0x96D0,
+ 0x6804, 0x96D1,
+ 0x6806, 0x96D2,
+ 0x680D, 0x96D3,
+ 0x6810, 0x96D4,
+ 0x6812, 0x96D5,
+ 0x6814, 0x96D6,
+ 0x6815, 0x96D7,
+ 0x6818, 0x96D8,
+ 0x6819, 0x96D9,
+ 0x681A, 0x96DA,
+ 0x681B, 0x96DB,
+ 0x681C, 0x96DC,
+ 0x681E, 0x96DD,
+ 0x681F, 0x96DE,
+ 0x6820, 0x96DF,
+ 0x6822, 0x96E0,
+ 0x6823, 0x96E1,
+ 0x6824, 0x96E2,
+ 0x6825, 0x96E3,
+ 0x6826, 0x96E4,
+ 0x6827, 0x96E5,
+ 0x6828, 0x96E6,
+ 0x682B, 0x96E7,
+ 0x682C, 0x96E8,
+ 0x682D, 0x96E9,
+ 0x682E, 0x96EA,
+ 0x682F, 0x96EB,
+ 0x6830, 0x96EC,
+ 0x6831, 0x96ED,
+ 0x6834, 0x96EE,
+ 0x6835, 0x96EF,
+ 0x6836, 0x96F0,
+ 0x683A, 0x96F1,
+ 0x683B, 0x96F2,
+ 0x683F, 0x96F3,
+ 0x6847, 0x96F4,
+ 0x684B, 0x96F5,
+ 0x684D, 0x96F6,
+ 0x684F, 0x96F7,
+ 0x6852, 0x96F8,
+ 0x6856, 0x96F9,
+ 0x6857, 0x96FA,
+ 0x6858, 0x96FB,
+ 0x6859, 0x96FC,
+ 0x685A, 0x96FD,
+ 0x685B, 0x96FE,
+ 0x685C, 0x9740,
+ 0x685D, 0x9741,
+ 0x685E, 0x9742,
+ 0x685F, 0x9743,
+ 0x686A, 0x9744,
+ 0x686C, 0x9745,
+ 0x686D, 0x9746,
+ 0x686E, 0x9747,
+ 0x686F, 0x9748,
+ 0x6870, 0x9749,
+ 0x6871, 0x974A,
+ 0x6872, 0x974B,
+ 0x6873, 0x974C,
+ 0x6875, 0x974D,
+ 0x6878, 0x974E,
+ 0x6879, 0x974F,
+ 0x687A, 0x9750,
+ 0x687B, 0x9751,
+ 0x687C, 0x9752,
+ 0x687D, 0x9753,
+ 0x687E, 0x9754,
+ 0x687F, 0x9755,
+ 0x6880, 0x9756,
+ 0x6882, 0x9757,
+ 0x6884, 0x9758,
+ 0x6887, 0x9759,
+ 0x6888, 0x975A,
+ 0x6889, 0x975B,
+ 0x688A, 0x975C,
+ 0x688B, 0x975D,
+ 0x688C, 0x975E,
+ 0x688D, 0x975F,
+ 0x688E, 0x9760,
+ 0x6890, 0x9761,
+ 0x6891, 0x9762,
+ 0x6892, 0x9763,
+ 0x6894, 0x9764,
+ 0x6895, 0x9765,
+ 0x6896, 0x9766,
+ 0x6898, 0x9767,
+ 0x6899, 0x9768,
+ 0x689A, 0x9769,
+ 0x689B, 0x976A,
+ 0x689C, 0x976B,
+ 0x689D, 0x976C,
+ 0x689E, 0x976D,
+ 0x689F, 0x976E,
+ 0x68A0, 0x976F,
+ 0x68A1, 0x9770,
+ 0x68A3, 0x9771,
+ 0x68A4, 0x9772,
+ 0x68A5, 0x9773,
+ 0x68A9, 0x9774,
+ 0x68AA, 0x9775,
+ 0x68AB, 0x9776,
+ 0x68AC, 0x9777,
+ 0x68AE, 0x9778,
+ 0x68B1, 0x9779,
+ 0x68B2, 0x977A,
+ 0x68B4, 0x977B,
+ 0x68B6, 0x977C,
+ 0x68B7, 0x977D,
+ 0x68B8, 0x977E,
+ 0x68B9, 0x9780,
+ 0x68BA, 0x9781,
+ 0x68BB, 0x9782,
+ 0x68BC, 0x9783,
+ 0x68BD, 0x9784,
+ 0x68BE, 0x9785,
+ 0x68BF, 0x9786,
+ 0x68C1, 0x9787,
+ 0x68C3, 0x9788,
+ 0x68C4, 0x9789,
+ 0x68C5, 0x978A,
+ 0x68C6, 0x978B,
+ 0x68C7, 0x978C,
+ 0x68C8, 0x978D,
+ 0x68CA, 0x978E,
+ 0x68CC, 0x978F,
+ 0x68CE, 0x9790,
+ 0x68CF, 0x9791,
+ 0x68D0, 0x9792,
+ 0x68D1, 0x9793,
+ 0x68D3, 0x9794,
+ 0x68D4, 0x9795,
+ 0x68D6, 0x9796,
+ 0x68D7, 0x9797,
+ 0x68D9, 0x9798,
+ 0x68DB, 0x9799,
+ 0x68DC, 0x979A,
+ 0x68DD, 0x979B,
+ 0x68DE, 0x979C,
+ 0x68DF, 0x979D,
+ 0x68E1, 0x979E,
+ 0x68E2, 0x979F,
+ 0x68E4, 0x97A0,
+ 0x68E5, 0x97A1,
+ 0x68E6, 0x97A2,
+ 0x68E7, 0x97A3,
+ 0x68E8, 0x97A4,
+ 0x68E9, 0x97A5,
+ 0x68EA, 0x97A6,
+ 0x68EB, 0x97A7,
+ 0x68EC, 0x97A8,
+ 0x68ED, 0x97A9,
+ 0x68EF, 0x97AA,
+ 0x68F2, 0x97AB,
+ 0x68F3, 0x97AC,
+ 0x68F4, 0x97AD,
+ 0x68F6, 0x97AE,
+ 0x68F7, 0x97AF,
+ 0x68F8, 0x97B0,
+ 0x68FB, 0x97B1,
+ 0x68FD, 0x97B2,
+ 0x68FE, 0x97B3,
+ 0x68FF, 0x97B4,
+ 0x6900, 0x97B5,
+ 0x6902, 0x97B6,
+ 0x6903, 0x97B7,
+ 0x6904, 0x97B8,
+ 0x6906, 0x97B9,
+ 0x6907, 0x97BA,
+ 0x6908, 0x97BB,
+ 0x6909, 0x97BC,
+ 0x690A, 0x97BD,
+ 0x690C, 0x97BE,
+ 0x690F, 0x97BF,
+ 0x6911, 0x97C0,
+ 0x6913, 0x97C1,
+ 0x6914, 0x97C2,
+ 0x6915, 0x97C3,
+ 0x6916, 0x97C4,
+ 0x6917, 0x97C5,
+ 0x6918, 0x97C6,
+ 0x6919, 0x97C7,
+ 0x691A, 0x97C8,
+ 0x691B, 0x97C9,
+ 0x691C, 0x97CA,
+ 0x691D, 0x97CB,
+ 0x691E, 0x97CC,
+ 0x6921, 0x97CD,
+ 0x6922, 0x97CE,
+ 0x6923, 0x97CF,
+ 0x6925, 0x97D0,
+ 0x6926, 0x97D1,
+ 0x6927, 0x97D2,
+ 0x6928, 0x97D3,
+ 0x6929, 0x97D4,
+ 0x692A, 0x97D5,
+ 0x692B, 0x97D6,
+ 0x692C, 0x97D7,
+ 0x692E, 0x97D8,
+ 0x692F, 0x97D9,
+ 0x6931, 0x97DA,
+ 0x6932, 0x97DB,
+ 0x6933, 0x97DC,
+ 0x6935, 0x97DD,
+ 0x6936, 0x97DE,
+ 0x6937, 0x97DF,
+ 0x6938, 0x97E0,
+ 0x693A, 0x97E1,
+ 0x693B, 0x97E2,
+ 0x693C, 0x97E3,
+ 0x693E, 0x97E4,
+ 0x6940, 0x97E5,
+ 0x6941, 0x97E6,
+ 0x6943, 0x97E7,
+ 0x6944, 0x97E8,
+ 0x6945, 0x97E9,
+ 0x6946, 0x97EA,
+ 0x6947, 0x97EB,
+ 0x6948, 0x97EC,
+ 0x6949, 0x97ED,
+ 0x694A, 0x97EE,
+ 0x694B, 0x97EF,
+ 0x694C, 0x97F0,
+ 0x694D, 0x97F1,
+ 0x694E, 0x97F2,
+ 0x694F, 0x97F3,
+ 0x6950, 0x97F4,
+ 0x6951, 0x97F5,
+ 0x6952, 0x97F6,
+ 0x6953, 0x97F7,
+ 0x6955, 0x97F8,
+ 0x6956, 0x97F9,
+ 0x6958, 0x97FA,
+ 0x6959, 0x97FB,
+ 0x695B, 0x97FC,
+ 0x695C, 0x97FD,
+ 0x695F, 0x97FE,
+ 0x6961, 0x9840,
+ 0x6962, 0x9841,
+ 0x6964, 0x9842,
+ 0x6965, 0x9843,
+ 0x6967, 0x9844,
+ 0x6968, 0x9845,
+ 0x6969, 0x9846,
+ 0x696A, 0x9847,
+ 0x696C, 0x9848,
+ 0x696D, 0x9849,
+ 0x696F, 0x984A,
+ 0x6970, 0x984B,
+ 0x6972, 0x984C,
+ 0x6973, 0x984D,
+ 0x6974, 0x984E,
+ 0x6975, 0x984F,
+ 0x6976, 0x9850,
+ 0x697A, 0x9851,
+ 0x697B, 0x9852,
+ 0x697D, 0x9853,
+ 0x697E, 0x9854,
+ 0x697F, 0x9855,
+ 0x6981, 0x9856,
+ 0x6983, 0x9857,
+ 0x6985, 0x9858,
+ 0x698A, 0x9859,
+ 0x698B, 0x985A,
+ 0x698C, 0x985B,
+ 0x698E, 0x985C,
+ 0x698F, 0x985D,
+ 0x6990, 0x985E,
+ 0x6991, 0x985F,
+ 0x6992, 0x9860,
+ 0x6993, 0x9861,
+ 0x6996, 0x9862,
+ 0x6997, 0x9863,
+ 0x6999, 0x9864,
+ 0x699A, 0x9865,
+ 0x699D, 0x9866,
+ 0x699E, 0x9867,
+ 0x699F, 0x9868,
+ 0x69A0, 0x9869,
+ 0x69A1, 0x986A,
+ 0x69A2, 0x986B,
+ 0x69A3, 0x986C,
+ 0x69A4, 0x986D,
+ 0x69A5, 0x986E,
+ 0x69A6, 0x986F,
+ 0x69A9, 0x9870,
+ 0x69AA, 0x9871,
+ 0x69AC, 0x9872,
+ 0x69AE, 0x9873,
+ 0x69AF, 0x9874,
+ 0x69B0, 0x9875,
+ 0x69B2, 0x9876,
+ 0x69B3, 0x9877,
+ 0x69B5, 0x9878,
+ 0x69B6, 0x9879,
+ 0x69B8, 0x987A,
+ 0x69B9, 0x987B,
+ 0x69BA, 0x987C,
+ 0x69BC, 0x987D,
+ 0x69BD, 0x987E,
+ 0x69BE, 0x9880,
+ 0x69BF, 0x9881,
+ 0x69C0, 0x9882,
+ 0x69C2, 0x9883,
+ 0x69C3, 0x9884,
+ 0x69C4, 0x9885,
+ 0x69C5, 0x9886,
+ 0x69C6, 0x9887,
+ 0x69C7, 0x9888,
+ 0x69C8, 0x9889,
+ 0x69C9, 0x988A,
+ 0x69CB, 0x988B,
+ 0x69CD, 0x988C,
+ 0x69CF, 0x988D,
+ 0x69D1, 0x988E,
+ 0x69D2, 0x988F,
+ 0x69D3, 0x9890,
+ 0x69D5, 0x9891,
+ 0x69D6, 0x9892,
+ 0x69D7, 0x9893,
+ 0x69D8, 0x9894,
+ 0x69D9, 0x9895,
+ 0x69DA, 0x9896,
+ 0x69DC, 0x9897,
+ 0x69DD, 0x9898,
+ 0x69DE, 0x9899,
+ 0x69E1, 0x989A,
+ 0x69E2, 0x989B,
+ 0x69E3, 0x989C,
+ 0x69E4, 0x989D,
+ 0x69E5, 0x989E,
+ 0x69E6, 0x989F,
+ 0x69E7, 0x98A0,
+ 0x69E8, 0x98A1,
+ 0x69E9, 0x98A2,
+ 0x69EA, 0x98A3,
+ 0x69EB, 0x98A4,
+ 0x69EC, 0x98A5,
+ 0x69EE, 0x98A6,
+ 0x69EF, 0x98A7,
+ 0x69F0, 0x98A8,
+ 0x69F1, 0x98A9,
+ 0x69F3, 0x98AA,
+ 0x69F4, 0x98AB,
+ 0x69F5, 0x98AC,
+ 0x69F6, 0x98AD,
+ 0x69F7, 0x98AE,
+ 0x69F8, 0x98AF,
+ 0x69F9, 0x98B0,
+ 0x69FA, 0x98B1,
+ 0x69FB, 0x98B2,
+ 0x69FC, 0x98B3,
+ 0x69FE, 0x98B4,
+ 0x6A00, 0x98B5,
+ 0x6A01, 0x98B6,
+ 0x6A02, 0x98B7,
+ 0x6A03, 0x98B8,
+ 0x6A04, 0x98B9,
+ 0x6A05, 0x98BA,
+ 0x6A06, 0x98BB,
+ 0x6A07, 0x98BC,
+ 0x6A08, 0x98BD,
+ 0x6A09, 0x98BE,
+ 0x6A0B, 0x98BF,
+ 0x6A0C, 0x98C0,
+ 0x6A0D, 0x98C1,
+ 0x6A0E, 0x98C2,
+ 0x6A0F, 0x98C3,
+ 0x6A10, 0x98C4,
+ 0x6A11, 0x98C5,
+ 0x6A12, 0x98C6,
+ 0x6A13, 0x98C7,
+ 0x6A14, 0x98C8,
+ 0x6A15, 0x98C9,
+ 0x6A16, 0x98CA,
+ 0x6A19, 0x98CB,
+ 0x6A1A, 0x98CC,
+ 0x6A1B, 0x98CD,
+ 0x6A1C, 0x98CE,
+ 0x6A1D, 0x98CF,
+ 0x6A1E, 0x98D0,
+ 0x6A20, 0x98D1,
+ 0x6A22, 0x98D2,
+ 0x6A23, 0x98D3,
+ 0x6A24, 0x98D4,
+ 0x6A25, 0x98D5,
+ 0x6A26, 0x98D6,
+ 0x6A27, 0x98D7,
+ 0x6A29, 0x98D8,
+ 0x6A2B, 0x98D9,
+ 0x6A2C, 0x98DA,
+ 0x6A2D, 0x98DB,
+ 0x6A2E, 0x98DC,
+ 0x6A30, 0x98DD,
+ 0x6A32, 0x98DE,
+ 0x6A33, 0x98DF,
+ 0x6A34, 0x98E0,
+ 0x6A36, 0x98E1,
+ 0x6A37, 0x98E2,
+ 0x6A38, 0x98E3,
+ 0x6A39, 0x98E4,
+ 0x6A3A, 0x98E5,
+ 0x6A3B, 0x98E6,
+ 0x6A3C, 0x98E7,
+ 0x6A3F, 0x98E8,
+ 0x6A40, 0x98E9,
+ 0x6A41, 0x98EA,
+ 0x6A42, 0x98EB,
+ 0x6A43, 0x98EC,
+ 0x6A45, 0x98ED,
+ 0x6A46, 0x98EE,
+ 0x6A48, 0x98EF,
+ 0x6A49, 0x98F0,
+ 0x6A4A, 0x98F1,
+ 0x6A4B, 0x98F2,
+ 0x6A4C, 0x98F3,
+ 0x6A4D, 0x98F4,
+ 0x6A4E, 0x98F5,
+ 0x6A4F, 0x98F6,
+ 0x6A51, 0x98F7,
+ 0x6A52, 0x98F8,
+ 0x6A53, 0x98F9,
+ 0x6A54, 0x98FA,
+ 0x6A55, 0x98FB,
+ 0x6A56, 0x98FC,
+ 0x6A57, 0x98FD,
+ 0x6A5A, 0x98FE,
+ 0x6A5C, 0x9940,
+ 0x6A5D, 0x9941,
+ 0x6A5E, 0x9942,
+ 0x6A5F, 0x9943,
+ 0x6A60, 0x9944,
+ 0x6A62, 0x9945,
+ 0x6A63, 0x9946,
+ 0x6A64, 0x9947,
+ 0x6A66, 0x9948,
+ 0x6A67, 0x9949,
+ 0x6A68, 0x994A,
+ 0x6A69, 0x994B,
+ 0x6A6A, 0x994C,
+ 0x6A6B, 0x994D,
+ 0x6A6C, 0x994E,
+ 0x6A6D, 0x994F,
+ 0x6A6E, 0x9950,
+ 0x6A6F, 0x9951,
+ 0x6A70, 0x9952,
+ 0x6A72, 0x9953,
+ 0x6A73, 0x9954,
+ 0x6A74, 0x9955,
+ 0x6A75, 0x9956,
+ 0x6A76, 0x9957,
+ 0x6A77, 0x9958,
+ 0x6A78, 0x9959,
+ 0x6A7A, 0x995A,
+ 0x6A7B, 0x995B,
+ 0x6A7D, 0x995C,
+ 0x6A7E, 0x995D,
+ 0x6A7F, 0x995E,
+ 0x6A81, 0x995F,
+ 0x6A82, 0x9960,
+ 0x6A83, 0x9961,
+ 0x6A85, 0x9962,
+ 0x6A86, 0x9963,
+ 0x6A87, 0x9964,
+ 0x6A88, 0x9965,
+ 0x6A89, 0x9966,
+ 0x6A8A, 0x9967,
+ 0x6A8B, 0x9968,
+ 0x6A8C, 0x9969,
+ 0x6A8D, 0x996A,
+ 0x6A8F, 0x996B,
+ 0x6A92, 0x996C,
+ 0x6A93, 0x996D,
+ 0x6A94, 0x996E,
+ 0x6A95, 0x996F,
+ 0x6A96, 0x9970,
+ 0x6A98, 0x9971,
+ 0x6A99, 0x9972,
+ 0x6A9A, 0x9973,
+ 0x6A9B, 0x9974,
+ 0x6A9C, 0x9975,
+ 0x6A9D, 0x9976,
+ 0x6A9E, 0x9977,
+ 0x6A9F, 0x9978,
+ 0x6AA1, 0x9979,
+ 0x6AA2, 0x997A,
+ 0x6AA3, 0x997B,
+ 0x6AA4, 0x997C,
+ 0x6AA5, 0x997D,
+ 0x6AA6, 0x997E,
+ 0x6AA7, 0x9980,
+ 0x6AA8, 0x9981,
+ 0x6AAA, 0x9982,
+ 0x6AAD, 0x9983,
+ 0x6AAE, 0x9984,
+ 0x6AAF, 0x9985,
+ 0x6AB0, 0x9986,
+ 0x6AB1, 0x9987,
+ 0x6AB2, 0x9988,
+ 0x6AB3, 0x9989,
+ 0x6AB4, 0x998A,
+ 0x6AB5, 0x998B,
+ 0x6AB6, 0x998C,
+ 0x6AB7, 0x998D,
+ 0x6AB8, 0x998E,
+ 0x6AB9, 0x998F,
+ 0x6ABA, 0x9990,
+ 0x6ABB, 0x9991,
+ 0x6ABC, 0x9992,
+ 0x6ABD, 0x9993,
+ 0x6ABE, 0x9994,
+ 0x6ABF, 0x9995,
+ 0x6AC0, 0x9996,
+ 0x6AC1, 0x9997,
+ 0x6AC2, 0x9998,
+ 0x6AC3, 0x9999,
+ 0x6AC4, 0x999A,
+ 0x6AC5, 0x999B,
+ 0x6AC6, 0x999C,
+ 0x6AC7, 0x999D,
+ 0x6AC8, 0x999E,
+ 0x6AC9, 0x999F,
+ 0x6ACA, 0x99A0,
+ 0x6ACB, 0x99A1,
+ 0x6ACC, 0x99A2,
+ 0x6ACD, 0x99A3,
+ 0x6ACE, 0x99A4,
+ 0x6ACF, 0x99A5,
+ 0x6AD0, 0x99A6,
+ 0x6AD1, 0x99A7,
+ 0x6AD2, 0x99A8,
+ 0x6AD3, 0x99A9,
+ 0x6AD4, 0x99AA,
+ 0x6AD5, 0x99AB,
+ 0x6AD6, 0x99AC,
+ 0x6AD7, 0x99AD,
+ 0x6AD8, 0x99AE,
+ 0x6AD9, 0x99AF,
+ 0x6ADA, 0x99B0,
+ 0x6ADB, 0x99B1,
+ 0x6ADC, 0x99B2,
+ 0x6ADD, 0x99B3,
+ 0x6ADE, 0x99B4,
+ 0x6ADF, 0x99B5,
+ 0x6AE0, 0x99B6,
+ 0x6AE1, 0x99B7,
+ 0x6AE2, 0x99B8,
+ 0x6AE3, 0x99B9,
+ 0x6AE4, 0x99BA,
+ 0x6AE5, 0x99BB,
+ 0x6AE6, 0x99BC,
+ 0x6AE7, 0x99BD,
+ 0x6AE8, 0x99BE,
+ 0x6AE9, 0x99BF,
+ 0x6AEA, 0x99C0,
+ 0x6AEB, 0x99C1,
+ 0x6AEC, 0x99C2,
+ 0x6AED, 0x99C3,
+ 0x6AEE, 0x99C4,
+ 0x6AEF, 0x99C5,
+ 0x6AF0, 0x99C6,
+ 0x6AF1, 0x99C7,
+ 0x6AF2, 0x99C8,
+ 0x6AF3, 0x99C9,
+ 0x6AF4, 0x99CA,
+ 0x6AF5, 0x99CB,
+ 0x6AF6, 0x99CC,
+ 0x6AF7, 0x99CD,
+ 0x6AF8, 0x99CE,
+ 0x6AF9, 0x99CF,
+ 0x6AFA, 0x99D0,
+ 0x6AFB, 0x99D1,
+ 0x6AFC, 0x99D2,
+ 0x6AFD, 0x99D3,
+ 0x6AFE, 0x99D4,
+ 0x6AFF, 0x99D5,
+ 0x6B00, 0x99D6,
+ 0x6B01, 0x99D7,
+ 0x6B02, 0x99D8,
+ 0x6B03, 0x99D9,
+ 0x6B04, 0x99DA,
+ 0x6B05, 0x99DB,
+ 0x6B06, 0x99DC,
+ 0x6B07, 0x99DD,
+ 0x6B08, 0x99DE,
+ 0x6B09, 0x99DF,
+ 0x6B0A, 0x99E0,
+ 0x6B0B, 0x99E1,
+ 0x6B0C, 0x99E2,
+ 0x6B0D, 0x99E3,
+ 0x6B0E, 0x99E4,
+ 0x6B0F, 0x99E5,
+ 0x6B10, 0x99E6,
+ 0x6B11, 0x99E7,
+ 0x6B12, 0x99E8,
+ 0x6B13, 0x99E9,
+ 0x6B14, 0x99EA,
+ 0x6B15, 0x99EB,
+ 0x6B16, 0x99EC,
+ 0x6B17, 0x99ED,
+ 0x6B18, 0x99EE,
+ 0x6B19, 0x99EF,
+ 0x6B1A, 0x99F0,
+ 0x6B1B, 0x99F1,
+ 0x6B1C, 0x99F2,
+ 0x6B1D, 0x99F3,
+ 0x6B1E, 0x99F4,
+ 0x6B1F, 0x99F5,
+ 0x6B25, 0x99F6,
+ 0x6B26, 0x99F7,
+ 0x6B28, 0x99F8,
+ 0x6B29, 0x99F9,
+ 0x6B2A, 0x99FA,
+ 0x6B2B, 0x99FB,
+ 0x6B2C, 0x99FC,
+ 0x6B2D, 0x99FD,
+ 0x6B2E, 0x99FE,
+ 0x6B2F, 0x9A40,
+ 0x6B30, 0x9A41,
+ 0x6B31, 0x9A42,
+ 0x6B33, 0x9A43,
+ 0x6B34, 0x9A44,
+ 0x6B35, 0x9A45,
+ 0x6B36, 0x9A46,
+ 0x6B38, 0x9A47,
+ 0x6B3B, 0x9A48,
+ 0x6B3C, 0x9A49,
+ 0x6B3D, 0x9A4A,
+ 0x6B3F, 0x9A4B,
+ 0x6B40, 0x9A4C,
+ 0x6B41, 0x9A4D,
+ 0x6B42, 0x9A4E,
+ 0x6B44, 0x9A4F,
+ 0x6B45, 0x9A50,
+ 0x6B48, 0x9A51,
+ 0x6B4A, 0x9A52,
+ 0x6B4B, 0x9A53,
+ 0x6B4D, 0x9A54,
+ 0x6B4E, 0x9A55,
+ 0x6B4F, 0x9A56,
+ 0x6B50, 0x9A57,
+ 0x6B51, 0x9A58,
+ 0x6B52, 0x9A59,
+ 0x6B53, 0x9A5A,
+ 0x6B54, 0x9A5B,
+ 0x6B55, 0x9A5C,
+ 0x6B56, 0x9A5D,
+ 0x6B57, 0x9A5E,
+ 0x6B58, 0x9A5F,
+ 0x6B5A, 0x9A60,
+ 0x6B5B, 0x9A61,
+ 0x6B5C, 0x9A62,
+ 0x6B5D, 0x9A63,
+ 0x6B5E, 0x9A64,
+ 0x6B5F, 0x9A65,
+ 0x6B60, 0x9A66,
+ 0x6B61, 0x9A67,
+ 0x6B68, 0x9A68,
+ 0x6B69, 0x9A69,
+ 0x6B6B, 0x9A6A,
+ 0x6B6C, 0x9A6B,
+ 0x6B6D, 0x9A6C,
+ 0x6B6E, 0x9A6D,
+ 0x6B6F, 0x9A6E,
+ 0x6B70, 0x9A6F,
+ 0x6B71, 0x9A70,
+ 0x6B72, 0x9A71,
+ 0x6B73, 0x9A72,
+ 0x6B74, 0x9A73,
+ 0x6B75, 0x9A74,
+ 0x6B76, 0x9A75,
+ 0x6B77, 0x9A76,
+ 0x6B78, 0x9A77,
+ 0x6B7A, 0x9A78,
+ 0x6B7D, 0x9A79,
+ 0x6B7E, 0x9A7A,
+ 0x6B7F, 0x9A7B,
+ 0x6B80, 0x9A7C,
+ 0x6B85, 0x9A7D,
+ 0x6B88, 0x9A7E,
+ 0x6B8C, 0x9A80,
+ 0x6B8E, 0x9A81,
+ 0x6B8F, 0x9A82,
+ 0x6B90, 0x9A83,
+ 0x6B91, 0x9A84,
+ 0x6B94, 0x9A85,
+ 0x6B95, 0x9A86,
+ 0x6B97, 0x9A87,
+ 0x6B98, 0x9A88,
+ 0x6B99, 0x9A89,
+ 0x6B9C, 0x9A8A,
+ 0x6B9D, 0x9A8B,
+ 0x6B9E, 0x9A8C,
+ 0x6B9F, 0x9A8D,
+ 0x6BA0, 0x9A8E,
+ 0x6BA2, 0x9A8F,
+ 0x6BA3, 0x9A90,
+ 0x6BA4, 0x9A91,
+ 0x6BA5, 0x9A92,
+ 0x6BA6, 0x9A93,
+ 0x6BA7, 0x9A94,
+ 0x6BA8, 0x9A95,
+ 0x6BA9, 0x9A96,
+ 0x6BAB, 0x9A97,
+ 0x6BAC, 0x9A98,
+ 0x6BAD, 0x9A99,
+ 0x6BAE, 0x9A9A,
+ 0x6BAF, 0x9A9B,
+ 0x6BB0, 0x9A9C,
+ 0x6BB1, 0x9A9D,
+ 0x6BB2, 0x9A9E,
+ 0x6BB6, 0x9A9F,
+ 0x6BB8, 0x9AA0,
+ 0x6BB9, 0x9AA1,
+ 0x6BBA, 0x9AA2,
+ 0x6BBB, 0x9AA3,
+ 0x6BBC, 0x9AA4,
+ 0x6BBD, 0x9AA5,
+ 0x6BBE, 0x9AA6,
+ 0x6BC0, 0x9AA7,
+ 0x6BC3, 0x9AA8,
+ 0x6BC4, 0x9AA9,
+ 0x6BC6, 0x9AAA,
+ 0x6BC7, 0x9AAB,
+ 0x6BC8, 0x9AAC,
+ 0x6BC9, 0x9AAD,
+ 0x6BCA, 0x9AAE,
+ 0x6BCC, 0x9AAF,
+ 0x6BCE, 0x9AB0,
+ 0x6BD0, 0x9AB1,
+ 0x6BD1, 0x9AB2,
+ 0x6BD8, 0x9AB3,
+ 0x6BDA, 0x9AB4,
+ 0x6BDC, 0x9AB5,
+ 0x6BDD, 0x9AB6,
+ 0x6BDE, 0x9AB7,
+ 0x6BDF, 0x9AB8,
+ 0x6BE0, 0x9AB9,
+ 0x6BE2, 0x9ABA,
+ 0x6BE3, 0x9ABB,
+ 0x6BE4, 0x9ABC,
+ 0x6BE5, 0x9ABD,
+ 0x6BE6, 0x9ABE,
+ 0x6BE7, 0x9ABF,
+ 0x6BE8, 0x9AC0,
+ 0x6BE9, 0x9AC1,
+ 0x6BEC, 0x9AC2,
+ 0x6BED, 0x9AC3,
+ 0x6BEE, 0x9AC4,
+ 0x6BF0, 0x9AC5,
+ 0x6BF1, 0x9AC6,
+ 0x6BF2, 0x9AC7,
+ 0x6BF4, 0x9AC8,
+ 0x6BF6, 0x9AC9,
+ 0x6BF7, 0x9ACA,
+ 0x6BF8, 0x9ACB,
+ 0x6BFA, 0x9ACC,
+ 0x6BFB, 0x9ACD,
+ 0x6BFC, 0x9ACE,
+ 0x6BFE, 0x9ACF,
+ 0x6BFF, 0x9AD0,
+ 0x6C00, 0x9AD1,
+ 0x6C01, 0x9AD2,
+ 0x6C02, 0x9AD3,
+ 0x6C03, 0x9AD4,
+ 0x6C04, 0x9AD5,
+ 0x6C08, 0x9AD6,
+ 0x6C09, 0x9AD7,
+ 0x6C0A, 0x9AD8,
+ 0x6C0B, 0x9AD9,
+ 0x6C0C, 0x9ADA,
+ 0x6C0E, 0x9ADB,
+ 0x6C12, 0x9ADC,
+ 0x6C17, 0x9ADD,
+ 0x6C1C, 0x9ADE,
+ 0x6C1D, 0x9ADF,
+ 0x6C1E, 0x9AE0,
+ 0x6C20, 0x9AE1,
+ 0x6C23, 0x9AE2,
+ 0x6C25, 0x9AE3,
+ 0x6C2B, 0x9AE4,
+ 0x6C2C, 0x9AE5,
+ 0x6C2D, 0x9AE6,
+ 0x6C31, 0x9AE7,
+ 0x6C33, 0x9AE8,
+ 0x6C36, 0x9AE9,
+ 0x6C37, 0x9AEA,
+ 0x6C39, 0x9AEB,
+ 0x6C3A, 0x9AEC,
+ 0x6C3B, 0x9AED,
+ 0x6C3C, 0x9AEE,
+ 0x6C3E, 0x9AEF,
+ 0x6C3F, 0x9AF0,
+ 0x6C43, 0x9AF1,
+ 0x6C44, 0x9AF2,
+ 0x6C45, 0x9AF3,
+ 0x6C48, 0x9AF4,
+ 0x6C4B, 0x9AF5,
+ 0x6C4C, 0x9AF6,
+ 0x6C4D, 0x9AF7,
+ 0x6C4E, 0x9AF8,
+ 0x6C4F, 0x9AF9,
+ 0x6C51, 0x9AFA,
+ 0x6C52, 0x9AFB,
+ 0x6C53, 0x9AFC,
+ 0x6C56, 0x9AFD,
+ 0x6C58, 0x9AFE,
+ 0x6C59, 0x9B40,
+ 0x6C5A, 0x9B41,
+ 0x6C62, 0x9B42,
+ 0x6C63, 0x9B43,
+ 0x6C65, 0x9B44,
+ 0x6C66, 0x9B45,
+ 0x6C67, 0x9B46,
+ 0x6C6B, 0x9B47,
+ 0x6C6C, 0x9B48,
+ 0x6C6D, 0x9B49,
+ 0x6C6E, 0x9B4A,
+ 0x6C6F, 0x9B4B,
+ 0x6C71, 0x9B4C,
+ 0x6C73, 0x9B4D,
+ 0x6C75, 0x9B4E,
+ 0x6C77, 0x9B4F,
+ 0x6C78, 0x9B50,
+ 0x6C7A, 0x9B51,
+ 0x6C7B, 0x9B52,
+ 0x6C7C, 0x9B53,
+ 0x6C7F, 0x9B54,
+ 0x6C80, 0x9B55,
+ 0x6C84, 0x9B56,
+ 0x6C87, 0x9B57,
+ 0x6C8A, 0x9B58,
+ 0x6C8B, 0x9B59,
+ 0x6C8D, 0x9B5A,
+ 0x6C8E, 0x9B5B,
+ 0x6C91, 0x9B5C,
+ 0x6C92, 0x9B5D,
+ 0x6C95, 0x9B5E,
+ 0x6C96, 0x9B5F,
+ 0x6C97, 0x9B60,
+ 0x6C98, 0x9B61,
+ 0x6C9A, 0x9B62,
+ 0x6C9C, 0x9B63,
+ 0x6C9D, 0x9B64,
+ 0x6C9E, 0x9B65,
+ 0x6CA0, 0x9B66,
+ 0x6CA2, 0x9B67,
+ 0x6CA8, 0x9B68,
+ 0x6CAC, 0x9B69,
+ 0x6CAF, 0x9B6A,
+ 0x6CB0, 0x9B6B,
+ 0x6CB4, 0x9B6C,
+ 0x6CB5, 0x9B6D,
+ 0x6CB6, 0x9B6E,
+ 0x6CB7, 0x9B6F,
+ 0x6CBA, 0x9B70,
+ 0x6CC0, 0x9B71,
+ 0x6CC1, 0x9B72,
+ 0x6CC2, 0x9B73,
+ 0x6CC3, 0x9B74,
+ 0x6CC6, 0x9B75,
+ 0x6CC7, 0x9B76,
+ 0x6CC8, 0x9B77,
+ 0x6CCB, 0x9B78,
+ 0x6CCD, 0x9B79,
+ 0x6CCE, 0x9B7A,
+ 0x6CCF, 0x9B7B,
+ 0x6CD1, 0x9B7C,
+ 0x6CD2, 0x9B7D,
+ 0x6CD8, 0x9B7E,
+ 0x6CD9, 0x9B80,
+ 0x6CDA, 0x9B81,
+ 0x6CDC, 0x9B82,
+ 0x6CDD, 0x9B83,
+ 0x6CDF, 0x9B84,
+ 0x6CE4, 0x9B85,
+ 0x6CE6, 0x9B86,
+ 0x6CE7, 0x9B87,
+ 0x6CE9, 0x9B88,
+ 0x6CEC, 0x9B89,
+ 0x6CED, 0x9B8A,
+ 0x6CF2, 0x9B8B,
+ 0x6CF4, 0x9B8C,
+ 0x6CF9, 0x9B8D,
+ 0x6CFF, 0x9B8E,
+ 0x6D00, 0x9B8F,
+ 0x6D02, 0x9B90,
+ 0x6D03, 0x9B91,
+ 0x6D05, 0x9B92,
+ 0x6D06, 0x9B93,
+ 0x6D08, 0x9B94,
+ 0x6D09, 0x9B95,
+ 0x6D0A, 0x9B96,
+ 0x6D0D, 0x9B97,
+ 0x6D0F, 0x9B98,
+ 0x6D10, 0x9B99,
+ 0x6D11, 0x9B9A,
+ 0x6D13, 0x9B9B,
+ 0x6D14, 0x9B9C,
+ 0x6D15, 0x9B9D,
+ 0x6D16, 0x9B9E,
+ 0x6D18, 0x9B9F,
+ 0x6D1C, 0x9BA0,
+ 0x6D1D, 0x9BA1,
+ 0x6D1F, 0x9BA2,
+ 0x6D20, 0x9BA3,
+ 0x6D21, 0x9BA4,
+ 0x6D22, 0x9BA5,
+ 0x6D23, 0x9BA6,
+ 0x6D24, 0x9BA7,
+ 0x6D26, 0x9BA8,
+ 0x6D28, 0x9BA9,
+ 0x6D29, 0x9BAA,
+ 0x6D2C, 0x9BAB,
+ 0x6D2D, 0x9BAC,
+ 0x6D2F, 0x9BAD,
+ 0x6D30, 0x9BAE,
+ 0x6D34, 0x9BAF,
+ 0x6D36, 0x9BB0,
+ 0x6D37, 0x9BB1,
+ 0x6D38, 0x9BB2,
+ 0x6D3A, 0x9BB3,
+ 0x6D3F, 0x9BB4,
+ 0x6D40, 0x9BB5,
+ 0x6D42, 0x9BB6,
+ 0x6D44, 0x9BB7,
+ 0x6D49, 0x9BB8,
+ 0x6D4C, 0x9BB9,
+ 0x6D50, 0x9BBA,
+ 0x6D55, 0x9BBB,
+ 0x6D56, 0x9BBC,
+ 0x6D57, 0x9BBD,
+ 0x6D58, 0x9BBE,
+ 0x6D5B, 0x9BBF,
+ 0x6D5D, 0x9BC0,
+ 0x6D5F, 0x9BC1,
+ 0x6D61, 0x9BC2,
+ 0x6D62, 0x9BC3,
+ 0x6D64, 0x9BC4,
+ 0x6D65, 0x9BC5,
+ 0x6D67, 0x9BC6,
+ 0x6D68, 0x9BC7,
+ 0x6D6B, 0x9BC8,
+ 0x6D6C, 0x9BC9,
+ 0x6D6D, 0x9BCA,
+ 0x6D70, 0x9BCB,
+ 0x6D71, 0x9BCC,
+ 0x6D72, 0x9BCD,
+ 0x6D73, 0x9BCE,
+ 0x6D75, 0x9BCF,
+ 0x6D76, 0x9BD0,
+ 0x6D79, 0x9BD1,
+ 0x6D7A, 0x9BD2,
+ 0x6D7B, 0x9BD3,
+ 0x6D7D, 0x9BD4,
+ 0x6D7E, 0x9BD5,
+ 0x6D7F, 0x9BD6,
+ 0x6D80, 0x9BD7,
+ 0x6D81, 0x9BD8,
+ 0x6D83, 0x9BD9,
+ 0x6D84, 0x9BDA,
+ 0x6D86, 0x9BDB,
+ 0x6D87, 0x9BDC,
+ 0x6D8A, 0x9BDD,
+ 0x6D8B, 0x9BDE,
+ 0x6D8D, 0x9BDF,
+ 0x6D8F, 0x9BE0,
+ 0x6D90, 0x9BE1,
+ 0x6D92, 0x9BE2,
+ 0x6D96, 0x9BE3,
+ 0x6D97, 0x9BE4,
+ 0x6D98, 0x9BE5,
+ 0x6D99, 0x9BE6,
+ 0x6D9A, 0x9BE7,
+ 0x6D9C, 0x9BE8,
+ 0x6DA2, 0x9BE9,
+ 0x6DA5, 0x9BEA,
+ 0x6DAC, 0x9BEB,
+ 0x6DAD, 0x9BEC,
+ 0x6DB0, 0x9BED,
+ 0x6DB1, 0x9BEE,
+ 0x6DB3, 0x9BEF,
+ 0x6DB4, 0x9BF0,
+ 0x6DB6, 0x9BF1,
+ 0x6DB7, 0x9BF2,
+ 0x6DB9, 0x9BF3,
+ 0x6DBA, 0x9BF4,
+ 0x6DBB, 0x9BF5,
+ 0x6DBC, 0x9BF6,
+ 0x6DBD, 0x9BF7,
+ 0x6DBE, 0x9BF8,
+ 0x6DC1, 0x9BF9,
+ 0x6DC2, 0x9BFA,
+ 0x6DC3, 0x9BFB,
+ 0x6DC8, 0x9BFC,
+ 0x6DC9, 0x9BFD,
+ 0x6DCA, 0x9BFE,
+ 0x6DCD, 0x9C40,
+ 0x6DCE, 0x9C41,
+ 0x6DCF, 0x9C42,
+ 0x6DD0, 0x9C43,
+ 0x6DD2, 0x9C44,
+ 0x6DD3, 0x9C45,
+ 0x6DD4, 0x9C46,
+ 0x6DD5, 0x9C47,
+ 0x6DD7, 0x9C48,
+ 0x6DDA, 0x9C49,
+ 0x6DDB, 0x9C4A,
+ 0x6DDC, 0x9C4B,
+ 0x6DDF, 0x9C4C,
+ 0x6DE2, 0x9C4D,
+ 0x6DE3, 0x9C4E,
+ 0x6DE5, 0x9C4F,
+ 0x6DE7, 0x9C50,
+ 0x6DE8, 0x9C51,
+ 0x6DE9, 0x9C52,
+ 0x6DEA, 0x9C53,
+ 0x6DED, 0x9C54,
+ 0x6DEF, 0x9C55,
+ 0x6DF0, 0x9C56,
+ 0x6DF2, 0x9C57,
+ 0x6DF4, 0x9C58,
+ 0x6DF5, 0x9C59,
+ 0x6DF6, 0x9C5A,
+ 0x6DF8, 0x9C5B,
+ 0x6DFA, 0x9C5C,
+ 0x6DFD, 0x9C5D,
+ 0x6DFE, 0x9C5E,
+ 0x6DFF, 0x9C5F,
+ 0x6E00, 0x9C60,
+ 0x6E01, 0x9C61,
+ 0x6E02, 0x9C62,
+ 0x6E03, 0x9C63,
+ 0x6E04, 0x9C64,
+ 0x6E06, 0x9C65,
+ 0x6E07, 0x9C66,
+ 0x6E08, 0x9C67,
+ 0x6E09, 0x9C68,
+ 0x6E0B, 0x9C69,
+ 0x6E0F, 0x9C6A,
+ 0x6E12, 0x9C6B,
+ 0x6E13, 0x9C6C,
+ 0x6E15, 0x9C6D,
+ 0x6E18, 0x9C6E,
+ 0x6E19, 0x9C6F,
+ 0x6E1B, 0x9C70,
+ 0x6E1C, 0x9C71,
+ 0x6E1E, 0x9C72,
+ 0x6E1F, 0x9C73,
+ 0x6E22, 0x9C74,
+ 0x6E26, 0x9C75,
+ 0x6E27, 0x9C76,
+ 0x6E28, 0x9C77,
+ 0x6E2A, 0x9C78,
+ 0x6E2C, 0x9C79,
+ 0x6E2E, 0x9C7A,
+ 0x6E30, 0x9C7B,
+ 0x6E31, 0x9C7C,
+ 0x6E33, 0x9C7D,
+ 0x6E35, 0x9C7E,
+ 0x6E36, 0x9C80,
+ 0x6E37, 0x9C81,
+ 0x6E39, 0x9C82,
+ 0x6E3B, 0x9C83,
+ 0x6E3C, 0x9C84,
+ 0x6E3D, 0x9C85,
+ 0x6E3E, 0x9C86,
+ 0x6E3F, 0x9C87,
+ 0x6E40, 0x9C88,
+ 0x6E41, 0x9C89,
+ 0x6E42, 0x9C8A,
+ 0x6E45, 0x9C8B,
+ 0x6E46, 0x9C8C,
+ 0x6E47, 0x9C8D,
+ 0x6E48, 0x9C8E,
+ 0x6E49, 0x9C8F,
+ 0x6E4A, 0x9C90,
+ 0x6E4B, 0x9C91,
+ 0x6E4C, 0x9C92,
+ 0x6E4F, 0x9C93,
+ 0x6E50, 0x9C94,
+ 0x6E51, 0x9C95,
+ 0x6E52, 0x9C96,
+ 0x6E55, 0x9C97,
+ 0x6E57, 0x9C98,
+ 0x6E59, 0x9C99,
+ 0x6E5A, 0x9C9A,
+ 0x6E5C, 0x9C9B,
+ 0x6E5D, 0x9C9C,
+ 0x6E5E, 0x9C9D,
+ 0x6E60, 0x9C9E,
+ 0x6E61, 0x9C9F,
+ 0x6E62, 0x9CA0,
+ 0x6E63, 0x9CA1,
+ 0x6E64, 0x9CA2,
+ 0x6E65, 0x9CA3,
+ 0x6E66, 0x9CA4,
+ 0x6E67, 0x9CA5,
+ 0x6E68, 0x9CA6,
+ 0x6E69, 0x9CA7,
+ 0x6E6A, 0x9CA8,
+ 0x6E6C, 0x9CA9,
+ 0x6E6D, 0x9CAA,
+ 0x6E6F, 0x9CAB,
+ 0x6E70, 0x9CAC,
+ 0x6E71, 0x9CAD,
+ 0x6E72, 0x9CAE,
+ 0x6E73, 0x9CAF,
+ 0x6E74, 0x9CB0,
+ 0x6E75, 0x9CB1,
+ 0x6E76, 0x9CB2,
+ 0x6E77, 0x9CB3,
+ 0x6E78, 0x9CB4,
+ 0x6E79, 0x9CB5,
+ 0x6E7A, 0x9CB6,
+ 0x6E7B, 0x9CB7,
+ 0x6E7C, 0x9CB8,
+ 0x6E7D, 0x9CB9,
+ 0x6E80, 0x9CBA,
+ 0x6E81, 0x9CBB,
+ 0x6E82, 0x9CBC,
+ 0x6E84, 0x9CBD,
+ 0x6E87, 0x9CBE,
+ 0x6E88, 0x9CBF,
+ 0x6E8A, 0x9CC0,
+ 0x6E8B, 0x9CC1,
+ 0x6E8C, 0x9CC2,
+ 0x6E8D, 0x9CC3,
+ 0x6E8E, 0x9CC4,
+ 0x6E91, 0x9CC5,
+ 0x6E92, 0x9CC6,
+ 0x6E93, 0x9CC7,
+ 0x6E94, 0x9CC8,
+ 0x6E95, 0x9CC9,
+ 0x6E96, 0x9CCA,
+ 0x6E97, 0x9CCB,
+ 0x6E99, 0x9CCC,
+ 0x6E9A, 0x9CCD,
+ 0x6E9B, 0x9CCE,
+ 0x6E9D, 0x9CCF,
+ 0x6E9E, 0x9CD0,
+ 0x6EA0, 0x9CD1,
+ 0x6EA1, 0x9CD2,
+ 0x6EA3, 0x9CD3,
+ 0x6EA4, 0x9CD4,
+ 0x6EA6, 0x9CD5,
+ 0x6EA8, 0x9CD6,
+ 0x6EA9, 0x9CD7,
+ 0x6EAB, 0x9CD8,
+ 0x6EAC, 0x9CD9,
+ 0x6EAD, 0x9CDA,
+ 0x6EAE, 0x9CDB,
+ 0x6EB0, 0x9CDC,
+ 0x6EB3, 0x9CDD,
+ 0x6EB5, 0x9CDE,
+ 0x6EB8, 0x9CDF,
+ 0x6EB9, 0x9CE0,
+ 0x6EBC, 0x9CE1,
+ 0x6EBE, 0x9CE2,
+ 0x6EBF, 0x9CE3,
+ 0x6EC0, 0x9CE4,
+ 0x6EC3, 0x9CE5,
+ 0x6EC4, 0x9CE6,
+ 0x6EC5, 0x9CE7,
+ 0x6EC6, 0x9CE8,
+ 0x6EC8, 0x9CE9,
+ 0x6EC9, 0x9CEA,
+ 0x6ECA, 0x9CEB,
+ 0x6ECC, 0x9CEC,
+ 0x6ECD, 0x9CED,
+ 0x6ECE, 0x9CEE,
+ 0x6ED0, 0x9CEF,
+ 0x6ED2, 0x9CF0,
+ 0x6ED6, 0x9CF1,
+ 0x6ED8, 0x9CF2,
+ 0x6ED9, 0x9CF3,
+ 0x6EDB, 0x9CF4,
+ 0x6EDC, 0x9CF5,
+ 0x6EDD, 0x9CF6,
+ 0x6EE3, 0x9CF7,
+ 0x6EE7, 0x9CF8,
+ 0x6EEA, 0x9CF9,
+ 0x6EEB, 0x9CFA,
+ 0x6EEC, 0x9CFB,
+ 0x6EED, 0x9CFC,
+ 0x6EEE, 0x9CFD,
+ 0x6EEF, 0x9CFE,
+ 0x6EF0, 0x9D40,
+ 0x6EF1, 0x9D41,
+ 0x6EF2, 0x9D42,
+ 0x6EF3, 0x9D43,
+ 0x6EF5, 0x9D44,
+ 0x6EF6, 0x9D45,
+ 0x6EF7, 0x9D46,
+ 0x6EF8, 0x9D47,
+ 0x6EFA, 0x9D48,
+ 0x6EFB, 0x9D49,
+ 0x6EFC, 0x9D4A,
+ 0x6EFD, 0x9D4B,
+ 0x6EFE, 0x9D4C,
+ 0x6EFF, 0x9D4D,
+ 0x6F00, 0x9D4E,
+ 0x6F01, 0x9D4F,
+ 0x6F03, 0x9D50,
+ 0x6F04, 0x9D51,
+ 0x6F05, 0x9D52,
+ 0x6F07, 0x9D53,
+ 0x6F08, 0x9D54,
+ 0x6F0A, 0x9D55,
+ 0x6F0B, 0x9D56,
+ 0x6F0C, 0x9D57,
+ 0x6F0D, 0x9D58,
+ 0x6F0E, 0x9D59,
+ 0x6F10, 0x9D5A,
+ 0x6F11, 0x9D5B,
+ 0x6F12, 0x9D5C,
+ 0x6F16, 0x9D5D,
+ 0x6F17, 0x9D5E,
+ 0x6F18, 0x9D5F,
+ 0x6F19, 0x9D60,
+ 0x6F1A, 0x9D61,
+ 0x6F1B, 0x9D62,
+ 0x6F1C, 0x9D63,
+ 0x6F1D, 0x9D64,
+ 0x6F1E, 0x9D65,
+ 0x6F1F, 0x9D66,
+ 0x6F21, 0x9D67,
+ 0x6F22, 0x9D68,
+ 0x6F23, 0x9D69,
+ 0x6F25, 0x9D6A,
+ 0x6F26, 0x9D6B,
+ 0x6F27, 0x9D6C,
+ 0x6F28, 0x9D6D,
+ 0x6F2C, 0x9D6E,
+ 0x6F2E, 0x9D6F,
+ 0x6F30, 0x9D70,
+ 0x6F32, 0x9D71,
+ 0x6F34, 0x9D72,
+ 0x6F35, 0x9D73,
+ 0x6F37, 0x9D74,
+ 0x6F38, 0x9D75,
+ 0x6F39, 0x9D76,
+ 0x6F3A, 0x9D77,
+ 0x6F3B, 0x9D78,
+ 0x6F3C, 0x9D79,
+ 0x6F3D, 0x9D7A,
+ 0x6F3F, 0x9D7B,
+ 0x6F40, 0x9D7C,
+ 0x6F41, 0x9D7D,
+ 0x6F42, 0x9D7E,
+ 0x6F43, 0x9D80,
+ 0x6F44, 0x9D81,
+ 0x6F45, 0x9D82,
+ 0x6F48, 0x9D83,
+ 0x6F49, 0x9D84,
+ 0x6F4A, 0x9D85,
+ 0x6F4C, 0x9D86,
+ 0x6F4E, 0x9D87,
+ 0x6F4F, 0x9D88,
+ 0x6F50, 0x9D89,
+ 0x6F51, 0x9D8A,
+ 0x6F52, 0x9D8B,
+ 0x6F53, 0x9D8C,
+ 0x6F54, 0x9D8D,
+ 0x6F55, 0x9D8E,
+ 0x6F56, 0x9D8F,
+ 0x6F57, 0x9D90,
+ 0x6F59, 0x9D91,
+ 0x6F5A, 0x9D92,
+ 0x6F5B, 0x9D93,
+ 0x6F5D, 0x9D94,
+ 0x6F5F, 0x9D95,
+ 0x6F60, 0x9D96,
+ 0x6F61, 0x9D97,
+ 0x6F63, 0x9D98,
+ 0x6F64, 0x9D99,
+ 0x6F65, 0x9D9A,
+ 0x6F67, 0x9D9B,
+ 0x6F68, 0x9D9C,
+ 0x6F69, 0x9D9D,
+ 0x6F6A, 0x9D9E,
+ 0x6F6B, 0x9D9F,
+ 0x6F6C, 0x9DA0,
+ 0x6F6F, 0x9DA1,
+ 0x6F70, 0x9DA2,
+ 0x6F71, 0x9DA3,
+ 0x6F73, 0x9DA4,
+ 0x6F75, 0x9DA5,
+ 0x6F76, 0x9DA6,
+ 0x6F77, 0x9DA7,
+ 0x6F79, 0x9DA8,
+ 0x6F7B, 0x9DA9,
+ 0x6F7D, 0x9DAA,
+ 0x6F7E, 0x9DAB,
+ 0x6F7F, 0x9DAC,
+ 0x6F80, 0x9DAD,
+ 0x6F81, 0x9DAE,
+ 0x6F82, 0x9DAF,
+ 0x6F83, 0x9DB0,
+ 0x6F85, 0x9DB1,
+ 0x6F86, 0x9DB2,
+ 0x6F87, 0x9DB3,
+ 0x6F8A, 0x9DB4,
+ 0x6F8B, 0x9DB5,
+ 0x6F8F, 0x9DB6,
+ 0x6F90, 0x9DB7,
+ 0x6F91, 0x9DB8,
+ 0x6F92, 0x9DB9,
+ 0x6F93, 0x9DBA,
+ 0x6F94, 0x9DBB,
+ 0x6F95, 0x9DBC,
+ 0x6F96, 0x9DBD,
+ 0x6F97, 0x9DBE,
+ 0x6F98, 0x9DBF,
+ 0x6F99, 0x9DC0,
+ 0x6F9A, 0x9DC1,
+ 0x6F9B, 0x9DC2,
+ 0x6F9D, 0x9DC3,
+ 0x6F9E, 0x9DC4,
+ 0x6F9F, 0x9DC5,
+ 0x6FA0, 0x9DC6,
+ 0x6FA2, 0x9DC7,
+ 0x6FA3, 0x9DC8,
+ 0x6FA4, 0x9DC9,
+ 0x6FA5, 0x9DCA,
+ 0x6FA6, 0x9DCB,
+ 0x6FA8, 0x9DCC,
+ 0x6FA9, 0x9DCD,
+ 0x6FAA, 0x9DCE,
+ 0x6FAB, 0x9DCF,
+ 0x6FAC, 0x9DD0,
+ 0x6FAD, 0x9DD1,
+ 0x6FAE, 0x9DD2,
+ 0x6FAF, 0x9DD3,
+ 0x6FB0, 0x9DD4,
+ 0x6FB1, 0x9DD5,
+ 0x6FB2, 0x9DD6,
+ 0x6FB4, 0x9DD7,
+ 0x6FB5, 0x9DD8,
+ 0x6FB7, 0x9DD9,
+ 0x6FB8, 0x9DDA,
+ 0x6FBA, 0x9DDB,
+ 0x6FBB, 0x9DDC,
+ 0x6FBC, 0x9DDD,
+ 0x6FBD, 0x9DDE,
+ 0x6FBE, 0x9DDF,
+ 0x6FBF, 0x9DE0,
+ 0x6FC1, 0x9DE1,
+ 0x6FC3, 0x9DE2,
+ 0x6FC4, 0x9DE3,
+ 0x6FC5, 0x9DE4,
+ 0x6FC6, 0x9DE5,
+ 0x6FC7, 0x9DE6,
+ 0x6FC8, 0x9DE7,
+ 0x6FCA, 0x9DE8,
+ 0x6FCB, 0x9DE9,
+ 0x6FCC, 0x9DEA,
+ 0x6FCD, 0x9DEB,
+ 0x6FCE, 0x9DEC,
+ 0x6FCF, 0x9DED,
+ 0x6FD0, 0x9DEE,
+ 0x6FD3, 0x9DEF,
+ 0x6FD4, 0x9DF0,
+ 0x6FD5, 0x9DF1,
+ 0x6FD6, 0x9DF2,
+ 0x6FD7, 0x9DF3,
+ 0x6FD8, 0x9DF4,
+ 0x6FD9, 0x9DF5,
+ 0x6FDA, 0x9DF6,
+ 0x6FDB, 0x9DF7,
+ 0x6FDC, 0x9DF8,
+ 0x6FDD, 0x9DF9,
+ 0x6FDF, 0x9DFA,
+ 0x6FE2, 0x9DFB,
+ 0x6FE3, 0x9DFC,
+ 0x6FE4, 0x9DFD,
+ 0x6FE5, 0x9DFE,
+ 0x6FE6, 0x9E40,
+ 0x6FE7, 0x9E41,
+ 0x6FE8, 0x9E42,
+ 0x6FE9, 0x9E43,
+ 0x6FEA, 0x9E44,
+ 0x6FEB, 0x9E45,
+ 0x6FEC, 0x9E46,
+ 0x6FED, 0x9E47,
+ 0x6FF0, 0x9E48,
+ 0x6FF1, 0x9E49,
+ 0x6FF2, 0x9E4A,
+ 0x6FF3, 0x9E4B,
+ 0x6FF4, 0x9E4C,
+ 0x6FF5, 0x9E4D,
+ 0x6FF6, 0x9E4E,
+ 0x6FF7, 0x9E4F,
+ 0x6FF8, 0x9E50,
+ 0x6FF9, 0x9E51,
+ 0x6FFA, 0x9E52,
+ 0x6FFB, 0x9E53,
+ 0x6FFC, 0x9E54,
+ 0x6FFD, 0x9E55,
+ 0x6FFE, 0x9E56,
+ 0x6FFF, 0x9E57,
+ 0x7000, 0x9E58,
+ 0x7001, 0x9E59,
+ 0x7002, 0x9E5A,
+ 0x7003, 0x9E5B,
+ 0x7004, 0x9E5C,
+ 0x7005, 0x9E5D,
+ 0x7006, 0x9E5E,
+ 0x7007, 0x9E5F,
+ 0x7008, 0x9E60,
+ 0x7009, 0x9E61,
+ 0x700A, 0x9E62,
+ 0x700B, 0x9E63,
+ 0x700C, 0x9E64,
+ 0x700D, 0x9E65,
+ 0x700E, 0x9E66,
+ 0x700F, 0x9E67,
+ 0x7010, 0x9E68,
+ 0x7012, 0x9E69,
+ 0x7013, 0x9E6A,
+ 0x7014, 0x9E6B,
+ 0x7015, 0x9E6C,
+ 0x7016, 0x9E6D,
+ 0x7017, 0x9E6E,
+ 0x7018, 0x9E6F,
+ 0x7019, 0x9E70,
+ 0x701C, 0x9E71,
+ 0x701D, 0x9E72,
+ 0x701E, 0x9E73,
+ 0x701F, 0x9E74,
+ 0x7020, 0x9E75,
+ 0x7021, 0x9E76,
+ 0x7022, 0x9E77,
+ 0x7024, 0x9E78,
+ 0x7025, 0x9E79,
+ 0x7026, 0x9E7A,
+ 0x7027, 0x9E7B,
+ 0x7028, 0x9E7C,
+ 0x7029, 0x9E7D,
+ 0x702A, 0x9E7E,
+ 0x702B, 0x9E80,
+ 0x702C, 0x9E81,
+ 0x702D, 0x9E82,
+ 0x702E, 0x9E83,
+ 0x702F, 0x9E84,
+ 0x7030, 0x9E85,
+ 0x7031, 0x9E86,
+ 0x7032, 0x9E87,
+ 0x7033, 0x9E88,
+ 0x7034, 0x9E89,
+ 0x7036, 0x9E8A,
+ 0x7037, 0x9E8B,
+ 0x7038, 0x9E8C,
+ 0x703A, 0x9E8D,
+ 0x703B, 0x9E8E,
+ 0x703C, 0x9E8F,
+ 0x703D, 0x9E90,
+ 0x703E, 0x9E91,
+ 0x703F, 0x9E92,
+ 0x7040, 0x9E93,
+ 0x7041, 0x9E94,
+ 0x7042, 0x9E95,
+ 0x7043, 0x9E96,
+ 0x7044, 0x9E97,
+ 0x7045, 0x9E98,
+ 0x7046, 0x9E99,
+ 0x7047, 0x9E9A,
+ 0x7048, 0x9E9B,
+ 0x7049, 0x9E9C,
+ 0x704A, 0x9E9D,
+ 0x704B, 0x9E9E,
+ 0x704D, 0x9E9F,
+ 0x704E, 0x9EA0,
+ 0x7050, 0x9EA1,
+ 0x7051, 0x9EA2,
+ 0x7052, 0x9EA3,
+ 0x7053, 0x9EA4,
+ 0x7054, 0x9EA5,
+ 0x7055, 0x9EA6,
+ 0x7056, 0x9EA7,
+ 0x7057, 0x9EA8,
+ 0x7058, 0x9EA9,
+ 0x7059, 0x9EAA,
+ 0x705A, 0x9EAB,
+ 0x705B, 0x9EAC,
+ 0x705C, 0x9EAD,
+ 0x705D, 0x9EAE,
+ 0x705F, 0x9EAF,
+ 0x7060, 0x9EB0,
+ 0x7061, 0x9EB1,
+ 0x7062, 0x9EB2,
+ 0x7063, 0x9EB3,
+ 0x7064, 0x9EB4,
+ 0x7065, 0x9EB5,
+ 0x7066, 0x9EB6,
+ 0x7067, 0x9EB7,
+ 0x7068, 0x9EB8,
+ 0x7069, 0x9EB9,
+ 0x706A, 0x9EBA,
+ 0x706E, 0x9EBB,
+ 0x7071, 0x9EBC,
+ 0x7072, 0x9EBD,
+ 0x7073, 0x9EBE,
+ 0x7074, 0x9EBF,
+ 0x7077, 0x9EC0,
+ 0x7079, 0x9EC1,
+ 0x707A, 0x9EC2,
+ 0x707B, 0x9EC3,
+ 0x707D, 0x9EC4,
+ 0x7081, 0x9EC5,
+ 0x7082, 0x9EC6,
+ 0x7083, 0x9EC7,
+ 0x7084, 0x9EC8,
+ 0x7086, 0x9EC9,
+ 0x7087, 0x9ECA,
+ 0x7088, 0x9ECB,
+ 0x708B, 0x9ECC,
+ 0x708C, 0x9ECD,
+ 0x708D, 0x9ECE,
+ 0x708F, 0x9ECF,
+ 0x7090, 0x9ED0,
+ 0x7091, 0x9ED1,
+ 0x7093, 0x9ED2,
+ 0x7097, 0x9ED3,
+ 0x7098, 0x9ED4,
+ 0x709A, 0x9ED5,
+ 0x709B, 0x9ED6,
+ 0x709E, 0x9ED7,
+ 0x709F, 0x9ED8,
+ 0x70A0, 0x9ED9,
+ 0x70A1, 0x9EDA,
+ 0x70A2, 0x9EDB,
+ 0x70A3, 0x9EDC,
+ 0x70A4, 0x9EDD,
+ 0x70A5, 0x9EDE,
+ 0x70A6, 0x9EDF,
+ 0x70A7, 0x9EE0,
+ 0x70A8, 0x9EE1,
+ 0x70A9, 0x9EE2,
+ 0x70AA, 0x9EE3,
+ 0x70B0, 0x9EE4,
+ 0x70B2, 0x9EE5,
+ 0x70B4, 0x9EE6,
+ 0x70B5, 0x9EE7,
+ 0x70B6, 0x9EE8,
+ 0x70BA, 0x9EE9,
+ 0x70BE, 0x9EEA,
+ 0x70BF, 0x9EEB,
+ 0x70C4, 0x9EEC,
+ 0x70C5, 0x9EED,
+ 0x70C6, 0x9EEE,
+ 0x70C7, 0x9EEF,
+ 0x70C9, 0x9EF0,
+ 0x70CB, 0x9EF1,
+ 0x70CC, 0x9EF2,
+ 0x70CD, 0x9EF3,
+ 0x70CE, 0x9EF4,
+ 0x70CF, 0x9EF5,
+ 0x70D0, 0x9EF6,
+ 0x70D1, 0x9EF7,
+ 0x70D2, 0x9EF8,
+ 0x70D3, 0x9EF9,
+ 0x70D4, 0x9EFA,
+ 0x70D5, 0x9EFB,
+ 0x70D6, 0x9EFC,
+ 0x70D7, 0x9EFD,
+ 0x70DA, 0x9EFE,
+ 0x70DC, 0x9F40,
+ 0x70DD, 0x9F41,
+ 0x70DE, 0x9F42,
+ 0x70E0, 0x9F43,
+ 0x70E1, 0x9F44,
+ 0x70E2, 0x9F45,
+ 0x70E3, 0x9F46,
+ 0x70E5, 0x9F47,
+ 0x70EA, 0x9F48,
+ 0x70EE, 0x9F49,
+ 0x70F0, 0x9F4A,
+ 0x70F1, 0x9F4B,
+ 0x70F2, 0x9F4C,
+ 0x70F3, 0x9F4D,
+ 0x70F4, 0x9F4E,
+ 0x70F5, 0x9F4F,
+ 0x70F6, 0x9F50,
+ 0x70F8, 0x9F51,
+ 0x70FA, 0x9F52,
+ 0x70FB, 0x9F53,
+ 0x70FC, 0x9F54,
+ 0x70FE, 0x9F55,
+ 0x70FF, 0x9F56,
+ 0x7100, 0x9F57,
+ 0x7101, 0x9F58,
+ 0x7102, 0x9F59,
+ 0x7103, 0x9F5A,
+ 0x7104, 0x9F5B,
+ 0x7105, 0x9F5C,
+ 0x7106, 0x9F5D,
+ 0x7107, 0x9F5E,
+ 0x7108, 0x9F5F,
+ 0x710B, 0x9F60,
+ 0x710C, 0x9F61,
+ 0x710D, 0x9F62,
+ 0x710E, 0x9F63,
+ 0x710F, 0x9F64,
+ 0x7111, 0x9F65,
+ 0x7112, 0x9F66,
+ 0x7114, 0x9F67,
+ 0x7117, 0x9F68,
+ 0x711B, 0x9F69,
+ 0x711C, 0x9F6A,
+ 0x711D, 0x9F6B,
+ 0x711E, 0x9F6C,
+ 0x711F, 0x9F6D,
+ 0x7120, 0x9F6E,
+ 0x7121, 0x9F6F,
+ 0x7122, 0x9F70,
+ 0x7123, 0x9F71,
+ 0x7124, 0x9F72,
+ 0x7125, 0x9F73,
+ 0x7127, 0x9F74,
+ 0x7128, 0x9F75,
+ 0x7129, 0x9F76,
+ 0x712A, 0x9F77,
+ 0x712B, 0x9F78,
+ 0x712C, 0x9F79,
+ 0x712D, 0x9F7A,
+ 0x712E, 0x9F7B,
+ 0x7132, 0x9F7C,
+ 0x7133, 0x9F7D,
+ 0x7134, 0x9F7E,
+ 0x7135, 0x9F80,
+ 0x7137, 0x9F81,
+ 0x7138, 0x9F82,
+ 0x7139, 0x9F83,
+ 0x713A, 0x9F84,
+ 0x713B, 0x9F85,
+ 0x713C, 0x9F86,
+ 0x713D, 0x9F87,
+ 0x713E, 0x9F88,
+ 0x713F, 0x9F89,
+ 0x7140, 0x9F8A,
+ 0x7141, 0x9F8B,
+ 0x7142, 0x9F8C,
+ 0x7143, 0x9F8D,
+ 0x7144, 0x9F8E,
+ 0x7146, 0x9F8F,
+ 0x7147, 0x9F90,
+ 0x7148, 0x9F91,
+ 0x7149, 0x9F92,
+ 0x714B, 0x9F93,
+ 0x714D, 0x9F94,
+ 0x714F, 0x9F95,
+ 0x7150, 0x9F96,
+ 0x7151, 0x9F97,
+ 0x7152, 0x9F98,
+ 0x7153, 0x9F99,
+ 0x7154, 0x9F9A,
+ 0x7155, 0x9F9B,
+ 0x7156, 0x9F9C,
+ 0x7157, 0x9F9D,
+ 0x7158, 0x9F9E,
+ 0x7159, 0x9F9F,
+ 0x715A, 0x9FA0,
+ 0x715B, 0x9FA1,
+ 0x715D, 0x9FA2,
+ 0x715F, 0x9FA3,
+ 0x7160, 0x9FA4,
+ 0x7161, 0x9FA5,
+ 0x7162, 0x9FA6,
+ 0x7163, 0x9FA7,
+ 0x7165, 0x9FA8,
+ 0x7169, 0x9FA9,
+ 0x716A, 0x9FAA,
+ 0x716B, 0x9FAB,
+ 0x716C, 0x9FAC,
+ 0x716D, 0x9FAD,
+ 0x716F, 0x9FAE,
+ 0x7170, 0x9FAF,
+ 0x7171, 0x9FB0,
+ 0x7174, 0x9FB1,
+ 0x7175, 0x9FB2,
+ 0x7176, 0x9FB3,
+ 0x7177, 0x9FB4,
+ 0x7179, 0x9FB5,
+ 0x717B, 0x9FB6,
+ 0x717C, 0x9FB7,
+ 0x717E, 0x9FB8,
+ 0x717F, 0x9FB9,
+ 0x7180, 0x9FBA,
+ 0x7181, 0x9FBB,
+ 0x7182, 0x9FBC,
+ 0x7183, 0x9FBD,
+ 0x7185, 0x9FBE,
+ 0x7186, 0x9FBF,
+ 0x7187, 0x9FC0,
+ 0x7188, 0x9FC1,
+ 0x7189, 0x9FC2,
+ 0x718B, 0x9FC3,
+ 0x718C, 0x9FC4,
+ 0x718D, 0x9FC5,
+ 0x718E, 0x9FC6,
+ 0x7190, 0x9FC7,
+ 0x7191, 0x9FC8,
+ 0x7192, 0x9FC9,
+ 0x7193, 0x9FCA,
+ 0x7195, 0x9FCB,
+ 0x7196, 0x9FCC,
+ 0x7197, 0x9FCD,
+ 0x719A, 0x9FCE,
+ 0x719B, 0x9FCF,
+ 0x719C, 0x9FD0,
+ 0x719D, 0x9FD1,
+ 0x719E, 0x9FD2,
+ 0x71A1, 0x9FD3,
+ 0x71A2, 0x9FD4,
+ 0x71A3, 0x9FD5,
+ 0x71A4, 0x9FD6,
+ 0x71A5, 0x9FD7,
+ 0x71A6, 0x9FD8,
+ 0x71A7, 0x9FD9,
+ 0x71A9, 0x9FDA,
+ 0x71AA, 0x9FDB,
+ 0x71AB, 0x9FDC,
+ 0x71AD, 0x9FDD,
+ 0x71AE, 0x9FDE,
+ 0x71AF, 0x9FDF,
+ 0x71B0, 0x9FE0,
+ 0x71B1, 0x9FE1,
+ 0x71B2, 0x9FE2,
+ 0x71B4, 0x9FE3,
+ 0x71B6, 0x9FE4,
+ 0x71B7, 0x9FE5,
+ 0x71B8, 0x9FE6,
+ 0x71BA, 0x9FE7,
+ 0x71BB, 0x9FE8,
+ 0x71BC, 0x9FE9,
+ 0x71BD, 0x9FEA,
+ 0x71BE, 0x9FEB,
+ 0x71BF, 0x9FEC,
+ 0x71C0, 0x9FED,
+ 0x71C1, 0x9FEE,
+ 0x71C2, 0x9FEF,
+ 0x71C4, 0x9FF0,
+ 0x71C5, 0x9FF1,
+ 0x71C6, 0x9FF2,
+ 0x71C7, 0x9FF3,
+ 0x71C8, 0x9FF4,
+ 0x71C9, 0x9FF5,
+ 0x71CA, 0x9FF6,
+ 0x71CB, 0x9FF7,
+ 0x71CC, 0x9FF8,
+ 0x71CD, 0x9FF9,
+ 0x71CF, 0x9FFA,
+ 0x71D0, 0x9FFB,
+ 0x71D1, 0x9FFC,
+ 0x71D2, 0x9FFD,
+ 0x71D3, 0x9FFE,
+ 0x71D6, 0xA040,
+ 0x71D7, 0xA041,
+ 0x71D8, 0xA042,
+ 0x71D9, 0xA043,
+ 0x71DA, 0xA044,
+ 0x71DB, 0xA045,
+ 0x71DC, 0xA046,
+ 0x71DD, 0xA047,
+ 0x71DE, 0xA048,
+ 0x71DF, 0xA049,
+ 0x71E1, 0xA04A,
+ 0x71E2, 0xA04B,
+ 0x71E3, 0xA04C,
+ 0x71E4, 0xA04D,
+ 0x71E6, 0xA04E,
+ 0x71E8, 0xA04F,
+ 0x71E9, 0xA050,
+ 0x71EA, 0xA051,
+ 0x71EB, 0xA052,
+ 0x71EC, 0xA053,
+ 0x71ED, 0xA054,
+ 0x71EF, 0xA055,
+ 0x71F0, 0xA056,
+ 0x71F1, 0xA057,
+ 0x71F2, 0xA058,
+ 0x71F3, 0xA059,
+ 0x71F4, 0xA05A,
+ 0x71F5, 0xA05B,
+ 0x71F6, 0xA05C,
+ 0x71F7, 0xA05D,
+ 0x71F8, 0xA05E,
+ 0x71FA, 0xA05F,
+ 0x71FB, 0xA060,
+ 0x71FC, 0xA061,
+ 0x71FD, 0xA062,
+ 0x71FE, 0xA063,
+ 0x71FF, 0xA064,
+ 0x7200, 0xA065,
+ 0x7201, 0xA066,
+ 0x7202, 0xA067,
+ 0x7203, 0xA068,
+ 0x7204, 0xA069,
+ 0x7205, 0xA06A,
+ 0x7207, 0xA06B,
+ 0x7208, 0xA06C,
+ 0x7209, 0xA06D,
+ 0x720A, 0xA06E,
+ 0x720B, 0xA06F,
+ 0x720C, 0xA070,
+ 0x720D, 0xA071,
+ 0x720E, 0xA072,
+ 0x720F, 0xA073,
+ 0x7210, 0xA074,
+ 0x7211, 0xA075,
+ 0x7212, 0xA076,
+ 0x7213, 0xA077,
+ 0x7214, 0xA078,
+ 0x7215, 0xA079,
+ 0x7216, 0xA07A,
+ 0x7217, 0xA07B,
+ 0x7218, 0xA07C,
+ 0x7219, 0xA07D,
+ 0x721A, 0xA07E,
+ 0x721B, 0xA080,
+ 0x721C, 0xA081,
+ 0x721E, 0xA082,
+ 0x721F, 0xA083,
+ 0x7220, 0xA084,
+ 0x7221, 0xA085,
+ 0x7222, 0xA086,
+ 0x7223, 0xA087,
+ 0x7224, 0xA088,
+ 0x7225, 0xA089,
+ 0x7226, 0xA08A,
+ 0x7227, 0xA08B,
+ 0x7229, 0xA08C,
+ 0x722B, 0xA08D,
+ 0x722D, 0xA08E,
+ 0x722E, 0xA08F,
+ 0x722F, 0xA090,
+ 0x7232, 0xA091,
+ 0x7233, 0xA092,
+ 0x7234, 0xA093,
+ 0x723A, 0xA094,
+ 0x723C, 0xA095,
+ 0x723E, 0xA096,
+ 0x7240, 0xA097,
+ 0x7241, 0xA098,
+ 0x7242, 0xA099,
+ 0x7243, 0xA09A,
+ 0x7244, 0xA09B,
+ 0x7245, 0xA09C,
+ 0x7246, 0xA09D,
+ 0x7249, 0xA09E,
+ 0x724A, 0xA09F,
+ 0x724B, 0xA0A0,
+ 0x724E, 0xA0A1,
+ 0x724F, 0xA0A2,
+ 0x7250, 0xA0A3,
+ 0x7251, 0xA0A4,
+ 0x7253, 0xA0A5,
+ 0x7254, 0xA0A6,
+ 0x7255, 0xA0A7,
+ 0x7257, 0xA0A8,
+ 0x7258, 0xA0A9,
+ 0x725A, 0xA0AA,
+ 0x725C, 0xA0AB,
+ 0x725E, 0xA0AC,
+ 0x7260, 0xA0AD,
+ 0x7263, 0xA0AE,
+ 0x7264, 0xA0AF,
+ 0x7265, 0xA0B0,
+ 0x7268, 0xA0B1,
+ 0x726A, 0xA0B2,
+ 0x726B, 0xA0B3,
+ 0x726C, 0xA0B4,
+ 0x726D, 0xA0B5,
+ 0x7270, 0xA0B6,
+ 0x7271, 0xA0B7,
+ 0x7273, 0xA0B8,
+ 0x7274, 0xA0B9,
+ 0x7276, 0xA0BA,
+ 0x7277, 0xA0BB,
+ 0x7278, 0xA0BC,
+ 0x727B, 0xA0BD,
+ 0x727C, 0xA0BE,
+ 0x727D, 0xA0BF,
+ 0x7282, 0xA0C0,
+ 0x7283, 0xA0C1,
+ 0x7285, 0xA0C2,
+ 0x7286, 0xA0C3,
+ 0x7287, 0xA0C4,
+ 0x7288, 0xA0C5,
+ 0x7289, 0xA0C6,
+ 0x728C, 0xA0C7,
+ 0x728E, 0xA0C8,
+ 0x7290, 0xA0C9,
+ 0x7291, 0xA0CA,
+ 0x7293, 0xA0CB,
+ 0x7294, 0xA0CC,
+ 0x7295, 0xA0CD,
+ 0x7296, 0xA0CE,
+ 0x7297, 0xA0CF,
+ 0x7298, 0xA0D0,
+ 0x7299, 0xA0D1,
+ 0x729A, 0xA0D2,
+ 0x729B, 0xA0D3,
+ 0x729C, 0xA0D4,
+ 0x729D, 0xA0D5,
+ 0x729E, 0xA0D6,
+ 0x72A0, 0xA0D7,
+ 0x72A1, 0xA0D8,
+ 0x72A2, 0xA0D9,
+ 0x72A3, 0xA0DA,
+ 0x72A4, 0xA0DB,
+ 0x72A5, 0xA0DC,
+ 0x72A6, 0xA0DD,
+ 0x72A7, 0xA0DE,
+ 0x72A8, 0xA0DF,
+ 0x72A9, 0xA0E0,
+ 0x72AA, 0xA0E1,
+ 0x72AB, 0xA0E2,
+ 0x72AE, 0xA0E3,
+ 0x72B1, 0xA0E4,
+ 0x72B2, 0xA0E5,
+ 0x72B3, 0xA0E6,
+ 0x72B5, 0xA0E7,
+ 0x72BA, 0xA0E8,
+ 0x72BB, 0xA0E9,
+ 0x72BC, 0xA0EA,
+ 0x72BD, 0xA0EB,
+ 0x72BE, 0xA0EC,
+ 0x72BF, 0xA0ED,
+ 0x72C0, 0xA0EE,
+ 0x72C5, 0xA0EF,
+ 0x72C6, 0xA0F0,
+ 0x72C7, 0xA0F1,
+ 0x72C9, 0xA0F2,
+ 0x72CA, 0xA0F3,
+ 0x72CB, 0xA0F4,
+ 0x72CC, 0xA0F5,
+ 0x72CF, 0xA0F6,
+ 0x72D1, 0xA0F7,
+ 0x72D3, 0xA0F8,
+ 0x72D4, 0xA0F9,
+ 0x72D5, 0xA0FA,
+ 0x72D6, 0xA0FB,
+ 0x72D8, 0xA0FC,
+ 0x72DA, 0xA0FD,
+ 0x72DB, 0xA0FE,
+ 0x72DC, 0xAA40,
+ 0x72DD, 0xAA41,
+ 0x72DF, 0xAA42,
+ 0x72E2, 0xAA43,
+ 0x72E3, 0xAA44,
+ 0x72E4, 0xAA45,
+ 0x72E5, 0xAA46,
+ 0x72E6, 0xAA47,
+ 0x72E7, 0xAA48,
+ 0x72EA, 0xAA49,
+ 0x72EB, 0xAA4A,
+ 0x72F5, 0xAA4B,
+ 0x72F6, 0xAA4C,
+ 0x72F9, 0xAA4D,
+ 0x72FD, 0xAA4E,
+ 0x72FE, 0xAA4F,
+ 0x72FF, 0xAA50,
+ 0x7300, 0xAA51,
+ 0x7302, 0xAA52,
+ 0x7304, 0xAA53,
+ 0x7305, 0xAA54,
+ 0x7306, 0xAA55,
+ 0x7307, 0xAA56,
+ 0x7308, 0xAA57,
+ 0x7309, 0xAA58,
+ 0x730B, 0xAA59,
+ 0x730C, 0xAA5A,
+ 0x730D, 0xAA5B,
+ 0x730F, 0xAA5C,
+ 0x7310, 0xAA5D,
+ 0x7311, 0xAA5E,
+ 0x7312, 0xAA5F,
+ 0x7314, 0xAA60,
+ 0x7318, 0xAA61,
+ 0x7319, 0xAA62,
+ 0x731A, 0xAA63,
+ 0x731F, 0xAA64,
+ 0x7320, 0xAA65,
+ 0x7323, 0xAA66,
+ 0x7324, 0xAA67,
+ 0x7326, 0xAA68,
+ 0x7327, 0xAA69,
+ 0x7328, 0xAA6A,
+ 0x732D, 0xAA6B,
+ 0x732F, 0xAA6C,
+ 0x7330, 0xAA6D,
+ 0x7332, 0xAA6E,
+ 0x7333, 0xAA6F,
+ 0x7335, 0xAA70,
+ 0x7336, 0xAA71,
+ 0x733A, 0xAA72,
+ 0x733B, 0xAA73,
+ 0x733C, 0xAA74,
+ 0x733D, 0xAA75,
+ 0x7340, 0xAA76,
+ 0x7341, 0xAA77,
+ 0x7342, 0xAA78,
+ 0x7343, 0xAA79,
+ 0x7344, 0xAA7A,
+ 0x7345, 0xAA7B,
+ 0x7346, 0xAA7C,
+ 0x7347, 0xAA7D,
+ 0x7348, 0xAA7E,
+ 0x7349, 0xAA80,
+ 0x734A, 0xAA81,
+ 0x734B, 0xAA82,
+ 0x734C, 0xAA83,
+ 0x734E, 0xAA84,
+ 0x734F, 0xAA85,
+ 0x7351, 0xAA86,
+ 0x7353, 0xAA87,
+ 0x7354, 0xAA88,
+ 0x7355, 0xAA89,
+ 0x7356, 0xAA8A,
+ 0x7358, 0xAA8B,
+ 0x7359, 0xAA8C,
+ 0x735A, 0xAA8D,
+ 0x735B, 0xAA8E,
+ 0x735C, 0xAA8F,
+ 0x735D, 0xAA90,
+ 0x735E, 0xAA91,
+ 0x735F, 0xAA92,
+ 0x7361, 0xAA93,
+ 0x7362, 0xAA94,
+ 0x7363, 0xAA95,
+ 0x7364, 0xAA96,
+ 0x7365, 0xAA97,
+ 0x7366, 0xAA98,
+ 0x7367, 0xAA99,
+ 0x7368, 0xAA9A,
+ 0x7369, 0xAA9B,
+ 0x736A, 0xAA9C,
+ 0x736B, 0xAA9D,
+ 0x736E, 0xAA9E,
+ 0x7370, 0xAA9F,
+ 0x7371, 0xAAA0,
+ 0x7372, 0xAB40,
+ 0x7373, 0xAB41,
+ 0x7374, 0xAB42,
+ 0x7375, 0xAB43,
+ 0x7376, 0xAB44,
+ 0x7377, 0xAB45,
+ 0x7378, 0xAB46,
+ 0x7379, 0xAB47,
+ 0x737A, 0xAB48,
+ 0x737B, 0xAB49,
+ 0x737C, 0xAB4A,
+ 0x737D, 0xAB4B,
+ 0x737F, 0xAB4C,
+ 0x7380, 0xAB4D,
+ 0x7381, 0xAB4E,
+ 0x7382, 0xAB4F,
+ 0x7383, 0xAB50,
+ 0x7385, 0xAB51,
+ 0x7386, 0xAB52,
+ 0x7388, 0xAB53,
+ 0x738A, 0xAB54,
+ 0x738C, 0xAB55,
+ 0x738D, 0xAB56,
+ 0x738F, 0xAB57,
+ 0x7390, 0xAB58,
+ 0x7392, 0xAB59,
+ 0x7393, 0xAB5A,
+ 0x7394, 0xAB5B,
+ 0x7395, 0xAB5C,
+ 0x7397, 0xAB5D,
+ 0x7398, 0xAB5E,
+ 0x7399, 0xAB5F,
+ 0x739A, 0xAB60,
+ 0x739C, 0xAB61,
+ 0x739D, 0xAB62,
+ 0x739E, 0xAB63,
+ 0x73A0, 0xAB64,
+ 0x73A1, 0xAB65,
+ 0x73A3, 0xAB66,
+ 0x73A4, 0xAB67,
+ 0x73A5, 0xAB68,
+ 0x73A6, 0xAB69,
+ 0x73A7, 0xAB6A,
+ 0x73A8, 0xAB6B,
+ 0x73AA, 0xAB6C,
+ 0x73AC, 0xAB6D,
+ 0x73AD, 0xAB6E,
+ 0x73B1, 0xAB6F,
+ 0x73B4, 0xAB70,
+ 0x73B5, 0xAB71,
+ 0x73B6, 0xAB72,
+ 0x73B8, 0xAB73,
+ 0x73B9, 0xAB74,
+ 0x73BC, 0xAB75,
+ 0x73BD, 0xAB76,
+ 0x73BE, 0xAB77,
+ 0x73BF, 0xAB78,
+ 0x73C1, 0xAB79,
+ 0x73C3, 0xAB7A,
+ 0x73C4, 0xAB7B,
+ 0x73C5, 0xAB7C,
+ 0x73C6, 0xAB7D,
+ 0x73C7, 0xAB7E,
+ 0x73CB, 0xAB80,
+ 0x73CC, 0xAB81,
+ 0x73CE, 0xAB82,
+ 0x73D2, 0xAB83,
+ 0x73D3, 0xAB84,
+ 0x73D4, 0xAB85,
+ 0x73D5, 0xAB86,
+ 0x73D6, 0xAB87,
+ 0x73D7, 0xAB88,
+ 0x73D8, 0xAB89,
+ 0x73DA, 0xAB8A,
+ 0x73DB, 0xAB8B,
+ 0x73DC, 0xAB8C,
+ 0x73DD, 0xAB8D,
+ 0x73DF, 0xAB8E,
+ 0x73E1, 0xAB8F,
+ 0x73E2, 0xAB90,
+ 0x73E3, 0xAB91,
+ 0x73E4, 0xAB92,
+ 0x73E6, 0xAB93,
+ 0x73E8, 0xAB94,
+ 0x73EA, 0xAB95,
+ 0x73EB, 0xAB96,
+ 0x73EC, 0xAB97,
+ 0x73EE, 0xAB98,
+ 0x73EF, 0xAB99,
+ 0x73F0, 0xAB9A,
+ 0x73F1, 0xAB9B,
+ 0x73F3, 0xAB9C,
+ 0x73F4, 0xAB9D,
+ 0x73F5, 0xAB9E,
+ 0x73F6, 0xAB9F,
+ 0x73F7, 0xABA0,
+ 0x73F8, 0xAC40,
+ 0x73F9, 0xAC41,
+ 0x73FA, 0xAC42,
+ 0x73FB, 0xAC43,
+ 0x73FC, 0xAC44,
+ 0x73FD, 0xAC45,
+ 0x73FE, 0xAC46,
+ 0x73FF, 0xAC47,
+ 0x7400, 0xAC48,
+ 0x7401, 0xAC49,
+ 0x7402, 0xAC4A,
+ 0x7404, 0xAC4B,
+ 0x7407, 0xAC4C,
+ 0x7408, 0xAC4D,
+ 0x740B, 0xAC4E,
+ 0x740C, 0xAC4F,
+ 0x740D, 0xAC50,
+ 0x740E, 0xAC51,
+ 0x7411, 0xAC52,
+ 0x7412, 0xAC53,
+ 0x7413, 0xAC54,
+ 0x7414, 0xAC55,
+ 0x7415, 0xAC56,
+ 0x7416, 0xAC57,
+ 0x7417, 0xAC58,
+ 0x7418, 0xAC59,
+ 0x7419, 0xAC5A,
+ 0x741C, 0xAC5B,
+ 0x741D, 0xAC5C,
+ 0x741E, 0xAC5D,
+ 0x741F, 0xAC5E,
+ 0x7420, 0xAC5F,
+ 0x7421, 0xAC60,
+ 0x7423, 0xAC61,
+ 0x7424, 0xAC62,
+ 0x7427, 0xAC63,
+ 0x7429, 0xAC64,
+ 0x742B, 0xAC65,
+ 0x742D, 0xAC66,
+ 0x742F, 0xAC67,
+ 0x7431, 0xAC68,
+ 0x7432, 0xAC69,
+ 0x7437, 0xAC6A,
+ 0x7438, 0xAC6B,
+ 0x7439, 0xAC6C,
+ 0x743A, 0xAC6D,
+ 0x743B, 0xAC6E,
+ 0x743D, 0xAC6F,
+ 0x743E, 0xAC70,
+ 0x743F, 0xAC71,
+ 0x7440, 0xAC72,
+ 0x7442, 0xAC73,
+ 0x7443, 0xAC74,
+ 0x7444, 0xAC75,
+ 0x7445, 0xAC76,
+ 0x7446, 0xAC77,
+ 0x7447, 0xAC78,
+ 0x7448, 0xAC79,
+ 0x7449, 0xAC7A,
+ 0x744A, 0xAC7B,
+ 0x744B, 0xAC7C,
+ 0x744C, 0xAC7D,
+ 0x744D, 0xAC7E,
+ 0x744E, 0xAC80,
+ 0x744F, 0xAC81,
+ 0x7450, 0xAC82,
+ 0x7451, 0xAC83,
+ 0x7452, 0xAC84,
+ 0x7453, 0xAC85,
+ 0x7454, 0xAC86,
+ 0x7456, 0xAC87,
+ 0x7458, 0xAC88,
+ 0x745D, 0xAC89,
+ 0x7460, 0xAC8A,
+ 0x7461, 0xAC8B,
+ 0x7462, 0xAC8C,
+ 0x7463, 0xAC8D,
+ 0x7464, 0xAC8E,
+ 0x7465, 0xAC8F,
+ 0x7466, 0xAC90,
+ 0x7467, 0xAC91,
+ 0x7468, 0xAC92,
+ 0x7469, 0xAC93,
+ 0x746A, 0xAC94,
+ 0x746B, 0xAC95,
+ 0x746C, 0xAC96,
+ 0x746E, 0xAC97,
+ 0x746F, 0xAC98,
+ 0x7471, 0xAC99,
+ 0x7472, 0xAC9A,
+ 0x7473, 0xAC9B,
+ 0x7474, 0xAC9C,
+ 0x7475, 0xAC9D,
+ 0x7478, 0xAC9E,
+ 0x7479, 0xAC9F,
+ 0x747A, 0xACA0,
+ 0x747B, 0xAD40,
+ 0x747C, 0xAD41,
+ 0x747D, 0xAD42,
+ 0x747F, 0xAD43,
+ 0x7482, 0xAD44,
+ 0x7484, 0xAD45,
+ 0x7485, 0xAD46,
+ 0x7486, 0xAD47,
+ 0x7488, 0xAD48,
+ 0x7489, 0xAD49,
+ 0x748A, 0xAD4A,
+ 0x748C, 0xAD4B,
+ 0x748D, 0xAD4C,
+ 0x748F, 0xAD4D,
+ 0x7491, 0xAD4E,
+ 0x7492, 0xAD4F,
+ 0x7493, 0xAD50,
+ 0x7494, 0xAD51,
+ 0x7495, 0xAD52,
+ 0x7496, 0xAD53,
+ 0x7497, 0xAD54,
+ 0x7498, 0xAD55,
+ 0x7499, 0xAD56,
+ 0x749A, 0xAD57,
+ 0x749B, 0xAD58,
+ 0x749D, 0xAD59,
+ 0x749F, 0xAD5A,
+ 0x74A0, 0xAD5B,
+ 0x74A1, 0xAD5C,
+ 0x74A2, 0xAD5D,
+ 0x74A3, 0xAD5E,
+ 0x74A4, 0xAD5F,
+ 0x74A5, 0xAD60,
+ 0x74A6, 0xAD61,
+ 0x74AA, 0xAD62,
+ 0x74AB, 0xAD63,
+ 0x74AC, 0xAD64,
+ 0x74AD, 0xAD65,
+ 0x74AE, 0xAD66,
+ 0x74AF, 0xAD67,
+ 0x74B0, 0xAD68,
+ 0x74B1, 0xAD69,
+ 0x74B2, 0xAD6A,
+ 0x74B3, 0xAD6B,
+ 0x74B4, 0xAD6C,
+ 0x74B5, 0xAD6D,
+ 0x74B6, 0xAD6E,
+ 0x74B7, 0xAD6F,
+ 0x74B8, 0xAD70,
+ 0x74B9, 0xAD71,
+ 0x74BB, 0xAD72,
+ 0x74BC, 0xAD73,
+ 0x74BD, 0xAD74,
+ 0x74BE, 0xAD75,
+ 0x74BF, 0xAD76,
+ 0x74C0, 0xAD77,
+ 0x74C1, 0xAD78,
+ 0x74C2, 0xAD79,
+ 0x74C3, 0xAD7A,
+ 0x74C4, 0xAD7B,
+ 0x74C5, 0xAD7C,
+ 0x74C6, 0xAD7D,
+ 0x74C7, 0xAD7E,
+ 0x74C8, 0xAD80,
+ 0x74C9, 0xAD81,
+ 0x74CA, 0xAD82,
+ 0x74CB, 0xAD83,
+ 0x74CC, 0xAD84,
+ 0x74CD, 0xAD85,
+ 0x74CE, 0xAD86,
+ 0x74CF, 0xAD87,
+ 0x74D0, 0xAD88,
+ 0x74D1, 0xAD89,
+ 0x74D3, 0xAD8A,
+ 0x74D4, 0xAD8B,
+ 0x74D5, 0xAD8C,
+ 0x74D6, 0xAD8D,
+ 0x74D7, 0xAD8E,
+ 0x74D8, 0xAD8F,
+ 0x74D9, 0xAD90,
+ 0x74DA, 0xAD91,
+ 0x74DB, 0xAD92,
+ 0x74DD, 0xAD93,
+ 0x74DF, 0xAD94,
+ 0x74E1, 0xAD95,
+ 0x74E5, 0xAD96,
+ 0x74E7, 0xAD97,
+ 0x74E8, 0xAD98,
+ 0x74E9, 0xAD99,
+ 0x74EA, 0xAD9A,
+ 0x74EB, 0xAD9B,
+ 0x74EC, 0xAD9C,
+ 0x74ED, 0xAD9D,
+ 0x74F0, 0xAD9E,
+ 0x74F1, 0xAD9F,
+ 0x74F2, 0xADA0,
+ 0x74F3, 0xAE40,
+ 0x74F5, 0xAE41,
+ 0x74F8, 0xAE42,
+ 0x74F9, 0xAE43,
+ 0x74FA, 0xAE44,
+ 0x74FB, 0xAE45,
+ 0x74FC, 0xAE46,
+ 0x74FD, 0xAE47,
+ 0x74FE, 0xAE48,
+ 0x7500, 0xAE49,
+ 0x7501, 0xAE4A,
+ 0x7502, 0xAE4B,
+ 0x7503, 0xAE4C,
+ 0x7505, 0xAE4D,
+ 0x7506, 0xAE4E,
+ 0x7507, 0xAE4F,
+ 0x7508, 0xAE50,
+ 0x7509, 0xAE51,
+ 0x750A, 0xAE52,
+ 0x750B, 0xAE53,
+ 0x750C, 0xAE54,
+ 0x750E, 0xAE55,
+ 0x7510, 0xAE56,
+ 0x7512, 0xAE57,
+ 0x7514, 0xAE58,
+ 0x7515, 0xAE59,
+ 0x7516, 0xAE5A,
+ 0x7517, 0xAE5B,
+ 0x751B, 0xAE5C,
+ 0x751D, 0xAE5D,
+ 0x751E, 0xAE5E,
+ 0x7520, 0xAE5F,
+ 0x7521, 0xAE60,
+ 0x7522, 0xAE61,
+ 0x7523, 0xAE62,
+ 0x7524, 0xAE63,
+ 0x7526, 0xAE64,
+ 0x7527, 0xAE65,
+ 0x752A, 0xAE66,
+ 0x752E, 0xAE67,
+ 0x7534, 0xAE68,
+ 0x7536, 0xAE69,
+ 0x7539, 0xAE6A,
+ 0x753C, 0xAE6B,
+ 0x753D, 0xAE6C,
+ 0x753F, 0xAE6D,
+ 0x7541, 0xAE6E,
+ 0x7542, 0xAE6F,
+ 0x7543, 0xAE70,
+ 0x7544, 0xAE71,
+ 0x7546, 0xAE72,
+ 0x7547, 0xAE73,
+ 0x7549, 0xAE74,
+ 0x754A, 0xAE75,
+ 0x754D, 0xAE76,
+ 0x7550, 0xAE77,
+ 0x7551, 0xAE78,
+ 0x7552, 0xAE79,
+ 0x7553, 0xAE7A,
+ 0x7555, 0xAE7B,
+ 0x7556, 0xAE7C,
+ 0x7557, 0xAE7D,
+ 0x7558, 0xAE7E,
+ 0x755D, 0xAE80,
+ 0x755E, 0xAE81,
+ 0x755F, 0xAE82,
+ 0x7560, 0xAE83,
+ 0x7561, 0xAE84,
+ 0x7562, 0xAE85,
+ 0x7563, 0xAE86,
+ 0x7564, 0xAE87,
+ 0x7567, 0xAE88,
+ 0x7568, 0xAE89,
+ 0x7569, 0xAE8A,
+ 0x756B, 0xAE8B,
+ 0x756C, 0xAE8C,
+ 0x756D, 0xAE8D,
+ 0x756E, 0xAE8E,
+ 0x756F, 0xAE8F,
+ 0x7570, 0xAE90,
+ 0x7571, 0xAE91,
+ 0x7573, 0xAE92,
+ 0x7575, 0xAE93,
+ 0x7576, 0xAE94,
+ 0x7577, 0xAE95,
+ 0x757A, 0xAE96,
+ 0x757B, 0xAE97,
+ 0x757C, 0xAE98,
+ 0x757D, 0xAE99,
+ 0x757E, 0xAE9A,
+ 0x7580, 0xAE9B,
+ 0x7581, 0xAE9C,
+ 0x7582, 0xAE9D,
+ 0x7584, 0xAE9E,
+ 0x7585, 0xAE9F,
+ 0x7587, 0xAEA0,
+ 0x7588, 0xAF40,
+ 0x7589, 0xAF41,
+ 0x758A, 0xAF42,
+ 0x758C, 0xAF43,
+ 0x758D, 0xAF44,
+ 0x758E, 0xAF45,
+ 0x7590, 0xAF46,
+ 0x7593, 0xAF47,
+ 0x7595, 0xAF48,
+ 0x7598, 0xAF49,
+ 0x759B, 0xAF4A,
+ 0x759C, 0xAF4B,
+ 0x759E, 0xAF4C,
+ 0x75A2, 0xAF4D,
+ 0x75A6, 0xAF4E,
+ 0x75A7, 0xAF4F,
+ 0x75A8, 0xAF50,
+ 0x75A9, 0xAF51,
+ 0x75AA, 0xAF52,
+ 0x75AD, 0xAF53,
+ 0x75B6, 0xAF54,
+ 0x75B7, 0xAF55,
+ 0x75BA, 0xAF56,
+ 0x75BB, 0xAF57,
+ 0x75BF, 0xAF58,
+ 0x75C0, 0xAF59,
+ 0x75C1, 0xAF5A,
+ 0x75C6, 0xAF5B,
+ 0x75CB, 0xAF5C,
+ 0x75CC, 0xAF5D,
+ 0x75CE, 0xAF5E,
+ 0x75CF, 0xAF5F,
+ 0x75D0, 0xAF60,
+ 0x75D1, 0xAF61,
+ 0x75D3, 0xAF62,
+ 0x75D7, 0xAF63,
+ 0x75D9, 0xAF64,
+ 0x75DA, 0xAF65,
+ 0x75DC, 0xAF66,
+ 0x75DD, 0xAF67,
+ 0x75DF, 0xAF68,
+ 0x75E0, 0xAF69,
+ 0x75E1, 0xAF6A,
+ 0x75E5, 0xAF6B,
+ 0x75E9, 0xAF6C,
+ 0x75EC, 0xAF6D,
+ 0x75ED, 0xAF6E,
+ 0x75EE, 0xAF6F,
+ 0x75EF, 0xAF70,
+ 0x75F2, 0xAF71,
+ 0x75F3, 0xAF72,
+ 0x75F5, 0xAF73,
+ 0x75F6, 0xAF74,
+ 0x75F7, 0xAF75,
+ 0x75F8, 0xAF76,
+ 0x75FA, 0xAF77,
+ 0x75FB, 0xAF78,
+ 0x75FD, 0xAF79,
+ 0x75FE, 0xAF7A,
+ 0x7602, 0xAF7B,
+ 0x7604, 0xAF7C,
+ 0x7606, 0xAF7D,
+ 0x7607, 0xAF7E,
+ 0x7608, 0xAF80,
+ 0x7609, 0xAF81,
+ 0x760B, 0xAF82,
+ 0x760D, 0xAF83,
+ 0x760E, 0xAF84,
+ 0x760F, 0xAF85,
+ 0x7611, 0xAF86,
+ 0x7612, 0xAF87,
+ 0x7613, 0xAF88,
+ 0x7614, 0xAF89,
+ 0x7616, 0xAF8A,
+ 0x761A, 0xAF8B,
+ 0x761C, 0xAF8C,
+ 0x761D, 0xAF8D,
+ 0x761E, 0xAF8E,
+ 0x7621, 0xAF8F,
+ 0x7623, 0xAF90,
+ 0x7627, 0xAF91,
+ 0x7628, 0xAF92,
+ 0x762C, 0xAF93,
+ 0x762E, 0xAF94,
+ 0x762F, 0xAF95,
+ 0x7631, 0xAF96,
+ 0x7632, 0xAF97,
+ 0x7636, 0xAF98,
+ 0x7637, 0xAF99,
+ 0x7639, 0xAF9A,
+ 0x763A, 0xAF9B,
+ 0x763B, 0xAF9C,
+ 0x763D, 0xAF9D,
+ 0x7641, 0xAF9E,
+ 0x7642, 0xAF9F,
+ 0x7644, 0xAFA0,
+ 0x7645, 0xB040,
+ 0x7646, 0xB041,
+ 0x7647, 0xB042,
+ 0x7648, 0xB043,
+ 0x7649, 0xB044,
+ 0x764A, 0xB045,
+ 0x764B, 0xB046,
+ 0x764E, 0xB047,
+ 0x764F, 0xB048,
+ 0x7650, 0xB049,
+ 0x7651, 0xB04A,
+ 0x7652, 0xB04B,
+ 0x7653, 0xB04C,
+ 0x7655, 0xB04D,
+ 0x7657, 0xB04E,
+ 0x7658, 0xB04F,
+ 0x7659, 0xB050,
+ 0x765A, 0xB051,
+ 0x765B, 0xB052,
+ 0x765D, 0xB053,
+ 0x765F, 0xB054,
+ 0x7660, 0xB055,
+ 0x7661, 0xB056,
+ 0x7662, 0xB057,
+ 0x7664, 0xB058,
+ 0x7665, 0xB059,
+ 0x7666, 0xB05A,
+ 0x7667, 0xB05B,
+ 0x7668, 0xB05C,
+ 0x7669, 0xB05D,
+ 0x766A, 0xB05E,
+ 0x766C, 0xB05F,
+ 0x766D, 0xB060,
+ 0x766E, 0xB061,
+ 0x7670, 0xB062,
+ 0x7671, 0xB063,
+ 0x7672, 0xB064,
+ 0x7673, 0xB065,
+ 0x7674, 0xB066,
+ 0x7675, 0xB067,
+ 0x7676, 0xB068,
+ 0x7677, 0xB069,
+ 0x7679, 0xB06A,
+ 0x767A, 0xB06B,
+ 0x767C, 0xB06C,
+ 0x767F, 0xB06D,
+ 0x7680, 0xB06E,
+ 0x7681, 0xB06F,
+ 0x7683, 0xB070,
+ 0x7685, 0xB071,
+ 0x7689, 0xB072,
+ 0x768A, 0xB073,
+ 0x768C, 0xB074,
+ 0x768D, 0xB075,
+ 0x768F, 0xB076,
+ 0x7690, 0xB077,
+ 0x7692, 0xB078,
+ 0x7694, 0xB079,
+ 0x7695, 0xB07A,
+ 0x7697, 0xB07B,
+ 0x7698, 0xB07C,
+ 0x769A, 0xB07D,
+ 0x769B, 0xB07E,
+ 0x769C, 0xB080,
+ 0x769D, 0xB081,
+ 0x769E, 0xB082,
+ 0x769F, 0xB083,
+ 0x76A0, 0xB084,
+ 0x76A1, 0xB085,
+ 0x76A2, 0xB086,
+ 0x76A3, 0xB087,
+ 0x76A5, 0xB088,
+ 0x76A6, 0xB089,
+ 0x76A7, 0xB08A,
+ 0x76A8, 0xB08B,
+ 0x76A9, 0xB08C,
+ 0x76AA, 0xB08D,
+ 0x76AB, 0xB08E,
+ 0x76AC, 0xB08F,
+ 0x76AD, 0xB090,
+ 0x76AF, 0xB091,
+ 0x76B0, 0xB092,
+ 0x76B3, 0xB093,
+ 0x76B5, 0xB094,
+ 0x76B6, 0xB095,
+ 0x76B7, 0xB096,
+ 0x76B8, 0xB097,
+ 0x76B9, 0xB098,
+ 0x76BA, 0xB099,
+ 0x76BB, 0xB09A,
+ 0x76BC, 0xB09B,
+ 0x76BD, 0xB09C,
+ 0x76BE, 0xB09D,
+ 0x76C0, 0xB09E,
+ 0x76C1, 0xB09F,
+ 0x76C3, 0xB0A0,
+ 0x76C4, 0xB140,
+ 0x76C7, 0xB141,
+ 0x76C9, 0xB142,
+ 0x76CB, 0xB143,
+ 0x76CC, 0xB144,
+ 0x76D3, 0xB145,
+ 0x76D5, 0xB146,
+ 0x76D9, 0xB147,
+ 0x76DA, 0xB148,
+ 0x76DC, 0xB149,
+ 0x76DD, 0xB14A,
+ 0x76DE, 0xB14B,
+ 0x76E0, 0xB14C,
+ 0x76E1, 0xB14D,
+ 0x76E2, 0xB14E,
+ 0x76E3, 0xB14F,
+ 0x76E4, 0xB150,
+ 0x76E6, 0xB151,
+ 0x76E7, 0xB152,
+ 0x76E8, 0xB153,
+ 0x76E9, 0xB154,
+ 0x76EA, 0xB155,
+ 0x76EB, 0xB156,
+ 0x76EC, 0xB157,
+ 0x76ED, 0xB158,
+ 0x76F0, 0xB159,
+ 0x76F3, 0xB15A,
+ 0x76F5, 0xB15B,
+ 0x76F6, 0xB15C,
+ 0x76F7, 0xB15D,
+ 0x76FA, 0xB15E,
+ 0x76FB, 0xB15F,
+ 0x76FD, 0xB160,
+ 0x76FF, 0xB161,
+ 0x7700, 0xB162,
+ 0x7702, 0xB163,
+ 0x7703, 0xB164,
+ 0x7705, 0xB165,
+ 0x7706, 0xB166,
+ 0x770A, 0xB167,
+ 0x770C, 0xB168,
+ 0x770E, 0xB169,
+ 0x770F, 0xB16A,
+ 0x7710, 0xB16B,
+ 0x7711, 0xB16C,
+ 0x7712, 0xB16D,
+ 0x7713, 0xB16E,
+ 0x7714, 0xB16F,
+ 0x7715, 0xB170,
+ 0x7716, 0xB171,
+ 0x7717, 0xB172,
+ 0x7718, 0xB173,
+ 0x771B, 0xB174,
+ 0x771C, 0xB175,
+ 0x771D, 0xB176,
+ 0x771E, 0xB177,
+ 0x7721, 0xB178,
+ 0x7723, 0xB179,
+ 0x7724, 0xB17A,
+ 0x7725, 0xB17B,
+ 0x7727, 0xB17C,
+ 0x772A, 0xB17D,
+ 0x772B, 0xB17E,
+ 0x772C, 0xB180,
+ 0x772E, 0xB181,
+ 0x7730, 0xB182,
+ 0x7731, 0xB183,
+ 0x7732, 0xB184,
+ 0x7733, 0xB185,
+ 0x7734, 0xB186,
+ 0x7739, 0xB187,
+ 0x773B, 0xB188,
+ 0x773D, 0xB189,
+ 0x773E, 0xB18A,
+ 0x773F, 0xB18B,
+ 0x7742, 0xB18C,
+ 0x7744, 0xB18D,
+ 0x7745, 0xB18E,
+ 0x7746, 0xB18F,
+ 0x7748, 0xB190,
+ 0x7749, 0xB191,
+ 0x774A, 0xB192,
+ 0x774B, 0xB193,
+ 0x774C, 0xB194,
+ 0x774D, 0xB195,
+ 0x774E, 0xB196,
+ 0x774F, 0xB197,
+ 0x7752, 0xB198,
+ 0x7753, 0xB199,
+ 0x7754, 0xB19A,
+ 0x7755, 0xB19B,
+ 0x7756, 0xB19C,
+ 0x7757, 0xB19D,
+ 0x7758, 0xB19E,
+ 0x7759, 0xB19F,
+ 0x775C, 0xB1A0,
+ 0x775D, 0xB240,
+ 0x775E, 0xB241,
+ 0x775F, 0xB242,
+ 0x7760, 0xB243,
+ 0x7764, 0xB244,
+ 0x7767, 0xB245,
+ 0x7769, 0xB246,
+ 0x776A, 0xB247,
+ 0x776D, 0xB248,
+ 0x776E, 0xB249,
+ 0x776F, 0xB24A,
+ 0x7770, 0xB24B,
+ 0x7771, 0xB24C,
+ 0x7772, 0xB24D,
+ 0x7773, 0xB24E,
+ 0x7774, 0xB24F,
+ 0x7775, 0xB250,
+ 0x7776, 0xB251,
+ 0x7777, 0xB252,
+ 0x7778, 0xB253,
+ 0x777A, 0xB254,
+ 0x777B, 0xB255,
+ 0x777C, 0xB256,
+ 0x7781, 0xB257,
+ 0x7782, 0xB258,
+ 0x7783, 0xB259,
+ 0x7786, 0xB25A,
+ 0x7787, 0xB25B,
+ 0x7788, 0xB25C,
+ 0x7789, 0xB25D,
+ 0x778A, 0xB25E,
+ 0x778B, 0xB25F,
+ 0x778F, 0xB260,
+ 0x7790, 0xB261,
+ 0x7793, 0xB262,
+ 0x7794, 0xB263,
+ 0x7795, 0xB264,
+ 0x7796, 0xB265,
+ 0x7797, 0xB266,
+ 0x7798, 0xB267,
+ 0x7799, 0xB268,
+ 0x779A, 0xB269,
+ 0x779B, 0xB26A,
+ 0x779C, 0xB26B,
+ 0x779D, 0xB26C,
+ 0x779E, 0xB26D,
+ 0x77A1, 0xB26E,
+ 0x77A3, 0xB26F,
+ 0x77A4, 0xB270,
+ 0x77A6, 0xB271,
+ 0x77A8, 0xB272,
+ 0x77AB, 0xB273,
+ 0x77AD, 0xB274,
+ 0x77AE, 0xB275,
+ 0x77AF, 0xB276,
+ 0x77B1, 0xB277,
+ 0x77B2, 0xB278,
+ 0x77B4, 0xB279,
+ 0x77B6, 0xB27A,
+ 0x77B7, 0xB27B,
+ 0x77B8, 0xB27C,
+ 0x77B9, 0xB27D,
+ 0x77BA, 0xB27E,
+ 0x77BC, 0xB280,
+ 0x77BE, 0xB281,
+ 0x77C0, 0xB282,
+ 0x77C1, 0xB283,
+ 0x77C2, 0xB284,
+ 0x77C3, 0xB285,
+ 0x77C4, 0xB286,
+ 0x77C5, 0xB287,
+ 0x77C6, 0xB288,
+ 0x77C7, 0xB289,
+ 0x77C8, 0xB28A,
+ 0x77C9, 0xB28B,
+ 0x77CA, 0xB28C,
+ 0x77CB, 0xB28D,
+ 0x77CC, 0xB28E,
+ 0x77CE, 0xB28F,
+ 0x77CF, 0xB290,
+ 0x77D0, 0xB291,
+ 0x77D1, 0xB292,
+ 0x77D2, 0xB293,
+ 0x77D3, 0xB294,
+ 0x77D4, 0xB295,
+ 0x77D5, 0xB296,
+ 0x77D6, 0xB297,
+ 0x77D8, 0xB298,
+ 0x77D9, 0xB299,
+ 0x77DA, 0xB29A,
+ 0x77DD, 0xB29B,
+ 0x77DE, 0xB29C,
+ 0x77DF, 0xB29D,
+ 0x77E0, 0xB29E,
+ 0x77E1, 0xB29F,
+ 0x77E4, 0xB2A0,
+ 0x77E6, 0xB340,
+ 0x77E8, 0xB341,
+ 0x77EA, 0xB342,
+ 0x77EF, 0xB343,
+ 0x77F0, 0xB344,
+ 0x77F1, 0xB345,
+ 0x77F2, 0xB346,
+ 0x77F4, 0xB347,
+ 0x77F5, 0xB348,
+ 0x77F7, 0xB349,
+ 0x77F9, 0xB34A,
+ 0x77FA, 0xB34B,
+ 0x77FB, 0xB34C,
+ 0x77FC, 0xB34D,
+ 0x7803, 0xB34E,
+ 0x7804, 0xB34F,
+ 0x7805, 0xB350,
+ 0x7806, 0xB351,
+ 0x7807, 0xB352,
+ 0x7808, 0xB353,
+ 0x780A, 0xB354,
+ 0x780B, 0xB355,
+ 0x780E, 0xB356,
+ 0x780F, 0xB357,
+ 0x7810, 0xB358,
+ 0x7813, 0xB359,
+ 0x7815, 0xB35A,
+ 0x7819, 0xB35B,
+ 0x781B, 0xB35C,
+ 0x781E, 0xB35D,
+ 0x7820, 0xB35E,
+ 0x7821, 0xB35F,
+ 0x7822, 0xB360,
+ 0x7824, 0xB361,
+ 0x7828, 0xB362,
+ 0x782A, 0xB363,
+ 0x782B, 0xB364,
+ 0x782E, 0xB365,
+ 0x782F, 0xB366,
+ 0x7831, 0xB367,
+ 0x7832, 0xB368,
+ 0x7833, 0xB369,
+ 0x7835, 0xB36A,
+ 0x7836, 0xB36B,
+ 0x783D, 0xB36C,
+ 0x783F, 0xB36D,
+ 0x7841, 0xB36E,
+ 0x7842, 0xB36F,
+ 0x7843, 0xB370,
+ 0x7844, 0xB371,
+ 0x7846, 0xB372,
+ 0x7848, 0xB373,
+ 0x7849, 0xB374,
+ 0x784A, 0xB375,
+ 0x784B, 0xB376,
+ 0x784D, 0xB377,
+ 0x784F, 0xB378,
+ 0x7851, 0xB379,
+ 0x7853, 0xB37A,
+ 0x7854, 0xB37B,
+ 0x7858, 0xB37C,
+ 0x7859, 0xB37D,
+ 0x785A, 0xB37E,
+ 0x785B, 0xB380,
+ 0x785C, 0xB381,
+ 0x785E, 0xB382,
+ 0x785F, 0xB383,
+ 0x7860, 0xB384,
+ 0x7861, 0xB385,
+ 0x7862, 0xB386,
+ 0x7863, 0xB387,
+ 0x7864, 0xB388,
+ 0x7865, 0xB389,
+ 0x7866, 0xB38A,
+ 0x7867, 0xB38B,
+ 0x7868, 0xB38C,
+ 0x7869, 0xB38D,
+ 0x786F, 0xB38E,
+ 0x7870, 0xB38F,
+ 0x7871, 0xB390,
+ 0x7872, 0xB391,
+ 0x7873, 0xB392,
+ 0x7874, 0xB393,
+ 0x7875, 0xB394,
+ 0x7876, 0xB395,
+ 0x7878, 0xB396,
+ 0x7879, 0xB397,
+ 0x787A, 0xB398,
+ 0x787B, 0xB399,
+ 0x787D, 0xB39A,
+ 0x787E, 0xB39B,
+ 0x787F, 0xB39C,
+ 0x7880, 0xB39D,
+ 0x7881, 0xB39E,
+ 0x7882, 0xB39F,
+ 0x7883, 0xB3A0,
+ 0x7884, 0xB440,
+ 0x7885, 0xB441,
+ 0x7886, 0xB442,
+ 0x7888, 0xB443,
+ 0x788A, 0xB444,
+ 0x788B, 0xB445,
+ 0x788F, 0xB446,
+ 0x7890, 0xB447,
+ 0x7892, 0xB448,
+ 0x7894, 0xB449,
+ 0x7895, 0xB44A,
+ 0x7896, 0xB44B,
+ 0x7899, 0xB44C,
+ 0x789D, 0xB44D,
+ 0x789E, 0xB44E,
+ 0x78A0, 0xB44F,
+ 0x78A2, 0xB450,
+ 0x78A4, 0xB451,
+ 0x78A6, 0xB452,
+ 0x78A8, 0xB453,
+ 0x78A9, 0xB454,
+ 0x78AA, 0xB455,
+ 0x78AB, 0xB456,
+ 0x78AC, 0xB457,
+ 0x78AD, 0xB458,
+ 0x78AE, 0xB459,
+ 0x78AF, 0xB45A,
+ 0x78B5, 0xB45B,
+ 0x78B6, 0xB45C,
+ 0x78B7, 0xB45D,
+ 0x78B8, 0xB45E,
+ 0x78BA, 0xB45F,
+ 0x78BB, 0xB460,
+ 0x78BC, 0xB461,
+ 0x78BD, 0xB462,
+ 0x78BF, 0xB463,
+ 0x78C0, 0xB464,
+ 0x78C2, 0xB465,
+ 0x78C3, 0xB466,
+ 0x78C4, 0xB467,
+ 0x78C6, 0xB468,
+ 0x78C7, 0xB469,
+ 0x78C8, 0xB46A,
+ 0x78CC, 0xB46B,
+ 0x78CD, 0xB46C,
+ 0x78CE, 0xB46D,
+ 0x78CF, 0xB46E,
+ 0x78D1, 0xB46F,
+ 0x78D2, 0xB470,
+ 0x78D3, 0xB471,
+ 0x78D6, 0xB472,
+ 0x78D7, 0xB473,
+ 0x78D8, 0xB474,
+ 0x78DA, 0xB475,
+ 0x78DB, 0xB476,
+ 0x78DC, 0xB477,
+ 0x78DD, 0xB478,
+ 0x78DE, 0xB479,
+ 0x78DF, 0xB47A,
+ 0x78E0, 0xB47B,
+ 0x78E1, 0xB47C,
+ 0x78E2, 0xB47D,
+ 0x78E3, 0xB47E,
+ 0x78E4, 0xB480,
+ 0x78E5, 0xB481,
+ 0x78E6, 0xB482,
+ 0x78E7, 0xB483,
+ 0x78E9, 0xB484,
+ 0x78EA, 0xB485,
+ 0x78EB, 0xB486,
+ 0x78ED, 0xB487,
+ 0x78EE, 0xB488,
+ 0x78EF, 0xB489,
+ 0x78F0, 0xB48A,
+ 0x78F1, 0xB48B,
+ 0x78F3, 0xB48C,
+ 0x78F5, 0xB48D,
+ 0x78F6, 0xB48E,
+ 0x78F8, 0xB48F,
+ 0x78F9, 0xB490,
+ 0x78FB, 0xB491,
+ 0x78FC, 0xB492,
+ 0x78FD, 0xB493,
+ 0x78FE, 0xB494,
+ 0x78FF, 0xB495,
+ 0x7900, 0xB496,
+ 0x7902, 0xB497,
+ 0x7903, 0xB498,
+ 0x7904, 0xB499,
+ 0x7906, 0xB49A,
+ 0x7907, 0xB49B,
+ 0x7908, 0xB49C,
+ 0x7909, 0xB49D,
+ 0x790A, 0xB49E,
+ 0x790B, 0xB49F,
+ 0x790C, 0xB4A0,
+ 0x790D, 0xB540,
+ 0x790E, 0xB541,
+ 0x790F, 0xB542,
+ 0x7910, 0xB543,
+ 0x7911, 0xB544,
+ 0x7912, 0xB545,
+ 0x7914, 0xB546,
+ 0x7915, 0xB547,
+ 0x7916, 0xB548,
+ 0x7917, 0xB549,
+ 0x7918, 0xB54A,
+ 0x7919, 0xB54B,
+ 0x791A, 0xB54C,
+ 0x791B, 0xB54D,
+ 0x791C, 0xB54E,
+ 0x791D, 0xB54F,
+ 0x791F, 0xB550,
+ 0x7920, 0xB551,
+ 0x7921, 0xB552,
+ 0x7922, 0xB553,
+ 0x7923, 0xB554,
+ 0x7925, 0xB555,
+ 0x7926, 0xB556,
+ 0x7927, 0xB557,
+ 0x7928, 0xB558,
+ 0x7929, 0xB559,
+ 0x792A, 0xB55A,
+ 0x792B, 0xB55B,
+ 0x792C, 0xB55C,
+ 0x792D, 0xB55D,
+ 0x792E, 0xB55E,
+ 0x792F, 0xB55F,
+ 0x7930, 0xB560,
+ 0x7931, 0xB561,
+ 0x7932, 0xB562,
+ 0x7933, 0xB563,
+ 0x7935, 0xB564,
+ 0x7936, 0xB565,
+ 0x7937, 0xB566,
+ 0x7938, 0xB567,
+ 0x7939, 0xB568,
+ 0x793D, 0xB569,
+ 0x793F, 0xB56A,
+ 0x7942, 0xB56B,
+ 0x7943, 0xB56C,
+ 0x7944, 0xB56D,
+ 0x7945, 0xB56E,
+ 0x7947, 0xB56F,
+ 0x794A, 0xB570,
+ 0x794B, 0xB571,
+ 0x794C, 0xB572,
+ 0x794D, 0xB573,
+ 0x794E, 0xB574,
+ 0x794F, 0xB575,
+ 0x7950, 0xB576,
+ 0x7951, 0xB577,
+ 0x7952, 0xB578,
+ 0x7954, 0xB579,
+ 0x7955, 0xB57A,
+ 0x7958, 0xB57B,
+ 0x7959, 0xB57C,
+ 0x7961, 0xB57D,
+ 0x7963, 0xB57E,
+ 0x7964, 0xB580,
+ 0x7966, 0xB581,
+ 0x7969, 0xB582,
+ 0x796A, 0xB583,
+ 0x796B, 0xB584,
+ 0x796C, 0xB585,
+ 0x796E, 0xB586,
+ 0x7970, 0xB587,
+ 0x7971, 0xB588,
+ 0x7972, 0xB589,
+ 0x7973, 0xB58A,
+ 0x7974, 0xB58B,
+ 0x7975, 0xB58C,
+ 0x7976, 0xB58D,
+ 0x7979, 0xB58E,
+ 0x797B, 0xB58F,
+ 0x797C, 0xB590,
+ 0x797D, 0xB591,
+ 0x797E, 0xB592,
+ 0x797F, 0xB593,
+ 0x7982, 0xB594,
+ 0x7983, 0xB595,
+ 0x7986, 0xB596,
+ 0x7987, 0xB597,
+ 0x7988, 0xB598,
+ 0x7989, 0xB599,
+ 0x798B, 0xB59A,
+ 0x798C, 0xB59B,
+ 0x798D, 0xB59C,
+ 0x798E, 0xB59D,
+ 0x7990, 0xB59E,
+ 0x7991, 0xB59F,
+ 0x7992, 0xB5A0,
+ 0x7993, 0xB640,
+ 0x7994, 0xB641,
+ 0x7995, 0xB642,
+ 0x7996, 0xB643,
+ 0x7997, 0xB644,
+ 0x7998, 0xB645,
+ 0x7999, 0xB646,
+ 0x799B, 0xB647,
+ 0x799C, 0xB648,
+ 0x799D, 0xB649,
+ 0x799E, 0xB64A,
+ 0x799F, 0xB64B,
+ 0x79A0, 0xB64C,
+ 0x79A1, 0xB64D,
+ 0x79A2, 0xB64E,
+ 0x79A3, 0xB64F,
+ 0x79A4, 0xB650,
+ 0x79A5, 0xB651,
+ 0x79A6, 0xB652,
+ 0x79A8, 0xB653,
+ 0x79A9, 0xB654,
+ 0x79AA, 0xB655,
+ 0x79AB, 0xB656,
+ 0x79AC, 0xB657,
+ 0x79AD, 0xB658,
+ 0x79AE, 0xB659,
+ 0x79AF, 0xB65A,
+ 0x79B0, 0xB65B,
+ 0x79B1, 0xB65C,
+ 0x79B2, 0xB65D,
+ 0x79B4, 0xB65E,
+ 0x79B5, 0xB65F,
+ 0x79B6, 0xB660,
+ 0x79B7, 0xB661,
+ 0x79B8, 0xB662,
+ 0x79BC, 0xB663,
+ 0x79BF, 0xB664,
+ 0x79C2, 0xB665,
+ 0x79C4, 0xB666,
+ 0x79C5, 0xB667,
+ 0x79C7, 0xB668,
+ 0x79C8, 0xB669,
+ 0x79CA, 0xB66A,
+ 0x79CC, 0xB66B,
+ 0x79CE, 0xB66C,
+ 0x79CF, 0xB66D,
+ 0x79D0, 0xB66E,
+ 0x79D3, 0xB66F,
+ 0x79D4, 0xB670,
+ 0x79D6, 0xB671,
+ 0x79D7, 0xB672,
+ 0x79D9, 0xB673,
+ 0x79DA, 0xB674,
+ 0x79DB, 0xB675,
+ 0x79DC, 0xB676,
+ 0x79DD, 0xB677,
+ 0x79DE, 0xB678,
+ 0x79E0, 0xB679,
+ 0x79E1, 0xB67A,
+ 0x79E2, 0xB67B,
+ 0x79E5, 0xB67C,
+ 0x79E8, 0xB67D,
+ 0x79EA, 0xB67E,
+ 0x79EC, 0xB680,
+ 0x79EE, 0xB681,
+ 0x79F1, 0xB682,
+ 0x79F2, 0xB683,
+ 0x79F3, 0xB684,
+ 0x79F4, 0xB685,
+ 0x79F5, 0xB686,
+ 0x79F6, 0xB687,
+ 0x79F7, 0xB688,
+ 0x79F9, 0xB689,
+ 0x79FA, 0xB68A,
+ 0x79FC, 0xB68B,
+ 0x79FE, 0xB68C,
+ 0x79FF, 0xB68D,
+ 0x7A01, 0xB68E,
+ 0x7A04, 0xB68F,
+ 0x7A05, 0xB690,
+ 0x7A07, 0xB691,
+ 0x7A08, 0xB692,
+ 0x7A09, 0xB693,
+ 0x7A0A, 0xB694,
+ 0x7A0C, 0xB695,
+ 0x7A0F, 0xB696,
+ 0x7A10, 0xB697,
+ 0x7A11, 0xB698,
+ 0x7A12, 0xB699,
+ 0x7A13, 0xB69A,
+ 0x7A15, 0xB69B,
+ 0x7A16, 0xB69C,
+ 0x7A18, 0xB69D,
+ 0x7A19, 0xB69E,
+ 0x7A1B, 0xB69F,
+ 0x7A1C, 0xB6A0,
+ 0x7A1D, 0xB740,
+ 0x7A1F, 0xB741,
+ 0x7A21, 0xB742,
+ 0x7A22, 0xB743,
+ 0x7A24, 0xB744,
+ 0x7A25, 0xB745,
+ 0x7A26, 0xB746,
+ 0x7A27, 0xB747,
+ 0x7A28, 0xB748,
+ 0x7A29, 0xB749,
+ 0x7A2A, 0xB74A,
+ 0x7A2B, 0xB74B,
+ 0x7A2C, 0xB74C,
+ 0x7A2D, 0xB74D,
+ 0x7A2E, 0xB74E,
+ 0x7A2F, 0xB74F,
+ 0x7A30, 0xB750,
+ 0x7A31, 0xB751,
+ 0x7A32, 0xB752,
+ 0x7A34, 0xB753,
+ 0x7A35, 0xB754,
+ 0x7A36, 0xB755,
+ 0x7A38, 0xB756,
+ 0x7A3A, 0xB757,
+ 0x7A3E, 0xB758,
+ 0x7A40, 0xB759,
+ 0x7A41, 0xB75A,
+ 0x7A42, 0xB75B,
+ 0x7A43, 0xB75C,
+ 0x7A44, 0xB75D,
+ 0x7A45, 0xB75E,
+ 0x7A47, 0xB75F,
+ 0x7A48, 0xB760,
+ 0x7A49, 0xB761,
+ 0x7A4A, 0xB762,
+ 0x7A4B, 0xB763,
+ 0x7A4C, 0xB764,
+ 0x7A4D, 0xB765,
+ 0x7A4E, 0xB766,
+ 0x7A4F, 0xB767,
+ 0x7A50, 0xB768,
+ 0x7A52, 0xB769,
+ 0x7A53, 0xB76A,
+ 0x7A54, 0xB76B,
+ 0x7A55, 0xB76C,
+ 0x7A56, 0xB76D,
+ 0x7A58, 0xB76E,
+ 0x7A59, 0xB76F,
+ 0x7A5A, 0xB770,
+ 0x7A5B, 0xB771,
+ 0x7A5C, 0xB772,
+ 0x7A5D, 0xB773,
+ 0x7A5E, 0xB774,
+ 0x7A5F, 0xB775,
+ 0x7A60, 0xB776,
+ 0x7A61, 0xB777,
+ 0x7A62, 0xB778,
+ 0x7A63, 0xB779,
+ 0x7A64, 0xB77A,
+ 0x7A65, 0xB77B,
+ 0x7A66, 0xB77C,
+ 0x7A67, 0xB77D,
+ 0x7A68, 0xB77E,
+ 0x7A69, 0xB780,
+ 0x7A6A, 0xB781,
+ 0x7A6B, 0xB782,
+ 0x7A6C, 0xB783,
+ 0x7A6D, 0xB784,
+ 0x7A6E, 0xB785,
+ 0x7A6F, 0xB786,
+ 0x7A71, 0xB787,
+ 0x7A72, 0xB788,
+ 0x7A73, 0xB789,
+ 0x7A75, 0xB78A,
+ 0x7A7B, 0xB78B,
+ 0x7A7C, 0xB78C,
+ 0x7A7D, 0xB78D,
+ 0x7A7E, 0xB78E,
+ 0x7A82, 0xB78F,
+ 0x7A85, 0xB790,
+ 0x7A87, 0xB791,
+ 0x7A89, 0xB792,
+ 0x7A8A, 0xB793,
+ 0x7A8B, 0xB794,
+ 0x7A8C, 0xB795,
+ 0x7A8E, 0xB796,
+ 0x7A8F, 0xB797,
+ 0x7A90, 0xB798,
+ 0x7A93, 0xB799,
+ 0x7A94, 0xB79A,
+ 0x7A99, 0xB79B,
+ 0x7A9A, 0xB79C,
+ 0x7A9B, 0xB79D,
+ 0x7A9E, 0xB79E,
+ 0x7AA1, 0xB79F,
+ 0x7AA2, 0xB7A0,
+ 0x7AA3, 0xB840,
+ 0x7AA4, 0xB841,
+ 0x7AA7, 0xB842,
+ 0x7AA9, 0xB843,
+ 0x7AAA, 0xB844,
+ 0x7AAB, 0xB845,
+ 0x7AAE, 0xB846,
+ 0x7AAF, 0xB847,
+ 0x7AB0, 0xB848,
+ 0x7AB1, 0xB849,
+ 0x7AB2, 0xB84A,
+ 0x7AB4, 0xB84B,
+ 0x7AB5, 0xB84C,
+ 0x7AB6, 0xB84D,
+ 0x7AB7, 0xB84E,
+ 0x7AB8, 0xB84F,
+ 0x7AB9, 0xB850,
+ 0x7ABA, 0xB851,
+ 0x7ABB, 0xB852,
+ 0x7ABC, 0xB853,
+ 0x7ABD, 0xB854,
+ 0x7ABE, 0xB855,
+ 0x7AC0, 0xB856,
+ 0x7AC1, 0xB857,
+ 0x7AC2, 0xB858,
+ 0x7AC3, 0xB859,
+ 0x7AC4, 0xB85A,
+ 0x7AC5, 0xB85B,
+ 0x7AC6, 0xB85C,
+ 0x7AC7, 0xB85D,
+ 0x7AC8, 0xB85E,
+ 0x7AC9, 0xB85F,
+ 0x7ACA, 0xB860,
+ 0x7ACC, 0xB861,
+ 0x7ACD, 0xB862,
+ 0x7ACE, 0xB863,
+ 0x7ACF, 0xB864,
+ 0x7AD0, 0xB865,
+ 0x7AD1, 0xB866,
+ 0x7AD2, 0xB867,
+ 0x7AD3, 0xB868,
+ 0x7AD4, 0xB869,
+ 0x7AD5, 0xB86A,
+ 0x7AD7, 0xB86B,
+ 0x7AD8, 0xB86C,
+ 0x7ADA, 0xB86D,
+ 0x7ADB, 0xB86E,
+ 0x7ADC, 0xB86F,
+ 0x7ADD, 0xB870,
+ 0x7AE1, 0xB871,
+ 0x7AE2, 0xB872,
+ 0x7AE4, 0xB873,
+ 0x7AE7, 0xB874,
+ 0x7AE8, 0xB875,
+ 0x7AE9, 0xB876,
+ 0x7AEA, 0xB877,
+ 0x7AEB, 0xB878,
+ 0x7AEC, 0xB879,
+ 0x7AEE, 0xB87A,
+ 0x7AF0, 0xB87B,
+ 0x7AF1, 0xB87C,
+ 0x7AF2, 0xB87D,
+ 0x7AF3, 0xB87E,
+ 0x7AF4, 0xB880,
+ 0x7AF5, 0xB881,
+ 0x7AF6, 0xB882,
+ 0x7AF7, 0xB883,
+ 0x7AF8, 0xB884,
+ 0x7AFB, 0xB885,
+ 0x7AFC, 0xB886,
+ 0x7AFE, 0xB887,
+ 0x7B00, 0xB888,
+ 0x7B01, 0xB889,
+ 0x7B02, 0xB88A,
+ 0x7B05, 0xB88B,
+ 0x7B07, 0xB88C,
+ 0x7B09, 0xB88D,
+ 0x7B0C, 0xB88E,
+ 0x7B0D, 0xB88F,
+ 0x7B0E, 0xB890,
+ 0x7B10, 0xB891,
+ 0x7B12, 0xB892,
+ 0x7B13, 0xB893,
+ 0x7B16, 0xB894,
+ 0x7B17, 0xB895,
+ 0x7B18, 0xB896,
+ 0x7B1A, 0xB897,
+ 0x7B1C, 0xB898,
+ 0x7B1D, 0xB899,
+ 0x7B1F, 0xB89A,
+ 0x7B21, 0xB89B,
+ 0x7B22, 0xB89C,
+ 0x7B23, 0xB89D,
+ 0x7B27, 0xB89E,
+ 0x7B29, 0xB89F,
+ 0x7B2D, 0xB8A0,
+ 0x7B2F, 0xB940,
+ 0x7B30, 0xB941,
+ 0x7B32, 0xB942,
+ 0x7B34, 0xB943,
+ 0x7B35, 0xB944,
+ 0x7B36, 0xB945,
+ 0x7B37, 0xB946,
+ 0x7B39, 0xB947,
+ 0x7B3B, 0xB948,
+ 0x7B3D, 0xB949,
+ 0x7B3F, 0xB94A,
+ 0x7B40, 0xB94B,
+ 0x7B41, 0xB94C,
+ 0x7B42, 0xB94D,
+ 0x7B43, 0xB94E,
+ 0x7B44, 0xB94F,
+ 0x7B46, 0xB950,
+ 0x7B48, 0xB951,
+ 0x7B4A, 0xB952,
+ 0x7B4D, 0xB953,
+ 0x7B4E, 0xB954,
+ 0x7B53, 0xB955,
+ 0x7B55, 0xB956,
+ 0x7B57, 0xB957,
+ 0x7B59, 0xB958,
+ 0x7B5C, 0xB959,
+ 0x7B5E, 0xB95A,
+ 0x7B5F, 0xB95B,
+ 0x7B61, 0xB95C,
+ 0x7B63, 0xB95D,
+ 0x7B64, 0xB95E,
+ 0x7B65, 0xB95F,
+ 0x7B66, 0xB960,
+ 0x7B67, 0xB961,
+ 0x7B68, 0xB962,
+ 0x7B69, 0xB963,
+ 0x7B6A, 0xB964,
+ 0x7B6B, 0xB965,
+ 0x7B6C, 0xB966,
+ 0x7B6D, 0xB967,
+ 0x7B6F, 0xB968,
+ 0x7B70, 0xB969,
+ 0x7B73, 0xB96A,
+ 0x7B74, 0xB96B,
+ 0x7B76, 0xB96C,
+ 0x7B78, 0xB96D,
+ 0x7B7A, 0xB96E,
+ 0x7B7C, 0xB96F,
+ 0x7B7D, 0xB970,
+ 0x7B7F, 0xB971,
+ 0x7B81, 0xB972,
+ 0x7B82, 0xB973,
+ 0x7B83, 0xB974,
+ 0x7B84, 0xB975,
+ 0x7B86, 0xB976,
+ 0x7B87, 0xB977,
+ 0x7B88, 0xB978,
+ 0x7B89, 0xB979,
+ 0x7B8A, 0xB97A,
+ 0x7B8B, 0xB97B,
+ 0x7B8C, 0xB97C,
+ 0x7B8E, 0xB97D,
+ 0x7B8F, 0xB97E,
+ 0x7B91, 0xB980,
+ 0x7B92, 0xB981,
+ 0x7B93, 0xB982,
+ 0x7B96, 0xB983,
+ 0x7B98, 0xB984,
+ 0x7B99, 0xB985,
+ 0x7B9A, 0xB986,
+ 0x7B9B, 0xB987,
+ 0x7B9E, 0xB988,
+ 0x7B9F, 0xB989,
+ 0x7BA0, 0xB98A,
+ 0x7BA3, 0xB98B,
+ 0x7BA4, 0xB98C,
+ 0x7BA5, 0xB98D,
+ 0x7BAE, 0xB98E,
+ 0x7BAF, 0xB98F,
+ 0x7BB0, 0xB990,
+ 0x7BB2, 0xB991,
+ 0x7BB3, 0xB992,
+ 0x7BB5, 0xB993,
+ 0x7BB6, 0xB994,
+ 0x7BB7, 0xB995,
+ 0x7BB9, 0xB996,
+ 0x7BBA, 0xB997,
+ 0x7BBB, 0xB998,
+ 0x7BBC, 0xB999,
+ 0x7BBD, 0xB99A,
+ 0x7BBE, 0xB99B,
+ 0x7BBF, 0xB99C,
+ 0x7BC0, 0xB99D,
+ 0x7BC2, 0xB99E,
+ 0x7BC3, 0xB99F,
+ 0x7BC4, 0xB9A0,
+ 0x7BC5, 0xBA40,
+ 0x7BC8, 0xBA41,
+ 0x7BC9, 0xBA42,
+ 0x7BCA, 0xBA43,
+ 0x7BCB, 0xBA44,
+ 0x7BCD, 0xBA45,
+ 0x7BCE, 0xBA46,
+ 0x7BCF, 0xBA47,
+ 0x7BD0, 0xBA48,
+ 0x7BD2, 0xBA49,
+ 0x7BD4, 0xBA4A,
+ 0x7BD5, 0xBA4B,
+ 0x7BD6, 0xBA4C,
+ 0x7BD7, 0xBA4D,
+ 0x7BD8, 0xBA4E,
+ 0x7BDB, 0xBA4F,
+ 0x7BDC, 0xBA50,
+ 0x7BDE, 0xBA51,
+ 0x7BDF, 0xBA52,
+ 0x7BE0, 0xBA53,
+ 0x7BE2, 0xBA54,
+ 0x7BE3, 0xBA55,
+ 0x7BE4, 0xBA56,
+ 0x7BE7, 0xBA57,
+ 0x7BE8, 0xBA58,
+ 0x7BE9, 0xBA59,
+ 0x7BEB, 0xBA5A,
+ 0x7BEC, 0xBA5B,
+ 0x7BED, 0xBA5C,
+ 0x7BEF, 0xBA5D,
+ 0x7BF0, 0xBA5E,
+ 0x7BF2, 0xBA5F,
+ 0x7BF3, 0xBA60,
+ 0x7BF4, 0xBA61,
+ 0x7BF5, 0xBA62,
+ 0x7BF6, 0xBA63,
+ 0x7BF8, 0xBA64,
+ 0x7BF9, 0xBA65,
+ 0x7BFA, 0xBA66,
+ 0x7BFB, 0xBA67,
+ 0x7BFD, 0xBA68,
+ 0x7BFF, 0xBA69,
+ 0x7C00, 0xBA6A,
+ 0x7C01, 0xBA6B,
+ 0x7C02, 0xBA6C,
+ 0x7C03, 0xBA6D,
+ 0x7C04, 0xBA6E,
+ 0x7C05, 0xBA6F,
+ 0x7C06, 0xBA70,
+ 0x7C08, 0xBA71,
+ 0x7C09, 0xBA72,
+ 0x7C0A, 0xBA73,
+ 0x7C0D, 0xBA74,
+ 0x7C0E, 0xBA75,
+ 0x7C10, 0xBA76,
+ 0x7C11, 0xBA77,
+ 0x7C12, 0xBA78,
+ 0x7C13, 0xBA79,
+ 0x7C14, 0xBA7A,
+ 0x7C15, 0xBA7B,
+ 0x7C17, 0xBA7C,
+ 0x7C18, 0xBA7D,
+ 0x7C19, 0xBA7E,
+ 0x7C1A, 0xBA80,
+ 0x7C1B, 0xBA81,
+ 0x7C1C, 0xBA82,
+ 0x7C1D, 0xBA83,
+ 0x7C1E, 0xBA84,
+ 0x7C20, 0xBA85,
+ 0x7C21, 0xBA86,
+ 0x7C22, 0xBA87,
+ 0x7C23, 0xBA88,
+ 0x7C24, 0xBA89,
+ 0x7C25, 0xBA8A,
+ 0x7C28, 0xBA8B,
+ 0x7C29, 0xBA8C,
+ 0x7C2B, 0xBA8D,
+ 0x7C2C, 0xBA8E,
+ 0x7C2D, 0xBA8F,
+ 0x7C2E, 0xBA90,
+ 0x7C2F, 0xBA91,
+ 0x7C30, 0xBA92,
+ 0x7C31, 0xBA93,
+ 0x7C32, 0xBA94,
+ 0x7C33, 0xBA95,
+ 0x7C34, 0xBA96,
+ 0x7C35, 0xBA97,
+ 0x7C36, 0xBA98,
+ 0x7C37, 0xBA99,
+ 0x7C39, 0xBA9A,
+ 0x7C3A, 0xBA9B,
+ 0x7C3B, 0xBA9C,
+ 0x7C3C, 0xBA9D,
+ 0x7C3D, 0xBA9E,
+ 0x7C3E, 0xBA9F,
+ 0x7C42, 0xBAA0,
+ 0x7C43, 0xBB40,
+ 0x7C44, 0xBB41,
+ 0x7C45, 0xBB42,
+ 0x7C46, 0xBB43,
+ 0x7C47, 0xBB44,
+ 0x7C48, 0xBB45,
+ 0x7C49, 0xBB46,
+ 0x7C4A, 0xBB47,
+ 0x7C4B, 0xBB48,
+ 0x7C4C, 0xBB49,
+ 0x7C4E, 0xBB4A,
+ 0x7C4F, 0xBB4B,
+ 0x7C50, 0xBB4C,
+ 0x7C51, 0xBB4D,
+ 0x7C52, 0xBB4E,
+ 0x7C53, 0xBB4F,
+ 0x7C54, 0xBB50,
+ 0x7C55, 0xBB51,
+ 0x7C56, 0xBB52,
+ 0x7C57, 0xBB53,
+ 0x7C58, 0xBB54,
+ 0x7C59, 0xBB55,
+ 0x7C5A, 0xBB56,
+ 0x7C5B, 0xBB57,
+ 0x7C5C, 0xBB58,
+ 0x7C5D, 0xBB59,
+ 0x7C5E, 0xBB5A,
+ 0x7C5F, 0xBB5B,
+ 0x7C60, 0xBB5C,
+ 0x7C61, 0xBB5D,
+ 0x7C62, 0xBB5E,
+ 0x7C63, 0xBB5F,
+ 0x7C64, 0xBB60,
+ 0x7C65, 0xBB61,
+ 0x7C66, 0xBB62,
+ 0x7C67, 0xBB63,
+ 0x7C68, 0xBB64,
+ 0x7C69, 0xBB65,
+ 0x7C6A, 0xBB66,
+ 0x7C6B, 0xBB67,
+ 0x7C6C, 0xBB68,
+ 0x7C6D, 0xBB69,
+ 0x7C6E, 0xBB6A,
+ 0x7C6F, 0xBB6B,
+ 0x7C70, 0xBB6C,
+ 0x7C71, 0xBB6D,
+ 0x7C72, 0xBB6E,
+ 0x7C75, 0xBB6F,
+ 0x7C76, 0xBB70,
+ 0x7C77, 0xBB71,
+ 0x7C78, 0xBB72,
+ 0x7C79, 0xBB73,
+ 0x7C7A, 0xBB74,
+ 0x7C7E, 0xBB75,
+ 0x7C7F, 0xBB76,
+ 0x7C80, 0xBB77,
+ 0x7C81, 0xBB78,
+ 0x7C82, 0xBB79,
+ 0x7C83, 0xBB7A,
+ 0x7C84, 0xBB7B,
+ 0x7C85, 0xBB7C,
+ 0x7C86, 0xBB7D,
+ 0x7C87, 0xBB7E,
+ 0x7C88, 0xBB80,
+ 0x7C8A, 0xBB81,
+ 0x7C8B, 0xBB82,
+ 0x7C8C, 0xBB83,
+ 0x7C8D, 0xBB84,
+ 0x7C8E, 0xBB85,
+ 0x7C8F, 0xBB86,
+ 0x7C90, 0xBB87,
+ 0x7C93, 0xBB88,
+ 0x7C94, 0xBB89,
+ 0x7C96, 0xBB8A,
+ 0x7C99, 0xBB8B,
+ 0x7C9A, 0xBB8C,
+ 0x7C9B, 0xBB8D,
+ 0x7CA0, 0xBB8E,
+ 0x7CA1, 0xBB8F,
+ 0x7CA3, 0xBB90,
+ 0x7CA6, 0xBB91,
+ 0x7CA7, 0xBB92,
+ 0x7CA8, 0xBB93,
+ 0x7CA9, 0xBB94,
+ 0x7CAB, 0xBB95,
+ 0x7CAC, 0xBB96,
+ 0x7CAD, 0xBB97,
+ 0x7CAF, 0xBB98,
+ 0x7CB0, 0xBB99,
+ 0x7CB4, 0xBB9A,
+ 0x7CB5, 0xBB9B,
+ 0x7CB6, 0xBB9C,
+ 0x7CB7, 0xBB9D,
+ 0x7CB8, 0xBB9E,
+ 0x7CBA, 0xBB9F,
+ 0x7CBB, 0xBBA0,
+ 0x7CBF, 0xBC40,
+ 0x7CC0, 0xBC41,
+ 0x7CC2, 0xBC42,
+ 0x7CC3, 0xBC43,
+ 0x7CC4, 0xBC44,
+ 0x7CC6, 0xBC45,
+ 0x7CC9, 0xBC46,
+ 0x7CCB, 0xBC47,
+ 0x7CCE, 0xBC48,
+ 0x7CCF, 0xBC49,
+ 0x7CD0, 0xBC4A,
+ 0x7CD1, 0xBC4B,
+ 0x7CD2, 0xBC4C,
+ 0x7CD3, 0xBC4D,
+ 0x7CD4, 0xBC4E,
+ 0x7CD8, 0xBC4F,
+ 0x7CDA, 0xBC50,
+ 0x7CDB, 0xBC51,
+ 0x7CDD, 0xBC52,
+ 0x7CDE, 0xBC53,
+ 0x7CE1, 0xBC54,
+ 0x7CE2, 0xBC55,
+ 0x7CE3, 0xBC56,
+ 0x7CE4, 0xBC57,
+ 0x7CE5, 0xBC58,
+ 0x7CE6, 0xBC59,
+ 0x7CE7, 0xBC5A,
+ 0x7CE9, 0xBC5B,
+ 0x7CEA, 0xBC5C,
+ 0x7CEB, 0xBC5D,
+ 0x7CEC, 0xBC5E,
+ 0x7CED, 0xBC5F,
+ 0x7CEE, 0xBC60,
+ 0x7CF0, 0xBC61,
+ 0x7CF1, 0xBC62,
+ 0x7CF2, 0xBC63,
+ 0x7CF3, 0xBC64,
+ 0x7CF4, 0xBC65,
+ 0x7CF5, 0xBC66,
+ 0x7CF6, 0xBC67,
+ 0x7CF7, 0xBC68,
+ 0x7CF9, 0xBC69,
+ 0x7CFA, 0xBC6A,
+ 0x7CFC, 0xBC6B,
+ 0x7CFD, 0xBC6C,
+ 0x7CFE, 0xBC6D,
+ 0x7CFF, 0xBC6E,
+ 0x7D00, 0xBC6F,
+ 0x7D01, 0xBC70,
+ 0x7D02, 0xBC71,
+ 0x7D03, 0xBC72,
+ 0x7D04, 0xBC73,
+ 0x7D05, 0xBC74,
+ 0x7D06, 0xBC75,
+ 0x7D07, 0xBC76,
+ 0x7D08, 0xBC77,
+ 0x7D09, 0xBC78,
+ 0x7D0B, 0xBC79,
+ 0x7D0C, 0xBC7A,
+ 0x7D0D, 0xBC7B,
+ 0x7D0E, 0xBC7C,
+ 0x7D0F, 0xBC7D,
+ 0x7D10, 0xBC7E,
+ 0x7D11, 0xBC80,
+ 0x7D12, 0xBC81,
+ 0x7D13, 0xBC82,
+ 0x7D14, 0xBC83,
+ 0x7D15, 0xBC84,
+ 0x7D16, 0xBC85,
+ 0x7D17, 0xBC86,
+ 0x7D18, 0xBC87,
+ 0x7D19, 0xBC88,
+ 0x7D1A, 0xBC89,
+ 0x7D1B, 0xBC8A,
+ 0x7D1C, 0xBC8B,
+ 0x7D1D, 0xBC8C,
+ 0x7D1E, 0xBC8D,
+ 0x7D1F, 0xBC8E,
+ 0x7D21, 0xBC8F,
+ 0x7D23, 0xBC90,
+ 0x7D24, 0xBC91,
+ 0x7D25, 0xBC92,
+ 0x7D26, 0xBC93,
+ 0x7D28, 0xBC94,
+ 0x7D29, 0xBC95,
+ 0x7D2A, 0xBC96,
+ 0x7D2C, 0xBC97,
+ 0x7D2D, 0xBC98,
+ 0x7D2E, 0xBC99,
+ 0x7D30, 0xBC9A,
+ 0x7D31, 0xBC9B,
+ 0x7D32, 0xBC9C,
+ 0x7D33, 0xBC9D,
+ 0x7D34, 0xBC9E,
+ 0x7D35, 0xBC9F,
+ 0x7D36, 0xBCA0,
+ 0x7D37, 0xBD40,
+ 0x7D38, 0xBD41,
+ 0x7D39, 0xBD42,
+ 0x7D3A, 0xBD43,
+ 0x7D3B, 0xBD44,
+ 0x7D3C, 0xBD45,
+ 0x7D3D, 0xBD46,
+ 0x7D3E, 0xBD47,
+ 0x7D3F, 0xBD48,
+ 0x7D40, 0xBD49,
+ 0x7D41, 0xBD4A,
+ 0x7D42, 0xBD4B,
+ 0x7D43, 0xBD4C,
+ 0x7D44, 0xBD4D,
+ 0x7D45, 0xBD4E,
+ 0x7D46, 0xBD4F,
+ 0x7D47, 0xBD50,
+ 0x7D48, 0xBD51,
+ 0x7D49, 0xBD52,
+ 0x7D4A, 0xBD53,
+ 0x7D4B, 0xBD54,
+ 0x7D4C, 0xBD55,
+ 0x7D4D, 0xBD56,
+ 0x7D4E, 0xBD57,
+ 0x7D4F, 0xBD58,
+ 0x7D50, 0xBD59,
+ 0x7D51, 0xBD5A,
+ 0x7D52, 0xBD5B,
+ 0x7D53, 0xBD5C,
+ 0x7D54, 0xBD5D,
+ 0x7D55, 0xBD5E,
+ 0x7D56, 0xBD5F,
+ 0x7D57, 0xBD60,
+ 0x7D58, 0xBD61,
+ 0x7D59, 0xBD62,
+ 0x7D5A, 0xBD63,
+ 0x7D5B, 0xBD64,
+ 0x7D5C, 0xBD65,
+ 0x7D5D, 0xBD66,
+ 0x7D5E, 0xBD67,
+ 0x7D5F, 0xBD68,
+ 0x7D60, 0xBD69,
+ 0x7D61, 0xBD6A,
+ 0x7D62, 0xBD6B,
+ 0x7D63, 0xBD6C,
+ 0x7D64, 0xBD6D,
+ 0x7D65, 0xBD6E,
+ 0x7D66, 0xBD6F,
+ 0x7D67, 0xBD70,
+ 0x7D68, 0xBD71,
+ 0x7D69, 0xBD72,
+ 0x7D6A, 0xBD73,
+ 0x7D6B, 0xBD74,
+ 0x7D6C, 0xBD75,
+ 0x7D6D, 0xBD76,
+ 0x7D6F, 0xBD77,
+ 0x7D70, 0xBD78,
+ 0x7D71, 0xBD79,
+ 0x7D72, 0xBD7A,
+ 0x7D73, 0xBD7B,
+ 0x7D74, 0xBD7C,
+ 0x7D75, 0xBD7D,
+ 0x7D76, 0xBD7E,
+ 0x7D78, 0xBD80,
+ 0x7D79, 0xBD81,
+ 0x7D7A, 0xBD82,
+ 0x7D7B, 0xBD83,
+ 0x7D7C, 0xBD84,
+ 0x7D7D, 0xBD85,
+ 0x7D7E, 0xBD86,
+ 0x7D7F, 0xBD87,
+ 0x7D80, 0xBD88,
+ 0x7D81, 0xBD89,
+ 0x7D82, 0xBD8A,
+ 0x7D83, 0xBD8B,
+ 0x7D84, 0xBD8C,
+ 0x7D85, 0xBD8D,
+ 0x7D86, 0xBD8E,
+ 0x7D87, 0xBD8F,
+ 0x7D88, 0xBD90,
+ 0x7D89, 0xBD91,
+ 0x7D8A, 0xBD92,
+ 0x7D8B, 0xBD93,
+ 0x7D8C, 0xBD94,
+ 0x7D8D, 0xBD95,
+ 0x7D8E, 0xBD96,
+ 0x7D8F, 0xBD97,
+ 0x7D90, 0xBD98,
+ 0x7D91, 0xBD99,
+ 0x7D92, 0xBD9A,
+ 0x7D93, 0xBD9B,
+ 0x7D94, 0xBD9C,
+ 0x7D95, 0xBD9D,
+ 0x7D96, 0xBD9E,
+ 0x7D97, 0xBD9F,
+ 0x7D98, 0xBDA0,
+ 0x7D99, 0xBE40,
+ 0x7D9A, 0xBE41,
+ 0x7D9B, 0xBE42,
+ 0x7D9C, 0xBE43,
+ 0x7D9D, 0xBE44,
+ 0x7D9E, 0xBE45,
+ 0x7D9F, 0xBE46,
+ 0x7DA0, 0xBE47,
+ 0x7DA1, 0xBE48,
+ 0x7DA2, 0xBE49,
+ 0x7DA3, 0xBE4A,
+ 0x7DA4, 0xBE4B,
+ 0x7DA5, 0xBE4C,
+ 0x7DA7, 0xBE4D,
+ 0x7DA8, 0xBE4E,
+ 0x7DA9, 0xBE4F,
+ 0x7DAA, 0xBE50,
+ 0x7DAB, 0xBE51,
+ 0x7DAC, 0xBE52,
+ 0x7DAD, 0xBE53,
+ 0x7DAF, 0xBE54,
+ 0x7DB0, 0xBE55,
+ 0x7DB1, 0xBE56,
+ 0x7DB2, 0xBE57,
+ 0x7DB3, 0xBE58,
+ 0x7DB4, 0xBE59,
+ 0x7DB5, 0xBE5A,
+ 0x7DB6, 0xBE5B,
+ 0x7DB7, 0xBE5C,
+ 0x7DB8, 0xBE5D,
+ 0x7DB9, 0xBE5E,
+ 0x7DBA, 0xBE5F,
+ 0x7DBB, 0xBE60,
+ 0x7DBC, 0xBE61,
+ 0x7DBD, 0xBE62,
+ 0x7DBE, 0xBE63,
+ 0x7DBF, 0xBE64,
+ 0x7DC0, 0xBE65,
+ 0x7DC1, 0xBE66,
+ 0x7DC2, 0xBE67,
+ 0x7DC3, 0xBE68,
+ 0x7DC4, 0xBE69,
+ 0x7DC5, 0xBE6A,
+ 0x7DC6, 0xBE6B,
+ 0x7DC7, 0xBE6C,
+ 0x7DC8, 0xBE6D,
+ 0x7DC9, 0xBE6E,
+ 0x7DCA, 0xBE6F,
+ 0x7DCB, 0xBE70,
+ 0x7DCC, 0xBE71,
+ 0x7DCD, 0xBE72,
+ 0x7DCE, 0xBE73,
+ 0x7DCF, 0xBE74,
+ 0x7DD0, 0xBE75,
+ 0x7DD1, 0xBE76,
+ 0x7DD2, 0xBE77,
+ 0x7DD3, 0xBE78,
+ 0x7DD4, 0xBE79,
+ 0x7DD5, 0xBE7A,
+ 0x7DD6, 0xBE7B,
+ 0x7DD7, 0xBE7C,
+ 0x7DD8, 0xBE7D,
+ 0x7DD9, 0xBE7E,
+ 0x7DDA, 0xBE80,
+ 0x7DDB, 0xBE81,
+ 0x7DDC, 0xBE82,
+ 0x7DDD, 0xBE83,
+ 0x7DDE, 0xBE84,
+ 0x7DDF, 0xBE85,
+ 0x7DE0, 0xBE86,
+ 0x7DE1, 0xBE87,
+ 0x7DE2, 0xBE88,
+ 0x7DE3, 0xBE89,
+ 0x7DE4, 0xBE8A,
+ 0x7DE5, 0xBE8B,
+ 0x7DE6, 0xBE8C,
+ 0x7DE7, 0xBE8D,
+ 0x7DE8, 0xBE8E,
+ 0x7DE9, 0xBE8F,
+ 0x7DEA, 0xBE90,
+ 0x7DEB, 0xBE91,
+ 0x7DEC, 0xBE92,
+ 0x7DED, 0xBE93,
+ 0x7DEE, 0xBE94,
+ 0x7DEF, 0xBE95,
+ 0x7DF0, 0xBE96,
+ 0x7DF1, 0xBE97,
+ 0x7DF2, 0xBE98,
+ 0x7DF3, 0xBE99,
+ 0x7DF4, 0xBE9A,
+ 0x7DF5, 0xBE9B,
+ 0x7DF6, 0xBE9C,
+ 0x7DF7, 0xBE9D,
+ 0x7DF8, 0xBE9E,
+ 0x7DF9, 0xBE9F,
+ 0x7DFA, 0xBEA0,
+ 0x7DFB, 0xBF40,
+ 0x7DFC, 0xBF41,
+ 0x7DFD, 0xBF42,
+ 0x7DFE, 0xBF43,
+ 0x7DFF, 0xBF44,
+ 0x7E00, 0xBF45,
+ 0x7E01, 0xBF46,
+ 0x7E02, 0xBF47,
+ 0x7E03, 0xBF48,
+ 0x7E04, 0xBF49,
+ 0x7E05, 0xBF4A,
+ 0x7E06, 0xBF4B,
+ 0x7E07, 0xBF4C,
+ 0x7E08, 0xBF4D,
+ 0x7E09, 0xBF4E,
+ 0x7E0A, 0xBF4F,
+ 0x7E0B, 0xBF50,
+ 0x7E0C, 0xBF51,
+ 0x7E0D, 0xBF52,
+ 0x7E0E, 0xBF53,
+ 0x7E0F, 0xBF54,
+ 0x7E10, 0xBF55,
+ 0x7E11, 0xBF56,
+ 0x7E12, 0xBF57,
+ 0x7E13, 0xBF58,
+ 0x7E14, 0xBF59,
+ 0x7E15, 0xBF5A,
+ 0x7E16, 0xBF5B,
+ 0x7E17, 0xBF5C,
+ 0x7E18, 0xBF5D,
+ 0x7E19, 0xBF5E,
+ 0x7E1A, 0xBF5F,
+ 0x7E1B, 0xBF60,
+ 0x7E1C, 0xBF61,
+ 0x7E1D, 0xBF62,
+ 0x7E1E, 0xBF63,
+ 0x7E1F, 0xBF64,
+ 0x7E20, 0xBF65,
+ 0x7E21, 0xBF66,
+ 0x7E22, 0xBF67,
+ 0x7E23, 0xBF68,
+ 0x7E24, 0xBF69,
+ 0x7E25, 0xBF6A,
+ 0x7E26, 0xBF6B,
+ 0x7E27, 0xBF6C,
+ 0x7E28, 0xBF6D,
+ 0x7E29, 0xBF6E,
+ 0x7E2A, 0xBF6F,
+ 0x7E2B, 0xBF70,
+ 0x7E2C, 0xBF71,
+ 0x7E2D, 0xBF72,
+ 0x7E2E, 0xBF73,
+ 0x7E2F, 0xBF74,
+ 0x7E30, 0xBF75,
+ 0x7E31, 0xBF76,
+ 0x7E32, 0xBF77,
+ 0x7E33, 0xBF78,
+ 0x7E34, 0xBF79,
+ 0x7E35, 0xBF7A,
+ 0x7E36, 0xBF7B,
+ 0x7E37, 0xBF7C,
+ 0x7E38, 0xBF7D,
+ 0x7E39, 0xBF7E,
+ 0x7E3A, 0xBF80,
+ 0x7E3C, 0xBF81,
+ 0x7E3D, 0xBF82,
+ 0x7E3E, 0xBF83,
+ 0x7E3F, 0xBF84,
+ 0x7E40, 0xBF85,
+ 0x7E42, 0xBF86,
+ 0x7E43, 0xBF87,
+ 0x7E44, 0xBF88,
+ 0x7E45, 0xBF89,
+ 0x7E46, 0xBF8A,
+ 0x7E48, 0xBF8B,
+ 0x7E49, 0xBF8C,
+ 0x7E4A, 0xBF8D,
+ 0x7E4B, 0xBF8E,
+ 0x7E4C, 0xBF8F,
+ 0x7E4D, 0xBF90,
+ 0x7E4E, 0xBF91,
+ 0x7E4F, 0xBF92,
+ 0x7E50, 0xBF93,
+ 0x7E51, 0xBF94,
+ 0x7E52, 0xBF95,
+ 0x7E53, 0xBF96,
+ 0x7E54, 0xBF97,
+ 0x7E55, 0xBF98,
+ 0x7E56, 0xBF99,
+ 0x7E57, 0xBF9A,
+ 0x7E58, 0xBF9B,
+ 0x7E59, 0xBF9C,
+ 0x7E5A, 0xBF9D,
+ 0x7E5B, 0xBF9E,
+ 0x7E5C, 0xBF9F,
+ 0x7E5D, 0xBFA0,
+ 0x7E5E, 0xC040,
+ 0x7E5F, 0xC041,
+ 0x7E60, 0xC042,
+ 0x7E61, 0xC043,
+ 0x7E62, 0xC044,
+ 0x7E63, 0xC045,
+ 0x7E64, 0xC046,
+ 0x7E65, 0xC047,
+ 0x7E66, 0xC048,
+ 0x7E67, 0xC049,
+ 0x7E68, 0xC04A,
+ 0x7E69, 0xC04B,
+ 0x7E6A, 0xC04C,
+ 0x7E6B, 0xC04D,
+ 0x7E6C, 0xC04E,
+ 0x7E6D, 0xC04F,
+ 0x7E6E, 0xC050,
+ 0x7E6F, 0xC051,
+ 0x7E70, 0xC052,
+ 0x7E71, 0xC053,
+ 0x7E72, 0xC054,
+ 0x7E73, 0xC055,
+ 0x7E74, 0xC056,
+ 0x7E75, 0xC057,
+ 0x7E76, 0xC058,
+ 0x7E77, 0xC059,
+ 0x7E78, 0xC05A,
+ 0x7E79, 0xC05B,
+ 0x7E7A, 0xC05C,
+ 0x7E7B, 0xC05D,
+ 0x7E7C, 0xC05E,
+ 0x7E7D, 0xC05F,
+ 0x7E7E, 0xC060,
+ 0x7E7F, 0xC061,
+ 0x7E80, 0xC062,
+ 0x7E81, 0xC063,
+ 0x7E83, 0xC064,
+ 0x7E84, 0xC065,
+ 0x7E85, 0xC066,
+ 0x7E86, 0xC067,
+ 0x7E87, 0xC068,
+ 0x7E88, 0xC069,
+ 0x7E89, 0xC06A,
+ 0x7E8A, 0xC06B,
+ 0x7E8B, 0xC06C,
+ 0x7E8C, 0xC06D,
+ 0x7E8D, 0xC06E,
+ 0x7E8E, 0xC06F,
+ 0x7E8F, 0xC070,
+ 0x7E90, 0xC071,
+ 0x7E91, 0xC072,
+ 0x7E92, 0xC073,
+ 0x7E93, 0xC074,
+ 0x7E94, 0xC075,
+ 0x7E95, 0xC076,
+ 0x7E96, 0xC077,
+ 0x7E97, 0xC078,
+ 0x7E98, 0xC079,
+ 0x7E99, 0xC07A,
+ 0x7E9A, 0xC07B,
+ 0x7E9C, 0xC07C,
+ 0x7E9D, 0xC07D,
+ 0x7E9E, 0xC07E,
+ 0x7EAE, 0xC080,
+ 0x7EB4, 0xC081,
+ 0x7EBB, 0xC082,
+ 0x7EBC, 0xC083,
+ 0x7ED6, 0xC084,
+ 0x7EE4, 0xC085,
+ 0x7EEC, 0xC086,
+ 0x7EF9, 0xC087,
+ 0x7F0A, 0xC088,
+ 0x7F10, 0xC089,
+ 0x7F1E, 0xC08A,
+ 0x7F37, 0xC08B,
+ 0x7F39, 0xC08C,
+ 0x7F3B, 0xC08D,
+ 0x7F3C, 0xC08E,
+ 0x7F3D, 0xC08F,
+ 0x7F3E, 0xC090,
+ 0x7F3F, 0xC091,
+ 0x7F40, 0xC092,
+ 0x7F41, 0xC093,
+ 0x7F43, 0xC094,
+ 0x7F46, 0xC095,
+ 0x7F47, 0xC096,
+ 0x7F48, 0xC097,
+ 0x7F49, 0xC098,
+ 0x7F4A, 0xC099,
+ 0x7F4B, 0xC09A,
+ 0x7F4C, 0xC09B,
+ 0x7F4D, 0xC09C,
+ 0x7F4E, 0xC09D,
+ 0x7F4F, 0xC09E,
+ 0x7F52, 0xC09F,
+ 0x7F53, 0xC0A0,
+ 0x7F56, 0xC140,
+ 0x7F59, 0xC141,
+ 0x7F5B, 0xC142,
+ 0x7F5C, 0xC143,
+ 0x7F5D, 0xC144,
+ 0x7F5E, 0xC145,
+ 0x7F60, 0xC146,
+ 0x7F63, 0xC147,
+ 0x7F64, 0xC148,
+ 0x7F65, 0xC149,
+ 0x7F66, 0xC14A,
+ 0x7F67, 0xC14B,
+ 0x7F6B, 0xC14C,
+ 0x7F6C, 0xC14D,
+ 0x7F6D, 0xC14E,
+ 0x7F6F, 0xC14F,
+ 0x7F70, 0xC150,
+ 0x7F73, 0xC151,
+ 0x7F75, 0xC152,
+ 0x7F76, 0xC153,
+ 0x7F77, 0xC154,
+ 0x7F78, 0xC155,
+ 0x7F7A, 0xC156,
+ 0x7F7B, 0xC157,
+ 0x7F7C, 0xC158,
+ 0x7F7D, 0xC159,
+ 0x7F7F, 0xC15A,
+ 0x7F80, 0xC15B,
+ 0x7F82, 0xC15C,
+ 0x7F83, 0xC15D,
+ 0x7F84, 0xC15E,
+ 0x7F85, 0xC15F,
+ 0x7F86, 0xC160,
+ 0x7F87, 0xC161,
+ 0x7F88, 0xC162,
+ 0x7F89, 0xC163,
+ 0x7F8B, 0xC164,
+ 0x7F8D, 0xC165,
+ 0x7F8F, 0xC166,
+ 0x7F90, 0xC167,
+ 0x7F91, 0xC168,
+ 0x7F92, 0xC169,
+ 0x7F93, 0xC16A,
+ 0x7F95, 0xC16B,
+ 0x7F96, 0xC16C,
+ 0x7F97, 0xC16D,
+ 0x7F98, 0xC16E,
+ 0x7F99, 0xC16F,
+ 0x7F9B, 0xC170,
+ 0x7F9C, 0xC171,
+ 0x7FA0, 0xC172,
+ 0x7FA2, 0xC173,
+ 0x7FA3, 0xC174,
+ 0x7FA5, 0xC175,
+ 0x7FA6, 0xC176,
+ 0x7FA8, 0xC177,
+ 0x7FA9, 0xC178,
+ 0x7FAA, 0xC179,
+ 0x7FAB, 0xC17A,
+ 0x7FAC, 0xC17B,
+ 0x7FAD, 0xC17C,
+ 0x7FAE, 0xC17D,
+ 0x7FB1, 0xC17E,
+ 0x7FB3, 0xC180,
+ 0x7FB4, 0xC181,
+ 0x7FB5, 0xC182,
+ 0x7FB6, 0xC183,
+ 0x7FB7, 0xC184,
+ 0x7FBA, 0xC185,
+ 0x7FBB, 0xC186,
+ 0x7FBE, 0xC187,
+ 0x7FC0, 0xC188,
+ 0x7FC2, 0xC189,
+ 0x7FC3, 0xC18A,
+ 0x7FC4, 0xC18B,
+ 0x7FC6, 0xC18C,
+ 0x7FC7, 0xC18D,
+ 0x7FC8, 0xC18E,
+ 0x7FC9, 0xC18F,
+ 0x7FCB, 0xC190,
+ 0x7FCD, 0xC191,
+ 0x7FCF, 0xC192,
+ 0x7FD0, 0xC193,
+ 0x7FD1, 0xC194,
+ 0x7FD2, 0xC195,
+ 0x7FD3, 0xC196,
+ 0x7FD6, 0xC197,
+ 0x7FD7, 0xC198,
+ 0x7FD9, 0xC199,
+ 0x7FDA, 0xC19A,
+ 0x7FDB, 0xC19B,
+ 0x7FDC, 0xC19C,
+ 0x7FDD, 0xC19D,
+ 0x7FDE, 0xC19E,
+ 0x7FE2, 0xC19F,
+ 0x7FE3, 0xC1A0,
+ 0x7FE4, 0xC240,
+ 0x7FE7, 0xC241,
+ 0x7FE8, 0xC242,
+ 0x7FEA, 0xC243,
+ 0x7FEB, 0xC244,
+ 0x7FEC, 0xC245,
+ 0x7FED, 0xC246,
+ 0x7FEF, 0xC247,
+ 0x7FF2, 0xC248,
+ 0x7FF4, 0xC249,
+ 0x7FF5, 0xC24A,
+ 0x7FF6, 0xC24B,
+ 0x7FF7, 0xC24C,
+ 0x7FF8, 0xC24D,
+ 0x7FF9, 0xC24E,
+ 0x7FFA, 0xC24F,
+ 0x7FFD, 0xC250,
+ 0x7FFE, 0xC251,
+ 0x7FFF, 0xC252,
+ 0x8002, 0xC253,
+ 0x8007, 0xC254,
+ 0x8008, 0xC255,
+ 0x8009, 0xC256,
+ 0x800A, 0xC257,
+ 0x800E, 0xC258,
+ 0x800F, 0xC259,
+ 0x8011, 0xC25A,
+ 0x8013, 0xC25B,
+ 0x801A, 0xC25C,
+ 0x801B, 0xC25D,
+ 0x801D, 0xC25E,
+ 0x801E, 0xC25F,
+ 0x801F, 0xC260,
+ 0x8021, 0xC261,
+ 0x8023, 0xC262,
+ 0x8024, 0xC263,
+ 0x802B, 0xC264,
+ 0x802C, 0xC265,
+ 0x802D, 0xC266,
+ 0x802E, 0xC267,
+ 0x802F, 0xC268,
+ 0x8030, 0xC269,
+ 0x8032, 0xC26A,
+ 0x8034, 0xC26B,
+ 0x8039, 0xC26C,
+ 0x803A, 0xC26D,
+ 0x803C, 0xC26E,
+ 0x803E, 0xC26F,
+ 0x8040, 0xC270,
+ 0x8041, 0xC271,
+ 0x8044, 0xC272,
+ 0x8045, 0xC273,
+ 0x8047, 0xC274,
+ 0x8048, 0xC275,
+ 0x8049, 0xC276,
+ 0x804E, 0xC277,
+ 0x804F, 0xC278,
+ 0x8050, 0xC279,
+ 0x8051, 0xC27A,
+ 0x8053, 0xC27B,
+ 0x8055, 0xC27C,
+ 0x8056, 0xC27D,
+ 0x8057, 0xC27E,
+ 0x8059, 0xC280,
+ 0x805B, 0xC281,
+ 0x805C, 0xC282,
+ 0x805D, 0xC283,
+ 0x805E, 0xC284,
+ 0x805F, 0xC285,
+ 0x8060, 0xC286,
+ 0x8061, 0xC287,
+ 0x8062, 0xC288,
+ 0x8063, 0xC289,
+ 0x8064, 0xC28A,
+ 0x8065, 0xC28B,
+ 0x8066, 0xC28C,
+ 0x8067, 0xC28D,
+ 0x8068, 0xC28E,
+ 0x806B, 0xC28F,
+ 0x806C, 0xC290,
+ 0x806D, 0xC291,
+ 0x806E, 0xC292,
+ 0x806F, 0xC293,
+ 0x8070, 0xC294,
+ 0x8072, 0xC295,
+ 0x8073, 0xC296,
+ 0x8074, 0xC297,
+ 0x8075, 0xC298,
+ 0x8076, 0xC299,
+ 0x8077, 0xC29A,
+ 0x8078, 0xC29B,
+ 0x8079, 0xC29C,
+ 0x807A, 0xC29D,
+ 0x807B, 0xC29E,
+ 0x807C, 0xC29F,
+ 0x807D, 0xC2A0,
+ 0x807E, 0xC340,
+ 0x8081, 0xC341,
+ 0x8082, 0xC342,
+ 0x8085, 0xC343,
+ 0x8088, 0xC344,
+ 0x808A, 0xC345,
+ 0x808D, 0xC346,
+ 0x808E, 0xC347,
+ 0x808F, 0xC348,
+ 0x8090, 0xC349,
+ 0x8091, 0xC34A,
+ 0x8092, 0xC34B,
+ 0x8094, 0xC34C,
+ 0x8095, 0xC34D,
+ 0x8097, 0xC34E,
+ 0x8099, 0xC34F,
+ 0x809E, 0xC350,
+ 0x80A3, 0xC351,
+ 0x80A6, 0xC352,
+ 0x80A7, 0xC353,
+ 0x80A8, 0xC354,
+ 0x80AC, 0xC355,
+ 0x80B0, 0xC356,
+ 0x80B3, 0xC357,
+ 0x80B5, 0xC358,
+ 0x80B6, 0xC359,
+ 0x80B8, 0xC35A,
+ 0x80B9, 0xC35B,
+ 0x80BB, 0xC35C,
+ 0x80C5, 0xC35D,
+ 0x80C7, 0xC35E,
+ 0x80C8, 0xC35F,
+ 0x80C9, 0xC360,
+ 0x80CA, 0xC361,
+ 0x80CB, 0xC362,
+ 0x80CF, 0xC363,
+ 0x80D0, 0xC364,
+ 0x80D1, 0xC365,
+ 0x80D2, 0xC366,
+ 0x80D3, 0xC367,
+ 0x80D4, 0xC368,
+ 0x80D5, 0xC369,
+ 0x80D8, 0xC36A,
+ 0x80DF, 0xC36B,
+ 0x80E0, 0xC36C,
+ 0x80E2, 0xC36D,
+ 0x80E3, 0xC36E,
+ 0x80E6, 0xC36F,
+ 0x80EE, 0xC370,
+ 0x80F5, 0xC371,
+ 0x80F7, 0xC372,
+ 0x80F9, 0xC373,
+ 0x80FB, 0xC374,
+ 0x80FE, 0xC375,
+ 0x80FF, 0xC376,
+ 0x8100, 0xC377,
+ 0x8101, 0xC378,
+ 0x8103, 0xC379,
+ 0x8104, 0xC37A,
+ 0x8105, 0xC37B,
+ 0x8107, 0xC37C,
+ 0x8108, 0xC37D,
+ 0x810B, 0xC37E,
+ 0x810C, 0xC380,
+ 0x8115, 0xC381,
+ 0x8117, 0xC382,
+ 0x8119, 0xC383,
+ 0x811B, 0xC384,
+ 0x811C, 0xC385,
+ 0x811D, 0xC386,
+ 0x811F, 0xC387,
+ 0x8120, 0xC388,
+ 0x8121, 0xC389,
+ 0x8122, 0xC38A,
+ 0x8123, 0xC38B,
+ 0x8124, 0xC38C,
+ 0x8125, 0xC38D,
+ 0x8126, 0xC38E,
+ 0x8127, 0xC38F,
+ 0x8128, 0xC390,
+ 0x8129, 0xC391,
+ 0x812A, 0xC392,
+ 0x812B, 0xC393,
+ 0x812D, 0xC394,
+ 0x812E, 0xC395,
+ 0x8130, 0xC396,
+ 0x8133, 0xC397,
+ 0x8134, 0xC398,
+ 0x8135, 0xC399,
+ 0x8137, 0xC39A,
+ 0x8139, 0xC39B,
+ 0x813A, 0xC39C,
+ 0x813B, 0xC39D,
+ 0x813C, 0xC39E,
+ 0x813D, 0xC39F,
+ 0x813F, 0xC3A0,
+ 0x8140, 0xC440,
+ 0x8141, 0xC441,
+ 0x8142, 0xC442,
+ 0x8143, 0xC443,
+ 0x8144, 0xC444,
+ 0x8145, 0xC445,
+ 0x8147, 0xC446,
+ 0x8149, 0xC447,
+ 0x814D, 0xC448,
+ 0x814E, 0xC449,
+ 0x814F, 0xC44A,
+ 0x8152, 0xC44B,
+ 0x8156, 0xC44C,
+ 0x8157, 0xC44D,
+ 0x8158, 0xC44E,
+ 0x815B, 0xC44F,
+ 0x815C, 0xC450,
+ 0x815D, 0xC451,
+ 0x815E, 0xC452,
+ 0x815F, 0xC453,
+ 0x8161, 0xC454,
+ 0x8162, 0xC455,
+ 0x8163, 0xC456,
+ 0x8164, 0xC457,
+ 0x8166, 0xC458,
+ 0x8168, 0xC459,
+ 0x816A, 0xC45A,
+ 0x816B, 0xC45B,
+ 0x816C, 0xC45C,
+ 0x816F, 0xC45D,
+ 0x8172, 0xC45E,
+ 0x8173, 0xC45F,
+ 0x8175, 0xC460,
+ 0x8176, 0xC461,
+ 0x8177, 0xC462,
+ 0x8178, 0xC463,
+ 0x8181, 0xC464,
+ 0x8183, 0xC465,
+ 0x8184, 0xC466,
+ 0x8185, 0xC467,
+ 0x8186, 0xC468,
+ 0x8187, 0xC469,
+ 0x8189, 0xC46A,
+ 0x818B, 0xC46B,
+ 0x818C, 0xC46C,
+ 0x818D, 0xC46D,
+ 0x818E, 0xC46E,
+ 0x8190, 0xC46F,
+ 0x8192, 0xC470,
+ 0x8193, 0xC471,
+ 0x8194, 0xC472,
+ 0x8195, 0xC473,
+ 0x8196, 0xC474,
+ 0x8197, 0xC475,
+ 0x8199, 0xC476,
+ 0x819A, 0xC477,
+ 0x819E, 0xC478,
+ 0x819F, 0xC479,
+ 0x81A0, 0xC47A,
+ 0x81A1, 0xC47B,
+ 0x81A2, 0xC47C,
+ 0x81A4, 0xC47D,
+ 0x81A5, 0xC47E,
+ 0x81A7, 0xC480,
+ 0x81A9, 0xC481,
+ 0x81AB, 0xC482,
+ 0x81AC, 0xC483,
+ 0x81AD, 0xC484,
+ 0x81AE, 0xC485,
+ 0x81AF, 0xC486,
+ 0x81B0, 0xC487,
+ 0x81B1, 0xC488,
+ 0x81B2, 0xC489,
+ 0x81B4, 0xC48A,
+ 0x81B5, 0xC48B,
+ 0x81B6, 0xC48C,
+ 0x81B7, 0xC48D,
+ 0x81B8, 0xC48E,
+ 0x81B9, 0xC48F,
+ 0x81BC, 0xC490,
+ 0x81BD, 0xC491,
+ 0x81BE, 0xC492,
+ 0x81BF, 0xC493,
+ 0x81C4, 0xC494,
+ 0x81C5, 0xC495,
+ 0x81C7, 0xC496,
+ 0x81C8, 0xC497,
+ 0x81C9, 0xC498,
+ 0x81CB, 0xC499,
+ 0x81CD, 0xC49A,
+ 0x81CE, 0xC49B,
+ 0x81CF, 0xC49C,
+ 0x81D0, 0xC49D,
+ 0x81D1, 0xC49E,
+ 0x81D2, 0xC49F,
+ 0x81D3, 0xC4A0,
+ 0x81D4, 0xC540,
+ 0x81D5, 0xC541,
+ 0x81D6, 0xC542,
+ 0x81D7, 0xC543,
+ 0x81D8, 0xC544,
+ 0x81D9, 0xC545,
+ 0x81DA, 0xC546,
+ 0x81DB, 0xC547,
+ 0x81DC, 0xC548,
+ 0x81DD, 0xC549,
+ 0x81DE, 0xC54A,
+ 0x81DF, 0xC54B,
+ 0x81E0, 0xC54C,
+ 0x81E1, 0xC54D,
+ 0x81E2, 0xC54E,
+ 0x81E4, 0xC54F,
+ 0x81E5, 0xC550,
+ 0x81E6, 0xC551,
+ 0x81E8, 0xC552,
+ 0x81E9, 0xC553,
+ 0x81EB, 0xC554,
+ 0x81EE, 0xC555,
+ 0x81EF, 0xC556,
+ 0x81F0, 0xC557,
+ 0x81F1, 0xC558,
+ 0x81F2, 0xC559,
+ 0x81F5, 0xC55A,
+ 0x81F6, 0xC55B,
+ 0x81F7, 0xC55C,
+ 0x81F8, 0xC55D,
+ 0x81F9, 0xC55E,
+ 0x81FA, 0xC55F,
+ 0x81FD, 0xC560,
+ 0x81FF, 0xC561,
+ 0x8203, 0xC562,
+ 0x8207, 0xC563,
+ 0x8208, 0xC564,
+ 0x8209, 0xC565,
+ 0x820A, 0xC566,
+ 0x820B, 0xC567,
+ 0x820E, 0xC568,
+ 0x820F, 0xC569,
+ 0x8211, 0xC56A,
+ 0x8213, 0xC56B,
+ 0x8215, 0xC56C,
+ 0x8216, 0xC56D,
+ 0x8217, 0xC56E,
+ 0x8218, 0xC56F,
+ 0x8219, 0xC570,
+ 0x821A, 0xC571,
+ 0x821D, 0xC572,
+ 0x8220, 0xC573,
+ 0x8224, 0xC574,
+ 0x8225, 0xC575,
+ 0x8226, 0xC576,
+ 0x8227, 0xC577,
+ 0x8229, 0xC578,
+ 0x822E, 0xC579,
+ 0x8232, 0xC57A,
+ 0x823A, 0xC57B,
+ 0x823C, 0xC57C,
+ 0x823D, 0xC57D,
+ 0x823F, 0xC57E,
+ 0x8240, 0xC580,
+ 0x8241, 0xC581,
+ 0x8242, 0xC582,
+ 0x8243, 0xC583,
+ 0x8245, 0xC584,
+ 0x8246, 0xC585,
+ 0x8248, 0xC586,
+ 0x824A, 0xC587,
+ 0x824C, 0xC588,
+ 0x824D, 0xC589,
+ 0x824E, 0xC58A,
+ 0x8250, 0xC58B,
+ 0x8251, 0xC58C,
+ 0x8252, 0xC58D,
+ 0x8253, 0xC58E,
+ 0x8254, 0xC58F,
+ 0x8255, 0xC590,
+ 0x8256, 0xC591,
+ 0x8257, 0xC592,
+ 0x8259, 0xC593,
+ 0x825B, 0xC594,
+ 0x825C, 0xC595,
+ 0x825D, 0xC596,
+ 0x825E, 0xC597,
+ 0x8260, 0xC598,
+ 0x8261, 0xC599,
+ 0x8262, 0xC59A,
+ 0x8263, 0xC59B,
+ 0x8264, 0xC59C,
+ 0x8265, 0xC59D,
+ 0x8266, 0xC59E,
+ 0x8267, 0xC59F,
+ 0x8269, 0xC5A0,
+ 0x826A, 0xC640,
+ 0x826B, 0xC641,
+ 0x826C, 0xC642,
+ 0x826D, 0xC643,
+ 0x8271, 0xC644,
+ 0x8275, 0xC645,
+ 0x8276, 0xC646,
+ 0x8277, 0xC647,
+ 0x8278, 0xC648,
+ 0x827B, 0xC649,
+ 0x827C, 0xC64A,
+ 0x8280, 0xC64B,
+ 0x8281, 0xC64C,
+ 0x8283, 0xC64D,
+ 0x8285, 0xC64E,
+ 0x8286, 0xC64F,
+ 0x8287, 0xC650,
+ 0x8289, 0xC651,
+ 0x828C, 0xC652,
+ 0x8290, 0xC653,
+ 0x8293, 0xC654,
+ 0x8294, 0xC655,
+ 0x8295, 0xC656,
+ 0x8296, 0xC657,
+ 0x829A, 0xC658,
+ 0x829B, 0xC659,
+ 0x829E, 0xC65A,
+ 0x82A0, 0xC65B,
+ 0x82A2, 0xC65C,
+ 0x82A3, 0xC65D,
+ 0x82A7, 0xC65E,
+ 0x82B2, 0xC65F,
+ 0x82B5, 0xC660,
+ 0x82B6, 0xC661,
+ 0x82BA, 0xC662,
+ 0x82BB, 0xC663,
+ 0x82BC, 0xC664,
+ 0x82BF, 0xC665,
+ 0x82C0, 0xC666,
+ 0x82C2, 0xC667,
+ 0x82C3, 0xC668,
+ 0x82C5, 0xC669,
+ 0x82C6, 0xC66A,
+ 0x82C9, 0xC66B,
+ 0x82D0, 0xC66C,
+ 0x82D6, 0xC66D,
+ 0x82D9, 0xC66E,
+ 0x82DA, 0xC66F,
+ 0x82DD, 0xC670,
+ 0x82E2, 0xC671,
+ 0x82E7, 0xC672,
+ 0x82E8, 0xC673,
+ 0x82E9, 0xC674,
+ 0x82EA, 0xC675,
+ 0x82EC, 0xC676,
+ 0x82ED, 0xC677,
+ 0x82EE, 0xC678,
+ 0x82F0, 0xC679,
+ 0x82F2, 0xC67A,
+ 0x82F3, 0xC67B,
+ 0x82F5, 0xC67C,
+ 0x82F6, 0xC67D,
+ 0x82F8, 0xC67E,
+ 0x82FA, 0xC680,
+ 0x82FC, 0xC681,
+ 0x82FD, 0xC682,
+ 0x82FE, 0xC683,
+ 0x82FF, 0xC684,
+ 0x8300, 0xC685,
+ 0x830A, 0xC686,
+ 0x830B, 0xC687,
+ 0x830D, 0xC688,
+ 0x8310, 0xC689,
+ 0x8312, 0xC68A,
+ 0x8313, 0xC68B,
+ 0x8316, 0xC68C,
+ 0x8318, 0xC68D,
+ 0x8319, 0xC68E,
+ 0x831D, 0xC68F,
+ 0x831E, 0xC690,
+ 0x831F, 0xC691,
+ 0x8320, 0xC692,
+ 0x8321, 0xC693,
+ 0x8322, 0xC694,
+ 0x8323, 0xC695,
+ 0x8324, 0xC696,
+ 0x8325, 0xC697,
+ 0x8326, 0xC698,
+ 0x8329, 0xC699,
+ 0x832A, 0xC69A,
+ 0x832E, 0xC69B,
+ 0x8330, 0xC69C,
+ 0x8332, 0xC69D,
+ 0x8337, 0xC69E,
+ 0x833B, 0xC69F,
+ 0x833D, 0xC6A0,
+ 0x833E, 0xC740,
+ 0x833F, 0xC741,
+ 0x8341, 0xC742,
+ 0x8342, 0xC743,
+ 0x8344, 0xC744,
+ 0x8345, 0xC745,
+ 0x8348, 0xC746,
+ 0x834A, 0xC747,
+ 0x834B, 0xC748,
+ 0x834C, 0xC749,
+ 0x834D, 0xC74A,
+ 0x834E, 0xC74B,
+ 0x8353, 0xC74C,
+ 0x8355, 0xC74D,
+ 0x8356, 0xC74E,
+ 0x8357, 0xC74F,
+ 0x8358, 0xC750,
+ 0x8359, 0xC751,
+ 0x835D, 0xC752,
+ 0x8362, 0xC753,
+ 0x8370, 0xC754,
+ 0x8371, 0xC755,
+ 0x8372, 0xC756,
+ 0x8373, 0xC757,
+ 0x8374, 0xC758,
+ 0x8375, 0xC759,
+ 0x8376, 0xC75A,
+ 0x8379, 0xC75B,
+ 0x837A, 0xC75C,
+ 0x837E, 0xC75D,
+ 0x837F, 0xC75E,
+ 0x8380, 0xC75F,
+ 0x8381, 0xC760,
+ 0x8382, 0xC761,
+ 0x8383, 0xC762,
+ 0x8384, 0xC763,
+ 0x8387, 0xC764,
+ 0x8388, 0xC765,
+ 0x838A, 0xC766,
+ 0x838B, 0xC767,
+ 0x838C, 0xC768,
+ 0x838D, 0xC769,
+ 0x838F, 0xC76A,
+ 0x8390, 0xC76B,
+ 0x8391, 0xC76C,
+ 0x8394, 0xC76D,
+ 0x8395, 0xC76E,
+ 0x8396, 0xC76F,
+ 0x8397, 0xC770,
+ 0x8399, 0xC771,
+ 0x839A, 0xC772,
+ 0x839D, 0xC773,
+ 0x839F, 0xC774,
+ 0x83A1, 0xC775,
+ 0x83A2, 0xC776,
+ 0x83A3, 0xC777,
+ 0x83A4, 0xC778,
+ 0x83A5, 0xC779,
+ 0x83A6, 0xC77A,
+ 0x83A7, 0xC77B,
+ 0x83AC, 0xC77C,
+ 0x83AD, 0xC77D,
+ 0x83AE, 0xC77E,
+ 0x83AF, 0xC780,
+ 0x83B5, 0xC781,
+ 0x83BB, 0xC782,
+ 0x83BE, 0xC783,
+ 0x83BF, 0xC784,
+ 0x83C2, 0xC785,
+ 0x83C3, 0xC786,
+ 0x83C4, 0xC787,
+ 0x83C6, 0xC788,
+ 0x83C8, 0xC789,
+ 0x83C9, 0xC78A,
+ 0x83CB, 0xC78B,
+ 0x83CD, 0xC78C,
+ 0x83CE, 0xC78D,
+ 0x83D0, 0xC78E,
+ 0x83D1, 0xC78F,
+ 0x83D2, 0xC790,
+ 0x83D3, 0xC791,
+ 0x83D5, 0xC792,
+ 0x83D7, 0xC793,
+ 0x83D9, 0xC794,
+ 0x83DA, 0xC795,
+ 0x83DB, 0xC796,
+ 0x83DE, 0xC797,
+ 0x83E2, 0xC798,
+ 0x83E3, 0xC799,
+ 0x83E4, 0xC79A,
+ 0x83E6, 0xC79B,
+ 0x83E7, 0xC79C,
+ 0x83E8, 0xC79D,
+ 0x83EB, 0xC79E,
+ 0x83EC, 0xC79F,
+ 0x83ED, 0xC7A0,
+ 0x83EE, 0xC840,
+ 0x83EF, 0xC841,
+ 0x83F3, 0xC842,
+ 0x83F4, 0xC843,
+ 0x83F5, 0xC844,
+ 0x83F6, 0xC845,
+ 0x83F7, 0xC846,
+ 0x83FA, 0xC847,
+ 0x83FB, 0xC848,
+ 0x83FC, 0xC849,
+ 0x83FE, 0xC84A,
+ 0x83FF, 0xC84B,
+ 0x8400, 0xC84C,
+ 0x8402, 0xC84D,
+ 0x8405, 0xC84E,
+ 0x8407, 0xC84F,
+ 0x8408, 0xC850,
+ 0x8409, 0xC851,
+ 0x840A, 0xC852,
+ 0x8410, 0xC853,
+ 0x8412, 0xC854,
+ 0x8413, 0xC855,
+ 0x8414, 0xC856,
+ 0x8415, 0xC857,
+ 0x8416, 0xC858,
+ 0x8417, 0xC859,
+ 0x8419, 0xC85A,
+ 0x841A, 0xC85B,
+ 0x841B, 0xC85C,
+ 0x841E, 0xC85D,
+ 0x841F, 0xC85E,
+ 0x8420, 0xC85F,
+ 0x8421, 0xC860,
+ 0x8422, 0xC861,
+ 0x8423, 0xC862,
+ 0x8429, 0xC863,
+ 0x842A, 0xC864,
+ 0x842B, 0xC865,
+ 0x842C, 0xC866,
+ 0x842D, 0xC867,
+ 0x842E, 0xC868,
+ 0x842F, 0xC869,
+ 0x8430, 0xC86A,
+ 0x8432, 0xC86B,
+ 0x8433, 0xC86C,
+ 0x8434, 0xC86D,
+ 0x8435, 0xC86E,
+ 0x8436, 0xC86F,
+ 0x8437, 0xC870,
+ 0x8439, 0xC871,
+ 0x843A, 0xC872,
+ 0x843B, 0xC873,
+ 0x843E, 0xC874,
+ 0x843F, 0xC875,
+ 0x8440, 0xC876,
+ 0x8441, 0xC877,
+ 0x8442, 0xC878,
+ 0x8443, 0xC879,
+ 0x8444, 0xC87A,
+ 0x8445, 0xC87B,
+ 0x8447, 0xC87C,
+ 0x8448, 0xC87D,
+ 0x8449, 0xC87E,
+ 0x844A, 0xC880,
+ 0x844B, 0xC881,
+ 0x844C, 0xC882,
+ 0x844D, 0xC883,
+ 0x844E, 0xC884,
+ 0x844F, 0xC885,
+ 0x8450, 0xC886,
+ 0x8452, 0xC887,
+ 0x8453, 0xC888,
+ 0x8454, 0xC889,
+ 0x8455, 0xC88A,
+ 0x8456, 0xC88B,
+ 0x8458, 0xC88C,
+ 0x845D, 0xC88D,
+ 0x845E, 0xC88E,
+ 0x845F, 0xC88F,
+ 0x8460, 0xC890,
+ 0x8462, 0xC891,
+ 0x8464, 0xC892,
+ 0x8465, 0xC893,
+ 0x8466, 0xC894,
+ 0x8467, 0xC895,
+ 0x8468, 0xC896,
+ 0x846A, 0xC897,
+ 0x846E, 0xC898,
+ 0x846F, 0xC899,
+ 0x8470, 0xC89A,
+ 0x8472, 0xC89B,
+ 0x8474, 0xC89C,
+ 0x8477, 0xC89D,
+ 0x8479, 0xC89E,
+ 0x847B, 0xC89F,
+ 0x847C, 0xC8A0,
+ 0x847D, 0xC940,
+ 0x847E, 0xC941,
+ 0x847F, 0xC942,
+ 0x8480, 0xC943,
+ 0x8481, 0xC944,
+ 0x8483, 0xC945,
+ 0x8484, 0xC946,
+ 0x8485, 0xC947,
+ 0x8486, 0xC948,
+ 0x848A, 0xC949,
+ 0x848D, 0xC94A,
+ 0x848F, 0xC94B,
+ 0x8490, 0xC94C,
+ 0x8491, 0xC94D,
+ 0x8492, 0xC94E,
+ 0x8493, 0xC94F,
+ 0x8494, 0xC950,
+ 0x8495, 0xC951,
+ 0x8496, 0xC952,
+ 0x8498, 0xC953,
+ 0x849A, 0xC954,
+ 0x849B, 0xC955,
+ 0x849D, 0xC956,
+ 0x849E, 0xC957,
+ 0x849F, 0xC958,
+ 0x84A0, 0xC959,
+ 0x84A2, 0xC95A,
+ 0x84A3, 0xC95B,
+ 0x84A4, 0xC95C,
+ 0x84A5, 0xC95D,
+ 0x84A6, 0xC95E,
+ 0x84A7, 0xC95F,
+ 0x84A8, 0xC960,
+ 0x84A9, 0xC961,
+ 0x84AA, 0xC962,
+ 0x84AB, 0xC963,
+ 0x84AC, 0xC964,
+ 0x84AD, 0xC965,
+ 0x84AE, 0xC966,
+ 0x84B0, 0xC967,
+ 0x84B1, 0xC968,
+ 0x84B3, 0xC969,
+ 0x84B5, 0xC96A,
+ 0x84B6, 0xC96B,
+ 0x84B7, 0xC96C,
+ 0x84BB, 0xC96D,
+ 0x84BC, 0xC96E,
+ 0x84BE, 0xC96F,
+ 0x84C0, 0xC970,
+ 0x84C2, 0xC971,
+ 0x84C3, 0xC972,
+ 0x84C5, 0xC973,
+ 0x84C6, 0xC974,
+ 0x84C7, 0xC975,
+ 0x84C8, 0xC976,
+ 0x84CB, 0xC977,
+ 0x84CC, 0xC978,
+ 0x84CE, 0xC979,
+ 0x84CF, 0xC97A,
+ 0x84D2, 0xC97B,
+ 0x84D4, 0xC97C,
+ 0x84D5, 0xC97D,
+ 0x84D7, 0xC97E,
+ 0x84D8, 0xC980,
+ 0x84D9, 0xC981,
+ 0x84DA, 0xC982,
+ 0x84DB, 0xC983,
+ 0x84DC, 0xC984,
+ 0x84DE, 0xC985,
+ 0x84E1, 0xC986,
+ 0x84E2, 0xC987,
+ 0x84E4, 0xC988,
+ 0x84E7, 0xC989,
+ 0x84E8, 0xC98A,
+ 0x84E9, 0xC98B,
+ 0x84EA, 0xC98C,
+ 0x84EB, 0xC98D,
+ 0x84ED, 0xC98E,
+ 0x84EE, 0xC98F,
+ 0x84EF, 0xC990,
+ 0x84F1, 0xC991,
+ 0x84F2, 0xC992,
+ 0x84F3, 0xC993,
+ 0x84F4, 0xC994,
+ 0x84F5, 0xC995,
+ 0x84F6, 0xC996,
+ 0x84F7, 0xC997,
+ 0x84F8, 0xC998,
+ 0x84F9, 0xC999,
+ 0x84FA, 0xC99A,
+ 0x84FB, 0xC99B,
+ 0x84FD, 0xC99C,
+ 0x84FE, 0xC99D,
+ 0x8500, 0xC99E,
+ 0x8501, 0xC99F,
+ 0x8502, 0xC9A0,
+ 0x8503, 0xCA40,
+ 0x8504, 0xCA41,
+ 0x8505, 0xCA42,
+ 0x8506, 0xCA43,
+ 0x8507, 0xCA44,
+ 0x8508, 0xCA45,
+ 0x8509, 0xCA46,
+ 0x850A, 0xCA47,
+ 0x850B, 0xCA48,
+ 0x850D, 0xCA49,
+ 0x850E, 0xCA4A,
+ 0x850F, 0xCA4B,
+ 0x8510, 0xCA4C,
+ 0x8512, 0xCA4D,
+ 0x8514, 0xCA4E,
+ 0x8515, 0xCA4F,
+ 0x8516, 0xCA50,
+ 0x8518, 0xCA51,
+ 0x8519, 0xCA52,
+ 0x851B, 0xCA53,
+ 0x851C, 0xCA54,
+ 0x851D, 0xCA55,
+ 0x851E, 0xCA56,
+ 0x8520, 0xCA57,
+ 0x8522, 0xCA58,
+ 0x8523, 0xCA59,
+ 0x8524, 0xCA5A,
+ 0x8525, 0xCA5B,
+ 0x8526, 0xCA5C,
+ 0x8527, 0xCA5D,
+ 0x8528, 0xCA5E,
+ 0x8529, 0xCA5F,
+ 0x852A, 0xCA60,
+ 0x852D, 0xCA61,
+ 0x852E, 0xCA62,
+ 0x852F, 0xCA63,
+ 0x8530, 0xCA64,
+ 0x8531, 0xCA65,
+ 0x8532, 0xCA66,
+ 0x8533, 0xCA67,
+ 0x8534, 0xCA68,
+ 0x8535, 0xCA69,
+ 0x8536, 0xCA6A,
+ 0x853E, 0xCA6B,
+ 0x853F, 0xCA6C,
+ 0x8540, 0xCA6D,
+ 0x8541, 0xCA6E,
+ 0x8542, 0xCA6F,
+ 0x8544, 0xCA70,
+ 0x8545, 0xCA71,
+ 0x8546, 0xCA72,
+ 0x8547, 0xCA73,
+ 0x854B, 0xCA74,
+ 0x854C, 0xCA75,
+ 0x854D, 0xCA76,
+ 0x854E, 0xCA77,
+ 0x854F, 0xCA78,
+ 0x8550, 0xCA79,
+ 0x8551, 0xCA7A,
+ 0x8552, 0xCA7B,
+ 0x8553, 0xCA7C,
+ 0x8554, 0xCA7D,
+ 0x8555, 0xCA7E,
+ 0x8557, 0xCA80,
+ 0x8558, 0xCA81,
+ 0x855A, 0xCA82,
+ 0x855B, 0xCA83,
+ 0x855C, 0xCA84,
+ 0x855D, 0xCA85,
+ 0x855F, 0xCA86,
+ 0x8560, 0xCA87,
+ 0x8561, 0xCA88,
+ 0x8562, 0xCA89,
+ 0x8563, 0xCA8A,
+ 0x8565, 0xCA8B,
+ 0x8566, 0xCA8C,
+ 0x8567, 0xCA8D,
+ 0x8569, 0xCA8E,
+ 0x856A, 0xCA8F,
+ 0x856B, 0xCA90,
+ 0x856C, 0xCA91,
+ 0x856D, 0xCA92,
+ 0x856E, 0xCA93,
+ 0x856F, 0xCA94,
+ 0x8570, 0xCA95,
+ 0x8571, 0xCA96,
+ 0x8573, 0xCA97,
+ 0x8575, 0xCA98,
+ 0x8576, 0xCA99,
+ 0x8577, 0xCA9A,
+ 0x8578, 0xCA9B,
+ 0x857C, 0xCA9C,
+ 0x857D, 0xCA9D,
+ 0x857F, 0xCA9E,
+ 0x8580, 0xCA9F,
+ 0x8581, 0xCAA0,
+ 0x8582, 0xCB40,
+ 0x8583, 0xCB41,
+ 0x8586, 0xCB42,
+ 0x8588, 0xCB43,
+ 0x8589, 0xCB44,
+ 0x858A, 0xCB45,
+ 0x858B, 0xCB46,
+ 0x858C, 0xCB47,
+ 0x858D, 0xCB48,
+ 0x858E, 0xCB49,
+ 0x8590, 0xCB4A,
+ 0x8591, 0xCB4B,
+ 0x8592, 0xCB4C,
+ 0x8593, 0xCB4D,
+ 0x8594, 0xCB4E,
+ 0x8595, 0xCB4F,
+ 0x8596, 0xCB50,
+ 0x8597, 0xCB51,
+ 0x8598, 0xCB52,
+ 0x8599, 0xCB53,
+ 0x859A, 0xCB54,
+ 0x859D, 0xCB55,
+ 0x859E, 0xCB56,
+ 0x859F, 0xCB57,
+ 0x85A0, 0xCB58,
+ 0x85A1, 0xCB59,
+ 0x85A2, 0xCB5A,
+ 0x85A3, 0xCB5B,
+ 0x85A5, 0xCB5C,
+ 0x85A6, 0xCB5D,
+ 0x85A7, 0xCB5E,
+ 0x85A9, 0xCB5F,
+ 0x85AB, 0xCB60,
+ 0x85AC, 0xCB61,
+ 0x85AD, 0xCB62,
+ 0x85B1, 0xCB63,
+ 0x85B2, 0xCB64,
+ 0x85B3, 0xCB65,
+ 0x85B4, 0xCB66,
+ 0x85B5, 0xCB67,
+ 0x85B6, 0xCB68,
+ 0x85B8, 0xCB69,
+ 0x85BA, 0xCB6A,
+ 0x85BB, 0xCB6B,
+ 0x85BC, 0xCB6C,
+ 0x85BD, 0xCB6D,
+ 0x85BE, 0xCB6E,
+ 0x85BF, 0xCB6F,
+ 0x85C0, 0xCB70,
+ 0x85C2, 0xCB71,
+ 0x85C3, 0xCB72,
+ 0x85C4, 0xCB73,
+ 0x85C5, 0xCB74,
+ 0x85C6, 0xCB75,
+ 0x85C7, 0xCB76,
+ 0x85C8, 0xCB77,
+ 0x85CA, 0xCB78,
+ 0x85CB, 0xCB79,
+ 0x85CC, 0xCB7A,
+ 0x85CD, 0xCB7B,
+ 0x85CE, 0xCB7C,
+ 0x85D1, 0xCB7D,
+ 0x85D2, 0xCB7E,
+ 0x85D4, 0xCB80,
+ 0x85D6, 0xCB81,
+ 0x85D7, 0xCB82,
+ 0x85D8, 0xCB83,
+ 0x85D9, 0xCB84,
+ 0x85DA, 0xCB85,
+ 0x85DB, 0xCB86,
+ 0x85DD, 0xCB87,
+ 0x85DE, 0xCB88,
+ 0x85DF, 0xCB89,
+ 0x85E0, 0xCB8A,
+ 0x85E1, 0xCB8B,
+ 0x85E2, 0xCB8C,
+ 0x85E3, 0xCB8D,
+ 0x85E5, 0xCB8E,
+ 0x85E6, 0xCB8F,
+ 0x85E7, 0xCB90,
+ 0x85E8, 0xCB91,
+ 0x85EA, 0xCB92,
+ 0x85EB, 0xCB93,
+ 0x85EC, 0xCB94,
+ 0x85ED, 0xCB95,
+ 0x85EE, 0xCB96,
+ 0x85EF, 0xCB97,
+ 0x85F0, 0xCB98,
+ 0x85F1, 0xCB99,
+ 0x85F2, 0xCB9A,
+ 0x85F3, 0xCB9B,
+ 0x85F4, 0xCB9C,
+ 0x85F5, 0xCB9D,
+ 0x85F6, 0xCB9E,
+ 0x85F7, 0xCB9F,
+ 0x85F8, 0xCBA0,
+ 0x85F9, 0xCC40,
+ 0x85FA, 0xCC41,
+ 0x85FC, 0xCC42,
+ 0x85FD, 0xCC43,
+ 0x85FE, 0xCC44,
+ 0x8600, 0xCC45,
+ 0x8601, 0xCC46,
+ 0x8602, 0xCC47,
+ 0x8603, 0xCC48,
+ 0x8604, 0xCC49,
+ 0x8606, 0xCC4A,
+ 0x8607, 0xCC4B,
+ 0x8608, 0xCC4C,
+ 0x8609, 0xCC4D,
+ 0x860A, 0xCC4E,
+ 0x860B, 0xCC4F,
+ 0x860C, 0xCC50,
+ 0x860D, 0xCC51,
+ 0x860E, 0xCC52,
+ 0x860F, 0xCC53,
+ 0x8610, 0xCC54,
+ 0x8612, 0xCC55,
+ 0x8613, 0xCC56,
+ 0x8614, 0xCC57,
+ 0x8615, 0xCC58,
+ 0x8617, 0xCC59,
+ 0x8618, 0xCC5A,
+ 0x8619, 0xCC5B,
+ 0x861A, 0xCC5C,
+ 0x861B, 0xCC5D,
+ 0x861C, 0xCC5E,
+ 0x861D, 0xCC5F,
+ 0x861E, 0xCC60,
+ 0x861F, 0xCC61,
+ 0x8620, 0xCC62,
+ 0x8621, 0xCC63,
+ 0x8622, 0xCC64,
+ 0x8623, 0xCC65,
+ 0x8624, 0xCC66,
+ 0x8625, 0xCC67,
+ 0x8626, 0xCC68,
+ 0x8628, 0xCC69,
+ 0x862A, 0xCC6A,
+ 0x862B, 0xCC6B,
+ 0x862C, 0xCC6C,
+ 0x862D, 0xCC6D,
+ 0x862E, 0xCC6E,
+ 0x862F, 0xCC6F,
+ 0x8630, 0xCC70,
+ 0x8631, 0xCC71,
+ 0x8632, 0xCC72,
+ 0x8633, 0xCC73,
+ 0x8634, 0xCC74,
+ 0x8635, 0xCC75,
+ 0x8636, 0xCC76,
+ 0x8637, 0xCC77,
+ 0x8639, 0xCC78,
+ 0x863A, 0xCC79,
+ 0x863B, 0xCC7A,
+ 0x863D, 0xCC7B,
+ 0x863E, 0xCC7C,
+ 0x863F, 0xCC7D,
+ 0x8640, 0xCC7E,
+ 0x8641, 0xCC80,
+ 0x8642, 0xCC81,
+ 0x8643, 0xCC82,
+ 0x8644, 0xCC83,
+ 0x8645, 0xCC84,
+ 0x8646, 0xCC85,
+ 0x8647, 0xCC86,
+ 0x8648, 0xCC87,
+ 0x8649, 0xCC88,
+ 0x864A, 0xCC89,
+ 0x864B, 0xCC8A,
+ 0x864C, 0xCC8B,
+ 0x8652, 0xCC8C,
+ 0x8653, 0xCC8D,
+ 0x8655, 0xCC8E,
+ 0x8656, 0xCC8F,
+ 0x8657, 0xCC90,
+ 0x8658, 0xCC91,
+ 0x8659, 0xCC92,
+ 0x865B, 0xCC93,
+ 0x865C, 0xCC94,
+ 0x865D, 0xCC95,
+ 0x865F, 0xCC96,
+ 0x8660, 0xCC97,
+ 0x8661, 0xCC98,
+ 0x8663, 0xCC99,
+ 0x8664, 0xCC9A,
+ 0x8665, 0xCC9B,
+ 0x8666, 0xCC9C,
+ 0x8667, 0xCC9D,
+ 0x8668, 0xCC9E,
+ 0x8669, 0xCC9F,
+ 0x866A, 0xCCA0,
+ 0x866D, 0xCD40,
+ 0x866F, 0xCD41,
+ 0x8670, 0xCD42,
+ 0x8672, 0xCD43,
+ 0x8673, 0xCD44,
+ 0x8674, 0xCD45,
+ 0x8675, 0xCD46,
+ 0x8676, 0xCD47,
+ 0x8677, 0xCD48,
+ 0x8678, 0xCD49,
+ 0x8683, 0xCD4A,
+ 0x8684, 0xCD4B,
+ 0x8685, 0xCD4C,
+ 0x8686, 0xCD4D,
+ 0x8687, 0xCD4E,
+ 0x8688, 0xCD4F,
+ 0x8689, 0xCD50,
+ 0x868E, 0xCD51,
+ 0x868F, 0xCD52,
+ 0x8690, 0xCD53,
+ 0x8691, 0xCD54,
+ 0x8692, 0xCD55,
+ 0x8694, 0xCD56,
+ 0x8696, 0xCD57,
+ 0x8697, 0xCD58,
+ 0x8698, 0xCD59,
+ 0x8699, 0xCD5A,
+ 0x869A, 0xCD5B,
+ 0x869B, 0xCD5C,
+ 0x869E, 0xCD5D,
+ 0x869F, 0xCD5E,
+ 0x86A0, 0xCD5F,
+ 0x86A1, 0xCD60,
+ 0x86A2, 0xCD61,
+ 0x86A5, 0xCD62,
+ 0x86A6, 0xCD63,
+ 0x86AB, 0xCD64,
+ 0x86AD, 0xCD65,
+ 0x86AE, 0xCD66,
+ 0x86B2, 0xCD67,
+ 0x86B3, 0xCD68,
+ 0x86B7, 0xCD69,
+ 0x86B8, 0xCD6A,
+ 0x86B9, 0xCD6B,
+ 0x86BB, 0xCD6C,
+ 0x86BC, 0xCD6D,
+ 0x86BD, 0xCD6E,
+ 0x86BE, 0xCD6F,
+ 0x86BF, 0xCD70,
+ 0x86C1, 0xCD71,
+ 0x86C2, 0xCD72,
+ 0x86C3, 0xCD73,
+ 0x86C5, 0xCD74,
+ 0x86C8, 0xCD75,
+ 0x86CC, 0xCD76,
+ 0x86CD, 0xCD77,
+ 0x86D2, 0xCD78,
+ 0x86D3, 0xCD79,
+ 0x86D5, 0xCD7A,
+ 0x86D6, 0xCD7B,
+ 0x86D7, 0xCD7C,
+ 0x86DA, 0xCD7D,
+ 0x86DC, 0xCD7E,
+ 0x86DD, 0xCD80,
+ 0x86E0, 0xCD81,
+ 0x86E1, 0xCD82,
+ 0x86E2, 0xCD83,
+ 0x86E3, 0xCD84,
+ 0x86E5, 0xCD85,
+ 0x86E6, 0xCD86,
+ 0x86E7, 0xCD87,
+ 0x86E8, 0xCD88,
+ 0x86EA, 0xCD89,
+ 0x86EB, 0xCD8A,
+ 0x86EC, 0xCD8B,
+ 0x86EF, 0xCD8C,
+ 0x86F5, 0xCD8D,
+ 0x86F6, 0xCD8E,
+ 0x86F7, 0xCD8F,
+ 0x86FA, 0xCD90,
+ 0x86FB, 0xCD91,
+ 0x86FC, 0xCD92,
+ 0x86FD, 0xCD93,
+ 0x86FF, 0xCD94,
+ 0x8701, 0xCD95,
+ 0x8704, 0xCD96,
+ 0x8705, 0xCD97,
+ 0x8706, 0xCD98,
+ 0x870B, 0xCD99,
+ 0x870C, 0xCD9A,
+ 0x870E, 0xCD9B,
+ 0x870F, 0xCD9C,
+ 0x8710, 0xCD9D,
+ 0x8711, 0xCD9E,
+ 0x8714, 0xCD9F,
+ 0x8716, 0xCDA0,
+ 0x8719, 0xCE40,
+ 0x871B, 0xCE41,
+ 0x871D, 0xCE42,
+ 0x871F, 0xCE43,
+ 0x8720, 0xCE44,
+ 0x8724, 0xCE45,
+ 0x8726, 0xCE46,
+ 0x8727, 0xCE47,
+ 0x8728, 0xCE48,
+ 0x872A, 0xCE49,
+ 0x872B, 0xCE4A,
+ 0x872C, 0xCE4B,
+ 0x872D, 0xCE4C,
+ 0x872F, 0xCE4D,
+ 0x8730, 0xCE4E,
+ 0x8732, 0xCE4F,
+ 0x8733, 0xCE50,
+ 0x8735, 0xCE51,
+ 0x8736, 0xCE52,
+ 0x8738, 0xCE53,
+ 0x8739, 0xCE54,
+ 0x873A, 0xCE55,
+ 0x873C, 0xCE56,
+ 0x873D, 0xCE57,
+ 0x8740, 0xCE58,
+ 0x8741, 0xCE59,
+ 0x8742, 0xCE5A,
+ 0x8743, 0xCE5B,
+ 0x8744, 0xCE5C,
+ 0x8745, 0xCE5D,
+ 0x8746, 0xCE5E,
+ 0x874A, 0xCE5F,
+ 0x874B, 0xCE60,
+ 0x874D, 0xCE61,
+ 0x874F, 0xCE62,
+ 0x8750, 0xCE63,
+ 0x8751, 0xCE64,
+ 0x8752, 0xCE65,
+ 0x8754, 0xCE66,
+ 0x8755, 0xCE67,
+ 0x8756, 0xCE68,
+ 0x8758, 0xCE69,
+ 0x875A, 0xCE6A,
+ 0x875B, 0xCE6B,
+ 0x875C, 0xCE6C,
+ 0x875D, 0xCE6D,
+ 0x875E, 0xCE6E,
+ 0x875F, 0xCE6F,
+ 0x8761, 0xCE70,
+ 0x8762, 0xCE71,
+ 0x8766, 0xCE72,
+ 0x8767, 0xCE73,
+ 0x8768, 0xCE74,
+ 0x8769, 0xCE75,
+ 0x876A, 0xCE76,
+ 0x876B, 0xCE77,
+ 0x876C, 0xCE78,
+ 0x876D, 0xCE79,
+ 0x876F, 0xCE7A,
+ 0x8771, 0xCE7B,
+ 0x8772, 0xCE7C,
+ 0x8773, 0xCE7D,
+ 0x8775, 0xCE7E,
+ 0x8777, 0xCE80,
+ 0x8778, 0xCE81,
+ 0x8779, 0xCE82,
+ 0x877A, 0xCE83,
+ 0x877F, 0xCE84,
+ 0x8780, 0xCE85,
+ 0x8781, 0xCE86,
+ 0x8784, 0xCE87,
+ 0x8786, 0xCE88,
+ 0x8787, 0xCE89,
+ 0x8789, 0xCE8A,
+ 0x878A, 0xCE8B,
+ 0x878C, 0xCE8C,
+ 0x878E, 0xCE8D,
+ 0x878F, 0xCE8E,
+ 0x8790, 0xCE8F,
+ 0x8791, 0xCE90,
+ 0x8792, 0xCE91,
+ 0x8794, 0xCE92,
+ 0x8795, 0xCE93,
+ 0x8796, 0xCE94,
+ 0x8798, 0xCE95,
+ 0x8799, 0xCE96,
+ 0x879A, 0xCE97,
+ 0x879B, 0xCE98,
+ 0x879C, 0xCE99,
+ 0x879D, 0xCE9A,
+ 0x879E, 0xCE9B,
+ 0x87A0, 0xCE9C,
+ 0x87A1, 0xCE9D,
+ 0x87A2, 0xCE9E,
+ 0x87A3, 0xCE9F,
+ 0x87A4, 0xCEA0,
+ 0x87A5, 0xCF40,
+ 0x87A6, 0xCF41,
+ 0x87A7, 0xCF42,
+ 0x87A9, 0xCF43,
+ 0x87AA, 0xCF44,
+ 0x87AE, 0xCF45,
+ 0x87B0, 0xCF46,
+ 0x87B1, 0xCF47,
+ 0x87B2, 0xCF48,
+ 0x87B4, 0xCF49,
+ 0x87B6, 0xCF4A,
+ 0x87B7, 0xCF4B,
+ 0x87B8, 0xCF4C,
+ 0x87B9, 0xCF4D,
+ 0x87BB, 0xCF4E,
+ 0x87BC, 0xCF4F,
+ 0x87BE, 0xCF50,
+ 0x87BF, 0xCF51,
+ 0x87C1, 0xCF52,
+ 0x87C2, 0xCF53,
+ 0x87C3, 0xCF54,
+ 0x87C4, 0xCF55,
+ 0x87C5, 0xCF56,
+ 0x87C7, 0xCF57,
+ 0x87C8, 0xCF58,
+ 0x87C9, 0xCF59,
+ 0x87CC, 0xCF5A,
+ 0x87CD, 0xCF5B,
+ 0x87CE, 0xCF5C,
+ 0x87CF, 0xCF5D,
+ 0x87D0, 0xCF5E,
+ 0x87D4, 0xCF5F,
+ 0x87D5, 0xCF60,
+ 0x87D6, 0xCF61,
+ 0x87D7, 0xCF62,
+ 0x87D8, 0xCF63,
+ 0x87D9, 0xCF64,
+ 0x87DA, 0xCF65,
+ 0x87DC, 0xCF66,
+ 0x87DD, 0xCF67,
+ 0x87DE, 0xCF68,
+ 0x87DF, 0xCF69,
+ 0x87E1, 0xCF6A,
+ 0x87E2, 0xCF6B,
+ 0x87E3, 0xCF6C,
+ 0x87E4, 0xCF6D,
+ 0x87E6, 0xCF6E,
+ 0x87E7, 0xCF6F,
+ 0x87E8, 0xCF70,
+ 0x87E9, 0xCF71,
+ 0x87EB, 0xCF72,
+ 0x87EC, 0xCF73,
+ 0x87ED, 0xCF74,
+ 0x87EF, 0xCF75,
+ 0x87F0, 0xCF76,
+ 0x87F1, 0xCF77,
+ 0x87F2, 0xCF78,
+ 0x87F3, 0xCF79,
+ 0x87F4, 0xCF7A,
+ 0x87F5, 0xCF7B,
+ 0x87F6, 0xCF7C,
+ 0x87F7, 0xCF7D,
+ 0x87F8, 0xCF7E,
+ 0x87FA, 0xCF80,
+ 0x87FB, 0xCF81,
+ 0x87FC, 0xCF82,
+ 0x87FD, 0xCF83,
+ 0x87FF, 0xCF84,
+ 0x8800, 0xCF85,
+ 0x8801, 0xCF86,
+ 0x8802, 0xCF87,
+ 0x8804, 0xCF88,
+ 0x8805, 0xCF89,
+ 0x8806, 0xCF8A,
+ 0x8807, 0xCF8B,
+ 0x8808, 0xCF8C,
+ 0x8809, 0xCF8D,
+ 0x880B, 0xCF8E,
+ 0x880C, 0xCF8F,
+ 0x880D, 0xCF90,
+ 0x880E, 0xCF91,
+ 0x880F, 0xCF92,
+ 0x8810, 0xCF93,
+ 0x8811, 0xCF94,
+ 0x8812, 0xCF95,
+ 0x8814, 0xCF96,
+ 0x8817, 0xCF97,
+ 0x8818, 0xCF98,
+ 0x8819, 0xCF99,
+ 0x881A, 0xCF9A,
+ 0x881C, 0xCF9B,
+ 0x881D, 0xCF9C,
+ 0x881E, 0xCF9D,
+ 0x881F, 0xCF9E,
+ 0x8820, 0xCF9F,
+ 0x8823, 0xCFA0,
+ 0x8824, 0xD040,
+ 0x8825, 0xD041,
+ 0x8826, 0xD042,
+ 0x8827, 0xD043,
+ 0x8828, 0xD044,
+ 0x8829, 0xD045,
+ 0x882A, 0xD046,
+ 0x882B, 0xD047,
+ 0x882C, 0xD048,
+ 0x882D, 0xD049,
+ 0x882E, 0xD04A,
+ 0x882F, 0xD04B,
+ 0x8830, 0xD04C,
+ 0x8831, 0xD04D,
+ 0x8833, 0xD04E,
+ 0x8834, 0xD04F,
+ 0x8835, 0xD050,
+ 0x8836, 0xD051,
+ 0x8837, 0xD052,
+ 0x8838, 0xD053,
+ 0x883A, 0xD054,
+ 0x883B, 0xD055,
+ 0x883D, 0xD056,
+ 0x883E, 0xD057,
+ 0x883F, 0xD058,
+ 0x8841, 0xD059,
+ 0x8842, 0xD05A,
+ 0x8843, 0xD05B,
+ 0x8846, 0xD05C,
+ 0x8847, 0xD05D,
+ 0x8848, 0xD05E,
+ 0x8849, 0xD05F,
+ 0x884A, 0xD060,
+ 0x884B, 0xD061,
+ 0x884E, 0xD062,
+ 0x884F, 0xD063,
+ 0x8850, 0xD064,
+ 0x8851, 0xD065,
+ 0x8852, 0xD066,
+ 0x8853, 0xD067,
+ 0x8855, 0xD068,
+ 0x8856, 0xD069,
+ 0x8858, 0xD06A,
+ 0x885A, 0xD06B,
+ 0x885B, 0xD06C,
+ 0x885C, 0xD06D,
+ 0x885D, 0xD06E,
+ 0x885E, 0xD06F,
+ 0x885F, 0xD070,
+ 0x8860, 0xD071,
+ 0x8866, 0xD072,
+ 0x8867, 0xD073,
+ 0x886A, 0xD074,
+ 0x886D, 0xD075,
+ 0x886F, 0xD076,
+ 0x8871, 0xD077,
+ 0x8873, 0xD078,
+ 0x8874, 0xD079,
+ 0x8875, 0xD07A,
+ 0x8876, 0xD07B,
+ 0x8878, 0xD07C,
+ 0x8879, 0xD07D,
+ 0x887A, 0xD07E,
+ 0x887B, 0xD080,
+ 0x887C, 0xD081,
+ 0x8880, 0xD082,
+ 0x8883, 0xD083,
+ 0x8886, 0xD084,
+ 0x8887, 0xD085,
+ 0x8889, 0xD086,
+ 0x888A, 0xD087,
+ 0x888C, 0xD088,
+ 0x888E, 0xD089,
+ 0x888F, 0xD08A,
+ 0x8890, 0xD08B,
+ 0x8891, 0xD08C,
+ 0x8893, 0xD08D,
+ 0x8894, 0xD08E,
+ 0x8895, 0xD08F,
+ 0x8897, 0xD090,
+ 0x8898, 0xD091,
+ 0x8899, 0xD092,
+ 0x889A, 0xD093,
+ 0x889B, 0xD094,
+ 0x889D, 0xD095,
+ 0x889E, 0xD096,
+ 0x889F, 0xD097,
+ 0x88A0, 0xD098,
+ 0x88A1, 0xD099,
+ 0x88A3, 0xD09A,
+ 0x88A5, 0xD09B,
+ 0x88A6, 0xD09C,
+ 0x88A7, 0xD09D,
+ 0x88A8, 0xD09E,
+ 0x88A9, 0xD09F,
+ 0x88AA, 0xD0A0,
+ 0x88AC, 0xD140,
+ 0x88AE, 0xD141,
+ 0x88AF, 0xD142,
+ 0x88B0, 0xD143,
+ 0x88B2, 0xD144,
+ 0x88B3, 0xD145,
+ 0x88B4, 0xD146,
+ 0x88B5, 0xD147,
+ 0x88B6, 0xD148,
+ 0x88B8, 0xD149,
+ 0x88B9, 0xD14A,
+ 0x88BA, 0xD14B,
+ 0x88BB, 0xD14C,
+ 0x88BD, 0xD14D,
+ 0x88BE, 0xD14E,
+ 0x88BF, 0xD14F,
+ 0x88C0, 0xD150,
+ 0x88C3, 0xD151,
+ 0x88C4, 0xD152,
+ 0x88C7, 0xD153,
+ 0x88C8, 0xD154,
+ 0x88CA, 0xD155,
+ 0x88CB, 0xD156,
+ 0x88CC, 0xD157,
+ 0x88CD, 0xD158,
+ 0x88CF, 0xD159,
+ 0x88D0, 0xD15A,
+ 0x88D1, 0xD15B,
+ 0x88D3, 0xD15C,
+ 0x88D6, 0xD15D,
+ 0x88D7, 0xD15E,
+ 0x88DA, 0xD15F,
+ 0x88DB, 0xD160,
+ 0x88DC, 0xD161,
+ 0x88DD, 0xD162,
+ 0x88DE, 0xD163,
+ 0x88E0, 0xD164,
+ 0x88E1, 0xD165,
+ 0x88E6, 0xD166,
+ 0x88E7, 0xD167,
+ 0x88E9, 0xD168,
+ 0x88EA, 0xD169,
+ 0x88EB, 0xD16A,
+ 0x88EC, 0xD16B,
+ 0x88ED, 0xD16C,
+ 0x88EE, 0xD16D,
+ 0x88EF, 0xD16E,
+ 0x88F2, 0xD16F,
+ 0x88F5, 0xD170,
+ 0x88F6, 0xD171,
+ 0x88F7, 0xD172,
+ 0x88FA, 0xD173,
+ 0x88FB, 0xD174,
+ 0x88FD, 0xD175,
+ 0x88FF, 0xD176,
+ 0x8900, 0xD177,
+ 0x8901, 0xD178,
+ 0x8903, 0xD179,
+ 0x8904, 0xD17A,
+ 0x8905, 0xD17B,
+ 0x8906, 0xD17C,
+ 0x8907, 0xD17D,
+ 0x8908, 0xD17E,
+ 0x8909, 0xD180,
+ 0x890B, 0xD181,
+ 0x890C, 0xD182,
+ 0x890D, 0xD183,
+ 0x890E, 0xD184,
+ 0x890F, 0xD185,
+ 0x8911, 0xD186,
+ 0x8914, 0xD187,
+ 0x8915, 0xD188,
+ 0x8916, 0xD189,
+ 0x8917, 0xD18A,
+ 0x8918, 0xD18B,
+ 0x891C, 0xD18C,
+ 0x891D, 0xD18D,
+ 0x891E, 0xD18E,
+ 0x891F, 0xD18F,
+ 0x8920, 0xD190,
+ 0x8922, 0xD191,
+ 0x8923, 0xD192,
+ 0x8924, 0xD193,
+ 0x8926, 0xD194,
+ 0x8927, 0xD195,
+ 0x8928, 0xD196,
+ 0x8929, 0xD197,
+ 0x892C, 0xD198,
+ 0x892D, 0xD199,
+ 0x892E, 0xD19A,
+ 0x892F, 0xD19B,
+ 0x8931, 0xD19C,
+ 0x8932, 0xD19D,
+ 0x8933, 0xD19E,
+ 0x8935, 0xD19F,
+ 0x8937, 0xD1A0,
+ 0x8938, 0xD240,
+ 0x8939, 0xD241,
+ 0x893A, 0xD242,
+ 0x893B, 0xD243,
+ 0x893C, 0xD244,
+ 0x893D, 0xD245,
+ 0x893E, 0xD246,
+ 0x893F, 0xD247,
+ 0x8940, 0xD248,
+ 0x8942, 0xD249,
+ 0x8943, 0xD24A,
+ 0x8945, 0xD24B,
+ 0x8946, 0xD24C,
+ 0x8947, 0xD24D,
+ 0x8948, 0xD24E,
+ 0x8949, 0xD24F,
+ 0x894A, 0xD250,
+ 0x894B, 0xD251,
+ 0x894C, 0xD252,
+ 0x894D, 0xD253,
+ 0x894E, 0xD254,
+ 0x894F, 0xD255,
+ 0x8950, 0xD256,
+ 0x8951, 0xD257,
+ 0x8952, 0xD258,
+ 0x8953, 0xD259,
+ 0x8954, 0xD25A,
+ 0x8955, 0xD25B,
+ 0x8956, 0xD25C,
+ 0x8957, 0xD25D,
+ 0x8958, 0xD25E,
+ 0x8959, 0xD25F,
+ 0x895A, 0xD260,
+ 0x895B, 0xD261,
+ 0x895C, 0xD262,
+ 0x895D, 0xD263,
+ 0x8960, 0xD264,
+ 0x8961, 0xD265,
+ 0x8962, 0xD266,
+ 0x8963, 0xD267,
+ 0x8964, 0xD268,
+ 0x8965, 0xD269,
+ 0x8967, 0xD26A,
+ 0x8968, 0xD26B,
+ 0x8969, 0xD26C,
+ 0x896A, 0xD26D,
+ 0x896B, 0xD26E,
+ 0x896C, 0xD26F,
+ 0x896D, 0xD270,
+ 0x896E, 0xD271,
+ 0x896F, 0xD272,
+ 0x8970, 0xD273,
+ 0x8971, 0xD274,
+ 0x8972, 0xD275,
+ 0x8973, 0xD276,
+ 0x8974, 0xD277,
+ 0x8975, 0xD278,
+ 0x8976, 0xD279,
+ 0x8977, 0xD27A,
+ 0x8978, 0xD27B,
+ 0x8979, 0xD27C,
+ 0x897A, 0xD27D,
+ 0x897C, 0xD27E,
+ 0x897D, 0xD280,
+ 0x897E, 0xD281,
+ 0x8980, 0xD282,
+ 0x8982, 0xD283,
+ 0x8984, 0xD284,
+ 0x8985, 0xD285,
+ 0x8987, 0xD286,
+ 0x8988, 0xD287,
+ 0x8989, 0xD288,
+ 0x898A, 0xD289,
+ 0x898B, 0xD28A,
+ 0x898C, 0xD28B,
+ 0x898D, 0xD28C,
+ 0x898E, 0xD28D,
+ 0x898F, 0xD28E,
+ 0x8990, 0xD28F,
+ 0x8991, 0xD290,
+ 0x8992, 0xD291,
+ 0x8993, 0xD292,
+ 0x8994, 0xD293,
+ 0x8995, 0xD294,
+ 0x8996, 0xD295,
+ 0x8997, 0xD296,
+ 0x8998, 0xD297,
+ 0x8999, 0xD298,
+ 0x899A, 0xD299,
+ 0x899B, 0xD29A,
+ 0x899C, 0xD29B,
+ 0x899D, 0xD29C,
+ 0x899E, 0xD29D,
+ 0x899F, 0xD29E,
+ 0x89A0, 0xD29F,
+ 0x89A1, 0xD2A0,
+ 0x89A2, 0xD340,
+ 0x89A3, 0xD341,
+ 0x89A4, 0xD342,
+ 0x89A5, 0xD343,
+ 0x89A6, 0xD344,
+ 0x89A7, 0xD345,
+ 0x89A8, 0xD346,
+ 0x89A9, 0xD347,
+ 0x89AA, 0xD348,
+ 0x89AB, 0xD349,
+ 0x89AC, 0xD34A,
+ 0x89AD, 0xD34B,
+ 0x89AE, 0xD34C,
+ 0x89AF, 0xD34D,
+ 0x89B0, 0xD34E,
+ 0x89B1, 0xD34F,
+ 0x89B2, 0xD350,
+ 0x89B3, 0xD351,
+ 0x89B4, 0xD352,
+ 0x89B5, 0xD353,
+ 0x89B6, 0xD354,
+ 0x89B7, 0xD355,
+ 0x89B8, 0xD356,
+ 0x89B9, 0xD357,
+ 0x89BA, 0xD358,
+ 0x89BB, 0xD359,
+ 0x89BC, 0xD35A,
+ 0x89BD, 0xD35B,
+ 0x89BE, 0xD35C,
+ 0x89BF, 0xD35D,
+ 0x89C0, 0xD35E,
+ 0x89C3, 0xD35F,
+ 0x89CD, 0xD360,
+ 0x89D3, 0xD361,
+ 0x89D4, 0xD362,
+ 0x89D5, 0xD363,
+ 0x89D7, 0xD364,
+ 0x89D8, 0xD365,
+ 0x89D9, 0xD366,
+ 0x89DB, 0xD367,
+ 0x89DD, 0xD368,
+ 0x89DF, 0xD369,
+ 0x89E0, 0xD36A,
+ 0x89E1, 0xD36B,
+ 0x89E2, 0xD36C,
+ 0x89E4, 0xD36D,
+ 0x89E7, 0xD36E,
+ 0x89E8, 0xD36F,
+ 0x89E9, 0xD370,
+ 0x89EA, 0xD371,
+ 0x89EC, 0xD372,
+ 0x89ED, 0xD373,
+ 0x89EE, 0xD374,
+ 0x89F0, 0xD375,
+ 0x89F1, 0xD376,
+ 0x89F2, 0xD377,
+ 0x89F4, 0xD378,
+ 0x89F5, 0xD379,
+ 0x89F6, 0xD37A,
+ 0x89F7, 0xD37B,
+ 0x89F8, 0xD37C,
+ 0x89F9, 0xD37D,
+ 0x89FA, 0xD37E,
+ 0x89FB, 0xD380,
+ 0x89FC, 0xD381,
+ 0x89FD, 0xD382,
+ 0x89FE, 0xD383,
+ 0x89FF, 0xD384,
+ 0x8A01, 0xD385,
+ 0x8A02, 0xD386,
+ 0x8A03, 0xD387,
+ 0x8A04, 0xD388,
+ 0x8A05, 0xD389,
+ 0x8A06, 0xD38A,
+ 0x8A08, 0xD38B,
+ 0x8A09, 0xD38C,
+ 0x8A0A, 0xD38D,
+ 0x8A0B, 0xD38E,
+ 0x8A0C, 0xD38F,
+ 0x8A0D, 0xD390,
+ 0x8A0E, 0xD391,
+ 0x8A0F, 0xD392,
+ 0x8A10, 0xD393,
+ 0x8A11, 0xD394,
+ 0x8A12, 0xD395,
+ 0x8A13, 0xD396,
+ 0x8A14, 0xD397,
+ 0x8A15, 0xD398,
+ 0x8A16, 0xD399,
+ 0x8A17, 0xD39A,
+ 0x8A18, 0xD39B,
+ 0x8A19, 0xD39C,
+ 0x8A1A, 0xD39D,
+ 0x8A1B, 0xD39E,
+ 0x8A1C, 0xD39F,
+ 0x8A1D, 0xD3A0,
+ 0x8A1E, 0xD440,
+ 0x8A1F, 0xD441,
+ 0x8A20, 0xD442,
+ 0x8A21, 0xD443,
+ 0x8A22, 0xD444,
+ 0x8A23, 0xD445,
+ 0x8A24, 0xD446,
+ 0x8A25, 0xD447,
+ 0x8A26, 0xD448,
+ 0x8A27, 0xD449,
+ 0x8A28, 0xD44A,
+ 0x8A29, 0xD44B,
+ 0x8A2A, 0xD44C,
+ 0x8A2B, 0xD44D,
+ 0x8A2C, 0xD44E,
+ 0x8A2D, 0xD44F,
+ 0x8A2E, 0xD450,
+ 0x8A2F, 0xD451,
+ 0x8A30, 0xD452,
+ 0x8A31, 0xD453,
+ 0x8A32, 0xD454,
+ 0x8A33, 0xD455,
+ 0x8A34, 0xD456,
+ 0x8A35, 0xD457,
+ 0x8A36, 0xD458,
+ 0x8A37, 0xD459,
+ 0x8A38, 0xD45A,
+ 0x8A39, 0xD45B,
+ 0x8A3A, 0xD45C,
+ 0x8A3B, 0xD45D,
+ 0x8A3C, 0xD45E,
+ 0x8A3D, 0xD45F,
+ 0x8A3F, 0xD460,
+ 0x8A40, 0xD461,
+ 0x8A41, 0xD462,
+ 0x8A42, 0xD463,
+ 0x8A43, 0xD464,
+ 0x8A44, 0xD465,
+ 0x8A45, 0xD466,
+ 0x8A46, 0xD467,
+ 0x8A47, 0xD468,
+ 0x8A49, 0xD469,
+ 0x8A4A, 0xD46A,
+ 0x8A4B, 0xD46B,
+ 0x8A4C, 0xD46C,
+ 0x8A4D, 0xD46D,
+ 0x8A4E, 0xD46E,
+ 0x8A4F, 0xD46F,
+ 0x8A50, 0xD470,
+ 0x8A51, 0xD471,
+ 0x8A52, 0xD472,
+ 0x8A53, 0xD473,
+ 0x8A54, 0xD474,
+ 0x8A55, 0xD475,
+ 0x8A56, 0xD476,
+ 0x8A57, 0xD477,
+ 0x8A58, 0xD478,
+ 0x8A59, 0xD479,
+ 0x8A5A, 0xD47A,
+ 0x8A5B, 0xD47B,
+ 0x8A5C, 0xD47C,
+ 0x8A5D, 0xD47D,
+ 0x8A5E, 0xD47E,
+ 0x8A5F, 0xD480,
+ 0x8A60, 0xD481,
+ 0x8A61, 0xD482,
+ 0x8A62, 0xD483,
+ 0x8A63, 0xD484,
+ 0x8A64, 0xD485,
+ 0x8A65, 0xD486,
+ 0x8A66, 0xD487,
+ 0x8A67, 0xD488,
+ 0x8A68, 0xD489,
+ 0x8A69, 0xD48A,
+ 0x8A6A, 0xD48B,
+ 0x8A6B, 0xD48C,
+ 0x8A6C, 0xD48D,
+ 0x8A6D, 0xD48E,
+ 0x8A6E, 0xD48F,
+ 0x8A6F, 0xD490,
+ 0x8A70, 0xD491,
+ 0x8A71, 0xD492,
+ 0x8A72, 0xD493,
+ 0x8A73, 0xD494,
+ 0x8A74, 0xD495,
+ 0x8A75, 0xD496,
+ 0x8A76, 0xD497,
+ 0x8A77, 0xD498,
+ 0x8A78, 0xD499,
+ 0x8A7A, 0xD49A,
+ 0x8A7B, 0xD49B,
+ 0x8A7C, 0xD49C,
+ 0x8A7D, 0xD49D,
+ 0x8A7E, 0xD49E,
+ 0x8A7F, 0xD49F,
+ 0x8A80, 0xD4A0,
+ 0x8A81, 0xD540,
+ 0x8A82, 0xD541,
+ 0x8A83, 0xD542,
+ 0x8A84, 0xD543,
+ 0x8A85, 0xD544,
+ 0x8A86, 0xD545,
+ 0x8A87, 0xD546,
+ 0x8A88, 0xD547,
+ 0x8A8B, 0xD548,
+ 0x8A8C, 0xD549,
+ 0x8A8D, 0xD54A,
+ 0x8A8E, 0xD54B,
+ 0x8A8F, 0xD54C,
+ 0x8A90, 0xD54D,
+ 0x8A91, 0xD54E,
+ 0x8A92, 0xD54F,
+ 0x8A94, 0xD550,
+ 0x8A95, 0xD551,
+ 0x8A96, 0xD552,
+ 0x8A97, 0xD553,
+ 0x8A98, 0xD554,
+ 0x8A99, 0xD555,
+ 0x8A9A, 0xD556,
+ 0x8A9B, 0xD557,
+ 0x8A9C, 0xD558,
+ 0x8A9D, 0xD559,
+ 0x8A9E, 0xD55A,
+ 0x8A9F, 0xD55B,
+ 0x8AA0, 0xD55C,
+ 0x8AA1, 0xD55D,
+ 0x8AA2, 0xD55E,
+ 0x8AA3, 0xD55F,
+ 0x8AA4, 0xD560,
+ 0x8AA5, 0xD561,
+ 0x8AA6, 0xD562,
+ 0x8AA7, 0xD563,
+ 0x8AA8, 0xD564,
+ 0x8AA9, 0xD565,
+ 0x8AAA, 0xD566,
+ 0x8AAB, 0xD567,
+ 0x8AAC, 0xD568,
+ 0x8AAD, 0xD569,
+ 0x8AAE, 0xD56A,
+ 0x8AAF, 0xD56B,
+ 0x8AB0, 0xD56C,
+ 0x8AB1, 0xD56D,
+ 0x8AB2, 0xD56E,
+ 0x8AB3, 0xD56F,
+ 0x8AB4, 0xD570,
+ 0x8AB5, 0xD571,
+ 0x8AB6, 0xD572,
+ 0x8AB7, 0xD573,
+ 0x8AB8, 0xD574,
+ 0x8AB9, 0xD575,
+ 0x8ABA, 0xD576,
+ 0x8ABB, 0xD577,
+ 0x8ABC, 0xD578,
+ 0x8ABD, 0xD579,
+ 0x8ABE, 0xD57A,
+ 0x8ABF, 0xD57B,
+ 0x8AC0, 0xD57C,
+ 0x8AC1, 0xD57D,
+ 0x8AC2, 0xD57E,
+ 0x8AC3, 0xD580,
+ 0x8AC4, 0xD581,
+ 0x8AC5, 0xD582,
+ 0x8AC6, 0xD583,
+ 0x8AC7, 0xD584,
+ 0x8AC8, 0xD585,
+ 0x8AC9, 0xD586,
+ 0x8ACA, 0xD587,
+ 0x8ACB, 0xD588,
+ 0x8ACC, 0xD589,
+ 0x8ACD, 0xD58A,
+ 0x8ACE, 0xD58B,
+ 0x8ACF, 0xD58C,
+ 0x8AD0, 0xD58D,
+ 0x8AD1, 0xD58E,
+ 0x8AD2, 0xD58F,
+ 0x8AD3, 0xD590,
+ 0x8AD4, 0xD591,
+ 0x8AD5, 0xD592,
+ 0x8AD6, 0xD593,
+ 0x8AD7, 0xD594,
+ 0x8AD8, 0xD595,
+ 0x8AD9, 0xD596,
+ 0x8ADA, 0xD597,
+ 0x8ADB, 0xD598,
+ 0x8ADC, 0xD599,
+ 0x8ADD, 0xD59A,
+ 0x8ADE, 0xD59B,
+ 0x8ADF, 0xD59C,
+ 0x8AE0, 0xD59D,
+ 0x8AE1, 0xD59E,
+ 0x8AE2, 0xD59F,
+ 0x8AE3, 0xD5A0,
+ 0x8AE4, 0xD640,
+ 0x8AE5, 0xD641,
+ 0x8AE6, 0xD642,
+ 0x8AE7, 0xD643,
+ 0x8AE8, 0xD644,
+ 0x8AE9, 0xD645,
+ 0x8AEA, 0xD646,
+ 0x8AEB, 0xD647,
+ 0x8AEC, 0xD648,
+ 0x8AED, 0xD649,
+ 0x8AEE, 0xD64A,
+ 0x8AEF, 0xD64B,
+ 0x8AF0, 0xD64C,
+ 0x8AF1, 0xD64D,
+ 0x8AF2, 0xD64E,
+ 0x8AF3, 0xD64F,
+ 0x8AF4, 0xD650,
+ 0x8AF5, 0xD651,
+ 0x8AF6, 0xD652,
+ 0x8AF7, 0xD653,
+ 0x8AF8, 0xD654,
+ 0x8AF9, 0xD655,
+ 0x8AFA, 0xD656,
+ 0x8AFB, 0xD657,
+ 0x8AFC, 0xD658,
+ 0x8AFD, 0xD659,
+ 0x8AFE, 0xD65A,
+ 0x8AFF, 0xD65B,
+ 0x8B00, 0xD65C,
+ 0x8B01, 0xD65D,
+ 0x8B02, 0xD65E,
+ 0x8B03, 0xD65F,
+ 0x8B04, 0xD660,
+ 0x8B05, 0xD661,
+ 0x8B06, 0xD662,
+ 0x8B08, 0xD663,
+ 0x8B09, 0xD664,
+ 0x8B0A, 0xD665,
+ 0x8B0B, 0xD666,
+ 0x8B0C, 0xD667,
+ 0x8B0D, 0xD668,
+ 0x8B0E, 0xD669,
+ 0x8B0F, 0xD66A,
+ 0x8B10, 0xD66B,
+ 0x8B11, 0xD66C,
+ 0x8B12, 0xD66D,
+ 0x8B13, 0xD66E,
+ 0x8B14, 0xD66F,
+ 0x8B15, 0xD670,
+ 0x8B16, 0xD671,
+ 0x8B17, 0xD672,
+ 0x8B18, 0xD673,
+ 0x8B19, 0xD674,
+ 0x8B1A, 0xD675,
+ 0x8B1B, 0xD676,
+ 0x8B1C, 0xD677,
+ 0x8B1D, 0xD678,
+ 0x8B1E, 0xD679,
+ 0x8B1F, 0xD67A,
+ 0x8B20, 0xD67B,
+ 0x8B21, 0xD67C,
+ 0x8B22, 0xD67D,
+ 0x8B23, 0xD67E,
+ 0x8B24, 0xD680,
+ 0x8B25, 0xD681,
+ 0x8B27, 0xD682,
+ 0x8B28, 0xD683,
+ 0x8B29, 0xD684,
+ 0x8B2A, 0xD685,
+ 0x8B2B, 0xD686,
+ 0x8B2C, 0xD687,
+ 0x8B2D, 0xD688,
+ 0x8B2E, 0xD689,
+ 0x8B2F, 0xD68A,
+ 0x8B30, 0xD68B,
+ 0x8B31, 0xD68C,
+ 0x8B32, 0xD68D,
+ 0x8B33, 0xD68E,
+ 0x8B34, 0xD68F,
+ 0x8B35, 0xD690,
+ 0x8B36, 0xD691,
+ 0x8B37, 0xD692,
+ 0x8B38, 0xD693,
+ 0x8B39, 0xD694,
+ 0x8B3A, 0xD695,
+ 0x8B3B, 0xD696,
+ 0x8B3C, 0xD697,
+ 0x8B3D, 0xD698,
+ 0x8B3E, 0xD699,
+ 0x8B3F, 0xD69A,
+ 0x8B40, 0xD69B,
+ 0x8B41, 0xD69C,
+ 0x8B42, 0xD69D,
+ 0x8B43, 0xD69E,
+ 0x8B44, 0xD69F,
+ 0x8B45, 0xD6A0,
+ 0x8B46, 0xD740,
+ 0x8B47, 0xD741,
+ 0x8B48, 0xD742,
+ 0x8B49, 0xD743,
+ 0x8B4A, 0xD744,
+ 0x8B4B, 0xD745,
+ 0x8B4C, 0xD746,
+ 0x8B4D, 0xD747,
+ 0x8B4E, 0xD748,
+ 0x8B4F, 0xD749,
+ 0x8B50, 0xD74A,
+ 0x8B51, 0xD74B,
+ 0x8B52, 0xD74C,
+ 0x8B53, 0xD74D,
+ 0x8B54, 0xD74E,
+ 0x8B55, 0xD74F,
+ 0x8B56, 0xD750,
+ 0x8B57, 0xD751,
+ 0x8B58, 0xD752,
+ 0x8B59, 0xD753,
+ 0x8B5A, 0xD754,
+ 0x8B5B, 0xD755,
+ 0x8B5C, 0xD756,
+ 0x8B5D, 0xD757,
+ 0x8B5E, 0xD758,
+ 0x8B5F, 0xD759,
+ 0x8B60, 0xD75A,
+ 0x8B61, 0xD75B,
+ 0x8B62, 0xD75C,
+ 0x8B63, 0xD75D,
+ 0x8B64, 0xD75E,
+ 0x8B65, 0xD75F,
+ 0x8B67, 0xD760,
+ 0x8B68, 0xD761,
+ 0x8B69, 0xD762,
+ 0x8B6A, 0xD763,
+ 0x8B6B, 0xD764,
+ 0x8B6D, 0xD765,
+ 0x8B6E, 0xD766,
+ 0x8B6F, 0xD767,
+ 0x8B70, 0xD768,
+ 0x8B71, 0xD769,
+ 0x8B72, 0xD76A,
+ 0x8B73, 0xD76B,
+ 0x8B74, 0xD76C,
+ 0x8B75, 0xD76D,
+ 0x8B76, 0xD76E,
+ 0x8B77, 0xD76F,
+ 0x8B78, 0xD770,
+ 0x8B79, 0xD771,
+ 0x8B7A, 0xD772,
+ 0x8B7B, 0xD773,
+ 0x8B7C, 0xD774,
+ 0x8B7D, 0xD775,
+ 0x8B7E, 0xD776,
+ 0x8B7F, 0xD777,
+ 0x8B80, 0xD778,
+ 0x8B81, 0xD779,
+ 0x8B82, 0xD77A,
+ 0x8B83, 0xD77B,
+ 0x8B84, 0xD77C,
+ 0x8B85, 0xD77D,
+ 0x8B86, 0xD77E,
+ 0x8B87, 0xD780,
+ 0x8B88, 0xD781,
+ 0x8B89, 0xD782,
+ 0x8B8A, 0xD783,
+ 0x8B8B, 0xD784,
+ 0x8B8C, 0xD785,
+ 0x8B8D, 0xD786,
+ 0x8B8E, 0xD787,
+ 0x8B8F, 0xD788,
+ 0x8B90, 0xD789,
+ 0x8B91, 0xD78A,
+ 0x8B92, 0xD78B,
+ 0x8B93, 0xD78C,
+ 0x8B94, 0xD78D,
+ 0x8B95, 0xD78E,
+ 0x8B96, 0xD78F,
+ 0x8B97, 0xD790,
+ 0x8B98, 0xD791,
+ 0x8B99, 0xD792,
+ 0x8B9A, 0xD793,
+ 0x8B9B, 0xD794,
+ 0x8B9C, 0xD795,
+ 0x8B9D, 0xD796,
+ 0x8B9E, 0xD797,
+ 0x8B9F, 0xD798,
+ 0x8BAC, 0xD799,
+ 0x8BB1, 0xD79A,
+ 0x8BBB, 0xD79B,
+ 0x8BC7, 0xD79C,
+ 0x8BD0, 0xD79D,
+ 0x8BEA, 0xD79E,
+ 0x8C09, 0xD79F,
+ 0x8C1E, 0xD7A0,
+ 0x8C38, 0xD840,
+ 0x8C39, 0xD841,
+ 0x8C3A, 0xD842,
+ 0x8C3B, 0xD843,
+ 0x8C3C, 0xD844,
+ 0x8C3D, 0xD845,
+ 0x8C3E, 0xD846,
+ 0x8C3F, 0xD847,
+ 0x8C40, 0xD848,
+ 0x8C42, 0xD849,
+ 0x8C43, 0xD84A,
+ 0x8C44, 0xD84B,
+ 0x8C45, 0xD84C,
+ 0x8C48, 0xD84D,
+ 0x8C4A, 0xD84E,
+ 0x8C4B, 0xD84F,
+ 0x8C4D, 0xD850,
+ 0x8C4E, 0xD851,
+ 0x8C4F, 0xD852,
+ 0x8C50, 0xD853,
+ 0x8C51, 0xD854,
+ 0x8C52, 0xD855,
+ 0x8C53, 0xD856,
+ 0x8C54, 0xD857,
+ 0x8C56, 0xD858,
+ 0x8C57, 0xD859,
+ 0x8C58, 0xD85A,
+ 0x8C59, 0xD85B,
+ 0x8C5B, 0xD85C,
+ 0x8C5C, 0xD85D,
+ 0x8C5D, 0xD85E,
+ 0x8C5E, 0xD85F,
+ 0x8C5F, 0xD860,
+ 0x8C60, 0xD861,
+ 0x8C63, 0xD862,
+ 0x8C64, 0xD863,
+ 0x8C65, 0xD864,
+ 0x8C66, 0xD865,
+ 0x8C67, 0xD866,
+ 0x8C68, 0xD867,
+ 0x8C69, 0xD868,
+ 0x8C6C, 0xD869,
+ 0x8C6D, 0xD86A,
+ 0x8C6E, 0xD86B,
+ 0x8C6F, 0xD86C,
+ 0x8C70, 0xD86D,
+ 0x8C71, 0xD86E,
+ 0x8C72, 0xD86F,
+ 0x8C74, 0xD870,
+ 0x8C75, 0xD871,
+ 0x8C76, 0xD872,
+ 0x8C77, 0xD873,
+ 0x8C7B, 0xD874,
+ 0x8C7C, 0xD875,
+ 0x8C7D, 0xD876,
+ 0x8C7E, 0xD877,
+ 0x8C7F, 0xD878,
+ 0x8C80, 0xD879,
+ 0x8C81, 0xD87A,
+ 0x8C83, 0xD87B,
+ 0x8C84, 0xD87C,
+ 0x8C86, 0xD87D,
+ 0x8C87, 0xD87E,
+ 0x8C88, 0xD880,
+ 0x8C8B, 0xD881,
+ 0x8C8D, 0xD882,
+ 0x8C8E, 0xD883,
+ 0x8C8F, 0xD884,
+ 0x8C90, 0xD885,
+ 0x8C91, 0xD886,
+ 0x8C92, 0xD887,
+ 0x8C93, 0xD888,
+ 0x8C95, 0xD889,
+ 0x8C96, 0xD88A,
+ 0x8C97, 0xD88B,
+ 0x8C99, 0xD88C,
+ 0x8C9A, 0xD88D,
+ 0x8C9B, 0xD88E,
+ 0x8C9C, 0xD88F,
+ 0x8C9D, 0xD890,
+ 0x8C9E, 0xD891,
+ 0x8C9F, 0xD892,
+ 0x8CA0, 0xD893,
+ 0x8CA1, 0xD894,
+ 0x8CA2, 0xD895,
+ 0x8CA3, 0xD896,
+ 0x8CA4, 0xD897,
+ 0x8CA5, 0xD898,
+ 0x8CA6, 0xD899,
+ 0x8CA7, 0xD89A,
+ 0x8CA8, 0xD89B,
+ 0x8CA9, 0xD89C,
+ 0x8CAA, 0xD89D,
+ 0x8CAB, 0xD89E,
+ 0x8CAC, 0xD89F,
+ 0x8CAD, 0xD8A0,
+ 0x8CAE, 0xD940,
+ 0x8CAF, 0xD941,
+ 0x8CB0, 0xD942,
+ 0x8CB1, 0xD943,
+ 0x8CB2, 0xD944,
+ 0x8CB3, 0xD945,
+ 0x8CB4, 0xD946,
+ 0x8CB5, 0xD947,
+ 0x8CB6, 0xD948,
+ 0x8CB7, 0xD949,
+ 0x8CB8, 0xD94A,
+ 0x8CB9, 0xD94B,
+ 0x8CBA, 0xD94C,
+ 0x8CBB, 0xD94D,
+ 0x8CBC, 0xD94E,
+ 0x8CBD, 0xD94F,
+ 0x8CBE, 0xD950,
+ 0x8CBF, 0xD951,
+ 0x8CC0, 0xD952,
+ 0x8CC1, 0xD953,
+ 0x8CC2, 0xD954,
+ 0x8CC3, 0xD955,
+ 0x8CC4, 0xD956,
+ 0x8CC5, 0xD957,
+ 0x8CC6, 0xD958,
+ 0x8CC7, 0xD959,
+ 0x8CC8, 0xD95A,
+ 0x8CC9, 0xD95B,
+ 0x8CCA, 0xD95C,
+ 0x8CCB, 0xD95D,
+ 0x8CCC, 0xD95E,
+ 0x8CCD, 0xD95F,
+ 0x8CCE, 0xD960,
+ 0x8CCF, 0xD961,
+ 0x8CD0, 0xD962,
+ 0x8CD1, 0xD963,
+ 0x8CD2, 0xD964,
+ 0x8CD3, 0xD965,
+ 0x8CD4, 0xD966,
+ 0x8CD5, 0xD967,
+ 0x8CD6, 0xD968,
+ 0x8CD7, 0xD969,
+ 0x8CD8, 0xD96A,
+ 0x8CD9, 0xD96B,
+ 0x8CDA, 0xD96C,
+ 0x8CDB, 0xD96D,
+ 0x8CDC, 0xD96E,
+ 0x8CDD, 0xD96F,
+ 0x8CDE, 0xD970,
+ 0x8CDF, 0xD971,
+ 0x8CE0, 0xD972,
+ 0x8CE1, 0xD973,
+ 0x8CE2, 0xD974,
+ 0x8CE3, 0xD975,
+ 0x8CE4, 0xD976,
+ 0x8CE5, 0xD977,
+ 0x8CE6, 0xD978,
+ 0x8CE7, 0xD979,
+ 0x8CE8, 0xD97A,
+ 0x8CE9, 0xD97B,
+ 0x8CEA, 0xD97C,
+ 0x8CEB, 0xD97D,
+ 0x8CEC, 0xD97E,
+ 0x8CED, 0xD980,
+ 0x8CEE, 0xD981,
+ 0x8CEF, 0xD982,
+ 0x8CF0, 0xD983,
+ 0x8CF1, 0xD984,
+ 0x8CF2, 0xD985,
+ 0x8CF3, 0xD986,
+ 0x8CF4, 0xD987,
+ 0x8CF5, 0xD988,
+ 0x8CF6, 0xD989,
+ 0x8CF7, 0xD98A,
+ 0x8CF8, 0xD98B,
+ 0x8CF9, 0xD98C,
+ 0x8CFA, 0xD98D,
+ 0x8CFB, 0xD98E,
+ 0x8CFC, 0xD98F,
+ 0x8CFD, 0xD990,
+ 0x8CFE, 0xD991,
+ 0x8CFF, 0xD992,
+ 0x8D00, 0xD993,
+ 0x8D01, 0xD994,
+ 0x8D02, 0xD995,
+ 0x8D03, 0xD996,
+ 0x8D04, 0xD997,
+ 0x8D05, 0xD998,
+ 0x8D06, 0xD999,
+ 0x8D07, 0xD99A,
+ 0x8D08, 0xD99B,
+ 0x8D09, 0xD99C,
+ 0x8D0A, 0xD99D,
+ 0x8D0B, 0xD99E,
+ 0x8D0C, 0xD99F,
+ 0x8D0D, 0xD9A0,
+ 0x8D0E, 0xDA40,
+ 0x8D0F, 0xDA41,
+ 0x8D10, 0xDA42,
+ 0x8D11, 0xDA43,
+ 0x8D12, 0xDA44,
+ 0x8D13, 0xDA45,
+ 0x8D14, 0xDA46,
+ 0x8D15, 0xDA47,
+ 0x8D16, 0xDA48,
+ 0x8D17, 0xDA49,
+ 0x8D18, 0xDA4A,
+ 0x8D19, 0xDA4B,
+ 0x8D1A, 0xDA4C,
+ 0x8D1B, 0xDA4D,
+ 0x8D1C, 0xDA4E,
+ 0x8D20, 0xDA4F,
+ 0x8D51, 0xDA50,
+ 0x8D52, 0xDA51,
+ 0x8D57, 0xDA52,
+ 0x8D5F, 0xDA53,
+ 0x8D65, 0xDA54,
+ 0x8D68, 0xDA55,
+ 0x8D69, 0xDA56,
+ 0x8D6A, 0xDA57,
+ 0x8D6C, 0xDA58,
+ 0x8D6E, 0xDA59,
+ 0x8D6F, 0xDA5A,
+ 0x8D71, 0xDA5B,
+ 0x8D72, 0xDA5C,
+ 0x8D78, 0xDA5D,
+ 0x8D79, 0xDA5E,
+ 0x8D7A, 0xDA5F,
+ 0x8D7B, 0xDA60,
+ 0x8D7C, 0xDA61,
+ 0x8D7D, 0xDA62,
+ 0x8D7E, 0xDA63,
+ 0x8D7F, 0xDA64,
+ 0x8D80, 0xDA65,
+ 0x8D82, 0xDA66,
+ 0x8D83, 0xDA67,
+ 0x8D86, 0xDA68,
+ 0x8D87, 0xDA69,
+ 0x8D88, 0xDA6A,
+ 0x8D89, 0xDA6B,
+ 0x8D8C, 0xDA6C,
+ 0x8D8D, 0xDA6D,
+ 0x8D8E, 0xDA6E,
+ 0x8D8F, 0xDA6F,
+ 0x8D90, 0xDA70,
+ 0x8D92, 0xDA71,
+ 0x8D93, 0xDA72,
+ 0x8D95, 0xDA73,
+ 0x8D96, 0xDA74,
+ 0x8D97, 0xDA75,
+ 0x8D98, 0xDA76,
+ 0x8D99, 0xDA77,
+ 0x8D9A, 0xDA78,
+ 0x8D9B, 0xDA79,
+ 0x8D9C, 0xDA7A,
+ 0x8D9D, 0xDA7B,
+ 0x8D9E, 0xDA7C,
+ 0x8DA0, 0xDA7D,
+ 0x8DA1, 0xDA7E,
+ 0x8DA2, 0xDA80,
+ 0x8DA4, 0xDA81,
+ 0x8DA5, 0xDA82,
+ 0x8DA6, 0xDA83,
+ 0x8DA7, 0xDA84,
+ 0x8DA8, 0xDA85,
+ 0x8DA9, 0xDA86,
+ 0x8DAA, 0xDA87,
+ 0x8DAB, 0xDA88,
+ 0x8DAC, 0xDA89,
+ 0x8DAD, 0xDA8A,
+ 0x8DAE, 0xDA8B,
+ 0x8DAF, 0xDA8C,
+ 0x8DB0, 0xDA8D,
+ 0x8DB2, 0xDA8E,
+ 0x8DB6, 0xDA8F,
+ 0x8DB7, 0xDA90,
+ 0x8DB9, 0xDA91,
+ 0x8DBB, 0xDA92,
+ 0x8DBD, 0xDA93,
+ 0x8DC0, 0xDA94,
+ 0x8DC1, 0xDA95,
+ 0x8DC2, 0xDA96,
+ 0x8DC5, 0xDA97,
+ 0x8DC7, 0xDA98,
+ 0x8DC8, 0xDA99,
+ 0x8DC9, 0xDA9A,
+ 0x8DCA, 0xDA9B,
+ 0x8DCD, 0xDA9C,
+ 0x8DD0, 0xDA9D,
+ 0x8DD2, 0xDA9E,
+ 0x8DD3, 0xDA9F,
+ 0x8DD4, 0xDAA0,
+ 0x8DD5, 0xDB40,
+ 0x8DD8, 0xDB41,
+ 0x8DD9, 0xDB42,
+ 0x8DDC, 0xDB43,
+ 0x8DE0, 0xDB44,
+ 0x8DE1, 0xDB45,
+ 0x8DE2, 0xDB46,
+ 0x8DE5, 0xDB47,
+ 0x8DE6, 0xDB48,
+ 0x8DE7, 0xDB49,
+ 0x8DE9, 0xDB4A,
+ 0x8DED, 0xDB4B,
+ 0x8DEE, 0xDB4C,
+ 0x8DF0, 0xDB4D,
+ 0x8DF1, 0xDB4E,
+ 0x8DF2, 0xDB4F,
+ 0x8DF4, 0xDB50,
+ 0x8DF6, 0xDB51,
+ 0x8DFC, 0xDB52,
+ 0x8DFE, 0xDB53,
+ 0x8DFF, 0xDB54,
+ 0x8E00, 0xDB55,
+ 0x8E01, 0xDB56,
+ 0x8E02, 0xDB57,
+ 0x8E03, 0xDB58,
+ 0x8E04, 0xDB59,
+ 0x8E06, 0xDB5A,
+ 0x8E07, 0xDB5B,
+ 0x8E08, 0xDB5C,
+ 0x8E0B, 0xDB5D,
+ 0x8E0D, 0xDB5E,
+ 0x8E0E, 0xDB5F,
+ 0x8E10, 0xDB60,
+ 0x8E11, 0xDB61,
+ 0x8E12, 0xDB62,
+ 0x8E13, 0xDB63,
+ 0x8E15, 0xDB64,
+ 0x8E16, 0xDB65,
+ 0x8E17, 0xDB66,
+ 0x8E18, 0xDB67,
+ 0x8E19, 0xDB68,
+ 0x8E1A, 0xDB69,
+ 0x8E1B, 0xDB6A,
+ 0x8E1C, 0xDB6B,
+ 0x8E20, 0xDB6C,
+ 0x8E21, 0xDB6D,
+ 0x8E24, 0xDB6E,
+ 0x8E25, 0xDB6F,
+ 0x8E26, 0xDB70,
+ 0x8E27, 0xDB71,
+ 0x8E28, 0xDB72,
+ 0x8E2B, 0xDB73,
+ 0x8E2D, 0xDB74,
+ 0x8E30, 0xDB75,
+ 0x8E32, 0xDB76,
+ 0x8E33, 0xDB77,
+ 0x8E34, 0xDB78,
+ 0x8E36, 0xDB79,
+ 0x8E37, 0xDB7A,
+ 0x8E38, 0xDB7B,
+ 0x8E3B, 0xDB7C,
+ 0x8E3C, 0xDB7D,
+ 0x8E3E, 0xDB7E,
+ 0x8E3F, 0xDB80,
+ 0x8E43, 0xDB81,
+ 0x8E45, 0xDB82,
+ 0x8E46, 0xDB83,
+ 0x8E4C, 0xDB84,
+ 0x8E4D, 0xDB85,
+ 0x8E4E, 0xDB86,
+ 0x8E4F, 0xDB87,
+ 0x8E50, 0xDB88,
+ 0x8E53, 0xDB89,
+ 0x8E54, 0xDB8A,
+ 0x8E55, 0xDB8B,
+ 0x8E56, 0xDB8C,
+ 0x8E57, 0xDB8D,
+ 0x8E58, 0xDB8E,
+ 0x8E5A, 0xDB8F,
+ 0x8E5B, 0xDB90,
+ 0x8E5C, 0xDB91,
+ 0x8E5D, 0xDB92,
+ 0x8E5E, 0xDB93,
+ 0x8E5F, 0xDB94,
+ 0x8E60, 0xDB95,
+ 0x8E61, 0xDB96,
+ 0x8E62, 0xDB97,
+ 0x8E63, 0xDB98,
+ 0x8E64, 0xDB99,
+ 0x8E65, 0xDB9A,
+ 0x8E67, 0xDB9B,
+ 0x8E68, 0xDB9C,
+ 0x8E6A, 0xDB9D,
+ 0x8E6B, 0xDB9E,
+ 0x8E6E, 0xDB9F,
+ 0x8E71, 0xDBA0,
+ 0x8E73, 0xDC40,
+ 0x8E75, 0xDC41,
+ 0x8E77, 0xDC42,
+ 0x8E78, 0xDC43,
+ 0x8E79, 0xDC44,
+ 0x8E7A, 0xDC45,
+ 0x8E7B, 0xDC46,
+ 0x8E7D, 0xDC47,
+ 0x8E7E, 0xDC48,
+ 0x8E80, 0xDC49,
+ 0x8E82, 0xDC4A,
+ 0x8E83, 0xDC4B,
+ 0x8E84, 0xDC4C,
+ 0x8E86, 0xDC4D,
+ 0x8E88, 0xDC4E,
+ 0x8E89, 0xDC4F,
+ 0x8E8A, 0xDC50,
+ 0x8E8B, 0xDC51,
+ 0x8E8C, 0xDC52,
+ 0x8E8D, 0xDC53,
+ 0x8E8E, 0xDC54,
+ 0x8E91, 0xDC55,
+ 0x8E92, 0xDC56,
+ 0x8E93, 0xDC57,
+ 0x8E95, 0xDC58,
+ 0x8E96, 0xDC59,
+ 0x8E97, 0xDC5A,
+ 0x8E98, 0xDC5B,
+ 0x8E99, 0xDC5C,
+ 0x8E9A, 0xDC5D,
+ 0x8E9B, 0xDC5E,
+ 0x8E9D, 0xDC5F,
+ 0x8E9F, 0xDC60,
+ 0x8EA0, 0xDC61,
+ 0x8EA1, 0xDC62,
+ 0x8EA2, 0xDC63,
+ 0x8EA3, 0xDC64,
+ 0x8EA4, 0xDC65,
+ 0x8EA5, 0xDC66,
+ 0x8EA6, 0xDC67,
+ 0x8EA7, 0xDC68,
+ 0x8EA8, 0xDC69,
+ 0x8EA9, 0xDC6A,
+ 0x8EAA, 0xDC6B,
+ 0x8EAD, 0xDC6C,
+ 0x8EAE, 0xDC6D,
+ 0x8EB0, 0xDC6E,
+ 0x8EB1, 0xDC6F,
+ 0x8EB3, 0xDC70,
+ 0x8EB4, 0xDC71,
+ 0x8EB5, 0xDC72,
+ 0x8EB6, 0xDC73,
+ 0x8EB7, 0xDC74,
+ 0x8EB8, 0xDC75,
+ 0x8EB9, 0xDC76,
+ 0x8EBB, 0xDC77,
+ 0x8EBC, 0xDC78,
+ 0x8EBD, 0xDC79,
+ 0x8EBE, 0xDC7A,
+ 0x8EBF, 0xDC7B,
+ 0x8EC0, 0xDC7C,
+ 0x8EC1, 0xDC7D,
+ 0x8EC2, 0xDC7E,
+ 0x8EC3, 0xDC80,
+ 0x8EC4, 0xDC81,
+ 0x8EC5, 0xDC82,
+ 0x8EC6, 0xDC83,
+ 0x8EC7, 0xDC84,
+ 0x8EC8, 0xDC85,
+ 0x8EC9, 0xDC86,
+ 0x8ECA, 0xDC87,
+ 0x8ECB, 0xDC88,
+ 0x8ECC, 0xDC89,
+ 0x8ECD, 0xDC8A,
+ 0x8ECF, 0xDC8B,
+ 0x8ED0, 0xDC8C,
+ 0x8ED1, 0xDC8D,
+ 0x8ED2, 0xDC8E,
+ 0x8ED3, 0xDC8F,
+ 0x8ED4, 0xDC90,
+ 0x8ED5, 0xDC91,
+ 0x8ED6, 0xDC92,
+ 0x8ED7, 0xDC93,
+ 0x8ED8, 0xDC94,
+ 0x8ED9, 0xDC95,
+ 0x8EDA, 0xDC96,
+ 0x8EDB, 0xDC97,
+ 0x8EDC, 0xDC98,
+ 0x8EDD, 0xDC99,
+ 0x8EDE, 0xDC9A,
+ 0x8EDF, 0xDC9B,
+ 0x8EE0, 0xDC9C,
+ 0x8EE1, 0xDC9D,
+ 0x8EE2, 0xDC9E,
+ 0x8EE3, 0xDC9F,
+ 0x8EE4, 0xDCA0,
+ 0x8EE5, 0xDD40,
+ 0x8EE6, 0xDD41,
+ 0x8EE7, 0xDD42,
+ 0x8EE8, 0xDD43,
+ 0x8EE9, 0xDD44,
+ 0x8EEA, 0xDD45,
+ 0x8EEB, 0xDD46,
+ 0x8EEC, 0xDD47,
+ 0x8EED, 0xDD48,
+ 0x8EEE, 0xDD49,
+ 0x8EEF, 0xDD4A,
+ 0x8EF0, 0xDD4B,
+ 0x8EF1, 0xDD4C,
+ 0x8EF2, 0xDD4D,
+ 0x8EF3, 0xDD4E,
+ 0x8EF4, 0xDD4F,
+ 0x8EF5, 0xDD50,
+ 0x8EF6, 0xDD51,
+ 0x8EF7, 0xDD52,
+ 0x8EF8, 0xDD53,
+ 0x8EF9, 0xDD54,
+ 0x8EFA, 0xDD55,
+ 0x8EFB, 0xDD56,
+ 0x8EFC, 0xDD57,
+ 0x8EFD, 0xDD58,
+ 0x8EFE, 0xDD59,
+ 0x8EFF, 0xDD5A,
+ 0x8F00, 0xDD5B,
+ 0x8F01, 0xDD5C,
+ 0x8F02, 0xDD5D,
+ 0x8F03, 0xDD5E,
+ 0x8F04, 0xDD5F,
+ 0x8F05, 0xDD60,
+ 0x8F06, 0xDD61,
+ 0x8F07, 0xDD62,
+ 0x8F08, 0xDD63,
+ 0x8F09, 0xDD64,
+ 0x8F0A, 0xDD65,
+ 0x8F0B, 0xDD66,
+ 0x8F0C, 0xDD67,
+ 0x8F0D, 0xDD68,
+ 0x8F0E, 0xDD69,
+ 0x8F0F, 0xDD6A,
+ 0x8F10, 0xDD6B,
+ 0x8F11, 0xDD6C,
+ 0x8F12, 0xDD6D,
+ 0x8F13, 0xDD6E,
+ 0x8F14, 0xDD6F,
+ 0x8F15, 0xDD70,
+ 0x8F16, 0xDD71,
+ 0x8F17, 0xDD72,
+ 0x8F18, 0xDD73,
+ 0x8F19, 0xDD74,
+ 0x8F1A, 0xDD75,
+ 0x8F1B, 0xDD76,
+ 0x8F1C, 0xDD77,
+ 0x8F1D, 0xDD78,
+ 0x8F1E, 0xDD79,
+ 0x8F1F, 0xDD7A,
+ 0x8F20, 0xDD7B,
+ 0x8F21, 0xDD7C,
+ 0x8F22, 0xDD7D,
+ 0x8F23, 0xDD7E,
+ 0x8F24, 0xDD80,
+ 0x8F25, 0xDD81,
+ 0x8F26, 0xDD82,
+ 0x8F27, 0xDD83,
+ 0x8F28, 0xDD84,
+ 0x8F29, 0xDD85,
+ 0x8F2A, 0xDD86,
+ 0x8F2B, 0xDD87,
+ 0x8F2C, 0xDD88,
+ 0x8F2D, 0xDD89,
+ 0x8F2E, 0xDD8A,
+ 0x8F2F, 0xDD8B,
+ 0x8F30, 0xDD8C,
+ 0x8F31, 0xDD8D,
+ 0x8F32, 0xDD8E,
+ 0x8F33, 0xDD8F,
+ 0x8F34, 0xDD90,
+ 0x8F35, 0xDD91,
+ 0x8F36, 0xDD92,
+ 0x8F37, 0xDD93,
+ 0x8F38, 0xDD94,
+ 0x8F39, 0xDD95,
+ 0x8F3A, 0xDD96,
+ 0x8F3B, 0xDD97,
+ 0x8F3C, 0xDD98,
+ 0x8F3D, 0xDD99,
+ 0x8F3E, 0xDD9A,
+ 0x8F3F, 0xDD9B,
+ 0x8F40, 0xDD9C,
+ 0x8F41, 0xDD9D,
+ 0x8F42, 0xDD9E,
+ 0x8F43, 0xDD9F,
+ 0x8F44, 0xDDA0,
+ 0x8F45, 0xDE40,
+ 0x8F46, 0xDE41,
+ 0x8F47, 0xDE42,
+ 0x8F48, 0xDE43,
+ 0x8F49, 0xDE44,
+ 0x8F4A, 0xDE45,
+ 0x8F4B, 0xDE46,
+ 0x8F4C, 0xDE47,
+ 0x8F4D, 0xDE48,
+ 0x8F4E, 0xDE49,
+ 0x8F4F, 0xDE4A,
+ 0x8F50, 0xDE4B,
+ 0x8F51, 0xDE4C,
+ 0x8F52, 0xDE4D,
+ 0x8F53, 0xDE4E,
+ 0x8F54, 0xDE4F,
+ 0x8F55, 0xDE50,
+ 0x8F56, 0xDE51,
+ 0x8F57, 0xDE52,
+ 0x8F58, 0xDE53,
+ 0x8F59, 0xDE54,
+ 0x8F5A, 0xDE55,
+ 0x8F5B, 0xDE56,
+ 0x8F5C, 0xDE57,
+ 0x8F5D, 0xDE58,
+ 0x8F5E, 0xDE59,
+ 0x8F5F, 0xDE5A,
+ 0x8F60, 0xDE5B,
+ 0x8F61, 0xDE5C,
+ 0x8F62, 0xDE5D,
+ 0x8F63, 0xDE5E,
+ 0x8F64, 0xDE5F,
+ 0x8F65, 0xDE60,
+ 0x8F6A, 0xDE61,
+ 0x8F80, 0xDE62,
+ 0x8F8C, 0xDE63,
+ 0x8F92, 0xDE64,
+ 0x8F9D, 0xDE65,
+ 0x8FA0, 0xDE66,
+ 0x8FA1, 0xDE67,
+ 0x8FA2, 0xDE68,
+ 0x8FA4, 0xDE69,
+ 0x8FA5, 0xDE6A,
+ 0x8FA6, 0xDE6B,
+ 0x8FA7, 0xDE6C,
+ 0x8FAA, 0xDE6D,
+ 0x8FAC, 0xDE6E,
+ 0x8FAD, 0xDE6F,
+ 0x8FAE, 0xDE70,
+ 0x8FAF, 0xDE71,
+ 0x8FB2, 0xDE72,
+ 0x8FB3, 0xDE73,
+ 0x8FB4, 0xDE74,
+ 0x8FB5, 0xDE75,
+ 0x8FB7, 0xDE76,
+ 0x8FB8, 0xDE77,
+ 0x8FBA, 0xDE78,
+ 0x8FBB, 0xDE79,
+ 0x8FBC, 0xDE7A,
+ 0x8FBF, 0xDE7B,
+ 0x8FC0, 0xDE7C,
+ 0x8FC3, 0xDE7D,
+ 0x8FC6, 0xDE7E,
+ 0x8FC9, 0xDE80,
+ 0x8FCA, 0xDE81,
+ 0x8FCB, 0xDE82,
+ 0x8FCC, 0xDE83,
+ 0x8FCD, 0xDE84,
+ 0x8FCF, 0xDE85,
+ 0x8FD2, 0xDE86,
+ 0x8FD6, 0xDE87,
+ 0x8FD7, 0xDE88,
+ 0x8FDA, 0xDE89,
+ 0x8FE0, 0xDE8A,
+ 0x8FE1, 0xDE8B,
+ 0x8FE3, 0xDE8C,
+ 0x8FE7, 0xDE8D,
+ 0x8FEC, 0xDE8E,
+ 0x8FEF, 0xDE8F,
+ 0x8FF1, 0xDE90,
+ 0x8FF2, 0xDE91,
+ 0x8FF4, 0xDE92,
+ 0x8FF5, 0xDE93,
+ 0x8FF6, 0xDE94,
+ 0x8FFA, 0xDE95,
+ 0x8FFB, 0xDE96,
+ 0x8FFC, 0xDE97,
+ 0x8FFE, 0xDE98,
+ 0x8FFF, 0xDE99,
+ 0x9007, 0xDE9A,
+ 0x9008, 0xDE9B,
+ 0x900C, 0xDE9C,
+ 0x900E, 0xDE9D,
+ 0x9013, 0xDE9E,
+ 0x9015, 0xDE9F,
+ 0x9018, 0xDEA0,
+ 0x9019, 0xDF40,
+ 0x901C, 0xDF41,
+ 0x9023, 0xDF42,
+ 0x9024, 0xDF43,
+ 0x9025, 0xDF44,
+ 0x9027, 0xDF45,
+ 0x9028, 0xDF46,
+ 0x9029, 0xDF47,
+ 0x902A, 0xDF48,
+ 0x902B, 0xDF49,
+ 0x902C, 0xDF4A,
+ 0x9030, 0xDF4B,
+ 0x9031, 0xDF4C,
+ 0x9032, 0xDF4D,
+ 0x9033, 0xDF4E,
+ 0x9034, 0xDF4F,
+ 0x9037, 0xDF50,
+ 0x9039, 0xDF51,
+ 0x903A, 0xDF52,
+ 0x903D, 0xDF53,
+ 0x903F, 0xDF54,
+ 0x9040, 0xDF55,
+ 0x9043, 0xDF56,
+ 0x9045, 0xDF57,
+ 0x9046, 0xDF58,
+ 0x9048, 0xDF59,
+ 0x9049, 0xDF5A,
+ 0x904A, 0xDF5B,
+ 0x904B, 0xDF5C,
+ 0x904C, 0xDF5D,
+ 0x904E, 0xDF5E,
+ 0x9054, 0xDF5F,
+ 0x9055, 0xDF60,
+ 0x9056, 0xDF61,
+ 0x9059, 0xDF62,
+ 0x905A, 0xDF63,
+ 0x905C, 0xDF64,
+ 0x905D, 0xDF65,
+ 0x905E, 0xDF66,
+ 0x905F, 0xDF67,
+ 0x9060, 0xDF68,
+ 0x9061, 0xDF69,
+ 0x9064, 0xDF6A,
+ 0x9066, 0xDF6B,
+ 0x9067, 0xDF6C,
+ 0x9069, 0xDF6D,
+ 0x906A, 0xDF6E,
+ 0x906B, 0xDF6F,
+ 0x906C, 0xDF70,
+ 0x906F, 0xDF71,
+ 0x9070, 0xDF72,
+ 0x9071, 0xDF73,
+ 0x9072, 0xDF74,
+ 0x9073, 0xDF75,
+ 0x9076, 0xDF76,
+ 0x9077, 0xDF77,
+ 0x9078, 0xDF78,
+ 0x9079, 0xDF79,
+ 0x907A, 0xDF7A,
+ 0x907B, 0xDF7B,
+ 0x907C, 0xDF7C,
+ 0x907E, 0xDF7D,
+ 0x9081, 0xDF7E,
+ 0x9084, 0xDF80,
+ 0x9085, 0xDF81,
+ 0x9086, 0xDF82,
+ 0x9087, 0xDF83,
+ 0x9089, 0xDF84,
+ 0x908A, 0xDF85,
+ 0x908C, 0xDF86,
+ 0x908D, 0xDF87,
+ 0x908E, 0xDF88,
+ 0x908F, 0xDF89,
+ 0x9090, 0xDF8A,
+ 0x9092, 0xDF8B,
+ 0x9094, 0xDF8C,
+ 0x9096, 0xDF8D,
+ 0x9098, 0xDF8E,
+ 0x909A, 0xDF8F,
+ 0x909C, 0xDF90,
+ 0x909E, 0xDF91,
+ 0x909F, 0xDF92,
+ 0x90A0, 0xDF93,
+ 0x90A4, 0xDF94,
+ 0x90A5, 0xDF95,
+ 0x90A7, 0xDF96,
+ 0x90A8, 0xDF97,
+ 0x90A9, 0xDF98,
+ 0x90AB, 0xDF99,
+ 0x90AD, 0xDF9A,
+ 0x90B2, 0xDF9B,
+ 0x90B7, 0xDF9C,
+ 0x90BC, 0xDF9D,
+ 0x90BD, 0xDF9E,
+ 0x90BF, 0xDF9F,
+ 0x90C0, 0xDFA0,
+ 0x90C2, 0xE040,
+ 0x90C3, 0xE041,
+ 0x90C6, 0xE042,
+ 0x90C8, 0xE043,
+ 0x90C9, 0xE044,
+ 0x90CB, 0xE045,
+ 0x90CC, 0xE046,
+ 0x90CD, 0xE047,
+ 0x90D2, 0xE048,
+ 0x90D4, 0xE049,
+ 0x90D5, 0xE04A,
+ 0x90D6, 0xE04B,
+ 0x90D8, 0xE04C,
+ 0x90D9, 0xE04D,
+ 0x90DA, 0xE04E,
+ 0x90DE, 0xE04F,
+ 0x90DF, 0xE050,
+ 0x90E0, 0xE051,
+ 0x90E3, 0xE052,
+ 0x90E4, 0xE053,
+ 0x90E5, 0xE054,
+ 0x90E9, 0xE055,
+ 0x90EA, 0xE056,
+ 0x90EC, 0xE057,
+ 0x90EE, 0xE058,
+ 0x90F0, 0xE059,
+ 0x90F1, 0xE05A,
+ 0x90F2, 0xE05B,
+ 0x90F3, 0xE05C,
+ 0x90F5, 0xE05D,
+ 0x90F6, 0xE05E,
+ 0x90F7, 0xE05F,
+ 0x90F9, 0xE060,
+ 0x90FA, 0xE061,
+ 0x90FB, 0xE062,
+ 0x90FC, 0xE063,
+ 0x90FF, 0xE064,
+ 0x9100, 0xE065,
+ 0x9101, 0xE066,
+ 0x9103, 0xE067,
+ 0x9105, 0xE068,
+ 0x9106, 0xE069,
+ 0x9107, 0xE06A,
+ 0x9108, 0xE06B,
+ 0x9109, 0xE06C,
+ 0x910A, 0xE06D,
+ 0x910B, 0xE06E,
+ 0x910C, 0xE06F,
+ 0x910D, 0xE070,
+ 0x910E, 0xE071,
+ 0x910F, 0xE072,
+ 0x9110, 0xE073,
+ 0x9111, 0xE074,
+ 0x9112, 0xE075,
+ 0x9113, 0xE076,
+ 0x9114, 0xE077,
+ 0x9115, 0xE078,
+ 0x9116, 0xE079,
+ 0x9117, 0xE07A,
+ 0x9118, 0xE07B,
+ 0x911A, 0xE07C,
+ 0x911B, 0xE07D,
+ 0x911C, 0xE07E,
+ 0x911D, 0xE080,
+ 0x911F, 0xE081,
+ 0x9120, 0xE082,
+ 0x9121, 0xE083,
+ 0x9124, 0xE084,
+ 0x9125, 0xE085,
+ 0x9126, 0xE086,
+ 0x9127, 0xE087,
+ 0x9128, 0xE088,
+ 0x9129, 0xE089,
+ 0x912A, 0xE08A,
+ 0x912B, 0xE08B,
+ 0x912C, 0xE08C,
+ 0x912D, 0xE08D,
+ 0x912E, 0xE08E,
+ 0x9130, 0xE08F,
+ 0x9132, 0xE090,
+ 0x9133, 0xE091,
+ 0x9134, 0xE092,
+ 0x9135, 0xE093,
+ 0x9136, 0xE094,
+ 0x9137, 0xE095,
+ 0x9138, 0xE096,
+ 0x913A, 0xE097,
+ 0x913B, 0xE098,
+ 0x913C, 0xE099,
+ 0x913D, 0xE09A,
+ 0x913E, 0xE09B,
+ 0x913F, 0xE09C,
+ 0x9140, 0xE09D,
+ 0x9141, 0xE09E,
+ 0x9142, 0xE09F,
+ 0x9144, 0xE0A0,
+ 0x9145, 0xE140,
+ 0x9147, 0xE141,
+ 0x9148, 0xE142,
+ 0x9151, 0xE143,
+ 0x9153, 0xE144,
+ 0x9154, 0xE145,
+ 0x9155, 0xE146,
+ 0x9156, 0xE147,
+ 0x9158, 0xE148,
+ 0x9159, 0xE149,
+ 0x915B, 0xE14A,
+ 0x915C, 0xE14B,
+ 0x915F, 0xE14C,
+ 0x9160, 0xE14D,
+ 0x9166, 0xE14E,
+ 0x9167, 0xE14F,
+ 0x9168, 0xE150,
+ 0x916B, 0xE151,
+ 0x916D, 0xE152,
+ 0x9173, 0xE153,
+ 0x917A, 0xE154,
+ 0x917B, 0xE155,
+ 0x917C, 0xE156,
+ 0x9180, 0xE157,
+ 0x9181, 0xE158,
+ 0x9182, 0xE159,
+ 0x9183, 0xE15A,
+ 0x9184, 0xE15B,
+ 0x9186, 0xE15C,
+ 0x9188, 0xE15D,
+ 0x918A, 0xE15E,
+ 0x918E, 0xE15F,
+ 0x918F, 0xE160,
+ 0x9193, 0xE161,
+ 0x9194, 0xE162,
+ 0x9195, 0xE163,
+ 0x9196, 0xE164,
+ 0x9197, 0xE165,
+ 0x9198, 0xE166,
+ 0x9199, 0xE167,
+ 0x919C, 0xE168,
+ 0x919D, 0xE169,
+ 0x919E, 0xE16A,
+ 0x919F, 0xE16B,
+ 0x91A0, 0xE16C,
+ 0x91A1, 0xE16D,
+ 0x91A4, 0xE16E,
+ 0x91A5, 0xE16F,
+ 0x91A6, 0xE170,
+ 0x91A7, 0xE171,
+ 0x91A8, 0xE172,
+ 0x91A9, 0xE173,
+ 0x91AB, 0xE174,
+ 0x91AC, 0xE175,
+ 0x91B0, 0xE176,
+ 0x91B1, 0xE177,
+ 0x91B2, 0xE178,
+ 0x91B3, 0xE179,
+ 0x91B6, 0xE17A,
+ 0x91B7, 0xE17B,
+ 0x91B8, 0xE17C,
+ 0x91B9, 0xE17D,
+ 0x91BB, 0xE17E,
+ 0x91BC, 0xE180,
+ 0x91BD, 0xE181,
+ 0x91BE, 0xE182,
+ 0x91BF, 0xE183,
+ 0x91C0, 0xE184,
+ 0x91C1, 0xE185,
+ 0x91C2, 0xE186,
+ 0x91C3, 0xE187,
+ 0x91C4, 0xE188,
+ 0x91C5, 0xE189,
+ 0x91C6, 0xE18A,
+ 0x91C8, 0xE18B,
+ 0x91CB, 0xE18C,
+ 0x91D0, 0xE18D,
+ 0x91D2, 0xE18E,
+ 0x91D3, 0xE18F,
+ 0x91D4, 0xE190,
+ 0x91D5, 0xE191,
+ 0x91D6, 0xE192,
+ 0x91D7, 0xE193,
+ 0x91D8, 0xE194,
+ 0x91D9, 0xE195,
+ 0x91DA, 0xE196,
+ 0x91DB, 0xE197,
+ 0x91DD, 0xE198,
+ 0x91DE, 0xE199,
+ 0x91DF, 0xE19A,
+ 0x91E0, 0xE19B,
+ 0x91E1, 0xE19C,
+ 0x91E2, 0xE19D,
+ 0x91E3, 0xE19E,
+ 0x91E4, 0xE19F,
+ 0x91E5, 0xE1A0,
+ 0x91E6, 0xE240,
+ 0x91E7, 0xE241,
+ 0x91E8, 0xE242,
+ 0x91E9, 0xE243,
+ 0x91EA, 0xE244,
+ 0x91EB, 0xE245,
+ 0x91EC, 0xE246,
+ 0x91ED, 0xE247,
+ 0x91EE, 0xE248,
+ 0x91EF, 0xE249,
+ 0x91F0, 0xE24A,
+ 0x91F1, 0xE24B,
+ 0x91F2, 0xE24C,
+ 0x91F3, 0xE24D,
+ 0x91F4, 0xE24E,
+ 0x91F5, 0xE24F,
+ 0x91F6, 0xE250,
+ 0x91F7, 0xE251,
+ 0x91F8, 0xE252,
+ 0x91F9, 0xE253,
+ 0x91FA, 0xE254,
+ 0x91FB, 0xE255,
+ 0x91FC, 0xE256,
+ 0x91FD, 0xE257,
+ 0x91FE, 0xE258,
+ 0x91FF, 0xE259,
+ 0x9200, 0xE25A,
+ 0x9201, 0xE25B,
+ 0x9202, 0xE25C,
+ 0x9203, 0xE25D,
+ 0x9204, 0xE25E,
+ 0x9205, 0xE25F,
+ 0x9206, 0xE260,
+ 0x9207, 0xE261,
+ 0x9208, 0xE262,
+ 0x9209, 0xE263,
+ 0x920A, 0xE264,
+ 0x920B, 0xE265,
+ 0x920C, 0xE266,
+ 0x920D, 0xE267,
+ 0x920E, 0xE268,
+ 0x920F, 0xE269,
+ 0x9210, 0xE26A,
+ 0x9211, 0xE26B,
+ 0x9212, 0xE26C,
+ 0x9213, 0xE26D,
+ 0x9214, 0xE26E,
+ 0x9215, 0xE26F,
+ 0x9216, 0xE270,
+ 0x9217, 0xE271,
+ 0x9218, 0xE272,
+ 0x9219, 0xE273,
+ 0x921A, 0xE274,
+ 0x921B, 0xE275,
+ 0x921C, 0xE276,
+ 0x921D, 0xE277,
+ 0x921E, 0xE278,
+ 0x921F, 0xE279,
+ 0x9220, 0xE27A,
+ 0x9221, 0xE27B,
+ 0x9222, 0xE27C,
+ 0x9223, 0xE27D,
+ 0x9224, 0xE27E,
+ 0x9225, 0xE280,
+ 0x9226, 0xE281,
+ 0x9227, 0xE282,
+ 0x9228, 0xE283,
+ 0x9229, 0xE284,
+ 0x922A, 0xE285,
+ 0x922B, 0xE286,
+ 0x922C, 0xE287,
+ 0x922D, 0xE288,
+ 0x922E, 0xE289,
+ 0x922F, 0xE28A,
+ 0x9230, 0xE28B,
+ 0x9231, 0xE28C,
+ 0x9232, 0xE28D,
+ 0x9233, 0xE28E,
+ 0x9234, 0xE28F,
+ 0x9235, 0xE290,
+ 0x9236, 0xE291,
+ 0x9237, 0xE292,
+ 0x9238, 0xE293,
+ 0x9239, 0xE294,
+ 0x923A, 0xE295,
+ 0x923B, 0xE296,
+ 0x923C, 0xE297,
+ 0x923D, 0xE298,
+ 0x923E, 0xE299,
+ 0x923F, 0xE29A,
+ 0x9240, 0xE29B,
+ 0x9241, 0xE29C,
+ 0x9242, 0xE29D,
+ 0x9243, 0xE29E,
+ 0x9244, 0xE29F,
+ 0x9245, 0xE2A0,
+ 0x9246, 0xE340,
+ 0x9247, 0xE341,
+ 0x9248, 0xE342,
+ 0x9249, 0xE343,
+ 0x924A, 0xE344,
+ 0x924B, 0xE345,
+ 0x924C, 0xE346,
+ 0x924D, 0xE347,
+ 0x924E, 0xE348,
+ 0x924F, 0xE349,
+ 0x9250, 0xE34A,
+ 0x9251, 0xE34B,
+ 0x9252, 0xE34C,
+ 0x9253, 0xE34D,
+ 0x9254, 0xE34E,
+ 0x9255, 0xE34F,
+ 0x9256, 0xE350,
+ 0x9257, 0xE351,
+ 0x9258, 0xE352,
+ 0x9259, 0xE353,
+ 0x925A, 0xE354,
+ 0x925B, 0xE355,
+ 0x925C, 0xE356,
+ 0x925D, 0xE357,
+ 0x925E, 0xE358,
+ 0x925F, 0xE359,
+ 0x9260, 0xE35A,
+ 0x9261, 0xE35B,
+ 0x9262, 0xE35C,
+ 0x9263, 0xE35D,
+ 0x9264, 0xE35E,
+ 0x9265, 0xE35F,
+ 0x9266, 0xE360,
+ 0x9267, 0xE361,
+ 0x9268, 0xE362,
+ 0x9269, 0xE363,
+ 0x926A, 0xE364,
+ 0x926B, 0xE365,
+ 0x926C, 0xE366,
+ 0x926D, 0xE367,
+ 0x926E, 0xE368,
+ 0x926F, 0xE369,
+ 0x9270, 0xE36A,
+ 0x9271, 0xE36B,
+ 0x9272, 0xE36C,
+ 0x9273, 0xE36D,
+ 0x9275, 0xE36E,
+ 0x9276, 0xE36F,
+ 0x9277, 0xE370,
+ 0x9278, 0xE371,
+ 0x9279, 0xE372,
+ 0x927A, 0xE373,
+ 0x927B, 0xE374,
+ 0x927C, 0xE375,
+ 0x927D, 0xE376,
+ 0x927E, 0xE377,
+ 0x927F, 0xE378,
+ 0x9280, 0xE379,
+ 0x9281, 0xE37A,
+ 0x9282, 0xE37B,
+ 0x9283, 0xE37C,
+ 0x9284, 0xE37D,
+ 0x9285, 0xE37E,
+ 0x9286, 0xE380,
+ 0x9287, 0xE381,
+ 0x9288, 0xE382,
+ 0x9289, 0xE383,
+ 0x928A, 0xE384,
+ 0x928B, 0xE385,
+ 0x928C, 0xE386,
+ 0x928D, 0xE387,
+ 0x928F, 0xE388,
+ 0x9290, 0xE389,
+ 0x9291, 0xE38A,
+ 0x9292, 0xE38B,
+ 0x9293, 0xE38C,
+ 0x9294, 0xE38D,
+ 0x9295, 0xE38E,
+ 0x9296, 0xE38F,
+ 0x9297, 0xE390,
+ 0x9298, 0xE391,
+ 0x9299, 0xE392,
+ 0x929A, 0xE393,
+ 0x929B, 0xE394,
+ 0x929C, 0xE395,
+ 0x929D, 0xE396,
+ 0x929E, 0xE397,
+ 0x929F, 0xE398,
+ 0x92A0, 0xE399,
+ 0x92A1, 0xE39A,
+ 0x92A2, 0xE39B,
+ 0x92A3, 0xE39C,
+ 0x92A4, 0xE39D,
+ 0x92A5, 0xE39E,
+ 0x92A6, 0xE39F,
+ 0x92A7, 0xE3A0,
+ 0x92A8, 0xE440,
+ 0x92A9, 0xE441,
+ 0x92AA, 0xE442,
+ 0x92AB, 0xE443,
+ 0x92AC, 0xE444,
+ 0x92AD, 0xE445,
+ 0x92AF, 0xE446,
+ 0x92B0, 0xE447,
+ 0x92B1, 0xE448,
+ 0x92B2, 0xE449,
+ 0x92B3, 0xE44A,
+ 0x92B4, 0xE44B,
+ 0x92B5, 0xE44C,
+ 0x92B6, 0xE44D,
+ 0x92B7, 0xE44E,
+ 0x92B8, 0xE44F,
+ 0x92B9, 0xE450,
+ 0x92BA, 0xE451,
+ 0x92BB, 0xE452,
+ 0x92BC, 0xE453,
+ 0x92BD, 0xE454,
+ 0x92BE, 0xE455,
+ 0x92BF, 0xE456,
+ 0x92C0, 0xE457,
+ 0x92C1, 0xE458,
+ 0x92C2, 0xE459,
+ 0x92C3, 0xE45A,
+ 0x92C4, 0xE45B,
+ 0x92C5, 0xE45C,
+ 0x92C6, 0xE45D,
+ 0x92C7, 0xE45E,
+ 0x92C9, 0xE45F,
+ 0x92CA, 0xE460,
+ 0x92CB, 0xE461,
+ 0x92CC, 0xE462,
+ 0x92CD, 0xE463,
+ 0x92CE, 0xE464,
+ 0x92CF, 0xE465,
+ 0x92D0, 0xE466,
+ 0x92D1, 0xE467,
+ 0x92D2, 0xE468,
+ 0x92D3, 0xE469,
+ 0x92D4, 0xE46A,
+ 0x92D5, 0xE46B,
+ 0x92D6, 0xE46C,
+ 0x92D7, 0xE46D,
+ 0x92D8, 0xE46E,
+ 0x92D9, 0xE46F,
+ 0x92DA, 0xE470,
+ 0x92DB, 0xE471,
+ 0x92DC, 0xE472,
+ 0x92DD, 0xE473,
+ 0x92DE, 0xE474,
+ 0x92DF, 0xE475,
+ 0x92E0, 0xE476,
+ 0x92E1, 0xE477,
+ 0x92E2, 0xE478,
+ 0x92E3, 0xE479,
+ 0x92E4, 0xE47A,
+ 0x92E5, 0xE47B,
+ 0x92E6, 0xE47C,
+ 0x92E7, 0xE47D,
+ 0x92E8, 0xE47E,
+ 0x92E9, 0xE480,
+ 0x92EA, 0xE481,
+ 0x92EB, 0xE482,
+ 0x92EC, 0xE483,
+ 0x92ED, 0xE484,
+ 0x92EE, 0xE485,
+ 0x92EF, 0xE486,
+ 0x92F0, 0xE487,
+ 0x92F1, 0xE488,
+ 0x92F2, 0xE489,
+ 0x92F3, 0xE48A,
+ 0x92F4, 0xE48B,
+ 0x92F5, 0xE48C,
+ 0x92F6, 0xE48D,
+ 0x92F7, 0xE48E,
+ 0x92F8, 0xE48F,
+ 0x92F9, 0xE490,
+ 0x92FA, 0xE491,
+ 0x92FB, 0xE492,
+ 0x92FC, 0xE493,
+ 0x92FD, 0xE494,
+ 0x92FE, 0xE495,
+ 0x92FF, 0xE496,
+ 0x9300, 0xE497,
+ 0x9301, 0xE498,
+ 0x9302, 0xE499,
+ 0x9303, 0xE49A,
+ 0x9304, 0xE49B,
+ 0x9305, 0xE49C,
+ 0x9306, 0xE49D,
+ 0x9307, 0xE49E,
+ 0x9308, 0xE49F,
+ 0x9309, 0xE4A0,
+ 0x930A, 0xE540,
+ 0x930B, 0xE541,
+ 0x930C, 0xE542,
+ 0x930D, 0xE543,
+ 0x930E, 0xE544,
+ 0x930F, 0xE545,
+ 0x9310, 0xE546,
+ 0x9311, 0xE547,
+ 0x9312, 0xE548,
+ 0x9313, 0xE549,
+ 0x9314, 0xE54A,
+ 0x9315, 0xE54B,
+ 0x9316, 0xE54C,
+ 0x9317, 0xE54D,
+ 0x9318, 0xE54E,
+ 0x9319, 0xE54F,
+ 0x931A, 0xE550,
+ 0x931B, 0xE551,
+ 0x931C, 0xE552,
+ 0x931D, 0xE553,
+ 0x931E, 0xE554,
+ 0x931F, 0xE555,
+ 0x9320, 0xE556,
+ 0x9321, 0xE557,
+ 0x9322, 0xE558,
+ 0x9323, 0xE559,
+ 0x9324, 0xE55A,
+ 0x9325, 0xE55B,
+ 0x9326, 0xE55C,
+ 0x9327, 0xE55D,
+ 0x9328, 0xE55E,
+ 0x9329, 0xE55F,
+ 0x932A, 0xE560,
+ 0x932B, 0xE561,
+ 0x932C, 0xE562,
+ 0x932D, 0xE563,
+ 0x932E, 0xE564,
+ 0x932F, 0xE565,
+ 0x9330, 0xE566,
+ 0x9331, 0xE567,
+ 0x9332, 0xE568,
+ 0x9333, 0xE569,
+ 0x9334, 0xE56A,
+ 0x9335, 0xE56B,
+ 0x9336, 0xE56C,
+ 0x9337, 0xE56D,
+ 0x9338, 0xE56E,
+ 0x9339, 0xE56F,
+ 0x933A, 0xE570,
+ 0x933B, 0xE571,
+ 0x933C, 0xE572,
+ 0x933D, 0xE573,
+ 0x933F, 0xE574,
+ 0x9340, 0xE575,
+ 0x9341, 0xE576,
+ 0x9342, 0xE577,
+ 0x9343, 0xE578,
+ 0x9344, 0xE579,
+ 0x9345, 0xE57A,
+ 0x9346, 0xE57B,
+ 0x9347, 0xE57C,
+ 0x9348, 0xE57D,
+ 0x9349, 0xE57E,
+ 0x934A, 0xE580,
+ 0x934B, 0xE581,
+ 0x934C, 0xE582,
+ 0x934D, 0xE583,
+ 0x934E, 0xE584,
+ 0x934F, 0xE585,
+ 0x9350, 0xE586,
+ 0x9351, 0xE587,
+ 0x9352, 0xE588,
+ 0x9353, 0xE589,
+ 0x9354, 0xE58A,
+ 0x9355, 0xE58B,
+ 0x9356, 0xE58C,
+ 0x9357, 0xE58D,
+ 0x9358, 0xE58E,
+ 0x9359, 0xE58F,
+ 0x935A, 0xE590,
+ 0x935B, 0xE591,
+ 0x935C, 0xE592,
+ 0x935D, 0xE593,
+ 0x935E, 0xE594,
+ 0x935F, 0xE595,
+ 0x9360, 0xE596,
+ 0x9361, 0xE597,
+ 0x9362, 0xE598,
+ 0x9363, 0xE599,
+ 0x9364, 0xE59A,
+ 0x9365, 0xE59B,
+ 0x9366, 0xE59C,
+ 0x9367, 0xE59D,
+ 0x9368, 0xE59E,
+ 0x9369, 0xE59F,
+ 0x936B, 0xE5A0,
+ 0x936C, 0xE640,
+ 0x936D, 0xE641,
+ 0x936E, 0xE642,
+ 0x936F, 0xE643,
+ 0x9370, 0xE644,
+ 0x9371, 0xE645,
+ 0x9372, 0xE646,
+ 0x9373, 0xE647,
+ 0x9374, 0xE648,
+ 0x9375, 0xE649,
+ 0x9376, 0xE64A,
+ 0x9377, 0xE64B,
+ 0x9378, 0xE64C,
+ 0x9379, 0xE64D,
+ 0x937A, 0xE64E,
+ 0x937B, 0xE64F,
+ 0x937C, 0xE650,
+ 0x937D, 0xE651,
+ 0x937E, 0xE652,
+ 0x937F, 0xE653,
+ 0x9380, 0xE654,
+ 0x9381, 0xE655,
+ 0x9382, 0xE656,
+ 0x9383, 0xE657,
+ 0x9384, 0xE658,
+ 0x9385, 0xE659,
+ 0x9386, 0xE65A,
+ 0x9387, 0xE65B,
+ 0x9388, 0xE65C,
+ 0x9389, 0xE65D,
+ 0x938A, 0xE65E,
+ 0x938B, 0xE65F,
+ 0x938C, 0xE660,
+ 0x938D, 0xE661,
+ 0x938E, 0xE662,
+ 0x9390, 0xE663,
+ 0x9391, 0xE664,
+ 0x9392, 0xE665,
+ 0x9393, 0xE666,
+ 0x9394, 0xE667,
+ 0x9395, 0xE668,
+ 0x9396, 0xE669,
+ 0x9397, 0xE66A,
+ 0x9398, 0xE66B,
+ 0x9399, 0xE66C,
+ 0x939A, 0xE66D,
+ 0x939B, 0xE66E,
+ 0x939C, 0xE66F,
+ 0x939D, 0xE670,
+ 0x939E, 0xE671,
+ 0x939F, 0xE672,
+ 0x93A0, 0xE673,
+ 0x93A1, 0xE674,
+ 0x93A2, 0xE675,
+ 0x93A3, 0xE676,
+ 0x93A4, 0xE677,
+ 0x93A5, 0xE678,
+ 0x93A6, 0xE679,
+ 0x93A7, 0xE67A,
+ 0x93A8, 0xE67B,
+ 0x93A9, 0xE67C,
+ 0x93AA, 0xE67D,
+ 0x93AB, 0xE67E,
+ 0x93AC, 0xE680,
+ 0x93AD, 0xE681,
+ 0x93AE, 0xE682,
+ 0x93AF, 0xE683,
+ 0x93B0, 0xE684,
+ 0x93B1, 0xE685,
+ 0x93B2, 0xE686,
+ 0x93B3, 0xE687,
+ 0x93B4, 0xE688,
+ 0x93B5, 0xE689,
+ 0x93B6, 0xE68A,
+ 0x93B7, 0xE68B,
+ 0x93B8, 0xE68C,
+ 0x93B9, 0xE68D,
+ 0x93BA, 0xE68E,
+ 0x93BB, 0xE68F,
+ 0x93BC, 0xE690,
+ 0x93BD, 0xE691,
+ 0x93BE, 0xE692,
+ 0x93BF, 0xE693,
+ 0x93C0, 0xE694,
+ 0x93C1, 0xE695,
+ 0x93C2, 0xE696,
+ 0x93C3, 0xE697,
+ 0x93C4, 0xE698,
+ 0x93C5, 0xE699,
+ 0x93C6, 0xE69A,
+ 0x93C7, 0xE69B,
+ 0x93C8, 0xE69C,
+ 0x93C9, 0xE69D,
+ 0x93CB, 0xE69E,
+ 0x93CC, 0xE69F,
+ 0x93CD, 0xE6A0,
+ 0x93CE, 0xE740,
+ 0x93CF, 0xE741,
+ 0x93D0, 0xE742,
+ 0x93D1, 0xE743,
+ 0x93D2, 0xE744,
+ 0x93D3, 0xE745,
+ 0x93D4, 0xE746,
+ 0x93D5, 0xE747,
+ 0x93D7, 0xE748,
+ 0x93D8, 0xE749,
+ 0x93D9, 0xE74A,
+ 0x93DA, 0xE74B,
+ 0x93DB, 0xE74C,
+ 0x93DC, 0xE74D,
+ 0x93DD, 0xE74E,
+ 0x93DE, 0xE74F,
+ 0x93DF, 0xE750,
+ 0x93E0, 0xE751,
+ 0x93E1, 0xE752,
+ 0x93E2, 0xE753,
+ 0x93E3, 0xE754,
+ 0x93E4, 0xE755,
+ 0x93E5, 0xE756,
+ 0x93E6, 0xE757,
+ 0x93E7, 0xE758,
+ 0x93E8, 0xE759,
+ 0x93E9, 0xE75A,
+ 0x93EA, 0xE75B,
+ 0x93EB, 0xE75C,
+ 0x93EC, 0xE75D,
+ 0x93ED, 0xE75E,
+ 0x93EE, 0xE75F,
+ 0x93EF, 0xE760,
+ 0x93F0, 0xE761,
+ 0x93F1, 0xE762,
+ 0x93F2, 0xE763,
+ 0x93F3, 0xE764,
+ 0x93F4, 0xE765,
+ 0x93F5, 0xE766,
+ 0x93F6, 0xE767,
+ 0x93F7, 0xE768,
+ 0x93F8, 0xE769,
+ 0x93F9, 0xE76A,
+ 0x93FA, 0xE76B,
+ 0x93FB, 0xE76C,
+ 0x93FC, 0xE76D,
+ 0x93FD, 0xE76E,
+ 0x93FE, 0xE76F,
+ 0x93FF, 0xE770,
+ 0x9400, 0xE771,
+ 0x9401, 0xE772,
+ 0x9402, 0xE773,
+ 0x9403, 0xE774,
+ 0x9404, 0xE775,
+ 0x9405, 0xE776,
+ 0x9406, 0xE777,
+ 0x9407, 0xE778,
+ 0x9408, 0xE779,
+ 0x9409, 0xE77A,
+ 0x940A, 0xE77B,
+ 0x940B, 0xE77C,
+ 0x940C, 0xE77D,
+ 0x940D, 0xE77E,
+ 0x940E, 0xE780,
+ 0x940F, 0xE781,
+ 0x9410, 0xE782,
+ 0x9411, 0xE783,
+ 0x9412, 0xE784,
+ 0x9413, 0xE785,
+ 0x9414, 0xE786,
+ 0x9415, 0xE787,
+ 0x9416, 0xE788,
+ 0x9417, 0xE789,
+ 0x9418, 0xE78A,
+ 0x9419, 0xE78B,
+ 0x941A, 0xE78C,
+ 0x941B, 0xE78D,
+ 0x941C, 0xE78E,
+ 0x941D, 0xE78F,
+ 0x941E, 0xE790,
+ 0x941F, 0xE791,
+ 0x9420, 0xE792,
+ 0x9421, 0xE793,
+ 0x9422, 0xE794,
+ 0x9423, 0xE795,
+ 0x9424, 0xE796,
+ 0x9425, 0xE797,
+ 0x9426, 0xE798,
+ 0x9427, 0xE799,
+ 0x9428, 0xE79A,
+ 0x9429, 0xE79B,
+ 0x942A, 0xE79C,
+ 0x942B, 0xE79D,
+ 0x942C, 0xE79E,
+ 0x942D, 0xE79F,
+ 0x942E, 0xE7A0,
+ 0x942F, 0xE840,
+ 0x9430, 0xE841,
+ 0x9431, 0xE842,
+ 0x9432, 0xE843,
+ 0x9433, 0xE844,
+ 0x9434, 0xE845,
+ 0x9435, 0xE846,
+ 0x9436, 0xE847,
+ 0x9437, 0xE848,
+ 0x9438, 0xE849,
+ 0x9439, 0xE84A,
+ 0x943A, 0xE84B,
+ 0x943B, 0xE84C,
+ 0x943C, 0xE84D,
+ 0x943D, 0xE84E,
+ 0x943F, 0xE84F,
+ 0x9440, 0xE850,
+ 0x9441, 0xE851,
+ 0x9442, 0xE852,
+ 0x9443, 0xE853,
+ 0x9444, 0xE854,
+ 0x9445, 0xE855,
+ 0x9446, 0xE856,
+ 0x9447, 0xE857,
+ 0x9448, 0xE858,
+ 0x9449, 0xE859,
+ 0x944A, 0xE85A,
+ 0x944B, 0xE85B,
+ 0x944C, 0xE85C,
+ 0x944D, 0xE85D,
+ 0x944E, 0xE85E,
+ 0x944F, 0xE85F,
+ 0x9450, 0xE860,
+ 0x9451, 0xE861,
+ 0x9452, 0xE862,
+ 0x9453, 0xE863,
+ 0x9454, 0xE864,
+ 0x9455, 0xE865,
+ 0x9456, 0xE866,
+ 0x9457, 0xE867,
+ 0x9458, 0xE868,
+ 0x9459, 0xE869,
+ 0x945A, 0xE86A,
+ 0x945B, 0xE86B,
+ 0x945C, 0xE86C,
+ 0x945D, 0xE86D,
+ 0x945E, 0xE86E,
+ 0x945F, 0xE86F,
+ 0x9460, 0xE870,
+ 0x9461, 0xE871,
+ 0x9462, 0xE872,
+ 0x9463, 0xE873,
+ 0x9464, 0xE874,
+ 0x9465, 0xE875,
+ 0x9466, 0xE876,
+ 0x9467, 0xE877,
+ 0x9468, 0xE878,
+ 0x9469, 0xE879,
+ 0x946A, 0xE87A,
+ 0x946C, 0xE87B,
+ 0x946D, 0xE87C,
+ 0x946E, 0xE87D,
+ 0x946F, 0xE87E,
+ 0x9470, 0xE880,
+ 0x9471, 0xE881,
+ 0x9472, 0xE882,
+ 0x9473, 0xE883,
+ 0x9474, 0xE884,
+ 0x9475, 0xE885,
+ 0x9476, 0xE886,
+ 0x9477, 0xE887,
+ 0x9478, 0xE888,
+ 0x9479, 0xE889,
+ 0x947A, 0xE88A,
+ 0x947B, 0xE88B,
+ 0x947C, 0xE88C,
+ 0x947D, 0xE88D,
+ 0x947E, 0xE88E,
+ 0x947F, 0xE88F,
+ 0x9480, 0xE890,
+ 0x9481, 0xE891,
+ 0x9482, 0xE892,
+ 0x9483, 0xE893,
+ 0x9484, 0xE894,
+ 0x9491, 0xE895,
+ 0x9496, 0xE896,
+ 0x9498, 0xE897,
+ 0x94C7, 0xE898,
+ 0x94CF, 0xE899,
+ 0x94D3, 0xE89A,
+ 0x94D4, 0xE89B,
+ 0x94DA, 0xE89C,
+ 0x94E6, 0xE89D,
+ 0x94FB, 0xE89E,
+ 0x951C, 0xE89F,
+ 0x9520, 0xE8A0,
+ 0x9527, 0xE940,
+ 0x9533, 0xE941,
+ 0x953D, 0xE942,
+ 0x9543, 0xE943,
+ 0x9548, 0xE944,
+ 0x954B, 0xE945,
+ 0x9555, 0xE946,
+ 0x955A, 0xE947,
+ 0x9560, 0xE948,
+ 0x956E, 0xE949,
+ 0x9574, 0xE94A,
+ 0x9575, 0xE94B,
+ 0x9577, 0xE94C,
+ 0x9578, 0xE94D,
+ 0x9579, 0xE94E,
+ 0x957A, 0xE94F,
+ 0x957B, 0xE950,
+ 0x957C, 0xE951,
+ 0x957D, 0xE952,
+ 0x957E, 0xE953,
+ 0x9580, 0xE954,
+ 0x9581, 0xE955,
+ 0x9582, 0xE956,
+ 0x9583, 0xE957,
+ 0x9584, 0xE958,
+ 0x9585, 0xE959,
+ 0x9586, 0xE95A,
+ 0x9587, 0xE95B,
+ 0x9588, 0xE95C,
+ 0x9589, 0xE95D,
+ 0x958A, 0xE95E,
+ 0x958B, 0xE95F,
+ 0x958C, 0xE960,
+ 0x958D, 0xE961,
+ 0x958E, 0xE962,
+ 0x958F, 0xE963,
+ 0x9590, 0xE964,
+ 0x9591, 0xE965,
+ 0x9592, 0xE966,
+ 0x9593, 0xE967,
+ 0x9594, 0xE968,
+ 0x9595, 0xE969,
+ 0x9596, 0xE96A,
+ 0x9597, 0xE96B,
+ 0x9598, 0xE96C,
+ 0x9599, 0xE96D,
+ 0x959A, 0xE96E,
+ 0x959B, 0xE96F,
+ 0x959C, 0xE970,
+ 0x959D, 0xE971,
+ 0x959E, 0xE972,
+ 0x959F, 0xE973,
+ 0x95A0, 0xE974,
+ 0x95A1, 0xE975,
+ 0x95A2, 0xE976,
+ 0x95A3, 0xE977,
+ 0x95A4, 0xE978,
+ 0x95A5, 0xE979,
+ 0x95A6, 0xE97A,
+ 0x95A7, 0xE97B,
+ 0x95A8, 0xE97C,
+ 0x95A9, 0xE97D,
+ 0x95AA, 0xE97E,
+ 0x95AB, 0xE980,
+ 0x95AC, 0xE981,
+ 0x95AD, 0xE982,
+ 0x95AE, 0xE983,
+ 0x95AF, 0xE984,
+ 0x95B0, 0xE985,
+ 0x95B1, 0xE986,
+ 0x95B2, 0xE987,
+ 0x95B3, 0xE988,
+ 0x95B4, 0xE989,
+ 0x95B5, 0xE98A,
+ 0x95B6, 0xE98B,
+ 0x95B7, 0xE98C,
+ 0x95B8, 0xE98D,
+ 0x95B9, 0xE98E,
+ 0x95BA, 0xE98F,
+ 0x95BB, 0xE990,
+ 0x95BC, 0xE991,
+ 0x95BD, 0xE992,
+ 0x95BE, 0xE993,
+ 0x95BF, 0xE994,
+ 0x95C0, 0xE995,
+ 0x95C1, 0xE996,
+ 0x95C2, 0xE997,
+ 0x95C3, 0xE998,
+ 0x95C4, 0xE999,
+ 0x95C5, 0xE99A,
+ 0x95C6, 0xE99B,
+ 0x95C7, 0xE99C,
+ 0x95C8, 0xE99D,
+ 0x95C9, 0xE99E,
+ 0x95CA, 0xE99F,
+ 0x95CB, 0xE9A0,
+ 0x95CC, 0xEA40,
+ 0x95CD, 0xEA41,
+ 0x95CE, 0xEA42,
+ 0x95CF, 0xEA43,
+ 0x95D0, 0xEA44,
+ 0x95D1, 0xEA45,
+ 0x95D2, 0xEA46,
+ 0x95D3, 0xEA47,
+ 0x95D4, 0xEA48,
+ 0x95D5, 0xEA49,
+ 0x95D6, 0xEA4A,
+ 0x95D7, 0xEA4B,
+ 0x95D8, 0xEA4C,
+ 0x95D9, 0xEA4D,
+ 0x95DA, 0xEA4E,
+ 0x95DB, 0xEA4F,
+ 0x95DC, 0xEA50,
+ 0x95DD, 0xEA51,
+ 0x95DE, 0xEA52,
+ 0x95DF, 0xEA53,
+ 0x95E0, 0xEA54,
+ 0x95E1, 0xEA55,
+ 0x95E2, 0xEA56,
+ 0x95E3, 0xEA57,
+ 0x95E4, 0xEA58,
+ 0x95E5, 0xEA59,
+ 0x95E6, 0xEA5A,
+ 0x95E7, 0xEA5B,
+ 0x95EC, 0xEA5C,
+ 0x95FF, 0xEA5D,
+ 0x9607, 0xEA5E,
+ 0x9613, 0xEA5F,
+ 0x9618, 0xEA60,
+ 0x961B, 0xEA61,
+ 0x961E, 0xEA62,
+ 0x9620, 0xEA63,
+ 0x9623, 0xEA64,
+ 0x9624, 0xEA65,
+ 0x9625, 0xEA66,
+ 0x9626, 0xEA67,
+ 0x9627, 0xEA68,
+ 0x9628, 0xEA69,
+ 0x9629, 0xEA6A,
+ 0x962B, 0xEA6B,
+ 0x962C, 0xEA6C,
+ 0x962D, 0xEA6D,
+ 0x962F, 0xEA6E,
+ 0x9630, 0xEA6F,
+ 0x9637, 0xEA70,
+ 0x9638, 0xEA71,
+ 0x9639, 0xEA72,
+ 0x963A, 0xEA73,
+ 0x963E, 0xEA74,
+ 0x9641, 0xEA75,
+ 0x9643, 0xEA76,
+ 0x964A, 0xEA77,
+ 0x964E, 0xEA78,
+ 0x964F, 0xEA79,
+ 0x9651, 0xEA7A,
+ 0x9652, 0xEA7B,
+ 0x9653, 0xEA7C,
+ 0x9656, 0xEA7D,
+ 0x9657, 0xEA7E,
+ 0x9658, 0xEA80,
+ 0x9659, 0xEA81,
+ 0x965A, 0xEA82,
+ 0x965C, 0xEA83,
+ 0x965D, 0xEA84,
+ 0x965E, 0xEA85,
+ 0x9660, 0xEA86,
+ 0x9663, 0xEA87,
+ 0x9665, 0xEA88,
+ 0x9666, 0xEA89,
+ 0x966B, 0xEA8A,
+ 0x966D, 0xEA8B,
+ 0x966E, 0xEA8C,
+ 0x966F, 0xEA8D,
+ 0x9670, 0xEA8E,
+ 0x9671, 0xEA8F,
+ 0x9673, 0xEA90,
+ 0x9678, 0xEA91,
+ 0x9679, 0xEA92,
+ 0x967A, 0xEA93,
+ 0x967B, 0xEA94,
+ 0x967C, 0xEA95,
+ 0x967D, 0xEA96,
+ 0x967E, 0xEA97,
+ 0x967F, 0xEA98,
+ 0x9680, 0xEA99,
+ 0x9681, 0xEA9A,
+ 0x9682, 0xEA9B,
+ 0x9683, 0xEA9C,
+ 0x9684, 0xEA9D,
+ 0x9687, 0xEA9E,
+ 0x9689, 0xEA9F,
+ 0x968A, 0xEAA0,
+ 0x968C, 0xEB40,
+ 0x968E, 0xEB41,
+ 0x9691, 0xEB42,
+ 0x9692, 0xEB43,
+ 0x9693, 0xEB44,
+ 0x9695, 0xEB45,
+ 0x9696, 0xEB46,
+ 0x969A, 0xEB47,
+ 0x969B, 0xEB48,
+ 0x969D, 0xEB49,
+ 0x969E, 0xEB4A,
+ 0x969F, 0xEB4B,
+ 0x96A0, 0xEB4C,
+ 0x96A1, 0xEB4D,
+ 0x96A2, 0xEB4E,
+ 0x96A3, 0xEB4F,
+ 0x96A4, 0xEB50,
+ 0x96A5, 0xEB51,
+ 0x96A6, 0xEB52,
+ 0x96A8, 0xEB53,
+ 0x96A9, 0xEB54,
+ 0x96AA, 0xEB55,
+ 0x96AB, 0xEB56,
+ 0x96AC, 0xEB57,
+ 0x96AD, 0xEB58,
+ 0x96AE, 0xEB59,
+ 0x96AF, 0xEB5A,
+ 0x96B1, 0xEB5B,
+ 0x96B2, 0xEB5C,
+ 0x96B4, 0xEB5D,
+ 0x96B5, 0xEB5E,
+ 0x96B7, 0xEB5F,
+ 0x96B8, 0xEB60,
+ 0x96BA, 0xEB61,
+ 0x96BB, 0xEB62,
+ 0x96BF, 0xEB63,
+ 0x96C2, 0xEB64,
+ 0x96C3, 0xEB65,
+ 0x96C8, 0xEB66,
+ 0x96CA, 0xEB67,
+ 0x96CB, 0xEB68,
+ 0x96D0, 0xEB69,
+ 0x96D1, 0xEB6A,
+ 0x96D3, 0xEB6B,
+ 0x96D4, 0xEB6C,
+ 0x96D6, 0xEB6D,
+ 0x96D7, 0xEB6E,
+ 0x96D8, 0xEB6F,
+ 0x96D9, 0xEB70,
+ 0x96DA, 0xEB71,
+ 0x96DB, 0xEB72,
+ 0x96DC, 0xEB73,
+ 0x96DD, 0xEB74,
+ 0x96DE, 0xEB75,
+ 0x96DF, 0xEB76,
+ 0x96E1, 0xEB77,
+ 0x96E2, 0xEB78,
+ 0x96E3, 0xEB79,
+ 0x96E4, 0xEB7A,
+ 0x96E5, 0xEB7B,
+ 0x96E6, 0xEB7C,
+ 0x96E7, 0xEB7D,
+ 0x96EB, 0xEB7E,
+ 0x96EC, 0xEB80,
+ 0x96ED, 0xEB81,
+ 0x96EE, 0xEB82,
+ 0x96F0, 0xEB83,
+ 0x96F1, 0xEB84,
+ 0x96F2, 0xEB85,
+ 0x96F4, 0xEB86,
+ 0x96F5, 0xEB87,
+ 0x96F8, 0xEB88,
+ 0x96FA, 0xEB89,
+ 0x96FB, 0xEB8A,
+ 0x96FC, 0xEB8B,
+ 0x96FD, 0xEB8C,
+ 0x96FF, 0xEB8D,
+ 0x9702, 0xEB8E,
+ 0x9703, 0xEB8F,
+ 0x9705, 0xEB90,
+ 0x970A, 0xEB91,
+ 0x970B, 0xEB92,
+ 0x970C, 0xEB93,
+ 0x9710, 0xEB94,
+ 0x9711, 0xEB95,
+ 0x9712, 0xEB96,
+ 0x9714, 0xEB97,
+ 0x9715, 0xEB98,
+ 0x9717, 0xEB99,
+ 0x9718, 0xEB9A,
+ 0x9719, 0xEB9B,
+ 0x971A, 0xEB9C,
+ 0x971B, 0xEB9D,
+ 0x971D, 0xEB9E,
+ 0x971F, 0xEB9F,
+ 0x9720, 0xEBA0,
+ 0x9721, 0xEC40,
+ 0x9722, 0xEC41,
+ 0x9723, 0xEC42,
+ 0x9724, 0xEC43,
+ 0x9725, 0xEC44,
+ 0x9726, 0xEC45,
+ 0x9727, 0xEC46,
+ 0x9728, 0xEC47,
+ 0x9729, 0xEC48,
+ 0x972B, 0xEC49,
+ 0x972C, 0xEC4A,
+ 0x972E, 0xEC4B,
+ 0x972F, 0xEC4C,
+ 0x9731, 0xEC4D,
+ 0x9733, 0xEC4E,
+ 0x9734, 0xEC4F,
+ 0x9735, 0xEC50,
+ 0x9736, 0xEC51,
+ 0x9737, 0xEC52,
+ 0x973A, 0xEC53,
+ 0x973B, 0xEC54,
+ 0x973C, 0xEC55,
+ 0x973D, 0xEC56,
+ 0x973F, 0xEC57,
+ 0x9740, 0xEC58,
+ 0x9741, 0xEC59,
+ 0x9742, 0xEC5A,
+ 0x9743, 0xEC5B,
+ 0x9744, 0xEC5C,
+ 0x9745, 0xEC5D,
+ 0x9746, 0xEC5E,
+ 0x9747, 0xEC5F,
+ 0x9748, 0xEC60,
+ 0x9749, 0xEC61,
+ 0x974A, 0xEC62,
+ 0x974B, 0xEC63,
+ 0x974C, 0xEC64,
+ 0x974D, 0xEC65,
+ 0x974E, 0xEC66,
+ 0x974F, 0xEC67,
+ 0x9750, 0xEC68,
+ 0x9751, 0xEC69,
+ 0x9754, 0xEC6A,
+ 0x9755, 0xEC6B,
+ 0x9757, 0xEC6C,
+ 0x9758, 0xEC6D,
+ 0x975A, 0xEC6E,
+ 0x975C, 0xEC6F,
+ 0x975D, 0xEC70,
+ 0x975F, 0xEC71,
+ 0x9763, 0xEC72,
+ 0x9764, 0xEC73,
+ 0x9766, 0xEC74,
+ 0x9767, 0xEC75,
+ 0x9768, 0xEC76,
+ 0x976A, 0xEC77,
+ 0x976B, 0xEC78,
+ 0x976C, 0xEC79,
+ 0x976D, 0xEC7A,
+ 0x976E, 0xEC7B,
+ 0x976F, 0xEC7C,
+ 0x9770, 0xEC7D,
+ 0x9771, 0xEC7E,
+ 0x9772, 0xEC80,
+ 0x9775, 0xEC81,
+ 0x9777, 0xEC82,
+ 0x9778, 0xEC83,
+ 0x9779, 0xEC84,
+ 0x977A, 0xEC85,
+ 0x977B, 0xEC86,
+ 0x977D, 0xEC87,
+ 0x977E, 0xEC88,
+ 0x977F, 0xEC89,
+ 0x9780, 0xEC8A,
+ 0x9781, 0xEC8B,
+ 0x9782, 0xEC8C,
+ 0x9783, 0xEC8D,
+ 0x9784, 0xEC8E,
+ 0x9786, 0xEC8F,
+ 0x9787, 0xEC90,
+ 0x9788, 0xEC91,
+ 0x9789, 0xEC92,
+ 0x978A, 0xEC93,
+ 0x978C, 0xEC94,
+ 0x978E, 0xEC95,
+ 0x978F, 0xEC96,
+ 0x9790, 0xEC97,
+ 0x9793, 0xEC98,
+ 0x9795, 0xEC99,
+ 0x9796, 0xEC9A,
+ 0x9797, 0xEC9B,
+ 0x9799, 0xEC9C,
+ 0x979A, 0xEC9D,
+ 0x979B, 0xEC9E,
+ 0x979C, 0xEC9F,
+ 0x979D, 0xECA0,
+ 0x979E, 0xED40,
+ 0x979F, 0xED41,
+ 0x97A1, 0xED42,
+ 0x97A2, 0xED43,
+ 0x97A4, 0xED44,
+ 0x97A5, 0xED45,
+ 0x97A6, 0xED46,
+ 0x97A7, 0xED47,
+ 0x97A8, 0xED48,
+ 0x97A9, 0xED49,
+ 0x97AA, 0xED4A,
+ 0x97AC, 0xED4B,
+ 0x97AE, 0xED4C,
+ 0x97B0, 0xED4D,
+ 0x97B1, 0xED4E,
+ 0x97B3, 0xED4F,
+ 0x97B5, 0xED50,
+ 0x97B6, 0xED51,
+ 0x97B7, 0xED52,
+ 0x97B8, 0xED53,
+ 0x97B9, 0xED54,
+ 0x97BA, 0xED55,
+ 0x97BB, 0xED56,
+ 0x97BC, 0xED57,
+ 0x97BD, 0xED58,
+ 0x97BE, 0xED59,
+ 0x97BF, 0xED5A,
+ 0x97C0, 0xED5B,
+ 0x97C1, 0xED5C,
+ 0x97C2, 0xED5D,
+ 0x97C3, 0xED5E,
+ 0x97C4, 0xED5F,
+ 0x97C5, 0xED60,
+ 0x97C6, 0xED61,
+ 0x97C7, 0xED62,
+ 0x97C8, 0xED63,
+ 0x97C9, 0xED64,
+ 0x97CA, 0xED65,
+ 0x97CB, 0xED66,
+ 0x97CC, 0xED67,
+ 0x97CD, 0xED68,
+ 0x97CE, 0xED69,
+ 0x97CF, 0xED6A,
+ 0x97D0, 0xED6B,
+ 0x97D1, 0xED6C,
+ 0x97D2, 0xED6D,
+ 0x97D3, 0xED6E,
+ 0x97D4, 0xED6F,
+ 0x97D5, 0xED70,
+ 0x97D6, 0xED71,
+ 0x97D7, 0xED72,
+ 0x97D8, 0xED73,
+ 0x97D9, 0xED74,
+ 0x97DA, 0xED75,
+ 0x97DB, 0xED76,
+ 0x97DC, 0xED77,
+ 0x97DD, 0xED78,
+ 0x97DE, 0xED79,
+ 0x97DF, 0xED7A,
+ 0x97E0, 0xED7B,
+ 0x97E1, 0xED7C,
+ 0x97E2, 0xED7D,
+ 0x97E3, 0xED7E,
+ 0x97E4, 0xED80,
+ 0x97E5, 0xED81,
+ 0x97E8, 0xED82,
+ 0x97EE, 0xED83,
+ 0x97EF, 0xED84,
+ 0x97F0, 0xED85,
+ 0x97F1, 0xED86,
+ 0x97F2, 0xED87,
+ 0x97F4, 0xED88,
+ 0x97F7, 0xED89,
+ 0x97F8, 0xED8A,
+ 0x97F9, 0xED8B,
+ 0x97FA, 0xED8C,
+ 0x97FB, 0xED8D,
+ 0x97FC, 0xED8E,
+ 0x97FD, 0xED8F,
+ 0x97FE, 0xED90,
+ 0x97FF, 0xED91,
+ 0x9800, 0xED92,
+ 0x9801, 0xED93,
+ 0x9802, 0xED94,
+ 0x9803, 0xED95,
+ 0x9804, 0xED96,
+ 0x9805, 0xED97,
+ 0x9806, 0xED98,
+ 0x9807, 0xED99,
+ 0x9808, 0xED9A,
+ 0x9809, 0xED9B,
+ 0x980A, 0xED9C,
+ 0x980B, 0xED9D,
+ 0x980C, 0xED9E,
+ 0x980D, 0xED9F,
+ 0x980E, 0xEDA0,
+ 0x980F, 0xEE40,
+ 0x9810, 0xEE41,
+ 0x9811, 0xEE42,
+ 0x9812, 0xEE43,
+ 0x9813, 0xEE44,
+ 0x9814, 0xEE45,
+ 0x9815, 0xEE46,
+ 0x9816, 0xEE47,
+ 0x9817, 0xEE48,
+ 0x9818, 0xEE49,
+ 0x9819, 0xEE4A,
+ 0x981A, 0xEE4B,
+ 0x981B, 0xEE4C,
+ 0x981C, 0xEE4D,
+ 0x981D, 0xEE4E,
+ 0x981E, 0xEE4F,
+ 0x981F, 0xEE50,
+ 0x9820, 0xEE51,
+ 0x9821, 0xEE52,
+ 0x9822, 0xEE53,
+ 0x9823, 0xEE54,
+ 0x9824, 0xEE55,
+ 0x9825, 0xEE56,
+ 0x9826, 0xEE57,
+ 0x9827, 0xEE58,
+ 0x9828, 0xEE59,
+ 0x9829, 0xEE5A,
+ 0x982A, 0xEE5B,
+ 0x982B, 0xEE5C,
+ 0x982C, 0xEE5D,
+ 0x982D, 0xEE5E,
+ 0x982E, 0xEE5F,
+ 0x982F, 0xEE60,
+ 0x9830, 0xEE61,
+ 0x9831, 0xEE62,
+ 0x9832, 0xEE63,
+ 0x9833, 0xEE64,
+ 0x9834, 0xEE65,
+ 0x9835, 0xEE66,
+ 0x9836, 0xEE67,
+ 0x9837, 0xEE68,
+ 0x9838, 0xEE69,
+ 0x9839, 0xEE6A,
+ 0x983A, 0xEE6B,
+ 0x983B, 0xEE6C,
+ 0x983C, 0xEE6D,
+ 0x983D, 0xEE6E,
+ 0x983E, 0xEE6F,
+ 0x983F, 0xEE70,
+ 0x9840, 0xEE71,
+ 0x9841, 0xEE72,
+ 0x9842, 0xEE73,
+ 0x9843, 0xEE74,
+ 0x9844, 0xEE75,
+ 0x9845, 0xEE76,
+ 0x9846, 0xEE77,
+ 0x9847, 0xEE78,
+ 0x9848, 0xEE79,
+ 0x9849, 0xEE7A,
+ 0x984A, 0xEE7B,
+ 0x984B, 0xEE7C,
+ 0x984C, 0xEE7D,
+ 0x984D, 0xEE7E,
+ 0x984E, 0xEE80,
+ 0x984F, 0xEE81,
+ 0x9850, 0xEE82,
+ 0x9851, 0xEE83,
+ 0x9852, 0xEE84,
+ 0x9853, 0xEE85,
+ 0x9854, 0xEE86,
+ 0x9855, 0xEE87,
+ 0x9856, 0xEE88,
+ 0x9857, 0xEE89,
+ 0x9858, 0xEE8A,
+ 0x9859, 0xEE8B,
+ 0x985A, 0xEE8C,
+ 0x985B, 0xEE8D,
+ 0x985C, 0xEE8E,
+ 0x985D, 0xEE8F,
+ 0x985E, 0xEE90,
+ 0x985F, 0xEE91,
+ 0x9860, 0xEE92,
+ 0x9861, 0xEE93,
+ 0x9862, 0xEE94,
+ 0x9863, 0xEE95,
+ 0x9864, 0xEE96,
+ 0x9865, 0xEE97,
+ 0x9866, 0xEE98,
+ 0x9867, 0xEE99,
+ 0x9868, 0xEE9A,
+ 0x9869, 0xEE9B,
+ 0x986A, 0xEE9C,
+ 0x986B, 0xEE9D,
+ 0x986C, 0xEE9E,
+ 0x986D, 0xEE9F,
+ 0x986E, 0xEEA0,
+ 0x986F, 0xEF40,
+ 0x9870, 0xEF41,
+ 0x9871, 0xEF42,
+ 0x9872, 0xEF43,
+ 0x9873, 0xEF44,
+ 0x9874, 0xEF45,
+ 0x988B, 0xEF46,
+ 0x988E, 0xEF47,
+ 0x9892, 0xEF48,
+ 0x9895, 0xEF49,
+ 0x9899, 0xEF4A,
+ 0x98A3, 0xEF4B,
+ 0x98A8, 0xEF4C,
+ 0x98A9, 0xEF4D,
+ 0x98AA, 0xEF4E,
+ 0x98AB, 0xEF4F,
+ 0x98AC, 0xEF50,
+ 0x98AD, 0xEF51,
+ 0x98AE, 0xEF52,
+ 0x98AF, 0xEF53,
+ 0x98B0, 0xEF54,
+ 0x98B1, 0xEF55,
+ 0x98B2, 0xEF56,
+ 0x98B3, 0xEF57,
+ 0x98B4, 0xEF58,
+ 0x98B5, 0xEF59,
+ 0x98B6, 0xEF5A,
+ 0x98B7, 0xEF5B,
+ 0x98B8, 0xEF5C,
+ 0x98B9, 0xEF5D,
+ 0x98BA, 0xEF5E,
+ 0x98BB, 0xEF5F,
+ 0x98BC, 0xEF60,
+ 0x98BD, 0xEF61,
+ 0x98BE, 0xEF62,
+ 0x98BF, 0xEF63,
+ 0x98C0, 0xEF64,
+ 0x98C1, 0xEF65,
+ 0x98C2, 0xEF66,
+ 0x98C3, 0xEF67,
+ 0x98C4, 0xEF68,
+ 0x98C5, 0xEF69,
+ 0x98C6, 0xEF6A,
+ 0x98C7, 0xEF6B,
+ 0x98C8, 0xEF6C,
+ 0x98C9, 0xEF6D,
+ 0x98CA, 0xEF6E,
+ 0x98CB, 0xEF6F,
+ 0x98CC, 0xEF70,
+ 0x98CD, 0xEF71,
+ 0x98CF, 0xEF72,
+ 0x98D0, 0xEF73,
+ 0x98D4, 0xEF74,
+ 0x98D6, 0xEF75,
+ 0x98D7, 0xEF76,
+ 0x98DB, 0xEF77,
+ 0x98DC, 0xEF78,
+ 0x98DD, 0xEF79,
+ 0x98E0, 0xEF7A,
+ 0x98E1, 0xEF7B,
+ 0x98E2, 0xEF7C,
+ 0x98E3, 0xEF7D,
+ 0x98E4, 0xEF7E,
+ 0x98E5, 0xEF80,
+ 0x98E6, 0xEF81,
+ 0x98E9, 0xEF82,
+ 0x98EA, 0xEF83,
+ 0x98EB, 0xEF84,
+ 0x98EC, 0xEF85,
+ 0x98ED, 0xEF86,
+ 0x98EE, 0xEF87,
+ 0x98EF, 0xEF88,
+ 0x98F0, 0xEF89,
+ 0x98F1, 0xEF8A,
+ 0x98F2, 0xEF8B,
+ 0x98F3, 0xEF8C,
+ 0x98F4, 0xEF8D,
+ 0x98F5, 0xEF8E,
+ 0x98F6, 0xEF8F,
+ 0x98F7, 0xEF90,
+ 0x98F8, 0xEF91,
+ 0x98F9, 0xEF92,
+ 0x98FA, 0xEF93,
+ 0x98FB, 0xEF94,
+ 0x98FC, 0xEF95,
+ 0x98FD, 0xEF96,
+ 0x98FE, 0xEF97,
+ 0x98FF, 0xEF98,
+ 0x9900, 0xEF99,
+ 0x9901, 0xEF9A,
+ 0x9902, 0xEF9B,
+ 0x9903, 0xEF9C,
+ 0x9904, 0xEF9D,
+ 0x9905, 0xEF9E,
+ 0x9906, 0xEF9F,
+ 0x9907, 0xEFA0,
+ 0x9908, 0xF040,
+ 0x9909, 0xF041,
+ 0x990A, 0xF042,
+ 0x990B, 0xF043,
+ 0x990C, 0xF044,
+ 0x990E, 0xF045,
+ 0x990F, 0xF046,
+ 0x9911, 0xF047,
+ 0x9912, 0xF048,
+ 0x9913, 0xF049,
+ 0x9914, 0xF04A,
+ 0x9915, 0xF04B,
+ 0x9916, 0xF04C,
+ 0x9917, 0xF04D,
+ 0x9918, 0xF04E,
+ 0x9919, 0xF04F,
+ 0x991A, 0xF050,
+ 0x991B, 0xF051,
+ 0x991C, 0xF052,
+ 0x991D, 0xF053,
+ 0x991E, 0xF054,
+ 0x991F, 0xF055,
+ 0x9920, 0xF056,
+ 0x9921, 0xF057,
+ 0x9922, 0xF058,
+ 0x9923, 0xF059,
+ 0x9924, 0xF05A,
+ 0x9925, 0xF05B,
+ 0x9926, 0xF05C,
+ 0x9927, 0xF05D,
+ 0x9928, 0xF05E,
+ 0x9929, 0xF05F,
+ 0x992A, 0xF060,
+ 0x992B, 0xF061,
+ 0x992C, 0xF062,
+ 0x992D, 0xF063,
+ 0x992F, 0xF064,
+ 0x9930, 0xF065,
+ 0x9931, 0xF066,
+ 0x9932, 0xF067,
+ 0x9933, 0xF068,
+ 0x9934, 0xF069,
+ 0x9935, 0xF06A,
+ 0x9936, 0xF06B,
+ 0x9937, 0xF06C,
+ 0x9938, 0xF06D,
+ 0x9939, 0xF06E,
+ 0x993A, 0xF06F,
+ 0x993B, 0xF070,
+ 0x993C, 0xF071,
+ 0x993D, 0xF072,
+ 0x993E, 0xF073,
+ 0x993F, 0xF074,
+ 0x9940, 0xF075,
+ 0x9941, 0xF076,
+ 0x9942, 0xF077,
+ 0x9943, 0xF078,
+ 0x9944, 0xF079,
+ 0x9945, 0xF07A,
+ 0x9946, 0xF07B,
+ 0x9947, 0xF07C,
+ 0x9948, 0xF07D,
+ 0x9949, 0xF07E,
+ 0x994A, 0xF080,
+ 0x994B, 0xF081,
+ 0x994C, 0xF082,
+ 0x994D, 0xF083,
+ 0x994E, 0xF084,
+ 0x994F, 0xF085,
+ 0x9950, 0xF086,
+ 0x9951, 0xF087,
+ 0x9952, 0xF088,
+ 0x9953, 0xF089,
+ 0x9956, 0xF08A,
+ 0x9957, 0xF08B,
+ 0x9958, 0xF08C,
+ 0x9959, 0xF08D,
+ 0x995A, 0xF08E,
+ 0x995B, 0xF08F,
+ 0x995C, 0xF090,
+ 0x995D, 0xF091,
+ 0x995E, 0xF092,
+ 0x995F, 0xF093,
+ 0x9960, 0xF094,
+ 0x9961, 0xF095,
+ 0x9962, 0xF096,
+ 0x9964, 0xF097,
+ 0x9966, 0xF098,
+ 0x9973, 0xF099,
+ 0x9978, 0xF09A,
+ 0x9979, 0xF09B,
+ 0x997B, 0xF09C,
+ 0x997E, 0xF09D,
+ 0x9982, 0xF09E,
+ 0x9983, 0xF09F,
+ 0x9989, 0xF0A0,
+ 0x998C, 0xF140,
+ 0x998E, 0xF141,
+ 0x999A, 0xF142,
+ 0x999B, 0xF143,
+ 0x999C, 0xF144,
+ 0x999D, 0xF145,
+ 0x999E, 0xF146,
+ 0x999F, 0xF147,
+ 0x99A0, 0xF148,
+ 0x99A1, 0xF149,
+ 0x99A2, 0xF14A,
+ 0x99A3, 0xF14B,
+ 0x99A4, 0xF14C,
+ 0x99A6, 0xF14D,
+ 0x99A7, 0xF14E,
+ 0x99A9, 0xF14F,
+ 0x99AA, 0xF150,
+ 0x99AB, 0xF151,
+ 0x99AC, 0xF152,
+ 0x99AD, 0xF153,
+ 0x99AE, 0xF154,
+ 0x99AF, 0xF155,
+ 0x99B0, 0xF156,
+ 0x99B1, 0xF157,
+ 0x99B2, 0xF158,
+ 0x99B3, 0xF159,
+ 0x99B4, 0xF15A,
+ 0x99B5, 0xF15B,
+ 0x99B6, 0xF15C,
+ 0x99B7, 0xF15D,
+ 0x99B8, 0xF15E,
+ 0x99B9, 0xF15F,
+ 0x99BA, 0xF160,
+ 0x99BB, 0xF161,
+ 0x99BC, 0xF162,
+ 0x99BD, 0xF163,
+ 0x99BE, 0xF164,
+ 0x99BF, 0xF165,
+ 0x99C0, 0xF166,
+ 0x99C1, 0xF167,
+ 0x99C2, 0xF168,
+ 0x99C3, 0xF169,
+ 0x99C4, 0xF16A,
+ 0x99C5, 0xF16B,
+ 0x99C6, 0xF16C,
+ 0x99C7, 0xF16D,
+ 0x99C8, 0xF16E,
+ 0x99C9, 0xF16F,
+ 0x99CA, 0xF170,
+ 0x99CB, 0xF171,
+ 0x99CC, 0xF172,
+ 0x99CD, 0xF173,
+ 0x99CE, 0xF174,
+ 0x99CF, 0xF175,
+ 0x99D0, 0xF176,
+ 0x99D1, 0xF177,
+ 0x99D2, 0xF178,
+ 0x99D3, 0xF179,
+ 0x99D4, 0xF17A,
+ 0x99D5, 0xF17B,
+ 0x99D6, 0xF17C,
+ 0x99D7, 0xF17D,
+ 0x99D8, 0xF17E,
+ 0x99D9, 0xF180,
+ 0x99DA, 0xF181,
+ 0x99DB, 0xF182,
+ 0x99DC, 0xF183,
+ 0x99DD, 0xF184,
+ 0x99DE, 0xF185,
+ 0x99DF, 0xF186,
+ 0x99E0, 0xF187,
+ 0x99E1, 0xF188,
+ 0x99E2, 0xF189,
+ 0x99E3, 0xF18A,
+ 0x99E4, 0xF18B,
+ 0x99E5, 0xF18C,
+ 0x99E6, 0xF18D,
+ 0x99E7, 0xF18E,
+ 0x99E8, 0xF18F,
+ 0x99E9, 0xF190,
+ 0x99EA, 0xF191,
+ 0x99EB, 0xF192,
+ 0x99EC, 0xF193,
+ 0x99ED, 0xF194,
+ 0x99EE, 0xF195,
+ 0x99EF, 0xF196,
+ 0x99F0, 0xF197,
+ 0x99F1, 0xF198,
+ 0x99F2, 0xF199,
+ 0x99F3, 0xF19A,
+ 0x99F4, 0xF19B,
+ 0x99F5, 0xF19C,
+ 0x99F6, 0xF19D,
+ 0x99F7, 0xF19E,
+ 0x99F8, 0xF19F,
+ 0x99F9, 0xF1A0,
+ 0x99FA, 0xF240,
+ 0x99FB, 0xF241,
+ 0x99FC, 0xF242,
+ 0x99FD, 0xF243,
+ 0x99FE, 0xF244,
+ 0x99FF, 0xF245,
+ 0x9A00, 0xF246,
+ 0x9A01, 0xF247,
+ 0x9A02, 0xF248,
+ 0x9A03, 0xF249,
+ 0x9A04, 0xF24A,
+ 0x9A05, 0xF24B,
+ 0x9A06, 0xF24C,
+ 0x9A07, 0xF24D,
+ 0x9A08, 0xF24E,
+ 0x9A09, 0xF24F,
+ 0x9A0A, 0xF250,
+ 0x9A0B, 0xF251,
+ 0x9A0C, 0xF252,
+ 0x9A0D, 0xF253,
+ 0x9A0E, 0xF254,
+ 0x9A0F, 0xF255,
+ 0x9A10, 0xF256,
+ 0x9A11, 0xF257,
+ 0x9A12, 0xF258,
+ 0x9A13, 0xF259,
+ 0x9A14, 0xF25A,
+ 0x9A15, 0xF25B,
+ 0x9A16, 0xF25C,
+ 0x9A17, 0xF25D,
+ 0x9A18, 0xF25E,
+ 0x9A19, 0xF25F,
+ 0x9A1A, 0xF260,
+ 0x9A1B, 0xF261,
+ 0x9A1C, 0xF262,
+ 0x9A1D, 0xF263,
+ 0x9A1E, 0xF264,
+ 0x9A1F, 0xF265,
+ 0x9A20, 0xF266,
+ 0x9A21, 0xF267,
+ 0x9A22, 0xF268,
+ 0x9A23, 0xF269,
+ 0x9A24, 0xF26A,
+ 0x9A25, 0xF26B,
+ 0x9A26, 0xF26C,
+ 0x9A27, 0xF26D,
+ 0x9A28, 0xF26E,
+ 0x9A29, 0xF26F,
+ 0x9A2A, 0xF270,
+ 0x9A2B, 0xF271,
+ 0x9A2C, 0xF272,
+ 0x9A2D, 0xF273,
+ 0x9A2E, 0xF274,
+ 0x9A2F, 0xF275,
+ 0x9A30, 0xF276,
+ 0x9A31, 0xF277,
+ 0x9A32, 0xF278,
+ 0x9A33, 0xF279,
+ 0x9A34, 0xF27A,
+ 0x9A35, 0xF27B,
+ 0x9A36, 0xF27C,
+ 0x9A37, 0xF27D,
+ 0x9A38, 0xF27E,
+ 0x9A39, 0xF280,
+ 0x9A3A, 0xF281,
+ 0x9A3B, 0xF282,
+ 0x9A3C, 0xF283,
+ 0x9A3D, 0xF284,
+ 0x9A3E, 0xF285,
+ 0x9A3F, 0xF286,
+ 0x9A40, 0xF287,
+ 0x9A41, 0xF288,
+ 0x9A42, 0xF289,
+ 0x9A43, 0xF28A,
+ 0x9A44, 0xF28B,
+ 0x9A45, 0xF28C,
+ 0x9A46, 0xF28D,
+ 0x9A47, 0xF28E,
+ 0x9A48, 0xF28F,
+ 0x9A49, 0xF290,
+ 0x9A4A, 0xF291,
+ 0x9A4B, 0xF292,
+ 0x9A4C, 0xF293,
+ 0x9A4D, 0xF294,
+ 0x9A4E, 0xF295,
+ 0x9A4F, 0xF296,
+ 0x9A50, 0xF297,
+ 0x9A51, 0xF298,
+ 0x9A52, 0xF299,
+ 0x9A53, 0xF29A,
+ 0x9A54, 0xF29B,
+ 0x9A55, 0xF29C,
+ 0x9A56, 0xF29D,
+ 0x9A57, 0xF29E,
+ 0x9A58, 0xF29F,
+ 0x9A59, 0xF2A0,
+ 0x9A5A, 0xF340,
+ 0x9A5B, 0xF341,
+ 0x9A5C, 0xF342,
+ 0x9A5D, 0xF343,
+ 0x9A5E, 0xF344,
+ 0x9A5F, 0xF345,
+ 0x9A60, 0xF346,
+ 0x9A61, 0xF347,
+ 0x9A62, 0xF348,
+ 0x9A63, 0xF349,
+ 0x9A64, 0xF34A,
+ 0x9A65, 0xF34B,
+ 0x9A66, 0xF34C,
+ 0x9A67, 0xF34D,
+ 0x9A68, 0xF34E,
+ 0x9A69, 0xF34F,
+ 0x9A6A, 0xF350,
+ 0x9A6B, 0xF351,
+ 0x9A72, 0xF352,
+ 0x9A83, 0xF353,
+ 0x9A89, 0xF354,
+ 0x9A8D, 0xF355,
+ 0x9A8E, 0xF356,
+ 0x9A94, 0xF357,
+ 0x9A95, 0xF358,
+ 0x9A99, 0xF359,
+ 0x9AA6, 0xF35A,
+ 0x9AA9, 0xF35B,
+ 0x9AAA, 0xF35C,
+ 0x9AAB, 0xF35D,
+ 0x9AAC, 0xF35E,
+ 0x9AAD, 0xF35F,
+ 0x9AAE, 0xF360,
+ 0x9AAF, 0xF361,
+ 0x9AB2, 0xF362,
+ 0x9AB3, 0xF363,
+ 0x9AB4, 0xF364,
+ 0x9AB5, 0xF365,
+ 0x9AB9, 0xF366,
+ 0x9ABB, 0xF367,
+ 0x9ABD, 0xF368,
+ 0x9ABE, 0xF369,
+ 0x9ABF, 0xF36A,
+ 0x9AC3, 0xF36B,
+ 0x9AC4, 0xF36C,
+ 0x9AC6, 0xF36D,
+ 0x9AC7, 0xF36E,
+ 0x9AC8, 0xF36F,
+ 0x9AC9, 0xF370,
+ 0x9ACA, 0xF371,
+ 0x9ACD, 0xF372,
+ 0x9ACE, 0xF373,
+ 0x9ACF, 0xF374,
+ 0x9AD0, 0xF375,
+ 0x9AD2, 0xF376,
+ 0x9AD4, 0xF377,
+ 0x9AD5, 0xF378,
+ 0x9AD6, 0xF379,
+ 0x9AD7, 0xF37A,
+ 0x9AD9, 0xF37B,
+ 0x9ADA, 0xF37C,
+ 0x9ADB, 0xF37D,
+ 0x9ADC, 0xF37E,
+ 0x9ADD, 0xF380,
+ 0x9ADE, 0xF381,
+ 0x9AE0, 0xF382,
+ 0x9AE2, 0xF383,
+ 0x9AE3, 0xF384,
+ 0x9AE4, 0xF385,
+ 0x9AE5, 0xF386,
+ 0x9AE7, 0xF387,
+ 0x9AE8, 0xF388,
+ 0x9AE9, 0xF389,
+ 0x9AEA, 0xF38A,
+ 0x9AEC, 0xF38B,
+ 0x9AEE, 0xF38C,
+ 0x9AF0, 0xF38D,
+ 0x9AF1, 0xF38E,
+ 0x9AF2, 0xF38F,
+ 0x9AF3, 0xF390,
+ 0x9AF4, 0xF391,
+ 0x9AF5, 0xF392,
+ 0x9AF6, 0xF393,
+ 0x9AF7, 0xF394,
+ 0x9AF8, 0xF395,
+ 0x9AFA, 0xF396,
+ 0x9AFC, 0xF397,
+ 0x9AFD, 0xF398,
+ 0x9AFE, 0xF399,
+ 0x9AFF, 0xF39A,
+ 0x9B00, 0xF39B,
+ 0x9B01, 0xF39C,
+ 0x9B02, 0xF39D,
+ 0x9B04, 0xF39E,
+ 0x9B05, 0xF39F,
+ 0x9B06, 0xF3A0,
+ 0x9B07, 0xF440,
+ 0x9B09, 0xF441,
+ 0x9B0A, 0xF442,
+ 0x9B0B, 0xF443,
+ 0x9B0C, 0xF444,
+ 0x9B0D, 0xF445,
+ 0x9B0E, 0xF446,
+ 0x9B10, 0xF447,
+ 0x9B11, 0xF448,
+ 0x9B12, 0xF449,
+ 0x9B14, 0xF44A,
+ 0x9B15, 0xF44B,
+ 0x9B16, 0xF44C,
+ 0x9B17, 0xF44D,
+ 0x9B18, 0xF44E,
+ 0x9B19, 0xF44F,
+ 0x9B1A, 0xF450,
+ 0x9B1B, 0xF451,
+ 0x9B1C, 0xF452,
+ 0x9B1D, 0xF453,
+ 0x9B1E, 0xF454,
+ 0x9B20, 0xF455,
+ 0x9B21, 0xF456,
+ 0x9B22, 0xF457,
+ 0x9B24, 0xF458,
+ 0x9B25, 0xF459,
+ 0x9B26, 0xF45A,
+ 0x9B27, 0xF45B,
+ 0x9B28, 0xF45C,
+ 0x9B29, 0xF45D,
+ 0x9B2A, 0xF45E,
+ 0x9B2B, 0xF45F,
+ 0x9B2C, 0xF460,
+ 0x9B2D, 0xF461,
+ 0x9B2E, 0xF462,
+ 0x9B30, 0xF463,
+ 0x9B31, 0xF464,
+ 0x9B33, 0xF465,
+ 0x9B34, 0xF466,
+ 0x9B35, 0xF467,
+ 0x9B36, 0xF468,
+ 0x9B37, 0xF469,
+ 0x9B38, 0xF46A,
+ 0x9B39, 0xF46B,
+ 0x9B3A, 0xF46C,
+ 0x9B3D, 0xF46D,
+ 0x9B3E, 0xF46E,
+ 0x9B3F, 0xF46F,
+ 0x9B40, 0xF470,
+ 0x9B46, 0xF471,
+ 0x9B4A, 0xF472,
+ 0x9B4B, 0xF473,
+ 0x9B4C, 0xF474,
+ 0x9B4E, 0xF475,
+ 0x9B50, 0xF476,
+ 0x9B52, 0xF477,
+ 0x9B53, 0xF478,
+ 0x9B55, 0xF479,
+ 0x9B56, 0xF47A,
+ 0x9B57, 0xF47B,
+ 0x9B58, 0xF47C,
+ 0x9B59, 0xF47D,
+ 0x9B5A, 0xF47E,
+ 0x9B5B, 0xF480,
+ 0x9B5C, 0xF481,
+ 0x9B5D, 0xF482,
+ 0x9B5E, 0xF483,
+ 0x9B5F, 0xF484,
+ 0x9B60, 0xF485,
+ 0x9B61, 0xF486,
+ 0x9B62, 0xF487,
+ 0x9B63, 0xF488,
+ 0x9B64, 0xF489,
+ 0x9B65, 0xF48A,
+ 0x9B66, 0xF48B,
+ 0x9B67, 0xF48C,
+ 0x9B68, 0xF48D,
+ 0x9B69, 0xF48E,
+ 0x9B6A, 0xF48F,
+ 0x9B6B, 0xF490,
+ 0x9B6C, 0xF491,
+ 0x9B6D, 0xF492,
+ 0x9B6E, 0xF493,
+ 0x9B6F, 0xF494,
+ 0x9B70, 0xF495,
+ 0x9B71, 0xF496,
+ 0x9B72, 0xF497,
+ 0x9B73, 0xF498,
+ 0x9B74, 0xF499,
+ 0x9B75, 0xF49A,
+ 0x9B76, 0xF49B,
+ 0x9B77, 0xF49C,
+ 0x9B78, 0xF49D,
+ 0x9B79, 0xF49E,
+ 0x9B7A, 0xF49F,
+ 0x9B7B, 0xF4A0,
+ 0x9B7C, 0xF540,
+ 0x9B7D, 0xF541,
+ 0x9B7E, 0xF542,
+ 0x9B7F, 0xF543,
+ 0x9B80, 0xF544,
+ 0x9B81, 0xF545,
+ 0x9B82, 0xF546,
+ 0x9B83, 0xF547,
+ 0x9B84, 0xF548,
+ 0x9B85, 0xF549,
+ 0x9B86, 0xF54A,
+ 0x9B87, 0xF54B,
+ 0x9B88, 0xF54C,
+ 0x9B89, 0xF54D,
+ 0x9B8A, 0xF54E,
+ 0x9B8B, 0xF54F,
+ 0x9B8C, 0xF550,
+ 0x9B8D, 0xF551,
+ 0x9B8E, 0xF552,
+ 0x9B8F, 0xF553,
+ 0x9B90, 0xF554,
+ 0x9B91, 0xF555,
+ 0x9B92, 0xF556,
+ 0x9B93, 0xF557,
+ 0x9B94, 0xF558,
+ 0x9B95, 0xF559,
+ 0x9B96, 0xF55A,
+ 0x9B97, 0xF55B,
+ 0x9B98, 0xF55C,
+ 0x9B99, 0xF55D,
+ 0x9B9A, 0xF55E,
+ 0x9B9B, 0xF55F,
+ 0x9B9C, 0xF560,
+ 0x9B9D, 0xF561,
+ 0x9B9E, 0xF562,
+ 0x9B9F, 0xF563,
+ 0x9BA0, 0xF564,
+ 0x9BA1, 0xF565,
+ 0x9BA2, 0xF566,
+ 0x9BA3, 0xF567,
+ 0x9BA4, 0xF568,
+ 0x9BA5, 0xF569,
+ 0x9BA6, 0xF56A,
+ 0x9BA7, 0xF56B,
+ 0x9BA8, 0xF56C,
+ 0x9BA9, 0xF56D,
+ 0x9BAA, 0xF56E,
+ 0x9BAB, 0xF56F,
+ 0x9BAC, 0xF570,
+ 0x9BAD, 0xF571,
+ 0x9BAE, 0xF572,
+ 0x9BAF, 0xF573,
+ 0x9BB0, 0xF574,
+ 0x9BB1, 0xF575,
+ 0x9BB2, 0xF576,
+ 0x9BB3, 0xF577,
+ 0x9BB4, 0xF578,
+ 0x9BB5, 0xF579,
+ 0x9BB6, 0xF57A,
+ 0x9BB7, 0xF57B,
+ 0x9BB8, 0xF57C,
+ 0x9BB9, 0xF57D,
+ 0x9BBA, 0xF57E,
+ 0x9BBB, 0xF580,
+ 0x9BBC, 0xF581,
+ 0x9BBD, 0xF582,
+ 0x9BBE, 0xF583,
+ 0x9BBF, 0xF584,
+ 0x9BC0, 0xF585,
+ 0x9BC1, 0xF586,
+ 0x9BC2, 0xF587,
+ 0x9BC3, 0xF588,
+ 0x9BC4, 0xF589,
+ 0x9BC5, 0xF58A,
+ 0x9BC6, 0xF58B,
+ 0x9BC7, 0xF58C,
+ 0x9BC8, 0xF58D,
+ 0x9BC9, 0xF58E,
+ 0x9BCA, 0xF58F,
+ 0x9BCB, 0xF590,
+ 0x9BCC, 0xF591,
+ 0x9BCD, 0xF592,
+ 0x9BCE, 0xF593,
+ 0x9BCF, 0xF594,
+ 0x9BD0, 0xF595,
+ 0x9BD1, 0xF596,
+ 0x9BD2, 0xF597,
+ 0x9BD3, 0xF598,
+ 0x9BD4, 0xF599,
+ 0x9BD5, 0xF59A,
+ 0x9BD6, 0xF59B,
+ 0x9BD7, 0xF59C,
+ 0x9BD8, 0xF59D,
+ 0x9BD9, 0xF59E,
+ 0x9BDA, 0xF59F,
+ 0x9BDB, 0xF5A0,
+ 0x9BDC, 0xF640,
+ 0x9BDD, 0xF641,
+ 0x9BDE, 0xF642,
+ 0x9BDF, 0xF643,
+ 0x9BE0, 0xF644,
+ 0x9BE1, 0xF645,
+ 0x9BE2, 0xF646,
+ 0x9BE3, 0xF647,
+ 0x9BE4, 0xF648,
+ 0x9BE5, 0xF649,
+ 0x9BE6, 0xF64A,
+ 0x9BE7, 0xF64B,
+ 0x9BE8, 0xF64C,
+ 0x9BE9, 0xF64D,
+ 0x9BEA, 0xF64E,
+ 0x9BEB, 0xF64F,
+ 0x9BEC, 0xF650,
+ 0x9BED, 0xF651,
+ 0x9BEE, 0xF652,
+ 0x9BEF, 0xF653,
+ 0x9BF0, 0xF654,
+ 0x9BF1, 0xF655,
+ 0x9BF2, 0xF656,
+ 0x9BF3, 0xF657,
+ 0x9BF4, 0xF658,
+ 0x9BF5, 0xF659,
+ 0x9BF6, 0xF65A,
+ 0x9BF7, 0xF65B,
+ 0x9BF8, 0xF65C,
+ 0x9BF9, 0xF65D,
+ 0x9BFA, 0xF65E,
+ 0x9BFB, 0xF65F,
+ 0x9BFC, 0xF660,
+ 0x9BFD, 0xF661,
+ 0x9BFE, 0xF662,
+ 0x9BFF, 0xF663,
+ 0x9C00, 0xF664,
+ 0x9C01, 0xF665,
+ 0x9C02, 0xF666,
+ 0x9C03, 0xF667,
+ 0x9C04, 0xF668,
+ 0x9C05, 0xF669,
+ 0x9C06, 0xF66A,
+ 0x9C07, 0xF66B,
+ 0x9C08, 0xF66C,
+ 0x9C09, 0xF66D,
+ 0x9C0A, 0xF66E,
+ 0x9C0B, 0xF66F,
+ 0x9C0C, 0xF670,
+ 0x9C0D, 0xF671,
+ 0x9C0E, 0xF672,
+ 0x9C0F, 0xF673,
+ 0x9C10, 0xF674,
+ 0x9C11, 0xF675,
+ 0x9C12, 0xF676,
+ 0x9C13, 0xF677,
+ 0x9C14, 0xF678,
+ 0x9C15, 0xF679,
+ 0x9C16, 0xF67A,
+ 0x9C17, 0xF67B,
+ 0x9C18, 0xF67C,
+ 0x9C19, 0xF67D,
+ 0x9C1A, 0xF67E,
+ 0x9C1B, 0xF680,
+ 0x9C1C, 0xF681,
+ 0x9C1D, 0xF682,
+ 0x9C1E, 0xF683,
+ 0x9C1F, 0xF684,
+ 0x9C20, 0xF685,
+ 0x9C21, 0xF686,
+ 0x9C22, 0xF687,
+ 0x9C23, 0xF688,
+ 0x9C24, 0xF689,
+ 0x9C25, 0xF68A,
+ 0x9C26, 0xF68B,
+ 0x9C27, 0xF68C,
+ 0x9C28, 0xF68D,
+ 0x9C29, 0xF68E,
+ 0x9C2A, 0xF68F,
+ 0x9C2B, 0xF690,
+ 0x9C2C, 0xF691,
+ 0x9C2D, 0xF692,
+ 0x9C2E, 0xF693,
+ 0x9C2F, 0xF694,
+ 0x9C30, 0xF695,
+ 0x9C31, 0xF696,
+ 0x9C32, 0xF697,
+ 0x9C33, 0xF698,
+ 0x9C34, 0xF699,
+ 0x9C35, 0xF69A,
+ 0x9C36, 0xF69B,
+ 0x9C37, 0xF69C,
+ 0x9C38, 0xF69D,
+ 0x9C39, 0xF69E,
+ 0x9C3A, 0xF69F,
+ 0x9C3B, 0xF6A0,
+ 0x9C3C, 0xF740,
+ 0x9C3D, 0xF741,
+ 0x9C3E, 0xF742,
+ 0x9C3F, 0xF743,
+ 0x9C40, 0xF744,
+ 0x9C41, 0xF745,
+ 0x9C42, 0xF746,
+ 0x9C43, 0xF747,
+ 0x9C44, 0xF748,
+ 0x9C45, 0xF749,
+ 0x9C46, 0xF74A,
+ 0x9C47, 0xF74B,
+ 0x9C48, 0xF74C,
+ 0x9C49, 0xF74D,
+ 0x9C4A, 0xF74E,
+ 0x9C4B, 0xF74F,
+ 0x9C4C, 0xF750,
+ 0x9C4D, 0xF751,
+ 0x9C4E, 0xF752,
+ 0x9C4F, 0xF753,
+ 0x9C50, 0xF754,
+ 0x9C51, 0xF755,
+ 0x9C52, 0xF756,
+ 0x9C53, 0xF757,
+ 0x9C54, 0xF758,
+ 0x9C55, 0xF759,
+ 0x9C56, 0xF75A,
+ 0x9C57, 0xF75B,
+ 0x9C58, 0xF75C,
+ 0x9C59, 0xF75D,
+ 0x9C5A, 0xF75E,
+ 0x9C5B, 0xF75F,
+ 0x9C5C, 0xF760,
+ 0x9C5D, 0xF761,
+ 0x9C5E, 0xF762,
+ 0x9C5F, 0xF763,
+ 0x9C60, 0xF764,
+ 0x9C61, 0xF765,
+ 0x9C62, 0xF766,
+ 0x9C63, 0xF767,
+ 0x9C64, 0xF768,
+ 0x9C65, 0xF769,
+ 0x9C66, 0xF76A,
+ 0x9C67, 0xF76B,
+ 0x9C68, 0xF76C,
+ 0x9C69, 0xF76D,
+ 0x9C6A, 0xF76E,
+ 0x9C6B, 0xF76F,
+ 0x9C6C, 0xF770,
+ 0x9C6D, 0xF771,
+ 0x9C6E, 0xF772,
+ 0x9C6F, 0xF773,
+ 0x9C70, 0xF774,
+ 0x9C71, 0xF775,
+ 0x9C72, 0xF776,
+ 0x9C73, 0xF777,
+ 0x9C74, 0xF778,
+ 0x9C75, 0xF779,
+ 0x9C76, 0xF77A,
+ 0x9C77, 0xF77B,
+ 0x9C78, 0xF77C,
+ 0x9C79, 0xF77D,
+ 0x9C7A, 0xF77E,
+ 0x9C7B, 0xF780,
+ 0x9C7D, 0xF781,
+ 0x9C7E, 0xF782,
+ 0x9C80, 0xF783,
+ 0x9C83, 0xF784,
+ 0x9C84, 0xF785,
+ 0x9C89, 0xF786,
+ 0x9C8A, 0xF787,
+ 0x9C8C, 0xF788,
+ 0x9C8F, 0xF789,
+ 0x9C93, 0xF78A,
+ 0x9C96, 0xF78B,
+ 0x9C97, 0xF78C,
+ 0x9C98, 0xF78D,
+ 0x9C99, 0xF78E,
+ 0x9C9D, 0xF78F,
+ 0x9CAA, 0xF790,
+ 0x9CAC, 0xF791,
+ 0x9CAF, 0xF792,
+ 0x9CB9, 0xF793,
+ 0x9CBE, 0xF794,
+ 0x9CBF, 0xF795,
+ 0x9CC0, 0xF796,
+ 0x9CC1, 0xF797,
+ 0x9CC2, 0xF798,
+ 0x9CC8, 0xF799,
+ 0x9CC9, 0xF79A,
+ 0x9CD1, 0xF79B,
+ 0x9CD2, 0xF79C,
+ 0x9CDA, 0xF79D,
+ 0x9CDB, 0xF79E,
+ 0x9CE0, 0xF79F,
+ 0x9CE1, 0xF7A0,
+ 0x9CE3, 0xF840,
+ 0x9CE4, 0xF841,
+ 0x9CE5, 0xF842,
+ 0x9CE6, 0xF843,
+ 0x9CE7, 0xF844,
+ 0x9CE8, 0xF845,
+ 0x9CE9, 0xF846,
+ 0x9CEA, 0xF847,
+ 0x9CEB, 0xF848,
+ 0x9CEC, 0xF849,
+ 0x9CED, 0xF84A,
+ 0x9CEE, 0xF84B,
+ 0x9CEF, 0xF84C,
+ 0x9CF0, 0xF84D,
+ 0x9CF1, 0xF84E,
+ 0x9CF2, 0xF84F,
+ 0x9CF3, 0xF850,
+ 0x9CF4, 0xF851,
+ 0x9CF5, 0xF852,
+ 0x9CF6, 0xF853,
+ 0x9CF7, 0xF854,
+ 0x9CF8, 0xF855,
+ 0x9CF9, 0xF856,
+ 0x9CFA, 0xF857,
+ 0x9CFB, 0xF858,
+ 0x9CFC, 0xF859,
+ 0x9CFD, 0xF85A,
+ 0x9CFE, 0xF85B,
+ 0x9CFF, 0xF85C,
+ 0x9D00, 0xF85D,
+ 0x9D01, 0xF85E,
+ 0x9D02, 0xF85F,
+ 0x9D03, 0xF860,
+ 0x9D04, 0xF861,
+ 0x9D05, 0xF862,
+ 0x9D06, 0xF863,
+ 0x9D07, 0xF864,
+ 0x9D08, 0xF865,
+ 0x9D09, 0xF866,
+ 0x9D0A, 0xF867,
+ 0x9D0B, 0xF868,
+ 0x9D0C, 0xF869,
+ 0x9D0D, 0xF86A,
+ 0x9D0E, 0xF86B,
+ 0x9D0F, 0xF86C,
+ 0x9D10, 0xF86D,
+ 0x9D11, 0xF86E,
+ 0x9D12, 0xF86F,
+ 0x9D13, 0xF870,
+ 0x9D14, 0xF871,
+ 0x9D15, 0xF872,
+ 0x9D16, 0xF873,
+ 0x9D17, 0xF874,
+ 0x9D18, 0xF875,
+ 0x9D19, 0xF876,
+ 0x9D1A, 0xF877,
+ 0x9D1B, 0xF878,
+ 0x9D1C, 0xF879,
+ 0x9D1D, 0xF87A,
+ 0x9D1E, 0xF87B,
+ 0x9D1F, 0xF87C,
+ 0x9D20, 0xF87D,
+ 0x9D21, 0xF87E,
+ 0x9D22, 0xF880,
+ 0x9D23, 0xF881,
+ 0x9D24, 0xF882,
+ 0x9D25, 0xF883,
+ 0x9D26, 0xF884,
+ 0x9D27, 0xF885,
+ 0x9D28, 0xF886,
+ 0x9D29, 0xF887,
+ 0x9D2A, 0xF888,
+ 0x9D2B, 0xF889,
+ 0x9D2C, 0xF88A,
+ 0x9D2D, 0xF88B,
+ 0x9D2E, 0xF88C,
+ 0x9D2F, 0xF88D,
+ 0x9D30, 0xF88E,
+ 0x9D31, 0xF88F,
+ 0x9D32, 0xF890,
+ 0x9D33, 0xF891,
+ 0x9D34, 0xF892,
+ 0x9D35, 0xF893,
+ 0x9D36, 0xF894,
+ 0x9D37, 0xF895,
+ 0x9D38, 0xF896,
+ 0x9D39, 0xF897,
+ 0x9D3A, 0xF898,
+ 0x9D3B, 0xF899,
+ 0x9D3C, 0xF89A,
+ 0x9D3D, 0xF89B,
+ 0x9D3E, 0xF89C,
+ 0x9D3F, 0xF89D,
+ 0x9D40, 0xF89E,
+ 0x9D41, 0xF89F,
+ 0x9D42, 0xF8A0,
+ 0x9D43, 0xF940,
+ 0x9D44, 0xF941,
+ 0x9D45, 0xF942,
+ 0x9D46, 0xF943,
+ 0x9D47, 0xF944,
+ 0x9D48, 0xF945,
+ 0x9D49, 0xF946,
+ 0x9D4A, 0xF947,
+ 0x9D4B, 0xF948,
+ 0x9D4C, 0xF949,
+ 0x9D4D, 0xF94A,
+ 0x9D4E, 0xF94B,
+ 0x9D4F, 0xF94C,
+ 0x9D50, 0xF94D,
+ 0x9D51, 0xF94E,
+ 0x9D52, 0xF94F,
+ 0x9D53, 0xF950,
+ 0x9D54, 0xF951,
+ 0x9D55, 0xF952,
+ 0x9D56, 0xF953,
+ 0x9D57, 0xF954,
+ 0x9D58, 0xF955,
+ 0x9D59, 0xF956,
+ 0x9D5A, 0xF957,
+ 0x9D5B, 0xF958,
+ 0x9D5C, 0xF959,
+ 0x9D5D, 0xF95A,
+ 0x9D5E, 0xF95B,
+ 0x9D5F, 0xF95C,
+ 0x9D60, 0xF95D,
+ 0x9D61, 0xF95E,
+ 0x9D62, 0xF95F,
+ 0x9D63, 0xF960,
+ 0x9D64, 0xF961,
+ 0x9D65, 0xF962,
+ 0x9D66, 0xF963,
+ 0x9D67, 0xF964,
+ 0x9D68, 0xF965,
+ 0x9D69, 0xF966,
+ 0x9D6A, 0xF967,
+ 0x9D6B, 0xF968,
+ 0x9D6C, 0xF969,
+ 0x9D6D, 0xF96A,
+ 0x9D6E, 0xF96B,
+ 0x9D6F, 0xF96C,
+ 0x9D70, 0xF96D,
+ 0x9D71, 0xF96E,
+ 0x9D72, 0xF96F,
+ 0x9D73, 0xF970,
+ 0x9D74, 0xF971,
+ 0x9D75, 0xF972,
+ 0x9D76, 0xF973,
+ 0x9D77, 0xF974,
+ 0x9D78, 0xF975,
+ 0x9D79, 0xF976,
+ 0x9D7A, 0xF977,
+ 0x9D7B, 0xF978,
+ 0x9D7C, 0xF979,
+ 0x9D7D, 0xF97A,
+ 0x9D7E, 0xF97B,
+ 0x9D7F, 0xF97C,
+ 0x9D80, 0xF97D,
+ 0x9D81, 0xF97E,
+ 0x9D82, 0xF980,
+ 0x9D83, 0xF981,
+ 0x9D84, 0xF982,
+ 0x9D85, 0xF983,
+ 0x9D86, 0xF984,
+ 0x9D87, 0xF985,
+ 0x9D88, 0xF986,
+ 0x9D89, 0xF987,
+ 0x9D8A, 0xF988,
+ 0x9D8B, 0xF989,
+ 0x9D8C, 0xF98A,
+ 0x9D8D, 0xF98B,
+ 0x9D8E, 0xF98C,
+ 0x9D8F, 0xF98D,
+ 0x9D90, 0xF98E,
+ 0x9D91, 0xF98F,
+ 0x9D92, 0xF990,
+ 0x9D93, 0xF991,
+ 0x9D94, 0xF992,
+ 0x9D95, 0xF993,
+ 0x9D96, 0xF994,
+ 0x9D97, 0xF995,
+ 0x9D98, 0xF996,
+ 0x9D99, 0xF997,
+ 0x9D9A, 0xF998,
+ 0x9D9B, 0xF999,
+ 0x9D9C, 0xF99A,
+ 0x9D9D, 0xF99B,
+ 0x9D9E, 0xF99C,
+ 0x9D9F, 0xF99D,
+ 0x9DA0, 0xF99E,
+ 0x9DA1, 0xF99F,
+ 0x9DA2, 0xF9A0,
+ 0x9DA3, 0xFA40,
+ 0x9DA4, 0xFA41,
+ 0x9DA5, 0xFA42,
+ 0x9DA6, 0xFA43,
+ 0x9DA7, 0xFA44,
+ 0x9DA8, 0xFA45,
+ 0x9DA9, 0xFA46,
+ 0x9DAA, 0xFA47,
+ 0x9DAB, 0xFA48,
+ 0x9DAC, 0xFA49,
+ 0x9DAD, 0xFA4A,
+ 0x9DAE, 0xFA4B,
+ 0x9DAF, 0xFA4C,
+ 0x9DB0, 0xFA4D,
+ 0x9DB1, 0xFA4E,
+ 0x9DB2, 0xFA4F,
+ 0x9DB3, 0xFA50,
+ 0x9DB4, 0xFA51,
+ 0x9DB5, 0xFA52,
+ 0x9DB6, 0xFA53,
+ 0x9DB7, 0xFA54,
+ 0x9DB8, 0xFA55,
+ 0x9DB9, 0xFA56,
+ 0x9DBA, 0xFA57,
+ 0x9DBB, 0xFA58,
+ 0x9DBC, 0xFA59,
+ 0x9DBD, 0xFA5A,
+ 0x9DBE, 0xFA5B,
+ 0x9DBF, 0xFA5C,
+ 0x9DC0, 0xFA5D,
+ 0x9DC1, 0xFA5E,
+ 0x9DC2, 0xFA5F,
+ 0x9DC3, 0xFA60,
+ 0x9DC4, 0xFA61,
+ 0x9DC5, 0xFA62,
+ 0x9DC6, 0xFA63,
+ 0x9DC7, 0xFA64,
+ 0x9DC8, 0xFA65,
+ 0x9DC9, 0xFA66,
+ 0x9DCA, 0xFA67,
+ 0x9DCB, 0xFA68,
+ 0x9DCC, 0xFA69,
+ 0x9DCD, 0xFA6A,
+ 0x9DCE, 0xFA6B,
+ 0x9DCF, 0xFA6C,
+ 0x9DD0, 0xFA6D,
+ 0x9DD1, 0xFA6E,
+ 0x9DD2, 0xFA6F,
+ 0x9DD3, 0xFA70,
+ 0x9DD4, 0xFA71,
+ 0x9DD5, 0xFA72,
+ 0x9DD6, 0xFA73,
+ 0x9DD7, 0xFA74,
+ 0x9DD8, 0xFA75,
+ 0x9DD9, 0xFA76,
+ 0x9DDA, 0xFA77,
+ 0x9DDB, 0xFA78,
+ 0x9DDC, 0xFA79,
+ 0x9DDD, 0xFA7A,
+ 0x9DDE, 0xFA7B,
+ 0x9DDF, 0xFA7C,
+ 0x9DE0, 0xFA7D,
+ 0x9DE1, 0xFA7E,
+ 0x9DE2, 0xFA80,
+ 0x9DE3, 0xFA81,
+ 0x9DE4, 0xFA82,
+ 0x9DE5, 0xFA83,
+ 0x9DE6, 0xFA84,
+ 0x9DE7, 0xFA85,
+ 0x9DE8, 0xFA86,
+ 0x9DE9, 0xFA87,
+ 0x9DEA, 0xFA88,
+ 0x9DEB, 0xFA89,
+ 0x9DEC, 0xFA8A,
+ 0x9DED, 0xFA8B,
+ 0x9DEE, 0xFA8C,
+ 0x9DEF, 0xFA8D,
+ 0x9DF0, 0xFA8E,
+ 0x9DF1, 0xFA8F,
+ 0x9DF2, 0xFA90,
+ 0x9DF3, 0xFA91,
+ 0x9DF4, 0xFA92,
+ 0x9DF5, 0xFA93,
+ 0x9DF6, 0xFA94,
+ 0x9DF7, 0xFA95,
+ 0x9DF8, 0xFA96,
+ 0x9DF9, 0xFA97,
+ 0x9DFA, 0xFA98,
+ 0x9DFB, 0xFA99,
+ 0x9DFC, 0xFA9A,
+ 0x9DFD, 0xFA9B,
+ 0x9DFE, 0xFA9C,
+ 0x9DFF, 0xFA9D,
+ 0x9E00, 0xFA9E,
+ 0x9E01, 0xFA9F,
+ 0x9E02, 0xFAA0,
+ 0x9E03, 0xFB40,
+ 0x9E04, 0xFB41,
+ 0x9E05, 0xFB42,
+ 0x9E06, 0xFB43,
+ 0x9E07, 0xFB44,
+ 0x9E08, 0xFB45,
+ 0x9E09, 0xFB46,
+ 0x9E0A, 0xFB47,
+ 0x9E0B, 0xFB48,
+ 0x9E0C, 0xFB49,
+ 0x9E0D, 0xFB4A,
+ 0x9E0E, 0xFB4B,
+ 0x9E0F, 0xFB4C,
+ 0x9E10, 0xFB4D,
+ 0x9E11, 0xFB4E,
+ 0x9E12, 0xFB4F,
+ 0x9E13, 0xFB50,
+ 0x9E14, 0xFB51,
+ 0x9E15, 0xFB52,
+ 0x9E16, 0xFB53,
+ 0x9E17, 0xFB54,
+ 0x9E18, 0xFB55,
+ 0x9E19, 0xFB56,
+ 0x9E1A, 0xFB57,
+ 0x9E1B, 0xFB58,
+ 0x9E1C, 0xFB59,
+ 0x9E1D, 0xFB5A,
+ 0x9E1E, 0xFB5B,
+ 0x9E24, 0xFB5C,
+ 0x9E27, 0xFB5D,
+ 0x9E2E, 0xFB5E,
+ 0x9E30, 0xFB5F,
+ 0x9E34, 0xFB60,
+ 0x9E3B, 0xFB61,
+ 0x9E3C, 0xFB62,
+ 0x9E40, 0xFB63,
+ 0x9E4D, 0xFB64,
+ 0x9E50, 0xFB65,
+ 0x9E52, 0xFB66,
+ 0x9E53, 0xFB67,
+ 0x9E54, 0xFB68,
+ 0x9E56, 0xFB69,
+ 0x9E59, 0xFB6A,
+ 0x9E5D, 0xFB6B,
+ 0x9E5F, 0xFB6C,
+ 0x9E60, 0xFB6D,
+ 0x9E61, 0xFB6E,
+ 0x9E62, 0xFB6F,
+ 0x9E65, 0xFB70,
+ 0x9E6E, 0xFB71,
+ 0x9E6F, 0xFB72,
+ 0x9E72, 0xFB73,
+ 0x9E74, 0xFB74,
+ 0x9E75, 0xFB75,
+ 0x9E76, 0xFB76,
+ 0x9E77, 0xFB77,
+ 0x9E78, 0xFB78,
+ 0x9E79, 0xFB79,
+ 0x9E7A, 0xFB7A,
+ 0x9E7B, 0xFB7B,
+ 0x9E7C, 0xFB7C,
+ 0x9E7D, 0xFB7D,
+ 0x9E80, 0xFB7E,
+ 0x9E81, 0xFB80,
+ 0x9E83, 0xFB81,
+ 0x9E84, 0xFB82,
+ 0x9E85, 0xFB83,
+ 0x9E86, 0xFB84,
+ 0x9E89, 0xFB85,
+ 0x9E8A, 0xFB86,
+ 0x9E8C, 0xFB87,
+ 0x9E8D, 0xFB88,
+ 0x9E8E, 0xFB89,
+ 0x9E8F, 0xFB8A,
+ 0x9E90, 0xFB8B,
+ 0x9E91, 0xFB8C,
+ 0x9E94, 0xFB8D,
+ 0x9E95, 0xFB8E,
+ 0x9E96, 0xFB8F,
+ 0x9E97, 0xFB90,
+ 0x9E98, 0xFB91,
+ 0x9E99, 0xFB92,
+ 0x9E9A, 0xFB93,
+ 0x9E9B, 0xFB94,
+ 0x9E9C, 0xFB95,
+ 0x9E9E, 0xFB96,
+ 0x9EA0, 0xFB97,
+ 0x9EA1, 0xFB98,
+ 0x9EA2, 0xFB99,
+ 0x9EA3, 0xFB9A,
+ 0x9EA4, 0xFB9B,
+ 0x9EA5, 0xFB9C,
+ 0x9EA7, 0xFB9D,
+ 0x9EA8, 0xFB9E,
+ 0x9EA9, 0xFB9F,
+ 0x9EAA, 0xFBA0,
+ 0x9EAB, 0xFC40,
+ 0x9EAC, 0xFC41,
+ 0x9EAD, 0xFC42,
+ 0x9EAE, 0xFC43,
+ 0x9EAF, 0xFC44,
+ 0x9EB0, 0xFC45,
+ 0x9EB1, 0xFC46,
+ 0x9EB2, 0xFC47,
+ 0x9EB3, 0xFC48,
+ 0x9EB5, 0xFC49,
+ 0x9EB6, 0xFC4A,
+ 0x9EB7, 0xFC4B,
+ 0x9EB9, 0xFC4C,
+ 0x9EBA, 0xFC4D,
+ 0x9EBC, 0xFC4E,
+ 0x9EBF, 0xFC4F,
+ 0x9EC0, 0xFC50,
+ 0x9EC1, 0xFC51,
+ 0x9EC2, 0xFC52,
+ 0x9EC3, 0xFC53,
+ 0x9EC5, 0xFC54,
+ 0x9EC6, 0xFC55,
+ 0x9EC7, 0xFC56,
+ 0x9EC8, 0xFC57,
+ 0x9ECA, 0xFC58,
+ 0x9ECB, 0xFC59,
+ 0x9ECC, 0xFC5A,
+ 0x9ED0, 0xFC5B,
+ 0x9ED2, 0xFC5C,
+ 0x9ED3, 0xFC5D,
+ 0x9ED5, 0xFC5E,
+ 0x9ED6, 0xFC5F,
+ 0x9ED7, 0xFC60,
+ 0x9ED9, 0xFC61,
+ 0x9EDA, 0xFC62,
+ 0x9EDE, 0xFC63,
+ 0x9EE1, 0xFC64,
+ 0x9EE3, 0xFC65,
+ 0x9EE4, 0xFC66,
+ 0x9EE6, 0xFC67,
+ 0x9EE8, 0xFC68,
+ 0x9EEB, 0xFC69,
+ 0x9EEC, 0xFC6A,
+ 0x9EED, 0xFC6B,
+ 0x9EEE, 0xFC6C,
+ 0x9EF0, 0xFC6D,
+ 0x9EF1, 0xFC6E,
+ 0x9EF2, 0xFC6F,
+ 0x9EF3, 0xFC70,
+ 0x9EF4, 0xFC71,
+ 0x9EF5, 0xFC72,
+ 0x9EF6, 0xFC73,
+ 0x9EF7, 0xFC74,
+ 0x9EF8, 0xFC75,
+ 0x9EFA, 0xFC76,
+ 0x9EFD, 0xFC77,
+ 0x9EFF, 0xFC78,
+ 0x9F00, 0xFC79,
+ 0x9F01, 0xFC7A,
+ 0x9F02, 0xFC7B,
+ 0x9F03, 0xFC7C,
+ 0x9F04, 0xFC7D,
+ 0x9F05, 0xFC7E,
+ 0x9F06, 0xFC80,
+ 0x9F07, 0xFC81,
+ 0x9F08, 0xFC82,
+ 0x9F09, 0xFC83,
+ 0x9F0A, 0xFC84,
+ 0x9F0C, 0xFC85,
+ 0x9F0F, 0xFC86,
+ 0x9F11, 0xFC87,
+ 0x9F12, 0xFC88,
+ 0x9F14, 0xFC89,
+ 0x9F15, 0xFC8A,
+ 0x9F16, 0xFC8B,
+ 0x9F18, 0xFC8C,
+ 0x9F1A, 0xFC8D,
+ 0x9F1B, 0xFC8E,
+ 0x9F1C, 0xFC8F,
+ 0x9F1D, 0xFC90,
+ 0x9F1E, 0xFC91,
+ 0x9F1F, 0xFC92,
+ 0x9F21, 0xFC93,
+ 0x9F23, 0xFC94,
+ 0x9F24, 0xFC95,
+ 0x9F25, 0xFC96,
+ 0x9F26, 0xFC97,
+ 0x9F27, 0xFC98,
+ 0x9F28, 0xFC99,
+ 0x9F29, 0xFC9A,
+ 0x9F2A, 0xFC9B,
+ 0x9F2B, 0xFC9C,
+ 0x9F2D, 0xFC9D,
+ 0x9F2E, 0xFC9E,
+ 0x9F30, 0xFC9F,
+ 0x9F31, 0xFCA0,
+ 0x9F32, 0xFD40,
+ 0x9F33, 0xFD41,
+ 0x9F34, 0xFD42,
+ 0x9F35, 0xFD43,
+ 0x9F36, 0xFD44,
+ 0x9F38, 0xFD45,
+ 0x9F3A, 0xFD46,
+ 0x9F3C, 0xFD47,
+ 0x9F3F, 0xFD48,
+ 0x9F40, 0xFD49,
+ 0x9F41, 0xFD4A,
+ 0x9F42, 0xFD4B,
+ 0x9F43, 0xFD4C,
+ 0x9F45, 0xFD4D,
+ 0x9F46, 0xFD4E,
+ 0x9F47, 0xFD4F,
+ 0x9F48, 0xFD50,
+ 0x9F49, 0xFD51,
+ 0x9F4A, 0xFD52,
+ 0x9F4B, 0xFD53,
+ 0x9F4C, 0xFD54,
+ 0x9F4D, 0xFD55,
+ 0x9F4E, 0xFD56,
+ 0x9F4F, 0xFD57,
+ 0x9F52, 0xFD58,
+ 0x9F53, 0xFD59,
+ 0x9F54, 0xFD5A,
+ 0x9F55, 0xFD5B,
+ 0x9F56, 0xFD5C,
+ 0x9F57, 0xFD5D,
+ 0x9F58, 0xFD5E,
+ 0x9F59, 0xFD5F,
+ 0x9F5A, 0xFD60,
+ 0x9F5B, 0xFD61,
+ 0x9F5C, 0xFD62,
+ 0x9F5D, 0xFD63,
+ 0x9F5E, 0xFD64,
+ 0x9F5F, 0xFD65,
+ 0x9F60, 0xFD66,
+ 0x9F61, 0xFD67,
+ 0x9F62, 0xFD68,
+ 0x9F63, 0xFD69,
+ 0x9F64, 0xFD6A,
+ 0x9F65, 0xFD6B,
+ 0x9F66, 0xFD6C,
+ 0x9F67, 0xFD6D,
+ 0x9F68, 0xFD6E,
+ 0x9F69, 0xFD6F,
+ 0x9F6A, 0xFD70,
+ 0x9F6B, 0xFD71,
+ 0x9F6C, 0xFD72,
+ 0x9F6D, 0xFD73,
+ 0x9F6E, 0xFD74,
+ 0x9F6F, 0xFD75,
+ 0x9F70, 0xFD76,
+ 0x9F71, 0xFD77,
+ 0x9F72, 0xFD78,
+ 0x9F73, 0xFD79,
+ 0x9F74, 0xFD7A,
+ 0x9F75, 0xFD7B,
+ 0x9F76, 0xFD7C,
+ 0x9F77, 0xFD7D,
+ 0x9F78, 0xFD7E,
+ 0x9F79, 0xFD80,
+ 0x9F7A, 0xFD81,
+ 0x9F7B, 0xFD82,
+ 0x9F7C, 0xFD83,
+ 0x9F7D, 0xFD84,
+ 0x9F7E, 0xFD85,
+ 0x9F81, 0xFD86,
+ 0x9F82, 0xFD87,
+ 0x9F8D, 0xFD88,
+ 0x9F8E, 0xFD89,
+ 0x9F8F, 0xFD8A,
+ 0x9F90, 0xFD8B,
+ 0x9F91, 0xFD8C,
+ 0x9F92, 0xFD8D,
+ 0x9F93, 0xFD8E,
+ 0x9F94, 0xFD8F,
+ 0x9F95, 0xFD90,
+ 0x9F96, 0xFD91,
+ 0x9F97, 0xFD92,
+ 0x9F98, 0xFD93,
+ 0x9F9C, 0xFD94,
+ 0x9F9D, 0xFD95,
+ 0x9F9E, 0xFD96,
+ 0x9FA1, 0xFD97,
+ 0x9FA2, 0xFD98,
+ 0x9FA3, 0xFD99,
+ 0x9FA4, 0xFD9A,
+ 0x9FA5, 0xFD9B,
+ 0xE000, 0xAAA1,
+ 0xE001, 0xAAA2,
+ 0xE002, 0xAAA3,
+ 0xE003, 0xAAA4,
+ 0xE004, 0xAAA5,
+ 0xE005, 0xAAA6,
+ 0xE006, 0xAAA7,
+ 0xE007, 0xAAA8,
+ 0xE008, 0xAAA9,
+ 0xE009, 0xAAAA,
+ 0xE00A, 0xAAAB,
+ 0xE00B, 0xAAAC,
+ 0xE00C, 0xAAAD,
+ 0xE00D, 0xAAAE,
+ 0xE00E, 0xAAAF,
+ 0xE00F, 0xAAB0,
+ 0xE010, 0xAAB1,
+ 0xE011, 0xAAB2,
+ 0xE012, 0xAAB3,
+ 0xE013, 0xAAB4,
+ 0xE014, 0xAAB5,
+ 0xE015, 0xAAB6,
+ 0xE016, 0xAAB7,
+ 0xE017, 0xAAB8,
+ 0xE018, 0xAAB9,
+ 0xE019, 0xAABA,
+ 0xE01A, 0xAABB,
+ 0xE01B, 0xAABC,
+ 0xE01C, 0xAABD,
+ 0xE01D, 0xAABE,
+ 0xE01E, 0xAABF,
+ 0xE01F, 0xAAC0,
+ 0xE020, 0xAAC1,
+ 0xE021, 0xAAC2,
+ 0xE022, 0xAAC3,
+ 0xE023, 0xAAC4,
+ 0xE024, 0xAAC5,
+ 0xE025, 0xAAC6,
+ 0xE026, 0xAAC7,
+ 0xE027, 0xAAC8,
+ 0xE028, 0xAAC9,
+ 0xE029, 0xAACA,
+ 0xE02A, 0xAACB,
+ 0xE02B, 0xAACC,
+ 0xE02C, 0xAACD,
+ 0xE02D, 0xAACE,
+ 0xE02E, 0xAACF,
+ 0xE02F, 0xAAD0,
+ 0xE030, 0xAAD1,
+ 0xE031, 0xAAD2,
+ 0xE032, 0xAAD3,
+ 0xE033, 0xAAD4,
+ 0xE034, 0xAAD5,
+ 0xE035, 0xAAD6,
+ 0xE036, 0xAAD7,
+ 0xE037, 0xAAD8,
+ 0xE038, 0xAAD9,
+ 0xE039, 0xAADA,
+ 0xE03A, 0xAADB,
+ 0xE03B, 0xAADC,
+ 0xE03C, 0xAADD,
+ 0xE03D, 0xAADE,
+ 0xE03E, 0xAADF,
+ 0xE03F, 0xAAE0,
+ 0xE040, 0xAAE1,
+ 0xE041, 0xAAE2,
+ 0xE042, 0xAAE3,
+ 0xE043, 0xAAE4,
+ 0xE044, 0xAAE5,
+ 0xE045, 0xAAE6,
+ 0xE046, 0xAAE7,
+ 0xE047, 0xAAE8,
+ 0xE048, 0xAAE9,
+ 0xE049, 0xAAEA,
+ 0xE04A, 0xAAEB,
+ 0xE04B, 0xAAEC,
+ 0xE04C, 0xAAED,
+ 0xE04D, 0xAAEE,
+ 0xE04E, 0xAAEF,
+ 0xE04F, 0xAAF0,
+ 0xE050, 0xAAF1,
+ 0xE051, 0xAAF2,
+ 0xE052, 0xAAF3,
+ 0xE053, 0xAAF4,
+ 0xE054, 0xAAF5,
+ 0xE055, 0xAAF6,
+ 0xE056, 0xAAF7,
+ 0xE057, 0xAAF8,
+ 0xE058, 0xAAF9,
+ 0xE059, 0xAAFA,
+ 0xE05A, 0xAAFB,
+ 0xE05B, 0xAAFC,
+ 0xE05C, 0xAAFD,
+ 0xE05D, 0xAAFE,
+ 0xE05E, 0xABA1,
+ 0xE05F, 0xABA2,
+ 0xE060, 0xABA3,
+ 0xE061, 0xABA4,
+ 0xE062, 0xABA5,
+ 0xE063, 0xABA6,
+ 0xE064, 0xABA7,
+ 0xE065, 0xABA8,
+ 0xE066, 0xABA9,
+ 0xE067, 0xABAA,
+ 0xE068, 0xABAB,
+ 0xE069, 0xABAC,
+ 0xE06A, 0xABAD,
+ 0xE06B, 0xABAE,
+ 0xE06C, 0xABAF,
+ 0xE06D, 0xABB0,
+ 0xE06E, 0xABB1,
+ 0xE06F, 0xABB2,
+ 0xE070, 0xABB3,
+ 0xE071, 0xABB4,
+ 0xE072, 0xABB5,
+ 0xE073, 0xABB6,
+ 0xE074, 0xABB7,
+ 0xE075, 0xABB8,
+ 0xE076, 0xABB9,
+ 0xE077, 0xABBA,
+ 0xE078, 0xABBB,
+ 0xE079, 0xABBC,
+ 0xE07A, 0xABBD,
+ 0xE07B, 0xABBE,
+ 0xE07C, 0xABBF,
+ 0xE07D, 0xABC0,
+ 0xE07E, 0xABC1,
+ 0xE07F, 0xABC2,
+ 0xE080, 0xABC3,
+ 0xE081, 0xABC4,
+ 0xE082, 0xABC5,
+ 0xE083, 0xABC6,
+ 0xE084, 0xABC7,
+ 0xE085, 0xABC8,
+ 0xE086, 0xABC9,
+ 0xE087, 0xABCA,
+ 0xE088, 0xABCB,
+ 0xE089, 0xABCC,
+ 0xE08A, 0xABCD,
+ 0xE08B, 0xABCE,
+ 0xE08C, 0xABCF,
+ 0xE08D, 0xABD0,
+ 0xE08E, 0xABD1,
+ 0xE08F, 0xABD2,
+ 0xE090, 0xABD3,
+ 0xE091, 0xABD4,
+ 0xE092, 0xABD5,
+ 0xE093, 0xABD6,
+ 0xE094, 0xABD7,
+ 0xE095, 0xABD8,
+ 0xE096, 0xABD9,
+ 0xE097, 0xABDA,
+ 0xE098, 0xABDB,
+ 0xE099, 0xABDC,
+ 0xE09A, 0xABDD,
+ 0xE09B, 0xABDE,
+ 0xE09C, 0xABDF,
+ 0xE09D, 0xABE0,
+ 0xE09E, 0xABE1,
+ 0xE09F, 0xABE2,
+ 0xE0A0, 0xABE3,
+ 0xE0A1, 0xABE4,
+ 0xE0A2, 0xABE5,
+ 0xE0A3, 0xABE6,
+ 0xE0A4, 0xABE7,
+ 0xE0A5, 0xABE8,
+ 0xE0A6, 0xABE9,
+ 0xE0A7, 0xABEA,
+ 0xE0A8, 0xABEB,
+ 0xE0A9, 0xABEC,
+ 0xE0AA, 0xABED,
+ 0xE0AB, 0xABEE,
+ 0xE0AC, 0xABEF,
+ 0xE0AD, 0xABF0,
+ 0xE0AE, 0xABF1,
+ 0xE0AF, 0xABF2,
+ 0xE0B0, 0xABF3,
+ 0xE0B1, 0xABF4,
+ 0xE0B2, 0xABF5,
+ 0xE0B3, 0xABF6,
+ 0xE0B4, 0xABF7,
+ 0xE0B5, 0xABF8,
+ 0xE0B6, 0xABF9,
+ 0xE0B7, 0xABFA,
+ 0xE0B8, 0xABFB,
+ 0xE0B9, 0xABFC,
+ 0xE0BA, 0xABFD,
+ 0xE0BB, 0xABFE,
+ 0xE0BC, 0xACA1,
+ 0xE0BD, 0xACA2,
+ 0xE0BE, 0xACA3,
+ 0xE0BF, 0xACA4,
+ 0xE0C0, 0xACA5,
+ 0xE0C1, 0xACA6,
+ 0xE0C2, 0xACA7,
+ 0xE0C3, 0xACA8,
+ 0xE0C4, 0xACA9,
+ 0xE0C5, 0xACAA,
+ 0xE0C6, 0xACAB,
+ 0xE0C7, 0xACAC,
+ 0xE0C8, 0xACAD,
+ 0xE0C9, 0xACAE,
+ 0xE0CA, 0xACAF,
+ 0xE0CB, 0xACB0,
+ 0xE0CC, 0xACB1,
+ 0xE0CD, 0xACB2,
+ 0xE0CE, 0xACB3,
+ 0xE0CF, 0xACB4,
+ 0xE0D0, 0xACB5,
+ 0xE0D1, 0xACB6,
+ 0xE0D2, 0xACB7,
+ 0xE0D3, 0xACB8,
+ 0xE0D4, 0xACB9,
+ 0xE0D5, 0xACBA,
+ 0xE0D6, 0xACBB,
+ 0xE0D7, 0xACBC,
+ 0xE0D8, 0xACBD,
+ 0xE0D9, 0xACBE,
+ 0xE0DA, 0xACBF,
+ 0xE0DB, 0xACC0,
+ 0xE0DC, 0xACC1,
+ 0xE0DD, 0xACC2,
+ 0xE0DE, 0xACC3,
+ 0xE0DF, 0xACC4,
+ 0xE0E0, 0xACC5,
+ 0xE0E1, 0xACC6,
+ 0xE0E2, 0xACC7,
+ 0xE0E3, 0xACC8,
+ 0xE0E4, 0xACC9,
+ 0xE0E5, 0xACCA,
+ 0xE0E6, 0xACCB,
+ 0xE0E7, 0xACCC,
+ 0xE0E8, 0xACCD,
+ 0xE0E9, 0xACCE,
+ 0xE0EA, 0xACCF,
+ 0xE0EB, 0xACD0,
+ 0xE0EC, 0xACD1,
+ 0xE0ED, 0xACD2,
+ 0xE0EE, 0xACD3,
+ 0xE0EF, 0xACD4,
+ 0xE0F0, 0xACD5,
+ 0xE0F1, 0xACD6,
+ 0xE0F2, 0xACD7,
+ 0xE0F3, 0xACD8,
+ 0xE0F4, 0xACD9,
+ 0xE0F5, 0xACDA,
+ 0xE0F6, 0xACDB,
+ 0xE0F7, 0xACDC,
+ 0xE0F8, 0xACDD,
+ 0xE0F9, 0xACDE,
+ 0xE0FA, 0xACDF,
+ 0xE0FB, 0xACE0,
+ 0xE0FC, 0xACE1,
+ 0xE0FD, 0xACE2,
+ 0xE0FE, 0xACE3,
+ 0xE0FF, 0xACE4,
+ 0xE100, 0xACE5,
+ 0xE101, 0xACE6,
+ 0xE102, 0xACE7,
+ 0xE103, 0xACE8,
+ 0xE104, 0xACE9,
+ 0xE105, 0xACEA,
+ 0xE106, 0xACEB,
+ 0xE107, 0xACEC,
+ 0xE108, 0xACED,
+ 0xE109, 0xACEE,
+ 0xE10A, 0xACEF,
+ 0xE10B, 0xACF0,
+ 0xE10C, 0xACF1,
+ 0xE10D, 0xACF2,
+ 0xE10E, 0xACF3,
+ 0xE10F, 0xACF4,
+ 0xE110, 0xACF5,
+ 0xE111, 0xACF6,
+ 0xE112, 0xACF7,
+ 0xE113, 0xACF8,
+ 0xE114, 0xACF9,
+ 0xE115, 0xACFA,
+ 0xE116, 0xACFB,
+ 0xE117, 0xACFC,
+ 0xE118, 0xACFD,
+ 0xE119, 0xACFE,
+ 0xE11A, 0xADA1,
+ 0xE11B, 0xADA2,
+ 0xE11C, 0xADA3,
+ 0xE11D, 0xADA4,
+ 0xE11E, 0xADA5,
+ 0xE11F, 0xADA6,
+ 0xE120, 0xADA7,
+ 0xE121, 0xADA8,
+ 0xE122, 0xADA9,
+ 0xE123, 0xADAA,
+ 0xE124, 0xADAB,
+ 0xE125, 0xADAC,
+ 0xE126, 0xADAD,
+ 0xE127, 0xADAE,
+ 0xE128, 0xADAF,
+ 0xE129, 0xADB0,
+ 0xE12A, 0xADB1,
+ 0xE12B, 0xADB2,
+ 0xE12C, 0xADB3,
+ 0xE12D, 0xADB4,
+ 0xE12E, 0xADB5,
+ 0xE12F, 0xADB6,
+ 0xE130, 0xADB7,
+ 0xE131, 0xADB8,
+ 0xE132, 0xADB9,
+ 0xE133, 0xADBA,
+ 0xE134, 0xADBB,
+ 0xE135, 0xADBC,
+ 0xE136, 0xADBD,
+ 0xE137, 0xADBE,
+ 0xE138, 0xADBF,
+ 0xE139, 0xADC0,
+ 0xE13A, 0xADC1,
+ 0xE13B, 0xADC2,
+ 0xE13C, 0xADC3,
+ 0xE13D, 0xADC4,
+ 0xE13E, 0xADC5,
+ 0xE13F, 0xADC6,
+ 0xE140, 0xADC7,
+ 0xE141, 0xADC8,
+ 0xE142, 0xADC9,
+ 0xE143, 0xADCA,
+ 0xE144, 0xADCB,
+ 0xE145, 0xADCC,
+ 0xE146, 0xADCD,
+ 0xE147, 0xADCE,
+ 0xE148, 0xADCF,
+ 0xE149, 0xADD0,
+ 0xE14A, 0xADD1,
+ 0xE14B, 0xADD2,
+ 0xE14C, 0xADD3,
+ 0xE14D, 0xADD4,
+ 0xE14E, 0xADD5,
+ 0xE14F, 0xADD6,
+ 0xE150, 0xADD7,
+ 0xE151, 0xADD8,
+ 0xE152, 0xADD9,
+ 0xE153, 0xADDA,
+ 0xE154, 0xADDB,
+ 0xE155, 0xADDC,
+ 0xE156, 0xADDD,
+ 0xE157, 0xADDE,
+ 0xE158, 0xADDF,
+ 0xE159, 0xADE0,
+ 0xE15A, 0xADE1,
+ 0xE15B, 0xADE2,
+ 0xE15C, 0xADE3,
+ 0xE15D, 0xADE4,
+ 0xE15E, 0xADE5,
+ 0xE15F, 0xADE6,
+ 0xE160, 0xADE7,
+ 0xE161, 0xADE8,
+ 0xE162, 0xADE9,
+ 0xE163, 0xADEA,
+ 0xE164, 0xADEB,
+ 0xE165, 0xADEC,
+ 0xE166, 0xADED,
+ 0xE167, 0xADEE,
+ 0xE168, 0xADEF,
+ 0xE169, 0xADF0,
+ 0xE16A, 0xADF1,
+ 0xE16B, 0xADF2,
+ 0xE16C, 0xADF3,
+ 0xE16D, 0xADF4,
+ 0xE16E, 0xADF5,
+ 0xE16F, 0xADF6,
+ 0xE170, 0xADF7,
+ 0xE171, 0xADF8,
+ 0xE172, 0xADF9,
+ 0xE173, 0xADFA,
+ 0xE174, 0xADFB,
+ 0xE175, 0xADFC,
+ 0xE176, 0xADFD,
+ 0xE177, 0xADFE,
+ 0xE178, 0xAEA1,
+ 0xE179, 0xAEA2,
+ 0xE17A, 0xAEA3,
+ 0xE17B, 0xAEA4,
+ 0xE17C, 0xAEA5,
+ 0xE17D, 0xAEA6,
+ 0xE17E, 0xAEA7,
+ 0xE17F, 0xAEA8,
+ 0xE180, 0xAEA9,
+ 0xE181, 0xAEAA,
+ 0xE182, 0xAEAB,
+ 0xE183, 0xAEAC,
+ 0xE184, 0xAEAD,
+ 0xE185, 0xAEAE,
+ 0xE186, 0xAEAF,
+ 0xE187, 0xAEB0,
+ 0xE188, 0xAEB1,
+ 0xE189, 0xAEB2,
+ 0xE18A, 0xAEB3,
+ 0xE18B, 0xAEB4,
+ 0xE18C, 0xAEB5,
+ 0xE18D, 0xAEB6,
+ 0xE18E, 0xAEB7,
+ 0xE18F, 0xAEB8,
+ 0xE190, 0xAEB9,
+ 0xE191, 0xAEBA,
+ 0xE192, 0xAEBB,
+ 0xE193, 0xAEBC,
+ 0xE194, 0xAEBD,
+ 0xE195, 0xAEBE,
+ 0xE196, 0xAEBF,
+ 0xE197, 0xAEC0,
+ 0xE198, 0xAEC1,
+ 0xE199, 0xAEC2,
+ 0xE19A, 0xAEC3,
+ 0xE19B, 0xAEC4,
+ 0xE19C, 0xAEC5,
+ 0xE19D, 0xAEC6,
+ 0xE19E, 0xAEC7,
+ 0xE19F, 0xAEC8,
+ 0xE1A0, 0xAEC9,
+ 0xE1A1, 0xAECA,
+ 0xE1A2, 0xAECB,
+ 0xE1A3, 0xAECC,
+ 0xE1A4, 0xAECD,
+ 0xE1A5, 0xAECE,
+ 0xE1A6, 0xAECF,
+ 0xE1A7, 0xAED0,
+ 0xE1A8, 0xAED1,
+ 0xE1A9, 0xAED2,
+ 0xE1AA, 0xAED3,
+ 0xE1AB, 0xAED4,
+ 0xE1AC, 0xAED5,
+ 0xE1AD, 0xAED6,
+ 0xE1AE, 0xAED7,
+ 0xE1AF, 0xAED8,
+ 0xE1B0, 0xAED9,
+ 0xE1B1, 0xAEDA,
+ 0xE1B2, 0xAEDB,
+ 0xE1B3, 0xAEDC,
+ 0xE1B4, 0xAEDD,
+ 0xE1B5, 0xAEDE,
+ 0xE1B6, 0xAEDF,
+ 0xE1B7, 0xAEE0,
+ 0xE1B8, 0xAEE1,
+ 0xE1B9, 0xAEE2,
+ 0xE1BA, 0xAEE3,
+ 0xE1BB, 0xAEE4,
+ 0xE1BC, 0xAEE5,
+ 0xE1BD, 0xAEE6,
+ 0xE1BE, 0xAEE7,
+ 0xE1BF, 0xAEE8,
+ 0xE1C0, 0xAEE9,
+ 0xE1C1, 0xAEEA,
+ 0xE1C2, 0xAEEB,
+ 0xE1C3, 0xAEEC,
+ 0xE1C4, 0xAEED,
+ 0xE1C5, 0xAEEE,
+ 0xE1C6, 0xAEEF,
+ 0xE1C7, 0xAEF0,
+ 0xE1C8, 0xAEF1,
+ 0xE1C9, 0xAEF2,
+ 0xE1CA, 0xAEF3,
+ 0xE1CB, 0xAEF4,
+ 0xE1CC, 0xAEF5,
+ 0xE1CD, 0xAEF6,
+ 0xE1CE, 0xAEF7,
+ 0xE1CF, 0xAEF8,
+ 0xE1D0, 0xAEF9,
+ 0xE1D1, 0xAEFA,
+ 0xE1D2, 0xAEFB,
+ 0xE1D3, 0xAEFC,
+ 0xE1D4, 0xAEFD,
+ 0xE1D5, 0xAEFE,
+ 0xE1D6, 0xAFA1,
+ 0xE1D7, 0xAFA2,
+ 0xE1D8, 0xAFA3,
+ 0xE1D9, 0xAFA4,
+ 0xE1DA, 0xAFA5,
+ 0xE1DB, 0xAFA6,
+ 0xE1DC, 0xAFA7,
+ 0xE1DD, 0xAFA8,
+ 0xE1DE, 0xAFA9,
+ 0xE1DF, 0xAFAA,
+ 0xE1E0, 0xAFAB,
+ 0xE1E1, 0xAFAC,
+ 0xE1E2, 0xAFAD,
+ 0xE1E3, 0xAFAE,
+ 0xE1E4, 0xAFAF,
+ 0xE1E5, 0xAFB0,
+ 0xE1E6, 0xAFB1,
+ 0xE1E7, 0xAFB2,
+ 0xE1E8, 0xAFB3,
+ 0xE1E9, 0xAFB4,
+ 0xE1EA, 0xAFB5,
+ 0xE1EB, 0xAFB6,
+ 0xE1EC, 0xAFB7,
+ 0xE1ED, 0xAFB8,
+ 0xE1EE, 0xAFB9,
+ 0xE1EF, 0xAFBA,
+ 0xE1F0, 0xAFBB,
+ 0xE1F1, 0xAFBC,
+ 0xE1F2, 0xAFBD,
+ 0xE1F3, 0xAFBE,
+ 0xE1F4, 0xAFBF,
+ 0xE1F5, 0xAFC0,
+ 0xE1F6, 0xAFC1,
+ 0xE1F7, 0xAFC2,
+ 0xE1F8, 0xAFC3,
+ 0xE1F9, 0xAFC4,
+ 0xE1FA, 0xAFC5,
+ 0xE1FB, 0xAFC6,
+ 0xE1FC, 0xAFC7,
+ 0xE1FD, 0xAFC8,
+ 0xE1FE, 0xAFC9,
+ 0xE1FF, 0xAFCA,
+ 0xE200, 0xAFCB,
+ 0xE201, 0xAFCC,
+ 0xE202, 0xAFCD,
+ 0xE203, 0xAFCE,
+ 0xE204, 0xAFCF,
+ 0xE205, 0xAFD0,
+ 0xE206, 0xAFD1,
+ 0xE207, 0xAFD2,
+ 0xE208, 0xAFD3,
+ 0xE209, 0xAFD4,
+ 0xE20A, 0xAFD5,
+ 0xE20B, 0xAFD6,
+ 0xE20C, 0xAFD7,
+ 0xE20D, 0xAFD8,
+ 0xE20E, 0xAFD9,
+ 0xE20F, 0xAFDA,
+ 0xE210, 0xAFDB,
+ 0xE211, 0xAFDC,
+ 0xE212, 0xAFDD,
+ 0xE213, 0xAFDE,
+ 0xE214, 0xAFDF,
+ 0xE215, 0xAFE0,
+ 0xE216, 0xAFE1,
+ 0xE217, 0xAFE2,
+ 0xE218, 0xAFE3,
+ 0xE219, 0xAFE4,
+ 0xE21A, 0xAFE5,
+ 0xE21B, 0xAFE6,
+ 0xE21C, 0xAFE7,
+ 0xE21D, 0xAFE8,
+ 0xE21E, 0xAFE9,
+ 0xE21F, 0xAFEA,
+ 0xE220, 0xAFEB,
+ 0xE221, 0xAFEC,
+ 0xE222, 0xAFED,
+ 0xE223, 0xAFEE,
+ 0xE224, 0xAFEF,
+ 0xE225, 0xAFF0,
+ 0xE226, 0xAFF1,
+ 0xE227, 0xAFF2,
+ 0xE228, 0xAFF3,
+ 0xE229, 0xAFF4,
+ 0xE22A, 0xAFF5,
+ 0xE22B, 0xAFF6,
+ 0xE22C, 0xAFF7,
+ 0xE22D, 0xAFF8,
+ 0xE22E, 0xAFF9,
+ 0xE22F, 0xAFFA,
+ 0xE230, 0xAFFB,
+ 0xE231, 0xAFFC,
+ 0xE232, 0xAFFD,
+ 0xE233, 0xAFFE,
+ 0xE234, 0xF8A1,
+ 0xE235, 0xF8A2,
+ 0xE236, 0xF8A3,
+ 0xE237, 0xF8A4,
+ 0xE238, 0xF8A5,
+ 0xE239, 0xF8A6,
+ 0xE23A, 0xF8A7,
+ 0xE23B, 0xF8A8,
+ 0xE23C, 0xF8A9,
+ 0xE23D, 0xF8AA,
+ 0xE23E, 0xF8AB,
+ 0xE23F, 0xF8AC,
+ 0xE240, 0xF8AD,
+ 0xE241, 0xF8AE,
+ 0xE242, 0xF8AF,
+ 0xE243, 0xF8B0,
+ 0xE244, 0xF8B1,
+ 0xE245, 0xF8B2,
+ 0xE246, 0xF8B3,
+ 0xE247, 0xF8B4,
+ 0xE248, 0xF8B5,
+ 0xE249, 0xF8B6,
+ 0xE24A, 0xF8B7,
+ 0xE24B, 0xF8B8,
+ 0xE24C, 0xF8B9,
+ 0xE24D, 0xF8BA,
+ 0xE24E, 0xF8BB,
+ 0xE24F, 0xF8BC,
+ 0xE250, 0xF8BD,
+ 0xE251, 0xF8BE,
+ 0xE252, 0xF8BF,
+ 0xE253, 0xF8C0,
+ 0xE254, 0xF8C1,
+ 0xE255, 0xF8C2,
+ 0xE256, 0xF8C3,
+ 0xE257, 0xF8C4,
+ 0xE258, 0xF8C5,
+ 0xE259, 0xF8C6,
+ 0xE25A, 0xF8C7,
+ 0xE25B, 0xF8C8,
+ 0xE25C, 0xF8C9,
+ 0xE25D, 0xF8CA,
+ 0xE25E, 0xF8CB,
+ 0xE25F, 0xF8CC,
+ 0xE260, 0xF8CD,
+ 0xE261, 0xF8CE,
+ 0xE262, 0xF8CF,
+ 0xE263, 0xF8D0,
+ 0xE264, 0xF8D1,
+ 0xE265, 0xF8D2,
+ 0xE266, 0xF8D3,
+ 0xE267, 0xF8D4,
+ 0xE268, 0xF8D5,
+ 0xE269, 0xF8D6,
+ 0xE26A, 0xF8D7,
+ 0xE26B, 0xF8D8,
+ 0xE26C, 0xF8D9,
+ 0xE26D, 0xF8DA,
+ 0xE26E, 0xF8DB,
+ 0xE26F, 0xF8DC,
+ 0xE270, 0xF8DD,
+ 0xE271, 0xF8DE,
+ 0xE272, 0xF8DF,
+ 0xE273, 0xF8E0,
+ 0xE274, 0xF8E1,
+ 0xE275, 0xF8E2,
+ 0xE276, 0xF8E3,
+ 0xE277, 0xF8E4,
+ 0xE278, 0xF8E5,
+ 0xE279, 0xF8E6,
+ 0xE27A, 0xF8E7,
+ 0xE27B, 0xF8E8,
+ 0xE27C, 0xF8E9,
+ 0xE27D, 0xF8EA,
+ 0xE27E, 0xF8EB,
+ 0xE27F, 0xF8EC,
+ 0xE280, 0xF8ED,
+ 0xE281, 0xF8EE,
+ 0xE282, 0xF8EF,
+ 0xE283, 0xF8F0,
+ 0xE284, 0xF8F1,
+ 0xE285, 0xF8F2,
+ 0xE286, 0xF8F3,
+ 0xE287, 0xF8F4,
+ 0xE288, 0xF8F5,
+ 0xE289, 0xF8F6,
+ 0xE28A, 0xF8F7,
+ 0xE28B, 0xF8F8,
+ 0xE28C, 0xF8F9,
+ 0xE28D, 0xF8FA,
+ 0xE28E, 0xF8FB,
+ 0xE28F, 0xF8FC,
+ 0xE290, 0xF8FD,
+ 0xE291, 0xF8FE,
+ 0xE292, 0xF9A1,
+ 0xE293, 0xF9A2,
+ 0xE294, 0xF9A3,
+ 0xE295, 0xF9A4,
+ 0xE296, 0xF9A5,
+ 0xE297, 0xF9A6,
+ 0xE298, 0xF9A7,
+ 0xE299, 0xF9A8,
+ 0xE29A, 0xF9A9,
+ 0xE29B, 0xF9AA,
+ 0xE29C, 0xF9AB,
+ 0xE29D, 0xF9AC,
+ 0xE29E, 0xF9AD,
+ 0xE29F, 0xF9AE,
+ 0xE2A0, 0xF9AF,
+ 0xE2A1, 0xF9B0,
+ 0xE2A2, 0xF9B1,
+ 0xE2A3, 0xF9B2,
+ 0xE2A4, 0xF9B3,
+ 0xE2A5, 0xF9B4,
+ 0xE2A6, 0xF9B5,
+ 0xE2A7, 0xF9B6,
+ 0xE2A8, 0xF9B7,
+ 0xE2A9, 0xF9B8,
+ 0xE2AA, 0xF9B9,
+ 0xE2AB, 0xF9BA,
+ 0xE2AC, 0xF9BB,
+ 0xE2AD, 0xF9BC,
+ 0xE2AE, 0xF9BD,
+ 0xE2AF, 0xF9BE,
+ 0xE2B0, 0xF9BF,
+ 0xE2B1, 0xF9C0,
+ 0xE2B2, 0xF9C1,
+ 0xE2B3, 0xF9C2,
+ 0xE2B4, 0xF9C3,
+ 0xE2B5, 0xF9C4,
+ 0xE2B6, 0xF9C5,
+ 0xE2B7, 0xF9C6,
+ 0xE2B8, 0xF9C7,
+ 0xE2B9, 0xF9C8,
+ 0xE2BA, 0xF9C9,
+ 0xE2BB, 0xF9CA,
+ 0xE2BC, 0xF9CB,
+ 0xE2BD, 0xF9CC,
+ 0xE2BE, 0xF9CD,
+ 0xE2BF, 0xF9CE,
+ 0xE2C0, 0xF9CF,
+ 0xE2C1, 0xF9D0,
+ 0xE2C2, 0xF9D1,
+ 0xE2C3, 0xF9D2,
+ 0xE2C4, 0xF9D3,
+ 0xE2C5, 0xF9D4,
+ 0xE2C6, 0xF9D5,
+ 0xE2C7, 0xF9D6,
+ 0xE2C8, 0xF9D7,
+ 0xE2C9, 0xF9D8,
+ 0xE2CA, 0xF9D9,
+ 0xE2CB, 0xF9DA,
+ 0xE2CC, 0xF9DB,
+ 0xE2CD, 0xF9DC,
+ 0xE2CE, 0xF9DD,
+ 0xE2CF, 0xF9DE,
+ 0xE2D0, 0xF9DF,
+ 0xE2D1, 0xF9E0,
+ 0xE2D2, 0xF9E1,
+ 0xE2D3, 0xF9E2,
+ 0xE2D4, 0xF9E3,
+ 0xE2D5, 0xF9E4,
+ 0xE2D6, 0xF9E5,
+ 0xE2D7, 0xF9E6,
+ 0xE2D8, 0xF9E7,
+ 0xE2D9, 0xF9E8,
+ 0xE2DA, 0xF9E9,
+ 0xE2DB, 0xF9EA,
+ 0xE2DC, 0xF9EB,
+ 0xE2DD, 0xF9EC,
+ 0xE2DE, 0xF9ED,
+ 0xE2DF, 0xF9EE,
+ 0xE2E0, 0xF9EF,
+ 0xE2E1, 0xF9F0,
+ 0xE2E2, 0xF9F1,
+ 0xE2E3, 0xF9F2,
+ 0xE2E4, 0xF9F3,
+ 0xE2E5, 0xF9F4,
+ 0xE2E6, 0xF9F5,
+ 0xE2E7, 0xF9F6,
+ 0xE2E8, 0xF9F7,
+ 0xE2E9, 0xF9F8,
+ 0xE2EA, 0xF9F9,
+ 0xE2EB, 0xF9FA,
+ 0xE2EC, 0xF9FB,
+ 0xE2ED, 0xF9FC,
+ 0xE2EE, 0xF9FD,
+ 0xE2EF, 0xF9FE,
+ 0xE2F0, 0xFAA1,
+ 0xE2F1, 0xFAA2,
+ 0xE2F2, 0xFAA3,
+ 0xE2F3, 0xFAA4,
+ 0xE2F4, 0xFAA5,
+ 0xE2F5, 0xFAA6,
+ 0xE2F6, 0xFAA7,
+ 0xE2F7, 0xFAA8,
+ 0xE2F8, 0xFAA9,
+ 0xE2F9, 0xFAAA,
+ 0xE2FA, 0xFAAB,
+ 0xE2FB, 0xFAAC,
+ 0xE2FC, 0xFAAD,
+ 0xE2FD, 0xFAAE,
+ 0xE2FE, 0xFAAF,
+ 0xE2FF, 0xFAB0,
+ 0xE300, 0xFAB1,
+ 0xE301, 0xFAB2,
+ 0xE302, 0xFAB3,
+ 0xE303, 0xFAB4,
+ 0xE304, 0xFAB5,
+ 0xE305, 0xFAB6,
+ 0xE306, 0xFAB7,
+ 0xE307, 0xFAB8,
+ 0xE308, 0xFAB9,
+ 0xE309, 0xFABA,
+ 0xE30A, 0xFABB,
+ 0xE30B, 0xFABC,
+ 0xE30C, 0xFABD,
+ 0xE30D, 0xFABE,
+ 0xE30E, 0xFABF,
+ 0xE30F, 0xFAC0,
+ 0xE310, 0xFAC1,
+ 0xE311, 0xFAC2,
+ 0xE312, 0xFAC3,
+ 0xE313, 0xFAC4,
+ 0xE314, 0xFAC5,
+ 0xE315, 0xFAC6,
+ 0xE316, 0xFAC7,
+ 0xE317, 0xFAC8,
+ 0xE318, 0xFAC9,
+ 0xE319, 0xFACA,
+ 0xE31A, 0xFACB,
+ 0xE31B, 0xFACC,
+ 0xE31C, 0xFACD,
+ 0xE31D, 0xFACE,
+ 0xE31E, 0xFACF,
+ 0xE31F, 0xFAD0,
+ 0xE320, 0xFAD1,
+ 0xE321, 0xFAD2,
+ 0xE322, 0xFAD3,
+ 0xE323, 0xFAD4,
+ 0xE324, 0xFAD5,
+ 0xE325, 0xFAD6,
+ 0xE326, 0xFAD7,
+ 0xE327, 0xFAD8,
+ 0xE328, 0xFAD9,
+ 0xE329, 0xFADA,
+ 0xE32A, 0xFADB,
+ 0xE32B, 0xFADC,
+ 0xE32C, 0xFADD,
+ 0xE32D, 0xFADE,
+ 0xE32E, 0xFADF,
+ 0xE32F, 0xFAE0,
+ 0xE330, 0xFAE1,
+ 0xE331, 0xFAE2,
+ 0xE332, 0xFAE3,
+ 0xE333, 0xFAE4,
+ 0xE334, 0xFAE5,
+ 0xE335, 0xFAE6,
+ 0xE336, 0xFAE7,
+ 0xE337, 0xFAE8,
+ 0xE338, 0xFAE9,
+ 0xE339, 0xFAEA,
+ 0xE33A, 0xFAEB,
+ 0xE33B, 0xFAEC,
+ 0xE33C, 0xFAED,
+ 0xE33D, 0xFAEE,
+ 0xE33E, 0xFAEF,
+ 0xE33F, 0xFAF0,
+ 0xE340, 0xFAF1,
+ 0xE341, 0xFAF2,
+ 0xE342, 0xFAF3,
+ 0xE343, 0xFAF4,
+ 0xE344, 0xFAF5,
+ 0xE345, 0xFAF6,
+ 0xE346, 0xFAF7,
+ 0xE347, 0xFAF8,
+ 0xE348, 0xFAF9,
+ 0xE349, 0xFAFA,
+ 0xE34A, 0xFAFB,
+ 0xE34B, 0xFAFC,
+ 0xE34C, 0xFAFD,
+ 0xE34D, 0xFAFE,
+ 0xE34E, 0xFBA1,
+ 0xE34F, 0xFBA2,
+ 0xE350, 0xFBA3,
+ 0xE351, 0xFBA4,
+ 0xE352, 0xFBA5,
+ 0xE353, 0xFBA6,
+ 0xE354, 0xFBA7,
+ 0xE355, 0xFBA8,
+ 0xE356, 0xFBA9,
+ 0xE357, 0xFBAA,
+ 0xE358, 0xFBAB,
+ 0xE359, 0xFBAC,
+ 0xE35A, 0xFBAD,
+ 0xE35B, 0xFBAE,
+ 0xE35C, 0xFBAF,
+ 0xE35D, 0xFBB0,
+ 0xE35E, 0xFBB1,
+ 0xE35F, 0xFBB2,
+ 0xE360, 0xFBB3,
+ 0xE361, 0xFBB4,
+ 0xE362, 0xFBB5,
+ 0xE363, 0xFBB6,
+ 0xE364, 0xFBB7,
+ 0xE365, 0xFBB8,
+ 0xE366, 0xFBB9,
+ 0xE367, 0xFBBA,
+ 0xE368, 0xFBBB,
+ 0xE369, 0xFBBC,
+ 0xE36A, 0xFBBD,
+ 0xE36B, 0xFBBE,
+ 0xE36C, 0xFBBF,
+ 0xE36D, 0xFBC0,
+ 0xE36E, 0xFBC1,
+ 0xE36F, 0xFBC2,
+ 0xE370, 0xFBC3,
+ 0xE371, 0xFBC4,
+ 0xE372, 0xFBC5,
+ 0xE373, 0xFBC6,
+ 0xE374, 0xFBC7,
+ 0xE375, 0xFBC8,
+ 0xE376, 0xFBC9,
+ 0xE377, 0xFBCA,
+ 0xE378, 0xFBCB,
+ 0xE379, 0xFBCC,
+ 0xE37A, 0xFBCD,
+ 0xE37B, 0xFBCE,
+ 0xE37C, 0xFBCF,
+ 0xE37D, 0xFBD0,
+ 0xE37E, 0xFBD1,
+ 0xE37F, 0xFBD2,
+ 0xE380, 0xFBD3,
+ 0xE381, 0xFBD4,
+ 0xE382, 0xFBD5,
+ 0xE383, 0xFBD6,
+ 0xE384, 0xFBD7,
+ 0xE385, 0xFBD8,
+ 0xE386, 0xFBD9,
+ 0xE387, 0xFBDA,
+ 0xE388, 0xFBDB,
+ 0xE389, 0xFBDC,
+ 0xE38A, 0xFBDD,
+ 0xE38B, 0xFBDE,
+ 0xE38C, 0xFBDF,
+ 0xE38D, 0xFBE0,
+ 0xE38E, 0xFBE1,
+ 0xE38F, 0xFBE2,
+ 0xE390, 0xFBE3,
+ 0xE391, 0xFBE4,
+ 0xE392, 0xFBE5,
+ 0xE393, 0xFBE6,
+ 0xE394, 0xFBE7,
+ 0xE395, 0xFBE8,
+ 0xE396, 0xFBE9,
+ 0xE397, 0xFBEA,
+ 0xE398, 0xFBEB,
+ 0xE399, 0xFBEC,
+ 0xE39A, 0xFBED,
+ 0xE39B, 0xFBEE,
+ 0xE39C, 0xFBEF,
+ 0xE39D, 0xFBF0,
+ 0xE39E, 0xFBF1,
+ 0xE39F, 0xFBF2,
+ 0xE3A0, 0xFBF3,
+ 0xE3A1, 0xFBF4,
+ 0xE3A2, 0xFBF5,
+ 0xE3A3, 0xFBF6,
+ 0xE3A4, 0xFBF7,
+ 0xE3A5, 0xFBF8,
+ 0xE3A6, 0xFBF9,
+ 0xE3A7, 0xFBFA,
+ 0xE3A8, 0xFBFB,
+ 0xE3A9, 0xFBFC,
+ 0xE3AA, 0xFBFD,
+ 0xE3AB, 0xFBFE,
+ 0xE3AC, 0xFCA1,
+ 0xE3AD, 0xFCA2,
+ 0xE3AE, 0xFCA3,
+ 0xE3AF, 0xFCA4,
+ 0xE3B0, 0xFCA5,
+ 0xE3B1, 0xFCA6,
+ 0xE3B2, 0xFCA7,
+ 0xE3B3, 0xFCA8,
+ 0xE3B4, 0xFCA9,
+ 0xE3B5, 0xFCAA,
+ 0xE3B6, 0xFCAB,
+ 0xE3B7, 0xFCAC,
+ 0xE3B8, 0xFCAD,
+ 0xE3B9, 0xFCAE,
+ 0xE3BA, 0xFCAF,
+ 0xE3BB, 0xFCB0,
+ 0xE3BC, 0xFCB1,
+ 0xE3BD, 0xFCB2,
+ 0xE3BE, 0xFCB3,
+ 0xE3BF, 0xFCB4,
+ 0xE3C0, 0xFCB5,
+ 0xE3C1, 0xFCB6,
+ 0xE3C2, 0xFCB7,
+ 0xE3C3, 0xFCB8,
+ 0xE3C4, 0xFCB9,
+ 0xE3C5, 0xFCBA,
+ 0xE3C6, 0xFCBB,
+ 0xE3C7, 0xFCBC,
+ 0xE3C8, 0xFCBD,
+ 0xE3C9, 0xFCBE,
+ 0xE3CA, 0xFCBF,
+ 0xE3CB, 0xFCC0,
+ 0xE3CC, 0xFCC1,
+ 0xE3CD, 0xFCC2,
+ 0xE3CE, 0xFCC3,
+ 0xE3CF, 0xFCC4,
+ 0xE3D0, 0xFCC5,
+ 0xE3D1, 0xFCC6,
+ 0xE3D2, 0xFCC7,
+ 0xE3D3, 0xFCC8,
+ 0xE3D4, 0xFCC9,
+ 0xE3D5, 0xFCCA,
+ 0xE3D6, 0xFCCB,
+ 0xE3D7, 0xFCCC,
+ 0xE3D8, 0xFCCD,
+ 0xE3D9, 0xFCCE,
+ 0xE3DA, 0xFCCF,
+ 0xE3DB, 0xFCD0,
+ 0xE3DC, 0xFCD1,
+ 0xE3DD, 0xFCD2,
+ 0xE3DE, 0xFCD3,
+ 0xE3DF, 0xFCD4,
+ 0xE3E0, 0xFCD5,
+ 0xE3E1, 0xFCD6,
+ 0xE3E2, 0xFCD7,
+ 0xE3E3, 0xFCD8,
+ 0xE3E4, 0xFCD9,
+ 0xE3E5, 0xFCDA,
+ 0xE3E6, 0xFCDB,
+ 0xE3E7, 0xFCDC,
+ 0xE3E8, 0xFCDD,
+ 0xE3E9, 0xFCDE,
+ 0xE3EA, 0xFCDF,
+ 0xE3EB, 0xFCE0,
+ 0xE3EC, 0xFCE1,
+ 0xE3ED, 0xFCE2,
+ 0xE3EE, 0xFCE3,
+ 0xE3EF, 0xFCE4,
+ 0xE3F0, 0xFCE5,
+ 0xE3F1, 0xFCE6,
+ 0xE3F2, 0xFCE7,
+ 0xE3F3, 0xFCE8,
+ 0xE3F4, 0xFCE9,
+ 0xE3F5, 0xFCEA,
+ 0xE3F6, 0xFCEB,
+ 0xE3F7, 0xFCEC,
+ 0xE3F8, 0xFCED,
+ 0xE3F9, 0xFCEE,
+ 0xE3FA, 0xFCEF,
+ 0xE3FB, 0xFCF0,
+ 0xE3FC, 0xFCF1,
+ 0xE3FD, 0xFCF2,
+ 0xE3FE, 0xFCF3,
+ 0xE3FF, 0xFCF4,
+ 0xE400, 0xFCF5,
+ 0xE401, 0xFCF6,
+ 0xE402, 0xFCF7,
+ 0xE403, 0xFCF8,
+ 0xE404, 0xFCF9,
+ 0xE405, 0xFCFA,
+ 0xE406, 0xFCFB,
+ 0xE407, 0xFCFC,
+ 0xE408, 0xFCFD,
+ 0xE409, 0xFCFE,
+ 0xE40A, 0xFDA1,
+ 0xE40B, 0xFDA2,
+ 0xE40C, 0xFDA3,
+ 0xE40D, 0xFDA4,
+ 0xE40E, 0xFDA5,
+ 0xE40F, 0xFDA6,
+ 0xE410, 0xFDA7,
+ 0xE411, 0xFDA8,
+ 0xE412, 0xFDA9,
+ 0xE413, 0xFDAA,
+ 0xE414, 0xFDAB,
+ 0xE415, 0xFDAC,
+ 0xE416, 0xFDAD,
+ 0xE417, 0xFDAE,
+ 0xE418, 0xFDAF,
+ 0xE419, 0xFDB0,
+ 0xE41A, 0xFDB1,
+ 0xE41B, 0xFDB2,
+ 0xE41C, 0xFDB3,
+ 0xE41D, 0xFDB4,
+ 0xE41E, 0xFDB5,
+ 0xE41F, 0xFDB6,
+ 0xE420, 0xFDB7,
+ 0xE421, 0xFDB8,
+ 0xE422, 0xFDB9,
+ 0xE423, 0xFDBA,
+ 0xE424, 0xFDBB,
+ 0xE425, 0xFDBC,
+ 0xE426, 0xFDBD,
+ 0xE427, 0xFDBE,
+ 0xE428, 0xFDBF,
+ 0xE429, 0xFDC0,
+ 0xE42A, 0xFDC1,
+ 0xE42B, 0xFDC2,
+ 0xE42C, 0xFDC3,
+ 0xE42D, 0xFDC4,
+ 0xE42E, 0xFDC5,
+ 0xE42F, 0xFDC6,
+ 0xE430, 0xFDC7,
+ 0xE431, 0xFDC8,
+ 0xE432, 0xFDC9,
+ 0xE433, 0xFDCA,
+ 0xE434, 0xFDCB,
+ 0xE435, 0xFDCC,
+ 0xE436, 0xFDCD,
+ 0xE437, 0xFDCE,
+ 0xE438, 0xFDCF,
+ 0xE439, 0xFDD0,
+ 0xE43A, 0xFDD1,
+ 0xE43B, 0xFDD2,
+ 0xE43C, 0xFDD3,
+ 0xE43D, 0xFDD4,
+ 0xE43E, 0xFDD5,
+ 0xE43F, 0xFDD6,
+ 0xE440, 0xFDD7,
+ 0xE441, 0xFDD8,
+ 0xE442, 0xFDD9,
+ 0xE443, 0xFDDA,
+ 0xE444, 0xFDDB,
+ 0xE445, 0xFDDC,
+ 0xE446, 0xFDDD,
+ 0xE447, 0xFDDE,
+ 0xE448, 0xFDDF,
+ 0xE449, 0xFDE0,
+ 0xE44A, 0xFDE1,
+ 0xE44B, 0xFDE2,
+ 0xE44C, 0xFDE3,
+ 0xE44D, 0xFDE4,
+ 0xE44E, 0xFDE5,
+ 0xE44F, 0xFDE6,
+ 0xE450, 0xFDE7,
+ 0xE451, 0xFDE8,
+ 0xE452, 0xFDE9,
+ 0xE453, 0xFDEA,
+ 0xE454, 0xFDEB,
+ 0xE455, 0xFDEC,
+ 0xE456, 0xFDED,
+ 0xE457, 0xFDEE,
+ 0xE458, 0xFDEF,
+ 0xE459, 0xFDF0,
+ 0xE45A, 0xFDF1,
+ 0xE45B, 0xFDF2,
+ 0xE45C, 0xFDF3,
+ 0xE45D, 0xFDF4,
+ 0xE45E, 0xFDF5,
+ 0xE45F, 0xFDF6,
+ 0xE460, 0xFDF7,
+ 0xE461, 0xFDF8,
+ 0xE462, 0xFDF9,
+ 0xE463, 0xFDFA,
+ 0xE464, 0xFDFB,
+ 0xE465, 0xFDFC,
+ 0xE466, 0xFDFD,
+ 0xE467, 0xFDFE,
+ 0xE468, 0xFEA1,
+ 0xE469, 0xFEA2,
+ 0xE46A, 0xFEA3,
+ 0xE46B, 0xFEA4,
+ 0xE46C, 0xFEA5,
+ 0xE46D, 0xFEA6,
+ 0xE46E, 0xFEA7,
+ 0xE46F, 0xFEA8,
+ 0xE470, 0xFEA9,
+ 0xE471, 0xFEAA,
+ 0xE472, 0xFEAB,
+ 0xE473, 0xFEAC,
+ 0xE474, 0xFEAD,
+ 0xE475, 0xFEAE,
+ 0xE476, 0xFEAF,
+ 0xE477, 0xFEB0,
+ 0xE478, 0xFEB1,
+ 0xE479, 0xFEB2,
+ 0xE47A, 0xFEB3,
+ 0xE47B, 0xFEB4,
+ 0xE47C, 0xFEB5,
+ 0xE47D, 0xFEB6,
+ 0xE47E, 0xFEB7,
+ 0xE47F, 0xFEB8,
+ 0xE480, 0xFEB9,
+ 0xE481, 0xFEBA,
+ 0xE482, 0xFEBB,
+ 0xE483, 0xFEBC,
+ 0xE484, 0xFEBD,
+ 0xE485, 0xFEBE,
+ 0xE486, 0xFEBF,
+ 0xE487, 0xFEC0,
+ 0xE488, 0xFEC1,
+ 0xE489, 0xFEC2,
+ 0xE48A, 0xFEC3,
+ 0xE48B, 0xFEC4,
+ 0xE48C, 0xFEC5,
+ 0xE48D, 0xFEC6,
+ 0xE48E, 0xFEC7,
+ 0xE48F, 0xFEC8,
+ 0xE490, 0xFEC9,
+ 0xE491, 0xFECA,
+ 0xE492, 0xFECB,
+ 0xE493, 0xFECC,
+ 0xE494, 0xFECD,
+ 0xE495, 0xFECE,
+ 0xE496, 0xFECF,
+ 0xE497, 0xFED0,
+ 0xE498, 0xFED1,
+ 0xE499, 0xFED2,
+ 0xE49A, 0xFED3,
+ 0xE49B, 0xFED4,
+ 0xE49C, 0xFED5,
+ 0xE49D, 0xFED6,
+ 0xE49E, 0xFED7,
+ 0xE49F, 0xFED8,
+ 0xE4A0, 0xFED9,
+ 0xE4A1, 0xFEDA,
+ 0xE4A2, 0xFEDB,
+ 0xE4A3, 0xFEDC,
+ 0xE4A4, 0xFEDD,
+ 0xE4A5, 0xFEDE,
+ 0xE4A6, 0xFEDF,
+ 0xE4A7, 0xFEE0,
+ 0xE4A8, 0xFEE1,
+ 0xE4A9, 0xFEE2,
+ 0xE4AA, 0xFEE3,
+ 0xE4AB, 0xFEE4,
+ 0xE4AC, 0xFEE5,
+ 0xE4AD, 0xFEE6,
+ 0xE4AE, 0xFEE7,
+ 0xE4AF, 0xFEE8,
+ 0xE4B0, 0xFEE9,
+ 0xE4B1, 0xFEEA,
+ 0xE4B2, 0xFEEB,
+ 0xE4B3, 0xFEEC,
+ 0xE4B4, 0xFEED,
+ 0xE4B5, 0xFEEE,
+ 0xE4B6, 0xFEEF,
+ 0xE4B7, 0xFEF0,
+ 0xE4B8, 0xFEF1,
+ 0xE4B9, 0xFEF2,
+ 0xE4BA, 0xFEF3,
+ 0xE4BB, 0xFEF4,
+ 0xE4BC, 0xFEF5,
+ 0xE4BD, 0xFEF6,
+ 0xE4BE, 0xFEF7,
+ 0xE4BF, 0xFEF8,
+ 0xE4C0, 0xFEF9,
+ 0xE4C1, 0xFEFA,
+ 0xE4C2, 0xFEFB,
+ 0xE4C3, 0xFEFC,
+ 0xE4C4, 0xFEFD,
+ 0xE4C5, 0xFEFE,
+ 0xE4C6, 0xA140,
+ 0xE4C7, 0xA141,
+ 0xE4C8, 0xA142,
+ 0xE4C9, 0xA143,
+ 0xE4CA, 0xA144,
+ 0xE4CB, 0xA145,
+ 0xE4CC, 0xA146,
+ 0xE4CD, 0xA147,
+ 0xE4CE, 0xA148,
+ 0xE4CF, 0xA149,
+ 0xE4D0, 0xA14A,
+ 0xE4D1, 0xA14B,
+ 0xE4D2, 0xA14C,
+ 0xE4D3, 0xA14D,
+ 0xE4D4, 0xA14E,
+ 0xE4D5, 0xA14F,
+ 0xE4D6, 0xA150,
+ 0xE4D7, 0xA151,
+ 0xE4D8, 0xA152,
+ 0xE4D9, 0xA153,
+ 0xE4DA, 0xA154,
+ 0xE4DB, 0xA155,
+ 0xE4DC, 0xA156,
+ 0xE4DD, 0xA157,
+ 0xE4DE, 0xA158,
+ 0xE4DF, 0xA159,
+ 0xE4E0, 0xA15A,
+ 0xE4E1, 0xA15B,
+ 0xE4E2, 0xA15C,
+ 0xE4E3, 0xA15D,
+ 0xE4E4, 0xA15E,
+ 0xE4E5, 0xA15F,
+ 0xE4E6, 0xA160,
+ 0xE4E7, 0xA161,
+ 0xE4E8, 0xA162,
+ 0xE4E9, 0xA163,
+ 0xE4EA, 0xA164,
+ 0xE4EB, 0xA165,
+ 0xE4EC, 0xA166,
+ 0xE4ED, 0xA167,
+ 0xE4EE, 0xA168,
+ 0xE4EF, 0xA169,
+ 0xE4F0, 0xA16A,
+ 0xE4F1, 0xA16B,
+ 0xE4F2, 0xA16C,
+ 0xE4F3, 0xA16D,
+ 0xE4F4, 0xA16E,
+ 0xE4F5, 0xA16F,
+ 0xE4F6, 0xA170,
+ 0xE4F7, 0xA171,
+ 0xE4F8, 0xA172,
+ 0xE4F9, 0xA173,
+ 0xE4FA, 0xA174,
+ 0xE4FB, 0xA175,
+ 0xE4FC, 0xA176,
+ 0xE4FD, 0xA177,
+ 0xE4FE, 0xA178,
+ 0xE4FF, 0xA179,
+ 0xE500, 0xA17A,
+ 0xE501, 0xA17B,
+ 0xE502, 0xA17C,
+ 0xE503, 0xA17D,
+ 0xE504, 0xA17E,
+ 0xE505, 0xA180,
+ 0xE506, 0xA181,
+ 0xE507, 0xA182,
+ 0xE508, 0xA183,
+ 0xE509, 0xA184,
+ 0xE50A, 0xA185,
+ 0xE50B, 0xA186,
+ 0xE50C, 0xA187,
+ 0xE50D, 0xA188,
+ 0xE50E, 0xA189,
+ 0xE50F, 0xA18A,
+ 0xE510, 0xA18B,
+ 0xE511, 0xA18C,
+ 0xE512, 0xA18D,
+ 0xE513, 0xA18E,
+ 0xE514, 0xA18F,
+ 0xE515, 0xA190,
+ 0xE516, 0xA191,
+ 0xE517, 0xA192,
+ 0xE518, 0xA193,
+ 0xE519, 0xA194,
+ 0xE51A, 0xA195,
+ 0xE51B, 0xA196,
+ 0xE51C, 0xA197,
+ 0xE51D, 0xA198,
+ 0xE51E, 0xA199,
+ 0xE51F, 0xA19A,
+ 0xE520, 0xA19B,
+ 0xE521, 0xA19C,
+ 0xE522, 0xA19D,
+ 0xE523, 0xA19E,
+ 0xE524, 0xA19F,
+ 0xE525, 0xA1A0,
+ 0xE526, 0xA240,
+ 0xE527, 0xA241,
+ 0xE528, 0xA242,
+ 0xE529, 0xA243,
+ 0xE52A, 0xA244,
+ 0xE52B, 0xA245,
+ 0xE52C, 0xA246,
+ 0xE52D, 0xA247,
+ 0xE52E, 0xA248,
+ 0xE52F, 0xA249,
+ 0xE530, 0xA24A,
+ 0xE531, 0xA24B,
+ 0xE532, 0xA24C,
+ 0xE533, 0xA24D,
+ 0xE534, 0xA24E,
+ 0xE535, 0xA24F,
+ 0xE536, 0xA250,
+ 0xE537, 0xA251,
+ 0xE538, 0xA252,
+ 0xE539, 0xA253,
+ 0xE53A, 0xA254,
+ 0xE53B, 0xA255,
+ 0xE53C, 0xA256,
+ 0xE53D, 0xA257,
+ 0xE53E, 0xA258,
+ 0xE53F, 0xA259,
+ 0xE540, 0xA25A,
+ 0xE541, 0xA25B,
+ 0xE542, 0xA25C,
+ 0xE543, 0xA25D,
+ 0xE544, 0xA25E,
+ 0xE545, 0xA25F,
+ 0xE546, 0xA260,
+ 0xE547, 0xA261,
+ 0xE548, 0xA262,
+ 0xE549, 0xA263,
+ 0xE54A, 0xA264,
+ 0xE54B, 0xA265,
+ 0xE54C, 0xA266,
+ 0xE54D, 0xA267,
+ 0xE54E, 0xA268,
+ 0xE54F, 0xA269,
+ 0xE550, 0xA26A,
+ 0xE551, 0xA26B,
+ 0xE552, 0xA26C,
+ 0xE553, 0xA26D,
+ 0xE554, 0xA26E,
+ 0xE555, 0xA26F,
+ 0xE556, 0xA270,
+ 0xE557, 0xA271,
+ 0xE558, 0xA272,
+ 0xE559, 0xA273,
+ 0xE55A, 0xA274,
+ 0xE55B, 0xA275,
+ 0xE55C, 0xA276,
+ 0xE55D, 0xA277,
+ 0xE55E, 0xA278,
+ 0xE55F, 0xA279,
+ 0xE560, 0xA27A,
+ 0xE561, 0xA27B,
+ 0xE562, 0xA27C,
+ 0xE563, 0xA27D,
+ 0xE564, 0xA27E,
+ 0xE565, 0xA280,
+ 0xE566, 0xA281,
+ 0xE567, 0xA282,
+ 0xE568, 0xA283,
+ 0xE569, 0xA284,
+ 0xE56A, 0xA285,
+ 0xE56B, 0xA286,
+ 0xE56C, 0xA287,
+ 0xE56D, 0xA288,
+ 0xE56E, 0xA289,
+ 0xE56F, 0xA28A,
+ 0xE570, 0xA28B,
+ 0xE571, 0xA28C,
+ 0xE572, 0xA28D,
+ 0xE573, 0xA28E,
+ 0xE574, 0xA28F,
+ 0xE575, 0xA290,
+ 0xE576, 0xA291,
+ 0xE577, 0xA292,
+ 0xE578, 0xA293,
+ 0xE579, 0xA294,
+ 0xE57A, 0xA295,
+ 0xE57B, 0xA296,
+ 0xE57C, 0xA297,
+ 0xE57D, 0xA298,
+ 0xE57E, 0xA299,
+ 0xE57F, 0xA29A,
+ 0xE580, 0xA29B,
+ 0xE581, 0xA29C,
+ 0xE582, 0xA29D,
+ 0xE583, 0xA29E,
+ 0xE584, 0xA29F,
+ 0xE585, 0xA2A0,
+ 0xE586, 0xA340,
+ 0xE587, 0xA341,
+ 0xE588, 0xA342,
+ 0xE589, 0xA343,
+ 0xE58A, 0xA344,
+ 0xE58B, 0xA345,
+ 0xE58C, 0xA346,
+ 0xE58D, 0xA347,
+ 0xE58E, 0xA348,
+ 0xE58F, 0xA349,
+ 0xE590, 0xA34A,
+ 0xE591, 0xA34B,
+ 0xE592, 0xA34C,
+ 0xE593, 0xA34D,
+ 0xE594, 0xA34E,
+ 0xE595, 0xA34F,
+ 0xE596, 0xA350,
+ 0xE597, 0xA351,
+ 0xE598, 0xA352,
+ 0xE599, 0xA353,
+ 0xE59A, 0xA354,
+ 0xE59B, 0xA355,
+ 0xE59C, 0xA356,
+ 0xE59D, 0xA357,
+ 0xE59E, 0xA358,
+ 0xE59F, 0xA359,
+ 0xE5A0, 0xA35A,
+ 0xE5A1, 0xA35B,
+ 0xE5A2, 0xA35C,
+ 0xE5A3, 0xA35D,
+ 0xE5A4, 0xA35E,
+ 0xE5A5, 0xA35F,
+ 0xE5A6, 0xA360,
+ 0xE5A7, 0xA361,
+ 0xE5A8, 0xA362,
+ 0xE5A9, 0xA363,
+ 0xE5AA, 0xA364,
+ 0xE5AB, 0xA365,
+ 0xE5AC, 0xA366,
+ 0xE5AD, 0xA367,
+ 0xE5AE, 0xA368,
+ 0xE5AF, 0xA369,
+ 0xE5B0, 0xA36A,
+ 0xE5B1, 0xA36B,
+ 0xE5B2, 0xA36C,
+ 0xE5B3, 0xA36D,
+ 0xE5B4, 0xA36E,
+ 0xE5B5, 0xA36F,
+ 0xE5B6, 0xA370,
+ 0xE5B7, 0xA371,
+ 0xE5B8, 0xA372,
+ 0xE5B9, 0xA373,
+ 0xE5BA, 0xA374,
+ 0xE5BB, 0xA375,
+ 0xE5BC, 0xA376,
+ 0xE5BD, 0xA377,
+ 0xE5BE, 0xA378,
+ 0xE5BF, 0xA379,
+ 0xE5C0, 0xA37A,
+ 0xE5C1, 0xA37B,
+ 0xE5C2, 0xA37C,
+ 0xE5C3, 0xA37D,
+ 0xE5C4, 0xA37E,
+ 0xE5C5, 0xA380,
+ 0xE5C6, 0xA381,
+ 0xE5C7, 0xA382,
+ 0xE5C8, 0xA383,
+ 0xE5C9, 0xA384,
+ 0xE5CA, 0xA385,
+ 0xE5CB, 0xA386,
+ 0xE5CC, 0xA387,
+ 0xE5CD, 0xA388,
+ 0xE5CE, 0xA389,
+ 0xE5CF, 0xA38A,
+ 0xE5D0, 0xA38B,
+ 0xE5D1, 0xA38C,
+ 0xE5D2, 0xA38D,
+ 0xE5D3, 0xA38E,
+ 0xE5D4, 0xA38F,
+ 0xE5D5, 0xA390,
+ 0xE5D6, 0xA391,
+ 0xE5D7, 0xA392,
+ 0xE5D8, 0xA393,
+ 0xE5D9, 0xA394,
+ 0xE5DA, 0xA395,
+ 0xE5DB, 0xA396,
+ 0xE5DC, 0xA397,
+ 0xE5DD, 0xA398,
+ 0xE5DE, 0xA399,
+ 0xE5DF, 0xA39A,
+ 0xE5E0, 0xA39B,
+ 0xE5E1, 0xA39C,
+ 0xE5E2, 0xA39D,
+ 0xE5E3, 0xA39E,
+ 0xE5E4, 0xA39F,
+ 0xE5E5, 0xA3A0,
+ 0xE5E6, 0xA440,
+ 0xE5E7, 0xA441,
+ 0xE5E8, 0xA442,
+ 0xE5E9, 0xA443,
+ 0xE5EA, 0xA444,
+ 0xE5EB, 0xA445,
+ 0xE5EC, 0xA446,
+ 0xE5ED, 0xA447,
+ 0xE5EE, 0xA448,
+ 0xE5EF, 0xA449,
+ 0xE5F0, 0xA44A,
+ 0xE5F1, 0xA44B,
+ 0xE5F2, 0xA44C,
+ 0xE5F3, 0xA44D,
+ 0xE5F4, 0xA44E,
+ 0xE5F5, 0xA44F,
+ 0xE5F6, 0xA450,
+ 0xE5F7, 0xA451,
+ 0xE5F8, 0xA452,
+ 0xE5F9, 0xA453,
+ 0xE5FA, 0xA454,
+ 0xE5FB, 0xA455,
+ 0xE5FC, 0xA456,
+ 0xE5FD, 0xA457,
+ 0xE5FE, 0xA458,
+ 0xE5FF, 0xA459,
+ 0xE600, 0xA45A,
+ 0xE601, 0xA45B,
+ 0xE602, 0xA45C,
+ 0xE603, 0xA45D,
+ 0xE604, 0xA45E,
+ 0xE605, 0xA45F,
+ 0xE606, 0xA460,
+ 0xE607, 0xA461,
+ 0xE608, 0xA462,
+ 0xE609, 0xA463,
+ 0xE60A, 0xA464,
+ 0xE60B, 0xA465,
+ 0xE60C, 0xA466,
+ 0xE60D, 0xA467,
+ 0xE60E, 0xA468,
+ 0xE60F, 0xA469,
+ 0xE610, 0xA46A,
+ 0xE611, 0xA46B,
+ 0xE612, 0xA46C,
+ 0xE613, 0xA46D,
+ 0xE614, 0xA46E,
+ 0xE615, 0xA46F,
+ 0xE616, 0xA470,
+ 0xE617, 0xA471,
+ 0xE618, 0xA472,
+ 0xE619, 0xA473,
+ 0xE61A, 0xA474,
+ 0xE61B, 0xA475,
+ 0xE61C, 0xA476,
+ 0xE61D, 0xA477,
+ 0xE61E, 0xA478,
+ 0xE61F, 0xA479,
+ 0xE620, 0xA47A,
+ 0xE621, 0xA47B,
+ 0xE622, 0xA47C,
+ 0xE623, 0xA47D,
+ 0xE624, 0xA47E,
+ 0xE625, 0xA480,
+ 0xE626, 0xA481,
+ 0xE627, 0xA482,
+ 0xE628, 0xA483,
+ 0xE629, 0xA484,
+ 0xE62A, 0xA485,
+ 0xE62B, 0xA486,
+ 0xE62C, 0xA487,
+ 0xE62D, 0xA488,
+ 0xE62E, 0xA489,
+ 0xE62F, 0xA48A,
+ 0xE630, 0xA48B,
+ 0xE631, 0xA48C,
+ 0xE632, 0xA48D,
+ 0xE633, 0xA48E,
+ 0xE634, 0xA48F,
+ 0xE635, 0xA490,
+ 0xE636, 0xA491,
+ 0xE637, 0xA492,
+ 0xE638, 0xA493,
+ 0xE639, 0xA494,
+ 0xE63A, 0xA495,
+ 0xE63B, 0xA496,
+ 0xE63C, 0xA497,
+ 0xE63D, 0xA498,
+ 0xE63E, 0xA499,
+ 0xE63F, 0xA49A,
+ 0xE640, 0xA49B,
+ 0xE641, 0xA49C,
+ 0xE642, 0xA49D,
+ 0xE643, 0xA49E,
+ 0xE644, 0xA49F,
+ 0xE645, 0xA4A0,
+ 0xE646, 0xA540,
+ 0xE647, 0xA541,
+ 0xE648, 0xA542,
+ 0xE649, 0xA543,
+ 0xE64A, 0xA544,
+ 0xE64B, 0xA545,
+ 0xE64C, 0xA546,
+ 0xE64D, 0xA547,
+ 0xE64E, 0xA548,
+ 0xE64F, 0xA549,
+ 0xE650, 0xA54A,
+ 0xE651, 0xA54B,
+ 0xE652, 0xA54C,
+ 0xE653, 0xA54D,
+ 0xE654, 0xA54E,
+ 0xE655, 0xA54F,
+ 0xE656, 0xA550,
+ 0xE657, 0xA551,
+ 0xE658, 0xA552,
+ 0xE659, 0xA553,
+ 0xE65A, 0xA554,
+ 0xE65B, 0xA555,
+ 0xE65C, 0xA556,
+ 0xE65D, 0xA557,
+ 0xE65E, 0xA558,
+ 0xE65F, 0xA559,
+ 0xE660, 0xA55A,
+ 0xE661, 0xA55B,
+ 0xE662, 0xA55C,
+ 0xE663, 0xA55D,
+ 0xE664, 0xA55E,
+ 0xE665, 0xA55F,
+ 0xE666, 0xA560,
+ 0xE667, 0xA561,
+ 0xE668, 0xA562,
+ 0xE669, 0xA563,
+ 0xE66A, 0xA564,
+ 0xE66B, 0xA565,
+ 0xE66C, 0xA566,
+ 0xE66D, 0xA567,
+ 0xE66E, 0xA568,
+ 0xE66F, 0xA569,
+ 0xE670, 0xA56A,
+ 0xE671, 0xA56B,
+ 0xE672, 0xA56C,
+ 0xE673, 0xA56D,
+ 0xE674, 0xA56E,
+ 0xE675, 0xA56F,
+ 0xE676, 0xA570,
+ 0xE677, 0xA571,
+ 0xE678, 0xA572,
+ 0xE679, 0xA573,
+ 0xE67A, 0xA574,
+ 0xE67B, 0xA575,
+ 0xE67C, 0xA576,
+ 0xE67D, 0xA577,
+ 0xE67E, 0xA578,
+ 0xE67F, 0xA579,
+ 0xE680, 0xA57A,
+ 0xE681, 0xA57B,
+ 0xE682, 0xA57C,
+ 0xE683, 0xA57D,
+ 0xE684, 0xA57E,
+ 0xE685, 0xA580,
+ 0xE686, 0xA581,
+ 0xE687, 0xA582,
+ 0xE688, 0xA583,
+ 0xE689, 0xA584,
+ 0xE68A, 0xA585,
+ 0xE68B, 0xA586,
+ 0xE68C, 0xA587,
+ 0xE68D, 0xA588,
+ 0xE68E, 0xA589,
+ 0xE68F, 0xA58A,
+ 0xE690, 0xA58B,
+ 0xE691, 0xA58C,
+ 0xE692, 0xA58D,
+ 0xE693, 0xA58E,
+ 0xE694, 0xA58F,
+ 0xE695, 0xA590,
+ 0xE696, 0xA591,
+ 0xE697, 0xA592,
+ 0xE698, 0xA593,
+ 0xE699, 0xA594,
+ 0xE69A, 0xA595,
+ 0xE69B, 0xA596,
+ 0xE69C, 0xA597,
+ 0xE69D, 0xA598,
+ 0xE69E, 0xA599,
+ 0xE69F, 0xA59A,
+ 0xE6A0, 0xA59B,
+ 0xE6A1, 0xA59C,
+ 0xE6A2, 0xA59D,
+ 0xE6A3, 0xA59E,
+ 0xE6A4, 0xA59F,
+ 0xE6A5, 0xA5A0,
+ 0xE6A6, 0xA640,
+ 0xE6A7, 0xA641,
+ 0xE6A8, 0xA642,
+ 0xE6A9, 0xA643,
+ 0xE6AA, 0xA644,
+ 0xE6AB, 0xA645,
+ 0xE6AC, 0xA646,
+ 0xE6AD, 0xA647,
+ 0xE6AE, 0xA648,
+ 0xE6AF, 0xA649,
+ 0xE6B0, 0xA64A,
+ 0xE6B1, 0xA64B,
+ 0xE6B2, 0xA64C,
+ 0xE6B3, 0xA64D,
+ 0xE6B4, 0xA64E,
+ 0xE6B5, 0xA64F,
+ 0xE6B6, 0xA650,
+ 0xE6B7, 0xA651,
+ 0xE6B8, 0xA652,
+ 0xE6B9, 0xA653,
+ 0xE6BA, 0xA654,
+ 0xE6BB, 0xA655,
+ 0xE6BC, 0xA656,
+ 0xE6BD, 0xA657,
+ 0xE6BE, 0xA658,
+ 0xE6BF, 0xA659,
+ 0xE6C0, 0xA65A,
+ 0xE6C1, 0xA65B,
+ 0xE6C2, 0xA65C,
+ 0xE6C3, 0xA65D,
+ 0xE6C4, 0xA65E,
+ 0xE6C5, 0xA65F,
+ 0xE6C6, 0xA660,
+ 0xE6C7, 0xA661,
+ 0xE6C8, 0xA662,
+ 0xE6C9, 0xA663,
+ 0xE6CA, 0xA664,
+ 0xE6CB, 0xA665,
+ 0xE6CC, 0xA666,
+ 0xE6CD, 0xA667,
+ 0xE6CE, 0xA668,
+ 0xE6CF, 0xA669,
+ 0xE6D0, 0xA66A,
+ 0xE6D1, 0xA66B,
+ 0xE6D2, 0xA66C,
+ 0xE6D3, 0xA66D,
+ 0xE6D4, 0xA66E,
+ 0xE6D5, 0xA66F,
+ 0xE6D6, 0xA670,
+ 0xE6D7, 0xA671,
+ 0xE6D8, 0xA672,
+ 0xE6D9, 0xA673,
+ 0xE6DA, 0xA674,
+ 0xE6DB, 0xA675,
+ 0xE6DC, 0xA676,
+ 0xE6DD, 0xA677,
+ 0xE6DE, 0xA678,
+ 0xE6DF, 0xA679,
+ 0xE6E0, 0xA67A,
+ 0xE6E1, 0xA67B,
+ 0xE6E2, 0xA67C,
+ 0xE6E3, 0xA67D,
+ 0xE6E4, 0xA67E,
+ 0xE6E5, 0xA680,
+ 0xE6E6, 0xA681,
+ 0xE6E7, 0xA682,
+ 0xE6E8, 0xA683,
+ 0xE6E9, 0xA684,
+ 0xE6EA, 0xA685,
+ 0xE6EB, 0xA686,
+ 0xE6EC, 0xA687,
+ 0xE6ED, 0xA688,
+ 0xE6EE, 0xA689,
+ 0xE6EF, 0xA68A,
+ 0xE6F0, 0xA68B,
+ 0xE6F1, 0xA68C,
+ 0xE6F2, 0xA68D,
+ 0xE6F3, 0xA68E,
+ 0xE6F4, 0xA68F,
+ 0xE6F5, 0xA690,
+ 0xE6F6, 0xA691,
+ 0xE6F7, 0xA692,
+ 0xE6F8, 0xA693,
+ 0xE6F9, 0xA694,
+ 0xE6FA, 0xA695,
+ 0xE6FB, 0xA696,
+ 0xE6FC, 0xA697,
+ 0xE6FD, 0xA698,
+ 0xE6FE, 0xA699,
+ 0xE6FF, 0xA69A,
+ 0xE700, 0xA69B,
+ 0xE701, 0xA69C,
+ 0xE702, 0xA69D,
+ 0xE703, 0xA69E,
+ 0xE704, 0xA69F,
+ 0xE705, 0xA6A0,
+ 0xE706, 0xA740,
+ 0xE707, 0xA741,
+ 0xE708, 0xA742,
+ 0xE709, 0xA743,
+ 0xE70A, 0xA744,
+ 0xE70B, 0xA745,
+ 0xE70C, 0xA746,
+ 0xE70D, 0xA747,
+ 0xE70E, 0xA748,
+ 0xE70F, 0xA749,
+ 0xE710, 0xA74A,
+ 0xE711, 0xA74B,
+ 0xE712, 0xA74C,
+ 0xE713, 0xA74D,
+ 0xE714, 0xA74E,
+ 0xE715, 0xA74F,
+ 0xE716, 0xA750,
+ 0xE717, 0xA751,
+ 0xE718, 0xA752,
+ 0xE719, 0xA753,
+ 0xE71A, 0xA754,
+ 0xE71B, 0xA755,
+ 0xE71C, 0xA756,
+ 0xE71D, 0xA757,
+ 0xE71E, 0xA758,
+ 0xE71F, 0xA759,
+ 0xE720, 0xA75A,
+ 0xE721, 0xA75B,
+ 0xE722, 0xA75C,
+ 0xE723, 0xA75D,
+ 0xE724, 0xA75E,
+ 0xE725, 0xA75F,
+ 0xE726, 0xA760,
+ 0xE727, 0xA761,
+ 0xE728, 0xA762,
+ 0xE729, 0xA763,
+ 0xE72A, 0xA764,
+ 0xE72B, 0xA765,
+ 0xE72C, 0xA766,
+ 0xE72D, 0xA767,
+ 0xE72E, 0xA768,
+ 0xE72F, 0xA769,
+ 0xE730, 0xA76A,
+ 0xE731, 0xA76B,
+ 0xE732, 0xA76C,
+ 0xE733, 0xA76D,
+ 0xE734, 0xA76E,
+ 0xE735, 0xA76F,
+ 0xE736, 0xA770,
+ 0xE737, 0xA771,
+ 0xE738, 0xA772,
+ 0xE739, 0xA773,
+ 0xE73A, 0xA774,
+ 0xE73B, 0xA775,
+ 0xE73C, 0xA776,
+ 0xE73D, 0xA777,
+ 0xE73E, 0xA778,
+ 0xE73F, 0xA779,
+ 0xE740, 0xA77A,
+ 0xE741, 0xA77B,
+ 0xE742, 0xA77C,
+ 0xE743, 0xA77D,
+ 0xE744, 0xA77E,
+ 0xE745, 0xA780,
+ 0xE746, 0xA781,
+ 0xE747, 0xA782,
+ 0xE748, 0xA783,
+ 0xE749, 0xA784,
+ 0xE74A, 0xA785,
+ 0xE74B, 0xA786,
+ 0xE74C, 0xA787,
+ 0xE74D, 0xA788,
+ 0xE74E, 0xA789,
+ 0xE74F, 0xA78A,
+ 0xE750, 0xA78B,
+ 0xE751, 0xA78C,
+ 0xE752, 0xA78D,
+ 0xE753, 0xA78E,
+ 0xE754, 0xA78F,
+ 0xE755, 0xA790,
+ 0xE756, 0xA791,
+ 0xE757, 0xA792,
+ 0xE758, 0xA793,
+ 0xE759, 0xA794,
+ 0xE75A, 0xA795,
+ 0xE75B, 0xA796,
+ 0xE75C, 0xA797,
+ 0xE75D, 0xA798,
+ 0xE75E, 0xA799,
+ 0xE75F, 0xA79A,
+ 0xE760, 0xA79B,
+ 0xE761, 0xA79C,
+ 0xE762, 0xA79D,
+ 0xE763, 0xA79E,
+ 0xE764, 0xA79F,
+ 0xE765, 0xA7A0,
+ 0xE766, 0xA2AB,
+ 0xE767, 0xA2AC,
+ 0xE768, 0xA2AD,
+ 0xE769, 0xA2AE,
+ 0xE76A, 0xA2AF,
+ 0xE76B, 0xA2B0,
+ 0xE76D, 0xA2E4,
+ 0xE76E, 0xA2EF,
+ 0xE76F, 0xA2F0,
+ 0xE770, 0xA2FD,
+ 0xE771, 0xA2FE,
+ 0xE772, 0xA4F4,
+ 0xE773, 0xA4F5,
+ 0xE774, 0xA4F6,
+ 0xE775, 0xA4F7,
+ 0xE776, 0xA4F8,
+ 0xE777, 0xA4F9,
+ 0xE778, 0xA4FA,
+ 0xE779, 0xA4FB,
+ 0xE77A, 0xA4FC,
+ 0xE77B, 0xA4FD,
+ 0xE77C, 0xA4FE,
+ 0xE77D, 0xA5F7,
+ 0xE77E, 0xA5F8,
+ 0xE77F, 0xA5F9,
+ 0xE780, 0xA5FA,
+ 0xE781, 0xA5FB,
+ 0xE782, 0xA5FC,
+ 0xE783, 0xA5FD,
+ 0xE784, 0xA5FE,
+ 0xE785, 0xA6B9,
+ 0xE786, 0xA6BA,
+ 0xE787, 0xA6BB,
+ 0xE788, 0xA6BC,
+ 0xE789, 0xA6BD,
+ 0xE78A, 0xA6BE,
+ 0xE78B, 0xA6BF,
+ 0xE78C, 0xA6C0,
+ 0xE78D, 0xA6D9,
+ 0xE78E, 0xA6DA,
+ 0xE78F, 0xA6DB,
+ 0xE790, 0xA6DC,
+ 0xE791, 0xA6DD,
+ 0xE792, 0xA6DE,
+ 0xE793, 0xA6DF,
+ 0xE794, 0xA6EC,
+ 0xE795, 0xA6ED,
+ 0xE796, 0xA6F3,
+ 0xE797, 0xA6F6,
+ 0xE798, 0xA6F7,
+ 0xE799, 0xA6F8,
+ 0xE79A, 0xA6F9,
+ 0xE79B, 0xA6FA,
+ 0xE79C, 0xA6FB,
+ 0xE79D, 0xA6FC,
+ 0xE79E, 0xA6FD,
+ 0xE79F, 0xA6FE,
+ 0xE7A0, 0xA7C2,
+ 0xE7A1, 0xA7C3,
+ 0xE7A2, 0xA7C4,
+ 0xE7A3, 0xA7C5,
+ 0xE7A4, 0xA7C6,
+ 0xE7A5, 0xA7C7,
+ 0xE7A6, 0xA7C8,
+ 0xE7A7, 0xA7C9,
+ 0xE7A8, 0xA7CA,
+ 0xE7A9, 0xA7CB,
+ 0xE7AA, 0xA7CC,
+ 0xE7AB, 0xA7CD,
+ 0xE7AC, 0xA7CE,
+ 0xE7AD, 0xA7CF,
+ 0xE7AE, 0xA7D0,
+ 0xE7AF, 0xA7F2,
+ 0xE7B0, 0xA7F3,
+ 0xE7B1, 0xA7F4,
+ 0xE7B2, 0xA7F5,
+ 0xE7B3, 0xA7F6,
+ 0xE7B4, 0xA7F7,
+ 0xE7B5, 0xA7F8,
+ 0xE7B6, 0xA7F9,
+ 0xE7B7, 0xA7FA,
+ 0xE7B8, 0xA7FB,
+ 0xE7B9, 0xA7FC,
+ 0xE7BA, 0xA7FD,
+ 0xE7BB, 0xA7FE,
+ 0xE7BC, 0xA896,
+ 0xE7BD, 0xA897,
+ 0xE7BE, 0xA898,
+ 0xE7BF, 0xA899,
+ 0xE7C0, 0xA89A,
+ 0xE7C1, 0xA89B,
+ 0xE7C2, 0xA89C,
+ 0xE7C3, 0xA89D,
+ 0xE7C4, 0xA89E,
+ 0xE7C5, 0xA89F,
+ 0xE7C6, 0xA8A0,
+ 0xE7C7, 0xA8BC,
+ 0xE7C9, 0xA8C1,
+ 0xE7CA, 0xA8C2,
+ 0xE7CB, 0xA8C3,
+ 0xE7CC, 0xA8C4,
+ 0xE7CD, 0xA8EA,
+ 0xE7CE, 0xA8EB,
+ 0xE7CF, 0xA8EC,
+ 0xE7D0, 0xA8ED,
+ 0xE7D1, 0xA8EE,
+ 0xE7D2, 0xA8EF,
+ 0xE7D3, 0xA8F0,
+ 0xE7D4, 0xA8F1,
+ 0xE7D5, 0xA8F2,
+ 0xE7D6, 0xA8F3,
+ 0xE7D7, 0xA8F4,
+ 0xE7D8, 0xA8F5,
+ 0xE7D9, 0xA8F6,
+ 0xE7DA, 0xA8F7,
+ 0xE7DB, 0xA8F8,
+ 0xE7DC, 0xA8F9,
+ 0xE7DD, 0xA8FA,
+ 0xE7DE, 0xA8FB,
+ 0xE7DF, 0xA8FC,
+ 0xE7E0, 0xA8FD,
+ 0xE7E1, 0xA8FE,
+ 0xE7E2, 0xA958,
+ 0xE7E3, 0xA95B,
+ 0xE7E4, 0xA95D,
+ 0xE7E5, 0xA95E,
+ 0xE7E6, 0xA95F,
+ 0xE7F4, 0xA997,
+ 0xE7F5, 0xA998,
+ 0xE7F6, 0xA999,
+ 0xE7F7, 0xA99A,
+ 0xE7F8, 0xA99B,
+ 0xE7F9, 0xA99C,
+ 0xE7FA, 0xA99D,
+ 0xE7FB, 0xA99E,
+ 0xE7FC, 0xA99F,
+ 0xE7FD, 0xA9A0,
+ 0xE7FE, 0xA9A1,
+ 0xE7FF, 0xA9A2,
+ 0xE800, 0xA9A3,
+ 0xE801, 0xA9F0,
+ 0xE802, 0xA9F1,
+ 0xE803, 0xA9F2,
+ 0xE804, 0xA9F3,
+ 0xE805, 0xA9F4,
+ 0xE806, 0xA9F5,
+ 0xE807, 0xA9F6,
+ 0xE808, 0xA9F7,
+ 0xE809, 0xA9F8,
+ 0xE80A, 0xA9F9,
+ 0xE80B, 0xA9FA,
+ 0xE80C, 0xA9FB,
+ 0xE80D, 0xA9FC,
+ 0xE80E, 0xA9FD,
+ 0xE80F, 0xA9FE,
+ 0xE810, 0xD7FA,
+ 0xE811, 0xD7FB,
+ 0xE812, 0xD7FC,
+ 0xE813, 0xD7FD,
+ 0xE814, 0xD7FE,
+ 0xE816, 0xFE51,
+ 0xE817, 0xFE52,
+ 0xE818, 0xFE53,
+ 0xE81E, 0xFE59,
+ 0xE826, 0xFE61,
+ 0xE82B, 0xFE66,
+ 0xE82C, 0xFE67,
+ 0xE831, 0xFE6C,
+ 0xE832, 0xFE6D,
+ 0xE83B, 0xFE76,
+ 0xE843, 0xFE7E,
+ 0xE854, 0xFE90,
+ 0xE855, 0xFE91,
+ 0xE864, 0xFEA0,
+ 0xF92C, 0xFD9C,
+ 0xF979, 0xFD9D,
+ 0xF995, 0xFD9E,
+ 0xF9E7, 0xFD9F,
+ 0xF9F1, 0xFDA0,
+ 0xFA0C, 0xFE40,
+ 0xFA0D, 0xFE41,
+ 0xFA0E, 0xFE42,
+ 0xFA0F, 0xFE43,
+ 0xFA11, 0xFE44,
+ 0xFA13, 0xFE45,
+ 0xFA14, 0xFE46,
+ 0xFA18, 0xFE47,
+ 0xFA1F, 0xFE48,
+ 0xFA20, 0xFE49,
+ 0xFA21, 0xFE4A,
+ 0xFA23, 0xFE4B,
+ 0xFA24, 0xFE4C,
+ 0xFA27, 0xFE4D,
+ 0xFA28, 0xFE4E,
+ 0xFA29, 0xFE4F,
+ 0xFE30, 0xA955,
+ 0xFE31, 0xA6F2,
+ 0xFE33, 0xA6F4,
+ 0xFE34, 0xA6F5,
+ 0xFE35, 0xA6E0,
+ 0xFE36, 0xA6E1,
+ 0xFE37, 0xA6F0,
+ 0xFE38, 0xA6F1,
+ 0xFE39, 0xA6E2,
+ 0xFE3A, 0xA6E3,
+ 0xFE3B, 0xA6EE,
+ 0xFE3C, 0xA6EF,
+ 0xFE3D, 0xA6E6,
+ 0xFE3E, 0xA6E7,
+ 0xFE3F, 0xA6E4,
+ 0xFE40, 0xA6E5,
+ 0xFE41, 0xA6E8,
+ 0xFE42, 0xA6E9,
+ 0xFE43, 0xA6EA,
+ 0xFE44, 0xA6EB,
+ 0xFE49, 0xA968,
+ 0xFE4A, 0xA969,
+ 0xFE4B, 0xA96A,
+ 0xFE4C, 0xA96B,
+ 0xFE4D, 0xA96C,
+ 0xFE4E, 0xA96D,
+ 0xFE4F, 0xA96E,
+ 0xFE50, 0xA96F,
+ 0xFE51, 0xA970,
+ 0xFE52, 0xA971,
+ 0xFE54, 0xA972,
+ 0xFE55, 0xA973,
+ 0xFE56, 0xA974,
+ 0xFE57, 0xA975,
+ 0xFE59, 0xA976,
+ 0xFE5A, 0xA977,
+ 0xFE5B, 0xA978,
+ 0xFE5C, 0xA979,
+ 0xFE5D, 0xA97A,
+ 0xFE5E, 0xA97B,
+ 0xFE5F, 0xA97C,
+ 0xFE60, 0xA97D,
+ 0xFE61, 0xA97E,
+ 0xFE62, 0xA980,
+ 0xFE63, 0xA981,
+ 0xFE64, 0xA982,
+ 0xFE65, 0xA983,
+ 0xFE66, 0xA984,
+ 0xFE68, 0xA985,
+ 0xFE69, 0xA986,
+ 0xFE6A, 0xA987,
+ 0xFE6B, 0xA988,
+ 0xFFE2, 0xA956,
+ 0xFFE4, 0xA957
+};
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-INTERNAL int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc);
-INTERNAL int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata);
-INTERNAL int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte);
-INTERNAL void gb18030_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GB18030_H */
+static const unsigned short int gb18030_fourbyte_lookup[] = {
+ 0x0080, 0x8130, 0x8130,
+ 0x0081, 0x8130, 0x8131,
+ 0x0082, 0x8130, 0x8132,
+ 0x0083, 0x8130, 0x8133,
+ 0x0084, 0x8130, 0x8134,
+ 0x0085, 0x8130, 0x8135,
+ 0x0086, 0x8130, 0x8136,
+ 0x0087, 0x8130, 0x8137,
+ 0x0088, 0x8130, 0x8138,
+ 0x0089, 0x8130, 0x8139,
+ 0x008A, 0x8130, 0x8230,
+ 0x008B, 0x8130, 0x8231,
+ 0x008C, 0x8130, 0x8232,
+ 0x008D, 0x8130, 0x8233,
+ 0x008E, 0x8130, 0x8234,
+ 0x008F, 0x8130, 0x8235,
+ 0x0090, 0x8130, 0x8236,
+ 0x0091, 0x8130, 0x8237,
+ 0x0092, 0x8130, 0x8238,
+ 0x0093, 0x8130, 0x8239,
+ 0x0094, 0x8130, 0x8330,
+ 0x0095, 0x8130, 0x8331,
+ 0x0096, 0x8130, 0x8332,
+ 0x0097, 0x8130, 0x8333,
+ 0x0098, 0x8130, 0x8334,
+ 0x0099, 0x8130, 0x8335,
+ 0x009A, 0x8130, 0x8336,
+ 0x009B, 0x8130, 0x8337,
+ 0x009C, 0x8130, 0x8338,
+ 0x009D, 0x8130, 0x8339,
+ 0x009E, 0x8130, 0x8430,
+ 0x009F, 0x8130, 0x8431,
+ 0x00A0, 0x8130, 0x8432,
+ 0x00A1, 0x8130, 0x8433,
+ 0x00A2, 0x8130, 0x8434,
+ 0x00A3, 0x8130, 0x8435,
+ 0x00A5, 0x8130, 0x8436,
+ 0x00A6, 0x8130, 0x8437,
+ 0x00A9, 0x8130, 0x8438,
+ 0x00AA, 0x8130, 0x8439,
+ 0x00AB, 0x8130, 0x8530,
+ 0x00AC, 0x8130, 0x8531,
+ 0x00AD, 0x8130, 0x8532,
+ 0x00AE, 0x8130, 0x8533,
+ 0x00AF, 0x8130, 0x8534,
+ 0x00B2, 0x8130, 0x8535,
+ 0x00B3, 0x8130, 0x8536,
+ 0x00B4, 0x8130, 0x8537,
+ 0x00B5, 0x8130, 0x8538,
+ 0x00B6, 0x8130, 0x8539,
+ 0x00B8, 0x8130, 0x8630,
+ 0x00B9, 0x8130, 0x8631,
+ 0x00BA, 0x8130, 0x8632,
+ 0x00BB, 0x8130, 0x8633,
+ 0x00BC, 0x8130, 0x8634,
+ 0x00BD, 0x8130, 0x8635,
+ 0x00BE, 0x8130, 0x8636,
+ 0x00BF, 0x8130, 0x8637,
+ 0x00C0, 0x8130, 0x8638,
+ 0x00C1, 0x8130, 0x8639,
+ 0x00C2, 0x8130, 0x8730,
+ 0x00C3, 0x8130, 0x8731,
+ 0x00C4, 0x8130, 0x8732,
+ 0x00C5, 0x8130, 0x8733,
+ 0x00C6, 0x8130, 0x8734,
+ 0x00C7, 0x8130, 0x8735,
+ 0x00C8, 0x8130, 0x8736,
+ 0x00C9, 0x8130, 0x8737,
+ 0x00CA, 0x8130, 0x8738,
+ 0x00CB, 0x8130, 0x8739,
+ 0x00CC, 0x8130, 0x8830,
+ 0x00CD, 0x8130, 0x8831,
+ 0x00CE, 0x8130, 0x8832,
+ 0x00CF, 0x8130, 0x8833,
+ 0x00D0, 0x8130, 0x8834,
+ 0x00D1, 0x8130, 0x8835,
+ 0x00D2, 0x8130, 0x8836,
+ 0x00D3, 0x8130, 0x8837,
+ 0x00D4, 0x8130, 0x8838,
+ 0x00D5, 0x8130, 0x8839,
+ 0x00D6, 0x8130, 0x8930,
+ 0x00D8, 0x8130, 0x8931,
+ 0x00D9, 0x8130, 0x8932,
+ 0x00DA, 0x8130, 0x8933,
+ 0x00DB, 0x8130, 0x8934,
+ 0x00DC, 0x8130, 0x8935,
+ 0x00DD, 0x8130, 0x8936,
+ 0x00DE, 0x8130, 0x8937,
+ 0x00DF, 0x8130, 0x8938,
+ 0x00E2, 0x8130, 0x8939,
+ 0x00E3, 0x8130, 0x8A30,
+ 0x00E4, 0x8130, 0x8A31,
+ 0x00E5, 0x8130, 0x8A32,
+ 0x00E6, 0x8130, 0x8A33,
+ 0x00E7, 0x8130, 0x8A34,
+ 0x00EB, 0x8130, 0x8A35,
+ 0x00EE, 0x8130, 0x8A36,
+ 0x00EF, 0x8130, 0x8A37,
+ 0x00F0, 0x8130, 0x8A38,
+ 0x00F1, 0x8130, 0x8A39,
+ 0x00F4, 0x8130, 0x8B30,
+ 0x00F5, 0x8130, 0x8B31,
+ 0x00F6, 0x8130, 0x8B32,
+ 0x00F8, 0x8130, 0x8B33,
+ 0x00FB, 0x8130, 0x8B34,
+ 0x00FD, 0x8130, 0x8B35,
+ 0x00FE, 0x8130, 0x8B36,
+ 0x00FF, 0x8130, 0x8B37,
+ 0x0100, 0x8130, 0x8B38,
+ 0x0102, 0x8130, 0x8B39,
+ 0x0103, 0x8130, 0x8C30,
+ 0x0104, 0x8130, 0x8C31,
+ 0x0105, 0x8130, 0x8C32,
+ 0x0106, 0x8130, 0x8C33,
+ 0x0107, 0x8130, 0x8C34,
+ 0x0108, 0x8130, 0x8C35,
+ 0x0109, 0x8130, 0x8C36,
+ 0x010A, 0x8130, 0x8C37,
+ 0x010B, 0x8130, 0x8C38,
+ 0x010C, 0x8130, 0x8C39,
+ 0x010D, 0x8130, 0x8D30,
+ 0x010E, 0x8130, 0x8D31,
+ 0x010F, 0x8130, 0x8D32,
+ 0x0110, 0x8130, 0x8D33,
+ 0x0111, 0x8130, 0x8D34,
+ 0x0112, 0x8130, 0x8D35,
+ 0x0114, 0x8130, 0x8D36,
+ 0x0115, 0x8130, 0x8D37,
+ 0x0116, 0x8130, 0x8D38,
+ 0x0117, 0x8130, 0x8D39,
+ 0x0118, 0x8130, 0x8E30,
+ 0x0119, 0x8130, 0x8E31,
+ 0x011A, 0x8130, 0x8E32,
+ 0x011C, 0x8130, 0x8E33,
+ 0x011D, 0x8130, 0x8E34,
+ 0x011E, 0x8130, 0x8E35,
+ 0x011F, 0x8130, 0x8E36,
+ 0x0120, 0x8130, 0x8E37,
+ 0x0121, 0x8130, 0x8E38,
+ 0x0122, 0x8130, 0x8E39,
+ 0x0123, 0x8130, 0x8F30,
+ 0x0124, 0x8130, 0x8F31,
+ 0x0125, 0x8130, 0x8F32,
+ 0x0126, 0x8130, 0x8F33,
+ 0x0127, 0x8130, 0x8F34,
+ 0x0128, 0x8130, 0x8F35,
+ 0x0129, 0x8130, 0x8F36,
+ 0x012A, 0x8130, 0x8F37,
+ 0x012C, 0x8130, 0x8F38,
+ 0x012D, 0x8130, 0x8F39,
+ 0x012E, 0x8130, 0x9030,
+ 0x012F, 0x8130, 0x9031,
+ 0x0130, 0x8130, 0x9032,
+ 0x0131, 0x8130, 0x9033,
+ 0x0132, 0x8130, 0x9034,
+ 0x0133, 0x8130, 0x9035,
+ 0x0134, 0x8130, 0x9036,
+ 0x0135, 0x8130, 0x9037,
+ 0x0136, 0x8130, 0x9038,
+ 0x0137, 0x8130, 0x9039,
+ 0x0138, 0x8130, 0x9130,
+ 0x0139, 0x8130, 0x9131,
+ 0x013A, 0x8130, 0x9132,
+ 0x013B, 0x8130, 0x9133,
+ 0x013C, 0x8130, 0x9134,
+ 0x013D, 0x8130, 0x9135,
+ 0x013E, 0x8130, 0x9136,
+ 0x013F, 0x8130, 0x9137,
+ 0x0140, 0x8130, 0x9138,
+ 0x0141, 0x8130, 0x9139,
+ 0x0142, 0x8130, 0x9230,
+ 0x0143, 0x8130, 0x9231,
+ 0x0145, 0x8130, 0x9232,
+ 0x0146, 0x8130, 0x9233,
+ 0x0147, 0x8130, 0x9234,
+ 0x0149, 0x8130, 0x9235,
+ 0x014A, 0x8130, 0x9236,
+ 0x014B, 0x8130, 0x9237,
+ 0x014C, 0x8130, 0x9238,
+ 0x014E, 0x8130, 0x9239,
+ 0x014F, 0x8130, 0x9330,
+ 0x0150, 0x8130, 0x9331,
+ 0x0151, 0x8130, 0x9332,
+ 0x0152, 0x8130, 0x9333,
+ 0x0153, 0x8130, 0x9334,
+ 0x0154, 0x8130, 0x9335,
+ 0x0155, 0x8130, 0x9336,
+ 0x0156, 0x8130, 0x9337,
+ 0x0157, 0x8130, 0x9338,
+ 0x0158, 0x8130, 0x9339,
+ 0x0159, 0x8130, 0x9430,
+ 0x015A, 0x8130, 0x9431,
+ 0x015B, 0x8130, 0x9432,
+ 0x015C, 0x8130, 0x9433,
+ 0x015D, 0x8130, 0x9434,
+ 0x015E, 0x8130, 0x9435,
+ 0x015F, 0x8130, 0x9436,
+ 0x0160, 0x8130, 0x9437,
+ 0x0161, 0x8130, 0x9438,
+ 0x0162, 0x8130, 0x9439,
+ 0x0163, 0x8130, 0x9530,
+ 0x0164, 0x8130, 0x9531,
+ 0x0165, 0x8130, 0x9532,
+ 0x0166, 0x8130, 0x9533,
+ 0x0167, 0x8130, 0x9534,
+ 0x0168, 0x8130, 0x9535,
+ 0x0169, 0x8130, 0x9536,
+ 0x016A, 0x8130, 0x9537,
+ 0x016C, 0x8130, 0x9538,
+ 0x016D, 0x8130, 0x9539,
+ 0x016E, 0x8130, 0x9630,
+ 0x016F, 0x8130, 0x9631,
+ 0x0170, 0x8130, 0x9632,
+ 0x0171, 0x8130, 0x9633,
+ 0x0172, 0x8130, 0x9634,
+ 0x0173, 0x8130, 0x9635,
+ 0x0174, 0x8130, 0x9636,
+ 0x0175, 0x8130, 0x9637,
+ 0x0176, 0x8130, 0x9638,
+ 0x0177, 0x8130, 0x9639,
+ 0x0178, 0x8130, 0x9730,
+ 0x0179, 0x8130, 0x9731,
+ 0x017A, 0x8130, 0x9732,
+ 0x017B, 0x8130, 0x9733,
+ 0x017C, 0x8130, 0x9734,
+ 0x017D, 0x8130, 0x9735,
+ 0x017E, 0x8130, 0x9736,
+ 0x017F, 0x8130, 0x9737,
+ 0x0180, 0x8130, 0x9738,
+ 0x0181, 0x8130, 0x9739,
+ 0x0182, 0x8130, 0x9830,
+ 0x0183, 0x8130, 0x9831,
+ 0x0184, 0x8130, 0x9832,
+ 0x0185, 0x8130, 0x9833,
+ 0x0186, 0x8130, 0x9834,
+ 0x0187, 0x8130, 0x9835,
+ 0x0188, 0x8130, 0x9836,
+ 0x0189, 0x8130, 0x9837,
+ 0x018A, 0x8130, 0x9838,
+ 0x018B, 0x8130, 0x9839,
+ 0x018C, 0x8130, 0x9930,
+ 0x018D, 0x8130, 0x9931,
+ 0x018E, 0x8130, 0x9932,
+ 0x018F, 0x8130, 0x9933,
+ 0x0190, 0x8130, 0x9934,
+ 0x0191, 0x8130, 0x9935,
+ 0x0192, 0x8130, 0x9936,
+ 0x0193, 0x8130, 0x9937,
+ 0x0194, 0x8130, 0x9938,
+ 0x0195, 0x8130, 0x9939,
+ 0x0196, 0x8130, 0x9A30,
+ 0x0197, 0x8130, 0x9A31,
+ 0x0198, 0x8130, 0x9A32,
+ 0x0199, 0x8130, 0x9A33,
+ 0x019A, 0x8130, 0x9A34,
+ 0x019B, 0x8130, 0x9A35,
+ 0x019C, 0x8130, 0x9A36,
+ 0x019D, 0x8130, 0x9A37,
+ 0x019E, 0x8130, 0x9A38,
+ 0x019F, 0x8130, 0x9A39,
+ 0x01A0, 0x8130, 0x9B30,
+ 0x01A1, 0x8130, 0x9B31,
+ 0x01A2, 0x8130, 0x9B32,
+ 0x01A3, 0x8130, 0x9B33,
+ 0x01A4, 0x8130, 0x9B34,
+ 0x01A5, 0x8130, 0x9B35,
+ 0x01A6, 0x8130, 0x9B36,
+ 0x01A7, 0x8130, 0x9B37,
+ 0x01A8, 0x8130, 0x9B38,
+ 0x01A9, 0x8130, 0x9B39,
+ 0x01AA, 0x8130, 0x9C30,
+ 0x01AB, 0x8130, 0x9C31,
+ 0x01AC, 0x8130, 0x9C32,
+ 0x01AD, 0x8130, 0x9C33,
+ 0x01AE, 0x8130, 0x9C34,
+ 0x01AF, 0x8130, 0x9C35,
+ 0x01B0, 0x8130, 0x9C36,
+ 0x01B1, 0x8130, 0x9C37,
+ 0x01B2, 0x8130, 0x9C38,
+ 0x01B3, 0x8130, 0x9C39,
+ 0x01B4, 0x8130, 0x9D30,
+ 0x01B5, 0x8130, 0x9D31,
+ 0x01B6, 0x8130, 0x9D32,
+ 0x01B7, 0x8130, 0x9D33,
+ 0x01B8, 0x8130, 0x9D34,
+ 0x01B9, 0x8130, 0x9D35,
+ 0x01BA, 0x8130, 0x9D36,
+ 0x01BB, 0x8130, 0x9D37,
+ 0x01BC, 0x8130, 0x9D38,
+ 0x01BD, 0x8130, 0x9D39,
+ 0x01BE, 0x8130, 0x9E30,
+ 0x01BF, 0x8130, 0x9E31,
+ 0x01C0, 0x8130, 0x9E32,
+ 0x01C1, 0x8130, 0x9E33,
+ 0x01C2, 0x8130, 0x9E34,
+ 0x01C3, 0x8130, 0x9E35,
+ 0x01C4, 0x8130, 0x9E36,
+ 0x01C5, 0x8130, 0x9E37,
+ 0x01C6, 0x8130, 0x9E38,
+ 0x01C7, 0x8130, 0x9E39,
+ 0x01C8, 0x8130, 0x9F30,
+ 0x01C9, 0x8130, 0x9F31,
+ 0x01CA, 0x8130, 0x9F32,
+ 0x01CB, 0x8130, 0x9F33,
+ 0x01CC, 0x8130, 0x9F34,
+ 0x01CD, 0x8130, 0x9F35,
+ 0x01CF, 0x8130, 0x9F36,
+ 0x01D1, 0x8130, 0x9F37,
+ 0x01D3, 0x8130, 0x9F38,
+ 0x01D5, 0x8130, 0x9F39,
+ 0x01D7, 0x8130, 0xA030,
+ 0x01D9, 0x8130, 0xA031,
+ 0x01DB, 0x8130, 0xA032,
+ 0x01DD, 0x8130, 0xA033,
+ 0x01DE, 0x8130, 0xA034,
+ 0x01DF, 0x8130, 0xA035,
+ 0x01E0, 0x8130, 0xA036,
+ 0x01E1, 0x8130, 0xA037,
+ 0x01E2, 0x8130, 0xA038,
+ 0x01E3, 0x8130, 0xA039,
+ 0x01E4, 0x8130, 0xA130,
+ 0x01E5, 0x8130, 0xA131,
+ 0x01E6, 0x8130, 0xA132,
+ 0x01E7, 0x8130, 0xA133,
+ 0x01E8, 0x8130, 0xA134,
+ 0x01E9, 0x8130, 0xA135,
+ 0x01EA, 0x8130, 0xA136,
+ 0x01EB, 0x8130, 0xA137,
+ 0x01EC, 0x8130, 0xA138,
+ 0x01ED, 0x8130, 0xA139,
+ 0x01EE, 0x8130, 0xA230,
+ 0x01EF, 0x8130, 0xA231,
+ 0x01F0, 0x8130, 0xA232,
+ 0x01F1, 0x8130, 0xA233,
+ 0x01F2, 0x8130, 0xA234,
+ 0x01F3, 0x8130, 0xA235,
+ 0x01F4, 0x8130, 0xA236,
+ 0x01F5, 0x8130, 0xA237,
+ 0x01F6, 0x8130, 0xA238,
+ 0x01F7, 0x8130, 0xA239,
+ 0x01F8, 0x8130, 0xA330,
+ 0x01FA, 0x8130, 0xA331,
+ 0x01FB, 0x8130, 0xA332,
+ 0x01FC, 0x8130, 0xA333,
+ 0x01FD, 0x8130, 0xA334,
+ 0x01FE, 0x8130, 0xA335,
+ 0x01FF, 0x8130, 0xA336,
+ 0x0200, 0x8130, 0xA337,
+ 0x0201, 0x8130, 0xA338,
+ 0x0202, 0x8130, 0xA339,
+ 0x0203, 0x8130, 0xA430,
+ 0x0204, 0x8130, 0xA431,
+ 0x0205, 0x8130, 0xA432,
+ 0x0206, 0x8130, 0xA433,
+ 0x0207, 0x8130, 0xA434,
+ 0x0208, 0x8130, 0xA435,
+ 0x0209, 0x8130, 0xA436,
+ 0x020A, 0x8130, 0xA437,
+ 0x020B, 0x8130, 0xA438,
+ 0x020C, 0x8130, 0xA439,
+ 0x020D, 0x8130, 0xA530,
+ 0x020E, 0x8130, 0xA531,
+ 0x020F, 0x8130, 0xA532,
+ 0x0210, 0x8130, 0xA533,
+ 0x0211, 0x8130, 0xA534,
+ 0x0212, 0x8130, 0xA535,
+ 0x0213, 0x8130, 0xA536,
+ 0x0214, 0x8130, 0xA537,
+ 0x0215, 0x8130, 0xA538,
+ 0x0216, 0x8130, 0xA539,
+ 0x0217, 0x8130, 0xA630,
+ 0x0218, 0x8130, 0xA631,
+ 0x0219, 0x8130, 0xA632,
+ 0x021A, 0x8130, 0xA633,
+ 0x021B, 0x8130, 0xA634,
+ 0x021C, 0x8130, 0xA635,
+ 0x021D, 0x8130, 0xA636,
+ 0x021E, 0x8130, 0xA637,
+ 0x021F, 0x8130, 0xA638,
+ 0x0220, 0x8130, 0xA639,
+ 0x0221, 0x8130, 0xA730,
+ 0x0222, 0x8130, 0xA731,
+ 0x0223, 0x8130, 0xA732,
+ 0x0224, 0x8130, 0xA733,
+ 0x0225, 0x8130, 0xA734,
+ 0x0226, 0x8130, 0xA735,
+ 0x0227, 0x8130, 0xA736,
+ 0x0228, 0x8130, 0xA737,
+ 0x0229, 0x8130, 0xA738,
+ 0x022A, 0x8130, 0xA739,
+ 0x022B, 0x8130, 0xA830,
+ 0x022C, 0x8130, 0xA831,
+ 0x022D, 0x8130, 0xA832,
+ 0x022E, 0x8130, 0xA833,
+ 0x022F, 0x8130, 0xA834,
+ 0x0230, 0x8130, 0xA835,
+ 0x0231, 0x8130, 0xA836,
+ 0x0232, 0x8130, 0xA837,
+ 0x0233, 0x8130, 0xA838,
+ 0x0234, 0x8130, 0xA839,
+ 0x0235, 0x8130, 0xA930,
+ 0x0236, 0x8130, 0xA931,
+ 0x0237, 0x8130, 0xA932,
+ 0x0238, 0x8130, 0xA933,
+ 0x0239, 0x8130, 0xA934,
+ 0x023A, 0x8130, 0xA935,
+ 0x023B, 0x8130, 0xA936,
+ 0x023C, 0x8130, 0xA937,
+ 0x023D, 0x8130, 0xA938,
+ 0x023E, 0x8130, 0xA939,
+ 0x023F, 0x8130, 0xAA30,
+ 0x0240, 0x8130, 0xAA31,
+ 0x0241, 0x8130, 0xAA32,
+ 0x0242, 0x8130, 0xAA33,
+ 0x0243, 0x8130, 0xAA34,
+ 0x0244, 0x8130, 0xAA35,
+ 0x0245, 0x8130, 0xAA36,
+ 0x0246, 0x8130, 0xAA37,
+ 0x0247, 0x8130, 0xAA38,
+ 0x0248, 0x8130, 0xAA39,
+ 0x0249, 0x8130, 0xAB30,
+ 0x024A, 0x8130, 0xAB31,
+ 0x024B, 0x8130, 0xAB32,
+ 0x024C, 0x8130, 0xAB33,
+ 0x024D, 0x8130, 0xAB34,
+ 0x024E, 0x8130, 0xAB35,
+ 0x024F, 0x8130, 0xAB36,
+ 0x0250, 0x8130, 0xAB37,
+ 0x0252, 0x8130, 0xAB38,
+ 0x0253, 0x8130, 0xAB39,
+ 0x0254, 0x8130, 0xAC30,
+ 0x0255, 0x8130, 0xAC31,
+ 0x0256, 0x8130, 0xAC32,
+ 0x0257, 0x8130, 0xAC33,
+ 0x0258, 0x8130, 0xAC34,
+ 0x0259, 0x8130, 0xAC35,
+ 0x025A, 0x8130, 0xAC36,
+ 0x025B, 0x8130, 0xAC37,
+ 0x025C, 0x8130, 0xAC38,
+ 0x025D, 0x8130, 0xAC39,
+ 0x025E, 0x8130, 0xAD30,
+ 0x025F, 0x8130, 0xAD31,
+ 0x0260, 0x8130, 0xAD32,
+ 0x0262, 0x8130, 0xAD33,
+ 0x0263, 0x8130, 0xAD34,
+ 0x0264, 0x8130, 0xAD35,
+ 0x0265, 0x8130, 0xAD36,
+ 0x0266, 0x8130, 0xAD37,
+ 0x0267, 0x8130, 0xAD38,
+ 0x0268, 0x8130, 0xAD39,
+ 0x0269, 0x8130, 0xAE30,
+ 0x026A, 0x8130, 0xAE31,
+ 0x026B, 0x8130, 0xAE32,
+ 0x026C, 0x8130, 0xAE33,
+ 0x026D, 0x8130, 0xAE34,
+ 0x026E, 0x8130, 0xAE35,
+ 0x026F, 0x8130, 0xAE36,
+ 0x0270, 0x8130, 0xAE37,
+ 0x0271, 0x8130, 0xAE38,
+ 0x0272, 0x8130, 0xAE39,
+ 0x0273, 0x8130, 0xAF30,
+ 0x0274, 0x8130, 0xAF31,
+ 0x0275, 0x8130, 0xAF32,
+ 0x0276, 0x8130, 0xAF33,
+ 0x0277, 0x8130, 0xAF34,
+ 0x0278, 0x8130, 0xAF35,
+ 0x0279, 0x8130, 0xAF36,
+ 0x027A, 0x8130, 0xAF37,
+ 0x027B, 0x8130, 0xAF38,
+ 0x027C, 0x8130, 0xAF39,
+ 0x027D, 0x8130, 0xB030,
+ 0x027E, 0x8130, 0xB031,
+ 0x027F, 0x8130, 0xB032,
+ 0x0280, 0x8130, 0xB033,
+ 0x0281, 0x8130, 0xB034,
+ 0x0282, 0x8130, 0xB035,
+ 0x0283, 0x8130, 0xB036,
+ 0x0284, 0x8130, 0xB037,
+ 0x0285, 0x8130, 0xB038,
+ 0x0286, 0x8130, 0xB039,
+ 0x0287, 0x8130, 0xB130,
+ 0x0288, 0x8130, 0xB131,
+ 0x0289, 0x8130, 0xB132,
+ 0x028A, 0x8130, 0xB133,
+ 0x028B, 0x8130, 0xB134,
+ 0x028C, 0x8130, 0xB135,
+ 0x028D, 0x8130, 0xB136,
+ 0x028E, 0x8130, 0xB137,
+ 0x028F, 0x8130, 0xB138,
+ 0x0290, 0x8130, 0xB139,
+ 0x0291, 0x8130, 0xB230,
+ 0x0292, 0x8130, 0xB231,
+ 0x0293, 0x8130, 0xB232,
+ 0x0294, 0x8130, 0xB233,
+ 0x0295, 0x8130, 0xB234,
+ 0x0296, 0x8130, 0xB235,
+ 0x0297, 0x8130, 0xB236,
+ 0x0298, 0x8130, 0xB237,
+ 0x0299, 0x8130, 0xB238,
+ 0x029A, 0x8130, 0xB239,
+ 0x029B, 0x8130, 0xB330,
+ 0x029C, 0x8130, 0xB331,
+ 0x029D, 0x8130, 0xB332,
+ 0x029E, 0x8130, 0xB333,
+ 0x029F, 0x8130, 0xB334,
+ 0x02A0, 0x8130, 0xB335,
+ 0x02A1, 0x8130, 0xB336,
+ 0x02A2, 0x8130, 0xB337,
+ 0x02A3, 0x8130, 0xB338,
+ 0x02A4, 0x8130, 0xB339,
+ 0x02A5, 0x8130, 0xB430,
+ 0x02A6, 0x8130, 0xB431,
+ 0x02A7, 0x8130, 0xB432,
+ 0x02A8, 0x8130, 0xB433,
+ 0x02A9, 0x8130, 0xB434,
+ 0x02AA, 0x8130, 0xB435,
+ 0x02AB, 0x8130, 0xB436,
+ 0x02AC, 0x8130, 0xB437,
+ 0x02AD, 0x8130, 0xB438,
+ 0x02AE, 0x8130, 0xB439,
+ 0x02AF, 0x8130, 0xB530,
+ 0x02B0, 0x8130, 0xB531,
+ 0x02B1, 0x8130, 0xB532,
+ 0x02B2, 0x8130, 0xB533,
+ 0x02B3, 0x8130, 0xB534,
+ 0x02B4, 0x8130, 0xB535,
+ 0x02B5, 0x8130, 0xB536,
+ 0x02B6, 0x8130, 0xB537,
+ 0x02B7, 0x8130, 0xB538,
+ 0x02B8, 0x8130, 0xB539,
+ 0x02B9, 0x8130, 0xB630,
+ 0x02BA, 0x8130, 0xB631,
+ 0x02BB, 0x8130, 0xB632,
+ 0x02BC, 0x8130, 0xB633,
+ 0x02BD, 0x8130, 0xB634,
+ 0x02BE, 0x8130, 0xB635,
+ 0x02BF, 0x8130, 0xB636,
+ 0x02C0, 0x8130, 0xB637,
+ 0x02C1, 0x8130, 0xB638,
+ 0x02C2, 0x8130, 0xB639,
+ 0x02C3, 0x8130, 0xB730,
+ 0x02C4, 0x8130, 0xB731,
+ 0x02C5, 0x8130, 0xB732,
+ 0x02C6, 0x8130, 0xB733,
+ 0x02C8, 0x8130, 0xB734,
+ 0x02CC, 0x8130, 0xB735,
+ 0x02CD, 0x8130, 0xB736,
+ 0x02CE, 0x8130, 0xB737,
+ 0x02CF, 0x8130, 0xB738,
+ 0x02D0, 0x8130, 0xB739,
+ 0x02D1, 0x8130, 0xB830,
+ 0x02D2, 0x8130, 0xB831,
+ 0x02D3, 0x8130, 0xB832,
+ 0x02D4, 0x8130, 0xB833,
+ 0x02D5, 0x8130, 0xB834,
+ 0x02D6, 0x8130, 0xB835,
+ 0x02D7, 0x8130, 0xB836,
+ 0x02D8, 0x8130, 0xB837,
+ 0x02DA, 0x8130, 0xB838,
+ 0x02DB, 0x8130, 0xB839,
+ 0x02DC, 0x8130, 0xB930,
+ 0x02DD, 0x8130, 0xB931,
+ 0x02DE, 0x8130, 0xB932,
+ 0x02DF, 0x8130, 0xB933,
+ 0x02E0, 0x8130, 0xB934,
+ 0x02E1, 0x8130, 0xB935,
+ 0x02E2, 0x8130, 0xB936,
+ 0x02E3, 0x8130, 0xB937,
+ 0x02E4, 0x8130, 0xB938,
+ 0x02E5, 0x8130, 0xB939,
+ 0x02E6, 0x8130, 0xBA30,
+ 0x02E7, 0x8130, 0xBA31,
+ 0x02E8, 0x8130, 0xBA32,
+ 0x02E9, 0x8130, 0xBA33,
+ 0x02EA, 0x8130, 0xBA34,
+ 0x02EB, 0x8130, 0xBA35,
+ 0x02EC, 0x8130, 0xBA36,
+ 0x02ED, 0x8130, 0xBA37,
+ 0x02EE, 0x8130, 0xBA38,
+ 0x02EF, 0x8130, 0xBA39,
+ 0x02F0, 0x8130, 0xBB30,
+ 0x02F1, 0x8130, 0xBB31,
+ 0x02F2, 0x8130, 0xBB32,
+ 0x02F3, 0x8130, 0xBB33,
+ 0x02F4, 0x8130, 0xBB34,
+ 0x02F5, 0x8130, 0xBB35,
+ 0x02F6, 0x8130, 0xBB36,
+ 0x02F7, 0x8130, 0xBB37,
+ 0x02F8, 0x8130, 0xBB38,
+ 0x02F9, 0x8130, 0xBB39,
+ 0x02FA, 0x8130, 0xBC30,
+ 0x02FB, 0x8130, 0xBC31,
+ 0x02FC, 0x8130, 0xBC32,
+ 0x02FD, 0x8130, 0xBC33,
+ 0x02FE, 0x8130, 0xBC34,
+ 0x02FF, 0x8130, 0xBC35,
+ 0x0300, 0x8130, 0xBC36,
+ 0x0301, 0x8130, 0xBC37,
+ 0x0302, 0x8130, 0xBC38,
+ 0x0303, 0x8130, 0xBC39,
+ 0x0304, 0x8130, 0xBD30,
+ 0x0305, 0x8130, 0xBD31,
+ 0x0306, 0x8130, 0xBD32,
+ 0x0307, 0x8130, 0xBD33,
+ 0x0308, 0x8130, 0xBD34,
+ 0x0309, 0x8130, 0xBD35,
+ 0x030A, 0x8130, 0xBD36,
+ 0x030B, 0x8130, 0xBD37,
+ 0x030C, 0x8130, 0xBD38,
+ 0x030D, 0x8130, 0xBD39,
+ 0x030E, 0x8130, 0xBE30,
+ 0x030F, 0x8130, 0xBE31,
+ 0x0310, 0x8130, 0xBE32,
+ 0x0311, 0x8130, 0xBE33,
+ 0x0312, 0x8130, 0xBE34,
+ 0x0313, 0x8130, 0xBE35,
+ 0x0314, 0x8130, 0xBE36,
+ 0x0315, 0x8130, 0xBE37,
+ 0x0316, 0x8130, 0xBE38,
+ 0x0317, 0x8130, 0xBE39,
+ 0x0318, 0x8130, 0xBF30,
+ 0x0319, 0x8130, 0xBF31,
+ 0x031A, 0x8130, 0xBF32,
+ 0x031B, 0x8130, 0xBF33,
+ 0x031C, 0x8130, 0xBF34,
+ 0x031D, 0x8130, 0xBF35,
+ 0x031E, 0x8130, 0xBF36,
+ 0x031F, 0x8130, 0xBF37,
+ 0x0320, 0x8130, 0xBF38,
+ 0x0321, 0x8130, 0xBF39,
+ 0x0322, 0x8130, 0xC030,
+ 0x0323, 0x8130, 0xC031,
+ 0x0324, 0x8130, 0xC032,
+ 0x0325, 0x8130, 0xC033,
+ 0x0326, 0x8130, 0xC034,
+ 0x0327, 0x8130, 0xC035,
+ 0x0328, 0x8130, 0xC036,
+ 0x0329, 0x8130, 0xC037,
+ 0x032A, 0x8130, 0xC038,
+ 0x032B, 0x8130, 0xC039,
+ 0x032C, 0x8130, 0xC130,
+ 0x032D, 0x8130, 0xC131,
+ 0x032E, 0x8130, 0xC132,
+ 0x032F, 0x8130, 0xC133,
+ 0x0330, 0x8130, 0xC134,
+ 0x0331, 0x8130, 0xC135,
+ 0x0332, 0x8130, 0xC136,
+ 0x0333, 0x8130, 0xC137,
+ 0x0334, 0x8130, 0xC138,
+ 0x0335, 0x8130, 0xC139,
+ 0x0336, 0x8130, 0xC230,
+ 0x0337, 0x8130, 0xC231,
+ 0x0338, 0x8130, 0xC232,
+ 0x0339, 0x8130, 0xC233,
+ 0x033A, 0x8130, 0xC234,
+ 0x033B, 0x8130, 0xC235,
+ 0x033C, 0x8130, 0xC236,
+ 0x033D, 0x8130, 0xC237,
+ 0x033E, 0x8130, 0xC238,
+ 0x033F, 0x8130, 0xC239,
+ 0x0340, 0x8130, 0xC330,
+ 0x0341, 0x8130, 0xC331,
+ 0x0342, 0x8130, 0xC332,
+ 0x0343, 0x8130, 0xC333,
+ 0x0344, 0x8130, 0xC334,
+ 0x0345, 0x8130, 0xC335,
+ 0x0346, 0x8130, 0xC336,
+ 0x0347, 0x8130, 0xC337,
+ 0x0348, 0x8130, 0xC338,
+ 0x0349, 0x8130, 0xC339,
+ 0x034A, 0x8130, 0xC430,
+ 0x034B, 0x8130, 0xC431,
+ 0x034C, 0x8130, 0xC432,
+ 0x034D, 0x8130, 0xC433,
+ 0x034E, 0x8130, 0xC434,
+ 0x034F, 0x8130, 0xC435,
+ 0x0350, 0x8130, 0xC436,
+ 0x0351, 0x8130, 0xC437,
+ 0x0352, 0x8130, 0xC438,
+ 0x0353, 0x8130, 0xC439,
+ 0x0354, 0x8130, 0xC530,
+ 0x0355, 0x8130, 0xC531,
+ 0x0356, 0x8130, 0xC532,
+ 0x0357, 0x8130, 0xC533,
+ 0x0358, 0x8130, 0xC534,
+ 0x0359, 0x8130, 0xC535,
+ 0x035A, 0x8130, 0xC536,
+ 0x035B, 0x8130, 0xC537,
+ 0x035C, 0x8130, 0xC538,
+ 0x035D, 0x8130, 0xC539,
+ 0x035E, 0x8130, 0xC630,
+ 0x035F, 0x8130, 0xC631,
+ 0x0360, 0x8130, 0xC632,
+ 0x0361, 0x8130, 0xC633,
+ 0x0362, 0x8130, 0xC634,
+ 0x0363, 0x8130, 0xC635,
+ 0x0364, 0x8130, 0xC636,
+ 0x0365, 0x8130, 0xC637,
+ 0x0366, 0x8130, 0xC638,
+ 0x0367, 0x8130, 0xC639,
+ 0x0368, 0x8130, 0xC730,
+ 0x0369, 0x8130, 0xC731,
+ 0x036A, 0x8130, 0xC732,
+ 0x036B, 0x8130, 0xC733,
+ 0x036C, 0x8130, 0xC734,
+ 0x036D, 0x8130, 0xC735,
+ 0x036E, 0x8130, 0xC736,
+ 0x036F, 0x8130, 0xC737,
+ 0x0370, 0x8130, 0xC738,
+ 0x0371, 0x8130, 0xC739,
+ 0x0372, 0x8130, 0xC830,
+ 0x0373, 0x8130, 0xC831,
+ 0x0374, 0x8130, 0xC832,
+ 0x0375, 0x8130, 0xC833,
+ 0x0376, 0x8130, 0xC834,
+ 0x0377, 0x8130, 0xC835,
+ 0x0378, 0x8130, 0xC836,
+ 0x0379, 0x8130, 0xC837,
+ 0x037A, 0x8130, 0xC838,
+ 0x037B, 0x8130, 0xC839,
+ 0x037C, 0x8130, 0xC930,
+ 0x037D, 0x8130, 0xC931,
+ 0x037E, 0x8130, 0xC932,
+ 0x037F, 0x8130, 0xC933,
+ 0x0380, 0x8130, 0xC934,
+ 0x0381, 0x8130, 0xC935,
+ 0x0382, 0x8130, 0xC936,
+ 0x0383, 0x8130, 0xC937,
+ 0x0384, 0x8130, 0xC938,
+ 0x0385, 0x8130, 0xC939,
+ 0x0386, 0x8130, 0xCA30,
+ 0x0387, 0x8130, 0xCA31,
+ 0x0388, 0x8130, 0xCA32,
+ 0x0389, 0x8130, 0xCA33,
+ 0x038A, 0x8130, 0xCA34,
+ 0x038B, 0x8130, 0xCA35,
+ 0x038C, 0x8130, 0xCA36,
+ 0x038D, 0x8130, 0xCA37,
+ 0x038E, 0x8130, 0xCA38,
+ 0x038F, 0x8130, 0xCA39,
+ 0x0390, 0x8130, 0xCB30,
+ 0x03A2, 0x8130, 0xCB31,
+ 0x03AA, 0x8130, 0xCB32,
+ 0x03AB, 0x8130, 0xCB33,
+ 0x03AC, 0x8130, 0xCB34,
+ 0x03AD, 0x8130, 0xCB35,
+ 0x03AE, 0x8130, 0xCB36,
+ 0x03AF, 0x8130, 0xCB37,
+ 0x03B0, 0x8130, 0xCB38,
+ 0x03C2, 0x8130, 0xCB39,
+ 0x03CA, 0x8130, 0xCC30,
+ 0x03CB, 0x8130, 0xCC31,
+ 0x03CC, 0x8130, 0xCC32,
+ 0x03CD, 0x8130, 0xCC33,
+ 0x03CE, 0x8130, 0xCC34,
+ 0x03CF, 0x8130, 0xCC35,
+ 0x03D0, 0x8130, 0xCC36,
+ 0x03D1, 0x8130, 0xCC37,
+ 0x03D2, 0x8130, 0xCC38,
+ 0x03D3, 0x8130, 0xCC39,
+ 0x03D4, 0x8130, 0xCD30,
+ 0x03D5, 0x8130, 0xCD31,
+ 0x03D6, 0x8130, 0xCD32,
+ 0x03D7, 0x8130, 0xCD33,
+ 0x03D8, 0x8130, 0xCD34,
+ 0x03D9, 0x8130, 0xCD35,
+ 0x03DA, 0x8130, 0xCD36,
+ 0x03DB, 0x8130, 0xCD37,
+ 0x03DC, 0x8130, 0xCD38,
+ 0x03DD, 0x8130, 0xCD39,
+ 0x03DE, 0x8130, 0xCE30,
+ 0x03DF, 0x8130, 0xCE31,
+ 0x03E0, 0x8130, 0xCE32,
+ 0x03E1, 0x8130, 0xCE33,
+ 0x03E2, 0x8130, 0xCE34,
+ 0x03E3, 0x8130, 0xCE35,
+ 0x03E4, 0x8130, 0xCE36,
+ 0x03E5, 0x8130, 0xCE37,
+ 0x03E6, 0x8130, 0xCE38,
+ 0x03E7, 0x8130, 0xCE39,
+ 0x03E8, 0x8130, 0xCF30,
+ 0x03E9, 0x8130, 0xCF31,
+ 0x03EA, 0x8130, 0xCF32,
+ 0x03EB, 0x8130, 0xCF33,
+ 0x03EC, 0x8130, 0xCF34,
+ 0x03ED, 0x8130, 0xCF35,
+ 0x03EE, 0x8130, 0xCF36,
+ 0x03EF, 0x8130, 0xCF37,
+ 0x03F0, 0x8130, 0xCF38,
+ 0x03F1, 0x8130, 0xCF39,
+ 0x03F2, 0x8130, 0xD030,
+ 0x03F3, 0x8130, 0xD031,
+ 0x03F4, 0x8130, 0xD032,
+ 0x03F5, 0x8130, 0xD033,
+ 0x03F6, 0x8130, 0xD034,
+ 0x03F7, 0x8130, 0xD035,
+ 0x03F8, 0x8130, 0xD036,
+ 0x03F9, 0x8130, 0xD037,
+ 0x03FA, 0x8130, 0xD038,
+ 0x03FB, 0x8130, 0xD039,
+ 0x03FC, 0x8130, 0xD130,
+ 0x03FD, 0x8130, 0xD131,
+ 0x03FE, 0x8130, 0xD132,
+ 0x03FF, 0x8130, 0xD133,
+ 0x0400, 0x8130, 0xD134,
+ 0x0402, 0x8130, 0xD135,
+ 0x0403, 0x8130, 0xD136,
+ 0x0404, 0x8130, 0xD137,
+ 0x0405, 0x8130, 0xD138,
+ 0x0406, 0x8130, 0xD139,
+ 0x0407, 0x8130, 0xD230,
+ 0x0408, 0x8130, 0xD231,
+ 0x0409, 0x8130, 0xD232,
+ 0x040A, 0x8130, 0xD233,
+ 0x040B, 0x8130, 0xD234,
+ 0x040C, 0x8130, 0xD235,
+ 0x040D, 0x8130, 0xD236,
+ 0x040E, 0x8130, 0xD237,
+ 0x040F, 0x8130, 0xD238,
+ 0x0450, 0x8130, 0xD239,
+ 0x2011, 0x8136, 0xA532,
+ 0x2012, 0x8136, 0xA533,
+ 0x2017, 0x8136, 0xA534,
+ 0x201A, 0x8136, 0xA535,
+ 0x201B, 0x8136, 0xA536,
+ 0x201E, 0x8136, 0xA537,
+ 0x201F, 0x8136, 0xA538,
+ 0x2020, 0x8136, 0xA539,
+ 0x2021, 0x8136, 0xA630,
+ 0x2022, 0x8136, 0xA631,
+ 0x2023, 0x8136, 0xA632,
+ 0x2024, 0x8136, 0xA633,
+ 0x2027, 0x8136, 0xA634,
+ 0x2028, 0x8136, 0xA635,
+ 0x2029, 0x8136, 0xA636,
+ 0x202A, 0x8136, 0xA637,
+ 0x202B, 0x8136, 0xA638,
+ 0x202C, 0x8136, 0xA639,
+ 0x202D, 0x8136, 0xA730,
+ 0x202E, 0x8136, 0xA731,
+ 0x202F, 0x8136, 0xA732,
+ 0x2031, 0x8136, 0xA733,
+ 0x2034, 0x8136, 0xA734,
+ 0x2036, 0x8136, 0xA735,
+ 0x2037, 0x8136, 0xA736,
+ 0x2038, 0x8136, 0xA737,
+ 0x2039, 0x8136, 0xA738,
+ 0x203A, 0x8136, 0xA739,
+ 0x203C, 0x8136, 0xA830,
+ 0x203D, 0x8136, 0xA831,
+ 0x203E, 0x8136, 0xA832,
+ 0x203F, 0x8136, 0xA833,
+ 0x2040, 0x8136, 0xA834,
+ 0x2041, 0x8136, 0xA835,
+ 0x2042, 0x8136, 0xA836,
+ 0x2043, 0x8136, 0xA837,
+ 0x2044, 0x8136, 0xA838,
+ 0x2045, 0x8136, 0xA839,
+ 0x2046, 0x8136, 0xA930,
+ 0x2047, 0x8136, 0xA931,
+ 0x2048, 0x8136, 0xA932,
+ 0x2049, 0x8136, 0xA933,
+ 0x204A, 0x8136, 0xA934,
+ 0x204B, 0x8136, 0xA935,
+ 0x204C, 0x8136, 0xA936,
+ 0x204D, 0x8136, 0xA937,
+ 0x204E, 0x8136, 0xA938,
+ 0x204F, 0x8136, 0xA939,
+ 0x2050, 0x8136, 0xAA30,
+ 0x2051, 0x8136, 0xAA31,
+ 0x2052, 0x8136, 0xAA32,
+ 0x2053, 0x8136, 0xAA33,
+ 0x2054, 0x8136, 0xAA34,
+ 0x2055, 0x8136, 0xAA35,
+ 0x2056, 0x8136, 0xAA36,
+ 0x2057, 0x8136, 0xAA37,
+ 0x2058, 0x8136, 0xAA38,
+ 0x2059, 0x8136, 0xAA39,
+ 0x205A, 0x8136, 0xAB30,
+ 0x205B, 0x8136, 0xAB31,
+ 0x205C, 0x8136, 0xAB32,
+ 0x205D, 0x8136, 0xAB33,
+ 0x205E, 0x8136, 0xAB34,
+ 0x205F, 0x8136, 0xAB35,
+ 0x2060, 0x8136, 0xAB36,
+ 0x2061, 0x8136, 0xAB37,
+ 0x2062, 0x8136, 0xAB38,
+ 0x2063, 0x8136, 0xAB39,
+ 0x2064, 0x8136, 0xAC30,
+ 0x2065, 0x8136, 0xAC31,
+ 0x2066, 0x8136, 0xAC32,
+ 0x2067, 0x8136, 0xAC33,
+ 0x2068, 0x8136, 0xAC34,
+ 0x2069, 0x8136, 0xAC35,
+ 0x206A, 0x8136, 0xAC36,
+ 0x206B, 0x8136, 0xAC37,
+ 0x206C, 0x8136, 0xAC38,
+ 0x206D, 0x8136, 0xAC39,
+ 0x206E, 0x8136, 0xAD30,
+ 0x206F, 0x8136, 0xAD31,
+ 0x2070, 0x8136, 0xAD32,
+ 0x2071, 0x8136, 0xAD33,
+ 0x2072, 0x8136, 0xAD34,
+ 0x2073, 0x8136, 0xAD35,
+ 0x2074, 0x8136, 0xAD36,
+ 0x2075, 0x8136, 0xAD37,
+ 0x2076, 0x8136, 0xAD38,
+ 0x2077, 0x8136, 0xAD39,
+ 0x2078, 0x8136, 0xAE30,
+ 0x2079, 0x8136, 0xAE31,
+ 0x207A, 0x8136, 0xAE32,
+ 0x207B, 0x8136, 0xAE33,
+ 0x207C, 0x8136, 0xAE34,
+ 0x207D, 0x8136, 0xAE35,
+ 0x207E, 0x8136, 0xAE36,
+ 0x207F, 0x8136, 0xAE37,
+ 0x2080, 0x8136, 0xAE38,
+ 0x2081, 0x8136, 0xAE39,
+ 0x2082, 0x8136, 0xAF30,
+ 0x2083, 0x8136, 0xAF31,
+ 0x2084, 0x8136, 0xAF32,
+ 0x2085, 0x8136, 0xAF33,
+ 0x2086, 0x8136, 0xAF34,
+ 0x2087, 0x8136, 0xAF35,
+ 0x2088, 0x8136, 0xAF36,
+ 0x2089, 0x8136, 0xAF37,
+ 0x208A, 0x8136, 0xAF38,
+ 0x208B, 0x8136, 0xAF39,
+ 0x208C, 0x8136, 0xB030,
+ 0x208D, 0x8136, 0xB031,
+ 0x208E, 0x8136, 0xB032,
+ 0x208F, 0x8136, 0xB033,
+ 0x2090, 0x8136, 0xB034,
+ 0x2091, 0x8136, 0xB035,
+ 0x2092, 0x8136, 0xB036,
+ 0x2093, 0x8136, 0xB037,
+ 0x2094, 0x8136, 0xB038,
+ 0x2095, 0x8136, 0xB039,
+ 0x2096, 0x8136, 0xB130,
+ 0x2097, 0x8136, 0xB131,
+ 0x2098, 0x8136, 0xB132,
+ 0x2099, 0x8136, 0xB133,
+ 0x209A, 0x8136, 0xB134,
+ 0x209B, 0x8136, 0xB135,
+ 0x209C, 0x8136, 0xB136,
+ 0x209D, 0x8136, 0xB137,
+ 0x209E, 0x8136, 0xB138,
+ 0x209F, 0x8136, 0xB139,
+ 0x20A0, 0x8136, 0xB230,
+ 0x20A1, 0x8136, 0xB231,
+ 0x20A2, 0x8136, 0xB232,
+ 0x20A3, 0x8136, 0xB233,
+ 0x20A4, 0x8136, 0xB234,
+ 0x20A5, 0x8136, 0xB235,
+ 0x20A6, 0x8136, 0xB236,
+ 0x20A7, 0x8136, 0xB237,
+ 0x20A8, 0x8136, 0xB238,
+ 0x20A9, 0x8136, 0xB239,
+ 0x20AA, 0x8136, 0xB330,
+ 0x20AB, 0x8136, 0xB331,
+ 0x20AD, 0x8136, 0xB332,
+ 0x20AE, 0x8136, 0xB333,
+ 0x20AF, 0x8136, 0xB334,
+ 0x20B0, 0x8136, 0xB335,
+ 0x20B1, 0x8136, 0xB336,
+ 0x20B2, 0x8136, 0xB337,
+ 0x20B3, 0x8136, 0xB338,
+ 0x20B4, 0x8136, 0xB339,
+ 0x20B5, 0x8136, 0xB430,
+ 0x20B6, 0x8136, 0xB431,
+ 0x20B7, 0x8136, 0xB432,
+ 0x20B8, 0x8136, 0xB433,
+ 0x20B9, 0x8136, 0xB434,
+ 0x20BA, 0x8136, 0xB435,
+ 0x20BB, 0x8136, 0xB436,
+ 0x20BC, 0x8136, 0xB437,
+ 0x20BD, 0x8136, 0xB438,
+ 0x20BE, 0x8136, 0xB439,
+ 0x20BF, 0x8136, 0xB530,
+ 0x20C0, 0x8136, 0xB531,
+ 0x20C1, 0x8136, 0xB532,
+ 0x20C2, 0x8136, 0xB533,
+ 0x20C3, 0x8136, 0xB534,
+ 0x20C4, 0x8136, 0xB535,
+ 0x20C5, 0x8136, 0xB536,
+ 0x20C6, 0x8136, 0xB537,
+ 0x20C7, 0x8136, 0xB538,
+ 0x20C8, 0x8136, 0xB539,
+ 0x20C9, 0x8136, 0xB630,
+ 0x20CA, 0x8136, 0xB631,
+ 0x20CB, 0x8136, 0xB632,
+ 0x20CC, 0x8136, 0xB633,
+ 0x20CD, 0x8136, 0xB634,
+ 0x20CE, 0x8136, 0xB635,
+ 0x20CF, 0x8136, 0xB636,
+ 0x20D0, 0x8136, 0xB637,
+ 0x20D1, 0x8136, 0xB638,
+ 0x20D2, 0x8136, 0xB639,
+ 0x20D3, 0x8136, 0xB730,
+ 0x20D4, 0x8136, 0xB731,
+ 0x20D5, 0x8136, 0xB732,
+ 0x20D6, 0x8136, 0xB733,
+ 0x20D7, 0x8136, 0xB734,
+ 0x20D8, 0x8136, 0xB735,
+ 0x20D9, 0x8136, 0xB736,
+ 0x20DA, 0x8136, 0xB737,
+ 0x20DB, 0x8136, 0xB738,
+ 0x20DC, 0x8136, 0xB739,
+ 0x20DD, 0x8136, 0xB830,
+ 0x20DE, 0x8136, 0xB831,
+ 0x20DF, 0x8136, 0xB832,
+ 0x20E0, 0x8136, 0xB833,
+ 0x20E1, 0x8136, 0xB834,
+ 0x20E2, 0x8136, 0xB835,
+ 0x20E3, 0x8136, 0xB836,
+ 0x20E4, 0x8136, 0xB837,
+ 0x20E5, 0x8136, 0xB838,
+ 0x20E6, 0x8136, 0xB839,
+ 0x20E7, 0x8136, 0xB930,
+ 0x20E8, 0x8136, 0xB931,
+ 0x20E9, 0x8136, 0xB932,
+ 0x20EA, 0x8136, 0xB933,
+ 0x20EB, 0x8136, 0xB934,
+ 0x20EC, 0x8136, 0xB935,
+ 0x20ED, 0x8136, 0xB936,
+ 0x20EE, 0x8136, 0xB937,
+ 0x20EF, 0x8136, 0xB938,
+ 0x20F0, 0x8136, 0xB939,
+ 0x20F1, 0x8136, 0xBA30,
+ 0x20F2, 0x8136, 0xBA31,
+ 0x20F3, 0x8136, 0xBA32,
+ 0x20F4, 0x8136, 0xBA33,
+ 0x20F5, 0x8136, 0xBA34,
+ 0x20F6, 0x8136, 0xBA35,
+ 0x20F7, 0x8136, 0xBA36,
+ 0x20F8, 0x8136, 0xBA37,
+ 0x20F9, 0x8136, 0xBA38,
+ 0x20FA, 0x8136, 0xBA39,
+ 0x20FB, 0x8136, 0xBB30,
+ 0x20FC, 0x8136, 0xBB31,
+ 0x20FD, 0x8136, 0xBB32,
+ 0x20FE, 0x8136, 0xBB33,
+ 0x20FF, 0x8136, 0xBB34,
+ 0x2100, 0x8136, 0xBB35,
+ 0x2101, 0x8136, 0xBB36,
+ 0x2102, 0x8136, 0xBB37,
+ 0x2104, 0x8136, 0xBB38,
+ 0x2106, 0x8136, 0xBB39,
+ 0x2107, 0x8136, 0xBC30,
+ 0x2108, 0x8136, 0xBC31,
+ 0x210A, 0x8136, 0xBC32,
+ 0x210B, 0x8136, 0xBC33,
+ 0x210C, 0x8136, 0xBC34,
+ 0x210D, 0x8136, 0xBC35,
+ 0x210E, 0x8136, 0xBC36,
+ 0x210F, 0x8136, 0xBC37,
+ 0x2110, 0x8136, 0xBC38,
+ 0x2111, 0x8136, 0xBC39,
+ 0x2112, 0x8136, 0xBD30,
+ 0x2113, 0x8136, 0xBD31,
+ 0x2114, 0x8136, 0xBD32,
+ 0x2115, 0x8136, 0xBD33,
+ 0x2117, 0x8136, 0xBD34,
+ 0x2118, 0x8136, 0xBD35,
+ 0x2119, 0x8136, 0xBD36,
+ 0x211A, 0x8136, 0xBD37,
+ 0x211B, 0x8136, 0xBD38,
+ 0x211C, 0x8136, 0xBD39,
+ 0x211D, 0x8136, 0xBE30,
+ 0x211E, 0x8136, 0xBE31,
+ 0x211F, 0x8136, 0xBE32,
+ 0x2120, 0x8136, 0xBE33,
+ 0x2122, 0x8136, 0xBE34,
+ 0x2123, 0x8136, 0xBE35,
+ 0x2124, 0x8136, 0xBE36,
+ 0x2125, 0x8136, 0xBE37,
+ 0x2126, 0x8136, 0xBE38,
+ 0x2127, 0x8136, 0xBE39,
+ 0x2128, 0x8136, 0xBF30,
+ 0x2129, 0x8136, 0xBF31,
+ 0x212A, 0x8136, 0xBF32,
+ 0x212B, 0x8136, 0xBF33,
+ 0x212C, 0x8136, 0xBF34,
+ 0x212D, 0x8136, 0xBF35,
+ 0x212E, 0x8136, 0xBF36,
+ 0x212F, 0x8136, 0xBF37,
+ 0x2130, 0x8136, 0xBF38,
+ 0x2131, 0x8136, 0xBF39,
+ 0x2132, 0x8136, 0xC030,
+ 0x2133, 0x8136, 0xC031,
+ 0x2134, 0x8136, 0xC032,
+ 0x2135, 0x8136, 0xC033,
+ 0x2136, 0x8136, 0xC034,
+ 0x2137, 0x8136, 0xC035,
+ 0x2138, 0x8136, 0xC036,
+ 0x2139, 0x8136, 0xC037,
+ 0x213A, 0x8136, 0xC038,
+ 0x213B, 0x8136, 0xC039,
+ 0x213C, 0x8136, 0xC130,
+ 0x213D, 0x8136, 0xC131,
+ 0x213E, 0x8136, 0xC132,
+ 0x213F, 0x8136, 0xC133,
+ 0x2140, 0x8136, 0xC134,
+ 0x2141, 0x8136, 0xC135,
+ 0x2142, 0x8136, 0xC136,
+ 0x2143, 0x8136, 0xC137,
+ 0x2144, 0x8136, 0xC138,
+ 0x2145, 0x8136, 0xC139,
+ 0x2146, 0x8136, 0xC230,
+ 0x2147, 0x8136, 0xC231,
+ 0x2148, 0x8136, 0xC232,
+ 0x2149, 0x8136, 0xC233,
+ 0x214A, 0x8136, 0xC234,
+ 0x214B, 0x8136, 0xC235,
+ 0x214C, 0x8136, 0xC236,
+ 0x214D, 0x8136, 0xC237,
+ 0x214E, 0x8136, 0xC238,
+ 0x214F, 0x8136, 0xC239,
+ 0x2150, 0x8136, 0xC330,
+ 0x2151, 0x8136, 0xC331,
+ 0x2152, 0x8136, 0xC332,
+ 0x2153, 0x8136, 0xC333,
+ 0x2154, 0x8136, 0xC334,
+ 0x2155, 0x8136, 0xC335,
+ 0x2156, 0x8136, 0xC336,
+ 0x2157, 0x8136, 0xC337,
+ 0x2158, 0x8136, 0xC338,
+ 0x2159, 0x8136, 0xC339,
+ 0x215A, 0x8136, 0xC430,
+ 0x215B, 0x8136, 0xC431,
+ 0x215C, 0x8136, 0xC432,
+ 0x215D, 0x8136, 0xC433,
+ 0x215E, 0x8136, 0xC434,
+ 0x215F, 0x8136, 0xC435,
+ 0x216C, 0x8136, 0xC436,
+ 0x216D, 0x8136, 0xC437,
+ 0x216E, 0x8136, 0xC438,
+ 0x216F, 0x8136, 0xC439,
+ 0x217A, 0x8136, 0xC530,
+ 0x217B, 0x8136, 0xC531,
+ 0x217C, 0x8136, 0xC532,
+ 0x217D, 0x8136, 0xC533,
+ 0x217E, 0x8136, 0xC534,
+ 0x217F, 0x8136, 0xC535,
+ 0x2180, 0x8136, 0xC536,
+ 0x2181, 0x8136, 0xC537,
+ 0x2182, 0x8136, 0xC538,
+ 0x2183, 0x8136, 0xC539,
+ 0x2184, 0x8136, 0xC630,
+ 0x2185, 0x8136, 0xC631,
+ 0x2186, 0x8136, 0xC632,
+ 0x2187, 0x8136, 0xC633,
+ 0x2188, 0x8136, 0xC634,
+ 0x2189, 0x8136, 0xC635,
+ 0x218A, 0x8136, 0xC636,
+ 0x218B, 0x8136, 0xC637,
+ 0x218C, 0x8136, 0xC638,
+ 0x218D, 0x8136, 0xC639,
+ 0x218E, 0x8136, 0xC730,
+ 0x218F, 0x8136, 0xC731,
+ 0x2194, 0x8136, 0xC732,
+ 0x2195, 0x8136, 0xC733,
+ 0x219A, 0x8136, 0xC734,
+ 0x219B, 0x8136, 0xC735,
+ 0x219C, 0x8136, 0xC736,
+ 0x219D, 0x8136, 0xC737,
+ 0x219E, 0x8136, 0xC738,
+ 0x219F, 0x8136, 0xC739,
+ 0x21A0, 0x8136, 0xC830,
+ 0x21A1, 0x8136, 0xC831,
+ 0x21A2, 0x8136, 0xC832,
+ 0x21A3, 0x8136, 0xC833,
+ 0x21A4, 0x8136, 0xC834,
+ 0x21A5, 0x8136, 0xC835,
+ 0x21A6, 0x8136, 0xC836,
+ 0x21A7, 0x8136, 0xC837,
+ 0x21A8, 0x8136, 0xC838,
+ 0x21A9, 0x8136, 0xC839,
+ 0x21AA, 0x8136, 0xC930,
+ 0x21AB, 0x8136, 0xC931,
+ 0x21AC, 0x8136, 0xC932,
+ 0x21AD, 0x8136, 0xC933,
+ 0x21AE, 0x8136, 0xC934,
+ 0x21AF, 0x8136, 0xC935,
+ 0x21B0, 0x8136, 0xC936,
+ 0x21B1, 0x8136, 0xC937,
+ 0x21B2, 0x8136, 0xC938,
+ 0x21B3, 0x8136, 0xC939,
+ 0x21B4, 0x8136, 0xCA30,
+ 0x21B5, 0x8136, 0xCA31,
+ 0x21B6, 0x8136, 0xCA32,
+ 0x21B7, 0x8136, 0xCA33,
+ 0x21B8, 0x8136, 0xCA34,
+ 0x21B9, 0x8136, 0xCA35,
+ 0x21BA, 0x8136, 0xCA36,
+ 0x21BB, 0x8136, 0xCA37,
+ 0x21BC, 0x8136, 0xCA38,
+ 0x21BD, 0x8136, 0xCA39,
+ 0x21BE, 0x8136, 0xCB30,
+ 0x21BF, 0x8136, 0xCB31,
+ 0x21C0, 0x8136, 0xCB32,
+ 0x21C1, 0x8136, 0xCB33,
+ 0x21C2, 0x8136, 0xCB34,
+ 0x21C3, 0x8136, 0xCB35,
+ 0x21C4, 0x8136, 0xCB36,
+ 0x21C5, 0x8136, 0xCB37,
+ 0x21C6, 0x8136, 0xCB38,
+ 0x21C7, 0x8136, 0xCB39,
+ 0x21C8, 0x8136, 0xCC30,
+ 0x21C9, 0x8136, 0xCC31,
+ 0x21CA, 0x8136, 0xCC32,
+ 0x21CB, 0x8136, 0xCC33,
+ 0x21CC, 0x8136, 0xCC34,
+ 0x21CD, 0x8136, 0xCC35,
+ 0x21CE, 0x8136, 0xCC36,
+ 0x21CF, 0x8136, 0xCC37,
+ 0x21D0, 0x8136, 0xCC38,
+ 0x21D1, 0x8136, 0xCC39,
+ 0x21D2, 0x8136, 0xCD30,
+ 0x21D3, 0x8136, 0xCD31,
+ 0x21D4, 0x8136, 0xCD32,
+ 0x21D5, 0x8136, 0xCD33,
+ 0x21D6, 0x8136, 0xCD34,
+ 0x21D7, 0x8136, 0xCD35,
+ 0x21D8, 0x8136, 0xCD36,
+ 0x21D9, 0x8136, 0xCD37,
+ 0x21DA, 0x8136, 0xCD38,
+ 0x21DB, 0x8136, 0xCD39,
+ 0x21DC, 0x8136, 0xCE30,
+ 0x21DD, 0x8136, 0xCE31,
+ 0x21DE, 0x8136, 0xCE32,
+ 0x21DF, 0x8136, 0xCE33,
+ 0x21E0, 0x8136, 0xCE34,
+ 0x21E1, 0x8136, 0xCE35,
+ 0x21E2, 0x8136, 0xCE36,
+ 0x21E3, 0x8136, 0xCE37,
+ 0x21E4, 0x8136, 0xCE38,
+ 0x21E5, 0x8136, 0xCE39,
+ 0x21E6, 0x8136, 0xCF30,
+ 0x21E7, 0x8136, 0xCF31,
+ 0x21E8, 0x8136, 0xCF32,
+ 0x21E9, 0x8136, 0xCF33,
+ 0x21EA, 0x8136, 0xCF34,
+ 0x21EB, 0x8136, 0xCF35,
+ 0x21EC, 0x8136, 0xCF36,
+ 0x21ED, 0x8136, 0xCF37,
+ 0x21EE, 0x8136, 0xCF38,
+ 0x21EF, 0x8136, 0xCF39,
+ 0x21F0, 0x8136, 0xD030,
+ 0x21F1, 0x8136, 0xD031,
+ 0x21F2, 0x8136, 0xD032,
+ 0x21F3, 0x8136, 0xD033,
+ 0x21F4, 0x8136, 0xD034,
+ 0x21F5, 0x8136, 0xD035,
+ 0x21F6, 0x8136, 0xD036,
+ 0x21F7, 0x8136, 0xD037,
+ 0x21F8, 0x8136, 0xD038,
+ 0x21F9, 0x8136, 0xD039,
+ 0x21FA, 0x8136, 0xD130,
+ 0x21FB, 0x8136, 0xD131,
+ 0x21FC, 0x8136, 0xD132,
+ 0x21FD, 0x8136, 0xD133,
+ 0x21FE, 0x8136, 0xD134,
+ 0x21FF, 0x8136, 0xD135,
+ 0x2200, 0x8136, 0xD136,
+ 0x2201, 0x8136, 0xD137,
+ 0x2202, 0x8136, 0xD138,
+ 0x2203, 0x8136, 0xD139,
+ 0x2204, 0x8136, 0xD230,
+ 0x2205, 0x8136, 0xD231,
+ 0x2206, 0x8136, 0xD232,
+ 0x2207, 0x8136, 0xD233,
+ 0x2209, 0x8136, 0xD234,
+ 0x220A, 0x8136, 0xD235,
+ 0x220B, 0x8136, 0xD236,
+ 0x220C, 0x8136, 0xD237,
+ 0x220D, 0x8136, 0xD238,
+ 0x220E, 0x8136, 0xD239,
+ 0x2210, 0x8136, 0xD330,
+ 0x2212, 0x8136, 0xD331,
+ 0x2213, 0x8136, 0xD332,
+ 0x2214, 0x8136, 0xD333,
+ 0x2216, 0x8136, 0xD334,
+ 0x2217, 0x8136, 0xD335,
+ 0x2218, 0x8136, 0xD336,
+ 0x2219, 0x8136, 0xD337,
+ 0x221B, 0x8136, 0xD338,
+ 0x221C, 0x8136, 0xD339,
+ 0x2221, 0x8136, 0xD430,
+ 0x2222, 0x8136, 0xD431,
+ 0x2224, 0x8136, 0xD432,
+ 0x2226, 0x8136, 0xD433,
+ 0x222C, 0x8136, 0xD434,
+ 0x222D, 0x8136, 0xD435,
+ 0x222F, 0x8136, 0xD436,
+ 0x2230, 0x8136, 0xD437,
+ 0x2231, 0x8136, 0xD438,
+ 0x2232, 0x8136, 0xD439,
+ 0x2233, 0x8136, 0xD530,
+ 0x2238, 0x8136, 0xD531,
+ 0x2239, 0x8136, 0xD532,
+ 0x223A, 0x8136, 0xD533,
+ 0x223B, 0x8136, 0xD534,
+ 0x223C, 0x8136, 0xD535,
+ 0x223E, 0x8136, 0xD536,
+ 0x223F, 0x8136, 0xD537,
+ 0x2240, 0x8136, 0xD538,
+ 0x2241, 0x8136, 0xD539,
+ 0x2242, 0x8136, 0xD630,
+ 0x2243, 0x8136, 0xD631,
+ 0x2244, 0x8136, 0xD632,
+ 0x2245, 0x8136, 0xD633,
+ 0x2246, 0x8136, 0xD634,
+ 0x2247, 0x8136, 0xD635,
+ 0x2249, 0x8136, 0xD636,
+ 0x224A, 0x8136, 0xD637,
+ 0x224B, 0x8136, 0xD638,
+ 0x224D, 0x8136, 0xD639,
+ 0x224E, 0x8136, 0xD730,
+ 0x224F, 0x8136, 0xD731,
+ 0x2250, 0x8136, 0xD732,
+ 0x2251, 0x8136, 0xD733,
+ 0x2253, 0x8136, 0xD734,
+ 0x2254, 0x8136, 0xD735,
+ 0x2255, 0x8136, 0xD736,
+ 0x2256, 0x8136, 0xD737,
+ 0x2257, 0x8136, 0xD738,
+ 0x2258, 0x8136, 0xD739,
+ 0x2259, 0x8136, 0xD830,
+ 0x225A, 0x8136, 0xD831,
+ 0x225B, 0x8136, 0xD832,
+ 0x225C, 0x8136, 0xD833,
+ 0x225D, 0x8136, 0xD834,
+ 0x225E, 0x8136, 0xD835,
+ 0x225F, 0x8136, 0xD836,
+ 0x2262, 0x8136, 0xD837,
+ 0x2263, 0x8136, 0xD838,
+ 0x2268, 0x8136, 0xD839,
+ 0x2269, 0x8136, 0xD930,
+ 0x226A, 0x8136, 0xD931,
+ 0x226B, 0x8136, 0xD932,
+ 0x226C, 0x8136, 0xD933,
+ 0x226D, 0x8136, 0xD934,
+ 0x2270, 0x8136, 0xD935,
+ 0x2271, 0x8136, 0xD936,
+ 0x2272, 0x8136, 0xD937,
+ 0x2273, 0x8136, 0xD938,
+ 0x2274, 0x8136, 0xD939,
+ 0x2275, 0x8136, 0xDA30,
+ 0x2276, 0x8136, 0xDA31,
+ 0x2277, 0x8136, 0xDA32,
+ 0x2278, 0x8136, 0xDA33,
+ 0x2279, 0x8136, 0xDA34,
+ 0x227A, 0x8136, 0xDA35,
+ 0x227B, 0x8136, 0xDA36,
+ 0x227C, 0x8136, 0xDA37,
+ 0x227D, 0x8136, 0xDA38,
+ 0x227E, 0x8136, 0xDA39,
+ 0x227F, 0x8136, 0xDB30,
+ 0x2280, 0x8136, 0xDB31,
+ 0x2281, 0x8136, 0xDB32,
+ 0x2282, 0x8136, 0xDB33,
+ 0x2283, 0x8136, 0xDB34,
+ 0x2284, 0x8136, 0xDB35,
+ 0x2285, 0x8136, 0xDB36,
+ 0x2286, 0x8136, 0xDB37,
+ 0x2287, 0x8136, 0xDB38,
+ 0x2288, 0x8136, 0xDB39,
+ 0x2289, 0x8136, 0xDC30,
+ 0x228A, 0x8136, 0xDC31,
+ 0x228B, 0x8136, 0xDC32,
+ 0x228C, 0x8136, 0xDC33,
+ 0x228D, 0x8136, 0xDC34,
+ 0x228E, 0x8136, 0xDC35,
+ 0x228F, 0x8136, 0xDC36,
+ 0x2290, 0x8136, 0xDC37,
+ 0x2291, 0x8136, 0xDC38,
+ 0x2292, 0x8136, 0xDC39,
+ 0x2293, 0x8136, 0xDD30,
+ 0x2294, 0x8136, 0xDD31,
+ 0x2296, 0x8136, 0xDD32,
+ 0x2297, 0x8136, 0xDD33,
+ 0x2298, 0x8136, 0xDD34,
+ 0x229A, 0x8136, 0xDD35,
+ 0x229B, 0x8136, 0xDD36,
+ 0x229C, 0x8136, 0xDD37,
+ 0x229D, 0x8136, 0xDD38,
+ 0x229E, 0x8136, 0xDD39,
+ 0x229F, 0x8136, 0xDE30,
+ 0x22A0, 0x8136, 0xDE31,
+ 0x22A1, 0x8136, 0xDE32,
+ 0x22A2, 0x8136, 0xDE33,
+ 0x22A3, 0x8136, 0xDE34,
+ 0x22A4, 0x8136, 0xDE35,
+ 0x22A6, 0x8136, 0xDE36,
+ 0x22A7, 0x8136, 0xDE37,
+ 0x22A8, 0x8136, 0xDE38,
+ 0x22A9, 0x8136, 0xDE39,
+ 0x22AA, 0x8136, 0xDF30,
+ 0x22AB, 0x8136, 0xDF31,
+ 0x22AC, 0x8136, 0xDF32,
+ 0x22AD, 0x8136, 0xDF33,
+ 0x22AE, 0x8136, 0xDF34,
+ 0x22AF, 0x8136, 0xDF35,
+ 0x22B0, 0x8136, 0xDF36,
+ 0x22B1, 0x8136, 0xDF37,
+ 0x22B2, 0x8136, 0xDF38,
+ 0x22B3, 0x8136, 0xDF39,
+ 0x22B4, 0x8136, 0xE030,
+ 0x22B5, 0x8136, 0xE031,
+ 0x22B6, 0x8136, 0xE032,
+ 0x22B7, 0x8136, 0xE033,
+ 0x22B8, 0x8136, 0xE034,
+ 0x22B9, 0x8136, 0xE035,
+ 0x22BA, 0x8136, 0xE036,
+ 0x22BB, 0x8136, 0xE037,
+ 0x22BC, 0x8136, 0xE038,
+ 0x22BD, 0x8136, 0xE039,
+ 0x22BE, 0x8136, 0xE130,
+ 0x22C0, 0x8136, 0xE131,
+ 0x22C1, 0x8136, 0xE132,
+ 0x22C2, 0x8136, 0xE133,
+ 0x22C3, 0x8136, 0xE134,
+ 0x22C4, 0x8136, 0xE135,
+ 0x22C5, 0x8136, 0xE136,
+ 0x22C6, 0x8136, 0xE137,
+ 0x22C7, 0x8136, 0xE138,
+ 0x22C8, 0x8136, 0xE139,
+ 0x22C9, 0x8136, 0xE230,
+ 0x22CA, 0x8136, 0xE231,
+ 0x22CB, 0x8136, 0xE232,
+ 0x22CC, 0x8136, 0xE233,
+ 0x22CD, 0x8136, 0xE234,
+ 0x22CE, 0x8136, 0xE235,
+ 0x22CF, 0x8136, 0xE236,
+ 0x22D0, 0x8136, 0xE237,
+ 0x22D1, 0x8136, 0xE238,
+ 0x22D2, 0x8136, 0xE239,
+ 0x22D3, 0x8136, 0xE330,
+ 0x22D4, 0x8136, 0xE331,
+ 0x22D5, 0x8136, 0xE332,
+ 0x22D6, 0x8136, 0xE333,
+ 0x22D7, 0x8136, 0xE334,
+ 0x22D8, 0x8136, 0xE335,
+ 0x22D9, 0x8136, 0xE336,
+ 0x22DA, 0x8136, 0xE337,
+ 0x22DB, 0x8136, 0xE338,
+ 0x22DC, 0x8136, 0xE339,
+ 0x22DD, 0x8136, 0xE430,
+ 0x22DE, 0x8136, 0xE431,
+ 0x22DF, 0x8136, 0xE432,
+ 0x22E0, 0x8136, 0xE433,
+ 0x22E1, 0x8136, 0xE434,
+ 0x22E2, 0x8136, 0xE435,
+ 0x22E3, 0x8136, 0xE436,
+ 0x22E4, 0x8136, 0xE437,
+ 0x22E5, 0x8136, 0xE438,
+ 0x22E6, 0x8136, 0xE439,
+ 0x22E7, 0x8136, 0xE530,
+ 0x22E8, 0x8136, 0xE531,
+ 0x22E9, 0x8136, 0xE532,
+ 0x22EA, 0x8136, 0xE533,
+ 0x22EB, 0x8136, 0xE534,
+ 0x22EC, 0x8136, 0xE535,
+ 0x22ED, 0x8136, 0xE536,
+ 0x22EE, 0x8136, 0xE537,
+ 0x22EF, 0x8136, 0xE538,
+ 0x22F0, 0x8136, 0xE539,
+ 0x22F1, 0x8136, 0xE630,
+ 0x22F2, 0x8136, 0xE631,
+ 0x22F3, 0x8136, 0xE632,
+ 0x22F4, 0x8136, 0xE633,
+ 0x22F5, 0x8136, 0xE634,
+ 0x22F6, 0x8136, 0xE635,
+ 0x22F7, 0x8136, 0xE636,
+ 0x22F8, 0x8136, 0xE637,
+ 0x22F9, 0x8136, 0xE638,
+ 0x22FA, 0x8136, 0xE639,
+ 0x22FB, 0x8136, 0xE730,
+ 0x22FC, 0x8136, 0xE731,
+ 0x22FD, 0x8136, 0xE732,
+ 0x22FE, 0x8136, 0xE733,
+ 0x22FF, 0x8136, 0xE734,
+ 0x2300, 0x8136, 0xE735,
+ 0x2301, 0x8136, 0xE736,
+ 0x2302, 0x8136, 0xE737,
+ 0x2303, 0x8136, 0xE738,
+ 0x2304, 0x8136, 0xE739,
+ 0x2305, 0x8136, 0xE830,
+ 0x2306, 0x8136, 0xE831,
+ 0x2307, 0x8136, 0xE832,
+ 0x2308, 0x8136, 0xE833,
+ 0x2309, 0x8136, 0xE834,
+ 0x230A, 0x8136, 0xE835,
+ 0x230B, 0x8136, 0xE836,
+ 0x230C, 0x8136, 0xE837,
+ 0x230D, 0x8136, 0xE838,
+ 0x230E, 0x8136, 0xE839,
+ 0x230F, 0x8136, 0xE930,
+ 0x2310, 0x8136, 0xE931,
+ 0x2311, 0x8136, 0xE932,
+ 0x2313, 0x8136, 0xE933,
+ 0x2314, 0x8136, 0xE934,
+ 0x2315, 0x8136, 0xE935,
+ 0x2316, 0x8136, 0xE936,
+ 0x2317, 0x8136, 0xE937,
+ 0x2318, 0x8136, 0xE938,
+ 0x2319, 0x8136, 0xE939,
+ 0x231A, 0x8136, 0xEA30,
+ 0x231B, 0x8136, 0xEA31,
+ 0x231C, 0x8136, 0xEA32,
+ 0x231D, 0x8136, 0xEA33,
+ 0x231E, 0x8136, 0xEA34,
+ 0x231F, 0x8136, 0xEA35,
+ 0x2320, 0x8136, 0xEA36,
+ 0x2321, 0x8136, 0xEA37,
+ 0x2322, 0x8136, 0xEA38,
+ 0x2323, 0x8136, 0xEA39,
+ 0x2324, 0x8136, 0xEB30,
+ 0x2325, 0x8136, 0xEB31,
+ 0x2326, 0x8136, 0xEB32,
+ 0x2327, 0x8136, 0xEB33,
+ 0x2328, 0x8136, 0xEB34,
+ 0x2329, 0x8136, 0xEB35,
+ 0x232A, 0x8136, 0xEB36,
+ 0x232B, 0x8136, 0xEB37,
+ 0x232C, 0x8136, 0xEB38,
+ 0x232D, 0x8136, 0xEB39,
+ 0x232E, 0x8136, 0xEC30,
+ 0x232F, 0x8136, 0xEC31,
+ 0x2330, 0x8136, 0xEC32,
+ 0x2331, 0x8136, 0xEC33,
+ 0x2332, 0x8136, 0xEC34,
+ 0x2333, 0x8136, 0xEC35,
+ 0x2334, 0x8136, 0xEC36,
+ 0x2335, 0x8136, 0xEC37,
+ 0x2336, 0x8136, 0xEC38,
+ 0x2337, 0x8136, 0xEC39,
+ 0x2338, 0x8136, 0xED30,
+ 0x2339, 0x8136, 0xED31,
+ 0x233A, 0x8136, 0xED32,
+ 0x233B, 0x8136, 0xED33,
+ 0x233C, 0x8136, 0xED34,
+ 0x233D, 0x8136, 0xED35,
+ 0x233E, 0x8136, 0xED36,
+ 0x233F, 0x8136, 0xED37,
+ 0x2340, 0x8136, 0xED38,
+ 0x2341, 0x8136, 0xED39,
+ 0x2342, 0x8136, 0xEE30,
+ 0x2343, 0x8136, 0xEE31,
+ 0x2344, 0x8136, 0xEE32,
+ 0x2345, 0x8136, 0xEE33,
+ 0x2346, 0x8136, 0xEE34,
+ 0x2347, 0x8136, 0xEE35,
+ 0x2348, 0x8136, 0xEE36,
+ 0x2349, 0x8136, 0xEE37,
+ 0x234A, 0x8136, 0xEE38,
+ 0x234B, 0x8136, 0xEE39,
+ 0x234C, 0x8136, 0xEF30,
+ 0x234D, 0x8136, 0xEF31,
+ 0x234E, 0x8136, 0xEF32,
+ 0x234F, 0x8136, 0xEF33,
+ 0x2350, 0x8136, 0xEF34,
+ 0x2351, 0x8136, 0xEF35,
+ 0x2352, 0x8136, 0xEF36,
+ 0x2353, 0x8136, 0xEF37,
+ 0x2354, 0x8136, 0xEF38,
+ 0x2355, 0x8136, 0xEF39,
+ 0x2356, 0x8136, 0xF030,
+ 0x2357, 0x8136, 0xF031,
+ 0x2358, 0x8136, 0xF032,
+ 0x2359, 0x8136, 0xF033,
+ 0x235A, 0x8136, 0xF034,
+ 0x235B, 0x8136, 0xF035,
+ 0x235C, 0x8136, 0xF036,
+ 0x235D, 0x8136, 0xF037,
+ 0x235E, 0x8136, 0xF038,
+ 0x235F, 0x8136, 0xF039,
+ 0x2360, 0x8136, 0xF130,
+ 0x2361, 0x8136, 0xF131,
+ 0x2362, 0x8136, 0xF132,
+ 0x2363, 0x8136, 0xF133,
+ 0x2364, 0x8136, 0xF134,
+ 0x2365, 0x8136, 0xF135,
+ 0x2366, 0x8136, 0xF136,
+ 0x2367, 0x8136, 0xF137,
+ 0x2368, 0x8136, 0xF138,
+ 0x2369, 0x8136, 0xF139,
+ 0x236A, 0x8136, 0xF230,
+ 0x236B, 0x8136, 0xF231,
+ 0x236C, 0x8136, 0xF232,
+ 0x236D, 0x8136, 0xF233,
+ 0x236E, 0x8136, 0xF234,
+ 0x236F, 0x8136, 0xF235,
+ 0x2370, 0x8136, 0xF236,
+ 0x2371, 0x8136, 0xF237,
+ 0x2372, 0x8136, 0xF238,
+ 0x2373, 0x8136, 0xF239,
+ 0x2374, 0x8136, 0xF330,
+ 0x2375, 0x8136, 0xF331,
+ 0x2376, 0x8136, 0xF332,
+ 0x2377, 0x8136, 0xF333,
+ 0x2378, 0x8136, 0xF334,
+ 0x2379, 0x8136, 0xF335,
+ 0x237A, 0x8136, 0xF336,
+ 0x237B, 0x8136, 0xF337,
+ 0x237C, 0x8136, 0xF338,
+ 0x237D, 0x8136, 0xF339,
+ 0x237E, 0x8136, 0xF430,
+ 0x237F, 0x8136, 0xF431,
+ 0x2380, 0x8136, 0xF432,
+ 0x2381, 0x8136, 0xF433,
+ 0x2382, 0x8136, 0xF434,
+ 0x2383, 0x8136, 0xF435,
+ 0x2384, 0x8136, 0xF436,
+ 0x2385, 0x8136, 0xF437,
+ 0x2386, 0x8136, 0xF438,
+ 0x2387, 0x8136, 0xF439,
+ 0x2388, 0x8136, 0xF530,
+ 0x2389, 0x8136, 0xF531,
+ 0x238A, 0x8136, 0xF532,
+ 0x238B, 0x8136, 0xF533,
+ 0x238C, 0x8136, 0xF534,
+ 0x238D, 0x8136, 0xF535,
+ 0x238E, 0x8136, 0xF536,
+ 0x238F, 0x8136, 0xF537,
+ 0x2390, 0x8136, 0xF538,
+ 0x2391, 0x8136, 0xF539,
+ 0x2392, 0x8136, 0xF630,
+ 0x2393, 0x8136, 0xF631,
+ 0x2394, 0x8136, 0xF632,
+ 0x2395, 0x8136, 0xF633,
+ 0x2396, 0x8136, 0xF634,
+ 0x2397, 0x8136, 0xF635,
+ 0x2398, 0x8136, 0xF636,
+ 0x2399, 0x8136, 0xF637,
+ 0x239A, 0x8136, 0xF638,
+ 0x239B, 0x8136, 0xF639,
+ 0x239C, 0x8136, 0xF730,
+ 0x239D, 0x8136, 0xF731,
+ 0x239E, 0x8136, 0xF732,
+ 0x239F, 0x8136, 0xF733,
+ 0x23A0, 0x8136, 0xF734,
+ 0x23A1, 0x8136, 0xF735,
+ 0x23A2, 0x8136, 0xF736,
+ 0x23A3, 0x8136, 0xF737,
+ 0x23A4, 0x8136, 0xF738,
+ 0x23A5, 0x8136, 0xF739,
+ 0x23A6, 0x8136, 0xF830,
+ 0x23A7, 0x8136, 0xF831,
+ 0x23A8, 0x8136, 0xF832,
+ 0x23A9, 0x8136, 0xF833,
+ 0x23AA, 0x8136, 0xF834,
+ 0x23AB, 0x8136, 0xF835,
+ 0x23AC, 0x8136, 0xF836,
+ 0x23AD, 0x8136, 0xF837,
+ 0x23AE, 0x8136, 0xF838,
+ 0x23AF, 0x8136, 0xF839,
+ 0x23B0, 0x8136, 0xF930,
+ 0x23B1, 0x8136, 0xF931,
+ 0x23B2, 0x8136, 0xF932,
+ 0x23B3, 0x8136, 0xF933,
+ 0x23B4, 0x8136, 0xF934,
+ 0x23B5, 0x8136, 0xF935,
+ 0x23B6, 0x8136, 0xF936,
+ 0x23B7, 0x8136, 0xF937,
+ 0x23B8, 0x8136, 0xF938,
+ 0x23B9, 0x8136, 0xF939,
+ 0x23BA, 0x8136, 0xFA30,
+ 0x23BB, 0x8136, 0xFA31,
+ 0x23BC, 0x8136, 0xFA32,
+ 0x23BD, 0x8136, 0xFA33,
+ 0x23BE, 0x8136, 0xFA34,
+ 0x23BF, 0x8136, 0xFA35,
+ 0x23C0, 0x8136, 0xFA36,
+ 0x23C1, 0x8136, 0xFA37,
+ 0x23C2, 0x8136, 0xFA38,
+ 0x23C3, 0x8136, 0xFA39,
+ 0x23C4, 0x8136, 0xFB30,
+ 0x23C5, 0x8136, 0xFB31,
+ 0x23C6, 0x8136, 0xFB32,
+ 0x23C7, 0x8136, 0xFB33,
+ 0x23C8, 0x8136, 0xFB34,
+ 0x23C9, 0x8136, 0xFB35,
+ 0x23CA, 0x8136, 0xFB36,
+ 0x23CB, 0x8136, 0xFB37,
+ 0x23CC, 0x8136, 0xFB38,
+ 0x23CD, 0x8136, 0xFB39,
+ 0x23CE, 0x8136, 0xFC30,
+ 0x23CF, 0x8136, 0xFC31,
+ 0x23D0, 0x8136, 0xFC32,
+ 0x23D1, 0x8136, 0xFC33,
+ 0x23D2, 0x8136, 0xFC34,
+ 0x23D3, 0x8136, 0xFC35,
+ 0x23D4, 0x8136, 0xFC36,
+ 0x23D5, 0x8136, 0xFC37,
+ 0x23D6, 0x8136, 0xFC38,
+ 0x23D7, 0x8136, 0xFC39,
+ 0x23D8, 0x8136, 0xFD30,
+ 0x23D9, 0x8136, 0xFD31,
+ 0x23DA, 0x8136, 0xFD32,
+ 0x23DB, 0x8136, 0xFD33,
+ 0x23DC, 0x8136, 0xFD34,
+ 0x23DD, 0x8136, 0xFD35,
+ 0x23DE, 0x8136, 0xFD36,
+ 0x23DF, 0x8136, 0xFD37,
+ 0x23E0, 0x8136, 0xFD38,
+ 0x23E1, 0x8136, 0xFD39,
+ 0x23E2, 0x8136, 0xFE30,
+ 0x23E3, 0x8136, 0xFE31,
+ 0x23E4, 0x8136, 0xFE32,
+ 0x23E5, 0x8136, 0xFE33,
+ 0x23E6, 0x8136, 0xFE34,
+ 0x23E7, 0x8136, 0xFE35,
+ 0x23E8, 0x8136, 0xFE36,
+ 0x23E9, 0x8136, 0xFE37,
+ 0x23EA, 0x8136, 0xFE38,
+ 0x23EB, 0x8136, 0xFE39,
+ 0x23EC, 0x8137, 0x8130,
+ 0x23ED, 0x8137, 0x8131,
+ 0x23EE, 0x8137, 0x8132,
+ 0x23EF, 0x8137, 0x8133,
+ 0x23F0, 0x8137, 0x8134,
+ 0x23F1, 0x8137, 0x8135,
+ 0x23F2, 0x8137, 0x8136,
+ 0x23F3, 0x8137, 0x8137,
+ 0x23F4, 0x8137, 0x8138,
+ 0x23F5, 0x8137, 0x8139,
+ 0x23F6, 0x8137, 0x8230,
+ 0x23F7, 0x8137, 0x8231,
+ 0x23F8, 0x8137, 0x8232,
+ 0x23F9, 0x8137, 0x8233,
+ 0x23FA, 0x8137, 0x8234,
+ 0x23FB, 0x8137, 0x8235,
+ 0x23FC, 0x8137, 0x8236,
+ 0x23FD, 0x8137, 0x8237,
+ 0x23FE, 0x8137, 0x8238,
+ 0x23FF, 0x8137, 0x8239,
+ 0x2400, 0x8137, 0x8330,
+ 0x2401, 0x8137, 0x8331,
+ 0x2402, 0x8137, 0x8332,
+ 0x2403, 0x8137, 0x8333,
+ 0x2404, 0x8137, 0x8334,
+ 0x2405, 0x8137, 0x8335,
+ 0x2406, 0x8137, 0x8336,
+ 0x2407, 0x8137, 0x8337,
+ 0x2408, 0x8137, 0x8338,
+ 0x2409, 0x8137, 0x8339,
+ 0x240A, 0x8137, 0x8430,
+ 0x240B, 0x8137, 0x8431,
+ 0x240C, 0x8137, 0x8432,
+ 0x240D, 0x8137, 0x8433,
+ 0x240E, 0x8137, 0x8434,
+ 0x240F, 0x8137, 0x8435,
+ 0x2410, 0x8137, 0x8436,
+ 0x2411, 0x8137, 0x8437,
+ 0x2412, 0x8137, 0x8438,
+ 0x2413, 0x8137, 0x8439,
+ 0x2414, 0x8137, 0x8530,
+ 0x2415, 0x8137, 0x8531,
+ 0x2416, 0x8137, 0x8532,
+ 0x2417, 0x8137, 0x8533,
+ 0x2418, 0x8137, 0x8534,
+ 0x2419, 0x8137, 0x8535,
+ 0x241A, 0x8137, 0x8536,
+ 0x241B, 0x8137, 0x8537,
+ 0x241C, 0x8137, 0x8538,
+ 0x241D, 0x8137, 0x8539,
+ 0x241E, 0x8137, 0x8630,
+ 0x241F, 0x8137, 0x8631,
+ 0x2420, 0x8137, 0x8632,
+ 0x2421, 0x8137, 0x8633,
+ 0x2422, 0x8137, 0x8634,
+ 0x2423, 0x8137, 0x8635,
+ 0x2424, 0x8137, 0x8636,
+ 0x2425, 0x8137, 0x8637,
+ 0x2426, 0x8137, 0x8638,
+ 0x2427, 0x8137, 0x8639,
+ 0x2428, 0x8137, 0x8730,
+ 0x2429, 0x8137, 0x8731,
+ 0x242A, 0x8137, 0x8732,
+ 0x242B, 0x8137, 0x8733,
+ 0x242C, 0x8137, 0x8734,
+ 0x242D, 0x8137, 0x8735,
+ 0x242E, 0x8137, 0x8736,
+ 0x242F, 0x8137, 0x8737,
+ 0x2430, 0x8137, 0x8738,
+ 0x2431, 0x8137, 0x8739,
+ 0x2432, 0x8137, 0x8830,
+ 0x2433, 0x8137, 0x8831,
+ 0x2434, 0x8137, 0x8832,
+ 0x2435, 0x8137, 0x8833,
+ 0x2436, 0x8137, 0x8834,
+ 0x2437, 0x8137, 0x8835,
+ 0x2438, 0x8137, 0x8836,
+ 0x2439, 0x8137, 0x8837,
+ 0x243A, 0x8137, 0x8838,
+ 0x243B, 0x8137, 0x8839,
+ 0x243C, 0x8137, 0x8930,
+ 0x243D, 0x8137, 0x8931,
+ 0x243E, 0x8137, 0x8932,
+ 0x243F, 0x8137, 0x8933,
+ 0x2440, 0x8137, 0x8934,
+ 0x2441, 0x8137, 0x8935,
+ 0x2442, 0x8137, 0x8936,
+ 0x2443, 0x8137, 0x8937,
+ 0x2444, 0x8137, 0x8938,
+ 0x2445, 0x8137, 0x8939,
+ 0x2446, 0x8137, 0x8A30,
+ 0x2447, 0x8137, 0x8A31,
+ 0x2448, 0x8137, 0x8A32,
+ 0x2449, 0x8137, 0x8A33,
+ 0x244A, 0x8137, 0x8A34,
+ 0x244B, 0x8137, 0x8A35,
+ 0x244C, 0x8137, 0x8A36,
+ 0x244D, 0x8137, 0x8A37,
+ 0x244E, 0x8137, 0x8A38,
+ 0x244F, 0x8137, 0x8A39,
+ 0x2450, 0x8137, 0x8B30,
+ 0x2451, 0x8137, 0x8B31,
+ 0x2452, 0x8137, 0x8B32,
+ 0x2453, 0x8137, 0x8B33,
+ 0x2454, 0x8137, 0x8B34,
+ 0x2455, 0x8137, 0x8B35,
+ 0x2456, 0x8137, 0x8B36,
+ 0x2457, 0x8137, 0x8B37,
+ 0x2458, 0x8137, 0x8B38,
+ 0x2459, 0x8137, 0x8B39,
+ 0x245A, 0x8137, 0x8C30,
+ 0x245B, 0x8137, 0x8C31,
+ 0x245C, 0x8137, 0x8C32,
+ 0x245D, 0x8137, 0x8C33,
+ 0x245E, 0x8137, 0x8C34,
+ 0x245F, 0x8137, 0x8C35,
+ 0x246A, 0x8137, 0x8C36,
+ 0x246B, 0x8137, 0x8C37,
+ 0x246C, 0x8137, 0x8C38,
+ 0x246D, 0x8137, 0x8C39,
+ 0x246E, 0x8137, 0x8D30,
+ 0x246F, 0x8137, 0x8D31,
+ 0x2470, 0x8137, 0x8D32,
+ 0x2471, 0x8137, 0x8D33,
+ 0x2472, 0x8137, 0x8D34,
+ 0x2473, 0x8137, 0x8D35,
+ 0x249C, 0x8137, 0x8D36,
+ 0x249D, 0x8137, 0x8D37,
+ 0x249E, 0x8137, 0x8D38,
+ 0x249F, 0x8137, 0x8D39,
+ 0x24A0, 0x8137, 0x8E30,
+ 0x24A1, 0x8137, 0x8E31,
+ 0x24A2, 0x8137, 0x8E32,
+ 0x24A3, 0x8137, 0x8E33,
+ 0x24A4, 0x8137, 0x8E34,
+ 0x24A5, 0x8137, 0x8E35,
+ 0x24A6, 0x8137, 0x8E36,
+ 0x24A7, 0x8137, 0x8E37,
+ 0x24A8, 0x8137, 0x8E38,
+ 0x24A9, 0x8137, 0x8E39,
+ 0x24AA, 0x8137, 0x8F30,
+ 0x24AB, 0x8137, 0x8F31,
+ 0x24AC, 0x8137, 0x8F32,
+ 0x24AD, 0x8137, 0x8F33,
+ 0x24AE, 0x8137, 0x8F34,
+ 0x24AF, 0x8137, 0x8F35,
+ 0x24B0, 0x8137, 0x8F36,
+ 0x24B1, 0x8137, 0x8F37,
+ 0x24B2, 0x8137, 0x8F38,
+ 0x24B3, 0x8137, 0x8F39,
+ 0x24B4, 0x8137, 0x9030,
+ 0x24B5, 0x8137, 0x9031,
+ 0x24B6, 0x8137, 0x9032,
+ 0x24B7, 0x8137, 0x9033,
+ 0x24B8, 0x8137, 0x9034,
+ 0x24B9, 0x8137, 0x9035,
+ 0x24BA, 0x8137, 0x9036,
+ 0x24BB, 0x8137, 0x9037,
+ 0x24BC, 0x8137, 0x9038,
+ 0x24BD, 0x8137, 0x9039,
+ 0x24BE, 0x8137, 0x9130,
+ 0x24BF, 0x8137, 0x9131,
+ 0x24C0, 0x8137, 0x9132,
+ 0x24C1, 0x8137, 0x9133,
+ 0x24C2, 0x8137, 0x9134,
+ 0x24C3, 0x8137, 0x9135,
+ 0x24C4, 0x8137, 0x9136,
+ 0x24C5, 0x8137, 0x9137,
+ 0x24C6, 0x8137, 0x9138,
+ 0x24C7, 0x8137, 0x9139,
+ 0x24C8, 0x8137, 0x9230,
+ 0x24C9, 0x8137, 0x9231,
+ 0x24CA, 0x8137, 0x9232,
+ 0x24CB, 0x8137, 0x9233,
+ 0x24CC, 0x8137, 0x9234,
+ 0x24CD, 0x8137, 0x9235,
+ 0x24CE, 0x8137, 0x9236,
+ 0x24CF, 0x8137, 0x9237,
+ 0x24D0, 0x8137, 0x9238,
+ 0x24D1, 0x8137, 0x9239,
+ 0x24D2, 0x8137, 0x9330,
+ 0x24D3, 0x8137, 0x9331,
+ 0x24D4, 0x8137, 0x9332,
+ 0x24D5, 0x8137, 0x9333,
+ 0x24D6, 0x8137, 0x9334,
+ 0x24D7, 0x8137, 0x9335,
+ 0x24D8, 0x8137, 0x9336,
+ 0x24D9, 0x8137, 0x9337,
+ 0x24DA, 0x8137, 0x9338,
+ 0x24DB, 0x8137, 0x9339,
+ 0x24DC, 0x8137, 0x9430,
+ 0x24DD, 0x8137, 0x9431,
+ 0x24DE, 0x8137, 0x9432,
+ 0x24DF, 0x8137, 0x9433,
+ 0x24E0, 0x8137, 0x9434,
+ 0x24E1, 0x8137, 0x9435,
+ 0x24E2, 0x8137, 0x9436,
+ 0x24E3, 0x8137, 0x9437,
+ 0x24E4, 0x8137, 0x9438,
+ 0x24E5, 0x8137, 0x9439,
+ 0x24E6, 0x8137, 0x9530,
+ 0x24E7, 0x8137, 0x9531,
+ 0x24E8, 0x8137, 0x9532,
+ 0x24E9, 0x8137, 0x9533,
+ 0x24EA, 0x8137, 0x9534,
+ 0x24EB, 0x8137, 0x9535,
+ 0x24EC, 0x8137, 0x9536,
+ 0x24ED, 0x8137, 0x9537,
+ 0x24EE, 0x8137, 0x9538,
+ 0x24EF, 0x8137, 0x9539,
+ 0x24F0, 0x8137, 0x9630,
+ 0x24F1, 0x8137, 0x9631,
+ 0x24F2, 0x8137, 0x9632,
+ 0x24F3, 0x8137, 0x9633,
+ 0x24F4, 0x8137, 0x9634,
+ 0x24F5, 0x8137, 0x9635,
+ 0x24F6, 0x8137, 0x9636,
+ 0x24F7, 0x8137, 0x9637,
+ 0x24F8, 0x8137, 0x9638,
+ 0x24F9, 0x8137, 0x9639,
+ 0x24FA, 0x8137, 0x9730,
+ 0x24FB, 0x8137, 0x9731,
+ 0x24FC, 0x8137, 0x9732,
+ 0x24FD, 0x8137, 0x9733,
+ 0x24FE, 0x8137, 0x9734,
+ 0x24FF, 0x8137, 0x9735,
+ 0x254C, 0x8137, 0x9736,
+ 0x254D, 0x8137, 0x9737,
+ 0x254E, 0x8137, 0x9738,
+ 0x254F, 0x8137, 0x9739,
+ 0x2574, 0x8137, 0x9830,
+ 0x2575, 0x8137, 0x9831,
+ 0x2576, 0x8137, 0x9832,
+ 0x2577, 0x8137, 0x9833,
+ 0x2578, 0x8137, 0x9834,
+ 0x2579, 0x8137, 0x9835,
+ 0x257A, 0x8137, 0x9836,
+ 0x257B, 0x8137, 0x9837,
+ 0x257C, 0x8137, 0x9838,
+ 0x257D, 0x8137, 0x9839,
+ 0x257E, 0x8137, 0x9930,
+ 0x257F, 0x8137, 0x9931,
+ 0x2580, 0x8137, 0x9932,
+ 0x2590, 0x8137, 0x9933,
+ 0x2591, 0x8137, 0x9934,
+ 0x2592, 0x8137, 0x9935,
+ 0x2596, 0x8137, 0x9936,
+ 0x2597, 0x8137, 0x9937,
+ 0x2598, 0x8137, 0x9938,
+ 0x2599, 0x8137, 0x9939,
+ 0x259A, 0x8137, 0x9A30,
+ 0x259B, 0x8137, 0x9A31,
+ 0x259C, 0x8137, 0x9A32,
+ 0x259D, 0x8137, 0x9A33,
+ 0x259E, 0x8137, 0x9A34,
+ 0x259F, 0x8137, 0x9A35,
+ 0x25A2, 0x8137, 0x9A36,
+ 0x25A3, 0x8137, 0x9A37,
+ 0x25A4, 0x8137, 0x9A38,
+ 0x25A5, 0x8137, 0x9A39,
+ 0x25A6, 0x8137, 0x9B30,
+ 0x25A7, 0x8137, 0x9B31,
+ 0x25A8, 0x8137, 0x9B32,
+ 0x25A9, 0x8137, 0x9B33,
+ 0x25AA, 0x8137, 0x9B34,
+ 0x25AB, 0x8137, 0x9B35,
+ 0x25AC, 0x8137, 0x9B36,
+ 0x25AD, 0x8137, 0x9B37,
+ 0x25AE, 0x8137, 0x9B38,
+ 0x25AF, 0x8137, 0x9B39,
+ 0x25B0, 0x8137, 0x9C30,
+ 0x25B1, 0x8137, 0x9C31,
+ 0x25B4, 0x8137, 0x9C32,
+ 0x25B5, 0x8137, 0x9C33,
+ 0x25B6, 0x8137, 0x9C34,
+ 0x25B7, 0x8137, 0x9C35,
+ 0x25B8, 0x8137, 0x9C36,
+ 0x25B9, 0x8137, 0x9C37,
+ 0x25BA, 0x8137, 0x9C38,
+ 0x25BB, 0x8137, 0x9C39,
+ 0x25BE, 0x8137, 0x9D30,
+ 0x25BF, 0x8137, 0x9D31,
+ 0x25C0, 0x8137, 0x9D32,
+ 0x25C1, 0x8137, 0x9D33,
+ 0x25C2, 0x8137, 0x9D34,
+ 0x25C3, 0x8137, 0x9D35,
+ 0x25C4, 0x8137, 0x9D36,
+ 0x25C5, 0x8137, 0x9D37,
+ 0x25C8, 0x8137, 0x9D38,
+ 0x25C9, 0x8137, 0x9D39,
+ 0x25CA, 0x8137, 0x9E30,
+ 0x25CC, 0x8137, 0x9E31,
+ 0x25CD, 0x8137, 0x9E32,
+ 0x25D0, 0x8137, 0x9E33,
+ 0x25D1, 0x8137, 0x9E34,
+ 0x25D2, 0x8137, 0x9E35,
+ 0x25D3, 0x8137, 0x9E36,
+ 0x25D4, 0x8137, 0x9E37,
+ 0x25D5, 0x8137, 0x9E38,
+ 0x25D6, 0x8137, 0x9E39,
+ 0x25D7, 0x8137, 0x9F30,
+ 0x25D8, 0x8137, 0x9F31,
+ 0x25D9, 0x8137, 0x9F32,
+ 0x25DA, 0x8137, 0x9F33,
+ 0x25DB, 0x8137, 0x9F34,
+ 0x25DC, 0x8137, 0x9F35,
+ 0x25DD, 0x8137, 0x9F36,
+ 0x25DE, 0x8137, 0x9F37,
+ 0x25DF, 0x8137, 0x9F38,
+ 0x25E0, 0x8137, 0x9F39,
+ 0x25E1, 0x8137, 0xA030,
+ 0x25E6, 0x8137, 0xA031,
+ 0x25E7, 0x8137, 0xA032,
+ 0x25E8, 0x8137, 0xA033,
+ 0x25E9, 0x8137, 0xA034,
+ 0x25EA, 0x8137, 0xA035,
+ 0x25EB, 0x8137, 0xA036,
+ 0x25EC, 0x8137, 0xA037,
+ 0x25ED, 0x8137, 0xA038,
+ 0x25EE, 0x8137, 0xA039,
+ 0x25EF, 0x8137, 0xA130,
+ 0x25F0, 0x8137, 0xA131,
+ 0x25F1, 0x8137, 0xA132,
+ 0x25F2, 0x8137, 0xA133,
+ 0x25F3, 0x8137, 0xA134,
+ 0x25F4, 0x8137, 0xA135,
+ 0x25F5, 0x8137, 0xA136,
+ 0x25F6, 0x8137, 0xA137,
+ 0x25F7, 0x8137, 0xA138,
+ 0x25F8, 0x8137, 0xA139,
+ 0x25F9, 0x8137, 0xA230,
+ 0x25FA, 0x8137, 0xA231,
+ 0x25FB, 0x8137, 0xA232,
+ 0x25FC, 0x8137, 0xA233,
+ 0x25FD, 0x8137, 0xA234,
+ 0x25FE, 0x8137, 0xA235,
+ 0x25FF, 0x8137, 0xA236,
+ 0x2600, 0x8137, 0xA237,
+ 0x2601, 0x8137, 0xA238,
+ 0x2602, 0x8137, 0xA239,
+ 0x2603, 0x8137, 0xA330,
+ 0x2604, 0x8137, 0xA331,
+ 0x2607, 0x8137, 0xA332,
+ 0x2608, 0x8137, 0xA333,
+ 0x260A, 0x8137, 0xA334,
+ 0x260B, 0x8137, 0xA335,
+ 0x260C, 0x8137, 0xA336,
+ 0x260D, 0x8137, 0xA337,
+ 0x260E, 0x8137, 0xA338,
+ 0x260F, 0x8137, 0xA339,
+ 0x2610, 0x8137, 0xA430,
+ 0x2611, 0x8137, 0xA431,
+ 0x2612, 0x8137, 0xA432,
+ 0x2613, 0x8137, 0xA433,
+ 0x2614, 0x8137, 0xA434,
+ 0x2615, 0x8137, 0xA435,
+ 0x2616, 0x8137, 0xA436,
+ 0x2617, 0x8137, 0xA437,
+ 0x2618, 0x8137, 0xA438,
+ 0x2619, 0x8137, 0xA439,
+ 0x261A, 0x8137, 0xA530,
+ 0x261B, 0x8137, 0xA531,
+ 0x261C, 0x8137, 0xA532,
+ 0x261D, 0x8137, 0xA533,
+ 0x261E, 0x8137, 0xA534,
+ 0x261F, 0x8137, 0xA535,
+ 0x2620, 0x8137, 0xA536,
+ 0x2621, 0x8137, 0xA537,
+ 0x2622, 0x8137, 0xA538,
+ 0x2623, 0x8137, 0xA539,
+ 0x2624, 0x8137, 0xA630,
+ 0x2625, 0x8137, 0xA631,
+ 0x2626, 0x8137, 0xA632,
+ 0x2627, 0x8137, 0xA633,
+ 0x2628, 0x8137, 0xA634,
+ 0x2629, 0x8137, 0xA635,
+ 0x262A, 0x8137, 0xA636,
+ 0x262B, 0x8137, 0xA637,
+ 0x262C, 0x8137, 0xA638,
+ 0x262D, 0x8137, 0xA639,
+ 0x262E, 0x8137, 0xA730,
+ 0x262F, 0x8137, 0xA731,
+ 0x2630, 0x8137, 0xA732,
+ 0x2631, 0x8137, 0xA733,
+ 0x2632, 0x8137, 0xA734,
+ 0x2633, 0x8137, 0xA735,
+ 0x2634, 0x8137, 0xA736,
+ 0x2635, 0x8137, 0xA737,
+ 0x2636, 0x8137, 0xA738,
+ 0x2637, 0x8137, 0xA739,
+ 0x2638, 0x8137, 0xA830,
+ 0x2639, 0x8137, 0xA831,
+ 0x263A, 0x8137, 0xA832,
+ 0x263B, 0x8137, 0xA833,
+ 0x263C, 0x8137, 0xA834,
+ 0x263D, 0x8137, 0xA835,
+ 0x263E, 0x8137, 0xA836,
+ 0x263F, 0x8137, 0xA837,
+ 0x2641, 0x8137, 0xA838,
+ 0x2E82, 0x8138, 0xFD39,
+ 0x2E83, 0x8138, 0xFE30,
+ 0x2E85, 0x8138, 0xFE31,
+ 0x2E86, 0x8138, 0xFE32,
+ 0x2E87, 0x8138, 0xFE33,
+ 0x2E89, 0x8138, 0xFE34,
+ 0x2E8A, 0x8138, 0xFE35,
+ 0x2E8D, 0x8138, 0xFE36,
+ 0x2E8E, 0x8138, 0xFE37,
+ 0x2E8F, 0x8138, 0xFE38,
+ 0x2E90, 0x8138, 0xFE39,
+ 0x2E91, 0x8139, 0x8130,
+ 0x2E92, 0x8139, 0x8131,
+ 0x2E93, 0x8139, 0x8132,
+ 0x2E94, 0x8139, 0x8133,
+ 0x2E95, 0x8139, 0x8134,
+ 0x2E96, 0x8139, 0x8135,
+ 0x2E98, 0x8139, 0x8136,
+ 0x2E99, 0x8139, 0x8137,
+ 0x2E9A, 0x8139, 0x8138,
+ 0x2E9B, 0x8139, 0x8139,
+ 0x2E9C, 0x8139, 0x8230,
+ 0x2E9D, 0x8139, 0x8231,
+ 0x2E9E, 0x8139, 0x8232,
+ 0x2E9F, 0x8139, 0x8233,
+ 0x2EA0, 0x8139, 0x8234,
+ 0x2EA1, 0x8139, 0x8235,
+ 0x2EA2, 0x8139, 0x8236,
+ 0x2EA3, 0x8139, 0x8237,
+ 0x2EA4, 0x8139, 0x8238,
+ 0x2EA5, 0x8139, 0x8239,
+ 0x2EA6, 0x8139, 0x8330,
+ 0x2EA8, 0x8139, 0x8331,
+ 0x2EA9, 0x8139, 0x8332,
+ 0x2EAB, 0x8139, 0x8333,
+ 0x2EAC, 0x8139, 0x8334,
+ 0x2EAD, 0x8139, 0x8335,
+ 0x2EAF, 0x8139, 0x8336,
+ 0x2EB0, 0x8139, 0x8337,
+ 0x2EB1, 0x8139, 0x8338,
+ 0x2EB2, 0x8139, 0x8339,
+ 0x2EB4, 0x8139, 0x8430,
+ 0x2EB5, 0x8139, 0x8431,
+ 0x2EB8, 0x8139, 0x8432,
+ 0x2EB9, 0x8139, 0x8433,
+ 0x2EBA, 0x8139, 0x8434,
+ 0x2EBC, 0x8139, 0x8435,
+ 0x2EBD, 0x8139, 0x8436,
+ 0x2EBE, 0x8139, 0x8437,
+ 0x2EBF, 0x8139, 0x8438,
+ 0x2EC0, 0x8139, 0x8439,
+ 0x2EC1, 0x8139, 0x8530,
+ 0x2EC2, 0x8139, 0x8531,
+ 0x2EC3, 0x8139, 0x8532,
+ 0x2EC4, 0x8139, 0x8533,
+ 0x2EC5, 0x8139, 0x8534,
+ 0x2EC6, 0x8139, 0x8535,
+ 0x2EC7, 0x8139, 0x8536,
+ 0x2EC8, 0x8139, 0x8537,
+ 0x2EC9, 0x8139, 0x8538,
+ 0x2ECB, 0x8139, 0x8539,
+ 0x2ECC, 0x8139, 0x8630,
+ 0x2ECD, 0x8139, 0x8631,
+ 0x2ECE, 0x8139, 0x8632,
+ 0x2ECF, 0x8139, 0x8633,
+ 0x2ED0, 0x8139, 0x8634,
+ 0x2ED1, 0x8139, 0x8635,
+ 0x2ED2, 0x8139, 0x8636,
+ 0x2ED3, 0x8139, 0x8637,
+ 0x2ED4, 0x8139, 0x8638,
+ 0x2ED5, 0x8139, 0x8639,
+ 0x2ED6, 0x8139, 0x8730,
+ 0x2ED7, 0x8139, 0x8731,
+ 0x2ED8, 0x8139, 0x8732,
+ 0x2ED9, 0x8139, 0x8733,
+ 0x2EDA, 0x8139, 0x8734,
+ 0x2EDB, 0x8139, 0x8735,
+ 0x2EDC, 0x8139, 0x8736,
+ 0x2EDD, 0x8139, 0x8737,
+ 0x2EDE, 0x8139, 0x8738,
+ 0x2EDF, 0x8139, 0x8739,
+ 0x2EE0, 0x8139, 0x8830,
+ 0x2EE1, 0x8139, 0x8831,
+ 0x2EE2, 0x8139, 0x8832,
+ 0x2EE3, 0x8139, 0x8833,
+ 0x2EE4, 0x8139, 0x8834,
+ 0x2EE5, 0x8139, 0x8835,
+ 0x2EE6, 0x8139, 0x8836,
+ 0x2EE7, 0x8139, 0x8837,
+ 0x2EE8, 0x8139, 0x8838,
+ 0x2EE9, 0x8139, 0x8839,
+ 0x2EEA, 0x8139, 0x8930,
+ 0x2EEB, 0x8139, 0x8931,
+ 0x2EEC, 0x8139, 0x8932,
+ 0x2EED, 0x8139, 0x8933,
+ 0x2EEE, 0x8139, 0x8934,
+ 0x2EEF, 0x8139, 0x8935,
+ 0x2EF0, 0x8139, 0x8936,
+ 0x2EF1, 0x8139, 0x8937,
+ 0x2EF2, 0x8139, 0x8938,
+ 0x2EF3, 0x8139, 0x8939,
+ 0x2EF4, 0x8139, 0x8A30,
+ 0x2EF5, 0x8139, 0x8A31,
+ 0x2EF6, 0x8139, 0x8A32,
+ 0x2EF7, 0x8139, 0x8A33,
+ 0x2EF8, 0x8139, 0x8A34,
+ 0x2EF9, 0x8139, 0x8A35,
+ 0x2EFA, 0x8139, 0x8A36,
+ 0x2EFB, 0x8139, 0x8A37,
+ 0x2EFC, 0x8139, 0x8A38,
+ 0x2EFD, 0x8139, 0x8A39,
+ 0x2EFE, 0x8139, 0x8B30,
+ 0x2EFF, 0x8139, 0x8B31,
+ 0x2F00, 0x8139, 0x8B32,
+ 0x2F01, 0x8139, 0x8B33,
+ 0x2F02, 0x8139, 0x8B34,
+ 0x2F03, 0x8139, 0x8B35,
+ 0x2F04, 0x8139, 0x8B36,
+ 0x2F05, 0x8139, 0x8B37,
+ 0x2F06, 0x8139, 0x8B38,
+ 0x2F07, 0x8139, 0x8B39,
+ 0x2F08, 0x8139, 0x8C30,
+ 0x2F09, 0x8139, 0x8C31,
+ 0x2F0A, 0x8139, 0x8C32,
+ 0x2F0B, 0x8139, 0x8C33,
+ 0x2F0C, 0x8139, 0x8C34,
+ 0x2F0D, 0x8139, 0x8C35,
+ 0x2F0E, 0x8139, 0x8C36,
+ 0x2F0F, 0x8139, 0x8C37,
+ 0x2F10, 0x8139, 0x8C38,
+ 0x2F11, 0x8139, 0x8C39,
+ 0x2F12, 0x8139, 0x8D30,
+ 0x2F13, 0x8139, 0x8D31,
+ 0x2F14, 0x8139, 0x8D32,
+ 0x2F15, 0x8139, 0x8D33,
+ 0x2F16, 0x8139, 0x8D34,
+ 0x2F17, 0x8139, 0x8D35,
+ 0x2F18, 0x8139, 0x8D36,
+ 0x2F19, 0x8139, 0x8D37,
+ 0x2F1A, 0x8139, 0x8D38,
+ 0x2F1B, 0x8139, 0x8D39,
+ 0x2F1C, 0x8139, 0x8E30,
+ 0x2F1D, 0x8139, 0x8E31,
+ 0x2F1E, 0x8139, 0x8E32,
+ 0x2F1F, 0x8139, 0x8E33,
+ 0x2F20, 0x8139, 0x8E34,
+ 0x2F21, 0x8139, 0x8E35,
+ 0x2F22, 0x8139, 0x8E36,
+ 0x2F23, 0x8139, 0x8E37,
+ 0x2F24, 0x8139, 0x8E38,
+ 0x2F25, 0x8139, 0x8E39,
+ 0x2F26, 0x8139, 0x8F30,
+ 0x2F27, 0x8139, 0x8F31,
+ 0x2F28, 0x8139, 0x8F32,
+ 0x2F29, 0x8139, 0x8F33,
+ 0x2F2A, 0x8139, 0x8F34,
+ 0x2F2B, 0x8139, 0x8F35,
+ 0x2F2C, 0x8139, 0x8F36,
+ 0x2F2D, 0x8139, 0x8F37,
+ 0x2F2E, 0x8139, 0x8F38,
+ 0x2F2F, 0x8139, 0x8F39,
+ 0x2F30, 0x8139, 0x9030,
+ 0x2F31, 0x8139, 0x9031,
+ 0x2F32, 0x8139, 0x9032,
+ 0x2F33, 0x8139, 0x9033,
+ 0x2F34, 0x8139, 0x9034,
+ 0x2F35, 0x8139, 0x9035,
+ 0x2F36, 0x8139, 0x9036,
+ 0x2F37, 0x8139, 0x9037,
+ 0x2F38, 0x8139, 0x9038,
+ 0x2F39, 0x8139, 0x9039,
+ 0x2F3A, 0x8139, 0x9130,
+ 0x2F3B, 0x8139, 0x9131,
+ 0x2F3C, 0x8139, 0x9132,
+ 0x2F3D, 0x8139, 0x9133,
+ 0x2F3E, 0x8139, 0x9134,
+ 0x2F3F, 0x8139, 0x9135,
+ 0x2F40, 0x8139, 0x9136,
+ 0x2F41, 0x8139, 0x9137,
+ 0x2F42, 0x8139, 0x9138,
+ 0x2F43, 0x8139, 0x9139,
+ 0x2F44, 0x8139, 0x9230,
+ 0x2F45, 0x8139, 0x9231,
+ 0x2F46, 0x8139, 0x9232,
+ 0x2F47, 0x8139, 0x9233,
+ 0x2F48, 0x8139, 0x9234,
+ 0x2F49, 0x8139, 0x9235,
+ 0x2F4A, 0x8139, 0x9236,
+ 0x2F4B, 0x8139, 0x9237,
+ 0x2F4C, 0x8139, 0x9238,
+ 0x2F4D, 0x8139, 0x9239,
+ 0x2F4E, 0x8139, 0x9330,
+ 0x2F4F, 0x8139, 0x9331,
+ 0x2F50, 0x8139, 0x9332,
+ 0x2F51, 0x8139, 0x9333,
+ 0x2F52, 0x8139, 0x9334,
+ 0x2F53, 0x8139, 0x9335,
+ 0x2F54, 0x8139, 0x9336,
+ 0x2F55, 0x8139, 0x9337,
+ 0x2F56, 0x8139, 0x9338,
+ 0x2F57, 0x8139, 0x9339,
+ 0x2F58, 0x8139, 0x9430,
+ 0x2F59, 0x8139, 0x9431,
+ 0x2F5A, 0x8139, 0x9432,
+ 0x2F5B, 0x8139, 0x9433,
+ 0x2F5C, 0x8139, 0x9434,
+ 0x2F5D, 0x8139, 0x9435,
+ 0x2F5E, 0x8139, 0x9436,
+ 0x2F5F, 0x8139, 0x9437,
+ 0x2F60, 0x8139, 0x9438,
+ 0x2F61, 0x8139, 0x9439,
+ 0x2F62, 0x8139, 0x9530,
+ 0x2F63, 0x8139, 0x9531,
+ 0x2F64, 0x8139, 0x9532,
+ 0x2F65, 0x8139, 0x9533,
+ 0x2F66, 0x8139, 0x9534,
+ 0x2F67, 0x8139, 0x9535,
+ 0x2F68, 0x8139, 0x9536,
+ 0x2F69, 0x8139, 0x9537,
+ 0x2F6A, 0x8139, 0x9538,
+ 0x2F6B, 0x8139, 0x9539,
+ 0x2F6C, 0x8139, 0x9630,
+ 0x2F6D, 0x8139, 0x9631,
+ 0x2F6E, 0x8139, 0x9632,
+ 0x2F6F, 0x8139, 0x9633,
+ 0x2F70, 0x8139, 0x9634,
+ 0x2F71, 0x8139, 0x9635,
+ 0x2F72, 0x8139, 0x9636,
+ 0x2F73, 0x8139, 0x9637,
+ 0x2F74, 0x8139, 0x9638,
+ 0x2F75, 0x8139, 0x9639,
+ 0x2F76, 0x8139, 0x9730,
+ 0x2F77, 0x8139, 0x9731,
+ 0x2F78, 0x8139, 0x9732,
+ 0x2F79, 0x8139, 0x9733,
+ 0x2F7A, 0x8139, 0x9734,
+ 0x2F7B, 0x8139, 0x9735,
+ 0x2F7C, 0x8139, 0x9736,
+ 0x2F7D, 0x8139, 0x9737,
+ 0x2F7E, 0x8139, 0x9738,
+ 0x2F7F, 0x8139, 0x9739,
+ 0x2F80, 0x8139, 0x9830,
+ 0x2F81, 0x8139, 0x9831,
+ 0x2F82, 0x8139, 0x9832,
+ 0x2F83, 0x8139, 0x9833,
+ 0x2F84, 0x8139, 0x9834,
+ 0x2F85, 0x8139, 0x9835,
+ 0x2F86, 0x8139, 0x9836,
+ 0x2F87, 0x8139, 0x9837,
+ 0x2F88, 0x8139, 0x9838,
+ 0x2F89, 0x8139, 0x9839,
+ 0x2F8A, 0x8139, 0x9930,
+ 0x2F8B, 0x8139, 0x9931,
+ 0x2F8C, 0x8139, 0x9932,
+ 0x2F8D, 0x8139, 0x9933,
+ 0x2F8E, 0x8139, 0x9934,
+ 0x2F8F, 0x8139, 0x9935,
+ 0x2F90, 0x8139, 0x9936,
+ 0x2F91, 0x8139, 0x9937,
+ 0x2F92, 0x8139, 0x9938,
+ 0x2F93, 0x8139, 0x9939,
+ 0x2F94, 0x8139, 0x9A30,
+ 0x2F95, 0x8139, 0x9A31,
+ 0x2F96, 0x8139, 0x9A32,
+ 0x2F97, 0x8139, 0x9A33,
+ 0x2F98, 0x8139, 0x9A34,
+ 0x2F99, 0x8139, 0x9A35,
+ 0x2F9A, 0x8139, 0x9A36,
+ 0x2F9B, 0x8139, 0x9A37,
+ 0x2F9C, 0x8139, 0x9A38,
+ 0x2F9D, 0x8139, 0x9A39,
+ 0x2F9E, 0x8139, 0x9B30,
+ 0x2F9F, 0x8139, 0x9B31,
+ 0x2FA0, 0x8139, 0x9B32,
+ 0x2FA1, 0x8139, 0x9B33,
+ 0x2FA2, 0x8139, 0x9B34,
+ 0x2FA3, 0x8139, 0x9B35,
+ 0x2FA4, 0x8139, 0x9B36,
+ 0x2FA5, 0x8139, 0x9B37,
+ 0x2FA6, 0x8139, 0x9B38,
+ 0x2FA7, 0x8139, 0x9B39,
+ 0x2FA8, 0x8139, 0x9C30,
+ 0x2FA9, 0x8139, 0x9C31,
+ 0x2FAA, 0x8139, 0x9C32,
+ 0x2FAB, 0x8139, 0x9C33,
+ 0x2FAC, 0x8139, 0x9C34,
+ 0x2FAD, 0x8139, 0x9C35,
+ 0x2FAE, 0x8139, 0x9C36,
+ 0x2FAF, 0x8139, 0x9C37,
+ 0x2FB0, 0x8139, 0x9C38,
+ 0x2FB1, 0x8139, 0x9C39,
+ 0x2FB2, 0x8139, 0x9D30,
+ 0x2FB3, 0x8139, 0x9D31,
+ 0x2FB4, 0x8139, 0x9D32,
+ 0x2FB5, 0x8139, 0x9D33,
+ 0x2FB6, 0x8139, 0x9D34,
+ 0x2FB7, 0x8139, 0x9D35,
+ 0x2FB8, 0x8139, 0x9D36,
+ 0x2FB9, 0x8139, 0x9D37,
+ 0x2FBA, 0x8139, 0x9D38,
+ 0x2FBB, 0x8139, 0x9D39,
+ 0x2FBC, 0x8139, 0x9E30,
+ 0x2FBD, 0x8139, 0x9E31,
+ 0x2FBE, 0x8139, 0x9E32,
+ 0x2FBF, 0x8139, 0x9E33,
+ 0x2FC0, 0x8139, 0x9E34,
+ 0x2FC1, 0x8139, 0x9E35,
+ 0x2FC2, 0x8139, 0x9E36,
+ 0x2FC3, 0x8139, 0x9E37,
+ 0x2FC4, 0x8139, 0x9E38,
+ 0x2FC5, 0x8139, 0x9E39,
+ 0x2FC6, 0x8139, 0x9F30,
+ 0x2FC7, 0x8139, 0x9F31,
+ 0x2FC8, 0x8139, 0x9F32,
+ 0x2FC9, 0x8139, 0x9F33,
+ 0x2FCA, 0x8139, 0x9F34,
+ 0x2FCB, 0x8139, 0x9F35,
+ 0x2FCC, 0x8139, 0x9F36,
+ 0x2FCD, 0x8139, 0x9F37,
+ 0x2FCE, 0x8139, 0x9F38,
+ 0x2FCF, 0x8139, 0x9F39,
+ 0x2FD0, 0x8139, 0xA030,
+ 0x2FD1, 0x8139, 0xA031,
+ 0x2FD2, 0x8139, 0xA032,
+ 0x2FD3, 0x8139, 0xA033,
+ 0x2FD4, 0x8139, 0xA034,
+ 0x2FD5, 0x8139, 0xA035,
+ 0x2FD6, 0x8139, 0xA036,
+ 0x2FD7, 0x8139, 0xA037,
+ 0x2FD8, 0x8139, 0xA038,
+ 0x2FD9, 0x8139, 0xA039,
+ 0x2FDA, 0x8139, 0xA130,
+ 0x2FDB, 0x8139, 0xA131,
+ 0x2FDC, 0x8139, 0xA132,
+ 0x2FDD, 0x8139, 0xA133,
+ 0x2FDE, 0x8139, 0xA134,
+ 0x2FDF, 0x8139, 0xA135,
+ 0x2FE0, 0x8139, 0xA136,
+ 0x2FE1, 0x8139, 0xA137,
+ 0x2FE2, 0x8139, 0xA138,
+ 0x2FE3, 0x8139, 0xA139,
+ 0x2FE4, 0x8139, 0xA230,
+ 0x2FE5, 0x8139, 0xA231,
+ 0x2FE6, 0x8139, 0xA232,
+ 0x2FE7, 0x8139, 0xA233,
+ 0x2FE8, 0x8139, 0xA234,
+ 0x2FE9, 0x8139, 0xA235,
+ 0x2FEA, 0x8139, 0xA236,
+ 0x2FEB, 0x8139, 0xA237,
+ 0x2FEC, 0x8139, 0xA238,
+ 0x2FED, 0x8139, 0xA239,
+ 0x2FEE, 0x8139, 0xA330,
+ 0x2FEF, 0x8139, 0xA331,
+ 0x2FFC, 0x8139, 0xA332,
+ 0x2FFD, 0x8139, 0xA333,
+ 0x2FFE, 0x8139, 0xA334,
+ 0x2FFF, 0x8139, 0xA335,
+ 0x3004, 0x8139, 0xA336,
+ 0x3018, 0x8139, 0xA337,
+ 0x3019, 0x8139, 0xA338,
+ 0x301A, 0x8139, 0xA339,
+ 0x301B, 0x8139, 0xA430,
+ 0x301C, 0x8139, 0xA431,
+ 0x301F, 0x8139, 0xA432,
+ 0x3020, 0x8139, 0xA433,
+ 0x302A, 0x8139, 0xA434,
+ 0x302B, 0x8139, 0xA435,
+ 0x302C, 0x8139, 0xA436,
+ 0x302D, 0x8139, 0xA437,
+ 0x302E, 0x8139, 0xA438,
+ 0x302F, 0x8139, 0xA439,
+ 0x3030, 0x8139, 0xA530,
+ 0x3031, 0x8139, 0xA531,
+ 0x3032, 0x8139, 0xA532,
+ 0x3033, 0x8139, 0xA533,
+ 0x3034, 0x8139, 0xA534,
+ 0x3035, 0x8139, 0xA535,
+ 0x3036, 0x8139, 0xA536,
+ 0x3037, 0x8139, 0xA537,
+ 0x3038, 0x8139, 0xA538,
+ 0x3039, 0x8139, 0xA539,
+ 0x303A, 0x8139, 0xA630,
+ 0x303B, 0x8139, 0xA631,
+ 0x303C, 0x8139, 0xA632,
+ 0x303D, 0x8139, 0xA633,
+ 0x303F, 0x8139, 0xA634,
+ 0x3040, 0x8139, 0xA635,
+ 0x3094, 0x8139, 0xA636,
+ 0x3095, 0x8139, 0xA637,
+ 0x3096, 0x8139, 0xA638,
+ 0x3097, 0x8139, 0xA639,
+ 0x3098, 0x8139, 0xA730,
+ 0x3099, 0x8139, 0xA731,
+ 0x309A, 0x8139, 0xA732,
+ 0x309F, 0x8139, 0xA733,
+ 0x30A0, 0x8139, 0xA734,
+ 0x30F7, 0x8139, 0xA735,
+ 0x30F8, 0x8139, 0xA736,
+ 0x30F9, 0x8139, 0xA737,
+ 0x30FA, 0x8139, 0xA738,
+ 0x30FB, 0x8139, 0xA739,
+ 0x30FF, 0x8139, 0xA830,
+ 0x3100, 0x8139, 0xA831,
+ 0x3101, 0x8139, 0xA832,
+ 0x3102, 0x8139, 0xA833,
+ 0x3103, 0x8139, 0xA834,
+ 0x3104, 0x8139, 0xA835,
+ 0x312A, 0x8139, 0xA836,
+ 0x312B, 0x8139, 0xA837,
+ 0x312C, 0x8139, 0xA838,
+ 0x312D, 0x8139, 0xA839,
+ 0x312E, 0x8139, 0xA930,
+ 0x312F, 0x8139, 0xA931,
+ 0x3130, 0x8139, 0xA932,
+ 0x3131, 0x8139, 0xA933,
+ 0x3132, 0x8139, 0xA934,
+ 0x3133, 0x8139, 0xA935,
+ 0x3134, 0x8139, 0xA936,
+ 0x3135, 0x8139, 0xA937,
+ 0x3136, 0x8139, 0xA938,
+ 0x3137, 0x8139, 0xA939,
+ 0x3138, 0x8139, 0xAA30,
+ 0x3139, 0x8139, 0xAA31,
+ 0x313A, 0x8139, 0xAA32,
+ 0x313B, 0x8139, 0xAA33,
+ 0x313C, 0x8139, 0xAA34,
+ 0x313D, 0x8139, 0xAA35,
+ 0x313E, 0x8139, 0xAA36,
+ 0x313F, 0x8139, 0xAA37,
+ 0x3140, 0x8139, 0xAA38,
+ 0x3141, 0x8139, 0xAA39,
+ 0x3142, 0x8139, 0xAB30,
+ 0x3143, 0x8139, 0xAB31,
+ 0x3144, 0x8139, 0xAB32,
+ 0x3145, 0x8139, 0xAB33,
+ 0x3146, 0x8139, 0xAB34,
+ 0x3147, 0x8139, 0xAB35,
+ 0x3148, 0x8139, 0xAB36,
+ 0x3149, 0x8139, 0xAB37,
+ 0x314A, 0x8139, 0xAB38,
+ 0x314B, 0x8139, 0xAB39,
+ 0x314C, 0x8139, 0xAC30,
+ 0x314D, 0x8139, 0xAC31,
+ 0x314E, 0x8139, 0xAC32,
+ 0x314F, 0x8139, 0xAC33,
+ 0x3150, 0x8139, 0xAC34,
+ 0x3151, 0x8139, 0xAC35,
+ 0x3152, 0x8139, 0xAC36,
+ 0x3153, 0x8139, 0xAC37,
+ 0x3154, 0x8139, 0xAC38,
+ 0x3155, 0x8139, 0xAC39,
+ 0x3156, 0x8139, 0xAD30,
+ 0x3157, 0x8139, 0xAD31,
+ 0x3158, 0x8139, 0xAD32,
+ 0x3159, 0x8139, 0xAD33,
+ 0x315A, 0x8139, 0xAD34,
+ 0x315B, 0x8139, 0xAD35,
+ 0x315C, 0x8139, 0xAD36,
+ 0x315D, 0x8139, 0xAD37,
+ 0x315E, 0x8139, 0xAD38,
+ 0x315F, 0x8139, 0xAD39,
+ 0x3160, 0x8139, 0xAE30,
+ 0x3161, 0x8139, 0xAE31,
+ 0x3162, 0x8139, 0xAE32,
+ 0x3163, 0x8139, 0xAE33,
+ 0x3164, 0x8139, 0xAE34,
+ 0x3165, 0x8139, 0xAE35,
+ 0x3166, 0x8139, 0xAE36,
+ 0x3167, 0x8139, 0xAE37,
+ 0x3168, 0x8139, 0xAE38,
+ 0x3169, 0x8139, 0xAE39,
+ 0x316A, 0x8139, 0xAF30,
+ 0x316B, 0x8139, 0xAF31,
+ 0x316C, 0x8139, 0xAF32,
+ 0x316D, 0x8139, 0xAF33,
+ 0x316E, 0x8139, 0xAF34,
+ 0x316F, 0x8139, 0xAF35,
+ 0x3170, 0x8139, 0xAF36,
+ 0x3171, 0x8139, 0xAF37,
+ 0x3172, 0x8139, 0xAF38,
+ 0x3173, 0x8139, 0xAF39,
+ 0x3174, 0x8139, 0xB030,
+ 0x3175, 0x8139, 0xB031,
+ 0x3176, 0x8139, 0xB032,
+ 0x3177, 0x8139, 0xB033,
+ 0x3178, 0x8139, 0xB034,
+ 0x3179, 0x8139, 0xB035,
+ 0x317A, 0x8139, 0xB036,
+ 0x317B, 0x8139, 0xB037,
+ 0x317C, 0x8139, 0xB038,
+ 0x317D, 0x8139, 0xB039,
+ 0x317E, 0x8139, 0xB130,
+ 0x317F, 0x8139, 0xB131,
+ 0x3180, 0x8139, 0xB132,
+ 0x3181, 0x8139, 0xB133,
+ 0x3182, 0x8139, 0xB134,
+ 0x3183, 0x8139, 0xB135,
+ 0x3184, 0x8139, 0xB136,
+ 0x3185, 0x8139, 0xB137,
+ 0x3186, 0x8139, 0xB138,
+ 0x3187, 0x8139, 0xB139,
+ 0x3188, 0x8139, 0xB230,
+ 0x3189, 0x8139, 0xB231,
+ 0x318A, 0x8139, 0xB232,
+ 0x318B, 0x8139, 0xB233,
+ 0x318C, 0x8139, 0xB234,
+ 0x318D, 0x8139, 0xB235,
+ 0x318E, 0x8139, 0xB236,
+ 0x318F, 0x8139, 0xB237,
+ 0x3190, 0x8139, 0xB238,
+ 0x3191, 0x8139, 0xB239,
+ 0x3192, 0x8139, 0xB330,
+ 0x3193, 0x8139, 0xB331,
+ 0x3194, 0x8139, 0xB332,
+ 0x3195, 0x8139, 0xB333,
+ 0x3196, 0x8139, 0xB334,
+ 0x3197, 0x8139, 0xB335,
+ 0x3198, 0x8139, 0xB336,
+ 0x3199, 0x8139, 0xB337,
+ 0x319A, 0x8139, 0xB338,
+ 0x319B, 0x8139, 0xB339,
+ 0x319C, 0x8139, 0xB430,
+ 0x319D, 0x8139, 0xB431,
+ 0x319E, 0x8139, 0xB432,
+ 0x319F, 0x8139, 0xB433,
+ 0x31A0, 0x8139, 0xB434,
+ 0x31A1, 0x8139, 0xB435,
+ 0x31A2, 0x8139, 0xB436,
+ 0x31A3, 0x8139, 0xB437,
+ 0x31A4, 0x8139, 0xB438,
+ 0x31A5, 0x8139, 0xB439,
+ 0x31A6, 0x8139, 0xB530,
+ 0x31A7, 0x8139, 0xB531,
+ 0x31A8, 0x8139, 0xB532,
+ 0x31A9, 0x8139, 0xB533,
+ 0x31AA, 0x8139, 0xB534,
+ 0x31AB, 0x8139, 0xB535,
+ 0x31AC, 0x8139, 0xB536,
+ 0x31AD, 0x8139, 0xB537,
+ 0x31AE, 0x8139, 0xB538,
+ 0x31AF, 0x8139, 0xB539,
+ 0x31B0, 0x8139, 0xB630,
+ 0x31B1, 0x8139, 0xB631,
+ 0x31B2, 0x8139, 0xB632,
+ 0x31B3, 0x8139, 0xB633,
+ 0x31B4, 0x8139, 0xB634,
+ 0x31B5, 0x8139, 0xB635,
+ 0x31B6, 0x8139, 0xB636,
+ 0x31B7, 0x8139, 0xB637,
+ 0x31B8, 0x8139, 0xB638,
+ 0x31B9, 0x8139, 0xB639,
+ 0x31BA, 0x8139, 0xB730,
+ 0x31BB, 0x8139, 0xB731,
+ 0x31BC, 0x8139, 0xB732,
+ 0x31BD, 0x8139, 0xB733,
+ 0x31BE, 0x8139, 0xB734,
+ 0x31BF, 0x8139, 0xB735,
+ 0x31C0, 0x8139, 0xB736,
+ 0x31C1, 0x8139, 0xB737,
+ 0x31C2, 0x8139, 0xB738,
+ 0x31C3, 0x8139, 0xB739,
+ 0x31C4, 0x8139, 0xB830,
+ 0x31C5, 0x8139, 0xB831,
+ 0x31C6, 0x8139, 0xB832,
+ 0x31C7, 0x8139, 0xB833,
+ 0x31C8, 0x8139, 0xB834,
+ 0x31C9, 0x8139, 0xB835,
+ 0x31CA, 0x8139, 0xB836,
+ 0x31CB, 0x8139, 0xB837,
+ 0x31CC, 0x8139, 0xB838,
+ 0x31CD, 0x8139, 0xB839,
+ 0x31CE, 0x8139, 0xB930,
+ 0x31CF, 0x8139, 0xB931,
+ 0x31D0, 0x8139, 0xB932,
+ 0x31D1, 0x8139, 0xB933,
+ 0x31D2, 0x8139, 0xB934,
+ 0x31D3, 0x8139, 0xB935,
+ 0x31D4, 0x8139, 0xB936,
+ 0x31D5, 0x8139, 0xB937,
+ 0x31D6, 0x8139, 0xB938,
+ 0x31D7, 0x8139, 0xB939,
+ 0x31D8, 0x8139, 0xBA30,
+ 0x31D9, 0x8139, 0xBA31,
+ 0x31DA, 0x8139, 0xBA32,
+ 0x31DB, 0x8139, 0xBA33,
+ 0x31DC, 0x8139, 0xBA34,
+ 0x31DD, 0x8139, 0xBA35,
+ 0x31DE, 0x8139, 0xBA36,
+ 0x31DF, 0x8139, 0xBA37,
+ 0x31E0, 0x8139, 0xBA38,
+ 0x31E1, 0x8139, 0xBA39,
+ 0x31E2, 0x8139, 0xBB30,
+ 0x31E3, 0x8139, 0xBB31,
+ 0x31E4, 0x8139, 0xBB32,
+ 0x31E5, 0x8139, 0xBB33,
+ 0x31E6, 0x8139, 0xBB34,
+ 0x31E7, 0x8139, 0xBB35,
+ 0x31E8, 0x8139, 0xBB36,
+ 0x31E9, 0x8139, 0xBB37,
+ 0x31EA, 0x8139, 0xBB38,
+ 0x31EB, 0x8139, 0xBB39,
+ 0x31EC, 0x8139, 0xBC30,
+ 0x31ED, 0x8139, 0xBC31,
+ 0x31EE, 0x8139, 0xBC32,
+ 0x31EF, 0x8139, 0xBC33,
+ 0x31F0, 0x8139, 0xBC34,
+ 0x31F1, 0x8139, 0xBC35,
+ 0x31F2, 0x8139, 0xBC36,
+ 0x31F3, 0x8139, 0xBC37,
+ 0x31F4, 0x8139, 0xBC38,
+ 0x31F5, 0x8139, 0xBC39,
+ 0x31F6, 0x8139, 0xBD30,
+ 0x31F7, 0x8139, 0xBD31,
+ 0x31F8, 0x8139, 0xBD32,
+ 0x31F9, 0x8139, 0xBD33,
+ 0x31FA, 0x8139, 0xBD34,
+ 0x31FB, 0x8139, 0xBD35,
+ 0x31FC, 0x8139, 0xBD36,
+ 0x31FD, 0x8139, 0xBD37,
+ 0x31FE, 0x8139, 0xBD38,
+ 0x31FF, 0x8139, 0xBD39,
+ 0x3200, 0x8139, 0xBE30,
+ 0x3201, 0x8139, 0xBE31,
+ 0x3202, 0x8139, 0xBE32,
+ 0x3203, 0x8139, 0xBE33,
+ 0x3204, 0x8139, 0xBE34,
+ 0x3205, 0x8139, 0xBE35,
+ 0x3206, 0x8139, 0xBE36,
+ 0x3207, 0x8139, 0xBE37,
+ 0x3208, 0x8139, 0xBE38,
+ 0x3209, 0x8139, 0xBE39,
+ 0x320A, 0x8139, 0xBF30,
+ 0x320B, 0x8139, 0xBF31,
+ 0x320C, 0x8139, 0xBF32,
+ 0x320D, 0x8139, 0xBF33,
+ 0x320E, 0x8139, 0xBF34,
+ 0x320F, 0x8139, 0xBF35,
+ 0x3210, 0x8139, 0xBF36,
+ 0x3211, 0x8139, 0xBF37,
+ 0x3212, 0x8139, 0xBF38,
+ 0x3213, 0x8139, 0xBF39,
+ 0x3214, 0x8139, 0xC030,
+ 0x3215, 0x8139, 0xC031,
+ 0x3216, 0x8139, 0xC032,
+ 0x3217, 0x8139, 0xC033,
+ 0x3218, 0x8139, 0xC034,
+ 0x3219, 0x8139, 0xC035,
+ 0x321A, 0x8139, 0xC036,
+ 0x321B, 0x8139, 0xC037,
+ 0x321C, 0x8139, 0xC038,
+ 0x321D, 0x8139, 0xC039,
+ 0x321E, 0x8139, 0xC130,
+ 0x321F, 0x8139, 0xC131,
+ 0x322A, 0x8139, 0xC132,
+ 0x322B, 0x8139, 0xC133,
+ 0x322C, 0x8139, 0xC134,
+ 0x322D, 0x8139, 0xC135,
+ 0x322E, 0x8139, 0xC136,
+ 0x322F, 0x8139, 0xC137,
+ 0x3230, 0x8139, 0xC138,
+ 0x3232, 0x8139, 0xC139,
+ 0x3233, 0x8139, 0xC230,
+ 0x3234, 0x8139, 0xC231,
+ 0x3235, 0x8139, 0xC232,
+ 0x3236, 0x8139, 0xC233,
+ 0x3237, 0x8139, 0xC234,
+ 0x3238, 0x8139, 0xC235,
+ 0x3239, 0x8139, 0xC236,
+ 0x323A, 0x8139, 0xC237,
+ 0x323B, 0x8139, 0xC238,
+ 0x323C, 0x8139, 0xC239,
+ 0x323D, 0x8139, 0xC330,
+ 0x323E, 0x8139, 0xC331,
+ 0x323F, 0x8139, 0xC332,
+ 0x3240, 0x8139, 0xC333,
+ 0x3241, 0x8139, 0xC334,
+ 0x3242, 0x8139, 0xC335,
+ 0x3243, 0x8139, 0xC336,
+ 0x3244, 0x8139, 0xC337,
+ 0x3245, 0x8139, 0xC338,
+ 0x3246, 0x8139, 0xC339,
+ 0x3247, 0x8139, 0xC430,
+ 0x3248, 0x8139, 0xC431,
+ 0x3249, 0x8139, 0xC432,
+ 0x324A, 0x8139, 0xC433,
+ 0x324B, 0x8139, 0xC434,
+ 0x324C, 0x8139, 0xC435,
+ 0x324D, 0x8139, 0xC436,
+ 0x324E, 0x8139, 0xC437,
+ 0x324F, 0x8139, 0xC438,
+ 0x3250, 0x8139, 0xC439,
+ 0x3251, 0x8139, 0xC530,
+ 0x3252, 0x8139, 0xC531,
+ 0x3253, 0x8139, 0xC532,
+ 0x3254, 0x8139, 0xC533,
+ 0x3255, 0x8139, 0xC534,
+ 0x3256, 0x8139, 0xC535,
+ 0x3257, 0x8139, 0xC536,
+ 0x3258, 0x8139, 0xC537,
+ 0x3259, 0x8139, 0xC538,
+ 0x325A, 0x8139, 0xC539,
+ 0x325B, 0x8139, 0xC630,
+ 0x325C, 0x8139, 0xC631,
+ 0x325D, 0x8139, 0xC632,
+ 0x325E, 0x8139, 0xC633,
+ 0x325F, 0x8139, 0xC634,
+ 0x3260, 0x8139, 0xC635,
+ 0x3261, 0x8139, 0xC636,
+ 0x3262, 0x8139, 0xC637,
+ 0x3263, 0x8139, 0xC638,
+ 0x3264, 0x8139, 0xC639,
+ 0x3265, 0x8139, 0xC730,
+ 0x3266, 0x8139, 0xC731,
+ 0x3267, 0x8139, 0xC732,
+ 0x3268, 0x8139, 0xC733,
+ 0x3269, 0x8139, 0xC734,
+ 0x326A, 0x8139, 0xC735,
+ 0x326B, 0x8139, 0xC736,
+ 0x326C, 0x8139, 0xC737,
+ 0x326D, 0x8139, 0xC738,
+ 0x326E, 0x8139, 0xC739,
+ 0x326F, 0x8139, 0xC830,
+ 0x3270, 0x8139, 0xC831,
+ 0x3271, 0x8139, 0xC832,
+ 0x3272, 0x8139, 0xC833,
+ 0x3273, 0x8139, 0xC834,
+ 0x3274, 0x8139, 0xC835,
+ 0x3275, 0x8139, 0xC836,
+ 0x3276, 0x8139, 0xC837,
+ 0x3277, 0x8139, 0xC838,
+ 0x3278, 0x8139, 0xC839,
+ 0x3279, 0x8139, 0xC930,
+ 0x327A, 0x8139, 0xC931,
+ 0x327B, 0x8139, 0xC932,
+ 0x327C, 0x8139, 0xC933,
+ 0x327D, 0x8139, 0xC934,
+ 0x327E, 0x8139, 0xC935,
+ 0x327F, 0x8139, 0xC936,
+ 0x3280, 0x8139, 0xC937,
+ 0x3281, 0x8139, 0xC938,
+ 0x3282, 0x8139, 0xC939,
+ 0x3283, 0x8139, 0xCA30,
+ 0x3284, 0x8139, 0xCA31,
+ 0x3285, 0x8139, 0xCA32,
+ 0x3286, 0x8139, 0xCA33,
+ 0x3287, 0x8139, 0xCA34,
+ 0x3288, 0x8139, 0xCA35,
+ 0x3289, 0x8139, 0xCA36,
+ 0x328A, 0x8139, 0xCA37,
+ 0x328B, 0x8139, 0xCA38,
+ 0x328C, 0x8139, 0xCA39,
+ 0x328D, 0x8139, 0xCB30,
+ 0x328E, 0x8139, 0xCB31,
+ 0x328F, 0x8139, 0xCB32,
+ 0x3290, 0x8139, 0xCB33,
+ 0x3291, 0x8139, 0xCB34,
+ 0x3292, 0x8139, 0xCB35,
+ 0x3293, 0x8139, 0xCB36,
+ 0x3294, 0x8139, 0xCB37,
+ 0x3295, 0x8139, 0xCB38,
+ 0x3296, 0x8139, 0xCB39,
+ 0x3297, 0x8139, 0xCC30,
+ 0x3298, 0x8139, 0xCC31,
+ 0x3299, 0x8139, 0xCC32,
+ 0x329A, 0x8139, 0xCC33,
+ 0x329B, 0x8139, 0xCC34,
+ 0x329C, 0x8139, 0xCC35,
+ 0x329D, 0x8139, 0xCC36,
+ 0x329E, 0x8139, 0xCC37,
+ 0x329F, 0x8139, 0xCC38,
+ 0x32A0, 0x8139, 0xCC39,
+ 0x32A1, 0x8139, 0xCD30,
+ 0x32A2, 0x8139, 0xCD31,
+ 0x32A4, 0x8139, 0xCD32,
+ 0x32A5, 0x8139, 0xCD33,
+ 0x32A6, 0x8139, 0xCD34,
+ 0x32A7, 0x8139, 0xCD35,
+ 0x32A8, 0x8139, 0xCD36,
+ 0x32A9, 0x8139, 0xCD37,
+ 0x32AA, 0x8139, 0xCD38,
+ 0x32AB, 0x8139, 0xCD39,
+ 0x32AC, 0x8139, 0xCE30,
+ 0x32AD, 0x8139, 0xCE31,
+ 0x32AE, 0x8139, 0xCE32,
+ 0x32AF, 0x8139, 0xCE33,
+ 0x32B0, 0x8139, 0xCE34,
+ 0x32B1, 0x8139, 0xCE35,
+ 0x32B2, 0x8139, 0xCE36,
+ 0x32B3, 0x8139, 0xCE37,
+ 0x32B4, 0x8139, 0xCE38,
+ 0x32B5, 0x8139, 0xCE39,
+ 0x32B6, 0x8139, 0xCF30,
+ 0x32B7, 0x8139, 0xCF31,
+ 0x32B8, 0x8139, 0xCF32,
+ 0x32B9, 0x8139, 0xCF33,
+ 0x32BA, 0x8139, 0xCF34,
+ 0x32BB, 0x8139, 0xCF35,
+ 0x32BC, 0x8139, 0xCF36,
+ 0x32BD, 0x8139, 0xCF37,
+ 0x32BE, 0x8139, 0xCF38,
+ 0x32BF, 0x8139, 0xCF39,
+ 0x32C0, 0x8139, 0xD030,
+ 0x32C1, 0x8139, 0xD031,
+ 0x32C2, 0x8139, 0xD032,
+ 0x32C3, 0x8139, 0xD033,
+ 0x32C4, 0x8139, 0xD034,
+ 0x32C5, 0x8139, 0xD035,
+ 0x32C6, 0x8139, 0xD036,
+ 0x32C7, 0x8139, 0xD037,
+ 0x32C8, 0x8139, 0xD038,
+ 0x32C9, 0x8139, 0xD039,
+ 0x32CA, 0x8139, 0xD130,
+ 0x32CB, 0x8139, 0xD131,
+ 0x32CC, 0x8139, 0xD132,
+ 0x32CD, 0x8139, 0xD133,
+ 0x32CE, 0x8139, 0xD134,
+ 0x32CF, 0x8139, 0xD135,
+ 0x32D0, 0x8139, 0xD136,
+ 0x32D1, 0x8139, 0xD137,
+ 0x32D2, 0x8139, 0xD138,
+ 0x32D3, 0x8139, 0xD139,
+ 0x32D4, 0x8139, 0xD230,
+ 0x32D5, 0x8139, 0xD231,
+ 0x32D6, 0x8139, 0xD232,
+ 0x32D7, 0x8139, 0xD233,
+ 0x32D8, 0x8139, 0xD234,
+ 0x32D9, 0x8139, 0xD235,
+ 0x32DA, 0x8139, 0xD236,
+ 0x32DB, 0x8139, 0xD237,
+ 0x32DC, 0x8139, 0xD238,
+ 0x32DD, 0x8139, 0xD239,
+ 0x32DE, 0x8139, 0xD330,
+ 0x32DF, 0x8139, 0xD331,
+ 0x32E0, 0x8139, 0xD332,
+ 0x32E1, 0x8139, 0xD333,
+ 0x32E2, 0x8139, 0xD334,
+ 0x32E3, 0x8139, 0xD335,
+ 0x32E4, 0x8139, 0xD336,
+ 0x32E5, 0x8139, 0xD337,
+ 0x32E6, 0x8139, 0xD338,
+ 0x32E7, 0x8139, 0xD339,
+ 0x32E8, 0x8139, 0xD430,
+ 0x32E9, 0x8139, 0xD431,
+ 0x32EA, 0x8139, 0xD432,
+ 0x32EB, 0x8139, 0xD433,
+ 0x32EC, 0x8139, 0xD434,
+ 0x32ED, 0x8139, 0xD435,
+ 0x32EE, 0x8139, 0xD436,
+ 0x32EF, 0x8139, 0xD437,
+ 0x32F0, 0x8139, 0xD438,
+ 0x32F1, 0x8139, 0xD439,
+ 0x32F2, 0x8139, 0xD530,
+ 0x32F3, 0x8139, 0xD531,
+ 0x32F4, 0x8139, 0xD532,
+ 0x32F5, 0x8139, 0xD533,
+ 0x32F6, 0x8139, 0xD534,
+ 0x32F7, 0x8139, 0xD535,
+ 0x32F8, 0x8139, 0xD536,
+ 0x32F9, 0x8139, 0xD537,
+ 0x32FA, 0x8139, 0xD538,
+ 0x32FB, 0x8139, 0xD539,
+ 0x32FC, 0x8139, 0xD630,
+ 0x32FD, 0x8139, 0xD631,
+ 0x32FE, 0x8139, 0xD632,
+ 0x32FF, 0x8139, 0xD633,
+ 0x3300, 0x8139, 0xD634,
+ 0x3301, 0x8139, 0xD635,
+ 0x3302, 0x8139, 0xD636,
+ 0x3303, 0x8139, 0xD637,
+ 0x3304, 0x8139, 0xD638,
+ 0x3305, 0x8139, 0xD639,
+ 0x3306, 0x8139, 0xD730,
+ 0x3307, 0x8139, 0xD731,
+ 0x3308, 0x8139, 0xD732,
+ 0x3309, 0x8139, 0xD733,
+ 0x330A, 0x8139, 0xD734,
+ 0x330B, 0x8139, 0xD735,
+ 0x330C, 0x8139, 0xD736,
+ 0x330D, 0x8139, 0xD737,
+ 0x330E, 0x8139, 0xD738,
+ 0x330F, 0x8139, 0xD739,
+ 0x3310, 0x8139, 0xD830,
+ 0x3311, 0x8139, 0xD831,
+ 0x3312, 0x8139, 0xD832,
+ 0x3313, 0x8139, 0xD833,
+ 0x3314, 0x8139, 0xD834,
+ 0x3315, 0x8139, 0xD835,
+ 0x3316, 0x8139, 0xD836,
+ 0x3317, 0x8139, 0xD837,
+ 0x3318, 0x8139, 0xD838,
+ 0x3319, 0x8139, 0xD839,
+ 0x331A, 0x8139, 0xD930,
+ 0x331B, 0x8139, 0xD931,
+ 0x331C, 0x8139, 0xD932,
+ 0x331D, 0x8139, 0xD933,
+ 0x331E, 0x8139, 0xD934,
+ 0x331F, 0x8139, 0xD935,
+ 0x3320, 0x8139, 0xD936,
+ 0x3321, 0x8139, 0xD937,
+ 0x3322, 0x8139, 0xD938,
+ 0x3323, 0x8139, 0xD939,
+ 0x3324, 0x8139, 0xDA30,
+ 0x3325, 0x8139, 0xDA31,
+ 0x3326, 0x8139, 0xDA32,
+ 0x3327, 0x8139, 0xDA33,
+ 0x3328, 0x8139, 0xDA34,
+ 0x3329, 0x8139, 0xDA35,
+ 0x332A, 0x8139, 0xDA36,
+ 0x332B, 0x8139, 0xDA37,
+ 0x332C, 0x8139, 0xDA38,
+ 0x332D, 0x8139, 0xDA39,
+ 0x332E, 0x8139, 0xDB30,
+ 0x332F, 0x8139, 0xDB31,
+ 0x3330, 0x8139, 0xDB32,
+ 0x3331, 0x8139, 0xDB33,
+ 0x3332, 0x8139, 0xDB34,
+ 0x3333, 0x8139, 0xDB35,
+ 0x3334, 0x8139, 0xDB36,
+ 0x3335, 0x8139, 0xDB37,
+ 0x3336, 0x8139, 0xDB38,
+ 0x3337, 0x8139, 0xDB39,
+ 0x3338, 0x8139, 0xDC30,
+ 0x3339, 0x8139, 0xDC31,
+ 0x333A, 0x8139, 0xDC32,
+ 0x333B, 0x8139, 0xDC33,
+ 0x333C, 0x8139, 0xDC34,
+ 0x333D, 0x8139, 0xDC35,
+ 0x333E, 0x8139, 0xDC36,
+ 0x333F, 0x8139, 0xDC37,
+ 0x3340, 0x8139, 0xDC38,
+ 0x3341, 0x8139, 0xDC39,
+ 0x3342, 0x8139, 0xDD30,
+ 0x3343, 0x8139, 0xDD31,
+ 0x3344, 0x8139, 0xDD32,
+ 0x3345, 0x8139, 0xDD33,
+ 0x3346, 0x8139, 0xDD34,
+ 0x3347, 0x8139, 0xDD35,
+ 0x3348, 0x8139, 0xDD36,
+ 0x3349, 0x8139, 0xDD37,
+ 0x334A, 0x8139, 0xDD38,
+ 0x334B, 0x8139, 0xDD39,
+ 0x334C, 0x8139, 0xDE30,
+ 0x334D, 0x8139, 0xDE31,
+ 0x334E, 0x8139, 0xDE32,
+ 0x334F, 0x8139, 0xDE33,
+ 0x3350, 0x8139, 0xDE34,
+ 0x3351, 0x8139, 0xDE35,
+ 0x3352, 0x8139, 0xDE36,
+ 0x3353, 0x8139, 0xDE37,
+ 0x3354, 0x8139, 0xDE38,
+ 0x3355, 0x8139, 0xDE39,
+ 0x3356, 0x8139, 0xDF30,
+ 0x3357, 0x8139, 0xDF31,
+ 0x3358, 0x8139, 0xDF32,
+ 0x3359, 0x8139, 0xDF33,
+ 0x335A, 0x8139, 0xDF34,
+ 0x335B, 0x8139, 0xDF35,
+ 0x335C, 0x8139, 0xDF36,
+ 0x335D, 0x8139, 0xDF37,
+ 0x335E, 0x8139, 0xDF38,
+ 0x335F, 0x8139, 0xDF39,
+ 0x3360, 0x8139, 0xE030,
+ 0x3361, 0x8139, 0xE031,
+ 0x3362, 0x8139, 0xE032,
+ 0x3363, 0x8139, 0xE033,
+ 0x3364, 0x8139, 0xE034,
+ 0x3365, 0x8139, 0xE035,
+ 0x3366, 0x8139, 0xE036,
+ 0x3367, 0x8139, 0xE037,
+ 0x3368, 0x8139, 0xE038,
+ 0x3369, 0x8139, 0xE039,
+ 0x336A, 0x8139, 0xE130,
+ 0x336B, 0x8139, 0xE131,
+ 0x336C, 0x8139, 0xE132,
+ 0x336D, 0x8139, 0xE133,
+ 0x336E, 0x8139, 0xE134,
+ 0x336F, 0x8139, 0xE135,
+ 0x3370, 0x8139, 0xE136,
+ 0x3371, 0x8139, 0xE137,
+ 0x3372, 0x8139, 0xE138,
+ 0x3373, 0x8139, 0xE139,
+ 0x3374, 0x8139, 0xE230,
+ 0x3375, 0x8139, 0xE231,
+ 0x3376, 0x8139, 0xE232,
+ 0x3377, 0x8139, 0xE233,
+ 0x3378, 0x8139, 0xE234,
+ 0x3379, 0x8139, 0xE235,
+ 0x337A, 0x8139, 0xE236,
+ 0x337B, 0x8139, 0xE237,
+ 0x337C, 0x8139, 0xE238,
+ 0x337D, 0x8139, 0xE239,
+ 0x337E, 0x8139, 0xE330,
+ 0x337F, 0x8139, 0xE331,
+ 0x3380, 0x8139, 0xE332,
+ 0x3381, 0x8139, 0xE333,
+ 0x3382, 0x8139, 0xE334,
+ 0x3383, 0x8139, 0xE335,
+ 0x3384, 0x8139, 0xE336,
+ 0x3385, 0x8139, 0xE337,
+ 0x3386, 0x8139, 0xE338,
+ 0x3387, 0x8139, 0xE339,
+ 0x3388, 0x8139, 0xE430,
+ 0x3389, 0x8139, 0xE431,
+ 0x338A, 0x8139, 0xE432,
+ 0x338B, 0x8139, 0xE433,
+ 0x338C, 0x8139, 0xE434,
+ 0x338D, 0x8139, 0xE435,
+ 0x3390, 0x8139, 0xE436,
+ 0x3391, 0x8139, 0xE437,
+ 0x3392, 0x8139, 0xE438,
+ 0x3393, 0x8139, 0xE439,
+ 0x3394, 0x8139, 0xE530,
+ 0x3395, 0x8139, 0xE531,
+ 0x3396, 0x8139, 0xE532,
+ 0x3397, 0x8139, 0xE533,
+ 0x3398, 0x8139, 0xE534,
+ 0x3399, 0x8139, 0xE535,
+ 0x339A, 0x8139, 0xE536,
+ 0x339B, 0x8139, 0xE537,
+ 0x339F, 0x8139, 0xE538,
+ 0x33A0, 0x8139, 0xE539,
+ 0x33A2, 0x8139, 0xE630,
+ 0x33A3, 0x8139, 0xE631,
+ 0x33A4, 0x8139, 0xE632,
+ 0x33A5, 0x8139, 0xE633,
+ 0x33A6, 0x8139, 0xE634,
+ 0x33A7, 0x8139, 0xE635,
+ 0x33A8, 0x8139, 0xE636,
+ 0x33A9, 0x8139, 0xE637,
+ 0x33AA, 0x8139, 0xE638,
+ 0x33AB, 0x8139, 0xE639,
+ 0x33AC, 0x8139, 0xE730,
+ 0x33AD, 0x8139, 0xE731,
+ 0x33AE, 0x8139, 0xE732,
+ 0x33AF, 0x8139, 0xE733,
+ 0x33B0, 0x8139, 0xE734,
+ 0x33B1, 0x8139, 0xE735,
+ 0x33B2, 0x8139, 0xE736,
+ 0x33B3, 0x8139, 0xE737,
+ 0x33B4, 0x8139, 0xE738,
+ 0x33B5, 0x8139, 0xE739,
+ 0x33B6, 0x8139, 0xE830,
+ 0x33B7, 0x8139, 0xE831,
+ 0x33B8, 0x8139, 0xE832,
+ 0x33B9, 0x8139, 0xE833,
+ 0x33BA, 0x8139, 0xE834,
+ 0x33BB, 0x8139, 0xE835,
+ 0x33BC, 0x8139, 0xE836,
+ 0x33BD, 0x8139, 0xE837,
+ 0x33BE, 0x8139, 0xE838,
+ 0x33BF, 0x8139, 0xE839,
+ 0x33C0, 0x8139, 0xE930,
+ 0x33C1, 0x8139, 0xE931,
+ 0x33C2, 0x8139, 0xE932,
+ 0x33C3, 0x8139, 0xE933,
+ 0x33C5, 0x8139, 0xE934,
+ 0x33C6, 0x8139, 0xE935,
+ 0x33C7, 0x8139, 0xE936,
+ 0x33C8, 0x8139, 0xE937,
+ 0x33C9, 0x8139, 0xE938,
+ 0x33CA, 0x8139, 0xE939,
+ 0x33CB, 0x8139, 0xEA30,
+ 0x33CC, 0x8139, 0xEA31,
+ 0x33CD, 0x8139, 0xEA32,
+ 0x33CF, 0x8139, 0xEA33,
+ 0x33D0, 0x8139, 0xEA34,
+ 0x33D3, 0x8139, 0xEA35,
+ 0x33D4, 0x8139, 0xEA36,
+ 0x33D6, 0x8139, 0xEA37,
+ 0x33D7, 0x8139, 0xEA38,
+ 0x33D8, 0x8139, 0xEA39,
+ 0x33D9, 0x8139, 0xEB30,
+ 0x33DA, 0x8139, 0xEB31,
+ 0x33DB, 0x8139, 0xEB32,
+ 0x33DC, 0x8139, 0xEB33,
+ 0x33DD, 0x8139, 0xEB34,
+ 0x33DE, 0x8139, 0xEB35,
+ 0x33DF, 0x8139, 0xEB36,
+ 0x33E0, 0x8139, 0xEB37,
+ 0x33E1, 0x8139, 0xEB38,
+ 0x33E2, 0x8139, 0xEB39,
+ 0x33E3, 0x8139, 0xEC30,
+ 0x33E4, 0x8139, 0xEC31,
+ 0x33E5, 0x8139, 0xEC32,
+ 0x33E6, 0x8139, 0xEC33,
+ 0x33E7, 0x8139, 0xEC34,
+ 0x33E8, 0x8139, 0xEC35,
+ 0x33E9, 0x8139, 0xEC36,
+ 0x33EA, 0x8139, 0xEC37,
+ 0x33EB, 0x8139, 0xEC38,
+ 0x33EC, 0x8139, 0xEC39,
+ 0x33ED, 0x8139, 0xED30,
+ 0x33EE, 0x8139, 0xED31,
+ 0x33EF, 0x8139, 0xED32,
+ 0x33F0, 0x8139, 0xED33,
+ 0x33F1, 0x8139, 0xED34,
+ 0x33F2, 0x8139, 0xED35,
+ 0x33F3, 0x8139, 0xED36,
+ 0x33F4, 0x8139, 0xED37,
+ 0x33F5, 0x8139, 0xED38,
+ 0x33F6, 0x8139, 0xED39,
+ 0x33F7, 0x8139, 0xEE30,
+ 0x33F8, 0x8139, 0xEE31,
+ 0x33F9, 0x8139, 0xEE32,
+ 0x33FA, 0x8139, 0xEE33,
+ 0x33FB, 0x8139, 0xEE34,
+ 0x33FC, 0x8139, 0xEE35,
+ 0x33FD, 0x8139, 0xEE36,
+ 0x33FE, 0x8139, 0xEE37,
+ 0x33FF, 0x8139, 0xEE38,
+ 0x3400, 0x8139, 0xEE39,
+ 0x3401, 0x8139, 0xEF30,
+ 0x3402, 0x8139, 0xEF31,
+ 0x3403, 0x8139, 0xEF32,
+ 0x3404, 0x8139, 0xEF33,
+ 0x3405, 0x8139, 0xEF34,
+ 0x3406, 0x8139, 0xEF35,
+ 0x3407, 0x8139, 0xEF36,
+ 0x3408, 0x8139, 0xEF37,
+ 0x3409, 0x8139, 0xEF38,
+ 0x340A, 0x8139, 0xEF39,
+ 0x340B, 0x8139, 0xF030,
+ 0x340C, 0x8139, 0xF031,
+ 0x340D, 0x8139, 0xF032,
+ 0x340E, 0x8139, 0xF033,
+ 0x340F, 0x8139, 0xF034,
+ 0x3410, 0x8139, 0xF035,
+ 0x3411, 0x8139, 0xF036,
+ 0x3412, 0x8139, 0xF037,
+ 0x3413, 0x8139, 0xF038,
+ 0x3414, 0x8139, 0xF039,
+ 0x3415, 0x8139, 0xF130,
+ 0x3416, 0x8139, 0xF131,
+ 0x3417, 0x8139, 0xF132,
+ 0x3418, 0x8139, 0xF133,
+ 0x3419, 0x8139, 0xF134,
+ 0x341A, 0x8139, 0xF135,
+ 0x341B, 0x8139, 0xF136,
+ 0x341C, 0x8139, 0xF137,
+ 0x341D, 0x8139, 0xF138,
+ 0x341E, 0x8139, 0xF139,
+ 0x341F, 0x8139, 0xF230,
+ 0x3420, 0x8139, 0xF231,
+ 0x3421, 0x8139, 0xF232,
+ 0x3422, 0x8139, 0xF233,
+ 0x3423, 0x8139, 0xF234,
+ 0x3424, 0x8139, 0xF235,
+ 0x3425, 0x8139, 0xF236,
+ 0x3426, 0x8139, 0xF237,
+ 0x3427, 0x8139, 0xF238,
+ 0x3428, 0x8139, 0xF239,
+ 0x3429, 0x8139, 0xF330,
+ 0x342A, 0x8139, 0xF331,
+ 0x342B, 0x8139, 0xF332,
+ 0x342C, 0x8139, 0xF333,
+ 0x342D, 0x8139, 0xF334,
+ 0x342E, 0x8139, 0xF335,
+ 0x342F, 0x8139, 0xF336,
+ 0x3430, 0x8139, 0xF337,
+ 0x3431, 0x8139, 0xF338,
+ 0x3432, 0x8139, 0xF339,
+ 0x3433, 0x8139, 0xF430,
+ 0x3434, 0x8139, 0xF431,
+ 0x3435, 0x8139, 0xF432,
+ 0x3436, 0x8139, 0xF433,
+ 0x3437, 0x8139, 0xF434,
+ 0x3438, 0x8139, 0xF435,
+ 0x3439, 0x8139, 0xF436,
+ 0x343A, 0x8139, 0xF437,
+ 0x343B, 0x8139, 0xF438,
+ 0x343C, 0x8139, 0xF439,
+ 0x343D, 0x8139, 0xF530,
+ 0x343E, 0x8139, 0xF531,
+ 0x343F, 0x8139, 0xF532,
+ 0x3440, 0x8139, 0xF533,
+ 0x3441, 0x8139, 0xF534,
+ 0x3442, 0x8139, 0xF535,
+ 0x3443, 0x8139, 0xF536,
+ 0x3444, 0x8139, 0xF537,
+ 0x3445, 0x8139, 0xF538,
+ 0x3446, 0x8139, 0xF539,
+ 0x3448, 0x8139, 0xF630,
+ 0x3449, 0x8139, 0xF631,
+ 0x344A, 0x8139, 0xF632,
+ 0x344B, 0x8139, 0xF633,
+ 0x344C, 0x8139, 0xF634,
+ 0x344D, 0x8139, 0xF635,
+ 0x344E, 0x8139, 0xF636,
+ 0x344F, 0x8139, 0xF637,
+ 0x3450, 0x8139, 0xF638,
+ 0x3451, 0x8139, 0xF639,
+ 0x3452, 0x8139, 0xF730,
+ 0x3453, 0x8139, 0xF731,
+ 0x3454, 0x8139, 0xF732,
+ 0x3455, 0x8139, 0xF733,
+ 0x3456, 0x8139, 0xF734,
+ 0x3457, 0x8139, 0xF735,
+ 0x3458, 0x8139, 0xF736,
+ 0x3459, 0x8139, 0xF737,
+ 0x345A, 0x8139, 0xF738,
+ 0x345B, 0x8139, 0xF739,
+ 0x345C, 0x8139, 0xF830,
+ 0x345D, 0x8139, 0xF831,
+ 0x345E, 0x8139, 0xF832,
+ 0x345F, 0x8139, 0xF833,
+ 0x3460, 0x8139, 0xF834,
+ 0x3461, 0x8139, 0xF835,
+ 0x3462, 0x8139, 0xF836,
+ 0x3463, 0x8139, 0xF837,
+ 0x3464, 0x8139, 0xF838,
+ 0x3465, 0x8139, 0xF839,
+ 0x3466, 0x8139, 0xF930,
+ 0x3467, 0x8139, 0xF931,
+ 0x3468, 0x8139, 0xF932,
+ 0x3469, 0x8139, 0xF933,
+ 0x346A, 0x8139, 0xF934,
+ 0x346B, 0x8139, 0xF935,
+ 0x346C, 0x8139, 0xF936,
+ 0x346D, 0x8139, 0xF937,
+ 0x346E, 0x8139, 0xF938,
+ 0x346F, 0x8139, 0xF939,
+ 0x3470, 0x8139, 0xFA30,
+ 0x3471, 0x8139, 0xFA31,
+ 0x3472, 0x8139, 0xFA32,
+ 0x3474, 0x8139, 0xFA33,
+ 0x3475, 0x8139, 0xFA34,
+ 0x3476, 0x8139, 0xFA35,
+ 0x3477, 0x8139, 0xFA36,
+ 0x3478, 0x8139, 0xFA37,
+ 0x3479, 0x8139, 0xFA38,
+ 0x347A, 0x8139, 0xFA39,
+ 0x347B, 0x8139, 0xFB30,
+ 0x347C, 0x8139, 0xFB31,
+ 0x347D, 0x8139, 0xFB32,
+ 0x347E, 0x8139, 0xFB33,
+ 0x347F, 0x8139, 0xFB34,
+ 0x3480, 0x8139, 0xFB35,
+ 0x3481, 0x8139, 0xFB36,
+ 0x3482, 0x8139, 0xFB37,
+ 0x3483, 0x8139, 0xFB38,
+ 0x3484, 0x8139, 0xFB39,
+ 0x3485, 0x8139, 0xFC30,
+ 0x3486, 0x8139, 0xFC31,
+ 0x3487, 0x8139, 0xFC32,
+ 0x3488, 0x8139, 0xFC33,
+ 0x3489, 0x8139, 0xFC34,
+ 0x348A, 0x8139, 0xFC35,
+ 0x348B, 0x8139, 0xFC36,
+ 0x348C, 0x8139, 0xFC37,
+ 0x348D, 0x8139, 0xFC38,
+ 0x348E, 0x8139, 0xFC39,
+ 0x348F, 0x8139, 0xFD30,
+ 0x3490, 0x8139, 0xFD31,
+ 0x3491, 0x8139, 0xFD32,
+ 0x3492, 0x8139, 0xFD33,
+ 0x3493, 0x8139, 0xFD34,
+ 0x3494, 0x8139, 0xFD35,
+ 0x3495, 0x8139, 0xFD36,
+ 0x3496, 0x8139, 0xFD37,
+ 0x3497, 0x8139, 0xFD38,
+ 0x3498, 0x8139, 0xFD39,
+ 0x3499, 0x8139, 0xFE30,
+ 0x349A, 0x8139, 0xFE31,
+ 0x349B, 0x8139, 0xFE32,
+ 0x349C, 0x8139, 0xFE33,
+ 0x349D, 0x8139, 0xFE34,
+ 0x349E, 0x8139, 0xFE35,
+ 0x349F, 0x8139, 0xFE36,
+ 0x34A0, 0x8139, 0xFE37,
+ 0x34A1, 0x8139, 0xFE38,
+ 0x34A2, 0x8139, 0xFE39,
+ 0x34A3, 0x8230, 0x8130,
+ 0x34A4, 0x8230, 0x8131,
+ 0x34A5, 0x8230, 0x8132,
+ 0x34A6, 0x8230, 0x8133,
+ 0x34A7, 0x8230, 0x8134,
+ 0x34A8, 0x8230, 0x8135,
+ 0x34A9, 0x8230, 0x8136,
+ 0x34AA, 0x8230, 0x8137,
+ 0x34AB, 0x8230, 0x8138,
+ 0x34AC, 0x8230, 0x8139,
+ 0x34AD, 0x8230, 0x8230,
+ 0x34AE, 0x8230, 0x8231,
+ 0x34AF, 0x8230, 0x8232,
+ 0x34B0, 0x8230, 0x8233,
+ 0x34B1, 0x8230, 0x8234,
+ 0x34B2, 0x8230, 0x8235,
+ 0x34B3, 0x8230, 0x8236,
+ 0x34B4, 0x8230, 0x8237,
+ 0x34B5, 0x8230, 0x8238,
+ 0x34B6, 0x8230, 0x8239,
+ 0x34B7, 0x8230, 0x8330,
+ 0x34B8, 0x8230, 0x8331,
+ 0x34B9, 0x8230, 0x8332,
+ 0x34BA, 0x8230, 0x8333,
+ 0x34BB, 0x8230, 0x8334,
+ 0x34BC, 0x8230, 0x8335,
+ 0x34BD, 0x8230, 0x8336,
+ 0x34BE, 0x8230, 0x8337,
+ 0x34BF, 0x8230, 0x8338,
+ 0x34C0, 0x8230, 0x8339,
+ 0x34C1, 0x8230, 0x8430,
+ 0x34C2, 0x8230, 0x8431,
+ 0x34C3, 0x8230, 0x8432,
+ 0x34C4, 0x8230, 0x8433,
+ 0x34C5, 0x8230, 0x8434,
+ 0x34C6, 0x8230, 0x8435,
+ 0x34C7, 0x8230, 0x8436,
+ 0x34C8, 0x8230, 0x8437,
+ 0x34C9, 0x8230, 0x8438,
+ 0x34CA, 0x8230, 0x8439,
+ 0x34CB, 0x8230, 0x8530,
+ 0x34CC, 0x8230, 0x8531,
+ 0x34CD, 0x8230, 0x8532,
+ 0x34CE, 0x8230, 0x8533,
+ 0x34CF, 0x8230, 0x8534,
+ 0x34D0, 0x8230, 0x8535,
+ 0x34D1, 0x8230, 0x8536,
+ 0x34D2, 0x8230, 0x8537,
+ 0x34D3, 0x8230, 0x8538,
+ 0x34D4, 0x8230, 0x8539,
+ 0x34D5, 0x8230, 0x8630,
+ 0x34D6, 0x8230, 0x8631,
+ 0x34D7, 0x8230, 0x8632,
+ 0x34D8, 0x8230, 0x8633,
+ 0x34D9, 0x8230, 0x8634,
+ 0x34DA, 0x8230, 0x8635,
+ 0x34DB, 0x8230, 0x8636,
+ 0x34DC, 0x8230, 0x8637,
+ 0x34DD, 0x8230, 0x8638,
+ 0x34DE, 0x8230, 0x8639,
+ 0x34DF, 0x8230, 0x8730,
+ 0x34E0, 0x8230, 0x8731,
+ 0x34E1, 0x8230, 0x8732,
+ 0x34E2, 0x8230, 0x8733,
+ 0x34E3, 0x8230, 0x8734,
+ 0x34E4, 0x8230, 0x8735,
+ 0x34E5, 0x8230, 0x8736,
+ 0x34E6, 0x8230, 0x8737,
+ 0x34E7, 0x8230, 0x8738,
+ 0x34E8, 0x8230, 0x8739,
+ 0x34E9, 0x8230, 0x8830,
+ 0x34EA, 0x8230, 0x8831,
+ 0x34EB, 0x8230, 0x8832,
+ 0x34EC, 0x8230, 0x8833,
+ 0x34ED, 0x8230, 0x8834,
+ 0x34EE, 0x8230, 0x8835,
+ 0x34EF, 0x8230, 0x8836,
+ 0x34F0, 0x8230, 0x8837,
+ 0x34F1, 0x8230, 0x8838,
+ 0x34F2, 0x8230, 0x8839,
+ 0x34F3, 0x8230, 0x8930,
+ 0x34F4, 0x8230, 0x8931,
+ 0x34F5, 0x8230, 0x8932,
+ 0x34F6, 0x8230, 0x8933,
+ 0x34F7, 0x8230, 0x8934,
+ 0x34F8, 0x8230, 0x8935,
+ 0x34F9, 0x8230, 0x8936,
+ 0x34FA, 0x8230, 0x8937,
+ 0x34FB, 0x8230, 0x8938,
+ 0x34FC, 0x8230, 0x8939,
+ 0x34FD, 0x8230, 0x8A30,
+ 0x34FE, 0x8230, 0x8A31,
+ 0x34FF, 0x8230, 0x8A32,
+ 0x3500, 0x8230, 0x8A33,
+ 0x3501, 0x8230, 0x8A34,
+ 0x3502, 0x8230, 0x8A35,
+ 0x3503, 0x8230, 0x8A36,
+ 0x3504, 0x8230, 0x8A37,
+ 0x3505, 0x8230, 0x8A38,
+ 0x3506, 0x8230, 0x8A39,
+ 0x3507, 0x8230, 0x8B30,
+ 0x3508, 0x8230, 0x8B31,
+ 0x3509, 0x8230, 0x8B32,
+ 0x350A, 0x8230, 0x8B33,
+ 0x350B, 0x8230, 0x8B34,
+ 0x350C, 0x8230, 0x8B35,
+ 0x350D, 0x8230, 0x8B36,
+ 0x350E, 0x8230, 0x8B37,
+ 0x350F, 0x8230, 0x8B38,
+ 0x3510, 0x8230, 0x8B39,
+ 0x3511, 0x8230, 0x8C30,
+ 0x3512, 0x8230, 0x8C31,
+ 0x3513, 0x8230, 0x8C32,
+ 0x3514, 0x8230, 0x8C33,
+ 0x3515, 0x8230, 0x8C34,
+ 0x3516, 0x8230, 0x8C35,
+ 0x3517, 0x8230, 0x8C36,
+ 0x3518, 0x8230, 0x8C37,
+ 0x3519, 0x8230, 0x8C38,
+ 0x351A, 0x8230, 0x8C39,
+ 0x351B, 0x8230, 0x8D30,
+ 0x351C, 0x8230, 0x8D31,
+ 0x351D, 0x8230, 0x8D32,
+ 0x351E, 0x8230, 0x8D33,
+ 0x351F, 0x8230, 0x8D34,
+ 0x3520, 0x8230, 0x8D35,
+ 0x3521, 0x8230, 0x8D36,
+ 0x3522, 0x8230, 0x8D37,
+ 0x3523, 0x8230, 0x8D38,
+ 0x3524, 0x8230, 0x8D39,
+ 0x3525, 0x8230, 0x8E30,
+ 0x3526, 0x8230, 0x8E31,
+ 0x3527, 0x8230, 0x8E32,
+ 0x3528, 0x8230, 0x8E33,
+ 0x3529, 0x8230, 0x8E34,
+ 0x352A, 0x8230, 0x8E35,
+ 0x352B, 0x8230, 0x8E36,
+ 0x352C, 0x8230, 0x8E37,
+ 0x352D, 0x8230, 0x8E38,
+ 0x352E, 0x8230, 0x8E39,
+ 0x352F, 0x8230, 0x8F30,
+ 0x3530, 0x8230, 0x8F31,
+ 0x3531, 0x8230, 0x8F32,
+ 0x3532, 0x8230, 0x8F33,
+ 0x3533, 0x8230, 0x8F34,
+ 0x3534, 0x8230, 0x8F35,
+ 0x3535, 0x8230, 0x8F36,
+ 0x3536, 0x8230, 0x8F37,
+ 0x3537, 0x8230, 0x8F38,
+ 0x3538, 0x8230, 0x8F39,
+ 0x3539, 0x8230, 0x9030,
+ 0x353A, 0x8230, 0x9031,
+ 0x353B, 0x8230, 0x9032,
+ 0x353C, 0x8230, 0x9033,
+ 0x353D, 0x8230, 0x9034,
+ 0x353E, 0x8230, 0x9035,
+ 0x353F, 0x8230, 0x9036,
+ 0x3540, 0x8230, 0x9037,
+ 0x3541, 0x8230, 0x9038,
+ 0x3542, 0x8230, 0x9039,
+ 0x3543, 0x8230, 0x9130,
+ 0x3544, 0x8230, 0x9131,
+ 0x3545, 0x8230, 0x9132,
+ 0x3546, 0x8230, 0x9133,
+ 0x3547, 0x8230, 0x9134,
+ 0x3548, 0x8230, 0x9135,
+ 0x3549, 0x8230, 0x9136,
+ 0x354A, 0x8230, 0x9137,
+ 0x354B, 0x8230, 0x9138,
+ 0x354C, 0x8230, 0x9139,
+ 0x354D, 0x8230, 0x9230,
+ 0x354E, 0x8230, 0x9231,
+ 0x354F, 0x8230, 0x9232,
+ 0x3550, 0x8230, 0x9233,
+ 0x3551, 0x8230, 0x9234,
+ 0x3552, 0x8230, 0x9235,
+ 0x3553, 0x8230, 0x9236,
+ 0x3554, 0x8230, 0x9237,
+ 0x3555, 0x8230, 0x9238,
+ 0x3556, 0x8230, 0x9239,
+ 0x3557, 0x8230, 0x9330,
+ 0x3558, 0x8230, 0x9331,
+ 0x3559, 0x8230, 0x9332,
+ 0x355A, 0x8230, 0x9333,
+ 0x355B, 0x8230, 0x9334,
+ 0x355C, 0x8230, 0x9335,
+ 0x355D, 0x8230, 0x9336,
+ 0x355E, 0x8230, 0x9337,
+ 0x355F, 0x8230, 0x9338,
+ 0x3560, 0x8230, 0x9339,
+ 0x3561, 0x8230, 0x9430,
+ 0x3562, 0x8230, 0x9431,
+ 0x3563, 0x8230, 0x9432,
+ 0x3564, 0x8230, 0x9433,
+ 0x3565, 0x8230, 0x9434,
+ 0x3566, 0x8230, 0x9435,
+ 0x3567, 0x8230, 0x9436,
+ 0x3568, 0x8230, 0x9437,
+ 0x3569, 0x8230, 0x9438,
+ 0x356A, 0x8230, 0x9439,
+ 0x356B, 0x8230, 0x9530,
+ 0x356C, 0x8230, 0x9531,
+ 0x356D, 0x8230, 0x9532,
+ 0x356E, 0x8230, 0x9533,
+ 0x356F, 0x8230, 0x9534,
+ 0x3570, 0x8230, 0x9535,
+ 0x3571, 0x8230, 0x9536,
+ 0x3572, 0x8230, 0x9537,
+ 0x3573, 0x8230, 0x9538,
+ 0x3574, 0x8230, 0x9539,
+ 0x3575, 0x8230, 0x9630,
+ 0x3576, 0x8230, 0x9631,
+ 0x3577, 0x8230, 0x9632,
+ 0x3578, 0x8230, 0x9633,
+ 0x3579, 0x8230, 0x9634,
+ 0x357A, 0x8230, 0x9635,
+ 0x357B, 0x8230, 0x9636,
+ 0x357C, 0x8230, 0x9637,
+ 0x357D, 0x8230, 0x9638,
+ 0x357E, 0x8230, 0x9639,
+ 0x357F, 0x8230, 0x9730,
+ 0x3580, 0x8230, 0x9731,
+ 0x3581, 0x8230, 0x9732,
+ 0x3582, 0x8230, 0x9733,
+ 0x3583, 0x8230, 0x9734,
+ 0x3584, 0x8230, 0x9735,
+ 0x3585, 0x8230, 0x9736,
+ 0x3586, 0x8230, 0x9737,
+ 0x3587, 0x8230, 0x9738,
+ 0x3588, 0x8230, 0x9739,
+ 0x3589, 0x8230, 0x9830,
+ 0x358A, 0x8230, 0x9831,
+ 0x358B, 0x8230, 0x9832,
+ 0x358C, 0x8230, 0x9833,
+ 0x358D, 0x8230, 0x9834,
+ 0x358E, 0x8230, 0x9835,
+ 0x358F, 0x8230, 0x9836,
+ 0x3590, 0x8230, 0x9837,
+ 0x3591, 0x8230, 0x9838,
+ 0x3592, 0x8230, 0x9839,
+ 0x3593, 0x8230, 0x9930,
+ 0x3594, 0x8230, 0x9931,
+ 0x3595, 0x8230, 0x9932,
+ 0x3596, 0x8230, 0x9933,
+ 0x3597, 0x8230, 0x9934,
+ 0x3598, 0x8230, 0x9935,
+ 0x3599, 0x8230, 0x9936,
+ 0x359A, 0x8230, 0x9937,
+ 0x359B, 0x8230, 0x9938,
+ 0x359C, 0x8230, 0x9939,
+ 0x359D, 0x8230, 0x9A30,
+ 0x359F, 0x8230, 0x9A31,
+ 0x35A0, 0x8230, 0x9A32,
+ 0x35A1, 0x8230, 0x9A33,
+ 0x35A2, 0x8230, 0x9A34,
+ 0x35A3, 0x8230, 0x9A35,
+ 0x35A4, 0x8230, 0x9A36,
+ 0x35A5, 0x8230, 0x9A37,
+ 0x35A6, 0x8230, 0x9A38,
+ 0x35A7, 0x8230, 0x9A39,
+ 0x35A8, 0x8230, 0x9B30,
+ 0x35A9, 0x8230, 0x9B31,
+ 0x35AA, 0x8230, 0x9B32,
+ 0x35AB, 0x8230, 0x9B33,
+ 0x35AC, 0x8230, 0x9B34,
+ 0x35AD, 0x8230, 0x9B35,
+ 0x35AE, 0x8230, 0x9B36,
+ 0x35AF, 0x8230, 0x9B37,
+ 0x35B0, 0x8230, 0x9B38,
+ 0x35B1, 0x8230, 0x9B39,
+ 0x35B2, 0x8230, 0x9C30,
+ 0x35B3, 0x8230, 0x9C31,
+ 0x35B4, 0x8230, 0x9C32,
+ 0x35B5, 0x8230, 0x9C33,
+ 0x35B6, 0x8230, 0x9C34,
+ 0x35B7, 0x8230, 0x9C35,
+ 0x35B8, 0x8230, 0x9C36,
+ 0x35B9, 0x8230, 0x9C37,
+ 0x35BA, 0x8230, 0x9C38,
+ 0x35BB, 0x8230, 0x9C39,
+ 0x35BC, 0x8230, 0x9D30,
+ 0x35BD, 0x8230, 0x9D31,
+ 0x35BE, 0x8230, 0x9D32,
+ 0x35BF, 0x8230, 0x9D33,
+ 0x35C0, 0x8230, 0x9D34,
+ 0x35C1, 0x8230, 0x9D35,
+ 0x35C2, 0x8230, 0x9D36,
+ 0x35C3, 0x8230, 0x9D37,
+ 0x35C4, 0x8230, 0x9D38,
+ 0x35C5, 0x8230, 0x9D39,
+ 0x35C6, 0x8230, 0x9E30,
+ 0x35C7, 0x8230, 0x9E31,
+ 0x35C8, 0x8230, 0x9E32,
+ 0x35C9, 0x8230, 0x9E33,
+ 0x35CA, 0x8230, 0x9E34,
+ 0x35CB, 0x8230, 0x9E35,
+ 0x35CC, 0x8230, 0x9E36,
+ 0x35CD, 0x8230, 0x9E37,
+ 0x35CE, 0x8230, 0x9E38,
+ 0x35CF, 0x8230, 0x9E39,
+ 0x35D0, 0x8230, 0x9F30,
+ 0x35D1, 0x8230, 0x9F31,
+ 0x35D2, 0x8230, 0x9F32,
+ 0x35D3, 0x8230, 0x9F33,
+ 0x35D4, 0x8230, 0x9F34,
+ 0x35D5, 0x8230, 0x9F35,
+ 0x35D6, 0x8230, 0x9F36,
+ 0x35D7, 0x8230, 0x9F37,
+ 0x35D8, 0x8230, 0x9F38,
+ 0x35D9, 0x8230, 0x9F39,
+ 0x35DA, 0x8230, 0xA030,
+ 0x35DB, 0x8230, 0xA031,
+ 0x35DC, 0x8230, 0xA032,
+ 0x35DD, 0x8230, 0xA033,
+ 0x35DE, 0x8230, 0xA034,
+ 0x35DF, 0x8230, 0xA035,
+ 0x35E0, 0x8230, 0xA036,
+ 0x35E1, 0x8230, 0xA037,
+ 0x35E2, 0x8230, 0xA038,
+ 0x35E3, 0x8230, 0xA039,
+ 0x35E4, 0x8230, 0xA130,
+ 0x35E5, 0x8230, 0xA131,
+ 0x35E6, 0x8230, 0xA132,
+ 0x35E7, 0x8230, 0xA133,
+ 0x35E8, 0x8230, 0xA134,
+ 0x35E9, 0x8230, 0xA135,
+ 0x35EA, 0x8230, 0xA136,
+ 0x35EB, 0x8230, 0xA137,
+ 0x35EC, 0x8230, 0xA138,
+ 0x35ED, 0x8230, 0xA139,
+ 0x35EE, 0x8230, 0xA230,
+ 0x35EF, 0x8230, 0xA231,
+ 0x35F0, 0x8230, 0xA232,
+ 0x35F1, 0x8230, 0xA233,
+ 0x35F2, 0x8230, 0xA234,
+ 0x35F3, 0x8230, 0xA235,
+ 0x35F4, 0x8230, 0xA236,
+ 0x35F5, 0x8230, 0xA237,
+ 0x35F6, 0x8230, 0xA238,
+ 0x35F7, 0x8230, 0xA239,
+ 0x35F8, 0x8230, 0xA330,
+ 0x35F9, 0x8230, 0xA331,
+ 0x35FA, 0x8230, 0xA332,
+ 0x35FB, 0x8230, 0xA333,
+ 0x35FC, 0x8230, 0xA334,
+ 0x35FD, 0x8230, 0xA335,
+ 0x35FE, 0x8230, 0xA336,
+ 0x35FF, 0x8230, 0xA337,
+ 0x3600, 0x8230, 0xA338,
+ 0x3601, 0x8230, 0xA339,
+ 0x3602, 0x8230, 0xA430,
+ 0x3603, 0x8230, 0xA431,
+ 0x3604, 0x8230, 0xA432,
+ 0x3605, 0x8230, 0xA433,
+ 0x3606, 0x8230, 0xA434,
+ 0x3607, 0x8230, 0xA435,
+ 0x3608, 0x8230, 0xA436,
+ 0x3609, 0x8230, 0xA437,
+ 0x360A, 0x8230, 0xA438,
+ 0x360B, 0x8230, 0xA439,
+ 0x360C, 0x8230, 0xA530,
+ 0x360D, 0x8230, 0xA531,
+ 0x360F, 0x8230, 0xA532,
+ 0x3610, 0x8230, 0xA533,
+ 0x3611, 0x8230, 0xA534,
+ 0x3612, 0x8230, 0xA535,
+ 0x3613, 0x8230, 0xA536,
+ 0x3614, 0x8230, 0xA537,
+ 0x3615, 0x8230, 0xA538,
+ 0x3616, 0x8230, 0xA539,
+ 0x3617, 0x8230, 0xA630,
+ 0x3618, 0x8230, 0xA631,
+ 0x3619, 0x8230, 0xA632,
+ 0x3919, 0x8230, 0xF238,
+ 0x391A, 0x8230, 0xF239,
+ 0x391B, 0x8230, 0xF330,
+ 0x391C, 0x8230, 0xF331,
+ 0x391D, 0x8230, 0xF332,
+ 0x391E, 0x8230, 0xF333,
+ 0x391F, 0x8230, 0xF334,
+ 0x3920, 0x8230, 0xF335,
+ 0x3921, 0x8230, 0xF336,
+ 0x3922, 0x8230, 0xF337,
+ 0x3923, 0x8230, 0xF338,
+ 0x3924, 0x8230, 0xF339,
+ 0x3925, 0x8230, 0xF430,
+ 0x3926, 0x8230, 0xF431,
+ 0x3927, 0x8230, 0xF432,
+ 0x3928, 0x8230, 0xF433,
+ 0x3929, 0x8230, 0xF434,
+ 0x392A, 0x8230, 0xF435,
+ 0x392B, 0x8230, 0xF436,
+ 0x392C, 0x8230, 0xF437,
+ 0x392D, 0x8230, 0xF438,
+ 0x392E, 0x8230, 0xF439,
+ 0x392F, 0x8230, 0xF530,
+ 0x3930, 0x8230, 0xF531,
+ 0x3931, 0x8230, 0xF532,
+ 0x3932, 0x8230, 0xF533,
+ 0x3933, 0x8230, 0xF534,
+ 0x3934, 0x8230, 0xF535,
+ 0x3935, 0x8230, 0xF536,
+ 0x3936, 0x8230, 0xF537,
+ 0x3937, 0x8230, 0xF538,
+ 0x3938, 0x8230, 0xF539,
+ 0x3939, 0x8230, 0xF630,
+ 0x393A, 0x8230, 0xF631,
+ 0x393B, 0x8230, 0xF632,
+ 0x393C, 0x8230, 0xF633,
+ 0x393D, 0x8230, 0xF634,
+ 0x393E, 0x8230, 0xF635,
+ 0x393F, 0x8230, 0xF636,
+ 0x3940, 0x8230, 0xF637,
+ 0x3941, 0x8230, 0xF638,
+ 0x3942, 0x8230, 0xF639,
+ 0x3943, 0x8230, 0xF730,
+ 0x3944, 0x8230, 0xF731,
+ 0x3945, 0x8230, 0xF732,
+ 0x3946, 0x8230, 0xF733,
+ 0x3947, 0x8230, 0xF734,
+ 0x3948, 0x8230, 0xF735,
+ 0x3949, 0x8230, 0xF736,
+ 0x394A, 0x8230, 0xF737,
+ 0x394B, 0x8230, 0xF738,
+ 0x394C, 0x8230, 0xF739,
+ 0x394D, 0x8230, 0xF830,
+ 0x394E, 0x8230, 0xF831,
+ 0x394F, 0x8230, 0xF832,
+ 0x3950, 0x8230, 0xF833,
+ 0x3951, 0x8230, 0xF834,
+ 0x3952, 0x8230, 0xF835,
+ 0x3953, 0x8230, 0xF836,
+ 0x3954, 0x8230, 0xF837,
+ 0x3955, 0x8230, 0xF838,
+ 0x3956, 0x8230, 0xF839,
+ 0x3957, 0x8230, 0xF930,
+ 0x3958, 0x8230, 0xF931,
+ 0x3959, 0x8230, 0xF932,
+ 0x395A, 0x8230, 0xF933,
+ 0x395B, 0x8230, 0xF934,
+ 0x395C, 0x8230, 0xF935,
+ 0x395D, 0x8230, 0xF936,
+ 0x395E, 0x8230, 0xF937,
+ 0x395F, 0x8230, 0xF938,
+ 0x3960, 0x8230, 0xF939,
+ 0x3961, 0x8230, 0xFA30,
+ 0x3962, 0x8230, 0xFA31,
+ 0x3963, 0x8230, 0xFA32,
+ 0x3964, 0x8230, 0xFA33,
+ 0x3965, 0x8230, 0xFA34,
+ 0x3966, 0x8230, 0xFA35,
+ 0x3967, 0x8230, 0xFA36,
+ 0x3968, 0x8230, 0xFA37,
+ 0x3969, 0x8230, 0xFA38,
+ 0x396A, 0x8230, 0xFA39,
+ 0x396B, 0x8230, 0xFB30,
+ 0x396C, 0x8230, 0xFB31,
+ 0x396D, 0x8230, 0xFB32,
+ 0x396F, 0x8230, 0xFB33,
+ 0x3970, 0x8230, 0xFB34,
+ 0x3971, 0x8230, 0xFB35,
+ 0x3972, 0x8230, 0xFB36,
+ 0x3973, 0x8230, 0xFB37,
+ 0x3974, 0x8230, 0xFB38,
+ 0x3975, 0x8230, 0xFB39,
+ 0x3976, 0x8230, 0xFC30,
+ 0x3977, 0x8230, 0xFC31,
+ 0x3978, 0x8230, 0xFC32,
+ 0x3979, 0x8230, 0xFC33,
+ 0x397A, 0x8230, 0xFC34,
+ 0x397B, 0x8230, 0xFC35,
+ 0x397C, 0x8230, 0xFC36,
+ 0x397D, 0x8230, 0xFC37,
+ 0x397E, 0x8230, 0xFC38,
+ 0x397F, 0x8230, 0xFC39,
+ 0x3980, 0x8230, 0xFD30,
+ 0x3981, 0x8230, 0xFD31,
+ 0x3982, 0x8230, 0xFD32,
+ 0x3983, 0x8230, 0xFD33,
+ 0x3984, 0x8230, 0xFD34,
+ 0x3985, 0x8230, 0xFD35,
+ 0x3986, 0x8230, 0xFD36,
+ 0x3987, 0x8230, 0xFD37,
+ 0x3988, 0x8230, 0xFD38,
+ 0x3989, 0x8230, 0xFD39,
+ 0x398A, 0x8230, 0xFE30,
+ 0x398B, 0x8230, 0xFE31,
+ 0x398C, 0x8230, 0xFE32,
+ 0x398D, 0x8230, 0xFE33,
+ 0x398E, 0x8230, 0xFE34,
+ 0x398F, 0x8230, 0xFE35,
+ 0x3990, 0x8230, 0xFE36,
+ 0x3991, 0x8230, 0xFE37,
+ 0x3992, 0x8230, 0xFE38,
+ 0x3993, 0x8230, 0xFE39,
+ 0x3994, 0x8231, 0x8130,
+ 0x3995, 0x8231, 0x8131,
+ 0x3996, 0x8231, 0x8132,
+ 0x3997, 0x8231, 0x8133,
+ 0x3998, 0x8231, 0x8134,
+ 0x3999, 0x8231, 0x8135,
+ 0x399A, 0x8231, 0x8136,
+ 0x399B, 0x8231, 0x8137,
+ 0x399C, 0x8231, 0x8138,
+ 0x399D, 0x8231, 0x8139,
+ 0x399E, 0x8231, 0x8230,
+ 0x399F, 0x8231, 0x8231,
+ 0x39A0, 0x8231, 0x8232,
+ 0x39A1, 0x8231, 0x8233,
+ 0x39A2, 0x8231, 0x8234,
+ 0x39A3, 0x8231, 0x8235,
+ 0x39A4, 0x8231, 0x8236,
+ 0x39A5, 0x8231, 0x8237,
+ 0x39A6, 0x8231, 0x8238,
+ 0x39A7, 0x8231, 0x8239,
+ 0x39A8, 0x8231, 0x8330,
+ 0x39A9, 0x8231, 0x8331,
+ 0x39AA, 0x8231, 0x8332,
+ 0x39AB, 0x8231, 0x8333,
+ 0x39AC, 0x8231, 0x8334,
+ 0x39AD, 0x8231, 0x8335,
+ 0x39AE, 0x8231, 0x8336,
+ 0x39AF, 0x8231, 0x8337,
+ 0x39B0, 0x8231, 0x8338,
+ 0x39B1, 0x8231, 0x8339,
+ 0x39B2, 0x8231, 0x8430,
+ 0x39B3, 0x8231, 0x8431,
+ 0x39B4, 0x8231, 0x8432,
+ 0x39B5, 0x8231, 0x8433,
+ 0x39B6, 0x8231, 0x8434,
+ 0x39B7, 0x8231, 0x8435,
+ 0x39B8, 0x8231, 0x8436,
+ 0x39B9, 0x8231, 0x8437,
+ 0x39BA, 0x8231, 0x8438,
+ 0x39BB, 0x8231, 0x8439,
+ 0x39BC, 0x8231, 0x8530,
+ 0x39BD, 0x8231, 0x8531,
+ 0x39BE, 0x8231, 0x8532,
+ 0x39BF, 0x8231, 0x8533,
+ 0x39C0, 0x8231, 0x8534,
+ 0x39C1, 0x8231, 0x8535,
+ 0x39C2, 0x8231, 0x8536,
+ 0x39C3, 0x8231, 0x8537,
+ 0x39C4, 0x8231, 0x8538,
+ 0x39C5, 0x8231, 0x8539,
+ 0x39C6, 0x8231, 0x8630,
+ 0x39C7, 0x8231, 0x8631,
+ 0x39C8, 0x8231, 0x8632,
+ 0x39C9, 0x8231, 0x8633,
+ 0x39CA, 0x8231, 0x8634,
+ 0x39CB, 0x8231, 0x8635,
+ 0x39CC, 0x8231, 0x8636,
+ 0x39CD, 0x8231, 0x8637,
+ 0x39CE, 0x8231, 0x8638,
+ 0x39D1, 0x8231, 0x8639,
+ 0x39D2, 0x8231, 0x8730,
+ 0x39D3, 0x8231, 0x8731,
+ 0x39D4, 0x8231, 0x8732,
+ 0x39D5, 0x8231, 0x8733,
+ 0x39D6, 0x8231, 0x8734,
+ 0x39D7, 0x8231, 0x8735,
+ 0x39D8, 0x8231, 0x8736,
+ 0x39D9, 0x8231, 0x8737,
+ 0x39DA, 0x8231, 0x8738,
+ 0x39DB, 0x8231, 0x8739,
+ 0x39DC, 0x8231, 0x8830,
+ 0x39DD, 0x8231, 0x8831,
+ 0x39DE, 0x8231, 0x8832,
+ 0x39E0, 0x8231, 0x8833,
+ 0x39E1, 0x8231, 0x8834,
+ 0x39E2, 0x8231, 0x8835,
+ 0x39E3, 0x8231, 0x8836,
+ 0x39E4, 0x8231, 0x8837,
+ 0x39E5, 0x8231, 0x8838,
+ 0x39E6, 0x8231, 0x8839,
+ 0x39E7, 0x8231, 0x8930,
+ 0x39E8, 0x8231, 0x8931,
+ 0x39E9, 0x8231, 0x8932,
+ 0x39EA, 0x8231, 0x8933,
+ 0x39EB, 0x8231, 0x8934,
+ 0x39EC, 0x8231, 0x8935,
+ 0x39ED, 0x8231, 0x8936,
+ 0x39EE, 0x8231, 0x8937,
+ 0x39EF, 0x8231, 0x8938,
+ 0x39F0, 0x8231, 0x8939,
+ 0x39F1, 0x8231, 0x8A30,
+ 0x39F2, 0x8231, 0x8A31,
+ 0x39F3, 0x8231, 0x8A32,
+ 0x39F4, 0x8231, 0x8A33,
+ 0x39F5, 0x8231, 0x8A34,
+ 0x39F6, 0x8231, 0x8A35,
+ 0x39F7, 0x8231, 0x8A36,
+ 0x39F8, 0x8231, 0x8A37,
+ 0x39F9, 0x8231, 0x8A38,
+ 0x39FA, 0x8231, 0x8A39,
+ 0x39FB, 0x8231, 0x8B30,
+ 0x39FC, 0x8231, 0x8B31,
+ 0x39FD, 0x8231, 0x8B32,
+ 0x39FE, 0x8231, 0x8B33,
+ 0x39FF, 0x8231, 0x8B34,
+ 0x3A00, 0x8231, 0x8B35,
+ 0x3A01, 0x8231, 0x8B36,
+ 0x3A02, 0x8231, 0x8B37,
+ 0x3A03, 0x8231, 0x8B38,
+ 0x3A04, 0x8231, 0x8B39,
+ 0x3A05, 0x8231, 0x8C30,
+ 0x3A06, 0x8231, 0x8C31,
+ 0x3A07, 0x8231, 0x8C32,
+ 0x3A08, 0x8231, 0x8C33,
+ 0x3A09, 0x8231, 0x8C34,
+ 0x3A0A, 0x8231, 0x8C35,
+ 0x3A0B, 0x8231, 0x8C36,
+ 0x3A0C, 0x8231, 0x8C37,
+ 0x3A0D, 0x8231, 0x8C38,
+ 0x3A0E, 0x8231, 0x8C39,
+ 0x3A0F, 0x8231, 0x8D30,
+ 0x3A10, 0x8231, 0x8D31,
+ 0x3A11, 0x8231, 0x8D32,
+ 0x3A12, 0x8231, 0x8D33,
+ 0x3A13, 0x8231, 0x8D34,
+ 0x3A14, 0x8231, 0x8D35,
+ 0x3A15, 0x8231, 0x8D36,
+ 0x3A16, 0x8231, 0x8D37,
+ 0x3A17, 0x8231, 0x8D38,
+ 0x3A18, 0x8231, 0x8D39,
+ 0x3A19, 0x8231, 0x8E30,
+ 0x3A1A, 0x8231, 0x8E31,
+ 0x3A1B, 0x8231, 0x8E32,
+ 0x3A1C, 0x8231, 0x8E33,
+ 0x3A1D, 0x8231, 0x8E34,
+ 0x3A1E, 0x8231, 0x8E35,
+ 0x3A1F, 0x8231, 0x8E36,
+ 0x3A20, 0x8231, 0x8E37,
+ 0x3A21, 0x8231, 0x8E38,
+ 0x3A22, 0x8231, 0x8E39,
+ 0x3A23, 0x8231, 0x8F30,
+ 0x3A24, 0x8231, 0x8F31,
+ 0x3A25, 0x8231, 0x8F32,
+ 0x3A26, 0x8231, 0x8F33,
+ 0x3A27, 0x8231, 0x8F34,
+ 0x3A28, 0x8231, 0x8F35,
+ 0x3A29, 0x8231, 0x8F36,
+ 0x3A2A, 0x8231, 0x8F37,
+ 0x3A2B, 0x8231, 0x8F38,
+ 0x3A2C, 0x8231, 0x8F39,
+ 0x3A2D, 0x8231, 0x9030,
+ 0x3A2E, 0x8231, 0x9031,
+ 0x3A2F, 0x8231, 0x9032,
+ 0x3A30, 0x8231, 0x9033,
+ 0x3A31, 0x8231, 0x9034,
+ 0x3A32, 0x8231, 0x9035,
+ 0x3A33, 0x8231, 0x9036,
+ 0x3A34, 0x8231, 0x9037,
+ 0x3A35, 0x8231, 0x9038,
+ 0x3A36, 0x8231, 0x9039,
+ 0x3A37, 0x8231, 0x9130,
+ 0x3A38, 0x8231, 0x9131,
+ 0x3A39, 0x8231, 0x9132,
+ 0x3A3A, 0x8231, 0x9133,
+ 0x3A3B, 0x8231, 0x9134,
+ 0x3A3C, 0x8231, 0x9135,
+ 0x3A3D, 0x8231, 0x9136,
+ 0x3A3E, 0x8231, 0x9137,
+ 0x3A3F, 0x8231, 0x9138,
+ 0x3A40, 0x8231, 0x9139,
+ 0x3A41, 0x8231, 0x9230,
+ 0x3A42, 0x8231, 0x9231,
+ 0x3A43, 0x8231, 0x9232,
+ 0x3A44, 0x8231, 0x9233,
+ 0x3A45, 0x8231, 0x9234,
+ 0x3A46, 0x8231, 0x9235,
+ 0x3A47, 0x8231, 0x9236,
+ 0x3A48, 0x8231, 0x9237,
+ 0x3A49, 0x8231, 0x9238,
+ 0x3A4A, 0x8231, 0x9239,
+ 0x3A4B, 0x8231, 0x9330,
+ 0x3A4C, 0x8231, 0x9331,
+ 0x3A4D, 0x8231, 0x9332,
+ 0x3A4E, 0x8231, 0x9333,
+ 0x3A4F, 0x8231, 0x9334,
+ 0x3A50, 0x8231, 0x9335,
+ 0x3A51, 0x8231, 0x9336,
+ 0x3A52, 0x8231, 0x9337,
+ 0x3A53, 0x8231, 0x9338,
+ 0x3A54, 0x8231, 0x9339,
+ 0x3A55, 0x8231, 0x9430,
+ 0x3A56, 0x8231, 0x9431,
+ 0x3A57, 0x8231, 0x9432,
+ 0x3A58, 0x8231, 0x9433,
+ 0x3A59, 0x8231, 0x9434,
+ 0x3A5A, 0x8231, 0x9435,
+ 0x3A5B, 0x8231, 0x9436,
+ 0x3A5C, 0x8231, 0x9437,
+ 0x3A5D, 0x8231, 0x9438,
+ 0x3A5E, 0x8231, 0x9439,
+ 0x3A5F, 0x8231, 0x9530,
+ 0x3A60, 0x8231, 0x9531,
+ 0x3A61, 0x8231, 0x9532,
+ 0x3A62, 0x8231, 0x9533,
+ 0x3A63, 0x8231, 0x9534,
+ 0x3A64, 0x8231, 0x9535,
+ 0x3A65, 0x8231, 0x9536,
+ 0x3A66, 0x8231, 0x9537,
+ 0x3A67, 0x8231, 0x9538,
+ 0x3A68, 0x8231, 0x9539,
+ 0x3A69, 0x8231, 0x9630,
+ 0x3A6A, 0x8231, 0x9631,
+ 0x3A6B, 0x8231, 0x9632,
+ 0x3A6C, 0x8231, 0x9633,
+ 0x3A6D, 0x8231, 0x9634,
+ 0x3A6E, 0x8231, 0x9635,
+ 0x3A6F, 0x8231, 0x9636,
+ 0x3A70, 0x8231, 0x9637,
+ 0x3A71, 0x8231, 0x9638,
+ 0x3A72, 0x8231, 0x9639,
+ 0x3A74, 0x8231, 0x9730,
+ 0x3A75, 0x8231, 0x9731,
+ 0x3A76, 0x8231, 0x9732,
+ 0x3A77, 0x8231, 0x9733,
+ 0x3A78, 0x8231, 0x9734,
+ 0x3A79, 0x8231, 0x9735,
+ 0x3A7A, 0x8231, 0x9736,
+ 0x3A7B, 0x8231, 0x9737,
+ 0x3A7C, 0x8231, 0x9738,
+ 0x3A7D, 0x8231, 0x9739,
+ 0x3A7E, 0x8231, 0x9830,
+ 0x3A7F, 0x8231, 0x9831,
+ 0x3A80, 0x8231, 0x9832,
+ 0x3A81, 0x8231, 0x9833,
+ 0x3A82, 0x8231, 0x9834,
+ 0x3A83, 0x8231, 0x9835,
+ 0x3A84, 0x8231, 0x9836,
+ 0x3A85, 0x8231, 0x9837,
+ 0x3A86, 0x8231, 0x9838,
+ 0x3A87, 0x8231, 0x9839,
+ 0x3A88, 0x8231, 0x9930,
+ 0x3A89, 0x8231, 0x9931,
+ 0x3A8A, 0x8231, 0x9932,
+ 0x3A8B, 0x8231, 0x9933,
+ 0x3A8C, 0x8231, 0x9934,
+ 0x3A8D, 0x8231, 0x9935,
+ 0x3A8E, 0x8231, 0x9936,
+ 0x3A8F, 0x8231, 0x9937,
+ 0x3A90, 0x8231, 0x9938,
+ 0x3A91, 0x8231, 0x9939,
+ 0x3A92, 0x8231, 0x9A30,
+ 0x3A93, 0x8231, 0x9A31,
+ 0x3A94, 0x8231, 0x9A32,
+ 0x3A95, 0x8231, 0x9A33,
+ 0x3A96, 0x8231, 0x9A34,
+ 0x3A97, 0x8231, 0x9A35,
+ 0x3A98, 0x8231, 0x9A36,
+ 0x3A99, 0x8231, 0x9A37,
+ 0x3A9A, 0x8231, 0x9A38,
+ 0x3A9B, 0x8231, 0x9A39,
+ 0x3A9C, 0x8231, 0x9B30,
+ 0x3A9D, 0x8231, 0x9B31,
+ 0x3A9E, 0x8231, 0x9B32,
+ 0x3A9F, 0x8231, 0x9B33,
+ 0x3AA0, 0x8231, 0x9B34,
+ 0x3AA1, 0x8231, 0x9B35,
+ 0x3AA2, 0x8231, 0x9B36,
+ 0x3AA3, 0x8231, 0x9B37,
+ 0x3AA4, 0x8231, 0x9B38,
+ 0x3AA5, 0x8231, 0x9B39,
+ 0x3AA6, 0x8231, 0x9C30,
+ 0x3AA7, 0x8231, 0x9C31,
+ 0x3AA8, 0x8231, 0x9C32,
+ 0x3AA9, 0x8231, 0x9C33,
+ 0x3AAA, 0x8231, 0x9C34,
+ 0x3AAB, 0x8231, 0x9C35,
+ 0x3AAC, 0x8231, 0x9C36,
+ 0x3AAD, 0x8231, 0x9C37,
+ 0x3AAE, 0x8231, 0x9C38,
+ 0x3AAF, 0x8231, 0x9C39,
+ 0x3AB0, 0x8231, 0x9D30,
+ 0x3AB1, 0x8231, 0x9D31,
+ 0x3AB2, 0x8231, 0x9D32,
+ 0x3AB3, 0x8231, 0x9D33,
+ 0x3AB4, 0x8231, 0x9D34,
+ 0x3AB5, 0x8231, 0x9D35,
+ 0x3AB6, 0x8231, 0x9D36,
+ 0x3AB7, 0x8231, 0x9D37,
+ 0x3AB8, 0x8231, 0x9D38,
+ 0x3AB9, 0x8231, 0x9D39,
+ 0x3ABA, 0x8231, 0x9E30,
+ 0x3ABB, 0x8231, 0x9E31,
+ 0x3ABC, 0x8231, 0x9E32,
+ 0x3ABD, 0x8231, 0x9E33,
+ 0x3ABE, 0x8231, 0x9E34,
+ 0x3ABF, 0x8231, 0x9E35,
+ 0x3AC0, 0x8231, 0x9E36,
+ 0x3AC1, 0x8231, 0x9E37,
+ 0x3AC2, 0x8231, 0x9E38,
+ 0x3AC3, 0x8231, 0x9E39,
+ 0x3AC4, 0x8231, 0x9F30,
+ 0x3AC5, 0x8231, 0x9F31,
+ 0x3AC6, 0x8231, 0x9F32,
+ 0x3AC7, 0x8231, 0x9F33,
+ 0x3AC8, 0x8231, 0x9F34,
+ 0x3AC9, 0x8231, 0x9F35,
+ 0x3ACA, 0x8231, 0x9F36,
+ 0x3ACB, 0x8231, 0x9F37,
+ 0x3ACC, 0x8231, 0x9F38,
+ 0x3ACD, 0x8231, 0x9F39,
+ 0x3ACE, 0x8231, 0xA030,
+ 0x3ACF, 0x8231, 0xA031,
+ 0x3AD0, 0x8231, 0xA032,
+ 0x3AD1, 0x8231, 0xA033,
+ 0x3AD2, 0x8231, 0xA034,
+ 0x3AD3, 0x8231, 0xA035,
+ 0x3AD4, 0x8231, 0xA036,
+ 0x3AD5, 0x8231, 0xA037,
+ 0x3AD6, 0x8231, 0xA038,
+ 0x3AD7, 0x8231, 0xA039,
+ 0x3AD8, 0x8231, 0xA130,
+ 0x3AD9, 0x8231, 0xA131,
+ 0x3ADA, 0x8231, 0xA132,
+ 0x3ADB, 0x8231, 0xA133,
+ 0x3ADC, 0x8231, 0xA134,
+ 0x3ADD, 0x8231, 0xA135,
+ 0x3ADE, 0x8231, 0xA136,
+ 0x3ADF, 0x8231, 0xA137,
+ 0x3AE0, 0x8231, 0xA138,
+ 0x3AE1, 0x8231, 0xA139,
+ 0x3AE2, 0x8231, 0xA230,
+ 0x3AE3, 0x8231, 0xA231,
+ 0x3AE4, 0x8231, 0xA232,
+ 0x3AE5, 0x8231, 0xA233,
+ 0x3AE6, 0x8231, 0xA234,
+ 0x3AE7, 0x8231, 0xA235,
+ 0x3AE8, 0x8231, 0xA236,
+ 0x3AE9, 0x8231, 0xA237,
+ 0x3AEA, 0x8231, 0xA238,
+ 0x3AEB, 0x8231, 0xA239,
+ 0x3AEC, 0x8231, 0xA330,
+ 0x3AED, 0x8231, 0xA331,
+ 0x3AEE, 0x8231, 0xA332,
+ 0x3AEF, 0x8231, 0xA333,
+ 0x3AF0, 0x8231, 0xA334,
+ 0x3AF1, 0x8231, 0xA335,
+ 0x3AF2, 0x8231, 0xA336,
+ 0x3AF3, 0x8231, 0xA337,
+ 0x3AF4, 0x8231, 0xA338,
+ 0x3AF5, 0x8231, 0xA339,
+ 0x3AF6, 0x8231, 0xA430,
+ 0x3AF7, 0x8231, 0xA431,
+ 0x3AF8, 0x8231, 0xA432,
+ 0x3AF9, 0x8231, 0xA433,
+ 0x3AFA, 0x8231, 0xA434,
+ 0x3AFB, 0x8231, 0xA435,
+ 0x3AFC, 0x8231, 0xA436,
+ 0x3AFD, 0x8231, 0xA437,
+ 0x3AFE, 0x8231, 0xA438,
+ 0x3AFF, 0x8231, 0xA439,
+ 0x3B00, 0x8231, 0xA530,
+ 0x3B01, 0x8231, 0xA531,
+ 0x3B02, 0x8231, 0xA532,
+ 0x3B03, 0x8231, 0xA533,
+ 0x3B04, 0x8231, 0xA534,
+ 0x3B05, 0x8231, 0xA535,
+ 0x3B06, 0x8231, 0xA536,
+ 0x3B07, 0x8231, 0xA537,
+ 0x3B08, 0x8231, 0xA538,
+ 0x3B09, 0x8231, 0xA539,
+ 0x3B0A, 0x8231, 0xA630,
+ 0x3B0B, 0x8231, 0xA631,
+ 0x3B0C, 0x8231, 0xA632,
+ 0x3B0D, 0x8231, 0xA633,
+ 0x3B0E, 0x8231, 0xA634,
+ 0x3B0F, 0x8231, 0xA635,
+ 0x3B10, 0x8231, 0xA636,
+ 0x3B11, 0x8231, 0xA637,
+ 0x3B12, 0x8231, 0xA638,
+ 0x3B13, 0x8231, 0xA639,
+ 0x3B14, 0x8231, 0xA730,
+ 0x3B15, 0x8231, 0xA731,
+ 0x3B16, 0x8231, 0xA732,
+ 0x3B17, 0x8231, 0xA733,
+ 0x3B18, 0x8231, 0xA734,
+ 0x3B19, 0x8231, 0xA735,
+ 0x3B1A, 0x8231, 0xA736,
+ 0x3B1B, 0x8231, 0xA737,
+ 0x3B1C, 0x8231, 0xA738,
+ 0x3B1D, 0x8231, 0xA739,
+ 0x3B1E, 0x8231, 0xA830,
+ 0x3B1F, 0x8231, 0xA831,
+ 0x3B20, 0x8231, 0xA832,
+ 0x3B21, 0x8231, 0xA833,
+ 0x3B22, 0x8231, 0xA834,
+ 0x3B23, 0x8231, 0xA835,
+ 0x3B24, 0x8231, 0xA836,
+ 0x3B25, 0x8231, 0xA837,
+ 0x3B26, 0x8231, 0xA838,
+ 0x3B27, 0x8231, 0xA839,
+ 0x3B28, 0x8231, 0xA930,
+ 0x3B29, 0x8231, 0xA931,
+ 0x3B2A, 0x8231, 0xA932,
+ 0x3B2B, 0x8231, 0xA933,
+ 0x3B2C, 0x8231, 0xA934,
+ 0x3B2D, 0x8231, 0xA935,
+ 0x3B2E, 0x8231, 0xA936,
+ 0x3B2F, 0x8231, 0xA937,
+ 0x3B30, 0x8231, 0xA938,
+ 0x3B31, 0x8231, 0xA939,
+ 0x3B32, 0x8231, 0xAA30,
+ 0x3B33, 0x8231, 0xAA31,
+ 0x3B34, 0x8231, 0xAA32,
+ 0x3B35, 0x8231, 0xAA33,
+ 0x3B36, 0x8231, 0xAA34,
+ 0x3B37, 0x8231, 0xAA35,
+ 0x3B38, 0x8231, 0xAA36,
+ 0x3B39, 0x8231, 0xAA37,
+ 0x3B3A, 0x8231, 0xAA38,
+ 0x3B3B, 0x8231, 0xAA39,
+ 0x3B3C, 0x8231, 0xAB30,
+ 0x3B3D, 0x8231, 0xAB31,
+ 0x3B3E, 0x8231, 0xAB32,
+ 0x3B3F, 0x8231, 0xAB33,
+ 0x3B40, 0x8231, 0xAB34,
+ 0x3B41, 0x8231, 0xAB35,
+ 0x3B42, 0x8231, 0xAB36,
+ 0x3B43, 0x8231, 0xAB37,
+ 0x3B44, 0x8231, 0xAB38,
+ 0x3B45, 0x8231, 0xAB39,
+ 0x3B46, 0x8231, 0xAC30,
+ 0x3B47, 0x8231, 0xAC31,
+ 0x3B48, 0x8231, 0xAC32,
+ 0x3B49, 0x8231, 0xAC33,
+ 0x3B4A, 0x8231, 0xAC34,
+ 0x3B4B, 0x8231, 0xAC35,
+ 0x3B4C, 0x8231, 0xAC36,
+ 0x3B4D, 0x8231, 0xAC37,
+ 0x3B4F, 0x8231, 0xAC38,
+ 0x3B50, 0x8231, 0xAC39,
+ 0x3B51, 0x8231, 0xAD30,
+ 0x3B52, 0x8231, 0xAD31,
+ 0x3B53, 0x8231, 0xAD32,
+ 0x3B54, 0x8231, 0xAD33,
+ 0x3B55, 0x8231, 0xAD34,
+ 0x3B56, 0x8231, 0xAD35,
+ 0x3B57, 0x8231, 0xAD36,
+ 0x3B58, 0x8231, 0xAD37,
+ 0x3B59, 0x8231, 0xAD38,
+ 0x3B5A, 0x8231, 0xAD39,
+ 0x3B5B, 0x8231, 0xAE30,
+ 0x3B5C, 0x8231, 0xAE31,
+ 0x3B5D, 0x8231, 0xAE32,
+ 0x3B5E, 0x8231, 0xAE33,
+ 0x3B5F, 0x8231, 0xAE34,
+ 0x3B60, 0x8231, 0xAE35,
+ 0x3B61, 0x8231, 0xAE36,
+ 0x3B62, 0x8231, 0xAE37,
+ 0x3B63, 0x8231, 0xAE38,
+ 0x3B64, 0x8231, 0xAE39,
+ 0x3B65, 0x8231, 0xAF30,
+ 0x3B66, 0x8231, 0xAF31,
+ 0x3B67, 0x8231, 0xAF32,
+ 0x3B68, 0x8231, 0xAF33,
+ 0x3B69, 0x8231, 0xAF34,
+ 0x3B6A, 0x8231, 0xAF35,
+ 0x3B6B, 0x8231, 0xAF36,
+ 0x3B6C, 0x8231, 0xAF37,
+ 0x3B6D, 0x8231, 0xAF38,
+ 0x3B6E, 0x8231, 0xAF39,
+ 0x3B6F, 0x8231, 0xB030,
+ 0x3B70, 0x8231, 0xB031,
+ 0x3B71, 0x8231, 0xB032,
+ 0x3B72, 0x8231, 0xB033,
+ 0x3B73, 0x8231, 0xB034,
+ 0x3B74, 0x8231, 0xB035,
+ 0x3B75, 0x8231, 0xB036,
+ 0x3B76, 0x8231, 0xB037,
+ 0x3B77, 0x8231, 0xB038,
+ 0x3B78, 0x8231, 0xB039,
+ 0x3B79, 0x8231, 0xB130,
+ 0x3B7A, 0x8231, 0xB131,
+ 0x3B7B, 0x8231, 0xB132,
+ 0x3B7C, 0x8231, 0xB133,
+ 0x3B7D, 0x8231, 0xB134,
+ 0x3B7E, 0x8231, 0xB135,
+ 0x3B7F, 0x8231, 0xB136,
+ 0x3B80, 0x8231, 0xB137,
+ 0x3B81, 0x8231, 0xB138,
+ 0x3B82, 0x8231, 0xB139,
+ 0x3B83, 0x8231, 0xB230,
+ 0x3B84, 0x8231, 0xB231,
+ 0x3B85, 0x8231, 0xB232,
+ 0x3B86, 0x8231, 0xB233,
+ 0x3B87, 0x8231, 0xB234,
+ 0x3B88, 0x8231, 0xB235,
+ 0x3B89, 0x8231, 0xB236,
+ 0x3B8A, 0x8231, 0xB237,
+ 0x3B8B, 0x8231, 0xB238,
+ 0x3B8C, 0x8231, 0xB239,
+ 0x3B8D, 0x8231, 0xB330,
+ 0x3B8E, 0x8231, 0xB331,
+ 0x3B8F, 0x8231, 0xB332,
+ 0x3B90, 0x8231, 0xB333,
+ 0x3B91, 0x8231, 0xB334,
+ 0x3B92, 0x8231, 0xB335,
+ 0x3B93, 0x8231, 0xB336,
+ 0x3B94, 0x8231, 0xB337,
+ 0x3B95, 0x8231, 0xB338,
+ 0x3B96, 0x8231, 0xB339,
+ 0x3B97, 0x8231, 0xB430,
+ 0x3B98, 0x8231, 0xB431,
+ 0x3B99, 0x8231, 0xB432,
+ 0x3B9A, 0x8231, 0xB433,
+ 0x3B9B, 0x8231, 0xB434,
+ 0x3B9C, 0x8231, 0xB435,
+ 0x3B9D, 0x8231, 0xB436,
+ 0x3B9E, 0x8231, 0xB437,
+ 0x3B9F, 0x8231, 0xB438,
+ 0x3BA0, 0x8231, 0xB439,
+ 0x3BA1, 0x8231, 0xB530,
+ 0x3BA2, 0x8231, 0xB531,
+ 0x3BA3, 0x8231, 0xB532,
+ 0x3BA4, 0x8231, 0xB533,
+ 0x3BA5, 0x8231, 0xB534,
+ 0x3BA6, 0x8231, 0xB535,
+ 0x3BA7, 0x8231, 0xB536,
+ 0x3BA8, 0x8231, 0xB537,
+ 0x3BA9, 0x8231, 0xB538,
+ 0x3BAA, 0x8231, 0xB539,
+ 0x3BAB, 0x8231, 0xB630,
+ 0x3BAC, 0x8231, 0xB631,
+ 0x3BAD, 0x8231, 0xB632,
+ 0x3BAE, 0x8231, 0xB633,
+ 0x3BAF, 0x8231, 0xB634,
+ 0x3BB0, 0x8231, 0xB635,
+ 0x3BB1, 0x8231, 0xB636,
+ 0x3BB2, 0x8231, 0xB637,
+ 0x3BB3, 0x8231, 0xB638,
+ 0x3BB4, 0x8231, 0xB639,
+ 0x3BB5, 0x8231, 0xB730,
+ 0x3BB6, 0x8231, 0xB731,
+ 0x3BB7, 0x8231, 0xB732,
+ 0x3BB8, 0x8231, 0xB733,
+ 0x3BB9, 0x8231, 0xB734,
+ 0x3BBA, 0x8231, 0xB735,
+ 0x3BBB, 0x8231, 0xB736,
+ 0x3BBC, 0x8231, 0xB737,
+ 0x3BBD, 0x8231, 0xB738,
+ 0x3BBE, 0x8231, 0xB739,
+ 0x3BBF, 0x8231, 0xB830,
+ 0x3BC0, 0x8231, 0xB831,
+ 0x3BC1, 0x8231, 0xB832,
+ 0x3BC2, 0x8231, 0xB833,
+ 0x3BC3, 0x8231, 0xB834,
+ 0x3BC4, 0x8231, 0xB835,
+ 0x3BC5, 0x8231, 0xB836,
+ 0x3BC6, 0x8231, 0xB837,
+ 0x3BC7, 0x8231, 0xB838,
+ 0x3BC8, 0x8231, 0xB839,
+ 0x3BC9, 0x8231, 0xB930,
+ 0x3BCA, 0x8231, 0xB931,
+ 0x3BCB, 0x8231, 0xB932,
+ 0x3BCC, 0x8231, 0xB933,
+ 0x3BCD, 0x8231, 0xB934,
+ 0x3BCE, 0x8231, 0xB935,
+ 0x3BCF, 0x8231, 0xB936,
+ 0x3BD0, 0x8231, 0xB937,
+ 0x3BD1, 0x8231, 0xB938,
+ 0x3BD2, 0x8231, 0xB939,
+ 0x3BD3, 0x8231, 0xBA30,
+ 0x3BD4, 0x8231, 0xBA31,
+ 0x3BD5, 0x8231, 0xBA32,
+ 0x3BD6, 0x8231, 0xBA33,
+ 0x3BD7, 0x8231, 0xBA34,
+ 0x3BD8, 0x8231, 0xBA35,
+ 0x3BD9, 0x8231, 0xBA36,
+ 0x3BDA, 0x8231, 0xBA37,
+ 0x3BDB, 0x8231, 0xBA38,
+ 0x3BDC, 0x8231, 0xBA39,
+ 0x3BDD, 0x8231, 0xBB30,
+ 0x3BDE, 0x8231, 0xBB31,
+ 0x3BDF, 0x8231, 0xBB32,
+ 0x3BE0, 0x8231, 0xBB33,
+ 0x3BE1, 0x8231, 0xBB34,
+ 0x3BE2, 0x8231, 0xBB35,
+ 0x3BE3, 0x8231, 0xBB36,
+ 0x3BE4, 0x8231, 0xBB37,
+ 0x3BE5, 0x8231, 0xBB38,
+ 0x3BE6, 0x8231, 0xBB39,
+ 0x3BE7, 0x8231, 0xBC30,
+ 0x3BE8, 0x8231, 0xBC31,
+ 0x3BE9, 0x8231, 0xBC32,
+ 0x3BEA, 0x8231, 0xBC33,
+ 0x3BEB, 0x8231, 0xBC34,
+ 0x3BEC, 0x8231, 0xBC35,
+ 0x3BED, 0x8231, 0xBC36,
+ 0x3BEE, 0x8231, 0xBC37,
+ 0x3BEF, 0x8231, 0xBC38,
+ 0x3BF0, 0x8231, 0xBC39,
+ 0x3BF1, 0x8231, 0xBD30,
+ 0x3BF2, 0x8231, 0xBD31,
+ 0x3BF3, 0x8231, 0xBD32,
+ 0x3BF4, 0x8231, 0xBD33,
+ 0x3BF5, 0x8231, 0xBD34,
+ 0x3BF6, 0x8231, 0xBD35,
+ 0x3BF7, 0x8231, 0xBD36,
+ 0x3BF8, 0x8231, 0xBD37,
+ 0x3BF9, 0x8231, 0xBD38,
+ 0x3BFA, 0x8231, 0xBD39,
+ 0x3BFB, 0x8231, 0xBE30,
+ 0x3BFC, 0x8231, 0xBE31,
+ 0x3BFD, 0x8231, 0xBE32,
+ 0x3BFE, 0x8231, 0xBE33,
+ 0x3BFF, 0x8231, 0xBE34,
+ 0x3C00, 0x8231, 0xBE35,
+ 0x3C01, 0x8231, 0xBE36,
+ 0x3C02, 0x8231, 0xBE37,
+ 0x3C03, 0x8231, 0xBE38,
+ 0x3C04, 0x8231, 0xBE39,
+ 0x3C05, 0x8231, 0xBF30,
+ 0x3C06, 0x8231, 0xBF31,
+ 0x3C07, 0x8231, 0xBF32,
+ 0x3C08, 0x8231, 0xBF33,
+ 0x3C09, 0x8231, 0xBF34,
+ 0x3C0A, 0x8231, 0xBF35,
+ 0x3C0B, 0x8231, 0xBF36,
+ 0x3C0C, 0x8231, 0xBF37,
+ 0x3C0D, 0x8231, 0xBF38,
+ 0x3C0E, 0x8231, 0xBF39,
+ 0x3C0F, 0x8231, 0xC030,
+ 0x3C10, 0x8231, 0xC031,
+ 0x3C11, 0x8231, 0xC032,
+ 0x3C12, 0x8231, 0xC033,
+ 0x3C13, 0x8231, 0xC034,
+ 0x3C14, 0x8231, 0xC035,
+ 0x3C15, 0x8231, 0xC036,
+ 0x3C16, 0x8231, 0xC037,
+ 0x3C17, 0x8231, 0xC038,
+ 0x3C18, 0x8231, 0xC039,
+ 0x3C19, 0x8231, 0xC130,
+ 0x3C1A, 0x8231, 0xC131,
+ 0x3C1B, 0x8231, 0xC132,
+ 0x3C1C, 0x8231, 0xC133,
+ 0x3C1D, 0x8231, 0xC134,
+ 0x3C1E, 0x8231, 0xC135,
+ 0x3C1F, 0x8231, 0xC136,
+ 0x3C20, 0x8231, 0xC137,
+ 0x3C21, 0x8231, 0xC138,
+ 0x3C22, 0x8231, 0xC139,
+ 0x3C23, 0x8231, 0xC230,
+ 0x3C24, 0x8231, 0xC231,
+ 0x3C25, 0x8231, 0xC232,
+ 0x3C26, 0x8231, 0xC233,
+ 0x3C27, 0x8231, 0xC234,
+ 0x3C28, 0x8231, 0xC235,
+ 0x3C29, 0x8231, 0xC236,
+ 0x3C2A, 0x8231, 0xC237,
+ 0x3C2B, 0x8231, 0xC238,
+ 0x3C2C, 0x8231, 0xC239,
+ 0x3C2D, 0x8231, 0xC330,
+ 0x3C2E, 0x8231, 0xC331,
+ 0x3C2F, 0x8231, 0xC332,
+ 0x3C30, 0x8231, 0xC333,
+ 0x3C31, 0x8231, 0xC334,
+ 0x3C32, 0x8231, 0xC335,
+ 0x3C33, 0x8231, 0xC336,
+ 0x3C34, 0x8231, 0xC337,
+ 0x3C35, 0x8231, 0xC338,
+ 0x3C36, 0x8231, 0xC339,
+ 0x3C37, 0x8231, 0xC430,
+ 0x3C38, 0x8231, 0xC431,
+ 0x3C39, 0x8231, 0xC432,
+ 0x3C3A, 0x8231, 0xC433,
+ 0x3C3B, 0x8231, 0xC434,
+ 0x3C3C, 0x8231, 0xC435,
+ 0x3C3D, 0x8231, 0xC436,
+ 0x3C3E, 0x8231, 0xC437,
+ 0x3C3F, 0x8231, 0xC438,
+ 0x3C40, 0x8231, 0xC439,
+ 0x3C41, 0x8231, 0xC530,
+ 0x3C42, 0x8231, 0xC531,
+ 0x3C43, 0x8231, 0xC532,
+ 0x3C44, 0x8231, 0xC533,
+ 0x3C45, 0x8231, 0xC534,
+ 0x3C46, 0x8231, 0xC535,
+ 0x3C47, 0x8231, 0xC536,
+ 0x3C48, 0x8231, 0xC537,
+ 0x3C49, 0x8231, 0xC538,
+ 0x3C4A, 0x8231, 0xC539,
+ 0x3C4B, 0x8231, 0xC630,
+ 0x3C4C, 0x8231, 0xC631,
+ 0x3C4D, 0x8231, 0xC632,
+ 0x3C4E, 0x8231, 0xC633,
+ 0x3C4F, 0x8231, 0xC634,
+ 0x3C50, 0x8231, 0xC635,
+ 0x3C51, 0x8231, 0xC636,
+ 0x3C52, 0x8231, 0xC637,
+ 0x3C53, 0x8231, 0xC638,
+ 0x3C54, 0x8231, 0xC639,
+ 0x3C55, 0x8231, 0xC730,
+ 0x3C56, 0x8231, 0xC731,
+ 0x3C57, 0x8231, 0xC732,
+ 0x3C58, 0x8231, 0xC733,
+ 0x3C59, 0x8231, 0xC734,
+ 0x3C5A, 0x8231, 0xC735,
+ 0x3C5B, 0x8231, 0xC736,
+ 0x3C5C, 0x8231, 0xC737,
+ 0x3C5D, 0x8231, 0xC738,
+ 0x3C5E, 0x8231, 0xC739,
+ 0x3C5F, 0x8231, 0xC830,
+ 0x3C60, 0x8231, 0xC831,
+ 0x3C61, 0x8231, 0xC832,
+ 0x3C62, 0x8231, 0xC833,
+ 0x3C63, 0x8231, 0xC834,
+ 0x3C64, 0x8231, 0xC835,
+ 0x3C65, 0x8231, 0xC836,
+ 0x3C66, 0x8231, 0xC837,
+ 0x3C67, 0x8231, 0xC838,
+ 0x3C68, 0x8231, 0xC839,
+ 0x3C69, 0x8231, 0xC930,
+ 0x3C6A, 0x8231, 0xC931,
+ 0x3C6B, 0x8231, 0xC932,
+ 0x3C6C, 0x8231, 0xC933,
+ 0x3C6D, 0x8231, 0xC934,
+ 0x3C6F, 0x8231, 0xC935,
+ 0x3C70, 0x8231, 0xC936,
+ 0x3C71, 0x8231, 0xC937,
+ 0x3C72, 0x8231, 0xC938,
+ 0x3C73, 0x8231, 0xC939,
+ 0x3C74, 0x8231, 0xCA30,
+ 0x3C75, 0x8231, 0xCA31,
+ 0x3C76, 0x8231, 0xCA32,
+ 0x3C77, 0x8231, 0xCA33,
+ 0x3C78, 0x8231, 0xCA34,
+ 0x3C79, 0x8231, 0xCA35,
+ 0x3C7A, 0x8231, 0xCA36,
+ 0x3C7B, 0x8231, 0xCA37,
+ 0x3C7C, 0x8231, 0xCA38,
+ 0x3C7D, 0x8231, 0xCA39,
+ 0x3C7E, 0x8231, 0xCB30,
+ 0x3C7F, 0x8231, 0xCB31,
+ 0x3C80, 0x8231, 0xCB32,
+ 0x3C81, 0x8231, 0xCB33,
+ 0x3C82, 0x8231, 0xCB34,
+ 0x3C83, 0x8231, 0xCB35,
+ 0x3C84, 0x8231, 0xCB36,
+ 0x3C85, 0x8231, 0xCB37,
+ 0x3C86, 0x8231, 0xCB38,
+ 0x3C87, 0x8231, 0xCB39,
+ 0x3C88, 0x8231, 0xCC30,
+ 0x3C89, 0x8231, 0xCC31,
+ 0x3C8A, 0x8231, 0xCC32,
+ 0x3C8B, 0x8231, 0xCC33,
+ 0x3C8C, 0x8231, 0xCC34,
+ 0x3C8D, 0x8231, 0xCC35,
+ 0x3C8E, 0x8231, 0xCC36,
+ 0x3C8F, 0x8231, 0xCC37,
+ 0x3C90, 0x8231, 0xCC38,
+ 0x3C91, 0x8231, 0xCC39,
+ 0x3C92, 0x8231, 0xCD30,
+ 0x3C93, 0x8231, 0xCD31,
+ 0x3C94, 0x8231, 0xCD32,
+ 0x3C95, 0x8231, 0xCD33,
+ 0x3C96, 0x8231, 0xCD34,
+ 0x3C97, 0x8231, 0xCD35,
+ 0x3C98, 0x8231, 0xCD36,
+ 0x3C99, 0x8231, 0xCD37,
+ 0x3C9A, 0x8231, 0xCD38,
+ 0x3C9B, 0x8231, 0xCD39,
+ 0x3C9C, 0x8231, 0xCE30,
+ 0x3C9D, 0x8231, 0xCE31,
+ 0x3C9E, 0x8231, 0xCE32,
+ 0x3C9F, 0x8231, 0xCE33,
+ 0x3CA0, 0x8231, 0xCE34,
+ 0x3CA1, 0x8231, 0xCE35,
+ 0x3CA2, 0x8231, 0xCE36,
+ 0x3CA3, 0x8231, 0xCE37,
+ 0x3CA4, 0x8231, 0xCE38,
+ 0x3CA5, 0x8231, 0xCE39,
+ 0x3CA6, 0x8231, 0xCF30,
+ 0x3CA7, 0x8231, 0xCF31,
+ 0x3CA8, 0x8231, 0xCF32,
+ 0x3CA9, 0x8231, 0xCF33,
+ 0x3CAA, 0x8231, 0xCF34,
+ 0x3CAB, 0x8231, 0xCF35,
+ 0x3CAC, 0x8231, 0xCF36,
+ 0x3CAD, 0x8231, 0xCF37,
+ 0x3CAE, 0x8231, 0xCF38,
+ 0x3CAF, 0x8231, 0xCF39,
+ 0x3CB0, 0x8231, 0xD030,
+ 0x3CB1, 0x8231, 0xD031,
+ 0x3CB2, 0x8231, 0xD032,
+ 0x3CB3, 0x8231, 0xD033,
+ 0x3CB4, 0x8231, 0xD034,
+ 0x3CB5, 0x8231, 0xD035,
+ 0x3CB6, 0x8231, 0xD036,
+ 0x3CB7, 0x8231, 0xD037,
+ 0x3CB8, 0x8231, 0xD038,
+ 0x3CB9, 0x8231, 0xD039,
+ 0x3CBA, 0x8231, 0xD130,
+ 0x3CBB, 0x8231, 0xD131,
+ 0x3CBC, 0x8231, 0xD132,
+ 0x3CBD, 0x8231, 0xD133,
+ 0x3CBE, 0x8231, 0xD134,
+ 0x3CBF, 0x8231, 0xD135,
+ 0x3CC0, 0x8231, 0xD136,
+ 0x3CC1, 0x8231, 0xD137,
+ 0x3CC2, 0x8231, 0xD138,
+ 0x3CC3, 0x8231, 0xD139,
+ 0x3CC4, 0x8231, 0xD230,
+ 0x3CC5, 0x8231, 0xD231,
+ 0x3CC6, 0x8231, 0xD232,
+ 0x3CC7, 0x8231, 0xD233,
+ 0x3CC8, 0x8231, 0xD234,
+ 0x3CC9, 0x8231, 0xD235,
+ 0x3CCA, 0x8231, 0xD236,
+ 0x3CCB, 0x8231, 0xD237,
+ 0x3CCC, 0x8231, 0xD238,
+ 0x3CCD, 0x8231, 0xD239,
+ 0x3CCE, 0x8231, 0xD330,
+ 0x3CCF, 0x8231, 0xD331,
+ 0x3CD0, 0x8231, 0xD332,
+ 0x3CD1, 0x8231, 0xD333,
+ 0x3CD2, 0x8231, 0xD334,
+ 0x3CD3, 0x8231, 0xD335,
+ 0x3CD4, 0x8231, 0xD336,
+ 0x3CD5, 0x8231, 0xD337,
+ 0x3CD6, 0x8231, 0xD338,
+ 0x3CD7, 0x8231, 0xD339,
+ 0x3CD8, 0x8231, 0xD430,
+ 0x3CD9, 0x8231, 0xD431,
+ 0x3CDA, 0x8231, 0xD432,
+ 0x3CDB, 0x8231, 0xD433,
+ 0x3CDC, 0x8231, 0xD434,
+ 0x3CDD, 0x8231, 0xD435,
+ 0x3CDE, 0x8231, 0xD436,
+ 0x3CDF, 0x8231, 0xD437,
+ 0x4057, 0x8232, 0xAF33,
+ 0x4058, 0x8232, 0xAF34,
+ 0x4059, 0x8232, 0xAF35,
+ 0x405A, 0x8232, 0xAF36,
+ 0x405B, 0x8232, 0xAF37,
+ 0x405C, 0x8232, 0xAF38,
+ 0x405D, 0x8232, 0xAF39,
+ 0x405E, 0x8232, 0xB030,
+ 0x405F, 0x8232, 0xB031,
+ 0x4060, 0x8232, 0xB032,
+ 0x4061, 0x8232, 0xB033,
+ 0x4062, 0x8232, 0xB034,
+ 0x4063, 0x8232, 0xB035,
+ 0x4064, 0x8232, 0xB036,
+ 0x4065, 0x8232, 0xB037,
+ 0x4066, 0x8232, 0xB038,
+ 0x4067, 0x8232, 0xB039,
+ 0x4068, 0x8232, 0xB130,
+ 0x4069, 0x8232, 0xB131,
+ 0x406A, 0x8232, 0xB132,
+ 0x406B, 0x8232, 0xB133,
+ 0x406C, 0x8232, 0xB134,
+ 0x406D, 0x8232, 0xB135,
+ 0x406E, 0x8232, 0xB136,
+ 0x406F, 0x8232, 0xB137,
+ 0x4070, 0x8232, 0xB138,
+ 0x4071, 0x8232, 0xB139,
+ 0x4072, 0x8232, 0xB230,
+ 0x4073, 0x8232, 0xB231,
+ 0x4074, 0x8232, 0xB232,
+ 0x4075, 0x8232, 0xB233,
+ 0x4076, 0x8232, 0xB234,
+ 0x4077, 0x8232, 0xB235,
+ 0x4078, 0x8232, 0xB236,
+ 0x4079, 0x8232, 0xB237,
+ 0x407A, 0x8232, 0xB238,
+ 0x407B, 0x8232, 0xB239,
+ 0x407C, 0x8232, 0xB330,
+ 0x407D, 0x8232, 0xB331,
+ 0x407E, 0x8232, 0xB332,
+ 0x407F, 0x8232, 0xB333,
+ 0x4080, 0x8232, 0xB334,
+ 0x4081, 0x8232, 0xB335,
+ 0x4082, 0x8232, 0xB336,
+ 0x4083, 0x8232, 0xB337,
+ 0x4084, 0x8232, 0xB338,
+ 0x4085, 0x8232, 0xB339,
+ 0x4086, 0x8232, 0xB430,
+ 0x4087, 0x8232, 0xB431,
+ 0x4088, 0x8232, 0xB432,
+ 0x4089, 0x8232, 0xB433,
+ 0x408A, 0x8232, 0xB434,
+ 0x408B, 0x8232, 0xB435,
+ 0x408C, 0x8232, 0xB436,
+ 0x408D, 0x8232, 0xB437,
+ 0x408E, 0x8232, 0xB438,
+ 0x408F, 0x8232, 0xB439,
+ 0x4090, 0x8232, 0xB530,
+ 0x4091, 0x8232, 0xB531,
+ 0x4092, 0x8232, 0xB532,
+ 0x4093, 0x8232, 0xB533,
+ 0x4094, 0x8232, 0xB534,
+ 0x4095, 0x8232, 0xB535,
+ 0x4096, 0x8232, 0xB536,
+ 0x4097, 0x8232, 0xB537,
+ 0x4098, 0x8232, 0xB538,
+ 0x4099, 0x8232, 0xB539,
+ 0x409A, 0x8232, 0xB630,
+ 0x409B, 0x8232, 0xB631,
+ 0x409C, 0x8232, 0xB632,
+ 0x409D, 0x8232, 0xB633,
+ 0x409E, 0x8232, 0xB634,
+ 0x409F, 0x8232, 0xB635,
+ 0x40A0, 0x8232, 0xB636,
+ 0x40A1, 0x8232, 0xB637,
+ 0x40A2, 0x8232, 0xB638,
+ 0x40A3, 0x8232, 0xB639,
+ 0x40A4, 0x8232, 0xB730,
+ 0x40A5, 0x8232, 0xB731,
+ 0x40A6, 0x8232, 0xB732,
+ 0x40A7, 0x8232, 0xB733,
+ 0x40A8, 0x8232, 0xB734,
+ 0x40A9, 0x8232, 0xB735,
+ 0x40AA, 0x8232, 0xB736,
+ 0x40AB, 0x8232, 0xB737,
+ 0x40AC, 0x8232, 0xB738,
+ 0x40AD, 0x8232, 0xB739,
+ 0x40AE, 0x8232, 0xB830,
+ 0x40AF, 0x8232, 0xB831,
+ 0x40B0, 0x8232, 0xB832,
+ 0x40B1, 0x8232, 0xB833,
+ 0x40B2, 0x8232, 0xB834,
+ 0x40B3, 0x8232, 0xB835,
+ 0x40B4, 0x8232, 0xB836,
+ 0x40B5, 0x8232, 0xB837,
+ 0x40B6, 0x8232, 0xB838,
+ 0x40B7, 0x8232, 0xB839,
+ 0x40B8, 0x8232, 0xB930,
+ 0x40B9, 0x8232, 0xB931,
+ 0x40BA, 0x8232, 0xB932,
+ 0x40BB, 0x8232, 0xB933,
+ 0x40BC, 0x8232, 0xB934,
+ 0x40BD, 0x8232, 0xB935,
+ 0x40BE, 0x8232, 0xB936,
+ 0x40BF, 0x8232, 0xB937,
+ 0x40C0, 0x8232, 0xB938,
+ 0x40C1, 0x8232, 0xB939,
+ 0x40C2, 0x8232, 0xBA30,
+ 0x40C3, 0x8232, 0xBA31,
+ 0x40C4, 0x8232, 0xBA32,
+ 0x40C5, 0x8232, 0xBA33,
+ 0x40C6, 0x8232, 0xBA34,
+ 0x40C7, 0x8232, 0xBA35,
+ 0x40C8, 0x8232, 0xBA36,
+ 0x40C9, 0x8232, 0xBA37,
+ 0x40CA, 0x8232, 0xBA38,
+ 0x40CB, 0x8232, 0xBA39,
+ 0x40CC, 0x8232, 0xBB30,
+ 0x40CD, 0x8232, 0xBB31,
+ 0x40CE, 0x8232, 0xBB32,
+ 0x40CF, 0x8232, 0xBB33,
+ 0x40D0, 0x8232, 0xBB34,
+ 0x40D1, 0x8232, 0xBB35,
+ 0x40D2, 0x8232, 0xBB36,
+ 0x40D3, 0x8232, 0xBB37,
+ 0x40D4, 0x8232, 0xBB38,
+ 0x40D5, 0x8232, 0xBB39,
+ 0x40D6, 0x8232, 0xBC30,
+ 0x40D7, 0x8232, 0xBC31,
+ 0x40D8, 0x8232, 0xBC32,
+ 0x40D9, 0x8232, 0xBC33,
+ 0x40DA, 0x8232, 0xBC34,
+ 0x40DB, 0x8232, 0xBC35,
+ 0x40DC, 0x8232, 0xBC36,
+ 0x40DD, 0x8232, 0xBC37,
+ 0x40DE, 0x8232, 0xBC38,
+ 0x40DF, 0x8232, 0xBC39,
+ 0x40E0, 0x8232, 0xBD30,
+ 0x40E1, 0x8232, 0xBD31,
+ 0x40E2, 0x8232, 0xBD32,
+ 0x40E3, 0x8232, 0xBD33,
+ 0x40E4, 0x8232, 0xBD34,
+ 0x40E5, 0x8232, 0xBD35,
+ 0x40E6, 0x8232, 0xBD36,
+ 0x40E7, 0x8232, 0xBD37,
+ 0x40E8, 0x8232, 0xBD38,
+ 0x40E9, 0x8232, 0xBD39,
+ 0x40EA, 0x8232, 0xBE30,
+ 0x40EB, 0x8232, 0xBE31,
+ 0x40EC, 0x8232, 0xBE32,
+ 0x40ED, 0x8232, 0xBE33,
+ 0x40EE, 0x8232, 0xBE34,
+ 0x40EF, 0x8232, 0xBE35,
+ 0x40F0, 0x8232, 0xBE36,
+ 0x40F1, 0x8232, 0xBE37,
+ 0x40F2, 0x8232, 0xBE38,
+ 0x40F3, 0x8232, 0xBE39,
+ 0x40F4, 0x8232, 0xBF30,
+ 0x40F5, 0x8232, 0xBF31,
+ 0x40F6, 0x8232, 0xBF32,
+ 0x40F7, 0x8232, 0xBF33,
+ 0x40F8, 0x8232, 0xBF34,
+ 0x40F9, 0x8232, 0xBF35,
+ 0x40FA, 0x8232, 0xBF36,
+ 0x40FB, 0x8232, 0xBF37,
+ 0x40FC, 0x8232, 0xBF38,
+ 0x40FD, 0x8232, 0xBF39,
+ 0x40FE, 0x8232, 0xC030,
+ 0x40FF, 0x8232, 0xC031,
+ 0x4100, 0x8232, 0xC032,
+ 0x4101, 0x8232, 0xC033,
+ 0x4102, 0x8232, 0xC034,
+ 0x4103, 0x8232, 0xC035,
+ 0x4104, 0x8232, 0xC036,
+ 0x4105, 0x8232, 0xC037,
+ 0x4106, 0x8232, 0xC038,
+ 0x4107, 0x8232, 0xC039,
+ 0x4108, 0x8232, 0xC130,
+ 0x4109, 0x8232, 0xC131,
+ 0x410A, 0x8232, 0xC132,
+ 0x410B, 0x8232, 0xC133,
+ 0x410C, 0x8232, 0xC134,
+ 0x410D, 0x8232, 0xC135,
+ 0x410E, 0x8232, 0xC136,
+ 0x410F, 0x8232, 0xC137,
+ 0x4110, 0x8232, 0xC138,
+ 0x4111, 0x8232, 0xC139,
+ 0x4112, 0x8232, 0xC230,
+ 0x4113, 0x8232, 0xC231,
+ 0x4114, 0x8232, 0xC232,
+ 0x4115, 0x8232, 0xC233,
+ 0x4116, 0x8232, 0xC234,
+ 0x4117, 0x8232, 0xC235,
+ 0x4118, 0x8232, 0xC236,
+ 0x4119, 0x8232, 0xC237,
+ 0x411A, 0x8232, 0xC238,
+ 0x411B, 0x8232, 0xC239,
+ 0x411C, 0x8232, 0xC330,
+ 0x411D, 0x8232, 0xC331,
+ 0x411E, 0x8232, 0xC332,
+ 0x411F, 0x8232, 0xC333,
+ 0x4120, 0x8232, 0xC334,
+ 0x4121, 0x8232, 0xC335,
+ 0x4122, 0x8232, 0xC336,
+ 0x4123, 0x8232, 0xC337,
+ 0x4124, 0x8232, 0xC338,
+ 0x4125, 0x8232, 0xC339,
+ 0x4126, 0x8232, 0xC430,
+ 0x4127, 0x8232, 0xC431,
+ 0x4128, 0x8232, 0xC432,
+ 0x4129, 0x8232, 0xC433,
+ 0x412A, 0x8232, 0xC434,
+ 0x412B, 0x8232, 0xC435,
+ 0x412C, 0x8232, 0xC436,
+ 0x412D, 0x8232, 0xC437,
+ 0x412E, 0x8232, 0xC438,
+ 0x412F, 0x8232, 0xC439,
+ 0x4130, 0x8232, 0xC530,
+ 0x4131, 0x8232, 0xC531,
+ 0x4132, 0x8232, 0xC532,
+ 0x4133, 0x8232, 0xC533,
+ 0x4134, 0x8232, 0xC534,
+ 0x4135, 0x8232, 0xC535,
+ 0x4136, 0x8232, 0xC536,
+ 0x4137, 0x8232, 0xC537,
+ 0x4138, 0x8232, 0xC538,
+ 0x4139, 0x8232, 0xC539,
+ 0x413A, 0x8232, 0xC630,
+ 0x413B, 0x8232, 0xC631,
+ 0x413C, 0x8232, 0xC632,
+ 0x413D, 0x8232, 0xC633,
+ 0x413E, 0x8232, 0xC634,
+ 0x413F, 0x8232, 0xC635,
+ 0x4140, 0x8232, 0xC636,
+ 0x4141, 0x8232, 0xC637,
+ 0x4142, 0x8232, 0xC638,
+ 0x4143, 0x8232, 0xC639,
+ 0x4144, 0x8232, 0xC730,
+ 0x4145, 0x8232, 0xC731,
+ 0x4146, 0x8232, 0xC732,
+ 0x4147, 0x8232, 0xC733,
+ 0x4148, 0x8232, 0xC734,
+ 0x4149, 0x8232, 0xC735,
+ 0x414A, 0x8232, 0xC736,
+ 0x414B, 0x8232, 0xC737,
+ 0x414C, 0x8232, 0xC738,
+ 0x414D, 0x8232, 0xC739,
+ 0x414E, 0x8232, 0xC830,
+ 0x414F, 0x8232, 0xC831,
+ 0x4150, 0x8232, 0xC832,
+ 0x4151, 0x8232, 0xC833,
+ 0x4152, 0x8232, 0xC834,
+ 0x4153, 0x8232, 0xC835,
+ 0x4154, 0x8232, 0xC836,
+ 0x4155, 0x8232, 0xC837,
+ 0x4156, 0x8232, 0xC838,
+ 0x4157, 0x8232, 0xC839,
+ 0x4158, 0x8232, 0xC930,
+ 0x4159, 0x8232, 0xC931,
+ 0x415A, 0x8232, 0xC932,
+ 0x415B, 0x8232, 0xC933,
+ 0x415C, 0x8232, 0xC934,
+ 0x415D, 0x8232, 0xC935,
+ 0x415E, 0x8232, 0xC936,
+ 0x4338, 0x8232, 0xF838,
+ 0x4339, 0x8232, 0xF839,
+ 0x433A, 0x8232, 0xF930,
+ 0x433B, 0x8232, 0xF931,
+ 0x433C, 0x8232, 0xF932,
+ 0x433D, 0x8232, 0xF933,
+ 0x433E, 0x8232, 0xF934,
+ 0x433F, 0x8232, 0xF935,
+ 0x4340, 0x8232, 0xF936,
+ 0x4341, 0x8232, 0xF937,
+ 0x4342, 0x8232, 0xF938,
+ 0x4343, 0x8232, 0xF939,
+ 0x4344, 0x8232, 0xFA30,
+ 0x4345, 0x8232, 0xFA31,
+ 0x4346, 0x8232, 0xFA32,
+ 0x4347, 0x8232, 0xFA33,
+ 0x4348, 0x8232, 0xFA34,
+ 0x4349, 0x8232, 0xFA35,
+ 0x434A, 0x8232, 0xFA36,
+ 0x434B, 0x8232, 0xFA37,
+ 0x434C, 0x8232, 0xFA38,
+ 0x434D, 0x8232, 0xFA39,
+ 0x434E, 0x8232, 0xFB30,
+ 0x434F, 0x8232, 0xFB31,
+ 0x4350, 0x8232, 0xFB32,
+ 0x4351, 0x8232, 0xFB33,
+ 0x4352, 0x8232, 0xFB34,
+ 0x4353, 0x8232, 0xFB35,
+ 0x4354, 0x8232, 0xFB36,
+ 0x4355, 0x8232, 0xFB37,
+ 0x4356, 0x8232, 0xFB38,
+ 0x4357, 0x8232, 0xFB39,
+ 0x4358, 0x8232, 0xFC30,
+ 0x4359, 0x8232, 0xFC31,
+ 0x435A, 0x8232, 0xFC32,
+ 0x435B, 0x8232, 0xFC33,
+ 0x435C, 0x8232, 0xFC34,
+ 0x435D, 0x8232, 0xFC35,
+ 0x435E, 0x8232, 0xFC36,
+ 0x435F, 0x8232, 0xFC37,
+ 0x4360, 0x8232, 0xFC38,
+ 0x4361, 0x8232, 0xFC39,
+ 0x4362, 0x8232, 0xFD30,
+ 0x4363, 0x8232, 0xFD31,
+ 0x4364, 0x8232, 0xFD32,
+ 0x4365, 0x8232, 0xFD33,
+ 0x4366, 0x8232, 0xFD34,
+ 0x4367, 0x8232, 0xFD35,
+ 0x4368, 0x8232, 0xFD36,
+ 0x4369, 0x8232, 0xFD37,
+ 0x436A, 0x8232, 0xFD38,
+ 0x436B, 0x8232, 0xFD39,
+ 0x436C, 0x8232, 0xFE30,
+ 0x436D, 0x8232, 0xFE31,
+ 0x436E, 0x8232, 0xFE32,
+ 0x436F, 0x8232, 0xFE33,
+ 0x4370, 0x8232, 0xFE34,
+ 0x4371, 0x8232, 0xFE35,
+ 0x4372, 0x8232, 0xFE36,
+ 0x4373, 0x8232, 0xFE37,
+ 0x4374, 0x8232, 0xFE38,
+ 0x4375, 0x8232, 0xFE39,
+ 0x4376, 0x8233, 0x8130,
+ 0x4377, 0x8233, 0x8131,
+ 0x4378, 0x8233, 0x8132,
+ 0x4379, 0x8233, 0x8133,
+ 0x437A, 0x8233, 0x8134,
+ 0x437B, 0x8233, 0x8135,
+ 0x437C, 0x8233, 0x8136,
+ 0x437D, 0x8233, 0x8137,
+ 0x437E, 0x8233, 0x8138,
+ 0x437F, 0x8233, 0x8139,
+ 0x4380, 0x8233, 0x8230,
+ 0x4381, 0x8233, 0x8231,
+ 0x4382, 0x8233, 0x8232,
+ 0x4383, 0x8233, 0x8233,
+ 0x4384, 0x8233, 0x8234,
+ 0x4385, 0x8233, 0x8235,
+ 0x4386, 0x8233, 0x8236,
+ 0x4387, 0x8233, 0x8237,
+ 0x4388, 0x8233, 0x8238,
+ 0x4389, 0x8233, 0x8239,
+ 0x438A, 0x8233, 0x8330,
+ 0x438B, 0x8233, 0x8331,
+ 0x438C, 0x8233, 0x8332,
+ 0x438D, 0x8233, 0x8333,
+ 0x438E, 0x8233, 0x8334,
+ 0x438F, 0x8233, 0x8335,
+ 0x4390, 0x8233, 0x8336,
+ 0x4391, 0x8233, 0x8337,
+ 0x4392, 0x8233, 0x8338,
+ 0x4393, 0x8233, 0x8339,
+ 0x4394, 0x8233, 0x8430,
+ 0x4395, 0x8233, 0x8431,
+ 0x4396, 0x8233, 0x8432,
+ 0x4397, 0x8233, 0x8433,
+ 0x4398, 0x8233, 0x8434,
+ 0x4399, 0x8233, 0x8435,
+ 0x439A, 0x8233, 0x8436,
+ 0x439B, 0x8233, 0x8437,
+ 0x439C, 0x8233, 0x8438,
+ 0x439D, 0x8233, 0x8439,
+ 0x439E, 0x8233, 0x8530,
+ 0x439F, 0x8233, 0x8531,
+ 0x43A0, 0x8233, 0x8532,
+ 0x43A1, 0x8233, 0x8533,
+ 0x43A2, 0x8233, 0x8534,
+ 0x43A3, 0x8233, 0x8535,
+ 0x43A4, 0x8233, 0x8536,
+ 0x43A5, 0x8233, 0x8537,
+ 0x43A6, 0x8233, 0x8538,
+ 0x43A7, 0x8233, 0x8539,
+ 0x43A8, 0x8233, 0x8630,
+ 0x43A9, 0x8233, 0x8631,
+ 0x43AA, 0x8233, 0x8632,
+ 0x43AB, 0x8233, 0x8633,
+ 0x43AD, 0x8233, 0x8634,
+ 0x43AE, 0x8233, 0x8635,
+ 0x43AF, 0x8233, 0x8636,
+ 0x43B0, 0x8233, 0x8637,
+ 0x43B2, 0x8233, 0x8638,
+ 0x43B3, 0x8233, 0x8639,
+ 0x43B4, 0x8233, 0x8730,
+ 0x43B5, 0x8233, 0x8731,
+ 0x43B6, 0x8233, 0x8732,
+ 0x43B7, 0x8233, 0x8733,
+ 0x43B8, 0x8233, 0x8734,
+ 0x43B9, 0x8233, 0x8735,
+ 0x43BA, 0x8233, 0x8736,
+ 0x43BB, 0x8233, 0x8737,
+ 0x43BC, 0x8233, 0x8738,
+ 0x43BD, 0x8233, 0x8739,
+ 0x43BE, 0x8233, 0x8830,
+ 0x43BF, 0x8233, 0x8831,
+ 0x43C0, 0x8233, 0x8832,
+ 0x43C1, 0x8233, 0x8833,
+ 0x43C2, 0x8233, 0x8834,
+ 0x43C3, 0x8233, 0x8835,
+ 0x43C4, 0x8233, 0x8836,
+ 0x43C5, 0x8233, 0x8837,
+ 0x43C6, 0x8233, 0x8838,
+ 0x43C7, 0x8233, 0x8839,
+ 0x43C8, 0x8233, 0x8930,
+ 0x43C9, 0x8233, 0x8931,
+ 0x43CA, 0x8233, 0x8932,
+ 0x43CB, 0x8233, 0x8933,
+ 0x43CC, 0x8233, 0x8934,
+ 0x43CD, 0x8233, 0x8935,
+ 0x43CE, 0x8233, 0x8936,
+ 0x43CF, 0x8233, 0x8937,
+ 0x43D0, 0x8233, 0x8938,
+ 0x43D1, 0x8233, 0x8939,
+ 0x43D2, 0x8233, 0x8A30,
+ 0x43D3, 0x8233, 0x8A31,
+ 0x43D4, 0x8233, 0x8A32,
+ 0x43D5, 0x8233, 0x8A33,
+ 0x43D6, 0x8233, 0x8A34,
+ 0x43D7, 0x8233, 0x8A35,
+ 0x43D8, 0x8233, 0x8A36,
+ 0x43D9, 0x8233, 0x8A37,
+ 0x43DA, 0x8233, 0x8A38,
+ 0x43DB, 0x8233, 0x8A39,
+ 0x43DC, 0x8233, 0x8B30,
+ 0x43DE, 0x8233, 0x8B31,
+ 0x43DF, 0x8233, 0x8B32,
+ 0x43E0, 0x8233, 0x8B33,
+ 0x43E1, 0x8233, 0x8B34,
+ 0x43E2, 0x8233, 0x8B35,
+ 0x43E3, 0x8233, 0x8B36,
+ 0x43E4, 0x8233, 0x8B37,
+ 0x43E5, 0x8233, 0x8B38,
+ 0x43E6, 0x8233, 0x8B39,
+ 0x43E7, 0x8233, 0x8C30,
+ 0x43E8, 0x8233, 0x8C31,
+ 0x43E9, 0x8233, 0x8C32,
+ 0x43EA, 0x8233, 0x8C33,
+ 0x43EB, 0x8233, 0x8C34,
+ 0x43EC, 0x8233, 0x8C35,
+ 0x43ED, 0x8233, 0x8C36,
+ 0x43EE, 0x8233, 0x8C37,
+ 0x43EF, 0x8233, 0x8C38,
+ 0x43F0, 0x8233, 0x8C39,
+ 0x43F1, 0x8233, 0x8D30,
+ 0x43F2, 0x8233, 0x8D31,
+ 0x43F3, 0x8233, 0x8D32,
+ 0x43F4, 0x8233, 0x8D33,
+ 0x43F5, 0x8233, 0x8D34,
+ 0x43F6, 0x8233, 0x8D35,
+ 0x43F7, 0x8233, 0x8D36,
+ 0x43F8, 0x8233, 0x8D37,
+ 0x43F9, 0x8233, 0x8D38,
+ 0x43FA, 0x8233, 0x8D39,
+ 0x43FB, 0x8233, 0x8E30,
+ 0x43FC, 0x8233, 0x8E31,
+ 0x43FD, 0x8233, 0x8E32,
+ 0x43FE, 0x8233, 0x8E33,
+ 0x43FF, 0x8233, 0x8E34,
+ 0x4400, 0x8233, 0x8E35,
+ 0x4401, 0x8233, 0x8E36,
+ 0x4402, 0x8233, 0x8E37,
+ 0x4403, 0x8233, 0x8E38,
+ 0x4404, 0x8233, 0x8E39,
+ 0x4405, 0x8233, 0x8F30,
+ 0x4406, 0x8233, 0x8F31,
+ 0x4407, 0x8233, 0x8F32,
+ 0x4408, 0x8233, 0x8F33,
+ 0x4409, 0x8233, 0x8F34,
+ 0x440A, 0x8233, 0x8F35,
+ 0x440B, 0x8233, 0x8F36,
+ 0x440C, 0x8233, 0x8F37,
+ 0x440D, 0x8233, 0x8F38,
+ 0x440E, 0x8233, 0x8F39,
+ 0x440F, 0x8233, 0x9030,
+ 0x4410, 0x8233, 0x9031,
+ 0x4411, 0x8233, 0x9032,
+ 0x4412, 0x8233, 0x9033,
+ 0x4413, 0x8233, 0x9034,
+ 0x4414, 0x8233, 0x9035,
+ 0x4415, 0x8233, 0x9036,
+ 0x4416, 0x8233, 0x9037,
+ 0x4417, 0x8233, 0x9038,
+ 0x4418, 0x8233, 0x9039,
+ 0x4419, 0x8233, 0x9130,
+ 0x441A, 0x8233, 0x9131,
+ 0x441B, 0x8233, 0x9132,
+ 0x441C, 0x8233, 0x9133,
+ 0x441D, 0x8233, 0x9134,
+ 0x441E, 0x8233, 0x9135,
+ 0x441F, 0x8233, 0x9136,
+ 0x4420, 0x8233, 0x9137,
+ 0x4421, 0x8233, 0x9138,
+ 0x4422, 0x8233, 0x9139,
+ 0x4423, 0x8233, 0x9230,
+ 0x4424, 0x8233, 0x9231,
+ 0x4425, 0x8233, 0x9232,
+ 0x4426, 0x8233, 0x9233,
+ 0x4427, 0x8233, 0x9234,
+ 0x4428, 0x8233, 0x9235,
+ 0x4429, 0x8233, 0x9236,
+ 0x442A, 0x8233, 0x9237,
+ 0x442B, 0x8233, 0x9238,
+ 0x442C, 0x8233, 0x9239,
+ 0x442D, 0x8233, 0x9330,
+ 0x442E, 0x8233, 0x9331,
+ 0x442F, 0x8233, 0x9332,
+ 0x4430, 0x8233, 0x9333,
+ 0x4431, 0x8233, 0x9334,
+ 0x4432, 0x8233, 0x9335,
+ 0x4433, 0x8233, 0x9336,
+ 0x4434, 0x8233, 0x9337,
+ 0x4435, 0x8233, 0x9338,
+ 0x4436, 0x8233, 0x9339,
+ 0x4437, 0x8233, 0x9430,
+ 0x4438, 0x8233, 0x9431,
+ 0x4439, 0x8233, 0x9432,
+ 0x443A, 0x8233, 0x9433,
+ 0x443B, 0x8233, 0x9434,
+ 0x443C, 0x8233, 0x9435,
+ 0x443D, 0x8233, 0x9436,
+ 0x443E, 0x8233, 0x9437,
+ 0x443F, 0x8233, 0x9438,
+ 0x4440, 0x8233, 0x9439,
+ 0x4441, 0x8233, 0x9530,
+ 0x4442, 0x8233, 0x9531,
+ 0x4443, 0x8233, 0x9532,
+ 0x4444, 0x8233, 0x9533,
+ 0x4445, 0x8233, 0x9534,
+ 0x4446, 0x8233, 0x9535,
+ 0x4447, 0x8233, 0x9536,
+ 0x4448, 0x8233, 0x9537,
+ 0x4449, 0x8233, 0x9538,
+ 0x444A, 0x8233, 0x9539,
+ 0x444B, 0x8233, 0x9630,
+ 0x444C, 0x8233, 0x9631,
+ 0x444D, 0x8233, 0x9632,
+ 0x444E, 0x8233, 0x9633,
+ 0x444F, 0x8233, 0x9634,
+ 0x4450, 0x8233, 0x9635,
+ 0x4451, 0x8233, 0x9636,
+ 0x4452, 0x8233, 0x9637,
+ 0x4453, 0x8233, 0x9638,
+ 0x4454, 0x8233, 0x9639,
+ 0x4455, 0x8233, 0x9730,
+ 0x4456, 0x8233, 0x9731,
+ 0x4457, 0x8233, 0x9732,
+ 0x4458, 0x8233, 0x9733,
+ 0x4459, 0x8233, 0x9734,
+ 0x445A, 0x8233, 0x9735,
+ 0x445B, 0x8233, 0x9736,
+ 0x445C, 0x8233, 0x9737,
+ 0x445D, 0x8233, 0x9738,
+ 0x445E, 0x8233, 0x9739,
+ 0x445F, 0x8233, 0x9830,
+ 0x4460, 0x8233, 0x9831,
+ 0x4461, 0x8233, 0x9832,
+ 0x4462, 0x8233, 0x9833,
+ 0x4463, 0x8233, 0x9834,
+ 0x4464, 0x8233, 0x9835,
+ 0x4465, 0x8233, 0x9836,
+ 0x4466, 0x8233, 0x9837,
+ 0x4467, 0x8233, 0x9838,
+ 0x4468, 0x8233, 0x9839,
+ 0x4469, 0x8233, 0x9930,
+ 0x446A, 0x8233, 0x9931,
+ 0x446B, 0x8233, 0x9932,
+ 0x446C, 0x8233, 0x9933,
+ 0x446D, 0x8233, 0x9934,
+ 0x446E, 0x8233, 0x9935,
+ 0x446F, 0x8233, 0x9936,
+ 0x4470, 0x8233, 0x9937,
+ 0x4471, 0x8233, 0x9938,
+ 0x4472, 0x8233, 0x9939,
+ 0x4473, 0x8233, 0x9A30,
+ 0x4474, 0x8233, 0x9A31,
+ 0x4475, 0x8233, 0x9A32,
+ 0x4476, 0x8233, 0x9A33,
+ 0x4477, 0x8233, 0x9A34,
+ 0x4478, 0x8233, 0x9A35,
+ 0x4479, 0x8233, 0x9A36,
+ 0x447A, 0x8233, 0x9A37,
+ 0x447B, 0x8233, 0x9A38,
+ 0x447C, 0x8233, 0x9A39,
+ 0x447D, 0x8233, 0x9B30,
+ 0x447E, 0x8233, 0x9B31,
+ 0x447F, 0x8233, 0x9B32,
+ 0x4480, 0x8233, 0x9B33,
+ 0x4481, 0x8233, 0x9B34,
+ 0x4482, 0x8233, 0x9B35,
+ 0x4483, 0x8233, 0x9B36,
+ 0x4484, 0x8233, 0x9B37,
+ 0x4485, 0x8233, 0x9B38,
+ 0x4486, 0x8233, 0x9B39,
+ 0x4487, 0x8233, 0x9C30,
+ 0x4488, 0x8233, 0x9C31,
+ 0x4489, 0x8233, 0x9C32,
+ 0x448A, 0x8233, 0x9C33,
+ 0x448B, 0x8233, 0x9C34,
+ 0x448C, 0x8233, 0x9C35,
+ 0x448D, 0x8233, 0x9C36,
+ 0x448E, 0x8233, 0x9C37,
+ 0x448F, 0x8233, 0x9C38,
+ 0x4490, 0x8233, 0x9C39,
+ 0x4491, 0x8233, 0x9D30,
+ 0x4492, 0x8233, 0x9D31,
+ 0x4493, 0x8233, 0x9D32,
+ 0x4494, 0x8233, 0x9D33,
+ 0x4495, 0x8233, 0x9D34,
+ 0x4496, 0x8233, 0x9D35,
+ 0x4497, 0x8233, 0x9D36,
+ 0x4498, 0x8233, 0x9D37,
+ 0x4499, 0x8233, 0x9D38,
+ 0x449A, 0x8233, 0x9D39,
+ 0x449B, 0x8233, 0x9E30,
+ 0x449C, 0x8233, 0x9E31,
+ 0x449D, 0x8233, 0x9E32,
+ 0x449E, 0x8233, 0x9E33,
+ 0x449F, 0x8233, 0x9E34,
+ 0x44A0, 0x8233, 0x9E35,
+ 0x44A1, 0x8233, 0x9E36,
+ 0x44A2, 0x8233, 0x9E37,
+ 0x44A3, 0x8233, 0x9E38,
+ 0x44A4, 0x8233, 0x9E39,
+ 0x44A5, 0x8233, 0x9F30,
+ 0x44A6, 0x8233, 0x9F31,
+ 0x44A7, 0x8233, 0x9F32,
+ 0x44A8, 0x8233, 0x9F33,
+ 0x44A9, 0x8233, 0x9F34,
+ 0x44AA, 0x8233, 0x9F35,
+ 0x44AB, 0x8233, 0x9F36,
+ 0x44AC, 0x8233, 0x9F37,
+ 0x44AD, 0x8233, 0x9F38,
+ 0x44AE, 0x8233, 0x9F39,
+ 0x44AF, 0x8233, 0xA030,
+ 0x44B0, 0x8233, 0xA031,
+ 0x44B1, 0x8233, 0xA032,
+ 0x44B2, 0x8233, 0xA033,
+ 0x44B3, 0x8233, 0xA034,
+ 0x44B4, 0x8233, 0xA035,
+ 0x44B5, 0x8233, 0xA036,
+ 0x44B6, 0x8233, 0xA037,
+ 0x44B7, 0x8233, 0xA038,
+ 0x44B8, 0x8233, 0xA039,
+ 0x44B9, 0x8233, 0xA130,
+ 0x44BA, 0x8233, 0xA131,
+ 0x44BB, 0x8233, 0xA132,
+ 0x44BC, 0x8233, 0xA133,
+ 0x44BD, 0x8233, 0xA134,
+ 0x44BE, 0x8233, 0xA135,
+ 0x44BF, 0x8233, 0xA136,
+ 0x44C0, 0x8233, 0xA137,
+ 0x44C1, 0x8233, 0xA138,
+ 0x44C2, 0x8233, 0xA139,
+ 0x44C3, 0x8233, 0xA230,
+ 0x44C4, 0x8233, 0xA231,
+ 0x44C5, 0x8233, 0xA232,
+ 0x44C6, 0x8233, 0xA233,
+ 0x44C7, 0x8233, 0xA234,
+ 0x44C8, 0x8233, 0xA235,
+ 0x44C9, 0x8233, 0xA236,
+ 0x44CA, 0x8233, 0xA237,
+ 0x44CB, 0x8233, 0xA238,
+ 0x44CC, 0x8233, 0xA239,
+ 0x44CD, 0x8233, 0xA330,
+ 0x44CE, 0x8233, 0xA331,
+ 0x44CF, 0x8233, 0xA332,
+ 0x44D0, 0x8233, 0xA333,
+ 0x44D1, 0x8233, 0xA334,
+ 0x44D2, 0x8233, 0xA335,
+ 0x44D3, 0x8233, 0xA336,
+ 0x44D4, 0x8233, 0xA337,
+ 0x44D5, 0x8233, 0xA338,
+ 0x464D, 0x8233, 0xC932,
+ 0x464E, 0x8233, 0xC933,
+ 0x464F, 0x8233, 0xC934,
+ 0x4650, 0x8233, 0xC935,
+ 0x4651, 0x8233, 0xC936,
+ 0x4652, 0x8233, 0xC937,
+ 0x4653, 0x8233, 0xC938,
+ 0x4654, 0x8233, 0xC939,
+ 0x4655, 0x8233, 0xCA30,
+ 0x4656, 0x8233, 0xCA31,
+ 0x4657, 0x8233, 0xCA32,
+ 0x4658, 0x8233, 0xCA33,
+ 0x4659, 0x8233, 0xCA34,
+ 0x465A, 0x8233, 0xCA35,
+ 0x465B, 0x8233, 0xCA36,
+ 0x465C, 0x8233, 0xCA37,
+ 0x465D, 0x8233, 0xCA38,
+ 0x465E, 0x8233, 0xCA39,
+ 0x465F, 0x8233, 0xCB30,
+ 0x4660, 0x8233, 0xCB31,
+ 0x4662, 0x8233, 0xCB32,
+ 0x4663, 0x8233, 0xCB33,
+ 0x4664, 0x8233, 0xCB34,
+ 0x4665, 0x8233, 0xCB35,
+ 0x4666, 0x8233, 0xCB36,
+ 0x4667, 0x8233, 0xCB37,
+ 0x4668, 0x8233, 0xCB38,
+ 0x4669, 0x8233, 0xCB39,
+ 0x466A, 0x8233, 0xCC30,
+ 0x466B, 0x8233, 0xCC31,
+ 0x466C, 0x8233, 0xCC32,
+ 0x466D, 0x8233, 0xCC33,
+ 0x466E, 0x8233, 0xCC34,
+ 0x466F, 0x8233, 0xCC35,
+ 0x4670, 0x8233, 0xCC36,
+ 0x4671, 0x8233, 0xCC37,
+ 0x4672, 0x8233, 0xCC38,
+ 0x4673, 0x8233, 0xCC39,
+ 0x4674, 0x8233, 0xCD30,
+ 0x4675, 0x8233, 0xCD31,
+ 0x4676, 0x8233, 0xCD32,
+ 0x4677, 0x8233, 0xCD33,
+ 0x4678, 0x8233, 0xCD34,
+ 0x4679, 0x8233, 0xCD35,
+ 0x467A, 0x8233, 0xCD36,
+ 0x467B, 0x8233, 0xCD37,
+ 0x467C, 0x8233, 0xCD38,
+ 0x467D, 0x8233, 0xCD39,
+ 0x467E, 0x8233, 0xCE30,
+ 0x467F, 0x8233, 0xCE31,
+ 0x4680, 0x8233, 0xCE32,
+ 0x4681, 0x8233, 0xCE33,
+ 0x4682, 0x8233, 0xCE34,
+ 0x4683, 0x8233, 0xCE35,
+ 0x4684, 0x8233, 0xCE36,
+ 0x4685, 0x8233, 0xCE37,
+ 0x4686, 0x8233, 0xCE38,
+ 0x4687, 0x8233, 0xCE39,
+ 0x4688, 0x8233, 0xCF30,
+ 0x4689, 0x8233, 0xCF31,
+ 0x468A, 0x8233, 0xCF32,
+ 0x468B, 0x8233, 0xCF33,
+ 0x468C, 0x8233, 0xCF34,
+ 0x468D, 0x8233, 0xCF35,
+ 0x468E, 0x8233, 0xCF36,
+ 0x468F, 0x8233, 0xCF37,
+ 0x4690, 0x8233, 0xCF38,
+ 0x4691, 0x8233, 0xCF39,
+ 0x4692, 0x8233, 0xD030,
+ 0x4693, 0x8233, 0xD031,
+ 0x4694, 0x8233, 0xD032,
+ 0x4695, 0x8233, 0xD033,
+ 0x4696, 0x8233, 0xD034,
+ 0x4697, 0x8233, 0xD035,
+ 0x4698, 0x8233, 0xD036,
+ 0x4699, 0x8233, 0xD037,
+ 0x469A, 0x8233, 0xD038,
+ 0x469B, 0x8233, 0xD039,
+ 0x469C, 0x8233, 0xD130,
+ 0x469D, 0x8233, 0xD131,
+ 0x469E, 0x8233, 0xD132,
+ 0x469F, 0x8233, 0xD133,
+ 0x46A0, 0x8233, 0xD134,
+ 0x46A1, 0x8233, 0xD135,
+ 0x46A2, 0x8233, 0xD136,
+ 0x46A3, 0x8233, 0xD137,
+ 0x46A4, 0x8233, 0xD138,
+ 0x46A5, 0x8233, 0xD139,
+ 0x46A6, 0x8233, 0xD230,
+ 0x46A7, 0x8233, 0xD231,
+ 0x46A8, 0x8233, 0xD232,
+ 0x46A9, 0x8233, 0xD233,
+ 0x46AA, 0x8233, 0xD234,
+ 0x46AB, 0x8233, 0xD235,
+ 0x46AC, 0x8233, 0xD236,
+ 0x46AD, 0x8233, 0xD237,
+ 0x46AE, 0x8233, 0xD238,
+ 0x46AF, 0x8233, 0xD239,
+ 0x46B0, 0x8233, 0xD330,
+ 0x46B1, 0x8233, 0xD331,
+ 0x46B2, 0x8233, 0xD332,
+ 0x46B3, 0x8233, 0xD333,
+ 0x46B4, 0x8233, 0xD334,
+ 0x46B5, 0x8233, 0xD335,
+ 0x46B6, 0x8233, 0xD336,
+ 0x46B7, 0x8233, 0xD337,
+ 0x46B8, 0x8233, 0xD338,
+ 0x46B9, 0x8233, 0xD339,
+ 0x46BA, 0x8233, 0xD430,
+ 0x46BB, 0x8233, 0xD431,
+ 0x46BC, 0x8233, 0xD432,
+ 0x46BD, 0x8233, 0xD433,
+ 0x46BE, 0x8233, 0xD434,
+ 0x46BF, 0x8233, 0xD435,
+ 0x46C0, 0x8233, 0xD436,
+ 0x46C1, 0x8233, 0xD437,
+ 0x46C2, 0x8233, 0xD438,
+ 0x46C3, 0x8233, 0xD439,
+ 0x46C4, 0x8233, 0xD530,
+ 0x46C5, 0x8233, 0xD531,
+ 0x46C6, 0x8233, 0xD532,
+ 0x46C7, 0x8233, 0xD533,
+ 0x46C8, 0x8233, 0xD534,
+ 0x46C9, 0x8233, 0xD535,
+ 0x46CA, 0x8233, 0xD536,
+ 0x46CB, 0x8233, 0xD537,
+ 0x46CC, 0x8233, 0xD538,
+ 0x46CD, 0x8233, 0xD539,
+ 0x46CE, 0x8233, 0xD630,
+ 0x46CF, 0x8233, 0xD631,
+ 0x46D0, 0x8233, 0xD632,
+ 0x46D1, 0x8233, 0xD633,
+ 0x46D2, 0x8233, 0xD634,
+ 0x46D3, 0x8233, 0xD635,
+ 0x46D4, 0x8233, 0xD636,
+ 0x46D5, 0x8233, 0xD637,
+ 0x46D6, 0x8233, 0xD638,
+ 0x46D7, 0x8233, 0xD639,
+ 0x46D8, 0x8233, 0xD730,
+ 0x46D9, 0x8233, 0xD731,
+ 0x46DA, 0x8233, 0xD732,
+ 0x46DB, 0x8233, 0xD733,
+ 0x46DC, 0x8233, 0xD734,
+ 0x46DD, 0x8233, 0xD735,
+ 0x46DE, 0x8233, 0xD736,
+ 0x46DF, 0x8233, 0xD737,
+ 0x46E0, 0x8233, 0xD738,
+ 0x46E1, 0x8233, 0xD739,
+ 0x46E2, 0x8233, 0xD830,
+ 0x46E3, 0x8233, 0xD831,
+ 0x46E4, 0x8233, 0xD832,
+ 0x46E5, 0x8233, 0xD833,
+ 0x46E6, 0x8233, 0xD834,
+ 0x46E7, 0x8233, 0xD835,
+ 0x46E8, 0x8233, 0xD836,
+ 0x46E9, 0x8233, 0xD837,
+ 0x46EA, 0x8233, 0xD838,
+ 0x46EB, 0x8233, 0xD839,
+ 0x46EC, 0x8233, 0xD930,
+ 0x46ED, 0x8233, 0xD931,
+ 0x46EE, 0x8233, 0xD932,
+ 0x46EF, 0x8233, 0xD933,
+ 0x46F0, 0x8233, 0xD934,
+ 0x46F1, 0x8233, 0xD935,
+ 0x46F2, 0x8233, 0xD936,
+ 0x46F3, 0x8233, 0xD937,
+ 0x46F4, 0x8233, 0xD938,
+ 0x46F5, 0x8233, 0xD939,
+ 0x46F6, 0x8233, 0xDA30,
+ 0x46F7, 0x8233, 0xDA31,
+ 0x46F8, 0x8233, 0xDA32,
+ 0x46F9, 0x8233, 0xDA33,
+ 0x46FA, 0x8233, 0xDA34,
+ 0x46FB, 0x8233, 0xDA35,
+ 0x46FC, 0x8233, 0xDA36,
+ 0x46FD, 0x8233, 0xDA37,
+ 0x46FE, 0x8233, 0xDA38,
+ 0x46FF, 0x8233, 0xDA39,
+ 0x4700, 0x8233, 0xDB30,
+ 0x4701, 0x8233, 0xDB31,
+ 0x4702, 0x8233, 0xDB32,
+ 0x4703, 0x8233, 0xDB33,
+ 0x4704, 0x8233, 0xDB34,
+ 0x4705, 0x8233, 0xDB35,
+ 0x4706, 0x8233, 0xDB36,
+ 0x4707, 0x8233, 0xDB37,
+ 0x4708, 0x8233, 0xDB38,
+ 0x4709, 0x8233, 0xDB39,
+ 0x470A, 0x8233, 0xDC30,
+ 0x470B, 0x8233, 0xDC31,
+ 0x470C, 0x8233, 0xDC32,
+ 0x470D, 0x8233, 0xDC33,
+ 0x470E, 0x8233, 0xDC34,
+ 0x470F, 0x8233, 0xDC35,
+ 0x4710, 0x8233, 0xDC36,
+ 0x4711, 0x8233, 0xDC37,
+ 0x4712, 0x8233, 0xDC38,
+ 0x4713, 0x8233, 0xDC39,
+ 0x4714, 0x8233, 0xDD30,
+ 0x4715, 0x8233, 0xDD31,
+ 0x4716, 0x8233, 0xDD32,
+ 0x4717, 0x8233, 0xDD33,
+ 0x4718, 0x8233, 0xDD34,
+ 0x4719, 0x8233, 0xDD35,
+ 0x471A, 0x8233, 0xDD36,
+ 0x471B, 0x8233, 0xDD37,
+ 0x471C, 0x8233, 0xDD38,
+ 0x471D, 0x8233, 0xDD39,
+ 0x471E, 0x8233, 0xDE30,
+ 0x471F, 0x8233, 0xDE31,
+ 0x4720, 0x8233, 0xDE32,
+ 0x4721, 0x8233, 0xDE33,
+ 0x4722, 0x8233, 0xDE34,
+ 0x4724, 0x8233, 0xDE35,
+ 0x4725, 0x8233, 0xDE36,
+ 0x4726, 0x8233, 0xDE37,
+ 0x4727, 0x8233, 0xDE38,
+ 0x4728, 0x8233, 0xDE39,
+ 0x472A, 0x8233, 0xDF30,
+ 0x472B, 0x8233, 0xDF31,
+ 0x472C, 0x8233, 0xDF32,
+ 0x472D, 0x8233, 0xDF33,
+ 0x472E, 0x8233, 0xDF34,
+ 0x472F, 0x8233, 0xDF35,
+ 0x4730, 0x8233, 0xDF36,
+ 0x4731, 0x8233, 0xDF37,
+ 0x4732, 0x8233, 0xDF38,
+ 0x4733, 0x8233, 0xDF39,
+ 0x4734, 0x8233, 0xE030,
+ 0x4735, 0x8233, 0xE031,
+ 0x4736, 0x8233, 0xE032,
+ 0x4737, 0x8233, 0xE033,
+ 0x4738, 0x8233, 0xE034,
+ 0x4739, 0x8233, 0xE035,
+ 0x473A, 0x8233, 0xE036,
+ 0x473B, 0x8233, 0xE037,
+ 0x473C, 0x8233, 0xE038,
+ 0x473D, 0x8233, 0xE039,
+ 0x473E, 0x8233, 0xE130,
+ 0x473F, 0x8233, 0xE131,
+ 0x4740, 0x8233, 0xE132,
+ 0x4741, 0x8233, 0xE133,
+ 0x4742, 0x8233, 0xE134,
+ 0x4743, 0x8233, 0xE135,
+ 0x4744, 0x8233, 0xE136,
+ 0x4745, 0x8233, 0xE137,
+ 0x4746, 0x8233, 0xE138,
+ 0x4747, 0x8233, 0xE139,
+ 0x4748, 0x8233, 0xE230,
+ 0x4749, 0x8233, 0xE231,
+ 0x474A, 0x8233, 0xE232,
+ 0x474B, 0x8233, 0xE233,
+ 0x474C, 0x8233, 0xE234,
+ 0x474D, 0x8233, 0xE235,
+ 0x474E, 0x8233, 0xE236,
+ 0x474F, 0x8233, 0xE237,
+ 0x4750, 0x8233, 0xE238,
+ 0x4751, 0x8233, 0xE239,
+ 0x4752, 0x8233, 0xE330,
+ 0x4753, 0x8233, 0xE331,
+ 0x4754, 0x8233, 0xE332,
+ 0x4755, 0x8233, 0xE333,
+ 0x4756, 0x8233, 0xE334,
+ 0x4757, 0x8233, 0xE335,
+ 0x4758, 0x8233, 0xE336,
+ 0x4759, 0x8233, 0xE337,
+ 0x475A, 0x8233, 0xE338,
+ 0x475B, 0x8233, 0xE339,
+ 0x475C, 0x8233, 0xE430,
+ 0x475D, 0x8233, 0xE431,
+ 0x475E, 0x8233, 0xE432,
+ 0x475F, 0x8233, 0xE433,
+ 0x4760, 0x8233, 0xE434,
+ 0x4761, 0x8233, 0xE435,
+ 0x4762, 0x8233, 0xE436,
+ 0x4763, 0x8233, 0xE437,
+ 0x4764, 0x8233, 0xE438,
+ 0x4765, 0x8233, 0xE439,
+ 0x4766, 0x8233, 0xE530,
+ 0x4767, 0x8233, 0xE531,
+ 0x4768, 0x8233, 0xE532,
+ 0x4769, 0x8233, 0xE533,
+ 0x476A, 0x8233, 0xE534,
+ 0x476B, 0x8233, 0xE535,
+ 0x476C, 0x8233, 0xE536,
+ 0x476D, 0x8233, 0xE537,
+ 0x476E, 0x8233, 0xE538,
+ 0x476F, 0x8233, 0xE539,
+ 0x4770, 0x8233, 0xE630,
+ 0x4771, 0x8233, 0xE631,
+ 0x4772, 0x8233, 0xE632,
+ 0x4773, 0x8233, 0xE633,
+ 0x4774, 0x8233, 0xE634,
+ 0x4775, 0x8233, 0xE635,
+ 0x4776, 0x8233, 0xE636,
+ 0x4777, 0x8233, 0xE637,
+ 0x4778, 0x8233, 0xE638,
+ 0x4779, 0x8233, 0xE639,
+ 0x477A, 0x8233, 0xE730,
+ 0x477B, 0x8233, 0xE731,
+ 0x477D, 0x8233, 0xE732,
+ 0x477E, 0x8233, 0xE733,
+ 0x477F, 0x8233, 0xE734,
+ 0x4780, 0x8233, 0xE735,
+ 0x4781, 0x8233, 0xE736,
+ 0x4782, 0x8233, 0xE737,
+ 0x4783, 0x8233, 0xE738,
+ 0x4784, 0x8233, 0xE739,
+ 0x4785, 0x8233, 0xE830,
+ 0x4786, 0x8233, 0xE831,
+ 0x4787, 0x8233, 0xE832,
+ 0x4788, 0x8233, 0xE833,
+ 0x4789, 0x8233, 0xE834,
+ 0x478A, 0x8233, 0xE835,
+ 0x478B, 0x8233, 0xE836,
+ 0x478C, 0x8233, 0xE837,
+ 0x4948, 0x8234, 0x9639,
+ 0x4949, 0x8234, 0x9730,
+ 0x494A, 0x8234, 0x9731,
+ 0x494B, 0x8234, 0x9732,
+ 0x494C, 0x8234, 0x9733,
+ 0x494D, 0x8234, 0x9734,
+ 0x494E, 0x8234, 0x9735,
+ 0x494F, 0x8234, 0x9736,
+ 0x4950, 0x8234, 0x9737,
+ 0x4951, 0x8234, 0x9738,
+ 0x4952, 0x8234, 0x9739,
+ 0x4953, 0x8234, 0x9830,
+ 0x4954, 0x8234, 0x9831,
+ 0x4955, 0x8234, 0x9832,
+ 0x4956, 0x8234, 0x9833,
+ 0x4957, 0x8234, 0x9834,
+ 0x4958, 0x8234, 0x9835,
+ 0x4959, 0x8234, 0x9836,
+ 0x495A, 0x8234, 0x9837,
+ 0x495B, 0x8234, 0x9838,
+ 0x495C, 0x8234, 0x9839,
+ 0x495D, 0x8234, 0x9930,
+ 0x495E, 0x8234, 0x9931,
+ 0x495F, 0x8234, 0x9932,
+ 0x4960, 0x8234, 0x9933,
+ 0x4961, 0x8234, 0x9934,
+ 0x4962, 0x8234, 0x9935,
+ 0x4963, 0x8234, 0x9936,
+ 0x4964, 0x8234, 0x9937,
+ 0x4965, 0x8234, 0x9938,
+ 0x4966, 0x8234, 0x9939,
+ 0x4967, 0x8234, 0x9A30,
+ 0x4968, 0x8234, 0x9A31,
+ 0x4969, 0x8234, 0x9A32,
+ 0x496A, 0x8234, 0x9A33,
+ 0x496B, 0x8234, 0x9A34,
+ 0x496C, 0x8234, 0x9A35,
+ 0x496D, 0x8234, 0x9A36,
+ 0x496E, 0x8234, 0x9A37,
+ 0x496F, 0x8234, 0x9A38,
+ 0x4970, 0x8234, 0x9A39,
+ 0x4971, 0x8234, 0x9B30,
+ 0x4972, 0x8234, 0x9B31,
+ 0x4973, 0x8234, 0x9B32,
+ 0x4974, 0x8234, 0x9B33,
+ 0x4975, 0x8234, 0x9B34,
+ 0x4976, 0x8234, 0x9B35,
+ 0x4977, 0x8234, 0x9B36,
+ 0x4978, 0x8234, 0x9B37,
+ 0x4979, 0x8234, 0x9B38,
+ 0x497B, 0x8234, 0x9B39,
+ 0x497C, 0x8234, 0x9C30,
+ 0x497E, 0x8234, 0x9C31,
+ 0x497F, 0x8234, 0x9C32,
+ 0x4980, 0x8234, 0x9C33,
+ 0x4981, 0x8234, 0x9C34,
+ 0x4984, 0x8234, 0x9C35,
+ 0x4987, 0x8234, 0x9C36,
+ 0x4988, 0x8234, 0x9C37,
+ 0x4989, 0x8234, 0x9C38,
+ 0x498A, 0x8234, 0x9C39,
+ 0x498B, 0x8234, 0x9D30,
+ 0x498C, 0x8234, 0x9D31,
+ 0x498D, 0x8234, 0x9D32,
+ 0x498E, 0x8234, 0x9D33,
+ 0x498F, 0x8234, 0x9D34,
+ 0x4990, 0x8234, 0x9D35,
+ 0x4991, 0x8234, 0x9D36,
+ 0x4992, 0x8234, 0x9D37,
+ 0x4993, 0x8234, 0x9D38,
+ 0x4994, 0x8234, 0x9D39,
+ 0x4995, 0x8234, 0x9E30,
+ 0x4996, 0x8234, 0x9E31,
+ 0x4997, 0x8234, 0x9E32,
+ 0x4998, 0x8234, 0x9E33,
+ 0x4999, 0x8234, 0x9E34,
+ 0x499A, 0x8234, 0x9E35,
+ 0x499C, 0x8234, 0x9E36,
+ 0x499D, 0x8234, 0x9E37,
+ 0x499E, 0x8234, 0x9E38,
+ 0x49A0, 0x8234, 0x9E39,
+ 0x49A1, 0x8234, 0x9F30,
+ 0x49A2, 0x8234, 0x9F31,
+ 0x49A3, 0x8234, 0x9F32,
+ 0x49A4, 0x8234, 0x9F33,
+ 0x49A5, 0x8234, 0x9F34,
+ 0x49A6, 0x8234, 0x9F35,
+ 0x49A7, 0x8234, 0x9F36,
+ 0x49A8, 0x8234, 0x9F37,
+ 0x49A9, 0x8234, 0x9F38,
+ 0x49AA, 0x8234, 0x9F39,
+ 0x49AB, 0x8234, 0xA030,
+ 0x49AC, 0x8234, 0xA031,
+ 0x49AD, 0x8234, 0xA032,
+ 0x49AE, 0x8234, 0xA033,
+ 0x49AF, 0x8234, 0xA034,
+ 0x49B0, 0x8234, 0xA035,
+ 0x49B1, 0x8234, 0xA036,
+ 0x49B2, 0x8234, 0xA037,
+ 0x49B3, 0x8234, 0xA038,
+ 0x49B4, 0x8234, 0xA039,
+ 0x49B5, 0x8234, 0xA130,
+ 0x4C78, 0x8234, 0xE734,
+ 0x4C79, 0x8234, 0xE735,
+ 0x4C7A, 0x8234, 0xE736,
+ 0x4C7B, 0x8234, 0xE737,
+ 0x4C7C, 0x8234, 0xE738,
+ 0x4C7D, 0x8234, 0xE739,
+ 0x4C7E, 0x8234, 0xE830,
+ 0x4C7F, 0x8234, 0xE831,
+ 0x4C80, 0x8234, 0xE832,
+ 0x4C81, 0x8234, 0xE833,
+ 0x4C82, 0x8234, 0xE834,
+ 0x4C83, 0x8234, 0xE835,
+ 0x4C84, 0x8234, 0xE836,
+ 0x4C85, 0x8234, 0xE837,
+ 0x4C86, 0x8234, 0xE838,
+ 0x4C87, 0x8234, 0xE839,
+ 0x4C88, 0x8234, 0xE930,
+ 0x4C89, 0x8234, 0xE931,
+ 0x4C8A, 0x8234, 0xE932,
+ 0x4C8B, 0x8234, 0xE933,
+ 0x4C8C, 0x8234, 0xE934,
+ 0x4C8D, 0x8234, 0xE935,
+ 0x4C8E, 0x8234, 0xE936,
+ 0x4C8F, 0x8234, 0xE937,
+ 0x4C90, 0x8234, 0xE938,
+ 0x4C91, 0x8234, 0xE939,
+ 0x4C92, 0x8234, 0xEA30,
+ 0x4C93, 0x8234, 0xEA31,
+ 0x4C94, 0x8234, 0xEA32,
+ 0x4C95, 0x8234, 0xEA33,
+ 0x4C96, 0x8234, 0xEA34,
+ 0x4C97, 0x8234, 0xEA35,
+ 0x4C98, 0x8234, 0xEA36,
+ 0x4C99, 0x8234, 0xEA37,
+ 0x4C9A, 0x8234, 0xEA38,
+ 0x4C9B, 0x8234, 0xEA39,
+ 0x4C9C, 0x8234, 0xEB30,
+ 0x4C9D, 0x8234, 0xEB31,
+ 0x4C9E, 0x8234, 0xEB32,
+ 0x4CA4, 0x8234, 0xEB33,
+ 0x4CA5, 0x8234, 0xEB34,
+ 0x4CA6, 0x8234, 0xEB35,
+ 0x4CA7, 0x8234, 0xEB36,
+ 0x4CA8, 0x8234, 0xEB37,
+ 0x4CA9, 0x8234, 0xEB38,
+ 0x4CAA, 0x8234, 0xEB39,
+ 0x4CAB, 0x8234, 0xEC30,
+ 0x4CAC, 0x8234, 0xEC31,
+ 0x4CAD, 0x8234, 0xEC32,
+ 0x4CAE, 0x8234, 0xEC33,
+ 0x4CAF, 0x8234, 0xEC34,
+ 0x4CB0, 0x8234, 0xEC35,
+ 0x4CB1, 0x8234, 0xEC36,
+ 0x4CB2, 0x8234, 0xEC37,
+ 0x4CB3, 0x8234, 0xEC38,
+ 0x4CB4, 0x8234, 0xEC39,
+ 0x4CB5, 0x8234, 0xED30,
+ 0x4CB6, 0x8234, 0xED31,
+ 0x4CB7, 0x8234, 0xED32,
+ 0x4CB8, 0x8234, 0xED33,
+ 0x4CB9, 0x8234, 0xED34,
+ 0x4CBA, 0x8234, 0xED35,
+ 0x4CBB, 0x8234, 0xED36,
+ 0x4CBC, 0x8234, 0xED37,
+ 0x4CBD, 0x8234, 0xED38,
+ 0x4CBE, 0x8234, 0xED39,
+ 0x4CBF, 0x8234, 0xEE30,
+ 0x4CC0, 0x8234, 0xEE31,
+ 0x4CC1, 0x8234, 0xEE32,
+ 0x4CC2, 0x8234, 0xEE33,
+ 0x4CC3, 0x8234, 0xEE34,
+ 0x4CC4, 0x8234, 0xEE35,
+ 0x4CC5, 0x8234, 0xEE36,
+ 0x4CC6, 0x8234, 0xEE37,
+ 0x4CC7, 0x8234, 0xEE38,
+ 0x4CC8, 0x8234, 0xEE39,
+ 0x4CC9, 0x8234, 0xEF30,
+ 0x4CCA, 0x8234, 0xEF31,
+ 0x4CCB, 0x8234, 0xEF32,
+ 0x4CCC, 0x8234, 0xEF33,
+ 0x4CCD, 0x8234, 0xEF34,
+ 0x4CCE, 0x8234, 0xEF35,
+ 0x4CCF, 0x8234, 0xEF36,
+ 0x4CD0, 0x8234, 0xEF37,
+ 0x4CD1, 0x8234, 0xEF38,
+ 0x4CD2, 0x8234, 0xEF39,
+ 0x4CD3, 0x8234, 0xF030,
+ 0x4CD4, 0x8234, 0xF031,
+ 0x4CD5, 0x8234, 0xF032,
+ 0x4CD6, 0x8234, 0xF033,
+ 0x4CD7, 0x8234, 0xF034,
+ 0x4CD8, 0x8234, 0xF035,
+ 0x4CD9, 0x8234, 0xF036,
+ 0x4CDA, 0x8234, 0xF037,
+ 0x4CDB, 0x8234, 0xF038,
+ 0x4CDC, 0x8234, 0xF039,
+ 0x4CDD, 0x8234, 0xF130,
+ 0x4CDE, 0x8234, 0xF131,
+ 0x4CDF, 0x8234, 0xF132,
+ 0x4CE0, 0x8234, 0xF133,
+ 0x4CE1, 0x8234, 0xF134,
+ 0x4CE2, 0x8234, 0xF135,
+ 0x4CE3, 0x8234, 0xF136,
+ 0x4CE4, 0x8234, 0xF137,
+ 0x4CE5, 0x8234, 0xF138,
+ 0x4CE6, 0x8234, 0xF139,
+ 0x4CE7, 0x8234, 0xF230,
+ 0x4CE8, 0x8234, 0xF231,
+ 0x4CE9, 0x8234, 0xF232,
+ 0x4CEA, 0x8234, 0xF233,
+ 0x4CEB, 0x8234, 0xF234,
+ 0x4CEC, 0x8234, 0xF235,
+ 0x4CED, 0x8234, 0xF236,
+ 0x4CEE, 0x8234, 0xF237,
+ 0x4CEF, 0x8234, 0xF238,
+ 0x4CF0, 0x8234, 0xF239,
+ 0x4CF1, 0x8234, 0xF330,
+ 0x4CF2, 0x8234, 0xF331,
+ 0x4CF3, 0x8234, 0xF332,
+ 0x4CF4, 0x8234, 0xF333,
+ 0x4CF5, 0x8234, 0xF334,
+ 0x4CF6, 0x8234, 0xF335,
+ 0x4CF7, 0x8234, 0xF336,
+ 0x4CF8, 0x8234, 0xF337,
+ 0x4CF9, 0x8234, 0xF338,
+ 0x4CFA, 0x8234, 0xF339,
+ 0x4CFB, 0x8234, 0xF430,
+ 0x4CFC, 0x8234, 0xF431,
+ 0x4CFD, 0x8234, 0xF432,
+ 0x4CFE, 0x8234, 0xF433,
+ 0x4CFF, 0x8234, 0xF434,
+ 0x4D00, 0x8234, 0xF435,
+ 0x4D01, 0x8234, 0xF436,
+ 0x4D02, 0x8234, 0xF437,
+ 0x4D03, 0x8234, 0xF438,
+ 0x4D04, 0x8234, 0xF439,
+ 0x4D05, 0x8234, 0xF530,
+ 0x4D06, 0x8234, 0xF531,
+ 0x4D07, 0x8234, 0xF532,
+ 0x4D08, 0x8234, 0xF533,
+ 0x4D09, 0x8234, 0xF534,
+ 0x4D0A, 0x8234, 0xF535,
+ 0x4D0B, 0x8234, 0xF536,
+ 0x4D0C, 0x8234, 0xF537,
+ 0x4D0D, 0x8234, 0xF538,
+ 0x4D0E, 0x8234, 0xF539,
+ 0x4D0F, 0x8234, 0xF630,
+ 0x4D10, 0x8234, 0xF631,
+ 0x4D11, 0x8234, 0xF632,
+ 0x4D12, 0x8234, 0xF633,
+ 0x4D1A, 0x8234, 0xF634,
+ 0x4D1B, 0x8234, 0xF635,
+ 0x4D1C, 0x8234, 0xF636,
+ 0x4D1D, 0x8234, 0xF637,
+ 0x4D1E, 0x8234, 0xF638,
+ 0x4D1F, 0x8234, 0xF639,
+ 0x4D20, 0x8234, 0xF730,
+ 0x4D21, 0x8234, 0xF731,
+ 0x4D22, 0x8234, 0xF732,
+ 0x4D23, 0x8234, 0xF733,
+ 0x4D24, 0x8234, 0xF734,
+ 0x4D25, 0x8234, 0xF735,
+ 0x4D26, 0x8234, 0xF736,
+ 0x4D27, 0x8234, 0xF737,
+ 0x4D28, 0x8234, 0xF738,
+ 0x4D29, 0x8234, 0xF739,
+ 0x4D2A, 0x8234, 0xF830,
+ 0x4D2B, 0x8234, 0xF831,
+ 0x4D2C, 0x8234, 0xF832,
+ 0x4D2D, 0x8234, 0xF833,
+ 0x4D2E, 0x8234, 0xF834,
+ 0x4D2F, 0x8234, 0xF835,
+ 0x4D30, 0x8234, 0xF836,
+ 0x4D31, 0x8234, 0xF837,
+ 0x4D32, 0x8234, 0xF838,
+ 0x4D33, 0x8234, 0xF839,
+ 0x4D34, 0x8234, 0xF930,
+ 0x4D35, 0x8234, 0xF931,
+ 0x4D36, 0x8234, 0xF932,
+ 0x4D37, 0x8234, 0xF933,
+ 0x4D38, 0x8234, 0xF934,
+ 0x4D39, 0x8234, 0xF935,
+ 0x4D3A, 0x8234, 0xF936,
+ 0x4D3B, 0x8234, 0xF937,
+ 0x4D3C, 0x8234, 0xF938,
+ 0x4D3D, 0x8234, 0xF939,
+ 0x4D3E, 0x8234, 0xFA30,
+ 0x4D3F, 0x8234, 0xFA31,
+ 0x4D40, 0x8234, 0xFA32,
+ 0x4D41, 0x8234, 0xFA33,
+ 0x4D42, 0x8234, 0xFA34,
+ 0x4D43, 0x8234, 0xFA35,
+ 0x4D44, 0x8234, 0xFA36,
+ 0x4D45, 0x8234, 0xFA37,
+ 0x4D46, 0x8234, 0xFA38,
+ 0x4D47, 0x8234, 0xFA39,
+ 0x4D48, 0x8234, 0xFB30,
+ 0x4D49, 0x8234, 0xFB31,
+ 0x4D4A, 0x8234, 0xFB32,
+ 0x4D4B, 0x8234, 0xFB33,
+ 0x4D4C, 0x8234, 0xFB34,
+ 0x4D4D, 0x8234, 0xFB35,
+ 0x4D4E, 0x8234, 0xFB36,
+ 0x4D4F, 0x8234, 0xFB37,
+ 0x4D50, 0x8234, 0xFB38,
+ 0x4D51, 0x8234, 0xFB39,
+ 0x4D52, 0x8234, 0xFC30,
+ 0x4D53, 0x8234, 0xFC31,
+ 0x4D54, 0x8234, 0xFC32,
+ 0x4D55, 0x8234, 0xFC33,
+ 0x4D56, 0x8234, 0xFC34,
+ 0x4D57, 0x8234, 0xFC35,
+ 0x4D58, 0x8234, 0xFC36,
+ 0x4D59, 0x8234, 0xFC37,
+ 0x4D5A, 0x8234, 0xFC38,
+ 0x4D5B, 0x8234, 0xFC39,
+ 0x4D5C, 0x8234, 0xFD30,
+ 0x4D5D, 0x8234, 0xFD31,
+ 0x4D5E, 0x8234, 0xFD32,
+ 0x4D5F, 0x8234, 0xFD33,
+ 0x4D60, 0x8234, 0xFD34,
+ 0x4D61, 0x8234, 0xFD35,
+ 0x4D62, 0x8234, 0xFD36,
+ 0x4D63, 0x8234, 0xFD37,
+ 0x4D64, 0x8234, 0xFD38,
+ 0x4D65, 0x8234, 0xFD39,
+ 0x4D66, 0x8234, 0xFE30,
+ 0x4D67, 0x8234, 0xFE31,
+ 0x4D68, 0x8234, 0xFE32,
+ 0x4D69, 0x8234, 0xFE33,
+ 0x4D6A, 0x8234, 0xFE34,
+ 0x4D6B, 0x8234, 0xFE35,
+ 0x4D6C, 0x8234, 0xFE36,
+ 0x4D6D, 0x8234, 0xFE37,
+ 0x4D6E, 0x8234, 0xFE38,
+ 0x4D6F, 0x8234, 0xFE39,
+ 0x4D70, 0x8235, 0x8130,
+ 0x4D71, 0x8235, 0x8131,
+ 0x4D72, 0x8235, 0x8132,
+ 0x4D73, 0x8235, 0x8133,
+ 0x4D74, 0x8235, 0x8134,
+ 0x4D75, 0x8235, 0x8135,
+ 0x4D76, 0x8235, 0x8136,
+ 0x4D77, 0x8235, 0x8137,
+ 0x4D78, 0x8235, 0x8138,
+ 0x4D79, 0x8235, 0x8139,
+ 0x4D7A, 0x8235, 0x8230,
+ 0x4D7B, 0x8235, 0x8231,
+ 0x4D7C, 0x8235, 0x8232,
+ 0x4D7D, 0x8235, 0x8233,
+ 0x4D7E, 0x8235, 0x8234,
+ 0x4D7F, 0x8235, 0x8235,
+ 0x4D80, 0x8235, 0x8236,
+ 0x4D81, 0x8235, 0x8237,
+ 0x4D82, 0x8235, 0x8238,
+ 0x4D83, 0x8235, 0x8239,
+ 0x4D84, 0x8235, 0x8330,
+ 0x4D85, 0x8235, 0x8331,
+ 0x4D86, 0x8235, 0x8332,
+ 0x4D87, 0x8235, 0x8333,
+ 0x4D88, 0x8235, 0x8334,
+ 0x4D89, 0x8235, 0x8335,
+ 0x4D8A, 0x8235, 0x8336,
+ 0x4D8B, 0x8235, 0x8337,
+ 0x4D8C, 0x8235, 0x8338,
+ 0x4D8D, 0x8235, 0x8339,
+ 0x4D8E, 0x8235, 0x8430,
+ 0x4D8F, 0x8235, 0x8431,
+ 0x4D90, 0x8235, 0x8432,
+ 0x4D91, 0x8235, 0x8433,
+ 0x4D92, 0x8235, 0x8434,
+ 0x4D93, 0x8235, 0x8435,
+ 0x4D94, 0x8235, 0x8436,
+ 0x4D95, 0x8235, 0x8437,
+ 0x4D96, 0x8235, 0x8438,
+ 0x4D97, 0x8235, 0x8439,
+ 0x4D98, 0x8235, 0x8530,
+ 0x4D99, 0x8235, 0x8531,
+ 0x4D9A, 0x8235, 0x8532,
+ 0x4D9B, 0x8235, 0x8533,
+ 0x4D9C, 0x8235, 0x8534,
+ 0x4D9D, 0x8235, 0x8535,
+ 0x4D9E, 0x8235, 0x8536,
+ 0x4D9F, 0x8235, 0x8537,
+ 0x4DA0, 0x8235, 0x8538,
+ 0x4DA1, 0x8235, 0x8539,
+ 0x4DA2, 0x8235, 0x8630,
+ 0x4DA3, 0x8235, 0x8631,
+ 0x4DA4, 0x8235, 0x8632,
+ 0x4DA5, 0x8235, 0x8633,
+ 0x4DA6, 0x8235, 0x8634,
+ 0x4DA7, 0x8235, 0x8635,
+ 0x4DA8, 0x8235, 0x8636,
+ 0x4DA9, 0x8235, 0x8637,
+ 0x4DAA, 0x8235, 0x8638,
+ 0x4DAB, 0x8235, 0x8639,
+ 0x4DAC, 0x8235, 0x8730,
+ 0x4DAD, 0x8235, 0x8731,
+ 0x4DAF, 0x8235, 0x8732,
+ 0x4DB0, 0x8235, 0x8733,
+ 0x4DB1, 0x8235, 0x8734,
+ 0x4DB2, 0x8235, 0x8735,
+ 0x4DB3, 0x8235, 0x8736,
+ 0x4DB4, 0x8235, 0x8737,
+ 0x4DB5, 0x8235, 0x8738,
+ 0x4DB6, 0x8235, 0x8739,
+ 0x4DB7, 0x8235, 0x8830,
+ 0x4DB8, 0x8235, 0x8831,
+ 0x4DB9, 0x8235, 0x8832,
+ 0x4DBA, 0x8235, 0x8833,
+ 0x4DBB, 0x8235, 0x8834,
+ 0x4DBC, 0x8235, 0x8835,
+ 0x4DBD, 0x8235, 0x8836,
+ 0x4DBE, 0x8235, 0x8837,
+ 0x4DBF, 0x8235, 0x8838,
+ 0x4DC0, 0x8235, 0x8839,
+ 0x4DC1, 0x8235, 0x8930,
+ 0x4DC2, 0x8235, 0x8931,
+ 0x4DC3, 0x8235, 0x8932,
+ 0x4DC4, 0x8235, 0x8933,
+ 0x4DC5, 0x8235, 0x8934,
+ 0x4DC6, 0x8235, 0x8935,
+ 0x4DC7, 0x8235, 0x8936,
+ 0x4DC8, 0x8235, 0x8937,
+ 0x4DC9, 0x8235, 0x8938,
+ 0x4DCA, 0x8235, 0x8939,
+ 0x4DCB, 0x8235, 0x8A30,
+ 0x4DCC, 0x8235, 0x8A31,
+ 0x4DCD, 0x8235, 0x8A32,
+ 0x4DCE, 0x8235, 0x8A33,
+ 0x4DCF, 0x8235, 0x8A34,
+ 0x4DD0, 0x8235, 0x8A35,
+ 0x4DD1, 0x8235, 0x8A36,
+ 0x4DD2, 0x8235, 0x8A37,
+ 0x4DD3, 0x8235, 0x8A38,
+ 0x4DD4, 0x8235, 0x8A39,
+ 0x4DD5, 0x8235, 0x8B30,
+ 0x4DD6, 0x8235, 0x8B31,
+ 0x4DD7, 0x8235, 0x8B32,
+ 0x4DD8, 0x8235, 0x8B33,
+ 0x4DD9, 0x8235, 0x8B34,
+ 0x4DDA, 0x8235, 0x8B35,
+ 0x4DDB, 0x8235, 0x8B36,
+ 0x4DDC, 0x8235, 0x8B37,
+ 0x4DDD, 0x8235, 0x8B38,
+ 0x4DDE, 0x8235, 0x8B39,
+ 0x4DDF, 0x8235, 0x8C30,
+ 0x4DE0, 0x8235, 0x8C31,
+ 0x4DE1, 0x8235, 0x8C32,
+ 0x4DE2, 0x8235, 0x8C33,
+ 0x4DE3, 0x8235, 0x8C34,
+ 0x4DE4, 0x8235, 0x8C35,
+ 0x4DE5, 0x8235, 0x8C36,
+ 0x4DE6, 0x8235, 0x8C37,
+ 0x4DE7, 0x8235, 0x8C38,
+ 0x4DE8, 0x8235, 0x8C39,
+ 0x4DE9, 0x8235, 0x8D30,
+ 0x4DEA, 0x8235, 0x8D31,
+ 0x4DEB, 0x8235, 0x8D32,
+ 0x4DEC, 0x8235, 0x8D33,
+ 0x4DED, 0x8235, 0x8D34,
+ 0x4DEE, 0x8235, 0x8D35,
+ 0x4DEF, 0x8235, 0x8D36,
+ 0x4DF0, 0x8235, 0x8D37,
+ 0x4DF1, 0x8235, 0x8D38,
+ 0x4DF2, 0x8235, 0x8D39,
+ 0x4DF3, 0x8235, 0x8E30,
+ 0x4DF4, 0x8235, 0x8E31,
+ 0x4DF5, 0x8235, 0x8E32,
+ 0x4DF6, 0x8235, 0x8E33,
+ 0x4DF7, 0x8235, 0x8E34,
+ 0x4DF8, 0x8235, 0x8E35,
+ 0x4DF9, 0x8235, 0x8E36,
+ 0x4DFA, 0x8235, 0x8E37,
+ 0x4DFB, 0x8235, 0x8E38,
+ 0x4DFC, 0x8235, 0x8E39,
+ 0x4DFD, 0x8235, 0x8F30,
+ 0x4DFE, 0x8235, 0x8F31,
+ 0x4DFF, 0x8235, 0x8F32,
+ 0xE76C, 0x8336, 0xC739,
+ 0xE7C8, 0x8336, 0xC830,
+ 0xE7E7, 0x8336, 0xC831,
+ 0xE7E8, 0x8336, 0xC832,
+ 0xE7E9, 0x8336, 0xC833,
+ 0xE7EA, 0x8336, 0xC834,
+ 0xE7EB, 0x8336, 0xC835,
+ 0xE7EC, 0x8336, 0xC836,
+ 0xE7ED, 0x8336, 0xC837,
+ 0xE7EE, 0x8336, 0xC838,
+ 0xE7EF, 0x8336, 0xC839,
+ 0xE7F0, 0x8336, 0xC930,
+ 0xE7F1, 0x8336, 0xC931,
+ 0xE7F2, 0x8336, 0xC932,
+ 0xE7F3, 0x8336, 0xC933,
+ 0xE815, 0x8336, 0xC934,
+ 0xE819, 0x8336, 0xC935,
+ 0xE81A, 0x8336, 0xC936,
+ 0xE81B, 0x8336, 0xC937,
+ 0xE81C, 0x8336, 0xC938,
+ 0xE81D, 0x8336, 0xC939,
+ 0xE81F, 0x8336, 0xCA30,
+ 0xE820, 0x8336, 0xCA31,
+ 0xE821, 0x8336, 0xCA32,
+ 0xE822, 0x8336, 0xCA33,
+ 0xE823, 0x8336, 0xCA34,
+ 0xE824, 0x8336, 0xCA35,
+ 0xE825, 0x8336, 0xCA36,
+ 0xE827, 0x8336, 0xCA37,
+ 0xE828, 0x8336, 0xCA38,
+ 0xE829, 0x8336, 0xCA39,
+ 0xE82A, 0x8336, 0xCB30,
+ 0xE82D, 0x8336, 0xCB31,
+ 0xE82E, 0x8336, 0xCB32,
+ 0xE82F, 0x8336, 0xCB33,
+ 0xE830, 0x8336, 0xCB34,
+ 0xE833, 0x8336, 0xCB35,
+ 0xE834, 0x8336, 0xCB36,
+ 0xE835, 0x8336, 0xCB37,
+ 0xE836, 0x8336, 0xCB38,
+ 0xE837, 0x8336, 0xCB39,
+ 0xE838, 0x8336, 0xCC30,
+ 0xE839, 0x8336, 0xCC31,
+ 0xE83A, 0x8336, 0xCC32,
+ 0xE83C, 0x8336, 0xCC33,
+ 0xE83D, 0x8336, 0xCC34,
+ 0xE83E, 0x8336, 0xCC35,
+ 0xE83F, 0x8336, 0xCC36,
+ 0xE840, 0x8336, 0xCC37,
+ 0xE841, 0x8336, 0xCC38,
+ 0xE842, 0x8336, 0xCC39,
+ 0xE844, 0x8336, 0xCD30,
+ 0xE845, 0x8336, 0xCD31,
+ 0xE846, 0x8336, 0xCD32,
+ 0xE847, 0x8336, 0xCD33,
+ 0xE848, 0x8336, 0xCD34,
+ 0xE849, 0x8336, 0xCD35,
+ 0xE84A, 0x8336, 0xCD36,
+ 0xE84B, 0x8336, 0xCD37,
+ 0xE84C, 0x8336, 0xCD38,
+ 0xE84D, 0x8336, 0xCD39,
+ 0xE84E, 0x8336, 0xCE30,
+ 0xE84F, 0x8336, 0xCE31,
+ 0xE850, 0x8336, 0xCE32,
+ 0xE851, 0x8336, 0xCE33,
+ 0xE852, 0x8336, 0xCE34,
+ 0xE853, 0x8336, 0xCE35,
+ 0xE856, 0x8336, 0xCE36,
+ 0xE857, 0x8336, 0xCE37,
+ 0xE858, 0x8336, 0xCE38,
+ 0xE859, 0x8336, 0xCE39,
+ 0xE85A, 0x8336, 0xCF30,
+ 0xE85B, 0x8336, 0xCF31,
+ 0xE85C, 0x8336, 0xCF32,
+ 0xE85D, 0x8336, 0xCF33,
+ 0xE85E, 0x8336, 0xCF34,
+ 0xE85F, 0x8336, 0xCF35,
+ 0xE860, 0x8336, 0xCF36,
+ 0xE861, 0x8336, 0xCF37,
+ 0xE862, 0x8336, 0xCF38,
+ 0xE863, 0x8336, 0xCF39,
+ 0xF92D, 0x8430, 0x8535,
+ 0xF92E, 0x8430, 0x8536,
+ 0xF92F, 0x8430, 0x8537,
+ 0xF930, 0x8430, 0x8538,
+ 0xF931, 0x8430, 0x8539,
+ 0xF932, 0x8430, 0x8630,
+ 0xF933, 0x8430, 0x8631,
+ 0xF934, 0x8430, 0x8632,
+ 0xF935, 0x8430, 0x8633,
+ 0xF936, 0x8430, 0x8634,
+ 0xF937, 0x8430, 0x8635,
+ 0xF938, 0x8430, 0x8636,
+ 0xF939, 0x8430, 0x8637,
+ 0xF93A, 0x8430, 0x8638,
+ 0xF93B, 0x8430, 0x8639,
+ 0xF93C, 0x8430, 0x8730,
+ 0xF93D, 0x8430, 0x8731,
+ 0xF93E, 0x8430, 0x8732,
+ 0xF93F, 0x8430, 0x8733,
+ 0xF940, 0x8430, 0x8734,
+ 0xF941, 0x8430, 0x8735,
+ 0xF942, 0x8430, 0x8736,
+ 0xF943, 0x8430, 0x8737,
+ 0xF944, 0x8430, 0x8738,
+ 0xF945, 0x8430, 0x8739,
+ 0xF946, 0x8430, 0x8830,
+ 0xF947, 0x8430, 0x8831,
+ 0xF948, 0x8430, 0x8832,
+ 0xF949, 0x8430, 0x8833,
+ 0xF94A, 0x8430, 0x8834,
+ 0xF94B, 0x8430, 0x8835,
+ 0xF94C, 0x8430, 0x8836,
+ 0xF94D, 0x8430, 0x8837,
+ 0xF94E, 0x8430, 0x8838,
+ 0xF94F, 0x8430, 0x8839,
+ 0xF950, 0x8430, 0x8930,
+ 0xF951, 0x8430, 0x8931,
+ 0xF952, 0x8430, 0x8932,
+ 0xF953, 0x8430, 0x8933,
+ 0xF954, 0x8430, 0x8934,
+ 0xF955, 0x8430, 0x8935,
+ 0xF956, 0x8430, 0x8936,
+ 0xF957, 0x8430, 0x8937,
+ 0xF958, 0x8430, 0x8938,
+ 0xF959, 0x8430, 0x8939,
+ 0xF95A, 0x8430, 0x8A30,
+ 0xF95B, 0x8430, 0x8A31,
+ 0xF95C, 0x8430, 0x8A32,
+ 0xF95D, 0x8430, 0x8A33,
+ 0xF95E, 0x8430, 0x8A34,
+ 0xF95F, 0x8430, 0x8A35,
+ 0xF960, 0x8430, 0x8A36,
+ 0xF961, 0x8430, 0x8A37,
+ 0xF962, 0x8430, 0x8A38,
+ 0xF963, 0x8430, 0x8A39,
+ 0xF964, 0x8430, 0x8B30,
+ 0xF965, 0x8430, 0x8B31,
+ 0xF966, 0x8430, 0x8B32,
+ 0xF967, 0x8430, 0x8B33,
+ 0xF968, 0x8430, 0x8B34,
+ 0xF969, 0x8430, 0x8B35,
+ 0xF96A, 0x8430, 0x8B36,
+ 0xF96B, 0x8430, 0x8B37,
+ 0xF96C, 0x8430, 0x8B38,
+ 0xF96D, 0x8430, 0x8B39,
+ 0xF96E, 0x8430, 0x8C30,
+ 0xF96F, 0x8430, 0x8C31,
+ 0xF970, 0x8430, 0x8C32,
+ 0xF971, 0x8430, 0x8C33,
+ 0xF972, 0x8430, 0x8C34,
+ 0xF973, 0x8430, 0x8C35,
+ 0xF974, 0x8430, 0x8C36,
+ 0xF975, 0x8430, 0x8C37,
+ 0xF976, 0x8430, 0x8C38,
+ 0xF977, 0x8430, 0x8C39,
+ 0xF978, 0x8430, 0x8D30,
+ 0xF97A, 0x8430, 0x8D31,
+ 0xF97B, 0x8430, 0x8D32,
+ 0xF97C, 0x8430, 0x8D33,
+ 0xF97D, 0x8430, 0x8D34,
+ 0xF97E, 0x8430, 0x8D35,
+ 0xF97F, 0x8430, 0x8D36,
+ 0xF980, 0x8430, 0x8D37,
+ 0xF981, 0x8430, 0x8D38,
+ 0xF982, 0x8430, 0x8D39,
+ 0xF983, 0x8430, 0x8E30,
+ 0xF984, 0x8430, 0x8E31,
+ 0xF985, 0x8430, 0x8E32,
+ 0xF986, 0x8430, 0x8E33,
+ 0xF987, 0x8430, 0x8E34,
+ 0xF988, 0x8430, 0x8E35,
+ 0xF989, 0x8430, 0x8E36,
+ 0xF98A, 0x8430, 0x8E37,
+ 0xF98B, 0x8430, 0x8E38,
+ 0xF98C, 0x8430, 0x8E39,
+ 0xF98D, 0x8430, 0x8F30,
+ 0xF98E, 0x8430, 0x8F31,
+ 0xF98F, 0x8430, 0x8F32,
+ 0xF990, 0x8430, 0x8F33,
+ 0xF991, 0x8430, 0x8F34,
+ 0xF992, 0x8430, 0x8F35,
+ 0xF993, 0x8430, 0x8F36,
+ 0xF994, 0x8430, 0x8F37,
+ 0xF996, 0x8430, 0x8F38,
+ 0xF997, 0x8430, 0x8F39,
+ 0xF998, 0x8430, 0x9030,
+ 0xF999, 0x8430, 0x9031,
+ 0xF99A, 0x8430, 0x9032,
+ 0xF99B, 0x8430, 0x9033,
+ 0xF99C, 0x8430, 0x9034,
+ 0xF99D, 0x8430, 0x9035,
+ 0xF99E, 0x8430, 0x9036,
+ 0xF99F, 0x8430, 0x9037,
+ 0xF9A0, 0x8430, 0x9038,
+ 0xF9A1, 0x8430, 0x9039,
+ 0xF9A2, 0x8430, 0x9130,
+ 0xF9A3, 0x8430, 0x9131,
+ 0xF9A4, 0x8430, 0x9132,
+ 0xF9A5, 0x8430, 0x9133,
+ 0xF9A6, 0x8430, 0x9134,
+ 0xF9A7, 0x8430, 0x9135,
+ 0xF9A8, 0x8430, 0x9136,
+ 0xF9A9, 0x8430, 0x9137,
+ 0xF9AA, 0x8430, 0x9138,
+ 0xF9AB, 0x8430, 0x9139,
+ 0xF9AC, 0x8430, 0x9230,
+ 0xF9AD, 0x8430, 0x9231,
+ 0xF9AE, 0x8430, 0x9232,
+ 0xF9AF, 0x8430, 0x9233,
+ 0xF9B0, 0x8430, 0x9234,
+ 0xF9B1, 0x8430, 0x9235,
+ 0xF9B2, 0x8430, 0x9236,
+ 0xF9B3, 0x8430, 0x9237,
+ 0xF9B4, 0x8430, 0x9238,
+ 0xF9B5, 0x8430, 0x9239,
+ 0xF9B6, 0x8430, 0x9330,
+ 0xF9B7, 0x8430, 0x9331,
+ 0xF9B8, 0x8430, 0x9332,
+ 0xF9B9, 0x8430, 0x9333,
+ 0xF9BA, 0x8430, 0x9334,
+ 0xF9BB, 0x8430, 0x9335,
+ 0xF9BC, 0x8430, 0x9336,
+ 0xF9BD, 0x8430, 0x9337,
+ 0xF9BE, 0x8430, 0x9338,
+ 0xF9BF, 0x8430, 0x9339,
+ 0xF9C0, 0x8430, 0x9430,
+ 0xF9C1, 0x8430, 0x9431,
+ 0xF9C2, 0x8430, 0x9432,
+ 0xF9C3, 0x8430, 0x9433,
+ 0xF9C4, 0x8430, 0x9434,
+ 0xF9C5, 0x8430, 0x9435,
+ 0xF9C6, 0x8430, 0x9436,
+ 0xF9C7, 0x8430, 0x9437,
+ 0xF9C8, 0x8430, 0x9438,
+ 0xF9C9, 0x8430, 0x9439,
+ 0xF9CA, 0x8430, 0x9530,
+ 0xF9CB, 0x8430, 0x9531,
+ 0xF9CC, 0x8430, 0x9532,
+ 0xF9CD, 0x8430, 0x9533,
+ 0xF9CE, 0x8430, 0x9534,
+ 0xF9CF, 0x8430, 0x9535,
+ 0xF9D0, 0x8430, 0x9536,
+ 0xF9D1, 0x8430, 0x9537,
+ 0xF9D2, 0x8430, 0x9538,
+ 0xF9D3, 0x8430, 0x9539,
+ 0xF9D4, 0x8430, 0x9630,
+ 0xF9D5, 0x8430, 0x9631,
+ 0xF9D6, 0x8430, 0x9632,
+ 0xF9D7, 0x8430, 0x9633,
+ 0xF9D8, 0x8430, 0x9634,
+ 0xF9D9, 0x8430, 0x9635,
+ 0xF9DA, 0x8430, 0x9636,
+ 0xF9DB, 0x8430, 0x9637,
+ 0xF9DC, 0x8430, 0x9638,
+ 0xF9DD, 0x8430, 0x9639,
+ 0xF9DE, 0x8430, 0x9730,
+ 0xF9DF, 0x8430, 0x9731,
+ 0xF9E0, 0x8430, 0x9732,
+ 0xF9E1, 0x8430, 0x9733,
+ 0xF9E2, 0x8430, 0x9734,
+ 0xF9E3, 0x8430, 0x9735,
+ 0xF9E4, 0x8430, 0x9736,
+ 0xF9E5, 0x8430, 0x9737,
+ 0xF9E6, 0x8430, 0x9738,
+ 0xF9E8, 0x8430, 0x9739,
+ 0xF9E9, 0x8430, 0x9830,
+ 0xF9EA, 0x8430, 0x9831,
+ 0xF9EB, 0x8430, 0x9832,
+ 0xF9EC, 0x8430, 0x9833,
+ 0xF9ED, 0x8430, 0x9834,
+ 0xF9EE, 0x8430, 0x9835,
+ 0xF9EF, 0x8430, 0x9836,
+ 0xF9F0, 0x8430, 0x9837,
+ 0xF9F2, 0x8430, 0x9838,
+ 0xF9F3, 0x8430, 0x9839,
+ 0xF9F4, 0x8430, 0x9930,
+ 0xF9F5, 0x8430, 0x9931,
+ 0xF9F6, 0x8430, 0x9932,
+ 0xF9F7, 0x8430, 0x9933,
+ 0xF9F8, 0x8430, 0x9934,
+ 0xF9F9, 0x8430, 0x9935,
+ 0xF9FA, 0x8430, 0x9936,
+ 0xF9FB, 0x8430, 0x9937,
+ 0xF9FC, 0x8430, 0x9938,
+ 0xF9FD, 0x8430, 0x9939,
+ 0xF9FE, 0x8430, 0x9A30,
+ 0xF9FF, 0x8430, 0x9A31,
+ 0xFA00, 0x8430, 0x9A32,
+ 0xFA01, 0x8430, 0x9A33,
+ 0xFA02, 0x8430, 0x9A34,
+ 0xFA03, 0x8430, 0x9A35,
+ 0xFA04, 0x8430, 0x9A36,
+ 0xFA05, 0x8430, 0x9A37,
+ 0xFA06, 0x8430, 0x9A38,
+ 0xFA07, 0x8430, 0x9A39,
+ 0xFA08, 0x8430, 0x9B30,
+ 0xFA09, 0x8430, 0x9B31,
+ 0xFA0A, 0x8430, 0x9B32,
+ 0xFA0B, 0x8430, 0x9B33,
+ 0xFA10, 0x8430, 0x9B34,
+ 0xFA12, 0x8430, 0x9B35,
+ 0xFA15, 0x8430, 0x9B36,
+ 0xFA16, 0x8430, 0x9B37,
+ 0xFA17, 0x8430, 0x9B38,
+ 0xFA19, 0x8430, 0x9B39,
+ 0xFA1A, 0x8430, 0x9C30,
+ 0xFA1B, 0x8430, 0x9C31,
+ 0xFA1C, 0x8430, 0x9C32,
+ 0xFA1D, 0x8430, 0x9C33,
+ 0xFA1E, 0x8430, 0x9C34,
+ 0xFA22, 0x8430, 0x9C35,
+ 0xFA25, 0x8430, 0x9C36,
+ 0xFA26, 0x8430, 0x9C37,
+ 0xFE32, 0x8431, 0x8538,
+ 0xFE45, 0x8431, 0x8539,
+ 0xFE46, 0x8431, 0x8630,
+ 0xFE47, 0x8431, 0x8631,
+ 0xFE48, 0x8431, 0x8632,
+ 0xFE53, 0x8431, 0x8633,
+ 0xFE58, 0x8431, 0x8634,
+ 0xFE67, 0x8431, 0x8635,
+ 0xFE6C, 0x8431, 0x8636,
+ 0xFE6D, 0x8431, 0x8637,
+ 0xFE6E, 0x8431, 0x8638,
+ 0xFE6F, 0x8431, 0x8639,
+ 0xFE70, 0x8431, 0x8730,
+ 0xFE71, 0x8431, 0x8731,
+ 0xFE72, 0x8431, 0x8732,
+ 0xFE73, 0x8431, 0x8733,
+ 0xFE74, 0x8431, 0x8734,
+ 0xFE75, 0x8431, 0x8735,
+ 0xFE76, 0x8431, 0x8736,
+ 0xFE77, 0x8431, 0x8737,
+ 0xFE78, 0x8431, 0x8738,
+ 0xFE79, 0x8431, 0x8739,
+ 0xFE7A, 0x8431, 0x8830,
+ 0xFE7B, 0x8431, 0x8831,
+ 0xFE7C, 0x8431, 0x8832,
+ 0xFE7D, 0x8431, 0x8833,
+ 0xFE7E, 0x8431, 0x8834,
+ 0xFE7F, 0x8431, 0x8835,
+ 0xFE80, 0x8431, 0x8836,
+ 0xFE81, 0x8431, 0x8837,
+ 0xFE82, 0x8431, 0x8838,
+ 0xFE83, 0x8431, 0x8839,
+ 0xFE84, 0x8431, 0x8930,
+ 0xFE85, 0x8431, 0x8931,
+ 0xFE86, 0x8431, 0x8932,
+ 0xFE87, 0x8431, 0x8933,
+ 0xFE88, 0x8431, 0x8934,
+ 0xFE89, 0x8431, 0x8935,
+ 0xFE8A, 0x8431, 0x8936,
+ 0xFE8B, 0x8431, 0x8937,
+ 0xFE8C, 0x8431, 0x8938,
+ 0xFE8D, 0x8431, 0x8939,
+ 0xFE8E, 0x8431, 0x8A30,
+ 0xFE8F, 0x8431, 0x8A31,
+ 0xFE90, 0x8431, 0x8A32,
+ 0xFE91, 0x8431, 0x8A33,
+ 0xFE92, 0x8431, 0x8A34,
+ 0xFE93, 0x8431, 0x8A35,
+ 0xFE94, 0x8431, 0x8A36,
+ 0xFE95, 0x8431, 0x8A37,
+ 0xFE96, 0x8431, 0x8A38,
+ 0xFE97, 0x8431, 0x8A39,
+ 0xFE98, 0x8431, 0x8B30,
+ 0xFE99, 0x8431, 0x8B31,
+ 0xFE9A, 0x8431, 0x8B32,
+ 0xFE9B, 0x8431, 0x8B33,
+ 0xFE9C, 0x8431, 0x8B34,
+ 0xFE9D, 0x8431, 0x8B35,
+ 0xFE9E, 0x8431, 0x8B36,
+ 0xFE9F, 0x8431, 0x8B37,
+ 0xFEA0, 0x8431, 0x8B38,
+ 0xFEA1, 0x8431, 0x8B39,
+ 0xFEA2, 0x8431, 0x8C30,
+ 0xFEA3, 0x8431, 0x8C31,
+ 0xFEA4, 0x8431, 0x8C32,
+ 0xFEA5, 0x8431, 0x8C33,
+ 0xFEA6, 0x8431, 0x8C34,
+ 0xFEA7, 0x8431, 0x8C35,
+ 0xFEA8, 0x8431, 0x8C36,
+ 0xFEA9, 0x8431, 0x8C37,
+ 0xFEAA, 0x8431, 0x8C38,
+ 0xFEAB, 0x8431, 0x8C39,
+ 0xFEAC, 0x8431, 0x8D30,
+ 0xFEAD, 0x8431, 0x8D31,
+ 0xFEAE, 0x8431, 0x8D32,
+ 0xFEAF, 0x8431, 0x8D33,
+ 0xFEB0, 0x8431, 0x8D34,
+ 0xFEB1, 0x8431, 0x8D35,
+ 0xFEB2, 0x8431, 0x8D36,
+ 0xFEB3, 0x8431, 0x8D37,
+ 0xFEB4, 0x8431, 0x8D38,
+ 0xFEB5, 0x8431, 0x8D39,
+ 0xFEB6, 0x8431, 0x8E30,
+ 0xFEB7, 0x8431, 0x8E31,
+ 0xFEB8, 0x8431, 0x8E32,
+ 0xFEB9, 0x8431, 0x8E33,
+ 0xFEBA, 0x8431, 0x8E34,
+ 0xFEBB, 0x8431, 0x8E35,
+ 0xFEBC, 0x8431, 0x8E36,
+ 0xFEBD, 0x8431, 0x8E37,
+ 0xFEBE, 0x8431, 0x8E38,
+ 0xFEBF, 0x8431, 0x8E39,
+ 0xFEC0, 0x8431, 0x8F30,
+ 0xFEC1, 0x8431, 0x8F31,
+ 0xFEC2, 0x8431, 0x8F32,
+ 0xFEC3, 0x8431, 0x8F33,
+ 0xFEC4, 0x8431, 0x8F34,
+ 0xFEC5, 0x8431, 0x8F35,
+ 0xFEC6, 0x8431, 0x8F36,
+ 0xFEC7, 0x8431, 0x8F37,
+ 0xFEC8, 0x8431, 0x8F38,
+ 0xFEC9, 0x8431, 0x8F39,
+ 0xFECA, 0x8431, 0x9030,
+ 0xFECB, 0x8431, 0x9031,
+ 0xFECC, 0x8431, 0x9032,
+ 0xFECD, 0x8431, 0x9033,
+ 0xFECE, 0x8431, 0x9034,
+ 0xFECF, 0x8431, 0x9035,
+ 0xFED0, 0x8431, 0x9036,
+ 0xFED1, 0x8431, 0x9037,
+ 0xFED2, 0x8431, 0x9038,
+ 0xFED3, 0x8431, 0x9039,
+ 0xFED4, 0x8431, 0x9130,
+ 0xFED5, 0x8431, 0x9131,
+ 0xFED6, 0x8431, 0x9132,
+ 0xFED7, 0x8431, 0x9133,
+ 0xFED8, 0x8431, 0x9134,
+ 0xFED9, 0x8431, 0x9135,
+ 0xFEDA, 0x8431, 0x9136,
+ 0xFEDB, 0x8431, 0x9137,
+ 0xFEDC, 0x8431, 0x9138,
+ 0xFEDD, 0x8431, 0x9139,
+ 0xFEDE, 0x8431, 0x9230,
+ 0xFEDF, 0x8431, 0x9231,
+ 0xFEE0, 0x8431, 0x9232,
+ 0xFEE1, 0x8431, 0x9233,
+ 0xFEE2, 0x8431, 0x9234,
+ 0xFEE3, 0x8431, 0x9235,
+ 0xFEE4, 0x8431, 0x9236,
+ 0xFEE5, 0x8431, 0x9237,
+ 0xFEE6, 0x8431, 0x9238,
+ 0xFEE7, 0x8431, 0x9239,
+ 0xFEE8, 0x8431, 0x9330,
+ 0xFEE9, 0x8431, 0x9331,
+ 0xFEEA, 0x8431, 0x9332,
+ 0xFEEB, 0x8431, 0x9333,
+ 0xFEEC, 0x8431, 0x9334,
+ 0xFEED, 0x8431, 0x9335,
+ 0xFEEE, 0x8431, 0x9336,
+ 0xFEEF, 0x8431, 0x9337,
+ 0xFEF0, 0x8431, 0x9338,
+ 0xFEF1, 0x8431, 0x9339,
+ 0xFEF2, 0x8431, 0x9430,
+ 0xFEF3, 0x8431, 0x9431,
+ 0xFEF4, 0x8431, 0x9432,
+ 0xFEF5, 0x8431, 0x9433,
+ 0xFEF6, 0x8431, 0x9434,
+ 0xFEF7, 0x8431, 0x9435,
+ 0xFEF8, 0x8431, 0x9436,
+ 0xFEF9, 0x8431, 0x9437,
+ 0xFEFA, 0x8431, 0x9438,
+ 0xFEFB, 0x8431, 0x9439,
+ 0xFEFC, 0x8431, 0x9530,
+ 0xFEFD, 0x8431, 0x9531,
+ 0xFEFE, 0x8431, 0x9532,
+ 0xFEFF, 0x8431, 0x9533,
+ 0xFF00, 0x8431, 0x9534,
+ 0xFF5F, 0x8431, 0x9535,
+ 0xFF60, 0x8431, 0x9536,
+ 0xFF61, 0x8431, 0x9537,
+ 0xFF62, 0x8431, 0x9538,
+ 0xFF63, 0x8431, 0x9539,
+ 0xFF64, 0x8431, 0x9630,
+ 0xFF65, 0x8431, 0x9631,
+ 0xFF66, 0x8431, 0x9632,
+ 0xFF67, 0x8431, 0x9633,
+ 0xFF68, 0x8431, 0x9634,
+ 0xFF69, 0x8431, 0x9635,
+ 0xFF6A, 0x8431, 0x9636,
+ 0xFF6B, 0x8431, 0x9637,
+ 0xFF6C, 0x8431, 0x9638,
+ 0xFF6D, 0x8431, 0x9639,
+ 0xFF6E, 0x8431, 0x9730,
+ 0xFF6F, 0x8431, 0x9731,
+ 0xFF70, 0x8431, 0x9732,
+ 0xFF71, 0x8431, 0x9733,
+ 0xFF72, 0x8431, 0x9734,
+ 0xFF73, 0x8431, 0x9735,
+ 0xFF74, 0x8431, 0x9736,
+ 0xFF75, 0x8431, 0x9737,
+ 0xFF76, 0x8431, 0x9738,
+ 0xFF77, 0x8431, 0x9739,
+ 0xFF78, 0x8431, 0x9830,
+ 0xFF79, 0x8431, 0x9831,
+ 0xFF7A, 0x8431, 0x9832,
+ 0xFF7B, 0x8431, 0x9833,
+ 0xFF7C, 0x8431, 0x9834,
+ 0xFF7D, 0x8431, 0x9835,
+ 0xFF7E, 0x8431, 0x9836,
+ 0xFF7F, 0x8431, 0x9837,
+ 0xFF80, 0x8431, 0x9838,
+ 0xFF81, 0x8431, 0x9839,
+ 0xFF82, 0x8431, 0x9930,
+ 0xFF83, 0x8431, 0x9931,
+ 0xFF84, 0x8431, 0x9932,
+ 0xFF85, 0x8431, 0x9933,
+ 0xFF86, 0x8431, 0x9934,
+ 0xFF87, 0x8431, 0x9935,
+ 0xFF88, 0x8431, 0x9936,
+ 0xFF89, 0x8431, 0x9937,
+ 0xFF8A, 0x8431, 0x9938,
+ 0xFF8B, 0x8431, 0x9939,
+ 0xFF8C, 0x8431, 0x9A30,
+ 0xFF8D, 0x8431, 0x9A31,
+ 0xFF8E, 0x8431, 0x9A32,
+ 0xFF8F, 0x8431, 0x9A33,
+ 0xFF90, 0x8431, 0x9A34,
+ 0xFF91, 0x8431, 0x9A35,
+ 0xFF92, 0x8431, 0x9A36,
+ 0xFF93, 0x8431, 0x9A37,
+ 0xFF94, 0x8431, 0x9A38,
+ 0xFF95, 0x8431, 0x9A39,
+ 0xFF96, 0x8431, 0x9B30,
+ 0xFF97, 0x8431, 0x9B31,
+ 0xFF98, 0x8431, 0x9B32,
+ 0xFF99, 0x8431, 0x9B33,
+ 0xFF9A, 0x8431, 0x9B34,
+ 0xFF9B, 0x8431, 0x9B35,
+ 0xFF9C, 0x8431, 0x9B36,
+ 0xFF9D, 0x8431, 0x9B37,
+ 0xFF9E, 0x8431, 0x9B38,
+ 0xFF9F, 0x8431, 0x9B39,
+ 0xFFA0, 0x8431, 0x9C30,
+ 0xFFA1, 0x8431, 0x9C31,
+ 0xFFA2, 0x8431, 0x9C32,
+ 0xFFA3, 0x8431, 0x9C33,
+ 0xFFA4, 0x8431, 0x9C34,
+ 0xFFA5, 0x8431, 0x9C35,
+ 0xFFA6, 0x8431, 0x9C36,
+ 0xFFA7, 0x8431, 0x9C37,
+ 0xFFA8, 0x8431, 0x9C38,
+ 0xFFA9, 0x8431, 0x9C39,
+ 0xFFAA, 0x8431, 0x9D30,
+ 0xFFAB, 0x8431, 0x9D31,
+ 0xFFAC, 0x8431, 0x9D32,
+ 0xFFAD, 0x8431, 0x9D33,
+ 0xFFAE, 0x8431, 0x9D34,
+ 0xFFAF, 0x8431, 0x9D35,
+ 0xFFB0, 0x8431, 0x9D36,
+ 0xFFB1, 0x8431, 0x9D37,
+ 0xFFB2, 0x8431, 0x9D38,
+ 0xFFB3, 0x8431, 0x9D39,
+ 0xFFB4, 0x8431, 0x9E30,
+ 0xFFB5, 0x8431, 0x9E31,
+ 0xFFB6, 0x8431, 0x9E32,
+ 0xFFB7, 0x8431, 0x9E33,
+ 0xFFB8, 0x8431, 0x9E34,
+ 0xFFB9, 0x8431, 0x9E35,
+ 0xFFBA, 0x8431, 0x9E36,
+ 0xFFBB, 0x8431, 0x9E37,
+ 0xFFBC, 0x8431, 0x9E38,
+ 0xFFBD, 0x8431, 0x9E39,
+ 0xFFBE, 0x8431, 0x9F30,
+ 0xFFBF, 0x8431, 0x9F31,
+ 0xFFC0, 0x8431, 0x9F32,
+ 0xFFC1, 0x8431, 0x9F33,
+ 0xFFC2, 0x8431, 0x9F34,
+ 0xFFC3, 0x8431, 0x9F35,
+ 0xFFC4, 0x8431, 0x9F36,
+ 0xFFC5, 0x8431, 0x9F37,
+ 0xFFC6, 0x8431, 0x9F38,
+ 0xFFC7, 0x8431, 0x9F39,
+ 0xFFC8, 0x8431, 0xA030,
+ 0xFFC9, 0x8431, 0xA031,
+ 0xFFCA, 0x8431, 0xA032,
+ 0xFFCB, 0x8431, 0xA033,
+ 0xFFCC, 0x8431, 0xA034,
+ 0xFFCD, 0x8431, 0xA035,
+ 0xFFCE, 0x8431, 0xA036,
+ 0xFFCF, 0x8431, 0xA037,
+ 0xFFD0, 0x8431, 0xA038,
+ 0xFFD1, 0x8431, 0xA039,
+ 0xFFD2, 0x8431, 0xA130,
+ 0xFFD3, 0x8431, 0xA131,
+ 0xFFD4, 0x8431, 0xA132,
+ 0xFFD5, 0x8431, 0xA133,
+ 0xFFD6, 0x8431, 0xA134,
+ 0xFFD7, 0x8431, 0xA135,
+ 0xFFD8, 0x8431, 0xA136,
+ 0xFFD9, 0x8431, 0xA137,
+ 0xFFDA, 0x8431, 0xA138,
+ 0xFFDB, 0x8431, 0xA139,
+ 0xFFDC, 0x8431, 0xA230,
+ 0xFFDD, 0x8431, 0xA231,
+ 0xFFDE, 0x8431, 0xA232,
+ 0xFFDF, 0x8431, 0xA233
+};
+++ /dev/null
-/*
- libzint - the open source barcode library
- Copyright (C) 2008-2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-/*
- * Adapted from GNU LIBICONV library and patched to add 2 duplicate mappings
- * for compatibility with GB 18030 subset:
- * 1) U+00B7 to 0xA1A4 (duplicate of U+30FB)
- * 2) U+2014 to 0xA1AA (duplicate of U+2015)
- */
-/*
- * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc.
- * This file is part of the GNU LIBICONV Library.
- *
- * The GNU LIBICONV Library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * The GNU LIBICONV Library is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
- * If not, see <https://www.gnu.org/licenses/>.
- */
-#include <string.h>
-#ifdef _MSC_VER
-#include <malloc.h>
-#endif
-#include "common.h"
-#include "gb2312.h"
-
-INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
-
-/*
- * GB2312.1980-0 (libiconv-1.16/lib/gb2312.h)
- */
-
-/* ZINT: Table converted from GB 2312 to EUC-CN values using tools/cnv_gb2312.php:
- *
-while ($line = fgets(STDIN)) {
- echo preg_replace_callback('/0x([0-9a-f]{4})/', function ($matches) {
- return '0x' . dechex(hexdec($matches[1]) + 0x8080);
- }, $line);
-}
- */
-static const unsigned short gb2312_2charset[7445] = {
- 0xa1e8, 0xa1ec, 0xa1a7, 0xa1e3, 0xa1c0, 0xa1c1, 0xa8a4, 0xa8a2,
- 0xa8a8, 0xa8a6, 0xa8ba, 0xa8ac, 0xa8aa, 0xa8b0, 0xa8ae, 0xa1c2,
- 0xa8b4, 0xa8b2, 0xa8b9, 0xa8a1, 0xa8a5, 0xa8a7, 0xa8a9, 0xa8ad,
- 0xa8b1, 0xa8a3, 0xa8ab, 0xa8af, 0xa8b3, 0xa8b5, 0xa8b6, 0xa8b7,
- 0xa8b8, 0xa1a6, 0xa1a5, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5,
- 0xa6a6, 0xa6a7, 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad,
- 0xa6ae, 0xa6af, 0xa6b0, 0xa6b1, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5,
- 0xa6b6, 0xa6b7, 0xa6b8, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5,
- 0xa6c6, 0xa6c7, 0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd,
- 0xa6ce, 0xa6cf, 0xa6d0, 0xa6d1, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5,
- 0xa6d6, 0xa6d7, 0xa6d8, 0xa7a7, 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4,
- 0xa7a5, 0xa7a6, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7ab, 0xa7ac, 0xa7ad,
- 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b5,
- 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd,
- 0xa7be, 0xa7bf, 0xa7c0, 0xa7c1, 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4,
- 0xa7d5, 0xa7d6, 0xa7d8, 0xa7d9, 0xa7da, 0xa7db, 0xa7dc, 0xa7dd,
- 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5,
- 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed,
- 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, 0xa7d7, 0xa1aa, 0xa1ac, 0xa1ae,
- 0xa1af, 0xa1b0, 0xa1b1, 0xa1ad, 0xa1eb, 0xa1e4, 0xa1e5, 0xa1f9,
- 0xa1e6, 0xa1ed, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6,
- 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa1fb, 0xa1fc,
- 0xa1fa, 0xa1fd, 0xa1ca, 0xa1c7, 0xa1c6, 0xa1cc, 0xa1d8, 0xa1de,
- 0xa1cf, 0xa1ce, 0xa1c4, 0xa1c5, 0xa1c9, 0xa1c8, 0xa1d2, 0xa1d3,
- 0xa1e0, 0xa1df, 0xa1c3, 0xa1cb, 0xa1d7, 0xa1d6, 0xa1d5, 0xa1d9,
- 0xa1d4, 0xa1dc, 0xa1dd, 0xa1da, 0xa1db, 0xa1d1, 0xa1cd, 0xa1d0,
- 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0,
- 0xa2e1, 0xa2e2, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca,
- 0xa2cb, 0xa2cc, 0xa2cd, 0xa2ce, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2,
- 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2b1, 0xa2b2,
- 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa2b9, 0xa2ba,
- 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2,
- 0xa2c3, 0xa2c4, 0xa9a4, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, 0xa9a9,
- 0xa9aa, 0xa9ab, 0xa9ac, 0xa9ad, 0xa9ae, 0xa9af, 0xa9b0, 0xa9b1,
- 0xa9b2, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9,
- 0xa9ba, 0xa9bb, 0xa9bc, 0xa9bd, 0xa9be, 0xa9bf, 0xa9c0, 0xa9c1,
- 0xa9c2, 0xa9c3, 0xa9c4, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9,
- 0xa9ca, 0xa9cb, 0xa9cc, 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1,
- 0xa9d2, 0xa9d3, 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9,
- 0xa9da, 0xa9db, 0xa9dc, 0xa9dd, 0xa9de, 0xa9df, 0xa9e0, 0xa9e1,
- 0xa9e2, 0xa9e3, 0xa9e4, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, 0xa9e9,
- 0xa9ea, 0xa9eb, 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0xa1f6, 0xa1f5,
- 0xa1f8, 0xa1f7, 0xa1f4, 0xa1f3, 0xa1f0, 0xa1f2, 0xa1f1, 0xa1ef,
- 0xa1ee, 0xa1e2, 0xa1e1, 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a8, 0xa1a9,
- 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, 0xa1ba, 0xa1bb,
- 0xa1be, 0xa1bf, 0xa1fe, 0xa1b2, 0xa1b3, 0xa1bc, 0xa1bd, 0xa4a1,
- 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9,
- 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1,
- 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9,
- 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, 0xa4c0, 0xa4c1,
- 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9,
- 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4d1,
- 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, 0xa4d8, 0xa4d9,
- 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, 0xa4e0, 0xa4e1,
- 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9,
- 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1,
- 0xa4f2, 0xa4f3, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6,
- 0xa5a7, 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, 0xa5ad, 0xa5ae,
- 0xa5af, 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6,
- 0xa5b7, 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, 0xa5be,
- 0xa5bf, 0xa5c0, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6,
- 0xa5c7, 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce,
- 0xa5cf, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6,
- 0xa5d7, 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5de,
- 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6,
- 0xa5e7, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee,
- 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6,
- 0xa1a4, 0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb,
- 0xa8cc, 0xa8cd, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3,
- 0xa8d4, 0xa8d5, 0xa8d6, 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db,
- 0xa8dc, 0xa8dd, 0xa8de, 0xa8df, 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3,
- 0xa8e4, 0xa8e5, 0xa8e6, 0xa8e7, 0xa8e8, 0xa8e9, 0xa2e5, 0xa2e6,
- 0xa2e7, 0xa2e8, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee,
- 0xd2bb, 0xb6a1, 0xc6df, 0xcdf2, 0xd5c9, 0xc8fd, 0xc9cf, 0xcfc2,
- 0xd8a2, 0xb2bb, 0xd3eb, 0xd8a4, 0xb3f3, 0xd7a8, 0xc7d2, 0xd8a7,
- 0xcac0, 0xc7f0, 0xb1fb, 0xd2b5, 0xb4d4, 0xb6ab, 0xcbbf, 0xd8a9,
- 0xb6aa, 0xc1bd, 0xd1cf, 0xc9a5, 0xd8ad, 0xb8f6, 0xd1be, 0xe3dc,
- 0xd6d0, 0xb7e1, 0xb4ae, 0xc1d9, 0xd8bc, 0xcde8, 0xb5a4, 0xceaa,
- 0xd6f7, 0xc0f6, 0xbed9, 0xd8af, 0xc4cb, 0xbec3, 0xd8b1, 0xc3b4,
- 0xd2e5, 0xd6ae, 0xceda, 0xd5a7, 0xbaf5, 0xb7a6, 0xc0d6, 0xc6b9,
- 0xc5d2, 0xc7c7, 0xb9d4, 0xb3cb, 0xd2d2, 0xd8bf, 0xbec5, 0xc6f2,
- 0xd2b2, 0xcfb0, 0xcfe7, 0xcae9, 0xd8c0, 0xc2f2, 0xc2d2, 0xc8e9,
- 0xc7ac, 0xc1cb, 0xd3e8, 0xd5f9, 0xcac2, 0xb6fe, 0xd8a1, 0xd3da,
- 0xbff7, 0xd4c6, 0xbba5, 0xd8c1, 0xcee5, 0xbeae, 0xd8a8, 0xd1c7,
- 0xd0a9, 0xd8bd, 0xd9ef, 0xcdf6, 0xbfba, 0xbdbb, 0xbaa5, 0xd2e0,
- 0xb2fa, 0xbae0, 0xc4b6, 0xcfed, 0xbea9, 0xcda4, 0xc1c1, 0xc7d7,
- 0xd9f1, 0xd9f4, 0xc8cb, 0xd8e9, 0xd2da, 0xcab2, 0xc8ca, 0xd8ec,
- 0xd8ea, 0xd8c6, 0xbdf6, 0xc6cd, 0xb3f0, 0xd8eb, 0xbdf1, 0xbde9,
- 0xc8d4, 0xb4d3, 0xc2d8, 0xb2d6, 0xd7d0, 0xcacb, 0xcbfb, 0xd5cc,
- 0xb8b6, 0xcfc9, 0xd9da, 0xd8f0, 0xc7aa, 0xd8ee, 0xb4fa, 0xc1ee,
- 0xd2d4, 0xd8ed, 0xd2c7, 0xd8ef, 0xc3c7, 0xd1f6, 0xd6d9, 0xd8f2,
- 0xd8f5, 0xbcfe, 0xbcdb, 0xc8ce, 0xb7dd, 0xb7c2, 0xc6f3, 0xd8f8,
- 0xd2c1, 0xcee9, 0xbcbf, 0xb7fc, 0xb7a5, 0xd0dd, 0xd6da, 0xd3c5,
- 0xbbef, 0xbbe1, 0xd8f1, 0xc9a1, 0xceb0, 0xb4ab, 0xd8f3, 0xc9cb,
- 0xd8f6, 0xc2d7, 0xd8f7, 0xceb1, 0xd8f9, 0xb2ae, 0xb9c0, 0xd9a3,
- 0xb0e9, 0xc1e6, 0xc9ec, 0xcbc5, 0xcbc6, 0xd9a4, 0xb5e8, 0xb5ab,
- 0xcebb, 0xb5cd, 0xd7a1, 0xd7f4, 0xd3d3, 0xcce5, 0xbace, 0xd9a2,
- 0xd9dc, 0xd3e0, 0xd8fd, 0xb7f0, 0xd7f7, 0xd8fe, 0xd8fa, 0xd9a1,
- 0xc4e3, 0xd3b6, 0xd8f4, 0xd9dd, 0xd8fb, 0xc5e5, 0xc0d0, 0xd1f0,
- 0xb0db, 0xbcd1, 0xd9a6, 0xd9a5, 0xd9ac, 0xd9ae, 0xd9ab, 0xcab9,
- 0xd9a9, 0xd6b6, 0xb3de, 0xd9a8, 0xc0fd, 0xcacc, 0xd9aa, 0xd9a7,
- 0xd9b0, 0xb6b1, 0xb9a9, 0xd2c0, 0xcfc0, 0xc2c2, 0xbdc4, 0xd5ec,
- 0xb2e0, 0xc7c8, 0xbfeb, 0xd9ad, 0xd9af, 0xceea, 0xbaee, 0xc7d6,
- 0xb1e3, 0xb4d9, 0xb6ed, 0xd9b4, 0xbfa1, 0xd9de, 0xc7ce, 0xc0fe,
- 0xd9b8, 0xcbd7, 0xb7fd, 0xd9b5, 0xd9b7, 0xb1a3, 0xd3e1, 0xd9b9,
- 0xd0c5, 0xd9b6, 0xd9b1, 0xd9b2, 0xc1a9, 0xd9b3, 0xbcf3, 0xd0de,
- 0xb8a9, 0xbee3, 0xd9bd, 0xd9ba, 0xb0b3, 0xd9c2, 0xd9c4, 0xb1b6,
- 0xd9bf, 0xb5b9, 0xbef3, 0xccc8, 0xbaf2, 0xd2d0, 0xd9c3, 0xbde8,
- 0xb3ab, 0xd9c5, 0xbeeb, 0xd9c6, 0xd9bb, 0xc4df, 0xd9be, 0xd9c1,
- 0xd9c0, 0xd5ae, 0xd6b5, 0xc7e3, 0xd9c8, 0xbcd9, 0xd9ca, 0xd9bc,
- 0xd9cb, 0xc6ab, 0xd9c9, 0xd7f6, 0xcda3, 0xbda1, 0xd9cc, 0xc5bc,
- 0xcdb5, 0xd9cd, 0xd9c7, 0xb3a5, 0xbffe, 0xb8b5, 0xc0fc, 0xb0f8,
- 0xb4f6, 0xd9ce, 0xd9cf, 0xb4a2, 0xd9d0, 0xb4df, 0xb0c1, 0xd9d1,
- 0xc9b5, 0xcff1, 0xd9d2, 0xc1c5, 0xd9d6, 0xc9ae, 0xd9d5, 0xd9d4,
- 0xd9d7, 0xcbdb, 0xbda9, 0xc6a7, 0xd9d3, 0xd9d8, 0xd9d9, 0xc8e5,
- 0xc0dc, 0xb6f9, 0xd8a3, 0xd4ca, 0xd4aa, 0xd0d6, 0xb3e4, 0xd5d7,
- 0xcfc8, 0xb9e2, 0xbfcb, 0xc3e2, 0xb6d2, 0xcdc3, 0xd9ee, 0xd9f0,
- 0xb5b3, 0xb6b5, 0xbea4, 0xc8eb, 0xc8ab, 0xb0cb, 0xb9ab, 0xc1f9,
- 0xd9e2, 0xc0bc, 0xb9b2, 0xb9d8, 0xd0cb, 0xb1f8, 0xc6e4, 0xbedf,
- 0xb5e4, 0xd7c8, 0xd1f8, 0xbce6, 0xcade, 0xbcbd, 0xd9e6, 0xd8e7,
- 0xc4da, 0xb8d4, 0xc8bd, 0xb2e1, 0xd4d9, 0xc3b0, 0xc3e1, 0xdaa2,
- 0xc8df, 0xd0b4, 0xbefc, 0xc5a9, 0xb9da, 0xdaa3, 0xd4a9, 0xdaa4,
- 0xd9fb, 0xb6ac, 0xb7eb, 0xb1f9, 0xd9fc, 0xb3e5, 0xbef6, 0xbff6,
- 0xd2b1, 0xc0e4, 0xb6b3, 0xd9fe, 0xd9fd, 0xbebb, 0xc6e0, 0xd7bc,
- 0xdaa1, 0xc1b9, 0xb5f2, 0xc1e8, 0xbcf5, 0xb4d5, 0xc1dd, 0xc4fd,
- 0xbcb8, 0xb7b2, 0xb7ef, 0xd9ec, 0xc6be, 0xbfad, 0xbbcb, 0xb5ca,
- 0xdbc9, 0xd0d7, 0xcdb9, 0xb0bc, 0xb3f6, 0xbbf7, 0xdbca, 0xbaaf,
- 0xd4e4, 0xb5b6, 0xb5f3, 0xd8d6, 0xc8d0, 0xb7d6, 0xc7d0, 0xd8d7,
- 0xbfaf, 0xdbbb, 0xd8d8, 0xd0cc, 0xbbae, 0xebbe, 0xc1d0, 0xc1f5,
- 0xd4f2, 0xb8d5, 0xb4b4, 0xb3f5, 0xc9be, 0xc5d0, 0xc5d9, 0xc0fb,
- 0xb1f0, 0xd8d9, 0xb9ce, 0xb5bd, 0xd8da, 0xd6c6, 0xcba2, 0xc8af,
- 0xc9b2, 0xb4cc, 0xbfcc, 0xb9f4, 0xd8db, 0xd8dc, 0xb6e7, 0xbcc1,
- 0xccea, 0xcff7, 0xd8dd, 0xc7b0, 0xb9d0, 0xbda3, 0xccde, 0xc6ca,
- 0xd8e0, 0xd8de, 0xd8df, 0xb0fe, 0xbee7, 0xcaa3, 0xbcf4, 0xb8b1,
- 0xb8ee, 0xd8e2, 0xbdcb, 0xd8e4, 0xd8e3, 0xc5fc, 0xd8e5, 0xd8e6,
- 0xc1a6, 0xc8b0, 0xb0ec, 0xb9a6, 0xbcd3, 0xcef1, 0xdbbd, 0xc1d3,
- 0xb6af, 0xd6fa, 0xc5ac, 0xbdd9, 0xdbbe, 0xdbbf, 0xc0f8, 0xbea2,
- 0xc0cd, 0xdbc0, 0xcac6, 0xb2aa, 0xd3c2, 0xc3e3, 0xd1ab, 0xdbc2,
- 0xc0d5, 0xdbc3, 0xbfb1, 0xc4bc, 0xc7da, 0xdbc4, 0xd9e8, 0xc9d7,
- 0xb9b4, 0xcef0, 0xd4c8, 0xb0fc, 0xb4d2, 0xd0d9, 0xd9e9, 0xdecb,
- 0xd9eb, 0xd8b0, 0xbbaf, 0xb1b1, 0xb3d7, 0xd8ce, 0xd4d1, 0xbdb3,
- 0xbfef, 0xcfbb, 0xd8d0, 0xb7cb, 0xd8d1, 0xc6a5, 0xc7f8, 0xd2bd,
- 0xd8d2, 0xc4e4, 0xcaae, 0xc7a7, 0xd8a6, 0xc9fd, 0xcee7, 0xbbdc,
- 0xb0eb, 0xbbaa, 0xd0ad, 0xb1b0, 0xd7e4, 0xd7bf, 0xb5a5, 0xc2f4,
- 0xc4cf, 0xb2a9, 0xb2b7, 0xb1e5, 0xdfb2, 0xd5bc, 0xbfa8, 0xc2ac,
- 0xd8d5, 0xc2b1, 0xd8d4, 0xced4, 0xdae0, 0xcec0, 0xd8b4, 0xc3ae,
- 0xd3a1, 0xcea3, 0xbcb4, 0xc8b4, 0xc2d1, 0xbeed, 0xd0b6, 0xdae1,
- 0xc7e4, 0xb3a7, 0xb6f2, 0xccfc, 0xc0fa, 0xc0f7, 0xd1b9, 0xd1e1,
- 0xd8c7, 0xb2de, 0xc0e5, 0xbaf1, 0xd8c8, 0xd4ad, 0xcfe1, 0xd8c9,
- 0xd8ca, 0xcfc3, 0xb3f8, 0xbec7, 0xd8cb, 0xdbcc, 0xc8a5, 0xcfd8,
- 0xc8fe, 0xb2ce, 0xd3d6, 0xb2e6, 0xbcb0, 0xd3d1, 0xcbab, 0xb7b4,
- 0xb7a2, 0xcae5, 0xc8a1, 0xcadc, 0xb1e4, 0xd0f0, 0xc5d1, 0xdbc5,
- 0xb5fe, 0xbfda, 0xb9c5, 0xbee4, 0xc1ed, 0xdfb6, 0xdfb5, 0xd6bb,
- 0xbdd0, 0xd5d9, 0xb0c8, 0xb6a3, 0xbfc9, 0xcca8, 0xdfb3, 0xcab7,
- 0xd3d2, 0xd8cf, 0xd2b6, 0xbac5, 0xcbbe, 0xccbe, 0xdfb7, 0xb5f0,
- 0xdfb4, 0xd3f5, 0xb3d4, 0xb8f7, 0xdfba, 0xbacf, 0xbcaa, 0xb5f5,
- 0xcdac, 0xc3fb, 0xbaf3, 0xc0f4, 0xcdc2, 0xcff2, 0xdfb8, 0xcfc5,
- 0xc2c0, 0xdfb9, 0xc2f0, 0xbefd, 0xc1df, 0xcdcc, 0xd2f7, 0xb7cd,
- 0xdfc1, 0xdfc4, 0xb7f1, 0xb0c9, 0xb6d6, 0xb7d4, 0xbaac, 0xccfd,
- 0xbfd4, 0xcbb1, 0xc6f4, 0xd6a8, 0xdfc5, 0xcee2, 0xb3b3, 0xcefc,
- 0xb4b5, 0xcec7, 0xbaf0, 0xcee1, 0xd1bd, 0xdfc0, 0xb4f4, 0xb3ca,
- 0xb8e6, 0xdfbb, 0xc4c5, 0xdfbc, 0xdfbd, 0xdfbe, 0xc5bb, 0xdfbf,
- 0xdfc2, 0xd4b1, 0xdfc3, 0xc7ba, 0xced8, 0xc4d8, 0xdfca, 0xdfcf,
- 0xd6dc, 0xdfc9, 0xdfda, 0xceb6, 0xbac7, 0xdfce, 0xdfc8, 0xc5de,
- 0xc9eb, 0xbaf4, 0xc3fc, 0xbed7, 0xdfc6, 0xdfcd, 0xc5d8, 0xd5a6,
- 0xbacd, 0xbecc, 0xd3bd, 0xb8c0, 0xd6e4, 0xdfc7, 0xb9be, 0xbfa7,
- 0xc1fc, 0xdfcb, 0xdfcc, 0xdfd0, 0xdfdb, 0xdfe5, 0xdfd7, 0xdfd6,
- 0xd7c9, 0xdfe3, 0xdfe4, 0xe5eb, 0xd2a7, 0xdfd2, 0xbfa9, 0xd4db,
- 0xbfc8, 0xdfd4, 0xcfcc, 0xdfdd, 0xd1ca, 0xdfde, 0xb0a7, 0xc6b7,
- 0xdfd3, 0xbae5, 0xb6df, 0xcddb, 0xb9fe, 0xd4d5, 0xdfdf, 0xcfec,
- 0xb0a5, 0xdfe7, 0xdfd1, 0xd1c6, 0xdfd5, 0xdfd8, 0xdfd9, 0xdfdc,
- 0xbba9, 0xdfe0, 0xdfe1, 0xdfe2, 0xdfe6, 0xdfe8, 0xd3b4, 0xb8e7,
- 0xc5b6, 0xdfea, 0xc9da, 0xc1a8, 0xc4c4, 0xbfde, 0xcff8, 0xd5dc,
- 0xdfee, 0xb2b8, 0xbadf, 0xdfec, 0xdbc1, 0xd1e4, 0xcbf4, 0xb4bd,
- 0xb0a6, 0xdff1, 0xccc6, 0xdff2, 0xdfed, 0xdfe9, 0xdfeb, 0xdfef,
- 0xdff0, 0xbbbd, 0xdff3, 0xdff4, 0xbba3, 0xcadb, 0xcea8, 0xe0a7,
- 0xb3aa, 0xe0a6, 0xe0a1, 0xdffe, 0xcdd9, 0xdffc, 0xdffa, 0xbfd0,
- 0xd7c4, 0xc9cc, 0xdff8, 0xb0a1, 0xdffd, 0xdffb, 0xe0a2, 0xe0a8,
- 0xb7c8, 0xc6a1, 0xc9b6, 0xc0b2, 0xdff5, 0xc5be, 0xd8c4, 0xdff9,
- 0xc4f6, 0xe0a3, 0xe0a4, 0xe0a5, 0xd0a5, 0xe0b4, 0xcce4, 0xe0b1,
- 0xbfa6, 0xe0af, 0xceb9, 0xe0ab, 0xc9c6, 0xc0ae, 0xe0ae, 0xbaed,
- 0xbab0, 0xe0a9, 0xdff6, 0xe0b3, 0xe0b8, 0xb4ad, 0xe0b9, 0xcfb2,
- 0xbac8, 0xe0b0, 0xd0fa, 0xe0ac, 0xd4fb, 0xdff7, 0xc5e7, 0xe0ad,
- 0xd3f7, 0xe0b6, 0xe0b7, 0xe0c4, 0xd0e1, 0xe0bc, 0xe0c9, 0xe0ca,
- 0xe0be, 0xe0aa, 0xc9a4, 0xe0c1, 0xe0b2, 0xcac8, 0xe0c3, 0xe0b5,
- 0xcecb, 0xcbc3, 0xe0cd, 0xe0c6, 0xe0c2, 0xe0cb, 0xe0ba, 0xe0bf,
- 0xe0c0, 0xe0c5, 0xe0c7, 0xe0c8, 0xe0cc, 0xe0bb, 0xcbd4, 0xe0d5,
- 0xe0d6, 0xe0d2, 0xe0d0, 0xbcce, 0xe0d1, 0xb8c2, 0xd8c5, 0xd0ea,
- 0xc2ef, 0xe0cf, 0xe0bd, 0xe0d4, 0xe0d3, 0xe0d7, 0xe0dc, 0xe0d8,
- 0xd6f6, 0xb3b0, 0xd7ec, 0xcbbb, 0xe0da, 0xcefb, 0xbad9, 0xe0e1,
- 0xe0dd, 0xd2ad, 0xe0e2, 0xe0db, 0xe0d9, 0xe0df, 0xe0e0, 0xe0de,
- 0xe0e4, 0xc6f7, 0xd8ac, 0xd4eb, 0xe0e6, 0xcac9, 0xe0e5, 0xb8c1,
- 0xe0e7, 0xe0e8, 0xe0e9, 0xe0e3, 0xbabf, 0xcce7, 0xe0ea, 0xcff9,
- 0xe0eb, 0xc8c2, 0xbdc0, 0xc4d2, 0xe0ec, 0xe0ed, 0xc7f4, 0xcbc4,
- 0xe0ee, 0xbbd8, 0xd8b6, 0xd2f2, 0xe0ef, 0xcdc5, 0xb6da, 0xe0f1,
- 0xd4b0, 0xc0a7, 0xb4d1, 0xcea7, 0xe0f0, 0xe0f2, 0xb9cc, 0xb9fa,
- 0xcdbc, 0xe0f3, 0xc6d4, 0xe0f4, 0xd4b2, 0xc8a6, 0xe0f6, 0xe0f5,
- 0xe0f7, 0xcdc1, 0xcaa5, 0xd4da, 0xdbd7, 0xdbd9, 0xdbd8, 0xb9e7,
- 0xdbdc, 0xdbdd, 0xb5d8, 0xdbda, 0xdbdb, 0xb3a1, 0xdbdf, 0xbbf8,
- 0xd6b7, 0xdbe0, 0xbef9, 0xb7bb, 0xdbd0, 0xccae, 0xbfb2, 0xbbb5,
- 0xd7f8, 0xbfd3, 0xbfe9, 0xbce1, 0xccb3, 0xdbde, 0xb0d3, 0xceeb,
- 0xb7d8, 0xd7b9, 0xc6c2, 0xc0a4, 0xccb9, 0xdbe7, 0xdbe1, 0xc6ba,
- 0xdbe3, 0xdbe8, 0xc5f7, 0xdbea, 0xdbe9, 0xbfc0, 0xdbe6, 0xdbe5,
- 0xb4b9, 0xc0ac, 0xc2a2, 0xdbe2, 0xdbe4, 0xd0cd, 0xdbed, 0xc0dd,
- 0xdbf2, 0xb6e2, 0xdbf3, 0xdbd2, 0xb9b8, 0xd4ab, 0xdbec, 0xbfd1,
- 0xdbf0, 0xdbd1, 0xb5e6, 0xdbeb, 0xbfe5, 0xdbee, 0xdbf1, 0xdbf9,
- 0xb9a1, 0xb0a3, 0xc2f1, 0xb3c7, 0xdbef, 0xdbf8, 0xc6d2, 0xdbf4,
- 0xdbf5, 0xdbf7, 0xdbf6, 0xdbfe, 0xd3f2, 0xb2ba, 0xdbfd, 0xdca4,
- 0xdbfb, 0xdbfa, 0xdbfc, 0xc5e0, 0xbbf9, 0xdca3, 0xdca5, 0xccc3,
- 0xb6d1, 0xddc0, 0xdca1, 0xdca2, 0xc7b5, 0xb6e9, 0xdca7, 0xdca6,
- 0xdca9, 0xb1a4, 0xb5cc, 0xbfb0, 0xd1df, 0xb6c2, 0xdca8, 0xcbfa,
- 0xebf3, 0xcbdc, 0xcbfe, 0xccc1, 0xc8fb, 0xdcaa, 0xccee, 0xdcab,
- 0xdbd3, 0xdcaf, 0xdcac, 0xbeb3, 0xcafb, 0xdcad, 0xc9ca, 0xc4b9,
- 0xc7bd, 0xdcae, 0xd4f6, 0xd0e6, 0xc4ab, 0xb6d5, 0xdbd4, 0xb1da,
- 0xdbd5, 0xdbd6, 0xbabe, 0xc8c0, 0xcabf, 0xc8c9, 0xd7b3, 0xc9f9,
- 0xbfc7, 0xbaf8, 0xd2bc, 0xe2ba, 0xb4a6, 0xb1b8, 0xb8b4, 0xcfc4,
- 0xd9e7, 0xcfa6, 0xcde2, 0xd9ed, 0xb6e0, 0xd2b9, 0xb9bb, 0xe2b9,
- 0xe2b7, 0xb4f3, 0xccec, 0xccab, 0xb7f2, 0xd8b2, 0xd1eb, 0xbabb,
- 0xcaa7, 0xcdb7, 0xd2c4, 0xbfe4, 0xbcd0, 0xb6e1, 0xdec5, 0xdec6,
- 0xdbbc, 0xd1d9, 0xc6e6, 0xc4ce, 0xb7ee, 0xb7dc, 0xbffc, 0xd7e0,
- 0xc6f5, 0xb1bc, 0xdec8, 0xbdb1, 0xccd7, 0xdeca, 0xdec9, 0xb5ec,
- 0xc9dd, 0xb0c2, 0xc5ae, 0xc5ab, 0xc4cc, 0xbce9, 0xcbfd, 0xbac3,
- 0xe5f9, 0xc8e7, 0xe5fa, 0xcdfd, 0xd7b1, 0xb8be, 0xc2e8, 0xc8d1,
- 0xe5fb, 0xb6ca, 0xbccb, 0xd1fd, 0xe6a1, 0xc3ee, 0xe6a4, 0xe5fe,
- 0xe6a5, 0xcdd7, 0xb7c1, 0xe5fc, 0xe5fd, 0xe6a3, 0xc4dd, 0xe6a8,
- 0xe6a7, 0xc3c3, 0xc6de, 0xe6aa, 0xc4b7, 0xe6a2, 0xcabc, 0xbde3,
- 0xb9c3, 0xe6a6, 0xd0d5, 0xceaf, 0xe6a9, 0xe6b0, 0xd2a6, 0xbdaa,
- 0xe6ad, 0xe6af, 0xc0d1, 0xd2cc, 0xbca7, 0xe6b1, 0xd2f6, 0xd7cb,
- 0xcdfe, 0xcdde, 0xc2a6, 0xe6ab, 0xe6ac, 0xbdbf, 0xe6ae, 0xe6b3,
- 0xe6b2, 0xe6b6, 0xe6b8, 0xc4ef, 0xc4c8, 0xbeea, 0xc9ef, 0xe6b7,
- 0xb6f0, 0xc3e4, 0xd3e9, 0xe6b4, 0xe6b5, 0xc8a2, 0xe6bd, 0xe6b9,
- 0xc6c5, 0xcdf1, 0xe6bb, 0xe6bc, 0xbbe9, 0xe6be, 0xe6ba, 0xc0b7,
- 0xd3a4, 0xe6bf, 0xc9f4, 0xe6c3, 0xe6c4, 0xd0f6, 0xc3bd, 0xc3c4,
- 0xe6c2, 0xe6c1, 0xe6c7, 0xcfb1, 0xebf4, 0xe6ca, 0xe6c5, 0xbcde,
- 0xc9a9, 0xbcb5, 0xcfd3, 0xe6c8, 0xe6c9, 0xe6ce, 0xe6d0, 0xe6d1,
- 0xe6cb, 0xb5d5, 0xe6cc, 0xe6cf, 0xc4db, 0xe6c6, 0xe6cd, 0xe6d2,
- 0xe6d4, 0xe6d3, 0xe6d5, 0xd9f8, 0xe6d6, 0xe6d7, 0xd7d3, 0xe6dd,
- 0xe6de, 0xbfd7, 0xd4d0, 0xd7d6, 0xb4e6, 0xcbef, 0xe6da, 0xd8c3,
- 0xd7ce, 0xd0a2, 0xc3cf, 0xe6df, 0xbcbe, 0xb9c2, 0xe6db, 0xd1a7,
- 0xbaa2, 0xc2cf, 0xd8ab, 0xcaeb, 0xe5ee, 0xe6dc, 0xb7f5, 0xc8e6,
- 0xc4f5, 0xe5b2, 0xc4fe, 0xcbfc, 0xe5b3, 0xd5ac, 0xd3ee, 0xcad8,
- 0xb0b2, 0xcbce, 0xcdea, 0xbaea, 0xe5b5, 0xe5b4, 0xd7da, 0xb9d9,
- 0xd6e6, 0xb6a8, 0xcdf0, 0xd2cb, 0xb1a6, 0xcab5, 0xb3e8, 0xc9f3,
- 0xbfcd, 0xd0fb, 0xcad2, 0xe5b6, 0xbbc2, 0xcfdc, 0xb9ac, 0xd4d7,
- 0xbaa6, 0xd1e7, 0xcffc, 0xbcd2, 0xe5b7, 0xc8dd, 0xbfed, 0xb1f6,
- 0xcbde, 0xbcc5, 0xbcc4, 0xd2fa, 0xc3dc, 0xbfdc, 0xb8bb, 0xc3c2,
- 0xbaae, 0xd4a2, 0xc7de, 0xc4af, 0xb2ec, 0xb9d1, 0xe5bb, 0xc1c8,
- 0xd5af, 0xe5bc, 0xe5be, 0xb4e7, 0xb6d4, 0xcbc2, 0xd1b0, 0xb5bc,
- 0xcad9, 0xb7e2, 0xc9e4, 0xbdab, 0xcebe, 0xd7f0, 0xd0a1, 0xc9d9,
- 0xb6fb, 0xe6d8, 0xbce2, 0xb3be, 0xc9d0, 0xe6d9, 0xb3a2, 0xdecc,
- 0xd3c8, 0xdecd, 0xd2a2, 0xdece, 0xbecd, 0xdecf, 0xcaac, 0xd2fc,
- 0xb3df, 0xe5ea, 0xc4e1, 0xbea1, 0xceb2, 0xc4f2, 0xbed6, 0xc6a8,
- 0xb2e3, 0xbed3, 0xc7fc, 0xcceb, 0xbdec, 0xcedd, 0xcaba, 0xc6c1,
- 0xe5ec, 0xd0bc, 0xd5b9, 0xe5ed, 0xcaf4, 0xcdc0, 0xc2c5, 0xe5ef,
- 0xc2c4, 0xe5f0, 0xe5f8, 0xcdcd, 0xc9bd, 0xd2d9, 0xe1a8, 0xd3ec,
- 0xcbea, 0xc6f1, 0xe1ac, 0xe1a7, 0xe1a9, 0xe1aa, 0xe1af, 0xb2ed,
- 0xe1ab, 0xb8da, 0xe1ad, 0xe1ae, 0xe1b0, 0xb5ba, 0xe1b1, 0xe1b3,
- 0xe1b8, 0xd1d2, 0xe1b6, 0xe1b5, 0xc1eb, 0xe1b7, 0xd4c0, 0xe1b2,
- 0xe1ba, 0xb0b6, 0xe1b4, 0xbff9, 0xe1b9, 0xe1bb, 0xe1be, 0xe1bc,
- 0xd6c5, 0xcfbf, 0xe1bd, 0xe1bf, 0xc2cd, 0xb6eb, 0xd3f8, 0xc7cd,
- 0xb7e5, 0xbefe, 0xe1c0, 0xe1c1, 0xe1c7, 0xb3e7, 0xc6e9, 0xb4de,
- 0xd1c2, 0xe1c8, 0xe1c6, 0xe1c5, 0xe1c3, 0xe1c2, 0xb1c0, 0xd5b8,
- 0xe1c4, 0xe1cb, 0xe1cc, 0xe1ca, 0xeffa, 0xe1d3, 0xe1d2, 0xc7b6,
- 0xe1c9, 0xe1ce, 0xe1d0, 0xe1d4, 0xe1d1, 0xe1cd, 0xe1cf, 0xe1d5,
- 0xe1d6, 0xe1d7, 0xe1d8, 0xe1da, 0xe1db, 0xcea1, 0xe7dd, 0xb4a8,
- 0xd6dd, 0xd1b2, 0xb3b2, 0xb9a4, 0xd7f3, 0xc7c9, 0xbede, 0xb9ae,
- 0xced7, 0xb2ee, 0xdbcf, 0xbcba, 0xd2d1, 0xcbc8, 0xb0cd, 0xcfef,
- 0xd9e3, 0xbded, 0xb1d2, 0xcad0, 0xb2bc, 0xcba7, 0xb7ab, 0xcaa6,
- 0xcfa3, 0xe0f8, 0xd5ca, 0xe0fb, 0xe0fa, 0xc5c1, 0xccfb, 0xc1b1,
- 0xe0f9, 0xd6e3, 0xb2af, 0xd6c4, 0xb5db, 0xb4f8, 0xd6a1, 0xcfaf,
- 0xb0ef, 0xe0fc, 0xe1a1, 0xb3a3, 0xe0fd, 0xe0fe, 0xc3b1, 0xc3dd,
- 0xe1a2, 0xb7f9, 0xbbcf, 0xe1a3, 0xc4bb, 0xe1a4, 0xe1a5, 0xe1a6,
- 0xb4b1, 0xb8c9, 0xc6bd, 0xc4ea, 0xb2a2, 0xd0d2, 0xe7db, 0xbbc3,
- 0xd3d7, 0xd3c4, 0xb9e3, 0xe2cf, 0xd7af, 0xc7ec, 0xb1d3, 0xb4b2,
- 0xe2d1, 0xd0f2, 0xc2ae, 0xe2d0, 0xbfe2, 0xd3a6, 0xb5d7, 0xe2d2,
- 0xb5ea, 0xc3ed, 0xb8fd, 0xb8ae, 0xc5d3, 0xb7cf, 0xe2d4, 0xe2d3,
- 0xb6c8, 0xd7f9, 0xcda5, 0xe2d8, 0xe2d6, 0xcafc, 0xbfb5, 0xd3b9,
- 0xe2d5, 0xe2d7, 0xc1ae, 0xc0c8, 0xe2db, 0xe2da, 0xc0aa, 0xc1ce,
- 0xe2dc, 0xe2dd, 0xe2de, 0xdbc8, 0xd1d3, 0xcda2, 0xbda8, 0xdec3,
- 0xd8a5, 0xbfaa, 0xdbcd, 0xd2ec, 0xc6fa, 0xc5aa, 0xdec4, 0xb1d7,
- 0xdfae, 0xcabd, 0xdfb1, 0xb9ad, 0xd2fd, 0xb8a5, 0xbaeb, 0xb3da,
- 0xb5dc, 0xd5c5, 0xc3d6, 0xcfd2, 0xbba1, 0xe5f3, 0xe5f2, 0xe5f4,
- 0xcde4, 0xc8f5, 0xb5af, 0xc7bf, 0xe5f6, 0xecb0, 0xe5e6, 0xb9e9,
- 0xb5b1, 0xc2bc, 0xe5e8, 0xe5e7, 0xe5e9, 0xd2cd, 0xe1ea, 0xd0ce,
- 0xcdae, 0xd1e5, 0xb2ca, 0xb1eb, 0xb1f2, 0xc5ed, 0xd5c3, 0xd3b0,
- 0xe1dc, 0xe1dd, 0xd2db, 0xb3b9, 0xb1cb, 0xcdf9, 0xd5f7, 0xe1de,
- 0xbeb6, 0xb4fd, 0xe1df, 0xbadc, 0xe1e0, 0xbbb2, 0xc2c9, 0xe1e1,
- 0xd0ec, 0xcdbd, 0xe1e2, 0xb5c3, 0xc5c7, 0xe1e3, 0xe1e4, 0xd3f9,
- 0xe1e5, 0xd1ad, 0xe1e6, 0xcea2, 0xe1e7, 0xb5c2, 0xe1e8, 0xbbd5,
- 0xd0c4, 0xe2e0, 0xb1d8, 0xd2e4, 0xe2e1, 0xbcc9, 0xc8cc, 0xe2e3,
- 0xecfe, 0xecfd, 0xdfaf, 0xe2e2, 0xd6be, 0xcdfc, 0xc3a6, 0xe3c3,
- 0xd6d2, 0xe2e7, 0xe2e8, 0xd3c7, 0xe2ec, 0xbfec, 0xe2ed, 0xe2e5,
- 0xb3c0, 0xc4ee, 0xe2ee, 0xd0c3, 0xbaf6, 0xe2e9, 0xb7de, 0xbbb3,
- 0xccac, 0xcbcb, 0xe2e4, 0xe2e6, 0xe2ea, 0xe2eb, 0xe2f7, 0xe2f4,
- 0xd4f5, 0xe2f3, 0xc5ad, 0xd5fa, 0xc5c2, 0xb2c0, 0xe2ef, 0xe2f2,
- 0xc1af, 0xcbbc, 0xb5a1, 0xe2f9, 0xbcb1, 0xe2f1, 0xd0d4, 0xd4b9,
- 0xe2f5, 0xb9d6, 0xe2f6, 0xc7d3, 0xe2f0, 0xd7dc, 0xeda1, 0xe2f8,
- 0xeda5, 0xe2fe, 0xcad1, 0xc1b5, 0xbbd0, 0xbfd6, 0xbae3, 0xcba1,
- 0xeda6, 0xeda3, 0xeda2, 0xbbd6, 0xeda7, 0xd0f4, 0xeda4, 0xbade,
- 0xb6f7, 0xe3a1, 0xb6b2, 0xccf1, 0xb9a7, 0xcfa2, 0xc7a1, 0xbfd2,
- 0xb6f1, 0xe2fa, 0xe2fb, 0xe2fd, 0xe2fc, 0xc4d5, 0xe3a2, 0xd3c1,
- 0xe3a7, 0xc7c4, 0xcfa4, 0xe3a9, 0xbab7, 0xe3a8, 0xbbda, 0xe3a3,
- 0xe3a4, 0xe3aa, 0xe3a6, 0xcef2, 0xd3c6, 0xbbbc, 0xd4c3, 0xc4fa,
- 0xeda8, 0xd0fc, 0xe3a5, 0xc3f5, 0xe3ad, 0xb1af, 0xe3b2, 0xbcc2,
- 0xe3ac, 0xb5bf, 0xc7e9, 0xe3b0, 0xbeaa, 0xcdef, 0xbbf3, 0xcce8,
- 0xe3af, 0xe3b1, 0xcfa7, 0xe3ae, 0xcea9, 0xbbdd, 0xb5eb, 0xbee5,
- 0xb2d2, 0xb3cd, 0xb1b9, 0xe3ab, 0xb2d1, 0xb5ac, 0xb9df, 0xb6e8,
- 0xcfeb, 0xe3b7, 0xbbcc, 0xc8c7, 0xd0ca, 0xe3b8, 0xb3ee, 0xeda9,
- 0xd3fa, 0xd3e4, 0xedaa, 0xe3b9, 0xd2e2, 0xe3b5, 0xd3de, 0xb8d0,
- 0xe3b3, 0xe3b6, 0xb7df, 0xe3b4, 0xc0a2, 0xe3ba, 0xd4b8, 0xb4c8,
- 0xe3bb, 0xbbc5, 0xc9f7, 0xc9e5, 0xc4bd, 0xedab, 0xc2fd, 0xbbdb,
- 0xbfae, 0xcebf, 0xe3bc, 0xbfb6, 0xb1ef, 0xd4f7, 0xe3be, 0xedad,
- 0xe3bf, 0xbaa9, 0xedac, 0xe3bd, 0xe3c0, 0xbab6, 0xb6ae, 0xd0b8,
- 0xb0c3, 0xedae, 0xedaf, 0xc0c1, 0xe3c1, 0xc5b3, 0xe3c2, 0xdcb2,
- 0xedb0, 0xb8ea, 0xceec, 0xeaa7, 0xd0e7, 0xcaf9, 0xc8d6, 0xcfb7,
- 0xb3c9, 0xced2, 0xbde4, 0xe3de, 0xbbf2, 0xeaa8, 0xd5bd, 0xc6dd,
- 0xeaa9, 0xeaaa, 0xeaac, 0xeaab, 0xeaae, 0xeaad, 0xbdd8, 0xeaaf,
- 0xc2be, 0xb4c1, 0xb4f7, 0xbba7, 0xece6, 0xece5, 0xb7bf, 0xcbf9,
- 0xb1e2, 0xece7, 0xc9c8, 0xece8, 0xece9, 0xcad6, 0xded0, 0xb2c5,
- 0xd4fa, 0xc6cb, 0xb0c7, 0xb4f2, 0xc8d3, 0xcdd0, 0xbfb8, 0xbfdb,
- 0xc7a4, 0xd6b4, 0xc0a9, 0xded1, 0xc9a8, 0xd1ef, 0xc5a4, 0xb0e7,
- 0xb3b6, 0xc8c5, 0xb0e2, 0xb7f6, 0xc5fa, 0xb6f3, 0xd5d2, 0xb3d0,
- 0xbcbc, 0xb3ad, 0xbef1, 0xb0d1, 0xd2d6, 0xcae3, 0xd7a5, 0xcdb6,
- 0xb6b6, 0xbfb9, 0xd5db, 0xb8a7, 0xc5d7, 0xded2, 0xbfd9, 0xc2d5,
- 0xc7c0, 0xbba4, 0xb1a8, 0xc5ea, 0xc5fb, 0xcca7, 0xb1a7, 0xb5d6,
- 0xc4a8, 0xded3, 0xd1ba, 0xb3e9, 0xc3f2, 0xb7f7, 0xd6f4, 0xb5a3,
- 0xb2f0, 0xc4b4, 0xc4e9, 0xc0ad, 0xded4, 0xb0e8, 0xc5c4, 0xc1e0,
- 0xb9d5, 0xbedc, 0xcdd8, 0xb0ce, 0xcdcf, 0xded6, 0xbed0, 0xd7be,
- 0xded5, 0xd5d0, 0xb0dd, 0xc4e2, 0xc2a3, 0xbcf0, 0xd3b5, 0xc0b9,
- 0xc5a1, 0xb2a6, 0xd4f1, 0xc0a8, 0xcac3, 0xded7, 0xd5fc, 0xb9b0,
- 0xc8ad, 0xcba9, 0xded9, 0xbfbd, 0xc6b4, 0xd7a7, 0xcab0, 0xc4c3,
- 0xb3d6, 0xb9d2, 0xd6b8, 0xeafc, 0xb0b4, 0xbfe6, 0xccf4, 0xcdda,
- 0xd6bf, 0xc2ce, 0xcece, 0xcca2, 0xd0ae, 0xc4d3, 0xb5b2, 0xded8,
- 0xd5f5, 0xbcb7, 0xbbd3, 0xb0a4, 0xc5b2, 0xb4ec, 0xd5f1, 0xeafd,
- 0xdeda, 0xcda6, 0xcdec, 0xcee6, 0xdedc, 0xcdb1, 0xc0a6, 0xd7bd,
- 0xdedb, 0xb0c6, 0xbab4, 0xc9d3, 0xc4f3, 0xbee8, 0xb2b6, 0xc0cc,
- 0xcbf0, 0xbcf1, 0xbbbb, 0xb5b7, 0xc5f5, 0xdee6, 0xdee3, 0xbedd,
- 0xdedf, 0xb4b7, 0xbddd, 0xdee0, 0xc4ed, 0xcfc6, 0xb5e0, 0xb6de,
- 0xcada, 0xb5f4, 0xdee5, 0xd5c6, 0xdee1, 0xcccd, 0xc6fe, 0xc5c5,
- 0xd2b4, 0xbef2, 0xc2d3, 0xccbd, 0xb3b8, 0xbdd3, 0xbfd8, 0xcdc6,
- 0xd1da, 0xb4eb, 0xdee4, 0xdedd, 0xdee7, 0xeafe, 0xc2b0, 0xdee2,
- 0xd6c0, 0xb5a7, 0xb2f4, 0xdee8, 0xdef2, 0xdeed, 0xdef1, 0xc8e0,
- 0xd7e1, 0xdeef, 0xc3e8, 0xcce1, 0xb2e5, 0xd2be, 0xdeee, 0xdeeb,
- 0xced5, 0xb4a7, 0xbfab, 0xbebe, 0xbdd2, 0xdee9, 0xd4ae, 0xdede,
- 0xdeea, 0xc0bf, 0xdeec, 0xb2f3, 0xb8e9, 0xc2a7, 0xbdc1, 0xdef5,
- 0xdef8, 0xb2ab, 0xb4a4, 0xb4ea, 0xc9a6, 0xdef6, 0xcbd1, 0xb8e3,
- 0xdef7, 0xdefa, 0xdef9, 0xccc2, 0xb0e1, 0xb4ee, 0xe5ba, 0xd0af,
- 0xb2eb, 0xeba1, 0xdef4, 0xc9e3, 0xdef3, 0xb0da, 0xd2a1, 0xb1f7,
- 0xccaf, 0xdef0, 0xcba4, 0xd5aa, 0xdefb, 0xb4dd, 0xc4a6, 0xdefd,
- 0xc3fe, 0xc4a1, 0xdfa1, 0xc1cc, 0xdefc, 0xbeef, 0xc6b2, 0xb3c5,
- 0xc8f6, 0xcbba, 0xdefe, 0xdfa4, 0xd7b2, 0xb3b7, 0xc1c3, 0xc7cb,
- 0xb2a5, 0xb4e9, 0xd7ab, 0xc4ec, 0xdfa2, 0xdfa3, 0xdfa5, 0xbab3,
- 0xdfa6, 0xc0de, 0xc9c3, 0xb2d9, 0xc7e6, 0xdfa7, 0xc7dc, 0xdfa8,
- 0xeba2, 0xcbd3, 0xdfaa, 0xdfa9, 0xb2c1, 0xc5ca, 0xdfab, 0xd4dc,
- 0xc8c1, 0xdfac, 0xbef0, 0xdfad, 0xd6a7, 0xeab7, 0xebb6, 0xcad5,
- 0xd8fc, 0xb8c4, 0xb9a5, 0xb7c5, 0xd5fe, 0xb9ca, 0xd0a7, 0xf4cd,
- 0xb5d0, 0xc3f4, 0xbec8, 0xebb7, 0xb0bd, 0xbdcc, 0xc1b2, 0xb1d6,
- 0xb3a8, 0xb8d2, 0xc9a2, 0xb6d8, 0xebb8, 0xbeb4, 0xcafd, 0xc7c3,
- 0xd5fb, 0xb7f3, 0xcec4, 0xd5ab, 0xb1f3, 0xecb3, 0xb0df, 0xecb5,
- 0xb6b7, 0xc1cf, 0xf5fa, 0xd0b1, 0xd5e5, 0xced3, 0xbdef, 0xb3e2,
- 0xb8ab, 0xd5b6, 0xedbd, 0xb6cf, 0xcbb9, 0xd0c2, 0xb7bd, 0xecb6,
- 0xcaa9, 0xc5d4, 0xecb9, 0xecb8, 0xc2c3, 0xecb7, 0xd0fd, 0xecba,
- 0xecbb, 0xd7e5, 0xecbc, 0xecbd, 0xc6ec, 0xcede, 0xbcc8, 0xc8d5,
- 0xb5a9, 0xbec9, 0xd6bc, 0xd4e7, 0xd1ae, 0xd0f1, 0xeab8, 0xeab9,
- 0xeaba, 0xbab5, 0xcab1, 0xbff5, 0xcdfa, 0xeac0, 0xb0ba, 0xeabe,
- 0xc0a5, 0xeabb, 0xb2fd, 0xc3f7, 0xbbe8, 0xd2d7, 0xcef4, 0xeabf,
- 0xeabc, 0xeac3, 0xd0c7, 0xd3b3, 0xb4ba, 0xc3c1, 0xd7f2, 0xd5d1,
- 0xcac7, 0xeac5, 0xeac4, 0xeac7, 0xeac6, 0xd6e7, 0xcfd4, 0xeacb,
- 0xbbce, 0xbdfa, 0xc9ce, 0xeacc, 0xc9b9, 0xcffe, 0xeaca, 0xd4ce,
- 0xeacd, 0xeacf, 0xcded, 0xeac9, 0xeace, 0xceee, 0xbbde, 0xb3bf,
- 0xc6d5, 0xbeb0, 0xcefa, 0xc7e7, 0xbea7, 0xead0, 0xd6c7, 0xc1c0,
- 0xd4dd, 0xead1, 0xcfbe, 0xead2, 0xcaee, 0xc5af, 0xb0b5, 0xead4,
- 0xead3, 0xf4df, 0xc4ba, 0xb1a9, 0xe5df, 0xead5, 0xcaef, 0xead6,
- 0xead7, 0xc6d8, 0xead8, 0xead9, 0xd4bb, 0xc7fa, 0xd2b7, 0xb8fc,
- 0xeac2, 0xb2dc, 0xc2fc, 0xd4f8, 0xcce6, 0xd7ee, 0xd4c2, 0xd3d0,
- 0xebc3, 0xc5f3, 0xb7fe, 0xebd4, 0xcbb7, 0xebde, 0xc0ca, 0xcdfb,
- 0xb3af, 0xc6da, 0xebfc, 0xc4be, 0xceb4, 0xc4a9, 0xb1be, 0xd4fd,
- 0xcaf5, 0xd6ec, 0xc6d3, 0xb6e4, 0xbbfa, 0xd0e0, 0xc9b1, 0xd4d3,
- 0xc8a8, 0xb8cb, 0xe8be, 0xc9bc, 0xe8bb, 0xc0ee, 0xd0d3, 0xb2c4,
- 0xb4e5, 0xe8bc, 0xd5c8, 0xb6c5, 0xe8bd, 0xcaf8, 0xb8dc, 0xccf5,
- 0xc0b4, 0xd1ee, 0xe8bf, 0xe8c2, 0xbabc, 0xb1ad, 0xbddc, 0xeabd,
- 0xe8c3, 0xe8c6, 0xe8cb, 0xe8cc, 0xcbc9, 0xb0e5, 0xbcab, 0xb9b9,
- 0xe8c1, 0xcdf7, 0xe8ca, 0xcef6, 0xd5ed, 0xc1d6, 0xe8c4, 0xc3b6,
- 0xb9fb, 0xd6a6, 0xe8c8, 0xcae0, 0xd4e6, 0xe8c0, 0xe8c5, 0xe8c7,
- 0xc7b9, 0xb7e3, 0xe8c9, 0xbfdd, 0xe8d2, 0xe8d7, 0xe8d5, 0xbcdc,
- 0xbccf, 0xe8db, 0xe8de, 0xe8da, 0xb1fa, 0xb0d8, 0xc4b3, 0xb8cc,
- 0xc6e2, 0xc8be, 0xc8e1, 0xe8cf, 0xe8d4, 0xe8d6, 0xb9f1, 0xe8d8,
- 0xd7f5, 0xc4fb, 0xe8dc, 0xb2e9, 0xe8d1, 0xbced, 0xbfc2, 0xe8cd,
- 0xd6f9, 0xc1f8, 0xb2f1, 0xe8df, 0xcac1, 0xe8d9, 0xd5a4, 0xb1ea,
- 0xd5bb, 0xe8ce, 0xe8d0, 0xb6b0, 0xe8d3, 0xe8dd, 0xc0b8, 0xcaf7,
- 0xcba8, 0xc6dc, 0xc0f5, 0xe8e9, 0xd0a3, 0xe8f2, 0xd6ea, 0xe8e0,
- 0xe8e1, 0xd1f9, 0xbacb, 0xb8f9, 0xb8f1, 0xd4d4, 0xe8ef, 0xe8ee,
- 0xe8ec, 0xb9f0, 0xccd2, 0xe8e6, 0xcea6, 0xbff2, 0xb0b8, 0xe8f1,
- 0xe8f0, 0xd7c0, 0xe8e4, 0xcda9, 0xc9a3, 0xbbb8, 0xbddb, 0xe8ea,
- 0xe8e2, 0xe8e3, 0xe8e5, 0xb5b5, 0xe8e7, 0xc7c5, 0xe8eb, 0xe8ed,
- 0xbdb0, 0xd7ae, 0xe8f8, 0xe8f5, 0xcdb0, 0xe8f6, 0xc1ba, 0xe8e8,
- 0xc3b7, 0xb0f0, 0xe8f4, 0xe8f7, 0xb9a3, 0xc9d2, 0xc3ce, 0xcee0,
- 0xc0e6, 0xcbf3, 0xccdd, 0xd0b5, 0xcae1, 0xe8f3, 0xbcec, 0xe8f9,
- 0xc3de, 0xc6e5, 0xb9f7, 0xb0f4, 0xd7d8, 0xbcac, 0xc5ef, 0xccc4,
- 0xe9a6, 0xc9ad, 0xe9a2, 0xc0e2, 0xbfc3, 0xe8fe, 0xb9d7, 0xe8fb,
- 0xe9a4, 0xd2ce, 0xe9a3, 0xd6b2, 0xd7b5, 0xe9a7, 0xbdb7, 0xe8fc,
- 0xe8fd, 0xe9a1, 0xcdd6, 0xd2ac, 0xe9b2, 0xe9a9, 0xb4aa, 0xb4bb,
- 0xe9ab, 0xd0a8, 0xe9a5, 0xb3fe, 0xe9ac, 0xc0e3, 0xe9aa, 0xe9b9,
- 0xe9b8, 0xe9ae, 0xe8fa, 0xe9a8, 0xbfac, 0xe9b1, 0xe9ba, 0xc2a5,
- 0xe9af, 0xb8c5, 0xe9ad, 0xd3dc, 0xe9b4, 0xe9b5, 0xe9b7, 0xe9c7,
- 0xc0c6, 0xe9c5, 0xe9b0, 0xe9bb, 0xb0f1, 0xe9bc, 0xd5a5, 0xe9be,
- 0xe9bf, 0xe9c1, 0xc1f1, 0xc8b6, 0xe9bd, 0xe9c2, 0xe9c3, 0xe9b3,
- 0xe9b6, 0xbbb1, 0xe9c0, 0xbcf7, 0xe9c4, 0xe9c6, 0xe9ca, 0xe9ce,
- 0xb2db, 0xe9c8, 0xb7ae, 0xe9cb, 0xe9cc, 0xd5c1, 0xc4a3, 0xe9d8,
- 0xbae1, 0xe9c9, 0xd3a3, 0xe9d4, 0xe9d7, 0xe9d0, 0xe9cf, 0xc7c1,
- 0xe9d2, 0xe9d9, 0xb3c8, 0xe9d3, 0xcff0, 0xe9cd, 0xb3f7, 0xe9d6,
- 0xe9da, 0xccb4, 0xcfad, 0xe9d5, 0xe9dc, 0xe9db, 0xe9de, 0xe9d1,
- 0xe9dd, 0xe9df, 0xc3ca, 0xc7b7, 0xb4ce, 0xbbb6, 0xd0c0, 0xeca3,
- 0xc5b7, 0xd3fb, 0xeca4, 0xeca5, 0xc6db, 0xbfee, 0xeca6, 0xeca7,
- 0xd0aa, 0xc7b8, 0xb8e8, 0xeca8, 0xd6b9, 0xd5fd, 0xb4cb, 0xb2bd,
- 0xcee4, 0xc6e7, 0xcde1, 0xb4f5, 0xcbc0, 0xbcdf, 0xe9e2, 0xe9e3,
- 0xd1ea, 0xe9e5, 0xb4f9, 0xe9e4, 0xd1b3, 0xcae2, 0xb2d0, 0xe9e8,
- 0xe9e6, 0xe9e7, 0xd6b3, 0xe9e9, 0xe9ea, 0xe9eb, 0xe9ec, 0xecaf,
- 0xc5b9, 0xb6ce, 0xd2f3, 0xb5ee, 0xbbd9, 0xecb1, 0xd2e3, 0xcee3,
- 0xc4b8, 0xc3bf, 0xb6be, 0xd8b9, 0xb1c8, 0xb1cf, 0xb1d1, 0xc5fe,
- 0xb1d0, 0xc3ab, 0xd5b1, 0xeba4, 0xbac1, 0xccba, 0xeba5, 0xeba7,
- 0xeba8, 0xeba6, 0xeba9, 0xebab, 0xebaa, 0xebac, 0xcacf, 0xd8b5,
- 0xc3f1, 0xc3a5, 0xc6f8, 0xebad, 0xc4ca, 0xebae, 0xebaf, 0xebb0,
- 0xb7d5, 0xb7fa, 0xebb1, 0xc7e2, 0xebb3, 0xbaa4, 0xd1f5, 0xb0b1,
- 0xebb2, 0xebb4, 0xb5aa, 0xc2c8, 0xc7e8, 0xebb5, 0xcbae, 0xe3df,
- 0xd3c0, 0xd9db, 0xcda1, 0xd6ad, 0xc7f3, 0xd9e0, 0xbbe3, 0xbaba,
- 0xe3e2, 0xcfab, 0xe3e0, 0xc9c7, 0xbab9, 0xd1b4, 0xe3e1, 0xc8ea,
- 0xb9af, 0xbdad, 0xb3d8, 0xcedb, 0xccc0, 0xe3e8, 0xe3e9, 0xcdf4,
- 0xccad, 0xbcb3, 0xe3ea, 0xe3eb, 0xd0da, 0xc6fb, 0xb7da, 0xc7df,
- 0xd2ca, 0xced6, 0xe3e4, 0xe3ec, 0xc9f2, 0xb3c1, 0xe3e7, 0xc6e3,
- 0xe3e5, 0xedb3, 0xe3e6, 0xc9b3, 0xc5e6, 0xb9b5, 0xc3bb, 0xe3e3,
- 0xc5bd, 0xc1a4, 0xc2d9, 0xb2d7, 0xe3ed, 0xbba6, 0xc4ad, 0xe3f0,
- 0xbeda, 0xe3fb, 0xe3f5, 0xbad3, 0xb7d0, 0xd3cd, 0xd6ce, 0xd5d3,
- 0xb9c1, 0xd5b4, 0xd1d8, 0xd0b9, 0xc7f6, 0xc8aa, 0xb2b4, 0xc3da,
- 0xe3ee, 0xe3fc, 0xe3ef, 0xb7a8, 0xe3f7, 0xe3f4, 0xb7ba, 0xc5a2,
- 0xe3f6, 0xc5dd, 0xb2a8, 0xc6fc, 0xc4e0, 0xd7a2, 0xc0e1, 0xe3f9,
- 0xe3fa, 0xe3fd, 0xcca9, 0xe3f3, 0xd3be, 0xb1c3, 0xedb4, 0xe3f1,
- 0xe3f2, 0xe3f8, 0xd0ba, 0xc6c3, 0xd4f3, 0xe3fe, 0xbde0, 0xe4a7,
- 0xe4a6, 0xd1f3, 0xe4a3, 0xe4a9, 0xc8f7, 0xcfb4, 0xe4a8, 0xe4ae,
- 0xc2e5, 0xb6b4, 0xbdf2, 0xe4a2, 0xbae9, 0xe4aa, 0xe4ac, 0xb6fd,
- 0xd6de, 0xe4b2, 0xe4ad, 0xe4a1, 0xbbee, 0xcddd, 0xc7a2, 0xc5c9,
- 0xc1f7, 0xe4a4, 0xc7b3, 0xbdac, 0xbdbd, 0xe4a5, 0xd7c7, 0xb2e2,
- 0xe4ab, 0xbcc3, 0xe4af, 0xbbeb, 0xe4b0, 0xc5a8, 0xe4b1, 0xd5e3,
- 0xbfa3, 0xe4ba, 0xe4b7, 0xe4bb, 0xe4bd, 0xc6d6, 0xbac6, 0xc0cb,
- 0xb8a1, 0xe4b4, 0xd4a1, 0xbaa3, 0xbdfe, 0xe4bc, 0xcdbf, 0xc4f9,
- 0xcffb, 0xc9e6, 0xd3bf, 0xcfd1, 0xe4b3, 0xe4b8, 0xe4b9, 0xcce9,
- 0xccce, 0xc0d4, 0xe4b5, 0xc1b0, 0xe4b6, 0xced0, 0xbbc1, 0xb5d3,
- 0xc8f3, 0xbda7, 0xd5c7, 0xc9ac, 0xb8a2, 0xe4ca, 0xe4cc, 0xd1c4,
- 0xd2ba, 0xbaad, 0xbad4, 0xe4c3, 0xb5ed, 0xd7cd, 0xe4c0, 0xcffd,
- 0xe4bf, 0xc1dc, 0xccca, 0xcae7, 0xc4d7, 0xccd4, 0xe4c8, 0xe4c7,
- 0xe4c1, 0xe4c4, 0xb5ad, 0xd3d9, 0xe4c6, 0xd2f9, 0xb4e3, 0xbbb4,
- 0xc9ee, 0xb4be, 0xbbec, 0xd1cd, 0xcced, 0xedb5, 0xc7e5, 0xd4a8,
- 0xe4cb, 0xd7d5, 0xe4c2, 0xbda5, 0xe4c5, 0xd3e6, 0xe4c9, 0xc9f8,
- 0xe4be, 0xd3e5, 0xc7fe, 0xb6c9, 0xd4fc, 0xb2b3, 0xe4d7, 0xcec2,
- 0xe4cd, 0xcebc, 0xb8db, 0xe4d6, 0xbfca, 0xd3ce, 0xc3ec, 0xc5c8,
- 0xe4d8, 0xcdc4, 0xe4cf, 0xe4d4, 0xe4d5, 0xbafe, 0xcfe6, 0xd5bf,
- 0xe4d2, 0xe4d0, 0xe4ce, 0xcde5, 0xcaaa, 0xc0a3, 0xbda6, 0xe4d3,
- 0xb8c8, 0xe4e7, 0xd4b4, 0xe4db, 0xc1ef, 0xe4e9, 0xd2e7, 0xe4df,
- 0xe4e0, 0xcfaa, 0xcbdd, 0xe4da, 0xe4d1, 0xe4e5, 0xc8dc, 0xe4e3,
- 0xc4e7, 0xe4e2, 0xe4e1, 0xb3fc, 0xe4e8, 0xb5e1, 0xd7cc, 0xe4e6,
- 0xbbac, 0xd7d2, 0xcccf, 0xebf8, 0xe4e4, 0xb9f6, 0xd6cd, 0xe4d9,
- 0xe4dc, 0xc2fa, 0xe4de, 0xc2cb, 0xc0c4, 0xc2d0, 0xb1f5, 0xccb2,
- 0xb5ce, 0xe4ef, 0xc6af, 0xc6e1, 0xe4f5, 0xc2a9, 0xc0ec, 0xd1dd,
- 0xe4ee, 0xc4ae, 0xe4ed, 0xe4f6, 0xe4f4, 0xc2fe, 0xe4dd, 0xe4f0,
- 0xcafe, 0xd5c4, 0xe4f1, 0xd1fa, 0xe4eb, 0xe4ec, 0xe4f2, 0xceab,
- 0xc5cb, 0xc7b1, 0xc2ba, 0xe4ea, 0xc1ca, 0xccb6, 0xb3b1, 0xe4fb,
- 0xe4f3, 0xe4fa, 0xe4fd, 0xe4fc, 0xb3ce, 0xb3ba, 0xe4f7, 0xe4f9,
- 0xe4f8, 0xc5ec, 0xc0bd, 0xd4e8, 0xe5a2, 0xb0c4, 0xe5a4, 0xe5a3,
- 0xbca4, 0xe5a5, 0xe5a1, 0xe4fe, 0xb1f4, 0xe5a8, 0xe5a9, 0xe5a6,
- 0xe5a7, 0xe5aa, 0xc6d9, 0xe5ab, 0xe5ad, 0xe5ac, 0xe5af, 0xe5ae,
- 0xb9e0, 0xe5b0, 0xe5b1, 0xbbf0, 0xece1, 0xc3f0, 0xb5c6, 0xbbd2,
- 0xc1e9, 0xd4ee, 0xbec4, 0xd7c6, 0xd4d6, 0xb2d3, 0xecbe, 0xeac1,
- 0xc2af, 0xb4b6, 0xd1d7, 0xb3b4, 0xc8b2, 0xbfbb, 0xecc0, 0xd6cb,
- 0xecbf, 0xecc1, 0xecc5, 0xbee6, 0xccbf, 0xc5da, 0xbebc, 0xecc6,
- 0xb1fe, 0xecc4, 0xd5a8, 0xb5e3, 0xecc2, 0xc1b6, 0xb3e3, 0xecc3,
- 0xcbb8, 0xc0c3, 0xccfe, 0xc1d2, 0xecc8, 0xbae6, 0xc0d3, 0xd6f2,
- 0xd1cc, 0xbfbe, 0xb7b3, 0xc9d5, 0xecc7, 0xbbe2, 0xcccc, 0xbdfd,
- 0xc8c8, 0xcfa9, 0xcde9, 0xc5eb, 0xb7e9, 0xd1c9, 0xbab8, 0xecc9,
- 0xecca, 0xbbc0, 0xeccb, 0xece2, 0xb1ba, 0xb7d9, 0xbdb9, 0xeccc,
- 0xd1e6, 0xeccd, 0xc8bb, 0xecd1, 0xecd3, 0xbbcd, 0xbce5, 0xeccf,
- 0xc9b7, 0xc3ba, 0xece3, 0xd5d5, 0xecd0, 0xd6f3, 0xecd2, 0xecce,
- 0xecd4, 0xecd5, 0xc9bf, 0xcfa8, 0xd0dc, 0xd1ac, 0xc8db, 0xecd6,
- 0xcef5, 0xcaec, 0xecda, 0xecd9, 0xb0be, 0xecd7, 0xecd8, 0xece4,
- 0xc8bc, 0xc1c7, 0xecdc, 0xd1e0, 0xecdb, 0xd4ef, 0xecdd, 0xdbc6,
- 0xecde, 0xb1ac, 0xecdf, 0xece0, 0xd7a6, 0xc5c0, 0xebbc, 0xb0ae,
- 0xbef4, 0xb8b8, 0xd2af, 0xb0d6, 0xb5f9, 0xd8b3, 0xcbac, 0xe3dd,
- 0xc6ac, 0xb0e6, 0xc5c6, 0xebb9, 0xebba, 0xebbb, 0xd1c0, 0xc5a3,
- 0xeaf2, 0xc4b2, 0xc4b5, 0xc0ce, 0xeaf3, 0xc4c1, 0xceef, 0xeaf0,
- 0xeaf4, 0xc9fc, 0xc7a3, 0xccd8, 0xcefe, 0xeaf5, 0xeaf6, 0xcfac,
- 0xc0e7, 0xeaf7, 0xb6bf, 0xeaf8, 0xeaf9, 0xeafa, 0xeafb, 0xeaf1,
- 0xc8ae, 0xe1eb, 0xb7b8, 0xe1ec, 0xe1ed, 0xd7b4, 0xe1ee, 0xe1ef,
- 0xd3cc, 0xe1f1, 0xbff1, 0xe1f0, 0xb5d2, 0xb1b7, 0xe1f3, 0xe1f2,
- 0xbafc, 0xe1f4, 0xb9b7, 0xbed1, 0xc4fc, 0xbadd, 0xbdc6, 0xe1f5,
- 0xe1f7, 0xb6c0, 0xcfc1, 0xcaa8, 0xe1f6, 0xd5f8, 0xd3fc, 0xe1f8,
- 0xe1fc, 0xe1f9, 0xe1fa, 0xc0ea, 0xe1fe, 0xe2a1, 0xc0c7, 0xe1fb,
- 0xe1fd, 0xe2a5, 0xc1d4, 0xe2a3, 0xe2a8, 0xb2fe, 0xe2a2, 0xc3cd,
- 0xb2c2, 0xe2a7, 0xe2a6, 0xe2a4, 0xe2a9, 0xe2ab, 0xd0c9, 0xd6ed,
- 0xc3a8, 0xe2ac, 0xcfd7, 0xe2ae, 0xbaef, 0xe9e0, 0xe2ad, 0xe2aa,
- 0xbbab, 0xd4b3, 0xe2b0, 0xe2af, 0xe9e1, 0xe2b1, 0xe2b2, 0xe2b3,
- 0xcca1, 0xe2b4, 0xe2b5, 0xd0fe, 0xc2ca, 0xd3f1, 0xcdf5, 0xe7e0,
- 0xe7e1, 0xbec1, 0xc2ea, 0xe7e4, 0xe7e3, 0xcde6, 0xc3b5, 0xe7e2,
- 0xbbb7, 0xcfd6, 0xc1e1, 0xe7e9, 0xe7e8, 0xe7f4, 0xb2a3, 0xe7ea,
- 0xe7e6, 0xe7ec, 0xe7eb, 0xc9ba, 0xd5e4, 0xe7e5, 0xb7a9, 0xe7e7,
- 0xe7ee, 0xe7f3, 0xd6e9, 0xe7ed, 0xe7f2, 0xe7f1, 0xb0e0, 0xe7f5,
- 0xc7f2, 0xc0c5, 0xc0ed, 0xc1f0, 0xe7f0, 0xe7f6, 0xcbf6, 0xe8a2,
- 0xe8a1, 0xd7c1, 0xe7fa, 0xe7f9, 0xe7fb, 0xe7f7, 0xe7fe, 0xe7fd,
- 0xe7fc, 0xc1d5, 0xc7d9, 0xc5fd, 0xc5c3, 0xc7ed, 0xe8a3, 0xe8a6,
- 0xe8a5, 0xe8a7, 0xbaf7, 0xe7f8, 0xe8a4, 0xc8f0, 0xc9aa, 0xe8a9,
- 0xb9e5, 0xd1fe, 0xe8a8, 0xe8aa, 0xe8ad, 0xe8ae, 0xc1a7, 0xe8af,
- 0xe8b0, 0xe8ac, 0xe8b4, 0xe8ab, 0xe8b1, 0xe8b5, 0xe8b2, 0xe8b3,
- 0xe8b7, 0xe8b6, 0xb9cf, 0xf0ac, 0xf0ad, 0xc6b0, 0xb0ea, 0xc8bf,
- 0xcddf, 0xcecd, 0xeab1, 0xeab2, 0xc6bf, 0xb4c9, 0xeab3, 0xd5e7,
- 0xddf9, 0xeab4, 0xeab5, 0xeab6, 0xb8ca, 0xdfb0, 0xc9f5, 0xccf0,
- 0xc9fa, 0xc9fb, 0xd3c3, 0xcba6, 0xb8a6, 0xf0ae, 0xb1c2, 0xe5b8,
- 0xccef, 0xd3c9, 0xbcd7, 0xc9ea, 0xb5e7, 0xc4d0, 0xb5e9, 0xeeae,
- 0xbbad, 0xe7de, 0xeeaf, 0xb3a9, 0xeeb2, 0xeeb1, 0xbde7, 0xeeb0,
- 0xceb7, 0xc5cf, 0xc1f4, 0xdbce, 0xeeb3, 0xd0f3, 0xc2d4, 0xc6e8,
- 0xb7ac, 0xeeb4, 0xb3eb, 0xbbfb, 0xeeb5, 0xe7dc, 0xeeb6, 0xbdae,
- 0xf1e2, 0xcae8, 0xd2c9, 0xf0da, 0xf0db, 0xf0dc, 0xc1c6, 0xb8ed,
- 0xbece, 0xf0de, 0xc5b1, 0xf0dd, 0xd1f1, 0xf0e0, 0xb0cc, 0xbdea,
- 0xd2df, 0xf0df, 0xb4af, 0xb7e8, 0xf0e6, 0xf0e5, 0xc6a3, 0xf0e1,
- 0xf0e2, 0xb4c3, 0xf0e3, 0xd5ee, 0xccdb, 0xbed2, 0xbcb2, 0xf0e8,
- 0xf0e7, 0xf0e4, 0xb2a1, 0xd6a2, 0xd3b8, 0xbeb7, 0xc8ac, 0xf0ea,
- 0xd1f7, 0xd6cc, 0xbadb, 0xf0e9, 0xb6bb, 0xcdb4, 0xc6a6, 0xc1a1,
- 0xf0eb, 0xf0ee, 0xf0ed, 0xf0f0, 0xf0ec, 0xbbbe, 0xf0ef, 0xccb5,
- 0xf0f2, 0xb3d5, 0xb1d4, 0xf0f3, 0xf0f4, 0xf0f6, 0xb4e1, 0xf0f1,
- 0xf0f7, 0xf0fa, 0xf0f8, 0xf0f5, 0xf0fd, 0xf0f9, 0xf0fc, 0xf0fe,
- 0xf1a1, 0xcec1, 0xf1a4, 0xf1a3, 0xc1f6, 0xf0fb, 0xcadd, 0xb4f1,
- 0xb1f1, 0xccb1, 0xf1a6, 0xf1a7, 0xf1ac, 0xd5ce, 0xf1a9, 0xc8b3,
- 0xf1a2, 0xf1ab, 0xf1a8, 0xf1a5, 0xf1aa, 0xb0a9, 0xf1ad, 0xf1af,
- 0xf1b1, 0xf1b0, 0xf1ae, 0xd1a2, 0xf1b2, 0xf1b3, 0xb9ef, 0xb5c7,
- 0xb0d7, 0xb0d9, 0xd4ed, 0xb5c4, 0xbdd4, 0xbbca, 0xf0a7, 0xb8de,
- 0xf0a8, 0xb0a8, 0xf0a9, 0xcdee, 0xf0aa, 0xf0ab, 0xc6a4, 0xd6e5,
- 0xf1e4, 0xf1e5, 0xc3f3, 0xd3db, 0xd6d1, 0xc5e8, 0xd3af, 0xd2e6,
- 0xeec1, 0xb0bb, 0xd5b5, 0xd1ce, 0xbce0, 0xbad0, 0xbff8, 0xb8c7,
- 0xb5c1, 0xc5cc, 0xcaa2, 0xc3cb, 0xeec2, 0xc4bf, 0xb6a2, 0xedec,
- 0xc3a4, 0xd6b1, 0xcfe0, 0xedef, 0xc5ce, 0xb6dc, 0xcaa1, 0xeded,
- 0xedf0, 0xedf1, 0xc3bc, 0xbfb4, 0xedee, 0xedf4, 0xedf2, 0xd5e6,
- 0xc3df, 0xedf3, 0xedf6, 0xd5a3, 0xd1a3, 0xedf5, 0xc3d0, 0xedf7,
- 0xbff4, 0xbeec, 0xedf8, 0xccf7, 0xd1db, 0xd7c5, 0xd5f6, 0xedfc,
- 0xedfb, 0xedf9, 0xedfa, 0xedfd, 0xbea6, 0xcbaf, 0xeea1, 0xb6bd,
- 0xeea2, 0xc4c0, 0xedfe, 0xbdde, 0xb2c7, 0xb6c3, 0xeea5, 0xd8ba,
- 0xeea3, 0xeea6, 0xc3e9, 0xb3f2, 0xeea7, 0xeea4, 0xcfb9, 0xeea8,
- 0xc2f7, 0xeea9, 0xeeaa, 0xdeab, 0xc6b3, 0xc7c6, 0xd6f5, 0xb5c9,
- 0xcbb2, 0xeeab, 0xcdab, 0xeeac, 0xd5b0, 0xeead, 0xf6c4, 0xdbc7,
- 0xb4a3, 0xc3ac, 0xf1e6, 0xcab8, 0xd2d3, 0xd6aa, 0xeff2, 0xbed8,
- 0xbdc3, 0xeff3, 0xb6cc, 0xb0ab, 0xcaaf, 0xedb6, 0xedb7, 0xcef9,
- 0xb7af, 0xbff3, 0xedb8, 0xc2eb, 0xc9b0, 0xedb9, 0xc6f6, 0xbfb3,
- 0xedbc, 0xc5f8, 0xd1d0, 0xd7a9, 0xedba, 0xedbb, 0xd1e2, 0xedbf,
- 0xedc0, 0xedc4, 0xedc8, 0xedc6, 0xedce, 0xd5e8, 0xedc9, 0xedc7,
- 0xedbe, 0xc5e9, 0xc6c6, 0xc9e9, 0xd4d2, 0xedc1, 0xedc2, 0xedc3,
- 0xedc5, 0xc0f9, 0xb4a1, 0xb9e8, 0xedd0, 0xedd1, 0xedca, 0xedcf,
- 0xcef8, 0xcbb6, 0xedcc, 0xedcd, 0xcff5, 0xedd2, 0xc1f2, 0xd3b2,
- 0xedcb, 0xc8b7, 0xbcef, 0xc5f0, 0xedd6, 0xb5ef, 0xc2b5, 0xb0ad,
- 0xcbe9, 0xb1ae, 0xedd4, 0xcdeb, 0xb5e2, 0xedd5, 0xedd3, 0xedd7,
- 0xb5fa, 0xedd8, 0xedd9, 0xeddc, 0xb1cc, 0xc5f6, 0xbcee, 0xedda,
- 0xccbc, 0xb2ea, 0xeddb, 0xc4eb, 0xb4c5, 0xb0f5, 0xeddf, 0xc0da,
- 0xb4e8, 0xc5cd, 0xeddd, 0xbfc4, 0xedde, 0xc4a5, 0xede0, 0xede1,
- 0xede3, 0xc1d7, 0xbbc7, 0xbdb8, 0xede2, 0xede4, 0xede6, 0xede5,
- 0xede7, 0xcabe, 0xecea, 0xc0f1, 0xc9e7, 0xeceb, 0xc6ee, 0xecec,
- 0xc6ed, 0xeced, 0xecf0, 0xd7e6, 0xecf3, 0xecf1, 0xecee, 0xecef,
- 0xd7a3, 0xc9f1, 0xcbee, 0xecf4, 0xecf2, 0xcfe9, 0xecf6, 0xc6b1,
- 0xbcc0, 0xecf5, 0xb5bb, 0xbbf6, 0xecf7, 0xd9f7, 0xbdfb, 0xc2bb,
- 0xecf8, 0xecf9, 0xb8a3, 0xecfa, 0xecfb, 0xecfc, 0xd3ed, 0xd8ae,
- 0xc0eb, 0xc7dd, 0xbacc, 0xd0e3, 0xcbbd, 0xcdba, 0xb8d1, 0xb1fc,
- 0xc7ef, 0xd6d6, 0xbfc6, 0xc3eb, 0xeff5, 0xc3d8, 0xd7e2, 0xeff7,
- 0xb3d3, 0xc7d8, 0xd1ed, 0xd6c8, 0xeff8, 0xeff6, 0xbbfd, 0xb3c6,
- 0xbdd5, 0xd2c6, 0xbbe0, 0xcfa1, 0xeffc, 0xeffb, 0xeff9, 0xb3cc,
- 0xc9d4, 0xcbb0, 0xeffe, 0xb0de, 0xd6c9, 0xeffd, 0xb3ed, 0xf6d5,
- 0xcec8, 0xf0a2, 0xf0a1, 0xb5be, 0xbcda, 0xbbfc, 0xb8e5, 0xc4c2,
- 0xf0a3, 0xcbeb, 0xf0a6, 0xd1a8, 0xbebf, 0xc7ee, 0xf1b6, 0xf1b7,
- 0xbfd5, 0xb4a9, 0xf1b8, 0xcdbb, 0xc7d4, 0xd5ad, 0xf1b9, 0xf1ba,
- 0xc7cf, 0xd2a4, 0xd6cf, 0xf1bb, 0xbdd1, 0xb4b0, 0xbebd, 0xb4dc,
- 0xced1, 0xbfdf, 0xf1bd, 0xbffa, 0xf1bc, 0xf1bf, 0xf1be, 0xf1c0,
- 0xf1c1, 0xc1fe, 0xc1a2, 0xcafa, 0xd5be, 0xbeba, 0xbeb9, 0xd5c2,
- 0xbfa2, 0xcdaf, 0xf1b5, 0xbddf, 0xb6cb, 0xd6f1, 0xf3c3, 0xf3c4,
- 0xb8cd, 0xf3c6, 0xf3c7, 0xb0ca, 0xf3c5, 0xf3c9, 0xcbf1, 0xf3cb,
- 0xd0a6, 0xb1ca, 0xf3c8, 0xf3cf, 0xb5d1, 0xf3d7, 0xf3d2, 0xf3d4,
- 0xf3d3, 0xb7fb, 0xb1bf, 0xf3ce, 0xf3ca, 0xb5da, 0xf3d0, 0xf3d1,
- 0xf3d5, 0xf3cd, 0xbce3, 0xc1fd, 0xf3d6, 0xf3da, 0xf3cc, 0xb5c8,
- 0xbdee, 0xf3dc, 0xb7a4, 0xbff0, 0xd6fe, 0xcdb2, 0xb4f0, 0xb2df,
- 0xf3d8, 0xf3d9, 0xc9b8, 0xf3dd, 0xf3de, 0xf3e1, 0xf3df, 0xf3e3,
- 0xf3e2, 0xf3db, 0xbfea, 0xb3ef, 0xf3e0, 0xc7a9, 0xbcf2, 0xf3eb,
- 0xb9bf, 0xf3e4, 0xb2ad, 0xbbfe, 0xcbe3, 0xf3ed, 0xf3e9, 0xb9dc,
- 0xf3ee, 0xf3e5, 0xf3e6, 0xf3ea, 0xc2e1, 0xf3ec, 0xf3ef, 0xf3e8,
- 0xbcfd, 0xcfe4, 0xf3f0, 0xf3e7, 0xf3f2, 0xd7ad, 0xc6aa, 0xf3f3,
- 0xf3f1, 0xc2a8, 0xb8dd, 0xf3f5, 0xf3f4, 0xb4db, 0xf3f6, 0xf3f7,
- 0xf3f8, 0xc0ba, 0xc0e9, 0xc5f1, 0xf3fb, 0xf3fa, 0xb4d8, 0xf3fe,
- 0xf3f9, 0xf3fc, 0xf3fd, 0xf4a1, 0xf4a3, 0xbbc9, 0xf4a2, 0xf4a4,
- 0xb2be, 0xf4a6, 0xf4a5, 0xbcae, 0xc3d7, 0xd9e1, 0xc0e0, 0xf4cc,
- 0xd7d1, 0xb7db, 0xf4ce, 0xc1a3, 0xc6c9, 0xb4d6, 0xd5b3, 0xf4d0,
- 0xf4cf, 0xf4d1, 0xcbda, 0xf4d2, 0xd4c1, 0xd6e0, 0xb7e0, 0xc1b8,
- 0xc1bb, 0xf4d3, 0xbeac, 0xb4e2, 0xf4d4, 0xf4d5, 0xbeab, 0xf4d6,
- 0xf4db, 0xf4d7, 0xf4da, 0xbafd, 0xf4d8, 0xf4d9, 0xb8e2, 0xccc7,
- 0xf4dc, 0xb2da, 0xc3d3, 0xd4e3, 0xbfb7, 0xf4dd, 0xc5b4, 0xf4e9,
- 0xcfb5, 0xcec9, 0xcbd8, 0xcbf7, 0xbdf4, 0xd7cf, 0xc0db, 0xd0f5,
- 0xf4ea, 0xf4eb, 0xf4ec, 0xf7e3, 0xb7b1, 0xf4ed, 0xd7eb, 0xf4ee,
- 0xe6f9, 0xbec0, 0xe6fa, 0xbaec, 0xe6fb, 0xcfcb, 0xe6fc, 0xd4bc,
- 0xbcb6, 0xe6fd, 0xe6fe, 0xbccd, 0xc8d2, 0xceb3, 0xe7a1, 0xb4bf,
- 0xe7a2, 0xc9b4, 0xb8d9, 0xc4c9, 0xd7dd, 0xc2da, 0xb7d7, 0xd6bd,
- 0xcec6, 0xb7c4, 0xc5a6, 0xe7a3, 0xcfdf, 0xe7a4, 0xe7a5, 0xe7a6,
- 0xc1b7, 0xd7e9, 0xc9f0, 0xcfb8, 0xd6af, 0xd6d5, 0xe7a7, 0xb0ed,
- 0xe7a8, 0xe7a9, 0xc9dc, 0xd2ef, 0xbead, 0xe7aa, 0xb0f3, 0xc8de,
- 0xbde1, 0xe7ab, 0xc8c6, 0xe7ac, 0xbbe6, 0xb8f8, 0xd1a4, 0xe7ad,
- 0xc2e7, 0xbef8, 0xbdca, 0xcdb3, 0xe7ae, 0xe7af, 0xbeee, 0xd0e5,
- 0xcbe7, 0xccd0, 0xbccc, 0xe7b0, 0xbca8, 0xd0f7, 0xe7b1, 0xd0f8,
- 0xe7b2, 0xe7b3, 0xb4c2, 0xe7b4, 0xe7b5, 0xc9fe, 0xceac, 0xc3e0,
- 0xe7b7, 0xb1c1, 0xb3f1, 0xe7b8, 0xe7b9, 0xd7db, 0xd5c0, 0xe7ba,
- 0xc2cc, 0xd7ba, 0xe7bb, 0xe7bc, 0xe7bd, 0xbcea, 0xc3e5, 0xc0c2,
- 0xe7be, 0xe7bf, 0xbca9, 0xe7c0, 0xe7c1, 0xe7b6, 0xb6d0, 0xe7c2,
- 0xe7c3, 0xe7c4, 0xbbba, 0xb5de, 0xc2c6, 0xb1e0, 0xe7c5, 0xd4b5,
- 0xe7c6, 0xb8bf, 0xe7c8, 0xe7c7, 0xb7ec, 0xe7c9, 0xb2f8, 0xe7ca,
- 0xe7cb, 0xe7cc, 0xe7cd, 0xe7ce, 0xe7cf, 0xe7d0, 0xd3a7, 0xcbf5,
- 0xe7d1, 0xe7d2, 0xe7d3, 0xe7d4, 0xc9c9, 0xe7d5, 0xe7d6, 0xe7d7,
- 0xe7d8, 0xe7d9, 0xbdc9, 0xe7da, 0xf3be, 0xb8d7, 0xc8b1, 0xf3bf,
- 0xf3c0, 0xf3c1, 0xb9de, 0xcdf8, 0xd8e8, 0xbab1, 0xc2de, 0xeeb7,
- 0xb7a3, 0xeeb9, 0xeeb8, 0xb0d5, 0xeebb, 0xd5d6, 0xd7ef, 0xd6c3,
- 0xeebd, 0xcaf0, 0xeebc, 0xeebe, 0xeec0, 0xeebf, 0xd1f2, 0xc7bc,
- 0xc3c0, 0xb8e1, 0xc1e7, 0xf4c6, 0xd0df, 0xf4c7, 0xcfdb, 0xc8ba,
- 0xf4c8, 0xf4c9, 0xf4ca, 0xf4cb, 0xd9fa, 0xb8fe, 0xe5f1, 0xd3f0,
- 0xf4e0, 0xcecc, 0xb3e1, 0xf1b4, 0xd2ee, 0xf4e1, 0xcfe8, 0xf4e2,
- 0xc7cc, 0xb5d4, 0xb4e4, 0xf4e4, 0xf4e3, 0xf4e5, 0xf4e6, 0xf4e7,
- 0xbab2, 0xb0bf, 0xf4e8, 0xb7ad, 0xd2ed, 0xd2ab, 0xc0cf, 0xbfbc,
- 0xeba3, 0xd5df, 0xeac8, 0xf1f3, 0xb6f8, 0xcba3, 0xc4cd, 0xf1e7,
- 0xf1e8, 0xb8fb, 0xf1e9, 0xbac4, 0xd4c5, 0xb0d2, 0xf1ea, 0xf1eb,
- 0xf1ec, 0xf1ed, 0xf1ee, 0xf1ef, 0xf1f1, 0xf1f0, 0xc5d5, 0xf1f2,
- 0xb6fa, 0xf1f4, 0xd2ae, 0xdec7, 0xcbca, 0xb3dc, 0xb5a2, 0xb9a2,
- 0xc4f4, 0xf1f5, 0xf1f6, 0xc1c4, 0xc1fb, 0xd6b0, 0xf1f7, 0xf1f8,
- 0xc1aa, 0xc6b8, 0xbedb, 0xf1f9, 0xb4cf, 0xf1fa, 0xedb2, 0xedb1,
- 0xcbe0, 0xd2de, 0xcbc1, 0xd5d8, 0xc8e2, 0xc0df, 0xbca1, 0xebc1,
- 0xd0a4, 0xd6e2, 0xb6c7, 0xb8d8, 0xebc0, 0xb8ce, 0xebbf, 0xb3a6,
- 0xb9c9, 0xd6ab, 0xb7f4, 0xb7ca, 0xbce7, 0xb7be, 0xebc6, 0xebc7,
- 0xb0b9, 0xbfcf, 0xebc5, 0xd3fd, 0xebc8, 0xebc9, 0xb7ce, 0xebc2,
- 0xebc4, 0xc9f6, 0xd6d7, 0xd5cd, 0xd0b2, 0xebcf, 0xceb8, 0xebd0,
- 0xb5a8, 0xb1b3, 0xebd2, 0xcca5, 0xc5d6, 0xebd3, 0xebd1, 0xc5df,
- 0xebce, 0xcaa4, 0xebd5, 0xb0fb, 0xbafa, 0xd8b7, 0xf1e3, 0xebca,
- 0xebcb, 0xebcc, 0xebcd, 0xebd6, 0xe6c0, 0xebd9, 0xbfe8, 0xd2c8,
- 0xebd7, 0xebdc, 0xb8ec, 0xebd8, 0xbdba, 0xd0d8, 0xb0b7, 0xebdd,
- 0xc4dc, 0xd6ac, 0xb4e0, 0xc2f6, 0xbcb9, 0xebda, 0xebdb, 0xd4e0,
- 0xc6ea, 0xc4d4, 0xebdf, 0xc5a7, 0xd9f5, 0xb2b1, 0xebe4, 0xbdc5,
- 0xebe2, 0xebe3, 0xb8ac, 0xcdd1, 0xebe5, 0xebe1, 0xc1b3, 0xc6a2,
- 0xccf3, 0xebe6, 0xc0b0, 0xd2b8, 0xebe7, 0xb8af, 0xb8ad, 0xebe8,
- 0xc7bb, 0xcdf3, 0xebea, 0xebeb, 0xebed, 0xd0c8, 0xebf2, 0xebee,
- 0xebf1, 0xc8f9, 0xd1fc, 0xebec, 0xebe9, 0xb8b9, 0xcfd9, 0xc4e5,
- 0xebef, 0xebf0, 0xccda, 0xcdc8, 0xb0f2, 0xebf6, 0xebf5, 0xb2b2,
- 0xb8e0, 0xebf7, 0xb1ec, 0xccc5, 0xc4a4, 0xcfa5, 0xebf9, 0xeca2,
- 0xc5f2, 0xebfa, 0xc9c5, 0xe2df, 0xebfe, 0xcdce, 0xeca1, 0xb1db,
- 0xd3b7, 0xd2dc, 0xebfd, 0xebfb, 0xb3bc, 0xeab0, 0xd7d4, 0xf4ab,
- 0xb3f4, 0xd6c1, 0xd6c2, 0xd5e9, 0xbeca, 0xf4a7, 0xd2a8, 0xf4a8,
- 0xf4a9, 0xf4aa, 0xbecb, 0xd3df, 0xc9e0, 0xc9e1, 0xf3c2, 0xcae6,
- 0xccf2, 0xe2b6, 0xcbb4, 0xcee8, 0xd6db, 0xf4ad, 0xf4ae, 0xf4af,
- 0xf4b2, 0xbabd, 0xf4b3, 0xb0e3, 0xf4b0, 0xf4b1, 0xbda2, 0xb2d5,
- 0xf4b6, 0xf4b7, 0xb6e6, 0xb2b0, 0xcfcf, 0xf4b4, 0xb4ac, 0xf4b5,
- 0xf4b8, 0xf4b9, 0xcda7, 0xf4ba, 0xf4bb, 0xf4bc, 0xcbd2, 0xf4bd,
- 0xf4be, 0xf4bf, 0xf4de, 0xc1bc, 0xbce8, 0xc9ab, 0xd1de, 0xe5f5,
- 0xdcb3, 0xd2d5, 0xdcb4, 0xb0ac, 0xdcb5, 0xbdda, 0xdcb9, 0xd8c2,
- 0xdcb7, 0xd3f3, 0xc9d6, 0xdcba, 0xdcb6, 0xdcbb, 0xc3a2, 0xdcbc,
- 0xdcc5, 0xdcbd, 0xcedf, 0xd6a5, 0xdccf, 0xdccd, 0xdcd2, 0xbde6,
- 0xc2ab, 0xdcb8, 0xdccb, 0xdcce, 0xdcbe, 0xb7d2, 0xb0c5, 0xdcc7,
- 0xd0be, 0xdcc1, 0xbba8, 0xb7bc, 0xdccc, 0xdcc6, 0xdcbf, 0xc7db,
- 0xd1bf, 0xdcc0, 0xdcca, 0xdcd0, 0xcead, 0xdcc2, 0xdcc3, 0xdcc8,
- 0xdcc9, 0xb2d4, 0xdcd1, 0xcbd5, 0xd4b7, 0xdcdb, 0xdcdf, 0xcca6,
- 0xdce6, 0xc3e7, 0xdcdc, 0xbfc1, 0xdcd9, 0xb0fa, 0xb9b6, 0xdce5,
- 0xdcd3, 0xdcc4, 0xdcd6, 0xc8f4, 0xbfe0, 0xc9bb, 0xb1bd, 0xd3a2,
- 0xdcda, 0xdcd5, 0xc6bb, 0xdcde, 0xd7c2, 0xc3af, 0xb7b6, 0xc7d1,
- 0xc3a9, 0xdce2, 0xdcd8, 0xdceb, 0xdcd4, 0xdcdd, 0xbea5, 0xdcd7,
- 0xdce0, 0xdce3, 0xdce4, 0xdcf8, 0xdce1, 0xdda2, 0xdce7, 0xbceb,
- 0xb4c4, 0xc3a3, 0xb2e7, 0xdcfa, 0xdcf2, 0xdcef, 0xdcfc, 0xdcee,
- 0xd2f0, 0xb2e8, 0xc8d7, 0xc8e3, 0xdcfb, 0xdced, 0xdcf7, 0xdcf5,
- 0xbea3, 0xdcf4, 0xb2dd, 0xdcf3, 0xbcf6, 0xdce8, 0xbbc4, 0xc0f3,
- 0xbcd4, 0xdce9, 0xdcea, 0xdcf1, 0xdcf6, 0xdcf9, 0xb5b4, 0xc8d9,
- 0xbbe7, 0xdcfe, 0xdcfd, 0xd3ab, 0xdda1, 0xdda3, 0xdda5, 0xd2f1,
- 0xdda4, 0xdda6, 0xdda7, 0xd2a9, 0xbac9, 0xdda9, 0xddb6, 0xddb1,
- 0xddb4, 0xddb0, 0xc6ce, 0xc0f2, 0xc9af, 0xdcec, 0xddae, 0xddb7,
- 0xdcf0, 0xddaf, 0xddb8, 0xddac, 0xddb9, 0xddb3, 0xddad, 0xc4aa,
- 0xdda8, 0xc0b3, 0xc1ab, 0xddaa, 0xddab, 0xddb2, 0xbbf1, 0xddb5,
- 0xd3a8, 0xddba, 0xddbb, 0xc3a7, 0xddd2, 0xddbc, 0xddd1, 0xb9bd,
- 0xbed5, 0xbefa, 0xbaca, 0xddca, 0xddc5, 0xddbf, 0xb2cb, 0xddc3,
- 0xddcb, 0xb2a4, 0xddd5, 0xddbe, 0xc6d0, 0xddd0, 0xddd4, 0xc1e2,
- 0xb7c6, 0xddce, 0xddcf, 0xddc4, 0xddbd, 0xddcd, 0xccd1, 0xddc9,
- 0xddc2, 0xc3c8, 0xc6bc, 0xceae, 0xddcc, 0xddc8, 0xddc1, 0xddc6,
- 0xc2dc, 0xd3a9, 0xd3aa, 0xddd3, 0xcff4, 0xc8f8, 0xdde6, 0xddc7,
- 0xdde0, 0xc2e4, 0xdde1, 0xddd7, 0xd6f8, 0xddd9, 0xddd8, 0xb8f0,
- 0xddd6, 0xc6cf, 0xb6ad, 0xdde2, 0xbaf9, 0xd4e1, 0xdde7, 0xb4d0,
- 0xddda, 0xbffb, 0xdde3, 0xdddf, 0xdddd, 0xb5d9, 0xdddb, 0xdddc,
- 0xddde, 0xbdaf, 0xdde4, 0xdde5, 0xddf5, 0xc3c9, 0xcbe2, 0xddf2,
- 0xd8e1, 0xc6d1, 0xddf4, 0xd5f4, 0xddf3, 0xddf0, 0xddec, 0xddef,
- 0xdde8, 0xd0ee, 0xc8d8, 0xddee, 0xdde9, 0xddea, 0xcbf2, 0xdded,
- 0xb1cd, 0xc0b6, 0xbcbb, 0xddf1, 0xddf7, 0xddf6, 0xddeb, 0xc5ee,
- 0xddfb, 0xdea4, 0xdea3, 0xddf8, 0xc3ef, 0xc2fb, 0xd5e1, 0xceb5,
- 0xddfd, 0xb2cc, 0xc4e8, 0xcadf, 0xc7be, 0xddfa, 0xddfc, 0xddfe,
- 0xdea2, 0xb0aa, 0xb1ce, 0xdeac, 0xdea6, 0xbdb6, 0xc8ef, 0xdea1,
- 0xdea5, 0xdea9, 0xdea8, 0xdea7, 0xdead, 0xd4cc, 0xdeb3, 0xdeaa,
- 0xdeae, 0xc0d9, 0xb1a1, 0xdeb6, 0xdeb1, 0xdeb2, 0xd1a6, 0xdeb5,
- 0xdeaf, 0xdeb0, 0xd0bd, 0xdeb4, 0xcaed, 0xdeb9, 0xdeb8, 0xdeb7,
- 0xdebb, 0xbde5, 0xb2d8, 0xc3ea, 0xdeba, 0xc5ba, 0xdebc, 0xccd9,
- 0xb7aa, 0xd4e5, 0xdebd, 0xdebf, 0xc4a2, 0xdec1, 0xdebe, 0xdec0,
- 0xd5ba, 0xdec2, 0xf2ae, 0xbba2, 0xc2b2, 0xc5b0, 0xc2c7, 0xf2af,
- 0xd0e9, 0xd3dd, 0xebbd, 0xb3e6, 0xf2b0, 0xf2b1, 0xcaad, 0xbae7,
- 0xf2b3, 0xf2b5, 0xf2b4, 0xcbe4, 0xcfba, 0xf2b2, 0xcab4, 0xd2cf,
- 0xc2ec, 0xcec3, 0xf2b8, 0xb0f6, 0xf2b7, 0xf2be, 0xb2cf, 0xd1c1,
- 0xf2ba, 0xf2bc, 0xd4e9, 0xf2bb, 0xf2b6, 0xf2bf, 0xf2bd, 0xf2b9,
- 0xf2c7, 0xf2c4, 0xf2c6, 0xf2ca, 0xf2c2, 0xf2c0, 0xf2c5, 0xd6fb,
- 0xf2c1, 0xc7f9, 0xc9df, 0xf2c8, 0xb9c6, 0xb5b0, 0xf2c3, 0xf2c9,
- 0xf2d0, 0xf2d6, 0xbbd7, 0xf2d5, 0xcddc, 0xd6eb, 0xf2d2, 0xf2d4,
- 0xb8f2, 0xf2cb, 0xf2ce, 0xc2f9, 0xd5dd, 0xf2cc, 0xf2cd, 0xf2cf,
- 0xf2d3, 0xf2d9, 0xd3bc, 0xb6ea, 0xcaf1, 0xb7e4, 0xf2d7, 0xf2d8,
- 0xf2da, 0xf2dd, 0xf2db, 0xf2dc, 0xd1d1, 0xf2d1, 0xcdc9, 0xcecf,
- 0xd6a9, 0xf2e3, 0xc3db, 0xf2e0, 0xc0af, 0xf2ec, 0xf2de, 0xf2e1,
- 0xf2e8, 0xf2e2, 0xf2e7, 0xf2e6, 0xf2e9, 0xf2df, 0xf2e4, 0xf2ea,
- 0xd3ac, 0xf2e5, 0xb2f5, 0xf2f2, 0xd0ab, 0xf2f5, 0xbbc8, 0xf2f9,
- 0xf2f0, 0xf2f6, 0xf2f8, 0xf2fa, 0xf2f3, 0xf2f1, 0xbafb, 0xb5fb,
- 0xf2ef, 0xf2f7, 0xf2ed, 0xf2ee, 0xf2eb, 0xf3a6, 0xf3a3, 0xf3a2,
- 0xf2f4, 0xc8da, 0xf2fb, 0xf3a5, 0xc3f8, 0xf2fd, 0xf3a7, 0xf3a9,
- 0xf3a4, 0xf2fc, 0xf3ab, 0xf3aa, 0xc2dd, 0xf3ae, 0xf3b0, 0xf3a1,
- 0xf3b1, 0xf3ac, 0xf3af, 0xf2fe, 0xf3ad, 0xf3b2, 0xf3b4, 0xf3a8,
- 0xf3b3, 0xf3b5, 0xd0b7, 0xf3b8, 0xd9f9, 0xf3b9, 0xf3b7, 0xc8e4,
- 0xf3b6, 0xf3ba, 0xf3bb, 0xb4c0, 0xeec3, 0xf3bc, 0xf3bd, 0xd1aa,
- 0xf4ac, 0xd0c6, 0xd0d0, 0xd1dc, 0xcfce, 0xbdd6, 0xd1c3, 0xbae2,
- 0xe1e9, 0xd2c2, 0xf1c2, 0xb2b9, 0xb1ed, 0xf1c3, 0xc9c0, 0xb3c4,
- 0xd9f2, 0xcba5, 0xf1c4, 0xd6d4, 0xf1c5, 0xf4c0, 0xf1c6, 0xd4ac,
- 0xf1c7, 0xb0c0, 0xf4c1, 0xf4c2, 0xb4fc, 0xc5db, 0xccbb, 0xd0e4,
- 0xcde0, 0xf1c8, 0xd9f3, 0xb1bb, 0xcfae, 0xb8a4, 0xf1ca, 0xf1cb,
- 0xb2c3, 0xc1d1, 0xd7b0, 0xf1c9, 0xf1cc, 0xf1ce, 0xd9f6, 0xd2e1,
- 0xd4a3, 0xf4c3, 0xc8b9, 0xf4c4, 0xf1cd, 0xf1cf, 0xbfe3, 0xf1d0,
- 0xf1d4, 0xf1d6, 0xf1d1, 0xc9d1, 0xc5e1, 0xc2e3, 0xb9fc, 0xf1d3,
- 0xf1d5, 0xb9d3, 0xf1db, 0xbad6, 0xb0fd, 0xf1d9, 0xf1d8, 0xf1d2,
- 0xf1da, 0xf1d7, 0xc8ec, 0xcdca, 0xf1dd, 0xe5bd, 0xf1dc, 0xf1de,
- 0xf1df, 0xcfe5, 0xf4c5, 0xbdf3, 0xf1e0, 0xf1e1, 0xcef7, 0xd2aa,
- 0xf1fb, 0xb8b2, 0xbcfb, 0xb9db, 0xb9e6, 0xc3d9, 0xcad3, 0xeae8,
- 0xc0c0, 0xbef5, 0xeae9, 0xeaea, 0xeaeb, 0xeaec, 0xeaed, 0xeaee,
- 0xeaef, 0xbdc7, 0xf5fb, 0xf5fd, 0xf5fe, 0xf5fc, 0xbde2, 0xf6a1,
- 0xb4a5, 0xf6a2, 0xf6a3, 0xecb2, 0xd1d4, 0xd9ea, 0xf6a4, 0xeeba,
- 0xd5b2, 0xd3fe, 0xccdc, 0xcac4, 0xe5c0, 0xf6a5, 0xbeaf, 0xc6a9,
- 0xdaa5, 0xbcc6, 0xb6a9, 0xb8bc, 0xc8cf, 0xbca5, 0xdaa6, 0xdaa7,
- 0xccd6, 0xc8c3, 0xdaa8, 0xc6fd, 0xd1b5, 0xd2e9, 0xd1b6, 0xbcc7,
- 0xbdb2, 0xbbe4, 0xdaa9, 0xdaaa, 0xd1c8, 0xdaab, 0xd0ed, 0xb6ef,
- 0xc2db, 0xcbcf, 0xb7ed, 0xc9e8, 0xb7c3, 0xbef7, 0xd6a4, 0xdaac,
- 0xdaad, 0xc6c0, 0xd7e7, 0xcab6, 0xd5a9, 0xcbdf, 0xd5ef, 0xdaae,
- 0xd6df, 0xb4ca, 0xdab0, 0xdaaf, 0xd2eb, 0xdab1, 0xdab2, 0xdab3,
- 0xcad4, 0xdab4, 0xcaab, 0xdab5, 0xdab6, 0xb3cf, 0xd6ef, 0xdab7,
- 0xbbb0, 0xb5ae, 0xdab8, 0xdab9, 0xb9ee, 0xd1af, 0xd2e8, 0xdaba,
- 0xb8c3, 0xcfea, 0xb2ef, 0xdabb, 0xdabc, 0xbdeb, 0xcedc, 0xd3ef,
- 0xdabd, 0xcef3, 0xdabe, 0xd3d5, 0xbbe5, 0xdabf, 0xcbb5, 0xcbd0,
- 0xdac0, 0xc7eb, 0xd6ee, 0xdac1, 0xc5b5, 0xb6c1, 0xdac2, 0xb7cc,
- 0xbfce, 0xdac3, 0xdac4, 0xcbad, 0xdac5, 0xb5f7, 0xdac6, 0xc1c2,
- 0xd7bb, 0xdac7, 0xccb8, 0xd2ea, 0xc4b1, 0xdac8, 0xb5fd, 0xbbd1,
- 0xdac9, 0xd0b3, 0xdaca, 0xdacb, 0xcebd, 0xdacc, 0xdacd, 0xdace,
- 0xb2f7, 0xdad1, 0xdacf, 0xd1e8, 0xdad0, 0xc3d5, 0xdad2, 0xdad3,
- 0xdad4, 0xdad5, 0xd0bb, 0xd2a5, 0xb0f9, 0xdad6, 0xc7ab, 0xdad7,
- 0xbdf7, 0xc3a1, 0xdad8, 0xdad9, 0xc3fd, 0xccb7, 0xdada, 0xdadb,
- 0xc0be, 0xc6d7, 0xdadc, 0xdadd, 0xc7b4, 0xdade, 0xdadf, 0xb9c8,
- 0xbbed, 0xb6b9, 0xf4f8, 0xf4f9, 0xcde3, 0xf5b9, 0xebe0, 0xcff3,
- 0xbbbf, 0xbac0, 0xd4a5, 0xe1d9, 0xf5f4, 0xb1aa, 0xb2f2, 0xf5f5,
- 0xf5f7, 0xbad1, 0xf5f6, 0xc3b2, 0xf5f9, 0xf5f8, 0xb1b4, 0xd5ea,
- 0xb8ba, 0xb9b1, 0xb2c6, 0xd4f0, 0xcfcd, 0xb0dc, 0xd5cb, 0xbbf5,
- 0xd6ca, 0xb7b7, 0xccb0, 0xc6b6, 0xb1e1, 0xb9ba, 0xd6fc, 0xb9e1,
- 0xb7a1, 0xbcfa, 0xeada, 0xeadb, 0xccf9, 0xb9f3, 0xeadc, 0xb4fb,
- 0xc3b3, 0xb7d1, 0xbad8, 0xeadd, 0xd4f4, 0xeade, 0xbcd6, 0xbbdf,
- 0xeadf, 0xc1de, 0xc2b8, 0xd4df, 0xd7ca, 0xeae0, 0xeae1, 0xeae4,
- 0xeae2, 0xeae3, 0xc9de, 0xb8b3, 0xb6c4, 0xeae5, 0xcaea, 0xc9cd,
- 0xb4cd, 0xe2d9, 0xc5e2, 0xeae6, 0xc0b5, 0xd7b8, 0xeae7, 0xd7ac,
- 0xc8fc, 0xd8d3, 0xd8cd, 0xd4de, 0xd4f9, 0xc9c4, 0xd3ae, 0xb8d3,
- 0xb3e0, 0xc9e2, 0xf4f6, 0xbad5, 0xf4f7, 0xd7df, 0xf4f1, 0xb8b0,
- 0xd5d4, 0xb8cf, 0xc6f0, 0xb3c3, 0xf4f2, 0xb3ac, 0xd4bd, 0xc7f7,
- 0xf4f4, 0xf4f3, 0xcccb, 0xc8a4, 0xf4f5, 0xd7e3, 0xc5bf, 0xf5c0,
- 0xf5bb, 0xf5c3, 0xf5c2, 0xd6ba, 0xf5c1, 0xd4be, 0xf5c4, 0xf5cc,
- 0xb0cf, 0xb5f8, 0xf5c9, 0xf5ca, 0xc5dc, 0xf5c5, 0xf5c6, 0xf5c7,
- 0xf5cb, 0xbee0, 0xf5c8, 0xb8fa, 0xf5d0, 0xf5d3, 0xbfe7, 0xb9f2,
- 0xf5bc, 0xf5cd, 0xc2b7, 0xccf8, 0xbcf9, 0xf5ce, 0xf5cf, 0xf5d1,
- 0xb6e5, 0xf5d2, 0xf5d5, 0xf5bd, 0xf5d4, 0xd3bb, 0xb3ec, 0xcca4,
- 0xf5d6, 0xf5d7, 0xbee1, 0xf5d8, 0xccdf, 0xf5db, 0xb2c8, 0xd7d9,
- 0xf5d9, 0xf5da, 0xf5dc, 0xf5e2, 0xf5e0, 0xf5df, 0xf5dd, 0xf5e1,
- 0xf5de, 0xf5e4, 0xf5e5, 0xcce3, 0xe5bf, 0xb5b8, 0xf5e3, 0xf5e8,
- 0xcca3, 0xf5e6, 0xf5e7, 0xf5be, 0xb1c4, 0xf5bf, 0xb5c5, 0xb2e4,
- 0xf5ec, 0xf5e9, 0xb6d7, 0xf5ed, 0xf5ea, 0xf5eb, 0xb4da, 0xd4ea,
- 0xf5ee, 0xb3f9, 0xf5ef, 0xf5f1, 0xf5f0, 0xf5f2, 0xf5f3, 0xc9ed,
- 0xb9aa, 0xc7fb, 0xb6e3, 0xccc9, 0xeaa6, 0xb3b5, 0xd4fe, 0xb9ec,
- 0xd0f9, 0xe9ed, 0xd7aa, 0xe9ee, 0xc2d6, 0xc8ed, 0xbae4, 0xe9ef,
- 0xe9f0, 0xe9f1, 0xd6e1, 0xe9f2, 0xe9f3, 0xe9f5, 0xe9f4, 0xe9f6,
- 0xe9f7, 0xc7e1, 0xe9f8, 0xd4d8, 0xe9f9, 0xbdce, 0xe9fa, 0xe9fb,
- 0xbdcf, 0xe9fc, 0xb8a8, 0xc1be, 0xe9fd, 0xb1b2, 0xbbd4, 0xb9f5,
- 0xe9fe, 0xeaa1, 0xeaa2, 0xeaa3, 0xb7f8, 0xbcad, 0xcae4, 0xe0ce,
- 0xd4af, 0xcfbd, 0xd5b7, 0xeaa4, 0xd5de, 0xeaa5, 0xd0c1, 0xb9bc,
- 0xb4c7, 0xb1d9, 0xc0b1, 0xb1e6, 0xb1e7, 0xb1e8, 0xb3bd, 0xc8e8,
- 0xe5c1, 0xb1df, 0xc1c9, 0xb4ef, 0xc7a8, 0xd3d8, 0xc6f9, 0xd1b8,
- 0xb9fd, 0xc2f5, 0xd3ad, 0xd4cb, 0xbdfc, 0xe5c2, 0xb7b5, 0xe5c3,
- 0xbbb9, 0xd5e2, 0xbdf8, 0xd4b6, 0xcea5, 0xc1ac, 0xb3d9, 0xccf6,
- 0xe5c6, 0xe5c4, 0xe5c8, 0xe5ca, 0xe5c7, 0xb5cf, 0xc6c8, 0xb5fc,
- 0xe5c5, 0xcaf6, 0xe5c9, 0xc3d4, 0xb1c5, 0xbca3, 0xd7b7, 0xcdcb,
- 0xcbcd, 0xcaca, 0xccd3, 0xe5cc, 0xe5cb, 0xc4e6, 0xd1a1, 0xd1b7,
- 0xe5cd, 0xe5d0, 0xcdb8, 0xd6f0, 0xe5cf, 0xb5dd, 0xcdbe, 0xe5d1,
- 0xb6ba, 0xcda8, 0xb9e4, 0xcac5, 0xb3d1, 0xcbd9, 0xd4ec, 0xe5d2,
- 0xb7ea, 0xe5ce, 0xe5d5, 0xb4fe, 0xe5d6, 0xe5d3, 0xe5d4, 0xd2dd,
- 0xc2df, 0xb1c6, 0xd3e2, 0xb6dd, 0xcbec, 0xe5d7, 0xd3f6, 0xb1e9,
- 0xb6f4, 0xe5da, 0xe5d8, 0xe5d9, 0xb5c0, 0xd2c5, 0xe5dc, 0xe5de,
- 0xe5dd, 0xc7b2, 0xd2a3, 0xe5db, 0xd4e2, 0xd5da, 0xe5e0, 0xd7f1,
- 0xe5e1, 0xb1dc, 0xd1fb, 0xe5e2, 0xe5e4, 0xe5e3, 0xe5e5, 0xd2d8,
- 0xb5cb, 0xe7df, 0xdaf5, 0xdaf8, 0xdaf6, 0xdaf7, 0xdafa, 0xd0cf,
- 0xc4c7, 0xb0ee, 0xd0b0, 0xdaf9, 0xd3ca, 0xbaaa, 0xdba2, 0xc7f1,
- 0xdafc, 0xdafb, 0xc9db, 0xdafd, 0xdba1, 0xd7de, 0xdafe, 0xc1da,
- 0xdba5, 0xd3f4, 0xdba7, 0xdba4, 0xdba8, 0xbdbc, 0xc0c9, 0xdba3,
- 0xdba6, 0xd6a3, 0xdba9, 0xdbad, 0xdbae, 0xdbac, 0xbac2, 0xbfa4,
- 0xdbab, 0xdbaa, 0xd4c7, 0xb2bf, 0xdbaf, 0xb9f9, 0xdbb0, 0xb3bb,
- 0xb5a6, 0xb6bc, 0xdbb1, 0xb6f5, 0xdbb2, 0xb1c9, 0xdbb4, 0xdbb3,
- 0xdbb5, 0xdbb7, 0xdbb6, 0xdbb8, 0xdbb9, 0xdbba, 0xd3cf, 0xf4fa,
- 0xc7f5, 0xd7c3, 0xc5e4, 0xf4fc, 0xf4fd, 0xf4fb, 0xbec6, 0xd0ef,
- 0xb7d3, 0xd4cd, 0xccaa, 0xf5a2, 0xf5a1, 0xbaa8, 0xf4fe, 0xcbd6,
- 0xf5a4, 0xc0d2, 0xb3ea, 0xcdaa, 0xf5a5, 0xf5a3, 0xbdb4, 0xf5a8,
- 0xf5a9, 0xbdcd, 0xc3b8, 0xbfe1, 0xcbe1, 0xf5aa, 0xf5a6, 0xf5a7,
- 0xc4f0, 0xf5ac, 0xb4bc, 0xd7ed, 0xb4d7, 0xf5ab, 0xf5ae, 0xf5ad,
- 0xf5af, 0xd0d1, 0xc3d1, 0xc8a9, 0xf5b0, 0xf5b1, 0xf5b2, 0xf5b3,
- 0xf5b4, 0xf5b5, 0xf5b7, 0xf5b6, 0xf5b8, 0xb2c9, 0xd3d4, 0xcacd,
- 0xc0ef, 0xd6d8, 0xd2b0, 0xc1bf, 0xbdf0, 0xb8aa, 0xbcf8, 0xf6c6,
- 0xf6c7, 0xf6c8, 0xf6c9, 0xf6ca, 0xf6cc, 0xf6cb, 0xf7e9, 0xf6cd,
- 0xf6ce, 0xeec4, 0xeec5, 0xeec6, 0xd5eb, 0xb6a4, 0xeec8, 0xeec7,
- 0xeec9, 0xeeca, 0xc7a5, 0xeecb, 0xeecc, 0xb7b0, 0xb5f6, 0xeecd,
- 0xeecf, 0xeece, 0xb8c6, 0xeed0, 0xeed1, 0xeed2, 0xb6db, 0xb3ae,
- 0xd6d3, 0xc4c6, 0xb1b5, 0xb8d6, 0xeed3, 0xeed4, 0xd4bf, 0xc7d5,
- 0xbefb, 0xced9, 0xb9b3, 0xeed6, 0xeed5, 0xeed8, 0xeed7, 0xc5a5,
- 0xeed9, 0xeeda, 0xc7ae, 0xeedb, 0xc7af, 0xeedc, 0xb2a7, 0xeedd,
- 0xeede, 0xeedf, 0xeee0, 0xeee1, 0xd7ea, 0xeee2, 0xeee3, 0xbcd8,
- 0xeee4, 0xd3cb, 0xccfa, 0xb2ac, 0xc1e5, 0xeee5, 0xc7a6, 0xc3ad,
- 0xeee6, 0xeee7, 0xeee8, 0xeee9, 0xeeea, 0xeeeb, 0xeeec, 0xeeed,
- 0xeeee, 0xeeef, 0xeef0, 0xeef1, 0xeef2, 0xeef4, 0xeef3, 0xeef5,
- 0xcdad, 0xc2c1, 0xeef6, 0xeef7, 0xeef8, 0xd5a1, 0xeef9, 0xcfb3,
- 0xeefa, 0xeefb, 0xeefc, 0xeefd, 0xefa1, 0xeefe, 0xefa2, 0xb8f5,
- 0xc3fa, 0xefa3, 0xefa4, 0xbdc2, 0xd2bf, 0xb2f9, 0xefa5, 0xefa6,
- 0xefa7, 0xd2f8, 0xefa8, 0xd6fd, 0xefa9, 0xc6cc, 0xefaa, 0xefab,
- 0xc1b4, 0xefac, 0xcffa, 0xcbf8, 0xefae, 0xefad, 0xb3fa, 0xb9f8,
- 0xefaf, 0xefb0, 0xd0e2, 0xefb1, 0xefb2, 0xb7e6, 0xd0bf, 0xefb3,
- 0xefb4, 0xefb5, 0xc8f1, 0xcce0, 0xefb6, 0xefb7, 0xefb8, 0xefb9,
- 0xefba, 0xd5e0, 0xefbb, 0xb4ed, 0xc3aa, 0xefbc, 0xefbd, 0xefbe,
- 0xefbf, 0xcefd, 0xefc0, 0xc2e0, 0xb4b8, 0xd7b6, 0xbdf5, 0xcfc7,
- 0xefc3, 0xefc1, 0xefc2, 0xefc4, 0xb6a7, 0xbcfc, 0xbee2, 0xc3cc,
- 0xefc5, 0xefc6, 0xefc7, 0xefcf, 0xefc8, 0xefc9, 0xefca, 0xc7c2,
- 0xeff1, 0xb6cd, 0xefcb, 0xefcc, 0xefcd, 0xb6c6, 0xc3be, 0xefce,
- 0xefd0, 0xefd1, 0xefd2, 0xd5f2, 0xefd3, 0xc4f7, 0xefd4, 0xc4f8,
- 0xefd5, 0xefd6, 0xb8e4, 0xb0f7, 0xefd7, 0xefd8, 0xefd9, 0xefda,
- 0xefdb, 0xefdc, 0xefdd, 0xefde, 0xbeb5, 0xefe1, 0xefdf, 0xefe0,
- 0xefe2, 0xefe3, 0xc1cd, 0xefe4, 0xefe5, 0xefe6, 0xefe7, 0xefe8,
- 0xefe9, 0xefea, 0xefeb, 0xefec, 0xc0d8, 0xefed, 0xc1ad, 0xefee,
- 0xefef, 0xeff0, 0xcfe2, 0xb3a4, 0xc3c5, 0xe3c5, 0xc9c1, 0xe3c6,
- 0xb1d5, 0xceca, 0xb4b3, 0xc8f2, 0xe3c7, 0xcfd0, 0xe3c8, 0xbce4,
- 0xe3c9, 0xe3ca, 0xc3c6, 0xd5a2, 0xc4d6, 0xb9eb, 0xcec5, 0xe3cb,
- 0xc3f6, 0xe3cc, 0xb7a7, 0xb8f3, 0xbad2, 0xe3cd, 0xe3ce, 0xd4c4,
- 0xe3cf, 0xe3d0, 0xd1cb, 0xe3d1, 0xe3d2, 0xe3d3, 0xe3d4, 0xd1d6,
- 0xe3d5, 0xb2fb, 0xc0bb, 0xe3d6, 0xc0ab, 0xe3d7, 0xe3d8, 0xe3d9,
- 0xe3da, 0xe3db, 0xb8b7, 0xdae2, 0xb6d3, 0xdae4, 0xdae3, 0xdae6,
- 0xc8ee, 0xdae5, 0xb7c0, 0xd1f4, 0xd2f5, 0xd5f3, 0xbdd7, 0xd7e8,
- 0xdae8, 0xdae7, 0xb0a2, 0xcdd3, 0xdae9, 0xb8bd, 0xbcca, 0xc2bd,
- 0xc2a4, 0xb3c2, 0xdaea, 0xc2aa, 0xc4b0, 0xbdb5, 0xcfde, 0xdaeb,
- 0xc9c2, 0xb1dd, 0xdaec, 0xb6b8, 0xd4ba, 0xb3fd, 0xdaed, 0xd4c9,
- 0xcfd5, 0xc5e3, 0xdaee, 0xdaef, 0xdaf0, 0xc1ea, 0xccd5, 0xcfdd,
- 0xd3e7, 0xc2a1, 0xdaf1, 0xcbe5, 0xdaf2, 0xcbe6, 0xd2fe, 0xb8f4,
- 0xdaf3, 0xb0af, 0xcfb6, 0xd5cf, 0xcbed, 0xdaf4, 0xe3c4, 0xc1a5,
- 0xf6bf, 0xf6c0, 0xf6c1, 0xc4d1, 0xc8b8, 0xd1e3, 0xd0db, 0xd1c5,
- 0xbcaf, 0xb9cd, 0xeff4, 0xb4c6, 0xd3ba, 0xf6c2, 0xb3fb, 0xf6c3,
- 0xb5f1, 0xf6c5, 0xd3ea, 0xf6a7, 0xd1a9, 0xf6a9, 0xf6a8, 0xc1e3,
- 0xc0d7, 0xb1a2, 0xceed, 0xd0e8, 0xf6ab, 0xcff6, 0xf6aa, 0xd5f0,
- 0xf6ac, 0xc3b9, 0xbbf4, 0xf6ae, 0xf6ad, 0xc4de, 0xc1d8, 0xcbaa,
- 0xcfbc, 0xf6af, 0xf6b0, 0xf6b1, 0xc2b6, 0xb0d4, 0xc5f9, 0xf6b2,
- 0xc7e0, 0xf6a6, 0xbeb8, 0xbeb2, 0xb5e5, 0xb7c7, 0xbfbf, 0xc3d2,
- 0xc3e6, 0xd8cc, 0xb8ef, 0xbdf9, 0xd1a5, 0xb0d0, 0xf7b0, 0xf7b1,
- 0xd0ac, 0xb0b0, 0xf7b2, 0xf7b3, 0xf7b4, 0xc7ca, 0xbecf, 0xf7b7,
- 0xf7b6, 0xb1de, 0xf7b5, 0xf7b8, 0xf7b9, 0xcea4, 0xc8cd, 0xbaab,
- 0xe8b8, 0xe8b9, 0xe8ba, 0xbec2, 0xd2f4, 0xd4cf, 0xc9d8, 0xd2b3,
- 0xb6a5, 0xc7ea, 0xf1fc, 0xcfee, 0xcbb3, 0xd0eb, 0xe7ef, 0xcde7,
- 0xb9cb, 0xb6d9, 0xf1fd, 0xb0e4, 0xcbcc, 0xf1fe, 0xd4a4, 0xc2ad,
- 0xc1ec, 0xc6c4, 0xbeb1, 0xf2a1, 0xbcd5, 0xf2a2, 0xf2a3, 0xf2a4,
- 0xd2c3, 0xc6b5, 0xcdc7, 0xf2a5, 0xd3b1, 0xbfc5, 0xcce2, 0xf2a6,
- 0xf2a7, 0xd1d5, 0xb6ee, 0xf2a8, 0xf2a9, 0xb5df, 0xf2aa, 0xf2ab,
- 0xb2fc, 0xf2ac, 0xf2ad, 0xc8a7, 0xb7e7, 0xeca9, 0xecaa, 0xecab,
- 0xecac, 0xc6ae, 0xecad, 0xecae, 0xb7c9, 0xcab3, 0xe2b8, 0xf7cf,
- 0xf7d0, 0xb2cd, 0xf7d1, 0xf7d3, 0xf7d2, 0xe2bb, 0xbca2, 0xe2bc,
- 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, 0xe2c1, 0xb7b9, 0xd2fb, 0xbda4,
- 0xcace, 0xb1a5, 0xcbc7, 0xe2c2, 0xb6fc, 0xc8c4, 0xe2c3, 0xbdc8,
- 0xb1fd, 0xe2c4, 0xb6f6, 0xe2c5, 0xc4d9, 0xe2c6, 0xcfda, 0xb9dd,
- 0xe2c7, 0xc0a1, 0xe2c8, 0xb2f6, 0xe2c9, 0xc1f3, 0xe2ca, 0xe2cb,
- 0xc2f8, 0xe2cc, 0xe2cd, 0xe2ce, 0xcad7, 0xd8b8, 0xd9e5, 0xcfe3,
- 0xf0a5, 0xdcb0, 0xc2ed, 0xd4a6, 0xcdd4, 0xd1b1, 0xb3db, 0xc7fd,
- 0xb2b5, 0xc2bf, 0xe6e0, 0xcabb, 0xe6e1, 0xe6e2, 0xbed4, 0xe6e3,
- 0xd7a4, 0xcdd5, 0xe6e5, 0xbcdd, 0xe6e4, 0xe6e6, 0xe6e7, 0xc2ee,
- 0xbdbe, 0xe6e8, 0xc2e6, 0xbaa7, 0xe6e9, 0xe6ea, 0xb3d2, 0xd1e9,
- 0xbfa5, 0xe6eb, 0xc6ef, 0xe6ec, 0xe6ed, 0xe6ee, 0xc6ad, 0xe6ef,
- 0xc9a7, 0xe6f0, 0xe6f1, 0xe6f2, 0xe5b9, 0xe6f3, 0xe6f4, 0xc2e2,
- 0xe6f5, 0xe6f6, 0xd6e8, 0xe6f7, 0xe6f8, 0xb9c7, 0xf7bb, 0xf7ba,
- 0xf7be, 0xf7bc, 0xbaa1, 0xf7bf, 0xf7c0, 0xf7c2, 0xf7c1, 0xf7c4,
- 0xf7c3, 0xf7c5, 0xf7c6, 0xf7c7, 0xcbe8, 0xb8df, 0xf7d4, 0xf7d5,
- 0xf7d6, 0xf7d8, 0xf7da, 0xf7d7, 0xf7db, 0xf7d9, 0xd7d7, 0xf7dc,
- 0xf7dd, 0xf7de, 0xf7df, 0xf7e0, 0xdbcb, 0xd8aa, 0xe5f7, 0xb9ed,
- 0xbffd, 0xbbea, 0xf7c9, 0xc6c7, 0xf7c8, 0xf7ca, 0xf7cc, 0xf7cb,
- 0xf7cd, 0xceba, 0xf7ce, 0xc4a7, 0xd3e3, 0xf6cf, 0xc2b3, 0xf6d0,
- 0xf6d1, 0xf6d2, 0xf6d3, 0xf6d4, 0xf6d6, 0xb1ab, 0xf6d7, 0xf6d8,
- 0xf6d9, 0xf6da, 0xf6db, 0xf6dc, 0xf6dd, 0xf6de, 0xcfca, 0xf6df,
- 0xf6e0, 0xf6e1, 0xf6e2, 0xf6e3, 0xf6e4, 0xc0f0, 0xf6e5, 0xf6e6,
- 0xf6e7, 0xf6e8, 0xf6e9, 0xf6ea, 0xf6eb, 0xf6ec, 0xf6ed, 0xf6ee,
- 0xf6ef, 0xf6f0, 0xf6f1, 0xf6f2, 0xf6f3, 0xf6f4, 0xbea8, 0xf6f5,
- 0xf6f6, 0xf6f7, 0xf6f8, 0xc8fa, 0xf6f9, 0xf6fa, 0xf6fb, 0xf6fc,
- 0xf6fd, 0xf6fe, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, 0xf7a5, 0xf7a6,
- 0xf7a7, 0xf7a8, 0xb1ee, 0xf7a9, 0xf7aa, 0xf7ab, 0xf7ac, 0xf7ad,
- 0xc1db, 0xf7ae, 0xf7af, 0xc4f1, 0xf0af, 0xbca6, 0xf0b0, 0xc3f9,
- 0xc5b8, 0xd1bb, 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xd1bc,
- 0xd1ec, 0xf0b7, 0xf0b6, 0xd4a7, 0xcdd2, 0xf0b8, 0xf0ba, 0xf0b9,
- 0xf0bb, 0xf0bc, 0xb8eb, 0xf0bd, 0xbae8, 0xf0be, 0xf0bf, 0xbee9,
- 0xf0c0, 0xb6ec, 0xf0c1, 0xf0c2, 0xf0c3, 0xf0c4, 0xc8b5, 0xf0c5,
- 0xf0c6, 0xf0c7, 0xc5f4, 0xf0c8, 0xf0c9, 0xf0ca, 0xf7bd, 0xf0cb,
- 0xf0cc, 0xf0cd, 0xf0ce, 0xf0cf, 0xbad7, 0xf0d0, 0xf0d1, 0xf0d2,
- 0xf0d3, 0xf0d4, 0xf0d5, 0xf0d6, 0xf0d8, 0xd3a5, 0xf0d7, 0xf0d9,
- 0xf5ba, 0xc2b9, 0xf7e4, 0xf7e5, 0xf7e6, 0xf7e7, 0xf7e8, 0xc2b4,
- 0xf7ea, 0xf7eb, 0xc2f3, 0xf4f0, 0xf4ef, 0xc2e9, 0xf7e1, 0xf7e2,
- 0xbbc6, 0xd9e4, 0xcaf2, 0xc0e8, 0xf0a4, 0xbada, 0xc7ad, 0xc4ac,
- 0xf7ec, 0xf7ed, 0xf7ee, 0xf7f0, 0xf7ef, 0xf7f1, 0xf7f4, 0xf7f3,
- 0xf7f2, 0xf7f5, 0xf7f6, 0xede9, 0xedea, 0xedeb, 0xf6bc, 0xf6bd,
- 0xf6be, 0xb6a6, 0xd8be, 0xb9c4, 0xd8bb, 0xdcb1, 0xcaf3, 0xf7f7,
- 0xf7f8, 0xf7f9, 0xf7fb, 0xf7fa, 0xb1c7, 0xf7fc, 0xf7fd, 0xf7fe,
- 0xc6eb, 0xecb4, 0xb3dd, 0xf6b3, 0xf6b4, 0xc1e4, 0xf6b5, 0xf6b6,
- 0xf6b7, 0xf6b8, 0xf6b9, 0xf6ba, 0xc8a3, 0xf6bb, 0xc1fa, 0xb9a8,
- 0xede8, 0xb9ea, 0xd9df, 0xa3a1, 0xa3a2, 0xa3a3, 0xa1e7, 0xa3a5,
- 0xa3a6, 0xa3a7, 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad,
- 0xa3ae, 0xa3af, 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5,
- 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd,
- 0xa3be, 0xa3bf, 0xa3c0, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5,
- 0xa3c6, 0xa3c7, 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd,
- 0xa3ce, 0xa3cf, 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5,
- 0xa3d6, 0xa3d7, 0xa3d8, 0xa3d9, 0xa3da, 0xa3db, 0xa3dc, 0xa3dd,
- 0xa3de, 0xa3df, 0xa3e0, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5,
- 0xa3e6, 0xa3e7, 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed,
- 0xa3ee, 0xa3ef, 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5,
- 0xa3f6, 0xa3f7, 0xa3f8, 0xa3f9, 0xa3fa, 0xa3fb, 0xa3fc, 0xa3fd,
- 0xa1ab, 0xa1e9, 0xa1ea, 0xa3fe, 0xa3a4,
-};
-
-typedef struct {
- unsigned short indx; /* index into big table */
- unsigned short used; /* bitmask of used entries */
-} Summary16;
-
-static const Summary16 gb2312_uni2indx_page00[70] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0190 }, { 3, 0x0003 },
- { 5, 0x0000 }, { 5, 0x0080 }, { 6, 0x3703 }, { 13, 0x168c },
- /* 0x0100 */
- { 19, 0x0002 }, { 20, 0x0808 }, { 22, 0x0800 }, { 23, 0x0000 },
- { 23, 0x2000 }, { 24, 0x0000 }, { 24, 0x0800 }, { 25, 0x0000 },
- { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 },
- { 25, 0x4000 }, { 26, 0x1555 }, { 33, 0x0000 }, { 33, 0x0000 },
- /* 0x0200 */
- { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
- { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
- { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
- { 33, 0x0280 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
- /* 0x0300 */
- { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
- { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
- { 35, 0x0000 }, { 35, 0xfffe }, { 50, 0x03fb }, { 59, 0xfffe },
- { 74, 0x03fb }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 },
- /* 0x0400 */
- { 83, 0x0002 }, { 84, 0xffff }, { 100, 0xffff }, { 116, 0xffff },
- { 132, 0xffff }, { 148, 0x0002 },
-};
-static const Summary16 gb2312_uni2indx_page20[101] = {
- /* 0x2000 */
- { 149, 0x0000 }, { 149, 0x3360 }, { 155, 0x0040 }, { 156, 0x080d },
- { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 },
- { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 },
- { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 },
- /* 0x2100 */
- { 160, 0x0008 }, { 161, 0x0040 }, { 162, 0x0000 }, { 162, 0x0000 },
- { 162, 0x0000 }, { 162, 0x0000 }, { 162, 0x0fff }, { 174, 0x0000 },
- { 174, 0x0000 }, { 174, 0x000f }, { 178, 0x0000 }, { 178, 0x0000 },
- { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 },
- /* 0x2200 */
- { 178, 0x8100 }, { 180, 0x6402 }, { 184, 0x4fa1 }, { 192, 0x20f0 },
- { 197, 0x1100 }, { 199, 0x0000 }, { 199, 0xc033 }, { 205, 0x0000 },
- { 205, 0x0000 }, { 205, 0x0200 }, { 206, 0x0020 }, { 207, 0x0000 },
- { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 },
- /* 0x2300 */
- { 207, 0x0000 }, { 207, 0x0004 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- /* 0x2400 */
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x03ff }, { 218, 0xfff0 },
- { 230, 0xffff }, { 246, 0x0fff }, { 258, 0x0000 }, { 258, 0x0000 },
- { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 },
- /* 0x2500 */
- { 258, 0xffff }, { 274, 0xffff }, { 290, 0xffff }, { 306, 0xffff },
- { 322, 0x0fff }, { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 },
- { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0003 }, { 336, 0x000c },
- { 338, 0xc8c0 }, { 343, 0x0000 }, { 343, 0x0000 }, { 343, 0x0000 },
- /* 0x2600 */
- { 343, 0x0060 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 },
- { 345, 0x0005 },
-};
-static const Summary16 gb2312_uni2indx_page30[35] = {
- /* 0x3000 */
- { 347, 0xff2f }, { 360, 0x00fb }, { 367, 0x0000 }, { 367, 0x0000 },
- { 367, 0xfffe }, { 382, 0xffff }, { 398, 0xffff }, { 414, 0xffff },
- { 430, 0xffff }, { 446, 0x000f }, { 450, 0xfffe }, { 465, 0xffff },
- { 481, 0xffff }, { 497, 0xffff }, { 513, 0xffff }, { 529, 0x087f },
- /* 0x3100 */
- { 537, 0xffe0 }, { 548, 0xffff }, { 564, 0x03ff }, { 574, 0x0000 },
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 },
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 },
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 },
- /* 0x3200 */
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x03ff },
-};
-static const Summary16 gb2312_uni2indx_page4e[1263] = {
- /* 0x4e00 */
- { 584, 0x7f8b }, { 595, 0x7f7b }, { 608, 0x3db4 }, { 617, 0xef55 },
- { 628, 0xfba8 }, { 638, 0xf35d }, { 649, 0x0243 }, { 653, 0x400b },
- { 657, 0xfb40 }, { 665, 0x8d3e }, { 674, 0x7bf7 }, { 687, 0x8c2c },
- { 693, 0x6eff }, { 706, 0xe3fa }, { 717, 0x1d3a }, { 725, 0xa8ed },
- /* 0x4f00 */
- { 734, 0xe602 }, { 740, 0xcf83 }, { 749, 0x8cf5 }, { 758, 0x3555 },
- { 766, 0xe048 }, { 771, 0xffab }, { 784, 0x92b9 }, { 792, 0xd859 },
- { 800, 0xab18 }, { 807, 0x2892 }, { 812, 0xd7e9 }, { 823, 0x8020 },
- { 825, 0xc438 }, { 831, 0xf583 }, { 840, 0xe74a }, { 849, 0x450a },
- /* 0x5000 */
- { 854, 0xb000 }, { 857, 0x9714 }, { 864, 0x7762 }, { 873, 0x5400 },
- { 876, 0xd188 }, { 882, 0x1420 }, { 885, 0x1020 }, { 887, 0xc8c0 },
- { 892, 0x2121 }, { 896, 0x0000 }, { 896, 0x13a8 }, { 902, 0x0c04 },
- { 905, 0x8000 }, { 906, 0x0440 }, { 908, 0x70c0 }, { 913, 0x0828 },
- /* 0x5100 */
- { 916, 0x08c0 }, { 919, 0x0004 }, { 920, 0x0002 }, { 921, 0x8000 },
- { 922, 0x2b7b }, { 932, 0x1472 }, { 938, 0x7924 }, { 945, 0x3bfb },
- { 957, 0x3327 }, { 965, 0x1ae4 }, { 972, 0x9835 }, { 979, 0x38ef },
- { 989, 0x9ad1 }, { 997, 0x2802 }, { 1000, 0xa813 }, { 1006, 0xbf69 },
- /* 0x5200 */
- { 1017, 0x65cf }, { 1027, 0x2fc6 }, { 1036, 0x6b11 }, { 1043, 0xafc9 },
- { 1053, 0x340f }, { 1060, 0x5053 }, { 1066, 0x86a2 }, { 1072, 0xa004 },
- { 1075, 0x0106 }, { 1078, 0xe809 }, { 1084, 0x3f0f }, { 1094, 0xc00e },
- { 1099, 0x0a88 }, { 1103, 0x8145 }, { 1108, 0x0010 }, { 1109, 0xc601 },
- /* 0x5300 */
- { 1114, 0xa161 }, { 1120, 0x26e1 }, { 1127, 0x444b }, { 1133, 0xce00 },
- { 1138, 0xc7aa }, { 1147, 0xd4ee }, { 1157, 0xcadf }, { 1168, 0x85bb },
- { 1177, 0x3a74 }, { 1185, 0xa520 }, { 1190, 0x436c }, { 1197, 0x8840 },
- { 1200, 0x3f06 }, { 1208, 0x8bd2 }, { 1216, 0xff79 }, { 1229, 0x3bef },
- /* 0x5400 */
- { 1241, 0xf75a }, { 1252, 0xe8ef }, { 1263, 0xfbcb }, { 1275, 0x5b36 },
- { 1284, 0x0d49 }, { 1290, 0x1bfd }, { 1301, 0x0154 }, { 1305, 0x39ee },
- { 1315, 0xd855 }, { 1323, 0x2e75 }, { 1332, 0xbfd8 }, { 1343, 0xa91a },
- { 1350, 0xf3d7 }, { 1362, 0xf6bf }, { 1375, 0x67e0 }, { 1383, 0xb40c },
- /* 0x5500 */
- { 1389, 0x82c2 }, { 1394, 0x0813 }, { 1398, 0xd49d }, { 1407, 0xd08b },
- { 1414, 0x065a }, { 1420, 0x1061 }, { 1424, 0x74f2 }, { 1433, 0x59e0 },
- { 1440, 0x8f9f }, { 1451, 0xb312 }, { 1458, 0x0080 }, { 1459, 0x6aaa },
- { 1467, 0x3230 }, { 1472, 0xb05e }, { 1480, 0x9d7a }, { 1490, 0x60ac },
- /* 0x5600 */
- { 1496, 0xd303 }, { 1503, 0xc900 }, { 1507, 0x3098 }, { 1512, 0x8a56 },
- { 1519, 0x7000 }, { 1522, 0x1390 }, { 1527, 0x1f14 }, { 1534, 0x1842 },
- { 1538, 0xc060 }, { 1542, 0x0008 }, { 1543, 0x8008 }, { 1545, 0x1080 },
- { 1547, 0x0400 }, { 1548, 0xec90 }, { 1555, 0x2817 }, { 1561, 0xe633 },
- /* 0x5700 */
- { 1570, 0x0758 }, { 1576, 0x9000 }, { 1578, 0xf708 }, { 1586, 0x4e09 },
- { 1592, 0xf485 }, { 1600, 0xfc83 }, { 1609, 0xaf53 }, { 1619, 0x18c8 },
- { 1624, 0x187c }, { 1631, 0x080c }, { 1634, 0x6adf }, { 1645, 0x0114 },
- { 1648, 0xc80c }, { 1653, 0xa734 }, { 1661, 0xa011 }, { 1665, 0x2710 },
- /* 0x5800 */
- { 1670, 0x28c5 }, { 1676, 0x4222 }, { 1680, 0x0413 }, { 1684, 0x0021 },
- { 1686, 0x3010 }, { 1689, 0x4112 }, { 1693, 0x1820 }, { 1696, 0x4000 },
- { 1697, 0x022b }, { 1702, 0xc60c }, { 1708, 0x0300 }, { 1710, 0x1000 },
- { 1711, 0x0022 }, { 1713, 0x0022 }, { 1715, 0x5810 }, { 1719, 0x0249 },
- /* 0x5900 */
- { 1723, 0xa094 }, { 1728, 0x9670 }, { 1735, 0xeeb0 }, { 1744, 0x1792 },
- { 1751, 0xcb96 }, { 1760, 0x05f2 }, { 1767, 0x0025 }, { 1770, 0x2358 },
- { 1776, 0x25de }, { 1785, 0x42cc }, { 1791, 0xcf38 }, { 1800, 0x4a04 },
- { 1804, 0x0c40 }, { 1807, 0x359f }, { 1817, 0x1128 }, { 1821, 0x8a00 },
- /* 0x5a00 */
- { 1824, 0x13fa }, { 1833, 0x910a }, { 1838, 0x0229 }, { 1842, 0x1056 },
- { 1847, 0x0641 }, { 1851, 0x0420 }, { 1853, 0x0484 }, { 1856, 0x84f0 },
- { 1862, 0x0000 }, { 1862, 0x0c04 }, { 1865, 0x0400 }, { 1866, 0x412c },
- { 1871, 0x1206 }, { 1875, 0x1154 }, { 1880, 0x0a4b }, { 1886, 0x0002 },
- /* 0x5b00 */
- { 1887, 0x0200 }, { 1888, 0x00c0 }, { 1890, 0x0000 }, { 1890, 0x0094 },
- { 1893, 0x0001 }, { 1894, 0xbfbb }, { 1907, 0x167c }, { 1915, 0x242b },
- { 1921, 0x9bbb }, { 1932, 0x7fa8 }, { 1942, 0x0c7f }, { 1951, 0xe379 },
- { 1961, 0x10f4 }, { 1967, 0xe00d }, { 1973, 0x4132 }, { 1978, 0x9f01 },
- /* 0x5c00 */
- { 1985, 0x8652 }, { 1991, 0x3572 }, { 1999, 0x10b4 }, { 2004, 0xff12 },
- { 2014, 0xcf27 }, { 2024, 0x4223 }, { 2029, 0xc06b }, { 2036, 0x8602 },
- { 2040, 0x3106 }, { 2045, 0x1fd3 }, { 2055, 0x3a0c }, { 2061, 0xa1aa },
- { 2068, 0x0812 }, { 2071, 0x0204 }, { 2073, 0x2572 }, { 2080, 0x0801 },
- /* 0x5d00 */
- { 2082, 0x40cc }, { 2087, 0x4850 }, { 2091, 0x62d0 }, { 2097, 0x6010 },
- { 2100, 0x1c80 }, { 2104, 0x2900 }, { 2107, 0x9a00 }, { 2111, 0x0010 },
- { 2112, 0x0004 }, { 2113, 0x2200 }, { 2115, 0x0000 }, { 2115, 0x0080 },
- { 2116, 0x2020 }, { 2118, 0x6800 }, { 2121, 0xcbe6 }, { 2131, 0x609e },
- /* 0x5e00 */
- { 2138, 0x916e }, { 2146, 0x3f73 }, { 2157, 0x60c0 }, { 2161, 0x3982 },
- { 2167, 0x1034 }, { 2171, 0x4830 }, { 2175, 0x0006 }, { 2177, 0xbd5c },
- { 2187, 0x8cd1 }, { 2194, 0xd6fb }, { 2206, 0x20e1 }, { 2211, 0x43e8 },
- { 2218, 0x0600 }, { 2220, 0x084e }, { 2225, 0x0500 }, { 2227, 0xc4d0 },
- /* 0x5f00 */
- { 2233, 0x8d1f }, { 2242, 0x89aa }, { 2249, 0xa6e1 }, { 2257, 0x1602 },
- { 2261, 0x0001 }, { 2262, 0x21ed }, { 2270, 0x3656 }, { 2278, 0x1a8b },
- { 2285, 0x1fb7 }, { 2296, 0x13a5 }, { 2303, 0x6502 }, { 2308, 0x30a0 },
- { 2312, 0xb278 }, { 2320, 0x23c7 }, { 2328, 0x6c93 }, { 2336, 0xe922 },
- /* 0x6000 */
- { 2343, 0xe47f }, { 2354, 0x3a74 }, { 2362, 0x8fe3 }, { 2372, 0x9820 },
- { 2376, 0x280e }, { 2381, 0x2625 }, { 2387, 0xbf9c }, { 2398, 0xbf49 },
- { 2408, 0x3218 }, { 2413, 0xac54 }, { 2420, 0xb949 }, { 2428, 0x1916 },
- { 2434, 0x0c60 }, { 2438, 0xb522 }, { 2445, 0xfbc1 }, { 2455, 0x0659 },
- /* 0x6100 */
- { 2461, 0xe343 }, { 2469, 0x8420 }, { 2472, 0x08d9 }, { 2478, 0x8000 },
- { 2479, 0x5500 }, { 2483, 0x2022 }, { 2486, 0x0184 }, { 2489, 0x00a1 },
- { 2492, 0x4800 }, { 2494, 0x2010 }, { 2496, 0x1380 }, { 2500, 0x4080 },
- { 2502, 0x0d04 }, { 2506, 0x0016 }, { 2509, 0x0040 }, { 2510, 0x8020 },
- /* 0x6200 */
- { 2512, 0xfd40 }, { 2520, 0x8de7 }, { 2530, 0x5436 }, { 2537, 0xe098 },
- { 2543, 0x7b8b }, { 2553, 0x091e }, { 2559, 0xfec8 }, { 2569, 0xd249 },
- { 2576, 0x0611 }, { 2580, 0x8dee }, { 2590, 0x1937 }, { 2598, 0xba22 },
- { 2605, 0x77f4 }, { 2616, 0x9fdd }, { 2628, 0xf3ec }, { 2639, 0xf0da },
- /* 0x6300 */
- { 2648, 0x4386 }, { 2654, 0xec42 }, { 2661, 0x8d3f }, { 2671, 0x2604 },
- { 2675, 0xfa6c }, { 2685, 0xc021 }, { 2689, 0x628e }, { 2696, 0x0cc2 },
- { 2701, 0xd785 }, { 2710, 0x0145 }, { 2714, 0x77ad }, { 2725, 0x5599 },
- { 2733, 0xe250 }, { 2739, 0x4045 }, { 2743, 0x260b }, { 2749, 0xa154 },
- /* 0x6400 */
- { 2755, 0x9827 }, { 2762, 0x5819 }, { 2768, 0x3443 }, { 2774, 0xa410 },
- { 2778, 0x05f2 }, { 2785, 0x4114 }, { 2789, 0x2280 }, { 2792, 0x0700 },
- { 2795, 0x00b4 }, { 2799, 0x4266 }, { 2805, 0x7210 }, { 2810, 0x15a1 },
- { 2816, 0x6025 }, { 2821, 0x4185 }, { 2826, 0x0054 }, { 2829, 0x0000 },
- /* 0x6500 */
- { 2829, 0x0201 }, { 2831, 0x0104 }, { 2833, 0xc820 }, { 2837, 0xcb70 },
- { 2845, 0x9320 }, { 2850, 0x6a62 }, { 2857, 0x184c }, { 2862, 0x0095 },
- { 2866, 0x1880 }, { 2869, 0x9a8b }, { 2877, 0xaab2 }, { 2885, 0x3201 },
- { 2889, 0xd87a }, { 2898, 0x00c4 }, { 2901, 0xf3e5 }, { 2912, 0x04c3 },
- /* 0x6600 */
- { 2917, 0xd44d }, { 2925, 0xa238 }, { 2931, 0xa1a1 }, { 2937, 0x5072 },
- { 2943, 0x980a }, { 2948, 0x84fc }, { 2956, 0xc152 }, { 2962, 0x44d1 },
- { 2968, 0x1094 }, { 2972, 0x20c2 }, { 2976, 0x4180 }, { 2979, 0x4210 },
- { 2982, 0x0000 }, { 2982, 0x3a00 }, { 2986, 0x0240 }, { 2988, 0xd29d },
- /* 0x6700 */
- { 2997, 0x2f01 }, { 3003, 0xa8b1 }, { 3010, 0xbd40 }, { 3017, 0x2432 },
- { 3022, 0xd34d }, { 3031, 0xd04b }, { 3038, 0xa723 }, { 3046, 0xd0ad },
- { 3054, 0x0a92 }, { 3059, 0x75a1 }, { 3067, 0xadac }, { 3076, 0x01e9 },
- { 3082, 0x801a }, { 3086, 0x771f }, { 3097, 0x9225 }, { 3103, 0xa01b },
- /* 0x6800 */
- { 3109, 0xdfa1 }, { 3119, 0x20ca }, { 3124, 0x0602 }, { 3127, 0x738c },
- { 3135, 0x577f }, { 3147, 0x003b }, { 3152, 0x0bff }, { 3163, 0x00d0 },
- { 3166, 0x806a }, { 3171, 0x0088 }, { 3173, 0xa1c4 }, { 3179, 0x0029 },
- { 3182, 0x2a05 }, { 3187, 0x0524 }, { 3191, 0x4009 }, { 3194, 0x1623 },
- /* 0x6900 */
- { 3200, 0x6822 }, { 3205, 0x8005 }, { 3208, 0x2011 }, { 3211, 0xa211 },
- { 3216, 0x0004 }, { 3217, 0x6490 }, { 3222, 0x4849 }, { 3227, 0x1382 },
- { 3232, 0x23d5 }, { 3240, 0x1930 }, { 3245, 0x2980 }, { 3249, 0x0892 },
- { 3253, 0x5402 }, { 3257, 0x8811 }, { 3261, 0x2001 }, { 3263, 0xa004 },
- /* 0x6a00 */
- { 3266, 0x0400 }, { 3267, 0x8180 }, { 3270, 0x8502 }, { 3274, 0x6022 },
- { 3278, 0x0090 }, { 3280, 0x0b01 }, { 3284, 0x0022 }, { 3286, 0x1202 },
- { 3289, 0x4011 }, { 3292, 0x0083 }, { 3295, 0x1a01 }, { 3299, 0x0000 },
- { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 },
- /* 0x6b00 */
- { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x009f }, { 3305, 0x4684 },
- { 3310, 0x12c8 }, { 3315, 0x0200 }, { 3316, 0x04fc }, { 3323, 0x1a00 },
- { 3326, 0x2ede }, { 3336, 0x0c4c }, { 3341, 0x0402 }, { 3343, 0x80b8 },
- { 3348, 0xa826 }, { 3354, 0x0afc }, { 3362, 0x8c02 }, { 3366, 0x2228 },
- /* 0x6c00 */
- { 3370, 0xa0e0 }, { 3375, 0x8f7b }, { 3386, 0xc7d6 }, { 3396, 0x2135 },
- { 3402, 0x06c7 }, { 3409, 0xf8b1 }, { 3418, 0x0713 }, { 3424, 0x6255 },
- { 3431, 0x936e }, { 3440, 0x8a19 }, { 3446, 0x6efa }, { 3457, 0xfb0e },
- { 3467, 0x1630 }, { 3472, 0x48f9 }, { 3480, 0xcd2f }, { 3490, 0x7deb },
- /* 0x6d00 */
- { 3502, 0x5892 }, { 3508, 0x4e84 }, { 3514, 0x4ca0 }, { 3519, 0x7a2e },
- { 3528, 0xedea }, { 3539, 0x561e }, { 3547, 0xc649 }, { 3554, 0x1190 },
- { 3558, 0x5324 }, { 3564, 0xe83a }, { 3572, 0xcfdb }, { 3584, 0x8124 },
- { 3588, 0x18f1 }, { 3595, 0x6342 }, { 3601, 0x5853 }, { 3608, 0x1a8a },
- /* 0x6e00 */
- { 3614, 0x7420 }, { 3619, 0x24d3 }, { 3626, 0xaa3b }, { 3635, 0x0514 },
- { 3639, 0x6018 }, { 3643, 0x8958 }, { 3649, 0x4800 }, { 3651, 0xc000 },
- { 3653, 0x8268 }, { 3658, 0x9101 }, { 3662, 0x84a4 }, { 3667, 0x2cd6 },
- { 3675, 0x8886 }, { 3680, 0xc4ba }, { 3688, 0x0377 }, { 3696, 0x0210 },
- /* 0x6f00 */
- { 3698, 0x8244 }, { 3702, 0x0038 }, { 3705, 0xae11 }, { 3712, 0x404a },
- { 3716, 0x28c0 }, { 3720, 0x5100 }, { 3723, 0x6044 }, { 3727, 0x1514 },
- { 3732, 0x7310 }, { 3738, 0x1000 }, { 3739, 0x0082 }, { 3741, 0x0248 },
- { 3744, 0x0205 }, { 3747, 0x4006 }, { 3750, 0xc003 }, { 3754, 0x0000 },
- /* 0x7000 */
- { 3754, 0x0000 }, { 3754, 0x0c02 }, { 3757, 0x0008 }, { 3758, 0x0220 },
- { 3760, 0x9000 }, { 3762, 0x4000 }, { 3763, 0xb800 }, { 3767, 0xd161 },
- { 3774, 0x4621 }, { 3779, 0x3274 }, { 3786, 0xf800 }, { 3791, 0x3b8a },
- { 3799, 0x050f }, { 3805, 0x8b00 }, { 3809, 0xbbd0 }, { 3818, 0x2280 },
- /* 0x7100 */
- { 3821, 0x0600 }, { 3823, 0x0769 }, { 3830, 0x8040 }, { 3832, 0x0043 },
- { 3835, 0x5420 }, { 3839, 0x5000 }, { 3841, 0x41d0 }, { 3846, 0x250c },
- { 3851, 0x8410 }, { 3854, 0x8310 }, { 3858, 0x1101 }, { 3861, 0x0228 },
- { 3864, 0x4008 }, { 3866, 0x0030 }, { 3868, 0x40a1 }, { 3872, 0x0200 },
- /* 0x7200 */
- { 3873, 0x0040 }, { 3874, 0x2000 }, { 3875, 0x1500 }, { 3878, 0xabe3 },
- { 3888, 0x3180 }, { 3892, 0xaa44 }, { 3898, 0xc2c6 }, { 3905, 0xc624 },
- { 3911, 0xac13 }, { 3918, 0x8004 }, { 3920, 0xb000 }, { 3923, 0x03d1 },
- { 3929, 0x611e }, { 3936, 0x4285 }, { 3941, 0xf303 }, { 3949, 0x1d9f },
- /* 0x7300 */
- { 3959, 0x440a }, { 3963, 0x78e8 }, { 3971, 0x5e26 }, { 3979, 0xc392 },
- { 3986, 0x2000 }, { 3987, 0x0085 }, { 3990, 0xb001 }, { 3994, 0x4000 },
- { 3995, 0x4a90 }, { 4000, 0x8842 }, { 4004, 0xca04 }, { 4009, 0x0c8d },
- { 4015, 0xa705 }, { 4022, 0x4203 }, { 4026, 0x22a1 }, { 4031, 0x0004 },
- /* 0x7400 */
- { 4032, 0x8668 }, { 4038, 0x0c01 }, { 4041, 0x5564 }, { 4048, 0x1079 },
- { 4054, 0x0002 }, { 4055, 0xdea0 }, { 4063, 0x2000 }, { 4064, 0x40c1 },
- { 4068, 0x488b }, { 4074, 0x5001 }, { 4077, 0x0380 }, { 4080, 0x0400 },
- { 4081, 0x0000 }, { 4081, 0x5004 }, { 4084, 0xc05d }, { 4091, 0x80d0 },
- /* 0x7500 */
- { 4095, 0xa010 }, { 4098, 0x970a }, { 4105, 0xbb20 }, { 4112, 0x4daf },
- { 4122, 0xd921 }, { 4129, 0x1e10 }, { 4134, 0x0460 }, { 4137, 0x8314 },
- { 4142, 0x8848 }, { 4146, 0xa6d6 }, { 4155, 0xd83b }, { 4164, 0x733f },
- { 4175, 0x27bc }, { 4184, 0x4974 }, { 4191, 0x0ddc }, { 4199, 0x9213 },
- /* 0x7600 */
- { 4205, 0x142b }, { 4211, 0x8ba1 }, { 4218, 0x2e75 }, { 4227, 0xd139 },
- { 4235, 0x3009 }, { 4239, 0x5050 }, { 4243, 0x8808 }, { 4246, 0x6900 },
- { 4250, 0x49d4 }, { 4257, 0x024a }, { 4261, 0x4010 }, { 4263, 0x8016 },
- { 4267, 0xe564 }, { 4275, 0x89d7 }, { 4284, 0xc020 }, { 4287, 0x5316 },
- /* 0x7700 */
- { 4294, 0x2b92 }, { 4301, 0x8600 }, { 4304, 0xa345 }, { 4311, 0x15e0 },
- { 4317, 0x008b }, { 4321, 0x0c03 }, { 4325, 0x196e }, { 4333, 0xe200 },
- { 4337, 0x7031 }, { 4343, 0x8006 }, { 4346, 0x16a5 }, { 4353, 0xa829 },
- { 4359, 0x2000 }, { 4360, 0x1880 }, { 4363, 0x7aac }, { 4372, 0xe148 },
- /* 0x7800 */
- { 4378, 0x3207 }, { 4384, 0xb5d6 }, { 4394, 0x32e8 }, { 4401, 0x5f91 },
- { 4410, 0x50a1 }, { 4415, 0x20e5 }, { 4421, 0x7c00 }, { 4426, 0x1080 },
- { 4428, 0x7280 }, { 4433, 0x9d8a }, { 4441, 0x00aa }, { 4445, 0x421f },
- { 4452, 0x0e22 }, { 4457, 0x0231 }, { 4461, 0x1100 }, { 4463, 0x0494 },
- /* 0x7900 */
- { 4467, 0x0022 }, { 4469, 0x4008 }, { 4471, 0x0010 }, { 4472, 0x5c10 },
- { 4477, 0x0343 }, { 4482, 0xfcc8 }, { 4491, 0xa1a5 }, { 4498, 0x0580 },
- { 4501, 0x8433 }, { 4507, 0x0400 }, { 4508, 0x0080 }, { 4509, 0x6e08 },
- { 4515, 0x2a4b }, { 4522, 0x8126 }, { 4527, 0xaad8 }, { 4535, 0x2901 },
- /* 0x7a00 */
- { 4539, 0x684d }, { 4546, 0x4490 }, { 4550, 0x0009 }, { 4552, 0xba88 },
- { 4559, 0x0040 }, { 4560, 0x0082 }, { 4562, 0x0000 }, { 4562, 0x87d1 },
- { 4570, 0x215b }, { 4577, 0xb1e6 }, { 4586, 0x3161 }, { 4592, 0x8008 },
- { 4594, 0x0800 }, { 4595, 0xc240 }, { 4599, 0xa069 }, { 4605, 0xa600 },
- /* 0x7b00 */
- { 4609, 0x8d58 }, { 4616, 0x4a32 }, { 4622, 0x5d71 }, { 4631, 0x550a },
- { 4637, 0x9aa0 }, { 4643, 0x2d57 }, { 4652, 0x4005 }, { 4655, 0x4aa6 },
- { 4662, 0x2021 }, { 4665, 0x30b1 }, { 4671, 0x3fc6 }, { 4681, 0x0112 },
- { 4684, 0x10c2 }, { 4688, 0x260a }, { 4693, 0x4462 }, { 4698, 0x5082 },
- /* 0x7c00 */
- { 4702, 0x9880 }, { 4706, 0x8040 }, { 4708, 0x04c0 }, { 4711, 0x8100 },
- { 4713, 0x2003 }, { 4716, 0x0000 }, { 4716, 0x0000 }, { 4716, 0x3818 },
- { 4721, 0x0200 }, { 4722, 0xf1a6 }, { 4731, 0x4434 }, { 4736, 0x720e },
- { 4743, 0x35a2 }, { 4750, 0x92e0 }, { 4756, 0x8101 }, { 4759, 0x0900 },
- /* 0x7d00 */
- { 4761, 0x0400 }, { 4762, 0x0000 }, { 4762, 0x8885 }, { 4767, 0x0000 },
- { 4767, 0x0000 }, { 4767, 0x0000 }, { 4767, 0x4000 }, { 4768, 0x0080 },
- { 4769, 0x0000 }, { 4769, 0x0000 }, { 4769, 0x4040 }, { 4771, 0x0000 },
- { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 },
- /* 0x7e00 */
- { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0800 },
- { 4772, 0x0082 }, { 4774, 0x0000 }, { 4774, 0x0000 }, { 4774, 0x0000 },
- { 4774, 0x0004 }, { 4775, 0x8800 }, { 4777, 0xbfff }, { 4792, 0xe7ef },
- { 4805, 0xffff }, { 4821, 0xffbf }, { 4836, 0xefef }, { 4850, 0xfdff },
- /* 0x7f00 */
- { 4865, 0xfbff }, { 4880, 0xbffe }, { 4894, 0xffff }, { 4910, 0x057f },
- { 4919, 0x0034 }, { 4922, 0x85b3 }, { 4930, 0x4706 }, { 4936, 0x4216 },
- { 4941, 0x5402 }, { 4945, 0xe410 }, { 4950, 0x8092 }, { 4954, 0xb305 },
- { 4961, 0x5422 }, { 4966, 0x8130 }, { 4970, 0x4263 }, { 4976, 0x180b },
- /* 0x8000 */
- { 4981, 0x387b }, { 4990, 0x13f5 }, { 4999, 0x07e5 }, { 5007, 0xa9ea },
- { 5016, 0x3c4c }, { 5023, 0x0514 }, { 5027, 0x0600 }, { 5029, 0x8002 },
- { 5031, 0x1ad9 }, { 5039, 0xbd48 }, { 5047, 0xee37 }, { 5058, 0xf496 },
- { 5067, 0x705f }, { 5076, 0x7ec0 }, { 5084, 0xbfb2 }, { 5095, 0x355f },
- /* 0x8100 */
- { 5105, 0xe644 }, { 5112, 0x455f }, { 5121, 0x9000 }, { 5123, 0x4146 },
- { 5128, 0x1d40 }, { 5133, 0x063b }, { 5140, 0x62a1 }, { 5146, 0xfe13 },
- { 5156, 0x8505 }, { 5161, 0x3902 }, { 5166, 0x0548 }, { 5170, 0x0c08 },
- { 5173, 0x144f }, { 5180, 0x0000 }, { 5180, 0x3488 }, { 5185, 0x5818 },
- /* 0x8200 */
- { 5190, 0x3077 }, { 5198, 0xd815 }, { 5205, 0xbd0e }, { 5214, 0x4bfb },
- { 5225, 0x8a90 }, { 5230, 0x8500 }, { 5233, 0xc100 }, { 5236, 0xe61d },
- { 5245, 0xed14 }, { 5253, 0xb386 }, { 5261, 0xff72 }, { 5273, 0x639b },
- { 5282, 0xfd92 }, { 5292, 0xd9be }, { 5303, 0x887b }, { 5311, 0x0a92 },
- /* 0x8300 */
- { 5316, 0xd3fe }, { 5328, 0x1cb2 }, { 5335, 0xb980 }, { 5341, 0x177a },
- { 5350, 0x82c9 }, { 5356, 0xdc17 }, { 5365, 0xfffb }, { 5380, 0x3980 },
- { 5385, 0x4260 }, { 5389, 0x590c }, { 5395, 0x0f01 }, { 5400, 0x37df },
- { 5412, 0x94a3 }, { 5419, 0xb150 }, { 5425, 0x0623 }, { 5430, 0x2307 },
- /* 0x8400 */
- { 5436, 0xf85a }, { 5445, 0x3102 }, { 5449, 0x01f0 }, { 5454, 0x3102 },
- { 5458, 0x0040 }, { 5459, 0x1e82 }, { 5465, 0x3a0a }, { 5471, 0x056a },
- { 5477, 0x5b84 }, { 5484, 0x1280 }, { 5487, 0x8002 }, { 5489, 0xa714 },
- { 5496, 0x2612 }, { 5501, 0xa04b }, { 5507, 0x1069 }, { 5512, 0x9001 },
- /* 0x8500 */
- { 5515, 0x1000 }, { 5516, 0x848a }, { 5521, 0x1802 }, { 5524, 0x3f80 },
- { 5531, 0x0708 }, { 5535, 0x4240 }, { 5538, 0x0110 }, { 5540, 0x4e14 },
- { 5546, 0x80b0 }, { 5550, 0x1800 }, { 5552, 0xc510 }, { 5557, 0x0281 },
- { 5560, 0x8202 }, { 5563, 0x1029 }, { 5567, 0x0210 }, { 5569, 0x8800 },
- /* 0x8600 */
- { 5571, 0x0020 }, { 5572, 0x0042 }, { 5574, 0x0280 }, { 5576, 0x1100 },
- { 5578, 0xe000 }, { 5581, 0x4413 }, { 5586, 0x5804 }, { 5590, 0xfe02 },
- { 5598, 0x3c07 }, { 5605, 0x3028 }, { 5609, 0x9798 }, { 5617, 0x0473 },
- { 5623, 0xced1 }, { 5632, 0xcb13 }, { 5640, 0x6210 }, { 5644, 0x431f },
- /* 0x8700 */
- { 5652, 0x278d }, { 5660, 0x55ac }, { 5668, 0x422e }, { 5674, 0xc892 },
- { 5680, 0x5380 }, { 5685, 0x0288 }, { 5688, 0x4039 }, { 5693, 0x7851 },
- { 5700, 0x292c }, { 5706, 0x8088 }, { 5709, 0xb900 }, { 5714, 0x2428 },
- { 5718, 0x0c41 }, { 5722, 0x080e }, { 5726, 0x4421 }, { 5730, 0x4200 },
- /* 0x8800 */
- { 5732, 0x0408 }, { 5734, 0x0868 }, { 5738, 0x0006 }, { 5740, 0x1204 },
- { 5743, 0x3031 }, { 5748, 0x0290 }, { 5751, 0x5b3e }, { 5761, 0xe085 },
- { 5767, 0x2936 }, { 5774, 0x1044 }, { 5777, 0x2814 }, { 5781, 0x1082 },
- { 5784, 0x4266 }, { 5790, 0x8334 }, { 5796, 0x013c }, { 5801, 0x531b },
- /* 0x8900 */
- { 5809, 0x0404 }, { 5811, 0x0e0d }, { 5817, 0x0c22 }, { 5821, 0x0051 },
- { 5824, 0x0012 }, { 5826, 0xc000 }, { 5828, 0x0040 }, { 5829, 0x8800 },
- { 5831, 0x004a }, { 5834, 0x0000 }, { 5834, 0x0000 }, { 5834, 0x0000 },
- { 5834, 0xdff6 }, { 5847, 0x5447 }, { 5854, 0x8868 }, { 5859, 0x0008 },
- /* 0x8a00 */
- { 5860, 0x0081 }, { 5862, 0x0000 }, { 5862, 0x0000 }, { 5862, 0x4000 },
- { 5863, 0x0100 }, { 5864, 0x0000 }, { 5864, 0x0000 }, { 5864, 0x0200 },
- { 5865, 0x0600 }, { 5867, 0x0008 }, { 5868, 0x0000 }, { 5868, 0x0000 },
- { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 },
- /* 0x8b00 */
- { 5868, 0x0080 }, { 5869, 0x0000 }, { 5869, 0x0040 }, { 5870, 0x0000 },
- { 5870, 0x0000 }, { 5870, 0x0000 }, { 5870, 0x1040 }, { 5872, 0x0000 },
- { 5872, 0x0000 }, { 5872, 0x0000 }, { 5872, 0xefff }, { 5887, 0xf7fd },
- { 5901, 0xff7f }, { 5916, 0xfffe }, { 5931, 0xfbff }, { 5946, 0xffff },
- /* 0x8c00 */
- { 5962, 0xfdff }, { 5977, 0xbfff }, { 5992, 0xffff }, { 6008, 0x00ff },
- { 6016, 0x12c2 }, { 6021, 0x0420 }, { 6023, 0x0c06 }, { 6027, 0x0708 },
- { 6031, 0x1624 }, { 6036, 0x0110 }, { 6038, 0x0000 }, { 6038, 0x0000 },
- { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 },
- /* 0x8d00 */
- { 6038, 0x0000 }, { 6038, 0xe000 }, { 6041, 0xfffe }, { 6056, 0xffff },
- { 6072, 0xffff }, { 6088, 0x7f79 }, { 6100, 0x28df }, { 6109, 0x00f9 },
- { 6115, 0x0c32 }, { 6120, 0x8012 }, { 6123, 0x0008 }, { 6124, 0xd53a },
- { 6133, 0xd858 }, { 6140, 0xecc2 }, { 6148, 0x9d18 }, { 6155, 0x2fa8 },
- /* 0x8e00 */
- { 6163, 0x9620 }, { 6168, 0xe010 }, { 6172, 0xd60c }, { 6179, 0x2622 },
- { 6184, 0x0f97 }, { 6193, 0x0206 }, { 6196, 0xb240 }, { 6201, 0x9055 },
- { 6207, 0x80a2 }, { 6211, 0x5011 }, { 6215, 0x9800 }, { 6218, 0x0404 },
- { 6220, 0x4000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 },
- /* 0x8f00 */
- { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 },
- { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0xfbc0 }, { 6230, 0xffff },
- { 6246, 0xeffe }, { 6260, 0xdffb }, { 6274, 0x0b08 }, { 6278, 0x6243 },
- { 6284, 0x41b6 }, { 6291, 0xfb3b }, { 6303, 0x6f74 }, { 6313, 0x2389 },
- /* 0x9000 */
- { 6319, 0xae7f }, { 6331, 0xecd7 }, { 6342, 0xe047 }, { 6349, 0x5960 },
- { 6355, 0xa096 }, { 6361, 0x098f }, { 6368, 0x612c }, { 6374, 0xa030 },
- { 6378, 0x090d }, { 6383, 0x2aaa }, { 6390, 0xd44e }, { 6398, 0x4f7b },
- { 6409, 0xc4b2 }, { 6416, 0x388b }, { 6423, 0xa9c6 }, { 6431, 0x6110 },
- /* 0x9100 */
- { 6435, 0x0014 }, { 6437, 0x4200 }, { 6439, 0x800c }, { 6442, 0x0202 },
- { 6444, 0xfe48 }, { 6453, 0x6485 }, { 6459, 0xd63e }, { 6469, 0xe3f7 },
- { 6481, 0x3aa0 }, { 6487, 0x0c07 }, { 6492, 0xe40c }, { 6498, 0x0430 },
- { 6501, 0xf680 }, { 6508, 0x1002 }, { 6510, 0x0000 }, { 6510, 0x0000 },
- /* 0x9200 */
- { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 },
- { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0010 },
- { 6511, 0x4000 }, { 6512, 0x0000 }, { 6512, 0x4000 }, { 6513, 0x0000 },
- { 6513, 0x0100 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 },
- /* 0x9300 */
- { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x4000 },
- { 6515, 0x0000 }, { 6515, 0x0000 }, { 6515, 0x0400 }, { 6516, 0x0000 },
- { 6516, 0x8000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, { 6517, 0x0000 },
- { 6517, 0x0400 }, { 6518, 0x0040 }, { 6519, 0x0000 }, { 6519, 0x0000 },
- /* 0x9400 */
- { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x4000 },
- { 6520, 0x0000 }, { 6520, 0x0000 }, { 6520, 0x0800 }, { 6521, 0x0000 },
- { 6521, 0xffe0 }, { 6532, 0xfebd }, { 6545, 0xffff }, { 6561, 0xffff },
- { 6577, 0x7f7f }, { 6591, 0xfbe7 }, { 6604, 0xffbf }, { 6619, 0xf7ff },
- /* 0x9500 */
- { 6634, 0xffff }, { 6650, 0xefff }, { 6665, 0xff7e }, { 6679, 0xdff7 },
- { 6693, 0xf6f7 }, { 6706, 0xfbdf }, { 6720, 0xbffe }, { 6734, 0x804f },
- { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 },
- { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0xef00 }, { 6747, 0x7fff },
- /* 0x9600 */
- { 6762, 0xff7f }, { 6777, 0xb6f7 }, { 6789, 0x4406 }, { 6793, 0xb87e },
- { 6803, 0x3bf5 }, { 6814, 0x8831 }, { 6819, 0x1796 }, { 6827, 0x00f4 },
- { 6832, 0xa960 }, { 6838, 0x1391 }, { 6844, 0x0080 }, { 6845, 0x7249 },
- { 6852, 0xf2f3 }, { 6863, 0x0024 }, { 6865, 0x8701 }, { 6870, 0x42c8 },
- /* 0x9700 */
- { 6875, 0xe3d3 }, { 6885, 0x5048 }, { 6889, 0x2400 }, { 6891, 0x4305 },
- { 6896, 0x0000 }, { 6896, 0x4a4c }, { 6902, 0x0227 }, { 6907, 0x1058 },
- { 6911, 0x2820 }, { 6914, 0x0116 }, { 6918, 0xa809 }, { 6923, 0x0014 },
- { 6925, 0x0000 }, { 6925, 0x0000 }, { 6925, 0x3ec0 }, { 6932, 0x0068 },
- /* 0x9800 */
- { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 },
- { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0xffe0 },
- { 6946, 0xb7ff }, { 6960, 0xfddb }, { 6973, 0x00f7 }, { 6980, 0x0000 },
- { 6980, 0x4000 }, { 6981, 0xc72e }, { 6990, 0x0180 }, { 6992, 0x0000 },
- /* 0x9900 */
- { 6992, 0x2000 }, { 6993, 0x0001 }, { 6994, 0x4000 }, { 6995, 0x0000 },
- { 6995, 0x0000 }, { 6995, 0x0030 }, { 6997, 0xffa8 }, { 7008, 0xb4f7 },
- { 7019, 0xadf3 }, { 7030, 0x03ff }, { 7040, 0x0120 }, { 7042, 0x0000 },
- { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 },
- /* 0x9a00 */
- { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 },
- { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0xf000 }, { 7046, 0xfffb },
- { 7061, 0x9df7 }, { 7073, 0xfdcf }, { 7086, 0x01bf }, { 7094, 0x15c3 },
- { 7101, 0x1827 }, { 7107, 0x810a }, { 7111, 0xa842 }, { 7116, 0x0a00 },
- /* 0x9b00 */
- { 7118, 0x8108 }, { 7121, 0x8008 }, { 7123, 0x8008 }, { 7125, 0x1804 },
- { 7128, 0xa3be }, { 7138, 0x0012 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- /* 0x9c00 */
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x9000 },
- { 7142, 0x69e6 }, { 7151, 0xdc37 }, { 7161, 0x6bff }, { 7174, 0x3dff },
- { 7187, 0xfcf8 }, { 7198, 0xf3f9 }, { 7210, 0x0004 },
-};
-static const Summary16 gb2312_uni2indx_page9e[27] = {
- /* 0x9e00 */
- { 7211, 0x0000 }, { 7211, 0x8000 }, { 7212, 0xbf6f }, { 7225, 0xe7ee },
- { 7237, 0xdffe }, { 7251, 0x5da2 }, { 7259, 0x3fd8 }, { 7269, 0xc00b },
- { 7274, 0x0984 }, { 7278, 0xa00c }, { 7282, 0x0040 }, { 7283, 0x6910 },
- { 7288, 0xe210 }, { 7293, 0xb912 }, { 7300, 0x86a5 }, { 7307, 0x5a00 },
- /* 0x9f00 */
- { 7311, 0x6800 }, { 7314, 0x0289 }, { 7318, 0x9005 }, { 7322, 0x6a80 },
- { 7327, 0x0010 }, { 7328, 0x0003 }, { 7330, 0x0000 }, { 7330, 0x8000 },
- { 7331, 0x1ff9 }, { 7342, 0x8e00 }, { 7346, 0x0001 },
-};
-static const Summary16 gb2312_uni2indx_pageff[15] = {
- /* 0xff00 */
- { 7347, 0xfffe }, { 7362, 0xffff }, { 7378, 0xffff }, { 7394, 0xffff },
- { 7410, 0xffff }, { 7426, 0x7fff }, { 7441, 0x0000 }, { 7441, 0x0000 },
- { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 },
- { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b },
-};
-
-INTERNAL int gb2312_wctomb_zint(unsigned int* r, unsigned int wc) {
- const Summary16 *summary = NULL;
- if (wc < 0x0460) {
- if (wc == 0x00b7) { /* ZINT: Patched to duplicate map to 0xA1A4 */
- *r = 0xA1A4;
- return 2;
- }
- summary = &gb2312_uni2indx_page00[(wc>>4)];
- } else if (wc >= 0x2000 && wc < 0x2650) {
- if (wc == 0x2014) { /* ZINT: Patched to duplicate map to 0xA1AA */
- *r = 0xA1AA;
- return 2;
- }
- summary = &gb2312_uni2indx_page20[(wc>>4)-0x200];
- } else if (wc >= 0x3000 && wc < 0x3230) {
- summary = &gb2312_uni2indx_page30[(wc>>4)-0x300];
- } else if (wc >= 0x4e00 && wc < 0x9cf0) {
- summary = &gb2312_uni2indx_page4e[(wc>>4)-0x4e0];
- } else if (wc >= 0x9e00 && wc < 0x9fb0) {
- summary = &gb2312_uni2indx_page9e[(wc>>4)-0x9e0];
- } else if (wc >= 0xff00 && wc < 0xfff0) {
- summary = &gb2312_uni2indx_pageff[(wc>>4)-0xff0];
- }
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- /* Keep in 'used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add 'summary->indx' and the number of bits set in 'used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- *r = gb2312_2charset[summary->indx + used];
- return 2;
- }
- }
- return 0;
-}
-
-/* Convert UTF-8 string to GB 2312 (EUC-CN) and place in array of ints */
-INTERNAL int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
- int error_number;
- unsigned int i, length;
-#ifndef _MSC_VER
- unsigned int utfdata[*p_length + 1];
-#else
- unsigned int* utfdata = (unsigned int*) _alloca((*p_length + 1) * sizeof(unsigned int));
-#endif
-
- error_number = utf8_to_unicode(symbol, source, utfdata, p_length, 1 /*disallow_4byte*/);
- if (error_number != 0) {
- return error_number;
- }
-
- for (i = 0, length = *p_length; i < length; i++) {
- if (utfdata[i] < 0x80) {
- gbdata[i] = utfdata[i];
- } else {
- if (!gb2312_wctomb_zint(gbdata + i, utfdata[i])) {
- strcpy(symbol->errtxt, "810: Invalid character in input data");
- return ZINT_ERROR_INVALID_DATA;
- }
- }
- }
-
- return 0;
-}
-
-/* Convert UTF-8 string to single byte ECI and place in array of ints */
-INTERNAL int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte) {
- int error_number;
-#ifndef _MSC_VER
- unsigned char single_byte[*p_length + 1];
-#else
- unsigned char* single_byte = (unsigned char*) _alloca(*p_length + 1);
-#endif
-
- error_number = utf_to_eci(eci, source, single_byte, p_length);
- if (error_number != 0) {
- /* Note not setting `symbol->errtxt`, up to caller */
- return error_number;
- }
-
- gb2312_cpy(single_byte, p_length, gbdata, full_multibyte);
-
- return 0;
-}
-
-/* If `full_multibyte` set, copy byte input stream to array of ints, putting double-bytes that match GRIDMATRIX Chinese mode in a single entry.
- * If `full_multibyte` not set, do a straight copy */
-INTERNAL void gb2312_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte) {
- unsigned int i, j, length;
- unsigned char c1, c2;
-
- if (full_multibyte) {
- for (i = 0, j = 0, length = *p_length; i < length; i++, j++) {
- if (length - i >= 2) {
- c1 = source[i];
- c2 = source[i + 1];
- if (((c1 >= 0xA1 && c1 <= 0xA9) || (c1 >= 0xB0 && c1 <= 0xF7)) && c2 >= 0xA1 && c2 <= 0xFE) {
- /* This may or may not be valid GB 2312 (EUC-CN), but don't care as long as it can be encoded in GRIDMATRIX Chinese mode */
- gbdata[j] = (c1 << 8) | c2;
- i++;
- } else {
- gbdata[j] = c1;
- }
- } else {
- gbdata[j] = source[i];
- }
- }
- *p_length = j;
- } else {
- /* Straight copy */
- for (i = 0, length = *p_length; i < length; i++) {
- gbdata[i] = source[i];
- }
- }
-}
-/* gb2312.h - Unicode to GB 2312-1980 (EUC-CN)
+/* gb2312.h - Unicode to GB 2312-1980 lookup table
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-#ifndef GB2312_H
-#define GB2312_H
+static const unsigned short int gb2312_lookup[] = {
+ 0x00A4, 0xA1E8,
+ 0x00A7, 0xA1EC,
+ 0x00A8, 0xA1A7,
+ 0x00B0, 0xA1E3,
+ 0x00B1, 0xA1C0,
+ 0x00B7, 0xA1A4,
+ 0x00D7, 0xA1C1,
+ 0x00E0, 0xA8A4,
+ 0x00E1, 0xA8A2,
+ 0x00E8, 0xA8A8,
+ 0x00E9, 0xA8A6,
+ 0x00EA, 0xA8BA,
+ 0x00EC, 0xA8AC,
+ 0x00ED, 0xA8AA,
+ 0x00F2, 0xA8B0,
+ 0x00F3, 0xA8AE,
+ 0x00F7, 0xA1C2,
+ 0x00F9, 0xA8B4,
+ 0x00FA, 0xA8B2,
+ 0x00FC, 0xA8B9,
+ 0x0101, 0xA8A1,
+ 0x0113, 0xA8A5,
+ 0x011B, 0xA8A7,
+ 0x012B, 0xA8A9,
+ 0x014D, 0xA8AD,
+ 0x016B, 0xA8B1,
+ 0x01CE, 0xA8A3,
+ 0x01D0, 0xA8AB,
+ 0x01D2, 0xA8AF,
+ 0x01D4, 0xA8B3,
+ 0x01D6, 0xA8B5,
+ 0x01D8, 0xA8B6,
+ 0x01DA, 0xA8B7,
+ 0x01DC, 0xA8B8,
+ 0x02C7, 0xA1A6,
+ 0x02C9, 0xA1A5,
+ 0x0391, 0xA6A1,
+ 0x0392, 0xA6A2,
+ 0x0393, 0xA6A3,
+ 0x0394, 0xA6A4,
+ 0x0395, 0xA6A5,
+ 0x0396, 0xA6A6,
+ 0x0397, 0xA6A7,
+ 0x0398, 0xA6A8,
+ 0x0399, 0xA6A9,
+ 0x039A, 0xA6AA,
+ 0x039B, 0xA6AB,
+ 0x039C, 0xA6AC,
+ 0x039D, 0xA6AD,
+ 0x039E, 0xA6AE,
+ 0x039F, 0xA6AF,
+ 0x03A0, 0xA6B0,
+ 0x03A1, 0xA6B1,
+ 0x03A3, 0xA6B2,
+ 0x03A4, 0xA6B3,
+ 0x03A5, 0xA6B4,
+ 0x03A6, 0xA6B5,
+ 0x03A7, 0xA6B6,
+ 0x03A8, 0xA6B7,
+ 0x03A9, 0xA6B8,
+ 0x03B1, 0xA6C1,
+ 0x03B2, 0xA6C2,
+ 0x03B3, 0xA6C3,
+ 0x03B4, 0xA6C4,
+ 0x03B5, 0xA6C5,
+ 0x03B6, 0xA6C6,
+ 0x03B7, 0xA6C7,
+ 0x03B8, 0xA6C8,
+ 0x03B9, 0xA6C9,
+ 0x03BA, 0xA6CA,
+ 0x03BB, 0xA6CB,
+ 0x03BC, 0xA6CC,
+ 0x03BD, 0xA6CD,
+ 0x03BE, 0xA6CE,
+ 0x03BF, 0xA6CF,
+ 0x03C0, 0xA6D0,
+ 0x03C1, 0xA6D1,
+ 0x03C3, 0xA6D2,
+ 0x03C4, 0xA6D3,
+ 0x03C5, 0xA6D4,
+ 0x03C6, 0xA6D5,
+ 0x03C7, 0xA6D6,
+ 0x03C8, 0xA6D7,
+ 0x03C9, 0xA6D8,
+ 0x0401, 0xA7A7,
+ 0x0410, 0xA7A1,
+ 0x0411, 0xA7A2,
+ 0x0412, 0xA7A3,
+ 0x0413, 0xA7A4,
+ 0x0414, 0xA7A5,
+ 0x0415, 0xA7A6,
+ 0x0416, 0xA7A8,
+ 0x0417, 0xA7A9,
+ 0x0418, 0xA7AA,
+ 0x0419, 0xA7AB,
+ 0x041A, 0xA7AC,
+ 0x041B, 0xA7AD,
+ 0x041C, 0xA7AE,
+ 0x041D, 0xA7AF,
+ 0x041E, 0xA7B0,
+ 0x041F, 0xA7B1,
+ 0x0420, 0xA7B2,
+ 0x0421, 0xA7B3,
+ 0x0422, 0xA7B4,
+ 0x0423, 0xA7B5,
+ 0x0424, 0xA7B6,
+ 0x0425, 0xA7B7,
+ 0x0426, 0xA7B8,
+ 0x0427, 0xA7B9,
+ 0x0428, 0xA7BA,
+ 0x0429, 0xA7BB,
+ 0x042A, 0xA7BC,
+ 0x042B, 0xA7BD,
+ 0x042C, 0xA7BE,
+ 0x042D, 0xA7BF,
+ 0x042E, 0xA7C0,
+ 0x042F, 0xA7C1,
+ 0x0430, 0xA7D1,
+ 0x0431, 0xA7D2,
+ 0x0432, 0xA7D3,
+ 0x0433, 0xA7D4,
+ 0x0434, 0xA7D5,
+ 0x0435, 0xA7D6,
+ 0x0436, 0xA7D8,
+ 0x0437, 0xA7D9,
+ 0x0438, 0xA7DA,
+ 0x0439, 0xA7DB,
+ 0x043A, 0xA7DC,
+ 0x043B, 0xA7DD,
+ 0x043C, 0xA7DE,
+ 0x043D, 0xA7DF,
+ 0x043E, 0xA7E0,
+ 0x043F, 0xA7E1,
+ 0x0440, 0xA7E2,
+ 0x0441, 0xA7E3,
+ 0x0442, 0xA7E4,
+ 0x0443, 0xA7E5,
+ 0x0444, 0xA7E6,
+ 0x0445, 0xA7E7,
+ 0x0446, 0xA7E8,
+ 0x0447, 0xA7E9,
+ 0x0448, 0xA7EA,
+ 0x0449, 0xA7EB,
+ 0x044A, 0xA7EC,
+ 0x044B, 0xA7ED,
+ 0x044C, 0xA7EE,
+ 0x044D, 0xA7EF,
+ 0x044E, 0xA7F0,
+ 0x044F, 0xA7F1,
+ 0x0451, 0xA7D7,
+ 0x2014, 0xA1AA,
+ 0x2016, 0xA1AC,
+ 0x2018, 0xA1AE,
+ 0x2019, 0xA1AF,
+ 0x201C, 0xA1B0,
+ 0x201D, 0xA1B1,
+ 0x2026, 0xA1AD,
+ 0x2030, 0xA1EB,
+ 0x2032, 0xA1E4,
+ 0x2033, 0xA1E5,
+ 0x203B, 0xA1F9,
+ 0x2103, 0xA1E6,
+ 0x2116, 0xA1ED,
+ 0x2160, 0xA2F1,
+ 0x2161, 0xA2F2,
+ 0x2162, 0xA2F3,
+ 0x2163, 0xA2F4,
+ 0x2164, 0xA2F5,
+ 0x2165, 0xA2F6,
+ 0x2166, 0xA2F7,
+ 0x2167, 0xA2F8,
+ 0x2168, 0xA2F9,
+ 0x2169, 0xA2FA,
+ 0x216A, 0xA2FB,
+ 0x216B, 0xA2FC,
+ 0x2190, 0xA1FB,
+ 0x2191, 0xA1FC,
+ 0x2192, 0xA1FA,
+ 0x2193, 0xA1FD,
+ 0x2208, 0xA1CA,
+ 0x220F, 0xA1C7,
+ 0x2211, 0xA1C6,
+ 0x221A, 0xA1CC,
+ 0x221D, 0xA1D8,
+ 0x221E, 0xA1DE,
+ 0x2220, 0xA1CF,
+ 0x2225, 0xA1CE,
+ 0x2227, 0xA1C4,
+ 0x2228, 0xA1C5,
+ 0x2229, 0xA1C9,
+ 0x222A, 0xA1C8,
+ 0x222B, 0xA1D2,
+ 0x222E, 0xA1D3,
+ 0x2234, 0xA1E0,
+ 0x2235, 0xA1DF,
+ 0x2236, 0xA1C3,
+ 0x2237, 0xA1CB,
+ 0x223D, 0xA1D7,
+ 0x2248, 0xA1D6,
+ 0x224C, 0xA1D5,
+ 0x2260, 0xA1D9,
+ 0x2261, 0xA1D4,
+ 0x2264, 0xA1DC,
+ 0x2265, 0xA1DD,
+ 0x226E, 0xA1DA,
+ 0x226F, 0xA1DB,
+ 0x2299, 0xA1D1,
+ 0x22A5, 0xA1CD,
+ 0x2312, 0xA1D0,
+ 0x2460, 0xA2D9,
+ 0x2461, 0xA2DA,
+ 0x2462, 0xA2DB,
+ 0x2463, 0xA2DC,
+ 0x2464, 0xA2DD,
+ 0x2465, 0xA2DE,
+ 0x2466, 0xA2DF,
+ 0x2467, 0xA2E0,
+ 0x2468, 0xA2E1,
+ 0x2469, 0xA2E2,
+ 0x2474, 0xA2C5,
+ 0x2475, 0xA2C6,
+ 0x2476, 0xA2C7,
+ 0x2477, 0xA2C8,
+ 0x2478, 0xA2C9,
+ 0x2479, 0xA2CA,
+ 0x247A, 0xA2CB,
+ 0x247B, 0xA2CC,
+ 0x247C, 0xA2CD,
+ 0x247D, 0xA2CE,
+ 0x247E, 0xA2CF,
+ 0x247F, 0xA2D0,
+ 0x2480, 0xA2D1,
+ 0x2481, 0xA2D2,
+ 0x2482, 0xA2D3,
+ 0x2483, 0xA2D4,
+ 0x2484, 0xA2D5,
+ 0x2485, 0xA2D6,
+ 0x2486, 0xA2D7,
+ 0x2487, 0xA2D8,
+ 0x2488, 0xA2B1,
+ 0x2489, 0xA2B2,
+ 0x248A, 0xA2B3,
+ 0x248B, 0xA2B4,
+ 0x248C, 0xA2B5,
+ 0x248D, 0xA2B6,
+ 0x248E, 0xA2B7,
+ 0x248F, 0xA2B8,
+ 0x2490, 0xA2B9,
+ 0x2491, 0xA2BA,
+ 0x2492, 0xA2BB,
+ 0x2493, 0xA2BC,
+ 0x2494, 0xA2BD,
+ 0x2495, 0xA2BE,
+ 0x2496, 0xA2BF,
+ 0x2497, 0xA2C0,
+ 0x2498, 0xA2C1,
+ 0x2499, 0xA2C2,
+ 0x249A, 0xA2C3,
+ 0x249B, 0xA2C4,
+ 0x2500, 0xA9A4,
+ 0x2501, 0xA9A5,
+ 0x2502, 0xA9A6,
+ 0x2503, 0xA9A7,
+ 0x2504, 0xA9A8,
+ 0x2505, 0xA9A9,
+ 0x2506, 0xA9AA,
+ 0x2507, 0xA9AB,
+ 0x2508, 0xA9AC,
+ 0x2509, 0xA9AD,
+ 0x250A, 0xA9AE,
+ 0x250B, 0xA9AF,
+ 0x250C, 0xA9B0,
+ 0x250D, 0xA9B1,
+ 0x250E, 0xA9B2,
+ 0x250F, 0xA9B3,
+ 0x2510, 0xA9B4,
+ 0x2511, 0xA9B5,
+ 0x2512, 0xA9B6,
+ 0x2513, 0xA9B7,
+ 0x2514, 0xA9B8,
+ 0x2515, 0xA9B9,
+ 0x2516, 0xA9BA,
+ 0x2517, 0xA9BB,
+ 0x2518, 0xA9BC,
+ 0x2519, 0xA9BD,
+ 0x251A, 0xA9BE,
+ 0x251B, 0xA9BF,
+ 0x251C, 0xA9C0,
+ 0x251D, 0xA9C1,
+ 0x251E, 0xA9C2,
+ 0x251F, 0xA9C3,
+ 0x2520, 0xA9C4,
+ 0x2521, 0xA9C5,
+ 0x2522, 0xA9C6,
+ 0x2523, 0xA9C7,
+ 0x2524, 0xA9C8,
+ 0x2525, 0xA9C9,
+ 0x2526, 0xA9CA,
+ 0x2527, 0xA9CB,
+ 0x2528, 0xA9CC,
+ 0x2529, 0xA9CD,
+ 0x252A, 0xA9CE,
+ 0x252B, 0xA9CF,
+ 0x252C, 0xA9D0,
+ 0x252D, 0xA9D1,
+ 0x252E, 0xA9D2,
+ 0x252F, 0xA9D3,
+ 0x2530, 0xA9D4,
+ 0x2531, 0xA9D5,
+ 0x2532, 0xA9D6,
+ 0x2533, 0xA9D7,
+ 0x2534, 0xA9D8,
+ 0x2535, 0xA9D9,
+ 0x2536, 0xA9DA,
+ 0x2537, 0xA9DB,
+ 0x2538, 0xA9DC,
+ 0x2539, 0xA9DD,
+ 0x253A, 0xA9DE,
+ 0x253B, 0xA9DF,
+ 0x253C, 0xA9E0,
+ 0x253D, 0xA9E1,
+ 0x253E, 0xA9E2,
+ 0x253F, 0xA9E3,
+ 0x2540, 0xA9E4,
+ 0x2541, 0xA9E5,
+ 0x2542, 0xA9E6,
+ 0x2543, 0xA9E7,
+ 0x2544, 0xA9E8,
+ 0x2545, 0xA9E9,
+ 0x2546, 0xA9EA,
+ 0x2547, 0xA9EB,
+ 0x2548, 0xA9EC,
+ 0x2549, 0xA9ED,
+ 0x254A, 0xA9EE,
+ 0x254B, 0xA9EF,
+ 0x25A0, 0xA1F6,
+ 0x25A1, 0xA1F5,
+ 0x25B2, 0xA1F8,
+ 0x25B3, 0xA1F7,
+ 0x25C6, 0xA1F4,
+ 0x25C7, 0xA1F3,
+ 0x25CB, 0xA1F0,
+ 0x25CE, 0xA1F2,
+ 0x25CF, 0xA1F1,
+ 0x2605, 0xA1EF,
+ 0x2606, 0xA1EE,
+ 0x2640, 0xA1E2,
+ 0x2642, 0xA1E1,
+ 0x3000, 0xA1A1,
+ 0x3001, 0xA1A2,
+ 0x3002, 0xA1A3,
+ 0x3003, 0xA1A8,
+ 0x3005, 0xA1A9,
+ 0x3008, 0xA1B4,
+ 0x3009, 0xA1B5,
+ 0x300A, 0xA1B6,
+ 0x300B, 0xA1B7,
+ 0x300C, 0xA1B8,
+ 0x300D, 0xA1B9,
+ 0x300E, 0xA1BA,
+ 0x300F, 0xA1BB,
+ 0x3010, 0xA1BE,
+ 0x3011, 0xA1BF,
+ 0x3013, 0xA1FE,
+ 0x3014, 0xA1B2,
+ 0x3015, 0xA1B3,
+ 0x3016, 0xA1BC,
+ 0x3017, 0xA1BD,
+ 0x3041, 0xA4A1,
+ 0x3042, 0xA4A2,
+ 0x3043, 0xA4A3,
+ 0x3044, 0xA4A4,
+ 0x3045, 0xA4A5,
+ 0x3046, 0xA4A6,
+ 0x3047, 0xA4A7,
+ 0x3048, 0xA4A8,
+ 0x3049, 0xA4A9,
+ 0x304A, 0xA4AA,
+ 0x304B, 0xA4AB,
+ 0x304C, 0xA4AC,
+ 0x304D, 0xA4AD,
+ 0x304E, 0xA4AE,
+ 0x304F, 0xA4AF,
+ 0x3050, 0xA4B0,
+ 0x3051, 0xA4B1,
+ 0x3052, 0xA4B2,
+ 0x3053, 0xA4B3,
+ 0x3054, 0xA4B4,
+ 0x3055, 0xA4B5,
+ 0x3056, 0xA4B6,
+ 0x3057, 0xA4B7,
+ 0x3058, 0xA4B8,
+ 0x3059, 0xA4B9,
+ 0x305A, 0xA4BA,
+ 0x305B, 0xA4BB,
+ 0x305C, 0xA4BC,
+ 0x305D, 0xA4BD,
+ 0x305E, 0xA4BE,
+ 0x305F, 0xA4BF,
+ 0x3060, 0xA4C0,
+ 0x3061, 0xA4C1,
+ 0x3062, 0xA4C2,
+ 0x3063, 0xA4C3,
+ 0x3064, 0xA4C4,
+ 0x3065, 0xA4C5,
+ 0x3066, 0xA4C6,
+ 0x3067, 0xA4C7,
+ 0x3068, 0xA4C8,
+ 0x3069, 0xA4C9,
+ 0x306A, 0xA4CA,
+ 0x306B, 0xA4CB,
+ 0x306C, 0xA4CC,
+ 0x306D, 0xA4CD,
+ 0x306E, 0xA4CE,
+ 0x306F, 0xA4CF,
+ 0x3070, 0xA4D0,
+ 0x3071, 0xA4D1,
+ 0x3072, 0xA4D2,
+ 0x3073, 0xA4D3,
+ 0x3074, 0xA4D4,
+ 0x3075, 0xA4D5,
+ 0x3076, 0xA4D6,
+ 0x3077, 0xA4D7,
+ 0x3078, 0xA4D8,
+ 0x3079, 0xA4D9,
+ 0x307A, 0xA4DA,
+ 0x307B, 0xA4DB,
+ 0x307C, 0xA4DC,
+ 0x307D, 0xA4DD,
+ 0x307E, 0xA4DE,
+ 0x307F, 0xA4DF,
+ 0x3080, 0xA4E0,
+ 0x3081, 0xA4E1,
+ 0x3082, 0xA4E2,
+ 0x3083, 0xA4E3,
+ 0x3084, 0xA4E4,
+ 0x3085, 0xA4E5,
+ 0x3086, 0xA4E6,
+ 0x3087, 0xA4E7,
+ 0x3088, 0xA4E8,
+ 0x3089, 0xA4E9,
+ 0x308A, 0xA4EA,
+ 0x308B, 0xA4EB,
+ 0x308C, 0xA4EC,
+ 0x308D, 0xA4ED,
+ 0x308E, 0xA4EE,
+ 0x308F, 0xA4EF,
+ 0x3090, 0xA4F0,
+ 0x3091, 0xA4F1,
+ 0x3092, 0xA4F2,
+ 0x3093, 0xA4F3,
+ 0x30A1, 0xA5A1,
+ 0x30A2, 0xA5A2,
+ 0x30A3, 0xA5A3,
+ 0x30A4, 0xA5A4,
+ 0x30A5, 0xA5A5,
+ 0x30A6, 0xA5A6,
+ 0x30A7, 0xA5A7,
+ 0x30A8, 0xA5A8,
+ 0x30A9, 0xA5A9,
+ 0x30AA, 0xA5AA,
+ 0x30AB, 0xA5AB,
+ 0x30AC, 0xA5AC,
+ 0x30AD, 0xA5AD,
+ 0x30AE, 0xA5AE,
+ 0x30AF, 0xA5AF,
+ 0x30B0, 0xA5B0,
+ 0x30B1, 0xA5B1,
+ 0x30B2, 0xA5B2,
+ 0x30B3, 0xA5B3,
+ 0x30B4, 0xA5B4,
+ 0x30B5, 0xA5B5,
+ 0x30B6, 0xA5B6,
+ 0x30B7, 0xA5B7,
+ 0x30B8, 0xA5B8,
+ 0x30B9, 0xA5B9,
+ 0x30BA, 0xA5BA,
+ 0x30BB, 0xA5BB,
+ 0x30BC, 0xA5BC,
+ 0x30BD, 0xA5BD,
+ 0x30BE, 0xA5BE,
+ 0x30BF, 0xA5BF,
+ 0x30C0, 0xA5C0,
+ 0x30C1, 0xA5C1,
+ 0x30C2, 0xA5C2,
+ 0x30C3, 0xA5C3,
+ 0x30C4, 0xA5C4,
+ 0x30C5, 0xA5C5,
+ 0x30C6, 0xA5C6,
+ 0x30C7, 0xA5C7,
+ 0x30C8, 0xA5C8,
+ 0x30C9, 0xA5C9,
+ 0x30CA, 0xA5CA,
+ 0x30CB, 0xA5CB,
+ 0x30CC, 0xA5CC,
+ 0x30CD, 0xA5CD,
+ 0x30CE, 0xA5CE,
+ 0x30CF, 0xA5CF,
+ 0x30D0, 0xA5D0,
+ 0x30D1, 0xA5D1,
+ 0x30D2, 0xA5D2,
+ 0x30D3, 0xA5D3,
+ 0x30D4, 0xA5D4,
+ 0x30D5, 0xA5D5,
+ 0x30D6, 0xA5D6,
+ 0x30D7, 0xA5D7,
+ 0x30D8, 0xA5D8,
+ 0x30D9, 0xA5D9,
+ 0x30DA, 0xA5DA,
+ 0x30DB, 0xA5DB,
+ 0x30DC, 0xA5DC,
+ 0x30DD, 0xA5DD,
+ 0x30DE, 0xA5DE,
+ 0x30DF, 0xA5DF,
+ 0x30E0, 0xA5E0,
+ 0x30E1, 0xA5E1,
+ 0x30E2, 0xA5E2,
+ 0x30E3, 0xA5E3,
+ 0x30E4, 0xA5E4,
+ 0x30E5, 0xA5E5,
+ 0x30E6, 0xA5E6,
+ 0x30E7, 0xA5E7,
+ 0x30E8, 0xA5E8,
+ 0x30E9, 0xA5E9,
+ 0x30EA, 0xA5EA,
+ 0x30EB, 0xA5EB,
+ 0x30EC, 0xA5EC,
+ 0x30ED, 0xA5ED,
+ 0x30EE, 0xA5EE,
+ 0x30EF, 0xA5EF,
+ 0x30F0, 0xA5F0,
+ 0x30F1, 0xA5F1,
+ 0x30F2, 0xA5F2,
+ 0x30F3, 0xA5F3,
+ 0x30F4, 0xA5F4,
+ 0x30F5, 0xA5F5,
+ 0x30F6, 0xA5F6,
+ 0x3105, 0xA8C5,
+ 0x3106, 0xA8C6,
+ 0x3107, 0xA8C7,
+ 0x3108, 0xA8C8,
+ 0x3109, 0xA8C9,
+ 0x310A, 0xA8CA,
+ 0x310B, 0xA8CB,
+ 0x310C, 0xA8CC,
+ 0x310D, 0xA8CD,
+ 0x310E, 0xA8CE,
+ 0x310F, 0xA8CF,
+ 0x3110, 0xA8D0,
+ 0x3111, 0xA8D1,
+ 0x3112, 0xA8D2,
+ 0x3113, 0xA8D3,
+ 0x3114, 0xA8D4,
+ 0x3115, 0xA8D5,
+ 0x3116, 0xA8D6,
+ 0x3117, 0xA8D7,
+ 0x3118, 0xA8D8,
+ 0x3119, 0xA8D9,
+ 0x311A, 0xA8DA,
+ 0x311B, 0xA8DB,
+ 0x311C, 0xA8DC,
+ 0x311D, 0xA8DD,
+ 0x311E, 0xA8DE,
+ 0x311F, 0xA8DF,
+ 0x3120, 0xA8E0,
+ 0x3121, 0xA8E1,
+ 0x3122, 0xA8E2,
+ 0x3123, 0xA8E3,
+ 0x3124, 0xA8E4,
+ 0x3125, 0xA8E5,
+ 0x3126, 0xA8E6,
+ 0x3127, 0xA8E7,
+ 0x3128, 0xA8E8,
+ 0x3129, 0xA8E9,
+ 0x3220, 0xA2E5,
+ 0x3221, 0xA2E6,
+ 0x3222, 0xA2E7,
+ 0x3223, 0xA2E8,
+ 0x3224, 0xA2E9,
+ 0x3225, 0xA2EA,
+ 0x3226, 0xA2EB,
+ 0x3227, 0xA2EC,
+ 0x3228, 0xA2ED,
+ 0x3229, 0xA2EE,
+ 0x4E00, 0xD2BB,
+ 0x4E01, 0xB6A1,
+ 0x4E03, 0xC6DF,
+ 0x4E07, 0xCDF2,
+ 0x4E08, 0xD5C9,
+ 0x4E09, 0xC8FD,
+ 0x4E0A, 0xC9CF,
+ 0x4E0B, 0xCFC2,
+ 0x4E0C, 0xD8A2,
+ 0x4E0D, 0xB2BB,
+ 0x4E0E, 0xD3EB,
+ 0x4E10, 0xD8A4,
+ 0x4E11, 0xB3F3,
+ 0x4E13, 0xD7A8,
+ 0x4E14, 0xC7D2,
+ 0x4E15, 0xD8A7,
+ 0x4E16, 0xCAC0,
+ 0x4E18, 0xC7F0,
+ 0x4E19, 0xB1FB,
+ 0x4E1A, 0xD2B5,
+ 0x4E1B, 0xB4D4,
+ 0x4E1C, 0xB6AB,
+ 0x4E1D, 0xCBBF,
+ 0x4E1E, 0xD8A9,
+ 0x4E22, 0xB6AA,
+ 0x4E24, 0xC1BD,
+ 0x4E25, 0xD1CF,
+ 0x4E27, 0xC9A5,
+ 0x4E28, 0xD8AD,
+ 0x4E2A, 0xB8F6,
+ 0x4E2B, 0xD1BE,
+ 0x4E2C, 0xE3DC,
+ 0x4E2D, 0xD6D0,
+ 0x4E30, 0xB7E1,
+ 0x4E32, 0xB4AE,
+ 0x4E34, 0xC1D9,
+ 0x4E36, 0xD8BC,
+ 0x4E38, 0xCDE8,
+ 0x4E39, 0xB5A4,
+ 0x4E3A, 0xCEAA,
+ 0x4E3B, 0xD6F7,
+ 0x4E3D, 0xC0F6,
+ 0x4E3E, 0xBED9,
+ 0x4E3F, 0xD8AF,
+ 0x4E43, 0xC4CB,
+ 0x4E45, 0xBEC3,
+ 0x4E47, 0xD8B1,
+ 0x4E48, 0xC3B4,
+ 0x4E49, 0xD2E5,
+ 0x4E4B, 0xD6AE,
+ 0x4E4C, 0xCEDA,
+ 0x4E4D, 0xD5A7,
+ 0x4E4E, 0xBAF5,
+ 0x4E4F, 0xB7A6,
+ 0x4E50, 0xC0D6,
+ 0x4E52, 0xC6B9,
+ 0x4E53, 0xC5D2,
+ 0x4E54, 0xC7C7,
+ 0x4E56, 0xB9D4,
+ 0x4E58, 0xB3CB,
+ 0x4E59, 0xD2D2,
+ 0x4E5C, 0xD8BF,
+ 0x4E5D, 0xBEC5,
+ 0x4E5E, 0xC6F2,
+ 0x4E5F, 0xD2B2,
+ 0x4E60, 0xCFB0,
+ 0x4E61, 0xCFE7,
+ 0x4E66, 0xCAE9,
+ 0x4E69, 0xD8C0,
+ 0x4E70, 0xC2F2,
+ 0x4E71, 0xC2D2,
+ 0x4E73, 0xC8E9,
+ 0x4E7E, 0xC7AC,
+ 0x4E86, 0xC1CB,
+ 0x4E88, 0xD3E8,
+ 0x4E89, 0xD5F9,
+ 0x4E8B, 0xCAC2,
+ 0x4E8C, 0xB6FE,
+ 0x4E8D, 0xD8A1,
+ 0x4E8E, 0xD3DA,
+ 0x4E8F, 0xBFF7,
+ 0x4E91, 0xD4C6,
+ 0x4E92, 0xBBA5,
+ 0x4E93, 0xD8C1,
+ 0x4E94, 0xCEE5,
+ 0x4E95, 0xBEAE,
+ 0x4E98, 0xD8A8,
+ 0x4E9A, 0xD1C7,
+ 0x4E9B, 0xD0A9,
+ 0x4E9F, 0xD8BD,
+ 0x4EA0, 0xD9EF,
+ 0x4EA1, 0xCDF6,
+ 0x4EA2, 0xBFBA,
+ 0x4EA4, 0xBDBB,
+ 0x4EA5, 0xBAA5,
+ 0x4EA6, 0xD2E0,
+ 0x4EA7, 0xB2FA,
+ 0x4EA8, 0xBAE0,
+ 0x4EA9, 0xC4B6,
+ 0x4EAB, 0xCFED,
+ 0x4EAC, 0xBEA9,
+ 0x4EAD, 0xCDA4,
+ 0x4EAE, 0xC1C1,
+ 0x4EB2, 0xC7D7,
+ 0x4EB3, 0xD9F1,
+ 0x4EB5, 0xD9F4,
+ 0x4EBA, 0xC8CB,
+ 0x4EBB, 0xD8E9,
+ 0x4EBF, 0xD2DA,
+ 0x4EC0, 0xCAB2,
+ 0x4EC1, 0xC8CA,
+ 0x4EC2, 0xD8EC,
+ 0x4EC3, 0xD8EA,
+ 0x4EC4, 0xD8C6,
+ 0x4EC5, 0xBDF6,
+ 0x4EC6, 0xC6CD,
+ 0x4EC7, 0xB3F0,
+ 0x4EC9, 0xD8EB,
+ 0x4ECA, 0xBDF1,
+ 0x4ECB, 0xBDE9,
+ 0x4ECD, 0xC8D4,
+ 0x4ECE, 0xB4D3,
+ 0x4ED1, 0xC2D8,
+ 0x4ED3, 0xB2D6,
+ 0x4ED4, 0xD7D0,
+ 0x4ED5, 0xCACB,
+ 0x4ED6, 0xCBFB,
+ 0x4ED7, 0xD5CC,
+ 0x4ED8, 0xB8B6,
+ 0x4ED9, 0xCFC9,
+ 0x4EDD, 0xD9DA,
+ 0x4EDE, 0xD8F0,
+ 0x4EDF, 0xC7AA,
+ 0x4EE1, 0xD8EE,
+ 0x4EE3, 0xB4FA,
+ 0x4EE4, 0xC1EE,
+ 0x4EE5, 0xD2D4,
+ 0x4EE8, 0xD8ED,
+ 0x4EEA, 0xD2C7,
+ 0x4EEB, 0xD8EF,
+ 0x4EEC, 0xC3C7,
+ 0x4EF0, 0xD1F6,
+ 0x4EF2, 0xD6D9,
+ 0x4EF3, 0xD8F2,
+ 0x4EF5, 0xD8F5,
+ 0x4EF6, 0xBCFE,
+ 0x4EF7, 0xBCDB,
+ 0x4EFB, 0xC8CE,
+ 0x4EFD, 0xB7DD,
+ 0x4EFF, 0xB7C2,
+ 0x4F01, 0xC6F3,
+ 0x4F09, 0xD8F8,
+ 0x4F0A, 0xD2C1,
+ 0x4F0D, 0xCEE9,
+ 0x4F0E, 0xBCBF,
+ 0x4F0F, 0xB7FC,
+ 0x4F10, 0xB7A5,
+ 0x4F11, 0xD0DD,
+ 0x4F17, 0xD6DA,
+ 0x4F18, 0xD3C5,
+ 0x4F19, 0xBBEF,
+ 0x4F1A, 0xBBE1,
+ 0x4F1B, 0xD8F1,
+ 0x4F1E, 0xC9A1,
+ 0x4F1F, 0xCEB0,
+ 0x4F20, 0xB4AB,
+ 0x4F22, 0xD8F3,
+ 0x4F24, 0xC9CB,
+ 0x4F25, 0xD8F6,
+ 0x4F26, 0xC2D7,
+ 0x4F27, 0xD8F7,
+ 0x4F2A, 0xCEB1,
+ 0x4F2B, 0xD8F9,
+ 0x4F2F, 0xB2AE,
+ 0x4F30, 0xB9C0,
+ 0x4F32, 0xD9A3,
+ 0x4F34, 0xB0E9,
+ 0x4F36, 0xC1E6,
+ 0x4F38, 0xC9EC,
+ 0x4F3A, 0xCBC5,
+ 0x4F3C, 0xCBC6,
+ 0x4F3D, 0xD9A4,
+ 0x4F43, 0xB5E8,
+ 0x4F46, 0xB5AB,
+ 0x4F4D, 0xCEBB,
+ 0x4F4E, 0xB5CD,
+ 0x4F4F, 0xD7A1,
+ 0x4F50, 0xD7F4,
+ 0x4F51, 0xD3D3,
+ 0x4F53, 0xCCE5,
+ 0x4F55, 0xBACE,
+ 0x4F57, 0xD9A2,
+ 0x4F58, 0xD9DC,
+ 0x4F59, 0xD3E0,
+ 0x4F5A, 0xD8FD,
+ 0x4F5B, 0xB7F0,
+ 0x4F5C, 0xD7F7,
+ 0x4F5D, 0xD8FE,
+ 0x4F5E, 0xD8FA,
+ 0x4F5F, 0xD9A1,
+ 0x4F60, 0xC4E3,
+ 0x4F63, 0xD3B6,
+ 0x4F64, 0xD8F4,
+ 0x4F65, 0xD9DD,
+ 0x4F67, 0xD8FB,
+ 0x4F69, 0xC5E5,
+ 0x4F6C, 0xC0D0,
+ 0x4F6F, 0xD1F0,
+ 0x4F70, 0xB0DB,
+ 0x4F73, 0xBCD1,
+ 0x4F74, 0xD9A6,
+ 0x4F76, 0xD9A5,
+ 0x4F7B, 0xD9AC,
+ 0x4F7C, 0xD9AE,
+ 0x4F7E, 0xD9AB,
+ 0x4F7F, 0xCAB9,
+ 0x4F83, 0xD9A9,
+ 0x4F84, 0xD6B6,
+ 0x4F88, 0xB3DE,
+ 0x4F89, 0xD9A8,
+ 0x4F8B, 0xC0FD,
+ 0x4F8D, 0xCACC,
+ 0x4F8F, 0xD9AA,
+ 0x4F91, 0xD9A7,
+ 0x4F94, 0xD9B0,
+ 0x4F97, 0xB6B1,
+ 0x4F9B, 0xB9A9,
+ 0x4F9D, 0xD2C0,
+ 0x4FA0, 0xCFC0,
+ 0x4FA3, 0xC2C2,
+ 0x4FA5, 0xBDC4,
+ 0x4FA6, 0xD5EC,
+ 0x4FA7, 0xB2E0,
+ 0x4FA8, 0xC7C8,
+ 0x4FA9, 0xBFEB,
+ 0x4FAA, 0xD9AD,
+ 0x4FAC, 0xD9AF,
+ 0x4FAE, 0xCEEA,
+ 0x4FAF, 0xBAEE,
+ 0x4FB5, 0xC7D6,
+ 0x4FBF, 0xB1E3,
+ 0x4FC3, 0xB4D9,
+ 0x4FC4, 0xB6ED,
+ 0x4FC5, 0xD9B4,
+ 0x4FCA, 0xBFA1,
+ 0x4FCE, 0xD9DE,
+ 0x4FCF, 0xC7CE,
+ 0x4FD0, 0xC0FE,
+ 0x4FD1, 0xD9B8,
+ 0x4FD7, 0xCBD7,
+ 0x4FD8, 0xB7FD,
+ 0x4FDA, 0xD9B5,
+ 0x4FDC, 0xD9B7,
+ 0x4FDD, 0xB1A3,
+ 0x4FDE, 0xD3E1,
+ 0x4FDF, 0xD9B9,
+ 0x4FE1, 0xD0C5,
+ 0x4FE3, 0xD9B6,
+ 0x4FE6, 0xD9B1,
+ 0x4FE8, 0xD9B2,
+ 0x4FE9, 0xC1A9,
+ 0x4FEA, 0xD9B3,
+ 0x4FED, 0xBCF3,
+ 0x4FEE, 0xD0DE,
+ 0x4FEF, 0xB8A9,
+ 0x4FF1, 0xBEE3,
+ 0x4FF3, 0xD9BD,
+ 0x4FF8, 0xD9BA,
+ 0x4FFA, 0xB0B3,
+ 0x4FFE, 0xD9C2,
+ 0x500C, 0xD9C4,
+ 0x500D, 0xB1B6,
+ 0x500F, 0xD9BF,
+ 0x5012, 0xB5B9,
+ 0x5014, 0xBEF3,
+ 0x5018, 0xCCC8,
+ 0x5019, 0xBAF2,
+ 0x501A, 0xD2D0,
+ 0x501C, 0xD9C3,
+ 0x501F, 0xBDE8,
+ 0x5021, 0xB3AB,
+ 0x5025, 0xD9C5,
+ 0x5026, 0xBEEB,
+ 0x5028, 0xD9C6,
+ 0x5029, 0xD9BB,
+ 0x502A, 0xC4DF,
+ 0x502C, 0xD9BE,
+ 0x502D, 0xD9C1,
+ 0x502E, 0xD9C0,
+ 0x503A, 0xD5AE,
+ 0x503C, 0xD6B5,
+ 0x503E, 0xC7E3,
+ 0x5043, 0xD9C8,
+ 0x5047, 0xBCD9,
+ 0x5048, 0xD9CA,
+ 0x504C, 0xD9BC,
+ 0x504E, 0xD9CB,
+ 0x504F, 0xC6AB,
+ 0x5055, 0xD9C9,
+ 0x505A, 0xD7F6,
+ 0x505C, 0xCDA3,
+ 0x5065, 0xBDA1,
+ 0x506C, 0xD9CC,
+ 0x5076, 0xC5BC,
+ 0x5077, 0xCDB5,
+ 0x507B, 0xD9CD,
+ 0x507E, 0xD9C7,
+ 0x507F, 0xB3A5,
+ 0x5080, 0xBFFE,
+ 0x5085, 0xB8B5,
+ 0x5088, 0xC0FC,
+ 0x508D, 0xB0F8,
+ 0x50A3, 0xB4F6,
+ 0x50A5, 0xD9CE,
+ 0x50A7, 0xD9CF,
+ 0x50A8, 0xB4A2,
+ 0x50A9, 0xD9D0,
+ 0x50AC, 0xB4DF,
+ 0x50B2, 0xB0C1,
+ 0x50BA, 0xD9D1,
+ 0x50BB, 0xC9B5,
+ 0x50CF, 0xCFF1,
+ 0x50D6, 0xD9D2,
+ 0x50DA, 0xC1C5,
+ 0x50E6, 0xD9D6,
+ 0x50E7, 0xC9AE,
+ 0x50EC, 0xD9D5,
+ 0x50ED, 0xD9D4,
+ 0x50EE, 0xD9D7,
+ 0x50F3, 0xCBDB,
+ 0x50F5, 0xBDA9,
+ 0x50FB, 0xC6A7,
+ 0x5106, 0xD9D3,
+ 0x5107, 0xD9D8,
+ 0x510B, 0xD9D9,
+ 0x5112, 0xC8E5,
+ 0x5121, 0xC0DC,
+ 0x513F, 0xB6F9,
+ 0x5140, 0xD8A3,
+ 0x5141, 0xD4CA,
+ 0x5143, 0xD4AA,
+ 0x5144, 0xD0D6,
+ 0x5145, 0xB3E4,
+ 0x5146, 0xD5D7,
+ 0x5148, 0xCFC8,
+ 0x5149, 0xB9E2,
+ 0x514B, 0xBFCB,
+ 0x514D, 0xC3E2,
+ 0x5151, 0xB6D2,
+ 0x5154, 0xCDC3,
+ 0x5155, 0xD9EE,
+ 0x5156, 0xD9F0,
+ 0x515A, 0xB5B3,
+ 0x515C, 0xB6B5,
+ 0x5162, 0xBEA4,
+ 0x5165, 0xC8EB,
+ 0x5168, 0xC8AB,
+ 0x516B, 0xB0CB,
+ 0x516C, 0xB9AB,
+ 0x516D, 0xC1F9,
+ 0x516E, 0xD9E2,
+ 0x5170, 0xC0BC,
+ 0x5171, 0xB9B2,
+ 0x5173, 0xB9D8,
+ 0x5174, 0xD0CB,
+ 0x5175, 0xB1F8,
+ 0x5176, 0xC6E4,
+ 0x5177, 0xBEDF,
+ 0x5178, 0xB5E4,
+ 0x5179, 0xD7C8,
+ 0x517B, 0xD1F8,
+ 0x517C, 0xBCE6,
+ 0x517D, 0xCADE,
+ 0x5180, 0xBCBD,
+ 0x5181, 0xD9E6,
+ 0x5182, 0xD8E7,
+ 0x5185, 0xC4DA,
+ 0x5188, 0xB8D4,
+ 0x5189, 0xC8BD,
+ 0x518C, 0xB2E1,
+ 0x518D, 0xD4D9,
+ 0x5192, 0xC3B0,
+ 0x5195, 0xC3E1,
+ 0x5196, 0xDAA2,
+ 0x5197, 0xC8DF,
+ 0x5199, 0xD0B4,
+ 0x519B, 0xBEFC,
+ 0x519C, 0xC5A9,
+ 0x51A0, 0xB9DA,
+ 0x51A2, 0xDAA3,
+ 0x51A4, 0xD4A9,
+ 0x51A5, 0xDAA4,
+ 0x51AB, 0xD9FB,
+ 0x51AC, 0xB6AC,
+ 0x51AF, 0xB7EB,
+ 0x51B0, 0xB1F9,
+ 0x51B1, 0xD9FC,
+ 0x51B2, 0xB3E5,
+ 0x51B3, 0xBEF6,
+ 0x51B5, 0xBFF6,
+ 0x51B6, 0xD2B1,
+ 0x51B7, 0xC0E4,
+ 0x51BB, 0xB6B3,
+ 0x51BC, 0xD9FE,
+ 0x51BD, 0xD9FD,
+ 0x51C0, 0xBEBB,
+ 0x51C4, 0xC6E0,
+ 0x51C6, 0xD7BC,
+ 0x51C7, 0xDAA1,
+ 0x51C9, 0xC1B9,
+ 0x51CB, 0xB5F2,
+ 0x51CC, 0xC1E8,
+ 0x51CF, 0xBCF5,
+ 0x51D1, 0xB4D5,
+ 0x51DB, 0xC1DD,
+ 0x51DD, 0xC4FD,
+ 0x51E0, 0xBCB8,
+ 0x51E1, 0xB7B2,
+ 0x51E4, 0xB7EF,
+ 0x51EB, 0xD9EC,
+ 0x51ED, 0xC6BE,
+ 0x51EF, 0xBFAD,
+ 0x51F0, 0xBBCB,
+ 0x51F3, 0xB5CA,
+ 0x51F5, 0xDBC9,
+ 0x51F6, 0xD0D7,
+ 0x51F8, 0xCDB9,
+ 0x51F9, 0xB0BC,
+ 0x51FA, 0xB3F6,
+ 0x51FB, 0xBBF7,
+ 0x51FC, 0xDBCA,
+ 0x51FD, 0xBAAF,
+ 0x51FF, 0xD4E4,
+ 0x5200, 0xB5B6,
+ 0x5201, 0xB5F3,
+ 0x5202, 0xD8D6,
+ 0x5203, 0xC8D0,
+ 0x5206, 0xB7D6,
+ 0x5207, 0xC7D0,
+ 0x5208, 0xD8D7,
+ 0x520A, 0xBFAF,
+ 0x520D, 0xDBBB,
+ 0x520E, 0xD8D8,
+ 0x5211, 0xD0CC,
+ 0x5212, 0xBBAE,
+ 0x5216, 0xEBBE,
+ 0x5217, 0xC1D0,
+ 0x5218, 0xC1F5,
+ 0x5219, 0xD4F2,
+ 0x521A, 0xB8D5,
+ 0x521B, 0xB4B4,
+ 0x521D, 0xB3F5,
+ 0x5220, 0xC9BE,
+ 0x5224, 0xC5D0,
+ 0x5228, 0xC5D9,
+ 0x5229, 0xC0FB,
+ 0x522B, 0xB1F0,
+ 0x522D, 0xD8D9,
+ 0x522E, 0xB9CE,
+ 0x5230, 0xB5BD,
+ 0x5233, 0xD8DA,
+ 0x5236, 0xD6C6,
+ 0x5237, 0xCBA2,
+ 0x5238, 0xC8AF,
+ 0x5239, 0xC9B2,
+ 0x523A, 0xB4CC,
+ 0x523B, 0xBFCC,
+ 0x523D, 0xB9F4,
+ 0x523F, 0xD8DB,
+ 0x5240, 0xD8DC,
+ 0x5241, 0xB6E7,
+ 0x5242, 0xBCC1,
+ 0x5243, 0xCCEA,
+ 0x524A, 0xCFF7,
+ 0x524C, 0xD8DD,
+ 0x524D, 0xC7B0,
+ 0x5250, 0xB9D0,
+ 0x5251, 0xBDA3,
+ 0x5254, 0xCCDE,
+ 0x5256, 0xC6CA,
+ 0x525C, 0xD8E0,
+ 0x525E, 0xD8DE,
+ 0x5261, 0xD8DF,
+ 0x5265, 0xB0FE,
+ 0x5267, 0xBEE7,
+ 0x5269, 0xCAA3,
+ 0x526A, 0xBCF4,
+ 0x526F, 0xB8B1,
+ 0x5272, 0xB8EE,
+ 0x527D, 0xD8E2,
+ 0x527F, 0xBDCB,
+ 0x5281, 0xD8E4,
+ 0x5282, 0xD8E3,
+ 0x5288, 0xC5FC,
+ 0x5290, 0xD8E5,
+ 0x5293, 0xD8E6,
+ 0x529B, 0xC1A6,
+ 0x529D, 0xC8B0,
+ 0x529E, 0xB0EC,
+ 0x529F, 0xB9A6,
+ 0x52A0, 0xBCD3,
+ 0x52A1, 0xCEF1,
+ 0x52A2, 0xDBBD,
+ 0x52A3, 0xC1D3,
+ 0x52A8, 0xB6AF,
+ 0x52A9, 0xD6FA,
+ 0x52AA, 0xC5AC,
+ 0x52AB, 0xBDD9,
+ 0x52AC, 0xDBBE,
+ 0x52AD, 0xDBBF,
+ 0x52B1, 0xC0F8,
+ 0x52B2, 0xBEA2,
+ 0x52B3, 0xC0CD,
+ 0x52BE, 0xDBC0,
+ 0x52BF, 0xCAC6,
+ 0x52C3, 0xB2AA,
+ 0x52C7, 0xD3C2,
+ 0x52C9, 0xC3E3,
+ 0x52CB, 0xD1AB,
+ 0x52D0, 0xDBC2,
+ 0x52D2, 0xC0D5,
+ 0x52D6, 0xDBC3,
+ 0x52D8, 0xBFB1,
+ 0x52DF, 0xC4BC,
+ 0x52E4, 0xC7DA,
+ 0x52F0, 0xDBC4,
+ 0x52F9, 0xD9E8,
+ 0x52FA, 0xC9D7,
+ 0x52FE, 0xB9B4,
+ 0x52FF, 0xCEF0,
+ 0x5300, 0xD4C8,
+ 0x5305, 0xB0FC,
+ 0x5306, 0xB4D2,
+ 0x5308, 0xD0D9,
+ 0x530D, 0xD9E9,
+ 0x530F, 0xDECB,
+ 0x5310, 0xD9EB,
+ 0x5315, 0xD8B0,
+ 0x5316, 0xBBAF,
+ 0x5317, 0xB1B1,
+ 0x5319, 0xB3D7,
+ 0x531A, 0xD8CE,
+ 0x531D, 0xD4D1,
+ 0x5320, 0xBDB3,
+ 0x5321, 0xBFEF,
+ 0x5323, 0xCFBB,
+ 0x5326, 0xD8D0,
+ 0x532A, 0xB7CB,
+ 0x532E, 0xD8D1,
+ 0x5339, 0xC6A5,
+ 0x533A, 0xC7F8,
+ 0x533B, 0xD2BD,
+ 0x533E, 0xD8D2,
+ 0x533F, 0xC4E4,
+ 0x5341, 0xCAAE,
+ 0x5343, 0xC7A7,
+ 0x5345, 0xD8A6,
+ 0x5347, 0xC9FD,
+ 0x5348, 0xCEE7,
+ 0x5349, 0xBBDC,
+ 0x534A, 0xB0EB,
+ 0x534E, 0xBBAA,
+ 0x534F, 0xD0AD,
+ 0x5351, 0xB1B0,
+ 0x5352, 0xD7E4,
+ 0x5353, 0xD7BF,
+ 0x5355, 0xB5A5,
+ 0x5356, 0xC2F4,
+ 0x5357, 0xC4CF,
+ 0x535A, 0xB2A9,
+ 0x535C, 0xB2B7,
+ 0x535E, 0xB1E5,
+ 0x535F, 0xDFB2,
+ 0x5360, 0xD5BC,
+ 0x5361, 0xBFA8,
+ 0x5362, 0xC2AC,
+ 0x5363, 0xD8D5,
+ 0x5364, 0xC2B1,
+ 0x5366, 0xD8D4,
+ 0x5367, 0xCED4,
+ 0x5369, 0xDAE0,
+ 0x536B, 0xCEC0,
+ 0x536E, 0xD8B4,
+ 0x536F, 0xC3AE,
+ 0x5370, 0xD3A1,
+ 0x5371, 0xCEA3,
+ 0x5373, 0xBCB4,
+ 0x5374, 0xC8B4,
+ 0x5375, 0xC2D1,
+ 0x5377, 0xBEED,
+ 0x5378, 0xD0B6,
+ 0x537A, 0xDAE1,
+ 0x537F, 0xC7E4,
+ 0x5382, 0xB3A7,
+ 0x5384, 0xB6F2,
+ 0x5385, 0xCCFC,
+ 0x5386, 0xC0FA,
+ 0x5389, 0xC0F7,
+ 0x538B, 0xD1B9,
+ 0x538C, 0xD1E1,
+ 0x538D, 0xD8C7,
+ 0x5395, 0xB2DE,
+ 0x5398, 0xC0E5,
+ 0x539A, 0xBAF1,
+ 0x539D, 0xD8C8,
+ 0x539F, 0xD4AD,
+ 0x53A2, 0xCFE1,
+ 0x53A3, 0xD8C9,
+ 0x53A5, 0xD8CA,
+ 0x53A6, 0xCFC3,
+ 0x53A8, 0xB3F8,
+ 0x53A9, 0xBEC7,
+ 0x53AE, 0xD8CB,
+ 0x53B6, 0xDBCC,
+ 0x53BB, 0xC8A5,
+ 0x53BF, 0xCFD8,
+ 0x53C1, 0xC8FE,
+ 0x53C2, 0xB2CE,
+ 0x53C8, 0xD3D6,
+ 0x53C9, 0xB2E6,
+ 0x53CA, 0xBCB0,
+ 0x53CB, 0xD3D1,
+ 0x53CC, 0xCBAB,
+ 0x53CD, 0xB7B4,
+ 0x53D1, 0xB7A2,
+ 0x53D4, 0xCAE5,
+ 0x53D6, 0xC8A1,
+ 0x53D7, 0xCADC,
+ 0x53D8, 0xB1E4,
+ 0x53D9, 0xD0F0,
+ 0x53DB, 0xC5D1,
+ 0x53DF, 0xDBC5,
+ 0x53E0, 0xB5FE,
+ 0x53E3, 0xBFDA,
+ 0x53E4, 0xB9C5,
+ 0x53E5, 0xBEE4,
+ 0x53E6, 0xC1ED,
+ 0x53E8, 0xDFB6,
+ 0x53E9, 0xDFB5,
+ 0x53EA, 0xD6BB,
+ 0x53EB, 0xBDD0,
+ 0x53EC, 0xD5D9,
+ 0x53ED, 0xB0C8,
+ 0x53EE, 0xB6A3,
+ 0x53EF, 0xBFC9,
+ 0x53F0, 0xCCA8,
+ 0x53F1, 0xDFB3,
+ 0x53F2, 0xCAB7,
+ 0x53F3, 0xD3D2,
+ 0x53F5, 0xD8CF,
+ 0x53F6, 0xD2B6,
+ 0x53F7, 0xBAC5,
+ 0x53F8, 0xCBBE,
+ 0x53F9, 0xCCBE,
+ 0x53FB, 0xDFB7,
+ 0x53FC, 0xB5F0,
+ 0x53FD, 0xDFB4,
+ 0x5401, 0xD3F5,
+ 0x5403, 0xB3D4,
+ 0x5404, 0xB8F7,
+ 0x5406, 0xDFBA,
+ 0x5408, 0xBACF,
+ 0x5409, 0xBCAA,
+ 0x540A, 0xB5F5,
+ 0x540C, 0xCDAC,
+ 0x540D, 0xC3FB,
+ 0x540E, 0xBAF3,
+ 0x540F, 0xC0F4,
+ 0x5410, 0xCDC2,
+ 0x5411, 0xCFF2,
+ 0x5412, 0xDFB8,
+ 0x5413, 0xCFC5,
+ 0x5415, 0xC2C0,
+ 0x5416, 0xDFB9,
+ 0x5417, 0xC2F0,
+ 0x541B, 0xBEFD,
+ 0x541D, 0xC1DF,
+ 0x541E, 0xCDCC,
+ 0x541F, 0xD2F7,
+ 0x5420, 0xB7CD,
+ 0x5421, 0xDFC1,
+ 0x5423, 0xDFC4,
+ 0x5426, 0xB7F1,
+ 0x5427, 0xB0C9,
+ 0x5428, 0xB6D6,
+ 0x5429, 0xB7D4,
+ 0x542B, 0xBAAC,
+ 0x542C, 0xCCFD,
+ 0x542D, 0xBFD4,
+ 0x542E, 0xCBB1,
+ 0x542F, 0xC6F4,
+ 0x5431, 0xD6A8,
+ 0x5432, 0xDFC5,
+ 0x5434, 0xCEE2,
+ 0x5435, 0xB3B3,
+ 0x5438, 0xCEFC,
+ 0x5439, 0xB4B5,
+ 0x543B, 0xCEC7,
+ 0x543C, 0xBAF0,
+ 0x543E, 0xCEE1,
+ 0x5440, 0xD1BD,
+ 0x5443, 0xDFC0,
+ 0x5446, 0xB4F4,
+ 0x5448, 0xB3CA,
+ 0x544A, 0xB8E6,
+ 0x544B, 0xDFBB,
+ 0x5450, 0xC4C5,
+ 0x5452, 0xDFBC,
+ 0x5453, 0xDFBD,
+ 0x5454, 0xDFBE,
+ 0x5455, 0xC5BB,
+ 0x5456, 0xDFBF,
+ 0x5457, 0xDFC2,
+ 0x5458, 0xD4B1,
+ 0x5459, 0xDFC3,
+ 0x545B, 0xC7BA,
+ 0x545C, 0xCED8,
+ 0x5462, 0xC4D8,
+ 0x5464, 0xDFCA,
+ 0x5466, 0xDFCF,
+ 0x5468, 0xD6DC,
+ 0x5471, 0xDFC9,
+ 0x5472, 0xDFDA,
+ 0x5473, 0xCEB6,
+ 0x5475, 0xBAC7,
+ 0x5476, 0xDFCE,
+ 0x5477, 0xDFC8,
+ 0x5478, 0xC5DE,
+ 0x547B, 0xC9EB,
+ 0x547C, 0xBAF4,
+ 0x547D, 0xC3FC,
+ 0x5480, 0xBED7,
+ 0x5482, 0xDFC6,
+ 0x5484, 0xDFCD,
+ 0x5486, 0xC5D8,
+ 0x548B, 0xD5A6,
+ 0x548C, 0xBACD,
+ 0x548E, 0xBECC,
+ 0x548F, 0xD3BD,
+ 0x5490, 0xB8C0,
+ 0x5492, 0xD6E4,
+ 0x5494, 0xDFC7,
+ 0x5495, 0xB9BE,
+ 0x5496, 0xBFA7,
+ 0x5499, 0xC1FC,
+ 0x549A, 0xDFCB,
+ 0x549B, 0xDFCC,
+ 0x549D, 0xDFD0,
+ 0x54A3, 0xDFDB,
+ 0x54A4, 0xDFE5,
+ 0x54A6, 0xDFD7,
+ 0x54A7, 0xDFD6,
+ 0x54A8, 0xD7C9,
+ 0x54A9, 0xDFE3,
+ 0x54AA, 0xDFE4,
+ 0x54AB, 0xE5EB,
+ 0x54AC, 0xD2A7,
+ 0x54AD, 0xDFD2,
+ 0x54AF, 0xBFA9,
+ 0x54B1, 0xD4DB,
+ 0x54B3, 0xBFC8,
+ 0x54B4, 0xDFD4,
+ 0x54B8, 0xCFCC,
+ 0x54BB, 0xDFDD,
+ 0x54BD, 0xD1CA,
+ 0x54BF, 0xDFDE,
+ 0x54C0, 0xB0A7,
+ 0x54C1, 0xC6B7,
+ 0x54C2, 0xDFD3,
+ 0x54C4, 0xBAE5,
+ 0x54C6, 0xB6DF,
+ 0x54C7, 0xCDDB,
+ 0x54C8, 0xB9FE,
+ 0x54C9, 0xD4D5,
+ 0x54CC, 0xDFDF,
+ 0x54CD, 0xCFEC,
+ 0x54CE, 0xB0A5,
+ 0x54CF, 0xDFE7,
+ 0x54D0, 0xDFD1,
+ 0x54D1, 0xD1C6,
+ 0x54D2, 0xDFD5,
+ 0x54D3, 0xDFD8,
+ 0x54D4, 0xDFD9,
+ 0x54D5, 0xDFDC,
+ 0x54D7, 0xBBA9,
+ 0x54D9, 0xDFE0,
+ 0x54DA, 0xDFE1,
+ 0x54DC, 0xDFE2,
+ 0x54DD, 0xDFE6,
+ 0x54DE, 0xDFE8,
+ 0x54DF, 0xD3B4,
+ 0x54E5, 0xB8E7,
+ 0x54E6, 0xC5B6,
+ 0x54E7, 0xDFEA,
+ 0x54E8, 0xC9DA,
+ 0x54E9, 0xC1A8,
+ 0x54EA, 0xC4C4,
+ 0x54ED, 0xBFDE,
+ 0x54EE, 0xCFF8,
+ 0x54F2, 0xD5DC,
+ 0x54F3, 0xDFEE,
+ 0x54FA, 0xB2B8,
+ 0x54FC, 0xBADF,
+ 0x54FD, 0xDFEC,
+ 0x54FF, 0xDBC1,
+ 0x5501, 0xD1E4,
+ 0x5506, 0xCBF4,
+ 0x5507, 0xB4BD,
+ 0x5509, 0xB0A6,
+ 0x550F, 0xDFF1,
+ 0x5510, 0xCCC6,
+ 0x5511, 0xDFF2,
+ 0x5514, 0xDFED,
+ 0x551B, 0xDFE9,
+ 0x5520, 0xDFEB,
+ 0x5522, 0xDFEF,
+ 0x5523, 0xDFF0,
+ 0x5524, 0xBBBD,
+ 0x5527, 0xDFF3,
+ 0x552A, 0xDFF4,
+ 0x552C, 0xBBA3,
+ 0x552E, 0xCADB,
+ 0x552F, 0xCEA8,
+ 0x5530, 0xE0A7,
+ 0x5531, 0xB3AA,
+ 0x5533, 0xE0A6,
+ 0x5537, 0xE0A1,
+ 0x553C, 0xDFFE,
+ 0x553E, 0xCDD9,
+ 0x553F, 0xDFFC,
+ 0x5541, 0xDFFA,
+ 0x5543, 0xBFD0,
+ 0x5544, 0xD7C4,
+ 0x5546, 0xC9CC,
+ 0x5549, 0xDFF8,
+ 0x554A, 0xB0A1,
+ 0x5550, 0xDFFD,
+ 0x5555, 0xDFFB,
+ 0x5556, 0xE0A2,
+ 0x555C, 0xE0A8,
+ 0x5561, 0xB7C8,
+ 0x5564, 0xC6A1,
+ 0x5565, 0xC9B6,
+ 0x5566, 0xC0B2,
+ 0x5567, 0xDFF5,
+ 0x556A, 0xC5BE,
+ 0x556C, 0xD8C4,
+ 0x556D, 0xDFF9,
+ 0x556E, 0xC4F6,
+ 0x5575, 0xE0A3,
+ 0x5576, 0xE0A4,
+ 0x5577, 0xE0A5,
+ 0x5578, 0xD0A5,
+ 0x557B, 0xE0B4,
+ 0x557C, 0xCCE4,
+ 0x557E, 0xE0B1,
+ 0x5580, 0xBFA6,
+ 0x5581, 0xE0AF,
+ 0x5582, 0xCEB9,
+ 0x5583, 0xE0AB,
+ 0x5584, 0xC9C6,
+ 0x5587, 0xC0AE,
+ 0x5588, 0xE0AE,
+ 0x5589, 0xBAED,
+ 0x558A, 0xBAB0,
+ 0x558B, 0xE0A9,
+ 0x558F, 0xDFF6,
+ 0x5591, 0xE0B3,
+ 0x5594, 0xE0B8,
+ 0x5598, 0xB4AD,
+ 0x5599, 0xE0B9,
+ 0x559C, 0xCFB2,
+ 0x559D, 0xBAC8,
+ 0x559F, 0xE0B0,
+ 0x55A7, 0xD0FA,
+ 0x55B1, 0xE0AC,
+ 0x55B3, 0xD4FB,
+ 0x55B5, 0xDFF7,
+ 0x55B7, 0xC5E7,
+ 0x55B9, 0xE0AD,
+ 0x55BB, 0xD3F7,
+ 0x55BD, 0xE0B6,
+ 0x55BE, 0xE0B7,
+ 0x55C4, 0xE0C4,
+ 0x55C5, 0xD0E1,
+ 0x55C9, 0xE0BC,
+ 0x55CC, 0xE0C9,
+ 0x55CD, 0xE0CA,
+ 0x55D1, 0xE0BE,
+ 0x55D2, 0xE0AA,
+ 0x55D3, 0xC9A4,
+ 0x55D4, 0xE0C1,
+ 0x55D6, 0xE0B2,
+ 0x55DC, 0xCAC8,
+ 0x55DD, 0xE0C3,
+ 0x55DF, 0xE0B5,
+ 0x55E1, 0xCECB,
+ 0x55E3, 0xCBC3,
+ 0x55E4, 0xE0CD,
+ 0x55E5, 0xE0C6,
+ 0x55E6, 0xE0C2,
+ 0x55E8, 0xE0CB,
+ 0x55EA, 0xE0BA,
+ 0x55EB, 0xE0BF,
+ 0x55EC, 0xE0C0,
+ 0x55EF, 0xE0C5,
+ 0x55F2, 0xE0C7,
+ 0x55F3, 0xE0C8,
+ 0x55F5, 0xE0CC,
+ 0x55F7, 0xE0BB,
+ 0x55FD, 0xCBD4,
+ 0x55FE, 0xE0D5,
+ 0x5600, 0xE0D6,
+ 0x5601, 0xE0D2,
+ 0x5608, 0xE0D0,
+ 0x5609, 0xBCCE,
+ 0x560C, 0xE0D1,
+ 0x560E, 0xB8C2,
+ 0x560F, 0xD8C5,
+ 0x5618, 0xD0EA,
+ 0x561B, 0xC2EF,
+ 0x561E, 0xE0CF,
+ 0x561F, 0xE0BD,
+ 0x5623, 0xE0D4,
+ 0x5624, 0xE0D3,
+ 0x5627, 0xE0D7,
+ 0x562C, 0xE0DC,
+ 0x562D, 0xE0D8,
+ 0x5631, 0xD6F6,
+ 0x5632, 0xB3B0,
+ 0x5634, 0xD7EC,
+ 0x5636, 0xCBBB,
+ 0x5639, 0xE0DA,
+ 0x563B, 0xCEFB,
+ 0x563F, 0xBAD9,
+ 0x564C, 0xE0E1,
+ 0x564D, 0xE0DD,
+ 0x564E, 0xD2AD,
+ 0x5654, 0xE0E2,
+ 0x5657, 0xE0DB,
+ 0x5658, 0xE0D9,
+ 0x5659, 0xE0DF,
+ 0x565C, 0xE0E0,
+ 0x5662, 0xE0DE,
+ 0x5664, 0xE0E4,
+ 0x5668, 0xC6F7,
+ 0x5669, 0xD8AC,
+ 0x566A, 0xD4EB,
+ 0x566B, 0xE0E6,
+ 0x566C, 0xCAC9,
+ 0x5671, 0xE0E5,
+ 0x5676, 0xB8C1,
+ 0x567B, 0xE0E7,
+ 0x567C, 0xE0E8,
+ 0x5685, 0xE0E9,
+ 0x5686, 0xE0E3,
+ 0x568E, 0xBABF,
+ 0x568F, 0xCCE7,
+ 0x5693, 0xE0EA,
+ 0x56A3, 0xCFF9,
+ 0x56AF, 0xE0EB,
+ 0x56B7, 0xC8C2,
+ 0x56BC, 0xBDC0,
+ 0x56CA, 0xC4D2,
+ 0x56D4, 0xE0EC,
+ 0x56D7, 0xE0ED,
+ 0x56DA, 0xC7F4,
+ 0x56DB, 0xCBC4,
+ 0x56DD, 0xE0EE,
+ 0x56DE, 0xBBD8,
+ 0x56DF, 0xD8B6,
+ 0x56E0, 0xD2F2,
+ 0x56E1, 0xE0EF,
+ 0x56E2, 0xCDC5,
+ 0x56E4, 0xB6DA,
+ 0x56EB, 0xE0F1,
+ 0x56ED, 0xD4B0,
+ 0x56F0, 0xC0A7,
+ 0x56F1, 0xB4D1,
+ 0x56F4, 0xCEA7,
+ 0x56F5, 0xE0F0,
+ 0x56F9, 0xE0F2,
+ 0x56FA, 0xB9CC,
+ 0x56FD, 0xB9FA,
+ 0x56FE, 0xCDBC,
+ 0x56FF, 0xE0F3,
+ 0x5703, 0xC6D4,
+ 0x5704, 0xE0F4,
+ 0x5706, 0xD4B2,
+ 0x5708, 0xC8A6,
+ 0x5709, 0xE0F6,
+ 0x570A, 0xE0F5,
+ 0x571C, 0xE0F7,
+ 0x571F, 0xCDC1,
+ 0x5723, 0xCAA5,
+ 0x5728, 0xD4DA,
+ 0x5729, 0xDBD7,
+ 0x572A, 0xDBD9,
+ 0x572C, 0xDBD8,
+ 0x572D, 0xB9E7,
+ 0x572E, 0xDBDC,
+ 0x572F, 0xDBDD,
+ 0x5730, 0xB5D8,
+ 0x5733, 0xDBDA,
+ 0x5739, 0xDBDB,
+ 0x573A, 0xB3A1,
+ 0x573B, 0xDBDF,
+ 0x573E, 0xBBF8,
+ 0x5740, 0xD6B7,
+ 0x5742, 0xDBE0,
+ 0x5747, 0xBEF9,
+ 0x574A, 0xB7BB,
+ 0x574C, 0xDBD0,
+ 0x574D, 0xCCAE,
+ 0x574E, 0xBFB2,
+ 0x574F, 0xBBB5,
+ 0x5750, 0xD7F8,
+ 0x5751, 0xBFD3,
+ 0x5757, 0xBFE9,
+ 0x575A, 0xBCE1,
+ 0x575B, 0xCCB3,
+ 0x575C, 0xDBDE,
+ 0x575D, 0xB0D3,
+ 0x575E, 0xCEEB,
+ 0x575F, 0xB7D8,
+ 0x5760, 0xD7B9,
+ 0x5761, 0xC6C2,
+ 0x5764, 0xC0A4,
+ 0x5766, 0xCCB9,
+ 0x5768, 0xDBE7,
+ 0x5769, 0xDBE1,
+ 0x576A, 0xC6BA,
+ 0x576B, 0xDBE3,
+ 0x576D, 0xDBE8,
+ 0x576F, 0xC5F7,
+ 0x5773, 0xDBEA,
+ 0x5776, 0xDBE9,
+ 0x5777, 0xBFC0,
+ 0x577B, 0xDBE6,
+ 0x577C, 0xDBE5,
+ 0x5782, 0xB4B9,
+ 0x5783, 0xC0AC,
+ 0x5784, 0xC2A2,
+ 0x5785, 0xDBE2,
+ 0x5786, 0xDBE4,
+ 0x578B, 0xD0CD,
+ 0x578C, 0xDBED,
+ 0x5792, 0xC0DD,
+ 0x5793, 0xDBF2,
+ 0x579B, 0xB6E2,
+ 0x57A0, 0xDBF3,
+ 0x57A1, 0xDBD2,
+ 0x57A2, 0xB9B8,
+ 0x57A3, 0xD4AB,
+ 0x57A4, 0xDBEC,
+ 0x57A6, 0xBFD1,
+ 0x57A7, 0xDBF0,
+ 0x57A9, 0xDBD1,
+ 0x57AB, 0xB5E6,
+ 0x57AD, 0xDBEB,
+ 0x57AE, 0xBFE5,
+ 0x57B2, 0xDBEE,
+ 0x57B4, 0xDBF1,
+ 0x57B8, 0xDBF9,
+ 0x57C2, 0xB9A1,
+ 0x57C3, 0xB0A3,
+ 0x57CB, 0xC2F1,
+ 0x57CE, 0xB3C7,
+ 0x57CF, 0xDBEF,
+ 0x57D2, 0xDBF8,
+ 0x57D4, 0xC6D2,
+ 0x57D5, 0xDBF4,
+ 0x57D8, 0xDBF5,
+ 0x57D9, 0xDBF7,
+ 0x57DA, 0xDBF6,
+ 0x57DD, 0xDBFE,
+ 0x57DF, 0xD3F2,
+ 0x57E0, 0xB2BA,
+ 0x57E4, 0xDBFD,
+ 0x57ED, 0xDCA4,
+ 0x57EF, 0xDBFB,
+ 0x57F4, 0xDBFA,
+ 0x57F8, 0xDBFC,
+ 0x57F9, 0xC5E0,
+ 0x57FA, 0xBBF9,
+ 0x57FD, 0xDCA3,
+ 0x5800, 0xDCA5,
+ 0x5802, 0xCCC3,
+ 0x5806, 0xB6D1,
+ 0x5807, 0xDDC0,
+ 0x580B, 0xDCA1,
+ 0x580D, 0xDCA2,
+ 0x5811, 0xC7B5,
+ 0x5815, 0xB6E9,
+ 0x5819, 0xDCA7,
+ 0x581E, 0xDCA6,
+ 0x5820, 0xDCA9,
+ 0x5821, 0xB1A4,
+ 0x5824, 0xB5CC,
+ 0x582A, 0xBFB0,
+ 0x5830, 0xD1DF,
+ 0x5835, 0xB6C2,
+ 0x5844, 0xDCA8,
+ 0x584C, 0xCBFA,
+ 0x584D, 0xEBF3,
+ 0x5851, 0xCBDC,
+ 0x5854, 0xCBFE,
+ 0x5858, 0xCCC1,
+ 0x585E, 0xC8FB,
+ 0x5865, 0xDCAA,
+ 0x586B, 0xCCEE,
+ 0x586C, 0xDCAB,
+ 0x587E, 0xDBD3,
+ 0x5880, 0xDCAF,
+ 0x5881, 0xDCAC,
+ 0x5883, 0xBEB3,
+ 0x5885, 0xCAFB,
+ 0x5889, 0xDCAD,
+ 0x5892, 0xC9CA,
+ 0x5893, 0xC4B9,
+ 0x5899, 0xC7BD,
+ 0x589A, 0xDCAE,
+ 0x589E, 0xD4F6,
+ 0x589F, 0xD0E6,
+ 0x58A8, 0xC4AB,
+ 0x58A9, 0xB6D5,
+ 0x58BC, 0xDBD4,
+ 0x58C1, 0xB1DA,
+ 0x58C5, 0xDBD5,
+ 0x58D1, 0xDBD6,
+ 0x58D5, 0xBABE,
+ 0x58E4, 0xC8C0,
+ 0x58EB, 0xCABF,
+ 0x58EC, 0xC8C9,
+ 0x58EE, 0xD7B3,
+ 0x58F0, 0xC9F9,
+ 0x58F3, 0xBFC7,
+ 0x58F6, 0xBAF8,
+ 0x58F9, 0xD2BC,
+ 0x5902, 0xE2BA,
+ 0x5904, 0xB4A6,
+ 0x5907, 0xB1B8,
+ 0x590D, 0xB8B4,
+ 0x590F, 0xCFC4,
+ 0x5914, 0xD9E7,
+ 0x5915, 0xCFA6,
+ 0x5916, 0xCDE2,
+ 0x5919, 0xD9ED,
+ 0x591A, 0xB6E0,
+ 0x591C, 0xD2B9,
+ 0x591F, 0xB9BB,
+ 0x5924, 0xE2B9,
+ 0x5925, 0xE2B7,
+ 0x5927, 0xB4F3,
+ 0x5929, 0xCCEC,
+ 0x592A, 0xCCAB,
+ 0x592B, 0xB7F2,
+ 0x592D, 0xD8B2,
+ 0x592E, 0xD1EB,
+ 0x592F, 0xBABB,
+ 0x5931, 0xCAA7,
+ 0x5934, 0xCDB7,
+ 0x5937, 0xD2C4,
+ 0x5938, 0xBFE4,
+ 0x5939, 0xBCD0,
+ 0x593A, 0xB6E1,
+ 0x593C, 0xDEC5,
+ 0x5941, 0xDEC6,
+ 0x5942, 0xDBBC,
+ 0x5944, 0xD1D9,
+ 0x5947, 0xC6E6,
+ 0x5948, 0xC4CE,
+ 0x5949, 0xB7EE,
+ 0x594B, 0xB7DC,
+ 0x594E, 0xBFFC,
+ 0x594F, 0xD7E0,
+ 0x5951, 0xC6F5,
+ 0x5954, 0xB1BC,
+ 0x5955, 0xDEC8,
+ 0x5956, 0xBDB1,
+ 0x5957, 0xCCD7,
+ 0x5958, 0xDECA,
+ 0x595A, 0xDEC9,
+ 0x5960, 0xB5EC,
+ 0x5962, 0xC9DD,
+ 0x5965, 0xB0C2,
+ 0x5973, 0xC5AE,
+ 0x5974, 0xC5AB,
+ 0x5976, 0xC4CC,
+ 0x5978, 0xBCE9,
+ 0x5979, 0xCBFD,
+ 0x597D, 0xBAC3,
+ 0x5981, 0xE5F9,
+ 0x5982, 0xC8E7,
+ 0x5983, 0xE5FA,
+ 0x5984, 0xCDFD,
+ 0x5986, 0xD7B1,
+ 0x5987, 0xB8BE,
+ 0x5988, 0xC2E8,
+ 0x598A, 0xC8D1,
+ 0x598D, 0xE5FB,
+ 0x5992, 0xB6CA,
+ 0x5993, 0xBCCB,
+ 0x5996, 0xD1FD,
+ 0x5997, 0xE6A1,
+ 0x5999, 0xC3EE,
+ 0x599E, 0xE6A4,
+ 0x59A3, 0xE5FE,
+ 0x59A4, 0xE6A5,
+ 0x59A5, 0xCDD7,
+ 0x59A8, 0xB7C1,
+ 0x59A9, 0xE5FC,
+ 0x59AA, 0xE5FD,
+ 0x59AB, 0xE6A3,
+ 0x59AE, 0xC4DD,
+ 0x59AF, 0xE6A8,
+ 0x59B2, 0xE6A7,
+ 0x59B9, 0xC3C3,
+ 0x59BB, 0xC6DE,
+ 0x59BE, 0xE6AA,
+ 0x59C6, 0xC4B7,
+ 0x59CA, 0xE6A2,
+ 0x59CB, 0xCABC,
+ 0x59D0, 0xBDE3,
+ 0x59D1, 0xB9C3,
+ 0x59D2, 0xE6A6,
+ 0x59D3, 0xD0D5,
+ 0x59D4, 0xCEAF,
+ 0x59D7, 0xE6A9,
+ 0x59D8, 0xE6B0,
+ 0x59DA, 0xD2A6,
+ 0x59DC, 0xBDAA,
+ 0x59DD, 0xE6AD,
+ 0x59E3, 0xE6AF,
+ 0x59E5, 0xC0D1,
+ 0x59E8, 0xD2CC,
+ 0x59EC, 0xBCA7,
+ 0x59F9, 0xE6B1,
+ 0x59FB, 0xD2F6,
+ 0x59FF, 0xD7CB,
+ 0x5A01, 0xCDFE,
+ 0x5A03, 0xCDDE,
+ 0x5A04, 0xC2A6,
+ 0x5A05, 0xE6AB,
+ 0x5A06, 0xE6AC,
+ 0x5A07, 0xBDBF,
+ 0x5A08, 0xE6AE,
+ 0x5A09, 0xE6B3,
+ 0x5A0C, 0xE6B2,
+ 0x5A11, 0xE6B6,
+ 0x5A13, 0xE6B8,
+ 0x5A18, 0xC4EF,
+ 0x5A1C, 0xC4C8,
+ 0x5A1F, 0xBEEA,
+ 0x5A20, 0xC9EF,
+ 0x5A23, 0xE6B7,
+ 0x5A25, 0xB6F0,
+ 0x5A29, 0xC3E4,
+ 0x5A31, 0xD3E9,
+ 0x5A32, 0xE6B4,
+ 0x5A34, 0xE6B5,
+ 0x5A36, 0xC8A2,
+ 0x5A3C, 0xE6BD,
+ 0x5A40, 0xE6B9,
+ 0x5A46, 0xC6C5,
+ 0x5A49, 0xCDF1,
+ 0x5A4A, 0xE6BB,
+ 0x5A55, 0xE6BC,
+ 0x5A5A, 0xBBE9,
+ 0x5A62, 0xE6BE,
+ 0x5A67, 0xE6BA,
+ 0x5A6A, 0xC0B7,
+ 0x5A74, 0xD3A4,
+ 0x5A75, 0xE6BF,
+ 0x5A76, 0xC9F4,
+ 0x5A77, 0xE6C3,
+ 0x5A7A, 0xE6C4,
+ 0x5A7F, 0xD0F6,
+ 0x5A92, 0xC3BD,
+ 0x5A9A, 0xC3C4,
+ 0x5A9B, 0xE6C2,
+ 0x5AAA, 0xE6C1,
+ 0x5AB2, 0xE6C7,
+ 0x5AB3, 0xCFB1,
+ 0x5AB5, 0xEBF4,
+ 0x5AB8, 0xE6CA,
+ 0x5ABE, 0xE6C5,
+ 0x5AC1, 0xBCDE,
+ 0x5AC2, 0xC9A9,
+ 0x5AC9, 0xBCB5,
+ 0x5ACC, 0xCFD3,
+ 0x5AD2, 0xE6C8,
+ 0x5AD4, 0xE6C9,
+ 0x5AD6, 0xE6CE,
+ 0x5AD8, 0xE6D0,
+ 0x5ADC, 0xE6D1,
+ 0x5AE0, 0xE6CB,
+ 0x5AE1, 0xB5D5,
+ 0x5AE3, 0xE6CC,
+ 0x5AE6, 0xE6CF,
+ 0x5AE9, 0xC4DB,
+ 0x5AEB, 0xE6C6,
+ 0x5AF1, 0xE6CD,
+ 0x5B09, 0xE6D2,
+ 0x5B16, 0xE6D4,
+ 0x5B17, 0xE6D3,
+ 0x5B32, 0xE6D5,
+ 0x5B34, 0xD9F8,
+ 0x5B37, 0xE6D6,
+ 0x5B40, 0xE6D7,
+ 0x5B50, 0xD7D3,
+ 0x5B51, 0xE6DD,
+ 0x5B53, 0xE6DE,
+ 0x5B54, 0xBFD7,
+ 0x5B55, 0xD4D0,
+ 0x5B57, 0xD7D6,
+ 0x5B58, 0xB4E6,
+ 0x5B59, 0xCBEF,
+ 0x5B5A, 0xE6DA,
+ 0x5B5B, 0xD8C3,
+ 0x5B5C, 0xD7CE,
+ 0x5B5D, 0xD0A2,
+ 0x5B5F, 0xC3CF,
+ 0x5B62, 0xE6DF,
+ 0x5B63, 0xBCBE,
+ 0x5B64, 0xB9C2,
+ 0x5B65, 0xE6DB,
+ 0x5B66, 0xD1A7,
+ 0x5B69, 0xBAA2,
+ 0x5B6A, 0xC2CF,
+ 0x5B6C, 0xD8AB,
+ 0x5B70, 0xCAEB,
+ 0x5B71, 0xE5EE,
+ 0x5B73, 0xE6DC,
+ 0x5B75, 0xB7F5,
+ 0x5B7A, 0xC8E6,
+ 0x5B7D, 0xC4F5,
+ 0x5B80, 0xE5B2,
+ 0x5B81, 0xC4FE,
+ 0x5B83, 0xCBFC,
+ 0x5B84, 0xE5B3,
+ 0x5B85, 0xD5AC,
+ 0x5B87, 0xD3EE,
+ 0x5B88, 0xCAD8,
+ 0x5B89, 0xB0B2,
+ 0x5B8B, 0xCBCE,
+ 0x5B8C, 0xCDEA,
+ 0x5B8F, 0xBAEA,
+ 0x5B93, 0xE5B5,
+ 0x5B95, 0xE5B4,
+ 0x5B97, 0xD7DA,
+ 0x5B98, 0xB9D9,
+ 0x5B99, 0xD6E6,
+ 0x5B9A, 0xB6A8,
+ 0x5B9B, 0xCDF0,
+ 0x5B9C, 0xD2CB,
+ 0x5B9D, 0xB1A6,
+ 0x5B9E, 0xCAB5,
+ 0x5BA0, 0xB3E8,
+ 0x5BA1, 0xC9F3,
+ 0x5BA2, 0xBFCD,
+ 0x5BA3, 0xD0FB,
+ 0x5BA4, 0xCAD2,
+ 0x5BA5, 0xE5B6,
+ 0x5BA6, 0xBBC2,
+ 0x5BAA, 0xCFDC,
+ 0x5BAB, 0xB9AC,
+ 0x5BB0, 0xD4D7,
+ 0x5BB3, 0xBAA6,
+ 0x5BB4, 0xD1E7,
+ 0x5BB5, 0xCFFC,
+ 0x5BB6, 0xBCD2,
+ 0x5BB8, 0xE5B7,
+ 0x5BB9, 0xC8DD,
+ 0x5BBD, 0xBFED,
+ 0x5BBE, 0xB1F6,
+ 0x5BBF, 0xCBDE,
+ 0x5BC2, 0xBCC5,
+ 0x5BC4, 0xBCC4,
+ 0x5BC5, 0xD2FA,
+ 0x5BC6, 0xC3DC,
+ 0x5BC7, 0xBFDC,
+ 0x5BCC, 0xB8BB,
+ 0x5BD0, 0xC3C2,
+ 0x5BD2, 0xBAAE,
+ 0x5BD3, 0xD4A2,
+ 0x5BDD, 0xC7DE,
+ 0x5BDE, 0xC4AF,
+ 0x5BDF, 0xB2EC,
+ 0x5BE1, 0xB9D1,
+ 0x5BE4, 0xE5BB,
+ 0x5BE5, 0xC1C8,
+ 0x5BE8, 0xD5AF,
+ 0x5BEE, 0xE5BC,
+ 0x5BF0, 0xE5BE,
+ 0x5BF8, 0xB4E7,
+ 0x5BF9, 0xB6D4,
+ 0x5BFA, 0xCBC2,
+ 0x5BFB, 0xD1B0,
+ 0x5BFC, 0xB5BC,
+ 0x5BFF, 0xCAD9,
+ 0x5C01, 0xB7E2,
+ 0x5C04, 0xC9E4,
+ 0x5C06, 0xBDAB,
+ 0x5C09, 0xCEBE,
+ 0x5C0A, 0xD7F0,
+ 0x5C0F, 0xD0A1,
+ 0x5C11, 0xC9D9,
+ 0x5C14, 0xB6FB,
+ 0x5C15, 0xE6D8,
+ 0x5C16, 0xBCE2,
+ 0x5C18, 0xB3BE,
+ 0x5C1A, 0xC9D0,
+ 0x5C1C, 0xE6D9,
+ 0x5C1D, 0xB3A2,
+ 0x5C22, 0xDECC,
+ 0x5C24, 0xD3C8,
+ 0x5C25, 0xDECD,
+ 0x5C27, 0xD2A2,
+ 0x5C2C, 0xDECE,
+ 0x5C31, 0xBECD,
+ 0x5C34, 0xDECF,
+ 0x5C38, 0xCAAC,
+ 0x5C39, 0xD2FC,
+ 0x5C3A, 0xB3DF,
+ 0x5C3B, 0xE5EA,
+ 0x5C3C, 0xC4E1,
+ 0x5C3D, 0xBEA1,
+ 0x5C3E, 0xCEB2,
+ 0x5C3F, 0xC4F2,
+ 0x5C40, 0xBED6,
+ 0x5C41, 0xC6A8,
+ 0x5C42, 0xB2E3,
+ 0x5C45, 0xBED3,
+ 0x5C48, 0xC7FC,
+ 0x5C49, 0xCCEB,
+ 0x5C4A, 0xBDEC,
+ 0x5C4B, 0xCEDD,
+ 0x5C4E, 0xCABA,
+ 0x5C4F, 0xC6C1,
+ 0x5C50, 0xE5EC,
+ 0x5C51, 0xD0BC,
+ 0x5C55, 0xD5B9,
+ 0x5C59, 0xE5ED,
+ 0x5C5E, 0xCAF4,
+ 0x5C60, 0xCDC0,
+ 0x5C61, 0xC2C5,
+ 0x5C63, 0xE5EF,
+ 0x5C65, 0xC2C4,
+ 0x5C66, 0xE5F0,
+ 0x5C6E, 0xE5F8,
+ 0x5C6F, 0xCDCD,
+ 0x5C71, 0xC9BD,
+ 0x5C79, 0xD2D9,
+ 0x5C7A, 0xE1A8,
+ 0x5C7F, 0xD3EC,
+ 0x5C81, 0xCBEA,
+ 0x5C82, 0xC6F1,
+ 0x5C88, 0xE1AC,
+ 0x5C8C, 0xE1A7,
+ 0x5C8D, 0xE1A9,
+ 0x5C90, 0xE1AA,
+ 0x5C91, 0xE1AF,
+ 0x5C94, 0xB2ED,
+ 0x5C96, 0xE1AB,
+ 0x5C97, 0xB8DA,
+ 0x5C98, 0xE1AD,
+ 0x5C99, 0xE1AE,
+ 0x5C9A, 0xE1B0,
+ 0x5C9B, 0xB5BA,
+ 0x5C9C, 0xE1B1,
+ 0x5CA2, 0xE1B3,
+ 0x5CA3, 0xE1B8,
+ 0x5CA9, 0xD1D2,
+ 0x5CAB, 0xE1B6,
+ 0x5CAC, 0xE1B5,
+ 0x5CAD, 0xC1EB,
+ 0x5CB1, 0xE1B7,
+ 0x5CB3, 0xD4C0,
+ 0x5CB5, 0xE1B2,
+ 0x5CB7, 0xE1BA,
+ 0x5CB8, 0xB0B6,
+ 0x5CBD, 0xE1B4,
+ 0x5CBF, 0xBFF9,
+ 0x5CC1, 0xE1B9,
+ 0x5CC4, 0xE1BB,
+ 0x5CCB, 0xE1BE,
+ 0x5CD2, 0xE1BC,
+ 0x5CD9, 0xD6C5,
+ 0x5CE1, 0xCFBF,
+ 0x5CE4, 0xE1BD,
+ 0x5CE5, 0xE1BF,
+ 0x5CE6, 0xC2CD,
+ 0x5CE8, 0xB6EB,
+ 0x5CEA, 0xD3F8,
+ 0x5CED, 0xC7CD,
+ 0x5CF0, 0xB7E5,
+ 0x5CFB, 0xBEFE,
+ 0x5D02, 0xE1C0,
+ 0x5D03, 0xE1C1,
+ 0x5D06, 0xE1C7,
+ 0x5D07, 0xB3E7,
+ 0x5D0E, 0xC6E9,
+ 0x5D14, 0xB4DE,
+ 0x5D16, 0xD1C2,
+ 0x5D1B, 0xE1C8,
+ 0x5D1E, 0xE1C6,
+ 0x5D24, 0xE1C5,
+ 0x5D26, 0xE1C3,
+ 0x5D27, 0xE1C2,
+ 0x5D29, 0xB1C0,
+ 0x5D2D, 0xD5B8,
+ 0x5D2E, 0xE1C4,
+ 0x5D34, 0xE1CB,
+ 0x5D3D, 0xE1CC,
+ 0x5D3E, 0xE1CA,
+ 0x5D47, 0xEFFA,
+ 0x5D4A, 0xE1D3,
+ 0x5D4B, 0xE1D2,
+ 0x5D4C, 0xC7B6,
+ 0x5D58, 0xE1C9,
+ 0x5D5B, 0xE1CE,
+ 0x5D5D, 0xE1D0,
+ 0x5D69, 0xE1D4,
+ 0x5D6B, 0xE1D1,
+ 0x5D6C, 0xE1CD,
+ 0x5D6F, 0xE1CF,
+ 0x5D74, 0xE1D5,
+ 0x5D82, 0xE1D6,
+ 0x5D99, 0xE1D7,
+ 0x5D9D, 0xE1D8,
+ 0x5DB7, 0xE1DA,
+ 0x5DC5, 0xE1DB,
+ 0x5DCD, 0xCEA1,
+ 0x5DDB, 0xE7DD,
+ 0x5DDD, 0xB4A8,
+ 0x5DDE, 0xD6DD,
+ 0x5DE1, 0xD1B2,
+ 0x5DE2, 0xB3B2,
+ 0x5DE5, 0xB9A4,
+ 0x5DE6, 0xD7F3,
+ 0x5DE7, 0xC7C9,
+ 0x5DE8, 0xBEDE,
+ 0x5DE9, 0xB9AE,
+ 0x5DEB, 0xCED7,
+ 0x5DEE, 0xB2EE,
+ 0x5DEF, 0xDBCF,
+ 0x5DF1, 0xBCBA,
+ 0x5DF2, 0xD2D1,
+ 0x5DF3, 0xCBC8,
+ 0x5DF4, 0xB0CD,
+ 0x5DF7, 0xCFEF,
+ 0x5DFD, 0xD9E3,
+ 0x5DFE, 0xBDED,
+ 0x5E01, 0xB1D2,
+ 0x5E02, 0xCAD0,
+ 0x5E03, 0xB2BC,
+ 0x5E05, 0xCBA7,
+ 0x5E06, 0xB7AB,
+ 0x5E08, 0xCAA6,
+ 0x5E0C, 0xCFA3,
+ 0x5E0F, 0xE0F8,
+ 0x5E10, 0xD5CA,
+ 0x5E11, 0xE0FB,
+ 0x5E14, 0xE0FA,
+ 0x5E15, 0xC5C1,
+ 0x5E16, 0xCCFB,
+ 0x5E18, 0xC1B1,
+ 0x5E19, 0xE0F9,
+ 0x5E1A, 0xD6E3,
+ 0x5E1B, 0xB2AF,
+ 0x5E1C, 0xD6C4,
+ 0x5E1D, 0xB5DB,
+ 0x5E26, 0xB4F8,
+ 0x5E27, 0xD6A1,
+ 0x5E2D, 0xCFAF,
+ 0x5E2E, 0xB0EF,
+ 0x5E31, 0xE0FC,
+ 0x5E37, 0xE1A1,
+ 0x5E38, 0xB3A3,
+ 0x5E3B, 0xE0FD,
+ 0x5E3C, 0xE0FE,
+ 0x5E3D, 0xC3B1,
+ 0x5E42, 0xC3DD,
+ 0x5E44, 0xE1A2,
+ 0x5E45, 0xB7F9,
+ 0x5E4C, 0xBBCF,
+ 0x5E54, 0xE1A3,
+ 0x5E55, 0xC4BB,
+ 0x5E5B, 0xE1A4,
+ 0x5E5E, 0xE1A5,
+ 0x5E61, 0xE1A6,
+ 0x5E62, 0xB4B1,
+ 0x5E72, 0xB8C9,
+ 0x5E73, 0xC6BD,
+ 0x5E74, 0xC4EA,
+ 0x5E76, 0xB2A2,
+ 0x5E78, 0xD0D2,
+ 0x5E7A, 0xE7DB,
+ 0x5E7B, 0xBBC3,
+ 0x5E7C, 0xD3D7,
+ 0x5E7D, 0xD3C4,
+ 0x5E7F, 0xB9E3,
+ 0x5E80, 0xE2CF,
+ 0x5E84, 0xD7AF,
+ 0x5E86, 0xC7EC,
+ 0x5E87, 0xB1D3,
+ 0x5E8A, 0xB4B2,
+ 0x5E8B, 0xE2D1,
+ 0x5E8F, 0xD0F2,
+ 0x5E90, 0xC2AE,
+ 0x5E91, 0xE2D0,
+ 0x5E93, 0xBFE2,
+ 0x5E94, 0xD3A6,
+ 0x5E95, 0xB5D7,
+ 0x5E96, 0xE2D2,
+ 0x5E97, 0xB5EA,
+ 0x5E99, 0xC3ED,
+ 0x5E9A, 0xB8FD,
+ 0x5E9C, 0xB8AE,
+ 0x5E9E, 0xC5D3,
+ 0x5E9F, 0xB7CF,
+ 0x5EA0, 0xE2D4,
+ 0x5EA5, 0xE2D3,
+ 0x5EA6, 0xB6C8,
+ 0x5EA7, 0xD7F9,
+ 0x5EAD, 0xCDA5,
+ 0x5EB3, 0xE2D8,
+ 0x5EB5, 0xE2D6,
+ 0x5EB6, 0xCAFC,
+ 0x5EB7, 0xBFB5,
+ 0x5EB8, 0xD3B9,
+ 0x5EB9, 0xE2D5,
+ 0x5EBE, 0xE2D7,
+ 0x5EC9, 0xC1AE,
+ 0x5ECA, 0xC0C8,
+ 0x5ED1, 0xE2DB,
+ 0x5ED2, 0xE2DA,
+ 0x5ED3, 0xC0AA,
+ 0x5ED6, 0xC1CE,
+ 0x5EDB, 0xE2DC,
+ 0x5EE8, 0xE2DD,
+ 0x5EEA, 0xE2DE,
+ 0x5EF4, 0xDBC8,
+ 0x5EF6, 0xD1D3,
+ 0x5EF7, 0xCDA2,
+ 0x5EFA, 0xBDA8,
+ 0x5EFE, 0xDEC3,
+ 0x5EFF, 0xD8A5,
+ 0x5F00, 0xBFAA,
+ 0x5F01, 0xDBCD,
+ 0x5F02, 0xD2EC,
+ 0x5F03, 0xC6FA,
+ 0x5F04, 0xC5AA,
+ 0x5F08, 0xDEC4,
+ 0x5F0A, 0xB1D7,
+ 0x5F0B, 0xDFAE,
+ 0x5F0F, 0xCABD,
+ 0x5F11, 0xDFB1,
+ 0x5F13, 0xB9AD,
+ 0x5F15, 0xD2FD,
+ 0x5F17, 0xB8A5,
+ 0x5F18, 0xBAEB,
+ 0x5F1B, 0xB3DA,
+ 0x5F1F, 0xB5DC,
+ 0x5F20, 0xD5C5,
+ 0x5F25, 0xC3D6,
+ 0x5F26, 0xCFD2,
+ 0x5F27, 0xBBA1,
+ 0x5F29, 0xE5F3,
+ 0x5F2A, 0xE5F2,
+ 0x5F2D, 0xE5F4,
+ 0x5F2F, 0xCDE4,
+ 0x5F31, 0xC8F5,
+ 0x5F39, 0xB5AF,
+ 0x5F3A, 0xC7BF,
+ 0x5F3C, 0xE5F6,
+ 0x5F40, 0xECB0,
+ 0x5F50, 0xE5E6,
+ 0x5F52, 0xB9E9,
+ 0x5F53, 0xB5B1,
+ 0x5F55, 0xC2BC,
+ 0x5F56, 0xE5E8,
+ 0x5F57, 0xE5E7,
+ 0x5F58, 0xE5E9,
+ 0x5F5D, 0xD2CD,
+ 0x5F61, 0xE1EA,
+ 0x5F62, 0xD0CE,
+ 0x5F64, 0xCDAE,
+ 0x5F66, 0xD1E5,
+ 0x5F69, 0xB2CA,
+ 0x5F6A, 0xB1EB,
+ 0x5F6C, 0xB1F2,
+ 0x5F6D, 0xC5ED,
+ 0x5F70, 0xD5C3,
+ 0x5F71, 0xD3B0,
+ 0x5F73, 0xE1DC,
+ 0x5F77, 0xE1DD,
+ 0x5F79, 0xD2DB,
+ 0x5F7B, 0xB3B9,
+ 0x5F7C, 0xB1CB,
+ 0x5F80, 0xCDF9,
+ 0x5F81, 0xD5F7,
+ 0x5F82, 0xE1DE,
+ 0x5F84, 0xBEB6,
+ 0x5F85, 0xB4FD,
+ 0x5F87, 0xE1DF,
+ 0x5F88, 0xBADC,
+ 0x5F89, 0xE1E0,
+ 0x5F8A, 0xBBB2,
+ 0x5F8B, 0xC2C9,
+ 0x5F8C, 0xE1E1,
+ 0x5F90, 0xD0EC,
+ 0x5F92, 0xCDBD,
+ 0x5F95, 0xE1E2,
+ 0x5F97, 0xB5C3,
+ 0x5F98, 0xC5C7,
+ 0x5F99, 0xE1E3,
+ 0x5F9C, 0xE1E4,
+ 0x5FA1, 0xD3F9,
+ 0x5FA8, 0xE1E5,
+ 0x5FAA, 0xD1AD,
+ 0x5FAD, 0xE1E6,
+ 0x5FAE, 0xCEA2,
+ 0x5FB5, 0xE1E7,
+ 0x5FB7, 0xB5C2,
+ 0x5FBC, 0xE1E8,
+ 0x5FBD, 0xBBD5,
+ 0x5FC3, 0xD0C4,
+ 0x5FC4, 0xE2E0,
+ 0x5FC5, 0xB1D8,
+ 0x5FC6, 0xD2E4,
+ 0x5FC9, 0xE2E1,
+ 0x5FCC, 0xBCC9,
+ 0x5FCD, 0xC8CC,
+ 0x5FCF, 0xE2E3,
+ 0x5FD0, 0xECFE,
+ 0x5FD1, 0xECFD,
+ 0x5FD2, 0xDFAF,
+ 0x5FD6, 0xE2E2,
+ 0x5FD7, 0xD6BE,
+ 0x5FD8, 0xCDFC,
+ 0x5FD9, 0xC3A6,
+ 0x5FDD, 0xE3C3,
+ 0x5FE0, 0xD6D2,
+ 0x5FE1, 0xE2E7,
+ 0x5FE4, 0xE2E8,
+ 0x5FE7, 0xD3C7,
+ 0x5FEA, 0xE2EC,
+ 0x5FEB, 0xBFEC,
+ 0x5FED, 0xE2ED,
+ 0x5FEE, 0xE2E5,
+ 0x5FF1, 0xB3C0,
+ 0x5FF5, 0xC4EE,
+ 0x5FF8, 0xE2EE,
+ 0x5FFB, 0xD0C3,
+ 0x5FFD, 0xBAF6,
+ 0x5FFE, 0xE2E9,
+ 0x5FFF, 0xB7DE,
+ 0x6000, 0xBBB3,
+ 0x6001, 0xCCAC,
+ 0x6002, 0xCBCB,
+ 0x6003, 0xE2E4,
+ 0x6004, 0xE2E6,
+ 0x6005, 0xE2EA,
+ 0x6006, 0xE2EB,
+ 0x600A, 0xE2F7,
+ 0x600D, 0xE2F4,
+ 0x600E, 0xD4F5,
+ 0x600F, 0xE2F3,
+ 0x6012, 0xC5AD,
+ 0x6014, 0xD5FA,
+ 0x6015, 0xC5C2,
+ 0x6016, 0xB2C0,
+ 0x6019, 0xE2EF,
+ 0x601B, 0xE2F2,
+ 0x601C, 0xC1AF,
+ 0x601D, 0xCBBC,
+ 0x6020, 0xB5A1,
+ 0x6021, 0xE2F9,
+ 0x6025, 0xBCB1,
+ 0x6026, 0xE2F1,
+ 0x6027, 0xD0D4,
+ 0x6028, 0xD4B9,
+ 0x6029, 0xE2F5,
+ 0x602A, 0xB9D6,
+ 0x602B, 0xE2F6,
+ 0x602F, 0xC7D3,
+ 0x6035, 0xE2F0,
+ 0x603B, 0xD7DC,
+ 0x603C, 0xEDA1,
+ 0x603F, 0xE2F8,
+ 0x6041, 0xEDA5,
+ 0x6042, 0xE2FE,
+ 0x6043, 0xCAD1,
+ 0x604B, 0xC1B5,
+ 0x604D, 0xBBD0,
+ 0x6050, 0xBFD6,
+ 0x6052, 0xBAE3,
+ 0x6055, 0xCBA1,
+ 0x6059, 0xEDA6,
+ 0x605A, 0xEDA3,
+ 0x605D, 0xEDA2,
+ 0x6062, 0xBBD6,
+ 0x6063, 0xEDA7,
+ 0x6064, 0xD0F4,
+ 0x6067, 0xEDA4,
+ 0x6068, 0xBADE,
+ 0x6069, 0xB6F7,
+ 0x606A, 0xE3A1,
+ 0x606B, 0xB6B2,
+ 0x606C, 0xCCF1,
+ 0x606D, 0xB9A7,
+ 0x606F, 0xCFA2,
+ 0x6070, 0xC7A1,
+ 0x6073, 0xBFD2,
+ 0x6076, 0xB6F1,
+ 0x6078, 0xE2FA,
+ 0x6079, 0xE2FB,
+ 0x607A, 0xE2FD,
+ 0x607B, 0xE2FC,
+ 0x607C, 0xC4D5,
+ 0x607D, 0xE3A2,
+ 0x607F, 0xD3C1,
+ 0x6083, 0xE3A7,
+ 0x6084, 0xC7C4,
+ 0x6089, 0xCFA4,
+ 0x608C, 0xE3A9,
+ 0x608D, 0xBAB7,
+ 0x6092, 0xE3A8,
+ 0x6094, 0xBBDA,
+ 0x6096, 0xE3A3,
+ 0x609A, 0xE3A4,
+ 0x609B, 0xE3AA,
+ 0x609D, 0xE3A6,
+ 0x609F, 0xCEF2,
+ 0x60A0, 0xD3C6,
+ 0x60A3, 0xBBBC,
+ 0x60A6, 0xD4C3,
+ 0x60A8, 0xC4FA,
+ 0x60AB, 0xEDA8,
+ 0x60AC, 0xD0FC,
+ 0x60AD, 0xE3A5,
+ 0x60AF, 0xC3F5,
+ 0x60B1, 0xE3AD,
+ 0x60B2, 0xB1AF,
+ 0x60B4, 0xE3B2,
+ 0x60B8, 0xBCC2,
+ 0x60BB, 0xE3AC,
+ 0x60BC, 0xB5BF,
+ 0x60C5, 0xC7E9,
+ 0x60C6, 0xE3B0,
+ 0x60CA, 0xBEAA,
+ 0x60CB, 0xCDEF,
+ 0x60D1, 0xBBF3,
+ 0x60D5, 0xCCE8,
+ 0x60D8, 0xE3AF,
+ 0x60DA, 0xE3B1,
+ 0x60DC, 0xCFA7,
+ 0x60DD, 0xE3AE,
+ 0x60DF, 0xCEA9,
+ 0x60E0, 0xBBDD,
+ 0x60E6, 0xB5EB,
+ 0x60E7, 0xBEE5,
+ 0x60E8, 0xB2D2,
+ 0x60E9, 0xB3CD,
+ 0x60EB, 0xB1B9,
+ 0x60EC, 0xE3AB,
+ 0x60ED, 0xB2D1,
+ 0x60EE, 0xB5AC,
+ 0x60EF, 0xB9DF,
+ 0x60F0, 0xB6E8,
+ 0x60F3, 0xCFEB,
+ 0x60F4, 0xE3B7,
+ 0x60F6, 0xBBCC,
+ 0x60F9, 0xC8C7,
+ 0x60FA, 0xD0CA,
+ 0x6100, 0xE3B8,
+ 0x6101, 0xB3EE,
+ 0x6106, 0xEDA9,
+ 0x6108, 0xD3FA,
+ 0x6109, 0xD3E4,
+ 0x610D, 0xEDAA,
+ 0x610E, 0xE3B9,
+ 0x610F, 0xD2E2,
+ 0x6115, 0xE3B5,
+ 0x611A, 0xD3DE,
+ 0x611F, 0xB8D0,
+ 0x6120, 0xE3B3,
+ 0x6123, 0xE3B6,
+ 0x6124, 0xB7DF,
+ 0x6126, 0xE3B4,
+ 0x6127, 0xC0A2,
+ 0x612B, 0xE3BA,
+ 0x613F, 0xD4B8,
+ 0x6148, 0xB4C8,
+ 0x614A, 0xE3BB,
+ 0x614C, 0xBBC5,
+ 0x614E, 0xC9F7,
+ 0x6151, 0xC9E5,
+ 0x6155, 0xC4BD,
+ 0x615D, 0xEDAB,
+ 0x6162, 0xC2FD,
+ 0x6167, 0xBBDB,
+ 0x6168, 0xBFAE,
+ 0x6170, 0xCEBF,
+ 0x6175, 0xE3BC,
+ 0x6177, 0xBFB6,
+ 0x618B, 0xB1EF,
+ 0x618E, 0xD4F7,
+ 0x6194, 0xE3BE,
+ 0x619D, 0xEDAD,
+ 0x61A7, 0xE3BF,
+ 0x61A8, 0xBAA9,
+ 0x61A9, 0xEDAC,
+ 0x61AC, 0xE3BD,
+ 0x61B7, 0xE3C0,
+ 0x61BE, 0xBAB6,
+ 0x61C2, 0xB6AE,
+ 0x61C8, 0xD0B8,
+ 0x61CA, 0xB0C3,
+ 0x61CB, 0xEDAE,
+ 0x61D1, 0xEDAF,
+ 0x61D2, 0xC0C1,
+ 0x61D4, 0xE3C1,
+ 0x61E6, 0xC5B3,
+ 0x61F5, 0xE3C2,
+ 0x61FF, 0xDCB2,
+ 0x6206, 0xEDB0,
+ 0x6208, 0xB8EA,
+ 0x620A, 0xCEEC,
+ 0x620B, 0xEAA7,
+ 0x620C, 0xD0E7,
+ 0x620D, 0xCAF9,
+ 0x620E, 0xC8D6,
+ 0x620F, 0xCFB7,
+ 0x6210, 0xB3C9,
+ 0x6211, 0xCED2,
+ 0x6212, 0xBDE4,
+ 0x6215, 0xE3DE,
+ 0x6216, 0xBBF2,
+ 0x6217, 0xEAA8,
+ 0x6218, 0xD5BD,
+ 0x621A, 0xC6DD,
+ 0x621B, 0xEAA9,
+ 0x621F, 0xEAAA,
+ 0x6221, 0xEAAC,
+ 0x6222, 0xEAAB,
+ 0x6224, 0xEAAE,
+ 0x6225, 0xEAAD,
+ 0x622A, 0xBDD8,
+ 0x622C, 0xEAAF,
+ 0x622E, 0xC2BE,
+ 0x6233, 0xB4C1,
+ 0x6234, 0xB4F7,
+ 0x6237, 0xBBA7,
+ 0x623D, 0xECE6,
+ 0x623E, 0xECE5,
+ 0x623F, 0xB7BF,
+ 0x6240, 0xCBF9,
+ 0x6241, 0xB1E2,
+ 0x6243, 0xECE7,
+ 0x6247, 0xC9C8,
+ 0x6248, 0xECE8,
+ 0x6249, 0xECE9,
+ 0x624B, 0xCAD6,
+ 0x624C, 0xDED0,
+ 0x624D, 0xB2C5,
+ 0x624E, 0xD4FA,
+ 0x6251, 0xC6CB,
+ 0x6252, 0xB0C7,
+ 0x6253, 0xB4F2,
+ 0x6254, 0xC8D3,
+ 0x6258, 0xCDD0,
+ 0x625B, 0xBFB8,
+ 0x6263, 0xBFDB,
+ 0x6266, 0xC7A4,
+ 0x6267, 0xD6B4,
+ 0x6269, 0xC0A9,
+ 0x626A, 0xDED1,
+ 0x626B, 0xC9A8,
+ 0x626C, 0xD1EF,
+ 0x626D, 0xC5A4,
+ 0x626E, 0xB0E7,
+ 0x626F, 0xB3B6,
+ 0x6270, 0xC8C5,
+ 0x6273, 0xB0E2,
+ 0x6276, 0xB7F6,
+ 0x6279, 0xC5FA,
+ 0x627C, 0xB6F3,
+ 0x627E, 0xD5D2,
+ 0x627F, 0xB3D0,
+ 0x6280, 0xBCBC,
+ 0x6284, 0xB3AD,
+ 0x6289, 0xBEF1,
+ 0x628A, 0xB0D1,
+ 0x6291, 0xD2D6,
+ 0x6292, 0xCAE3,
+ 0x6293, 0xD7A5,
+ 0x6295, 0xCDB6,
+ 0x6296, 0xB6B6,
+ 0x6297, 0xBFB9,
+ 0x6298, 0xD5DB,
+ 0x629A, 0xB8A7,
+ 0x629B, 0xC5D7,
+ 0x629F, 0xDED2,
+ 0x62A0, 0xBFD9,
+ 0x62A1, 0xC2D5,
+ 0x62A2, 0xC7C0,
+ 0x62A4, 0xBBA4,
+ 0x62A5, 0xB1A8,
+ 0x62A8, 0xC5EA,
+ 0x62AB, 0xC5FB,
+ 0x62AC, 0xCCA7,
+ 0x62B1, 0xB1A7,
+ 0x62B5, 0xB5D6,
+ 0x62B9, 0xC4A8,
+ 0x62BB, 0xDED3,
+ 0x62BC, 0xD1BA,
+ 0x62BD, 0xB3E9,
+ 0x62BF, 0xC3F2,
+ 0x62C2, 0xB7F7,
+ 0x62C4, 0xD6F4,
+ 0x62C5, 0xB5A3,
+ 0x62C6, 0xB2F0,
+ 0x62C7, 0xC4B4,
+ 0x62C8, 0xC4E9,
+ 0x62C9, 0xC0AD,
+ 0x62CA, 0xDED4,
+ 0x62CC, 0xB0E8,
+ 0x62CD, 0xC5C4,
+ 0x62CE, 0xC1E0,
+ 0x62D0, 0xB9D5,
+ 0x62D2, 0xBEDC,
+ 0x62D3, 0xCDD8,
+ 0x62D4, 0xB0CE,
+ 0x62D6, 0xCDCF,
+ 0x62D7, 0xDED6,
+ 0x62D8, 0xBED0,
+ 0x62D9, 0xD7BE,
+ 0x62DA, 0xDED5,
+ 0x62DB, 0xD5D0,
+ 0x62DC, 0xB0DD,
+ 0x62DF, 0xC4E2,
+ 0x62E2, 0xC2A3,
+ 0x62E3, 0xBCF0,
+ 0x62E5, 0xD3B5,
+ 0x62E6, 0xC0B9,
+ 0x62E7, 0xC5A1,
+ 0x62E8, 0xB2A6,
+ 0x62E9, 0xD4F1,
+ 0x62EC, 0xC0A8,
+ 0x62ED, 0xCAC3,
+ 0x62EE, 0xDED7,
+ 0x62EF, 0xD5FC,
+ 0x62F1, 0xB9B0,
+ 0x62F3, 0xC8AD,
+ 0x62F4, 0xCBA9,
+ 0x62F6, 0xDED9,
+ 0x62F7, 0xBFBD,
+ 0x62FC, 0xC6B4,
+ 0x62FD, 0xD7A7,
+ 0x62FE, 0xCAB0,
+ 0x62FF, 0xC4C3,
+ 0x6301, 0xB3D6,
+ 0x6302, 0xB9D2,
+ 0x6307, 0xD6B8,
+ 0x6308, 0xEAFC,
+ 0x6309, 0xB0B4,
+ 0x630E, 0xBFE6,
+ 0x6311, 0xCCF4,
+ 0x6316, 0xCDDA,
+ 0x631A, 0xD6BF,
+ 0x631B, 0xC2CE,
+ 0x631D, 0xCECE,
+ 0x631E, 0xCCA2,
+ 0x631F, 0xD0AE,
+ 0x6320, 0xC4D3,
+ 0x6321, 0xB5B2,
+ 0x6322, 0xDED8,
+ 0x6323, 0xD5F5,
+ 0x6324, 0xBCB7,
+ 0x6325, 0xBBD3,
+ 0x6328, 0xB0A4,
+ 0x632A, 0xC5B2,
+ 0x632B, 0xB4EC,
+ 0x632F, 0xD5F1,
+ 0x6332, 0xEAFD,
+ 0x6339, 0xDEDA,
+ 0x633A, 0xCDA6,
+ 0x633D, 0xCDEC,
+ 0x6342, 0xCEE6,
+ 0x6343, 0xDEDC,
+ 0x6345, 0xCDB1,
+ 0x6346, 0xC0A6,
+ 0x6349, 0xD7BD,
+ 0x634B, 0xDEDB,
+ 0x634C, 0xB0C6,
+ 0x634D, 0xBAB4,
+ 0x634E, 0xC9D3,
+ 0x634F, 0xC4F3,
+ 0x6350, 0xBEE8,
+ 0x6355, 0xB2B6,
+ 0x635E, 0xC0CC,
+ 0x635F, 0xCBF0,
+ 0x6361, 0xBCF1,
+ 0x6362, 0xBBBB,
+ 0x6363, 0xB5B7,
+ 0x6367, 0xC5F5,
+ 0x6369, 0xDEE6,
+ 0x636D, 0xDEE3,
+ 0x636E, 0xBEDD,
+ 0x6371, 0xDEDF,
+ 0x6376, 0xB4B7,
+ 0x6377, 0xBDDD,
+ 0x637A, 0xDEE0,
+ 0x637B, 0xC4ED,
+ 0x6380, 0xCFC6,
+ 0x6382, 0xB5E0,
+ 0x6387, 0xB6DE,
+ 0x6388, 0xCADA,
+ 0x6389, 0xB5F4,
+ 0x638A, 0xDEE5,
+ 0x638C, 0xD5C6,
+ 0x638E, 0xDEE1,
+ 0x638F, 0xCCCD,
+ 0x6390, 0xC6FE,
+ 0x6392, 0xC5C5,
+ 0x6396, 0xD2B4,
+ 0x6398, 0xBEF2,
+ 0x63A0, 0xC2D3,
+ 0x63A2, 0xCCBD,
+ 0x63A3, 0xB3B8,
+ 0x63A5, 0xBDD3,
+ 0x63A7, 0xBFD8,
+ 0x63A8, 0xCDC6,
+ 0x63A9, 0xD1DA,
+ 0x63AA, 0xB4EB,
+ 0x63AC, 0xDEE4,
+ 0x63AD, 0xDEDD,
+ 0x63AE, 0xDEE7,
+ 0x63B0, 0xEAFE,
+ 0x63B3, 0xC2B0,
+ 0x63B4, 0xDEE2,
+ 0x63B7, 0xD6C0,
+ 0x63B8, 0xB5A7,
+ 0x63BA, 0xB2F4,
+ 0x63BC, 0xDEE8,
+ 0x63BE, 0xDEF2,
+ 0x63C4, 0xDEED,
+ 0x63C6, 0xDEF1,
+ 0x63C9, 0xC8E0,
+ 0x63CD, 0xD7E1,
+ 0x63CE, 0xDEEF,
+ 0x63CF, 0xC3E8,
+ 0x63D0, 0xCCE1,
+ 0x63D2, 0xB2E5,
+ 0x63D6, 0xD2BE,
+ 0x63DE, 0xDEEE,
+ 0x63E0, 0xDEEB,
+ 0x63E1, 0xCED5,
+ 0x63E3, 0xB4A7,
+ 0x63E9, 0xBFAB,
+ 0x63EA, 0xBEBE,
+ 0x63ED, 0xBDD2,
+ 0x63F2, 0xDEE9,
+ 0x63F4, 0xD4AE,
+ 0x63F6, 0xDEDE,
+ 0x63F8, 0xDEEA,
+ 0x63FD, 0xC0BF,
+ 0x63FF, 0xDEEC,
+ 0x6400, 0xB2F3,
+ 0x6401, 0xB8E9,
+ 0x6402, 0xC2A7,
+ 0x6405, 0xBDC1,
+ 0x640B, 0xDEF5,
+ 0x640C, 0xDEF8,
+ 0x640F, 0xB2AB,
+ 0x6410, 0xB4A4,
+ 0x6413, 0xB4EA,
+ 0x6414, 0xC9A6,
+ 0x641B, 0xDEF6,
+ 0x641C, 0xCBD1,
+ 0x641E, 0xB8E3,
+ 0x6420, 0xDEF7,
+ 0x6421, 0xDEFA,
+ 0x6426, 0xDEF9,
+ 0x642A, 0xCCC2,
+ 0x642C, 0xB0E1,
+ 0x642D, 0xB4EE,
+ 0x6434, 0xE5BA,
+ 0x643A, 0xD0AF,
+ 0x643D, 0xB2EB,
+ 0x643F, 0xEBA1,
+ 0x6441, 0xDEF4,
+ 0x6444, 0xC9E3,
+ 0x6445, 0xDEF3,
+ 0x6446, 0xB0DA,
+ 0x6447, 0xD2A1,
+ 0x6448, 0xB1F7,
+ 0x644A, 0xCCAF,
+ 0x6452, 0xDEF0,
+ 0x6454, 0xCBA4,
+ 0x6458, 0xD5AA,
+ 0x645E, 0xDEFB,
+ 0x6467, 0xB4DD,
+ 0x6469, 0xC4A6,
+ 0x646D, 0xDEFD,
+ 0x6478, 0xC3FE,
+ 0x6479, 0xC4A1,
+ 0x647A, 0xDFA1,
+ 0x6482, 0xC1CC,
+ 0x6484, 0xDEFC,
+ 0x6485, 0xBEEF,
+ 0x6487, 0xC6B2,
+ 0x6491, 0xB3C5,
+ 0x6492, 0xC8F6,
+ 0x6495, 0xCBBA,
+ 0x6496, 0xDEFE,
+ 0x6499, 0xDFA4,
+ 0x649E, 0xD7B2,
+ 0x64A4, 0xB3B7,
+ 0x64A9, 0xC1C3,
+ 0x64AC, 0xC7CB,
+ 0x64AD, 0xB2A5,
+ 0x64AE, 0xB4E9,
+ 0x64B0, 0xD7AB,
+ 0x64B5, 0xC4EC,
+ 0x64B7, 0xDFA2,
+ 0x64B8, 0xDFA3,
+ 0x64BA, 0xDFA5,
+ 0x64BC, 0xBAB3,
+ 0x64C0, 0xDFA6,
+ 0x64C2, 0xC0DE,
+ 0x64C5, 0xC9C3,
+ 0x64CD, 0xB2D9,
+ 0x64CE, 0xC7E6,
+ 0x64D0, 0xDFA7,
+ 0x64D2, 0xC7DC,
+ 0x64D7, 0xDFA8,
+ 0x64D8, 0xEBA2,
+ 0x64DE, 0xCBD3,
+ 0x64E2, 0xDFAA,
+ 0x64E4, 0xDFA9,
+ 0x64E6, 0xB2C1,
+ 0x6500, 0xC5CA,
+ 0x6509, 0xDFAB,
+ 0x6512, 0xD4DC,
+ 0x6518, 0xC8C1,
+ 0x6525, 0xDFAC,
+ 0x652B, 0xBEF0,
+ 0x652E, 0xDFAD,
+ 0x652F, 0xD6A7,
+ 0x6534, 0xEAB7,
+ 0x6535, 0xEBB6,
+ 0x6536, 0xCAD5,
+ 0x6538, 0xD8FC,
+ 0x6539, 0xB8C4,
+ 0x653B, 0xB9A5,
+ 0x653E, 0xB7C5,
+ 0x653F, 0xD5FE,
+ 0x6545, 0xB9CA,
+ 0x6548, 0xD0A7,
+ 0x6549, 0xF4CD,
+ 0x654C, 0xB5D0,
+ 0x654F, 0xC3F4,
+ 0x6551, 0xBEC8,
+ 0x6555, 0xEBB7,
+ 0x6556, 0xB0BD,
+ 0x6559, 0xBDCC,
+ 0x655B, 0xC1B2,
+ 0x655D, 0xB1D6,
+ 0x655E, 0xB3A8,
+ 0x6562, 0xB8D2,
+ 0x6563, 0xC9A2,
+ 0x6566, 0xB6D8,
+ 0x656B, 0xEBB8,
+ 0x656C, 0xBEB4,
+ 0x6570, 0xCAFD,
+ 0x6572, 0xC7C3,
+ 0x6574, 0xD5FB,
+ 0x6577, 0xB7F3,
+ 0x6587, 0xCEC4,
+ 0x658B, 0xD5AB,
+ 0x658C, 0xB1F3,
+ 0x6590, 0xECB3,
+ 0x6591, 0xB0DF,
+ 0x6593, 0xECB5,
+ 0x6597, 0xB6B7,
+ 0x6599, 0xC1CF,
+ 0x659B, 0xF5FA,
+ 0x659C, 0xD0B1,
+ 0x659F, 0xD5E5,
+ 0x65A1, 0xCED3,
+ 0x65A4, 0xBDEF,
+ 0x65A5, 0xB3E2,
+ 0x65A7, 0xB8AB,
+ 0x65A9, 0xD5B6,
+ 0x65AB, 0xEDBD,
+ 0x65AD, 0xB6CF,
+ 0x65AF, 0xCBB9,
+ 0x65B0, 0xD0C2,
+ 0x65B9, 0xB7BD,
+ 0x65BC, 0xECB6,
+ 0x65BD, 0xCAA9,
+ 0x65C1, 0xC5D4,
+ 0x65C3, 0xECB9,
+ 0x65C4, 0xECB8,
+ 0x65C5, 0xC2C3,
+ 0x65C6, 0xECB7,
+ 0x65CB, 0xD0FD,
+ 0x65CC, 0xECBA,
+ 0x65CE, 0xECBB,
+ 0x65CF, 0xD7E5,
+ 0x65D2, 0xECBC,
+ 0x65D6, 0xECBD,
+ 0x65D7, 0xC6EC,
+ 0x65E0, 0xCEDE,
+ 0x65E2, 0xBCC8,
+ 0x65E5, 0xC8D5,
+ 0x65E6, 0xB5A9,
+ 0x65E7, 0xBEC9,
+ 0x65E8, 0xD6BC,
+ 0x65E9, 0xD4E7,
+ 0x65EC, 0xD1AE,
+ 0x65ED, 0xD0F1,
+ 0x65EE, 0xEAB8,
+ 0x65EF, 0xEAB9,
+ 0x65F0, 0xEABA,
+ 0x65F1, 0xBAB5,
+ 0x65F6, 0xCAB1,
+ 0x65F7, 0xBFF5,
+ 0x65FA, 0xCDFA,
+ 0x6600, 0xEAC0,
+ 0x6602, 0xB0BA,
+ 0x6603, 0xEABE,
+ 0x6606, 0xC0A5,
+ 0x660A, 0xEABB,
+ 0x660C, 0xB2FD,
+ 0x660E, 0xC3F7,
+ 0x660F, 0xBBE8,
+ 0x6613, 0xD2D7,
+ 0x6614, 0xCEF4,
+ 0x6615, 0xEABF,
+ 0x6619, 0xEABC,
+ 0x661D, 0xEAC3,
+ 0x661F, 0xD0C7,
+ 0x6620, 0xD3B3,
+ 0x6625, 0xB4BA,
+ 0x6627, 0xC3C1,
+ 0x6628, 0xD7F2,
+ 0x662D, 0xD5D1,
+ 0x662F, 0xCAC7,
+ 0x6631, 0xEAC5,
+ 0x6634, 0xEAC4,
+ 0x6635, 0xEAC7,
+ 0x6636, 0xEAC6,
+ 0x663C, 0xD6E7,
+ 0x663E, 0xCFD4,
+ 0x6641, 0xEACB,
+ 0x6643, 0xBBCE,
+ 0x664B, 0xBDFA,
+ 0x664C, 0xC9CE,
+ 0x664F, 0xEACC,
+ 0x6652, 0xC9B9,
+ 0x6653, 0xCFFE,
+ 0x6654, 0xEACA,
+ 0x6655, 0xD4CE,
+ 0x6656, 0xEACD,
+ 0x6657, 0xEACF,
+ 0x665A, 0xCDED,
+ 0x665F, 0xEAC9,
+ 0x6661, 0xEACE,
+ 0x6664, 0xCEEE,
+ 0x6666, 0xBBDE,
+ 0x6668, 0xB3BF,
+ 0x666E, 0xC6D5,
+ 0x666F, 0xBEB0,
+ 0x6670, 0xCEFA,
+ 0x6674, 0xC7E7,
+ 0x6676, 0xBEA7,
+ 0x6677, 0xEAD0,
+ 0x667A, 0xD6C7,
+ 0x667E, 0xC1C0,
+ 0x6682, 0xD4DD,
+ 0x6684, 0xEAD1,
+ 0x6687, 0xCFBE,
+ 0x668C, 0xEAD2,
+ 0x6691, 0xCAEE,
+ 0x6696, 0xC5AF,
+ 0x6697, 0xB0B5,
+ 0x669D, 0xEAD4,
+ 0x66A7, 0xEAD3,
+ 0x66A8, 0xF4DF,
+ 0x66AE, 0xC4BA,
+ 0x66B4, 0xB1A9,
+ 0x66B9, 0xE5DF,
+ 0x66BE, 0xEAD5,
+ 0x66D9, 0xCAEF,
+ 0x66DB, 0xEAD6,
+ 0x66DC, 0xEAD7,
+ 0x66DD, 0xC6D8,
+ 0x66E6, 0xEAD8,
+ 0x66E9, 0xEAD9,
+ 0x66F0, 0xD4BB,
+ 0x66F2, 0xC7FA,
+ 0x66F3, 0xD2B7,
+ 0x66F4, 0xB8FC,
+ 0x66F7, 0xEAC2,
+ 0x66F9, 0xB2DC,
+ 0x66FC, 0xC2FC,
+ 0x66FE, 0xD4F8,
+ 0x66FF, 0xCCE6,
+ 0x6700, 0xD7EE,
+ 0x6708, 0xD4C2,
+ 0x6709, 0xD3D0,
+ 0x670A, 0xEBC3,
+ 0x670B, 0xC5F3,
+ 0x670D, 0xB7FE,
+ 0x6710, 0xEBD4,
+ 0x6714, 0xCBB7,
+ 0x6715, 0xEBDE,
+ 0x6717, 0xC0CA,
+ 0x671B, 0xCDFB,
+ 0x671D, 0xB3AF,
+ 0x671F, 0xC6DA,
+ 0x6726, 0xEBFC,
+ 0x6728, 0xC4BE,
+ 0x672A, 0xCEB4,
+ 0x672B, 0xC4A9,
+ 0x672C, 0xB1BE,
+ 0x672D, 0xD4FD,
+ 0x672F, 0xCAF5,
+ 0x6731, 0xD6EC,
+ 0x6734, 0xC6D3,
+ 0x6735, 0xB6E4,
+ 0x673A, 0xBBFA,
+ 0x673D, 0xD0E0,
+ 0x6740, 0xC9B1,
+ 0x6742, 0xD4D3,
+ 0x6743, 0xC8A8,
+ 0x6746, 0xB8CB,
+ 0x6748, 0xE8BE,
+ 0x6749, 0xC9BC,
+ 0x674C, 0xE8BB,
+ 0x674E, 0xC0EE,
+ 0x674F, 0xD0D3,
+ 0x6750, 0xB2C4,
+ 0x6751, 0xB4E5,
+ 0x6753, 0xE8BC,
+ 0x6756, 0xD5C8,
+ 0x675C, 0xB6C5,
+ 0x675E, 0xE8BD,
+ 0x675F, 0xCAF8,
+ 0x6760, 0xB8DC,
+ 0x6761, 0xCCF5,
+ 0x6765, 0xC0B4,
+ 0x6768, 0xD1EE,
+ 0x6769, 0xE8BF,
+ 0x676A, 0xE8C2,
+ 0x676D, 0xBABC,
+ 0x676F, 0xB1AD,
+ 0x6770, 0xBDDC,
+ 0x6772, 0xEABD,
+ 0x6773, 0xE8C3,
+ 0x6775, 0xE8C6,
+ 0x6777, 0xE8CB,
+ 0x677C, 0xE8CC,
+ 0x677E, 0xCBC9,
+ 0x677F, 0xB0E5,
+ 0x6781, 0xBCAB,
+ 0x6784, 0xB9B9,
+ 0x6787, 0xE8C1,
+ 0x6789, 0xCDF7,
+ 0x678B, 0xE8CA,
+ 0x6790, 0xCEF6,
+ 0x6795, 0xD5ED,
+ 0x6797, 0xC1D6,
+ 0x6798, 0xE8C4,
+ 0x679A, 0xC3B6,
+ 0x679C, 0xB9FB,
+ 0x679D, 0xD6A6,
+ 0x679E, 0xE8C8,
+ 0x67A2, 0xCAE0,
+ 0x67A3, 0xD4E6,
+ 0x67A5, 0xE8C0,
+ 0x67A7, 0xE8C5,
+ 0x67A8, 0xE8C7,
+ 0x67AA, 0xC7B9,
+ 0x67AB, 0xB7E3,
+ 0x67AD, 0xE8C9,
+ 0x67AF, 0xBFDD,
+ 0x67B0, 0xE8D2,
+ 0x67B3, 0xE8D7,
+ 0x67B5, 0xE8D5,
+ 0x67B6, 0xBCDC,
+ 0x67B7, 0xBCCF,
+ 0x67B8, 0xE8DB,
+ 0x67C1, 0xE8DE,
+ 0x67C3, 0xE8DA,
+ 0x67C4, 0xB1FA,
+ 0x67CF, 0xB0D8,
+ 0x67D0, 0xC4B3,
+ 0x67D1, 0xB8CC,
+ 0x67D2, 0xC6E2,
+ 0x67D3, 0xC8BE,
+ 0x67D4, 0xC8E1,
+ 0x67D8, 0xE8CF,
+ 0x67D9, 0xE8D4,
+ 0x67DA, 0xE8D6,
+ 0x67DC, 0xB9F1,
+ 0x67DD, 0xE8D8,
+ 0x67DE, 0xD7F5,
+ 0x67E0, 0xC4FB,
+ 0x67E2, 0xE8DC,
+ 0x67E5, 0xB2E9,
+ 0x67E9, 0xE8D1,
+ 0x67EC, 0xBCED,
+ 0x67EF, 0xBFC2,
+ 0x67F0, 0xE8CD,
+ 0x67F1, 0xD6F9,
+ 0x67F3, 0xC1F8,
+ 0x67F4, 0xB2F1,
+ 0x67FD, 0xE8DF,
+ 0x67FF, 0xCAC1,
+ 0x6800, 0xE8D9,
+ 0x6805, 0xD5A4,
+ 0x6807, 0xB1EA,
+ 0x6808, 0xD5BB,
+ 0x6809, 0xE8CE,
+ 0x680A, 0xE8D0,
+ 0x680B, 0xB6B0,
+ 0x680C, 0xE8D3,
+ 0x680E, 0xE8DD,
+ 0x680F, 0xC0B8,
+ 0x6811, 0xCAF7,
+ 0x6813, 0xCBA8,
+ 0x6816, 0xC6DC,
+ 0x6817, 0xC0F5,
+ 0x681D, 0xE8E9,
+ 0x6821, 0xD0A3,
+ 0x6829, 0xE8F2,
+ 0x682A, 0xD6EA,
+ 0x6832, 0xE8E0,
+ 0x6833, 0xE8E1,
+ 0x6837, 0xD1F9,
+ 0x6838, 0xBACB,
+ 0x6839, 0xB8F9,
+ 0x683C, 0xB8F1,
+ 0x683D, 0xD4D4,
+ 0x683E, 0xE8EF,
+ 0x6840, 0xE8EE,
+ 0x6841, 0xE8EC,
+ 0x6842, 0xB9F0,
+ 0x6843, 0xCCD2,
+ 0x6844, 0xE8E6,
+ 0x6845, 0xCEA6,
+ 0x6846, 0xBFF2,
+ 0x6848, 0xB0B8,
+ 0x6849, 0xE8F1,
+ 0x684A, 0xE8F0,
+ 0x684C, 0xD7C0,
+ 0x684E, 0xE8E4,
+ 0x6850, 0xCDA9,
+ 0x6851, 0xC9A3,
+ 0x6853, 0xBBB8,
+ 0x6854, 0xBDDB,
+ 0x6855, 0xE8EA,
+ 0x6860, 0xE8E2,
+ 0x6861, 0xE8E3,
+ 0x6862, 0xE8E5,
+ 0x6863, 0xB5B5,
+ 0x6864, 0xE8E7,
+ 0x6865, 0xC7C5,
+ 0x6866, 0xE8EB,
+ 0x6867, 0xE8ED,
+ 0x6868, 0xBDB0,
+ 0x6869, 0xD7AE,
+ 0x686B, 0xE8F8,
+ 0x6874, 0xE8F5,
+ 0x6876, 0xCDB0,
+ 0x6877, 0xE8F6,
+ 0x6881, 0xC1BA,
+ 0x6883, 0xE8E8,
+ 0x6885, 0xC3B7,
+ 0x6886, 0xB0F0,
+ 0x688F, 0xE8F4,
+ 0x6893, 0xE8F7,
+ 0x6897, 0xB9A3,
+ 0x68A2, 0xC9D2,
+ 0x68A6, 0xC3CE,
+ 0x68A7, 0xCEE0,
+ 0x68A8, 0xC0E6,
+ 0x68AD, 0xCBF3,
+ 0x68AF, 0xCCDD,
+ 0x68B0, 0xD0B5,
+ 0x68B3, 0xCAE1,
+ 0x68B5, 0xE8F3,
+ 0x68C0, 0xBCEC,
+ 0x68C2, 0xE8F9,
+ 0x68C9, 0xC3DE,
+ 0x68CB, 0xC6E5,
+ 0x68CD, 0xB9F7,
+ 0x68D2, 0xB0F4,
+ 0x68D5, 0xD7D8,
+ 0x68D8, 0xBCAC,
+ 0x68DA, 0xC5EF,
+ 0x68E0, 0xCCC4,
+ 0x68E3, 0xE9A6,
+ 0x68EE, 0xC9AD,
+ 0x68F0, 0xE9A2,
+ 0x68F1, 0xC0E2,
+ 0x68F5, 0xBFC3,
+ 0x68F9, 0xE8FE,
+ 0x68FA, 0xB9D7,
+ 0x68FC, 0xE8FB,
+ 0x6901, 0xE9A4,
+ 0x6905, 0xD2CE,
+ 0x690B, 0xE9A3,
+ 0x690D, 0xD6B2,
+ 0x690E, 0xD7B5,
+ 0x6910, 0xE9A7,
+ 0x6912, 0xBDB7,
+ 0x691F, 0xE8FC,
+ 0x6920, 0xE8FD,
+ 0x6924, 0xE9A1,
+ 0x692D, 0xCDD6,
+ 0x6930, 0xD2AC,
+ 0x6934, 0xE9B2,
+ 0x6939, 0xE9A9,
+ 0x693D, 0xB4AA,
+ 0x693F, 0xB4BB,
+ 0x6942, 0xE9AB,
+ 0x6954, 0xD0A8,
+ 0x6957, 0xE9A5,
+ 0x695A, 0xB3FE,
+ 0x695D, 0xE9AC,
+ 0x695E, 0xC0E3,
+ 0x6960, 0xE9AA,
+ 0x6963, 0xE9B9,
+ 0x6966, 0xE9B8,
+ 0x696B, 0xE9AE,
+ 0x696E, 0xE8FA,
+ 0x6971, 0xE9A8,
+ 0x6977, 0xBFAC,
+ 0x6978, 0xE9B1,
+ 0x6979, 0xE9BA,
+ 0x697C, 0xC2A5,
+ 0x6980, 0xE9AF,
+ 0x6982, 0xB8C5,
+ 0x6984, 0xE9AD,
+ 0x6986, 0xD3DC,
+ 0x6987, 0xE9B4,
+ 0x6988, 0xE9B5,
+ 0x6989, 0xE9B7,
+ 0x698D, 0xE9C7,
+ 0x6994, 0xC0C6,
+ 0x6995, 0xE9C5,
+ 0x6998, 0xE9B0,
+ 0x699B, 0xE9BB,
+ 0x699C, 0xB0F1,
+ 0x69A7, 0xE9BC,
+ 0x69A8, 0xD5A5,
+ 0x69AB, 0xE9BE,
+ 0x69AD, 0xE9BF,
+ 0x69B1, 0xE9C1,
+ 0x69B4, 0xC1F1,
+ 0x69B7, 0xC8B6,
+ 0x69BB, 0xE9BD,
+ 0x69C1, 0xE9C2,
+ 0x69CA, 0xE9C3,
+ 0x69CC, 0xE9B3,
+ 0x69CE, 0xE9B6,
+ 0x69D0, 0xBBB1,
+ 0x69D4, 0xE9C0,
+ 0x69DB, 0xBCF7,
+ 0x69DF, 0xE9C4,
+ 0x69E0, 0xE9C6,
+ 0x69ED, 0xE9CA,
+ 0x69F2, 0xE9CE,
+ 0x69FD, 0xB2DB,
+ 0x69FF, 0xE9C8,
+ 0x6A0A, 0xB7AE,
+ 0x6A17, 0xE9CB,
+ 0x6A18, 0xE9CC,
+ 0x6A1F, 0xD5C1,
+ 0x6A21, 0xC4A3,
+ 0x6A28, 0xE9D8,
+ 0x6A2A, 0xBAE1,
+ 0x6A2F, 0xE9C9,
+ 0x6A31, 0xD3A3,
+ 0x6A35, 0xE9D4,
+ 0x6A3D, 0xE9D7,
+ 0x6A3E, 0xE9D0,
+ 0x6A44, 0xE9CF,
+ 0x6A47, 0xC7C1,
+ 0x6A50, 0xE9D2,
+ 0x6A58, 0xE9D9,
+ 0x6A59, 0xB3C8,
+ 0x6A5B, 0xE9D3,
+ 0x6A61, 0xCFF0,
+ 0x6A65, 0xE9CD,
+ 0x6A71, 0xB3F7,
+ 0x6A79, 0xE9D6,
+ 0x6A7C, 0xE9DA,
+ 0x6A80, 0xCCB4,
+ 0x6A84, 0xCFAD,
+ 0x6A8E, 0xE9D5,
+ 0x6A90, 0xE9DC,
+ 0x6A91, 0xE9DB,
+ 0x6A97, 0xE9DE,
+ 0x6AA0, 0xE9D1,
+ 0x6AA9, 0xE9DD,
+ 0x6AAB, 0xE9DF,
+ 0x6AAC, 0xC3CA,
+ 0x6B20, 0xC7B7,
+ 0x6B21, 0xB4CE,
+ 0x6B22, 0xBBB6,
+ 0x6B23, 0xD0C0,
+ 0x6B24, 0xECA3,
+ 0x6B27, 0xC5B7,
+ 0x6B32, 0xD3FB,
+ 0x6B37, 0xECA4,
+ 0x6B39, 0xECA5,
+ 0x6B3A, 0xC6DB,
+ 0x6B3E, 0xBFEE,
+ 0x6B43, 0xECA6,
+ 0x6B46, 0xECA7,
+ 0x6B47, 0xD0AA,
+ 0x6B49, 0xC7B8,
+ 0x6B4C, 0xB8E8,
+ 0x6B59, 0xECA8,
+ 0x6B62, 0xD6B9,
+ 0x6B63, 0xD5FD,
+ 0x6B64, 0xB4CB,
+ 0x6B65, 0xB2BD,
+ 0x6B66, 0xCEE4,
+ 0x6B67, 0xC6E7,
+ 0x6B6A, 0xCDE1,
+ 0x6B79, 0xB4F5,
+ 0x6B7B, 0xCBC0,
+ 0x6B7C, 0xBCDF,
+ 0x6B81, 0xE9E2,
+ 0x6B82, 0xE9E3,
+ 0x6B83, 0xD1EA,
+ 0x6B84, 0xE9E5,
+ 0x6B86, 0xB4F9,
+ 0x6B87, 0xE9E4,
+ 0x6B89, 0xD1B3,
+ 0x6B8A, 0xCAE2,
+ 0x6B8B, 0xB2D0,
+ 0x6B8D, 0xE9E8,
+ 0x6B92, 0xE9E6,
+ 0x6B93, 0xE9E7,
+ 0x6B96, 0xD6B3,
+ 0x6B9A, 0xE9E9,
+ 0x6B9B, 0xE9EA,
+ 0x6BA1, 0xE9EB,
+ 0x6BAA, 0xE9EC,
+ 0x6BB3, 0xECAF,
+ 0x6BB4, 0xC5B9,
+ 0x6BB5, 0xB6CE,
+ 0x6BB7, 0xD2F3,
+ 0x6BBF, 0xB5EE,
+ 0x6BC1, 0xBBD9,
+ 0x6BC2, 0xECB1,
+ 0x6BC5, 0xD2E3,
+ 0x6BCB, 0xCEE3,
+ 0x6BCD, 0xC4B8,
+ 0x6BCF, 0xC3BF,
+ 0x6BD2, 0xB6BE,
+ 0x6BD3, 0xD8B9,
+ 0x6BD4, 0xB1C8,
+ 0x6BD5, 0xB1CF,
+ 0x6BD6, 0xB1D1,
+ 0x6BD7, 0xC5FE,
+ 0x6BD9, 0xB1D0,
+ 0x6BDB, 0xC3AB,
+ 0x6BE1, 0xD5B1,
+ 0x6BEA, 0xEBA4,
+ 0x6BEB, 0xBAC1,
+ 0x6BEF, 0xCCBA,
+ 0x6BF3, 0xEBA5,
+ 0x6BF5, 0xEBA7,
+ 0x6BF9, 0xEBA8,
+ 0x6BFD, 0xEBA6,
+ 0x6C05, 0xEBA9,
+ 0x6C06, 0xEBAB,
+ 0x6C07, 0xEBAA,
+ 0x6C0D, 0xEBAC,
+ 0x6C0F, 0xCACF,
+ 0x6C10, 0xD8B5,
+ 0x6C11, 0xC3F1,
+ 0x6C13, 0xC3A5,
+ 0x6C14, 0xC6F8,
+ 0x6C15, 0xEBAD,
+ 0x6C16, 0xC4CA,
+ 0x6C18, 0xEBAE,
+ 0x6C19, 0xEBAF,
+ 0x6C1A, 0xEBB0,
+ 0x6C1B, 0xB7D5,
+ 0x6C1F, 0xB7FA,
+ 0x6C21, 0xEBB1,
+ 0x6C22, 0xC7E2,
+ 0x6C24, 0xEBB3,
+ 0x6C26, 0xBAA4,
+ 0x6C27, 0xD1F5,
+ 0x6C28, 0xB0B1,
+ 0x6C29, 0xEBB2,
+ 0x6C2A, 0xEBB4,
+ 0x6C2E, 0xB5AA,
+ 0x6C2F, 0xC2C8,
+ 0x6C30, 0xC7E8,
+ 0x6C32, 0xEBB5,
+ 0x6C34, 0xCBAE,
+ 0x6C35, 0xE3DF,
+ 0x6C38, 0xD3C0,
+ 0x6C3D, 0xD9DB,
+ 0x6C40, 0xCDA1,
+ 0x6C41, 0xD6AD,
+ 0x6C42, 0xC7F3,
+ 0x6C46, 0xD9E0,
+ 0x6C47, 0xBBE3,
+ 0x6C49, 0xBABA,
+ 0x6C4A, 0xE3E2,
+ 0x6C50, 0xCFAB,
+ 0x6C54, 0xE3E0,
+ 0x6C55, 0xC9C7,
+ 0x6C57, 0xBAB9,
+ 0x6C5B, 0xD1B4,
+ 0x6C5C, 0xE3E1,
+ 0x6C5D, 0xC8EA,
+ 0x6C5E, 0xB9AF,
+ 0x6C5F, 0xBDAD,
+ 0x6C60, 0xB3D8,
+ 0x6C61, 0xCEDB,
+ 0x6C64, 0xCCC0,
+ 0x6C68, 0xE3E8,
+ 0x6C69, 0xE3E9,
+ 0x6C6A, 0xCDF4,
+ 0x6C70, 0xCCAD,
+ 0x6C72, 0xBCB3,
+ 0x6C74, 0xE3EA,
+ 0x6C76, 0xE3EB,
+ 0x6C79, 0xD0DA,
+ 0x6C7D, 0xC6FB,
+ 0x6C7E, 0xB7DA,
+ 0x6C81, 0xC7DF,
+ 0x6C82, 0xD2CA,
+ 0x6C83, 0xCED6,
+ 0x6C85, 0xE3E4,
+ 0x6C86, 0xE3EC,
+ 0x6C88, 0xC9F2,
+ 0x6C89, 0xB3C1,
+ 0x6C8C, 0xE3E7,
+ 0x6C8F, 0xC6E3,
+ 0x6C90, 0xE3E5,
+ 0x6C93, 0xEDB3,
+ 0x6C94, 0xE3E6,
+ 0x6C99, 0xC9B3,
+ 0x6C9B, 0xC5E6,
+ 0x6C9F, 0xB9B5,
+ 0x6CA1, 0xC3BB,
+ 0x6CA3, 0xE3E3,
+ 0x6CA4, 0xC5BD,
+ 0x6CA5, 0xC1A4,
+ 0x6CA6, 0xC2D9,
+ 0x6CA7, 0xB2D7,
+ 0x6CA9, 0xE3ED,
+ 0x6CAA, 0xBBA6,
+ 0x6CAB, 0xC4AD,
+ 0x6CAD, 0xE3F0,
+ 0x6CAE, 0xBEDA,
+ 0x6CB1, 0xE3FB,
+ 0x6CB2, 0xE3F5,
+ 0x6CB3, 0xBAD3,
+ 0x6CB8, 0xB7D0,
+ 0x6CB9, 0xD3CD,
+ 0x6CBB, 0xD6CE,
+ 0x6CBC, 0xD5D3,
+ 0x6CBD, 0xB9C1,
+ 0x6CBE, 0xD5B4,
+ 0x6CBF, 0xD1D8,
+ 0x6CC4, 0xD0B9,
+ 0x6CC5, 0xC7F6,
+ 0x6CC9, 0xC8AA,
+ 0x6CCA, 0xB2B4,
+ 0x6CCC, 0xC3DA,
+ 0x6CD0, 0xE3EE,
+ 0x6CD3, 0xE3FC,
+ 0x6CD4, 0xE3EF,
+ 0x6CD5, 0xB7A8,
+ 0x6CD6, 0xE3F7,
+ 0x6CD7, 0xE3F4,
+ 0x6CDB, 0xB7BA,
+ 0x6CDE, 0xC5A2,
+ 0x6CE0, 0xE3F6,
+ 0x6CE1, 0xC5DD,
+ 0x6CE2, 0xB2A8,
+ 0x6CE3, 0xC6FC,
+ 0x6CE5, 0xC4E0,
+ 0x6CE8, 0xD7A2,
+ 0x6CEA, 0xC0E1,
+ 0x6CEB, 0xE3F9,
+ 0x6CEE, 0xE3FA,
+ 0x6CEF, 0xE3FD,
+ 0x6CF0, 0xCCA9,
+ 0x6CF1, 0xE3F3,
+ 0x6CF3, 0xD3BE,
+ 0x6CF5, 0xB1C3,
+ 0x6CF6, 0xEDB4,
+ 0x6CF7, 0xE3F1,
+ 0x6CF8, 0xE3F2,
+ 0x6CFA, 0xE3F8,
+ 0x6CFB, 0xD0BA,
+ 0x6CFC, 0xC6C3,
+ 0x6CFD, 0xD4F3,
+ 0x6CFE, 0xE3FE,
+ 0x6D01, 0xBDE0,
+ 0x6D04, 0xE4A7,
+ 0x6D07, 0xE4A6,
+ 0x6D0B, 0xD1F3,
+ 0x6D0C, 0xE4A3,
+ 0x6D0E, 0xE4A9,
+ 0x6D12, 0xC8F7,
+ 0x6D17, 0xCFB4,
+ 0x6D19, 0xE4A8,
+ 0x6D1A, 0xE4AE,
+ 0x6D1B, 0xC2E5,
+ 0x6D1E, 0xB6B4,
+ 0x6D25, 0xBDF2,
+ 0x6D27, 0xE4A2,
+ 0x6D2A, 0xBAE9,
+ 0x6D2B, 0xE4AA,
+ 0x6D2E, 0xE4AC,
+ 0x6D31, 0xB6FD,
+ 0x6D32, 0xD6DE,
+ 0x6D33, 0xE4B2,
+ 0x6D35, 0xE4AD,
+ 0x6D39, 0xE4A1,
+ 0x6D3B, 0xBBEE,
+ 0x6D3C, 0xCDDD,
+ 0x6D3D, 0xC7A2,
+ 0x6D3E, 0xC5C9,
+ 0x6D41, 0xC1F7,
+ 0x6D43, 0xE4A4,
+ 0x6D45, 0xC7B3,
+ 0x6D46, 0xBDAC,
+ 0x6D47, 0xBDBD,
+ 0x6D48, 0xE4A5,
+ 0x6D4A, 0xD7C7,
+ 0x6D4B, 0xB2E2,
+ 0x6D4D, 0xE4AB,
+ 0x6D4E, 0xBCC3,
+ 0x6D4F, 0xE4AF,
+ 0x6D51, 0xBBEB,
+ 0x6D52, 0xE4B0,
+ 0x6D53, 0xC5A8,
+ 0x6D54, 0xE4B1,
+ 0x6D59, 0xD5E3,
+ 0x6D5A, 0xBFA3,
+ 0x6D5C, 0xE4BA,
+ 0x6D5E, 0xE4B7,
+ 0x6D60, 0xE4BB,
+ 0x6D63, 0xE4BD,
+ 0x6D66, 0xC6D6,
+ 0x6D69, 0xBAC6,
+ 0x6D6A, 0xC0CB,
+ 0x6D6E, 0xB8A1,
+ 0x6D6F, 0xE4B4,
+ 0x6D74, 0xD4A1,
+ 0x6D77, 0xBAA3,
+ 0x6D78, 0xBDFE,
+ 0x6D7C, 0xE4BC,
+ 0x6D82, 0xCDBF,
+ 0x6D85, 0xC4F9,
+ 0x6D88, 0xCFFB,
+ 0x6D89, 0xC9E6,
+ 0x6D8C, 0xD3BF,
+ 0x6D8E, 0xCFD1,
+ 0x6D91, 0xE4B3,
+ 0x6D93, 0xE4B8,
+ 0x6D94, 0xE4B9,
+ 0x6D95, 0xCCE9,
+ 0x6D9B, 0xCCCE,
+ 0x6D9D, 0xC0D4,
+ 0x6D9E, 0xE4B5,
+ 0x6D9F, 0xC1B0,
+ 0x6DA0, 0xE4B6,
+ 0x6DA1, 0xCED0,
+ 0x6DA3, 0xBBC1,
+ 0x6DA4, 0xB5D3,
+ 0x6DA6, 0xC8F3,
+ 0x6DA7, 0xBDA7,
+ 0x6DA8, 0xD5C7,
+ 0x6DA9, 0xC9AC,
+ 0x6DAA, 0xB8A2,
+ 0x6DAB, 0xE4CA,
+ 0x6DAE, 0xE4CC,
+ 0x6DAF, 0xD1C4,
+ 0x6DB2, 0xD2BA,
+ 0x6DB5, 0xBAAD,
+ 0x6DB8, 0xBAD4,
+ 0x6DBF, 0xE4C3,
+ 0x6DC0, 0xB5ED,
+ 0x6DC4, 0xD7CD,
+ 0x6DC5, 0xE4C0,
+ 0x6DC6, 0xCFFD,
+ 0x6DC7, 0xE4BF,
+ 0x6DCB, 0xC1DC,
+ 0x6DCC, 0xCCCA,
+ 0x6DD1, 0xCAE7,
+ 0x6DD6, 0xC4D7,
+ 0x6DD8, 0xCCD4,
+ 0x6DD9, 0xE4C8,
+ 0x6DDD, 0xE4C7,
+ 0x6DDE, 0xE4C1,
+ 0x6DE0, 0xE4C4,
+ 0x6DE1, 0xB5AD,
+ 0x6DE4, 0xD3D9,
+ 0x6DE6, 0xE4C6,
+ 0x6DEB, 0xD2F9,
+ 0x6DEC, 0xB4E3,
+ 0x6DEE, 0xBBB4,
+ 0x6DF1, 0xC9EE,
+ 0x6DF3, 0xB4BE,
+ 0x6DF7, 0xBBEC,
+ 0x6DF9, 0xD1CD,
+ 0x6DFB, 0xCCED,
+ 0x6DFC, 0xEDB5,
+ 0x6E05, 0xC7E5,
+ 0x6E0A, 0xD4A8,
+ 0x6E0C, 0xE4CB,
+ 0x6E0D, 0xD7D5,
+ 0x6E0E, 0xE4C2,
+ 0x6E10, 0xBDA5,
+ 0x6E11, 0xE4C5,
+ 0x6E14, 0xD3E6,
+ 0x6E16, 0xE4C9,
+ 0x6E17, 0xC9F8,
+ 0x6E1A, 0xE4BE,
+ 0x6E1D, 0xD3E5,
+ 0x6E20, 0xC7FE,
+ 0x6E21, 0xB6C9,
+ 0x6E23, 0xD4FC,
+ 0x6E24, 0xB2B3,
+ 0x6E25, 0xE4D7,
+ 0x6E29, 0xCEC2,
+ 0x6E2B, 0xE4CD,
+ 0x6E2D, 0xCEBC,
+ 0x6E2F, 0xB8DB,
+ 0x6E32, 0xE4D6,
+ 0x6E34, 0xBFCA,
+ 0x6E38, 0xD3CE,
+ 0x6E3A, 0xC3EC,
+ 0x6E43, 0xC5C8,
+ 0x6E44, 0xE4D8,
+ 0x6E4D, 0xCDC4,
+ 0x6E4E, 0xE4CF,
+ 0x6E53, 0xE4D4,
+ 0x6E54, 0xE4D5,
+ 0x6E56, 0xBAFE,
+ 0x6E58, 0xCFE6,
+ 0x6E5B, 0xD5BF,
+ 0x6E5F, 0xE4D2,
+ 0x6E6B, 0xE4D0,
+ 0x6E6E, 0xE4CE,
+ 0x6E7E, 0xCDE5,
+ 0x6E7F, 0xCAAA,
+ 0x6E83, 0xC0A3,
+ 0x6E85, 0xBDA6,
+ 0x6E86, 0xE4D3,
+ 0x6E89, 0xB8C8,
+ 0x6E8F, 0xE4E7,
+ 0x6E90, 0xD4B4,
+ 0x6E98, 0xE4DB,
+ 0x6E9C, 0xC1EF,
+ 0x6E9F, 0xE4E9,
+ 0x6EA2, 0xD2E7,
+ 0x6EA5, 0xE4DF,
+ 0x6EA7, 0xE4E0,
+ 0x6EAA, 0xCFAA,
+ 0x6EAF, 0xCBDD,
+ 0x6EB1, 0xE4DA,
+ 0x6EB2, 0xE4D1,
+ 0x6EB4, 0xE4E5,
+ 0x6EB6, 0xC8DC,
+ 0x6EB7, 0xE4E3,
+ 0x6EBA, 0xC4E7,
+ 0x6EBB, 0xE4E2,
+ 0x6EBD, 0xE4E1,
+ 0x6EC1, 0xB3FC,
+ 0x6EC2, 0xE4E8,
+ 0x6EC7, 0xB5E1,
+ 0x6ECB, 0xD7CC,
+ 0x6ECF, 0xE4E6,
+ 0x6ED1, 0xBBAC,
+ 0x6ED3, 0xD7D2,
+ 0x6ED4, 0xCCCF,
+ 0x6ED5, 0xEBF8,
+ 0x6ED7, 0xE4E4,
+ 0x6EDA, 0xB9F6,
+ 0x6EDE, 0xD6CD,
+ 0x6EDF, 0xE4D9,
+ 0x6EE0, 0xE4DC,
+ 0x6EE1, 0xC2FA,
+ 0x6EE2, 0xE4DE,
+ 0x6EE4, 0xC2CB,
+ 0x6EE5, 0xC0C4,
+ 0x6EE6, 0xC2D0,
+ 0x6EE8, 0xB1F5,
+ 0x6EE9, 0xCCB2,
+ 0x6EF4, 0xB5CE,
+ 0x6EF9, 0xE4EF,
+ 0x6F02, 0xC6AF,
+ 0x6F06, 0xC6E1,
+ 0x6F09, 0xE4F5,
+ 0x6F0F, 0xC2A9,
+ 0x6F13, 0xC0EC,
+ 0x6F14, 0xD1DD,
+ 0x6F15, 0xE4EE,
+ 0x6F20, 0xC4AE,
+ 0x6F24, 0xE4ED,
+ 0x6F29, 0xE4F6,
+ 0x6F2A, 0xE4F4,
+ 0x6F2B, 0xC2FE,
+ 0x6F2D, 0xE4DD,
+ 0x6F2F, 0xE4F0,
+ 0x6F31, 0xCAFE,
+ 0x6F33, 0xD5C4,
+ 0x6F36, 0xE4F1,
+ 0x6F3E, 0xD1FA,
+ 0x6F46, 0xE4EB,
+ 0x6F47, 0xE4EC,
+ 0x6F4B, 0xE4F2,
+ 0x6F4D, 0xCEAB,
+ 0x6F58, 0xC5CB,
+ 0x6F5C, 0xC7B1,
+ 0x6F5E, 0xC2BA,
+ 0x6F62, 0xE4EA,
+ 0x6F66, 0xC1CA,
+ 0x6F6D, 0xCCB6,
+ 0x6F6E, 0xB3B1,
+ 0x6F72, 0xE4FB,
+ 0x6F74, 0xE4F3,
+ 0x6F78, 0xE4FA,
+ 0x6F7A, 0xE4FD,
+ 0x6F7C, 0xE4FC,
+ 0x6F84, 0xB3CE,
+ 0x6F88, 0xB3BA,
+ 0x6F89, 0xE4F7,
+ 0x6F8C, 0xE4F9,
+ 0x6F8D, 0xE4F8,
+ 0x6F8E, 0xC5EC,
+ 0x6F9C, 0xC0BD,
+ 0x6FA1, 0xD4E8,
+ 0x6FA7, 0xE5A2,
+ 0x6FB3, 0xB0C4,
+ 0x6FB6, 0xE5A4,
+ 0x6FB9, 0xE5A3,
+ 0x6FC0, 0xBCA4,
+ 0x6FC2, 0xE5A5,
+ 0x6FC9, 0xE5A1,
+ 0x6FD1, 0xE4FE,
+ 0x6FD2, 0xB1F4,
+ 0x6FDE, 0xE5A8,
+ 0x6FE0, 0xE5A9,
+ 0x6FE1, 0xE5A6,
+ 0x6FEE, 0xE5A7,
+ 0x6FEF, 0xE5AA,
+ 0x7011, 0xC6D9,
+ 0x701A, 0xE5AB,
+ 0x701B, 0xE5AD,
+ 0x7023, 0xE5AC,
+ 0x7035, 0xE5AF,
+ 0x7039, 0xE5AE,
+ 0x704C, 0xB9E0,
+ 0x704F, 0xE5B0,
+ 0x705E, 0xE5B1,
+ 0x706B, 0xBBF0,
+ 0x706C, 0xECE1,
+ 0x706D, 0xC3F0,
+ 0x706F, 0xB5C6,
+ 0x7070, 0xBBD2,
+ 0x7075, 0xC1E9,
+ 0x7076, 0xD4EE,
+ 0x7078, 0xBEC4,
+ 0x707C, 0xD7C6,
+ 0x707E, 0xD4D6,
+ 0x707F, 0xB2D3,
+ 0x7080, 0xECBE,
+ 0x7085, 0xEAC1,
+ 0x7089, 0xC2AF,
+ 0x708A, 0xB4B6,
+ 0x708E, 0xD1D7,
+ 0x7092, 0xB3B4,
+ 0x7094, 0xC8B2,
+ 0x7095, 0xBFBB,
+ 0x7096, 0xECC0,
+ 0x7099, 0xD6CB,
+ 0x709C, 0xECBF,
+ 0x709D, 0xECC1,
+ 0x70AB, 0xECC5,
+ 0x70AC, 0xBEE6,
+ 0x70AD, 0xCCBF,
+ 0x70AE, 0xC5DA,
+ 0x70AF, 0xBEBC,
+ 0x70B1, 0xECC6,
+ 0x70B3, 0xB1FE,
+ 0x70B7, 0xECC4,
+ 0x70B8, 0xD5A8,
+ 0x70B9, 0xB5E3,
+ 0x70BB, 0xECC2,
+ 0x70BC, 0xC1B6,
+ 0x70BD, 0xB3E3,
+ 0x70C0, 0xECC3,
+ 0x70C1, 0xCBB8,
+ 0x70C2, 0xC0C3,
+ 0x70C3, 0xCCFE,
+ 0x70C8, 0xC1D2,
+ 0x70CA, 0xECC8,
+ 0x70D8, 0xBAE6,
+ 0x70D9, 0xC0D3,
+ 0x70DB, 0xD6F2,
+ 0x70DF, 0xD1CC,
+ 0x70E4, 0xBFBE,
+ 0x70E6, 0xB7B3,
+ 0x70E7, 0xC9D5,
+ 0x70E8, 0xECC7,
+ 0x70E9, 0xBBE2,
+ 0x70EB, 0xCCCC,
+ 0x70EC, 0xBDFD,
+ 0x70ED, 0xC8C8,
+ 0x70EF, 0xCFA9,
+ 0x70F7, 0xCDE9,
+ 0x70F9, 0xC5EB,
+ 0x70FD, 0xB7E9,
+ 0x7109, 0xD1C9,
+ 0x710A, 0xBAB8,
+ 0x7110, 0xECC9,
+ 0x7113, 0xECCA,
+ 0x7115, 0xBBC0,
+ 0x7116, 0xECCB,
+ 0x7118, 0xECE2,
+ 0x7119, 0xB1BA,
+ 0x711A, 0xB7D9,
+ 0x7126, 0xBDB9,
+ 0x712F, 0xECCC,
+ 0x7130, 0xD1E6,
+ 0x7131, 0xECCD,
+ 0x7136, 0xC8BB,
+ 0x7145, 0xECD1,
+ 0x714A, 0xECD3,
+ 0x714C, 0xBBCD,
+ 0x714E, 0xBCE5,
+ 0x715C, 0xECCF,
+ 0x715E, 0xC9B7,
+ 0x7164, 0xC3BA,
+ 0x7166, 0xECE3,
+ 0x7167, 0xD5D5,
+ 0x7168, 0xECD0,
+ 0x716E, 0xD6F3,
+ 0x7172, 0xECD2,
+ 0x7173, 0xECCE,
+ 0x7178, 0xECD4,
+ 0x717A, 0xECD5,
+ 0x717D, 0xC9BF,
+ 0x7184, 0xCFA8,
+ 0x718A, 0xD0DC,
+ 0x718F, 0xD1AC,
+ 0x7194, 0xC8DB,
+ 0x7198, 0xECD6,
+ 0x7199, 0xCEF5,
+ 0x719F, 0xCAEC,
+ 0x71A0, 0xECDA,
+ 0x71A8, 0xECD9,
+ 0x71AC, 0xB0BE,
+ 0x71B3, 0xECD7,
+ 0x71B5, 0xECD8,
+ 0x71B9, 0xECE4,
+ 0x71C3, 0xC8BC,
+ 0x71CE, 0xC1C7,
+ 0x71D4, 0xECDC,
+ 0x71D5, 0xD1E0,
+ 0x71E0, 0xECDB,
+ 0x71E5, 0xD4EF,
+ 0x71E7, 0xECDD,
+ 0x71EE, 0xDBC6,
+ 0x71F9, 0xECDE,
+ 0x7206, 0xB1AC,
+ 0x721D, 0xECDF,
+ 0x7228, 0xECE0,
+ 0x722A, 0xD7A6,
+ 0x722C, 0xC5C0,
+ 0x7230, 0xEBBC,
+ 0x7231, 0xB0AE,
+ 0x7235, 0xBEF4,
+ 0x7236, 0xB8B8,
+ 0x7237, 0xD2AF,
+ 0x7238, 0xB0D6,
+ 0x7239, 0xB5F9,
+ 0x723B, 0xD8B3,
+ 0x723D, 0xCBAC,
+ 0x723F, 0xE3DD,
+ 0x7247, 0xC6AC,
+ 0x7248, 0xB0E6,
+ 0x724C, 0xC5C6,
+ 0x724D, 0xEBB9,
+ 0x7252, 0xEBBA,
+ 0x7256, 0xEBBB,
+ 0x7259, 0xD1C0,
+ 0x725B, 0xC5A3,
+ 0x725D, 0xEAF2,
+ 0x725F, 0xC4B2,
+ 0x7261, 0xC4B5,
+ 0x7262, 0xC0CE,
+ 0x7266, 0xEAF3,
+ 0x7267, 0xC4C1,
+ 0x7269, 0xCEEF,
+ 0x726E, 0xEAF0,
+ 0x726F, 0xEAF4,
+ 0x7272, 0xC9FC,
+ 0x7275, 0xC7A3,
+ 0x7279, 0xCCD8,
+ 0x727A, 0xCEFE,
+ 0x727E, 0xEAF5,
+ 0x727F, 0xEAF6,
+ 0x7280, 0xCFAC,
+ 0x7281, 0xC0E7,
+ 0x7284, 0xEAF7,
+ 0x728A, 0xB6BF,
+ 0x728B, 0xEAF8,
+ 0x728D, 0xEAF9,
+ 0x728F, 0xEAFA,
+ 0x7292, 0xEAFB,
+ 0x729F, 0xEAF1,
+ 0x72AC, 0xC8AE,
+ 0x72AD, 0xE1EB,
+ 0x72AF, 0xB7B8,
+ 0x72B0, 0xE1EC,
+ 0x72B4, 0xE1ED,
+ 0x72B6, 0xD7B4,
+ 0x72B7, 0xE1EE,
+ 0x72B8, 0xE1EF,
+ 0x72B9, 0xD3CC,
+ 0x72C1, 0xE1F1,
+ 0x72C2, 0xBFF1,
+ 0x72C3, 0xE1F0,
+ 0x72C4, 0xB5D2,
+ 0x72C8, 0xB1B7,
+ 0x72CD, 0xE1F3,
+ 0x72CE, 0xE1F2,
+ 0x72D0, 0xBAFC,
+ 0x72D2, 0xE1F4,
+ 0x72D7, 0xB9B7,
+ 0x72D9, 0xBED1,
+ 0x72DE, 0xC4FC,
+ 0x72E0, 0xBADD,
+ 0x72E1, 0xBDC6,
+ 0x72E8, 0xE1F5,
+ 0x72E9, 0xE1F7,
+ 0x72EC, 0xB6C0,
+ 0x72ED, 0xCFC1,
+ 0x72EE, 0xCAA8,
+ 0x72EF, 0xE1F6,
+ 0x72F0, 0xD5F8,
+ 0x72F1, 0xD3FC,
+ 0x72F2, 0xE1F8,
+ 0x72F3, 0xE1FC,
+ 0x72F4, 0xE1F9,
+ 0x72F7, 0xE1FA,
+ 0x72F8, 0xC0EA,
+ 0x72FA, 0xE1FE,
+ 0x72FB, 0xE2A1,
+ 0x72FC, 0xC0C7,
+ 0x7301, 0xE1FB,
+ 0x7303, 0xE1FD,
+ 0x730A, 0xE2A5,
+ 0x730E, 0xC1D4,
+ 0x7313, 0xE2A3,
+ 0x7315, 0xE2A8,
+ 0x7316, 0xB2FE,
+ 0x7317, 0xE2A2,
+ 0x731B, 0xC3CD,
+ 0x731C, 0xB2C2,
+ 0x731D, 0xE2A7,
+ 0x731E, 0xE2A6,
+ 0x7321, 0xE2A4,
+ 0x7322, 0xE2A9,
+ 0x7325, 0xE2AB,
+ 0x7329, 0xD0C9,
+ 0x732A, 0xD6ED,
+ 0x732B, 0xC3A8,
+ 0x732C, 0xE2AC,
+ 0x732E, 0xCFD7,
+ 0x7331, 0xE2AE,
+ 0x7334, 0xBAEF,
+ 0x7337, 0xE9E0,
+ 0x7338, 0xE2AD,
+ 0x7339, 0xE2AA,
+ 0x733E, 0xBBAB,
+ 0x733F, 0xD4B3,
+ 0x734D, 0xE2B0,
+ 0x7350, 0xE2AF,
+ 0x7352, 0xE9E1,
+ 0x7357, 0xE2B1,
+ 0x7360, 0xE2B2,
+ 0x736C, 0xE2B3,
+ 0x736D, 0xCCA1,
+ 0x736F, 0xE2B4,
+ 0x737E, 0xE2B5,
+ 0x7384, 0xD0FE,
+ 0x7387, 0xC2CA,
+ 0x7389, 0xD3F1,
+ 0x738B, 0xCDF5,
+ 0x738E, 0xE7E0,
+ 0x7391, 0xE7E1,
+ 0x7396, 0xBEC1,
+ 0x739B, 0xC2EA,
+ 0x739F, 0xE7E4,
+ 0x73A2, 0xE7E3,
+ 0x73A9, 0xCDE6,
+ 0x73AB, 0xC3B5,
+ 0x73AE, 0xE7E2,
+ 0x73AF, 0xBBB7,
+ 0x73B0, 0xCFD6,
+ 0x73B2, 0xC1E1,
+ 0x73B3, 0xE7E9,
+ 0x73B7, 0xE7E8,
+ 0x73BA, 0xE7F4,
+ 0x73BB, 0xB2A3,
+ 0x73C0, 0xE7EA,
+ 0x73C2, 0xE7E6,
+ 0x73C8, 0xE7EC,
+ 0x73C9, 0xE7EB,
+ 0x73CA, 0xC9BA,
+ 0x73CD, 0xD5E4,
+ 0x73CF, 0xE7E5,
+ 0x73D0, 0xB7A9,
+ 0x73D1, 0xE7E7,
+ 0x73D9, 0xE7EE,
+ 0x73DE, 0xE7F3,
+ 0x73E0, 0xD6E9,
+ 0x73E5, 0xE7ED,
+ 0x73E7, 0xE7F2,
+ 0x73E9, 0xE7F1,
+ 0x73ED, 0xB0E0,
+ 0x73F2, 0xE7F5,
+ 0x7403, 0xC7F2,
+ 0x7405, 0xC0C5,
+ 0x7406, 0xC0ED,
+ 0x7409, 0xC1F0,
+ 0x740A, 0xE7F0,
+ 0x740F, 0xE7F6,
+ 0x7410, 0xCBF6,
+ 0x741A, 0xE8A2,
+ 0x741B, 0xE8A1,
+ 0x7422, 0xD7C1,
+ 0x7425, 0xE7FA,
+ 0x7426, 0xE7F9,
+ 0x7428, 0xE7FB,
+ 0x742A, 0xE7F7,
+ 0x742C, 0xE7FE,
+ 0x742E, 0xE7FD,
+ 0x7430, 0xE7FC,
+ 0x7433, 0xC1D5,
+ 0x7434, 0xC7D9,
+ 0x7435, 0xC5FD,
+ 0x7436, 0xC5C3,
+ 0x743C, 0xC7ED,
+ 0x7441, 0xE8A3,
+ 0x7455, 0xE8A6,
+ 0x7457, 0xE8A5,
+ 0x7459, 0xE8A7,
+ 0x745A, 0xBAF7,
+ 0x745B, 0xE7F8,
+ 0x745C, 0xE8A4,
+ 0x745E, 0xC8F0,
+ 0x745F, 0xC9AA,
+ 0x746D, 0xE8A9,
+ 0x7470, 0xB9E5,
+ 0x7476, 0xD1FE,
+ 0x7477, 0xE8A8,
+ 0x747E, 0xE8AA,
+ 0x7480, 0xE8AD,
+ 0x7481, 0xE8AE,
+ 0x7483, 0xC1A7,
+ 0x7487, 0xE8AF,
+ 0x748B, 0xE8B0,
+ 0x748E, 0xE8AC,
+ 0x7490, 0xE8B4,
+ 0x749C, 0xE8AB,
+ 0x749E, 0xE8B1,
+ 0x74A7, 0xE8B5,
+ 0x74A8, 0xE8B2,
+ 0x74A9, 0xE8B3,
+ 0x74BA, 0xE8B7,
+ 0x74D2, 0xE8B6,
+ 0x74DC, 0xB9CF,
+ 0x74DE, 0xF0AC,
+ 0x74E0, 0xF0AD,
+ 0x74E2, 0xC6B0,
+ 0x74E3, 0xB0EA,
+ 0x74E4, 0xC8BF,
+ 0x74E6, 0xCDDF,
+ 0x74EE, 0xCECD,
+ 0x74EF, 0xEAB1,
+ 0x74F4, 0xEAB2,
+ 0x74F6, 0xC6BF,
+ 0x74F7, 0xB4C9,
+ 0x74FF, 0xEAB3,
+ 0x7504, 0xD5E7,
+ 0x750D, 0xDDF9,
+ 0x750F, 0xEAB4,
+ 0x7511, 0xEAB5,
+ 0x7513, 0xEAB6,
+ 0x7518, 0xB8CA,
+ 0x7519, 0xDFB0,
+ 0x751A, 0xC9F5,
+ 0x751C, 0xCCF0,
+ 0x751F, 0xC9FA,
+ 0x7525, 0xC9FB,
+ 0x7528, 0xD3C3,
+ 0x7529, 0xCBA6,
+ 0x752B, 0xB8A6,
+ 0x752C, 0xF0AE,
+ 0x752D, 0xB1C2,
+ 0x752F, 0xE5B8,
+ 0x7530, 0xCCEF,
+ 0x7531, 0xD3C9,
+ 0x7532, 0xBCD7,
+ 0x7533, 0xC9EA,
+ 0x7535, 0xB5E7,
+ 0x7537, 0xC4D0,
+ 0x7538, 0xB5E9,
+ 0x753A, 0xEEAE,
+ 0x753B, 0xBBAD,
+ 0x753E, 0xE7DE,
+ 0x7540, 0xEEAF,
+ 0x7545, 0xB3A9,
+ 0x7548, 0xEEB2,
+ 0x754B, 0xEEB1,
+ 0x754C, 0xBDE7,
+ 0x754E, 0xEEB0,
+ 0x754F, 0xCEB7,
+ 0x7554, 0xC5CF,
+ 0x7559, 0xC1F4,
+ 0x755A, 0xDBCE,
+ 0x755B, 0xEEB3,
+ 0x755C, 0xD0F3,
+ 0x7565, 0xC2D4,
+ 0x7566, 0xC6E8,
+ 0x756A, 0xB7AC,
+ 0x7572, 0xEEB4,
+ 0x7574, 0xB3EB,
+ 0x7578, 0xBBFB,
+ 0x7579, 0xEEB5,
+ 0x757F, 0xE7DC,
+ 0x7583, 0xEEB6,
+ 0x7586, 0xBDAE,
+ 0x758B, 0xF1E2,
+ 0x758F, 0xCAE8,
+ 0x7591, 0xD2C9,
+ 0x7592, 0xF0DA,
+ 0x7594, 0xF0DB,
+ 0x7596, 0xF0DC,
+ 0x7597, 0xC1C6,
+ 0x7599, 0xB8ED,
+ 0x759A, 0xBECE,
+ 0x759D, 0xF0DE,
+ 0x759F, 0xC5B1,
+ 0x75A0, 0xF0DD,
+ 0x75A1, 0xD1F1,
+ 0x75A3, 0xF0E0,
+ 0x75A4, 0xB0CC,
+ 0x75A5, 0xBDEA,
+ 0x75AB, 0xD2DF,
+ 0x75AC, 0xF0DF,
+ 0x75AE, 0xB4AF,
+ 0x75AF, 0xB7E8,
+ 0x75B0, 0xF0E6,
+ 0x75B1, 0xF0E5,
+ 0x75B2, 0xC6A3,
+ 0x75B3, 0xF0E1,
+ 0x75B4, 0xF0E2,
+ 0x75B5, 0xB4C3,
+ 0x75B8, 0xF0E3,
+ 0x75B9, 0xD5EE,
+ 0x75BC, 0xCCDB,
+ 0x75BD, 0xBED2,
+ 0x75BE, 0xBCB2,
+ 0x75C2, 0xF0E8,
+ 0x75C3, 0xF0E7,
+ 0x75C4, 0xF0E4,
+ 0x75C5, 0xB2A1,
+ 0x75C7, 0xD6A2,
+ 0x75C8, 0xD3B8,
+ 0x75C9, 0xBEB7,
+ 0x75CA, 0xC8AC,
+ 0x75CD, 0xF0EA,
+ 0x75D2, 0xD1F7,
+ 0x75D4, 0xD6CC,
+ 0x75D5, 0xBADB,
+ 0x75D6, 0xF0E9,
+ 0x75D8, 0xB6BB,
+ 0x75DB, 0xCDB4,
+ 0x75DE, 0xC6A6,
+ 0x75E2, 0xC1A1,
+ 0x75E3, 0xF0EB,
+ 0x75E4, 0xF0EE,
+ 0x75E6, 0xF0ED,
+ 0x75E7, 0xF0F0,
+ 0x75E8, 0xF0EC,
+ 0x75EA, 0xBBBE,
+ 0x75EB, 0xF0EF,
+ 0x75F0, 0xCCB5,
+ 0x75F1, 0xF0F2,
+ 0x75F4, 0xB3D5,
+ 0x75F9, 0xB1D4,
+ 0x75FC, 0xF0F3,
+ 0x75FF, 0xF0F4,
+ 0x7600, 0xF0F6,
+ 0x7601, 0xB4E1,
+ 0x7603, 0xF0F1,
+ 0x7605, 0xF0F7,
+ 0x760A, 0xF0FA,
+ 0x760C, 0xF0F8,
+ 0x7610, 0xF0F5,
+ 0x7615, 0xF0FD,
+ 0x7617, 0xF0F9,
+ 0x7618, 0xF0FC,
+ 0x7619, 0xF0FE,
+ 0x761B, 0xF1A1,
+ 0x761F, 0xCEC1,
+ 0x7620, 0xF1A4,
+ 0x7622, 0xF1A3,
+ 0x7624, 0xC1F6,
+ 0x7625, 0xF0FB,
+ 0x7626, 0xCADD,
+ 0x7629, 0xB4F1,
+ 0x762A, 0xB1F1,
+ 0x762B, 0xCCB1,
+ 0x762D, 0xF1A6,
+ 0x7630, 0xF1A7,
+ 0x7633, 0xF1AC,
+ 0x7634, 0xD5CE,
+ 0x7635, 0xF1A9,
+ 0x7638, 0xC8B3,
+ 0x763C, 0xF1A2,
+ 0x763E, 0xF1AB,
+ 0x763F, 0xF1A8,
+ 0x7640, 0xF1A5,
+ 0x7643, 0xF1AA,
+ 0x764C, 0xB0A9,
+ 0x764D, 0xF1AD,
+ 0x7654, 0xF1AF,
+ 0x7656, 0xF1B1,
+ 0x765C, 0xF1B0,
+ 0x765E, 0xF1AE,
+ 0x7663, 0xD1A2,
+ 0x766B, 0xF1B2,
+ 0x766F, 0xF1B3,
+ 0x7678, 0xB9EF,
+ 0x767B, 0xB5C7,
+ 0x767D, 0xB0D7,
+ 0x767E, 0xB0D9,
+ 0x7682, 0xD4ED,
+ 0x7684, 0xB5C4,
+ 0x7686, 0xBDD4,
+ 0x7687, 0xBBCA,
+ 0x7688, 0xF0A7,
+ 0x768B, 0xB8DE,
+ 0x768E, 0xF0A8,
+ 0x7691, 0xB0A8,
+ 0x7693, 0xF0A9,
+ 0x7696, 0xCDEE,
+ 0x7699, 0xF0AA,
+ 0x76A4, 0xF0AB,
+ 0x76AE, 0xC6A4,
+ 0x76B1, 0xD6E5,
+ 0x76B2, 0xF1E4,
+ 0x76B4, 0xF1E5,
+ 0x76BF, 0xC3F3,
+ 0x76C2, 0xD3DB,
+ 0x76C5, 0xD6D1,
+ 0x76C6, 0xC5E8,
+ 0x76C8, 0xD3AF,
+ 0x76CA, 0xD2E6,
+ 0x76CD, 0xEEC1,
+ 0x76CE, 0xB0BB,
+ 0x76CF, 0xD5B5,
+ 0x76D0, 0xD1CE,
+ 0x76D1, 0xBCE0,
+ 0x76D2, 0xBAD0,
+ 0x76D4, 0xBFF8,
+ 0x76D6, 0xB8C7,
+ 0x76D7, 0xB5C1,
+ 0x76D8, 0xC5CC,
+ 0x76DB, 0xCAA2,
+ 0x76DF, 0xC3CB,
+ 0x76E5, 0xEEC2,
+ 0x76EE, 0xC4BF,
+ 0x76EF, 0xB6A2,
+ 0x76F1, 0xEDEC,
+ 0x76F2, 0xC3A4,
+ 0x76F4, 0xD6B1,
+ 0x76F8, 0xCFE0,
+ 0x76F9, 0xEDEF,
+ 0x76FC, 0xC5CE,
+ 0x76FE, 0xB6DC,
+ 0x7701, 0xCAA1,
+ 0x7704, 0xEDED,
+ 0x7707, 0xEDF0,
+ 0x7708, 0xEDF1,
+ 0x7709, 0xC3BC,
+ 0x770B, 0xBFB4,
+ 0x770D, 0xEDEE,
+ 0x7719, 0xEDF4,
+ 0x771A, 0xEDF2,
+ 0x771F, 0xD5E6,
+ 0x7720, 0xC3DF,
+ 0x7722, 0xEDF3,
+ 0x7726, 0xEDF6,
+ 0x7728, 0xD5A3,
+ 0x7729, 0xD1A3,
+ 0x772D, 0xEDF5,
+ 0x772F, 0xC3D0,
+ 0x7735, 0xEDF7,
+ 0x7736, 0xBFF4,
+ 0x7737, 0xBEEC,
+ 0x7738, 0xEDF8,
+ 0x773A, 0xCCF7,
+ 0x773C, 0xD1DB,
+ 0x7740, 0xD7C5,
+ 0x7741, 0xD5F6,
+ 0x7743, 0xEDFC,
+ 0x7747, 0xEDFB,
+ 0x7750, 0xEDF9,
+ 0x7751, 0xEDFA,
+ 0x775A, 0xEDFD,
+ 0x775B, 0xBEA6,
+ 0x7761, 0xCBAF,
+ 0x7762, 0xEEA1,
+ 0x7763, 0xB6BD,
+ 0x7765, 0xEEA2,
+ 0x7766, 0xC4C0,
+ 0x7768, 0xEDFE,
+ 0x776B, 0xBDDE,
+ 0x776C, 0xB2C7,
+ 0x7779, 0xB6C3,
+ 0x777D, 0xEEA5,
+ 0x777E, 0xD8BA,
+ 0x777F, 0xEEA3,
+ 0x7780, 0xEEA6,
+ 0x7784, 0xC3E9,
+ 0x7785, 0xB3F2,
+ 0x778C, 0xEEA7,
+ 0x778D, 0xEEA4,
+ 0x778E, 0xCFB9,
+ 0x7791, 0xEEA8,
+ 0x7792, 0xC2F7,
+ 0x779F, 0xEEA9,
+ 0x77A0, 0xEEAA,
+ 0x77A2, 0xDEAB,
+ 0x77A5, 0xC6B3,
+ 0x77A7, 0xC7C6,
+ 0x77A9, 0xD6F5,
+ 0x77AA, 0xB5C9,
+ 0x77AC, 0xCBB2,
+ 0x77B0, 0xEEAB,
+ 0x77B3, 0xCDAB,
+ 0x77B5, 0xEEAC,
+ 0x77BB, 0xD5B0,
+ 0x77BD, 0xEEAD,
+ 0x77BF, 0xF6C4,
+ 0x77CD, 0xDBC7,
+ 0x77D7, 0xB4A3,
+ 0x77DB, 0xC3AC,
+ 0x77DC, 0xF1E6,
+ 0x77E2, 0xCAB8,
+ 0x77E3, 0xD2D3,
+ 0x77E5, 0xD6AA,
+ 0x77E7, 0xEFF2,
+ 0x77E9, 0xBED8,
+ 0x77EB, 0xBDC3,
+ 0x77EC, 0xEFF3,
+ 0x77ED, 0xB6CC,
+ 0x77EE, 0xB0AB,
+ 0x77F3, 0xCAAF,
+ 0x77F6, 0xEDB6,
+ 0x77F8, 0xEDB7,
+ 0x77FD, 0xCEF9,
+ 0x77FE, 0xB7AF,
+ 0x77FF, 0xBFF3,
+ 0x7800, 0xEDB8,
+ 0x7801, 0xC2EB,
+ 0x7802, 0xC9B0,
+ 0x7809, 0xEDB9,
+ 0x780C, 0xC6F6,
+ 0x780D, 0xBFB3,
+ 0x7811, 0xEDBC,
+ 0x7812, 0xC5F8,
+ 0x7814, 0xD1D0,
+ 0x7816, 0xD7A9,
+ 0x7817, 0xEDBA,
+ 0x7818, 0xEDBB,
+ 0x781A, 0xD1E2,
+ 0x781C, 0xEDBF,
+ 0x781D, 0xEDC0,
+ 0x781F, 0xEDC4,
+ 0x7823, 0xEDC8,
+ 0x7825, 0xEDC6,
+ 0x7826, 0xEDCE,
+ 0x7827, 0xD5E8,
+ 0x7829, 0xEDC9,
+ 0x782C, 0xEDC7,
+ 0x782D, 0xEDBE,
+ 0x7830, 0xC5E9,
+ 0x7834, 0xC6C6,
+ 0x7837, 0xC9E9,
+ 0x7838, 0xD4D2,
+ 0x7839, 0xEDC1,
+ 0x783A, 0xEDC2,
+ 0x783B, 0xEDC3,
+ 0x783C, 0xEDC5,
+ 0x783E, 0xC0F9,
+ 0x7840, 0xB4A1,
+ 0x7845, 0xB9E8,
+ 0x7847, 0xEDD0,
+ 0x784C, 0xEDD1,
+ 0x784E, 0xEDCA,
+ 0x7850, 0xEDCF,
+ 0x7852, 0xCEF8,
+ 0x7855, 0xCBB6,
+ 0x7856, 0xEDCC,
+ 0x7857, 0xEDCD,
+ 0x785D, 0xCFF5,
+ 0x786A, 0xEDD2,
+ 0x786B, 0xC1F2,
+ 0x786C, 0xD3B2,
+ 0x786D, 0xEDCB,
+ 0x786E, 0xC8B7,
+ 0x7877, 0xBCEF,
+ 0x787C, 0xC5F0,
+ 0x7887, 0xEDD6,
+ 0x7889, 0xB5EF,
+ 0x788C, 0xC2B5,
+ 0x788D, 0xB0AD,
+ 0x788E, 0xCBE9,
+ 0x7891, 0xB1AE,
+ 0x7893, 0xEDD4,
+ 0x7897, 0xCDEB,
+ 0x7898, 0xB5E2,
+ 0x789A, 0xEDD5,
+ 0x789B, 0xEDD3,
+ 0x789C, 0xEDD7,
+ 0x789F, 0xB5FA,
+ 0x78A1, 0xEDD8,
+ 0x78A3, 0xEDD9,
+ 0x78A5, 0xEDDC,
+ 0x78A7, 0xB1CC,
+ 0x78B0, 0xC5F6,
+ 0x78B1, 0xBCEE,
+ 0x78B2, 0xEDDA,
+ 0x78B3, 0xCCBC,
+ 0x78B4, 0xB2EA,
+ 0x78B9, 0xEDDB,
+ 0x78BE, 0xC4EB,
+ 0x78C1, 0xB4C5,
+ 0x78C5, 0xB0F5,
+ 0x78C9, 0xEDDF,
+ 0x78CA, 0xC0DA,
+ 0x78CB, 0xB4E8,
+ 0x78D0, 0xC5CD,
+ 0x78D4, 0xEDDD,
+ 0x78D5, 0xBFC4,
+ 0x78D9, 0xEDDE,
+ 0x78E8, 0xC4A5,
+ 0x78EC, 0xEDE0,
+ 0x78F2, 0xEDE1,
+ 0x78F4, 0xEDE3,
+ 0x78F7, 0xC1D7,
+ 0x78FA, 0xBBC7,
+ 0x7901, 0xBDB8,
+ 0x7905, 0xEDE2,
+ 0x7913, 0xEDE4,
+ 0x791E, 0xEDE6,
+ 0x7924, 0xEDE5,
+ 0x7934, 0xEDE7,
+ 0x793A, 0xCABE,
+ 0x793B, 0xECEA,
+ 0x793C, 0xC0F1,
+ 0x793E, 0xC9E7,
+ 0x7940, 0xECEB,
+ 0x7941, 0xC6EE,
+ 0x7946, 0xECEC,
+ 0x7948, 0xC6ED,
+ 0x7949, 0xECED,
+ 0x7953, 0xECF0,
+ 0x7956, 0xD7E6,
+ 0x7957, 0xECF3,
+ 0x795A, 0xECF1,
+ 0x795B, 0xECEE,
+ 0x795C, 0xECEF,
+ 0x795D, 0xD7A3,
+ 0x795E, 0xC9F1,
+ 0x795F, 0xCBEE,
+ 0x7960, 0xECF4,
+ 0x7962, 0xECF2,
+ 0x7965, 0xCFE9,
+ 0x7967, 0xECF6,
+ 0x7968, 0xC6B1,
+ 0x796D, 0xBCC0,
+ 0x796F, 0xECF5,
+ 0x7977, 0xB5BB,
+ 0x7978, 0xBBF6,
+ 0x797A, 0xECF7,
+ 0x7980, 0xD9F7,
+ 0x7981, 0xBDFB,
+ 0x7984, 0xC2BB,
+ 0x7985, 0xECF8,
+ 0x798A, 0xECF9,
+ 0x798F, 0xB8A3,
+ 0x799A, 0xECFA,
+ 0x79A7, 0xECFB,
+ 0x79B3, 0xECFC,
+ 0x79B9, 0xD3ED,
+ 0x79BA, 0xD8AE,
+ 0x79BB, 0xC0EB,
+ 0x79BD, 0xC7DD,
+ 0x79BE, 0xBACC,
+ 0x79C0, 0xD0E3,
+ 0x79C1, 0xCBBD,
+ 0x79C3, 0xCDBA,
+ 0x79C6, 0xB8D1,
+ 0x79C9, 0xB1FC,
+ 0x79CB, 0xC7EF,
+ 0x79CD, 0xD6D6,
+ 0x79D1, 0xBFC6,
+ 0x79D2, 0xC3EB,
+ 0x79D5, 0xEFF5,
+ 0x79D8, 0xC3D8,
+ 0x79DF, 0xD7E2,
+ 0x79E3, 0xEFF7,
+ 0x79E4, 0xB3D3,
+ 0x79E6, 0xC7D8,
+ 0x79E7, 0xD1ED,
+ 0x79E9, 0xD6C8,
+ 0x79EB, 0xEFF8,
+ 0x79ED, 0xEFF6,
+ 0x79EF, 0xBBFD,
+ 0x79F0, 0xB3C6,
+ 0x79F8, 0xBDD5,
+ 0x79FB, 0xD2C6,
+ 0x79FD, 0xBBE0,
+ 0x7A00, 0xCFA1,
+ 0x7A02, 0xEFFC,
+ 0x7A03, 0xEFFB,
+ 0x7A06, 0xEFF9,
+ 0x7A0B, 0xB3CC,
+ 0x7A0D, 0xC9D4,
+ 0x7A0E, 0xCBB0,
+ 0x7A14, 0xEFFE,
+ 0x7A17, 0xB0DE,
+ 0x7A1A, 0xD6C9,
+ 0x7A1E, 0xEFFD,
+ 0x7A20, 0xB3ED,
+ 0x7A23, 0xF6D5,
+ 0x7A33, 0xCEC8,
+ 0x7A37, 0xF0A2,
+ 0x7A39, 0xF0A1,
+ 0x7A3B, 0xB5BE,
+ 0x7A3C, 0xBCDA,
+ 0x7A3D, 0xBBFC,
+ 0x7A3F, 0xB8E5,
+ 0x7A46, 0xC4C2,
+ 0x7A51, 0xF0A3,
+ 0x7A57, 0xCBEB,
+ 0x7A70, 0xF0A6,
+ 0x7A74, 0xD1A8,
+ 0x7A76, 0xBEBF,
+ 0x7A77, 0xC7EE,
+ 0x7A78, 0xF1B6,
+ 0x7A79, 0xF1B7,
+ 0x7A7A, 0xBFD5,
+ 0x7A7F, 0xB4A9,
+ 0x7A80, 0xF1B8,
+ 0x7A81, 0xCDBB,
+ 0x7A83, 0xC7D4,
+ 0x7A84, 0xD5AD,
+ 0x7A86, 0xF1B9,
+ 0x7A88, 0xF1BA,
+ 0x7A8D, 0xC7CF,
+ 0x7A91, 0xD2A4,
+ 0x7A92, 0xD6CF,
+ 0x7A95, 0xF1BB,
+ 0x7A96, 0xBDD1,
+ 0x7A97, 0xB4B0,
+ 0x7A98, 0xBEBD,
+ 0x7A9C, 0xB4DC,
+ 0x7A9D, 0xCED1,
+ 0x7A9F, 0xBFDF,
+ 0x7AA0, 0xF1BD,
+ 0x7AA5, 0xBFFA,
+ 0x7AA6, 0xF1BC,
+ 0x7AA8, 0xF1BF,
+ 0x7AAC, 0xF1BE,
+ 0x7AAD, 0xF1C0,
+ 0x7AB3, 0xF1C1,
+ 0x7ABF, 0xC1FE,
+ 0x7ACB, 0xC1A2,
+ 0x7AD6, 0xCAFA,
+ 0x7AD9, 0xD5BE,
+ 0x7ADE, 0xBEBA,
+ 0x7ADF, 0xBEB9,
+ 0x7AE0, 0xD5C2,
+ 0x7AE3, 0xBFA2,
+ 0x7AE5, 0xCDAF,
+ 0x7AE6, 0xF1B5,
+ 0x7AED, 0xBDDF,
+ 0x7AEF, 0xB6CB,
+ 0x7AF9, 0xD6F1,
+ 0x7AFA, 0xF3C3,
+ 0x7AFD, 0xF3C4,
+ 0x7AFF, 0xB8CD,
+ 0x7B03, 0xF3C6,
+ 0x7B04, 0xF3C7,
+ 0x7B06, 0xB0CA,
+ 0x7B08, 0xF3C5,
+ 0x7B0A, 0xF3C9,
+ 0x7B0B, 0xCBF1,
+ 0x7B0F, 0xF3CB,
+ 0x7B11, 0xD0A6,
+ 0x7B14, 0xB1CA,
+ 0x7B15, 0xF3C8,
+ 0x7B19, 0xF3CF,
+ 0x7B1B, 0xB5D1,
+ 0x7B1E, 0xF3D7,
+ 0x7B20, 0xF3D2,
+ 0x7B24, 0xF3D4,
+ 0x7B25, 0xF3D3,
+ 0x7B26, 0xB7FB,
+ 0x7B28, 0xB1BF,
+ 0x7B2A, 0xF3CE,
+ 0x7B2B, 0xF3CA,
+ 0x7B2C, 0xB5DA,
+ 0x7B2E, 0xF3D0,
+ 0x7B31, 0xF3D1,
+ 0x7B33, 0xF3D5,
+ 0x7B38, 0xF3CD,
+ 0x7B3A, 0xBCE3,
+ 0x7B3C, 0xC1FD,
+ 0x7B3E, 0xF3D6,
+ 0x7B45, 0xF3DA,
+ 0x7B47, 0xF3CC,
+ 0x7B49, 0xB5C8,
+ 0x7B4B, 0xBDEE,
+ 0x7B4C, 0xF3DC,
+ 0x7B4F, 0xB7A4,
+ 0x7B50, 0xBFF0,
+ 0x7B51, 0xD6FE,
+ 0x7B52, 0xCDB2,
+ 0x7B54, 0xB4F0,
+ 0x7B56, 0xB2DF,
+ 0x7B58, 0xF3D8,
+ 0x7B5A, 0xF3D9,
+ 0x7B5B, 0xC9B8,
+ 0x7B5D, 0xF3DD,
+ 0x7B60, 0xF3DE,
+ 0x7B62, 0xF3E1,
+ 0x7B6E, 0xF3DF,
+ 0x7B71, 0xF3E3,
+ 0x7B72, 0xF3E2,
+ 0x7B75, 0xF3DB,
+ 0x7B77, 0xBFEA,
+ 0x7B79, 0xB3EF,
+ 0x7B7B, 0xF3E0,
+ 0x7B7E, 0xC7A9,
+ 0x7B80, 0xBCF2,
+ 0x7B85, 0xF3EB,
+ 0x7B8D, 0xB9BF,
+ 0x7B90, 0xF3E4,
+ 0x7B94, 0xB2AD,
+ 0x7B95, 0xBBFE,
+ 0x7B97, 0xCBE3,
+ 0x7B9C, 0xF3ED,
+ 0x7B9D, 0xF3E9,
+ 0x7BA1, 0xB9DC,
+ 0x7BA2, 0xF3EE,
+ 0x7BA6, 0xF3E5,
+ 0x7BA7, 0xF3E6,
+ 0x7BA8, 0xF3EA,
+ 0x7BA9, 0xC2E1,
+ 0x7BAA, 0xF3EC,
+ 0x7BAB, 0xF3EF,
+ 0x7BAC, 0xF3E8,
+ 0x7BAD, 0xBCFD,
+ 0x7BB1, 0xCFE4,
+ 0x7BB4, 0xF3F0,
+ 0x7BB8, 0xF3E7,
+ 0x7BC1, 0xF3F2,
+ 0x7BC6, 0xD7AD,
+ 0x7BC7, 0xC6AA,
+ 0x7BCC, 0xF3F3,
+ 0x7BD1, 0xF3F1,
+ 0x7BD3, 0xC2A8,
+ 0x7BD9, 0xB8DD,
+ 0x7BDA, 0xF3F5,
+ 0x7BDD, 0xF3F4,
+ 0x7BE1, 0xB4DB,
+ 0x7BE5, 0xF3F6,
+ 0x7BE6, 0xF3F7,
+ 0x7BEA, 0xF3F8,
+ 0x7BEE, 0xC0BA,
+ 0x7BF1, 0xC0E9,
+ 0x7BF7, 0xC5F1,
+ 0x7BFC, 0xF3FB,
+ 0x7BFE, 0xF3FA,
+ 0x7C07, 0xB4D8,
+ 0x7C0B, 0xF3FE,
+ 0x7C0C, 0xF3F9,
+ 0x7C0F, 0xF3FC,
+ 0x7C16, 0xF3FD,
+ 0x7C1F, 0xF4A1,
+ 0x7C26, 0xF4A3,
+ 0x7C27, 0xBBC9,
+ 0x7C2A, 0xF4A2,
+ 0x7C38, 0xF4A4,
+ 0x7C3F, 0xB2BE,
+ 0x7C40, 0xF4A6,
+ 0x7C41, 0xF4A5,
+ 0x7C4D, 0xBCAE,
+ 0x7C73, 0xC3D7,
+ 0x7C74, 0xD9E1,
+ 0x7C7B, 0xC0E0,
+ 0x7C7C, 0xF4CC,
+ 0x7C7D, 0xD7D1,
+ 0x7C89, 0xB7DB,
+ 0x7C91, 0xF4CE,
+ 0x7C92, 0xC1A3,
+ 0x7C95, 0xC6C9,
+ 0x7C97, 0xB4D6,
+ 0x7C98, 0xD5B3,
+ 0x7C9C, 0xF4D0,
+ 0x7C9D, 0xF4CF,
+ 0x7C9E, 0xF4D1,
+ 0x7C9F, 0xCBDA,
+ 0x7CA2, 0xF4D2,
+ 0x7CA4, 0xD4C1,
+ 0x7CA5, 0xD6E0,
+ 0x7CAA, 0xB7E0,
+ 0x7CAE, 0xC1B8,
+ 0x7CB1, 0xC1BB,
+ 0x7CB2, 0xF4D3,
+ 0x7CB3, 0xBEAC,
+ 0x7CB9, 0xB4E2,
+ 0x7CBC, 0xF4D4,
+ 0x7CBD, 0xF4D5,
+ 0x7CBE, 0xBEAB,
+ 0x7CC1, 0xF4D6,
+ 0x7CC5, 0xF4DB,
+ 0x7CC7, 0xF4D7,
+ 0x7CC8, 0xF4DA,
+ 0x7CCA, 0xBAFD,
+ 0x7CCC, 0xF4D8,
+ 0x7CCD, 0xF4D9,
+ 0x7CD5, 0xB8E2,
+ 0x7CD6, 0xCCC7,
+ 0x7CD7, 0xF4DC,
+ 0x7CD9, 0xB2DA,
+ 0x7CDC, 0xC3D3,
+ 0x7CDF, 0xD4E3,
+ 0x7CE0, 0xBFB7,
+ 0x7CE8, 0xF4DD,
+ 0x7CEF, 0xC5B4,
+ 0x7CF8, 0xF4E9,
+ 0x7CFB, 0xCFB5,
+ 0x7D0A, 0xCEC9,
+ 0x7D20, 0xCBD8,
+ 0x7D22, 0xCBF7,
+ 0x7D27, 0xBDF4,
+ 0x7D2B, 0xD7CF,
+ 0x7D2F, 0xC0DB,
+ 0x7D6E, 0xD0F5,
+ 0x7D77, 0xF4EA,
+ 0x7DA6, 0xF4EB,
+ 0x7DAE, 0xF4EC,
+ 0x7E3B, 0xF7E3,
+ 0x7E41, 0xB7B1,
+ 0x7E47, 0xF4ED,
+ 0x7E82, 0xD7EB,
+ 0x7E9B, 0xF4EE,
+ 0x7E9F, 0xE6F9,
+ 0x7EA0, 0xBEC0,
+ 0x7EA1, 0xE6FA,
+ 0x7EA2, 0xBAEC,
+ 0x7EA3, 0xE6FB,
+ 0x7EA4, 0xCFCB,
+ 0x7EA5, 0xE6FC,
+ 0x7EA6, 0xD4BC,
+ 0x7EA7, 0xBCB6,
+ 0x7EA8, 0xE6FD,
+ 0x7EA9, 0xE6FE,
+ 0x7EAA, 0xBCCD,
+ 0x7EAB, 0xC8D2,
+ 0x7EAC, 0xCEB3,
+ 0x7EAD, 0xE7A1,
+ 0x7EAF, 0xB4BF,
+ 0x7EB0, 0xE7A2,
+ 0x7EB1, 0xC9B4,
+ 0x7EB2, 0xB8D9,
+ 0x7EB3, 0xC4C9,
+ 0x7EB5, 0xD7DD,
+ 0x7EB6, 0xC2DA,
+ 0x7EB7, 0xB7D7,
+ 0x7EB8, 0xD6BD,
+ 0x7EB9, 0xCEC6,
+ 0x7EBA, 0xB7C4,
+ 0x7EBD, 0xC5A6,
+ 0x7EBE, 0xE7A3,
+ 0x7EBF, 0xCFDF,
+ 0x7EC0, 0xE7A4,
+ 0x7EC1, 0xE7A5,
+ 0x7EC2, 0xE7A6,
+ 0x7EC3, 0xC1B7,
+ 0x7EC4, 0xD7E9,
+ 0x7EC5, 0xC9F0,
+ 0x7EC6, 0xCFB8,
+ 0x7EC7, 0xD6AF,
+ 0x7EC8, 0xD6D5,
+ 0x7EC9, 0xE7A7,
+ 0x7ECA, 0xB0ED,
+ 0x7ECB, 0xE7A8,
+ 0x7ECC, 0xE7A9,
+ 0x7ECD, 0xC9DC,
+ 0x7ECE, 0xD2EF,
+ 0x7ECF, 0xBEAD,
+ 0x7ED0, 0xE7AA,
+ 0x7ED1, 0xB0F3,
+ 0x7ED2, 0xC8DE,
+ 0x7ED3, 0xBDE1,
+ 0x7ED4, 0xE7AB,
+ 0x7ED5, 0xC8C6,
+ 0x7ED7, 0xE7AC,
+ 0x7ED8, 0xBBE6,
+ 0x7ED9, 0xB8F8,
+ 0x7EDA, 0xD1A4,
+ 0x7EDB, 0xE7AD,
+ 0x7EDC, 0xC2E7,
+ 0x7EDD, 0xBEF8,
+ 0x7EDE, 0xBDCA,
+ 0x7EDF, 0xCDB3,
+ 0x7EE0, 0xE7AE,
+ 0x7EE1, 0xE7AF,
+ 0x7EE2, 0xBEEE,
+ 0x7EE3, 0xD0E5,
+ 0x7EE5, 0xCBE7,
+ 0x7EE6, 0xCCD0,
+ 0x7EE7, 0xBCCC,
+ 0x7EE8, 0xE7B0,
+ 0x7EE9, 0xBCA8,
+ 0x7EEA, 0xD0F7,
+ 0x7EEB, 0xE7B1,
+ 0x7EED, 0xD0F8,
+ 0x7EEE, 0xE7B2,
+ 0x7EEF, 0xE7B3,
+ 0x7EF0, 0xB4C2,
+ 0x7EF1, 0xE7B4,
+ 0x7EF2, 0xE7B5,
+ 0x7EF3, 0xC9FE,
+ 0x7EF4, 0xCEAC,
+ 0x7EF5, 0xC3E0,
+ 0x7EF6, 0xE7B7,
+ 0x7EF7, 0xB1C1,
+ 0x7EF8, 0xB3F1,
+ 0x7EFA, 0xE7B8,
+ 0x7EFB, 0xE7B9,
+ 0x7EFC, 0xD7DB,
+ 0x7EFD, 0xD5C0,
+ 0x7EFE, 0xE7BA,
+ 0x7EFF, 0xC2CC,
+ 0x7F00, 0xD7BA,
+ 0x7F01, 0xE7BB,
+ 0x7F02, 0xE7BC,
+ 0x7F03, 0xE7BD,
+ 0x7F04, 0xBCEA,
+ 0x7F05, 0xC3E5,
+ 0x7F06, 0xC0C2,
+ 0x7F07, 0xE7BE,
+ 0x7F08, 0xE7BF,
+ 0x7F09, 0xBCA9,
+ 0x7F0B, 0xE7C0,
+ 0x7F0C, 0xE7C1,
+ 0x7F0D, 0xE7B6,
+ 0x7F0E, 0xB6D0,
+ 0x7F0F, 0xE7C2,
+ 0x7F11, 0xE7C3,
+ 0x7F12, 0xE7C4,
+ 0x7F13, 0xBBBA,
+ 0x7F14, 0xB5DE,
+ 0x7F15, 0xC2C6,
+ 0x7F16, 0xB1E0,
+ 0x7F17, 0xE7C5,
+ 0x7F18, 0xD4B5,
+ 0x7F19, 0xE7C6,
+ 0x7F1A, 0xB8BF,
+ 0x7F1B, 0xE7C8,
+ 0x7F1C, 0xE7C7,
+ 0x7F1D, 0xB7EC,
+ 0x7F1F, 0xE7C9,
+ 0x7F20, 0xB2F8,
+ 0x7F21, 0xE7CA,
+ 0x7F22, 0xE7CB,
+ 0x7F23, 0xE7CC,
+ 0x7F24, 0xE7CD,
+ 0x7F25, 0xE7CE,
+ 0x7F26, 0xE7CF,
+ 0x7F27, 0xE7D0,
+ 0x7F28, 0xD3A7,
+ 0x7F29, 0xCBF5,
+ 0x7F2A, 0xE7D1,
+ 0x7F2B, 0xE7D2,
+ 0x7F2C, 0xE7D3,
+ 0x7F2D, 0xE7D4,
+ 0x7F2E, 0xC9C9,
+ 0x7F2F, 0xE7D5,
+ 0x7F30, 0xE7D6,
+ 0x7F31, 0xE7D7,
+ 0x7F32, 0xE7D8,
+ 0x7F33, 0xE7D9,
+ 0x7F34, 0xBDC9,
+ 0x7F35, 0xE7DA,
+ 0x7F36, 0xF3BE,
+ 0x7F38, 0xB8D7,
+ 0x7F3A, 0xC8B1,
+ 0x7F42, 0xF3BF,
+ 0x7F44, 0xF3C0,
+ 0x7F45, 0xF3C1,
+ 0x7F50, 0xB9DE,
+ 0x7F51, 0xCDF8,
+ 0x7F54, 0xD8E8,
+ 0x7F55, 0xBAB1,
+ 0x7F57, 0xC2DE,
+ 0x7F58, 0xEEB7,
+ 0x7F5A, 0xB7A3,
+ 0x7F5F, 0xEEB9,
+ 0x7F61, 0xEEB8,
+ 0x7F62, 0xB0D5,
+ 0x7F68, 0xEEBB,
+ 0x7F69, 0xD5D6,
+ 0x7F6A, 0xD7EF,
+ 0x7F6E, 0xD6C3,
+ 0x7F71, 0xEEBD,
+ 0x7F72, 0xCAF0,
+ 0x7F74, 0xEEBC,
+ 0x7F79, 0xEEBE,
+ 0x7F7E, 0xEEC0,
+ 0x7F81, 0xEEBF,
+ 0x7F8A, 0xD1F2,
+ 0x7F8C, 0xC7BC,
+ 0x7F8E, 0xC3C0,
+ 0x7F94, 0xB8E1,
+ 0x7F9A, 0xC1E7,
+ 0x7F9D, 0xF4C6,
+ 0x7F9E, 0xD0DF,
+ 0x7F9F, 0xF4C7,
+ 0x7FA1, 0xCFDB,
+ 0x7FA4, 0xC8BA,
+ 0x7FA7, 0xF4C8,
+ 0x7FAF, 0xF4C9,
+ 0x7FB0, 0xF4CA,
+ 0x7FB2, 0xF4CB,
+ 0x7FB8, 0xD9FA,
+ 0x7FB9, 0xB8FE,
+ 0x7FBC, 0xE5F1,
+ 0x7FBD, 0xD3F0,
+ 0x7FBF, 0xF4E0,
+ 0x7FC1, 0xCECC,
+ 0x7FC5, 0xB3E1,
+ 0x7FCA, 0xF1B4,
+ 0x7FCC, 0xD2EE,
+ 0x7FCE, 0xF4E1,
+ 0x7FD4, 0xCFE8,
+ 0x7FD5, 0xF4E2,
+ 0x7FD8, 0xC7CC,
+ 0x7FDF, 0xB5D4,
+ 0x7FE0, 0xB4E4,
+ 0x7FE1, 0xF4E4,
+ 0x7FE5, 0xF4E3,
+ 0x7FE6, 0xF4E5,
+ 0x7FE9, 0xF4E6,
+ 0x7FEE, 0xF4E7,
+ 0x7FF0, 0xBAB2,
+ 0x7FF1, 0xB0BF,
+ 0x7FF3, 0xF4E8,
+ 0x7FFB, 0xB7AD,
+ 0x7FFC, 0xD2ED,
+ 0x8000, 0xD2AB,
+ 0x8001, 0xC0CF,
+ 0x8003, 0xBFBC,
+ 0x8004, 0xEBA3,
+ 0x8005, 0xD5DF,
+ 0x8006, 0xEAC8,
+ 0x800B, 0xF1F3,
+ 0x800C, 0xB6F8,
+ 0x800D, 0xCBA3,
+ 0x8010, 0xC4CD,
+ 0x8012, 0xF1E7,
+ 0x8014, 0xF1E8,
+ 0x8015, 0xB8FB,
+ 0x8016, 0xF1E9,
+ 0x8017, 0xBAC4,
+ 0x8018, 0xD4C5,
+ 0x8019, 0xB0D2,
+ 0x801C, 0xF1EA,
+ 0x8020, 0xF1EB,
+ 0x8022, 0xF1EC,
+ 0x8025, 0xF1ED,
+ 0x8026, 0xF1EE,
+ 0x8027, 0xF1EF,
+ 0x8028, 0xF1F1,
+ 0x8029, 0xF1F0,
+ 0x802A, 0xC5D5,
+ 0x8031, 0xF1F2,
+ 0x8033, 0xB6FA,
+ 0x8035, 0xF1F4,
+ 0x8036, 0xD2AE,
+ 0x8037, 0xDEC7,
+ 0x8038, 0xCBCA,
+ 0x803B, 0xB3DC,
+ 0x803D, 0xB5A2,
+ 0x803F, 0xB9A2,
+ 0x8042, 0xC4F4,
+ 0x8043, 0xF1F5,
+ 0x8046, 0xF1F6,
+ 0x804A, 0xC1C4,
+ 0x804B, 0xC1FB,
+ 0x804C, 0xD6B0,
+ 0x804D, 0xF1F7,
+ 0x8052, 0xF1F8,
+ 0x8054, 0xC1AA,
+ 0x8058, 0xC6B8,
+ 0x805A, 0xBEDB,
+ 0x8069, 0xF1F9,
+ 0x806A, 0xB4CF,
+ 0x8071, 0xF1FA,
+ 0x807F, 0xEDB2,
+ 0x8080, 0xEDB1,
+ 0x8083, 0xCBE0,
+ 0x8084, 0xD2DE,
+ 0x8086, 0xCBC1,
+ 0x8087, 0xD5D8,
+ 0x8089, 0xC8E2,
+ 0x808B, 0xC0DF,
+ 0x808C, 0xBCA1,
+ 0x8093, 0xEBC1,
+ 0x8096, 0xD0A4,
+ 0x8098, 0xD6E2,
+ 0x809A, 0xB6C7,
+ 0x809B, 0xB8D8,
+ 0x809C, 0xEBC0,
+ 0x809D, 0xB8CE,
+ 0x809F, 0xEBBF,
+ 0x80A0, 0xB3A6,
+ 0x80A1, 0xB9C9,
+ 0x80A2, 0xD6AB,
+ 0x80A4, 0xB7F4,
+ 0x80A5, 0xB7CA,
+ 0x80A9, 0xBCE7,
+ 0x80AA, 0xB7BE,
+ 0x80AB, 0xEBC6,
+ 0x80AD, 0xEBC7,
+ 0x80AE, 0xB0B9,
+ 0x80AF, 0xBFCF,
+ 0x80B1, 0xEBC5,
+ 0x80B2, 0xD3FD,
+ 0x80B4, 0xEBC8,
+ 0x80B7, 0xEBC9,
+ 0x80BA, 0xB7CE,
+ 0x80BC, 0xEBC2,
+ 0x80BD, 0xEBC4,
+ 0x80BE, 0xC9F6,
+ 0x80BF, 0xD6D7,
+ 0x80C0, 0xD5CD,
+ 0x80C1, 0xD0B2,
+ 0x80C2, 0xEBCF,
+ 0x80C3, 0xCEB8,
+ 0x80C4, 0xEBD0,
+ 0x80C6, 0xB5A8,
+ 0x80CC, 0xB1B3,
+ 0x80CD, 0xEBD2,
+ 0x80CE, 0xCCA5,
+ 0x80D6, 0xC5D6,
+ 0x80D7, 0xEBD3,
+ 0x80D9, 0xEBD1,
+ 0x80DA, 0xC5DF,
+ 0x80DB, 0xEBCE,
+ 0x80DC, 0xCAA4,
+ 0x80DD, 0xEBD5,
+ 0x80DE, 0xB0FB,
+ 0x80E1, 0xBAFA,
+ 0x80E4, 0xD8B7,
+ 0x80E5, 0xF1E3,
+ 0x80E7, 0xEBCA,
+ 0x80E8, 0xEBCB,
+ 0x80E9, 0xEBCC,
+ 0x80EA, 0xEBCD,
+ 0x80EB, 0xEBD6,
+ 0x80EC, 0xE6C0,
+ 0x80ED, 0xEBD9,
+ 0x80EF, 0xBFE8,
+ 0x80F0, 0xD2C8,
+ 0x80F1, 0xEBD7,
+ 0x80F2, 0xEBDC,
+ 0x80F3, 0xB8EC,
+ 0x80F4, 0xEBD8,
+ 0x80F6, 0xBDBA,
+ 0x80F8, 0xD0D8,
+ 0x80FA, 0xB0B7,
+ 0x80FC, 0xEBDD,
+ 0x80FD, 0xC4DC,
+ 0x8102, 0xD6AC,
+ 0x8106, 0xB4E0,
+ 0x8109, 0xC2F6,
+ 0x810A, 0xBCB9,
+ 0x810D, 0xEBDA,
+ 0x810E, 0xEBDB,
+ 0x810F, 0xD4E0,
+ 0x8110, 0xC6EA,
+ 0x8111, 0xC4D4,
+ 0x8112, 0xEBDF,
+ 0x8113, 0xC5A7,
+ 0x8114, 0xD9F5,
+ 0x8116, 0xB2B1,
+ 0x8118, 0xEBE4,
+ 0x811A, 0xBDC5,
+ 0x811E, 0xEBE2,
+ 0x812C, 0xEBE3,
+ 0x812F, 0xB8AC,
+ 0x8131, 0xCDD1,
+ 0x8132, 0xEBE5,
+ 0x8136, 0xEBE1,
+ 0x8138, 0xC1B3,
+ 0x813E, 0xC6A2,
+ 0x8146, 0xCCF3,
+ 0x8148, 0xEBE6,
+ 0x814A, 0xC0B0,
+ 0x814B, 0xD2B8,
+ 0x814C, 0xEBE7,
+ 0x8150, 0xB8AF,
+ 0x8151, 0xB8AD,
+ 0x8153, 0xEBE8,
+ 0x8154, 0xC7BB,
+ 0x8155, 0xCDF3,
+ 0x8159, 0xEBEA,
+ 0x815A, 0xEBEB,
+ 0x8160, 0xEBED,
+ 0x8165, 0xD0C8,
+ 0x8167, 0xEBF2,
+ 0x8169, 0xEBEE,
+ 0x816D, 0xEBF1,
+ 0x816E, 0xC8F9,
+ 0x8170, 0xD1FC,
+ 0x8171, 0xEBEC,
+ 0x8174, 0xEBE9,
+ 0x8179, 0xB8B9,
+ 0x817A, 0xCFD9,
+ 0x817B, 0xC4E5,
+ 0x817C, 0xEBEF,
+ 0x817D, 0xEBF0,
+ 0x817E, 0xCCDA,
+ 0x817F, 0xCDC8,
+ 0x8180, 0xB0F2,
+ 0x8182, 0xEBF6,
+ 0x8188, 0xEBF5,
+ 0x818A, 0xB2B2,
+ 0x818F, 0xB8E0,
+ 0x8191, 0xEBF7,
+ 0x8198, 0xB1EC,
+ 0x819B, 0xCCC5,
+ 0x819C, 0xC4A4,
+ 0x819D, 0xCFA5,
+ 0x81A3, 0xEBF9,
+ 0x81A6, 0xECA2,
+ 0x81A8, 0xC5F2,
+ 0x81AA, 0xEBFA,
+ 0x81B3, 0xC9C5,
+ 0x81BA, 0xE2DF,
+ 0x81BB, 0xEBFE,
+ 0x81C0, 0xCDCE,
+ 0x81C1, 0xECA1,
+ 0x81C2, 0xB1DB,
+ 0x81C3, 0xD3B7,
+ 0x81C6, 0xD2DC,
+ 0x81CA, 0xEBFD,
+ 0x81CC, 0xEBFB,
+ 0x81E3, 0xB3BC,
+ 0x81E7, 0xEAB0,
+ 0x81EA, 0xD7D4,
+ 0x81EC, 0xF4AB,
+ 0x81ED, 0xB3F4,
+ 0x81F3, 0xD6C1,
+ 0x81F4, 0xD6C2,
+ 0x81FB, 0xD5E9,
+ 0x81FC, 0xBECA,
+ 0x81FE, 0xF4A7,
+ 0x8200, 0xD2A8,
+ 0x8201, 0xF4A8,
+ 0x8202, 0xF4A9,
+ 0x8204, 0xF4AA,
+ 0x8205, 0xBECB,
+ 0x8206, 0xD3DF,
+ 0x820C, 0xC9E0,
+ 0x820D, 0xC9E1,
+ 0x8210, 0xF3C2,
+ 0x8212, 0xCAE6,
+ 0x8214, 0xCCF2,
+ 0x821B, 0xE2B6,
+ 0x821C, 0xCBB4,
+ 0x821E, 0xCEE8,
+ 0x821F, 0xD6DB,
+ 0x8221, 0xF4AD,
+ 0x8222, 0xF4AE,
+ 0x8223, 0xF4AF,
+ 0x8228, 0xF4B2,
+ 0x822A, 0xBABD,
+ 0x822B, 0xF4B3,
+ 0x822C, 0xB0E3,
+ 0x822D, 0xF4B0,
+ 0x822F, 0xF4B1,
+ 0x8230, 0xBDA2,
+ 0x8231, 0xB2D5,
+ 0x8233, 0xF4B6,
+ 0x8234, 0xF4B7,
+ 0x8235, 0xB6E6,
+ 0x8236, 0xB2B0,
+ 0x8237, 0xCFCF,
+ 0x8238, 0xF4B4,
+ 0x8239, 0xB4AC,
+ 0x823B, 0xF4B5,
+ 0x823E, 0xF4B8,
+ 0x8244, 0xF4B9,
+ 0x8247, 0xCDA7,
+ 0x8249, 0xF4BA,
+ 0x824B, 0xF4BB,
+ 0x824F, 0xF4BC,
+ 0x8258, 0xCBD2,
+ 0x825A, 0xF4BD,
+ 0x825F, 0xF4BE,
+ 0x8268, 0xF4BF,
+ 0x826E, 0xF4DE,
+ 0x826F, 0xC1BC,
+ 0x8270, 0xBCE8,
+ 0x8272, 0xC9AB,
+ 0x8273, 0xD1DE,
+ 0x8274, 0xE5F5,
+ 0x8279, 0xDCB3,
+ 0x827A, 0xD2D5,
+ 0x827D, 0xDCB4,
+ 0x827E, 0xB0AC,
+ 0x827F, 0xDCB5,
+ 0x8282, 0xBDDA,
+ 0x8284, 0xDCB9,
+ 0x8288, 0xD8C2,
+ 0x828A, 0xDCB7,
+ 0x828B, 0xD3F3,
+ 0x828D, 0xC9D6,
+ 0x828E, 0xDCBA,
+ 0x828F, 0xDCB6,
+ 0x8291, 0xDCBB,
+ 0x8292, 0xC3A2,
+ 0x8297, 0xDCBC,
+ 0x8298, 0xDCC5,
+ 0x8299, 0xDCBD,
+ 0x829C, 0xCEDF,
+ 0x829D, 0xD6A5,
+ 0x829F, 0xDCCF,
+ 0x82A1, 0xDCCD,
+ 0x82A4, 0xDCD2,
+ 0x82A5, 0xBDE6,
+ 0x82A6, 0xC2AB,
+ 0x82A8, 0xDCB8,
+ 0x82A9, 0xDCCB,
+ 0x82AA, 0xDCCE,
+ 0x82AB, 0xDCBE,
+ 0x82AC, 0xB7D2,
+ 0x82AD, 0xB0C5,
+ 0x82AE, 0xDCC7,
+ 0x82AF, 0xD0BE,
+ 0x82B0, 0xDCC1,
+ 0x82B1, 0xBBA8,
+ 0x82B3, 0xB7BC,
+ 0x82B4, 0xDCCC,
+ 0x82B7, 0xDCC6,
+ 0x82B8, 0xDCBF,
+ 0x82B9, 0xC7DB,
+ 0x82BD, 0xD1BF,
+ 0x82BE, 0xDCC0,
+ 0x82C1, 0xDCCA,
+ 0x82C4, 0xDCD0,
+ 0x82C7, 0xCEAD,
+ 0x82C8, 0xDCC2,
+ 0x82CA, 0xDCC3,
+ 0x82CB, 0xDCC8,
+ 0x82CC, 0xDCC9,
+ 0x82CD, 0xB2D4,
+ 0x82CE, 0xDCD1,
+ 0x82CF, 0xCBD5,
+ 0x82D1, 0xD4B7,
+ 0x82D2, 0xDCDB,
+ 0x82D3, 0xDCDF,
+ 0x82D4, 0xCCA6,
+ 0x82D5, 0xDCE6,
+ 0x82D7, 0xC3E7,
+ 0x82D8, 0xDCDC,
+ 0x82DB, 0xBFC1,
+ 0x82DC, 0xDCD9,
+ 0x82DE, 0xB0FA,
+ 0x82DF, 0xB9B6,
+ 0x82E0, 0xDCE5,
+ 0x82E1, 0xDCD3,
+ 0x82E3, 0xDCC4,
+ 0x82E4, 0xDCD6,
+ 0x82E5, 0xC8F4,
+ 0x82E6, 0xBFE0,
+ 0x82EB, 0xC9BB,
+ 0x82EF, 0xB1BD,
+ 0x82F1, 0xD3A2,
+ 0x82F4, 0xDCDA,
+ 0x82F7, 0xDCD5,
+ 0x82F9, 0xC6BB,
+ 0x82FB, 0xDCDE,
+ 0x8301, 0xD7C2,
+ 0x8302, 0xC3AF,
+ 0x8303, 0xB7B6,
+ 0x8304, 0xC7D1,
+ 0x8305, 0xC3A9,
+ 0x8306, 0xDCE2,
+ 0x8307, 0xDCD8,
+ 0x8308, 0xDCEB,
+ 0x8309, 0xDCD4,
+ 0x830C, 0xDCDD,
+ 0x830E, 0xBEA5,
+ 0x830F, 0xDCD7,
+ 0x8311, 0xDCE0,
+ 0x8314, 0xDCE3,
+ 0x8315, 0xDCE4,
+ 0x8317, 0xDCF8,
+ 0x831A, 0xDCE1,
+ 0x831B, 0xDDA2,
+ 0x831C, 0xDCE7,
+ 0x8327, 0xBCEB,
+ 0x8328, 0xB4C4,
+ 0x832B, 0xC3A3,
+ 0x832C, 0xB2E7,
+ 0x832D, 0xDCFA,
+ 0x832F, 0xDCF2,
+ 0x8331, 0xDCEF,
+ 0x8333, 0xDCFC,
+ 0x8334, 0xDCEE,
+ 0x8335, 0xD2F0,
+ 0x8336, 0xB2E8,
+ 0x8338, 0xC8D7,
+ 0x8339, 0xC8E3,
+ 0x833A, 0xDCFB,
+ 0x833C, 0xDCED,
+ 0x8340, 0xDCF7,
+ 0x8343, 0xDCF5,
+ 0x8346, 0xBEA3,
+ 0x8347, 0xDCF4,
+ 0x8349, 0xB2DD,
+ 0x834F, 0xDCF3,
+ 0x8350, 0xBCF6,
+ 0x8351, 0xDCE8,
+ 0x8352, 0xBBC4,
+ 0x8354, 0xC0F3,
+ 0x835A, 0xBCD4,
+ 0x835B, 0xDCE9,
+ 0x835C, 0xDCEA,
+ 0x835E, 0xDCF1,
+ 0x835F, 0xDCF6,
+ 0x8360, 0xDCF9,
+ 0x8361, 0xB5B4,
+ 0x8363, 0xC8D9,
+ 0x8364, 0xBBE7,
+ 0x8365, 0xDCFE,
+ 0x8366, 0xDCFD,
+ 0x8367, 0xD3AB,
+ 0x8368, 0xDDA1,
+ 0x8369, 0xDDA3,
+ 0x836A, 0xDDA5,
+ 0x836B, 0xD2F1,
+ 0x836C, 0xDDA4,
+ 0x836D, 0xDDA6,
+ 0x836E, 0xDDA7,
+ 0x836F, 0xD2A9,
+ 0x8377, 0xBAC9,
+ 0x8378, 0xDDA9,
+ 0x837B, 0xDDB6,
+ 0x837C, 0xDDB1,
+ 0x837D, 0xDDB4,
+ 0x8385, 0xDDB0,
+ 0x8386, 0xC6CE,
+ 0x8389, 0xC0F2,
+ 0x838E, 0xC9AF,
+ 0x8392, 0xDCEC,
+ 0x8393, 0xDDAE,
+ 0x8398, 0xDDB7,
+ 0x839B, 0xDCF0,
+ 0x839C, 0xDDAF,
+ 0x839E, 0xDDB8,
+ 0x83A0, 0xDDAC,
+ 0x83A8, 0xDDB9,
+ 0x83A9, 0xDDB3,
+ 0x83AA, 0xDDAD,
+ 0x83AB, 0xC4AA,
+ 0x83B0, 0xDDA8,
+ 0x83B1, 0xC0B3,
+ 0x83B2, 0xC1AB,
+ 0x83B3, 0xDDAA,
+ 0x83B4, 0xDDAB,
+ 0x83B6, 0xDDB2,
+ 0x83B7, 0xBBF1,
+ 0x83B8, 0xDDB5,
+ 0x83B9, 0xD3A8,
+ 0x83BA, 0xDDBA,
+ 0x83BC, 0xDDBB,
+ 0x83BD, 0xC3A7,
+ 0x83C0, 0xDDD2,
+ 0x83C1, 0xDDBC,
+ 0x83C5, 0xDDD1,
+ 0x83C7, 0xB9BD,
+ 0x83CA, 0xBED5,
+ 0x83CC, 0xBEFA,
+ 0x83CF, 0xBACA,
+ 0x83D4, 0xDDCA,
+ 0x83D6, 0xDDC5,
+ 0x83D8, 0xDDBF,
+ 0x83DC, 0xB2CB,
+ 0x83DD, 0xDDC3,
+ 0x83DF, 0xDDCB,
+ 0x83E0, 0xB2A4,
+ 0x83E1, 0xDDD5,
+ 0x83E5, 0xDDBE,
+ 0x83E9, 0xC6D0,
+ 0x83EA, 0xDDD0,
+ 0x83F0, 0xDDD4,
+ 0x83F1, 0xC1E2,
+ 0x83F2, 0xB7C6,
+ 0x83F8, 0xDDCE,
+ 0x83F9, 0xDDCF,
+ 0x83FD, 0xDDC4,
+ 0x8401, 0xDDBD,
+ 0x8403, 0xDDCD,
+ 0x8404, 0xCCD1,
+ 0x8406, 0xDDC9,
+ 0x840B, 0xDDC2,
+ 0x840C, 0xC3C8,
+ 0x840D, 0xC6BC,
+ 0x840E, 0xCEAE,
+ 0x840F, 0xDDCC,
+ 0x8411, 0xDDC8,
+ 0x8418, 0xDDC1,
+ 0x841C, 0xDDC6,
+ 0x841D, 0xC2DC,
+ 0x8424, 0xD3A9,
+ 0x8425, 0xD3AA,
+ 0x8426, 0xDDD3,
+ 0x8427, 0xCFF4,
+ 0x8428, 0xC8F8,
+ 0x8431, 0xDDE6,
+ 0x8438, 0xDDC7,
+ 0x843C, 0xDDE0,
+ 0x843D, 0xC2E4,
+ 0x8446, 0xDDE1,
+ 0x8451, 0xDDD7,
+ 0x8457, 0xD6F8,
+ 0x8459, 0xDDD9,
+ 0x845A, 0xDDD8,
+ 0x845B, 0xB8F0,
+ 0x845C, 0xDDD6,
+ 0x8461, 0xC6CF,
+ 0x8463, 0xB6AD,
+ 0x8469, 0xDDE2,
+ 0x846B, 0xBAF9,
+ 0x846C, 0xD4E1,
+ 0x846D, 0xDDE7,
+ 0x8471, 0xB4D0,
+ 0x8473, 0xDDDA,
+ 0x8475, 0xBFFB,
+ 0x8476, 0xDDE3,
+ 0x8478, 0xDDDF,
+ 0x847A, 0xDDDD,
+ 0x8482, 0xB5D9,
+ 0x8487, 0xDDDB,
+ 0x8488, 0xDDDC,
+ 0x8489, 0xDDDE,
+ 0x848B, 0xBDAF,
+ 0x848C, 0xDDE4,
+ 0x848E, 0xDDE5,
+ 0x8497, 0xDDF5,
+ 0x8499, 0xC3C9,
+ 0x849C, 0xCBE2,
+ 0x84A1, 0xDDF2,
+ 0x84AF, 0xD8E1,
+ 0x84B2, 0xC6D1,
+ 0x84B4, 0xDDF4,
+ 0x84B8, 0xD5F4,
+ 0x84B9, 0xDDF3,
+ 0x84BA, 0xDDF0,
+ 0x84BD, 0xDDEC,
+ 0x84BF, 0xDDEF,
+ 0x84C1, 0xDDE8,
+ 0x84C4, 0xD0EE,
+ 0x84C9, 0xC8D8,
+ 0x84CA, 0xDDEE,
+ 0x84CD, 0xDDE9,
+ 0x84D0, 0xDDEA,
+ 0x84D1, 0xCBF2,
+ 0x84D3, 0xDDED,
+ 0x84D6, 0xB1CD,
+ 0x84DD, 0xC0B6,
+ 0x84DF, 0xBCBB,
+ 0x84E0, 0xDDF1,
+ 0x84E3, 0xDDF7,
+ 0x84E5, 0xDDF6,
+ 0x84E6, 0xDDEB,
+ 0x84EC, 0xC5EE,
+ 0x84F0, 0xDDFB,
+ 0x84FC, 0xDEA4,
+ 0x84FF, 0xDEA3,
+ 0x850C, 0xDDF8,
+ 0x8511, 0xC3EF,
+ 0x8513, 0xC2FB,
+ 0x8517, 0xD5E1,
+ 0x851A, 0xCEB5,
+ 0x851F, 0xDDFD,
+ 0x8521, 0xB2CC,
+ 0x852B, 0xC4E8,
+ 0x852C, 0xCADF,
+ 0x8537, 0xC7BE,
+ 0x8538, 0xDDFA,
+ 0x8539, 0xDDFC,
+ 0x853A, 0xDDFE,
+ 0x853B, 0xDEA2,
+ 0x853C, 0xB0AA,
+ 0x853D, 0xB1CE,
+ 0x8543, 0xDEAC,
+ 0x8548, 0xDEA6,
+ 0x8549, 0xBDB6,
+ 0x854A, 0xC8EF,
+ 0x8556, 0xDEA1,
+ 0x8559, 0xDEA5,
+ 0x855E, 0xDEA9,
+ 0x8564, 0xDEA8,
+ 0x8568, 0xDEA7,
+ 0x8572, 0xDEAD,
+ 0x8574, 0xD4CC,
+ 0x8579, 0xDEB3,
+ 0x857A, 0xDEAA,
+ 0x857B, 0xDEAE,
+ 0x857E, 0xC0D9,
+ 0x8584, 0xB1A1,
+ 0x8585, 0xDEB6,
+ 0x8587, 0xDEB1,
+ 0x858F, 0xDEB2,
+ 0x859B, 0xD1A6,
+ 0x859C, 0xDEB5,
+ 0x85A4, 0xDEAF,
+ 0x85A8, 0xDEB0,
+ 0x85AA, 0xD0BD,
+ 0x85AE, 0xDEB4,
+ 0x85AF, 0xCAED,
+ 0x85B0, 0xDEB9,
+ 0x85B7, 0xDEB8,
+ 0x85B9, 0xDEB7,
+ 0x85C1, 0xDEBB,
+ 0x85C9, 0xBDE5,
+ 0x85CF, 0xB2D8,
+ 0x85D0, 0xC3EA,
+ 0x85D3, 0xDEBA,
+ 0x85D5, 0xC5BA,
+ 0x85DC, 0xDEBC,
+ 0x85E4, 0xCCD9,
+ 0x85E9, 0xB7AA,
+ 0x85FB, 0xD4E5,
+ 0x85FF, 0xDEBD,
+ 0x8605, 0xDEBF,
+ 0x8611, 0xC4A2,
+ 0x8616, 0xDEC1,
+ 0x8627, 0xDEBE,
+ 0x8629, 0xDEC0,
+ 0x8638, 0xD5BA,
+ 0x863C, 0xDEC2,
+ 0x864D, 0xF2AE,
+ 0x864E, 0xBBA2,
+ 0x864F, 0xC2B2,
+ 0x8650, 0xC5B0,
+ 0x8651, 0xC2C7,
+ 0x8654, 0xF2AF,
+ 0x865A, 0xD0E9,
+ 0x865E, 0xD3DD,
+ 0x8662, 0xEBBD,
+ 0x866B, 0xB3E6,
+ 0x866C, 0xF2B0,
+ 0x866E, 0xF2B1,
+ 0x8671, 0xCAAD,
+ 0x8679, 0xBAE7,
+ 0x867A, 0xF2B3,
+ 0x867B, 0xF2B5,
+ 0x867C, 0xF2B4,
+ 0x867D, 0xCBE4,
+ 0x867E, 0xCFBA,
+ 0x867F, 0xF2B2,
+ 0x8680, 0xCAB4,
+ 0x8681, 0xD2CF,
+ 0x8682, 0xC2EC,
+ 0x868A, 0xCEC3,
+ 0x868B, 0xF2B8,
+ 0x868C, 0xB0F6,
+ 0x868D, 0xF2B7,
+ 0x8693, 0xF2BE,
+ 0x8695, 0xB2CF,
+ 0x869C, 0xD1C1,
+ 0x869D, 0xF2BA,
+ 0x86A3, 0xF2BC,
+ 0x86A4, 0xD4E9,
+ 0x86A7, 0xF2BB,
+ 0x86A8, 0xF2B6,
+ 0x86A9, 0xF2BF,
+ 0x86AA, 0xF2BD,
+ 0x86AC, 0xF2B9,
+ 0x86AF, 0xF2C7,
+ 0x86B0, 0xF2C4,
+ 0x86B1, 0xF2C6,
+ 0x86B4, 0xF2CA,
+ 0x86B5, 0xF2C2,
+ 0x86B6, 0xF2C0,
+ 0x86BA, 0xF2C5,
+ 0x86C0, 0xD6FB,
+ 0x86C4, 0xF2C1,
+ 0x86C6, 0xC7F9,
+ 0x86C7, 0xC9DF,
+ 0x86C9, 0xF2C8,
+ 0x86CA, 0xB9C6,
+ 0x86CB, 0xB5B0,
+ 0x86CE, 0xF2C3,
+ 0x86CF, 0xF2C9,
+ 0x86D0, 0xF2D0,
+ 0x86D1, 0xF2D6,
+ 0x86D4, 0xBBD7,
+ 0x86D8, 0xF2D5,
+ 0x86D9, 0xCDDC,
+ 0x86DB, 0xD6EB,
+ 0x86DE, 0xF2D2,
+ 0x86DF, 0xF2D4,
+ 0x86E4, 0xB8F2,
+ 0x86E9, 0xF2CB,
+ 0x86ED, 0xF2CE,
+ 0x86EE, 0xC2F9,
+ 0x86F0, 0xD5DD,
+ 0x86F1, 0xF2CC,
+ 0x86F2, 0xF2CD,
+ 0x86F3, 0xF2CF,
+ 0x86F4, 0xF2D3,
+ 0x86F8, 0xF2D9,
+ 0x86F9, 0xD3BC,
+ 0x86FE, 0xB6EA,
+ 0x8700, 0xCAF1,
+ 0x8702, 0xB7E4,
+ 0x8703, 0xF2D7,
+ 0x8707, 0xF2D8,
+ 0x8708, 0xF2DA,
+ 0x8709, 0xF2DD,
+ 0x870A, 0xF2DB,
+ 0x870D, 0xF2DC,
+ 0x8712, 0xD1D1,
+ 0x8713, 0xF2D1,
+ 0x8715, 0xCDC9,
+ 0x8717, 0xCECF,
+ 0x8718, 0xD6A9,
+ 0x871A, 0xF2E3,
+ 0x871C, 0xC3DB,
+ 0x871E, 0xF2E0,
+ 0x8721, 0xC0AF,
+ 0x8722, 0xF2EC,
+ 0x8723, 0xF2DE,
+ 0x8725, 0xF2E1,
+ 0x8729, 0xF2E8,
+ 0x872E, 0xF2E2,
+ 0x8731, 0xF2E7,
+ 0x8734, 0xF2E6,
+ 0x8737, 0xF2E9,
+ 0x873B, 0xF2DF,
+ 0x873E, 0xF2E4,
+ 0x873F, 0xF2EA,
+ 0x8747, 0xD3AC,
+ 0x8748, 0xF2E5,
+ 0x8749, 0xB2F5,
+ 0x874C, 0xF2F2,
+ 0x874E, 0xD0AB,
+ 0x8753, 0xF2F5,
+ 0x8757, 0xBBC8,
+ 0x8759, 0xF2F9,
+ 0x8760, 0xF2F0,
+ 0x8763, 0xF2F6,
+ 0x8764, 0xF2F8,
+ 0x8765, 0xF2FA,
+ 0x876E, 0xF2F3,
+ 0x8770, 0xF2F1,
+ 0x8774, 0xBAFB,
+ 0x8776, 0xB5FB,
+ 0x877B, 0xF2EF,
+ 0x877C, 0xF2F7,
+ 0x877D, 0xF2ED,
+ 0x877E, 0xF2EE,
+ 0x8782, 0xF2EB,
+ 0x8783, 0xF3A6,
+ 0x8785, 0xF3A3,
+ 0x8788, 0xF3A2,
+ 0x878B, 0xF2F4,
+ 0x878D, 0xC8DA,
+ 0x8793, 0xF2FB,
+ 0x8797, 0xF3A5,
+ 0x879F, 0xC3F8,
+ 0x87A8, 0xF2FD,
+ 0x87AB, 0xF3A7,
+ 0x87AC, 0xF3A9,
+ 0x87AD, 0xF3A4,
+ 0x87AF, 0xF2FC,
+ 0x87B3, 0xF3AB,
+ 0x87B5, 0xF3AA,
+ 0x87BA, 0xC2DD,
+ 0x87BD, 0xF3AE,
+ 0x87C0, 0xF3B0,
+ 0x87C6, 0xF3A1,
+ 0x87CA, 0xF3B1,
+ 0x87CB, 0xF3AC,
+ 0x87D1, 0xF3AF,
+ 0x87D2, 0xF2FE,
+ 0x87D3, 0xF3AD,
+ 0x87DB, 0xF3B2,
+ 0x87E0, 0xF3B4,
+ 0x87E5, 0xF3A8,
+ 0x87EA, 0xF3B3,
+ 0x87EE, 0xF3B5,
+ 0x87F9, 0xD0B7,
+ 0x87FE, 0xF3B8,
+ 0x8803, 0xD9F9,
+ 0x880A, 0xF3B9,
+ 0x8813, 0xF3B7,
+ 0x8815, 0xC8E4,
+ 0x8816, 0xF3B6,
+ 0x881B, 0xF3BA,
+ 0x8821, 0xF3BB,
+ 0x8822, 0xB4C0,
+ 0x8832, 0xEEC3,
+ 0x8839, 0xF3BC,
+ 0x883C, 0xF3BD,
+ 0x8840, 0xD1AA,
+ 0x8844, 0xF4AC,
+ 0x8845, 0xD0C6,
+ 0x884C, 0xD0D0,
+ 0x884D, 0xD1DC,
+ 0x8854, 0xCFCE,
+ 0x8857, 0xBDD6,
+ 0x8859, 0xD1C3,
+ 0x8861, 0xBAE2,
+ 0x8862, 0xE1E9,
+ 0x8863, 0xD2C2,
+ 0x8864, 0xF1C2,
+ 0x8865, 0xB2B9,
+ 0x8868, 0xB1ED,
+ 0x8869, 0xF1C3,
+ 0x886B, 0xC9C0,
+ 0x886C, 0xB3C4,
+ 0x886E, 0xD9F2,
+ 0x8870, 0xCBA5,
+ 0x8872, 0xF1C4,
+ 0x8877, 0xD6D4,
+ 0x887D, 0xF1C5,
+ 0x887E, 0xF4C0,
+ 0x887F, 0xF1C6,
+ 0x8881, 0xD4AC,
+ 0x8882, 0xF1C7,
+ 0x8884, 0xB0C0,
+ 0x8885, 0xF4C1,
+ 0x8888, 0xF4C2,
+ 0x888B, 0xB4FC,
+ 0x888D, 0xC5DB,
+ 0x8892, 0xCCBB,
+ 0x8896, 0xD0E4,
+ 0x889C, 0xCDE0,
+ 0x88A2, 0xF1C8,
+ 0x88A4, 0xD9F3,
+ 0x88AB, 0xB1BB,
+ 0x88AD, 0xCFAE,
+ 0x88B1, 0xB8A4,
+ 0x88B7, 0xF1CA,
+ 0x88BC, 0xF1CB,
+ 0x88C1, 0xB2C3,
+ 0x88C2, 0xC1D1,
+ 0x88C5, 0xD7B0,
+ 0x88C6, 0xF1C9,
+ 0x88C9, 0xF1CC,
+ 0x88CE, 0xF1CE,
+ 0x88D2, 0xD9F6,
+ 0x88D4, 0xD2E1,
+ 0x88D5, 0xD4A3,
+ 0x88D8, 0xF4C3,
+ 0x88D9, 0xC8B9,
+ 0x88DF, 0xF4C4,
+ 0x88E2, 0xF1CD,
+ 0x88E3, 0xF1CF,
+ 0x88E4, 0xBFE3,
+ 0x88E5, 0xF1D0,
+ 0x88E8, 0xF1D4,
+ 0x88F0, 0xF1D6,
+ 0x88F1, 0xF1D1,
+ 0x88F3, 0xC9D1,
+ 0x88F4, 0xC5E1,
+ 0x88F8, 0xC2E3,
+ 0x88F9, 0xB9FC,
+ 0x88FC, 0xF1D3,
+ 0x88FE, 0xF1D5,
+ 0x8902, 0xB9D3,
+ 0x890A, 0xF1DB,
+ 0x8910, 0xBAD6,
+ 0x8912, 0xB0FD,
+ 0x8913, 0xF1D9,
+ 0x8919, 0xF1D8,
+ 0x891A, 0xF1D2,
+ 0x891B, 0xF1DA,
+ 0x8921, 0xF1D7,
+ 0x8925, 0xC8EC,
+ 0x892A, 0xCDCA,
+ 0x892B, 0xF1DD,
+ 0x8930, 0xE5BD,
+ 0x8934, 0xF1DC,
+ 0x8936, 0xF1DE,
+ 0x8941, 0xF1DF,
+ 0x8944, 0xCFE5,
+ 0x895E, 0xF4C5,
+ 0x895F, 0xBDF3,
+ 0x8966, 0xF1E0,
+ 0x897B, 0xF1E1,
+ 0x897F, 0xCEF7,
+ 0x8981, 0xD2AA,
+ 0x8983, 0xF1FB,
+ 0x8986, 0xB8B2,
+ 0x89C1, 0xBCFB,
+ 0x89C2, 0xB9DB,
+ 0x89C4, 0xB9E6,
+ 0x89C5, 0xC3D9,
+ 0x89C6, 0xCAD3,
+ 0x89C7, 0xEAE8,
+ 0x89C8, 0xC0C0,
+ 0x89C9, 0xBEF5,
+ 0x89CA, 0xEAE9,
+ 0x89CB, 0xEAEA,
+ 0x89CC, 0xEAEB,
+ 0x89CE, 0xEAEC,
+ 0x89CF, 0xEAED,
+ 0x89D0, 0xEAEE,
+ 0x89D1, 0xEAEF,
+ 0x89D2, 0xBDC7,
+ 0x89D6, 0xF5FB,
+ 0x89DA, 0xF5FD,
+ 0x89DC, 0xF5FE,
+ 0x89DE, 0xF5FC,
+ 0x89E3, 0xBDE2,
+ 0x89E5, 0xF6A1,
+ 0x89E6, 0xB4A5,
+ 0x89EB, 0xF6A2,
+ 0x89EF, 0xF6A3,
+ 0x89F3, 0xECB2,
+ 0x8A00, 0xD1D4,
+ 0x8A07, 0xD9EA,
+ 0x8A3E, 0xF6A4,
+ 0x8A48, 0xEEBA,
+ 0x8A79, 0xD5B2,
+ 0x8A89, 0xD3FE,
+ 0x8A8A, 0xCCDC,
+ 0x8A93, 0xCAC4,
+ 0x8B07, 0xE5C0,
+ 0x8B26, 0xF6A5,
+ 0x8B66, 0xBEAF,
+ 0x8B6C, 0xC6A9,
+ 0x8BA0, 0xDAA5,
+ 0x8BA1, 0xBCC6,
+ 0x8BA2, 0xB6A9,
+ 0x8BA3, 0xB8BC,
+ 0x8BA4, 0xC8CF,
+ 0x8BA5, 0xBCA5,
+ 0x8BA6, 0xDAA6,
+ 0x8BA7, 0xDAA7,
+ 0x8BA8, 0xCCD6,
+ 0x8BA9, 0xC8C3,
+ 0x8BAA, 0xDAA8,
+ 0x8BAB, 0xC6FD,
+ 0x8BAD, 0xD1B5,
+ 0x8BAE, 0xD2E9,
+ 0x8BAF, 0xD1B6,
+ 0x8BB0, 0xBCC7,
+ 0x8BB2, 0xBDB2,
+ 0x8BB3, 0xBBE4,
+ 0x8BB4, 0xDAA9,
+ 0x8BB5, 0xDAAA,
+ 0x8BB6, 0xD1C8,
+ 0x8BB7, 0xDAAB,
+ 0x8BB8, 0xD0ED,
+ 0x8BB9, 0xB6EF,
+ 0x8BBA, 0xC2DB,
+ 0x8BBC, 0xCBCF,
+ 0x8BBD, 0xB7ED,
+ 0x8BBE, 0xC9E8,
+ 0x8BBF, 0xB7C3,
+ 0x8BC0, 0xBEF7,
+ 0x8BC1, 0xD6A4,
+ 0x8BC2, 0xDAAC,
+ 0x8BC3, 0xDAAD,
+ 0x8BC4, 0xC6C0,
+ 0x8BC5, 0xD7E7,
+ 0x8BC6, 0xCAB6,
+ 0x8BC8, 0xD5A9,
+ 0x8BC9, 0xCBDF,
+ 0x8BCA, 0xD5EF,
+ 0x8BCB, 0xDAAE,
+ 0x8BCC, 0xD6DF,
+ 0x8BCD, 0xB4CA,
+ 0x8BCE, 0xDAB0,
+ 0x8BCF, 0xDAAF,
+ 0x8BD1, 0xD2EB,
+ 0x8BD2, 0xDAB1,
+ 0x8BD3, 0xDAB2,
+ 0x8BD4, 0xDAB3,
+ 0x8BD5, 0xCAD4,
+ 0x8BD6, 0xDAB4,
+ 0x8BD7, 0xCAAB,
+ 0x8BD8, 0xDAB5,
+ 0x8BD9, 0xDAB6,
+ 0x8BDA, 0xB3CF,
+ 0x8BDB, 0xD6EF,
+ 0x8BDC, 0xDAB7,
+ 0x8BDD, 0xBBB0,
+ 0x8BDE, 0xB5AE,
+ 0x8BDF, 0xDAB8,
+ 0x8BE0, 0xDAB9,
+ 0x8BE1, 0xB9EE,
+ 0x8BE2, 0xD1AF,
+ 0x8BE3, 0xD2E8,
+ 0x8BE4, 0xDABA,
+ 0x8BE5, 0xB8C3,
+ 0x8BE6, 0xCFEA,
+ 0x8BE7, 0xB2EF,
+ 0x8BE8, 0xDABB,
+ 0x8BE9, 0xDABC,
+ 0x8BEB, 0xBDEB,
+ 0x8BEC, 0xCEDC,
+ 0x8BED, 0xD3EF,
+ 0x8BEE, 0xDABD,
+ 0x8BEF, 0xCEF3,
+ 0x8BF0, 0xDABE,
+ 0x8BF1, 0xD3D5,
+ 0x8BF2, 0xBBE5,
+ 0x8BF3, 0xDABF,
+ 0x8BF4, 0xCBB5,
+ 0x8BF5, 0xCBD0,
+ 0x8BF6, 0xDAC0,
+ 0x8BF7, 0xC7EB,
+ 0x8BF8, 0xD6EE,
+ 0x8BF9, 0xDAC1,
+ 0x8BFA, 0xC5B5,
+ 0x8BFB, 0xB6C1,
+ 0x8BFC, 0xDAC2,
+ 0x8BFD, 0xB7CC,
+ 0x8BFE, 0xBFCE,
+ 0x8BFF, 0xDAC3,
+ 0x8C00, 0xDAC4,
+ 0x8C01, 0xCBAD,
+ 0x8C02, 0xDAC5,
+ 0x8C03, 0xB5F7,
+ 0x8C04, 0xDAC6,
+ 0x8C05, 0xC1C2,
+ 0x8C06, 0xD7BB,
+ 0x8C07, 0xDAC7,
+ 0x8C08, 0xCCB8,
+ 0x8C0A, 0xD2EA,
+ 0x8C0B, 0xC4B1,
+ 0x8C0C, 0xDAC8,
+ 0x8C0D, 0xB5FD,
+ 0x8C0E, 0xBBD1,
+ 0x8C0F, 0xDAC9,
+ 0x8C10, 0xD0B3,
+ 0x8C11, 0xDACA,
+ 0x8C12, 0xDACB,
+ 0x8C13, 0xCEBD,
+ 0x8C14, 0xDACC,
+ 0x8C15, 0xDACD,
+ 0x8C16, 0xDACE,
+ 0x8C17, 0xB2F7,
+ 0x8C18, 0xDAD1,
+ 0x8C19, 0xDACF,
+ 0x8C1A, 0xD1E8,
+ 0x8C1B, 0xDAD0,
+ 0x8C1C, 0xC3D5,
+ 0x8C1D, 0xDAD2,
+ 0x8C1F, 0xDAD3,
+ 0x8C20, 0xDAD4,
+ 0x8C21, 0xDAD5,
+ 0x8C22, 0xD0BB,
+ 0x8C23, 0xD2A5,
+ 0x8C24, 0xB0F9,
+ 0x8C25, 0xDAD6,
+ 0x8C26, 0xC7AB,
+ 0x8C27, 0xDAD7,
+ 0x8C28, 0xBDF7,
+ 0x8C29, 0xC3A1,
+ 0x8C2A, 0xDAD8,
+ 0x8C2B, 0xDAD9,
+ 0x8C2C, 0xC3FD,
+ 0x8C2D, 0xCCB7,
+ 0x8C2E, 0xDADA,
+ 0x8C2F, 0xDADB,
+ 0x8C30, 0xC0BE,
+ 0x8C31, 0xC6D7,
+ 0x8C32, 0xDADC,
+ 0x8C33, 0xDADD,
+ 0x8C34, 0xC7B4,
+ 0x8C35, 0xDADE,
+ 0x8C36, 0xDADF,
+ 0x8C37, 0xB9C8,
+ 0x8C41, 0xBBED,
+ 0x8C46, 0xB6B9,
+ 0x8C47, 0xF4F8,
+ 0x8C49, 0xF4F9,
+ 0x8C4C, 0xCDE3,
+ 0x8C55, 0xF5B9,
+ 0x8C5A, 0xEBE0,
+ 0x8C61, 0xCFF3,
+ 0x8C62, 0xBBBF,
+ 0x8C6A, 0xBAC0,
+ 0x8C6B, 0xD4A5,
+ 0x8C73, 0xE1D9,
+ 0x8C78, 0xF5F4,
+ 0x8C79, 0xB1AA,
+ 0x8C7A, 0xB2F2,
+ 0x8C82, 0xF5F5,
+ 0x8C85, 0xF5F7,
+ 0x8C89, 0xBAD1,
+ 0x8C8A, 0xF5F6,
+ 0x8C8C, 0xC3B2,
+ 0x8C94, 0xF5F9,
+ 0x8C98, 0xF5F8,
+ 0x8D1D, 0xB1B4,
+ 0x8D1E, 0xD5EA,
+ 0x8D1F, 0xB8BA,
+ 0x8D21, 0xB9B1,
+ 0x8D22, 0xB2C6,
+ 0x8D23, 0xD4F0,
+ 0x8D24, 0xCFCD,
+ 0x8D25, 0xB0DC,
+ 0x8D26, 0xD5CB,
+ 0x8D27, 0xBBF5,
+ 0x8D28, 0xD6CA,
+ 0x8D29, 0xB7B7,
+ 0x8D2A, 0xCCB0,
+ 0x8D2B, 0xC6B6,
+ 0x8D2C, 0xB1E1,
+ 0x8D2D, 0xB9BA,
+ 0x8D2E, 0xD6FC,
+ 0x8D2F, 0xB9E1,
+ 0x8D30, 0xB7A1,
+ 0x8D31, 0xBCFA,
+ 0x8D32, 0xEADA,
+ 0x8D33, 0xEADB,
+ 0x8D34, 0xCCF9,
+ 0x8D35, 0xB9F3,
+ 0x8D36, 0xEADC,
+ 0x8D37, 0xB4FB,
+ 0x8D38, 0xC3B3,
+ 0x8D39, 0xB7D1,
+ 0x8D3A, 0xBAD8,
+ 0x8D3B, 0xEADD,
+ 0x8D3C, 0xD4F4,
+ 0x8D3D, 0xEADE,
+ 0x8D3E, 0xBCD6,
+ 0x8D3F, 0xBBDF,
+ 0x8D40, 0xEADF,
+ 0x8D41, 0xC1DE,
+ 0x8D42, 0xC2B8,
+ 0x8D43, 0xD4DF,
+ 0x8D44, 0xD7CA,
+ 0x8D45, 0xEAE0,
+ 0x8D46, 0xEAE1,
+ 0x8D47, 0xEAE4,
+ 0x8D48, 0xEAE2,
+ 0x8D49, 0xEAE3,
+ 0x8D4A, 0xC9DE,
+ 0x8D4B, 0xB8B3,
+ 0x8D4C, 0xB6C4,
+ 0x8D4D, 0xEAE5,
+ 0x8D4E, 0xCAEA,
+ 0x8D4F, 0xC9CD,
+ 0x8D50, 0xB4CD,
+ 0x8D53, 0xE2D9,
+ 0x8D54, 0xC5E2,
+ 0x8D55, 0xEAE6,
+ 0x8D56, 0xC0B5,
+ 0x8D58, 0xD7B8,
+ 0x8D59, 0xEAE7,
+ 0x8D5A, 0xD7AC,
+ 0x8D5B, 0xC8FC,
+ 0x8D5C, 0xD8D3,
+ 0x8D5D, 0xD8CD,
+ 0x8D5E, 0xD4DE,
+ 0x8D60, 0xD4F9,
+ 0x8D61, 0xC9C4,
+ 0x8D62, 0xD3AE,
+ 0x8D63, 0xB8D3,
+ 0x8D64, 0xB3E0,
+ 0x8D66, 0xC9E2,
+ 0x8D67, 0xF4F6,
+ 0x8D6B, 0xBAD5,
+ 0x8D6D, 0xF4F7,
+ 0x8D70, 0xD7DF,
+ 0x8D73, 0xF4F1,
+ 0x8D74, 0xB8B0,
+ 0x8D75, 0xD5D4,
+ 0x8D76, 0xB8CF,
+ 0x8D77, 0xC6F0,
+ 0x8D81, 0xB3C3,
+ 0x8D84, 0xF4F2,
+ 0x8D85, 0xB3AC,
+ 0x8D8A, 0xD4BD,
+ 0x8D8B, 0xC7F7,
+ 0x8D91, 0xF4F4,
+ 0x8D94, 0xF4F3,
+ 0x8D9F, 0xCCCB,
+ 0x8DA3, 0xC8A4,
+ 0x8DB1, 0xF4F5,
+ 0x8DB3, 0xD7E3,
+ 0x8DB4, 0xC5BF,
+ 0x8DB5, 0xF5C0,
+ 0x8DB8, 0xF5BB,
+ 0x8DBA, 0xF5C3,
+ 0x8DBC, 0xF5C2,
+ 0x8DBE, 0xD6BA,
+ 0x8DBF, 0xF5C1,
+ 0x8DC3, 0xD4BE,
+ 0x8DC4, 0xF5C4,
+ 0x8DC6, 0xF5CC,
+ 0x8DCB, 0xB0CF,
+ 0x8DCC, 0xB5F8,
+ 0x8DCE, 0xF5C9,
+ 0x8DCF, 0xF5CA,
+ 0x8DD1, 0xC5DC,
+ 0x8DD6, 0xF5C5,
+ 0x8DD7, 0xF5C6,
+ 0x8DDA, 0xF5C7,
+ 0x8DDB, 0xF5CB,
+ 0x8DDD, 0xBEE0,
+ 0x8DDE, 0xF5C8,
+ 0x8DDF, 0xB8FA,
+ 0x8DE3, 0xF5D0,
+ 0x8DE4, 0xF5D3,
+ 0x8DE8, 0xBFE7,
+ 0x8DEA, 0xB9F2,
+ 0x8DEB, 0xF5BC,
+ 0x8DEC, 0xF5CD,
+ 0x8DEF, 0xC2B7,
+ 0x8DF3, 0xCCF8,
+ 0x8DF5, 0xBCF9,
+ 0x8DF7, 0xF5CE,
+ 0x8DF8, 0xF5CF,
+ 0x8DF9, 0xF5D1,
+ 0x8DFA, 0xB6E5,
+ 0x8DFB, 0xF5D2,
+ 0x8DFD, 0xF5D5,
+ 0x8E05, 0xF5BD,
+ 0x8E09, 0xF5D4,
+ 0x8E0A, 0xD3BB,
+ 0x8E0C, 0xB3EC,
+ 0x8E0F, 0xCCA4,
+ 0x8E14, 0xF5D6,
+ 0x8E1D, 0xF5D7,
+ 0x8E1E, 0xBEE1,
+ 0x8E1F, 0xF5D8,
+ 0x8E22, 0xCCDF,
+ 0x8E23, 0xF5DB,
+ 0x8E29, 0xB2C8,
+ 0x8E2A, 0xD7D9,
+ 0x8E2C, 0xF5D9,
+ 0x8E2E, 0xF5DA,
+ 0x8E2F, 0xF5DC,
+ 0x8E31, 0xF5E2,
+ 0x8E35, 0xF5E0,
+ 0x8E39, 0xF5DF,
+ 0x8E3A, 0xF5DD,
+ 0x8E3D, 0xF5E1,
+ 0x8E40, 0xF5DE,
+ 0x8E41, 0xF5E4,
+ 0x8E42, 0xF5E5,
+ 0x8E44, 0xCCE3,
+ 0x8E47, 0xE5BF,
+ 0x8E48, 0xB5B8,
+ 0x8E49, 0xF5E3,
+ 0x8E4A, 0xF5E8,
+ 0x8E4B, 0xCCA3,
+ 0x8E51, 0xF5E6,
+ 0x8E52, 0xF5E7,
+ 0x8E59, 0xF5BE,
+ 0x8E66, 0xB1C4,
+ 0x8E69, 0xF5BF,
+ 0x8E6C, 0xB5C5,
+ 0x8E6D, 0xB2E4,
+ 0x8E6F, 0xF5EC,
+ 0x8E70, 0xF5E9,
+ 0x8E72, 0xB6D7,
+ 0x8E74, 0xF5ED,
+ 0x8E76, 0xF5EA,
+ 0x8E7C, 0xF5EB,
+ 0x8E7F, 0xB4DA,
+ 0x8E81, 0xD4EA,
+ 0x8E85, 0xF5EE,
+ 0x8E87, 0xB3F9,
+ 0x8E8F, 0xF5EF,
+ 0x8E90, 0xF5F1,
+ 0x8E94, 0xF5F0,
+ 0x8E9C, 0xF5F2,
+ 0x8E9E, 0xF5F3,
+ 0x8EAB, 0xC9ED,
+ 0x8EAC, 0xB9AA,
+ 0x8EAF, 0xC7FB,
+ 0x8EB2, 0xB6E3,
+ 0x8EBA, 0xCCC9,
+ 0x8ECE, 0xEAA6,
+ 0x8F66, 0xB3B5,
+ 0x8F67, 0xD4FE,
+ 0x8F68, 0xB9EC,
+ 0x8F69, 0xD0F9,
+ 0x8F6B, 0xE9ED,
+ 0x8F6C, 0xD7AA,
+ 0x8F6D, 0xE9EE,
+ 0x8F6E, 0xC2D6,
+ 0x8F6F, 0xC8ED,
+ 0x8F70, 0xBAE4,
+ 0x8F71, 0xE9EF,
+ 0x8F72, 0xE9F0,
+ 0x8F73, 0xE9F1,
+ 0x8F74, 0xD6E1,
+ 0x8F75, 0xE9F2,
+ 0x8F76, 0xE9F3,
+ 0x8F77, 0xE9F5,
+ 0x8F78, 0xE9F4,
+ 0x8F79, 0xE9F6,
+ 0x8F7A, 0xE9F7,
+ 0x8F7B, 0xC7E1,
+ 0x8F7C, 0xE9F8,
+ 0x8F7D, 0xD4D8,
+ 0x8F7E, 0xE9F9,
+ 0x8F7F, 0xBDCE,
+ 0x8F81, 0xE9FA,
+ 0x8F82, 0xE9FB,
+ 0x8F83, 0xBDCF,
+ 0x8F84, 0xE9FC,
+ 0x8F85, 0xB8A8,
+ 0x8F86, 0xC1BE,
+ 0x8F87, 0xE9FD,
+ 0x8F88, 0xB1B2,
+ 0x8F89, 0xBBD4,
+ 0x8F8A, 0xB9F5,
+ 0x8F8B, 0xE9FE,
+ 0x8F8D, 0xEAA1,
+ 0x8F8E, 0xEAA2,
+ 0x8F8F, 0xEAA3,
+ 0x8F90, 0xB7F8,
+ 0x8F91, 0xBCAD,
+ 0x8F93, 0xCAE4,
+ 0x8F94, 0xE0CE,
+ 0x8F95, 0xD4AF,
+ 0x8F96, 0xCFBD,
+ 0x8F97, 0xD5B7,
+ 0x8F98, 0xEAA4,
+ 0x8F99, 0xD5DE,
+ 0x8F9A, 0xEAA5,
+ 0x8F9B, 0xD0C1,
+ 0x8F9C, 0xB9BC,
+ 0x8F9E, 0xB4C7,
+ 0x8F9F, 0xB1D9,
+ 0x8FA3, 0xC0B1,
+ 0x8FA8, 0xB1E6,
+ 0x8FA9, 0xB1E7,
+ 0x8FAB, 0xB1E8,
+ 0x8FB0, 0xB3BD,
+ 0x8FB1, 0xC8E8,
+ 0x8FB6, 0xE5C1,
+ 0x8FB9, 0xB1DF,
+ 0x8FBD, 0xC1C9,
+ 0x8FBE, 0xB4EF,
+ 0x8FC1, 0xC7A8,
+ 0x8FC2, 0xD3D8,
+ 0x8FC4, 0xC6F9,
+ 0x8FC5, 0xD1B8,
+ 0x8FC7, 0xB9FD,
+ 0x8FC8, 0xC2F5,
+ 0x8FCE, 0xD3AD,
+ 0x8FD0, 0xD4CB,
+ 0x8FD1, 0xBDFC,
+ 0x8FD3, 0xE5C2,
+ 0x8FD4, 0xB7B5,
+ 0x8FD5, 0xE5C3,
+ 0x8FD8, 0xBBB9,
+ 0x8FD9, 0xD5E2,
+ 0x8FDB, 0xBDF8,
+ 0x8FDC, 0xD4B6,
+ 0x8FDD, 0xCEA5,
+ 0x8FDE, 0xC1AC,
+ 0x8FDF, 0xB3D9,
+ 0x8FE2, 0xCCF6,
+ 0x8FE4, 0xE5C6,
+ 0x8FE5, 0xE5C4,
+ 0x8FE6, 0xE5C8,
+ 0x8FE8, 0xE5CA,
+ 0x8FE9, 0xE5C7,
+ 0x8FEA, 0xB5CF,
+ 0x8FEB, 0xC6C8,
+ 0x8FED, 0xB5FC,
+ 0x8FEE, 0xE5C5,
+ 0x8FF0, 0xCAF6,
+ 0x8FF3, 0xE5C9,
+ 0x8FF7, 0xC3D4,
+ 0x8FF8, 0xB1C5,
+ 0x8FF9, 0xBCA3,
+ 0x8FFD, 0xD7B7,
+ 0x9000, 0xCDCB,
+ 0x9001, 0xCBCD,
+ 0x9002, 0xCACA,
+ 0x9003, 0xCCD3,
+ 0x9004, 0xE5CC,
+ 0x9005, 0xE5CB,
+ 0x9006, 0xC4E6,
+ 0x9009, 0xD1A1,
+ 0x900A, 0xD1B7,
+ 0x900B, 0xE5CD,
+ 0x900D, 0xE5D0,
+ 0x900F, 0xCDB8,
+ 0x9010, 0xD6F0,
+ 0x9011, 0xE5CF,
+ 0x9012, 0xB5DD,
+ 0x9014, 0xCDBE,
+ 0x9016, 0xE5D1,
+ 0x9017, 0xB6BA,
+ 0x901A, 0xCDA8,
+ 0x901B, 0xB9E4,
+ 0x901D, 0xCAC5,
+ 0x901E, 0xB3D1,
+ 0x901F, 0xCBD9,
+ 0x9020, 0xD4EC,
+ 0x9021, 0xE5D2,
+ 0x9022, 0xB7EA,
+ 0x9026, 0xE5CE,
+ 0x902D, 0xE5D5,
+ 0x902E, 0xB4FE,
+ 0x902F, 0xE5D6,
+ 0x9035, 0xE5D3,
+ 0x9036, 0xE5D4,
+ 0x9038, 0xD2DD,
+ 0x903B, 0xC2DF,
+ 0x903C, 0xB1C6,
+ 0x903E, 0xD3E2,
+ 0x9041, 0xB6DD,
+ 0x9042, 0xCBEC,
+ 0x9044, 0xE5D7,
+ 0x9047, 0xD3F6,
+ 0x904D, 0xB1E9,
+ 0x904F, 0xB6F4,
+ 0x9050, 0xE5DA,
+ 0x9051, 0xE5D8,
+ 0x9052, 0xE5D9,
+ 0x9053, 0xB5C0,
+ 0x9057, 0xD2C5,
+ 0x9058, 0xE5DC,
+ 0x905B, 0xE5DE,
+ 0x9062, 0xE5DD,
+ 0x9063, 0xC7B2,
+ 0x9065, 0xD2A3,
+ 0x9068, 0xE5DB,
+ 0x906D, 0xD4E2,
+ 0x906E, 0xD5DA,
+ 0x9074, 0xE5E0,
+ 0x9075, 0xD7F1,
+ 0x907D, 0xE5E1,
+ 0x907F, 0xB1DC,
+ 0x9080, 0xD1FB,
+ 0x9082, 0xE5E2,
+ 0x9083, 0xE5E4,
+ 0x9088, 0xE5E3,
+ 0x908B, 0xE5E5,
+ 0x9091, 0xD2D8,
+ 0x9093, 0xB5CB,
+ 0x9095, 0xE7DF,
+ 0x9097, 0xDAF5,
+ 0x9099, 0xDAF8,
+ 0x909B, 0xDAF6,
+ 0x909D, 0xDAF7,
+ 0x90A1, 0xDAFA,
+ 0x90A2, 0xD0CF,
+ 0x90A3, 0xC4C7,
+ 0x90A6, 0xB0EE,
+ 0x90AA, 0xD0B0,
+ 0x90AC, 0xDAF9,
+ 0x90AE, 0xD3CA,
+ 0x90AF, 0xBAAA,
+ 0x90B0, 0xDBA2,
+ 0x90B1, 0xC7F1,
+ 0x90B3, 0xDAFC,
+ 0x90B4, 0xDAFB,
+ 0x90B5, 0xC9DB,
+ 0x90B6, 0xDAFD,
+ 0x90B8, 0xDBA1,
+ 0x90B9, 0xD7DE,
+ 0x90BA, 0xDAFE,
+ 0x90BB, 0xC1DA,
+ 0x90BE, 0xDBA5,
+ 0x90C1, 0xD3F4,
+ 0x90C4, 0xDBA7,
+ 0x90C5, 0xDBA4,
+ 0x90C7, 0xDBA8,
+ 0x90CA, 0xBDBC,
+ 0x90CE, 0xC0C9,
+ 0x90CF, 0xDBA3,
+ 0x90D0, 0xDBA6,
+ 0x90D1, 0xD6A3,
+ 0x90D3, 0xDBA9,
+ 0x90D7, 0xDBAD,
+ 0x90DB, 0xDBAE,
+ 0x90DC, 0xDBAC,
+ 0x90DD, 0xBAC2,
+ 0x90E1, 0xBFA4,
+ 0x90E2, 0xDBAB,
+ 0x90E6, 0xDBAA,
+ 0x90E7, 0xD4C7,
+ 0x90E8, 0xB2BF,
+ 0x90EB, 0xDBAF,
+ 0x90ED, 0xB9F9,
+ 0x90EF, 0xDBB0,
+ 0x90F4, 0xB3BB,
+ 0x90F8, 0xB5A6,
+ 0x90FD, 0xB6BC,
+ 0x90FE, 0xDBB1,
+ 0x9102, 0xB6F5,
+ 0x9104, 0xDBB2,
+ 0x9119, 0xB1C9,
+ 0x911E, 0xDBB4,
+ 0x9122, 0xDBB3,
+ 0x9123, 0xDBB5,
+ 0x912F, 0xDBB7,
+ 0x9131, 0xDBB6,
+ 0x9139, 0xDBB8,
+ 0x9143, 0xDBB9,
+ 0x9146, 0xDBBA,
+ 0x9149, 0xD3CF,
+ 0x914A, 0xF4FA,
+ 0x914B, 0xC7F5,
+ 0x914C, 0xD7C3,
+ 0x914D, 0xC5E4,
+ 0x914E, 0xF4FC,
+ 0x914F, 0xF4FD,
+ 0x9150, 0xF4FB,
+ 0x9152, 0xBEC6,
+ 0x9157, 0xD0EF,
+ 0x915A, 0xB7D3,
+ 0x915D, 0xD4CD,
+ 0x915E, 0xCCAA,
+ 0x9161, 0xF5A2,
+ 0x9162, 0xF5A1,
+ 0x9163, 0xBAA8,
+ 0x9164, 0xF4FE,
+ 0x9165, 0xCBD6,
+ 0x9169, 0xF5A4,
+ 0x916A, 0xC0D2,
+ 0x916C, 0xB3EA,
+ 0x916E, 0xCDAA,
+ 0x916F, 0xF5A5,
+ 0x9170, 0xF5A3,
+ 0x9171, 0xBDB4,
+ 0x9172, 0xF5A8,
+ 0x9174, 0xF5A9,
+ 0x9175, 0xBDCD,
+ 0x9176, 0xC3B8,
+ 0x9177, 0xBFE1,
+ 0x9178, 0xCBE1,
+ 0x9179, 0xF5AA,
+ 0x917D, 0xF5A6,
+ 0x917E, 0xF5A7,
+ 0x917F, 0xC4F0,
+ 0x9185, 0xF5AC,
+ 0x9187, 0xB4BC,
+ 0x9189, 0xD7ED,
+ 0x918B, 0xB4D7,
+ 0x918C, 0xF5AB,
+ 0x918D, 0xF5AE,
+ 0x9190, 0xF5AD,
+ 0x9191, 0xF5AF,
+ 0x9192, 0xD0D1,
+ 0x919A, 0xC3D1,
+ 0x919B, 0xC8A9,
+ 0x91A2, 0xF5B0,
+ 0x91A3, 0xF5B1,
+ 0x91AA, 0xF5B2,
+ 0x91AD, 0xF5B3,
+ 0x91AE, 0xF5B4,
+ 0x91AF, 0xF5B5,
+ 0x91B4, 0xF5B7,
+ 0x91B5, 0xF5B6,
+ 0x91BA, 0xF5B8,
+ 0x91C7, 0xB2C9,
+ 0x91C9, 0xD3D4,
+ 0x91CA, 0xCACD,
+ 0x91CC, 0xC0EF,
+ 0x91CD, 0xD6D8,
+ 0x91CE, 0xD2B0,
+ 0x91CF, 0xC1BF,
+ 0x91D1, 0xBDF0,
+ 0x91DC, 0xB8AA,
+ 0x9274, 0xBCF8,
+ 0x928E, 0xF6C6,
+ 0x92AE, 0xF6C7,
+ 0x92C8, 0xF6C8,
+ 0x933E, 0xF6C9,
+ 0x936A, 0xF6CA,
+ 0x938F, 0xF6CC,
+ 0x93CA, 0xF6CB,
+ 0x93D6, 0xF7E9,
+ 0x943E, 0xF6CD,
+ 0x946B, 0xF6CE,
+ 0x9485, 0xEEC4,
+ 0x9486, 0xEEC5,
+ 0x9487, 0xEEC6,
+ 0x9488, 0xD5EB,
+ 0x9489, 0xB6A4,
+ 0x948A, 0xEEC8,
+ 0x948B, 0xEEC7,
+ 0x948C, 0xEEC9,
+ 0x948D, 0xEECA,
+ 0x948E, 0xC7A5,
+ 0x948F, 0xEECB,
+ 0x9490, 0xEECC,
+ 0x9492, 0xB7B0,
+ 0x9493, 0xB5F6,
+ 0x9494, 0xEECD,
+ 0x9495, 0xEECF,
+ 0x9497, 0xEECE,
+ 0x9499, 0xB8C6,
+ 0x949A, 0xEED0,
+ 0x949B, 0xEED1,
+ 0x949C, 0xEED2,
+ 0x949D, 0xB6DB,
+ 0x949E, 0xB3AE,
+ 0x949F, 0xD6D3,
+ 0x94A0, 0xC4C6,
+ 0x94A1, 0xB1B5,
+ 0x94A2, 0xB8D6,
+ 0x94A3, 0xEED3,
+ 0x94A4, 0xEED4,
+ 0x94A5, 0xD4BF,
+ 0x94A6, 0xC7D5,
+ 0x94A7, 0xBEFB,
+ 0x94A8, 0xCED9,
+ 0x94A9, 0xB9B3,
+ 0x94AA, 0xEED6,
+ 0x94AB, 0xEED5,
+ 0x94AC, 0xEED8,
+ 0x94AD, 0xEED7,
+ 0x94AE, 0xC5A5,
+ 0x94AF, 0xEED9,
+ 0x94B0, 0xEEDA,
+ 0x94B1, 0xC7AE,
+ 0x94B2, 0xEEDB,
+ 0x94B3, 0xC7AF,
+ 0x94B4, 0xEEDC,
+ 0x94B5, 0xB2A7,
+ 0x94B6, 0xEEDD,
+ 0x94B7, 0xEEDE,
+ 0x94B8, 0xEEDF,
+ 0x94B9, 0xEEE0,
+ 0x94BA, 0xEEE1,
+ 0x94BB, 0xD7EA,
+ 0x94BC, 0xEEE2,
+ 0x94BD, 0xEEE3,
+ 0x94BE, 0xBCD8,
+ 0x94BF, 0xEEE4,
+ 0x94C0, 0xD3CB,
+ 0x94C1, 0xCCFA,
+ 0x94C2, 0xB2AC,
+ 0x94C3, 0xC1E5,
+ 0x94C4, 0xEEE5,
+ 0x94C5, 0xC7A6,
+ 0x94C6, 0xC3AD,
+ 0x94C8, 0xEEE6,
+ 0x94C9, 0xEEE7,
+ 0x94CA, 0xEEE8,
+ 0x94CB, 0xEEE9,
+ 0x94CC, 0xEEEA,
+ 0x94CD, 0xEEEB,
+ 0x94CE, 0xEEEC,
+ 0x94D0, 0xEEED,
+ 0x94D1, 0xEEEE,
+ 0x94D2, 0xEEEF,
+ 0x94D5, 0xEEF0,
+ 0x94D6, 0xEEF1,
+ 0x94D7, 0xEEF2,
+ 0x94D8, 0xEEF4,
+ 0x94D9, 0xEEF3,
+ 0x94DB, 0xEEF5,
+ 0x94DC, 0xCDAD,
+ 0x94DD, 0xC2C1,
+ 0x94DE, 0xEEF6,
+ 0x94DF, 0xEEF7,
+ 0x94E0, 0xEEF8,
+ 0x94E1, 0xD5A1,
+ 0x94E2, 0xEEF9,
+ 0x94E3, 0xCFB3,
+ 0x94E4, 0xEEFA,
+ 0x94E5, 0xEEFB,
+ 0x94E7, 0xEEFC,
+ 0x94E8, 0xEEFD,
+ 0x94E9, 0xEFA1,
+ 0x94EA, 0xEEFE,
+ 0x94EB, 0xEFA2,
+ 0x94EC, 0xB8F5,
+ 0x94ED, 0xC3FA,
+ 0x94EE, 0xEFA3,
+ 0x94EF, 0xEFA4,
+ 0x94F0, 0xBDC2,
+ 0x94F1, 0xD2BF,
+ 0x94F2, 0xB2F9,
+ 0x94F3, 0xEFA5,
+ 0x94F4, 0xEFA6,
+ 0x94F5, 0xEFA7,
+ 0x94F6, 0xD2F8,
+ 0x94F7, 0xEFA8,
+ 0x94F8, 0xD6FD,
+ 0x94F9, 0xEFA9,
+ 0x94FA, 0xC6CC,
+ 0x94FC, 0xEFAA,
+ 0x94FD, 0xEFAB,
+ 0x94FE, 0xC1B4,
+ 0x94FF, 0xEFAC,
+ 0x9500, 0xCFFA,
+ 0x9501, 0xCBF8,
+ 0x9502, 0xEFAE,
+ 0x9503, 0xEFAD,
+ 0x9504, 0xB3FA,
+ 0x9505, 0xB9F8,
+ 0x9506, 0xEFAF,
+ 0x9507, 0xEFB0,
+ 0x9508, 0xD0E2,
+ 0x9509, 0xEFB1,
+ 0x950A, 0xEFB2,
+ 0x950B, 0xB7E6,
+ 0x950C, 0xD0BF,
+ 0x950D, 0xEFB3,
+ 0x950E, 0xEFB4,
+ 0x950F, 0xEFB5,
+ 0x9510, 0xC8F1,
+ 0x9511, 0xCCE0,
+ 0x9512, 0xEFB6,
+ 0x9513, 0xEFB7,
+ 0x9514, 0xEFB8,
+ 0x9515, 0xEFB9,
+ 0x9516, 0xEFBA,
+ 0x9517, 0xD5E0,
+ 0x9518, 0xEFBB,
+ 0x9519, 0xB4ED,
+ 0x951A, 0xC3AA,
+ 0x951B, 0xEFBC,
+ 0x951D, 0xEFBD,
+ 0x951E, 0xEFBE,
+ 0x951F, 0xEFBF,
+ 0x9521, 0xCEFD,
+ 0x9522, 0xEFC0,
+ 0x9523, 0xC2E0,
+ 0x9524, 0xB4B8,
+ 0x9525, 0xD7B6,
+ 0x9526, 0xBDF5,
+ 0x9528, 0xCFC7,
+ 0x9529, 0xEFC3,
+ 0x952A, 0xEFC1,
+ 0x952B, 0xEFC2,
+ 0x952C, 0xEFC4,
+ 0x952D, 0xB6A7,
+ 0x952E, 0xBCFC,
+ 0x952F, 0xBEE2,
+ 0x9530, 0xC3CC,
+ 0x9531, 0xEFC5,
+ 0x9532, 0xEFC6,
+ 0x9534, 0xEFC7,
+ 0x9535, 0xEFCF,
+ 0x9536, 0xEFC8,
+ 0x9537, 0xEFC9,
+ 0x9538, 0xEFCA,
+ 0x9539, 0xC7C2,
+ 0x953A, 0xEFF1,
+ 0x953B, 0xB6CD,
+ 0x953C, 0xEFCB,
+ 0x953E, 0xEFCC,
+ 0x953F, 0xEFCD,
+ 0x9540, 0xB6C6,
+ 0x9541, 0xC3BE,
+ 0x9542, 0xEFCE,
+ 0x9544, 0xEFD0,
+ 0x9545, 0xEFD1,
+ 0x9546, 0xEFD2,
+ 0x9547, 0xD5F2,
+ 0x9549, 0xEFD3,
+ 0x954A, 0xC4F7,
+ 0x954C, 0xEFD4,
+ 0x954D, 0xC4F8,
+ 0x954E, 0xEFD5,
+ 0x954F, 0xEFD6,
+ 0x9550, 0xB8E4,
+ 0x9551, 0xB0F7,
+ 0x9552, 0xEFD7,
+ 0x9553, 0xEFD8,
+ 0x9554, 0xEFD9,
+ 0x9556, 0xEFDA,
+ 0x9557, 0xEFDB,
+ 0x9558, 0xEFDC,
+ 0x9559, 0xEFDD,
+ 0x955B, 0xEFDE,
+ 0x955C, 0xBEB5,
+ 0x955D, 0xEFE1,
+ 0x955E, 0xEFDF,
+ 0x955F, 0xEFE0,
+ 0x9561, 0xEFE2,
+ 0x9562, 0xEFE3,
+ 0x9563, 0xC1CD,
+ 0x9564, 0xEFE4,
+ 0x9565, 0xEFE5,
+ 0x9566, 0xEFE6,
+ 0x9567, 0xEFE7,
+ 0x9568, 0xEFE8,
+ 0x9569, 0xEFE9,
+ 0x956A, 0xEFEA,
+ 0x956B, 0xEFEB,
+ 0x956C, 0xEFEC,
+ 0x956D, 0xC0D8,
+ 0x956F, 0xEFED,
+ 0x9570, 0xC1AD,
+ 0x9571, 0xEFEE,
+ 0x9572, 0xEFEF,
+ 0x9573, 0xEFF0,
+ 0x9576, 0xCFE2,
+ 0x957F, 0xB3A4,
+ 0x95E8, 0xC3C5,
+ 0x95E9, 0xE3C5,
+ 0x95EA, 0xC9C1,
+ 0x95EB, 0xE3C6,
+ 0x95ED, 0xB1D5,
+ 0x95EE, 0xCECA,
+ 0x95EF, 0xB4B3,
+ 0x95F0, 0xC8F2,
+ 0x95F1, 0xE3C7,
+ 0x95F2, 0xCFD0,
+ 0x95F3, 0xE3C8,
+ 0x95F4, 0xBCE4,
+ 0x95F5, 0xE3C9,
+ 0x95F6, 0xE3CA,
+ 0x95F7, 0xC3C6,
+ 0x95F8, 0xD5A2,
+ 0x95F9, 0xC4D6,
+ 0x95FA, 0xB9EB,
+ 0x95FB, 0xCEC5,
+ 0x95FC, 0xE3CB,
+ 0x95FD, 0xC3F6,
+ 0x95FE, 0xE3CC,
+ 0x9600, 0xB7A7,
+ 0x9601, 0xB8F3,
+ 0x9602, 0xBAD2,
+ 0x9603, 0xE3CD,
+ 0x9604, 0xE3CE,
+ 0x9605, 0xD4C4,
+ 0x9606, 0xE3CF,
+ 0x9608, 0xE3D0,
+ 0x9609, 0xD1CB,
+ 0x960A, 0xE3D1,
+ 0x960B, 0xE3D2,
+ 0x960C, 0xE3D3,
+ 0x960D, 0xE3D4,
+ 0x960E, 0xD1D6,
+ 0x960F, 0xE3D5,
+ 0x9610, 0xB2FB,
+ 0x9611, 0xC0BB,
+ 0x9612, 0xE3D6,
+ 0x9614, 0xC0AB,
+ 0x9615, 0xE3D7,
+ 0x9616, 0xE3D8,
+ 0x9617, 0xE3D9,
+ 0x9619, 0xE3DA,
+ 0x961A, 0xE3DB,
+ 0x961C, 0xB8B7,
+ 0x961D, 0xDAE2,
+ 0x961F, 0xB6D3,
+ 0x9621, 0xDAE4,
+ 0x9622, 0xDAE3,
+ 0x962A, 0xDAE6,
+ 0x962E, 0xC8EE,
+ 0x9631, 0xDAE5,
+ 0x9632, 0xB7C0,
+ 0x9633, 0xD1F4,
+ 0x9634, 0xD2F5,
+ 0x9635, 0xD5F3,
+ 0x9636, 0xBDD7,
+ 0x963B, 0xD7E8,
+ 0x963C, 0xDAE8,
+ 0x963D, 0xDAE7,
+ 0x963F, 0xB0A2,
+ 0x9640, 0xCDD3,
+ 0x9642, 0xDAE9,
+ 0x9644, 0xB8BD,
+ 0x9645, 0xBCCA,
+ 0x9646, 0xC2BD,
+ 0x9647, 0xC2A4,
+ 0x9648, 0xB3C2,
+ 0x9649, 0xDAEA,
+ 0x964B, 0xC2AA,
+ 0x964C, 0xC4B0,
+ 0x964D, 0xBDB5,
+ 0x9650, 0xCFDE,
+ 0x9654, 0xDAEB,
+ 0x9655, 0xC9C2,
+ 0x965B, 0xB1DD,
+ 0x965F, 0xDAEC,
+ 0x9661, 0xB6B8,
+ 0x9662, 0xD4BA,
+ 0x9664, 0xB3FD,
+ 0x9667, 0xDAED,
+ 0x9668, 0xD4C9,
+ 0x9669, 0xCFD5,
+ 0x966A, 0xC5E3,
+ 0x966C, 0xDAEE,
+ 0x9672, 0xDAEF,
+ 0x9674, 0xDAF0,
+ 0x9675, 0xC1EA,
+ 0x9676, 0xCCD5,
+ 0x9677, 0xCFDD,
+ 0x9685, 0xD3E7,
+ 0x9686, 0xC2A1,
+ 0x9688, 0xDAF1,
+ 0x968B, 0xCBE5,
+ 0x968D, 0xDAF2,
+ 0x968F, 0xCBE6,
+ 0x9690, 0xD2FE,
+ 0x9694, 0xB8F4,
+ 0x9697, 0xDAF3,
+ 0x9698, 0xB0AF,
+ 0x9699, 0xCFB6,
+ 0x969C, 0xD5CF,
+ 0x96A7, 0xCBED,
+ 0x96B0, 0xDAF4,
+ 0x96B3, 0xE3C4,
+ 0x96B6, 0xC1A5,
+ 0x96B9, 0xF6BF,
+ 0x96BC, 0xF6C0,
+ 0x96BD, 0xF6C1,
+ 0x96BE, 0xC4D1,
+ 0x96C0, 0xC8B8,
+ 0x96C1, 0xD1E3,
+ 0x96C4, 0xD0DB,
+ 0x96C5, 0xD1C5,
+ 0x96C6, 0xBCAF,
+ 0x96C7, 0xB9CD,
+ 0x96C9, 0xEFF4,
+ 0x96CC, 0xB4C6,
+ 0x96CD, 0xD3BA,
+ 0x96CE, 0xF6C2,
+ 0x96CF, 0xB3FB,
+ 0x96D2, 0xF6C3,
+ 0x96D5, 0xB5F1,
+ 0x96E0, 0xF6C5,
+ 0x96E8, 0xD3EA,
+ 0x96E9, 0xF6A7,
+ 0x96EA, 0xD1A9,
+ 0x96EF, 0xF6A9,
+ 0x96F3, 0xF6A8,
+ 0x96F6, 0xC1E3,
+ 0x96F7, 0xC0D7,
+ 0x96F9, 0xB1A2,
+ 0x96FE, 0xCEED,
+ 0x9700, 0xD0E8,
+ 0x9701, 0xF6AB,
+ 0x9704, 0xCFF6,
+ 0x9706, 0xF6AA,
+ 0x9707, 0xD5F0,
+ 0x9708, 0xF6AC,
+ 0x9709, 0xC3B9,
+ 0x970D, 0xBBF4,
+ 0x970E, 0xF6AE,
+ 0x970F, 0xF6AD,
+ 0x9713, 0xC4DE,
+ 0x9716, 0xC1D8,
+ 0x971C, 0xCBAA,
+ 0x971E, 0xCFBC,
+ 0x972A, 0xF6AF,
+ 0x972D, 0xF6B0,
+ 0x9730, 0xF6B1,
+ 0x9732, 0xC2B6,
+ 0x9738, 0xB0D4,
+ 0x9739, 0xC5F9,
+ 0x973E, 0xF6B2,
+ 0x9752, 0xC7E0,
+ 0x9753, 0xF6A6,
+ 0x9756, 0xBEB8,
+ 0x9759, 0xBEB2,
+ 0x975B, 0xB5E5,
+ 0x975E, 0xB7C7,
+ 0x9760, 0xBFBF,
+ 0x9761, 0xC3D2,
+ 0x9762, 0xC3E6,
+ 0x9765, 0xD8CC,
+ 0x9769, 0xB8EF,
+ 0x9773, 0xBDF9,
+ 0x9774, 0xD1A5,
+ 0x9776, 0xB0D0,
+ 0x977C, 0xF7B0,
+ 0x9785, 0xF7B1,
+ 0x978B, 0xD0AC,
+ 0x978D, 0xB0B0,
+ 0x9791, 0xF7B2,
+ 0x9792, 0xF7B3,
+ 0x9794, 0xF7B4,
+ 0x9798, 0xC7CA,
+ 0x97A0, 0xBECF,
+ 0x97A3, 0xF7B7,
+ 0x97AB, 0xF7B6,
+ 0x97AD, 0xB1DE,
+ 0x97AF, 0xF7B5,
+ 0x97B2, 0xF7B8,
+ 0x97B4, 0xF7B9,
+ 0x97E6, 0xCEA4,
+ 0x97E7, 0xC8CD,
+ 0x97E9, 0xBAAB,
+ 0x97EA, 0xE8B8,
+ 0x97EB, 0xE8B9,
+ 0x97EC, 0xE8BA,
+ 0x97ED, 0xBEC2,
+ 0x97F3, 0xD2F4,
+ 0x97F5, 0xD4CF,
+ 0x97F6, 0xC9D8,
+ 0x9875, 0xD2B3,
+ 0x9876, 0xB6A5,
+ 0x9877, 0xC7EA,
+ 0x9878, 0xF1FC,
+ 0x9879, 0xCFEE,
+ 0x987A, 0xCBB3,
+ 0x987B, 0xD0EB,
+ 0x987C, 0xE7EF,
+ 0x987D, 0xCDE7,
+ 0x987E, 0xB9CB,
+ 0x987F, 0xB6D9,
+ 0x9880, 0xF1FD,
+ 0x9881, 0xB0E4,
+ 0x9882, 0xCBCC,
+ 0x9883, 0xF1FE,
+ 0x9884, 0xD4A4,
+ 0x9885, 0xC2AD,
+ 0x9886, 0xC1EC,
+ 0x9887, 0xC6C4,
+ 0x9888, 0xBEB1,
+ 0x9889, 0xF2A1,
+ 0x988A, 0xBCD5,
+ 0x988C, 0xF2A2,
+ 0x988D, 0xF2A3,
+ 0x988F, 0xF2A4,
+ 0x9890, 0xD2C3,
+ 0x9891, 0xC6B5,
+ 0x9893, 0xCDC7,
+ 0x9894, 0xF2A5,
+ 0x9896, 0xD3B1,
+ 0x9897, 0xBFC5,
+ 0x9898, 0xCCE2,
+ 0x989A, 0xF2A6,
+ 0x989B, 0xF2A7,
+ 0x989C, 0xD1D5,
+ 0x989D, 0xB6EE,
+ 0x989E, 0xF2A8,
+ 0x989F, 0xF2A9,
+ 0x98A0, 0xB5DF,
+ 0x98A1, 0xF2AA,
+ 0x98A2, 0xF2AB,
+ 0x98A4, 0xB2FC,
+ 0x98A5, 0xF2AC,
+ 0x98A6, 0xF2AD,
+ 0x98A7, 0xC8A7,
+ 0x98CE, 0xB7E7,
+ 0x98D1, 0xECA9,
+ 0x98D2, 0xECAA,
+ 0x98D3, 0xECAB,
+ 0x98D5, 0xECAC,
+ 0x98D8, 0xC6AE,
+ 0x98D9, 0xECAD,
+ 0x98DA, 0xECAE,
+ 0x98DE, 0xB7C9,
+ 0x98DF, 0xCAB3,
+ 0x98E7, 0xE2B8,
+ 0x98E8, 0xF7CF,
+ 0x990D, 0xF7D0,
+ 0x9910, 0xB2CD,
+ 0x992E, 0xF7D1,
+ 0x9954, 0xF7D3,
+ 0x9955, 0xF7D2,
+ 0x9963, 0xE2BB,
+ 0x9965, 0xBCA2,
+ 0x9967, 0xE2BC,
+ 0x9968, 0xE2BD,
+ 0x9969, 0xE2BE,
+ 0x996A, 0xE2BF,
+ 0x996B, 0xE2C0,
+ 0x996C, 0xE2C1,
+ 0x996D, 0xB7B9,
+ 0x996E, 0xD2FB,
+ 0x996F, 0xBDA4,
+ 0x9970, 0xCACE,
+ 0x9971, 0xB1A5,
+ 0x9972, 0xCBC7,
+ 0x9974, 0xE2C2,
+ 0x9975, 0xB6FC,
+ 0x9976, 0xC8C4,
+ 0x9977, 0xE2C3,
+ 0x997A, 0xBDC8,
+ 0x997C, 0xB1FD,
+ 0x997D, 0xE2C4,
+ 0x997F, 0xB6F6,
+ 0x9980, 0xE2C5,
+ 0x9981, 0xC4D9,
+ 0x9984, 0xE2C6,
+ 0x9985, 0xCFDA,
+ 0x9986, 0xB9DD,
+ 0x9987, 0xE2C7,
+ 0x9988, 0xC0A1,
+ 0x998A, 0xE2C8,
+ 0x998B, 0xB2F6,
+ 0x998D, 0xE2C9,
+ 0x998F, 0xC1F3,
+ 0x9990, 0xE2CA,
+ 0x9991, 0xE2CB,
+ 0x9992, 0xC2F8,
+ 0x9993, 0xE2CC,
+ 0x9994, 0xE2CD,
+ 0x9995, 0xE2CE,
+ 0x9996, 0xCAD7,
+ 0x9997, 0xD8B8,
+ 0x9998, 0xD9E5,
+ 0x9999, 0xCFE3,
+ 0x99A5, 0xF0A5,
+ 0x99A8, 0xDCB0,
+ 0x9A6C, 0xC2ED,
+ 0x9A6D, 0xD4A6,
+ 0x9A6E, 0xCDD4,
+ 0x9A6F, 0xD1B1,
+ 0x9A70, 0xB3DB,
+ 0x9A71, 0xC7FD,
+ 0x9A73, 0xB2B5,
+ 0x9A74, 0xC2BF,
+ 0x9A75, 0xE6E0,
+ 0x9A76, 0xCABB,
+ 0x9A77, 0xE6E1,
+ 0x9A78, 0xE6E2,
+ 0x9A79, 0xBED4,
+ 0x9A7A, 0xE6E3,
+ 0x9A7B, 0xD7A4,
+ 0x9A7C, 0xCDD5,
+ 0x9A7D, 0xE6E5,
+ 0x9A7E, 0xBCDD,
+ 0x9A7F, 0xE6E4,
+ 0x9A80, 0xE6E6,
+ 0x9A81, 0xE6E7,
+ 0x9A82, 0xC2EE,
+ 0x9A84, 0xBDBE,
+ 0x9A85, 0xE6E8,
+ 0x9A86, 0xC2E6,
+ 0x9A87, 0xBAA7,
+ 0x9A88, 0xE6E9,
+ 0x9A8A, 0xE6EA,
+ 0x9A8B, 0xB3D2,
+ 0x9A8C, 0xD1E9,
+ 0x9A8F, 0xBFA5,
+ 0x9A90, 0xE6EB,
+ 0x9A91, 0xC6EF,
+ 0x9A92, 0xE6EC,
+ 0x9A93, 0xE6ED,
+ 0x9A96, 0xE6EE,
+ 0x9A97, 0xC6AD,
+ 0x9A98, 0xE6EF,
+ 0x9A9A, 0xC9A7,
+ 0x9A9B, 0xE6F0,
+ 0x9A9C, 0xE6F1,
+ 0x9A9D, 0xE6F2,
+ 0x9A9E, 0xE5B9,
+ 0x9A9F, 0xE6F3,
+ 0x9AA0, 0xE6F4,
+ 0x9AA1, 0xC2E2,
+ 0x9AA2, 0xE6F5,
+ 0x9AA3, 0xE6F6,
+ 0x9AA4, 0xD6E8,
+ 0x9AA5, 0xE6F7,
+ 0x9AA7, 0xE6F8,
+ 0x9AA8, 0xB9C7,
+ 0x9AB0, 0xF7BB,
+ 0x9AB1, 0xF7BA,
+ 0x9AB6, 0xF7BE,
+ 0x9AB7, 0xF7BC,
+ 0x9AB8, 0xBAA1,
+ 0x9ABA, 0xF7BF,
+ 0x9ABC, 0xF7C0,
+ 0x9AC0, 0xF7C2,
+ 0x9AC1, 0xF7C1,
+ 0x9AC2, 0xF7C4,
+ 0x9AC5, 0xF7C3,
+ 0x9ACB, 0xF7C5,
+ 0x9ACC, 0xF7C6,
+ 0x9AD1, 0xF7C7,
+ 0x9AD3, 0xCBE8,
+ 0x9AD8, 0xB8DF,
+ 0x9ADF, 0xF7D4,
+ 0x9AE1, 0xF7D5,
+ 0x9AE6, 0xF7D6,
+ 0x9AEB, 0xF7D8,
+ 0x9AED, 0xF7DA,
+ 0x9AEF, 0xF7D7,
+ 0x9AF9, 0xF7DB,
+ 0x9AFB, 0xF7D9,
+ 0x9B03, 0xD7D7,
+ 0x9B08, 0xF7DC,
+ 0x9B0F, 0xF7DD,
+ 0x9B13, 0xF7DE,
+ 0x9B1F, 0xF7DF,
+ 0x9B23, 0xF7E0,
+ 0x9B2F, 0xDBCB,
+ 0x9B32, 0xD8AA,
+ 0x9B3B, 0xE5F7,
+ 0x9B3C, 0xB9ED,
+ 0x9B41, 0xBFFD,
+ 0x9B42, 0xBBEA,
+ 0x9B43, 0xF7C9,
+ 0x9B44, 0xC6C7,
+ 0x9B45, 0xF7C8,
+ 0x9B47, 0xF7CA,
+ 0x9B48, 0xF7CC,
+ 0x9B49, 0xF7CB,
+ 0x9B4D, 0xF7CD,
+ 0x9B4F, 0xCEBA,
+ 0x9B51, 0xF7CE,
+ 0x9B54, 0xC4A7,
+ 0x9C7C, 0xD3E3,
+ 0x9C7F, 0xF6CF,
+ 0x9C81, 0xC2B3,
+ 0x9C82, 0xF6D0,
+ 0x9C85, 0xF6D1,
+ 0x9C86, 0xF6D2,
+ 0x9C87, 0xF6D3,
+ 0x9C88, 0xF6D4,
+ 0x9C8B, 0xF6D6,
+ 0x9C8D, 0xB1AB,
+ 0x9C8E, 0xF6D7,
+ 0x9C90, 0xF6D8,
+ 0x9C91, 0xF6D9,
+ 0x9C92, 0xF6DA,
+ 0x9C94, 0xF6DB,
+ 0x9C95, 0xF6DC,
+ 0x9C9A, 0xF6DD,
+ 0x9C9B, 0xF6DE,
+ 0x9C9C, 0xCFCA,
+ 0x9C9E, 0xF6DF,
+ 0x9C9F, 0xF6E0,
+ 0x9CA0, 0xF6E1,
+ 0x9CA1, 0xF6E2,
+ 0x9CA2, 0xF6E3,
+ 0x9CA3, 0xF6E4,
+ 0x9CA4, 0xC0F0,
+ 0x9CA5, 0xF6E5,
+ 0x9CA6, 0xF6E6,
+ 0x9CA7, 0xF6E7,
+ 0x9CA8, 0xF6E8,
+ 0x9CA9, 0xF6E9,
+ 0x9CAB, 0xF6EA,
+ 0x9CAD, 0xF6EB,
+ 0x9CAE, 0xF6EC,
+ 0x9CB0, 0xF6ED,
+ 0x9CB1, 0xF6EE,
+ 0x9CB2, 0xF6EF,
+ 0x9CB3, 0xF6F0,
+ 0x9CB4, 0xF6F1,
+ 0x9CB5, 0xF6F2,
+ 0x9CB6, 0xF6F3,
+ 0x9CB7, 0xF6F4,
+ 0x9CB8, 0xBEA8,
+ 0x9CBA, 0xF6F5,
+ 0x9CBB, 0xF6F6,
+ 0x9CBC, 0xF6F7,
+ 0x9CBD, 0xF6F8,
+ 0x9CC3, 0xC8FA,
+ 0x9CC4, 0xF6F9,
+ 0x9CC5, 0xF6FA,
+ 0x9CC6, 0xF6FB,
+ 0x9CC7, 0xF6FC,
+ 0x9CCA, 0xF6FD,
+ 0x9CCB, 0xF6FE,
+ 0x9CCC, 0xF7A1,
+ 0x9CCD, 0xF7A2,
+ 0x9CCE, 0xF7A3,
+ 0x9CCF, 0xF7A4,
+ 0x9CD0, 0xF7A5,
+ 0x9CD3, 0xF7A6,
+ 0x9CD4, 0xF7A7,
+ 0x9CD5, 0xF7A8,
+ 0x9CD6, 0xB1EE,
+ 0x9CD7, 0xF7A9,
+ 0x9CD8, 0xF7AA,
+ 0x9CD9, 0xF7AB,
+ 0x9CDC, 0xF7AC,
+ 0x9CDD, 0xF7AD,
+ 0x9CDE, 0xC1DB,
+ 0x9CDF, 0xF7AE,
+ 0x9CE2, 0xF7AF,
+ 0x9E1F, 0xC4F1,
+ 0x9E20, 0xF0AF,
+ 0x9E21, 0xBCA6,
+ 0x9E22, 0xF0B0,
+ 0x9E23, 0xC3F9,
+ 0x9E25, 0xC5B8,
+ 0x9E26, 0xD1BB,
+ 0x9E28, 0xF0B1,
+ 0x9E29, 0xF0B2,
+ 0x9E2A, 0xF0B3,
+ 0x9E2B, 0xF0B4,
+ 0x9E2C, 0xF0B5,
+ 0x9E2D, 0xD1BC,
+ 0x9E2F, 0xD1EC,
+ 0x9E31, 0xF0B7,
+ 0x9E32, 0xF0B6,
+ 0x9E33, 0xD4A7,
+ 0x9E35, 0xCDD2,
+ 0x9E36, 0xF0B8,
+ 0x9E37, 0xF0BA,
+ 0x9E38, 0xF0B9,
+ 0x9E39, 0xF0BB,
+ 0x9E3A, 0xF0BC,
+ 0x9E3D, 0xB8EB,
+ 0x9E3E, 0xF0BD,
+ 0x9E3F, 0xBAE8,
+ 0x9E41, 0xF0BE,
+ 0x9E42, 0xF0BF,
+ 0x9E43, 0xBEE9,
+ 0x9E44, 0xF0C0,
+ 0x9E45, 0xB6EC,
+ 0x9E46, 0xF0C1,
+ 0x9E47, 0xF0C2,
+ 0x9E48, 0xF0C3,
+ 0x9E49, 0xF0C4,
+ 0x9E4A, 0xC8B5,
+ 0x9E4B, 0xF0C5,
+ 0x9E4C, 0xF0C6,
+ 0x9E4E, 0xF0C7,
+ 0x9E4F, 0xC5F4,
+ 0x9E51, 0xF0C8,
+ 0x9E55, 0xF0C9,
+ 0x9E57, 0xF0CA,
+ 0x9E58, 0xF7BD,
+ 0x9E5A, 0xF0CB,
+ 0x9E5B, 0xF0CC,
+ 0x9E5C, 0xF0CD,
+ 0x9E5E, 0xF0CE,
+ 0x9E63, 0xF0CF,
+ 0x9E64, 0xBAD7,
+ 0x9E66, 0xF0D0,
+ 0x9E67, 0xF0D1,
+ 0x9E68, 0xF0D2,
+ 0x9E69, 0xF0D3,
+ 0x9E6A, 0xF0D4,
+ 0x9E6B, 0xF0D5,
+ 0x9E6C, 0xF0D6,
+ 0x9E6D, 0xF0D8,
+ 0x9E70, 0xD3A5,
+ 0x9E71, 0xF0D7,
+ 0x9E73, 0xF0D9,
+ 0x9E7E, 0xF5BA,
+ 0x9E7F, 0xC2B9,
+ 0x9E82, 0xF7E4,
+ 0x9E87, 0xF7E5,
+ 0x9E88, 0xF7E6,
+ 0x9E8B, 0xF7E7,
+ 0x9E92, 0xF7E8,
+ 0x9E93, 0xC2B4,
+ 0x9E9D, 0xF7EA,
+ 0x9E9F, 0xF7EB,
+ 0x9EA6, 0xC2F3,
+ 0x9EB4, 0xF4F0,
+ 0x9EB8, 0xF4EF,
+ 0x9EBB, 0xC2E9,
+ 0x9EBD, 0xF7E1,
+ 0x9EBE, 0xF7E2,
+ 0x9EC4, 0xBBC6,
+ 0x9EC9, 0xD9E4,
+ 0x9ECD, 0xCAF2,
+ 0x9ECE, 0xC0E8,
+ 0x9ECF, 0xF0A4,
+ 0x9ED1, 0xBADA,
+ 0x9ED4, 0xC7AD,
+ 0x9ED8, 0xC4AC,
+ 0x9EDB, 0xF7EC,
+ 0x9EDC, 0xF7ED,
+ 0x9EDD, 0xF7EE,
+ 0x9EDF, 0xF7F0,
+ 0x9EE0, 0xF7EF,
+ 0x9EE2, 0xF7F1,
+ 0x9EE5, 0xF7F4,
+ 0x9EE7, 0xF7F3,
+ 0x9EE9, 0xF7F2,
+ 0x9EEA, 0xF7F5,
+ 0x9EEF, 0xF7F6,
+ 0x9EF9, 0xEDE9,
+ 0x9EFB, 0xEDEA,
+ 0x9EFC, 0xEDEB,
+ 0x9EFE, 0xF6BC,
+ 0x9F0B, 0xF6BD,
+ 0x9F0D, 0xF6BE,
+ 0x9F0E, 0xB6A6,
+ 0x9F10, 0xD8BE,
+ 0x9F13, 0xB9C4,
+ 0x9F17, 0xD8BB,
+ 0x9F19, 0xDCB1,
+ 0x9F20, 0xCAF3,
+ 0x9F22, 0xF7F7,
+ 0x9F2C, 0xF7F8,
+ 0x9F2F, 0xF7F9,
+ 0x9F37, 0xF7FB,
+ 0x9F39, 0xF7FA,
+ 0x9F3B, 0xB1C7,
+ 0x9F3D, 0xF7FC,
+ 0x9F3E, 0xF7FD,
+ 0x9F44, 0xF7FE,
+ 0x9F50, 0xC6EB,
+ 0x9F51, 0xECB4,
+ 0x9F7F, 0xB3DD,
+ 0x9F80, 0xF6B3,
+ 0x9F83, 0xF6B4,
+ 0x9F84, 0xC1E4,
+ 0x9F85, 0xF6B5,
+ 0x9F86, 0xF6B6,
+ 0x9F87, 0xF6B7,
+ 0x9F88, 0xF6B8,
+ 0x9F89, 0xF6B9,
+ 0x9F8A, 0xF6BA,
+ 0x9F8B, 0xC8A3,
+ 0x9F8C, 0xF6BB,
+ 0x9F99, 0xC1FA,
+ 0x9F9A, 0xB9A8,
+ 0x9F9B, 0xEDE8,
+ 0x9F9F, 0xB9EA,
+ 0x9FA0, 0xD9DF,
+ 0xFF01, 0xA3A1,
+ 0xFF02, 0xA3A2,
+ 0xFF03, 0xA3A3,
+ 0xFF04, 0xA1E7,
+ 0xFF05, 0xA3A5,
+ 0xFF06, 0xA3A6,
+ 0xFF07, 0xA3A7,
+ 0xFF08, 0xA3A8,
+ 0xFF09, 0xA3A9,
+ 0xFF0A, 0xA3AA,
+ 0xFF0B, 0xA3AB,
+ 0xFF0C, 0xA3AC,
+ 0xFF0D, 0xA3AD,
+ 0xFF0E, 0xA3AE,
+ 0xFF0F, 0xA3AF,
+ 0xFF10, 0xA3B0,
+ 0xFF11, 0xA3B1,
+ 0xFF12, 0xA3B2,
+ 0xFF13, 0xA3B3,
+ 0xFF14, 0xA3B4,
+ 0xFF15, 0xA3B5,
+ 0xFF16, 0xA3B6,
+ 0xFF17, 0xA3B7,
+ 0xFF18, 0xA3B8,
+ 0xFF19, 0xA3B9,
+ 0xFF1A, 0xA3BA,
+ 0xFF1B, 0xA3BB,
+ 0xFF1C, 0xA3BC,
+ 0xFF1D, 0xA3BD,
+ 0xFF1E, 0xA3BE,
+ 0xFF1F, 0xA3BF,
+ 0xFF20, 0xA3C0,
+ 0xFF21, 0xA3C1,
+ 0xFF22, 0xA3C2,
+ 0xFF23, 0xA3C3,
+ 0xFF24, 0xA3C4,
+ 0xFF25, 0xA3C5,
+ 0xFF26, 0xA3C6,
+ 0xFF27, 0xA3C7,
+ 0xFF28, 0xA3C8,
+ 0xFF29, 0xA3C9,
+ 0xFF2A, 0xA3CA,
+ 0xFF2B, 0xA3CB,
+ 0xFF2C, 0xA3CC,
+ 0xFF2D, 0xA3CD,
+ 0xFF2E, 0xA3CE,
+ 0xFF2F, 0xA3CF,
+ 0xFF30, 0xA3D0,
+ 0xFF31, 0xA3D1,
+ 0xFF32, 0xA3D2,
+ 0xFF33, 0xA3D3,
+ 0xFF34, 0xA3D4,
+ 0xFF35, 0xA3D5,
+ 0xFF36, 0xA3D6,
+ 0xFF37, 0xA3D7,
+ 0xFF38, 0xA3D8,
+ 0xFF39, 0xA3D9,
+ 0xFF3A, 0xA3DA,
+ 0xFF3B, 0xA3DB,
+ 0xFF3C, 0xA3DC,
+ 0xFF3D, 0xA3DD,
+ 0xFF3E, 0xA3DE,
+ 0xFF3F, 0xA3DF,
+ 0xFF40, 0xA3E0,
+ 0xFF41, 0xA3E1,
+ 0xFF42, 0xA3E2,
+ 0xFF43, 0xA3E3,
+ 0xFF44, 0xA3E4,
+ 0xFF45, 0xA3E5,
+ 0xFF46, 0xA3E6,
+ 0xFF47, 0xA3E7,
+ 0xFF48, 0xA3E8,
+ 0xFF49, 0xA3E9,
+ 0xFF4A, 0xA3EA,
+ 0xFF4B, 0xA3EB,
+ 0xFF4C, 0xA3EC,
+ 0xFF4D, 0xA3ED,
+ 0xFF4E, 0xA3EE,
+ 0xFF4F, 0xA3EF,
+ 0xFF50, 0xA3F0,
+ 0xFF51, 0xA3F1,
+ 0xFF52, 0xA3F2,
+ 0xFF53, 0xA3F3,
+ 0xFF54, 0xA3F4,
+ 0xFF55, 0xA3F5,
+ 0xFF56, 0xA3F6,
+ 0xFF57, 0xA3F7,
+ 0xFF58, 0xA3F8,
+ 0xFF59, 0xA3F9,
+ 0xFF5A, 0xA3FA,
+ 0xFF5B, 0xA3FB,
+ 0xFF5C, 0xA3FC,
+ 0xFF5D, 0xA3FD,
+ 0xFF5E, 0xA1AB,
+ 0xFFE0, 0xA1E9,
+ 0xFFE1, 0xA1EA,
+ 0xFFE3, 0xA3FE,
+ 0xFFE5, 0xA3A4
+};
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-INTERNAL int gb2312_wctomb_zint(unsigned int* r, unsigned int wc);
-INTERNAL int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata);
-INTERNAL int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte);
-INTERNAL void gb2312_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata, int full_multibyte);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* GB2312_H */
/* Attempts to apply encoding rules from sections 7.2.5.5.1 to 7.2.5.5.3
* of ISO/IEC 24724:2011 (same as sections 5.4.1 to 5.4.3 of ISO/IEC 24723:2010) */
-INTERNAL int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]) {
+int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]) {
int i, d1, d2;
int mode = *p_mode;
int last_digit = 0; /* Set to odd remaining digit at end if any */
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
- INTERNAL int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]);
+ extern int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]);
#ifdef __cplusplus
}
#endif /* __cplusplus */
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include "common.h"
#include <math.h>
#include <malloc.h>
#endif
-#define SSET "0123456789ABCDEF"
+#define SSET "0123456789ABCDEF"
/* Index of transparent color, -1 for no transparent color
* This might be set into a variable if transparency is activated as an option
*/
#define TRANSPARENT_INDEX (-1)
+/* Used bit depth, may be changed for bigger pallet in future */
+#define DESTINATION_IMAGE_BITS 1
+#include <stdlib.h>
+
typedef struct s_statestruct {
unsigned char * pOut;
unsigned char *pIn;
unsigned short NodeAxon[4096];
unsigned short NodeNext[4096];
unsigned char NodePix[4096];
- unsigned char colourCode[10];
- unsigned char colourPaletteIndex[10];
- int colourCount;
} statestruct;
-/* Transform a Pixel to a lzw colourmap index and move to next pixel.
- * All colour values are listed in colourCode with corresponding palette index
- */
-static unsigned char NextPaletteIndex(statestruct *pState)
-{
- unsigned char pixelColour;
- int colourIndex;
- pixelColour = *(pState->pIn);
- (pState->pIn)++;
- (pState->InLen)--;
- for (colourIndex = 0; colourIndex < pState->colourCount; colourIndex++) {
- if (pixelColour == pState->colourCode[colourIndex])
- return pState->colourPaletteIndex[colourIndex];
-
- }
- return 0; /* Not reached */
-}
-
-
static char BufferNextByte(statestruct *pState) {
(pState->OutPosCur)++;
/* Check if this position is a byte count position
}
if (pState->OutPosCur >= pState->OutLength)
return 1;
-
(pState->pOut)[pState->OutPosCur] = 0x00;
return 0;
}
/* The remaining bits of CodeIn fit in the current byte. */
if (CodeBits > 0) {
(pState->pOut)[pState->OutPosCur] |= (unsigned char)
- (CodeIn << (8 - pState->OutBitsFree));
+ (CodeIn << (8 - pState->OutBitsFree));
pState->OutBitsFree -= CodeBits;
}
return 0;
}
}
-static unsigned short FindPixelOutlet(statestruct *pState, unsigned short HeadNode, unsigned char Byte) {
+unsigned short FindPixelOutlet(statestruct *pState, unsigned short HeadNode, unsigned char Byte) {
unsigned short Outlet;
Outlet = (pState->NodeAxon)[HeadNode];
if ((pState->InLen) == 0)
return AddCodeToBuffer(pState, UpNode, CodeBits);
- *pPixelValueCur = NextPaletteIndex(pState);
+ *pPixelValueCur = (*(pState->pIn)) - '0';
+ (pState->pIn)++;
+ (pState->InLen)--;
/* Follow the string table and the data stream to the end of the longest string that has a code */
while (0 != (DownNode = FindPixelOutlet(pState, UpNode, *pPixelValueCur))) {
UpNode = DownNode;
if ((pState->InLen) == 0)
return AddCodeToBuffer(pState, UpNode, CodeBits);
- *pPixelValueCur = NextPaletteIndex(pState);
+ *pPixelValueCur = (*(pState->pIn)) - '0';
+ (pState->pIn)++;
+ (pState->InLen)--;
}
/* Submit 'UpNode' which is the code of the longest string */
if (AddCodeToBuffer(pState, UpNode, CodeBits))
return 1;
}
-static int gif_lzw(statestruct *pState, int paletteBitSize) {
+int gif_lzw(unsigned char *pOut, int OutLength, unsigned char *pIn, int InLen) {
unsigned char PixelValueCur;
unsigned char CodeBits;
unsigned short Pos;
+ statestruct State;
+ State.pIn = pIn;
+ State.InLen = InLen;
+ State.pOut = pOut;
+ State.OutLength = OutLength;
// > Get first data byte
- if (pState->InLen == 0)
+ if (State.InLen == 0)
return 0;
- PixelValueCur = NextPaletteIndex(pState);
- /* Number of bits per data item (=pixel)
- * We need at least a value of 2, otherwise the cc and eoi code consumes
- * the whole string table
- */
- if (paletteBitSize == 1)
- paletteBitSize = 2;
-
- /* initial size of compression codes */
- CodeBits = paletteBitSize+1;
- pState->ClearCode = (1 << paletteBitSize);
- pState->FreeCode = pState->ClearCode+2;
- pState->OutBitsFree = 8;
- pState->OutPosCur = -1;
- pState->fByteCountByteSet = 0;
-
- if (BufferNextByte(pState))
+
+ PixelValueCur = (unsigned char) ((*(State.pIn)) - '0');
+ (State.pIn)++;
+ (State.InLen)--;
+ CodeBits = 3;
+ State.ClearCode = 4;
+ State.FreeCode = 6;
+ State.OutBitsFree = 8;
+ State.OutPosCur = -1;
+ State.fByteCountByteSet = 0;
+
+ if (BufferNextByte(&State))
return 0;
- for (Pos = 0; Pos < pState->ClearCode; Pos++)
- (pState->NodePix)[Pos] = (unsigned char) Pos;
+ for (Pos = 0; Pos < State.ClearCode; Pos++)
+ State.NodePix[Pos] = (unsigned char) Pos;
- FlushStringTable(pState);
+ FlushStringTable(&State);
/* Write what the GIF specification calls the "code size". */
- (pState->pOut)[pState->OutPosCur] = paletteBitSize;
+ (State.pOut)[State.OutPosCur] = 2;
/* Reserve first bytecount byte */
- if (BufferNextByte(pState))
+ if (BufferNextByte(&State))
return 0;
- pState->OutByteCountPos = pState->OutPosCur;
- if (BufferNextByte(pState))
+ State.OutByteCountPos = State.OutPosCur;
+ if (BufferNextByte(&State))
return 0;
- pState->fByteCountByteSet = 1;
+ State.fByteCountByteSet = 1;
/* Submit one 'ClearCode' as the first code */
- if (AddCodeToBuffer(pState, pState->ClearCode, CodeBits))
+ if (AddCodeToBuffer(&State, State.ClearCode, CodeBits))
return 0;
for (;;) {
char Res;
/* generate and save the next code, which may consist of multiple input pixels. */
- Res = NextCode(pState, &PixelValueCur, CodeBits);
+ Res = NextCode(&State, &PixelValueCur, CodeBits);
if (Res < 0)
return 0;
//* Check for end of data stream */
if (!Res) {
/* submit 'eoi' as the last item of the code stream */
- if (AddCodeToBuffer(pState, (unsigned short) (pState->ClearCode + 1), CodeBits))
+ if (AddCodeToBuffer(&State, (unsigned short) (State.ClearCode + 1), CodeBits))
return 0;
- pState->fByteCountByteSet = 0;
- if (pState->OutBitsFree < 8) {
- if (BufferNextByte(pState))
+ State.fByteCountByteSet = 0;
+ if (State.OutBitsFree < 8) {
+ if (BufferNextByte(&State))
return 0;
}
// > Update last bytecount byte;
- if (pState->OutByteCountPos < pState->OutPosCur) {
- (pState->pOut)[pState->OutByteCountPos] = (unsigned char) (pState->OutPosCur - pState->OutByteCountPos - 1);
+ if (State.OutByteCountPos < State.OutPosCur) {
+ (State.pOut)[State.OutByteCountPos] = (unsigned char) (State.OutPosCur - State.OutByteCountPos - 1);
}
- pState->OutPosCur++;
- return pState->OutPosCur;
+ State.OutPosCur++;
+ return State.OutPosCur;
}
/* Check for currently last code */
- if (pState->FreeCode == (1U << CodeBits))
+ if (State.FreeCode == (1U << CodeBits))
CodeBits++;
- pState->FreeCode++;
+ State.FreeCode++;
/* Check for full stringtable */
- if (pState->FreeCode == 0xfff) {
- FlushStringTable(pState);
- if (AddCodeToBuffer(pState, pState->ClearCode, CodeBits))
+ if (State.FreeCode == 0xfff) {
+ FlushStringTable(&State);
+ if (AddCodeToBuffer(&State, State.ClearCode, CodeBits))
return 0;
- CodeBits = (unsigned char) (1 + paletteBitSize);
- pState->FreeCode = (unsigned short) (pState->ClearCode + 2);
+ CodeBits = (unsigned char) (1 + 2);
+ State.FreeCode = (unsigned short) (State.ClearCode + 2);
}
}
}
-/*
- * Called function to save in gif format
- */
-INTERNAL int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
- unsigned char outbuf[10];
+int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
+ char outbuf[10];
FILE *gif_file;
unsigned short usTemp;
int byte_out;
- int colourCount;
- unsigned char paletteRGB[10][3];
- int paletteCount, paletteCountCur, paletteIndex;
- int pixelIndex;
- int paletteBitSize;
- int paletteSize;
- statestruct State;
-
- unsigned char backgroundColourIndex;
- unsigned char RGBCur[3];
-
- int colourIndex;
-
- int fFound;
-
- unsigned char pixelColour;
-
- /* Allow for overhead of 4 == code size + byte count + overflow byte + zero terminator */
- unsigned int lzoutbufSize = symbol->bitmap_height * symbol->bitmap_width + 4;
#ifdef _MSC_VER
char * lzwoutbuf;
#endif
#ifndef _MSC_VER
- char lzwoutbuf[lzoutbufSize];
+ char lzwoutbuf[symbol->bitmap_height * symbol->bitmap_width];
#else
- lzwoutbuf = (char *) _alloca(lzoutbufSize);
+ lzwoutbuf = (char *) _alloca((symbol->bitmap_height * symbol->bitmap_width) * sizeof (char));
#endif /* _MSC_VER */
/* Open output file in binary mode */
return ZINT_ERROR_FILE_ACCESS;
}
}
-
- /*
- * Build a table of the used palette items.
- * Currently, there are the following 10 colour codes:
- * '0': standard background
- * '1': standard foreground
- * 'W': white
- * 'C': cyan
- * 'B': blue
- * 'M': magenta
- * 'R': red
- * 'Y': yellow
- * 'G': green
- * 'K': black
- * '0' and '1' may be identical to one of the other values
- *
- * A data structure is set up as follows:
- * state.colourCode: list of colour codes
- * paletteIndex: palette index of the corresponding colour code
- * There are colourCount entries in the upper lists.
- * paletteRGB: RGB value at the palette position
- * There are paletteCount entries.
- * This value is smaller to colourCount, if multiple colour codes have the
- * same RGB value and point to the same palette value.
- * Example:
- * 0 1 W K are present. 0 is equal to white, while 1 is blue
- * The resulting tables are:
- * paletteItem: ['0']=0 (white), ['1']=1 (blue), ['W']=0 (white),
- * ['K']=2 (black)
- * Thus, there are 4 colour codes and 3 palette entries.
-
+ /*ImageWidth = 2;
+ ImageHeight = 2;
+ rotated_bitmap[0] = 1;
+ rotated_bitmap[1] = 1;
+ rotated_bitmap[2] = 0;
+ rotated_bitmap[3] = 0;
*/
- colourCount = 0;
- paletteCount = 0;
- /* loop over all pixels */
- for ( pixelIndex = 0; pixelIndex < (symbol->bitmap_height * symbol->bitmap_width); pixelIndex++)
- {
- fFound = 0;
- /* get pixel colour code */
- pixelColour = pixelbuf[pixelIndex];
- /* look, if colour code is already in colour list */
- for (colourIndex = 0; colourIndex < colourCount; colourIndex++) {
- if ((State.colourCode)[colourIndex] == pixelColour) {
- fFound = 1;
- break;
- }
- }
- /* If colour is already present, go to next colour code */
- if (fFound)
- continue;
-
- /* Colour code not present - add colour code */
- /* Get RGB value */
- switch (pixelColour) {
- case '0': /* standard background */
- RGBCur[0] = (unsigned char) (16 * ctoi(symbol->bgcolour[0])) + ctoi(symbol->bgcolour[1]);
- RGBCur[1] = (unsigned char) (16 * ctoi(symbol->bgcolour[2])) + ctoi(symbol->bgcolour[3]);
- RGBCur[2] = (unsigned char) (16 * ctoi(symbol->bgcolour[4])) + ctoi(symbol->bgcolour[5]);
- break;
- case '1': /* standard foreground */
- RGBCur[0] = (unsigned char) (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
- RGBCur[1] = (unsigned char) (16 * ctoi(symbol->fgcolour[2])) + ctoi(symbol->fgcolour[3]);
- RGBCur[2] = (unsigned char) (16 * ctoi(symbol->fgcolour[4])) + ctoi(symbol->fgcolour[5]);
- break;
- case 'W': /* white */
- RGBCur[0] = 255; RGBCur[1] = 255; RGBCur[2] = 255;
- break;
- case 'C': /* cyan */
- RGBCur[0] = 0; RGBCur[1] = 255; RGBCur[2] = 255;
- break;
- case 'B': /* blue */
- RGBCur[0] = 0; RGBCur[1] = 0; RGBCur[2] = 255;
- break;
- case 'M': /* magenta */
- RGBCur[0] = 255; RGBCur[1] = 0; RGBCur[2] = 255;
- break;
- case 'R': /* red */
- RGBCur[0] = 255; RGBCur[1] = 0; RGBCur[2] = 0;
- break;
- case 'Y': /* yellow */
- RGBCur[0] = 255; RGBCur[1] = 255; RGBCur[2] = 0;
- break;
- case 'G': /* green */
- RGBCur[0] = 0; RGBCur[1] = 255; RGBCur[2] = 0;
- break;
- case 'K': /* black */
- RGBCur[0] = 0; RGBCur[1] = 0; RGBCur[2] = 0;
- break;
- default: /* error case - return */
- strcpy(symbol->errtxt, "611: unknown pixel colour");
- return ZINT_ERROR_INVALID_DATA;
- }
- /* Search, if RGB value is already present */
- fFound = 0;
- for (paletteIndex = 0; paletteIndex < paletteCount; paletteIndex++) {
- if (RGBCur[0] == paletteRGB[paletteIndex][0]
- && RGBCur[1] == paletteRGB[paletteIndex][1]
- && RGBCur[2] == paletteRGB[paletteIndex][2])
- {
- fFound = 1;
- break;
- }
- }
- /* RGB not present, add it */
- if (!fFound) {
- paletteIndex = paletteCount;
- paletteRGB[paletteIndex][0] = RGBCur[0];
- paletteRGB[paletteIndex][1] = RGBCur[1];
-
- paletteRGB[paletteIndex][2] = RGBCur[2];
-
- paletteCount++;
- }
- /* Add palette index to current colour code */
- (State.colourCode)[colourCount] = pixelColour;
- (State.colourPaletteIndex)[colourCount] = paletteIndex;
- colourCount++;
- }
- State.colourCount = colourCount;
-
- /* find palette bit size from palette size*/
-
- /* 1,2 -> 1, 3,4 ->2, 5,6,7,8->3 */
- paletteBitSize = 0;
- paletteCountCur = paletteCount-1;
- while (paletteCountCur != 0) {
- paletteBitSize++;
- paletteCountCur >>= 1;
- }
- /* Minimum is 1 */
- if (paletteBitSize == 0)
- paletteBitSize = 1;
-
- /* palette size 2 ^ bit size */
- paletteSize = 1<<paletteBitSize;
/* GIF signature (6) */
memcpy(outbuf, "GIF87a", 6);
if (TRANSPARENT_INDEX != -1)
outbuf[4] = '9';
-
fwrite(outbuf, 6, 1, gif_file);
/* Screen Descriptor (7) */
/* Screen Width */
outbuf[3] = (unsigned char) ((0xff00 & usTemp) / 0x100);
/* write ImageBits-1 to the three least significant bits of byte 5 of
* the Screen Descriptor
- * Bits 76543210
- * 1 : Global colour map
- * 111 : 8 bit colour depth of the palette
- * 0 : Not ordered in decreasing importance
- * xxx : palette bit zize - 1
- */
- outbuf[4] = (unsigned char) (0xf0 | (0x7 & (paletteBitSize - 1)));
-
- /*
- * Background colour index
- * Default to 0. If colour code 0 or K is present, it is used as index
*/
-
- backgroundColourIndex = 0;
- for (colourIndex = 0; colourIndex < colourCount; colourIndex++) {
- if ((State.colourCode)[colourIndex] == '0' || (State.colourCode)[colourIndex] == 'W') {
- backgroundColourIndex = (State.colourPaletteIndex)[colourIndex];
- break;
- }
- }
- outbuf[5] = backgroundColourIndex;
+ outbuf[4] = (unsigned char) (0xf0 | (0x7 & (DESTINATION_IMAGE_BITS - 1)));
+ /* Background color = colortable index 0 */
+ outbuf[5] = 0x00;
/* Byte 7 must be 0x00 */
outbuf[6] = 0x00;
fwrite(outbuf, 7, 1, gif_file);
- /* Global Color Table (paletteSize*3) */
- fwrite(paletteRGB, 3*paletteCount, 1, gif_file);
- /* add unused palette items to fill palette size */
- for (paletteIndex = paletteCount; paletteIndex < paletteSize; paletteIndex++) {
- unsigned char RGBCur[3] = {0,0,0};
- fwrite(RGBCur, 3, 1, gif_file);
- }
+ /* Global Color Table (6) */
+ /* RGB 0 color */
+ outbuf[0] = (unsigned char) (16 * ctoi(symbol->bgcolour[0])) + ctoi(symbol->bgcolour[1]);
+ outbuf[1] = (unsigned char) (16 * ctoi(symbol->bgcolour[2])) + ctoi(symbol->bgcolour[3]);
+ outbuf[2] = (unsigned char) (16 * ctoi(symbol->bgcolour[4])) + ctoi(symbol->bgcolour[5]);
+ /* RGB 1 color */
+ outbuf[3] = (unsigned char) (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
+ outbuf[4] = (unsigned char) (16 * ctoi(symbol->fgcolour[2])) + ctoi(symbol->fgcolour[3]);
+ outbuf[5] = (unsigned char) (16 * ctoi(symbol->fgcolour[4])) + ctoi(symbol->fgcolour[5]);
+ fwrite(outbuf, 6, 1, gif_file);
/* Graphic control extension (8) */
/* A graphic control extension block is used for overlay gifs.
* information on the local color table.
* There is no local color table if its most significant bit is reset.
*/
- outbuf[9] = 0x00;
+ outbuf[9] = (unsigned char) (0 | (0x7 & (DESTINATION_IMAGE_BITS - 1)));
fwrite(outbuf, 10, 1, gif_file);
- /* prepare state array */
- State.pIn = (unsigned char *) pixelbuf;
- State.InLen = symbol->bitmap_height * symbol->bitmap_width;
- State.pOut = (unsigned char *) lzwoutbuf;
- State.OutLength = lzoutbufSize;
-
/* call lzw encoding */
- byte_out = gif_lzw(&State, paletteBitSize);
+ byte_out = gif_lzw(
+ (unsigned char *) lzwoutbuf,
+ symbol->bitmap_height * symbol->bitmap_width,
+ (unsigned char *) pixelbuf,
+ symbol->bitmap_height * symbol->bitmap_width);
if (byte_out <= 0) {
fclose(gif_file);
return ZINT_ERROR_MEMORY;
/* gridmtx.c - Grid Matrix
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-/* This file implements Grid Matrix as specified in
+/* This file impliments Grid Matrix as specified in
AIM Global Document Number AIMD014 Rev. 1.63 Revised 9 Dec 2008 */
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
#include "gridmtx.h"
#include "gb2312.h"
-/* define_mode() stuff */
-
-/* Bits multiplied by this for costs, so as to be whole integer divisible by 2 and 3 */
-#define GM_MULT 6
-
-static const char numeral_nondigits[] = " +-.,"; /* Non-digit numeral set, excluding EOL (carriage return/linefeed) */
-
-/* Whether in numeral or not. If in numeral, *p_numeral_end is set to position after numeral, and *p_numeral_cost is set to per-numeral cost */
-static int in_numeral(const unsigned int gbdata[], const size_t length, const unsigned int posn, unsigned int* p_numeral_end, unsigned int* p_numeral_cost) {
- unsigned int i, digit_cnt, nondigit, nondigit_posn;
-
- if (posn < *p_numeral_end) {
- return 1;
- }
-
- /* Attempt to calculate the average 'cost' of using numeric mode in number of bits (times GM_MULT) */
+int number_lat(int gbdata[], const size_t length, const size_t position) {
+ /* Attempt to calculate the 'cost' of using numeric mode from a given position in number of bits */
/* Also ensures that numeric mode is not selected when it cannot be used: for example in
a string which has "2.2.0" (cannot have more than one non-numeric character for each
block of three numeric characters) */
- for (i = posn, digit_cnt = 0, nondigit = 0, nondigit_posn = 0; i < length && i < posn + 4 && digit_cnt < 3; i++) {
- if (gbdata[i] >= '0' && gbdata[i] <= '9') {
- digit_cnt++;
- } else if (strchr(numeral_nondigits, gbdata[i])) {
- if (nondigit) {
- break;
- }
- nondigit = 1;
- nondigit_posn = i;
- } else if (i < length - 1 && gbdata[i] == 13 && gbdata[i + 1] == 10) {
- if (nondigit) {
- break;
+ size_t sp;
+ int numb = 0, nonum = 0;
+ int tally = 0;
+
+ sp = position;
+
+ do {
+ int done = 0;
+
+ if ((gbdata[sp] >= '0') && (gbdata[sp] <= '9')) {
+ numb++;
+ done = 1;
+ }
+ switch (gbdata[sp]) {
+ case ' ':
+ case '+':
+ case '-':
+ case '.':
+ case ',':
+ nonum++;
+ done = 1;
+ }
+ if ((sp + 1) < length) {
+ if ((gbdata[sp] == 0x13) && (gbdata[sp + 1] == 0x10)) {
+ nonum++;
+ done = 1;
+ sp++;
}
- i++;
- nondigit = 2;
- nondigit_posn = i;
+ }
+
+ if (done == 0) {
+ tally += 80;
} else {
- break;
+ if (numb == 3) {
+ if (nonum == 0) {
+ tally += 10;
+ }
+ if (nonum == 1) {
+ tally += 20;
+ }
+ if (nonum > 1) {
+ tally += 80;
+ }
+ numb = 0;
+ nonum = 0;
+ }
}
+
+ sp++;
+ } while ((sp < length) && (sp <= (position + 8)));
+
+ if (numb == 0) {
+ tally += 80;
}
- if (digit_cnt == 0) { /* Must have at least one digit */
- *p_numeral_end = 0;
- return 0;
+
+ if (numb > 1) {
+ if (nonum == 0) {
+ tally += 10;
+ }
+ if (nonum == 1) {
+ tally += 20;
+ }
+ if (nonum > 1) {
+ tally += 80;
+ }
}
- if (nondigit && nondigit_posn == i - 1) { /* Non-digit can't be at end */
- nondigit = 0;
+
+ return tally;
+}
+
+static int seek_forward(int gbdata[], const size_t length, const size_t position, int current_mode) {
+ /* In complete contrast to the method recommended in Annex D of the ANSI standard this
+ code uses a look-ahead test in the same manner as Data Matrix. This decision was made
+ because the "official" algorithm does not provide clear methods for dealing with all
+ possible combinations of input data */
+
+ int number_count, byte_count, mixed_count, upper_count, lower_count, chinese_count;
+ int best_mode;
+ size_t sp;
+ int best_count, last = -1;
+ int debug = 0;
+
+ if (gbdata[position] > 0xff) {
+ return GM_CHINESE;
}
- *p_numeral_end = posn + digit_cnt + nondigit;
- /* Calculate per-numeral cost where 120 == (10 + 10) * GM_MULT, 60 == 10 * GM_MULT */
- if (digit_cnt == 3) {
- *p_numeral_cost = nondigit == 2 ? 24 /* (120 / 5) */ : nondigit == 1 ? 30 /* (120 / 4) */ : 20 /* (60 / 3) */;
- } else if (digit_cnt == 2) {
- *p_numeral_cost = nondigit == 2 ? 30 /* (120 / 4) */ : nondigit == 1 ? 40 /* (120 / 3) */ : 30 /* (60 / 2) */;
- } else {
- *p_numeral_cost = nondigit == 2 ? 40 /* (120 / 3) */ : nondigit == 1 ? 60 /* (120 / 2) */ : 60 /* (60 / 1) */;
+
+ switch (current_mode) {
+ case GM_CHINESE:
+ number_count = 13;
+ byte_count = 13;
+ mixed_count = 13;
+ upper_count = 13;
+ lower_count = 13;
+ chinese_count = 0;
+ break;
+ case GM_NUMBER:
+ number_count = 0;
+ byte_count = 10;
+ mixed_count = 10;
+ upper_count = 10;
+ lower_count = 10;
+ chinese_count = 10;
+ break;
+ case GM_LOWER:
+ number_count = 5;
+ byte_count = 7;
+ mixed_count = 7;
+ upper_count = 5;
+ lower_count = 0;
+ chinese_count = 5;
+ break;
+ case GM_UPPER:
+ number_count = 5;
+ byte_count = 7;
+ mixed_count = 7;
+ upper_count = 0;
+ lower_count = 5;
+ chinese_count = 5;
+ break;
+ case GM_MIXED:
+ number_count = 10;
+ byte_count = 10;
+ mixed_count = 0;
+ upper_count = 10;
+ lower_count = 10;
+ chinese_count = 10;
+ break;
+ case GM_BYTE:
+ number_count = 4;
+ byte_count = 0;
+ mixed_count = 4;
+ upper_count = 4;
+ lower_count = 4;
+ chinese_count = 4;
+ break;
+ default: /* Start of symbol */
+ number_count = 4;
+ byte_count = 4;
+ mixed_count = 4;
+ upper_count = 4;
+ lower_count = 4;
+ chinese_count = 4;
}
- return 1;
-}
-/* Encoding modes */
-#define GM_CHINESE 'H'
-#define GM_NUMBER 'N'
-#define GM_LOWER 'L'
-#define GM_UPPER 'U'
-#define GM_MIXED 'M'
-#define GM_BYTE 'B'
-/* Note Control is a submode of Lower, Upper and Mixed modes */
-
-/* Indexes into mode_types array */
-#define GM_H 0 /* Chinese (Hanzi) */
-#define GM_N 1 /* Numeral */
-#define GM_L 2 /* Lower case */
-#define GM_U 3 /* Upper case */
-#define GM_M 4 /* Mixed */
-#define GM_B 5 /* Byte */
-
-#define GM_NUM_MODES 6
-
-/* Initial mode costs */
-static unsigned int head_costs[GM_NUM_MODES] = {
-/* H N (+pad prefix) L U M B (+byte count) */
- 4 * GM_MULT, (4 + 2) * GM_MULT, 4 * GM_MULT, 4 * GM_MULT, 4 * GM_MULT, (4 + 9) * GM_MULT
-};
-
-static unsigned int* gm_head_costs(unsigned int state[]) {
- (void)state; /* Unused */
- return head_costs;
-}
+ for (sp = position; (sp < length) && (sp <= (position + 8)); sp++) {
-/* Cost of switching modes from k to j - see AIMD014 Rev. 1.63 Table 9 – Type conversion codes */
-static unsigned int gm_switch_cost(unsigned int state[], const int k, const int j) {
- static const unsigned int switch_costs[GM_NUM_MODES][GM_NUM_MODES] = {
- /* H N L U M B */
- /*H*/ { 0, (13 + 2) * GM_MULT, 13 * GM_MULT, 13 * GM_MULT, 13 * GM_MULT, (13 + 9) * GM_MULT },
- /*N*/ { 10 * GM_MULT, 0, 10 * GM_MULT, 10 * GM_MULT, 10 * GM_MULT, (10 + 9) * GM_MULT },
- /*L*/ { 5 * GM_MULT, (5 + 2) * GM_MULT, 0, 5 * GM_MULT, 7 * GM_MULT, (7 + 9) * GM_MULT },
- /*U*/ { 5 * GM_MULT, (5 + 2) * GM_MULT, 5 * GM_MULT, 0, 7 * GM_MULT, (7 + 9) * GM_MULT },
- /*M*/ { 10 * GM_MULT, (10 + 2) * GM_MULT, 10 * GM_MULT, 10 * GM_MULT, 0, (10 + 9) * GM_MULT },
- /*B*/ { 4 * GM_MULT, (4 + 2) * GM_MULT, 4 * GM_MULT, 4 * GM_MULT, 4 * GM_MULT, 0 },
- };
-
- (void)state; /* Unused */
- return switch_costs[k][j];
-}
+ int done = 0;
-/* Final end-of-data cost - see AIMD014 Rev. 1.63 Table 9 – Type conversion codes */
-static unsigned int gm_eod_cost(unsigned int state[], const int k) {
- static const unsigned int eod_costs[GM_NUM_MODES] = {
- /* H N L U M B */
- 13 * GM_MULT, 10 * GM_MULT, 5 * GM_MULT, 5 * GM_MULT, 10 * GM_MULT, 4 * GM_MULT
- };
+ if (gbdata[sp] >= 0xff) {
+ byte_count += 17;
+ mixed_count += 23;
+ upper_count += 18;
+ lower_count += 18;
+ chinese_count += 13;
+ done = 1;
+ }
- (void)state; /* Unused */
- return eod_costs[k];
-}
+ if ((gbdata[sp] >= 'a') && (gbdata[sp] <= 'z')) {
+ byte_count += 8;
+ mixed_count += 6;
+ upper_count += 10;
+ lower_count += 5;
+ chinese_count += 13;
+ done = 1;
+ }
-/* Calculate cost of encoding current character */
-static void gm_cur_cost(unsigned int state[], const unsigned int gbdata[], const size_t length, const int i, char* char_modes, unsigned int prev_costs[], unsigned int cur_costs[]) {
- int cm_i = i * GM_NUM_MODES;
- int double_byte, space, numeric, lower, upper, control, double_digit, eol;
- unsigned int* p_numeral_end = &state[0];
- unsigned int* p_numeral_cost = &state[1];
- unsigned int* p_byte_count = &state[2];
-
- double_byte = gbdata[i] > 0xFF;
- space = gbdata[i] == ' ';
- numeric = gbdata[i] >= '0' && gbdata[i] <= '9';
- lower = gbdata[i] >= 'a' && gbdata[i] <= 'z';
- upper = gbdata[i] >= 'A' && gbdata[i] <= 'Z';
- control = !space && !numeric && !lower && !upper && gbdata[i] < 0x7F; /* Exclude DEL */
- double_digit = i < (int) length - 1 && numeric && gbdata[i + 1] >= '0' && gbdata[i + 1] <= '9';
- eol = i < (int) length - 1 && gbdata[i] == 13 && gbdata[i + 1] == 10;
-
- /* Hanzi mode can encode anything */
- cur_costs[GM_H] = prev_costs[GM_H] + (double_digit || eol ? 39 : 78); /* (6.5 : 13) * GM_MULT */
- char_modes[cm_i + GM_H] = GM_CHINESE;
-
- /* Byte mode can encode anything */
- if (*p_byte_count == 512 || (double_byte && *p_byte_count == 511)) {
- cur_costs[GM_B] = head_costs[GM_B];
- if (double_byte && *p_byte_count == 511) {
- cur_costs[GM_B] += 48; /* 8 * GM_MULT */
- double_byte = 0; /* Splitting double-byte so mark as single */
+ if ((gbdata[sp] >= 'A') && (gbdata[sp] <= 'Z')) {
+ byte_count += 8;
+ mixed_count += 6;
+ upper_count += 5;
+ lower_count += 10;
+ chinese_count += 13;
+ done = 1;
}
- *p_byte_count = 0;
- }
- cur_costs[GM_B] += prev_costs[GM_B] + (double_byte ? 96 : 48); /* (16 : 8) * GM_MULT */
- char_modes[cm_i + GM_B] = GM_BYTE;
- *p_byte_count += double_byte ? 2 : 1;
- if (in_numeral(gbdata, length, i, p_numeral_end, p_numeral_cost)) {
- cur_costs[GM_N] = prev_costs[GM_N] + *p_numeral_cost;
- char_modes[cm_i + GM_N] = GM_NUMBER;
- }
+ if ((gbdata[sp] >= '0') && (gbdata[sp] <= '9')) {
+ byte_count += 8;
+ mixed_count += 6;
+ upper_count += 8;
+ lower_count += 8;
+ chinese_count += 13;
+ done = 1;
+ }
- if (control) {
- cur_costs[GM_L] = prev_costs[GM_L] + 78; /* (7 + 6) * GM_MULT */
- char_modes[cm_i + GM_L] = GM_LOWER;
- cur_costs[GM_U] = prev_costs[GM_U] + 78; /* (7 + 6) * GM_MULT */
- char_modes[cm_i + GM_U] = GM_UPPER;
- cur_costs[GM_M] = prev_costs[GM_M] + 96; /* (10 + 6) * GM_MULT */
- char_modes[cm_i + GM_M] = GM_MIXED;
- } else {
- if (lower || space) {
- cur_costs[GM_L] = prev_costs[GM_L] + 30; /* 5 * GM_MULT */
- char_modes[cm_i + GM_L] = GM_LOWER;
+ if (gbdata[sp] == ' ') {
+ byte_count += 8;
+ mixed_count += 6;
+ upper_count += 5;
+ lower_count += 5;
+ chinese_count += 13;
+ done = 1;
}
- if (upper || space) {
- cur_costs[GM_U] = prev_costs[GM_U] + 30; /* 5 * GM_MULT */
- char_modes[cm_i + GM_U] = GM_UPPER;
+
+ if (done == 0) {
+ /* Control character */
+ byte_count += 8;
+ mixed_count += 16;
+ upper_count += 13;
+ lower_count += 13;
+ chinese_count += 13;
}
- if (numeric || lower || upper || space) {
- cur_costs[GM_M] = prev_costs[GM_M] + 36; /* 6 * GM_MULT */
- char_modes[cm_i + GM_M] = GM_MIXED;
+
+ if (gbdata[sp] >= 0x7f) {
+ mixed_count += 20;
+ upper_count += 20;
+ lower_count += 20;
}
}
-}
-/* Calculate optimized encoding modes */
-static void define_mode(char* mode, const unsigned int gbdata[], const size_t length, const int debug) {
- static const char mode_types[] = { GM_CHINESE, GM_NUMBER, GM_LOWER, GM_UPPER, GM_MIXED, GM_BYTE }; /* Must be in same order as GM_H etc */
- unsigned int state[3] = { 0 /*numeral_end*/, 0 /*numeral_cost*/, 0 /*byte_count*/ };
+ /* Adjust for <end of line> */
+ for (sp = position; (sp < (length - 1)) && (sp <= (position + 7)); sp++) {
+ if ((gbdata[sp] == 0x13) && (gbdata[sp + 1] == 0x10)) {
+ chinese_count -= 13;
+ }
+ }
+
+ /* Adjust for double digits */
+ for (sp = position; (sp < (length - 1)) && (sp <= (position + 7)); sp++) {
+ if (sp != last) {
+ if (((gbdata[sp] >= '0') && (gbdata[sp] <= '9')) && ((gbdata[sp + 1] >= '0') && (gbdata[sp + 1] <= '9'))) {
+ chinese_count -= 13;
+ last = (int)(sp + 1);
+ }
+ }
+ }
+
+ /* Numeric mode is more complex */
+ number_count += number_lat(gbdata, length, position);
+
+ if (debug) {
+ printf("C %d / B %d / M %d / U %d / L %d / N %d\n", chinese_count, byte_count, mixed_count, upper_count, lower_count, number_count);
+ }
+
+ best_count = chinese_count;
+ best_mode = GM_CHINESE;
+
+ if (byte_count <= best_count) {
+ best_count = byte_count;
+ best_mode = GM_BYTE;
+ }
+
+ if (mixed_count <= best_count) {
+ best_count = mixed_count;
+ best_mode = GM_MIXED;
+ }
+
+ if (upper_count <= best_count) {
+ best_count = upper_count;
+ best_mode = GM_UPPER;
+ }
+
+ if (lower_count <= best_count) {
+ best_count = lower_count;
+ best_mode = GM_LOWER;
+ }
+
+ if (number_count <= best_count) {
+ best_count = number_count;
+ best_mode = GM_NUMBER;
+ }
- pn_define_mode(mode, gbdata, length, debug, state, mode_types, GM_NUM_MODES, gm_head_costs, gm_switch_cost, gm_eod_cost, gm_cur_cost);
+ return best_mode;
}
/* Add the length indicator for byte encoded blocks */
static void add_byte_count(char binary[], const size_t byte_count_posn, const int byte_count) {
- /* AIMD014 6.3.7: "Let L be the number of bytes of input data to be encoded in the 8-bit binary data set.
- * First output (L-1) as a 9-bit binary prefix to record the number of bytes..." */
- bin_append_posn(byte_count - 1, 9, binary, byte_count_posn);
+ int p;
+
+ for (p = 0; p < 8; p++) {
+ if (byte_count & (0x100 >> p)) {
+ binary[byte_count_posn + p] = '0';
+ } else {
+ binary[byte_count_posn + p] = '1';
+ }
+ }
}
/* Add a control character to the data stream */
-static void add_shift_char(char binary[], int shifty, int debug) {
- int i;
+void add_shift_char(char binary[], int shifty) {
+ int i, debug = 0;
int glyph = 0;
for (i = 0; i < 64; i++) {
if (shift_set[i] == shifty) {
glyph = i;
- break;
}
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("SHIFT [%d] ", glyph);
}
bin_append(glyph, 6, binary);
}
-static int gm_encode(unsigned int gbdata[], const size_t length, char binary[], const int reader, const int eci, int debug) {
+static int gm_encode(int gbdata[], const size_t length, char binary[],const int reader,const int eci, int debug) {
/* Create a binary stream representation of the input data.
7 sets are defined - Chinese characters, Numerals, Lower case letters, Upper case letters,
Mixed numerals and latters, Control characters and 8-bit binary data */
- unsigned int sp;
- int current_mode, last_mode;
- unsigned int glyph = 0;
+ int sp, current_mode, last_mode, glyph = 0;
int c1, c2, done;
int p = 0, ppos;
int numbuf[3], punt = 0;
size_t number_pad_posn, byte_count_posn = 0;
int byte_count = 0;
int shift;
-#ifndef _MSC_VER
- char mode[length];
-#else
- char* mode = (char*) _alloca(length);
-#endif
strcpy(binary, "");
}
}
- define_mode(mode, gbdata, length, debug);
-
do {
- int next_mode = mode[sp];
+ int next_mode = seek_forward(gbdata, length, sp, current_mode);
if (next_mode != current_mode) {
switch (current_mode) {
}
break;
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
switch (next_mode) {
case GM_CHINESE: printf("CHIN ");
break;
c1 = (gbdata[sp] & 0xff00) >> 8;
c2 = gbdata[sp] & 0xff;
- if ((c1 >= 0xa1) && (c1 <= 0xa9)) {
+ if ((c1 >= 0xa0) && (c1 <= 0xa9)) {
glyph = (0x60 * (c1 - 0xa1)) + (c2 - 0xa0);
- } else if ((c1 >= 0xb0) && (c1 <= 0xf7)) {
+ }
+ if ((c1 >= 0xb0) && (c1 <= 0xf7)) {
glyph = (0x60 * (c1 - 0xb0 + 9)) + (c2 - 0xa0);
}
- done = 1; /* GB 2312 always within above ranges */
+ done = 1;
}
if (!(done)) {
if (sp != (length - 1)) {
- if ((gbdata[sp] == 13) && (gbdata[sp + 1] == 10)) {
+ if ((gbdata[sp] == 0x13) && (gbdata[sp + 1] == 0x10)) {
/* End of Line */
glyph = 7776;
sp++;
- done = 1;
}
+ done = 1;
}
}
if (!(done)) {
/* Two digits */
glyph = 8033 + (10 * (gbdata[sp] - '0')) + (gbdata[sp + 1] - '0');
sp++;
- done = 1;
}
}
}
glyph = 7777 + gbdata[sp];
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("[%d] ", glyph);
}
do {
if ((gbdata[sp] >= '0') && (gbdata[sp] <= '9')) {
numbuf[p] = gbdata[sp];
+ sp++;
p++;
- } else if (strchr(numeral_nondigits, gbdata[sp])) {
- if (ppos != -1) {
- break;
- }
- punt = gbdata[sp];
- ppos = p;
- } else if (sp < (length - 1) && (gbdata[sp] == 13) && (gbdata[sp + 1] == 10)) {
- /* <end of line> */
- if (ppos != -1) {
+ }
+ switch (gbdata[sp]) {
+ case ' ':
+ case '+':
+ case '-':
+ case '.':
+ case ',':
+ punt = gbdata[sp];
+ sp++;
+ ppos = p;
break;
+ }
+ if (sp < (length - 1)) {
+ if ((gbdata[sp] == 0x13) && (gbdata[sp + 1] == 0x10)) {
+ /* <end of line> */
+ punt = gbdata[sp];
+ sp += 2;
+ ppos = p;
}
- punt = gbdata[sp];
- sp++;
- ppos = p;
- } else {
- break;
}
- sp++;
- } while ((p < 3) && (sp < length) && mode[sp] == GM_NUMBER);
+ } while ((p < 3) && (sp < length));
if (ppos != -1) {
switch (punt) {
break;
case ',': glyph = 12;
break;
- case 13: glyph = 15;
+ case 0x13: glyph = 15;
break;
}
glyph += ppos;
glyph += 1000;
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("[%d] ", glyph);
}
}
glyph = (100 * (numbuf[0] - '0')) + (10 * (numbuf[1] - '0')) + (numbuf[2] - '0');
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("[%d] ", glyph);
}
byte_count_posn = strlen(binary);
strcat(binary, "LLLLLLLLL");
}
- glyph = gbdata[sp];
- if (byte_count == 512 || (glyph > 0xFF && byte_count == 511)) {
+ if (byte_count == 512) {
/* Maximum byte block size is 512 bytes. If longer is needed then start a new block */
- if (glyph > 0xFF && byte_count == 511) { /* Split double-byte */
- bin_append(glyph >> 8, 8, binary);
- glyph &= 0xFF;
- byte_count++;
- }
add_byte_count(binary, byte_count_posn, byte_count);
bin_append(7, 4, binary);
byte_count_posn = strlen(binary);
byte_count = 0;
}
- if (debug & ZINT_DEBUG_PRINT) {
+ glyph = gbdata[sp];
+ if (debug) {
printf("[%d] ", glyph);
}
- bin_append(glyph, glyph > 0xFF ? 16 : 8, binary);
+ bin_append(glyph, 8, binary);
sp++;
byte_count++;
- if (glyph > 0xFF) {
- byte_count++;
- }
break;
case GM_MIXED:
if (shift == 0) {
/* Mixed Mode character */
glyph = posn(EUROPIUM, gbdata[sp]);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("[%d] ", glyph);
}
} else {
/* Shift Mode character */
bin_append(1014, 10, binary); /* shift indicator */
- add_shift_char(binary, gbdata[sp], debug);
+ add_shift_char(binary, gbdata[sp]);
}
sp++;
if (shift == 0) {
/* Upper Case character */
glyph = posn("ABCDEFGHIJKLMNOPQRSTUVWXYZ ", gbdata[sp]);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("[%d] ", glyph);
}
} else {
/* Shift Mode character */
bin_append(125, 7, binary); /* shift indicator */
- add_shift_char(binary, gbdata[sp], debug);
+ add_shift_char(binary, gbdata[sp]);
}
sp++;
if (shift == 0) {
/* Lower Case character */
glyph = posn("abcdefghijklmnopqrstuvwxyz ", gbdata[sp]);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("[%d] ", glyph);
}
} else {
/* Shift Mode character */
bin_append(125, 7, binary); /* shift indicator */
- add_shift_char(binary, gbdata[sp], debug);
+ add_shift_char(binary, gbdata[sp]);
}
sp++;
/* Add padding bits if required */
p = 7 - (strlen(binary) % 7);
- if (p % 7) {
- bin_append(0, p, binary);
+ if (p == 7) {
+ p = 0;
}
+ bin_append(0, p, binary);
if (strlen(binary) > 9191) {
return ZINT_ERROR_TOO_LONG;
return 0;
}
-static void gm_add_ecc(const char binary[], const size_t data_posn, const int layers, const int ecc_level, unsigned char word[]) {
+static void gm_add_ecc(const char binary[], const size_t data_posn, const int layers, const int ecc_level, int word[]) {
int data_cw, i, j, wp, p;
int n1, b1, n2, b2, e1, b3, e2;
int block_size, ecc_size;
- unsigned char data[1320], block[130];
+ int data[1320], block[130];
unsigned char data_block[115], ecc_block[70];
data_cw = gm_data_codewords[((layers - 1) * 5) + (ecc_level - 1)];
data[i] = 0;
}
- /* Convert from binary stream to 7-bit codewords */
- for (i = 0; i < (int) data_posn; i++) {
+ /* Convert from binary sream to 7-bit codewords */
+ for (i = 0; i < data_posn; i++) {
for (p = 0; p < 7; p++) {
if (binary[i * 7 + p] == '1') {
data[i] += (0x40 >> p);
}
}
-static void place_macromodule(char grid[], int x, int y, int word1, int word2, int size) {
+void place_macromodule(char grid[], int x, int y, int word1, int word2, int size) {
int i, j;
i = (x * 6) + 1;
}
}
-static void place_data_in_grid(unsigned char word[], char grid[], int modules, int size) {
+void place_data_in_grid(int word[], char grid[], int modules, int size) {
int x, y, macromodule, offset;
offset = 13 - ((modules - 1) / 2);
}
/* Place the layer ID into each macromodule */
-static void place_layer_id(char* grid, int size, int layers, int modules, int ecc_level) {
+void place_layer_id(char* grid, int size, int layers, int modules, int ecc_level) {
int i, j, layer, start, stop;
#ifndef _MSC_VER
}
}
-INTERNAL int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
+int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int size, modules, error_number;
int auto_layers, min_layers, layers, auto_ecc_level, min_ecc_level, ecc_level;
int x, y, i;
- int full_multibyte;
char binary[9300];
int data_cw, input_latch = 0;
- unsigned char word[1460];
- int data_max, reader = 0;
+ int word[1460], data_max, reader = 0;
#ifndef _MSC_VER
- unsigned int gbdata[length + 1];
+ int utfdata[length + 1];
+ int gbdata[length + 1];
#else
char* grid;
- unsigned int* gbdata = (unsigned int *) _alloca((length + 1) * sizeof (unsigned int));
+ int* utfdata = (int *) _alloca((length + 1) * sizeof (int));
+ int* gbdata = (int *) _alloca((length + 1) * sizeof (int));
#endif
for (i = 0; i < 1460; i++) {
word[i] = 0;
}
- full_multibyte = symbol->option_3 == ZINT_FULL_MULTIBYTE; /* If set use Hanzi mode in DATA_MODE or for single-byte Latin */
-
- if ((symbol->input_mode & 0x07) == DATA_MODE) {
- gb2312_cpy(source, &length, gbdata, full_multibyte);
+ if ((symbol->input_mode == DATA_MODE) || (symbol->eci != 0)) {
+ for (i = 0; i < length; i++) {
+ gbdata[i] = (int) source[i];
+ }
} else {
- int done = 0;
- if (symbol->eci != 29) { /* Unless ECI 29 (GB) */
- /* Try single byte (Latin) conversion first */
- int error_number = gb2312_utf8tosb(symbol->eci && symbol->eci <= 899 ? symbol->eci : 3, source, &length, gbdata, full_multibyte);
- if (error_number == 0) {
- done = 1;
- } else if (symbol->eci && symbol->eci <= 899) {
- strcpy(symbol->errtxt, "575: Invalid characters in input data");
- return error_number;
- }
+ /* Convert Unicode input to GB-2312 */
+ error_number = utf8toutf16(symbol, source, utfdata, &length);
+ if (error_number != 0) {
+ return error_number;
}
- if (!done) {
- /* Try GB 2312 (EUC-CN) */
- int error_number = gb2312_utf8tomb(symbol, source, &length, gbdata);
- if (error_number != 0) {
- return error_number;
+
+ for (i = 0; i < length; i++) {
+ if (utfdata[i] <= 0xff) {
+ gbdata[i] = utfdata[i];
+ } else {
+ int j = 0;
+ int glyph = 0;
+ do {
+ if (gb2312_lookup[j * 2] == utfdata[i]) {
+ glyph = gb2312_lookup[(j * 2) + 1];
+ }
+ j++;
+ } while ((j < 7445) && (glyph == 0));
+ if (glyph == 0) {
+ strcpy(symbol->errtxt, "530: Invalid character in input data");
+ return ZINT_ERROR_INVALID_DATA;
+ }
+ gbdata[i] = glyph;
}
}
}
}
}
layers = auto_layers;
-
- if ((symbol->option_2 >= 1) && (symbol->option_2 <= 13)) {
- input_latch = 1;
- if (symbol->option_2 >= min_layers) {
- layers = symbol->option_2;
- } else {
- strcpy(symbol->errtxt, "534: Input data too long for selected symbol size");
- return ZINT_ERROR_TOO_LONG;
- }
- }
-
auto_ecc_level = 3;
if (layers == 1) {
auto_ecc_level = 5;
if ((layers == 2) || (layers == 3)) {
auto_ecc_level = 4;
}
- ecc_level = auto_ecc_level;
-
min_ecc_level = 1;
if (layers == 1) {
min_ecc_level = 4;
}
- if (layers == 2) {
+ if ((layers == 2) || (layers == 3)) {
min_ecc_level = 2;
}
+ ecc_level = auto_ecc_level;
- if ((symbol->option_1 >= 1) && (symbol->option_1 <= 5)) {
- if (symbol->option_1 >= min_ecc_level) {
- ecc_level = symbol->option_1;
+ if ((symbol->option_2 >= 1) && (symbol->option_2 <= 13)) {
+ input_latch = 1;
+ if (symbol->option_2 > min_layers) {
+ layers = symbol->option_2;
} else {
- ecc_level = min_ecc_level;
+ strcpy(symbol->errtxt, "534: Input data too long for selected symbol size");
+ return ZINT_ERROR_TOO_LONG;
}
}
- if (data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)]) {
- if (input_latch && ecc_level > min_ecc_level) { /* If layers user-specified (option_2), try reducing ECC level first */
- do {
- ecc_level--;
- } while ((data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)]) && (ecc_level > min_ecc_level));
+
+ if (input_latch == 1) {
+ auto_ecc_level = 3;
+ if (layers == 1) {
+ auto_ecc_level = 5;
+ }
+ if ((layers == 2) || (layers == 3)) {
+ auto_ecc_level = 4;
}
- while (data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)] && (layers < 13)) {
+ ecc_level = auto_ecc_level;
+ if (data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)]) {
layers++;
}
- while (data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)] && ecc_level > 1) { /* ECC min level 1 for layers > 2 */
- ecc_level--;
+ }
+
+ if (input_latch == 0) {
+ if ((symbol->option_1 >= 1) && (symbol->option_1 <= 5)) {
+ if (symbol->option_1 > min_ecc_level) {
+ ecc_level = symbol->option_1;
+ } else {
+ ecc_level = min_ecc_level;
+ }
+ }
+ if (data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)]) {
+ do {
+ layers++;
+ } while ((data_cw > gm_data_codewords[(5 * (layers - 1)) + (ecc_level - 1)]) && (layers <= 13));
}
}
}
gm_add_ecc(binary, data_cw, layers, ecc_level, word);
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, word, data_cw);
-#endif
size = 6 + (layers * 12);
modules = 1 + (layers * 2);
return 0;
}
+
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
+
+#define GM_NUMBER 1
+#define GM_LOWER 2
+#define GM_UPPER 3
+#define GM_MIXED 4
+#define GM_CONTROL 5
+#define GM_BYTE 6
+#define GM_CHINESE 7
#define EUROPIUM "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
/* vim: set ts=4 sw=4 et : */
#include <string.h>
+#include <stdlib.h>
#include <stdio.h>
#ifdef _MSC_VER
#include <malloc.h>
to be bulletproof, nor does it report very accurately what problem was found
or where, but should prevent some of the more common encoding errors */
-static void itostr(char ai_string[], int ai_value) {
+void itostr(char ai_string[], int ai_value) {
int thou, hund, ten, unit;
char temp[2];
strcat(ai_string, ")");
}
-INTERNAL int gs1_verify(struct zint_symbol *symbol, const unsigned char source[], const size_t src_len, char reduced[]) {
+int gs1_verify(struct zint_symbol *symbol, const unsigned char source[], const size_t src_len, char reduced[]) {
int i, j, last_ai, ai_latch;
char ai_string[7]; /* 6 char max "(NNNN)" */
int bracket_level, max_bracket_level, ai_length, max_ai_length, min_ai_length;
#endif
/* Detect extended ASCII characters */
- for (i = 0; i < (int) src_len; i++) {
+ for (i = 0; i < src_len; i++) {
if (source[i] >= 128) {
strcpy(symbol->errtxt, "250: Extended ASCII characters are not supported by GS1");
return ZINT_ERROR_INVALID_DATA;
strcpy(symbol->errtxt, "251: Control characters are not supported by GS1");
return ZINT_ERROR_INVALID_DATA;
}
- if (source[i] == 127) {
- strcpy(symbol->errtxt, "263: DEL characters are not supported by GS1");
- return ZINT_ERROR_INVALID_DATA;
- }
}
if (source[0] != '[') {
min_ai_length = 5;
j = 0;
ai_latch = 0;
- for (i = 0; i < (int) src_len; i++) {
+ for (i = 0; i < src_len; i++) {
ai_length += j;
if (((j == 1) && (source[i] != ']')) && ((source[i] < '0') || (source[i] > '9'))) {
ai_latch = 1;
}
ai_count = 0;
- for (i = 1; i < (int) src_len; i++) {
+ for (i = 1; i < src_len; i++) {
if (source[i - 1] == '[') {
ai_location[ai_count] = i;
j = 0;
data_length[i] = 0;
do {
data_length[i]++;
- } while ((source[data_location[i] + data_length[i] - 1] != '[') && (data_location[i] + data_length[i] <= (int) src_len));
+ } while ((source[data_location[i] + data_length[i] - 1] != '[') && (data_location[i] + data_length[i] <= src_len));
data_length[i]--;
}
}
if (ai_value[i] == 253) { // GDTI
- if ((data_length[i] < 13) || (data_length[i] > 30)) {
+ if ((data_length[i] < 14) || (data_length[i] > 30)) {
error_latch = 1;
} else {
error_latch = 0;
}
if (ai_value[i] == 255) { // GCN
- if ((data_length[i] < 13) || (data_length[i] > 25)) {
+ if ((data_length[i] < 14) || (data_length[i] > 25)) {
error_latch = 1;
} else {
error_latch = 0;
j = 0;
last_ai = 0;
ai_latch = 1;
- for (i = 0; i < (int) src_len; i++) {
+ for (i = 0; i < src_len; i++) {
if ((source[i] != '[') && (source[i] != ']')) {
reduced[j++] = source[i];
}
/* hanxin.c - Han Xin Code
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2019 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-/* This code attempts to implement Han Xin Code according to ISO/IEC 20830 (draft 2019-10-10) (previously AIMD-015:2010 (Rev 0.8)) */
+/* This code attempts to implement Han Xin Code according to AIMD-015:2010 (Rev 0.8) */
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
#include "assert.h"
/* Find which submode to use for a text character */
-static int getsubmode(unsigned int input) {
+int getsubmode(char input) {
int submode = 2;
if ((input >= '0') && (input <= '9')) {
return submode;
}
-/* Return length of terminator for encoding mode */
-static int terminator_length(char mode) {
- int result = 0;
-
- switch (mode) {
- case 'n':
- result = 10;
- break;
- case 't':
- result = 6;
- break;
- case '1':
- case '2':
- result = 12;
- break;
- case 'd':
- result = 15;
- break;
- }
-
- return result;
-}
-
-/* Calculate the length of the binary string */
-static int calculate_binlength(char mode[], unsigned int source[], const size_t length, int eci) {
+/* Calculate the approximate length of the binary string */
+static int calculate_binlength(char mode[], int source[], const size_t length, int eci) {
size_t i;
- char lastmode = '\0';
+ char lastmode = 't';
int est_binlen = 0;
int submode = 1;
- int numeric_run = 0;
if (eci != 0) {
- est_binlen += 4;
- if (eci <= 127) {
- est_binlen += 8;
- } else if ((eci >= 128) && (eci <= 16383)) {
- est_binlen += 16;
- } else {
- est_binlen += 24;
- }
+ est_binlen += 12;
}
i = 0;
do {
- if (mode[i] != lastmode) {
- if (i > 0) {
- est_binlen += terminator_length(lastmode);
- }
- /* GB 4-byte has indicator for each character (and no terminator) so not included here */
- /* Region1/Region2 have special terminator to go directly into each other's mode so not included here */
- if (mode[i] != 'f' || ((mode[i] == '1' && lastmode == '2') || (mode[i] == '2' && lastmode == '1'))) {
- est_binlen += 4;
- }
- if (mode[i] == 'b') { /* Byte mode has byte count (and no terminator) */
- est_binlen += 13;
- }
- lastmode = mode[i];
- submode = 1;
- numeric_run = 0;
- }
switch (mode[i]) {
case 'n':
- if (numeric_run % 3 == 0) {
- est_binlen += 10;
+ if (lastmode != 'n') {
+ est_binlen += 14;
+ lastmode = 'n';
}
- numeric_run++;
+ est_binlen += 4;
break;
case 't':
- if (getsubmode(source[i]) != submode) {
+ if (lastmode != 't') {
+ est_binlen += 10;
+ lastmode = 't';
+ submode = 1;
+ }
+ if (getsubmode((char) source[i]) != submode) {
est_binlen += 6;
- submode = getsubmode(source[i]);
+ submode = getsubmode((char) source[i]);
}
est_binlen += 6;
break;
case 'b':
- est_binlen += source[i] > 0xFF ? 16 : 8;
+ if (lastmode != 'b') {
+ est_binlen += 17;
+ lastmode = 'b';
+ }
+ est_binlen += 8;
break;
case '1':
+ if (lastmode != '1') {
+ est_binlen += 16;
+ lastmode = '1';
+ }
+ est_binlen += 12;
+ break;
case '2':
+ if (lastmode != '2') {
+ est_binlen += 16;
+ lastmode = '2';
+ }
est_binlen += 12;
break;
case 'd':
+ if (lastmode != 'd') {
+ est_binlen += 16;
+ lastmode = 'd';
+ }
est_binlen += 15;
break;
case 'f':
- est_binlen += 25;
+ if (lastmode != 'f') {
+ est_binlen += 4;
+ lastmode = 'f';
+ }
+ est_binlen += 21;
i++;
break;
}
i++;
} while (i < length);
- est_binlen += terminator_length(lastmode);
-
return est_binlen;
}
-static int isRegion1(unsigned int glyph) {
+int isRegion1(int glyph) {
int first_byte, second_byte;
int valid = 0;
return valid;
}
-static int isRegion2(unsigned int glyph) {
+int isRegion2(int glyph) {
int first_byte, second_byte;
int valid = 0;
return valid;
}
-static int isDoubleByte(unsigned int glyph) {
+int isDoubleByte(int glyph) {
int first_byte, second_byte;
int valid = 0;
return valid;
}
-static int isFourByte(unsigned int glyph, unsigned int glyph2) {
+int isFourByte(int glyph, int glyph2) {
int first_byte, second_byte;
int third_byte, fourth_byte;
int valid = 0;
return valid;
}
+/* Calculate mode switching */
+static void hx_define_mode(char mode[], int source[], const size_t length) {
+ size_t i;
+ char lastmode = 't';
+
+ i = 0;
+ do {
+ int done = 0;
+
+ if (isRegion1(source[i])) {
+ mode[i] = '1';
+ done = 1;
+ i++;
+ }
+
+ if ((done == 0) && (isRegion2(source[i]))) {
+ mode[i] = '2';
+ done = 1;
+ i++;
+ }
+
+ if ((done == 0) && (isDoubleByte(source[i]))) {
+ mode[i] = 'd';
+ done = 1;
+ i++;
+ }
+
+ if ((done == 0) && (i < length - 1)) {
+ if (isFourByte(source[i], source[i + 1])) {
+ mode[i] = 'f';
+ mode[i + 1] = 'f';
+ done = 1;
+ i += 2;
+ }
+ }
+
+ if (done == 0) {
+ if ((source[i] >= '0') && (source[i] <= '9')) {
+ mode[i] = 'n';
+ if (lastmode != 'n') {
+ lastmode = 'n';
+ }
+ } else {
+ if ((source[i] <= 127) && ((source[i] <= 27) || (source[i] >= 32))) {
+ mode[i] = 't';
+ if (lastmode != 't') {
+ lastmode = 't';
+ }
+ } else {
+ mode[i] = 'b';
+ if (lastmode != 'b') {
+ lastmode = 'b';
+ }
+ }
+ }
+ i++;
+ }
+ } while (i < length);
+ mode[length] = '\0';
+}
+
/* Convert Text 1 sub-mode character to encoding value, as given in table 3 */
-static int lookup_text1(unsigned int input) {
- int encoding_value = -1;
+int lookup_text1(char input) {
+ int encoding_value = 0;
if ((input >= '0') && (input <= '9')) {
encoding_value = input - '0';
}
/* Convert Text 2 sub-mode character to encoding value, as given in table 4 */
-static int lookup_text2(unsigned int input) {
- int encoding_value = -1;
+int lookup_text2(char input) {
+ int encoding_value = 0;
- if (input <= 27) {
+ if ((input >= 0) && (input <= 27)) {
encoding_value = input;
}
encoding_value = input - ' ' + 28;
}
- if ((input >= ':') && (input <= '@')) {
- encoding_value = input - ':' + 44;
- }
-
if ((input >= '[') && (input <= 96)) {
encoding_value = input - '[' + 51;
}
return encoding_value;
}
-/* hx_define_mode() stuff */
-
-/* Bits multiplied by this for costs, so as to be whole integer divisible by 2 and 3 */
-#define HX_MULT 6
-
-/* Whether in numeric or not. If in numeric, *p_end is set to position after numeric, and *p_cost is set to per-numeric cost */
-static int in_numeric(const unsigned int gbdata[], const size_t length, const unsigned int posn, unsigned int* p_end, unsigned int* p_cost) {
- unsigned int i, digit_cnt;
-
- if (posn < *p_end) {
- return 1;
- }
-
- /* Attempt to calculate the average 'cost' of using numeric mode in number of bits (times HX_MULT) */
- for (i = posn; i < length && i < posn + 4 && gbdata[i] >= '0' && gbdata[i] <= '9'; i++);
-
- digit_cnt = i - posn;
-
- if (digit_cnt == 0) {
- *p_end = 0;
- return 0;
- }
- *p_end = i;
- *p_cost = digit_cnt == 1 ? 60 /* 10 * HX_MULT */ : digit_cnt == 2 ? 30 /* (10 / 2) * HX_MULT */ : 20 /* (10 / 3) * HX_MULT */;
- return 1;
-}
-
-/* Whether in four-byte or not. If in four-byte, *p_fourbyte is set to position after four-byte, and *p_fourbyte_cost is set to per-position cost */
-static int in_fourbyte(const unsigned int gbdata[], const size_t length, const unsigned int posn, unsigned int* p_end, unsigned int* p_cost) {
- if (posn < *p_end) {
- return 1;
- }
-
- if (posn == length - 1 || !isFourByte(gbdata[posn], gbdata[posn + 1])) {
- *p_end = 0;
- return 0;
- }
- *p_end = posn + 2;
- *p_cost = 75; /* ((4 + 21) / 2) * HX_MULT */
- return 1;
-}
-
-/* Indexes into mode_types array */
-#define HX_N 0 /* Numeric */
-#define HX_T 1 /* Text */
-#define HX_B 2 /* Binary */
-#define HX_1 3 /* Common Chinese Region One */
-#define HX_2 4 /* Common Chinese Region Two */
-#define HX_D 5 /* GB 18030 2-byte Region */
-#define HX_F 6 /* GB 18030 4-byte Region */
-/* Note Unicode, GS1 and URI modes not implemented */
-
-#define HX_NUM_MODES 7
-
-/* Initial mode costs */
-static unsigned int* hx_head_costs(unsigned int state[]) {
- static unsigned int head_costs[HX_NUM_MODES] = {
- /* N T B 1 2 D F */
- 4 * HX_MULT, 4 * HX_MULT, (4 + 13) * HX_MULT, 4 * HX_MULT, 4 * HX_MULT, 4 * HX_MULT, 0
- };
-
- (void)state; /* Unused */
- return head_costs;
-}
-
-/* Cost of switching modes from k to j */
-static unsigned int hx_switch_cost(unsigned int state[], const int k, const int j) {
- static const unsigned int switch_costs[HX_NUM_MODES][HX_NUM_MODES] = {
- /* N T B 1 2 D F */
- /*N*/ { 0, (10 + 4) * HX_MULT, (10 + 4 + 13) * HX_MULT, (10 + 4) * HX_MULT, (10 + 4) * HX_MULT, (10 + 4) * HX_MULT, 10 * HX_MULT },
- /*T*/ { (6 + 4) * HX_MULT, 0, (6 + 4 + 13) * HX_MULT, (6 + 4) * HX_MULT, (6 + 4) * HX_MULT, (6 + 4) * HX_MULT, 6 * HX_MULT },
- /*B*/ { 4 * HX_MULT, 4 * HX_MULT, 0, 4 * HX_MULT, 4 * HX_MULT, 4 * HX_MULT, 0 },
- /*1*/ { (12 + 4) * HX_MULT, (12 + 4) * HX_MULT, (12 + 4 + 13) * HX_MULT, 0, 12 * HX_MULT, (12 + 4) * HX_MULT, 12 * HX_MULT },
- /*2*/ { (12 + 4) * HX_MULT, (12 + 4) * HX_MULT, (12 + 4 + 13) * HX_MULT, 12 * HX_MULT, 0, (12 + 4) * HX_MULT, 12 * HX_MULT },
- /*D*/ { (15 + 4) * HX_MULT, (15 + 4) * HX_MULT, (15 + 4 + 13) * HX_MULT, (15 + 4) * HX_MULT, (15 + 4) * HX_MULT, 0, 15 * HX_MULT },
- /*F*/ { 4 * HX_MULT, 4 * HX_MULT, (4 + 13) * HX_MULT, 4 * HX_MULT, 4 * HX_MULT, 4 * HX_MULT, 0 },
- };
-
- (void)state; /* Unused */
- return switch_costs[k][j];
-}
-
-/* Final end-of-data costs */
-static unsigned int hx_eod_cost(unsigned int state[], const int k) {
- static const unsigned int eod_costs[HX_NUM_MODES] = {
- /* N T B 1 2 D F */
- 10 * HX_MULT, 6 * HX_MULT, 0, 12 * HX_MULT, 12 * HX_MULT, 15 * HX_MULT, 0
- };
-
- (void)state; /* Unused */
- return eod_costs[k];
-}
-
-/* Calculate cost of encoding character */
-static void hx_cur_cost(unsigned int state[], const unsigned int gbdata[], const size_t length, const int i, char* char_modes, unsigned int prev_costs[], unsigned int cur_costs[]) {
- int cm_i = i * HX_NUM_MODES;
- int text1, text2;
- unsigned int* p_numeric_end = &state[0];
- unsigned int* p_numeric_cost = &state[1];
- unsigned int* p_text_submode = &state[2];
- unsigned int* p_fourbyte_end = &state[3];
- unsigned int* p_fourbyte_cost = &state[4];
-
- if (in_numeric(gbdata, length, i, p_numeric_end, p_numeric_cost)) {
- cur_costs[HX_N] = prev_costs[HX_N] + *p_numeric_cost;
- char_modes[cm_i + HX_N] = 'n';
- }
-
- text1 = lookup_text1(gbdata[i]) != -1;
- text2 = lookup_text2(gbdata[i]) != -1;
-
- if (text1 || text2) {
- if ((*p_text_submode == 1 && text2) || (*p_text_submode == 2 && text1)) {
- cur_costs[HX_T] = prev_costs[HX_T] + 72; /* (6 + 6) * HX_MULT */
- *p_text_submode = text2 ? 2 : 1;
- } else {
- cur_costs[HX_T] = prev_costs[HX_T] + 36; /* 6 * HX_MULT */
- }
- char_modes[cm_i + HX_T] = 't';
- } else {
- *p_text_submode = 1;
- }
-
- /* Binary mode can encode anything */
- cur_costs[HX_B] = prev_costs[HX_B] + (gbdata[i] > 0xFF ? 96 : 48); /* (16 : 8) * HX_MULT */
- char_modes[cm_i + HX_B] = 'b';
-
- if (isRegion1(gbdata[i])) {
- cur_costs[HX_1] = prev_costs[HX_1] + 72; /* 12 * HX_MULT */
- char_modes[cm_i + HX_1] = '1';
- }
- if (isRegion2(gbdata[i])) {
- cur_costs[HX_2] = prev_costs[HX_2] + 72; /* 12 * HX_MULT */
- char_modes[cm_i + HX_2] = '2';
- }
- if (isDoubleByte(gbdata[i])) {
- cur_costs[HX_D] = prev_costs[HX_D] + 90; /* 15 * HX_MULT */
- char_modes[cm_i + HX_D] = 'd';
- }
- if (in_fourbyte(gbdata, length, i, p_fourbyte_end, p_fourbyte_cost)) {
- cur_costs[HX_F] = prev_costs[HX_F] + *p_fourbyte_cost;
- char_modes[cm_i + HX_F] = 'f';
- }
-}
-
-/* Calculate optimized encoding modes */
-static void hx_define_mode(char* mode, const unsigned int gbdata[], const size_t length, const int debug) {
- static const char mode_types[] = { 'n', 't', 'b', '1', '2', 'd', 'f' }; /* Must be in same order as HX_N etc */
- unsigned int state[5] = { 0 /*numeric_end*/, 0 /*numeric_cost*/, 1 /*text_submode*/, 0 /*fourbyte_end*/, 0 /*fourbyte_cost*/ };
-
- pn_define_mode(mode, gbdata, length, debug, state, mode_types, HX_NUM_MODES, hx_head_costs, hx_switch_cost, hx_eod_cost, hx_cur_cost);
-}
-
/* Convert input data to binary stream */
-static void calculate_binary(char binary[], char mode[], unsigned int source[], const size_t length, const int eci, int debug) {
- unsigned int position = 0;
+static void calculate_binary(char binary[], char mode[], int source[], const size_t length, const int eci, int debug) {
+ int position = 0;
int i, count, encoding_value;
int first_byte, second_byte;
int third_byte, fourth_byte;
do {
int block_length = 0;
- int double_byte = 0;
do {
- if (mode[position] == 'b' && source[position + block_length] > 0xFF) {
- double_byte++;
- }
block_length++;
- } while (position + block_length < length && mode[position + block_length] == mode[position]);
+ } while (mode[position + block_length] == mode[position]);
switch (mode[position]) {
case 'n':
/* Mode indicator */
bin_append(1, 4, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Numeric\n");
}
- count = 0; /* Suppress gcc -Wmaybe-uninitialized */
i = 0;
while (i < block_length) {
bin_append(encoding_value, 10, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("0x%4x (%d)", encoding_value, encoding_value);
}
break;
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf(" (TERM %d)\n", count);
}
break;
case 't':
/* Text mode */
- /* Mode indicator */
- bin_append(2, 4, binary);
+ if (position != 0) {
+ /* Mode indicator */
+ bin_append(2, 4, binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("Text\n");
+ if (debug) {
+ printf("Text\n");
+ }
}
submode = 1;
while (i < block_length) {
- if (getsubmode(source[i + position]) != submode) {
+ if (getsubmode((char) source[i + position]) != submode) {
/* Change submode */
bin_append(62, 6, binary);
- submode = getsubmode(source[i + position]);
- if (debug & ZINT_DEBUG_PRINT) {
+ submode = getsubmode((char) source[i + position]);
+ if (debug) {
printf("SWITCH ");
}
}
if (submode == 1) {
- encoding_value = lookup_text1(source[i + position]);
+ encoding_value = lookup_text1((char) source[i + position]);
} else {
- encoding_value = lookup_text2(source[i + position]);
+ encoding_value = lookup_text2((char) source[i + position]);
}
bin_append(encoding_value, 6, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("%.2x [ASC %.2x] ", encoding_value, source[i + position]);
}
i++;
/* Terminator */
bin_append(63, 6, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
break;
bin_append(3, 4, binary);
/* Count indicator */
- bin_append(block_length + double_byte, 13, binary);
+ bin_append(block_length, 13, binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("Binary (length %d)\n", block_length + double_byte);
+ if (debug) {
+ printf("Binary (length %d)\n", block_length);
}
i = 0;
while (i < block_length) {
/* 8-bit bytes with no conversion */
- bin_append(source[i + position], source[i + position] > 0xFF ? 16 : 8, binary);
+ bin_append(source[i + position], 8, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("%d ", source[i + position]);
}
i++;
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
break;
case '1':
/* Region 1 encoding */
/* Mode indicator */
- if (position == 0 || mode[position - 1] != '2') { /* Unless previous mode Region 2 */
- bin_append(4, 4, binary);
- }
+ bin_append(4, 4, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Region 1\n");
}
glyph = (second_byte - 0xa1) + 0xfca;
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("%.4x [GB %.4x] ", glyph, source[i + position]);
}
}
/* Terminator */
- bin_append(position == length - 1 || mode[position + 1] != '2' ? 4095 : 4094, 12, binary);
+ bin_append(4095, 12, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
case '2':
/* Region 2 encoding */
/* Mode indicator */
- if (position == 0 || mode[position - 1] != '1') { /* Unless previous mode Region 1 */
- bin_append(5, 4, binary);
- }
+ bin_append(5, 4, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Region 2\n");
}
glyph = (0x5e * (first_byte - 0xd8)) + (second_byte - 0xa1);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("%.4x [GB %.4x] ", glyph, source[i + position]);
}
}
/* Terminator */
- bin_append(position == length - 1 || mode[position + 1] != '1' ? 4095 : 4094, 12, binary);
+ bin_append(4095, 12, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
break;
/* Mode indicator */
bin_append(6, 4, binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Double byte\n");
}
glyph = (0xbe * (first_byte - 0x81)) + (second_byte - 0x41);
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("%.4x ", glyph);
}
/* Terminator sequence of length 12 is a mistake
- confirmed by Wang Yi */
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
break;
case 'f':
/* Four-byte encoding */
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Four byte\n");
}
glyph = (0x3138 * (first_byte - 0x81)) + (0x04ec * (second_byte - 0x30)) +
(0x0a * (third_byte - 0x81)) + (fourth_byte - 0x30);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("%d ", glyph);
}
/* No terminator */
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
break;
}
/* Finder pattern for top left of symbol */
-static void hx_place_finder_top_left(unsigned char* grid, int size) {
+void hx_place_finder_top_left(unsigned char* grid, int size) {
int xp, yp;
int x = 0, y = 0;
char finder[] = {0x7F, 0x40, 0x5F, 0x50, 0x57, 0x57, 0x57};
}
/* Finder pattern for top right and bottom left of symbol */
-static void hx_place_finder(unsigned char* grid, int size, int x, int y) {
+void hx_place_finder(unsigned char* grid, int size, int x, int y) {
int xp, yp;
char finder[] = {0x7F, 0x01, 0x7D, 0x05, 0x75, 0x75, 0x75};
}
/* Finder pattern for bottom right of symbol */
-static void hx_place_finder_bottom_right(unsigned char* grid, int size) {
+void hx_place_finder_bottom_right(unsigned char* grid, int size) {
int xp, yp;
int x = size - 7, y = size - 7;
char finder[] = {0x75, 0x75, 0x75, 0x05, 0x7D, 0x01, 0x7F};
}
/* Avoid plotting outside symbol or over finder patterns */
-static void hx_safe_plot(unsigned char *grid, int size, int x, int y, int value) {
+void hx_safe_plot(unsigned char *grid, int size, int x, int y, int value) {
if ((x >= 0) && (x < size)) {
if ((y >= 0) && (y < size)) {
if (grid[(y * size) + x] == 0) {
}
/* Plot an alignment pattern around top and right of a module */
-static void hx_plot_alignment(unsigned char *grid, int size, int x, int y, int w, int h) {
+void hx_plot_alignment(unsigned char *grid, int size, int x, int y, int w, int h) {
int i;
hx_safe_plot(grid, size, x, y, 0x11);
hx_safe_plot(grid, size, x - 1, y + 1, 0x10);
}
/* Plot assistant alignment patterns */
-static void hx_plot_assistant(unsigned char *grid, int size, int x, int y) {
+void hx_plot_assistant(unsigned char *grid, int size, int x, int y) {
hx_safe_plot(grid, size, x - 1, y - 1, 0x10);
hx_safe_plot(grid, size, x, y - 1, 0x10);
hx_safe_plot(grid, size, x + 1, y - 1, 0x10);
}
/* Put static elements in the grid */
-static void hx_setup_grid(unsigned char* grid, int size, int version) {
+void hx_setup_grid(unsigned char* grid, int size, int version) {
int i, j;
for (i = 0; i < size; i++) {
}
/* Calculate error correction codes */
-static void hx_add_ecc(unsigned char fullstream[], unsigned char datastream[], int data_codewords, int version, int ecc_level) {
+void hx_add_ecc(unsigned char fullstream[], unsigned char datastream[], int version, int ecc_level) {
unsigned char data_block[180];
unsigned char ecc_block[36];
int i, j, block;
for (j = 0; j < data_length; j++) {
input_position++;
output_position++;
- data_block[j] = input_position < data_codewords ? datastream[input_position] : 0;
- fullstream[output_position] = data_block[j];
+ data_block[j] = datastream[input_position];
+ fullstream[output_position] = datastream[input_position];
}
rs_init_gf(0x163); // x^8 + x^6 + x^5 + x + 1 = 0
}
/* Rearrange data in batches of 13 codewords (section 5.8.2) */
-static void make_picket_fence(unsigned char fullstream[], unsigned char picket_fence[], int streamsize) {
+void make_picket_fence(unsigned char fullstream[], unsigned char picket_fence[], int streamsize) {
int i, start;
int output_position = 0;
}
/* Evaluate a bitmask according to table 9 */
-static int hx_evaluate(unsigned char *eval, int size, int pattern) {
+int hx_evaluate(unsigned char *eval, int size, int pattern) {
int x, y, block, weight;
int result = 0;
char state;
* desired pattern.*/
for (x = 0; x < size; x++) {
for (y = 0; y < size; y++) {
- if (eval[(y * size) + x] & 0xf0) {
- local[(y * size) + x] = 0;
- } else if ((eval[(y * size) + x] & (0x01 << pattern)) != 0) {
+ if ((eval[(y * size) + x] & (0x01 << pattern)) != 0) {
local[(y * size) + x] = '1';
} else {
local[(y * size) + x] = '0';
/* Vertical */
for (x = 0; x < size; x++) {
for (y = 0; y < (size - 7); y++) {
- if (local[(y * size) + x] == 0) {
- continue;
- }
p = 0;
for (weight = 0; weight < 7; weight++) {
if (local[((y + weight) * size) + x] == '1') {
if (local[(b * size) + x] == '0') {
beforeCount++;
} else {
- break;
+ beforeCount = 0;
}
}
}
if (local[(a * size) + x] == '0') {
afterCount++;
} else {
- break;
+ afterCount = 0;
}
}
}
/* Horizontal */
for (y = 0; y < size; y++) {
for (x = 0; x < (size - 7); x++) {
- if (local[(y * size) + x] == 0) {
- continue;
- }
p = 0;
for (weight = 0; weight < 7; weight++) {
if (local[(y * size) + x + weight] == '1') {
if (local[(y * size) + b] == '0') {
beforeCount++;
} else {
- break;
+ beforeCount = 0;
}
}
}
if (local[(y * size) + a] == '0') {
afterCount++;
} else {
- break;
+ afterCount = 0;
}
}
}
* position of the module.” - however i being the length of the run of the
* same colour (i.e. "block" below) in the same fashion as ISO/IEC 18004
* makes more sense. -- Confirmed by Wang Yi */
- /* Fixed in ISO/IEC 20830 (draft 2019-10-10) section 5.8.3.2 "In Table 12 below, i refers to the modules with same color." */
/* Vertical */
for (x = 0; x < size; x++) {
+ state = local[x];
block = 0;
- state = 0;
for (y = 0; y < size; y++) {
- if (local[(y * size) + x] == 0) {
- if (block >= 3) {
- result += (3 + block) * 4;
- }
- block = 0;
- state = 0;
- } else if (local[(y * size) + x] == state || state == 0) {
+ if (local[(y * size) + x] == state) {
block++;
- state = local[(y * size) + x];
} else {
- if (block >= 3) {
+ if (block > 3) {
result += (3 + block) * 4;
}
- block = 1;
+ block = 0;
state = local[(y * size) + x];
}
}
- if (block >= 3) {
+ if (block > 3) {
result += (3 + block) * 4;
}
}
state = local[y * size];
block = 0;
for (x = 0; x < size; x++) {
- if (local[(y * size) + x] == 0) {
- if (block >= 3) {
- result += (3 + block) * 4;
- }
- block = 0;
- state = 0;
- } else if (local[(y * size) + x] == state || state == 0) {
+ if (local[(y * size) + x] == state) {
block++;
- state = local[(y * size) + x];
} else {
- if (block >= 3) {
+ if (block > 3) {
result += (3 + block) * 4;
}
- block = 1;
+ block = 0;
state = local[(y * size) + x];
}
}
- if (block >= 3) {
+ if (block > 3) {
result += (3 + block) * 4;
}
}
}
/* Apply the four possible bitmasks for evaluation */
-/* TODO: Haven't been able to replicate (or even get close to) the penalty scores in ISO/IEC 20830 (draft 2019-10-10) Annex K examples */
-static int hx_apply_bitmask(unsigned char *grid, int size) {
+int hx_apply_bitmask(unsigned char *grid, int size) {
int x, y;
int i, j;
int pattern, penalty[4];
unsigned char p;
#ifndef _MSC_VER
- unsigned char mask[(unsigned int)(size * size)]; /* Cast to suppress gcc -Walloc-size-larger-than */
- unsigned char eval[(unsigned int)(size * size)];
+ unsigned char mask[size * size];
+ unsigned char eval[size * size];
#else
unsigned char* mask = (unsigned char *) _alloca((size * size) * sizeof (unsigned char));
unsigned char* eval = (unsigned char *) _alloca((size * size) * sizeof (unsigned char));
// apply data masks to grid, result in eval
for (x = 0; x < size; x++) {
for (y = 0; y < size; y++) {
- if (grid[(y * size) + x] & 0xf0) {
- p = 0xf0;
- } else if (grid[(y * size) + x] & 0x01) {
- p = 0x0f;
+ if (grid[(y * size) + x] & 0x01) {
+ p = 0xff;
} else {
p = 0x00;
}
}
/* Han Xin Code - main */
-INTERNAL int han_xin(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
+int han_xin(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int est_binlen;
int ecc_level = symbol->option_1;
int i, j, version;
- int full_multibyte;
int data_codewords = 0, size;
int codewords;
int bitmask;
unsigned char fi_ecc[4];
#ifndef _MSC_VER
- unsigned int gbdata[(length + 1) * 2];
+ int utfdata[length + 1];
+ int gbdata[(length + 1) * 2];
char mode[length + 1];
#else
- unsigned int* gbdata = (unsigned int *) _alloca(((length + 1) * 2) * sizeof (unsigned int));
+ int* utfdata = (int *) _alloca((length + 1) * sizeof (int));
+ int* gbdata = (int *) _alloca(((length + 1) * 2) * sizeof (int));
char* mode = (char *) _alloca((length + 1) * sizeof (char));
char* binary;
unsigned char *datastream;
unsigned char *grid;
#endif
- full_multibyte = symbol->option_3 == ZINT_FULL_MULTIBYTE; /* If set use Hanzi mode in DATA_MODE or for single-byte Latin */
-
- if ((symbol->input_mode & 0x07) == DATA_MODE) {
- gb18030_cpy(source, &length, gbdata, full_multibyte);
+ if ((symbol->input_mode == DATA_MODE) || (symbol->eci != 0)) {
+ for (i = 0; i < length; i++) {
+ gbdata[i] = (int) source[i];
+ }
} else {
- int done = 0;
- if (symbol->eci != 29) { /* Unless ECI 29 (GB) */
- /* Try single byte (Latin) conversion first */
- int error_number = gb18030_utf8tosb(symbol->eci && symbol->eci <= 899 ? symbol->eci : 3, source, &length, gbdata, full_multibyte);
- if (error_number == 0) {
+ int posn;
+ /* Convert Unicode input to GB-18030 */
+ int error_number = utf8toutf16(symbol, source, utfdata, &length);
+ if (error_number != 0) {
+ return error_number;
+ }
+
+ posn = 0;
+ for (i = 0; i < length; i++) {
+ int done = 0;
+ gbdata[posn] = 0;
+
+ /* Single byte characters in range U+0000 -> U+007F */
+ if (utfdata[i] <= 0x7f) {
+ gbdata[posn] = utfdata[i];
+ posn++;
done = 1;
- } else if (symbol->eci && symbol->eci <= 899) {
- strcpy(symbol->errtxt, "575: Invalid characters in input data");
- return error_number;
}
- }
- if (!done) {
- /* Try GB 18030 */
- int error_number = gb18030_utf8tomb(symbol, source, &length, gbdata);
- if (error_number != 0) {
- return error_number;
+
+ /* Two bytes characters in GB-2312 */
+ if (done == 0) {
+ j = 0;
+ do {
+ if (gb2312_lookup[j * 2] == utfdata[i]) {
+ gbdata[posn] = gb2312_lookup[(j * 2) + 1];
+ posn++;
+ done = 1;
+ }
+ j++;
+ } while ((j < 7445) && (done == 0));
+ }
+
+ /* Two byte characters in GB-18030 */
+ if (done == 0) {
+ j = 0;
+ do {
+ if (gb18030_twobyte_lookup[j * 2] == utfdata[i]) {
+ gbdata[posn] = gb18030_twobyte_lookup[(j * 2) + 1];
+ posn++;
+ done = 1;
+ }
+ j++;
+ } while ((j < 16495) && (done == 0));
+ }
+
+ /* Four byte characters in range U+0080 -> U+FFFF */
+ if (done == 0) {
+ j = 0;
+ do {
+ if (gb18030_fourbyte_lookup[j * 3] == utfdata[i]) {
+ gbdata[posn] = gb18030_fourbyte_lookup[(j * 3) + 1];
+ gbdata[posn + 1] = gb18030_fourbyte_lookup[(j * 3) + 2];
+ posn += 2;
+ done = 1;
+ }
+ j++;
+ } while ((j < 6793) && (done == 0));
+ }
+
+ /* Supplementary planes U+10000 -> U+1FFFF */
+ if (done == 0) {
+ if (utfdata[i] >= 0x10000 && utfdata[i] < 0x110000) {
+ /* algorithm from libiconv-1.15\lib\gb18030.h */
+ int j, r3, r2, r1, r0;
+
+ j = utfdata[i] - 0x10000;
+ r3 = (j % 10) + 0x30; j = j / 10;
+ r2 = (j % 126) + 0x81; j = j / 126;
+ r1 = (j % 10) + 0x30; j = j / 10;
+ r0 = j + 0x90;
+ gbdata[posn] = (r0 << 8) + r1;
+ gbdata[posn + 1] = (r2 << 8) + r3;
+ posn += 2;
+ done = 1;
+ }
+ }
+
+ /* Character not found */
+ if (done == 0) {
+ strcpy(symbol->errtxt, "540: Unknown character in input data");
+ return ZINT_ERROR_INVALID_DATA;
}
}
+ length = posn;
}
- hx_define_mode(mode, gbdata, length, symbol->debug);
+ hx_define_mode(mode, gbdata, length);
est_binlen = calculate_binlength(mode, gbdata, length, symbol->eci);
#ifndef _MSC_VER
- char binary[est_binlen + 1];
+ char binary[est_binlen + 10];
#else
- binary = (char *) _alloca((est_binlen + 1) * sizeof (char));
+ binary = (char *) _alloca((est_binlen + 10) * sizeof (char));
#endif
memset(binary, 0, (est_binlen + 1) * sizeof (char));
/* If there is spare capacity, increase the level of ECC */
- if (symbol->option_1 == -1 || symbol->option_1 != ecc_level) { /* Unless explicitly specified (within min/max bounds) by user */
- if ((ecc_level == 1) && (codewords < hx_data_codewords_L2[version - 1])) {
- ecc_level = 2;
- data_codewords = hx_data_codewords_L2[version - 1];
- }
+ if ((ecc_level == 1) && (codewords < hx_data_codewords_L2[version - 1])) {
+ ecc_level = 2;
+ data_codewords = hx_data_codewords_L2[version - 1];
+ }
- if ((ecc_level == 2) && (codewords < hx_data_codewords_L3[version - 1])) {
- ecc_level = 3;
- data_codewords = hx_data_codewords_L3[version - 1];
- }
+ if ((ecc_level == 2) && (codewords < hx_data_codewords_L3[version - 1])) {
+ ecc_level = 3;
+ data_codewords = hx_data_codewords_L3[version - 1];
+ }
- if ((ecc_level == 3) && (codewords < hx_data_codewords_L4[version - 1])) {
- ecc_level = 4;
- data_codewords = hx_data_codewords_L4[version - 1];
- }
+ if ((ecc_level == 3) && (codewords < hx_data_codewords_L4[version - 1])) {
+ ecc_level = 4;
+ data_codewords = hx_data_codewords_L4[version - 1];
}
size = (version * 2) + 21;
}
}
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ if (symbol->debug) {
printf("Datastream length: %d\n", data_codewords);
printf("Datastream:\n");
for (i = 0; i < data_codewords; i++) {
}
printf("\n");
}
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, data_codewords);
-#endif
hx_setup_grid(grid, size, version);
- hx_add_ecc(fullstream, datastream, data_codewords, version, ecc_level);
+ hx_add_ecc(fullstream, datastream, version, ecc_level);
make_picket_fence(fullstream, picket_fence, hx_total_codewords[version - 1]);
}
}
+
+
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
if (function_information[(i * 4) + j] == '1') {
return 0;
}
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/* The function "USPS_MSB_Math_CRC11GenerateFrameCheckSequence"
is Copyright (C) 2006 United States Postal Service */
+#include <string.h>
+#include <stdlib.h>
#include <stdio.h>
#include "common.h"
#include "large.h"
-#define SODIUM "0123456789-"
+#define SODIUM "0123456789-"
/* The following lookup tables were generated using the code in Appendix C */
** USPS_MSB_Math_CRC11GenerateFrameCheckSequence
**
** Inputs:
- ** ByteAttayPtr is the address of a 13 byte array holding 102 bits which
+ ** ByteAttayPtr is the address of a 13 byte array holding 102 bytes which
** are right justified - ie: the leftmost 2 bits of the first byte do not
** hold data and must be set to zero.
**
** Outputs:
** return unsigned short - 11 bit Frame Check Sequence (right justified)
***************************************************************************/
-static unsigned short USPS_MSB_Math_CRC11GenerateFrameCheckSequence(unsigned char *ByteArrayPtr) {
+extern unsigned short USPS_MSB_Math_CRC11GenerateFrameCheckSequence(unsigned char *ByteArrayPtr) {
unsigned short GeneratorPolynomial = 0x0F35;
unsigned short FrameCheckSequence = 0x07FF;
unsigned short Data;
return FrameCheckSequence;
}
-INTERNAL int imail(struct zint_symbol *symbol, unsigned char source[], int length) {
+int imail(struct zint_symbol *symbol, unsigned char source[], int length) {
char data_pattern[200];
int error_number;
int i, j, read;
- char zip[35], tracker[35], temp[2];
- large_int accum;
- large_int byte_array_reg;
+ char zip[35], tracker[35], zip_adder[11], temp[2];
+ short int accum[112], x_reg[112], y_reg[112];
unsigned char byte_array[13];
unsigned short usps_crc;
int codeword[10];
unsigned short characters[10];
short int bar_map[130];
- int zip_len, len;
+ int zip_len;
+
+ error_number = 0;
if (length > 32) {
strcpy(symbol->errtxt, "450: Input too long");
/* Routing code first */
- large_load_str_u64(&accum, (unsigned char *) zip, zip_len);
+ for (i = 0; i < 112; i++) {
+ accum[i] = 0;
+ }
+
+ for (read = 0; read < zip_len; read++) {
+
+ binary_multiply(accum, "10");
+ binary_load(x_reg, "0", 1);
+
+ for (i = 0; i < 4; i++) {
+ if (ctoi(zip[read]) & (0x01 << i)) x_reg[i] = 1;
+ }
+
+ binary_add(accum, x_reg);
+ }
/* add weight to routing code */
+
+ for (i = 0; i < 112; i++) {
+ x_reg[i] = accum[i];
+ }
+
if (zip_len > 9) {
- large_add_u64(&accum, 1000100001);
- } else if (zip_len > 5) {
- large_add_u64(&accum, 100001);
- } else if (zip_len > 0) {
- large_add_u64(&accum, 1);
+ strcpy(zip_adder, "1000100001");
+ } else {
+ if (zip_len > 5) {
+ strcpy(zip_adder, "100001");
+ } else {
+ if (zip_len > 0) {
+ strcpy(zip_adder, "1");
+ } else {
+ strcpy(zip_adder, "0");
+ }
+ }
+ }
+
+ for (i = 0; i < 112; i++) {
+ accum[i] = 0;
+ }
+
+ for (read = 0; read < strlen(zip_adder); read++) {
+
+ binary_multiply(accum, "10");
+ binary_load(y_reg, "0", 1);
+
+ for (i = 0; i < 4; i++) {
+ if (ctoi(zip_adder[read]) & (0x01 << i)) y_reg[i] = 1;
+ }
+
+ binary_add(accum, y_reg);
}
+ binary_add(accum, x_reg);
+
/* tracking code */
/* multiply by 10 */
- large_mul_u64(&accum, 10);
+ binary_multiply(accum, "10");
+ binary_load(y_reg, "0", 1);
/* add first digit of tracker */
- large_add_u64(&accum, ctoi(tracker[0]));
+ for (i = 0; i < 4; i++) {
+ if (ctoi(tracker[0]) & (0x01 << i)) y_reg[i] = 1;
+ }
+
+ binary_add(accum, y_reg);
/* multiply by 5 */
- large_mul_u64(&accum, 5);
+ binary_multiply(accum, "5");
+ binary_load(y_reg, "0", 1);
/* add second digit */
- large_add_u64(&accum, ctoi(tracker[1]));
+ for (i = 0; i < 4; i++) {
+ if (ctoi(tracker[1]) & (0x01 << i)) y_reg[i] = 1;
+ }
+
+ binary_add(accum, y_reg);
/* and then the rest */
- for (read = 2, len = strlen(tracker); read < len; read++) {
+ for (read = 2; read < strlen(tracker); read++) {
- large_mul_u64(&accum, 10);
- large_add_u64(&accum, ctoi(tracker[read]));
- }
+ binary_multiply(accum, "10");
+ binary_load(y_reg, "0", 1);
- /* *** Step 2 - Generation of 11-bit CRC on Binary Data *** */
+ for (i = 0; i < 4; i++) {
+ if (ctoi(tracker[read]) & (0x01 << i)) y_reg[i] = 1;
+ }
- large_load(&byte_array_reg, &accum);
+ binary_add(accum, y_reg);
+ }
- large_unset_bit(&byte_array_reg, 102);
- large_unset_bit(&byte_array_reg, 103);
+ /* *** Step 2 - Generation of 11-bit CRC on Binary Data *** */
- large_uchar_array(&byte_array_reg, byte_array, 13, 8 /*bits*/);
+ accum[103] = 0;
+ accum[102] = 0;
+
+ memset(byte_array, 0, 13);
+ for (j = 0; j < 13; j++) {
+ i = 96 - (8 * j);
+ byte_array[j] = 0;
+ byte_array[j] += accum[i];
+ byte_array[j] += 2 * accum[i + 1];
+ byte_array[j] += 4 * accum[i + 2];
+ byte_array[j] += 8 * accum[i + 3];
+ byte_array[j] += 16 * accum[i + 4];
+ byte_array[j] += 32 * accum[i + 5];
+ byte_array[j] += 64 * accum[i + 6];
+ byte_array[j] += 128 * accum[i + 7];
+ }
usps_crc = USPS_MSB_Math_CRC11GenerateFrameCheckSequence(byte_array);
/* *** Step 3 - Conversion from Binary Data to Codewords *** */
/* start with codeword J which is base 636 */
- codeword[9] = large_div_u64(&accum, 636);
+ for (i = 0; i < 112; i++) {
+ x_reg[i] = 0;
+ y_reg[i] = 0;
+ }
+
+ x_reg[101] = 1;
+ x_reg[98] = 1;
+ x_reg[97] = 1;
+ x_reg[96] = 1;
+ x_reg[95] = 1;
+ x_reg[94] = 1;
+
+ for (i = 92; i >= 0; i--) {
+ y_reg[i] = !islarger(x_reg, accum);
+ if (y_reg[i] == 1) {
+ binary_subtract(accum, x_reg);
+ }
+ shiftdown(x_reg);
+ }
+
+ codeword[9] = (accum[9] * 512) + (accum[8] * 256) + (accum[7] * 128) + (accum[6] * 64) +
+ (accum[5] * 32) + (accum[4] * 16) + (accum[3] * 8) + (accum[2] * 4) +
+ (accum[1] * 2) + accum[0];
/* then codewords I to B with base 1365 */
for (j = 8; j > 0; j--) {
- codeword[j] = large_div_u64(&accum, 1365);
+ for (i = 0; i < 112; i++) {
+ accum[i] = y_reg[i];
+ y_reg[i] = 0;
+ x_reg[i] = 0;
+ }
+ x_reg[101] = 1;
+ x_reg[99] = 1;
+ x_reg[97] = 1;
+ x_reg[95] = 1;
+ x_reg[93] = 1;
+ x_reg[91] = 1;
+ for (i = 91; i >= 0; i--) {
+ y_reg[i] = !islarger(x_reg, accum);
+ if (y_reg[i] == 1) {
+ binary_subtract(accum, x_reg);
+ }
+ shiftdown(x_reg);
+ }
+
+ codeword[j] = (accum[10] * 1024) + (accum[9] * 512) + (accum[8] * 256) +
+ (accum[7] * 128) + (accum[6] * 64) + (accum[5] * 32) +
+ (accum[4] * 16) + (accum[3] * 8) + (accum[2] * 4) +
+ (accum[1] * 2) + accum[0];
}
- codeword[0] = large_lo(&accum);
+ codeword[0] = (y_reg[10] * 1024) + (y_reg[9] * 512) + (y_reg[8] * 256) +
+ (y_reg[7] * 128) + (y_reg[6] * 64) + (y_reg[5] * 32) +
+ (y_reg[4] * 16) + (y_reg[3] * 8) + (y_reg[2] * 4) +
+ (y_reg[1] * 2) + y_reg[0];
+
+ for (i = 0; i < 8; i++) {
+ if (codeword[i] == 1365) {
+ codeword[i] = 0;
+ codeword[i + 1]++;
+ }
+ }
/* *** Step 4 - Inserting Additional Information into Codewords *** */
/* Translate 4-state data pattern to symbol */
read = 0;
- for (i = 0, len = strlen(data_pattern); i < len; i++) {
+ for (i = 0; i < strlen(data_pattern); i++) {
if ((data_pattern[i] == '1') || (data_pattern[i] == '0')) {
set_module(symbol, 0, read);
}
symbol->width = read - 1;
return error_number;
}
+
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-
-/* `large_mul_u64()` and `large_div_u64()` are adapted from articles by F. W. Jacob
- * https://www.codeproject.com/Tips/618570/UInt-Multiplication-Squaring
- * "This article, along with any associated source code and files, is licensed under The BSD License"
- * http://www.codeproject.com/Tips/785014/UInt-Division-Modulus
- * "This article, along with any associated source code and files, is licensed under The BSD License"
- *
- * These in turn are based on Hacker's Delight (2nd Edition, 2012) by Henry S. Warren, Jr.
- * "You are free to use, copy, and distribute any of the code on this web site, whether modified by you or not."
- * https://web.archive.org/web/20190716204559/http://www.hackersdelight.org/permissions.htm
- *
- * `clz_u64()` and other bits and pieces are adapted from r128.h by Alan Hickman (fahickman)
- * https://github.com/fahickman/r128/blob/master/r128.h
- * "R128 is released into the public domain. See LICENSE for details." LICENSE is The Unlicense.
- */
+
#include <stdio.h>
-#ifdef _MSC_VER
-#include <malloc.h>
-#endif
+#include <string.h>
#include "common.h"
#include "large.h"
-#define MASK32 0xFFFFFFFF
-
-/* Convert decimal string `s` of (at most) length `length` to 64-bit and place in 128-bit `t` */
-INTERNAL void large_load_str_u64(large_int *t, const unsigned char *s, int length) {
- uint64_t val = 0;
- const unsigned char *se = s + length;
- for (; s < se && *s >= '0' && *s <= '9'; s++) {
- val *= 10;
- val += *s - '0';
+void binary_add(short int accumulator[], short int input_buffer[]) { /* Binary addition */
+ int i, carry;
+ carry = 0;
+
+ for (i = 0; i < 112; i++) {
+ int done = 0;
+ if (((input_buffer[i] == 0) && (accumulator[i] == 0))
+ && ((carry == 0) && (done == 0))) {
+ accumulator[i] = 0;
+ carry = 0;
+ done = 1;
+ }
+ if (((input_buffer[i] == 0) && (accumulator[i] == 0))
+ && ((carry == 1) && (done == 0))) {
+ accumulator[i] = 1;
+ carry = 0;
+ done = 1;
+ }
+ if (((input_buffer[i] == 0) && (accumulator[i] == 1))
+ && ((carry == 0) && (done == 0))) {
+ accumulator[i] = 1;
+ carry = 0;
+ done = 1;
+ }
+ if (((input_buffer[i] == 0) && (accumulator[i] == 1))
+ && ((carry == 1) && (done == 0))) {
+ accumulator[i] = 0;
+ carry = 1;
+ done = 1;
+ }
+ if (((input_buffer[i] == 1) && (accumulator[i] == 0))
+ && ((carry == 0) && (done == 0))) {
+ accumulator[i] = 1;
+ carry = 0;
+ done = 1;
+ }
+ if (((input_buffer[i] == 1) && (accumulator[i] == 0))
+ && ((carry == 1) && (done == 0))) {
+ accumulator[i] = 0;
+ carry = 1;
+ done = 1;
+ }
+ if (((input_buffer[i] == 1) && (accumulator[i] == 1))
+ && ((carry == 0) && (done == 0))) {
+ accumulator[i] = 0;
+ carry = 1;
+ done = 1;
+ }
+ if (((input_buffer[i] == 1) && (accumulator[i] == 1))
+ && ((carry == 1) && (done == 0))) {
+ accumulator[i] = 1;
+ carry = 1;
+ done = 1;
+ }
}
- t->lo = val;
- t->hi = 0;
}
-/* Add 128-bit `s` to 128-bit `t` */
-INTERNAL void large_add(large_int *t, const large_int *s) {
- t->lo += s->lo;
- t->hi += s->hi + (t->lo < s->lo);
-}
-
-/* Add 64-bit `s` to 128-bit `t` */
-INTERNAL void large_add_u64(large_int *t, uint64_t s) {
- t->lo += s;
- if (t->lo < s) {
- t->hi++;
- }
-}
+void binary_subtract(short int accumulator[], short int input_buffer[]) {
+ /* 2's compliment subtraction */
+ /* take input_buffer from accumulator and put answer in accumulator */
+ int i;
+ short int sub_buffer[112];
-/* Subtract 64-bit `s` from 128-bit `t` */
-INTERNAL void large_sub_u64(large_int *t, uint64_t s) {
- uint64_t r = t->lo - s;
- if (r > t->lo) {
- t->hi--;
+ for (i = 0; i < 112; i++) {
+ if (input_buffer[i] == 0) {
+ sub_buffer[i] = 1;
+ } else {
+ sub_buffer[i] = 0;
+ }
}
- t->lo = r;
-}
-
-/* Multiply 128-bit `t` by 64-bit `s`
- * See Jacob `mult64to128()` and Warren Section 8-2
- * Note '0' denotes low 32-bits, '1' high 32-bits
- * if p00 == s0 * tlo0
- * k00 == carry of p00
- * p01 == s0 * tlo1
- * k01 == carry of (p01 + k00)
- * p10 == s1 * tlo0
- * k10 == carry of p10
- * p11 == s1 * tlo1 (unmasked, i.e. including unshifted carry if any)
- * then t->lo == (p01 + p10 + k00) << 32 + p00
- * and t->hi == p11 + k10 + k01 + thi * s
- *
- * (thi) tlo1 tlo0
- * x s1 s0
- * -------------------------
- * p00
- * k01 p01 + k00
- * p10
- * p11 + k10
- */
-INTERNAL void large_mul_u64(large_int *t, uint64_t s) {
- uint64_t thi = t->hi;
- uint64_t tlo0 = t->lo & MASK32;
- uint64_t tlo1 = t->lo >> 32;
-
- uint64_t s0 = s & MASK32;
- uint64_t s1 = s >> 32;
+ binary_add(accumulator, sub_buffer);
- uint64_t tmp = s0 * tlo0; /* p00 (unmasked) */
- uint64_t p00 = tmp & MASK32;
- uint64_t k10;
+ sub_buffer[0] = 1;
- tmp = (s1 * tlo0) + (tmp >> 32); /* (p10 + k00) (p10 unmasked) */
- k10 = tmp >> 32;
-
- tmp = (s0 * tlo1) + (tmp & MASK32); /* (p01 + p10 + k00) (p01 unmasked) */
-
- t->lo = (tmp << 32) + p00; /* (p01 + p10 + k00) << 32 + p00 (note any carry from unmasked p01 shifted out) */
- t->hi = (s1 * tlo1) + k10 + (tmp >> 32) + thi * s; /* p11 + k10 + k01 + thi * s */
-}
-
-/* Count leading zeroes. See Hickman `r128__clz64()` */
-STATIC_UNLESS_ZINT_TEST int clz_u64(uint64_t x) {
- uint64_t n = 64, y;
- y = x >> 32; if (y) { n -= 32; x = y; }
- y = x >> 16; if (y) { n -= 16; x = y; }
- y = x >> 8; if (y) { n -= 8; x = y; }
- y = x >> 4; if (y) { n -= 4; x = y; }
- y = x >> 2; if (y) { n -= 2; x = y; }
- y = x >> 1; if (y) { n -= 1; x = y; }
- return (int) (n - x);
+ for (i = 1; i < 112; i++) {
+ sub_buffer[i] = 0;
+ }
+ binary_add(accumulator, sub_buffer);
}
-/* Divide 128-bit dividend `t` by 64-bit divisor `v`
- * See Jacob `divmod128by128/64()` and Warren Section 9–2 (divmu64.c.txt)
- * Note digits are 32-bit parts */
-INTERNAL uint64_t large_div_u64(large_int *t, uint64_t v) {
- const uint64_t b = 0x100000000; /* Number base (2**32) */
- uint64_t qhi = 0; /* High digit of returned quotient */
-
- uint64_t tnhi, tnlo, tnlo1, tnlo0, vn1, vn0; /* Normalized forms of (parts of) t and v */
- uint64_t rnhilo1; /* Remainder after dividing 1st 3 digits of t by v */
- uint64_t qhat1, qhat0; /* Estimated quotient digits */
- uint64_t rhat; /* Remainder of estimated quotient digit */
- uint64_t tmp;
- int norm_shift;
-
- /* Deal with single-digit (i.e. 32-bit) divisor here */
- if (v < b) {
- qhi = t->hi / v;
- tmp = ((t->hi - qhi * v) << 32) + (t->lo >> 32); /* k * b + tlo1 */
- qhat1 = tmp / v;
- tmp = ((tmp - qhat1 * v) << 32) + (t->lo & MASK32); /* k * b + tlo0 */
- qhat0 = tmp / v;
- t->lo = (qhat1 << 32) | qhat0;
- t->hi = qhi;
- return tmp - qhat0 * v;
+void binary_multiply(short int reg[], char data[]) {
+ /* Multiply the contents of reg[] by a number */
+ short int temp[112] = {0};
+ short int accum[112] = {0};
+ int i;
+
+ binary_load(temp, data, strlen(data));
+
+ for (i = 0; i < 102; i++) {
+ if (temp[i] == 1) {
+ binary_add(accum, reg);
+ }
+ shiftup(reg);
}
-
- /* Main algorithm requires t->hi < v */
- if (t->hi >= v) {
- qhi = t->hi / v;
- t->hi %= v;
+
+ for (i = 0; i < 112; i++) {
+ reg[i] = accum[i];
}
+}
- /* Normalize by shifting v left just enough so that its high-order
- * bit is on, and shift t left the same amount. Note don't need extra
- * high-end digit for dividend as t->hi < v */
-
- norm_shift = clz_u64(v);
- v <<= norm_shift;
- vn1 = v >> 32;
- vn0 = v & MASK32;
-
- if (norm_shift > 0) {
- tnhi = (t->hi << norm_shift) | (t->lo >> (64 - norm_shift));
- tnlo = t->lo << norm_shift;
- } else {
- tnhi = t->hi;
- tnlo = t->lo;
- }
+void shiftdown(short int buffer[]) {
+ int i;
- tnlo1 = tnlo >> 32;
- tnlo0 = tnlo & MASK32;
+ buffer[102] = 0;
+ buffer[103] = 0;
- /* Compute qhat1 estimate */
+ for (i = 0; i < 102; i++) {
+ buffer[i] = buffer[i + 1];
+ }
+}
- qhat1 = tnhi / vn1; /* Divide first digit of v into first 2 digits of t */
- rhat = tnhi % vn1;
+void shiftup(short int buffer[]) {
+ int i;
- /* Loop until qhat1 one digit and <= (rhat * b + 3rd digit of t) / vn0 */
- for (tmp = qhat1 * vn0; qhat1 >= b || tmp > (rhat << 32) + tnlo1; tmp -= vn0) {
- --qhat1;
- rhat += vn1;
- if (rhat >= b) { /* Must check here as (rhat << 32) would overflow */
- break; /* qhat1 * vn0 < b * b (since vn0 < b) */
- }
+ for (i = 102; i > 0; i--) {
+ buffer[i] = buffer[i - 1];
}
- /* Note qhat1 will be exact as have fully divided by 2-digit divisor
- * (can only be too high by 1 (and require "add back" step) if divisor at least 3 digits) */
- rnhilo1 = (tnhi << 32) + tnlo1 - (qhat1 * v); /* Note high digit (if any) of both tnhi and (qhat1 * v) shifted out */
+ buffer[0] = 0;
+}
- /* Compute qhat0 estimate */
+short int islarger(short int accum[], short int reg[]) {
+ /* Returns 1 if accum[] is larger than reg[], else 0 */
+ int i, latch, larger;
+ latch = 0;
+ i = 103;
+ larger = 0;
- qhat0 = rnhilo1 / vn1; /* Divide first digit of v into 2-digit remains of first 3 digits of t */
- rhat = rnhilo1 % vn1;
- /* Loop until qhat0 one digit and <= (rhat * b + 4th digit of t) / vn0 */
- for (tmp = qhat0 * vn0; qhat0 >= b || tmp > (rhat << 32) + tnlo0; tmp -= vn0) {
- --qhat0;
- rhat += vn1;
- if (rhat >= b) {
- break;
+ do {
+ if ((accum[i] == 1) && (reg[i] == 0)) {
+ latch = 1;
+ larger = 1;
}
- }
- /* Similarly qhat0 will be exact */
-
- t->lo = (qhat1 << 32) | qhat0;
- t->hi = qhi;
+ if ((accum[i] == 0) && (reg[i] == 1)) {
+ latch = 1;
+ }
+ i--;
+ } while ((latch == 0) && (i >= 0));
- /* Unnormalize remainder */
- return ((rnhilo1 << 32) + tnlo0 - (qhat0 * v)) >> norm_shift;
+ return larger;
}
-/* Unset a bit (zero-based) */
-INTERNAL void large_unset_bit(large_int *t, int bit) {
- if (bit < 64) {
- t->lo &= ~(((uint64_t) 1) << bit);
- } else if (bit < 128) {
- t->hi &= ~(((uint64_t) 1) << (bit - 64));
- }
-}
+void binary_load(short int reg[], char data[], const size_t src_len) {
+ size_t read;
+ int i;
+ short int temp[112] = {0};
-/* Ouput large_int into an unsigned int array of size `size`, each element containing `bits` bits */
-INTERNAL void large_uint_array(const large_int *t, unsigned int *uint_array, int size, int bits) {
- int i, j;
- uint64_t mask;
- if (bits <= 0) {
- bits = 8;
- } else if (bits > 32) {
- bits = 32;
- }
- mask = ~(((uint64_t) -1) << bits);
- for (i = 0, j = 0; i < size && j < 64; i++, j += bits) {
- uint_array[size - 1 - i] = (t->lo >> j) & mask; /* Little-endian order */
+ for (i = 0; i < 112; i++) {
+ reg[i] = 0;
}
- if (i < size) {
- if (j != 64) {
- j -= 64;
- /* (first j bits of t->hi) << (bits - j) | (last (bits - j) bits of t->lo) */
- uint_array[size - i] = ((t->hi & ~((((uint64_t) -1) << j))) << (bits - j)) | (t->lo >> (64 - (bits - j)) & mask);
- } else {
- j = 0;
- }
- for (; i < size && j < 64; i++, j += bits) {
- uint_array[size - 1 - i] = (t->hi >> j) & mask;
+
+ for (read = 0; read < src_len; read++) {
+
+ for (i = 0; i < 112; i++) {
+ temp[i] = reg[i];
}
- if (i < size && j != 128) {
- uint_array[size - 1 - i] = t->hi >> (j - bits) & mask;
+
+ for (i = 0; i < 9; i++) {
+ binary_add(reg, temp);
}
- }
-}
-/* As `large_uint_array()` above, except output to unsigned char array */
-INTERNAL void large_uchar_array(const large_int *t, unsigned char *uchar_array, int size, int bits) {
- int i;
-#ifndef _MSC_VER
- unsigned int uint_array[size ? size : 1]; /* Avoid run-time warning if size is 0 */
-#else
- unsigned int *uint_array = (unsigned int *) _alloca((size ? size : 1) * sizeof(unsigned int));
-#endif
+ for (i = 0; i < 112; i++) {
+ temp[i] = 0;
+ }
- large_uint_array(t, uint_array, size, bits);
+ for (i = 0; i < 4; i++) {
+ if (ctoi(data[read]) & (0x01 << i)) temp[i] = 1;
+ }
- for (i = 0; i < size; i++) {
- uchar_array[i] = uint_array[i];
+ binary_add(reg, temp);
}
}
-/* Output formatted large_int to stdout */
-INTERNAL void large_print(large_int *t) {
- char buf[35]; /* 2 (0x) + 32 (hex) + 1 */
- puts(large_dump(t, buf));
-}
-
-/* Format large_int into buffer, which should be at least 35 chars in size */
-INTERNAL char *large_dump(large_int *t, char *buf) {
- unsigned int tlo1 = large_lo(t) >> 32;
- unsigned int tlo0 = large_lo(t) & MASK32;
- unsigned int thi1 = large_hi(t) >> 32;
- unsigned int thi0 = large_hi(t) & MASK32;
-
- if (thi1) {
- sprintf(buf, "0x%X%08X%08X%08X", thi1, thi0, tlo1, tlo0);
- } else if (thi0) {
- sprintf(buf, "0x%X%08X%08X", thi0, tlo1, tlo0);
- } else if (tlo1) {
- sprintf(buf, "0x%X%08X", tlo1, tlo0);
- } else {
- sprintf(buf, "0x%X", tlo0);
- }
- return buf;
-}
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#ifndef __LARGE_H
#define __LARGE_H
-#ifndef _MSC_VER
-#include <stdint.h>
-#else
-#include "ms_stdint.h"
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-typedef struct { uint64_t lo; uint64_t hi; } large_int;
-
-#define large_lo(s) ((s)->lo)
-#define large_hi(s) ((s)->hi)
-
-/* Set 128-bit `t` from 128-bit `s` */
-#define large_load(t, s) do { (t)->lo = (s)->lo; (t)->hi = (s)->hi; } while (0)
-
-/* Set 128-bit `t` from 64-bit `s` */
-#define large_load_u64(t, s) do { (t)->lo = (s); (t)->hi = 0; } while (0)
-
-INTERNAL void large_load_str_u64(large_int *t, const unsigned char *s, int length);
-
-INTERNAL void large_add(large_int *t, const large_int *s);
-INTERNAL void large_add_u64(large_int *t, uint64_t s);
-
-INTERNAL void large_sub_u64(large_int *t, uint64_t s);
-
-INTERNAL void large_mul_u64(large_int *t, uint64_t s);
-
-INTERNAL uint64_t large_div_u64(large_int *t, uint64_t v);
-
-INTERNAL void large_unset_bit(large_int *t, int bit);
-
-INTERNAL void large_uint_array(const large_int *t, unsigned int *uint_array, int size, int bits);
-INTERNAL void large_uchar_array(const large_int *t, unsigned char *uchar_array, int size, int bits);
-
-INTERNAL void large_print(large_int *t);
-INTERNAL char *large_dump(large_int *t, char *buf);
+extern void binary_load(short int reg[], char data[], const size_t src_len);
+extern void binary_add(short int accumulator[], short int input_buffer[]);
+extern void binary_subtract(short int accumulator[], short int input_buffer[]);
+extern void shiftdown(short int buffer[]);
+extern void shiftup(short int buffer[]);
+extern short int islarger(short int accum[], short int reg[]);
+extern void binary_multiply(short int reg[], char data[]);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __LARGE_H */
+
/* library.c - external functions of libzint
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2019 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <errno.h>
#ifdef _MSC_VER
#include <malloc.h>
#include "common.h"
#include "gs1.h"
-#define TECHNETIUM "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
+#define TECHNETIUM "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
struct zint_symbol *ZBarcode_Create() {
struct zint_symbol *symbol;
symbol->scale = 1.0;
symbol->option_1 = -1;
symbol->option_2 = 0;
- symbol->option_3 = 0;
+ symbol->option_3 = 928; // PDF_MAX
symbol->show_hrt = 1; // Show human readable text
symbol->fontsize = 8;
symbol->input_mode = DATA_MODE;
+ strcpy(symbol->primary, "");
+ memset(&(symbol->encoded_data[0][0]), 0, sizeof (symbol->encoded_data));
+ memset(&(symbol->row_height[0]), 0, sizeof (symbol->row_height));
symbol->bitmap = NULL;
symbol->bitmap_width = 0;
symbol->bitmap_height = 0;
symbol->eci = 0; // Default 0 uses ECI 3
symbol->dot_size = 4.0 / 5.0;
- symbol->vector = NULL;
symbol->debug = 0;
return symbol;
}
-INTERNAL void vector_free(struct zint_symbol *symbol); /* Free vector structures */
+extern void render_free(struct zint_symbol *symbol); /* Free render structures */
+extern void vector_free(struct zint_symbol *symbol); /* Free vector structures */
void ZBarcode_Clear(struct zint_symbol *symbol) {
int i, j;
symbol->bitmap_height = 0;
// If there is a rendered version, ensure its memory is released
+ render_free(symbol);
vector_free(symbol);
}
free(symbol->bitmap);
// If there is a rendered version, ensure its memory is released
+ render_free(symbol);
vector_free(symbol);
free(symbol);
}
-INTERNAL int get_best_eci(unsigned char source[], size_t length); /* Calculate suitable ECI mode */
-INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
-
-
-INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN system barcodes */
-INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 3 from 9 (or Code 39) */
-INTERNAL int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmazentral Nummer (PZN) */
-INTERNAL int ec39(struct zint_symbol *symbol, unsigned char source[], int length); /* Extended Code 3 from 9 (or Code 39+) */
-INTERNAL int codabar(struct zint_symbol *symbol, unsigned char source[], int length); /* Codabar - a simple substitution cipher */
-INTERNAL int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Standard (& Matrix) */
-INTERNAL int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Industrial */
-INTERNAL int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 IATA */
-INTERNAL int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Code 2 of 5 Interleaved */
-INTERNAL int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Data Logic */
-INTERNAL int itf14(struct zint_symbol *symbol, unsigned char source[], int length); /* ITF-14 */
-INTERNAL int dpleit(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Leitcode */
-INTERNAL int dpident(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Identcode */
-INTERNAL int c93(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 93 - a re-working of Code 39+, generates 2 check digits */
-INTERNAL int code_128(struct zint_symbol *symbol, const unsigned char source[], const size_t length); /* Code 128 and NVE-18 */
-INTERNAL int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* EAN-128 (GS1-128) */
-INTERNAL int code_11(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 11 */
-INTERNAL int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length); /* MSI Plessey */
-INTERNAL int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen ASCII */
-INTERNAL int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen Numeric */
-INTERNAL int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Plessey Code */
-INTERNAL int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode One Track */
-INTERNAL int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length); /* Flattermarken */
-INTERNAL int fim(struct zint_symbol *symbol, unsigned char source[], int length); /* Facing Identification Mark */
-INTERNAL int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode Two Track */
-INTERNAL int post_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* Postnet */
-INTERNAL int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* PLANET */
-INTERNAL int imail(struct zint_symbol *symbol, unsigned char source[], int length); /* Intelligent Mail (aka USPS OneCode) */
-INTERNAL int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* RM4SCC */
-INTERNAL int australia_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Australia Post 4-state */
-INTERNAL int code16k(struct zint_symbol *symbol, unsigned char source[],const size_t length); /* Code 16k */
-INTERNAL int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* PDF417 */
-INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length); /* Micro PDF417 */
-INTERNAL int maxicode(struct zint_symbol *symbol, unsigned char source[], int length); /* Maxicode */
-INTERNAL int rss14(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS-14 */
-INTERNAL int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Limited */
-INTERNAL int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Expanded */
-INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int length); /* Composite Symbology */
-INTERNAL int kix_code(struct zint_symbol *symbol, unsigned char source[], int length); /* TNT KIX Code */
-INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Aztec Code */
-INTERNAL int code32(struct zint_symbol *symbol, unsigned char source[], int length); /* Italian Pharmacode */
-INTERNAL int daft_code(struct zint_symbol *symbol, unsigned char source[], int length); /* DAFT Code */
-INTERNAL int ean_14(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN-14 */
-INTERNAL int nve_18(struct zint_symbol *symbol, unsigned char source[], int length); /* NVE-18 */
-INTERNAL int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Micro QR Code */
-INTERNAL int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length); /* Aztec Runes */
-INTERNAL int korea_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Korea Post */
-INTERNAL int japan_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Japanese Post */
-INTERNAL int code_49(struct zint_symbol *symbol, unsigned char source[], const int length); /* Code 49 */
-INTERNAL int channel_code(struct zint_symbol *symbol, unsigned char source[], int length); /* Channel Code */
-INTERNAL int code_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Code One */
-INTERNAL int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Grid Matrix */
-INTERNAL int han_xin(struct zint_symbol * symbol, const unsigned char source[], size_t length); /* Han Xin */
-INTERNAL int dotcode(struct zint_symbol * symbol, const unsigned char source[], int length); /* DotCode */
-INTERNAL int codablock(struct zint_symbol * symbol, const unsigned char source[], const size_t length); /* Codablock */
-INTERNAL int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* UPNQR */
-INTERNAL int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* QR Code */
-INTERNAL int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Data Matrix (IEC16022) */
-INTERNAL int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* VIN Code (Vehicle Identification Number) */
-INTERNAL int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Royal Mail 4-state Mailmark */
-INTERNAL int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Ultracode */
-INTERNAL int rmqr(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* rMQR */
-
-INTERNAL int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to PNG/BMP/PCX */
-INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to EPS/EMF/SVG */
-
-static void error_tag(char error_string[], int error_number) {
+extern int get_best_eci(unsigned char source[], size_t length); /* Calculate suitable ECI mode */
+extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
+
+
+extern int eanx(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN system barcodes */
+extern int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 3 from 9 (or Code 39) */
+extern int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmazentral Nummer (PZN) */
+extern int ec39(struct zint_symbol *symbol, unsigned char source[], int length); /* Extended Code 3 from 9 (or Code 39+) */
+extern int codabar(struct zint_symbol *symbol, unsigned char source[], int length); /* Codabar - a simple substitution cipher */
+extern int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Standard (& Matrix) */
+extern int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Industrial */
+extern int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 IATA */
+extern int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Code 2 of 5 Interleaved */
+extern int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Data Logic */
+extern int itf14(struct zint_symbol *symbol, unsigned char source[], int length); /* ITF-14 */
+extern int dpleit(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Leitcode */
+extern int dpident(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Identcode */
+extern int c93(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 93 - a re-working of Code 39+, generates 2 check digits */
+extern int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 128 and NVE-18 */
+extern int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* EAN-128 (GS1-128) */
+extern int code_11(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 11 */
+extern int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length); /* MSI Plessey */
+extern int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen ASCII */
+extern int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen Numeric */
+extern int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Plessey Code */
+extern int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode One Track */
+extern int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length); /* Flattermarken */
+extern int fim(struct zint_symbol *symbol, unsigned char source[], int length); /* Facing Identification Mark */
+extern int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode Two Track */
+extern int post_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* Postnet */
+extern int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* PLANET */
+extern int imail(struct zint_symbol *symbol, unsigned char source[], int length); /* Intelligent Mail (aka USPS OneCode) */
+extern int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* RM4SCC */
+extern int australia_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Australia Post 4-state */
+extern int code16k(struct zint_symbol *symbol, unsigned char source[],const size_t length); /* Code 16k */
+extern int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* PDF417 */
+extern int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length); /* Micro PDF417 */
+extern int maxicode(struct zint_symbol *symbol, unsigned char source[], int length); /* Maxicode */
+extern int rss14(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS-14 */
+extern int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Limited */
+extern int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Expanded */
+extern int composite(struct zint_symbol *symbol, unsigned char source[], int length); /* Composite Symbology */
+extern int kix_code(struct zint_symbol *symbol, unsigned char source[], int length); /* TNT KIX Code */
+extern int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Aztec Code */
+extern int code32(struct zint_symbol *symbol, unsigned char source[], int length); /* Italian Pharmacode */
+extern int daft_code(struct zint_symbol *symbol, unsigned char source[], int length); /* DAFT Code */
+extern int ean_14(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN-14 */
+extern int nve_18(struct zint_symbol *symbol, unsigned char source[], int length); /* NVE-18 */
+extern int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Micro QR Code */
+extern int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length); /* Aztec Runes */
+extern int korea_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Korea Post */
+extern int japan_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Japanese Post */
+extern int code_49(struct zint_symbol *symbol, unsigned char source[], const int length); /* Code 49 */
+extern int channel_code(struct zint_symbol *symbol, unsigned char source[], int length); /* Channel Code */
+extern int code_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Code One */
+extern int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Grid Matrix */
+extern int han_xin(struct zint_symbol * symbol, const unsigned char source[], size_t length); /* Han Xin */
+extern int dotcode(struct zint_symbol * symbol, const unsigned char source[], int length); /* DotCode */
+extern int codablock(struct zint_symbol * symbol, const unsigned char source[], const size_t length); /* Codablock */
+extern int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* UPNQR */
+extern int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* QR Code */
+extern int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Data Matrix (IEC16022) */
+extern int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* VIN Code (Vehicle Identification Number) */
+extern int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Royal Mail 4-state Mailmark */
+extern int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Ultracode */
+
+extern int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to PNG/BMP/PCX */
+extern int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to EPS/EMF/SVG */
+
+extern int render_plot(struct zint_symbol *symbol, float width, float height); /* Plot to gLabels - depreciated */
+
+void error_tag(char error_string[], int error_number) {
if (error_number != 0) {
char error_buffer[100];
}
/* Output a hexadecimal representation of the rendered symbol */
-static int dump_plot(struct zint_symbol *symbol) {
+int dump_plot(struct zint_symbol *symbol) {
FILE *f;
int i, r;
char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
static int check_force_gs1(const int symbology) {
/* Returns 1 if symbology MUST have GS1 data */
-
+
int result = is_composite(symbology);
switch (symbology) {
result = 1;
break;
}
-
+
return result;
}
case BARCODE_CODE49:
case BARCODE_QRCODE:
case BARCODE_DOTCODE:
- case BARCODE_RMQR:
- case BARCODE_ULTRA:
result = 1;
break;
}
case BARCODE_HANXIN:
case BARCODE_DOTCODE:
case BARCODE_UPNQR:
- case BARCODE_RMQR:
result = 1;
break;
}
static int is_linear(const int symbology) {
/* Returns 1 if symbology is linear (1 dimensional) */
-
+
int result = 0;
switch (symbology) {
case BARCODE_CODE11:
result = 1;
break;
}
-
+
return result;
}
case BARCODE_VIN:
case BARCODE_MAILMARK:
case BARCODE_ULTRA:
- case BARCODE_RMQR:
result = 1;
break;
}
return result;
}
-static int reduced_charset(struct zint_symbol *symbol, const unsigned char *source, size_t in_length);
-
-static int extended_or_reduced_charset(struct zint_symbol *symbol, const unsigned char *source, const int length) {
+static int extended_charset(struct zint_symbol *symbol, const unsigned char *source, const int length) {
int error_number = 0;
-
+
+ /* These are the "elite" standards which can support multiple character sets */
switch (symbol->symbology) {
- /* These are the "elite" standards which have support for specific character sets */
case BARCODE_QRCODE: error_number = qr_code(symbol, source, length);
break;
case BARCODE_MICROQR: error_number = microqr(symbol, source, length);
break;
case BARCODE_UPNQR: error_number = upnqr(symbol, source, length);
break;
- case BARCODE_RMQR: error_number = rmqr(symbol, source, length);
- break;
- default: error_number = reduced_charset(symbol, source, length);
- break;
}
return error_number;
}
static int reduced_charset(struct zint_symbol *symbol, const unsigned char *source, size_t in_length) {
- /* These are the "norm" standards which only support Latin-1 at most, though a few support ECI */
+ /* These are the "norm" standards which only support Latin-1 at most */
int error_number = 0;
#ifndef _MSC_VER
#else
unsigned char* preprocessed = (unsigned char*) _alloca(in_length + 1);
#endif
-
- if (symbol->symbology == BARCODE_ITF14) {
+
+ if (symbol->symbology == BARCODE_CODE16K) {
+ symbol->whitespace_width = 16;
+ symbol->border_width = 2;
+ if (!(symbol->output_options & BARCODE_BIND)) {
+ symbol->output_options += BARCODE_BIND;
+ }
+ }
+ else
+ if (symbol->symbology == BARCODE_ITF14) {
symbol->whitespace_width = 20;
symbol->border_width = 8;
if (!(symbol->output_options & BARCODE_BOX)) {
symbol->output_options += BARCODE_BOX;
}
}
-
+
switch (symbol->input_mode & 0x07) {
case DATA_MODE:
case GS1_MODE:
preprocessed[in_length] = '\0';
break;
case UNICODE_MODE:
- /* Prior check ensures ECI only set for those that support it */
- error_number = utf_to_eci(symbol->eci && symbol->eci <= 899 ? symbol->eci : 3, source, preprocessed, &in_length);
+ error_number = utf_to_eci(symbol->eci, source, preprocessed, &in_length);
if (error_number != 0) {
strcpy(symbol->errtxt, "204: Invalid characters in input data");
return error_number;
}
break;
}
-
+
if ((symbol->height == 0) && is_linear(symbol->symbology)) {
symbol->height = 50;
}
-
+
switch (symbol->symbology) {
case BARCODE_C25MATRIX: error_number = matrix_two_of_five(symbol, preprocessed, in_length);
break;
return error_number;
}
-static void strip_bom(unsigned char *source, int *input_length) {
+void strip_bom(unsigned char *source, int *input_length) {
int i;
if (*input_length > 3) {
}
}
-static int escape_char_process(struct zint_symbol *symbol, unsigned char *input_string, int *length) {
+int escape_char_process(struct zint_symbol *symbol, unsigned char *input_string, int *length) {
int error_number;
int in_posn, out_posn;
int hex1, hex2;
in_posn = 0;
out_posn = 0;
-
+
do {
if (input_string[in_posn] == '\\') {
- if (in_posn + 1 >= *length) {
- strcpy(symbol->errtxt, "236: Incomplete escape character in input data");
- return ZINT_ERROR_INVALID_DATA;
- }
switch (input_string[in_posn + 1]) {
case '0': escaped_string[out_posn] = 0x00; /* Null */
in_posn += 2;
hex1 = ctoi(input_string[in_posn + 2]);
hex2 = ctoi(input_string[in_posn + 3]);
if ((hex1 >= 0) && (hex2 >= 0)) {
- if (hex1 > 7 && (symbol->input_mode & 0x07) == UNICODE_MODE) {
+ if (hex1 > 7 && (symbol->input_mode & UNICODE_MODE) != 0) {
// Convert to UTF-8
escaped_string[out_posn] = 0xc0 + (hex1 >> 2);
out_posn++;
}
out_posn++;
} while (in_posn < *length);
-
+
memcpy(input_string, escaped_string, out_posn);
input_string[out_posn] = '\0';
*length = out_posn;
-
+
error_number = 0;
return error_number;
int ZBarcode_Encode(struct zint_symbol *symbol, const unsigned char *source, int in_length) {
int error_number, error_buffer, i;
+ int input_mode = symbol->input_mode;
#ifdef _MSC_VER
unsigned char* local_source;
#endif
}
}
/* Everything from 128 up is Zint-specific */
- if (symbol->symbology > 145) {
+ if (symbol->symbology >= 145) {
strcpy(symbol->errtxt, "216: Symbology out of range, using Code 128");
symbol->symbology = BARCODE_CODE128;
error_number = ZINT_WARN_INVALID_OPTION;
error_number = ZINT_ERROR_INVALID_OPTION;
}
- if ((symbol->input_mode & 0x07) > 2) {
- symbol->input_mode = DATA_MODE; /* Reset completely */
- }
-
if (error_number > 4) {
error_tag(symbol->errtxt, error_number);
return error_number;
local_source[in_length] = '\0';
/* Start acting on input mode */
- if (symbol->input_mode & ESCAPE_MODE) {
+ if (input_mode & ESCAPE_MODE) {
error_number = escape_char_process(symbol, local_source, &in_length);
if (error_number != 0) {
error_tag(symbol->errtxt, error_number);
return error_number;
}
+ input_mode -= ESCAPE_MODE;
}
- if ((symbol->input_mode & 0x07) == UNICODE_MODE) {
- strip_bom(local_source, &in_length);
- }
-
- if (((symbol->input_mode & 0x07) == GS1_MODE) || (check_force_gs1(symbol->symbology))) {
+ if ((input_mode == GS1_MODE) || (check_force_gs1(symbol->symbology))) {
if (gs1_compliant(symbol->symbology) == 1) {
// Reduce input for composite and non-forced symbologies, others (EAN128 and RSS_EXP based) will handle it themselves
if (is_composite(symbol->symbology) || !check_force_gs1(symbol->symbology)) {
}
}
- error_number = extended_or_reduced_charset(symbol, local_source, in_length);
+ if ((input_mode < 0) || (input_mode > 2)) {
+ input_mode = DATA_MODE;
+ }
+
+ if ((symbol->eci != 0) && (symbol->eci != 26)) {
+ input_mode = DATA_MODE;
+ }
+
+ if (input_mode == UNICODE_MODE) {
+ strip_bom(local_source, &in_length);
+ }
+
+ switch (symbol->symbology) {
+ case BARCODE_QRCODE:
+ case BARCODE_MICROQR:
+ case BARCODE_GRIDMATRIX:
+ case BARCODE_HANXIN:
+ case BARCODE_UPNQR:
+ error_number = extended_charset(symbol, local_source, in_length);
+ break;
+ default:
+ error_number = reduced_charset(symbol, local_source, in_length);
+ break;
+ }
- if ((error_number == ZINT_ERROR_INVALID_DATA) && symbol->eci == 0 && supports_eci(symbol->symbology)
- && (symbol->input_mode & 0x07) == UNICODE_MODE) {
+ if ((error_number == ZINT_ERROR_INVALID_DATA) && (supports_eci(symbol->symbology)
+ && (input_mode == UNICODE_MODE))) {
/* Try another ECI mode */
symbol->eci = get_best_eci(local_source, in_length);
- error_number = extended_or_reduced_charset(symbol, local_source, in_length);
-
+ switch (symbol->symbology) {
+ case BARCODE_QRCODE:
+ case BARCODE_MICROQR:
+ case BARCODE_GRIDMATRIX:
+ case BARCODE_HANXIN:
+ {
+#ifndef _MSC_VER
+ unsigned char temp[in_length + 1];
+#else
+ unsigned char *temp = (unsigned char*) _alloca(in_length + 1);
+#endif
+ size_t temp_len = in_length;
+ memcpy(temp, local_source, temp_len);
+ temp[temp_len] = '\0';
+ error_number = utf_to_eci(symbol->eci, local_source, temp, &temp_len);
+ if (error_number == 0) {
+ in_length = (int) temp_len;
+ memcpy(local_source, temp, in_length);
+ local_source[in_length] = '\0';
+ error_number = extended_charset(symbol, local_source, in_length);
+ }
+ }
+ break;
+ default:
+ error_number = reduced_charset(symbol, local_source, in_length);
+ break;
+ }
+
if (error_number == 0) {
error_number = ZINT_WARN_USES_ECI;
- if (!(symbol->debug & ZINT_DEBUG_TEST)) {
- strcpy(symbol->errtxt, "222: Encoded data includes ECI");
- }
- if (symbol->debug & ZINT_DEBUG_PRINT) printf("Data ECI %d\n", symbol->eci);
+ strcpy(symbol->errtxt, "222: Encoded data includes ECI");
+ if (symbol->debug) printf("Data ECI %d\n", symbol->eci);
}
}
}
error_tag(symbol->errtxt, error_number);
- if (error_number < 5) {
+ if (error_number <= 5) {
check_row_heights(symbol);
}
error_number = dump_plot(symbol);
} else
if (!(strcmp(output, "EPS"))) {
- error_number = plot_vector(symbol, rotate_angle, OUT_EPS_FILE);
+ error_number = plot_vector(symbol, rotate_angle, OUT_EPS_FILE);
} else
if (!(strcmp(output, "SVG"))) {
error_number = plot_vector(symbol, rotate_angle, OUT_SVG_FILE);
return ZINT_ERROR_INVALID_OPTION;
}
- if (symbol->output_options & BARCODE_DOTTY_MODE) {
- if (!(is_matrix(symbol->symbology))) {
- strcpy(symbol->errtxt, "237: Selected symbology cannot be rendered as dots");
- error_tag(symbol->errtxt, ZINT_ERROR_INVALID_OPTION);
- return ZINT_ERROR_INVALID_OPTION;
- }
- }
-
error_number = plot_raster(symbol, rotate_angle, OUT_BUFFER);
error_tag(symbol->errtxt, error_number);
return error_number;
return ZINT_ERROR_INVALID_OPTION;
}
- if (symbol->output_options & BARCODE_DOTTY_MODE) {
- if (!(is_matrix(symbol->symbology))) {
- strcpy(symbol->errtxt, "238: Selected symbology cannot be rendered as dots");
- error_tag(symbol->errtxt, ZINT_ERROR_INVALID_OPTION);
- return ZINT_ERROR_INVALID_OPTION;
- }
- }
-
error_number = plot_vector(symbol, rotate_angle, OUT_BUFFER);
error_tag(symbol->errtxt, error_number);
return error_number;
if (error_number == 0) {
error_number = first_err;
}
-
+
return error_number;
}
if (error_number == 0) {
error_number = first_err;
}
-
+
return error_number;
}
int ZBarcode_Encode_File(struct zint_symbol *symbol, char *filename) {
FILE *file;
unsigned char *buffer;
- long fileLen;
- size_t n;
- int nRead = 0;
+ unsigned long fileLen;
+ unsigned int nRead = 0, n = 0;
int ret;
if (!strcmp(filename, "-")) {
file = stdin;
- fileLen = 7900;
+ fileLen = 7100;
} else {
file = fopen(filename, "rb");
if (!file) {
fileLen = ftell(file);
fseek(file, 0, SEEK_SET);
- if (fileLen > 7900) {
- /* The largest amount of data that can be encoded is 7827 numeric digits in Han Xin Code */
+ if (fileLen > 7100) {
+ /* The largest amount of data that can be encoded is 7089 numeric digits in QR Code */
strcpy(symbol->errtxt, "230: Input file too long");
error_tag(symbol->errtxt, ZINT_ERROR_INVALID_DATA);
fclose(file);
return ZINT_ERROR_INVALID_DATA;
}
- if (fileLen <= 0) {
- strcpy(symbol->errtxt, "235: Input file empty or unseekable");
- error_tag(symbol->errtxt, ZINT_ERROR_INVALID_DATA);
- fclose(file);
- return ZINT_ERROR_INVALID_DATA;
- }
}
/* Allocate memory */
if (!buffer) {
strcpy(symbol->errtxt, "231: Internal memory error");
error_tag(symbol->errtxt, ZINT_ERROR_MEMORY);
- if (strcmp(filename, "-")) {
+ if (strcmp(filename, "-"))
fclose(file);
- }
return ZINT_ERROR_MEMORY;
}
n = fread(buffer + nRead, 1, fileLen - nRead, file);
if (ferror(file)) {
strcpy(symbol->errtxt, strerror(errno));
- if (strcmp(filename, "-")) {
- fclose(file);
- }
- free(buffer);
return ZINT_ERROR_INVALID_DATA;
}
nRead += n;
} while (!feof(file) && (0 < n) && (nRead < fileLen));
- if (strcmp(filename, "-")) {
- fclose(file);
- }
+ fclose(file);
ret = ZBarcode_Encode(symbol, buffer, nRead);
free(buffer);
return ret;
if (error_number >= 5) {
return error_number;
}
-
+
first_err = error_number;
error_number = ZBarcode_Print(symbol, rotate_angle);
if (error_number == 0) {
error_number = first_err;
}
-
+
return error_number;
}
if (error_number >= 5) {
return error_number;
}
-
+
first_err = error_number;
error_number = ZBarcode_Buffer(symbol, rotate_angle);
if (error_number == 0) {
if (error_number >= 5) {
return error_number;
}
-
+
first_err = error_number;
error_number = ZBarcode_Buffer_Vector(symbol, rotate_angle);
if (error_number == 0) {
return error_number;
}
+/*
+ * Rendering support, initially added by Sam Lown.
+ *
+ * Converts encoded data into an intermediate format to be interpreted
+ * in other applications using this library.
+ *
+ * If the width and height are not set to zero, the barcode will be resized to those
+ * dimensions. The symbol->scale and symbol->height values are totally ignored in this case.
+ *
+ */
+int ZBarcode_Render(struct zint_symbol *symbol, const float width, const float height) {
+ // Send the request to the render_plot method
+ return render_plot(symbol, width, height);
+}
+
int ZBarcode_Version() {
return (ZINT_VERSION_MAJOR * 10000) + (ZINT_VERSION_MINOR * 100) + ZINT_VERSION_RELEASE;
}
+
#else\r
VS_VERSION_INFO VERSIONINFO\r
#endif\r
- FILEVERSION 2,8,1,0\r
- PRODUCTVERSION 2,8,1,0\r
+ FILEVERSION 2,6,0,0\r
+ PRODUCTVERSION 2,6,0,0\r
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK\r
#ifdef _DEBUG\r
FILEFLAGS VS_FF_DEBUG\r
//language ID = U.S. English, char set = Windows, Multilingual\r
BEGIN\r
VALUE "FileDescription", "libzint barcode library\0"\r
- VALUE "FileVersion", "2.8.1.0\0"\r
+ VALUE "FileVersion", "2.6.0.0\0"\r
VALUE "InternalName", "zint.dll\0"\r
- VALUE "LegalCopyright", "Copyright © 2020 Robin Stuart & BogDan Vatra\0"\r
+ VALUE "LegalCopyright", "Copyright © 2017 Robin Stuart & BogDan Vatra\0"\r
VALUE "OriginalFilename", "zint.dll\0"\r
VALUE "ProductName", "libzint\0"\r
- VALUE "ProductVersion", "2.8.1.0\0"\r
+ VALUE "ProductVersion", "2.6.0.0\0"\r
VALUE "License", "BSD License version 3\0"\r
VALUE "WWW", "http://www.sourceforge.net/projects/zint" \r
END\r
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2018 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/*
* Developed in accordance with "Royal Mail Mailmark barcode C encoding and deconding instructions"
*/
#include <string.h>
+#include <stdlib.h>
#include <stdio.h>
#ifdef _MSC_VER
#include <malloc.h>
2, 5, 7, 8, 13, 14, 15, 16, 21, 22, 23, 0, 1, 3, 4, 6, 9, 10, 11, 12, 17, 18, 19, 20, 24, 25
};
-static int verify_character(char input, char type) {
+int verify_character(char input, char type) {
int val = 0;
switch (type) {
}
}
-static int verify_postcode(char* postcode, int type) {
+int verify_postcode(char* postcode, int type) {
int i;
char pattern[11];
}
/* Royal Mail Mailmark */
-INTERNAL int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
+int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
char local_source[28];
int format;
char postcode[10];
int postcode_type;
char pattern[10];
- large_int destination_postcode;
- large_int b;
- large_int cdv;
+ short int destination_postcode[112];
+ short int a[112];
+ short int b[112];
+ short int temp[112];
+ short int cdv[112];
unsigned char data[26];
int data_top, data_step;
unsigned char check[7];
short int extender[27];
char bar[80];
int check_count;
- int i, j, len;
+ int i, j;
int length = (int) in_length;
if (length > 26) {
to_upper((unsigned char*) local_source);
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ if (symbol->debug) {
printf("Producing Mailmark %s\n", local_source);
}
* 7 = International designation
*/
+ postcode_type = 0;
if (strcmp(postcode, "XY11 ") == 0) {
postcode_type = 7;
} else {
}
// Convert postcode to internal user field
-
- large_load_u64(&destination_postcode, 0);
-
+ for (i = 0; i < 112; i++) {
+ destination_postcode[i] = 0;
+ a[i] = 0;
+ b[i] = 0;
+ }
+
if (postcode_type != 7) {
strcpy(pattern, postcode_format[postcode_type - 1]);
- large_load_u64(&b, 0);
-
+ binary_load(b, "0", 1);
+
for (i = 0; i < 9; i++) {
switch (pattern[i]) {
case 'F':
- large_mul_u64(&b, 26);
- large_add_u64(&b, posn(SET_F, postcode[i]));
+ binary_multiply(b, "26");
+
+ binary_load(temp, "0", 1);
+ for (j = 0; j < 5; j++) {
+ if (posn(SET_F, postcode[i]) & (0x01 << j)) temp[j] = 1;
+ }
+
+ binary_add(b, temp);
break;
case 'L':
- large_mul_u64(&b, 20);
- large_add_u64(&b, posn(SET_L, postcode[i]));
+ binary_multiply(b, "20");
+
+ binary_load(temp, "0", 1);
+ for (j = 0; j < 5; j++) {
+ if (posn(SET_L, postcode[i]) & (0x01 << j)) temp[j] = 1;
+ }
+
+ binary_add(b, temp);
break;
case 'N':
- large_mul_u64(&b, 10);
- large_add_u64(&b, posn(SET_N, postcode[i]));
+ binary_multiply(b, "10");
+
+ binary_load(temp, "0", 1);
+ for (j = 0; j < 4; j++) {
+ if (posn(SET_N, postcode[i]) & (0x01 << j)) temp[j] = 1;
+ }
+
+ binary_add(b, temp);
break;
- // case 'S' ignored as value is 0
+ // case 'S' ignorred as value is 0
}
}
-
- large_load(&destination_postcode, &b);
-
+
// destination_postcode = a + b
- large_load_u64(&b, 1);
+ binary_load(destination_postcode, "0", 1);
+ binary_add(destination_postcode, b);
+
+ binary_load(a, "1", 1);
if (postcode_type == 1) {
- large_add(&destination_postcode, &b);
+ binary_add(destination_postcode, a);
}
- large_add_u64(&b, 5408000000);
+ binary_load(temp, "5408000000", 10);
+ binary_add(a, temp);
if (postcode_type == 2) {
- large_add(&destination_postcode, &b);
+ binary_add(destination_postcode, a);
}
- large_add_u64(&b, 5408000000);
+ binary_load(temp, "5408000000", 10);
+ binary_add(a, temp);
if (postcode_type == 3) {
- large_add(&destination_postcode, &b);
+ binary_add(destination_postcode, a);
}
- large_add_u64(&b, 54080000000);
+ binary_load(temp, "54080000000", 11);
+ binary_add(a, temp);
if (postcode_type == 4) {
- large_add(&destination_postcode, &b);
+ binary_add(destination_postcode, a);
}
- large_add_u64(&b, 140608000000);
+ binary_load(temp, "140608000000", 12);
+ binary_add(a, temp);
if (postcode_type == 5) {
- large_add(&destination_postcode, &b);
+ binary_add(destination_postcode, a);
}
- large_add_u64(&b, 208000000);
+ binary_load(temp, "208000000", 9);
+ binary_add(a, temp);
if (postcode_type == 6) {
- large_add(&destination_postcode, &b);
+ binary_add(destination_postcode, a);
}
}
// Conversion from Internal User Fields to Consolidated Data Value
// Set CDV to 0
- large_load_u64(&cdv, 0);
-
+ binary_load(cdv, "0", 1);
+
// Add Destination Post Code plus DPS
- large_add(&cdv, &destination_postcode);
-
+ binary_add(cdv, destination_postcode);
+
// Multiply by 100,000,000
- large_mul_u64(&cdv, 100000000);
-
+ binary_multiply(cdv, "100000000");
+
// Add Item ID
- large_add_u64(&cdv, item_id);
-
+ binary_load(temp, "0", 1);
+ for (i = 0; i < 31; i++) {
+ if (0x01 & (item_id >> i)) temp[i] = 1;
+ }
+ binary_add(cdv, temp);
+
if (length == 22) {
// Barcode C - Multiply by 100
- large_mul_u64(&cdv, 100);
+ binary_multiply(cdv, "100");
} else {
// Barcode L - Multiply by 1,000,000
- large_mul_u64(&cdv, 1000000);
+ binary_multiply(cdv, "1000000");
}
-
+
// Add Supply Chain ID
- large_add_u64(&cdv, supply_chain_id);
-
+ binary_load(temp, "0", 1);
+ for (i = 0; i < 20; i++) {
+ if (0x01 & (supply_chain_id >> i)) temp[i] = 1;
+ }
+ binary_add(cdv, temp);
+
// Multiply by 15
- large_mul_u64(&cdv, 15);
-
+ binary_multiply(cdv, "15");
+
// Add Class
- large_add_u64(&cdv, mail_class);
-
+ binary_load(temp, "0", 1);
+ for (i = 0; i < 4; i++) {
+ if (0x01 & (mail_class >> i)) temp[i] = 1;
+ }
+ binary_add(cdv, temp);
+
// Multiply by 5
- large_mul_u64(&cdv, 5);
-
+ binary_multiply(cdv, "5");
+
// Add Format
- large_add_u64(&cdv, format);
-
+ binary_load(temp, "0", 1);
+ for (i = 0; i < 4; i++) {
+ if (0x01 & (format >> i)) temp[i] = 1;
+ }
+ binary_add(cdv, temp);
+
// Multiply by 4
- large_mul_u64(&cdv, 4);
-
+ binary_multiply(cdv, "4");
+
// Add Version ID
- large_add_u64(&cdv, version_id);
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ binary_load(temp, "0", 1);
+ for (i = 0; i < 4; i++) {
+ if (0x01 & (version_id >> i)) temp[i] = 1;
+ }
+ binary_add(cdv, temp);
+
+ if (symbol->debug) {
printf("DPC type %d\n", postcode_type);
printf("CDV: ");
- large_print(&cdv);
+ for (i = 96; i >= 0; i-= 4) {
+ j = 0;
+
+ j += cdv[i];
+ j += cdv[i + 1] * 2;
+ j += cdv[i + 2] * 4;
+ j += cdv[i + 3] * 8;
+
+ printf("%c", itoc(j));
+ }
+ printf("\n");
}
}
// Conversion from Consolidated Data Value to Data Numbers
-
+ for (i = 0; i < 112; i++) {
+ b[i] = cdv[i];
+ }
+
for (j = data_top; j >= (data_step + 1); j--) {
- data[j] = large_div_u64(&cdv, 32);
+ for (i = 0; i < 112; i++) {
+ cdv[i] = b[i];
+ b[i] = 0;
+ a[i] = 0;
+ }
+ a[96] = 1;
+ for (i = 91; i >= 0; i--) {
+ b[i] = !islarger(a, cdv);
+ if (b[i] == 1) {
+ binary_subtract(cdv, a);
+ }
+ shiftdown(a);
+ }
+
+ data[j] = (cdv[4] * 16) + (cdv[3] * 8) + (cdv[2] * 4) +
+ (cdv[1] * 2) + cdv[0];
}
for (j = data_step; j >= 0; j--) {
- data[j] = large_div_u64(&cdv, 30);
+ for (i = 0; i < 112; i++) {
+ cdv[i] = b[i];
+ b[i] = 0;
+ a[i] = 0;
+ }
+ a[95] = 1;
+ a[94] = 1;
+ a[93] = 1;
+ a[92] = 1;
+ for (i = 91; i >= 0; i--) {
+ b[i] = !islarger(a, cdv);
+ if (b[i] == 1) {
+ binary_subtract(cdv, a);
+ }
+ shiftdown(a);
+ }
+
+ data[j] = (cdv[4] * 16) + (cdv[3] * 8) + (cdv[2] * 4) +
+ (cdv[1] * 2) + cdv[0];
}
// Generation of Reed-Solomon Check Numbers
data[data_top + i] = check[check_count - i];
}
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ if (symbol->debug) {
printf("Codewords: ");
for (i = 0; i <= data_top + check_count; i++) {
printf("%d ", (int) data[i]);
bar[(length * 3)] = '\0';
- if (symbol->debug & ZINT_DEBUG_PRINT) {
+ if (symbol->debug) {
printf("Bar pattern: %s\n", bar);
}
/* Translate 4-state data pattern to symbol */
j = 0;
- for (i = 0, len = strlen(bar); i < len; i++) {
+ for (i = 0; i < strlen(bar); i++) {
if ((bar[i] == 'F') || (bar[i] == 'A')) {
set_module(symbol, 0, j);
}
/*
libzint - the open source barcode library
- Copyright (C) 2010-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2010-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/* Includes corrections thanks to Monica Swanson @ Source Technologies */
#include "common.h"
#include "maxicode.h"
#include "reedsol.h"
#include <string.h>
+#include <stdlib.h>
-static int maxi_codeword[144];
+int maxi_codeword[144];
/* Handles error correction of primary message */
-static void maxi_do_primary_check() {
+void maxi_do_primary_check() {
unsigned char data[15];
unsigned char results[15];
int j;
}
/* Handles error correction of odd characters in secondary */
-static void maxi_do_secondary_chk_odd(int ecclen) {
+void maxi_do_secondary_chk_odd(int ecclen) {
unsigned char data[100];
unsigned char results[30];
int j;
}
/* Handles error correction of even characters in secondary */
-static void maxi_do_secondary_chk_even(int ecclen) {
+void maxi_do_secondary_chk_even(int ecclen) {
unsigned char data[100];
unsigned char results[30];
int j;
}
/* Moves everything up so that a shift or latch can be inserted */
-static void maxi_bump(int set[], int character[], int bump_posn) {
+void maxi_bump(int set[], int character[], int bump_posn) {
int i;
for (i = 143; i > bump_posn; i--) {
}
/* If the value is present in array, return the value, else return badvalue */
-static int value_in_array(int val, int arr[], int badvalue, int arrLength) {
+int value_in_array(int val, int arr[], int badvalue, int arrLength){
int i;
for(i = 0; i < arrLength; i++){
if(arr[i] == val) return val;
}
/* Choose the best set from previous and next set in the range of the setval array, if no value can be found we return setval[0] */
-static int bestSurroundingSet(int index, int length, int set[], int setval[], int setLength) {
+int bestSurroundingSet(int index, int length, int set[], int setval[], int setLength) {
int badValue = -1;
int option1 = value_in_array(set[index - 1], setval, badValue, setLength);
if (index + 1 < length) {
}
/* Format text according to Appendix A */
-static int maxi_text_process(int mode, unsigned char source[], int length, int eci) {
+int maxi_text_process(int mode, unsigned char source[], int length, int eci) {
/* This code doesn't make use of [Lock in C], [Lock in D]
and [Lock in E] and so is not always the most efficient at
compressing data, but should suffice for most applications */
}
/* Number compression not allowed in primary message */
count = 0;
- for (i = j; i < 144; i++) {
+ for (i = j; i < 143; i++) {
if ((set[i] == 1) && ((character[i] >= 48) && (character[i] <= 57))) {
/* Character is a number */
count++;
do {
if (set[i] == 6) {
/* Number compression */
- char substring[10];
+ char substring[11];
int value;
for (j = 0; j < 9; j++) {
character[i + 5] = (value & 0x3f);
i += 6;
- for (j = i; j < 141; j++) {
+ for (j = i; j < 140; j++) {
set[j] = set[j + 3];
character[j] = character[j + 3];
}
} else {
i++;
}
- } while (i <= 135); /* 144 - 9 */
+ } while (i <= 143);
/* Insert ECI at the beginning of message if needed */
/* Encode ECI assignment numbers according to table 3 */
}
/* Format structured primary for Mode 2 */
-static void maxi_do_primary_2(char postcode[], int country, int service) {
+void maxi_do_primary_2(char postcode[], int country, int service) {
size_t postcode_length;
int postcode_num, i;
}
/* Format structured primary for Mode 3 */
-static void maxi_do_primary_3(char postcode[], int country, int service) {
+void maxi_do_primary_3(char postcode[], int country, int service) {
int i, h;
h = strlen(postcode);
maxi_codeword[9] = ((service & 0x3f0) >> 4);
}
-INTERNAL int maxicode(struct zint_symbol *symbol, unsigned char local_source[], const int length) {
+int maxicode(struct zint_symbol *symbol, unsigned char local_source[], const int length) {
int i, j, block, bit, mode, lp = 0;
int bit_pattern[7], internal_error = 0, eclen;
char postcode[12], countrystr[4], servicestr[4];
return internal_error;
}
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
#include "common.h"
-INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length);
-
+extern int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length);
/* Codabar table checked against EN 798:1995 */
-#define CALCIUM "0123456789-$:/.+ABCD"
-#define CALCIUM_INNER "0123456789-$:/.+"
+#define CALCIUM "0123456789-$:/.+ABCD"
static const char *CodaTable[20] = {
"11111221", "11112211", "11121121", "22111111", "11211211", "21111211",
"21212111", "11212121", "11221211", "12121121", "11121221", "11122211"
};
-INTERNAL int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length) {
+int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length) {
/* "Pharmacode can represent only a single integer from 3 to 131070. Unlike other
commonly used one-dimensional barcode schemes, pharmacode does not store the data in a
form corresponding to the human-readable digits; the number is encoded in binary, rather
return error_number;
}
-static int pharma_two_calc(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
+int pharma_two_calc(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
/* This code uses the Two Track Pharamacode defined in the document at
http://www.laetus.com/laetus.php?request=file&id=69 and using a modified
algorithm from the One Track system. This standard accepts integet values
return error_number;
}
-INTERNAL int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length) {
+int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length) {
/* Draws the patterns for two track pharmacode */
char height_pattern[200];
unsigned int loopey, h;
}
/* The Codabar system consisting of simple substitution */
-INTERNAL int codabar(struct zint_symbol *symbol, unsigned char source[], int length) {
+int codabar(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number;
char dest[512];
- int add_checksum, count, checksum;
strcpy(dest, "");
strcpy(symbol->errtxt, "356: Input too long");
return ZINT_ERROR_TOO_LONG;
}
- /* BS EN 798:1995 4.2 "'Codabar' symbols shall consist of ... b) start character;
- * c) one or more symbol characters representing data ... d) stop character ..." */
- if (length < 3) {
- strcpy(symbol->errtxt, "362: Input too short");
- return ZINT_ERROR_TOO_LONG;
- }
to_upper(source);
-
+ error_number = is_sane(CALCIUM, source, length);
+ if (error_number == ZINT_ERROR_INVALID_DATA) {
+ strcpy(symbol->errtxt, "357: Invalid characters in data");
+ return error_number;
+ }
/* Codabar must begin and end with the characters A, B, C or D */
if ((source[0] != 'A') && (source[0] != 'B') && (source[0] != 'C')
&& (source[0] != 'D')) {
- strcpy(symbol->errtxt, "358: Does not begin with \"A\", \"B\", \"C\" or \"D\"");
+ strcpy(symbol->errtxt, "358: Invalid characters in data");
return ZINT_ERROR_INVALID_DATA;
}
+
if ((source[length - 1] != 'A') && (source[length - 1] != 'B') &&
(source[length - 1] != 'C') && (source[length - 1] != 'D')) {
- strcpy(symbol->errtxt, "359: Does not end with \"A\", \"B\", \"C\" or \"D\"");
+ strcpy(symbol->errtxt, "359: Invalid characters in data");
return ZINT_ERROR_INVALID_DATA;
}
- /* And must not use A, B, C or D otherwise (BS EN 798:1995 4.3.2) */
- error_number = is_sane(CALCIUM_INNER, source + 1, length - 2);
- if (error_number) {
- strcpy(symbol->errtxt, "363: Cannot contain \"A\", \"B\", \"C\" or \"D\"");
- return error_number;
- }
-
- add_checksum = symbol->option_2 == 1;
- if (add_checksum) {
- count = 0;
- }
-
for (i = 0; i < length; i++) {
- if (add_checksum) {
- count += strchr(CALCIUM, source[i]) - CALCIUM;
- if (i + 1 == length) {
- checksum = count % 16;
- if (checksum) {
- checksum = 16 - checksum;
- }
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Codabar: %s, count %d, checksum %d\n", source, count, checksum);
- }
- strcat(dest, CodaTable[checksum]);
- }
- }
lookup(CALCIUM, CodaTable, source[i], dest);
}
}
/* Italian Pharmacode */
-INTERNAL int code32(struct zint_symbol *symbol, unsigned char source[], int length) {
+int code32(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, zeroes, error_number, checksum, checkpart, checkdigit;
char localstr[10], risultante[7];
long int pharmacode, devisor;
/* Add leading zeros as required */
zeroes = 8 - length;
memset(localstr, '0', zeroes);
- ustrcpy(localstr + zeroes, source);
+ strcpy(localstr + zeroes, (char*) source);
/* Calculate the check digit */
checksum = 0;
+ checkpart = 0;
for (i = 0; i < 4; i++) {
checkpart = ctoi(localstr[i * 2]);
checksum += checkpart;
}
/* Override the normal text output with the Pharmacode number */
- ustrcpy(symbol->text, "A");
- ustrcat(symbol->text, localstr);
+ strcpy((char*) symbol->text, "A");
+ strcat((char*) symbol->text, (char*) localstr);
return error_number;
}
+
+
+++ /dev/null
-/* output.c - Common routines for raster/vector
-
- libzint - the open source barcode library
- Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-
-#include <string.h>
-#include "common.h"
-#include "output.h"
-
-#define SSET "0123456789ABCDEF"
-
-/* Check colour options are good. Note: using raster.c error nos 651-654 */
-INTERNAL int check_colour_options(struct zint_symbol *symbol) {
- int error_number;
-
- if (strlen(symbol->fgcolour) != 6) {
- strcpy(symbol->errtxt, "651: Malformed foreground colour target");
- return ZINT_ERROR_INVALID_OPTION;
- }
- if (strlen(symbol->bgcolour) != 6) {
- strcpy(symbol->errtxt, "652: Malformed background colour target");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
- to_upper((unsigned char *) symbol->fgcolour);
- to_upper((unsigned char *) symbol->bgcolour);
-
- error_number = is_sane(SSET, (unsigned char *) symbol->fgcolour, strlen(symbol->fgcolour));
- if (error_number == ZINT_ERROR_INVALID_DATA) {
- strcpy(symbol->errtxt, "653: Malformed foreground colour target");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
- error_number = is_sane(SSET, (unsigned char *) symbol->bgcolour, strlen(symbol->fgcolour));
- if (error_number == ZINT_ERROR_INVALID_DATA) {
- strcpy(symbol->errtxt, "654: Malformed background colour target");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
- return 0;
-}
-
-/* Return minimum quiet zones for each symbology */
-static void quiet_zones(struct zint_symbol *symbol, int *left, int *right, int *top, int *bottom) {
- *left = *right = *top = *bottom = 0;
-
- switch (symbol->symbology) {
- case BARCODE_CODE16K:
- /* BS EN 12323:2005 Section 4.5 c) */
- *left = 10;
- *right = 1;
- break;
- case BARCODE_CODE49:
- /* ANSI/AIM BC6-2000 Section 2.4 */
- *left = 10;
- *right = 1;
- break;
- case BARCODE_CODABLOCKF:
- case BARCODE_HIBC_BLOCKF:
- /* AIM ISS-X-24 Section 4.6.1 */
- *left = 10;
- *right = 10;
- break;
- /* TODO: others */
- }
-}
-
-/* Set left (x), top (y), right and bottom offsets for whitespace */
-INTERNAL void set_whitespace_offsets(struct zint_symbol *symbol, int *xoffset, int *yoffset, int *roffset, int *boffset) {
- int qz_left, qz_right, qz_top, qz_bottom;
-
- quiet_zones(symbol, &qz_left, &qz_right, &qz_top, &qz_bottom);
-
- *xoffset = symbol->whitespace_width + qz_left;
- *roffset = symbol->whitespace_width + qz_right;
- if (symbol->output_options & BARCODE_BOX) {
- *xoffset += symbol->border_width;
- *roffset += symbol->border_width;
- }
-
- *yoffset = qz_top;
- *boffset = qz_bottom;
- if (symbol->output_options & (BARCODE_BOX | BARCODE_BIND)) {
- *yoffset += symbol->border_width;
- *boffset += symbol->border_width;
- }
-}
+++ /dev/null
-/* output.h - Common routines for raster/vector
-
- libzint - the open source barcode library
- Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-
-#ifndef OUTPUT_H
-#define OUTPUT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-INTERNAL int check_colour_options(struct zint_symbol *symbol);
-INTERNAL void set_whitespace_offsets(struct zint_symbol *symbol, int *xoffset, int *yoffset, int *roffset, int *boffset);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* OUTPUT_H */
/* pcx.c - Handles output to ZSoft PCX file */
-/* ZSoft PCX File Format Technical Reference Manual http://bespin.org/~qz/pc-gpe/pcx.txt */
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include "common.h"
#include "pcx.h" /* PCX header structure */
#include <malloc.h>
#endif
-INTERNAL int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
+#define SSET "0123456789ABCDEF"
+
+int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int row, column, i, colour;
int run_count;
FILE *pcx_file;
pcx_header_t header;
- int bytes_per_line = symbol->bitmap_width + (symbol->bitmap_width & 1); // Must be even
- unsigned char previous;
#ifdef _MSC_VER
unsigned char* rle_row;
#endif
#ifndef _MSC_VER
- unsigned char rle_row[bytes_per_line];
+ unsigned char rle_row[symbol->bitmap_width];
#else
- rle_row = (unsigned char *) _alloca(bytes_per_line);
+ rle_row = (unsigned char *) _alloca((symbol->bitmap_width * 6) * sizeof (unsigned char));
#endif /* _MSC_VER */
- rle_row[bytes_per_line - 1] = 0; // Will remain zero if bitmap_width odd
-
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
fggrn = (16 * ctoi(symbol->fgcolour[2])) + ctoi(symbol->fgcolour[3]);
fgblu = (16 * ctoi(symbol->fgcolour[4])) + ctoi(symbol->fgcolour[5]);
header.reserved = 0;
header.number_of_planes = 3;
- header.bytes_per_line = bytes_per_line;
+ if (symbol->bitmap_width % 2) {
+ header.bytes_per_line = symbol->bitmap_width + 1;
+ } else {
+ header.bytes_per_line = symbol->bitmap_width;
+ }
header.palette_info = 1; // Colour
header.horiz_screen_size = 0;
for (column = 0; column < symbol->bitmap_width; column++) {
switch (colour) {
case 0:
- switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
- case 'W': // White
- case 'M': // Magenta
- case 'R': // Red
- case 'Y': // Yellow
- rle_row[column] = 255;
- break;
- case 'C': // Cyan
- case 'B': // Blue
- case 'G': // Green
- case 'K': // Black
- rle_row[column] = 0;
- break;
- case '1':
- rle_row[column] = fgred;
- break;
- default:
- rle_row[column] = bgred;
- break;
+ if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
+ rle_row[column] = fgred;
+ } else {
+ rle_row[column] = bgred;
}
break;
case 1:
- switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
- case 'W': // White
- case 'C': // Cyan
- case 'Y': // Yellow
- case 'G': // Green
- rle_row[column] = 255;
- break;
- case 'B': // Blue
- case 'M': // Magenta
- case 'R': // Red
- case 'K': // Black
- rle_row[column] = 0;
- break;
- case '1':
- rle_row[column] = fggrn;
- break;
- default:
- rle_row[column] = bggrn;
- break;
+ if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
+ rle_row[column] = fggrn;
+ } else {
+ rle_row[column] = bggrn;
}
break;
case 2:
- switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
- case 'W': // White
- case 'C': // Cyan
- case 'B': // Blue
- case 'M': // Magenta
- rle_row[column] = 255;
- break;
- case 'R': // Red
- case 'Y': // Yellow
- case 'G': // Green
- case 'K': // Black
- rle_row[column] = 0;
- break;
- case '1':
- rle_row[column] = fgblu;
- break;
- default:
- rle_row[column] = bgblu;
- break;
+ if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
+ rle_row[column] = fgblu;
+ } else {
+ rle_row[column] = bgblu;
}
break;
}
}
- /* Based on ImageMagick/coders/pcx.c PCXWritePixels()
- * Copyright 1999-2020 ImageMagick Studio LLC */
- previous = rle_row[0];
run_count = 1;
- for (column = 1; column < bytes_per_line; column++) { // Note going up to bytes_per_line
- if ((previous == rle_row[column]) && (run_count < 63)) {
+ for (column = 1; column < symbol->bitmap_width; column++) {
+ if ((rle_row[column - 1] == rle_row[column]) && (run_count < 63)) {
run_count++;
} else {
- if (run_count > 1 || (previous & 0xc0) == 0xc0) {
- run_count += 0xc0;
- fputc(run_count, pcx_file);
- }
- fputc(previous, pcx_file);
- previous = rle_row[column];
+ run_count += 0xc0;
+ fputc(run_count, pcx_file);
+ fputc(rle_row[column - 1], pcx_file);
run_count = 1;
}
}
- if (run_count > 1 || (previous & 0xc0) == 0xc0) {
+ if (run_count > 1) {
run_count += 0xc0;
fputc(run_count, pcx_file);
+ fputc(rle_row[column - 1], pcx_file);
}
- fputc(previous, pcx_file);
}
}
return 0;
}
+
/* pdf417.c - Handles PDF417 stacked symbology */
/* Zint - A barcode generating program using libpng
- Copyright (C) 2008-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Portions Copyright (C) 2004 Grandzebu
Bug Fixes thanks to KL Chin <klchin@users.sourceforge.net>
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
/* This code is adapted from "Code barre PDF 417 / PDF 417 barcode" v2.5.0
which is Copyright (C) 2004 (Grandzebu).
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <math.h>
#ifndef _MSC_VER
#include <stdint.h>
1, 14, 2, 7, 3, 25, 8, 16, 5, 17, 9, 6, 10, 11, 28, 12, 19, 13, 29, 20, 30, 21, 22, 31, 23, 32, 33, 34
};
-#define PDF417_MAX_LEN 2710 /* ISO/IEC 15438:2015 5.1.1 c) 3) Max possible number of characters at error correction level 0 (Numeric Compaction mode) */
-#define MICRO_PDF417_MAX_LEN 366 /* ISO/IEC 24728:2006 5.1.1 c) 3) Max possible number of characters (Numeric Compaction mode) */
-
-static int liste[2][PDF417_MAX_LEN]; /* global */
+int liste[2][1000]; /* global */
/* 866 */
-static int quelmode(char codeascii) {
+int quelmode(char codeascii) {
int mode = BYT;
if ((codeascii == '\t') || (codeascii == '\n') || (codeascii == '\r') || ((codeascii >= ' ') && (codeascii <= '~'))) {
mode = TEX;
}
/* 844 */
-static void regroupe(int *indexliste) {
+void regroupe(int *indexliste) {
/* bring together same type blocks */
if (*(indexliste) > 1) {
}
/* 478 */
-static void pdfsmooth(int *indexliste) {
+void pdfsmooth(int *indexliste) {
int i, crnt, last, next, length;
for (i = 0; i < *(indexliste); i++) {
}
/* 547 */
-static void textprocess(int *chainemc, int *mclength, char chaine[], int start, int length) {
- int j, indexlistet, curtable, listet[2][PDF417_MAX_LEN], chainet[PDF417_MAX_LEN], wnet;
+void textprocess(int *chainemc, int *mclength, char chaine[], int start, int length) {
+ int j, indexlistet, curtable, listet[2][5000], chainet[5000], wnet;
wnet = 0;
- for (j = 0; j < PDF417_MAX_LEN; j++) {
+ for (j = 0; j < 1000; j++) {
listet[0][j] = 0;
}
/* listet will contain the table numbers and the value of each characters */
}
/* 671 */
-INTERNAL void byteprocess(int *chainemc, int *mclength, unsigned char chaine[], int start, int length) {
+void byteprocess(int *chainemc, int *mclength, unsigned char chaine[], int start, int length) {
int debug = 0;
if (debug) printf("\nEntering byte mode at position %d\n", start);
len = 0;
while (len < length) {
- uint64_t total;
+ uint64_t total;
unsigned int chunkLen = length - len;
if (6 <= chunkLen) /* Take groups of 6 */ {
chunkLen = 6;
}
/* 712 */
-static void numbprocess(int *chainemc, int *mclength, char chaine[], int start, int length) {
+void numbprocess(int *chainemc, int *mclength, char chaine[], int start, int length) {
int j, loop, dummy[100], diviseur, nombre;
char chainemod[50], chainemult[100], temp;
while (strlen(chainemod) != 0) {
nombre *= 10;
nombre += ctoi(chainemod[0]);
- for (loop = 0; loop < (int)strlen(chainemod); loop++) {
+ for (loop = 0; loop < strlen(chainemod); loop++) {
chainemod[loop] = chainemod[loop + 1];
}
if (nombre < diviseur) {
/* 366 */
static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length) {
int i, k, j, indexchaine, indexliste, mode, longueur, loop, mccorrection[520], offset;
- int total, chainemc[PDF417_MAX_LEN], mclength, c1, c2, c3, dummy[35], calcheight;
+ int total, chainemc[2700], mclength, c1, c2, c3, dummy[35], calcheight;
char pattern[580];
int debug = symbol->debug;
- if (length > PDF417_MAX_LEN) {
- return 2;
- }
-
/* 456 */
indexliste = 0;
indexchaine = 0;
mode = quelmode(chaine[indexchaine]);
- for (i = 0; i < PDF417_MAX_LEN; i++) {
+ for (i = 0; i < 1000; i++) {
liste[0][i] = 0;
}
/* 463 */
do {
liste[1][indexliste] = mode;
- while ((liste[1][indexliste] == mode) && (indexchaine < (int)length)) {
+ while ((liste[1][indexliste] == mode) && (indexchaine < length)) {
liste[0][indexliste]++;
indexchaine++;
mode = quelmode(chaine[indexchaine]);
}
indexliste++;
- } while (indexchaine < (int)length);
+ } while (indexchaine < length);
/* 474 */
pdfsmooth(&indexliste);
bin_append(0x3FA29, 18, pattern); /* Row Stop */
}
- for (loop = 0; loop < (int)strlen(pattern); loop++) {
+ for (loop = 0; loop < strlen(pattern); loop++) {
if (pattern[loop] == '1') {
set_module(symbol, i, loop);
}
}
/* 345 */
-INTERNAL int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
int codeerr, error_number;
error_number = 0;
}
/* like PDF417 only much smaller! */
-INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length) {
+int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length) {
int i, k, j, indexchaine, indexliste, mode, longueur, mccorrection[50], offset;
- int total, chainemc[PDF417_MAX_LEN], mclength, dummy[5], codeerr;
+ int total, chainemc[2700], mclength, dummy[5], codeerr;
char pattern[580];
int variant, LeftRAPStart, CentreRAPStart, RightRAPStart, StartCluster;
int LeftRAP, CentreRAP, RightRAP, Cluster, loop, calcheight;
int debug = 0;
- if (length > MICRO_PDF417_MAX_LEN) {
- strcpy(symbol->errtxt, "474: Input data too long");
- return ZINT_ERROR_TOO_LONG;
- }
-
/* Encoding starts out the same as PDF417, so use the same code */
codeerr = 0;
mode = quelmode(chaine[indexchaine]);
- for (i = 0; i < PDF417_MAX_LEN; i++) {
+ for (i = 0; i < 1000; i++) {
liste[0][i] = 0;
}
/* 463 */
do {
liste[1][indexliste] = mode;
- while ((liste[1][indexliste] == mode) && (indexchaine < (int)length)) {
+ while ((liste[1][indexliste] == mode) && (indexchaine < length)) {
liste[0][indexliste]++;
indexchaine++;
mode = quelmode(chaine[indexchaine]);
}
indexliste++;
- } while (indexchaine < (int)length);
+ } while (indexchaine < length);
/* 474 */
pdfsmooth(&indexliste);
if (debug) printf("%s\n", pattern);
/* so now pattern[] holds the string of '1's and '0's. - copy this to the symbol */
- for (loop = 0; loop < (int)strlen(pattern); loop++) {
+ for (loop = 0; loop < strlen(pattern); loop++) {
if (pattern[loop] == '1') {
set_module(symbol, i, loop);
}
return codeerr;
}
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include "common.h"
-#define SSET "0123456789ABCDEF"
+#define SSET "0123456789ABCDEF"
static const char *PlessTable[16] = {
"13131313", "31131313", "13311313", "31311313", "13133113", "31133113",
"13313113", "31313113", "13131331", "31131331", "13311331", "31311331", "13133131",
};
/* Not MSI/Plessey but the older Plessey standard */
-INTERNAL int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
+int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
unsigned int i;
unsigned char *checkptr;
}
/* Plain MSI Plessey - does not calculate any check character */
-static int msi_plessey(struct zint_symbol *symbol, unsigned char source[], const int length) {
+int msi_plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
- int i;
+ size_t i;
char dest[512]; /* 2 + 55 * 8 + 3 + 1 ~ 512 */
if (length > 55) {
/* MSI Plessey with Modulo 10 check digit - algorithm from Barcode Island
* http://www.barcodeisland.com/ */
-static int msi_plessey_mod10(struct zint_symbol *symbol, unsigned char source[], int length) {
+int msi_plessey_mod10(struct zint_symbol *symbol, unsigned char source[], int length) {
- int i, wright, pump, n;
- unsigned long dau, pedwar;
+
+ unsigned long i, wright, dau, pedwar, pump, n;
char un[200], tri[32];
int error_number, h;
char dest[1000];
/* MSI Plessey with two Modulo 10 check digits - algorithm from
* Barcode Island http://www.barcodeisland.com/ */
-static int msi_plessey_mod1010(struct zint_symbol *symbol, unsigned char source[], const int src_len) {
+int msi_plessey_mod1010(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) {
+
- int i, n, wright, pump;
- unsigned long dau, pedwar, chwech;
+ unsigned long i, n, wright, dau, pedwar, pump, chwech;
char un[16], tri[32];
int error_number, h;
char dest[1000];
/* Calculate a Modulo 11 check digit using the system discussed on Wikipedia -
see http://en.wikipedia.org/wiki/Talk:MSI_Barcode */
-static int msi_plessey_mod11(struct zint_symbol *symbol, unsigned char source[], const int src_len) {
+int msi_plessey_mod11(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) {
/* uses the IBM weight system */
- int i, weight, check;
- unsigned long x;
+ int i, weight, x, check;
int error_number;
char dest[1000];
/* Combining the Barcode Island and Wikipedia code
* Verified against http://www.bokai.com/BarcodeJSP/applet/BarcodeSampleApplet.htm */
-static int msi_plessey_mod1110(struct zint_symbol *symbol, unsigned char source[], const int src_len) {
+int msi_plessey_mod1110(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) {
/* Weighted using the IBM system */
- int i, weight, check, wright, pump;
- unsigned long x, dau, pedwar;
- int h;
- int si;
+ unsigned long i, weight, x, check, wright, dau, pedwar, pump;
+ size_t h;
+ long si;
char un[16], tri[16];
int error_number;
char dest[1000];
unsigned char temp[32];
- int temp_len;
+ unsigned int temp_len;
error_number = 0;
return error_number;
}
-INTERNAL int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length) {
+int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number;
error_number = is_sane(NEON, source, length);
return error_number;
}
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
#ifdef _MSC_VER
longjmp(graphic->jmpbuf, 1);
}
-INTERNAL int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
+int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
struct mainprog_info_type wpng_info;
struct mainprog_info_type *graphic;
png_structp png_ptr;
for (column = 0; column < symbol->bitmap_width; column++) {
i = column * 3;
switch (*(pixelbuf + (symbol->bitmap_width * row) + column)) {
- case 'W': // White
- outdata[i] = 255;
- outdata[i + 1] = 255;
- outdata[i + 2] = 255;
- break;
- case 'C': // Cyan
- outdata[i] = 0;
- outdata[i + 1] = 255;
- outdata[i + 2] = 255;
- break;
- case 'B': // Blue
- outdata[i] = 0;
- outdata[i + 1] = 0;
- outdata[i + 2] = 255;
- break;
- case 'M': // Magenta
- outdata[i] = 255;
- outdata[i + 1] = 0;
- outdata[i + 2] = 255;
- break;
- case 'R': // Red
- outdata[i] = 255;
- outdata[i + 1] = 0;
- outdata[i + 2] = 0;
- break;
- case 'Y': // Yellow
- outdata[i] = 255;
- outdata[i + 1] = 255;
- outdata[i + 2] = 0;
- break;
- case 'G': // Green
- outdata[i] = 0;
- outdata[i + 1] = 255;
- outdata[i + 2] = 0;
- break;
- case 'K': // Black
- outdata[i] = 0;
- outdata[i + 1] = 0;
- outdata[i + 2] = 0;
- break;
case '1':
outdata[i] = fgred;
outdata[i + 1] = fggrn;
return 0;
}
#endif /* NO_PNG */
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Including bug fixes by Bryan Hatton
Redistribution and use in source and binary forms, with or without
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
+#include <string.h>
+#include <stdlib.h>
#include <stdio.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
#include "common.h"
-#define DAFTSET "DAFT"
+#define DAFTSET "DAFT"
#define KRSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define KASUTSET "1234567890-abcdefgh"
#define CHKASUTSET "0123456789-abcdefgh"
};
/* Handles the PostNet system used for Zip codes in the US */
-static int postnet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) {
- int i, sum, check_digit;
+int postnet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) {
+ unsigned int i, sum, check_digit;
int error_number;
+ error_number = 0;
+
if (length != 5 && length != 9 && length != 11) {
strcpy(symbol->errtxt, "480: Input wrong length");
return ZINT_ERROR_TOO_LONG;
}
/* Puts PostNet barcodes into the pattern matrix */
-INTERNAL int post_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
+int post_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[256]; /* 5 + 38 * 5 + 5 + 5 + 1 ~ 256 */
unsigned int loopey, h;
int writer;
int error_number;
+ error_number = 0;
+
error_number = postnet(symbol, source, height_pattern, length);
if (error_number != 0) {
return error_number;
}
/* Handles the PLANET system used for item tracking in the US */
-static int planet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) {
- int i, sum, check_digit;
+int planet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) {
+ unsigned int i, sum, check_digit;
int error_number;
+ error_number = 0;
+
if (length != 11 && length != 13) {
strcpy(symbol->errtxt, "482: Input wrong length");
return ZINT_ERROR_TOO_LONG;
}
/* Puts PLANET barcodes into the pattern matrix */
-INTERNAL int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
+int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[256]; /* 5 + 38 * 5 + 5 + 5 + 1 ~ 256 */
unsigned int loopey, h;
int writer;
int error_number;
+ error_number = 0;
+
error_number = planet(symbol, source, height_pattern, length);
if (error_number != 0) {
return error_number;
}
/* Korean Postal Authority */
-INTERNAL int korea_post(struct zint_symbol *symbol, unsigned char source[], int length) {
+int korea_post(struct zint_symbol *symbol, unsigned char source[], int length) {
int total, loop, check, zeroes, error_number;
char localstr[8], dest[80];
+ error_number = 0;
if (length > 6) {
strcpy(symbol->errtxt, "484: Input too long");
return ZINT_ERROR_TOO_LONG;
/* The simplest barcode symbology ever! Supported by MS Word, so here it is!
glyphs from http://en.wikipedia.org/wiki/Facing_Identification_Mark */
-INTERNAL int fim(struct zint_symbol *symbol, unsigned char source[], int length) {
+int fim(struct zint_symbol *symbol, unsigned char source[], int length) {
+
char dest[16] = {0};
}
/* Handles the 4 State barcodes used in the UK by Royal Mail */
-static char rm4scc(char source[], unsigned char dest[], int length) {
- int i;
+char rm4scc(char source[], unsigned char dest[], int length) {
+ unsigned int i;
int top, bottom, row, column, check_digit;
char values[3], set_copy[] = KRSET;
}
/* Puts RM4SCC into the data matrix */
-INTERNAL int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
+int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[210];
- int loopey, h;
+ unsigned int loopey, h;
int writer;
int error_number;
strcpy(height_pattern, "");
+ error_number = 0;
+
if (length > 50) {
strcpy(symbol->errtxt, "488: Input too long");
return ZINT_ERROR_TOO_LONG;
/* Handles Dutch Post TNT KIX symbols
The same as RM4SCC but without check digit
Specification at http://www.tntpost.nl/zakelijk/klantenservice/downloads/kIX_code/download.aspx */
-INTERNAL int kix_code(struct zint_symbol *symbol, unsigned char source[], int length) {
+int kix_code(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[75], localstr[20];
- int loopey;
+ unsigned int loopey;
int writer, i, h;
- int error_number;
+ int error_number; /* zeroes; */
strcpy(height_pattern, "");
+ error_number = 0;
+
if (length > 18) {
strcpy(symbol->errtxt, "490: Input too long");
return ZINT_ERROR_TOO_LONG;
}
/* Handles DAFT Code symbols */
-INTERNAL int daft_code(struct zint_symbol *symbol, unsigned char source[], int length) {
+int daft_code(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[100];
unsigned int loopey, h;
int writer, i, error_number;
strcpy(height_pattern, "");
+ error_number = 0;
if (length > 50) {
strcpy(symbol->errtxt, "492: Input too long");
return ZINT_ERROR_TOO_LONG;
}
/* Flattermarken - Not really a barcode symbology! */
-INTERNAL int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length) {
+int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length) {
int loop, error_number;
char dest[512]; /* 90 * 4 + 1 ~ */
+ error_number = 0;
+
if (length > 90) {
strcpy(symbol->errtxt, "494: Input too long");
return ZINT_ERROR_TOO_LONG;
}
/* Japanese Postal Code (Kasutama Barcode) */
-INTERNAL int japan_post(struct zint_symbol *symbol, unsigned char source[], int length) {
+int japan_post(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number, h;
char pattern[69];
int writer, loopey, inter_posn, i, sum, check;
return ZINT_ERROR_TOO_LONG;
}
+ inter_posn = 0;
error_number = 0;
strcpy(local_source, (char*) source);
}
if (check <= 9) {
check_char = check + '0';
- } else if (check == 10) {
+ }
+ if (check == 10) {
check_char = '-';
- } else {
+ }
+ if (check >= 11) {
check_char = (check - 11) + 'a';
}
strcat(pattern, JapanTable[posn(KASUTSET, check_char)]);
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <locale.h>
#include <string.h>
#include <math.h>
#include "common.h"
-void colour_to_pscolor(int option, int colour, char* output) {
- strcpy(output, "");
- if ((option & CMYK_COLOUR) == 0) {
- // Use RGB colour space
- switch(colour) {
- case 0: // White
- strcat(output, "1.00 1.00 1.00");
- break;
- case 1: // Cyan
- strcat(output, "0.00 1.00 1.00");
- break;
- case 2: // Blue
- strcat(output, "0.00 0.00 1.00");
- break;
- case 3: // Magenta
- strcat(output, "1.00 0.00 1.00");
- break;
- case 4: // Red
- strcat(output, "1.00 0.00 0.00");
- break;
- case 5: // Yellow
- strcat(output, "1.00 1.00 0.00");
- break;
- case 6: // Green
- strcat(output, "0.00 1.00 0.00");
- break;
- default: // Black
- strcat(output, "0.00 0.00 0.00");
- break;
- }
- strcat(output, " setrgbcolor");
- } else {
- // Use CMYK colour space
- switch(colour) {
- case 0: // White
- strcat(output, "0.00 0.00 0.00 0.00");
- break;
- case 1: // Cyan
- strcat(output, "1.00 0.00 0.00 0.00");
- break;
- case 2: // Blue
- strcat(output, "1.00 1.00 0.00 0.00");
- break;
- case 3: // Magenta
- strcat(output, "0.00 1.00 0.00 0.00");
- break;
- case 4: // Red
- strcat(output, "0.00 1.00 1.00 0.00");
- break;
- case 5: // Yellow
- strcat(output, "0.00 0.00 1.00 0.00");
- break;
- case 6: // Green
- strcat(output, "1.00 0.00 1.00 0.00");
- break;
- default: // Black
- strcat(output, "0.00 0.00 0.00 1.00");
- break;
- }
- strcat(output, " setcmykcolor");
- }
-}
-
-INTERNAL int ps_plot(struct zint_symbol *symbol) {
+int ps_plot(struct zint_symbol *symbol) {
FILE *feps;
int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
float red_ink, green_ink, blue_ink, red_paper, green_paper, blue_paper;
int error_number = 0;
float ax, ay, bx, by, cx, cy, dx, dy, ex, ey, fx, fy;
float radius;
- int colour_index, colour_rect_counter;
- char ps_color[30];
-
+
struct zint_vector_rect *rect;
struct zint_vector_hexagon *hex;
struct zint_vector_circle *circle;
fprintf(feps, "%.2f 0.00 TB 0.00 %.2f TR\n", symbol->vector->height, symbol->vector->width);
fprintf(feps, "TE\n");
- if (symbol->symbology != BARCODE_ULTRA) {
- if ((symbol->output_options & CMYK_COLOUR) == 0) {
- fprintf(feps, "%.2f %.2f %.2f setrgbcolor\n", red_ink, green_ink, blue_ink);
- } else {
- fprintf(feps, "%.2f %.2f %.2f %.2f setcmykcolor\n", cyan_ink, magenta_ink, yellow_ink, black_ink);
- }
+ if ((symbol->output_options & CMYK_COLOUR) == 0) {
+ fprintf(feps, "%.2f %.2f %.2f setrgbcolor\n", red_ink, green_ink, blue_ink);
+ } else {
+ fprintf(feps, "%.2f %.2f %.2f %.2f setcmykcolor\n", cyan_ink, magenta_ink, yellow_ink, black_ink);
}
-
+
// Rectangles
- if (symbol->symbology == BARCODE_ULTRA) {
- for (colour_index = 0; colour_index <= 7; colour_index++) {
- colour_rect_counter = 0;
- rect = symbol->vector->rectangles;
- while (rect) {
- if (rect->colour == colour_index) {
- if (colour_rect_counter == 0) {
- //Set new colour
- colour_to_pscolor(symbol->output_options, colour_index, ps_color);
- fprintf(feps, "%s\n", ps_color);
- }
- colour_rect_counter++;
- fprintf(feps, "%.2f %.2f TB %.2f %.2f TR\n", rect->height, (symbol->vector->height - rect->y) - rect->height, rect->x, rect->width);
- fprintf(feps, "TE\n");
- }
- rect = rect->next;
- }
- }
- } else {
- rect = symbol->vector->rectangles;
- while (rect) {
- fprintf(feps, "%.2f %.2f TB %.2f %.2f TR\n", rect->height, (symbol->vector->height - rect->y) - rect->height, rect->x, rect->width);
- fprintf(feps, "TE\n");
- rect = rect->next;
- }
+ rect = symbol->vector->rectangles;
+ while (rect) {
+ fprintf(feps, "%.2f %.2f TB %.2f %.2f TR\n", rect->height, (symbol->vector->height - rect->y) - rect->height, rect->x, rect->width);
+ rect = rect->next;
}
-
+
// Hexagons
hex = symbol->vector->hexagons;
while (hex) {
fprintf(feps, "%.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f TH\n", ax, ay, bx, by, cx, cy, dx, dy, ex, ey, fx, fy);
hex = hex->next;
}
-
+
// Circles
circle = symbol->vector->circles;
while (circle) {
}
circle = circle->next;
}
-
+
// Text
string = symbol->vector->strings;
while (string) {
fprintf(feps, "setmatrix\n");
string = string->next;
}
-
- //fprintf(feps, "\nshowpage\n");
+
+ fprintf(feps, "\nshowpage\n");
if (symbol->output_options & BARCODE_STDOUT) {
fflush(feps);
-/* qr.c Handles QR Code, Micro QR Code, UPNQR and rMQR
+/* qr.c Handles QR Code */
+/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009 -2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <string.h>
#ifdef _MSC_VER
#include "sjis.h"
#include "qr.h"
#include "reedsol.h"
+#include <stdlib.h> /* abs */
#include <assert.h>
-INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
+extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
/* Returns true if input glyph is in the Alphanumeric set */
-static int is_alpha(const unsigned int glyph, const int gs1) {
+static int in_alpha(const int glyph) {
int retval = 0;
+ char cglyph = (char) glyph;
- if ((glyph >= '0') && (glyph <= '9')) {
+ if ((cglyph >= '0') && (cglyph <= '9')) {
retval = 1;
- } else if ((glyph >= 'A') && (glyph <= 'Z')) {
- retval = 1;
- } else if (gs1 && glyph == '[') {
+ }
+ if ((cglyph >= 'A') && (cglyph <= 'Z')) {
retval = 1;
- } else {
- switch (glyph) {
- case ' ':
- case '$':
- case '%':
- case '*':
- case '+':
- case '-':
- case '.':
- case '/':
- case ':':
- retval = 1;
- break;
- }
}
-
- return retval;
-}
-
-/* Bits multiplied by this for costs, so as to be whole integer divisible by 2 and 3 */
-#define QR_MULT 6
-
-/* Whether in numeric or not. If in numeric, *p_end is set to position after numeric, and *p_cost is set to per-numeric cost */
-static int in_numeric(const unsigned int jisdata[], const size_t length, const unsigned int posn, unsigned int* p_end, unsigned int* p_cost) {
- unsigned int i, digit_cnt;
-
- if (posn < *p_end) {
- return 1;
+ switch (cglyph) {
+ case ' ':
+ case '$':
+ case '%':
+ case '*':
+ case '+':
+ case '-':
+ case '.':
+ case '/':
+ case ':':
+ retval = 1;
+ break;
}
- /* Attempt to calculate the average 'cost' of using numeric mode in number of bits (times QR_MULT) */
- for (i = posn; i < length && i < posn + 4 && jisdata[i] >= '0' && jisdata[i] <= '9'; i++);
-
- digit_cnt = i - posn;
-
- if (digit_cnt == 0) {
- *p_end = 0;
- return 0;
- }
- *p_end = i;
- *p_cost = digit_cnt == 1 ? 24 /* 4 * QR_MULT */ : digit_cnt == 2 ? 21 /* (7 / 2) * QR_MULT */ : 20 /* (10 / 3) * QR_MULT) */;
- return 1;
+ return retval;
}
-/* Whether in alpha or not. If in alpha, *p_end is set to position after alpha, and *p_cost is set to per-alpha cost. For GS1, *p_pcent set if 2nd char percent */
-static int in_alpha(const unsigned int jisdata[], const size_t length, const unsigned int posn, unsigned int* p_end, unsigned int* p_cost, unsigned int* p_pcent, unsigned int gs1) {
- int two_alphas;
+static void define_mode(char mode[],const int jisdata[], const size_t length,const int gs1) {
+ /* Values placed into mode[] are: K = Kanji, B = Binary, A = Alphanumeric, N = Numeric */
+ size_t i;
+ int mlen, j;
- if (posn < *p_end) {
- if (gs1 && *p_pcent) {
- /* Previous 2nd char was a percent, so allow for second half of doubled-up percent here */
- two_alphas = posn < length - 1 && is_alpha(jisdata[posn + 1], gs1);
- *p_cost = two_alphas ? 33 /* (11 / 2) * QR_MULT */ : 36 /* 6 * QR_MULT */;
- *p_pcent = 0;
+ for (i = 0; i < length; i++) {
+ if (jisdata[i] > 0xff) {
+ mode[i] = 'K';
+ } else {
+ mode[i] = 'B';
+ if (in_alpha(jisdata[i])) {
+ mode[i] = 'A';
+ }
+ if (gs1 && (jisdata[i] == '[')) {
+ mode[i] = 'A';
+ }
+ if ((jisdata[i] >= '0') && (jisdata[i] <= '9')) {
+ mode[i] = 'N';
+ }
}
- return 1;
- }
-
- /* Attempt to calculate the average 'cost' of using alphanumeric mode in number of bits (times QR_MULT) */
- if (!is_alpha(jisdata[posn], gs1)) {
- *p_end = 0;
- *p_pcent = 0;
- return 0;
- }
-
- if (gs1 && jisdata[posn] == '%') { /* Must double-up so counts as 2 chars */
- *p_end = posn + 1;
- *p_cost = 66; /* 11 * QR_MULT */
- *p_pcent = 0;
- return 1;
}
- two_alphas = posn < length - 1 && is_alpha(jisdata[posn + 1], gs1);
-
- *p_end = two_alphas ? posn + 2 : posn + 1;
- *p_cost = two_alphas ? 33 /* (11 / 2) * QR_MULT */ : 36 /* 6 * QR_MULT */;
- *p_pcent = two_alphas && gs1 && jisdata[posn + 1] == '%'; /* 2nd char is percent */
- return 1;
-}
-
-/* Indexes into mode_types array (and state array) */
-#define QR_N 0 /* Numeric */
-#define QR_A 1 /* Alphanumeric */
-#define QR_B 2 /* Byte */
-#define QR_K 3 /* Kanji */
-
-static const char mode_types[] = { 'N', 'A', 'B', 'K', }; /* Must be in same order as QR_N etc */
-
-#define QR_NUM_MODES 4
-
-/* Indexes into state array (0..3 head costs) */
-#define QR_VER 4 /* Version */
-#define QR_GS1 5 /* GS1 mode (boolean) */
-#define QR_N_END 6 /* Numeric end index */
-#define QR_N_COST 7 /* Numeric cost */
-#define QR_A_END 8 /* Alpha end index */
-#define QR_A_COST 9 /* Alpha cost */
-#define QR_A_PCENT 10 /* Alpha 2nd char percent (GS1-specific) */
-
-/* Costs set to this for invalid MICROQR modes for versions M1 and M2.
- * 128 is the max number of data bits for M4-L (ISO/IEC 18004:2015 Table 7) */
-#define QR_MICROQR_MAX 774 /* (128 + 1) * QR_MULT */
-
-/* Initial mode costs */
-static unsigned int* qr_head_costs(unsigned int state[]) {
- static const int head_costs[7][QR_NUM_MODES] = {
- /* N A B K */
- { (10 + 4) * QR_MULT, (9 + 4) * QR_MULT, (8 + 4) * QR_MULT, (8 + 4) * QR_MULT, }, /* QR */
- { (12 + 4) * QR_MULT, (11 + 4) * QR_MULT, (16 + 4) * QR_MULT, (10 + 4) * QR_MULT, },
- { (14 + 4) * QR_MULT, (13 + 4) * QR_MULT, (16 + 4) * QR_MULT, (12 + 4) * QR_MULT, },
- { 3 * QR_MULT, QR_MICROQR_MAX, QR_MICROQR_MAX, QR_MICROQR_MAX, }, /* MICROQR */
- { (4 + 1) * QR_MULT, (3 + 1) * QR_MULT, QR_MICROQR_MAX, QR_MICROQR_MAX, },
- { (5 + 2) * QR_MULT, (4 + 2) * QR_MULT, (4 + 2) * QR_MULT, (3 + 2) * QR_MULT, },
- { (6 + 3) * QR_MULT, (5 + 3) * QR_MULT, (5 + 3) * QR_MULT, (4 + 3) * QR_MULT, }
- };
- int version;
-
- /* Head costs kept in states 0..3 */
- if (state[QR_N] != 0) { /* Numeric non-zero in all configs */
- return state; /* Already set */
- }
-
- version = state[QR_VER];
-
- if (version < RMQR_VERSION) { /* QRCODE */
- if (version < 10) {
- memcpy(state, head_costs, QR_NUM_MODES * sizeof(unsigned int));
- } else if (version < 27) {
- memcpy(state, head_costs + 1, QR_NUM_MODES * sizeof(unsigned int));
- } else {
- memcpy(state, head_costs + 2, QR_NUM_MODES * sizeof(unsigned int));
+ /* If less than 6 numeric digits together then don't use numeric mode */
+ for (i = 0; i < length; i++) {
+ if (mode[i] == 'N') {
+ if (((i != 0) && (mode[i - 1] != 'N')) || (i == 0)) {
+ mlen = 0;
+ while (((mlen + i) < length) && (mode[mlen + i] == 'N')) {
+ mlen++;
+ };
+ if (mlen < 6) {
+ for (j = 0; j < mlen; j++) {
+ mode[i + j] = 'A';
+ }
+ }
+ }
}
- } else if (version < MICROQR_VERSION) { /* RMQR */
- version -= RMQR_VERSION;
- state[QR_N] = (rmqr_numeric_cci[version] + 3) * QR_MULT;
- state[QR_A] = (rmqr_alphanum_cci[version] + 3) * QR_MULT;
- state[QR_B] = (rmqr_byte_cci[version] + 3) * QR_MULT;
- state[QR_K] = (rmqr_kanji_cci[version] + 3) * QR_MULT;
- } else { /* MICROQR */
- memcpy(state, head_costs + 3 + (version - MICROQR_VERSION), QR_NUM_MODES * sizeof(unsigned int));
}
- return state;
-}
-
-/* Costs of switching modes from k to j */
-static unsigned int qr_switch_cost(unsigned int state[], const int k, const int j) {
- (void)k; /* Unused */
- return state[j]; /* Same as head cost */
-}
-
-/* Calculate cost of encoding character */
-static void qr_cur_cost(unsigned int state[], const unsigned int jisdata[], const size_t length, const int i, char* char_modes, unsigned int prev_costs[], unsigned int cur_costs[]) {
- int cm_i = i * QR_NUM_MODES, m1, m2;
- unsigned int version = state[QR_VER];
- unsigned int gs1 = state[QR_GS1];
- unsigned int* p_numeric_end = &state[QR_N_END];
- unsigned int* p_numeric_cost = &state[QR_N_COST];
- unsigned int* p_alpha_end = &state[QR_A_END];
- unsigned int* p_alpha_cost = &state[QR_A_COST];
- unsigned int* p_alpha_pcent = &state[QR_A_PCENT];
-
- m1 = version == MICROQR_VERSION;
- m2 = version == MICROQR_VERSION + 1;
-
- if (jisdata[i] > 0xFF) {
- cur_costs[QR_B] = prev_costs[QR_B] + ((m1 || m2) ? QR_MICROQR_MAX : 96); /* 16 * QR_MULT */
- char_modes[cm_i + QR_B] = 'B';
- cur_costs[QR_K] = prev_costs[QR_K] + ((m1 || m2) ? QR_MICROQR_MAX : 78); /* 13 * QR_MULT */
- char_modes[cm_i + QR_K] = 'K';
- } else {
- if (in_numeric(jisdata, length, i, p_numeric_end, p_numeric_cost)) {
- cur_costs[QR_N] = prev_costs[QR_N] + *p_numeric_cost;
- char_modes[cm_i + QR_N] = 'N';
- }
- if (in_alpha(jisdata, length, i, p_alpha_end, p_alpha_cost, p_alpha_pcent, gs1)) {
- cur_costs[QR_A] = prev_costs[QR_A] + (m1 ? QR_MICROQR_MAX : *p_alpha_cost);
- char_modes[cm_i + QR_A] = 'A';
+ /* If less than 4 alphanumeric characters together then don't use alphanumeric mode */
+ for (i = 0; i < length; i++) {
+ if (mode[i] == 'A') {
+ if (((i != 0) && (mode[i - 1] != 'A')) || (i == 0)) {
+ mlen = 0;
+ while (((mlen + i) < length) && (mode[mlen + i] == 'A')) {
+ mlen++;
+ };
+ if (mlen < 4) {
+ for (j = 0; j < mlen; j++) {
+ mode[i + j] = 'B';
+ }
+ }
+ }
}
- cur_costs[QR_B] = prev_costs[QR_B] + ((m1 || m2) ? QR_MICROQR_MAX : 48); /* 8 * QR_MULT */
- char_modes[cm_i + QR_B] = 'B';
}
}
-static void qr_define_mode(char mode[], const unsigned int jisdata[], const size_t length, const int gs1, const int version, const int debug) {
- unsigned int state[11] = {
- 0 /*N*/, 0 /*A*/, 0 /*B*/, 0 /*K*/,
- (unsigned int) version, (unsigned int) gs1,
- 0 /*numeric_end*/, 0 /*numeric_cost*/, 0 /*alpha_end*/, 0 /*alpha_cost*/, 0 /*alpha_pcent*/
- };
+/* Choose from three numbers based on version */
+static int tribus(const int version,const int a,const int b,const int c) {
+ int RetVal;
- pn_define_mode(mode, jisdata, length, debug, state, mode_types, QR_NUM_MODES, qr_head_costs, qr_switch_cost, NULL, qr_cur_cost);
-}
+ RetVal = c;
-/* Return mode indicator bits based on version */
-static int mode_bits(const int version) {
- if (version < RMQR_VERSION) {
- return 4; /* QRCODE */
+ if (version < 10) {
+ RetVal = a;
}
- if (version < MICROQR_VERSION) {
- return 3; /* RMQR */
- }
- return version - MICROQR_VERSION; /* MICROQR */
-}
-
-/* Return character count indicator bits based on version and mode */
-static int cci_bits(const int version, const int mode) {
- static const int cci_bits[7][QR_NUM_MODES] = {
- /* N A B K */
- { 10, 9, 8, 8, }, /* QRCODE */
- { 12, 11, 16, 10, },
- { 14, 13, 16, 12, },
- { 3, 0, 0, 0, }, /* MICROQR */
- { 4, 3, 0, 0, },
- { 5, 4, 4, 3, },
- { 6, 5, 5, 4, }
- };
- static const unsigned short int* rmqr_ccis[QR_NUM_MODES] = {
- rmqr_numeric_cci, rmqr_alphanum_cci, rmqr_byte_cci, rmqr_kanji_cci,
- };
- int mode_index = strchr(mode_types, mode) - mode_types;
-
- if (version < RMQR_VERSION) { /* QRCODE */
- if (version < 10) {
- return cci_bits[0][mode_index];
- }
- if (version < 27) {
- return cci_bits[1][mode_index];
- }
- return cci_bits[2][mode_index];
- }
- if (version < MICROQR_VERSION) { /* RMQR */
- return rmqr_ccis[mode_index][version - RMQR_VERSION];
- }
- return cci_bits[3 + (version - MICROQR_VERSION)][mode_index]; /* MICROQR */
-}
-/* Returns mode indicator based on version and mode */
-static const char* mode_indicator(const int version, const int mode) {
- static const char* mode_indicators[6][QR_NUM_MODES] = {
- /* N A B K */
- { "0001", "0010", "0100", "1000", }, /* QRCODE */
- { "001", "010", "011", "100", }, /* RMQR */
- { "", "", "", "", }, /* MICROQR */
- { "0", "1", "", "", },
- { "00", "01", "10", "11", },
- { "000", "001", "010", "011", },
- };
-
- int mode_index = strchr(mode_types, mode) - mode_types;
-
- if (version < RMQR_VERSION) {
- return mode_indicators[0][mode_index]; /* QRCODE */
+ if ((version >= 10) && (version <= 26)) {
+ RetVal = b;
}
- if (version < MICROQR_VERSION) {
- return mode_indicators[1][mode_index] /* RMQR */;
- }
- return mode_indicators[2 + version - MICROQR_VERSION][mode_index]; /* MICROQR */
-}
-/* Returns terminator bits based on version */
-static int terminator_bits(const int version) {
- if (version < RMQR_VERSION) {
- return 4; /* QRCODE */
- }
- if (version < MICROQR_VERSION) {
- return 3; /* RMQR */
- }
- return 3 + (version - MICROQR_VERSION) * 2; /* MICROQR (Note not actually using this at the moment) */
+ return RetVal;
}
/* Convert input data to a binary stream and add padding */
-static void qr_binary(unsigned char datastream[], const int version, const int target_codewords, const char mode[], const unsigned int jisdata[], const size_t length,
- const int gs1, const int eci, const int est_binlen, const int debug) {
- unsigned int position = 0;
+static void qr_binary(int datastream[], const int version, const int target_binlen, const char mode[], const int jisdata[], const size_t length, const int gs1, const int eci, const int est_binlen,const int debug) {
+ int position = 0;
int i;
- int termbits, padbits;
+ char padbits;
int current_binlen, current_bytes;
int toggle, percent;
int percent_count;
#endif
strcpy(binary, "");
- if (gs1) { /* Not applicable to MICROQR */
- if (version < RMQR_VERSION) {
- strcat(binary, "0101"); /* FNC1 */
- } else {
- strcat(binary, "101");
- }
+ if (gs1) {
+ strcat(binary, "0101"); /* FNC1 */
}
- if (eci != 0) { /* Not applicable to RMQR or MICROQR */
+ if (eci != 0) {
strcat(binary, "0111"); /* ECI (Table 4) */
if (eci <= 127) {
bin_append(eci, 8, binary); /* 000000 to 000127 */
}
}
- if (debug & ZINT_DEBUG_PRINT) {
- for (i = 0; i < (int) length; i++) {
+ if (debug) {
+ for (i = 0; i < length; i++) {
printf("%c", mode[i]);
}
printf("\n");
do {
char data_block = mode[position];
int short_data_block_length = 0;
- int double_byte = 0;
do {
- if (data_block == 'B' && jisdata[position + short_data_block_length] > 0xFF) {
- double_byte++;
- }
short_data_block_length++;
} while (((short_data_block_length + position) < length)
&& (mode[position + short_data_block_length] == data_block));
case 'K':
/* Kanji mode */
/* Mode indicator */
- strcat(binary, mode_indicator(version, data_block));
+ strcat(binary, "1000");
/* Character count indicator */
- bin_append(short_data_block_length, cci_bits(version, data_block), binary);
+ bin_append(short_data_block_length, tribus(version, 8, 10, 12), binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Kanji block (length %d)\n\t", short_data_block_length);
}
/* Character representation */
for (i = 0; i < short_data_block_length; i++) {
- unsigned int jis = jisdata[position + i];
+ int jis = jisdata[position + i];
int prod;
if (jis >= 0x8140 && jis <= 0x9ffc)
bin_append(prod, 13, binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("0x%04X ", prod);
+ if (debug) {
+ printf("0x%4X ", prod);
}
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
case 'B':
/* Byte mode */
/* Mode indicator */
- strcat(binary, mode_indicator(version, data_block));
+ strcat(binary, "0100");
/* Character count indicator */
- bin_append(short_data_block_length + double_byte, cci_bits(version, data_block), binary);
+ bin_append(short_data_block_length, tribus(version, 8, 16, 16), binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("Byte block (length %d)\n\t", short_data_block_length + double_byte);
+ if (debug) {
+ printf("Byte block (length %d)\n\t", short_data_block_length);
}
/* Character representation */
for (i = 0; i < short_data_block_length; i++) {
- unsigned int byte = jisdata[position + i];
+ int byte = jisdata[position + i];
if (gs1 && (byte == '[')) {
byte = 0x1d; /* FNC1 */
}
- bin_append(byte, byte > 0xFF ? 16 : 8, binary);
+ bin_append(byte, 8, binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("0x%02X(%d) ", byte, byte);
+ if (debug) {
+ printf("0x%2X(%d) ", byte, byte);
}
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
case 'A':
/* Alphanumeric mode */
/* Mode indicator */
- strcat(binary, mode_indicator(version, data_block));
+ strcat(binary, "0010");
percent_count = 0;
- if (gs1) {
- for (i = 0; i < short_data_block_length; i++) {
- if (jisdata[position + i] == '%') {
- percent_count++;
- }
+ for (i = 0; i < short_data_block_length; i++) {
+ if (gs1 && (jisdata[position + i] == '%')) {
+ percent_count++;
}
}
-
+
/* Character count indicator */
- bin_append(short_data_block_length + percent_count, cci_bits(version, data_block), binary);
+ bin_append(short_data_block_length + percent_count, tribus(version, 9, 11, 13), binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Alpha block (length %d)\n\t", short_data_block_length + percent_count);
}
bin_append(prod, 1 + (5 * count), binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("0x%X ", prod);
+ if (debug) {
+ printf("0x%4X ", prod);
}
- }
+ };
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
case 'N':
/* Numeric mode */
/* Mode indicator */
- strcat(binary, mode_indicator(version, data_block));
+ strcat(binary, "0001");
/* Character count indicator */
- bin_append(short_data_block_length, cci_bits(version, data_block), binary);
+ bin_append(short_data_block_length, tribus(version, 10, 12, 14), binary);
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Number block (length %d)\n\t", short_data_block_length);
}
bin_append(prod, 1 + (3 * count), binary);
- if (debug & ZINT_DEBUG_PRINT) {
- printf("0x%X(%d) ", prod, prod);
+ if (debug) {
+ printf("0x%4X (%d)", prod, prod);
}
i += count;
};
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\n");
}
position += short_data_block_length;
} while (position < length);
- if (version >= MICROQR_VERSION && version < MICROQR_VERSION + 4) {
- /* MICROQR does its own terminating/padding */
- strcpy((char*)datastream, binary);
- return;
- }
-
/* Terminator */
- current_binlen = (int)strlen(binary);
- termbits = 8 - current_binlen % 8;
- if (termbits == 8) {
- termbits = 0;
- }
- current_bytes = (current_binlen + termbits) / 8;
- if (termbits || current_bytes < target_codewords) {
- int max_termbits = terminator_bits(version);
- termbits = termbits < max_termbits && current_bytes == target_codewords ? termbits : max_termbits;
- bin_append(0, termbits, binary);
- current_binlen += termbits;
- }
+ strcat(binary, "0000");
- /* Padding bits */
- padbits = 8 - current_binlen % 8;
+ current_binlen = (int)strlen(binary);
+ padbits = 8 - (current_binlen % 8);
if (padbits == 8) {
padbits = 0;
}
- if (padbits) {
- current_bytes = (current_binlen + padbits) / 8;
- bin_append(0, padbits, binary);
+ current_bytes = (current_binlen + padbits) / 8;
+
+ /* Padding bits */
+ for (i = 0; i < padbits; i++) {
+ strcat(binary, "0");
}
/* Put data into 8-bit codewords */
/* Add pad codewords */
toggle = 0;
- for (i = current_bytes; i < target_codewords; i++) {
+ for (i = current_bytes; i < target_binlen; i++) {
if (toggle == 0) {
datastream[i] = 0xec;
toggle = 1;
}
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Resulting codewords:\n\t");
- for (i = 0; i < target_codewords; i++) {
- printf("0x%02X ", datastream[i]);
+ for (i = 0; i < target_binlen; i++) {
+ printf("0x%2X ", datastream[i]);
}
printf("\n");
}
}
/* Split data into blocks, add error correction and then interleave the blocks and error correction data */
-static void add_ecc(unsigned char fullstream[], const unsigned char datastream[], const int version, const int data_cw, const int blocks, int debug) {
- int ecc_cw;
- int short_data_block_length;
- int qty_long_blocks;
- int qty_short_blocks;
- int ecc_block_length;
- int i, j, length_this_block, posn;
-#ifdef _MSC_VER
- unsigned char* data_block;
- unsigned char* ecc_block;
- unsigned char* interleaved_data;
- unsigned char* interleaved_ecc;
-#endif
-
- if (version < RMQR_VERSION) {
- ecc_cw = qr_total_codewords[version - 1] - data_cw;
- } else {
- ecc_cw = rmqr_total_codewords[version - RMQR_VERSION] - data_cw;
- }
-
- short_data_block_length = data_cw / blocks;
- qty_long_blocks = data_cw % blocks;
- qty_short_blocks = blocks - qty_long_blocks;
- ecc_block_length = ecc_cw / blocks;
+static void add_ecc(int fullstream[],const int datastream[],const int version,const int data_cw,const int blocks) {
+ int ecc_cw = qr_total_codewords[version - 1] - data_cw;
+ int short_data_block_length = data_cw / blocks;
+ int qty_long_blocks = data_cw % blocks;
+ int qty_short_blocks = blocks - qty_long_blocks;
+ int ecc_block_length = ecc_cw / blocks;
+ int i, j, length_this_block, posn, debug = 0;
#ifndef _MSC_VER
- unsigned char data_block[short_data_block_length + 1];
- unsigned char ecc_block[ecc_block_length];
- unsigned char interleaved_data[data_cw];
- unsigned char interleaved_ecc[ecc_cw];
+ unsigned char data_block[short_data_block_length + 2];
+ unsigned char ecc_block[ecc_block_length + 2];
+ int interleaved_data[data_cw + 2];
+ int interleaved_ecc[ecc_cw + 2];
#else
- data_block = (unsigned char *) _alloca(short_data_block_length + 1);
- ecc_block = (unsigned char *) _alloca(ecc_block_length);
- interleaved_data = (unsigned char *) _alloca(data_cw);
- interleaved_ecc = (unsigned char *) _alloca(ecc_cw);
+ unsigned char* data_block = (unsigned char *) _alloca(short_data_block_length + 2);
+ unsigned char* ecc_block = (unsigned char *) _alloca(ecc_block_length + 2);
+ int* interleaved_data = (int *) _alloca((data_cw + 2) * sizeof (int));
+ int* interleaved_ecc = (int *) _alloca((ecc_cw + 2) * sizeof (int));
#endif
posn = 0;
}
for (j = 0; j < length_this_block; j++) {
- data_block[j] = datastream[posn + j];
+ data_block[j] = (unsigned char) datastream[posn + j];
}
rs_init_gf(0x11d);
rs_encode(length_this_block, data_block, ecc_block);
rs_free();
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("Block %d: ", i + 1);
for (j = 0; j < length_this_block; j++) {
printf("%2X ", data_block[j]);
}
for (j = 0; j < short_data_block_length; j++) {
- interleaved_data[(j * blocks) + i] = data_block[j];
+ interleaved_data[(j * blocks) + i] = (int) data_block[j];
}
if (i >= qty_short_blocks) {
- /* NOLINT suppress clang-tidy warning: data_block[short_data_block_length] set for i >= qty_short_blocks */
- interleaved_data[(short_data_block_length * blocks) + (i - qty_short_blocks)] = data_block[short_data_block_length]; // NOLINT
+ interleaved_data[(short_data_block_length * blocks) + (i - qty_short_blocks)] = (int) data_block[short_data_block_length];
}
for (j = 0; j < ecc_block_length; j++) {
- interleaved_ecc[(j * blocks) + i] = ecc_block[ecc_block_length - j - 1];
+ interleaved_ecc[(j * blocks) + i] = (int) ecc_block[ecc_block_length - j - 1];
}
posn += length_this_block;
}
for (j = 0; j < data_cw; j++) {
- fullstream[j] = interleaved_data[j]; // NOLINT suppress clang-tidy warning: interleaved_data[data_cw] fully set
+ fullstream[j] = interleaved_data[j];
}
for (j = 0; j < ecc_cw; j++) {
- fullstream[j + data_cw] = interleaved_ecc[j]; // NOLINT suppress clang-tidy warning: interleaved_ecc[ecc_cw] fully set
+ fullstream[j + data_cw] = interleaved_ecc[j];
}
- if (debug & ZINT_DEBUG_PRINT) {
+ if (debug) {
printf("\nData Stream: \n");
for (j = 0; j < (data_cw + ecc_cw); j++) {
printf("%2X ", fullstream[j]);
}
}
-static int cwbit(const unsigned char* fullstream, const int i) {
+static int cwbit(const int* fullstream,const int i) {
int resultant = 0;
if (fullstream[(i / 8)] & (0x80 >> (i % 8))) {
return resultant;
}
-static void populate_grid(unsigned char* grid, const int h_size, const int v_size, const unsigned char* fullstream, const int cw) {
+static void populate_grid(unsigned char* grid,const int size,const int* fullstream,const int cw) {
int direction = 1; /* up */
int row = 0; /* right hand side */
int i, n, y;
n = cw * 8;
- y = v_size - 1;
+ y = size - 1;
i = 0;
- while (i < n) {
- int x = (h_size - 2) - (row * 2);
-
- if ((x < 6) && (v_size == h_size))
+ do {
+ int x = (size - 2) - (row * 2);
+ if (x < 6)
x--; /* skip over vertical timing pattern */
- if (!(grid[(y * h_size) + (x + 1)] & 0xf0)) {
+ if (!(grid[(y * size) + (x + 1)] & 0xf0)) {
if (cwbit(fullstream, i)) {
- grid[(y * h_size) + (x + 1)] = 0x01;
+ grid[(y * size) + (x + 1)] = 0x01;
} else {
- grid[(y * h_size) + (x + 1)] = 0x00;
+ grid[(y * size) + (x + 1)] = 0x00;
}
i++;
}
if (i < n) {
- if (!(grid[(y * h_size) + x] & 0xf0)) {
+ if (!(grid[(y * size) + x] & 0xf0)) {
if (cwbit(fullstream, i)) {
- grid[(y * h_size) + x] = 0x01;
+ grid[(y * size) + x] = 0x01;
} else {
- grid[(y * h_size) + x] = 0x00;
+ grid[(y * size) + x] = 0x00;
}
i++;
}
y = 0;
direction = 0;
}
- if (y == v_size) {
+ if (y == size) {
/* reached the bottom */
row++;
- y = v_size - 1;
+ y = size - 1;
direction = 1;
}
- }
+ } while (i < n);
}
#ifdef ZINTLOG
-static int append_log(char log) {
+int append_log(char log) {
FILE *file;
file = fopen("zintlog.txt", "a+");
return 0;
}
-static int write_log(char log[]) {
+int write_log(char log[]) {
FILE *file;
file = fopen("zintlog.txt", "a+");
/* Test 2: Block of modules in same color */
for (x = 0; x < size - 1; x++) {
for (y = 0; y < size - 1; y++) {
- /* NOLINT suppress clang-tidy warning: local[size * size] fully set */
- if (((local[(y * size) + x] == local[((y + 1) * size) + x]) && // NOLINT
+ if (((local[(y * size) + x] == local[((y + 1) * size) + x]) &&
(local[(y * size) + x] == local[(y * size) + (x + 1)])) &&
- (local[(y * size) + x] == local[((y + 1) * size) + (x + 1)])) { // NOLINT
+ (local[(y * size) + x] == local[((y + 1) * size) + (x + 1)])) {
result += 3;
}
}
}
}
+/* Implements a custom optimisation algorithm, more efficient than that
+ given in Annex J. */
+static void applyOptimisation(const int version,char inputMode[], const size_t inputLength) {
+
+
+ int blockCount = 0, block;
+ int i, j;
+ char currentMode = ' '; // Null
+ int *blockLength;
+ char *blockMode;
+
+ for (i = 0; i < inputLength; i++) {
+ if (inputMode[i] != currentMode) {
+ currentMode = inputMode[i];
+ blockCount++;
+ }
+ }
+
+ blockLength = (int*) malloc(sizeof (int)*blockCount);
+ assert(blockLength);
+ if (!blockLength) return;
+ blockMode = (char*) malloc(sizeof (char)*blockCount);
+ assert(blockMode);
+ if (!blockMode) {
+ free(blockLength);
+ return;
+ }
+
+ j = -1;
+ currentMode = ' '; // Null
+ for (i = 0; i < inputLength; i++) {
+ if (inputMode[i] != currentMode) {
+ j++;
+ blockLength[j] = 1;
+ blockMode[j] = inputMode[i];
+ currentMode = inputMode[i];
+ } else {
+ blockLength[j]++;
+ }
+ }
+
+ if (blockCount > 1) {
+ // Search forward
+ for (i = 0; i <= (blockCount - 2); i++) {
+ if (blockMode[i] == 'B') {
+ switch (blockMode[i + 1]) {
+ case 'K':
+ if (blockLength[i + 1] < tribus(version, 4, 5, 6)) {
+ blockMode[i + 1] = 'B';
+ }
+ break;
+ case 'A':
+ if (blockLength[i + 1] < tribus(version, 7, 8, 9)) {
+ blockMode[i + 1] = 'B';
+ }
+ break;
+ case 'N':
+ if (blockLength[i + 1] < tribus(version, 3, 4, 5)) {
+ blockMode[i + 1] = 'B';
+ }
+ break;
+ }
+ }
+
+ if ((blockMode[i] == 'A')
+ && (blockMode[i + 1] == 'N')) {
+ if (blockLength[i + 1] < tribus(version, 6, 8, 10)) {
+ blockMode[i + 1] = 'A';
+ }
+ }
+ }
+
+ // Search backward
+ for (i = blockCount - 1; i > 0; i--) {
+ if (blockMode[i] == 'B') {
+ switch (blockMode[i - 1]) {
+ case 'K':
+ if (blockLength[i - 1] < tribus(version, 4, 5, 6)) {
+ blockMode[i - 1] = 'B';
+ }
+ break;
+ case 'A':
+ if (blockLength[i - 1] < tribus(version, 7, 8, 9)) {
+ blockMode[i - 1] = 'B';
+ }
+ break;
+ case 'N':
+ if (blockLength[i - 1] < tribus(version, 3, 4, 5)) {
+ blockMode[i - 1] = 'B';
+ }
+ break;
+ }
+ }
+
+ if ((blockMode[i] == 'A')
+ && (blockMode[i - 1] == 'N')) {
+ if (blockLength[i - 1] < tribus(version, 6, 8, 10)) {
+ blockMode[i - 1] = 'A';
+ }
+ }
+ }
+ }
+
+ j = 0;
+ for (block = 0; block < blockCount; block++) {
+ currentMode = blockMode[block];
+ for (i = 0; i < blockLength[block]; i++) {
+ inputMode[j] = currentMode;
+ j++;
+ }
+ }
+
+ free(blockLength);
+ free(blockMode);
+}
+
static size_t blockLength(const size_t start,const char inputMode[],const size_t inputLength) {
/* Find the length of the block starting from 'start' */
size_t i;
return count;
}
-static int getBinaryLength(const int version, char inputMode[], const unsigned int inputData[], const size_t inputLength, const int gs1, const int eci, const int debug) {
+static int getBinaryLength(const int version,char inputMode[],const int inputData[],const size_t inputLength,const int gs1,const int eci) {
/* Calculate the actual bitlength of the proposed binary string */
- size_t i, j;
+ size_t i;
char currentMode;
+ int j;
int count = 0;
int alphalength;
- int blocklength;
+ int percent = 0;
- qr_define_mode(inputMode, inputData, inputLength, gs1, version, debug);
+ applyOptimisation(version, inputMode, inputLength);
currentMode = ' '; // Null
- if (gs1 == 1) { /* Not applicable to MICROQR */
- if (version < RMQR_VERSION) {
- count += 4;
- } else {
- count += 3;
- }
+ if (gs1 == 1) {
+ count += 4;
}
- if (eci != 0) { // RMQR and MICROQR do not support ECI
- count += 4;
- if (eci <= 127) {
- count += 8;
- } else if (eci <= 16383) {
- count += 16;
- } else {
- count += 24;
- }
+ if (eci != 0) {
+ count += 12;
}
for (i = 0; i < inputLength; i++) {
if (inputMode[i] != currentMode) {
- count += mode_bits(version) + cci_bits(version, inputMode[i]);
- blocklength = blockLength(i, inputMode, inputLength);
+ count += 4;
switch (inputMode[i]) {
case 'K':
- count += (blocklength * 13);
+ count += tribus(version, 8, 10, 12);
+ count += (blockLength(i, inputMode, inputLength) * 13);
break;
case 'B':
- for (j = i; j < (i + blocklength); j++) {
+ count += tribus(version, 8, 16, 16);
+ for (j = i; j < (i + blockLength(i, inputMode, inputLength)); j++) {
if (inputData[j] > 0xff) {
count += 16;
} else {
}
break;
case 'A':
- alphalength = blocklength;
- if (gs1) {
- // In alphanumeric mode % becomes %%
- for (j = i; j < (i + blocklength); j++) {
- if (inputData[j] == '%') {
- alphalength++;
- }
+ count += tribus(version, 9, 11, 13);
+ alphalength = blockLength(i, inputMode, inputLength);
+ // In alphanumeric mode % becomes %%
+ for (j = i; j < (i + alphalength); j++) {
+ if (inputData[j] == '%') {
+ percent++;
}
}
+ alphalength += percent;
switch (alphalength % 2) {
case 0:
count += (alphalength / 2) * 11;
}
break;
case 'N':
- switch (blocklength % 3) {
+ count += tribus(version, 10, 12, 14);
+ switch (blockLength(i, inputMode, inputLength) % 3) {
case 0:
- count += (blocklength / 3) * 10;
+ count += (blockLength(i, inputMode, inputLength) / 3) * 10;
break;
case 1:
- count += ((blocklength - 1) / 3) * 10;
+ count += ((blockLength(i, inputMode, inputLength) - 1) / 3) * 10;
count += 4;
break;
case 2:
- count += ((blocklength - 2) / 3) * 10;
+ count += ((blockLength(i, inputMode, inputLength) - 2) / 3) * 10;
count += 7;
break;
}
}
}
- if (debug & ZINT_DEBUG_PRINT) {
- printf("Estimated Binary Length: %d (version %d, eci %d, gs1 %d)\n", count, version, eci, gs1);
- }
-
return count;
}
-INTERNAL int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
+int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, est_binlen;
- int ecc_level, autosize, version, max_cw, target_codewords, blocks, size;
+ int ecc_level, autosize, version, max_cw, target_binlen, blocks, size;
int bitmask, gs1;
- int full_multibyte;
int canShrink;
#ifndef _MSC_VER
- unsigned int jisdata[length + 1];
+ int utfdata[length + 1];
+ int jisdata[length + 1];
char mode[length + 1];
#else
- unsigned char* datastream;
- unsigned char* fullstream;
+ int* datastream;
+ int* fullstream;
unsigned char* grid;
- unsigned int* jisdata = (unsigned int *) _alloca((length + 1) * sizeof (unsigned int));
+ int* utfdata = (int *) _alloca((length + 1) * sizeof (int));
+ int* jisdata = (int *) _alloca((length + 1) * sizeof (int));
char* mode = (char *) _alloca(length + 1);
#endif
- gs1 = ((symbol->input_mode & 0x07) == GS1_MODE);
- full_multibyte = symbol->option_3 == ZINT_FULL_MULTIBYTE; /* If set use Kanji mode in DATA_MODE or for single-byte Latin */
+ gs1 = (symbol->input_mode == GS1_MODE);
- if ((symbol->input_mode & 0x07) == DATA_MODE) {
- sjis_cpy(source, &length, jisdata, full_multibyte);
+ if ((symbol->input_mode == DATA_MODE) || (symbol->eci != 0)) {
+ for (i = 0; i < length; i++) {
+ jisdata[i] = (int) source[i];
+ }
} else {
- int done = 0;
- if (symbol->eci != 20) { /* Unless ECI 20 (Shift JIS) */
- /* Try single byte (Latin) conversion first */
- int error_number = sjis_utf8tosb(symbol->eci && symbol->eci <= 899 ? symbol->eci : 3, source, &length, jisdata, full_multibyte);
- if (error_number == 0) {
- done = 1;
- } else if (symbol->eci && symbol->eci <= 899) {
- strcpy(symbol->errtxt, "575: Invalid characters in input data");
- return error_number;
- }
+ /* Convert Unicode input to Shift-JIS */
+ int error_number = utf8toutf16(symbol, source, utfdata, &length);
+ if (error_number != 0) {
+ return error_number;
}
- if (!done) {
- /* Try Shift-JIS */
- int error_number = sjis_utf8tomb(symbol, source, &length, jisdata);
- if (error_number != 0) {
- return error_number;
+
+ for (i = 0; i < length; i++) {
+ if (utfdata[i] <= 0xff) {
+ jisdata[i] = utfdata[i];
+ } else {
+ int glyph = 0;
+ j = 0;
+ do {
+ if (sjis_lookup[j * 2] == utfdata[i]) {
+ glyph = sjis_lookup[(j * 2) + 1];
+ }
+ j++;
+ } while ((j < 6843) && (glyph == 0));
+ if (glyph == 0) {
+ strcpy(symbol->errtxt, "560: Invalid character in input data");
+ return ZINT_ERROR_INVALID_DATA;
+ }
+ jisdata[i] = glyph;
}
}
}
- est_binlen = getBinaryLength(40, mode, jisdata, length, gs1, symbol->eci, symbol->debug);
+ define_mode(mode, jisdata, length, gs1);
+ est_binlen = getBinaryLength(40, mode, jisdata, length, gs1, symbol->eci);
ecc_level = LEVEL_L;
max_cw = 2956;
if ((symbol->option_1 >= 1) && (symbol->option_1 <= 4)) {
switch (symbol->option_1) {
- case 1:
+ case 1: ecc_level = LEVEL_L;
+ max_cw = 2956;
break;
case 2: ecc_level = LEVEL_M;
max_cw = 2334;
break;
}
}
- if (autosize != 40) {
- est_binlen = getBinaryLength(autosize, mode, jisdata, length, gs1, symbol->eci, symbol->debug);
- }
// Now see if the optimised binary will fit in a smaller symbol.
canShrink = 1;
if (autosize == 1) {
canShrink = 0;
} else {
- est_binlen = getBinaryLength(autosize - 1, mode, jisdata, length, gs1, symbol->eci, symbol->debug);
+ est_binlen = getBinaryLength(autosize - 1, mode, jisdata, length, gs1, symbol->eci);
switch (ecc_level) {
case LEVEL_L:
autosize--;
} else {
// Data did not fit in the smaller symbol, revert to original size
- est_binlen = getBinaryLength(autosize, mode, jisdata, length, gs1, symbol->eci, symbol->debug);
+ est_binlen = getBinaryLength(autosize, mode, jisdata, length, gs1, symbol->eci);
}
}
} while (canShrink == 1);
*/
if (symbol->option_2 > version) {
version = symbol->option_2;
- est_binlen = getBinaryLength(symbol->option_2, mode, jisdata, length, gs1, symbol->eci, symbol->debug);
+ est_binlen = getBinaryLength(symbol->option_2, mode, jisdata, length, gs1, symbol->eci);
}
if (symbol->option_2 < version) {
return ZINT_ERROR_TOO_LONG;
}
}
-
- /* Ensure maxium error correction capacity unless user-specified */
- if (symbol->option_1 == -1 || symbol->option_1 != ecc_level) {
- if (est_binlen <= qr_data_codewords_M[version - 1] * 8) {
- ecc_level = LEVEL_M;
- }
- if (est_binlen <= qr_data_codewords_Q[version - 1] * 8) {
- ecc_level = LEVEL_Q;
- }
- if (est_binlen <= qr_data_codewords_H[version - 1] * 8) {
- ecc_level = LEVEL_H;
- }
+
+ /* Ensure maxium error correction capacity */
+ if (est_binlen <= qr_data_codewords_M[version - 1] * 8) {
+ ecc_level = LEVEL_M;
+ }
+ if (est_binlen <= qr_data_codewords_Q[version - 1] * 8) {
+ ecc_level = LEVEL_Q;
+ }
+ if (est_binlen <= qr_data_codewords_H[version - 1] * 8) {
+ ecc_level = LEVEL_H;
}
- target_codewords = qr_data_codewords_L[version - 1];
+ target_binlen = qr_data_codewords_L[version - 1];
blocks = qr_blocks_L[version - 1];
switch (ecc_level) {
- case LEVEL_M: target_codewords = qr_data_codewords_M[version - 1];
+ case LEVEL_M: target_binlen = qr_data_codewords_M[version - 1];
blocks = qr_blocks_M[version - 1];
break;
- case LEVEL_Q: target_codewords = qr_data_codewords_Q[version - 1];
+ case LEVEL_Q: target_binlen = qr_data_codewords_Q[version - 1];
blocks = qr_blocks_Q[version - 1];
break;
- case LEVEL_H: target_codewords = qr_data_codewords_H[version - 1];
+ case LEVEL_H: target_binlen = qr_data_codewords_H[version - 1];
blocks = qr_blocks_H[version - 1];
break;
}
#ifndef _MSC_VER
- unsigned char datastream[target_codewords + 1];
- unsigned char fullstream[qr_total_codewords[version - 1] + 1];
+ int datastream[target_binlen + 1];
+ int fullstream[qr_total_codewords[version - 1] + 1];
#else
- datastream = (unsigned char *) _alloca(target_codewords + 1);
- fullstream = (unsigned char *) _alloca(qr_total_codewords[version - 1] + 1);
+ datastream = (int *) _alloca((target_binlen + 1) * sizeof (int));
+ fullstream = (int *) _alloca((qr_total_codewords[version - 1] + 1) * sizeof (int));
#endif
- qr_binary(datastream, version, target_codewords, mode, jisdata, length, gs1, symbol->eci, est_binlen, symbol->debug);
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords);
-#endif
- add_ecc(fullstream, datastream, version, target_codewords, blocks, symbol->debug);
+ qr_binary(datastream, version, target_binlen, mode, jisdata, length, gs1, symbol->eci, est_binlen, symbol->debug);
+ add_ecc(fullstream, datastream, version, target_binlen, blocks);
size = qr_sizes[version - 1];
#ifndef _MSC_VER
}
setup_grid(grid, size, version);
- populate_grid(grid, size, size, fullstream, qr_total_codewords[version - 1]);
+ populate_grid(grid, size, fullstream, qr_total_codewords[version - 1]);
if (version >= 7) {
add_version_info(grid, size, version);
add_format_info(grid, size, ecc_level, bitmask);
+
+
symbol->width = size;
symbol->rows = size;
return 0;
}
-static void micro_qr_m1(struct zint_symbol *symbol, char binary_data[]) {
- int i, j, latch;
- int bits_total, bits_left;
- int data_codewords, ecc_codewords;
- unsigned char data_blocks[4], ecc_blocks[3];
+/* NOTE: From this point forward concerns Micro QR Code only */
- bits_total = 20;
- latch = 0;
+static int micro_qr_intermediate(char binary[], const int jisdata[], const char mode[], const size_t length, int *kanji_used, int *alphanum_used, int *byte_used,const int debug) {
+ /* Convert input data to an "intermediate stage" where data is binary encoded but
+ control information is not */
+ int position = 0;
+ int i;
+ char buffer[2];
- /* Add terminator */
- bits_left = bits_total - (int)strlen(binary_data);
- if (bits_left <= 3) {
- for (i = 0; i < bits_left; i++) {
- strcat(binary_data, "0");
- }
- latch = 1;
- } else {
- strcat(binary_data, "000");
- }
+ strcpy(binary, "");
- if (latch == 0) {
- /* Manage last (4-bit) block */
- bits_left = bits_total - (int)strlen(binary_data);
- if (bits_left <= 4) {
- for (i = 0; i < bits_left; i++) {
- strcat(binary_data, "0");
- }
- latch = 1;
+ if (debug) {
+ for (i = 0; i < length; i++) {
+ printf("%c", mode[i]);
}
+ printf("\n");
}
- if (latch == 0) {
- /* Complete current byte */
- int remainder = 8 - (strlen(binary_data) % 8);
- if (remainder == 8) {
- remainder = 0;
- }
- for (i = 0; i < remainder; i++) {
- strcat(binary_data, "0");
+ do {
+ char data_block;
+ int short_data_block_length = 0;
+ if (strlen(binary) > 128) {
+ return ZINT_ERROR_TOO_LONG;
}
- /* Add padding */
- bits_left = bits_total - (int)strlen(binary_data);
- if (bits_left > 4) {
- remainder = (bits_left - 4) / 8;
- for (i = 0; i < remainder; i++) {
- strcat(binary_data, (i & 1) ? "00010001" : "11101100");
- }
- }
- bin_append(0, 4, binary_data);
- }
+ data_block = mode[position];
+ do {
+ short_data_block_length++;
+ } while (((short_data_block_length + position) < length) && (mode[position + short_data_block_length] == data_block));
- data_codewords = 3;
- ecc_codewords = 2;
+ switch (data_block) {
+ case 'K':
+ /* Kanji mode */
+ /* Mode indicator */
+ strcat(binary, "K");
+ *kanji_used = 1;
- /* Copy data into codewords */
- for (i = 0; i < (data_codewords - 1); i++) {
- data_blocks[i] = 0;
- for (j = 0; j < 8; j++) {
- if (binary_data[(i * 8) + j] == '1') {
- data_blocks[i] += 0x80 >> j;
- }
- }
- }
- data_blocks[2] = 0;
- for (j = 0; j < 4; j++) {
- if (binary_data[16 + j] == '1') {
- data_blocks[2] += 0x80 >> j;
- }
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
-#else
- (void)symbol; /* Unused */
-#endif
+ /* Character count indicator */
+ buffer[0] = short_data_block_length;
+ buffer[1] = '\0';
+ strcat(binary, buffer);
- /* Calculate Reed-Solomon error codewords */
- rs_init_gf(0x11d);
- rs_init_code(ecc_codewords, 0);
- rs_encode(data_codewords, data_blocks, ecc_blocks);
- rs_free();
+ if (debug) {
+ printf("Kanji block (length %d)\n\t", short_data_block_length);
+ }
+
+ /* Character representation */
+ for (i = 0; i < short_data_block_length; i++) {
+ int jis = jisdata[position + i];
+ int prod;
+
+ if (jis >= 0x8140 && jis <= 0x9ffc)
+ jis -= 0x8140;
+
+ else if (jis >= 0xe040 && jis <= 0xebbf)
+ jis -= 0xc140;
+
+ prod = ((jis >> 8) * 0xc0) + (jis & 0xff);
+
+ bin_append(prod, 13, binary);
+
+ if (debug) {
+ printf("0x%4X ", prod);
+ }
+
+ if (strlen(binary) > 128) {
+ return ZINT_ERROR_TOO_LONG;
+ }
+ }
+
+ if (debug) {
+ printf("\n");
+ }
+
+ break;
+ case 'B':
+ /* Byte mode */
+ /* Mode indicator */
+ strcat(binary, "B");
+ *byte_used = 1;
+
+ /* Character count indicator */
+ buffer[0] = short_data_block_length;
+ buffer[1] = '\0';
+ strcat(binary, buffer);
+
+ if (debug) {
+ printf("Byte block (length %d)\n\t", short_data_block_length);
+ }
+
+ /* Character representation */
+ for (i = 0; i < short_data_block_length; i++) {
+ int byte = jisdata[position + i];
+
+ bin_append(byte, 8, binary);
+
+ if (debug) {
+ printf("0x%4X ", byte);
+ }
+
+ if (strlen(binary) > 128) {
+ return ZINT_ERROR_TOO_LONG;
+ }
+ }
+
+ if (debug) {
+ printf("\n");
+ }
+
+ break;
+ case 'A':
+ /* Alphanumeric mode */
+ /* Mode indicator */
+ strcat(binary, "A");
+ *alphanum_used = 1;
+
+ /* Character count indicator */
+ buffer[0] = short_data_block_length;
+ buffer[1] = '\0';
+ strcat(binary, buffer);
+
+ if (debug) {
+ printf("Alpha block (length %d)\n\t", short_data_block_length);
+ }
+
+ /* Character representation */
+ i = 0;
+ while (i < short_data_block_length) {
+ int count;
+ int first = 0, prod;
+
+ first = posn(RHODIUM, (char) jisdata[position + i]);
+ count = 1;
+ prod = first;
+
+ if (i + 1 < short_data_block_length && mode[position + i + 1] == 'A') {
+ int second = posn(RHODIUM, (char) jisdata[position + i + 1]);
+ count = 2;
+ prod = (first * 45) + second;
+ }
+
+ bin_append(prod, 1 + (5 * count), binary);
+
+ if (debug) {
+ printf("0x%4X ", prod);
+ }
+
+ if (strlen(binary) > 128) {
+ return ZINT_ERROR_TOO_LONG;
+ }
+
+ i += 2;
+ };
+
+ if (debug) {
+ printf("\n");
+ }
+
+ break;
+ case 'N':
+ /* Numeric mode */
+ /* Mode indicator */
+ strcat(binary, "N");
+
+ /* Character count indicator */
+ buffer[0] = short_data_block_length;
+ buffer[1] = '\0';
+ strcat(binary, buffer);
+
+ if (debug) {
+ printf("Number block (length %d)\n\t", short_data_block_length);
+ }
+
+ /* Character representation */
+ i = 0;
+ while (i < short_data_block_length) {
+ int count;
+ int first = 0, prod;
+
+ first = posn(NEON, (char) jisdata[position + i]);
+ count = 1;
+ prod = first;
+
+ if (i + 1 < short_data_block_length && mode[position + i + 1] == 'N') {
+ int second = posn(NEON, (char) jisdata[position + i + 1]);
+ count = 2;
+ prod = (prod * 10) + second;
+ }
+
+ if (i + 2 < short_data_block_length && mode[position + i + 2] == 'N') {
+ int third = posn(NEON, (char) jisdata[position + i + 2]);
+ count = 3;
+ prod = (prod * 10) + third;
+ }
+
+ bin_append(prod, 1 + (3 * count), binary);
+
+ if (debug) {
+ printf("0x%4X (%d)", prod, prod);
+ }
+
+ if (strlen(binary) > 128) {
+ return ZINT_ERROR_TOO_LONG;
+ }
+
+ i += 3;
+ };
+
+ if (debug) {
+ printf("\n");
+ }
+
+ break;
+ }
+
+ position += short_data_block_length;
+ } while (position < length - 1);
+
+ return 0;
+}
+
+static void get_bitlength(int count[],const char stream[]) {
+ size_t length;
+ int i;
+
+ length = strlen(stream);
+
+ for (i = 0; i < 4; i++) {
+ count[i] = 0;
+ }
+
+ i = 0;
+ do {
+ if ((stream[i] == '0') || (stream[i] == '1')) {
+ count[0]++;
+ count[1]++;
+ count[2]++;
+ count[3]++;
+ i++;
+ } else {
+ switch (stream[i]) {
+ case 'K':
+ count[2] += 5;
+ count[3] += 7;
+ i += 2;
+ break;
+ case 'B':
+ count[2] += 6;
+ count[3] += 8;
+ i += 2;
+ break;
+ case 'A':
+ count[1] += 4;
+ count[2] += 6;
+ count[3] += 8;
+ i += 2;
+ break;
+ case 'N':
+ count[0] += 3;
+ count[1] += 5;
+ count[2] += 7;
+ count[3] += 9;
+ i += 2;
+ break;
+ }
+ }
+ } while (i < length);
+}
+
+static void microqr_expand_binary(const char binary_stream[], char full_stream[],const int version) {
+ int i;
+ size_t length;
+
+ length = strlen(binary_stream);
+
+ i = 0;
+ do {
+ switch (binary_stream[i]) {
+ case '1': strcat(full_stream, "1");
+ i++;
+ break;
+ case '0': strcat(full_stream, "0");
+ i++;
+ break;
+ case 'N':
+ /* Numeric Mode */
+ /* Mode indicator */
+ switch (version) {
+ case 1: strcat(full_stream, "0");
+ break;
+ case 2: strcat(full_stream, "00");
+ break;
+ case 3: strcat(full_stream, "000");
+ break;
+ }
+
+ /* Character count indicator */
+ bin_append(binary_stream[i + 1], 3 + version, full_stream); /* version = 0..3 */
+
+ i += 2;
+ break;
+ case 'A':
+ /* Alphanumeric Mode */
+ /* Mode indicator */
+ switch (version) {
+ case 1: strcat(full_stream, "1");
+ break;
+ case 2: strcat(full_stream, "01");
+ break;
+ case 3: strcat(full_stream, "001");
+ break;
+ }
+
+ /* Character count indicator */
+ bin_append(binary_stream[i + 1], 2 + version, full_stream); /* version = 1..3 */
+
+ i += 2;
+ break;
+ case 'B':
+ /* Byte Mode */
+ /* Mode indicator */
+ switch (version) {
+ case 2: strcat(full_stream, "10");
+ break;
+ case 3: strcat(full_stream, "010");
+ break;
+ }
+
+ /* Character count indicator */
+ bin_append(binary_stream[i + 1], 2 + version, full_stream); /* version = 2..3 */
+
+ i += 2;
+ break;
+ case 'K':
+ /* Kanji Mode */
+ /* Mode indicator */
+ switch (version) {
+ case 2: strcat(full_stream, "11");
+ break;
+ case 3: strcat(full_stream, "011");
+ break;
+ }
+
+ /* Character count indicator */
+ bin_append(binary_stream[i + 1], 1 + version, full_stream); /* version = 2..3 */
+
+ i += 2;
+ break;
+ }
+
+ } while (i < length);
+}
+
+static void micro_qr_m1(char binary_data[]) {
+ int i, j, latch;
+ int bits_total, bits_left;
+ int data_codewords, ecc_codewords;
+ unsigned char data_blocks[4], ecc_blocks[3];
+
+ bits_total = 20;
+ latch = 0;
+
+ /* Add terminator */
+ bits_left = bits_total - (int)strlen(binary_data);
+ if (bits_left <= 3) {
+ for (i = 0; i < bits_left; i++) {
+ strcat(binary_data, "0");
+ }
+ latch = 1;
+ } else {
+ strcat(binary_data, "000");
+ }
+
+ if (latch == 0) {
+ /* Manage last (4-bit) block */
+ bits_left = bits_total - (int)strlen(binary_data);
+ if (bits_left <= 4) {
+ for (i = 0; i < bits_left; i++) {
+ strcat(binary_data, "0");
+ }
+ latch = 1;
+ }
+ }
+
+ if (latch == 0) {
+ /* Complete current byte */
+ int remainder = 8 - (strlen(binary_data) % 8);
+ if (remainder == 8) {
+ remainder = 0;
+ }
+ for (i = 0; i < remainder; i++) {
+ strcat(binary_data, "0");
+ }
+
+ /* Add padding */
+ bits_left = bits_total - (int)strlen(binary_data);
+ if (bits_left > 4) {
+ remainder = (bits_left - 4) / 8;
+ for (i = 0; i < remainder; i++) {
+ strcat(binary_data, (i & 1) ? "00010001" : "11101100");
+ }
+ }
+ bin_append(0, 4, binary_data);
+ }
+
+ data_codewords = 3;
+ ecc_codewords = 2;
+
+ /* Copy data into codewords */
+ for (i = 0; i < (data_codewords - 1); i++) {
+ data_blocks[i] = 0;
+ for (j = 0; j < 8; j++) {
+ if (binary_data[(i * 8) + j] == '1') {
+ data_blocks[i] += 0x80 >> j;
+ }
+ }
+ }
+ data_blocks[2] = 0;
+ for (j = 0; j < 4; j++) {
+ if (binary_data[16 + j] == '1') {
+ data_blocks[2] += 0x80 >> j;
+ }
+ }
+
+ /* Calculate Reed-Solomon error codewords */
+ rs_init_gf(0x11d);
+ rs_init_code(ecc_codewords, 0);
+ rs_encode(data_codewords, data_blocks, ecc_blocks);
+ rs_free();
/* Add Reed-Solomon codewords to binary data */
for (i = 0; i < ecc_codewords; i++) {
}
}
-static void micro_qr_m2(struct zint_symbol *symbol, char binary_data[], const int ecc_mode) {
+static void micro_qr_m2(char binary_data[],const int ecc_mode) {
int i, j, latch;
int bits_total=0, bits_left;
int data_codewords=0, ecc_codewords=0;
}
}
}
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
-#else
- (void)symbol; /* Unused */
-#endif
/* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d);
return;
}
-static void micro_qr_m3(struct zint_symbol *symbol, char binary_data[], const int ecc_mode) {
+static void micro_qr_m3(char binary_data[],const int ecc_mode) {
int i, j, latch;
int bits_total=0, bits_left;
int data_codewords=0, ecc_codewords=0;
}
}
}
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
-#else
- (void)symbol; /* Unused */
-#endif
/* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d);
return;
}
-static void micro_qr_m4(struct zint_symbol *symbol, char binary_data[], const int ecc_mode) {
+static void micro_qr_m4(char binary_data[],const int ecc_mode) {
int i, j, latch;
int bits_total=0, bits_left;
int data_codewords=0, ecc_codewords=0;
}
}
}
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
-#else
- (void)symbol; /* Unused */
-#endif
/* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d);
static void micro_populate_grid(unsigned char* grid,const int size,const char full_stream[]) {
int direction = 1; /* up */
int row = 0; /* right hand side */
- size_t n, i;
- int y;
+ size_t n;
+ int i, y;
n = strlen(full_stream);
y = size - 1;
return best_pattern;
}
-INTERNAL int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
- size_t i, size, j;
+int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
+ size_t i;
+ int j, size;
+ char binary_stream[200];
char full_stream[200];
- int full_multibyte;
+ int utfdata[40];
- unsigned int jisdata[40];
+ int jisdata[40];
char mode[40];
- int alpha_used = 0, byte_or_kanji_used = 0;
+ int error_number, kanji_used = 0, alphanum_used = 0, byte_used = 0;
int version_valid[4];
int binary_count[4];
int ecc_level, autoversion, version;
- int bitmask, format, format_full;
+ int n_count, a_count, bitmask, format, format_full;
#ifdef _MSC_VER
unsigned char* grid;
#endif
ecc_level = symbol->option_1;
}
- full_multibyte = symbol->option_3 == ZINT_FULL_MULTIBYTE; /* If set use Kanji mode in DATA_MODE or for single-byte Latin */
+ for (i = 0; i < 4; i++) {
+ version_valid[i] = 1;
+ }
- if ((symbol->input_mode & 0x07) == DATA_MODE) {
- sjis_cpy(source, &length, jisdata, full_multibyte);
+ if (symbol->input_mode == DATA_MODE) {
+ for (i = 0; i < length; i++) {
+ jisdata[i] = (int) source[i];
+ }
} else {
- /* Try ISO 8859-1 conversion first */
- int error_number = sjis_utf8tosb(3, source, &length, jisdata, full_multibyte);
+ /* Convert Unicode input to Shift-JIS */
+ error_number = utf8toutf16(symbol, source, utfdata, &length);
if (error_number != 0) {
- /* Try Shift-JIS */
- error_number = sjis_utf8tomb(symbol, source, &length, jisdata);
- if (error_number != 0) {
- return error_number;
- }
+ return error_number;
}
- }
- /* Determine if alpha (excluding numerics), byte or kanji used */
- for (i = 0; i < length && (alpha_used == 0 || byte_or_kanji_used == 0); i++) {
- if (jisdata[i] < '0' || jisdata[i] > '9') {
- if (is_alpha(jisdata[i], 0 /*gs1*/)) {
- alpha_used = 1;
+ for (i = 0; i < length; i++) {
+ if (utfdata[i] <= 0xff) {
+ jisdata[i] = utfdata[i];
} else {
- byte_or_kanji_used = 1;
+ int glyph = 0;
+ j = 0;
+ do {
+ if (sjis_lookup[j * 2] == utfdata[i]) {
+ glyph = sjis_lookup[(j * 2) + 1];
+ }
+ j++;
+ } while ((j < 6843) && (glyph == 0));
+ if (glyph == 0) {
+ strcpy(symbol->errtxt, "563: Invalid character in input data");
+ return ZINT_ERROR_INVALID_DATA;
+ }
+ jisdata[i] = glyph;
}
}
}
- for (i = 0; i < 4; i++) {
- version_valid[i] = 1;
+ define_mode(mode, jisdata, length, 0);
+
+ n_count = 0;
+ a_count = 0;
+ for (i = 0; i < length; i++) {
+ if ((jisdata[i] >= '0') && (jisdata[i] <= '9')) {
+ n_count++;
+ }
+ if (in_alpha(jisdata[i])) {
+ a_count++;
+ }
}
- /* Eliminate possible versions depending on type of content */
- if (byte_or_kanji_used) {
- version_valid[0] = 0;
- version_valid[1] = 0;
- } else if (alpha_used) {
- version_valid[0] = 0;
+ if (a_count == length) {
+ /* All data can be encoded in Alphanumeric mode */
+ for (i = 0; i < length; i++) {
+ mode[i] = 'A';
+ }
}
- /* Eliminate possible versions depending on error correction level specified */
- if (ecc_level == LEVEL_Q) {
+ if (n_count == length) {
+ /* All data can be encoded in Numeric mode */
+ for (i = 0; i < length; i++) {
+ mode[i] = 'N';
+ }
+ }
+
+ error_number = micro_qr_intermediate(binary_stream, jisdata, mode, length, &kanji_used, &alphanum_used, &byte_used, symbol->debug);
+ if (error_number != 0) {
+ strcpy(symbol->errtxt, "564: Input data too long");
+ return error_number;
+ }
+
+ get_bitlength(binary_count, binary_stream);
+
+ /* Eliminate possivle versions depending on type of content */
+ if (byte_used) {
version_valid[0] = 0;
version_valid[1] = 0;
- version_valid[2] = 0;
- } else if (ecc_level == LEVEL_M) {
+ }
+
+ if (alphanum_used) {
version_valid[0] = 0;
}
- /* Determine length of binary data */
- for (i = 0; i < 4; i++) {
- if (version_valid[i]) {
- binary_count[i] = getBinaryLength(MICROQR_VERSION + i, mode, jisdata, length, 0 /*gs1*/, 0 /*eci*/, symbol->debug);
- } else {
- binary_count[i] = 128 + 1;
- }
+ if (kanji_used) {
+ version_valid[0] = 0;
+ version_valid[1] = 0;
}
/* Eliminate possible versions depending on length of binary data */
return ZINT_ERROR_TOO_LONG;
}
- /* Eliminate possible versions depending on binary length and error correction level specified */
+ /* Eliminate possible versions depending on error correction level specified */
if (ecc_level == LEVEL_Q) {
+ version_valid[0] = 0;
+ version_valid[1] = 0;
+ version_valid[2] = 0;
if (binary_count[3] > 80) {
strcpy(symbol->errtxt, "567: Input data too long");
return ZINT_ERROR_TOO_LONG;
}
- } else if (ecc_level == LEVEL_M) {
+ }
+
+ if (ecc_level == LEVEL_M) {
+ version_valid[0] = 0;
if (binary_count[1] > 32) {
version_valid[1] = 0;
}
}
}
- /* If there is enough unused space then increase the error correction level, unless user-specified */
- if (symbol->option_1 == -1 || symbol->option_1 != ecc_level) {
- if (version == 3) {
- if (binary_count[3] <= 112) {
- ecc_level = LEVEL_M;
- }
- if (binary_count[3] <= 80) {
- ecc_level = LEVEL_Q;
- }
- } else if (version == 2) {
- if (binary_count[2] <= 68) {
- ecc_level = LEVEL_M;
- }
- } else if (version == 1) {
- if (binary_count[1] <= 32) {
- ecc_level = LEVEL_M;
- }
+ /* If there is enough unused space then increase the error correction level */
+ if (version == 3) {
+ if (binary_count[3] <= 112) {
+ ecc_level = LEVEL_M;
+ }
+ if (binary_count[3] <= 80) {
+ ecc_level = LEVEL_Q;
}
}
- qr_define_mode(mode, jisdata, length, 0 /*gs1*/, MICROQR_VERSION + version, symbol->debug);
+ if (version == 2) {
+ if (binary_count[2] <= 68) {
+ ecc_level = LEVEL_M;
+ }
+ }
- qr_binary((unsigned char*)full_stream, MICROQR_VERSION + version, 0 /*target_codewords*/, mode, jisdata, length, 0 /*gs1*/, 0 /*eci*/, binary_count[version], symbol->debug);
+ if (version == 1) {
+ if (binary_count[1] <= 32) {
+ ecc_level = LEVEL_M;
+ }
+ }
+
+ strcpy(full_stream, "");
+ microqr_expand_binary(binary_stream, full_stream, version);
switch (version) {
- case 0: micro_qr_m1(symbol, full_stream);
+ case 0: micro_qr_m1(full_stream);
break;
- case 1: micro_qr_m2(symbol, full_stream, ecc_level);
+ case 1: micro_qr_m2(full_stream, ecc_level);
break;
- case 2: micro_qr_m3(symbol, full_stream, ecc_level);
+ case 2: micro_qr_m3(full_stream, ecc_level);
break;
- case 3: micro_qr_m4(symbol, full_stream, ecc_level);
+ case 3: micro_qr_m4(full_stream, ecc_level);
break;
}
}
/* For UPNQR the symbol size and error correction capacity is fixed */
-INTERNAL int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
+int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, est_binlen;
- int ecc_level, version, target_codewords, blocks, size;
+ int ecc_level, version, target_binlen, blocks, size;
int bitmask, error_number;
#ifndef _MSC_VER
- unsigned int jisdata[length + 1];
+ int jisdata[length + 1];
char mode[length + 1];
#else
- unsigned char* datastream;
- unsigned char* fullstream;
+ int* datastream;
+ int* fullstream;
unsigned char* grid;
- unsigned int* jisdata = (unsigned int *) _alloca((length + 1) * sizeof (unsigned int));
+ int* jisdata = (int *) _alloca((length + 1) * sizeof (int));
char* mode = (char *) _alloca(length + 1);
#endif
unsigned char* preprocessed = (unsigned char*) _alloca(length + 1);
#endif
- symbol->eci = 4; /* Set before any processing */
-
- switch (symbol->input_mode & 0x07) {
+ switch(symbol->input_mode) {
case DATA_MODE:
/* Input is already in ISO-8859-2 format */
- for (i = 0; i < (int) length; i++) {
- jisdata[i] = source[i];
+ for (i = 0; i < length; i++) {
+ jisdata[i] = (int) source[i];
mode[i] = 'B';
}
break;
strcpy(symbol->errtxt, "572: Invalid characters in input data");
return error_number;
}
- for (i = 0; i < (int) length; i++) {
- jisdata[i] = preprocessed[i];
+ for (i = 0; i < length; i++) {
+ jisdata[i] = (int) preprocessed[i];
mode[i] = 'B';
}
break;
}
- est_binlen = getBinaryLength(15, mode, jisdata, length, 0, symbol->eci, symbol->debug);
+ symbol->eci = 4;
+ est_binlen = getBinaryLength(15, mode, jisdata, length, 0, symbol->eci);
ecc_level = LEVEL_M;
version = 15; // 77 x 77
- target_codewords = qr_data_codewords_M[version - 1];
+ target_binlen = qr_data_codewords_M[version - 1];
blocks = qr_blocks_M[version - 1];
+
#ifndef _MSC_VER
- unsigned char datastream[target_codewords + 1];
- unsigned char fullstream[qr_total_codewords[version - 1] + 1];
+ int datastream[target_binlen + 1];
+ int fullstream[qr_total_codewords[version - 1] + 1];
#else
- datastream = (unsigned char *) _alloca(target_codewords + 1);
- fullstream = (unsigned char *) _alloca(qr_total_codewords[version - 1] + 1);
+ datastream = (int *) _alloca((target_binlen + 1) * sizeof (int));
+ fullstream = (int *) _alloca((qr_total_codewords[version - 1] + 1) * sizeof (int));
#endif
- qr_binary(datastream, version, target_codewords, mode, jisdata, length, 0, symbol->eci, est_binlen, symbol->debug);
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords);
-#endif
- add_ecc(fullstream, datastream, version, target_codewords, blocks, symbol->debug);
+ qr_binary(datastream, version, target_binlen, mode, jisdata, length, 0, symbol->eci, est_binlen, symbol->debug);
+ add_ecc(fullstream, datastream, version, target_binlen, blocks);
size = qr_sizes[version - 1];
#ifndef _MSC_VER
}
setup_grid(grid, size, version);
- populate_grid(grid, size, size, fullstream, qr_total_codewords[version - 1]);
+ populate_grid(grid, size, fullstream, qr_total_codewords[version - 1]);
add_version_info(grid, size, version);
return 0;
}
-static void setup_rmqr_grid(unsigned char* grid, const int h_size, const int v_size) {
- int i, j;
- char alignment[] = {0x1F, 0x11, 0x15, 0x11, 0x1F};
- int h_version, finder_position;
-
- /* Add timing patterns - top and bottom */
- for (i = 0; i < h_size; i++) {
- if (i % 2) {
- grid[i] = 0x20;
- grid[((v_size - 1) * h_size) + i] = 0x20;
- } else {
- grid[i] = 0x21;
- grid[((v_size - 1) * h_size) + i] = 0x21;
- }
- }
-
- /* Add timing patterns - left and right */
- for (i = 0; i < v_size; i++) {
- if (i % 2) {
- grid[i * h_size] = 0x20;
- grid[(i * h_size) + (h_size - 1)] = 0x20;
- } else {
- grid[i * h_size] = 0x21;
- grid[(i * h_size) + (h_size - 1)] = 0x21;
- }
- }
-
- /* Add finder pattern */
- place_finder(grid, h_size, 0, 0); // This works because finder is always top left
-
- /* Add finder sub-pattern to bottom right */
- for (i = 0; i < 5; i++) {
- for (j = 0; j < 5; j++) {
- if (alignment[j] & 0x10 >> i) {
- grid[((v_size - 5) * h_size) + (h_size * i) + (h_size - 5) + j] = 0x11;
- } else {
- grid[((v_size - 5) * h_size) + (h_size * i) + (h_size - 5) + j] = 0x10;
- }
- }
- }
-
- /* Add corner finder pattern - bottom left */
- grid[(v_size - 2) * h_size] = 0x11;
- grid[((v_size - 2) * h_size) + 1] = 0x10;
- grid[((v_size - 1) * h_size) + 1] = 0x11;
-
- /* Add corner finder pattern - top right */
- grid[h_size - 2] = 0x11;
- grid[(h_size * 2) - 2] = 0x10;
- grid[(h_size * 2) - 1] = 0x11;
-
- /* Add seperator */
- for (i = 0; i < 7; i++) {
- grid[(i * h_size) + 7] = 0x20;
- }
- if (v_size > 7) {
- // Note for v_size = 9 this overrides the bottom right corner finder pattern
- for(i = 0; i < 8; i++) {
- grid[(7 * h_size) + i] = 0x20;
- }
- }
-
- /* Add alignment patterns */
- if (h_size > 27) {
- for(i = 0; i < 5; i++) {
- if (h_size == rmqr_width[i]) {
- h_version = i;
- }
- }
-
- for(i = 0; i < 4; i++) {
- finder_position = rmqr_table_d1[(h_version * 4) + i];
-
- if (finder_position != 0) {
- for (j = 0; j < v_size; j++) {
- if (j % 2) {
- grid[(j * h_size) + finder_position] = 0x10;
- } else {
- grid[(j * h_size) + finder_position] = 0x11;
- }
- }
-
- // Top square
- grid[h_size + finder_position - 1] = 0x11;
- grid[(h_size * 2) + finder_position - 1] = 0x11;
- grid[h_size + finder_position + 1] = 0x11;
- grid[(h_size * 2) + finder_position + 1] = 0x11;
-
- // Bottom square
- grid[(h_size * (v_size - 3)) + finder_position - 1] = 0x11;
- grid[(h_size * (v_size - 2)) + finder_position - 1] = 0x11;
- grid[(h_size * (v_size - 3)) + finder_position + 1] = 0x11;
- grid[(h_size * (v_size - 2)) + finder_position + 1] = 0x11;
- }
- }
- }
-
- /* Reserve space for format information */
- for (i = 0; i < 5; i++) {
- for (j = 0; j < 3; j++) {
- grid[(h_size * (i + 1)) + j + 8] = 0x20;
- grid[(h_size * (v_size - 6)) + (h_size * i) + j + (h_size - 8)] = 0x20;
- }
- }
- grid[(h_size * 1) + 11] = 0x20;
- grid[(h_size * 2) + 11] = 0x20;
- grid[(h_size * 3) + 11] = 0x20;
- grid[(h_size * (v_size - 6)) + (h_size - 5)] = 0x20;
- grid[(h_size * (v_size - 6)) + (h_size - 4)] = 0x20;
- grid[(h_size * (v_size - 6)) + (h_size - 3)] = 0x20;
-}
-
-/* rMQR according to 2018 draft standard */
-INTERNAL int rmqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
- int i, j, est_binlen;
- int ecc_level, autosize, version, max_cw, target_codewords, blocks, h_size, v_size;
- int gs1;
- int full_multibyte;
- int footprint, best_footprint, format_data;
- unsigned int left_format_info, right_format_info;
-
-#ifndef _MSC_VER
- unsigned int jisdata[length + 1];
- char mode[length + 1];
-#else
- unsigned char* datastream;
- unsigned char* fullstream;
- unsigned char* grid;
- unsigned int* jisdata = (unsigned int *) _alloca((length + 1) * sizeof (unsigned int));
- char* mode = (char *) _alloca(length + 1);
-#endif
-
- gs1 = ((symbol->input_mode & 0x07) == GS1_MODE);
- full_multibyte = symbol->option_3 == ZINT_FULL_MULTIBYTE; /* If set use Kanji mode in DATA_MODE or for single-byte Latin */
-
- if ((symbol->input_mode & 0x07) == DATA_MODE) {
- sjis_cpy(source, &length, jisdata, full_multibyte);
- } else {
- /* Try ISO 8859-1 conversion first */
- int error_number = sjis_utf8tosb(3, source, &length, jisdata, full_multibyte);
- if (error_number != 0) {
- /* Try Shift-JIS */
- error_number = sjis_utf8tomb(symbol, source, &length, jisdata);
- if (error_number != 0) {
- return error_number;
- }
- }
- }
-
- est_binlen = getBinaryLength(RMQR_VERSION + 31, mode, jisdata, length, gs1, 0 /*eci*/, symbol->debug);
-
- ecc_level = LEVEL_M;
- max_cw = 152;
- if (symbol->option_1 == 1) {
- strcpy(symbol->errtxt, "576: Error correction level L not available in rMQR");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
- if (symbol->option_1 == 3) {
- strcpy(symbol->errtxt, "577: Error correction level Q not available in rMQR");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
- if (symbol->option_1 == 4) {
- ecc_level = LEVEL_H;
- max_cw = 76;
- }
-
- if (est_binlen > (8 * max_cw)) {
- strcpy(symbol->errtxt, "578: Input too long for selected error correction level");
- return ZINT_ERROR_TOO_LONG;
- }
-
- if ((symbol->option_2 < 0) || (symbol->option_2 > 38)) {
- strcpy(symbol->errtxt, "579: Invalid rMQR symbol size");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
- version = 31; // Set default to keep compiler happy
-
- if (symbol->option_2 == 0) {
- // Automatic symbol size
- autosize = 31;
- best_footprint = rmqr_height[31] * rmqr_width[31];
- for (version = 30; version >= 0; version--) {
- est_binlen = getBinaryLength(RMQR_VERSION + version, mode, jisdata, length, gs1, 0 /*eci*/, symbol->debug);
- footprint = rmqr_height[version] * rmqr_width[version];
- if (ecc_level == LEVEL_M) {
- if (8 * rmqr_data_codewords_M[version] >= est_binlen) {
- if (footprint < best_footprint) {
- autosize = version;
- best_footprint = footprint;
- }
- }
- } else {
- if (8 * rmqr_data_codewords_H[version] >= est_binlen) {
- if (footprint < best_footprint) {
- autosize = version;
- best_footprint = footprint;
- }
- }
- }
- }
- version = autosize;
- est_binlen = getBinaryLength(RMQR_VERSION + version, mode, jisdata, length, gs1, 0 /*eci*/, symbol->debug);
- }
-
- if ((symbol->option_2 >= 1) && (symbol->option_2 <= 32)) {
- // User specified symbol size
- version = symbol->option_2 - 1;
- est_binlen = getBinaryLength(RMQR_VERSION + version, mode, jisdata, length, gs1, 0 /*eci*/, symbol->debug);
- }
-
- if (symbol->option_2 >= 33) {
- // User has specified symbol height only
- version = rmqr_fixed_height_upper_bound[symbol->option_2 - 32];
- for(i = version - 1; i > rmqr_fixed_height_upper_bound[symbol->option_2 - 33]; i--) {
- est_binlen = getBinaryLength(RMQR_VERSION + i, mode, jisdata, length, gs1, 0 /*eci*/, symbol->debug);
- if (ecc_level == LEVEL_M) {
- if (8 * rmqr_data_codewords_M[i] >= est_binlen) {
- version = i;
- }
- } else {
- if (8 * rmqr_data_codewords_H[i] >= est_binlen) {
- version = i;
- }
- }
- }
- est_binlen = getBinaryLength(RMQR_VERSION + version, mode, jisdata, length, gs1, 0 /*eci*/, symbol->debug);
- }
-
- if (symbol->option_1 == -1) {
- // Detect if there is enough free space to increase ECC level
- if (est_binlen < (rmqr_data_codewords_H[version] * 8)) {
- ecc_level = LEVEL_H;
- }
- }
-
- if (ecc_level == LEVEL_M) {
- target_codewords = rmqr_data_codewords_M[version];
- blocks = rmqr_blocks_M[version];
- } else {
- target_codewords = rmqr_data_codewords_H[version];
- blocks = rmqr_blocks_H[version];
- }
- if (est_binlen > (target_codewords * 8)) {
- // User has selected a symbol too small for the data
- strcpy(symbol->errtxt, "580: Input too long for selected symbol size");
- return ZINT_ERROR_TOO_LONG;
- }
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Minimum codewords = %d\n", est_binlen / 8);
- printf("Selected version: %d = R%dx%d-", (version + 1), rmqr_height[version], rmqr_width[version]);
- if (ecc_level == LEVEL_M) {
- printf("M\n");
- } else {
- printf("H\n");
- }
- printf("Number of data codewords in symbol = %d\n", target_codewords);
- printf("Number of ECC blocks = %d\n", blocks);
- }
-
-#ifndef _MSC_VER
- unsigned char datastream[target_codewords + 1];
- unsigned char fullstream[rmqr_total_codewords[version] + 1];
-#else
- datastream = (unsigned char *) _alloca((target_codewords + 1) * sizeof (unsigned char));
- fullstream = (unsigned char *) _alloca((rmqr_total_codewords[version] + 1) * sizeof (unsigned char));
-#endif
-
- qr_binary(datastream, RMQR_VERSION + version, target_codewords, mode, jisdata, length, gs1, 0 /*eci*/, est_binlen, symbol->debug);
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords);
-#endif
- add_ecc(fullstream, datastream, RMQR_VERSION + version, target_codewords, blocks, symbol->debug);
-
- h_size = rmqr_width[version];
- v_size = rmqr_height[version];
-
-#ifndef _MSC_VER
- unsigned char grid[h_size * v_size];
-#else
- grid = (unsigned char *) _alloca((h_size * v_size) * sizeof (unsigned char));
-#endif
-
- for (i = 0; i < v_size; i++) {
- for (j = 0; j < h_size; j++) {
- grid[(i * h_size) + j] = 0;
- }
- }
-
- setup_rmqr_grid(grid, h_size, v_size);
- populate_grid(grid, h_size, v_size, fullstream, rmqr_total_codewords[version]);
-
- /* apply bitmask */
- for (i = 0; i < v_size; i++) {
- for (j = 0; j < h_size; j++) {
- if ((grid[(i * h_size) + j] & 0xf0) == 0) {
- // This is a data module
- if (((i / 2) + (j / 3)) % 2 == 0) { // < This is the data mask from section 7.8.2
- // This module needs to be changed
- if (grid[(i * h_size) + j] == 0x01) {
- grid[(i * h_size) + j] = 0x00;
- } else {
- grid[(i * h_size) + j] = 0x01;
- }
- }
- }
- }
- }
-
- /* add format information */
- format_data = version;
- if (ecc_level == LEVEL_H) {
- format_data += 32;
- }
- left_format_info = rmqr_format_info_left[format_data];
- right_format_info = rmqr_format_info_right[format_data];
-
- for (i = 0; i < 5; i++) {
- for (j = 0; j < 3; j++) {
- grid[(h_size * (i + 1)) + j + 8] = (left_format_info >> ((j * 5) + i)) & 0x01;
- grid[(h_size * (v_size - 6)) + (h_size * i) + j + (h_size - 8)] = (right_format_info >> ((j * 5) + i)) & 0x01;
- }
- }
- grid[(h_size * 1) + 11] = (left_format_info >> 15) & 0x01;
- grid[(h_size * 2) + 11] = (left_format_info >> 16) & 0x01;
- grid[(h_size * 3) + 11] = (left_format_info >> 17) & 0x01;
- grid[(h_size * (v_size - 6)) + (h_size - 5)] = (right_format_info >> 15) & 0x01;
- grid[(h_size * (v_size - 6)) + (h_size - 4)] = (right_format_info >> 16) & 0x01;
- grid[(h_size * (v_size - 6)) + (h_size - 3)] = (right_format_info >> 17) & 0x01;
-
-
- symbol->width = h_size;
- symbol->rows = v_size;
-
- for (i = 0; i < v_size; i++) {
- for (j = 0; j < h_size; j++) {
- if (grid[(i * h_size) + j] & 0x01) {
- set_module(symbol, i, j);
- }
- }
- symbol->row_height[i] = 1;
- }
-
- return 0;
-}
-/* qr.h Data for QR Code, Micro QR Code and rMQR
+/* qr.h Data for QR Code */
+/*
libzint - the open source barcode library
- Copyright (C) 2008-2019 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2017 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2006 Kentaro Fukuchi <fukuchi@megaui.net>
Redistribution and use in source and binary forms, with or without
SUCH DAMAGE.
*/
-#define LEVEL_L 1
-#define LEVEL_M 2
-#define LEVEL_Q 3
-#define LEVEL_H 4
+#define LEVEL_L 1
+#define LEVEL_M 2
+#define LEVEL_Q 3
+#define LEVEL_H 4
#define RHODIUM "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:"
-#define RMQR_VERSION 100
-#define MICROQR_VERSION 200
-
/* From ISO/IEC 18004:2006 Table 7 */
static const unsigned short int qr_data_codewords_L[] = {
19, 34, 55, 80, 108, 136, 156, 194, 232, 274, 324, 370, 428, 461, 523, 589, 647,
2185, 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706
};
-static const unsigned short int rmqr_height[] = {
- 7, 7, 7, 7, 7,
- 9, 9, 9, 9, 9,
- 11, 11, 11, 11, 11, 11,
- 13, 13, 13, 13, 13, 13,
- 15, 15, 15, 15, 15,
- 17, 17, 17, 17, 17
-};
-
-static const unsigned short int rmqr_width[] = {
- 43, 59, 77, 99, 139,
- 43, 59, 77, 99, 139,
- 27, 43, 59, 77, 99, 139,
- 27, 43, 59, 77, 99, 139,
- 43, 59, 77, 99, 139,
- 43, 59, 77, 99, 139
-};
-
-static const unsigned short int rmqr_data_codewords_M[] = {
- 6, 12, 20, 28, 44, // R7x
- 12, 21, 31, 42, 63, // R9x
- 7, 19, 31, 43, 57, 84, // R11x
- 12, 27, 38, 53, 73, 106, // R13x
- 33, 48, 67, 88, 127, // R15x
- 39, 56, 78, 100, 152 // R17x
-};
-
-static const unsigned short int rmqr_data_codewords_H[] = {
- 3, 7, 10, 14, 24, // R7x
- 7, 11, 17, 22, 33, // R9x
- 5, 11, 15, 23, 29, 42, // R11x
- 7, 13, 20, 29, 35, 54, // R13x
- 15, 26, 31, 48, 69, // R15x
- 21, 28, 38, 56, 76 // R17x
-};
-
-static const short int rmqr_fixed_height_upper_bound[] = {
- -1, 4, 9, 15, 21, 26, 31
-};
-
-static const unsigned short int rmqr_total_codewords[] = {
- 13, 21, 32, 44, 68, // R7x
- 21, 33, 49, 66, 99, // R9x
- 15, 31, 47, 67, 89, 132, // R11x
- 21, 41, 60, 85, 113, 166, // R13x
- 51, 74, 103, 136, 199, // R15x
- 61, 88, 122, 160, 232 // R17x
-};
-
-
-static const unsigned short int rmqr_numeric_cci[] = {
- 4, 5, 6, 7, 7,
- 5, 6, 7, 7, 8,
- 5, 6, 7, 7, 8, 8,
- 5, 7, 7, 8, 8, 8,
- 7, 7, 8, 8, 9,
- 7, 8, 8, 8, 9
-};
-
-static const unsigned short int rmqr_alphanum_cci[] = {
- 4, 5, 5, 6, 6,
- 5, 5, 6, 6, 7,
- 4, 5, 6, 6, 7, 7,
- 5, 6, 6, 7, 7, 8,
- 6, 7, 7, 7, 8,
- 6, 7, 7, 8, 8
-};
-
-static const unsigned short int rmqr_byte_cci[] = {
- 3, 4, 5, 5, 6,
- 4, 5, 5, 6, 6,
- 3, 5, 5, 6, 6, 7,
- 4, 5, 6, 6, 7, 7,
- 6, 6, 7, 7, 7,
- 6, 6, 7, 7, 8
-};
-
-static const unsigned short int rmqr_kanji_cci[] = {
- 2, 3, 4, 5, 5,
- 3, 4, 5, 5, 6,
- 2, 4, 5, 5, 6, 6,
- 3, 5, 5, 6, 6, 7,
- 5, 5, 6, 6, 7,
- 5, 6, 6, 6, 7
-};
-
static const char qr_blocks_L[] = {
1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12,
12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25
32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81
};
-static const char rmqr_blocks_M[] = {
- 1, 1, 1, 1, 1, // R7x
- 1, 1, 1, 1, 2, // R9x
- 1, 1, 1, 1, 2, 2, // R11x
- 1, 1, 1, 2, 2, 3, // R13x
- 1, 1, 2, 2, 3, // R15x
- 1, 2, 2, 3, 4 // R17x
-};
-
-static const char rmqr_blocks_H[] = {
- 1, 1, 1, 1, 2, // R7x
- 1, 1, 2, 2, 3, // R9x
- 1, 1, 2, 2, 2, 3, // R11x
- 1, 1, 2, 2, 3, 4, // R13x
- 2, 2, 3, 4, 5, // R15x
- 2, 2, 3, 4, 6 // R17x
-};
-
static const unsigned short int qr_sizes[] = {
21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97,
101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177
0, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7
};
-// Table E1 - Row/column coordinates of center module of alignment patterns
static const unsigned short int qr_table_e1[] = {
6, 18, 0, 0, 0, 0, 0,
6, 22, 0, 0, 0, 0, 0,
6, 30, 58, 86, 114, 142, 170
};
-// Table D1 - Column coordinates of centre module of alignment patterns
-static const unsigned short int rmqr_table_d1[] = {
- 21, 0, 0, 0,
- 19, 39, 0, 0,
- 25, 51, 0, 0,
- 23, 49, 75, 0,
- 27, 55, 83, 111
-};
-
static const unsigned int qr_annex_c[] = {
/* Format information bit sequences */
0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0, 0x77c4, 0x72f3, 0x7daa, 0x789d,
0x7c16, 0x7921, 0x06de, 0x03e9, 0x0cb0, 0x0987, 0x1735, 0x1202, 0x1d5b, 0x186c, 0x2508, 0x203f, 0x2f66, 0x2a51, 0x34e3,
0x31d4, 0x3e8d, 0x3bba
};
-
-static const unsigned int rmqr_format_info_left[] = {
- /* rMQR format information for finder pattern side */
- 0x1FAB2, 0x1E597, 0x1DBDD, 0x1C4F8, 0x1B86C, 0x1A749, 0x19903, 0x18626, 0x17F0E, 0x1602B,
- 0x15E61, 0x14144, 0x13DD0, 0x122F5, 0x11CBF, 0x1039A, 0x0F1CA, 0x0EEEF, 0x0D0A5, 0x0CF80,
- 0x0B314, 0x0AC31, 0x0927B, 0x08D5E, 0x07476, 0x06B53, 0x05519, 0x04A3C, 0x036A8, 0x0298D,
- 0x017C7, 0x008E2, 0x3F367, 0x3EC42, 0x3D208, 0x3CD2D, 0x3B1B9, 0x3AE9C, 0x390D6, 0x38FF3,
- 0x376DB, 0x369FE, 0x357B4, 0x34891, 0x33405, 0x32B20, 0x3156A, 0x30A4F, 0x2F81F, 0x2E73A,
- 0x2D970, 0x2C655, 0x2BAC1, 0x2A5E4, 0x29BAE, 0x2848B, 0x27DA3, 0x26286, 0x25CCC, 0x243E9,
- 0x23F7D, 0x22058, 0x21E12, 0x20137
-};
-
-static const unsigned int rmqr_format_info_right[] = {
- /* rMQR format information for subfinder pattern side */
- 0x20A7B, 0x2155E, 0x22B14, 0x23431, 0x248A5, 0x25780, 0x269CA, 0x276EF, 0x28FC7, 0x290E2,
- 0x2AEA8, 0x2B18D, 0x2CD19, 0x2D23C, 0x2EC76, 0x2F353, 0x30103, 0x31E26, 0x3206C, 0x33F49,
- 0x343DD, 0x35CF8, 0x362B2, 0x37D97, 0x384BF, 0x39B9A, 0x3A5D0, 0x3BAF5, 0x3C661, 0x3D944,
- 0x3E70E, 0x3F82B, 0x003AE, 0x01C8B, 0x022C1, 0x03DE4, 0x04170, 0x05E55, 0x0601F, 0x07F3A,
- 0x08612, 0x09937, 0x0A77D, 0x0B858, 0x0C4CC, 0x0DBE9, 0x0E5A3, 0x0FA86, 0x108D6, 0x117F3,
- 0x129B9, 0x1369C, 0x14A08, 0x1552D, 0x16B67, 0x17442, 0x18D6A, 0x1924F, 0x1AC05, 0x1B320,
- 0x1CFB4, 0x1D091, 0x1EEDB, 0x1F1FE
-};
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
#include <fcntl.h>
#include <io.h>
#endif
+#include <stdlib.h>
#include <string.h>
#include "common.h"
-#include "output.h"
#ifdef _MSC_VER
#include <malloc.h>
#define SSET "0123456789ABCDEF"
-#define DEFAULT_INK '1'
-#define DEFAULT_PAPER '0'
-
#ifndef NO_PNG
-INTERNAL int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
+extern int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
#endif /* NO_PNG */
-INTERNAL int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
-INTERNAL int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
-INTERNAL int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
-INTERNAL int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
-
-static const char ultra_colour[] = "WCBMRYGK";
+extern int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
+extern int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
+extern int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
+extern int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
-static int buffer_plot(struct zint_symbol *symbol, char *pixelbuf) {
+void buffer_plot(struct zint_symbol *symbol, char *pixelbuf) {
/* Place pixelbuffer into symbol */
int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int row, column, i;
- if (symbol->bitmap != NULL) {
- free(symbol->bitmap);
- symbol->bitmap = NULL;
- }
- symbol->bitmap = (unsigned char *) malloc(symbol->bitmap_width * symbol->bitmap_height * 3);
- if (symbol->bitmap == NULL) {
- strcpy(symbol->errtxt, "661: Insufficient memory for bitmap buffer");
- return ZINT_ERROR_MEMORY;
- }
+ symbol->bitmap = (char *) malloc(symbol->bitmap_width * symbol->bitmap_height * 3);
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
fggrn = (16 * ctoi(symbol->fgcolour[2])) + ctoi(symbol->fgcolour[3]);
bgred = (16 * ctoi(symbol->bgcolour[0])) + ctoi(symbol->bgcolour[1]);
bggrn = (16 * ctoi(symbol->bgcolour[2])) + ctoi(symbol->bgcolour[3]);
bgblu = (16 * ctoi(symbol->bgcolour[4])) + ctoi(symbol->bgcolour[5]);
-
+
for (row = 0; row < symbol->bitmap_height; row++) {
for (column = 0; column < symbol->bitmap_width; column++) {
i = ((row * symbol->bitmap_width) + column) * 3;
switch (*(pixelbuf + (symbol->bitmap_width * row) + column)) {
- case 'W': // White
- symbol->bitmap[i] = 255;
- symbol->bitmap[i + 1] = 255;
- symbol->bitmap[i + 2] = 255;
- break;
- case 'C': // Cyan
- symbol->bitmap[i] = 0;
- symbol->bitmap[i + 1] = 255;
- symbol->bitmap[i + 2] = 255;
- break;
- case 'B': // Blue
- symbol->bitmap[i] = 0;
- symbol->bitmap[i + 1] = 0;
- symbol->bitmap[i + 2] = 255;
- break;
- case 'M': // Magenta
- symbol->bitmap[i] = 255;
- symbol->bitmap[i + 1] = 0;
- symbol->bitmap[i + 2] = 255;
- break;
- case 'R': // Red
- symbol->bitmap[i] = 255;
- symbol->bitmap[i + 1] = 0;
- symbol->bitmap[i + 2] = 0;
- break;
- case 'Y': // Yellow
- symbol->bitmap[i] = 255;
- symbol->bitmap[i + 1] = 255;
- symbol->bitmap[i + 2] = 0;
- break;
- case 'G': // Green
- symbol->bitmap[i] = 0;
- symbol->bitmap[i + 1] = 255;
- symbol->bitmap[i + 2] = 0;
- break;
- case 'K': // Black
- symbol->bitmap[i] = 0;
- symbol->bitmap[i + 1] = 0;
- symbol->bitmap[i + 2] = 0;
- break;
- case DEFAULT_INK:
+ case '1':
symbol->bitmap[i] = fgred;
symbol->bitmap[i + 1] = fggrn;
symbol->bitmap[i + 2] = fgblu;
break;
- default: // DEFAULT_PAPER
+ default:
symbol->bitmap[i] = bgred;
symbol->bitmap[i + 1] = bggrn;
symbol->bitmap[i + 2] = bgblu;
}
}
}
-
- return 0;
}
-static int save_raster_image_to_file(struct zint_symbol *symbol, int image_height, int image_width, char *pixelbuf, int rotate_angle, int image_type) {
+int save_raster_image_to_file(struct zint_symbol *symbol, int image_height, int image_width, char *pixelbuf, int rotate_angle, int image_type) {
int error_number;
int row, column;
- char *rotated_pixbuf = pixelbuf;
+ char *rotated_pixbuf;
+
+ if (!(rotated_pixbuf = (char *) malloc(image_width * image_height))) {
+ strcpy(symbol->errtxt, "650: Insufficient memory for pixel buffer");
+ return ZINT_ERROR_ENCODING_PROBLEM;
+ }
switch (rotate_angle) {
case 0:
break;
}
- if (rotate_angle) {
- if (!(rotated_pixbuf = (char *) malloc(image_width * image_height))) {
- strcpy(symbol->errtxt, "650: Insufficient memory for pixel buffer");
- return ZINT_ERROR_ENCODING_PROBLEM;
- }
+ /* sort out colour options */
+ to_upper((unsigned char*) symbol->fgcolour);
+ to_upper((unsigned char*) symbol->bgcolour);
+
+ if (strlen(symbol->fgcolour) != 6) {
+ strcpy(symbol->errtxt, "651: Malformed foreground colour target");
+ free(rotated_pixbuf);
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ if (strlen(symbol->bgcolour) != 6) {
+ strcpy(symbol->errtxt, "652: Malformed background colour target");
+ free(rotated_pixbuf);
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ error_number = is_sane(SSET, (unsigned char*) symbol->fgcolour, strlen(symbol->fgcolour));
+ if (error_number == ZINT_ERROR_INVALID_DATA) {
+ strcpy(symbol->errtxt, "653: Malformed foreground colour target");
+ free(rotated_pixbuf);
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ error_number = is_sane(SSET, (unsigned char*) symbol->bgcolour, strlen(symbol->fgcolour));
+ if (error_number == ZINT_ERROR_INVALID_DATA) {
+ strcpy(symbol->errtxt, "654: Malformed background colour target");
+ free(rotated_pixbuf);
+ return ZINT_ERROR_INVALID_OPTION;
}
/* Rotate image before plotting */
switch (rotate_angle) {
case 0: /* Plot the right way up */
- /* Nothing to do */
+ for (row = 0; row < image_height; row++) {
+ for (column = 0; column < image_width; column++) {
+ rotated_pixbuf[(row * image_width) + column] =
+ pixelbuf[(image_width * row) + column];
+ }
+ }
break;
case 90: /* Plot 90 degrees clockwise */
for (row = 0; row < image_width; row++) {
switch (image_type) {
case OUT_BUFFER:
- error_number = buffer_plot(symbol, rotated_pixbuf);
+ buffer_plot(symbol, rotated_pixbuf);
+ error_number = 0;
break;
case OUT_PNG_FILE:
#ifndef NO_PNG
error_number = png_pixel_plot(symbol, rotated_pixbuf);
#else
- if (rotate_angle) {
- free(rotated_pixbuf);
- }
+ free(rotated_pixbuf);
return ZINT_ERROR_INVALID_OPTION;
#endif
break;
break;
}
- if (rotate_angle) {
- free(rotated_pixbuf);
- }
+ free(rotated_pixbuf);
return error_number;
}
-static void draw_bar(char *pixelbuf, int xpos, int xlen, int ypos, int ylen, int image_width, int image_height, char fill) {
+void draw_bar(char *pixelbuf, int xpos, int xlen, int ypos, int ylen, int image_width, int image_height) {
/* Draw a rectangle */
int i, j, png_ypos;
for (i = (xpos); i < (xpos + xlen); i++) {
for (j = (png_ypos); j < (png_ypos + ylen); j++) {
- *(pixelbuf + (image_width * j) + i) = fill;
+ *(pixelbuf + (image_width * j) + i) = '1';
}
}
}
-static void draw_circle(char *pixelbuf, int image_width, int image_height, int x0, int y0, float radius, char fill) {
+void draw_circle(char *pixelbuf, int image_width, int image_height, int x0, int y0, float radius, char fill) {
int x, y;
int radius_i = (int) radius;
}
}
-static void draw_bullseye(char *pixelbuf, int image_width, int image_height, int xoffset, int yoffset, int scaler) {
+void draw_bullseye(char *pixelbuf, int image_width, int image_height, int xoffset, int yoffset, int scaler) {
/* Central bullseye in Maxicode symbols */
float x = 14.5 * scaler;
float y = 15.0 * scaler;
x = 16.0 * scaler;
y = 16.5 * scaler;
}
-
- draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (4.571 * scaler) + 1, DEFAULT_INK);
- draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (3.779 * scaler) + 1, DEFAULT_PAPER);
- draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (2.988 * scaler) + 1, DEFAULT_INK);
- draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (2.196 * scaler) + 1, DEFAULT_PAPER);
- draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (1.394 * scaler) + 1, DEFAULT_INK);
- draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (0.602 * scaler) + 1, DEFAULT_PAPER);
+
+ draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (4.571 * scaler) + 1, '1');
+ draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (3.779 * scaler) + 1, '0');
+ draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (2.988 * scaler) + 1, '1');
+ draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (2.196 * scaler) + 1, '0');
+ draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (1.394 * scaler) + 1, '1');
+ draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (0.602 * scaler) + 1, '0');
}
-static void draw_hexagon(char *pixelbuf, int image_width, char *scaled_hexagon, int hexagon_size, int xposn, int yposn) {
+void draw_hexagon(char *pixelbuf, int image_width, char *scaled_hexagon, int hexagon_size, int xposn, int yposn) {
/* Put a hexagon into the pixel buffer */
int i, j;
for (i = 0; i < hexagon_size; i++) {
for (j = 0; j < hexagon_size; j++) {
- if (scaled_hexagon[(i * hexagon_size) + j] == DEFAULT_INK) {
- *(pixelbuf + (image_width * i) + (image_width * yposn) + xposn + j) = DEFAULT_INK;
+ if (scaled_hexagon[(i * hexagon_size) + j] == '1') {
+ *(pixelbuf + (image_width * i) + (image_width * yposn) + xposn + j) = '1';
}
}
}
}
-static void draw_letter(char *pixelbuf, unsigned char letter, int xposn, int yposn, int textflags, int image_width, int image_height) {
+void draw_letter(char *pixelbuf, unsigned char letter, int xposn, int yposn, int textflags, int image_width, int image_height) {
/* Put a letter into a position */
int skip;
for (y = 0; y < max_y; y++) {
for (x = 0; x < max_x; x++) {
if (small_font[(glyph_no * 9) + y] & (0x10 >> x)) {
- *(pixelbuf + (y * image_width) + (yposn * image_width) + xposn + x) = DEFAULT_INK;
+ *(pixelbuf + (y * image_width) + (yposn * image_width) + xposn + x) = '1';
}
}
}
for (y = 0; y < max_y; y++) {
char * pixelPtr = linePtr;
int extra_dot = 0;
- for (x = 0; x < max_x; x++) {
+ for (x = 0; x < 7; x++) {
if (ascii_font[(glyph_no * 14) + y] & (0x40 >> x)) {
- *pixelPtr = DEFAULT_INK;
+ *pixelPtr = '1';
extra_dot = 1;
} else {
if (extra_dot) {
- *pixelPtr = DEFAULT_INK;
+ *pixelPtr = '1';
}
extra_dot = 0;
}
if (extra_dot) {
- *pixelPtr = DEFAULT_INK;
+ *pixelPtr = '1';
}
linePtr += image_width;
}
break;
- default: // regular font 7x14
+ default: // regular font 7x15
max_x = 7;
max_y = 14;
}
for (y = 0; y < max_y; y++) {
- for (x = 0; x < max_x; x++) {
+ for (x = 0; x < 7; x++) {
if (ascii_font[(glyph_no * 14) + y] & (0x40 >> x)) {
- *(pixelbuf + (y * image_width) + (yposn * image_width) + xposn + x) = DEFAULT_INK;
+ *(pixelbuf + (y * image_width) + (yposn * image_width) + xposn + x) = '1';
}
}
}
}
/* Plot a string into the pixel buffer */
-static void draw_string(char *pixbuf, char input_string[], int xposn, int yposn, int textflags, int image_width, int image_height) {
+void draw_string(char *pixbuf, char input_string[], int xposn, int yposn, int textflags, int image_width, int image_height) {
int i, string_length, string_left_hand, letter_width = 7;
switch (textflags) {
string_left_hand = xposn - ((letter_width * string_length) / 2);
for (i = 0; i < string_length; i++) {
- // NOLINTNEXTLINE(clang-analyzer-core.CallAndMessage) suppress false positive about 2nd arg input_string[i] being uninitialized
draw_letter(pixbuf, input_string[i], string_left_hand + (i * letter_width), yposn, textflags, image_width, image_height);
}
}
-static void plot_hexline(char *scaled_hexagon, int hexagon_size, float start_x, float start_y, float end_x, float end_y) {
+void plot_hexline(char *scaled_hexagon, int hexagon_size, float start_x, float start_y, float end_x, float end_y) {
/* Draw a straight line from start to end */
int i;
float inc_x, inc_y;
float this_x = start_x + ((float)i * inc_x);
float this_y = start_y + ((float)i * inc_y);
if (((this_x >= 0) && (this_x < hexagon_size)) && ((this_y >= 0) && (this_y < hexagon_size))) {
- scaled_hexagon[(hexagon_size * (int)this_y) + (int)this_x] = DEFAULT_INK;
+ scaled_hexagon[(hexagon_size * (int)this_y) + (int)this_x] = '1';
}
}
}
-static void plot_hexagon(char *scaled_hexagon, int hexagon_size) {
+void plot_hexagon(char *scaled_hexagon, int hexagon_size) {
/* Create a hexagon shape and fill it */
int line, i;
/* Fill hexagon */
for (line = 0; line < hexagon_size; line++) {
- char ink = DEFAULT_PAPER;
+ char ink = '0';
for (i = 0; i < hexagon_size; i++) {
- if (scaled_hexagon[(hexagon_size * line) + i] == DEFAULT_INK) {
+ if (scaled_hexagon[(hexagon_size * line) + i] == '1') {
if (i < (hexagon_size / 2)) {
- ink = DEFAULT_INK;
+ ink = '1';
} else {
- ink = DEFAULT_PAPER;
+ ink = '0';
}
}
- if (ink == DEFAULT_INK) {
+ if (ink == '1') {
scaled_hexagon[(hexagon_size * line) + i] = ink;
}
}
}
}
-static int plot_raster_maxicode(struct zint_symbol *symbol, int rotate_angle, int data_type) {
+int plot_raster_maxicode(struct zint_symbol *symbol, int rotate_angle, int data_type) {
/* Plot a MaxiCode symbol with hexagons and bullseye */
- int row, column, xposn;
+ int i, row, column, xposn;
int image_height, image_width;
char *pixelbuf;
int error_number;
int xoffset, yoffset;
- int roffset, boffset;
float scaler = symbol->scale;
char *scaled_hexagon;
int hexagon_size;
- if (scaler <= 0) {
- scaler = 0.5;
- }
-
- set_whitespace_offsets(symbol, &xoffset, &yoffset, &roffset, &boffset);
-
- image_width = (300 + 2 * (xoffset + roffset)) * scaler;
- image_height = (300 + 2 * (yoffset + boffset)) * scaler;
+ xoffset = symbol->border_width + symbol->whitespace_width;
+ yoffset = symbol->border_width;
+ image_width = (300 + (2 * xoffset * 2)) * scaler;
+ image_height = (300 + (2 * yoffset * 2)) * scaler;
if (!(pixelbuf = (char *) malloc(image_width * image_height))) {
strcpy(symbol->errtxt, "655: Insufficient memory for pixel buffer");
return ZINT_ERROR_ENCODING_PROBLEM;
+ } else {
+ for (i = 0; i < (image_width * image_height); i++) {
+ *(pixelbuf + i) = '0';
+ }
}
- memset(pixelbuf, DEFAULT_PAPER, image_width * image_height);
hexagon_size = (int)(scaler * 10);
strcpy(symbol->errtxt, "656: Insufficient memory for pixel buffer");
free(pixelbuf);
return ZINT_ERROR_ENCODING_PROBLEM;
+ } else {
+ for (i = 0; i < (hexagon_size * hexagon_size); i++) {
+ *(scaled_hexagon + i) = '0';
+ }
}
- memset(scaled_hexagon, DEFAULT_PAPER, hexagon_size * hexagon_size);
plot_hexagon(scaled_hexagon, hexagon_size);
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
/* boundary bars */
- draw_bar(pixelbuf, 0, image_width, 0, symbol->border_width * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, 0, image_width, 300 + (symbol->border_width * 2), symbol->border_width * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, 0, image_width, 0, symbol->border_width * 2, image_width, image_height);
+ draw_bar(pixelbuf, 0, image_width, 300 + (symbol->border_width * 2), symbol->border_width * 2, image_width, image_height);
}
if (symbol->output_options & BARCODE_BOX) {
/* side bars */
- draw_bar(pixelbuf, 0, symbol->border_width * 2, 0, image_height, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, 300 + ((symbol->border_width + symbol->whitespace_width + symbol->whitespace_width) * 2), symbol->border_width * 2, 0, image_height, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, 0, symbol->border_width * 2, 0, image_height, image_width, image_height);
+ draw_bar(pixelbuf, 300 + ((symbol->border_width + symbol->whitespace_width + symbol->whitespace_width) * 2), symbol->border_width * 2, 0, image_height, image_width, image_height);
}
error_number = save_raster_image_to_file(symbol, image_height, image_width, pixelbuf, rotate_angle, data_type);
}
/* Convert UTF-8 to Latin1 Codepage for the interpretation line */
-static void to_latin1(unsigned char source[], unsigned char preprocessed[]) {
+void to_latin1(unsigned char source[], unsigned char preprocessed[]) {
int j, i, input_length;
input_length = ustrlen(source);
return;
}
-static int plot_raster_dotty(struct zint_symbol *symbol, int rotate_angle, int data_type) {
+int plot_raster_dotty(struct zint_symbol *symbol, int rotate_angle, int data_type) {
float scaler = 2 * symbol->scale;
char *scaled_pixelbuf;
int r, i;
int scale_width, scale_height;
int error_number = 0;
int xoffset, yoffset, image_width, image_height;
- int roffset, boffset;
symbol->height = symbol->rows; // This is true because only 2d matrix symbols are processed here
- set_whitespace_offsets(symbol, &xoffset, &yoffset, &roffset, &boffset);
-
- image_width = symbol->width + xoffset + roffset;
- image_height = symbol->height + yoffset + boffset;
+ xoffset = symbol->border_width + symbol->whitespace_width;
+ yoffset = symbol->border_width;
+ image_width = symbol->width + xoffset + xoffset;
+ image_height = symbol->height + yoffset + yoffset;
if (scaler < 2.0) {
scaler = 2.0;
if (!(scaled_pixelbuf = (char *) malloc(scale_width * scale_height))) {
strcpy(symbol->errtxt, "657: Insufficient memory for pixel buffer");
return ZINT_ERROR_ENCODING_PROBLEM;
+ } else {
+ for (i = 0; i < (scale_width * scale_height); i++) {
+ *(scaled_pixelbuf + i) = '0';
+ }
}
- memset(scaled_pixelbuf, DEFAULT_PAPER, scale_width * scale_height);
/* Plot the body of the symbol to the pixel buffer */
for (r = 0; r < symbol->rows; r++) {
(int) ((i + xoffset) * scaler) + (scaler / 2.0),
(int) ((r + yoffset) * scaler) + (scaler / 2.0),
(symbol->dot_size / 2.0) * scaler,
- DEFAULT_INK);
+ '1');
}
}
}
return error_number;
}
-static int plot_raster_default(struct zint_symbol *symbol, int rotate_angle, int data_type) {
+int plot_raster_default(struct zint_symbol *symbol, int rotate_angle, int data_type) {
int textdone, main_width, comp_offset, large_bar_count;
char textpart[10], addon[6];
float addon_text_posn, preset_height, large_bar_height;
int i, r, textoffset, yoffset, xoffset, latch, image_width, image_height;
- int roffset, boffset;
char *pixelbuf;
int addon_latch = 0, textflags = 0;
int block_width, textpos;
if (is_extendable(symbol->symbology)) {
/* For these symbols use dummy text to ensure formatting is done
* properly even if no text is required */
- for (i = 0; i < (int) ustrlen(symbol->text); i++) {
+ for (i = 0; i < ustrlen(symbol->text); i++) {
if (symbol->text[i] == '+') {
local_text[i] = '+';
} else {
local_text[i] = ' ';
}
+ local_text[ustrlen(symbol->text)] = '\0';
}
- local_text[ustrlen(symbol->text)] = '\0';
} else {
/* For everything else, just remove the text */
- memset(local_text, 0, ustrlen(symbol->text) + 1); /* Note using memset() here to suppress clang-tidy false positives */
+ local_text[0] = '\0';
}
}
textdone = 0;
main_width = symbol->width;
+ strcpy(addon, "");
comp_offset = 0;
addon_text_posn = 0.0;
+ row_height = 0;
if (symbol->output_options & SMALL_TEXT) {
textflags = 1;
} else if (symbol->output_options & BOLD_TEXT) {
r = 0;
/* Isolate add-on text */
if (is_extendable(symbol->symbology)) {
- for (i = 0; i < (int) ustrlen(local_text); i++) {
+ for (i = 0; i < ustrlen(local_text); i++) {
if (latch == 1) {
addon[r] = local_text[i];
r++;
textoffset = 0;
}
- set_whitespace_offsets(symbol, &xoffset, &yoffset, &roffset, &boffset);
-
- image_width = 2 * (symbol->width + xoffset + roffset);
- image_height = 2 * (symbol->height + textoffset + yoffset + boffset);
+ xoffset = symbol->border_width + symbol->whitespace_width;
+ yoffset = symbol->border_width;
+ image_width = 2 * (symbol->width + xoffset + xoffset);
+ image_height = 2 * (symbol->height + textoffset + yoffset + yoffset);
if (!(pixelbuf = (char *) malloc(image_width * image_height))) {
strcpy(symbol->errtxt, "658: Insufficient memory for pixel buffer");
return ZINT_ERROR_ENCODING_PROBLEM;
+ } else {
+ for (i = 0; i < (image_width * image_height); i++) {
+ *(pixelbuf + i) = '0';
+ }
}
- memset(pixelbuf, DEFAULT_PAPER, image_width * image_height);
- default_text_posn = image_height - 17;
+ if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
+ default_text_posn = image_height - 17;
+ } else {
+ default_text_posn = image_height - 17 - symbol->border_width - symbol->border_width;
+ }
row_posn = textoffset + yoffset;
next_yposn = textoffset + yoffset;
int plot_yposn;
int plot_height;
int this_row = symbol->rows - r - 1; /* invert r otherwise plots upside down */
- int module_fill;
row_posn += row_height;
plot_yposn = next_yposn;
if (symbol->row_height[this_row] == 0) {
plot_height = next_yposn - plot_yposn;
i = 0;
+ if (module_is_set(symbol, this_row, 0)) {
+ latch = 1;
+ } else {
+ latch = 0;
+ }
do {
- module_fill = module_is_set(symbol, this_row, i);
block_width = 0;
do {
block_width++;
- } while ((i + block_width < symbol->width) && module_is_set(symbol, this_row, i + block_width) == module_is_set(symbol, this_row, i));
-
+ } while ((i + block_width < symbol->width )&& module_is_set(symbol, this_row, i + block_width) == module_is_set(symbol, this_row, i));
if ((addon_latch == 0) && (r == 0) && (i > main_width)) {
plot_height = (int) (row_height - 5.0);
plot_yposn = (int) (row_posn - 5.0);
addon_text_posn = row_posn + row_height - 8.0;
addon_latch = 1;
}
- if (module_fill) {
+ if (latch == 1) {
/* a bar */
- if (symbol->symbology == BARCODE_ULTRA) {
- draw_bar(pixelbuf, (i + xoffset) * 2, block_width * 2, plot_yposn * 2, plot_height * 2, image_width, image_height, ultra_colour[module_fill]);
- } else {
- draw_bar(pixelbuf, (i + xoffset) * 2, block_width * 2, plot_yposn * 2, plot_height * 2, image_width, image_height, DEFAULT_INK);
- }
+ draw_bar(pixelbuf, (i + xoffset) * 2, block_width * 2, plot_yposn * 2, plot_height * 2, image_width, image_height);
+ latch = 0;
+ } else {
+ /* a space */
+ latch = 1;
}
i += block_width;
case 8: /* EAN-8 */
case 11:
case 14:
- draw_bar(pixelbuf, (0 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (2 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (32 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (34 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (64 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (66 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (0 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (2 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (32 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (34 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (64 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (66 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
for (i = 0; i < 4; i++) {
textpart[i] = local_text[i];
}
case 13: /* EAN 13 */
case 16:
case 19:
- draw_bar(pixelbuf, (0 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (2 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (46 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (48 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (92 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (94 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (0 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (2 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (46 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (48 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (92 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (94 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
textpart[0] = local_text[0];
textpart[1] = '\0';
block_width = 0;
do {
block_width++;
- } while ((i + block_width < symbol->width) && module_is_set(symbol, symbol->rows - 1, i + block_width) == module_is_set(symbol, symbol->rows - 1, i));
+ } while (module_is_set(symbol, symbol->rows - 1, i + block_width) == module_is_set(symbol, symbol->rows - 1, i));
if (latch == 1) {
/* a bar */
- draw_bar(pixelbuf, (i + xoffset - comp_offset) * 2, block_width * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (i + xoffset - comp_offset) * 2, block_width * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
latch = 0;
} else {
/* a space */
}
i += block_width;
} while (i < 11 + comp_offset);
- draw_bar(pixelbuf, (46 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (48 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (46 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (48 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
latch = 1;
i = 85 + comp_offset;
do {
block_width = 0;
do {
block_width++;
- } while ((i + block_width < symbol->width) && module_is_set(symbol, symbol->rows - 1, i + block_width) == module_is_set(symbol, symbol->rows - 1, i));
+ } while (module_is_set(symbol, symbol->rows - 1, i + block_width) == module_is_set(symbol, symbol->rows - 1, i));
if (latch == 1) {
/* a bar */
- draw_bar(pixelbuf, (i + xoffset - comp_offset) * 2, block_width * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (i + xoffset - comp_offset) * 2, block_width * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
latch = 0;
} else {
/* a space */
} else if ((symbol->symbology == BARCODE_UPCE) || (symbol->symbology == BARCODE_UPCE_CHK)
|| (symbol->symbology == BARCODE_UPCE_CC)) {
/* guard bar extensions and text formatting for UPCE */
- draw_bar(pixelbuf, (0 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (2 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (46 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (48 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (50 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (0 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (2 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (46 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (48 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
+ draw_bar(pixelbuf, (50 + xoffset) * 2, 1 * 2, (4 + (int) yoffset) * 2, 5 * 2, image_width, image_height);
textpart[0] = local_text[0];
textpart[1] = '\0';
/* Put boundary bars or box around symbol */
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
/* boundary bars */
- if ((symbol->output_options & BARCODE_BOX) || (symbol->symbology != BARCODE_CODABLOCKF && symbol->symbology != BARCODE_HIBC_BLOCKF)) {
- draw_bar(pixelbuf, 0, (symbol->width + xoffset + roffset) * 2, textoffset * 2, symbol->border_width * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, 0, (symbol->width + xoffset + roffset) * 2, (textoffset + symbol->height + symbol->border_width) * 2, symbol->border_width * 2, image_width, image_height, DEFAULT_INK);
+ if (symbol->symbology != BARCODE_CODABLOCKF) {
+ draw_bar(pixelbuf, 0, (symbol->width + xoffset + xoffset) * 2, textoffset * 2, symbol->border_width * 2, image_width, image_height);
+ draw_bar(pixelbuf, 0, (symbol->width + xoffset + xoffset) * 2, (textoffset + symbol->height + symbol->border_width) * 2, symbol->border_width * 2, image_width, image_height);
} else {
- draw_bar(pixelbuf, xoffset * 2, symbol->width * 2, textoffset * 2, symbol->border_width * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, xoffset * 2, symbol->width * 2, (textoffset + symbol->height + symbol->border_width) * 2, symbol->border_width * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, xoffset * 2, symbol->width * 2, textoffset * 2, symbol->border_width * 2, image_width, image_height);
+ draw_bar(pixelbuf, xoffset * 2, symbol->width * 2, (textoffset + symbol->height + symbol->border_width) * 2, symbol->border_width * 2, image_width, image_height);
}
if ((symbol->output_options & BARCODE_BIND) != 0) {
if ((symbol->rows > 1) && (is_stackable(symbol->symbology) == 1)) {
- double sep_height = 1;
- if (symbol->option_3 > 0 && symbol->option_3 <= 4) {
- sep_height = symbol->option_3;
- }
/* row binding */
- if (symbol->symbology != BARCODE_CODABLOCKF && symbol->symbology != BARCODE_HIBC_BLOCKF) {
+ if (symbol->symbology != BARCODE_CODABLOCKF) {
for (r = 1; r < symbol->rows; r++) {
- draw_bar(pixelbuf, xoffset * 2, symbol->width * 2, ((r * row_height) + textoffset + yoffset - sep_height / 2) * 2, sep_height * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, xoffset * 2, symbol->width * 2, ((r * row_height) + textoffset + yoffset - 1) * 2, 2 * 2, image_width, image_height);
}
} else {
for (r = 1; r < symbol->rows; r++) {
- /* Avoid 11-module start and 13-module stop chars */
- draw_bar(pixelbuf, (xoffset + 11) * 2, (symbol->width - 24) * 2, ((r * row_height) + textoffset + yoffset - sep_height / 2) * 2, sep_height * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, (xoffset + 11) * 2 , (symbol->width - 25) * 2, ((r * row_height) + textoffset + yoffset - 1) * 2, 2 * 2, image_width, image_height);
}
}
}
if (symbol->output_options & BARCODE_BOX) {
/* side bars */
- draw_bar(pixelbuf, 0, symbol->border_width * 2, textoffset * 2, (symbol->height + (2 * symbol->border_width)) * 2, image_width, image_height, DEFAULT_INK);
- draw_bar(pixelbuf, (symbol->width + xoffset + roffset - symbol->border_width) * 2, symbol->border_width * 2, textoffset * 2, (symbol->height + (2 * symbol->border_width)) * 2, image_width, image_height, DEFAULT_INK);
+ draw_bar(pixelbuf, 0, symbol->border_width * 2, textoffset * 2, (symbol->height + (2 * symbol->border_width)) * 2, image_width, image_height);
+ draw_bar(pixelbuf, (symbol->width + xoffset + xoffset - symbol->border_width) * 2, symbol->border_width * 2, textoffset * 2, (symbol->height + (2 * symbol->border_width)) * 2, image_width, image_height);
}
/* Put the human readable text at the bottom */
}
- if (scaler <= 0) {
+ if (scaler == 0) {
scaler = 0.5;
}
+ scale_width = image_width * scaler;
+ scale_height = image_height * scaler;
- if (scaler != 1.0) {
- scale_width = image_width * scaler;
- scale_height = image_height * scaler;
-
- /* Apply scale options by creating another pixel buffer */
- if (!(scaled_pixelbuf = (char *) malloc(scale_width * scale_height))) {
- free(pixelbuf);
- strcpy(symbol->errtxt, "659: Insufficient memory for pixel buffer");
- return ZINT_ERROR_ENCODING_PROBLEM;
+ /* Apply scale options by creating another pixel buffer */
+ if (!(scaled_pixelbuf = (char *) malloc(scale_width * scale_height))) {
+ free(pixelbuf);
+ strcpy(symbol->errtxt, "659: Insufficient memory for pixel buffer");
+ return ZINT_ERROR_ENCODING_PROBLEM;
+ } else {
+ for (i = 0; i < (scale_width * scale_height); i++) {
+ *(scaled_pixelbuf + i) = '0';
}
- memset(scaled_pixelbuf, DEFAULT_PAPER, scale_width * scale_height);
+ }
- for (vert = 0; vert < scale_height; vert++) {
- for (horiz = 0; horiz < scale_width; horiz++) {
- *(scaled_pixelbuf + (vert * scale_width) + horiz) = *(pixelbuf + ((int) (vert / scaler) * image_width) + (int) (horiz / scaler));
- }
+ for (vert = 0; vert < scale_height; vert++) {
+ for (horiz = 0; horiz < scale_width; horiz++) {
+ *(scaled_pixelbuf + (vert * scale_width) + horiz) = *(pixelbuf + ((int) (vert / scaler) * image_width) + (int) (horiz / scaler));
}
-
- error_number = save_raster_image_to_file(symbol, scale_height, scale_width, scaled_pixelbuf, rotate_angle, data_type);
- free(scaled_pixelbuf);
- } else {
- error_number = save_raster_image_to_file(symbol, image_height, image_width, pixelbuf, rotate_angle, data_type);
}
+
+ error_number = save_raster_image_to_file(symbol, scale_height, scale_width, scaled_pixelbuf, rotate_angle, data_type);
+ free(scaled_pixelbuf);
free(pixelbuf);
return error_number;
}
-INTERNAL int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type) {
+int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type) {
int error;
#ifdef NO_PNG
if (file_type == OUT_PNG_FILE) {
- strcpy(symbol->errtxt, "660: PNG format disabled at compile time");
return ZINT_ERROR_INVALID_OPTION;
}
#endif /* NO_PNG */
- error = check_colour_options(symbol);
- if (error != 0) {
- return error;
- }
-
if (symbol->output_options & BARCODE_DOTTY_MODE) {
error = plot_raster_dotty(symbol, rotate_angle, file_type);
} else {
return error;
}
+
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
// It is not written with high efficiency in mind, so is probably
// not suitable for real-time encoding. The aim was to keep it
// malloc/free can be avoided by using static arrays of a suitable
// size.
-#ifdef _MSC_VER
+#include <stdio.h> // only needed for debug (main)
#include <malloc.h>
-#endif
-#include "common.h"
#include "reedsol.h"
static int logmod; // 2**symsize - 1
static int rlen;
// polynomial. e.g. for ECC200 (8-bit symbols) the polynomial is
// a**8 + a**5 + a**3 + a**2 + 1, which translates to 0x12d.
-INTERNAL void rs_init_gf(const int poly) {
+void rs_init_gf(const int poly) {
int m, b, p, v;
// Find the top bit, and hence the symbol size
// (x + 2**i)*(x + 2**(i+1))*... [nsym terms]
// For ECC200, index is 1.
-INTERNAL void rs_init_code(const int nsym, int index) {
+void rs_init_code(const int nsym, int index) {
int i, k;
rspoly = (int *) malloc(sizeof (int) * (nsym + 1));
}
}
-INTERNAL void rs_encode(const size_t len, const unsigned char *data, unsigned char *res) {
+void rs_encode(const size_t len,const unsigned char *data, unsigned char *res) {
int i, k;
for (i = 0; i < rlen; i++)
res[i] = 0;
- for (i = 0; i < (int) len; i++) {
+ for (i = 0; i < len; i++) {
int m = res[rlen - 1] ^ data[i];
for (k = rlen - 1; k > 0; k--) {
if (m && rspoly[k])
}
/* The same as above but for larger bitlengths - Aztec code compatible */
-INTERNAL void rs_encode_long(const int len, const unsigned int *data, unsigned int *res) {
+void rs_encode_long(const int len, const unsigned int *data, unsigned int *res) {
int i, k;
for (i = 0; i < rlen; i++)
res[i] = 0;
}
/* Free memory */
-INTERNAL void rs_free(void) {
+void rs_free(void) {
free(logt);
free(alog);
free(rspoly);
rspoly = NULL;
}
+
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#ifndef __REEDSOL_H
#define __REEDSOL_H
extern "C" {
#endif /* __cplusplus */
-INTERNAL void rs_init_gf(const int poly);
-INTERNAL void rs_init_code(const int nsym,int index);
-INTERNAL void rs_encode(const size_t len,const unsigned char *data, unsigned char *res);
-INTERNAL void rs_encode_long(const int len,const unsigned int *data, unsigned int *res);
-INTERNAL void rs_free(void);
+extern void rs_init_gf(const int poly);
+extern void rs_init_code(const int nsym,int index);
+extern void rs_encode(const size_t len,const unsigned char *data, unsigned char *res);
+extern void rs_encode_long(const int len,const unsigned int *data, unsigned int *res);
+ extern void rs_free(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __REEDSOL_H */
+
--- /dev/null
+/*
+ * render.c - Generic Rendered Format
+ *
+ * Initiall written by Sam Lown for use in gLabels. Converts encoded
+ * data into a generic internal structure of lines and characters
+ * usable in external applications.
+ */
+
+/*
+ libzint - the open source barcode library
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the project nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+#include <locale.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#ifdef _MSC_VER
+#include <malloc.h>
+#endif
+#include "common.h"
+
+#define GL_CONST 2.8346
+
+struct zint_render_line *render_plot_create_line(float x, float y, float width, float length);
+int render_plot_add_line(struct zint_symbol *symbol, struct zint_render_line *line, struct zint_render_line **last_line);
+struct zint_render_ring *render_plot_create_ring(float x, float y, float radius, float line_width);
+int render_plot_add_ring(struct zint_symbol *symbol, struct zint_render_ring *ring, struct zint_render_ring **last_ring);
+struct zint_render_hexagon *render_plot_create_hexagon(float x, float y, float height);
+int render_plot_add_hexagon(struct zint_symbol *symbol, struct zint_render_hexagon *hexagon, struct zint_render_hexagon **last_hexagon);
+
+int render_plot_add_string(struct zint_symbol *symbol, unsigned char *text, float x, float y, float fsize, float width, struct zint_render_string **last_string);
+void render_free(struct zint_symbol *symbol);
+
+int render_plot(struct zint_symbol *symbol, float width, float height) {
+ struct zint_render *render;
+ struct zint_render_line *line, *last_line = NULL;
+ struct zint_render_string *last_string = NULL;
+ struct zint_render_ring *last_ring = NULL;
+ struct zint_render_hexagon *last_hexagon = NULL;
+
+ int i, r, latch;
+ float textpos, large_bar_height, preset_height, row_height, row_posn = 0.0;
+ // int error_number = 0;
+ int text_offset, text_height, xoffset, yoffset, textdone, main_symbol_width_x, addon_width_x;
+ char addon[6];
+ int large_bar_count, symbol_lead_in, total_symbol_width_x, total_area_width_x;
+ float addon_text_posn;
+ float default_text_posn;
+ float scaler;
+ const char *locale = NULL;
+ int hide_text = 0;
+ float symbol_aspect = 1;
+ float x_dimension;
+ int upceanflag = 0;
+
+ // Free any previous rendering structures
+ render_free(symbol);
+ // Allocate memory for the rendered version
+ render = symbol->rendered = (struct zint_render *) malloc(sizeof (struct zint_render));
+ if (!symbol->rendered) return ZINT_ERROR_MEMORY;
+ render->lines = NULL;
+ render->strings = NULL;
+ render->rings = NULL;
+ render->hexagons = NULL;
+
+ locale = setlocale(LC_ALL, "C");
+
+ row_height = 0;
+ textdone = 0;
+ textpos = 0.0;
+ main_symbol_width_x = symbol->width;
+ strcpy(addon, "");
+ symbol_lead_in = 0;
+ addon_text_posn = 0.0;
+ addon_width_x = 0;
+
+ /*
+ * Determine if there will be any addon texts and text height
+ */
+ latch = 0;
+ r = 0;
+ /* Isolate add-on text */
+ if (is_extendable(symbol->symbology)) {
+ for(i = 0; i < (int)ustrlen(symbol->text); i++) {
+ if (latch == 1) {
+ addon[r] = symbol->text[i];
+ r++;
+ }
+ if (symbol->text[i] == '+') {
+ latch = 1;
+ }
+ }
+ }
+ addon[r] = '\0';
+
+
+ /*
+ * Calculate the width of the barcode, especially if there are any extra
+ * borders or white space to add.
+ */
+
+ while (!(module_is_set(symbol, symbol->rows - 1, symbol_lead_in))) {
+ symbol_lead_in++;
+ }
+
+ /* Certain symbols need whitespace otherwise characters get chopped off the sides */
+ if ((((symbol->symbology == BARCODE_EANX) && (symbol->rows == 1)) || (symbol->symbology == BARCODE_EANX_CC))
+ || (symbol->symbology == BARCODE_ISBNX)) {
+ switch (ustrlen(symbol->text)) {
+ case 13: /* EAN 13 */
+ case 16:
+ case 19:
+ if (symbol->whitespace_width == 0) {
+ symbol->whitespace_width = 10;
+ }
+ main_symbol_width_x = 96 + symbol_lead_in;
+ upceanflag = 13;
+ break;
+ case 2:
+ main_symbol_width_x = 22 + symbol_lead_in;
+ upceanflag = 2;
+ break;
+ case 5:
+ main_symbol_width_x = 49 + symbol_lead_in;
+ upceanflag = 5;
+ break;
+ default:
+ main_symbol_width_x = 68 + symbol_lead_in;
+ upceanflag = 8;
+ }
+ switch (ustrlen(symbol->text)) {
+ case 11:
+ case 16:
+ /* EAN-2 add-on */
+ addon_width_x = 31;
+ break;
+ case 14:
+ case 19:
+ /* EAN-5 add-on */
+ addon_width_x = 58;
+ break;
+ }
+ }
+ else if (((symbol->symbology == BARCODE_UPCA) && (symbol->rows == 1)) || (symbol->symbology == BARCODE_UPCA_CC)) {
+ upceanflag = 12;
+ if (symbol->whitespace_width < 10) {
+ symbol->whitespace_width = 10;
+ main_symbol_width_x = 96 + symbol_lead_in;
+ }
+ switch (ustrlen(symbol->text)) {
+ case 15:
+ /* EAN-2 add-on */
+ addon_width_x = 31;
+ break;
+ case 18:
+ /* EAN-5 add-on */
+ addon_width_x = 58;
+ break;
+ }
+ }
+ else if (((symbol->symbology == BARCODE_UPCE) && (symbol->rows == 1)) || (symbol->symbology == BARCODE_UPCE_CC)) {
+ upceanflag = 6;
+ if (symbol->whitespace_width == 0) {
+ symbol->whitespace_width = 10;
+ main_symbol_width_x = 51 + symbol_lead_in;
+ }
+ switch (ustrlen(symbol->text)) {
+ case 11:
+ /* EAN-2 add-on */
+ addon_width_x = 31;
+ break;
+ case 14:
+ /* EAN-5 add-on */
+ addon_width_x = 58;
+ break;
+ }
+ }
+
+ if ((!symbol->show_hrt) || (ustrlen(symbol->text) == 0)) {
+ hide_text = 1;
+ text_height = text_offset = 0.0;
+ }
+ else {
+ text_height = upceanflag ? 11.0 : 9.0;
+ text_offset = 2.0;
+ }
+ if (symbol->output_options & SMALL_TEXT)
+ text_height *= 0.8;
+
+ total_symbol_width_x = 0.0 + main_symbol_width_x + addon_width_x;
+ total_area_width_x = total_symbol_width_x + (2 * (symbol->border_width + symbol->whitespace_width));
+
+ xoffset = symbol->border_width + symbol->whitespace_width;
+ yoffset = symbol->border_width;
+
+
+ // Determine if height should be overridden
+ large_bar_count = 0;
+ preset_height = 0.0;
+ for (i = 0; i < symbol->rows; i++) {
+ preset_height += symbol->row_height[i];
+ if (symbol->row_height[i] == 0) {
+ large_bar_count++;
+ }
+ }
+
+
+ /* Set minimum size of symbol */
+ /* Barcode must be at least 2mm high by 2mm across */
+ if (width < (2.0 * GL_CONST)) {
+ width = (2.0 * GL_CONST);
+ }
+ x_dimension = width / total_area_width_x / GL_CONST;
+ if (height < ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + 2.0) * GL_CONST) {
+ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + 2.0) * GL_CONST;
+ }
+
+ if (symbol->symbology == BARCODE_CODABAR) {
+ /* The minimum X-dimension of Codabar is 0.191mm. The minimum bar height is 5mm */
+ if (x_dimension < 0.191) {
+ x_dimension = 0.191;
+ width = 0.191 * GL_CONST * total_area_width_x;
+ }
+ if (height < ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + 5.0) * GL_CONST) {
+ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + 5.0) * GL_CONST;
+ }
+ }
+ else if (symbol->symbology == BARCODE_CODE49) {
+ /* The minimum X-dimension of Code 49 is 0.191mm */
+ if (x_dimension < 0.191) {
+ float encoded_symbol_aspect;
+ x_dimension = 0.191;
+ width = 0.191 * GL_CONST * total_area_width_x;
+ encoded_symbol_aspect = total_area_width_x;
+ encoded_symbol_aspect /= (preset_height + (2 * yoffset) + text_offset + text_height);
+ height = width / encoded_symbol_aspect;
+ }
+ }
+
+ if (upceanflag != 0) {
+ /* The X-dimension of UPC/EAN symbols is fixed at 0.330mm */
+ /* The phrase before is questionable. It may scale in certain percentages (80% - 200%).
+ see https://internationalbarcodes.com/ean-13-specifications/ */
+ // Can now cope with sizes between 80% and 200%, enforces correct aspect ratio
+ /* NOTE: This code will need adjustment before it correctly deals with composite symbols */
+ //x_dimension = 0.330;
+ if (x_dimension < 0.26) {
+ x_dimension = 0.26;
+ }
+ if (x_dimension > 0.66) {
+ x_dimension = 0.66;
+ }
+ width = x_dimension * GL_CONST * total_area_width_x;
+
+ switch (upceanflag) {
+ case 6:
+ case 12:
+ case 13:
+ /* UPC-A, UPC-E and EAN-13 */
+ /* Height of bars should be 22.85mm */
+ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + (22.85 * (x_dimension / 0.33))) * GL_CONST;
+ break;
+ case 8:
+ /* EAN-8 */
+ /* Height of bars should be 18.23mm */
+ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + (18.23 * (x_dimension / 0.33))) * GL_CONST;
+ break;
+ default:
+ /* EAN-2 and EAN-5 */
+ /* Height of bars should be 21.10mm */
+ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + (21.10 * (x_dimension / 0.33))) * GL_CONST;
+ }
+ }
+
+ if (symbol->symbology == BARCODE_ONECODE) {
+ /* The size of USPS Intelligent Mail barcode is fixed */
+ x_dimension = 0.508;
+ width = 0.508 * GL_CONST * total_area_width_x;
+ height = 4.064 * GL_CONST;
+ }
+ else if ((symbol->symbology == BARCODE_POSTNET) || (symbol->symbology == BARCODE_PLANET)) {
+ /* The size of PostNet and PLANET are fized */
+ x_dimension = 0.508;
+ width = 0.508 * GL_CONST * total_area_width_x;
+ height = 2.921 * GL_CONST;
+ }
+ else if (((symbol->symbology == BARCODE_AUSPOST) || (symbol->symbology == BARCODE_AUSREPLY)) ||
+ ((symbol->symbology == BARCODE_AUSROUTE) || (symbol->symbology == BARCODE_AUSREDIRECT))) {
+ /* Australia Post use the same sizes as USPS */
+ x_dimension = 0.508;
+ width = 0.508 * GL_CONST * total_area_width_x;
+ height = 4.064 * GL_CONST;
+ }
+ else if ((symbol->symbology == BARCODE_RM4SCC) || (symbol->symbology == BARCODE_KIX)) {
+ /* Royal Mail and KIX Code uses 22 bars per inch */
+ x_dimension = 0.577;
+ width = 0.577 * GL_CONST * total_area_width_x;
+ height = 5.22 * GL_CONST;
+ }
+
+
+ if (large_bar_count == 0) {
+ float required_aspect = width / height;
+ symbol_aspect = (total_symbol_width_x + (2 * xoffset)) / (preset_height + (2 * yoffset) + text_offset + text_height);
+ symbol->height = (int) preset_height;
+ if (required_aspect > symbol_aspect) {
+ /* the area is too wide */
+ scaler = height / (preset_height + (2 * yoffset) + text_offset + text_height);
+ render->width = symbol_aspect * height;
+ render->height = height;
+ } else {
+ /* the area is too high */
+ scaler = width / (total_symbol_width_x + (2 * xoffset));
+ render->width = width;
+ render->height = width / symbol_aspect;
+ }
+ } else {
+ scaler = width / (total_symbol_width_x + (2 * xoffset));
+ symbol->height = (int) ((height / scaler) - ((2 * yoffset) + text_offset + text_height));
+
+ render->width = width;
+ render->height = height;
+ }
+ large_bar_height = (symbol->height - preset_height) / large_bar_count;
+
+ if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
+ default_text_posn = (symbol->height + text_offset + symbol->border_width + symbol->border_width) * scaler;
+ } else {
+ default_text_posn = (symbol->height + text_offset + symbol->border_width) * scaler;
+ }
+
+
+ if (symbol->symbology == BARCODE_MAXICODE) {
+ struct zint_render_ring *ring;
+ /* Maxicode is a fixed size */
+ scaler = GL_CONST; /* Converts from millimeters to the scale used by glabels */
+ render->width = 28.16 * scaler;
+ render->height = 26.86 * scaler;
+
+ /* Central bullseye pattern */
+ ring = render_plot_create_ring(13.64 * scaler, 13.43 * scaler, 0.85 * scaler, 0.67 * scaler);
+ render_plot_add_ring(symbol, ring, &last_ring);
+ ring = render_plot_create_ring(13.64 * scaler, 13.43 * scaler, 2.20 * scaler, 0.67 * scaler);
+ render_plot_add_ring(symbol, ring, &last_ring);
+ ring = render_plot_create_ring(13.64 * scaler, 13.43 * scaler, 3.54 * scaler, 0.67 * scaler);
+ render_plot_add_ring(symbol, ring, &last_ring);
+
+ /* Hexagons */
+ for (r = 0; r < symbol->rows; r++) {
+ for (i = 0; i < symbol->width; i++) {
+ if (module_is_set(symbol, r, i)) {
+ struct zint_render_hexagon *hexagon = render_plot_create_hexagon(((i * 0.88) + ((r & 1) ? 1.76 : 1.32)) * scaler, ((r * 0.76) + 0.76) * scaler, 1. * scaler);
+ render_plot_add_hexagon(symbol, hexagon, &last_hexagon);
+ }
+ }
+ }
+
+ } else {
+ /* everything else uses rectangles (or squares) */
+ /* Works from the bottom of the symbol up */
+ int addon_latch = 0;
+
+ for (r = 0; r < symbol->rows; r++) {
+ int this_row = r;
+ if (symbol->row_height[this_row] == 0) {
+ row_height = large_bar_height;
+ } else {
+ row_height = symbol->row_height[this_row];
+ }
+ row_posn = 0;
+ for (i = 0; i < r; i++) {
+ if (symbol->row_height[i] == 0) {
+ row_posn += large_bar_height;
+ } else {
+ row_posn += symbol->row_height[i];
+ }
+ }
+ row_posn += yoffset;
+
+ i = 0;
+ if (module_is_set(symbol, this_row, 0)) {
+ latch = 1;
+ } else {
+ latch = 0;
+ }
+
+ do {
+ int block_width = 0;
+ do {
+ block_width++;
+ } while (module_is_set(symbol, this_row, i + block_width) == module_is_set(symbol, this_row, i));
+ if ((addon_latch == 0) && (r == (symbol->rows - 1)) && (i > main_symbol_width_x)) {
+ addon_text_posn = row_posn * scaler;
+ addon_latch = 1;
+ }
+ if (latch == 1) {
+ /* a bar */
+ if (addon_latch == 0) {
+ line = render_plot_create_line((i + xoffset) * scaler, (row_posn) * scaler, block_width * scaler, row_height * scaler);
+ } else {
+ line = render_plot_create_line((i + xoffset) * scaler, (row_posn + 10.0) * scaler, block_width * scaler, (row_height - 5.0) * scaler);
+ }
+ latch = 0;
+
+ render_plot_add_line(symbol, line, &last_line);
+ } else {
+ /* a space */
+ latch = 1;
+ }
+ i += block_width;
+
+ } while (i < symbol->width);
+ }
+ }
+ /* That's done the actual data area, everything else is human-friendly */
+
+
+ /* Add the text */
+ xoffset -= symbol_lead_in;
+ row_posn = (row_posn + large_bar_height) * scaler;
+
+ if (!hide_text) {
+ char textpart[10];
+ float textwidth;
+ if (upceanflag == 8) {
+ /* guard bar extensions and text formatting for EAN-8 */
+ i = 0;
+ for (line = symbol->rendered->lines; line != NULL; line = line->next) {
+ switch (i) {
+ case 0:
+ case 1:
+ case 10:
+ case 11:
+ case 20:
+ case 21:
+ line->length += (5.0 * scaler);
+ break;
+ }
+ i++;
+ }
+
+ for (i = 0; i < 4; i++) {
+ textpart[i] = symbol->text[i];
+ }
+ textpart[4] = '\0';
+ textpos = 17;
+ textwidth = 4.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ for (i = 0; i < 4; i++) {
+ textpart[i] = symbol->text[i + 4];
+ }
+ textpart[4] = '\0';
+ textpos = 50;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ textdone = 1;
+ switch (strlen(addon)) {
+ case 2:
+ textpos = xoffset + 86;
+ textwidth = 2.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ case 5:
+ textpos = xoffset + 100;
+ textwidth = 5.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ }
+
+ }
+
+ if (upceanflag == 13) {
+ /* guard bar extensions and text formatting for EAN-13 */
+ i = 0;
+ for (line = symbol->rendered->lines; line != NULL; line = line->next) {
+ switch (i) {
+ case 0:
+ case 1:
+ case 14:
+ case 15:
+ case 28:
+ case 29:
+ line->length += (5.0 * scaler);
+ break;
+ }
+ i++;
+ }
+
+ textpart[0] = symbol->text[0];
+ textpart[1] = '\0';
+ textpos = -5; // 7
+ textwidth = 8.5;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+
+ for (i = 0; i < 6; i++) {
+ textpart[i] = symbol->text[i + 1];
+ }
+ textpart[6] = '\0';
+ textpos = 25;
+ textwidth = 6.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ for (i = 0; i < 6; i++) {
+ textpart[i] = symbol->text[i + 7];
+ }
+ textpart[6] = '\0';
+ textpos = 72;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ textdone = 1;
+ switch (strlen(addon)) {
+ case 2:
+ textpos = xoffset + 114;
+ textwidth = 2.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ case 5:
+ textpos = xoffset + 128;
+ textwidth = 5.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ }
+ }
+
+ if (upceanflag == 12) {
+ /* guard bar extensions and text formatting for UPCA */
+ i = 0;
+ for (line = symbol->rendered->lines; line != NULL; line = line->next) {
+ switch (i) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 14:
+ case 15:
+ case 26:
+ case 27:
+ case 28:
+ case 29:
+ line->length += (5.0 * scaler);
+ break;
+ }
+ i++;
+ }
+
+ textpart[0] = symbol->text[0];
+ textpart[1] = '\0';
+ textpos = -5;
+ textwidth = 6.2;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn + (2.0 * scaler), text_height * (8.0 / 11.0) * scaler, textwidth * scaler, &last_string);
+ for (i = 0; i < 5; i++) {
+ textpart[i] = symbol->text[i + 1];
+ }
+ textpart[5] = '\0';
+ textpos = 27;
+ textwidth = 5.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ for (i = 0; i < 5; i++) {
+ textpart[i] = symbol->text[i + 6];
+ }
+ textpos = 68;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ textpart[0] = symbol->text[11];
+ textpart[1] = '\0';
+ textpos = 100;
+ textwidth = 6.2;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn + (2.0 * scaler), text_height * (8.0 / 11.0) * scaler, textwidth * scaler, &last_string);
+ textdone = 1;
+ switch (strlen(addon)) {
+ case 2:
+ textpos = xoffset + 116;
+ textwidth = 2.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ case 5:
+ textpos = xoffset + 130;
+ textwidth = 5.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ }
+ }
+
+ if (upceanflag == 6) {
+ /* guard bar extensions and text formatting for UPCE */
+ i = 0;
+ for (line = symbol->rendered->lines; line != NULL; line = line->next) {
+ switch (i) {
+ case 0:
+ case 1:
+ case 14:
+ case 15:
+ case 16:
+ line->length += (5.0 * scaler);
+ break;
+ }
+ i++;
+ }
+
+ textpart[0] = symbol->text[0];
+ textpart[1] = '\0';
+ textpos = -5;
+ textwidth = 6.2;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn + (2.0 * scaler), text_height * (8.0 / 11.0) * scaler, textwidth * scaler, &last_string);
+ for (i = 0; i < 6; i++) {
+ textpart[i] = symbol->text[i + 1];
+ }
+ textpart[6] = '\0';
+ textpos = 24;
+ textwidth = 6.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn, text_height * scaler, textwidth * scaler, &last_string);
+ textpart[0] = symbol->text[7];
+ textpart[1] = '\0';
+ textpos = 55;
+ textwidth = 6.2;
+ render_plot_add_string(symbol, (unsigned char *) textpart, (textpos + xoffset) * scaler, default_text_posn + (2.0 * scaler), text_height * (8.0 / 11.0) * scaler, textwidth * scaler, &last_string);
+ textdone = 1;
+ switch (strlen(addon)) {
+ case 2:
+ textpos = xoffset + 70;
+ textwidth = 2.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ case 5:
+ textpos = xoffset + 84;
+ textwidth = 5.0 * 8.5;
+ render_plot_add_string(symbol, (unsigned char *) addon, textpos * scaler, addon_text_posn * scaler, text_height * scaler, textwidth * scaler, &last_string);
+ break;
+ }
+ }
+
+ /* Put normal human readable text at the bottom (and centered) */
+ if (textdone == 0) {
+ // caculate start xoffset to center text
+ render_plot_add_string(symbol, symbol->text, ((symbol->width / 2.0) + xoffset) * scaler, default_text_posn, text_height * scaler, symbol->width * scaler, &last_string);
+ }
+ }
+
+ switch (symbol->symbology) {
+ case BARCODE_MAXICODE:
+ /* Do nothing! */
+ break;
+ default:
+ if ((symbol->output_options & BARCODE_BIND) != 0) {
+ if ((symbol->rows > 1) && (is_stackable(symbol->symbology) == 1)) {
+ /* row binding */
+ for (r = 1; r < symbol->rows; r++) {
+ line = render_plot_create_line(xoffset * scaler, ((r * row_height) + yoffset - 1) * scaler, symbol->width * scaler, 2.0 * scaler);
+ render_plot_add_line(symbol, line, &last_line);
+ }
+ }
+ }
+ if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
+ line = render_plot_create_line(0, 0, (symbol->width + xoffset + xoffset) * scaler, symbol->border_width * scaler);
+ render_plot_add_line(symbol, line, &last_line);
+ line = render_plot_create_line(0, (symbol->height + symbol->border_width) * scaler, (symbol->width + xoffset + xoffset) * scaler, symbol->border_width * scaler);
+ render_plot_add_line(symbol, line, &last_line);
+ }
+ if (symbol->output_options & BARCODE_BOX) {
+ /* side bars */
+ line = render_plot_create_line(0, 0, symbol->border_width * scaler, (symbol->height + (2 * symbol->border_width)) * scaler);
+ render_plot_add_line(symbol, line, &last_line);
+ line = render_plot_create_line((symbol->width + xoffset + xoffset - symbol->border_width) * scaler, 0, symbol->border_width * scaler, (symbol->height + (2 * symbol->border_width)) * scaler);
+ render_plot_add_line(symbol, line, &last_line);
+ }
+ break;
+ }
+
+ if (locale)
+ setlocale(LC_ALL, locale);
+
+ return 1;
+}
+
+/*
+ * Create a new line with its memory allocated ready for adding to the
+ * rendered structure.
+ *
+ * This is much quicker than writing out each line manually (in some cases!)
+ */
+struct zint_render_line *render_plot_create_line(float x, float y, float width, float length) {
+ struct zint_render_line *line;
+
+ line = (struct zint_render_line*) malloc(sizeof (struct zint_render_line));
+ if (!line) return NULL;
+
+ line->next = NULL;
+ line->x = x;
+ line->y = y;
+ line->width = width;
+ line->length = length;
+
+ return line;
+}
+
+/*
+ * Add the line to the current rendering and update the last line's
+ * next value.
+ */
+int render_plot_add_line(struct zint_symbol *symbol, struct zint_render_line *line, struct zint_render_line **last_line) {
+ if (!line) return ZINT_ERROR_MEMORY;
+ if (*last_line)
+ (*last_line)->next = line;
+ else
+ symbol->rendered->lines = line; // first line
+
+ *last_line = line;
+ return 1;
+}
+
+struct zint_render_ring *render_plot_create_ring(float x, float y, float radius, float line_width) {
+ struct zint_render_ring *ring;
+
+ ring = (struct zint_render_ring *) malloc(sizeof (struct zint_render_ring));
+ if (!ring) return NULL;
+ ring->next = NULL;
+ ring->x = x;
+ ring->y = y;
+ ring->radius = radius;
+ ring->line_width = line_width;
+
+ return ring;
+}
+
+int render_plot_add_ring(struct zint_symbol *symbol, struct zint_render_ring *ring, struct zint_render_ring **last_ring) {
+ if (!ring) return ZINT_ERROR_MEMORY;
+ if (*last_ring)
+ (*last_ring)->next = ring;
+ else
+ symbol->rendered->rings = ring; // first ring
+
+ *last_ring = ring;
+ return 1;
+}
+
+struct zint_render_hexagon *render_plot_create_hexagon(float x, float y, float height) {
+ struct zint_render_hexagon *hexagon;
+
+ hexagon = (struct zint_render_hexagon*) malloc(sizeof (struct zint_render_hexagon));
+ if (!hexagon) return NULL;
+ hexagon->next = NULL;
+ hexagon->x = x;
+ hexagon->y = y;
+ hexagon->height = height;
+
+ return hexagon;
+}
+
+int render_plot_add_hexagon(struct zint_symbol *symbol, struct zint_render_hexagon *hexagon, struct zint_render_hexagon **last_hexagon) {
+ if (!hexagon) return ZINT_ERROR_MEMORY;
+ if (*last_hexagon)
+ (*last_hexagon)->next = hexagon;
+ else
+ symbol->rendered->hexagons = hexagon; // first hexagon
+
+ *last_hexagon = hexagon;
+ return 1;
+}
+
+/*
+ * Add a string structure to the symbol.
+ * Coordinates assumed to be from top-center.
+ */
+int render_plot_add_string(struct zint_symbol *symbol,
+ unsigned char *text, float x, float y, float fsize, float width,
+ struct zint_render_string **last_string) {
+ struct zint_render_string *string;
+
+ string = (struct zint_render_string*) malloc(sizeof (struct zint_render_string));
+ string->next = NULL;
+ string->x = x;
+ string->y = y;
+ string->width = width;
+ string->fsize = fsize;
+ string->length = ustrlen(text);
+ string->text = (unsigned char*) malloc(sizeof (unsigned char) * (ustrlen(text) + 1));
+ ustrcpy(string->text, text);
+
+ if (*last_string)
+ (*last_string)->next = string;
+ else
+ symbol->rendered->strings = string; // First character
+ *last_string = string;
+
+ return 1;
+}
+
+/*
+ * Free the data structures created by render_plot
+ */
+void render_free(struct zint_symbol *symbol) {
+ if (symbol->rendered != NULL) {
+ struct zint_render_line *line;
+ struct zint_render_string *string;
+ struct zint_render_ring *ring;
+ struct zint_render_hexagon *hexagon;
+
+ // Free lines
+ line = symbol->rendered->lines;
+ while (line) {
+ struct zint_render_line *l = line;
+ line = line->next;
+ free(l);
+ }
+ // Free Strings
+ string = symbol->rendered->strings;
+ while (string) {
+ struct zint_render_string *s = string;
+ string = string->next;
+ free(s->text);
+ free(s);
+ }
+
+ // Free Rings
+ ring = symbol->rendered->rings;
+ while (ring) {
+ struct zint_render_ring *r = ring;
+ ring = ring->next;
+ free(r);
+ }
+
+ // Free Hexagons
+ hexagon = symbol->rendered->hexagons;
+ while (hexagon) {
+ struct zint_render_hexagon *h = hexagon;
+ hexagon = hexagon->next;
+ free(h);
+ }
+
+ // Free Render
+ free(symbol->rendered);
+ symbol->rendered = NULL;
+ }
+}
+
+
/*
libzint - the open source barcode library
- Copyright (C) 2008-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2008-2019 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
*/
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
#ifdef _MSC_VER
#include <malloc.h>
#endif
* combins(n,r): returns the number of Combinations of r selected from n:
* Combinations = n! / ((n - r)! * r!)
**********************************************************************/
-static int combins(int n, int r) {
+int combins(int n, int r) {
int i, j;
int maxDenom, minDenom;
int val;
* Return:
* static int widths[] = element widths
**********************************************************************/
-static void getRSSwidths(int val, int n, int elements, int maxWidth, int noNarrow) {
+void getRSSwidths(int val, int n, int elements, int maxWidth, int noNarrow) {
int bar;
int elmWidth;
int mxwElement;
}
/* GS1 DataBar-14 */
-INTERNAL int rss14(struct zint_symbol *symbol, unsigned char source[], int src_len) {
- int error_number = 0, i, j;
- large_int accum;
- uint64_t left_pair, right_pair;
- int data_character[4] = {0}, data_group[4] = {0}, v_odd[4], v_even[4];
+int rss14(struct zint_symbol *symbol, unsigned char source[], int src_len) {
+ int error_number = 0, i, j, mask;
+ short int accum[112], left_reg[112], right_reg[112], x_reg[112], y_reg[112];
+ int data_character[4], data_group[4], v_odd[4], v_even[4];
int data_widths[8][4], checksum, c_left, c_right, total_widths[46], writer;
- char latch;
+ char latch, temp[32];
int separator_row;
separator_row = 0;
break;
}
- large_load_str_u64(&accum, source, src_len);
+ for (i = 0; i < 112; i++) {
+ accum[i] = 0;
+ x_reg[i] = 0;
+ y_reg[i] = 0;
+ }
+
+ for (i = 0; i < 4; i++) {
+ data_character[i] = 0;
+ data_group[i] = 0;
+ }
+ binary_load(accum, (char*) source, src_len);
+ strcpy(temp, "10000000000000");
if (symbol->option_1 == 2) {
/* Add symbol linkage flag */
- large_add_u64(&accum, 10000000000000);
+ binary_load(y_reg, temp, strlen(temp));
+ binary_add(accum, y_reg);
+ for (i = 0; i < 112; i++) {
+ y_reg[i] = 0;
+ }
}
/* Calculate left and right pair values */
+ strcpy(temp, "4537077");
+ binary_load(x_reg, temp, strlen(temp));
+
+ for (i = 0; i < 24; i++) {
+ shiftup(x_reg);
+ }
+
+ for (i = 24; i >= 0; i--) {
+ y_reg[i] = !islarger(x_reg, accum);
+ if (y_reg[i] == 1) {
+ binary_subtract(accum, x_reg);
+ }
+ shiftdown(x_reg);
+ }
- right_pair = large_div_u64(&accum, 4537077);
- left_pair = large_lo(&accum);
+ for (i = 0; i < 112; i++) {
+ left_reg[i] = y_reg[i];
+ right_reg[i] = accum[i];
+ }
/* Calculate four data characters */
+ strcpy(temp, "1597");
+ binary_load(x_reg, temp, strlen(temp));
+ for (i = 0; i < 112; i++) {
+ accum[i] = left_reg[i];
+ }
- data_character[0] = left_pair / 1597;
- data_character[1] = left_pair % 1597;
+ for (i = 0; i < 24; i++) {
+ shiftup(x_reg);
+ }
+
+ for (i = 24; i >= 0; i--) {
+ y_reg[i] = !islarger(x_reg, accum);
+ if (y_reg[i] == 1) {
+ binary_subtract(accum, x_reg);
+ }
+ shiftdown(x_reg);
+ }
+
+ data_character[0] = 0;
+ data_character[1] = 0;
+ mask = 0x2000;
+ for (i = 13; i >= 0; i--) {
+ if (y_reg[i] == 1) {
+ data_character[0] += mask;
+ }
+ if (accum[i] == 1) {
+ data_character[1] += mask;
+ }
+ mask = mask >> 1;
+ }
+ strcpy(temp, "1597");
+ binary_load(x_reg, temp, strlen(temp));
+ for (i = 0; i < 112; i++) {
+ accum[i] = right_reg[i];
+ }
- data_character[2] = right_pair / 1597;
- data_character[3] = right_pair % 1597;
+ for (i = 0; i < 24; i++) {
+ shiftup(x_reg);
+ }
+
+ for (i = 24; i >= 0; i--) {
+ y_reg[i] = !islarger(x_reg, accum);
+ if (y_reg[i] == 1) {
+ binary_subtract(accum, x_reg);
+ }
+ shiftdown(x_reg);
+ }
+
+ data_character[2] = 0;
+ data_character[3] = 0;
+ mask = 0x2000;
+ for (i = 13; i >= 0; i--) {
+ if (y_reg[i] == 1) {
+ data_character[2] += mask;
+ }
+ if (accum[i] == 1) {
+ data_character[3] += mask;
+ }
+ mask = mask >> 1;
+ }
/* Calculate odd and even subset values */
}
symbol->row_height[symbol->rows] = 7;
/* separator pattern */
- for (i = 1; i < 46; i++) {
+ for (i = 4; i < 46; i++) {
if (module_is_set(symbol, symbol->rows - 2, i) == module_is_set(symbol, symbol->rows, i)) {
if (!(module_is_set(symbol, symbol->rows - 2, i))) {
set_module(symbol, symbol->rows - 1, i);
}
}
}
- unset_module(symbol, symbol->rows - 1, 1);
- unset_module(symbol, symbol->rows - 1, 2);
- unset_module(symbol, symbol->rows - 1, 3);
symbol->row_height[symbol->rows - 1] = 1;
if (symbol->symbology == BARCODE_RSS14STACK_CC) {
/* separator pattern for composite symbol */
}
/* GS1 DataBar Limited */
-INTERNAL int rsslimited(struct zint_symbol *symbol, unsigned char source[], int src_len) {
- int error_number = 0, i;
- large_int accum;
- uint64_t left_character, right_character;
+int rsslimited(struct zint_symbol *symbol, unsigned char source[], int src_len) {
+ int error_number = 0, i, mask;
+ short int accum[112], left_reg[112], right_reg[112], x_reg[112], y_reg[112];
int left_group, right_group, left_odd, left_even, right_odd, right_even;
- int left_widths[14], right_widths[14];
+ int left_character, right_character, left_widths[14], right_widths[14];
int checksum, check_elements[14], total_widths[46], writer, j, check_digit, count;
- char latch, hrt[15];
+ char latch, hrt[15], temp[32];
int separator_row;
separator_row = 0;
symbol->rows += 1;
}
- large_load_str_u64(&accum, source, src_len);
+ for (i = 0; i < 112; i++) {
+ accum[i] = 0;
+ x_reg[i] = 0;
+ y_reg[i] = 0;
+ }
+ binary_load(accum, (char*) source, src_len);
if (symbol->option_1 == 2) {
/* Add symbol linkage flag */
- large_add_u64(&accum, 2015133531096);
+ strcpy(temp, "2015133531096");
+ binary_load(y_reg, temp, strlen(temp));
+ binary_add(accum, y_reg);
+ for (i = 0; i < 112; i++) {
+ y_reg[i] = 0;
+ }
}
/* Calculate left and right pair values */
+ strcpy(temp, "2013571");
+ binary_load(x_reg, temp, strlen(temp));
- right_character = large_div_u64(&accum, 2013571);
- left_character = large_lo(&accum);
+ for (i = 0; i < 24; i++) {
+ shiftup(x_reg);
+ }
- if (left_character >= 1996939) {
- left_group = 6;
- left_character -= 1996939;
- } else if (left_character >= 1979845) {
- left_group = 5;
- left_character -= 1979845;
- } else if (left_character >= 1491021) {
- left_group = 4;
- left_character -= 1491021;
- } else if (left_character >= 1000776) {
- left_group = 3;
- left_character -= 1000776;
- } else if (left_character >= 820064) {
- left_group = 2;
- left_character -= 820064;
- } else if (left_character >= 183064) {
- left_group = 1;
- left_character -= 183064;
- } else {
- left_group = 0;
+ for (i = 24; i >= 0; i--) {
+ y_reg[i] = !islarger(x_reg, accum);
+ if (y_reg[i] == 1) {
+ binary_subtract(accum, x_reg);
+ }
+ shiftdown(x_reg);
}
- if (right_character >= 1996939) {
- right_group = 6;
- right_character -= 1996939;
- } else if (right_character >= 1979845) {
- right_group = 5;
- right_character -= 1979845;
- } else if (right_character >= 1491021) {
- right_group = 4;
- right_character -= 1491021;
- } else if (right_character >= 1000776) {
- right_group = 3;
- right_character -= 1000776;
- } else if (right_character >= 820064) {
- right_group = 2;
- right_character -= 820064;
- } else if (right_character >= 183064) {
+ for (i = 0; i < 112; i++) {
+ left_reg[i] = y_reg[i];
+ right_reg[i] = accum[i];
+ }
+
+ left_group = 0;
+ strcpy(temp, "183063");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(left_reg, accum)) {
+ left_group = 1;
+ }
+ strcpy(temp, "820063");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(left_reg, accum)) {
+ left_group = 2;
+ }
+ strcpy(temp, "1000775");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(left_reg, accum)) {
+ left_group = 3;
+ }
+ strcpy(temp, "1491020");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(left_reg, accum)) {
+ left_group = 4;
+ }
+ strcpy(temp, "1979844");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(left_reg, accum)) {
+ left_group = 5;
+ }
+ strcpy(temp, "1996938");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(left_reg, accum)) {
+ left_group = 6;
+ }
+ right_group = 0;
+ strcpy(temp, "183063");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(right_reg, accum)) {
right_group = 1;
- right_character -= 183064;
- } else {
- right_group = 0;
+ }
+ strcpy(temp, "820063");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(right_reg, accum)) {
+ right_group = 2;
+ }
+ strcpy(temp, "1000775");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(right_reg, accum)) {
+ right_group = 3;
+ }
+ strcpy(temp, "1491020");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(right_reg, accum)) {
+ right_group = 4;
+ }
+ strcpy(temp, "1979844");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(right_reg, accum)) {
+ right_group = 5;
+ }
+ strcpy(temp, "1996938");
+ binary_load(accum, temp, strlen(temp));
+ if (islarger(right_reg, accum)) {
+ right_group = 6;
+ }
+
+ switch (left_group) {
+ case 1: strcpy(temp, "183064");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(left_reg, accum);
+ break;
+ case 2: strcpy(temp, "820064");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(left_reg, accum);
+ break;
+ case 3: strcpy(temp, "1000776");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(left_reg, accum);
+ break;
+ case 4: strcpy(temp, "1491021");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(left_reg, accum);
+ break;
+ case 5: strcpy(temp, "1979845");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(left_reg, accum);
+ break;
+ case 6: strcpy(temp, "1996939");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(left_reg, accum);
+ break;
+ }
+
+ switch (right_group) {
+ case 1: strcpy(temp, "183064");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(right_reg, accum);
+ break;
+ case 2: strcpy(temp, "820064");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(right_reg, accum);
+ break;
+ case 3: strcpy(temp, "1000776");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(right_reg, accum);
+ break;
+ case 4: strcpy(temp, "1491021");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(right_reg, accum);
+ break;
+ case 5: strcpy(temp, "1979845");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(right_reg, accum);
+ break;
+ case 6: strcpy(temp, "1996939");
+ binary_load(accum, temp, strlen(temp));
+ binary_subtract(right_reg, accum);
+ break;
+ }
+
+ left_character = 0;
+ right_character = 0;
+ mask = 0x800000;
+ for (i = 23; i >= 0; i--) {
+ if (left_reg[i] == 1) {
+ left_character += mask;
+ }
+ if (right_reg[i] == 1) {
+ right_character += mask;
+ }
+ mask = mask >> 1;
}
left_odd = left_character / t_even_ltd[left_group];
}
/* Handles all data encodation from section 7.2.5 of ISO/IEC 24724 */
-static int rss_binary_string(struct zint_symbol *symbol, char source[], char binary_string[]) {
- int encoding_method, i, j, read_posn, last_digit, debug = (symbol->debug & ZINT_DEBUG_PRINT), mode = NUMERIC;
+int rss_binary_string(struct zint_symbol *symbol, char source[], char binary_string[]) {
+ int encoding_method, i, j, read_posn, last_digit, debug = symbol->debug, mode = NUMERIC;
int symbol_characters, characters_per_row;
#ifndef _MSC_VER
char general_field[strlen(source) + 1];
rest of the data (if any) goes into a general-purpose data compaction field */
j = 0;
- for (i = read_posn; i < (int) strlen(source); i++) {
+ for (i = read_posn; i < strlen(source); i++) {
general_field[j] = source[i];
j++;
}
}
/* GS1 DataBar Expanded */
-INTERNAL int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int src_len) {
+int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int src_len) {
int i, j, k, p, data_chars, vs[21], group[21], v_odd[21], v_even[21];
char substring[21][14], latch;
int char_widths[21][8], checksum, check_widths[8], c_group;
return 0;
}
+
+
+++ /dev/null
-/*
- libzint - the open source barcode library
- Copyright (C) 2008-2020 Robin Stuart <rstuart114@gmail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-/* vim: set ts=4 sw=4 et : */
-/*
- * Adapted from the GNU LIBICONV library and patched to make compatible with
- * https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/SHIFTJIS.TXT
- * with the exception of one duplicate mapping to reverse solidus 0x815F
- * and the mapping of user-defined PUA codepoints U+E000..E757.
- */
-/*
- * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc.
- * This file is part of the GNU LIBICONV Library.
- *
- * The GNU LIBICONV Library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * The GNU LIBICONV Library is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
- * If not, see <https://www.gnu.org/licenses/>.
- */
-#include <string.h>
-#ifdef _MSC_VER
-#include <malloc.h>
-#endif
-#include "common.h"
-#include "sjis.h"
-
-INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
-
-/*
- * JISX0201.1976-0 (libiconv-1.16/lib/jisx0201.h)
- */
-
-static int jisx0201_wctomb(unsigned int* r, unsigned int wc) {
- if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) {
- *r = wc;
- return 1;
- }
- if (wc == 0x00a5) {
- *r = 0x5c;
- return 1;
- }
- if (wc == 0x203e) {
- *r = 0x7e;
- return 1;
- }
- if (wc >= 0xff61 && wc < 0xffa0) {
- *r = wc - 0xfec0;
- return 1;
- }
- return 0;
-}
-
-/*
- * JISX0208.1990-0 (libiconv-1.16/lib/jisx0208.h)
- */
-
-/* ZINT: Table converted from JIS X 0208 to Shift JIS values using tools/cnv_sjis.php:
- *
-while ($line = fgets(STDIN)) {
- echo preg_replace_callback('/0x([0-9a-f]{4})/', function ($matches) {
- $dec = hexdec($matches[1]);
- $c1 = $dec >> 8;
- $c2 = ($dec & 0xFF);
- $t1 = ($c1 - 0x21) >> 1;
- $t2 = ((($c1 - 0x21) & 1) ? 0x5e : 0) + ($c2 - 0x21);
- $r = (($t1 < 0x1f ? ($t1 + 0x81) : ($t1 + 0xc1)) << 8) | ($t2 < 0x3f ? ($t2 + 0x40) : ($t2 + 0x41));
- return '0x' . dechex($r);
- }, $line);
-}
- */
-static const unsigned short jisx0208_2charset[6879] = {
- 0x8191, 0x8192, 0x8198, 0x814e, 0x81ca, 0x818b, 0x817d, 0x814c,
- 0x81f7, 0x817e, 0x8180, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3,
- 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab,
- 0x83ac, 0x83ad, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b2, 0x83b3,
- 0x83b4, 0x83b5, 0x83b6, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3,
- 0x83c4, 0x83c5, 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb,
- 0x83cc, 0x83cd, 0x83ce, 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3,
- 0x83d4, 0x83d5, 0x83d6, 0x8446, 0x8440, 0x8441, 0x8442, 0x8443,
- 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a, 0x844b, 0x844c,
- 0x844d, 0x844e, 0x844f, 0x8450, 0x8451, 0x8452, 0x8453, 0x8454,
- 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845a, 0x845b, 0x845c,
- 0x845d, 0x845e, 0x845f, 0x8460, 0x8470, 0x8471, 0x8472, 0x8473,
- 0x8474, 0x8475, 0x8477, 0x8478, 0x8479, 0x847a, 0x847b, 0x847c,
- 0x847d, 0x847e, 0x8480, 0x8481, 0x8482, 0x8483, 0x8484, 0x8485,
- 0x8486, 0x8487, 0x8488, 0x8489, 0x848a, 0x848b, 0x848c, 0x848d,
- 0x848e, 0x848f, 0x8490, 0x8491, 0x8476, 0x815d, 0x815c, 0x8161,
- 0x8165, 0x8166, 0x8167, 0x8168, 0x81f5, 0x81f6, 0x8164, 0x8163,
- 0x81f1, 0x818c, 0x818d, 0x81a6, 0x818e, 0x81f0, 0x81a9, 0x81aa,
- 0x81a8, 0x81ab, 0x81cb, 0x81cc, 0x81cd, 0x81dd, 0x81ce, 0x81de,
- 0x81b8, 0x81b9, 0x817c, 0x81e3, 0x81e5, 0x8187, 0x81da, 0x81c8,
- 0x81c9, 0x81bf, 0x81be, 0x81e7, 0x81e8, 0x8188, 0x81e6, 0x81e4,
- 0x81e0, 0x8182, 0x81df, 0x8185, 0x8186, 0x81e1, 0x81e2, 0x81bc,
- 0x81bd, 0x81ba, 0x81bb, 0x81db, 0x81dc, 0x849f, 0x84aa, 0x84a0,
- 0x84ab, 0x84a1, 0x84ac, 0x84a2, 0x84ad, 0x84a4, 0x84af, 0x84a3,
- 0x84ae, 0x84a5, 0x84ba, 0x84b5, 0x84b0, 0x84a7, 0x84bc, 0x84b7,
- 0x84b2, 0x84a6, 0x84b6, 0x84bb, 0x84b1, 0x84a8, 0x84b8, 0x84bd,
- 0x84b3, 0x84a9, 0x84b9, 0x84be, 0x84b4, 0x81a1, 0x81a0, 0x81a3,
- 0x81a2, 0x81a5, 0x81a4, 0x819f, 0x819e, 0x819b, 0x819d, 0x819c,
- 0x81fc, 0x819a, 0x8199, 0x818a, 0x8189, 0x81f4, 0x81f3, 0x81f2,
- 0x8140, 0x8141, 0x8142, 0x8156, 0x8158, 0x8159, 0x815a, 0x8171,
- 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179,
- 0x817a, 0x81a7, 0x81ac, 0x816b, 0x816c, 0x8160, 0x829f, 0x82a0,
- 0x82a1, 0x82a2, 0x82a3, 0x82a4, 0x82a5, 0x82a6, 0x82a7, 0x82a8,
- 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0x82ae, 0x82af, 0x82b0,
- 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0x82b7, 0x82b8,
- 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0,
- 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8,
- 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d0,
- 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5, 0x82d6, 0x82d7, 0x82d8,
- 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0,
- 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8,
- 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed, 0x82ee, 0x82ef, 0x82f0,
- 0x82f1, 0x814a, 0x814b, 0x8154, 0x8155, 0x8340, 0x8341, 0x8342,
- 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a,
- 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0x8352,
- 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359, 0x835a,
- 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, 0x8360, 0x8361, 0x8362,
- 0x8363, 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836a,
- 0x836b, 0x836c, 0x836d, 0x836e, 0x836f, 0x8370, 0x8371, 0x8372,
- 0x8373, 0x8374, 0x8375, 0x8376, 0x8377, 0x8378, 0x8379, 0x837a,
- 0x837b, 0x837c, 0x837d, 0x837e, 0x8380, 0x8381, 0x8382, 0x8383,
- 0x8384, 0x8385, 0x8386, 0x8387, 0x8388, 0x8389, 0x838a, 0x838b,
- 0x838c, 0x838d, 0x838e, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393,
- 0x8394, 0x8395, 0x8396, 0x8145, 0x815b, 0x8152, 0x8153, 0x88ea,
- 0x929a, 0x8eb5, 0x969c, 0x8fe4, 0x8e4f, 0x8fe3, 0x89ba, 0x9573,
- 0x975e, 0x98a0, 0x894e, 0x8a8e, 0x98a1, 0x90a2, 0x99c0, 0x8b75,
- 0x95b8, 0x8fe5, 0x97bc, 0x95c0, 0x98a2, 0x9286, 0x98a3, 0x8bf8,
- 0x98a4, 0x8adb, 0x924f, 0x8ee5, 0x98a5, 0x98a6, 0x98a7, 0x9454,
- 0x8b76, 0x9456, 0x93e1, 0x8cc1, 0x9652, 0xe568, 0x98a8, 0x8fe6,
- 0x98a9, 0x89b3, 0x8be3, 0x8cee, 0x96e7, 0x9ba4, 0x9790, 0x93fb,
- 0x8aa3, 0x8b54, 0x98aa, 0x98ab, 0x97b9, 0x975c, 0x9188, 0x98ad,
- 0x8e96, 0x93f1, 0x98b0, 0x895d, 0x8cdd, 0x8cdc, 0x88e4, 0x986a,
- 0x9869, 0x8db1, 0x889f, 0x98b1, 0x98b2, 0x98b3, 0x9653, 0x98b4,
- 0x8cf0, 0x88e5, 0x9692, 0x8b9c, 0x8b9d, 0x8b9e, 0x92e0, 0x97ba,
- 0x98b5, 0x98b6, 0x98b7, 0x906c, 0x8f59, 0x906d, 0x98bc, 0x98ba,
- 0x98bb, 0x8b77, 0x8da1, 0x89ee, 0x98b9, 0x98b8, 0x95a7, 0x8e65,
- 0x8e64, 0x91bc, 0x98bd, 0x9574, 0x90e5, 0x8157, 0x98be, 0x98c0,
- 0x91e3, 0x97df, 0x88c8, 0x98bf, 0x89bc, 0x8bc2, 0x9287, 0x8c8f,
- 0x98c1, 0x9443, 0x8ae9, 0x98c2, 0x88c9, 0x8cde, 0x8aea, 0x959a,
- 0x94b0, 0x8b78, 0x89ef, 0x98e5, 0x9360, 0x948c, 0x98c4, 0x94ba,
- 0x97e0, 0x904c, 0x8e66, 0x8e97, 0x89be, 0x92cf, 0x9241, 0x98c8,
- 0x88ca, 0x92e1, 0x8f5a, 0x8db2, 0x9743, 0x91cc, 0x89bd, 0x98c7,
- 0x975d, 0x98c3, 0x98c5, 0x8dec, 0x98c6, 0x9b43, 0x98ce, 0x98d1,
- 0x98cf, 0x89c0, 0x95b9, 0x98c9, 0x98cd, 0x8cf1, 0x8e67, 0x8aa4,
- 0x98d2, 0x98ca, 0x97e1, 0x8e98, 0x98cb, 0x98d0, 0x98d3, 0x98cc,
- 0x8b9f, 0x88cb, 0x8ba0, 0x89bf, 0x9b44, 0x9699, 0x958e, 0x8cf2,
- 0x904e, 0x97b5, 0x95d6, 0x8c57, 0x91a3, 0x89e2, 0x8f72, 0x98d7,
- 0x98dc, 0x98da, 0x98d5, 0x91ad, 0x98d8, 0x98db, 0x98d9, 0x95db,
- 0x98d6, 0x904d, 0x9693, 0x98dd, 0x98de, 0x8f43, 0x98eb, 0x946f,
- 0x9555, 0x98e6, 0x95ee, 0x89b4, 0x98ea, 0x98e4, 0x98ed, 0x9171,
- 0x8cc2, 0x947b, 0xe0c5, 0x98ec, 0x937c, 0x98e1, 0x8cf4, 0x8cf3,
- 0x98df, 0x8ed8, 0x98e7, 0x95ed, 0x926c, 0x98e3, 0x8c91, 0x98e0,
- 0x98e8, 0x98e2, 0x97cf, 0x98e9, 0x9860, 0x8be4, 0x8c90, 0x98ee,
- 0x98ef, 0x98f3, 0x88cc, 0x95ce, 0x98f2, 0x98f1, 0x98f5, 0x98f4,
- 0x92e2, 0x8c92, 0x98f6, 0x8ec3, 0x91a4, 0x92e3, 0x8bf4, 0x98f7,
- 0x8b55, 0x98f8, 0x98fa, 0x9654, 0x8c86, 0x8e50, 0x94f5, 0x98f9,
- 0x8dc3, 0x9762, 0x98fc, 0x9942, 0x98fb, 0x8dc2, 0x8f9d, 0x8c58,
- 0x9943, 0x8bcd, 0x9940, 0x9941, 0x93ad, 0x919c, 0x8ba1, 0x966c,
- 0x9944, 0x97bb, 0x9945, 0x9948, 0x9946, 0x916d, 0x9947, 0x9949,
- 0x994b, 0x994a, 0x95c6, 0x8b56, 0x994d, 0x994e, 0x89ad, 0x994c,
- 0x8ef2, 0x9951, 0x9950, 0x994f, 0x98d4, 0x9952, 0x8f9e, 0x9953,
- 0x9744, 0x96d7, 0x9955, 0x9954, 0x9957, 0x9956, 0x9958, 0x9959,
- 0x88f2, 0x8cb3, 0x8c5a, 0x8f5b, 0x929b, 0x8ba2, 0x90e6, 0x8cf5,
- 0x8d8e, 0x995b, 0x96c6, 0x9365, 0x8e99, 0x995a, 0x995c, 0x937d,
- 0x8a95, 0x995d, 0x93fc, 0x9153, 0x995f, 0x9960, 0x94aa, 0x8cf6,
- 0x985a, 0x9961, 0x8ba4, 0x95ba, 0x91b4, 0x8bef, 0x9354, 0x8c93,
- 0x9962, 0x9963, 0x93e0, 0x897e, 0x9966, 0x8dfb, 0x9965, 0x8dc4,
- 0x9967, 0xe3ec, 0x9968, 0x9660, 0x9969, 0x996a, 0x996b, 0x8fe7,
- 0x8eca, 0x8aa5, 0x996e, 0x996c, 0x96bb, 0x996d, 0x9579, 0x996f,
- 0x9970, 0x9971, 0x937e, 0x9975, 0x9973, 0x9974, 0x9972, 0x8de1,
- 0x9976, 0x96e8, 0x97e2, 0x9977, 0x90a6, 0x9978, 0x8f79, 0x9979,
- 0x929c, 0x97bd, 0x9380, 0x99c3, 0x997a, 0xeaa3, 0x8bc3, 0x997b,
- 0x967d, 0x8f88, 0x91fa, 0x997d, 0x93e2, 0x997e, 0x9980, 0x8a4d,
- 0x9981, 0x8ba5, 0x93ca, 0x899a, 0x8f6f, 0x949f, 0x9982, 0x9381,
- 0x906e, 0x9983, 0x95aa, 0x90d8, 0x8aa0, 0x8aa7, 0x9984, 0x9986,
- 0x8c59, 0x9985, 0x97f1, 0x8f89, 0x94bb, 0x95ca, 0x9987, 0x9798,
- 0x9988, 0x9989, 0x939e, 0x998a, 0x90a7, 0x8dfc, 0x8c94, 0x998b,
- 0x8e68, 0x8d8f, 0x92e4, 0x998d, 0x91a5, 0x8ded, 0x998e, 0x998f,
- 0x914f, 0x998c, 0x9991, 0x9655, 0x8d84, 0x9990, 0x8c95, 0x8ddc,
- 0x948d, 0x9994, 0x9992, 0x959b, 0x8fe8, 0x999b, 0x8a84, 0x9995,
- 0x9993, 0x916e, 0x9997, 0x9996, 0x8a63, 0x8c80, 0x999c, 0x97ab,
- 0x9998, 0x999d, 0x999a, 0x9999, 0x97cd, 0x8cf7, 0x89c1, 0x97f2,
- 0x8f95, 0x9377, 0x8d85, 0x99a0, 0x99a1, 0x97e3, 0x984a, 0x99a3,
- 0x8cf8, 0x99a2, 0x8a4e, 0x99a4, 0x9675, 0x92ba, 0x9745, 0x95d7,
- 0x99a5, 0xe8d3, 0x93ae, 0x99a6, 0x8aa8, 0x96b1, 0x8f9f, 0x99a7,
- 0x95e5, 0x99ab, 0x90a8, 0x99a8, 0x8bce, 0x99a9, 0x8aa9, 0x8c4d,
- 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x8ed9, 0x8cf9, 0x96dc, 0x96e6,
- 0x93f5, 0x95ef, 0x99b0, 0x99b1, 0x99b3, 0x99b5, 0x99b4, 0x99b6,
- 0x89bb, 0x966b, 0x8dfa, 0x99b7, 0x9178, 0x8fa0, 0x8ba7, 0x99b8,
- 0x94d9, 0x99b9, 0x99ba, 0x99bb, 0x99bc, 0x9543, 0x8be6, 0x88e3,
- 0x93bd, 0x99bd, 0x8f5c, 0x90e7, 0x99bf, 0x99be, 0x8fa1, 0x8cdf,
- 0x99c1, 0x94bc, 0x99c2, 0x94da, 0x91b2, 0x91ec, 0x8ba6, 0x93ec,
- 0x9250, 0x948e, 0x966d, 0x99c4, 0x90e8, 0x8c54, 0x99c5, 0x99c6,
- 0x894b, 0x88f3, 0x8aeb, 0x91a6, 0x8b70, 0x9791, 0x99c9, 0x89b5,
- 0x99c8, 0x8ba8, 0x99ca, 0x96ef, 0x99cb, 0x97d0, 0x8cfa, 0x8cb4,
- 0x99cc, 0x99ce, 0x99cd, 0x907e, 0x8958, 0x897d, 0x99cf, 0x99d0,
- 0x8cb5, 0x99d1, 0x8b8e, 0x8e51, 0x99d2, 0x9694, 0x8db3, 0x8b79,
- 0x9746, 0x916f, 0x94bd, 0x8efb, 0x8f66, 0x8ee6, 0x8ef3, 0x8f96,
- 0x94be, 0x99d5, 0x8962, 0x9170, 0x8cfb, 0x8cc3, 0x8be5, 0x99d9,
- 0x9240, 0x91fc, 0x8ba9, 0x8fa2, 0x99da, 0x99d8, 0x89c2, 0x91e4,
- 0x8eb6, 0x8e6a, 0x8945, 0x8a90, 0x8d86, 0x8e69, 0x99db, 0x99dc,
- 0x8b68, 0x8a65, 0x8d87, 0x8b67, 0x92dd, 0x8944, 0x93af, 0x96bc,
- 0x8d40, 0x9799, 0x9366, 0x8cfc, 0x8c4e, 0x99e5, 0x8be1, 0x9669,
- 0x94db, 0x99e4, 0x8adc, 0x99df, 0x99e0, 0x99e2, 0x99e3, 0x8b7a,
- 0x9081, 0x95ab, 0x99e1, 0x99dd, 0x8ce1, 0x99de, 0x9843, 0x95f0,
- 0x92e6, 0x8ce0, 0x8d90, 0x99e6, 0x93db, 0x99ea, 0x8efc, 0x8ef4,
- 0x99ed, 0x99eb, 0x96a1, 0x99e8, 0x99f1, 0x99ec, 0x99ef, 0x8cc4,
- 0x96bd, 0x99f0, 0x99f2, 0x99f4, 0x8dee, 0x9861, 0x99e9, 0x99e7,
- 0x99f3, 0x99ee, 0x99f6, 0x9a42, 0x99f8, 0x99fc, 0x9a40, 0x99f9,
- 0x9a5d, 0x8de7, 0x8a50, 0x99f7, 0x9a44, 0x88f4, 0x9a43, 0x88a3,
- 0x9569, 0x9a41, 0x99fa, 0x99f5, 0x99fb, 0x8dc6, 0x9a45, 0x88f5,
- 0x9a4e, 0x9a46, 0x9a47, 0x8fa3, 0x9689, 0x9a4c, 0x9a4b, 0x934e,
- 0x9a4d, 0x9a4a, 0x8953, 0x8db4, 0x904f, 0x9a48, 0x9382, 0x9a49,
- 0x88a0, 0x9a53, 0x9742, 0x8fa5, 0x9a59, 0x9a58, 0x9a4f, 0x91c1,
- 0x9a50, 0x91ed, 0x9a55, 0x8fa4, 0x9a52, 0x96e2, 0x8c5b, 0x9a56,
- 0x9a57, 0x9a54, 0x9a5a, 0x9a51, 0x9a60, 0x9a65, 0x9a61, 0x9a5c,
- 0x9a66, 0x9150, 0x9a68, 0x8d41, 0x9a5e, 0x929d, 0x9a62, 0x9a5b,
- 0x8aab, 0x8aec, 0x8a85, 0x9a63, 0x9a5f, 0x8c96, 0x9a69, 0x9a67,
- 0x9172, 0x8b69, 0x8baa, 0x9a64, 0x8bf2, 0x8963, 0x9a6d, 0x9a6b,
- 0x9aa5, 0x9a70, 0x9a6a, 0x9a6e, 0x9a6c, 0x8e6b, 0x9a6f, 0x9a72,
- 0x9a77, 0x9a75, 0x9a74, 0x9251, 0x89c3, 0x9a71, 0x9a73, 0x8fa6,
- 0x8952, 0x9a76, 0x89dc, 0x9a82, 0x8ffa, 0x9a7d, 0x9a7b, 0x9a7c,
- 0x9a7e, 0x895c, 0x9158, 0x9a78, 0x9a79, 0x8a9a, 0x9a81, 0x8aed,
- 0x9a84, 0x9a80, 0x9a83, 0x95ac, 0x93d3, 0x94b6, 0x9a86, 0x9a85,
- 0x8a64, 0x9a87, 0x9a8a, 0x9a89, 0x9a88, 0x9458, 0x9a8b, 0x9a8c,
- 0x9a8e, 0x9a8d, 0x9a90, 0x9a93, 0x9a91, 0x9a8f, 0x9a92, 0x9a94,
- 0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9964, 0x8efa, 0x8e6c, 0x89f1,
- 0x88f6, 0x9263, 0x9a99, 0x8da2, 0x88cd, 0x907d, 0x9a9a, 0x8cc5,
- 0x8d91, 0x9a9c, 0x9a9b, 0x95de, 0x9a9d, 0x9a9f, 0x9a9e, 0x9aa0,
- 0x9aa1, 0x8c97, 0x8980, 0x9aa2, 0x9aa4, 0x9aa3, 0x9aa6, 0x9379,
- 0x9aa7, 0x88b3, 0x8ddd, 0x8c5c, 0x926e, 0x9aa8, 0x9aa9, 0x9aab,
- 0x9aac, 0x8de2, 0x8bcf, 0x9656, 0x9aaa, 0x9aad, 0x8dbf, 0x8d42,
- 0x9ab1, 0x8da3, 0x9252, 0x9aae, 0x92d8, 0x9ab2, 0x9082, 0x9ab0,
- 0x9ab3, 0x8c5e, 0x9ab4, 0x9ab5, 0x8d43, 0x8a5f, 0x9ab7, 0x9ab8,
- 0x9ab9, 0x9ab6, 0x9aaf, 0x9aba, 0x9abb, 0x9684, 0x8fe9, 0x9abd,
- 0x9abe, 0x9abc, 0x9ac0, 0x9457, 0x88e6, 0x9575, 0x9ac1, 0x8ffb,
- 0x8eb7, 0x947c, 0x8aee, 0x8de9, 0x9678, 0x93b0, 0x8c98, 0x91cd,
- 0x9abf, 0x9ac2, 0x91c2, 0x9ac3, 0x9ac4, 0x9ac6, 0x92e7, 0x8aac,
- 0xea9f, 0x8981, 0x95f1, 0x8fea, 0x9367, 0x8de4, 0x9acc, 0x95bb,
- 0x97db, 0x89f2, 0x9ac8, 0x9159, 0x9acb, 0x9383, 0x9368, 0x9384,
- 0x94b7, 0x92cb, 0x8dc7, 0x9ac7, 0x8996, 0x9355, 0x9ac9, 0x9ac5,
- 0x906f, 0x9acd, 0x8f6d, 0x8bab, 0x9ace, 0x95e6, 0x919d, 0x92c4,
- 0x9ad0, 0x966e, 0x9ad1, 0x9ad6, 0x95ad, 0x9ad5, 0x9acf, 0x9ad2,
- 0x9ad4, 0x8da4, 0x95c7, 0x9ad7, 0x9264, 0x89f3, 0x8feb, 0x9ad9,
- 0x9ad8, 0x8d88, 0x9ada, 0x9adc, 0x9adb, 0x9ade, 0x9ad3, 0x9ae0,
- 0x9adf, 0x9add, 0x8e6d, 0x9070, 0x9173, 0x9ae1, 0x90ba, 0x88eb,
- 0x9484, 0x92d9, 0x9ae3, 0x9ae2, 0x9ae4, 0x9ae5, 0x9ae6, 0x9ae7,
- 0x95cf, 0x9ae8, 0x89c4, 0x9ae9, 0x975b, 0x8a4f, 0x99c7, 0x8f67,
- 0x91bd, 0x9aea, 0x96e9, 0x96b2, 0x9aec, 0x91e5, 0x9356, 0x91be,
- 0x9576, 0x9aed, 0x9aee, 0x899b, 0x8eb8, 0x9aef, 0x88ce, 0x9af0,
- 0x9af1, 0x8982, 0x8aef, 0x93de, 0x95f2, 0x9af5, 0x9174, 0x9af4,
- 0x8c5f, 0x967a, 0x9af3, 0x9385, 0x9af7, 0x9af6, 0x9af9, 0x9af8,
- 0x899c, 0x9afa, 0x8fa7, 0x9afc, 0x9244, 0x9afb, 0x95b1, 0x8f97,
- 0x937a, 0x9b40, 0x8d44, 0x9b41, 0x9440, 0x94dc, 0x96cf, 0x9444,
- 0x9b4a, 0x8b57, 0x9764, 0x96ad, 0x9baa, 0x9b42, 0x9b45, 0x91c3,
- 0x9657, 0x9369, 0x9b46, 0x9685, 0x8dc8, 0x8fa8, 0x9b47, 0x8e6f,
- 0x8e6e, 0x88b7, 0x8cc6, 0x90a9, 0x88cf, 0x9b4b, 0x9b4c, 0x9b49,
- 0x8957, 0x8aad, 0x9b48, 0x96c3, 0x9550, 0x88a6, 0x88f7, 0x8e70,
- 0x88d0, 0x88a1, 0x9b51, 0x9b4f, 0x96ba, 0x9b52, 0x9b50, 0x9b4e,
- 0x9050, 0x9b4d, 0x95d8, 0x8ce2, 0x9b56, 0x9b57, 0x8fa9, 0x9b53,
- 0x984b, 0x946b, 0x9b55, 0x8da5, 0x9b58, 0x9577, 0x9b59, 0x9b54,
- 0x96b9, 0x947d, 0x9b5a, 0x9551, 0x9b5b, 0x9b5f, 0x9b5c, 0x89c5,
- 0x9b5e, 0x8eb9, 0x9b5d, 0x8c99, 0x9b6b, 0x9b64, 0x9b61, 0x9284,
- 0x9b60, 0x9b62, 0x9b63, 0x9b65, 0x9b66, 0x8af0, 0x9b68, 0x9b67,
- 0x9b69, 0x8fec, 0x9b6c, 0x92da, 0x8964, 0x9b6a, 0x9b6d, 0x9b6e,
- 0x9b71, 0x9b6f, 0x9b70, 0x8e71, 0x9b72, 0x8d45, 0x9b73, 0x8e9a,
- 0x91b6, 0x9b74, 0x9b75, 0x8e79, 0x8d46, 0x96d0, 0x8b47, 0x8cc7,
- 0x9b76, 0x8a77, 0x9b77, 0x91b7, 0x9b78, 0x9ba1, 0x9b79, 0x9b7a,
- 0x9b7b, 0x9b7d, 0x9b7e, 0x9b80, 0x91ee, 0x8946, 0x8ee7, 0x88c0,
- 0x9176, 0x8aae, 0x8eb3, 0x8d47, 0x9386, 0x8f40, 0x8aaf, 0x9288,
- 0x92e8, 0x88b6, 0x8b58, 0x95f3, 0x8ec0, 0x8b71, 0x90e9, 0x8eba,
- 0x9747, 0x9b81, 0x8b7b, 0x8dc9, 0x8a51, 0x8983, 0x8faa, 0x89c6,
- 0x9b82, 0x9765, 0x8f68, 0x8ee2, 0x9b83, 0x8af1, 0x93d0, 0x96a7,
- 0x9b84, 0x9b85, 0x9578, 0x9b87, 0x8aa6, 0x8bf5, 0x9b86, 0x8ab0,
- 0x9051, 0x9b8b, 0x8e40, 0x89c7, 0x9b8a, 0x9b88, 0x9b8c, 0x9b89,
- 0x944a, 0x9ecb, 0x9052, 0x9b8d, 0x97be, 0x9b8e, 0x9b90, 0x929e,
- 0x9b8f, 0x90a1, 0x8e9b, 0x91ce, 0x8ef5, 0x9595, 0x90ea, 0x8ecb,
- 0x9b91, 0x8fab, 0x9b92, 0x9b93, 0x88d1, 0x91b8, 0x9071, 0x9b94,
- 0x93b1, 0x8fac, 0x8fad, 0x9b95, 0x90eb, 0x8fae, 0x9b96, 0x9b97,
- 0x96de, 0x9b98, 0x8bc4, 0x8f41, 0x9b99, 0x9b9a, 0x8eda, 0x904b,
- 0x93f2, 0x9073, 0x94f6, 0x9441, 0x8bc7, 0x9b9b, 0x8b8f, 0x9b9c,
- 0x8bfc, 0x93cd, 0x89ae, 0x8e72, 0x9b9d, 0x9ba0, 0x9b9f, 0x8bfb,
- 0x9b9e, 0x9357, 0x91ae, 0x936a, 0x8ec6, 0x9177, 0x979a, 0x9ba2,
- 0x9ba3, 0x93d4, 0x8e52, 0x9ba5, 0x9ba6, 0x9ba7, 0x8af2, 0x9ba8,
- 0x9ba9, 0x89aa, 0x915a, 0x8ae2, 0x9bab, 0x96a6, 0x91d0, 0x8a78,
- 0x9bad, 0x9baf, 0x8add, 0x9bac, 0x9bae, 0x9bb1, 0x9bb0, 0x9bb2,
- 0x9bb3, 0x93bb, 0x8bac, 0x89e3, 0x9bb4, 0x9bb9, 0x9bb7, 0x95f5,
- 0x95f4, 0x9387, 0x9bb6, 0x8f73, 0x9bb5, 0x9092, 0x9bba, 0x8de8,
- 0x9bc0, 0x9bc1, 0x9bbb, 0x8a52, 0x9bbc, 0x9bc5, 0x9bc4, 0x9bc3,
- 0x9bbf, 0x9bbe, 0x9bc2, 0x95f6, 0x9bc9, 0x9bc6, 0x9bc8, 0x9792,
- 0x9bc7, 0x9bbd, 0x9093, 0x9bca, 0x8db5, 0x9bcb, 0x9bcc, 0x9bcf,
- 0x9bce, 0x9bcd, 0x9388, 0x9bb8, 0x9bd5, 0x9bd1, 0x9bd0, 0x9bd2,
- 0x9bd3, 0x9bd6, 0x97e4, 0x9bd7, 0x9bd4, 0x9bd8, 0x8ade, 0x9bd9,
- 0x9bdb, 0x9bda, 0x9bdc, 0x9bdd, 0x90ec, 0x8f42, 0x8f84, 0x9183,
- 0x8d48, 0x8db6, 0x8d49, 0x8b90, 0x9bde, 0x8db7, 0x8cc8, 0x9bdf,
- 0x96a4, 0x9462, 0x9be0, 0x8d4a, 0x8aaa, 0x9246, 0x8bd0, 0x8e73,
- 0x957a, 0x94bf, 0x9be1, 0x8af3, 0x9be4, 0x929f, 0x9be3, 0x9be2,
- 0x9be5, 0x92e9, 0x9083, 0x8e74, 0x90c8, 0x91d1, 0x8b41, 0x92a0,
- 0x9be6, 0x9be7, 0x8fed, 0x9658, 0x9bea, 0x9be9, 0x9be8, 0x959d,
- 0x9bf1, 0x9679, 0x9beb, 0x9bed, 0x968b, 0x9bec, 0x9bee, 0x94a6,
- 0x9bef, 0x95bc, 0x9bf0, 0x8ab1, 0x95bd, 0x944e, 0x9bf2, 0x9bf3,
- 0x8d4b, 0x8ab2, 0x9bf4, 0x8cb6, 0x9763, 0x9748, 0x8af4, 0x9bf6,
- 0x92a1, 0x8d4c, 0x8faf, 0x94dd, 0x8fb0, 0x8f98, 0x92ea, 0x95f7,
- 0x9358, 0x8d4d, 0x957b, 0x9bf7, 0x9378, 0x8dc0, 0x8cc9, 0x92eb,
- 0x88c1, 0x8f8e, 0x8d4e, 0x9766, 0x9bf8, 0x9bf9, 0x9470, 0x9bfa,
- 0x97f5, 0x984c, 0x9bfc, 0x9bfb, 0x8a66, 0x9c40, 0x9c43, 0x9c44,
- 0x9c42, 0x955f, 0x8fb1, 0x9c46, 0x9c45, 0x9c41, 0x9c47, 0x9c48,
- 0x9c49, 0x9c4c, 0x9c4a, 0x9c4b, 0x9c4d, 0x8984, 0x92ec, 0x9c4e,
- 0x8c9a, 0x89f4, 0x9455, 0x9c4f, 0x93f9, 0x95d9, 0x9c50, 0x984d,
- 0x9c51, 0x95be, 0x9c54, 0x989f, 0x98af, 0x8eae, 0x93f3, 0x9c55,
- 0x8b7c, 0x92a2, 0x88f8, 0x9c56, 0x95a4, 0x8d4f, 0x926f, 0x92ed,
- 0x96ed, 0x8cb7, 0x8cca, 0x9c57, 0x9c58, 0x9c5e, 0x8ee3, 0x92a3,
- 0x8bad, 0x9c59, 0x954a, 0x9265, 0x9c5a, 0x9c5b, 0x8bae, 0x9c5c,
- 0x9c5d, 0x9c5f, 0x9396, 0x9c60, 0x9c61, 0x9c62, 0x9c53, 0x9c52,
- 0x9c63, 0x8c60, 0x9546, 0x8dca, 0x9556, 0x92a4, 0x956a, 0x9c64,
- 0x8fb2, 0x8965, 0x9c65, 0x9c66, 0x96f0, 0x94de, 0x9c69, 0x899d,
- 0x90aa, 0x9c68, 0x9c67, 0x8c61, 0x91d2, 0x9c6d, 0x9c6b, 0x9c6a,
- 0x97a5, 0x8ce3, 0x8f99, 0x9c6c, 0x936b, 0x8f5d, 0x93be, 0x9c70,
- 0x9c6f, 0x9c6e, 0x9c71, 0x8ce4, 0x9c72, 0x959c, 0x8f7a, 0x9c73,
- 0x94f7, 0x93bf, 0x92a5, 0x934f, 0x9c74, 0x8b4a, 0x9053, 0x954b,
- 0x8af5, 0x9445, 0x9c75, 0x8e75, 0x9659, 0x965a, 0x899e, 0x9c7a,
- 0x9289, 0x9c77, 0x89f5, 0x9cab, 0x9c79, 0x944f, 0x9c78, 0x9c76,
- 0x8d9a, 0x9c7c, 0x9c83, 0x9c89, 0x9c81, 0x937b, 0x9c86, 0x957c,
- 0x9c80, 0x9c85, 0x97e5, 0x8e76, 0x91d3, 0x9c7d, 0x8b7d, 0x9c88,
- 0x90ab, 0x8985, 0x9c82, 0x89f6, 0x9c87, 0x8baf, 0x9c84, 0x9c8a,
- 0x9c8c, 0x9c96, 0x9c94, 0x9c91, 0x9c90, 0x97f6, 0x9c92, 0x8bb0,
- 0x8d50, 0x8f9a, 0x9c99, 0x9c8b, 0x9c8f, 0x9c7e, 0x89f8, 0x9c93,
- 0x9c95, 0x9270, 0x8da6, 0x89b6, 0x9c8d, 0x9c98, 0x9c97, 0x8bb1,
- 0x91a7, 0x8a86, 0x8c62, 0x9c8e, 0x9c9a, 0x9c9d, 0x9c9f, 0x8ebb,
- 0x9ca5, 0x92ee, 0x9c9b, 0x9ca3, 0x89f7, 0x9ca1, 0x9ca2, 0x9c9e,
- 0x9ca0, 0x8ce5, 0x9749, 0x8ab3, 0x8978, 0x9ca4, 0x9459, 0x88ab,
- 0x94df, 0x9c7b, 0x9caa, 0x9cae, 0x96e3, 0x9ca7, 0x9389, 0x9cac,
- 0x8fee, 0x9cad, 0x93d5, 0x9866, 0x9ca9, 0x9caf, 0x8d9b, 0x90c9,
- 0x88d2, 0x9ca8, 0x9ca6, 0x9179, 0x9c9c, 0x8e53, 0x91c4, 0x9cbb,
- 0x917a, 0x9cb6, 0x9cb3, 0x9cb4, 0x8ee4, 0x9cb7, 0x9cba, 0x9cb5,
- 0x8f44, 0x9cb8, 0x9cb2, 0x96fa, 0x96f9, 0x9cbc, 0x9cbd, 0x88d3,
- 0x9cb1, 0x8bf0, 0x88a4, 0x8ab4, 0x9cb9, 0x9cc1, 0x9cc0, 0x9cc5,
- 0x9cc6, 0x9cc4, 0x9cc7, 0x9cbf, 0x9cc3, 0x9cc8, 0x9cc9, 0x9cbe,
- 0x8e9c, 0x9cc2, 0x91d4, 0x8d51, 0x9cb0, 0x9054, 0x9cd6, 0x95e7,
- 0x9ccc, 0x9ccd, 0x9cce, 0x9cd5, 0x9cd4, 0x969d, 0x8ab5, 0x9cd2,
- 0x8c64, 0x8a53, 0x9ccf, 0x97b6, 0x9cd1, 0x88d4, 0x9cd3, 0x9cca,
- 0x9cd0, 0x9cd7, 0x8c63, 0x9ccb, 0x977c, 0x974a, 0x9cda, 0x9cde,
- 0x919e, 0x97f7, 0x9cdf, 0x9cdc, 0x9cd9, 0x9cd8, 0x9cdd, 0x95ae,
- 0x93b2, 0x8c65, 0x9ce0, 0x9cdb, 0x9ce1, 0x8c9b, 0x89af, 0x9ce9,
- 0x8ab6, 0x9ce7, 0x9ce8, 0x8da7, 0x9ce6, 0x9ce4, 0x9ce3, 0x9cea,
- 0x9ce2, 0x9cec, 0x89f9, 0x9cee, 0x9ced, 0x92a6, 0x9cf1, 0x9cef,
- 0x9ce5, 0x8c9c, 0x9cf0, 0x9cf4, 0x9cf3, 0x9cf5, 0x9cf2, 0x9cf6,
- 0x9cf7, 0x9cf8, 0x95e8, 0x9cfa, 0x9cf9, 0x8f5e, 0x90ac, 0x89e4,
- 0x89fa, 0x9cfb, 0x88bd, 0x90ca, 0x9cfc, 0xe6c1, 0x9d40, 0x8c81,
- 0x9d41, 0x90ed, 0x9d42, 0x9d43, 0x8b59, 0x9d44, 0x9d45, 0x9d46,
- 0x91d5, 0x8ccb, 0x96df, 0x965b, 0x8f8a, 0x9d47, 0x90ee, 0xe7bb,
- 0x94e0, 0x8ee8, 0x8dcb, 0x9d48, 0x91c5, 0x95a5, 0x91ef, 0x9d4b,
- 0x9d49, 0x9d4c, 0x9d4a, 0x9d4d, 0x95af, 0x88b5, 0x957d, 0x94e1,
- 0x9d4e, 0x9d51, 0x8fb3, 0x8b5a, 0x9d4f, 0x9d56, 0x8fb4, 0x9d50,
- 0x9463, 0x977d, 0x9d52, 0x9d53, 0x9d57, 0x938a, 0x9d54, 0x8d52,
- 0x90dc, 0x9d65, 0x94b2, 0x91f0, 0x94e2, 0x9dab, 0x95f8, 0x92ef,
- 0x9695, 0x9d5a, 0x899f, 0x928a, 0x9d63, 0x9253, 0x9d5d, 0x9d64,
- 0x9d5f, 0x9d66, 0x9d62, 0x9d61, 0x948f, 0x9d5b, 0x89fb, 0x9d59,
- 0x8b91, 0x91f1, 0x9d55, 0x9d58, 0x8d53, 0x90d9, 0x8fb5, 0x9d60,
- 0x9471, 0x8b92, 0x8a67, 0x8a87, 0x9040, 0x9d68, 0x9d6d, 0x9d69,
- 0x8c9d, 0x9d6e, 0x8e41, 0x8d89, 0x8f45, 0x9d5c, 0x8e9d, 0x9d6b,
- 0x8e77, 0x9d6c, 0x88c2, 0x9d67, 0x92a7, 0x8b93, 0x8bb2, 0x9d6a,
- 0x88a5, 0x8dc1, 0x9055, 0x92f0, 0x94d2, 0x9d70, 0x917d, 0x91a8,
- 0x8e4a, 0x9d71, 0x9d73, 0x9d6f, 0x95df, 0x92bb, 0x917b, 0x95f9,
- 0x8ecc, 0x9d80, 0x9d7e, 0x9098, 0x8c9e, 0x9d78, 0x8fb7, 0x93e6,
- 0x9450, 0x9d76, 0x917c, 0x8ef6, 0x9d7b, 0x8fb6, 0x9d75, 0x9d7a,
- 0x9472, 0x9d74, 0x8c40, 0x8a7c, 0x9d7c, 0x97a9, 0x8dcc, 0x9254,
- 0x9d79, 0x90da, 0x8d54, 0x9084, 0x8986, 0x915b, 0x9d77, 0x8b64,
- 0x8c66, 0x92cd, 0x9d7d, 0x917e, 0x9d81, 0x9d83, 0x91b5, 0x9d89,
- 0x9d84, 0x9d86, 0x9560, 0x92f1, 0x9d87, 0x974b, 0x9767, 0x8ab7,
- 0x88ac, 0x9d85, 0x9d82, 0x8af6, 0x8987, 0x9d88, 0x9768, 0x9d8c,
- 0x91b9, 0x9d93, 0x9d8d, 0x9d8a, 0x9d91, 0x9d72, 0x9d8e, 0x9d92,
- 0x94c0, 0x938b, 0x9d8b, 0x9d8f, 0x8c67, 0x8def, 0x90db, 0x9d97,
- 0x9345, 0x9d94, 0x9680, 0x9d95, 0x9d96, 0x96cc, 0x90a0, 0x8c82,
- 0x9d9d, 0x8e54, 0x9d9a, 0x9d99, 0x9451, 0x93b3, 0x9350, 0x9d9b,
- 0x9d9c, 0x958f, 0x9464, 0x8e42, 0x90ef, 0x966f, 0x8a68, 0x9da3,
- 0x9d9e, 0x9769, 0x9da5, 0x9da1, 0x9da2, 0x9180, 0x9da0, 0x9d5e,
- 0x9da4, 0x9d9f, 0x9da9, 0x9daa, 0x9346, 0x9dac, 0x8e43, 0x9da7,
- 0x8b5b, 0x9dad, 0x9da6, 0x9db1, 0x9db0, 0x9daf, 0x9db2, 0x9db4,
- 0x8fef, 0x9db3, 0x9db7, 0x9db5, 0x9db6, 0x9d90, 0x9db9, 0x9db8,
- 0x9d98, 0x9dba, 0x9dae, 0x8e78, 0x9dbb, 0x9dbc, 0x9dbe, 0x9dbd,
- 0x9dbf, 0x89fc, 0x8d55, 0x95fa, 0x90ad, 0x8ccc, 0x9dc1, 0x9dc4,
- 0x9571, 0x8b7e, 0x9dc3, 0x9dc2, 0x9473, 0x9dc5, 0x8bb3, 0x9dc7,
- 0x9dc6, 0x8ab8, 0x8e55, 0x93d6, 0x8c68, 0x9094, 0x9dc8, 0x90ae,
- 0x9347, 0x957e, 0x9dc9, 0x9dca, 0x9dcb, 0x95b6, 0x9b7c, 0x90c4,
- 0x956b, 0x8dd6, 0x94e3, 0x94c1, 0x936c, 0x97bf, 0x9dcd, 0x8ece,
- 0x9dce, 0x88b4, 0x8bd2, 0x90cb, 0x9580, 0x9dcf, 0x8e61, 0x9266,
- 0x8e7a, 0x9056, 0x9dd0, 0x95fb, 0x8997, 0x8e7b, 0x9dd3, 0x9dd1,
- 0x9dd4, 0x97b7, 0x9dd2, 0x90f9, 0x9dd5, 0x91b0, 0x9dd6, 0x8af8,
- 0x9dd8, 0x9dd7, 0x9dd9, 0x9dda, 0x8af9, 0x93fa, 0x9255, 0x8b8c,
- 0x8e7c, 0x9181, 0x8f7b, 0x88ae, 0x9ddb, 0x89a0, 0x9ddf, 0x8d56,
- 0x9dde, 0x8da9, 0x8fb8, 0x9ddd, 0x8fb9, 0x96be, 0x8da8, 0x88d5,
- 0x90cc, 0x9de4, 0x90af, 0x8966, 0x8f74, 0x9686, 0x8df0, 0x8fba,
- 0x90a5, 0x9de3, 0x9de1, 0x9de2, 0x928b, 0x9e45, 0x9de8, 0x8e9e,
- 0x8d57, 0x9de6, 0x9de7, 0x9057, 0x9de5, 0x8e4e, 0x9dea, 0x9de9,
- 0x9dee, 0x9def, 0x9deb, 0x8a41, 0x9dec, 0x9ded, 0x94d3, 0x9581,
- 0x8c69, 0x9df0, 0x90b0, 0x8fbb, 0x9271, 0x8bc5, 0x9df1, 0x9df5,
- 0x89c9, 0x9df2, 0x9df4, 0x9df3, 0x8f8b, 0x9267, 0x88c3, 0x9df6,
- 0x9df7, 0x92a8, 0x97ef, 0x8e62, 0x95e9, 0x965c, 0x9e41, 0x9df9,
- 0x9dfc, 0x9dfb, 0x9df8, 0x9e40, 0x93dc, 0x9dfa, 0x9e42, 0x8f8c,
- 0x9e43, 0x976a, 0x9498, 0x9e44, 0x9e46, 0x9e47, 0x9e48, 0x8bc8,
- 0x8967, 0x8d58, 0x9e49, 0x9e4a, 0x8f91, 0x9182, 0x99d6, 0x915d,
- 0x915c, 0x91d6, 0x8dc5, 0x98f0, 0x8c8e, 0x974c, 0x95fc, 0x959e,
- 0x9e4b, 0x8df1, 0x92bd, 0x9e4c, 0x984e, 0x965d, 0x92a9, 0x9e4d,
- 0x8afa, 0x9e4e, 0x9e4f, 0x96d8, 0x96a2, 0x9696, 0x967b, 0x8e44,
- 0x9e51, 0x8ee9, 0x9670, 0x9e53, 0x9e56, 0x9e55, 0x8af7, 0x8b80,
- 0x9e52, 0x9e54, 0x9e57, 0x9099, 0x979b, 0x88c7, 0x8dde, 0x91ba,
- 0x8edb, 0x8ff1, 0x9e5a, 0x936d, 0x9e58, 0x91a9, 0x9e59, 0x8ff0,
- 0x96db, 0x9e5b, 0x9e5c, 0x9788, 0x9e61, 0x8d59, 0x9474, 0x9e5e,
- 0x938c, 0x9ddc, 0x9de0, 0x8b6e, 0x9466, 0x9e60, 0x8fbc, 0x94c2,
- 0x9e66, 0x94f8, 0x9e5d, 0x9e63, 0x9e62, 0x90cd, 0x968d, 0x97d1,
- 0x9687, 0x89ca, 0x8e7d, 0x9867, 0x9e65, 0x9095, 0x9e64, 0x9e5f,
- 0x8ccd, 0x9e6b, 0x9e69, 0x89cb, 0x9e67, 0x9e6d, 0x9e73, 0x91c6,
- 0x95bf, 0x9e75, 0x9541, 0x9e74, 0x9490, 0x965e, 0x8ab9, 0x90f5,
- 0x8f5f, 0x92d1, 0x974d, 0x9e70, 0x9e6f, 0x9e71, 0x9e6e, 0x9e76,
- 0x9e6c, 0x9e6a, 0x9e72, 0x9e68, 0x928c, 0x96f6, 0x8ec4, 0x8df2,
- 0x8db8, 0x968f, 0x8a60, 0x92cc, 0x93c8, 0x8968, 0x90f0, 0x90b2,
- 0x8c49, 0x9e78, 0x8d5a, 0x8a9c, 0x9e7a, 0x8a94, 0x9e81, 0x9e7d,
- 0x90f1, 0x8a6a, 0x8daa, 0x8a69, 0x8dcd, 0x9e7b, 0x8c85, 0x8c6a,
- 0x938d, 0x9e79, 0x88c4, 0x9e7c, 0x9e7e, 0x8bcb, 0x8c4b, 0x8aba,
- 0x8b6a, 0x9e82, 0x8df7, 0x9691, 0x8e56, 0x9e83, 0x954f, 0x9e8f,
- 0x89b1, 0x9e84, 0x9e95, 0x9e85, 0x97c0, 0x9e8c, 0x947e, 0x9e94,
- 0x9e87, 0x88b2, 0x9e89, 0x8d5b, 0x9e8b, 0x9e8a, 0x9e86, 0x9e91,
- 0x8fbd, 0x9aeb, 0x8ce6, 0x979c, 0x9e88, 0x92f2, 0x8a42, 0x8dab,
- 0x9e80, 0x9e90, 0x8a81, 0x9e8e, 0x9e92, 0x938e, 0x8afc, 0x9eb0,
- 0x96c7, 0x9e97, 0x8afb, 0x9e9e, 0x965f, 0x9e9f, 0x9ea1, 0x9ea5,
- 0x9e99, 0x9249, 0x938f, 0x9ea9, 0x9e9c, 0x9ea6, 0x9ea0, 0x9058,
- 0x9eaa, 0x90b1, 0x9ea8, 0x8abb, 0x986f, 0x9e96, 0x9ea4, 0x88d6,
- 0x9e98, 0x96b8, 0x9e9d, 0x9041, 0x92c5, 0x9e93, 0x9ea3, 0x909a,
- 0x9ead, 0x8a91, 0x8c9f, 0x9eaf, 0x9e9a, 0x9eae, 0x9ea7, 0x9e9b,
- 0x9eab, 0x9eac, 0x9ebd, 0x93cc, 0x9ea2, 0x9eb9, 0x9ebb, 0x92d6,
- 0x976b, 0x9596, 0x9eb6, 0x91c8, 0x9ebc, 0x915e, 0x9eb3, 0x9ec0,
- 0x9ebf, 0x93ed, 0x9ebe, 0x93e8, 0x9ec2, 0x9eb5, 0x8bc6, 0x9eb8,
- 0x8f7c, 0x9480, 0x9eba, 0x8bc9, 0x9eb2, 0x9eb4, 0x9eb1, 0x984f,
- 0x8a79, 0x9eb7, 0x9ec1, 0x8a54, 0x8de5, 0x897c, 0x9ed2, 0x9850,
- 0x9ed5, 0x9059, 0x9ed4, 0x9ed3, 0x9ed0, 0x9ec4, 0x9ee1, 0x9ec3,
- 0x9ed6, 0x9ece, 0x9ec9, 0x9ec6, 0x9ec7, 0x9ecf, 0xeaa0, 0x9ecc,
- 0x8d5c, 0x92c6, 0x9184, 0x9eca, 0x9ec5, 0x9ec8, 0x976c, 0x968a,
- 0x9ecd, 0x9ed7, 0x9edf, 0x9ed8, 0x9ee5, 0x9ee3, 0x9ede, 0x9edd,
- 0x92ce, 0x9185, 0x9edb, 0x9ed9, 0x9ee0, 0x9ee6, 0x94f3, 0x9eec,
- 0x9ee7, 0x9eea, 0x9ee4, 0x9294, 0x9557, 0x9eda, 0x9ee2, 0x8fbe,
- 0x96cd, 0x9ef6, 0x9ee9, 0x8ca0, 0x89a1, 0x8a7e, 0x9ed1, 0x8fbf,
- 0x9eee, 0x9ef5, 0x8ef7, 0x8a92, 0x924d, 0x9eeb, 0x9ef0, 0x9ef4,
- 0x8bb4, 0x8b6b, 0x9ef2, 0x8b40, 0x93c9, 0x9ef1, 0x9ef3, 0x9eed,
- 0x9eef, 0x8a80, 0x9268, 0x9efa, 0x9ef8, 0x8ce7, 0x9ef7, 0x9f40,
- 0x9e77, 0x9ef9, 0x9efb, 0x9efc, 0x9f4b, 0x9f47, 0x9e8d, 0x9f46,
- 0x9f45, 0x9f42, 0x9ee8, 0x9f44, 0x9f43, 0x9f49, 0x9845, 0x9f4c,
- 0x8bf9, 0x9f48, 0x9f4a, 0x94a5, 0x9f4d, 0x9f51, 0x9f4e, 0x9793,
- 0x9f4f, 0x9edc, 0x9f52, 0x9f53, 0x8954, 0x9f55, 0x8c87, 0x8e9f,
- 0x8bd3, 0x89a2, 0x977e, 0x9f57, 0x9f56, 0x9f59, 0x8b5c, 0x8bd4,
- 0x8abc, 0x9f5c, 0x9f5b, 0x9f5d, 0x89cc, 0x9256, 0x9f5e, 0x8abd,
- 0x9f60, 0x9f5f, 0x9f61, 0x9f62, 0x9f63, 0x8e7e, 0x90b3, 0x8d9f,
- 0x9590, 0x95e0, 0x9863, 0x8e95, 0x8dce, 0x97f0, 0x9f64, 0x9f65,
- 0x8e80, 0x9f66, 0x9f67, 0x9f69, 0x9f68, 0x9677, 0x8f7d, 0x8eea,
- 0x8e63, 0x9f6a, 0x9f6c, 0x9042, 0x9f6b, 0x9f6d, 0x9f6e, 0x9f6f,
- 0x9f70, 0x9f71, 0x9f73, 0x9f72, 0x9f74, 0x89a3, 0x9269, 0x9f75,
- 0x8e45, 0x8a6b, 0x9f76, 0x9361, 0x9aca, 0x8b42, 0x9f77, 0x9f78,
- 0x95ea, 0x9688, 0x93c5, 0x9f79, 0x94e4, 0x94f9, 0x96d1, 0x9f7a,
- 0x9f7c, 0x9f7b, 0x9f7e, 0x9f7d, 0x9f81, 0x8e81, 0x96af, 0x9f82,
- 0x9f83, 0x8b43, 0x9f84, 0x9f86, 0x9f85, 0x9085, 0x9558, 0x8969,
- 0x94c3, 0x92f3, 0x8f60, 0x8b81, 0x94c4, 0x8eac, 0x9f88, 0x8abe,
- 0x8998, 0x93f0, 0x9f87, 0x8d5d, 0x9272, 0x9f89, 0x9f91, 0x9f8a,
- 0x91bf, 0x8b82, 0x9f92, 0x8c88, 0x8b44, 0x9f90, 0x9f8e, 0x9f8b,
- 0x9780, 0x92be, 0x93d7, 0x9f8c, 0x9f94, 0x9f93, 0x8c42, 0x89ab,
- 0x8db9, 0x9f8d, 0x9f8f, 0x9676, 0x91f2, 0x9697, 0x9f9c, 0x9f9d,
- 0x89cd, 0x95a6, 0x96fb, 0x9f9f, 0x8ea1, 0x8fc0, 0x9f98, 0x9f9e,
- 0x8988, 0x8bb5, 0x9f95, 0x9f9a, 0x90f2, 0x9491, 0x94e5, 0x9f97,
- 0x9640, 0x9f99, 0x9fa2, 0x9fa0, 0x9f9b, 0x9641, 0x9467, 0x8b83,
- 0x9344, 0x928d, 0x9fa3, 0x9fa1, 0x91d7, 0x9f96, 0x896a, 0x976d,
- 0x9fae, 0x9fad, 0x90f4, 0x9faa, 0x978c, 0x93b4, 0x9fa4, 0x92c3,
- 0x896b, 0x8d5e, 0x9fa7, 0x8f46, 0x9fac, 0x9fab, 0x9fa6, 0x9fa9,
- 0x8a88, 0x9fa8, 0x9468, 0x97ac, 0x8ff2, 0x90f3, 0x9fb4, 0x9fb2,
- 0x956c, 0x9faf, 0x9fb1, 0x8959, 0x8d5f, 0x9851, 0x8a5c, 0x9582,
- 0x9781, 0x8a43, 0x905a, 0x9fb3, 0x9fb8, 0x8fc1, 0x974f, 0x9fb5,
- 0x9fb0, 0x9fb6, 0x97dc, 0x9393, 0x93c0, 0x8a55, 0x8974, 0x9fbc,
- 0x9fbf, 0x97c1, 0x9784, 0x9fc6, 0x9fc0, 0x9fbd, 0x97d2, 0x9fc3,
- 0x8f69, 0x9fc5, 0x9fca, 0x9391, 0x9fc8, 0x9fc2, 0x9257, 0x9fc9,
- 0x9fbe, 0x9fc4, 0x9fcb, 0x88fa, 0x9fc1, 0x9fcc, 0x905b, 0x8f7e,
- 0x95a3, 0x8dac, 0x9fb9, 0x9fc7, 0x9359, 0x90b4, 0x8a89, 0x8dcf,
- 0x8fc2, 0x9fbb, 0x8f61, 0x8c6b, 0x9fba, 0x9fd0, 0x8f8d, 0x8cb8,
- 0x9fdf, 0x9fd9, 0x8b94, 0x936e, 0x9fd4, 0x9fdd, 0x88ad, 0x8951,
- 0x89b7, 0x9fd6, 0x91aa, 0x9fcd, 0x9fcf, 0x8d60, 0x9fe0, 0x9fdb,
- 0x9fd3, 0x9fda, 0x96a9, 0x9fd8, 0x9fdc, 0x8cce, 0x8fc3, 0x9258,
- 0x9fd2, 0x974e, 0x9fd5, 0x9fce, 0x9392, 0x9fd1, 0x9fd7, 0x9870,
- 0x8ebc, 0x969e, 0x9fe1, 0x94ac, 0x9fed, 0x8cb9, 0x8f80, 0x9fe3,
- 0x97ad, 0x8d61, 0x9ff0, 0x88ec, 0x9fee, 0x9fe2, 0x9fe8, 0x9fea,
- 0x976e, 0x9fe5, 0x934d, 0x9fe7, 0x9fef, 0x9fe9, 0x96c5, 0x9fe4,
- 0x8ea0, 0x9ffc, 0x8a8a, 0x9fe6, 0x9feb, 0x9fec, 0x91ea, 0x91d8,
- 0x9ff4, 0x9ffa, 0x9ff8, 0x9348, 0xe042, 0x9ff5, 0x9ff6, 0x9fde,
- 0x8b99, 0x9559, 0x8ebd, 0x8d97, 0x9852, 0x9ff2, 0xe041, 0x8989,
- 0x9186, 0x9499, 0x8abf, 0x97f8, 0x969f, 0x92d0, 0x9ff9, 0x9ffb,
- 0x9151, 0xe040, 0x9ff7, 0x9ff1, 0x8ac1, 0x8c89, 0xe04e, 0xe049,
- 0x90f6, 0x8a83, 0x8f81, 0xe052, 0xe04b, 0x92aa, 0xe048, 0x92d7,
- 0xe06b, 0xe045, 0xe044, 0xe04d, 0xe047, 0xe046, 0xe04c, 0x909f,
- 0xe043, 0xe04f, 0xe050, 0x8ac0, 0xe055, 0xe054, 0xe056, 0xe059,
- 0x9362, 0xe053, 0xe057, 0x8c83, 0x91f7, 0xe051, 0x945a, 0xe058,
- 0xe05d, 0xe05b, 0xe05e, 0xe061, 0xe05a, 0x8d8a, 0x9447, 0x9fb7,
- 0x9794, 0xe05c, 0xe060, 0x91f3, 0xe05f, 0xe04a, 0xe889, 0xe064,
- 0xe068, 0xe066, 0xe062, 0xe063, 0xe067, 0xe065, 0x956d, 0xe06d,
- 0xe06a, 0xe069, 0xe06c, 0x93d2, 0xe06e, 0x9295, 0x91eb, 0x90a3,
- 0xe06f, 0xe071, 0xe070, 0x9ff3, 0xe072, 0x93e5, 0xe073, 0x89ce,
- 0x9394, 0x8a44, 0x8b84, 0x8edc, 0x8dd0, 0x9846, 0x9086, 0x898a,
- 0xe075, 0xe074, 0xe078, 0x9259, 0xe07b, 0xe076, 0xe07a, 0xe079,
- 0x935f, 0x88d7, 0x97f3, 0xe07d, 0x8947, 0xe080, 0xe07e, 0xe07c,
- 0xe077, 0x9642, 0xe082, 0xe081, 0x898b, 0xe084, 0x95b0, 0xe083,
- 0x96b3, 0x8fc5, 0x9152, 0x8fc4, 0x97f9, 0xe08a, 0x90f7, 0xe086,
- 0xe08b, 0x898c, 0xe089, 0x9481, 0xe085, 0xe088, 0x8fc6, 0x94cf,
- 0xe08c, 0x8ecf, 0x90f8, 0xe08f, 0xe087, 0x8c46, 0xe08d, 0x976f,
- 0xe090, 0xeaa4, 0x8f6e, 0xe091, 0xe092, 0x944d, 0xe094, 0xe095,
- 0x9452, 0x9395, 0xe097, 0xe099, 0x97d3, 0xe096, 0xe098, 0x898d,
- 0xe093, 0x9a7a, 0xe09a, 0x9187, 0x8e57, 0xe09c, 0xe09b, 0x9043,
- 0x99d7, 0xe09d, 0xe09f, 0xe08e, 0xe09e, 0xe0a0, 0x949a, 0xe0a1,
- 0xe0a2, 0xe0a3, 0xe0a4, 0x92dc, 0xe0a6, 0xe0a5, 0xe0a7, 0xe0a8,
- 0x8edd, 0x9583, 0x96ea, 0xe0a9, 0xe0aa, 0x9175, 0x8ea2, 0xe0ab,
- 0xe0ac, 0xe0ad, 0x95d0, 0x94c5, 0xe0ae, 0x9476, 0x92ab, 0xe0af,
- 0x89e5, 0x8b8d, 0x96c4, 0x96b4, 0x89b2, 0x9853, 0x9671, 0x95a8,
- 0x90b5, 0xe0b0, 0x93c1, 0x8ca1, 0xe0b1, 0x8dd2, 0xe0b3, 0xe0b2,
- 0xe0b4, 0xe0b5, 0xe0b6, 0x8b5d, 0xe0b7, 0xe0b8, 0x8ca2, 0x94c6,
- 0xe0ba, 0x8ff3, 0xe0b9, 0x8bb6, 0xe0bb, 0xe0bd, 0xe0bc, 0xe0be,
- 0x8ccf, 0xe0bf, 0x8be7, 0x915f, 0x8d9d, 0xe0c1, 0xe0c2, 0xe0c0,
- 0x8eeb, 0x93c6, 0x8bb7, 0xe0c4, 0x924b, 0xe0c3, 0x9854, 0x9482,
- 0xe0c7, 0xe0c9, 0xe0c6, 0x96d2, 0xe0c8, 0xe0ca, 0x97c2, 0xe0ce,
- 0xe0cd, 0x9296, 0x944c, 0x8ca3, 0xe0cc, 0xe0cb, 0x9750, 0x9751,
- 0xe0cf, 0x898e, 0x8d96, 0x8e82, 0xe0d0, 0xe0d1, 0xe0d3, 0x8f62,
- 0xe0d5, 0xe0d4, 0xe0d6, 0x8a6c, 0xe0d8, 0xe0d7, 0xe0da, 0xe0d9,
- 0x8cba, 0x97a6, 0x8bca, 0x89a4, 0x8be8, 0x8adf, 0x97e6, 0xe0dc,
- 0xe0de, 0xe0df, 0x89cf, 0xe0db, 0x8e58, 0x92bf, 0xe0dd, 0xe0e2,
- 0x8eec, 0xe0e0, 0x8c5d, 0x94c7, 0xe0e1, 0xe0fc, 0xe0e7, 0x8cbb,
- 0x8b85, 0xe0e4, 0x979d, 0x97ae, 0x91f4, 0xe0e6, 0xe0e8, 0x97d4,
- 0x8bd5, 0x94fa, 0x9469, 0xe0e9, 0xe0eb, 0xe0ee, 0xe0ea, 0xe0ed,
- 0x8ce8, 0x896c, 0xe0ef, 0x9090, 0xe0ec, 0x97da, 0xe0f2, 0xeaa2,
- 0xe0f0, 0xe0f3, 0xe0e5, 0xe0f1, 0x8dba, 0xe0f4, 0xe0f5, 0x979e,
- 0xe0f6, 0xe0f7, 0xe0e3, 0xe0f8, 0x8ac2, 0x8ea3, 0xe0f9, 0xe0fa,
- 0xe0fb, 0x895a, 0xe140, 0x955a, 0xe141, 0x8aa2, 0xe142, 0xe143,
- 0xe144, 0xe146, 0xe147, 0xe145, 0x9572, 0xe149, 0xe148, 0xe14b,
- 0xe14a, 0xe14c, 0xe14d, 0xe14f, 0xe14e, 0x8d99, 0xe151, 0xe150,
- 0x8ac3, 0x9072, 0x935b, 0xe152, 0x90b6, 0x8e59, 0x8999, 0xe153,
- 0x9770, 0x95e1, 0xe154, 0x9363, 0x9752, 0x8d62, 0x905c, 0x926a,
- 0x99b2, 0x92ac, 0x89e6, 0xe155, 0xe156, 0xe15b, 0xe159, 0xe158,
- 0x9dc0, 0x8a45, 0xe157, 0x88d8, 0x94a8, 0x94c8, 0x97af, 0xe15c,
- 0xe15a, 0x927b, 0x90a4, 0x94a9, 0x954c, 0xe15e, 0x97aa, 0x8c6c,
- 0xe15f, 0xe15d, 0x94d4, 0xe160, 0xe161, 0x88d9, 0x8ff4, 0xe166,
- 0xe163, 0x93eb, 0xe162, 0x8b45, 0xe169, 0xe164, 0xe165, 0xe168,
- 0xe167, 0x9544, 0x9161, 0x9160, 0x8b5e, 0xe16a, 0xe16b, 0xe16c,
- 0xe16e, 0xe16d, 0x8975, 0xe176, 0x94e6, 0xe170, 0xe172, 0xe174,
- 0x905d, 0xe175, 0xe173, 0x8ebe, 0xe16f, 0xe171, 0x9561, 0x8fc7,
- 0xe178, 0xe177, 0xe179, 0x8ea4, 0x8dad, 0x9397, 0xe17a, 0x92c9,
- 0xe17c, 0x979f, 0xe17b, 0x9189, 0xe182, 0xe184, 0xe185, 0x9273,
- 0xe183, 0xe180, 0xe17d, 0xe17e, 0xe181, 0xe188, 0xe186, 0xe187,
- 0xe189, 0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18a, 0xe190, 0xe18f,
- 0xe191, 0x97c3, 0xe194, 0xe192, 0xe193, 0x8ae0, 0x96fc, 0x95c8,
- 0xe196, 0xe195, 0xe197, 0xe198, 0xe19c, 0xe199, 0xe19a, 0xe19b,
- 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe1a1, 0x94ad, 0x936f, 0xe1a2,
- 0x9492, 0x9553, 0xe1a3, 0xe1a4, 0x9349, 0x8a46, 0x8d63, 0xe1a5,
- 0xe1a6, 0xe1a7, 0x8e48, 0xe1a9, 0xe1a8, 0xe1aa, 0xe1ab, 0x94e7,
- 0xe1ac, 0xe1ad, 0xea89, 0xe1ae, 0xe1af, 0xe1b0, 0x8e4d, 0xe1b1,
- 0x9475, 0x967e, 0x896d, 0x8976, 0xe1b2, 0xe1b4, 0xe1b3, 0x9390,
- 0x90b7, 0x9f58, 0xe1b5, 0x96bf, 0xe1b6, 0x8ac4, 0x94d5, 0xe1b7,
- 0xe1b8, 0xe1b9, 0x96da, 0x96d3, 0x92bc, 0x918a, 0xe1bb, 0x8f82,
- 0x8fc8, 0xe1be, 0xe1bd, 0xe1bc, 0x94fb, 0x8ac5, 0x8ca7, 0xe1c4,
- 0xe1c1, 0x905e, 0x96b0, 0xe1c0, 0xe1c2, 0xe1c3, 0xe1bf, 0xe1c5,
- 0xe1c6, 0x92ad, 0x8ae1, 0x9285, 0xe1c7, 0xe1c8, 0xe1cb, 0x9087,
- 0x93c2, 0xe1cc, 0x9672, 0xe1c9, 0xe1ca, 0xe1cf, 0xe1ce, 0xe1cd,
- 0xe1d1, 0xe1d0, 0xe1d2, 0xe1d4, 0xe1d3, 0x95cb, 0x8f75, 0x97c4,
- 0xe1d5, 0x93b5, 0xe1d6, 0xe1d7, 0xe1db, 0xe1d9, 0xe1da, 0xe1d8,
- 0xe1dc, 0xe1dd, 0xe1de, 0xe1df, 0x96b5, 0xe1e0, 0x96ee, 0xe1e1,
- 0x926d, 0x948a, 0x8be9, 0x925a, 0xe1e2, 0x8bb8, 0x90ce, 0xe1e3,
- 0x8dbb, 0xe1e4, 0xe1e5, 0x8ca4, 0x8dd3, 0xe1e7, 0x9375, 0x8dd4,
- 0x8b6d, 0x9643, 0x946a, 0x9376, 0x8d7b, 0xe1e9, 0x8fc9, 0x97b0,
- 0x8d64, 0x8ca5, 0x94a1, 0xe1eb, 0xe1ed, 0x8ce9, 0xe1ec, 0x92f4,
- 0xe1ef, 0x8a56, 0xe1ea, 0x94e8, 0x894f, 0x8dea, 0x9871, 0xe1ee,
- 0xe1f0, 0x95c9, 0x90d7, 0xe1f2, 0xe1f3, 0xe1f1, 0x8a6d, 0xe1f9,
- 0xe1f8, 0x8ea5, 0xe1fa, 0xe1f5, 0xe1fb, 0xe1f6, 0x94d6, 0xe1f4,
- 0xe1f7, 0xe241, 0xe240, 0x9681, 0xe1fc, 0x88e9, 0xe243, 0xe242,
- 0x8fca, 0xe244, 0x9162, 0xe246, 0xe245, 0xe247, 0xe1e6, 0xe1e8,
- 0xe249, 0xe248, 0x8ea6, 0x97e7, 0x8ed0, 0xe24a, 0x8c56, 0x8b5f,
- 0x8b46, 0x8e83, 0x9753, 0xe250, 0xe24f, 0x9163, 0xe24c, 0xe24e,
- 0x8f6a, 0x905f, 0xe24d, 0xe24b, 0x9449, 0x8fcb, 0x955b, 0x8dd5,
- 0x9398, 0xe251, 0xe252, 0xe268, 0x8bd6, 0x985c, 0x9154, 0xe253,
- 0x89d0, 0x92f5, 0x959f, 0xe254, 0x8b9a, 0xe255, 0xe257, 0xe258,
- 0x9448, 0xe259, 0xe25a, 0xe25b, 0x8bd7, 0x89d1, 0x93c3, 0x8f47,
- 0x8e84, 0xe25c, 0x8f48, 0x89c8, 0x9562, 0xe25d, 0x94e9, 0x9164,
- 0xe260, 0xe261, 0x9489, 0x9060, 0xe25e, 0x9281, 0xe25f, 0x8fcc,
- 0x88da, 0x8b48, 0xe262, 0x92f6, 0xe263, 0x90c5, 0x96ab, 0x9542,
- 0xe264, 0xe265, 0x9274, 0x97c5, 0xe267, 0xe266, 0x8eed, 0xe269,
- 0x88ee, 0xe26c, 0xe26a, 0x89d2, 0x8c6d, 0xe26b, 0x8d65, 0x8d92,
- 0x95e4, 0xe26d, 0x9673, 0xe26f, 0x90cf, 0x896e, 0x89b8, 0x88aa,
- 0xe26e, 0xe270, 0xe271, 0x8ff5, 0xe272, 0x8a6e, 0xe274, 0x8c8a,
- 0x8b86, 0xe275, 0x8bf3, 0xe276, 0x90fa, 0x93cb, 0x90de, 0x8df3,
- 0xe277, 0x9282, 0x918b, 0xe279, 0xe27b, 0xe278, 0xe27a, 0x8c41,
- 0xe27c, 0x8c45, 0x8b87, 0x9771, 0xe27e, 0xe280, 0x894d, 0xe283,
- 0x8a96, 0xe282, 0xe281, 0xe285, 0xe27d, 0xe286, 0x97a7, 0xe287,
- 0xe288, 0x9af2, 0xe28a, 0xe289, 0xe28b, 0xe28c, 0x97b3, 0xe28d,
- 0xe8ed, 0x8fcd, 0xe28e, 0xe28f, 0x8f76, 0x93b6, 0xe290, 0x9247,
- 0xe291, 0x925b, 0xe292, 0x8ba3, 0x995e, 0x927c, 0x8eb1, 0x8ac6,
- 0xe293, 0xe2a0, 0xe296, 0x8b88, 0xe295, 0xe2a2, 0xe294, 0x8fce,
- 0xe298, 0xe299, 0x934a, 0xe29a, 0x8a7d, 0x9079, 0x9584, 0xe29c,
- 0x91e6, 0xe297, 0xe29b, 0xe29d, 0x8df9, 0xe2a4, 0x954d, 0x94a4,
- 0x9399, 0x8bd8, 0xe2a3, 0xe2a1, 0x94b3, 0xe29e, 0x927d, 0x939b,
- 0x939a, 0x8df4, 0xe2b6, 0xe2a6, 0xe2a8, 0xe2ab, 0xe2ac, 0xe2a9,
- 0xe2aa, 0xe2a7, 0xe2a5, 0xe29f, 0x95cd, 0x89d3, 0xe2b3, 0xe2b0,
- 0xe2b5, 0xe2b4, 0x9493, 0x96a5, 0x8e5a, 0xe2ae, 0xe2b7, 0xe2b2,
- 0xe2b1, 0xe2ad, 0xe2af, 0x8ac7, 0x925c, 0x90fb, 0x94a0, 0xe2bc,
- 0x94a2, 0x90df, 0xe2b9, 0x94cd, 0xe2bd, 0x95d1, 0x927a, 0xe2b8,
- 0xe2ba, 0xe2bb, 0xe2be, 0x8ec2, 0x93c4, 0xe2c3, 0xe2c2, 0xe2bf,
- 0x9855, 0xe2c8, 0xe2cc, 0xe2c9, 0xe2c5, 0xe2c6, 0xe2cb, 0xe2c0,
- 0x99d3, 0xe2c7, 0xe2c1, 0xe2ca, 0xe2d0, 0x8ac8, 0xe2cd, 0xe2ce,
- 0xe2cf, 0xe2d2, 0xe2d1, 0x94f4, 0xe2d3, 0x97fa, 0x95eb, 0xe2d8,
- 0xe2d5, 0xe2d4, 0x90d0, 0xe2d7, 0xe2d9, 0xe2d6, 0xe2dd, 0xe2da,
- 0xe2db, 0xe2c4, 0xe2dc, 0xe2de, 0xe2df, 0x95c4, 0xe2e0, 0x96e0,
- 0x8bcc, 0x8c48, 0xe2e1, 0x95b2, 0x9088, 0x96ae, 0xe2e2, 0x97b1,
- 0x9494, 0x9165, 0x9453, 0x8f6c, 0x88be, 0xe2e7, 0xe2e5, 0xe2e3,
- 0x8a9f, 0x8fcf, 0xe2e8, 0xe2e6, 0xe2e4, 0xe2ec, 0xe2eb, 0xe2ea,
- 0xe2e9, 0xe2ed, 0xe2ee, 0x90b8, 0xe2ef, 0xe2f1, 0xe2f0, 0x8cd0,
- 0x9157, 0xe2f3, 0x939c, 0xe2f2, 0xe2f4, 0x95b3, 0x918c, 0x8d66,
- 0xe2f5, 0x97c6, 0xe2f7, 0xe2f8, 0xe2f9, 0xe2fa, 0x8e85, 0xe2fb,
- 0x8c6e, 0x8b8a, 0x8b49, 0xe340, 0x96f1, 0x8d67, 0xe2fc, 0xe343,
- 0x96e4, 0x945b, 0x9552, 0x8f83, 0xe342, 0x8ed1, 0x8d68, 0x8e86,
- 0x8b89, 0x95b4, 0xe341, 0x9166, 0x9661, 0x8df5, 0x8e87, 0x92db,
- 0xe346, 0x97dd, 0x8dd7, 0xe347, 0x9061, 0xe349, 0x8fd0, 0x8dae,
- 0xe348, 0x8f49, 0x8cbc, 0x9167, 0xe344, 0xe34a, 0xe345, 0x8c6f,
- 0xe34d, 0xe351, 0x8c8b, 0xe34c, 0xe355, 0x8d69, 0x978d, 0x88ba,
- 0xe352, 0x8b8b, 0xe34f, 0xe350, 0x939d, 0xe34e, 0xe34b, 0x8a47,
- 0x90e2, 0x8ca6, 0xe357, 0xe354, 0xe356, 0xe353, 0x8c70, 0x91b1,
- 0xe358, 0x918e, 0xe365, 0xe361, 0xe35b, 0xe35f, 0x8ef8, 0x88db,
- 0xe35a, 0xe362, 0xe366, 0x8d6a, 0x96d4, 0x92d4, 0xe35c, 0xe364,
- 0xe359, 0x925d, 0xe35e, 0x88bb, 0x96c8, 0xe35d, 0x8bd9, 0x94ea,
- 0x918d, 0x97ce, 0x8f8f, 0xe38e, 0xe367, 0x90fc, 0xe363, 0xe368,
- 0xe36a, 0x92f7, 0xe36d, 0xe369, 0x95d2, 0x8ac9, 0x96c9, 0x88dc,
- 0xe36c, 0x97fb, 0xe36b, 0x898f, 0x93ea, 0xe36e, 0xe375, 0xe36f,
- 0xe376, 0xe372, 0x949b, 0x8ec8, 0xe374, 0xe371, 0xe377, 0xe370,
- 0x8f63, 0x9644, 0x8f6b, 0xe373, 0xe380, 0xe37b, 0xe37e, 0xe37c,
- 0xe381, 0xe37a, 0xe360, 0x90d1, 0x94c9, 0xe37d, 0xe378, 0x9140,
- 0x8c71, 0x8f4a, 0x9044, 0x9155, 0xe384, 0xe386, 0xe387, 0xe383,
- 0xe385, 0xe379, 0xe382, 0xe38a, 0xe389, 0x969a, 0x8c4a, 0xe388,
- 0xe38c, 0xe38b, 0xe38f, 0xe391, 0x8e5b, 0xe38d, 0xe392, 0xe393,
- 0xe394, 0xe39a, 0x935a, 0xe396, 0xe395, 0xe397, 0xe398, 0xe399,
- 0xe39b, 0xe39c, 0x8aca, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe3a1,
- 0xe3a2, 0xe3a3, 0xe3a4, 0xe3a6, 0xe3a5, 0xe3a7, 0xe3a8, 0xe3a9,
- 0xe3ac, 0xe3aa, 0xe3ab, 0x8ddf, 0x8c72, 0x9275, 0x94b1, 0x8f90,
- 0x946c, 0x94eb, 0xe3ad, 0x9ceb, 0xe3ae, 0xe3b0, 0x9785, 0xe3af,
- 0xe3b2, 0xe3b1, 0x9772, 0xe3b3, 0x94fc, 0xe3b4, 0xe3b7, 0xe3b6,
- 0xe3b5, 0xe3b8, 0x8c51, 0x9141, 0x8b60, 0xe3bc, 0xe3b9, 0xe3ba,
- 0xe3bd, 0xe3be, 0xe3bb, 0x8948, 0x89a5, 0xe3c0, 0xe3c1, 0xe3c2,
- 0x9782, 0x8f4b, 0xe3c4, 0xe3c3, 0x9089, 0xe3c5, 0xe3c6, 0xe3c7,
- 0x8ae3, 0x8acb, 0xe3c8, 0xe3c9, 0x967c, 0x9783, 0x9773, 0x9856,
- 0x8d6c, 0xe3cc, 0x8ed2, 0xe3cb, 0xe3cd, 0x8ea7, 0x91cf, 0xe3ce,
- 0x8d6b, 0x96d5, 0xe3cf, 0xe3d0, 0xe3d1, 0xe3d2, 0xe3d3, 0x8ea8,
- 0x96eb, 0xe3d5, 0x925e, 0xe3d4, 0xe3d7, 0xe3d6, 0xe3d8, 0x90b9,
- 0xe3d9, 0xe3da, 0x95b7, 0xe3db, 0x918f, 0xe3dc, 0xe3dd, 0x97fc,
- 0xe3e0, 0xe3df, 0xe3de, 0x92ae, 0xe3e1, 0x9045, 0xe3e2, 0xe3e3,
- 0x9857, 0xe3e4, 0xe3e5, 0xe3e7, 0xe3e6, 0x94a3, 0x93f7, 0x985d,
- 0x94a7, 0xe3e9, 0x8fd1, 0x9549, 0xe3ea, 0xe3e8, 0x8acc, 0x8cd2,
- 0x8e88, 0x94ec, 0x8ca8, 0x9662, 0xe3ed, 0xe3eb, 0x8d6d, 0x8d6e,
- 0x88e7, 0x8de6, 0x9478, 0x88dd, 0xe3f2, 0x925f, 0x9477, 0x91d9,
- 0xe3f4, 0xe3f0, 0xe3f3, 0xe3ee, 0xe3f1, 0x9645, 0x8cd3, 0x88fb,
- 0xe3ef, 0xe3f6, 0xe3f7, 0x93b7, 0x8bb9, 0xe445, 0x945c, 0x8e89,
- 0x8bba, 0x90c6, 0x9865, 0x96ac, 0xe3f5, 0x90d2, 0x8b72, 0xe3f8,
- 0xe3fa, 0xe3f9, 0xe3fb, 0x9245, 0x945d, 0x92af, 0xe442, 0xe441,
- 0xe3fc, 0x9074, 0x9585, 0xe444, 0xe443, 0x8d6f, 0x9872, 0xe454,
- 0xe448, 0xe449, 0x8eee, 0xe447, 0x8d98, 0xe446, 0xe44a, 0x92b0,
- 0x95a0, 0x9142, 0x91da, 0xe44e, 0xe44f, 0xe44b, 0xe44c, 0xe44d,
- 0x8d70, 0xe455, 0xe451, 0x9586, 0x968c, 0x9547, 0xe450, 0xe453,
- 0xe452, 0x9663, 0xe456, 0xe457, 0x9156, 0xe458, 0xe45a, 0xe45e,
- 0xe45b, 0xe459, 0x945e, 0xe45c, 0xe45d, 0x89b0, 0xe464, 0xe45f,
- 0xe460, 0xe461, 0x919f, 0xe463, 0xe462, 0xe465, 0xe466, 0xe467,
- 0x9062, 0x89e7, 0xe468, 0x97d5, 0x8ea9, 0x8f4c, 0x8e8a, 0x9276,
- 0xe469, 0xe46a, 0x8950, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f,
- 0x8bbb, 0x9da8, 0xe470, 0x90e3, 0xe471, 0x8ec9, 0xe472, 0x98ae,
- 0xe473, 0x95dc, 0x8ada, 0x9143, 0x8f77, 0x9591, 0x8f4d, 0xe474,
- 0x8d71, 0xe475, 0x94ca, 0xe484, 0xe477, 0x91c7, 0x9495, 0x8cbd,
- 0xe476, 0x9144, 0xe478, 0x92f8, 0xe47a, 0xe479, 0xe47c, 0xe47b,
- 0xe47d, 0xe480, 0xe47e, 0x8acd, 0xe481, 0xe482, 0xe483, 0x8daf,
- 0x97c7, 0xe485, 0x9046, 0x8990, 0xe486, 0xe487, 0xe488, 0x88f0,
- 0xe489, 0xe48a, 0x9587, 0x8ec5, 0xe48c, 0x8a48, 0x88b0, 0xe48b,
- 0xe48e, 0x946d, 0x9063, 0x89d4, 0x9646, 0x8c7c, 0x8bda, 0xe48d,
- 0x89e8, 0x8aa1, 0x8991, 0xe492, 0x97e8, 0x91db, 0x9563, 0xe49e,
- 0x89d5, 0xe49c, 0xe49a, 0xe491, 0xe48f, 0xe490, 0x8ee1, 0x8bea,
- 0x9297, 0x93cf, 0x8970, 0xe494, 0xe493, 0xe499, 0xe495, 0xe498,
- 0x96ce, 0xe497, 0x89d6, 0x8a9d, 0xe49b, 0xe49d, 0x8c73, 0xe4a1,
- 0xe4aa, 0xe4ab, 0x88a9, 0xe4b2, 0x88ef, 0xe4a9, 0xe4a8, 0xe4a3,
- 0xe4a2, 0xe4a0, 0xe49f, 0x9283, 0x91f9, 0xe4a5, 0xe4a4, 0xe4a7,
- 0x9190, 0x8c74, 0x8960, 0xe4a6, 0x8d72, 0x9191, 0xe4b8, 0xe4b9,
- 0x89d7, 0x89ac, 0xe4b6, 0xe4ac, 0xe4b4, 0xe4bb, 0xe4b5, 0xe4b3,
- 0xe496, 0xe4b1, 0xe4ad, 0x8ace, 0xe4af, 0xe4ba, 0xe4b0, 0xe4bc,
- 0xe4ae, 0x949c, 0x9789, 0xe4b7, 0xe4cd, 0xe4c5, 0x909b, 0x8b65,
- 0x8bdb, 0xe4c0, 0x89d9, 0x8fd2, 0xe4c3, 0x8dd8, 0x9370, 0xe4c8,
- 0x95ec, 0xe4bf, 0x89d8, 0x8cd4, 0x9548, 0xe4c9, 0xe4bd, 0xe4c6,
- 0xe4d0, 0xe4c1, 0xe4c2, 0x93b8, 0xe4c7, 0xe4c4, 0x9647, 0xe4ca,
- 0x88de, 0xe4be, 0xe4cc, 0xe4cb, 0x948b, 0xe4d2, 0xe4dd, 0x8a9e,
- 0xe4e0, 0xe4ce, 0xe4d3, 0x978e, 0xe4dc, 0x9774, 0x97a8, 0x9298,
- 0x8a8b, 0x9592, 0xe4e2, 0x939f, 0x88af, 0xe4db, 0xe4d7, 0x9192,
- 0xe4d1, 0xe4d9, 0xe4de, 0x944b, 0x88a8, 0xe4d6, 0xe4df, 0x9598,
- 0xe4da, 0xe4d5, 0x8fd3, 0x8f4e, 0x8eaa, 0x96d6, 0x9566, 0xe4e5,
- 0xe4ee, 0xe4d8, 0x8a97, 0x8ff6, 0xe4e3, 0xe4e8, 0x9193, 0xe4e4,
- 0xe4eb, 0x927e, 0xe4ec, 0x9775, 0xe4e1, 0x8a57, 0xe4e7, 0xe4ea,
- 0x96aa, 0xe4ed, 0xe4e6, 0xe4e9, 0x9648, 0x9840, 0xe4f1, 0xe4f8,
- 0xe4f0, 0x8ec1, 0xe4cf, 0x95cc, 0x96a0, 0xe4f7, 0xe4f6, 0xe4f2,
- 0xe4f3, 0x8955, 0xe4f5, 0xe4ef, 0x92d3, 0xe4f4, 0x88fc, 0x91a0,
- 0x95c1, 0xe4f9, 0xe540, 0x94d7, 0xe4fc, 0x8fd4, 0x8ec7, 0xe542,
- 0x8bbc, 0xe543, 0x9599, 0xe4fb, 0xe4d4, 0xe4fa, 0x986e, 0x93a0,
- 0x9593, 0xe54a, 0xe550, 0xe551, 0xe544, 0x9496, 0xe54e, 0xe546,
- 0xe548, 0xe552, 0xe547, 0xe54b, 0x8992, 0x93e3, 0xe54c, 0xe54f,
- 0xe545, 0x9145, 0xe549, 0x8e46, 0x9064, 0x8c4f, 0x96f2, 0x96f7,
- 0x8f92, 0xe556, 0xe554, 0x986d, 0xe553, 0x9795, 0xe555, 0xe557,
- 0xe558, 0xe55b, 0xe559, 0x93a1, 0xe55a, 0x94cb, 0xe54d, 0x8f93,
- 0xe55c, 0xe561, 0x9194, 0xe560, 0xe541, 0xe562, 0x9168, 0xe55d,
- 0xe55f, 0xe55e, 0x9f50, 0x9f41, 0xe564, 0xe563, 0x9796, 0xe1ba,
- 0xe565, 0xe566, 0xe567, 0x8cd5, 0x8b73, 0xe569, 0x997c, 0x8b95,
- 0x97b8, 0x8bf1, 0xe56a, 0xe56b, 0x928e, 0xe56c, 0x93f8, 0x88b8,
- 0x89e1, 0xe571, 0xe572, 0xe56d, 0x8e5c, 0xe56e, 0x9461, 0xe56f,
- 0xe570, 0xe57a, 0xe574, 0xe577, 0xe573, 0xe575, 0xe576, 0x8ed6,
- 0xe578, 0x9260, 0x8c75, 0x8a61, 0xe57b, 0x8a5e, 0xe581, 0xe57c,
- 0xe580, 0x94b8, 0xe57d, 0xe57e, 0x9567, 0x94d8, 0xe582, 0x91fb,
- 0xe58c, 0xe588, 0x89e9, 0xe586, 0x9649, 0xe587, 0xe584, 0xe585,
- 0xe58a, 0xe58d, 0xe58b, 0xe589, 0xe583, 0x9277, 0xe594, 0x96a8,
- 0xe592, 0xe593, 0xe58e, 0xe590, 0xe591, 0xe58f, 0x90e4, 0x9858,
- 0xe598, 0xe599, 0xe59f, 0x9049, 0xe59b, 0xe59e, 0xe596, 0xe595,
- 0xe5a0, 0x89da, 0xe59c, 0xe5a1, 0xe59d, 0xe59a, 0x92b1, 0xe597,
- 0x9488, 0xe5a5, 0x975a, 0xe5a4, 0xe5a3, 0xe5ac, 0xe5a6, 0xe5ae,
- 0x9786, 0xe5b1, 0xe5a8, 0xe5a9, 0xe5ad, 0xe5b0, 0xe5af, 0xe5a7,
- 0xe5aa, 0xe5bb, 0xe5b4, 0xe5b2, 0xe5b3, 0xe5b8, 0xe5b9, 0x8a49,
- 0x8b61, 0xe5b7, 0xe5a2, 0xe5b6, 0xe5ba, 0xe5b5, 0xe5bc, 0xe5be,
- 0xe5bd, 0xe5c0, 0xe5bf, 0xe579, 0xe5c4, 0xe5c1, 0xe5c2, 0xe5c3,
- 0xe5c5, 0x8c8c, 0xe5c7, 0xe5c6, 0x8f4f, 0x8d73, 0x9fa5, 0xe5c8,
- 0x8f70, 0x8a58, 0xe5c9, 0x8971, 0x8fd5, 0xe5ca, 0x8d74, 0xe5cb,
- 0x88df, 0x955c, 0xe5cc, 0x908a, 0xe5d3, 0xe5d0, 0x928f, 0xe5d1,
- 0xe5ce, 0x8bdc, 0xe5cd, 0xe5d4, 0x8c55, 0x91dc, 0xe5da, 0xe5d6,
- 0x91b3, 0xe5d5, 0xe5d8, 0xe5cf, 0xe5d9, 0xe5db, 0x94ed, 0xe5d7,
- 0xe5dc, 0xe5de, 0x8cd1, 0xe5d2, 0x88bf, 0xe5dd, 0x8dd9, 0x97f4,
- 0xe5df, 0xe5e0, 0x9195, 0x97a0, 0xe5e1, 0x9754, 0xe5e2, 0xe5e3,
- 0x95e2, 0xe5e4, 0x8dbe, 0x97a1, 0xe5e9, 0xe5ea, 0x8fd6, 0xe5e8,
- 0x9787, 0xe5e5, 0xe5e7, 0x90bb, 0x909e, 0xe5e6, 0xe5eb, 0x95a1,
- 0xe5ed, 0xe5ec, 0x8a8c, 0x964a, 0xe5ee, 0xe5fa, 0xe5f0, 0xe5f1,
- 0xe5f2, 0xe5f3, 0xe5f7, 0xe5f8, 0xe5f6, 0xe5f4, 0xe5ef, 0xe5f5,
- 0xe5f9, 0xe8b5, 0x89a6, 0xe5fc, 0x8bdd, 0xe5fb, 0xe641, 0xe640,
- 0xe643, 0xe642, 0xe644, 0x8f50, 0xe645, 0xe646, 0xe647, 0x90bc,
- 0x9776, 0xe648, 0x95a2, 0x9465, 0xe649, 0xe64a, 0x8ca9, 0x8b4b,
- 0xe64b, 0x8e8b, 0x9460, 0xe64c, 0x8a6f, 0xe64d, 0xe64f, 0x9797,
- 0xe64e, 0x9065, 0xe650, 0xe651, 0xe652, 0x8acf, 0xe653, 0xe654,
- 0xe655, 0xe656, 0x8a70, 0xe657, 0xe658, 0xe659, 0x89f0, 0x9047,
- 0xe65a, 0xe65b, 0xe65c, 0x8cbe, 0x92f9, 0xe65d, 0x8c76, 0x9075,
- 0xe660, 0x93a2, 0xe65f, 0x8c50, 0xe65e, 0x91f5, 0x8b4c, 0xe661,
- 0xe662, 0x8fd7, 0x8c8d, 0xe663, 0x964b, 0x90dd, 0x8b96, 0x96f3,
- 0x9169, 0xe664, 0x9066, 0x9290, 0x8fd8, 0xe665, 0xe668, 0xe669,
- 0x8dbc, 0x91c0, 0xe667, 0x8fd9, 0x955d, 0xe666, 0x8e8c, 0x8972,
- 0xe66d, 0x8c77, 0x8e8e, 0x8e8d, 0x986c, 0xe66c, 0xe66b, 0x9146,
- 0x8b6c, 0x9862, 0x8a59, 0x8fda, 0xe66a, 0xe66f, 0xe670, 0xe66e,
- 0x8cd6, 0x975f, 0x8e8f, 0x9446, 0xe673, 0x90be, 0x9261, 0x9755,
- 0xe676, 0x8cea, 0x90bd, 0xe672, 0xe677, 0x8ceb, 0xe674, 0xe675,
- 0xe671, 0x90e0, 0x93c7, 0x924e, 0x89db, 0x94ee, 0x8b62, 0x92b2,
- 0xe67a, 0xe678, 0x926b, 0x90bf, 0x8ad0, 0xe679, 0x907a, 0x97c8,
- 0x985f, 0xe67b, 0xe687, 0x92b3, 0xe686, 0xe683, 0xe68b, 0xe684,
- 0xe680, 0x92fa, 0xe67e, 0xe67c, 0x9740, 0x8e90, 0xe681, 0xe67d,
- 0xe685, 0x8f94, 0x8cbf, 0x91f8, 0x9664, 0x8979, 0x88e0, 0x93a3,
- 0xe689, 0xe688, 0x93e4, 0xe68d, 0xe682, 0xe68c, 0xe68e, 0x8caa,
- 0xe68a, 0x8d75, 0x8ed3, 0xe68f, 0x9777, 0xe692, 0xe695, 0xe693,
- 0x9554, 0xe690, 0x8bde, 0xe694, 0xe696, 0xe69a, 0xe697, 0xe699,
- 0xe698, 0xe69b, 0x8eaf, 0xe69d, 0xe69c, 0x9588, 0xe69f, 0x8c78,
- 0xe69e, 0xe6a0, 0xe6a1, 0x8b63, 0xe3bf, 0x8ff7, 0xe6a2, 0x8cec,
- 0xe6a3, 0xe6a4, 0x8e5d, 0x9dcc, 0xe6a5, 0xe6a6, 0x8f51, 0xe6a7,
- 0xe6a8, 0xe6a9, 0xe6aa, 0xe6ab, 0x924a, 0xe6ac, 0xe6ae, 0xe6ad,
- 0x93a4, 0xe6af, 0x964c, 0xe6b0, 0xe6b1, 0xe6b2, 0xe6b3, 0x93d8,
- 0x8fdb, 0xe6b4, 0x8d8b, 0x98ac, 0xe6b5, 0xe6b6, 0x955e, 0xe6b7,
- 0xe6bf, 0xe6b8, 0xe6ba, 0xe6b9, 0xe6bb, 0x9665, 0xe6bc, 0xe6bd,
- 0xe6be, 0xe6c0, 0x8a4c, 0x92e5, 0x9589, 0x8de0, 0x8d76, 0x956e,
- 0x89dd, 0x94cc, 0xe6c3, 0x8ad1, 0x90d3, 0xe6c2, 0xe6c7, 0x9299,
- 0x96e1, 0xe6c5, 0xe6c6, 0x8b4d, 0xe6c8, 0x9483, 0x91dd, 0x94ef,
- 0x935c, 0xe6c4, 0x9666, 0x89ea, 0xe6ca, 0x9847, 0x92c0, 0x9864,
- 0x8e91, 0xe6c9, 0x91af, 0xe6da, 0x9147, 0x93f6, 0x956f, 0xe6cd,
- 0x8e5e, 0x8e92, 0x8fdc, 0x9485, 0x8cab, 0xe6cc, 0xe6cb, 0x958a,
- 0x8ebf, 0x9371, 0xe6cf, 0xe6d0, 0x8d77, 0xe6ce, 0xe6d1, 0xe6d2,
- 0xe6d4, 0x91a1, 0xe6d3, 0x8ae4, 0xe6d6, 0xe6d5, 0xe6d7, 0xe6d9,
- 0xe6db, 0xe6dc, 0x90d4, 0x8ecd, 0xe6dd, 0x8a71, 0xe6de, 0x9196,
- 0xe6df, 0xe6e0, 0x958b, 0x8b4e, 0xe6e1, 0x92b4, 0x897a, 0xe6e2,
- 0x8eef, 0x9096, 0x91ab, 0xe6e5, 0xe6e4, 0xe6e3, 0xe6eb, 0xe6e9,
- 0xe6e6, 0xe6e8, 0xe6e7, 0xe6ea, 0x8b97, 0xe6ee, 0x90d5, 0xe6ef,
- 0x8cd7, 0xe6ec, 0xe6ed, 0x9848, 0x92b5, 0x9148, 0xe6f0, 0xe6f3,
- 0xe6f1, 0xe6f2, 0x9778, 0x93a5, 0xe6f6, 0xe6f4, 0xe6f5, 0xe6f7,
- 0xe748, 0xe6fa, 0xe6fb, 0xe6f9, 0xe6f8, 0x92fb, 0xe740, 0xe744,
- 0xe741, 0xe6fc, 0xe742, 0xe743, 0xe74a, 0xe745, 0x90d6, 0xe747,
- 0xe749, 0xe746, 0xe74c, 0x8f52, 0xe74b, 0xe74d, 0xe74e, 0xe751,
- 0xe750, 0xe74f, 0xe753, 0xe752, 0x96f4, 0xe755, 0xe754, 0xe756,
- 0xe757, 0xe759, 0xe758, 0x9067, 0xe75a, 0x8beb, 0xe75b, 0xe75d,
- 0xe75e, 0xe75f, 0xe75c, 0xe760, 0x8ed4, 0xe761, 0x8b4f, 0x8c52,
- 0x8cac, 0xe762, 0x93ee, 0x935d, 0xe763, 0xe766, 0x8eb2, 0xe765,
- 0xe764, 0x8c79, 0xe767, 0x8a72, 0xe769, 0x8dda, 0xe768, 0xe771,
- 0xe76b, 0xe76d, 0x95e3, 0xe76a, 0xe76c, 0xe770, 0xe76e, 0x8b50,
- 0xe76f, 0xe772, 0x9479, 0x97d6, 0x8f53, 0xe773, 0x9741, 0xe775,
- 0xe774, 0xe778, 0x9760, 0xe777, 0x8a8d, 0xe776, 0xe77b, 0xe77a,
- 0xe779, 0x9351, 0xe77c, 0xe77d, 0xe77e, 0x8d8c, 0x8c44, 0xe780,
- 0xe781, 0xe782, 0x9068, 0xe783, 0x8eab, 0xe784, 0xe785, 0x999f,
- 0x999e, 0xe786, 0xe390, 0xe787, 0x9243, 0x904a, 0x945f, 0xe788,
- 0x95d3, 0x92d2, 0x8d9e, 0x9248, 0x8949, 0x9698, 0x9076, 0x8c7d,
- 0x8bdf, 0x95d4, 0xe789, 0xe78b, 0xe78a, 0x89de, 0x93f4, 0xe78c,
- 0x9497, 0x9352, 0xe78d, 0x8f71, 0xe78f, 0x96c0, 0xe79e, 0xe791,
- 0xe792, 0x92c7, 0x91de, 0x9197, 0x93a6, 0xe790, 0x8b74, 0xe799,
- 0xe796, 0xe7a3, 0x93a7, 0x9280, 0xe793, 0x92fc, 0x9372, 0xe794,
- 0xe798, 0x9080, 0x9487, 0x92ca, 0x90c0, 0xe797, 0x91ac, 0x91a2,
- 0xe795, 0x88a7, 0x9841, 0xe79a, 0x91df, 0x8f54, 0x9069, 0xe79c,
- 0xe79b, 0x88ed, 0xe79d, 0x954e, 0xe7a5, 0x93d9, 0x908b, 0x9278,
- 0x8bf6, 0xe7a4, 0x9756, 0x895e, 0x95d5, 0x89df, 0xe79f, 0xe7a0,
- 0xe7a1, 0xe7a2, 0x93b9, 0x9242, 0x88e1, 0xe7a6, 0xe7a7, 0xeaa1,
- 0x91bb, 0xe7a8, 0x8993, 0x916b, 0x8cad, 0x9779, 0xe7a9, 0x934b,
- 0x9198, 0x8ed5, 0xe7aa, 0xe7ad, 0x8f85, 0xe7ab, 0x914a, 0x9149,
- 0x88e2, 0x97c9, 0xe7af, 0x94f0, 0xe7b1, 0xe7b0, 0xe7ae, 0xe284,
- 0x8ad2, 0xe78e, 0xe7b3, 0xe7b2, 0xe7b4, 0x9757, 0x93df, 0x964d,
- 0xe7b5, 0x8ed7, 0xe7b6, 0xe7b7, 0xe7b8, 0x9340, 0x88e8, 0x8d78,
- 0x9859, 0xe7bc, 0x8c53, 0xe7b9, 0xe7ba, 0x9594, 0x8a73, 0x9758,
- 0x8bbd, 0x9373, 0xe7bd, 0xe7be, 0xe7bf, 0x9341, 0xe7c1, 0xe7c0,
- 0x93d1, 0xe7c2, 0x8f55, 0x8ede, 0x947a, 0x9291, 0x8ef0, 0x908c,
- 0xe7c3, 0xe7c4, 0x907c, 0xe7c5, 0xe7c6, 0xe7c7, 0x978f, 0x8f56,
- 0xe7c9, 0xe7c8, 0x8d79, 0x8d93, 0x8e5f, 0xe7cc, 0x8f86, 0xe7cb,
- 0xe7ca, 0x91e7, 0x8ced, 0x90c1, 0x94ae, 0x8f58, 0xe7cd, 0x8fdd,
- 0xe7d0, 0xe7ce, 0xe7cf, 0xe7d2, 0xe7d1, 0x8ff8, 0xe7d3, 0xe7d4,
- 0xe7d5, 0x94ce, 0x8dd1, 0x8edf, 0xe7d6, 0xe7d7, 0x97a2, 0x8f64,
- 0x96ec, 0x97ca, 0xe7d8, 0x8be0, 0xe7d9, 0x9342, 0xe7dc, 0x8a98,
- 0x906a, 0xe7da, 0xe7db, 0x92de, 0x9674, 0x8bfa, 0xe7de, 0xe7df,
- 0xe7dd, 0xe7e1, 0x93dd, 0x8a62, 0xe7e5, 0xe7e2, 0xe7e4, 0xe7e0,
- 0xe86e, 0xe7e3, 0x97e9, 0x8cd8, 0xe7ed, 0x9353, 0xe7e8, 0xe7eb,
- 0xe7e9, 0xe7ee, 0xe7ef, 0xe7e7, 0xe7f4, 0x8994, 0xe7e6, 0x94ab,
- 0xe7ea, 0x8fde, 0x8d7a, 0x9667, 0x8be2, 0x8f65, 0x93ba, 0x914c,
- 0xe7f2, 0xe7ec, 0xe7f1, 0x96c1, 0x92b6, 0xe7f3, 0xe7f0, 0x914b,
- 0xe7f7, 0xe7f6, 0xe7f5, 0x964e, 0x8f9b, 0xe7f8, 0x95dd, 0x8973,
- 0x9565, 0x9292, 0x8b98, 0xe7fa, 0x8d7c, 0x8e4b, 0xe7f9, 0x908d,
- 0x908e, 0xe840, 0xe842, 0x8ff9, 0xe841, 0xe843, 0x8bd1, 0x9564,
- 0x8ee0, 0x9842, 0xe7fc, 0x8df6, 0x985e, 0xe845, 0xe844, 0xe846,
- 0xe7fb, 0x93e7, 0x9374, 0x92d5, 0xe84b, 0x9262, 0xe847, 0xe848,
- 0x8c4c, 0xe84a, 0x8cae, 0xe849, 0x8fdf, 0x8a99, 0xe84f, 0x8dbd,
- 0x9199, 0x92c8, 0x8a5a, 0xe84d, 0xe84e, 0x92c1, 0xe84c, 0xe850,
- 0xe856, 0xe859, 0xe858, 0x934c, 0xe851, 0xe852, 0xe855, 0xe857,
- 0x8bbe, 0xe85a, 0xe854, 0xe853, 0xe85e, 0xe85f, 0xe860, 0xe85d,
- 0xe85c, 0x8fe0, 0x93a8, 0xe85b, 0xe864, 0xe862, 0xe863, 0xe861,
- 0x91f6, 0xe865, 0xe866, 0xe868, 0x8ad3, 0xe867, 0x96f8, 0xe873,
- 0xe869, 0xe86c, 0xe86a, 0xe86b, 0xe86d, 0xe86f, 0xe870, 0xe871,
- 0xe874, 0xe872, 0xe875, 0xe877, 0xe876, 0x92b7, 0x96e5, 0xe878,
- 0x914d, 0xe879, 0x95c2, 0xe87a, 0x8a4a, 0x895b, 0x8ad5, 0x8ad4,
- 0xe87b, 0xe87c, 0xe87d, 0xe87e, 0xe880, 0x8ad6, 0x8a74, 0x8d7d,
- 0x94b4, 0xe882, 0xe881, 0xe883, 0x897b, 0xe886, 0xe885, 0xe884,
- 0xe887, 0xe88a, 0x88c5, 0xe888, 0xe88c, 0xe88b, 0xe88e, 0xe88d,
- 0xe88f, 0x93ac, 0xe890, 0xe891, 0xe893, 0xe892, 0x958c, 0xe894,
- 0xe895, 0x8de3, 0xe896, 0xe897, 0x9668, 0x916a, 0x88a2, 0x91c9,
- 0xe898, 0x958d, 0xe89b, 0xe899, 0x8d7e, 0xe89a, 0x8cc0, 0x95c3,
- 0xe89d, 0xe89f, 0xe89e, 0xe8a0, 0x8940, 0x9077, 0x8f9c, 0x8ad7,
- 0xe8a1, 0x9486, 0xe8a3, 0x8941, 0xe8a2, 0x92c2, 0x97cb, 0x93a9,
- 0xe89c, 0x97a4, 0x8caf, 0x977a, 0x8bf7, 0x97b2, 0x8c47, 0x91e0,
- 0xe440, 0xe8a4, 0x8a4b, 0x908f, 0x8a75, 0xe8a6, 0xe8a7, 0xe8a5,
- 0x8c84, 0x8ddb, 0x8fe1, 0x8942, 0x97d7, 0xe8a9, 0xe7ac, 0xe8a8,
- 0xe8ac, 0xe8aa, 0xe8ab, 0xe8ad, 0xe8ae, 0x97ea, 0xe8af, 0xe8b0,
- 0x90c7, 0x94b9, 0x909d, 0x8ae5, 0x9759, 0x89eb, 0x8f57, 0x8cd9,
- 0xe8b3, 0xe8b2, 0x8e93, 0xe8b4, 0xe8b1, 0x8e47, 0xe8b8, 0xe5ab,
- 0x99d4, 0x9097, 0xe8b6, 0x97a3, 0x93ef, 0x894a, 0x90e1, 0x8eb4,
- 0x95b5, 0x895f, 0x97eb, 0x978b, 0xe8b9, 0x9364, 0x8ef9, 0xe8ba,
- 0xe8bb, 0x906b, 0xe8bc, 0x97ec, 0xe8b7, 0xe8be, 0xe8c0, 0xe8bf,
- 0xe8bd, 0xe8c1, 0xe8c2, 0x919a, 0x89e0, 0xe8c3, 0x96b6, 0xe8c4,
- 0xe8c5, 0x9849, 0x9e50, 0xe8c6, 0xe8c7, 0xe8c8, 0xe8cc, 0xe8c9,
- 0xe8ca, 0xe8cb, 0xe8cd, 0x90c2, 0x96f5, 0x90c3, 0xe8ce, 0x94f1,
- 0xe8cf, 0xea72, 0x96ca, 0xe8d0, 0xe8d1, 0xe8d2, 0x8a76, 0xe8d4,
- 0x9078, 0xe8d5, 0x8c43, 0xe8d6, 0xe8da, 0xe8d8, 0xe8d9, 0x8a93,
- 0xe8d7, 0xe8db, 0xe8dc, 0x88c6, 0xe8dd, 0xe8de, 0x8fe2, 0xe8df,
- 0x8b66, 0xe8e2, 0xe8e1, 0xe8e0, 0xe691, 0x95da, 0xe8e3, 0xe8e4,
- 0xe8e5, 0xe8e6, 0xe8e7, 0xe8e8, 0x8ad8, 0xe8e9, 0xe8ea, 0x9442,
- 0xe8ec, 0x89b9, 0xe8ef, 0xe8ee, 0x8943, 0x8bbf, 0x95c5, 0x92b8,
- 0x8da0, 0x8d80, 0x8f87, 0x907b, 0xe8f1, 0xe8f0, 0x9761, 0x8ae6,
- 0x94d0, 0x93da, 0x909c, 0x97cc, 0x8c7a, 0xe8f4, 0xe8f3, 0x966a,
- 0x93aa, 0x896f, 0xe8f5, 0xe8f2, 0x9570, 0x978a, 0xe8f6, 0xe8f7,
- 0xe8f9, 0x91e8, 0x8a7a, 0x8a7b, 0xe8f8, 0x8ae7, 0x8cb0, 0x8ae8,
- 0x935e, 0x97de, 0x8cda, 0xe8fa, 0xe8fb, 0xe8fc, 0xe940, 0xe942,
- 0xe941, 0x9597, 0xe943, 0xe944, 0xe945, 0xe946, 0xe948, 0xe947,
- 0xe949, 0x94f2, 0xe3ca, 0x9048, 0x8b51, 0xe94a, 0xe94b, 0x99aa,
- 0x9f5a, 0x94d1, 0x88f9, 0x88b9, 0x8e94, 0x964f, 0x8ffc, 0xe94c,
- 0x96dd, 0xe94d, 0x977b, 0x8961, 0x8e60, 0xe94e, 0x89ec, 0xe94f,
- 0xe950, 0xe952, 0xe953, 0xe955, 0xe951, 0xe954, 0x8ad9, 0xe956,
- 0xe957, 0xe958, 0xe959, 0xe95a, 0xe95c, 0xe95b, 0xe95e, 0xe961,
- 0xe95d, 0xe95f, 0xe960, 0xe962, 0x8bc0, 0x8ef1, 0xe963, 0xe964,
- 0x8d81, 0xe965, 0x8a5d, 0x946e, 0xe966, 0xe967, 0x9279, 0x93e9,
- 0xe968, 0x949d, 0x91ca, 0x8977, 0x8bec, 0x8bed, 0x9293, 0xe96d,
- 0x8bee, 0x89ed, 0xe96c, 0xe96a, 0xe96b, 0xe969, 0xe977, 0xe96e,
- 0xe96f, 0xe970, 0xe971, 0xe973, 0xe972, 0x8f78, 0xe974, 0xe976,
- 0x8b52, 0xe975, 0x919b, 0x8cb1, 0xe978, 0x91cb, 0xe979, 0x93ab,
- 0xe97a, 0xe980, 0xe97d, 0xe97c, 0xe97e, 0xe97b, 0xe982, 0xe981,
- 0xe984, 0x8bc1, 0xe983, 0xe985, 0xe986, 0xe988, 0xe987, 0xe989,
- 0xe98b, 0xe98a, 0x8d9c, 0xe98c, 0xe98d, 0x8a5b, 0xe98e, 0xe98f,
- 0x9091, 0xe990, 0xe991, 0xe992, 0xe993, 0x8d82, 0xe994, 0xe995,
- 0xe996, 0xe997, 0xe998, 0x94af, 0xe99a, 0x9545, 0xe99b, 0xe999,
- 0xe99d, 0xe99c, 0xe99e, 0xe99f, 0xe9a0, 0xe9a1, 0xe9a2, 0xe9a3,
- 0xe9a4, 0xe9a5, 0xe9a6, 0xe9a7, 0xe9a8, 0xe9a9, 0xe9aa, 0xe9ab,
- 0xe9ac, 0x9f54, 0xe9ad, 0xe2f6, 0x8b53, 0x8a40, 0x8db0, 0xe9af,
- 0xe9ae, 0x96a3, 0xe9b1, 0xe9b2, 0xe9b0, 0xe9b3, 0x9682, 0xe9b4,
- 0x8b9b, 0x9844, 0xe9b5, 0xe9b7, 0x88bc, 0xe9b8, 0x95a9, 0xe9b6,
- 0xe9b9, 0xe9ba, 0xe9bb, 0xe9bc, 0xe9bd, 0x968e, 0x8e4c, 0x8df8,
- 0x914e, 0xe9be, 0xe9c1, 0xe9bf, 0xe9c2, 0x8cef, 0xe9c0, 0xe9c3,
- 0xe9c4, 0xe9c5, 0xe9c9, 0x8e49, 0x91e2, 0xe9ca, 0xe9c7, 0xe9c6,
- 0xe9c8, 0x8c7e, 0xe9ce, 0xe9cd, 0xe9cc, 0x88b1, 0xe9d8, 0xe9d4,
- 0xe9d5, 0xe9d1, 0xe9d7, 0xe9d3, 0x8a82, 0x986b, 0xe9d6, 0xe9d2,
- 0xe9d0, 0xe9cf, 0xe9da, 0xe9dd, 0xe9dc, 0xe9db, 0x9568, 0xe9d9,
- 0x88f1, 0xe9de, 0xe9e0, 0x8a8f, 0xe9cb, 0x8956, 0xe9e2, 0xe9e1,
- 0xe9df, 0x924c, 0x9690, 0x97d8, 0xe9e3, 0xe9e4, 0xe9e5, 0xe9e6,
- 0xe9e7, 0x92b9, 0xe9e8, 0x94b5, 0xe9ed, 0xe9e9, 0xe9ea, 0x9650,
- 0x96c2, 0x93ce, 0xe9ee, 0xe9ef, 0x93bc, 0xe9ec, 0xe9eb, 0x89a8,
- 0xe9f7, 0xe9f6, 0x8995, 0xe9f4, 0xe9f3, 0xe9f1, 0x8a9b, 0xe9f0,
- 0x8eb0, 0x89a7, 0x8d83, 0xe9fa, 0xe9f9, 0xe9f8, 0xe9f5, 0xe9fb,
- 0xe9fc, 0xea44, 0xea43, 0xea45, 0x894c, 0xea40, 0xea41, 0x8d94,
- 0x96b7, 0xea42, 0x9651, 0xea4a, 0xea46, 0xea4b, 0xea48, 0xea47,
- 0x8c7b, 0xea4c, 0xea4d, 0xea4e, 0xea49, 0xe9f2, 0xea4f, 0x92df,
- 0xea53, 0xea54, 0xea52, 0xea51, 0xea57, 0xea50, 0xea55, 0xea56,
- 0xea59, 0xea58, 0xea5b, 0xea5c, 0xea5d, 0x9868, 0xea5a, 0x91e9,
- 0x8deb, 0xea5e, 0xea5f, 0xea60, 0xea61, 0xea62, 0x8cb2, 0xea63,
- 0xea64, 0x8ead, 0xea65, 0xea66, 0xea67, 0xea68, 0xea6b, 0xea69,
- 0x985b, 0xea6a, 0x97ed, 0xea6c, 0x97d9, 0xea6d, 0x949e, 0xea6e,
- 0xea70, 0xea71, 0xea6f, 0x8d8d, 0x96cb, 0x9683, 0x9bf5, 0x9f80,
- 0x969b, 0x89a9, 0xea73, 0x8b6f, 0xea74, 0xea75, 0xea76, 0x8d95,
- 0xea77, 0xe0d2, 0x96d9, 0x91e1, 0xea78, 0xea7a, 0xea79, 0xea7b,
- 0xea7c, 0xea7d, 0xea7e, 0xea80, 0xea81, 0xea82, 0xea83, 0xea84,
- 0xea85, 0xea86, 0xea87, 0xea88, 0x9343, 0x8cdb, 0xea8a, 0x916c,
- 0xea8b, 0xea8c, 0x9540, 0xea8d, 0xea8e, 0xe256, 0xe6d8, 0xe8eb,
- 0xea8f, 0xea90, 0xea92, 0xea93, 0xea94, 0x97ee, 0xea91, 0xea95,
- 0xea96, 0xea98, 0xea97, 0xea9a, 0xea9b, 0xea99, 0x97b4, 0xea9c,
- 0xea9d, 0xe273, 0xea9e, 0x8149, 0x8194, 0x8190, 0x8193, 0x8195,
- 0x8169, 0x816a, 0x8196, 0x817b, 0x8143, 0x8144, 0x815e, 0x824f,
- 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, 0x8257,
- 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148, 0x8197,
- 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267,
- 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0x826d, 0x826e, 0x826f,
- 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276, 0x8277,
- 0x8278, 0x8279, 0x816d, 0x815f, 0x816e, 0x814f, 0x8151, 0x814d,
- 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, 0x8288,
- 0x8289, 0x828a, 0x828b, 0x828c, 0x828d, 0x828e, 0x828f, 0x8290,
- 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298,
- 0x8299, 0x829a, 0x816f, 0x8162, 0x8170, 0x8150, 0x818f,
-};
-
-typedef struct {
- unsigned short indx; /* index into big table */
- unsigned short used; /* bitmask of used entries */
-} Summary16;
-
-static const Summary16 jisx0208_uni2indx_page00[16] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 6843, 0x1000 }, { 0, 0x0000 }, { 0, 0x0000 }, /* ZINT: Patched reverse solidus (backslash) mapping U+005C to 0x815F */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x118c }, { 5, 0x0053 },
- { 9, 0x0000 }, { 9, 0x0080 }, { 10, 0x0000 }, { 10, 0x0080 },
-};
-static const Summary16 jisx0208_uni2indx_page03[22] = {
- /* 0x0300 */
- { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 },
- { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 },
- { 11, 0x0000 }, { 11, 0xfffe }, { 26, 0x03fb }, { 35, 0xfffe },
- { 50, 0x03fb }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 },
- /* 0x0400 */
- { 59, 0x0002 }, { 60, 0xffff }, { 76, 0xffff }, { 92, 0xffff },
- { 108, 0xffff }, { 124, 0x0002 },
-};
-static const Summary16 jisx0208_uni2indx_page20[50] = {
- /* 0x2000 */
- { 125, 0x0000 }, { 125, 0x3361 }, { 132, 0x0063 }, { 136, 0x080d },
- { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 },
- { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 },
- { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 },
- /* 0x2100 */
- { 140, 0x0008 }, { 141, 0x0000 }, { 141, 0x0800 }, { 142, 0x0000 },
- { 142, 0x0000 }, { 142, 0x0000 }, { 142, 0x0000 }, { 142, 0x0000 },
- { 142, 0x0000 }, { 142, 0x000f }, { 146, 0x0000 }, { 146, 0x0000 },
- { 146, 0x0000 }, { 146, 0x0014 }, { 148, 0x0000 }, { 148, 0x0000 },
- /* 0x2200 */
- { 148, 0x098d }, { 154, 0x6404 }, { 158, 0x1f81 }, { 165, 0x2030 },
- { 168, 0x0000 }, { 168, 0x0004 }, { 169, 0x0cc3 }, { 175, 0x0000 },
- { 175, 0x00cc }, { 179, 0x0000 }, { 179, 0x0020 }, { 180, 0x0000 },
- { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 },
- /* 0x2300 */
- { 180, 0x0000 }, { 180, 0x0004 },
-};
-static const Summary16 jisx0208_uni2indx_page25[23] = {
- /* 0x2500 */
- { 181, 0x900f }, { 187, 0x3999 }, { 195, 0x9939 }, { 203, 0x9999 },
- { 211, 0x0804 }, { 213, 0x0000 }, { 213, 0x0000 }, { 213, 0x0000 },
- { 213, 0x0000 }, { 213, 0x0000 }, { 213, 0x0003 }, { 215, 0x300c },
- { 219, 0xc8c0 }, { 224, 0x0000 }, { 224, 0x8000 }, { 225, 0x0000 },
- /* 0x2600 */
- { 225, 0x0060 }, { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 },
- { 227, 0x0005 }, { 229, 0x0000 }, { 229, 0xa400 },
-};
-static const Summary16 jisx0208_uni2indx_page30[16] = {
- /* 0x3000 */
- { 232, 0xffef }, { 247, 0x103f }, { 254, 0x0000 }, { 254, 0x0000 },
- { 254, 0xfffe }, { 269, 0xffff }, { 285, 0xffff }, { 301, 0xffff },
- { 317, 0xffff }, { 333, 0x780f }, { 341, 0xfffe }, { 356, 0xffff },
- { 372, 0xffff }, { 388, 0xffff }, { 404, 0xffff }, { 420, 0x787f },
-};
-static const Summary16 jisx0208_uni2indx_page4e[1307] = {
- /* 0x4e00 */
- { 431, 0x6f8b }, { 441, 0x43f3 }, { 450, 0x2442 }, { 454, 0x9b46 },
- { 462, 0xe82c }, { 469, 0xe3e0 }, { 477, 0x0004 }, { 478, 0x400a },
- { 481, 0x5f65 }, { 491, 0xdb36 }, { 501, 0x7977 }, { 512, 0x0449 },
- { 516, 0xecd7 }, { 527, 0xe3f0 }, { 536, 0x6038 }, { 541, 0x08c5 },
- /* 0x4f00 */
- { 546, 0xe602 }, { 552, 0x3403 }, { 557, 0x8000 }, { 558, 0x3551 },
- { 565, 0xe0c8 }, { 571, 0x7eab }, { 582, 0x8200 }, { 584, 0x9869 },
- { 591, 0xa948 }, { 597, 0x2942 }, { 602, 0xe803 }, { 608, 0x8060 },
- { 611, 0x441c }, { 616, 0xad93 }, { 625, 0xc03a }, { 631, 0x4568 },
- /* 0x5000 */
- { 637, 0xaa60 }, { 643, 0x8656 }, { 650, 0x3f7a }, { 661, 0x0240 },
- { 663, 0x8388 }, { 668, 0x1461 }, { 673, 0x1020 }, { 675, 0x2174 },
- { 681, 0x2021 }, { 684, 0x0702 }, { 688, 0x3000 }, { 690, 0x40bc },
- { 696, 0xa624 }, { 702, 0x4462 }, { 707, 0x60a8 }, { 712, 0x0a20 },
- /* 0x5100 */
- { 715, 0x0217 }, { 720, 0x8574 }, { 727, 0x0402 }, { 729, 0x9c84 },
- { 735, 0x7bfb }, { 748, 0x1415 }, { 753, 0x7f24 }, { 762, 0x11e2 },
- { 768, 0xb665 }, { 777, 0x02ef }, { 785, 0x1f75 }, { 795, 0x20ff },
- { 804, 0x3a70 }, { 811, 0x3840 }, { 815, 0x26c3 }, { 822, 0x6763 },
- /* 0x5200 */
- { 831, 0x4dd9 }, { 840, 0x2092 }, { 844, 0x46b0 }, { 850, 0x0fc9 },
- { 858, 0xbc98 }, { 866, 0x4850 }, { 870, 0x8638 }, { 876, 0xa03f },
- { 884, 0x2388 }, { 889, 0x8816 }, { 894, 0x3e09 }, { 901, 0x5232 },
- { 907, 0x22aa }, { 913, 0xe3a4 }, { 921, 0x00dd }, { 927, 0xc72c },
- /* 0x5300 */
- { 935, 0xa166 }, { 942, 0x26e1 }, { 949, 0x840b }, { 954, 0x8f0a },
- { 961, 0x27eb }, { 971, 0x559e }, { 980, 0xc241 }, { 985, 0x89bb },
- { 994, 0x0014 }, { 996, 0x8540 }, { 1000, 0x6361 }, { 1007, 0x0849 },
- { 1011, 0x7f0c }, { 1020, 0x8ad0 }, { 1026, 0xff3e }, { 1039, 0x05cf },
- /* 0x5400 */
- { 1047, 0xff1a }, { 1058, 0xa803 }, { 1063, 0x7a41 }, { 1070, 0x7b40 },
- { 1077, 0x4745 }, { 1084, 0x8002 }, { 1086, 0x0500 }, { 1088, 0x38eb },
- { 1097, 0xd851 }, { 1104, 0x0005 }, { 1106, 0x9934 }, { 1113, 0x710c },
- { 1119, 0x0397 }, { 1126, 0x0100 }, { 1127, 0x6366 }, { 1135, 0x2404 },
- /* 0x5500 */
- { 1138, 0x80d0 }, { 1142, 0x0051 }, { 1145, 0xc000 }, { 1147, 0x430a },
- { 1152, 0x9071 }, { 1158, 0x30c8 }, { 1163, 0x0008 }, { 1164, 0x5800 },
- { 1167, 0x0e99 }, { 1174, 0xf700 }, { 1181, 0x5f80 }, { 1188, 0x0041 },
- { 1190, 0x00b0 }, { 1193, 0x9410 }, { 1197, 0x0018 }, { 1199, 0x6280 },
- /* 0x5600 */
- { 1203, 0x0240 }, { 1205, 0x09d0 }, { 1210, 0x8200 }, { 1212, 0x0156 },
- { 1217, 0x5004 }, { 1220, 0x0801 }, { 1222, 0x1d10 }, { 1227, 0x0510 },
- { 1230, 0x84c1 }, { 1235, 0x0010 }, { 1236, 0x4025 }, { 1240, 0x1050 },
- { 1243, 0x410f }, { 1249, 0x4d8a }, { 1256, 0x4009 }, { 1259, 0xa60d },
- /* 0x5700 */
- { 1266, 0xab19 }, { 1274, 0x914c }, { 1280, 0x21c0 }, { 1284, 0x0981 },
- { 1288, 0xc485 }, { 1294, 0x0003 }, { 1296, 0x0652 }, { 1301, 0x8000 },
- { 1302, 0x0b04 }, { 1306, 0x0008 }, { 1307, 0x041d }, { 1312, 0x0009 },
- { 1314, 0x4849 }, { 1319, 0x905c }, { 1325, 0x0009 }, { 1327, 0x1690 },
- /* 0x5800 */
- { 1332, 0x0c65 }, { 1338, 0x2220 }, { 1341, 0x8412 }, { 1345, 0x2433 },
- { 1351, 0x0c03 }, { 1355, 0x4796 }, { 1363, 0x0a04 }, { 1366, 0x4225 },
- { 1371, 0x0028 }, { 1373, 0x9088 }, { 1377, 0x4900 }, { 1380, 0x4f08 },
- { 1386, 0x14a2 }, { 1391, 0xd3aa }, { 1400, 0xd830 }, { 1406, 0x3e87 },
- /* 0x5900 */
- { 1415, 0x8604 }, { 1419, 0x1f61 }, { 1427, 0x7ea4 }, { 1436, 0x4186 },
- { 1441, 0xc390 }, { 1447, 0x05b3 }, { 1454, 0x57a5 }, { 1463, 0x2118 },
- { 1467, 0x241e }, { 1473, 0x2a48 }, { 1478, 0x1128 }, { 1482, 0x4a04 },
- { 1486, 0x0a40 }, { 1489, 0x161b }, { 1496, 0x0d60 }, { 1501, 0x8840 },
- /* 0x5a00 */
- { 1504, 0x020a }, { 1507, 0x9502 }, { 1512, 0x8221 }, { 1516, 0x1060 },
- { 1519, 0x0243 }, { 1523, 0x0400 }, { 1524, 0x1444 }, { 1528, 0x8000 },
- { 1529, 0x0000 }, { 1529, 0x0c04 }, { 1532, 0x0000 }, { 1532, 0x7000 },
- { 1535, 0x1a06 }, { 1540, 0x00c1 }, { 1543, 0x024a }, { 1547, 0x0c00 },
- /* 0x5b00 */
- { 1549, 0x1a00 }, { 1552, 0x0040 }, { 1553, 0x1404 }, { 1556, 0x4045 },
- { 1560, 0x0029 }, { 1563, 0xbdb3 }, { 1574, 0x0a78 }, { 1580, 0x052b },
- { 1586, 0xbba9 }, { 1596, 0xbfa0 }, { 1605, 0x407c }, { 1611, 0x8379 },
- { 1619, 0x12fc }, { 1627, 0xe81d }, { 1635, 0x4bf6 }, { 1645, 0xc569 },
- /* 0x5c00 */
- { 1653, 0xeff6 }, { 1666, 0x044a }, { 1670, 0x2115 }, { 1675, 0xff02 },
- { 1684, 0xed63 }, { 1694, 0x402b }, { 1699, 0xd033 }, { 1706, 0x0242 },
- { 1709, 0x1000 }, { 1710, 0x0013 }, { 1713, 0x1b02 }, { 1718, 0x59ca },
- { 1726, 0x00a0 }, { 1728, 0x0200 }, { 1729, 0xa703 }, { 1736, 0x2c41 },
- /* 0x5d00 */
- { 1741, 0x4880 }, { 1744, 0x8ff2 }, { 1754, 0x0204 }, { 1756, 0x0000 },
- { 1756, 0x5800 }, { 1759, 0x1005 }, { 1762, 0x9200 }, { 1765, 0x0048 },
- { 1767, 0x1894 }, { 1772, 0x2001 }, { 1774, 0x5004 }, { 1777, 0x3480 },
- { 1781, 0x3200 }, { 1784, 0x684c }, { 1790, 0x49ea }, { 1798, 0x68be },
- /* 0x5e00 */
- { 1807, 0x184c }, { 1812, 0x2e42 }, { 1818, 0xa820 }, { 1822, 0x21c9 },
- { 1828, 0x50b9 }, { 1835, 0x80b0 }, { 1839, 0x001e }, { 1843, 0xff7c },
- { 1856, 0x849a }, { 1862, 0x14e0 }, { 1867, 0x28c1 }, { 1872, 0x01e0 },
- { 1876, 0x870e }, { 1883, 0xac49 }, { 1890, 0x130f }, { 1897, 0xdddb },
- /* 0x5f00 */
- { 1909, 0xbe1a }, { 1918, 0x89fb }, { 1928, 0xa2e0 }, { 1934, 0x51a2 },
- { 1940, 0x5502 }, { 1945, 0x32ca }, { 1952, 0x3e46 }, { 1960, 0x928b },
- { 1967, 0x1dbf }, { 1978, 0x438f }, { 1986, 0x6703 }, { 1993, 0x3218 },
- { 1998, 0x3028 }, { 2002, 0x33c0 }, { 2008, 0x0811 }, { 2011, 0xa923 },
- /* 0x6000 */
- { 2018, 0xc000 }, { 2020, 0x3a65 }, { 2028, 0x8fe3 }, { 2038, 0x0402 },
- { 2040, 0x2c4e }, { 2047, 0x8625 }, { 2053, 0xbf3d }, { 2065, 0x00a1 },
- { 2068, 0x3a1a }, { 2075, 0x8cd4 }, { 2082, 0x06c9 }, { 2088, 0x317c },
- { 2096, 0x00e0 }, { 2099, 0x950a }, { 2105, 0x018b }, { 2110, 0x0edb },
- /* 0x6100 */
- { 2119, 0xe34b }, { 2128, 0x8c20 }, { 2132, 0x1182 }, { 2136, 0xf010 },
- { 2141, 0x7d94 }, { 2150, 0xa728 }, { 2157, 0xc9ac }, { 2165, 0x40fb },
- { 2173, 0x4484 }, { 2177, 0x0653 }, { 2183, 0x5a90 }, { 2189, 0x4444 },
- { 2193, 0x3fc8 }, { 2202, 0x0001 }, { 2203, 0x0048 }, { 2205, 0xf5d4 },
- /* 0x6200 */
- { 2215, 0x7701 }, { 2222, 0xec57 }, { 2232, 0xc442 }, { 2237, 0x891d },
- { 2244, 0x6b83 }, { 2252, 0x4928 }, { 2257, 0x4109 }, { 2261, 0xd242 },
- { 2267, 0x061d }, { 2273, 0x59fe }, { 2284, 0x1800 }, { 2286, 0x3a22 },
- { 2292, 0xb7e4 }, { 2302, 0x3b9f }, { 2313, 0xf003 }, { 2319, 0xc0ea },
- /* 0x6300 */
- { 2326, 0x1386 }, { 2332, 0x8202 }, { 2335, 0x8980 }, { 2339, 0xe400 },
- { 2343, 0xb200 }, { 2347, 0x10a1 }, { 2351, 0x4b80 }, { 2356, 0x0cc4 },
- { 2361, 0xd309 }, { 2368, 0x8944 }, { 2373, 0x1faf }, { 2384, 0x4834 },
- { 2389, 0x8259 }, { 2395, 0x0c45 }, { 2400, 0x420a }, { 2404, 0x0450 },
- /* 0x6400 */
- { 2407, 0xa040 }, { 2410, 0x10c8 }, { 2414, 0x3140 }, { 2418, 0x4450 },
- { 2422, 0x4004 }, { 2424, 0x0100 }, { 2425, 0x8280 }, { 2428, 0x0540 },
- { 2431, 0x0108 }, { 2433, 0x442c }, { 2438, 0x6a30 }, { 2444, 0x1a05 },
- { 2449, 0x20a6 }, { 2454, 0x0514 }, { 2458, 0x90cf }, { 2466, 0x6456 },
- /* 0x6500 */
- { 2473, 0x0021 }, { 2475, 0x3100 }, { 2478, 0x9c18 }, { 2484, 0xcbf0 },
- { 2493, 0xa120 }, { 2497, 0x63e2 }, { 2505, 0x104c }, { 2509, 0x01b5 },
- { 2515, 0x538c }, { 2522, 0x9a83 }, { 2529, 0xb8b2 }, { 2537, 0x3281 },
- { 2542, 0x987a }, { 2550, 0x0a84 }, { 2554, 0x33e7 }, { 2564, 0x0c02 },
- /* 0x6600 */
- { 2567, 0xd4cc }, { 2575, 0x9018 }, { 2579, 0xa1a1 }, { 2585, 0x9070 },
- { 2590, 0x8a1e }, { 2597, 0xe004 }, { 2601, 0xc3d4 }, { 2609, 0x0451 },
- { 2613, 0x439a }, { 2620, 0x21c2 }, { 2625, 0x4844 }, { 2629, 0x5310 },
- { 2634, 0x0292 }, { 2638, 0x3640 }, { 2643, 0x0241 }, { 2646, 0xf3bd },
- /* 0x6700 */
- { 2658, 0xab09 }, { 2665, 0xe8f0 }, { 2673, 0x7dc0 }, { 2681, 0xa5d2 },
- { 2689, 0xc242 }, { 2694, 0xd24b }, { 2702, 0xa43f }, { 2711, 0xd0af },
- { 2720, 0x1aa0 }, { 2725, 0x34a1 }, { 2731, 0x8247 }, { 2737, 0x03d8 },
- { 2743, 0xc452 }, { 2749, 0x651b }, { 2757, 0xd294 }, { 2764, 0xc83a },
- /* 0x6800 */
- { 2771, 0x001c }, { 2774, 0x40c8 }, { 2778, 0x0e06 }, { 2783, 0x3314 },
- { 2789, 0x614f }, { 2797, 0xb21b }, { 2805, 0x0088 }, { 2807, 0xc0d0 },
- { 2812, 0xa02a }, { 2817, 0xa898 }, { 2823, 0xa1c5 }, { 2830, 0x166b },
- { 2838, 0x2e50 }, { 2844, 0x85b4 }, { 2851, 0xc08b }, { 2857, 0x0604 },
- /* 0x6900 */
- { 2860, 0xf933 }, { 2870, 0x1e04 }, { 2875, 0x056e }, { 2882, 0xa251 },
- { 2888, 0x0400 }, { 2889, 0x7638 }, { 2897, 0xec07 }, { 2905, 0x73b8 },
- { 2914, 0x4406 }, { 2918, 0x1832 }, { 2923, 0x4081 }, { 2926, 0xc816 },
- { 2932, 0x7c8a }, { 2940, 0x6309 }, { 2946, 0x2980 }, { 2950, 0xaa04 },
- /* 0x6a00 */
- { 2955, 0x1c24 }, { 2960, 0xca9c }, { 2968, 0x4e0e }, { 2975, 0x2760 },
- { 2981, 0x0990 }, { 2985, 0x8300 }, { 2988, 0x0046 }, { 2991, 0x8104 },
- { 2994, 0x6011 }, { 2998, 0x1081 }, { 3001, 0x540d }, { 3007, 0x0908 },
- { 3010, 0x000e }, { 3013, 0xcc0a }, { 3019, 0x0500 }, { 3021, 0x0c00 },
- /* 0x6b00 */
- { 3023, 0x0430 }, { 3026, 0xa044 }, { 3030, 0x008b }, { 3034, 0x6784 },
- { 3041, 0x5288 }, { 3046, 0x8a19 }, { 3052, 0x865e }, { 3060, 0x8b18 },
- { 3066, 0x2e59 }, { 3074, 0x4160 }, { 3078, 0x8c10 }, { 3082, 0x9cbe },
- { 3092, 0x6861 }, { 3098, 0x891c }, { 3104, 0x9800 }, { 3107, 0x0008 },
- /* 0x6c00 */
- { 3108, 0x8100 }, { 3110, 0x089a }, { 3115, 0x0018 }, { 3117, 0x4190 },
- { 3121, 0x4007 }, { 3125, 0xe4a1 }, { 3132, 0x0505 }, { 3136, 0x640d },
- { 3142, 0x310e }, { 3148, 0x0e4d }, { 3155, 0x4806 }, { 3159, 0xff0a },
- { 3169, 0x1632 }, { 3175, 0x2aa8 }, { 3181, 0x852e }, { 3188, 0x000b },
- /* 0x6d00 */
- { 3191, 0x1800 }, { 3193, 0xca84 }, { 3199, 0x0e20 }, { 3203, 0x696c },
- { 3211, 0x0032 }, { 3214, 0x1600 }, { 3217, 0x5658 }, { 3224, 0x0390 },
- { 3228, 0x5120 }, { 3232, 0x1a28 }, { 3237, 0x8000 }, { 3238, 0x1124 },
- { 3242, 0x18e1 }, { 3248, 0x4326 }, { 3254, 0x5d52 }, { 3262, 0x0eaa },
- /* 0x6e00 */
- { 3269, 0x0fa0 }, { 3275, 0xae28 }, { 3282, 0xfa7b }, { 3294, 0x4500 },
- { 3297, 0x6408 }, { 3301, 0x8940 }, { 3305, 0xc880 }, { 3309, 0xc044 },
- { 3313, 0x9005 }, { 3317, 0xb141 }, { 3323, 0x8424 }, { 3327, 0x24c4 },
- { 3332, 0x1a34 }, { 3338, 0x603a }, { 3344, 0x9000 }, { 3346, 0xc194 },
- /* 0x6f00 */
- { 3352, 0x8246 }, { 3357, 0x003a }, { 3361, 0x180d }, { 3366, 0xc106 },
- { 3371, 0x0022 }, { 3373, 0x9910 }, { 3378, 0xe050 }, { 3383, 0x1511 },
- { 3388, 0x4057 }, { 3394, 0x0082 }, { 3396, 0x041a }, { 3400, 0x020a },
- { 3403, 0x004f }, { 3408, 0x8930 }, { 3413, 0xd813 }, { 3420, 0x444a },
- /* 0x7000 */
- { 3425, 0x8a02 }, { 3429, 0xed22 }, { 3437, 0x10c0 }, { 3440, 0x4005 },
- { 3443, 0x1000 }, { 3444, 0x0102 }, { 3446, 0x8808 }, { 3449, 0x3101 },
- { 3453, 0x4600 }, { 3456, 0x0204 }, { 3458, 0xf000 }, { 3462, 0x0708 },
- { 3466, 0x8900 }, { 3469, 0xa200 }, { 3472, 0x0000 }, { 3472, 0x2202 },
- /* 0x7100 */
- { 3475, 0x0200 }, { 3476, 0x1610 }, { 3480, 0x0042 }, { 3482, 0x1040 },
- { 3484, 0x5200 }, { 3487, 0x0260 }, { 3490, 0x52f4 }, { 3498, 0x2000 },
- { 3499, 0x8510 }, { 3503, 0x8230 }, { 3507, 0x1100 }, { 3509, 0x4202 },
- { 3512, 0x4308 }, { 3516, 0x80b5 }, { 3522, 0x70e1 }, { 3529, 0x9a20 },
- /* 0x7200 */
- { 3534, 0x2040 }, { 3536, 0x0801 }, { 3538, 0x3500 }, { 3542, 0xfc65 },
- { 3552, 0x19c1 }, { 3558, 0xab04 }, { 3564, 0x0286 }, { 3568, 0x6214 },
- { 3573, 0x0087 }, { 3577, 0x0044 }, { 3579, 0x9085 }, { 3584, 0x0244 },
- { 3587, 0x405c }, { 3592, 0x0a85 }, { 3597, 0x3207 }, { 3603, 0x3380 },
- /* 0x7300 */
- { 3608, 0x0400 }, { 3609, 0xb8c0 }, { 3615, 0xce20 }, { 3621, 0xc0d0 },
- { 3626, 0xc030 }, { 3630, 0x0080 }, { 3631, 0x0508 }, { 3634, 0x0d25 },
- { 3640, 0x0a90 }, { 3644, 0x0040 }, { 3645, 0x0200 }, { 3646, 0x080c },
- { 3649, 0x6505 }, { 3655, 0x4000 }, { 3656, 0x6421 }, { 3661, 0x4102 },
- /* 0x7400 */
- { 3664, 0x0268 }, { 3668, 0x0000 }, { 3668, 0x0024 }, { 3670, 0x847c },
- { 3677, 0x0002 }, { 3678, 0xde20 }, { 3685, 0x8619 }, { 3691, 0x4049 },
- { 3695, 0x0808 }, { 3697, 0x4000 }, { 3698, 0x0084 }, { 3700, 0x2001 },
- { 3702, 0x8400 }, { 3704, 0x1010 }, { 3706, 0x42cd }, { 3713, 0x01c7 },
- /* 0x7500 */
- { 3719, 0x7038 }, { 3725, 0xd52a }, { 3733, 0x1968 }, { 3739, 0x1d8f },
- { 3748, 0xbe50 }, { 3756, 0x3e12 }, { 3763, 0x2ef5 }, { 3773, 0x81d9 },
- { 3780, 0xcec4 }, { 3788, 0x2412 }, { 3792, 0x0828 }, { 3795, 0x732e },
- { 3804, 0x24ac }, { 3810, 0x4b34 }, { 3817, 0x020c }, { 3820, 0xd41d },
- /* 0x7600 */
- { 3828, 0x2a02 }, { 3832, 0x8000 }, { 3833, 0x0097 }, { 3838, 0x0811 },
- { 3841, 0x11c4 }, { 3846, 0x1144 }, { 3850, 0x1786 }, { 3857, 0x7d45 },
- { 3866, 0x49d9 }, { 3874, 0x0649 }, { 3879, 0x4000 }, { 3880, 0x8791 },
- { 3887, 0x254c }, { 3893, 0xd8c4 }, { 3900, 0x44ba }, { 3907, 0x4914 },
- /* 0x7700 */
- { 3912, 0x1b92 }, { 3919, 0xc800 }, { 3922, 0x0271 }, { 3927, 0x1580 },
- { 3931, 0x0081 }, { 3933, 0x0c00 }, { 3935, 0x096a }, { 3941, 0xc200 },
- { 3944, 0x4800 }, { 3946, 0x4002 }, { 3948, 0x3021 }, { 3952, 0xba49 },
- { 3960, 0x2080 }, { 3962, 0x1c80 }, { 3966, 0xe2ac }, { 3974, 0x1008 },
- /* 0x7800 */
- { 3976, 0x1004 }, { 3978, 0x0034 }, { 3981, 0x00e1 }, { 3985, 0x8414 },
- { 3989, 0x0020 }, { 3990, 0x2000 }, { 3991, 0x9800 }, { 3994, 0x1014 },
- { 3997, 0x70c2 }, { 4003, 0x04aa }, { 4008, 0x8688 }, { 4013, 0x5420 },
- { 4017, 0x0c62 }, { 4022, 0x0413 }, { 4026, 0x9180 }, { 4030, 0x2010 },
- /* 0x7900 */
- { 4032, 0x4082 }, { 4035, 0x0206 }, { 4038, 0x1c40 }, { 4042, 0x5400 },
- { 4045, 0x0383 }, { 4050, 0xe4e9 }, { 4059, 0x2125 }, { 4064, 0x8480 },
- { 4067, 0xe433 }, { 4075, 0x2000 }, { 4076, 0x44c0 }, { 4080, 0xe609 },
- { 4087, 0x0a03 }, { 4091, 0x8126 }, { 4096, 0x12da }, { 4103, 0x0801 },
- /* 0x7a00 */
- { 4105, 0x6901 }, { 4110, 0x9790 }, { 4117, 0x4001 }, { 4119, 0xf886 },
- { 4127, 0xe24d }, { 4135, 0x0081 }, { 4137, 0x0a0e }, { 4142, 0xa651 },
- { 4149, 0x011a }, { 4153, 0x81ec }, { 4160, 0xc600 }, { 4164, 0x8441 },
- { 4168, 0xadb8 }, { 4177, 0xb62c }, { 4185, 0xa46f }, { 4194, 0x8741 },
- /* 0x7b00 */
- { 4200, 0x8d54 }, { 4207, 0x4b02 }, { 4212, 0x1161 }, { 4217, 0x0268 },
- { 4221, 0xbb60 }, { 4229, 0x2057 }, { 4235, 0x50a0 }, { 4239, 0x0433 },
- { 4244, 0xa8c0 }, { 4249, 0xb7b4 }, { 4259, 0x2402 }, { 4262, 0x0112 },
- { 4265, 0x9ad3 }, { 4274, 0x2000 }, { 4275, 0x2271 }, { 4281, 0x00c8 },
- /* 0x7c00 */
- { 4284, 0x2081 }, { 4287, 0x809e }, { 4293, 0x0c8a }, { 4298, 0xe180 },
- { 4303, 0xb009 }, { 4308, 0x8151 }, { 4313, 0x1031 }, { 4317, 0x4028 },
- { 4320, 0x2a0e }, { 4326, 0x89a5 }, { 4333, 0x69b6 }, { 4342, 0x620e },
- { 4348, 0x4425 }, { 4353, 0xd144 }, { 4359, 0x8085 }, { 4363, 0x4d54 },
- /* 0x7d00 */
- { 4370, 0x2c75 }, { 4378, 0x1fb1 }, { 4387, 0xd807 }, { 4394, 0x862d },
- { 4401, 0xd87c }, { 4410, 0x4841 }, { 4414, 0x414e }, { 4420, 0x226e },
- { 4427, 0x8200 }, { 4429, 0x9e08 }, { 4435, 0xf80c }, { 4442, 0xed37 },
- { 4453, 0x8c80 }, { 4457, 0x7526 }, { 4465, 0x9313 }, { 4472, 0x0814 },
- /* 0x7e00 */
- { 4475, 0x0e32 }, { 4481, 0xc804 }, { 4485, 0x484e }, { 4491, 0x6ea6 },
- { 4500, 0x2c4a }, { 4506, 0x6670 }, { 4513, 0x26c0 }, { 4518, 0xba01 },
- { 4524, 0xd30c }, { 4531, 0x185d }, { 4538, 0x0000 }, { 4538, 0x0000 },
- { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 },
- /* 0x7f00 */
- { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0540 },
- { 4541, 0x7020 }, { 4545, 0x8133 }, { 4551, 0x4f81 }, { 4558, 0x03a5 },
- { 4564, 0x55ec }, { 4573, 0x6410 }, { 4577, 0xc318 }, { 4583, 0x2344 },
- { 4588, 0x1462 }, { 4593, 0x0034 }, { 4596, 0x0a43 }, { 4601, 0x1a09 },
- /* 0x8000 */
- { 4606, 0x187b }, { 4614, 0x13a5 }, { 4621, 0x0102 }, { 4623, 0xa848 },
- { 4628, 0x0440 }, { 4630, 0xc544 }, { 4636, 0x8106 }, { 4640, 0xe2dd },
- { 4650, 0x1af0 }, { 4657, 0x2d48 }, { 4663, 0xb626 }, { 4671, 0x0416 },
- { 4675, 0x5058 }, { 4680, 0x6e40 }, { 4686, 0x8032 }, { 4690, 0x3112 },
- /* 0x8100 */
- { 4695, 0x07e4 }, { 4702, 0x0c00 }, { 4704, 0x8208 }, { 4707, 0x420a },
- { 4711, 0x4840 }, { 4714, 0x803b }, { 4720, 0x4860 }, { 4724, 0x8713 },
- { 4731, 0x850d }, { 4737, 0x3428 }, { 4742, 0x0319 }, { 4747, 0xe529 },
- { 4755, 0x2345 }, { 4761, 0x870a }, { 4767, 0x25a9 }, { 4774, 0x5c18 },
- /* 0x8200 */
- { 4780, 0x77a6 }, { 4790, 0xd9c5 }, { 4799, 0x5e00 }, { 4804, 0x03e8 },
- { 4810, 0x0081 }, { 4812, 0xa700 }, { 4817, 0xcd54 }, { 4825, 0x41c6 },
- { 4831, 0x2800 }, { 4833, 0xa204 }, { 4837, 0xb860 }, { 4843, 0x2b0a },
- { 4849, 0x0020 }, { 4850, 0xda9e }, { 4860, 0x08ea }, { 4866, 0x0e1a },
- /* 0x8300 */
- { 4872, 0x427c }, { 4879, 0x11c0 }, { 4883, 0x8908 }, { 4887, 0x0376 },
- { 4894, 0x8621 }, { 4899, 0x0105 }, { 4902, 0x0000 }, { 4902, 0x18a8 },
- { 4907, 0x46a0 }, { 4912, 0xc448 }, { 4917, 0x0d05 }, { 4922, 0x2022 },
- { 4925, 0x5422 }, { 4930, 0x9148 }, { 4935, 0x8a01 }, { 4939, 0x2897 },
- /* 0x8400 */
- { 4946, 0x7898 }, { 4953, 0x0008 }, { 4954, 0x1605 }, { 4959, 0x3122 },
- { 4964, 0x4240 }, { 4967, 0x0880 }, { 4969, 0xfa4e }, { 4979, 0x06a2 },
- { 4984, 0x0814 }, { 4987, 0x9211 }, { 4992, 0x2002 }, { 4994, 0x9b04 },
- { 5000, 0x2e52 }, { 5007, 0x0643 }, { 5012, 0x5000 }, { 5014, 0x9010 },
- /* 0x8500 */
- { 5017, 0x0041 }, { 5019, 0x85ba }, { 5027, 0x3042 }, { 5031, 0x2020 },
- { 5033, 0x4f0b }, { 5041, 0x05a0 }, { 5045, 0x2708 }, { 5050, 0x4080 },
- { 5052, 0x0591 }, { 5057, 0x1a93 }, { 5064, 0xdf50 }, { 5073, 0x0600 },
- { 5075, 0xa202 }, { 5079, 0x3021 }, { 5083, 0x0630 }, { 5087, 0x4e80 },
- /* 0x8600 */
- { 5092, 0x0cc4 }, { 5097, 0x04c8 }, { 5101, 0xa004 }, { 5104, 0x8001 },
- { 5106, 0x6000 }, { 5108, 0xd431 }, { 5115, 0x0880 }, { 5117, 0x0a02 },
- { 5120, 0x1c00 }, { 5123, 0x0028 }, { 5125, 0x8e18 }, { 5131, 0x0041 },
- { 5133, 0x6ad0 }, { 5140, 0xca10 }, { 5145, 0xf210 }, { 5151, 0x4b00 },
- /* 0x8700 */
- { 5155, 0x274d }, { 5163, 0x1506 }, { 5168, 0x0220 }, { 5170, 0x8890 },
- { 5174, 0x5a00 }, { 5178, 0x82a8 }, { 5183, 0x4549 }, { 5189, 0x8150 },
- { 5193, 0x2004 }, { 5195, 0x8000 }, { 5196, 0x8804 }, { 5199, 0x2c08 },
- { 5203, 0x08d1 }, { 5208, 0x0005 }, { 5210, 0x8001 }, { 5212, 0x4ac4 },
- /* 0x8800 */
- { 5218, 0xe020 }, { 5222, 0x0062 }, { 5225, 0x008e }, { 5229, 0x0a42 },
- { 5233, 0x3055 }, { 5239, 0x6a8c }, { 5246, 0x090e }, { 5251, 0xe0a5 },
- { 5258, 0x2906 }, { 5263, 0x42c4 }, { 5268, 0x4814 }, { 5272, 0x80b3 },
- { 5278, 0x803e }, { 5284, 0xb330 }, { 5291, 0x0102 }, { 5293, 0x731c },
- /* 0x8900 */
- { 5301, 0x1494 }, { 5306, 0x600d }, { 5311, 0x0c20 }, { 5314, 0x0940 },
- { 5317, 0x301a }, { 5322, 0xc040 }, { 5325, 0xa451 }, { 5331, 0xc094 },
- { 5336, 0x8dca }, { 5344, 0x05c8 }, { 5349, 0x96c2 }, { 5356, 0xa40c },
- { 5361, 0x0001 }, { 5362, 0x3404 }, { 5366, 0x00c8 }, { 5369, 0x0110 },
- /* 0x8a00 */
- { 5371, 0x550d }, { 5378, 0xa9c9 }, { 5386, 0x2428 }, { 5390, 0x1c5a },
- { 5397, 0x0142 }, { 5400, 0x4837 }, { 5407, 0x7a4d }, { 5416, 0x100f },
- { 5421, 0x32b4 }, { 5428, 0x452a }, { 5434, 0x317b }, { 5443, 0x9205 },
- { 5448, 0xb894 }, { 5455, 0x5c44 }, { 5461, 0x68d7 }, { 5470, 0x458a },
- /* 0x8b00 */
- { 5476, 0x5097 }, { 5483, 0x2ed1 }, { 5491, 0x1943 }, { 5497, 0x4208 },
- { 5500, 0xd202 }, { 5505, 0x9d40 }, { 5511, 0x9840 }, { 5515, 0x2097 },
- { 5521, 0x5409 }, { 5526, 0x064d }, { 5532, 0x0000 }, { 5532, 0x0000 },
- { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 },
- /* 0x8c00 */
- { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x8480 },
- { 5535, 0x5542 }, { 5541, 0x0421 }, { 5544, 0x1c06 }, { 5549, 0x1700 },
- { 5553, 0x7624 }, { 5560, 0x6110 }, { 5564, 0xff87 }, { 5576, 0xb9dd },
- { 5587, 0x659f }, { 5597, 0x5c0a }, { 5603, 0x245d }, { 5610, 0x3c00 },
- /* 0x8d00 */
- { 5614, 0xadb0 }, { 5622, 0x0059 }, { 5626, 0x0000 }, { 5626, 0x0000 },
- { 5626, 0x0000 }, { 5626, 0x0000 }, { 5626, 0x28d0 }, { 5631, 0x009b },
- { 5636, 0x0422 }, { 5639, 0x0200 }, { 5640, 0x0108 }, { 5642, 0x4408 },
- { 5645, 0x9804 }, { 5649, 0xac40 }, { 5654, 0x8d0a }, { 5660, 0x9028 },
- /* 0x8e00 */
- { 5664, 0x8700 }, { 5668, 0xe001 }, { 5672, 0x0400 }, { 5673, 0x0031 },
- { 5676, 0x1794 }, { 5683, 0x8221 }, { 5687, 0x0019 }, { 5690, 0x1054 },
- { 5694, 0x2cb2 }, { 5701, 0x021a }, { 5705, 0x9c02 }, { 5710, 0x4003 },
- { 5713, 0x3d60 }, { 5720, 0x8804 }, { 5723, 0x080c }, { 5726, 0x7900 },
- /* 0x8f00 */
- { 5731, 0x1628 }, { 5736, 0xba3c }, { 5745, 0x8640 }, { 5749, 0xcb08 },
- { 5755, 0x7274 }, { 5763, 0x9080 }, { 5766, 0x001e }, { 5770, 0x0000 },
- { 5770, 0x0000 }, { 5770, 0xd800 }, { 5774, 0xe188 }, { 5780, 0x9c87 },
- { 5788, 0x4034 }, { 5792, 0x0412 }, { 5795, 0xae64 }, { 5803, 0x2791 },
- /* 0x9000 */
- { 5810, 0xe86b }, { 5819, 0xe6fb }, { 5831, 0x408f }, { 5837, 0x5366 },
- { 5845, 0xeea6 }, { 5855, 0x537f }, { 5866, 0xe32b }, { 5875, 0xb5e4 },
- { 5884, 0x869f }, { 5893, 0x0002 }, { 5894, 0x8548 }, { 5899, 0x0122 },
- { 5902, 0x4402 }, { 5905, 0x0800 }, { 5906, 0x2116 }, { 5911, 0x20a0 },
- /* 0x9100 */
- { 5914, 0x0004 }, { 5915, 0x0204 }, { 5917, 0x2000 }, { 5918, 0x0005 },
- { 5920, 0x7e00 }, { 5926, 0x0154 }, { 5930, 0x162c }, { 5936, 0x01ac },
- { 5941, 0x2a84 }, { 5946, 0x1085 }, { 5950, 0x8c14 }, { 5955, 0x0530 },
- { 5959, 0xfbc3 }, { 5970, 0xb943 }, { 5978, 0x00ca }, { 5982, 0x9060 },
- /* 0x9200 */
- { 5986, 0x6000 }, { 5988, 0x4032 }, { 5992, 0x1200 }, { 5994, 0x8090 },
- { 5997, 0x0b30 }, { 6002, 0x4c81 }, { 6007, 0x0054 }, { 6010, 0x4002 },
- { 6012, 0x0029 }, { 6015, 0x1d6a }, { 6023, 0x2000 }, { 6024, 0x0280 },
- { 6026, 0x8000 }, { 6027, 0x0004 }, { 6028, 0x2610 }, { 6032, 0x150c },
- /* 0x9300 */
- { 6037, 0x8040 }, { 6039, 0x0701 }, { 6043, 0xd94d }, { 6052, 0x0c24 },
- { 6056, 0x2810 }, { 6059, 0x1850 }, { 6063, 0x5001 }, { 6066, 0x5020 },
- { 6069, 0x1000 }, { 6070, 0x04d0 }, { 6074, 0x7080 }, { 6078, 0x0201 },
- { 6080, 0x0108 }, { 6082, 0x21c3 }, { 6088, 0x0132 }, { 6092, 0x0000 },
- /* 0x9400 */
- { 6092, 0x0088 }, { 6094, 0x0719 }, { 6100, 0x0802 }, { 6102, 0x0560 },
- { 6106, 0x0012 }, { 6108, 0x4c0e }, { 6114, 0x0405 }, { 6117, 0xf0a1 },
- { 6124, 0x0002 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 },
- { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 },
- /* 0x9500 */
- { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 },
- { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0080 },
- { 6126, 0x8e8d }, { 6134, 0x035a }, { 6140, 0x21bd }, { 6148, 0x5a04 },
- { 6153, 0x3488 }, { 6158, 0x1170 }, { 6163, 0x0026 }, { 6166, 0x0000 },
- /* 0x9600 */
- { 6166, 0x0000 }, { 6166, 0x1000 }, { 6167, 0xc502 }, { 6172, 0x8804 },
- { 6175, 0xb815 }, { 6182, 0xf801 }, { 6188, 0x147c }, { 6195, 0x25ed },
- { 6204, 0xed60 }, { 6212, 0x1bb0 }, { 6219, 0x0589 }, { 6224, 0x1bd7 },
- { 6234, 0x7af3 }, { 6245, 0x1a62 }, { 6251, 0x0d0c }, { 6256, 0x0ac5 },
- /* 0x9700 */
- { 6262, 0xe5d1 }, { 6271, 0x524a }, { 6277, 0x0490 }, { 6280, 0x6305 },
- { 6286, 0x0354 }, { 6291, 0x5244 }, { 6296, 0x2b57 }, { 6305, 0x1612 },
- { 6310, 0xa872 }, { 6317, 0x1101 }, { 6320, 0x2949 }, { 6326, 0x0018 },
- { 6328, 0x0948 }, { 6332, 0x1008 }, { 6334, 0x6000 }, { 6336, 0x886c },
- /* 0x9800 */
- { 6342, 0x916e }, { 6350, 0x058f }, { 6357, 0x3012 }, { 6361, 0x3990 },
- { 6367, 0xf840 }, { 6373, 0x4930 }, { 6378, 0x8880 }, { 6381, 0x001b },
- { 6385, 0x0000 }, { 6385, 0x0000 }, { 6385, 0x8500 }, { 6388, 0x0042 },
- { 6390, 0x0058 }, { 6393, 0x9800 }, { 6396, 0xea04 }, { 6402, 0x7014 },
- /* 0x9900 */
- { 6407, 0x1628 }, { 6412, 0x611d }, { 6419, 0x5113 }, { 6425, 0x6000 },
- { 6427, 0x1a24 }, { 6432, 0x00a7 }, { 6437, 0x0000 }, { 6437, 0x0000 },
- { 6437, 0x0000 }, { 6437, 0x03c0 }, { 6441, 0x7120 }, { 6446, 0x1018 },
- { 6449, 0x0172 }, { 6454, 0xa927 }, { 6462, 0x6004 }, { 6465, 0x8906 },
- /* 0x9a00 */
- { 6470, 0xc022 }, { 6474, 0x020c }, { 6477, 0x0900 }, { 6479, 0x4081 },
- { 6482, 0x202d }, { 6487, 0x8ca0 }, { 6492, 0x0e34 }, { 6498, 0x0000 },
- { 6498, 0x0000 }, { 6498, 0x0000 }, { 6498, 0x2100 }, { 6500, 0x1101 },
- { 6503, 0x8011 }, { 6506, 0xc11a }, { 6512, 0xec4c }, { 6520, 0x0892 },
- /* 0x9b00 */
- { 6524, 0x0040 }, { 6525, 0x8500 }, { 6528, 0xc7ac }, { 6537, 0x1806 },
- { 6541, 0xe03e }, { 6549, 0x0512 }, { 6553, 0x8000 }, { 6554, 0x0010 },
- { 6555, 0x4008 }, { 6557, 0x80ce }, { 6563, 0x6d01 }, { 6569, 0x0210 },
- { 6571, 0x8641 }, { 6576, 0x0856 }, { 6581, 0x011e }, { 6586, 0x0027 },
- /* 0x9c00 */
- { 6590, 0x3750 }, { 6597, 0x083d }, { 6603, 0xe032 }, { 6609, 0x4e05 },
- { 6615, 0x01c0 }, { 6618, 0x0484 }, { 6621, 0x0081 }, { 6623, 0x0140 },
- { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x0000 },
- { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x1aa0 }, { 6630, 0x0059 },
- /* 0x9d00 */
- { 6634, 0x43c8 }, { 6640, 0x8824 }, { 6644, 0x1d48 }, { 6650, 0xc800 },
- { 6653, 0x0152 }, { 6657, 0x7203 }, { 6663, 0x9013 }, { 6668, 0x0404 },
- { 6670, 0x8280 }, { 6673, 0x0400 }, { 6674, 0x8a10 }, { 6678, 0x0d14 },
- { 6683, 0x8056 }, { 6688, 0x0208 }, { 6690, 0xa040 }, { 6693, 0x2704 },
- /* 0x9e00 */
- { 6698, 0x0000 }, { 6698, 0x4c00 }, { 6701, 0x0000 }, { 6701, 0x0000 },
- { 6701, 0x0000 }, { 6701, 0x0000 }, { 6701, 0x0000 }, { 6701, 0xa320 },
- { 6706, 0x1902 }, { 6710, 0xa0ae }, { 6717, 0x2660 }, { 6722, 0xdf00 },
- { 6729, 0xf010 }, { 6734, 0x7b15 }, { 6743, 0x8121 }, { 6747, 0x3ad0 },
- /* 0x9f00 */
- { 6754, 0x4180 }, { 6757, 0x0028 }, { 6759, 0x1003 }, { 6762, 0x4800 },
- { 6764, 0xcc00 }, { 6768, 0x8014 }, { 6771, 0x14cf }, { 6779, 0x00c4 },
- { 6782, 0x2000 }, { 6783, 0x3020 }, { 6786, 0x0001 },
-};
-
-static const Summary16 jisx0208_uni2indx_pageff[15] = {
- /* 0xff00 */
- { 6787, 0xdf7a }, { 6799, 0xffff }, { 6815, 0xffff }, { 6831, 0xffff },
- { 6847, 0xffff }, { 6863, 0x3fff }, { 6877, 0x0000 }, { 6877, 0x0000 },
- { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 },
- { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0028 },
-};
-
-static int jisx0208_wctomb(unsigned int* r, unsigned int wc) {
- const Summary16 *summary = NULL;
- if (wc < 0x0100) {
- summary = &jisx0208_uni2indx_page00[(wc>>4)];
- } else if (wc >= 0x0300 && wc < 0x0460) {
- summary = &jisx0208_uni2indx_page03[(wc>>4)-0x030];
- } else if (wc >= 0x2000 && wc < 0x2320) {
- summary = &jisx0208_uni2indx_page20[(wc>>4)-0x200];
- } else if (wc >= 0x2500 && wc < 0x2670) {
- summary = &jisx0208_uni2indx_page25[(wc>>4)-0x250];
- } else if (wc >= 0x3000 && wc < 0x3100) {
- summary = &jisx0208_uni2indx_page30[(wc>>4)-0x300];
- } else if (wc >= 0x4e00 && wc < 0x9fb0) {
- summary = &jisx0208_uni2indx_page4e[(wc>>4)-0x4e0];
- } else if (wc >= 0xff00 && wc < 0xfff0) {
- summary = &jisx0208_uni2indx_pageff[(wc>>4)-0xff0];
- }
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- /* Keep in 'used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add 'summary->indx' and the number of bits set in 'used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- *r = jisx0208_2charset[summary->indx + used];
- return 2;
- }
- }
- return 0;
-}
-
-/*
- * SHIFT_JIS (libiconv-1.16/lib/sjis.h)
- */
-
-/* Returns 1 or 2 on success, 0 if no mapping */
-INTERNAL int sjis_wctomb_zint(unsigned int* r, unsigned int wc) {
- int ret;
-
- /* Try JIS X 0201-1976. */
- ret = jisx0201_wctomb(r, wc);
- if (ret) {
- return ret;
- }
-
- /* Try JIS X 0208-1990. */
- /* ZINT: Note leaving mapping of full-width reverse solidus U+FF3C to 0x815F (duplicate of patched U+005C) to avoid having to regen tables */
- ret = jisx0208_wctomb(r, wc);
- if (ret) {
- return ret;
- }
-
- /* User-defined range. See
- * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */
- /* ZINT: https://file.allitebooks.com/20160708/CJKV%20Information%20Processing.pdf (table 4-86, p. 286, 2nd ed.) */
- if (wc >= 0xe000 && wc < 0xe758) {
- unsigned char c1, c2;
- c1 = (unsigned int) (wc - 0xe000) / 188;
- c2 = (unsigned int) (wc - 0xe000) % 188;
- *r = ((c1 + 0xf0) << 8) | (c2 < 0x3f ? c2 + 0x40 : c2 + 0x41);
- return 2;
- }
-
- return 0;
-}
-
-/* Convert UTF-8 string to Shift JIS and place in array of ints */
-INTERNAL int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* jisdata) {
- int error_number;
- unsigned int i, length;
-#ifndef _MSC_VER
- unsigned int utfdata[*p_length + 1];
-#else
- unsigned int* utfdata = (unsigned int*) _alloca((*p_length + 1) * sizeof(unsigned int));
-#endif
-
- error_number = utf8_to_unicode(symbol, source, utfdata, p_length, 1 /*disallow_4byte*/);
- if (error_number != 0) {
- return error_number;
- }
-
- for (i = 0, length = *p_length; i < length; i++) {
- if (!sjis_wctomb_zint(jisdata + i, utfdata[i])) {
- strcpy(symbol->errtxt, "800: Invalid character in input data");
- return ZINT_ERROR_INVALID_DATA;
- }
- }
-
- return 0;
-}
-
-/* Convert UTF-8 string to single byte ECI and place in array of ints */
-INTERNAL int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* jisdata, int full_multibyte) {
- int error_number;
-#ifndef _MSC_VER
- unsigned char single_byte[*p_length + 1];
-#else
- unsigned char* single_byte = (unsigned char*) _alloca(*p_length + 1);
-#endif
-
- error_number = utf_to_eci(eci, source, single_byte, p_length);
- if (error_number != 0) {
- // Note not setting `symbol->errtxt`, up to caller
- return error_number;
- }
-
- sjis_cpy(single_byte, p_length, jisdata, full_multibyte);
-
- return 0;
-}
-
-/* If `full_multibyte` set, copy byte input stream to array of ints, putting double-bytes that match QR Kanji mode in a single entry.
- * If `full_multibyte` not set, do a straight copy */
-INTERNAL void sjis_cpy(const unsigned char source[], size_t* p_length, unsigned int* jisdata, int full_multibyte) {
- unsigned int i, j, jis, length;
- unsigned char c;
-
- if (full_multibyte) {
- for (i = 0, j = 0, length = *p_length; i < length; i++, j++) {
- c = source[i];
- if (((c >= 0x81 && c <= 0x9F) || (c >= 0xE0 && c <= 0xEB)) && length - i >= 2) {
- jis = (c << 8) | source[i + 1];
- if ((jis >= 0x8140 && jis <= 0x9FFC) || (jis >= 0xE040 && jis <= 0xEBBF)) {
- /* This may or may not be valid Shift JIS, but don't care as long as it can be encoded in QR Kanji mode */
- jisdata[j] = jis;
- i++;
- } else {
- jisdata[j] = c;
- }
- } else {
- jisdata[j] = c;
- }
- }
- *p_length = j;
- } else {
- /* Straight copy */
- for (i = 0, length = *p_length; i < length; i++) {
- jisdata[i] = source[i];
- }
- }
-}
-/* sjis.h - Unicode to Shift JIS
+/* sjis.h - Unicode to Shift JIS lookup table
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-#ifndef SJIS_H
-#define SJIS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-INTERNAL int sjis_wctomb_zint(unsigned int* r, unsigned int wc);
-INTERNAL int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* jisdata);
-INTERNAL int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* jisdata, int full_multibyte);
-INTERNAL void sjis_cpy(const unsigned char source[], size_t* p_length, unsigned int* jisdata, int full_multibyte);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+/* Derived from :
+## Shift_JIS (JIS X 0208:1997 Appendix 1) vs Unicode mapping table
+##
+## Date: 06 Mar 2002 06:01:22 GMT
+## License:
+## Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.
+## Copyright (C) 2001 I'O, All Rights Reserved.
+## You can use, modify, distribute this table freely.
+ */
-#endif /* SJIS_H */
+static const unsigned short int sjis_lookup[] = {
+ 0x005C, 0x815F, // REVERSE SOLIDUS
+ 0x00A2, 0x8191, // CENT SIGN
+ 0x00A3, 0x8192, // POUND SIGN
+ 0x00A7, 0x8198, // SECTION SIGN
+ 0x00A8, 0x814E, // DIAERESIS
+ 0x00AC, 0x81CA, // NOT SIGN
+ 0x00B0, 0x818B, // DEGREE SIGN
+ 0x00B1, 0x817D, // PLUS-MINUS SIGN
+ 0x00B4, 0x814C, // ACUTE ACCENT
+ 0x00B6, 0x81F7, // PILCROW SIGN
+ 0x00D7, 0x817E, // MULTIPLICATION SIGN
+ 0x00F7, 0x8180, // DIVISION SIGN
+ 0x0391, 0x839F, // GREEK CAPITAL LETTER ALPHA
+ 0x0392, 0x83A0, // GREEK CAPITAL LETTER BETA
+ 0x0393, 0x83A1, // GREEK CAPITAL LETTER GAMMA
+ 0x0394, 0x83A2, // GREEK CAPITAL LETTER DELTA
+ 0x0395, 0x83A3, // GREEK CAPITAL LETTER EPSILON
+ 0x0396, 0x83A4, // GREEK CAPITAL LETTER ZETA
+ 0x0397, 0x83A5, // GREEK CAPITAL LETTER ETA
+ 0x0398, 0x83A6, // GREEK CAPITAL LETTER THETA
+ 0x0399, 0x83A7, // GREEK CAPITAL LETTER IOTA
+ 0x039A, 0x83A8, // GREEK CAPITAL LETTER KAPPA
+ 0x039B, 0x83A9, // GREEK CAPITAL LETTER LAMDA
+ 0x039C, 0x83AA, // GREEK CAPITAL LETTER MU
+ 0x039D, 0x83AB, // GREEK CAPITAL LETTER NU
+ 0x039E, 0x83AC, // GREEK CAPITAL LETTER XI
+ 0x039F, 0x83AD, // GREEK CAPITAL LETTER OMICRON
+ 0x03A0, 0x83AE, // GREEK CAPITAL LETTER PI
+ 0x03A1, 0x83AF, // GREEK CAPITAL LETTER RHO
+ 0x03A3, 0x83B0, // GREEK CAPITAL LETTER SIGMA
+ 0x03A4, 0x83B1, // GREEK CAPITAL LETTER TAU
+ 0x03A5, 0x83B2, // GREEK CAPITAL LETTER UPSILON
+ 0x03A6, 0x83B3, // GREEK CAPITAL LETTER PHI
+ 0x03A7, 0x83B4, // GREEK CAPITAL LETTER CHI
+ 0x03A8, 0x83B5, // GREEK CAPITAL LETTER PSI
+ 0x03A9, 0x83B6, // GREEK CAPITAL LETTER OMEGA
+ 0x03B1, 0x83BF, // GREEK SMALL LETTER ALPHA
+ 0x03B2, 0x83C0, // GREEK SMALL LETTER BETA
+ 0x03B3, 0x83C1, // GREEK SMALL LETTER GAMMA
+ 0x03B4, 0x83C2, // GREEK SMALL LETTER DELTA
+ 0x03B5, 0x83C3, // GREEK SMALL LETTER EPSILON
+ 0x03B6, 0x83C4, // GREEK SMALL LETTER ZETA
+ 0x03B7, 0x83C5, // GREEK SMALL LETTER ETA
+ 0x03B8, 0x83C6, // GREEK SMALL LETTER THETA
+ 0x03B9, 0x83C7, // GREEK SMALL LETTER IOTA
+ 0x03BA, 0x83C8, // GREEK SMALL LETTER KAPPA
+ 0x03BB, 0x83C9, // GREEK SMALL LETTER LAMDA
+ 0x03BC, 0x83CA, // GREEK SMALL LETTER MU
+ 0x03BD, 0x83CB, // GREEK SMALL LETTER NU
+ 0x03BE, 0x83CC, // GREEK SMALL LETTER XI
+ 0x03BF, 0x83CD, // GREEK SMALL LETTER OMICRON
+ 0x03C0, 0x83CE, // GREEK SMALL LETTER PI
+ 0x03C1, 0x83CF, // GREEK SMALL LETTER RHO
+ 0x03C3, 0x83D0, // GREEK SMALL LETTER SIGMA
+ 0x03C4, 0x83D1, // GREEK SMALL LETTER TAU
+ 0x03C5, 0x83D2, // GREEK SMALL LETTER UPSILON
+ 0x03C6, 0x83D3, // GREEK SMALL LETTER PHI
+ 0x03C7, 0x83D4, // GREEK SMALL LETTER CHI
+ 0x03C8, 0x83D5, // GREEK SMALL LETTER PSI
+ 0x03C9, 0x83D6, // GREEK SMALL LETTER OMEGA
+ 0x0401, 0x8446, // CYRILLIC CAPITAL LETTER IO
+ 0x0410, 0x8440, // CYRILLIC CAPITAL LETTER A
+ 0x0411, 0x8441, // CYRILLIC CAPITAL LETTER BE
+ 0x0412, 0x8442, // CYRILLIC CAPITAL LETTER VE
+ 0x0413, 0x8443, // CYRILLIC CAPITAL LETTER GHE
+ 0x0414, 0x8444, // CYRILLIC CAPITAL LETTER DE
+ 0x0415, 0x8445, // CYRILLIC CAPITAL LETTER IE
+ 0x0416, 0x8447, // CYRILLIC CAPITAL LETTER ZHE
+ 0x0417, 0x8448, // CYRILLIC CAPITAL LETTER ZE
+ 0x0418, 0x8449, // CYRILLIC CAPITAL LETTER I
+ 0x0419, 0x844A, // CYRILLIC CAPITAL LETTER SHORT I
+ 0x041A, 0x844B, // CYRILLIC CAPITAL LETTER KA
+ 0x041B, 0x844C, // CYRILLIC CAPITAL LETTER EL
+ 0x041C, 0x844D, // CYRILLIC CAPITAL LETTER EM
+ 0x041D, 0x844E, // CYRILLIC CAPITAL LETTER EN
+ 0x041E, 0x844F, // CYRILLIC CAPITAL LETTER O
+ 0x041F, 0x8450, // CYRILLIC CAPITAL LETTER PE
+ 0x0420, 0x8451, // CYRILLIC CAPITAL LETTER ER
+ 0x0421, 0x8452, // CYRILLIC CAPITAL LETTER ES
+ 0x0422, 0x8453, // CYRILLIC CAPITAL LETTER TE
+ 0x0423, 0x8454, // CYRILLIC CAPITAL LETTER U
+ 0x0424, 0x8455, // CYRILLIC CAPITAL LETTER EF
+ 0x0425, 0x8456, // CYRILLIC CAPITAL LETTER HA
+ 0x0426, 0x8457, // CYRILLIC CAPITAL LETTER TSE
+ 0x0427, 0x8458, // CYRILLIC CAPITAL LETTER CHE
+ 0x0428, 0x8459, // CYRILLIC CAPITAL LETTER SHA
+ 0x0429, 0x845A, // CYRILLIC CAPITAL LETTER SHCHA
+ 0x042B, 0x845C, // CYRILLIC CAPITAL LETTER YERU
+ 0x042C, 0x845D, // CYRILLIC CAPITAL LETTER SOFT SIGN
+ 0x042D, 0x845E, // CYRILLIC CAPITAL LETTER E
+ 0x042E, 0x845F, // CYRILLIC CAPITAL LETTER YU
+ 0x042F, 0x8460, // CYRILLIC CAPITAL LETTER YA
+ 0x0430, 0x8470, // CYRILLIC SMALL LETTER A
+ 0x0431, 0x8471, // CYRILLIC SMALL LETTER BE
+ 0x0432, 0x8472, // CYRILLIC SMALL LETTER VE
+ 0x0433, 0x8473, // CYRILLIC SMALL LETTER GHE
+ 0x0434, 0x8474, // CYRILLIC SMALL LETTER DE
+ 0x0435, 0x8475, // CYRILLIC SMALL LETTER IE
+ 0x0436, 0x8477, // CYRILLIC SMALL LETTER ZHE
+ 0x0437, 0x8478, // CYRILLIC SMALL LETTER ZE
+ 0x0438, 0x8479, // CYRILLIC SMALL LETTER I
+ 0x0439, 0x847A, // CYRILLIC SMALL LETTER SHORT I
+ 0x043A, 0x847B, // CYRILLIC SMALL LETTER KA
+ 0x043B, 0x847C, // CYRILLIC SMALL LETTER EL
+ 0x043C, 0x847D, // CYRILLIC SMALL LETTER EM
+ 0x043D, 0x847E, // CYRILLIC SMALL LETTER EN
+ 0x043E, 0x8480, // CYRILLIC SMALL LETTER O
+ 0x043F, 0x8481, // CYRILLIC SMALL LETTER PE
+ 0x0440, 0x8482, // CYRILLIC SMALL LETTER ER
+ 0x0441, 0x8483, // CYRILLIC SMALL LETTER ES
+ 0x0442, 0x8484, // CYRILLIC SMALL LETTER TE
+ 0x0443, 0x8485, // CYRILLIC SMALL LETTER U
+ 0x0444, 0x8486, // CYRILLIC SMALL LETTER EF
+ 0x0445, 0x8487, // CYRILLIC SMALL LETTER HA
+ 0x0446, 0x8488, // CYRILLIC SMALL LETTER TSE
+ 0x0447, 0x8489, // CYRILLIC SMALL LETTER CHE
+ 0x0448, 0x848A, // CYRILLIC SMALL LETTER SHA
+ 0x0449, 0x848B, // CYRILLIC SMALL LETTER SHCHA
+ 0x044A, 0x848C, // CYRILLIC SMALL LETTER HARD SIGN
+ 0x044B, 0x848D, // CYRILLIC SMALL LETTER YERU
+ 0x044C, 0x848E, // CYRILLIC SMALL LETTER SOFT SIGN
+ 0x044D, 0x848F, // CYRILLIC SMALL LETTER E
+ 0x044E, 0x8490, // CYRILLIC SMALL LETTER YU
+ 0x044F, 0x8491, // CYRILLIC SMALL LETTER YA
+ 0x0451, 0x8476, // CYRILLIC SMALL LETTER IO
+ 0x2010, 0x815D, // HYPHEN
+ 0x2014, 0x815C, // EM DASH
+ 0x2016, 0x8161, // DOUBLE VERTICAL LINE
+ 0x2018, 0x8165, // LEFT SINGLE QUOTATION MARK
+ 0x2019, 0x8166, // RIGHT SINGLE QUOTATION MARK
+ 0x201C, 0x8167, // LEFT DOUBLE QUOTATION MARK
+ 0x201D, 0x8168, // RIGHT DOUBLE QUOTATION MARK
+ 0x2020, 0x81F5, // DAGGER
+ 0x2021, 0x81F6, // DOUBLE DAGGER
+ 0x2025, 0x8164, // TWO DOT LEADER
+ 0x2026, 0x8163, // HORIZONTAL ELLIPSIS
+ 0x2030, 0x81F1, // PER MILLE SIGN
+ 0x2032, 0x818C, // PRIME
+ 0x2033, 0x818D, // DOUBLE PRIME
+ 0x203B, 0x81A6, // REFERENCE MARK
+ 0x2103, 0x818E, // DEGREE CELSIUS
+ 0x212B, 0x81F0, // ANGSTROM SIGN
+ 0x2190, 0x81A9, // LEFTWARDS ARROW
+ 0x2191, 0x81AA, // UPWARDS ARROW
+ 0x2192, 0x81A8, // RIGHTWARDS ARROW
+ 0x2193, 0x81AB, // DOWNWARDS ARROW
+ 0x21D2, 0x81CB, // RIGHTWARDS DOUBLE ARROW
+ 0x21D4, 0x81CC, // LEFT RIGHT DOUBLE ARROW
+ 0x2200, 0x81CD, // FOR ALL
+ 0x2202, 0x81DD, // PARTIAL DIFFERENTIAL
+ 0x2203, 0x81CE, // THERE EXISTS
+ 0x2207, 0x81DE, // NABLA
+ 0x2208, 0x81B8, // ELEMENT OF
+ 0x220B, 0x81B9, // CONTAINS AS MEMBER
+ 0x2212, 0x817C, // MINUS SIGN
+ 0x221A, 0x81E3, // SQUARE ROOT
+ 0x221D, 0x81E5, // PROPORTIONAL TO
+ 0x221E, 0x8187, // INFINITY
+ 0x2220, 0x81DA, // ANGLE
+ 0x2227, 0x81C8, // LOGICAL AND
+ 0x2228, 0x81C9, // LOGICAL OR
+ 0x2229, 0x81BF, // INTERSECTION
+ 0x222A, 0x81BE, // UNION
+ 0x222B, 0x81E7, // INTEGRAL
+ 0x222C, 0x81E8, // DOUBLE INTEGRAL
+ 0x2234, 0x8188, // THEREFORE
+ 0x2235, 0x81E6, // BECAUSE
+ 0x223D, 0x81E4, // REVERSED TILDE
+ 0x2252, 0x81E0, // APPROXIMATELY EQUAL TO OR THE IMAGE OF
+ 0x2260, 0x8182, // NOT EQUAL TO
+ 0x2261, 0x81DF, // IDENTICAL TO
+ 0x2266, 0x8185, // LESS-THAN OVER EQUAL TO
+ 0x2267, 0x8186, // GREATER-THAN OVER EQUAL TO
+ 0x226A, 0x81E1, // MUCH LESS-THAN
+ 0x226B, 0x81E2, // MUCH GREATER-THAN
+ 0x2282, 0x81BC, // SUBSET OF
+ 0x2283, 0x81BD, // SUPERSET OF
+ 0x2286, 0x81BA, // SUBSET OF OR EQUAL TO
+ 0x2287, 0x81BB, // SUPERSET OF OR EQUAL TO
+ 0x22A5, 0x81DB, // UP TACK
+ 0x2312, 0x81DC, // ARC
+ 0x2500, 0x849F, // BOX DRAWINGS LIGHT HORIZONTAL
+ 0x2501, 0x84AA, // BOX DRAWINGS HEAVY HORIZONTAL
+ 0x2502, 0x84A0, // BOX DRAWINGS LIGHT VERTICAL
+ 0x2503, 0x84AB, // BOX DRAWINGS HEAVY VERTICAL
+ 0x250C, 0x84A1, // BOX DRAWINGS LIGHT DOWN AND RIGHT
+ 0x250F, 0x84AC, // BOX DRAWINGS HEAVY DOWN AND RIGHT
+ 0x2510, 0x84A2, // BOX DRAWINGS LIGHT DOWN AND LEFT
+ 0x2513, 0x84AD, // BOX DRAWINGS HEAVY DOWN AND LEFT
+ 0x2514, 0x84A4, // BOX DRAWINGS LIGHT UP AND RIGHT
+ 0x2517, 0x84AF, // BOX DRAWINGS HEAVY UP AND RIGHT
+ 0x2518, 0x84A3, // BOX DRAWINGS LIGHT UP AND LEFT
+ 0x251B, 0x84AE, // BOX DRAWINGS HEAVY UP AND LEFT
+ 0x251C, 0x84A5, // BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ 0x251D, 0x84BA, // BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+ 0x2520, 0x84B5, // BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+ 0x2523, 0x84B0, // BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+ 0x2524, 0x84A7, // BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ 0x2525, 0x84BC, // BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+ 0x2528, 0x84B7, // BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+ 0x252B, 0x84B2, // BOX DRAWINGS HEAVY VERTICAL AND LEFT
+ 0x252C, 0x84A6, // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ 0x252F, 0x84B6, // BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+ 0x2530, 0x84BB, // BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+ 0x2533, 0x84B1, // BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+ 0x2534, 0x84A8, // BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ 0x2537, 0x84B8, // BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+ 0x2538, 0x84BD, // BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+ 0x253B, 0x84B3, // BOX DRAWINGS HEAVY UP AND HORIZONTAL
+ 0x253C, 0x84A9, // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ 0x253F, 0x84B9, // BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+ 0x2542, 0x84BE, // BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+ 0x254B, 0x84B4, // BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+ 0x25A0, 0x81A1, // BLACK SQUARE
+ 0x25A1, 0x81A0, // WHITE SQUARE
+ 0x25B2, 0x81A3, // BLACK UP-POINTING TRIANGLE
+ 0x25B3, 0x81A2, // WHITE UP-POINTING TRIANGLE
+ 0x25BC, 0x81A5, // BLACK DOWN-POINTING TRIANGLE
+ 0x25BD, 0x81A4, // WHITE DOWN-POINTING TRIANGLE
+ 0x25C6, 0x819F, // BLACK DIAMOND
+ 0x25C7, 0x819E, // WHITE DIAMOND
+ 0x25CB, 0x819B, // WHITE CIRCLE
+ 0x25CE, 0x819D, // BULLSEYE
+ 0x25CF, 0x819C, // BLACK CIRCLE
+ 0x25EF, 0x81FC, // LARGE CIRCLE
+ 0x2605, 0x819A, // BLACK STAR
+ 0x2606, 0x8199, // WHITE STAR
+ 0x2640, 0x818A, // FEMALE SIGN
+ 0x2642, 0x8189, // MALE SIGN
+ 0x266A, 0x81F4, // EIGHTH NOTE
+ 0x266D, 0x81F3, // MUSIC FLAT SIGN
+ 0x266F, 0x81F2, // MUSIC SHARP SIGN
+ 0x3000, 0x8140, // IDEOGRAPHIC SPACE
+ 0x3001, 0x8141, // IDEOGRAPHIC COMMA
+ 0x3002, 0x8142, // IDEOGRAPHIC FULL STOP
+ 0x3003, 0x8156, // DITTO MARK
+ 0x3005, 0x8158, // IDEOGRAPHIC ITERATION MARK
+ 0x3006, 0x8159, // IDEOGRAPHIC CLOSING MARK
+ 0x3007, 0x815A, // IDEOGRAPHIC NUMBER ZERO
+ 0x3008, 0x8171, // LEFT ANGLE BRACKET
+ 0x3009, 0x8172, // RIGHT ANGLE BRACKET
+ 0x300A, 0x8173, // LEFT DOUBLE ANGLE BRACKET
+ 0x300B, 0x8174, // RIGHT DOUBLE ANGLE BRACKET
+ 0x300C, 0x8175, // LEFT CORNER BRACKET
+ 0x300D, 0x8176, // RIGHT CORNER BRACKET
+ 0x300E, 0x8177, // LEFT WHITE CORNER BRACKET
+ 0x300F, 0x8178, // RIGHT WHITE CORNER BRACKET
+ 0x3010, 0x8179, // LEFT BLACK LENTICULAR BRACKET
+ 0x3011, 0x817A, // RIGHT BLACK LENTICULAR BRACKET
+ 0x3012, 0x81A7, // POSTAL MARK
+ 0x3013, 0x81AC, // GETA MARK
+ 0x3014, 0x816B, // LEFT TORTOISE SHELL BRACKET
+ 0x3015, 0x816C, // RIGHT TORTOISE SHELL BRACKET
+ 0x301C, 0x8160, // WAVE DASH
+ 0x3041, 0x829F, // HIRAGANA LETTER SMALL A
+ 0x3042, 0x82A0, // HIRAGANA LETTER A
+ 0x3043, 0x82A1, // HIRAGANA LETTER SMALL I
+ 0x3044, 0x82A2, // HIRAGANA LETTER I
+ 0x3045, 0x82A3, // HIRAGANA LETTER SMALL U
+ 0x3046, 0x82A4, // HIRAGANA LETTER U
+ 0x3047, 0x82A5, // HIRAGANA LETTER SMALL E
+ 0x3048, 0x82A6, // HIRAGANA LETTER E
+ 0x3049, 0x82A7, // HIRAGANA LETTER SMALL O
+ 0x304A, 0x82A8, // HIRAGANA LETTER O
+ 0x304B, 0x82A9, // HIRAGANA LETTER KA
+ 0x304C, 0x82AA, // HIRAGANA LETTER GA
+ 0x304D, 0x82AB, // HIRAGANA LETTER KI
+ 0x304E, 0x82AC, // HIRAGANA LETTER GI
+ 0x304F, 0x82AD, // HIRAGANA LETTER KU
+ 0x3050, 0x82AE, // HIRAGANA LETTER GU
+ 0x3051, 0x82AF, // HIRAGANA LETTER KE
+ 0x3052, 0x82B0, // HIRAGANA LETTER GE
+ 0x3053, 0x82B1, // HIRAGANA LETTER KO
+ 0x3054, 0x82B2, // HIRAGANA LETTER GO
+ 0x3055, 0x82B3, // HIRAGANA LETTER SA
+ 0x3056, 0x82B4, // HIRAGANA LETTER ZA
+ 0x3057, 0x82B5, // HIRAGANA LETTER SI
+ 0x3058, 0x82B6, // HIRAGANA LETTER ZI
+ 0x3059, 0x82B7, // HIRAGANA LETTER SU
+ 0x305A, 0x82B8, // HIRAGANA LETTER ZU
+ 0x305B, 0x82B9, // HIRAGANA LETTER SE
+ 0x305C, 0x82BA, // HIRAGANA LETTER ZE
+ 0x305D, 0x82BB, // HIRAGANA LETTER SO
+ 0x305E, 0x82BC, // HIRAGANA LETTER ZO
+ 0x305F, 0x82BD, // HIRAGANA LETTER TA
+ 0x3060, 0x82BE, // HIRAGANA LETTER DA
+ 0x3061, 0x82BF, // HIRAGANA LETTER TI
+ 0x3062, 0x82C0, // HIRAGANA LETTER DI
+ 0x3063, 0x82C1, // HIRAGANA LETTER SMALL TU
+ 0x3064, 0x82C2, // HIRAGANA LETTER TU
+ 0x3065, 0x82C3, // HIRAGANA LETTER DU
+ 0x3066, 0x82C4, // HIRAGANA LETTER TE
+ 0x3067, 0x82C5, // HIRAGANA LETTER DE
+ 0x3068, 0x82C6, // HIRAGANA LETTER TO
+ 0x3069, 0x82C7, // HIRAGANA LETTER DO
+ 0x306A, 0x82C8, // HIRAGANA LETTER NA
+ 0x306B, 0x82C9, // HIRAGANA LETTER NI
+ 0x306C, 0x82CA, // HIRAGANA LETTER NU
+ 0x306D, 0x82CB, // HIRAGANA LETTER NE
+ 0x306E, 0x82CC, // HIRAGANA LETTER NO
+ 0x306F, 0x82CD, // HIRAGANA LETTER HA
+ 0x3070, 0x82CE, // HIRAGANA LETTER BA
+ 0x3071, 0x82CF, // HIRAGANA LETTER PA
+ 0x3072, 0x82D0, // HIRAGANA LETTER HI
+ 0x3073, 0x82D1, // HIRAGANA LETTER BI
+ 0x3074, 0x82D2, // HIRAGANA LETTER PI
+ 0x3075, 0x82D3, // HIRAGANA LETTER HU
+ 0x3076, 0x82D4, // HIRAGANA LETTER BU
+ 0x3077, 0x82D5, // HIRAGANA LETTER PU
+ 0x3078, 0x82D6, // HIRAGANA LETTER HE
+ 0x3079, 0x82D7, // HIRAGANA LETTER BE
+ 0x307A, 0x82D8, // HIRAGANA LETTER PE
+ 0x307B, 0x82D9, // HIRAGANA LETTER HO
+ 0x307C, 0x82DA, // HIRAGANA LETTER BO
+ 0x307D, 0x82DB, // HIRAGANA LETTER PO
+ 0x307E, 0x82DC, // HIRAGANA LETTER MA
+ 0x307F, 0x82DD, // HIRAGANA LETTER MI
+ 0x3080, 0x82DE, // HIRAGANA LETTER MU
+ 0x3081, 0x82DF, // HIRAGANA LETTER ME
+ 0x3082, 0x82E0, // HIRAGANA LETTER MO
+ 0x3083, 0x82E1, // HIRAGANA LETTER SMALL YA
+ 0x3084, 0x82E2, // HIRAGANA LETTER YA
+ 0x3085, 0x82E3, // HIRAGANA LETTER SMALL YU
+ 0x3086, 0x82E4, // HIRAGANA LETTER YU
+ 0x3087, 0x82E5, // HIRAGANA LETTER SMALL YO
+ 0x3088, 0x82E6, // HIRAGANA LETTER YO
+ 0x3089, 0x82E7, // HIRAGANA LETTER RA
+ 0x308A, 0x82E8, // HIRAGANA LETTER RI
+ 0x308B, 0x82E9, // HIRAGANA LETTER RU
+ 0x308C, 0x82EA, // HIRAGANA LETTER RE
+ 0x308D, 0x82EB, // HIRAGANA LETTER RO
+ 0x308E, 0x82EC, // HIRAGANA LETTER SMALL WA
+ 0x308F, 0x82ED, // HIRAGANA LETTER WA
+ 0x3090, 0x82EE, // HIRAGANA LETTER WI
+ 0x3091, 0x82EF, // HIRAGANA LETTER WE
+ 0x3092, 0x82F0, // HIRAGANA LETTER WO
+ 0x3093, 0x82F1, // HIRAGANA LETTER N
+ 0x309B, 0x814A, // KATAKANA-HIRAGANA VOICED SOUND MARK
+ 0x309C, 0x814B, // KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ 0x309D, 0x8154, // HIRAGANA ITERATION MARK
+ 0x309E, 0x8155, // HIRAGANA VOICED ITERATION MARK
+ 0x30A1, 0x8340, // KATAKANA LETTER SMALL A
+ 0x30A2, 0x8341, // KATAKANA LETTER A
+ 0x30A3, 0x8342, // KATAKANA LETTER SMALL I
+ 0x30A4, 0x8343, // KATAKANA LETTER I
+ 0x30A5, 0x8344, // KATAKANA LETTER SMALL U
+ 0x30A6, 0x8345, // KATAKANA LETTER U
+ 0x30A7, 0x8346, // KATAKANA LETTER SMALL E
+ 0x30A8, 0x8347, // KATAKANA LETTER E
+ 0x30A9, 0x8348, // KATAKANA LETTER SMALL O
+ 0x30AA, 0x8349, // KATAKANA LETTER O
+ 0x30AB, 0x834A, // KATAKANA LETTER KA
+ 0x30AC, 0x834B, // KATAKANA LETTER GA
+ 0x30AD, 0x834C, // KATAKANA LETTER KI
+ 0x30AE, 0x834D, // KATAKANA LETTER GI
+ 0x30AF, 0x834E, // KATAKANA LETTER KU
+ 0x30B0, 0x834F, // KATAKANA LETTER GU
+ 0x30B1, 0x8350, // KATAKANA LETTER KE
+ 0x30B2, 0x8351, // KATAKANA LETTER GE
+ 0x30B3, 0x8352, // KATAKANA LETTER KO
+ 0x30B4, 0x8353, // KATAKANA LETTER GO
+ 0x30B5, 0x8354, // KATAKANA LETTER SA
+ 0x30B6, 0x8355, // KATAKANA LETTER ZA
+ 0x30B7, 0x8356, // KATAKANA LETTER SI
+ 0x30B8, 0x8357, // KATAKANA LETTER ZI
+ 0x30B9, 0x8358, // KATAKANA LETTER SU
+ 0x30BA, 0x8359, // KATAKANA LETTER ZU
+ 0x30BB, 0x835A, // KATAKANA LETTER SE
+ 0x30BD, 0x835C, // KATAKANA LETTER SO
+ 0x30BE, 0x835D, // KATAKANA LETTER ZO
+ 0x30BF, 0x835E, // KATAKANA LETTER TA
+ 0x30C0, 0x835F, // KATAKANA LETTER DA
+ 0x30C1, 0x8360, // KATAKANA LETTER TI
+ 0x30C2, 0x8361, // KATAKANA LETTER DI
+ 0x30C3, 0x8362, // KATAKANA LETTER SMALL TU
+ 0x30C4, 0x8363, // KATAKANA LETTER TU
+ 0x30C5, 0x8364, // KATAKANA LETTER DU
+ 0x30C6, 0x8365, // KATAKANA LETTER TE
+ 0x30C7, 0x8366, // KATAKANA LETTER DE
+ 0x30C8, 0x8367, // KATAKANA LETTER TO
+ 0x30C9, 0x8368, // KATAKANA LETTER DO
+ 0x30CA, 0x8369, // KATAKANA LETTER NA
+ 0x30CB, 0x836A, // KATAKANA LETTER NI
+ 0x30CC, 0x836B, // KATAKANA LETTER NU
+ 0x30CD, 0x836C, // KATAKANA LETTER NE
+ 0x30CE, 0x836D, // KATAKANA LETTER NO
+ 0x30CF, 0x836E, // KATAKANA LETTER HA
+ 0x30D0, 0x836F, // KATAKANA LETTER BA
+ 0x30D1, 0x8370, // KATAKANA LETTER PA
+ 0x30D2, 0x8371, // KATAKANA LETTER HI
+ 0x30D3, 0x8372, // KATAKANA LETTER BI
+ 0x30D4, 0x8373, // KATAKANA LETTER PI
+ 0x30D5, 0x8374, // KATAKANA LETTER HU
+ 0x30D6, 0x8375, // KATAKANA LETTER BU
+ 0x30D7, 0x8376, // KATAKANA LETTER PU
+ 0x30D8, 0x8377, // KATAKANA LETTER HE
+ 0x30D9, 0x8378, // KATAKANA LETTER BE
+ 0x30DA, 0x8379, // KATAKANA LETTER PE
+ 0x30DB, 0x837A, // KATAKANA LETTER HO
+ 0x30DC, 0x837B, // KATAKANA LETTER BO
+ 0x30DD, 0x837C, // KATAKANA LETTER PO
+ 0x30DE, 0x837D, // KATAKANA LETTER MA
+ 0x30DF, 0x837E, // KATAKANA LETTER MI
+ 0x30E0, 0x8380, // KATAKANA LETTER MU
+ 0x30E1, 0x8381, // KATAKANA LETTER ME
+ 0x30E2, 0x8382, // KATAKANA LETTER MO
+ 0x30E3, 0x8383, // KATAKANA LETTER SMALL YA
+ 0x30E4, 0x8384, // KATAKANA LETTER YA
+ 0x30E5, 0x8385, // KATAKANA LETTER SMALL YU
+ 0x30E6, 0x8386, // KATAKANA LETTER YU
+ 0x30E7, 0x8387, // KATAKANA LETTER SMALL YO
+ 0x30E8, 0x8388, // KATAKANA LETTER YO
+ 0x30E9, 0x8389, // KATAKANA LETTER RA
+ 0x30EA, 0x838A, // KATAKANA LETTER RI
+ 0x30EB, 0x838B, // KATAKANA LETTER RU
+ 0x30EC, 0x838C, // KATAKANA LETTER RE
+ 0x30ED, 0x838D, // KATAKANA LETTER RO
+ 0x30EE, 0x838E, // KATAKANA LETTER SMALL WA
+ 0x30EF, 0x838F, // KATAKANA LETTER WA
+ 0x30F0, 0x8390, // KATAKANA LETTER WI
+ 0x30F1, 0x8391, // KATAKANA LETTER WE
+ 0x30F2, 0x8392, // KATAKANA LETTER WO
+ 0x30F3, 0x8393, // KATAKANA LETTER N
+ 0x30F4, 0x8394, // KATAKANA LETTER VU
+ 0x30F5, 0x8395, // KATAKANA LETTER SMALL KA
+ 0x30F6, 0x8396, // KATAKANA LETTER SMALL KE
+ 0x30FB, 0x8145, // KATAKANA MIDDLE DOT
+ 0x30FD, 0x8152, // KATAKANA ITERATION MARK
+ 0x30FE, 0x8153, // KATAKANA VOICED ITERATION MARK
+ 0x4E00, 0x88EA, // <cjk>
+ 0x4E01, 0x929A, // <cjk>
+ 0x4E03, 0x8EB5, // <cjk>
+ 0x4E07, 0x969C, // <cjk>
+ 0x4E08, 0x8FE4, // <cjk>
+ 0x4E09, 0x8E4F, // <cjk>
+ 0x4E0A, 0x8FE3, // <cjk>
+ 0x4E0B, 0x89BA, // <cjk>
+ 0x4E0D, 0x9573, // <cjk>
+ 0x4E0E, 0x975E, // <cjk>
+ 0x4E10, 0x98A0, // <cjk>
+ 0x4E11, 0x894E, // <cjk>
+ 0x4E14, 0x8A8E, // <cjk>
+ 0x4E15, 0x98A1, // <cjk>
+ 0x4E16, 0x90A2, // <cjk>
+ 0x4E17, 0x99C0, // <cjk>
+ 0x4E18, 0x8B75, // <cjk>
+ 0x4E19, 0x95B8, // <cjk>
+ 0x4E1E, 0x8FE5, // <cjk>
+ 0x4E21, 0x97BC, // <cjk>
+ 0x4E26, 0x95C0, // <cjk>
+ 0x4E2A, 0x98A2, // <cjk>
+ 0x4E2D, 0x9286, // <cjk>
+ 0x4E31, 0x98A3, // <cjk>
+ 0x4E32, 0x8BF8, // <cjk>
+ 0x4E36, 0x98A4, // <cjk>
+ 0x4E38, 0x8ADB, // <cjk>
+ 0x4E39, 0x924F, // <cjk>
+ 0x4E3B, 0x8EE5, // <cjk>
+ 0x4E3C, 0x98A5, // <cjk>
+ 0x4E3F, 0x98A6, // <cjk>
+ 0x4E42, 0x98A7, // <cjk>
+ 0x4E43, 0x9454, // <cjk>
+ 0x4E45, 0x8B76, // <cjk>
+ 0x4E4B, 0x9456, // <cjk>
+ 0x4E4D, 0x93E1, // <cjk>
+ 0x4E4E, 0x8CC1, // <cjk>
+ 0x4E4F, 0x9652, // <cjk>
+ 0x4E55, 0xE568, // <cjk>
+ 0x4E56, 0x98A8, // <cjk>
+ 0x4E57, 0x8FE6, // <cjk>
+ 0x4E58, 0x98A9, // <cjk>
+ 0x4E59, 0x89B3, // <cjk>
+ 0x4E5D, 0x8BE3, // <cjk>
+ 0x4E5E, 0x8CEE, // <cjk>
+ 0x4E5F, 0x96E7, // <cjk>
+ 0x4E62, 0x9BA4, // <cjk>
+ 0x4E71, 0x9790, // <cjk>
+ 0x4E73, 0x93FB, // <cjk>
+ 0x4E7E, 0x8AA3, // <cjk>
+ 0x4E80, 0x8B54, // <cjk>
+ 0x4E82, 0x98AA, // <cjk>
+ 0x4E85, 0x98AB, // <cjk>
+ 0x4E86, 0x97B9, // <cjk>
+ 0x4E88, 0x975C, // <cjk>
+ 0x4E89, 0x9188, // <cjk>
+ 0x4E8A, 0x98AD, // <cjk>
+ 0x4E8B, 0x8E96, // <cjk>
+ 0x4E8C, 0x93F1, // <cjk>
+ 0x4E8E, 0x98B0, // <cjk>
+ 0x4E91, 0x895D, // <cjk>
+ 0x4E92, 0x8CDD, // <cjk>
+ 0x4E94, 0x8CDC, // <cjk>
+ 0x4E95, 0x88E4, // <cjk>
+ 0x4E98, 0x986A, // <cjk>
+ 0x4E99, 0x9869, // <cjk>
+ 0x4E9B, 0x8DB1, // <cjk>
+ 0x4E9C, 0x889F, // <cjk>
+ 0x4E9E, 0x98B1, // <cjk>
+ 0x4E9F, 0x98B2, // <cjk>
+ 0x4EA0, 0x98B3, // <cjk>
+ 0x4EA1, 0x9653, // <cjk>
+ 0x4EA2, 0x98B4, // <cjk>
+ 0x4EA4, 0x8CF0, // <cjk>
+ 0x4EA5, 0x88E5, // <cjk>
+ 0x4EA6, 0x9692, // <cjk>
+ 0x4EA8, 0x8B9C, // <cjk>
+ 0x4EAB, 0x8B9D, // <cjk>
+ 0x4EAC, 0x8B9E, // <cjk>
+ 0x4EAD, 0x92E0, // <cjk>
+ 0x4EAE, 0x97BA, // <cjk>
+ 0x4EB0, 0x98B5, // <cjk>
+ 0x4EB3, 0x98B6, // <cjk>
+ 0x4EB6, 0x98B7, // <cjk>
+ 0x4EBA, 0x906C, // <cjk>
+ 0x4EC0, 0x8F59, // <cjk>
+ 0x4EC1, 0x906D, // <cjk>
+ 0x4EC2, 0x98BC, // <cjk>
+ 0x4EC4, 0x98BA, // <cjk>
+ 0x4EC6, 0x98BB, // <cjk>
+ 0x4EC7, 0x8B77, // <cjk>
+ 0x4ECA, 0x8DA1, // <cjk>
+ 0x4ECB, 0x89EE, // <cjk>
+ 0x4ECD, 0x98B9, // <cjk>
+ 0x4ECE, 0x98B8, // <cjk>
+ 0x4ECF, 0x95A7, // <cjk>
+ 0x4ED4, 0x8E65, // <cjk>
+ 0x4ED5, 0x8E64, // <cjk>
+ 0x4ED6, 0x91BC, // <cjk>
+ 0x4ED7, 0x98BD, // <cjk>
+ 0x4ED8, 0x9574, // <cjk>
+ 0x4ED9, 0x90E5, // <cjk>
+ 0x4EDD, 0x8157, // <cjk>
+ 0x4EDE, 0x98BE, // <cjk>
+ 0x4EDF, 0x98C0, // <cjk>
+ 0x4EE3, 0x91E3, // <cjk>
+ 0x4EE4, 0x97DF, // <cjk>
+ 0x4EE5, 0x88C8, // <cjk>
+ 0x4EED, 0x98BF, // <cjk>
+ 0x4EEE, 0x89BC, // <cjk>
+ 0x4EF0, 0x8BC2, // <cjk>
+ 0x4EF2, 0x9287, // <cjk>
+ 0x4EF6, 0x8C8F, // <cjk>
+ 0x4EF7, 0x98C1, // <cjk>
+ 0x4EFB, 0x9443, // <cjk>
+ 0x4F01, 0x8AE9, // <cjk>
+ 0x4F09, 0x98C2, // <cjk>
+ 0x4F0A, 0x88C9, // <cjk>
+ 0x4F0D, 0x8CDE, // <cjk>
+ 0x4F0E, 0x8AEA, // <cjk>
+ 0x4F0F, 0x959A, // <cjk>
+ 0x4F10, 0x94B0, // <cjk>
+ 0x4F11, 0x8B78, // <cjk>
+ 0x4F1A, 0x89EF, // <cjk>
+ 0x4F1C, 0x98E5, // <cjk>
+ 0x4F1D, 0x9360, // <cjk>
+ 0x4F2F, 0x948C, // <cjk>
+ 0x4F30, 0x98C4, // <cjk>
+ 0x4F34, 0x94BA, // <cjk>
+ 0x4F36, 0x97E0, // <cjk>
+ 0x4F38, 0x904C, // <cjk>
+ 0x4F3A, 0x8E66, // <cjk>
+ 0x4F3C, 0x8E97, // <cjk>
+ 0x4F3D, 0x89BE, // <cjk>
+ 0x4F43, 0x92CF, // <cjk>
+ 0x4F46, 0x9241, // <cjk>
+ 0x4F47, 0x98C8, // <cjk>
+ 0x4F4D, 0x88CA, // <cjk>
+ 0x4F4E, 0x92E1, // <cjk>
+ 0x4F4F, 0x8F5A, // <cjk>
+ 0x4F50, 0x8DB2, // <cjk>
+ 0x4F51, 0x9743, // <cjk>
+ 0x4F53, 0x91CC, // <cjk>
+ 0x4F55, 0x89BD, // <cjk>
+ 0x4F57, 0x98C7, // <cjk>
+ 0x4F59, 0x975D, // <cjk>
+ 0x4F5A, 0x98C3, // <cjk>
+ 0x4F5B, 0x98C5, // <cjk>
+ 0x4F5C, 0x8DEC, // <cjk>
+ 0x4F5D, 0x98C6, // <cjk>
+ 0x4F5E, 0x9B43, // <cjk>
+ 0x4F69, 0x98CE, // <cjk>
+ 0x4F6F, 0x98D1, // <cjk>
+ 0x4F70, 0x98CF, // <cjk>
+ 0x4F73, 0x89C0, // <cjk>
+ 0x4F75, 0x95B9, // <cjk>
+ 0x4F76, 0x98C9, // <cjk>
+ 0x4F7B, 0x98CD, // <cjk>
+ 0x4F7C, 0x8CF1, // <cjk>
+ 0x4F7F, 0x8E67, // <cjk>
+ 0x4F83, 0x8AA4, // <cjk>
+ 0x4F86, 0x98D2, // <cjk>
+ 0x4F88, 0x98CA, // <cjk>
+ 0x4F8B, 0x97E1, // <cjk>
+ 0x4F8D, 0x8E98, // <cjk>
+ 0x4F8F, 0x98CB, // <cjk>
+ 0x4F91, 0x98D0, // <cjk>
+ 0x4F96, 0x98D3, // <cjk>
+ 0x4F98, 0x98CC, // <cjk>
+ 0x4F9B, 0x8B9F, // <cjk>
+ 0x4F9D, 0x88CB, // <cjk>
+ 0x4FA0, 0x8BA0, // <cjk>
+ 0x4FA1, 0x89BF, // <cjk>
+ 0x4FAB, 0x9B44, // <cjk>
+ 0x4FAD, 0x9699, // <cjk>
+ 0x4FAE, 0x958E, // <cjk>
+ 0x4FAF, 0x8CF2, // <cjk>
+ 0x4FB5, 0x904E, // <cjk>
+ 0x4FB6, 0x97B5, // <cjk>
+ 0x4FBF, 0x95D6, // <cjk>
+ 0x4FC2, 0x8C57, // <cjk>
+ 0x4FC3, 0x91A3, // <cjk>
+ 0x4FC4, 0x89E2, // <cjk>
+ 0x4FCA, 0x8F72, // <cjk>
+ 0x4FCE, 0x98D7, // <cjk>
+ 0x4FD0, 0x98DC, // <cjk>
+ 0x4FD1, 0x98DA, // <cjk>
+ 0x4FD4, 0x98D5, // <cjk>
+ 0x4FD7, 0x91AD, // <cjk>
+ 0x4FD8, 0x98D8, // <cjk>
+ 0x4FDA, 0x98DB, // <cjk>
+ 0x4FDB, 0x98D9, // <cjk>
+ 0x4FDD, 0x95DB, // <cjk>
+ 0x4FDF, 0x98D6, // <cjk>
+ 0x4FE1, 0x904D, // <cjk>
+ 0x4FE3, 0x9693, // <cjk>
+ 0x4FE4, 0x98DD, // <cjk>
+ 0x4FE5, 0x98DE, // <cjk>
+ 0x4FEE, 0x8F43, // <cjk>
+ 0x4FEF, 0x98EB, // <cjk>
+ 0x4FF3, 0x946F, // <cjk>
+ 0x4FF5, 0x9555, // <cjk>
+ 0x4FF6, 0x98E6, // <cjk>
+ 0x4FF8, 0x95EE, // <cjk>
+ 0x4FFA, 0x89B4, // <cjk>
+ 0x4FFE, 0x98EA, // <cjk>
+ 0x5005, 0x98E4, // <cjk>
+ 0x5006, 0x98ED, // <cjk>
+ 0x5009, 0x9171, // <cjk>
+ 0x500B, 0x8CC2, // <cjk>
+ 0x500D, 0x947B, // <cjk>
+ 0x500F, 0xE0C5, // <cjk>
+ 0x5011, 0x98EC, // <cjk>
+ 0x5012, 0x937C, // <cjk>
+ 0x5014, 0x98E1, // <cjk>
+ 0x5016, 0x8CF4, // <cjk>
+ 0x5019, 0x8CF3, // <cjk>
+ 0x501A, 0x98DF, // <cjk>
+ 0x501F, 0x8ED8, // <cjk>
+ 0x5021, 0x98E7, // <cjk>
+ 0x5023, 0x95ED, // <cjk>
+ 0x5024, 0x926C, // <cjk>
+ 0x5025, 0x98E3, // <cjk>
+ 0x5026, 0x8C91, // <cjk>
+ 0x5028, 0x98E0, // <cjk>
+ 0x5029, 0x98E8, // <cjk>
+ 0x502A, 0x98E2, // <cjk>
+ 0x502B, 0x97CF, // <cjk>
+ 0x502C, 0x98E9, // <cjk>
+ 0x502D, 0x9860, // <cjk>
+ 0x5036, 0x8BE4, // <cjk>
+ 0x5039, 0x8C90, // <cjk>
+ 0x5043, 0x98EE, // <cjk>
+ 0x5047, 0x98EF, // <cjk>
+ 0x5048, 0x98F3, // <cjk>
+ 0x5049, 0x88CC, // <cjk>
+ 0x504F, 0x95CE, // <cjk>
+ 0x5050, 0x98F2, // <cjk>
+ 0x5055, 0x98F1, // <cjk>
+ 0x5056, 0x98F5, // <cjk>
+ 0x505A, 0x98F4, // <cjk>
+ 0x505C, 0x92E2, // <cjk>
+ 0x5065, 0x8C92, // <cjk>
+ 0x506C, 0x98F6, // <cjk>
+ 0x5072, 0x8EC3, // <cjk>
+ 0x5074, 0x91A4, // <cjk>
+ 0x5075, 0x92E3, // <cjk>
+ 0x5076, 0x8BF4, // <cjk>
+ 0x5078, 0x98F7, // <cjk>
+ 0x507D, 0x8B55, // <cjk>
+ 0x5080, 0x98F8, // <cjk>
+ 0x5085, 0x98FA, // <cjk>
+ 0x508D, 0x9654, // <cjk>
+ 0x5091, 0x8C86, // <cjk>
+ 0x5098, 0x8E50, // <cjk>
+ 0x5099, 0x94F5, // <cjk>
+ 0x509A, 0x98F9, // <cjk>
+ 0x50AC, 0x8DC3, // <cjk>
+ 0x50AD, 0x9762, // <cjk>
+ 0x50B2, 0x98FC, // <cjk>
+ 0x50B3, 0x9942, // <cjk>
+ 0x50B4, 0x98FB, // <cjk>
+ 0x50B5, 0x8DC2, // <cjk>
+ 0x50B7, 0x8F9D, // <cjk>
+ 0x50BE, 0x8C58, // <cjk>
+ 0x50C2, 0x9943, // <cjk>
+ 0x50C5, 0x8BCD, // <cjk>
+ 0x50C9, 0x9940, // <cjk>
+ 0x50CA, 0x9941, // <cjk>
+ 0x50CD, 0x93AD, // <cjk>
+ 0x50CF, 0x919C, // <cjk>
+ 0x50D1, 0x8BA1, // <cjk>
+ 0x50D5, 0x966C, // <cjk>
+ 0x50D6, 0x9944, // <cjk>
+ 0x50DA, 0x97BB, // <cjk>
+ 0x50DE, 0x9945, // <cjk>
+ 0x50E3, 0x9948, // <cjk>
+ 0x50E5, 0x9946, // <cjk>
+ 0x50E7, 0x916D, // <cjk>
+ 0x50ED, 0x9947, // <cjk>
+ 0x50EE, 0x9949, // <cjk>
+ 0x50F5, 0x994B, // <cjk>
+ 0x50F9, 0x994A, // <cjk>
+ 0x50FB, 0x95C6, // <cjk>
+ 0x5100, 0x8B56, // <cjk>
+ 0x5101, 0x994D, // <cjk>
+ 0x5102, 0x994E, // <cjk>
+ 0x5104, 0x89AD, // <cjk>
+ 0x5109, 0x994C, // <cjk>
+ 0x5112, 0x8EF2, // <cjk>
+ 0x5114, 0x9951, // <cjk>
+ 0x5115, 0x9950, // <cjk>
+ 0x5116, 0x994F, // <cjk>
+ 0x5118, 0x98D4, // <cjk>
+ 0x511A, 0x9952, // <cjk>
+ 0x511F, 0x8F9E, // <cjk>
+ 0x5121, 0x9953, // <cjk>
+ 0x512A, 0x9744, // <cjk>
+ 0x5132, 0x96D7, // <cjk>
+ 0x5137, 0x9955, // <cjk>
+ 0x513A, 0x9954, // <cjk>
+ 0x513B, 0x9957, // <cjk>
+ 0x513C, 0x9956, // <cjk>
+ 0x513F, 0x9958, // <cjk>
+ 0x5140, 0x9959, // <cjk>
+ 0x5141, 0x88F2, // <cjk>
+ 0x5143, 0x8CB3, // <cjk>
+ 0x5144, 0x8C5A, // <cjk>
+ 0x5146, 0x929B, // <cjk>
+ 0x5147, 0x8BA2, // <cjk>
+ 0x5148, 0x90E6, // <cjk>
+ 0x5149, 0x8CF5, // <cjk>
+ 0x514B, 0x8D8E, // <cjk>
+ 0x514D, 0x96C6, // <cjk>
+ 0x514E, 0x9365, // <cjk>
+ 0x5150, 0x8E99, // <cjk>
+ 0x5152, 0x995A, // <cjk>
+ 0x5154, 0x995C, // <cjk>
+ 0x515A, 0x937D, // <cjk>
+ 0x515C, 0x8A95, // <cjk>
+ 0x5162, 0x995D, // <cjk>
+ 0x5165, 0x93FC, // <cjk>
+ 0x5168, 0x9153, // <cjk>
+ 0x5169, 0x995F, // <cjk>
+ 0x516A, 0x9960, // <cjk>
+ 0x516B, 0x94AA, // <cjk>
+ 0x516C, 0x8CF6, // <cjk>
+ 0x516D, 0x985A, // <cjk>
+ 0x516E, 0x9961, // <cjk>
+ 0x5171, 0x8BA4, // <cjk>
+ 0x5175, 0x95BA, // <cjk>
+ 0x5176, 0x91B4, // <cjk>
+ 0x5177, 0x8BEF, // <cjk>
+ 0x5178, 0x9354, // <cjk>
+ 0x517C, 0x8C93, // <cjk>
+ 0x5180, 0x9962, // <cjk>
+ 0x5182, 0x9963, // <cjk>
+ 0x5185, 0x93E0, // <cjk>
+ 0x5186, 0x897E, // <cjk>
+ 0x5189, 0x9966, // <cjk>
+ 0x518A, 0x8DFB, // <cjk>
+ 0x518C, 0x9965, // <cjk>
+ 0x518D, 0x8DC4, // <cjk>
+ 0x518F, 0x9967, // <cjk>
+ 0x5190, 0xE3EC, // <cjk>
+ 0x5191, 0x9968, // <cjk>
+ 0x5192, 0x9660, // <cjk>
+ 0x5193, 0x9969, // <cjk>
+ 0x5195, 0x996A, // <cjk>
+ 0x5196, 0x996B, // <cjk>
+ 0x5197, 0x8FE7, // <cjk>
+ 0x5199, 0x8ECA, // <cjk>
+ 0x51A0, 0x8AA5, // <cjk>
+ 0x51A2, 0x996E, // <cjk>
+ 0x51A4, 0x996C, // <cjk>
+ 0x51A5, 0x96BB, // <cjk>
+ 0x51A6, 0x996D, // <cjk>
+ 0x51A8, 0x9579, // <cjk>
+ 0x51A9, 0x996F, // <cjk>
+ 0x51AA, 0x9970, // <cjk>
+ 0x51AB, 0x9971, // <cjk>
+ 0x51AC, 0x937E, // <cjk>
+ 0x51B0, 0x9975, // <cjk>
+ 0x51B1, 0x9973, // <cjk>
+ 0x51B2, 0x9974, // <cjk>
+ 0x51B3, 0x9972, // <cjk>
+ 0x51B4, 0x8DE1, // <cjk>
+ 0x51B5, 0x9976, // <cjk>
+ 0x51B6, 0x96E8, // <cjk>
+ 0x51B7, 0x97E2, // <cjk>
+ 0x51BD, 0x9977, // <cjk>
+ 0x51C4, 0x90A6, // <cjk>
+ 0x51C5, 0x9978, // <cjk>
+ 0x51C6, 0x8F79, // <cjk>
+ 0x51C9, 0x9979, // <cjk>
+ 0x51CB, 0x929C, // <cjk>
+ 0x51CC, 0x97BD, // <cjk>
+ 0x51CD, 0x9380, // <cjk>
+ 0x51D6, 0x99C3, // <cjk>
+ 0x51DB, 0x997A, // <cjk>
+ 0x51DC, 0xEAA3, // <cjk>
+ 0x51DD, 0x8BC3, // <cjk>
+ 0x51E0, 0x997B, // <cjk>
+ 0x51E1, 0x967D, // <cjk>
+ 0x51E6, 0x8F88, // <cjk>
+ 0x51E7, 0x91FA, // <cjk>
+ 0x51E9, 0x997D, // <cjk>
+ 0x51EA, 0x93E2, // <cjk>
+ 0x51ED, 0x997E, // <cjk>
+ 0x51F0, 0x9980, // <cjk>
+ 0x51F1, 0x8A4D, // <cjk>
+ 0x51F5, 0x9981, // <cjk>
+ 0x51F6, 0x8BA5, // <cjk>
+ 0x51F8, 0x93CA, // <cjk>
+ 0x51F9, 0x899A, // <cjk>
+ 0x51FA, 0x8F6F, // <cjk>
+ 0x51FD, 0x949F, // <cjk>
+ 0x51FE, 0x9982, // <cjk>
+ 0x5200, 0x9381, // <cjk>
+ 0x5203, 0x906E, // <cjk>
+ 0x5204, 0x9983, // <cjk>
+ 0x5206, 0x95AA, // <cjk>
+ 0x5207, 0x90D8, // <cjk>
+ 0x5208, 0x8AA0, // <cjk>
+ 0x520A, 0x8AA7, // <cjk>
+ 0x520B, 0x9984, // <cjk>
+ 0x520E, 0x9986, // <cjk>
+ 0x5211, 0x8C59, // <cjk>
+ 0x5214, 0x9985, // <cjk>
+ 0x5217, 0x97F1, // <cjk>
+ 0x521D, 0x8F89, // <cjk>
+ 0x5224, 0x94BB, // <cjk>
+ 0x5225, 0x95CA, // <cjk>
+ 0x5227, 0x9987, // <cjk>
+ 0x5229, 0x9798, // <cjk>
+ 0x522A, 0x9988, // <cjk>
+ 0x522E, 0x9989, // <cjk>
+ 0x5230, 0x939E, // <cjk>
+ 0x5233, 0x998A, // <cjk>
+ 0x5236, 0x90A7, // <cjk>
+ 0x5237, 0x8DFC, // <cjk>
+ 0x5238, 0x8C94, // <cjk>
+ 0x5239, 0x998B, // <cjk>
+ 0x523A, 0x8E68, // <cjk>
+ 0x523B, 0x8D8F, // <cjk>
+ 0x5243, 0x92E4, // <cjk>
+ 0x5244, 0x998D, // <cjk>
+ 0x5247, 0x91A5, // <cjk>
+ 0x524A, 0x8DED, // <cjk>
+ 0x524B, 0x998E, // <cjk>
+ 0x524C, 0x998F, // <cjk>
+ 0x524D, 0x914F, // <cjk>
+ 0x524F, 0x998C, // <cjk>
+ 0x5254, 0x9991, // <cjk>
+ 0x5256, 0x9655, // <cjk>
+ 0x525B, 0x8D84, // <cjk>
+ 0x525E, 0x9990, // <cjk>
+ 0x5263, 0x8C95, // <cjk>
+ 0x5264, 0x8DDC, // <cjk>
+ 0x5265, 0x948D, // <cjk>
+ 0x5269, 0x9994, // <cjk>
+ 0x526A, 0x9992, // <cjk>
+ 0x526F, 0x959B, // <cjk>
+ 0x5270, 0x8FE8, // <cjk>
+ 0x5271, 0x999B, // <cjk>
+ 0x5272, 0x8A84, // <cjk>
+ 0x5273, 0x9995, // <cjk>
+ 0x5274, 0x9993, // <cjk>
+ 0x5275, 0x916E, // <cjk>
+ 0x527D, 0x9997, // <cjk>
+ 0x527F, 0x9996, // <cjk>
+ 0x5283, 0x8A63, // <cjk>
+ 0x5287, 0x8C80, // <cjk>
+ 0x5288, 0x999C, // <cjk>
+ 0x5289, 0x97AB, // <cjk>
+ 0x528D, 0x9998, // <cjk>
+ 0x5291, 0x999D, // <cjk>
+ 0x5292, 0x999A, // <cjk>
+ 0x5294, 0x9999, // <cjk>
+ 0x529B, 0x97CD, // <cjk>
+ 0x529F, 0x8CF7, // <cjk>
+ 0x52A0, 0x89C1, // <cjk>
+ 0x52A3, 0x97F2, // <cjk>
+ 0x52A9, 0x8F95, // <cjk>
+ 0x52AA, 0x9377, // <cjk>
+ 0x52AB, 0x8D85, // <cjk>
+ 0x52AC, 0x99A0, // <cjk>
+ 0x52AD, 0x99A1, // <cjk>
+ 0x52B1, 0x97E3, // <cjk>
+ 0x52B4, 0x984A, // <cjk>
+ 0x52B5, 0x99A3, // <cjk>
+ 0x52B9, 0x8CF8, // <cjk>
+ 0x52BC, 0x99A2, // <cjk>
+ 0x52BE, 0x8A4E, // <cjk>
+ 0x52C1, 0x99A4, // <cjk>
+ 0x52C3, 0x9675, // <cjk>
+ 0x52C5, 0x92BA, // <cjk>
+ 0x52C7, 0x9745, // <cjk>
+ 0x52C9, 0x95D7, // <cjk>
+ 0x52CD, 0x99A5, // <cjk>
+ 0x52D2, 0xE8D3, // <cjk>
+ 0x52D5, 0x93AE, // <cjk>
+ 0x52D7, 0x99A6, // <cjk>
+ 0x52D8, 0x8AA8, // <cjk>
+ 0x52D9, 0x96B1, // <cjk>
+ 0x52DD, 0x8F9F, // <cjk>
+ 0x52DE, 0x99A7, // <cjk>
+ 0x52DF, 0x95E5, // <cjk>
+ 0x52E0, 0x99AB, // <cjk>
+ 0x52E2, 0x90A8, // <cjk>
+ 0x52E3, 0x99A8, // <cjk>
+ 0x52E4, 0x8BCE, // <cjk>
+ 0x52E6, 0x99A9, // <cjk>
+ 0x52E7, 0x8AA9, // <cjk>
+ 0x52F2, 0x8C4D, // <cjk>
+ 0x52F3, 0x99AC, // <cjk>
+ 0x52F5, 0x99AD, // <cjk>
+ 0x52F8, 0x99AE, // <cjk>
+ 0x52F9, 0x99AF, // <cjk>
+ 0x52FA, 0x8ED9, // <cjk>
+ 0x52FE, 0x8CF9, // <cjk>
+ 0x52FF, 0x96DC, // <cjk>
+ 0x5301, 0x96E6, // <cjk>
+ 0x5302, 0x93F5, // <cjk>
+ 0x5305, 0x95EF, // <cjk>
+ 0x5306, 0x99B0, // <cjk>
+ 0x5308, 0x99B1, // <cjk>
+ 0x530D, 0x99B3, // <cjk>
+ 0x530F, 0x99B5, // <cjk>
+ 0x5310, 0x99B4, // <cjk>
+ 0x5315, 0x99B6, // <cjk>
+ 0x5316, 0x89BB, // <cjk>
+ 0x5317, 0x966B, // <cjk>
+ 0x5319, 0x8DFA, // <cjk>
+ 0x531A, 0x99B7, // <cjk>
+ 0x531D, 0x9178, // <cjk>
+ 0x5320, 0x8FA0, // <cjk>
+ 0x5321, 0x8BA7, // <cjk>
+ 0x5323, 0x99B8, // <cjk>
+ 0x532A, 0x94D9, // <cjk>
+ 0x532F, 0x99B9, // <cjk>
+ 0x5331, 0x99BA, // <cjk>
+ 0x5333, 0x99BB, // <cjk>
+ 0x5338, 0x99BC, // <cjk>
+ 0x5339, 0x9543, // <cjk>
+ 0x533A, 0x8BE6, // <cjk>
+ 0x533B, 0x88E3, // <cjk>
+ 0x533F, 0x93BD, // <cjk>
+ 0x5340, 0x99BD, // <cjk>
+ 0x5341, 0x8F5C, // <cjk>
+ 0x5343, 0x90E7, // <cjk>
+ 0x5345, 0x99BF, // <cjk>
+ 0x5346, 0x99BE, // <cjk>
+ 0x5347, 0x8FA1, // <cjk>
+ 0x5348, 0x8CDF, // <cjk>
+ 0x5349, 0x99C1, // <cjk>
+ 0x534A, 0x94BC, // <cjk>
+ 0x534D, 0x99C2, // <cjk>
+ 0x5351, 0x94DA, // <cjk>
+ 0x5352, 0x91B2, // <cjk>
+ 0x5353, 0x91EC, // <cjk>
+ 0x5354, 0x8BA6, // <cjk>
+ 0x5357, 0x93EC, // <cjk>
+ 0x5358, 0x9250, // <cjk>
+ 0x535A, 0x948E, // <cjk>
+ 0x535C, 0x966D, // <cjk>
+ 0x535E, 0x99C4, // <cjk>
+ 0x5360, 0x90E8, // <cjk>
+ 0x5366, 0x8C54, // <cjk>
+ 0x5369, 0x99C5, // <cjk>
+ 0x536E, 0x99C6, // <cjk>
+ 0x536F, 0x894B, // <cjk>
+ 0x5370, 0x88F3, // <cjk>
+ 0x5371, 0x8AEB, // <cjk>
+ 0x5373, 0x91A6, // <cjk>
+ 0x5374, 0x8B70, // <cjk>
+ 0x5375, 0x9791, // <cjk>
+ 0x5377, 0x99C9, // <cjk>
+ 0x5378, 0x89B5, // <cjk>
+ 0x537B, 0x99C8, // <cjk>
+ 0x537F, 0x8BA8, // <cjk>
+ 0x5382, 0x99CA, // <cjk>
+ 0x5384, 0x96EF, // <cjk>
+ 0x5396, 0x99CB, // <cjk>
+ 0x5398, 0x97D0, // <cjk>
+ 0x539A, 0x8CFA, // <cjk>
+ 0x539F, 0x8CB4, // <cjk>
+ 0x53A0, 0x99CC, // <cjk>
+ 0x53A5, 0x99CE, // <cjk>
+ 0x53A6, 0x99CD, // <cjk>
+ 0x53A8, 0x907E, // <cjk>
+ 0x53A9, 0x8958, // <cjk>
+ 0x53AD, 0x897D, // <cjk>
+ 0x53AE, 0x99CF, // <cjk>
+ 0x53B0, 0x99D0, // <cjk>
+ 0x53B3, 0x8CB5, // <cjk>
+ 0x53B6, 0x99D1, // <cjk>
+ 0x53BB, 0x8B8E, // <cjk>
+ 0x53C2, 0x8E51, // <cjk>
+ 0x53C3, 0x99D2, // <cjk>
+ 0x53C8, 0x9694, // <cjk>
+ 0x53C9, 0x8DB3, // <cjk>
+ 0x53CA, 0x8B79, // <cjk>
+ 0x53CB, 0x9746, // <cjk>
+ 0x53CC, 0x916F, // <cjk>
+ 0x53CD, 0x94BD, // <cjk>
+ 0x53CE, 0x8EFB, // <cjk>
+ 0x53D4, 0x8F66, // <cjk>
+ 0x53D6, 0x8EE6, // <cjk>
+ 0x53D7, 0x8EF3, // <cjk>
+ 0x53D9, 0x8F96, // <cjk>
+ 0x53DB, 0x94BE, // <cjk>
+ 0x53DF, 0x99D5, // <cjk>
+ 0x53E1, 0x8962, // <cjk>
+ 0x53E2, 0x9170, // <cjk>
+ 0x53E3, 0x8CFB, // <cjk>
+ 0x53E4, 0x8CC3, // <cjk>
+ 0x53E5, 0x8BE5, // <cjk>
+ 0x53E8, 0x99D9, // <cjk>
+ 0x53E9, 0x9240, // <cjk>
+ 0x53EA, 0x91FC, // <cjk>
+ 0x53EB, 0x8BA9, // <cjk>
+ 0x53EC, 0x8FA2, // <cjk>
+ 0x53ED, 0x99DA, // <cjk>
+ 0x53EE, 0x99D8, // <cjk>
+ 0x53EF, 0x89C2, // <cjk>
+ 0x53F0, 0x91E4, // <cjk>
+ 0x53F1, 0x8EB6, // <cjk>
+ 0x53F2, 0x8E6A, // <cjk>
+ 0x53F3, 0x8945, // <cjk>
+ 0x53F6, 0x8A90, // <cjk>
+ 0x53F7, 0x8D86, // <cjk>
+ 0x53F8, 0x8E69, // <cjk>
+ 0x53FA, 0x99DB, // <cjk>
+ 0x5401, 0x99DC, // <cjk>
+ 0x5403, 0x8B68, // <cjk>
+ 0x5404, 0x8A65, // <cjk>
+ 0x5408, 0x8D87, // <cjk>
+ 0x5409, 0x8B67, // <cjk>
+ 0x540A, 0x92DD, // <cjk>
+ 0x540B, 0x8944, // <cjk>
+ 0x540C, 0x93AF, // <cjk>
+ 0x540D, 0x96BC, // <cjk>
+ 0x540E, 0x8D40, // <cjk>
+ 0x540F, 0x9799, // <cjk>
+ 0x5410, 0x9366, // <cjk>
+ 0x5411, 0x8CFC, // <cjk>
+ 0x541B, 0x8C4E, // <cjk>
+ 0x541D, 0x99E5, // <cjk>
+ 0x541F, 0x8BE1, // <cjk>
+ 0x5420, 0x9669, // <cjk>
+ 0x5426, 0x94DB, // <cjk>
+ 0x5429, 0x99E4, // <cjk>
+ 0x542B, 0x8ADC, // <cjk>
+ 0x542C, 0x99DF, // <cjk>
+ 0x542D, 0x99E0, // <cjk>
+ 0x542E, 0x99E2, // <cjk>
+ 0x5436, 0x99E3, // <cjk>
+ 0x5438, 0x8B7A, // <cjk>
+ 0x5439, 0x9081, // <cjk>
+ 0x543B, 0x95AB, // <cjk>
+ 0x543C, 0x99E1, // <cjk>
+ 0x543D, 0x99DD, // <cjk>
+ 0x543E, 0x8CE1, // <cjk>
+ 0x5440, 0x99DE, // <cjk>
+ 0x5442, 0x9843, // <cjk>
+ 0x5446, 0x95F0, // <cjk>
+ 0x5448, 0x92E6, // <cjk>
+ 0x5449, 0x8CE0, // <cjk>
+ 0x544A, 0x8D90, // <cjk>
+ 0x544E, 0x99E6, // <cjk>
+ 0x5451, 0x93DB, // <cjk>
+ 0x545F, 0x99EA, // <cjk>
+ 0x5468, 0x8EFC, // <cjk>
+ 0x546A, 0x8EF4, // <cjk>
+ 0x5470, 0x99ED, // <cjk>
+ 0x5471, 0x99EB, // <cjk>
+ 0x5473, 0x96A1, // <cjk>
+ 0x5475, 0x99E8, // <cjk>
+ 0x5476, 0x99F1, // <cjk>
+ 0x5477, 0x99EC, // <cjk>
+ 0x547B, 0x99EF, // <cjk>
+ 0x547C, 0x8CC4, // <cjk>
+ 0x547D, 0x96BD, // <cjk>
+ 0x5480, 0x99F0, // <cjk>
+ 0x5484, 0x99F2, // <cjk>
+ 0x5486, 0x99F4, // <cjk>
+ 0x548B, 0x8DEE, // <cjk>
+ 0x548C, 0x9861, // <cjk>
+ 0x548E, 0x99E9, // <cjk>
+ 0x548F, 0x99E7, // <cjk>
+ 0x5490, 0x99F3, // <cjk>
+ 0x5492, 0x99EE, // <cjk>
+ 0x54A2, 0x99F6, // <cjk>
+ 0x54A4, 0x9A42, // <cjk>
+ 0x54A5, 0x99F8, // <cjk>
+ 0x54A8, 0x99FC, // <cjk>
+ 0x54AB, 0x9A40, // <cjk>
+ 0x54AC, 0x99F9, // <cjk>
+ 0x54AF, 0x9A5D, // <cjk>
+ 0x54B2, 0x8DE7, // <cjk>
+ 0x54B3, 0x8A50, // <cjk>
+ 0x54B8, 0x99F7, // <cjk>
+ 0x54BC, 0x9A44, // <cjk>
+ 0x54BD, 0x88F4, // <cjk>
+ 0x54BE, 0x9A43, // <cjk>
+ 0x54C0, 0x88A3, // <cjk>
+ 0x54C1, 0x9569, // <cjk>
+ 0x54C2, 0x9A41, // <cjk>
+ 0x54C4, 0x99FA, // <cjk>
+ 0x54C7, 0x99F5, // <cjk>
+ 0x54C8, 0x99FB, // <cjk>
+ 0x54C9, 0x8DC6, // <cjk>
+ 0x54D8, 0x9A45, // <cjk>
+ 0x54E1, 0x88F5, // <cjk>
+ 0x54E2, 0x9A4E, // <cjk>
+ 0x54E5, 0x9A46, // <cjk>
+ 0x54E6, 0x9A47, // <cjk>
+ 0x54E8, 0x8FA3, // <cjk>
+ 0x54E9, 0x9689, // <cjk>
+ 0x54ED, 0x9A4C, // <cjk>
+ 0x54EE, 0x9A4B, // <cjk>
+ 0x54F2, 0x934E, // <cjk>
+ 0x54FA, 0x9A4D, // <cjk>
+ 0x54FD, 0x9A4A, // <cjk>
+ 0x5504, 0x8953, // <cjk>
+ 0x5506, 0x8DB4, // <cjk>
+ 0x5507, 0x904F, // <cjk>
+ 0x550F, 0x9A48, // <cjk>
+ 0x5510, 0x9382, // <cjk>
+ 0x5514, 0x9A49, // <cjk>
+ 0x5516, 0x88A0, // <cjk>
+ 0x552E, 0x9A53, // <cjk>
+ 0x552F, 0x9742, // <cjk>
+ 0x5531, 0x8FA5, // <cjk>
+ 0x5533, 0x9A59, // <cjk>
+ 0x5538, 0x9A58, // <cjk>
+ 0x5539, 0x9A4F, // <cjk>
+ 0x553E, 0x91C1, // <cjk>
+ 0x5540, 0x9A50, // <cjk>
+ 0x5544, 0x91ED, // <cjk>
+ 0x5545, 0x9A55, // <cjk>
+ 0x5546, 0x8FA4, // <cjk>
+ 0x554C, 0x9A52, // <cjk>
+ 0x554F, 0x96E2, // <cjk>
+ 0x5556, 0x9A56, // <cjk>
+ 0x5557, 0x9A57, // <cjk>
+ 0x555C, 0x9A54, // <cjk>
+ 0x555D, 0x9A5A, // <cjk>
+ 0x5563, 0x9A51, // <cjk>
+ 0x557B, 0x9A60, // <cjk>
+ 0x557C, 0x9A65, // <cjk>
+ 0x557E, 0x9A61, // <cjk>
+ 0x5580, 0x9A5C, // <cjk>
+ 0x5583, 0x9A66, // <cjk>
+ 0x5584, 0x9150, // <cjk>
+ 0x5587, 0x9A68, // <cjk>
+ 0x5589, 0x8D41, // <cjk>
+ 0x558A, 0x9A5E, // <cjk>
+ 0x558B, 0x929D, // <cjk>
+ 0x5598, 0x9A62, // <cjk>
+ 0x559A, 0x8AAB, // <cjk>
+ 0x559C, 0x8AEC, // <cjk>
+ 0x559D, 0x8A85, // <cjk>
+ 0x559E, 0x9A63, // <cjk>
+ 0x559F, 0x9A5F, // <cjk>
+ 0x55A7, 0x8C96, // <cjk>
+ 0x55A8, 0x9A69, // <cjk>
+ 0x55A9, 0x9A67, // <cjk>
+ 0x55AA, 0x9172, // <cjk>
+ 0x55AB, 0x8B69, // <cjk>
+ 0x55AC, 0x8BAA, // <cjk>
+ 0x55AE, 0x9A64, // <cjk>
+ 0x55B0, 0x8BF2, // <cjk>
+ 0x55B6, 0x8963, // <cjk>
+ 0x55C4, 0x9A6D, // <cjk>
+ 0x55C5, 0x9A6B, // <cjk>
+ 0x55C7, 0x9AA5, // <cjk>
+ 0x55D4, 0x9A70, // <cjk>
+ 0x55DA, 0x9A6A, // <cjk>
+ 0x55DC, 0x9A6E, // <cjk>
+ 0x55DF, 0x9A6C, // <cjk>
+ 0x55E3, 0x8E6B, // <cjk>
+ 0x55E4, 0x9A6F, // <cjk>
+ 0x55F7, 0x9A72, // <cjk>
+ 0x55F9, 0x9A77, // <cjk>
+ 0x55FD, 0x9A75, // <cjk>
+ 0x55FE, 0x9A74, // <cjk>
+ 0x5606, 0x9251, // <cjk>
+ 0x5609, 0x89C3, // <cjk>
+ 0x5614, 0x9A71, // <cjk>
+ 0x5616, 0x9A73, // <cjk>
+ 0x5617, 0x8FA6, // <cjk>
+ 0x5618, 0x8952, // <cjk>
+ 0x561B, 0x9A76, // <cjk>
+ 0x5629, 0x89DC, // <cjk>
+ 0x562F, 0x9A82, // <cjk>
+ 0x5631, 0x8FFA, // <cjk>
+ 0x5632, 0x9A7D, // <cjk>
+ 0x5634, 0x9A7B, // <cjk>
+ 0x5636, 0x9A7C, // <cjk>
+ 0x5638, 0x9A7E, // <cjk>
+ 0x5642, 0x895C, // <cjk>
+ 0x564C, 0x9158, // <cjk>
+ 0x564E, 0x9A78, // <cjk>
+ 0x5650, 0x9A79, // <cjk>
+ 0x565B, 0x8A9A, // <cjk>
+ 0x5664, 0x9A81, // <cjk>
+ 0x5668, 0x8AED, // <cjk>
+ 0x566A, 0x9A84, // <cjk>
+ 0x566B, 0x9A80, // <cjk>
+ 0x566C, 0x9A83, // <cjk>
+ 0x5674, 0x95AC, // <cjk>
+ 0x5678, 0x93D3, // <cjk>
+ 0x567A, 0x94B6, // <cjk>
+ 0x5680, 0x9A86, // <cjk>
+ 0x5686, 0x9A85, // <cjk>
+ 0x5687, 0x8A64, // <cjk>
+ 0x568A, 0x9A87, // <cjk>
+ 0x568F, 0x9A8A, // <cjk>
+ 0x5694, 0x9A89, // <cjk>
+ 0x56A0, 0x9A88, // <cjk>
+ 0x56A2, 0x9458, // <cjk>
+ 0x56A5, 0x9A8B, // <cjk>
+ 0x56AE, 0x9A8C, // <cjk>
+ 0x56B4, 0x9A8E, // <cjk>
+ 0x56B6, 0x9A8D, // <cjk>
+ 0x56BC, 0x9A90, // <cjk>
+ 0x56C0, 0x9A93, // <cjk>
+ 0x56C1, 0x9A91, // <cjk>
+ 0x56C2, 0x9A8F, // <cjk>
+ 0x56C3, 0x9A92, // <cjk>
+ 0x56C8, 0x9A94, // <cjk>
+ 0x56CE, 0x9A95, // <cjk>
+ 0x56D1, 0x9A96, // <cjk>
+ 0x56D3, 0x9A97, // <cjk>
+ 0x56D7, 0x9A98, // <cjk>
+ 0x56D8, 0x9964, // <cjk>
+ 0x56DA, 0x8EFA, // <cjk>
+ 0x56DB, 0x8E6C, // <cjk>
+ 0x56DE, 0x89F1, // <cjk>
+ 0x56E0, 0x88F6, // <cjk>
+ 0x56E3, 0x9263, // <cjk>
+ 0x56EE, 0x9A99, // <cjk>
+ 0x56F0, 0x8DA2, // <cjk>
+ 0x56F2, 0x88CD, // <cjk>
+ 0x56F3, 0x907D, // <cjk>
+ 0x56F9, 0x9A9A, // <cjk>
+ 0x56FA, 0x8CC5, // <cjk>
+ 0x56FD, 0x8D91, // <cjk>
+ 0x56FF, 0x9A9C, // <cjk>
+ 0x5700, 0x9A9B, // <cjk>
+ 0x5703, 0x95DE, // <cjk>
+ 0x5704, 0x9A9D, // <cjk>
+ 0x5708, 0x9A9F, // <cjk>
+ 0x5709, 0x9A9E, // <cjk>
+ 0x570B, 0x9AA0, // <cjk>
+ 0x570D, 0x9AA1, // <cjk>
+ 0x570F, 0x8C97, // <cjk>
+ 0x5712, 0x8980, // <cjk>
+ 0x5713, 0x9AA2, // <cjk>
+ 0x5716, 0x9AA4, // <cjk>
+ 0x5718, 0x9AA3, // <cjk>
+ 0x571C, 0x9AA6, // <cjk>
+ 0x571F, 0x9379, // <cjk>
+ 0x5726, 0x9AA7, // <cjk>
+ 0x5727, 0x88B3, // <cjk>
+ 0x5728, 0x8DDD, // <cjk>
+ 0x572D, 0x8C5C, // <cjk>
+ 0x5730, 0x926E, // <cjk>
+ 0x5737, 0x9AA8, // <cjk>
+ 0x5738, 0x9AA9, // <cjk>
+ 0x573B, 0x9AAB, // <cjk>
+ 0x5740, 0x9AAC, // <cjk>
+ 0x5742, 0x8DE2, // <cjk>
+ 0x5747, 0x8BCF, // <cjk>
+ 0x574A, 0x9656, // <cjk>
+ 0x574E, 0x9AAA, // <cjk>
+ 0x574F, 0x9AAD, // <cjk>
+ 0x5750, 0x8DBF, // <cjk>
+ 0x5751, 0x8D42, // <cjk>
+ 0x5761, 0x9AB1, // <cjk>
+ 0x5764, 0x8DA3, // <cjk>
+ 0x5766, 0x9252, // <cjk>
+ 0x5769, 0x9AAE, // <cjk>
+ 0x576A, 0x92D8, // <cjk>
+ 0x577F, 0x9AB2, // <cjk>
+ 0x5782, 0x9082, // <cjk>
+ 0x5788, 0x9AB0, // <cjk>
+ 0x5789, 0x9AB3, // <cjk>
+ 0x578B, 0x8C5E, // <cjk>
+ 0x5793, 0x9AB4, // <cjk>
+ 0x57A0, 0x9AB5, // <cjk>
+ 0x57A2, 0x8D43, // <cjk>
+ 0x57A3, 0x8A5F, // <cjk>
+ 0x57A4, 0x9AB7, // <cjk>
+ 0x57AA, 0x9AB8, // <cjk>
+ 0x57B0, 0x9AB9, // <cjk>
+ 0x57B3, 0x9AB6, // <cjk>
+ 0x57C0, 0x9AAF, // <cjk>
+ 0x57C3, 0x9ABA, // <cjk>
+ 0x57C6, 0x9ABB, // <cjk>
+ 0x57CB, 0x9684, // <cjk>
+ 0x57CE, 0x8FE9, // <cjk>
+ 0x57D2, 0x9ABD, // <cjk>
+ 0x57D3, 0x9ABE, // <cjk>
+ 0x57D4, 0x9ABC, // <cjk>
+ 0x57D6, 0x9AC0, // <cjk>
+ 0x57DC, 0x9457, // <cjk>
+ 0x57DF, 0x88E6, // <cjk>
+ 0x57E0, 0x9575, // <cjk>
+ 0x57E3, 0x9AC1, // <cjk>
+ 0x57F4, 0x8FFB, // <cjk>
+ 0x57F7, 0x8EB7, // <cjk>
+ 0x57F9, 0x947C, // <cjk>
+ 0x57FA, 0x8AEE, // <cjk>
+ 0x57FC, 0x8DE9, // <cjk>
+ 0x5800, 0x9678, // <cjk>
+ 0x5802, 0x93B0, // <cjk>
+ 0x5805, 0x8C98, // <cjk>
+ 0x5806, 0x91CD, // <cjk>
+ 0x580A, 0x9ABF, // <cjk>
+ 0x580B, 0x9AC2, // <cjk>
+ 0x5815, 0x91C2, // <cjk>
+ 0x5819, 0x9AC3, // <cjk>
+ 0x581D, 0x9AC4, // <cjk>
+ 0x5821, 0x9AC6, // <cjk>
+ 0x5824, 0x92E7, // <cjk>
+ 0x582A, 0x8AAC, // <cjk>
+ 0x582F, 0xEA9F, // <cjk>
+ 0x5830, 0x8981, // <cjk>
+ 0x5831, 0x95F1, // <cjk>
+ 0x5834, 0x8FEA, // <cjk>
+ 0x5835, 0x9367, // <cjk>
+ 0x583A, 0x8DE4, // <cjk>
+ 0x583D, 0x9ACC, // <cjk>
+ 0x5840, 0x95BB, // <cjk>
+ 0x5841, 0x97DB, // <cjk>
+ 0x584A, 0x89F2, // <cjk>
+ 0x584B, 0x9AC8, // <cjk>
+ 0x5851, 0x9159, // <cjk>
+ 0x5852, 0x9ACB, // <cjk>
+ 0x5854, 0x9383, // <cjk>
+ 0x5857, 0x9368, // <cjk>
+ 0x5858, 0x9384, // <cjk>
+ 0x5859, 0x94B7, // <cjk>
+ 0x585A, 0x92CB, // <cjk>
+ 0x585E, 0x8DC7, // <cjk>
+ 0x5862, 0x9AC7, // <cjk>
+ 0x5869, 0x8996, // <cjk>
+ 0x586B, 0x9355, // <cjk>
+ 0x5870, 0x9AC9, // <cjk>
+ 0x5872, 0x9AC5, // <cjk>
+ 0x5875, 0x906F, // <cjk>
+ 0x5879, 0x9ACD, // <cjk>
+ 0x587E, 0x8F6D, // <cjk>
+ 0x5883, 0x8BAB, // <cjk>
+ 0x5885, 0x9ACE, // <cjk>
+ 0x5893, 0x95E6, // <cjk>
+ 0x5897, 0x919D, // <cjk>
+ 0x589C, 0x92C4, // <cjk>
+ 0x589F, 0x9AD0, // <cjk>
+ 0x58A8, 0x966E, // <cjk>
+ 0x58AB, 0x9AD1, // <cjk>
+ 0x58AE, 0x9AD6, // <cjk>
+ 0x58B3, 0x95AD, // <cjk>
+ 0x58B8, 0x9AD5, // <cjk>
+ 0x58B9, 0x9ACF, // <cjk>
+ 0x58BA, 0x9AD2, // <cjk>
+ 0x58BB, 0x9AD4, // <cjk>
+ 0x58BE, 0x8DA4, // <cjk>
+ 0x58C1, 0x95C7, // <cjk>
+ 0x58C5, 0x9AD7, // <cjk>
+ 0x58C7, 0x9264, // <cjk>
+ 0x58CA, 0x89F3, // <cjk>
+ 0x58CC, 0x8FEB, // <cjk>
+ 0x58D1, 0x9AD9, // <cjk>
+ 0x58D3, 0x9AD8, // <cjk>
+ 0x58D5, 0x8D88, // <cjk>
+ 0x58D7, 0x9ADA, // <cjk>
+ 0x58D8, 0x9ADC, // <cjk>
+ 0x58D9, 0x9ADB, // <cjk>
+ 0x58DC, 0x9ADE, // <cjk>
+ 0x58DE, 0x9AD3, // <cjk>
+ 0x58DF, 0x9AE0, // <cjk>
+ 0x58E4, 0x9ADF, // <cjk>
+ 0x58E5, 0x9ADD, // <cjk>
+ 0x58EB, 0x8E6D, // <cjk>
+ 0x58EC, 0x9070, // <cjk>
+ 0x58EE, 0x9173, // <cjk>
+ 0x58EF, 0x9AE1, // <cjk>
+ 0x58F0, 0x90BA, // <cjk>
+ 0x58F1, 0x88EB, // <cjk>
+ 0x58F2, 0x9484, // <cjk>
+ 0x58F7, 0x92D9, // <cjk>
+ 0x58F9, 0x9AE3, // <cjk>
+ 0x58FA, 0x9AE2, // <cjk>
+ 0x58FB, 0x9AE4, // <cjk>
+ 0x58FC, 0x9AE5, // <cjk>
+ 0x58FD, 0x9AE6, // <cjk>
+ 0x5902, 0x9AE7, // <cjk>
+ 0x5909, 0x95CF, // <cjk>
+ 0x590A, 0x9AE8, // <cjk>
+ 0x590F, 0x89C4, // <cjk>
+ 0x5910, 0x9AE9, // <cjk>
+ 0x5916, 0x8A4F, // <cjk>
+ 0x5918, 0x99C7, // <cjk>
+ 0x5919, 0x8F67, // <cjk>
+ 0x591A, 0x91BD, // <cjk>
+ 0x591B, 0x9AEA, // <cjk>
+ 0x591C, 0x96E9, // <cjk>
+ 0x5922, 0x96B2, // <cjk>
+ 0x5925, 0x9AEC, // <cjk>
+ 0x5927, 0x91E5, // <cjk>
+ 0x5929, 0x9356, // <cjk>
+ 0x592A, 0x91BE, // <cjk>
+ 0x592B, 0x9576, // <cjk>
+ 0x592C, 0x9AED, // <cjk>
+ 0x592D, 0x9AEE, // <cjk>
+ 0x592E, 0x899B, // <cjk>
+ 0x5931, 0x8EB8, // <cjk>
+ 0x5932, 0x9AEF, // <cjk>
+ 0x5937, 0x88CE, // <cjk>
+ 0x5938, 0x9AF0, // <cjk>
+ 0x593E, 0x9AF1, // <cjk>
+ 0x5944, 0x8982, // <cjk>
+ 0x5947, 0x8AEF, // <cjk>
+ 0x5948, 0x93DE, // <cjk>
+ 0x5949, 0x95F2, // <cjk>
+ 0x594E, 0x9AF5, // <cjk>
+ 0x594F, 0x9174, // <cjk>
+ 0x5950, 0x9AF4, // <cjk>
+ 0x5951, 0x8C5F, // <cjk>
+ 0x5954, 0x967A, // <cjk>
+ 0x5955, 0x9AF3, // <cjk>
+ 0x5957, 0x9385, // <cjk>
+ 0x5958, 0x9AF7, // <cjk>
+ 0x595A, 0x9AF6, // <cjk>
+ 0x5960, 0x9AF9, // <cjk>
+ 0x5962, 0x9AF8, // <cjk>
+ 0x5965, 0x899C, // <cjk>
+ 0x5967, 0x9AFA, // <cjk>
+ 0x5968, 0x8FA7, // <cjk>
+ 0x5969, 0x9AFC, // <cjk>
+ 0x596A, 0x9244, // <cjk>
+ 0x596C, 0x9AFB, // <cjk>
+ 0x596E, 0x95B1, // <cjk>
+ 0x5973, 0x8F97, // <cjk>
+ 0x5974, 0x937A, // <cjk>
+ 0x5978, 0x9B40, // <cjk>
+ 0x597D, 0x8D44, // <cjk>
+ 0x5981, 0x9B41, // <cjk>
+ 0x5982, 0x9440, // <cjk>
+ 0x5983, 0x94DC, // <cjk>
+ 0x5984, 0x96CF, // <cjk>
+ 0x598A, 0x9444, // <cjk>
+ 0x598D, 0x9B4A, // <cjk>
+ 0x5993, 0x8B57, // <cjk>
+ 0x5996, 0x9764, // <cjk>
+ 0x5999, 0x96AD, // <cjk>
+ 0x599B, 0x9BAA, // <cjk>
+ 0x599D, 0x9B42, // <cjk>
+ 0x59A3, 0x9B45, // <cjk>
+ 0x59A5, 0x91C3, // <cjk>
+ 0x59A8, 0x9657, // <cjk>
+ 0x59AC, 0x9369, // <cjk>
+ 0x59B2, 0x9B46, // <cjk>
+ 0x59B9, 0x9685, // <cjk>
+ 0x59BB, 0x8DC8, // <cjk>
+ 0x59BE, 0x8FA8, // <cjk>
+ 0x59C6, 0x9B47, // <cjk>
+ 0x59C9, 0x8E6F, // <cjk>
+ 0x59CB, 0x8E6E, // <cjk>
+ 0x59D0, 0x88B7, // <cjk>
+ 0x59D1, 0x8CC6, // <cjk>
+ 0x59D3, 0x90A9, // <cjk>
+ 0x59D4, 0x88CF, // <cjk>
+ 0x59D9, 0x9B4B, // <cjk>
+ 0x59DA, 0x9B4C, // <cjk>
+ 0x59DC, 0x9B49, // <cjk>
+ 0x59E5, 0x8957, // <cjk>
+ 0x59E6, 0x8AAD, // <cjk>
+ 0x59E8, 0x9B48, // <cjk>
+ 0x59EA, 0x96C3, // <cjk>
+ 0x59EB, 0x9550, // <cjk>
+ 0x59F6, 0x88A6, // <cjk>
+ 0x59FB, 0x88F7, // <cjk>
+ 0x59FF, 0x8E70, // <cjk>
+ 0x5A01, 0x88D0, // <cjk>
+ 0x5A03, 0x88A1, // <cjk>
+ 0x5A09, 0x9B51, // <cjk>
+ 0x5A11, 0x9B4F, // <cjk>
+ 0x5A18, 0x96BA, // <cjk>
+ 0x5A1A, 0x9B52, // <cjk>
+ 0x5A1C, 0x9B50, // <cjk>
+ 0x5A1F, 0x9B4E, // <cjk>
+ 0x5A20, 0x9050, // <cjk>
+ 0x5A25, 0x9B4D, // <cjk>
+ 0x5A29, 0x95D8, // <cjk>
+ 0x5A2F, 0x8CE2, // <cjk>
+ 0x5A35, 0x9B56, // <cjk>
+ 0x5A36, 0x9B57, // <cjk>
+ 0x5A3C, 0x8FA9, // <cjk>
+ 0x5A40, 0x9B53, // <cjk>
+ 0x5A41, 0x984B, // <cjk>
+ 0x5A46, 0x946B, // <cjk>
+ 0x5A49, 0x9B55, // <cjk>
+ 0x5A5A, 0x8DA5, // <cjk>
+ 0x5A62, 0x9B58, // <cjk>
+ 0x5A66, 0x9577, // <cjk>
+ 0x5A6A, 0x9B59, // <cjk>
+ 0x5A6C, 0x9B54, // <cjk>
+ 0x5A7F, 0x96B9, // <cjk>
+ 0x5A92, 0x947D, // <cjk>
+ 0x5A9A, 0x9B5A, // <cjk>
+ 0x5A9B, 0x9551, // <cjk>
+ 0x5ABD, 0x9B5F, // <cjk>
+ 0x5ABE, 0x9B5C, // <cjk>
+ 0x5AC1, 0x89C5, // <cjk>
+ 0x5AC2, 0x9B5E, // <cjk>
+ 0x5AC9, 0x8EB9, // <cjk>
+ 0x5ACB, 0x9B5D, // <cjk>
+ 0x5ACC, 0x8C99, // <cjk>
+ 0x5AD0, 0x9B6B, // <cjk>
+ 0x5AD6, 0x9B64, // <cjk>
+ 0x5AD7, 0x9B61, // <cjk>
+ 0x5AE1, 0x9284, // <cjk>
+ 0x5AE3, 0x9B60, // <cjk>
+ 0x5AE6, 0x9B62, // <cjk>
+ 0x5AE9, 0x9B63, // <cjk>
+ 0x5AFA, 0x9B65, // <cjk>
+ 0x5AFB, 0x9B66, // <cjk>
+ 0x5B09, 0x8AF0, // <cjk>
+ 0x5B0B, 0x9B68, // <cjk>
+ 0x5B0C, 0x9B67, // <cjk>
+ 0x5B16, 0x9B69, // <cjk>
+ 0x5B22, 0x8FEC, // <cjk>
+ 0x5B2A, 0x9B6C, // <cjk>
+ 0x5B2C, 0x92DA, // <cjk>
+ 0x5B30, 0x8964, // <cjk>
+ 0x5B32, 0x9B6A, // <cjk>
+ 0x5B36, 0x9B6D, // <cjk>
+ 0x5B3E, 0x9B6E, // <cjk>
+ 0x5B40, 0x9B71, // <cjk>
+ 0x5B43, 0x9B6F, // <cjk>
+ 0x5B45, 0x9B70, // <cjk>
+ 0x5B50, 0x8E71, // <cjk>
+ 0x5B51, 0x9B72, // <cjk>
+ 0x5B54, 0x8D45, // <cjk>
+ 0x5B55, 0x9B73, // <cjk>
+ 0x5B57, 0x8E9A, // <cjk>
+ 0x5B58, 0x91B6, // <cjk>
+ 0x5B5A, 0x9B74, // <cjk>
+ 0x5B5B, 0x9B75, // <cjk>
+ 0x5B5C, 0x8E79, // <cjk>
+ 0x5B5D, 0x8D46, // <cjk>
+ 0x5B5F, 0x96D0, // <cjk>
+ 0x5B63, 0x8B47, // <cjk>
+ 0x5B64, 0x8CC7, // <cjk>
+ 0x5B65, 0x9B76, // <cjk>
+ 0x5B66, 0x8A77, // <cjk>
+ 0x5B69, 0x9B77, // <cjk>
+ 0x5B6B, 0x91B7, // <cjk>
+ 0x5B70, 0x9B78, // <cjk>
+ 0x5B71, 0x9BA1, // <cjk>
+ 0x5B73, 0x9B79, // <cjk>
+ 0x5B75, 0x9B7A, // <cjk>
+ 0x5B78, 0x9B7B, // <cjk>
+ 0x5B7A, 0x9B7D, // <cjk>
+ 0x5B80, 0x9B7E, // <cjk>
+ 0x5B83, 0x9B80, // <cjk>
+ 0x5B85, 0x91EE, // <cjk>
+ 0x5B87, 0x8946, // <cjk>
+ 0x5B88, 0x8EE7, // <cjk>
+ 0x5B89, 0x88C0, // <cjk>
+ 0x5B8B, 0x9176, // <cjk>
+ 0x5B8C, 0x8AAE, // <cjk>
+ 0x5B8D, 0x8EB3, // <cjk>
+ 0x5B8F, 0x8D47, // <cjk>
+ 0x5B95, 0x9386, // <cjk>
+ 0x5B97, 0x8F40, // <cjk>
+ 0x5B98, 0x8AAF, // <cjk>
+ 0x5B99, 0x9288, // <cjk>
+ 0x5B9A, 0x92E8, // <cjk>
+ 0x5B9B, 0x88B6, // <cjk>
+ 0x5B9C, 0x8B58, // <cjk>
+ 0x5B9D, 0x95F3, // <cjk>
+ 0x5B9F, 0x8EC0, // <cjk>
+ 0x5BA2, 0x8B71, // <cjk>
+ 0x5BA3, 0x90E9, // <cjk>
+ 0x5BA4, 0x8EBA, // <cjk>
+ 0x5BA5, 0x9747, // <cjk>
+ 0x5BA6, 0x9B81, // <cjk>
+ 0x5BAE, 0x8B7B, // <cjk>
+ 0x5BB0, 0x8DC9, // <cjk>
+ 0x5BB3, 0x8A51, // <cjk>
+ 0x5BB4, 0x8983, // <cjk>
+ 0x5BB5, 0x8FAA, // <cjk>
+ 0x5BB6, 0x89C6, // <cjk>
+ 0x5BB8, 0x9B82, // <cjk>
+ 0x5BB9, 0x9765, // <cjk>
+ 0x5BBF, 0x8F68, // <cjk>
+ 0x5BC2, 0x8EE2, // <cjk>
+ 0x5BC3, 0x9B83, // <cjk>
+ 0x5BC4, 0x8AF1, // <cjk>
+ 0x5BC5, 0x93D0, // <cjk>
+ 0x5BC6, 0x96A7, // <cjk>
+ 0x5BC7, 0x9B84, // <cjk>
+ 0x5BC9, 0x9B85, // <cjk>
+ 0x5BCC, 0x9578, // <cjk>
+ 0x5BD0, 0x9B87, // <cjk>
+ 0x5BD2, 0x8AA6, // <cjk>
+ 0x5BD3, 0x8BF5, // <cjk>
+ 0x5BD4, 0x9B86, // <cjk>
+ 0x5BDB, 0x8AB0, // <cjk>
+ 0x5BDD, 0x9051, // <cjk>
+ 0x5BDE, 0x9B8B, // <cjk>
+ 0x5BDF, 0x8E40, // <cjk>
+ 0x5BE1, 0x89C7, // <cjk>
+ 0x5BE2, 0x9B8A, // <cjk>
+ 0x5BE4, 0x9B88, // <cjk>
+ 0x5BE5, 0x9B8C, // <cjk>
+ 0x5BE6, 0x9B89, // <cjk>
+ 0x5BE7, 0x944A, // <cjk>
+ 0x5BE8, 0x9ECB, // <cjk>
+ 0x5BE9, 0x9052, // <cjk>
+ 0x5BEB, 0x9B8D, // <cjk>
+ 0x5BEE, 0x97BE, // <cjk>
+ 0x5BF0, 0x9B8E, // <cjk>
+ 0x5BF3, 0x9B90, // <cjk>
+ 0x5BF5, 0x929E, // <cjk>
+ 0x5BF6, 0x9B8F, // <cjk>
+ 0x5BF8, 0x90A1, // <cjk>
+ 0x5BFA, 0x8E9B, // <cjk>
+ 0x5BFE, 0x91CE, // <cjk>
+ 0x5BFF, 0x8EF5, // <cjk>
+ 0x5C01, 0x9595, // <cjk>
+ 0x5C02, 0x90EA, // <cjk>
+ 0x5C04, 0x8ECB, // <cjk>
+ 0x5C05, 0x9B91, // <cjk>
+ 0x5C06, 0x8FAB, // <cjk>
+ 0x5C07, 0x9B92, // <cjk>
+ 0x5C08, 0x9B93, // <cjk>
+ 0x5C09, 0x88D1, // <cjk>
+ 0x5C0A, 0x91B8, // <cjk>
+ 0x5C0B, 0x9071, // <cjk>
+ 0x5C0D, 0x9B94, // <cjk>
+ 0x5C0E, 0x93B1, // <cjk>
+ 0x5C0F, 0x8FAC, // <cjk>
+ 0x5C11, 0x8FAD, // <cjk>
+ 0x5C13, 0x9B95, // <cjk>
+ 0x5C16, 0x90EB, // <cjk>
+ 0x5C1A, 0x8FAE, // <cjk>
+ 0x5C20, 0x9B96, // <cjk>
+ 0x5C22, 0x9B97, // <cjk>
+ 0x5C24, 0x96DE, // <cjk>
+ 0x5C28, 0x9B98, // <cjk>
+ 0x5C2D, 0x8BC4, // <cjk>
+ 0x5C31, 0x8F41, // <cjk>
+ 0x5C38, 0x9B99, // <cjk>
+ 0x5C39, 0x9B9A, // <cjk>
+ 0x5C3A, 0x8EDA, // <cjk>
+ 0x5C3B, 0x904B, // <cjk>
+ 0x5C3C, 0x93F2, // <cjk>
+ 0x5C3D, 0x9073, // <cjk>
+ 0x5C3E, 0x94F6, // <cjk>
+ 0x5C3F, 0x9441, // <cjk>
+ 0x5C40, 0x8BC7, // <cjk>
+ 0x5C41, 0x9B9B, // <cjk>
+ 0x5C45, 0x8B8F, // <cjk>
+ 0x5C46, 0x9B9C, // <cjk>
+ 0x5C48, 0x8BFC, // <cjk>
+ 0x5C4A, 0x93CD, // <cjk>
+ 0x5C4B, 0x89AE, // <cjk>
+ 0x5C4D, 0x8E72, // <cjk>
+ 0x5C4E, 0x9B9D, // <cjk>
+ 0x5C4F, 0x9BA0, // <cjk>
+ 0x5C50, 0x9B9F, // <cjk>
+ 0x5C51, 0x8BFB, // <cjk>
+ 0x5C53, 0x9B9E, // <cjk>
+ 0x5C55, 0x9357, // <cjk>
+ 0x5C5E, 0x91AE, // <cjk>
+ 0x5C60, 0x936A, // <cjk>
+ 0x5C61, 0x8EC6, // <cjk>
+ 0x5C64, 0x9177, // <cjk>
+ 0x5C65, 0x979A, // <cjk>
+ 0x5C6C, 0x9BA2, // <cjk>
+ 0x5C6E, 0x9BA3, // <cjk>
+ 0x5C6F, 0x93D4, // <cjk>
+ 0x5C71, 0x8E52, // <cjk>
+ 0x5C76, 0x9BA5, // <cjk>
+ 0x5C79, 0x9BA6, // <cjk>
+ 0x5C8C, 0x9BA7, // <cjk>
+ 0x5C90, 0x8AF2, // <cjk>
+ 0x5C91, 0x9BA8, // <cjk>
+ 0x5C94, 0x9BA9, // <cjk>
+ 0x5CA1, 0x89AA, // <cjk>
+ 0x5CA8, 0x915A, // <cjk>
+ 0x5CA9, 0x8AE2, // <cjk>
+ 0x5CAB, 0x9BAB, // <cjk>
+ 0x5CAC, 0x96A6, // <cjk>
+ 0x5CB1, 0x91D0, // <cjk>
+ 0x5CB3, 0x8A78, // <cjk>
+ 0x5CB6, 0x9BAD, // <cjk>
+ 0x5CB7, 0x9BAF, // <cjk>
+ 0x5CB8, 0x8ADD, // <cjk>
+ 0x5CBB, 0x9BAC, // <cjk>
+ 0x5CBC, 0x9BAE, // <cjk>
+ 0x5CBE, 0x9BB1, // <cjk>
+ 0x5CC5, 0x9BB0, // <cjk>
+ 0x5CC7, 0x9BB2, // <cjk>
+ 0x5CD9, 0x9BB3, // <cjk>
+ 0x5CE0, 0x93BB, // <cjk>
+ 0x5CE1, 0x8BAC, // <cjk>
+ 0x5CE8, 0x89E3, // <cjk>
+ 0x5CE9, 0x9BB4, // <cjk>
+ 0x5CEA, 0x9BB9, // <cjk>
+ 0x5CED, 0x9BB7, // <cjk>
+ 0x5CEF, 0x95F5, // <cjk>
+ 0x5CF0, 0x95F4, // <cjk>
+ 0x5CF6, 0x9387, // <cjk>
+ 0x5CFA, 0x9BB6, // <cjk>
+ 0x5CFB, 0x8F73, // <cjk>
+ 0x5CFD, 0x9BB5, // <cjk>
+ 0x5D07, 0x9092, // <cjk>
+ 0x5D0B, 0x9BBA, // <cjk>
+ 0x5D0E, 0x8DE8, // <cjk>
+ 0x5D11, 0x9BC0, // <cjk>
+ 0x5D14, 0x9BC1, // <cjk>
+ 0x5D15, 0x9BBB, // <cjk>
+ 0x5D16, 0x8A52, // <cjk>
+ 0x5D17, 0x9BBC, // <cjk>
+ 0x5D18, 0x9BC5, // <cjk>
+ 0x5D19, 0x9BC4, // <cjk>
+ 0x5D1A, 0x9BC3, // <cjk>
+ 0x5D1B, 0x9BBF, // <cjk>
+ 0x5D1F, 0x9BBE, // <cjk>
+ 0x5D22, 0x9BC2, // <cjk>
+ 0x5D29, 0x95F6, // <cjk>
+ 0x5D4B, 0x9BC9, // <cjk>
+ 0x5D4C, 0x9BC6, // <cjk>
+ 0x5D4E, 0x9BC8, // <cjk>
+ 0x5D50, 0x9792, // <cjk>
+ 0x5D52, 0x9BC7, // <cjk>
+ 0x5D5C, 0x9BBD, // <cjk>
+ 0x5D69, 0x9093, // <cjk>
+ 0x5D6C, 0x9BCA, // <cjk>
+ 0x5D6F, 0x8DB5, // <cjk>
+ 0x5D73, 0x9BCB, // <cjk>
+ 0x5D76, 0x9BCC, // <cjk>
+ 0x5D82, 0x9BCF, // <cjk>
+ 0x5D84, 0x9BCE, // <cjk>
+ 0x5D87, 0x9BCD, // <cjk>
+ 0x5D8B, 0x9388, // <cjk>
+ 0x5D8C, 0x9BB8, // <cjk>
+ 0x5D90, 0x9BD5, // <cjk>
+ 0x5D9D, 0x9BD1, // <cjk>
+ 0x5DA2, 0x9BD0, // <cjk>
+ 0x5DAC, 0x9BD2, // <cjk>
+ 0x5DAE, 0x9BD3, // <cjk>
+ 0x5DB7, 0x9BD6, // <cjk>
+ 0x5DBA, 0x97E4, // <cjk>
+ 0x5DBC, 0x9BD7, // <cjk>
+ 0x5DBD, 0x9BD4, // <cjk>
+ 0x5DC9, 0x9BD8, // <cjk>
+ 0x5DCC, 0x8ADE, // <cjk>
+ 0x5DCD, 0x9BD9, // <cjk>
+ 0x5DD2, 0x9BDB, // <cjk>
+ 0x5DD3, 0x9BDA, // <cjk>
+ 0x5DD6, 0x9BDC, // <cjk>
+ 0x5DDB, 0x9BDD, // <cjk>
+ 0x5DDD, 0x90EC, // <cjk>
+ 0x5DDE, 0x8F42, // <cjk>
+ 0x5DE1, 0x8F84, // <cjk>
+ 0x5DE3, 0x9183, // <cjk>
+ 0x5DE5, 0x8D48, // <cjk>
+ 0x5DE6, 0x8DB6, // <cjk>
+ 0x5DE7, 0x8D49, // <cjk>
+ 0x5DE8, 0x8B90, // <cjk>
+ 0x5DEB, 0x9BDE, // <cjk>
+ 0x5DEE, 0x8DB7, // <cjk>
+ 0x5DF1, 0x8CC8, // <cjk>
+ 0x5DF2, 0x9BDF, // <cjk>
+ 0x5DF3, 0x96A4, // <cjk>
+ 0x5DF4, 0x9462, // <cjk>
+ 0x5DF5, 0x9BE0, // <cjk>
+ 0x5DF7, 0x8D4A, // <cjk>
+ 0x5DFB, 0x8AAA, // <cjk>
+ 0x5DFD, 0x9246, // <cjk>
+ 0x5DFE, 0x8BD0, // <cjk>
+ 0x5E02, 0x8E73, // <cjk>
+ 0x5E03, 0x957A, // <cjk>
+ 0x5E06, 0x94BF, // <cjk>
+ 0x5E0B, 0x9BE1, // <cjk>
+ 0x5E0C, 0x8AF3, // <cjk>
+ 0x5E11, 0x9BE4, // <cjk>
+ 0x5E16, 0x929F, // <cjk>
+ 0x5E19, 0x9BE3, // <cjk>
+ 0x5E1A, 0x9BE2, // <cjk>
+ 0x5E1B, 0x9BE5, // <cjk>
+ 0x5E1D, 0x92E9, // <cjk>
+ 0x5E25, 0x9083, // <cjk>
+ 0x5E2B, 0x8E74, // <cjk>
+ 0x5E2D, 0x90C8, // <cjk>
+ 0x5E2F, 0x91D1, // <cjk>
+ 0x5E30, 0x8B41, // <cjk>
+ 0x5E33, 0x92A0, // <cjk>
+ 0x5E36, 0x9BE6, // <cjk>
+ 0x5E37, 0x9BE7, // <cjk>
+ 0x5E38, 0x8FED, // <cjk>
+ 0x5E3D, 0x9658, // <cjk>
+ 0x5E40, 0x9BEA, // <cjk>
+ 0x5E43, 0x9BE9, // <cjk>
+ 0x5E44, 0x9BE8, // <cjk>
+ 0x5E45, 0x959D, // <cjk>
+ 0x5E47, 0x9BF1, // <cjk>
+ 0x5E4C, 0x9679, // <cjk>
+ 0x5E4E, 0x9BEB, // <cjk>
+ 0x5E54, 0x9BED, // <cjk>
+ 0x5E55, 0x968B, // <cjk>
+ 0x5E57, 0x9BEC, // <cjk>
+ 0x5E5F, 0x9BEE, // <cjk>
+ 0x5E61, 0x94A6, // <cjk>
+ 0x5E62, 0x9BEF, // <cjk>
+ 0x5E63, 0x95BC, // <cjk>
+ 0x5E64, 0x9BF0, // <cjk>
+ 0x5E72, 0x8AB1, // <cjk>
+ 0x5E73, 0x95BD, // <cjk>
+ 0x5E74, 0x944E, // <cjk>
+ 0x5E75, 0x9BF2, // <cjk>
+ 0x5E76, 0x9BF3, // <cjk>
+ 0x5E78, 0x8D4B, // <cjk>
+ 0x5E79, 0x8AB2, // <cjk>
+ 0x5E7A, 0x9BF4, // <cjk>
+ 0x5E7B, 0x8CB6, // <cjk>
+ 0x5E7C, 0x9763, // <cjk>
+ 0x5E7D, 0x9748, // <cjk>
+ 0x5E7E, 0x8AF4, // <cjk>
+ 0x5E7F, 0x9BF6, // <cjk>
+ 0x5E81, 0x92A1, // <cjk>
+ 0x5E83, 0x8D4C, // <cjk>
+ 0x5E84, 0x8FAF, // <cjk>
+ 0x5E87, 0x94DD, // <cjk>
+ 0x5E8A, 0x8FB0, // <cjk>
+ 0x5E8F, 0x8F98, // <cjk>
+ 0x5E95, 0x92EA, // <cjk>
+ 0x5E96, 0x95F7, // <cjk>
+ 0x5E97, 0x9358, // <cjk>
+ 0x5E9A, 0x8D4D, // <cjk>
+ 0x5E9C, 0x957B, // <cjk>
+ 0x5EA0, 0x9BF7, // <cjk>
+ 0x5EA6, 0x9378, // <cjk>
+ 0x5EA7, 0x8DC0, // <cjk>
+ 0x5EAB, 0x8CC9, // <cjk>
+ 0x5EAD, 0x92EB, // <cjk>
+ 0x5EB5, 0x88C1, // <cjk>
+ 0x5EB6, 0x8F8E, // <cjk>
+ 0x5EB7, 0x8D4E, // <cjk>
+ 0x5EB8, 0x9766, // <cjk>
+ 0x5EC1, 0x9BF8, // <cjk>
+ 0x5EC2, 0x9BF9, // <cjk>
+ 0x5EC3, 0x9470, // <cjk>
+ 0x5EC8, 0x9BFA, // <cjk>
+ 0x5EC9, 0x97F5, // <cjk>
+ 0x5ECA, 0x984C, // <cjk>
+ 0x5ECF, 0x9BFC, // <cjk>
+ 0x5ED0, 0x9BFB, // <cjk>
+ 0x5ED3, 0x8A66, // <cjk>
+ 0x5ED6, 0x9C40, // <cjk>
+ 0x5EDA, 0x9C43, // <cjk>
+ 0x5EDB, 0x9C44, // <cjk>
+ 0x5EDD, 0x9C42, // <cjk>
+ 0x5EDF, 0x955F, // <cjk>
+ 0x5EE0, 0x8FB1, // <cjk>
+ 0x5EE1, 0x9C46, // <cjk>
+ 0x5EE2, 0x9C45, // <cjk>
+ 0x5EE3, 0x9C41, // <cjk>
+ 0x5EE8, 0x9C47, // <cjk>
+ 0x5EE9, 0x9C48, // <cjk>
+ 0x5EEC, 0x9C49, // <cjk>
+ 0x5EF0, 0x9C4C, // <cjk>
+ 0x5EF1, 0x9C4A, // <cjk>
+ 0x5EF3, 0x9C4B, // <cjk>
+ 0x5EF4, 0x9C4D, // <cjk>
+ 0x5EF6, 0x8984, // <cjk>
+ 0x5EF7, 0x92EC, // <cjk>
+ 0x5EF8, 0x9C4E, // <cjk>
+ 0x5EFA, 0x8C9A, // <cjk>
+ 0x5EFB, 0x89F4, // <cjk>
+ 0x5EFC, 0x9455, // <cjk>
+ 0x5EFE, 0x9C4F, // <cjk>
+ 0x5EFF, 0x93F9, // <cjk>
+ 0x5F01, 0x95D9, // <cjk>
+ 0x5F03, 0x9C50, // <cjk>
+ 0x5F04, 0x984D, // <cjk>
+ 0x5F09, 0x9C51, // <cjk>
+ 0x5F0A, 0x95BE, // <cjk>
+ 0x5F0B, 0x9C54, // <cjk>
+ 0x5F0C, 0x989F, // <cjk>
+ 0x5F0D, 0x98AF, // <cjk>
+ 0x5F0F, 0x8EAE, // <cjk>
+ 0x5F10, 0x93F3, // <cjk>
+ 0x5F11, 0x9C55, // <cjk>
+ 0x5F13, 0x8B7C, // <cjk>
+ 0x5F14, 0x92A2, // <cjk>
+ 0x5F15, 0x88F8, // <cjk>
+ 0x5F16, 0x9C56, // <cjk>
+ 0x5F17, 0x95A4, // <cjk>
+ 0x5F18, 0x8D4F, // <cjk>
+ 0x5F1B, 0x926F, // <cjk>
+ 0x5F1F, 0x92ED, // <cjk>
+ 0x5F25, 0x96ED, // <cjk>
+ 0x5F26, 0x8CB7, // <cjk>
+ 0x5F27, 0x8CCA, // <cjk>
+ 0x5F29, 0x9C57, // <cjk>
+ 0x5F2D, 0x9C58, // <cjk>
+ 0x5F2F, 0x9C5E, // <cjk>
+ 0x5F31, 0x8EE3, // <cjk>
+ 0x5F35, 0x92A3, // <cjk>
+ 0x5F37, 0x8BAD, // <cjk>
+ 0x5F38, 0x9C59, // <cjk>
+ 0x5F3C, 0x954A, // <cjk>
+ 0x5F3E, 0x9265, // <cjk>
+ 0x5F41, 0x9C5A, // <cjk>
+ 0x5F4A, 0x8BAE, // <cjk>
+ 0x5F4C, 0x9C5C, // <cjk>
+ 0x5F4E, 0x9C5D, // <cjk>
+ 0x5F51, 0x9C5F, // <cjk>
+ 0x5F53, 0x9396, // <cjk>
+ 0x5F56, 0x9C60, // <cjk>
+ 0x5F57, 0x9C61, // <cjk>
+ 0x5F59, 0x9C62, // <cjk>
+ 0x5F5C, 0x9C53, // <cjk>
+ 0x5F5D, 0x9C52, // <cjk>
+ 0x5F61, 0x9C63, // <cjk>
+ 0x5F62, 0x8C60, // <cjk>
+ 0x5F66, 0x9546, // <cjk>
+ 0x5F69, 0x8DCA, // <cjk>
+ 0x5F6A, 0x9556, // <cjk>
+ 0x5F6B, 0x92A4, // <cjk>
+ 0x5F6C, 0x956A, // <cjk>
+ 0x5F6D, 0x9C64, // <cjk>
+ 0x5F70, 0x8FB2, // <cjk>
+ 0x5F71, 0x8965, // <cjk>
+ 0x5F73, 0x9C65, // <cjk>
+ 0x5F77, 0x9C66, // <cjk>
+ 0x5F79, 0x96F0, // <cjk>
+ 0x5F7C, 0x94DE, // <cjk>
+ 0x5F7F, 0x9C69, // <cjk>
+ 0x5F80, 0x899D, // <cjk>
+ 0x5F81, 0x90AA, // <cjk>
+ 0x5F82, 0x9C68, // <cjk>
+ 0x5F83, 0x9C67, // <cjk>
+ 0x5F84, 0x8C61, // <cjk>
+ 0x5F85, 0x91D2, // <cjk>
+ 0x5F87, 0x9C6D, // <cjk>
+ 0x5F88, 0x9C6B, // <cjk>
+ 0x5F8A, 0x9C6A, // <cjk>
+ 0x5F8B, 0x97A5, // <cjk>
+ 0x5F8C, 0x8CE3, // <cjk>
+ 0x5F90, 0x8F99, // <cjk>
+ 0x5F91, 0x9C6C, // <cjk>
+ 0x5F92, 0x936B, // <cjk>
+ 0x5F93, 0x8F5D, // <cjk>
+ 0x5F97, 0x93BE, // <cjk>
+ 0x5F98, 0x9C70, // <cjk>
+ 0x5F99, 0x9C6F, // <cjk>
+ 0x5F9E, 0x9C6E, // <cjk>
+ 0x5FA0, 0x9C71, // <cjk>
+ 0x5FA1, 0x8CE4, // <cjk>
+ 0x5FA8, 0x9C72, // <cjk>
+ 0x5FA9, 0x959C, // <cjk>
+ 0x5FAA, 0x8F7A, // <cjk>
+ 0x5FAD, 0x9C73, // <cjk>
+ 0x5FAE, 0x94F7, // <cjk>
+ 0x5FB3, 0x93BF, // <cjk>
+ 0x5FB4, 0x92A5, // <cjk>
+ 0x5FB9, 0x934F, // <cjk>
+ 0x5FBC, 0x9C74, // <cjk>
+ 0x5FBD, 0x8B4A, // <cjk>
+ 0x5FC3, 0x9053, // <cjk>
+ 0x5FC5, 0x954B, // <cjk>
+ 0x5FCC, 0x8AF5, // <cjk>
+ 0x5FCD, 0x9445, // <cjk>
+ 0x5FD6, 0x9C75, // <cjk>
+ 0x5FD7, 0x8E75, // <cjk>
+ 0x5FD8, 0x9659, // <cjk>
+ 0x5FD9, 0x965A, // <cjk>
+ 0x5FDC, 0x899E, // <cjk>
+ 0x5FDD, 0x9C7A, // <cjk>
+ 0x5FE0, 0x9289, // <cjk>
+ 0x5FE4, 0x9C77, // <cjk>
+ 0x5FEB, 0x89F5, // <cjk>
+ 0x5FF0, 0x9CAB, // <cjk>
+ 0x5FF1, 0x9C79, // <cjk>
+ 0x5FF5, 0x944F, // <cjk>
+ 0x5FF8, 0x9C78, // <cjk>
+ 0x5FFB, 0x9C76, // <cjk>
+ 0x5FFD, 0x8D9A, // <cjk>
+ 0x5FFF, 0x9C7C, // <cjk>
+ 0x600E, 0x9C83, // <cjk>
+ 0x600F, 0x9C89, // <cjk>
+ 0x6010, 0x9C81, // <cjk>
+ 0x6012, 0x937B, // <cjk>
+ 0x6015, 0x9C86, // <cjk>
+ 0x6016, 0x957C, // <cjk>
+ 0x6019, 0x9C80, // <cjk>
+ 0x601B, 0x9C85, // <cjk>
+ 0x601C, 0x97E5, // <cjk>
+ 0x601D, 0x8E76, // <cjk>
+ 0x6020, 0x91D3, // <cjk>
+ 0x6021, 0x9C7D, // <cjk>
+ 0x6025, 0x8B7D, // <cjk>
+ 0x6026, 0x9C88, // <cjk>
+ 0x6027, 0x90AB, // <cjk>
+ 0x6028, 0x8985, // <cjk>
+ 0x6029, 0x9C82, // <cjk>
+ 0x602A, 0x89F6, // <cjk>
+ 0x602B, 0x9C87, // <cjk>
+ 0x602F, 0x8BAF, // <cjk>
+ 0x6031, 0x9C84, // <cjk>
+ 0x603A, 0x9C8A, // <cjk>
+ 0x6041, 0x9C8C, // <cjk>
+ 0x6042, 0x9C96, // <cjk>
+ 0x6043, 0x9C94, // <cjk>
+ 0x6046, 0x9C91, // <cjk>
+ 0x604A, 0x9C90, // <cjk>
+ 0x604B, 0x97F6, // <cjk>
+ 0x604D, 0x9C92, // <cjk>
+ 0x6050, 0x8BB0, // <cjk>
+ 0x6052, 0x8D50, // <cjk>
+ 0x6055, 0x8F9A, // <cjk>
+ 0x6059, 0x9C99, // <cjk>
+ 0x605A, 0x9C8B, // <cjk>
+ 0x605F, 0x9C8F, // <cjk>
+ 0x6060, 0x9C7E, // <cjk>
+ 0x6062, 0x89F8, // <cjk>
+ 0x6063, 0x9C93, // <cjk>
+ 0x6064, 0x9C95, // <cjk>
+ 0x6065, 0x9270, // <cjk>
+ 0x6068, 0x8DA6, // <cjk>
+ 0x6069, 0x89B6, // <cjk>
+ 0x606A, 0x9C8D, // <cjk>
+ 0x606B, 0x9C98, // <cjk>
+ 0x606C, 0x9C97, // <cjk>
+ 0x606D, 0x8BB1, // <cjk>
+ 0x606F, 0x91A7, // <cjk>
+ 0x6070, 0x8A86, // <cjk>
+ 0x6075, 0x8C62, // <cjk>
+ 0x6077, 0x9C8E, // <cjk>
+ 0x6081, 0x9C9A, // <cjk>
+ 0x6083, 0x9C9D, // <cjk>
+ 0x6084, 0x9C9F, // <cjk>
+ 0x6089, 0x8EBB, // <cjk>
+ 0x608B, 0x9CA5, // <cjk>
+ 0x608C, 0x92EE, // <cjk>
+ 0x608D, 0x9C9B, // <cjk>
+ 0x6092, 0x9CA3, // <cjk>
+ 0x6094, 0x89F7, // <cjk>
+ 0x6096, 0x9CA1, // <cjk>
+ 0x6097, 0x9CA2, // <cjk>
+ 0x609A, 0x9C9E, // <cjk>
+ 0x609B, 0x9CA0, // <cjk>
+ 0x609F, 0x8CE5, // <cjk>
+ 0x60A0, 0x9749, // <cjk>
+ 0x60A3, 0x8AB3, // <cjk>
+ 0x60A6, 0x8978, // <cjk>
+ 0x60A7, 0x9CA4, // <cjk>
+ 0x60A9, 0x9459, // <cjk>
+ 0x60AA, 0x88AB, // <cjk>
+ 0x60B2, 0x94DF, // <cjk>
+ 0x60B3, 0x9C7B, // <cjk>
+ 0x60B4, 0x9CAA, // <cjk>
+ 0x60B5, 0x9CAE, // <cjk>
+ 0x60B6, 0x96E3, // <cjk>
+ 0x60B8, 0x9CA7, // <cjk>
+ 0x60BC, 0x9389, // <cjk>
+ 0x60BD, 0x9CAC, // <cjk>
+ 0x60C5, 0x8FEE, // <cjk>
+ 0x60C6, 0x9CAD, // <cjk>
+ 0x60C7, 0x93D5, // <cjk>
+ 0x60D1, 0x9866, // <cjk>
+ 0x60D3, 0x9CA9, // <cjk>
+ 0x60D8, 0x9CAF, // <cjk>
+ 0x60DA, 0x8D9B, // <cjk>
+ 0x60DC, 0x90C9, // <cjk>
+ 0x60DF, 0x88D2, // <cjk>
+ 0x60E0, 0x9CA8, // <cjk>
+ 0x60E1, 0x9CA6, // <cjk>
+ 0x60E3, 0x9179, // <cjk>
+ 0x60E7, 0x9C9C, // <cjk>
+ 0x60E8, 0x8E53, // <cjk>
+ 0x60F0, 0x91C4, // <cjk>
+ 0x60F1, 0x9CBB, // <cjk>
+ 0x60F3, 0x917A, // <cjk>
+ 0x60F4, 0x9CB6, // <cjk>
+ 0x60F6, 0x9CB3, // <cjk>
+ 0x60F7, 0x9CB4, // <cjk>
+ 0x60F9, 0x8EE4, // <cjk>
+ 0x60FA, 0x9CB7, // <cjk>
+ 0x60FB, 0x9CBA, // <cjk>
+ 0x6100, 0x9CB5, // <cjk>
+ 0x6101, 0x8F44, // <cjk>
+ 0x6103, 0x9CB8, // <cjk>
+ 0x6106, 0x9CB2, // <cjk>
+ 0x6108, 0x96FA, // <cjk>
+ 0x6109, 0x96F9, // <cjk>
+ 0x610D, 0x9CBC, // <cjk>
+ 0x610E, 0x9CBD, // <cjk>
+ 0x610F, 0x88D3, // <cjk>
+ 0x6115, 0x9CB1, // <cjk>
+ 0x611A, 0x8BF0, // <cjk>
+ 0x611B, 0x88A4, // <cjk>
+ 0x611F, 0x8AB4, // <cjk>
+ 0x6121, 0x9CB9, // <cjk>
+ 0x6127, 0x9CC1, // <cjk>
+ 0x6128, 0x9CC0, // <cjk>
+ 0x612C, 0x9CC5, // <cjk>
+ 0x6134, 0x9CC6, // <cjk>
+ 0x613C, 0x9CC4, // <cjk>
+ 0x613D, 0x9CC7, // <cjk>
+ 0x613E, 0x9CBF, // <cjk>
+ 0x613F, 0x9CC3, // <cjk>
+ 0x6142, 0x9CC8, // <cjk>
+ 0x6144, 0x9CC9, // <cjk>
+ 0x6147, 0x9CBE, // <cjk>
+ 0x6148, 0x8E9C, // <cjk>
+ 0x614A, 0x9CC2, // <cjk>
+ 0x614B, 0x91D4, // <cjk>
+ 0x614C, 0x8D51, // <cjk>
+ 0x614D, 0x9CB0, // <cjk>
+ 0x614E, 0x9054, // <cjk>
+ 0x6153, 0x9CD6, // <cjk>
+ 0x6155, 0x95E7, // <cjk>
+ 0x6158, 0x9CCC, // <cjk>
+ 0x6159, 0x9CCD, // <cjk>
+ 0x615A, 0x9CCE, // <cjk>
+ 0x615D, 0x9CD5, // <cjk>
+ 0x615F, 0x9CD4, // <cjk>
+ 0x6162, 0x969D, // <cjk>
+ 0x6163, 0x8AB5, // <cjk>
+ 0x6165, 0x9CD2, // <cjk>
+ 0x6167, 0x8C64, // <cjk>
+ 0x6168, 0x8A53, // <cjk>
+ 0x616B, 0x9CCF, // <cjk>
+ 0x616E, 0x97B6, // <cjk>
+ 0x616F, 0x9CD1, // <cjk>
+ 0x6170, 0x88D4, // <cjk>
+ 0x6171, 0x9CD3, // <cjk>
+ 0x6173, 0x9CCA, // <cjk>
+ 0x6174, 0x9CD0, // <cjk>
+ 0x6175, 0x9CD7, // <cjk>
+ 0x6176, 0x8C63, // <cjk>
+ 0x6177, 0x9CCB, // <cjk>
+ 0x617E, 0x977C, // <cjk>
+ 0x6182, 0x974A, // <cjk>
+ 0x6187, 0x9CDA, // <cjk>
+ 0x618A, 0x9CDE, // <cjk>
+ 0x618E, 0x919E, // <cjk>
+ 0x6190, 0x97F7, // <cjk>
+ 0x6191, 0x9CDF, // <cjk>
+ 0x6194, 0x9CDC, // <cjk>
+ 0x6196, 0x9CD9, // <cjk>
+ 0x6199, 0x9CD8, // <cjk>
+ 0x619A, 0x9CDD, // <cjk>
+ 0x61A4, 0x95AE, // <cjk>
+ 0x61A7, 0x93B2, // <cjk>
+ 0x61A9, 0x8C65, // <cjk>
+ 0x61AB, 0x9CE0, // <cjk>
+ 0x61AC, 0x9CDB, // <cjk>
+ 0x61AE, 0x9CE1, // <cjk>
+ 0x61B2, 0x8C9B, // <cjk>
+ 0x61B6, 0x89AF, // <cjk>
+ 0x61BA, 0x9CE9, // <cjk>
+ 0x61BE, 0x8AB6, // <cjk>
+ 0x61C3, 0x9CE7, // <cjk>
+ 0x61C6, 0x9CE8, // <cjk>
+ 0x61C7, 0x8DA7, // <cjk>
+ 0x61C8, 0x9CE6, // <cjk>
+ 0x61C9, 0x9CE4, // <cjk>
+ 0x61CA, 0x9CE3, // <cjk>
+ 0x61CB, 0x9CEA, // <cjk>
+ 0x61CC, 0x9CE2, // <cjk>
+ 0x61CD, 0x9CEC, // <cjk>
+ 0x61D0, 0x89F9, // <cjk>
+ 0x61E3, 0x9CEE, // <cjk>
+ 0x61E6, 0x9CED, // <cjk>
+ 0x61F2, 0x92A6, // <cjk>
+ 0x61F4, 0x9CF1, // <cjk>
+ 0x61F6, 0x9CEF, // <cjk>
+ 0x61F7, 0x9CE5, // <cjk>
+ 0x61F8, 0x8C9C, // <cjk>
+ 0x61FA, 0x9CF0, // <cjk>
+ 0x61FC, 0x9CF4, // <cjk>
+ 0x61FD, 0x9CF3, // <cjk>
+ 0x61FE, 0x9CF5, // <cjk>
+ 0x61FF, 0x9CF2, // <cjk>
+ 0x6200, 0x9CF6, // <cjk>
+ 0x6208, 0x9CF7, // <cjk>
+ 0x6209, 0x9CF8, // <cjk>
+ 0x620A, 0x95E8, // <cjk>
+ 0x620C, 0x9CFA, // <cjk>
+ 0x620D, 0x9CF9, // <cjk>
+ 0x620E, 0x8F5E, // <cjk>
+ 0x6210, 0x90AC, // <cjk>
+ 0x6211, 0x89E4, // <cjk>
+ 0x6212, 0x89FA, // <cjk>
+ 0x6214, 0x9CFB, // <cjk>
+ 0x6216, 0x88BD, // <cjk>
+ 0x621A, 0x90CA, // <cjk>
+ 0x621B, 0x9CFC, // <cjk>
+ 0x621D, 0xE6C1, // <cjk>
+ 0x621E, 0x9D40, // <cjk>
+ 0x621F, 0x8C81, // <cjk>
+ 0x6221, 0x9D41, // <cjk>
+ 0x6226, 0x90ED, // <cjk>
+ 0x622A, 0x9D42, // <cjk>
+ 0x622E, 0x9D43, // <cjk>
+ 0x622F, 0x8B59, // <cjk>
+ 0x6230, 0x9D44, // <cjk>
+ 0x6232, 0x9D45, // <cjk>
+ 0x6233, 0x9D46, // <cjk>
+ 0x6234, 0x91D5, // <cjk>
+ 0x6238, 0x8CCB, // <cjk>
+ 0x623B, 0x96DF, // <cjk>
+ 0x6240, 0x8F8A, // <cjk>
+ 0x6241, 0x9D47, // <cjk>
+ 0x6247, 0x90EE, // <cjk>
+ 0x6248, 0xE7BB, // <cjk>
+ 0x6249, 0x94E0, // <cjk>
+ 0x624B, 0x8EE8, // <cjk>
+ 0x624D, 0x8DCB, // <cjk>
+ 0x624E, 0x9D48, // <cjk>
+ 0x6253, 0x91C5, // <cjk>
+ 0x6255, 0x95A5, // <cjk>
+ 0x6258, 0x91EF, // <cjk>
+ 0x625B, 0x9D4B, // <cjk>
+ 0x625E, 0x9D49, // <cjk>
+ 0x6260, 0x9D4C, // <cjk>
+ 0x6263, 0x9D4A, // <cjk>
+ 0x6268, 0x9D4D, // <cjk>
+ 0x626E, 0x95AF, // <cjk>
+ 0x6271, 0x88B5, // <cjk>
+ 0x6276, 0x957D, // <cjk>
+ 0x6279, 0x94E1, // <cjk>
+ 0x627C, 0x9D4E, // <cjk>
+ 0x627E, 0x9D51, // <cjk>
+ 0x627F, 0x8FB3, // <cjk>
+ 0x6280, 0x8B5A, // <cjk>
+ 0x6282, 0x9D4F, // <cjk>
+ 0x6283, 0x9D56, // <cjk>
+ 0x6284, 0x8FB4, // <cjk>
+ 0x6289, 0x9D50, // <cjk>
+ 0x628A, 0x9463, // <cjk>
+ 0x6291, 0x977D, // <cjk>
+ 0x6292, 0x9D52, // <cjk>
+ 0x6293, 0x9D53, // <cjk>
+ 0x6294, 0x9D57, // <cjk>
+ 0x6295, 0x938A, // <cjk>
+ 0x6296, 0x9D54, // <cjk>
+ 0x6297, 0x8D52, // <cjk>
+ 0x6298, 0x90DC, // <cjk>
+ 0x629B, 0x9D65, // <cjk>
+ 0x629C, 0x94B2, // <cjk>
+ 0x629E, 0x91F0, // <cjk>
+ 0x62AB, 0x94E2, // <cjk>
+ 0x62AC, 0x9DAB, // <cjk>
+ 0x62B1, 0x95F8, // <cjk>
+ 0x62B5, 0x92EF, // <cjk>
+ 0x62B9, 0x9695, // <cjk>
+ 0x62BB, 0x9D5A, // <cjk>
+ 0x62BC, 0x899F, // <cjk>
+ 0x62BD, 0x928A, // <cjk>
+ 0x62C2, 0x9D63, // <cjk>
+ 0x62C5, 0x9253, // <cjk>
+ 0x62C6, 0x9D5D, // <cjk>
+ 0x62C7, 0x9D64, // <cjk>
+ 0x62C8, 0x9D5F, // <cjk>
+ 0x62C9, 0x9D66, // <cjk>
+ 0x62CA, 0x9D62, // <cjk>
+ 0x62CC, 0x9D61, // <cjk>
+ 0x62CD, 0x948F, // <cjk>
+ 0x62D0, 0x89FB, // <cjk>
+ 0x62D1, 0x9D59, // <cjk>
+ 0x62D2, 0x8B91, // <cjk>
+ 0x62D3, 0x91F1, // <cjk>
+ 0x62D4, 0x9D55, // <cjk>
+ 0x62D7, 0x9D58, // <cjk>
+ 0x62D8, 0x8D53, // <cjk>
+ 0x62D9, 0x90D9, // <cjk>
+ 0x62DB, 0x8FB5, // <cjk>
+ 0x62DC, 0x9D60, // <cjk>
+ 0x62DD, 0x9471, // <cjk>
+ 0x62E0, 0x8B92, // <cjk>
+ 0x62E1, 0x8A67, // <cjk>
+ 0x62EC, 0x8A87, // <cjk>
+ 0x62ED, 0x9040, // <cjk>
+ 0x62EE, 0x9D68, // <cjk>
+ 0x62EF, 0x9D6D, // <cjk>
+ 0x62F1, 0x9D69, // <cjk>
+ 0x62F3, 0x8C9D, // <cjk>
+ 0x62F5, 0x9D6E, // <cjk>
+ 0x62F6, 0x8E41, // <cjk>
+ 0x62F7, 0x8D89, // <cjk>
+ 0x62FE, 0x8F45, // <cjk>
+ 0x62FF, 0x9D5C, // <cjk>
+ 0x6301, 0x8E9D, // <cjk>
+ 0x6302, 0x9D6B, // <cjk>
+ 0x6307, 0x8E77, // <cjk>
+ 0x6308, 0x9D6C, // <cjk>
+ 0x6309, 0x88C2, // <cjk>
+ 0x630C, 0x9D67, // <cjk>
+ 0x6311, 0x92A7, // <cjk>
+ 0x6319, 0x8B93, // <cjk>
+ 0x631F, 0x8BB2, // <cjk>
+ 0x6327, 0x9D6A, // <cjk>
+ 0x6328, 0x88A5, // <cjk>
+ 0x632B, 0x8DC1, // <cjk>
+ 0x632F, 0x9055, // <cjk>
+ 0x633A, 0x92F0, // <cjk>
+ 0x633D, 0x94D2, // <cjk>
+ 0x633E, 0x9D70, // <cjk>
+ 0x633F, 0x917D, // <cjk>
+ 0x6349, 0x91A8, // <cjk>
+ 0x634C, 0x8E4A, // <cjk>
+ 0x634D, 0x9D71, // <cjk>
+ 0x634F, 0x9D73, // <cjk>
+ 0x6350, 0x9D6F, // <cjk>
+ 0x6355, 0x95DF, // <cjk>
+ 0x6357, 0x92BB, // <cjk>
+ 0x635C, 0x917B, // <cjk>
+ 0x6367, 0x95F9, // <cjk>
+ 0x6368, 0x8ECC, // <cjk>
+ 0x6369, 0x9D80, // <cjk>
+ 0x636B, 0x9D7E, // <cjk>
+ 0x636E, 0x9098, // <cjk>
+ 0x6372, 0x8C9E, // <cjk>
+ 0x6376, 0x9D78, // <cjk>
+ 0x6377, 0x8FB7, // <cjk>
+ 0x637A, 0x93E6, // <cjk>
+ 0x637B, 0x9450, // <cjk>
+ 0x6380, 0x9D76, // <cjk>
+ 0x6383, 0x917C, // <cjk>
+ 0x6388, 0x8EF6, // <cjk>
+ 0x6389, 0x9D7B, // <cjk>
+ 0x638C, 0x8FB6, // <cjk>
+ 0x638E, 0x9D75, // <cjk>
+ 0x638F, 0x9D7A, // <cjk>
+ 0x6392, 0x9472, // <cjk>
+ 0x6396, 0x9D74, // <cjk>
+ 0x6398, 0x8C40, // <cjk>
+ 0x639B, 0x8A7C, // <cjk>
+ 0x639F, 0x9D7C, // <cjk>
+ 0x63A0, 0x97A9, // <cjk>
+ 0x63A1, 0x8DCC, // <cjk>
+ 0x63A2, 0x9254, // <cjk>
+ 0x63A3, 0x9D79, // <cjk>
+ 0x63A5, 0x90DA, // <cjk>
+ 0x63A7, 0x8D54, // <cjk>
+ 0x63A8, 0x9084, // <cjk>
+ 0x63A9, 0x8986, // <cjk>
+ 0x63AB, 0x9D77, // <cjk>
+ 0x63AC, 0x8B64, // <cjk>
+ 0x63B2, 0x8C66, // <cjk>
+ 0x63B4, 0x92CD, // <cjk>
+ 0x63B5, 0x9D7D, // <cjk>
+ 0x63BB, 0x917E, // <cjk>
+ 0x63BE, 0x9D81, // <cjk>
+ 0x63C0, 0x9D83, // <cjk>
+ 0x63C3, 0x91B5, // <cjk>
+ 0x63C4, 0x9D89, // <cjk>
+ 0x63C6, 0x9D84, // <cjk>
+ 0x63C9, 0x9D86, // <cjk>
+ 0x63CF, 0x9560, // <cjk>
+ 0x63D0, 0x92F1, // <cjk>
+ 0x63D2, 0x9D87, // <cjk>
+ 0x63D6, 0x974B, // <cjk>
+ 0x63DA, 0x9767, // <cjk>
+ 0x63DB, 0x8AB7, // <cjk>
+ 0x63E1, 0x88AC, // <cjk>
+ 0x63E3, 0x9D85, // <cjk>
+ 0x63E9, 0x9D82, // <cjk>
+ 0x63EE, 0x8AF6, // <cjk>
+ 0x63F4, 0x8987, // <cjk>
+ 0x63F6, 0x9D88, // <cjk>
+ 0x63FA, 0x9768, // <cjk>
+ 0x6406, 0x9D8C, // <cjk>
+ 0x640D, 0x91B9, // <cjk>
+ 0x640F, 0x9D93, // <cjk>
+ 0x6413, 0x9D8D, // <cjk>
+ 0x6416, 0x9D8A, // <cjk>
+ 0x6417, 0x9D91, // <cjk>
+ 0x641C, 0x9D72, // <cjk>
+ 0x6426, 0x9D8E, // <cjk>
+ 0x6428, 0x9D92, // <cjk>
+ 0x642C, 0x94C0, // <cjk>
+ 0x642D, 0x938B, // <cjk>
+ 0x6434, 0x9D8B, // <cjk>
+ 0x6436, 0x9D8F, // <cjk>
+ 0x643A, 0x8C67, // <cjk>
+ 0x643E, 0x8DEF, // <cjk>
+ 0x6442, 0x90DB, // <cjk>
+ 0x644E, 0x9D97, // <cjk>
+ 0x6458, 0x9345, // <cjk>
+ 0x6467, 0x9D94, // <cjk>
+ 0x6469, 0x9680, // <cjk>
+ 0x646F, 0x9D95, // <cjk>
+ 0x6476, 0x9D96, // <cjk>
+ 0x6478, 0x96CC, // <cjk>
+ 0x647A, 0x90A0, // <cjk>
+ 0x6483, 0x8C82, // <cjk>
+ 0x6488, 0x9D9D, // <cjk>
+ 0x6492, 0x8E54, // <cjk>
+ 0x6493, 0x9D9A, // <cjk>
+ 0x6495, 0x9D99, // <cjk>
+ 0x649A, 0x9451, // <cjk>
+ 0x649E, 0x93B3, // <cjk>
+ 0x64A4, 0x9350, // <cjk>
+ 0x64A5, 0x9D9B, // <cjk>
+ 0x64A9, 0x9D9C, // <cjk>
+ 0x64AB, 0x958F, // <cjk>
+ 0x64AD, 0x9464, // <cjk>
+ 0x64AE, 0x8E42, // <cjk>
+ 0x64B0, 0x90EF, // <cjk>
+ 0x64B2, 0x966F, // <cjk>
+ 0x64B9, 0x8A68, // <cjk>
+ 0x64BB, 0x9DA3, // <cjk>
+ 0x64BC, 0x9D9E, // <cjk>
+ 0x64C1, 0x9769, // <cjk>
+ 0x64C2, 0x9DA5, // <cjk>
+ 0x64C5, 0x9DA1, // <cjk>
+ 0x64C7, 0x9DA2, // <cjk>
+ 0x64CD, 0x9180, // <cjk>
+ 0x64D2, 0x9DA0, // <cjk>
+ 0x64D4, 0x9D5E, // <cjk>
+ 0x64D8, 0x9DA4, // <cjk>
+ 0x64DA, 0x9D9F, // <cjk>
+ 0x64E0, 0x9DA9, // <cjk>
+ 0x64E1, 0x9DAA, // <cjk>
+ 0x64E2, 0x9346, // <cjk>
+ 0x64E3, 0x9DAC, // <cjk>
+ 0x64E6, 0x8E43, // <cjk>
+ 0x64E7, 0x9DA7, // <cjk>
+ 0x64EF, 0x9DAD, // <cjk>
+ 0x64F1, 0x9DA6, // <cjk>
+ 0x64F2, 0x9DB1, // <cjk>
+ 0x64F4, 0x9DB0, // <cjk>
+ 0x64F6, 0x9DAF, // <cjk>
+ 0x64FA, 0x9DB2, // <cjk>
+ 0x64FD, 0x9DB4, // <cjk>
+ 0x64FE, 0x8FEF, // <cjk>
+ 0x6500, 0x9DB3, // <cjk>
+ 0x6505, 0x9DB7, // <cjk>
+ 0x6518, 0x9DB5, // <cjk>
+ 0x651C, 0x9DB6, // <cjk>
+ 0x651D, 0x9D90, // <cjk>
+ 0x6523, 0x9DB9, // <cjk>
+ 0x6524, 0x9DB8, // <cjk>
+ 0x652A, 0x9D98, // <cjk>
+ 0x652B, 0x9DBA, // <cjk>
+ 0x652C, 0x9DAE, // <cjk>
+ 0x652F, 0x8E78, // <cjk>
+ 0x6534, 0x9DBB, // <cjk>
+ 0x6535, 0x9DBC, // <cjk>
+ 0x6536, 0x9DBE, // <cjk>
+ 0x6537, 0x9DBD, // <cjk>
+ 0x6538, 0x9DBF, // <cjk>
+ 0x6539, 0x89FC, // <cjk>
+ 0x653B, 0x8D55, // <cjk>
+ 0x653E, 0x95FA, // <cjk>
+ 0x653F, 0x90AD, // <cjk>
+ 0x6545, 0x8CCC, // <cjk>
+ 0x6548, 0x9DC1, // <cjk>
+ 0x654D, 0x9DC4, // <cjk>
+ 0x654F, 0x9571, // <cjk>
+ 0x6551, 0x8B7E, // <cjk>
+ 0x6555, 0x9DC3, // <cjk>
+ 0x6556, 0x9DC2, // <cjk>
+ 0x6557, 0x9473, // <cjk>
+ 0x6558, 0x9DC5, // <cjk>
+ 0x6559, 0x8BB3, // <cjk>
+ 0x655D, 0x9DC7, // <cjk>
+ 0x655E, 0x9DC6, // <cjk>
+ 0x6562, 0x8AB8, // <cjk>
+ 0x6563, 0x8E55, // <cjk>
+ 0x6566, 0x93D6, // <cjk>
+ 0x656C, 0x8C68, // <cjk>
+ 0x6570, 0x9094, // <cjk>
+ 0x6572, 0x9DC8, // <cjk>
+ 0x6574, 0x90AE, // <cjk>
+ 0x6575, 0x9347, // <cjk>
+ 0x6577, 0x957E, // <cjk>
+ 0x6578, 0x9DC9, // <cjk>
+ 0x6582, 0x9DCA, // <cjk>
+ 0x6583, 0x9DCB, // <cjk>
+ 0x6587, 0x95B6, // <cjk>
+ 0x6588, 0x9B7C, // <cjk>
+ 0x6589, 0x90C4, // <cjk>
+ 0x658C, 0x956B, // <cjk>
+ 0x658E, 0x8DD6, // <cjk>
+ 0x6590, 0x94E3, // <cjk>
+ 0x6591, 0x94C1, // <cjk>
+ 0x6597, 0x936C, // <cjk>
+ 0x6599, 0x97BF, // <cjk>
+ 0x659B, 0x9DCD, // <cjk>
+ 0x659C, 0x8ECE, // <cjk>
+ 0x659F, 0x9DCE, // <cjk>
+ 0x65A1, 0x88B4, // <cjk>
+ 0x65A4, 0x8BD2, // <cjk>
+ 0x65A5, 0x90CB, // <cjk>
+ 0x65A7, 0x9580, // <cjk>
+ 0x65AB, 0x9DCF, // <cjk>
+ 0x65AC, 0x8E61, // <cjk>
+ 0x65AD, 0x9266, // <cjk>
+ 0x65AF, 0x8E7A, // <cjk>
+ 0x65B0, 0x9056, // <cjk>
+ 0x65B7, 0x9DD0, // <cjk>
+ 0x65B9, 0x95FB, // <cjk>
+ 0x65BC, 0x8997, // <cjk>
+ 0x65BD, 0x8E7B, // <cjk>
+ 0x65C1, 0x9DD3, // <cjk>
+ 0x65C3, 0x9DD1, // <cjk>
+ 0x65C4, 0x9DD4, // <cjk>
+ 0x65C5, 0x97B7, // <cjk>
+ 0x65C6, 0x9DD2, // <cjk>
+ 0x65CB, 0x90F9, // <cjk>
+ 0x65CC, 0x9DD5, // <cjk>
+ 0x65CF, 0x91B0, // <cjk>
+ 0x65D2, 0x9DD6, // <cjk>
+ 0x65D7, 0x8AF8, // <cjk>
+ 0x65D9, 0x9DD8, // <cjk>
+ 0x65DB, 0x9DD7, // <cjk>
+ 0x65E0, 0x9DD9, // <cjk>
+ 0x65E1, 0x9DDA, // <cjk>
+ 0x65E2, 0x8AF9, // <cjk>
+ 0x65E5, 0x93FA, // <cjk>
+ 0x65E6, 0x9255, // <cjk>
+ 0x65E7, 0x8B8C, // <cjk>
+ 0x65E8, 0x8E7C, // <cjk>
+ 0x65E9, 0x9181, // <cjk>
+ 0x65EC, 0x8F7B, // <cjk>
+ 0x65ED, 0x88AE, // <cjk>
+ 0x65F1, 0x9DDB, // <cjk>
+ 0x65FA, 0x89A0, // <cjk>
+ 0x65FB, 0x9DDF, // <cjk>
+ 0x6602, 0x8D56, // <cjk>
+ 0x6603, 0x9DDE, // <cjk>
+ 0x6606, 0x8DA9, // <cjk>
+ 0x6607, 0x8FB8, // <cjk>
+ 0x660A, 0x9DDD, // <cjk>
+ 0x660C, 0x8FB9, // <cjk>
+ 0x660E, 0x96BE, // <cjk>
+ 0x660F, 0x8DA8, // <cjk>
+ 0x6613, 0x88D5, // <cjk>
+ 0x6614, 0x90CC, // <cjk>
+ 0x661C, 0x9DE4, // <cjk>
+ 0x661F, 0x90AF, // <cjk>
+ 0x6620, 0x8966, // <cjk>
+ 0x6625, 0x8F74, // <cjk>
+ 0x6627, 0x9686, // <cjk>
+ 0x6628, 0x8DF0, // <cjk>
+ 0x662D, 0x8FBA, // <cjk>
+ 0x662F, 0x90A5, // <cjk>
+ 0x6634, 0x9DE3, // <cjk>
+ 0x6635, 0x9DE1, // <cjk>
+ 0x6636, 0x9DE2, // <cjk>
+ 0x663C, 0x928B, // <cjk>
+ 0x663F, 0x9E45, // <cjk>
+ 0x6641, 0x9DE8, // <cjk>
+ 0x6642, 0x8E9E, // <cjk>
+ 0x6643, 0x8D57, // <cjk>
+ 0x6644, 0x9DE6, // <cjk>
+ 0x6649, 0x9DE7, // <cjk>
+ 0x664B, 0x9057, // <cjk>
+ 0x664F, 0x9DE5, // <cjk>
+ 0x6652, 0x8E4E, // <cjk>
+ 0x665D, 0x9DEA, // <cjk>
+ 0x665E, 0x9DE9, // <cjk>
+ 0x665F, 0x9DEE, // <cjk>
+ 0x6662, 0x9DEF, // <cjk>
+ 0x6664, 0x9DEB, // <cjk>
+ 0x6666, 0x8A41, // <cjk>
+ 0x6667, 0x9DEC, // <cjk>
+ 0x6668, 0x9DED, // <cjk>
+ 0x6669, 0x94D3, // <cjk>
+ 0x666E, 0x9581, // <cjk>
+ 0x666F, 0x8C69, // <cjk>
+ 0x6670, 0x9DF0, // <cjk>
+ 0x6674, 0x90B0, // <cjk>
+ 0x6676, 0x8FBB, // <cjk>
+ 0x667A, 0x9271, // <cjk>
+ 0x6681, 0x8BC5, // <cjk>
+ 0x6683, 0x9DF1, // <cjk>
+ 0x6684, 0x9DF5, // <cjk>
+ 0x6687, 0x89C9, // <cjk>
+ 0x6688, 0x9DF2, // <cjk>
+ 0x6689, 0x9DF4, // <cjk>
+ 0x668E, 0x9DF3, // <cjk>
+ 0x6691, 0x8F8B, // <cjk>
+ 0x6696, 0x9267, // <cjk>
+ 0x6697, 0x88C3, // <cjk>
+ 0x6698, 0x9DF6, // <cjk>
+ 0x669D, 0x9DF7, // <cjk>
+ 0x66A2, 0x92A8, // <cjk>
+ 0x66A6, 0x97EF, // <cjk>
+ 0x66AB, 0x8E62, // <cjk>
+ 0x66AE, 0x95E9, // <cjk>
+ 0x66B4, 0x965C, // <cjk>
+ 0x66B8, 0x9E41, // <cjk>
+ 0x66B9, 0x9DF9, // <cjk>
+ 0x66BC, 0x9DFC, // <cjk>
+ 0x66BE, 0x9DFB, // <cjk>
+ 0x66C1, 0x9DF8, // <cjk>
+ 0x66C4, 0x9E40, // <cjk>
+ 0x66C7, 0x93DC, // <cjk>
+ 0x66C9, 0x9DFA, // <cjk>
+ 0x66D6, 0x9E42, // <cjk>
+ 0x66D9, 0x8F8C, // <cjk>
+ 0x66DA, 0x9E43, // <cjk>
+ 0x66DC, 0x976A, // <cjk>
+ 0x66DD, 0x9498, // <cjk>
+ 0x66E0, 0x9E44, // <cjk>
+ 0x66E6, 0x9E46, // <cjk>
+ 0x66E9, 0x9E47, // <cjk>
+ 0x66F0, 0x9E48, // <cjk>
+ 0x66F2, 0x8BC8, // <cjk>
+ 0x66F3, 0x8967, // <cjk>
+ 0x66F4, 0x8D58, // <cjk>
+ 0x66F5, 0x9E49, // <cjk>
+ 0x66F7, 0x9E4A, // <cjk>
+ 0x66F8, 0x8F91, // <cjk>
+ 0x66F9, 0x9182, // <cjk>
+ 0x66FC, 0x99D6, // <cjk>
+ 0x66FD, 0x915D, // <cjk>
+ 0x66FE, 0x915C, // <cjk>
+ 0x66FF, 0x91D6, // <cjk>
+ 0x6700, 0x8DC5, // <cjk>
+ 0x6703, 0x98F0, // <cjk>
+ 0x6708, 0x8C8E, // <cjk>
+ 0x6709, 0x974C, // <cjk>
+ 0x670B, 0x95FC, // <cjk>
+ 0x670D, 0x959E, // <cjk>
+ 0x670F, 0x9E4B, // <cjk>
+ 0x6714, 0x8DF1, // <cjk>
+ 0x6715, 0x92BD, // <cjk>
+ 0x6716, 0x9E4C, // <cjk>
+ 0x6717, 0x984E, // <cjk>
+ 0x671B, 0x965D, // <cjk>
+ 0x671D, 0x92A9, // <cjk>
+ 0x671E, 0x9E4D, // <cjk>
+ 0x671F, 0x8AFA, // <cjk>
+ 0x6726, 0x9E4E, // <cjk>
+ 0x6727, 0x9E4F, // <cjk>
+ 0x6728, 0x96D8, // <cjk>
+ 0x672A, 0x96A2, // <cjk>
+ 0x672B, 0x9696, // <cjk>
+ 0x672C, 0x967B, // <cjk>
+ 0x672D, 0x8E44, // <cjk>
+ 0x672E, 0x9E51, // <cjk>
+ 0x6731, 0x8EE9, // <cjk>
+ 0x6734, 0x9670, // <cjk>
+ 0x6736, 0x9E53, // <cjk>
+ 0x6737, 0x9E56, // <cjk>
+ 0x6738, 0x9E55, // <cjk>
+ 0x673A, 0x8AF7, // <cjk>
+ 0x673D, 0x8B80, // <cjk>
+ 0x673F, 0x9E52, // <cjk>
+ 0x6741, 0x9E54, // <cjk>
+ 0x6746, 0x9E57, // <cjk>
+ 0x6749, 0x9099, // <cjk>
+ 0x674E, 0x979B, // <cjk>
+ 0x674F, 0x88C7, // <cjk>
+ 0x6750, 0x8DDE, // <cjk>
+ 0x6751, 0x91BA, // <cjk>
+ 0x6753, 0x8EDB, // <cjk>
+ 0x6756, 0x8FF1, // <cjk>
+ 0x6759, 0x9E5A, // <cjk>
+ 0x675C, 0x936D, // <cjk>
+ 0x675E, 0x9E58, // <cjk>
+ 0x675F, 0x91A9, // <cjk>
+ 0x6760, 0x9E59, // <cjk>
+ 0x6761, 0x8FF0, // <cjk>
+ 0x6762, 0x96DB, // <cjk>
+ 0x6764, 0x9E5C, // <cjk>
+ 0x6765, 0x9788, // <cjk>
+ 0x676A, 0x9E61, // <cjk>
+ 0x676D, 0x8D59, // <cjk>
+ 0x676F, 0x9474, // <cjk>
+ 0x6770, 0x9E5E, // <cjk>
+ 0x6771, 0x938C, // <cjk>
+ 0x6772, 0x9DDC, // <cjk>
+ 0x6773, 0x9DE0, // <cjk>
+ 0x6775, 0x8B6E, // <cjk>
+ 0x6777, 0x9466, // <cjk>
+ 0x677C, 0x9E60, // <cjk>
+ 0x677E, 0x8FBC, // <cjk>
+ 0x677F, 0x94C2, // <cjk>
+ 0x6785, 0x9E66, // <cjk>
+ 0x6787, 0x94F8, // <cjk>
+ 0x6789, 0x9E5D, // <cjk>
+ 0x678B, 0x9E63, // <cjk>
+ 0x678C, 0x9E62, // <cjk>
+ 0x6790, 0x90CD, // <cjk>
+ 0x6795, 0x968D, // <cjk>
+ 0x6797, 0x97D1, // <cjk>
+ 0x679A, 0x9687, // <cjk>
+ 0x679C, 0x89CA, // <cjk>
+ 0x679D, 0x8E7D, // <cjk>
+ 0x67A0, 0x9867, // <cjk>
+ 0x67A1, 0x9E65, // <cjk>
+ 0x67A2, 0x9095, // <cjk>
+ 0x67A6, 0x9E64, // <cjk>
+ 0x67A9, 0x9E5F, // <cjk>
+ 0x67AF, 0x8CCD, // <cjk>
+ 0x67B3, 0x9E6B, // <cjk>
+ 0x67B4, 0x9E69, // <cjk>
+ 0x67B6, 0x89CB, // <cjk>
+ 0x67B7, 0x9E67, // <cjk>
+ 0x67B8, 0x9E6D, // <cjk>
+ 0x67B9, 0x9E73, // <cjk>
+ 0x67C1, 0x91C6, // <cjk>
+ 0x67C4, 0x95BF, // <cjk>
+ 0x67C6, 0x9E75, // <cjk>
+ 0x67CA, 0x9541, // <cjk>
+ 0x67CE, 0x9E74, // <cjk>
+ 0x67CF, 0x9490, // <cjk>
+ 0x67D0, 0x965E, // <cjk>
+ 0x67D1, 0x8AB9, // <cjk>
+ 0x67D3, 0x90F5, // <cjk>
+ 0x67D4, 0x8F5F, // <cjk>
+ 0x67D8, 0x92D1, // <cjk>
+ 0x67DA, 0x974D, // <cjk>
+ 0x67DD, 0x9E70, // <cjk>
+ 0x67DE, 0x9E6F, // <cjk>
+ 0x67E2, 0x9E71, // <cjk>
+ 0x67E4, 0x9E6E, // <cjk>
+ 0x67E7, 0x9E76, // <cjk>
+ 0x67E9, 0x9E6C, // <cjk>
+ 0x67EC, 0x9E6A, // <cjk>
+ 0x67EE, 0x9E72, // <cjk>
+ 0x67EF, 0x9E68, // <cjk>
+ 0x67F1, 0x928C, // <cjk>
+ 0x67F3, 0x96F6, // <cjk>
+ 0x67F4, 0x8EC4, // <cjk>
+ 0x67F5, 0x8DF2, // <cjk>
+ 0x67FB, 0x8DB8, // <cjk>
+ 0x67FE, 0x968F, // <cjk>
+ 0x67FF, 0x8A60, // <cjk>
+ 0x6802, 0x92CC, // <cjk>
+ 0x6803, 0x93C8, // <cjk>
+ 0x6804, 0x8968, // <cjk>
+ 0x6813, 0x90F0, // <cjk>
+ 0x6816, 0x90B2, // <cjk>
+ 0x6817, 0x8C49, // <cjk>
+ 0x681E, 0x9E78, // <cjk>
+ 0x6821, 0x8D5A, // <cjk>
+ 0x6822, 0x8A9C, // <cjk>
+ 0x6829, 0x9E7A, // <cjk>
+ 0x682A, 0x8A94, // <cjk>
+ 0x682B, 0x9E81, // <cjk>
+ 0x6832, 0x9E7D, // <cjk>
+ 0x6834, 0x90F1, // <cjk>
+ 0x6838, 0x8A6A, // <cjk>
+ 0x6839, 0x8DAA, // <cjk>
+ 0x683C, 0x8A69, // <cjk>
+ 0x683D, 0x8DCD, // <cjk>
+ 0x6840, 0x9E7B, // <cjk>
+ 0x6841, 0x8C85, // <cjk>
+ 0x6842, 0x8C6A, // <cjk>
+ 0x6843, 0x938D, // <cjk>
+ 0x6846, 0x9E79, // <cjk>
+ 0x6848, 0x88C4, // <cjk>
+ 0x684D, 0x9E7C, // <cjk>
+ 0x684E, 0x9E7E, // <cjk>
+ 0x6850, 0x8BCB, // <cjk>
+ 0x6851, 0x8C4B, // <cjk>
+ 0x6853, 0x8ABA, // <cjk>
+ 0x6854, 0x8B6A, // <cjk>
+ 0x6859, 0x9E82, // <cjk>
+ 0x685C, 0x8DF7, // <cjk>
+ 0x685D, 0x9691, // <cjk>
+ 0x685F, 0x8E56, // <cjk>
+ 0x6863, 0x9E83, // <cjk>
+ 0x6867, 0x954F, // <cjk>
+ 0x6874, 0x9E8F, // <cjk>
+ 0x6876, 0x89B1, // <cjk>
+ 0x6877, 0x9E84, // <cjk>
+ 0x687E, 0x9E95, // <cjk>
+ 0x687F, 0x9E85, // <cjk>
+ 0x6881, 0x97C0, // <cjk>
+ 0x6883, 0x9E8C, // <cjk>
+ 0x6885, 0x947E, // <cjk>
+ 0x688D, 0x9E94, // <cjk>
+ 0x688F, 0x9E87, // <cjk>
+ 0x6893, 0x88B2, // <cjk>
+ 0x6894, 0x9E89, // <cjk>
+ 0x689B, 0x9E8B, // <cjk>
+ 0x689D, 0x9E8A, // <cjk>
+ 0x689F, 0x9E86, // <cjk>
+ 0x68A0, 0x9E91, // <cjk>
+ 0x68A2, 0x8FBD, // <cjk>
+ 0x68A6, 0x9AEB, // <cjk>
+ 0x68A7, 0x8CE6, // <cjk>
+ 0x68A8, 0x979C, // <cjk>
+ 0x68AD, 0x9E88, // <cjk>
+ 0x68AF, 0x92F2, // <cjk>
+ 0x68B0, 0x8A42, // <cjk>
+ 0x68B1, 0x8DAB, // <cjk>
+ 0x68B3, 0x9E80, // <cjk>
+ 0x68B5, 0x9E90, // <cjk>
+ 0x68B6, 0x8A81, // <cjk>
+ 0x68B9, 0x9E8E, // <cjk>
+ 0x68BA, 0x9E92, // <cjk>
+ 0x68BC, 0x938E, // <cjk>
+ 0x68C4, 0x8AFC, // <cjk>
+ 0x68C6, 0x9EB0, // <cjk>
+ 0x68C9, 0x96C7, // <cjk>
+ 0x68CA, 0x9E97, // <cjk>
+ 0x68CB, 0x8AFB, // <cjk>
+ 0x68CD, 0x9E9E, // <cjk>
+ 0x68D2, 0x965F, // <cjk>
+ 0x68D4, 0x9E9F, // <cjk>
+ 0x68D5, 0x9EA1, // <cjk>
+ 0x68D7, 0x9EA5, // <cjk>
+ 0x68D8, 0x9E99, // <cjk>
+ 0x68DA, 0x9249, // <cjk>
+ 0x68DF, 0x938F, // <cjk>
+ 0x68E0, 0x9EA9, // <cjk>
+ 0x68E1, 0x9E9C, // <cjk>
+ 0x68E3, 0x9EA6, // <cjk>
+ 0x68E7, 0x9EA0, // <cjk>
+ 0x68EE, 0x9058, // <cjk>
+ 0x68EF, 0x9EAA, // <cjk>
+ 0x68F2, 0x90B1, // <cjk>
+ 0x68F9, 0x9EA8, // <cjk>
+ 0x68FA, 0x8ABB, // <cjk>
+ 0x6900, 0x986F, // <cjk>
+ 0x6901, 0x9E96, // <cjk>
+ 0x6904, 0x9EA4, // <cjk>
+ 0x6905, 0x88D6, // <cjk>
+ 0x6908, 0x9E98, // <cjk>
+ 0x690B, 0x96B8, // <cjk>
+ 0x690C, 0x9E9D, // <cjk>
+ 0x690D, 0x9041, // <cjk>
+ 0x690E, 0x92C5, // <cjk>
+ 0x690F, 0x9E93, // <cjk>
+ 0x6912, 0x9EA3, // <cjk>
+ 0x6919, 0x909A, // <cjk>
+ 0x691A, 0x9EAD, // <cjk>
+ 0x691B, 0x8A91, // <cjk>
+ 0x691C, 0x8C9F, // <cjk>
+ 0x6921, 0x9EAF, // <cjk>
+ 0x6922, 0x9E9A, // <cjk>
+ 0x6923, 0x9EAE, // <cjk>
+ 0x6925, 0x9EA7, // <cjk>
+ 0x6926, 0x9E9B, // <cjk>
+ 0x6928, 0x9EAB, // <cjk>
+ 0x692A, 0x9EAC, // <cjk>
+ 0x6930, 0x9EBD, // <cjk>
+ 0x6934, 0x93CC, // <cjk>
+ 0x6936, 0x9EA2, // <cjk>
+ 0x6939, 0x9EB9, // <cjk>
+ 0x693D, 0x9EBB, // <cjk>
+ 0x693F, 0x92D6, // <cjk>
+ 0x694A, 0x976B, // <cjk>
+ 0x6953, 0x9596, // <cjk>
+ 0x6954, 0x9EB6, // <cjk>
+ 0x6955, 0x91C8, // <cjk>
+ 0x6959, 0x9EBC, // <cjk>
+ 0x695A, 0x915E, // <cjk>
+ 0x695C, 0x9EB3, // <cjk>
+ 0x695D, 0x9EC0, // <cjk>
+ 0x695E, 0x9EBF, // <cjk>
+ 0x6960, 0x93ED, // <cjk>
+ 0x6961, 0x9EBE, // <cjk>
+ 0x6962, 0x93E8, // <cjk>
+ 0x696A, 0x9EC2, // <cjk>
+ 0x696B, 0x9EB5, // <cjk>
+ 0x696D, 0x8BC6, // <cjk>
+ 0x696E, 0x9EB8, // <cjk>
+ 0x696F, 0x8F7C, // <cjk>
+ 0x6973, 0x9480, // <cjk>
+ 0x6974, 0x9EBA, // <cjk>
+ 0x6975, 0x8BC9, // <cjk>
+ 0x6977, 0x9EB2, // <cjk>
+ 0x6978, 0x9EB4, // <cjk>
+ 0x6979, 0x9EB1, // <cjk>
+ 0x697C, 0x984F, // <cjk>
+ 0x697D, 0x8A79, // <cjk>
+ 0x697E, 0x9EB7, // <cjk>
+ 0x6981, 0x9EC1, // <cjk>
+ 0x6982, 0x8A54, // <cjk>
+ 0x698A, 0x8DE5, // <cjk>
+ 0x698E, 0x897C, // <cjk>
+ 0x6991, 0x9ED2, // <cjk>
+ 0x6994, 0x9850, // <cjk>
+ 0x6995, 0x9ED5, // <cjk>
+ 0x699B, 0x9059, // <cjk>
+ 0x699C, 0x9ED4, // <cjk>
+ 0x69A0, 0x9ED3, // <cjk>
+ 0x69A7, 0x9ED0, // <cjk>
+ 0x69AE, 0x9EC4, // <cjk>
+ 0x69B1, 0x9EE1, // <cjk>
+ 0x69B2, 0x9EC3, // <cjk>
+ 0x69B4, 0x9ED6, // <cjk>
+ 0x69BB, 0x9ECE, // <cjk>
+ 0x69BE, 0x9EC9, // <cjk>
+ 0x69BF, 0x9EC6, // <cjk>
+ 0x69C1, 0x9EC7, // <cjk>
+ 0x69C3, 0x9ECF, // <cjk>
+ 0x69C7, 0xEAA0, // <cjk>
+ 0x69CA, 0x9ECC, // <cjk>
+ 0x69CB, 0x8D5C, // <cjk>
+ 0x69CC, 0x92C6, // <cjk>
+ 0x69CD, 0x9184, // <cjk>
+ 0x69CE, 0x9ECA, // <cjk>
+ 0x69D0, 0x9EC5, // <cjk>
+ 0x69D3, 0x9EC8, // <cjk>
+ 0x69D8, 0x976C, // <cjk>
+ 0x69D9, 0x968A, // <cjk>
+ 0x69DD, 0x9ECD, // <cjk>
+ 0x69DE, 0x9ED7, // <cjk>
+ 0x69E7, 0x9EDF, // <cjk>
+ 0x69E8, 0x9ED8, // <cjk>
+ 0x69EB, 0x9EE5, // <cjk>
+ 0x69ED, 0x9EE3, // <cjk>
+ 0x69F2, 0x9EDE, // <cjk>
+ 0x69F9, 0x9EDD, // <cjk>
+ 0x69FB, 0x92CE, // <cjk>
+ 0x69FD, 0x9185, // <cjk>
+ 0x69FF, 0x9EDB, // <cjk>
+ 0x6A02, 0x9ED9, // <cjk>
+ 0x6A05, 0x9EE0, // <cjk>
+ 0x6A0A, 0x9EE6, // <cjk>
+ 0x6A0B, 0x94F3, // <cjk>
+ 0x6A0C, 0x9EEC, // <cjk>
+ 0x6A12, 0x9EE7, // <cjk>
+ 0x6A13, 0x9EEA, // <cjk>
+ 0x6A14, 0x9EE4, // <cjk>
+ 0x6A17, 0x9294, // <cjk>
+ 0x6A19, 0x9557, // <cjk>
+ 0x6A1B, 0x9EDA, // <cjk>
+ 0x6A1E, 0x9EE2, // <cjk>
+ 0x6A1F, 0x8FBE, // <cjk>
+ 0x6A21, 0x96CD, // <cjk>
+ 0x6A22, 0x9EF6, // <cjk>
+ 0x6A23, 0x9EE9, // <cjk>
+ 0x6A29, 0x8CA0, // <cjk>
+ 0x6A2A, 0x89A1, // <cjk>
+ 0x6A2B, 0x8A7E, // <cjk>
+ 0x6A2E, 0x9ED1, // <cjk>
+ 0x6A35, 0x8FBF, // <cjk>
+ 0x6A36, 0x9EEE, // <cjk>
+ 0x6A38, 0x9EF5, // <cjk>
+ 0x6A39, 0x8EF7, // <cjk>
+ 0x6A3A, 0x8A92, // <cjk>
+ 0x6A3D, 0x924D, // <cjk>
+ 0x6A44, 0x9EEB, // <cjk>
+ 0x6A47, 0x9EF0, // <cjk>
+ 0x6A48, 0x9EF4, // <cjk>
+ 0x6A4B, 0x8BB4, // <cjk>
+ 0x6A58, 0x8B6B, // <cjk>
+ 0x6A59, 0x9EF2, // <cjk>
+ 0x6A5F, 0x8B40, // <cjk>
+ 0x6A61, 0x93C9, // <cjk>
+ 0x6A62, 0x9EF1, // <cjk>
+ 0x6A66, 0x9EF3, // <cjk>
+ 0x6A72, 0x9EED, // <cjk>
+ 0x6A78, 0x9EEF, // <cjk>
+ 0x6A7F, 0x8A80, // <cjk>
+ 0x6A80, 0x9268, // <cjk>
+ 0x6A84, 0x9EFA, // <cjk>
+ 0x6A8D, 0x9EF8, // <cjk>
+ 0x6A8E, 0x8CE7, // <cjk>
+ 0x6A90, 0x9EF7, // <cjk>
+ 0x6A97, 0x9F40, // <cjk>
+ 0x6A9C, 0x9E77, // <cjk>
+ 0x6AA0, 0x9EF9, // <cjk>
+ 0x6AA2, 0x9EFB, // <cjk>
+ 0x6AA3, 0x9EFC, // <cjk>
+ 0x6AAA, 0x9F4B, // <cjk>
+ 0x6AAC, 0x9F47, // <cjk>
+ 0x6AAE, 0x9E8D, // <cjk>
+ 0x6AB3, 0x9F46, // <cjk>
+ 0x6AB8, 0x9F45, // <cjk>
+ 0x6ABB, 0x9F42, // <cjk>
+ 0x6AC1, 0x9EE8, // <cjk>
+ 0x6AC2, 0x9F44, // <cjk>
+ 0x6AC3, 0x9F43, // <cjk>
+ 0x6AD1, 0x9F49, // <cjk>
+ 0x6AD3, 0x9845, // <cjk>
+ 0x6ADA, 0x9F4C, // <cjk>
+ 0x6ADB, 0x8BF9, // <cjk>
+ 0x6ADE, 0x9F48, // <cjk>
+ 0x6ADF, 0x9F4A, // <cjk>
+ 0x6AE8, 0x94A5, // <cjk>
+ 0x6AEA, 0x9F4D, // <cjk>
+ 0x6AFA, 0x9F51, // <cjk>
+ 0x6AFB, 0x9F4E, // <cjk>
+ 0x6B04, 0x9793, // <cjk>
+ 0x6B05, 0x9F4F, // <cjk>
+ 0x6B0A, 0x9EDC, // <cjk>
+ 0x6B12, 0x9F52, // <cjk>
+ 0x6B16, 0x9F53, // <cjk>
+ 0x6B1D, 0x8954, // <cjk>
+ 0x6B1F, 0x9F55, // <cjk>
+ 0x6B20, 0x8C87, // <cjk>
+ 0x6B21, 0x8E9F, // <cjk>
+ 0x6B23, 0x8BD3, // <cjk>
+ 0x6B27, 0x89A2, // <cjk>
+ 0x6B32, 0x977E, // <cjk>
+ 0x6B37, 0x9F57, // <cjk>
+ 0x6B38, 0x9F56, // <cjk>
+ 0x6B39, 0x9F59, // <cjk>
+ 0x6B3A, 0x8B5C, // <cjk>
+ 0x6B3D, 0x8BD4, // <cjk>
+ 0x6B3E, 0x8ABC, // <cjk>
+ 0x6B43, 0x9F5C, // <cjk>
+ 0x6B49, 0x9F5D, // <cjk>
+ 0x6B4C, 0x89CC, // <cjk>
+ 0x6B4E, 0x9256, // <cjk>
+ 0x6B50, 0x9F5E, // <cjk>
+ 0x6B53, 0x8ABD, // <cjk>
+ 0x6B54, 0x9F60, // <cjk>
+ 0x6B59, 0x9F5F, // <cjk>
+ 0x6B5B, 0x9F61, // <cjk>
+ 0x6B5F, 0x9F62, // <cjk>
+ 0x6B61, 0x9F63, // <cjk>
+ 0x6B62, 0x8E7E, // <cjk>
+ 0x6B63, 0x90B3, // <cjk>
+ 0x6B64, 0x8D9F, // <cjk>
+ 0x6B66, 0x9590, // <cjk>
+ 0x6B69, 0x95E0, // <cjk>
+ 0x6B6A, 0x9863, // <cjk>
+ 0x6B6F, 0x8E95, // <cjk>
+ 0x6B73, 0x8DCE, // <cjk>
+ 0x6B74, 0x97F0, // <cjk>
+ 0x6B78, 0x9F64, // <cjk>
+ 0x6B79, 0x9F65, // <cjk>
+ 0x6B7B, 0x8E80, // <cjk>
+ 0x6B7F, 0x9F66, // <cjk>
+ 0x6B80, 0x9F67, // <cjk>
+ 0x6B83, 0x9F69, // <cjk>
+ 0x6B84, 0x9F68, // <cjk>
+ 0x6B86, 0x9677, // <cjk>
+ 0x6B89, 0x8F7D, // <cjk>
+ 0x6B8A, 0x8EEA, // <cjk>
+ 0x6B8B, 0x8E63, // <cjk>
+ 0x6B8D, 0x9F6A, // <cjk>
+ 0x6B95, 0x9F6C, // <cjk>
+ 0x6B96, 0x9042, // <cjk>
+ 0x6B98, 0x9F6B, // <cjk>
+ 0x6B9E, 0x9F6D, // <cjk>
+ 0x6BA4, 0x9F6E, // <cjk>
+ 0x6BAA, 0x9F6F, // <cjk>
+ 0x6BAB, 0x9F70, // <cjk>
+ 0x6BAF, 0x9F71, // <cjk>
+ 0x6BB1, 0x9F73, // <cjk>
+ 0x6BB2, 0x9F72, // <cjk>
+ 0x6BB3, 0x9F74, // <cjk>
+ 0x6BB4, 0x89A3, // <cjk>
+ 0x6BB5, 0x9269, // <cjk>
+ 0x6BB7, 0x9F75, // <cjk>
+ 0x6BBA, 0x8E45, // <cjk>
+ 0x6BBB, 0x8A6B, // <cjk>
+ 0x6BBC, 0x9F76, // <cjk>
+ 0x6BBF, 0x9361, // <cjk>
+ 0x6BC0, 0x9ACA, // <cjk>
+ 0x6BC5, 0x8B42, // <cjk>
+ 0x6BC6, 0x9F77, // <cjk>
+ 0x6BCB, 0x9F78, // <cjk>
+ 0x6BCD, 0x95EA, // <cjk>
+ 0x6BCE, 0x9688, // <cjk>
+ 0x6BD2, 0x93C5, // <cjk>
+ 0x6BD3, 0x9F79, // <cjk>
+ 0x6BD4, 0x94E4, // <cjk>
+ 0x6BD8, 0x94F9, // <cjk>
+ 0x6BDB, 0x96D1, // <cjk>
+ 0x6BDF, 0x9F7A, // <cjk>
+ 0x6BEB, 0x9F7C, // <cjk>
+ 0x6BEC, 0x9F7B, // <cjk>
+ 0x6BEF, 0x9F7E, // <cjk>
+ 0x6BF3, 0x9F7D, // <cjk>
+ 0x6C08, 0x9F81, // <cjk>
+ 0x6C0F, 0x8E81, // <cjk>
+ 0x6C11, 0x96AF, // <cjk>
+ 0x6C13, 0x9F82, // <cjk>
+ 0x6C14, 0x9F83, // <cjk>
+ 0x6C17, 0x8B43, // <cjk>
+ 0x6C1B, 0x9F84, // <cjk>
+ 0x6C23, 0x9F86, // <cjk>
+ 0x6C24, 0x9F85, // <cjk>
+ 0x6C34, 0x9085, // <cjk>
+ 0x6C37, 0x9558, // <cjk>
+ 0x6C38, 0x8969, // <cjk>
+ 0x6C3E, 0x94C3, // <cjk>
+ 0x6C40, 0x92F3, // <cjk>
+ 0x6C41, 0x8F60, // <cjk>
+ 0x6C42, 0x8B81, // <cjk>
+ 0x6C4E, 0x94C4, // <cjk>
+ 0x6C50, 0x8EAC, // <cjk>
+ 0x6C55, 0x9F88, // <cjk>
+ 0x6C57, 0x8ABE, // <cjk>
+ 0x6C5A, 0x8998, // <cjk>
+ 0x6C5D, 0x93F0, // <cjk>
+ 0x6C5E, 0x9F87, // <cjk>
+ 0x6C5F, 0x8D5D, // <cjk>
+ 0x6C60, 0x9272, // <cjk>
+ 0x6C62, 0x9F89, // <cjk>
+ 0x6C68, 0x9F91, // <cjk>
+ 0x6C6A, 0x9F8A, // <cjk>
+ 0x6C70, 0x91BF, // <cjk>
+ 0x6C72, 0x8B82, // <cjk>
+ 0x6C73, 0x9F92, // <cjk>
+ 0x6C7A, 0x8C88, // <cjk>
+ 0x6C7D, 0x8B44, // <cjk>
+ 0x6C7E, 0x9F90, // <cjk>
+ 0x6C81, 0x9F8E, // <cjk>
+ 0x6C82, 0x9F8B, // <cjk>
+ 0x6C83, 0x9780, // <cjk>
+ 0x6C88, 0x92BE, // <cjk>
+ 0x6C8C, 0x93D7, // <cjk>
+ 0x6C8D, 0x9F8C, // <cjk>
+ 0x6C90, 0x9F94, // <cjk>
+ 0x6C92, 0x9F93, // <cjk>
+ 0x6C93, 0x8C42, // <cjk>
+ 0x6C96, 0x89AB, // <cjk>
+ 0x6C99, 0x8DB9, // <cjk>
+ 0x6C9A, 0x9F8D, // <cjk>
+ 0x6C9B, 0x9F8F, // <cjk>
+ 0x6CA1, 0x9676, // <cjk>
+ 0x6CA2, 0x91F2, // <cjk>
+ 0x6CAB, 0x9697, // <cjk>
+ 0x6CAE, 0x9F9C, // <cjk>
+ 0x6CB1, 0x9F9D, // <cjk>
+ 0x6CB3, 0x89CD, // <cjk>
+ 0x6CB8, 0x95A6, // <cjk>
+ 0x6CB9, 0x96FB, // <cjk>
+ 0x6CBA, 0x9F9F, // <cjk>
+ 0x6CBB, 0x8EA1, // <cjk>
+ 0x6CBC, 0x8FC0, // <cjk>
+ 0x6CBD, 0x9F98, // <cjk>
+ 0x6CBE, 0x9F9E, // <cjk>
+ 0x6CBF, 0x8988, // <cjk>
+ 0x6CC1, 0x8BB5, // <cjk>
+ 0x6CC4, 0x9F95, // <cjk>
+ 0x6CC5, 0x9F9A, // <cjk>
+ 0x6CC9, 0x90F2, // <cjk>
+ 0x6CCA, 0x9491, // <cjk>
+ 0x6CCC, 0x94E5, // <cjk>
+ 0x6CD3, 0x9F97, // <cjk>
+ 0x6CD5, 0x9640, // <cjk>
+ 0x6CD7, 0x9F99, // <cjk>
+ 0x6CD9, 0x9FA2, // <cjk>
+ 0x6CDB, 0x9FA0, // <cjk>
+ 0x6CDD, 0x9F9B, // <cjk>
+ 0x6CE1, 0x9641, // <cjk>
+ 0x6CE2, 0x9467, // <cjk>
+ 0x6CE3, 0x8B83, // <cjk>
+ 0x6CE5, 0x9344, // <cjk>
+ 0x6CE8, 0x928D, // <cjk>
+ 0x6CEA, 0x9FA3, // <cjk>
+ 0x6CEF, 0x9FA1, // <cjk>
+ 0x6CF0, 0x91D7, // <cjk>
+ 0x6CF1, 0x9F96, // <cjk>
+ 0x6CF3, 0x896A, // <cjk>
+ 0x6D0B, 0x976D, // <cjk>
+ 0x6D0C, 0x9FAE, // <cjk>
+ 0x6D12, 0x9FAD, // <cjk>
+ 0x6D17, 0x90F4, // <cjk>
+ 0x6D19, 0x9FAA, // <cjk>
+ 0x6D1B, 0x978C, // <cjk>
+ 0x6D1E, 0x93B4, // <cjk>
+ 0x6D1F, 0x9FA4, // <cjk>
+ 0x6D25, 0x92C3, // <cjk>
+ 0x6D29, 0x896B, // <cjk>
+ 0x6D2A, 0x8D5E, // <cjk>
+ 0x6D2B, 0x9FA7, // <cjk>
+ 0x6D32, 0x8F46, // <cjk>
+ 0x6D33, 0x9FAC, // <cjk>
+ 0x6D35, 0x9FAB, // <cjk>
+ 0x6D36, 0x9FA6, // <cjk>
+ 0x6D38, 0x9FA9, // <cjk>
+ 0x6D3B, 0x8A88, // <cjk>
+ 0x6D3D, 0x9FA8, // <cjk>
+ 0x6D3E, 0x9468, // <cjk>
+ 0x6D41, 0x97AC, // <cjk>
+ 0x6D44, 0x8FF2, // <cjk>
+ 0x6D45, 0x90F3, // <cjk>
+ 0x6D59, 0x9FB4, // <cjk>
+ 0x6D5A, 0x9FB2, // <cjk>
+ 0x6D5C, 0x956C, // <cjk>
+ 0x6D63, 0x9FAF, // <cjk>
+ 0x6D64, 0x9FB1, // <cjk>
+ 0x6D66, 0x8959, // <cjk>
+ 0x6D69, 0x8D5F, // <cjk>
+ 0x6D6A, 0x9851, // <cjk>
+ 0x6D6C, 0x8A5C, // <cjk>
+ 0x6D6E, 0x9582, // <cjk>
+ 0x6D74, 0x9781, // <cjk>
+ 0x6D77, 0x8A43, // <cjk>
+ 0x6D78, 0x905A, // <cjk>
+ 0x6D79, 0x9FB3, // <cjk>
+ 0x6D85, 0x9FB8, // <cjk>
+ 0x6D88, 0x8FC1, // <cjk>
+ 0x6D8C, 0x974F, // <cjk>
+ 0x6D8E, 0x9FB5, // <cjk>
+ 0x6D93, 0x9FB0, // <cjk>
+ 0x6D95, 0x9FB6, // <cjk>
+ 0x6D99, 0x97DC, // <cjk>
+ 0x6D9B, 0x9393, // <cjk>
+ 0x6D9C, 0x93C0, // <cjk>
+ 0x6DAF, 0x8A55, // <cjk>
+ 0x6DB2, 0x8974, // <cjk>
+ 0x6DB5, 0x9FBC, // <cjk>
+ 0x6DB8, 0x9FBF, // <cjk>
+ 0x6DBC, 0x97C1, // <cjk>
+ 0x6DC0, 0x9784, // <cjk>
+ 0x6DC5, 0x9FC6, // <cjk>
+ 0x6DC6, 0x9FC0, // <cjk>
+ 0x6DC7, 0x9FBD, // <cjk>
+ 0x6DCB, 0x97D2, // <cjk>
+ 0x6DCC, 0x9FC3, // <cjk>
+ 0x6DD1, 0x8F69, // <cjk>
+ 0x6DD2, 0x9FC5, // <cjk>
+ 0x6DD5, 0x9FCA, // <cjk>
+ 0x6DD8, 0x9391, // <cjk>
+ 0x6DD9, 0x9FC8, // <cjk>
+ 0x6DDE, 0x9FC2, // <cjk>
+ 0x6DE1, 0x9257, // <cjk>
+ 0x6DE4, 0x9FC9, // <cjk>
+ 0x6DE6, 0x9FBE, // <cjk>
+ 0x6DE8, 0x9FC4, // <cjk>
+ 0x6DEA, 0x9FCB, // <cjk>
+ 0x6DEB, 0x88FA, // <cjk>
+ 0x6DEC, 0x9FC1, // <cjk>
+ 0x6DEE, 0x9FCC, // <cjk>
+ 0x6DF3, 0x8F7E, // <cjk>
+ 0x6DF5, 0x95A3, // <cjk>
+ 0x6DF7, 0x8DAC, // <cjk>
+ 0x6DF9, 0x9FB9, // <cjk>
+ 0x6DFA, 0x9FC7, // <cjk>
+ 0x6DFB, 0x9359, // <cjk>
+ 0x6E05, 0x90B4, // <cjk>
+ 0x6E07, 0x8A89, // <cjk>
+ 0x6E08, 0x8DCF, // <cjk>
+ 0x6E09, 0x8FC2, // <cjk>
+ 0x6E0A, 0x9FBB, // <cjk>
+ 0x6E0B, 0x8F61, // <cjk>
+ 0x6E13, 0x8C6B, // <cjk>
+ 0x6E15, 0x9FBA, // <cjk>
+ 0x6E19, 0x9FD0, // <cjk>
+ 0x6E1A, 0x8F8D, // <cjk>
+ 0x6E1B, 0x8CB8, // <cjk>
+ 0x6E1D, 0x9FDF, // <cjk>
+ 0x6E1F, 0x9FD9, // <cjk>
+ 0x6E20, 0x8B94, // <cjk>
+ 0x6E21, 0x936E, // <cjk>
+ 0x6E23, 0x9FD4, // <cjk>
+ 0x6E24, 0x9FDD, // <cjk>
+ 0x6E25, 0x88AD, // <cjk>
+ 0x6E26, 0x8951, // <cjk>
+ 0x6E29, 0x89B7, // <cjk>
+ 0x6E2B, 0x9FD6, // <cjk>
+ 0x6E2C, 0x91AA, // <cjk>
+ 0x6E2D, 0x9FCD, // <cjk>
+ 0x6E2E, 0x9FCF, // <cjk>
+ 0x6E2F, 0x8D60, // <cjk>
+ 0x6E38, 0x9FE0, // <cjk>
+ 0x6E3A, 0x9FDB, // <cjk>
+ 0x6E3E, 0x9FD3, // <cjk>
+ 0x6E43, 0x9FDA, // <cjk>
+ 0x6E4A, 0x96A9, // <cjk>
+ 0x6E4D, 0x9FD8, // <cjk>
+ 0x6E4E, 0x9FDC, // <cjk>
+ 0x6E56, 0x8CCE, // <cjk>
+ 0x6E58, 0x8FC3, // <cjk>
+ 0x6E5B, 0x9258, // <cjk>
+ 0x6E5F, 0x9FD2, // <cjk>
+ 0x6E67, 0x974E, // <cjk>
+ 0x6E6B, 0x9FD5, // <cjk>
+ 0x6E6E, 0x9FCE, // <cjk>
+ 0x6E6F, 0x9392, // <cjk>
+ 0x6E72, 0x9FD1, // <cjk>
+ 0x6E76, 0x9FD7, // <cjk>
+ 0x6E7E, 0x9870, // <cjk>
+ 0x6E7F, 0x8EBC, // <cjk>
+ 0x6E80, 0x969E, // <cjk>
+ 0x6E82, 0x9FE1, // <cjk>
+ 0x6E8C, 0x94AC, // <cjk>
+ 0x6E8F, 0x9FED, // <cjk>
+ 0x6E90, 0x8CB9, // <cjk>
+ 0x6E96, 0x8F80, // <cjk>
+ 0x6E98, 0x9FE3, // <cjk>
+ 0x6E9C, 0x97AD, // <cjk>
+ 0x6E9D, 0x8D61, // <cjk>
+ 0x6E9F, 0x9FF0, // <cjk>
+ 0x6EA2, 0x88EC, // <cjk>
+ 0x6EA5, 0x9FEE, // <cjk>
+ 0x6EAA, 0x9FE2, // <cjk>
+ 0x6EAF, 0x9FE8, // <cjk>
+ 0x6EB2, 0x9FEA, // <cjk>
+ 0x6EB6, 0x976E, // <cjk>
+ 0x6EB7, 0x9FE5, // <cjk>
+ 0x6EBA, 0x934D, // <cjk>
+ 0x6EBD, 0x9FE7, // <cjk>
+ 0x6EC2, 0x9FEF, // <cjk>
+ 0x6EC4, 0x9FE9, // <cjk>
+ 0x6EC5, 0x96C5, // <cjk>
+ 0x6EC9, 0x9FE4, // <cjk>
+ 0x6ECB, 0x8EA0, // <cjk>
+ 0x6ECC, 0x9FFC, // <cjk>
+ 0x6ED1, 0x8A8A, // <cjk>
+ 0x6ED3, 0x9FE6, // <cjk>
+ 0x6ED4, 0x9FEB, // <cjk>
+ 0x6ED5, 0x9FEC, // <cjk>
+ 0x6EDD, 0x91EA, // <cjk>
+ 0x6EDE, 0x91D8, // <cjk>
+ 0x6EEC, 0x9FF4, // <cjk>
+ 0x6EEF, 0x9FFA, // <cjk>
+ 0x6EF2, 0x9FF8, // <cjk>
+ 0x6EF4, 0x9348, // <cjk>
+ 0x6EF7, 0xE042, // <cjk>
+ 0x6EF8, 0x9FF5, // <cjk>
+ 0x6EFE, 0x9FF6, // <cjk>
+ 0x6EFF, 0x9FDE, // <cjk>
+ 0x6F01, 0x8B99, // <cjk>
+ 0x6F02, 0x9559, // <cjk>
+ 0x6F06, 0x8EBD, // <cjk>
+ 0x6F09, 0x8D97, // <cjk>
+ 0x6F0F, 0x9852, // <cjk>
+ 0x6F11, 0x9FF2, // <cjk>
+ 0x6F13, 0xE041, // <cjk>
+ 0x6F14, 0x8989, // <cjk>
+ 0x6F15, 0x9186, // <cjk>
+ 0x6F20, 0x9499, // <cjk>
+ 0x6F22, 0x8ABF, // <cjk>
+ 0x6F23, 0x97F8, // <cjk>
+ 0x6F2B, 0x969F, // <cjk>
+ 0x6F2C, 0x92D0, // <cjk>
+ 0x6F31, 0x9FF9, // <cjk>
+ 0x6F32, 0x9FFB, // <cjk>
+ 0x6F38, 0x9151, // <cjk>
+ 0x6F3E, 0xE040, // <cjk>
+ 0x6F3F, 0x9FF7, // <cjk>
+ 0x6F41, 0x9FF1, // <cjk>
+ 0x6F45, 0x8AC1, // <cjk>
+ 0x6F54, 0x8C89, // <cjk>
+ 0x6F58, 0xE04E, // <cjk>
+ 0x6F5B, 0xE049, // <cjk>
+ 0x6F5C, 0x90F6, // <cjk>
+ 0x6F5F, 0x8A83, // <cjk>
+ 0x6F64, 0x8F81, // <cjk>
+ 0x6F66, 0xE052, // <cjk>
+ 0x6F6D, 0xE04B, // <cjk>
+ 0x6F6E, 0x92AA, // <cjk>
+ 0x6F6F, 0xE048, // <cjk>
+ 0x6F70, 0x92D7, // <cjk>
+ 0x6F74, 0xE06B, // <cjk>
+ 0x6F78, 0xE045, // <cjk>
+ 0x6F7A, 0xE044, // <cjk>
+ 0x6F7C, 0xE04D, // <cjk>
+ 0x6F80, 0xE047, // <cjk>
+ 0x6F81, 0xE046, // <cjk>
+ 0x6F82, 0xE04C, // <cjk>
+ 0x6F84, 0x909F, // <cjk>
+ 0x6F86, 0xE043, // <cjk>
+ 0x6F8E, 0xE04F, // <cjk>
+ 0x6F91, 0xE050, // <cjk>
+ 0x6F97, 0x8AC0, // <cjk>
+ 0x6FA1, 0xE055, // <cjk>
+ 0x6FA3, 0xE054, // <cjk>
+ 0x6FA4, 0xE056, // <cjk>
+ 0x6FAA, 0xE059, // <cjk>
+ 0x6FB1, 0x9362, // <cjk>
+ 0x6FB3, 0xE053, // <cjk>
+ 0x6FB9, 0xE057, // <cjk>
+ 0x6FC0, 0x8C83, // <cjk>
+ 0x6FC1, 0x91F7, // <cjk>
+ 0x6FC2, 0xE051, // <cjk>
+ 0x6FC3, 0x945A, // <cjk>
+ 0x6FC6, 0xE058, // <cjk>
+ 0x6FD4, 0xE05D, // <cjk>
+ 0x6FD8, 0xE05E, // <cjk>
+ 0x6FDB, 0xE061, // <cjk>
+ 0x6FDF, 0xE05A, // <cjk>
+ 0x6FE0, 0x8D8A, // <cjk>
+ 0x6FE1, 0x9447, // <cjk>
+ 0x6FE4, 0x9FB7, // <cjk>
+ 0x6FEB, 0x9794, // <cjk>
+ 0x6FEC, 0xE05C, // <cjk>
+ 0x6FEE, 0xE060, // <cjk>
+ 0x6FEF, 0x91F3, // <cjk>
+ 0x6FF1, 0xE05F, // <cjk>
+ 0x6FF3, 0xE04A, // <cjk>
+ 0x6FF6, 0xE889, // <cjk>
+ 0x6FFA, 0xE064, // <cjk>
+ 0x6FFE, 0xE068, // <cjk>
+ 0x7001, 0xE066, // <cjk>
+ 0x7009, 0xE062, // <cjk>
+ 0x700B, 0xE063, // <cjk>
+ 0x700F, 0xE067, // <cjk>
+ 0x7011, 0xE065, // <cjk>
+ 0x7015, 0x956D, // <cjk>
+ 0x7018, 0xE06D, // <cjk>
+ 0x701A, 0xE06A, // <cjk>
+ 0x701B, 0xE069, // <cjk>
+ 0x701D, 0xE06C, // <cjk>
+ 0x701E, 0x93D2, // <cjk>
+ 0x701F, 0xE06E, // <cjk>
+ 0x7026, 0x9295, // <cjk>
+ 0x7027, 0x91EB, // <cjk>
+ 0x702C, 0x90A3, // <cjk>
+ 0x7030, 0xE06F, // <cjk>
+ 0x7032, 0xE071, // <cjk>
+ 0x703E, 0xE070, // <cjk>
+ 0x704C, 0x9FF3, // <cjk>
+ 0x7051, 0xE072, // <cjk>
+ 0x7058, 0x93E5, // <cjk>
+ 0x7063, 0xE073, // <cjk>
+ 0x706B, 0x89CE, // <cjk>
+ 0x706F, 0x9394, // <cjk>
+ 0x7070, 0x8A44, // <cjk>
+ 0x7078, 0x8B84, // <cjk>
+ 0x707C, 0x8EDC, // <cjk>
+ 0x707D, 0x8DD0, // <cjk>
+ 0x7089, 0x9846, // <cjk>
+ 0x708A, 0x9086, // <cjk>
+ 0x708E, 0x898A, // <cjk>
+ 0x7092, 0xE075, // <cjk>
+ 0x7099, 0xE074, // <cjk>
+ 0x70AC, 0xE078, // <cjk>
+ 0x70AD, 0x9259, // <cjk>
+ 0x70AE, 0xE07B, // <cjk>
+ 0x70AF, 0xE076, // <cjk>
+ 0x70B3, 0xE07A, // <cjk>
+ 0x70B8, 0xE079, // <cjk>
+ 0x70B9, 0x935F, // <cjk>
+ 0x70BA, 0x88D7, // <cjk>
+ 0x70C8, 0x97F3, // <cjk>
+ 0x70CB, 0xE07D, // <cjk>
+ 0x70CF, 0x8947, // <cjk>
+ 0x70D9, 0xE080, // <cjk>
+ 0x70DD, 0xE07E, // <cjk>
+ 0x70DF, 0xE07C, // <cjk>
+ 0x70F1, 0xE077, // <cjk>
+ 0x70F9, 0x9642, // <cjk>
+ 0x70FD, 0xE082, // <cjk>
+ 0x7109, 0xE081, // <cjk>
+ 0x7114, 0x898B, // <cjk>
+ 0x7119, 0xE084, // <cjk>
+ 0x711A, 0x95B0, // <cjk>
+ 0x711C, 0xE083, // <cjk>
+ 0x7121, 0x96B3, // <cjk>
+ 0x7126, 0x8FC5, // <cjk>
+ 0x7136, 0x9152, // <cjk>
+ 0x713C, 0x8FC4, // <cjk>
+ 0x7149, 0x97F9, // <cjk>
+ 0x714C, 0xE08A, // <cjk>
+ 0x714E, 0x90F7, // <cjk>
+ 0x7155, 0xE086, // <cjk>
+ 0x7156, 0xE08B, // <cjk>
+ 0x7159, 0x898C, // <cjk>
+ 0x7162, 0xE089, // <cjk>
+ 0x7164, 0x9481, // <cjk>
+ 0x7165, 0xE085, // <cjk>
+ 0x7166, 0xE088, // <cjk>
+ 0x7167, 0x8FC6, // <cjk>
+ 0x7169, 0x94CF, // <cjk>
+ 0x716C, 0xE08C, // <cjk>
+ 0x716E, 0x8ECF, // <cjk>
+ 0x717D, 0x90F8, // <cjk>
+ 0x7184, 0xE08F, // <cjk>
+ 0x7188, 0xE087, // <cjk>
+ 0x718A, 0x8C46, // <cjk>
+ 0x718F, 0xE08D, // <cjk>
+ 0x7194, 0x976F, // <cjk>
+ 0x7195, 0xE090, // <cjk>
+ 0x7199, 0xEAA4, // <cjk>
+ 0x719F, 0x8F6E, // <cjk>
+ 0x71A8, 0xE091, // <cjk>
+ 0x71AC, 0xE092, // <cjk>
+ 0x71B1, 0x944D, // <cjk>
+ 0x71B9, 0xE094, // <cjk>
+ 0x71BE, 0xE095, // <cjk>
+ 0x71C3, 0x9452, // <cjk>
+ 0x71C8, 0x9395, // <cjk>
+ 0x71C9, 0xE097, // <cjk>
+ 0x71CE, 0xE099, // <cjk>
+ 0x71D0, 0x97D3, // <cjk>
+ 0x71D2, 0xE096, // <cjk>
+ 0x71D4, 0xE098, // <cjk>
+ 0x71D5, 0x898D, // <cjk>
+ 0x71D7, 0xE093, // <cjk>
+ 0x71DF, 0x9A7A, // <cjk>
+ 0x71E0, 0xE09A, // <cjk>
+ 0x71E5, 0x9187, // <cjk>
+ 0x71E6, 0x8E57, // <cjk>
+ 0x71E7, 0xE09C, // <cjk>
+ 0x71EC, 0xE09B, // <cjk>
+ 0x71ED, 0x9043, // <cjk>
+ 0x71EE, 0x99D7, // <cjk>
+ 0x71F5, 0xE09D, // <cjk>
+ 0x71F9, 0xE09F, // <cjk>
+ 0x71FB, 0xE08E, // <cjk>
+ 0x71FC, 0xE09E, // <cjk>
+ 0x71FF, 0xE0A0, // <cjk>
+ 0x7206, 0x949A, // <cjk>
+ 0x720D, 0xE0A1, // <cjk>
+ 0x7210, 0xE0A2, // <cjk>
+ 0x721B, 0xE0A3, // <cjk>
+ 0x7228, 0xE0A4, // <cjk>
+ 0x722A, 0x92DC, // <cjk>
+ 0x722C, 0xE0A6, // <cjk>
+ 0x722D, 0xE0A5, // <cjk>
+ 0x7230, 0xE0A7, // <cjk>
+ 0x7232, 0xE0A8, // <cjk>
+ 0x7235, 0x8EDD, // <cjk>
+ 0x7236, 0x9583, // <cjk>
+ 0x723A, 0x96EA, // <cjk>
+ 0x723B, 0xE0A9, // <cjk>
+ 0x723C, 0xE0AA, // <cjk>
+ 0x723D, 0x9175, // <cjk>
+ 0x723E, 0x8EA2, // <cjk>
+ 0x723F, 0xE0AB, // <cjk>
+ 0x7240, 0xE0AC, // <cjk>
+ 0x7246, 0xE0AD, // <cjk>
+ 0x7247, 0x95D0, // <cjk>
+ 0x7248, 0x94C5, // <cjk>
+ 0x724B, 0xE0AE, // <cjk>
+ 0x724C, 0x9476, // <cjk>
+ 0x7252, 0x92AB, // <cjk>
+ 0x7258, 0xE0AF, // <cjk>
+ 0x7259, 0x89E5, // <cjk>
+ 0x725B, 0x8B8D, // <cjk>
+ 0x725D, 0x96C4, // <cjk>
+ 0x725F, 0x96B4, // <cjk>
+ 0x7261, 0x89B2, // <cjk>
+ 0x7262, 0x9853, // <cjk>
+ 0x7267, 0x9671, // <cjk>
+ 0x7269, 0x95A8, // <cjk>
+ 0x7272, 0x90B5, // <cjk>
+ 0x7274, 0xE0B0, // <cjk>
+ 0x7279, 0x93C1, // <cjk>
+ 0x727D, 0x8CA1, // <cjk>
+ 0x727E, 0xE0B1, // <cjk>
+ 0x7280, 0x8DD2, // <cjk>
+ 0x7281, 0xE0B3, // <cjk>
+ 0x7282, 0xE0B2, // <cjk>
+ 0x7287, 0xE0B4, // <cjk>
+ 0x7292, 0xE0B5, // <cjk>
+ 0x7296, 0xE0B6, // <cjk>
+ 0x72A0, 0x8B5D, // <cjk>
+ 0x72A2, 0xE0B7, // <cjk>
+ 0x72A7, 0xE0B8, // <cjk>
+ 0x72AC, 0x8CA2, // <cjk>
+ 0x72AF, 0x94C6, // <cjk>
+ 0x72B2, 0xE0BA, // <cjk>
+ 0x72B6, 0x8FF3, // <cjk>
+ 0x72B9, 0xE0B9, // <cjk>
+ 0x72C2, 0x8BB6, // <cjk>
+ 0x72C3, 0xE0BB, // <cjk>
+ 0x72C4, 0xE0BD, // <cjk>
+ 0x72C6, 0xE0BC, // <cjk>
+ 0x72CE, 0xE0BE, // <cjk>
+ 0x72D0, 0x8CCF, // <cjk>
+ 0x72D2, 0xE0BF, // <cjk>
+ 0x72D7, 0x8BE7, // <cjk>
+ 0x72D9, 0x915F, // <cjk>
+ 0x72DB, 0x8D9D, // <cjk>
+ 0x72E0, 0xE0C1, // <cjk>
+ 0x72E1, 0xE0C2, // <cjk>
+ 0x72E2, 0xE0C0, // <cjk>
+ 0x72E9, 0x8EEB, // <cjk>
+ 0x72EC, 0x93C6, // <cjk>
+ 0x72ED, 0x8BB7, // <cjk>
+ 0x72F7, 0xE0C4, // <cjk>
+ 0x72F8, 0x924B, // <cjk>
+ 0x72F9, 0xE0C3, // <cjk>
+ 0x72FC, 0x9854, // <cjk>
+ 0x72FD, 0x9482, // <cjk>
+ 0x730A, 0xE0C7, // <cjk>
+ 0x7316, 0xE0C9, // <cjk>
+ 0x7317, 0xE0C6, // <cjk>
+ 0x731B, 0x96D2, // <cjk>
+ 0x731C, 0xE0C8, // <cjk>
+ 0x731D, 0xE0CA, // <cjk>
+ 0x731F, 0x97C2, // <cjk>
+ 0x7325, 0xE0CE, // <cjk>
+ 0x7329, 0xE0CD, // <cjk>
+ 0x732A, 0x9296, // <cjk>
+ 0x732B, 0x944C, // <cjk>
+ 0x732E, 0x8CA3, // <cjk>
+ 0x732F, 0xE0CC, // <cjk>
+ 0x7334, 0xE0CB, // <cjk>
+ 0x7336, 0x9750, // <cjk>
+ 0x7337, 0x9751, // <cjk>
+ 0x733E, 0xE0CF, // <cjk>
+ 0x733F, 0x898E, // <cjk>
+ 0x7344, 0x8D96, // <cjk>
+ 0x7345, 0x8E82, // <cjk>
+ 0x734E, 0xE0D0, // <cjk>
+ 0x734F, 0xE0D1, // <cjk>
+ 0x7357, 0xE0D3, // <cjk>
+ 0x7363, 0x8F62, // <cjk>
+ 0x7368, 0xE0D5, // <cjk>
+ 0x736A, 0xE0D4, // <cjk>
+ 0x7370, 0xE0D6, // <cjk>
+ 0x7372, 0x8A6C, // <cjk>
+ 0x7375, 0xE0D8, // <cjk>
+ 0x7378, 0xE0D7, // <cjk>
+ 0x737A, 0xE0DA, // <cjk>
+ 0x737B, 0xE0D9, // <cjk>
+ 0x7384, 0x8CBA, // <cjk>
+ 0x7387, 0x97A6, // <cjk>
+ 0x7389, 0x8BCA, // <cjk>
+ 0x738B, 0x89A4, // <cjk>
+ 0x7396, 0x8BE8, // <cjk>
+ 0x73A9, 0x8ADF, // <cjk>
+ 0x73B2, 0x97E6, // <cjk>
+ 0x73B3, 0xE0DC, // <cjk>
+ 0x73BB, 0xE0DE, // <cjk>
+ 0x73C0, 0xE0DF, // <cjk>
+ 0x73C2, 0x89CF, // <cjk>
+ 0x73C8, 0xE0DB, // <cjk>
+ 0x73CA, 0x8E58, // <cjk>
+ 0x73CD, 0x92BF, // <cjk>
+ 0x73CE, 0xE0DD, // <cjk>
+ 0x73DE, 0xE0E2, // <cjk>
+ 0x73E0, 0x8EEC, // <cjk>
+ 0x73E5, 0xE0E0, // <cjk>
+ 0x73EA, 0x8C5D, // <cjk>
+ 0x73ED, 0x94C7, // <cjk>
+ 0x73EE, 0xE0E1, // <cjk>
+ 0x73F1, 0xE0FC, // <cjk>
+ 0x73F8, 0xE0E7, // <cjk>
+ 0x73FE, 0x8CBB, // <cjk>
+ 0x7403, 0x8B85, // <cjk>
+ 0x7405, 0xE0E4, // <cjk>
+ 0x7406, 0x979D, // <cjk>
+ 0x7409, 0x97AE, // <cjk>
+ 0x7422, 0x91F4, // <cjk>
+ 0x7425, 0xE0E6, // <cjk>
+ 0x7432, 0xE0E8, // <cjk>
+ 0x7433, 0x97D4, // <cjk>
+ 0x7434, 0x8BD5, // <cjk>
+ 0x7435, 0x94FA, // <cjk>
+ 0x7436, 0x9469, // <cjk>
+ 0x743A, 0xE0E9, // <cjk>
+ 0x743F, 0xE0EB, // <cjk>
+ 0x7441, 0xE0EE, // <cjk>
+ 0x7455, 0xE0EA, // <cjk>
+ 0x7459, 0xE0ED, // <cjk>
+ 0x745A, 0x8CE8, // <cjk>
+ 0x745B, 0x896C, // <cjk>
+ 0x745C, 0xE0EF, // <cjk>
+ 0x745E, 0x9090, // <cjk>
+ 0x745F, 0xE0EC, // <cjk>
+ 0x7460, 0x97DA, // <cjk>
+ 0x7463, 0xE0F2, // <cjk>
+ 0x7464, 0xEAA2, // <cjk>
+ 0x7469, 0xE0F0, // <cjk>
+ 0x746A, 0xE0F3, // <cjk>
+ 0x746F, 0xE0E5, // <cjk>
+ 0x7470, 0xE0F1, // <cjk>
+ 0x7473, 0x8DBA, // <cjk>
+ 0x7476, 0xE0F4, // <cjk>
+ 0x747E, 0xE0F5, // <cjk>
+ 0x7483, 0x979E, // <cjk>
+ 0x748B, 0xE0F6, // <cjk>
+ 0x749E, 0xE0F7, // <cjk>
+ 0x74A2, 0xE0E3, // <cjk>
+ 0x74A7, 0xE0F8, // <cjk>
+ 0x74B0, 0x8AC2, // <cjk>
+ 0x74BD, 0x8EA3, // <cjk>
+ 0x74CA, 0xE0F9, // <cjk>
+ 0x74CF, 0xE0FA, // <cjk>
+ 0x74D4, 0xE0FB, // <cjk>
+ 0x74DC, 0x895A, // <cjk>
+ 0x74E0, 0xE140, // <cjk>
+ 0x74E2, 0x955A, // <cjk>
+ 0x74E3, 0xE141, // <cjk>
+ 0x74E6, 0x8AA2, // <cjk>
+ 0x74E7, 0xE142, // <cjk>
+ 0x74E9, 0xE143, // <cjk>
+ 0x74EE, 0xE144, // <cjk>
+ 0x74F0, 0xE146, // <cjk>
+ 0x74F1, 0xE147, // <cjk>
+ 0x74F2, 0xE145, // <cjk>
+ 0x74F6, 0x9572, // <cjk>
+ 0x74F7, 0xE149, // <cjk>
+ 0x74F8, 0xE148, // <cjk>
+ 0x7503, 0xE14B, // <cjk>
+ 0x7504, 0xE14A, // <cjk>
+ 0x7505, 0xE14C, // <cjk>
+ 0x750C, 0xE14D, // <cjk>
+ 0x750D, 0xE14F, // <cjk>
+ 0x750E, 0xE14E, // <cjk>
+ 0x7511, 0x8D99, // <cjk>
+ 0x7513, 0xE151, // <cjk>
+ 0x7515, 0xE150, // <cjk>
+ 0x7518, 0x8AC3, // <cjk>
+ 0x751A, 0x9072, // <cjk>
+ 0x751E, 0xE152, // <cjk>
+ 0x751F, 0x90B6, // <cjk>
+ 0x7523, 0x8E59, // <cjk>
+ 0x7525, 0x8999, // <cjk>
+ 0x7526, 0xE153, // <cjk>
+ 0x7528, 0x9770, // <cjk>
+ 0x752B, 0x95E1, // <cjk>
+ 0x752C, 0xE154, // <cjk>
+ 0x7530, 0x9363, // <cjk>
+ 0x7531, 0x9752, // <cjk>
+ 0x7532, 0x8D62, // <cjk>
+ 0x7533, 0x905C, // <cjk>
+ 0x7537, 0x926A, // <cjk>
+ 0x7538, 0x99B2, // <cjk>
+ 0x753A, 0x92AC, // <cjk>
+ 0x753B, 0x89E6, // <cjk>
+ 0x753C, 0xE155, // <cjk>
+ 0x7544, 0xE156, // <cjk>
+ 0x7549, 0xE159, // <cjk>
+ 0x754A, 0xE158, // <cjk>
+ 0x754B, 0x9DC0, // <cjk>
+ 0x754C, 0x8A45, // <cjk>
+ 0x754D, 0xE157, // <cjk>
+ 0x754F, 0x88D8, // <cjk>
+ 0x7551, 0x94A8, // <cjk>
+ 0x7554, 0x94C8, // <cjk>
+ 0x7559, 0x97AF, // <cjk>
+ 0x755A, 0xE15C, // <cjk>
+ 0x755B, 0xE15A, // <cjk>
+ 0x755C, 0x927B, // <cjk>
+ 0x755D, 0x90A4, // <cjk>
+ 0x7560, 0x94A9, // <cjk>
+ 0x7562, 0x954C, // <cjk>
+ 0x7564, 0xE15E, // <cjk>
+ 0x7565, 0x97AA, // <cjk>
+ 0x7566, 0x8C6C, // <cjk>
+ 0x7567, 0xE15F, // <cjk>
+ 0x7569, 0xE15D, // <cjk>
+ 0x756A, 0x94D4, // <cjk>
+ 0x756B, 0xE160, // <cjk>
+ 0x756D, 0xE161, // <cjk>
+ 0x7570, 0x88D9, // <cjk>
+ 0x7573, 0x8FF4, // <cjk>
+ 0x7574, 0xE166, // <cjk>
+ 0x7576, 0xE163, // <cjk>
+ 0x7577, 0x93EB, // <cjk>
+ 0x7578, 0xE162, // <cjk>
+ 0x757F, 0x8B45, // <cjk>
+ 0x7582, 0xE169, // <cjk>
+ 0x7586, 0xE164, // <cjk>
+ 0x7587, 0xE165, // <cjk>
+ 0x7589, 0xE168, // <cjk>
+ 0x758A, 0xE167, // <cjk>
+ 0x758B, 0x9544, // <cjk>
+ 0x758E, 0x9161, // <cjk>
+ 0x758F, 0x9160, // <cjk>
+ 0x7591, 0x8B5E, // <cjk>
+ 0x7594, 0xE16A, // <cjk>
+ 0x759A, 0xE16B, // <cjk>
+ 0x759D, 0xE16C, // <cjk>
+ 0x75A3, 0xE16E, // <cjk>
+ 0x75A5, 0xE16D, // <cjk>
+ 0x75AB, 0x8975, // <cjk>
+ 0x75B1, 0xE176, // <cjk>
+ 0x75B2, 0x94E6, // <cjk>
+ 0x75B3, 0xE170, // <cjk>
+ 0x75B5, 0xE172, // <cjk>
+ 0x75B8, 0xE174, // <cjk>
+ 0x75B9, 0x905D, // <cjk>
+ 0x75BC, 0xE175, // <cjk>
+ 0x75BD, 0xE173, // <cjk>
+ 0x75BE, 0x8EBE, // <cjk>
+ 0x75C2, 0xE16F, // <cjk>
+ 0x75C3, 0xE171, // <cjk>
+ 0x75C5, 0x9561, // <cjk>
+ 0x75C7, 0x8FC7, // <cjk>
+ 0x75CA, 0xE178, // <cjk>
+ 0x75CD, 0xE177, // <cjk>
+ 0x75D2, 0xE179, // <cjk>
+ 0x75D4, 0x8EA4, // <cjk>
+ 0x75D5, 0x8DAD, // <cjk>
+ 0x75D8, 0x9397, // <cjk>
+ 0x75D9, 0xE17A, // <cjk>
+ 0x75DB, 0x92C9, // <cjk>
+ 0x75DE, 0xE17C, // <cjk>
+ 0x75E2, 0x979F, // <cjk>
+ 0x75E3, 0xE17B, // <cjk>
+ 0x75E9, 0x9189, // <cjk>
+ 0x75F0, 0xE182, // <cjk>
+ 0x75F2, 0xE184, // <cjk>
+ 0x75F3, 0xE185, // <cjk>
+ 0x75F4, 0x9273, // <cjk>
+ 0x75FA, 0xE183, // <cjk>
+ 0x75FC, 0xE180, // <cjk>
+ 0x75FE, 0xE17D, // <cjk>
+ 0x75FF, 0xE17E, // <cjk>
+ 0x7601, 0xE181, // <cjk>
+ 0x7609, 0xE188, // <cjk>
+ 0x760B, 0xE186, // <cjk>
+ 0x760D, 0xE187, // <cjk>
+ 0x761F, 0xE189, // <cjk>
+ 0x7620, 0xE18B, // <cjk>
+ 0x7621, 0xE18C, // <cjk>
+ 0x7622, 0xE18D, // <cjk>
+ 0x7624, 0xE18E, // <cjk>
+ 0x7627, 0xE18A, // <cjk>
+ 0x7630, 0xE190, // <cjk>
+ 0x7634, 0xE18F, // <cjk>
+ 0x763B, 0xE191, // <cjk>
+ 0x7642, 0x97C3, // <cjk>
+ 0x7646, 0xE194, // <cjk>
+ 0x7647, 0xE192, // <cjk>
+ 0x7648, 0xE193, // <cjk>
+ 0x764C, 0x8AE0, // <cjk>
+ 0x7652, 0x96FC, // <cjk>
+ 0x7656, 0x95C8, // <cjk>
+ 0x7658, 0xE196, // <cjk>
+ 0x765C, 0xE195, // <cjk>
+ 0x7661, 0xE197, // <cjk>
+ 0x7662, 0xE198, // <cjk>
+ 0x7667, 0xE19C, // <cjk>
+ 0x7668, 0xE199, // <cjk>
+ 0x7669, 0xE19A, // <cjk>
+ 0x766A, 0xE19B, // <cjk>
+ 0x766C, 0xE19D, // <cjk>
+ 0x7670, 0xE19E, // <cjk>
+ 0x7672, 0xE19F, // <cjk>
+ 0x7676, 0xE1A0, // <cjk>
+ 0x7678, 0xE1A1, // <cjk>
+ 0x767A, 0x94AD, // <cjk>
+ 0x767B, 0x936F, // <cjk>
+ 0x767C, 0xE1A2, // <cjk>
+ 0x767D, 0x9492, // <cjk>
+ 0x767E, 0x9553, // <cjk>
+ 0x7680, 0xE1A3, // <cjk>
+ 0x7683, 0xE1A4, // <cjk>
+ 0x7684, 0x9349, // <cjk>
+ 0x7686, 0x8A46, // <cjk>
+ 0x7687, 0x8D63, // <cjk>
+ 0x7688, 0xE1A5, // <cjk>
+ 0x768B, 0xE1A6, // <cjk>
+ 0x768E, 0xE1A7, // <cjk>
+ 0x7690, 0x8E48, // <cjk>
+ 0x7693, 0xE1A9, // <cjk>
+ 0x7696, 0xE1A8, // <cjk>
+ 0x7699, 0xE1AA, // <cjk>
+ 0x769A, 0xE1AB, // <cjk>
+ 0x76AE, 0x94E7, // <cjk>
+ 0x76B0, 0xE1AC, // <cjk>
+ 0x76B4, 0xE1AD, // <cjk>
+ 0x76B7, 0xEA89, // <cjk>
+ 0x76B8, 0xE1AE, // <cjk>
+ 0x76B9, 0xE1AF, // <cjk>
+ 0x76BA, 0xE1B0, // <cjk>
+ 0x76BF, 0x8E4D, // <cjk>
+ 0x76C2, 0xE1B1, // <cjk>
+ 0x76C3, 0x9475, // <cjk>
+ 0x76C6, 0x967E, // <cjk>
+ 0x76C8, 0x896D, // <cjk>
+ 0x76CA, 0x8976, // <cjk>
+ 0x76CD, 0xE1B2, // <cjk>
+ 0x76D2, 0xE1B4, // <cjk>
+ 0x76D6, 0xE1B3, // <cjk>
+ 0x76D7, 0x9390, // <cjk>
+ 0x76DB, 0x90B7, // <cjk>
+ 0x76DC, 0x9F58, // <cjk>
+ 0x76DE, 0xE1B5, // <cjk>
+ 0x76DF, 0x96BF, // <cjk>
+ 0x76E1, 0xE1B6, // <cjk>
+ 0x76E3, 0x8AC4, // <cjk>
+ 0x76E4, 0x94D5, // <cjk>
+ 0x76E5, 0xE1B7, // <cjk>
+ 0x76E7, 0xE1B8, // <cjk>
+ 0x76EA, 0xE1B9, // <cjk>
+ 0x76EE, 0x96DA, // <cjk>
+ 0x76F2, 0x96D3, // <cjk>
+ 0x76F4, 0x92BC, // <cjk>
+ 0x76F8, 0x918A, // <cjk>
+ 0x76FB, 0xE1BB, // <cjk>
+ 0x76FE, 0x8F82, // <cjk>
+ 0x7701, 0x8FC8, // <cjk>
+ 0x7704, 0xE1BE, // <cjk>
+ 0x7707, 0xE1BD, // <cjk>
+ 0x7708, 0xE1BC, // <cjk>
+ 0x7709, 0x94FB, // <cjk>
+ 0x770B, 0x8AC5, // <cjk>
+ 0x770C, 0x8CA7, // <cjk>
+ 0x771B, 0xE1C4, // <cjk>
+ 0x771E, 0xE1C1, // <cjk>
+ 0x771F, 0x905E, // <cjk>
+ 0x7720, 0x96B0, // <cjk>
+ 0x7724, 0xE1C0, // <cjk>
+ 0x7725, 0xE1C2, // <cjk>
+ 0x7726, 0xE1C3, // <cjk>
+ 0x7729, 0xE1BF, // <cjk>
+ 0x7737, 0xE1C5, // <cjk>
+ 0x7738, 0xE1C6, // <cjk>
+ 0x773A, 0x92AD, // <cjk>
+ 0x773C, 0x8AE1, // <cjk>
+ 0x7740, 0x9285, // <cjk>
+ 0x7747, 0xE1C7, // <cjk>
+ 0x775A, 0xE1C8, // <cjk>
+ 0x775B, 0xE1CB, // <cjk>
+ 0x7761, 0x9087, // <cjk>
+ 0x7763, 0x93C2, // <cjk>
+ 0x7765, 0xE1CC, // <cjk>
+ 0x7766, 0x9672, // <cjk>
+ 0x7768, 0xE1C9, // <cjk>
+ 0x776B, 0xE1CA, // <cjk>
+ 0x7779, 0xE1CF, // <cjk>
+ 0x777E, 0xE1CE, // <cjk>
+ 0x777F, 0xE1CD, // <cjk>
+ 0x778B, 0xE1D1, // <cjk>
+ 0x778E, 0xE1D0, // <cjk>
+ 0x7791, 0xE1D2, // <cjk>
+ 0x779E, 0xE1D4, // <cjk>
+ 0x77A0, 0xE1D3, // <cjk>
+ 0x77A5, 0x95CB, // <cjk>
+ 0x77AC, 0x8F75, // <cjk>
+ 0x77AD, 0x97C4, // <cjk>
+ 0x77B0, 0xE1D5, // <cjk>
+ 0x77B3, 0x93B5, // <cjk>
+ 0x77B6, 0xE1D6, // <cjk>
+ 0x77B9, 0xE1D7, // <cjk>
+ 0x77BB, 0xE1DB, // <cjk>
+ 0x77BC, 0xE1D9, // <cjk>
+ 0x77BD, 0xE1DA, // <cjk>
+ 0x77BF, 0xE1D8, // <cjk>
+ 0x77C7, 0xE1DC, // <cjk>
+ 0x77CD, 0xE1DD, // <cjk>
+ 0x77D7, 0xE1DE, // <cjk>
+ 0x77DA, 0xE1DF, // <cjk>
+ 0x77DB, 0x96B5, // <cjk>
+ 0x77DC, 0xE1E0, // <cjk>
+ 0x77E2, 0x96EE, // <cjk>
+ 0x77E3, 0xE1E1, // <cjk>
+ 0x77E5, 0x926D, // <cjk>
+ 0x77E7, 0x948A, // <cjk>
+ 0x77E9, 0x8BE9, // <cjk>
+ 0x77ED, 0x925A, // <cjk>
+ 0x77EE, 0xE1E2, // <cjk>
+ 0x77EF, 0x8BB8, // <cjk>
+ 0x77F3, 0x90CE, // <cjk>
+ 0x77FC, 0xE1E3, // <cjk>
+ 0x7802, 0x8DBB, // <cjk>
+ 0x780C, 0xE1E4, // <cjk>
+ 0x7812, 0xE1E5, // <cjk>
+ 0x7814, 0x8CA4, // <cjk>
+ 0x7815, 0x8DD3, // <cjk>
+ 0x7820, 0xE1E7, // <cjk>
+ 0x7825, 0x9375, // <cjk>
+ 0x7826, 0x8DD4, // <cjk>
+ 0x7827, 0x8B6D, // <cjk>
+ 0x7832, 0x9643, // <cjk>
+ 0x7834, 0x946A, // <cjk>
+ 0x783A, 0x9376, // <cjk>
+ 0x783F, 0x8D7B, // <cjk>
+ 0x7845, 0xE1E9, // <cjk>
+ 0x785D, 0x8FC9, // <cjk>
+ 0x786B, 0x97B0, // <cjk>
+ 0x786C, 0x8D64, // <cjk>
+ 0x786F, 0x8CA5, // <cjk>
+ 0x7872, 0x94A1, // <cjk>
+ 0x7874, 0xE1EB, // <cjk>
+ 0x787C, 0xE1ED, // <cjk>
+ 0x7881, 0x8CE9, // <cjk>
+ 0x7886, 0xE1EC, // <cjk>
+ 0x7887, 0x92F4, // <cjk>
+ 0x788C, 0xE1EF, // <cjk>
+ 0x788D, 0x8A56, // <cjk>
+ 0x788E, 0xE1EA, // <cjk>
+ 0x7891, 0x94E8, // <cjk>
+ 0x7893, 0x894F, // <cjk>
+ 0x7895, 0x8DEA, // <cjk>
+ 0x7897, 0x9871, // <cjk>
+ 0x789A, 0xE1EE, // <cjk>
+ 0x78A3, 0xE1F0, // <cjk>
+ 0x78A7, 0x95C9, // <cjk>
+ 0x78A9, 0x90D7, // <cjk>
+ 0x78AA, 0xE1F2, // <cjk>
+ 0x78AF, 0xE1F3, // <cjk>
+ 0x78B5, 0xE1F1, // <cjk>
+ 0x78BA, 0x8A6D, // <cjk>
+ 0x78BC, 0xE1F9, // <cjk>
+ 0x78BE, 0xE1F8, // <cjk>
+ 0x78C1, 0x8EA5, // <cjk>
+ 0x78C5, 0xE1FA, // <cjk>
+ 0x78C6, 0xE1F5, // <cjk>
+ 0x78CA, 0xE1FB, // <cjk>
+ 0x78CB, 0xE1F6, // <cjk>
+ 0x78D0, 0x94D6, // <cjk>
+ 0x78D1, 0xE1F4, // <cjk>
+ 0x78D4, 0xE1F7, // <cjk>
+ 0x78DA, 0xE241, // <cjk>
+ 0x78E7, 0xE240, // <cjk>
+ 0x78E8, 0x9681, // <cjk>
+ 0x78EC, 0xE1FC, // <cjk>
+ 0x78EF, 0x88E9, // <cjk>
+ 0x78F4, 0xE243, // <cjk>
+ 0x78FD, 0xE242, // <cjk>
+ 0x7901, 0x8FCA, // <cjk>
+ 0x7907, 0xE244, // <cjk>
+ 0x790E, 0x9162, // <cjk>
+ 0x7911, 0xE246, // <cjk>
+ 0x7912, 0xE245, // <cjk>
+ 0x7919, 0xE247, // <cjk>
+ 0x7926, 0xE1E6, // <cjk>
+ 0x792A, 0xE1E8, // <cjk>
+ 0x792B, 0xE249, // <cjk>
+ 0x792C, 0xE248, // <cjk>
+ 0x793A, 0x8EA6, // <cjk>
+ 0x793C, 0x97E7, // <cjk>
+ 0x793E, 0x8ED0, // <cjk>
+ 0x7940, 0xE24A, // <cjk>
+ 0x7941, 0x8C56, // <cjk>
+ 0x7947, 0x8B5F, // <cjk>
+ 0x7948, 0x8B46, // <cjk>
+ 0x7949, 0x8E83, // <cjk>
+ 0x7950, 0x9753, // <cjk>
+ 0x7953, 0xE250, // <cjk>
+ 0x7955, 0xE24F, // <cjk>
+ 0x7956, 0x9163, // <cjk>
+ 0x7957, 0xE24C, // <cjk>
+ 0x795A, 0xE24E, // <cjk>
+ 0x795D, 0x8F6A, // <cjk>
+ 0x795E, 0x905F, // <cjk>
+ 0x795F, 0xE24D, // <cjk>
+ 0x7960, 0xE24B, // <cjk>
+ 0x7962, 0x9449, // <cjk>
+ 0x7965, 0x8FCB, // <cjk>
+ 0x796D, 0x8DD5, // <cjk>
+ 0x7977, 0x9398, // <cjk>
+ 0x797A, 0xE251, // <cjk>
+ 0x797F, 0xE252, // <cjk>
+ 0x7980, 0xE268, // <cjk>
+ 0x7981, 0x8BD6, // <cjk>
+ 0x7984, 0x985C, // <cjk>
+ 0x7985, 0x9154, // <cjk>
+ 0x798A, 0xE253, // <cjk>
+ 0x798D, 0x89D0, // <cjk>
+ 0x798E, 0x92F5, // <cjk>
+ 0x798F, 0x959F, // <cjk>
+ 0x799D, 0xE254, // <cjk>
+ 0x79A6, 0x8B9A, // <cjk>
+ 0x79A7, 0xE255, // <cjk>
+ 0x79AA, 0xE257, // <cjk>
+ 0x79AE, 0xE258, // <cjk>
+ 0x79B0, 0x9448, // <cjk>
+ 0x79B3, 0xE259, // <cjk>
+ 0x79B9, 0xE25A, // <cjk>
+ 0x79BD, 0x8BD7, // <cjk>
+ 0x79BE, 0x89D1, // <cjk>
+ 0x79BF, 0x93C3, // <cjk>
+ 0x79C0, 0x8F47, // <cjk>
+ 0x79C1, 0x8E84, // <cjk>
+ 0x79C9, 0xE25C, // <cjk>
+ 0x79CB, 0x8F48, // <cjk>
+ 0x79D1, 0x89C8, // <cjk>
+ 0x79D2, 0x9562, // <cjk>
+ 0x79D5, 0xE25D, // <cjk>
+ 0x79D8, 0x94E9, // <cjk>
+ 0x79DF, 0x9164, // <cjk>
+ 0x79E1, 0xE260, // <cjk>
+ 0x79E3, 0xE261, // <cjk>
+ 0x79E4, 0x9489, // <cjk>
+ 0x79E6, 0x9060, // <cjk>
+ 0x79E7, 0xE25E, // <cjk>
+ 0x79E9, 0x9281, // <cjk>
+ 0x79EC, 0xE25F, // <cjk>
+ 0x79F0, 0x8FCC, // <cjk>
+ 0x79FB, 0x88DA, // <cjk>
+ 0x7A00, 0x8B48, // <cjk>
+ 0x7A08, 0xE262, // <cjk>
+ 0x7A0B, 0x92F6, // <cjk>
+ 0x7A0D, 0xE263, // <cjk>
+ 0x7A0E, 0x90C5, // <cjk>
+ 0x7A14, 0x96AB, // <cjk>
+ 0x7A17, 0x9542, // <cjk>
+ 0x7A18, 0xE264, // <cjk>
+ 0x7A19, 0xE265, // <cjk>
+ 0x7A1A, 0x9274, // <cjk>
+ 0x7A1C, 0x97C5, // <cjk>
+ 0x7A1F, 0xE267, // <cjk>
+ 0x7A20, 0xE266, // <cjk>
+ 0x7A2E, 0x8EED, // <cjk>
+ 0x7A31, 0xE269, // <cjk>
+ 0x7A32, 0x88EE, // <cjk>
+ 0x7A37, 0xE26C, // <cjk>
+ 0x7A3B, 0xE26A, // <cjk>
+ 0x7A3C, 0x89D2, // <cjk>
+ 0x7A3D, 0x8C6D, // <cjk>
+ 0x7A3E, 0xE26B, // <cjk>
+ 0x7A3F, 0x8D65, // <cjk>
+ 0x7A40, 0x8D92, // <cjk>
+ 0x7A42, 0x95E4, // <cjk>
+ 0x7A43, 0xE26D, // <cjk>
+ 0x7A46, 0x9673, // <cjk>
+ 0x7A49, 0xE26F, // <cjk>
+ 0x7A4D, 0x90CF, // <cjk>
+ 0x7A4E, 0x896E, // <cjk>
+ 0x7A4F, 0x89B8, // <cjk>
+ 0x7A50, 0x88AA, // <cjk>
+ 0x7A57, 0xE26E, // <cjk>
+ 0x7A61, 0xE270, // <cjk>
+ 0x7A62, 0xE271, // <cjk>
+ 0x7A63, 0x8FF5, // <cjk>
+ 0x7A69, 0xE272, // <cjk>
+ 0x7A6B, 0x8A6E, // <cjk>
+ 0x7A70, 0xE274, // <cjk>
+ 0x7A74, 0x8C8A, // <cjk>
+ 0x7A76, 0x8B86, // <cjk>
+ 0x7A79, 0xE275, // <cjk>
+ 0x7A7A, 0x8BF3, // <cjk>
+ 0x7A7D, 0xE276, // <cjk>
+ 0x7A7F, 0x90FA, // <cjk>
+ 0x7A81, 0x93CB, // <cjk>
+ 0x7A83, 0x90DE, // <cjk>
+ 0x7A84, 0x8DF3, // <cjk>
+ 0x7A88, 0xE277, // <cjk>
+ 0x7A92, 0x9282, // <cjk>
+ 0x7A93, 0x918B, // <cjk>
+ 0x7A95, 0xE279, // <cjk>
+ 0x7A96, 0xE27B, // <cjk>
+ 0x7A97, 0xE278, // <cjk>
+ 0x7A98, 0xE27A, // <cjk>
+ 0x7A9F, 0x8C41, // <cjk>
+ 0x7AA9, 0xE27C, // <cjk>
+ 0x7AAA, 0x8C45, // <cjk>
+ 0x7AAE, 0x8B87, // <cjk>
+ 0x7AAF, 0x9771, // <cjk>
+ 0x7AB0, 0xE27E, // <cjk>
+ 0x7AB6, 0xE280, // <cjk>
+ 0x7ABA, 0x894D, // <cjk>
+ 0x7ABF, 0xE283, // <cjk>
+ 0x7AC3, 0x8A96, // <cjk>
+ 0x7AC4, 0xE282, // <cjk>
+ 0x7AC5, 0xE281, // <cjk>
+ 0x7AC7, 0xE285, // <cjk>
+ 0x7AC8, 0xE27D, // <cjk>
+ 0x7ACA, 0xE286, // <cjk>
+ 0x7ACB, 0x97A7, // <cjk>
+ 0x7ACD, 0xE287, // <cjk>
+ 0x7ACF, 0xE288, // <cjk>
+ 0x7AD2, 0x9AF2, // <cjk>
+ 0x7AD3, 0xE28A, // <cjk>
+ 0x7AD5, 0xE289, // <cjk>
+ 0x7AD9, 0xE28B, // <cjk>
+ 0x7ADA, 0xE28C, // <cjk>
+ 0x7ADC, 0x97B3, // <cjk>
+ 0x7ADD, 0xE28D, // <cjk>
+ 0x7ADF, 0xE8ED, // <cjk>
+ 0x7AE0, 0x8FCD, // <cjk>
+ 0x7AE1, 0xE28E, // <cjk>
+ 0x7AE2, 0xE28F, // <cjk>
+ 0x7AE3, 0x8F76, // <cjk>
+ 0x7AE5, 0x93B6, // <cjk>
+ 0x7AE6, 0xE290, // <cjk>
+ 0x7AEA, 0x9247, // <cjk>
+ 0x7AED, 0xE291, // <cjk>
+ 0x7AF0, 0xE292, // <cjk>
+ 0x7AF6, 0x8BA3, // <cjk>
+ 0x7AF8, 0x995E, // <cjk>
+ 0x7AF9, 0x927C, // <cjk>
+ 0x7AFA, 0x8EB1, // <cjk>
+ 0x7AFF, 0x8AC6, // <cjk>
+ 0x7B02, 0xE293, // <cjk>
+ 0x7B04, 0xE2A0, // <cjk>
+ 0x7B06, 0xE296, // <cjk>
+ 0x7B08, 0x8B88, // <cjk>
+ 0x7B0A, 0xE295, // <cjk>
+ 0x7B0B, 0xE2A2, // <cjk>
+ 0x7B0F, 0xE294, // <cjk>
+ 0x7B11, 0x8FCE, // <cjk>
+ 0x7B18, 0xE298, // <cjk>
+ 0x7B19, 0xE299, // <cjk>
+ 0x7B1B, 0x934A, // <cjk>
+ 0x7B1E, 0xE29A, // <cjk>
+ 0x7B20, 0x8A7D, // <cjk>
+ 0x7B25, 0x9079, // <cjk>
+ 0x7B26, 0x9584, // <cjk>
+ 0x7B28, 0xE29C, // <cjk>
+ 0x7B2C, 0x91E6, // <cjk>
+ 0x7B33, 0xE297, // <cjk>
+ 0x7B35, 0xE29B, // <cjk>
+ 0x7B36, 0xE29D, // <cjk>
+ 0x7B39, 0x8DF9, // <cjk>
+ 0x7B45, 0xE2A4, // <cjk>
+ 0x7B46, 0x954D, // <cjk>
+ 0x7B48, 0x94A4, // <cjk>
+ 0x7B49, 0x9399, // <cjk>
+ 0x7B4B, 0x8BD8, // <cjk>
+ 0x7B4C, 0xE2A3, // <cjk>
+ 0x7B4D, 0xE2A1, // <cjk>
+ 0x7B4F, 0x94B3, // <cjk>
+ 0x7B50, 0xE29E, // <cjk>
+ 0x7B51, 0x927D, // <cjk>
+ 0x7B52, 0x939B, // <cjk>
+ 0x7B54, 0x939A, // <cjk>
+ 0x7B56, 0x8DF4, // <cjk>
+ 0x7B5D, 0xE2B6, // <cjk>
+ 0x7B65, 0xE2A6, // <cjk>
+ 0x7B67, 0xE2A8, // <cjk>
+ 0x7B6C, 0xE2AB, // <cjk>
+ 0x7B6E, 0xE2AC, // <cjk>
+ 0x7B70, 0xE2A9, // <cjk>
+ 0x7B71, 0xE2AA, // <cjk>
+ 0x7B74, 0xE2A7, // <cjk>
+ 0x7B75, 0xE2A5, // <cjk>
+ 0x7B7A, 0xE29F, // <cjk>
+ 0x7B86, 0x95CD, // <cjk>
+ 0x7B87, 0x89D3, // <cjk>
+ 0x7B8B, 0xE2B3, // <cjk>
+ 0x7B8D, 0xE2B0, // <cjk>
+ 0x7B8F, 0xE2B5, // <cjk>
+ 0x7B92, 0xE2B4, // <cjk>
+ 0x7B94, 0x9493, // <cjk>
+ 0x7B95, 0x96A5, // <cjk>
+ 0x7B97, 0x8E5A, // <cjk>
+ 0x7B98, 0xE2AE, // <cjk>
+ 0x7B99, 0xE2B7, // <cjk>
+ 0x7B9A, 0xE2B2, // <cjk>
+ 0x7B9C, 0xE2B1, // <cjk>
+ 0x7B9D, 0xE2AD, // <cjk>
+ 0x7B9F, 0xE2AF, // <cjk>
+ 0x7BA1, 0x8AC7, // <cjk>
+ 0x7BAA, 0x925C, // <cjk>
+ 0x7BAD, 0x90FB, // <cjk>
+ 0x7BB1, 0x94A0, // <cjk>
+ 0x7BB4, 0xE2BC, // <cjk>
+ 0x7BB8, 0x94A2, // <cjk>
+ 0x7BC0, 0x90DF, // <cjk>
+ 0x7BC1, 0xE2B9, // <cjk>
+ 0x7BC4, 0x94CD, // <cjk>
+ 0x7BC6, 0xE2BD, // <cjk>
+ 0x7BC7, 0x95D1, // <cjk>
+ 0x7BC9, 0x927A, // <cjk>
+ 0x7BCB, 0xE2B8, // <cjk>
+ 0x7BCC, 0xE2BA, // <cjk>
+ 0x7BCF, 0xE2BB, // <cjk>
+ 0x7BDD, 0xE2BE, // <cjk>
+ 0x7BE0, 0x8EC2, // <cjk>
+ 0x7BE4, 0x93C4, // <cjk>
+ 0x7BE5, 0xE2C3, // <cjk>
+ 0x7BE6, 0xE2C2, // <cjk>
+ 0x7BE9, 0xE2BF, // <cjk>
+ 0x7BED, 0x9855, // <cjk>
+ 0x7BF3, 0xE2C8, // <cjk>
+ 0x7BF6, 0xE2CC, // <cjk>
+ 0x7BF7, 0xE2C9, // <cjk>
+ 0x7C00, 0xE2C5, // <cjk>
+ 0x7C07, 0xE2C6, // <cjk>
+ 0x7C0D, 0xE2CB, // <cjk>
+ 0x7C11, 0xE2C0, // <cjk>
+ 0x7C12, 0x99D3, // <cjk>
+ 0x7C13, 0xE2C7, // <cjk>
+ 0x7C14, 0xE2C1, // <cjk>
+ 0x7C17, 0xE2CA, // <cjk>
+ 0x7C1F, 0xE2D0, // <cjk>
+ 0x7C21, 0x8AC8, // <cjk>
+ 0x7C23, 0xE2CD, // <cjk>
+ 0x7C27, 0xE2CE, // <cjk>
+ 0x7C2A, 0xE2CF, // <cjk>
+ 0x7C2B, 0xE2D2, // <cjk>
+ 0x7C37, 0xE2D1, // <cjk>
+ 0x7C38, 0x94F4, // <cjk>
+ 0x7C3D, 0xE2D3, // <cjk>
+ 0x7C3E, 0x97FA, // <cjk>
+ 0x7C3F, 0x95EB, // <cjk>
+ 0x7C40, 0xE2D8, // <cjk>
+ 0x7C43, 0xE2D5, // <cjk>
+ 0x7C4C, 0xE2D4, // <cjk>
+ 0x7C4D, 0x90D0, // <cjk>
+ 0x7C4F, 0xE2D7, // <cjk>
+ 0x7C50, 0xE2D9, // <cjk>
+ 0x7C54, 0xE2D6, // <cjk>
+ 0x7C56, 0xE2DD, // <cjk>
+ 0x7C58, 0xE2DA, // <cjk>
+ 0x7C5F, 0xE2DB, // <cjk>
+ 0x7C60, 0xE2C4, // <cjk>
+ 0x7C64, 0xE2DC, // <cjk>
+ 0x7C65, 0xE2DE, // <cjk>
+ 0x7C6C, 0xE2DF, // <cjk>
+ 0x7C73, 0x95C4, // <cjk>
+ 0x7C75, 0xE2E0, // <cjk>
+ 0x7C7E, 0x96E0, // <cjk>
+ 0x7C81, 0x8BCC, // <cjk>
+ 0x7C82, 0x8C48, // <cjk>
+ 0x7C83, 0xE2E1, // <cjk>
+ 0x7C89, 0x95B2, // <cjk>
+ 0x7C8B, 0x9088, // <cjk>
+ 0x7C8D, 0x96AE, // <cjk>
+ 0x7C90, 0xE2E2, // <cjk>
+ 0x7C92, 0x97B1, // <cjk>
+ 0x7C95, 0x9494, // <cjk>
+ 0x7C97, 0x9165, // <cjk>
+ 0x7C98, 0x9453, // <cjk>
+ 0x7C9B, 0x8F6C, // <cjk>
+ 0x7C9F, 0x88BE, // <cjk>
+ 0x7CA1, 0xE2E7, // <cjk>
+ 0x7CA2, 0xE2E5, // <cjk>
+ 0x7CA4, 0xE2E3, // <cjk>
+ 0x7CA5, 0x8A9F, // <cjk>
+ 0x7CA7, 0x8FCF, // <cjk>
+ 0x7CA8, 0xE2E8, // <cjk>
+ 0x7CAB, 0xE2E6, // <cjk>
+ 0x7CAD, 0xE2E4, // <cjk>
+ 0x7CAE, 0xE2EC, // <cjk>
+ 0x7CB1, 0xE2EB, // <cjk>
+ 0x7CB2, 0xE2EA, // <cjk>
+ 0x7CB3, 0xE2E9, // <cjk>
+ 0x7CB9, 0xE2ED, // <cjk>
+ 0x7CBD, 0xE2EE, // <cjk>
+ 0x7CBE, 0x90B8, // <cjk>
+ 0x7CC0, 0xE2EF, // <cjk>
+ 0x7CC2, 0xE2F1, // <cjk>
+ 0x7CC5, 0xE2F0, // <cjk>
+ 0x7CCA, 0x8CD0, // <cjk>
+ 0x7CCE, 0x9157, // <cjk>
+ 0x7CD2, 0xE2F3, // <cjk>
+ 0x7CD6, 0x939C, // <cjk>
+ 0x7CD8, 0xE2F2, // <cjk>
+ 0x7CDC, 0xE2F4, // <cjk>
+ 0x7CDE, 0x95B3, // <cjk>
+ 0x7CDF, 0x918C, // <cjk>
+ 0x7CE0, 0x8D66, // <cjk>
+ 0x7CE2, 0xE2F5, // <cjk>
+ 0x7CE7, 0x97C6, // <cjk>
+ 0x7CEF, 0xE2F7, // <cjk>
+ 0x7CF2, 0xE2F8, // <cjk>
+ 0x7CF4, 0xE2F9, // <cjk>
+ 0x7CF6, 0xE2FA, // <cjk>
+ 0x7CF8, 0x8E85, // <cjk>
+ 0x7CFA, 0xE2FB, // <cjk>
+ 0x7CFB, 0x8C6E, // <cjk>
+ 0x7CFE, 0x8B8A, // <cjk>
+ 0x7D00, 0x8B49, // <cjk>
+ 0x7D02, 0xE340, // <cjk>
+ 0x7D04, 0x96F1, // <cjk>
+ 0x7D05, 0x8D67, // <cjk>
+ 0x7D06, 0xE2FC, // <cjk>
+ 0x7D0A, 0xE343, // <cjk>
+ 0x7D0B, 0x96E4, // <cjk>
+ 0x7D10, 0x9552, // <cjk>
+ 0x7D14, 0x8F83, // <cjk>
+ 0x7D15, 0xE342, // <cjk>
+ 0x7D17, 0x8ED1, // <cjk>
+ 0x7D18, 0x8D68, // <cjk>
+ 0x7D19, 0x8E86, // <cjk>
+ 0x7D1A, 0x8B89, // <cjk>
+ 0x7D1B, 0x95B4, // <cjk>
+ 0x7D1C, 0xE341, // <cjk>
+ 0x7D20, 0x9166, // <cjk>
+ 0x7D21, 0x9661, // <cjk>
+ 0x7D22, 0x8DF5, // <cjk>
+ 0x7D2B, 0x8E87, // <cjk>
+ 0x7D2C, 0x92DB, // <cjk>
+ 0x7D2E, 0xE346, // <cjk>
+ 0x7D2F, 0x97DD, // <cjk>
+ 0x7D30, 0x8DD7, // <cjk>
+ 0x7D32, 0xE347, // <cjk>
+ 0x7D33, 0x9061, // <cjk>
+ 0x7D35, 0xE349, // <cjk>
+ 0x7D39, 0x8FD0, // <cjk>
+ 0x7D3A, 0x8DAE, // <cjk>
+ 0x7D3F, 0xE348, // <cjk>
+ 0x7D42, 0x8F49, // <cjk>
+ 0x7D43, 0x8CBC, // <cjk>
+ 0x7D44, 0x9167, // <cjk>
+ 0x7D45, 0xE344, // <cjk>
+ 0x7D46, 0xE34A, // <cjk>
+ 0x7D4B, 0xE345, // <cjk>
+ 0x7D4C, 0x8C6F, // <cjk>
+ 0x7D4E, 0xE34D, // <cjk>
+ 0x7D4F, 0xE351, // <cjk>
+ 0x7D50, 0x8C8B, // <cjk>
+ 0x7D56, 0xE34C, // <cjk>
+ 0x7D5B, 0xE355, // <cjk>
+ 0x7D5E, 0x8D69, // <cjk>
+ 0x7D61, 0x978D, // <cjk>
+ 0x7D62, 0x88BA, // <cjk>
+ 0x7D63, 0xE352, // <cjk>
+ 0x7D66, 0x8B8B, // <cjk>
+ 0x7D68, 0xE34F, // <cjk>
+ 0x7D6E, 0xE350, // <cjk>
+ 0x7D71, 0x939D, // <cjk>
+ 0x7D72, 0xE34E, // <cjk>
+ 0x7D73, 0xE34B, // <cjk>
+ 0x7D75, 0x8A47, // <cjk>
+ 0x7D76, 0x90E2, // <cjk>
+ 0x7D79, 0x8CA6, // <cjk>
+ 0x7D7D, 0xE357, // <cjk>
+ 0x7D89, 0xE354, // <cjk>
+ 0x7D8F, 0xE356, // <cjk>
+ 0x7D93, 0xE353, // <cjk>
+ 0x7D99, 0x8C70, // <cjk>
+ 0x7D9A, 0x91B1, // <cjk>
+ 0x7D9B, 0xE358, // <cjk>
+ 0x7D9C, 0x918E, // <cjk>
+ 0x7D9F, 0xE365, // <cjk>
+ 0x7DA2, 0xE361, // <cjk>
+ 0x7DAB, 0xE35F, // <cjk>
+ 0x7DAC, 0x8EF8, // <cjk>
+ 0x7DAD, 0x88DB, // <cjk>
+ 0x7DAE, 0xE35A, // <cjk>
+ 0x7DAF, 0xE362, // <cjk>
+ 0x7DB0, 0xE366, // <cjk>
+ 0x7DB1, 0x8D6A, // <cjk>
+ 0x7DB2, 0x96D4, // <cjk>
+ 0x7DB4, 0x92D4, // <cjk>
+ 0x7DB5, 0xE35C, // <cjk>
+ 0x7DB8, 0xE364, // <cjk>
+ 0x7DBA, 0xE359, // <cjk>
+ 0x7DBB, 0x925D, // <cjk>
+ 0x7DBD, 0xE35E, // <cjk>
+ 0x7DBE, 0x88BB, // <cjk>
+ 0x7DBF, 0x96C8, // <cjk>
+ 0x7DC7, 0xE35D, // <cjk>
+ 0x7DCA, 0x8BD9, // <cjk>
+ 0x7DCB, 0x94EA, // <cjk>
+ 0x7DCF, 0x918D, // <cjk>
+ 0x7DD1, 0x97CE, // <cjk>
+ 0x7DD2, 0x8F8F, // <cjk>
+ 0x7DD5, 0xE38E, // <cjk>
+ 0x7DD8, 0xE367, // <cjk>
+ 0x7DDA, 0x90FC, // <cjk>
+ 0x7DDC, 0xE363, // <cjk>
+ 0x7DDD, 0xE368, // <cjk>
+ 0x7DDE, 0xE36A, // <cjk>
+ 0x7DE0, 0x92F7, // <cjk>
+ 0x7DE1, 0xE36D, // <cjk>
+ 0x7DE4, 0xE369, // <cjk>
+ 0x7DE8, 0x95D2, // <cjk>
+ 0x7DE9, 0x8AC9, // <cjk>
+ 0x7DEC, 0x96C9, // <cjk>
+ 0x7DEF, 0x88DC, // <cjk>
+ 0x7DF2, 0xE36C, // <cjk>
+ 0x7DF4, 0x97FB, // <cjk>
+ 0x7DFB, 0xE36B, // <cjk>
+ 0x7E01, 0x898F, // <cjk>
+ 0x7E04, 0x93EA, // <cjk>
+ 0x7E05, 0xE36E, // <cjk>
+ 0x7E09, 0xE375, // <cjk>
+ 0x7E0A, 0xE36F, // <cjk>
+ 0x7E0B, 0xE376, // <cjk>
+ 0x7E12, 0xE372, // <cjk>
+ 0x7E1B, 0x949B, // <cjk>
+ 0x7E1E, 0x8EC8, // <cjk>
+ 0x7E1F, 0xE374, // <cjk>
+ 0x7E21, 0xE371, // <cjk>
+ 0x7E22, 0xE377, // <cjk>
+ 0x7E23, 0xE370, // <cjk>
+ 0x7E26, 0x8F63, // <cjk>
+ 0x7E2B, 0x9644, // <cjk>
+ 0x7E2E, 0x8F6B, // <cjk>
+ 0x7E31, 0xE373, // <cjk>
+ 0x7E32, 0xE380, // <cjk>
+ 0x7E35, 0xE37B, // <cjk>
+ 0x7E37, 0xE37E, // <cjk>
+ 0x7E39, 0xE37C, // <cjk>
+ 0x7E3A, 0xE381, // <cjk>
+ 0x7E3B, 0xE37A, // <cjk>
+ 0x7E3D, 0xE360, // <cjk>
+ 0x7E3E, 0x90D1, // <cjk>
+ 0x7E41, 0x94C9, // <cjk>
+ 0x7E43, 0xE37D, // <cjk>
+ 0x7E46, 0xE378, // <cjk>
+ 0x7E4A, 0x9140, // <cjk>
+ 0x7E4B, 0x8C71, // <cjk>
+ 0x7E4D, 0x8F4A, // <cjk>
+ 0x7E54, 0x9044, // <cjk>
+ 0x7E55, 0x9155, // <cjk>
+ 0x7E56, 0xE384, // <cjk>
+ 0x7E59, 0xE386, // <cjk>
+ 0x7E5A, 0xE387, // <cjk>
+ 0x7E5D, 0xE383, // <cjk>
+ 0x7E5E, 0xE385, // <cjk>
+ 0x7E66, 0xE379, // <cjk>
+ 0x7E67, 0xE382, // <cjk>
+ 0x7E69, 0xE38A, // <cjk>
+ 0x7E6A, 0xE389, // <cjk>
+ 0x7E6D, 0x969A, // <cjk>
+ 0x7E70, 0x8C4A, // <cjk>
+ 0x7E79, 0xE388, // <cjk>
+ 0x7E7B, 0xE38C, // <cjk>
+ 0x7E7C, 0xE38B, // <cjk>
+ 0x7E7D, 0xE38F, // <cjk>
+ 0x7E7F, 0xE391, // <cjk>
+ 0x7E83, 0xE38D, // <cjk>
+ 0x7E88, 0xE392, // <cjk>
+ 0x7E89, 0xE393, // <cjk>
+ 0x7E8C, 0xE394, // <cjk>
+ 0x7E8E, 0xE39A, // <cjk>
+ 0x7E8F, 0x935A, // <cjk>
+ 0x7E90, 0xE396, // <cjk>
+ 0x7E92, 0xE395, // <cjk>
+ 0x7E93, 0xE397, // <cjk>
+ 0x7E94, 0xE398, // <cjk>
+ 0x7E96, 0xE399, // <cjk>
+ 0x7E9B, 0xE39B, // <cjk>
+ 0x7E9C, 0xE39C, // <cjk>
+ 0x7F36, 0x8ACA, // <cjk>
+ 0x7F38, 0xE39D, // <cjk>
+ 0x7F3A, 0xE39E, // <cjk>
+ 0x7F45, 0xE39F, // <cjk>
+ 0x7F4C, 0xE3A0, // <cjk>
+ 0x7F4D, 0xE3A1, // <cjk>
+ 0x7F4E, 0xE3A2, // <cjk>
+ 0x7F50, 0xE3A3, // <cjk>
+ 0x7F51, 0xE3A4, // <cjk>
+ 0x7F54, 0xE3A6, // <cjk>
+ 0x7F55, 0xE3A5, // <cjk>
+ 0x7F58, 0xE3A7, // <cjk>
+ 0x7F5F, 0xE3A8, // <cjk>
+ 0x7F60, 0xE3A9, // <cjk>
+ 0x7F67, 0xE3AC, // <cjk>
+ 0x7F68, 0xE3AA, // <cjk>
+ 0x7F69, 0xE3AB, // <cjk>
+ 0x7F6A, 0x8DDF, // <cjk>
+ 0x7F6B, 0x8C72, // <cjk>
+ 0x7F6E, 0x9275, // <cjk>
+ 0x7F70, 0x94B1, // <cjk>
+ 0x7F72, 0x8F90, // <cjk>
+ 0x7F75, 0x946C, // <cjk>
+ 0x7F77, 0x94EB, // <cjk>
+ 0x7F78, 0xE3AD, // <cjk>
+ 0x7F79, 0x9CEB, // <cjk>
+ 0x7F82, 0xE3AE, // <cjk>
+ 0x7F83, 0xE3B0, // <cjk>
+ 0x7F85, 0x9785, // <cjk>
+ 0x7F86, 0xE3AF, // <cjk>
+ 0x7F87, 0xE3B2, // <cjk>
+ 0x7F88, 0xE3B1, // <cjk>
+ 0x7F8A, 0x9772, // <cjk>
+ 0x7F8C, 0xE3B3, // <cjk>
+ 0x7F8E, 0x94FC, // <cjk>
+ 0x7F94, 0xE3B4, // <cjk>
+ 0x7F9A, 0xE3B7, // <cjk>
+ 0x7F9D, 0xE3B6, // <cjk>
+ 0x7F9E, 0xE3B5, // <cjk>
+ 0x7FA3, 0xE3B8, // <cjk>
+ 0x7FA4, 0x8C51, // <cjk>
+ 0x7FA8, 0x9141, // <cjk>
+ 0x7FA9, 0x8B60, // <cjk>
+ 0x7FAE, 0xE3BC, // <cjk>
+ 0x7FAF, 0xE3B9, // <cjk>
+ 0x7FB2, 0xE3BA, // <cjk>
+ 0x7FB6, 0xE3BD, // <cjk>
+ 0x7FB8, 0xE3BE, // <cjk>
+ 0x7FB9, 0xE3BB, // <cjk>
+ 0x7FBD, 0x8948, // <cjk>
+ 0x7FC1, 0x89A5, // <cjk>
+ 0x7FC5, 0xE3C0, // <cjk>
+ 0x7FC6, 0xE3C1, // <cjk>
+ 0x7FCA, 0xE3C2, // <cjk>
+ 0x7FCC, 0x9782, // <cjk>
+ 0x7FD2, 0x8F4B, // <cjk>
+ 0x7FD4, 0xE3C4, // <cjk>
+ 0x7FD5, 0xE3C3, // <cjk>
+ 0x7FE0, 0x9089, // <cjk>
+ 0x7FE1, 0xE3C5, // <cjk>
+ 0x7FE6, 0xE3C6, // <cjk>
+ 0x7FE9, 0xE3C7, // <cjk>
+ 0x7FEB, 0x8AE3, // <cjk>
+ 0x7FF0, 0x8ACB, // <cjk>
+ 0x7FF3, 0xE3C8, // <cjk>
+ 0x7FF9, 0xE3C9, // <cjk>
+ 0x7FFB, 0x967C, // <cjk>
+ 0x7FFC, 0x9783, // <cjk>
+ 0x8000, 0x9773, // <cjk>
+ 0x8001, 0x9856, // <cjk>
+ 0x8003, 0x8D6C, // <cjk>
+ 0x8004, 0xE3CC, // <cjk>
+ 0x8005, 0x8ED2, // <cjk>
+ 0x8006, 0xE3CB, // <cjk>
+ 0x800B, 0xE3CD, // <cjk>
+ 0x800C, 0x8EA7, // <cjk>
+ 0x8010, 0x91CF, // <cjk>
+ 0x8012, 0xE3CE, // <cjk>
+ 0x8015, 0x8D6B, // <cjk>
+ 0x8017, 0x96D5, // <cjk>
+ 0x8018, 0xE3CF, // <cjk>
+ 0x8019, 0xE3D0, // <cjk>
+ 0x801C, 0xE3D1, // <cjk>
+ 0x8021, 0xE3D2, // <cjk>
+ 0x8028, 0xE3D3, // <cjk>
+ 0x8033, 0x8EA8, // <cjk>
+ 0x8036, 0x96EB, // <cjk>
+ 0x803B, 0xE3D5, // <cjk>
+ 0x803D, 0x925E, // <cjk>
+ 0x803F, 0xE3D4, // <cjk>
+ 0x8046, 0xE3D7, // <cjk>
+ 0x804A, 0xE3D6, // <cjk>
+ 0x8052, 0xE3D8, // <cjk>
+ 0x8056, 0x90B9, // <cjk>
+ 0x8058, 0xE3D9, // <cjk>
+ 0x805A, 0xE3DA, // <cjk>
+ 0x805E, 0x95B7, // <cjk>
+ 0x805F, 0xE3DB, // <cjk>
+ 0x8061, 0x918F, // <cjk>
+ 0x8062, 0xE3DC, // <cjk>
+ 0x8068, 0xE3DD, // <cjk>
+ 0x806F, 0x97FC, // <cjk>
+ 0x8070, 0xE3E0, // <cjk>
+ 0x8072, 0xE3DF, // <cjk>
+ 0x8073, 0xE3DE, // <cjk>
+ 0x8074, 0x92AE, // <cjk>
+ 0x8076, 0xE3E1, // <cjk>
+ 0x8077, 0x9045, // <cjk>
+ 0x8079, 0xE3E2, // <cjk>
+ 0x807D, 0xE3E3, // <cjk>
+ 0x807E, 0x9857, // <cjk>
+ 0x807F, 0xE3E4, // <cjk>
+ 0x8084, 0xE3E5, // <cjk>
+ 0x8085, 0xE3E7, // <cjk>
+ 0x8086, 0xE3E6, // <cjk>
+ 0x8087, 0x94A3, // <cjk>
+ 0x8089, 0x93F7, // <cjk>
+ 0x808B, 0x985D, // <cjk>
+ 0x808C, 0x94A7, // <cjk>
+ 0x8093, 0xE3E9, // <cjk>
+ 0x8096, 0x8FD1, // <cjk>
+ 0x8098, 0x9549, // <cjk>
+ 0x809A, 0xE3EA, // <cjk>
+ 0x809B, 0xE3E8, // <cjk>
+ 0x809D, 0x8ACC, // <cjk>
+ 0x80A1, 0x8CD2, // <cjk>
+ 0x80A2, 0x8E88, // <cjk>
+ 0x80A5, 0x94EC, // <cjk>
+ 0x80A9, 0x8CA8, // <cjk>
+ 0x80AA, 0x9662, // <cjk>
+ 0x80AC, 0xE3ED, // <cjk>
+ 0x80AD, 0xE3EB, // <cjk>
+ 0x80AF, 0x8D6D, // <cjk>
+ 0x80B1, 0x8D6E, // <cjk>
+ 0x80B2, 0x88E7, // <cjk>
+ 0x80B4, 0x8DE6, // <cjk>
+ 0x80BA, 0x9478, // <cjk>
+ 0x80C3, 0x88DD, // <cjk>
+ 0x80C4, 0xE3F2, // <cjk>
+ 0x80C6, 0x925F, // <cjk>
+ 0x80CC, 0x9477, // <cjk>
+ 0x80CE, 0x91D9, // <cjk>
+ 0x80D6, 0xE3F4, // <cjk>
+ 0x80D9, 0xE3F0, // <cjk>
+ 0x80DA, 0xE3F3, // <cjk>
+ 0x80DB, 0xE3EE, // <cjk>
+ 0x80DD, 0xE3F1, // <cjk>
+ 0x80DE, 0x9645, // <cjk>
+ 0x80E1, 0x8CD3, // <cjk>
+ 0x80E4, 0x88FB, // <cjk>
+ 0x80E5, 0xE3EF, // <cjk>
+ 0x80EF, 0xE3F6, // <cjk>
+ 0x80F1, 0xE3F7, // <cjk>
+ 0x80F4, 0x93B7, // <cjk>
+ 0x80F8, 0x8BB9, // <cjk>
+ 0x80FC, 0xE445, // <cjk>
+ 0x80FD, 0x945C, // <cjk>
+ 0x8102, 0x8E89, // <cjk>
+ 0x8105, 0x8BBA, // <cjk>
+ 0x8106, 0x90C6, // <cjk>
+ 0x8107, 0x9865, // <cjk>
+ 0x8108, 0x96AC, // <cjk>
+ 0x8109, 0xE3F5, // <cjk>
+ 0x810A, 0x90D2, // <cjk>
+ 0x811A, 0x8B72, // <cjk>
+ 0x811B, 0xE3F8, // <cjk>
+ 0x8123, 0xE3FA, // <cjk>
+ 0x8129, 0xE3F9, // <cjk>
+ 0x812F, 0xE3FB, // <cjk>
+ 0x8131, 0x9245, // <cjk>
+ 0x8133, 0x945D, // <cjk>
+ 0x8139, 0x92AF, // <cjk>
+ 0x813E, 0xE442, // <cjk>
+ 0x8146, 0xE441, // <cjk>
+ 0x814B, 0xE3FC, // <cjk>
+ 0x814E, 0x9074, // <cjk>
+ 0x8150, 0x9585, // <cjk>
+ 0x8151, 0xE444, // <cjk>
+ 0x8153, 0xE443, // <cjk>
+ 0x8154, 0x8D6F, // <cjk>
+ 0x8155, 0x9872, // <cjk>
+ 0x815F, 0xE454, // <cjk>
+ 0x8165, 0xE448, // <cjk>
+ 0x8166, 0xE449, // <cjk>
+ 0x816B, 0x8EEE, // <cjk>
+ 0x816E, 0xE447, // <cjk>
+ 0x8170, 0x8D98, // <cjk>
+ 0x8171, 0xE446, // <cjk>
+ 0x8174, 0xE44A, // <cjk>
+ 0x8178, 0x92B0, // <cjk>
+ 0x8179, 0x95A0, // <cjk>
+ 0x817A, 0x9142, // <cjk>
+ 0x817F, 0x91DA, // <cjk>
+ 0x8180, 0xE44E, // <cjk>
+ 0x8182, 0xE44F, // <cjk>
+ 0x8183, 0xE44B, // <cjk>
+ 0x8188, 0xE44C, // <cjk>
+ 0x818A, 0xE44D, // <cjk>
+ 0x818F, 0x8D70, // <cjk>
+ 0x8193, 0xE455, // <cjk>
+ 0x8195, 0xE451, // <cjk>
+ 0x819A, 0x9586, // <cjk>
+ 0x819C, 0x968C, // <cjk>
+ 0x819D, 0x9547, // <cjk>
+ 0x81A0, 0xE450, // <cjk>
+ 0x81A3, 0xE453, // <cjk>
+ 0x81A4, 0xE452, // <cjk>
+ 0x81A8, 0x9663, // <cjk>
+ 0x81A9, 0xE456, // <cjk>
+ 0x81B0, 0xE457, // <cjk>
+ 0x81B3, 0x9156, // <cjk>
+ 0x81B5, 0xE458, // <cjk>
+ 0x81B8, 0xE45A, // <cjk>
+ 0x81BA, 0xE45E, // <cjk>
+ 0x81BE, 0xE459, // <cjk>
+ 0x81BF, 0x945E, // <cjk>
+ 0x81C0, 0xE45C, // <cjk>
+ 0x81C2, 0xE45D, // <cjk>
+ 0x81C6, 0x89B0, // <cjk>
+ 0x81C8, 0xE464, // <cjk>
+ 0x81C9, 0xE45F, // <cjk>
+ 0x81CD, 0xE460, // <cjk>
+ 0x81D1, 0xE461, // <cjk>
+ 0x81D3, 0x919F, // <cjk>
+ 0x81D8, 0xE463, // <cjk>
+ 0x81D9, 0xE462, // <cjk>
+ 0x81DA, 0xE465, // <cjk>
+ 0x81DF, 0xE466, // <cjk>
+ 0x81E0, 0xE467, // <cjk>
+ 0x81E3, 0x9062, // <cjk>
+ 0x81E5, 0x89E7, // <cjk>
+ 0x81E7, 0xE468, // <cjk>
+ 0x81E8, 0x97D5, // <cjk>
+ 0x81EA, 0x8EA9, // <cjk>
+ 0x81ED, 0x8F4C, // <cjk>
+ 0x81F3, 0x8E8A, // <cjk>
+ 0x81F4, 0x9276, // <cjk>
+ 0x81FA, 0xE469, // <cjk>
+ 0x81FB, 0xE46A, // <cjk>
+ 0x81FC, 0x8950, // <cjk>
+ 0x81FE, 0xE46B, // <cjk>
+ 0x8201, 0xE46C, // <cjk>
+ 0x8202, 0xE46D, // <cjk>
+ 0x8205, 0xE46E, // <cjk>
+ 0x8207, 0xE46F, // <cjk>
+ 0x8208, 0x8BBB, // <cjk>
+ 0x8209, 0x9DA8, // <cjk>
+ 0x820A, 0xE470, // <cjk>
+ 0x820C, 0x90E3, // <cjk>
+ 0x820D, 0xE471, // <cjk>
+ 0x820E, 0x8EC9, // <cjk>
+ 0x8210, 0xE472, // <cjk>
+ 0x8212, 0x98AE, // <cjk>
+ 0x8216, 0xE473, // <cjk>
+ 0x8217, 0x95DC, // <cjk>
+ 0x8218, 0x8ADA, // <cjk>
+ 0x821B, 0x9143, // <cjk>
+ 0x821C, 0x8F77, // <cjk>
+ 0x821E, 0x9591, // <cjk>
+ 0x821F, 0x8F4D, // <cjk>
+ 0x8229, 0xE474, // <cjk>
+ 0x822A, 0x8D71, // <cjk>
+ 0x822B, 0xE475, // <cjk>
+ 0x822C, 0x94CA, // <cjk>
+ 0x822E, 0xE484, // <cjk>
+ 0x8233, 0xE477, // <cjk>
+ 0x8235, 0x91C7, // <cjk>
+ 0x8236, 0x9495, // <cjk>
+ 0x8237, 0x8CBD, // <cjk>
+ 0x8238, 0xE476, // <cjk>
+ 0x8239, 0x9144, // <cjk>
+ 0x8240, 0xE478, // <cjk>
+ 0x8247, 0x92F8, // <cjk>
+ 0x8258, 0xE47A, // <cjk>
+ 0x8259, 0xE479, // <cjk>
+ 0x825A, 0xE47C, // <cjk>
+ 0x825D, 0xE47B, // <cjk>
+ 0x825F, 0xE47D, // <cjk>
+ 0x8262, 0xE480, // <cjk>
+ 0x8264, 0xE47E, // <cjk>
+ 0x8266, 0x8ACD, // <cjk>
+ 0x8268, 0xE481, // <cjk>
+ 0x826A, 0xE482, // <cjk>
+ 0x826B, 0xE483, // <cjk>
+ 0x826E, 0x8DAF, // <cjk>
+ 0x826F, 0x97C7, // <cjk>
+ 0x8271, 0xE485, // <cjk>
+ 0x8272, 0x9046, // <cjk>
+ 0x8276, 0x8990, // <cjk>
+ 0x8277, 0xE486, // <cjk>
+ 0x8278, 0xE487, // <cjk>
+ 0x827E, 0xE488, // <cjk>
+ 0x828B, 0x88F0, // <cjk>
+ 0x828D, 0xE489, // <cjk>
+ 0x8292, 0xE48A, // <cjk>
+ 0x8299, 0x9587, // <cjk>
+ 0x829D, 0x8EC5, // <cjk>
+ 0x829F, 0xE48C, // <cjk>
+ 0x82A5, 0x8A48, // <cjk>
+ 0x82A6, 0x88B0, // <cjk>
+ 0x82AB, 0xE48B, // <cjk>
+ 0x82AC, 0xE48E, // <cjk>
+ 0x82AD, 0x946D, // <cjk>
+ 0x82AF, 0x9063, // <cjk>
+ 0x82B1, 0x89D4, // <cjk>
+ 0x82B3, 0x9646, // <cjk>
+ 0x82B8, 0x8C7C, // <cjk>
+ 0x82B9, 0x8BDA, // <cjk>
+ 0x82BB, 0xE48D, // <cjk>
+ 0x82BD, 0x89E8, // <cjk>
+ 0x82C5, 0x8AA1, // <cjk>
+ 0x82D1, 0x8991, // <cjk>
+ 0x82D2, 0xE492, // <cjk>
+ 0x82D3, 0x97E8, // <cjk>
+ 0x82D4, 0x91DB, // <cjk>
+ 0x82D7, 0x9563, // <cjk>
+ 0x82D9, 0xE49E, // <cjk>
+ 0x82DB, 0x89D5, // <cjk>
+ 0x82DC, 0xE49C, // <cjk>
+ 0x82DE, 0xE49A, // <cjk>
+ 0x82DF, 0xE491, // <cjk>
+ 0x82E1, 0xE48F, // <cjk>
+ 0x82E3, 0xE490, // <cjk>
+ 0x82E5, 0x8EE1, // <cjk>
+ 0x82E6, 0x8BEA, // <cjk>
+ 0x82E7, 0x9297, // <cjk>
+ 0x82EB, 0x93CF, // <cjk>
+ 0x82F1, 0x8970, // <cjk>
+ 0x82F3, 0xE494, // <cjk>
+ 0x82F4, 0xE493, // <cjk>
+ 0x82F9, 0xE499, // <cjk>
+ 0x82FA, 0xE495, // <cjk>
+ 0x82FB, 0xE498, // <cjk>
+ 0x8302, 0x96CE, // <cjk>
+ 0x8303, 0xE497, // <cjk>
+ 0x8304, 0x89D6, // <cjk>
+ 0x8305, 0x8A9D, // <cjk>
+ 0x8306, 0xE49B, // <cjk>
+ 0x8309, 0xE49D, // <cjk>
+ 0x830E, 0x8C73, // <cjk>
+ 0x8316, 0xE4A1, // <cjk>
+ 0x8317, 0xE4AA, // <cjk>
+ 0x8318, 0xE4AB, // <cjk>
+ 0x831C, 0x88A9, // <cjk>
+ 0x8323, 0xE4B2, // <cjk>
+ 0x8328, 0x88EF, // <cjk>
+ 0x832B, 0xE4A9, // <cjk>
+ 0x832F, 0xE4A8, // <cjk>
+ 0x8331, 0xE4A3, // <cjk>
+ 0x8332, 0xE4A2, // <cjk>
+ 0x8334, 0xE4A0, // <cjk>
+ 0x8335, 0xE49F, // <cjk>
+ 0x8336, 0x9283, // <cjk>
+ 0x8338, 0x91F9, // <cjk>
+ 0x8339, 0xE4A5, // <cjk>
+ 0x8340, 0xE4A4, // <cjk>
+ 0x8345, 0xE4A7, // <cjk>
+ 0x8349, 0x9190, // <cjk>
+ 0x834A, 0x8C74, // <cjk>
+ 0x834F, 0x8960, // <cjk>
+ 0x8350, 0xE4A6, // <cjk>
+ 0x8352, 0x8D72, // <cjk>
+ 0x8358, 0x9191, // <cjk>
+ 0x8373, 0xE4B8, // <cjk>
+ 0x8375, 0xE4B9, // <cjk>
+ 0x8377, 0x89D7, // <cjk>
+ 0x837B, 0x89AC, // <cjk>
+ 0x837C, 0xE4B6, // <cjk>
+ 0x8385, 0xE4AC, // <cjk>
+ 0x8387, 0xE4B4, // <cjk>
+ 0x8389, 0xE4BB, // <cjk>
+ 0x838A, 0xE4B5, // <cjk>
+ 0x838E, 0xE4B3, // <cjk>
+ 0x8393, 0xE496, // <cjk>
+ 0x8396, 0xE4B1, // <cjk>
+ 0x839A, 0xE4AD, // <cjk>
+ 0x839E, 0x8ACE, // <cjk>
+ 0x839F, 0xE4AF, // <cjk>
+ 0x83A0, 0xE4BA, // <cjk>
+ 0x83A2, 0xE4B0, // <cjk>
+ 0x83A8, 0xE4BC, // <cjk>
+ 0x83AA, 0xE4AE, // <cjk>
+ 0x83AB, 0x949C, // <cjk>
+ 0x83B1, 0x9789, // <cjk>
+ 0x83B5, 0xE4B7, // <cjk>
+ 0x83BD, 0xE4CD, // <cjk>
+ 0x83C1, 0xE4C5, // <cjk>
+ 0x83C5, 0x909B, // <cjk>
+ 0x83CA, 0x8B65, // <cjk>
+ 0x83CC, 0x8BDB, // <cjk>
+ 0x83CE, 0xE4C0, // <cjk>
+ 0x83D3, 0x89D9, // <cjk>
+ 0x83D6, 0x8FD2, // <cjk>
+ 0x83D8, 0xE4C3, // <cjk>
+ 0x83DC, 0x8DD8, // <cjk>
+ 0x83DF, 0x9370, // <cjk>
+ 0x83E0, 0xE4C8, // <cjk>
+ 0x83E9, 0x95EC, // <cjk>
+ 0x83EB, 0xE4BF, // <cjk>
+ 0x83EF, 0x89D8, // <cjk>
+ 0x83F0, 0x8CD4, // <cjk>
+ 0x83F1, 0x9548, // <cjk>
+ 0x83F2, 0xE4C9, // <cjk>
+ 0x83F4, 0xE4BD, // <cjk>
+ 0x83F7, 0xE4C6, // <cjk>
+ 0x83FB, 0xE4D0, // <cjk>
+ 0x83FD, 0xE4C1, // <cjk>
+ 0x8403, 0xE4C2, // <cjk>
+ 0x8404, 0x93B8, // <cjk>
+ 0x8407, 0xE4C7, // <cjk>
+ 0x840B, 0xE4C4, // <cjk>
+ 0x840C, 0x9647, // <cjk>
+ 0x840D, 0xE4CA, // <cjk>
+ 0x840E, 0x88DE, // <cjk>
+ 0x8413, 0xE4BE, // <cjk>
+ 0x8420, 0xE4CC, // <cjk>
+ 0x8422, 0xE4CB, // <cjk>
+ 0x8429, 0x948B, // <cjk>
+ 0x842A, 0xE4D2, // <cjk>
+ 0x842C, 0xE4DD, // <cjk>
+ 0x8431, 0x8A9E, // <cjk>
+ 0x8435, 0xE4E0, // <cjk>
+ 0x8438, 0xE4CE, // <cjk>
+ 0x843C, 0xE4D3, // <cjk>
+ 0x843D, 0x978E, // <cjk>
+ 0x8446, 0xE4DC, // <cjk>
+ 0x8449, 0x9774, // <cjk>
+ 0x844E, 0x97A8, // <cjk>
+ 0x8457, 0x9298, // <cjk>
+ 0x845B, 0x8A8B, // <cjk>
+ 0x8461, 0x9592, // <cjk>
+ 0x8462, 0xE4E2, // <cjk>
+ 0x8463, 0x939F, // <cjk>
+ 0x8466, 0x88AF, // <cjk>
+ 0x8469, 0xE4DB, // <cjk>
+ 0x846B, 0xE4D7, // <cjk>
+ 0x846C, 0x9192, // <cjk>
+ 0x846D, 0xE4D1, // <cjk>
+ 0x846E, 0xE4D9, // <cjk>
+ 0x846F, 0xE4DE, // <cjk>
+ 0x8471, 0x944B, // <cjk>
+ 0x8475, 0x88A8, // <cjk>
+ 0x8477, 0xE4D6, // <cjk>
+ 0x8479, 0xE4DF, // <cjk>
+ 0x847A, 0x9598, // <cjk>
+ 0x8482, 0xE4DA, // <cjk>
+ 0x8484, 0xE4D5, // <cjk>
+ 0x848B, 0x8FD3, // <cjk>
+ 0x8490, 0x8F4E, // <cjk>
+ 0x8494, 0x8EAA, // <cjk>
+ 0x8499, 0x96D6, // <cjk>
+ 0x849C, 0x9566, // <cjk>
+ 0x849F, 0xE4E5, // <cjk>
+ 0x84A1, 0xE4EE, // <cjk>
+ 0x84AD, 0xE4D8, // <cjk>
+ 0x84B2, 0x8A97, // <cjk>
+ 0x84B8, 0x8FF6, // <cjk>
+ 0x84B9, 0xE4E3, // <cjk>
+ 0x84BB, 0xE4E8, // <cjk>
+ 0x84BC, 0x9193, // <cjk>
+ 0x84BF, 0xE4E4, // <cjk>
+ 0x84C1, 0xE4EB, // <cjk>
+ 0x84C4, 0x927E, // <cjk>
+ 0x84C6, 0xE4EC, // <cjk>
+ 0x84C9, 0x9775, // <cjk>
+ 0x84CA, 0xE4E1, // <cjk>
+ 0x84CB, 0x8A57, // <cjk>
+ 0x84CD, 0xE4E7, // <cjk>
+ 0x84D0, 0xE4EA, // <cjk>
+ 0x84D1, 0x96AA, // <cjk>
+ 0x84D6, 0xE4ED, // <cjk>
+ 0x84D9, 0xE4E6, // <cjk>
+ 0x84DA, 0xE4E9, // <cjk>
+ 0x84EC, 0x9648, // <cjk>
+ 0x84EE, 0x9840, // <cjk>
+ 0x84F4, 0xE4F1, // <cjk>
+ 0x84FC, 0xE4F8, // <cjk>
+ 0x84FF, 0xE4F0, // <cjk>
+ 0x8500, 0x8EC1, // <cjk>
+ 0x8506, 0xE4CF, // <cjk>
+ 0x8511, 0x95CC, // <cjk>
+ 0x8513, 0x96A0, // <cjk>
+ 0x8514, 0xE4F7, // <cjk>
+ 0x8515, 0xE4F6, // <cjk>
+ 0x8517, 0xE4F2, // <cjk>
+ 0x8518, 0xE4F3, // <cjk>
+ 0x851A, 0x8955, // <cjk>
+ 0x851F, 0xE4F5, // <cjk>
+ 0x8521, 0xE4EF, // <cjk>
+ 0x8526, 0x92D3, // <cjk>
+ 0x852C, 0xE4F4, // <cjk>
+ 0x852D, 0x88FC, // <cjk>
+ 0x8535, 0x91A0, // <cjk>
+ 0x853D, 0x95C1, // <cjk>
+ 0x8540, 0xE4F9, // <cjk>
+ 0x8541, 0xE540, // <cjk>
+ 0x8543, 0x94D7, // <cjk>
+ 0x8548, 0xE4FC, // <cjk>
+ 0x8549, 0x8FD4, // <cjk>
+ 0x854A, 0x8EC7, // <cjk>
+ 0x854B, 0xE542, // <cjk>
+ 0x854E, 0x8BBC, // <cjk>
+ 0x8555, 0xE543, // <cjk>
+ 0x8557, 0x9599, // <cjk>
+ 0x8558, 0xE4FB, // <cjk>
+ 0x855A, 0xE4D4, // <cjk>
+ 0x8563, 0xE4FA, // <cjk>
+ 0x8568, 0x986E, // <cjk>
+ 0x8569, 0x93A0, // <cjk>
+ 0x856A, 0x9593, // <cjk>
+ 0x856D, 0xE54A, // <cjk>
+ 0x8577, 0xE550, // <cjk>
+ 0x857E, 0xE551, // <cjk>
+ 0x8580, 0xE544, // <cjk>
+ 0x8584, 0x9496, // <cjk>
+ 0x8587, 0xE54E, // <cjk>
+ 0x8588, 0xE546, // <cjk>
+ 0x858A, 0xE548, // <cjk>
+ 0x8590, 0xE552, // <cjk>
+ 0x8591, 0xE547, // <cjk>
+ 0x8594, 0xE54B, // <cjk>
+ 0x8597, 0x8992, // <cjk>
+ 0x8599, 0x93E3, // <cjk>
+ 0x859B, 0xE54C, // <cjk>
+ 0x859C, 0xE54F, // <cjk>
+ 0x85A4, 0xE545, // <cjk>
+ 0x85A6, 0x9145, // <cjk>
+ 0x85A8, 0xE549, // <cjk>
+ 0x85A9, 0x8E46, // <cjk>
+ 0x85AA, 0x9064, // <cjk>
+ 0x85AB, 0x8C4F, // <cjk>
+ 0x85AC, 0x96F2, // <cjk>
+ 0x85AE, 0x96F7, // <cjk>
+ 0x85AF, 0x8F92, // <cjk>
+ 0x85B9, 0xE556, // <cjk>
+ 0x85BA, 0xE554, // <cjk>
+ 0x85C1, 0x986D, // <cjk>
+ 0x85C9, 0xE553, // <cjk>
+ 0x85CD, 0x9795, // <cjk>
+ 0x85CF, 0xE555, // <cjk>
+ 0x85D0, 0xE557, // <cjk>
+ 0x85D5, 0xE558, // <cjk>
+ 0x85DD, 0xE559, // <cjk>
+ 0x85E4, 0x93A1, // <cjk>
+ 0x85E5, 0xE55A, // <cjk>
+ 0x85E9, 0x94CB, // <cjk>
+ 0x85EA, 0xE54D, // <cjk>
+ 0x85F7, 0x8F93, // <cjk>
+ 0x85F9, 0xE55C, // <cjk>
+ 0x85FA, 0xE561, // <cjk>
+ 0x85FB, 0x9194, // <cjk>
+ 0x85FE, 0xE560, // <cjk>
+ 0x8602, 0xE541, // <cjk>
+ 0x8606, 0xE562, // <cjk>
+ 0x8607, 0x9168, // <cjk>
+ 0x860A, 0xE55D, // <cjk>
+ 0x860B, 0xE55F, // <cjk>
+ 0x8613, 0xE55E, // <cjk>
+ 0x8616, 0x9F50, // <cjk>
+ 0x8617, 0x9F41, // <cjk>
+ 0x861A, 0xE564, // <cjk>
+ 0x8622, 0xE563, // <cjk>
+ 0x862D, 0x9796, // <cjk>
+ 0x862F, 0xE1BA, // <cjk>
+ 0x8630, 0xE565, // <cjk>
+ 0x863F, 0xE566, // <cjk>
+ 0x864D, 0xE567, // <cjk>
+ 0x864E, 0x8CD5, // <cjk>
+ 0x8650, 0x8B73, // <cjk>
+ 0x8654, 0xE569, // <cjk>
+ 0x8655, 0x997C, // <cjk>
+ 0x865A, 0x8B95, // <cjk>
+ 0x865C, 0x97B8, // <cjk>
+ 0x865E, 0x8BF1, // <cjk>
+ 0x865F, 0xE56A, // <cjk>
+ 0x8667, 0xE56B, // <cjk>
+ 0x866B, 0x928E, // <cjk>
+ 0x8671, 0xE56C, // <cjk>
+ 0x8679, 0x93F8, // <cjk>
+ 0x867B, 0x88B8, // <cjk>
+ 0x868A, 0x89E1, // <cjk>
+ 0x868B, 0xE571, // <cjk>
+ 0x868C, 0xE572, // <cjk>
+ 0x8693, 0xE56D, // <cjk>
+ 0x8695, 0x8E5C, // <cjk>
+ 0x86A3, 0xE56E, // <cjk>
+ 0x86A4, 0x9461, // <cjk>
+ 0x86A9, 0xE56F, // <cjk>
+ 0x86AA, 0xE570, // <cjk>
+ 0x86AB, 0xE57A, // <cjk>
+ 0x86AF, 0xE574, // <cjk>
+ 0x86B0, 0xE577, // <cjk>
+ 0x86B6, 0xE573, // <cjk>
+ 0x86C4, 0xE575, // <cjk>
+ 0x86C6, 0xE576, // <cjk>
+ 0x86C7, 0x8ED6, // <cjk>
+ 0x86C9, 0xE578, // <cjk>
+ 0x86CB, 0x9260, // <cjk>
+ 0x86CD, 0x8C75, // <cjk>
+ 0x86CE, 0x8A61, // <cjk>
+ 0x86D4, 0xE57B, // <cjk>
+ 0x86D9, 0x8A5E, // <cjk>
+ 0x86DB, 0xE581, // <cjk>
+ 0x86DE, 0xE57C, // <cjk>
+ 0x86DF, 0xE580, // <cjk>
+ 0x86E4, 0x94B8, // <cjk>
+ 0x86E9, 0xE57D, // <cjk>
+ 0x86EC, 0xE57E, // <cjk>
+ 0x86ED, 0x9567, // <cjk>
+ 0x86EE, 0x94D8, // <cjk>
+ 0x86EF, 0xE582, // <cjk>
+ 0x86F8, 0x91FB, // <cjk>
+ 0x86F9, 0xE58C, // <cjk>
+ 0x86FB, 0xE588, // <cjk>
+ 0x86FE, 0x89E9, // <cjk>
+ 0x8700, 0xE586, // <cjk>
+ 0x8702, 0x9649, // <cjk>
+ 0x8703, 0xE587, // <cjk>
+ 0x8706, 0xE584, // <cjk>
+ 0x8708, 0xE585, // <cjk>
+ 0x8709, 0xE58A, // <cjk>
+ 0x870A, 0xE58D, // <cjk>
+ 0x870D, 0xE58B, // <cjk>
+ 0x8711, 0xE589, // <cjk>
+ 0x8712, 0xE583, // <cjk>
+ 0x8718, 0x9277, // <cjk>
+ 0x871A, 0xE594, // <cjk>
+ 0x871C, 0x96A8, // <cjk>
+ 0x8725, 0xE592, // <cjk>
+ 0x8729, 0xE593, // <cjk>
+ 0x8734, 0xE58E, // <cjk>
+ 0x8737, 0xE590, // <cjk>
+ 0x873B, 0xE591, // <cjk>
+ 0x873F, 0xE58F, // <cjk>
+ 0x8749, 0x90E4, // <cjk>
+ 0x874B, 0x9858, // <cjk>
+ 0x874C, 0xE598, // <cjk>
+ 0x874E, 0xE599, // <cjk>
+ 0x8753, 0xE59F, // <cjk>
+ 0x8755, 0x9049, // <cjk>
+ 0x8757, 0xE59B, // <cjk>
+ 0x8759, 0xE59E, // <cjk>
+ 0x875F, 0xE596, // <cjk>
+ 0x8760, 0xE595, // <cjk>
+ 0x8763, 0xE5A0, // <cjk>
+ 0x8766, 0x89DA, // <cjk>
+ 0x8768, 0xE59C, // <cjk>
+ 0x876A, 0xE5A1, // <cjk>
+ 0x876E, 0xE59D, // <cjk>
+ 0x8774, 0xE59A, // <cjk>
+ 0x8776, 0x92B1, // <cjk>
+ 0x8778, 0xE597, // <cjk>
+ 0x877F, 0x9488, // <cjk>
+ 0x8782, 0xE5A5, // <cjk>
+ 0x878D, 0x975A, // <cjk>
+ 0x879F, 0xE5A4, // <cjk>
+ 0x87A2, 0xE5A3, // <cjk>
+ 0x87AB, 0xE5AC, // <cjk>
+ 0x87AF, 0xE5A6, // <cjk>
+ 0x87B3, 0xE5AE, // <cjk>
+ 0x87BA, 0x9786, // <cjk>
+ 0x87BB, 0xE5B1, // <cjk>
+ 0x87BD, 0xE5A8, // <cjk>
+ 0x87C0, 0xE5A9, // <cjk>
+ 0x87C4, 0xE5AD, // <cjk>
+ 0x87C6, 0xE5B0, // <cjk>
+ 0x87C7, 0xE5AF, // <cjk>
+ 0x87CB, 0xE5A7, // <cjk>
+ 0x87D0, 0xE5AA, // <cjk>
+ 0x87D2, 0xE5BB, // <cjk>
+ 0x87E0, 0xE5B4, // <cjk>
+ 0x87EF, 0xE5B2, // <cjk>
+ 0x87F2, 0xE5B3, // <cjk>
+ 0x87F6, 0xE5B8, // <cjk>
+ 0x87F7, 0xE5B9, // <cjk>
+ 0x87F9, 0x8A49, // <cjk>
+ 0x87FB, 0x8B61, // <cjk>
+ 0x87FE, 0xE5B7, // <cjk>
+ 0x8805, 0xE5A2, // <cjk>
+ 0x880D, 0xE5B6, // <cjk>
+ 0x880E, 0xE5BA, // <cjk>
+ 0x880F, 0xE5B5, // <cjk>
+ 0x8811, 0xE5BC, // <cjk>
+ 0x8815, 0xE5BE, // <cjk>
+ 0x8816, 0xE5BD, // <cjk>
+ 0x8821, 0xE5C0, // <cjk>
+ 0x8822, 0xE5BF, // <cjk>
+ 0x8823, 0xE579, // <cjk>
+ 0x8827, 0xE5C4, // <cjk>
+ 0x8831, 0xE5C1, // <cjk>
+ 0x8836, 0xE5C2, // <cjk>
+ 0x8839, 0xE5C3, // <cjk>
+ 0x883B, 0xE5C5, // <cjk>
+ 0x8840, 0x8C8C, // <cjk>
+ 0x8842, 0xE5C7, // <cjk>
+ 0x8844, 0xE5C6, // <cjk>
+ 0x8846, 0x8F4F, // <cjk>
+ 0x884C, 0x8D73, // <cjk>
+ 0x884D, 0x9FA5, // <cjk>
+ 0x8852, 0xE5C8, // <cjk>
+ 0x8853, 0x8F70, // <cjk>
+ 0x8857, 0x8A58, // <cjk>
+ 0x8859, 0xE5C9, // <cjk>
+ 0x885B, 0x8971, // <cjk>
+ 0x885D, 0x8FD5, // <cjk>
+ 0x885E, 0xE5CA, // <cjk>
+ 0x8861, 0x8D74, // <cjk>
+ 0x8862, 0xE5CB, // <cjk>
+ 0x8863, 0x88DF, // <cjk>
+ 0x8868, 0x955C, // <cjk>
+ 0x886B, 0xE5CC, // <cjk>
+ 0x8870, 0x908A, // <cjk>
+ 0x8872, 0xE5D3, // <cjk>
+ 0x8875, 0xE5D0, // <cjk>
+ 0x8877, 0x928F, // <cjk>
+ 0x887D, 0xE5D1, // <cjk>
+ 0x887E, 0xE5CE, // <cjk>
+ 0x887F, 0x8BDC, // <cjk>
+ 0x8881, 0xE5CD, // <cjk>
+ 0x8882, 0xE5D4, // <cjk>
+ 0x8888, 0x8C55, // <cjk>
+ 0x888B, 0x91DC, // <cjk>
+ 0x888D, 0xE5DA, // <cjk>
+ 0x8892, 0xE5D6, // <cjk>
+ 0x8896, 0x91B3, // <cjk>
+ 0x8897, 0xE5D5, // <cjk>
+ 0x8899, 0xE5D8, // <cjk>
+ 0x889E, 0xE5CF, // <cjk>
+ 0x88A2, 0xE5D9, // <cjk>
+ 0x88A4, 0xE5DB, // <cjk>
+ 0x88AB, 0x94ED, // <cjk>
+ 0x88AE, 0xE5D7, // <cjk>
+ 0x88B0, 0xE5DC, // <cjk>
+ 0x88B1, 0xE5DE, // <cjk>
+ 0x88B4, 0x8CD1, // <cjk>
+ 0x88B5, 0xE5D2, // <cjk>
+ 0x88B7, 0x88BF, // <cjk>
+ 0x88BF, 0xE5DD, // <cjk>
+ 0x88C1, 0x8DD9, // <cjk>
+ 0x88C2, 0x97F4, // <cjk>
+ 0x88C3, 0xE5DF, // <cjk>
+ 0x88C4, 0xE5E0, // <cjk>
+ 0x88C5, 0x9195, // <cjk>
+ 0x88CF, 0x97A0, // <cjk>
+ 0x88D4, 0xE5E1, // <cjk>
+ 0x88D5, 0x9754, // <cjk>
+ 0x88D8, 0xE5E2, // <cjk>
+ 0x88D9, 0xE5E3, // <cjk>
+ 0x88DC, 0x95E2, // <cjk>
+ 0x88DD, 0xE5E4, // <cjk>
+ 0x88DF, 0x8DBE, // <cjk>
+ 0x88E1, 0x97A1, // <cjk>
+ 0x88E8, 0xE5E9, // <cjk>
+ 0x88F2, 0xE5EA, // <cjk>
+ 0x88F3, 0x8FD6, // <cjk>
+ 0x88F4, 0xE5E8, // <cjk>
+ 0x88F8, 0x9787, // <cjk>
+ 0x88F9, 0xE5E5, // <cjk>
+ 0x88FC, 0xE5E7, // <cjk>
+ 0x88FD, 0x90BB, // <cjk>
+ 0x88FE, 0x909E, // <cjk>
+ 0x8902, 0xE5E6, // <cjk>
+ 0x8904, 0xE5EB, // <cjk>
+ 0x8907, 0x95A1, // <cjk>
+ 0x890A, 0xE5ED, // <cjk>
+ 0x890C, 0xE5EC, // <cjk>
+ 0x8910, 0x8A8C, // <cjk>
+ 0x8912, 0x964A, // <cjk>
+ 0x8913, 0xE5EE, // <cjk>
+ 0x891D, 0xE5FA, // <cjk>
+ 0x891E, 0xE5F0, // <cjk>
+ 0x8925, 0xE5F1, // <cjk>
+ 0x892A, 0xE5F2, // <cjk>
+ 0x892B, 0xE5F3, // <cjk>
+ 0x8936, 0xE5F7, // <cjk>
+ 0x8938, 0xE5F8, // <cjk>
+ 0x893B, 0xE5F6, // <cjk>
+ 0x8941, 0xE5F4, // <cjk>
+ 0x8943, 0xE5EF, // <cjk>
+ 0x8944, 0xE5F5, // <cjk>
+ 0x894C, 0xE5F9, // <cjk>
+ 0x894D, 0xE8B5, // <cjk>
+ 0x8956, 0x89A6, // <cjk>
+ 0x895E, 0xE5FC, // <cjk>
+ 0x895F, 0x8BDD, // <cjk>
+ 0x8960, 0xE5FB, // <cjk>
+ 0x8964, 0xE641, // <cjk>
+ 0x8966, 0xE640, // <cjk>
+ 0x896A, 0xE643, // <cjk>
+ 0x896D, 0xE642, // <cjk>
+ 0x896F, 0xE644, // <cjk>
+ 0x8972, 0x8F50, // <cjk>
+ 0x8974, 0xE645, // <cjk>
+ 0x8977, 0xE646, // <cjk>
+ 0x897E, 0xE647, // <cjk>
+ 0x897F, 0x90BC, // <cjk>
+ 0x8981, 0x9776, // <cjk>
+ 0x8983, 0xE648, // <cjk>
+ 0x8986, 0x95A2, // <cjk>
+ 0x8987, 0x9465, // <cjk>
+ 0x8988, 0xE649, // <cjk>
+ 0x898A, 0xE64A, // <cjk>
+ 0x898B, 0x8CA9, // <cjk>
+ 0x898F, 0x8B4B, // <cjk>
+ 0x8993, 0xE64B, // <cjk>
+ 0x8996, 0x8E8B, // <cjk>
+ 0x8997, 0x9460, // <cjk>
+ 0x8998, 0xE64C, // <cjk>
+ 0x899A, 0x8A6F, // <cjk>
+ 0x89A1, 0xE64D, // <cjk>
+ 0x89A6, 0xE64F, // <cjk>
+ 0x89A7, 0x9797, // <cjk>
+ 0x89A9, 0xE64E, // <cjk>
+ 0x89AA, 0x9065, // <cjk>
+ 0x89AC, 0xE650, // <cjk>
+ 0x89AF, 0xE651, // <cjk>
+ 0x89B2, 0xE652, // <cjk>
+ 0x89B3, 0x8ACF, // <cjk>
+ 0x89BA, 0xE653, // <cjk>
+ 0x89BD, 0xE654, // <cjk>
+ 0x89BF, 0xE655, // <cjk>
+ 0x89C0, 0xE656, // <cjk>
+ 0x89D2, 0x8A70, // <cjk>
+ 0x89DA, 0xE657, // <cjk>
+ 0x89DC, 0xE658, // <cjk>
+ 0x89DD, 0xE659, // <cjk>
+ 0x89E3, 0x89F0, // <cjk>
+ 0x89E6, 0x9047, // <cjk>
+ 0x89E7, 0xE65A, // <cjk>
+ 0x89F8, 0xE65C, // <cjk>
+ 0x8A00, 0x8CBE, // <cjk>
+ 0x8A02, 0x92F9, // <cjk>
+ 0x8A03, 0xE65D, // <cjk>
+ 0x8A08, 0x8C76, // <cjk>
+ 0x8A0A, 0x9075, // <cjk>
+ 0x8A0C, 0xE660, // <cjk>
+ 0x8A0E, 0x93A2, // <cjk>
+ 0x8A10, 0xE65F, // <cjk>
+ 0x8A13, 0x8C50, // <cjk>
+ 0x8A16, 0xE65E, // <cjk>
+ 0x8A17, 0x91F5, // <cjk>
+ 0x8A18, 0x8B4C, // <cjk>
+ 0x8A1B, 0xE661, // <cjk>
+ 0x8A1D, 0xE662, // <cjk>
+ 0x8A1F, 0x8FD7, // <cjk>
+ 0x8A23, 0x8C8D, // <cjk>
+ 0x8A25, 0xE663, // <cjk>
+ 0x8A2A, 0x964B, // <cjk>
+ 0x8A2D, 0x90DD, // <cjk>
+ 0x8A31, 0x8B96, // <cjk>
+ 0x8A33, 0x96F3, // <cjk>
+ 0x8A34, 0x9169, // <cjk>
+ 0x8A36, 0xE664, // <cjk>
+ 0x8A3A, 0x9066, // <cjk>
+ 0x8A3B, 0x9290, // <cjk>
+ 0x8A3C, 0x8FD8, // <cjk>
+ 0x8A41, 0xE665, // <cjk>
+ 0x8A46, 0xE668, // <cjk>
+ 0x8A48, 0xE669, // <cjk>
+ 0x8A50, 0x8DBC, // <cjk>
+ 0x8A51, 0x91C0, // <cjk>
+ 0x8A52, 0xE667, // <cjk>
+ 0x8A54, 0x8FD9, // <cjk>
+ 0x8A55, 0x955D, // <cjk>
+ 0x8A5B, 0xE666, // <cjk>
+ 0x8A5E, 0x8E8C, // <cjk>
+ 0x8A60, 0x8972, // <cjk>
+ 0x8A62, 0xE66D, // <cjk>
+ 0x8A63, 0x8C77, // <cjk>
+ 0x8A66, 0x8E8E, // <cjk>
+ 0x8A69, 0x8E8D, // <cjk>
+ 0x8A6B, 0x986C, // <cjk>
+ 0x8A6C, 0xE66C, // <cjk>
+ 0x8A6D, 0xE66B, // <cjk>
+ 0x8A6E, 0x9146, // <cjk>
+ 0x8A70, 0x8B6C, // <cjk>
+ 0x8A71, 0x9862, // <cjk>
+ 0x8A72, 0x8A59, // <cjk>
+ 0x8A73, 0x8FDA, // <cjk>
+ 0x8A7C, 0xE66A, // <cjk>
+ 0x8A82, 0xE66F, // <cjk>
+ 0x8A84, 0xE670, // <cjk>
+ 0x8A85, 0xE66E, // <cjk>
+ 0x8A87, 0x8CD6, // <cjk>
+ 0x8A89, 0x975F, // <cjk>
+ 0x8A8C, 0x8E8F, // <cjk>
+ 0x8A8D, 0x9446, // <cjk>
+ 0x8A91, 0xE673, // <cjk>
+ 0x8A93, 0x90BE, // <cjk>
+ 0x8A95, 0x9261, // <cjk>
+ 0x8A98, 0x9755, // <cjk>
+ 0x8A9A, 0xE676, // <cjk>
+ 0x8A9E, 0x8CEA, // <cjk>
+ 0x8AA0, 0x90BD, // <cjk>
+ 0x8AA1, 0xE672, // <cjk>
+ 0x8AA3, 0xE677, // <cjk>
+ 0x8AA4, 0x8CEB, // <cjk>
+ 0x8AA5, 0xE674, // <cjk>
+ 0x8AA6, 0xE675, // <cjk>
+ 0x8AA8, 0xE671, // <cjk>
+ 0x8AAC, 0x90E0, // <cjk>
+ 0x8AAD, 0x93C7, // <cjk>
+ 0x8AB0, 0x924E, // <cjk>
+ 0x8AB2, 0x89DB, // <cjk>
+ 0x8AB9, 0x94EE, // <cjk>
+ 0x8ABC, 0x8B62, // <cjk>
+ 0x8ABF, 0x92B2, // <cjk>
+ 0x8AC2, 0xE67A, // <cjk>
+ 0x8AC4, 0xE678, // <cjk>
+ 0x8AC7, 0x926B, // <cjk>
+ 0x8ACB, 0x90BF, // <cjk>
+ 0x8ACC, 0x8AD0, // <cjk>
+ 0x8ACD, 0xE679, // <cjk>
+ 0x8ACF, 0x907A, // <cjk>
+ 0x8AD2, 0x97C8, // <cjk>
+ 0x8AD6, 0x985F, // <cjk>
+ 0x8ADA, 0xE67B, // <cjk>
+ 0x8ADB, 0xE687, // <cjk>
+ 0x8ADC, 0x92B3, // <cjk>
+ 0x8ADE, 0xE686, // <cjk>
+ 0x8AE0, 0xE683, // <cjk>
+ 0x8AE1, 0xE68B, // <cjk>
+ 0x8AE2, 0xE684, // <cjk>
+ 0x8AE4, 0xE680, // <cjk>
+ 0x8AE6, 0x92FA, // <cjk>
+ 0x8AE7, 0xE67E, // <cjk>
+ 0x8AEB, 0xE67C, // <cjk>
+ 0x8AED, 0x9740, // <cjk>
+ 0x8AEE, 0x8E90, // <cjk>
+ 0x8AF1, 0xE681, // <cjk>
+ 0x8AF3, 0xE67D, // <cjk>
+ 0x8AF7, 0xE685, // <cjk>
+ 0x8AF8, 0x8F94, // <cjk>
+ 0x8AFA, 0x8CBF, // <cjk>
+ 0x8AFE, 0x91F8, // <cjk>
+ 0x8B00, 0x9664, // <cjk>
+ 0x8B01, 0x8979, // <cjk>
+ 0x8B02, 0x88E0, // <cjk>
+ 0x8B04, 0x93A3, // <cjk>
+ 0x8B07, 0xE689, // <cjk>
+ 0x8B0C, 0xE688, // <cjk>
+ 0x8B0E, 0x93E4, // <cjk>
+ 0x8B10, 0xE68D, // <cjk>
+ 0x8B14, 0xE682, // <cjk>
+ 0x8B16, 0xE68C, // <cjk>
+ 0x8B17, 0xE68E, // <cjk>
+ 0x8B19, 0x8CAA, // <cjk>
+ 0x8B1A, 0xE68A, // <cjk>
+ 0x8B1B, 0x8D75, // <cjk>
+ 0x8B1D, 0x8ED3, // <cjk>
+ 0x8B20, 0xE68F, // <cjk>
+ 0x8B21, 0x9777, // <cjk>
+ 0x8B26, 0xE692, // <cjk>
+ 0x8B28, 0xE695, // <cjk>
+ 0x8B2B, 0xE693, // <cjk>
+ 0x8B2C, 0x9554, // <cjk>
+ 0x8B33, 0xE690, // <cjk>
+ 0x8B39, 0x8BDE, // <cjk>
+ 0x8B3E, 0xE694, // <cjk>
+ 0x8B41, 0xE696, // <cjk>
+ 0x8B49, 0xE69A, // <cjk>
+ 0x8B4C, 0xE697, // <cjk>
+ 0x8B4E, 0xE699, // <cjk>
+ 0x8B4F, 0xE698, // <cjk>
+ 0x8B56, 0xE69B, // <cjk>
+ 0x8B58, 0x8EAF, // <cjk>
+ 0x8B5A, 0xE69D, // <cjk>
+ 0x8B5B, 0xE69C, // <cjk>
+ 0x8B5C, 0x9588, // <cjk>
+ 0x8B5F, 0xE69F, // <cjk>
+ 0x8B66, 0x8C78, // <cjk>
+ 0x8B6B, 0xE69E, // <cjk>
+ 0x8B6C, 0xE6A0, // <cjk>
+ 0x8B6F, 0xE6A1, // <cjk>
+ 0x8B70, 0x8B63, // <cjk>
+ 0x8B71, 0xE3BF, // <cjk>
+ 0x8B72, 0x8FF7, // <cjk>
+ 0x8B74, 0xE6A2, // <cjk>
+ 0x8B77, 0x8CEC, // <cjk>
+ 0x8B7D, 0xE6A3, // <cjk>
+ 0x8B80, 0xE6A4, // <cjk>
+ 0x8B83, 0x8E5D, // <cjk>
+ 0x8B8A, 0x9DCC, // <cjk>
+ 0x8B8C, 0xE6A5, // <cjk>
+ 0x8B8E, 0xE6A6, // <cjk>
+ 0x8B90, 0x8F51, // <cjk>
+ 0x8B92, 0xE6A7, // <cjk>
+ 0x8B93, 0xE6A8, // <cjk>
+ 0x8B96, 0xE6A9, // <cjk>
+ 0x8B99, 0xE6AA, // <cjk>
+ 0x8B9A, 0xE6AB, // <cjk>
+ 0x8C37, 0x924A, // <cjk>
+ 0x8C3A, 0xE6AC, // <cjk>
+ 0x8C3F, 0xE6AE, // <cjk>
+ 0x8C41, 0xE6AD, // <cjk>
+ 0x8C46, 0x93A4, // <cjk>
+ 0x8C48, 0xE6AF, // <cjk>
+ 0x8C4A, 0x964C, // <cjk>
+ 0x8C4C, 0xE6B0, // <cjk>
+ 0x8C4E, 0xE6B1, // <cjk>
+ 0x8C50, 0xE6B2, // <cjk>
+ 0x8C55, 0xE6B3, // <cjk>
+ 0x8C5A, 0x93D8, // <cjk>
+ 0x8C61, 0x8FDB, // <cjk>
+ 0x8C62, 0xE6B4, // <cjk>
+ 0x8C6A, 0x8D8B, // <cjk>
+ 0x8C6B, 0x98AC, // <cjk>
+ 0x8C6C, 0xE6B5, // <cjk>
+ 0x8C78, 0xE6B6, // <cjk>
+ 0x8C79, 0x955E, // <cjk>
+ 0x8C7A, 0xE6B7, // <cjk>
+ 0x8C7C, 0xE6BF, // <cjk>
+ 0x8C82, 0xE6B8, // <cjk>
+ 0x8C85, 0xE6BA, // <cjk>
+ 0x8C89, 0xE6B9, // <cjk>
+ 0x8C8A, 0xE6BB, // <cjk>
+ 0x8C8C, 0x9665, // <cjk>
+ 0x8C8D, 0xE6BC, // <cjk>
+ 0x8C8E, 0xE6BD, // <cjk>
+ 0x8C94, 0xE6BE, // <cjk>
+ 0x8C98, 0xE6C0, // <cjk>
+ 0x8C9D, 0x8A4C, // <cjk>
+ 0x8C9E, 0x92E5, // <cjk>
+ 0x8CA0, 0x9589, // <cjk>
+ 0x8CA1, 0x8DE0, // <cjk>
+ 0x8CA2, 0x8D76, // <cjk>
+ 0x8CA7, 0x956E, // <cjk>
+ 0x8CA8, 0x89DD, // <cjk>
+ 0x8CA9, 0x94CC, // <cjk>
+ 0x8CAA, 0xE6C3, // <cjk>
+ 0x8CAB, 0x8AD1, // <cjk>
+ 0x8CAC, 0x90D3, // <cjk>
+ 0x8CAD, 0xE6C2, // <cjk>
+ 0x8CAE, 0xE6C7, // <cjk>
+ 0x8CAF, 0x9299, // <cjk>
+ 0x8CB0, 0x96E1, // <cjk>
+ 0x8CB2, 0xE6C5, // <cjk>
+ 0x8CB3, 0xE6C6, // <cjk>
+ 0x8CB4, 0x8B4D, // <cjk>
+ 0x8CB6, 0xE6C8, // <cjk>
+ 0x8CB7, 0x9483, // <cjk>
+ 0x8CB8, 0x91DD, // <cjk>
+ 0x8CBB, 0x94EF, // <cjk>
+ 0x8CBC, 0x935C, // <cjk>
+ 0x8CBD, 0xE6C4, // <cjk>
+ 0x8CBF, 0x9666, // <cjk>
+ 0x8CC0, 0x89EA, // <cjk>
+ 0x8CC1, 0xE6CA, // <cjk>
+ 0x8CC2, 0x9847, // <cjk>
+ 0x8CC3, 0x92C0, // <cjk>
+ 0x8CC4, 0x9864, // <cjk>
+ 0x8CC7, 0x8E91, // <cjk>
+ 0x8CC8, 0xE6C9, // <cjk>
+ 0x8CCA, 0x91AF, // <cjk>
+ 0x8CCD, 0xE6DA, // <cjk>
+ 0x8CCE, 0x9147, // <cjk>
+ 0x8CD1, 0x93F6, // <cjk>
+ 0x8CD3, 0x956F, // <cjk>
+ 0x8CDA, 0xE6CD, // <cjk>
+ 0x8CDB, 0x8E5E, // <cjk>
+ 0x8CDC, 0x8E92, // <cjk>
+ 0x8CDE, 0x8FDC, // <cjk>
+ 0x8CE0, 0x9485, // <cjk>
+ 0x8CE2, 0x8CAB, // <cjk>
+ 0x8CE3, 0xE6CC, // <cjk>
+ 0x8CE4, 0xE6CB, // <cjk>
+ 0x8CE6, 0x958A, // <cjk>
+ 0x8CEA, 0x8EBF, // <cjk>
+ 0x8CED, 0x9371, // <cjk>
+ 0x8CFA, 0xE6CF, // <cjk>
+ 0x8CFB, 0xE6D0, // <cjk>
+ 0x8CFC, 0x8D77, // <cjk>
+ 0x8CFD, 0xE6CE, // <cjk>
+ 0x8D04, 0xE6D1, // <cjk>
+ 0x8D05, 0xE6D2, // <cjk>
+ 0x8D07, 0xE6D4, // <cjk>
+ 0x8D08, 0x91A1, // <cjk>
+ 0x8D0A, 0xE6D3, // <cjk>
+ 0x8D0B, 0x8AE4, // <cjk>
+ 0x8D0D, 0xE6D6, // <cjk>
+ 0x8D0F, 0xE6D5, // <cjk>
+ 0x8D10, 0xE6D7, // <cjk>
+ 0x8D13, 0xE6D9, // <cjk>
+ 0x8D14, 0xE6DB, // <cjk>
+ 0x8D16, 0xE6DC, // <cjk>
+ 0x8D64, 0x90D4, // <cjk>
+ 0x8D66, 0x8ECD, // <cjk>
+ 0x8D67, 0xE6DD, // <cjk>
+ 0x8D6B, 0x8A71, // <cjk>
+ 0x8D6D, 0xE6DE, // <cjk>
+ 0x8D70, 0x9196, // <cjk>
+ 0x8D71, 0xE6DF, // <cjk>
+ 0x8D73, 0xE6E0, // <cjk>
+ 0x8D74, 0x958B, // <cjk>
+ 0x8D77, 0x8B4E, // <cjk>
+ 0x8D81, 0xE6E1, // <cjk>
+ 0x8D85, 0x92B4, // <cjk>
+ 0x8D8A, 0x897A, // <cjk>
+ 0x8D99, 0xE6E2, // <cjk>
+ 0x8DA3, 0x8EEF, // <cjk>
+ 0x8DA8, 0x9096, // <cjk>
+ 0x8DB3, 0x91AB, // <cjk>
+ 0x8DBA, 0xE6E5, // <cjk>
+ 0x8DBE, 0xE6E4, // <cjk>
+ 0x8DC2, 0xE6E3, // <cjk>
+ 0x8DCB, 0xE6EB, // <cjk>
+ 0x8DCC, 0xE6E9, // <cjk>
+ 0x8DCF, 0xE6E6, // <cjk>
+ 0x8DD6, 0xE6E8, // <cjk>
+ 0x8DDA, 0xE6E7, // <cjk>
+ 0x8DDB, 0xE6EA, // <cjk>
+ 0x8DDD, 0x8B97, // <cjk>
+ 0x8DDF, 0xE6EE, // <cjk>
+ 0x8DE1, 0x90D5, // <cjk>
+ 0x8DE3, 0xE6EF, // <cjk>
+ 0x8DE8, 0x8CD7, // <cjk>
+ 0x8DEA, 0xE6EC, // <cjk>
+ 0x8DEB, 0xE6ED, // <cjk>
+ 0x8DEF, 0x9848, // <cjk>
+ 0x8DF3, 0x92B5, // <cjk>
+ 0x8DF5, 0x9148, // <cjk>
+ 0x8DFC, 0xE6F0, // <cjk>
+ 0x8DFF, 0xE6F3, // <cjk>
+ 0x8E08, 0xE6F1, // <cjk>
+ 0x8E09, 0xE6F2, // <cjk>
+ 0x8E0A, 0x9778, // <cjk>
+ 0x8E0F, 0x93A5, // <cjk>
+ 0x8E10, 0xE6F6, // <cjk>
+ 0x8E1D, 0xE6F4, // <cjk>
+ 0x8E1E, 0xE6F5, // <cjk>
+ 0x8E1F, 0xE6F7, // <cjk>
+ 0x8E2A, 0xE748, // <cjk>
+ 0x8E30, 0xE6FA, // <cjk>
+ 0x8E34, 0xE6FB, // <cjk>
+ 0x8E35, 0xE6F9, // <cjk>
+ 0x8E42, 0xE6F8, // <cjk>
+ 0x8E44, 0x92FB, // <cjk>
+ 0x8E47, 0xE740, // <cjk>
+ 0x8E48, 0xE744, // <cjk>
+ 0x8E49, 0xE741, // <cjk>
+ 0x8E4A, 0xE6FC, // <cjk>
+ 0x8E4C, 0xE742, // <cjk>
+ 0x8E50, 0xE743, // <cjk>
+ 0x8E55, 0xE74A, // <cjk>
+ 0x8E59, 0xE745, // <cjk>
+ 0x8E5F, 0x90D6, // <cjk>
+ 0x8E60, 0xE747, // <cjk>
+ 0x8E63, 0xE749, // <cjk>
+ 0x8E64, 0xE746, // <cjk>
+ 0x8E72, 0xE74C, // <cjk>
+ 0x8E74, 0x8F52, // <cjk>
+ 0x8E76, 0xE74B, // <cjk>
+ 0x8E7C, 0xE74D, // <cjk>
+ 0x8E81, 0xE74E, // <cjk>
+ 0x8E84, 0xE751, // <cjk>
+ 0x8E85, 0xE750, // <cjk>
+ 0x8E87, 0xE74F, // <cjk>
+ 0x8E8A, 0xE753, // <cjk>
+ 0x8E8B, 0xE752, // <cjk>
+ 0x8E8D, 0x96F4, // <cjk>
+ 0x8E91, 0xE755, // <cjk>
+ 0x8E93, 0xE754, // <cjk>
+ 0x8E94, 0xE756, // <cjk>
+ 0x8E99, 0xE757, // <cjk>
+ 0x8EA1, 0xE759, // <cjk>
+ 0x8EAA, 0xE758, // <cjk>
+ 0x8EAB, 0x9067, // <cjk>
+ 0x8EAC, 0xE75A, // <cjk>
+ 0x8EAF, 0x8BEB, // <cjk>
+ 0x8EB1, 0xE75D, // <cjk>
+ 0x8EBE, 0xE75E, // <cjk>
+ 0x8EC5, 0xE75F, // <cjk>
+ 0x8EC6, 0xE75C, // <cjk>
+ 0x8EC8, 0xE760, // <cjk>
+ 0x8ECA, 0x8ED4, // <cjk>
+ 0x8ECB, 0xE761, // <cjk>
+ 0x8ECC, 0x8B4F, // <cjk>
+ 0x8ECD, 0x8C52, // <cjk>
+ 0x8ED2, 0x8CAC, // <cjk>
+ 0x8EDB, 0xE762, // <cjk>
+ 0x8EDF, 0x93EE, // <cjk>
+ 0x8EE2, 0x935D, // <cjk>
+ 0x8EE3, 0xE763, // <cjk>
+ 0x8EEB, 0xE766, // <cjk>
+ 0x8EF8, 0x8EB2, // <cjk>
+ 0x8EFB, 0xE765, // <cjk>
+ 0x8EFC, 0xE764, // <cjk>
+ 0x8EFD, 0x8C79, // <cjk>
+ 0x8EFE, 0xE767, // <cjk>
+ 0x8F03, 0x8A72, // <cjk>
+ 0x8F05, 0xE769, // <cjk>
+ 0x8F09, 0x8DDA, // <cjk>
+ 0x8F0A, 0xE768, // <cjk>
+ 0x8F0C, 0xE771, // <cjk>
+ 0x8F12, 0xE76B, // <cjk>
+ 0x8F13, 0xE76D, // <cjk>
+ 0x8F14, 0x95E3, // <cjk>
+ 0x8F15, 0xE76A, // <cjk>
+ 0x8F19, 0xE76C, // <cjk>
+ 0x8F1B, 0xE770, // <cjk>
+ 0x8F1C, 0xE76E, // <cjk>
+ 0x8F1D, 0x8B50, // <cjk>
+ 0x8F1F, 0xE76F, // <cjk>
+ 0x8F26, 0xE772, // <cjk>
+ 0x8F29, 0x9479, // <cjk>
+ 0x8F2A, 0x97D6, // <cjk>
+ 0x8F2F, 0x8F53, // <cjk>
+ 0x8F33, 0xE773, // <cjk>
+ 0x8F38, 0x9741, // <cjk>
+ 0x8F39, 0xE775, // <cjk>
+ 0x8F3B, 0xE774, // <cjk>
+ 0x8F3E, 0xE778, // <cjk>
+ 0x8F3F, 0x9760, // <cjk>
+ 0x8F42, 0xE777, // <cjk>
+ 0x8F44, 0x8A8D, // <cjk>
+ 0x8F45, 0xE776, // <cjk>
+ 0x8F46, 0xE77B, // <cjk>
+ 0x8F49, 0xE77A, // <cjk>
+ 0x8F4C, 0xE779, // <cjk>
+ 0x8F4D, 0x9351, // <cjk>
+ 0x8F4E, 0xE77C, // <cjk>
+ 0x8F57, 0xE77D, // <cjk>
+ 0x8F5C, 0xE77E, // <cjk>
+ 0x8F5F, 0x8D8C, // <cjk>
+ 0x8F61, 0x8C44, // <cjk>
+ 0x8F62, 0xE780, // <cjk>
+ 0x8F63, 0xE781, // <cjk>
+ 0x8F64, 0xE782, // <cjk>
+ 0x8F9B, 0x9068, // <cjk>
+ 0x8F9C, 0xE783, // <cjk>
+ 0x8F9E, 0x8EAB, // <cjk>
+ 0x8F9F, 0xE784, // <cjk>
+ 0x8FA3, 0xE785, // <cjk>
+ 0x8FA7, 0x999F, // <cjk>
+ 0x8FA8, 0x999E, // <cjk>
+ 0x8FAD, 0xE786, // <cjk>
+ 0x8FAE, 0xE390, // <cjk>
+ 0x8FAF, 0xE787, // <cjk>
+ 0x8FB0, 0x9243, // <cjk>
+ 0x8FB1, 0x904A, // <cjk>
+ 0x8FB2, 0x945F, // <cjk>
+ 0x8FB7, 0xE788, // <cjk>
+ 0x8FBA, 0x95D3, // <cjk>
+ 0x8FBB, 0x92D2, // <cjk>
+ 0x8FBC, 0x8D9E, // <cjk>
+ 0x8FBF, 0x9248, // <cjk>
+ 0x8FC2, 0x8949, // <cjk>
+ 0x8FC4, 0x9698, // <cjk>
+ 0x8FC5, 0x9076, // <cjk>
+ 0x8FCE, 0x8C7D, // <cjk>
+ 0x8FD1, 0x8BDF, // <cjk>
+ 0x8FD4, 0x95D4, // <cjk>
+ 0x8FDA, 0xE789, // <cjk>
+ 0x8FE2, 0xE78B, // <cjk>
+ 0x8FE5, 0xE78A, // <cjk>
+ 0x8FE6, 0x89DE, // <cjk>
+ 0x8FE9, 0x93F4, // <cjk>
+ 0x8FEA, 0xE78C, // <cjk>
+ 0x8FEB, 0x9497, // <cjk>
+ 0x8FED, 0x9352, // <cjk>
+ 0x8FEF, 0xE78D, // <cjk>
+ 0x8FF0, 0x8F71, // <cjk>
+ 0x8FF4, 0xE78F, // <cjk>
+ 0x8FF7, 0x96C0, // <cjk>
+ 0x8FF8, 0xE79E, // <cjk>
+ 0x8FF9, 0xE791, // <cjk>
+ 0x8FFA, 0xE792, // <cjk>
+ 0x8FFD, 0x92C7, // <cjk>
+ 0x9000, 0x91DE, // <cjk>
+ 0x9001, 0x9197, // <cjk>
+ 0x9003, 0x93A6, // <cjk>
+ 0x9005, 0xE790, // <cjk>
+ 0x9006, 0x8B74, // <cjk>
+ 0x900B, 0xE799, // <cjk>
+ 0x900D, 0xE796, // <cjk>
+ 0x900E, 0xE7A3, // <cjk>
+ 0x900F, 0x93A7, // <cjk>
+ 0x9010, 0x9280, // <cjk>
+ 0x9011, 0xE793, // <cjk>
+ 0x9013, 0x92FC, // <cjk>
+ 0x9014, 0x9372, // <cjk>
+ 0x9015, 0xE794, // <cjk>
+ 0x9016, 0xE798, // <cjk>
+ 0x9017, 0x9080, // <cjk>
+ 0x9019, 0x9487, // <cjk>
+ 0x901A, 0x92CA, // <cjk>
+ 0x901D, 0x90C0, // <cjk>
+ 0x901E, 0xE797, // <cjk>
+ 0x901F, 0x91AC, // <cjk>
+ 0x9020, 0x91A2, // <cjk>
+ 0x9021, 0xE795, // <cjk>
+ 0x9022, 0x88A7, // <cjk>
+ 0x9023, 0x9841, // <cjk>
+ 0x9027, 0xE79A, // <cjk>
+ 0x902E, 0x91DF, // <cjk>
+ 0x9031, 0x8F54, // <cjk>
+ 0x9032, 0x9069, // <cjk>
+ 0x9035, 0xE79C, // <cjk>
+ 0x9036, 0xE79B, // <cjk>
+ 0x9038, 0x88ED, // <cjk>
+ 0x9039, 0xE79D, // <cjk>
+ 0x903C, 0x954E, // <cjk>
+ 0x903E, 0xE7A5, // <cjk>
+ 0x9041, 0x93D9, // <cjk>
+ 0x9042, 0x908B, // <cjk>
+ 0x9045, 0x9278, // <cjk>
+ 0x9047, 0x8BF6, // <cjk>
+ 0x9049, 0xE7A4, // <cjk>
+ 0x904A, 0x9756, // <cjk>
+ 0x904B, 0x895E, // <cjk>
+ 0x904D, 0x95D5, // <cjk>
+ 0x904E, 0x89DF, // <cjk>
+ 0x904F, 0xE79F, // <cjk>
+ 0x9050, 0xE7A0, // <cjk>
+ 0x9051, 0xE7A1, // <cjk>
+ 0x9052, 0xE7A2, // <cjk>
+ 0x9053, 0x93B9, // <cjk>
+ 0x9054, 0x9242, // <cjk>
+ 0x9055, 0x88E1, // <cjk>
+ 0x9056, 0xE7A6, // <cjk>
+ 0x9058, 0xE7A7, // <cjk>
+ 0x9059, 0xEAA1, // <cjk>
+ 0x905C, 0x91BB, // <cjk>
+ 0x905E, 0xE7A8, // <cjk>
+ 0x9060, 0x8993, // <cjk>
+ 0x9061, 0x916B, // <cjk>
+ 0x9063, 0x8CAD, // <cjk>
+ 0x9065, 0x9779, // <cjk>
+ 0x9068, 0xE7A9, // <cjk>
+ 0x9069, 0x934B, // <cjk>
+ 0x906D, 0x9198, // <cjk>
+ 0x906E, 0x8ED5, // <cjk>
+ 0x906F, 0xE7AA, // <cjk>
+ 0x9072, 0xE7AD, // <cjk>
+ 0x9075, 0x8F85, // <cjk>
+ 0x9076, 0xE7AB, // <cjk>
+ 0x9077, 0x914A, // <cjk>
+ 0x9078, 0x9149, // <cjk>
+ 0x907A, 0x88E2, // <cjk>
+ 0x907C, 0x97C9, // <cjk>
+ 0x907D, 0xE7AF, // <cjk>
+ 0x907F, 0x94F0, // <cjk>
+ 0x9080, 0xE7B1, // <cjk>
+ 0x9081, 0xE7B0, // <cjk>
+ 0x9082, 0xE7AE, // <cjk>
+ 0x9083, 0xE284, // <cjk>
+ 0x9084, 0x8AD2, // <cjk>
+ 0x9087, 0xE78E, // <cjk>
+ 0x9089, 0xE7B3, // <cjk>
+ 0x908A, 0xE7B2, // <cjk>
+ 0x908F, 0xE7B4, // <cjk>
+ 0x9091, 0x9757, // <cjk>
+ 0x90A3, 0x93DF, // <cjk>
+ 0x90A6, 0x964D, // <cjk>
+ 0x90A8, 0xE7B5, // <cjk>
+ 0x90AA, 0x8ED7, // <cjk>
+ 0x90AF, 0xE7B6, // <cjk>
+ 0x90B1, 0xE7B7, // <cjk>
+ 0x90B5, 0xE7B8, // <cjk>
+ 0x90B8, 0x9340, // <cjk>
+ 0x90C1, 0x88E8, // <cjk>
+ 0x90CA, 0x8D78, // <cjk>
+ 0x90CE, 0x9859, // <cjk>
+ 0x90DB, 0xE7BC, // <cjk>
+ 0x90E1, 0x8C53, // <cjk>
+ 0x90E2, 0xE7B9, // <cjk>
+ 0x90E4, 0xE7BA, // <cjk>
+ 0x90E8, 0x9594, // <cjk>
+ 0x90ED, 0x8A73, // <cjk>
+ 0x90F5, 0x9758, // <cjk>
+ 0x90F7, 0x8BBD, // <cjk>
+ 0x90FD, 0x9373, // <cjk>
+ 0x9102, 0xE7BD, // <cjk>
+ 0x9112, 0xE7BE, // <cjk>
+ 0x9119, 0xE7BF, // <cjk>
+ 0x912D, 0x9341, // <cjk>
+ 0x9130, 0xE7C1, // <cjk>
+ 0x9132, 0xE7C0, // <cjk>
+ 0x9149, 0x93D1, // <cjk>
+ 0x914A, 0xE7C2, // <cjk>
+ 0x914B, 0x8F55, // <cjk>
+ 0x914C, 0x8EDE, // <cjk>
+ 0x914D, 0x947A, // <cjk>
+ 0x914E, 0x9291, // <cjk>
+ 0x9152, 0x8EF0, // <cjk>
+ 0x9154, 0x908C, // <cjk>
+ 0x9156, 0xE7C3, // <cjk>
+ 0x9158, 0xE7C4, // <cjk>
+ 0x9162, 0x907C, // <cjk>
+ 0x9163, 0xE7C5, // <cjk>
+ 0x9165, 0xE7C6, // <cjk>
+ 0x9169, 0xE7C7, // <cjk>
+ 0x916A, 0x978F, // <cjk>
+ 0x916C, 0x8F56, // <cjk>
+ 0x9172, 0xE7C9, // <cjk>
+ 0x9173, 0xE7C8, // <cjk>
+ 0x9175, 0x8D79, // <cjk>
+ 0x9177, 0x8D93, // <cjk>
+ 0x9178, 0x8E5F, // <cjk>
+ 0x9182, 0xE7CC, // <cjk>
+ 0x9187, 0x8F86, // <cjk>
+ 0x9189, 0xE7CB, // <cjk>
+ 0x918B, 0xE7CA, // <cjk>
+ 0x918D, 0x91E7, // <cjk>
+ 0x9190, 0x8CED, // <cjk>
+ 0x9192, 0x90C1, // <cjk>
+ 0x9197, 0x94AE, // <cjk>
+ 0x919C, 0x8F58, // <cjk>
+ 0x91A2, 0xE7CD, // <cjk>
+ 0x91A4, 0x8FDD, // <cjk>
+ 0x91AA, 0xE7D0, // <cjk>
+ 0x91AB, 0xE7CE, // <cjk>
+ 0x91AF, 0xE7CF, // <cjk>
+ 0x91B4, 0xE7D2, // <cjk>
+ 0x91B5, 0xE7D1, // <cjk>
+ 0x91B8, 0x8FF8, // <cjk>
+ 0x91BA, 0xE7D3, // <cjk>
+ 0x91C0, 0xE7D4, // <cjk>
+ 0x91C1, 0xE7D5, // <cjk>
+ 0x91C6, 0x94CE, // <cjk>
+ 0x91C7, 0x8DD1, // <cjk>
+ 0x91C8, 0x8EDF, // <cjk>
+ 0x91C9, 0xE7D6, // <cjk>
+ 0x91CB, 0xE7D7, // <cjk>
+ 0x91CC, 0x97A2, // <cjk>
+ 0x91CD, 0x8F64, // <cjk>
+ 0x91CE, 0x96EC, // <cjk>
+ 0x91CF, 0x97CA, // <cjk>
+ 0x91D0, 0xE7D8, // <cjk>
+ 0x91D1, 0x8BE0, // <cjk>
+ 0x91D6, 0xE7D9, // <cjk>
+ 0x91D8, 0x9342, // <cjk>
+ 0x91DB, 0xE7DC, // <cjk>
+ 0x91DC, 0x8A98, // <cjk>
+ 0x91DD, 0x906A, // <cjk>
+ 0x91DF, 0xE7DA, // <cjk>
+ 0x91E1, 0xE7DB, // <cjk>
+ 0x91E3, 0x92DE, // <cjk>
+ 0x91E6, 0x9674, // <cjk>
+ 0x91E7, 0x8BFA, // <cjk>
+ 0x91F5, 0xE7DE, // <cjk>
+ 0x91F6, 0xE7DF, // <cjk>
+ 0x91FC, 0xE7DD, // <cjk>
+ 0x91FF, 0xE7E1, // <cjk>
+ 0x920D, 0x93DD, // <cjk>
+ 0x920E, 0x8A62, // <cjk>
+ 0x9211, 0xE7E5, // <cjk>
+ 0x9214, 0xE7E2, // <cjk>
+ 0x9215, 0xE7E4, // <cjk>
+ 0x921E, 0xE7E0, // <cjk>
+ 0x9229, 0xE86E, // <cjk>
+ 0x922C, 0xE7E3, // <cjk>
+ 0x9234, 0x97E9, // <cjk>
+ 0x9237, 0x8CD8, // <cjk>
+ 0x923F, 0xE7ED, // <cjk>
+ 0x9244, 0x9353, // <cjk>
+ 0x9245, 0xE7E8, // <cjk>
+ 0x9248, 0xE7EB, // <cjk>
+ 0x9249, 0xE7E9, // <cjk>
+ 0x924B, 0xE7EE, // <cjk>
+ 0x9250, 0xE7EF, // <cjk>
+ 0x9257, 0xE7E7, // <cjk>
+ 0x925A, 0xE7F4, // <cjk>
+ 0x925B, 0x8994, // <cjk>
+ 0x925E, 0xE7E6, // <cjk>
+ 0x9262, 0x94AB, // <cjk>
+ 0x9264, 0xE7EA, // <cjk>
+ 0x9266, 0x8FDE, // <cjk>
+ 0x9271, 0x8D7A, // <cjk>
+ 0x927E, 0x9667, // <cjk>
+ 0x9280, 0x8BE2, // <cjk>
+ 0x9283, 0x8F65, // <cjk>
+ 0x9285, 0x93BA, // <cjk>
+ 0x9291, 0x914C, // <cjk>
+ 0x9293, 0xE7F2, // <cjk>
+ 0x9295, 0xE7EC, // <cjk>
+ 0x9296, 0xE7F1, // <cjk>
+ 0x9298, 0x96C1, // <cjk>
+ 0x929A, 0x92B6, // <cjk>
+ 0x929B, 0xE7F3, // <cjk>
+ 0x929C, 0xE7F0, // <cjk>
+ 0x92AD, 0x914B, // <cjk>
+ 0x92B7, 0xE7F7, // <cjk>
+ 0x92B9, 0xE7F6, // <cjk>
+ 0x92CF, 0xE7F5, // <cjk>
+ 0x92D2, 0x964E, // <cjk>
+ 0x92E4, 0x8F9B, // <cjk>
+ 0x92E9, 0xE7F8, // <cjk>
+ 0x92EA, 0x95DD, // <cjk>
+ 0x92ED, 0x8973, // <cjk>
+ 0x92F2, 0x9565, // <cjk>
+ 0x92F3, 0x9292, // <cjk>
+ 0x92F8, 0x8B98, // <cjk>
+ 0x92FA, 0xE7FA, // <cjk>
+ 0x92FC, 0x8D7C, // <cjk>
+ 0x9306, 0x8E4B, // <cjk>
+ 0x930F, 0xE7F9, // <cjk>
+ 0x9310, 0x908D, // <cjk>
+ 0x9318, 0x908E, // <cjk>
+ 0x9319, 0xE840, // <cjk>
+ 0x931A, 0xE842, // <cjk>
+ 0x9320, 0x8FF9, // <cjk>
+ 0x9322, 0xE841, // <cjk>
+ 0x9323, 0xE843, // <cjk>
+ 0x9326, 0x8BD1, // <cjk>
+ 0x9328, 0x9564, // <cjk>
+ 0x932B, 0x8EE0, // <cjk>
+ 0x932C, 0x9842, // <cjk>
+ 0x932E, 0xE7FC, // <cjk>
+ 0x932F, 0x8DF6, // <cjk>
+ 0x9332, 0x985E, // <cjk>
+ 0x9335, 0xE845, // <cjk>
+ 0x933A, 0xE844, // <cjk>
+ 0x933B, 0xE846, // <cjk>
+ 0x9344, 0xE7FB, // <cjk>
+ 0x934B, 0x93E7, // <cjk>
+ 0x934D, 0x9374, // <cjk>
+ 0x9354, 0x92D5, // <cjk>
+ 0x9356, 0xE84B, // <cjk>
+ 0x935B, 0x9262, // <cjk>
+ 0x935C, 0xE847, // <cjk>
+ 0x9360, 0xE848, // <cjk>
+ 0x936C, 0x8C4C, // <cjk>
+ 0x936E, 0xE84A, // <cjk>
+ 0x9375, 0x8CAE, // <cjk>
+ 0x937C, 0xE849, // <cjk>
+ 0x937E, 0x8FDF, // <cjk>
+ 0x938C, 0x8A99, // <cjk>
+ 0x9394, 0xE84F, // <cjk>
+ 0x9396, 0x8DBD, // <cjk>
+ 0x9397, 0x9199, // <cjk>
+ 0x939A, 0x92C8, // <cjk>
+ 0x93A7, 0x8A5A, // <cjk>
+ 0x93AC, 0xE84D, // <cjk>
+ 0x93AD, 0xE84E, // <cjk>
+ 0x93AE, 0x92C1, // <cjk>
+ 0x93B0, 0xE84C, // <cjk>
+ 0x93B9, 0xE850, // <cjk>
+ 0x93C3, 0xE856, // <cjk>
+ 0x93C8, 0xE859, // <cjk>
+ 0x93D0, 0xE858, // <cjk>
+ 0x93D1, 0x934C, // <cjk>
+ 0x93D6, 0xE851, // <cjk>
+ 0x93D7, 0xE852, // <cjk>
+ 0x93D8, 0xE855, // <cjk>
+ 0x93DD, 0xE857, // <cjk>
+ 0x93E1, 0x8BBE, // <cjk>
+ 0x93E4, 0xE85A, // <cjk>
+ 0x93E5, 0xE854, // <cjk>
+ 0x93E8, 0xE853, // <cjk>
+ 0x9403, 0xE85E, // <cjk>
+ 0x9407, 0xE85F, // <cjk>
+ 0x9410, 0xE860, // <cjk>
+ 0x9413, 0xE85D, // <cjk>
+ 0x9414, 0xE85C, // <cjk>
+ 0x9418, 0x8FE0, // <cjk>
+ 0x9419, 0x93A8, // <cjk>
+ 0x9421, 0xE864, // <cjk>
+ 0x942B, 0xE862, // <cjk>
+ 0x9435, 0xE863, // <cjk>
+ 0x9436, 0xE861, // <cjk>
+ 0x9438, 0x91F6, // <cjk>
+ 0x943A, 0xE865, // <cjk>
+ 0x9441, 0xE866, // <cjk>
+ 0x9444, 0xE868, // <cjk>
+ 0x9451, 0x8AD3, // <cjk>
+ 0x9452, 0xE867, // <cjk>
+ 0x9453, 0x96F8, // <cjk>
+ 0x945A, 0xE873, // <cjk>
+ 0x945B, 0xE869, // <cjk>
+ 0x945E, 0xE86C, // <cjk>
+ 0x9460, 0xE86A, // <cjk>
+ 0x9462, 0xE86B, // <cjk>
+ 0x946A, 0xE86D, // <cjk>
+ 0x9470, 0xE86F, // <cjk>
+ 0x9475, 0xE870, // <cjk>
+ 0x9477, 0xE871, // <cjk>
+ 0x947C, 0xE874, // <cjk>
+ 0x947D, 0xE872, // <cjk>
+ 0x947E, 0xE875, // <cjk>
+ 0x947F, 0xE877, // <cjk>
+ 0x9481, 0xE876, // <cjk>
+ 0x9577, 0x92B7, // <cjk>
+ 0x9580, 0x96E5, // <cjk>
+ 0x9582, 0xE878, // <cjk>
+ 0x9583, 0x914D, // <cjk>
+ 0x9587, 0xE879, // <cjk>
+ 0x9589, 0x95C2, // <cjk>
+ 0x958A, 0xE87A, // <cjk>
+ 0x958B, 0x8A4A, // <cjk>
+ 0x9591, 0x8AD5, // <cjk>
+ 0x9593, 0x8AD4, // <cjk>
+ 0x9594, 0xE87B, // <cjk>
+ 0x9596, 0xE87C, // <cjk>
+ 0x9598, 0xE87D, // <cjk>
+ 0x9599, 0xE87E, // <cjk>
+ 0x95A0, 0xE880, // <cjk>
+ 0x95A2, 0x8AD6, // <cjk>
+ 0x95A3, 0x8A74, // <cjk>
+ 0x95A4, 0x8D7D, // <cjk>
+ 0x95A5, 0x94B4, // <cjk>
+ 0x95A7, 0xE882, // <cjk>
+ 0x95A8, 0xE881, // <cjk>
+ 0x95AD, 0xE883, // <cjk>
+ 0x95B2, 0x897B, // <cjk>
+ 0x95B9, 0xE886, // <cjk>
+ 0x95BB, 0xE885, // <cjk>
+ 0x95BC, 0xE884, // <cjk>
+ 0x95BE, 0xE887, // <cjk>
+ 0x95C3, 0xE88A, // <cjk>
+ 0x95C7, 0x88C5, // <cjk>
+ 0x95CA, 0xE888, // <cjk>
+ 0x95CC, 0xE88C, // <cjk>
+ 0x95CD, 0xE88B, // <cjk>
+ 0x95D4, 0xE88E, // <cjk>
+ 0x95D5, 0xE88D, // <cjk>
+ 0x95D6, 0xE88F, // <cjk>
+ 0x95D8, 0x93AC, // <cjk>
+ 0x95DC, 0xE890, // <cjk>
+ 0x95E1, 0xE891, // <cjk>
+ 0x95E2, 0xE893, // <cjk>
+ 0x95E5, 0xE892, // <cjk>
+ 0x961C, 0x958C, // <cjk>
+ 0x9621, 0xE894, // <cjk>
+ 0x9628, 0xE895, // <cjk>
+ 0x962A, 0x8DE3, // <cjk>
+ 0x962E, 0xE896, // <cjk>
+ 0x962F, 0xE897, // <cjk>
+ 0x9632, 0x9668, // <cjk>
+ 0x963B, 0x916A, // <cjk>
+ 0x963F, 0x88A2, // <cjk>
+ 0x9640, 0x91C9, // <cjk>
+ 0x9642, 0xE898, // <cjk>
+ 0x9644, 0x958D, // <cjk>
+ 0x964B, 0xE89B, // <cjk>
+ 0x964C, 0xE899, // <cjk>
+ 0x964D, 0x8D7E, // <cjk>
+ 0x964F, 0xE89A, // <cjk>
+ 0x9650, 0x8CC0, // <cjk>
+ 0x965B, 0x95C3, // <cjk>
+ 0x965C, 0xE89D, // <cjk>
+ 0x965D, 0xE89F, // <cjk>
+ 0x965E, 0xE89E, // <cjk>
+ 0x965F, 0xE8A0, // <cjk>
+ 0x9662, 0x8940, // <cjk>
+ 0x9663, 0x9077, // <cjk>
+ 0x9664, 0x8F9C, // <cjk>
+ 0x9665, 0x8AD7, // <cjk>
+ 0x9666, 0xE8A1, // <cjk>
+ 0x966A, 0x9486, // <cjk>
+ 0x966C, 0xE8A3, // <cjk>
+ 0x9670, 0x8941, // <cjk>
+ 0x9672, 0xE8A2, // <cjk>
+ 0x9673, 0x92C2, // <cjk>
+ 0x9675, 0x97CB, // <cjk>
+ 0x9676, 0x93A9, // <cjk>
+ 0x9677, 0xE89C, // <cjk>
+ 0x9678, 0x97A4, // <cjk>
+ 0x967A, 0x8CAF, // <cjk>
+ 0x967D, 0x977A, // <cjk>
+ 0x9685, 0x8BF7, // <cjk>
+ 0x9686, 0x97B2, // <cjk>
+ 0x9688, 0x8C47, // <cjk>
+ 0x968A, 0x91E0, // <cjk>
+ 0x968B, 0xE440, // <cjk>
+ 0x968D, 0xE8A4, // <cjk>
+ 0x968E, 0x8A4B, // <cjk>
+ 0x968F, 0x908F, // <cjk>
+ 0x9694, 0x8A75, // <cjk>
+ 0x9695, 0xE8A6, // <cjk>
+ 0x9697, 0xE8A7, // <cjk>
+ 0x9698, 0xE8A5, // <cjk>
+ 0x9699, 0x8C84, // <cjk>
+ 0x969B, 0x8DDB, // <cjk>
+ 0x969C, 0x8FE1, // <cjk>
+ 0x96A0, 0x8942, // <cjk>
+ 0x96A3, 0x97D7, // <cjk>
+ 0x96A7, 0xE8A9, // <cjk>
+ 0x96A8, 0xE7AC, // <cjk>
+ 0x96AA, 0xE8A8, // <cjk>
+ 0x96B0, 0xE8AC, // <cjk>
+ 0x96B1, 0xE8AA, // <cjk>
+ 0x96B2, 0xE8AB, // <cjk>
+ 0x96B4, 0xE8AD, // <cjk>
+ 0x96B6, 0xE8AE, // <cjk>
+ 0x96B7, 0x97EA, // <cjk>
+ 0x96B8, 0xE8AF, // <cjk>
+ 0x96B9, 0xE8B0, // <cjk>
+ 0x96BB, 0x90C7, // <cjk>
+ 0x96BC, 0x94B9, // <cjk>
+ 0x96C0, 0x909D, // <cjk>
+ 0x96C1, 0x8AE5, // <cjk>
+ 0x96C4, 0x9759, // <cjk>
+ 0x96C5, 0x89EB, // <cjk>
+ 0x96C6, 0x8F57, // <cjk>
+ 0x96C7, 0x8CD9, // <cjk>
+ 0x96C9, 0xE8B3, // <cjk>
+ 0x96CB, 0xE8B2, // <cjk>
+ 0x96CC, 0x8E93, // <cjk>
+ 0x96CD, 0xE8B4, // <cjk>
+ 0x96CE, 0xE8B1, // <cjk>
+ 0x96D1, 0x8E47, // <cjk>
+ 0x96D5, 0xE8B8, // <cjk>
+ 0x96D6, 0xE5AB, // <cjk>
+ 0x96D9, 0x99D4, // <cjk>
+ 0x96DB, 0x9097, // <cjk>
+ 0x96DC, 0xE8B6, // <cjk>
+ 0x96E2, 0x97A3, // <cjk>
+ 0x96E3, 0x93EF, // <cjk>
+ 0x96E8, 0x894A, // <cjk>
+ 0x96EA, 0x90E1, // <cjk>
+ 0x96EB, 0x8EB4, // <cjk>
+ 0x96F0, 0x95B5, // <cjk>
+ 0x96F2, 0x895F, // <cjk>
+ 0x96F6, 0x97EB, // <cjk>
+ 0x96F7, 0x978B, // <cjk>
+ 0x96F9, 0xE8B9, // <cjk>
+ 0x96FB, 0x9364, // <cjk>
+ 0x9700, 0x8EF9, // <cjk>
+ 0x9704, 0xE8BA, // <cjk>
+ 0x9706, 0xE8BB, // <cjk>
+ 0x9707, 0x906B, // <cjk>
+ 0x9708, 0xE8BC, // <cjk>
+ 0x970A, 0x97EC, // <cjk>
+ 0x970D, 0xE8B7, // <cjk>
+ 0x970E, 0xE8BE, // <cjk>
+ 0x970F, 0xE8C0, // <cjk>
+ 0x9711, 0xE8BF, // <cjk>
+ 0x9713, 0xE8BD, // <cjk>
+ 0x9716, 0xE8C1, // <cjk>
+ 0x9719, 0xE8C2, // <cjk>
+ 0x971C, 0x919A, // <cjk>
+ 0x971E, 0x89E0, // <cjk>
+ 0x9724, 0xE8C3, // <cjk>
+ 0x9727, 0x96B6, // <cjk>
+ 0x972A, 0xE8C4, // <cjk>
+ 0x9730, 0xE8C5, // <cjk>
+ 0x9732, 0x9849, // <cjk>
+ 0x9738, 0x9E50, // <cjk>
+ 0x9739, 0xE8C6, // <cjk>
+ 0x973D, 0xE8C7, // <cjk>
+ 0x973E, 0xE8C8, // <cjk>
+ 0x9742, 0xE8CC, // <cjk>
+ 0x9744, 0xE8C9, // <cjk>
+ 0x9746, 0xE8CA, // <cjk>
+ 0x9748, 0xE8CB, // <cjk>
+ 0x9749, 0xE8CD, // <cjk>
+ 0x9752, 0x90C2, // <cjk>
+ 0x9756, 0x96F5, // <cjk>
+ 0x9759, 0x90C3, // <cjk>
+ 0x975C, 0xE8CE, // <cjk>
+ 0x975E, 0x94F1, // <cjk>
+ 0x9760, 0xE8CF, // <cjk>
+ 0x9761, 0xEA72, // <cjk>
+ 0x9762, 0x96CA, // <cjk>
+ 0x9764, 0xE8D0, // <cjk>
+ 0x9766, 0xE8D1, // <cjk>
+ 0x9768, 0xE8D2, // <cjk>
+ 0x9769, 0x8A76, // <cjk>
+ 0x976B, 0xE8D4, // <cjk>
+ 0x976D, 0x9078, // <cjk>
+ 0x9771, 0xE8D5, // <cjk>
+ 0x9774, 0x8C43, // <cjk>
+ 0x9779, 0xE8D6, // <cjk>
+ 0x977A, 0xE8DA, // <cjk>
+ 0x977C, 0xE8D8, // <cjk>
+ 0x9781, 0xE8D9, // <cjk>
+ 0x9784, 0x8A93, // <cjk>
+ 0x9785, 0xE8D7, // <cjk>
+ 0x9786, 0xE8DB, // <cjk>
+ 0x978B, 0xE8DC, // <cjk>
+ 0x978D, 0x88C6, // <cjk>
+ 0x978F, 0xE8DD, // <cjk>
+ 0x9790, 0xE8DE, // <cjk>
+ 0x9798, 0x8FE2, // <cjk>
+ 0x979C, 0xE8DF, // <cjk>
+ 0x97A0, 0x8B66, // <cjk>
+ 0x97A3, 0xE8E2, // <cjk>
+ 0x97A6, 0xE8E1, // <cjk>
+ 0x97A8, 0xE8E0, // <cjk>
+ 0x97AB, 0xE691, // <cjk>
+ 0x97AD, 0x95DA, // <cjk>
+ 0x97B3, 0xE8E3, // <cjk>
+ 0x97B4, 0xE8E4, // <cjk>
+ 0x97C3, 0xE8E5, // <cjk>
+ 0x97C6, 0xE8E6, // <cjk>
+ 0x97C8, 0xE8E7, // <cjk>
+ 0x97CB, 0xE8E8, // <cjk>
+ 0x97D3, 0x8AD8, // <cjk>
+ 0x97DC, 0xE8E9, // <cjk>
+ 0x97ED, 0xE8EA, // <cjk>
+ 0x97EE, 0x9442, // <cjk>
+ 0x97F2, 0xE8EC, // <cjk>
+ 0x97F3, 0x89B9, // <cjk>
+ 0x97F5, 0xE8EF, // <cjk>
+ 0x97F6, 0xE8EE, // <cjk>
+ 0x97FB, 0x8943, // <cjk>
+ 0x97FF, 0x8BBF, // <cjk>
+ 0x9801, 0x95C5, // <cjk>
+ 0x9802, 0x92B8, // <cjk>
+ 0x9803, 0x8DA0, // <cjk>
+ 0x9805, 0x8D80, // <cjk>
+ 0x9806, 0x8F87, // <cjk>
+ 0x9808, 0x907B, // <cjk>
+ 0x980C, 0xE8F1, // <cjk>
+ 0x980F, 0xE8F0, // <cjk>
+ 0x9810, 0x9761, // <cjk>
+ 0x9811, 0x8AE6, // <cjk>
+ 0x9812, 0x94D0, // <cjk>
+ 0x9813, 0x93DA, // <cjk>
+ 0x9817, 0x909C, // <cjk>
+ 0x9818, 0x97CC, // <cjk>
+ 0x981A, 0x8C7A, // <cjk>
+ 0x9821, 0xE8F4, // <cjk>
+ 0x9824, 0xE8F3, // <cjk>
+ 0x982C, 0x966A, // <cjk>
+ 0x982D, 0x93AA, // <cjk>
+ 0x9834, 0x896F, // <cjk>
+ 0x9837, 0xE8F5, // <cjk>
+ 0x9838, 0xE8F2, // <cjk>
+ 0x983B, 0x9570, // <cjk>
+ 0x983C, 0x978A, // <cjk>
+ 0x983D, 0xE8F6, // <cjk>
+ 0x9846, 0xE8F7, // <cjk>
+ 0x984B, 0xE8F9, // <cjk>
+ 0x984C, 0x91E8, // <cjk>
+ 0x984D, 0x8A7A, // <cjk>
+ 0x984E, 0x8A7B, // <cjk>
+ 0x984F, 0xE8F8, // <cjk>
+ 0x9854, 0x8AE7, // <cjk>
+ 0x9855, 0x8CB0, // <cjk>
+ 0x9858, 0x8AE8, // <cjk>
+ 0x985B, 0x935E, // <cjk>
+ 0x985E, 0x97DE, // <cjk>
+ 0x9867, 0x8CDA, // <cjk>
+ 0x986B, 0xE8FA, // <cjk>
+ 0x986F, 0xE8FB, // <cjk>
+ 0x9870, 0xE8FC, // <cjk>
+ 0x9871, 0xE940, // <cjk>
+ 0x9873, 0xE942, // <cjk>
+ 0x9874, 0xE941, // <cjk>
+ 0x98A8, 0x9597, // <cjk>
+ 0x98AA, 0xE943, // <cjk>
+ 0x98AF, 0xE944, // <cjk>
+ 0x98B1, 0xE945, // <cjk>
+ 0x98B6, 0xE946, // <cjk>
+ 0x98C3, 0xE948, // <cjk>
+ 0x98C4, 0xE947, // <cjk>
+ 0x98C6, 0xE949, // <cjk>
+ 0x98DB, 0x94F2, // <cjk>
+ 0x98DC, 0xE3CA, // <cjk>
+ 0x98DF, 0x9048, // <cjk>
+ 0x98E2, 0x8B51, // <cjk>
+ 0x98E9, 0xE94A, // <cjk>
+ 0x98EB, 0xE94B, // <cjk>
+ 0x98ED, 0x99AA, // <cjk>
+ 0x98EE, 0x9F5A, // <cjk>
+ 0x98EF, 0x94D1, // <cjk>
+ 0x98F2, 0x88F9, // <cjk>
+ 0x98F4, 0x88B9, // <cjk>
+ 0x98FC, 0x8E94, // <cjk>
+ 0x98FD, 0x964F, // <cjk>
+ 0x98FE, 0x8FFC, // <cjk>
+ 0x9903, 0xE94C, // <cjk>
+ 0x9905, 0x96DD, // <cjk>
+ 0x9909, 0xE94D, // <cjk>
+ 0x990A, 0x977B, // <cjk>
+ 0x990C, 0x8961, // <cjk>
+ 0x9910, 0x8E60, // <cjk>
+ 0x9912, 0xE94E, // <cjk>
+ 0x9913, 0x89EC, // <cjk>
+ 0x9914, 0xE94F, // <cjk>
+ 0x9918, 0xE950, // <cjk>
+ 0x991D, 0xE952, // <cjk>
+ 0x991E, 0xE953, // <cjk>
+ 0x9920, 0xE955, // <cjk>
+ 0x9921, 0xE951, // <cjk>
+ 0x9924, 0xE954, // <cjk>
+ 0x9928, 0x8AD9, // <cjk>
+ 0x992C, 0xE956, // <cjk>
+ 0x992E, 0xE957, // <cjk>
+ 0x993D, 0xE958, // <cjk>
+ 0x993E, 0xE959, // <cjk>
+ 0x9942, 0xE95A, // <cjk>
+ 0x9945, 0xE95C, // <cjk>
+ 0x994B, 0xE95E, // <cjk>
+ 0x994C, 0xE961, // <cjk>
+ 0x9950, 0xE95D, // <cjk>
+ 0x9951, 0xE95F, // <cjk>
+ 0x9952, 0xE960, // <cjk>
+ 0x9955, 0xE962, // <cjk>
+ 0x9957, 0x8BC0, // <cjk>
+ 0x9996, 0x8EF1, // <cjk>
+ 0x9997, 0xE963, // <cjk>
+ 0x9998, 0xE964, // <cjk>
+ 0x9999, 0x8D81, // <cjk>
+ 0x99A5, 0xE965, // <cjk>
+ 0x99A8, 0x8A5D, // <cjk>
+ 0x99AC, 0x946E, // <cjk>
+ 0x99AD, 0xE966, // <cjk>
+ 0x99AE, 0xE967, // <cjk>
+ 0x99B3, 0x9279, // <cjk>
+ 0x99B4, 0x93E9, // <cjk>
+ 0x99BC, 0xE968, // <cjk>
+ 0x99C1, 0x949D, // <cjk>
+ 0x99C4, 0x91CA, // <cjk>
+ 0x99C5, 0x8977, // <cjk>
+ 0x99C6, 0x8BEC, // <cjk>
+ 0x99C8, 0x8BED, // <cjk>
+ 0x99D0, 0x9293, // <cjk>
+ 0x99D1, 0xE96D, // <cjk>
+ 0x99D2, 0x8BEE, // <cjk>
+ 0x99D5, 0x89ED, // <cjk>
+ 0x99D8, 0xE96C, // <cjk>
+ 0x99DB, 0xE96A, // <cjk>
+ 0x99DD, 0xE96B, // <cjk>
+ 0x99DF, 0xE969, // <cjk>
+ 0x99E2, 0xE977, // <cjk>
+ 0x99ED, 0xE96E, // <cjk>
+ 0x99EE, 0xE96F, // <cjk>
+ 0x99F1, 0xE970, // <cjk>
+ 0x99F2, 0xE971, // <cjk>
+ 0x99F8, 0xE973, // <cjk>
+ 0x99FB, 0xE972, // <cjk>
+ 0x99FF, 0x8F78, // <cjk>
+ 0x9A01, 0xE974, // <cjk>
+ 0x9A05, 0xE976, // <cjk>
+ 0x9A0E, 0x8B52, // <cjk>
+ 0x9A0F, 0xE975, // <cjk>
+ 0x9A12, 0x919B, // <cjk>
+ 0x9A13, 0x8CB1, // <cjk>
+ 0x9A19, 0xE978, // <cjk>
+ 0x9A28, 0x91CB, // <cjk>
+ 0x9A2B, 0xE979, // <cjk>
+ 0x9A30, 0x93AB, // <cjk>
+ 0x9A37, 0xE97A, // <cjk>
+ 0x9A3E, 0xE980, // <cjk>
+ 0x9A40, 0xE97D, // <cjk>
+ 0x9A42, 0xE97C, // <cjk>
+ 0x9A43, 0xE97E, // <cjk>
+ 0x9A45, 0xE97B, // <cjk>
+ 0x9A4D, 0xE982, // <cjk>
+ 0x9A55, 0xE981, // <cjk>
+ 0x9A57, 0xE984, // <cjk>
+ 0x9A5A, 0x8BC1, // <cjk>
+ 0x9A5B, 0xE983, // <cjk>
+ 0x9A5F, 0xE985, // <cjk>
+ 0x9A62, 0xE986, // <cjk>
+ 0x9A64, 0xE988, // <cjk>
+ 0x9A65, 0xE987, // <cjk>
+ 0x9A69, 0xE989, // <cjk>
+ 0x9A6A, 0xE98B, // <cjk>
+ 0x9A6B, 0xE98A, // <cjk>
+ 0x9AA8, 0x8D9C, // <cjk>
+ 0x9AAD, 0xE98C, // <cjk>
+ 0x9AB0, 0xE98D, // <cjk>
+ 0x9ABC, 0xE98E, // <cjk>
+ 0x9AC0, 0xE98F, // <cjk>
+ 0x9AC4, 0x9091, // <cjk>
+ 0x9ACF, 0xE990, // <cjk>
+ 0x9AD1, 0xE991, // <cjk>
+ 0x9AD3, 0xE992, // <cjk>
+ 0x9AD4, 0xE993, // <cjk>
+ 0x9AD8, 0x8D82, // <cjk>
+ 0x9ADE, 0xE994, // <cjk>
+ 0x9ADF, 0xE995, // <cjk>
+ 0x9AE2, 0xE996, // <cjk>
+ 0x9AE3, 0xE997, // <cjk>
+ 0x9AE6, 0xE998, // <cjk>
+ 0x9AEA, 0x94AF, // <cjk>
+ 0x9AEB, 0xE99A, // <cjk>
+ 0x9AED, 0x9545, // <cjk>
+ 0x9AEE, 0xE99B, // <cjk>
+ 0x9AEF, 0xE999, // <cjk>
+ 0x9AF1, 0xE99D, // <cjk>
+ 0x9AF4, 0xE99C, // <cjk>
+ 0x9AF7, 0xE99E, // <cjk>
+ 0x9AFB, 0xE99F, // <cjk>
+ 0x9B06, 0xE9A0, // <cjk>
+ 0x9B18, 0xE9A1, // <cjk>
+ 0x9B1A, 0xE9A2, // <cjk>
+ 0x9B1F, 0xE9A3, // <cjk>
+ 0x9B22, 0xE9A4, // <cjk>
+ 0x9B23, 0xE9A5, // <cjk>
+ 0x9B25, 0xE9A6, // <cjk>
+ 0x9B27, 0xE9A7, // <cjk>
+ 0x9B28, 0xE9A8, // <cjk>
+ 0x9B29, 0xE9A9, // <cjk>
+ 0x9B2A, 0xE9AA, // <cjk>
+ 0x9B2E, 0xE9AB, // <cjk>
+ 0x9B2F, 0xE9AC, // <cjk>
+ 0x9B31, 0x9F54, // <cjk>
+ 0x9B32, 0xE9AD, // <cjk>
+ 0x9B3B, 0xE2F6, // <cjk>
+ 0x9B3C, 0x8B53, // <cjk>
+ 0x9B41, 0x8A40, // <cjk>
+ 0x9B42, 0x8DB0, // <cjk>
+ 0x9B43, 0xE9AF, // <cjk>
+ 0x9B44, 0xE9AE, // <cjk>
+ 0x9B45, 0x96A3, // <cjk>
+ 0x9B4D, 0xE9B1, // <cjk>
+ 0x9B4E, 0xE9B2, // <cjk>
+ 0x9B4F, 0xE9B0, // <cjk>
+ 0x9B51, 0xE9B3, // <cjk>
+ 0x9B54, 0x9682, // <cjk>
+ 0x9B58, 0xE9B4, // <cjk>
+ 0x9B5A, 0x8B9B, // <cjk>
+ 0x9B6F, 0x9844, // <cjk>
+ 0x9B74, 0xE9B5, // <cjk>
+ 0x9B83, 0xE9B7, // <cjk>
+ 0x9B8E, 0x88BC, // <cjk>
+ 0x9B91, 0xE9B8, // <cjk>
+ 0x9B92, 0x95A9, // <cjk>
+ 0x9B93, 0xE9B6, // <cjk>
+ 0x9B96, 0xE9B9, // <cjk>
+ 0x9B97, 0xE9BA, // <cjk>
+ 0x9B9F, 0xE9BB, // <cjk>
+ 0x9BA0, 0xE9BC, // <cjk>
+ 0x9BA8, 0xE9BD, // <cjk>
+ 0x9BAA, 0x968E, // <cjk>
+ 0x9BAB, 0x8E4C, // <cjk>
+ 0x9BAD, 0x8DF8, // <cjk>
+ 0x9BAE, 0x914E, // <cjk>
+ 0x9BB4, 0xE9BE, // <cjk>
+ 0x9BB9, 0xE9C1, // <cjk>
+ 0x9BC0, 0xE9BF, // <cjk>
+ 0x9BC6, 0xE9C2, // <cjk>
+ 0x9BC9, 0x8CEF, // <cjk>
+ 0x9BCA, 0xE9C0, // <cjk>
+ 0x9BCF, 0xE9C3, // <cjk>
+ 0x9BD1, 0xE9C4, // <cjk>
+ 0x9BD2, 0xE9C5, // <cjk>
+ 0x9BD4, 0xE9C9, // <cjk>
+ 0x9BD6, 0x8E49, // <cjk>
+ 0x9BDB, 0x91E2, // <cjk>
+ 0x9BE1, 0xE9CA, // <cjk>
+ 0x9BE2, 0xE9C7, // <cjk>
+ 0x9BE3, 0xE9C6, // <cjk>
+ 0x9BE4, 0xE9C8, // <cjk>
+ 0x9BE8, 0x8C7E, // <cjk>
+ 0x9BF0, 0xE9CE, // <cjk>
+ 0x9BF1, 0xE9CD, // <cjk>
+ 0x9BF2, 0xE9CC, // <cjk>
+ 0x9BF5, 0x88B1, // <cjk>
+ 0x9C04, 0xE9D8, // <cjk>
+ 0x9C06, 0xE9D4, // <cjk>
+ 0x9C08, 0xE9D5, // <cjk>
+ 0x9C09, 0xE9D1, // <cjk>
+ 0x9C0A, 0xE9D7, // <cjk>
+ 0x9C0C, 0xE9D3, // <cjk>
+ 0x9C0D, 0x8A82, // <cjk>
+ 0x9C10, 0x986B, // <cjk>
+ 0x9C12, 0xE9D6, // <cjk>
+ 0x9C13, 0xE9D2, // <cjk>
+ 0x9C14, 0xE9D0, // <cjk>
+ 0x9C15, 0xE9CF, // <cjk>
+ 0x9C1B, 0xE9DA, // <cjk>
+ 0x9C21, 0xE9DD, // <cjk>
+ 0x9C24, 0xE9DC, // <cjk>
+ 0x9C25, 0xE9DB, // <cjk>
+ 0x9C2D, 0x9568, // <cjk>
+ 0x9C2E, 0xE9D9, // <cjk>
+ 0x9C2F, 0x88F1, // <cjk>
+ 0x9C30, 0xE9DE, // <cjk>
+ 0x9C32, 0xE9E0, // <cjk>
+ 0x9C39, 0x8A8F, // <cjk>
+ 0x9C3A, 0xE9CB, // <cjk>
+ 0x9C3B, 0x8956, // <cjk>
+ 0x9C3E, 0xE9E2, // <cjk>
+ 0x9C46, 0xE9E1, // <cjk>
+ 0x9C47, 0xE9DF, // <cjk>
+ 0x9C48, 0x924C, // <cjk>
+ 0x9C52, 0x9690, // <cjk>
+ 0x9C57, 0x97D8, // <cjk>
+ 0x9C5A, 0xE9E3, // <cjk>
+ 0x9C60, 0xE9E4, // <cjk>
+ 0x9C67, 0xE9E5, // <cjk>
+ 0x9C76, 0xE9E6, // <cjk>
+ 0x9C78, 0xE9E7, // <cjk>
+ 0x9CE5, 0x92B9, // <cjk>
+ 0x9CE7, 0xE9E8, // <cjk>
+ 0x9CE9, 0x94B5, // <cjk>
+ 0x9CEB, 0xE9ED, // <cjk>
+ 0x9CEC, 0xE9E9, // <cjk>
+ 0x9CF0, 0xE9EA, // <cjk>
+ 0x9CF3, 0x9650, // <cjk>
+ 0x9CF4, 0x96C2, // <cjk>
+ 0x9CF6, 0x93CE, // <cjk>
+ 0x9D03, 0xE9EE, // <cjk>
+ 0x9D06, 0xE9EF, // <cjk>
+ 0x9D07, 0x93BC, // <cjk>
+ 0x9D08, 0xE9EC, // <cjk>
+ 0x9D09, 0xE9EB, // <cjk>
+ 0x9D0E, 0x89A8, // <cjk>
+ 0x9D12, 0xE9F7, // <cjk>
+ 0x9D15, 0xE9F6, // <cjk>
+ 0x9D1B, 0x8995, // <cjk>
+ 0x9D1F, 0xE9F4, // <cjk>
+ 0x9D23, 0xE9F3, // <cjk>
+ 0x9D26, 0xE9F1, // <cjk>
+ 0x9D28, 0x8A9B, // <cjk>
+ 0x9D2A, 0xE9F0, // <cjk>
+ 0x9D2B, 0x8EB0, // <cjk>
+ 0x9D2C, 0x89A7, // <cjk>
+ 0x9D3B, 0x8D83, // <cjk>
+ 0x9D3E, 0xE9FA, // <cjk>
+ 0x9D3F, 0xE9F9, // <cjk>
+ 0x9D41, 0xE9F8, // <cjk>
+ 0x9D44, 0xE9F5, // <cjk>
+ 0x9D46, 0xE9FB, // <cjk>
+ 0x9D48, 0xE9FC, // <cjk>
+ 0x9D50, 0xEA44, // <cjk>
+ 0x9D51, 0xEA43, // <cjk>
+ 0x9D59, 0xEA45, // <cjk>
+ 0x9D5C, 0x894C, // <cjk>
+ 0x9D5D, 0xEA40, // <cjk>
+ 0x9D5E, 0xEA41, // <cjk>
+ 0x9D60, 0x8D94, // <cjk>
+ 0x9D61, 0x96B7, // <cjk>
+ 0x9D64, 0xEA42, // <cjk>
+ 0x9D6C, 0x9651, // <cjk>
+ 0x9D6F, 0xEA4A, // <cjk>
+ 0x9D72, 0xEA46, // <cjk>
+ 0x9D7A, 0xEA4B, // <cjk>
+ 0x9D87, 0xEA48, // <cjk>
+ 0x9D89, 0xEA47, // <cjk>
+ 0x9D8F, 0x8C7B, // <cjk>
+ 0x9D9A, 0xEA4C, // <cjk>
+ 0x9DA4, 0xEA4D, // <cjk>
+ 0x9DA9, 0xEA4E, // <cjk>
+ 0x9DAB, 0xEA49, // <cjk>
+ 0x9DAF, 0xE9F2, // <cjk>
+ 0x9DB2, 0xEA4F, // <cjk>
+ 0x9DB4, 0x92DF, // <cjk>
+ 0x9DB8, 0xEA53, // <cjk>
+ 0x9DBA, 0xEA54, // <cjk>
+ 0x9DBB, 0xEA52, // <cjk>
+ 0x9DC1, 0xEA51, // <cjk>
+ 0x9DC2, 0xEA57, // <cjk>
+ 0x9DC4, 0xEA50, // <cjk>
+ 0x9DC6, 0xEA55, // <cjk>
+ 0x9DCF, 0xEA56, // <cjk>
+ 0x9DD3, 0xEA59, // <cjk>
+ 0x9DD9, 0xEA58, // <cjk>
+ 0x9DED, 0xEA5C, // <cjk>
+ 0x9DEF, 0xEA5D, // <cjk>
+ 0x9DF2, 0x9868, // <cjk>
+ 0x9DF8, 0xEA5A, // <cjk>
+ 0x9DF9, 0x91E9, // <cjk>
+ 0x9DFA, 0x8DEB, // <cjk>
+ 0x9DFD, 0xEA5E, // <cjk>
+ 0x9E1A, 0xEA5F, // <cjk>
+ 0x9E1B, 0xEA60, // <cjk>
+ 0x9E1E, 0xEA61, // <cjk>
+ 0x9E75, 0xEA62, // <cjk>
+ 0x9E78, 0x8CB2, // <cjk>
+ 0x9E79, 0xEA63, // <cjk>
+ 0x9E7D, 0xEA64, // <cjk>
+ 0x9E7F, 0x8EAD, // <cjk>
+ 0x9E81, 0xEA65, // <cjk>
+ 0x9E88, 0xEA66, // <cjk>
+ 0x9E8B, 0xEA67, // <cjk>
+ 0x9E8C, 0xEA68, // <cjk>
+ 0x9E91, 0xEA6B, // <cjk>
+ 0x9E92, 0xEA69, // <cjk>
+ 0x9E95, 0xEA6A, // <cjk>
+ 0x9E97, 0x97ED, // <cjk>
+ 0x9E9D, 0xEA6C, // <cjk>
+ 0x9E9F, 0x97D9, // <cjk>
+ 0x9EA5, 0xEA6D, // <cjk>
+ 0x9EA6, 0x949E, // <cjk>
+ 0x9EA9, 0xEA6E, // <cjk>
+ 0x9EAA, 0xEA70, // <cjk>
+ 0x9EAD, 0xEA71, // <cjk>
+ 0x9EB8, 0xEA6F, // <cjk>
+ 0x9EB9, 0x8D8D, // <cjk>
+ 0x9EBA, 0x96CB, // <cjk>
+ 0x9EBB, 0x9683, // <cjk>
+ 0x9EBC, 0x9BF5, // <cjk>
+ 0x9EBE, 0x9F80, // <cjk>
+ 0x9EBF, 0x969B, // <cjk>
+ 0x9EC4, 0x89A9, // <cjk>
+ 0x9ECC, 0xEA73, // <cjk>
+ 0x9ECD, 0x8B6F, // <cjk>
+ 0x9ECE, 0xEA74, // <cjk>
+ 0x9ECF, 0xEA75, // <cjk>
+ 0x9ED0, 0xEA76, // <cjk>
+ 0x9ED2, 0x8D95, // <cjk>
+ 0x9ED4, 0xEA77, // <cjk>
+ 0x9ED8, 0xE0D2, // <cjk>
+ 0x9ED9, 0x96D9, // <cjk>
+ 0x9EDB, 0x91E1, // <cjk>
+ 0x9EDC, 0xEA78, // <cjk>
+ 0x9EDD, 0xEA7A, // <cjk>
+ 0x9EDE, 0xEA79, // <cjk>
+ 0x9EE0, 0xEA7B, // <cjk>
+ 0x9EE5, 0xEA7C, // <cjk>
+ 0x9EE8, 0xEA7D, // <cjk>
+ 0x9EEF, 0xEA7E, // <cjk>
+ 0x9EF4, 0xEA80, // <cjk>
+ 0x9EF6, 0xEA81, // <cjk>
+ 0x9EF7, 0xEA82, // <cjk>
+ 0x9EF9, 0xEA83, // <cjk>
+ 0x9EFB, 0xEA84, // <cjk>
+ 0x9EFC, 0xEA85, // <cjk>
+ 0x9EFD, 0xEA86, // <cjk>
+ 0x9F07, 0xEA87, // <cjk>
+ 0x9F08, 0xEA88, // <cjk>
+ 0x9F0E, 0x9343, // <cjk>
+ 0x9F13, 0x8CDB, // <cjk>
+ 0x9F15, 0xEA8A, // <cjk>
+ 0x9F20, 0x916C, // <cjk>
+ 0x9F21, 0xEA8B, // <cjk>
+ 0x9F2C, 0xEA8C, // <cjk>
+ 0x9F3B, 0x9540, // <cjk>
+ 0x9F3E, 0xEA8D, // <cjk>
+ 0x9F4A, 0xEA8E, // <cjk>
+ 0x9F4B, 0xE256, // <cjk>
+ 0x9F4E, 0xE6D8, // <cjk>
+ 0x9F4F, 0xE8EB, // <cjk>
+ 0x9F52, 0xEA8F, // <cjk>
+ 0x9F54, 0xEA90, // <cjk>
+ 0x9F5F, 0xEA92, // <cjk>
+ 0x9F60, 0xEA93, // <cjk>
+ 0x9F61, 0xEA94, // <cjk>
+ 0x9F62, 0x97EE, // <cjk>
+ 0x9F63, 0xEA91, // <cjk>
+ 0x9F66, 0xEA95, // <cjk>
+ 0x9F67, 0xEA96, // <cjk>
+ 0x9F6A, 0xEA98, // <cjk>
+ 0x9F6C, 0xEA97, // <cjk>
+ 0x9F72, 0xEA9A, // <cjk>
+ 0x9F76, 0xEA9B, // <cjk>
+ 0x9F77, 0xEA99, // <cjk>
+ 0x9F8D, 0x97B4, // <cjk>
+ 0x9F95, 0xEA9C, // <cjk>
+ 0x9F9C, 0xEA9D, // <cjk>
+ 0x9F9D, 0xE273, // <cjk>
+ 0x9FA0, 0xEA9E, // <cjk>
+ 0xFF01, 0x8149, // FULLWIDTH EXCLAMATION MARK
+ 0xFF03, 0x8194, // FULLWIDTH NUMBER SIGN
+ 0xFF04, 0x8190, // FULLWIDTH DOLLAR SIGN
+ 0xFF05, 0x8193, // FULLWIDTH PERCENT SIGN
+ 0xFF06, 0x8195, // FULLWIDTH AMPERSAND
+ 0xFF07, 0x81AD, // FULLWIDTH APOSTROPHE
+ 0xFF08, 0x8169, // FULLWIDTH LEFT PARENTHESIS
+ 0xFF09, 0x816A, // FULLWIDTH RIGHT PARENTHESIS
+ 0xFF0A, 0x8196, // FULLWIDTH ASTERISK
+ 0xFF0B, 0x817B, // FULLWIDTH PLUS SIGN
+ 0xFF0C, 0x8143, // FULLWIDTH COMMA
+ 0xFF0E, 0x8144, // FULLWIDTH FULL STOP
+ 0xFF0F, 0x815E, // FULLWIDTH SOLIDUS
+ 0xFF10, 0x824F, // FULLWIDTH DIGIT ZERO
+ 0xFF11, 0x8250, // FULLWIDTH DIGIT ONE
+ 0xFF12, 0x8251, // FULLWIDTH DIGIT TWO
+ 0xFF13, 0x8252, // FULLWIDTH DIGIT THREE
+ 0xFF14, 0x8253, // FULLWIDTH DIGIT FOUR
+ 0xFF15, 0x8254, // FULLWIDTH DIGIT FIVE
+ 0xFF16, 0x8255, // FULLWIDTH DIGIT SIX
+ 0xFF17, 0x8256, // FULLWIDTH DIGIT SEVEN
+ 0xFF18, 0x8257, // FULLWIDTH DIGIT EIGHT
+ 0xFF19, 0x8258, // FULLWIDTH DIGIT NINE
+ 0xFF1A, 0x8146, // FULLWIDTH COLON
+ 0xFF1B, 0x8147, // FULLWIDTH SEMICOLON
+ 0xFF1C, 0x8183, // FULLWIDTH LESS-THAN SIGN
+ 0xFF1D, 0x8181, // FULLWIDTH EQUALS SIGN
+ 0xFF1E, 0x8184, // FULLWIDTH GREATER-THAN SIGN
+ 0xFF1F, 0x8148, // FULLWIDTH QUESTION MARK
+ 0xFF20, 0x8197, // FULLWIDTH COMMERCIAL AT
+ 0xFF21, 0x8260, // FULLWIDTH LATIN CAPITAL LETTER A
+ 0xFF22, 0x8261, // FULLWIDTH LATIN CAPITAL LETTER B
+ 0xFF23, 0x8262, // FULLWIDTH LATIN CAPITAL LETTER C
+ 0xFF24, 0x8263, // FULLWIDTH LATIN CAPITAL LETTER D
+ 0xFF25, 0x8264, // FULLWIDTH LATIN CAPITAL LETTER E
+ 0xFF26, 0x8265, // FULLWIDTH LATIN CAPITAL LETTER F
+ 0xFF27, 0x8266, // FULLWIDTH LATIN CAPITAL LETTER G
+ 0xFF28, 0x8267, // FULLWIDTH LATIN CAPITAL LETTER H
+ 0xFF29, 0x8268, // FULLWIDTH LATIN CAPITAL LETTER I
+ 0xFF2A, 0x8269, // FULLWIDTH LATIN CAPITAL LETTER J
+ 0xFF2B, 0x826A, // FULLWIDTH LATIN CAPITAL LETTER K
+ 0xFF2C, 0x826B, // FULLWIDTH LATIN CAPITAL LETTER L
+ 0xFF2D, 0x826C, // FULLWIDTH LATIN CAPITAL LETTER M
+ 0xFF2E, 0x826D, // FULLWIDTH LATIN CAPITAL LETTER N
+ 0xFF2F, 0x826E, // FULLWIDTH LATIN CAPITAL LETTER O
+ 0xFF30, 0x826F, // FULLWIDTH LATIN CAPITAL LETTER P
+ 0xFF31, 0x8270, // FULLWIDTH LATIN CAPITAL LETTER Q
+ 0xFF32, 0x8271, // FULLWIDTH LATIN CAPITAL LETTER R
+ 0xFF33, 0x8272, // FULLWIDTH LATIN CAPITAL LETTER S
+ 0xFF34, 0x8273, // FULLWIDTH LATIN CAPITAL LETTER T
+ 0xFF35, 0x8274, // FULLWIDTH LATIN CAPITAL LETTER U
+ 0xFF36, 0x8275, // FULLWIDTH LATIN CAPITAL LETTER V
+ 0xFF37, 0x8276, // FULLWIDTH LATIN CAPITAL LETTER W
+ 0xFF38, 0x8277, // FULLWIDTH LATIN CAPITAL LETTER X
+ 0xFF39, 0x8278, // FULLWIDTH LATIN CAPITAL LETTER Y
+ 0xFF3A, 0x8279, // FULLWIDTH LATIN CAPITAL LETTER Z
+ 0xFF3B, 0x816D, // FULLWIDTH LEFT SQUARE BRACKET
+ 0xFF3D, 0x816E, // FULLWIDTH RIGHT SQUARE BRACKET
+ 0xFF3E, 0x814F, // FULLWIDTH CIRCUMFLEX ACCENT
+ 0xFF3F, 0x8151, // FULLWIDTH LOW LINE
+ 0xFF40, 0x814D, // FULLWIDTH GRAVE ACCENT
+ 0xFF41, 0x8281, // FULLWIDTH LATIN SMALL LETTER A
+ 0xFF42, 0x8282, // FULLWIDTH LATIN SMALL LETTER B
+ 0xFF43, 0x8283, // FULLWIDTH LATIN SMALL LETTER C
+ 0xFF44, 0x8284, // FULLWIDTH LATIN SMALL LETTER D
+ 0xFF45, 0x8285, // FULLWIDTH LATIN SMALL LETTER E
+ 0xFF46, 0x8286, // FULLWIDTH LATIN SMALL LETTER F
+ 0xFF47, 0x8287, // FULLWIDTH LATIN SMALL LETTER G
+ 0xFF48, 0x8288, // FULLWIDTH LATIN SMALL LETTER H
+ 0xFF49, 0x8289, // FULLWIDTH LATIN SMALL LETTER I
+ 0xFF4A, 0x828A, // FULLWIDTH LATIN SMALL LETTER J
+ 0xFF4B, 0x828B, // FULLWIDTH LATIN SMALL LETTER K
+ 0xFF4C, 0x828C, // FULLWIDTH LATIN SMALL LETTER L
+ 0xFF4D, 0x828D, // FULLWIDTH LATIN SMALL LETTER M
+ 0xFF4E, 0x828E, // FULLWIDTH LATIN SMALL LETTER N
+ 0xFF4F, 0x828F, // FULLWIDTH LATIN SMALL LETTER O
+ 0xFF50, 0x8290, // FULLWIDTH LATIN SMALL LETTER P
+ 0xFF51, 0x8291, // FULLWIDTH LATIN SMALL LETTER Q
+ 0xFF52, 0x8292, // FULLWIDTH LATIN SMALL LETTER R
+ 0xFF53, 0x8293, // FULLWIDTH LATIN SMALL LETTER S
+ 0xFF54, 0x8294, // FULLWIDTH LATIN SMALL LETTER T
+ 0xFF55, 0x8295, // FULLWIDTH LATIN SMALL LETTER U
+ 0xFF56, 0x8296, // FULLWIDTH LATIN SMALL LETTER V
+ 0xFF57, 0x8297, // FULLWIDTH LATIN SMALL LETTER W
+ 0xFF58, 0x8298, // FULLWIDTH LATIN SMALL LETTER X
+ 0xFF59, 0x8299, // FULLWIDTH LATIN SMALL LETTER Y
+ 0xFF5A, 0x829A, // FULLWIDTH LATIN SMALL LETTER Z
+ 0xFF5B, 0x816F, // FULLWIDTH LEFT CURLY BRACKET
+ 0xFF5C, 0x8162, // FULLWIDTH VERTICAL LINE
+ 0xFF5D, 0x8170, // FULLWIDTH RIGHT CURLY BRACKET
+ 0xFFE3, 0x8150, // FULLWIDTH MACRON
+ 0xFFE5, 0x818F // FULLWIDTH YEN SIGN
+};
/*
libzint - the open source barcode library
- Copyright (C) 2009 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2019 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <locale.h>
#include <string.h>
+#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#ifdef _MSC_VER
#include "common.h"
-void pick_colour(int colour, char colour_code[]) {
- switch(colour) {
- case 0: // White
- strcpy(colour_code, "ffffff");
- break;
- case 1: // Cyan
- strcpy(colour_code, "00ffff");
- break;
- case 2: // Blue
- strcpy(colour_code, "0000ff");
- break;
- case 3: // Magenta
- strcpy(colour_code, "ff00ff");
- break;
- case 4: // Red
- strcpy(colour_code, "ff0000");
- break;
- case 5: // Yellow
- strcpy(colour_code, "ffff00");
- break;
- case 6: // Green
- strcpy(colour_code, "00ff00");
- break;
- default: // Black
- strcpy(colour_code, "000000");
- break;
- }
-}
-
-static void make_html_friendly(unsigned char * string, char * html_version) {
+void make_html_friendly(unsigned char * string, char * html_version) {
/* Converts text to use HTML entity codes */
int i, html_pos;
html_pos = 0;
html_version[html_pos] = '\0';
- for (i = 0; i < (int) ustrlen(string); i++) {
+ for (i = 0; i < ustrlen(string); i++) {
switch(string[i]) {
case '>':
strcat(html_version, ">");
}
}
-INTERNAL int svg_plot(struct zint_symbol *symbol) {
+int svg_plot(struct zint_symbol *symbol) {
FILE *fsvg;
int error_number = 0;
const char *locale = NULL;
struct zint_vector_circle *circle;
struct zint_vector_string *string;
- char colour_code[7];
-
#ifdef _MSC_VER
char* html_string;
#endif
int html_len = strlen((char *)symbol->text) + 1;
- for (i = 0; i < (int) strlen((char *)symbol->text); i++) {
+ for (0; i < strlen((char *)symbol->text); i++) {
switch(symbol->text[i]) {
case '>':
case '<':
rect = symbol->vector->rectangles;
while (rect) {
- if (rect->colour == -1) {
- fprintf(fsvg, " <rect x=\"%.2f\" y=\"%.2f\" width=\"%.2f\" height=\"%.2f\" />\n", rect->x, rect->y, rect->width, rect->height);
- } else {
- pick_colour(rect->colour, colour_code);
- fprintf(fsvg, " <rect x=\"%.2f\" y=\"%.2f\" width=\"%.2f\" height=\"%.2f\" fill=\"#%s\" />\n", rect->x, rect->y, rect->width, rect->height, colour_code);
- }
+ fprintf(fsvg, " <rect x=\"%.2f\" y=\"%.2f\" width=\"%.2f\" height=\"%.2f\" />\n", rect->x, rect->y, rect->width, rect->height);
rect = rect->next;
}
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
-/* Telepen Barcode Symbology information and History (BSiH) https://telepen.co.uk/wp-content/uploads/2018/10/Barcode-Symbology-information-and-History.pdf */
-
-#define SODIUM "0123456789X"
+#define SODIUM "0123456789X"
+#include <string.h>
#include <stdio.h>
+#include <stdlib.h>
#include "common.h"
static char *TeleTable[] = {
- "31313131", "1131313111", "33313111", "1111313131", "3111313111", "11333131", "13133131", "111111313111",
+ "1111111111111111", "1131313111", "33313111", "1111313131", "3111313111", "11333131", "13133131", "111111313111",
"31333111", "1131113131", "33113131", "1111333111", "3111113131", "1113133111", "1311133111", "111111113131",
"3131113111", "11313331", "333331", "111131113111", "31113331", "1133113111", "1313113111", "1111113331",
"31131331", "113111113111", "3311113111", "1111131331", "311111113111", "1113111331", "1311111331", "11111111113111",
"3113111311", "113111111131", "3311111131", "111113111311", "311111111131", "111311111311", "131111111311", "11111111111131",
"3131311111", "11313133", "333133", "111131311111", "31113133", "1133311111", "1313311111", "1111113133",
"313333", "113111311111", "3311311111", "11113333", "311111311111", "11131333", "13111333", "11111111311111",
- "31311133", "1131331111", "33331111", "1111311133", "3111331111", "11331133", "13131133", "111111331111",
+ "31311133", "1131331111", "33331111", " 1111311133", "3111331111", "11331133", "13131133", "111111331111",
"3113131111", "1131111133", "33111133", "111113131111", "3111111133", "111311131111", "131111131111", "111111111133",
"31311313", "113131111111", "3331111111", "1111311313", "311131111111", "11331313", "13131313", "11111131111111",
"3133111111", "1131111313", "33111313", "111133111111", "3111111313", "111313111111", "131113111111", "111111111313",
"313111111111", "1131131113", "33131113", "11113111111111", "3111131113", "113311111111", "131311111111", "111111131113",
- "3113111113", "11311111111111", "331111111111", "111113111113", "31111111111111", "111311111113", "131111111113", "1111111111111111",
+ "3113111113", "11311111111111", "331111111111", "111113111113", "31111111111111", "111311111113", "131111111113"
};
-INTERNAL int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) {
+int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) {
unsigned int i, count, check_digit;
int error_number;
- char dest[521]; /* 12 (start) + 30 * 16 (max for DELs) + 16 (check digit) + 12 (stop) + 1 = 521 */
+ char dest[512]; /*14 + 30 * 14 + 14 + 14 + 1 ~ 512 */
error_number = 0;
strcpy(dest, TeleTable['_']);
for (i = 0; i < src_len; i++) {
- if (source[i] > 127) {
+ if (source[i] > 126) {
/* Cannot encode extended ASCII */
strcpy(symbol->errtxt, "391: Invalid characters in input data");
return ZINT_ERROR_INVALID_DATA;
return error_number;
}
-INTERNAL int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) {
+int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) {
unsigned int count, check_digit, glyph;
int error_number;
- size_t i, temp_length = src_len;
- char dest[521]; /* 12 (start) + 30 * 16 (max for DELs) + 16 (check digit) + 12 (stop) + 1 = 521 */
+ size_t i,temp_length = src_len;
+ char dest[1024]; /* 14 + 60 * 14 + 14 + 14 + 1 ~ 1024 */
unsigned char temp[64];
count = 0;
ustrcpy(symbol->text, temp);
return error_number;
}
+
/* tif.c - Aldus Tagged Image File Format support */
-/* TIFF Revision 6.0 https://www.adobe.io/content/dam/udp/en/open/standards/tiff/TIFF6.pdf */
/*
libzint - the open source barcode library
- Copyright (C) 2016 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2016-2017 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <math.h>
-#include <assert.h>
#include "common.h"
#include "tif.h"
#ifdef _MSC_VER
#include <malloc.h>
#endif
-INTERNAL int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
+int tbump_up(int input) {
+ /* Strings length must be a multiple of 4 bytes */
+ if ((input % 2) == 1) {
+ input++;
+ }
+ return input;
+}
+
+int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int i;
int rows_per_strip, strip_count;
- unsigned int free_memory;
- int row, column, strip;
- unsigned int bytes_put;
+ int free_memory;
+ int row, column, strip, bytes_put;
FILE *tif_file;
#ifdef _MSC_VER
uint32_t* strip_offset;
bggrn = (16 * ctoi(symbol->bgcolour[2])) + ctoi(symbol->bgcolour[3]);
bgblu = (16 * ctoi(symbol->bgcolour[4])) + ctoi(symbol->bgcolour[5]);
- /* TIFF Rev 6 Section 7 p.27 "Set RowsPerStrip such that the size of each strip is about 8K bytes...
- * Note that extremely wide high resolution images may have rows larger than 8K bytes; in this case,
- * RowsPerStrip should be 1, and the strip will be larger than 8K." */
rows_per_strip = 8192 / (symbol->bitmap_width * 3);
if (rows_per_strip == 0) {
rows_per_strip = 1;
}
- /* Suppresses clang-tidy clang-analyzer-core.VLASize warning */
- assert(symbol->bitmap_height > 0);
-
strip_count = symbol->bitmap_height / rows_per_strip;
if ((symbol->bitmap_height % rows_per_strip) != 0) {
strip_count++;
}
-
+
if (rows_per_strip > symbol->bitmap_height) {
rows_per_strip = symbol->bitmap_height;
}
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("TIFF (%dx%d) Strip Count %d, Rows Per Strip %d\n", symbol->bitmap_width, symbol->bitmap_height, strip_count, rows_per_strip);
+
+ if (strip_count == 1) {
+ rows_per_strip = (rows_per_strip / 2) + 1;
+ strip_count++;
}
-
+
#ifndef _MSC_VER
uint32_t strip_offset[strip_count];
uint32_t strip_bytes[strip_count];
}
if (free_memory > 0xffff0000) {
+#ifdef _MSC_VER
+ free(strip_offset);
+ free(strip_bytes);
+#endif
strcpy(symbol->errtxt, "670: Output file size too big");
return ZINT_ERROR_MEMORY;
}
fwrite(&header, sizeof(tiff_header_t), 1, tif_file);
free_memory += sizeof(tiff_ifd_t);
-
+
/* Pixel data */
strip = 0;
bytes_put = 0;
for (row = 0; row < symbol->bitmap_height; row++) {
for (column = 0; column < symbol->bitmap_width; column++) {
- switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
- case 'W': // White
- putc(255, tif_file);
- putc(255, tif_file);
- putc(255, tif_file);
- break;
- case 'C': // Cyan
- putc(0, tif_file);
- putc(255, tif_file);
- putc(255, tif_file);
- break;
- case 'B': // Blue
- putc(0, tif_file);
- putc(0, tif_file);
- putc(255, tif_file);
- break;
- case 'M': // Magenta
- putc(255, tif_file);
- putc(0, tif_file);
- putc(255, tif_file);
- break;
- case 'R': // Red
- putc(255, tif_file);
- putc(0, tif_file);
- putc(0, tif_file);
- break;
- case 'Y': // Yellow
- putc(255, tif_file);
- putc(255, tif_file);
- putc(0, tif_file);
- break;
- case 'G': // Green
- putc(0, tif_file);
- putc(255, tif_file);
- putc(0, tif_file);
- break;
- case 'K': // Black
- putc(0, tif_file);
- putc(0, tif_file);
- putc(0, tif_file);
- break;
- case '1':
- putc(fgred, tif_file);
- putc(fggrn, tif_file);
- putc(fgblu, tif_file);
- break;
- default:
- putc(bgred, tif_file);
- putc(bggrn, tif_file);
- putc(bgblu, tif_file);
- break;
+ if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
+ putc(fgred, tif_file);
+ putc(fggrn, tif_file);
+ putc(fgblu, tif_file);
+ } else {
+ putc(bgred, tif_file);
+ putc(bggrn, tif_file);
+ putc(bgblu, tif_file);
}
bytes_put += 3;
}
-
- if (strip < strip_count && (bytes_put + 3) >= strip_bytes[strip]) {
+
+ if ((bytes_put + 3) >= strip_bytes[strip]) {
// End of strip, pad if strip length is odd
if (strip_bytes[strip] % 2 == 1) {
putc(0, tif_file);
ifd.strip_offsets.tag = 0x0111;
ifd.strip_offsets.type = 4; // LONG
ifd.strip_offsets.count = strip_count;
- if (strip_count == 1) {
- ifd.strip_offsets.offset = strip_offset[0];
- } else {
- ifd.strip_offsets.offset = free_memory;
- free_memory += strip_count * 4;
- }
+ ifd.strip_offsets.offset = free_memory;
+ free_memory += strip_count * 4;
ifd.samples_per_pixel.tag = 0x0115;
ifd.samples_per_pixel.type = 3;
ifd.strip_byte_counts.tag = 0x0117;
ifd.strip_byte_counts.type = 4;
ifd.strip_byte_counts.count = strip_count;
- if (strip_count == 1) {
- ifd.strip_byte_counts.offset = strip_bytes[0];
- } else {
- ifd.strip_byte_counts.offset = free_memory;
- free_memory += strip_count * 4;
- }
+ ifd.strip_byte_counts.offset = free_memory;
+ free_memory += strip_count * 4;
ifd.x_resolution.tag = 0x011a;
ifd.x_resolution.type = 5;
fwrite(&temp, 2, 1, tif_file); // Green Bytes
fwrite(&temp, 2, 1, tif_file); // Blue Bytes
- if (strip_count != 1) {
- /* Strip offsets */
- for (i = 0; i < strip_count; i++) {
- fwrite(&strip_offset[i], 4, 1, tif_file);
- }
+ /* Strip offsets */
+ for(i = 0; i < strip_count; i++) {
+ fwrite(&strip_offset[i], 4, 1, tif_file);
+ }
- /* Strip byte lengths */
- for (i = 0; i < strip_count; i++) {
- fwrite(&strip_bytes[i], 4, 1, tif_file);
- }
+ /* Strip byte lengths */
+ for(i = 0; i < strip_count; i++) {
+ fwrite(&strip_bytes[i], 4, 1, tif_file);
}
/* X Resolution */
/* ultra.c - Ultracode
libzint - the open source barcode library
- Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2019 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
- /* This version was developed using AIMD/TSC15032-43 v0.99c Edit 60, dated 4th Nov 2015 */
-
-#ifdef _MSC_VER
-#include <malloc.h>
-#endif
#include <stdio.h>
+#include <string.h>
#include "common.h"
-#define EIGHTBIT_MODE 10
-#define ASCII_MODE 20
-#define C43_MODE 30
-
-#define PREDICT_WINDOW 12
-
-#define GFMUL(i, j) ((((i) == 0)||((j) == 0)) ? 0 : gfPwr[(gfLog[i] + gfLog[j])])
-
-static const char fragment[27][14] = {"http://", "https://", "http://www.", "https://www.",
- "ftp://", "www.", ".com", ".edu", ".gov", ".int", ".mil", ".net", ".org",
- ".mobi", ".coop", ".biz", ".info", "mailto:", "tel:", ".cgi", ".asp",
- ".aspx", ".php", ".htm", ".html", ".shtml", "file:"};
-
-static const char ultra_c43_set1[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 .,%";
-static const char ultra_c43_set2[] = "abcdefghijklmnopqrstuvwxyz:/?#[]@=_~!.,-";
-static const char ultra_c43_set3[] = "{}`()\"+'<>|$;&\\^*";
-static const char ultra_digit[] = "0123456789,/";
-static const char ultra_colour[] = "WCBMRYGK";
-
-//static const int ultra_maxsize[] = {34, 78, 158, 282}; // According to Table 1
-static const int ultra_maxsize[] = {34, 81, 158, 282}; // Adjusted to allow 79-81 codeword range in 3-row symbols (only 1 secondary vertical clock track, not 2, so 3 extra)
-
-static const int ultra_mincols[] = {5, 13, 23, 30}; // # Total Tile Columns from Table 1
-
-static const int kec[] = {0, 1, 2, 4, 6, 8}; // Value K(EC) from Table 12
-
-static const int dccu[] = {
- 051363, 051563, 051653, 053153, 053163, 053513, 053563, 053613, // 0-7
- 053653, 056153, 056163, 056313, 056353, 056363, 056513, 056563, // 8-15
- 051316, 051356, 051536, 051616, 053156, 053516, 053536, 053616, // 16-23
- 053636, 053656, 056136, 056156, 056316, 056356, 056516, 056536 // 24-31
-};
-
-static const int dccl[] = {
- 061351, 061361, 061531, 061561, 061631, 061651, 063131, 063151, // 0-7
- 063161, 063531, 063561, 063631, 065131, 065161, 065351, 065631, // 8-15
- 031351, 031361, 031531, 031561, 031631, 031651, 035131, 035151, // 16-23
- 035161, 035361, 035631, 035651, 036131, 036151, 036351, 036531 // 24-31
-};
-
-static const int tiles[] = {
- 013135, 013136, 013153, 013156, 013163, 013165, 013513, 013515, 013516, 013531, // 0-9
- 013535, 013536, 013561, 013563, 013565, 013613, 013615, 013616, 013631, 013635, // 10-19
- 013636, 013651, 013653, 013656, 015135, 015136, 015153, 015163, 015165, 015313, // 20-29
- 015315, 015316, 015351, 015353, 015356, 015361, 015363, 015365, 015613, 015615, // 30-39
- 015616, 015631, 015635, 015636, 015651, 015653, 015656, 016135, 016136, 016153, // 40-49
- 016156, 016165, 016313, 016315, 016316, 016351, 016353, 016356, 016361, 016363, // 50-59
- 016365, 016513, 016515, 016516, 016531, 016535, 016536, 016561, 016563, 016565, // 60-69
- 031315, 031316, 031351, 031356, 031361, 031365, 031513, 031515, 031516, 031531, // 70-79
- 031535, 031536, 031561, 031563, 031565, 031613, 031615, 031631, 031635, 031636, // 80-89
- 031651, 031653, 031656, 035131, 035135, 035136, 035151, 035153, 035156, 035161, // 90-99
- 035163, 035165, 035315, 035316, 035351, 035356, 035361, 035365, 035613, 035615, // 100-109
- 035616, 035631, 035635, 035636, 035651, 035653, 035656, 036131, 036135, 036136, // 110-119
- 036151, 036153, 036156, 036163, 036165, 036315, 036316, 036351, 036356, 036361, // 120-129
- 036365, 036513, 036515, 036516, 036531, 036535, 036536, 036561, 036563, 036565, // 130-139
- 051313, 051315, 051316, 051351, 051353, 051356, 051361, 051363, 051365, 051513, // 140-149
- 051516, 051531, 051536, 051561, 051563, 051613, 051615, 051616, 051631, 051635, // 150-159
- 051636, 051651, 051653, 051656, 053131, 053135, 053136, 053151, 053153, 053156, // 160-169
- 053161, 053163, 053165, 053513, 053516, 053531, 053536, 053561, 053563, 053613, // 170-179
- 053615, 053616, 053631, 053635, 053636, 053651, 053653, 053656, 056131, 056135, // 180-189
- 056136, 056151, 056153, 056156, 056161, 056163, 056165, 056313, 056315, 056316, // 190-199
- 056351, 056353, 056356, 056361, 056363, 056365, 056513, 056516, 056531, 056536, // 200-209
- 056561, 056563, 061313, 061315, 061316, 061351, 061353, 061356, 061361, 061363, // 210-219
- 061365, 061513, 061515, 061516, 061531, 061535, 061536, 061561, 061563, 061565, // 220-229
- 061615, 061631, 061635, 061651, 061653, 063131, 063135, 063136, 063151, 063153, // 230-239
- 063156, 063161, 063163, 063165, 063513, 063515, 063516, 063531, 063535, 063536, // 240-249
- 063561, 063563, 063565, 063613, 063615, 063631, 063635, 063651, 063653, 065131, // 250-259
- 065135, 065136, 065151, 065153, 065156, 065161, 065163, 065165, 065313, 065315, // 260-269
- 065316, 065351, 065353, 065356, 065361, 065363, 065365, 065613, 065615, 065631, // 270-279
- 065635, 065651, 065653, 056565, 051515 // 280-284
-};
-
-/* The following adapted from ECC283.C "RSEC codeword generator"
- * from Annex B of Ultracode draft
- * originally written by Ted Williams of Symbol Vision Corp.
- * Dated 2001-03-09
- * Corrected thanks to input from Terry Burton */
-
-/*
- * NOTE: Included here is an attempt to allow code compression within Ultracode. Unfortunately
- * the copy of the standard this was written from was an early draft which includes self
- * contradictions, so this is a "best guess" implementation. Because it is not guaranteed
- * to be correct this compression is not applied by default. To enable compression set
- *
- * symbol->option_3 = ULTRA_COMPRESSION;
- *
- * Code compression should be enabled by default when it has been implemented according to
- * a more reliable version of the specification.
- */
-
-/* Generate divisor polynomial gQ(x) for GF283() given the required ECC size, 3 to 101 */
-static void ultra_genPoly(short EccSize, unsigned short gPoly[], unsigned short gfPwr[], unsigned short gfLog[]) {
- int i, j;
-
- gPoly[0] = 1;
- for (i = 1; i < (EccSize + 1); i++) gPoly[i] = 0;
-
- for (i = 0; i < EccSize; i++) {
- for (j = i; j >= 0; j--)
- gPoly[j + 1] = (gPoly[j] + GFMUL(gPoly[j + 1], gfPwr[i + 1])) % 283;
- gPoly[0] = GFMUL(gPoly[0], gfPwr[i + 1]);
- }
- for (i = EccSize - 1; i >= 0; i -= 2) gPoly[i] = 283 - gPoly[i];
-
- /* gPoly[i] is > 0 so modulo operation not needed */
-}
-
-/* Generate the log and antilog tables for GF283() multiplication & division */
-static void ultra_initLogTables(unsigned short gfPwr[], unsigned short gfLog[]) {
- int i, j;
-
- for (j = 0; j < 283; j++) gfLog[j] = 0;
- i = 1;
- for (j = 0; j < 282; j++) {
- /* j + 282 indicies save doing the modulo operation in GFMUL */
- gfPwr[j + 282] = gfPwr[j] = (short) i;
- gfLog[i] = (short) j;
- i = (i * 3) % 283;
- }
-}
-
-static void ultra_gf283(short DataSize, short EccSize, int Message[]) {
- /* Input is complete message codewords in array Message[282]
- * DataSize is number of message codewords
- * EccSize is number of Reed-Solomon GF(283) check codewords to generate
- *
- * Upon exit, Message[282] contains complete 282 codeword Symbol Message
- * including leading zeroes corresponding to each truncated codeword */
-
- unsigned short gPoly[283], gfPwr[(282 * 2)], gfLog[283];
- int i, j, n;
- unsigned short t;
-
- /* first build the log & antilog tables used in multiplication & division */
- ultra_initLogTables(gfPwr, gfLog);
-
- /* then generate the division polynomial of length EccSize */
- ultra_genPoly(EccSize, gPoly, gfPwr, gfLog);
-
- /* zero all EccSize codeword values */
- for (j = 281; (j > (281 - EccSize)); j--) Message[j] = 0;
-
- /* shift message codewords to the right, leave space for ECC checkwords */
- for (i = DataSize - 1; (i >= 0); j--, i--) Message[j] = Message[i];
-
- /* add zeroes to pad left end Message[] for truncated codewords */
- j++;
- for (i = 0; i < j; i++) Message[i] = 0;
-
- /* generate (EccSize) Reed-Solomon checkwords */
- for (n = j; n < (j + DataSize); n++) {
- t = (Message[j + DataSize] + Message[n]) % 283;
- for (i = 0; i < (EccSize - 1); i++) {
- Message[j + DataSize + i] = (Message[j + DataSize + i + 1] + 283
- - GFMUL(t, gPoly[EccSize - 1 - i])) % 283;
- }
- Message[j + DataSize + EccSize - 1] = (283 - GFMUL(t, gPoly[0])) % 283;
- }
- for (i = j + DataSize; i < (j + DataSize + EccSize); i++)
- Message[i] = (283 - Message[i]) % 283;
-}
-
-/* End of Ted Williams code */
-
-static int ultra_find_fragment(const unsigned char source[], int source_length, int position) {
- int retval = -1;
- int j, k, latch, fraglen;
-
- for (j = 0; j < 27; j++) {
- latch = 0;
- fraglen = strlen(fragment[j]);
- if ((position + fraglen) <= source_length) {
- latch = 1;
- for (k = 0; k < fraglen; k++) {
- if (source[position + k] != fragment[j][k]) {
- latch = 0;
- break;
- }
- }
- }
-
- if (latch) {
- retval = j;
- }
- }
-
- return retval;
-}
-
-/* Encode characters in 8-bit mode */
-static float look_ahead_eightbit(unsigned char source[], int in_length, int in_locn, char current_mode, int end_char, int cw[], int* cw_len, int gs1)
-{
- int codeword_count = 0;
- int i;
- int letters_encoded = 0;
-
- if (current_mode != EIGHTBIT_MODE) {
- cw[codeword_count] = 282; // Unlatch
- codeword_count += 1;
- }
-
- i = in_locn;
- while ((i < in_length) && (i < end_char)) {
- if ((source[i] == '[') && gs1) {
- cw[codeword_count] = 268; // FNC1
- } else {
- cw[codeword_count] = source[i];
- }
- i++;
- codeword_count++;
- }
-
- letters_encoded = i - in_locn;
-
- *cw_len = codeword_count;
-
- if (codeword_count == 0) {
- return 0.0;
- } else {
- return (float)letters_encoded / (float)codeword_count;
- }
-}
-
-/* Encode character in the ASCII mode/submode (including numeric compression) */
-static float look_ahead_ascii(unsigned char source[], int in_length, int in_locn, char current_mode, int symbol_mode, int end_char, int cw[], int* cw_len, int* encoded, int gs1) {
- int codeword_count = 0;
- int i;
- int first_digit, second_digit, done;
- int letters_encoded = 0;
-
- if (current_mode == EIGHTBIT_MODE) {
- cw[codeword_count] = 267; // Latch ASCII Submode
- codeword_count++;
- }
-
- if (current_mode == C43_MODE) {
- cw[codeword_count] = 282; // Unlatch
- codeword_count++;
- if (symbol_mode == EIGHTBIT_MODE) {
- cw[codeword_count] = 267; // Latch ASCII Submode
- codeword_count++;
- }
- }
-
- i = in_locn;
- do {
- /* Check for double digits */
- done = 0;
- if (i + 1 < in_length) {
- first_digit = posn(ultra_digit, source[i]);
- second_digit = posn(ultra_digit, source[i + 1]);
- if ((first_digit != -1) && (second_digit != -1)) {
- /* Double digit can be encoded */
- if ((first_digit >= 0) && (first_digit <= 9) && (second_digit >= 0) && (second_digit <= 9)) {
- /* Double digit numerics */
- cw[codeword_count] = (10 * first_digit) + second_digit + 128;
- codeword_count++;
- i += 2;
- done = 1;
- } else if ((first_digit >= 0) && (first_digit <= 9) && (second_digit == 10)) {
- /* Single digit followed by selected decimal point character */
- cw[codeword_count] = first_digit + 228;
- codeword_count++;
- i += 2;
- done = 1;
- } else if ((first_digit == 10) && (second_digit >= 0) && (second_digit <= 9)) {
- /* Selected decimal point character followed by single digit */
- cw[codeword_count] = second_digit + 238;
- codeword_count++;
- i += 2;
- done = 1;
- } else if ((first_digit >= 0) && (first_digit <= 9) && (second_digit == 11)) {
- /* Single digit or decimal point followed by field deliminator */
- cw[codeword_count] = first_digit + 248;
- codeword_count++;
- i += 2;
- done = 1;
- } else if ((first_digit == 11) && (second_digit >= 0) && (second_digit <= 9)) {
- /* Field deliminator followed by single digit or decimal point */
- cw[codeword_count] = second_digit + 259;
- codeword_count++;
- i += 2;
- done = 1;
- }
- }
- }
-
- if (!done && source[i] < 0x80) {
- if ((source[i] == '[') && gs1) {
- cw[codeword_count] = 272; // FNC1
- } else {
- cw[codeword_count] = source[i];
- }
- codeword_count++;
- i++;
- }
- } while ((i < in_length) && (i < end_char) && (source[i] < 0x80));
-
- letters_encoded = i - in_locn;
- if (encoded != NULL) {
- *encoded = letters_encoded;
- }
-
- *cw_len = codeword_count;
-
- if (codeword_count == 0) {
- return 0.0;
- } else {
- return (float)letters_encoded / (float)codeword_count;
- }
-}
-
-/* Returns true if should latch to subset other than given `subset` */
-static int c43_should_latch_other(const unsigned char data[], const size_t length, const unsigned int locn, int subset, int gs1) {
- unsigned int i, fraglen, predict_window;
- int cnt, alt_cnt, fragno;
- const char* set = subset == 1 ? ultra_c43_set1 : ultra_c43_set2;
- const char* alt_set = subset == 2 ? ultra_c43_set1 : ultra_c43_set2;
-
- if (locn + 3 > length) {
- return 0;
- }
- predict_window = locn + 3;
-
- for (i = locn, cnt = 0, alt_cnt = 0; i < predict_window; i++) {
- if (data[i] <= 0x1F || data[i] >= 0x7F || (gs1 && data[i] == '[')) {
- break;
- }
-
- fragno = ultra_find_fragment(data, length, i);
- if (fragno != -1 && fragno != 26) {
- fraglen = strlen(fragment[fragno]);
- predict_window += fraglen;
- if (predict_window > length) {
- predict_window = length;
- }
- i += fraglen - 1;
- } else {
- if (strchr(set, data[i]) != NULL) {
- cnt++;
- }
- if (strchr(alt_set, data[i]) != NULL) {
- alt_cnt++;
- }
- }
- }
-
- return alt_cnt > cnt;
-}
-
-static int get_subset(unsigned char source[], int in_length, int in_locn, int current_subset) {
- int fragno;
- int subset = 0;
-
- fragno = ultra_find_fragment(source, in_length, in_locn);
- if ((fragno != -1) && (fragno != 26)) {
- subset = 3;
- } else if (current_subset == 2) {
- if (posn(ultra_c43_set2, source[in_locn]) != -1) {
- subset = 2;
- } else if (posn(ultra_c43_set1, source[in_locn]) != -1) {
- subset = 1;
- }
- } else {
- if (posn(ultra_c43_set1, source[in_locn]) != -1) {
- subset = 1;
- } else if (posn(ultra_c43_set2, source[in_locn]) != -1) {
- subset = 2;
- }
- }
-
- if (subset == 0) {
- if (posn(ultra_c43_set3, source[in_locn]) != -1) {
- subset = 3;
- }
- }
-
- return subset;
-}
-
-/* Encode characters in the C43 compaction submode */
-static float look_ahead_c43(unsigned char source[], int in_length, int in_locn, char current_mode, int end_char, int subset, int cw[], int* cw_len, int* encoded, int gs1, int debug) {
- int codeword_count = 0;
- int subcodeword_count = 0;
- int i;
- int fragno;
- int sublocn = in_locn;
- int new_subset;
- int unshift_set;
- int base43_value;
- int letters_encoded = 0;
- int pad;
-
-#ifndef _MSC_VER
- int subcw[(in_length + 3) * 2];
-#else
- int * subcw = (int *) _alloca((in_length + 3) * 2 * sizeof (int));
-#endif /* _MSC_VER */
-
- if (current_mode == EIGHTBIT_MODE) {
- /* Check for permissable URL C43 macro sequences, otherwise encode directly */
- fragno = ultra_find_fragment(source, in_length, sublocn);
-
- if ((fragno == 2) || (fragno == 3)) {
- // http://www. > http://
- // https://www. > https://
- fragno -= 2;
- }
-
- switch(fragno) {
- case 17: // mailto:
- cw[codeword_count] = 276;
- sublocn += strlen(fragment[fragno]);
- codeword_count++;
- break;
- case 18: // tel:
- cw[codeword_count] = 277;
- sublocn += strlen(fragment[fragno]);
- codeword_count++;
- break;
- case 26: // file:
- cw[codeword_count] = 278;
- sublocn += strlen(fragment[fragno]);
- codeword_count++;
- break;
- case 0: // http://
- cw[codeword_count] = 279;
- sublocn += strlen(fragment[fragno]);
- codeword_count++;
- break;
- case 1: // https://
- cw[codeword_count] = 280;
- sublocn += strlen(fragment[fragno]);
- codeword_count++;
- break;
- case 4: // ftp://
- cw[codeword_count] = 281;
- sublocn += strlen(fragment[fragno]);
- codeword_count++;
- break;
- default:
- if (subset == 1) {
- cw[codeword_count] = 260; // C43 Compaction Submode C1
- codeword_count++;
- }
-
- if ((subset == 2) || (subset == 3)) {
- cw[codeword_count] = 266; // C43 Compaction Submode C2
- codeword_count++;
- }
- break;
- }
- }
-
- if (current_mode == ASCII_MODE) {
- if (subset == 1) {
- cw[codeword_count] = 278; // C43 Compaction Submode C1
- codeword_count++;
- }
-
- if ((subset == 2) || (subset == 3)) {
- cw[codeword_count] = 280; // C43 Compaction Submode C2
- codeword_count++;
- }
- }
- unshift_set = subset;
-
- while ((sublocn < in_length) && (sublocn < end_char)) {
- /* Check for FNC1 */
- if (gs1 && source[sublocn] == '[') {
- break;
- }
-
- new_subset = get_subset(source, in_length, sublocn, subset);
-
- if (new_subset == 0) {
- break;
- }
-
- if ((new_subset != subset) && ((new_subset == 1) || (new_subset == 2))) {
- if (c43_should_latch_other(source, in_length, sublocn, subset, gs1)) {
- subcw[subcodeword_count] = 42; // Latch to other C43 set
- subcodeword_count++;
- unshift_set = new_subset;
- } else {
- subcw[subcodeword_count] = 40; // Shift to other C43 set for 1 char
- subcodeword_count++;
- subcw[subcodeword_count] = posn(new_subset == 1 ? ultra_c43_set1 : ultra_c43_set2, source[sublocn]);
- subcodeword_count++;
- sublocn++;
- continue;
- }
- }
-
- subset = new_subset;
-
- if (subset == 1) {
- subcw[subcodeword_count] = posn(ultra_c43_set1, source[sublocn]);
- subcodeword_count++;
- sublocn++;
- }
-
- if (subset == 2) {
- subcw[subcodeword_count] = posn(ultra_c43_set2, source[sublocn]);
- subcodeword_count++;
- sublocn++;
- }
-
- if (subset == 3) {
- subcw[subcodeword_count] = 41; // Shift to set 3
- subcodeword_count++;
-
- fragno = ultra_find_fragment(source, in_length, sublocn);
- if (fragno == 26) {
- fragno = -1;
- }
- if ((fragno >= 0) && (fragno <= 18)) {
- subcw[subcodeword_count] = fragno; // C43 Set 3 codewords 0 to 18
- subcodeword_count++;
- sublocn += strlen(fragment[fragno]);
- }
- if ((fragno >= 19) && (fragno <= 25)) {
- subcw[subcodeword_count] = fragno + 17; // C43 Set 3 codewords 36 to 42
- subcodeword_count++;
- sublocn += strlen(fragment[fragno]);
- }
- if (fragno == -1) {
- subcw[subcodeword_count] = posn(ultra_c43_set3, source[sublocn]) + 19; // C43 Set 3 codewords 19 to 35
- subcodeword_count++;
- sublocn++;
- }
- subset = unshift_set;
- }
- }
-
- pad = 3 - (subcodeword_count % 3);
- if (pad == 3) {
- pad = 0;
- }
-
- for (i = 0; i < pad; i++) {
- subcw[subcodeword_count] = 42; // Latch to other C43 set used as pad
- subcodeword_count++;
- }
-
- if (debug & ZINT_DEBUG_PRINT) {
- printf("C43 codewords %.*s: (%d)", in_length, source + in_locn, subcodeword_count);
- for (i = 0; i < subcodeword_count; i++) printf( " %d", subcw[i]);
- printf("\n");
- }
-
- letters_encoded = sublocn - in_locn;
- if (encoded != NULL) {
- *encoded = letters_encoded;
- }
-
- for (i = 0; i < subcodeword_count; i += 3) {
- base43_value = (43 * 43 * subcw[i]) + (43 * subcw[i + 1]) + subcw[i + 2];
- cw[codeword_count] = base43_value / 282;
- codeword_count++;
- cw[codeword_count] = base43_value % 282;
- codeword_count++;
- }
-
- *cw_len = codeword_count;
-
- if (codeword_count == 0) {
- return 0.0;
- } else {
- return (float)letters_encoded / (float)codeword_count;
- }
-}
-
-/* Produces a set of codewords which are "somewhat" optimised - this could be improved on */
-static int ultra_generate_codewords(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length, int codewords[]) {
- int i;
- int crop_length;
- int codeword_count = 0;
- int input_locn = 0;
- char symbol_mode;
- char current_mode;
- int subset;
- float eightbit_score;
- float ascii_score;
- float c43_score;
- int end_char;
- int block_length;
- int fragment_length;
- int fragno;
- int gs1 = 0;
- int ascii_encoded, c43_encoded;
-
-#ifndef _MSC_VER
- unsigned char crop_source[in_length + 1];
- char mode[in_length + 1];
- int cw_fragment[in_length * 2 + 1];
-#else
- unsigned char * crop_source = (unsigned char *) _alloca((in_length + 1) * sizeof (unsigned char));
- char * mode = (char *) _alloca((in_length + 1) * sizeof (char));
- int * cw_fragment = (int *) _alloca((in_length * 2 + 1) * sizeof (int));
-#endif /* _MSC_VER */
-
- if ((symbol->input_mode & 0x07) == GS1_MODE) {
- gs1 = 1;
- }
-
- // Decide start character codeword (from Table 5)
- symbol_mode = ASCII_MODE;
- for (i = 0; i < (int) in_length; i++) {
- if (source[i] >= 0x80) {
- symbol_mode = EIGHTBIT_MODE;
- break;
- }
- }
-
- if (symbol->option_3 != ULTRA_COMPRESSION && !gs1) {
- // Force eight-bit mode by default as other modes are poorly documented
- symbol_mode = EIGHTBIT_MODE;
- }
-
- if (symbol->output_options & READER_INIT) {
- /* Reader Initialisation mode */
- if (symbol_mode == ASCII_MODE) {
- codewords[0] = 272; // 7-bit ASCII mode
- codewords[1] = 271; // FNC3
- } else {
- codewords[0] = 257; // 8859-1
- codewords[1] = 269; // FNC3
- }
- codeword_count = 2;
- } else {
- /* Calculate start character codeword */
- if (symbol_mode == ASCII_MODE) {
- if (gs1) {
- codewords[0] = 273;
- } else {
- codewords[0] = 272;
- }
- } else {
- if ((symbol->eci >= 3) && (symbol->eci <= 18) && (symbol->eci != 14)) {
- // ECI indicates use of character set within ISO/IEC 8859
- codewords[0] = 257 + (symbol->eci - 3);
- if (codewords[0] > 267) {
- // Avoids ECI 14 for non-existant ISO/IEC 8859-12
- codewords[0]--;
- }
- } else if ((symbol->eci > 18) && (symbol->eci <= 898)) {
- // ECI indicates use of character set outside ISO/IEC 8859
- codewords[0] = 275 + (symbol->eci / 256);
- codewords[1] = symbol->eci % 256;
- codeword_count++;
- } else if (symbol->eci == 899) {
- // Non-language byte data
- codewords[0] = 280;
- } else if ((symbol->eci > 899) && (symbol->eci <= 9999)) {
- // ECI beyond 899 needs to use fixed length encodable ECI invocation (section 7.6.2)
- // Encode as 3 codewords
- codewords[0] = 257; // ISO/IEC 8859-1 used to enter 8-bit mode
- codewords[1] = 274; // Encode ECI as 3 codewords
- codewords[2] = (symbol->eci / 100) + 128;
- codewords[3] = (symbol->eci % 100) + 128;
- codeword_count += 3;
- } else if (symbol->eci >= 10000) {
- // Encode as 4 codewords
- codewords[0] = 257; // ISO/IEC 8859-1 used to enter 8-bit mode
- codewords[1] = 275; // Encode ECI as 4 codewords
- codewords[2] = (symbol->eci / 10000) + 128;
- codewords[3] = ((symbol->eci % 10000) / 100) + 128;
- codewords[4] = (symbol->eci % 100) + 128;
- codeword_count += 4;
- } else {
- codewords[0] = 257; // Default is assumed to be ISO/IEC 8859-1 (ECI 3)
- }
- }
-
- if ((codewords[0] == 257) || (codewords[0] == 272)) {
- fragno = ultra_find_fragment((unsigned char *)source, in_length, 0);
-
- // Check for http:// at start of input
- if ((fragno == 0) || (fragno == 2)) {
- codewords[0] = 281;
- input_locn = 7;
- symbol_mode = EIGHTBIT_MODE;
- }
-
-
- // Check for https:// at start of input
- if ((fragno == 1) || (fragno == 3)) {
- codewords[0] = 282;
- input_locn = 8;
- symbol_mode = EIGHTBIT_MODE;
- }
- }
- }
-
- codeword_count++;
-
- /* Check for 06 Macro Sequence and crop accordingly */
- if (in_length >= 9
- && source[0] == '[' && source[1] == ')' && source[2] == '>' && source[3] == '\x1e'
- && source[4] == '0' && source[5] == '6' && source[6] == '\x1d'
- && source[in_length - 2] == '\x1e' && source[in_length - 1] == '\x04') {
-
- if (symbol_mode == EIGHTBIT_MODE) {
- codewords[codeword_count] = 271; // 06 Macro
- } else {
- codewords[codeword_count] = 273; // 06 Macro
- }
- codeword_count++;
-
- for (i = 7; i < ((int) in_length - 2); i++) {
- crop_source[i - 7] = source[i];
- }
- crop_length = in_length - 9;
- crop_source[crop_length] = '\0';
- } else {
- /* Make a cropped version of input data - removes http:// and https:// if needed */
- for (i = input_locn; i < (int) in_length; i++) {
- crop_source[i - input_locn] = source[i];
- }
- crop_length = in_length - input_locn;
- crop_source[crop_length] = '\0';
- }
-
- /* Attempt encoding in all three modes to see which offers best compaction and store results */
- if (symbol->option_3 == ULTRA_COMPRESSION || gs1) {
- current_mode = symbol_mode;
- input_locn = 0;
- do {
- end_char = input_locn + PREDICT_WINDOW;
- eightbit_score = look_ahead_eightbit(crop_source, crop_length, input_locn, current_mode, end_char, cw_fragment, &fragment_length, gs1);
- ascii_score = look_ahead_ascii(crop_source, crop_length, input_locn, current_mode, symbol_mode, end_char, cw_fragment, &fragment_length, &ascii_encoded, gs1);
- subset = c43_should_latch_other(crop_source, crop_length, input_locn, 1 /*subset*/, gs1) ? 2 : 1;
- c43_score = look_ahead_c43(crop_source, crop_length, input_locn, current_mode, end_char, subset, cw_fragment, &fragment_length, &c43_encoded, gs1, 0 /*debug*/);
-
- mode[input_locn] = 'a';
- current_mode = ASCII_MODE;
-
- if ((c43_score > ascii_score) && (c43_score > eightbit_score)) {
- mode[input_locn] = 'c';
- current_mode = C43_MODE;
- }
-
- if ((eightbit_score > ascii_score) && (eightbit_score > c43_score)) {
- mode[input_locn] = '8';
- current_mode = EIGHTBIT_MODE;
- }
- if (mode[input_locn] == 'a') {
- for (i = 0; i < ascii_encoded; i++) {
- mode[input_locn + i] = 'a';
- }
- input_locn += ascii_encoded;
- } else if (mode[input_locn] == 'c') {
- for (i = 0; i < c43_encoded; i++) {
- mode[input_locn + i] = 'c';
- }
- input_locn += c43_encoded;
- } else {
- input_locn++;
- }
- } while (input_locn < crop_length);
- } else {
- // Force eight-bit mode
- for (input_locn = 0; input_locn < crop_length; input_locn++) {
- mode[input_locn] = '8';
- }
- }
- mode[crop_length] = '\0';
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Mode: %s (%d)\n", mode, (int) strlen(mode));
- }
-
- /* Use results from test to perform actual mode switching */
- current_mode = symbol_mode;
- input_locn = 0;
- do {
- fragment_length = 0;
- block_length = 0;
- while (input_locn + block_length < crop_length && mode[input_locn + block_length] == mode[input_locn]) {
- block_length++;
- }
-
- switch(mode[input_locn]) {
- case 'a':
- look_ahead_ascii(crop_source, crop_length, input_locn, current_mode, symbol_mode, input_locn + block_length, cw_fragment, &fragment_length, NULL, gs1);
- current_mode = ASCII_MODE;
- break;
- case 'c':
- subset = c43_should_latch_other(crop_source, crop_length, input_locn, 1 /*subset*/, gs1) ? 2 : 1;
- look_ahead_c43(crop_source, crop_length, input_locn, current_mode, input_locn + block_length, subset, cw_fragment, &fragment_length, NULL, gs1, symbol->debug);
-
- /* Substitute temporary latch if possible */
- if ((current_mode == EIGHTBIT_MODE) && (cw_fragment[0] == 260) && (fragment_length >= 5) && (fragment_length <= 11)) {
- /* Temporary latch to submode 1 from Table 11 */
- cw_fragment[0] = 256 + ((fragment_length - 5) / 2);
- } else if ((current_mode == EIGHTBIT_MODE) && (cw_fragment[0] == 266) && (fragment_length >= 5) && (fragment_length <= 11)) {
- /* Temporary latch to submode 2 from Table 11 */
- cw_fragment[0] = 262 + ((fragment_length - 5) / 2);
- } else if ((current_mode == ASCII_MODE) && (cw_fragment[0] == 278) && (fragment_length >= 5) && (fragment_length <= 11)) {
- /* Temporary latch to submode 1 from Table 9 */
- cw_fragment[0] = 274 + ((fragment_length - 5) / 2);
- } else {
- current_mode = C43_MODE;
- }
- break;
- case '8':
- look_ahead_eightbit(crop_source, crop_length, input_locn, current_mode, input_locn + block_length, cw_fragment, &fragment_length, gs1);
- current_mode = EIGHTBIT_MODE;
- break;
- }
-
- for (i = 0; i < fragment_length; i++) {
- codewords[codeword_count + i] = cw_fragment[i];
- }
- codeword_count += fragment_length;
-
- input_locn += block_length;
- } while (input_locn < crop_length);
-
- return codeword_count;
-}
-
-INTERNAL int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
- int data_cw_count = 0;
- int acc, qcc;
- int ecc_level;
- int rows, columns;
- int total_cws;
- int pads;
- int cw_memalloc;
- int codeword[282 + 3]; // Allow for 3 pads in final 57th (60th incl. clock tracks) column of 5-row symbol (57 * 5 == 285)
- int i, j, locn;
- int total_height, total_width;
- char tilepat[6];
- int tilex, tiley;
- int dcc;
-#ifdef _MSC_VER
- int* data_codewords;
- char* pattern;
-#endif /* _MSC_VER */
-
- cw_memalloc = in_length * 2;
- if (cw_memalloc < 283) {
- cw_memalloc = 283;
- }
-
- if (symbol->eci > 811799) {
- strcpy(symbol->errtxt, "590: ECI value not supported by Ultracode");
- return ZINT_ERROR_INVALID_OPTION;
- }
-
-#ifndef _MSC_VER
- int data_codewords[cw_memalloc];
-#else
- data_codewords = (int *) _alloca(cw_memalloc * sizeof (int));
-#endif /* _MSC_VER */
-
- data_cw_count = ultra_generate_codewords(symbol, source, in_length, data_codewords);
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Codewords returned = %d\n", data_cw_count);
- }
-#ifdef ZINT_TEST
- if (symbol->debug & ZINT_DEBUG_TEST) {
- debug_test_codeword_dump_int(symbol, data_codewords, data_cw_count);
- }
-#endif
-
- data_cw_count += 2; // 2 == MCC + ACC (data codeword count includes start char)
-
- /* Default ECC level is EC2 */
- if ((symbol->option_1 <= 0) || (symbol->option_1 > 6)) {
- ecc_level = 2;
- } else {
- ecc_level = symbol->option_1 - 1;
- }
-
- /* ECC calculation from section 7.7.2 */
- if (ecc_level == 0) {
- qcc = 3;
- } else {
- if ((data_cw_count % 25) == 0) {
- qcc = (kec[ecc_level] * (data_cw_count / 25)) + 3 + 2;
- } else {
- qcc = (kec[ecc_level] * ((data_cw_count / 25) + 1)) + 3 + 2;
- }
-
- }
- acc = qcc - 3;
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("ECC codewords: %d\n", qcc);
- }
-
- /* Maximum capacity is 282 codewords */
- total_cws = data_cw_count + qcc + 3; // 3 == TCC pattern + RSEC pattern + QCC pattern
- if (total_cws > 282) {
- strcpy(symbol->errtxt, "591: Data too long for selected error correction capacity");
- return ZINT_ERROR_TOO_LONG;
- }
-
- rows = 5;
- for (i = 2; i >= 0; i--) {
- if (total_cws - 6 <= ultra_maxsize[i]) { // Total codewords less 6 overhead (Start + MCC + ACC + 3 TCC/RSEC/QCC patterns)
- rows--;
- }
- }
-
- if ((total_cws % rows) == 0) {
- pads = 0;
- columns = total_cws / rows;
- } else {
- pads = rows - (total_cws % rows);
- columns = (total_cws / rows) + 1;
- }
- columns += columns / 15; // Secondary vertical clock tracks
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Calculated size is %d rows by %d columns\n", rows, columns);
- }
-
- /* Insert MCC and ACC into data codewords */
- for (i = 282; i > 2; i--) {
- data_codewords[i] = data_codewords[i - 2];
- }
- data_codewords[1] = data_cw_count; // MCC
- data_codewords[2] = acc; // ACC
-
- locn = 0;
- /* Calculate error correction codewords (RSEC) */
- ultra_gf283((short) data_cw_count, (short) qcc, data_codewords);
-
- /* Rearrange to make final codeword sequence */
- codeword[locn++] = data_codewords[282 - (data_cw_count + qcc)]; // Start Character
- codeword[locn++] = data_cw_count; // MCC
- for (i = 0; i < qcc; i++) {
- codeword[locn++] = data_codewords[(282 - qcc) + i]; // RSEC Region
- }
- codeword[locn++] = data_cw_count + qcc; // TCC = C + Q - section 6.11.4
- codeword[locn++] = 283; // Separator
- codeword[locn++] = acc; // ACC
- for (i = 0; i < (data_cw_count - 3); i++) {
- codeword[locn++] = data_codewords[(282 - ((data_cw_count - 3) + qcc)) + i]; // Data Region
- }
- for (i = 0; i < pads; i++) {
- codeword[locn++] = 284; // Pad pattern
- }
- codeword[locn++] = qcc; // QCC
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("Rearranged codewords with ECC:\n");
- for (i = 0; i < locn; i++) {
- printf("%d ", codeword[i]);
- }
- printf("\n");
- }
-
- total_height = (rows * 6) + 1;
- total_width = columns + 6;
-
- /* Build symbol */
-#ifndef _MSC_VER
- char pattern[total_height * total_width];
-#else
- pattern = (char *) _alloca(total_height * total_width * sizeof (char));
-#endif /* _MSC_VER */
-
- for (i = 0; i < (total_height * total_width); i++) {
- pattern[i] = 'W';
- }
-
- /* Border */
- for (i = 0; i < total_width; i++) {
- pattern[i] = 'K'; // Top
- pattern[(total_height * total_width) - i - 1] = 'K'; // Bottom
- }
- for (i = 0; i < total_height; i++) {
- pattern[total_width * i] = 'K'; // Left
- pattern[(total_width * i) + 3] = 'K';
- pattern[(total_width * i) + (total_width - 1)] = 'K'; // Right
- }
-
- /* Clock tracks */
- for (i = 0; i < total_height; i += 2) {
- pattern[(total_width * i) + 1] = 'K'; // Primary vertical clock track
- if (total_width > 20) {
- pattern[(total_width * i) + 19] = 'K'; // Secondary vertical clock track
- }
- if (total_width > 36) {
- pattern[(total_width * i) + 35] = 'K'; // Secondary vertical clock track
- }
- if (total_width > 52) {
- pattern[(total_width * i) + 51] = 'K'; // Secondary vertical clock track
- }
- }
- for (i = 6; i < total_height; i += 6) {
- for (j = 5; j < total_width; j += 2) {
- pattern[(total_width * i) + j] = 'K'; // Horizontal clock track
- }
- }
-
- /* Place tiles */
- tilepat[5] = '\0';
- tilex = 0;
- tiley = 0;
- for (i = 0; i < locn; i++) {
- for (j = 0; j < 5; j++) {
- tilepat[4 - j] = ultra_colour[(tiles[codeword[i]] >> (3 * j)) & 0x07];
- }
- if ((tiley + 1) >= total_height) {
- tiley = 0;
- tilex++;
-
- if (tilex == 14) {
- tilex++;
- }
- if (tilex == 30) {
- tilex++;
- }
- if (tilex == 46) {
- tilex++;
- }
- }
-
- for (j = 0; j < 5; j++) {
- pattern[((tiley + j + 1) * total_width) + (tilex + 5)] = tilepat[j];
- }
- tiley += 6;
- }
-
- /* Add data column count */
- dcc = columns - ultra_mincols[rows - 2];
- tilex = 2;
- tiley = (total_height - 11) / 2;
- /* DCCU */
- for (j = 0; j < 5; j++) {
- tilepat[4 - j] = ultra_colour[(dccu[dcc] >> (3 * j)) & 0x07];
- }
- for (j = 0; j < 5; j++) {
- pattern[((tiley + j) * total_width) + tilex] = tilepat[j];
- }
- /* DCCL */
- tiley += 6;
- for (j = 0; j < 5; j++) {
- tilepat[4 - j] = ultra_colour[(dccl[dcc] >> (3 * j)) & 0x07];
- }
- for (j = 0; j < 5; j++) {
- pattern[((tiley + j) * total_width) + tilex] = tilepat[j];
- }
-
- if (symbol->debug & ZINT_DEBUG_PRINT) {
- printf("DCC: %d\n", dcc);
-
- for (i = 0; i < (total_height * total_width); i++) {
- printf("%c", pattern[i]);
- if ((i + 1) % total_width == 0) {
- printf("\n");
- }
- }
- }
-
- /* Put pattern into symbol */
- symbol->rows = total_height;
- symbol->width = total_width;
+int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
- for (i = 0; i < total_height; i++) {
- symbol->row_height[i] = 1;
- for(j = 0; j < total_width; j++) {
- set_module_colour(symbol, i, j, posn(ultra_colour, pattern[(i * total_width) + j]));
- }
- }
- return 0;
+ strcpy(symbol->errtxt, "1000: Ultracode has not been implemented - yet!");
+ return ZINT_ERROR_INVALID_OPTION;
}
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#define SODIUM "0123456789+"
#define EAN2 102
};
/* Calculate the correct check digit for a UPC barcode */
-static char upc_check(char source[]) {
+char upc_check(char source[]) {
unsigned int i, count, check_digit;
count = 0;
}
/* UPC A is usually used for 12 digit numbers, but this function takes a source of any length */
-static void upca_draw(char source[], char dest[]) {
+void upca_draw(char source[], char dest[]) {
unsigned int i, half_way;
half_way = strlen(source) / 2;
}
/* Make a UPC A barcode when we haven't been given the check digit */
-static int upca(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
+int upca(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
int length;
char gtin[15];
}
/* UPC E is a zero-compressed version of UPC A */
-static int upce(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
+int upce(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
unsigned int i, num_system;
char emode, equivalent[12], check_digit, parity[8], temp[9];
char hrt[9];
}
/* EAN-2 and EAN-5 add-on codes */
-static void add_on(unsigned char source[], char dest[], int mode) {
+void add_on(unsigned char source[], char dest[], int mode) {
char parity[6];
unsigned int i, code_type;
/* ************************ EAN-13 ****************** */
/* Calculate the correct check digit for a EAN-13 barcode */
-static char ean_check(char source[]) {
+char ean_check(char source[]) {
int i;
unsigned int h, count, check_digit;
return itoc(check_digit);
}
-static int ean13(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
+int ean13(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
unsigned int length, i, half_way;
char parity[6];
char gtin[15];
}
/* Make an EAN-8 barcode when we haven't been given the check digit */
-static int ean8(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
+int ean8(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
/* EAN-8 is basically the same as UPC-A but with fewer digits */
int length;
char gtin[10];
}
/* For ISBN(13) only */
-static char isbn13_check(unsigned char source[]) {
+char isbn13_check(unsigned char source[]) {
unsigned int i, weight, sum, check, h;
sum = 0;
}
/* For ISBN(10) and SBN only */
-static char isbn_check(unsigned char source[]) {
+char isbn_check(unsigned char source[]) {
unsigned int i, weight, sum, check, h;
char check_char;
}
/* Add leading zeroes to EAN and UPC strings */
-INTERNAL void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]) {
+void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]) {
unsigned char first_part[20], second_part[20], zfirst_part[20], zsecond_part[20];
int with_addon = 0;
int first_len = 0, second_len = 0, zfirst_len = 0, zsecond_len = 0, i, h;
first_part[i + 1] = '\0';
}
- if (second_len >= 6) { /* Allow 6 (actual max 5) so as to trigger too long error */
- second_len = 6;
- }
for (i = 0; i < second_len; i++) {
second_part[i] = source[i + first_len + 1];
second_part[i + 1] = '\0';
}
/* splits string to parts before and after '+' parts */
-INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int src_len) {
- unsigned char first_part[20] = {0}, second_part[7] = {0}, dest[1000] = {0};
+int eanx(struct zint_symbol *symbol, unsigned char source[], int src_len) {
+ unsigned char first_part[20] = {0}, second_part[20] = {0}, dest[1000] = {0};
unsigned char local_source[20] = {0};
unsigned int latch, reader, writer, with_addon;
- int error_number, i, plus_count;
+ int error_number, i;
+
with_addon = FALSE;
latch = FALSE;
return error_number;
}
}
-
- /* Check for multiple '+' characters */
- plus_count = 0;
- for (i = 0; i < src_len; i++) {
- if (source[i] == '+') {
- plus_count++;
- }
- }
- if (plus_count > 1) {
- strcpy(symbol->errtxt, "293: Invalid add-on data");
- return ZINT_ERROR_INVALID_DATA;
- }
/* Add leading zeroes */
ustrcpy(local_source, (unsigned char *) "");
return 0;
}
+
/* vector.c - Creates vector image objects
libzint - the open source barcode library
- Copyright (C) 2018 - 2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2018 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <math.h>
#ifdef _MSC_VER
#endif
#include "common.h"
-#include "output.h"
-INTERNAL int ps_plot(struct zint_symbol *symbol);
-INTERNAL int svg_plot(struct zint_symbol *symbol);
-INTERNAL int emf_plot(struct zint_symbol *symbol);
+#define SSET "0123456789ABCDEF"
-static struct zint_vector_rect *vector_plot_create_rect(float x, float y, float width, float height) {
+extern int ps_plot(struct zint_symbol *symbol);
+extern int svg_plot(struct zint_symbol *symbol);
+extern int emf_plot(struct zint_symbol *symbol);
+
+struct zint_vector_rect *vector_plot_create_rect(float x, float y, float width, float height) {
struct zint_vector_rect *rect;
rect = (struct zint_vector_rect*) malloc(sizeof (struct zint_vector_rect));
return rect;
}
-static int vector_plot_add_rect(struct zint_symbol *symbol, struct zint_vector_rect *rect, struct zint_vector_rect **last_rect) {
+int vector_plot_add_rect(struct zint_symbol *symbol, struct zint_vector_rect *rect, struct zint_vector_rect **last_rect) {
if (!rect) return ZINT_ERROR_MEMORY;
if (*last_rect)
(*last_rect)->next = rect;
return 1;
}
-static struct zint_vector_hexagon *vector_plot_create_hexagon(float x, float y, float diameter) {
+struct zint_vector_hexagon *vector_plot_create_hexagon(float x, float y, float diameter) {
struct zint_vector_hexagon *hexagon;
hexagon = (struct zint_vector_hexagon*) malloc(sizeof (struct zint_vector_hexagon));
return hexagon;
}
-static int vector_plot_add_hexagon(struct zint_symbol *symbol, struct zint_vector_hexagon *hexagon, struct zint_vector_hexagon **last_hexagon) {
+int vector_plot_add_hexagon(struct zint_symbol *symbol, struct zint_vector_hexagon *hexagon, struct zint_vector_hexagon **last_hexagon) {
if (!hexagon) return ZINT_ERROR_MEMORY;
if (*last_hexagon)
(*last_hexagon)->next = hexagon;
return 1;
}
-static struct zint_vector_circle *vector_plot_create_circle(float x, float y, float diameter, int colour) {
+struct zint_vector_circle *vector_plot_create_circle(float x, float y, float diameter, int colour) {
struct zint_vector_circle *circle;
circle = (struct zint_vector_circle *) malloc(sizeof (struct zint_vector_circle));
return circle;
}
-static int vector_plot_add_circle(struct zint_symbol *symbol, struct zint_vector_circle *circle, struct zint_vector_circle **last_circle) {
+int vector_plot_add_circle(struct zint_symbol *symbol, struct zint_vector_circle *circle, struct zint_vector_circle **last_circle) {
if (!circle) return ZINT_ERROR_MEMORY;
if (*last_circle)
(*last_circle)->next = circle;
return 1;
}
-static int vector_plot_add_string(struct zint_symbol *symbol,
+int vector_plot_add_string(struct zint_symbol *symbol,
unsigned char *text, float x, float y, float fsize, float width,
struct zint_vector_string **last_string) {
struct zint_vector_string *string;
return 1;
}
-INTERNAL void vector_free(struct zint_symbol *symbol) {
+void vector_free(struct zint_symbol *symbol) {
if (symbol->vector != NULL) {
struct zint_vector_rect *rect;
struct zint_vector_hexagon *hex;
}
}
-static void vector_scale(struct zint_symbol *symbol, int file_type) {
+void vector_scale(struct zint_symbol *symbol) {
struct zint_vector_rect *rect;
struct zint_vector_hexagon *hex;
struct zint_vector_circle *circle;
struct zint_vector_string *string;
float scale = symbol->scale * 2.0f;
- if ((file_type == OUT_EMF_FILE) && (symbol->symbology == BARCODE_MAXICODE)) {
- // Increase size to overcome limitations in EMF file format
- scale *= 20;
- }
-
symbol->vector->width *= scale;
symbol->vector->height *= scale;
return;
}
-static void vector_reduce_rectangles(struct zint_symbol *symbol) {
+void vector_reduce_rectangles(struct zint_symbol *symbol) {
// Looks for vertically aligned rectangles and merges them together
struct zint_vector_rect *rect, *target, *prev;
while (rect) {
prev = rect;
target = prev->next;
-
+
while (target) {
- if ((rect->x == target->x) && (rect->width == target->width) && ((rect->y + rect->height) == target->y) && (rect->colour == target->colour)) {
+
+ if ((rect->x == target->x) && (rect->width == target->width) && ((rect->y + rect->height) == target->y)) {
rect->height += target->height;
prev->next = target->next;
free(target);
return;
}
-INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type) {
+int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type) {
int error_number;
struct zint_vector *vector;
struct zint_vector_rect *rectangle, *rect, *last_rectangle = NULL;
float textpos, large_bar_height, preset_height, row_height, row_posn = 0.0;
float text_offset, text_height;
int xoffset, yoffset, textdone, main_symbol_width_x;
- int roffset, boffset;
char addon[6];
int large_bar_count, symbol_lead_in;
float addon_text_posn;
int this_row;
int addon_latch = 0;
struct zint_vector_string *string;
-
- (void)rotate_angle; /* Not currently implemented */
-
// Sanity check colours
- error_number = check_colour_options(symbol);
- if (error_number != 0) {
- return error_number;
+ to_upper((unsigned char*) symbol->fgcolour);
+ to_upper((unsigned char*) symbol->bgcolour);
+
+ if (strlen(symbol->fgcolour) != 6) {
+ strcpy(symbol->errtxt, "661: Malformed foreground colour target");
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ if (strlen(symbol->bgcolour) != 6) {
+ strcpy(symbol->errtxt, "662: Malformed background colour target");
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ error_number = is_sane(SSET, (unsigned char*) symbol->fgcolour, strlen(symbol->fgcolour));
+ if (error_number == ZINT_ERROR_INVALID_DATA) {
+ strcpy(symbol->errtxt, "663: Malformed foreground colour target");
+ return ZINT_ERROR_INVALID_OPTION;
+ }
+ error_number = is_sane(SSET, (unsigned char*) symbol->bgcolour, strlen(symbol->bgcolour));
+ if (error_number == ZINT_ERROR_INVALID_DATA) {
+ strcpy(symbol->errtxt, "664: Malformed background colour target");
+ return ZINT_ERROR_INVALID_OPTION;
}
// Free any previous rendering structures
row_height = 0;
textdone = 0;
+ textpos = 0.0;
main_symbol_width_x = symbol->width;
strcpy(addon, "");
symbol_lead_in = 0;
addon_text_posn = 0.0;
rect_count = 0;
last_row_start = 0;
-
+
/*
* Determine if there will be any addon texts and text height
*/
if (symbol->output_options & SMALL_TEXT)
text_height *= 0.8f;
- set_whitespace_offsets(symbol, &xoffset, &yoffset, &roffset, &boffset);
+ xoffset = symbol->border_width + symbol->whitespace_width;
+ yoffset = symbol->border_width;
+
// Determine if height should be overridden
large_bar_count = 0;
}
}
- vector->width = (float)ceil(symbol->width + (xoffset + roffset));
- vector->height = (float)ceil(symbol->height + text_offset + (yoffset + boffset));
+ vector->width = (float)ceil(symbol->width + (2.0f * xoffset));
+ vector->height = (float)ceil(symbol->height + text_offset + (2.0f * yoffset));
large_bar_height = large_bar_count ? (symbol->height - preset_height) / large_bar_count : 0 /*Not used if large_bar_count zero*/;
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
default_text_posn = symbol->height + text_offset + symbol->border_width + symbol->border_width;
} else {
- default_text_posn = symbol->height + text_offset;
+ default_text_posn = symbol->height + text_offset + symbol->border_width;
}
// Plot rectangles - most symbols created here
row_posn += yoffset;
i = 0;
+ if (module_is_set(symbol, this_row, 0)) {
+ latch = 1;
+ } else {
+ latch = 0;
+ }
do {
int block_width = 0;
addon_text_posn = row_posn + 8.0f;
addon_latch = 1;
}
- if (module_is_set(symbol, this_row, i)) {
- /* a bar or colour block */
+ if (latch == 1) {
+ /* a bar */
if (addon_latch == 0) {
rectangle = vector_plot_create_rect((float)(i + xoffset), row_posn, (float)block_width, row_height);
- if (symbol->symbology == BARCODE_ULTRA) {
- rectangle->colour = module_is_set(symbol, this_row, i);
- }
} else {
rectangle = vector_plot_create_rect((float)(i + xoffset), row_posn + 10.0f, (float)block_width, row_height - 5.0f);
}
+ latch = 0;
+
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
rect_count++;
+ } else {
+ /* a space */
+ latch = 1;
}
i += block_width;
// Plot Maxicode symbols
if (symbol->symbology == BARCODE_MAXICODE) {
struct zint_vector_circle *circle;
- vector->width = 37.0f + (xoffset + roffset);
- vector->height = 36.0f + (yoffset + boffset);
+ vector->width = 37.0f + (2.0f * xoffset);
+ vector->height = 36.0f + (2.0f * yoffset);
// Bullseye
circle = vector_plot_create_circle(17.88f + xoffset, 17.8f + yoffset, 10.85f, 0);
for (i = 0; i < symbol->width; i++) {
if (module_is_set(symbol, r, i)) {
//struct zint_vector_hexagon *hexagon = vector_plot_create_hexagon(((i * 0.88) + ((r & 1) ? 1.76 : 1.32)), ((r * 0.76) + 0.76), symbol->dot_size);
- struct zint_vector_hexagon *hexagon = vector_plot_create_hexagon(((i * 1.23f) + 0.615f + ((r & 1) ? 0.615f : 0.0f)) + xoffset,
+ struct zint_vector_hexagon *hexagon = vector_plot_create_hexagon(((i * 1.23f) + 0.615f + ((r & 1) ? 0.615f : 0.0f)) + xoffset,
((r * 1.067f) + 0.715f) + yoffset, symbol->dot_size);
vector_plot_add_hexagon(symbol, hexagon, &last_hexagon);
}
i++;
}
}
-
+
if (upceanflag == 8) {
i = 0;
for (rect = symbol->vector->rectangles; rect != NULL; rect = rect->next) {
i++;
}
}
-
+
if (upceanflag == 12) {
i = 0;
for (rect = symbol->vector->rectangles; rect != NULL; rect = rect->next) {
i++;
}
}
-
+
if (upceanflag == 13) {
i = 0;
for (rect = symbol->vector->rectangles; rect != NULL; rect = rect->next) {
i++;
}
}
-
+
/* Add the text */
if (!hide_text) {
// Binding and boxes
if ((symbol->output_options & BARCODE_BIND) != 0) {
if ((symbol->rows > 1) && (is_stackable(symbol->symbology) == 1)) {
- double sep_height = 1;
- if (symbol->option_3 > 0 && symbol->option_3 <= 4) {
- sep_height = symbol->option_3;
- }
/* row binding */
for (r = 1; r < symbol->rows; r++) {
- if (symbol->symbology != BARCODE_CODABLOCKF && symbol->symbology != BARCODE_HIBC_BLOCKF) {
- rectangle = vector_plot_create_rect((float)xoffset, (r * row_height) + yoffset - sep_height / 2, (float)symbol->width, sep_height);
+ if (symbol->symbology != BARCODE_CODABLOCKF) {
+ rectangle = vector_plot_create_rect((float)xoffset, (r * row_height) + yoffset - 1, (float)symbol->width, 2.0f);
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
} else {
- /* Avoid 11-module start and 13-module stop chars */
- rectangle = vector_plot_create_rect(xoffset + 11, (r * row_height) + yoffset - sep_height / 2, symbol->width - 24, sep_height);
+ rectangle = vector_plot_create_rect(xoffset + 11.0f, (r * row_height) + yoffset - 1, symbol->width - 25.0f, 2.0);
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
}
}
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
// Top
rectangle = vector_plot_create_rect(0.0f, 0.0f, vector->width, (float)symbol->border_width);
- if (!(symbol->output_options & BARCODE_BOX) && (symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF)) {
+ if (symbol->symbology == BARCODE_CODABLOCKF) {
rectangle->x = (float)xoffset;
rectangle->width -= (2.0f * xoffset);
}
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
// Bottom
rectangle = vector_plot_create_rect(0.0f, vector->height - symbol->border_width - text_offset, vector->width, (float)symbol->border_width);
- if (!(symbol->output_options & BARCODE_BOX) && (symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF)) {
+ if (symbol->symbology == BARCODE_CODABLOCKF) {
rectangle->x = (float)xoffset;
rectangle->width -= (2.0f * xoffset);
}
vector_reduce_rectangles(symbol);
- vector_scale(symbol, file_type);
+ vector_scale(symbol);
switch (file_type) {
case OUT_EPS_FILE:
}
return error_number;
+
}
/* zint.h - definitions for libzint
libzint - the open source barcode library
- Copyright (C) 2009-2020 Robin Stuart <rstuart114@gmail.com>
+ Copyright (C) 2009-2018 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
-/* vim: set ts=4 sw=4 et : */
#ifndef ZINT_H
#define ZINT_H
float x, y, length, width;
struct zint_render_line *next; /* Pointer to next line */
};
-
+
struct zint_vector_rect {
float x, y, height, width;
int colour;
unsigned char *text;
struct zint_render_string *next; /* Pointer to next character */
};
-
+
struct zint_vector_string {
float x, y, fsize;
float width; /* Suggested string width, may be 0 if none recommended */
int colour;
struct zint_vector_circle *next; /* Pointer to next circle */
};
-
+
struct zint_render_hexagon {
float x, y, height;
struct zint_render_hexagon *next; /* Pointer to next hexagon */
float x, y, diameter;
struct zint_vector_hexagon *next; /* Pointer to next hexagon */
};
-
+
struct zint_render {
float width, height;
struct zint_render_line *lines; /* Pointer to first line */
struct zint_render_ring *rings; /* Pointer to first ring */
struct zint_render_hexagon *hexagons; /* Pointer to first hexagon */
};
-
+
struct zint_vector {
float width, height;
struct zint_vector_rect *rectangles; /* Pointer to first rectangle */
unsigned char encoded_data[200][143];
int row_height[200]; /* Largest symbol is 189 x 189 Han Xin */
char errtxt[100];
- unsigned char *bitmap;
+ char *bitmap;
int bitmap_width;
int bitmap_height;
unsigned int bitmap_byte_length;
};
#define ZINT_VERSION_MAJOR 2
-#define ZINT_VERSION_MINOR 8
-#define ZINT_VERSION_RELEASE 0
+#define ZINT_VERSION_MINOR 6
+#define ZINT_VERSION_RELEASE 7
/* Tbarcode 7 codes */
-#define BARCODE_CODE11 1
-#define BARCODE_C25MATRIX 2
-#define BARCODE_C25INTER 3
-#define BARCODE_C25IATA 4
-#define BARCODE_C25LOGIC 6
-#define BARCODE_C25IND 7
-#define BARCODE_CODE39 8
-#define BARCODE_EXCODE39 9
-#define BARCODE_EANX 13
+#define BARCODE_CODE11 1
+#define BARCODE_C25MATRIX 2
+#define BARCODE_C25INTER 3
+#define BARCODE_C25IATA 4
+#define BARCODE_C25LOGIC 6
+#define BARCODE_C25IND 7
+#define BARCODE_CODE39 8
+#define BARCODE_EXCODE39 9
+#define BARCODE_EANX 13
#define BARCODE_EANX_CHK 14
-#define BARCODE_EAN128 16
-#define BARCODE_CODABAR 18
-#define BARCODE_CODE128 20
-#define BARCODE_DPLEIT 21
-#define BARCODE_DPIDENT 22
-#define BARCODE_CODE16K 23
-#define BARCODE_CODE49 24
-#define BARCODE_CODE93 25
-#define BARCODE_FLAT 28
-#define BARCODE_RSS14 29
-#define BARCODE_RSS_LTD 30
-#define BARCODE_RSS_EXP 31
-#define BARCODE_TELEPEN 32
-#define BARCODE_UPCA 34
+#define BARCODE_EAN128 16
+#define BARCODE_CODABAR 18
+#define BARCODE_CODE128 20
+#define BARCODE_DPLEIT 21
+#define BARCODE_DPIDENT 22
+#define BARCODE_CODE16K 23
+#define BARCODE_CODE49 24
+#define BARCODE_CODE93 25
+#define BARCODE_FLAT 28
+#define BARCODE_RSS14 29
+#define BARCODE_RSS_LTD 30
+#define BARCODE_RSS_EXP 31
+#define BARCODE_TELEPEN 32
+#define BARCODE_UPCA 34
#define BARCODE_UPCA_CHK 35
-#define BARCODE_UPCE 37
+#define BARCODE_UPCE 37
#define BARCODE_UPCE_CHK 38
-#define BARCODE_POSTNET 40
-#define BARCODE_MSI_PLESSEY 47
-#define BARCODE_FIM 49
-#define BARCODE_LOGMARS 50
-#define BARCODE_PHARMA 51
-#define BARCODE_PZN 52
-#define BARCODE_PHARMA_TWO 53
-#define BARCODE_PDF417 55
-#define BARCODE_PDF417TRUNC 56
-#define BARCODE_MAXICODE 57
-#define BARCODE_QRCODE 58
-#define BARCODE_CODE128B 60
-#define BARCODE_AUSPOST 63
-#define BARCODE_AUSREPLY 66
-#define BARCODE_AUSROUTE 67
-#define BARCODE_AUSREDIRECT 68
-#define BARCODE_ISBNX 69
-#define BARCODE_RM4SCC 70
-#define BARCODE_DATAMATRIX 71
-#define BARCODE_EAN14 72
+#define BARCODE_POSTNET 40
+#define BARCODE_MSI_PLESSEY 47
+#define BARCODE_FIM 49
+#define BARCODE_LOGMARS 50
+#define BARCODE_PHARMA 51
+#define BARCODE_PZN 52
+#define BARCODE_PHARMA_TWO 53
+#define BARCODE_PDF417 55
+#define BARCODE_PDF417TRUNC 56
+#define BARCODE_MAXICODE 57
+#define BARCODE_QRCODE 58
+#define BARCODE_CODE128B 60
+#define BARCODE_AUSPOST 63
+#define BARCODE_AUSREPLY 66
+#define BARCODE_AUSROUTE 67
+#define BARCODE_AUSREDIRECT 68
+#define BARCODE_ISBNX 69
+#define BARCODE_RM4SCC 70
+#define BARCODE_DATAMATRIX 71
+#define BARCODE_EAN14 72
#define BARCODE_VIN 73
-#define BARCODE_CODABLOCKF 74
-#define BARCODE_NVE18 75
-#define BARCODE_JAPANPOST 76
-#define BARCODE_KOREAPOST 77
-#define BARCODE_RSS14STACK 79
-#define BARCODE_RSS14STACK_OMNI 80
-#define BARCODE_RSS_EXPSTACK 81
-#define BARCODE_PLANET 82
-#define BARCODE_MICROPDF417 84
-#define BARCODE_ONECODE 85
-#define BARCODE_PLESSEY 86
+#define BARCODE_CODABLOCKF 74
+#define BARCODE_NVE18 75
+#define BARCODE_JAPANPOST 76
+#define BARCODE_KOREAPOST 77
+#define BARCODE_RSS14STACK 79
+#define BARCODE_RSS14STACK_OMNI 80
+#define BARCODE_RSS_EXPSTACK 81
+#define BARCODE_PLANET 82
+#define BARCODE_MICROPDF417 84
+#define BARCODE_ONECODE 85
+#define BARCODE_PLESSEY 86
/* Tbarcode 8 codes */
-#define BARCODE_TELEPEN_NUM 87
-#define BARCODE_ITF14 89
-#define BARCODE_KIX 90
-#define BARCODE_AZTEC 92
-#define BARCODE_DAFT 93
-#define BARCODE_MICROQR 97
+#define BARCODE_TELEPEN_NUM 87
+#define BARCODE_ITF14 89
+#define BARCODE_KIX 90
+#define BARCODE_AZTEC 92
+#define BARCODE_DAFT 93
+#define BARCODE_MICROQR 97
/* Tbarcode 9 codes */
-#define BARCODE_HIBC_128 98
-#define BARCODE_HIBC_39 99
-#define BARCODE_HIBC_DM 102
-#define BARCODE_HIBC_QR 104
-#define BARCODE_HIBC_PDF 106
-#define BARCODE_HIBC_MICPDF 108
-#define BARCODE_HIBC_BLOCKF 110
-#define BARCODE_HIBC_AZTEC 112
+#define BARCODE_HIBC_128 98
+#define BARCODE_HIBC_39 99
+#define BARCODE_HIBC_DM 102
+#define BARCODE_HIBC_QR 104
+#define BARCODE_HIBC_PDF 106
+#define BARCODE_HIBC_MICPDF 108
+#define BARCODE_HIBC_BLOCKF 110
+#define BARCODE_HIBC_AZTEC 112
/* Tbarcode 10 codes */
#define BARCODE_DOTCODE 115
#define BARCODE_HANXIN 116
-
+
/*Tbarcode 11 codes*/
#define BARCODE_MAILMARK 121
/* Zint specific */
-#define BARCODE_AZRUNE 128
-#define BARCODE_CODE32 129
-#define BARCODE_EANX_CC 130
-#define BARCODE_EAN128_CC 131
-#define BARCODE_RSS14_CC 132
-#define BARCODE_RSS_LTD_CC 133
-#define BARCODE_RSS_EXP_CC 134
-#define BARCODE_UPCA_CC 135
-#define BARCODE_UPCE_CC 136
-#define BARCODE_RSS14STACK_CC 137
-#define BARCODE_RSS14_OMNI_CC 138
-#define BARCODE_RSS_EXPSTACK_CC 139
-#define BARCODE_CHANNEL 140
-#define BARCODE_CODEONE 141
-#define BARCODE_GRIDMATRIX 142
+#define BARCODE_AZRUNE 128
+#define BARCODE_CODE32 129
+#define BARCODE_EANX_CC 130
+#define BARCODE_EAN128_CC 131
+#define BARCODE_RSS14_CC 132
+#define BARCODE_RSS_LTD_CC 133
+#define BARCODE_RSS_EXP_CC 134
+#define BARCODE_UPCA_CC 135
+#define BARCODE_UPCE_CC 136
+#define BARCODE_RSS14STACK_CC 137
+#define BARCODE_RSS14_OMNI_CC 138
+#define BARCODE_RSS_EXPSTACK_CC 139
+#define BARCODE_CHANNEL 140
+#define BARCODE_CODEONE 141
+#define BARCODE_GRIDMATRIX 142
#define BARCODE_UPNQR 143
-#define BARCODE_ULTRA 144
-#define BARCODE_RMQR 145
+#define BARCODE_ULTRA 144
// Output options
-#define BARCODE_NO_ASCII 1
-#define BARCODE_BIND 2
-#define BARCODE_BOX 4
-#define BARCODE_STDOUT 8
-#define READER_INIT 16
-#define SMALL_TEXT 32
+#define BARCODE_NO_ASCII 1
+#define BARCODE_BIND 2
+#define BARCODE_BOX 4
+#define BARCODE_STDOUT 8
+#define READER_INIT 16
+#define SMALL_TEXT 32
#define BOLD_TEXT 64
#define CMYK_COLOUR 128
#define BARCODE_DOTTY_MODE 256
#define GS1_GS_SEPARATOR 512
// Input data types
-#define DATA_MODE 0
-#define UNICODE_MODE 1
-#define GS1_MODE 2
-#define ESCAPE_MODE 8
-
-// Data Matrix specific options (option_3)
-#define DM_SQUARE 100
-#define DM_DMRE 101
+#define DATA_MODE 0
+#define UNICODE_MODE 1
+#define GS1_MODE 2
+#define ESCAPE_MODE 8
-// QR, Han Xin, Grid Matrix specific options (option_3)
-#define ZINT_FULL_MULTIBYTE 200
-
-// Ultracode specific option (option_3)
-#define ULTRA_COMPRESSION 128
+// Data Matrix specific options
+#define DM_SQUARE 100
+#define DM_DMRE 101
// Warning and error conditions
-#define ZINT_WARN_INVALID_OPTION 2
+#define ZINT_WARN_INVALID_OPTION 2
#define ZINT_WARN_USES_ECI 3
-#define ZINT_ERROR_TOO_LONG 5
+#define ZINT_ERROR_TOO_LONG 5
#define ZINT_ERROR_INVALID_DATA 6
-#define ZINT_ERROR_INVALID_CHECK 7
-#define ZINT_ERROR_INVALID_OPTION 8
-#define ZINT_ERROR_ENCODING_PROBLEM 9
-#define ZINT_ERROR_FILE_ACCESS 10
-#define ZINT_ERROR_MEMORY 11
+#define ZINT_ERROR_INVALID_CHECK 7
+#define ZINT_ERROR_INVALID_OPTION 8
+#define ZINT_ERROR_ENCODING_PROBLEM 9
+#define ZINT_ERROR_FILE_ACCESS 10
+#define ZINT_ERROR_MEMORY 11
// Raster file types
-#define OUT_BUFFER 0
-#define OUT_SVG_FILE 10
-#define OUT_EPS_FILE 20
-#define OUT_EMF_FILE 30
-#define OUT_PNG_FILE 100
-#define OUT_BMP_FILE 120
-#define OUT_GIF_FILE 140
-#define OUT_PCX_FILE 160
-#define OUT_JPG_FILE 180
-#define OUT_TIF_FILE 200
-
-// Debug flags
-#define ZINT_DEBUG_PRINT 1
-#define ZINT_DEBUG_TEST 2
+#define OUT_BUFFER 0
+#define OUT_SVG_FILE 10
+#define OUT_EPS_FILE 20
+#define OUT_EMF_FILE 30
+#define OUT_PNG_FILE 100
+#define OUT_BMP_FILE 120
+#define OUT_GIF_FILE 140
+#define OUT_PCX_FILE 160
+#define OUT_JPG_FILE 180
+#define OUT_TIF_FILE 200
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(_MSC_VER)
#if defined (DLL_EXPORT) || defined(PIC) || defined(_USRDLL)
ZINT_EXTERN int ZBarcode_Encode_and_Print(struct zint_symbol *symbol, unsigned char *input, int length, int rotate_angle);
ZINT_EXTERN int ZBarcode_Encode_File_and_Print(struct zint_symbol *symbol, char *filename, int rotate_angle);
+ ZINT_EXTERN int ZBarcode_Render(struct zint_symbol *symbol, const float width, const float height);
+
ZINT_EXTERN int ZBarcode_Buffer(struct zint_symbol *symbol, int rotate_angle);
ZINT_EXTERN int ZBarcode_Buffer_Vector(struct zint_symbol *symbol, int rotate_angle);
ZINT_EXTERN int ZBarcode_Encode_and_Buffer(struct zint_symbol *symbol, unsigned char *input, int length, int rotate_angle);
Name: zint
-Version: 2.7.1
+Version: 2.6.7
Release: 1
Summary: Barcode generator library
License: BSD-3-Clause