about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog30
-rw-r--r--iconvdata/JISX0213.TXT14
-rw-r--r--iconvdata/gconv-modules1
-rw-r--r--iconvdata/ibm932.c31
-rw-r--r--iconvdata/ibm943.c31
-rw-r--r--iconvdata/iso-2022-jp-3.c43
-rw-r--r--iconvdata/jisx0213.c738
-rw-r--r--iconvdata/jisx0213.h25
-rw-r--r--iconvdata/testdata/EUC-JISX021312
-rw-r--r--iconvdata/testdata/EUC-JISX0213..UTF816
-rw-r--r--iconvdata/testdata/ISO-2022-JP-314
-rw-r--r--iconvdata/testdata/ISO-2022-JP-3..UTF814
-rw-r--r--iconvdata/testdata/SHIFT_JISX021312
-rw-r--r--iconvdata/testdata/SHIFT_JISX0213..UTF816
-rw-r--r--localedata/ChangeLog14
-rw-r--r--localedata/charmaps/EUC-JISX021318
-rw-r--r--localedata/charmaps/ISO-8859-1132
-rw-r--r--localedata/charmaps/ISO-8859-74
-rw-r--r--localedata/charmaps/SHIFT_JISX021316
19 files changed, 626 insertions, 455 deletions
diff --git a/ChangeLog b/ChangeLog
index 4d4ceaa9f3..3edfb3a12f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2004-08-02  Jakub Jelinek  <jakub@redhat.com>
+
+	* iconvdata/ibm932.c (BODY): Avoid binary search for ch >= 0xffff.
+	Always treat high as highest number in range + 1.
+	* iconvdata/ibm943.c (BODY): Likewise.
+
+2004-07-31  Bruno Haible  <bruno@clisp.org>
+
+	* iconvdata/JISX0213.TXT: Updated to JISX0213 plane 1 version 2004.
+	* iconvdata/jisx0213.c (__jisx0213_to_ucs_main,
+	__jisx0213_to_ucs_pagestart, __jisx0213_from_ucs_level1,
+	__jisx0213_from_ucs_level2): Regenerated.
+	* iconvdata/jisx0213.h (jisx0213_added_in_2004_p): New function.
+	* iconvdata/iso-2022-jp-3.c (JISX0213_1_2000_set): Renamed from
+	JISX0213_1_set.
+	(JISX0213_1_2004_set): New enum value.
+	(BODY for FROM_LOOP): Treat ESC $ ( Q like ESC $ ( O.
+	(BODY for TO_LOOP): For JISX 0213 plane 1 characters, emit ESC $ ( O
+	when possible, ESC $ ( Q when needed.
+	* iconvdata/testdata/EUC-JISX0213: Add the 10 new characters.
+	* iconvdata/testdata/EUC-JISX0213..UTF8: Update.
+	* iconvdata/testdata/SHIFT_JISX0213: Add the 10 new characters.
+	* iconvdata/testdata/SHIFT_JISX0213..UTF8: Update.
+	* iconvdata/testdata/ISO-2022-JP-3: Add the 10 new JISX0213 characters.
+	* iconvdata/testdata/ISO-2022-JP-3..UTF8: Update.
+
+2004-07-22  Bruno Haible  <bruno@clisp.org>
+
+	* iconvdata/gconv-modules (ISO-8859-7): Add alias ISO_8859-7:2003.
+
 2004-07-29  David S. Miller  <davem@redhat.com>
 
 	* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy): Optimize
diff --git a/iconvdata/JISX0213.TXT b/iconvdata/JISX0213.TXT
index abc0c638f1..31a94c6ecf 100644
--- a/iconvdata/JISX0213.TXT
+++ b/iconvdata/JISX0213.TXT
@@ -26,7 +26,7 @@
 0x1213A	0x3006
 0x1213B	0x3007
 0x1213C	0x30FC
-0x1213D	0x2015
+0x1213D	0x2014
 0x1213E	0x2010
 0x1213F	0xFF0F
 0x12140	0xFF3C
@@ -211,7 +211,7 @@
 0x12337	0xFF17
 0x12338	0xFF18
 0x12339	0xFF19
-0x1233A	0x2299
+0x1233A	0x29BF
 0x1233B	0x25C9
 0x1233C	0x303D
 0x1233D	0xFE46
@@ -1181,6 +1181,7 @@
 0x12D79	0x22BF
 0x12D7D	0x2756
 0x12D7E	0x261E
+0x12E21	0x4FF1
 0x12E22	0x2000B
 0x12E23	0x3402
 0x12E24	0x4E28
@@ -1367,6 +1368,7 @@
 0x12F7B	0x218BD
 0x12F7C	0x5B19
 0x12F7D	0x5B25
+0x12F7E	0x525D
 0x13021	0x4E9C
 0x13022	0x5516
 0x13023	0x5A03
@@ -4332,6 +4334,7 @@
 0x14F51	0x6E7E
 0x14F52	0x7897
 0x14F53	0x8155
+0x14F54	0x20B9F
 0x14F55	0x5B41
 0x14F56	0x5B56
 0x14F57	0x5B7D
@@ -4373,6 +4376,7 @@
 0x14F7B	0x5DA7
 0x14F7C	0x5DB8
 0x14F7D	0x5DCB
+0x14F7E	0x541E
 0x15021	0x5F0C
 0x15022	0x4E10
 0x15023	0x4E15
@@ -7763,6 +7767,7 @@
 0x17424	0x7464
 0x17425	0x51DC
 0x17426	0x7199
+0x17427	0x5653
 0x17428	0x5DE2
 0x17429	0x5E14
 0x1742A	0x5E18
@@ -8785,6 +8790,11 @@
 0x17E77	0x9F94
 0x17E78	0x9F97
 0x17E79	0x9FA2
+0x17E7A	0x59F8
+0x17E7B	0x5C5B
+0x17E7C	0x5E77
+0x17E7D	0x7626
+0x17E7E	0x7E6B
 0x22121	0x20089
 0x22122	0x4E02
 0x22123	0x4E0F
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index d0e812e003..1bf24413b3 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -299,6 +299,7 @@ module	INTERNAL		ISO-8859-6//		ISO8859-6	1
 
 #	from			to			module		cost
 alias	ISO-IR-126//		ISO-8859-7//
+alias	ISO_8859-7:2003//	ISO-8859-7//
 alias	ISO_8859-7:1987//	ISO-8859-7//
 alias	ISO_8859-7//		ISO-8859-7//
 alias	ISO8859-7//		ISO-8859-7//
diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c
index 420b19ab80..8f05581c13 100644
--- a/iconvdata/ibm932.c
+++ b/iconvdata/ibm932.c
@@ -1,5 +1,5 @@
 /* Conversion from and to IBM932.
-   Copyright (C) 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Masahide Washizawa <washi@jp.ibm.com>, 2000.
 
@@ -169,20 +169,21 @@
 	high = (sizeof (__ucs4_to_ibm932db) >> 1)			      \
 		/ sizeof (__ucs4_to_ibm932db[0][FROM]);			      \
 	pccode = ch;							      \
-	while (low <= high)						      \
-	  {								      \
-	    i = (low + high) >> 1;					      \
-	    if (pccode < __ucs4_to_ibm932db[i][FROM])			      \
-	      high = i - 1;						      \
-	    else if (pccode > __ucs4_to_ibm932db[i][FROM])		      \
-	      low = i + 1;						      \
-	    else 							      \
-	      {								      \
-		pccode = __ucs4_to_ibm932db[i][TO];			      \
-		found = true;						      \
-		break;							      \
-	      }								      \
-	  }								      \
+	if (__builtin_expect (rp != NULL, 1))				      \
+	  while (low < high)						      \
+	    {								      \
+	      i = (low + high) >> 1;					      \
+	      if (pccode < __ucs4_to_ibm932db[i][FROM])			      \
+		high = i;						      \
+	      else if (pccode > __ucs4_to_ibm932db[i][FROM])		      \
+		low = i + 1;						      \
+	      else 							      \
+		{							      \
+		  pccode = __ucs4_to_ibm932db[i][TO];			      \
+		  found = true;						      \
+		  break;						      \
+		}							      \
+	    }								      \
 	if (found) 							      \
 	  {								      \
 	    if (__builtin_expect (outptr + 2 > outend, 0))		      \
diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c
index bf387bbc3e..daeac1d8b2 100644
--- a/iconvdata/ibm943.c
+++ b/iconvdata/ibm943.c
@@ -1,5 +1,5 @@
 /* Conversion from and to IBM943.
-   Copyright (C) 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Masahide Washizawa <washi@jp.ibm.com>, 2000.
 
@@ -170,20 +170,21 @@
 	high = (sizeof (__ucs4_to_ibm943db) >> 1)			      \
 		/ sizeof (__ucs4_to_ibm943db[0][FROM]);			      \
 	pccode = ch;							      \
-	while (low <= high)						      \
-	  {								      \
-	    i = (low + high) >> 1;					      \
-	    if (pccode < __ucs4_to_ibm943db[i][FROM])			      \
-	      high = i - 1;						      \
-	    else if (pccode > __ucs4_to_ibm943db[i][FROM])		      \
-	      low = i + 1;						      \
-	    else 							      \
-	      {								      \
-		pccode = __ucs4_to_ibm943db[i][TO];			      \
-		found = true;						      \
-		break;							      \
-	      }								      \
-	  }								      \
+	if (__builtin_expect (rp != NULL, 1))				      \
+	  while (low < high)						      \
+	    {								      \
+	      i = (low + high) >> 1;					      \
+	      if (pccode < __ucs4_to_ibm943db[i][FROM])			      \
+		high = i;						      \
+	      else if (pccode > __ucs4_to_ibm943db[i][FROM])		      \
+		low = i + 1;						      \
+	      else 							      \
+		{							      \
+		  pccode = __ucs4_to_ibm943db[i][TO];			      \
+		  found = true;						      \
+		  break;						      \
+		}							      \
+	    }								      \
 	if (found) 							      \
 	  {								      \
 	    if (__builtin_expect (outptr + 2 > outend, 0))		      \
diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c
index 2704a17b7f..bbccc2e965 100644
--- a/iconvdata/iso-2022-jp-3.c
+++ b/iconvdata/iso-2022-jp-3.c
@@ -1,5 +1,5 @@
 /* Conversion module for ISO-2022-JP-3.
-   Copyright (C) 1998-1999, 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2000-2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
    and Bruno Haible <bruno@clisp.org>, 2002.
@@ -61,8 +61,9 @@ enum
   JISX0208_1983_set = 2 << 3,	/* Esc $ B */
   JISX0201_Roman_set = 3 << 3,	/* Esc ( J */
   JISX0201_Kana_set = 4 << 3,	/* Esc ( I */
-  JISX0213_1_set = 5 << 3,	/* Esc $ ( O */
+  JISX0213_1_2000_set = 5 << 3,	/* Esc $ ( O */
   JISX0213_2_set = 6 << 3,	/* Esc $ ( P */
+  JISX0213_1_2004_set = 7 << 3,	/* Esc $ ( Q */
   CURRENT_SEL_MASK = 7 << 3
 };
 
@@ -211,10 +212,12 @@ enum
 	      }								      \
 	    else if (inptr[2] == '(')					      \
 	      {								      \
-		if (inptr[3] == 'O')					      \
+		if (inptr[3] == 'O' || inptr[3] == 'Q')			      \
 		  {							      \
 		    /* JIS X 0213 plane 1 selected.  */			      \
-		    set = JISX0213_1_set;				      \
+		    /* In this direction we don't need to distinguish the     \
+		       versions from 2000 and 2004. */			      \
+		    set = JISX0213_1_2004_set;				      \
 		    inptr += 4;						      \
 		    continue;						      \
 		  }							      \
@@ -274,7 +277,7 @@ enum
 	    STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
 	  }								      \
       }									      \
