오라클에는 varchar2 라는 타입을 주로 사용하지만
이녀석은 char[] 로 1바이트 문자열을 최대 4000 byte까지 저장할 수 있다.
물론 4000 바이트라는건 최대 선언 가능한 길이일뿐
varcahr2 타입으로 선언한다고 해서 가변으로 0~4000자를 입력할수 있는건 아니다.
(이렇게 자동으로 길이 해주면 얼마나 좋았을까 -_-)

아무튼 요즘은 바야흐로(?) 유니코드 시대이기에 문자열 역시 유니코드로 저장하게 되는데
DB에서도 varchar2와 같이 1byte 문자열이 아닌 2byte 문자열(UTF-8 / UTF-16)을 지원해야 하고
이녀석은 nvarchar2로 N이 하나 더 붙게 된다.


VARCHAR2 and VARCHAR Datatypes

The VARCHAR2 datatype stores variable-length character strings. When you create a table with a VARCHAR2 column, you specify a maximum string length (in bytes or characters) between 1 and 4000 bytes for the VARCHAR2 column. For each row, Oracle stores each value in the column as a variable-length field unless a value exceeds the column's maximum length, in which case Oracle returns an error. Using VARCHAR2 and VARCHAR saves on space used by the table.

For example, assume you declare a column VARCHAR2 with a maximum size of 50 characters. In a single-byte character set, if only 10 characters are given for the VARCHAR2 column value in a particular row, the column in the row's row piece stores only the 10 characters (10 bytes), not 50.

Oracle compares VARCHAR2 values using nonpadded comparison semantics.


NCHAR and NVARCHAR2 Datatypes

NCHAR and NVARCHAR2 are Unicode datatypes that store Unicode character data. The character set of NCHAR and NVARCHAR2 datatypes can only be either AL16UTF16 or UTF8 and is specified at database creation time as the national character set. AL16UTF16 and UTF8 are both Unicode encoding.

The NCHAR datatype stores fixed-length character strings that correspond to the national character set.

The NVARCHAR2 datatype stores variable length character strings.

When you create a table with an NCHAR or NVARCHAR2 column, the maximum size specified is always in character length semantics. Character length semantics is the default and only length semantics for NCHAR or NVARCHAR2.

For example, if national character set is UTF8, then the following statement defines the maximum byte length of 90 bytes:

CREATE TABLE tab1 (col1 NCHAR(30));

This statement creates a column with maximum character length of 30. The maximum byte length is the multiple of the maximum character length and the maximum number of bytes in each character. 
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14220/datatype.htm

If you prefer to implement Unicode support incrementally, or if you need to support multilingual data only in certain columns, then you can store Unicode data in either the UTF-16 or UTF-8 encoding form in SQL NCHAR datatypes (NCHAR, NVARCHAR2, and NCLOB). The SQL NCHAR datatypes are called Unicode datatypes because they are used only for storing Unicode data.

