1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _SYS_KICONV_JA_H 28 #define _SYS_KICONV_JA_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 #include <sys/kiconv.h> 35 36 /* 37 * kiconv_ja specific definition 38 */ 39 40 #define KICONV_JA_TBLID_EUCJP (0x00) 41 #define KICONV_JA_TBLID_EUCJP_MS (0x01) 42 #define KICONV_JA_TBLID_SJIS (0x02) 43 #define KICONV_JA_TBLID_CP932 (0x03) 44 45 #define KICONV_JA_MAX_MAPPING_TBLID (0x03) 46 47 #define KICONV_JA_DEF_SINGLE KICONV_ASCII_REPLACEMENT_CHAR 48 #define KICONV_JA_REPLACE (0xfffd) 49 #define KICONV_JA_NODEST (0xffff) 50 #define KICONV_JA_IFHISUR(x) ((0xd800 <= (x)) && ((x) <= 0xdbff)) 51 #define KICONV_JA_IFLOSUR(x) ((0xdc00 <= (x)) && ((x) <= 0xdfff)) 52 53 #define KICONV_JA_RETERROR(no) {\ 54 *errno = (no);\ 55 rv = ((size_t)-1);\ 56 goto ret;\ 57 } 58 59 #define KICONV_JA_NGET(c) \ 60 if (ileft == 0) {\ 61 KICONV_JA_RETERROR(EINVAL)\ 62 } else {\ 63 ileft--;\ 64 (c) = *ip++;\ 65 } 66 67 #define KICONV_JA_NGET_REP_FR_MB(c) \ 68 if (ileft == 0) {\ 69 KICONV_JA_PUTU(KICONV_JA_REPLACE)\ 70 rv++;\ 71 goto next;\ 72 } else {\ 73 ileft--;\ 74 (c) = *ip++;\ 75 } 76 77 #define KICONV_JA_NGET_REP_TO_MB(c) \ 78 if (ileft == 0) {\ 79 l = KICONV_JA_DEF_SINGLE;\ 80 *repnum = 1;\ 81 goto ret;\ 82 } else {\ 83 ileft--;\ 84 (c) = *ip++;\ 85 } 86 87 #define KICONV_JA_NPUT(c) \ 88 if (oleft == 0) {\ 89 KICONV_JA_RETERROR(E2BIG)\ 90 } else {\ 91 oleft--;\ 92 *op++ = (uint8_t)(c);\ 93 } 94 95 #define KICONV_JA_GETU(pu32, flag) \ 96 read_len = read_unicode((pu32), &ip, &ileft, errno, (flag), &rv); \ 97 switch (read_len) { \ 98 case (size_t)-1: \ 99 /* errno has been set in read_unicode() */ \ 100 rv = (size_t)-1; \ 101 goto ret; \ 102 case (size_t)0: \ 103 /* character read was handled in the read_unicode() */ \ 104 /* no further evaluation needed in caller side */ \ 105 goto next; \ 106 default: \ 107 break; \ 108 } 109 110 #define KICONV_JA_PUTU(u32) \ 111 if (write_unicode((u32), &op, &oleft, errno) \ 112 == (size_t)-1) { \ 113 rv = ((size_t)-1);\ 114 goto ret; \ 115 } 116 117 #define KICONV_JA_CHECK_UTF8_BOM(inbuf, inleft) \ 118 if (((kiconv_state_t)kcd)->bom_processed == 0 && (inleft) >= 3 && \ 119 *(inbuf) == 0xef && \ 120 *((inbuf) + 1) == 0xbb && \ 121 *((inbuf) + 2) == 0xbf) { \ 122 (inbuf) += 3; \ 123 (inleft) -= 3; \ 124 } \ 125 ((kiconv_state_t)kcd)->bom_processed = 1 126 127 #define KICONV_JA_CHECK_UTF8_BOM_WITHOUT_STATE(inbuf, inleft) \ 128 if ((inleft) >= 3 && *(inbuf) == 0xef && \ 129 *((inbuf) + 1) == 0xbb && \ 130 *((inbuf) + 2) == 0xbf) { \ 131 (inbuf) += 3; \ 132 (inleft) -= 3; \ 133 } 134 135 #define KICONV_JA_ERR_RETURN (-1) /* result code on error */ 136 137 /* 138 * KICONV_JA_ISXXXX(c) macros below assume (c) is of type ushort_t 139 */ 140 /* is a valid code as ascii? */ 141 #define KICONV_JA_ISASC(c) ((c) <= 0x7f) 142 143 /* is a valid code as C1 control? */ 144 #define KICONV_JA_ISC1CTRL(c) (((c) >= 0x80) && ((c) <= 0x9f)) 145 146 /* is a valid code as C1 control allowed in EUC? */ 147 #define KICONV_JA_ISC1CTRLEUC(c) ((((c) >= 0x80) && ((c) <= 0x8d)) ||\ 148 (((c) >= 0x90) && ((c) <= 0x9f))) 149 150 /* is a valid 1st or 2nd byte of EUC codeset 1? */ 151 #define KICONV_JA_ISCS1(c) (((c) >= 0xa1) && ((c) <= 0xfe)) 152 153 /* is a valid 1st byte of EUC codeset 1 and in range row 1 thru 84? */ 154 #define KICONV_JA_ISCS1_0208(c) (((c) >= 0xa1) && ((c) <= 0xf4)) 155 156 /* is a valid 1st byte of UDC area in EUC codeset 1? */ 157 #define KICONV_JA_ISCS1_UDC(c) (((c) >= 0xf5) && ((c) <= 0xfe)) 158 159 /* is a valid 2nd (1st byte is SS2) byte of EUC codeset 2? */ 160 #define KICONV_JA_ISCS2(c) (((c) >= 0xa1) && ((c) <= 0xdf)) 161 162 /* is a valid 2nd or 3rd (1st byte is SS3) byte of EUC codeset 3? */ 163 #define KICONV_JA_ISCS3(c) (((c) >= 0xa1) && ((c) <= 0xfe)) 164 165 /* is a valid 2nd (1st byte is SS3) byte of UDC area in EUC codeset 3? */ 166 #define KICONV_JA_ISCS3_UDC(c) (((c) >= 0xf5) && ((c) <= 0xfe)) 167 168 /* is a valid hankaku_katakana for SJIS? */ 169 #define KICONV_JA_ISSJKANA(c) (((c) >= 0xa1) && ((c) <= 0xdf)) 170 171 /* is a valid character for the first byte of SJIS multibyte? */ 172 #define KICONV_JA_ISSJMB_1(c) \ 173 ((((c) >= 0x81) && ((c) <= 0x9f)) || \ 174 (((c) >= 0xe0) && ((c) <= 0xfc))) 175 176 /* is a valid character for the first byte of SJIS kanji? */ 177 #define KICONV_JA_ISSJKANJI1(c) \ 178 ((((c) >= 0x81) && ((c) <= 0x9f)) || \ 179 (((c) >= 0xe0) && ((c) <= 0xea)) || \ 180 (((c) >= 0xf0) && ((c) <= 0xf4))) 181 182 /* is a valid character for the first byte of a part of Suppl. SJIS? */ 183 #define KICONV_JA_ISSJSUPKANJI1(c) (((c) >= 0xf5) && ((c) <= 0xf9)) 184 185 /* is a valid character for the first byte of SJIS UDC? */ 186 #define KICONV_JA_ISSJUDC_1(c) (((c) >= 0xf0) && ((c) <= 0xf9)) 187 188 /* is a valid character for the first byte of ibm character set */ 189 #define KICONV_JA_ISSJIBM(c) (((c) >= 0xfa) && ((c) <= 0xfc)) 190 191 /* is a valid character for the first byte of ibm character set */ 192 #define KICONV_JA_ISSJNECIBM(c) (((c) >= 0xed) && ((c) <= 0xef)) 193 194 /* is a valid character for the second byte of SJIS kanji? */ 195 #define KICONV_JA_ISSJKANJI2(c) \ 196 ((((c) >= 0x40) && ((c) <= 0x7e)) || \ 197 (((c) >= 0x80) && ((c) <= 0xfc))) 198 199 /* is a valid character for UTF8 UDC ? */ 200 #define KICONV_JA_ISUTF8UDC(c) (((c) >= 0xe000) && ((c) <= 0xf8ff)) 201 202 #define KICONV_JA_CMASK 0x7f 203 #define KICONV_JA_CMSB 0x80 204 205 /* 206 * Remap NEC/IBM codes to IBM codes 207 * if dest == 0xffff, that means the source 208 * code point is illegal in the current spec. 209 */ 210 #define KICONV_JA_REMAP_NEC(dest) \ 211 if ((0xed40 <= (dest)) && \ 212 ((dest) <= 0xed62)) { \ 213 (dest) += 0xd1c; \ 214 } else if ((0xed63 <= (dest)) && \ 215 ((dest) <= 0xed7e)) { \ 216 (dest) += 0xd1d; \ 217 } else if ((0xed80 <= (dest)) && \ 218 ((dest) <= 0xede0)) { \ 219 (dest) += 0xd1c; \ 220 } else if ((0xede1 <= (dest)) && \ 221 ((dest) <= 0xedfc)) { \ 222 (dest) += 0xd5f; \ 223 } else if ((0xee40 <= (dest)) && \ 224 ((dest) <= 0xee62)) { \ 225 (dest) += 0xd1c; \ 226 } else if ((0xee63 <= (dest)) && \ 227 ((dest) <= 0xee7e)) { \ 228 (dest) += 0xd1d; \ 229 } else if ((0xee80 <= (dest)) && \ 230 ((dest) <= 0xeee0)) { \ 231 (dest) += 0xd1c; \ 232 } else if ((0xeee1 <= (dest)) && \ 233 ((dest) <= 0xeeec)) { \ 234 (dest) += 0xd5f; \ 235 } else if ((0xeeef <= (dest)) && \ 236 ((dest) <= 0xeef8)) { \ 237 (dest) += 0xb51; \ 238 } else if ((0xeef9 <= (dest)) && \ 239 ((dest) <= 0xeefc)) { \ 240 (dest) += 0xb5b; \ 241 } else { \ 242 (dest) = 0xffff; \ 243 } 244 245 typedef ushort_t kiconv_ja_euc16_t; 246 typedef ushort_t kiconv_ja_ucs2_t; 247 248 /* 249 * The following 6 vectors show JIS and SJIS mapping table. 250 */ 251 static const uchar_t kiconv_ja_sjtojis1[] = { 252 0xff, 0x21, 0x23, 0x25, 0x27, 0x29, 0x2b, 0x2d, 253 0x2f, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3b, 0x3d, 254 0x3f, 0x41, 0x43, 0x45, 0x47, 0x49, 0x4b, 0x4d, 255 0x4f, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5b, 0x5d, 256 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 257 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 258 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 259 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 260 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 261 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 262 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 263 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 264 0x5f, 0x61, 0x63, 0x65, 0x67, 0x69, 0x6b, 0x6d, 265 0x6f, 0x71, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 266 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x75, 0x77, 0x79, 267 0x7b, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 268 }; 269 static const uchar_t kiconv_ja_sjtojis2[] = { 270 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 271 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 272 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 273 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 274 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 275 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 276 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 277 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 278 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 279 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 280 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 281 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 282 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 283 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 284 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 285 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0xff, 286 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 287 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 288 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 289 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x21, 290 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 291 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 292 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 293 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 294 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 295 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 296 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 297 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 298 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 299 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 300 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 301 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0xff, 0xff, 0xff, 302 }; 303 static const uchar_t kiconv_ja_jis208tosj1[] = { 304 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 305 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 306 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 307 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 308 0xff, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, 309 0x84, 0x85, 0x85, 0x86, 0x86, 0x87, 0x87, 0x88, 310 0x88, 0x89, 0x89, 0x8a, 0x8a, 0x8b, 0x8b, 0x8c, 311 0x8c, 0x8d, 0x8d, 0x8e, 0x8e, 0x8f, 0x8f, 0x90, 312 0x90, 0x91, 0x91, 0x92, 0x92, 0x93, 0x93, 0x94, 313 0x94, 0x95, 0x95, 0x96, 0x96, 0x97, 0x97, 0x98, 314 0x98, 0x99, 0x99, 0x9a, 0x9a, 0x9b, 0x9b, 0x9c, 315 0x9c, 0x9d, 0x9d, 0x9e, 0x9e, 0x9f, 0x9f, 0xe0, 316 0xe0, 0xe1, 0xe1, 0xe2, 0xe2, 0xe3, 0xe3, 0xe4, 317 0xe4, 0xe5, 0xe5, 0xe6, 0xe6, 0xe7, 0xe7, 0xe8, 318 0xe8, 0xe9, 0xe9, 0xea, 0xea, 0xf0, 0xf0, 0xf1, 319 0xf1, 0xf2, 0xf2, 0xf3, 0xf3, 0xf4, 0xf4, 0xff, 320 }; 321 static const uchar_t kiconv_ja_jis212tosj1[] = { 322 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 323 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 324 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 325 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 326 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 327 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 328 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 329 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 330 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 331 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 332 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 333 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 334 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 335 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 336 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf5, 0xf6, 337 0xf6, 0xf7, 0xf7, 0xf8, 0xf8, 0xf9, 0xf9, 0xff, 338 }; 339 static const uchar_t kiconv_ja_jistosj2[] = { 340 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 341 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 342 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 343 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 344 0xff, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 345 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 346 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 347 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 348 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 349 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 350 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 351 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 352 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 353 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 354 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 355 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0xff, 356 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 357 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 358 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 359 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 360 0xff, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 361 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 362 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 363 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 364 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 365 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 366 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 367 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 368 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 369 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 370 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 371 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xff, 372 }; 373 static const ushort_t kiconv_ja_sjtoibmext[] = { 374 0xf3f3, 0xf3f4, 0xf3f5, 0xf3f6, 0xf3f7, 0xf3f8, 0xf3f9, 0xf3fa, 375 0xf3fb, 0xf3fc, 0xf3fd, 0xf3fe, 0xf4a1, 0xf4a2, 0xf4a3, 0xf4a4, 376 0xf4a5, 0xf4a6, 0xf4a7, 0xf4a8, 0xffff, 0xa2c3, 0xf4a9, 0xf4aa, 377 0xf4ab, 0xf4ac, 0xf4ad, 0xffff, 0xd4e3, 0xdcdf, 0xe4e9, 0xe3f8, 378 0xd9a1, 0xb1bb, 0xf4ae, 0xc2ad, 0xc3fc, 0xe4d0, 0xc2bf, 0xbcf4, 379 0xb0a9, 0xb0c8, 0xf4af, 0xb0d2, 0xb0d4, 0xb0e3, 0xb0ee, 0xb1a7, 380 0xb1a3, 0xb1ac, 0xb1a9, 0xb1be, 0xb1df, 0xb1d8, 0xb1c8, 0xb1d7, 381 0xb1e3, 0xb1f4, 0xb1e1, 0xb2a3, 0xf4b0, 0xb2bb, 0xb2e6, 0xffff, 382 0xb2ed, 0xb2f5, 0xb2fc, 0xf4b1, 0xb3b5, 0xb3d8, 0xb3db, 0xb3e5, 383 0xb3ee, 0xb3fb, 0xf4b2, 0xf4b3, 0xb4c0, 0xb4c7, 0xb4d0, 0xb4de, 384 0xf4b4, 0xb5aa, 0xf4b5, 0xb5af, 0xb5c4, 0xb5e8, 0xf4b6, 0xb7c2, 385 0xb7e4, 0xb7e8, 0xb7e7, 0xf4b7, 0xf4b8, 0xf4b9, 0xb8ce, 0xb8e1, 386 0xb8f5, 0xb8f7, 0xb8f8, 0xb8fc, 0xb9af, 0xb9b7, 0xbabe, 0xbadb, 387 0xcdaa, 0xbae1, 0xf4ba, 0xbaeb, 0xbbb3, 0xbbb8, 0xf4bb, 0xbbca, 388 0xf4bc, 0xf4bd, 0xbbd0, 0xbbde, 0xbbf4, 0xbbf5, 0xbbf9, 0xbce4, 389 0xbced, 0xbcfe, 0xf4be, 0xbdc2, 0xbde7, 0xf4bf, 0xbdf0, 0xbeb0, 390 0xbeac, 0xf4c0, 0xbeb3, 0xbebd, 0xbecd, 0xbec9, 0xbee4, 0xbfa8, 391 0xbfc9, 0xc0c4, 0xc0e4, 0xc0f4, 0xc1a6, 0xf4c1, 0xc1f5, 0xc1fc, 392 0xf4c2, 0xc1f8, 0xc2ab, 0xc2a1, 0xc2a5, 0xf4c3, 0xc2b8, 0xc2ba, 393 0xf4c4, 0xc2c4, 0xc2d2, 0xc2d7, 0xc2db, 0xc2de, 0xc2ed, 0xc2f0, 394 0xf4c5, 0xc3a1, 0xc3b5, 0xc3c9, 0xc3b9, 0xf4c6, 0xc3d8, 0xc3fe, 395 0xf4c7, 0xc4cc, 0xf4c8, 0xc4d9, 0xc4ea, 0xc4fd, 0xf4c9, 0xc5a7, 396 0xc5b5, 0xc5b6, 0xf4ca, 0xc5d5, 0xc6b8, 0xc6d7, 0xc6e0, 0xc6ea, 397 0xc6e3, 0xc7a1, 0xc7ab, 0xc7c7, 0xc7c3, 0xffff, 0xffff, 0xffff, 398 0xc7cb, 0xc7cf, 0xc7d9, 0xf4cb, 0xf4cc, 0xc7e6, 0xc7ee, 0xc7fc, 399 0xc7eb, 0xc7f0, 0xc8b1, 0xc8e5, 0xc8f8, 0xc9a6, 0xc9ab, 0xc9ad, 400 0xf4cd, 0xc9ca, 0xc9d3, 0xc9e9, 0xc9e3, 0xc9fc, 0xc9f4, 0xc9f5, 401 0xf4ce, 0xcab3, 0xcabd, 0xcaef, 0xcaf1, 0xcbae, 0xf4cf, 0xcbca, 402 0xcbe6, 0xcbea, 0xcbf0, 0xcbf4, 0xcbee, 0xcca5, 0xcbf9, 0xccab, 403 0xccae, 0xccad, 0xccb2, 0xccc2, 0xccd0, 0xccd9, 0xf4d0, 0xcdbb, 404 0xf4d1, 0xcebb, 0xf4d2, 0xceba, 0xcec3, 0xf4d3, 0xcef2, 0xb3dd, 405 0xcfd5, 0xcfe2, 0xcfe9, 0xcfed, 0xf4d4, 0xf4d5, 0xf4d6, 0xffff, 406 0xf4d7, 0xd0e5, 0xf4d8, 0xd0e9, 0xd1e8, 0xf4d9, 0xf4da, 0xd1ec, 407 0xd2bb, 0xf4db, 0xd3e1, 0xd3e8, 0xd4a7, 0xf4dc, 0xf4dd, 0xd4d4, 408 0xd4f2, 0xd5ae, 0xf4de, 0xd7de, 0xf4df, 0xd8a2, 0xd8b7, 0xd8c1, 409 0xd8d1, 0xd8f4, 0xd9c6, 0xd9c8, 0xd9d1, 0xf4e0, 0xf4e1, 0xf4e2, 410 0xf4e3, 0xf4e4, 0xdcd3, 0xddc8, 0xddd4, 0xddea, 0xddfa, 0xdea4, 411 0xdeb0, 0xf4e5, 0xdeb5, 0xdecb, 0xf4e6, 0xdfb9, 0xf4e7, 0xdfc3, 412 0xf4e8, 0xf4e9, 0xe0d9, 0xf4ea, 0xf4eb, 0xe1e2, 0xf4ec, 0xf4ed, 413 0xf4ee, 0xe2c7, 0xe3a8, 0xe3a6, 0xe3a9, 0xe3af, 0xe3b0, 0xe3aa, 414 0xe3ab, 0xe3bc, 0xe3c1, 0xe3bf, 0xe3d5, 0xe3d8, 0xe3d6, 0xe3df, 415 0xe3e3, 0xe3e1, 0xe3d4, 0xe3e9, 0xe4a6, 0xe3f1, 0xe3f2, 0xe4cb, 416 0xe4c1, 0xe4c3, 0xe4be, 0xf4ef, 0xe4c0, 0xe4c7, 0xe4bf, 0xe4e0, 417 0xe4de, 0xe4d1, 0xf4f0, 0xe4dc, 0xe4d2, 0xe4db, 0xe4d4, 0xe4fa, 418 0xe4ef, 0xe5b3, 0xe5bf, 0xe5c9, 0xe5d0, 0xe5e2, 0xe5ea, 0xe5eb, 419 0xf4f1, 0xf4f2, 0xf4f3, 0xe6e8, 0xe6ef, 0xe7ac, 0xf4f4, 0xe7ae, 420 0xf4f5, 0xe7b1, 0xf4f6, 0xe7b2, 0xe8b1, 0xe8b6, 0xf4f7, 0xf4f8, 421 0xe8dd, 0xf4f9, 0xf4fa, 0xe9d1, 0xf4fb, 0xffff, 0xffff, 0xffff, 422 0xe9ed, 0xeacd, 0xf4fc, 0xeadb, 0xeae6, 0xeaea, 0xeba5, 0xebfb, 423 0xebfa, 0xf4fd, 0xecd6, 0xf4fe, 0xffff, 0xffff, 0xffff, 0xffff, 424 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 425 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 426 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 427 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 428 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 429 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 430 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 431 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 432 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 433 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 434 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 435 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 436 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 437 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 438 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 439 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 440 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 441 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 442 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 443 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 444 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 445 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 446 }; 447 448 #ifdef __cplusplus 449 } 450 #endif 451 452 #endif /* _SYS_KICONV_JA_H */ 453