-    else /* (set == JISX0213_1_set || set == JISX0213_2_set) */		      \
+    else /* (set == JISX0213_1_2004_set || set == JISX0213_2_set) */	      \
       {									      \
 	if (__builtin_expect (inptr + 1 >= inend, 0))			      \
 	  {								      \
@@ -282,8 +285,9 @@ enum
 	    break;							      \
 	  }								      \
 									      \
-	ch = jisx0213_to_ucs4 (((set - JISX0213_1_set + (1 << 3)) << 5) + ch, \
-			       inptr[1]);				      \
+	ch = jisx0213_to_ucs4 (						      \
+	       ((JISX0213_1_2004_set - set + (1 << 3)) << 5) + ch,	      \
+	       inptr[1]);						      \
 	if (ch == 0)							      \
 	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
 									      \
@@ -408,7 +412,10 @@ static const struct
 	    /* We know the combined character is in JISX0213 plane 1,	      \
 	       but the buffered character may have been in JISX0208 or in     \
 	       JISX0213 plane 1.  */					      \
-	    size_t need = (lasttwo >> 16 || set != JISX0213_1_set ? 4 : 0);   \
+	    size_t need =						      \
+	      (lasttwo >> 16						      \
+	       || (set != JISX0213_1_2000_set && set != JISX0213_1_2004_set)  \
+	       ? 4 : 0);						      \
 									      \
 	    if (__builtin_expect (outptr + need + 2 > outend, 0))	      \
 	      {								      \
@@ -422,7 +429,7 @@ static const struct
 		*outptr++ = '$';					      \
 		*outptr++ = '(';					      \
 		*outptr++ = 'O';					      \
-		set = JISX0213_1_set;					      \
+		set = JISX0213_1_2000_set;				      \
 	      }								      \
 	    lasttwo = comp_table_data[idx].composed;			      \
 	    *outptr++ = (lasttwo >> 8) & 0xff;				      \
@@ -529,11 +536,16 @@ static const struct
       }									      \
     else								      \
       {									      \
-	/* (set == JISX0213_1_set || set == JISX0213_2_set) */		      \
+	/* (set == JISX0213_1_2000_set || set == JISX0213_1_2004_set	      \
+	    || set == JISX0213_2_set) */				      \
 	uint32_t jch = ucs4_to_jisx0213 (ch);				      \
 									      \
 	if (jch != 0							      \
-	    && (set == (jch & 0x8000 ? JISX0213_2_set : JISX0213_1_set)))     \
+	    && (jch & 0x8000						      \
+		? set == JISX0213_2_set					      \
+		: (set == JISX0213_1_2004_set				      \
+		   || (set == JISX0213_1_2000_set			      \
+		       && !jisx0213_added_in_2004_p (jch)))))		      \
 	  {								      \
 	    if (jch & 0x0080)						      \
 	      {								      \
@@ -658,7 +670,11 @@ static const struct
 		if (jch != 0)						      \
 		  {							      \
 		    int new_set =					      \
-		      (jch & 0x8000 ? JISX0213_2_set : JISX0213_1_set);	      \
+		      (jch & 0x8000					      \
+		       ? JISX0213_2_set					      \
+		       : jisx0213_added_in_2004_p (jch)			      \
+			 ? JISX0213_1_2004_set				      \
+			 : JISX0213_1_2000_set);			      \
 									      \
 		    if (set != new_set)					      \
 		      {							      \
@@ -670,7 +686,8 @@ static const struct
 			*outptr++ = ESC;				      \
 			*outptr++ = '$';				      \
 			*outptr++ = '(';				      \
-			*outptr++ = ((new_set - JISX0213_1_set) >> 3) + 'O';  \
+			*outptr++ =					      \
+			  ((new_set - JISX0213_1_2000_set) >> 3) + 'O';	      \
 			set = new_set;					      \
 		      }							      \
 									      \
diff --git a/iconvdata/jisx0213.c b/iconvdata/jisx0213.c
index 63aa700cb2..1e784a4d5f 100644
--- a/iconvdata/jisx0213.c
+++ b/iconvdata/jisx0213.c
@@ -1,5 +1,5 @@
 /* Mapping tables for JISX0213 character set.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Bruno Haible <bruno@clisp.org>, 2002.
 
@@ -22,7 +22,7 @@
 
 #include "jisx0213.h"
 
-/* JISX0213 plane 1 (= ISO-IR-228) characters are in the range
+/* JISX0213 plane 1 (= ISO-IR-233) characters are in the range
    0x{21..7E}{21..7E}.
    JISX0213 plane 2 (= ISO-IR-229) characters are in the range
    0x{21,23..25,28,2C..2F,6E..7E}{21..7E}.
@@ -160,7 +160,7 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x1000, 0x1001, 0x1002, 0x830c, 0x830e, 0x10fb, 0x831a, 0x831b,
   0x831f, 0x8301, 0x109b, 0x109c, 0x00b4, 0x8340, 0x00a8, 0x833e,
   0x83e3, 0x833f, 0x10fd, 0x10fe, 0x109d, 0x109e, 0x1003, 0x2edd,
-  0x1005, 0x1006, 0x1007, 0x10fc, 0x0715, 0x0710, 0x830f, 0x833c,
+  0x1005, 0x1006, 0x1007, 0x10fc, 0x0714, 0x0710, 0x830f, 0x833c,
   0x101c, 0x0716, 0x835c, 0x0726, 0x0725, 0x0718, 0x0719, 0x071c,
   0x071d, 0x8308, 0x8309, 0x1014, 0x1015, 0x833b, 0x833d, 0x835b,
   0x835d, 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e,
@@ -186,7 +186,7 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x0cb7, 0x0cb6, 0x0cc1, 0x0cc0, 0x0897, 0x0898, 0x0896, 0x0899,
   0x08c4, 0x08e8, 0x08e6, 0x08e7, 0x08e9, 0x0f34, 0x0f35, 0x8310,
   0x8311, 0x8312, 0x8313, 0x8314, 0x8315, 0x8316, 0x8317, 0x8318,
-  0x8319, 0x0999, 0x0cc9, 0x103d, 0x8246, 0x8245, 0x0ce6, 0x0722,
+  0x8319, 0x0fbf, 0x0cc9, 0x103d, 0x8246, 0x8245, 0x0ce6, 0x0722,
   0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, 0x8327, 0x8328,
   0x8329, 0x832a, 0x832b, 0x832c, 0x832d, 0x832e, 0x832f, 0x8330,
   0x8331, 0x8332, 0x8333, 0x8334, 0x8335, 0x8336, 0x8337, 0x8338,
@@ -326,7 +326,7 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x0000, 0x0000, 0x092e, 0x0000, 0x0000, 0x0000, 0x0000, 0x091f,
   0x09bf, 0x0000, 0x0000, 0x0000, 0x0e56, 0x0d1e,
   /* 0x12E21..0x12E7E */
-  0x0000, 0x840b, 0x1402, 0x2e28, 0x2e2f, 0x2e30, 0x2e8d, 0x2ee1,
+  0x2ff1, 0x840b, 0x1402, 0x2e28, 0x2e2f, 0x2e30, 0x2e8d, 0x2ee1,
   0x2efd, 0x2eff, 0x2f03, 0x2f0b, 0x2f60, 0x2f48, 0x2f49, 0x2f56,
   0x2f5f, 0x2f6a, 0x2f6c, 0x2f7e, 0x2f8a, 0x2f94, 0x2f97, 0x8130,
   0x2fc9, 0x2fe0, 0x3001, 0x3002, 0x300e, 0x3018, 0x3027, 0x302e,
@@ -343,14 +343,14 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x3581, 0x3586, 0x358e, 0x8136, 0x35ad, 0x35ce, 0x8137, 0x3608,
   0x360e, 0x363b, 0x3649, 0x3676, 0x3666, 0x8138, 0x366f, 0x3671,
   0x3672, 0x3699, 0x369e, 0x36a9, 0x36ac, 0x36b3, 0x36c9, 0x36ca,
-  0x370a, 0x913d, 0x3721, 0x372f, 0x3733, 0x3734, 0x3770, 0x3777,
-  0x377c, 0x379c, 0x810f, 0x921b, 0x37b8, 0x37c7, 0x37c8, 0x37cf,
+  0x370a, 0x923d, 0x3721, 0x372f, 0x3733, 0x3734, 0x3770, 0x3777,
+  0x377c, 0x379c, 0x810f, 0x931b, 0x37b8, 0x37c7, 0x37c8, 0x37cf,
   0x37e4, 0x37ed, 0x37f5, 0x37f6, 0x37ff, 0x3809, 0x8110, 0x3861,
-  0x3864, 0x8139, 0x387c, 0x3889, 0x389e, 0x813a, 0x38a9, 0x936e,
+  0x3864, 0x8139, 0x387c, 0x3889, 0x389e, 0x813a, 0x38a9, 0x946e,
   0x38d2, 0x38ce, 0x38d4, 0x38da, 0x38e0, 0x38e9, 0x390c, 0x6641,
   0x395d, 0x396d, 0x398b, 0x3992, 0x39a4, 0x39c3, 0x39d2, 0x39dd,
   0x3a13, 0x3a23, 0x3a67, 0x3a6d, 0x3a77, 0x3a7e, 0x3a84, 0x3a9e,
-  0x3aa7, 0x3ac4, 0x97bd, 0x3b19, 0x3b25, 0x0000,
+  0x3aa7, 0x3ac4, 0x98bd, 0x3b19, 0x3b25, 0x325d,
   /* 0x13021..0x1307E */
   0x2e9c, 0x3516, 0x3a03, 0x763f, 0x34c0, 0x411b, 0x4328, 0x39f6,
   0x7022, 0x6475, 0x631c, 0x5a50, 0x40aa, 0x43e1, 0x4e25, 0x45ed,
@@ -761,12 +761,12 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x674b, 0x70ce, 0x316d, 0x7e93, 0x5984, 0x608b, 0x7332, 0x6ad6,
   0x302d, 0x348c, 0x6a71, 0x4b6a, 0x6cc4, 0x6107, 0x40d1, 0x47a0,
   0x7df2, 0x2e99, 0x2e98, 0x7c10, 0x6a6b, 0x65c1, 0x6568, 0x4900,
-  0x4e7e, 0x5897, 0x6155, 0x0000, 0x3b41, 0x3b56, 0x3b7d, 0x3b93,
+  0x4e7e, 0x5897, 0x6155, 0x8e9f, 0x3b41, 0x3b56, 0x3b7d, 0x3b93,
   0x3bd8, 0x3bec, 0x3c12, 0x3c1e, 0x3c23, 0x3c2b, 0x178d, 0x3c62,
-  0x813b, 0x813c, 0x95b4, 0x3c7a, 0x3c8f, 0x3c9f, 0x3ca3, 0x3caa,
-  0x3cba, 0x3ccb, 0x3cd0, 0x3cd2, 0x3cf4, 0x9b34, 0x17e2, 0x3d0d,
+  0x813b, 0x813c, 0x96b4, 0x3c7a, 0x3c8f, 0x3c9f, 0x3ca3, 0x3caa,
+  0x3cba, 0x3ccb, 0x3cd0, 0x3cd2, 0x3cf4, 0x9c34, 0x17e2, 0x3d0d,
   0x3d27, 0x8111, 0x3d46, 0x3d47, 0x3d53, 0x3d4a, 0x3d6d, 0x3d81,
-  0x3da0, 0x3da4, 0x3da7, 0x3db8, 0x3dcb, 0x0000,
+  0x3da0, 0x3da4, 0x3da7, 0x3db8, 0x3dcb, 0x341e,
   /* 0x15021..0x1507E */
   0x3f0c, 0x2e10, 0x2e15, 0x2e2a, 0x2e31, 0x2e36, 0x2e3c, 0x2e3f,
   0x2e42, 0x2e56, 0x2e58, 0x2e82, 0x2e85, 0x6c6b, 0x2e8a, 0x6212,
@@ -1236,7 +1236,7 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x7f63, 0x7f5f, 0x7f60, 0x7f61, 0x7f66, 0x7f67, 0x7f6c, 0x7f6a,
   0x7f77, 0x7f72, 0x7f76, 0x7f95, 0x7f9c, 0x7fa0,
   /* 0x17421..0x1747E */
-  0x382f, 0x49c7, 0x7059, 0x5464, 0x31dc, 0x5199, 0x0000, 0x3de2,
+  0x382f, 0x49c7, 0x7059, 0x5464, 0x31dc, 0x5199, 0x3653, 0x3de2,
   0x3e14, 0x3e18, 0x3e58, 0x3e5e, 0x3ebe, 0x8028, 0x3ecb, 0x3ef9,
   0x3f00, 0x3f02, 0x3f07, 0x3f1d, 0x3f23, 0x3f34, 0x3f36, 0x3f3d,
   0x3f40, 0x3f45, 0x3f54, 0x3f58, 0x3f64, 0x3f67, 0x3f7d, 0x3f89,
@@ -1252,24 +1252,24 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x44c4, 0x44ca, 0x44d0, 0x44f7, 0x44fb, 0x4522, 0x4529, 0x8141,
   0x4567, 0x459d, 0x8142, 0x4600, 0x4609, 0x4615, 0x461e, 0x463a,
   0x4622, 0x4624, 0x462b, 0x4630, 0x4631, 0x4633, 0x46fb, 0x4648,
-  0x464c, 0xa7c4, 0x4659, 0x465a, 0x4661, 0x4665, 0x4673, 0x4677,
+  0x464c, 0xa8c4, 0x4659, 0x465a, 0x4661, 0x4665, 0x4673, 0x4677,
   0x4678, 0x468d, 0x8143, 0x46a0, 0x46b2, 0x46bb, 0x46c6, 0x46c8,
   0x1b22, 0x46db, 0x46e8, 0x46fa, 0x4713, 0x8029, 0x4733, 0x4766,
   0x4747, 0x4748, 0x477b, 0x4781, 0x4793, 0x4798, 0x479b, 0x47bb,
   0x47f9, 0x47c0, 0x47d7, 0x47fc, 0x4801, 0x4852, 0x481d, 0x482c,
   0x4831, 0x485b, 0x4872, 0x4875, 0x8144, 0x48a3, 0x48a5, 0x48b2,
   0x48c8, 0x48d0, 0x48e8, 0x48ed, 0x48f0, 0x48f1, 0x48fc, 0x490a,
-  0x4949, 0xaac4, 0x4935, 0x4942, 0x4957, 0x4963, 0x4964, 0x4968,
+  0x4949, 0xabc4, 0x4935, 0x4942, 0x4957, 0x4963, 0x4964, 0x4968,
   0x4980, 0x8114, 0x49a5, 0x49ad, 0x49cf, 0x1bb6,
   /* 0x17621..0x1767E */
   0x1bc3, 0x49e2, 0x49e9, 0x49ea, 0x49f5, 0x49f6, 0x4a0f, 0x4a15,
-  0xac3f, 0x4a3b, 0x4a3e, 0x4a45, 0x4a50, 0x4a56, 0x4a5b, 0x4a6b,
-  0x4a73, 0xac63, 0x4a89, 0x4a94, 0x4a9d, 0x4a9e, 0x4aa5, 0x4ae4,
+  0xad3f, 0x4a3b, 0x4a3e, 0x4a45, 0x4a50, 0x4a56, 0x4a5b, 0x4a6b,
+  0x4a73, 0xad63, 0x4a89, 0x4a94, 0x4a9d, 0x4a9e, 0x4aa5, 0x4ae4,
   0x4ae7, 0x1c0f, 0x801d, 0x4b1b, 0x4b1e, 0x4b2c, 0x4b35, 0x4b46,
   0x4b56, 0x4b60, 0x4b65, 0x4b67, 0x4b77, 0x4b82, 0x4ba9, 0x4bad,
   0x8070, 0x4bcf, 0x4bd6, 0x4bd7, 0x4bff, 0x4c05, 0x4c10, 0x4c33,
   0x4c59, 0x4c5c, 0x4caa, 0x4c74, 0x4c76, 0x4c85, 0x4c86, 0x4c98,
-  0x4c9c, 0x4cfb, 0x4cc6, 0x4cd4, 0x4ce0, 0x4ceb, 0x4cee, 0xaffe,
+  0x4c9c, 0x4cfb, 0x4cc6, 0x4cd4, 0x4ce0, 0x4ceb, 0x4cee, 0xb0fe,
   0x4d04, 0x4d0e, 0x4d2e, 0x4d31, 0x4d39, 0x4d3f, 0x4d58, 0x4d65,
   0x8145, 0x4d82, 0x4d87, 0x4d89, 0x4d94, 0x4daa, 0x4dac, 0x4dbf,
   0x4dc4, 0x4dd6, 0x4dda, 0x4ddb, 0x4ddd, 0x4dfc, 0x8146, 0x4e34,
@@ -1284,7 +1284,7 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x5130, 0x5146, 0x5147, 0x5151, 0x8148, 0x5152, 0x515c, 0x5160,
   0x5168, 0x8115, 0x5185, 0x5187, 0x5192, 0x51c1, 0x51ba, 0x51c4,
   0x51fe, 0x5200, 0x5215, 0x5255, 0x5256, 0x1e3f, 0x528d, 0x529b,
-  0x52be, 0x52c0, 0x52fb, 0xb6f1, 0x5327, 0x5328, 0x8116, 0x5350,
+  0x52be, 0x52c0, 0x52fb, 0xb7f1, 0x5327, 0x5328, 0x8116, 0x5350,
   0x5366, 0x537c, 0x5395, 0x539f, 0x53a0, 0x53a2, 0x53a6, 0x53ab,
   0x53c9, 0x53cf, 0x53d6, 0x53d9, 0x53e3, 0x53e9,
   /* 0x17821..0x1787E */
@@ -1299,18 +1299,18 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x569b, 0x569d, 0x569e, 0x56a6, 0x56aa, 0x56b6, 0x56c5, 0x56cc,
   0x56ce, 0x56d4, 0x56e6, 0x56f1, 0x56fc, 0x570a, 0x5719, 0x5734,
   0x5736, 0x5746, 0x574d, 0x574e, 0x575c, 0x575f, 0x5762, 0x577a,
-  0x5780, 0x5794, 0x57aa, 0x57e0, 0x582d, 0xc08e,
+  0x5780, 0x5794, 0x57aa, 0x57e0, 0x582d, 0xc18e,
   /* 0x17921..0x1797E */
   0x5843, 0x584e, 0x584f, 0x5851, 0x5868, 0x586e, 0x814b, 0x58b0,
-  0xc10e, 0x58ad, 0x58e4, 0x58f2, 0x5900, 0x58f7, 0x591c, 0x592e,
+  0xc20e, 0x58ad, 0x58e4, 0x58f2, 0x5900, 0x58f7, 0x591c, 0x592e,
   0x5931, 0x5934, 0x814c, 0x814d, 0x5945, 0x5946, 0x814e, 0x814f,
   0x8150, 0x595c, 0x8151, 0x8119, 0x811a, 0x5979, 0x8152, 0x8153,
-  0x811b, 0x5998, 0x59b1, 0x59b8, 0x59c8, 0x59ca, 0xc271, 0x59d4,
+  0x811b, 0x5998, 0x59b1, 0x59b8, 0x59c8, 0x59ca, 0xc371, 0x59d4,
   0x59de, 0x59eb, 0x59ed, 0x5a03, 0x8154, 0x5a39, 0x5a5d, 0x5a6d,
-  0x8155, 0x5a85, 0x5aa0, 0xc3c4, 0x5ab3, 0x5abb, 0x5ace, 0x5aeb,
+  0x8155, 0x5a85, 0x5aa0, 0xc4c4, 0x5ab3, 0x5abb, 0x5ace, 0x5aeb,
   0x5afd, 0x5b12, 0x5b2d, 0x5b3b, 0x5b47, 0x5b4e, 0x5b60, 0x5b6d,
   0x5b6f, 0x5b72, 0x5b9e, 0x8156, 0x5bd7, 0x5bd9, 0x5c01, 0x5c31,
-  0x5c1e, 0x5c20, 0x5c33, 0x5c36, 0x2264, 0xc6a1, 0x5c59, 0x5c6d,
+  0x5c1e, 0x5c20, 0x5c33, 0x5c36, 0x2264, 0xc7a1, 0x5c59, 0x5c6d,
   0x5c79, 0x5c8f, 0x5c94, 0x5ca0, 0x5cbc, 0x5cd5, 0x5cd9, 0x5cdd,
   0x5d07, 0x5d08, 0x5d13, 0x5d1d, 0x5d23, 0x5d31,
   /* 0x17A21..0x17A7E */
@@ -1321,7 +1321,7 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x5fec, 0x5fee, 0x5ffa, 0x815b, 0x6014, 0x6026, 0x6035, 0x6037,
   0x603c, 0x60ca, 0x60d7, 0x60e0, 0x60f3, 0x6118, 0x614a, 0x6160,
   0x6167, 0x6168, 0x616d, 0x61bb, 0x61ca, 0x61cf, 0x61d7, 0x815c,
-  0x2453, 0x245b, 0x6260, 0x6274, 0xd1ff, 0x628e, 0x62a1, 0x62a3,
+  0x2453, 0x245b, 0x6260, 0x6274, 0xd2ff, 0x628e, 0x62a1, 0x62a3,
   0x62a4, 0x62a9, 0x62ae, 0x62b7, 0x62be, 0x62bf, 0x62c6, 0x62d5,
   0x62fd, 0x62fe, 0x6300, 0x6301, 0x6362, 0x6322, 0x632d, 0x633a,
   0x6343, 0x6347, 0x6351, 0x6355, 0x637d, 0x6386, 0x6392, 0x6398,
@@ -1329,14 +1329,14 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   /* 0x17B21..0x17B7E */
   0x63d1, 0x63e1, 0x63ea, 0x6401, 0x6406, 0x640a, 0x815f, 0x6448,
   0x645f, 0x6470, 0x6473, 0x6485, 0x649e, 0x64af, 0x64b4, 0x64ba,
-  0x64c0, 0x64c2, 0xd340, 0x6532, 0x651e, 0x6523, 0x652f, 0x6559,
+  0x64c0, 0x64c2, 0xd440, 0x6532, 0x651e, 0x6523, 0x652f, 0x6559,
   0x6564, 0x811f, 0x65ad, 0x657a, 0x658c, 0x658f, 0x65a2, 0x65b0,
   0x65cb, 0x65ce, 0x65ed, 0x6612, 0x65ff, 0x6604, 0x6605, 0x6610,
-  0xd574, 0x6618, 0x6629, 0x6638, 0x6657, 0x665b, 0x8036, 0x6662,
+  0xd674, 0x6618, 0x6629, 0x6638, 0x6657, 0x665b, 0x8036, 0x6662,
   0x259d, 0x666c, 0x6675, 0x6698, 0x66b8, 0x66fa, 0x66fc, 0x66fd,
   0x670b, 0x6771, 0x6787, 0x6788, 0x67ac, 0x67ad, 0x67b5, 0x25ea,
   0x67d6, 0x67ec, 0x6806, 0x680a, 0x6810, 0x6814, 0x681f, 0x6898,
-  0x68aa, 0x68ca, 0x68ce, 0xd784, 0x68f5, 0x691c, 0x8160, 0x6918,
+  0x68aa, 0x68ca, 0x68ce, 0xd884, 0x68f5, 0x691c, 0x8160, 0x6918,
   0x6919, 0x691a, 0x6927, 0x6930, 0x6932, 0x6939, 0x6940, 0x6994,
   0x8161, 0x69d4, 0x69e5, 0x69f6, 0x6a12, 0x6a15,
   /* 0x17C21..0x17C7E */
@@ -1345,8 +1345,8 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x6b46, 0x6b54, 0x6b59, 0x6b69, 0x6b9d, 0x6c49, 0x6c68, 0x8164,
   0x6ce1, 0x6cf4, 0x6cf8, 0x6cfe, 0x8165, 0x6d12, 0x6d1b, 0x6daf,
   0x6dce, 0x6dd1, 0x6dd7, 0x6e20, 0x6e23, 0x6e3d, 0x6e70, 0x6e7b,
-  0xe077, 0x6ec0, 0x2844, 0x6efa, 0x6f1e, 0x6f2d, 0x6f36, 0x6f54,
-  0xe14d, 0x6fa6, 0x6fb5, 0x6fe4, 0x6fe8, 0x6fee, 0x7008, 0x702d,
+  0xe177, 0x6ec0, 0x2844, 0x6efa, 0x6f1e, 0x6f2d, 0x6f36, 0x6f54,
+  0xe24d, 0x6fa6, 0x6fb5, 0x6fe4, 0x6fe8, 0x6fee, 0x7008, 0x702d,
   0x8167, 0x7088, 0x7095, 0x7097, 0x7099, 0x709b, 0x70a2, 0x70b3,
   0x70be, 0x70c4, 0x70c5, 0x70c7, 0x70d7, 0x70dd, 0x70de, 0x70ef,
   0x70f4, 0x8126, 0x7114, 0x7115, 0x7116, 0x7122, 0x7123, 0x7127,
@@ -1374,10 +1374,10 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x7ba7, 0x7bc1, 0x7bce, 0x7be5, 0x7bf8, 0x7bfd, 0x7c00, 0x7c23,
   0x7c41, 0x7c4f, 0x7c50, 0x7c53, 0x7c63, 0x7c65, 0x7c77, 0x7d1d,
   0x7d1e, 0x7d43, 0x7d47, 0x7d52, 0x7d63, 0x7d70, 0x7d7c, 0x7d8a,
-  0x7d96, 0x7dc0, 0x7dac, 0x7dbc, 0x7dd7, 0xf590, 0x7de7, 0x7e07,
+  0x7d96, 0x7dc0, 0x7dac, 0x7dbc, 0x7dd7, 0xf690, 0x7de7, 0x7e07,
   0x7e15, 0x7e7c, 0x7e9e, 0x7ea4, 0x7eac, 0x7eaf, 0x7eb4, 0x7eb5,
   0x7ec3, 0x7ed1, 0x7f10, 0x7f39, 0x7f57, 0x7f90, 0x7f94, 0x7f97,
-  0x7fa2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x7fa2, 0x39f8, 0x3c5b, 0x3e77, 0x5626, 0x5e6b,
   /* 0x22121..0x2217E */
   0x8489, 0x2e02, 0x2e0f, 0x2e12, 0x2e29, 0x2e2b, 0x2e2e, 0x2e40,
   0x2e47, 0x2e48, 0x84a2, 0x2e51, 0x1406, 0x84a4, 0x2e5a, 0x2e69,
@@ -1399,111 +1399,111 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   0x8b3a, 0x32a4, 0x32a6, 0x32af, 0x32ba, 0x32bb, 0x32ca, 0x151f,
   0x32d1, 0x8bb9, 0x32f7, 0x330a, 0x330b, 0x3324, 0x3335, 0x333e,
   0x3342, 0x8c7c, 0x8c9d, 0x3367, 0x336c, 0x337a, 0x33a4, 0x33b4,
-  0x8d53, 0x33b7, 0x33c0, 0x8d9d, 0x155d, 0x155e, 0x33d5, 0x33da,
+  0x8dd3, 0x33b7, 0x33c0, 0x8e1d, 0x155d, 0x155e, 0x33d5, 0x33da,
   0x1563, 0x33f4, 0x33f5, 0x3455, 0x3424, 0x3428, 0x156e, 0x3443,
   0x3462, 0x3466, 0x346c, 0x348a, 0x348d, 0x3495, 0x34a0, 0x34a6,
-  0x34ad, 0x34ae, 0x34b7, 0x34ba, 0x34bf, 0x34c3, 0x8e45, 0x34ec,
+  0x34ad, 0x34ae, 0x34b7, 0x34ba, 0x34bf, 0x34c3, 0x8f45, 0x34ec,
   0x34ef, 0x34f1, 0x34f3, 0x3500, 0x3501, 0x3509,
   /* 0x22421..0x2247E */
   0x353c, 0x3541, 0x15a6, 0x3547, 0x354a, 0x15a8, 0x3560, 0x3561,
-  0x3564, 0x8ee1, 0x357d, 0x3582, 0x3588, 0x3591, 0x15c5, 0x35d2,
-  0x8f95, 0x8f6d, 0x35bf, 0x35c9, 0x35cc, 0x35d1, 0x35dd, 0x15da,
-  0x35e2, 0x8f64, 0x35e9, 0x3628, 0x905f, 0x3607, 0x3610, 0x3630,
+  0x3564, 0x8fe1, 0x357d, 0x3582, 0x3588, 0x3591, 0x15c5, 0x35d2,
+  0x9095, 0x906d, 0x35bf, 0x35c9, 0x35cc, 0x35d1, 0x35dd, 0x15da,
+  0x35e2, 0x9064, 0x35e9, 0x3628, 0x915f, 0x3607, 0x3610, 0x3630,
   0x3637, 0x15f4, 0x363d, 0x363f, 0x3640, 0x3647, 0x365e, 0x3660,
   0x366d, 0x1605, 0x3688, 0x368c, 0x3695, 0x369a, 0x369d, 0x36a8,
   0x36ad, 0x36b2, 0x36c5, 0x36cd, 0x36df, 0x36e8, 0x36f6, 0x36f7,
-  0x9101, 0x3715, 0x3723, 0x9155, 0x3729, 0x917b, 0x3745, 0x3746,
-  0x374c, 0x374d, 0x9174, 0x3768, 0x376f, 0x3773, 0x3774, 0x3775,
-  0x377b, 0x91e4, 0x91d7, 0x37ac, 0x379a, 0x379d, 0x379e, 0x37a8,
-  0x37d7, 0x91fd, 0x37cc, 0x9236, 0x9244, 0x37de, 0x37e6, 0x37f0,
+  0x9201, 0x3715, 0x3723, 0x9255, 0x3729, 0x927b, 0x3745, 0x3746,
+  0x374c, 0x374d, 0x9274, 0x3768, 0x376f, 0x3773, 0x3774, 0x3775,
+  0x377b, 0x92e4, 0x92d7, 0x37ac, 0x379a, 0x379d, 0x379e, 0x37a8,
+  0x37d7, 0x92fd, 0x37cc, 0x9336, 0x9344, 0x37de, 0x37e6, 0x37f0,
   0x164a, 0x37f8, 0x37fb, 0x37fd, 0x3804, 0x381e,
   /* 0x22521..0x2257E */
-  0x3820, 0x3827, 0x3832, 0x3839, 0x92c4, 0x3849, 0x384c, 0x3867,
+  0x3820, 0x3827, 0x3832, 0x3839, 0x93c4, 0x3849, 0x384c, 0x3867,
   0x388a, 0x388b, 0x388d, 0x388f, 0x3890, 0x3894, 0x389d, 0x38aa,
-  0x38b1, 0x936d, 0x38c3, 0x38cd, 0x38e2, 0x38f3, 0x38f4, 0x3905,
-  0x3906, 0x390b, 0x390d, 0x3914, 0x3924, 0x94d7, 0x1691, 0x393d,
-  0x1699, 0x3946, 0x1696, 0xd229, 0x395b, 0x395f, 0x9547, 0x3975,
+  0x38b1, 0x946d, 0x38c3, 0x38cd, 0x38e2, 0x38f3, 0x38f4, 0x3905,
+  0x3906, 0x390b, 0x390d, 0x3914, 0x3924, 0x95d7, 0x1691, 0x393d,
+  0x1699, 0x3946, 0x1696, 0xd329, 0x395b, 0x395f, 0x9647, 0x3975,
   0x3976, 0x397c, 0x399f, 0x39ae, 0x39bc, 0x39c8, 0x39cd, 0x39de,
-  0x39e3, 0x39e4, 0x39e7, 0x39ee, 0x9606, 0x9642, 0x16cf, 0x3a0c,
+  0x39e3, 0x39e4, 0x39e7, 0x39ee, 0x9706, 0x9742, 0x16cf, 0x3a0c,
   0x3a0d, 0x3a17, 0x3a27, 0x3a2d, 0x3a55, 0x3a65, 0x3a7a, 0x3a8b,
   0x3a9c, 0x3a9f, 0x3aa0, 0x3aa2, 0x3ab1, 0x3ab3, 0x3ab5, 0x3aba,
   0x3abf, 0x3ada, 0x3adc, 0x3ae0, 0x3ae5, 0x3af0, 0x3aee, 0x3af5,
   0x3b00, 0x3b08, 0x3b17, 0x3b34, 0x3b2d, 0x3b4c, 0x3b52, 0x3b68,
-  0x3b6f, 0x3b7c, 0x3b7f, 0x3b81, 0x3b84, 0x98c3,
+  0x3b6f, 0x3b7c, 0x3b7f, 0x3b81, 0x3b84, 0x99c3,
   /* 0x22821..0x2287E */
   0x3b96, 0x3bac, 0x1761, 0x3bc0, 0x1762, 0x3bce, 0x3bd6, 0x176c,
-  0x176b, 0x3bf1, 0x3bfd, 0x1775, 0x3c03, 0x3c29, 0x3c30, 0x9956,
-  0x3c5f, 0x3c63, 0x3c67, 0x3c68, 0x3c69, 0x3c70, 0x9a2d, 0x9a45,
-  0x3c7c, 0x9a78, 0x9a62, 0x3c88, 0x3c8a, 0x17c1, 0x9aa1, 0x9a9c,
-  0x3ca0, 0x3ca2, 0x3ca6, 0x3ca7, 0x9a92, 0x3cad, 0x3cb5, 0x9ab7,
-  0x3cc9, 0x9ae0, 0x9b33, 0x3d06, 0x3d10, 0x3d2b, 0x3d1d, 0x3d20,
+  0x176b, 0x3bf1, 0x3bfd, 0x1775, 0x3c03, 0x3c29, 0x3c30, 0x9a56,
+  0x3c5f, 0x3c63, 0x3c67, 0x3c68, 0x3c69, 0x3c70, 0x9b2d, 0x9b45,
+  0x3c7c, 0x9b78, 0x9b62, 0x3c88, 0x3c8a, 0x17c1, 0x9ba1, 0x9b9c,
+  0x3ca0, 0x3ca2, 0x3ca6, 0x3ca7, 0x9b92, 0x3cad, 0x3cb5, 0x9bb7,
+  0x3cc9, 0x9be0, 0x9c33, 0x3d06, 0x3d10, 0x3d2b, 0x3d1d, 0x3d20,
   0x3d24, 0x3d26, 0x3d31, 0x3d39, 0x3d42, 0x17e8, 0x3d61, 0x3d6a,
-  0x17f4, 0x3d70, 0x9c1e, 0x17fd, 0x3d88, 0x1800, 0x3d92, 0x3d94,
-  0x3d97, 0x3d99, 0x3db0, 0x3db2, 0x3db4, 0x9c76, 0x3db9, 0x3dd1,
-  0x3dd7, 0x3dd8, 0x3de0, 0x9cfa, 0x3de4, 0x3de9, 0x182f, 0x3e00,
+  0x17f4, 0x3d70, 0x9d1e, 0x17fd, 0x3d88, 0x1800, 0x3d92, 0x3d94,
+  0x3d97, 0x3d99, 0x3db0, 0x3db2, 0x3db4, 0x9d76, 0x3db9, 0x3dd1,
+  0x3dd7, 0x3dd8, 0x3de0, 0x9dfa, 0x3de4, 0x3de9, 0x182f, 0x3e00,
   0x1836, 0x3e12, 0x3e15, 0x1840, 0x3e1f, 0x3e2e, 0x3e3e, 0x3e49,
   0x185c, 0x3e56, 0x1861, 0x3e6b, 0x3e6c, 0x3e6d,
   /* 0x22C21..0x22C7E */
-  0x3e6e, 0x9d7b, 0x3ea5, 0x3eaa, 0x3eac, 0x3eb9, 0x3ebf, 0x3ec6,
-  0x3ed2, 0x3ed9, 0x9f1e, 0x3efd, 0x3f08, 0x3f0e, 0x3f1c, 0x9fad,
+  0x3e6e, 0x9e7b, 0x3ea5, 0x3eaa, 0x3eac, 0x3eb9, 0x3ebf, 0x3ec6,
+  0x3ed2, 0x3ed9, 0xa01e, 0x3efd, 0x3f08, 0x3f0e, 0x3f1c, 0xa0ad,
   0x3f1e, 0x3f47, 0x3f63, 0x3f72, 0x3f7e, 0x3f8f, 0x3fa2, 0x3fa4,
   0x3fb8, 0x3fc4, 0x18fa, 0x3fc7, 0x3fcb, 0x3fd2, 0x3fd3, 0x3fd4,
   0x3fe2, 0x3fee, 0x3fef, 0x3ff3, 0x3ffc, 0x1917, 0x4017, 0x4022,
-  0x4024, 0x191a, 0x404c, 0x407f, 0x408a, 0x4095, 0x40a8, 0xa0f3,
+  0x4024, 0x191a, 0x404c, 0x407f, 0x408a, 0x4095, 0x40a8, 0xa1f3,
   0x40b0, 0x40b1, 0x40be, 0x40c8, 0x40d9, 0x40db, 0x40ee, 0x40f2,
   0x40f5, 0x4110, 0x4112, 0x4113, 0x4119, 0x411e, 0x413a, 0x196f,
-  0x4141, 0x4146, 0x4160, 0x417c, 0xa15b, 0x4192, 0x4193, 0x4197,
-  0x4198, 0x41a5, 0x41a8, 0x41ad, 0xa1ab, 0x41d5, 0x41dd, 0x41df,
-  0x41f5, 0xa28f, 0x4215, 0x4223, 0x4229, 0x4246, 0x424c, 0x4251,
+  0x4141, 0x4146, 0x4160, 0x417c, 0xa25b, 0x4192, 0x4193, 0x4197,
+  0x4198, 0x41a5, 0x41a8, 0x41ad, 0xa2ab, 0x41d5, 0x41dd, 0x41df,
+  0x41f5, 0xa38f, 0x4215, 0x4223, 0x4229, 0x4246, 0x424c, 0x4251,
   0x4252, 0x4261, 0x4264, 0x427b, 0x426d, 0x4273,
   /* 0x22D21..0x22D7E */
-  0x4299, 0x42a6, 0x42d5, 0xa3b8, 0x42fd, 0x4303, 0x430d, 0x4310,
-  0xa44f, 0xa450, 0x4332, 0x4335, 0x433b, 0x433c, 0x4341, 0x4344,
-  0x434e, 0xa446, 0x4359, 0xa51d, 0xa4a6, 0x436c, 0x4384, 0x4399,
-  0xa524, 0x4394, 0x43bd, 0x43f7, 0x43d4, 0x43d5, 0x43dc, 0x43e0,
+  0x4299, 0x42a6, 0x42d5, 0xa4b8, 0x42fd, 0x4303, 0x430d, 0x4310,
+  0xa54f, 0xa550, 0x4332, 0x4335, 0x433b, 0x433c, 0x4341, 0x4344,
+  0x434e, 0xa546, 0x4359, 0xa61d, 0xa5a6, 0x436c, 0x4384, 0x4399,
+  0xa624, 0x4394, 0x43bd, 0x43f7, 0x43d4, 0x43d5, 0x43dc, 0x43e0,
   0x43eb, 0x43ec, 0x43f2, 0x4409, 0x441e, 0x4425, 0x4429, 0x442f,
   0x445a, 0x445b, 0x445d, 0x4473, 0x447d, 0x4487, 0x4491, 0x449d,
-  0x449f, 0x44cb, 0x44cc, 0x44d5, 0x44d7, 0xa6e1, 0x44e4, 0x44e5,
+  0x449f, 0x44cb, 0x44cc, 0x44d5, 0x44d7, 0xa7e1, 0x44e4, 0x44e5,
   0x44ff, 0x4504, 0x1a6e, 0x450f, 0x4514, 0x4516, 0x1a73, 0x451e,
   0x4532, 0x4544, 0x4554, 0x456b, 0x457a, 0x4581, 0x4584, 0x4585,
   0x458a, 0x45b2, 0x45b5, 0x45b8, 0x45bf, 0x45c2, 0x45c9, 0x45d4,
   0x1ad6, 0x45f2, 0x45f9, 0x45fc, 0x4604, 0x4608, 0x4621, 0x462a,
-  0x4645, 0x4651, 0x464e, 0x1aea, 0xa7c3, 0x4657,
+  0x4645, 0x4651, 0x464e, 0x1aea, 0xa8c3, 0x4657,
   /* 0x22E21..0x22E7E */
-  0x465b, 0x4663, 0xa7f5, 0xa7b6, 0x466a, 0x466b, 0x466c, 0x466d,
+  0x465b, 0x4663, 0xa8f5, 0xa8b6, 0x466a, 0x466b, 0x466c, 0x466d,
   0x467b, 0x4680, 0x4690, 0x4692, 0x4699, 0x1b0e, 0x46ad, 0x46b1,
   0x46b5, 0x1b1a, 0x46bf, 0x1b1c, 0x46ec, 0x1ad7, 0x4701, 0x4705,
-  0x4712, 0xa872, 0x4719, 0xa8d3, 0xa8d2, 0x474c, 0x474d, 0x4754,
-  0x475d, 0xa8d0, 0xa8e4, 0xa8d5, 0x4774, 0x4776, 0xa8da, 0x4792,
-  0xa8df, 0x6363, 0x4810, 0x47b0, 0x47b2, 0x47c3, 0x47c8, 0x47d2,
-  0x47d9, 0x47db, 0x47f0, 0x47f7, 0xa94a, 0xa951, 0xa94b, 0x4818,
-  0x481f, 0x482d, 0xa965, 0x4833, 0x483b, 0x483e, 0x4844, 0x4845,
+  0x4712, 0xa972, 0x4719, 0xa9d3, 0xa9d2, 0x474c, 0x474d, 0x4754,
+  0x475d, 0xa9d0, 0xa9e4, 0xa9d5, 0x4774, 0x4776, 0xa9da, 0x4792,
+  0xa9df, 0x6363, 0x4810, 0x47b0, 0x47b2, 0x47c3, 0x47c8, 0x47d2,
+  0x47d9, 0x47db, 0x47f0, 0x47f7, 0xaa4a, 0xaa51, 0xaa4b, 0x4818,
+  0x481f, 0x482d, 0xaa65, 0x4833, 0x483b, 0x483e, 0x4844, 0x4845,
   0x4849, 0x484c, 0x4855, 0x4857, 0x1b77, 0x486b, 0x486e, 0x487a,
   0x487c, 0x4882, 0x4890, 0x4896, 0x1b6d, 0x4898, 0x4899, 0x489a,
-  0x489c, 0x48aa, 0x48ab, 0x48b4, 0x48bb, 0x48fb, 0xa9e4, 0xaa5a,
+  0x489c, 0x48aa, 0x48ab, 0x48b4, 0x48bb, 0x48fb, 0xaae4, 0xab5a,
   0x8113, 0x48c3, 0x48c5, 0x48cc, 0x48cf, 0x48d6,
   /* 0x22F21..0x22F7E */
   0x48d9, 0x48e4, 0x48e5, 0x48ec, 0x48f7, 0x4903, 0x4907, 0x1b87,
-  0x1b88, 0xaa94, 0x493b, 0x1b8d, 0x4946, 0x4969, 0x496c, 0x4972,
+  0x1b88, 0xab94, 0x493b, 0x1b8d, 0x4946, 0x4969, 0x496c, 0x4972,
   0x497a, 0x497f, 0x4992, 0x1ba4, 0x4996, 0x4998, 0x49a6, 0x49b0,
-  0x49b7, 0x49ba, 0x49bc, 0x49c0, 0x49d1, 0x49d6, 0xab39, 0xab47,
-  0x4a30, 0xab38, 0xab3a, 0x49e3, 0x49ee, 0x49ef, 0x49f3, 0x1bcd,
-  0x49f4, 0x49fe, 0x4a11, 0x4a1a, 0x4a1d, 0xac1c, 0x4a32, 0x4a33,
+  0x49b7, 0x49ba, 0x49bc, 0x49c0, 0x49d1, 0x49d6, 0xac39, 0xac47,
+  0x4a30, 0xac38, 0xac3a, 0x49e3, 0x49ee, 0x49ef, 0x49f3, 0x1bcd,
+  0x49f4, 0x49fe, 0x4a11, 0x4a1a, 0x4a1d, 0xad1c, 0x4a32, 0x4a33,
   0x4a34, 0x4a3f, 0x4a46, 0x4a49, 0x4a7a, 0x4a4e, 0x4a52, 0x4a64,
-  0xac0c, 0x4a7e, 0x4a83, 0x4a8b, 0x1bf0, 0x4a91, 0x4a9f, 0x4aa1,
-  0xac64, 0x4aab, 0x4abd, 0x4ac6, 0x4ad4, 0x4ad0, 0x4adc, 0x4add,
-  0xacff, 0xace7, 0x4aec, 0x4af1, 0x4af2, 0x4af3, 0x4afd, 0xad24,
-  0x4b0b, 0x4b0f, 0x4b10, 0x4b11, 0xad3d, 0x4b17, 0x1c26, 0x4b2f,
+  0xad0c, 0x4a7e, 0x4a83, 0x4a8b, 0x1bf0, 0x4a91, 0x4a9f, 0x4aa1,
+  0xad64, 0x4aab, 0x4abd, 0x4ac6, 0x4ad4, 0x4ad0, 0x4adc, 0x4add,
+  0xadff, 0xade7, 0x4aec, 0x4af1, 0x4af2, 0x4af3, 0x4afd, 0xae24,
+  0x4b0b, 0x4b0f, 0x4b10, 0x4b11, 0xae3d, 0x4b17, 0x1c26, 0x4b2f,
   0x4b4a, 0x4b58, 0x4b6c, 0x4b75, 0x4b7a, 0x4b81,
   /* 0x26E21..0x26E7E */
-  0x4b9b, 0x4bae, 0xae98, 0x4bbd, 0x4bbe, 0x4bc7, 0x4bc8, 0x4bc9,
+  0x4b9b, 0x4bae, 0xaf98, 0x4bbd, 0x4bbe, 0x4bc7, 0x4bc8, 0x4bc9,
   0x4bda, 0x4be6, 0x4be7, 0x4bee, 0x4bf1, 0x4c02, 0x4c0a, 0x4c0e,
-  0x4c35, 0x4c36, 0x4c3a, 0xaf7f, 0x4c3f, 0x4c4d, 0x4c5b, 0x4c6d,
+  0x4c35, 0x4c36, 0x4c3a, 0xb07f, 0x4c3f, 0x4c4d, 0x4c5b, 0x4c6d,
   0x4c84, 0x4c89, 0x1cc3, 0x4c94, 0x4c95, 0x4c97, 0x4cad, 0x4cc2,
   0x4cd0, 0x1cd2, 0x4cd6, 0x4cda, 0x4cdc, 0x4ce9, 0x4cec, 0x4ced,
-  0xb000, 0x4d00, 0x4d0a, 0x4d24, 0x4d26, 0x4d27, 0x4c67, 0x4d2f,
+  0xb100, 0x4d00, 0x4d0a, 0x4d24, 0x4d26, 0x4d27, 0x4c67, 0x4d2f,
   0x4d3c, 0x4d5b, 0x4d5e, 0x4d60, 0x4d70, 0x4d80, 0x4d81, 0x4d8a,
-  0x4d8d, 0x4d91, 0x4d98, 0xb040, 0x4e17, 0xb0fa, 0xb0f9, 0xb0d3,
+  0x4d8d, 0x4d91, 0x4d98, 0xb140, 0x4e17, 0xb1fa, 0xb1f9, 0xb1d3,
   0x4dab, 0x4dae, 0x4db4, 0x4dc2, 0x4d34, 0x4dc8, 0x4dce, 0x4dcf,
   0x4dd0, 0x4ddf, 0x4de9, 0x4df6, 0x4e36, 0x4e1e, 0x4e22, 0x4e27,
   0x1d11, 0x4e32, 0x4e3c, 0x4e48, 0x4e49, 0x4e4b, 0x4e4c, 0x4e4f,
@@ -1511,210 +1511,210 @@ const uint16_t __jisx0213_to_ucs_main[120 * 94] =
   /* 0x26F21..0x26F7E */
   0x4e93, 0x4ea7, 0x4eb4, 0x4ebf, 0x4ec3, 0x4eca, 0x4ed9, 0x4f35,
   0x4eeb, 0x4ef9, 0x4efb, 0x4f0a, 0x4f0c, 0x4f18, 0x4f25, 0x4f36,
-  0x4f3c, 0xb17e, 0x4f52, 0x4f57, 0x4f5a, 0x4f60, 0x4f68, 0x4f98,
+  0x4f3c, 0xb27e, 0x4f52, 0x4f57, 0x4f5a, 0x4f60, 0x4f68, 0x4f98,
   0x4f7d, 0x4f90, 0x4f96, 0x4fbe, 0x4f9f, 0x4fa5, 0x4faf, 0x1d64,
-  0x4fb5, 0x4fc8, 0x4fc9, 0x4fda, 0x4fde, 0x4fe9, 0xb296, 0x4ffc,
-  0x5000, 0x5007, 0x500a, 0x5023, 0xb303, 0x5039, 0x503a, 0x503c,
+  0x4fb5, 0x4fc8, 0x4fc9, 0x4fda, 0x4fde, 0x4fe9, 0xb396, 0x4ffc,
+  0x5000, 0x5007, 0x500a, 0x5023, 0xb403, 0x5039, 0x503a, 0x503c,
   0x5043, 0x5047, 0x504b, 0x1d9a, 0x5054, 0x5065, 0x5069, 0x506c,
   0x506e, 0x5076, 0x507e, 0x5081, 0x5086, 0x5095, 0x5097, 0x50bb,
-  0xb3c6, 0x509f, 0x50b1, 0xb3fe, 0x50ec, 0x50ca, 0x50d1, 0x50d3,
+  0xb4c6, 0x509f, 0x50b1, 0xb4fe, 0x50ec, 0x50ca, 0x50d1, 0x50d3,
   0x50dc, 0x5103, 0x5104, 0x5106, 0x5107, 0x5108, 0x510c, 0x1dc0,
   0x512f, 0x5131, 0x5150, 0x514a, 0x5153, 0x515e, 0x1dd4, 0x5196,
   0x5180, 0x519b, 0x51a0, 0x51a2, 0x51ae, 0x51af,
   /* 0x27021..0x2707E */
-  0x51b3, 0xb4bc, 0x51cb, 0x51d3, 0x51d9, 0x51dc, 0x5207, 0x1e05,
+  0x51b3, 0xb5bc, 0x51cb, 0x51d3, 0x51d9, 0x51dc, 0x5207, 0x1e05,
   0x8149, 0x522b, 0x5234, 0x5238, 0x5239, 0x2e2c, 0x5242, 0x5253,
-  0x5257, 0x5263, 0xb529, 0x526e, 0x526f, 0x5278, 0x527f, 0x528e,
-  0xb5a5, 0x52ad, 0x52ae, 0x52b0, 0x52b1, 0x52c1, 0x1e60, 0x52cc,
+  0x5257, 0x5263, 0xb629, 0x526e, 0x526f, 0x5278, 0x527f, 0x528e,
+  0xb6a5, 0x52ad, 0x52ae, 0x52b0, 0x52b1, 0x52c1, 0x1e60, 0x52cc,
   0x1e66, 0x1e68, 0x52f3, 0x52fa, 0x5307, 0x5312, 0x5318, 0x5319,
   0x1e83, 0x5339, 0x532c, 0x5331, 0x5333, 0x533d, 0x5352, 0x1e94,
-  0x536b, 0x536c, 0xb796, 0x536e, 0x536f, 0x5371, 0x5377, 0x5381,
+  0x536b, 0x536c, 0xb896, 0x536e, 0x536f, 0x5371, 0x5377, 0x5381,
   0x5385, 0x538a, 0x5394, 0x5398, 0x539c, 0x539e, 0x53a5, 0x53a8,
   0x53b5, 0x53b7, 0x53b9, 0x53bc, 0x53bf, 0x53c5, 0x53cb, 0x53e1,
   0x53e7, 0x53f9, 0x5413, 0x53fa, 0x5401, 0x5424, 0x5431, 0x5439,
   0x5453, 0x5440, 0x5443, 0x544d, 0x5452, 0x545d, 0x5471, 0x5481,
-  0x5485, 0x5488, 0xb84d, 0x5492, 0x5497, 0x5499,
+  0x5485, 0x5488, 0xb94d, 0x5492, 0x5497, 0x5499,
   /* 0x27121..0x2717E */
   0x54a0, 0x54a1, 0x54a5, 0x54aa, 0x54ab, 0x54b9, 0x54bb, 0x54ba,
-  0x54d6, 0x54d8, 0x54de, 0x54ef, 0x54eb, 0xb956, 0x54fa, 0xb96f,
-  0x5520, 0x5524, 0x552a, 0x1f57, 0xba16, 0x553d, 0x553e, 0x5540,
+  0x54d6, 0x54d8, 0x54de, 0x54ef, 0x54eb, 0xba56, 0x54fa, 0xba6f,
+  0x5520, 0x5524, 0x552a, 0x1f57, 0xbb16, 0x553d, 0x553e, 0x5540,
   0x5548, 0x554e, 0x5550, 0x5552, 0x556c, 0x5572, 0x5571, 0x557a,
-  0x557d, 0x557e, 0x5581, 0xbb14, 0x558c, 0x1f75, 0x55a2, 0x1f77,
+  0x557d, 0x557e, 0x5581, 0xbc14, 0x558c, 0x1f75, 0x55a2, 0x1f77,
   0x55b0, 0x55b7, 0x55bf, 0x55c0, 0x55c6, 0x55cf, 0x55d3, 0x55dd,
   0x55df, 0x55e0, 0x55e7, 0x55ec, 0x55ee, 0x55f1, 0x55f9, 0x5603,
-  0x5618, 0x5607, 0x560f, 0x1fae, 0xbc0e, 0x5613, 0x561b, 0x561c,
-  0xbc37, 0x5625, 0x5628, 0x563c, 0x5633, 0xbc6a, 0x1fc9, 0x5641,
-  0xbc8b, 0x5649, 0x5655, 0x1fd7, 0x566e, 0x5695, 0x569c, 0x56a1,
-  0x56a0, 0x56a7, 0x56a8, 0x56af, 0xbd4a, 0x56c9, 0xbd55, 0x56e8,
-  0x56ec, 0xbe22, 0x5717, 0x571a, 0x572d, 0x5735,
+  0x5618, 0x5607, 0x560f, 0x1fae, 0xbd0e, 0x5613, 0x561b, 0x561c,
+  0xbd37, 0x5625, 0x5628, 0x563c, 0x5633, 0xbd6a, 0x1fc9, 0x5641,
+  0xbd8b, 0x5649, 0x5655, 0x1fd7, 0x566e, 0x5695, 0x569c, 0x56a1,
+  0x56a0, 0x56a7, 0x56a8, 0x56af, 0xbe4a, 0x56c9, 0xbe55, 0x56e8,
+  0x56ec, 0xbf22, 0x5717, 0x571a, 0x572d, 0x5735,
   /* 0x27221..0x2727E */
-  0xbea9, 0x2039, 0xbee5, 0xbecd, 0x5758, 0x5760, 0x576a, 0xbf1e,
-  0x5772, 0x577c, 0x577d, 0xbf4c, 0x2058, 0x579a, 0x579f, 0x57a2,
+  0xbfa9, 0x2039, 0xbfe5, 0xbfcd, 0x5758, 0x5760, 0x576a, 0xc01e,
+  0x5772, 0x577c, 0x577d, 0xc04c, 0x2058, 0x579a, 0x579f, 0x57a2,
   0x57a4, 0x57a9, 0x57de, 0x57df, 0x57e4, 0x57e6, 0x57ea, 0x57ec,
-  0x2093, 0x57f0, 0x57f4, 0x57fb, 0xc02e, 0x5805, 0x5806, 0x5809,
-  0x580d, 0x5819, 0x5821, 0x582c, 0x5847, 0x5864, 0x586a, 0xc0d9,
+  0x2093, 0x57f0, 0x57f4, 0x57fb, 0xc12e, 0x5805, 0x5806, 0x5809,
+  0x580d, 0x5819, 0x5821, 0x582c, 0x5847, 0x5864, 0x586a, 0xc1d9,
   0x588a, 0x5894, 0x58a4, 0x589d, 0x589e, 0x589f, 0x58bb, 0x58c8,
   0x58cc, 0x58ce, 0x58d5, 0x58e0, 0x58e1, 0x58e6, 0x58f9, 0x58fa,
-  0x58fb, 0x58fe, 0xc1a7, 0x5910, 0x591b, 0x5930, 0x5925, 0x593b,
+  0x58fb, 0x58fe, 0xc2a7, 0x5910, 0x591b, 0x5930, 0x5925, 0x593b,
   0x594a, 0x5958, 0x595b, 0x2105, 0x5967, 0x5972, 0x5994, 0x5995,
   0x5996, 0x599b, 0x59a1, 0x59a9, 0x59b4, 0x59bb, 0x59c2, 0x59c7,
-  0x59cc, 0x59cd, 0x59d6, 0x2148, 0xc2a9, 0xc2b4, 0x214f, 0x5a0a,
+  0x59cc, 0x59cd, 0x59d6, 0x2148, 0xc3a9, 0xc3b4, 0x214f, 0x5a0a,
   0x5a11, 0x5a15, 0x5a1b, 0x5a1e, 0x2163, 0x5a2d,
   /* 0x27321..0x2737E */
   0x5a38, 0x5a47, 0x5a4c, 0x5a56, 0x5a59, 0x5a5c, 0x5a5f, 0x5a60,
   0x5a67, 0x5a6a, 0x5a75, 0x5a78, 0x5a82, 0x5a8a, 0x5a90, 0x5aa3,
-  0x5aac, 0xc3d4, 0x21b4, 0x5ab9, 0x5abc, 0x5abe, 0x21bf, 0x5acc,
-  0x5ad1, 0x5ae7, 0x5ae8, 0x5af4, 0xc4e4, 0xc4e3, 0x5b07, 0xc4f1,
+  0x5aac, 0xc4d4, 0x21b4, 0x5ab9, 0x5abc, 0x5abe, 0x21bf, 0x5acc,
+  0x5ad1, 0x5ae7, 0x5ae8, 0x5af4, 0xc5e4, 0xc5e3, 0x5b07, 0xc5f1,
   0x5b3d, 0x5b27, 0x5b2a, 0x5b2e, 0x5b2f, 0x5b31, 0x21e6, 0x21f3,
   0x5b7f, 0x5b41, 0x21ee, 0x5b55, 0x5b79, 0x5b64, 0x5b66, 0x5b69,
-  0x5b73, 0xc532, 0x2207, 0x5b90, 0x5b91, 0x5b9b, 0x220e, 0x5baf,
-  0x5bb5, 0x5bbc, 0x5bc5, 0x5bca, 0xc5cb, 0xc5e4, 0x5bd4, 0x5bd6,
+  0x5b73, 0xc632, 0x2207, 0x5b90, 0x5b91, 0x5b9b, 0x220e, 0x5baf,
+  0x5bb5, 0x5bbc, 0x5bc5, 0x5bca, 0xc6cb, 0xc6e4, 0x5bd4, 0x5bd6,
   0x5bda, 0x5bea, 0x5bf0, 0x5c03, 0x5c0b, 0x5c0e, 0x5c0f, 0x5c26,
   0x5c45, 0x5c4a, 0x5c51, 0x5c57, 0x5c5e, 0x5c61, 0x5c69, 0x5c6e,
-  0x5c6f, 0x5c70, 0xc72e, 0xc756, 0xc765, 0x5ca6, 0xc762, 0x5cb6,
-  0x5cb7, 0x5cbf, 0xc7d8, 0x5cc4, 0xc7c2, 0x5cc8,
+  0x5c6f, 0x5c70, 0xc82e, 0xc856, 0xc865, 0x5ca6, 0xc862, 0x5cb6,
+  0x5cb7, 0x5cbf, 0xc8d8, 0x5cc4, 0xc8c2, 0x5cc8,
   /* 0x27421..0x2747E */
-  0x5ccd, 0xc7e8, 0x5cd7, 0xc823, 0x5ce6, 0x5ceb, 0xc85c, 0x5cf5,
-  0x5d03, 0x5d09, 0x22c6, 0x5d12, 0x5d1e, 0xc8e0, 0xc8d4, 0x5d3d,
-  0x5d3e, 0x5d40, 0x5d47, 0xc90c, 0xc8fb, 0x22d6, 0x5d59, 0x5d5a,
-  0x5d6a, 0x5d70, 0x22dd, 0x5d7f, 0xc917, 0x5d86, 0x5d88, 0x5d8c,
-  0x5d97, 0xc960, 0x5d9d, 0x5da7, 0x5daa, 0x5db6, 0x5db7, 0x5dc0,
-  0x5dd7, 0x5dd9, 0x5de6, 0x5df1, 0x5df9, 0x2302, 0xc9ed, 0x8158,
+  0x5ccd, 0xc8e8, 0x5cd7, 0xc923, 0x5ce6, 0x5ceb, 0xc95c, 0x5cf5,
+  0x5d03, 0x5d09, 0x22c6, 0x5d12, 0x5d1e, 0xc9e0, 0xc9d4, 0x5d3d,
+  0x5d3e, 0x5d40, 0x5d47, 0xca0c, 0xc9fb, 0x22d6, 0x5d59, 0x5d5a,
+  0x5d6a, 0x5d70, 0x22dd, 0x5d7f, 0xca17, 0x5d86, 0x5d88, 0x5d8c,
+  0x5d97, 0xca60, 0x5d9d, 0x5da7, 0x5daa, 0x5db6, 0x5db7, 0x5dc0,
+  0x5dd7, 0x5dd9, 0x5de6, 0x5df1, 0x5df9, 0x2302, 0xcaed, 0x8158,
   0x5e10, 0x5e17, 0x5e1d, 0x5e20, 0x5e27, 0x5e2c, 0x5e45, 0x5e73,
   0x5e75, 0x5e7e, 0x5e86, 0x5e87, 0x232b, 0x5e91, 0x5e98, 0x5e9a,
   0x2343, 0x5f3c, 0x5f3b, 0x5f3e, 0x5f43, 0x5f44, 0x5f4f, 0x14c1,
-  0xca70, 0x5f52, 0xca86, 0x5f61, 0x5f63, 0x5f64, 0x5f6d, 0x5f7d,
-  0x5f7e, 0xcb4c, 0x5f90, 0x317b, 0xb00e, 0x5f96, 0x5f9c, 0x5fad,
-  0xcc02, 0x5fc3, 0x5fcf, 0x5fe3, 0x5fe5, 0x5fef,
+  0xcb70, 0x5f52, 0xcb86, 0x5f61, 0x5f63, 0x5f64, 0x5f6d, 0x5f7d,
+  0x5f7e, 0xcc4c, 0x5f90, 0x317b, 0xb10e, 0x5f96, 0x5f9c, 0x5fad,
+  0xcd02, 0x5fc3, 0x5fcf, 0x5fe3, 0x5fe5, 0x5fef,
   /* 0x27521..0x2757E */
   0x5ff2, 0x6002, 0x600a, 0x6008, 0x600e, 0x6011, 0x6016, 0x6024,
   0x602c, 0x6030, 0x6043, 0x6066, 0x6071, 0x6075, 0x607b, 0x6099,
-  0x609c, 0x60a4, 0x60a7, 0x60b8, 0xcd7e, 0x60c5, 0x60d5, 0x60d8,
-  0x60e6, 0xcdb0, 0x610d, 0x60f5, 0x60fb, 0x23ee, 0x6135, 0x6116,
-  0x611e, 0x23f0, 0x6124, 0x6127, 0x612c, 0xce1d, 0x613d, 0x2408,
+  0x609c, 0x60a4, 0x60a7, 0x60b8, 0xce7e, 0x60c5, 0x60d5, 0x60d8,
+  0x60e6, 0xceb0, 0x610d, 0x60f5, 0x60fb, 0x23ee, 0x6135, 0x6116,
+  0x611e, 0x23f0, 0x6124, 0x6127, 0x612c, 0xcf1d, 0x613d, 0x2408,
   0x6169, 0x2417, 0x6181, 0x241c, 0x6184, 0x6185, 0x2422, 0x6198,
-  0x61b2, 0x61c1, 0x61c3, 0x61d6, 0x61db, 0xcfdd, 0x61e4, 0xcfea,
-  0x61ec, 0xd051, 0x61fd, 0x61ff, 0xd06f, 0x6204, 0xd0dd, 0x6219,
-  0x6221, 0x6222, 0xd11e, 0x6232, 0x6234, 0x623c, 0x6246, 0x6249,
-  0x6245, 0xd158, 0x624b, 0x2476, 0x624f, 0x247a, 0x6257, 0xd18c,
-  0x625c, 0x6263, 0xd1b7, 0x815d, 0x815e, 0x6279, 0x2491, 0x627d,
+  0x61b2, 0x61c1, 0x61c3, 0x61d6, 0x61db, 0xd0dd, 0x61e4, 0xd0ea,
+  0x61ec, 0xd151, 0x61fd, 0x61ff, 0xd16f, 0x6204, 0xd1dd, 0x6219,
+  0x6221, 0x6222, 0xd21e, 0x6232, 0x6234, 0x623c, 0x6246, 0x6249,
+  0x6245, 0xd258, 0x624b, 0x2476, 0x624f, 0x247a, 0x6257, 0xd28c,
+  0x625c, 0x6263, 0xd2b7, 0x815d, 0x815e, 0x6279, 0x2491, 0x627d,
   0x627f, 0x6283, 0x628a, 0x6293, 0x62a7, 0x62a8,
   /* 0x27621..0x2767E */
   0x62b2, 0x62b4, 0x62ba, 0x62bc, 0x62e2, 0x62e8, 0x62f7, 0x6307,
   0x6308, 0x630c, 0x6354, 0x631b, 0x631d, 0x6330, 0x633c, 0x6344,
   0x6357, 0x24be, 0x637f, 0x24d4, 0x24b3, 0x638d, 0x6394, 0x6395,
   0x639b, 0x639d, 0x63c9, 0x63d0, 0x63d4, 0x63dd, 0x63e5, 0x63f9,
-  0x640f, 0x6411, 0x6415, 0xd273, 0x6417, 0x6439, 0x644a, 0x644f,
-  0x6451, 0x6452, 0x6459, 0x645a, 0x645c, 0xd2dd, 0x6465, 0x6476,
+  0x640f, 0x6411, 0x6415, 0xd373, 0x6417, 0x6439, 0x644a, 0x644f,
+  0x6451, 0x6452, 0x6459, 0x645a, 0x645c, 0xd3dd, 0x6465, 0x6476,
   0x6478, 0x647c, 0x6481, 0x250d, 0x64dc, 0x6497, 0x64a6, 0x64be,
-  0x2508, 0x64ce, 0x64cf, 0x64d3, 0xd365, 0x64e7, 0x64ea, 0x64ef,
+  0x2508, 0x64ce, 0x64cf, 0x64d3, 0xd465, 0x64e7, 0x64ea, 0x64ef,
   0x64f0, 0x64f1, 0x64fa, 0x64fd, 0x650c, 0x651b, 0x6524, 0x6525,
   0x652b, 0x6534, 0x654f, 0x656f, 0x2525, 0x2543, 0x653e, 0x6551,
-  0x6553, 0x655e, 0x6561, 0x6562, 0xd494, 0x657b, 0x657d, 0x657f,
-  0x6581, 0x6586, 0x6593, 0x659d, 0x659f, 0xd4f8,
+  0x6553, 0x655e, 0x6561, 0x6562, 0xd594, 0x657b, 0x657d, 0x657f,
+  0x6581, 0x6586, 0x6593, 0x659d, 0x659f, 0xd5f8,
   /* 0x27721..0x2777E */
-  0xd4f6, 0xd4f7, 0x65b7, 0x65bc, 0x65c7, 0x65ca, 0x65d8, 0x65d9,
+  0xd5f6, 0xd5f7, 0x65b7, 0x65bc, 0x65c7, 0x65ca, 0x65d8, 0x65d9,
   0x65df, 0x65e1, 0x65e6, 0x65f6, 0x6600, 0x6611, 0x661e, 0x6621,
-  0x6624, 0x6627, 0xd58d, 0x6639, 0x663c, 0xd5b9, 0x6640, 0x8120,
+  0x6624, 0x6627, 0xd68d, 0x6639, 0x663c, 0xd6b9, 0x6640, 0x8120,
   0x6653, 0x6656, 0x666f, 0x6677, 0x667a, 0x6687, 0x6689, 0x668d,
   0x6691, 0x669c, 0x669d, 0x66a8, 0x8121, 0x66b1, 0x66b3, 0x66c1,
   0x66c3, 0x66d1, 0x66d5, 0x66d7, 0x66e3, 0x66e6, 0x25b8, 0x6705,
   0x6707, 0x670e, 0x6710, 0x6713, 0x6719, 0x671f, 0x6721, 0x6723,
   0x6731, 0x673a, 0x673e, 0x6740, 0x6743, 0x6751, 0x6758, 0x6764,
-  0x6765, 0x6772, 0x677c, 0xd65b, 0xd65a, 0x67a7, 0x6789, 0x678b,
-  0x6793, 0x67a0, 0xd67e, 0x25e5, 0x67be, 0xd690, 0x67c1, 0x67ce,
-  0x67f5, 0x67df, 0xd6c9, 0x67e3, 0x67e5, 0x67e6, 0x67ea, 0x67eb,
+  0x6765, 0x6772, 0x677c, 0xd75b, 0xd75a, 0x67a7, 0x6789, 0x678b,
+  0x6793, 0x67a0, 0xd77e, 0x25e5, 0x67be, 0xd790, 0x67c1, 0x67ce,
+  0x67f5, 0x67df, 0xd7c9, 0x67e3, 0x67e5, 0x67e6, 0x67ea, 0x67eb,
   0x67ed, 0x6801, 0x6803, 0x680b, 0x6813, 0x6828,
   /* 0x27821..0x2787E */
   0x682e, 0x6832, 0x683c, 0x260f, 0x684a, 0x6858, 0x685f, 0x6864,
-  0xd715, 0xd714, 0x6869, 0xd731, 0x686f, 0x68a0, 0x68bc, 0x68bd,
-  0x68be, 0x68c0, 0x68d2, 0xd793, 0x68d1, 0x68d3, 0x68db, 0x68f0,
-  0x68f1, 0x2641, 0x6901, 0xd80e, 0x6937, 0xd823, 0x6942, 0x6945,
-  0x6949, 0xd852, 0x2665, 0x6962, 0x6980, 0x6989, 0x6990, 0x699f,
+  0xd815, 0xd814, 0x6869, 0xd831, 0x686f, 0x68a0, 0x68bc, 0x68bd,
+  0x68be, 0x68c0, 0x68d2, 0xd893, 0x68d1, 0x68d3, 0x68db, 0x68f0,
+  0x68f1, 0x2641, 0x6901, 0xd90e, 0x6937, 0xd923, 0x6942, 0x6945,
+  0x6949, 0xd952, 0x2665, 0x6962, 0x6980, 0x6989, 0x6990, 0x699f,
   0x69b0, 0x69b7, 0x69d6, 0x69d8, 0x69eb, 0x26a1, 0x69f1, 0x69f3,
-  0x69fd, 0x69ff, 0x26af, 0x6a11, 0x6a14, 0xd985, 0x6a21, 0x6a35,
+  0x69fd, 0x69ff, 0x26af, 0x6a11, 0x6a14, 0xda85, 0x6a21, 0x6a35,
   0x6a3e, 0x6a45, 0x6a4d, 0x6a58, 0x6aae, 0x6a90, 0x6ab7, 0x6abe,
-  0x6ad7, 0x6afc, 0xda84, 0x6b0a, 0x6b05, 0x6b0d, 0x6b1c, 0x6b1f,
+  0x6ad7, 0x6afc, 0xdb84, 0x6b0a, 0x6b05, 0x6b0d, 0x6b1c, 0x6b1f,
   0x6b2d, 0x6b43, 0x270c, 0x6b51, 0x6b5e, 0x6b76, 0x6b7f, 0x6b81,
-  0x6b8b, 0x6b94, 0x6b95, 0x6b9c, 0x6b9e, 0x6c39, 0xdbb3, 0x6c3d,
-  0xdbbe, 0xdbc7, 0x6c45, 0x6c47, 0x6c4f, 0x6c54,
+  0x6b8b, 0x6b94, 0x6b95, 0x6b9c, 0x6b9e, 0x6c39, 0xdcb3, 0x6c3d,
+  0xdcbe, 0xdcc7, 0x6c45, 0x6c47, 0x6c4f, 0x6c54,
   /* 0x27921..0x2797E */
-  0x6c57, 0x6c69, 0x6c6d, 0x6c73, 0xdcb8, 0x6c93, 0x6c92, 0x6c99,
-  0x2764, 0x6c9b, 0x6ca4, 0x6cd6, 0x6cd5, 0x6cd9, 0xdd20, 0x6cf0,
-  0x6cf1, 0xdd90, 0x6d09, 0x6d0e, 0x6d6c, 0x6d84, 0x6d95, 0x6da6,
-  0xdeb7, 0x6dc6, 0x6dc8, 0x6dd9, 0x6dec, 0x6e0c, 0x27fd, 0x6dfd,
-  0x6e06, 0xdf8a, 0x6e14, 0x6e16, 0x6e21, 0x6e22, 0x6e27, 0xdfbb,
+  0x6c57, 0x6c69, 0x6c6d, 0x6c73, 0xddb8, 0x6c93, 0x6c92, 0x6c99,
+  0x2764, 0x6c9b, 0x6ca4, 0x6cd6, 0x6cd5, 0x6cd9, 0xde20, 0x6cf0,
+  0x6cf1, 0xde90, 0x6d09, 0x6d0e, 0x6d6c, 0x6d84, 0x6d95, 0x6da6,
+  0xdfb7, 0x6dc6, 0x6dc8, 0x6dd9, 0x6dec, 0x6e0c, 0x27fd, 0x6dfd,
+  0x6e06, 0xe08a, 0x6e14, 0x6e16, 0x6e21, 0x6e22, 0x6e27, 0xe0bb,
   0x2816, 0x6e36, 0x6e39, 0x6e4b, 0x6e54, 0x6e62, 0x6e6c, 0x6e6d,
   0x6e6f, 0x6e98, 0x6e9e, 0x6eae, 0x6eb3, 0x6eb5, 0x6eb6, 0x6ebb,
-  0xe082, 0x6ed1, 0x6ed4, 0x284e, 0x6ef9, 0xe0f3, 0x6f00, 0x6f08,
-  0x6f17, 0x6f2b, 0x6f40, 0x6f4a, 0x6f58, 0xe18c, 0x6fa4, 0x6fb4,
-  0x8166, 0x6fb6, 0xe1d5, 0x6fc1, 0x6fc6, 0x8124, 0x6fca, 0x6fcd,
+  0xe182, 0x6ed1, 0x6ed4, 0x284e, 0x6ef9, 0xe1f3, 0x6f00, 0x6f08,
+  0x6f17, 0x6f2b, 0x6f40, 0x6f4a, 0x6f58, 0xe28c, 0x6fa4, 0x6fb4,
+  0x8166, 0x6fb6, 0xe2d5, 0x6fc1, 0x6fc6, 0x8124, 0x6fca, 0x6fcd,
   0x6fd3, 0x6fd5, 0x6fe0, 0x6ff1, 0x6ff5, 0x6ffb, 0x7002, 0x700c,
-  0x7037, 0xe26b, 0x7043, 0x7044, 0x705d, 0xe2c8,
+  0x7037, 0xe36b, 0x7043, 0x7044, 0x705d, 0xe3c8,
   /* 0x27A21..0x27A7E */
-  0xe2c9, 0x7085, 0x708c, 0x7090, 0x761d, 0x70a1, 0x28b5, 0x70b0,
-  0x70b6, 0x70c3, 0x70c8, 0xe3d7, 0x70dc, 0x70df, 0xe3fa, 0x70f6,
+  0xe3c9, 0x7085, 0x708c, 0x7090, 0x761d, 0x70a1, 0x28b5, 0x70b0,
+  0x70b6, 0x70c3, 0x70c8, 0xe4d7, 0x70dc, 0x70df, 0xe4fa, 0x70f6,
   0x70f2, 0x7100, 0x70eb, 0x70fe, 0x70ff, 0x7104, 0x7106, 0x7118,
   0x711c, 0x711e, 0x7137, 0x7139, 0x713a, 0x7146, 0x7147, 0x7157,
   0x7159, 0x7161, 0x7164, 0x7174, 0x7179, 0x7185, 0x718e, 0x71a8,
-  0x71ae, 0x71b3, 0x71b6, 0x71c3, 0x71c4, 0x71da, 0xe449, 0xe446,
-  0x71ec, 0x71ee, 0x7201, 0x720a, 0x7216, 0x7217, 0xe46b, 0x7233,
+  0x71ae, 0x71b3, 0x71b6, 0x71c3, 0x71c4, 0x71da, 0xe549, 0xe546,
+  0x71ec, 0x71ee, 0x7201, 0x720a, 0x7216, 0x7217, 0xe56b, 0x7233,
   0x7242, 0x7247, 0x724a, 0x724e, 0x7251, 0x7256, 0x7259, 0x7260,
-  0x7261, 0x7265, 0x7267, 0x7268, 0xe487, 0xe488, 0x727c, 0x727d,
+  0x7261, 0x7265, 0x7267, 0x7268, 0xe587, 0xe588, 0x727c, 0x727d,
   0x727f, 0x7289, 0x728d, 0x7297, 0x7299, 0x729f, 0x72a7, 0x72ab,
-  0xe4ba, 0xe4bb, 0x72b2, 0x72bf, 0x72c0, 0x72c6, 0x72ce, 0x72d0,
-  0x72d7, 0x72d9, 0x72e5, 0x72e7, 0x7311, 0xe51e,
+  0xe5ba, 0xe5bb, 0x72b2, 0x72bf, 0x72c0, 0x72c6, 0x72ce, 0x72d0,
+  0x72d7, 0x72d9, 0x72e5, 0x72e7, 0x7311, 0xe61e,
   /* 0x27B21..0x27B7E */
-  0xe529, 0x72f7, 0x72f9, 0x72fb, 0x7302, 0x730d, 0x7315, 0x731d,
-  0x731e, 0x7327, 0x7329, 0xe571, 0xe543, 0x7347, 0x7351, 0x7357,
-  0x735a, 0x736b, 0x7371, 0x7373, 0x73a1, 0xe599, 0xe5cd, 0x7388,
-  0x738b, 0x738f, 0x739e, 0x73f5, 0xe5e4, 0xe5dd, 0x73f1, 0x73c1,
+  0xe629, 0x72f7, 0x72f9, 0x72fb, 0x7302, 0x730d, 0x7315, 0x731d,
+  0x731e, 0x7327, 0x7329, 0xe671, 0xe643, 0x7347, 0x7351, 0x7357,
+  0x735a, 0x736b, 0x7371, 0x7373, 0x73a1, 0xe699, 0xe6cd, 0x7388,
+  0x738b, 0x738f, 0x739e, 0x73f5, 0xe6e4, 0xe6dd, 0x73f1, 0x73c1,
   0x73c7, 0x73dc, 0x73e2, 0x73e7, 0x7409, 0x740f, 0x7416, 0x7417,
-  0x73fb, 0x7432, 0x7434, 0x743b, 0x7445, 0xe6c1, 0xe6ef, 0x746d,
-  0x746f, 0x7578, 0x7579, 0x7586, 0x758c, 0x758d, 0xe710, 0x75ab,
-  0x75b4, 0xe771, 0x75c8, 0xe7fb, 0xe81f, 0x762c, 0x7633, 0x7634,
-  0xe836, 0x763c, 0x7641, 0x7661, 0xe889, 0x7682, 0xe8eb, 0x769a,
-  0xe932, 0x29e7, 0x76a9, 0x76af, 0x76b3, 0x76ba, 0x76bd, 0x29fa,
-  0xe9f8, 0x76d8, 0x76da, 0x76dd, 0x2a04, 0x7714, 0x7723, 0x2a29,
+  0x73fb, 0x7432, 0x7434, 0x743b, 0x7445, 0xe7c1, 0xe7ef, 0x746d,
+  0x746f, 0x7578, 0x7579, 0x7586, 0x758c, 0x758d, 0xe810, 0x75ab,
+  0x75b4, 0xe871, 0x75c8, 0xe8fb, 0xe91f, 0x762c, 0x7633, 0x7634,
+  0xe936, 0x763c, 0x7641, 0x7661, 0xe989, 0x7682, 0xe9eb, 0x769a,
+  0xea32, 0x29e7, 0x76a9, 0x76af, 0x76b3, 0x76ba, 0x76bd, 0x29fa,
+  0xeaf8, 0x76d8, 0x76da, 0x76dd, 0x2a04, 0x7714, 0x7723, 0x2a29,
   0x7736, 0x7741, 0x7747, 0x7755, 0x7757, 0x775b,
   /* 0x27C21..0x27C7E */
-  0x776a, 0xeaa0, 0xeab1, 0x7796, 0x779a, 0x779e, 0x77a2, 0x77b1,
+  0x776a, 0xeba0, 0xebb1, 0x7796, 0x779a, 0x779e, 0x77a2, 0x77b1,
   0x77b2, 0x77be, 0x77cc, 0x77d1, 0x77d4, 0x77d8, 0x77d9, 0x77e1,
-  0x77f1, 0x7804, 0x780d, 0x780e, 0x7814, 0x7816, 0x2abc, 0xeb90,
+  0x77f1, 0x7804, 0x780d, 0x780e, 0x7814, 0x7816, 0x2abc, 0xec90,
   0x7823, 0x7832, 0x7833, 0x7825, 0x7847, 0x7866, 0x78ab, 0x78ad,
-  0x78b0, 0xeccf, 0x78b7, 0x78b8, 0x78bb, 0x78bc, 0x78bf, 0x78c2,
-  0x78c7, 0x78cb, 0x78e0, 0xed7f, 0x78e1, 0x78e3, 0x78e5, 0x78ea,
-  0x78f0, 0x78f1, 0x78f3, 0x7908, 0x2b3b, 0xedf0, 0x7916, 0x7917,
-  0xee19, 0x791a, 0x791b, 0x791c, 0xee50, 0x7931, 0x7932, 0x7933,
+  0x78b0, 0xedcf, 0x78b7, 0x78b8, 0x78bb, 0x78bc, 0x78bf, 0x78c2,
+  0x78c7, 0x78cb, 0x78e0, 0xee7f, 0x78e1, 0x78e3, 0x78e5, 0x78ea,
+  0x78f0, 0x78f1, 0x78f3, 0x7908, 0x2b3b, 0xeef0, 0x7916, 0x7917,
+  0xef19, 0x791a, 0x791b, 0x791c, 0xef50, 0x7931, 0x7932, 0x7933,
   0x793a, 0x793b, 0x793c, 0x7940, 0x7941, 0x7946, 0x794d, 0x794e,
   0x795c, 0x795f, 0x7960, 0x79a3, 0x79a6, 0x79b9, 0x79bd, 0x79bf,
-  0x79c3, 0x79c9, 0x79d4, 0x79d9, 0x79de, 0xefc6, 0x79f0, 0x79f9,
+  0x79c3, 0x79c9, 0x79d4, 0x79d9, 0x79de, 0xf0c6, 0x79f0, 0x79f9,
   0x79fc, 0x7a0a, 0x7a11, 0x7a16, 0x7a1a, 0x7a20,
   /* 0x27D21..0x27D7E */
   0x7a31, 0x7a36, 0x7a44, 0x7a4c, 0x7a58, 0x2bc2, 0x7aaf, 0x2bca,
-  0x7ab7, 0x2bd2, 0x7ab9, 0xf072, 0x7ac6, 0x7ad0, 0x7ad2, 0x7ad5,
+  0x7ab7, 0x2bd2, 0x7ab9, 0xf172, 0x7ac6, 0x7ad0, 0x7ad2, 0x7ad5,
   0x2be8, 0x7adc, 0x7ae0, 0x7ae5, 0x7ae9, 0x7b03, 0x7b0c, 0x7b10,
   0x7b12, 0x7b16, 0x7b1c, 0x7b2b, 0x7b33, 0x7b3d, 0x2c20, 0x7b4b,
   0x7b63, 0x7b65, 0x7b6b, 0x7b6c, 0x7b73, 0x7b76, 0x7b77, 0x7ba6,
-  0x7bac, 0x7bb1, 0xf1db, 0xf23d, 0x7bb2, 0x7bb8, 0x7bbe, 0x7bc7,
+  0x7bac, 0x7bb1, 0xf2db, 0xf33d, 0x7bb2, 0x7bb8, 0x7bbe, 0x7bc7,
   0x7bf3, 0x7bd8, 0x7bdd, 0x7be7, 0x7bea, 0x7beb, 0x7bef, 0x7bee,
-  0xf215, 0x7bfa, 0xf28a, 0x7bf7, 0xf249, 0x7c16, 0x7c18, 0x7c19,
-  0x7c1a, 0x7c1d, 0x7c22, 0x7c27, 0x7c29, 0x7c2a, 0xf2c4, 0x7c31,
-  0x7c36, 0x7c37, 0x7c45, 0x7c5c, 0xf2e9, 0x7c49, 0x7c4a, 0xf2db,
+  0xf315, 0x7bfa, 0xf38a, 0x7bf7, 0xf349, 0x7c16, 0x7c18, 0x7c19,
+  0x7c1a, 0x7c1d, 0x7c22, 0x7c27, 0x7c29, 0x7c2a, 0xf3c4, 0x7c31,
+  0x7c36, 0x7c37, 0x7c45, 0x7c5c, 0xf3e9, 0x7c49, 0x7c4a, 0xf3db,
   0x7c54, 0x7c58, 0x7c5b, 0x7c5d, 0x7c5f, 0x7c69, 0x7c6a, 0x7c6b,
   0x7c6d, 0x7c6e, 0x7c70, 0x7c72, 0x7c75, 0x7c7a,
   /* 0x27E21..0x27E7E */
-  0x7ce6, 0x7cf2, 0x7d0b, 0x7d02, 0xf3ce, 0x7d11, 0x7d17, 0x7d18,
-  0xf42f, 0x2cc4, 0xf41a, 0x7d32, 0x2cd1, 0x7d42, 0x7d4a, 0x7d5f,
-  0x7d62, 0xf4f9, 0x7d69, 0x7d6b, 0xf482, 0x7d73, 0x7d76, 0x7d77,
+  0x7ce6, 0x7cf2, 0x7d0b, 0x7d02, 0xf4ce, 0x7d11, 0x7d17, 0x7d18,
+  0xf52f, 0x2cc4, 0xf51a, 0x7d32, 0x2cd1, 0x7d42, 0x7d4a, 0x7d5f,
+  0x7d62, 0xf5f9, 0x7d69, 0x7d6b, 0xf582, 0x7d73, 0x7d76, 0x7d77,
   0x7d7e, 0x7d84, 0x7d8d, 0x7d99, 0x7da1, 0x7dbf, 0x7db5, 0x7db9,
   0x7dbd, 0x7dc3, 0x7dc7, 0x7dc9, 0x7dd6, 0x7dda, 0x7ddf, 0x7de0,
   0x7de3, 0x7df4, 0x2d07, 0x7e0a, 0x7e02, 0x7e0d, 0x7e19, 0x7e1c,
-  0x7e1d, 0x7e7b, 0x9e18, 0x7e80, 0x7e85, 0x7e9b, 0x7ea8, 0xf60c,
-  0x7ebd, 0xf6b7, 0x7edf, 0x7ee7, 0x7eee, 0x7eff, 0x7f02, 0x2d77,
+  0x7e1d, 0x7e7b, 0x9f18, 0x7e80, 0x7e85, 0x7e9b, 0x7ea8, 0xf70c,
+  0x7ebd, 0xf7b7, 0x7edf, 0x7ee7, 0x7eee, 0x7eff, 0x7f02, 0x2d77,
   0x7f03, 0x7f17, 0x7f19, 0x7f2f, 0x7f37, 0x7f3a, 0x7f3d, 0x7f41,
-  0x7f45, 0x7f46, 0x7f53, 0x7f55, 0x7f58, 0xf7f1, 0x7f5d, 0xf802,
-  0x7f69, 0xf81a, 0x7f6d, 0x7f70, 0x7f75, 0xf8b2, 0x0000, 0x0000,
+  0x7f45, 0x7f46, 0x7f53, 0x7f55, 0x7f58, 0xf8f1, 0x7f5d, 0xf902,
+  0x7f69, 0xf91a, 0x7f6d, 0x7f70, 0x7f75, 0xf9b2, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 };
 
@@ -1737,21 +1737,21 @@ const uint32_t __jisx0213_to_ucs_pagestart[] =
    0x9000,  0x9100,  0x9200,  0x9300,  0x9400,  0x9500,  0x9600,  0x9700,
    0x9800,  0x9900,  0x9a00,  0x9b00,  0x9c00,  0x9d00,  0x9e00,  0x9f00,
    0xf900,  0xfa00,  0xfe00,  0xff00, 0x20000, 0x20180, 0x20300, 0x20400,
-  0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a80, 0x20d00, 0x20e00,
-  0x20f00, 0x21200, 0x21300, 0x21400, 0x21500, 0x21600, 0x21700, 0x21800,
-  0x21900, 0x21c00, 0x21d00, 0x21e00, 0x21f00, 0x22100, 0x22200, 0x22300,
-  0x22600, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, 0x22d00, 0x23100,
-  0x23300, 0x23400, 0x23500, 0x23600, 0x23700, 0x23800, 0x23a00, 0x23c00,
-  0x23d00, 0x23f00, 0x24000, 0x24100, 0x24300, 0x24600, 0x24700, 0x24800,
-  0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x25000, 0x25100, 0x25200,
-  0x25400, 0x25500, 0x25700, 0x25900, 0x25a00, 0x25b80, 0x25d00, 0x25e00,
-  0x25f00, 0x26000, 0x26200, 0x26300, 0x26400, 0x26600, 0x26700, 0x26800,
-  0x26900, 0x26a00, 0x26c00, 0x26e00, 0x26f00, 0x27080, 0x27380, 0x27600,
-  0x27700, 0x27900, 0x27a00, 0x27b00, 0x27c00, 0x27d80, 0x27f00, 0x28000,
-  0x28200, 0x28380, 0x28500, 0x28600, 0x28900, 0x28a00, 0x28b00, 0x28d00,
-  0x28e00, 0x28f00, 0x29200, 0x29400, 0x29500, 0x29600, 0x29700, 0x29800,
-  0x29a00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a380, 0x2a500,
-  0x2a600,
+  0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20d00,
+  0x20e00, 0x20f00, 0x21200, 0x21300, 0x21400, 0x21500, 0x21600, 0x21700,
+  0x21800, 0x21900, 0x21c00, 0x21d00, 0x21e00, 0x21f00, 0x22100, 0x22200,
+  0x22300, 0x22600, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, 0x22d00,
+  0x23100, 0x23300, 0x23400, 0x23500, 0x23600, 0x23700, 0x23800, 0x23a00,
+  0x23c00, 0x23d00, 0x23f00, 0x24000, 0x24100, 0x24300, 0x24600, 0x24700,
+  0x24800, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x25000, 0x25100,
+  0x25200, 0x25400, 0x25500, 0x25700, 0x25900, 0x25a00, 0x25b80, 0x25d00,
+  0x25e00, 0x25f00, 0x26000, 0x26200, 0x26300, 0x26400, 0x26600, 0x26700,
+  0x26800, 0x26900, 0x26a00, 0x26c00, 0x26e00, 0x26f00, 0x27080, 0x27380,
+  0x27600, 0x27700, 0x27900, 0x27a00, 0x27b00, 0x27c00, 0x27d80, 0x27f00,
+  0x28000, 0x28200, 0x28380, 0x28500, 0x28600, 0x28900, 0x28a00, 0x28b00,
+  0x28d00, 0x28e00, 0x28f00, 0x29200, 0x29400, 0x29500, 0x29600, 0x29700,
+  0x29800, 0x29a00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a380,
+  0x2a500, 0x2a600,
 };
 
 /* Tables UCS-4 -> JISX0213.  Generated through
@@ -1834,66 +1834,66 @@ const int16_t __jisx0213_from_ucs_level1[2715] =
    24,  25,  26,  27,  28,  -1,  29,  30,
    31,  32,  -1,  33,  34,  35,  36,  37,
    38,  39,  -1,  -1,  40,  41,  -1,  -1,
-   -1,  -1,  -1,  -1,  42,  -1,  -1,  43,
+   -1,  -1,  -1,  -1,  42,  -1,  43,  44,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   44,  45,  46,  47,  -1,  -1,  -1,  48,
-   49,  50,  51,  52,  53,  54,  55,  56,
-   57,  58,  59,  60,  61,  62,  63,  64,
-   65,  66,  67,  68,  -1,  69,  70,  71,
-   72,  73,  -1,  74,  75,  76,  -1,  -1,
-   -1,  77,  -1,  78,  79,  80,  81,  82,
-   83,  -1,  -1,  84,  85,  86,  87,  88,
-   89,  90,  91,  -1,  -1,  92,  93,  94,
-   95,  96,  97,  -1,  98,  99, 100, 101,
-  102, 103,  -1, 104, 105, 106,  -1, 107,
-  108, 109, 110, 111, 112, 113, 114, 115,
-  116, 117, 118,  -1, 119, 120,  -1, 121,
-  122, 123, 124,  -1,  -1,  -1, 125, 126,
-  127,  -1, 128,  -1, 129,  -1,  -1, 130,
-  131,  -1,  -1, 132, 133, 134,  -1,  -1,
-  135, 136, 137, 138, 139, 140, 141, 142,
-  143, 144, 145, 146, 147, 148, 149, 150,
-  151, 152, 153, 154, 155, 156, 157, 158,
-  159, 160, 161, 162, 163, 164, 165, 166,
-  167, 168, 169, 170, 171, 172, 173, 174,
-  175, 176, 177, 178, 179, 180, 181, 182,
-  183, 184, 185, 186, 187, 188, 189, 190,
-  191, 192, 193, 194, 195, 196, 197, 198,
-  199, 200, 201, 202, 203, 204, 205, 206,
-  207, 208, 209, 210, 211, 212, 213, 214,
-  215, 216, 217, 218, 219, 220, 221, 222,
-  223, 224, 225, 226, 227, 228, 229, 230,
-  231, 232, 233, 234, 235, 236, 237, 238,
-  239, 240, 241, 242, 243, 244, 245, 246,
-  247, 248, 249, 250, 251, 252, 253, 254,
-  255, 256, 257, 258, 259, 260, 261, 262,
-  263, 264, 265, 266, 267, 268, 269, 270,
-  271, 272, 273, 274, 275, 276, 277, 278,
-  279, 280, 281, 282, 283, 284, 285, 286,
-  287, 288, 289, 290, 291, 292, 293, 294,
-  295, 296, 297, 298, 299, 300, 301, 302,
-  303, 304, 305, 306, 307, 308, 309, 310,
-  311, 312, 313, 314, 315, 316, 317, 318,
-  319, 320, 321, 322, 323, 324, 325, 326,
-  327, 328, 329,  -1, 330, 331, 332, 333,
-  334, 335, 336, 337, 338, 339, 340, 341,
-  342, 343, 344, 345, 346, 347, 348, 349,
-  350, 351, 352, 353, 354, 355, 356, 357,
-  358, 359, 360, 361, 362, 363, 364, 365,
-  366, 367, 368, 369, 370, 371, 372, 373,
-  374, 375, 376, 377, 378, 379, 380,  -1,
-  381, 382, 383, 384, 385, 386, 387, 388,
-  389, 390, 391, 392, 393, 394, 395, 396,
-  397, 398, 399, 400, 401, 402, 403, 404,
-  405, 406, 407, 408, 409, 410, 411, 412,
-  413, 414, 415,  -1,  -1, 416, 417, 418,
-  419, 420, 421, 422, 423, 424, 425, 426,
-  427, 428, 429, 430, 431, 432, 433, 434,
-  435, 436, 437, 438, 439, 440, 441, 442,
-  443, 444,  -1, 445, 446, 447, 448, 449,
-  450, 451, 452, 453, 454, 455, 456,  -1,
+   45,  46,  47,  48,  -1,  -1,  -1,  49,
+   50,  51,  52,  53,  54,  55,  56,  57,
+   58,  59,  60,  61,  62,  63,  64,  65,
+   66,  67,  68,  69,  -1,  70,  71,  72,
+   73,  74,  -1,  75,  76,  77,  -1,  -1,
+   -1,  78,  -1,  79,  80,  81,  82,  83,
+   84,  -1,  -1,  85,  86,  87,  88,  89,
+   90,  91,  92,  -1,  -1,  93,  94,  95,
+   96,  97,  98,  -1,  99, 100, 101, 102,
+  103, 104,  -1, 105, 106, 107,  -1, 108,
+  109, 110, 111, 112, 113, 114, 115, 116,
+  117, 118, 119,  -1, 120, 121,  -1, 122,
+  123, 124, 125,  -1,  -1,  -1, 126, 127,
+  128,  -1, 129,  -1, 130,  -1,  -1, 131,
+  132,  -1,  -1, 133, 134, 135,  -1,  -1,
+  136, 137, 138, 139, 140, 141, 142, 143,
+  144, 145, 146, 147, 148, 149, 150, 151,
+  152, 153, 154, 155, 156, 157, 158, 159,
+  160, 161, 162, 163, 164, 165, 166, 167,
+  168, 169, 170, 171, 172, 173, 174, 175,
+  176, 177, 178, 179, 180, 181, 182, 183,
+  184, 185, 186, 187, 188, 189, 190, 191,
+  192, 193, 194, 195, 196, 197, 198, 199,
+  200, 201, 202, 203, 204, 205, 206, 207,
+  208, 209, 210, 211, 212, 213, 214, 215,
+  216, 217, 218, 219, 220, 221, 222, 223,
+  224, 225, 226, 227, 228, 229, 230, 231,
+  232, 233, 234, 235, 236, 237, 238, 239,
+  240, 241, 242, 243, 244, 245, 246, 247,
+  248, 249, 250, 251, 252, 253, 254, 255,
+  256, 257, 258, 259, 260, 261, 262, 263,
+  264, 265, 266, 267, 268, 269, 270, 271,
+  272, 273, 274, 275, 276, 277, 278, 279,
+  280, 281, 282, 283, 284, 285, 286, 287,
+  288, 289, 290, 291, 292, 293, 294, 295,
+  296, 297, 298, 299, 300, 301, 302, 303,
+  304, 305, 306, 307, 308, 309, 310, 311,
+  312, 313, 314, 315, 316, 317, 318, 319,
+  320, 321, 322, 323, 324, 325, 326, 327,
+  328, 329, 330,  -1, 331, 332, 333, 334,
+  335, 336, 337, 338, 339, 340, 341, 342,
+  343, 344, 345, 346, 347, 348, 349, 350,
+  351, 352, 353, 354, 355, 356, 357, 358,
+  359, 360, 361, 362, 363, 364, 365, 366,
+  367, 368, 369, 370, 371, 372, 373, 374,
+  375, 376, 377, 378, 379, 380, 381,  -1,
+  382, 383, 384, 385, 386, 387, 388, 389,
+  390, 391, 392, 393, 394, 395, 396, 397,
+  398, 399, 400, 401, 402, 403, 404, 405,
+  406, 407, 408, 409, 410, 411, 412, 413,
+  414, 415, 416,  -1,  -1, 417, 418, 419,
+  420, 421, 422, 423, 424, 425, 426, 427,
+  428, 429, 430, 431, 432, 433, 434, 435,
+  436, 437, 438, 439, 440, 441, 442, 443,
+  444, 445,  -1, 446, 447, 448, 449, 450,
+  451, 452, 453, 454, 455, 456, 457,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
@@ -1938,10 +1938,10 @@ const int16_t __jisx0213_from_ucs_level1[2715] =
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1, 457, 458,  -1, 459,
-  460, 461,  -1,  -1,  -1,  -1,  -1,  -1,
+   -1,  -1,  -1,  -1, 458, 459,  -1, 460,
+  461, 462,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1, 462,  -1,  -1, 463, 464,  -1, 465,
+   -1, 463,  -1,  -1, 464, 465,  -1, 466,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
@@ -2070,90 +2070,90 @@ const int16_t __jisx0213_from_ucs_level1[2715] =
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-  466,  -1, 467,  -1,  -1,  -1, 468,  -1,
-  469,  -1,  -1,  -1, 470, 471, 472, 473,
-   -1, 474,  -1,  -1, 475,  -1,  -1, 476,
-  477,  -1,  -1,  -1,  -1, 478,  -1,  -1,
-  479,  -1, 480,  -1,  -1, 481, 482,  -1,
-   -1,  -1,  -1, 483, 484,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1, 485,  -1, 486,
-   -1, 487, 488,  -1,  -1, 489,  -1,  -1,
+  467,  -1, 468,  -1,  -1,  -1, 469,  -1,
+  470,  -1,  -1,  -1, 471, 472, 473, 474,
+   -1, 475,  -1,  -1, 476,  -1,  -1, 477,
+  478,  -1,  -1,  -1,  -1, 479,  -1,  -1,
+  480,  -1, 481,  -1,  -1, 482, 483,  -1,
+   -1,  -1,  -1, 484, 485,  -1, 486,  -1,
+   -1,  -1,  -1,  -1,  -1, 487,  -1, 488,
+   -1, 489, 490,  -1,  -1, 491,  -1,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-  490, 491,  -1, 492, 493, 494,  -1, 495,
-   -1, 496,  -1,  -1,  -1,  -1,  -1, 497,
-   -1, 498, 499,  -1, 500, 501,  -1,  -1,
-   -1,  -1, 502,  -1,  -1,  -1,  -1, 503,
+  492, 493,  -1, 494, 495, 496,  -1, 497,
+   -1, 498,  -1,  -1,  -1,  -1,  -1, 499,
+   -1, 500, 501,  -1, 502, 503,  -1,  -1,
+   -1,  -1, 504,  -1,  -1,  -1,  -1, 505,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1, 504,  -1,  -1, 505, 506, 507, 508,
-  509,  -1,  -1,  -1, 510, 511,  -1, 512,
-   -1,  -1,  -1,  -1,  -1, 513,  -1,  -1,
-  514,  -1,  -1,  -1, 515,  -1, 516,  -1,
+   -1, 506,  -1,  -1, 507, 508, 509, 510,
+  511,  -1,  -1,  -1, 512, 513,  -1, 514,
+   -1,  -1,  -1,  -1,  -1, 515,  -1,  -1,
+  516,  -1,  -1,  -1, 517,  -1, 518,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1, 517,  -1,  -1,  -1,  -1,
-   -1, 518, 519,  -1,  -1,  -1, 520,  -1,
-   -1,  -1, 521,  -1,  -1, 522, 523,  -1,
-  524,  -1,  -1,  -1,  -1,  -1,  -1, 525,
+   -1,  -1,  -1, 519,  -1,  -1,  -1,  -1,
+   -1, 520, 521,  -1,  -1,  -1, 522,  -1,
+   -1,  -1, 523,  -1,  -1, 524, 525,  -1,
+  526,  -1,  -1,  -1,  -1,  -1,  -1, 527,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1, 526, 527,
-   -1,  -1,  -1,  -1,  -1, 528,  -1, 529,
-   -1, 530,  -1, 531,  -1, 532, 533, 534,
-  535, 536,  -1,  -1, 537, 538,  -1, 539,
-  540,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1, 541,  -1,  -1,  -1,  -1,  -1,
-   -1, 542,  -1, 543, 544, 545,  -1, 546,
-   -1,  -1,  -1,  -1,  -1, 547,  -1,  -1,
-   -1,  -1, 548,  -1, 549,  -1,  -1, 550,
-   -1,  -1,  -1,  -1,  -1,  -1, 551,  -1,
+   -1,  -1,  -1,  -1,  -1,  -1, 528, 529,
+   -1,  -1,  -1,  -1,  -1, 530,  -1, 531,
+   -1, 532,  -1, 533,  -1, 534, 535, 536,
+  537, 538,  -1,  -1, 539, 540,  -1, 541,
+  542,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+   -1,  -1, 543,  -1,  -1,  -1,  -1,  -1,
+   -1, 544,  -1, 545, 546, 547,  -1, 548,
+   -1,  -1,  -1,  -1,  -1, 549,  -1,  -1,
+   -1,  -1, 550,  -1, 551,  -1,  -1, 552,
+   -1,  -1,  -1,  -1,  -1,  -1, 553,  -1,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-  552,  -1, 553,  -1,  -1,  -1,  -1, 554,
-   -1,  -1, 555,  -1,  -1,  -1,  -1,  -1,
-   -1, 556,  -1,  -1,  -1, 557,  -1,  -1,
-  558,  -1,  -1,  -1, 559,  -1,  -1,  -1,
-  560, 561, 562,  -1,  -1,  -1,  -1,  -1,
-   -1, 563,  -1,  -1, 564,  -1, 565, 566,
-  567, 568,  -1,  -1,  -1,  -1,  -1,  -1,
-  569,  -1, 570, 571, 572,  -1, 573,  -1,
-   -1,  -1,  -1,  -1,  -1, 574, 575,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1,  -1, 576,
-   -1,  -1,  -1, 577,  -1,  -1, 578,  -1,
-   -1, 579,  -1,  -1,  -1,  -1, 580,  -1,
-  581, 582,  -1, 583, 584, 585,  -1, 586,
-  587, 588,  -1, 589,  -1,  -1,  -1,  -1,
-   -1, 590, 591,  -1,  -1, 592,  -1,  -1,
-  593,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1, 594, 595,  -1, 596,  -1,  -1,  -1,
-   -1,  -1,  -1, 597,  -1, 598,  -1, 599,
-  600, 601, 602, 603,  -1,  -1,  -1,  -1,
-  604, 605,  -1, 606,  -1,  -1,  -1,  -1,
-   -1, 607,  -1,  -1,  -1,  -1, 608, 609,
-   -1,  -1,  -1, 610, 611,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1,  -1, 612,
-  613, 614,  -1,  -1,  -1,  -1,  -1,  -1,
-  615,  -1, 616,  -1, 617, 618,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1, 619,  -1,
-   -1,  -1, 620,  -1,  -1,  -1, 621, 622,
-   -1,  -1, 623,  -1,  -1,  -1, 624,  -1,
-  625,  -1,  -1,  -1,  -1,  -1, 626,  -1,
-   -1,  -1, 627,  -1,  -1,  -1,  -1,  -1,
-   -1, 628, 629, 630,  -1,  -1,  -1, 631,
-  632, 633,  -1,  -1,  -1, 634,  -1, 635,
-   -1,  -1,  -1, 636,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1, 637, 638,  -1,
-  639, 640, 641, 642,  -1,  -1,  -1, 643,
-   -1,  -1,  -1,  -1, 644, 645,  -1, 646,
-  647,  -1, 648, 649, 650,  -1,  -1, 651,
+  554,  -1, 555,  -1,  -1,  -1,  -1, 556,
+   -1,  -1, 557,  -1,  -1,  -1,  -1,  -1,
+   -1, 558,  -1,  -1,  -1, 559,  -1,  -1,
+  560,  -1,  -1,  -1, 561,  -1,  -1,  -1,
+  562, 563, 564,  -1,  -1,  -1,  -1,  -1,
+   -1, 565,  -1,  -1, 566,  -1, 567, 568,
+  569, 570,  -1,  -1,  -1,  -1,  -1,  -1,
+  571,  -1, 572, 573, 574,  -1, 575,  -1,
+   -1,  -1,  -1,  -1,  -1, 576, 577,  -1,
+   -1,  -1,  -1,  -1,  -1,  -1,  -1, 578,
+   -1,  -1,  -1, 579,  -1,  -1, 580,  -1,
+   -1, 581,  -1,  -1,  -1,  -1, 582,  -1,
+  583, 584,  -1, 585, 586, 587,  -1, 588,
+  589, 590,  -1, 591,  -1,  -1,  -1,  -1,
+   -1, 592, 593,  -1,  -1, 594,  -1,  -1,
+  595,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+   -1, 596, 597,  -1, 598,  -1,  -1,  -1,
+   -1,  -1,  -1, 599,  -1, 600,  -1, 601,
+  602, 603, 604, 605,  -1,  -1,  -1,  -1,
+  606, 607,  -1, 608,  -1,  -1,  -1,  -1,
+   -1, 609,  -1,  -1,  -1,  -1, 610, 611,
+   -1,  -1,  -1, 612, 613,  -1,  -1,  -1,
+   -1,  -1,  -1,  -1,  -1,  -1,  -1, 614,
+  615, 616,  -1,  -1,  -1,  -1,  -1,  -1,
+  617,  -1, 618,  -1, 619, 620,  -1,  -1,
+   -1,  -1,  -1,  -1,  -1,  -1, 621,  -1,
+   -1,  -1, 622,  -1,  -1,  -1, 623, 624,
+   -1,  -1, 625,  -1,  -1,  -1, 626,  -1,
+  627,  -1,  -1,  -1,  -1,  -1, 628,  -1,
+   -1,  -1, 629,  -1,  -1,  -1,  -1,  -1,
+   -1, 630, 631, 632,  -1,  -1,  -1, 633,
+  634, 635,  -1,  -1,  -1, 636,  -1, 637,
+   -1,  -1,  -1, 638,  -1,  -1,  -1,  -1,
+   -1,  -1,  -1,  -1,  -1, 639, 640,  -1,
+  641, 642, 643, 644,  -1,  -1,  -1, 645,
+   -1,  -1,  -1,  -1, 646, 647,  -1, 648,
+  649,  -1, 650, 651, 652,  -1,  -1, 653,
    -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1, 652,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1, 653,  -1,  -1,  -1,  -1, 654,
-   -1, 655,  -1, 656, 657, 658,  -1,  -1,
-   -1,  -1,  -1, 659,  -1,  -1,  -1,  -1,
-   -1, 660,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1,  -1, 661,
-  662, 663, 664, 665,  -1,  -1,  -1, 666,
-  667,  -1, 668, 669,  -1,  -1, 670,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1, 671,  -1,
-  672,  -1,  -1,  -1,  -1,  -1,  -1, 673,
-  674,  -1, 675,
+   -1,  -1, 654,  -1,  -1,  -1,  -1,  -1,
+   -1,  -1, 655,  -1,  -1,  -1,  -1, 656,
+   -1, 657,  -1, 658, 659, 660,  -1,  -1,
+   -1,  -1,  -1, 661,  -1,  -1,  -1,  -1,
+   -1, 662,  -1,  -1,  -1,  -1,  -1,  -1,
+   -1,  -1,  -1,  -1,  -1,  -1,  -1, 663,
+  664, 665, 666, 667,  -1,  -1,  -1, 668,
+  669,  -1, 670, 671,  -1,  -1, 672,  -1,
+   -1,  -1,  -1,  -1,  -1,  -1, 673,  -1,
+  674,  -1,  -1,  -1,  -1,  -1,  -1, 675,
+  676,  -1, 677,
 };
 
 const uint16_t __jisx0213_from_ucs_level2[] =
@@ -2314,7 +2314,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   /* 0x2000 */
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-  0x213e, 0x0000, 0x0000, 0x237c, 0x0000, 0x213d, 0x2142, 0x0000,
+  0x213e, 0x0000, 0x0000, 0x237c, 0x213d, 0x0000, 0x2142, 0x0000,
   0x2146, 0x2147, 0x0000, 0x0000, 0x2148, 0x2149, 0x0000, 0x0000,
   0x2277, 0x2278, 0x2340, 0x0000, 0x0000, 0x2145, 0x2144, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -2396,7 +2396,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x0000, 0x223e, 0x223f, 0x2242, 0x2243, 0x223c, 0x223d,
   0x0000, 0x0000, 0x2244, 0x2245, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2251, 0x2252, 0x2253,
-  0x0000, 0x233a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x225d, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -2545,6 +2545,15 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x232e, 0x232f, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  /* 0x2980 */
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x233a,
   /* 0x29C0 */
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -3443,7 +3452,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x505a, 0x0000, 0x505d, 0x505b, 0x0000, 0x4a5d, 0x0000, 0x5058,
   0x2e3a, 0x3f2e, 0x0000, 0x4b73, 0x505f, 0x5060, 0xa14f, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3d24, 0x506d,
-  0x0000, 0x0000, 0xa157, 0x4750, 0x0000, 0x4936, 0x5068, 0x0000,
+  0x0000, 0x2e21, 0xa157, 0x4750, 0x0000, 0x4936, 0x5068, 0x0000,
   0x4a70, 0x0000, 0x3236, 0x0000, 0x0000, 0x0000, 0x506c, 0x0000,
   /* 0x5000 */
   0xa158, 0x2e3b, 0x2e3c, 0x0000, 0x0000, 0x5066, 0x506f, 0x0000,
@@ -3530,7 +3539,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x0000, 0x0000, 0x4466, 0x516d, 0x0000, 0x0000, 0x4227,
   0x0000, 0x2e5e, 0x3a6f, 0x516e, 0x516f, 0x4130, 0x0000, 0x516c,
   0x0000, 0x0000, 0x0000, 0x0000, 0x5171, 0xa339, 0x4b36, 0x2e5f,
-  0x0000, 0x0000, 0x0000, 0x3964, 0xa33a, 0x0000, 0x5170, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x3964, 0xa33a, 0x2f7e, 0x5170, 0x0000,
   0x0000, 0x2e60, 0x0000, 0x3775, 0x3a5e, 0x476d, 0x0000, 0x0000,
   0x0000, 0x5174, 0x5172, 0x0000, 0xa33b, 0x0000, 0x0000, 0x497b,
   0x3e6a, 0x517b, 0x3364, 0x5175, 0x5173, 0x414f, 0x0000, 0xa33c,
@@ -3593,7 +3602,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x525e, 0x0000, 0x3549, 0x3346, 0x0000, 0x0000, 0x0000,
   0x3967, 0x3548, 0x445f, 0x3125, 0x4631, 0x4c3e, 0x3921, 0x4d79,
   0x4547, 0x387e, 0x2e75, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-  0x0000, 0x0000, 0x0000, 0x372f, 0x0000, 0x5267, 0x0000, 0x3663,
+  0x0000, 0x0000, 0x0000, 0x372f, 0x0000, 0x5267, 0x4f7e, 0x3663,
   0x4b4a, 0x0000, 0x0000, 0x0000, 0xa365, 0x0000, 0x485d, 0x2e76,
   0xa366, 0x5266, 0x0000, 0x345e, 0x5261, 0x5262, 0x5264, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5265, 0x0000,
@@ -3673,7 +3682,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   /* 0x5640 */
   0xa445, 0x0000, 0x313d, 0x0000, 0x0000, 0x0000, 0x0000, 0xa446,
   0x0000, 0x2f33, 0x0000, 0x0000, 0x4139, 0x0000, 0x5359, 0x0000,
-  0x535a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x535a, 0x0000, 0x0000, 0x7427, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x337a, 0x0000, 0x0000, 0xa447, 0x0000,
   0xa448, 0x0000, 0x0000, 0x0000, 0x5361, 0x0000, 0x2f35, 0x0000,
   0x346f, 0x0000, 0x5364, 0x5360, 0x5363, 0xa449, 0x0000, 0x2f37,
@@ -3804,7 +3813,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x0000, 0x0000, 0xa551, 0xa552, 0x3138, 0x342f, 0xa553,
   0x5529, 0x0000, 0x4c45, 0x4931, 0x0000, 0x0000, 0xa554, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3028, 0x0000,
-  0x0000, 0x0000, 0x0000, 0x3079, 0x0000, 0x0000, 0x0000, 0x3b51,
+  0x7e7a, 0x0000, 0x0000, 0x3079, 0x0000, 0x0000, 0x0000, 0x3b51,
   /* 0x5A00 */
   0x0000, 0x3052, 0x0000, 0x3023, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x5532, 0x0000, 0x0000, 0xa558, 0xa559, 0x0000, 0x0000,
@@ -3890,7 +3899,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x3649, 0x557b, 0x0000, 0x0000, 0x0000, 0x356f, 0x557c, 0x0000,
   0x367e, 0x0000, 0x464f, 0x3230, 0x0000, 0x3b53, 0x557d, 0x5622,
   0x5621, 0x367d, 0x0000, 0x557e, 0x0000, 0x4538, 0x0000, 0x0000,
-  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4230, 0xa831,
+  0x0000, 0x0000, 0x0000, 0x7e7b, 0x0000, 0x0000, 0x4230, 0xa831,
   0x454b, 0x3c48, 0x4f60, 0xa832, 0x4158, 0x4d7a, 0x0000, 0xa833,
   0xa834, 0xa835, 0x0000, 0x0000, 0x5624, 0x0000, 0x5625, 0x4656,
   0xa836, 0x3b33, 0x0000, 0x0000, 0x0000, 0x0000, 0x5627, 0x0000,
@@ -3965,7 +3974,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x742b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x742c, 0x5670,
   0x0000, 0x4828, 0x5671, 0x4a3e, 0x5672, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0xa87c, 0xa87d, 0xa87e, 0xac21, 0x0000,
-  0x0000, 0x0000, 0x3433, 0x4a3f, 0x472f, 0x5674, 0x5675, 0x0000,
+  0x0000, 0x0000, 0x3433, 0x4a3f, 0x472f, 0x5674, 0x5675, 0x7e7c,
   0x392c, 0x3434, 0x5676, 0x3838, 0x4d44, 0x4d29, 0x3476, 0x5678,
   /* 0x5E80 */
   0x0000, 0x4423, 0x0000, 0x392d, 0x3e31, 0x0000, 0x0000, 0x485f,
@@ -4818,7 +4827,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x7852, 0x6168, 0x0000, 0x6166, 0x0000, 0x6167, 0x0000, 0xf15b,
   0x0000, 0x0000, 0x0000, 0xf15e, 0x0000, 0x7853, 0x7854, 0x0000,
   0xf159, 0x7855, 0x0000, 0xf15f, 0xf160, 0x0000, 0x7856, 0x6169,
-  0x616b, 0x616c, 0x616d, 0x0000, 0x616e, 0xf162, 0x0000, 0x616a,
+  0x616b, 0x616c, 0x616d, 0x0000, 0x616e, 0xf162, 0x7e7d, 0x616a,
   0xf163, 0x0000, 0x0000, 0x0000, 0x0000, 0x7857, 0x0000, 0x0000,
   0x6170, 0x0000, 0x0000, 0xf165, 0x616f, 0x7858, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x6171, 0xf164, 0x0000, 0x0000, 0x0000,
@@ -5116,7 +5125,7 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x0000, 0x7a35, 0x0000, 0x3f25, 0x4136, 0x6564, 0x0000,
   0x0000, 0x6566, 0x6567, 0x0000, 0x0000, 0x6563, 0x6565, 0x0000,
   0x0000, 0x7a36, 0x0000, 0x0000, 0x0000, 0x0000, 0x655a, 0x6562,
-  0x0000, 0x656a, 0x6569, 0x0000, 0x0000, 0x4b7a, 0x0000, 0x0000,
+  0x0000, 0x656a, 0x6569, 0x7e7e, 0x0000, 0x4b7a, 0x0000, 0x0000,
   0x372b, 0x0000, 0x0000, 0xf458, 0x0000, 0xf459, 0x0000, 0x0000,
   0x0000, 0x6568, 0x0000, 0x656c, 0x656b, 0x656f, 0xf45a, 0x6571,
   /* 0x7E80 */
@@ -6523,6 +6532,15 @@ const uint16_t __jisx0213_from_ucs_level2[] =
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  /* 0x20B80 */
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4f54,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   /* 0x20D40 */
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa377, 0x0000, 0x0000,
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
diff --git a/iconvdata/jisx0213.h b/iconvdata/jisx0213.h
index c92c70fdee..c549f590b0 100644
--- a/iconvdata/jisx0213.h
+++ b/iconvdata/jisx0213.h
@@ -1,5 +1,5 @@
 /* Functions for JISX0213 conversion.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Bruno Haible <bruno@clisp.org>, 2002.
 
@@ -77,4 +77,27 @@ ucs4_to_jisx0213 (uint32_t ucs)
   return 0x0000;
 }
 
+static inline int
+__attribute ((always_inline))
+jisx0213_added_in_2004_p (uint16_t val)
+{
+  /* From JISX 0213:2000 to JISX 0213:2004, 10 characters were added to
+     plane 1, and plane 2 was left unchanged.  See ISO-IR-233.  */
+  switch (val >> 8)
+    {
+    case 0x2e:
+      return val == 0x2e21;
+    case 0x2f:
+      return val == 0x2f7e;
+    case 0x4f:
+      return val == 0x4f54 || 0x4f7e;
+    case 0x74:
+      return val == 0x7427;
+    case 0x7e:
+      return val >= 0x7e7a && val <= 0x7e7e;
+    default:
+      return 0;
+    }
+}
+
 #endif /* _JISX0213_H */