[링크 : http://docs.oracle.com/cd/B28359_01/server.111/b28298/ch6unicode.htm]

신고

'프로그램 사용 > oracle' 카테고리의 다른 글

sql distinct  (0) 2014.05.29
oracle 대소문자 구분없이 검색하기  (0) 2014.05.28
oracle 타입 - nvarchar2 varchar2  (0) 2014.05.20
oracle view  (0) 2014.05.20
oracle alter  (0) 2014.05.20
oracle sequence 명령어  (0) 2014.05.11
Posted by 구차니

댓글을 달아 주세요

히라가나 0x3040-0x309F  [링크 : http://www.unicode.org/charts/PDF/U3040.pdf]
가타카나 0x30A0-0x30FF  [링크 : http://www.unicode.org/charts/PDF/U30A0.pdf]

MS Mincho (winXP 기본)      [링크 : http://mwultong.blogspot.com/2006/08/qna-xp-japanese-font.html]
Meiryo (winVISTA 기본)        [링크 : http://tibetinside.com/13]




묶는 방법이 먼가해서 눌러봤더니 이런 신기한 창이?
아무튼, 일본어로 하니 기본적으로 MS Mincho 폰트로 변경되었다.
신고
Posted by 구차니

댓글을 달아 주세요

  1. 저 들렀습니다~~히히

    2010.05.19 19:17 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 우가우가 차차차~~~(의미불명) ^^;;;

    2010.05.20 10:33 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 오호~! 나도 우가우가~~!

    2010.05.20 13:52 신고 [ ADDR : EDIT/ DEL : REPLY ]

iconv() 함수에서
변환결과로 나와야 하는 방법이 unicode일 경우에는 (일단 다른건 안해봤으니 -ㅁ-?)
(strlen(inbuf) + 2) * 2 가 된다.

size_t iconv(iconv_t cd,
                     char **inbuf, size_t *inbytesleft,
                     char **outbuf, size_t *outbytesleft);

예를 들어 UTF-8을 UNICODE로 변환시에는
UTF-8 문자열 특성상, stelen(utf8str) == 100 일 경우
유니코드(2바이트) 스트링은 최소 25에서 최대 100 까지 변환이 된다.

그리고 iconv 특성상 처음에 2바이트 BOM(Byte Order Mark)을 붙이므로
실질적으로 변환을 위해 필요로 하는 outbuf의 길이는
(strlen(inbuf) + 2) * 2 가 된다.

원래대로라면
(strlen(inbuf) + 1) * 2 + 2 이고
+1 은 '\0'
+2 는 Unicode BOM(0xFEFF in big endian)이다.

[링크 : http://mwultong.blogspot.com/2006/05/qna-unicode-bom-byte-order-mark.html]


덧 : UTF-8로 인코딩된 아랍어의 경우, 조합은 별도로 해주어야 한다.
iconv()가 UNICODE로 변환은 해주지만, 그렇다고 해서 조합까지 해주지는 않는다.
신고
Posted by 구차니

댓글을 달아 주세요

회사에서 이야기 하는 BOM과는 다르다!(Bill of Material)
아무튼 이 BOM이라는 녀석은
일종의 헤더로서

텍스트 파일의 인코딩을 알려주는 역활을 한다.
예를 들어 UTF-8, ANSI 이런 구분을 하는 것도 이 BOM이 존재하기 때문에 가능한 것이다.


Bytes Encoding Form
00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8
[링크 : http://www.unicode.org/faq/utf_bom.html]

[링크 : http://mwultong.blogspot.com/2006/05/qna-unicode-bom-byte-order-mark.html]
[링크 : http://devhome.tistory.com/11]
[링크 : http://en.wikipedia.org/wiki/Byte_order_mark]
신고
Posted by 구차니

댓글을 달아 주세요

GB2312 에서 ASCII 로 0~127 까지는 영역은 1byte 그대로 사용한다

즉, gb2312로 인코딩 되었을 경우에는

 

 0~127  ASCII (1byte)
 A0 <=  간체 (2byte)

 

로 해석을 하면 되며, GB2312 폰트 테이블 상의 ASCII 0~127 영역은 


 R.C.   GB   Uni. UTF-8 

0301 ! A3A1 FF01 EFBC81 부터 시작을 한다.

 

하지만 우리가 사용하는 영역은 0x0021 부터 시작하므로 0~127 문자열은 gb2312로 변환후 유니코드 값에

단순산술로  0xFFE0 를 더해 주어야 한다.

 

잡솔 : 아래 Row 03에 대해서 문자를 선택해보면 !의 경우에 크기가 다름을 알 수 있다.

! <- ASCII

<- GB2312


Row 03: Latin Characters


신고

'모종의 음모 > GB2312(중국어 간체)' 카테고리의 다른 글

GB2312 ASCII 부분 처리  (0) 2009.03.16
GB2312, Unicode  (0) 2009.03.16
GB2312 to Unicode mapping table  (0) 2009.03.16
Posted by 구차니

댓글을 달아 주세요

GB2312 Character Set

GB: An abbreviation of Guojia Biaozhun, or Guo Biao, meaning "national standard" in Chinese.

GB2312: A coded character set established by the government of People's Republic of China in 1980.

Main features of GB2312:

  • It contains 7445 characters, including 6763 Hanzi and 682 non-Hanzi characters.
  • It is for simplified Chinese characters only. The traditional Chinese characters are included in Big5 character set.
  • It is used mainly in mainland China and Singapore.

GB2312 arranges characters into a matrix of 94 rows and 94 columns based on the following rules:

        # of 
Rows Chars Characters 01 94 Special symbols
02 72 Paragraph numbers 03 94 Latin characters 04 83 Hiragana characters 05 86 Katakana characters 06 48 Greek characters 07 66 Cyrillic characters 08 63 Pinyin accented vowels and zhuyin symbols 09 76 Box and table drawing symbols 16-55 3755 Hanzi level 1, ordered by pinyin 56-87 3008 Hanzi level 2, ordered by radical, then stroke


This book provides you a list of all characters in GB2312 and thier row numbers and columns.  

Row 01: Regular Symbols

R.C.    GB   Uni. UTF-8   R.C.   GB   Uni. UTF-8 

0101   A1A1 3000 E38080 0102 、 A1A2 3001 E38081 0103 。 A1A3 3002 E38082 0104 · A1A4 00B7 C2B7 0105 ˉ A1A5 02C9 CB89 0106 ˇ A1A6 02C7 CB87 0107 ¨ A1A7 00A8 C2A8 0108 〃 A1A8 3003 E38083 0109 々 A1A9 3005 E38085 0110 — A1AA 2014 E28094

[출처 : http://www.herongyang.com/gb2312/symbol.html]


GB2312 Codes

GB2312 assigns a 2-byte native code for each character.

The first byte is called the high byte, containing the row number plus 32;

the second byte is called the low byte, containing the column number plus 32.

For example, if a character is located at row 16 and column 1, its high byte will be 16 + 32 = 48 (0x30), and log byte will be 1 + 32 = 33 (0x21). Put them together, its native code will be 0x3021.

I guess the reason to add 32 on both row number and column is for the byte value to not fall into the low value range, which is usually reserved to represents controlling commands in many computer systems.

However, the byte values of GB2312 native codes are still colliding with ASCII codes. To resolve this problem, a value of 128 is added to both bytes of the native codes. For example, if a character is located at row 16 and column 1, its native code will be 0x3021, and its modified code will be 0xB0A1. (-> 128 = 0x80, 0x3021 + 0x8080 = 0xB0A1)

These modified codes are adopted as the GB2312 standard codes, which can be safely mixed together with ASCII codes.

This book provides you a list all GB2312 characters and their codes.

:: Row/Col 에서 GB2312로 변환하는 방법임, ASCII에서 GB2312 가 아님!

 

GB2312 vs. Unicode

GB2312 character set is sub set of Unicode character set. This means that every character defined in GB2312 is also defined in Unicode. However, GB2312 codes and Unicode codes are totally un-related. For example, GB2312 character with code value of 0xB0A1 has a Unicode code value of 0x554A. There no mathematical formula to convert a GB2312 code to a Unicode code of the same character. This book provides you a complet map of all GB2312 codes and thier corresponding Unicode codes. The corresponding UTF-8 (Unicode Transformation Format - 8-bit) are also listed in the map.

 

[출처 : http://www.herongyang.com/gb2312/overview.html]

신고

'모종의 음모 > GB2312(중국어 간체)' 카테고리의 다른 글

GB2312 ASCII 부분 처리  (0) 2009.03.16
GB2312, Unicode  (0) 2009.03.16
GB2312 to Unicode mapping table  (0) 2009.03.16
Posted by 구차니

댓글을 달아 주세요

const unsigned short gb2312tab[MAX_GB2312_KU][MAX_GB2312_TEN] = {
  {    /* ku 01 */ //row값은 16진수로 적혀 있다. 주의!!
    0x3000,0x3001,0x3002,0x30fb,0x02c9,0x02c7,0x00a8,0x3003,0x3005,0x2015,
    0xff5e,0x2225,0x2026,0x2018,0x2019,0x201c,0x201d,0x3014,0x3015,0x3008,
    0x3009,0x300a,0x300b,0x300c,0x300d,0x300e,0x300f,0x3016,0x3017,0x3010,
    0x3011,0x00b1,0x00d7,0x00f7,0x2236,0x2227,0x2228,0x2211,0x220f,0x222a,
    0x2229,0x2208,0x2237,0x221a,0x22a5,0x2225,0x2220,0x2312,0x2299,0x222b,
    0x222e,0x2261,0x224c,0x2248,0x223d,0x221d,0x2260,0x226e,0x226f,0x2264,
    0x2265,0x221e,0x2235,0x2234,0x2642,0x2640,0x00b0,0x2032,0x2033,0x2103,
    0xff04,0x00a4,0xffe0,0xffe1,0x2030,0x00a7,0x2116,0x2606,0x2605,0x25cb,
    0x25cf,0x25ce,0x25c7,0x25c6,0x25a1,0x25a0,0x25b3,0x25b2,0x203b,0x2192,
    0x2190,0x2191,0x2193,0x3013
  },
  {    /* ku 02 */
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2488,0x2489,0x248a,0x248b,
    0x248c,0x248d,0x248e,0x248f,0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,
    0x2496,0x2497,0x2498,0x2499,0x249a,0x249b,0x2474,0x2475,0x2476,0x2477,
    0x2478,0x2479,0x247a,0x247b,0x247c,0x247d,0x247e,0x247f,0x2480,0x2481,
    0x2482,0x2483,0x2484,0x2485,0x2486,0x2487,0x2460,0x2461,0x2462,0x2463,
    0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x0000,0x0000,0x3220,0x3221,
    0x3222,0x3223,0x3224,0x3225,0x3226,0x3227,0x3228,0x3229,0x0000,0x0000,
    0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,
    0x216a,0x216b,0x0000,0x0000
  },
  {    /* ku 03 */
    0xff01,0xff02,0xff03,0xffe5,0xff05,0xff06,0xff07,0xff08,0xff09,0xff0a,
    0xff0b,0xff0c,0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13,0xff14,
    0xff15,0xff16,0xff17,0xff18,0xff19,0xff1a,0xff1b,0xff1c,0xff1d,0xff1e,
    0xff1f,0xff20,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26,0xff27,0xff28,
    0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e,0xff2f,0xff30,0xff31,0xff32,
    0xff33,0xff34,0xff35,0xff36,0xff37,0xff38,0xff39,0xff3a,0xff3b,0xff3c,
    0xff3d,0xff3e,0xff3f,0xff40,0xff41,0xff42,0xff43,0xff44,0xff45,0xff46,
    0xff47,0xff48,0xff49,0xff4a,0xff4b,0xff4c,0xff4d,0xff4e,0xff4f,0xff50,
    0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,
    0xff5b,0xff5c,0xff5d,0xffe3
  },
  {    /* ku 04 */
    0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048,0x3049,0x304a,
    0x304b,0x304c,0x304d,0x304e,0x304f,0x3050,0x3051,0x3052,0x3053,0x3054,
    0x3055,0x3056,0x3057,0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,
    0x305f,0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068,
    0x3069,0x306a,0x306b,0x306c,0x306d,0x306e,0x306f,0x3070,0x3071,0x3072,
    0x3073,0x3074,0x3075,0x3076,0x3077,0x3078,0x3079,0x307a,0x307b,0x307c,
    0x307d,0x307e,0x307f,0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,
    0x3087,0x3088,0x3089,0x308a,0x308b,0x308c,0x308d,0x308e,0x308f,0x3090,
    0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 05 */
    0x30a1,0x30a2,0x30a3,0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,
    0x30ab,0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3,0x30b4,
    0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,0x30bc,0x30bd,0x30be,
    0x30bf,0x30c0,0x30c1,0x30c2,0x30c3,0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,
    0x30c9,0x30ca,0x30cb,0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,
    0x30d3,0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db,0x30dc,
    0x30dd,0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3,0x30e4,0x30e5,0x30e6,
    0x30e7,0x30e8,0x30e9,0x30ea,0x30eb,0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,
    0x30f1,0x30f2,0x30f3,0x30f4,0x30f5,0x30f6,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 06 */
    0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039a,
    0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,
    0x03a6,0x03a7,0x03a8,0x03a9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,
    0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3,
    0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x03c9,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 07 */
    0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,
    0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,0x0420,0x0421,0x0422,
    0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042a,0x042b,0x042c,
    0x042d,0x042e,0x042f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0430,0x0431,
    0x0432,0x0433,0x0434,0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,0x043a,
    0x043b,0x043c,0x043d,0x043e,0x043f,0x0440,0x0441,0x0442,0x0443,0x0444,
    0x0445,0x0446,0x0447,0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,
    0x044f,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 08 */
    0x0101,0x00e1,0x01ce,0x00e0,0x0113,0x00e9,0x011b,0x00e8,0x012b,0x00ed,
    0x01d0,0x00ec,0x014d,0x00f3,0x01d2,0x00f2,0x016b,0x00fa,0x01d4,0x00f9,
    0x01d6,0x01d8,0x01da,0x01dc,0x00fc,0x00ea,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3105,0x3106,0x3107,0x3108,
    0x3109,0x310a,0x310b,0x310c,0x310d,0x310e,0x310f,0x3110,0x3111,0x3112,
    0x3113,0x3114,0x3115,0x3116,0x3117,0x3118,0x3119,0x311a,0x311b,0x311c,
    0x311d,0x311e,0x311f,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,
    0x3127,0x3128,0x3129,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 09 */
    0x0000,0x0000,0x0000,0x2500,0x2501,0x2502,0x2503,0x2504,0x2505,0x2506,
    0x2507,0x2508,0x2509,0x250a,0x250b,0x250c,0x250d,0x250e,0x250f,0x2510,
    0x2511,0x2512,0x2513,0x2514,0x2515,0x2516,0x2517,0x2518,0x2519,0x251a,
    0x251b,0x251c,0x251d,0x251e,0x251f,0x2520,0x2521,0x2522,0x2523,0x2524,
    0x2525,0x2526,0x2527,0x2528,0x2529,0x252a,0x252b,0x252c,0x252d,0x252e,
    0x252f,0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537,0x2538,
    0x2539,0x253a,0x253b,0x253c,0x253d,0x253e,0x253f,0x2540,0x2541,0x2542,
    0x2543,0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254a,0x254b,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 0a */ //이녀석에 속으면 안된다. row값은 16진수로 적혀 있다.
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 0b */
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 0c */
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 0d */
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 0e */
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 0f */
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 10 */
    0x554a,0x963f,0x57c3,0x6328,0x54ce,0x5509,0x54c0,0x7691,0x764c,0x853c,
    0x77ee,0x827e,0x788d,0x7231,0x9698,0x978d,0x6c28,0x5b89,0x4ffa,0x6309,
    0x6697,0x5cb8,0x80fa,0x6848,0x80ae,0x6602,0x76ce,0x51f9,0x6556,0x71ac,
    0x7ff1,0x8884,0x50b2,0x5965,0x61ca,0x6fb3,0x82ad,0x634c,0x6252,0x53ed,
    0x5427,0x7b06,0x516b,0x75a4,0x5df4,0x62d4,0x8dcb,0x9776,0x628a,0x8019,
    0x575d,0x9738,0x7f62,0x7238,0x767d,0x67cf,0x767e,0x6446,0x4f70,0x8d25,
    0x62dc,0x7a17,0x6591,0x73ed,0x642c,0x6273,0x822c,0x9881,0x677f,0x7248,
    0x626e,0x62cc,0x4f34,0x74e3,0x534a,0x529e,0x7eca,0x90a6,0x5e2e,0x6886,
    0x699c,0x8180,0x7ed1,0x68d2,0x78c5,0x868c,0x9551,0x508d,0x8c24,0x82de,
    0x80de,0x5305,0x8912,0x5265
  },
  {    /* ku 11 */
    0x8584,0x96f9,0x4fdd,0x5821,0x9971,0x5b9d,0x62b1,0x62a5,0x66b4,0x8c79,
    0x9c8d,0x7206,0x676f,0x7891,0x60b2,0x5351,0x5317,0x8f88,0x80cc,0x8d1d,
    0x94a1,0x500d,0x72c8,0x5907,0x60eb,0x7119,0x88ab,0x5954,0x82ef,0x672c,
    0x7b28,0x5d29,0x7ef7,0x752d,0x6cf5,0x8e66,0x8ff8,0x903c,0x9f3b,0x6bd4,
    0x9119,0x7b14,0x5f7c,0x78a7,0x84d6,0x853d,0x6bd5,0x6bd9,0x6bd6,0x5e01,
    0x5e87,0x75f9,0x95ed,0x655d,0x5f0a,0x5fc5,0x8f9f,0x58c1,0x81c2,0x907f,
    0x965b,0x97ad,0x8fb9,0x7f16,0x8d2c,0x6241,0x4fbf,0x53d8,0x535e,0x8fa8,
    0x8fa9,0x8fab,0x904d,0x6807,0x5f6a,0x8198,0x8868,0x9cd6,0x618b,0x522b,
    0x762a,0x5f6c,0x658c,0x6fd2,0x6ee8,0x5bbe,0x6448,0x5175,0x51b0,0x67c4,
    0x4e19,0x79c9,0x997c,0x70b3
  },
  {    /* ku 12 */
    0x75c5,0x5e76,0x73bb,0x83e0,0x64ad,0x62e8,0x94b5,0x6ce2,0x535a,0x52c3,
    0x640f,0x94c2,0x7b94,0x4f2f,0x5e1b,0x8236,0x8116,0x818a,0x6e24,0x6cca,
    0x9a73,0x6355,0x535c,0x54fa,0x8865,0x57e0,0x4e0d,0x5e03,0x6b65,0x7c3f,
    0x90e8,0x6016,0x64e6,0x731c,0x88c1,0x6750,0x624d,0x8d22,0x776c,0x8e29,
    0x91c7,0x5f69,0x83dc,0x8521,0x9910,0x53c2,0x8695,0x6b8b,0x60ed,0x60e8,
    0x707f,0x82cd,0x8231,0x4ed3,0x6ca7,0x85cf,0x64cd,0x7cd9,0x69fd,0x66f9,
    0x8349,0x5395,0x7b56,0x4fa7,0x518c,0x6d4b,0x5c42,0x8e6d,0x63d2,0x53c9,
    0x832c,0x8336,0x67e5,0x78b4,0x643d,0x5bdf,0x5c94,0x5dee,0x8be7,0x62c6,
    0x67f4,0x8c7a,0x6400,0x63ba,0x8749,0x998b,0x8c17,0x7f20,0x94f2,0x4ea7,
    0x9610,0x98a4,0x660c,0x7316
  },
  {    /* ku 13 */
    0x573a,0x5c1d,0x5e38,0x957f,0x507f,0x80a0,0x5382,0x655e,0x7545,0x5531,
    0x5021,0x8d85,0x6284,0x949e,0x671d,0x5632,0x6f6e,0x5de2,0x5435,0x7092,
    0x8f66,0x626f,0x64a4,0x63a3,0x5f7b,0x6f88,0x90f4,0x81e3,0x8fb0,0x5c18,
    0x6668,0x5ff1,0x6c89,0x9648,0x8d81,0x886c,0x6491,0x79f0,0x57ce,0x6a59,
    0x6210,0x5448,0x4e58,0x7a0b,0x60e9,0x6f84,0x8bda,0x627f,0x901e,0x9a8b,
    0x79e4,0x5403,0x75f4,0x6301,0x5319,0x6c60,0x8fdf,0x5f1b,0x9a70,0x803b,
    0x9f7f,0x4f88,0x5c3a,0x8d64,0x7fc5,0x65a5,0x70bd,0x5145,0x51b2,0x866b,
    0x5d07,0x5ba0,0x62bd,0x916c,0x7574,0x8e0c,0x7a20,0x6101,0x7b79,0x4ec7,
    0x7ef8,0x7785,0x4e11,0x81ed,0x521d,0x51fa,0x6a71,0x53a8,0x8e87,0x9504,
    0x96cf,0x6ec1,0x9664,0x695a
  },
  {    /* ku 14 */
    0x7840,0x50a8,0x77d7,0x6410,0x89e6,0x5904,0x63e3,0x5ddd,0x7a7f,0x693d,
    0x4f20,0x8239,0x5598,0x4e32,0x75ae,0x7a97,0x5e62,0x5e8a,0x95ef,0x521b,
    0x5439,0x708a,0x6376,0x9524,0x5782,0x6625,0x693f,0x9187,0x5507,0x6df3,
    0x7eaf,0x8822,0x6233,0x7ef0,0x75b5,0x8328,0x78c1,0x96cc,0x8f9e,0x6148,
    0x74f7,0x8bcd,0x6b64,0x523a,0x8d50,0x6b21,0x806a,0x8471,0x56f1,0x5306,
    0x4ece,0x4e1b,0x51d1,0x7c97,0x918b,0x7c07,0x4fc3,0x8e7f,0x7be1,0x7a9c,
    0x6467,0x5d14,0x50ac,0x8106,0x7601,0x7cb9,0x6dec,0x7fe0,0x6751,0x5b58,
    0x5bf8,0x78cb,0x64ae,0x6413,0x63aa,0x632b,0x9519,0x642d,0x8fbe,0x7b54,
    0x7629,0x6253,0x5927,0x5446,0x6b79,0x50a3,0x6234,0x5e26,0x6b86,0x4ee3,
    0x8d37,0x888b,0x5f85,0x902e
  },
  {    /* ku 15 */
    0x6020,0x803d,0x62c5,0x4e39,0x5355,0x90f8,0x63b8,0x80c6,0x65e6,0x6c2e,
    0x4f46,0x60ee,0x6de1,0x8bde,0x5f39,0x86cb,0x5f53,0x6321,0x515a,0x8361,
    0x6863,0x5200,0x6363,0x8e48,0x5012,0x5c9b,0x7977,0x5bfc,0x5230,0x7a3b,
    0x60bc,0x9053,0x76d7,0x5fb7,0x5f97,0x7684,0x8e6c,0x706f,0x767b,0x7b49,
    0x77aa,0x51f3,0x9093,0x5824,0x4f4e,0x6ef4,0x8fea,0x654c,0x7b1b,0x72c4,
    0x6da4,0x7fdf,0x5ae1,0x62b5,0x5e95,0x5730,0x8482,0x7b2c,0x5e1d,0x5f1f,
    0x9012,0x7f14,0x98a0,0x6382,0x6ec7,0x7898,0x70b9,0x5178,0x975b,0x57ab,
    0x7535,0x4f43,0x7538,0x5e97,0x60e6,0x5960,0x6dc0,0x6bbf,0x7889,0x53fc,
    0x96d5,0x51cb,0x5201,0x6389,0x540a,0x9493,0x8c03,0x8dcc,0x7239,0x789f,
    0x8776,0x8fed,0x8c0d,0x53e0
  },
  {    /* ku 16 */
    0x4e01,0x76ef,0x53ee,0x9489,0x9876,0x9f0e,0x952d,0x5b9a,0x8ba2,0x4e22,
    0x4e1c,0x51ac,0x8463,0x61c2,0x52a8,0x680b,0x4f97,0x606b,0x51bb,0x6d1e,
    0x515c,0x6296,0x6597,0x9661,0x8c46,0x9017,0x75d8,0x90fd,0x7763,0x6bd2,
    0x728a,0x72ec,0x8bfb,0x5835,0x7779,0x8d4c,0x675c,0x9540,0x809a,0x5ea6,
    0x6e21,0x5992,0x7aef,0x77ed,0x953b,0x6bb5,0x65ad,0x7f0e,0x5806,0x5151,
    0x961f,0x5bf9,0x58a9,0x5428,0x8e72,0x6566,0x987f,0x56e4,0x949d,0x76fe,
    0x9041,0x6387,0x54c6,0x591a,0x593a,0x579b,0x8eb2,0x6735,0x8dfa,0x8235,
    0x5241,0x60f0,0x5815,0x86fe,0x5ce8,0x9e45,0x4fc4,0x989d,0x8bb9,0x5a25,
    0x6076,0x5384,0x627c,0x904f,0x9102,0x997f,0x6069,0x800c,0x513f,0x8033,
    0x5c14,0x9975,0x6d31,0x4e8c
  },
  {    /* ku 17 */
    0x8d30,0x53d1,0x7f5a,0x7b4f,0x4f10,0x4e4f,0x9600,0x6cd5,0x73d0,0x85e9,
    0x5e06,0x756a,0x7ffb,0x6a0a,0x77fe,0x9492,0x7e41,0x51e1,0x70e6,0x53cd,
    0x8fd4,0x8303,0x8d29,0x72af,0x996d,0x6cdb,0x574a,0x82b3,0x65b9,0x80aa,
    0x623f,0x9632,0x59a8,0x4eff,0x8bbf,0x7eba,0x653e,0x83f2,0x975e,0x5561,
    0x98de,0x80a5,0x532a,0x8bfd,0x5420,0x80ba,0x5e9f,0x6cb8,0x8d39,0x82ac,
    0x915a,0x5429,0x6c1b,0x5206,0x7eb7,0x575f,0x711a,0x6c7e,0x7c89,0x594b,
    0x4efd,0x5fff,0x6124,0x7caa,0x4e30,0x5c01,0x67ab,0x8702,0x5cf0,0x950b,
    0x98ce,0x75af,0x70fd,0x9022,0x51af,0x7f1d,0x8bbd,0x5949,0x51e4,0x4f5b,
    0x5426,0x592b,0x6577,0x80a4,0x5b75,0x6276,0x62c2,0x8f90,0x5e45,0x6c1f,
    0x7b26,0x4f0f,0x4fd8,0x670d
  },
  {    /* ku 18 */
    0x6d6e,0x6daa,0x798f,0x88b1,0x5f17,0x752b,0x629a,0x8f85,0x4fef,0x91dc,
    0x65a7,0x812f,0x8151,0x5e9c,0x8150,0x8d74,0x526f,0x8986,0x8d4b,0x590d,
    0x5085,0x4ed8,0x961c,0x7236,0x8179,0x8d1f,0x5bcc,0x8ba3,0x9644,0x5987,
    0x7f1a,0x5490,0x5676,0x560e,0x8be5,0x6539,0x6982,0x9499,0x76d6,0x6e89,
    0x5e72,0x7518,0x6746,0x67d1,0x7aff,0x809d,0x8d76,0x611f,0x79c6,0x6562,
    0x8d63,0x5188,0x521a,0x94a2,0x7f38,0x809b,0x7eb2,0x5c97,0x6e2f,0x6760,
    0x7bd9,0x768b,0x9ad8,0x818f,0x7f94,0x7cd5,0x641e,0x9550,0x7a3f,0x544a,
    0x54e5,0x6b4c,0x6401,0x6208,0x9e3d,0x80f3,0x7599,0x5272,0x9769,0x845b,
    0x683c,0x86e4,0x9601,0x9694,0x94ec,0x4e2a,0x5404,0x7ed9,0x6839,0x8ddf,
    0x8015,0x66f4,0x5e9a,0x7fb9
  },
  {    /* ku 19 */
    0x57c2,0x803f,0x6897,0x5de5,0x653b,0x529f,0x606d,0x9f9a,0x4f9b,0x8eac,
    0x516c,0x5bab,0x5f13,0x5de9,0x6c5e,0x62f1,0x8d21,0x5171,0x94a9,0x52fe,
    0x6c9f,0x82df,0x72d7,0x57a2,0x6784,0x8d2d,0x591f,0x8f9c,0x83c7,0x5495,
    0x7b8d,0x4f30,0x6cbd,0x5b64,0x59d1,0x9f13,0x53e4,0x86ca,0x9aa8,0x8c37,
    0x80a1,0x6545,0x987e,0x56fa,0x96c7,0x522e,0x74dc,0x5250,0x5be1,0x6302,
    0x8902,0x4e56,0x62d0,0x602a,0x68fa,0x5173,0x5b98,0x51a0,0x89c2,0x7ba1,
    0x9986,0x7f50,0x60ef,0x704c,0x8d2f,0x5149,0x5e7f,0x901b,0x7470,0x89c4,
    0x572d,0x7845,0x5f52,0x9f9f,0x95fa,0x8f68,0x9b3c,0x8be1,0x7678,0x6842,
    0x67dc,0x8dea,0x8d35,0x523d,0x8f8a,0x6eda,0x68cd,0x9505,0x90ed,0x56fd,
    0x679c,0x88f9,0x8fc7,0x54c8
  },
  {    /* ku 1a */
    0x9ab8,0x5b69,0x6d77,0x6c26,0x4ea5,0x5bb3,0x9a87,0x9163,0x61a8,0x90af,
    0x97e9,0x542b,0x6db5,0x5bd2,0x51fd,0x558a,0x7f55,0x7ff0,0x64bc,0x634d,
    0x65f1,0x61be,0x608d,0x710a,0x6c57,0x6c49,0x592f,0x676d,0x822a,0x58d5,
    0x568e,0x8c6a,0x6beb,0x90dd,0x597d,0x8017,0x53f7,0x6d69,0x5475,0x559d,
    0x8377,0x83cf,0x6838,0x79be,0x548c,0x4f55,0x5408,0x76d2,0x8c89,0x9602,
    0x6cb3,0x6db8,0x8d6b,0x8910,0x9e64,0x8d3a,0x563f,0x9ed1,0x75d5,0x5f88,
    0x72e0,0x6068,0x54fc,0x4ea8,0x6a2a,0x8861,0x6052,0x8f70,0x54c4,0x70d8,
    0x8679,0x9e3f,0x6d2a,0x5b8f,0x5f18,0x7ea2,0x5589,0x4faf,0x7334,0x543c,
    0x539a,0x5019,0x540e,0x547c,0x4e4e,0x5ffd,0x745a,0x58f6,0x846b,0x80e1,
    0x8774,0x72d0,0x7cca,0x6e56
  },
  {    /* ku 1b */
    0x5f27,0x864e,0x552c,0x62a4,0x4e92,0x6caa,0x6237,0x82b1,0x54d7,0x534e,
    0x733e,0x6ed1,0x753b,0x5212,0x5316,0x8bdd,0x69d0,0x5f8a,0x6000,0x6dee,
    0x574f,0x6b22,0x73af,0x6853,0x8fd8,0x7f13,0x6362,0x60a3,0x5524,0x75ea,
    0x8c62,0x7115,0x6da3,0x5ba6,0x5e7b,0x8352,0x614c,0x9ec4,0x78fa,0x8757,
    0x7c27,0x7687,0x51f0,0x60f6,0x714c,0x6643,0x5e4c,0x604d,0x8c0e,0x7070,
    0x6325,0x8f89,0x5fbd,0x6062,0x86d4,0x56de,0x6bc1,0x6094,0x6167,0x5349,
    0x60e0,0x6666,0x8d3f,0x79fd,0x4f1a,0x70e9,0x6c47,0x8bb3,0x8bf2,0x7ed8,
    0x8364,0x660f,0x5a5a,0x9b42,0x6d51,0x6df7,0x8c41,0x6d3b,0x4f19,0x706b,
    0x83b7,0x6216,0x60d1,0x970d,0x8d27,0x7978,0x51fb,0x573e,0x57fa,0x673a,
    0x7578,0x7a3d,0x79ef,0x7b95
  },
  {    /* ku 1c */
    0x808c,0x9965,0x8ff9,0x6fc0,0x8ba5,0x9e21,0x59ec,0x7ee9,0x7f09,0x5409,
    0x6781,0x68d8,0x8f91,0x7c4d,0x96c6,0x53ca,0x6025,0x75be,0x6c72,0x5373,
    0x5ac9,0x7ea7,0x6324,0x51e0,0x810a,0x5df1,0x84df,0x6280,0x5180,0x5b63,
    0x4f0e,0x796d,0x5242,0x60b8,0x6d4e,0x5bc4,0x5bc2,0x8ba1,0x8bb0,0x65e2,
    0x5fcc,0x9645,0x5993,0x7ee7,0x7eaa,0x5609,0x67b7,0x5939,0x4f73,0x5bb6,
    0x52a0,0x835a,0x988a,0x8d3e,0x7532,0x94be,0x5047,0x7a3c,0x4ef7,0x67b6,
    0x9a7e,0x5ac1,0x6b7c,0x76d1,0x575a,0x5c16,0x7b3a,0x95f4,0x714e,0x517c,
    0x80a9,0x8270,0x5978,0x7f04,0x8327,0x68c0,0x67ec,0x78b1,0x7877,0x62e3,
    0x6361,0x7b80,0x4fed,0x526a,0x51cf,0x8350,0x69db,0x9274,0x8df5,0x8d31,
    0x89c1,0x952e,0x7bad,0x4ef6
  },
  {    /* ku 1d */
    0x5065,0x8230,0x5251,0x996f,0x6e10,0x6e85,0x6da7,0x5efa,0x50f5,0x59dc,
    0x5c06,0x6d46,0x6c5f,0x7586,0x848b,0x6868,0x5956,0x8bb2,0x5320,0x9171,
    0x964d,0x8549,0x6912,0x7901,0x7126,0x80f6,0x4ea4,0x90ca,0x6d47,0x9a84,
    0x5a07,0x56bc,0x6405,0x94f0,0x77eb,0x4fa5,0x811a,0x72e1,0x89d2,0x997a,
    0x7f34,0x7ede,0x527f,0x6559,0x9175,0x8f7f,0x8f83,0x53eb,0x7a96,0x63ed,
    0x63a5,0x7686,0x79f8,0x8857,0x9636,0x622a,0x52ab,0x8282,0x6854,0x6770,
    0x6377,0x776b,0x7aed,0x6d01,0x7ed3,0x89e3,0x59d0,0x6212,0x85c9,0x82a5,
    0x754c,0x501f,0x4ecb,0x75a5,0x8beb,0x5c4a,0x5dfe,0x7b4b,0x65a4,0x91d1,
    0x4eca,0x6d25,0x895f,0x7d27,0x9526,0x4ec5,0x8c28,0x8fdb,0x9773,0x664b,
    0x7981,0x8fd1,0x70ec,0x6d78
  },
  {    /* ku 1e */
    0x5c3d,0x52b2,0x8346,0x5162,0x830e,0x775b,0x6676,0x9cb8,0x4eac,0x60ca,
    0x7cbe,0x7cb3,0x7ecf,0x4e95,0x8b66,0x666f,0x9888,0x9759,0x5883,0x656c,
    0x955c,0x5f84,0x75c9,0x9756,0x7adf,0x7ade,0x51c0,0x70af,0x7a98,0x63ea,
    0x7a76,0x7ea0,0x7396,0x97ed,0x4e45,0x7078,0x4e5d,0x9152,0x53a9,0x6551,
    0x65e7,0x81fc,0x8205,0x548e,0x5c31,0x759a,0x97a0,0x62d8,0x72d9,0x75bd,
    0x5c45,0x9a79,0x83ca,0x5c40,0x5480,0x77e9,0x4e3e,0x6cae,0x805a,0x62d2,
    0x636e,0x5de8,0x5177,0x8ddd,0x8e1e,0x952f,0x4ff1,0x53e5,0x60e7,0x70ac,
    0x5267,0x6350,0x9e43,0x5a1f,0x5026,0x7737,0x5377,0x7ee2,0x6485,0x652b,
    0x6289,0x6398,0x5014,0x7235,0x89c9,0x51b3,0x8bc0,0x7edd,0x5747,0x83cc,
    0x94a7,0x519b,0x541b,0x5cfb
  },
  {    /* ku 1f */
    0x4fca,0x7ae3,0x6d5a,0x90e1,0x9a8f,0x5580,0x5496,0x5361,0x54af,0x5f00,
    0x63e9,0x6977,0x51ef,0x6168,0x520a,0x582a,0x52d8,0x574e,0x780d,0x770b,
    0x5eb7,0x6177,0x7ce0,0x625b,0x6297,0x4ea2,0x7095,0x8003,0x62f7,0x70e4,
    0x9760,0x5777,0x82db,0x67ef,0x68f5,0x78d5,0x9897,0x79d1,0x58f3,0x54b3,
    0x53ef,0x6e34,0x514b,0x523b,0x5ba2,0x8bfe,0x80af,0x5543,0x57a6,0x6073,
    0x5751,0x542d,0x7a7a,0x6050,0x5b54,0x63a7,0x62a0,0x53e3,0x6263,0x5bc7,
    0x67af,0x54ed,0x7a9f,0x82e6,0x9177,0x5e93,0x88e4,0x5938,0x57ae,0x630e,
    0x8de8,0x80ef,0x5757,0x7b77,0x4fa9,0x5feb,0x5bbd,0x6b3e,0x5321,0x7b50,
    0x72c2,0x6846,0x77ff,0x7736,0x65f7,0x51b5,0x4e8f,0x76d4,0x5cbf,0x7aa5,
    0x8475,0x594e,0x9b41,0x5080
  },
  {    /* ku 20 */
    0x9988,0x6127,0x6e83,0x5764,0x6606,0x6346,0x56f0,0x62ec,0x6269,0x5ed3,
    0x9614,0x5783,0x62c9,0x5587,0x8721,0x814a,0x8fa3,0x5566,0x83b1,0x6765,
    0x8d56,0x84dd,0x5a6a,0x680f,0x62e6,0x7bee,0x9611,0x5170,0x6f9c,0x8c30,
    0x63fd,0x89c8,0x61d2,0x7f06,0x70c2,0x6ee5,0x7405,0x6994,0x72fc,0x5eca,
    0x90ce,0x6717,0x6d6a,0x635e,0x52b3,0x7262,0x8001,0x4f6c,0x59e5,0x916a,
    0x70d9,0x6d9d,0x52d2,0x4e50,0x96f7,0x956d,0x857e,0x78ca,0x7d2f,0x5121,
    0x5792,0x64c2,0x808b,0x7c7b,0x6cea,0x68f1,0x695e,0x51b7,0x5398,0x68a8,
    0x7281,0x9ece,0x7bf1,0x72f8,0x79bb,0x6f13,0x7406,0x674e,0x91cc,0x9ca4,
    0x793c,0x8389,0x8354,0x540f,0x6817,0x4e3d,0x5389,0x52b1,0x783e,0x5386,
    0x5229,0x5088,0x4f8b,0x4fd0
  },
  {    /* ku 21 */
    0x75e2,0x7acb,0x7c92,0x6ca5,0x96b6,0x529b,0x7483,0x54e9,0x4fe9,0x8054,
    0x83b2,0x8fde,0x9570,0x5ec9,0x601c,0x6d9f,0x5e18,0x655b,0x8138,0x94fe,
    0x604b,0x70bc,0x7ec3,0x7cae,0x51c9,0x6881,0x7cb1,0x826f,0x4e24,0x8f86,
    0x91cf,0x667e,0x4eae,0x8c05,0x64a9,0x804a,0x50da,0x7597,0x71ce,0x5be5,
    0x8fbd,0x6f66,0x4e86,0x6482,0x9563,0x5ed6,0x6599,0x5217,0x88c2,0x70c8,
    0x52a3,0x730e,0x7433,0x6797,0x78f7,0x9716,0x4e34,0x90bb,0x9cde,0x6dcb,
    0x51db,0x8d41,0x541d,0x62ce,0x73b2,0x83f1,0x96f6,0x9f84,0x94c3,0x4f36,
    0x7f9a,0x51cc,0x7075,0x9675,0x5cad,0x9886,0x53e6,0x4ee4,0x6e9c,0x7409,
    0x69b4,0x786b,0x998f,0x7559,0x5218,0x7624,0x6d41,0x67f3,0x516d,0x9f99,
    0x804b,0x5499,0x7b3c,0x7abf
  },
  {    /* ku 22 */
    0x9686,0x5784,0x62e2,0x9647,0x697c,0x5a04,0x6402,0x7bd3,0x6f0f,0x964b,
    0x82a6,0x5362,0x9885,0x5e90,0x7089,0x63b3,0x5364,0x864f,0x9c81,0x9e93,
    0x788c,0x9732,0x8def,0x8d42,0x9e7f,0x6f5e,0x7984,0x5f55,0x9646,0x622e,
    0x9a74,0x5415,0x94dd,0x4fa3,0x65c5,0x5c65,0x5c61,0x7f15,0x8651,0x6c2f,
    0x5f8b,0x7387,0x6ee4,0x7eff,0x5ce6,0x631b,0x5b6a,0x6ee6,0x5375,0x4e71,
    0x63a0,0x7565,0x62a1,0x8f6e,0x4f26,0x4ed1,0x6ca6,0x7eb6,0x8bba,0x841d,
    0x87ba,0x7f57,0x903b,0x9523,0x7ba9,0x9aa1,0x88f8,0x843d,0x6d1b,0x9a86,
    0x7edc,0x5988,0x9ebb,0x739b,0x7801,0x8682,0x9a6c,0x9a82,0x561b,0x5417,
    0x57cb,0x4e70,0x9ea6,0x5356,0x8fc8,0x8109,0x7792,0x9992,0x86ee,0x6ee1,
    0x8513,0x66fc,0x6162,0x6f2b
  },
  {    /* ku 23 */
    0x8c29,0x8292,0x832b,0x76f2,0x6c13,0x5fd9,0x83bd,0x732b,0x8305,0x951a,
    0x6bdb,0x77db,0x94c6,0x536f,0x8302,0x5192,0x5e3d,0x8c8c,0x8d38,0x4e48,
    0x73ab,0x679a,0x6885,0x9176,0x9709,0x7164,0x6ca1,0x7709,0x5a92,0x9541,
    0x6bcf,0x7f8e,0x6627,0x5bd0,0x59b9,0x5a9a,0x95e8,0x95f7,0x4eec,0x840c,
    0x8499,0x6aac,0x76df,0x9530,0x731b,0x68a6,0x5b5f,0x772f,0x919a,0x9761,
    0x7cdc,0x8ff7,0x8c1c,0x5f25,0x7c73,0x79d8,0x89c5,0x6ccc,0x871c,0x5bc6,
    0x5e42,0x68c9,0x7720,0x7ef5,0x5195,0x514d,0x52c9,0x5a29,0x7f05,0x9762,
    0x82d7,0x63cf,0x7784,0x85d0,0x79d2,0x6e3a,0x5e99,0x5999,0x8511,0x706d,
    0x6c11,0x62bf,0x76bf,0x654f,0x60af,0x95fd,0x660e,0x879f,0x9e23,0x94ed,
    0x540d,0x547d,0x8c2c,0x6478
  },
  {    /* ku 24 */
    0x6479,0x8611,0x6a21,0x819c,0x78e8,0x6469,0x9b54,0x62b9,0x672b,0x83ab,
    0x58a8,0x9ed8,0x6cab,0x6f20,0x5bde,0x964c,0x8c0b,0x725f,0x67d0,0x62c7,
    0x7261,0x4ea9,0x59c6,0x6bcd,0x5893,0x66ae,0x5e55,0x52df,0x6155,0x6728,
    0x76ee,0x7766,0x7267,0x7a46,0x62ff,0x54ea,0x5450,0x94a0,0x90a3,0x5a1c,
    0x7eb3,0x6c16,0x4e43,0x5976,0x8010,0x5948,0x5357,0x7537,0x96be,0x56ca,
    0x6320,0x8111,0x607c,0x95f9,0x6dd6,0x5462,0x9981,0x5185,0x5ae9,0x80fd,
    0x59ae,0x9713,0x502a,0x6ce5,0x5c3c,0x62df,0x4f60,0x533f,0x817b,0x9006,
    0x6eba,0x852b,0x62c8,0x5e74,0x78be,0x64b5,0x637b,0x5ff5,0x5a18,0x917f,
    0x9e1f,0x5c3f,0x634f,0x8042,0x5b7d,0x556e,0x954a,0x954d,0x6d85,0x60a8,
    0x67e0,0x72de,0x51dd,0x5b81
  },
  {    /* ku 25 */
    0x62e7,0x6cde,0x725b,0x626d,0x94ae,0x7ebd,0x8113,0x6d53,0x519c,0x5f04,
    0x5974,0x52aa,0x6012,0x5973,0x6696,0x8650,0x759f,0x632a,0x61e6,0x7cef,
    0x8bfa,0x54e6,0x6b27,0x9e25,0x6bb4,0x85d5,0x5455,0x5076,0x6ca4,0x556a,
    0x8db4,0x722c,0x5e15,0x6015,0x7436,0x62cd,0x6392,0x724c,0x5f98,0x6e43,
    0x6d3e,0x6500,0x6f58,0x76d8,0x78d0,0x76fc,0x7554,0x5224,0x53db,0x4e53,
    0x5e9e,0x65c1,0x802a,0x80d6,0x629b,0x5486,0x5228,0x70ae,0x888d,0x8dd1,
    0x6ce1,0x5478,0x80da,0x57f9,0x88f4,0x8d54,0x966a,0x914d,0x4f69,0x6c9b,
    0x55b7,0x76c6,0x7830,0x62a8,0x70f9,0x6f8e,0x5f6d,0x84ec,0x68da,0x787c,
    0x7bf7,0x81a8,0x670b,0x9e4f,0x6367,0x78b0,0x576f,0x7812,0x9739,0x6279,
    0x62ab,0x5288,0x7435,0x6bd7
  },
  {    /* ku 26 */
    0x5564,0x813e,0x75b2,0x76ae,0x5339,0x75de,0x50fb,0x5c41,0x8b6c,0x7bc7,
    0x504f,0x7247,0x9a97,0x98d8,0x6f02,0x74e2,0x7968,0x6487,0x77a5,0x62fc,
    0x9891,0x8d2b,0x54c1,0x8058,0x4e52,0x576a,0x82f9,0x840d,0x5e73,0x51ed,
    0x74f6,0x8bc4,0x5c4f,0x5761,0x6cfc,0x9887,0x5a46,0x7834,0x9b44,0x8feb,
    0x7c95,0x5256,0x6251,0x94fa,0x4ec6,0x8386,0x8461,0x83e9,0x84b2,0x57d4,
    0x6734,0x5703,0x666e,0x6d66,0x8c31,0x66dd,0x7011,0x671f,0x6b3a,0x6816,
    0x621a,0x59bb,0x4e03,0x51c4,0x6f06,0x67d2,0x6c8f,0x5176,0x68cb,0x5947,
    0x6b67,0x7566,0x5d0e,0x8110,0x9f50,0x65d7,0x7948,0x7941,0x9a91,0x8d77,
    0x5c82,0x4e5e,0x4f01,0x542f,0x5951,0x780c,0x5668,0x6c14,0x8fc4,0x5f03,
    0x6c7d,0x6ce3,0x8bab,0x6390
  },
  {    /* ku 27 */
    0x6070,0x6d3d,0x7275,0x6266,0x948e,0x94c5,0x5343,0x8fc1,0x7b7e,0x4edf,
    0x8c26,0x4e7e,0x9ed4,0x94b1,0x94b3,0x524d,0x6f5c,0x9063,0x6d45,0x8c34,
    0x5811,0x5d4c,0x6b20,0x6b49,0x67aa,0x545b,0x8154,0x7f8c,0x5899,0x8537,
    0x5f3a,0x62a2,0x6a47,0x9539,0x6572,0x6084,0x6865,0x77a7,0x4e54,0x4fa8,
    0x5de7,0x9798,0x64ac,0x7fd8,0x5ced,0x4fcf,0x7a8d,0x5207,0x8304,0x4e14,
    0x602f,0x7a83,0x94a6,0x4fb5,0x4eb2,0x79e6,0x7434,0x52e4,0x82b9,0x64d2,
    0x79bd,0x5bdd,0x6c81,0x9752,0x8f7b,0x6c22,0x503e,0x537f,0x6e05,0x64ce,
    0x6674,0x6c30,0x60c5,0x9877,0x8bf7,0x5e86,0x743c,0x7a77,0x79cb,0x4e18,
    0x90b1,0x7403,0x6c42,0x56da,0x914b,0x6cc5,0x8d8b,0x533a,0x86c6,0x66f2,
    0x8eaf,0x5c48,0x9a71,0x6e20
  },
  {    /* ku 28 */
    0x53d6,0x5a36,0x9f8b,0x8da3,0x53bb,0x5708,0x98a7,0x6743,0x919b,0x6cc9,
    0x5168,0x75ca,0x62f3,0x72ac,0x5238,0x529d,0x7f3a,0x7094,0x7638,0x5374,
    0x9e4a,0x69b7,0x786e,0x96c0,0x88d9,0x7fa4,0x7136,0x71c3,0x5189,0x67d3,
    0x74e4,0x58e4,0x6518,0x56b7,0x8ba9,0x9976,0x6270,0x7ed5,0x60f9,0x70ed,
    0x58ec,0x4ec1,0x4eba,0x5fcd,0x97e7,0x4efb,0x8ba4,0x5203,0x598a,0x7eab,
    0x6254,0x4ecd,0x65e5,0x620e,0x8338,0x84c9,0x8363,0x878d,0x7194,0x6eb6,
    0x5bb9,0x7ed2,0x5197,0x63c9,0x67d4,0x8089,0x8339,0x8815,0x5112,0x5b7a,
    0x5982,0x8fb1,0x4e73,0x6c5d,0x5165,0x8925,0x8f6f,0x962e,0x854a,0x745e,
    0x9510,0x95f0,0x6da6,0x82e5,0x5f31,0x6492,0x6d12,0x8428,0x816e,0x9cc3,
    0x585e,0x8d5b,0x4e09,0x53c1
  },
  {    /* ku 29 */
    0x4f1e,0x6563,0x6851,0x55d3,0x4e27,0x6414,0x9a9a,0x626b,0x5ac2,0x745f,
    0x8272,0x6da9,0x68ee,0x50e7,0x838e,0x7802,0x6740,0x5239,0x6c99,0x7eb1,
    0x50bb,0x5565,0x715e,0x7b5b,0x6652,0x73ca,0x82eb,0x6749,0x5c71,0x5220,
    0x717d,0x886b,0x95ea,0x9655,0x64c5,0x8d61,0x81b3,0x5584,0x6c55,0x6247,
    0x7f2e,0x5892,0x4f24,0x5546,0x8d4f,0x664c,0x4e0a,0x5c1a,0x88f3,0x68a2,
    0x634e,0x7a0d,0x70e7,0x828d,0x52fa,0x97f6,0x5c11,0x54e8,0x90b5,0x7ecd,
    0x5962,0x8d4a,0x86c7,0x820c,0x820d,0x8d66,0x6444,0x5c04,0x6151,0x6d89,
    0x793e,0x8bbe,0x7837,0x7533,0x547b,0x4f38,0x8eab,0x6df1,0x5a20,0x7ec5,
    0x795e,0x6c88,0x5ba1,0x5a76,0x751a,0x80be,0x614e,0x6e17,0x58f0,0x751f,
    0x7525,0x7272,0x5347,0x7ef3
  },
  {    /* ku 2a */
    0x7701,0x76db,0x5269,0x80dc,0x5723,0x5e08,0x5931,0x72ee,0x65bd,0x6e7f,
    0x8bd7,0x5c38,0x8671,0x5341,0x77f3,0x62fe,0x65f6,0x4ec0,0x98df,0x8680,
    0x5b9e,0x8bc6,0x53f2,0x77e2,0x4f7f,0x5c4e,0x9a76,0x59cb,0x5f0f,0x793a,
    0x58eb,0x4e16,0x67ff,0x4e8b,0x62ed,0x8a93,0x901d,0x52bf,0x662f,0x55dc,
    0x566c,0x9002,0x4ed5,0x4f8d,0x91ca,0x9970,0x6c0f,0x5e02,0x6043,0x5ba4,
    0x89c6,0x8bd5,0x6536,0x624b,0x9996,0x5b88,0x5bff,0x6388,0x552e,0x53d7,
    0x7626,0x517d,0x852c,0x67a2,0x68b3,0x6b8a,0x6292,0x8f93,0x53d4,0x8212,
    0x6dd1,0x758f,0x4e66,0x8d4e,0x5b70,0x719f,0x85af,0x6691,0x66d9,0x7f72,
    0x8700,0x9ecd,0x9f20,0x5c5e,0x672f,0x8ff0,0x6811,0x675f,0x620d,0x7ad6,
    0x5885,0x5eb6,0x6570,0x6f31
  },
  {    /* ku 2b */
    0x6055,0x5237,0x800d,0x6454,0x8870,0x7529,0x5e05,0x6813,0x62f4,0x971c,
    0x53cc,0x723d,0x8c01,0x6c34,0x7761,0x7a0e,0x542e,0x77ac,0x987a,0x821c,
    0x8bf4,0x7855,0x6714,0x70c1,0x65af,0x6495,0x5636,0x601d,0x79c1,0x53f8,
    0x4e1d,0x6b7b,0x8086,0x5bfa,0x55e3,0x56db,0x4f3a,0x4f3c,0x9972,0x5df3,
    0x677e,0x8038,0x6002,0x9882,0x9001,0x5b8b,0x8bbc,0x8bf5,0x641c,0x8258,
    0x64de,0x55fd,0x82cf,0x9165,0x4fd7,0x7d20,0x901f,0x7c9f,0x50f3,0x5851,
    0x6eaf,0x5bbf,0x8bc9,0x8083,0x9178,0x849c,0x7b97,0x867d,0x968b,0x968f,
    0x7ee5,0x9ad3,0x788e,0x5c81,0x7a57,0x9042,0x96a7,0x795f,0x5b59,0x635f,
    0x7b0b,0x84d1,0x68ad,0x5506,0x7f29,0x7410,0x7d22,0x9501,0x6240,0x584c,
    0x4ed6,0x5b83,0x5979,0x5854
  },
  {    /* ku 2c */
    0x736d,0x631e,0x8e4b,0x8e0f,0x80ce,0x82d4,0x62ac,0x53f0,0x6cf0,0x915e,
    0x592a,0x6001,0x6c70,0x574d,0x644a,0x8d2a,0x762b,0x6ee9,0x575b,0x6a80,
    0x75f0,0x6f6d,0x8c2d,0x8c08,0x5766,0x6bef,0x8892,0x78b3,0x63a2,0x53f9,
    0x70ad,0x6c64,0x5858,0x642a,0x5802,0x68e0,0x819b,0x5510,0x7cd6,0x5018,
    0x8eba,0x6dcc,0x8d9f,0x70eb,0x638f,0x6d9b,0x6ed4,0x7ee6,0x8404,0x6843,
    0x9003,0x6dd8,0x9676,0x8ba8,0x5957,0x7279,0x85e4,0x817e,0x75bc,0x8a8a,
    0x68af,0x5254,0x8e22,0x9511,0x63d0,0x9898,0x8e44,0x557c,0x4f53,0x66ff,
    0x568f,0x60d5,0x6d95,0x5243,0x5c49,0x5929,0x6dfb,0x586b,0x7530,0x751c,
    0x606c,0x8214,0x8146,0x6311,0x6761,0x8fe2,0x773a,0x8df3,0x8d34,0x94c1,
    0x5e16,0x5385,0x542c,0x70c3
  },
  {    /* ku 2d */
    0x6c40,0x5ef7,0x505c,0x4ead,0x5ead,0x633a,0x8247,0x901a,0x6850,0x916e,
    0x77b3,0x540c,0x94dc,0x5f64,0x7ae5,0x6876,0x6345,0x7b52,0x7edf,0x75db,
    0x5077,0x6295,0x5934,0x900f,0x51f8,0x79c3,0x7a81,0x56fe,0x5f92,0x9014,
    0x6d82,0x5c60,0x571f,0x5410,0x5154,0x6e4d,0x56e2,0x63a8,0x9893,0x817f,
    0x8715,0x892a,0x9000,0x541e,0x5c6f,0x81c0,0x62d6,0x6258,0x8131,0x9e35,
    0x9640,0x9a6e,0x9a7c,0x692d,0x59a5,0x62d3,0x553e,0x6316,0x54c7,0x86d9,
    0x6d3c,0x5a03,0x74e6,0x889c,0x6b6a,0x5916,0x8c4c,0x5f2f,0x6e7e,0x73a9,
    0x987d,0x4e38,0x70f7,0x5b8c,0x7897,0x633d,0x665a,0x7696,0x60cb,0x5b9b,
    0x5a49,0x4e07,0x8155,0x6c6a,0x738b,0x4ea1,0x6789,0x7f51,0x5f80,0x65fa,
    0x671b,0x5fd8,0x5984,0x5a01
  },
  {    /* ku 2e */
    0x5dcd,0x5fae,0x5371,0x97e6,0x8fdd,0x6845,0x56f4,0x552f,0x60df,0x4e3a,
    0x6f4d,0x7ef4,0x82c7,0x840e,0x59d4,0x4f1f,0x4f2a,0x5c3e,0x7eac,0x672a,
    0x851a,0x5473,0x754f,0x80c3,0x5582,0x9b4f,0x4f4d,0x6e2d,0x8c13,0x5c09,
    0x6170,0x536b,0x761f,0x6e29,0x868a,0x6587,0x95fb,0x7eb9,0x543b,0x7a33,
    0x7d0a,0x95ee,0x55e1,0x7fc1,0x74ee,0x631d,0x8717,0x6da1,0x7a9d,0x6211,
    0x65a1,0x5367,0x63e1,0x6c83,0x5deb,0x545c,0x94a8,0x4e4c,0x6c61,0x8bec,
    0x5c4b,0x65e0,0x829c,0x68a7,0x543e,0x5434,0x6bcb,0x6b66,0x4e94,0x6342,
    0x5348,0x821e,0x4f0d,0x4fae,0x575e,0x620a,0x96fe,0x6664,0x7269,0x52ff,
    0x52a1,0x609f,0x8bef,0x6614,0x7199,0x6790,0x897f,0x7852,0x77fd,0x6670,
    0x563b,0x5438,0x9521,0x727a
  },
  {    /* ku 2f */
    0x7a00,0x606f,0x5e0c,0x6089,0x819d,0x5915,0x60dc,0x7184,0x70ef,0x6eaa,
    0x6c50,0x7280,0x6a84,0x88ad,0x5e2d,0x4e60,0x5ab3,0x559c,0x94e3,0x6d17,
    0x7cfb,0x9699,0x620f,0x7ec6,0x778e,0x867e,0x5323,0x971e,0x8f96,0x6687,
    0x5ce1,0x4fa0,0x72ed,0x4e0b,0x53a6,0x590f,0x5413,0x6380,0x9528,0x5148,
    0x4ed9,0x9c9c,0x7ea4,0x54b8,0x8d24,0x8854,0x8237,0x95f2,0x6d8e,0x5f26,
    0x5acc,0x663e,0x9669,0x73b0,0x732e,0x53bf,0x817a,0x9985,0x7fa1,0x5baa,
    0x9677,0x9650,0x7ebf,0x76f8,0x53a2,0x9576,0x9999,0x7bb1,0x8944,0x6e58,
    0x4e61,0x7fd4,0x7965,0x8be6,0x60f3,0x54cd,0x4eab,0x9879,0x5df7,0x6a61,
    0x50cf,0x5411,0x8c61,0x8427,0x785d,0x9704,0x524a,0x54ee,0x56a3,0x9500,
    0x6d88,0x5bb5,0x6dc6,0x6653
  },
  {    /* ku 30 */
    0x5c0f,0x5b5d,0x6821,0x8096,0x5578,0x7b11,0x6548,0x6954,0x4e9b,0x6b47,
    0x874e,0x978b,0x534f,0x631f,0x643a,0x90aa,0x659c,0x80c1,0x8c10,0x5199,
    0x68b0,0x5378,0x87f9,0x61c8,0x6cc4,0x6cfb,0x8c22,0x5c51,0x85aa,0x82af,
    0x950c,0x6b23,0x8f9b,0x65b0,0x5ffb,0x5fc3,0x4fe1,0x8845,0x661f,0x8165,
    0x7329,0x60fa,0x5174,0x5211,0x578b,0x5f62,0x90a2,0x884c,0x9192,0x5e78,
    0x674f,0x6027,0x59d3,0x5144,0x51f6,0x80f8,0x5308,0x6c79,0x96c4,0x718a,
    0x4f11,0x4fee,0x7f9e,0x673d,0x55c5,0x9508,0x79c0,0x8896,0x7ee3,0x589f,
    0x620c,0x9700,0x865a,0x5618,0x987b,0x5f90,0x8bb8,0x84c4,0x9157,0x53d9,
    0x65ed,0x5e8f,0x755c,0x6064,0x7d6e,0x5a7f,0x7eea,0x7eed,0x8f69,0x55a7,
    0x5ba3,0x60ac,0x65cb,0x7384
  },
  {    /* ku 31 */
    0x9009,0x7663,0x7729,0x7eda,0x9774,0x859b,0x5b66,0x7a74,0x96ea,0x8840,
    0x52cb,0x718f,0x5faa,0x65ec,0x8be2,0x5bfb,0x9a6f,0x5de1,0x6b89,0x6c5b,
    0x8bad,0x8baf,0x900a,0x8fc5,0x538b,0x62bc,0x9e26,0x9e2d,0x5440,0x4e2b,
    0x82bd,0x7259,0x869c,0x5d16,0x8859,0x6daf,0x96c5,0x54d1,0x4e9a,0x8bb6,
    0x7109,0x54bd,0x9609,0x70df,0x6df9,0x76d0,0x4e25,0x7814,0x8712,0x5ca9,
    0x5ef6,0x8a00,0x989c,0x960e,0x708e,0x6cbf,0x5944,0x63a9,0x773c,0x884d,
    0x6f14,0x8273,0x5830,0x71d5,0x538c,0x781a,0x96c1,0x5501,0x5f66,0x7130,
    0x5bb4,0x8c1a,0x9a8c,0x6b83,0x592e,0x9e2f,0x79e7,0x6768,0x626c,0x4f6f,
    0x75a1,0x7f8a,0x6d0b,0x9633,0x6c27,0x4ef0,0x75d2,0x517b,0x6837,0x6f3e,
    0x9080,0x8170,0x5996,0x7476
  },
  {    /* ku 32 */
    0x6447,0x5c27,0x9065,0x7a91,0x8c23,0x59da,0x54ac,0x8200,0x836f,0x8981,
    0x8000,0x6930,0x564e,0x8036,0x7237,0x91ce,0x51b6,0x4e5f,0x9875,0x6396,
    0x4e1a,0x53f6,0x66f3,0x814b,0x591c,0x6db2,0x4e00,0x58f9,0x533b,0x63d6,
    0x94f1,0x4f9d,0x4f0a,0x8863,0x9890,0x5937,0x9057,0x79fb,0x4eea,0x80f0,
    0x7591,0x6c82,0x5b9c,0x59e8,0x5f5d,0x6905,0x8681,0x501a,0x5df2,0x4e59,
    0x77e3,0x4ee5,0x827a,0x6291,0x6613,0x9091,0x5c79,0x4ebf,0x5f79,0x81c6,
    0x9038,0x8084,0x75ab,0x4ea6,0x88d4,0x610f,0x6bc5,0x5fc6,0x4e49,0x76ca,
    0x6ea2,0x8be3,0x8bae,0x8c0a,0x8bd1,0x5f02,0x7ffc,0x7fcc,0x7ece,0x8335,
    0x836b,0x56e0,0x6bb7,0x97f3,0x9634,0x59fb,0x541f,0x94f6,0x6deb,0x5bc5,
    0x996e,0x5c39,0x5f15,0x9690
  },
  {    /* ku 33 */
    0x5370,0x82f1,0x6a31,0x5a74,0x9e70,0x5e94,0x7f28,0x83b9,0x8424,0x8425,
    0x8367,0x8747,0x8fce,0x8d62,0x76c8,0x5f71,0x9896,0x786c,0x6620,0x54df,
    0x62e5,0x4f63,0x81c3,0x75c8,0x5eb8,0x96cd,0x8e0a,0x86f9,0x548f,0x6cf3,
    0x6d8c,0x6c38,0x607f,0x52c7,0x7528,0x5e7d,0x4f18,0x60a0,0x5fe7,0x5c24,
    0x7531,0x90ae,0x94c0,0x72b9,0x6cb9,0x6e38,0x9149,0x6709,0x53cb,0x53f3,
    0x4f51,0x91c9,0x8bf1,0x53c8,0x5e7c,0x8fc2,0x6de4,0x4e8e,0x76c2,0x6986,
    0x865e,0x611a,0x8206,0x4f59,0x4fde,0x903e,0x9c7c,0x6109,0x6e1d,0x6e14,
    0x9685,0x4e88,0x5a31,0x96e8,0x4e0e,0x5c7f,0x79b9,0x5b87,0x8bed,0x7fbd,
    0x7389,0x57df,0x828b,0x90c1,0x5401,0x9047,0x55bb,0x5cea,0x5fa1,0x6108,
    0x6b32,0x72f1,0x80b2,0x8a89
  },
  {    /* ku 34 */
    0x6d74,0x5bd3,0x88d5,0x9884,0x8c6b,0x9a6d,0x9e33,0x6e0a,0x51a4,0x5143,
    0x57a3,0x8881,0x539f,0x63f4,0x8f95,0x56ed,0x5458,0x5706,0x733f,0x6e90,
    0x7f18,0x8fdc,0x82d1,0x613f,0x6028,0x9662,0x66f0,0x7ea6,0x8d8a,0x8dc3,
    0x94a5,0x5cb3,0x7ca4,0x6708,0x60a6,0x9605,0x8018,0x4e91,0x90e7,0x5300,
    0x9668,0x5141,0x8fd0,0x8574,0x915d,0x6655,0x97f5,0x5b55,0x531d,0x7838,
    0x6742,0x683d,0x54c9,0x707e,0x5bb0,0x8f7d,0x518d,0x5728,0x54b1,0x6512,
    0x6682,0x8d5e,0x8d43,0x810f,0x846c,0x906d,0x7cdf,0x51ff,0x85fb,0x67a3,
    0x65e9,0x6fa1,0x86a4,0x8e81,0x566a,0x9020,0x7682,0x7076,0x71e5,0x8d23,
    0x62e9,0x5219,0x6cfd,0x8d3c,0x600e,0x589e,0x618e,0x66fe,0x8d60,0x624e,
    0x55b3,0x6e23,0x672d,0x8f67
  },
  {    /* ku 35 */
    0x94e1,0x95f8,0x7728,0x6805,0x69a8,0x548b,0x4e4d,0x70b8,0x8bc8,0x6458,
    0x658b,0x5b85,0x7a84,0x503a,0x5be8,0x77bb,0x6be1,0x8a79,0x7c98,0x6cbe,
    0x76cf,0x65a9,0x8f97,0x5d2d,0x5c55,0x8638,0x6808,0x5360,0x6218,0x7ad9,
    0x6e5b,0x7efd,0x6a1f,0x7ae0,0x5f70,0x6f33,0x5f20,0x638c,0x6da8,0x6756,
    0x4e08,0x5e10,0x8d26,0x4ed7,0x80c0,0x7634,0x969c,0x62db,0x662d,0x627e,
    0x6cbc,0x8d75,0x7167,0x7f69,0x5146,0x8087,0x53ec,0x906e,0x6298,0x54f2,
    0x86f0,0x8f99,0x8005,0x9517,0x8517,0x8fd9,0x6d59,0x73cd,0x659f,0x771f,
    0x7504,0x7827,0x81fb,0x8d1e,0x9488,0x4fa6,0x6795,0x75b9,0x8bca,0x9707,
    0x632f,0x9547,0x9635,0x84b8,0x6323,0x7741,0x5f81,0x72f0,0x4e89,0x6014,
    0x6574,0x62ef,0x6b63,0x653f
  },
  {    /* ku 36 */
    0x5e27,0x75c7,0x90d1,0x8bc1,0x829d,0x679d,0x652f,0x5431,0x8718,0x77e5,
    0x80a2,0x8102,0x6c41,0x4e4b,0x7ec7,0x804c,0x76f4,0x690d,0x6b96,0x6267,
    0x503c,0x4f84,0x5740,0x6307,0x6b62,0x8dbe,0x53ea,0x65e8,0x7eb8,0x5fd7,
    0x631a,0x63b7,0x81f3,0x81f4,0x7f6e,0x5e1c,0x5cd9,0x5236,0x667a,0x79e9,
    0x7a1a,0x8d28,0x7099,0x75d4,0x6ede,0x6cbb,0x7a92,0x4e2d,0x76c5,0x5fe0,
    0x949f,0x8877,0x7ec8,0x79cd,0x80bf,0x91cd,0x4ef2,0x4f17,0x821f,0x5468,
    0x5dde,0x6d32,0x8bcc,0x7ca5,0x8f74,0x8098,0x5e1a,0x5492,0x76b1,0x5b99,
    0x663c,0x9aa4,0x73e0,0x682a,0x86db,0x6731,0x732a,0x8bf8,0x8bdb,0x9010,
    0x7af9,0x70db,0x716e,0x62c4,0x77a9,0x5631,0x4e3b,0x8457,0x67f1,0x52a9,
    0x86c0,0x8d2e,0x94f8,0x7b51
  },
  {    /* ku 37 */
    0x4f4f,0x6ce8,0x795d,0x9a7b,0x6293,0x722a,0x62fd,0x4e13,0x7816,0x8f6c,
    0x64b0,0x8d5a,0x7bc6,0x6869,0x5e84,0x88c5,0x5986,0x649e,0x58ee,0x72b6,
    0x690e,0x9525,0x8ffd,0x8d58,0x5760,0x7f00,0x8c06,0x51c6,0x6349,0x62d9,
    0x5353,0x684c,0x7422,0x8301,0x914c,0x5544,0x7740,0x707c,0x6d4a,0x5179,
    0x54a8,0x8d44,0x59ff,0x6ecb,0x6dc4,0x5b5c,0x7d2b,0x4ed4,0x7c7d,0x6ed3,
    0x5b50,0x81ea,0x6e0d,0x5b57,0x9b03,0x68d5,0x8e2a,0x5b97,0x7efc,0x603b,
    0x7eb5,0x90b9,0x8d70,0x594f,0x63cd,0x79df,0x8db3,0x5352,0x65cf,0x7956,
    0x8bc5,0x963b,0x7ec4,0x94bb,0x7e82,0x5634,0x9189,0x6700,0x7f6a,0x5c0a,
    0x9075,0x6628,0x5de6,0x4f50,0x67de,0x505a,0x4f5c,0x5750,0x5ea7,0x0000,
    0x0000,0x0000,0x0000,0x0000
  },
  {    /* ku 38 */
    0x4e8d,0x4e0c,0x5140,0x4e10,0x5eff,0x5345,0x4e15,0x4e98,0x4e1e,0x9b32,
    0x5b6c,0x5669,0x4e28,0x79ba,0x4e3f,0x5315,0x4e47,0x592d,0x723b,0x536e,
    0x6c10,0x56df,0x80e4,0x9997,0x6bd3,0x777e,0x9f17,0x4e36,0x4e9f,0x9f10,
    0x4e5c,0x4e69,0x4e93,0x8288,0x5b5b,0x556c,0x560f,0x4ec4,0x538d,0x539d,
    0x53a3,0x53a5,0x53ae,0x9765,0x8d5d,0x531a,0x53f5,0x5326,0x532e,0x533e,
    0x8d5c,0x5366,0x5363,0x5202,0x5208,0x520e,0x522d,0x5233,0x523f,0x5240,
    0x524c,0x525e,0x5261,0x525c,0x84af,0x527d,0x5282,0x5281,0x5290,0x5293,
    0x5182,0x7f54,0x4ebb,0x4ec3,0x4ec9,0x4ec2,0x4ee8,0x4ee1,0x4eeb,0x4ede,
    0x4f1b,0x4ef3,0x4f22,0x4f64,0x4ef5,0x4f25,0x4f27,0x4f09,0x4f2b,0x4f5e,
    0x4f67,0x6538,0x4f5a,0x4f5d
  },
  {    /* ku 39 */
    0x4f5f,0x4f57,0x4f32,0x4f3d,0x4f76,0x4f74,0x4f91,0x4f89,0x4f83,0x4f8f,
    0x4f7e,0x4f7b,0x4faa,0x4f7c,0x4fac,0x4f94,0x4fe6,0x4fe8,0x4fea,0x4fc5,
    0x4fda,0x4fe3,0x4fdc,0x4fd1,0x4fdf,0x4ff8,0x5029,0x504c,0x4ff3,0x502c,
    0x500f,0x502e,0x502d,0x4ffe,0x501c,0x500c,0x5025,0x5028,0x507e,0x5043,
    0x5055,0x5048,0x504e,0x506c,0x507b,0x50a5,0x50a7,0x50a9,0x50ba,0x50d6,
    0x5106,0x50ed,0x50ec,0x50e6,0x50ee,0x5107,0x510b,0x4edd,0x6c3d,0x4f58,
    0x4f65,0x4fce,0x9fa0,0x6c46,0x7c74,0x516e,0x5dfd,0x9ec9,0x9998,0x5181,
    0x5914,0x52f9,0x530d,0x8a07,0x5310,0x51eb,0x5919,0x5155,0x4ea0,0x5156,
    0x4eb3,0x886e,0x88a4,0x4eb5,0x8114,0x88d2,0x7980,0x5b34,0x8803,0x7fb8,
    0x51ab,0x51b1,0x51bd,0x51bc
  },
  {    /* ku 3a */
    0x51c7,0x5196,0x51a2,0x51a5,0x8ba0,0x8ba6,0x8ba7,0x8baa,0x8bb4,0x8bb5,
    0x8bb7,0x8bc2,0x8bc3,0x8bcb,0x8bcf,0x8bce,0x8bd2,0x8bd3,0x8bd4,0x8bd6,
    0x8bd8,0x8bd9,0x8bdc,0x8bdf,0x8be0,0x8be4,0x8be8,0x8be9,0x8bee,0x8bf0,
    0x8bf3,0x8bf6,0x8bf9,0x8bfc,0x8bff,0x8c00,0x8c02,0x8c04,0x8c07,0x8c0c,
    0x8c0f,0x8c11,0x8c12,0x8c14,0x8c15,0x8c16,0x8c19,0x8c1b,0x8c18,0x8c1d,
    0x8c1f,0x8c20,0x8c21,0x8c25,0x8c27,0x8c2a,0x8c2b,0x8c2e,0x8c2f,0x8c32,
    0x8c33,0x8c35,0x8c36,0x5369,0x537a,0x961d,0x9622,0x9621,0x9631,0x962a,
    0x963d,0x963c,0x9642,0x9649,0x9654,0x965f,0x9667,0x966c,0x9672,0x9674,
    0x9688,0x968d,0x9697,0x96b0,0x9097,0x909b,0x909d,0x9099,0x90ac,0x90a1,
    0x90b4,0x90b3,0x90b6,0x90ba
  },
  {    /* ku 3b */
    0x90b8,0x90b0,0x90cf,0x90c5,0x90be,0x90d0,0x90c4,0x90c7,0x90d3,0x90e6,
    0x90e2,0x90dc,0x90d7,0x90db,0x90eb,0x90ef,0x90fe,0x9104,0x9122,0x911e,
    0x9123,0x9131,0x912f,0x9139,0x9143,0x9146,0x520d,0x5942,0x52a2,0x52ac,
    0x52ad,0x52be,0x54ff,0x52d0,0x52d6,0x52f0,0x53df,0x71ee,0x77cd,0x5ef4,
    0x51f5,0x51fc,0x9b2f,0x53b6,0x5f01,0x755a,0x5def,0x574c,0x57a9,0x57a1,
    0x587e,0x58bc,0x58c5,0x58d1,0x5729,0x572c,0x572a,0x5733,0x5739,0x572e,
    0x572f,0x575c,0x573b,0x5742,0x5769,0x5785,0x576b,0x5786,0x577c,0x577b,
    0x5768,0x576d,0x5776,0x5773,0x57ad,0x57a4,0x578c,0x57b2,0x57cf,0x57a7,
    0x57b4,0x5793,0x57a0,0x57d5,0x57d8,0x57da,0x57d9,0x57d2,0x57b8,0x57f4,
    0x57ef,0x57f8,0x57e4,0x57dd
  },
  {    /* ku 3c */
    0x580b,0x580d,0x57fd,0x57ed,0x5800,0x581e,0x5819,0x5844,0x5820,0x5865,
    0x586c,0x5881,0x5889,0x589a,0x5880,0x99a8,0x9f19,0x61ff,0x8279,0x827d,
    0x827f,0x828f,0x828a,0x82a8,0x8284,0x828e,0x8291,0x8297,0x8299,0x82ab,
    0x82b8,0x82be,0x82b0,0x82c8,0x82ca,0x82e3,0x8298,0x82b7,0x82ae,0x82cb,
    0x82cc,0x82c1,0x82a9,0x82b4,0x82a1,0x82aa,0x829f,0x82c4,0x82ce,0x82a4,
    0x82e1,0x8309,0x82f7,0x82e4,0x830f,0x8307,0x82dc,0x82f4,0x82d2,0x82d8,
    0x830c,0x82fb,0x82d3,0x8311,0x831a,0x8306,0x8314,0x8315,0x82e0,0x82d5,
    0x831c,0x8351,0x835b,0x835c,0x8308,0x8392,0x833c,0x8334,0x8331,0x839b,
    0x835e,0x832f,0x834f,0x8347,0x8343,0x835f,0x8340,0x8317,0x8360,0x832d,
    0x833a,0x8333,0x8366,0x8365
  },
  {    /* ku 3d */
    0x8368,0x831b,0x8369,0x836c,0x836a,0x836d,0x836e,0x83b0,0x8378,0x83b3,
    0x83b4,0x83a0,0x83aa,0x8393,0x839c,0x8385,0x837c,0x83b6,0x83a9,0x837d,
    0x83b8,0x837b,0x8398,0x839e,0x83a8,0x83ba,0x83bc,0x83c1,0x8401,0x83e5,
    0x83d8,0x5807,0x8418,0x840b,0x83dd,0x83fd,0x83d6,0x841c,0x8438,0x8411,
    0x8406,0x83d4,0x83df,0x840f,0x8403,0x83f8,0x83f9,0x83ea,0x83c5,0x83c0,
    0x8426,0x83f0,0x83e1,0x845c,0x8451,0x845a,0x8459,0x8473,0x8487,0x8488,
    0x847a,0x8489,0x8478,0x843c,0x8446,0x8469,0x8476,0x848c,0x848e,0x8431,
    0x846d,0x84c1,0x84cd,0x84d0,0x84e6,0x84bd,0x84d3,0x84ca,0x84bf,0x84ba,
    0x84e0,0x84a1,0x84b9,0x84b4,0x8497,0x84e5,0x84e3,0x850c,0x750d,0x8538,
    0x84f0,0x8539,0x851f,0x853a
  },
  {    /* ku 3e */
    0x8556,0x853b,0x84ff,0x84fc,0x8559,0x8548,0x8568,0x8564,0x855e,0x857a,
    0x77a2,0x8543,0x8572,0x857b,0x85a4,0x85a8,0x8587,0x858f,0x8579,0x85ae,
    0x859c,0x8585,0x85b9,0x85b7,0x85b0,0x85d3,0x85c1,0x85dc,0x85ff,0x8627,
    0x8605,0x8629,0x8616,0x863c,0x5efe,0x5f08,0x593c,0x5941,0x8037,0x5955,
    0x595a,0x5958,0x530f,0x5c22,0x5c25,0x5c2c,0x5c34,0x624c,0x626a,0x629f,
    0x62bb,0x62ca,0x62da,0x62d7,0x62ee,0x6322,0x62f6,0x6339,0x634b,0x6343,
    0x63ad,0x63f6,0x6371,0x637a,0x638e,0x63b4,0x636d,0x63ac,0x638a,0x6369,
    0x63ae,0x63bc,0x63f2,0x63f8,0x63e0,0x63ff,0x63c4,0x63de,0x63ce,0x6452,
    0x63c6,0x63be,0x6445,0x6441,0x640b,0x641b,0x6420,0x640c,0x6426,0x6421,
    0x645e,0x6484,0x646d,0x6496
  },
  {    /* ku 3f */
    0x647a,0x64b7,0x64b8,0x6499,0x64ba,0x64c0,0x64d0,0x64d7,0x64e4,0x64e2,
    0x6509,0x6525,0x652e,0x5f0b,0x5fd2,0x7519,0x5f11,0x535f,0x53f1,0x53fd,
    0x53e9,0x53e8,0x53fb,0x5412,0x5416,0x5406,0x544b,0x5452,0x5453,0x5454,
    0x5456,0x5443,0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,0x5494,0x5477,
    0x5471,0x5464,0x549a,0x549b,0x5484,0x5476,0x5466,0x549d,0x54d0,0x54ad,
    0x54c2,0x54b4,0x54d2,0x54a7,0x54a6,0x54d3,0x54d4,0x5472,0x54a3,0x54d5,
    0x54bb,0x54bf,0x54cc,0x54d9,0x54da,0x54dc,0x54a9,0x54aa,0x54a4,0x54dd,
    0x54cf,0x54de,0x551b,0x54e7,0x5520,0x54fd,0x5514,0x54f3,0x5522,0x5523,
    0x550f,0x5511,0x5527,0x552a,0x5567,0x558f,0x55b5,0x5549,0x556d,0x5541,
    0x5555,0x553f,0x5550,0x553c
  },
  {    /* ku 40 */
    0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530,0x555c,0x558b,0x55d2,
    0x5583,0x55b1,0x55b9,0x5588,0x5581,0x559f,0x557e,0x55d6,0x5591,0x557b,
    0x55df,0x55bd,0x55be,0x5594,0x5599,0x55ea,0x55f7,0x55c9,0x561f,0x55d1,
    0x55eb,0x55ec,0x55d4,0x55e6,0x55dd,0x55c4,0x55ef,0x55e5,0x55f2,0x55f3,
    0x55cc,0x55cd,0x55e8,0x55f5,0x55e4,0x8f94,0x561e,0x5608,0x560c,0x5601,
    0x5624,0x5623,0x55fe,0x5600,0x5627,0x562d,0x5658,0x5639,0x5657,0x562c,
    0x564d,0x5662,0x5659,0x565c,0x564c,0x5654,0x5686,0x5664,0x5671,0x566b,
    0x567b,0x567c,0x5685,0x5693,0x56af,0x56d4,0x56d7,0x56dd,0x56e1,0x56f5,
    0x56eb,0x56f9,0x56ff,0x5704,0x570a,0x5709,0x571c,0x5e0f,0x5e19,0x5e14,
    0x5e11,0x5e31,0x5e3b,0x5e3c
  },
  {    /* ku 41 */
    0x5e37,0x5e44,0x5e54,0x5e5b,0x5e5e,0x5e61,0x5c8c,0x5c7a,0x5c8d,0x5c90,
    0x5c96,0x5c88,0x5c98,0x5c99,0x5c91,0x5c9a,0x5c9c,0x5cb5,0x5ca2,0x5cbd,
    0x5cac,0x5cab,0x5cb1,0x5ca3,0x5cc1,0x5cb7,0x5cc4,0x5cd2,0x5ce4,0x5ccb,
    0x5ce5,0x5d02,0x5d03,0x5d27,0x5d26,0x5d2e,0x5d24,0x5d1e,0x5d06,0x5d1b,
    0x5d58,0x5d3e,0x5d34,0x5d3d,0x5d6c,0x5d5b,0x5d6f,0x5d5d,0x5d6b,0x5d4b,
    0x5d4a,0x5d69,0x5d74,0x5d82,0x5d99,0x5d9d,0x8c73,0x5db7,0x5dc5,0x5f73,
    0x5f77,0x5f82,0x5f87,0x5f89,0x5f8c,0x5f95,0x5f99,0x5f9c,0x5fa8,0x5fad,
    0x5fb5,0x5fbc,0x8862,0x5f61,0x72ad,0x72b0,0x72b4,0x72b7,0x72b8,0x72c3,
    0x72c1,0x72ce,0x72cd,0x72d2,0x72e8,0x72ef,0x72e9,0x72f2,0x72f4,0x72f7,
    0x7301,0x72f3,0x7303,0x72fa
  },
  {    /* ku 42 */
    0x72fb,0x7317,0x7313,0x7321,0x730a,0x731e,0x731d,0x7315,0x7322,0x7339,
    0x7325,0x732c,0x7338,0x7331,0x7350,0x734d,0x7357,0x7360,0x736c,0x736f,
    0x737e,0x821b,0x5925,0x98e7,0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,
    0x996a,0x996b,0x996c,0x9974,0x9977,0x997d,0x9980,0x9984,0x9987,0x998a,
    0x998d,0x9990,0x9991,0x9993,0x9994,0x9995,0x5e80,0x5e91,0x5e8b,0x5e96,
    0x5ea5,0x5ea0,0x5eb9,0x5eb5,0x5ebe,0x5eb3,0x8d53,0x5ed2,0x5ed1,0x5edb,
    0x5ee8,0x5eea,0x81ba,0x5fc4,0x5fc9,0x5fd6,0x5fcf,0x6003,0x5fee,0x6004,
    0x5fe1,0x5fe4,0x5ffe,0x6005,0x6006,0x5fea,0x5fed,0x5ff8,0x6019,0x6035,
    0x6026,0x601b,0x600f,0x600d,0x6029,0x602b,0x600a,0x603f,0x6021,0x6078,
    0x6079,0x607b,0x607a,0x6042
  },
  {    /* ku 43 */
    0x606a,0x607d,0x6096,0x609a,0x60ad,0x609d,0x6083,0x6092,0x608c,0x609b,
    0x60ec,0x60bb,0x60b1,0x60dd,0x60d8,0x60c6,0x60da,0x60b4,0x6120,0x6126,
    0x6115,0x6123,0x60f4,0x6100,0x610e,0x612b,0x614a,0x6175,0x61ac,0x6194,
    0x61a7,0x61b7,0x61d4,0x61f5,0x5fdd,0x96b3,0x95e9,0x95eb,0x95f1,0x95f3,
    0x95f5,0x95f6,0x95fc,0x95fe,0x9603,0x9604,0x9606,0x9608,0x960a,0x960b,
    0x960c,0x960d,0x960f,0x9612,0x9615,0x9616,0x9617,0x9619,0x961a,0x4e2c,
    0x723f,0x6215,0x6c35,0x6c54,0x6c5c,0x6c4a,0x6ca3,0x6c85,0x6c90,0x6c94,
    0x6c8c,0x6c68,0x6c69,0x6c74,0x6c76,0x6c86,0x6ca9,0x6cd0,0x6cd4,0x6cad,
    0x6cf7,0x6cf8,0x6cf1,0x6cd7,0x6cb2,0x6ce0,0x6cd6,0x6cfa,0x6ceb,0x6cee,
    0x6cb1,0x6cd3,0x6cef,0x6cfe
  },
  {    /* ku 44 */
    0x6d39,0x6d27,0x6d0c,0x6d43,0x6d48,0x6d07,0x6d04,0x6d19,0x6d0e,0x6d2b,
    0x6d4d,0x6d2e,0x6d35,0x6d1a,0x6d4f,0x6d52,0x6d54,0x6d33,0x6d91,0x6d6f,
    0x6d9e,0x6da0,0x6d5e,0x6d93,0x6d94,0x6d5c,0x6d60,0x6d7c,0x6d63,0x6e1a,
    0x6dc7,0x6dc5,0x6dde,0x6e0e,0x6dbf,0x6de0,0x6e11,0x6de6,0x6ddd,0x6dd9,
    0x6e16,0x6dab,0x6e0c,0x6dae,0x6e2b,0x6e6e,0x6e4e,0x6e6b,0x6eb2,0x6e5f,
    0x6e86,0x6e53,0x6e54,0x6e32,0x6e25,0x6e44,0x6edf,0x6eb1,0x6e98,0x6ee0,
    0x6f2d,0x6ee2,0x6ea5,0x6ea7,0x6ebd,0x6ebb,0x6eb7,0x6ed7,0x6eb4,0x6ecf,
    0x6e8f,0x6ec2,0x6e9f,0x6f62,0x6f46,0x6f47,0x6f24,0x6f15,0x6ef9,0x6f2f,
    0x6f36,0x6f4b,0x6f74,0x6f2a,0x6f09,0x6f29,0x6f89,0x6f8d,0x6f8c,0x6f78,
    0x6f72,0x6f7c,0x6f7a,0x6fd1
  },
  {    /* ku 45 */
    0x6fc9,0x6fa7,0x6fb9,0x6fb6,0x6fc2,0x6fe1,0x6fee,0x6fde,0x6fe0,0x6fef,
    0x701a,0x7023,0x701b,0x7039,0x7035,0x704f,0x705e,0x5b80,0x5b84,0x5b95,
    0x5b93,0x5ba5,0x5bb8,0x752f,0x9a9e,0x6434,0x5be4,0x5bee,0x8930,0x5bf0,
    0x8e47,0x8b07,0x8fb6,0x8fd3,0x8fd5,0x8fe5,0x8fee,0x8fe4,0x8fe9,0x8fe6,
    0x8ff3,0x8fe8,0x9005,0x9004,0x900b,0x9026,0x9011,0x900d,0x9016,0x9021,
    0x9035,0x9036,0x902d,0x902f,0x9044,0x9051,0x9052,0x9050,0x9068,0x9058,
    0x9062,0x905b,0x66b9,0x9074,0x907d,0x9082,0x9088,0x9083,0x908b,0x5f50,
    0x5f57,0x5f56,0x5f58,0x5c3b,0x54ab,0x5c50,0x5c59,0x5b71,0x5c63,0x5c66,
    0x7fbc,0x5f2a,0x5f29,0x5f2d,0x8274,0x5f3c,0x9b3b,0x5c6e,0x5981,0x5983,
    0x598d,0x59a9,0x59aa,0x59a3
  },
  {    /* ku 46 */
    0x5997,0x59ca,0x59ab,0x599e,0x59a4,0x59d2,0x59b2,0x59af,0x59d7,0x59be,
    0x5a05,0x5a06,0x59dd,0x5a08,0x59e3,0x59d8,0x59f9,0x5a0c,0x5a09,0x5a32,
    0x5a34,0x5a11,0x5a23,0x5a13,0x5a40,0x5a67,0x5a4a,0x5a55,0x5a3c,0x5a62,
    0x5a75,0x80ec,0x5aaa,0x5a9b,0x5a77,0x5a7a,0x5abe,0x5aeb,0x5ab2,0x5ad2,
    0x5ad4,0x5ab8,0x5ae0,0x5ae3,0x5af1,0x5ad6,0x5ae6,0x5ad8,0x5adc,0x5b09,
    0x5b17,0x5b16,0x5b32,0x5b37,0x5b40,0x5c15,0x5c1c,0x5b5a,0x5b65,0x5b73,
    0x5b51,0x5b53,0x5b62,0x9a75,0x9a77,0x9a78,0x9a7a,0x9a7f,0x9a7d,0x9a80,
    0x9a81,0x9a85,0x9a88,0x9a8a,0x9a90,0x9a92,0x9a93,0x9a96,0x9a98,0x9a9b,
    0x9a9c,0x9a9d,0x9a9f,0x9aa0,0x9aa2,0x9aa3,0x9aa5,0x9aa7,0x7e9f,0x7ea1,
    0x7ea3,0x7ea5,0x7ea8,0x7ea9
  },
  {    /* ku 47 */
    0x7ead,0x7eb0,0x7ebe,0x7ec0,0x7ec1,0x7ec2,0x7ec9,0x7ecb,0x7ecc,0x7ed0,
    0x7ed4,0x7ed7,0x7edb,0x7ee0,0x7ee1,0x7ee8,0x7eeb,0x7eee,0x7eef,0x7ef1,
    0x7ef2,0x7f0d,0x7ef6,0x7efa,0x7efb,0x7efe,0x7f01,0x7f02,0x7f03,0x7f07,
    0x7f08,0x7f0b,0x7f0c,0x7f0f,0x7f11,0x7f12,0x7f17,0x7f19,0x7f1c,0x7f1b,
    0x7f1f,0x7f21,0x7f22,0x7f23,0x7f24,0x7f25,0x7f26,0x7f27,0x7f2a,0x7f2b,
    0x7f2c,0x7f2d,0x7f2f,0x7f30,0x7f31,0x7f32,0x7f33,0x7f35,0x5e7a,0x757f,
    0x5ddb,0x753e,0x9095,0x738e,0x7391,0x73ae,0x73a2,0x739f,0x73cf,0x73c2,
    0x73d1,0x73b7,0x73b3,0x73c0,0x73c9,0x73c8,0x73e5,0x73d9,0x987c,0x740a,
    0x73e9,0x73e7,0x73de,0x73ba,0x73f2,0x740f,0x742a,0x745b,0x7426,0x7425,
    0x7428,0x7430,0x742e,0x742c
  },
  {    /* ku 48 */
    0x741b,0x741a,0x7441,0x745c,0x7457,0x7455,0x7459,0x7477,0x746d,0x747e,
    0x749c,0x748e,0x7480,0x7481,0x7487,0x748b,0x749e,0x74a8,0x74a9,0x7490,
    0x74a7,0x74d2,0x74ba,0x97ea,0x97eb,0x97ec,0x674c,0x6753,0x675e,0x6748,
    0x6769,0x67a5,0x6787,0x676a,0x6773,0x6798,0x67a7,0x6775,0x67a8,0x679e,
    0x67ad,0x678b,0x6777,0x677c,0x67f0,0x6809,0x67d8,0x680a,0x67e9,0x67b0,
    0x680c,0x67d9,0x67b5,0x67da,0x67b3,0x67dd,0x6800,0x67c3,0x67b8,0x67e2,
    0x680e,0x67c1,0x67fd,0x6832,0x6833,0x6860,0x6861,0x684e,0x6862,0x6844,
    0x6864,0x6883,0x681d,0x6855,0x6866,0x6841,0x6867,0x6840,0x683e,0x684a,
    0x6849,0x6829,0x68b5,0x688f,0x6874,0x6877,0x6893,0x686b,0x68c2,0x696e,
    0x68fc,0x691f,0x6920,0x68f9
  },
  {    /* ku 49 */
    0x6924,0x68f0,0x690b,0x6901,0x6957,0x68e3,0x6910,0x6971,0x6939,0x6960,
    0x6942,0x695d,0x6984,0x696b,0x6980,0x6998,0x6978,0x6934,0x69cc,0x6987,
    0x6988,0x69ce,0x6989,0x6966,0x6963,0x6979,0x699b,0x69a7,0x69bb,0x69ab,
    0x69ad,0x69d4,0x69b1,0x69c1,0x69ca,0x69df,0x6995,0x69e0,0x698d,0x69ff,
    0x6a2f,0x69ed,0x6a17,0x6a18,0x6a65,0x69f2,0x6a44,0x6a3e,0x6aa0,0x6a50,
    0x6a5b,0x6a35,0x6a8e,0x6a79,0x6a3d,0x6a28,0x6a58,0x6a7c,0x6a91,0x6a90,
    0x6aa9,0x6a97,0x6aab,0x7337,0x7352,0x6b81,0x6b82,0x6b87,0x6b84,0x6b92,
    0x6b93,0x6b8d,0x6b9a,0x6b9b,0x6ba1,0x6baa,0x8f6b,0x8f6d,0x8f71,0x8f72,
    0x8f73,0x8f75,0x8f76,0x8f78,0x8f77,0x8f79,0x8f7a,0x8f7c,0x8f7e,0x8f81,
    0x8f82,0x8f84,0x8f87,0x8f8b
  },
  {    /* ku 4a */
    0x8f8d,0x8f8e,0x8f8f,0x8f98,0x8f9a,0x8ece,0x620b,0x6217,0x621b,0x621f,
    0x6222,0x6221,0x6225,0x6224,0x622c,0x81e7,0x74ef,0x74f4,0x74ff,0x750f,
    0x7511,0x7513,0x6534,0x65ee,0x65ef,0x65f0,0x660a,0x6619,0x6772,0x6603,
    0x6615,0x6600,0x7085,0x66f7,0x661d,0x6634,0x6631,0x6636,0x6635,0x8006,
    0x665f,0x6654,0x6641,0x664f,0x6656,0x6661,0x6657,0x6677,0x6684,0x668c,
    0x66a7,0x669d,0x66be,0x66db,0x66dc,0x66e6,0x66e9,0x8d32,0x8d33,0x8d36,
    0x8d3b,0x8d3d,0x8d40,0x8d45,0x8d46,0x8d48,0x8d49,0x8d47,0x8d4d,0x8d55,
    0x8d59,0x89c7,0x89ca,0x89cb,0x89cc,0x89ce,0x89cf,0x89d0,0x89d1,0x726e,
    0x729f,0x725d,0x7266,0x726f,0x727e,0x727f,0x7284,0x728b,0x728d,0x728f,
    0x7292,0x6308,0x6332,0x63b0
  },
  {    /* ku 4b */
    0x643f,0x64d8,0x8004,0x6bea,0x6bf3,0x6bfd,0x6bf5,0x6bf9,0x6c05,0x6c07,
    0x6c06,0x6c0d,0x6c15,0x6c18,0x6c19,0x6c1a,0x6c21,0x6c29,0x6c24,0x6c2a,
    0x6c32,0x6535,0x6555,0x656b,0x724d,0x7252,0x7256,0x7230,0x8662,0x5216,
    0x809f,0x809c,0x8093,0x80bc,0x670a,0x80bd,0x80b1,0x80ab,0x80ad,0x80b4,
    0x80b7,0x80e7,0x80e8,0x80e9,0x80ea,0x80db,0x80c2,0x80c4,0x80d9,0x80cd,
    0x80d7,0x6710,0x80dd,0x80eb,0x80f1,0x80f4,0x80ed,0x810d,0x810e,0x80f2,
    0x80fc,0x6715,0x8112,0x8c5a,0x8136,0x811e,0x812c,0x8118,0x8132,0x8148,
    0x814c,0x8153,0x8174,0x8159,0x815a,0x8171,0x8160,0x8169,0x817c,0x817d,
    0x816d,0x8167,0x584d,0x5ab5,0x8188,0x8182,0x8191,0x6ed5,0x81a3,0x81aa,
    0x81cc,0x6726,0x81ca,0x81bb
  },
  {    /* ku 4c */
    0x81c1,0x81a6,0x6b24,0x6b37,0x6b39,0x6b43,0x6b46,0x6b59,0x98d1,0x98d2,
    0x98d3,0x98d5,0x98d9,0x98da,0x6bb3,0x5f40,0x6bc2,0x89f3,0x6590,0x9f51,
    0x6593,0x65bc,0x65c6,0x65c4,0x65c3,0x65cc,0x65ce,0x65d2,0x65d6,0x7080,
    0x709c,0x7096,0x709d,0x70bb,0x70c0,0x70b7,0x70ab,0x70b1,0x70e8,0x70ca,
    0x7110,0x7113,0x7116,0x712f,0x7131,0x7173,0x715c,0x7168,0x7145,0x7172,
    0x714a,0x7178,0x717a,0x7198,0x71b3,0x71b5,0x71a8,0x71a0,0x71e0,0x71d4,
    0x71e7,0x71f9,0x721d,0x7228,0x706c,0x7118,0x7166,0x71b9,0x623e,0x623d,
    0x6243,0x6248,0x6249,0x793b,0x7940,0x7946,0x7949,0x795b,0x795c,0x7953,
    0x795a,0x7962,0x7957,0x7960,0x796f,0x7967,0x797a,0x7985,0x798a,0x799a,
    0x79a7,0x79b3,0x5fd1,0x5fd0
  },
  {    /* ku 4d */
    0x603c,0x605d,0x605a,0x6067,0x6041,0x6059,0x6063,0x60ab,0x6106,0x610d,
    0x615d,0x61a9,0x619d,0x61cb,0x61d1,0x6206,0x8080,0x807f,0x6c93,0x6cf6,
    0x6dfc,0x77f6,0x77f8,0x7800,0x7809,0x7817,0x7818,0x7811,0x65ab,0x782d,
    0x781c,0x781d,0x7839,0x783a,0x783b,0x781f,0x783c,0x7825,0x782c,0x7823,
    0x7829,0x784e,0x786d,0x7856,0x7857,0x7826,0x7850,0x7847,0x784c,0x786a,
    0x789b,0x7893,0x789a,0x7887,0x789c,0x78a1,0x78a3,0x78b2,0x78b9,0x78a5,
    0x78d4,0x78d9,0x78c9,0x78ec,0x78f2,0x7905,0x78f4,0x7913,0x7924,0x791e,
    0x7934,0x9f9b,0x9ef9,0x9efb,0x9efc,0x76f1,0x7704,0x770d,0x76f9,0x7707,
    0x7708,0x771a,0x7722,0x7719,0x772d,0x7726,0x7735,0x7738,0x7750,0x7751,
    0x7747,0x7743,0x775a,0x7768
  },
  {    /* ku 4e */
    0x7762,0x7765,0x777f,0x778d,0x777d,0x7780,0x778c,0x7791,0x779f,0x77a0,
    0x77b0,0x77b5,0x77bd,0x753a,0x7540,0x754e,0x754b,0x7548,0x755b,0x7572,
    0x7579,0x7583,0x7f58,0x7f61,0x7f5f,0x8a48,0x7f68,0x7f74,0x7f71,0x7f79,
    0x7f81,0x7f7e,0x76cd,0x76e5,0x8832,0x9485,0x9486,0x9487,0x948b,0x948a,
    0x948c,0x948d,0x948f,0x9490,0x9494,0x9497,0x9495,0x949a,0x949b,0x949c,
    0x94a3,0x94a4,0x94ab,0x94aa,0x94ad,0x94ac,0x94af,0x94b0,0x94b2,0x94b4,
    0x94b6,0x94b7,0x94b8,0x94b9,0x94ba,0x94bc,0x94bd,0x94bf,0x94c4,0x94c8,
    0x94c9,0x94ca,0x94cb,0x94cc,0x94cd,0x94ce,0x94d0,0x94d1,0x94d2,0x94d5,
    0x94d6,0x94d7,0x94d9,0x94d8,0x94db,0x94de,0x94df,0x94e0,0x94e2,0x94e4,
    0x94e5,0x94e7,0x94e8,0x94ea
  },
  {    /* ku 4f */
    0x94e9,0x94eb,0x94ee,0x94ef,0x94f3,0x94f4,0x94f5,0x94f7,0x94f9,0x94fc,
    0x94fd,0x94ff,0x9503,0x9502,0x9506,0x9507,0x9509,0x950a,0x950d,0x950e,
    0x950f,0x9512,0x9513,0x9514,0x9515,0x9516,0x9518,0x951b,0x951d,0x951e,
    0x951f,0x9522,0x952a,0x952b,0x9529,0x952c,0x9531,0x9532,0x9534,0x9536,
    0x9537,0x9538,0x953c,0x953e,0x953f,0x9542,0x9535,0x9544,0x9545,0x9546,
    0x9549,0x954c,0x954e,0x954f,0x9552,0x9553,0x9554,0x9556,0x9557,0x9558,
    0x9559,0x955b,0x955e,0x955f,0x955d,0x9561,0x9562,0x9564,0x9565,0x9566,
    0x9567,0x9568,0x9569,0x956a,0x956b,0x956c,0x956f,0x9571,0x9572,0x9573,
    0x953a,0x77e7,0x77ec,0x96c9,0x79d5,0x79ed,0x79e3,0x79eb,0x7a06,0x5d47,
    0x7a03,0x7a02,0x7a1e,0x7a14
  },
  {    /* ku 50 */
    0x7a39,0x7a37,0x7a51,0x9ecf,0x99a5,0x7a70,0x7688,0x768e,0x7693,0x7699,
    0x76a4,0x74de,0x74e0,0x752c,0x9e20,0x9e22,0x9e28,0x9e29,0x9e2a,0x9e2b,
    0x9e2c,0x9e32,0x9e31,0x9e36,0x9e38,0x9e37,0x9e39,0x9e3a,0x9e3e,0x9e41,
    0x9e42,0x9e44,0x9e46,0x9e47,0x9e48,0x9e49,0x9e4b,0x9e4c,0x9e4e,0x9e51,
    0x9e55,0x9e57,0x9e5a,0x9e5b,0x9e5c,0x9e5e,0x9e63,0x9e66,0x9e67,0x9e68,
    0x9e69,0x9e6a,0x9e6b,0x9e6c,0x9e71,0x9e6d,0x9e73,0x7592,0x7594,0x7596,
    0x75a0,0x759d,0x75ac,0x75a3,0x75b3,0x75b4,0x75b8,0x75c4,0x75b1,0x75b0,
    0x75c3,0x75c2,0x75d6,0x75cd,0x75e3,0x75e8,0x75e6,0x75e4,0x75eb,0x75e7,
    0x7603,0x75f1,0x75fc,0x75ff,0x7610,0x7600,0x7605,0x760c,0x7617,0x760a,
    0x7625,0x7618,0x7615,0x7619
  },
  {    /* ku 51 */
    0x761b,0x763c,0x7622,0x7620,0x7640,0x762d,0x7630,0x763f,0x7635,0x7643,
    0x763e,0x7633,0x764d,0x765e,0x7654,0x765c,0x7656,0x766b,0x766f,0x7fca,
    0x7ae6,0x7a78,0x7a79,0x7a80,0x7a86,0x7a88,0x7a95,0x7aa6,0x7aa0,0x7aac,
    0x7aa8,0x7aad,0x7ab3,0x8864,0x8869,0x8872,0x887d,0x887f,0x8882,0x88a2,
    0x88c6,0x88b7,0x88bc,0x88c9,0x88e2,0x88ce,0x88e3,0x88e5,0x88f1,0x891a,
    0x88fc,0x88e8,0x88fe,0x88f0,0x8921,0x8919,0x8913,0x891b,0x890a,0x8934,
    0x892b,0x8936,0x8941,0x8966,0x897b,0x758b,0x80e5,0x76b2,0x76b4,0x77dc,
    0x8012,0x8014,0x8016,0x801c,0x8020,0x8022,0x8025,0x8026,0x8027,0x8029,
    0x8028,0x8031,0x800b,0x8035,0x8043,0x8046,0x804d,0x8052,0x8069,0x8071,
    0x8983,0x9878,0x9880,0x9883
  },
  {    /* ku 52 */
    0x9889,0x988c,0x988d,0x988f,0x9894,0x989a,0x989b,0x989e,0x989f,0x98a1,
    0x98a2,0x98a5,0x98a6,0x864d,0x8654,0x866c,0x866e,0x867f,0x867a,0x867c,
    0x867b,0x86a8,0x868d,0x868b,0x86ac,0x869d,0x86a7,0x86a3,0x86aa,0x8693,
    0x86a9,0x86b6,0x86c4,0x86b5,0x86ce,0x86b0,0x86ba,0x86b1,0x86af,0x86c9,
    0x86cf,0x86b4,0x86e9,0x86f1,0x86f2,0x86ed,0x86f3,0x86d0,0x8713,0x86de,
    0x86f4,0x86df,0x86d8,0x86d1,0x8703,0x8707,0x86f8,0x8708,0x870a,0x870d,
    0x8709,0x8723,0x873b,0x871e,0x8725,0x872e,0x871a,0x873e,0x8748,0x8734,
    0x8731,0x8729,0x8737,0x873f,0x8782,0x8722,0x877d,0x877e,0x877b,0x8760,
    0x8770,0x874c,0x876e,0x878b,0x8753,0x8763,0x877c,0x8764,0x8759,0x8765,
    0x8793,0x87af,0x87a8,0x87d2
  },
  {    /* ku 53 */
    0x87c6,0x8788,0x8785,0x87ad,0x8797,0x8783,0x87ab,0x87e5,0x87ac,0x87b5,
    0x87b3,0x87cb,0x87d3,0x87bd,0x87d1,0x87c0,0x87ca,0x87db,0x87ea,0x87e0,
    0x87ee,0x8816,0x8813,0x87fe,0x880a,0x881b,0x8821,0x8839,0x883c,0x7f36,
    0x7f42,0x7f44,0x7f45,0x8210,0x7afa,0x7afd,0x7b08,0x7b03,0x7b04,0x7b15,
    0x7b0a,0x7b2b,0x7b0f,0x7b47,0x7b38,0x7b2a,0x7b19,0x7b2e,0x7b31,0x7b20,
    0x7b25,0x7b24,0x7b33,0x7b3e,0x7b1e,0x7b58,0x7b5a,0x7b45,0x7b75,0x7b4c,
    0x7b5d,0x7b60,0x7b6e,0x7b7b,0x7b62,0x7b72,0x7b71,0x7b90,0x7ba6,0x7ba7,
    0x7bb8,0x7bac,0x7b9d,0x7ba8,0x7b85,0x7baa,0x7b9c,0x7ba2,0x7bab,0x7bb4,
    0x7bd1,0x7bc1,0x7bcc,0x7bdd,0x7bda,0x7be5,0x7be6,0x7bea,0x7c0c,0x7bfe,
    0x7bfc,0x7c0f,0x7c16,0x7c0b
  },
  {    /* ku 54 */
    0x7c1f,0x7c2a,0x7c26,0x7c38,0x7c41,0x7c40,0x81fe,0x8201,0x8202,0x8204,
    0x81ec,0x8844,0x8221,0x8222,0x8223,0x822d,0x822f,0x8228,0x822b,0x8238,
    0x823b,0x8233,0x8234,0x823e,0x8244,0x8249,0x824b,0x824f,0x825a,0x825f,
    0x8268,0x887e,0x8885,0x8888,0x88d8,0x88df,0x895e,0x7f9d,0x7f9f,0x7fa7,
    0x7faf,0x7fb0,0x7fb2,0x7c7c,0x6549,0x7c91,0x7c9d,0x7c9c,0x7c9e,0x7ca2,
    0x7cb2,0x7cbc,0x7cbd,0x7cc1,0x7cc7,0x7ccc,0x7ccd,0x7cc8,0x7cc5,0x7cd7,
    0x7ce8,0x826e,0x66a8,0x7fbf,0x7fce,0x7fd5,0x7fe5,0x7fe1,0x7fe6,0x7fe9,
    0x7fee,0x7ff3,0x7cf8,0x7d77,0x7da6,0x7dae,0x7e47,0x7e9b,0x9eb8,0x9eb4,
    0x8d73,0x8d84,0x8d94,0x8d91,0x8db1,0x8d67,0x8d6d,0x8c47,0x8c49,0x914a,
    0x9150,0x914e,0x914f,0x9164
  },
  {    /* ku 55 */
    0x9162,0x9161,0x9170,0x9169,0x916f,0x917d,0x917e,0x9172,0x9174,0x9179,
    0x918c,0x9185,0x9190,0x918d,0x9191,0x91a2,0x91a3,0x91aa,0x91ad,0x91ae,
    0x91af,0x91b5,0x91b4,0x91ba,0x8c55,0x9e7e,0x8db8,0x8deb,0x8e05,0x8e59,
    0x8e69,0x8db5,0x8dbf,0x8dbc,0x8dba,0x8dc4,0x8dd6,0x8dd7,0x8dda,0x8dde,
    0x8dce,0x8dcf,0x8ddb,0x8dc6,0x8dec,0x8df7,0x8df8,0x8de3,0x8df9,0x8dfb,
    0x8de4,0x8e09,0x8dfd,0x8e14,0x8e1d,0x8e1f,0x8e2c,0x8e2e,0x8e23,0x8e2f,
    0x8e3a,0x8e40,0x8e39,0x8e35,0x8e3d,0x8e31,0x8e49,0x8e41,0x8e42,0x8e51,
    0x8e52,0x8e4a,0x8e70,0x8e76,0x8e7c,0x8e6f,0x8e74,0x8e85,0x8e8f,0x8e94,
    0x8e90,0x8e9c,0x8e9e,0x8c78,0x8c82,0x8c8a,0x8c85,0x8c98,0x8c94,0x659b,
    0x89d6,0x89de,0x89da,0x89dc
  },
  {    /* ku 56 */
    0x89e5,0x89eb,0x89ef,0x8a3e,0x8b26,0x9753,0x96e9,0x96f3,0x96ef,0x9706,
    0x9701,0x9708,0x970f,0x970e,0x972a,0x972d,0x9730,0x973e,0x9f80,0x9f83,
    0x9f85,0x9f86,0x9f87,0x9f88,0x9f89,0x9f8a,0x9f8c,0x9efe,0x9f0b,0x9f0d,
    0x96b9,0x96bc,0x96bd,0x96ce,0x96d2,0x77bf,0x96e0,0x928e,0x92ae,0x92c8,
    0x933e,0x936a,0x93ca,0x938f,0x943e,0x946b,0x9c7f,0x9c82,0x9c85,0x9c86,
    0x9c87,0x9c88,0x7a23,0x9c8b,0x9c8e,0x9c90,0x9c91,0x9c92,0x9c94,0x9c95,
    0x9c9a,0x9c9b,0x9c9e,0x9c9f,0x9ca0,0x9ca1,0x9ca2,0x9ca3,0x9ca5,0x9ca6,
    0x9ca7,0x9ca8,0x9ca9,0x9cab,0x9cad,0x9cae,0x9cb0,0x9cb1,0x9cb2,0x9cb3,
    0x9cb4,0x9cb5,0x9cb6,0x9cb7,0x9cba,0x9cbb,0x9cbc,0x9cbd,0x9cc4,0x9cc5,
    0x9cc6,0x9cc7,0x9cca,0x9ccb
  },
  {    /* ku 57 */ // 즉, 87 row 란 의미
    0x9ccc,0x9ccd,0x9cce,0x9ccf,0x9cd0,0x9cd3,0x9cd4,0x9cd5,0x9cd7,0x9cd8,
    0x9cd9,0x9cdc,0x9cdd,0x9cdf,0x9ce2,0x977c,0x9785,0x9791,0x9792,0x9794,
    0x97af,0x97ab,0x97a3,0x97b2,0x97b4,0x9ab1,0x9ab0,0x9ab7,0x9e58,0x9ab6,
    0x9aba,0x9abc,0x9ac1,0x9ac0,0x9ac5,0x9ac2,0x9acb,0x9acc,0x9ad1,0x9b45,
    0x9b43,0x9b47,0x9b49,0x9b48,0x9b4d,0x9b51,0x98e8,0x990d,0x992e,0x9955,
    0x9954,0x9adf,0x9ae1,0x9ae6,0x9aef,0x9aeb,0x9afb,0x9aed,0x9af9,0x9b08,
    0x9b0f,0x9b13,0x9b1f,0x9b23,0x9ebd,0x9ebe,0x7e3b,0x9e82,0x9e87,0x9e88,
    0x9e8b,0x9e92,0x93d6,0x9e9d,0x9e9f,0x9edb,0x9edc,0x9edd,0x9ee0,0x9edf,
    0x9ee2,0x9ee9,0x9ee7,0x9ee5,0x9eea,0x9eef,0x9f22,0x9f2c,0x9f2f,0x9f39,
    0x9f37,0x9f3d,0x9f3e,0x9f44
  }
};

GB2312toUNICODE(u16 *pu16String, u8 *pu8String)
{
    if(pu8String[u16Index] &gt;= A0) // GB2312 코드는 A0A0가 첫 문자의 시작이다.
    //...
    pu16String[u16Index1++] = gb2312tab[pu8String[u16Index] - 160 - 1][pu8String[u16Index + 1] - 160 - 1];
    //...
}

위의 매핑 테이블은 0번 부터 1번 col이 기재 되어 있으므로 160을 빼고 거기서 1을 더 뺴주어야 한다. 160을 빼주는 이유는 GB2312 -> row/col 로 변환하기 위해서이고 row/col -> GB2312에서 32를 더하고 128을 더해 주기 때문에 역산에서 160을 뺴주도록 한 것이다.
신고

'모종의 음모 > GB2312(중국어 간체)' 카테고리의 다른 글

GB2312 ASCII 부분 처리  (0) 2009.03.16
GB2312, Unicode  (0) 2009.03.16
GB2312 to Unicode mapping table  (0) 2009.03.16
Posted by 구차니

댓글을 달아 주세요

typedef unsigned char		u8;
typedef unsigned short		u16;

#define ARABIC_SIN 0
#define ARABIC_END 1
#define ARABIC_1ST 2
#define ARABIC_MID 3

u16 ArabicEncode(u16 *arab, u8 pos, BOOL* stepit, BOOL* is2set)
{
    u16 ucode = 0;
    BOOL nowChar = FALSE;
    switch(*arab)
    {
        // 2개일 경우
        case 0x0622: ucode = 0xFE81; nowChar = TRUE; break;
        case 0x0623: ucode = 0xFE83; nowChar = TRUE; break;
        case 0x0624: ucode = 0xFE85; nowChar = TRUE; break;
        case 0x0625: ucode = 0xFE87; nowChar = TRUE; break;
        case 0x0627: ucode = 0xFE8D; nowChar = TRUE; break;
        case 0x0629: ucode = 0xFE93; nowChar = TRUE; break;
        case 0x062F: ucode = 0xFEA9; nowChar = TRUE; break;
        case 0x0630: ucode = 0xFEAB; nowChar = TRUE; break;
        case 0x0631: ucode = 0xFEAD; nowChar = TRUE; break;
        case 0x0632: ucode = 0xFEAF; nowChar = TRUE; break;
        case 0x0648: ucode = 0xFEED; nowChar = TRUE; break;
        case 0x0649: ucode = 0xFEEF; nowChar = TRUE; break;

        // 4개 일경우
        case 0x0626: ucode = 0xFE89; nowChar = FALSE; break;
        case 0x0628: ucode = 0xFE8F; nowChar = FALSE; break;
        case 0x062A: ucode = 0xFE95; nowChar = FALSE; break;
        case 0x062B: ucode = 0xFE99; nowChar = FALSE; break;
        case 0x062C: ucode = 0xFE9D; nowChar = FALSE; break;
        case 0x062D: ucode = 0xFEA1; nowChar = FALSE; break;
        case 0x062E: ucode = 0xFEA5; nowChar = FALSE; break;
        case 0x0633: ucode = 0xFEB1; nowChar = FALSE; break;
        case 0x0634: ucode = 0xFEB5; nowChar = FALSE; break;
        case 0x0635: ucode = 0xFEB9; nowChar = FALSE; break;
        case 0x0636: ucode = 0xFEBD; nowChar = FALSE; break;
        case 0x0637: ucode = 0xFEC1; nowChar = FALSE; break;
        case 0x0638: ucode = 0xFEC5; nowChar = FALSE; break;
        case 0x0639: ucode = 0xFEC9; nowChar = FALSE; break;
        case 0x063A: ucode = 0xFECD; nowChar = FALSE; break;
        case 0x0641: ucode = 0xFED1; nowChar = FALSE; break;
        case 0x0642: ucode = 0xFED5; nowChar = FALSE; break;
        case 0x0643: ucode = 0xFED9; nowChar = FALSE; break;
        case 0x0644: ucode = 0xFEDD; nowChar = FALSE; break;
        case 0x0645: ucode = 0xFEE1; nowChar = FALSE; break;
        case 0x0646: ucode = 0xFEE5; nowChar = FALSE; break;
        case 0x0647: ucode = 0xFEE9; nowChar = FALSE; break;
        case 0x064A: ucode = 0xFEF1; nowChar = FALSE; break;
    }

    if((*arab == 0x0644) && (pos != ARABIC_END) && (pos != ARABIC_SIN))
    {
        switch(*(arab+1))
        {
            case 0x0622: ucode = 0xFEF5; *stepit = TRUE; break;
            case 0x0623: ucode = 0xFEF7; *stepit = TRUE; break;
            case 0x0625: ucode = 0xFEF9; *stepit = TRUE; break;
            case 0x0627: ucode = 0xFEFB; *stepit = TRUE; break;
            default: break;
        }

        if(*stepit == TRUE)
        {
            switch(pos)
            {
                case ARABIC_1ST:
                    if(*(arab+2) == 0x0020) break;
                    else { ucode += 0x001; break; }
                case ARABIC_MID:
                    if(*is2set == TRUE) break;
                    else { ucode += 0x001; break; }
            }

            *is2set = nowChar;
            return ucode;
        }
    }

    switch(pos)
    {
        //case ARABIC_SIN: return ucode;
        case ARABIC_1ST:
                if(nowChar == TRUE) ucode = *arab;
                else ucode += ARABIC_1ST;
                break;
        case ARABIC_MID:
                if(nowChar == TRUE) // 2개 짜리
                {
                    if(*is2set == TRUE) ucode = *arab;
                    else ucode += ARABIC_END;
                }
                else // 4개 짜리
                {
                    if(*is2set == TRUE) ucode += ARABIC_1ST;
                    else ucode += ARABIC_MID;
                }
                break;
        case ARABIC_END:
                if(nowChar == TRUE) // 2개 짜리
                {
                    if(*is2set == TRUE) ucode = *arab;
                    else ucode += ARABIC_END;
                }
                else // 4개 짜리
                {
                    if(*is2set == TRUE) ucode = *arab;
                    else ucode += ARABIC_END;
                }
                break;
    }

    *is2set = nowChar;
    return ucode;
}

BOOL isarabicstr(u16 *pu16String, u16 u16StrLength)
{
    u16 index = 0;
    BOOL arabic_exist = FALSE;

    for(index = 0;index < u16StrLength;index++)
    {
        if(pu16String[index] >= 0x060C && pu16String[index] <= 0x064B) return TRUE;
    }

    return arabic_exist;
}

void Arabic_automata(u16 *target_str, u16 *src_str,u16 u16Length)
{
	BOOL b8ArabSpe = FALSE;
	BOOL b8is2set = FALSE;
	u16 u16Index = 0;
	u16 u16Index2 = 0;
	u16 u16Index3 = 0;
	u16 u16offset = 0;
	u16 *temp_str = NULL;
	
	temp_str = malloc((u16Length + 1) * 2);

	for (u16Index = 0; u16Index < u16Length;)
	{
		if (src_str[u16Index] >= 0x060C && u16Index < u16Length) // arabic
		{
			u16Index2 = u16Index; // 아랍어 시작점
			while(src_str[u16Index] >= 0x060C && u16Index < u16Length ) u16Index++;
			if(u16Index - u16Index2 == 1) // 단독형
			{
				temp_str[u16Length - u16Index2 + u16offset - 1] = src_str[u16Index2];
			}
			else // 2개 이상 단어
			{
				// 첫자
				temp_str[u16Length - u16Index2 + u16offset - 1] = ArabicEncode(src_str + u16Index2, ARABIC_1ST ,&b8ArabSpe, &b8is2set);
				if(b8ArabSpe == TRUE) {++u16offset; ++u16Index2;}
				
				//중간글자
				for(u16Index3 = u16Index2 + 1; u16Index3 < u16Index - 1; u16Index3++)
				{
					if(b8ArabSpe == TRUE)
					{
						b8ArabSpe = FALSE;
						temp_str[u16Length - u16Index3 + u16offset - 1] = ArabicEncode(src_str + u16Index3, ARABIC_1ST ,&b8ArabSpe, &b8is2set);
					}
					else
						temp_str[u16Length - u16Index3 + u16offset - 1] = ArabicEncode(src_str + u16Index3, ARABIC_MID ,&b8ArabSpe, &b8is2set);
					if(b8ArabSpe == TRUE) {++u16offset; ++u16Index3;}
				}
				//마지막자
				if(u16Index - u16Index2 != 1)
				{
					if(b8ArabSpe == TRUE)
					{
						b8ArabSpe = FALSE;
						temp_str[u16Length - u16Index + u16offset] = ArabicEncode(src_str + u16Index - 1, ARABIC_1ST ,&b8ArabSpe, &b8is2set);
					}
					else
						temp_str[u16Length - u16Index + u16offset] = ArabicEncode(src_str + u16Index - 1, ARABIC_END ,&b8ArabSpe, &b8is2set);
					if(b8ArabSpe == TRUE) b8ArabSpe = FALSE;
				}
			}
		}
		else if (src_str[u16Index] == 0x0020)
		{
			u16Index2 = u16Index++;
			temp_str[u16Length - u16Index + u16offset] = src_str[u16Index - 1];
		}
		else // not arabic
		{
			u16Index2 = u16Index; // 영어 시작점
			while(src_str[u16Index] > 32 && src_str[u16Index] < 255  && u16Index < u16Length && src_str[u16Index] != 0x0020) u16Index++;
			for(u16Index3 = 0; u16Index3 < u16Index - u16Index2; u16Index3++)
			{
				temp_str[u16Length - u16Index + u16Index3 + u16offset] = src_str[u16Index2 + u16Index3];
			}
		}
	}

	if(u16offset > 0)
	{
		memcpy(target_str,temp_str + u16offset,(u16Length - u16offset) * 2);
		memset(target_str + (u16Length - u16offset),0x00,u16offset * 2);
	}
	else
	{
		memcpy(target_str,temp_str,(u16Length) * 2);
		memset(target_str + u16Length,0x00,2);
	}

	free(temp_str);
}



아놔 syntax highlighter 왜 이따구야 ㅠ.ㅠ
신고

'모종의 음모 > 아랍어 오토마타' 카테고리의 다른 글

유니코드 아랍어 오토마타  (8) 2009.03.05
아랍어 조합 방법 - unicode  (5) 2008.11.16
Posted by 구차니

댓글을 달아 주세요

  1. 비밀댓글입니다

    2015.06.08 21:14 [ ADDR : EDIT/ DEL : REPLY ]
    • 아니오 ㅠㅠ
      텔레텍스트는 해보지 않았습니다. 그리고 페르시아어도 해보지 않았고
      아랍어만 해봤습니다.(메시지 id 기반으로 다국어지원)

      2015.06.08 22:08 신고 [ ADDR : EDIT/ DEL ]
  2. ssonacy

    정말루 감사합니다. 지금 하고 있는 프로젝트에서 아랍 출력에 대한 이슈가 있었는데

    제공해 주신 코드로 해결되었습니다. 정말루 감사합니다.

    2015.09.13 01:56 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 도움이 되었다니 뿌듯하네요 ^^
      다만.. 이녀석이 줄 바꿈에 대해서는 처리가 안되니 주의하시기 바랍니다.

      2015.09.14 08:53 신고 [ ADDR : EDIT/ DEL ]
  3. 비밀댓글입니다

    2016.04.27 20:03 [ ADDR : EDIT/ DEL : REPLY ]
    • IME 연관인가요?
      입력쪽은 제가 안해봐서... 하나하나 입력이 아닌
      문장을 출력용으로 변환하는 오토마타라.. OSD 키보드에는 한번 입력할때 마다 전체 문장에 대해서 적용해 보시면 어떨까 합니다.

      2016.04.27 22:31 신고 [ ADDR : EDIT/ DEL ]
  4. 감사합니다.

    너무너무 감사합니다.
    테스트를 해보도록 하겠습니다.

    2016.04.28 09:58 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 잘해결되면 좋겠네요..
      저도 이녀석 손을 좀 봐야 하는데. 끄응...

      2016.04.28 14:24 신고 [ ADDR : EDIT/ DEL ]

아랍어의 특징

아랍어는 오른쪽에서 왼쪽으로 씁니다. 획 역시 오른쪽 상단에서 좌측 하단으로 이어지게 됩니다.

한글의 초성/중성/종성과는 다르지만 이전 문자에 따라서 다음 문자의 모양이 달라지는 방식입니다.

그리고 삭제시에도 백스페이스와 delete키가 반대로 적용되는 듯하게 보입니다.

 

윈도우즈 폰트

Arial
Tahoma
Times New Roman
Courier New
Microsoft Sans Serif

에 아랍어 폰트가 내장 되어 있습니다.

[출처 : http://mwultong.blogspot.com/2006/08/arabic-fonts.html]

 

아랍어 조합방법



아랍어는 단독형 /  처음형 / 가운데형 / 말끝형 총 4가지의 자소로 구성되며 일부자소에는 단독형과 말끝형 만 존재합니다.

발음은 모르겠지만.. 아무튼 아랍어 글자 하나가 네가지 형태로 사용되는 것이고,

가장 위의 0x0635(0xFEB9)가 단독형

그 아래의 0xFEBA가 말끝형

그 아래의 0xFEBB가 처음형

그 아래의 0xFEBC가 가운데형 입니다.

모양을 보시면 아시겠지만,  처음형은 오른쪽 끝이 깔끔하고

중간형은 앞뒤로 이어지는 꼬리가 달렸고

말끝형은 오른족 앞에 꼬리가 달렸습니다.

4가지 형이 다 있는 문자가 아닌 경우에는

단순하게 처음형 / 가운데형만 존재하고,

처음형으로 처음형과, 단독형

가운데형으로 가운데형과, 말끝형에 사용합니다.


그리고 번지가 두개인 이유는 앞의 0x0600 번대의 데이터만 사용하고, 0xFE00대의 데이터는

실제로 전송되는것이 아니라 문자를 조합하는데 사용하기 위한 문자코드 입니다.

위에 표시된 부분에서는 단독형의 코드만 존재하고, 앞뒤로는 다른 문자입니다.

즉, 유니코드상으로 0x0600 대의 데이터를 받아서 내부적으로 0xFE00 의 데이터로 변환하여 출력을 해주시면 되겠습니다.

 

그리고 예외 사항으로 분리 문자라는 것이 존재 합니다.

ا

د

ذ

ر

ز

و

이전 문자가 2가지 형만 있는 자소일 경우 분리문자가 되며,

(이 부분은 확실하지 않습니다. 위의 6개만인지는 좀더 확인해보고 수정하겠습니다)

분리문자일 경우에는 이어지는 다음 문자가 가운데형을 쓰는대신 처음형을 써주어야 합니다.

 

다른 예외 사항으로

두가지 문자가 조합되어 생성되는 자소 뒤에도 가운데 형을 써야 하는 경우에도 처음형을 써주어야 합니다.

 

그 실례로

ل ا

가 있으며, 두녀석이 연달아서 나타나면

이 되는것이 아니라

لا

이 됩니다.

 

 

[참고서적  : 알기쉬운 아랍어 입문 /김종도 감수/ 명지출판사, 실용아랍어 / 황의갑,한덕규 지음 / 혜안]

신고

'모종의 음모 > 아랍어 오토마타' 카테고리의 다른 글

유니코드 아랍어 오토마타  (8) 2009.03.05
아랍어 조합 방법 - unicode  (5) 2008.11.16
Posted by 구차니

댓글을 달아 주세요

  1. 비밀댓글입니다

    2009.09.05 18:14 [ ADDR : EDIT/ DEL : REPLY ]
  2. 비밀댓글입니다

    2009.09.05 18:14 [ ADDR : EDIT/ DEL : REPLY ]
  3. 휴ㅗㅅ러ㅛㅑ

    2009.09.05 18:15 신고 [ ADDR : EDIT/ DEL : REPLY ]
  4. 비밀댓글입니다

    2013.11.19 11:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 제가 아랍어를 모르는 상황에서 오토마타를 만들어서 확실히 저게 어떤 문자인지 모르겠으나

      일반적인 규칙으로는
      0x0644 0x0627의 경우
      처음과 끝으로 변환해서 0xFEDF 0xFE8E로 변환되어야 하나
      엑셀이나 워드에서 확인해보면 조금은 뜬금없지만 0xFEFB로 변환이 되더군요.

      아랍어를 아시는분이 있으면 물어보고 싶으나.. 지인중에 아랍어 쪽이 없으셔서 확인을 못한 부분이라
      조합시 변형되는 특이형태라 "예외사항"으로 표기를 한것입니다.

      2013.11.19 11:37 신고 [ ADDR : EDIT/ DEL ]