diff --git a/iconvdata/testdata/EUC-JISX0213 b/iconvdata/testdata/EUC-JISX0213
index 964e625912..3d84de18cb 100644
--- a/iconvdata/testdata/EUC-JISX0213
+++ b/iconvdata/testdata/EUC-JISX0213
@@ -242,7 +242,7 @@ p q r s t u v w x y z { | } ~
                              
                
                                   
-                   
+                 
                
                
                
@@ -253,7 +253,7 @@ p q r s t u v w x y z { | } ~
                
                
                
-             
+              
                  
                
                
@@ -443,9 +443,9 @@ p q r s t u v w x y z { | } ~
    ϡ Ϣ ϣ Ϥ ϥ Ϧ ϧ Ϩ ϩ Ϫ ϫ Ϭ ϭ Ϯ ϯ
 ϰ ϱ ϲ ϳ ϴ ϵ ϶ Ϸ ϸ Ϲ Ϻ ϻ ϼ Ͻ Ͼ Ͽ
                
-                 
+               
                
-             
+              
    С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
 а б в г д е ж з и й к л м н о п
                
@@ -662,7 +662,7 @@ p q r s t u v w x y z { | } ~
                
                
               
-                   
+                 
                
                
                
@@ -727,4 +727,4 @@ p q r s t u v w x y z { | } ~
                
                
                
-         
+              
diff --git a/iconvdata/testdata/EUC-JISX0213..UTF8 b/iconvdata/testdata/EUC-JISX0213..UTF8
index e0b762d514..86942e4667 100644
--- a/iconvdata/testdata/EUC-JISX0213..UTF8
+++ b/iconvdata/testdata/EUC-JISX0213..UTF8
@@ -165,7 +165,7 @@ p q r s t u v w x y z { | } ~
 䵷 鼃 鼗 鼙 鼯 鼷 鼺 鼽 齁 齅 齆 齓 齕 齘 𪗱 齝
 𪘂 齩 𪘚 齭 齰 齵 𪚲
      、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨
-^  ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー ― ‐ /
+^  ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー — ‐ /
 \ 〜 ‖ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ]
 { } 〈 〉 《 》 「 」 『 』 【 】 + − ± ×
 ÷ = ≠ < > ≦ ≧ ∞ ∴ ♂ ♀ ° ′ ″ ℃ ¥
@@ -177,7 +177,7 @@ p q r s t u v w x y z { | } ~
 ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ≢ ≃ ≅ ≈ ≶
 ≷ ↔ Å ‰ ♯ ♭ ♪ † ‡ ¶ ♮ ♫ ♬ ♩ ◯
    ▷ ▶ ◁ ◀ ↗ ↘ ↖ ↙ ⇄ ⇨ ⇦ ⇧ ⇩ ⤴ ⤵
-0 1 2 3 4 5 6 7 8 9 ⊙ ◉ 〽 ﹆ ﹅ ◦
+0 1 2 3 4 5 6 7 8 9 ⦿ ◉ 〽 ﹆ ﹅ ◦
 • A B C D E F G H I J K L M N O
 P Q R S T U V W X Y Z ∓ ℵ ℏ ㏋ ℓ
 ℧ a b c d e f g h i j k l m n o
@@ -242,7 +242,7 @@ p q r s t u v w x y z { | } ~
 ㎜ ㎝ ㎞ ㎎ ㎏ ㏄ ㎡ Ⅻ                      ㍻
 〝 〟 № ㏍ ℡ ㊤ ㊥ ㊦ ㊧ ㊨ ㈱ ㈲ ㈹ ㍾ ㍽ ㍼
          ∮             ∟ ⊿          ❖ ☞
-      𠀋 㐂 丨 丯 丰 亍 仡 份 仿 伃 伋 你 佈 佉
+   俱 𠀋 㐂 丨 丯 丰 亍 仡 份 仿 伃 伋 你 佈 佉
 佖 佟 佪 佬 佾 侊 侔 侗 侮 俉 俠 倁 倂 倎 倘 倧
 倮 偀 倻 偁 傔 僌 僲 僐 僦 僧 儆 儃 儋 儞 儵 兊
 免 兕 兗 㒵 冝 凃 凊 凞 凢 凮 刁 㓛 刓 刕 剉 剗
@@ -253,7 +253,7 @@ p q r s t u v w x y z { | } ~
 囊 圊 𡈽 圡 圯 圳 圴 坰 坷 坼 垜 﨏 𡌛 垸 埇 埈
 埏 埤 埭 埵 埶 埿 堉 塚 塡 塤 塀 塼 墉 增 墨 墩
 𡑮 壒 壎 壔 壚 壠 壩 夌 虁 奝 奭 妋 妒 妤 姃 姒
-姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥
+姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥 剝
    亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 握 渥
 旭 葦 芦 鯵 梓 圧 斡 扱 宛 姐 虻 飴 絢 綾 鮎 或
 粟 袷 安 庵 按 暗 案 闇 鞍 杏 以 伊 位 依 偉 囲
@@ -443,9 +443,9 @@ p q r s t u v w x y z { | } ~
    蓮 連 錬 呂 魯 櫓 炉 賂 路 露 労 婁 廊 弄 朗
 楼 榔 浪 漏 牢 狼 篭 老 聾 蝋 郎 六 麓 禄 肋 録
 論 倭 和 話 歪 賄 脇 惑 枠 鷲 亙 亘 鰐 詫 藁 蕨
-椀 湾 碗 腕    孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍
+椀 湾 碗 腕 𠮟 孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍
 屢 層 屮 𡚴 屺 岏 岟 岣 岪 岺 峋 峐 峒 峴 𡸴 㟢
-崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋
+崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋 吞
    弌 丐 丕 个 丱 丶 丼 丿 乂 乖 乘 亂 亅 豫 亊
 舒 弍 于 亞 亟 亠 亢 亰 亳 亶 从 仍 仄 仆 仂 仗
 仞 仭 仟 价 伉 佚 估 佛 佝 佗 佇 佶 侈 侏 侘 佻
@@ -662,7 +662,7 @@ p q r s t u v w x y z { | } ~
 麸 麪 麭 靡 黌 黎 黏 黐 黔 黜 點 黝 黠 黥 黨 黯
 黴 黶 黷 黹 黻 黼 黽 鼇 鼈 皷 鼕 鼡 鼬 鼾 齊 齒
 齔 齣 齟 齠 齡 齦 齧 齬 齪 齷 齲 齶 龕 龜 龠
-   堯 槇 遙 瑤 凜 熙    巢 帔 帘 幘 幞 庾 廊 廋
+   堯 槇 遙 瑤 凜 熙 噓 巢 帔 帘 幘 幞 庾 廊 廋
 廹 开 异 弇 弝 弣 弴 弶 弽 彀 彅 彔 彘 彤 彧 彽
 徉 徜 徧 徯 徵 德 忉 忞 忡 忩 怍 怔 怘 怳 怵 恇
 悔 悝 悞 惋 惔 惕 惝 惸 愜 愫 愰 愷 慨 憍 憎 憼
@@ -727,4 +727,4 @@ p q r s t u v w x y z { | } ~
 魞 魹 魦 魲 魵 鮄 鮊 鮏 鮞 鮧 鯁 鯎 鯥 鯸 鯽 鰀
 鰣 鱁 鱏 鱐 鱓 鱣 鱥 鱷 鴝 鴞 鵃 鵇 鵒 鵣 鵰 鵼
 鶊 鶖 鷀 鶬 鶼 鷗 𪆐 鷧 鸇 鸕 鹼 麞 麤 麬 麯 麴
-麵 黃 黑 鼐 鼹 齗 龐 龔 龗 龢
+麵 黃 黑 鼐 鼹 齗 龐 龔 龗 龢 姸 屛 幷 瘦 繫
diff --git a/iconvdata/testdata/ISO-2022-JP-3 b/iconvdata/testdata/ISO-2022-JP-3
index 44b791057a..91b54e9d10 100644
--- a/iconvdata/testdata/ISO-2022-JP-3
+++ b/iconvdata/testdata/ISO-2022-JP-3
@@ -86,7 +86,7 @@ p q r s t u v w x y z { | } ~
 $(O-P(B $(O-Q(B $(O-R(B $(O-S(B $(O-T(B $(O-U(B $(O-V(B $(O-W(B                      $(O-_(B
 $(O-`(B $(O-a(B $(O-b(B $(O-c(B $(O-d(B $(O-e(B $(O-f(B $(O-g(B $(O-h(B $(O-i(B $(O-j(B $(O-k(B $(O-l(B $(O-m(B $(O-n(B $(O-o(B
          $(O-s(B             $(O-x(B $(O-y(B          $(O-}(B $(O-~(B
-      $(O."(B $(O.#(B $(O.$(B $(O.%(B $(O.&(B $(O.'(B $(O.((B $(O.)(B $(O.*(B $(O.+(B $(O.,(B $(O.-(B $(O..(B $(O./(B
+   $(Q.!(B $(O."(B $(O.#(B $(O.$(B $(O.%(B $(O.&(B $(O.'(B $(O.((B $(O.)(B $(O.*(B $(O.+(B $(O.,(B $(O.-(B $(O..(B $(O./(B
 $(O.0(B $(O.1(B $(O.2(B $(O.3(B $(O.4(B $(O.5(B $(O.6(B $(O.7(B $(O.8(B $(O.9(B $(O.:(B $(O.;(B $(O.<(B $(O.=(B $(O.>(B $(O.?(B
 $(O.@(B $(O.A(B $(O.B(B $(O.C(B $(O.D(B $(O.E(B $(O.F(B $(O.G(B $(O.H(B $(O.I(B $(O.J(B $(O.K(B $(O.L(B $(O.M(B $(O.N(B $(O.O(B
 $(O.P(B $(O.Q(B $(O.R(B $(O.S(B $(O.T(B $(O.U(B $(O.V(B $(O.W(B $(O.X(B $(O.Y(B $(O.Z(B $(O.[(B $(O.\(B $(O.](B $(O.^(B $(O._(B
@@ -97,7 +97,7 @@ p q r s t u v w x y z { | } ~
 $(O/@(B $(O/A(B $(O/B(B $(O/C(B $(O/D(B $(O/E(B $(O/F(B $(O/G(B $(O/H(B $(O/I(B $(O/J(B $(O/K(B $(O/L(B $(O/M(B $(O/N(B $(O/O(B
 $(O/P(B $(O/Q(B $(O/R(B $(O/S(B $(O/T(B $(O/U(B $(O/V(B $(O/W(B $(O/X(B $(O/Y(B $(O/Z(B $(O/[(B $(O/\(B $(O/](B $(O/^(B $(O/_(B
 $(O/`(B $(O/a(B $(O/b(B $(O/c(B $(O/d(B $(O/e(B $(O/f(B $(O/g(B $(O/h(B $(O/i(B $(O/j(B $(O/k(B $(O/l(B $(O/m(B $(O/n(B $(O/o(B
-$(O/p(B $(O/q(B $(O/r(B $(O/s(B $(O/t(B $(O/u(B $(O/v(B $(O/w(B $(O/x(B $(O/y(B $(O/z(B $(O/{(B $(O/|(B $(O/}(B
+$(O/p(B $(O/q(B $(O/r(B $(O/s(B $(O/t(B $(O/u(B $(O/v(B $(O/w(B $(O/x(B $(O/y(B $(O/z(B $(O/{(B $(O/|(B $(O/}(B $(Q/~(B
    $B0!(B $B0"(B $B0#(B $B0$(B $B0%(B $B0&(B $B0'(B $B0((B $B0)(B $B0*(B $B0+(B $B0,(B $B0-(B $B0.(B $B0/(B
 $B00(B $B01(B $B02(B $B03(B $B04(B $B05(B $B06(B $B07(B $B08(B $B09(B $B0:(B $B0;(B $B0<(B $B0=(B $B0>(B $B0?(B
 $B0@(B $B0A(B $B0B(B $B0C(B $B0D(B $B0E(B $B0F(B $B0G(B $B0H(B $B0I(B $B0J(B $B0K(B $B0L(B $B0M(B $B0N(B $B0O(B
@@ -287,9 +287,9 @@ p q r s t u v w x y z { | } ~
    $BO!(B $BO"(B $BO#(B $BO$(B $BO%(B $BO&(B $BO'(B $BO((B $BO)(B $BO*(B $BO+(B $BO,(B $BO-(B $BO.(B $BO/(B
 $BO0(B $BO1(B $BO2(B $BO3(B $BO4(B $BO5(B $BO6(B $BO7(B $BO8(B $BO9(B $BO:(B $BO;(B $BO<(B $BO=(B $BO>(B $BO?(B
 $BO@(B $BOA(B $BOB(B $BOC(B $BOD(B $BOE(B $BOF(B $BOG(B $BOH(B $BOI(B $BOJ(B $BOK(B $BOL(B $BOM(B $BON(B $BOO(B
-$BOP(B $BOQ(B $BOR(B $BOS(B    $(OOU(B $(OOV(B $(OOW(B $(OOX(B $(OOY(B $(OOZ(B $(OO[(B $(OO\(B $(OO](B $(OO^(B $(OO_(B
-$(OO`(B $(OOa(B $(OOb(B $(OOc(B $(OOd(B $(OOe(B $(OOf(B $(OOg(B $(OOh(B $(OOi(B $(OOj(B $(OOk(B $(OOl(B $(OOm(B $(OOn(B $(OOo(B
-$(OOp(B $(OOq(B $(OOr(B $(OOs(B $(OOt(B $(OOu(B $(OOv(B $(OOw(B $(OOx(B $(OOy(B $(OOz(B $(OO{(B $(OO|(B $(OO}(B
+$BOP(B $BOQ(B $BOR(B $BOS(B $(QOT(B $(QOU(B $(QOV(B $(QOW(B $(QOX(B $(QOY(B $(QOZ(B $(QO[(B $(QO\(B $(QO](B $(QO^(B $(QO_(B
+$(QO`(B $(QOa(B $(QOb(B $(QOc(B $(QOd(B $(QOe(B $(QOf(B $(QOg(B $(QOh(B $(QOi(B $(QOj(B $(QOk(B $(QOl(B $(QOm(B $(QOn(B $(QOo(B
+$(QOp(B $(QOq(B $(QOr(B $(QOs(B $(QOt(B $(QOu(B $(QOv(B $(QOw(B $(QOx(B $(QOy(B $(QOz(B $(QO{(B $(QO|(B $(QO}(B $(QO~(B
    $BP!(B $BP"(B $BP#(B $BP$(B $BP%(B $BP&(B $BP'(B $BP((B $BP)(B $BP*(B $BP+(B $BP,(B $BP-(B $BP.(B $BP/(B
 $BP0(B $BP1(B $BP2(B $BP3(B $BP4(B $BP5(B $BP6(B $BP7(B $BP8(B $BP9(B $BP:(B $BP;(B $BP<(B $BP=(B $BP>(B $BP?(B
 $BP@(B $BPA(B $BPB(B $BPC(B $BPD(B $BPE(B $BPF(B $BPG(B $BPH(B $BPI(B $BPJ(B $BPK(B $BPL(B $BPM(B $BPN(B $BPO(B
@@ -506,7 +506,7 @@ p q r s t u v w x y z { | } ~
 $BsP(B $BsQ(B $BsR(B $BsS(B $BsT(B $BsU(B $BsV(B $BsW(B $BsX(B $BsY(B $BsZ(B $Bs[(B $Bs\(B $Bs](B $Bs^(B $Bs_(B
 $Bs`(B $Bsa(B $Bsb(B $Bsc(B $Bsd(B $Bse(B $Bsf(B $Bsg(B $Bsh(B $Bsi(B $Bsj(B $Bsk(B $Bsl(B $Bsm(B $Bsn(B $Bso(B
 $Bsp(B $Bsq(B $Bsr(B $Bss(B $Bst(B $Bsu(B $Bsv(B $Bsw(B $Bsx(B $Bsy(B $Bsz(B $Bs{(B $Bs|(B $Bs}(B $Bs~(B
-   $Bt!(B $Bt"(B $Bt#(B $Bt$(B $Bt%(B $Bt&(B    $(Ot((B $(Ot)(B $(Ot*(B $(Ot+(B $(Ot,(B $(Ot-(B $(Ot.(B $(Ot/(B
+   $Bt!(B $Bt"(B $Bt#(B $Bt$(B $Bt%(B $Bt&(B $(Qt'(B $(Ot((B $(Ot)(B $(Ot*(B $(Ot+(B $(Ot,(B $(Ot-(B $(Ot.(B $(Ot/(B
 $(Ot0(B $(Ot1(B $(Ot2(B $(Ot3(B $(Ot4(B $(Ot5(B $(Ot6(B $(Ot7(B $(Ot8(B $(Ot9(B $(Ot:(B $(Ot;(B $(Ot<(B $(Ot=(B $(Ot>(B $(Ot?(B
 $(Ot@(B $(OtA(B $(OtB(B $(OtC(B $(OtD(B $(OtE(B $(OtF(B $(OtG(B $(OtH(B $(OtI(B $(OtJ(B $(OtK(B $(OtL(B $(OtM(B $(OtN(B $(OtO(B
 $(OtP(B $(OtQ(B $(OtR(B $(OtS(B $(OtT(B $(OtU(B $(OtV(B $(OtW(B $(OtX(B $(OtY(B $(OtZ(B $(Ot[(B $(Ot\(B $(Ot](B $(Ot^(B $(Ot_(B
@@ -571,7 +571,7 @@ p q r s t u v w x y z { | } ~
 $(O~@(B $(O~A(B $(O~B(B $(O~C(B $(O~D(B $(O~E(B $(O~F(B $(O~G(B $(O~H(B $(O~I(B $(O~J(B $(O~K(B $(O~L(B $(O~M(B $(O~N(B $(O~O(B
 $(O~P(B $(O~Q(B $(O~R(B $(O~S(B $(O~T(B $(O~U(B $(O~V(B $(O~W(B $(O~X(B $(O~Y(B $(O~Z(B $(O~[(B $(O~\(B $(O~](B $(O~^(B $(O~_(B
 $(O~`(B $(O~a(B $(O~b(B $(O~c(B $(O~d(B $(O~e(B $(O~f(B $(O~g(B $(O~h(B $(O~i(B $(O~j(B $(O~k(B $(O~l(B $(O~m(B $(O~n(B $(O~o(B
-$(O~p(B $(O~q(B $(O~r(B $(O~s(B $(O~t(B $(O~u(B $(O~v(B $(O~w(B $(O~x(B $(O~y(B
+$(O~p(B $(O~q(B $(O~r(B $(O~s(B $(O~t(B $(O~u(B $(O~v(B $(O~w(B $(O~x(B $(O~y(B $(Q~z(B $(Q~{(B $(Q~|(B $(Q~}(B $(Q~~(B
    $(P!!(B $(P!"(B $(P!#(B $(P!$(B $(P!%(B $(P!&(B $(P!'(B $(P!((B $(P!)(B $(P!*(B $(P!+(B $(P!,(B $(P!-(B $(P!.(B $(P!/(B
 $(P!0(B $(P!1(B $(P!2(B $(P!3(B $(P!4(B $(P!5(B $(P!6(B $(P!7(B $(P!8(B $(P!9(B $(P!:(B $(P!;(B $(P!<(B $(P!=(B $(P!>(B $(P!?(B
 $(P!@(B $(P!A(B $(P!B(B $(P!C(B $(P!D(B $(P!E(B $(P!F(B $(P!G(B $(P!H(B $(P!I(B $(P!J(B $(P!K(B $(P!L(B $(P!M(B $(P!N(B $(P!O(B
diff --git a/iconvdata/testdata/ISO-2022-JP-3..UTF8 b/iconvdata/testdata/ISO-2022-JP-3..UTF8
index 019a1eee7b..f93ad3daea 100644
--- a/iconvdata/testdata/ISO-2022-JP-3..UTF8
+++ b/iconvdata/testdata/ISO-2022-JP-3..UTF8
@@ -21,7 +21,7 @@ p q r s t u v w x y z { | } ~
 ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ≢ ≃ ≅ ≈ ≶
 ≷ ↔ Å ‰ ♯ ♭ ♪ † ‡ ¶ ♮ ♫ ♬ ♩ ◯
    ▷ ▶ ◁ ◀ ↗ ↘ ↖ ↙ ⇄ ⇨ ⇦ ⇧ ⇩ ⤴ ⤵
-0 1 2 3 4 5 6 7 8 9 ⊙ ◉ 〽 ﹆ ﹅ ◦
+0 1 2 3 4 5 6 7 8 9 ⦿ ◉ 〽 ﹆ ﹅ ◦
 • A B C D E F G H I J K L M N O
 P Q R S T U V W X Y Z ∓ ℵ ℏ ㏋ ℓ
 ℧ a b c d e f g h i j k l m n o
@@ -86,7 +86,7 @@ p q r s t u v w x y z { | } ~
 ㎜ ㎝ ㎞ ㎎ ㎏ ㏄ ㎡ Ⅻ                      ㍻
 〝 〟 № ㏍ ℡ ㊤ ㊥ ㊦ ㊧ ㊨ ㈱ ㈲ ㈹ ㍾ ㍽ ㍼
          ∮             ∟ ⊿          ❖ ☞
-      𠀋 㐂 丨 丯 丰 亍 仡 份 仿 伃 伋 你 佈 佉
+   俱 𠀋 㐂 丨 丯 丰 亍 仡 份 仿 伃 伋 你 佈 佉
 佖 佟 佪 佬 佾 侊 侔 侗 侮 俉 俠 倁 倂 倎 倘 倧
 倮 偀 倻 偁 傔 僌 僲 僐 僦 僧 儆 儃 儋 儞 儵 兊
 免 兕 兗 㒵 冝 凃 凊 凞 凢 凮 刁 㓛 刓 刕 剉 剗
@@ -97,7 +97,7 @@ p q r s t u v w x y z { | } ~
 囊 圊 𡈽 圡 圯 圳 圴 坰 坷 坼 垜 﨏 𡌛 垸 埇 埈
 埏 埤 埭 埵 埶 埿 堉 塚 塡 塤 塀 塼 墉 增 墨 墩
 𡑮 壒 壎 壔 壚 壠 壩 夌 虁 奝 奭 妋 妒 妤 姃 姒
-姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥
+姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥 剝
    亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 握 渥
 旭 葦 芦 鯵 梓 圧 斡 扱 宛 姐 虻 飴 絢 綾 鮎 或
 粟 袷 安 庵 按 暗 案 闇 鞍 杏 以 伊 位 依 偉 囲
@@ -287,9 +287,9 @@ p q r s t u v w x y z { | } ~
    蓮 連 錬 呂 魯 櫓 炉 賂 路 露 労 婁 廊 弄 朗
 楼 榔 浪 漏 牢 狼 篭 老 聾 蝋 郎 六 麓 禄 肋 録
 論 倭 和 話 歪 賄 脇 惑 枠 鷲 亙 亘 鰐 詫 藁 蕨
-椀 湾 碗 腕    孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍
+椀 湾 碗 腕 𠮟 孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍
 屢 層 屮 𡚴 屺 岏 岟 岣 岪 岺 峋 峐 峒 峴 𡸴 㟢
-崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋
+崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋 吞
    弌 丐 丕 个 丱 丶 丼 丿 乂 乖 乘 亂 亅 豫 亊
 舒 弍 于 亞 亟 亠 亢 亰 亳 亶 从 仍 仄 仆 仂 仗
 仞 仭 仟 价 伉 佚 估 佛 佝 佗 佇 佶 侈 侏 侘 佻
@@ -506,7 +506,7 @@ p q r s t u v w x y z { | } ~
 麸 麪 麭 靡 黌 黎 黏 黐 黔 黜 點 黝 黠 黥 黨 黯
 黴 黶 黷 黹 黻 黼 黽 鼇 鼈 皷 鼕 鼡 鼬 鼾 齊 齒
 齔 齣 齟 齠 齡 齦 齧 齬 齪 齷 齲 齶 龕 龜 龠
-   堯 槇 遙 瑤 凜 熙    巢 帔 帘 幘 幞 庾 廊 廋
+   堯 槇 遙 瑤 凜 熙 噓 巢 帔 帘 幘 幞 庾 廊 廋
 廹 开 异 弇 弝 弣 弴 弶 弽 彀 彅 彔 彘 彤 彧 彽
 徉 徜 徧 徯 徵 德 忉 忞 忡 忩 怍 怔 怘 怳 怵 恇
 悔 悝 悞 惋 惔 惕 惝 惸 愜 愫 愰 愷 慨 憍 憎 憼
@@ -571,7 +571,7 @@ p q r s t u v w x y z { | } ~
 魞 魹 魦 魲 魵 鮄 鮊 鮏 鮞 鮧 鯁 鯎 鯥 鯸 鯽 鰀
 鰣 鱁 鱏 鱐 鱓 鱣 鱥 鱷 鴝 鴞 鵃 鵇 鵒 鵣 鵰 鵼
 鶊 鶖 鷀 鶬 鶼 鷗 𪆐 鷧 鸇 鸕 鹼 麞 麤 麬 麯 麴
-麵 黃 黑 鼐 鼹 齗 龐 龔 龗 龢
+麵 黃 黑 鼐 鼹 齗 龐 龔 龗 龢 姸 屛 幷 瘦 繫
    𠂉 丂 丏 丒 丩 丫 丮 乀 乇 么 𠂢 乑 㐆 𠂤 乚
 乩 亝 㐬 㐮 亹 亻 𠆢 亼 仃 仈 仐 仫 仚 仱 仵 伀
 伖 佤 伷 伾 佔 佘 𠈓 佷 佸 佺 佽 侂 侅 侒 侚 俦
diff --git a/iconvdata/testdata/SHIFT_JISX0213 b/iconvdata/testdata/SHIFT_JISX0213
index 5b796fda17..9fd5c910ab 100644
--- a/iconvdata/testdata/SHIFT_JISX0213
+++ b/iconvdata/testdata/SHIFT_JISX0213
@@ -81,7 +81,7 @@ p q r s t u v w x y z { | } ~
 ` a b c d e f g h i j k l m n o
 p q r s t u v                      ~
                
-                                  
+                                   
                
                
                
@@ -93,7 +93,7 @@ p q r s t u v w x y z { | } ~
 ` a b c d e f g h i j k l m n o
 p q r s t u v w x y z { | } ~
                
-                 
+               
                
                
                
@@ -283,9 +283,9 @@ p q r s t u v w x y z { | } ~
 @ A B C D E F G H I J K L M N O
 P Q R S T U V W X Y Z [ \ ] ^ _
 ` a b c d e f g h i j k l m n o
-p q r    t u v w x y z { | } ~
+p q r s t u v w x y z { | } ~
                
-                 
+               
                
                
                
@@ -502,7 +502,7 @@ p q r s t u v w x y z { | } ~
 p q r s t u v w x y z { | } ~
                
                
-                 
+               
                
                
                
@@ -567,7 +567,7 @@ p q r s t u v w x y z { | } ~
                
                
                
-       
+            
 @ A B C D E F G H I J K L M N O
 P Q R S T U V W X Y Z [ \ ] ^ _
 ` a b c d e f g h i j k l m n o
diff --git a/iconvdata/testdata/SHIFT_JISX0213..UTF8 b/iconvdata/testdata/SHIFT_JISX0213..UTF8
index bf5ea2bedc..55ffa6701f 100644
--- a/iconvdata/testdata/SHIFT_JISX0213..UTF8
+++ b/iconvdata/testdata/SHIFT_JISX0213..UTF8
@@ -5,7 +5,7 @@ P Q R S T U V W X Y Z [ ¥ ] ^ _
 ` a b c d e f g h i j k l m n o
 p q r s t u v w x y z { | } ‾
   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ ^
- ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー ― ‐ / \
+ ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー — ‐ / \
 〜 ‖ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] {
 } 〈 〉 《 》 「 」 『 』 【 】 + − ± ×
 ÷ = ≠ < > ≦ ≧ ∞ ∴ ♂ ♀ ° ′ ″ ℃ ¥
@@ -17,7 +17,7 @@ p q r s t u v w x y z { | } ‾
 ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ≢ ≃ ≅ ≈ ≶ ≷ ↔
 Å ‰ ♯ ♭ ♪ † ‡ ¶ ♮ ♫ ♬ ♩ ◯
 ▷ ▶ ◁ ◀ ↗ ↘ ↖ ↙ ⇄ ⇨ ⇦ ⇧ ⇩ ⤴ ⤵ 0
-1 2 3 4 5 6 7 8 9 ⊙ ◉ 〽 ﹆ ﹅ ◦ •
+1 2 3 4 5 6 7 8 9 ⦿ ◉ 〽 ﹆ ﹅ ◦ •
 A B C D E F G H I J K L M N O P
 Q R S T U V W X Y Z ∓ ℵ ℏ ㏋ ℓ
 ℧ a b c d e f g h i j k l m n o
@@ -81,7 +81,7 @@ p q r s t u v w x y z { | } ‾
 ㌔ ㌢ ㍍ ㌘ ㌧ ㌃ ㌶ ㍑ ㍗ ㌍ ㌦ ㌣ ㌫ ㍊ ㌻ ㎜
 ㎝ ㎞ ㎎ ㎏ ㏄ ㎡ Ⅻ                      ㍻
 〝 〟 № ㏍ ℡ ㊤ ㊥ ㊦ ㊧ ㊨ ㈱ ㈲ ㈹ ㍾ ㍽ ㍼
-         ∮             ∟ ⊿          ❖ ☞
+         ∮             ∟ ⊿          ❖ ☞ 俱
 𠀋 㐂 丨 丯 丰 亍 仡 份 仿 伃 伋 你 佈 佉 佖 佟
 佪 佬 佾 侊 侔 侗 侮 俉 俠 倁 倂 倎 倘 倧 倮 偀
 倻 偁 傔 僌 僲 僐 僦 僧 儆 儃 儋 儞 儵 兊 免 兕
@@ -93,7 +93,7 @@ p q r s t u v w x y z { | } ‾
 圊 𡈽 圡 圯 圳 圴 坰 坷 坼 垜 﨏 𡌛 垸 埇 埈 埏
 埤 埭 埵 埶 埿 堉 塚 塡 塤 塀 塼 墉 增 墨 墩
 𡑮 壒 壎 壔 壚 壠 壩 夌 虁 奝 奭 妋 妒 妤 姃 姒
-姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥    亜
+姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥 剝 亜
 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 握 渥 旭 葦
 芦 鯵 梓 圧 斡 扱 宛 姐 虻 飴 絢 綾 鮎 或 粟 袷
 安 庵 按 暗 案 闇 鞍 杏 以 伊 位 依 偉 囲 夷 委
@@ -283,9 +283,9 @@ p q r s t u v w x y z { | } ‾
 蓮 連 錬 呂 魯 櫓 炉 賂 路 露 労 婁 廊 弄 朗 楼
 榔 浪 漏 牢 狼 篭 老 聾 蝋 郎 六 麓 禄 肋 録 論
 倭 和 話 歪 賄 脇 惑 枠 鷲 亙 亘 鰐 詫 藁 蕨 椀
-湾 碗 腕    孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍
+湾 碗 腕 𠮟 孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍
 屢 層 屮 𡚴 屺 岏 岟 岣 岪 岺 峋 峐 峒 峴 𡸴 㟢
-崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋    弌
+崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋 吞 弌
 丐 丕 个 丱 丶 丼 丿 乂 乖 乘 亂 亅 豫 亊 舒 弍
 于 亞 亟 亠 亢 亰 亳 亶 从 仍 仄 仆 仂 仗 仞 仭
 仟 价 伉 佚 估 佛 佝 佗 佇 佶 侈 侏 侘 佻 佩 佰
@@ -502,7 +502,7 @@ p q r s t u v w x y z { | } ‾
 麪 麭 靡 黌 黎 黏 黐 黔 黜 點 黝 黠 黥 黨 黯
 黴 黶 黷 黹 黻 黼 黽 鼇 鼈 皷 鼕 鼡 鼬 鼾 齊 齒
 齔 齣 齟 齠 齡 齦 齧 齬 齪 齷 齲 齶 龕 龜 龠 堯
-槇 遙 瑤 凜 熙    巢 帔 帘 幘 幞 庾 廊 廋 廹 开
+槇 遙 瑤 凜 熙 噓 巢 帔 帘 幘 幞 庾 廊 廋 廹 开
 异 弇 弝 弣 弴 弶 弽 彀 彅 彔 彘 彤 彧 彽 徉 徜
 徧 徯 徵 德 忉 忞 忡 忩 怍 怔 怘 怳 怵 恇 悔 悝
 悞 惋 惔 惕 惝 惸 愜 愫 愰 愷 慨 憍 憎 憼 憹 懲
@@ -567,7 +567,7 @@ p q r s t u v w x y z { | } ‾
 魦 魲 魵 鮄 鮊 鮏 鮞 鮧 鯁 鯎 鯥 鯸 鯽 鰀 鰣 鱁
 鱏 鱐 鱓 鱣 鱥 鱷 鴝 鴞 鵃 鵇 鵒 鵣 鵰 鵼 鶊 鶖
 鷀 鶬 鶼 鷗 𪆐 鷧 鸇 鸕 鹼 麞 麤 麬 麯 麴 麵 黃
-黑 鼐 鼹 齗 龐 龔 龗 龢
+黑 鼐 鼹 齗 龐 龔 龗 龢 姸 屛 幷 瘦 繫
 𠂉 丂 丏 丒 丩 丫 丮 乀 乇 么 𠂢 乑 㐆 𠂤 乚 乩
 亝 㐬 㐮 亹 亻 𠆢 亼 仃 仈 仐 仫 仚 仱 仵 伀 伖
 佤 伷 伾 佔 佘 𠈓 佷 佸 佺 佽 侂 侅 侒 侚 俦 侲
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 2f62ecf3c4..386fe96fe3 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,17 @@
+2004-07-31  Bruno Haible  <bruno@clisp.org>
+
+	* charmaps/EUC-JISX0213: Updated to JISX0213 plane 1 version 2004.
+	* charmaps/SHIFT_JISX0213: Likewise.
+
+2004-07-22  Bruno Haible  <bruno@clisp.org>
+
+	* charmaps/ISO-8859-7: Add mappings for 0xA4, 0xA5, 0xAA.  Add alias
+	ISO_8859-7:2003.
+
+2004-07-22  Bruno Haible  <bruno@clisp.org>
+
+	* charmaps/ISO-8859-11: Define identity mapping for 0x80..0x9F.
+
 2004-07-14  Petter Reinholdtsen  <pere@hungry.com>
 
 	* locales/kr_KO: Change month names to use latin numbers instead
diff --git a/localedata/charmaps/EUC-JISX0213 b/localedata/charmaps/EUC-JISX0213
index bf750693c9..b0ab3bb166 100644
--- a/localedata/charmaps/EUC-JISX0213
+++ b/localedata/charmaps/EUC-JISX0213
@@ -6,7 +6,7 @@
 
 % EUC-JISX0213
 % Bruno Haible <bruno@clisp.org>, Gaspar Sinai, 2002
-% Last changed: 2002-04-15
+% Last changed: 2004-07-31
 
 CHARMAP
 <U0000>     /x00         <control>
@@ -2664,7 +2664,7 @@ CHARMAP
 <U3006>     /xa1/xba     IDEOGRAPHIC CLOSING MARK
 <U3007>     /xa1/xbb     IDEOGRAPHIC NUMBER ZERO
 <U30FC>     /xa1/xbc     KATAKANA-HIRAGANA PROLONGED SOUND MARK
-<U2015>     /xa1/xbd     HORIZONTAL BAR
+<U2014>     /xa1/xbd     EM DASH
 <U2010>     /xa1/xbe     HYPHEN
 <UFF0F>     /xa1/xbf     FULLWIDTH SOLIDUS
 <UFF3C>     /xa1/xc0     FULLWIDTH REVERSE SOLIDUS
@@ -2849,7 +2849,7 @@ CHARMAP
 <UFF17>     /xa3/xb7     FULLWIDTH DIGIT SEVEN
 <UFF18>     /xa3/xb8     FULLWIDTH DIGIT EIGHT
 <UFF19>     /xa3/xb9     FULLWIDTH DIGIT NINE
-<U2299>     /xa3/xba     CIRCLED DOT OPERATOR
+<U29BF>     /xa3/xba     CIRCLED BULLET
 <U25C9>     /xa3/xbb     FISHEYE
 <U303D>     /xa3/xbc     PART ALTERNATION MARK
 <UFE46>     /xa3/xbd     WHITE SESAME DOT
@@ -3819,6 +3819,7 @@ CHARMAP
 <U22BF>     /xad/xf9     RIGHT TRIANGLE
 <U2756>     /xad/xfd     BLACK DIAMOND MINUS WHITE X
 <U261E>     /xad/xfe     WHITE RIGHT POINTING INDEX
+<U4FF1>     /xae/xa1     <CJK>
 <U0002000B> /xae/xa2     <CJK>
 <U3402>     /xae/xa3     <CJK>
 <U4E28>     /xae/xa4     <CJK>
@@ -4005,6 +4006,7 @@ CHARMAP
 <U000218BD> /xaf/xfb     <CJK>
 <U5B19>     /xaf/xfc     <CJK>
 <U5B25>     /xaf/xfd     <CJK>
+<U525D>     /xaf/xfe     <CJK>
 <U4E9C>     /xb0/xa1     <CJK>
 <U5516>     /xb0/xa2     <CJK>
 <U5A03>     /xb0/xa3     <CJK>
@@ -6970,6 +6972,7 @@ CHARMAP
 <U6E7E>     /xcf/xd1     <CJK>
 <U7897>     /xcf/xd2     <CJK>
 <U8155>     /xcf/xd3     <CJK>
+<U00020B9F> /xcf/xd4     <CJK>
 <U5B41>     /xcf/xd5     <CJK>
 <U5B56>     /xcf/xd6     <CJK>
 <U5B7D>     /xcf/xd7     <CJK>
@@ -7011,6 +7014,7 @@ CHARMAP
 <U5DA7>     /xcf/xfb     <CJK>
 <U5DB8>     /xcf/xfc     <CJK>
 <U5DCB>     /xcf/xfd     <CJK>
+<U541E>     /xcf/xfe     <CJK>
 <U5F0C>     /xd0/xa1     <CJK>
 <U4E10>     /xd0/xa2     <CJK>
 <U4E15>     /xd0/xa3     <CJK>
@@ -10401,6 +10405,7 @@ CHARMAP
 <U7464>     /xf4/xa4     <CJK>
 <U51DC>     /xf4/xa5     <CJK>
 <U7199>     /xf4/xa6     <CJK>
+<U5653>     /xf4/xa7     <CJK>
 <U5DE2>     /xf4/xa8     <CJK>
 <U5E14>     /xf4/xa9     <CJK>
 <U5E18>     /xf4/xaa     <CJK>
@@ -11423,9 +11428,14 @@ CHARMAP
 <U9F94>     /xfe/xf7     <CJK>
 <U9F97>     /xfe/xf8     <CJK>
 <U9FA2>     /xfe/xf9     <CJK>
+<U59F8>     /xfe/xfa     <CJK>
+<U5C5B>     /xfe/xfb     <CJK>
+<U5E77>     /xfe/xfc     <CJK>
+<U7626>     /xfe/xfd     <CJK>
+<U7E6B>     /xfe/xfe     <CJK>
 END CHARMAP
 
 WIDTH
-<U3000>...<U9FA2>         2
+<U3000>...<U7E6B>         2
 <U00020089>...<U0002A6B2> 2
 END WIDTH
diff --git a/localedata/charmaps/ISO-8859-11 b/localedata/charmaps/ISO-8859-11
index 4e8def0003..e688df5b8b 100644
--- a/localedata/charmaps/ISO-8859-11
+++ b/localedata/charmaps/ISO-8859-11
@@ -130,6 +130,38 @@ CHARMAP
 <U007D>     /x7d         RIGHT CURLY BRACKET
 <U007E>     /x7e         TILDE
 <U007F>     /x7f         DELETE (DEL)
+<U0080>     /x80         PADDING CHARACTER (PAD)
+<U0081>     /x81         HIGH OCTET PRESET (HOP)
+<U0082>     /x82         BREAK PERMITTED HERE (BPH)
+<U0083>     /x83         NO BREAK HERE (NBH)
+<U0084>     /x84         INDEX (IND)
+<U0085>     /x85         NEXT LINE (NEL)
+<U0086>     /x86         START OF SELECTED AREA (SSA)
+<U0087>     /x87         END OF SELECTED AREA (ESA)
+<U0088>     /x88         CHARACTER TABULATION SET (HTS)
+<U0089>     /x89         CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+<U008A>     /x8a         LINE TABULATION SET (VTS)
+<U008B>     /x8b         PARTIAL LINE FORWARD (PLD)
+<U008C>     /x8c         PARTIAL LINE BACKWARD (PLU)
+<U008D>     /x8d         REVERSE LINE FEED (RI)
+<U008E>     /x8e         SINGLE-SHIFT TWO (SS2)
+<U008F>     /x8f         SINGLE-SHIFT THREE (SS3)
+<U0090>     /x90         DEVICE CONTROL STRING (DCS)
+<U0091>     /x91         PRIVATE USE ONE (PU1)
+<U0092>     /x92         PRIVATE USE TWO (PU2)
+<U0093>     /x93         SET TRANSMIT STATE (STS)
+<U0094>     /x94         CANCEL CHARACTER (CCH)
+<U0095>     /x95         MESSAGE WAITING (MW)
+<U0096>     /x96         START OF GUARDED AREA (SPA)
+<U0097>     /x97         END OF GUARDED AREA (EPA)
+<U0098>     /x98         START OF STRING (SOS)
+<U0099>     /x99         SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+<U009A>     /x9a         SINGLE CHARACTER INTRODUCER (SCI)
+<U009B>     /x9b         CONTROL SEQUENCE INTRODUCER (CSI)
+<U009C>     /x9c         STRING TERMINATOR (ST)
+<U009D>     /x9d         OPERATING SYSTEM COMMAND (OSC)
+<U009E>     /x9e         PRIVACY MESSAGE (PM)
+<U009F>     /x9f         APPLICATION PROGRAM COMMAND (APC)
 <U00A0>     /xa0         NO-BREAK SPACE
 <U0E01>     /xa1         THAI CHARACTER KO KAI
 <U0E02>     /xa2         THAI CHARACTER KHO KHAI
diff --git a/localedata/charmaps/ISO-8859-7 b/localedata/charmaps/ISO-8859-7
index 7589e3746d..2b5ea09605 100644
--- a/localedata/charmaps/ISO-8859-7
+++ b/localedata/charmaps/ISO-8859-7
@@ -5,6 +5,7 @@
 %  source: ECMA registry
 
 % alias ISO-IR-126
+% alias ISO_8859-7:2003
 % alias ISO_8859-7:1987
 % alias ISO_8859-7
 % alias ELOT_928
@@ -176,10 +177,13 @@ CHARMAP
 <U2018>     /xa1         LEFT SINGLE QUOTATION MARK
 <U2019>     /xa2         RIGHT SINGLE QUOTATION MARK
 <U00A3>     /xa3         POUND SIGN
+<U20AC>     /xa4         EURO SIGN
+<U20AF>     /xa5         DRACHMA SIGN
 <U00A6>     /xa6         BROKEN BAR
 <U00A7>     /xa7         SECTION SIGN
 <U00A8>     /xa8         DIAERESIS
 <U00A9>     /xa9         COPYRIGHT SIGN
+<U037A>     /xaa         GREEK YPOGEGRAMMENI
 <U00AB>     /xab         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
 <U00AC>     /xac         NOT SIGN
 <U00AD>     /xad         SOFT HYPHEN
diff --git a/localedata/charmaps/SHIFT_JISX0213 b/localedata/charmaps/SHIFT_JISX0213
index 52ba0ef79f..fc5dfdcb30 100644
--- a/localedata/charmaps/SHIFT_JISX0213
+++ b/localedata/charmaps/SHIFT_JISX0213
@@ -6,7 +6,7 @@
 
 % Shift_JISX0213
 % Bruno Haible <bruno@clisp.org>, Gaspar Sinai, 2002
-% Last changed: 2002-04-15
+% Last changed: 2004-07-31
 
 CHARMAP
 <U0000>     /x00         <control>
@@ -165,7 +165,7 @@ CHARMAP
 <U3006>     /x81/x59     IDEOGRAPHIC CLOSING MARK
 <U3007>     /x81/x5a     IDEOGRAPHIC NUMBER ZERO
 <U30FC>     /x81/x5b     KATAKANA-HIRAGANA PROLONGED SOUND MARK
-<U2015>     /x81/x5c     HORIZONTAL BAR
+<U2014>     /x81/x5c     EM DASH
 <U2010>     /x81/x5d     HYPHEN
 <UFF0F>     /x81/x5e     FULLWIDTH SOLIDUS
 <UFF3C>     /x81/x5f     FULLWIDTH REVERSE SOLIDUS
@@ -350,7 +350,7 @@ CHARMAP
 <UFF17>     /x82/x56     FULLWIDTH DIGIT SEVEN
 <UFF18>     /x82/x57     FULLWIDTH DIGIT EIGHT
 <UFF19>     /x82/x58     FULLWIDTH DIGIT NINE
-<U2299>     /x82/x59     CIRCLED DOT OPERATOR
+<U29BF>     /x82/x59     CIRCLED BULLET
 <U25C9>     /x82/x5a     FISHEYE
 <U303D>     /x82/x5b     PART ALTERNATION MARK
 <UFE46>     /x82/x5c     WHITE SESAME DOT
@@ -1320,6 +1320,7 @@ CHARMAP
 <U22BF>     /x87/x99     RIGHT TRIANGLE
 <U2756>     /x87/x9d     BLACK DIAMOND MINUS WHITE X
 <U261E>     /x87/x9e     WHITE RIGHT POINTING INDEX
+<U4FF1>     /x87/x9f     <CJK>
 <U0002000B> /x87/xa0     <CJK>
 <U3402>     /x87/xa1     <CJK>
 <U4E28>     /x87/xa2     <CJK>
@@ -1506,6 +1507,7 @@ CHARMAP
 <U000218BD> /x88/x9b     <CJK>
 <U5B19>     /x88/x9c     <CJK>
 <U5B25>     /x88/x9d     <CJK>
+<U525D>     /x88/x9e     <CJK>
 <U4E9C>     /x88/x9f     <CJK>
 <U5516>     /x88/xa0     <CJK>
 <U5A03>     /x88/xa1     <CJK>
@@ -4471,6 +4473,7 @@ CHARMAP
 <U6E7E>     /x98/x70     <CJK>
 <U7897>     /x98/x71     <CJK>
 <U8155>     /x98/x72     <CJK>
+<U00020B9F> /x98/x73     <CJK>
 <U5B41>     /x98/x74     <CJK>
 <U5B56>     /x98/x75     <CJK>
 <U5B7D>     /x98/x76     <CJK>
@@ -4512,6 +4515,7 @@ CHARMAP
 <U5DA7>     /x98/x9b     <CJK>
 <U5DB8>     /x98/x9c     <CJK>
 <U5DCB>     /x98/x9d     <CJK>
+<U541E>     /x98/x9e     <CJK>
 <U5F0C>     /x98/x9f     <CJK>
 <U4E10>     /x98/xa0     <CJK>
 <U4E15>     /x98/xa1     <CJK>
@@ -7965,6 +7969,7 @@ CHARMAP
 <U7464>     /xea/xa2     <CJK>
 <U51DC>     /xea/xa3     <CJK>
 <U7199>     /xea/xa4     <CJK>
+<U5653>     /xea/xa5     <CJK>
 <U5DE2>     /xea/xa6     <CJK>
 <U5E14>     /xea/xa7     <CJK>
 <U5E18>     /xea/xa8     <CJK>
@@ -8987,6 +8992,11 @@ CHARMAP
 <U9F94>     /xef/xf5     <CJK>
 <U9F97>     /xef/xf6     <CJK>
 <U9FA2>     /xef/xf7     <CJK>
+<U59F8>     /xef/xf8     <CJK>
+<U5C5B>     /xef/xf9     <CJK>
+<U5E77>     /xef/xfa     <CJK>
+<U7626>     /xef/xfb     <CJK>
+<U7E6B>     /xef/xfc     <CJK>
 <U00020089> /xf0/x40     <CJK>
 <U4E02>     /xf0/x41     <CJK>
 <U4E0F>     /xf0/x42     <CJK>