Keysyms: Update using latest xorgproto
authorPierre Le Marre <dev@wismill.eu>
Thu, 28 Sep 2023 05:18:56 +0000 (07:18 +0200)
committerWismill <dev@wismill.eu>
Thu, 28 Sep 2023 05:48:37 +0000 (07:48 +0200)
xorgproto commit: 1c8128d72df22843a2022576850bc5ab5e3a46ea.

include/xkbcommon/xkbcommon-keysyms.h
src/ks_tables.h

index 5ea830d..be8aa16 100644 (file)
@@ -74,6 +74,15 @@ SOFTWARE.
  * Unicode position, as well as the official Unicode name of the
  * character.
  *
+ * Some keysyms map to a character already mapped by another keysym,
+ * with compatible but more precise semantics, such as the keypad-
+ * related keysyms. In this case, none of the keysym are deprecated.
+ * The most generic keysym is annotated as previously and more specific
+ * keysyms have the same annotation between angle brackets:
+ *
+ *     #define XKB_KEY_space                 0x0020  // U+0020 SPACE
+ *     #define XKB_KEY_KP_Space              0xff80  //<U+0020 SPACE>
+ *
  * Where the correspondence is either not one-to-one or semantically
  * unclear, the Unicode position and name are enclosed in
  * parentheses. Such legacy keysyms should be considered deprecated
@@ -93,7 +102,14 @@ SOFTWARE.
  * existing legacy keysym values in the range 0x0100 to 0x20ff.
  *
  * Where several mnemonic names are defined for the same keysym in this
- * file, all but the first one listed should be considered deprecated.
+ * file, all but the first one listed should be considered deprecated,
+ * unless the comment explicitly states the alias, e.g.:
+ *
+ *     #define XKB_KEY_dead_tilde            0xfe53
+ *     #define XKB_KEY_dead_perispomeni      0xfe53 // alias for dead_tilde
+ *
+ * Additionally, a keysym can be explicitly deprecated by starting the
+ * comment with "deprecated".
  *
  * Mnemonic names for keysyms are defined in this file with lines
  * that match one of these Perl regular expressions:
@@ -132,16 +148,16 @@ SOFTWARE.
  * tables in client code).
  */
 
-#define XKB_KEY_BackSpace                     0xff08  /* Back space, back char */
-#define XKB_KEY_Tab                           0xff09
-#define XKB_KEY_Linefeed                      0xff0a  /* Linefeed, LF */
-#define XKB_KEY_Clear                         0xff0b
-#define XKB_KEY_Return                        0xff0d  /* Return, enter */
+#define XKB_KEY_BackSpace                     0xff08  /* U+0008 BACKSPACE */
+#define XKB_KEY_Tab                           0xff09  /* U+0009 CHARACTER TABULATION */
+#define XKB_KEY_Linefeed                      0xff0a  /* U+000A LINE FEED */
+#define XKB_KEY_Clear                         0xff0b  /* U+000B LINE TABULATION */
+#define XKB_KEY_Return                        0xff0d  /* U+000D CARRIAGE RETURN */
 #define XKB_KEY_Pause                         0xff13  /* Pause, hold */
 #define XKB_KEY_Scroll_Lock                   0xff14
 #define XKB_KEY_Sys_Req                       0xff15
-#define XKB_KEY_Escape                        0xff1b
-#define XKB_KEY_Delete                        0xffff  /* Delete, rubout */
+#define XKB_KEY_Escape                        0xff1b  /* U+001B ESCAPE */
+#define XKB_KEY_Delete                        0xffff  /* U+007F DELETE */
 
 
 
@@ -186,9 +202,9 @@ SOFTWARE.
 #define XKB_KEY_Right                         0xff53  /* Move right, right arrow */
 #define XKB_KEY_Down                          0xff54  /* Move down, down arrow */
 #define XKB_KEY_Prior                         0xff55  /* Prior, previous */
-#define XKB_KEY_Page_Up                       0xff55
+#define XKB_KEY_Page_Up                       0xff55  /* deprecated alias for Prior */
 #define XKB_KEY_Next                          0xff56  /* Next */
-#define XKB_KEY_Page_Down                     0xff56
+#define XKB_KEY_Page_Down                     0xff56  /* deprecated alias for Next */
 #define XKB_KEY_End                           0xff57  /* EOL */
 #define XKB_KEY_Begin                         0xff58  /* BOL */
 
@@ -207,14 +223,14 @@ SOFTWARE.
 #define XKB_KEY_Help                          0xff6a  /* Help */
 #define XKB_KEY_Break                         0xff6b
 #define XKB_KEY_Mode_switch                   0xff7e  /* Character set switch */
-#define XKB_KEY_script_switch                 0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_script_switch                 0xff7e  /* Alias for Mode_switch */
 #define XKB_KEY_Num_Lock                      0xff7f
 
 /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */
 
-#define XKB_KEY_KP_Space                      0xff80  /* Space */
-#define XKB_KEY_KP_Tab                        0xff89
-#define XKB_KEY_KP_Enter                      0xff8d  /* Enter */
+#define XKB_KEY_KP_Space                      0xff80  /*<U+0020 SPACE>*/
+#define XKB_KEY_KP_Tab                        0xff89  /*<U+0009 CHARACTER TABULATION>*/
+#define XKB_KEY_KP_Enter                      0xff8d  /*<U+000D CARRIAGE RETURN>*/
 #define XKB_KEY_KP_F1                         0xff91  /* PF1, KP_A, ... */
 #define XKB_KEY_KP_F2                         0xff92
 #define XKB_KEY_KP_F3                         0xff93
@@ -225,31 +241,31 @@ SOFTWARE.
 #define XKB_KEY_KP_Right                      0xff98
 #define XKB_KEY_KP_Down                       0xff99
 #define XKB_KEY_KP_Prior                      0xff9a
-#define XKB_KEY_KP_Page_Up                    0xff9a
+#define XKB_KEY_KP_Page_Up                    0xff9a  /* deprecated alias for KP_Prior */
 #define XKB_KEY_KP_Next                       0xff9b
-#define XKB_KEY_KP_Page_Down                  0xff9b
+#define XKB_KEY_KP_Page_Down                  0xff9b  /* deprecated alias for KP_Next */
 #define XKB_KEY_KP_End                        0xff9c
 #define XKB_KEY_KP_Begin                      0xff9d
 #define XKB_KEY_KP_Insert                     0xff9e
 #define XKB_KEY_KP_Delete                     0xff9f
-#define XKB_KEY_KP_Equal                      0xffbd  /* Equals */
-#define XKB_KEY_KP_Multiply                   0xffaa
-#define XKB_KEY_KP_Add                        0xffab
-#define XKB_KEY_KP_Separator                  0xffac  /* Separator, often comma */
-#define XKB_KEY_KP_Subtract                   0xffad
-#define XKB_KEY_KP_Decimal                    0xffae
-#define XKB_KEY_KP_Divide                     0xffaf
-
-#define XKB_KEY_KP_0                          0xffb0
-#define XKB_KEY_KP_1                          0xffb1
-#define XKB_KEY_KP_2                          0xffb2
-#define XKB_KEY_KP_3                          0xffb3
-#define XKB_KEY_KP_4                          0xffb4
-#define XKB_KEY_KP_5                          0xffb5
-#define XKB_KEY_KP_6                          0xffb6
-#define XKB_KEY_KP_7                          0xffb7
-#define XKB_KEY_KP_8                          0xffb8
-#define XKB_KEY_KP_9                          0xffb9
+#define XKB_KEY_KP_Equal                      0xffbd  /*<U+003D EQUALS SIGN>*/
+#define XKB_KEY_KP_Multiply                   0xffaa  /*<U+002A ASTERISK>*/
+#define XKB_KEY_KP_Add                        0xffab  /*<U+002B PLUS SIGN>*/
+#define XKB_KEY_KP_Separator                  0xffac  /*<U+002C COMMA>*/
+#define XKB_KEY_KP_Subtract                   0xffad  /*<U+002D HYPHEN-MINUS>*/
+#define XKB_KEY_KP_Decimal                    0xffae  /*<U+002E FULL STOP>*/
+#define XKB_KEY_KP_Divide                     0xffaf  /*<U+002F SOLIDUS>*/
+
+#define XKB_KEY_KP_0                          0xffb0  /*<U+0030 DIGIT ZERO>*/
+#define XKB_KEY_KP_1                          0xffb1  /*<U+0031 DIGIT ONE>*/
+#define XKB_KEY_KP_2                          0xffb2  /*<U+0032 DIGIT TWO>*/
+#define XKB_KEY_KP_3                          0xffb3  /*<U+0033 DIGIT THREE>*/
+#define XKB_KEY_KP_4                          0xffb4  /*<U+0034 DIGIT FOUR>*/
+#define XKB_KEY_KP_5                          0xffb5  /*<U+0035 DIGIT FIVE>*/
+#define XKB_KEY_KP_6                          0xffb6  /*<U+0036 DIGIT SIX>*/
+#define XKB_KEY_KP_7                          0xffb7  /*<U+0037 DIGIT SEVEN>*/
+#define XKB_KEY_KP_8                          0xffb8  /*<U+0038 DIGIT EIGHT>*/
+#define XKB_KEY_KP_9                          0xffb9  /*<U+0039 DIGIT NINE>*/
 
 
 
@@ -271,55 +287,55 @@ SOFTWARE.
 #define XKB_KEY_F9                            0xffc6
 #define XKB_KEY_F10                           0xffc7
 #define XKB_KEY_F11                           0xffc8
-#define XKB_KEY_L1                            0xffc8
+#define XKB_KEY_L1                            0xffc8  /* deprecated alias for F11 */
 #define XKB_KEY_F12                           0xffc9
-#define XKB_KEY_L2                            0xffc9
+#define XKB_KEY_L2                            0xffc9  /* deprecated alias for F12 */
 #define XKB_KEY_F13                           0xffca
-#define XKB_KEY_L3                            0xffca
+#define XKB_KEY_L3                            0xffca  /* deprecated alias for F13 */
 #define XKB_KEY_F14                           0xffcb
-#define XKB_KEY_L4                            0xffcb
+#define XKB_KEY_L4                            0xffcb  /* deprecated alias for F14 */
 #define XKB_KEY_F15                           0xffcc
-#define XKB_KEY_L5                            0xffcc
+#define XKB_KEY_L5                            0xffcc  /* deprecated alias for F15 */
 #define XKB_KEY_F16                           0xffcd
-#define XKB_KEY_L6                            0xffcd
+#define XKB_KEY_L6                            0xffcd  /* deprecated alias for F16 */
 #define XKB_KEY_F17                           0xffce
-#define XKB_KEY_L7                            0xffce
+#define XKB_KEY_L7                            0xffce  /* deprecated alias for F17 */
 #define XKB_KEY_F18                           0xffcf
-#define XKB_KEY_L8                            0xffcf
+#define XKB_KEY_L8                            0xffcf  /* deprecated alias for F18 */
 #define XKB_KEY_F19                           0xffd0
-#define XKB_KEY_L9                            0xffd0
+#define XKB_KEY_L9                            0xffd0  /* deprecated alias for F19 */
 #define XKB_KEY_F20                           0xffd1
-#define XKB_KEY_L10                           0xffd1
+#define XKB_KEY_L10                           0xffd1  /* deprecated alias for F20 */
 #define XKB_KEY_F21                           0xffd2
-#define XKB_KEY_R1                            0xffd2
+#define XKB_KEY_R1                            0xffd2  /* deprecated alias for F21 */
 #define XKB_KEY_F22                           0xffd3
-#define XKB_KEY_R2                            0xffd3
+#define XKB_KEY_R2                            0xffd3  /* deprecated alias for F22 */
 #define XKB_KEY_F23                           0xffd4
-#define XKB_KEY_R3                            0xffd4
+#define XKB_KEY_R3                            0xffd4  /* deprecated alias for F23 */
 #define XKB_KEY_F24                           0xffd5
-#define XKB_KEY_R4                            0xffd5
+#define XKB_KEY_R4                            0xffd5  /* deprecated alias for F24 */
 #define XKB_KEY_F25                           0xffd6
-#define XKB_KEY_R5                            0xffd6
+#define XKB_KEY_R5                            0xffd6  /* deprecated alias for F25 */
 #define XKB_KEY_F26                           0xffd7
-#define XKB_KEY_R6                            0xffd7
+#define XKB_KEY_R6                            0xffd7  /* deprecated alias for F26 */
 #define XKB_KEY_F27                           0xffd8
-#define XKB_KEY_R7                            0xffd8
+#define XKB_KEY_R7                            0xffd8  /* deprecated alias for F27 */
 #define XKB_KEY_F28                           0xffd9
-#define XKB_KEY_R8                            0xffd9
+#define XKB_KEY_R8                            0xffd9  /* deprecated alias for F28 */
 #define XKB_KEY_F29                           0xffda
-#define XKB_KEY_R9                            0xffda
+#define XKB_KEY_R9                            0xffda  /* deprecated alias for F29 */
 #define XKB_KEY_F30                           0xffdb
-#define XKB_KEY_R10                           0xffdb
+#define XKB_KEY_R10                           0xffdb  /* deprecated alias for F30 */
 #define XKB_KEY_F31                           0xffdc
-#define XKB_KEY_R11                           0xffdc
+#define XKB_KEY_R11                           0xffdc  /* deprecated alias for F31 */
 #define XKB_KEY_F32                           0xffdd
-#define XKB_KEY_R12                           0xffdd
+#define XKB_KEY_R12                           0xffdd  /* deprecated alias for F32 */
 #define XKB_KEY_F33                           0xffde
-#define XKB_KEY_R13                           0xffde
+#define XKB_KEY_R13                           0xffde  /* deprecated alias for F33 */
 #define XKB_KEY_F34                           0xffdf
-#define XKB_KEY_R14                           0xffdf
+#define XKB_KEY_R14                           0xffdf  /* deprecated alias for F34 */
 #define XKB_KEY_F35                           0xffe0
-#define XKB_KEY_R15                           0xffe0
+#define XKB_KEY_R15                           0xffe0  /* deprecated alias for F35 */
 
 /* Modifiers */
 
@@ -353,7 +369,7 @@ SOFTWARE.
 #define XKB_KEY_ISO_Level5_Shift              0xfe11
 #define XKB_KEY_ISO_Level5_Latch              0xfe12
 #define XKB_KEY_ISO_Level5_Lock               0xfe13
-#define XKB_KEY_ISO_Group_Shift               0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_ISO_Group_Shift               0xff7e  /* Alias for Mode_switch */
 #define XKB_KEY_ISO_Group_Latch               0xfe06
 #define XKB_KEY_ISO_Group_Lock                0xfe07
 #define XKB_KEY_ISO_Next_Group                0xfe08
@@ -423,12 +439,6 @@ SOFTWARE.
 #define XKB_KEY_dead_belowcomma               0xfe6e
 #define XKB_KEY_dead_currency                 0xfe6f
 
-/* extra dead elements for German T3 layout */
-#define XKB_KEY_dead_lowline                  0xfe90
-#define XKB_KEY_dead_aboveverticalline        0xfe91
-#define XKB_KEY_dead_belowverticalline        0xfe92
-#define XKB_KEY_dead_longsolidusoverlay       0xfe93
-
 /* dead vowels for universal syllable entry */
 #define XKB_KEY_dead_a                        0xfe80
 #define XKB_KEY_dead_A                        0xfe81
@@ -440,10 +450,13 @@ SOFTWARE.
 #define XKB_KEY_dead_O                        0xfe87
 #define XKB_KEY_dead_u                        0xfe88
 #define XKB_KEY_dead_U                        0xfe89
-#define XKB_KEY_dead_small_schwa              0xfe8a
-#define XKB_KEY_dead_capital_schwa            0xfe8b
+#define XKB_KEY_dead_schwa                    0xfe8a
+#define XKB_KEY_dead_SCHWA                    0xfe8b
+#define XKB_KEY_dead_small_schwa              0xfe8a  /* deprecated, remove in 2025 */
+#define XKB_KEY_dead_capital_schwa            0xfe8b  /* deprecated, remove in 2025 */
 
 #define XKB_KEY_dead_greek                    0xfe8c
+#define XKB_KEY_dead_hamza                    0xfe8d
 
 #define XKB_KEY_First_Virtual_Screen          0xfed0
 #define XKB_KEY_Prev_Virtual_Screen           0xfed1
@@ -655,7 +668,8 @@ SOFTWARE.
 #define XKB_KEY_diaeresis                     0x00a8  /* U+00A8 DIAERESIS */
 #define XKB_KEY_copyright                     0x00a9  /* U+00A9 COPYRIGHT SIGN */
 #define XKB_KEY_ordfeminine                   0x00aa  /* U+00AA FEMININE ORDINAL INDICATOR */
-#define XKB_KEY_guillemotleft                 0x00ab  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
+#define XKB_KEY_guillemetleft                 0x00ab  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
+#define XKB_KEY_guillemotleft                 0x00ab  /* deprecated misspelling */
 #define XKB_KEY_notsign                       0x00ac  /* U+00AC NOT SIGN */
 #define XKB_KEY_hyphen                        0x00ad  /* U+00AD SOFT HYPHEN */
 #define XKB_KEY_registered                    0x00ae  /* U+00AE REGISTERED SIGN */
@@ -670,8 +684,10 @@ SOFTWARE.
 #define XKB_KEY_periodcentered                0x00b7  /* U+00B7 MIDDLE DOT */
 #define XKB_KEY_cedilla                       0x00b8  /* U+00B8 CEDILLA */
 #define XKB_KEY_onesuperior                   0x00b9  /* U+00B9 SUPERSCRIPT ONE */
-#define XKB_KEY_masculine                     0x00ba  /* U+00BA MASCULINE ORDINAL INDICATOR */
-#define XKB_KEY_guillemotright                0x00bb  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
+#define XKB_KEY_ordmasculine                  0x00ba  /* U+00BA MASCULINE ORDINAL INDICATOR */
+#define XKB_KEY_masculine                     0x00ba  /* deprecated inconsistent name */
+#define XKB_KEY_guillemetright                0x00bb  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
+#define XKB_KEY_guillemotright                0x00bb  /* deprecated misspelling */
 #define XKB_KEY_onequarter                    0x00bc  /* U+00BC VULGAR FRACTION ONE QUARTER */
 #define XKB_KEY_onehalf                       0x00bd  /* U+00BD VULGAR FRACTION ONE HALF */
 #define XKB_KEY_threequarters                 0x00be  /* U+00BE VULGAR FRACTION THREE QUARTERS */
@@ -702,7 +718,7 @@ SOFTWARE.
 #define XKB_KEY_Odiaeresis                    0x00d6  /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */
 #define XKB_KEY_multiply                      0x00d7  /* U+00D7 MULTIPLICATION SIGN */
 #define XKB_KEY_Oslash                        0x00d8  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
-#define XKB_KEY_Ooblique                      0x00d8  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
+#define XKB_KEY_Ooblique                      0x00d8  /* deprecated alias for Oslash */
 #define XKB_KEY_Ugrave                        0x00d9  /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */
 #define XKB_KEY_Uacute                        0x00da  /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */
 #define XKB_KEY_Ucircumflex                   0x00db  /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
@@ -736,7 +752,7 @@ SOFTWARE.
 #define XKB_KEY_odiaeresis                    0x00f6  /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */
 #define XKB_KEY_division                      0x00f7  /* U+00F7 DIVISION SIGN */
 #define XKB_KEY_oslash                        0x00f8  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
-#define XKB_KEY_ooblique                      0x00f8  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
+#define XKB_KEY_ooblique                      0x00f8  /* deprecated alias for oslash */
 #define XKB_KEY_ugrave                        0x00f9  /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */
 #define XKB_KEY_uacute                        0x00fa  /* U+00FA LATIN SMALL LETTER U WITH ACUTE */
 #define XKB_KEY_ucircumflex                   0x00fb  /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */
@@ -992,7 +1008,7 @@ SOFTWARE.
 #define XKB_KEY_kana_N                        0x04dd  /* U+30F3 KATAKANA LETTER N */
 #define XKB_KEY_voicedsound                   0x04de  /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */
 #define XKB_KEY_semivoicedsound               0x04df  /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
-#define XKB_KEY_kana_switch                   0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_kana_switch                   0xff7e  /* Alias for Mode_switch */
 
 /*
  * Arabic
@@ -1086,10 +1102,10 @@ SOFTWARE.
 #define XKB_KEY_Arabic_noon_ghunna         0x10006ba  /* U+06BA ARABIC LETTER NOON GHUNNA */
 #define XKB_KEY_Arabic_heh_doachashmee     0x10006be  /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
 #define XKB_KEY_Farsi_yeh                  0x10006cc  /* U+06CC ARABIC LETTER FARSI YEH */
-#define XKB_KEY_Arabic_farsi_yeh           0x10006cc  /* U+06CC ARABIC LETTER FARSI YEH */
+#define XKB_KEY_Arabic_farsi_yeh           0x10006cc  /* deprecated alias for Farsi_yeh */
 #define XKB_KEY_Arabic_yeh_baree           0x10006d2  /* U+06D2 ARABIC LETTER YEH BARREE */
 #define XKB_KEY_Arabic_heh_goal            0x10006c1  /* U+06C1 ARABIC LETTER HEH GOAL */
-#define XKB_KEY_Arabic_switch                 0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_Arabic_switch                 0xff7e  /* Alias for Mode_switch */
 
 /*
  * Cyrillic
@@ -1248,7 +1264,7 @@ SOFTWARE.
 #define XKB_KEY_Greek_ETAaccent               0x07a3  /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */
 #define XKB_KEY_Greek_IOTAaccent              0x07a4  /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */
 #define XKB_KEY_Greek_IOTAdieresis            0x07a5  /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
-#define XKB_KEY_Greek_IOTAdiaeresis           0x07a5  /* old typo */
+#define XKB_KEY_Greek_IOTAdiaeresis           0x07a5  /* deprecated (old typo) */
 #define XKB_KEY_Greek_OMICRONaccent           0x07a7  /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */
 #define XKB_KEY_Greek_UPSILONaccent           0x07a8  /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */
 #define XKB_KEY_Greek_UPSILONdieresis         0x07a9  /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
@@ -1277,7 +1293,7 @@ SOFTWARE.
 #define XKB_KEY_Greek_IOTA                    0x07c9  /* U+0399 GREEK CAPITAL LETTER IOTA */
 #define XKB_KEY_Greek_KAPPA                   0x07ca  /* U+039A GREEK CAPITAL LETTER KAPPA */
 #define XKB_KEY_Greek_LAMDA                   0x07cb  /* U+039B GREEK CAPITAL LETTER LAMDA */
-#define XKB_KEY_Greek_LAMBDA                  0x07cb  /* U+039B GREEK CAPITAL LETTER LAMDA */
+#define XKB_KEY_Greek_LAMBDA                  0x07cb  /* alias for Greek_LAMDA */
 #define XKB_KEY_Greek_MU                      0x07cc  /* U+039C GREEK CAPITAL LETTER MU */
 #define XKB_KEY_Greek_NU                      0x07cd  /* U+039D GREEK CAPITAL LETTER NU */
 #define XKB_KEY_Greek_XI                      0x07ce  /* U+039E GREEK CAPITAL LETTER XI */
@@ -1302,7 +1318,7 @@ SOFTWARE.
 #define XKB_KEY_Greek_iota                    0x07e9  /* U+03B9 GREEK SMALL LETTER IOTA */
 #define XKB_KEY_Greek_kappa                   0x07ea  /* U+03BA GREEK SMALL LETTER KAPPA */
 #define XKB_KEY_Greek_lamda                   0x07eb  /* U+03BB GREEK SMALL LETTER LAMDA */
-#define XKB_KEY_Greek_lambda                  0x07eb  /* U+03BB GREEK SMALL LETTER LAMDA */
+#define XKB_KEY_Greek_lambda                  0x07eb  /* alias for Greek_lamda */
 #define XKB_KEY_Greek_mu                      0x07ec  /* U+03BC GREEK SMALL LETTER MU */
 #define XKB_KEY_Greek_nu                      0x07ed  /* U+03BD GREEK SMALL LETTER NU */
 #define XKB_KEY_Greek_xi                      0x07ee  /* U+03BE GREEK SMALL LETTER XI */
@@ -1317,7 +1333,7 @@ SOFTWARE.
 #define XKB_KEY_Greek_chi                     0x07f7  /* U+03C7 GREEK SMALL LETTER CHI */
 #define XKB_KEY_Greek_psi                     0x07f8  /* U+03C8 GREEK SMALL LETTER PSI */
 #define XKB_KEY_Greek_omega                   0x07f9  /* U+03C9 GREEK SMALL LETTER OMEGA */
-#define XKB_KEY_Greek_switch                  0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_Greek_switch                  0xff7e  /* Alias for Mode_switch */
 
 /*
  * Technical
@@ -1567,7 +1583,7 @@ SOFTWARE.
 #define XKB_KEY_hebrew_shin                   0x0cf9  /* U+05E9 HEBREW LETTER SHIN */
 #define XKB_KEY_hebrew_taw                    0x0cfa  /* U+05EA HEBREW LETTER TAV */
 #define XKB_KEY_hebrew_taf                    0x0cfa  /* deprecated */
-#define XKB_KEY_Hebrew_switch                 0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_Hebrew_switch                 0xff7e  /* Alias for Mode_switch */
 
 /*
  * Thai
@@ -1632,7 +1648,7 @@ SOFTWARE.
 #define XKB_KEY_Thai_sarau                    0x0dd8  /* U+0E38 THAI CHARACTER SARA U */
 #define XKB_KEY_Thai_sarauu                   0x0dd9  /* U+0E39 THAI CHARACTER SARA UU */
 #define XKB_KEY_Thai_phinthu                  0x0dda  /* U+0E3A THAI CHARACTER PHINTHU */
-#define XKB_KEY_Thai_maihanakat_maitho        0x0dde
+#define XKB_KEY_Thai_maihanakat_maitho        0x0dde  /*(U+0E3E Unassigned code point)*/
 #define XKB_KEY_Thai_baht                     0x0ddf  /* U+0E3F THAI CURRENCY SYMBOL BAHT */
 #define XKB_KEY_Thai_sarae                    0x0de0  /* U+0E40 THAI CHARACTER SARA E */
 #define XKB_KEY_Thai_saraae                   0x0de1  /* U+0E41 THAI CHARACTER SARA AE */
@@ -1680,7 +1696,7 @@ SOFTWARE.
 #define XKB_KEY_Hangul_MultipleCandidate      0xff3d  /* Multiple candidate */
 #define XKB_KEY_Hangul_PreviousCandidate      0xff3e  /* Previous candidate */
 #define XKB_KEY_Hangul_Special                0xff3f  /* Special symbols */
-#define XKB_KEY_Hangul_switch                 0xff7e  /* Alias for mode_switch */
+#define XKB_KEY_Hangul_switch                 0xff7e  /* Alias for Mode_switch */
 
 /* Hangul Consonant Characters */
 #define XKB_KEY_Hangul_Kiyeog                 0x0ea1  /* U+3131 HANGUL LETTER KIYEOK */
@@ -1794,17 +1810,17 @@ SOFTWARE.
 
 #define XKB_KEY_Armenian_ligature_ew       0x1000587  /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */
 #define XKB_KEY_Armenian_full_stop         0x1000589  /* U+0589 ARMENIAN FULL STOP */
-#define XKB_KEY_Armenian_verjaket          0x1000589  /* U+0589 ARMENIAN FULL STOP */
+#define XKB_KEY_Armenian_verjaket          0x1000589  /* deprecated alias for Armenian_full_stop */
 #define XKB_KEY_Armenian_separation_mark   0x100055d  /* U+055D ARMENIAN COMMA */
-#define XKB_KEY_Armenian_but               0x100055d  /* U+055D ARMENIAN COMMA */
+#define XKB_KEY_Armenian_but               0x100055d  /* deprecated alias for Armenian_separation_mark */
 #define XKB_KEY_Armenian_hyphen            0x100058a  /* U+058A ARMENIAN HYPHEN */
-#define XKB_KEY_Armenian_yentamna          0x100058a  /* U+058A ARMENIAN HYPHEN */
+#define XKB_KEY_Armenian_yentamna          0x100058a  /* deprecated alias for Armenian_hyphen */
 #define XKB_KEY_Armenian_exclam            0x100055c  /* U+055C ARMENIAN EXCLAMATION MARK */
-#define XKB_KEY_Armenian_amanak            0x100055c  /* U+055C ARMENIAN EXCLAMATION MARK */
+#define XKB_KEY_Armenian_amanak            0x100055c  /* deprecated alias for Armenian_exclam */
 #define XKB_KEY_Armenian_accent            0x100055b  /* U+055B ARMENIAN EMPHASIS MARK */
-#define XKB_KEY_Armenian_shesht            0x100055b  /* U+055B ARMENIAN EMPHASIS MARK */
+#define XKB_KEY_Armenian_shesht            0x100055b  /* deprecated alias for Armenian_accent */
 #define XKB_KEY_Armenian_question          0x100055e  /* U+055E ARMENIAN QUESTION MARK */
-#define XKB_KEY_Armenian_paruyk            0x100055e  /* U+055E ARMENIAN QUESTION MARK */
+#define XKB_KEY_Armenian_paruyk            0x100055e  /* deprecated alias for Armenian_question */
 #define XKB_KEY_Armenian_AYB               0x1000531  /* U+0531 ARMENIAN CAPITAL LETTER AYB */
 #define XKB_KEY_Armenian_ayb               0x1000561  /* U+0561 ARMENIAN SMALL LETTER AYB */
 #define XKB_KEY_Armenian_BEN               0x1000532  /* U+0532 ARMENIAN CAPITAL LETTER BEN */
@@ -2089,15 +2105,15 @@ SOFTWARE.
 #define XKB_KEY_eightsubscript             0x1002088  /* U+2088 SUBSCRIPT EIGHT */
 #define XKB_KEY_ninesubscript              0x1002089  /* U+2089 SUBSCRIPT NINE */
 #define XKB_KEY_partdifferential           0x1002202  /* U+2202 PARTIAL DIFFERENTIAL */
-#define XKB_KEY_emptyset                   0x1002205  /* U+2205 NULL SET */
+#define XKB_KEY_emptyset                   0x1002205  /* U+2205 EMPTY SET */
 #define XKB_KEY_elementof                  0x1002208  /* U+2208 ELEMENT OF */
 #define XKB_KEY_notelementof               0x1002209  /* U+2209 NOT AN ELEMENT OF */
-#define XKB_KEY_containsas                 0x100220B  /* U+220B CONTAINS AS MEMBER */
-#define XKB_KEY_squareroot                 0x100221A  /* U+221A SQUARE ROOT */
-#define XKB_KEY_cuberoot                   0x100221B  /* U+221B CUBE ROOT */
-#define XKB_KEY_fourthroot                 0x100221C  /* U+221C FOURTH ROOT */
-#define XKB_KEY_dintegral                  0x100222C  /* U+222C DOUBLE INTEGRAL */
-#define XKB_KEY_tintegral                  0x100222D  /* U+222D TRIPLE INTEGRAL */
+#define XKB_KEY_containsas                 0x100220b  /* U+220B CONTAINS AS MEMBER */
+#define XKB_KEY_squareroot                 0x100221a  /* U+221A SQUARE ROOT */
+#define XKB_KEY_cuberoot                   0x100221b  /* U+221B CUBE ROOT */
+#define XKB_KEY_fourthroot                 0x100221c  /* U+221C FOURTH ROOT */
+#define XKB_KEY_dintegral                  0x100222c  /* U+222C DOUBLE INTEGRAL */
+#define XKB_KEY_tintegral                  0x100222d  /* U+222D TRIPLE INTEGRAL */
 #define XKB_KEY_because                    0x1002235  /* U+2235 BECAUSE */
 #define XKB_KEY_approxeq                   0x1002248  /*(U+2248 ALMOST EQUAL TO)*/
 #define XKB_KEY_notapproxeq                0x1002247  /*(U+2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO)*/
@@ -2124,12 +2140,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_123           0x1002807  /* U+2807 BRAILLE PATTERN DOTS-123 */
 #define XKB_KEY_braille_dots_4             0x1002808  /* U+2808 BRAILLE PATTERN DOTS-4 */
 #define XKB_KEY_braille_dots_14            0x1002809  /* U+2809 BRAILLE PATTERN DOTS-14 */
-#define XKB_KEY_braille_dots_24            0x100280a  /* U+280a BRAILLE PATTERN DOTS-24 */
-#define XKB_KEY_braille_dots_124           0x100280b  /* U+280b BRAILLE PATTERN DOTS-124 */
-#define XKB_KEY_braille_dots_34            0x100280c  /* U+280c BRAILLE PATTERN DOTS-34 */
-#define XKB_KEY_braille_dots_134           0x100280d  /* U+280d BRAILLE PATTERN DOTS-134 */
-#define XKB_KEY_braille_dots_234           0x100280e  /* U+280e BRAILLE PATTERN DOTS-234 */
-#define XKB_KEY_braille_dots_1234          0x100280f  /* U+280f BRAILLE PATTERN DOTS-1234 */
+#define XKB_KEY_braille_dots_24            0x100280a  /* U+280A BRAILLE PATTERN DOTS-24 */
+#define XKB_KEY_braille_dots_124           0x100280b  /* U+280B BRAILLE PATTERN DOTS-124 */
+#define XKB_KEY_braille_dots_34            0x100280c  /* U+280C BRAILLE PATTERN DOTS-34 */
+#define XKB_KEY_braille_dots_134           0x100280d  /* U+280D BRAILLE PATTERN DOTS-134 */
+#define XKB_KEY_braille_dots_234           0x100280e  /* U+280E BRAILLE PATTERN DOTS-234 */
+#define XKB_KEY_braille_dots_1234          0x100280f  /* U+280F BRAILLE PATTERN DOTS-1234 */
 #define XKB_KEY_braille_dots_5             0x1002810  /* U+2810 BRAILLE PATTERN DOTS-5 */
 #define XKB_KEY_braille_dots_15            0x1002811  /* U+2811 BRAILLE PATTERN DOTS-15 */
 #define XKB_KEY_braille_dots_25            0x1002812  /* U+2812 BRAILLE PATTERN DOTS-25 */
@@ -2140,12 +2156,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_1235          0x1002817  /* U+2817 BRAILLE PATTERN DOTS-1235 */
 #define XKB_KEY_braille_dots_45            0x1002818  /* U+2818 BRAILLE PATTERN DOTS-45 */
 #define XKB_KEY_braille_dots_145           0x1002819  /* U+2819 BRAILLE PATTERN DOTS-145 */
-#define XKB_KEY_braille_dots_245           0x100281a  /* U+281a BRAILLE PATTERN DOTS-245 */
-#define XKB_KEY_braille_dots_1245          0x100281b  /* U+281b BRAILLE PATTERN DOTS-1245 */
-#define XKB_KEY_braille_dots_345           0x100281c  /* U+281c BRAILLE PATTERN DOTS-345 */
-#define XKB_KEY_braille_dots_1345          0x100281d  /* U+281d BRAILLE PATTERN DOTS-1345 */
-#define XKB_KEY_braille_dots_2345          0x100281e  /* U+281e BRAILLE PATTERN DOTS-2345 */
-#define XKB_KEY_braille_dots_12345         0x100281f  /* U+281f BRAILLE PATTERN DOTS-12345 */
+#define XKB_KEY_braille_dots_245           0x100281a  /* U+281A BRAILLE PATTERN DOTS-245 */
+#define XKB_KEY_braille_dots_1245          0x100281b  /* U+281B BRAILLE PATTERN DOTS-1245 */
+#define XKB_KEY_braille_dots_345           0x100281c  /* U+281C BRAILLE PATTERN DOTS-345 */
+#define XKB_KEY_braille_dots_1345          0x100281d  /* U+281D BRAILLE PATTERN DOTS-1345 */
+#define XKB_KEY_braille_dots_2345          0x100281e  /* U+281E BRAILLE PATTERN DOTS-2345 */
+#define XKB_KEY_braille_dots_12345         0x100281f  /* U+281F BRAILLE PATTERN DOTS-12345 */
 #define XKB_KEY_braille_dots_6             0x1002820  /* U+2820 BRAILLE PATTERN DOTS-6 */
 #define XKB_KEY_braille_dots_16            0x1002821  /* U+2821 BRAILLE PATTERN DOTS-16 */
 #define XKB_KEY_braille_dots_26            0x1002822  /* U+2822 BRAILLE PATTERN DOTS-26 */
@@ -2156,12 +2172,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_1236          0x1002827  /* U+2827 BRAILLE PATTERN DOTS-1236 */
 #define XKB_KEY_braille_dots_46            0x1002828  /* U+2828 BRAILLE PATTERN DOTS-46 */
 #define XKB_KEY_braille_dots_146           0x1002829  /* U+2829 BRAILLE PATTERN DOTS-146 */
-#define XKB_KEY_braille_dots_246           0x100282a  /* U+282a BRAILLE PATTERN DOTS-246 */
-#define XKB_KEY_braille_dots_1246          0x100282b  /* U+282b BRAILLE PATTERN DOTS-1246 */
-#define XKB_KEY_braille_dots_346           0x100282c  /* U+282c BRAILLE PATTERN DOTS-346 */
-#define XKB_KEY_braille_dots_1346          0x100282d  /* U+282d BRAILLE PATTERN DOTS-1346 */
-#define XKB_KEY_braille_dots_2346          0x100282e  /* U+282e BRAILLE PATTERN DOTS-2346 */
-#define XKB_KEY_braille_dots_12346         0x100282f  /* U+282f BRAILLE PATTERN DOTS-12346 */
+#define XKB_KEY_braille_dots_246           0x100282a  /* U+282A BRAILLE PATTERN DOTS-246 */
+#define XKB_KEY_braille_dots_1246          0x100282b  /* U+282B BRAILLE PATTERN DOTS-1246 */
+#define XKB_KEY_braille_dots_346           0x100282c  /* U+282C BRAILLE PATTERN DOTS-346 */
+#define XKB_KEY_braille_dots_1346          0x100282d  /* U+282D BRAILLE PATTERN DOTS-1346 */
+#define XKB_KEY_braille_dots_2346          0x100282e  /* U+282E BRAILLE PATTERN DOTS-2346 */
+#define XKB_KEY_braille_dots_12346         0x100282f  /* U+282F BRAILLE PATTERN DOTS-12346 */
 #define XKB_KEY_braille_dots_56            0x1002830  /* U+2830 BRAILLE PATTERN DOTS-56 */
 #define XKB_KEY_braille_dots_156           0x1002831  /* U+2831 BRAILLE PATTERN DOTS-156 */
 #define XKB_KEY_braille_dots_256           0x1002832  /* U+2832 BRAILLE PATTERN DOTS-256 */
@@ -2172,12 +2188,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_12356         0x1002837  /* U+2837 BRAILLE PATTERN DOTS-12356 */
 #define XKB_KEY_braille_dots_456           0x1002838  /* U+2838 BRAILLE PATTERN DOTS-456 */
 #define XKB_KEY_braille_dots_1456          0x1002839  /* U+2839 BRAILLE PATTERN DOTS-1456 */
-#define XKB_KEY_braille_dots_2456          0x100283a  /* U+283a BRAILLE PATTERN DOTS-2456 */
-#define XKB_KEY_braille_dots_12456         0x100283b  /* U+283b BRAILLE PATTERN DOTS-12456 */
-#define XKB_KEY_braille_dots_3456          0x100283c  /* U+283c BRAILLE PATTERN DOTS-3456 */
-#define XKB_KEY_braille_dots_13456         0x100283d  /* U+283d BRAILLE PATTERN DOTS-13456 */
-#define XKB_KEY_braille_dots_23456         0x100283e  /* U+283e BRAILLE PATTERN DOTS-23456 */
-#define XKB_KEY_braille_dots_123456        0x100283f  /* U+283f BRAILLE PATTERN DOTS-123456 */
+#define XKB_KEY_braille_dots_2456          0x100283a  /* U+283A BRAILLE PATTERN DOTS-2456 */
+#define XKB_KEY_braille_dots_12456         0x100283b  /* U+283B BRAILLE PATTERN DOTS-12456 */
+#define XKB_KEY_braille_dots_3456          0x100283c  /* U+283C BRAILLE PATTERN DOTS-3456 */
+#define XKB_KEY_braille_dots_13456         0x100283d  /* U+283D BRAILLE PATTERN DOTS-13456 */
+#define XKB_KEY_braille_dots_23456         0x100283e  /* U+283E BRAILLE PATTERN DOTS-23456 */
+#define XKB_KEY_braille_dots_123456        0x100283f  /* U+283F BRAILLE PATTERN DOTS-123456 */
 #define XKB_KEY_braille_dots_7             0x1002840  /* U+2840 BRAILLE PATTERN DOTS-7 */
 #define XKB_KEY_braille_dots_17            0x1002841  /* U+2841 BRAILLE PATTERN DOTS-17 */
 #define XKB_KEY_braille_dots_27            0x1002842  /* U+2842 BRAILLE PATTERN DOTS-27 */
@@ -2188,12 +2204,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_1237          0x1002847  /* U+2847 BRAILLE PATTERN DOTS-1237 */
 #define XKB_KEY_braille_dots_47            0x1002848  /* U+2848 BRAILLE PATTERN DOTS-47 */
 #define XKB_KEY_braille_dots_147           0x1002849  /* U+2849 BRAILLE PATTERN DOTS-147 */
-#define XKB_KEY_braille_dots_247           0x100284a  /* U+284a BRAILLE PATTERN DOTS-247 */
-#define XKB_KEY_braille_dots_1247          0x100284b  /* U+284b BRAILLE PATTERN DOTS-1247 */
-#define XKB_KEY_braille_dots_347           0x100284c  /* U+284c BRAILLE PATTERN DOTS-347 */
-#define XKB_KEY_braille_dots_1347          0x100284d  /* U+284d BRAILLE PATTERN DOTS-1347 */
-#define XKB_KEY_braille_dots_2347          0x100284e  /* U+284e BRAILLE PATTERN DOTS-2347 */
-#define XKB_KEY_braille_dots_12347         0x100284f  /* U+284f BRAILLE PATTERN DOTS-12347 */
+#define XKB_KEY_braille_dots_247           0x100284a  /* U+284A BRAILLE PATTERN DOTS-247 */
+#define XKB_KEY_braille_dots_1247          0x100284b  /* U+284B BRAILLE PATTERN DOTS-1247 */
+#define XKB_KEY_braille_dots_347           0x100284c  /* U+284C BRAILLE PATTERN DOTS-347 */
+#define XKB_KEY_braille_dots_1347          0x100284d  /* U+284D BRAILLE PATTERN DOTS-1347 */
+#define XKB_KEY_braille_dots_2347          0x100284e  /* U+284E BRAILLE PATTERN DOTS-2347 */
+#define XKB_KEY_braille_dots_12347         0x100284f  /* U+284F BRAILLE PATTERN DOTS-12347 */
 #define XKB_KEY_braille_dots_57            0x1002850  /* U+2850 BRAILLE PATTERN DOTS-57 */
 #define XKB_KEY_braille_dots_157           0x1002851  /* U+2851 BRAILLE PATTERN DOTS-157 */
 #define XKB_KEY_braille_dots_257           0x1002852  /* U+2852 BRAILLE PATTERN DOTS-257 */
@@ -2204,12 +2220,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_12357         0x1002857  /* U+2857 BRAILLE PATTERN DOTS-12357 */
 #define XKB_KEY_braille_dots_457           0x1002858  /* U+2858 BRAILLE PATTERN DOTS-457 */
 #define XKB_KEY_braille_dots_1457          0x1002859  /* U+2859 BRAILLE PATTERN DOTS-1457 */
-#define XKB_KEY_braille_dots_2457          0x100285a  /* U+285a BRAILLE PATTERN DOTS-2457 */
-#define XKB_KEY_braille_dots_12457         0x100285b  /* U+285b BRAILLE PATTERN DOTS-12457 */
-#define XKB_KEY_braille_dots_3457          0x100285c  /* U+285c BRAILLE PATTERN DOTS-3457 */
-#define XKB_KEY_braille_dots_13457         0x100285d  /* U+285d BRAILLE PATTERN DOTS-13457 */
-#define XKB_KEY_braille_dots_23457         0x100285e  /* U+285e BRAILLE PATTERN DOTS-23457 */
-#define XKB_KEY_braille_dots_123457        0x100285f  /* U+285f BRAILLE PATTERN DOTS-123457 */
+#define XKB_KEY_braille_dots_2457          0x100285a  /* U+285A BRAILLE PATTERN DOTS-2457 */
+#define XKB_KEY_braille_dots_12457         0x100285b  /* U+285B BRAILLE PATTERN DOTS-12457 */
+#define XKB_KEY_braille_dots_3457          0x100285c  /* U+285C BRAILLE PATTERN DOTS-3457 */
+#define XKB_KEY_braille_dots_13457         0x100285d  /* U+285D BRAILLE PATTERN DOTS-13457 */
+#define XKB_KEY_braille_dots_23457         0x100285e  /* U+285E BRAILLE PATTERN DOTS-23457 */
+#define XKB_KEY_braille_dots_123457        0x100285f  /* U+285F BRAILLE PATTERN DOTS-123457 */
 #define XKB_KEY_braille_dots_67            0x1002860  /* U+2860 BRAILLE PATTERN DOTS-67 */
 #define XKB_KEY_braille_dots_167           0x1002861  /* U+2861 BRAILLE PATTERN DOTS-167 */
 #define XKB_KEY_braille_dots_267           0x1002862  /* U+2862 BRAILLE PATTERN DOTS-267 */
@@ -2220,12 +2236,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_12367         0x1002867  /* U+2867 BRAILLE PATTERN DOTS-12367 */
 #define XKB_KEY_braille_dots_467           0x1002868  /* U+2868 BRAILLE PATTERN DOTS-467 */
 #define XKB_KEY_braille_dots_1467          0x1002869  /* U+2869 BRAILLE PATTERN DOTS-1467 */
-#define XKB_KEY_braille_dots_2467          0x100286a  /* U+286a BRAILLE PATTERN DOTS-2467 */
-#define XKB_KEY_braille_dots_12467         0x100286b  /* U+286b BRAILLE PATTERN DOTS-12467 */
-#define XKB_KEY_braille_dots_3467          0x100286c  /* U+286c BRAILLE PATTERN DOTS-3467 */
-#define XKB_KEY_braille_dots_13467         0x100286d  /* U+286d BRAILLE PATTERN DOTS-13467 */
-#define XKB_KEY_braille_dots_23467         0x100286e  /* U+286e BRAILLE PATTERN DOTS-23467 */
-#define XKB_KEY_braille_dots_123467        0x100286f  /* U+286f BRAILLE PATTERN DOTS-123467 */
+#define XKB_KEY_braille_dots_2467          0x100286a  /* U+286A BRAILLE PATTERN DOTS-2467 */
+#define XKB_KEY_braille_dots_12467         0x100286b  /* U+286B BRAILLE PATTERN DOTS-12467 */
+#define XKB_KEY_braille_dots_3467          0x100286c  /* U+286C BRAILLE PATTERN DOTS-3467 */
+#define XKB_KEY_braille_dots_13467         0x100286d  /* U+286D BRAILLE PATTERN DOTS-13467 */
+#define XKB_KEY_braille_dots_23467         0x100286e  /* U+286E BRAILLE PATTERN DOTS-23467 */
+#define XKB_KEY_braille_dots_123467        0x100286f  /* U+286F BRAILLE PATTERN DOTS-123467 */
 #define XKB_KEY_braille_dots_567           0x1002870  /* U+2870 BRAILLE PATTERN DOTS-567 */
 #define XKB_KEY_braille_dots_1567          0x1002871  /* U+2871 BRAILLE PATTERN DOTS-1567 */
 #define XKB_KEY_braille_dots_2567          0x1002872  /* U+2872 BRAILLE PATTERN DOTS-2567 */
@@ -2236,12 +2252,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_123567        0x1002877  /* U+2877 BRAILLE PATTERN DOTS-123567 */
 #define XKB_KEY_braille_dots_4567          0x1002878  /* U+2878 BRAILLE PATTERN DOTS-4567 */
 #define XKB_KEY_braille_dots_14567         0x1002879  /* U+2879 BRAILLE PATTERN DOTS-14567 */
-#define XKB_KEY_braille_dots_24567         0x100287a  /* U+287a BRAILLE PATTERN DOTS-24567 */
-#define XKB_KEY_braille_dots_124567        0x100287b  /* U+287b BRAILLE PATTERN DOTS-124567 */
-#define XKB_KEY_braille_dots_34567         0x100287c  /* U+287c BRAILLE PATTERN DOTS-34567 */
-#define XKB_KEY_braille_dots_134567        0x100287d  /* U+287d BRAILLE PATTERN DOTS-134567 */
-#define XKB_KEY_braille_dots_234567        0x100287e  /* U+287e BRAILLE PATTERN DOTS-234567 */
-#define XKB_KEY_braille_dots_1234567       0x100287f  /* U+287f BRAILLE PATTERN DOTS-1234567 */
+#define XKB_KEY_braille_dots_24567         0x100287a  /* U+287A BRAILLE PATTERN DOTS-24567 */
+#define XKB_KEY_braille_dots_124567        0x100287b  /* U+287B BRAILLE PATTERN DOTS-124567 */
+#define XKB_KEY_braille_dots_34567         0x100287c  /* U+287C BRAILLE PATTERN DOTS-34567 */
+#define XKB_KEY_braille_dots_134567        0x100287d  /* U+287D BRAILLE PATTERN DOTS-134567 */
+#define XKB_KEY_braille_dots_234567        0x100287e  /* U+287E BRAILLE PATTERN DOTS-234567 */
+#define XKB_KEY_braille_dots_1234567       0x100287f  /* U+287F BRAILLE PATTERN DOTS-1234567 */
 #define XKB_KEY_braille_dots_8             0x1002880  /* U+2880 BRAILLE PATTERN DOTS-8 */
 #define XKB_KEY_braille_dots_18            0x1002881  /* U+2881 BRAILLE PATTERN DOTS-18 */
 #define XKB_KEY_braille_dots_28            0x1002882  /* U+2882 BRAILLE PATTERN DOTS-28 */
@@ -2252,12 +2268,12 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_1238          0x1002887  /* U+2887 BRAILLE PATTERN DOTS-1238 */
 #define XKB_KEY_braille_dots_48            0x1002888  /* U+2888 BRAILLE PATTERN DOTS-48 */
 #define XKB_KEY_braille_dots_148           0x1002889  /* U+2889 BRAILLE PATTERN DOTS-148 */
-#define XKB_KEY_braille_dots_248           0x100288a  /* U+288a BRAILLE PATTERN DOTS-248 */
-#define XKB_KEY_braille_dots_1248          0x100288b  /* U+288b BRAILLE PATTERN DOTS-1248 */
-#define XKB_KEY_braille_dots_348           0x100288c  /* U+288c BRAILLE PATTERN DOTS-348 */
-#define XKB_KEY_braille_dots_1348          0x100288d  /* U+288d BRAILLE PATTERN DOTS-1348 */
-#define XKB_KEY_braille_dots_2348          0x100288e  /* U+288e BRAILLE PATTERN DOTS-2348 */
-#define XKB_KEY_braille_dots_12348         0x100288f  /* U+288f BRAILLE PATTERN DOTS-12348 */
+#define XKB_KEY_braille_dots_248           0x100288a  /* U+288A BRAILLE PATTERN DOTS-248 */
+#define XKB_KEY_braille_dots_1248          0x100288b  /* U+288B BRAILLE PATTERN DOTS-1248 */
+#define XKB_KEY_braille_dots_348           0x100288c  /* U+288C BRAILLE PATTERN DOTS-348 */
+#define XKB_KEY_braille_dots_1348          0x100288d  /* U+288D BRAILLE PATTERN DOTS-1348 */
+#define XKB_KEY_braille_dots_2348          0x100288e  /* U+288E BRAILLE PATTERN DOTS-2348 */
+#define XKB_KEY_braille_dots_12348         0x100288f  /* U+288F BRAILLE PATTERN DOTS-12348 */
 #define XKB_KEY_braille_dots_58            0x1002890  /* U+2890 BRAILLE PATTERN DOTS-58 */
 #define XKB_KEY_braille_dots_158           0x1002891  /* U+2891 BRAILLE PATTERN DOTS-158 */
 #define XKB_KEY_braille_dots_258           0x1002892  /* U+2892 BRAILLE PATTERN DOTS-258 */
@@ -2268,198 +2284,198 @@ SOFTWARE.
 #define XKB_KEY_braille_dots_12358         0x1002897  /* U+2897 BRAILLE PATTERN DOTS-12358 */
 #define XKB_KEY_braille_dots_458           0x1002898  /* U+2898 BRAILLE PATTERN DOTS-458 */
 #define XKB_KEY_braille_dots_1458          0x1002899  /* U+2899 BRAILLE PATTERN DOTS-1458 */
-#define XKB_KEY_braille_dots_2458          0x100289a  /* U+289a BRAILLE PATTERN DOTS-2458 */
-#define XKB_KEY_braille_dots_12458         0x100289b  /* U+289b BRAILLE PATTERN DOTS-12458 */
-#define XKB_KEY_braille_dots_3458          0x100289c  /* U+289c BRAILLE PATTERN DOTS-3458 */
-#define XKB_KEY_braille_dots_13458         0x100289d  /* U+289d BRAILLE PATTERN DOTS-13458 */
-#define XKB_KEY_braille_dots_23458         0x100289e  /* U+289e BRAILLE PATTERN DOTS-23458 */
-#define XKB_KEY_braille_dots_123458        0x100289f  /* U+289f BRAILLE PATTERN DOTS-123458 */
-#define XKB_KEY_braille_dots_68            0x10028a0  /* U+28a0 BRAILLE PATTERN DOTS-68 */
-#define XKB_KEY_braille_dots_168           0x10028a1  /* U+28a1 BRAILLE PATTERN DOTS-168 */
-#define XKB_KEY_braille_dots_268           0x10028a2  /* U+28a2 BRAILLE PATTERN DOTS-268 */
-#define XKB_KEY_braille_dots_1268          0x10028a3  /* U+28a3 BRAILLE PATTERN DOTS-1268 */
-#define XKB_KEY_braille_dots_368           0x10028a4  /* U+28a4 BRAILLE PATTERN DOTS-368 */
-#define XKB_KEY_braille_dots_1368          0x10028a5  /* U+28a5 BRAILLE PATTERN DOTS-1368 */
-#define XKB_KEY_braille_dots_2368          0x10028a6  /* U+28a6 BRAILLE PATTERN DOTS-2368 */
-#define XKB_KEY_braille_dots_12368         0x10028a7  /* U+28a7 BRAILLE PATTERN DOTS-12368 */
-#define XKB_KEY_braille_dots_468           0x10028a8  /* U+28a8 BRAILLE PATTERN DOTS-468 */
-#define XKB_KEY_braille_dots_1468          0x10028a9  /* U+28a9 BRAILLE PATTERN DOTS-1468 */
-#define XKB_KEY_braille_dots_2468          0x10028aa  /* U+28aa BRAILLE PATTERN DOTS-2468 */
-#define XKB_KEY_braille_dots_12468         0x10028ab  /* U+28ab BRAILLE PATTERN DOTS-12468 */
-#define XKB_KEY_braille_dots_3468          0x10028ac  /* U+28ac BRAILLE PATTERN DOTS-3468 */
-#define XKB_KEY_braille_dots_13468         0x10028ad  /* U+28ad BRAILLE PATTERN DOTS-13468 */
-#define XKB_KEY_braille_dots_23468         0x10028ae  /* U+28ae BRAILLE PATTERN DOTS-23468 */
-#define XKB_KEY_braille_dots_123468        0x10028af  /* U+28af BRAILLE PATTERN DOTS-123468 */
-#define XKB_KEY_braille_dots_568           0x10028b0  /* U+28b0 BRAILLE PATTERN DOTS-568 */
-#define XKB_KEY_braille_dots_1568          0x10028b1  /* U+28b1 BRAILLE PATTERN DOTS-1568 */
-#define XKB_KEY_braille_dots_2568          0x10028b2  /* U+28b2 BRAILLE PATTERN DOTS-2568 */
-#define XKB_KEY_braille_dots_12568         0x10028b3  /* U+28b3 BRAILLE PATTERN DOTS-12568 */
-#define XKB_KEY_braille_dots_3568          0x10028b4  /* U+28b4 BRAILLE PATTERN DOTS-3568 */
-#define XKB_KEY_braille_dots_13568         0x10028b5  /* U+28b5 BRAILLE PATTERN DOTS-13568 */
-#define XKB_KEY_braille_dots_23568         0x10028b6  /* U+28b6 BRAILLE PATTERN DOTS-23568 */
-#define XKB_KEY_braille_dots_123568        0x10028b7  /* U+28b7 BRAILLE PATTERN DOTS-123568 */
-#define XKB_KEY_braille_dots_4568          0x10028b8  /* U+28b8 BRAILLE PATTERN DOTS-4568 */
-#define XKB_KEY_braille_dots_14568         0x10028b9  /* U+28b9 BRAILLE PATTERN DOTS-14568 */
-#define XKB_KEY_braille_dots_24568         0x10028ba  /* U+28ba BRAILLE PATTERN DOTS-24568 */
-#define XKB_KEY_braille_dots_124568        0x10028bb  /* U+28bb BRAILLE PATTERN DOTS-124568 */
-#define XKB_KEY_braille_dots_34568         0x10028bc  /* U+28bc BRAILLE PATTERN DOTS-34568 */
-#define XKB_KEY_braille_dots_134568        0x10028bd  /* U+28bd BRAILLE PATTERN DOTS-134568 */
-#define XKB_KEY_braille_dots_234568        0x10028be  /* U+28be BRAILLE PATTERN DOTS-234568 */
-#define XKB_KEY_braille_dots_1234568       0x10028bf  /* U+28bf BRAILLE PATTERN DOTS-1234568 */
-#define XKB_KEY_braille_dots_78            0x10028c0  /* U+28c0 BRAILLE PATTERN DOTS-78 */
-#define XKB_KEY_braille_dots_178           0x10028c1  /* U+28c1 BRAILLE PATTERN DOTS-178 */
-#define XKB_KEY_braille_dots_278           0x10028c2  /* U+28c2 BRAILLE PATTERN DOTS-278 */
-#define XKB_KEY_braille_dots_1278          0x10028c3  /* U+28c3 BRAILLE PATTERN DOTS-1278 */
-#define XKB_KEY_braille_dots_378           0x10028c4  /* U+28c4 BRAILLE PATTERN DOTS-378 */
-#define XKB_KEY_braille_dots_1378          0x10028c5  /* U+28c5 BRAILLE PATTERN DOTS-1378 */
-#define XKB_KEY_braille_dots_2378          0x10028c6  /* U+28c6 BRAILLE PATTERN DOTS-2378 */
-#define XKB_KEY_braille_dots_12378         0x10028c7  /* U+28c7 BRAILLE PATTERN DOTS-12378 */
-#define XKB_KEY_braille_dots_478           0x10028c8  /* U+28c8 BRAILLE PATTERN DOTS-478 */
-#define XKB_KEY_braille_dots_1478          0x10028c9  /* U+28c9 BRAILLE PATTERN DOTS-1478 */
-#define XKB_KEY_braille_dots_2478          0x10028ca  /* U+28ca BRAILLE PATTERN DOTS-2478 */
-#define XKB_KEY_braille_dots_12478         0x10028cb  /* U+28cb BRAILLE PATTERN DOTS-12478 */
-#define XKB_KEY_braille_dots_3478          0x10028cc  /* U+28cc BRAILLE PATTERN DOTS-3478 */
-#define XKB_KEY_braille_dots_13478         0x10028cd  /* U+28cd BRAILLE PATTERN DOTS-13478 */
-#define XKB_KEY_braille_dots_23478         0x10028ce  /* U+28ce BRAILLE PATTERN DOTS-23478 */
-#define XKB_KEY_braille_dots_123478        0x10028cf  /* U+28cf BRAILLE PATTERN DOTS-123478 */
-#define XKB_KEY_braille_dots_578           0x10028d0  /* U+28d0 BRAILLE PATTERN DOTS-578 */
-#define XKB_KEY_braille_dots_1578          0x10028d1  /* U+28d1 BRAILLE PATTERN DOTS-1578 */
-#define XKB_KEY_braille_dots_2578          0x10028d2  /* U+28d2 BRAILLE PATTERN DOTS-2578 */
-#define XKB_KEY_braille_dots_12578         0x10028d3  /* U+28d3 BRAILLE PATTERN DOTS-12578 */
-#define XKB_KEY_braille_dots_3578          0x10028d4  /* U+28d4 BRAILLE PATTERN DOTS-3578 */
-#define XKB_KEY_braille_dots_13578         0x10028d5  /* U+28d5 BRAILLE PATTERN DOTS-13578 */
-#define XKB_KEY_braille_dots_23578         0x10028d6  /* U+28d6 BRAILLE PATTERN DOTS-23578 */
-#define XKB_KEY_braille_dots_123578        0x10028d7  /* U+28d7 BRAILLE PATTERN DOTS-123578 */
-#define XKB_KEY_braille_dots_4578          0x10028d8  /* U+28d8 BRAILLE PATTERN DOTS-4578 */
-#define XKB_KEY_braille_dots_14578         0x10028d9  /* U+28d9 BRAILLE PATTERN DOTS-14578 */
-#define XKB_KEY_braille_dots_24578         0x10028da  /* U+28da BRAILLE PATTERN DOTS-24578 */
-#define XKB_KEY_braille_dots_124578        0x10028db  /* U+28db BRAILLE PATTERN DOTS-124578 */
-#define XKB_KEY_braille_dots_34578         0x10028dc  /* U+28dc BRAILLE PATTERN DOTS-34578 */
-#define XKB_KEY_braille_dots_134578        0x10028dd  /* U+28dd BRAILLE PATTERN DOTS-134578 */
-#define XKB_KEY_braille_dots_234578        0x10028de  /* U+28de BRAILLE PATTERN DOTS-234578 */
-#define XKB_KEY_braille_dots_1234578       0x10028df  /* U+28df BRAILLE PATTERN DOTS-1234578 */
-#define XKB_KEY_braille_dots_678           0x10028e0  /* U+28e0 BRAILLE PATTERN DOTS-678 */
-#define XKB_KEY_braille_dots_1678          0x10028e1  /* U+28e1 BRAILLE PATTERN DOTS-1678 */
-#define XKB_KEY_braille_dots_2678          0x10028e2  /* U+28e2 BRAILLE PATTERN DOTS-2678 */
-#define XKB_KEY_braille_dots_12678         0x10028e3  /* U+28e3 BRAILLE PATTERN DOTS-12678 */
-#define XKB_KEY_braille_dots_3678          0x10028e4  /* U+28e4 BRAILLE PATTERN DOTS-3678 */
-#define XKB_KEY_braille_dots_13678         0x10028e5  /* U+28e5 BRAILLE PATTERN DOTS-13678 */
-#define XKB_KEY_braille_dots_23678         0x10028e6  /* U+28e6 BRAILLE PATTERN DOTS-23678 */
-#define XKB_KEY_braille_dots_123678        0x10028e7  /* U+28e7 BRAILLE PATTERN DOTS-123678 */
-#define XKB_KEY_braille_dots_4678          0x10028e8  /* U+28e8 BRAILLE PATTERN DOTS-4678 */
-#define XKB_KEY_braille_dots_14678         0x10028e9  /* U+28e9 BRAILLE PATTERN DOTS-14678 */
-#define XKB_KEY_braille_dots_24678         0x10028ea  /* U+28ea BRAILLE PATTERN DOTS-24678 */
-#define XKB_KEY_braille_dots_124678        0x10028eb  /* U+28eb BRAILLE PATTERN DOTS-124678 */
-#define XKB_KEY_braille_dots_34678         0x10028ec  /* U+28ec BRAILLE PATTERN DOTS-34678 */
-#define XKB_KEY_braille_dots_134678        0x10028ed  /* U+28ed BRAILLE PATTERN DOTS-134678 */
-#define XKB_KEY_braille_dots_234678        0x10028ee  /* U+28ee BRAILLE PATTERN DOTS-234678 */
-#define XKB_KEY_braille_dots_1234678       0x10028ef  /* U+28ef BRAILLE PATTERN DOTS-1234678 */
-#define XKB_KEY_braille_dots_5678          0x10028f0  /* U+28f0 BRAILLE PATTERN DOTS-5678 */
-#define XKB_KEY_braille_dots_15678         0x10028f1  /* U+28f1 BRAILLE PATTERN DOTS-15678 */
-#define XKB_KEY_braille_dots_25678         0x10028f2  /* U+28f2 BRAILLE PATTERN DOTS-25678 */
-#define XKB_KEY_braille_dots_125678        0x10028f3  /* U+28f3 BRAILLE PATTERN DOTS-125678 */
-#define XKB_KEY_braille_dots_35678         0x10028f4  /* U+28f4 BRAILLE PATTERN DOTS-35678 */
-#define XKB_KEY_braille_dots_135678        0x10028f5  /* U+28f5 BRAILLE PATTERN DOTS-135678 */
-#define XKB_KEY_braille_dots_235678        0x10028f6  /* U+28f6 BRAILLE PATTERN DOTS-235678 */
-#define XKB_KEY_braille_dots_1235678       0x10028f7  /* U+28f7 BRAILLE PATTERN DOTS-1235678 */
-#define XKB_KEY_braille_dots_45678         0x10028f8  /* U+28f8 BRAILLE PATTERN DOTS-45678 */
-#define XKB_KEY_braille_dots_145678        0x10028f9  /* U+28f9 BRAILLE PATTERN DOTS-145678 */
-#define XKB_KEY_braille_dots_245678        0x10028fa  /* U+28fa BRAILLE PATTERN DOTS-245678 */
-#define XKB_KEY_braille_dots_1245678       0x10028fb  /* U+28fb BRAILLE PATTERN DOTS-1245678 */
-#define XKB_KEY_braille_dots_345678        0x10028fc  /* U+28fc BRAILLE PATTERN DOTS-345678 */
-#define XKB_KEY_braille_dots_1345678       0x10028fd  /* U+28fd BRAILLE PATTERN DOTS-1345678 */
-#define XKB_KEY_braille_dots_2345678       0x10028fe  /* U+28fe BRAILLE PATTERN DOTS-2345678 */
-#define XKB_KEY_braille_dots_12345678      0x10028ff  /* U+28ff BRAILLE PATTERN DOTS-12345678 */
+#define XKB_KEY_braille_dots_2458          0x100289a  /* U+289A BRAILLE PATTERN DOTS-2458 */
+#define XKB_KEY_braille_dots_12458         0x100289b  /* U+289B BRAILLE PATTERN DOTS-12458 */
+#define XKB_KEY_braille_dots_3458          0x100289c  /* U+289C BRAILLE PATTERN DOTS-3458 */
+#define XKB_KEY_braille_dots_13458         0x100289d  /* U+289D BRAILLE PATTERN DOTS-13458 */
+#define XKB_KEY_braille_dots_23458         0x100289e  /* U+289E BRAILLE PATTERN DOTS-23458 */
+#define XKB_KEY_braille_dots_123458        0x100289f  /* U+289F BRAILLE PATTERN DOTS-123458 */
+#define XKB_KEY_braille_dots_68            0x10028a0  /* U+28A0 BRAILLE PATTERN DOTS-68 */
+#define XKB_KEY_braille_dots_168           0x10028a1  /* U+28A1 BRAILLE PATTERN DOTS-168 */
+#define XKB_KEY_braille_dots_268           0x10028a2  /* U+28A2 BRAILLE PATTERN DOTS-268 */
+#define XKB_KEY_braille_dots_1268          0x10028a3  /* U+28A3 BRAILLE PATTERN DOTS-1268 */
+#define XKB_KEY_braille_dots_368           0x10028a4  /* U+28A4 BRAILLE PATTERN DOTS-368 */
+#define XKB_KEY_braille_dots_1368          0x10028a5  /* U+28A5 BRAILLE PATTERN DOTS-1368 */
+#define XKB_KEY_braille_dots_2368          0x10028a6  /* U+28A6 BRAILLE PATTERN DOTS-2368 */
+#define XKB_KEY_braille_dots_12368         0x10028a7  /* U+28A7 BRAILLE PATTERN DOTS-12368 */
+#define XKB_KEY_braille_dots_468           0x10028a8  /* U+28A8 BRAILLE PATTERN DOTS-468 */
+#define XKB_KEY_braille_dots_1468          0x10028a9  /* U+28A9 BRAILLE PATTERN DOTS-1468 */
+#define XKB_KEY_braille_dots_2468          0x10028aa  /* U+28AA BRAILLE PATTERN DOTS-2468 */
+#define XKB_KEY_braille_dots_12468         0x10028ab  /* U+28AB BRAILLE PATTERN DOTS-12468 */
+#define XKB_KEY_braille_dots_3468          0x10028ac  /* U+28AC BRAILLE PATTERN DOTS-3468 */
+#define XKB_KEY_braille_dots_13468         0x10028ad  /* U+28AD BRAILLE PATTERN DOTS-13468 */
+#define XKB_KEY_braille_dots_23468         0x10028ae  /* U+28AE BRAILLE PATTERN DOTS-23468 */
+#define XKB_KEY_braille_dots_123468        0x10028af  /* U+28AF BRAILLE PATTERN DOTS-123468 */
+#define XKB_KEY_braille_dots_568           0x10028b0  /* U+28B0 BRAILLE PATTERN DOTS-568 */
+#define XKB_KEY_braille_dots_1568          0x10028b1  /* U+28B1 BRAILLE PATTERN DOTS-1568 */
+#define XKB_KEY_braille_dots_2568          0x10028b2  /* U+28B2 BRAILLE PATTERN DOTS-2568 */
+#define XKB_KEY_braille_dots_12568         0x10028b3  /* U+28B3 BRAILLE PATTERN DOTS-12568 */
+#define XKB_KEY_braille_dots_3568          0x10028b4  /* U+28B4 BRAILLE PATTERN DOTS-3568 */
+#define XKB_KEY_braille_dots_13568         0x10028b5  /* U+28B5 BRAILLE PATTERN DOTS-13568 */
+#define XKB_KEY_braille_dots_23568         0x10028b6  /* U+28B6 BRAILLE PATTERN DOTS-23568 */
+#define XKB_KEY_braille_dots_123568        0x10028b7  /* U+28B7 BRAILLE PATTERN DOTS-123568 */
+#define XKB_KEY_braille_dots_4568          0x10028b8  /* U+28B8 BRAILLE PATTERN DOTS-4568 */
+#define XKB_KEY_braille_dots_14568         0x10028b9  /* U+28B9 BRAILLE PATTERN DOTS-14568 */
+#define XKB_KEY_braille_dots_24568         0x10028ba  /* U+28BA BRAILLE PATTERN DOTS-24568 */
+#define XKB_KEY_braille_dots_124568        0x10028bb  /* U+28BB BRAILLE PATTERN DOTS-124568 */
+#define XKB_KEY_braille_dots_34568         0x10028bc  /* U+28BC BRAILLE PATTERN DOTS-34568 */
+#define XKB_KEY_braille_dots_134568        0x10028bd  /* U+28BD BRAILLE PATTERN DOTS-134568 */
+#define XKB_KEY_braille_dots_234568        0x10028be  /* U+28BE BRAILLE PATTERN DOTS-234568 */
+#define XKB_KEY_braille_dots_1234568       0x10028bf  /* U+28BF BRAILLE PATTERN DOTS-1234568 */
+#define XKB_KEY_braille_dots_78            0x10028c0  /* U+28C0 BRAILLE PATTERN DOTS-78 */
+#define XKB_KEY_braille_dots_178           0x10028c1  /* U+28C1 BRAILLE PATTERN DOTS-178 */
+#define XKB_KEY_braille_dots_278           0x10028c2  /* U+28C2 BRAILLE PATTERN DOTS-278 */
+#define XKB_KEY_braille_dots_1278          0x10028c3  /* U+28C3 BRAILLE PATTERN DOTS-1278 */
+#define XKB_KEY_braille_dots_378           0x10028c4  /* U+28C4 BRAILLE PATTERN DOTS-378 */
+#define XKB_KEY_braille_dots_1378          0x10028c5  /* U+28C5 BRAILLE PATTERN DOTS-1378 */
+#define XKB_KEY_braille_dots_2378          0x10028c6  /* U+28C6 BRAILLE PATTERN DOTS-2378 */
+#define XKB_KEY_braille_dots_12378         0x10028c7  /* U+28C7 BRAILLE PATTERN DOTS-12378 */
+#define XKB_KEY_braille_dots_478           0x10028c8  /* U+28C8 BRAILLE PATTERN DOTS-478 */
+#define XKB_KEY_braille_dots_1478          0x10028c9  /* U+28C9 BRAILLE PATTERN DOTS-1478 */
+#define XKB_KEY_braille_dots_2478          0x10028ca  /* U+28CA BRAILLE PATTERN DOTS-2478 */
+#define XKB_KEY_braille_dots_12478         0x10028cb  /* U+28CB BRAILLE PATTERN DOTS-12478 */
+#define XKB_KEY_braille_dots_3478          0x10028cc  /* U+28CC BRAILLE PATTERN DOTS-3478 */
+#define XKB_KEY_braille_dots_13478         0x10028cd  /* U+28CD BRAILLE PATTERN DOTS-13478 */
+#define XKB_KEY_braille_dots_23478         0x10028ce  /* U+28CE BRAILLE PATTERN DOTS-23478 */
+#define XKB_KEY_braille_dots_123478        0x10028cf  /* U+28CF BRAILLE PATTERN DOTS-123478 */
+#define XKB_KEY_braille_dots_578           0x10028d0  /* U+28D0 BRAILLE PATTERN DOTS-578 */
+#define XKB_KEY_braille_dots_1578          0x10028d1  /* U+28D1 BRAILLE PATTERN DOTS-1578 */
+#define XKB_KEY_braille_dots_2578          0x10028d2  /* U+28D2 BRAILLE PATTERN DOTS-2578 */
+#define XKB_KEY_braille_dots_12578         0x10028d3  /* U+28D3 BRAILLE PATTERN DOTS-12578 */
+#define XKB_KEY_braille_dots_3578          0x10028d4  /* U+28D4 BRAILLE PATTERN DOTS-3578 */
+#define XKB_KEY_braille_dots_13578         0x10028d5  /* U+28D5 BRAILLE PATTERN DOTS-13578 */
+#define XKB_KEY_braille_dots_23578         0x10028d6  /* U+28D6 BRAILLE PATTERN DOTS-23578 */
+#define XKB_KEY_braille_dots_123578        0x10028d7  /* U+28D7 BRAILLE PATTERN DOTS-123578 */
+#define XKB_KEY_braille_dots_4578          0x10028d8  /* U+28D8 BRAILLE PATTERN DOTS-4578 */
+#define XKB_KEY_braille_dots_14578         0x10028d9  /* U+28D9 BRAILLE PATTERN DOTS-14578 */
+#define XKB_KEY_braille_dots_24578         0x10028da  /* U+28DA BRAILLE PATTERN DOTS-24578 */
+#define XKB_KEY_braille_dots_124578        0x10028db  /* U+28DB BRAILLE PATTERN DOTS-124578 */
+#define XKB_KEY_braille_dots_34578         0x10028dc  /* U+28DC BRAILLE PATTERN DOTS-34578 */
+#define XKB_KEY_braille_dots_134578        0x10028dd  /* U+28DD BRAILLE PATTERN DOTS-134578 */
+#define XKB_KEY_braille_dots_234578        0x10028de  /* U+28DE BRAILLE PATTERN DOTS-234578 */
+#define XKB_KEY_braille_dots_1234578       0x10028df  /* U+28DF BRAILLE PATTERN DOTS-1234578 */
+#define XKB_KEY_braille_dots_678           0x10028e0  /* U+28E0 BRAILLE PATTERN DOTS-678 */
+#define XKB_KEY_braille_dots_1678          0x10028e1  /* U+28E1 BRAILLE PATTERN DOTS-1678 */
+#define XKB_KEY_braille_dots_2678          0x10028e2  /* U+28E2 BRAILLE PATTERN DOTS-2678 */
+#define XKB_KEY_braille_dots_12678         0x10028e3  /* U+28E3 BRAILLE PATTERN DOTS-12678 */
+#define XKB_KEY_braille_dots_3678          0x10028e4  /* U+28E4 BRAILLE PATTERN DOTS-3678 */
+#define XKB_KEY_braille_dots_13678         0x10028e5  /* U+28E5 BRAILLE PATTERN DOTS-13678 */
+#define XKB_KEY_braille_dots_23678         0x10028e6  /* U+28E6 BRAILLE PATTERN DOTS-23678 */
+#define XKB_KEY_braille_dots_123678        0x10028e7  /* U+28E7 BRAILLE PATTERN DOTS-123678 */
+#define XKB_KEY_braille_dots_4678          0x10028e8  /* U+28E8 BRAILLE PATTERN DOTS-4678 */
+#define XKB_KEY_braille_dots_14678         0x10028e9  /* U+28E9 BRAILLE PATTERN DOTS-14678 */
+#define XKB_KEY_braille_dots_24678         0x10028ea  /* U+28EA BRAILLE PATTERN DOTS-24678 */
+#define XKB_KEY_braille_dots_124678        0x10028eb  /* U+28EB BRAILLE PATTERN DOTS-124678 */
+#define XKB_KEY_braille_dots_34678         0x10028ec  /* U+28EC BRAILLE PATTERN DOTS-34678 */
+#define XKB_KEY_braille_dots_134678        0x10028ed  /* U+28ED BRAILLE PATTERN DOTS-134678 */
+#define XKB_KEY_braille_dots_234678        0x10028ee  /* U+28EE BRAILLE PATTERN DOTS-234678 */
+#define XKB_KEY_braille_dots_1234678       0x10028ef  /* U+28EF BRAILLE PATTERN DOTS-1234678 */
+#define XKB_KEY_braille_dots_5678          0x10028f0  /* U+28F0 BRAILLE PATTERN DOTS-5678 */
+#define XKB_KEY_braille_dots_15678         0x10028f1  /* U+28F1 BRAILLE PATTERN DOTS-15678 */
+#define XKB_KEY_braille_dots_25678         0x10028f2  /* U+28F2 BRAILLE PATTERN DOTS-25678 */
+#define XKB_KEY_braille_dots_125678        0x10028f3  /* U+28F3 BRAILLE PATTERN DOTS-125678 */
+#define XKB_KEY_braille_dots_35678         0x10028f4  /* U+28F4 BRAILLE PATTERN DOTS-35678 */
+#define XKB_KEY_braille_dots_135678        0x10028f5  /* U+28F5 BRAILLE PATTERN DOTS-135678 */
+#define XKB_KEY_braille_dots_235678        0x10028f6  /* U+28F6 BRAILLE PATTERN DOTS-235678 */
+#define XKB_KEY_braille_dots_1235678       0x10028f7  /* U+28F7 BRAILLE PATTERN DOTS-1235678 */
+#define XKB_KEY_braille_dots_45678         0x10028f8  /* U+28F8 BRAILLE PATTERN DOTS-45678 */
+#define XKB_KEY_braille_dots_145678        0x10028f9  /* U+28F9 BRAILLE PATTERN DOTS-145678 */
+#define XKB_KEY_braille_dots_245678        0x10028fa  /* U+28FA BRAILLE PATTERN DOTS-245678 */
+#define XKB_KEY_braille_dots_1245678       0x10028fb  /* U+28FB BRAILLE PATTERN DOTS-1245678 */
+#define XKB_KEY_braille_dots_345678        0x10028fc  /* U+28FC BRAILLE PATTERN DOTS-345678 */
+#define XKB_KEY_braille_dots_1345678       0x10028fd  /* U+28FD BRAILLE PATTERN DOTS-1345678 */
+#define XKB_KEY_braille_dots_2345678       0x10028fe  /* U+28FE BRAILLE PATTERN DOTS-2345678 */
+#define XKB_KEY_braille_dots_12345678      0x10028ff  /* U+28FF BRAILLE PATTERN DOTS-12345678 */
 
 /*
  * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf)
  * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html
  */
 
-#define XKB_KEY_Sinh_ng            0x1000d82  /* U+0D82 SINHALA ANUSVARAYA */
-#define XKB_KEY_Sinh_h2            0x1000d83  /* U+0D83 SINHALA VISARGAYA */
-#define XKB_KEY_Sinh_a             0x1000d85  /* U+0D85 SINHALA AYANNA */
-#define XKB_KEY_Sinh_aa            0x1000d86  /* U+0D86 SINHALA AAYANNA */
-#define XKB_KEY_Sinh_ae            0x1000d87  /* U+0D87 SINHALA AEYANNA */
-#define XKB_KEY_Sinh_aee           0x1000d88  /* U+0D88 SINHALA AEEYANNA */
-#define XKB_KEY_Sinh_i             0x1000d89  /* U+0D89 SINHALA IYANNA */
-#define XKB_KEY_Sinh_ii            0x1000d8a  /* U+0D8A SINHALA IIYANNA */
-#define XKB_KEY_Sinh_u             0x1000d8b  /* U+0D8B SINHALA UYANNA */
-#define XKB_KEY_Sinh_uu            0x1000d8c  /* U+0D8C SINHALA UUYANNA */
-#define XKB_KEY_Sinh_ri            0x1000d8d  /* U+0D8D SINHALA IRUYANNA */
-#define XKB_KEY_Sinh_rii           0x1000d8e  /* U+0D8E SINHALA IRUUYANNA */
-#define XKB_KEY_Sinh_lu            0x1000d8f  /* U+0D8F SINHALA ILUYANNA */
-#define XKB_KEY_Sinh_luu           0x1000d90  /* U+0D90 SINHALA ILUUYANNA */
-#define XKB_KEY_Sinh_e             0x1000d91  /* U+0D91 SINHALA EYANNA */
-#define XKB_KEY_Sinh_ee            0x1000d92  /* U+0D92 SINHALA EEYANNA */
-#define XKB_KEY_Sinh_ai            0x1000d93  /* U+0D93 SINHALA AIYANNA */
-#define XKB_KEY_Sinh_o             0x1000d94  /* U+0D94 SINHALA OYANNA */
-#define XKB_KEY_Sinh_oo            0x1000d95  /* U+0D95 SINHALA OOYANNA */
-#define XKB_KEY_Sinh_au            0x1000d96  /* U+0D96 SINHALA AUYANNA */
-#define XKB_KEY_Sinh_ka            0x1000d9a  /* U+0D9A SINHALA KAYANNA */
-#define XKB_KEY_Sinh_kha           0x1000d9b  /* U+0D9B SINHALA MAHA. KAYANNA */
-#define XKB_KEY_Sinh_ga            0x1000d9c  /* U+0D9C SINHALA GAYANNA */
-#define XKB_KEY_Sinh_gha           0x1000d9d  /* U+0D9D SINHALA MAHA. GAYANNA */
-#define XKB_KEY_Sinh_ng2           0x1000d9e  /* U+0D9E SINHALA KANTAJA NAASIKYAYA */
-#define XKB_KEY_Sinh_nga           0x1000d9f  /* U+0D9F SINHALA SANYAKA GAYANNA */
-#define XKB_KEY_Sinh_ca            0x1000da0  /* U+0DA0 SINHALA CAYANNA */
-#define XKB_KEY_Sinh_cha           0x1000da1  /* U+0DA1 SINHALA MAHA. CAYANNA */
-#define XKB_KEY_Sinh_ja            0x1000da2  /* U+0DA2 SINHALA JAYANNA */
-#define XKB_KEY_Sinh_jha           0x1000da3  /* U+0DA3 SINHALA MAHA. JAYANNA */
-#define XKB_KEY_Sinh_nya           0x1000da4  /* U+0DA4 SINHALA TAALUJA NAASIKYAYA */
-#define XKB_KEY_Sinh_jnya          0x1000da5  /* U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA */
-#define XKB_KEY_Sinh_nja           0x1000da6  /* U+0DA6 SINHALA SANYAKA JAYANNA */
-#define XKB_KEY_Sinh_tta           0x1000da7  /* U+0DA7 SINHALA TTAYANNA */
-#define XKB_KEY_Sinh_ttha          0x1000da8  /* U+0DA8 SINHALA MAHA. TTAYANNA */
-#define XKB_KEY_Sinh_dda           0x1000da9  /* U+0DA9 SINHALA DDAYANNA */
-#define XKB_KEY_Sinh_ddha          0x1000daa  /* U+0DAA SINHALA MAHA. DDAYANNA */
-#define XKB_KEY_Sinh_nna           0x1000dab  /* U+0DAB SINHALA MUURDHAJA NAYANNA */
-#define XKB_KEY_Sinh_ndda          0x1000dac  /* U+0DAC SINHALA SANYAKA DDAYANNA */
-#define XKB_KEY_Sinh_tha           0x1000dad  /* U+0DAD SINHALA TAYANNA */
-#define XKB_KEY_Sinh_thha          0x1000dae  /* U+0DAE SINHALA MAHA. TAYANNA */
-#define XKB_KEY_Sinh_dha           0x1000daf  /* U+0DAF SINHALA DAYANNA */
-#define XKB_KEY_Sinh_dhha          0x1000db0  /* U+0DB0 SINHALA MAHA. DAYANNA */
-#define XKB_KEY_Sinh_na            0x1000db1  /* U+0DB1 SINHALA DANTAJA NAYANNA */
-#define XKB_KEY_Sinh_ndha          0x1000db3  /* U+0DB3 SINHALA SANYAKA DAYANNA */
-#define XKB_KEY_Sinh_pa            0x1000db4  /* U+0DB4 SINHALA PAYANNA */
-#define XKB_KEY_Sinh_pha           0x1000db5  /* U+0DB5 SINHALA MAHA. PAYANNA */
-#define XKB_KEY_Sinh_ba            0x1000db6  /* U+0DB6 SINHALA BAYANNA */
-#define XKB_KEY_Sinh_bha           0x1000db7  /* U+0DB7 SINHALA MAHA. BAYANNA */
-#define XKB_KEY_Sinh_ma            0x1000db8  /* U+0DB8 SINHALA MAYANNA */
-#define XKB_KEY_Sinh_mba           0x1000db9  /* U+0DB9 SINHALA AMBA BAYANNA */
-#define XKB_KEY_Sinh_ya            0x1000dba  /* U+0DBA SINHALA YAYANNA */
-#define XKB_KEY_Sinh_ra            0x1000dbb  /* U+0DBB SINHALA RAYANNA */
-#define XKB_KEY_Sinh_la            0x1000dbd  /* U+0DBD SINHALA DANTAJA LAYANNA */
-#define XKB_KEY_Sinh_va            0x1000dc0  /* U+0DC0 SINHALA VAYANNA */
-#define XKB_KEY_Sinh_sha           0x1000dc1  /* U+0DC1 SINHALA TAALUJA SAYANNA */
-#define XKB_KEY_Sinh_ssha          0x1000dc2  /* U+0DC2 SINHALA MUURDHAJA SAYANNA */
-#define XKB_KEY_Sinh_sa            0x1000dc3  /* U+0DC3 SINHALA DANTAJA SAYANNA */
-#define XKB_KEY_Sinh_ha            0x1000dc4  /* U+0DC4 SINHALA HAYANNA */
-#define XKB_KEY_Sinh_lla           0x1000dc5  /* U+0DC5 SINHALA MUURDHAJA LAYANNA */
-#define XKB_KEY_Sinh_fa            0x1000dc6  /* U+0DC6 SINHALA FAYANNA */
-#define XKB_KEY_Sinh_al            0x1000dca  /* U+0DCA SINHALA AL-LAKUNA */
-#define XKB_KEY_Sinh_aa2           0x1000dcf  /* U+0DCF SINHALA AELA-PILLA */
-#define XKB_KEY_Sinh_ae2           0x1000dd0  /* U+0DD0 SINHALA AEDA-PILLA */
-#define XKB_KEY_Sinh_aee2          0x1000dd1  /* U+0DD1 SINHALA DIGA AEDA-PILLA */
-#define XKB_KEY_Sinh_i2            0x1000dd2  /* U+0DD2 SINHALA IS-PILLA */
-#define XKB_KEY_Sinh_ii2           0x1000dd3  /* U+0DD3 SINHALA DIGA IS-PILLA */
-#define XKB_KEY_Sinh_u2            0x1000dd4  /* U+0DD4 SINHALA PAA-PILLA */
-#define XKB_KEY_Sinh_uu2           0x1000dd6  /* U+0DD6 SINHALA DIGA PAA-PILLA */
-#define XKB_KEY_Sinh_ru2           0x1000dd8  /* U+0DD8 SINHALA GAETTA-PILLA */
-#define XKB_KEY_Sinh_e2            0x1000dd9  /* U+0DD9 SINHALA KOMBUVA */
-#define XKB_KEY_Sinh_ee2           0x1000dda  /* U+0DDA SINHALA DIGA KOMBUVA */
-#define XKB_KEY_Sinh_ai2           0x1000ddb  /* U+0DDB SINHALA KOMBU DEKA */
-#define XKB_KEY_Sinh_o2            0x1000ddc  /* U+0DDC SINHALA KOMBUVA HAA AELA-PILLA*/
-#define XKB_KEY_Sinh_oo2           0x1000ddd  /* U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA*/
-#define XKB_KEY_Sinh_au2           0x1000dde  /* U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA */
-#define XKB_KEY_Sinh_lu2           0x1000ddf  /* U+0DDF SINHALA GAYANUKITTA */
-#define XKB_KEY_Sinh_ruu2          0x1000df2  /* U+0DF2 SINHALA DIGA GAETTA-PILLA */
-#define XKB_KEY_Sinh_luu2          0x1000df3  /* U+0DF3 SINHALA DIGA GAYANUKITTA */
-#define XKB_KEY_Sinh_kunddaliya    0x1000df4  /* U+0DF4 SINHALA KUNDDALIYA */
+#define XKB_KEY_Sinh_ng                    0x1000d82  /* U+0D82 SINHALA SIGN ANUSVARAYA */
+#define XKB_KEY_Sinh_h2                    0x1000d83  /* U+0D83 SINHALA SIGN VISARGAYA */
+#define XKB_KEY_Sinh_a                     0x1000d85  /* U+0D85 SINHALA LETTER AYANNA */
+#define XKB_KEY_Sinh_aa                    0x1000d86  /* U+0D86 SINHALA LETTER AAYANNA */
+#define XKB_KEY_Sinh_ae                    0x1000d87  /* U+0D87 SINHALA LETTER AEYANNA */
+#define XKB_KEY_Sinh_aee                   0x1000d88  /* U+0D88 SINHALA LETTER AEEYANNA */
+#define XKB_KEY_Sinh_i                     0x1000d89  /* U+0D89 SINHALA LETTER IYANNA */
+#define XKB_KEY_Sinh_ii                    0x1000d8a  /* U+0D8A SINHALA LETTER IIYANNA */
+#define XKB_KEY_Sinh_u                     0x1000d8b  /* U+0D8B SINHALA LETTER UYANNA */
+#define XKB_KEY_Sinh_uu                    0x1000d8c  /* U+0D8C SINHALA LETTER UUYANNA */
+#define XKB_KEY_Sinh_ri                    0x1000d8d  /* U+0D8D SINHALA LETTER IRUYANNA */
+#define XKB_KEY_Sinh_rii                   0x1000d8e  /* U+0D8E SINHALA LETTER IRUUYANNA */
+#define XKB_KEY_Sinh_lu                    0x1000d8f  /* U+0D8F SINHALA LETTER ILUYANNA */
+#define XKB_KEY_Sinh_luu                   0x1000d90  /* U+0D90 SINHALA LETTER ILUUYANNA */
+#define XKB_KEY_Sinh_e                     0x1000d91  /* U+0D91 SINHALA LETTER EYANNA */
+#define XKB_KEY_Sinh_ee                    0x1000d92  /* U+0D92 SINHALA LETTER EEYANNA */
+#define XKB_KEY_Sinh_ai                    0x1000d93  /* U+0D93 SINHALA LETTER AIYANNA */
+#define XKB_KEY_Sinh_o                     0x1000d94  /* U+0D94 SINHALA LETTER OYANNA */
+#define XKB_KEY_Sinh_oo                    0x1000d95  /* U+0D95 SINHALA LETTER OOYANNA */
+#define XKB_KEY_Sinh_au                    0x1000d96  /* U+0D96 SINHALA LETTER AUYANNA */
+#define XKB_KEY_Sinh_ka                    0x1000d9a  /* U+0D9A SINHALA LETTER ALPAPRAANA KAYANNA */
+#define XKB_KEY_Sinh_kha                   0x1000d9b  /* U+0D9B SINHALA LETTER MAHAAPRAANA KAYANNA */
+#define XKB_KEY_Sinh_ga                    0x1000d9c  /* U+0D9C SINHALA LETTER ALPAPRAANA GAYANNA */
+#define XKB_KEY_Sinh_gha                   0x1000d9d  /* U+0D9D SINHALA LETTER MAHAAPRAANA GAYANNA */
+#define XKB_KEY_Sinh_ng2                   0x1000d9e  /* U+0D9E SINHALA LETTER KANTAJA NAASIKYAYA */
+#define XKB_KEY_Sinh_nga                   0x1000d9f  /* U+0D9F SINHALA LETTER SANYAKA GAYANNA */
+#define XKB_KEY_Sinh_ca                    0x1000da0  /* U+0DA0 SINHALA LETTER ALPAPRAANA CAYANNA */
+#define XKB_KEY_Sinh_cha                   0x1000da1  /* U+0DA1 SINHALA LETTER MAHAAPRAANA CAYANNA */
+#define XKB_KEY_Sinh_ja                    0x1000da2  /* U+0DA2 SINHALA LETTER ALPAPRAANA JAYANNA */
+#define XKB_KEY_Sinh_jha                   0x1000da3  /* U+0DA3 SINHALA LETTER MAHAAPRAANA JAYANNA */
+#define XKB_KEY_Sinh_nya                   0x1000da4  /* U+0DA4 SINHALA LETTER TAALUJA NAASIKYAYA */
+#define XKB_KEY_Sinh_jnya                  0x1000da5  /* U+0DA5 SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA */
+#define XKB_KEY_Sinh_nja                   0x1000da6  /* U+0DA6 SINHALA LETTER SANYAKA JAYANNA */
+#define XKB_KEY_Sinh_tta                   0x1000da7  /* U+0DA7 SINHALA LETTER ALPAPRAANA TTAYANNA */
+#define XKB_KEY_Sinh_ttha                  0x1000da8  /* U+0DA8 SINHALA LETTER MAHAAPRAANA TTAYANNA */
+#define XKB_KEY_Sinh_dda                   0x1000da9  /* U+0DA9 SINHALA LETTER ALPAPRAANA DDAYANNA */
+#define XKB_KEY_Sinh_ddha                  0x1000daa  /* U+0DAA SINHALA LETTER MAHAAPRAANA DDAYANNA */
+#define XKB_KEY_Sinh_nna                   0x1000dab  /* U+0DAB SINHALA LETTER MUURDHAJA NAYANNA */
+#define XKB_KEY_Sinh_ndda                  0x1000dac  /* U+0DAC SINHALA LETTER SANYAKA DDAYANNA */
+#define XKB_KEY_Sinh_tha                   0x1000dad  /* U+0DAD SINHALA LETTER ALPAPRAANA TAYANNA */
+#define XKB_KEY_Sinh_thha                  0x1000dae  /* U+0DAE SINHALA LETTER MAHAAPRAANA TAYANNA */
+#define XKB_KEY_Sinh_dha                   0x1000daf  /* U+0DAF SINHALA LETTER ALPAPRAANA DAYANNA */
+#define XKB_KEY_Sinh_dhha                  0x1000db0  /* U+0DB0 SINHALA LETTER MAHAAPRAANA DAYANNA */
+#define XKB_KEY_Sinh_na                    0x1000db1  /* U+0DB1 SINHALA LETTER DANTAJA NAYANNA */
+#define XKB_KEY_Sinh_ndha                  0x1000db3  /* U+0DB3 SINHALA LETTER SANYAKA DAYANNA */
+#define XKB_KEY_Sinh_pa                    0x1000db4  /* U+0DB4 SINHALA LETTER ALPAPRAANA PAYANNA */
+#define XKB_KEY_Sinh_pha                   0x1000db5  /* U+0DB5 SINHALA LETTER MAHAAPRAANA PAYANNA */
+#define XKB_KEY_Sinh_ba                    0x1000db6  /* U+0DB6 SINHALA LETTER ALPAPRAANA BAYANNA */
+#define XKB_KEY_Sinh_bha                   0x1000db7  /* U+0DB7 SINHALA LETTER MAHAAPRAANA BAYANNA */
+#define XKB_KEY_Sinh_ma                    0x1000db8  /* U+0DB8 SINHALA LETTER MAYANNA */
+#define XKB_KEY_Sinh_mba                   0x1000db9  /* U+0DB9 SINHALA LETTER AMBA BAYANNA */
+#define XKB_KEY_Sinh_ya                    0x1000dba  /* U+0DBA SINHALA LETTER YAYANNA */
+#define XKB_KEY_Sinh_ra                    0x1000dbb  /* U+0DBB SINHALA LETTER RAYANNA */
+#define XKB_KEY_Sinh_la                    0x1000dbd  /* U+0DBD SINHALA LETTER DANTAJA LAYANNA */
+#define XKB_KEY_Sinh_va                    0x1000dc0  /* U+0DC0 SINHALA LETTER VAYANNA */
+#define XKB_KEY_Sinh_sha                   0x1000dc1  /* U+0DC1 SINHALA LETTER TAALUJA SAYANNA */
+#define XKB_KEY_Sinh_ssha                  0x1000dc2  /* U+0DC2 SINHALA LETTER MUURDHAJA SAYANNA */
+#define XKB_KEY_Sinh_sa                    0x1000dc3  /* U+0DC3 SINHALA LETTER DANTAJA SAYANNA */
+#define XKB_KEY_Sinh_ha                    0x1000dc4  /* U+0DC4 SINHALA LETTER HAYANNA */
+#define XKB_KEY_Sinh_lla                   0x1000dc5  /* U+0DC5 SINHALA LETTER MUURDHAJA LAYANNA */
+#define XKB_KEY_Sinh_fa                    0x1000dc6  /* U+0DC6 SINHALA LETTER FAYANNA */
+#define XKB_KEY_Sinh_al                    0x1000dca  /* U+0DCA SINHALA SIGN AL-LAKUNA */
+#define XKB_KEY_Sinh_aa2                   0x1000dcf  /* U+0DCF SINHALA VOWEL SIGN AELA-PILLA */
+#define XKB_KEY_Sinh_ae2                   0x1000dd0  /* U+0DD0 SINHALA VOWEL SIGN KETTI AEDA-PILLA */
+#define XKB_KEY_Sinh_aee2                  0x1000dd1  /* U+0DD1 SINHALA VOWEL SIGN DIGA AEDA-PILLA */
+#define XKB_KEY_Sinh_i2                    0x1000dd2  /* U+0DD2 SINHALA VOWEL SIGN KETTI IS-PILLA */
+#define XKB_KEY_Sinh_ii2                   0x1000dd3  /* U+0DD3 SINHALA VOWEL SIGN DIGA IS-PILLA */
+#define XKB_KEY_Sinh_u2                    0x1000dd4  /* U+0DD4 SINHALA VOWEL SIGN KETTI PAA-PILLA */
+#define XKB_KEY_Sinh_uu2                   0x1000dd6  /* U+0DD6 SINHALA VOWEL SIGN DIGA PAA-PILLA */
+#define XKB_KEY_Sinh_ru2                   0x1000dd8  /* U+0DD8 SINHALA VOWEL SIGN GAETTA-PILLA */
+#define XKB_KEY_Sinh_e2                    0x1000dd9  /* U+0DD9 SINHALA VOWEL SIGN KOMBUVA */
+#define XKB_KEY_Sinh_ee2                   0x1000dda  /* U+0DDA SINHALA VOWEL SIGN DIGA KOMBUVA */
+#define XKB_KEY_Sinh_ai2                   0x1000ddb  /* U+0DDB SINHALA VOWEL SIGN KOMBU DEKA */
+#define XKB_KEY_Sinh_o2                    0x1000ddc  /* U+0DDC SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA */
+#define XKB_KEY_Sinh_oo2                   0x1000ddd  /* U+0DDD SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA */
+#define XKB_KEY_Sinh_au2                   0x1000dde  /* U+0DDE SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA */
+#define XKB_KEY_Sinh_lu2                   0x1000ddf  /* U+0DDF SINHALA VOWEL SIGN GAYANUKITTA */
+#define XKB_KEY_Sinh_ruu2                  0x1000df2  /* U+0DF2 SINHALA VOWEL SIGN DIGA GAETTA-PILLA */
+#define XKB_KEY_Sinh_luu2                  0x1000df3  /* U+0DF3 SINHALA VOWEL SIGN DIGA GAYANUKITTA */
+#define XKB_KEY_Sinh_kunddaliya            0x1000df4  /* U+0DF4 SINHALA PUNCTUATION KUNDDALIYA */
 /*
  * XFree86 vendor specific keysyms.
  *
- * The XFree86 keysym range is 0x10080001 - 0x1008FFFF.
+ * The XFree86 keysym range is 0x10080001 - 0x1008ffff.
  *
  * The XF86 set of keysyms is a catch-all set of defines for keysyms found
  * on various multimedia keyboards. Originally specific to XFree86 they have
@@ -2480,216 +2496,216 @@ SOFTWARE.
  * functionality.
  */
 
-#define XKB_KEY_XF86ModeLock           0x1008FF01      /* Mode Switch Lock */
+#define XKB_KEY_XF86ModeLock              0x1008ff01  /* Mode Switch Lock */
 
 /* Backlight controls. */
-#define XKB_KEY_XF86MonBrightnessUp    0x1008FF02  /* Monitor/panel brightness */
-#define XKB_KEY_XF86MonBrightnessDown  0x1008FF03  /* Monitor/panel brightness */
-#define XKB_KEY_XF86KbdLightOnOff      0x1008FF04  /* Keyboards may be lit     */
-#define XKB_KEY_XF86KbdBrightnessUp    0x1008FF05  /* Keyboards may be lit     */
-#define XKB_KEY_XF86KbdBrightnessDown  0x1008FF06  /* Keyboards may be lit     */
-#define XKB_KEY_XF86MonBrightnessCycle 0x1008FF07  /* Monitor/panel brightness */
+#define XKB_KEY_XF86MonBrightnessUp       0x1008ff02  /* Monitor/panel brightness */
+#define XKB_KEY_XF86MonBrightnessDown     0x1008ff03  /* Monitor/panel brightness */
+#define XKB_KEY_XF86KbdLightOnOff         0x1008ff04  /* Keyboards may be lit     */
+#define XKB_KEY_XF86KbdBrightnessUp       0x1008ff05  /* Keyboards may be lit     */
+#define XKB_KEY_XF86KbdBrightnessDown     0x1008ff06  /* Keyboards may be lit     */
+#define XKB_KEY_XF86MonBrightnessCycle    0x1008ff07  /* Monitor/panel brightness */
 
 /*
  * Keys found on some "Internet" keyboards.
  */
-#define XKB_KEY_XF86Standby            0x1008FF10   /* System into standby mode   */
-#define XKB_KEY_XF86AudioLowerVolume   0x1008FF11   /* Volume control down        */
-#define XKB_KEY_XF86AudioMute  0x1008FF12   /* Mute sound from the system */
-#define XKB_KEY_XF86AudioRaiseVolume   0x1008FF13   /* Volume control up          */
-#define XKB_KEY_XF86AudioPlay  0x1008FF14   /* Start playing of audio >   */
-#define XKB_KEY_XF86AudioStop  0x1008FF15   /* Stop playing audio         */
-#define XKB_KEY_XF86AudioPrev  0x1008FF16   /* Previous track             */
-#define XKB_KEY_XF86AudioNext  0x1008FF17   /* Next track                 */
-#define XKB_KEY_XF86HomePage           0x1008FF18   /* Display user's home page   */
-#define XKB_KEY_XF86Mail               0x1008FF19   /* Invoke user's mail program */
-#define XKB_KEY_XF86Start              0x1008FF1A   /* Start application          */
-#define XKB_KEY_XF86Search             0x1008FF1B   /* Search                     */
-#define XKB_KEY_XF86AudioRecord        0x1008FF1C   /* Record audio application   */
+#define XKB_KEY_XF86Standby               0x1008ff10  /* System into standby mode   */
+#define XKB_KEY_XF86AudioLowerVolume      0x1008ff11  /* Volume control down        */
+#define XKB_KEY_XF86AudioMute             0x1008ff12  /* Mute sound from the system */
+#define XKB_KEY_XF86AudioRaiseVolume      0x1008ff13  /* Volume control up          */
+#define XKB_KEY_XF86AudioPlay             0x1008ff14  /* Start playing of audio >   */
+#define XKB_KEY_XF86AudioStop             0x1008ff15  /* Stop playing audio         */
+#define XKB_KEY_XF86AudioPrev             0x1008ff16  /* Previous track             */
+#define XKB_KEY_XF86AudioNext             0x1008ff17  /* Next track                 */
+#define XKB_KEY_XF86HomePage              0x1008ff18  /* Display user's home page   */
+#define XKB_KEY_XF86Mail                  0x1008ff19  /* Invoke user's mail program */
+#define XKB_KEY_XF86Start                 0x1008ff1a  /* Start application          */
+#define XKB_KEY_XF86Search                0x1008ff1b  /* Search                     */
+#define XKB_KEY_XF86AudioRecord           0x1008ff1c  /* Record audio application   */
 
 /* These are sometimes found on PDA's (e.g. Palm, PocketPC or elsewhere)   */
-#define XKB_KEY_XF86Calculator 0x1008FF1D   /* Invoke calculator program  */
-#define XKB_KEY_XF86Memo               0x1008FF1E   /* Invoke Memo taking program */
-#define XKB_KEY_XF86ToDoList           0x1008FF1F   /* Invoke To Do List program  */
-#define XKB_KEY_XF86Calendar           0x1008FF20   /* Invoke Calendar program    */
-#define XKB_KEY_XF86PowerDown  0x1008FF21   /* Deep sleep the system      */
-#define XKB_KEY_XF86ContrastAdjust     0x1008FF22   /* Adjust screen contrast     */
-#define XKB_KEY_XF86RockerUp           0x1008FF23   /* Rocker switches exist up   */
-#define XKB_KEY_XF86RockerDown 0x1008FF24   /* and down                   */
-#define XKB_KEY_XF86RockerEnter        0x1008FF25   /* and let you press them     */
+#define XKB_KEY_XF86Calculator            0x1008ff1d  /* Invoke calculator program  */
+#define XKB_KEY_XF86Memo                  0x1008ff1e  /* Invoke Memo taking program */
+#define XKB_KEY_XF86ToDoList              0x1008ff1f  /* Invoke To Do List program  */
+#define XKB_KEY_XF86Calendar              0x1008ff20  /* Invoke Calendar program    */
+#define XKB_KEY_XF86PowerDown             0x1008ff21  /* Deep sleep the system      */
+#define XKB_KEY_XF86ContrastAdjust        0x1008ff22  /* Adjust screen contrast     */
+#define XKB_KEY_XF86RockerUp              0x1008ff23  /* Rocker switches exist up   */
+#define XKB_KEY_XF86RockerDown            0x1008ff24  /* and down                   */
+#define XKB_KEY_XF86RockerEnter           0x1008ff25  /* and let you press them     */
 
 /* Some more "Internet" keyboard symbols */
-#define XKB_KEY_XF86Back               0x1008FF26   /* Like back on a browser     */
-#define XKB_KEY_XF86Forward            0x1008FF27   /* Like forward on a browser  */
-#define XKB_KEY_XF86Stop               0x1008FF28   /* Stop current operation     */
-#define XKB_KEY_XF86Refresh            0x1008FF29   /* Refresh the page           */
-#define XKB_KEY_XF86PowerOff           0x1008FF2A   /* Power off system entirely  */
-#define XKB_KEY_XF86WakeUp             0x1008FF2B   /* Wake up system from sleep  */
-#define XKB_KEY_XF86Eject            0x1008FF2C   /* Eject device (e.g. DVD)    */
-#define XKB_KEY_XF86ScreenSaver      0x1008FF2D   /* Invoke screensaver         */
-#define XKB_KEY_XF86WWW              0x1008FF2E   /* Invoke web browser         */
-#define XKB_KEY_XF86Sleep            0x1008FF2F   /* Put system to sleep        */
-#define XKB_KEY_XF86Favorites  0x1008FF30   /* Show favorite locations    */
-#define XKB_KEY_XF86AudioPause 0x1008FF31   /* Pause audio playing        */
-#define XKB_KEY_XF86AudioMedia 0x1008FF32   /* Launch media collection app */
-#define XKB_KEY_XF86MyComputer 0x1008FF33   /* Display "My Computer" window */
-#define XKB_KEY_XF86VendorHome 0x1008FF34   /* Display vendor home web site */
-#define XKB_KEY_XF86LightBulb  0x1008FF35   /* Light bulb keys exist       */
-#define XKB_KEY_XF86Shop               0x1008FF36   /* Display shopping web site   */
-#define XKB_KEY_XF86History            0x1008FF37   /* Show history of web surfing */
-#define XKB_KEY_XF86OpenURL            0x1008FF38   /* Open selected URL           */
-#define XKB_KEY_XF86AddFavorite        0x1008FF39   /* Add URL to favorites list   */
-#define XKB_KEY_XF86HotLinks           0x1008FF3A   /* Show "hot" links            */
-#define XKB_KEY_XF86BrightnessAdjust   0x1008FF3B   /* Invoke brightness adj. UI   */
-#define XKB_KEY_XF86Finance            0x1008FF3C   /* Display financial site      */
-#define XKB_KEY_XF86Community  0x1008FF3D   /* Display user's community    */
-#define XKB_KEY_XF86AudioRewind        0x1008FF3E   /* "rewind" audio track        */
-#define XKB_KEY_XF86BackForward        0x1008FF3F   /* ??? */
-#define XKB_KEY_XF86Launch0            0x1008FF40   /* Launch Application          */
-#define XKB_KEY_XF86Launch1            0x1008FF41   /* Launch Application          */
-#define XKB_KEY_XF86Launch2            0x1008FF42   /* Launch Application          */
-#define XKB_KEY_XF86Launch3            0x1008FF43   /* Launch Application          */
-#define XKB_KEY_XF86Launch4            0x1008FF44   /* Launch Application          */
-#define XKB_KEY_XF86Launch5            0x1008FF45   /* Launch Application          */
-#define XKB_KEY_XF86Launch6            0x1008FF46   /* Launch Application          */
-#define XKB_KEY_XF86Launch7            0x1008FF47   /* Launch Application          */
-#define XKB_KEY_XF86Launch8            0x1008FF48   /* Launch Application          */
-#define XKB_KEY_XF86Launch9            0x1008FF49   /* Launch Application          */
-#define XKB_KEY_XF86LaunchA            0x1008FF4A   /* Launch Application          */
-#define XKB_KEY_XF86LaunchB            0x1008FF4B   /* Launch Application          */
-#define XKB_KEY_XF86LaunchC            0x1008FF4C   /* Launch Application          */
-#define XKB_KEY_XF86LaunchD            0x1008FF4D   /* Launch Application          */
-#define XKB_KEY_XF86LaunchE            0x1008FF4E   /* Launch Application          */
-#define XKB_KEY_XF86LaunchF            0x1008FF4F   /* Launch Application          */
-
-#define XKB_KEY_XF86ApplicationLeft    0x1008FF50   /* switch to application, left */
-#define XKB_KEY_XF86ApplicationRight   0x1008FF51   /* switch to application, right*/
-#define XKB_KEY_XF86Book               0x1008FF52   /* Launch bookreader           */
-#define XKB_KEY_XF86CD         0x1008FF53   /* Launch CD/DVD player        */
-#define XKB_KEY_XF86Calculater 0x1008FF54   /* Launch Calculater           */
-#define XKB_KEY_XF86Clear              0x1008FF55   /* Clear window, screen        */
-#define XKB_KEY_XF86Close              0x1008FF56   /* Close window                */
-#define XKB_KEY_XF86Copy               0x1008FF57   /* Copy selection              */
-#define XKB_KEY_XF86Cut                0x1008FF58   /* Cut selection               */
-#define XKB_KEY_XF86Display            0x1008FF59   /* Output switch key           */
-#define XKB_KEY_XF86DOS                0x1008FF5A   /* Launch DOS (emulation)      */
-#define XKB_KEY_XF86Documents  0x1008FF5B   /* Open documents window       */
-#define XKB_KEY_XF86Excel              0x1008FF5C   /* Launch spread sheet         */
-#define XKB_KEY_XF86Explorer           0x1008FF5D   /* Launch file explorer        */
-#define XKB_KEY_XF86Game               0x1008FF5E   /* Launch game                 */
-#define XKB_KEY_XF86Go         0x1008FF5F   /* Go to URL                   */
-#define XKB_KEY_XF86iTouch             0x1008FF60   /* Logitech iTouch- don't use  */
-#define XKB_KEY_XF86LogOff             0x1008FF61   /* Log off system              */
-#define XKB_KEY_XF86Market             0x1008FF62   /* ??                          */
-#define XKB_KEY_XF86Meeting            0x1008FF63   /* enter meeting in calendar   */
-#define XKB_KEY_XF86MenuKB             0x1008FF65   /* distinguish keyboard from PB */
-#define XKB_KEY_XF86MenuPB             0x1008FF66   /* distinguish PB from keyboard */
-#define XKB_KEY_XF86MySites            0x1008FF67   /* Favourites                  */
-#define XKB_KEY_XF86New                0x1008FF68   /* New (folder, document...    */
-#define XKB_KEY_XF86News               0x1008FF69   /* News                        */
-#define XKB_KEY_XF86OfficeHome 0x1008FF6A   /* Office home (old Staroffice)*/
-#define XKB_KEY_XF86Open               0x1008FF6B   /* Open                        */
-#define XKB_KEY_XF86Option             0x1008FF6C   /* ?? */
-#define XKB_KEY_XF86Paste              0x1008FF6D   /* Paste                       */
-#define XKB_KEY_XF86Phone              0x1008FF6E   /* Launch phone; dial number   */
-#define XKB_KEY_XF86Q          0x1008FF70   /* Compaq's Q - don't use      */
-#define XKB_KEY_XF86Reply              0x1008FF72   /* Reply e.g., mail            */
-#define XKB_KEY_XF86Reload             0x1008FF73   /* Reload web page, file, etc. */
-#define XKB_KEY_XF86RotateWindows      0x1008FF74   /* Rotate windows e.g. xrandr  */
-#define XKB_KEY_XF86RotationPB 0x1008FF75   /* don't use                   */
-#define XKB_KEY_XF86RotationKB 0x1008FF76   /* don't use                   */
-#define XKB_KEY_XF86Save               0x1008FF77   /* Save (file, document, state */
-#define XKB_KEY_XF86ScrollUp           0x1008FF78   /* Scroll window/contents up   */
-#define XKB_KEY_XF86ScrollDown 0x1008FF79   /* Scrool window/contentd down */
-#define XKB_KEY_XF86ScrollClick        0x1008FF7A   /* Use XKB mousekeys instead   */
-#define XKB_KEY_XF86Send               0x1008FF7B   /* Send mail, file, object     */
-#define XKB_KEY_XF86Spell              0x1008FF7C   /* Spell checker               */
-#define XKB_KEY_XF86SplitScreen        0x1008FF7D   /* Split window or screen      */
-#define XKB_KEY_XF86Support            0x1008FF7E   /* Get support (??)            */
-#define XKB_KEY_XF86TaskPane           0x1008FF7F   /* Show tasks */
-#define XKB_KEY_XF86Terminal           0x1008FF80   /* Launch terminal emulator    */
-#define XKB_KEY_XF86Tools              0x1008FF81   /* toolbox of desktop/app.     */
-#define XKB_KEY_XF86Travel             0x1008FF82   /* ?? */
-#define XKB_KEY_XF86UserPB             0x1008FF84   /* ?? */
-#define XKB_KEY_XF86User1KB            0x1008FF85   /* ?? */
-#define XKB_KEY_XF86User2KB            0x1008FF86   /* ?? */
-#define XKB_KEY_XF86Video              0x1008FF87   /* Launch video player       */
-#define XKB_KEY_XF86WheelButton        0x1008FF88   /* button from a mouse wheel */
-#define XKB_KEY_XF86Word               0x1008FF89   /* Launch word processor     */
-#define XKB_KEY_XF86Xfer               0x1008FF8A
-#define XKB_KEY_XF86ZoomIn             0x1008FF8B   /* zoom in view, map, etc.   */
-#define XKB_KEY_XF86ZoomOut            0x1008FF8C   /* zoom out view, map, etc.  */
-
-#define XKB_KEY_XF86Away               0x1008FF8D   /* mark yourself as away     */
-#define XKB_KEY_XF86Messenger  0x1008FF8E   /* as in instant messaging   */
-#define XKB_KEY_XF86WebCam             0x1008FF8F   /* Launch web camera app.    */
-#define XKB_KEY_XF86MailForward        0x1008FF90   /* Forward in mail           */
-#define XKB_KEY_XF86Pictures           0x1008FF91   /* Show pictures             */
-#define XKB_KEY_XF86Music              0x1008FF92   /* Launch music application  */
-
-#define XKB_KEY_XF86Battery            0x1008FF93   /* Display battery information */
-#define XKB_KEY_XF86Bluetooth  0x1008FF94   /* Enable/disable Bluetooth    */
-#define XKB_KEY_XF86WLAN               0x1008FF95   /* Enable/disable WLAN         */
-#define XKB_KEY_XF86UWB                0x1008FF96   /* Enable/disable UWB          */
-
-#define XKB_KEY_XF86AudioForward       0x1008FF97   /* fast-forward audio track    */
-#define XKB_KEY_XF86AudioRepeat        0x1008FF98   /* toggle repeat mode          */
-#define XKB_KEY_XF86AudioRandomPlay    0x1008FF99   /* toggle shuffle mode         */
-#define XKB_KEY_XF86Subtitle           0x1008FF9A   /* cycle through subtitle      */
-#define XKB_KEY_XF86AudioCycleTrack    0x1008FF9B   /* cycle through audio tracks  */
-#define XKB_KEY_XF86CycleAngle 0x1008FF9C   /* cycle through angles        */
-#define XKB_KEY_XF86FrameBack  0x1008FF9D   /* video: go one frame back    */
-#define XKB_KEY_XF86FrameForward       0x1008FF9E   /* video: go one frame forward */
-#define XKB_KEY_XF86Time               0x1008FF9F   /* display, or shows an entry for time seeking */
-#define XKB_KEY_XF86Select             0x1008FFA0   /* Select button on joypads and remotes */
-#define XKB_KEY_XF86View               0x1008FFA1   /* Show a view options/properties */
-#define XKB_KEY_XF86TopMenu            0x1008FFA2   /* Go to a top-level menu in a video */
-
-#define XKB_KEY_XF86Red                0x1008FFA3   /* Red button                  */
-#define XKB_KEY_XF86Green              0x1008FFA4   /* Green button                */
-#define XKB_KEY_XF86Yellow             0x1008FFA5   /* Yellow button               */
-#define XKB_KEY_XF86Blue             0x1008FFA6   /* Blue button                 */
-
-#define XKB_KEY_XF86Suspend            0x1008FFA7   /* Sleep to RAM                */
-#define XKB_KEY_XF86Hibernate  0x1008FFA8   /* Sleep to disk               */
-#define XKB_KEY_XF86TouchpadToggle     0x1008FFA9   /* Toggle between touchpad/trackstick */
-#define XKB_KEY_XF86TouchpadOn 0x1008FFB0   /* The touchpad got switched on */
-#define XKB_KEY_XF86TouchpadOff        0x1008FFB1   /* The touchpad got switched off */
-
-#define XKB_KEY_XF86AudioMicMute       0x1008FFB2   /* Mute the Mic from the system */
-
-#define XKB_KEY_XF86Keyboard           0x1008FFB3   /* User defined keyboard related action */
-
-#define XKB_KEY_XF86WWAN               0x1008FFB4   /* Toggle WWAN (LTE, UMTS, etc.) radio */
-#define XKB_KEY_XF86RFKill             0x1008FFB5   /* Toggle radios on/off */
-
-#define XKB_KEY_XF86AudioPreset        0x1008FFB6   /* Select equalizer preset, e.g. theatre-mode */
-
-#define XKB_KEY_XF86RotationLockToggle 0x1008FFB7 /* Toggle screen rotation lock on/off */
-
-#define XKB_KEY_XF86FullScreen 0x1008FFB8   /* Toggle fullscreen */
+#define XKB_KEY_XF86Back                  0x1008ff26  /* Like back on a browser     */
+#define XKB_KEY_XF86Forward               0x1008ff27  /* Like forward on a browser  */
+#define XKB_KEY_XF86Stop                  0x1008ff28  /* Stop current operation     */
+#define XKB_KEY_XF86Refresh               0x1008ff29  /* Refresh the page           */
+#define XKB_KEY_XF86PowerOff              0x1008ff2a  /* Power off system entirely  */
+#define XKB_KEY_XF86WakeUp                0x1008ff2b  /* Wake up system from sleep  */
+#define XKB_KEY_XF86Eject                 0x1008ff2c  /* Eject device (e.g. DVD)    */
+#define XKB_KEY_XF86ScreenSaver           0x1008ff2d  /* Invoke screensaver         */
+#define XKB_KEY_XF86WWW                   0x1008ff2e  /* Invoke web browser         */
+#define XKB_KEY_XF86Sleep                 0x1008ff2f  /* Put system to sleep        */
+#define XKB_KEY_XF86Favorites             0x1008ff30  /* Show favorite locations    */
+#define XKB_KEY_XF86AudioPause            0x1008ff31  /* Pause audio playing        */
+#define XKB_KEY_XF86AudioMedia            0x1008ff32  /* Launch media collection app */
+#define XKB_KEY_XF86MyComputer            0x1008ff33  /* Display "My Computer" window */
+#define XKB_KEY_XF86VendorHome            0x1008ff34  /* Display vendor home web site */
+#define XKB_KEY_XF86LightBulb             0x1008ff35  /* Light bulb keys exist       */
+#define XKB_KEY_XF86Shop                  0x1008ff36  /* Display shopping web site   */
+#define XKB_KEY_XF86History               0x1008ff37  /* Show history of web surfing */
+#define XKB_KEY_XF86OpenURL               0x1008ff38  /* Open selected URL           */
+#define XKB_KEY_XF86AddFavorite           0x1008ff39  /* Add URL to favorites list   */
+#define XKB_KEY_XF86HotLinks              0x1008ff3a  /* Show "hot" links            */
+#define XKB_KEY_XF86BrightnessAdjust      0x1008ff3b  /* Invoke brightness adj. UI   */
+#define XKB_KEY_XF86Finance               0x1008ff3c  /* Display financial site      */
+#define XKB_KEY_XF86Community             0x1008ff3d  /* Display user's community    */
+#define XKB_KEY_XF86AudioRewind           0x1008ff3e  /* "rewind" audio track        */
+#define XKB_KEY_XF86BackForward           0x1008ff3f  /* ??? */
+#define XKB_KEY_XF86Launch0               0x1008ff40  /* Launch Application          */
+#define XKB_KEY_XF86Launch1               0x1008ff41  /* Launch Application          */
+#define XKB_KEY_XF86Launch2               0x1008ff42  /* Launch Application          */
+#define XKB_KEY_XF86Launch3               0x1008ff43  /* Launch Application          */
+#define XKB_KEY_XF86Launch4               0x1008ff44  /* Launch Application          */
+#define XKB_KEY_XF86Launch5               0x1008ff45  /* Launch Application          */
+#define XKB_KEY_XF86Launch6               0x1008ff46  /* Launch Application          */
+#define XKB_KEY_XF86Launch7               0x1008ff47  /* Launch Application          */
+#define XKB_KEY_XF86Launch8               0x1008ff48  /* Launch Application          */
+#define XKB_KEY_XF86Launch9               0x1008ff49  /* Launch Application          */
+#define XKB_KEY_XF86LaunchA               0x1008ff4a  /* Launch Application          */
+#define XKB_KEY_XF86LaunchB               0x1008ff4b  /* Launch Application          */
+#define XKB_KEY_XF86LaunchC               0x1008ff4c  /* Launch Application          */
+#define XKB_KEY_XF86LaunchD               0x1008ff4d  /* Launch Application          */
+#define XKB_KEY_XF86LaunchE               0x1008ff4e  /* Launch Application          */
+#define XKB_KEY_XF86LaunchF               0x1008ff4f  /* Launch Application          */
+
+#define XKB_KEY_XF86ApplicationLeft       0x1008ff50  /* switch to application, left */
+#define XKB_KEY_XF86ApplicationRight      0x1008ff51  /* switch to application, right*/
+#define XKB_KEY_XF86Book                  0x1008ff52  /* Launch bookreader           */
+#define XKB_KEY_XF86CD                    0x1008ff53  /* Launch CD/DVD player        */
+#define XKB_KEY_XF86Calculater            0x1008ff54  /* Launch Calculater           */
+#define XKB_KEY_XF86Clear                 0x1008ff55  /* Clear window, screen        */
+#define XKB_KEY_XF86Close                 0x1008ff56  /* Close window                */
+#define XKB_KEY_XF86Copy                  0x1008ff57  /* Copy selection              */
+#define XKB_KEY_XF86Cut                   0x1008ff58  /* Cut selection               */
+#define XKB_KEY_XF86Display               0x1008ff59  /* Output switch key           */
+#define XKB_KEY_XF86DOS                   0x1008ff5a  /* Launch DOS (emulation)      */
+#define XKB_KEY_XF86Documents             0x1008ff5b  /* Open documents window       */
+#define XKB_KEY_XF86Excel                 0x1008ff5c  /* Launch spread sheet         */
+#define XKB_KEY_XF86Explorer              0x1008ff5d  /* Launch file explorer        */
+#define XKB_KEY_XF86Game                  0x1008ff5e  /* Launch game                 */
+#define XKB_KEY_XF86Go                    0x1008ff5f  /* Go to URL                   */
+#define XKB_KEY_XF86iTouch                0x1008ff60  /* Logitech iTouch- don't use  */
+#define XKB_KEY_XF86LogOff                0x1008ff61  /* Log off system              */
+#define XKB_KEY_XF86Market                0x1008ff62  /* ??                          */
+#define XKB_KEY_XF86Meeting               0x1008ff63  /* enter meeting in calendar   */
+#define XKB_KEY_XF86MenuKB                0x1008ff65  /* distinguish keyboard from PB */
+#define XKB_KEY_XF86MenuPB                0x1008ff66  /* distinguish PB from keyboard */
+#define XKB_KEY_XF86MySites               0x1008ff67  /* Favourites                  */
+#define XKB_KEY_XF86New                   0x1008ff68  /* New (folder, document...    */
+#define XKB_KEY_XF86News                  0x1008ff69  /* News                        */
+#define XKB_KEY_XF86OfficeHome            0x1008ff6a  /* Office home (old Staroffice)*/
+#define XKB_KEY_XF86Open                  0x1008ff6b  /* Open                        */
+#define XKB_KEY_XF86Option                0x1008ff6c  /* ?? */
+#define XKB_KEY_XF86Paste                 0x1008ff6d  /* Paste                       */
+#define XKB_KEY_XF86Phone                 0x1008ff6e  /* Launch phone; dial number   */
+#define XKB_KEY_XF86Q                     0x1008ff70  /* Compaq's Q - don't use      */
+#define XKB_KEY_XF86Reply                 0x1008ff72  /* Reply e.g., mail            */
+#define XKB_KEY_XF86Reload                0x1008ff73  /* Reload web page, file, etc. */
+#define XKB_KEY_XF86RotateWindows         0x1008ff74  /* Rotate windows e.g. xrandr  */
+#define XKB_KEY_XF86RotationPB            0x1008ff75  /* don't use                   */
+#define XKB_KEY_XF86RotationKB            0x1008ff76  /* don't use                   */
+#define XKB_KEY_XF86Save                  0x1008ff77  /* Save (file, document, state */
+#define XKB_KEY_XF86ScrollUp              0x1008ff78  /* Scroll window/contents up   */
+#define XKB_KEY_XF86ScrollDown            0x1008ff79  /* Scrool window/contentd down */
+#define XKB_KEY_XF86ScrollClick           0x1008ff7a  /* Use XKB mousekeys instead   */
+#define XKB_KEY_XF86Send                  0x1008ff7b  /* Send mail, file, object     */
+#define XKB_KEY_XF86Spell                 0x1008ff7c  /* Spell checker               */
+#define XKB_KEY_XF86SplitScreen           0x1008ff7d  /* Split window or screen      */
+#define XKB_KEY_XF86Support               0x1008ff7e  /* Get support (??)            */
+#define XKB_KEY_XF86TaskPane              0x1008ff7f  /* Show tasks */
+#define XKB_KEY_XF86Terminal              0x1008ff80  /* Launch terminal emulator    */
+#define XKB_KEY_XF86Tools                 0x1008ff81  /* toolbox of desktop/app.     */
+#define XKB_KEY_XF86Travel                0x1008ff82  /* ?? */
+#define XKB_KEY_XF86UserPB                0x1008ff84  /* ?? */
+#define XKB_KEY_XF86User1KB               0x1008ff85  /* ?? */
+#define XKB_KEY_XF86User2KB               0x1008ff86  /* ?? */
+#define XKB_KEY_XF86Video                 0x1008ff87  /* Launch video player       */
+#define XKB_KEY_XF86WheelButton           0x1008ff88  /* button from a mouse wheel */
+#define XKB_KEY_XF86Word                  0x1008ff89  /* Launch word processor     */
+#define XKB_KEY_XF86Xfer                  0x1008ff8a
+#define XKB_KEY_XF86ZoomIn                0x1008ff8b  /* zoom in view, map, etc.   */
+#define XKB_KEY_XF86ZoomOut               0x1008ff8c  /* zoom out view, map, etc.  */
+
+#define XKB_KEY_XF86Away                  0x1008ff8d  /* mark yourself as away     */
+#define XKB_KEY_XF86Messenger             0x1008ff8e  /* as in instant messaging   */
+#define XKB_KEY_XF86WebCam                0x1008ff8f  /* Launch web camera app.    */
+#define XKB_KEY_XF86MailForward           0x1008ff90  /* Forward in mail           */
+#define XKB_KEY_XF86Pictures              0x1008ff91  /* Show pictures             */
+#define XKB_KEY_XF86Music                 0x1008ff92  /* Launch music application  */
+
+#define XKB_KEY_XF86Battery               0x1008ff93  /* Display battery information */
+#define XKB_KEY_XF86Bluetooth             0x1008ff94  /* Enable/disable Bluetooth    */
+#define XKB_KEY_XF86WLAN                  0x1008ff95  /* Enable/disable WLAN         */
+#define XKB_KEY_XF86UWB                   0x1008ff96  /* Enable/disable UWB        */
+
+#define XKB_KEY_XF86AudioForward          0x1008ff97  /* fast-forward audio track    */
+#define XKB_KEY_XF86AudioRepeat           0x1008ff98  /* toggle repeat mode          */
+#define XKB_KEY_XF86AudioRandomPlay       0x1008ff99  /* toggle shuffle mode         */
+#define XKB_KEY_XF86Subtitle              0x1008ff9a  /* cycle through subtitle      */
+#define XKB_KEY_XF86AudioCycleTrack       0x1008ff9b  /* cycle through audio tracks  */
+#define XKB_KEY_XF86CycleAngle            0x1008ff9c  /* cycle through angles        */
+#define XKB_KEY_XF86FrameBack             0x1008ff9d  /* video: go one frame back    */
+#define XKB_KEY_XF86FrameForward          0x1008ff9e  /* video: go one frame forward */
+#define XKB_KEY_XF86Time                  0x1008ff9f  /* display, or shows an entry for time seeking */
+#define XKB_KEY_XF86Select                0x1008ffa0  /* Select button on joypads and remotes */
+#define XKB_KEY_XF86View                  0x1008ffa1  /* Show a view options/properties */
+#define XKB_KEY_XF86TopMenu               0x1008ffa2  /* Go to a top-level menu in a video */
+
+#define XKB_KEY_XF86Red                   0x1008ffa3  /* Red button                  */
+#define XKB_KEY_XF86Green                 0x1008ffa4  /* Green button                */
+#define XKB_KEY_XF86Yellow                0x1008ffa5  /* Yellow button               */
+#define XKB_KEY_XF86Blue                  0x1008ffa6  /* Blue button                 */
+
+#define XKB_KEY_XF86Suspend               0x1008ffa7  /* Sleep to RAM                */
+#define XKB_KEY_XF86Hibernate             0x1008ffa8  /* Sleep to disk               */
+#define XKB_KEY_XF86TouchpadToggle        0x1008ffa9  /* Toggle between touchpad/trackstick */
+#define XKB_KEY_XF86TouchpadOn            0x1008ffb0  /* The touchpad got switched on */
+#define XKB_KEY_XF86TouchpadOff           0x1008ffb1  /* The touchpad got switched off */
+
+#define XKB_KEY_XF86AudioMicMute          0x1008ffb2  /* Mute the Mic from the system */
+
+#define XKB_KEY_XF86Keyboard              0x1008ffb3  /* User defined keyboard related action */
+
+#define XKB_KEY_XF86WWAN                  0x1008ffb4  /* Toggle WWAN (LTE, UMTS, etc.) radio */
+#define XKB_KEY_XF86RFKill                0x1008ffb5  /* Toggle radios on/off */
+
+#define XKB_KEY_XF86AudioPreset           0x1008ffb6  /* Select equalizer preset, e.g. theatre-mode */
+
+#define XKB_KEY_XF86RotationLockToggle    0x1008ffb7  /* Toggle screen rotation lock on/off */
+
+#define XKB_KEY_XF86FullScreen            0x1008ffb8  /* Toggle fullscreen */
 
 /* Keys for special action keys (hot keys) */
 /* Virtual terminals on some operating systems */
-#define XKB_KEY_XF86Switch_VT_1        0x1008FE01
-#define XKB_KEY_XF86Switch_VT_2        0x1008FE02
-#define XKB_KEY_XF86Switch_VT_3        0x1008FE03
-#define XKB_KEY_XF86Switch_VT_4        0x1008FE04
-#define XKB_KEY_XF86Switch_VT_5        0x1008FE05
-#define XKB_KEY_XF86Switch_VT_6        0x1008FE06
-#define XKB_KEY_XF86Switch_VT_7        0x1008FE07
-#define XKB_KEY_XF86Switch_VT_8        0x1008FE08
-#define XKB_KEY_XF86Switch_VT_9        0x1008FE09
-#define XKB_KEY_XF86Switch_VT_10       0x1008FE0A
-#define XKB_KEY_XF86Switch_VT_11       0x1008FE0B
-#define XKB_KEY_XF86Switch_VT_12       0x1008FE0C
-
-#define XKB_KEY_XF86Ungrab             0x1008FE20   /* force ungrab               */
-#define XKB_KEY_XF86ClearGrab  0x1008FE21   /* kill application with grab */
-#define XKB_KEY_XF86Next_VMode 0x1008FE22   /* next video mode available  */
-#define XKB_KEY_XF86Prev_VMode 0x1008FE23   /* prev. video mode available */
-#define XKB_KEY_XF86LogWindowTree      0x1008FE24   /* print window tree to log   */
-#define XKB_KEY_XF86LogGrabInfo        0x1008FE25   /* print all active grabs to log */
+#define XKB_KEY_XF86Switch_VT_1           0x1008fe01
+#define XKB_KEY_XF86Switch_VT_2           0x1008fe02
+#define XKB_KEY_XF86Switch_VT_3           0x1008fe03
+#define XKB_KEY_XF86Switch_VT_4           0x1008fe04
+#define XKB_KEY_XF86Switch_VT_5           0x1008fe05
+#define XKB_KEY_XF86Switch_VT_6           0x1008fe06
+#define XKB_KEY_XF86Switch_VT_7           0x1008fe07
+#define XKB_KEY_XF86Switch_VT_8           0x1008fe08
+#define XKB_KEY_XF86Switch_VT_9           0x1008fe09
+#define XKB_KEY_XF86Switch_VT_10          0x1008fe0a
+#define XKB_KEY_XF86Switch_VT_11          0x1008fe0b
+#define XKB_KEY_XF86Switch_VT_12          0x1008fe0c
+
+#define XKB_KEY_XF86Ungrab                0x1008fe20  /* force ungrab               */
+#define XKB_KEY_XF86ClearGrab             0x1008fe21  /* kill application with grab */
+#define XKB_KEY_XF86Next_VMode            0x1008fe22  /* next video mode available  */
+#define XKB_KEY_XF86Prev_VMode            0x1008fe23  /* prev. video mode available */
+#define XKB_KEY_XF86LogWindowTree         0x1008fe24  /* print window tree to log   */
+#define XKB_KEY_XF86LogGrabInfo           0x1008fe25  /* print all active grabs to log */
 
 
 /*
@@ -2697,7 +2713,7 @@ SOFTWARE.
  *
  * Key syms within this range must match the Linux kernel
  * input-event-codes.h file in the format:
- *     XF86XK_CamelCaseKernelName      _EVDEVK(kernel value)
+ *     XKB_KEY_XF86CamelCaseKernelName _EVDEVK(kernel value)
  * For example, the kernel
  *   #define KEY_MACRO_RECORD_START    0x2b0
  * effectively ends up as:
@@ -2725,207 +2741,225 @@ SOFTWARE.
  *
  * Where the evdev keycode is mapped to a different symbol, please add a
  * comment line starting with Use: but otherwise the same format, e.g.
- *  Use: XF86XK_RotationLockToggle     _EVDEVK(0x231)             v4.16 KEY_ROTATE_LOCK_TOGGLE
+ *  Use: XKB_KEY_XF86RotationLockToggle        _EVDEVK(0x231)             v4.16 KEY_ROTATE_LOCK_TOGGLE
  *
  */
-/* Use: XF86XK_Eject                   _EVDEVK(0x0A2)                   KEY_EJECTCLOSECD */
-/* Use: XF86XK_New                     _EVDEVK(0x0B5)             v2.6.14 KEY_NEW */
-/* Use: XK_Redo                                _EVDEVK(0x0B6)             v2.6.14 KEY_REDO */
+/* Use: XKB_KEY_XF86Eject                    _EVDEVK(0x0a2)             KEY_EJECTCLOSECD */
+/* Use: XKB_KEY_XF86New                      _EVDEVK(0x0b5)     v2.6.14 KEY_NEW */
+/* Use: XKB_KEY_Redo                         _EVDEVK(0x0b6)     v2.6.14 KEY_REDO */
 /* KEY_DASHBOARD has been mapped to LaunchB in xkeyboard-config since 2011 */
-/* Use: XF86XK_LaunchB                 _EVDEVK(0x0CC)             v2.6.28 KEY_DASHBOARD */
-/* Use: XF86XK_Display                 _EVDEVK(0x0E3)             v2.6.12 KEY_SWITCHVIDEOMODE */
-/* Use: XF86XK_KbdLightOnOff           _EVDEVK(0x0E4)             v2.6.12 KEY_KBDILLUMTOGGLE */
-/* Use: XF86XK_KbdBrightnessDown       _EVDEVK(0x0E5)             v2.6.12 KEY_KBDILLUMDOWN */
-/* Use: XF86XK_KbdBrightnessUp         _EVDEVK(0x0E6)             v2.6.12 KEY_KBDILLUMUP */
-/* Use: XF86XK_Send                    _EVDEVK(0x0E7)             v2.6.14 KEY_SEND */
-/* Use: XF86XK_Reply                   _EVDEVK(0x0E8)             v2.6.14 KEY_REPLY */
-/* Use: XF86XK_MailForward             _EVDEVK(0x0E9)             v2.6.14 KEY_FORWARDMAIL */
-/* Use: XF86XK_Save                    _EVDEVK(0x0EA)             v2.6.14 KEY_SAVE */
-/* Use: XF86XK_Documents               _EVDEVK(0x0EB)             v2.6.14 KEY_DOCUMENTS */
-/* Use: XF86XK_Battery                 _EVDEVK(0x0EC)             v2.6.17 KEY_BATTERY */
-/* Use: XF86XK_Bluetooth               _EVDEVK(0x0ED)             v2.6.19 KEY_BLUETOOTH */
-/* Use: XF86XK_WLAN                    _EVDEVK(0x0EE)             v2.6.19 KEY_WLAN */
-/* Use: XF86XK_UWB                     _EVDEVK(0x0EF)             v2.6.24 KEY_UWB */
-/* Use: XF86XK_Next_VMode              _EVDEVK(0x0F1)             v2.6.23 KEY_VIDEO_NEXT */
-/* Use: XF86XK_Prev_VMode              _EVDEVK(0x0F2)             v2.6.23 KEY_VIDEO_PREV */
-/* Use: XF86XK_MonBrightnessCycle      _EVDEVK(0x0F3)             v2.6.23 KEY_BRIGHTNESS_CYCLE */
-#define XKB_KEY_XF86BrightnessAuto             0x100810f4              /* v3.16 KEY_BRIGHTNESS_AUTO */
-#define XKB_KEY_XF86DisplayOff         0x100810f5              /* v2.6.23 KEY_DISPLAY_OFF */
-/* Use: XF86XK_WWAN                    _EVDEVK(0x0F6)             v3.13 KEY_WWAN */
-/* Use: XF86XK_RFKill                  _EVDEVK(0x0F7)             v2.6.33 KEY_RFKILL */
-/* Use: XF86XK_AudioMicMute            _EVDEVK(0x0F8)             v3.1  KEY_MICMUTE */
-#define XKB_KEY_XF86Info                       0x10081166              /*       KEY_INFO */
-/* Use: XF86XK_CycleAngle              _EVDEVK(0x173)                   KEY_ANGLE */
-/* Use: XF86XK_FullScreen              _EVDEVK(0x174)             v5.1  KEY_FULL_SCREEN */
-#define XKB_KEY_XF86AspectRatio                0x10081177              /* v5.1  KEY_ASPECT_RATIO */
-#define XKB_KEY_XF86DVD                        0x10081185              /*       KEY_DVD */
-#define XKB_KEY_XF86Audio                      0x10081188              /*       KEY_AUDIO */
-/* Use: XF86XK_Video                   _EVDEVK(0x189)                   KEY_VIDEO */
-/* Use: XF86XK_Calendar                        _EVDEVK(0x18D)                   KEY_CALENDAR */
-#define XKB_KEY_XF86ChannelUp          0x10081192              /*       KEY_CHANNELUP */
-#define XKB_KEY_XF86ChannelDown                0x10081193              /*       KEY_CHANNELDOWN */
-/* Use: XF86XK_AudioRandomPlay         _EVDEVK(0x19A)                   KEY_SHUFFLE */
-#define XKB_KEY_XF86Break                      0x1008119b              /*       KEY_BREAK */
-#define XKB_KEY_XF86VideoPhone         0x100811a0              /* v2.6.20 KEY_VIDEOPHONE */
-/* Use: XF86XK_Game                    _EVDEVK(0x1A1)             v2.6.20 KEY_GAMES */
-/* Use: XF86XK_ZoomIn                  _EVDEVK(0x1A2)             v2.6.20 KEY_ZOOMIN */
-/* Use: XF86XK_ZoomOut                 _EVDEVK(0x1A3)             v2.6.20 KEY_ZOOMOUT */
-#define XKB_KEY_XF86ZoomReset          0x100811a4              /* v2.6.20 KEY_ZOOMRESET */
-/* Use: XF86XK_Word                    _EVDEVK(0x1A5)             v2.6.20 KEY_WORDPROCESSOR */
-#define XKB_KEY_XF86Editor                     0x100811a6              /* v2.6.20 KEY_EDITOR */
-/* Use: XF86XK_Excel                   _EVDEVK(0x1A7)             v2.6.20 KEY_SPREADSHEET */
-#define XKB_KEY_XF86GraphicsEditor             0x100811a8              /* v2.6.20 KEY_GRAPHICSEDITOR */
-#define XKB_KEY_XF86Presentation               0x100811a9              /* v2.6.20 KEY_PRESENTATION */
-#define XKB_KEY_XF86Database                   0x100811aa              /* v2.6.20 KEY_DATABASE */
-/* Use: XF86XK_News                    _EVDEVK(0x1AB)             v2.6.20 KEY_NEWS */
-#define XKB_KEY_XF86Voicemail          0x100811ac              /* v2.6.20 KEY_VOICEMAIL */
-#define XKB_KEY_XF86Addressbook                0x100811ad              /* v2.6.20 KEY_ADDRESSBOOK */
-/* Use: XF86XK_Messenger               _EVDEVK(0x1AE)             v2.6.20 KEY_MESSENGER */
-#define XKB_KEY_XF86DisplayToggle              0x100811af              /* v2.6.20 KEY_DISPLAYTOGGLE */
-#define XKB_KEY_XF86SpellCheck         0x100811b0              /* v2.6.24 KEY_SPELLCHECK */
-/* Use: XF86XK_LogOff                  _EVDEVK(0x1B1)             v2.6.24 KEY_LOGOFF */
-/* Use: XK_dollar                      _EVDEVK(0x1B2)             v2.6.24 KEY_DOLLAR */
-/* Use: XK_EuroSign                    _EVDEVK(0x1B3)             v2.6.24 KEY_EURO */
-/* Use: XF86XK_FrameBack               _EVDEVK(0x1B4)             v2.6.24 KEY_FRAMEBACK */
-/* Use: XF86XK_FrameForward            _EVDEVK(0x1B5)             v2.6.24 KEY_FRAMEFORWARD */
-#define XKB_KEY_XF86ContextMenu                0x100811b6              /* v2.6.24 KEY_CONTEXT_MENU */
-#define XKB_KEY_XF86MediaRepeat                0x100811b7              /* v2.6.26 KEY_MEDIA_REPEAT */
-#define XKB_KEY_XF8610ChannelsUp               0x100811b8              /* v2.6.38 KEY_10CHANNELSUP */
-#define XKB_KEY_XF8610ChannelsDown             0x100811b9              /* v2.6.38 KEY_10CHANNELSDOWN */
-#define XKB_KEY_XF86Images                     0x100811ba              /* v2.6.39 KEY_IMAGES */
-#define XKB_KEY_XF86NotificationCenter 0x100811bc              /* v5.10 KEY_NOTIFICATION_CENTER */
-#define XKB_KEY_XF86PickupPhone                0x100811bd              /* v5.10 KEY_PICKUP_PHONE */
-#define XKB_KEY_XF86HangupPhone                0x100811be              /* v5.10 KEY_HANGUP_PHONE */
-#define XKB_KEY_XF86Fn                 0x100811d0              /*       KEY_FN */
-#define XKB_KEY_XF86Fn_Esc                     0x100811d1              /*       KEY_FN_ESC */
-#define XKB_KEY_XF86FnRightShift               0x100811e5              /* v5.10 KEY_FN_RIGHT_SHIFT */
-/* Use: XK_braille_dot_1               _EVDEVK(0x1F1)             v2.6.17 KEY_BRL_DOT1 */
-/* Use: XK_braille_dot_2               _EVDEVK(0x1F2)             v2.6.17 KEY_BRL_DOT2 */
-/* Use: XK_braille_dot_3               _EVDEVK(0x1F3)             v2.6.17 KEY_BRL_DOT3 */
-/* Use: XK_braille_dot_4               _EVDEVK(0x1F4)             v2.6.17 KEY_BRL_DOT4 */
-/* Use: XK_braille_dot_5               _EVDEVK(0x1F5)             v2.6.17 KEY_BRL_DOT5 */
-/* Use: XK_braille_dot_6               _EVDEVK(0x1F6)             v2.6.17 KEY_BRL_DOT6 */
-/* Use: XK_braille_dot_7               _EVDEVK(0x1F7)             v2.6.17 KEY_BRL_DOT7 */
-/* Use: XK_braille_dot_8               _EVDEVK(0x1F8)             v2.6.17 KEY_BRL_DOT8 */
-/* Use: XK_braille_dot_9               _EVDEVK(0x1F9)             v2.6.23 KEY_BRL_DOT9 */
-/* Use: XK_braille_dot_1               _EVDEVK(0x1FA)             v2.6.23 KEY_BRL_DOT10 */
-#define XKB_KEY_XF86Numeric0                   0x10081200              /* v2.6.28 KEY_NUMERIC_0 */
-#define XKB_KEY_XF86Numeric1                   0x10081201              /* v2.6.28 KEY_NUMERIC_1 */
-#define XKB_KEY_XF86Numeric2                   0x10081202              /* v2.6.28 KEY_NUMERIC_2 */
-#define XKB_KEY_XF86Numeric3                   0x10081203              /* v2.6.28 KEY_NUMERIC_3 */
-#define XKB_KEY_XF86Numeric4                   0x10081204              /* v2.6.28 KEY_NUMERIC_4 */
-#define XKB_KEY_XF86Numeric5                   0x10081205              /* v2.6.28 KEY_NUMERIC_5 */
-#define XKB_KEY_XF86Numeric6                   0x10081206              /* v2.6.28 KEY_NUMERIC_6 */
-#define XKB_KEY_XF86Numeric7                   0x10081207              /* v2.6.28 KEY_NUMERIC_7 */
-#define XKB_KEY_XF86Numeric8                   0x10081208              /* v2.6.28 KEY_NUMERIC_8 */
-#define XKB_KEY_XF86Numeric9                   0x10081209              /* v2.6.28 KEY_NUMERIC_9 */
-#define XKB_KEY_XF86NumericStar                0x1008120a              /* v2.6.28 KEY_NUMERIC_STAR */
-#define XKB_KEY_XF86NumericPound               0x1008120b              /* v2.6.28 KEY_NUMERIC_POUND */
-#define XKB_KEY_XF86NumericA                   0x1008120c              /* v4.1  KEY_NUMERIC_A */
-#define XKB_KEY_XF86NumericB                   0x1008120d              /* v4.1  KEY_NUMERIC_B */
-#define XKB_KEY_XF86NumericC                   0x1008120e              /* v4.1  KEY_NUMERIC_C */
-#define XKB_KEY_XF86NumericD                   0x1008120f              /* v4.1  KEY_NUMERIC_D */
-#define XKB_KEY_XF86CameraFocus                0x10081210              /* v2.6.33 KEY_CAMERA_FOCUS */
-#define XKB_KEY_XF86WPSButton          0x10081211              /* v2.6.34 KEY_WPS_BUTTON */
-/* Use: XF86XK_TouchpadToggle          _EVDEVK(0x212)             v2.6.37 KEY_TOUCHPAD_TOGGLE */
-/* Use: XF86XK_TouchpadOn              _EVDEVK(0x213)             v2.6.37 KEY_TOUCHPAD_ON */
-/* Use: XF86XK_TouchpadOff             _EVDEVK(0x214)             v2.6.37 KEY_TOUCHPAD_OFF */
-#define XKB_KEY_XF86CameraZoomIn               0x10081215              /* v2.6.39 KEY_CAMERA_ZOOMIN */
-#define XKB_KEY_XF86CameraZoomOut              0x10081216              /* v2.6.39 KEY_CAMERA_ZOOMOUT */
-#define XKB_KEY_XF86CameraUp                   0x10081217              /* v2.6.39 KEY_CAMERA_UP */
-#define XKB_KEY_XF86CameraDown         0x10081218              /* v2.6.39 KEY_CAMERA_DOWN */
-#define XKB_KEY_XF86CameraLeft         0x10081219              /* v2.6.39 KEY_CAMERA_LEFT */
-#define XKB_KEY_XF86CameraRight                0x1008121a              /* v2.6.39 KEY_CAMERA_RIGHT */
-#define XKB_KEY_XF86AttendantOn                0x1008121b              /* v3.10 KEY_ATTENDANT_ON */
-#define XKB_KEY_XF86AttendantOff               0x1008121c              /* v3.10 KEY_ATTENDANT_OFF */
-#define XKB_KEY_XF86AttendantToggle            0x1008121d              /* v3.10 KEY_ATTENDANT_TOGGLE */
-#define XKB_KEY_XF86LightsToggle               0x1008121e              /* v3.10 KEY_LIGHTS_TOGGLE */
-#define XKB_KEY_XF86ALSToggle          0x10081230              /* v3.13 KEY_ALS_TOGGLE */
-/* Use: XF86XK_RotationLockToggle      _EVDEVK(0x231)             v4.16 KEY_ROTATE_LOCK_TOGGLE */
-#define XKB_KEY_XF86Buttonconfig               0x10081240              /* v3.16 KEY_BUTTONCONFIG */
-#define XKB_KEY_XF86Taskmanager                0x10081241              /* v3.16 KEY_TASKMANAGER */
-#define XKB_KEY_XF86Journal                    0x10081242              /* v3.16 KEY_JOURNAL */
-#define XKB_KEY_XF86ControlPanel               0x10081243              /* v3.16 KEY_CONTROLPANEL */
-#define XKB_KEY_XF86AppSelect          0x10081244              /* v3.16 KEY_APPSELECT */
-#define XKB_KEY_XF86Screensaver                0x10081245              /* v3.16 KEY_SCREENSAVER */
-#define XKB_KEY_XF86VoiceCommand               0x10081246              /* v3.16 KEY_VOICECOMMAND */
-#define XKB_KEY_XF86Assistant          0x10081247              /* v4.13 KEY_ASSISTANT */
-/* Use: XK_ISO_Next_Group              _EVDEVK(0x248)             v5.2  KEY_KBD_LAYOUT_NEXT */
-#define XKB_KEY_XF86EmojiPicker                0x10081249              /* v5.13 KEY_EMOJI_PICKER */
-#define XKB_KEY_XF86Dictate                    0x1008124a              /* v5.17 KEY_DICTATE */
-#define XKB_KEY_XF86BrightnessMin              0x10081250              /* v3.16 KEY_BRIGHTNESS_MIN */
-#define XKB_KEY_XF86BrightnessMax              0x10081251              /* v3.16 KEY_BRIGHTNESS_MAX */
-#define XKB_KEY_XF86KbdInputAssistPrev 0x10081260              /* v3.18 KEY_KBDINPUTASSIST_PREV */
-#define XKB_KEY_XF86KbdInputAssistNext 0x10081261              /* v3.18 KEY_KBDINPUTASSIST_NEXT */
-#define XKB_KEY_XF86KbdInputAssistPrevgroup    0x10081262              /* v3.18 KEY_KBDINPUTASSIST_PREVGROUP */
-#define XKB_KEY_XF86KbdInputAssistNextgroup    0x10081263              /* v3.18 KEY_KBDINPUTASSIST_NEXTGROUP */
-#define XKB_KEY_XF86KbdInputAssistAccept       0x10081264              /* v3.18 KEY_KBDINPUTASSIST_ACCEPT */
-#define XKB_KEY_XF86KbdInputAssistCancel       0x10081265              /* v3.18 KEY_KBDINPUTASSIST_CANCEL */
-#define XKB_KEY_XF86RightUp                    0x10081266              /* v4.7  KEY_RIGHT_UP */
-#define XKB_KEY_XF86RightDown          0x10081267              /* v4.7  KEY_RIGHT_DOWN */
-#define XKB_KEY_XF86LeftUp                     0x10081268              /* v4.7  KEY_LEFT_UP */
-#define XKB_KEY_XF86LeftDown                   0x10081269              /* v4.7  KEY_LEFT_DOWN */
-#define XKB_KEY_XF86RootMenu                   0x1008126a              /* v4.7  KEY_ROOT_MENU */
-#define XKB_KEY_XF86MediaTopMenu               0x1008126b              /* v4.7  KEY_MEDIA_TOP_MENU */
-#define XKB_KEY_XF86Numeric11          0x1008126c              /* v4.7  KEY_NUMERIC_11 */
-#define XKB_KEY_XF86Numeric12          0x1008126d              /* v4.7  KEY_NUMERIC_12 */
-#define XKB_KEY_XF86AudioDesc          0x1008126e              /* v4.7  KEY_AUDIO_DESC */
-#define XKB_KEY_XF863DMode                     0x1008126f              /* v4.7  KEY_3D_MODE */
-#define XKB_KEY_XF86NextFavorite               0x10081270              /* v4.7  KEY_NEXT_FAVORITE */
-#define XKB_KEY_XF86StopRecord         0x10081271              /* v4.7  KEY_STOP_RECORD */
-#define XKB_KEY_XF86PauseRecord                0x10081272              /* v4.7  KEY_PAUSE_RECORD */
-#define XKB_KEY_XF86VOD                        0x10081273              /* v4.7  KEY_VOD */
-#define XKB_KEY_XF86Unmute                     0x10081274              /* v4.7  KEY_UNMUTE */
-#define XKB_KEY_XF86FastReverse                0x10081275              /* v4.7  KEY_FASTREVERSE */
-#define XKB_KEY_XF86SlowReverse                0x10081276              /* v4.7  KEY_SLOWREVERSE */
-#define XKB_KEY_XF86Data                       0x10081277              /* v4.7  KEY_DATA */
-#define XKB_KEY_XF86OnScreenKeyboard           0x10081278              /* v4.12 KEY_ONSCREEN_KEYBOARD */
-#define XKB_KEY_XF86PrivacyScreenToggle        0x10081279              /* v5.5  KEY_PRIVACY_SCREEN_TOGGLE */
-#define XKB_KEY_XF86SelectiveScreenshot        0x1008127a              /* v5.6  KEY_SELECTIVE_SCREENSHOT */
-#define XKB_KEY_XF86Macro1                     0x10081290              /* v5.5  KEY_MACRO1 */
-#define XKB_KEY_XF86Macro2                     0x10081291              /* v5.5  KEY_MACRO2 */
-#define XKB_KEY_XF86Macro3                     0x10081292              /* v5.5  KEY_MACRO3 */
-#define XKB_KEY_XF86Macro4                     0x10081293              /* v5.5  KEY_MACRO4 */
-#define XKB_KEY_XF86Macro5                     0x10081294              /* v5.5  KEY_MACRO5 */
-#define XKB_KEY_XF86Macro6                     0x10081295              /* v5.5  KEY_MACRO6 */
-#define XKB_KEY_XF86Macro7                     0x10081296              /* v5.5  KEY_MACRO7 */
-#define XKB_KEY_XF86Macro8                     0x10081297              /* v5.5  KEY_MACRO8 */
-#define XKB_KEY_XF86Macro9                     0x10081298              /* v5.5  KEY_MACRO9 */
-#define XKB_KEY_XF86Macro10                    0x10081299              /* v5.5  KEY_MACRO10 */
-#define XKB_KEY_XF86Macro11                    0x1008129a              /* v5.5  KEY_MACRO11 */
-#define XKB_KEY_XF86Macro12                    0x1008129b              /* v5.5  KEY_MACRO12 */
-#define XKB_KEY_XF86Macro13                    0x1008129c              /* v5.5  KEY_MACRO13 */
-#define XKB_KEY_XF86Macro14                    0x1008129d              /* v5.5  KEY_MACRO14 */
-#define XKB_KEY_XF86Macro15                    0x1008129e              /* v5.5  KEY_MACRO15 */
-#define XKB_KEY_XF86Macro16                    0x1008129f              /* v5.5  KEY_MACRO16 */
-#define XKB_KEY_XF86Macro17                    0x100812a0              /* v5.5  KEY_MACRO17 */
-#define XKB_KEY_XF86Macro18                    0x100812a1              /* v5.5  KEY_MACRO18 */
-#define XKB_KEY_XF86Macro19                    0x100812a2              /* v5.5  KEY_MACRO19 */
-#define XKB_KEY_XF86Macro20                    0x100812a3              /* v5.5  KEY_MACRO20 */
-#define XKB_KEY_XF86Macro21                    0x100812a4              /* v5.5  KEY_MACRO21 */
-#define XKB_KEY_XF86Macro22                    0x100812a5              /* v5.5  KEY_MACRO22 */
-#define XKB_KEY_XF86Macro23                    0x100812a6              /* v5.5  KEY_MACRO23 */
-#define XKB_KEY_XF86Macro24                    0x100812a7              /* v5.5  KEY_MACRO24 */
-#define XKB_KEY_XF86Macro25                    0x100812a8              /* v5.5  KEY_MACRO25 */
-#define XKB_KEY_XF86Macro26                    0x100812a9              /* v5.5  KEY_MACRO26 */
-#define XKB_KEY_XF86Macro27                    0x100812aa              /* v5.5  KEY_MACRO27 */
-#define XKB_KEY_XF86Macro28                    0x100812ab              /* v5.5  KEY_MACRO28 */
-#define XKB_KEY_XF86Macro29                    0x100812ac              /* v5.5  KEY_MACRO29 */
-#define XKB_KEY_XF86Macro30                    0x100812ad              /* v5.5  KEY_MACRO30 */
-#define XKB_KEY_XF86MacroRecordStart           0x100812b0              /* v5.5  KEY_MACRO_RECORD_START */
-#define XKB_KEY_XF86MacroRecordStop            0x100812b1              /* v5.5  KEY_MACRO_RECORD_STOP */
-#define XKB_KEY_XF86MacroPresetCycle           0x100812b2              /* v5.5  KEY_MACRO_PRESET_CYCLE */
-#define XKB_KEY_XF86MacroPreset1               0x100812b3              /* v5.5  KEY_MACRO_PRESET1 */
-#define XKB_KEY_XF86MacroPreset2               0x100812b4              /* v5.5  KEY_MACRO_PRESET2 */
-#define XKB_KEY_XF86MacroPreset3               0x100812b5              /* v5.5  KEY_MACRO_PRESET3 */
-#define XKB_KEY_XF86KbdLcdMenu1                0x100812b8              /* v5.5  KEY_KBD_LCD_MENU1 */
-#define XKB_KEY_XF86KbdLcdMenu2                0x100812b9              /* v5.5  KEY_KBD_LCD_MENU2 */
-#define XKB_KEY_XF86KbdLcdMenu3                0x100812ba              /* v5.5  KEY_KBD_LCD_MENU3 */
-#define XKB_KEY_XF86KbdLcdMenu4                0x100812bb              /* v5.5  KEY_KBD_LCD_MENU4 */
-#define XKB_KEY_XF86KbdLcdMenu5                0x100812bc              /* v5.5  KEY_KBD_LCD_MENU5 */
+/* Use: XKB_KEY_XF86LaunchB                  _EVDEVK(0x0cc)     v2.6.28 KEY_DASHBOARD */
+/* Use: XKB_KEY_XF86Display                  _EVDEVK(0x0e3)     v2.6.12 KEY_SWITCHVIDEOMODE */
+/* Use: XKB_KEY_XF86KbdLightOnOff            _EVDEVK(0x0e4)     v2.6.12 KEY_KBDILLUMTOGGLE */
+/* Use: XKB_KEY_XF86KbdBrightnessDown        _EVDEVK(0x0e5)     v2.6.12 KEY_KBDILLUMDOWN */
+/* Use: XKB_KEY_XF86KbdBrightnessUp          _EVDEVK(0x0e6)     v2.6.12 KEY_KBDILLUMUP */
+/* Use: XKB_KEY_XF86Send                     _EVDEVK(0x0e7)     v2.6.14 KEY_SEND */
+/* Use: XKB_KEY_XF86Reply                    _EVDEVK(0x0e8)     v2.6.14 KEY_REPLY */
+/* Use: XKB_KEY_XF86MailForward              _EVDEVK(0x0e9)     v2.6.14 KEY_FORWARDMAIL */
+/* Use: XKB_KEY_XF86Save                     _EVDEVK(0x0ea)     v2.6.14 KEY_SAVE */
+/* Use: XKB_KEY_XF86Documents                _EVDEVK(0x0eb)     v2.6.14 KEY_DOCUMENTS */
+/* Use: XKB_KEY_XF86Battery                  _EVDEVK(0x0ec)     v2.6.17 KEY_BATTERY */
+/* Use: XKB_KEY_XF86Bluetooth                _EVDEVK(0x0ed)     v2.6.19 KEY_BLUETOOTH */
+/* Use: XKB_KEY_XF86WLAN                     _EVDEVK(0x0ee)     v2.6.19 KEY_WLAN */
+/* Use: XKB_KEY_XF86UWB                      _EVDEVK(0x0ef)     v2.6.24 KEY_UWB */
+/* Use: XKB_KEY_XF86Next_VMode               _EVDEVK(0x0f1)     v2.6.23 KEY_VIDEO_NEXT */
+/* Use: XKB_KEY_XF86Prev_VMode               _EVDEVK(0x0f2)     v2.6.23 KEY_VIDEO_PREV */
+/* Use: XKB_KEY_XF86MonBrightnessCycle       _EVDEVK(0x0f3)     v2.6.23 KEY_BRIGHTNESS_CYCLE */
+#define XKB_KEY_XF86BrightnessAuto           0x100810f4      /* v3.16   KEY_BRIGHTNESS_AUTO */
+#define XKB_KEY_XF86DisplayOff               0x100810f5      /* v2.6.23 KEY_DISPLAY_OFF */
+/* Use: XKB_KEY_XF86WWAN                     _EVDEVK(0x0f6)     v3.13   KEY_WWAN */
+/* Use: XKB_KEY_XF86RFKill                   _EVDEVK(0x0f7)     v2.6.33 KEY_RFKILL */
+/* Use: XKB_KEY_XF86AudioMicMute             _EVDEVK(0x0f8)     v3.1    KEY_MICMUTE */
+#define XKB_KEY_XF86Info                     0x10081166      /*         KEY_INFO */
+/* Use: XKB_KEY_XF86CycleAngle               _EVDEVK(0x173)             KEY_ANGLE */
+/* Use: XKB_KEY_XF86FullScreen               _EVDEVK(0x174)     v5.1    KEY_FULL_SCREEN */
+#define XKB_KEY_XF86AspectRatio              0x10081177      /* v5.1    KEY_ASPECT_RATIO */
+#define XKB_KEY_XF86DVD                      0x10081185      /*         KEY_DVD */
+#define XKB_KEY_XF86Audio                    0x10081188      /*         KEY_AUDIO */
+/* Use: XKB_KEY_XF86Video                    _EVDEVK(0x189)             KEY_VIDEO */
+/* Use: XKB_KEY_XF86Calendar                 _EVDEVK(0x18d)             KEY_CALENDAR */
+#define XKB_KEY_XF86ChannelUp                0x10081192      /*         KEY_CHANNELUP */
+#define XKB_KEY_XF86ChannelDown              0x10081193      /*         KEY_CHANNELDOWN */
+/* Use: XKB_KEY_XF86AudioRandomPlay          _EVDEVK(0x19a)             KEY_SHUFFLE */
+#define XKB_KEY_XF86Break                    0x1008119b      /*         KEY_BREAK */
+#define XKB_KEY_XF86VideoPhone               0x100811a0      /* v2.6.20 KEY_VIDEOPHONE */
+/* Use: XKB_KEY_XF86Game                     _EVDEVK(0x1a1)     v2.6.20 KEY_GAMES */
+/* Use: XKB_KEY_XF86ZoomIn                   _EVDEVK(0x1a2)     v2.6.20 KEY_ZOOMIN */
+/* Use: XKB_KEY_XF86ZoomOut                  _EVDEVK(0x1a3)     v2.6.20 KEY_ZOOMOUT */
+#define XKB_KEY_XF86ZoomReset                0x100811a4      /* v2.6.20 KEY_ZOOMRESET */
+/* Use: XKB_KEY_XF86Word                     _EVDEVK(0x1a5)     v2.6.20 KEY_WORDPROCESSOR */
+#define XKB_KEY_XF86Editor                   0x100811a6      /* v2.6.20 KEY_EDITOR */
+/* Use: XKB_KEY_XF86Excel                    _EVDEVK(0x1a7)     v2.6.20 KEY_SPREADSHEET */
+#define XKB_KEY_XF86GraphicsEditor           0x100811a8      /* v2.6.20 KEY_GRAPHICSEDITOR */
+#define XKB_KEY_XF86Presentation             0x100811a9      /* v2.6.20 KEY_PRESENTATION */
+#define XKB_KEY_XF86Database                 0x100811aa      /* v2.6.20 KEY_DATABASE */
+/* Use: XKB_KEY_XF86News                     _EVDEVK(0x1ab)     v2.6.20 KEY_NEWS */
+#define XKB_KEY_XF86Voicemail                0x100811ac      /* v2.6.20 KEY_VOICEMAIL */
+#define XKB_KEY_XF86Addressbook              0x100811ad      /* v2.6.20 KEY_ADDRESSBOOK */
+/* Use: XKB_KEY_XF86Messenger                _EVDEVK(0x1ae)     v2.6.20 KEY_MESSENGER */
+#define XKB_KEY_XF86DisplayToggle            0x100811af      /* v2.6.20 KEY_DISPLAYTOGGLE */
+#define XKB_KEY_XF86SpellCheck               0x100811b0      /* v2.6.24 KEY_SPELLCHECK */
+/* Use: XKB_KEY_XF86LogOff                   _EVDEVK(0x1b1)     v2.6.24 KEY_LOGOFF */
+/* Use: XKB_KEY_dollar                       _EVDEVK(0x1b2)     v2.6.24 KEY_DOLLAR */
+/* Use: XKB_KEY_EuroSign                     _EVDEVK(0x1b3)     v2.6.24 KEY_EURO */
+/* Use: XKB_KEY_XF86FrameBack                _EVDEVK(0x1b4)     v2.6.24 KEY_FRAMEBACK */
+/* Use: XKB_KEY_XF86FrameForward             _EVDEVK(0x1b5)     v2.6.24 KEY_FRAMEFORWARD */
+#define XKB_KEY_XF86ContextMenu              0x100811b6      /* v2.6.24 KEY_CONTEXT_MENU */
+#define XKB_KEY_XF86MediaRepeat              0x100811b7      /* v2.6.26 KEY_MEDIA_REPEAT */
+#define XKB_KEY_XF8610ChannelsUp             0x100811b8      /* v2.6.38 KEY_10CHANNELSUP */
+#define XKB_KEY_XF8610ChannelsDown           0x100811b9      /* v2.6.38 KEY_10CHANNELSDOWN */
+#define XKB_KEY_XF86Images                   0x100811ba      /* v2.6.39 KEY_IMAGES */
+#define XKB_KEY_XF86NotificationCenter       0x100811bc      /* v5.10   KEY_NOTIFICATION_CENTER */
+#define XKB_KEY_XF86PickupPhone              0x100811bd      /* v5.10   KEY_PICKUP_PHONE */
+#define XKB_KEY_XF86HangupPhone              0x100811be      /* v5.10   KEY_HANGUP_PHONE */
+#define XKB_KEY_XF86Fn                       0x100811d0      /*         KEY_FN */
+#define XKB_KEY_XF86Fn_Esc                   0x100811d1      /*         KEY_FN_ESC */
+#define XKB_KEY_XF86FnRightShift             0x100811e5      /* v5.10   KEY_FN_RIGHT_SHIFT */
+/* Use: XKB_KEY_braille_dot_1                _EVDEVK(0x1f1)     v2.6.17 KEY_BRL_DOT1 */
+/* Use: XKB_KEY_braille_dot_2                _EVDEVK(0x1f2)     v2.6.17 KEY_BRL_DOT2 */
+/* Use: XKB_KEY_braille_dot_3                _EVDEVK(0x1f3)     v2.6.17 KEY_BRL_DOT3 */
+/* Use: XKB_KEY_braille_dot_4                _EVDEVK(0x1f4)     v2.6.17 KEY_BRL_DOT4 */
+/* Use: XKB_KEY_braille_dot_5                _EVDEVK(0x1f5)     v2.6.17 KEY_BRL_DOT5 */
+/* Use: XKB_KEY_braille_dot_6                _EVDEVK(0x1f6)     v2.6.17 KEY_BRL_DOT6 */
+/* Use: XKB_KEY_braille_dot_7                _EVDEVK(0x1f7)     v2.6.17 KEY_BRL_DOT7 */
+/* Use: XKB_KEY_braille_dot_8                _EVDEVK(0x1f8)     v2.6.17 KEY_BRL_DOT8 */
+/* Use: XKB_KEY_braille_dot_9                _EVDEVK(0x1f9)     v2.6.23 KEY_BRL_DOT9 */
+/* Use: XKB_KEY_braille_dot_1                _EVDEVK(0x1fa)     v2.6.23 KEY_BRL_DOT10 */
+#define XKB_KEY_XF86Numeric0                 0x10081200      /* v2.6.28 KEY_NUMERIC_0 */
+#define XKB_KEY_XF86Numeric1                 0x10081201      /* v2.6.28 KEY_NUMERIC_1 */
+#define XKB_KEY_XF86Numeric2                 0x10081202      /* v2.6.28 KEY_NUMERIC_2 */
+#define XKB_KEY_XF86Numeric3                 0x10081203      /* v2.6.28 KEY_NUMERIC_3 */
+#define XKB_KEY_XF86Numeric4                 0x10081204      /* v2.6.28 KEY_NUMERIC_4 */
+#define XKB_KEY_XF86Numeric5                 0x10081205      /* v2.6.28 KEY_NUMERIC_5 */
+#define XKB_KEY_XF86Numeric6                 0x10081206      /* v2.6.28 KEY_NUMERIC_6 */
+#define XKB_KEY_XF86Numeric7                 0x10081207      /* v2.6.28 KEY_NUMERIC_7 */
+#define XKB_KEY_XF86Numeric8                 0x10081208      /* v2.6.28 KEY_NUMERIC_8 */
+#define XKB_KEY_XF86Numeric9                 0x10081209      /* v2.6.28 KEY_NUMERIC_9 */
+#define XKB_KEY_XF86NumericStar              0x1008120a      /* v2.6.28 KEY_NUMERIC_STAR */
+#define XKB_KEY_XF86NumericPound             0x1008120b      /* v2.6.28 KEY_NUMERIC_POUND */
+#define XKB_KEY_XF86NumericA                 0x1008120c      /* v4.1    KEY_NUMERIC_A */
+#define XKB_KEY_XF86NumericB                 0x1008120d      /* v4.1    KEY_NUMERIC_B */
+#define XKB_KEY_XF86NumericC                 0x1008120e      /* v4.1    KEY_NUMERIC_C */
+#define XKB_KEY_XF86NumericD                 0x1008120f      /* v4.1    KEY_NUMERIC_D */
+#define XKB_KEY_XF86CameraFocus              0x10081210      /* v2.6.33 KEY_CAMERA_FOCUS */
+#define XKB_KEY_XF86WPSButton                0x10081211      /* v2.6.34 KEY_WPS_BUTTON */
+/* Use: XKB_KEY_XF86TouchpadToggle           _EVDEVK(0x212)     v2.6.37 KEY_TOUCHPAD_TOGGLE */
+/* Use: XKB_KEY_XF86TouchpadOn               _EVDEVK(0x213)     v2.6.37 KEY_TOUCHPAD_ON */
+/* Use: XKB_KEY_XF86TouchpadOff              _EVDEVK(0x214)     v2.6.37 KEY_TOUCHPAD_OFF */
+#define XKB_KEY_XF86CameraZoomIn             0x10081215      /* v2.6.39 KEY_CAMERA_ZOOMIN */
+#define XKB_KEY_XF86CameraZoomOut            0x10081216      /* v2.6.39 KEY_CAMERA_ZOOMOUT */
+#define XKB_KEY_XF86CameraUp                 0x10081217      /* v2.6.39 KEY_CAMERA_UP */
+#define XKB_KEY_XF86CameraDown               0x10081218      /* v2.6.39 KEY_CAMERA_DOWN */
+#define XKB_KEY_XF86CameraLeft               0x10081219      /* v2.6.39 KEY_CAMERA_LEFT */
+#define XKB_KEY_XF86CameraRight              0x1008121a      /* v2.6.39 KEY_CAMERA_RIGHT */
+#define XKB_KEY_XF86AttendantOn              0x1008121b      /* v3.10   KEY_ATTENDANT_ON */
+#define XKB_KEY_XF86AttendantOff             0x1008121c      /* v3.10   KEY_ATTENDANT_OFF */
+#define XKB_KEY_XF86AttendantToggle          0x1008121d      /* v3.10   KEY_ATTENDANT_TOGGLE */
+#define XKB_KEY_XF86LightsToggle             0x1008121e      /* v3.10   KEY_LIGHTS_TOGGLE */
+#define XKB_KEY_XF86ALSToggle                0x10081230      /* v3.13   KEY_ALS_TOGGLE */
+/* Use: XKB_KEY_XF86RotationLockToggle       _EVDEVK(0x231)     v4.16   KEY_ROTATE_LOCK_TOGGLE */
+#define XKB_KEY_XF86Buttonconfig             0x10081240      /* v3.16   KEY_BUTTONCONFIG */
+#define XKB_KEY_XF86Taskmanager              0x10081241      /* v3.16   KEY_TASKMANAGER */
+#define XKB_KEY_XF86Journal                  0x10081242      /* v3.16   KEY_JOURNAL */
+#define XKB_KEY_XF86ControlPanel             0x10081243      /* v3.16   KEY_CONTROLPANEL */
+#define XKB_KEY_XF86AppSelect                0x10081244      /* v3.16   KEY_APPSELECT */
+#define XKB_KEY_XF86Screensaver              0x10081245      /* v3.16   KEY_SCREENSAVER */
+#define XKB_KEY_XF86VoiceCommand             0x10081246      /* v3.16   KEY_VOICECOMMAND */
+#define XKB_KEY_XF86Assistant                0x10081247      /* v4.13   KEY_ASSISTANT */
+/* Use: XKB_KEY_ISO_Next_Group               _EVDEVK(0x248)     v5.2    KEY_KBD_LAYOUT_NEXT */
+#define XKB_KEY_XF86EmojiPicker              0x10081249      /* v5.13   KEY_EMOJI_PICKER */
+#define XKB_KEY_XF86Dictate                  0x1008124a      /* v5.17   KEY_DICTATE */
+#define XKB_KEY_XF86CameraAccessEnable       0x1008124b      /* v6.2    KEY_CAMERA_ACCESS_ENABLE */
+#define XKB_KEY_XF86CameraAccessDisable      0x1008124c      /* v6.2    KEY_CAMERA_ACCESS_DISABLE */
+#define XKB_KEY_XF86CameraAccessToggle       0x1008124d      /* v6.2    KEY_CAMERA_ACCESS_TOGGLE */
+#define XKB_KEY_XF86BrightnessMin            0x10081250      /* v3.16   KEY_BRIGHTNESS_MIN */
+#define XKB_KEY_XF86BrightnessMax            0x10081251      /* v3.16   KEY_BRIGHTNESS_MAX */
+#define XKB_KEY_XF86KbdInputAssistPrev       0x10081260      /* v3.18   KEY_KBDINPUTASSIST_PREV */
+#define XKB_KEY_XF86KbdInputAssistNext       0x10081261      /* v3.18   KEY_KBDINPUTASSIST_NEXT */
+#define XKB_KEY_XF86KbdInputAssistPrevgroup  0x10081262      /* v3.18   KEY_KBDINPUTASSIST_PREVGROUP */
+#define XKB_KEY_XF86KbdInputAssistNextgroup  0x10081263      /* v3.18   KEY_KBDINPUTASSIST_NEXTGROUP */
+#define XKB_KEY_XF86KbdInputAssistAccept     0x10081264      /* v3.18   KEY_KBDINPUTASSIST_ACCEPT */
+#define XKB_KEY_XF86KbdInputAssistCancel     0x10081265      /* v3.18   KEY_KBDINPUTASSIST_CANCEL */
+#define XKB_KEY_XF86RightUp                  0x10081266      /* v4.7    KEY_RIGHT_UP */
+#define XKB_KEY_XF86RightDown                0x10081267      /* v4.7    KEY_RIGHT_DOWN */
+#define XKB_KEY_XF86LeftUp                   0x10081268      /* v4.7    KEY_LEFT_UP */
+#define XKB_KEY_XF86LeftDown                 0x10081269      /* v4.7    KEY_LEFT_DOWN */
+#define XKB_KEY_XF86RootMenu                 0x1008126a      /* v4.7    KEY_ROOT_MENU */
+#define XKB_KEY_XF86MediaTopMenu             0x1008126b      /* v4.7    KEY_MEDIA_TOP_MENU */
+#define XKB_KEY_XF86Numeric11                0x1008126c      /* v4.7    KEY_NUMERIC_11 */
+#define XKB_KEY_XF86Numeric12                0x1008126d      /* v4.7    KEY_NUMERIC_12 */
+#define XKB_KEY_XF86AudioDesc                0x1008126e      /* v4.7    KEY_AUDIO_DESC */
+#define XKB_KEY_XF863DMode                   0x1008126f      /* v4.7    KEY_3D_MODE */
+#define XKB_KEY_XF86NextFavorite             0x10081270      /* v4.7    KEY_NEXT_FAVORITE */
+#define XKB_KEY_XF86StopRecord               0x10081271      /* v4.7    KEY_STOP_RECORD */
+#define XKB_KEY_XF86PauseRecord              0x10081272      /* v4.7    KEY_PAUSE_RECORD */
+#define XKB_KEY_XF86VOD                      0x10081273      /* v4.7    KEY_VOD */
+#define XKB_KEY_XF86Unmute                   0x10081274      /* v4.7    KEY_UNMUTE */
+#define XKB_KEY_XF86FastReverse              0x10081275      /* v4.7    KEY_FASTREVERSE */
+#define XKB_KEY_XF86SlowReverse              0x10081276      /* v4.7    KEY_SLOWREVERSE */
+#define XKB_KEY_XF86Data                     0x10081277      /* v4.7    KEY_DATA */
+#define XKB_KEY_XF86OnScreenKeyboard         0x10081278      /* v4.12   KEY_ONSCREEN_KEYBOARD */
+#define XKB_KEY_XF86PrivacyScreenToggle      0x10081279      /* v5.5    KEY_PRIVACY_SCREEN_TOGGLE */
+#define XKB_KEY_XF86SelectiveScreenshot      0x1008127a      /* v5.6    KEY_SELECTIVE_SCREENSHOT */
+#define XKB_KEY_XF86NextElement              0x1008127b      /* v5.18   KEY_NEXT_ELEMENT */
+#define XKB_KEY_XF86PreviousElement          0x1008127c      /* v5.18   KEY_PREVIOUS_ELEMENT */
+#define XKB_KEY_XF86AutopilotEngageToggle    0x1008127d      /* v5.18   KEY_AUTOPILOT_ENGAGE_TOGGLE */
+#define XKB_KEY_XF86MarkWaypoint             0x1008127e      /* v5.18   KEY_MARK_WAYPOINT */
+#define XKB_KEY_XF86Sos                      0x1008127f      /* v5.18   KEY_SOS */
+#define XKB_KEY_XF86NavChart                 0x10081280      /* v5.18   KEY_NAV_CHART */
+#define XKB_KEY_XF86FishingChart             0x10081281      /* v5.18   KEY_FISHING_CHART */
+#define XKB_KEY_XF86SingleRangeRadar         0x10081282      /* v5.18   KEY_SINGLE_RANGE_RADAR */
+#define XKB_KEY_XF86DualRangeRadar           0x10081283      /* v5.18   KEY_DUAL_RANGE_RADAR */
+#define XKB_KEY_XF86RadarOverlay             0x10081284      /* v5.18   KEY_RADAR_OVERLAY */
+#define XKB_KEY_XF86TraditionalSonar         0x10081285      /* v5.18   KEY_TRADITIONAL_SONAR */
+#define XKB_KEY_XF86ClearvuSonar             0x10081286      /* v5.18   KEY_CLEARVU_SONAR */
+#define XKB_KEY_XF86SidevuSonar              0x10081287      /* v5.18   KEY_SIDEVU_SONAR */
+#define XKB_KEY_XF86NavInfo                  0x10081288      /* v5.18   KEY_NAV_INFO */
+/* Use: XKB_KEY_XF86BrightnessAdjust         _EVDEVK(0x289)     v5.18   KEY_BRIGHTNESS_MENU */
+#define XKB_KEY_XF86Macro1                   0x10081290      /* v5.5    KEY_MACRO1 */
+#define XKB_KEY_XF86Macro2                   0x10081291      /* v5.5    KEY_MACRO2 */
+#define XKB_KEY_XF86Macro3                   0x10081292      /* v5.5    KEY_MACRO3 */
+#define XKB_KEY_XF86Macro4                   0x10081293      /* v5.5    KEY_MACRO4 */
+#define XKB_KEY_XF86Macro5                   0x10081294      /* v5.5    KEY_MACRO5 */
+#define XKB_KEY_XF86Macro6                   0x10081295      /* v5.5    KEY_MACRO6 */
+#define XKB_KEY_XF86Macro7                   0x10081296      /* v5.5    KEY_MACRO7 */
+#define XKB_KEY_XF86Macro8                   0x10081297      /* v5.5    KEY_MACRO8 */
+#define XKB_KEY_XF86Macro9                   0x10081298      /* v5.5    KEY_MACRO9 */
+#define XKB_KEY_XF86Macro10                  0x10081299      /* v5.5    KEY_MACRO10 */
+#define XKB_KEY_XF86Macro11                  0x1008129a      /* v5.5    KEY_MACRO11 */
+#define XKB_KEY_XF86Macro12                  0x1008129b      /* v5.5    KEY_MACRO12 */
+#define XKB_KEY_XF86Macro13                  0x1008129c      /* v5.5    KEY_MACRO13 */
+#define XKB_KEY_XF86Macro14                  0x1008129d      /* v5.5    KEY_MACRO14 */
+#define XKB_KEY_XF86Macro15                  0x1008129e      /* v5.5    KEY_MACRO15 */
+#define XKB_KEY_XF86Macro16                  0x1008129f      /* v5.5    KEY_MACRO16 */
+#define XKB_KEY_XF86Macro17                  0x100812a0      /* v5.5    KEY_MACRO17 */
+#define XKB_KEY_XF86Macro18                  0x100812a1      /* v5.5    KEY_MACRO18 */
+#define XKB_KEY_XF86Macro19                  0x100812a2      /* v5.5    KEY_MACRO19 */
+#define XKB_KEY_XF86Macro20                  0x100812a3      /* v5.5    KEY_MACRO20 */
+#define XKB_KEY_XF86Macro21                  0x100812a4      /* v5.5    KEY_MACRO21 */
+#define XKB_KEY_XF86Macro22                  0x100812a5      /* v5.5    KEY_MACRO22 */
+#define XKB_KEY_XF86Macro23                  0x100812a6      /* v5.5    KEY_MACRO23 */
+#define XKB_KEY_XF86Macro24                  0x100812a7      /* v5.5    KEY_MACRO24 */
+#define XKB_KEY_XF86Macro25                  0x100812a8      /* v5.5    KEY_MACRO25 */
+#define XKB_KEY_XF86Macro26                  0x100812a9      /* v5.5    KEY_MACRO26 */
+#define XKB_KEY_XF86Macro27                  0x100812aa      /* v5.5    KEY_MACRO27 */
+#define XKB_KEY_XF86Macro28                  0x100812ab      /* v5.5    KEY_MACRO28 */
+#define XKB_KEY_XF86Macro29                  0x100812ac      /* v5.5    KEY_MACRO29 */
+#define XKB_KEY_XF86Macro30                  0x100812ad      /* v5.5    KEY_MACRO30 */
+#define XKB_KEY_XF86MacroRecordStart         0x100812b0      /* v5.5    KEY_MACRO_RECORD_START */
+#define XKB_KEY_XF86MacroRecordStop          0x100812b1      /* v5.5    KEY_MACRO_RECORD_STOP */
+#define XKB_KEY_XF86MacroPresetCycle         0x100812b2      /* v5.5    KEY_MACRO_PRESET_CYCLE */
+#define XKB_KEY_XF86MacroPreset1             0x100812b3      /* v5.5    KEY_MACRO_PRESET1 */
+#define XKB_KEY_XF86MacroPreset2             0x100812b4      /* v5.5    KEY_MACRO_PRESET2 */
+#define XKB_KEY_XF86MacroPreset3             0x100812b5      /* v5.5    KEY_MACRO_PRESET3 */
+#define XKB_KEY_XF86KbdLcdMenu1              0x100812b8      /* v5.5    KEY_KBD_LCD_MENU1 */
+#define XKB_KEY_XF86KbdLcdMenu2              0x100812b9      /* v5.5    KEY_KBD_LCD_MENU2 */
+#define XKB_KEY_XF86KbdLcdMenu3              0x100812ba      /* v5.5    KEY_KBD_LCD_MENU3 */
+#define XKB_KEY_XF86KbdLcdMenu4              0x100812bb      /* v5.5    KEY_KBD_LCD_MENU4 */
+#define XKB_KEY_XF86KbdLcdMenu5              0x100812bc      /* v5.5    KEY_KBD_LCD_MENU5 */
 #undef _EVDEVK
 /*
- * Copyright (c) 1991, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1991, Oracle and/or its affiliates.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -2976,60 +3010,60 @@ in this Software without prior written authorization from The Open Group.
  * Floating Accent
  */
 
-#define XKB_KEY_SunFA_Grave            0x1005FF00
-#define XKB_KEY_SunFA_Circum           0x1005FF01
-#define XKB_KEY_SunFA_Tilde            0x1005FF02
-#define XKB_KEY_SunFA_Acute            0x1005FF03
-#define XKB_KEY_SunFA_Diaeresis        0x1005FF04
-#define XKB_KEY_SunFA_Cedilla  0x1005FF05
+#define XKB_KEY_SunFA_Grave               0x1005ff00
+#define XKB_KEY_SunFA_Circum              0x1005ff01
+#define XKB_KEY_SunFA_Tilde               0x1005ff02
+#define XKB_KEY_SunFA_Acute               0x1005ff03
+#define XKB_KEY_SunFA_Diaeresis           0x1005ff04
+#define XKB_KEY_SunFA_Cedilla             0x1005ff05
 
 /*
  * Miscellaneous Functions
  */
 
-#define XKB_KEY_SunF36         0x1005FF10      /* Labeled F11 */
-#define XKB_KEY_SunF37         0x1005FF11      /* Labeled F12 */
+#define XKB_KEY_SunF36                    0x1005ff10  /* Labeled F11 */
+#define XKB_KEY_SunF37                    0x1005ff11  /* Labeled F12 */
 
-#define XKB_KEY_SunSys_Req     0x1005FF60
-#define XKB_KEY_SunPrint_Screen        0x0000FF61      /* Same as XK_Print */
+#define XKB_KEY_SunSys_Req                0x1005ff60
+#define XKB_KEY_SunPrint_Screen           0x0000ff61  /* Same as XKB_KEY_Print */
 
 /*
  * International & Multi-Key Character Composition
  */
 
-#define XKB_KEY_SunCompose             0x0000FF20      /* Same as XK_Multi_key */
-#define XKB_KEY_SunAltGraph            0x0000FF7E      /* Same as XK_Mode_switch */
+#define XKB_KEY_SunCompose                0x0000ff20  /* Same as XKB_KEY_Multi_key */
+#define XKB_KEY_SunAltGraph               0x0000ff7e  /* Same as XKB_KEY_Mode_switch */
 
 /*
  * Cursor Control
  */
 
-#define XKB_KEY_SunPageUp              0x0000FF55      /* Same as XK_Prior */
-#define XKB_KEY_SunPageDown            0x0000FF56      /* Same as XK_Next */
+#define XKB_KEY_SunPageUp                 0x0000ff55  /* Same as XKB_KEY_Prior */
+#define XKB_KEY_SunPageDown               0x0000ff56  /* Same as XKB_KEY_Next */
 
 /*
  * Open Look Functions
  */
 
-#define XKB_KEY_SunUndo                0x0000FF65      /* Same as XK_Undo */
-#define XKB_KEY_SunAgain               0x0000FF66      /* Same as XK_Redo */
-#define XKB_KEY_SunFind                0x0000FF68      /* Same as XK_Find */
-#define XKB_KEY_SunStop                0x0000FF69      /* Same as XK_Cancel */
-#define XKB_KEY_SunProps               0x1005FF70
-#define XKB_KEY_SunFront               0x1005FF71
-#define XKB_KEY_SunCopy                0x1005FF72
-#define XKB_KEY_SunOpen                0x1005FF73
-#define XKB_KEY_SunPaste               0x1005FF74
-#define XKB_KEY_SunCut         0x1005FF75
-
-#define XKB_KEY_SunPowerSwitch         0x1005FF76
-#define XKB_KEY_SunAudioLowerVolume            0x1005FF77
-#define XKB_KEY_SunAudioMute                   0x1005FF78
-#define XKB_KEY_SunAudioRaiseVolume            0x1005FF79
-#define XKB_KEY_SunVideoDegauss                0x1005FF7A
-#define XKB_KEY_SunVideoLowerBrightness        0x1005FF7B
-#define XKB_KEY_SunVideoRaiseBrightness        0x1005FF7C
-#define XKB_KEY_SunPowerSwitchShift            0x1005FF7D
+#define XKB_KEY_SunUndo                   0x0000ff65  /* Same as XKB_KEY_Undo */
+#define XKB_KEY_SunAgain                  0x0000ff66  /* Same as XKB_KEY_Redo */
+#define XKB_KEY_SunFind                   0x0000ff68  /* Same as XKB_KEY_Find */
+#define XKB_KEY_SunStop                   0x0000ff69  /* Same as XKB_KEY_Cancel */
+#define XKB_KEY_SunProps                  0x1005ff70
+#define XKB_KEY_SunFront                  0x1005ff71
+#define XKB_KEY_SunCopy                   0x1005ff72
+#define XKB_KEY_SunOpen                   0x1005ff73
+#define XKB_KEY_SunPaste                  0x1005ff74
+#define XKB_KEY_SunCut                    0x1005ff75
+
+#define XKB_KEY_SunPowerSwitch            0x1005ff76
+#define XKB_KEY_SunAudioLowerVolume       0x1005ff77
+#define XKB_KEY_SunAudioMute              0x1005ff78
+#define XKB_KEY_SunAudioRaiseVolume       0x1005ff79
+#define XKB_KEY_SunVideoDegauss           0x1005ff7a
+#define XKB_KEY_SunVideoLowerBrightness   0x1005ff7b
+#define XKB_KEY_SunVideoRaiseBrightness   0x1005ff7c
+#define XKB_KEY_SunPowerSwitchShift       0x1005ff7d
 /***********************************************************
 
 Copyright 1988, 1998  The Open Group
@@ -3084,17 +3118,17 @@ SOFTWARE.
 
 /* two-key compose sequence initiators, chosen to map to Latin1 characters */
 
-#define XKB_KEY_Dring_accent         0x1000FEB0
-#define XKB_KEY_Dcircumflex_accent   0x1000FE5E
-#define XKB_KEY_Dcedilla_accent      0x1000FE2C
-#define XKB_KEY_Dacute_accent        0x1000FE27
-#define XKB_KEY_Dgrave_accent        0x1000FE60
-#define XKB_KEY_Dtilde               0x1000FE7E
-#define XKB_KEY_Ddiaeresis           0x1000FE22
+#define XKB_KEY_Dring_accent              0x1000feb0
+#define XKB_KEY_Dcircumflex_accent        0x1000fe5e
+#define XKB_KEY_Dcedilla_accent           0x1000fe2c
+#define XKB_KEY_Dacute_accent             0x1000fe27
+#define XKB_KEY_Dgrave_accent             0x1000fe60
+#define XKB_KEY_Dtilde                    0x1000fe7e
+#define XKB_KEY_Ddiaeresis                0x1000fe22
 
 /* special keysym for LK2** "Remove" key on editing keypad */
 
-#define XKB_KEY_DRemove        0x1000FF00   /* Remove */
+#define XKB_KEY_DRemove                   0x1000ff00  /* Remove */
 /*
 
 Copyright 1987, 1998  The Open Group
@@ -3154,72 +3188,71 @@ performance, or use of this material.
 
 
 
-#define XKB_KEY_hpClearLine            0x1000FF6F
-#define XKB_KEY_hpInsertLine           0x1000FF70
-#define XKB_KEY_hpDeleteLine           0x1000FF71
-#define XKB_KEY_hpInsertChar           0x1000FF72
-#define XKB_KEY_hpDeleteChar           0x1000FF73
-#define XKB_KEY_hpBackTab              0x1000FF74
-#define XKB_KEY_hpKP_BackTab           0x1000FF75
-#define XKB_KEY_hpModelock1            0x1000FF48
-#define XKB_KEY_hpModelock2            0x1000FF49
-#define XKB_KEY_hpReset                0x1000FF6C
-#define XKB_KEY_hpSystem               0x1000FF6D
-#define XKB_KEY_hpUser         0x1000FF6E
-#define XKB_KEY_hpmute_acute           0x100000A8
-#define XKB_KEY_hpmute_grave           0x100000A9
-#define XKB_KEY_hpmute_asciicircum     0x100000AA
-#define XKB_KEY_hpmute_diaeresis       0x100000AB
-#define XKB_KEY_hpmute_asciitilde      0x100000AC
-#define XKB_KEY_hplira         0x100000AF
-#define XKB_KEY_hpguilder              0x100000BE
-#define XKB_KEY_hpYdiaeresis           0x100000EE
-#define XKB_KEY_hpIO                   0x100000EE
-#define XKB_KEY_hplongminus            0x100000F6
-#define XKB_KEY_hpblock                0x100000FC
-
-
-
-#define XKB_KEY_osfCopy                0x1004FF02
-#define XKB_KEY_osfCut         0x1004FF03
-#define XKB_KEY_osfPaste               0x1004FF04
-#define XKB_KEY_osfBackTab             0x1004FF07
-#define XKB_KEY_osfBackSpace           0x1004FF08
-#define XKB_KEY_osfClear               0x1004FF0B
-#define XKB_KEY_osfEscape              0x1004FF1B
-#define XKB_KEY_osfAddMode             0x1004FF31
-#define XKB_KEY_osfPrimaryPaste        0x1004FF32
-#define XKB_KEY_osfQuickPaste  0x1004FF33
-#define XKB_KEY_osfPageLeft            0x1004FF40
-#define XKB_KEY_osfPageUp              0x1004FF41
-#define XKB_KEY_osfPageDown            0x1004FF42
-#define XKB_KEY_osfPageRight           0x1004FF43
-#define XKB_KEY_osfActivate            0x1004FF44
-#define XKB_KEY_osfMenuBar             0x1004FF45
-#define XKB_KEY_osfLeft                0x1004FF51
-#define XKB_KEY_osfUp          0x1004FF52
-#define XKB_KEY_osfRight               0x1004FF53
-#define XKB_KEY_osfDown                0x1004FF54
-#define XKB_KEY_osfEndLine             0x1004FF57
-#define XKB_KEY_osfBeginLine           0x1004FF58
-#define XKB_KEY_osfEndData             0x1004FF59
-#define XKB_KEY_osfBeginData           0x1004FF5A
-#define XKB_KEY_osfPrevMenu            0x1004FF5B
-#define XKB_KEY_osfNextMenu            0x1004FF5C
-#define XKB_KEY_osfPrevField           0x1004FF5D
-#define XKB_KEY_osfNextField           0x1004FF5E
-#define XKB_KEY_osfSelect              0x1004FF60
-#define XKB_KEY_osfInsert              0x1004FF63
-#define XKB_KEY_osfUndo                0x1004FF65
-#define XKB_KEY_osfMenu                0x1004FF67
-#define XKB_KEY_osfCancel              0x1004FF69
-#define XKB_KEY_osfHelp                0x1004FF6A
-#define XKB_KEY_osfSelectAll           0x1004FF71
-#define XKB_KEY_osfDeselectAll 0x1004FF72
-#define XKB_KEY_osfReselect            0x1004FF73
-#define XKB_KEY_osfExtend              0x1004FF74
-#define XKB_KEY_osfRestore             0x1004FF78
-#define XKB_KEY_osfDelete              0x1004FFFF
+#define XKB_KEY_hpClearLine               0x1000ff6f
+#define XKB_KEY_hpInsertLine              0x1000ff70
+#define XKB_KEY_hpDeleteLine              0x1000ff71
+#define XKB_KEY_hpInsertChar              0x1000ff72
+#define XKB_KEY_hpDeleteChar              0x1000ff73
+#define XKB_KEY_hpBackTab                 0x1000ff74
+#define XKB_KEY_hpKP_BackTab              0x1000ff75
+#define XKB_KEY_hpModelock1               0x1000ff48
+#define XKB_KEY_hpModelock2               0x1000ff49
+#define XKB_KEY_hpReset                   0x1000ff6c
+#define XKB_KEY_hpSystem                  0x1000ff6d
+#define XKB_KEY_hpUser                    0x1000ff6e
+#define XKB_KEY_hpmute_acute              0x100000a8
+#define XKB_KEY_hpmute_grave              0x100000a9
+#define XKB_KEY_hpmute_asciicircum        0x100000aa
+#define XKB_KEY_hpmute_diaeresis          0x100000ab
+#define XKB_KEY_hpmute_asciitilde         0x100000ac
+#define XKB_KEY_hplira                    0x100000af
+#define XKB_KEY_hpguilder                 0x100000be
+#define XKB_KEY_hpIO                      0x100000ee  /* deprecated alias for hpYdiaeresis */
+#define XKB_KEY_hplongminus               0x100000f6
+#define XKB_KEY_hpblock                   0x100000fc
+
+
+
+#define XKB_KEY_osfCopy                   0x1004ff02
+#define XKB_KEY_osfCut                    0x1004ff03
+#define XKB_KEY_osfPaste                  0x1004ff04
+#define XKB_KEY_osfBackTab                0x1004ff07
+#define XKB_KEY_osfBackSpace              0x1004ff08
+#define XKB_KEY_osfClear                  0x1004ff0b
+#define XKB_KEY_osfEscape                 0x1004ff1b
+#define XKB_KEY_osfAddMode                0x1004ff31
+#define XKB_KEY_osfPrimaryPaste           0x1004ff32
+#define XKB_KEY_osfQuickPaste             0x1004ff33
+#define XKB_KEY_osfPageLeft               0x1004ff40
+#define XKB_KEY_osfPageUp                 0x1004ff41
+#define XKB_KEY_osfPageDown               0x1004ff42
+#define XKB_KEY_osfPageRight              0x1004ff43
+#define XKB_KEY_osfActivate               0x1004ff44
+#define XKB_KEY_osfMenuBar                0x1004ff45
+#define XKB_KEY_osfLeft                   0x1004ff51
+#define XKB_KEY_osfUp                     0x1004ff52
+#define XKB_KEY_osfRight                  0x1004ff53
+#define XKB_KEY_osfDown                   0x1004ff54
+#define XKB_KEY_osfEndLine                0x1004ff57
+#define XKB_KEY_osfBeginLine              0x1004ff58
+#define XKB_KEY_osfEndData                0x1004ff59
+#define XKB_KEY_osfBeginData              0x1004ff5a
+#define XKB_KEY_osfPrevMenu               0x1004ff5b
+#define XKB_KEY_osfNextMenu               0x1004ff5c
+#define XKB_KEY_osfPrevField              0x1004ff5d
+#define XKB_KEY_osfNextField              0x1004ff5e
+#define XKB_KEY_osfSelect                 0x1004ff60
+#define XKB_KEY_osfInsert                 0x1004ff63
+#define XKB_KEY_osfUndo                   0x1004ff65
+#define XKB_KEY_osfMenu                   0x1004ff67
+#define XKB_KEY_osfCancel                 0x1004ff69
+#define XKB_KEY_osfHelp                   0x1004ff6a
+#define XKB_KEY_osfSelectAll              0x1004ff71
+#define XKB_KEY_osfDeselectAll            0x1004ff72
+#define XKB_KEY_osfReselect               0x1004ff73
+#define XKB_KEY_osfExtend                 0x1004ff74
+#define XKB_KEY_osfRestore                0x1004ff78
+#define XKB_KEY_osfDelete                 0x1004ffff
 
 
 
@@ -3227,28 +3260,28 @@ performance, or use of this material.
  * The use of the following macros is deprecated.
  * They are listed below only for backwards compatibility.
  */
-#define XKB_KEY_Reset                0x1000FF6C
-#define XKB_KEY_System               0x1000FF6D
-#define XKB_KEY_User                 0x1000FF6E
-#define XKB_KEY_ClearLine            0x1000FF6F
-#define XKB_KEY_InsertLine           0x1000FF70
-#define XKB_KEY_DeleteLine           0x1000FF71
-#define XKB_KEY_InsertChar           0x1000FF72
-#define XKB_KEY_DeleteChar           0x1000FF73
-#define XKB_KEY_BackTab              0x1000FF74
-#define XKB_KEY_KP_BackTab           0x1000FF75
-#define XKB_KEY_Ext16bit_L           0x1000FF76
-#define XKB_KEY_Ext16bit_R           0x1000FF77
-#define XKB_KEY_mute_acute           0x100000a8
-#define XKB_KEY_mute_grave           0x100000a9
-#define XKB_KEY_mute_asciicircum     0x100000aa
-#define XKB_KEY_mute_diaeresis       0x100000ab
-#define XKB_KEY_mute_asciitilde      0x100000ac
-#define XKB_KEY_lira                 0x100000af
-#define XKB_KEY_guilder              0x100000be
-#define XKB_KEY_IO                   0x100000ee
-#define XKB_KEY_longminus            0x100000f6
-#define XKB_KEY_block                0x100000fc
+#define XKB_KEY_Reset                     0x1000ff6c  /* deprecated alias for hpReset */
+#define XKB_KEY_System                    0x1000ff6d  /* deprecated alias for hpSystem */
+#define XKB_KEY_User                      0x1000ff6e  /* deprecated alias for hpUser */
+#define XKB_KEY_ClearLine                 0x1000ff6f  /* deprecated alias for hpClearLine */
+#define XKB_KEY_InsertLine                0x1000ff70  /* deprecated alias for hpInsertLine */
+#define XKB_KEY_DeleteLine                0x1000ff71  /* deprecated alias for hpDeleteLine */
+#define XKB_KEY_InsertChar                0x1000ff72  /* deprecated alias for hpInsertChar */
+#define XKB_KEY_DeleteChar                0x1000ff73  /* deprecated alias for hpDeleteChar */
+#define XKB_KEY_BackTab                   0x1000ff74  /* deprecated alias for hpBackTab */
+#define XKB_KEY_KP_BackTab                0x1000ff75  /* deprecated alias for hpKP_BackTab */
+#define XKB_KEY_Ext16bit_L                0x1000ff76  /* deprecated */
+#define XKB_KEY_Ext16bit_R                0x1000ff77  /* deprecated */
+#define XKB_KEY_mute_acute                0x100000a8  /* deprecated alias for hpmute_acute */
+#define XKB_KEY_mute_grave                0x100000a9  /* deprecated alias for hpmute_grave */
+#define XKB_KEY_mute_asciicircum          0x100000aa  /* deprecated alias for hpmute_asciicircum */
+#define XKB_KEY_mute_diaeresis            0x100000ab  /* deprecated alias for hpmute_diaeresis */
+#define XKB_KEY_mute_asciitilde           0x100000ac  /* deprecated alias for hpmute_asciitilde */
+#define XKB_KEY_lira                      0x100000af  /* deprecated alias for hplira */
+#define XKB_KEY_guilder                   0x100000be  /* deprecated alias for hpguilder */
+#define XKB_KEY_IO                        0x100000ee  /* deprecated alias for hpYdiaeresis */
+#define XKB_KEY_longminus                 0x100000f6  /* deprecated alias for hplongminus */
+#define XKB_KEY_block                     0x100000fc  /* deprecated alias for hpblock */
 
 
 
index c96afad..5c6ced8 100644 (file)
@@ -750,7 +750,6 @@ static const char *keysym_names =
     "dead_abovedot\0"
     "dead_abovereversedcomma\0"
     "dead_abovering\0"
-    "dead_aboveverticalline\0"
     "dead_acute\0"
     "dead_belowbreve\0"
     "dead_belowcircumflex\0"
@@ -760,7 +759,6 @@ static const char *keysym_names =
     "dead_belowmacron\0"
     "dead_belowring\0"
     "dead_belowtilde\0"
-    "dead_belowverticalline\0"
     "dead_breve\0"
     "dead_capital_schwa\0"
     "dead_caron\0"
@@ -775,20 +773,21 @@ static const char *keysym_names =
     "dead_E\0"
     "dead_grave\0"
     "dead_greek\0"
+    "dead_hamza\0"
     "dead_hook\0"
     "dead_horn\0"
     "dead_i\0"
     "dead_I\0"
     "dead_invertedbreve\0"
     "dead_iota\0"
-    "dead_longsolidusoverlay\0"
-    "dead_lowline\0"
     "dead_macron\0"
     "dead_o\0"
     "dead_O\0"
     "dead_ogonek\0"
     "dead_perispomeni\0"
     "dead_psili\0"
+    "dead_schwa\0"
+    "dead_SCHWA\0"
     "dead_semivoiced_sound\0"
     "dead_small_schwa\0"
     "dead_stroke\0"
@@ -1096,6 +1095,8 @@ static const char *keysym_names =
     "Greek_ZETA\0"
     "Greek_zeta\0"
     "guilder\0"
+    "guillemetleft\0"
+    "guillemetright\0"
     "guillemotleft\0"
     "guillemotright\0"
     "H\0"
@@ -1286,7 +1287,6 @@ static const char *keysym_names =
     "hpReset\0"
     "hpSystem\0"
     "hpUser\0"
-    "hpYdiaeresis\0"
     "Hstroke\0"
     "hstroke\0"
     "ht\0"
@@ -1666,6 +1666,7 @@ static const char *keysym_names =
     "opentribulletdown\0"
     "opentribulletup\0"
     "ordfeminine\0"
+    "ordmasculine\0"
     "osfActivate\0"
     "osfAddMode\0"
     "osfBackSpace\0"
@@ -2241,6 +2242,7 @@ static const char *keysym_names =
     "XF86AudioRepeat\0"
     "XF86AudioRewind\0"
     "XF86AudioStop\0"
+    "XF86AutopilotEngageToggle\0"
     "XF86Away\0"
     "XF86Back\0"
     "XF86BackForward\0"
@@ -2257,6 +2259,9 @@ static const char *keysym_names =
     "XF86Calculater\0"
     "XF86Calculator\0"
     "XF86Calendar\0"
+    "XF86CameraAccessDisable\0"
+    "XF86CameraAccessEnable\0"
+    "XF86CameraAccessToggle\0"
     "XF86CameraDown\0"
     "XF86CameraFocus\0"
     "XF86CameraLeft\0"
@@ -2269,6 +2274,7 @@ static const char *keysym_names =
     "XF86ChannelUp\0"
     "XF86Clear\0"
     "XF86ClearGrab\0"
+    "XF86ClearvuSonar\0"
     "XF86Close\0"
     "XF86Community\0"
     "XF86ContextMenu\0"
@@ -2285,6 +2291,7 @@ static const char *keysym_names =
     "XF86DisplayToggle\0"
     "XF86Documents\0"
     "XF86DOS\0"
+    "XF86DualRangeRadar\0"
     "XF86DVD\0"
     "XF86Editor\0"
     "XF86Eject\0"
@@ -2294,6 +2301,7 @@ static const char *keysym_names =
     "XF86FastReverse\0"
     "XF86Favorites\0"
     "XF86Finance\0"
+    "XF86FishingChart\0"
     "XF86Fn\0"
     "XF86Fn_Esc\0"
     "XF86FnRightShift\0"
@@ -2391,6 +2399,7 @@ static const char *keysym_names =
     "XF86Mail\0"
     "XF86MailForward\0"
     "XF86Market\0"
+    "XF86MarkWaypoint\0"
     "XF86MediaRepeat\0"
     "XF86MediaTopMenu\0"
     "XF86Meeting\0"
@@ -2405,9 +2414,12 @@ static const char *keysym_names =
     "XF86Music\0"
     "XF86MyComputer\0"
     "XF86MySites\0"
+    "XF86NavChart\0"
+    "XF86NavInfo\0"
     "XF86New\0"
     "XF86News\0"
     "XF86Next_VMode\0"
+    "XF86NextElement\0"
     "XF86NextFavorite\0"
     "XF86NotificationCenter\0"
     "XF86Numeric0\0"
@@ -2442,8 +2454,10 @@ static const char *keysym_names =
     "XF86PowerOff\0"
     "XF86Presentation\0"
     "XF86Prev_VMode\0"
+    "XF86PreviousElement\0"
     "XF86PrivacyScreenToggle\0"
     "XF86Q\0"
+    "XF86RadarOverlay\0"
     "XF86Red\0"
     "XF86Refresh\0"
     "XF86Reload\0"
@@ -2470,8 +2484,11 @@ static const char *keysym_names =
     "XF86SelectiveScreenshot\0"
     "XF86Send\0"
     "XF86Shop\0"
+    "XF86SidevuSonar\0"
+    "XF86SingleRangeRadar\0"
     "XF86Sleep\0"
     "XF86SlowReverse\0"
+    "XF86Sos\0"
     "XF86Spell\0"
     "XF86SpellCheck\0"
     "XF86SplitScreen\0"
@@ -2504,6 +2521,7 @@ static const char *keysym_names =
     "XF86TouchpadOff\0"
     "XF86TouchpadOn\0"
     "XF86TouchpadToggle\0"
+    "XF86TraditionalSonar\0"
     "XF86Travel\0"
     "XF86Ungrab\0"
     "XF86Unmute\0"
@@ -2569,300 +2587,303 @@ static const char *keysym_names =
 #endif
 
 static const uint16_t keysym_name_G[] = {
-    0, 4563, 0, 0, 0, 2484, 2083, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 3420, 0, 3962, 0, 0, 0, 0, 0, 0, 2097, 96, 0, 0,
-    0, 0, 0, 3368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3572, 408, 0,
-    1013, 1971, 0, 371, 1609, 0, 0, 0, 0, 0, 0, 273, 407, 0, 0, 0, 0, 0, 0,
-    1940, 4382, 0, 455, 0, 0, 499, 1170, 0, 2533, 0, 0, 0, 0, 3968, 0, 0,
-    0, 0, 0, 0, 1385, 4046, 1302, 0, 0, 0, 0, 0, 0, 2752, 0, 0, 0, 0, 0, 0,
-    3754, 0, 0, 1648, 0, 1359, 2082, 0, 0, 0, 0, 0, 0, 3646, 345, 0, 0, 0,
-    0, 284, 0, 2566, 983, 403, 2955, 0, 826, 2528, 0, 3912, 0, 0, 0, 745,
-    0, 0, 0, 2038, 362, 3338, 0, 0, 0, 0, 1899, 0, 0, 4215, 2690, 0, 0,
-    2011, 0, 0, 0, 74, 3838, 0, 0, 4412, 574, 0, 0, 454, 4069, 2898, 0, 0,
-    1826, 0, 3104, 0, 0, 0, 0, 0, 1581, 2521, 0, 0, 0, 0, 0, 0, 0, 0, 800,
-    0, 184, 0, 0, 4401, 3776, 0, 4431, 0, 0, 0, 221, 1934, 3309, 0, 0, 0,
-    0, 533, 0, 0, 0, 0, 3912, 2426, 0, 0, 0, 0, 0, 0, 3063, 0, 1133, 1015,
-    0, 0, 0, 0, 0, 0, 467, 0, 1035, 2487, 1866, 50, 3959, 0, 2851, 0, 0, 0,
-    1140, 0, 3620, 2760, 2178, 4119, 0, 3941, 1692, 0, 4566, 0, 685, 862,
-    3302, 0, 0, 719, 479, 0, 0, 693, 0, 0, 0, 2001, 0, 2396, 0, 0, 3492,
-    298, 0, 0, 0, 0, 3129, 180, 4143, 742, 45, 0, 3340, 0, 0, 0, 0, 973, 0,
-    0, 0, 0, 2700, 0, 2799, 0, 1056, 1071, 4548, 421, 266, 0, 0, 0, 0, 0,
-    1429, 1022, 0, 1918, 3084, 0, 0, 1225, 2225, 1657, 852, 0, 0, 0, 1581,
-    0, 0, 4197, 0, 0, 234, 0, 3748, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303,
-    216, 3998, 0, 0, 0, 0, 1652, 0, 0, 0, 0, 1510, 776, 4426, 0, 380, 0, 0,
-    0, 0, 0, 0, 0, 0, 1507, 0, 1405, 0, 0, 922, 816, 1828, 0, 3745, 1803,
-    0, 1195, 0, 0, 466, 0, 2229, 0, 0, 1054, 220, 0, 0, 2587, 0, 1687, 0,
-    0, 814, 430, 1676, 0, 2584, 1323, 0, 2346, 0, 3935, 0, 305, 0, 0, 0, 0,
-    0, 429, 0, 612, 614, 0, 2226, 0, 1075, 0, 0, 4287, 0, 2862, 0, 0, 1809,
-    4425, 3368, 1573, 1803, 0, 2337, 0, 0, 3506, 0, 0, 663, 0, 3025, 3499,
-    0, 0, 0, 0, 3971, 44, 0, 0, 0, 643, 0, 0, 1468, 0, 2120, 1133, 3189, 0,
-    1808, 135, 0, 3353, 0, 0, 0, 0, 0, 383, 0, 0, 0, 2247, 0, 2705, 2148,
-    0, 51, 55, 0, 0, 0, 1458, 0, 0, 2380, 0, 0, 0, 0, 519, 0, 3136, 3343,
-    0, 0, 0, 4386, 0, 3718, 26, 0, 0, 0, 1863, 0, 4117, 2751, 2014, 3441,
-    4026, 0, 3425, 0, 0, 2210, 0, 2015, 4206, 0, 0, 586, 0, 0, 0, 2240,
-    2247, 0, 0, 4262, 1831, 3498, 0, 222, 0, 0, 0, 0, 334, 2627, 0, 517, 0,
-    0, 0, 0, 1622, 0, 0, 0, 4276, 0, 0, 2391, 0, 462, 3652, 0, 1963, 0, 0,
-    3270, 3012, 1027, 0, 0, 0, 0, 660, 2871, 4388, 2764, 0, 0, 1035, 2266,
-    3917, 0, 0, 2824, 958, 1810, 1002, 0, 3932, 0, 0, 0, 0, 0, 0, 4495, 0,
-    0, 0, 1505, 2354, 4437, 828, 0, 0, 0, 3688, 2633, 0, 2420, 128, 0,
-    3023, 0, 1829, 1607, 360, 750, 0, 2479, 0, 1456, 3284, 2173, 0, 2740,
-    1816, 603, 1862, 0, 0, 0, 3784, 1511, 4507, 0, 435, 0, 0, 0, 0, 0, 616,
-    785, 2747, 0, 3212, 0, 3699, 0, 0, 1815, 1823, 0, 0, 0, 986, 0, 3506,
-    0, 0, 0, 0, 0, 2751, 0, 0, 4211, 138, 0, 3343, 0, 635, 0, 992, 0, 868,
-    282, 0, 0, 0, 2142, 0, 0, 1016, 0, 2354, 4010, 2169, 0, 0, 0, 644, 0,
-    385, 2897, 1676, 3788, 2724, 0, 2625, 1785, 0, 0, 1893, 0, 0, 973, 0,
-    0, 0, 2189, 0, 1133, 3698, 0, 3865, 0, 0, 4356, 0, 4297, 2087, 554, 0,
-    178, 2236, 0, 0, 0, 398, 1353, 422, 0, 1695, 1323, 777, 1129, 0, 0, 75,
-    0, 330, 0, 303, 0, 1816, 0, 0, 0, 0, 0, 0, 576, 198, 4415, 2297, 4119,
-    0, 0, 1245, 0, 0, 0, 1388, 0, 0, 4105, 0, 3, 0, 380, 0, 0, 3321, 0, 0,
-    1187, 2874, 0, 0, 0, 0, 0, 848, 2021, 4363, 0, 1056, 0, 0, 0, 1174, 0,
-    2989, 365, 0, 876, 390, 0, 1762, 0, 0, 1957, 0, 0, 1441, 543, 3981,
-    3986, 486, 617, 502, 923, 0, 1039, 0, 2668, 0, 792, 0, 0, 4049, 0, 0,
-    1345, 0, 3993, 4283, 0, 776, 1157, 1562, 0, 406, 122, 784, 4093, 765,
-    4148, 0, 2481, 0, 605, 0, 0, 4057, 0, 4070, 3307, 1537, 0, 1371, 0,
-    2855, 0, 627, 0, 0, 0, 4140, 0, 2414, 0, 852, 2331, 929, 1938, 0, 0, 0,
-    0, 0, 0, 563, 0, 0, 0, 531, 0, 1728, 0, 1694, 0, 434, 2481, 2903, 0,
-    2372, 0, 3230, 0, 0, 0, 0, 0, 0, 804, 68, 636, 764, 0, 0, 2545, 748, 0,
-    0, 899, 812, 0, 0, 2828, 2208, 0, 0, 2428, 0, 0, 0, 3828, 1380, 639, 0,
-    0, 0, 0, 157, 0, 918, 0, 271, 0, 0, 0, 3084, 0, 4525, 85, 0, 0, 586,
-    3452, 446, 0, 0, 0, 0, 0, 0, 316, 0, 0, 2003, 2060, 0, 0, 0, 1103, 59,
-    0, 436, 0, 498, 0, 1118, 711, 4320, 0, 96, 0, 0, 0, 955, 0, 4488, 0,
-    2774, 0, 0, 4456, 635, 0, 0, 0, 2167, 70, 4548, 474, 30, 0, 887, 213,
-    0, 0, 0, 0, 3025, 0, 537, 472, 0, 943, 0, 0, 0, 0, 146, 0, 0, 223, 680,
-    0, 0, 0, 0, 1993, 0, 0, 225, 1752, 0, 41, 0, 0, 2967, 1682, 3608, 1204,
-    2925, 0, 2764, 3286, 0, 0, 0, 0, 961, 0, 500, 0, 3728, 3671, 271, 0, 0,
-    267, 0, 0, 0, 0, 0, 4573, 496, 3346, 0, 2449, 2606, 0, 717, 0, 798, 0,
-    4397, 2483, 0, 0, 0, 170, 0, 2091, 2534, 0, 3356, 0, 0, 0, 4350, 193,
-    0, 745, 0, 58, 0, 0, 1850, 0, 2955, 1722, 0, 0, 0, 1063, 0, 2108, 1135,
-    4314, 0, 4108, 2721, 3534, 0, 2054, 2012, 0, 0, 0, 0, 1552, 0, 234, 0,
-    1477, 0, 3961, 0, 0, 1824, 856, 1453, 195, 555, 0, 0, 0, 3012, 3904,
-    1925, 610, 2914, 1200, 2318, 2979, 3606, 0, 0, 192, 0, 0, 0, 1410,
-    3067, 1971, 0, 791, 256, 2511, 2369, 2644, 2840, 0, 3667, 2197, 0, 0,
-    2210, 872, 2100, 1361, 0, 0, 0, 0, 1214, 2750, 697, 0, 0, 4228, 1828,
-    4257, 2486, 3279, 0, 0, 1526, 0, 0, 3694, 0, 147, 0, 0, 0, 0, 3370, 0,
-    5, 0, 2197, 37, 0, 0, 1108, 0, 548, 0, 3918, 0, 0, 2726, 1767, 2360, 0,
-    0, 0, 1270, 1080, 0, 0, 2405, 2542, 0, 548, 0, 982, 0, 3873, 0, 1349,
-    0, 3582, 0, 1722, 0, 0, 0, 0, 0, 2257, 2350, 0, 1542, 0, 0, 0, 3583,
-    2794, 0, 3942, 0, 2388, 559, 2149, 0, 0, 0, 0, 870, 0, 801, 1944, 4170,
-    0, 0, 0, 0, 0, 4470, 2332, 2749, 0, 0, 0, 0, 0, 0, 3527, 0, 175, 1805,
-    4141, 2028, 155, 401, 0, 1170, 0, 996, 3706, 4328, 0, 0, 4079, 558,
-    1304, 0, 0, 1731, 0, 2165, 0, 0, 0, 2209, 674, 0, 2912, 456, 153, 4084,
-    0, 1164, 2287, 0, 0, 1901, 2329, 1388, 1454, 736, 450, 3850, 0, 542,
-    1637, 1732, 350, 0, 0, 0, 0, 908, 1581, 0, 0, 0, 0, 4059, 1660, 4393,
-    2351, 0, 254, 0, 0, 0, 2508, 0, 0, 3451, 3716, 0, 3301, 0, 4197, 0, 0,
-    191, 1408, 3273, 1816, 3759, 0, 0, 4374, 0, 0, 2536, 780, 0, 1415,
-    4207, 703, 0, 4338, 1079, 0, 0, 0, 0, 0, 0, 0, 2640, 0, 2878, 0, 0,
-    1330, 0, 0, 0, 1516, 0, 0, 0, 1838, 2396, 0, 0, 0, 194, 0, 0, 3322, 0,
-    2060, 0, 641, 1316, 890, 2706, 0, 3811, 0, 376, 860, 2471, 0, 0, 1951,
-    0, 655, 4033, 0, 0, 3550, 0, 53, 0, 0, 589, 1366, 2862, 0, 0, 0, 0,
-    3566, 0, 0, 2136, 3800, 0, 0, 0, 0, 1415, 2700, 1497, 4360, 1677, 244,
-    0, 289, 3689, 0, 0, 702, 3832, 0, 0, 0, 0, 119, 4408, 942, 0, 0, 0,
-    743, 0, 3789, 2828, 2330, 2034, 0, 0, 3961, 0, 976, 2705, 154, 0, 1196,
-    4540, 0, 0, 3631, 286, 0, 0, 666, 0, 1479, 158, 1721, 0, 0, 2187, 1550,
-    0, 2250, 443, 0, 1033, 2383, 2198, 0, 0, 0, 1302, 4467, 0, 4357, 1713,
-    357, 0, 244, 1582, 453, 0, 4344, 2475, 0, 1574, 2840, 0, 0, 0, 0, 0, 0,
-    0, 0, 4460, 256, 736, 0, 1349, 0, 2398, 1318, 3631, 0, 0, 1027, 876,
-    2121, 0, 0, 0, 0, 0, 0, 1233, 598, 0, 988, 0, 1512, 0, 1383, 2291, 0,
-    0, 0, 2251, 4178, 2310, 1482, 752, 0, 0, 794, 12, 3214, 809, 0, 686, 0,
-    2081, 0, 2907, 698, 0, 1885, 6, 191, 0, 0, 0, 0, 1947, 483, 0, 0, 1250,
-    4527, 1159, 0, 0, 1411, 0, 3332, 2547, 0, 1817, 0, 0, 3642, 0, 221, 0,
-    2642, 2016, 0, 4274, 0, 1727, 0, 0, 66, 0, 3957, 0, 4512, 124, 3158,
-    2453, 2684, 0, 0, 0, 0, 1306, 0, 1831, 356, 0, 2008, 1317, 0, 0, 1178,
-    2193, 0, 2410, 565, 0, 0, 0, 2279, 1198, 0, 2029, 0, 445, 2935, 1357,
-    0, 4547, 3044, 227, 0, 2634, 4295, 0, 0, 2837, 0, 2376, 3282, 392,
-    1848, 0, 907, 1648, 587, 4304, 0, 4350, 252, 2665, 2409, 1854, 624, 0,
-    0, 0, 3021, 0, 0, 0, 0, 0, 2647, 3, 654, 0, 0, 0, 1010, 3006, 0, 0, 0,
-    0, 0, 0, 1881, 1563, 2167, 364, 3643, 0, 0, 688, 0, 0, 1215, 2859, 769,
-    0, 1093, 286, 4260, 829, 0, 3137, 0, 0, 3326, 0, 899, 0, 0, 0, 2422, 0,
-    1464, 1153, 2980, 0, 0, 0, 1037, 0, 0, 703, 1918, 4269, 776, 0, 4382,
-    0, 1336, 3014, 1582, 0, 3564, 0, 2834, 0, 2548, 207, 2623, 851, 0,
-    2410, 0, 1196, 0, 1034, 3215, 2632, 740, 3176, 0, 0, 0, 0, 0, 48, 328,
-    1209, 0, 87, 583, 396, 0, 0, 4403, 2253, 3431, 98, 2405, 0, 4162, 3940,
-    0, 4196, 0, 1835, 0, 0, 0, 0, 0, 0, 305, 2423, 1227, 2581, 3750, 362,
-    1414, 0, 4338, 1882, 0, 2334, 2223, 0, 0, 4151, 0, 156, 1891, 366,
-    4562, 0, 4475, 2379, 0, 3863, 1997, 2355, 3058, 1251, 0, 491, 0, 1331,
-    188, 0, 600, 2274, 0, 0, 273, 3561, 0, 0, 4502, 0, 3515, 2552, 3947, 0,
-    504, 3488, 3633, 0, 4174, 412, 2344, 375, 1515, 0, 1339, 3239, 673, 0,
-    0, 0, 0, 0, 0, 0, 430, 2685, 0, 1260, 0, 2211, 0, 0, 2169, 0, 2333,
-    2970, 645, 0, 0, 0, 0, 0, 1546, 1999, 291, 1879, 0, 0, 2467, 2548,
-    3435, 0, 454, 232, 1258, 4219, 746, 1956, 1665, 0, 0, 0, 0, 0, 0, 0, 0,
-    590, 4293, 327, 0, 217, 1885, 1986, 1202, 0, 166, 0, 0, 4058, 0, 983,
-    0, 3113, 416, 0, 239, 476, 0, 0, 930, 2575, 0, 0, 0, 0, 2050, 0, 0,
-    1850, 0, 1993, 0, 1821, 0, 0, 1506, 1085, 0, 0, 0, 277, 2531, 1489, 0,
-    4270, 2571, 3114, 1623, 2104, 21, 332, 650, 630, 1955, 1384, 0, 4079,
-    346, 0, 0, 0, 0, 2125, 3620, 0, 2892, 1765, 0, 0, 0, 461, 0, 4168,
-    2265, 1861, 0, 4103, 0, 0, 3485, 0, 0, 0, 4355, 1995, 3576, 1882, 1943,
-    0, 229, 1529, 3858, 0, 1490, 829, 1957, 4332, 3371, 0, 0, 1759, 2551,
-    1230, 0, 3404, 0, 929, 0, 4555, 0, 1821, 1892, 0, 0, 2700, 2460, 0,
-    4041, 0, 4101, 581, 3240, 206, 567, 1069, 348, 0, 0, 211, 3444, 0,
-    4188, 2412, 378, 1378, 0, 0, 0, 1785, 4399, 0, 2266, 0, 1863, 1767, 0,
-    0, 0, 0, 0, 0, 1956, 4052, 100, 4320, 186, 0, 303, 0, 1316, 2007, 2787,
-    0, 4004, 450, 2921, 129, 2678, 0, 3146, 0, 0, 0, 0, 703, 2801, 0, 0,
-    1718, 3509, 3786, 2399, 436, 0, 0, 1212, 2159, 48, 0, 1164, 0, 0, 3608,
-    2296, 2244, 0, 2529, 0, 0, 0, 0, 1172, 0, 0, 2801, 3655, 468, 2803,
-    914, 691, 335, 2621, 0, 0, 297, 130, 0, 872, 0, 1890, 0, 4474, 3688,
-    2537, 735, 0, 2710, 1146, 0, 3231, 3179, 304, 1715, 0, 0, 0, 3065, 0,
-    0, 1782, 2536, 0, 0, 0, 0, 891, 0, 0, 631, 0, 0, 0, 0, 159, 0, 3306,
-    1159, 4419, 0, 4103, 0, 0, 0, 904, 861, 0, 0, 0, 0, 0, 0, 718, 268,
-    1771, 0, 0, 2692, 2129, 0, 0, 922, 3529, 4326, 1617, 4236, 1819, 0, 0,
-    0, 0, 0, 0, 0, 4479, 1136, 0, 0, 591, 2647, 3881, 2768, 444, 0, 983, 0,
-    255, 3221, 585, 0, 0, 0, 1648, 382, 0, 0, 0, 4213, 4087, 3501, 915, 0,
-    0, 199, 4448, 0, 0, 1305, 0, 3731, 1778, 0, 3827, 0, 0, 0, 3997, 0,
-    4369, 1931, 2514, 0, 0, 0, 3360, 7, 0, 1525, 2612, 4026, 0, 1037, 1117,
-    354, 3208, 0, 0, 3059, 831, 492, 3067, 516, 4357, 0, 0, 2801, 0, 1722,
-    2230, 0, 185, 452, 657, 0, 0, 1729, 615, 1671, 1792, 2424, 306, 2092,
-    0, 3287, 0, 0, 1779, 4274, 0, 3232, 1016, 4409, 1227, 480, 4143, 0,
-    1696, 3080, 4047, 615, 0, 2965, 3569, 0, 0, 3859, 2143, 0, 1865, 3297,
-    0, 0, 0, 3003, 4382, 0, 0, 0, 115, 0, 382, 0, 0, 0, 0, 1524, 1240, 57,
-    492, 1756, 895, 842, 3903, 3914, 0, 2676, 1130, 524, 4238, 0, 538, 0,
-    1195, 1704, 0, 0, 0, 0, 3717, 1489, 534, 3274, 0, 2196, 2548, 1440,
-    747, 569, 0, 3115, 0, 0, 1679, 0, 1182, 835, 3065, 4193, 903, 0, 3078,
-    4368, 0, 2105, 0, 954, 0, 0, 0, 0, 1189, 2073, 750, 0, 3057, 1202, 906,
-    1034, 3711, 0, 2305, 2184, 0, 0, 306, 0, 2676, 1377, 1781, 2022, 1040,
-    1418, 0, 245, 2296, 0, 0, 4074, 4228, 3779, 0, 0, 0, 2062, 0, 1836,
-    4392, 0, 0, 0, 3736, 0, 0, 0, 591, 0, 0, 0, 3055, 2165, 0, 3497, 0,
-    2082, 0, 0, 0, 0, 1719, 273, 2216, 896, 3924, 3597, 555, 2995, 944,
-    2487, 0, 831, 0, 0, 0, 0, 1667, 0, 2759, 1265, 0, 2101, 0, 4338, 0, 81,
-    449, 0, 0, 0, 2503, 0, 340, 0, 0, 1021, 0, 413, 0, 0, 2913, 0, 4044,
-    2359, 2277, 2496, 0, 591, 3047, 1313, 225, 0, 0, 496, 154, 1689, 0, 0,
-    0, 3307, 1697, 3556, 0, 2369, 875, 0, 0, 3439, 1072, 0, 4240, 0, 4256,
-    2658, 241, 0, 2296, 0, 0, 951, 0, 10, 0, 1540, 0, 1732, 0, 3971, 1123,
-    0, 3169, 4365, 528, 0, 2392, 0, 1153, 2069, 0, 0, 383, 0, 0, 0, 0, 0,
-    1575, 4384, 3577, 2372, 0, 0, 0, 0, 204, 0, 0, 1028, 986, 1966, 273, 0,
-    4498, 0, 3460, 2012, 0, 0, 3307, 201, 0, 2663, 3861, 0, 2124, 0, 469,
-    1276, 0, 36, 0, 1126, 3780, 0, 252, 603, 1533, 0, 2958, 650, 3466,
-    4452, 409, 0, 2028, 2663, 0, 3399, 2611, 1721, 0, 0, 736, 1315, 561,
-    3771, 1666, 4145, 0, 0, 56, 0, 0, 1278, 0, 0, 0, 2084, 107, 0, 0, 0,
-    3748, 1979, 3867, 2095, 0, 1115, 0, 3788, 3267, 2334, 3607, 4219, 2542,
-    1380, 0, 0, 0, 2787, 2305, 3567, 2721, 456, 1348, 345, 2353, 690, 2249,
-    1146, 0, 2237, 1517, 934, 296, 0, 231, 0, 4400, 1983, 0, 0, 4361, 0, 0,
-    898, 937, 678, 1537, 0, 0, 0, 2244, 70, 0, 0, 0, 0, 1209, 0, 2414, 0,
-    1828, 2869, 0, 0, 0, 4216, 0, 0, 506, 0, 4391, 1259, 3787, 3463, 978,
-    0, 1017, 2374, 0, 0, 0, 1934, 0, 0, 3067, 1532, 1650, 581, 1084, 127,
-    403, 0, 2980, 1509, 3941, 0, 1384, 0, 0, 2900, 0, 436, 0, 472, 2683,
-    4510, 27, 0, 530, 1193, 1162, 2540, 0, 3885, 3815, 0, 1018, 691, 0,
-    709, 1860, 0, 3696, 3786, 2894, 0, 1513, 0, 3050, 1830, 0, 1396, 4256,
-    0, 0, 0, 2777, 582, 2366, 2128, 193, 1434, 0, 2415, 66, 3570, 883,
-    1142, 1220, 1064, 0, 876, 1084, 0, 4177, 3486, 1918, 1570, 0, 680,
-    2941, 0, 0, 25, 0, 0, 99, 0, 1651, 50, 561, 1986, 514, 4576, 2084, 366,
-    4552, 0, 961, 0, 2289, 0, 0, 1407, 3872, 940, 1270, 0, 0, 227, 0, 1354,
-    784, 2204, 3139, 2367, 1183, 0, 0, 0, 3916, 3709, 0, 0, 175, 4392,
-    1048, 0, 0, 0, 2271, 4548, 0, 0, 0, 2509, 0, 1291, 13, 791, 4469, 0, 0,
-    1101, 0, 2230, 1376, 275, 2298, 3150, 0, 0, 0, 956, 2815, 2451, 0, 0,
-    2608, 1483, 0, 22, 700, 0, 1363, 0, 3532, 3464, 0, 0, 967, 1689, 1618,
-    0, 0, 0, 1786, 3664, 3612, 1979, 2888, 0, 1609, 0, 0, 0, 0, 1672, 110,
-    0, 2948, 0, 281, 2459, 2103, 3451, 0, 0, 1358, 0, 0, 173, 2355, 293, 0,
-    0, 1521, 3704, 2668, 732, 0, 312, 0, 1696, 1905, 0, 0, 0, 0, 536, 1962,
-    1364, 11, 4442, 1687, 2302, 0, 0, 1994, 2369, 0, 0, 0, 0, 0, 0, 0,
-    2531, 4337, 4514, 4105, 0, 3328, 350, 3008, 1155, 0, 0, 1428, 906,
-    2486, 1200, 0, 0, 717, 496, 3198, 0, 1088, 0, 1792, 2222, 0, 1584, 92,
-    1619, 0, 0, 2036, 863, 0, 4204, 0, 269, 0, 0, 0, 0, 3648, 1650, 39, 0,
-    0, 381, 1366, 0, 2370, 2074, 1332, 3338, 4366, 0, 1665, 0, 0, 281, 0,
-    3951, 0, 3105, 1985, 203, 1004, 0, 0, 0, 965, 0, 1856, 0, 1538, 714,
-    162, 0, 0, 2434, 1024, 4116, 351, 0, 3948, 613, 0, 353, 1385, 0, 0,
-    2267, 0, 3047, 3928, 0, 0, 0, 85, 1550, 0, 0, 0, 643, 0, 2239, 0, 1587,
-    0, 519, 3012, 125, 3607, 0, 683, 201, 3299, 2823, 3003, 1455, 67, 0,
-    1025, 339, 2199, 445, 1719, 1495, 4134, 362, 742, 2218, 583, 1737, 0,
-    0, 0, 0, 1452, 2820, 2111, 29, 1973, 4351, 863, 0, 0, 0, 0, 3889, 0, 0,
-    0, 1334, 205, 0, 2010, 0, 383, 4351, 1158, 609, 361, 2008, 3549, 1924,
-    30, 4383, 0, 779, 1382, 871, 0, 0, 1603, 0, 1198, 1851, 4049, 2505,
-    1639, 0, 0, 808, 1646, 0, 1489, 240, 712, 0, 0, 0, 75, 3647, 0, 0, 0,
-    0, 355, 1526, 748, 0, 3240, 0, 0, 0, 3896, 2446, 0, 2758, 1716, 4375,
-    1827, 607, 2043, 0, 2383, 0, 3081, 2563, 0, 0, 1722, 1176, 0, 0, 3269,
-    1245, 1636, 0, 0, 0, 976, 0, 759, 2793, 3892, 113, 4438, 3560, 0, 908,
-    1141, 2042, 1309, 2077, 0, 0, 0, 0, 2135, 1148, 0, 0, 0, 1357, 3972,
-    943, 0, 4269, 310, 3353, 0, 0, 0, 0, 0, 0, 1565, 0, 0, 1578, 0, 3115,
-    166, 4458, 2853, 0, 1165, 3157, 1956, 1993, 0, 0, 3832, 0, 873, 199,
-    225, 0, 3343, 826, 1184, 2599, 0, 111, 597, 2174, 0, 0, 4537, 541, 0,
-    0, 1690, 0, 1391, 3002, 0, 0, 3855, 1427, 3441, 50, 4135, 1862, 223, 0,
-    2210, 3917, 3768, 1775, 2290, 1104, 2336, 2391, 1799, 1182, 0, 0, 926,
-    712, 0, 0, 3420, 1855, 0, 1364, 4386, 0, 1518, 0, 3584, 4518, 0, 0,
-    825, 3890, 0, 4231, 4287, 0, 451, 0, 0, 0, 0, 3083, 1517, 1302, 4156,
-    3792, 0, 3614, 1531, 1215, 3053, 0, 2921, 2236, 1206, 157, 1338, 0,
-    260, 1564, 0, 0, 2094, 1874, 0, 0, 0, 0, 4220, 0, 0, 1042, 1758, 2547,
-    3896, 1164, 4388, 1160, 679, 2501, 0, 0, 1040, 0, 433, 0, 2134, 2058,
-    2494, 790, 0, 1411, 0, 0, 0, 0, 713, 4157, 4195, 3979, 876, 3590, 0, 0,
-    83, 0, 1083, 0, 1055, 3302, 638, 2691, 0, 1731, 1742, 775, 1776, 715,
-    0, 379, 0, 1548, 0, 0, 4012, 0, 3005, 1071, 0, 0, 988, 0, 0, 4426,
-    1564, 2506, 0, 191, 0, 0, 3582, 1996, 0, 584, 0, 0, 2802, 0, 369, 397,
-    0, 4214, 453, 3572, 3120, 0, 0, 97, 0, 1441, 3588, 806, 0, 1615, 4340,
-    780, 3139, 0, 664, 0, 2188, 2504, 0, 2298, 621, 0, 898, 0, 0, 0, 0, 0,
-    838, 172, 117, 1622, 487, 475, 314, 0, 2048, 2704, 0, 867, 0, 3792,
-    3641, 2503, 0, 594, 2039, 0, 452, 0, 1877, 89, 0, 4014, 653, 1614,
-    1292, 566, 0, 0, 198, 0, 0, 2338, 4136, 937, 1120, 0, 8, 3698, 3171,
-    413, 1439, 1321, 0, 2417, 335, 2986, 0, 566, 0, 3814, 962, 0, 0, 242,
-    0, 0, 505, 183, 1965, 812, 98, 655, 0, 0, 0, 0, 1978, 848, 396, 0, 377,
-    0, 1684, 0, 1582, 3969, 1744, 0, 810, 72, 0, 107, 0, 4433, 2286, 3522,
-    0, 2069, 0, 0, 0, 2094, 4395, 2067, 0, 1149, 0, 662, 0, 2107, 4389, 0,
-    849, 0, 0, 0, 69, 0, 0, 0, 0, 0, 313, 0, 607, 831, 4085, 3226, 0, 0, 0,
-    340, 4136, 1223, 2021, 0, 2091, 3801, 212, 0, 12, 0, 3915, 1805, 3515,
-    4315, 0, 0, 2099, 0, 0, 4090, 0, 0, 622, 834, 2437, 2296, 1681, 4547,
-    4460, 2079, 2324, 839, 2397, 2145, 1619, 401, 3863, 2891, 0, 103, 1457,
-    0, 1047, 0, 1405, 2950, 3099, 2255, 0, 0, 968, 670, 2120, 1389, 643, 0,
-    1752, 1342, 0, 3330, 0, 1282, 1561, 3036, 0, 0, 1219, 2129, 425, 0,
-    2162, 0, 0, 3764, 2134, 3962, 0, 919, 0, 0, 2044, 0, 0, 769, 2243, 0,
-    0, 4575, 1751, 0, 0, 0, 585, 1638, 0, 0, 2438, 0, 792, 220, 0, 3802,
-    3691, 0, 1032, 1344, 0, 3968, 0, 0, 147, 1059, 2411, 1074, 1608, 0,
-    199, 0, 0, 215, 0, 0, 840, 3390, 712, 0, 3209, 3282, 0, 2266, 2514, 0,
-    1393, 951, 4351, 0, 378, 0, 1015, 4263, 2644, 2511, 1953, 0, 0, 1991,
-    3626, 0, 513, 0, 2139, 2502, 0, 808, 2899, 1908, 1589, 113, 3787, 0, 0,
-    882, 3809, 0, 4350, 890, 0, 0, 240, 632, 3047, 1547, 3304, 874, 0, 669,
-    1138, 1326, 2034, 4147, 2172, 3490, 1660, 0, 1542, 0, 788, 3236, 557,
-    0, 290, 1687, 0, 1655, 4087, 1730, 3798, 2362, 875, 442, 2048, 0, 0, 0,
-    2419, 4022, 2726, 0, 701, 294, 0, 1955, 3941, 571, 0, 0, 1450, 1985,
-    1874, 2584, 1062, 3965, 0, 0, 521, 384, 0, 1406, 1272, 0, 0, 0, 0,
-    2642, 1419, 280, 0, 0, 2495, 0, 603, 1739, 2740, 105, 0, 1768, 1049, 0,
-    1901, 4127, 1550, 0, 4479, 1750, 693, 2089, 0, 2715, 4357, 0, 4027,
-    842, 3047, 3628, 145, 1240, 0, 617, 847, 4400, 620, 1496, 4204, 1912,
-    3600, 2399, 1839, 751, 1558, 433, 20, 0, 2449, 4367, 0, 902, 3803,
-    2277, 0, 214, 584, 2380, 0, 1983, 0, 331, 0, 1752, 171, 1643, 556, 627,
-    537, 0, 3772, 2097, 0, 3603, 0, 1704, 0, 0, 0, 0, 2437, 227, 3368, 0,
-    2128, 0, 0, 965, 4212, 0, 0, 568, 127, 1903, 4433, 0, 0, 0, 1886, 153,
-    2830, 0, 1450, 0, 129, 0, 0, 0, 975, 3292, 105, 0, 0, 202, 0, 1727, 0,
-    4241, 2087, 2073, 430, 0, 3605, 823, 440, 1626, 11, 3226, 0, 0, 3953,
-    0, 593, 0, 1325, 0, 0, 2227, 1850, 270, 0, 0, 2085, 441, 171, 2251, 0,
-    2430, 0, 0, 4544, 0, 1330, 0, 0, 0, 1794, 1653, 213, 1513, 3924, 2379,
-    2023, 666, 55, 3647, 832, 3275, 739, 4117, 2141, 1233, 4483, 0, 3836,
-    2907, 826, 781, 3445, 784, 3728, 3751, 1226, 3639, 2696, 1066, 1170,
-    664, 785, 733, 293, 1603, 0, 1942, 0, 0, 1, 0, 661, 0, 0, 679, 1368, 0,
-    0, 1179, 208, 0, 0, 0, 0, 1604, 2525, 4309, 1176, 1285, 667, 2161,
-    4564, 302, 4097, 3038, 2549, 266, 0, 0, 2443, 0, 0, 562, 0, 0, 697,
-    247, 2408, 2433, 0, 3858, 0, 1599, 578, 3041, 4043, 1902, 1298, 0, 0,
-    1652, 0, 1493, 0, 0, 0, 379, 4453, 0, 0, 0, 0, 2125, 0, 3703, 0, 1649,
-    4085, 2345, 0, 7, 4099, 0, 0, 0, 0, 2921, 0, 2745, 58, 0, 2706, 587,
-    2328, 0, 2271, 0, 121, 0, 1939, 1027, 226, 0, 1473, 4235, 0, 0, 0,
-    2618, 1043, 4158, 0, 0, 0, 0, 0, 386, 3847, 0, 1817, 2405, 0, 1142,
-    1906, 1254, 1734, 4182, 4530, 0, 0, 0, 1995, 1813, 0, 0, 1480, 1886,
-    3796, 2487, 4066, 0, 1511, 0, 0, 0, 3807, 2978, 2283, 4266, 4360, 2172,
-    0, 135, 1662, 0, 247, 956, 525, 0, 0, 0, 2402, 0, 0, 0, 0, 0, 515,
-    2301, 0, 2319, 313, 0, 3101, 0, 0, 0, 3870, 0, 3544, 0, 0, 0, 4490, 0,
-    4509, 0, 2734, 3317, 0, 0, 0, 2770, 0, 0, 2263, 986, 0, 2529, 1001, 0,
-    0, 2249, 177, 0, 2289, 4304, 4242, 0, 0, 0, 170, 0, 4576, 195, 0, 1795,
-    4271, 0, 0, 0, 4180, 34, 0, 0, 0, 0, 0, 2475, 781, 1461, 3400, 1894, 0,
-    2337, 0, 2406, 322, 0, 948, 0, 3838, 1572, 2546, 0, 754, 1234, 1323,
-    805, 0, 1694, 1164, 706, 1972, 2608, 3313, 2289, 838, 1252, 0, 3641, 0,
-    3427, 0, 1847, 2807, 1135, 992, 0, 0, 2446, 938, 0, 0, 846, 1825, 0, 0,
-    0, 0, 0, 1094, 1594, 643, 4102, 778, 4529, 0, 2035, 811, 0, 1156, 0, 0,
-    0, 3400, 2456, 1869, 3613, 0, 0, 0, 0, 2961, 2076, 1836, 0, 0, 239,
-    1058, 926, 2472, 0, 564, 3784, 2615, 2719, 0, 0, 3519, 2190, 2339,
-    1072, 1244, 1003, 4441, 1003, 0, 0, 0, 0, 0, 4051, 1821, 1264, 652, 0,
-    305, 2559, 1001, 0, 0, 1272, 0, 4471, 0, 1637, 3775, 0, 1834, 0, 959,
-    2628, 2040, 0, 3716, 0, 0, 0, 193, 0, 2762, 0, 2464, 571, 312, 284,
-    849, 2472, 0, 2326, 3115, 1495, 0, 2439, 1097, 0, 1886, 0, 1207, 911,
-    0, 0, 141, 1221, 1341, 2482, 3714, 0, 1674, 0, 4503, 2208, 327, 0, 0,
-    1950, 2927, 3809, 684, 1463, 3080, 0, 0, 1502, 0, 0, 2362, 0, 0, 0,
-    4307, 1751, 0, 145, 0, 845, 0, 333, 3872, 2291, 0, 301, 0, 0, 371, 0,
-    0, 2788, 0, 704, 379, 1098, 1702, 1786, 2426, 0, 1245, 2245, 2269, 0,
-    1144, 2221, 1077, 3063, 0, 0, 3991, 2506, 402, 2061, 0, 3534, 3505,
-    3917, 284, 0, 3421, 1575, 0, 927, 1418, 3498, 1663, 285, 1630, 2377,
-    736, 1249, 2949, 2482, 1227, 4221, 1609, 2989, 2264, 1584, 0, 0, 0, 7,
-    1710, 1065, 4551, 726, 596, 1138, 0, 0, 0, 0, 0, 4563, 0, 0, 1348, 386,
-    181, 2359, 1223, 3472, 2181, 0, 1082, 0, 0, 4210, 0, 0, 0, 0, 2096,
-    1174, 0, 0, 2215, 4392, 3487, 0, 53, 0, 525, 0, 1292, 2120, 1531, 0, 0,
-    677, 103, 2301, 3554, 2011, 0, 0, 0, 3337, 0, 1728, 615, 0, 1429, 813,
-    49, 1134, 3922, 0, 3313, 2030, 0, 62, 0, 553, 0, 3854, 0, 57, 1473,
-    2668, 753, 0, 4306, 4013, 0, 1301, 556, 1049, 0, 318, 4239, 711, 862,
-    0
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4320, 0, 0, 0,
+    0, 0, 0, 3487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 911,
+    170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 2237, 0, 0, 1255, 0, 0, 0, 0, 0,
+    4586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 0, 0, 2095, 2473, 0, 0, 0,
+    0, 3660, 3155, 0, 4215, 0, 0, 0, 3269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1233, 0, 938, 0, 0, 0, 0,
+    3024, 0, 0, 0, 0, 0, 0, 2140, 1323, 0, 0, 3357, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 267, 0, 1334, 2206, 0, 0, 0, 0, 0, 0, 2223, 0, 0, 0, 0, 0,
+    2646, 0, 4468, 1654, 0, 3013, 0, 3827, 0, 0, 0, 754, 271, 0, 0, 0, 0,
+    0, 2138, 934, 2447, 3798, 623, 292, 0, 0, 0, 2078, 0, 0, 0, 0, 0, 0, 0,
+    0, 860, 614, 0, 1667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1966, 2819,
+    1086, 0, 613, 0, 0, 0, 2392, 0, 2124, 0, 0, 0, 0, 0, 0, 0, 2683, 2902,
+    0, 0, 0, 0, 0, 0, 4054, 0, 0, 0, 0, 130, 884, 4346, 0, 0, 0, 0, 0, 0,
+    0, 0, 495, 0, 0, 0, 0, 0, 847, 0, 0, 0, 0, 2464, 4132, 1191, 0, 0, 0,
+    0, 0, 2897, 1235, 113, 4597, 0, 0, 1982, 0, 0, 0, 0, 0, 1276, 2857, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 2300, 0, 0, 0, 0, 0, 0, 0, 0, 2956, 0, 0, 0, 0,
+    0, 0, 0, 1500, 0, 0, 0, 3846, 2818, 0, 0, 1274, 0, 1751, 0, 0, 3872, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 1902, 0, 0,
+    0, 0, 0, 0, 0, 1021, 935, 3867, 0, 0, 695, 0, 0, 2791, 1285, 959, 104,
+    3701, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 1986, 249, 830, 0, 1101, 0, 0,
+    702, 0, 2373, 0, 3925, 0, 0, 17, 0, 2474, 1714, 661, 1143, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 3877, 0, 0, 0, 0, 0, 0, 1837, 3205, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 997, 0, 0, 2889, 0, 1001, 1103, 0, 0, 2906,
+    2247, 0, 0, 0, 0, 0, 3811, 2559, 1107, 0, 0, 0, 0, 1281, 1748, 766, 0,
+    478, 0, 794, 2034, 0, 0, 4078, 0, 1052, 43, 0, 0, 0, 0, 370, 0, 4344,
+    0, 336, 0, 2520, 0, 4354, 0, 0, 4115, 106, 0, 0, 0, 0, 4483, 0, 4133,
+    4146, 0, 362, 0, 0, 0, 0, 2155, 2025, 0, 2538, 1624, 1569, 524, 344,
+    4216, 0, 0, 1049, 0, 0, 0, 0, 0, 0, 3971, 0, 0, 0, 0, 0, 0, 0, 0, 3506,
+    134, 0, 1029, 0, 0, 0, 0, 1999, 0, 3959, 3052, 0, 0, 0, 0, 0, 190,
+    4269, 124, 1503, 0, 789, 0, 0, 3157, 1339, 0, 2987, 1230, 340, 2855,
+    3977, 0, 0, 0, 3572, 0, 4005, 0, 0, 3389, 56, 3158, 2568, 1126, 2237,
+    0, 0, 3137, 2064, 2000, 0, 0, 4194, 0, 2009, 0, 0, 0, 352, 333, 0, 699,
+    1725, 0, 0, 1095, 758, 931, 0, 0, 3395, 0, 0, 0, 2779, 4331, 0, 376,
+    2643, 786, 0, 0, 0, 1695, 4476, 250, 1346, 0, 1584, 1546, 0, 0, 0, 547,
+    0, 0, 0, 0, 185, 0, 0, 3138, 0, 0, 0, 780, 2326, 3641, 357, 2909, 0,
+    2744, 0, 0, 3782, 3851, 0, 0, 2410, 0, 165, 0, 3929, 0, 332, 0, 0, 0,
+    285, 0, 132, 0, 0, 0, 0, 614, 2413, 0, 2071, 4452, 0, 2932, 0, 0, 2154,
+    0, 0, 0, 0, 47, 2817, 378, 0, 0, 0, 0, 2675, 2532, 0, 4444, 0, 0, 0,
+    3801, 1146, 1503, 0, 0, 360, 0, 1844, 3762, 0, 0, 0, 0, 808, 1971, 0,
+    0, 0, 3447, 2133, 1130, 277, 0, 2150, 0, 0, 0, 2022, 0, 0, 842, 0,
+    4056, 1546, 0, 2903, 2961, 0, 0, 1147, 0, 0, 0, 0, 0, 178, 2494, 4293,
+    0, 2691, 373, 898, 0, 0, 0, 358, 0, 1566, 1952, 4315, 1333, 0, 0, 0, 0,
+    0, 0, 0, 9, 4181, 0, 0, 3233, 0, 4170, 1838, 0, 4213, 0, 0, 4162, 1623,
+    4072, 0, 0, 4274, 1135, 0, 0, 0, 4580, 0, 0, 4155, 0, 0, 2104, 0, 0, 0,
+    0, 0, 0, 448, 392, 1065, 0, 0, 0, 3992, 0, 0, 0, 0, 874, 1186, 0, 0,
+    3272, 0, 0, 0, 2602, 1968, 2263, 3121, 1106, 0, 3214, 3710, 1824, 0,
+    81, 0, 0, 491, 0, 0, 0, 2160, 0, 0, 0, 1550, 1499, 0, 0, 162, 0, 2511,
+    0, 1750, 938, 114, 28, 0, 0, 0, 4369, 1651, 0, 705, 2124, 3706, 0,
+    2823, 0, 2478, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2047, 4270,
+    875, 2763, 2128, 0, 0, 3258, 0, 0, 0, 0, 0, 368, 0, 0, 0, 793, 0, 214,
+    3900, 905, 0, 406, 3898, 2054, 249, 0, 1331, 1784, 4611, 456, 501,
+    3088, 0, 0, 469, 0, 0, 2591, 0, 0, 0, 0, 1924, 55, 1167, 3760, 1818, 0,
+    0, 0, 1494, 0, 2654, 3852, 0, 0, 0, 0, 3028, 0, 0, 4508, 1985, 0, 0,
+    3133, 1856, 0, 0, 3109, 4002, 2283, 0, 0, 0, 4105, 187, 0, 0, 1929,
+    2367, 0, 0, 3757, 0, 845, 1521, 0, 0, 1719, 1103, 3287, 0, 2813, 1345,
+    4445, 3128, 0, 0, 1629, 1909, 1628, 0, 0, 1206, 0, 0, 0, 0, 2835, 681,
+    690, 901, 2977, 2564, 0, 2775, 548, 2437, 4559, 0, 0, 0, 0, 1736, 615,
+    2162, 3107, 1079, 0, 2046, 3020, 4365, 3527, 0, 1791, 0, 560, 0, 0,
+    1693, 0, 1508, 3077, 0, 3861, 3413, 0, 1644, 0, 2261, 0, 0, 4419, 0, 0,
+    0, 0, 1783, 1949, 670, 0, 2807, 0, 3264, 0, 0, 3500, 0, 3809, 0, 3710,
+    2708, 855, 779, 1897, 1327, 0, 89, 414, 0, 0, 0, 4593, 266, 2482, 0, 0,
+    0, 630, 2992, 598, 0, 0, 0, 0, 2746, 1263, 0, 0, 0, 928, 4158, 0, 0, 0,
+    2804, 0, 98, 2895, 1286, 1852, 1606, 0, 760, 3974, 0, 3593, 0, 2401, 0,
+    0, 0, 979, 1479, 0, 2460, 0, 0, 0, 4357, 0, 1179, 1816, 0, 0, 288, 504,
+    680, 1197, 0, 2419, 1491, 3478, 4381, 357, 2773, 0, 857, 0, 0, 0, 2017,
+    0, 0, 0, 41, 2934, 0, 567, 699, 0, 0, 168, 3581, 1598, 0, 4363, 1661,
+    0, 0, 0, 1962, 0, 2193, 0, 0, 0, 0, 0, 0, 654, 2195, 0, 0, 0, 689, 0,
+    30, 418, 0, 3789, 168, 0, 2310, 0, 1482, 1739, 0, 466, 2856, 1317, 0,
+    1474, 413, 0, 0, 203, 3930, 0, 2854, 0, 0, 0, 0, 0, 0, 939, 480, 0, 0,
+    0, 2769, 0, 3083, 322, 0, 0, 2912, 0, 0, 4317, 0, 1978, 0, 2739, 0, 0,
+    1692, 968, 2256, 2834, 2206, 0, 0, 2922, 4496, 0, 2023, 1618, 1558, 0,
+    0, 0, 3103, 0, 117, 0, 0, 1043, 0, 4545, 0, 1017, 3407, 0, 0, 0, 0, 0,
+    0, 0, 3337, 0, 37, 0, 2483, 0, 0, 3015, 0, 388, 4012, 1582, 0, 0, 0,
+    3336, 426, 0, 0, 0, 257, 0, 0, 2599, 0, 4247, 2006, 3047, 0, 2213, 509,
+    0, 0, 0, 4575, 0, 626, 468, 0, 1886, 41, 0, 4401, 1277, 699, 3046,
+    4021, 640, 216, 2983, 0, 0, 0, 0, 0, 512, 0, 0, 0, 3830, 2250, 0, 0, 0,
+    472, 1251, 580, 54, 1885, 752, 0, 2764, 0, 0, 0, 1136, 0, 0, 0, 0, 0,
+    0, 316, 0, 0, 755, 307, 2168, 0, 0, 0, 2039, 0, 1407, 1154, 3271, 317,
+    0, 3901, 0, 0, 3089, 0, 0, 1927, 2173, 2261, 0, 3960, 3945, 0, 0, 0,
+    3262, 0, 2300, 0, 0, 1050, 0, 4371, 263, 4212, 0, 1765, 490, 1231,
+    1733, 386, 3524, 0, 1741, 145, 3981, 0, 4225, 2019, 4364, 0, 362, 1949,
+    0, 0, 0, 0, 3135, 0, 3799, 17, 1898, 0, 0, 0, 1882, 3926, 0, 0, 906,
+    2272, 4078, 0, 0, 0, 1329, 0, 0, 3206, 2808, 1071, 12, 0, 1132, 826,
+    2189, 3585, 1315, 0, 1446, 0, 3355, 0, 0, 0, 0, 3454, 0, 0, 0, 0, 0,
+    1644, 0, 0, 1239, 0, 0, 0, 0, 0, 0, 0, 4270, 1803, 1120, 810, 3997, 0,
+    4208, 856, 0, 432, 0, 0, 0, 1577, 294, 546, 4593, 1840, 3008, 0, 2831,
+    0, 1024, 548, 432, 0, 0, 3271, 0, 0, 0, 743, 4454, 2733, 492, 3608,
+    450, 394, 0, 0, 0, 0, 0, 0, 3649, 3146, 0, 123, 2509, 0, 648, 0, 1140,
+    1576, 2452, 0, 4466, 0, 0, 0, 917, 2554, 2666, 820, 0, 0, 0, 3847,
+    4485, 1720, 0, 3395, 0, 4207, 1646, 0, 0, 3864, 2769, 0, 0, 0, 1922,
+    1148, 1154, 3890, 3356, 0, 4379, 1216, 3140, 3410, 104, 4133, 1961,
+    2117, 2542, 0, 35, 0, 0, 0, 0, 0, 4566, 1392, 78, 0, 0, 0, 0, 1497,
+    1127, 3475, 2131, 0, 1542, 115, 0, 0, 2423, 0, 1085, 0, 4107, 0, 0, 0,
+    670, 0, 0, 727, 3031, 496, 0, 57, 410, 0, 0, 792, 0, 0, 2294, 819,
+    2235, 0, 2932, 0, 0, 1187, 0, 2607, 0, 2644, 2662, 0, 3119, 754, 3518,
+    0, 4450, 2376, 3838, 0, 2746, 0, 0, 0, 2546, 0, 0, 4014, 0, 0, 773,
+    1800, 4341, 167, 557, 2228, 2192, 0, 3800, 0, 0, 0, 452, 0, 1653, 0,
+    3644, 0, 3310, 2402, 2016, 2197, 4126, 0, 49, 1010, 0, 184, 1760, 0, 0,
+    0, 175, 0, 4572, 2257, 0, 10, 0, 3065, 3576, 0, 4364, 0, 3932, 0, 3972,
+    0, 0, 0, 2929, 2748, 0, 777, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3840, 0,
+    3686, 648, 4560, 2355, 0, 3810, 0, 1185, 3316, 0, 0, 0, 499, 114, 1648,
+    0, 0, 200, 755, 1904, 2791, 0, 0, 1895, 203, 324, 3235, 0, 914, 0,
+    2455, 433, 2094, 0, 1912, 1694, 1060, 0, 265, 1272, 3959, 0, 447, 0,
+    1764, 0, 3672, 0, 0, 879, 4279, 0, 4020, 4545, 2515, 0, 2117, 0, 0,
+    3962, 0, 921, 0, 0, 4294, 1896, 0, 2210, 3360, 1577, 0, 0, 0, 3977, 0,
+    0, 1144, 0, 826, 2324, 1132, 2034, 1158, 1135, 946, 956, 239, 0, 0,
+    3569, 3333, 89, 0, 277, 95, 0, 87, 0, 1121, 4175, 4315, 0, 0, 0, 4327,
+    3717, 0, 0, 1816, 0, 0, 1357, 2223, 4018, 402, 0, 2666, 0, 2433, 0, 62,
+    4019, 4126, 0, 2089, 1465, 0, 0, 0, 0, 1865, 2570, 0, 0, 3547, 0, 0,
+    1738, 2306, 0, 2554, 25, 4148, 0, 894, 44, 2761, 1014, 0, 683, 0, 0, 0,
+    0, 3662, 2450, 0, 386, 0, 0, 2787, 3177, 4183, 0, 938, 0, 0, 680, 1290,
+    2558, 2639, 3187, 0, 3103, 0, 3969, 0, 1322, 2924, 0, 2736, 2280, 0, 0,
+    1917, 1812, 203, 0, 0, 0, 2461, 0, 2593, 0, 0, 3621, 0, 1220, 1648,
+    106, 829, 3850, 0, 1075, 0, 606, 0, 0, 0, 0, 0, 0, 1920, 2590, 96,
+    2374, 0, 0, 0, 601, 1893, 954, 0, 4300, 0, 1536, 247, 0, 0, 22, 0,
+    2829, 2555, 4439, 0, 0, 1085, 0, 0, 0, 0, 0, 168, 2604, 2767, 746,
+    3025, 0, 0, 0, 1450, 322, 2587, 0, 3406, 4597, 4511, 4129, 0, 1978, 0,
+    0, 0, 0, 0, 4011, 0, 3285, 1026, 0, 0, 1323, 0, 0, 0, 0, 0, 0, 0, 2385,
+    4525, 4454, 0, 612, 0, 1005, 905, 1176, 4261, 0, 0, 0, 0, 0, 4024, 904,
+    1519, 2375, 1332, 2396, 3030, 3260, 0, 0, 1997, 0, 346, 805, 0, 882, 0,
+    0, 3798, 0, 1445, 3177, 0, 3276, 0, 0, 0, 3708, 1862, 0, 0, 1791, 2259,
+    0, 2541, 2344, 0, 1206, 0, 179, 2055, 0, 2004, 0, 2398, 2566, 4529, 0,
+    0, 4408, 3074, 759, 0, 1870, 2819, 480, 0, 1073, 0, 0, 54, 0, 0, 0,
+    3155, 0, 2157, 2647, 0, 4360, 1175, 0, 0, 0, 0, 1516, 0, 1412, 0, 0, 0,
+    3822, 0, 0, 208, 2376, 0, 0, 2470, 2285, 0, 3535, 0, 0, 0, 2189, 0,
+    3893, 0, 0, 2904, 1834, 0, 2047, 0, 1673, 0, 3400, 444, 2149, 0, 3722,
+    4374, 0, 0, 1765, 32, 0, 1845, 0, 2227, 0, 2218, 1189, 635, 0, 0, 4043,
+    0, 0, 1355, 546, 880, 1232, 0, 0, 979, 1026, 2994, 847, 4444, 1700, 0,
+    715, 2754, 1754, 1593, 2000, 2866, 75, 2984, 0, 3366, 0, 0, 4310, 0, 0,
+    1454, 1314, 2974, 1861, 0, 631, 0, 438, 0, 1356, 1, 0, 1741, 4142, 0,
+    2052, 0, 1413, 4150, 0, 0, 2030, 0, 0, 0, 2107, 3073, 0, 4274, 0, 3454,
+    0, 0, 0, 489, 0, 0, 1406, 240, 0, 4341, 0, 4521, 0, 779, 2086, 0, 147,
+    4363, 0, 1677, 3165, 94, 0, 0, 756, 0, 0, 2489, 0, 0, 348, 0, 2440,
+    3650, 0, 0, 0, 860, 0, 476, 4182, 0, 1660, 2876, 0, 614, 0, 2459, 2348,
+    1300, 869, 0, 0, 4191, 892, 0, 568, 1619, 1407, 0, 2008, 3378, 3560,
+    671, 0, 0, 1195, 2593, 1701, 0, 1066, 1386, 2346, 0, 157, 0, 1385, 0,
+    1539, 0, 4037, 0, 876, 470, 0, 0, 3501, 0, 2981, 0, 2518, 1965, 714,
+    742, 0, 1146, 4523, 925, 1750, 0, 793, 1214, 0, 0, 0, 986, 0, 1419, 0,
+    422, 0, 0, 3102, 0, 0, 1161, 0, 0, 1922, 384, 3114, 1338, 673, 2544,
+    1178, 0, 2655, 0, 0, 2115, 0, 0, 1186, 0, 1442, 0, 0, 1481, 0, 1249,
+    2298, 0, 654, 0, 2037, 2897, 44, 0, 980, 0, 2331, 237, 1433, 3625,
+    3499, 0, 0, 0, 0, 3647, 0, 4314, 0, 0, 3036, 2163, 0, 1508, 0, 0, 0,
+    3902, 1316, 0, 4039, 221, 2193, 0, 4408, 0, 2270, 1942, 0, 926, 0,
+    1357, 3155, 370, 3727, 2686, 486, 0, 2195, 0, 3232, 0, 2638, 3788, 0,
+    0, 4468, 0, 301, 2376, 1629, 0, 2617, 0, 0, 0, 0, 3051, 0, 0, 0, 2993,
+    1215, 1858, 2975, 2521, 3692, 0, 0, 0, 3415, 330, 0, 0, 0, 3843, 863,
+    783, 0, 1169, 0, 1959, 0, 1170, 0, 141, 962, 4052, 3117, 2148, 1529, 0,
+    2295, 199, 679, 1686, 0, 0, 0, 0, 0, 3989, 134, 0, 2985, 0, 2368, 1163,
+    0, 3044, 0, 0, 2082, 2087, 2363, 927, 1803, 2273, 0, 2139, 1758, 558,
+    2097, 3701, 2157, 0, 1072, 2318, 384, 697, 926, 0, 45, 4570, 1136, 0,
+    0, 0, 0, 1262, 131, 0, 1221, 509, 0, 0, 0, 2424, 2271, 0, 3312, 1760,
+    0, 3206, 1726, 0, 0, 0, 1191, 4271, 0, 1232, 1865, 0, 4273, 2759, 0,
+    73, 4001, 914, 1791, 0, 0, 0, 780, 2128, 4578, 2457, 718, 640, 0, 0,
+    4459, 2308, 0, 0, 1829, 786, 2262, 4353, 2218, 1066, 0, 3008, 0, 0,
+    1472, 413, 3432, 2224, 0, 928, 1456, 366, 0, 1833, 1960, 461, 401, 0,
+    1153, 4573, 4279, 0, 955, 0, 452, 0, 3923, 4321, 982, 0, 2740, 2306,
+    4436, 505, 475, 0, 0, 2155, 618, 2209, 0, 2294, 1073, 4372, 1727, 637,
+    3760, 1622, 0, 0, 1132, 24, 3006, 1848, 0, 0, 0, 2214, 498, 41, 0, 0,
+    0, 0, 1243, 0, 0, 0, 1408, 0, 1267, 590, 893, 3099, 219, 4387, 2079,
+    1046, 741, 1263, 0, 1591, 729, 4048, 4089, 0, 0, 0, 0, 4356, 1404,
+    4137, 0, 2006, 532, 4260, 2539, 0, 0, 3768, 0, 1365, 3632, 667, 0, 0,
+    0, 575, 1056, 0, 1940, 4403, 2407, 542, 477, 1672, 0, 0, 2115, 194,
+    1223, 3127, 232, 806, 1427, 465, 0, 1084, 4353, 1867, 2110, 916, 0, 0,
+    0, 189, 0, 0, 0, 1027, 0, 1941, 0, 507, 1250, 186, 0, 806, 1551, 0, 0,
+    3379, 0, 3241, 1046, 0, 0, 0, 4397, 0, 1879, 0, 0, 0, 1307, 500, 0,
+    269, 3410, 0, 0, 1704, 4066, 0, 1658, 0, 0, 2145, 0, 0, 67, 2385, 0,
+    2870, 1720, 3313, 135, 422, 3949, 416, 0, 0, 0, 0, 2383, 4498, 274,
+    3732, 4606, 1790, 4026, 455, 1208, 0, 0, 0, 1435, 4443, 1809, 688,
+    1261, 2208, 1162, 3110, 983, 614, 956, 0, 0, 2359, 546, 0, 1757, 1323,
+    3127, 1460, 1960, 0, 1618, 3415, 2671, 0, 0, 0, 0, 0, 1309, 4469, 3190,
+    0, 91, 1713, 0, 2493, 0, 3447, 3135, 756, 0, 1771, 83, 3691, 639, 0, 0,
+    1540, 0, 0, 1238, 901, 1278, 2740, 0, 1178, 0, 0, 763, 766, 198, 0,
+    1387, 953, 1489, 0, 0, 0, 0, 0, 2303, 223, 976, 0, 0, 4245, 307, 157,
+    1206, 1274, 0, 308, 0, 2383, 1239, 2282, 2427, 1263, 728, 0, 0, 0,
+    3416, 554, 3315, 676, 32, 2314, 3964, 2787, 0, 990, 94, 0, 2503, 0,
+    649, 4520, 2460, 1954, 1970, 0, 2239, 10, 2262, 489, 2114, 0, 4069,
+    1359, 0, 0, 0, 2238, 1574, 513, 778, 0, 1481, 1306, 2154, 1524, 0,
+    1874, 2319, 876, 3874, 803, 0, 0, 0, 791, 0, 2170, 4415, 932, 0, 43,
+    18, 1742, 0, 2177, 1260, 1831, 1251, 1863, 770, 236, 1431, 0, 0, 0,
+    2079, 2232, 1549, 0, 2576, 0, 259, 0, 621, 1145, 0, 82, 558, 1493, 0,
+    0, 0, 0, 0, 0, 268, 1885, 2256, 244, 0, 4446, 3820, 0, 0, 0, 378, 0,
+    1501, 0, 0, 0, 1514, 3959, 1176, 0, 672, 2850, 3333, 2604, 1491, 0,
+    168, 0, 0, 166, 0, 0, 232, 0, 0, 2038, 107, 72, 0, 1934, 548, 1752,
+    521, 686, 3319, 1870, 0, 908, 2282, 3795, 2507, 3130, 3193, 0, 718,
+    1719, 2524, 1009, 3547, 4434, 0, 2226, 1467, 2434, 0, 1492, 1703, 3906,
+    0, 3136, 0, 0, 0, 1982, 4083, 0, 0, 678, 4376, 820, 0, 1824, 1878,
+    4547, 3898, 0, 2474, 0, 3527, 0, 0, 0, 4300, 1984, 0, 1538, 609, 1871,
+    1057, 91, 754, 3623, 0, 81, 650, 0, 0, 0, 2511, 3336, 2943, 645, 582,
+    1540, 234, 3076, 0, 0, 0, 1182, 1626, 0, 135, 0, 0, 1070, 593, 3974,
+    1201, 3010, 841, 789, 2161, 0, 170, 0, 694, 0, 173, 1625, 151, 0, 74,
+    1739, 1396, 1562, 1660, 983, 0, 0, 4372, 795, 710, 1229, 0, 851, 0,
+    1560, 0, 1068, 864, 4015, 0, 0, 0, 1379, 2130, 1248, 2249, 1779, 0, 0,
+    2458, 0, 1571, 0, 0, 2801, 0, 1031, 2097, 0, 0, 0, 970, 2887, 3117,
+    3683, 0, 605, 1252, 2635, 561, 237, 0, 3399, 1219, 0, 0, 4338, 1551,
+    2682, 0, 0, 3866, 876, 2472, 1606, 3122, 4141, 0, 0, 1156, 1675, 0, 0,
+    2339, 0, 1178, 2992, 0, 481, 0, 1442, 2412, 0, 0, 0, 459, 0, 1969, 0,
+    1780, 1322, 2942, 0, 3040, 0, 100, 938, 1780, 0, 2221, 516, 803, 2692,
+    121, 0, 3620, 1321, 0, 324, 4171, 956, 1553, 4184, 2462, 3604, 411, 0,
+    1797, 0, 3767, 0, 343, 0, 4420, 4463, 2887, 139, 2146, 0, 1171, 921,
+    2470, 4567, 0, 895, 63, 4295, 915, 108, 0, 2499, 1618, 189, 508, 2479,
+    691, 0, 4492, 4387, 575, 0, 139, 1520, 0, 2553, 2328, 0, 0, 4163, 1443,
+    1328, 0, 0, 0, 98, 0, 1063, 0, 281, 2373, 1958, 0, 0, 2523, 0, 3045, 0,
+    3401, 905, 0, 0, 1459, 0, 2542, 1401, 4036, 0, 3986, 3804, 0, 448,
+    4199, 2354, 0, 0, 737, 875, 579, 3407, 2269, 3386, 3526, 856, 4502,
+    293, 4206, 1128, 0, 0, 4575, 0, 3408, 665, 0, 0, 0, 1975, 3768, 0, 895,
+    0, 4265, 0, 1137, 0, 1550, 2075, 1644, 375, 4072, 1565, 2881, 2203,
+    1994, 0, 2963, 0, 0, 768, 1782, 2777, 451, 673, 0, 944, 2569, 3292,
+    1887, 0, 0, 3424, 1252, 1678, 0, 4009, 4450, 0, 1854, 934, 2056, 3595,
+    0, 0, 1721, 2411, 474, 4124, 0, 3968, 0, 0, 0, 0, 3712, 2639, 4503,
+    266, 0, 683, 3452, 0, 2561, 2601, 0, 0, 0, 0, 0, 4449, 2045, 906, 0, 0,
+    0, 694, 785, 1675, 1568, 770, 0, 1077, 1802, 2977, 323, 2499, 0, 2224,
+    768, 0, 3199, 994, 0, 1415, 1651, 0, 4050, 3810, 1445, 0, 4008, 2352,
+    1227, 0, 0, 0, 1558, 0, 0, 3892, 1681, 2935, 3854, 0, 331, 1822, 0, 0,
+    0, 3075, 2244, 3397, 3740, 3817, 0, 887, 4000, 0, 0, 3958, 2295, 153,
+    2381, 841, 0, 4387, 0, 749, 0, 1102, 292, 2236, 0, 64, 4080, 4079,
+    2156, 1635, 0, 2280, 0, 4071, 3890, 0, 2728, 0, 2321, 0, 1329, 280,
+    2511, 0, 4325, 945, 0, 0, 1492, 1409, 3620, 3209, 4206, 0, 2380, 0,
+    3329, 0, 0, 595, 1188, 0, 355, 3644, 4412, 907, 2500, 0, 2756, 994,
+    4396, 0, 0, 2526, 2188, 0, 1071, 0, 3025, 2109, 0, 3108, 4118, 1275,
+    455, 0, 2185, 2656, 0, 4048, 1177, 0, 1783, 954, 0, 3029, 0, 0, 37, 0,
+    4485, 1684, 4352, 3102, 3215, 1982, 897, 0, 0, 217, 407, 2090, 0, 1018,
+    0, 2242, 0, 0, 4484, 243, 3005, 599, 0, 2170, 1477, 1183, 2268, 2219,
+    3091, 0, 0, 658, 922, 1663, 2237, 2354, 2133, 0, 1447, 0, 0, 0, 0,
+    2373, 1235, 0, 1254, 999, 481, 1986, 1841, 1749, 0, 2996, 0, 4305, 668,
+    4457, 0, 402, 0, 2073, 2492, 0, 1907, 0, 547, 3906, 1385, 4301, 610,
+    3710, 0, 4109, 662, 0, 0, 908, 973, 0, 0, 3643, 2278, 1562, 3749, 2077,
+    2, 1579, 0, 2054, 0, 255, 1572, 2428, 0, 0, 1245, 0, 2011, 2162, 0,
+    4464, 3666, 734, 0, 1410, 1654, 938, 0, 2308, 2319, 1105, 0, 1875, 0,
+    0, 1284, 2051, 1823, 0, 0, 0, 2044, 1989, 0, 0, 0, 2765, 0, 959, 2179,
+    1357, 2221, 0, 1178, 940, 776, 0, 0, 0, 2301, 0, 0, 1552, 1569, 1563,
+    2304, 0, 0, 2184, 0, 0, 1947, 250, 3985, 721, 2529, 0, 2484, 4077,
+    4190, 0, 0, 1330, 1155, 0, 0, 0, 1992, 1076, 0, 3109, 4209, 0, 1053,
+    1634, 0, 0, 2301, 1000, 846, 1990, 0, 3692, 891, 1498, 0, 1717, 1379,
+    0, 1602, 0, 0, 4296, 1184, 551, 3740, 0, 0, 0, 0, 3978, 0, 2819, 0,
+    798, 3737, 455, 455, 0, 868, 1172, 534, 1667, 1743, 259, 807, 185, 0,
+    691, 1809, 1818, 0, 2555, 3932, 0, 3603, 652, 3316, 406, 0, 4370, 2502,
+    0, 953, 1012, 0, 0, 1531, 405, 2297, 1287, 3925, 4421, 1211, 126, 0,
+    2239, 0, 2856, 3085, 0, 1565, 1837, 0, 4337, 0, 800, 4515, 4339, 0,
+    2503, 321, 1097, 76, 4378, 1654, 0, 0, 0, 0, 580, 760, 3993, 1708,
+    1048, 3113, 2204, 0, 0, 1478, 0, 1773, 0, 511, 1074, 2864, 0, 325, 0,
+    0, 0, 1611, 1410, 292, 0, 1106, 792, 215, 2126, 3979, 0, 2162, 0, 0,
+    1589, 888, 3080, 0, 370, 633, 0, 1925, 697, 2439, 1248, 1495, 2064, 0,
+    2557, 2312, 962, 4295, 1003, 0, 443, 0, 0, 0, 0, 1868, 3881, 0, 627, 0,
+    0, 2475, 0, 149, 2594, 3913, 427, 987, 0, 0, 1895, 548, 0, 0, 0, 0,
+    3841, 4400, 0, 1167, 1544, 3890, 904, 1509, 0, 327, 0, 0, 0, 0, 0,
+    1927, 1072, 0, 1020, 1417, 0, 2159, 0, 0, 0, 1488, 1053, 2508, 2253,
+    1070, 3787, 0, 1152, 0, 2926, 0, 0, 760, 62, 3666, 519, 2472, 2194,
+    1075, 3738, 786, 2312, 2225, 3012, 0, 0, 1963, 2184, 0, 0, 0, 0, 4377,
+    0, 4572, 2177, 4048, 0, 273, 3854, 0, 1722, 3730, 0, 345, 2198, 491, 0,
+    3223, 1644, 0, 318, 0, 0, 3276, 888, 21, 2501, 147, 0, 362, 3764, 0,
+    1434, 2518, 0, 0, 2196, 0, 0, 2302, 0, 1924, 0, 1452, 1322, 1938, 429,
+    2339, 0, 0, 1505, 0, 1108, 1526, 0, 0, 2565, 1295, 0, 3120, 0, 1576, 0,
+    1969, 0, 3235, 1777, 0, 436, 3493, 3407, 129, 4595, 1234, 0, 0, 1506,
+    2927, 4450, 0, 0, 231, 0, 2147, 2221, 0, 0, 3140, 3899, 0, 918, 0, 322,
+    3241, 2195, 596, 3441, 0, 1030, 1415, 0, 1457, 262, 1752, 3006, 0,
+    1991, 2081, 450, 320, 4468, 90, 119, 1462, 1115, 4372, 1478, 2432, 0,
+    1711, 3502, 47, 171, 27, 0, 1910, 4095, 4045, 0, 1530, 1386, 889, 1749,
+    2521, 0, 1211, 3177, 84, 860, 0, 0, 3532, 3302, 4243, 0, 0, 0, 0, 11,
+    0, 425, 0, 0, 1810, 4403, 170, 4534, 912, 121, 73, 1694, 1715, 1085, 0,
+    1211, 0, 1499, 2300, 0, 0, 0, 1155, 1482, 2392, 0, 2460, 44, 4257,
+    2192, 4279, 351, 4530, 0, 2947, 323, 441, 483, 1916, 2100, 136, 1619,
+    0, 2554, 0, 139, 3717, 0, 0, 2871, 4598, 4345, 3350, 377, 1592, 1126,
+    0, 3052, 330, 481, 0, 4228, 1776, 870, 0, 1589, 381, 742, 0, 2092, 0,
+    0, 67, 2552, 2961, 387, 0, 1513, 85, 0, 0, 0, 0, 0, 0, 497, 2744, 971,
+    3547, 890, 1655, 965, 0, 1978, 158, 1617, 0, 0, 2083, 0, 2133, 2142, 0,
+    122, 1918, 1517, 0, 420, 3896, 249, 4537, 3582, 2197, 0, 2269, 0, 0, 0,
+    3428, 0, 712, 0, 0, 0, 1990, 118, 0, 0, 0, 2158, 632, 1421, 4020, 2618,
+    0, 2551, 0, 1139, 853, 3202, 1747, 2556, 0, 0, 0, 1076, 1601, 3316,
+    2248, 2735, 331, 983, 2943, 1849, 0, 4239, 616, 854, 2714, 0, 71, 0, 0,
+    1699, 823, 1106, 2374, 696, 1427, 758, 3450, 2227, 651, 2022, 1777,
+    1485, 0, 3073, 4168, 4468, 0, 3297, 2232, 146, 2062, 2069, 1607, 2020,
+    0, 1111, 252, 807, 499, 19, 2068, 0, 859, 0, 2456, 0, 226, 2014, 4336,
+    3076, 1354, 2190, 1141, 4335, 0, 0, 0, 626, 1445, 0, 1323, 93, 551, 0,
+    3766, 3094, 4130, 0, 802, 851, 4357, 210, 4348, 155, 2173, 3068, 0,
+    576, 1015, 0, 1207, 0, 650, 1510, 0, 393, 4434, 0, 0, 2486, 0, 0, 881,
+    545, 1619, 2522, 0, 13, 0, 1439, 1072, 4538, 141, 875, 363, 3108, 1639,
+    2093, 1683, 0, 0, 1275, 1380, 0, 0, 2250, 1671, 383, 0, 735, 2113, 246,
+    0, 2571, 0, 0, 63, 4169, 2381, 0, 0, 0, 270, 0, 0, 0, 0, 597, 0, 1445,
+    161, 3611, 517, 858, 2565, 0, 898, 3906, 0, 724, 3848, 1292, 588, 4288,
+    0, 4289, 0, 2040, 4461, 2488, 902, 0, 1553, 4434, 0, 1634, 1660, 0,
+    227, 680, 351, 134, 0, 721, 552, 0, 0, 350, 2106, 2361, 1161, 0, 3509,
+    0, 2066, 3599, 2713, 0, 0, 0, 958, 0, 3985, 2235, 0, 3484, 1526, 0,
+    3997, 3856, 3705, 0, 1114, 478, 3496, 0, 2065, 1798, 0, 438, 2183,
+    3691, 2138, 0, 4347, 2773, 1812, 634, 653, 1352, 1167, 2857, 3336, 669,
+    0, 3571, 0, 0, 0, 4331, 1078, 3414, 321, 0, 1168, 605, 0, 0, 3475, 514,
+    3183, 0, 2396, 2752, 0, 0, 707, 502, 581, 861, 1139, 220, 0, 0, 2153,
+    0, 720, 3989, 588, 0, 0, 375, 1656, 0, 3602, 2160, 3452, 3644, 3271,
+    1107, 0, 1209, 0, 0, 1491, 0, 1956, 936, 3001, 0, 673, 3628, 0, 549,
+    166, 0, 0, 1052, 1940, 80, 4319, 817, 2753, 4416, 2497, 453, 3395,
+    2372, 0, 0, 0, 0, 3332, 0, 0, 4077, 695, 0, 112, 1483, 1263, 3434,
+    2098, 2184, 2076, 2041, 1784, 0, 2750, 1463, 1172, 1700, 629, 728,
+    1930, 1906, 397, 3282, 0, 1192, 4395, 1937, 4085, 2044, 0, 634, 201, 0,
+    0, 1702, 3943, 0, 0, 252, 1346, 3797, 2283, 0, 3054, 0, 1616, 0, 0,
+    352, 1218, 0, 748, 3804, 0, 0, 1573, 3709, 189, 894, 695, 4152, 3200,
+    0, 1870, 587, 0, 617, 2304, 715, 1375, 1033, 0, 0, 1555, 296, 620, 0,
+    3252, 406, 1015, 3277, 0, 4545, 6, 1495, 0
 };
 
 static size_t
@@ -2871,16 +2892,16 @@ keysym_name_hash_f(const char *key, const char *T)
     size_t sum = 0;
     for (size_t i = 0; key[i] != '\0'; i++)
         sum += T[i % 32] * key[i];
-    return sum % 4578;
+    return sum % 4612;
 }
 
 static size_t
 keysym_name_perfect_hash(const char *key)
 {
     return (
-        keysym_name_G[keysym_name_hash_f(key, "i8oQPmKYkIetcNLKtoDCVlX1nn1CvPDv")] +
-        keysym_name_G[keysym_name_hash_f(key, "h7H8UeXN09yUJyoQcJxwuidtVj4cA0a7")]
-    ) % 4578;
+        keysym_name_G[keysym_name_hash_f(key, "kGpyFyaH2vL17QkpsHYTxpmPRdRQGX1d")] +
+        keysym_name_G[keysym_name_hash_f(key, "bvkOjMVxdRlqBmcnPnEdGTGOrfAJmDxh")]
+    ) % 4612;
 }
 
 
@@ -3630,1839 +3651,1857 @@ static const struct name_keysym name_to_keysym[] = {
     { 0x0000fe56, 10537 }, /* dead_abovedot */
     { 0x0000fe65, 10551 }, /* dead_abovereversedcomma */
     { 0x0000fe58, 10575 }, /* dead_abovering */
-    { 0x0000fe91, 10590 }, /* dead_aboveverticalline */
-    { 0x0000fe51, 10613 }, /* dead_acute */
-    { 0x0000fe6b, 10624 }, /* dead_belowbreve */
-    { 0x0000fe69, 10640 }, /* dead_belowcircumflex */
-    { 0x0000fe6e, 10661 }, /* dead_belowcomma */
-    { 0x0000fe6c, 10677 }, /* dead_belowdiaeresis */
-    { 0x0000fe60, 10697 }, /* dead_belowdot */
-    { 0x0000fe68, 10711 }, /* dead_belowmacron */
-    { 0x0000fe67, 10728 }, /* dead_belowring */
-    { 0x0000fe6a, 10743 }, /* dead_belowtilde */
-    { 0x0000fe92, 10759 }, /* dead_belowverticalline */
-    { 0x0000fe55, 10782 }, /* dead_breve */
-    { 0x0000fe8b, 10793 }, /* dead_capital_schwa */
-    { 0x0000fe5a, 10812 }, /* dead_caron */
-    { 0x0000fe5b, 10823 }, /* dead_cedilla */
-    { 0x0000fe52, 10836 }, /* dead_circumflex */
-    { 0x0000fe6f, 10852 }, /* dead_currency */
-    { 0x0000fe65, 10866 }, /* dead_dasia */
-    { 0x0000fe57, 10877 }, /* dead_diaeresis */
-    { 0x0000fe59, 10892 }, /* dead_doubleacute */
-    { 0x0000fe66, 10909 }, /* dead_doublegrave */
-    { 0x0000fe82, 10926 }, /* dead_e */
-    { 0x0000fe83, 10933 }, /* dead_E */
-    { 0x0000fe50, 10940 }, /* dead_grave */
-    { 0x0000fe8c, 10951 }, /* dead_greek */
-    { 0x0000fe61, 10962 }, /* dead_hook */
-    { 0x0000fe62, 10972 }, /* dead_horn */
-    { 0x0000fe84, 10982 }, /* dead_i */
-    { 0x0000fe85, 10989 }, /* dead_I */
-    { 0x0000fe6d, 10996 }, /* dead_invertedbreve */
-    { 0x0000fe5d, 11015 }, /* dead_iota */
-    { 0x0000fe93, 11025 }, /* dead_longsolidusoverlay */
-    { 0x0000fe90, 11049 }, /* dead_lowline */
-    { 0x0000fe54, 11062 }, /* dead_macron */
-    { 0x0000fe86, 11074 }, /* dead_o */
-    { 0x0000fe87, 11081 }, /* dead_O */
-    { 0x0000fe5c, 11088 }, /* dead_ogonek */
-    { 0x0000fe53, 11100 }, /* dead_perispomeni */
-    { 0x0000fe64, 11117 }, /* dead_psili */
-    { 0x0000fe5f, 11128 }, /* dead_semivoiced_sound */
-    { 0x0000fe8a, 11150 }, /* dead_small_schwa */
-    { 0x0000fe63, 11167 }, /* dead_stroke */
-    { 0x0000fe53, 11179 }, /* dead_tilde */
-    { 0x0000fe88, 11190 }, /* dead_u */
-    { 0x0000fe89, 11197 }, /* dead_U */
-    { 0x0000fe5e, 11204 }, /* dead_voiced_sound */
-    { 0x00000abd, 11222 }, /* decimalpoint */
-    { 0x000000b0, 11235 }, /* degree */
-    { 0x0000ffff, 11242 }, /* Delete */
-    { 0x1000ff73, 11249 }, /* DeleteChar */
-    { 0x1000ff71, 11260 }, /* DeleteLine */
-    { 0x1000fe60, 11271 }, /* Dgrave_accent */
-    { 0x000000a8, 11285 }, /* diaeresis */
-    { 0x00000aed, 11295 }, /* diamond */
-    { 0x00000aa5, 11303 }, /* digitspace */
-    { 0x0100222c, 11314 }, /* dintegral */
-    { 0x000000f7, 11324 }, /* division */
-    { 0x00000024, 11333 }, /* dollar */
-    { 0x010020ab, 11340 }, /* DongSign */
-    { 0x00000aaf, 11349 }, /* doubbaselinedot */
-    { 0x000001bd, 11365 }, /* doubleacute */
-    { 0x00000af2, 11377 }, /* doubledagger */
-    { 0x00000afe, 11390 }, /* doublelowquotemark */
-    { 0x0000ff54, 11409 }, /* Down */
-    { 0x000008fe, 11414 }, /* downarrow */
-    { 0x00000ba8, 11424 }, /* downcaret */
-    { 0x00000bd6, 11434 }, /* downshoe */
-    { 0x00000bc4, 11443 }, /* downstile */
-    { 0x00000bc2, 11453 }, /* downtack */
-    { 0x1000ff00, 11462 }, /* DRemove */
-    { 0x1000feb0, 11470 }, /* Dring_accent */
-    { 0x000001d0, 11483 }, /* Dstroke */
-    { 0x000001f0, 11491 }, /* dstroke */
-    { 0x1000fe7e, 11499 }, /* Dtilde */
-    { 0x00000045, 11506 }, /* E */
-    { 0x00000065, 11508 }, /* e */
-    { 0x000003cc, 11510 }, /* Eabovedot */
-    { 0x000003ec, 11520 }, /* eabovedot */
-    { 0x000000c9, 11530 }, /* Eacute */
-    { 0x000000e9, 11537 }, /* eacute */
-    { 0x01001eb8, 11544 }, /* Ebelowdot */
-    { 0x01001eb9, 11554 }, /* ebelowdot */
-    { 0x000001cc, 11564 }, /* Ecaron */
-    { 0x000001ec, 11571 }, /* ecaron */
-    { 0x000000ca, 11578 }, /* Ecircumflex */
-    { 0x000000ea, 11590 }, /* ecircumflex */
-    { 0x01001ebe, 11602 }, /* Ecircumflexacute */
-    { 0x01001ebf, 11619 }, /* ecircumflexacute */
-    { 0x01001ec6, 11636 }, /* Ecircumflexbelowdot */
-    { 0x01001ec7, 11656 }, /* ecircumflexbelowdot */
-    { 0x01001ec0, 11676 }, /* Ecircumflexgrave */
-    { 0x01001ec1, 11693 }, /* ecircumflexgrave */
-    { 0x01001ec2, 11710 }, /* Ecircumflexhook */
-    { 0x01001ec3, 11726 }, /* ecircumflexhook */
-    { 0x01001ec4, 11742 }, /* Ecircumflextilde */
-    { 0x01001ec5, 11759 }, /* ecircumflextilde */
-    { 0x010020a0, 11776 }, /* EcuSign */
-    { 0x000000cb, 11784 }, /* Ediaeresis */
-    { 0x000000eb, 11795 }, /* ediaeresis */
-    { 0x000000c8, 11806 }, /* Egrave */
-    { 0x000000e8, 11813 }, /* egrave */
-    { 0x01001eba, 11820 }, /* Ehook */
-    { 0x01001ebb, 11826 }, /* ehook */
-    { 0x01002088, 11832 }, /* eightsubscript */
-    { 0x01002078, 11847 }, /* eightsuperior */
-    { 0x0000ff2f, 11861 }, /* Eisu_Shift */
-    { 0x0000ff30, 11872 }, /* Eisu_toggle */
-    { 0x01002208, 11884 }, /* elementof */
-    { 0x00000aae, 11894 }, /* ellipsis */
-    { 0x00000aa3, 11903 }, /* em3space */
-    { 0x00000aa4, 11912 }, /* em4space */
-    { 0x000003aa, 11921 }, /* Emacron */
-    { 0x000003ba, 11929 }, /* emacron */
-    { 0x00000aa9, 11937 }, /* emdash */
-    { 0x00000ade, 11944 }, /* emfilledcircle */
-    { 0x00000adf, 11959 }, /* emfilledrect */
-    { 0x00000ace, 11972 }, /* emopencircle */
-    { 0x00000acf, 11985 }, /* emopenrectangle */
-    { 0x01002205, 12001 }, /* emptyset */
-    { 0x00000aa1, 12010 }, /* emspace */
-    { 0x0000ff57, 12018 }, /* End */
-    { 0x00000aaa, 12022 }, /* endash */
-    { 0x00000ae6, 12029 }, /* enfilledcircbullet */
-    { 0x00000ae7, 12048 }, /* enfilledsqbullet */
-    { 0x000003bd, 12065 }, /* ENG */
-    { 0x000003bf, 12069 }, /* eng */
-    { 0x00000ae0, 12073 }, /* enopencircbullet */
-    { 0x00000ae1, 12090 }, /* enopensquarebullet */
-    { 0x00000aa2, 12109 }, /* enspace */
-    { 0x000001ca, 12117 }, /* Eogonek */
-    { 0x000001ea, 12125 }, /* eogonek */
-    { 0x0000003d, 12133 }, /* equal */
-    { 0x0000ff1b, 12139 }, /* Escape */
-    { 0x000000d0, 12146 }, /* ETH */
-    { 0x000000d0, 12150 }, /* Eth */
-    { 0x000000f0, 12154 }, /* eth */
-    { 0x01001ebc, 12158 }, /* Etilde */
-    { 0x01001ebd, 12165 }, /* etilde */
-    { 0x000020ac, 12172 }, /* EuroSign */
-    { 0x00000021, 12181 }, /* exclam */
-    { 0x000000a1, 12188 }, /* exclamdown */
-    { 0x0000ff62, 12199 }, /* Execute */
-    { 0x1000ff76, 12207 }, /* Ext16bit_L */
-    { 0x1000ff77, 12218 }, /* Ext16bit_R */
-    { 0x010001b7, 12229 }, /* EZH */
-    { 0x01000292, 12233 }, /* ezh */
-    { 0x00000046, 12237 }, /* F */
-    { 0x00000066, 12239 }, /* f */
-    { 0x0000ffbe, 12241 }, /* F1 */
-    { 0x0000ffc7, 12244 }, /* F10 */
-    { 0x0000ffc8, 12248 }, /* F11 */
-    { 0x0000ffc9, 12252 }, /* F12 */
-    { 0x0000ffca, 12256 }, /* F13 */
-    { 0x0000ffcb, 12260 }, /* F14 */
-    { 0x0000ffcc, 12264 }, /* F15 */
-    { 0x0000ffcd, 12268 }, /* F16 */
-    { 0x0000ffce, 12272 }, /* F17 */
-    { 0x0000ffcf, 12276 }, /* F18 */
-    { 0x0000ffd0, 12280 }, /* F19 */
-    { 0x0000ffbf, 12284 }, /* F2 */
-    { 0x0000ffd1, 12287 }, /* F20 */
-    { 0x0000ffd2, 12291 }, /* F21 */
-    { 0x0000ffd3, 12295 }, /* F22 */
-    { 0x0000ffd4, 12299 }, /* F23 */
-    { 0x0000ffd5, 12303 }, /* F24 */
-    { 0x0000ffd6, 12307 }, /* F25 */
-    { 0x0000ffd7, 12311 }, /* F26 */
-    { 0x0000ffd8, 12315 }, /* F27 */
-    { 0x0000ffd9, 12319 }, /* F28 */
-    { 0x0000ffda, 12323 }, /* F29 */
-    { 0x0000ffc0, 12327 }, /* F3 */
-    { 0x0000ffdb, 12330 }, /* F30 */
-    { 0x0000ffdc, 12334 }, /* F31 */
-    { 0x0000ffdd, 12338 }, /* F32 */
-    { 0x0000ffde, 12342 }, /* F33 */
-    { 0x0000ffdf, 12346 }, /* F34 */
-    { 0x0000ffe0, 12350 }, /* F35 */
-    { 0x0000ffc1, 12354 }, /* F4 */
-    { 0x0000ffc2, 12357 }, /* F5 */
-    { 0x0000ffc3, 12360 }, /* F6 */
-    { 0x0000ffc4, 12363 }, /* F7 */
-    { 0x0000ffc5, 12366 }, /* F8 */
-    { 0x0000ffc6, 12369 }, /* F9 */
-    { 0x01001e1e, 12372 }, /* Fabovedot */
-    { 0x01001e1f, 12382 }, /* fabovedot */
-    { 0x010006f0, 12392 }, /* Farsi_0 */
-    { 0x010006f1, 12400 }, /* Farsi_1 */
-    { 0x010006f2, 12408 }, /* Farsi_2 */
-    { 0x010006f3, 12416 }, /* Farsi_3 */
-    { 0x010006f4, 12424 }, /* Farsi_4 */
-    { 0x010006f5, 12432 }, /* Farsi_5 */
-    { 0x010006f6, 12440 }, /* Farsi_6 */
-    { 0x010006f7, 12448 }, /* Farsi_7 */
-    { 0x010006f8, 12456 }, /* Farsi_8 */
-    { 0x010006f9, 12464 }, /* Farsi_9 */
-    { 0x010006cc, 12472 }, /* Farsi_yeh */
-    { 0x00000af8, 12482 }, /* femalesymbol */
-    { 0x000009e3, 12495 }, /* ff */
-    { 0x010020a3, 12498 }, /* FFrancSign */
-    { 0x00000abb, 12509 }, /* figdash */
-    { 0x00000adc, 12517 }, /* filledlefttribullet */
-    { 0x00000adb, 12537 }, /* filledrectbullet */
-    { 0x00000add, 12554 }, /* filledrighttribullet */
-    { 0x00000ae9, 12575 }, /* filledtribulletdown */
-    { 0x00000ae8, 12595 }, /* filledtribulletup */
-    { 0x0000ff68, 12613 }, /* Find */
-    { 0x0000fed0, 12618 }, /* First_Virtual_Screen */
-    { 0x00000ac5, 12639 }, /* fiveeighths */
-    { 0x00000ab7, 12651 }, /* fivesixths */
-    { 0x01002085, 12662 }, /* fivesubscript */
-    { 0x01002075, 12676 }, /* fivesuperior */
-    { 0x00000ab5, 12689 }, /* fourfifths */
-    { 0x01002084, 12700 }, /* foursubscript */
-    { 0x01002074, 12714 }, /* foursuperior */
-    { 0x0100221c, 12727 }, /* fourthroot */
-    { 0x000008f6, 12738 }, /* function */
-    { 0x00000047, 12747 }, /* G */
-    { 0x00000067, 12749 }, /* g */
-    { 0x000002d5, 12751 }, /* Gabovedot */
-    { 0x000002f5, 12761 }, /* gabovedot */
-    { 0x000002ab, 12771 }, /* Gbreve */
-    { 0x000002bb, 12778 }, /* gbreve */
-    { 0x010001e6, 12785 }, /* Gcaron */
-    { 0x010001e7, 12792 }, /* gcaron */
-    { 0x000003ab, 12799 }, /* Gcedilla */
-    { 0x000003bb, 12808 }, /* gcedilla */
-    { 0x000002d8, 12817 }, /* Gcircumflex */
-    { 0x000002f8, 12829 }, /* gcircumflex */
-    { 0x010010d0, 12841 }, /* Georgian_an */
-    { 0x010010d1, 12853 }, /* Georgian_ban */
-    { 0x010010ea, 12866 }, /* Georgian_can */
-    { 0x010010ed, 12879 }, /* Georgian_char */
-    { 0x010010e9, 12893 }, /* Georgian_chin */
-    { 0x010010ec, 12907 }, /* Georgian_cil */
-    { 0x010010d3, 12920 }, /* Georgian_don */
-    { 0x010010d4, 12933 }, /* Georgian_en */
-    { 0x010010f6, 12945 }, /* Georgian_fi */
-    { 0x010010d2, 12957 }, /* Georgian_gan */
-    { 0x010010e6, 12970 }, /* Georgian_ghan */
-    { 0x010010f0, 12984 }, /* Georgian_hae */
-    { 0x010010f4, 12997 }, /* Georgian_har */
-    { 0x010010f1, 13010 }, /* Georgian_he */
-    { 0x010010f2, 13022 }, /* Georgian_hie */
-    { 0x010010f5, 13035 }, /* Georgian_hoe */
-    { 0x010010d8, 13048 }, /* Georgian_in */
-    { 0x010010ef, 13060 }, /* Georgian_jhan */
-    { 0x010010eb, 13074 }, /* Georgian_jil */
-    { 0x010010d9, 13087 }, /* Georgian_kan */
-    { 0x010010e5, 13100 }, /* Georgian_khar */
-    { 0x010010da, 13114 }, /* Georgian_las */
-    { 0x010010db, 13127 }, /* Georgian_man */
-    { 0x010010dc, 13140 }, /* Georgian_nar */
-    { 0x010010dd, 13153 }, /* Georgian_on */
-    { 0x010010de, 13165 }, /* Georgian_par */
-    { 0x010010e4, 13178 }, /* Georgian_phar */
-    { 0x010010e7, 13192 }, /* Georgian_qar */
-    { 0x010010e0, 13205 }, /* Georgian_rae */
-    { 0x010010e1, 13218 }, /* Georgian_san */
-    { 0x010010e8, 13231 }, /* Georgian_shin */
-    { 0x010010d7, 13245 }, /* Georgian_tan */
-    { 0x010010e2, 13258 }, /* Georgian_tar */
-    { 0x010010e3, 13271 }, /* Georgian_un */
-    { 0x010010d5, 13283 }, /* Georgian_vin */
-    { 0x010010f3, 13296 }, /* Georgian_we */
-    { 0x010010ee, 13308 }, /* Georgian_xan */
-    { 0x010010d6, 13321 }, /* Georgian_zen */
-    { 0x010010df, 13334 }, /* Georgian_zhar */
-    { 0x00000060, 13348 }, /* grave */
-    { 0x0000003e, 13354 }, /* greater */
-    { 0x000008be, 13362 }, /* greaterthanequal */
-    { 0x000007ae, 13379 }, /* Greek_accentdieresis */
-    { 0x000007c1, 13400 }, /* Greek_ALPHA */
-    { 0x000007e1, 13412 }, /* Greek_alpha */
-    { 0x000007a1, 13424 }, /* Greek_ALPHAaccent */
-    { 0x000007b1, 13442 }, /* Greek_alphaaccent */
-    { 0x000007c2, 13460 }, /* Greek_BETA */
-    { 0x000007e2, 13471 }, /* Greek_beta */
-    { 0x000007d7, 13482 }, /* Greek_CHI */
-    { 0x000007f7, 13492 }, /* Greek_chi */
-    { 0x000007c4, 13502 }, /* Greek_DELTA */
-    { 0x000007e4, 13514 }, /* Greek_delta */
-    { 0x000007c5, 13526 }, /* Greek_EPSILON */
-    { 0x000007e5, 13540 }, /* Greek_epsilon */
-    { 0x000007a2, 13554 }, /* Greek_EPSILONaccent */
-    { 0x000007b2, 13574 }, /* Greek_epsilonaccent */
-    { 0x000007c7, 13594 }, /* Greek_ETA */
-    { 0x000007e7, 13604 }, /* Greek_eta */
-    { 0x000007a3, 13614 }, /* Greek_ETAaccent */
-    { 0x000007b3, 13630 }, /* Greek_etaaccent */
-    { 0x000007f3, 13646 }, /* Greek_finalsmallsigma */
-    { 0x000007c3, 13668 }, /* Greek_GAMMA */
-    { 0x000007e3, 13680 }, /* Greek_gamma */
-    { 0x000007af, 13692 }, /* Greek_horizbar */
-    { 0x000007c9, 13707 }, /* Greek_IOTA */
-    { 0x000007e9, 13718 }, /* Greek_iota */
-    { 0x000007a4, 13729 }, /* Greek_IOTAaccent */
-    { 0x000007b4, 13746 }, /* Greek_iotaaccent */
-    { 0x000007b6, 13763 }, /* Greek_iotaaccentdieresis */
-    { 0x000007a5, 13788 }, /* Greek_IOTAdiaeresis */
-    { 0x000007a5, 13808 }, /* Greek_IOTAdieresis */
-    { 0x000007b5, 13827 }, /* Greek_iotadieresis */
-    { 0x000007ca, 13846 }, /* Greek_KAPPA */
-    { 0x000007ea, 13858 }, /* Greek_kappa */
-    { 0x000007cb, 13870 }, /* Greek_LAMBDA */
-    { 0x000007eb, 13883 }, /* Greek_lambda */
-    { 0x000007cb, 13896 }, /* Greek_LAMDA */
-    { 0x000007eb, 13908 }, /* Greek_lamda */
-    { 0x000007cc, 13920 }, /* Greek_MU */
-    { 0x000007ec, 13929 }, /* Greek_mu */
-    { 0x000007cd, 13938 }, /* Greek_NU */
-    { 0x000007ed, 13947 }, /* Greek_nu */
-    { 0x000007d9, 13956 }, /* Greek_OMEGA */
-    { 0x000007f9, 13968 }, /* Greek_omega */
-    { 0x000007ab, 13980 }, /* Greek_OMEGAaccent */
-    { 0x000007bb, 13998 }, /* Greek_omegaaccent */
-    { 0x000007cf, 14016 }, /* Greek_OMICRON */
-    { 0x000007ef, 14030 }, /* Greek_omicron */
-    { 0x000007a7, 14044 }, /* Greek_OMICRONaccent */
-    { 0x000007b7, 14064 }, /* Greek_omicronaccent */
-    { 0x000007d6, 14084 }, /* Greek_PHI */
-    { 0x000007f6, 14094 }, /* Greek_phi */
-    { 0x000007d0, 14104 }, /* Greek_PI */
-    { 0x000007f0, 14113 }, /* Greek_pi */
-    { 0x000007d8, 14122 }, /* Greek_PSI */
-    { 0x000007f8, 14132 }, /* Greek_psi */
-    { 0x000007d1, 14142 }, /* Greek_RHO */
-    { 0x000007f1, 14152 }, /* Greek_rho */
-    { 0x000007d2, 14162 }, /* Greek_SIGMA */
-    { 0x000007f2, 14174 }, /* Greek_sigma */
-    { 0x0000ff7e, 14186 }, /* Greek_switch */
-    { 0x000007d4, 14199 }, /* Greek_TAU */
-    { 0x000007f4, 14209 }, /* Greek_tau */
-    { 0x000007c8, 14219 }, /* Greek_THETA */
-    { 0x000007e8, 14231 }, /* Greek_theta */
-    { 0x000007d5, 14243 }, /* Greek_UPSILON */
-    { 0x000007f5, 14257 }, /* Greek_upsilon */
-    { 0x000007a8, 14271 }, /* Greek_UPSILONaccent */
-    { 0x000007b8, 14291 }, /* Greek_upsilonaccent */
-    { 0x000007ba, 14311 }, /* Greek_upsilonaccentdieresis */
-    { 0x000007a9, 14339 }, /* Greek_UPSILONdieresis */
-    { 0x000007b9, 14361 }, /* Greek_upsilondieresis */
-    { 0x000007ce, 14383 }, /* Greek_XI */
-    { 0x000007ee, 14392 }, /* Greek_xi */
-    { 0x000007c6, 14401 }, /* Greek_ZETA */
-    { 0x000007e6, 14412 }, /* Greek_zeta */
-    { 0x100000be, 14423 }, /* guilder */
-    { 0x000000ab, 14431 }, /* guillemotleft */
-    { 0x000000bb, 14445 }, /* guillemotright */
-    { 0x00000048, 14460 }, /* H */
-    { 0x00000068, 14462 }, /* h */
-    { 0x00000aa8, 14464 }, /* hairspace */
-    { 0x0000ff31, 14474 }, /* Hangul */
-    { 0x00000ebf, 14481 }, /* Hangul_A */
-    { 0x00000ec0, 14490 }, /* Hangul_AE */
-    { 0x00000ef6, 14500 }, /* Hangul_AraeA */
-    { 0x00000ef7, 14513 }, /* Hangul_AraeAE */
-    { 0x0000ff39, 14527 }, /* Hangul_Banja */
-    { 0x00000eba, 14540 }, /* Hangul_Cieuc */
-    { 0x0000ff37, 14553 }, /* Hangul_Codeinput */
-    { 0x00000ea7, 14570 }, /* Hangul_Dikeud */
-    { 0x00000ec4, 14584 }, /* Hangul_E */
-    { 0x0000ff33, 14593 }, /* Hangul_End */
-    { 0x00000ec3, 14604 }, /* Hangul_EO */
-    { 0x00000ed1, 14614 }, /* Hangul_EU */
-    { 0x0000ff34, 14624 }, /* Hangul_Hanja */
-    { 0x00000ebe, 14637 }, /* Hangul_Hieuh */
-    { 0x00000ed3, 14650 }, /* Hangul_I */
-    { 0x00000eb7, 14659 }, /* Hangul_Ieung */
-    { 0x00000eea, 14672 }, /* Hangul_J_Cieuc */
-    { 0x00000eda, 14687 }, /* Hangul_J_Dikeud */
-    { 0x00000eee, 14703 }, /* Hangul_J_Hieuh */
-    { 0x00000ee8, 14718 }, /* Hangul_J_Ieung */
-    { 0x00000ee9, 14733 }, /* Hangul_J_Jieuj */
-    { 0x00000eeb, 14748 }, /* Hangul_J_Khieuq */
-    { 0x00000ed4, 14764 }, /* Hangul_J_Kiyeog */
-    { 0x00000ed6, 14780 }, /* Hangul_J_KiyeogSios */
-    { 0x00000ef9, 14800 }, /* Hangul_J_KkogjiDalrinIeung */
-    { 0x00000ee3, 14827 }, /* Hangul_J_Mieum */
-    { 0x00000ed7, 14842 }, /* Hangul_J_Nieun */
-    { 0x00000ed9, 14857 }, /* Hangul_J_NieunHieuh */
-    { 0x00000ed8, 14877 }, /* Hangul_J_NieunJieuj */
-    { 0x00000ef8, 14897 }, /* Hangul_J_PanSios */
-    { 0x00000eed, 14914 }, /* Hangul_J_Phieuf */
-    { 0x00000ee4, 14930 }, /* Hangul_J_Pieub */
-    { 0x00000ee5, 14945 }, /* Hangul_J_PieubSios */
-    { 0x00000edb, 14964 }, /* Hangul_J_Rieul */
-    { 0x00000ee2, 14979 }, /* Hangul_J_RieulHieuh */
-    { 0x00000edc, 14999 }, /* Hangul_J_RieulKiyeog */
-    { 0x00000edd, 15020 }, /* Hangul_J_RieulMieum */
-    { 0x00000ee1, 15040 }, /* Hangul_J_RieulPhieuf */
-    { 0x00000ede, 15061 }, /* Hangul_J_RieulPieub */
-    { 0x00000edf, 15081 }, /* Hangul_J_RieulSios */
-    { 0x00000ee0, 15100 }, /* Hangul_J_RieulTieut */
-    { 0x00000ee6, 15120 }, /* Hangul_J_Sios */
-    { 0x00000ed5, 15134 }, /* Hangul_J_SsangKiyeog */
-    { 0x00000ee7, 15155 }, /* Hangul_J_SsangSios */
-    { 0x00000eec, 15174 }, /* Hangul_J_Tieut */
-    { 0x00000efa, 15189 }, /* Hangul_J_YeorinHieuh */
-    { 0x0000ff35, 15210 }, /* Hangul_Jamo */
-    { 0x0000ff38, 15222 }, /* Hangul_Jeonja */
-    { 0x00000eb8, 15236 }, /* Hangul_Jieuj */
-    { 0x00000ebb, 15249 }, /* Hangul_Khieuq */
-    { 0x00000ea1, 15263 }, /* Hangul_Kiyeog */
-    { 0x00000ea3, 15277 }, /* Hangul_KiyeogSios */
-    { 0x00000ef3, 15295 }, /* Hangul_KkogjiDalrinIeung */
-    { 0x00000eb1, 15320 }, /* Hangul_Mieum */
-    { 0x0000ff3d, 15333 }, /* Hangul_MultipleCandidate */
-    { 0x00000ea4, 15358 }, /* Hangul_Nieun */
-    { 0x00000ea6, 15371 }, /* Hangul_NieunHieuh */
-    { 0x00000ea5, 15389 }, /* Hangul_NieunJieuj */
-    { 0x00000ec7, 15407 }, /* Hangul_O */
-    { 0x00000eca, 15416 }, /* Hangul_OE */
-    { 0x00000ef2, 15426 }, /* Hangul_PanSios */
-    { 0x00000ebd, 15441 }, /* Hangul_Phieuf */
-    { 0x00000eb2, 15455 }, /* Hangul_Pieub */
-    { 0x00000eb4, 15468 }, /* Hangul_PieubSios */
-    { 0x0000ff3b, 15485 }, /* Hangul_PostHanja */
-    { 0x0000ff3a, 15502 }, /* Hangul_PreHanja */
-    { 0x0000ff3e, 15518 }, /* Hangul_PreviousCandidate */
-    { 0x00000ea9, 15543 }, /* Hangul_Rieul */
-    { 0x00000eb0, 15556 }, /* Hangul_RieulHieuh */
-    { 0x00000eaa, 15574 }, /* Hangul_RieulKiyeog */
-    { 0x00000eab, 15593 }, /* Hangul_RieulMieum */
-    { 0x00000eaf, 15611 }, /* Hangul_RieulPhieuf */
-    { 0x00000eac, 15630 }, /* Hangul_RieulPieub */
-    { 0x00000ead, 15648 }, /* Hangul_RieulSios */
-    { 0x00000eae, 15665 }, /* Hangul_RieulTieut */
-    { 0x00000eef, 15683 }, /* Hangul_RieulYeorinHieuh */
-    { 0x0000ff36, 15707 }, /* Hangul_Romaja */
-    { 0x0000ff3c, 15721 }, /* Hangul_SingleCandidate */
-    { 0x00000eb5, 15744 }, /* Hangul_Sios */
-    { 0x0000ff3f, 15756 }, /* Hangul_Special */
-    { 0x00000ea8, 15771 }, /* Hangul_SsangDikeud */
-    { 0x00000eb9, 15790 }, /* Hangul_SsangJieuj */
-    { 0x00000ea2, 15808 }, /* Hangul_SsangKiyeog */
-    { 0x00000eb3, 15827 }, /* Hangul_SsangPieub */
-    { 0x00000eb6, 15845 }, /* Hangul_SsangSios */
-    { 0x0000ff32, 15862 }, /* Hangul_Start */
-    { 0x00000ef0, 15875 }, /* Hangul_SunkyeongeumMieum */
-    { 0x00000ef4, 15900 }, /* Hangul_SunkyeongeumPhieuf */
-    { 0x00000ef1, 15926 }, /* Hangul_SunkyeongeumPieub */
-    { 0x0000ff7e, 15951 }, /* Hangul_switch */
-    { 0x00000ebc, 15965 }, /* Hangul_Tieut */
-    { 0x00000ecc, 15978 }, /* Hangul_U */
-    { 0x00000ec8, 15987 }, /* Hangul_WA */
-    { 0x00000ec9, 15997 }, /* Hangul_WAE */
-    { 0x00000ece, 16008 }, /* Hangul_WE */
-    { 0x00000ecd, 16018 }, /* Hangul_WEO */
-    { 0x00000ecf, 16029 }, /* Hangul_WI */
-    { 0x00000ec1, 16039 }, /* Hangul_YA */
-    { 0x00000ec2, 16049 }, /* Hangul_YAE */
-    { 0x00000ec6, 16060 }, /* Hangul_YE */
-    { 0x00000ec5, 16070 }, /* Hangul_YEO */
-    { 0x00000ef5, 16081 }, /* Hangul_YeorinHieuh */
-    { 0x00000ed2, 16100 }, /* Hangul_YI */
-    { 0x00000ecb, 16110 }, /* Hangul_YO */
-    { 0x00000ed0, 16120 }, /* Hangul_YU */
-    { 0x0000ff29, 16130 }, /* Hankaku */
-    { 0x000002a6, 16138 }, /* Hcircumflex */
-    { 0x000002b6, 16150 }, /* hcircumflex */
-    { 0x00000aee, 16162 }, /* heart */
-    { 0x00000ce0, 16168 }, /* hebrew_aleph */
-    { 0x00000cf2, 16181 }, /* hebrew_ayin */
-    { 0x00000ce1, 16193 }, /* hebrew_bet */
-    { 0x00000ce1, 16204 }, /* hebrew_beth */
-    { 0x00000ce7, 16216 }, /* hebrew_chet */
-    { 0x00000ce3, 16228 }, /* hebrew_dalet */
-    { 0x00000ce3, 16241 }, /* hebrew_daleth */
-    { 0x00000cdf, 16255 }, /* hebrew_doublelowline */
-    { 0x00000cea, 16276 }, /* hebrew_finalkaph */
-    { 0x00000ced, 16293 }, /* hebrew_finalmem */
-    { 0x00000cef, 16309 }, /* hebrew_finalnun */
-    { 0x00000cf3, 16325 }, /* hebrew_finalpe */
-    { 0x00000cf5, 16340 }, /* hebrew_finalzade */
-    { 0x00000cf5, 16357 }, /* hebrew_finalzadi */
-    { 0x00000ce2, 16374 }, /* hebrew_gimel */
-    { 0x00000ce2, 16387 }, /* hebrew_gimmel */
-    { 0x00000ce4, 16401 }, /* hebrew_he */
-    { 0x00000ce7, 16411 }, /* hebrew_het */
-    { 0x00000ceb, 16422 }, /* hebrew_kaph */
-    { 0x00000cf7, 16434 }, /* hebrew_kuf */
-    { 0x00000cec, 16445 }, /* hebrew_lamed */
-    { 0x00000cee, 16458 }, /* hebrew_mem */
-    { 0x00000cf0, 16469 }, /* hebrew_nun */
-    { 0x00000cf4, 16480 }, /* hebrew_pe */
-    { 0x00000cf7, 16490 }, /* hebrew_qoph */
-    { 0x00000cf8, 16502 }, /* hebrew_resh */
-    { 0x00000cf1, 16514 }, /* hebrew_samech */
-    { 0x00000cf1, 16528 }, /* hebrew_samekh */
-    { 0x00000cf9, 16542 }, /* hebrew_shin */
-    { 0x0000ff7e, 16554 }, /* Hebrew_switch */
-    { 0x00000cfa, 16568 }, /* hebrew_taf */
-    { 0x00000cfa, 16579 }, /* hebrew_taw */
-    { 0x00000ce8, 16590 }, /* hebrew_tet */
-    { 0x00000ce8, 16601 }, /* hebrew_teth */
-    { 0x00000ce5, 16613 }, /* hebrew_waw */
-    { 0x00000ce9, 16624 }, /* hebrew_yod */
-    { 0x00000cf6, 16635 }, /* hebrew_zade */
-    { 0x00000cf6, 16647 }, /* hebrew_zadi */
-    { 0x00000ce6, 16659 }, /* hebrew_zain */
-    { 0x00000ce6, 16671 }, /* hebrew_zayin */
-    { 0x0000ff6a, 16684 }, /* Help */
-    { 0x0000ff23, 16689 }, /* Henkan */
-    { 0x0000ff23, 16696 }, /* Henkan_Mode */
-    { 0x00000ada, 16708 }, /* hexagram */
-    { 0x0000ff25, 16717 }, /* Hiragana */
-    { 0x0000ff27, 16726 }, /* Hiragana_Katakana */
-    { 0x0000ff50, 16744 }, /* Home */
-    { 0x000008a3, 16749 }, /* horizconnector */
-    { 0x000009ef, 16764 }, /* horizlinescan1 */
-    { 0x000009f0, 16779 }, /* horizlinescan3 */
-    { 0x000009f1, 16794 }, /* horizlinescan5 */
-    { 0x000009f2, 16809 }, /* horizlinescan7 */
-    { 0x000009f3, 16824 }, /* horizlinescan9 */
-    { 0x1000ff74, 16839 }, /* hpBackTab */
-    { 0x100000fc, 16849 }, /* hpblock */
-    { 0x1000ff6f, 16857 }, /* hpClearLine */
-    { 0x1000ff73, 16869 }, /* hpDeleteChar */
-    { 0x1000ff71, 16882 }, /* hpDeleteLine */
-    { 0x100000be, 16895 }, /* hpguilder */
-    { 0x1000ff72, 16905 }, /* hpInsertChar */
-    { 0x1000ff70, 16918 }, /* hpInsertLine */
-    { 0x100000ee, 16931 }, /* hpIO */
-    { 0x1000ff75, 16936 }, /* hpKP_BackTab */
-    { 0x100000af, 16949 }, /* hplira */
-    { 0x100000f6, 16956 }, /* hplongminus */
-    { 0x1000ff48, 16968 }, /* hpModelock1 */
-    { 0x1000ff49, 16980 }, /* hpModelock2 */
-    { 0x100000a8, 16992 }, /* hpmute_acute */
-    { 0x100000aa, 17005 }, /* hpmute_asciicircum */
-    { 0x100000ac, 17024 }, /* hpmute_asciitilde */
-    { 0x100000ab, 17042 }, /* hpmute_diaeresis */
-    { 0x100000a9, 17059 }, /* hpmute_grave */
-    { 0x1000ff6c, 17072 }, /* hpReset */
-    { 0x1000ff6d, 17080 }, /* hpSystem */
-    { 0x1000ff6e, 17089 }, /* hpUser */
-    { 0x100000ee, 17096 }, /* hpYdiaeresis */
-    { 0x000002a1, 17109 }, /* Hstroke */
-    { 0x000002b1, 17117 }, /* hstroke */
-    { 0x000009e2, 17125 }, /* ht */
-    { 0x0000ffed, 17128 }, /* Hyper_L */
-    { 0x0000ffee, 17136 }, /* Hyper_R */
-    { 0x000000ad, 17144 }, /* hyphen */
-    { 0x00000049, 17151 }, /* I */
-    { 0x00000069, 17153 }, /* i */
-    { 0x000002a9, 17155 }, /* Iabovedot */
-    { 0x000000cd, 17165 }, /* Iacute */
-    { 0x000000ed, 17172 }, /* iacute */
-    { 0x01001eca, 17179 }, /* Ibelowdot */
-    { 0x01001ecb, 17189 }, /* ibelowdot */
-    { 0x0100012c, 17199 }, /* Ibreve */
-    { 0x0100012d, 17206 }, /* ibreve */
-    { 0x000000ce, 17213 }, /* Icircumflex */
-    { 0x000000ee, 17225 }, /* icircumflex */
-    { 0x000008cf, 17237 }, /* identical */
-    { 0x000000cf, 17247 }, /* Idiaeresis */
-    { 0x000000ef, 17258 }, /* idiaeresis */
-    { 0x000002b9, 17269 }, /* idotless */
-    { 0x000008cd, 17278 }, /* ifonlyif */
-    { 0x000000cc, 17287 }, /* Igrave */
-    { 0x000000ec, 17294 }, /* igrave */
-    { 0x01001ec8, 17301 }, /* Ihook */
-    { 0x01001ec9, 17307 }, /* ihook */
-    { 0x000003cf, 17313 }, /* Imacron */
-    { 0x000003ef, 17321 }, /* imacron */
-    { 0x000008ce, 17329 }, /* implies */
-    { 0x000008da, 17337 }, /* includedin */
-    { 0x000008db, 17348 }, /* includes */
-    { 0x000008c2, 17357 }, /* infinity */
-    { 0x0000ff63, 17366 }, /* Insert */
-    { 0x1000ff72, 17373 }, /* InsertChar */
-    { 0x1000ff70, 17384 }, /* InsertLine */
-    { 0x000008bf, 17395 }, /* integral */
-    { 0x000008dc, 17404 }, /* intersection */
-    { 0x100000ee, 17417 }, /* IO */
-    { 0x000003c7, 17420 }, /* Iogonek */
-    { 0x000003e7, 17428 }, /* iogonek */
-    { 0x0000fe33, 17436 }, /* ISO_Center_Object */
-    { 0x0000fe30, 17454 }, /* ISO_Continuous_Underline */
-    { 0x0000fe31, 17479 }, /* ISO_Discontinuous_Underline */
-    { 0x0000fe32, 17507 }, /* ISO_Emphasize */
-    { 0x0000fe34, 17521 }, /* ISO_Enter */
-    { 0x0000fe2f, 17531 }, /* ISO_Fast_Cursor_Down */
-    { 0x0000fe2c, 17552 }, /* ISO_Fast_Cursor_Left */
-    { 0x0000fe2d, 17573 }, /* ISO_Fast_Cursor_Right */
-    { 0x0000fe2e, 17595 }, /* ISO_Fast_Cursor_Up */
-    { 0x0000fe0c, 17614 }, /* ISO_First_Group */
-    { 0x0000fe0d, 17630 }, /* ISO_First_Group_Lock */
-    { 0x0000fe06, 17651 }, /* ISO_Group_Latch */
-    { 0x0000fe07, 17667 }, /* ISO_Group_Lock */
-    { 0x0000ff7e, 17682 }, /* ISO_Group_Shift */
-    { 0x0000fe0e, 17698 }, /* ISO_Last_Group */
-    { 0x0000fe0f, 17713 }, /* ISO_Last_Group_Lock */
-    { 0x0000fe20, 17733 }, /* ISO_Left_Tab */
-    { 0x0000fe02, 17746 }, /* ISO_Level2_Latch */
-    { 0x0000fe04, 17763 }, /* ISO_Level3_Latch */
-    { 0x0000fe05, 17780 }, /* ISO_Level3_Lock */
-    { 0x0000fe03, 17796 }, /* ISO_Level3_Shift */
-    { 0x0000fe12, 17813 }, /* ISO_Level5_Latch */
-    { 0x0000fe13, 17830 }, /* ISO_Level5_Lock */
-    { 0x0000fe11, 17846 }, /* ISO_Level5_Shift */
-    { 0x0000fe01, 17863 }, /* ISO_Lock */
-    { 0x0000fe22, 17872 }, /* ISO_Move_Line_Down */
-    { 0x0000fe21, 17891 }, /* ISO_Move_Line_Up */
-    { 0x0000fe08, 17908 }, /* ISO_Next_Group */
-    { 0x0000fe09, 17923 }, /* ISO_Next_Group_Lock */
-    { 0x0000fe24, 17943 }, /* ISO_Partial_Line_Down */
-    { 0x0000fe23, 17965 }, /* ISO_Partial_Line_Up */
-    { 0x0000fe25, 17985 }, /* ISO_Partial_Space_Left */
-    { 0x0000fe26, 18008 }, /* ISO_Partial_Space_Right */
-    { 0x0000fe0a, 18032 }, /* ISO_Prev_Group */
-    { 0x0000fe0b, 18047 }, /* ISO_Prev_Group_Lock */
-    { 0x0000fe2b, 18067 }, /* ISO_Release_Both_Margins */
-    { 0x0000fe29, 18092 }, /* ISO_Release_Margin_Left */
-    { 0x0000fe2a, 18116 }, /* ISO_Release_Margin_Right */
-    { 0x0000fe27, 18141 }, /* ISO_Set_Margin_Left */
-    { 0x0000fe28, 18161 }, /* ISO_Set_Margin_Right */
-    { 0x000003a5, 18182 }, /* Itilde */
-    { 0x000003b5, 18189 }, /* itilde */
-    { 0x0000004a, 18196 }, /* J */
-    { 0x0000006a, 18198 }, /* j */
-    { 0x000002ac, 18200 }, /* Jcircumflex */
-    { 0x000002bc, 18212 }, /* jcircumflex */
-    { 0x00000bca, 18224 }, /* jot */
-    { 0x0000004b, 18228 }, /* K */
-    { 0x0000006b, 18230 }, /* k */
-    { 0x000004a7, 18232 }, /* kana_a */
-    { 0x000004b1, 18239 }, /* kana_A */
-    { 0x000004c1, 18246 }, /* kana_CHI */
-    { 0x000004a3, 18255 }, /* kana_closingbracket */
-    { 0x000004a4, 18275 }, /* kana_comma */
-    { 0x000004a5, 18286 }, /* kana_conjunctive */
-    { 0x000004aa, 18303 }, /* kana_e */
-    { 0x000004b4, 18310 }, /* kana_E */
-    { 0x000004cc, 18317 }, /* kana_FU */
-    { 0x000004a1, 18325 }, /* kana_fullstop */
-    { 0x000004ca, 18339 }, /* kana_HA */
-    { 0x000004cd, 18347 }, /* kana_HE */
-    { 0x000004cb, 18355 }, /* kana_HI */
-    { 0x000004ce, 18363 }, /* kana_HO */
-    { 0x000004cc, 18371 }, /* kana_HU */
-    { 0x000004a8, 18379 }, /* kana_i */
-    { 0x000004b2, 18386 }, /* kana_I */
-    { 0x000004b6, 18393 }, /* kana_KA */
-    { 0x000004b9, 18401 }, /* kana_KE */
-    { 0x000004b7, 18409 }, /* kana_KI */
-    { 0x000004ba, 18417 }, /* kana_KO */
-    { 0x000004b8, 18425 }, /* kana_KU */
-    { 0x0000ff2d, 18433 }, /* Kana_Lock */
-    { 0x000004cf, 18443 }, /* kana_MA */
-    { 0x000004d2, 18451 }, /* kana_ME */
-    { 0x000004d0, 18459 }, /* kana_MI */
-    { 0x000004a5, 18467 }, /* kana_middledot */
-    { 0x000004d3, 18482 }, /* kana_MO */
-    { 0x000004d1, 18490 }, /* kana_MU */
-    { 0x000004dd, 18498 }, /* kana_N */
-    { 0x000004c5, 18505 }, /* kana_NA */
-    { 0x000004c8, 18513 }, /* kana_NE */
-    { 0x000004c6, 18521 }, /* kana_NI */
-    { 0x000004c9, 18529 }, /* kana_NO */
-    { 0x000004c7, 18537 }, /* kana_NU */
-    { 0x000004ab, 18545 }, /* kana_o */
-    { 0x000004b5, 18552 }, /* kana_O */
-    { 0x000004a2, 18559 }, /* kana_openingbracket */
-    { 0x000004d7, 18579 }, /* kana_RA */
-    { 0x000004da, 18587 }, /* kana_RE */
-    { 0x000004d8, 18595 }, /* kana_RI */
-    { 0x000004db, 18603 }, /* kana_RO */
-    { 0x000004d9, 18611 }, /* kana_RU */
-    { 0x000004bb, 18619 }, /* kana_SA */
-    { 0x000004be, 18627 }, /* kana_SE */
-    { 0x000004bc, 18635 }, /* kana_SHI */
-    { 0x0000ff2e, 18644 }, /* Kana_Shift */
-    { 0x000004bf, 18655 }, /* kana_SO */
-    { 0x000004bd, 18663 }, /* kana_SU */
-    { 0x0000ff7e, 18671 }, /* kana_switch */
-    { 0x000004c0, 18683 }, /* kana_TA */
-    { 0x000004c3, 18691 }, /* kana_TE */
-    { 0x000004c1, 18699 }, /* kana_TI */
-    { 0x000004c4, 18707 }, /* kana_TO */
-    { 0x000004af, 18715 }, /* kana_tsu */
-    { 0x000004c2, 18724 }, /* kana_TSU */
-    { 0x000004af, 18733 }, /* kana_tu */
-    { 0x000004c2, 18741 }, /* kana_TU */
-    { 0x000004a9, 18749 }, /* kana_u */
-    { 0x000004b3, 18756 }, /* kana_U */
-    { 0x000004dc, 18763 }, /* kana_WA */
-    { 0x000004a6, 18771 }, /* kana_WO */
-    { 0x000004ac, 18779 }, /* kana_ya */
-    { 0x000004d4, 18787 }, /* kana_YA */
-    { 0x000004ae, 18795 }, /* kana_yo */
-    { 0x000004d6, 18803 }, /* kana_YO */
-    { 0x000004ad, 18811 }, /* kana_yu */
-    { 0x000004d5, 18819 }, /* kana_YU */
-    { 0x0000ff21, 18827 }, /* Kanji */
-    { 0x0000ff37, 18833 }, /* Kanji_Bangou */
-    { 0x000003a2, 18846 }, /* kappa */
-    { 0x0000ff26, 18852 }, /* Katakana */
-    { 0x000003d3, 18861 }, /* Kcedilla */
-    { 0x000003f3, 18870 }, /* kcedilla */
-    { 0x00000eff, 18879 }, /* Korean_Won */
-    { 0x0000ffb0, 18890 }, /* KP_0 */
-    { 0x0000ffb1, 18895 }, /* KP_1 */
-    { 0x0000ffb2, 18900 }, /* KP_2 */
-    { 0x0000ffb3, 18905 }, /* KP_3 */
-    { 0x0000ffb4, 18910 }, /* KP_4 */
-    { 0x0000ffb5, 18915 }, /* KP_5 */
-    { 0x0000ffb6, 18920 }, /* KP_6 */
-    { 0x0000ffb7, 18925 }, /* KP_7 */
-    { 0x0000ffb8, 18930 }, /* KP_8 */
-    { 0x0000ffb9, 18935 }, /* KP_9 */
-    { 0x0000ffab, 18940 }, /* KP_Add */
-    { 0x1000ff75, 18947 }, /* KP_BackTab */
-    { 0x0000ff9d, 18958 }, /* KP_Begin */
-    { 0x0000ffae, 18967 }, /* KP_Decimal */
-    { 0x0000ff9f, 18978 }, /* KP_Delete */
-    { 0x0000ffaf, 18988 }, /* KP_Divide */
-    { 0x0000ff99, 18998 }, /* KP_Down */
-    { 0x0000ff9c, 19006 }, /* KP_End */
-    { 0x0000ff8d, 19013 }, /* KP_Enter */
-    { 0x0000ffbd, 19022 }, /* KP_Equal */
-    { 0x0000ff91, 19031 }, /* KP_F1 */
-    { 0x0000ff92, 19037 }, /* KP_F2 */
-    { 0x0000ff93, 19043 }, /* KP_F3 */
-    { 0x0000ff94, 19049 }, /* KP_F4 */
-    { 0x0000ff95, 19055 }, /* KP_Home */
-    { 0x0000ff9e, 19063 }, /* KP_Insert */
-    { 0x0000ff96, 19073 }, /* KP_Left */
-    { 0x0000ffaa, 19081 }, /* KP_Multiply */
-    { 0x0000ff9b, 19093 }, /* KP_Next */
-    { 0x0000ff9b, 19101 }, /* KP_Page_Down */
-    { 0x0000ff9a, 19114 }, /* KP_Page_Up */
-    { 0x0000ff9a, 19125 }, /* KP_Prior */
-    { 0x0000ff98, 19134 }, /* KP_Right */
-    { 0x0000ffac, 19143 }, /* KP_Separator */
-    { 0x0000ff80, 19156 }, /* KP_Space */
-    { 0x0000ffad, 19165 }, /* KP_Subtract */
-    { 0x0000ff89, 19177 }, /* KP_Tab */
-    { 0x0000ff97, 19184 }, /* KP_Up */
-    { 0x000003a2, 19190 }, /* kra */
-    { 0x0000004c, 19194 }, /* L */
-    { 0x0000006c, 19196 }, /* l */
-    { 0x0000ffc8, 19198 }, /* L1 */
-    { 0x0000ffd1, 19201 }, /* L10 */
-    { 0x0000ffc9, 19205 }, /* L2 */
-    { 0x0000ffca, 19208 }, /* L3 */
-    { 0x0000ffcb, 19211 }, /* L4 */
-    { 0x0000ffcc, 19214 }, /* L5 */
-    { 0x0000ffcd, 19217 }, /* L6 */
-    { 0x0000ffce, 19220 }, /* L7 */
-    { 0x0000ffcf, 19223 }, /* L8 */
-    { 0x0000ffd0, 19226 }, /* L9 */
-    { 0x000001c5, 19229 }, /* Lacute */
-    { 0x000001e5, 19236 }, /* lacute */
-    { 0x0000fed4, 19243 }, /* Last_Virtual_Screen */
-    { 0x00000ad9, 19263 }, /* latincross */
-    { 0x01001e36, 19274 }, /* Lbelowdot */
-    { 0x01001e37, 19284 }, /* lbelowdot */
-    { 0x000001a5, 19294 }, /* Lcaron */
-    { 0x000001b5, 19301 }, /* lcaron */
-    { 0x000003a6, 19308 }, /* Lcedilla */
-    { 0x000003b6, 19317 }, /* lcedilla */
-    { 0x0000ff51, 19326 }, /* Left */
-    { 0x00000abc, 19331 }, /* leftanglebracket */
-    { 0x000008fb, 19348 }, /* leftarrow */
-    { 0x00000ba3, 19358 }, /* leftcaret */
-    { 0x00000ad2, 19368 }, /* leftdoublequotemark */
-    { 0x000008af, 19388 }, /* leftmiddlecurlybrace */
-    { 0x00000acc, 19409 }, /* leftopentriangle */
-    { 0x00000aea, 19426 }, /* leftpointer */
-    { 0x000008a1, 19438 }, /* leftradical */
-    { 0x00000bda, 19450 }, /* leftshoe */
-    { 0x00000ad0, 19459 }, /* leftsinglequotemark */
-    { 0x000009f4, 19479 }, /* leftt */
-    { 0x00000bdc, 19485 }, /* lefttack */
-    { 0x0000003c, 19494 }, /* less */
-    { 0x000008bc, 19499 }, /* lessthanequal */
-    { 0x000009e5, 19513 }, /* lf */
-    { 0x0000ff0a, 19516 }, /* Linefeed */
-    { 0x100000af, 19525 }, /* lira */
-    { 0x010020a4, 19530 }, /* LiraSign */
-    { 0x000008de, 19539 }, /* logicaland */
-    { 0x000008df, 19550 }, /* logicalor */
-    { 0x100000f6, 19560 }, /* longminus */
-    { 0x000009ed, 19570 }, /* lowleftcorner */
-    { 0x000009ea, 19584 }, /* lowrightcorner */
-    { 0x000001a3, 19599 }, /* Lstroke */
-    { 0x000001b3, 19607 }, /* lstroke */
-    { 0x0000004d, 19615 }, /* M */
-    { 0x0000006d, 19617 }, /* m */
-    { 0x01001e40, 19619 }, /* Mabovedot */
-    { 0x01001e41, 19629 }, /* mabovedot */
-    { 0x000006a5, 19639 }, /* Macedonia_dse */
-    { 0x000006b5, 19653 }, /* Macedonia_DSE */
-    { 0x000006a2, 19667 }, /* Macedonia_gje */
-    { 0x000006b2, 19681 }, /* Macedonia_GJE */
-    { 0x000006ac, 19695 }, /* Macedonia_kje */
-    { 0x000006bc, 19709 }, /* Macedonia_KJE */
-    { 0x000000af, 19723 }, /* macron */
-    { 0x0000ff3e, 19730 }, /* Mae_Koho */
-    { 0x00000af7, 19739 }, /* malesymbol */
-    { 0x00000af0, 19750 }, /* maltesecross */
-    { 0x00000abf, 19763 }, /* marker */
-    { 0x000000ba, 19770 }, /* masculine */
-    { 0x0000ff2c, 19780 }, /* Massyo */
-    { 0x0000ff67, 19787 }, /* Menu */
-    { 0x0000ffe7, 19792 }, /* Meta_L */
-    { 0x0000ffe8, 19799 }, /* Meta_R */
-    { 0x010020a5, 19806 }, /* MillSign */
-    { 0x0000002d, 19815 }, /* minus */
-    { 0x00000ad6, 19821 }, /* minutes */
-    { 0x0000ff7e, 19829 }, /* Mode_switch */
-    { 0x0000fe77, 19841 }, /* MouseKeys_Accel_Enable */
-    { 0x0000fe76, 19864 }, /* MouseKeys_Enable */
-    { 0x000000b5, 19881 }, /* mu */
-    { 0x0000ff22, 19884 }, /* Muhenkan */
-    { 0x0000ff20, 19893 }, /* Multi_key */
-    { 0x0000ff3d, 19903 }, /* MultipleCandidate */
-    { 0x000000d7, 19921 }, /* multiply */
-    { 0x00000af6, 19930 }, /* musicalflat */
-    { 0x00000af5, 19942 }, /* musicalsharp */
-    { 0x100000a8, 19955 }, /* mute_acute */
-    { 0x100000aa, 19966 }, /* mute_asciicircum */
-    { 0x100000ac, 19983 }, /* mute_asciitilde */
-    { 0x100000ab, 19999 }, /* mute_diaeresis */
-    { 0x100000a9, 20014 }, /* mute_grave */
-    { 0x0000004e, 20025 }, /* N */
-    { 0x0000006e, 20027 }, /* n */
-    { 0x000008c5, 20029 }, /* nabla */
-    { 0x000001d1, 20035 }, /* Nacute */
-    { 0x000001f1, 20042 }, /* nacute */
-    { 0x010020a6, 20049 }, /* NairaSign */
-    { 0x000001d2, 20059 }, /* Ncaron */
-    { 0x000001f2, 20066 }, /* ncaron */
-    { 0x000003d1, 20073 }, /* Ncedilla */
-    { 0x000003f1, 20082 }, /* ncedilla */
-    { 0x010020aa, 20091 }, /* NewSheqelSign */
-    { 0x0000ff56, 20105 }, /* Next */
-    { 0x0000fed2, 20110 }, /* Next_Virtual_Screen */
-    { 0x01002089, 20130 }, /* ninesubscript */
-    { 0x01002079, 20144 }, /* ninesuperior */
-    { 0x000009e8, 20157 }, /* nl */
-    { 0x000000a0, 20160 }, /* nobreakspace */
-    { 0x00000000, 20173 }, /* NoSymbol */
-    { 0x01002247, 20182 }, /* notapproxeq */
-    { 0x01002209, 20194 }, /* notelementof */
-    { 0x000008bd, 20207 }, /* notequal */
-    { 0x01002262, 20216 }, /* notidentical */
-    { 0x000000ac, 20229 }, /* notsign */
-    { 0x000000d1, 20237 }, /* Ntilde */
-    { 0x000000f1, 20244 }, /* ntilde */
-    { 0x0000ff7f, 20251 }, /* Num_Lock */
-    { 0x00000023, 20260 }, /* numbersign */
-    { 0x000006b0, 20271 }, /* numerosign */
-    { 0x0000004f, 20282 }, /* O */
-    { 0x0000006f, 20284 }, /* o */
-    { 0x000000d3, 20286 }, /* Oacute */
-    { 0x000000f3, 20293 }, /* oacute */
-    { 0x0100019f, 20300 }, /* Obarred */
-    { 0x01000275, 20308 }, /* obarred */
-    { 0x01001ecc, 20316 }, /* Obelowdot */
-    { 0x01001ecd, 20326 }, /* obelowdot */
-    { 0x010001d1, 20336 }, /* Ocaron */
-    { 0x010001d2, 20343 }, /* ocaron */
-    { 0x000000d4, 20350 }, /* Ocircumflex */
-    { 0x000000f4, 20362 }, /* ocircumflex */
-    { 0x01001ed0, 20374 }, /* Ocircumflexacute */
-    { 0x01001ed1, 20391 }, /* ocircumflexacute */
-    { 0x01001ed8, 20408 }, /* Ocircumflexbelowdot */
-    { 0x01001ed9, 20428 }, /* ocircumflexbelowdot */
-    { 0x01001ed2, 20448 }, /* Ocircumflexgrave */
-    { 0x01001ed3, 20465 }, /* ocircumflexgrave */
-    { 0x01001ed4, 20482 }, /* Ocircumflexhook */
-    { 0x01001ed5, 20498 }, /* ocircumflexhook */
-    { 0x01001ed6, 20514 }, /* Ocircumflextilde */
-    { 0x01001ed7, 20531 }, /* ocircumflextilde */
-    { 0x000000d6, 20548 }, /* Odiaeresis */
-    { 0x000000f6, 20559 }, /* odiaeresis */
-    { 0x000001d5, 20570 }, /* Odoubleacute */
-    { 0x000001f5, 20583 }, /* odoubleacute */
-    { 0x000013bc, 20596 }, /* OE */
-    { 0x000013bd, 20599 }, /* oe */
-    { 0x000001b2, 20602 }, /* ogonek */
-    { 0x000000d2, 20609 }, /* Ograve */
-    { 0x000000f2, 20616 }, /* ograve */
-    { 0x01001ece, 20623 }, /* Ohook */
-    { 0x01001ecf, 20629 }, /* ohook */
-    { 0x010001a0, 20635 }, /* Ohorn */
-    { 0x010001a1, 20641 }, /* ohorn */
-    { 0x01001eda, 20647 }, /* Ohornacute */
-    { 0x01001edb, 20658 }, /* ohornacute */
-    { 0x01001ee2, 20669 }, /* Ohornbelowdot */
-    { 0x01001ee3, 20683 }, /* ohornbelowdot */
-    { 0x01001edc, 20697 }, /* Ohorngrave */
-    { 0x01001edd, 20708 }, /* ohorngrave */
-    { 0x01001ede, 20719 }, /* Ohornhook */
-    { 0x01001edf, 20729 }, /* ohornhook */
-    { 0x01001ee0, 20739 }, /* Ohorntilde */
-    { 0x01001ee1, 20750 }, /* ohorntilde */
-    { 0x000003d2, 20761 }, /* Omacron */
-    { 0x000003f2, 20769 }, /* omacron */
-    { 0x00000ac3, 20777 }, /* oneeighth */
-    { 0x00000ab2, 20787 }, /* onefifth */
-    { 0x000000bd, 20796 }, /* onehalf */
-    { 0x000000bc, 20804 }, /* onequarter */
-    { 0x00000ab6, 20815 }, /* onesixth */
-    { 0x01002081, 20824 }, /* onesubscript */
-    { 0x000000b9, 20837 }, /* onesuperior */
-    { 0x00000ab0, 20849 }, /* onethird */
-    { 0x000000d8, 20858 }, /* Ooblique */
-    { 0x000000f8, 20867 }, /* ooblique */
-    { 0x00000ae2, 20876 }, /* openrectbullet */
-    { 0x00000ae5, 20891 }, /* openstar */
-    { 0x00000ae4, 20900 }, /* opentribulletdown */
-    { 0x00000ae3, 20918 }, /* opentribulletup */
-    { 0x000000aa, 20934 }, /* ordfeminine */
-    { 0x1004ff44, 20946 }, /* osfActivate */
-    { 0x1004ff31, 20958 }, /* osfAddMode */
-    { 0x1004ff08, 20969 }, /* osfBackSpace */
-    { 0x1004ff07, 20982 }, /* osfBackTab */
-    { 0x1004ff5a, 20993 }, /* osfBeginData */
-    { 0x1004ff58, 21006 }, /* osfBeginLine */
-    { 0x1004ff69, 21019 }, /* osfCancel */
-    { 0x1004ff0b, 21029 }, /* osfClear */
-    { 0x1004ff02, 21038 }, /* osfCopy */
-    { 0x1004ff03, 21046 }, /* osfCut */
-    { 0x1004ffff, 21053 }, /* osfDelete */
-    { 0x1004ff72, 21063 }, /* osfDeselectAll */
-    { 0x1004ff54, 21078 }, /* osfDown */
-    { 0x1004ff59, 21086 }, /* osfEndData */
-    { 0x1004ff57, 21097 }, /* osfEndLine */
-    { 0x1004ff1b, 21108 }, /* osfEscape */
-    { 0x1004ff74, 21118 }, /* osfExtend */
-    { 0x1004ff6a, 21128 }, /* osfHelp */
-    { 0x1004ff63, 21136 }, /* osfInsert */
-    { 0x1004ff51, 21146 }, /* osfLeft */
-    { 0x1004ff67, 21154 }, /* osfMenu */
-    { 0x1004ff45, 21162 }, /* osfMenuBar */
-    { 0x1004ff5e, 21173 }, /* osfNextField */
-    { 0x1004ff5c, 21186 }, /* osfNextMenu */
-    { 0x1004ff42, 21198 }, /* osfPageDown */
-    { 0x1004ff40, 21210 }, /* osfPageLeft */
-    { 0x1004ff43, 21222 }, /* osfPageRight */
-    { 0x1004ff41, 21235 }, /* osfPageUp */
-    { 0x1004ff04, 21245 }, /* osfPaste */
-    { 0x1004ff5d, 21254 }, /* osfPrevField */
-    { 0x1004ff5b, 21267 }, /* osfPrevMenu */
-    { 0x1004ff32, 21279 }, /* osfPrimaryPaste */
-    { 0x1004ff33, 21295 }, /* osfQuickPaste */
-    { 0x1004ff73, 21309 }, /* osfReselect */
-    { 0x1004ff78, 21321 }, /* osfRestore */
-    { 0x1004ff53, 21332 }, /* osfRight */
-    { 0x1004ff60, 21341 }, /* osfSelect */
-    { 0x1004ff71, 21351 }, /* osfSelectAll */
-    { 0x1004ff65, 21364 }, /* osfUndo */
-    { 0x1004ff52, 21372 }, /* osfUp */
-    { 0x000000d8, 21378 }, /* Oslash */
-    { 0x000000f8, 21385 }, /* oslash */
-    { 0x000000d5, 21392 }, /* Otilde */
-    { 0x000000f5, 21399 }, /* otilde */
-    { 0x00000bc0, 21406 }, /* overbar */
-    { 0x0000fe78, 21414 }, /* Overlay1_Enable */
-    { 0x0000fe79, 21430 }, /* Overlay2_Enable */
-    { 0x0000047e, 21446 }, /* overline */
-    { 0x00000050, 21455 }, /* P */
-    { 0x00000070, 21457 }, /* p */
-    { 0x01001e56, 21459 }, /* Pabovedot */
-    { 0x01001e57, 21469 }, /* pabovedot */
-    { 0x0000ff56, 21479 }, /* Page_Down */
-    { 0x0000ff55, 21489 }, /* Page_Up */
-    { 0x000000b6, 21497 }, /* paragraph */
-    { 0x00000028, 21507 }, /* parenleft */
-    { 0x00000029, 21517 }, /* parenright */
-    { 0x01002202, 21528 }, /* partdifferential */
-    { 0x000008ef, 21545 }, /* partialderivative */
-    { 0x0000ff13, 21563 }, /* Pause */
-    { 0x00000025, 21569 }, /* percent */
-    { 0x0000002e, 21577 }, /* period */
-    { 0x000000b7, 21584 }, /* periodcentered */
-    { 0x00000ad5, 21599 }, /* permille */
-    { 0x010020a7, 21608 }, /* PesetaSign */
-    { 0x00000afb, 21619 }, /* phonographcopyright */
-    { 0x0000002b, 21639 }, /* plus */
-    { 0x000000b1, 21644 }, /* plusminus */
-    { 0x0000fefa, 21654 }, /* Pointer_Accelerate */
-    { 0x0000fee9, 21673 }, /* Pointer_Button1 */
-    { 0x0000feea, 21689 }, /* Pointer_Button2 */
-    { 0x0000feeb, 21705 }, /* Pointer_Button3 */
-    { 0x0000feec, 21721 }, /* Pointer_Button4 */
-    { 0x0000feed, 21737 }, /* Pointer_Button5 */
-    { 0x0000fee8, 21753 }, /* Pointer_Button_Dflt */
-    { 0x0000feef, 21773 }, /* Pointer_DblClick1 */
-    { 0x0000fef0, 21791 }, /* Pointer_DblClick2 */
-    { 0x0000fef1, 21809 }, /* Pointer_DblClick3 */
-    { 0x0000fef2, 21827 }, /* Pointer_DblClick4 */
-    { 0x0000fef3, 21845 }, /* Pointer_DblClick5 */
-    { 0x0000feee, 21863 }, /* Pointer_DblClick_Dflt */
-    { 0x0000fefb, 21885 }, /* Pointer_DfltBtnNext */
-    { 0x0000fefc, 21905 }, /* Pointer_DfltBtnPrev */
-    { 0x0000fee3, 21925 }, /* Pointer_Down */
-    { 0x0000fee6, 21938 }, /* Pointer_DownLeft */
-    { 0x0000fee7, 21955 }, /* Pointer_DownRight */
-    { 0x0000fef5, 21973 }, /* Pointer_Drag1 */
-    { 0x0000fef6, 21987 }, /* Pointer_Drag2 */
-    { 0x0000fef7, 22001 }, /* Pointer_Drag3 */
-    { 0x0000fef8, 22015 }, /* Pointer_Drag4 */
-    { 0x0000fefd, 22029 }, /* Pointer_Drag5 */
-    { 0x0000fef4, 22043 }, /* Pointer_Drag_Dflt */
-    { 0x0000fef9, 22061 }, /* Pointer_EnableKeys */
-    { 0x0000fee0, 22080 }, /* Pointer_Left */
-    { 0x0000fee1, 22093 }, /* Pointer_Right */
-    { 0x0000fee2, 22107 }, /* Pointer_Up */
-    { 0x0000fee4, 22118 }, /* Pointer_UpLeft */
-    { 0x0000fee5, 22133 }, /* Pointer_UpRight */
-    { 0x00000ad4, 22149 }, /* prescription */
-    { 0x0000fed1, 22162 }, /* Prev_Virtual_Screen */
-    { 0x0000ff3e, 22182 }, /* PreviousCandidate */
-    { 0x0000ff61, 22200 }, /* Print */
-    { 0x0000ff55, 22206 }, /* Prior */
-    { 0x000004b0, 22212 }, /* prolongedsound */
-    { 0x00000aa6, 22227 }, /* punctspace */
-    { 0x00000051, 22238 }, /* Q */
-    { 0x00000071, 22240 }, /* q */
-    { 0x00000bcc, 22242 }, /* quad */
-    { 0x0000003f, 22247 }, /* question */
-    { 0x000000bf, 22256 }, /* questiondown */
-    { 0x00000022, 22269 }, /* quotedbl */
-    { 0x00000060, 22278 }, /* quoteleft */
-    { 0x00000027, 22288 }, /* quoteright */
-    { 0x00000052, 22299 }, /* R */
-    { 0x00000072, 22301 }, /* r */
-    { 0x0000ffd2, 22303 }, /* R1 */
-    { 0x0000ffdb, 22306 }, /* R10 */
-    { 0x0000ffdc, 22310 }, /* R11 */
-    { 0x0000ffdd, 22314 }, /* R12 */
-    { 0x0000ffde, 22318 }, /* R13 */
-    { 0x0000ffdf, 22322 }, /* R14 */
-    { 0x0000ffe0, 22326 }, /* R15 */
-    { 0x0000ffd3, 22330 }, /* R2 */
-    { 0x0000ffd4, 22333 }, /* R3 */
-    { 0x0000ffd5, 22336 }, /* R4 */
-    { 0x0000ffd6, 22339 }, /* R5 */
-    { 0x0000ffd7, 22342 }, /* R6 */
-    { 0x0000ffd8, 22345 }, /* R7 */
-    { 0x0000ffd9, 22348 }, /* R8 */
-    { 0x0000ffda, 22351 }, /* R9 */
-    { 0x000001c0, 22354 }, /* Racute */
-    { 0x000001e0, 22361 }, /* racute */
-    { 0x000008d6, 22368 }, /* radical */
-    { 0x000001d8, 22376 }, /* Rcaron */
-    { 0x000001f8, 22383 }, /* rcaron */
-    { 0x000003a3, 22390 }, /* Rcedilla */
-    { 0x000003b3, 22399 }, /* rcedilla */
-    { 0x0000ff66, 22408 }, /* Redo */
-    { 0x000000ae, 22413 }, /* registered */
-    { 0x0000fe72, 22424 }, /* RepeatKeys_Enable */
-    { 0x1000ff6c, 22442 }, /* Reset */
-    { 0x0000ff0d, 22448 }, /* Return */
-    { 0x0000ff53, 22455 }, /* Right */
-    { 0x00000abe, 22461 }, /* rightanglebracket */
-    { 0x000008fd, 22479 }, /* rightarrow */
-    { 0x00000ba6, 22490 }, /* rightcaret */
-    { 0x00000ad3, 22501 }, /* rightdoublequotemark */
-    { 0x000008b0, 22522 }, /* rightmiddlecurlybrace */
-    { 0x000008b7, 22544 }, /* rightmiddlesummation */
-    { 0x00000acd, 22565 }, /* rightopentriangle */
-    { 0x00000aeb, 22583 }, /* rightpointer */
-    { 0x00000bd8, 22596 }, /* rightshoe */
-    { 0x00000ad1, 22606 }, /* rightsinglequotemark */
-    { 0x000009f5, 22627 }, /* rightt */
-    { 0x00000bfc, 22634 }, /* righttack */
-    { 0x0000ff24, 22644 }, /* Romaji */
-    { 0x010020a8, 22651 }, /* RupeeSign */
-    { 0x00000053, 22661 }, /* S */
-    { 0x00000073, 22663 }, /* s */
-    { 0x01001e60, 22665 }, /* Sabovedot */
-    { 0x01001e61, 22675 }, /* sabovedot */
-    { 0x000001a6, 22685 }, /* Sacute */
-    { 0x000001b6, 22692 }, /* sacute */
-    { 0x000001a9, 22699 }, /* Scaron */
-    { 0x000001b9, 22706 }, /* scaron */
-    { 0x000001aa, 22713 }, /* Scedilla */
-    { 0x000001ba, 22722 }, /* scedilla */
-    { 0x0100018f, 22731 }, /* SCHWA */
-    { 0x01000259, 22737 }, /* schwa */
-    { 0x000002de, 22743 }, /* Scircumflex */
-    { 0x000002fe, 22755 }, /* scircumflex */
-    { 0x0000ff7e, 22767 }, /* script_switch */
-    { 0x0000ff14, 22781 }, /* Scroll_Lock */
-    { 0x00000ad7, 22793 }, /* seconds */
-    { 0x000000a7, 22801 }, /* section */
-    { 0x0000ff60, 22809 }, /* Select */
-    { 0x0000003b, 22816 }, /* semicolon */
-    { 0x000004df, 22826 }, /* semivoicedsound */
-    { 0x000006a1, 22842 }, /* Serbian_dje */
-    { 0x000006b1, 22854 }, /* Serbian_DJE */
-    { 0x000006af, 22866 }, /* Serbian_dze */
-    { 0x000006bf, 22878 }, /* Serbian_DZE */
-    { 0x000006a8, 22890 }, /* Serbian_je */
-    { 0x000006b8, 22901 }, /* Serbian_JE */
-    { 0x000006a9, 22912 }, /* Serbian_lje */
-    { 0x000006b9, 22924 }, /* Serbian_LJE */
-    { 0x000006aa, 22936 }, /* Serbian_nje */
-    { 0x000006ba, 22948 }, /* Serbian_NJE */
-    { 0x000006ab, 22960 }, /* Serbian_tshe */
-    { 0x000006bb, 22973 }, /* Serbian_TSHE */
-    { 0x00000ac6, 22986 }, /* seveneighths */
-    { 0x01002087, 22999 }, /* sevensubscript */
-    { 0x01002077, 23014 }, /* sevensuperior */
-    { 0x0000ffe1, 23028 }, /* Shift_L */
-    { 0x0000ffe6, 23036 }, /* Shift_Lock */
-    { 0x0000ffe2, 23047 }, /* Shift_R */
-    { 0x00000aca, 23055 }, /* signaturemark */
-    { 0x00000aac, 23069 }, /* signifblank */
-    { 0x000008c9, 23081 }, /* similarequal */
-    { 0x0000ff3c, 23094 }, /* SingleCandidate */
-    { 0x00000afd, 23110 }, /* singlelowquotemark */
-    { 0x01000d85, 23129 }, /* Sinh_a */
-    { 0x01000d86, 23136 }, /* Sinh_aa */
-    { 0x01000dcf, 23144 }, /* Sinh_aa2 */
-    { 0x01000d87, 23153 }, /* Sinh_ae */
-    { 0x01000dd0, 23161 }, /* Sinh_ae2 */
-    { 0x01000d88, 23170 }, /* Sinh_aee */
-    { 0x01000dd1, 23179 }, /* Sinh_aee2 */
-    { 0x01000d93, 23189 }, /* Sinh_ai */
-    { 0x01000ddb, 23197 }, /* Sinh_ai2 */
-    { 0x01000dca, 23206 }, /* Sinh_al */
-    { 0x01000d96, 23214 }, /* Sinh_au */
-    { 0x01000dde, 23222 }, /* Sinh_au2 */
-    { 0x01000db6, 23231 }, /* Sinh_ba */
-    { 0x01000db7, 23239 }, /* Sinh_bha */
-    { 0x01000da0, 23248 }, /* Sinh_ca */
-    { 0x01000da1, 23256 }, /* Sinh_cha */
-    { 0x01000da9, 23265 }, /* Sinh_dda */
-    { 0x01000daa, 23274 }, /* Sinh_ddha */
-    { 0x01000daf, 23284 }, /* Sinh_dha */
-    { 0x01000db0, 23293 }, /* Sinh_dhha */
-    { 0x01000d91, 23303 }, /* Sinh_e */
-    { 0x01000dd9, 23310 }, /* Sinh_e2 */
-    { 0x01000d92, 23318 }, /* Sinh_ee */
-    { 0x01000dda, 23326 }, /* Sinh_ee2 */
-    { 0x01000dc6, 23335 }, /* Sinh_fa */
-    { 0x01000d9c, 23343 }, /* Sinh_ga */
-    { 0x01000d9d, 23351 }, /* Sinh_gha */
-    { 0x01000d83, 23360 }, /* Sinh_h2 */
-    { 0x01000dc4, 23368 }, /* Sinh_ha */
-    { 0x01000d89, 23376 }, /* Sinh_i */
-    { 0x01000dd2, 23383 }, /* Sinh_i2 */
-    { 0x01000d8a, 23391 }, /* Sinh_ii */
-    { 0x01000dd3, 23399 }, /* Sinh_ii2 */
-    { 0x01000da2, 23408 }, /* Sinh_ja */
-    { 0x01000da3, 23416 }, /* Sinh_jha */
-    { 0x01000da5, 23425 }, /* Sinh_jnya */
-    { 0x01000d9a, 23435 }, /* Sinh_ka */
-    { 0x01000d9b, 23443 }, /* Sinh_kha */
-    { 0x01000df4, 23452 }, /* Sinh_kunddaliya */
-    { 0x01000dbd, 23468 }, /* Sinh_la */
-    { 0x01000dc5, 23476 }, /* Sinh_lla */
-    { 0x01000d8f, 23485 }, /* Sinh_lu */
-    { 0x01000ddf, 23493 }, /* Sinh_lu2 */
-    { 0x01000d90, 23502 }, /* Sinh_luu */
-    { 0x01000df3, 23511 }, /* Sinh_luu2 */
-    { 0x01000db8, 23521 }, /* Sinh_ma */
-    { 0x01000db9, 23529 }, /* Sinh_mba */
-    { 0x01000db1, 23538 }, /* Sinh_na */
-    { 0x01000dac, 23546 }, /* Sinh_ndda */
-    { 0x01000db3, 23556 }, /* Sinh_ndha */
-    { 0x01000d82, 23566 }, /* Sinh_ng */
-    { 0x01000d9e, 23574 }, /* Sinh_ng2 */
-    { 0x01000d9f, 23583 }, /* Sinh_nga */
-    { 0x01000da6, 23592 }, /* Sinh_nja */
-    { 0x01000dab, 23601 }, /* Sinh_nna */
-    { 0x01000da4, 23610 }, /* Sinh_nya */
-    { 0x01000d94, 23619 }, /* Sinh_o */
-    { 0x01000ddc, 23626 }, /* Sinh_o2 */
-    { 0x01000d95, 23634 }, /* Sinh_oo */
-    { 0x01000ddd, 23642 }, /* Sinh_oo2 */
-    { 0x01000db4, 23651 }, /* Sinh_pa */
-    { 0x01000db5, 23659 }, /* Sinh_pha */
-    { 0x01000dbb, 23668 }, /* Sinh_ra */
-    { 0x01000d8d, 23676 }, /* Sinh_ri */
-    { 0x01000d8e, 23684 }, /* Sinh_rii */
-    { 0x01000dd8, 23693 }, /* Sinh_ru2 */
-    { 0x01000df2, 23702 }, /* Sinh_ruu2 */
-    { 0x01000dc3, 23712 }, /* Sinh_sa */
-    { 0x01000dc1, 23720 }, /* Sinh_sha */
-    { 0x01000dc2, 23729 }, /* Sinh_ssha */
-    { 0x01000dad, 23739 }, /* Sinh_tha */
-    { 0x01000dae, 23748 }, /* Sinh_thha */
-    { 0x01000da7, 23758 }, /* Sinh_tta */
-    { 0x01000da8, 23767 }, /* Sinh_ttha */
-    { 0x01000d8b, 23777 }, /* Sinh_u */
-    { 0x01000dd4, 23784 }, /* Sinh_u2 */
-    { 0x01000d8c, 23792 }, /* Sinh_uu */
-    { 0x01000dd6, 23800 }, /* Sinh_uu2 */
-    { 0x01000dc0, 23809 }, /* Sinh_va */
-    { 0x01000dba, 23817 }, /* Sinh_ya */
-    { 0x01002086, 23825 }, /* sixsubscript */
-    { 0x01002076, 23838 }, /* sixsuperior */
-    { 0x0000002f, 23850 }, /* slash */
-    { 0x0000fe73, 23856 }, /* SlowKeys_Enable */
-    { 0x000009e0, 23872 }, /* soliddiamond */
-    { 0x00000020, 23885 }, /* space */
-    { 0x0100221a, 23891 }, /* squareroot */
-    { 0x000000df, 23902 }, /* ssharp */
-    { 0x000000a3, 23909 }, /* sterling */
-    { 0x0000fe75, 23918 }, /* StickyKeys_Enable */
-    { 0x01002263, 23936 }, /* stricteq */
-    { 0x0000ff66, 23945 }, /* SunAgain */
-    { 0x0000ff7e, 23954 }, /* SunAltGraph */
-    { 0x1005ff77, 23966 }, /* SunAudioLowerVolume */
-    { 0x1005ff78, 23986 }, /* SunAudioMute */
-    { 0x1005ff79, 23999 }, /* SunAudioRaiseVolume */
-    { 0x0000ff20, 24019 }, /* SunCompose */
-    { 0x1005ff72, 24030 }, /* SunCopy */
-    { 0x1005ff75, 24038 }, /* SunCut */
-    { 0x1005ff10, 24045 }, /* SunF36 */
-    { 0x1005ff11, 24052 }, /* SunF37 */
-    { 0x1005ff03, 24059 }, /* SunFA_Acute */
-    { 0x1005ff05, 24071 }, /* SunFA_Cedilla */
-    { 0x1005ff01, 24085 }, /* SunFA_Circum */
-    { 0x1005ff04, 24098 }, /* SunFA_Diaeresis */
-    { 0x1005ff00, 24114 }, /* SunFA_Grave */
-    { 0x1005ff02, 24126 }, /* SunFA_Tilde */
-    { 0x0000ff68, 24138 }, /* SunFind */
-    { 0x1005ff71, 24146 }, /* SunFront */
-    { 0x1005ff73, 24155 }, /* SunOpen */
-    { 0x0000ff56, 24163 }, /* SunPageDown */
-    { 0x0000ff55, 24175 }, /* SunPageUp */
-    { 0x1005ff74, 24185 }, /* SunPaste */
-    { 0x1005ff76, 24194 }, /* SunPowerSwitch */
-    { 0x1005ff7d, 24209 }, /* SunPowerSwitchShift */
-    { 0x0000ff61, 24229 }, /* SunPrint_Screen */
-    { 0x1005ff70, 24245 }, /* SunProps */
-    { 0x0000ff69, 24254 }, /* SunStop */
-    { 0x1005ff60, 24262 }, /* SunSys_Req */
-    { 0x0000ff65, 24273 }, /* SunUndo */
-    { 0x1005ff7a, 24281 }, /* SunVideoDegauss */
-    { 0x1005ff7b, 24297 }, /* SunVideoLowerBrightness */
-    { 0x1005ff7c, 24321 }, /* SunVideoRaiseBrightness */
-    { 0x0000ffeb, 24345 }, /* Super_L */
-    { 0x0000ffec, 24353 }, /* Super_R */
-    { 0x0000ff15, 24361 }, /* Sys_Req */
-    { 0x1000ff6d, 24369 }, /* System */
-    { 0x00000054, 24376 }, /* T */
-    { 0x00000074, 24378 }, /* t */
-    { 0x0000ff09, 24380 }, /* Tab */
-    { 0x01001e6a, 24384 }, /* Tabovedot */
-    { 0x01001e6b, 24394 }, /* tabovedot */
-    { 0x000001ab, 24404 }, /* Tcaron */
-    { 0x000001bb, 24411 }, /* tcaron */
-    { 0x000001de, 24418 }, /* Tcedilla */
-    { 0x000001fe, 24427 }, /* tcedilla */
-    { 0x00000af9, 24436 }, /* telephone */
-    { 0x00000afa, 24446 }, /* telephonerecorder */
-    { 0x0000fed5, 24464 }, /* Terminate_Server */
-    { 0x00000ddf, 24481 }, /* Thai_baht */
-    { 0x00000dba, 24491 }, /* Thai_bobaimai */
-    { 0x00000da8, 24505 }, /* Thai_chochan */
-    { 0x00000daa, 24518 }, /* Thai_chochang */
-    { 0x00000da9, 24532 }, /* Thai_choching */
-    { 0x00000dac, 24546 }, /* Thai_chochoe */
-    { 0x00000dae, 24559 }, /* Thai_dochada */
-    { 0x00000db4, 24572 }, /* Thai_dodek */
-    { 0x00000dbd, 24583 }, /* Thai_fofa */
-    { 0x00000dbf, 24593 }, /* Thai_fofan */
-    { 0x00000dcb, 24604 }, /* Thai_hohip */
-    { 0x00000dce, 24615 }, /* Thai_honokhuk */
-    { 0x00000da2, 24629 }, /* Thai_khokhai */
-    { 0x00000da5, 24642 }, /* Thai_khokhon */
-    { 0x00000da3, 24655 }, /* Thai_khokhuat */
-    { 0x00000da4, 24669 }, /* Thai_khokhwai */
-    { 0x00000da6, 24683 }, /* Thai_khorakhang */
-    { 0x00000da1, 24699 }, /* Thai_kokai */
-    { 0x00000de5, 24710 }, /* Thai_lakkhangyao */
-    { 0x00000df7, 24727 }, /* Thai_lekchet */
-    { 0x00000df5, 24740 }, /* Thai_lekha */
-    { 0x00000df6, 24751 }, /* Thai_lekhok */
-    { 0x00000df9, 24763 }, /* Thai_lekkao */
-    { 0x00000df1, 24775 }, /* Thai_leknung */
-    { 0x00000df8, 24788 }, /* Thai_lekpaet */
-    { 0x00000df3, 24801 }, /* Thai_leksam */
-    { 0x00000df4, 24813 }, /* Thai_leksi */
-    { 0x00000df2, 24824 }, /* Thai_leksong */
-    { 0x00000df0, 24837 }, /* Thai_leksun */
-    { 0x00000dcc, 24849 }, /* Thai_lochula */
-    { 0x00000dc5, 24862 }, /* Thai_loling */
-    { 0x00000dc6, 24874 }, /* Thai_lu */
-    { 0x00000deb, 24882 }, /* Thai_maichattawa */
-    { 0x00000de8, 24899 }, /* Thai_maiek */
-    { 0x00000dd1, 24910 }, /* Thai_maihanakat */
-    { 0x00000dde, 24926 }, /* Thai_maihanakat_maitho */
-    { 0x00000de7, 24949 }, /* Thai_maitaikhu */
-    { 0x00000de9, 24964 }, /* Thai_maitho */
-    { 0x00000dea, 24976 }, /* Thai_maitri */
-    { 0x00000de6, 24988 }, /* Thai_maiyamok */
-    { 0x00000dc1, 25002 }, /* Thai_moma */
-    { 0x00000da7, 25012 }, /* Thai_ngongu */
-    { 0x00000ded, 25024 }, /* Thai_nikhahit */
-    { 0x00000db3, 25038 }, /* Thai_nonen */
-    { 0x00000db9, 25049 }, /* Thai_nonu */
-    { 0x00000dcd, 25059 }, /* Thai_oang */
-    { 0x00000dcf, 25069 }, /* Thai_paiyannoi */
-    { 0x00000dda, 25084 }, /* Thai_phinthu */
-    { 0x00000dbe, 25097 }, /* Thai_phophan */
-    { 0x00000dbc, 25110 }, /* Thai_phophung */
-    { 0x00000dc0, 25124 }, /* Thai_phosamphao */
-    { 0x00000dbb, 25140 }, /* Thai_popla */
-    { 0x00000dc3, 25151 }, /* Thai_rorua */
-    { 0x00000dc4, 25162 }, /* Thai_ru */
-    { 0x00000dd0, 25170 }, /* Thai_saraa */
-    { 0x00000dd2, 25181 }, /* Thai_saraaa */
-    { 0x00000de1, 25193 }, /* Thai_saraae */
-    { 0x00000de4, 25205 }, /* Thai_saraaimaimalai */
-    { 0x00000de3, 25225 }, /* Thai_saraaimaimuan */
-    { 0x00000dd3, 25244 }, /* Thai_saraam */
-    { 0x00000de0, 25256 }, /* Thai_sarae */
-    { 0x00000dd4, 25267 }, /* Thai_sarai */
-    { 0x00000dd5, 25278 }, /* Thai_saraii */
-    { 0x00000de2, 25290 }, /* Thai_sarao */
-    { 0x00000dd8, 25301 }, /* Thai_sarau */
-    { 0x00000dd6, 25312 }, /* Thai_saraue */
-    { 0x00000dd7, 25324 }, /* Thai_sarauee */
-    { 0x00000dd9, 25337 }, /* Thai_sarauu */
-    { 0x00000dc9, 25349 }, /* Thai_sorusi */
-    { 0x00000dc8, 25361 }, /* Thai_sosala */
-    { 0x00000dab, 25373 }, /* Thai_soso */
-    { 0x00000dca, 25383 }, /* Thai_sosua */
-    { 0x00000dec, 25394 }, /* Thai_thanthakhat */
-    { 0x00000db1, 25411 }, /* Thai_thonangmontho */
-    { 0x00000db2, 25430 }, /* Thai_thophuthao */
-    { 0x00000db7, 25446 }, /* Thai_thothahan */
-    { 0x00000db0, 25461 }, /* Thai_thothan */
-    { 0x00000db8, 25474 }, /* Thai_thothong */
-    { 0x00000db6, 25488 }, /* Thai_thothung */
-    { 0x00000daf, 25502 }, /* Thai_topatak */
-    { 0x00000db5, 25515 }, /* Thai_totao */
-    { 0x00000dc7, 25526 }, /* Thai_wowaen */
-    { 0x00000dc2, 25538 }, /* Thai_yoyak */
-    { 0x00000dad, 25549 }, /* Thai_yoying */
-    { 0x000008c0, 25561 }, /* therefore */
-    { 0x00000aa7, 25571 }, /* thinspace */
-    { 0x000000de, 25581 }, /* THORN */
-    { 0x000000de, 25587 }, /* Thorn */
-    { 0x000000fe, 25593 }, /* thorn */
-    { 0x00000ac4, 25599 }, /* threeeighths */
-    { 0x00000ab4, 25612 }, /* threefifths */
-    { 0x000000be, 25624 }, /* threequarters */
-    { 0x01002083, 25638 }, /* threesubscript */
-    { 0x000000b3, 25653 }, /* threesuperior */
-    { 0x0100222d, 25667 }, /* tintegral */
-    { 0x000008a4, 25677 }, /* topintegral */
-    { 0x000008ab, 25689 }, /* topleftparens */
-    { 0x000008a2, 25703 }, /* topleftradical */
-    { 0x000008a7, 25718 }, /* topleftsqbracket */
-    { 0x000008b1, 25735 }, /* topleftsummation */
-    { 0x000008ad, 25752 }, /* toprightparens */
-    { 0x000008a9, 25767 }, /* toprightsqbracket */
-    { 0x000008b5, 25785 }, /* toprightsummation */
-    { 0x000009f7, 25803 }, /* topt */
-    { 0x000008b3, 25808 }, /* topvertsummationconnector */
-    { 0x0000ff2b, 25834 }, /* Touroku */
-    { 0x00000ac9, 25842 }, /* trademark */
-    { 0x00000acb, 25852 }, /* trademarkincircle */
-    { 0x000003ac, 25870 }, /* Tslash */
-    { 0x000003bc, 25877 }, /* tslash */
-    { 0x00000ab3, 25884 }, /* twofifths */
-    { 0x01002082, 25894 }, /* twosubscript */
-    { 0x000000b2, 25907 }, /* twosuperior */
-    { 0x00000ab1, 25919 }, /* twothirds */
-    { 0x00000055, 25929 }, /* U */
-    { 0x00000075, 25931 }, /* u */
-    { 0x000000da, 25933 }, /* Uacute */
-    { 0x000000fa, 25940 }, /* uacute */
-    { 0x01001ee4, 25947 }, /* Ubelowdot */
-    { 0x01001ee5, 25957 }, /* ubelowdot */
-    { 0x000002dd, 25967 }, /* Ubreve */
-    { 0x000002fd, 25974 }, /* ubreve */
-    { 0x000000db, 25981 }, /* Ucircumflex */
-    { 0x000000fb, 25993 }, /* ucircumflex */
-    { 0x000000dc, 26005 }, /* Udiaeresis */
-    { 0x000000fc, 26016 }, /* udiaeresis */
-    { 0x000001db, 26027 }, /* Udoubleacute */
-    { 0x000001fb, 26040 }, /* udoubleacute */
-    { 0x000000d9, 26053 }, /* Ugrave */
-    { 0x000000f9, 26060 }, /* ugrave */
-    { 0x01001ee6, 26067 }, /* Uhook */
-    { 0x01001ee7, 26073 }, /* uhook */
-    { 0x010001af, 26079 }, /* Uhorn */
-    { 0x010001b0, 26085 }, /* uhorn */
-    { 0x01001ee8, 26091 }, /* Uhornacute */
-    { 0x01001ee9, 26102 }, /* uhornacute */
-    { 0x01001ef0, 26113 }, /* Uhornbelowdot */
-    { 0x01001ef1, 26127 }, /* uhornbelowdot */
-    { 0x01001eea, 26141 }, /* Uhorngrave */
-    { 0x01001eeb, 26152 }, /* uhorngrave */
-    { 0x01001eec, 26163 }, /* Uhornhook */
-    { 0x01001eed, 26173 }, /* uhornhook */
-    { 0x01001eee, 26183 }, /* Uhorntilde */
-    { 0x01001eef, 26194 }, /* uhorntilde */
-    { 0x000006ad, 26205 }, /* Ukrainian_ghe_with_upturn */
-    { 0x000006bd, 26231 }, /* Ukrainian_GHE_WITH_UPTURN */
-    { 0x000006a6, 26257 }, /* Ukrainian_i */
-    { 0x000006b6, 26269 }, /* Ukrainian_I */
-    { 0x000006a4, 26281 }, /* Ukrainian_ie */
-    { 0x000006b4, 26294 }, /* Ukrainian_IE */
-    { 0x000006a7, 26307 }, /* Ukrainian_yi */
-    { 0x000006b7, 26320 }, /* Ukrainian_YI */
-    { 0x000006a6, 26333 }, /* Ukranian_i */
-    { 0x000006b6, 26344 }, /* Ukranian_I */
-    { 0x000006a4, 26355 }, /* Ukranian_je */
-    { 0x000006b4, 26367 }, /* Ukranian_JE */
-    { 0x000006a7, 26379 }, /* Ukranian_yi */
-    { 0x000006b7, 26391 }, /* Ukranian_YI */
-    { 0x000003de, 26403 }, /* Umacron */
-    { 0x000003fe, 26411 }, /* umacron */
-    { 0x00000bc6, 26419 }, /* underbar */
-    { 0x0000005f, 26428 }, /* underscore */
-    { 0x0000ff65, 26439 }, /* Undo */
-    { 0x000008dd, 26444 }, /* union */
-    { 0x000003d9, 26450 }, /* Uogonek */
-    { 0x000003f9, 26458 }, /* uogonek */
-    { 0x0000ff52, 26466 }, /* Up */
-    { 0x000008fc, 26469 }, /* uparrow */
-    { 0x00000ba9, 26477 }, /* upcaret */
-    { 0x000009ec, 26485 }, /* upleftcorner */
-    { 0x000009eb, 26498 }, /* uprightcorner */
-    { 0x00000bc3, 26512 }, /* upshoe */
-    { 0x00000bd3, 26519 }, /* upstile */
-    { 0x00000bce, 26527 }, /* uptack */
-    { 0x000001d9, 26534 }, /* Uring */
-    { 0x000001f9, 26540 }, /* uring */
-    { 0x1000ff6e, 26546 }, /* User */
-    { 0x000003dd, 26551 }, /* Utilde */
-    { 0x000003fd, 26558 }, /* utilde */
-    { 0x00000056, 26565 }, /* V */
-    { 0x00000076, 26567 }, /* v */
-    { 0x000008c1, 26569 }, /* variation */
-    { 0x000009f8, 26579 }, /* vertbar */
-    { 0x000008a6, 26587 }, /* vertconnector */
-    { 0x000004de, 26601 }, /* voicedsound */
-    { 0x00ffffff, 26613 }, /* VoidSymbol */
-    { 0x000009e9, 26624 }, /* vt */
-    { 0x00000057, 26627 }, /* W */
-    { 0x00000077, 26629 }, /* w */
-    { 0x01001e82, 26631 }, /* Wacute */
-    { 0x01001e83, 26638 }, /* wacute */
-    { 0x01000174, 26645 }, /* Wcircumflex */
-    { 0x01000175, 26657 }, /* wcircumflex */
-    { 0x01001e84, 26669 }, /* Wdiaeresis */
-    { 0x01001e85, 26680 }, /* wdiaeresis */
-    { 0x01001e80, 26691 }, /* Wgrave */
-    { 0x01001e81, 26698 }, /* wgrave */
-    { 0x010020a9, 26705 }, /* WonSign */
-    { 0x00000058, 26713 }, /* X */
-    { 0x00000078, 26715 }, /* x */
-    { 0x01001e8a, 26717 }, /* Xabovedot */
-    { 0x01001e8b, 26727 }, /* xabovedot */
-    { 0x100811b9, 26737 }, /* XF8610ChannelsDown */
-    { 0x100811b8, 26756 }, /* XF8610ChannelsUp */
-    { 0x1008126f, 26773 }, /* XF863DMode */
-    { 0x1008ff39, 26784 }, /* XF86AddFavorite */
-    { 0x100811ad, 26800 }, /* XF86Addressbook */
-    { 0x10081230, 26816 }, /* XF86ALSToggle */
-    { 0x1008ff50, 26830 }, /* XF86ApplicationLeft */
-    { 0x1008ff51, 26850 }, /* XF86ApplicationRight */
-    { 0x10081244, 26871 }, /* XF86AppSelect */
-    { 0x10081177, 26885 }, /* XF86AspectRatio */
-    { 0x10081247, 26901 }, /* XF86Assistant */
-    { 0x1008121c, 26915 }, /* XF86AttendantOff */
-    { 0x1008121b, 26932 }, /* XF86AttendantOn */
-    { 0x1008121d, 26948 }, /* XF86AttendantToggle */
-    { 0x10081188, 26968 }, /* XF86Audio */
-    { 0x1008ff9b, 26978 }, /* XF86AudioCycleTrack */
-    { 0x1008126e, 26998 }, /* XF86AudioDesc */
-    { 0x1008ff97, 27012 }, /* XF86AudioForward */
-    { 0x1008ff11, 27029 }, /* XF86AudioLowerVolume */
-    { 0x1008ff32, 27050 }, /* XF86AudioMedia */
-    { 0x1008ffb2, 27065 }, /* XF86AudioMicMute */
-    { 0x1008ff12, 27082 }, /* XF86AudioMute */
-    { 0x1008ff17, 27096 }, /* XF86AudioNext */
-    { 0x1008ff31, 27110 }, /* XF86AudioPause */
-    { 0x1008ff14, 27125 }, /* XF86AudioPlay */
-    { 0x1008ffb6, 27139 }, /* XF86AudioPreset */
-    { 0x1008ff16, 27155 }, /* XF86AudioPrev */
-    { 0x1008ff13, 27169 }, /* XF86AudioRaiseVolume */
-    { 0x1008ff99, 27190 }, /* XF86AudioRandomPlay */
-    { 0x1008ff1c, 27210 }, /* XF86AudioRecord */
-    { 0x1008ff98, 27226 }, /* XF86AudioRepeat */
-    { 0x1008ff3e, 27242 }, /* XF86AudioRewind */
-    { 0x1008ff15, 27258 }, /* XF86AudioStop */
-    { 0x1008ff8d, 27272 }, /* XF86Away */
-    { 0x1008ff26, 27281 }, /* XF86Back */
-    { 0x1008ff3f, 27290 }, /* XF86BackForward */
-    { 0x1008ff93, 27306 }, /* XF86Battery */
-    { 0x1008ffa6, 27318 }, /* XF86Blue */
-    { 0x1008ff94, 27327 }, /* XF86Bluetooth */
-    { 0x1008ff52, 27341 }, /* XF86Book */
-    { 0x1008119b, 27350 }, /* XF86Break */
-    { 0x1008ff3b, 27360 }, /* XF86BrightnessAdjust */
-    { 0x100810f4, 27381 }, /* XF86BrightnessAuto */
-    { 0x10081251, 27400 }, /* XF86BrightnessMax */
-    { 0x10081250, 27418 }, /* XF86BrightnessMin */
-    { 0x10081240, 27436 }, /* XF86Buttonconfig */
-    { 0x1008ff54, 27453 }, /* XF86Calculater */
-    { 0x1008ff1d, 27468 }, /* XF86Calculator */
-    { 0x1008ff20, 27483 }, /* XF86Calendar */
-    { 0x10081218, 27496 }, /* XF86CameraDown */
-    { 0x10081210, 27511 }, /* XF86CameraFocus */
-    { 0x10081219, 27527 }, /* XF86CameraLeft */
-    { 0x1008121a, 27542 }, /* XF86CameraRight */
-    { 0x10081217, 27558 }, /* XF86CameraUp */
-    { 0x10081215, 27571 }, /* XF86CameraZoomIn */
-    { 0x10081216, 27588 }, /* XF86CameraZoomOut */
-    { 0x1008ff53, 27606 }, /* XF86CD */
-    { 0x10081193, 27613 }, /* XF86ChannelDown */
-    { 0x10081192, 27629 }, /* XF86ChannelUp */
-    { 0x1008ff55, 27643 }, /* XF86Clear */
-    { 0x1008fe21, 27653 }, /* XF86ClearGrab */
-    { 0x1008ff56, 27667 }, /* XF86Close */
-    { 0x1008ff3d, 27677 }, /* XF86Community */
-    { 0x100811b6, 27691 }, /* XF86ContextMenu */
-    { 0x1008ff22, 27707 }, /* XF86ContrastAdjust */
-    { 0x10081243, 27726 }, /* XF86ControlPanel */
-    { 0x1008ff57, 27743 }, /* XF86Copy */
-    { 0x1008ff58, 27752 }, /* XF86Cut */
-    { 0x1008ff9c, 27760 }, /* XF86CycleAngle */
-    { 0x10081277, 27775 }, /* XF86Data */
-    { 0x100811aa, 27784 }, /* XF86Database */
-    { 0x1008124a, 27797 }, /* XF86Dictate */
-    { 0x1008ff59, 27809 }, /* XF86Display */
-    { 0x100810f5, 27821 }, /* XF86DisplayOff */
-    { 0x100811af, 27836 }, /* XF86DisplayToggle */
-    { 0x1008ff5b, 27854 }, /* XF86Documents */
-    { 0x1008ff5a, 27868 }, /* XF86DOS */
-    { 0x10081185, 27876 }, /* XF86DVD */
-    { 0x100811a6, 27884 }, /* XF86Editor */
-    { 0x1008ff2c, 27895 }, /* XF86Eject */
-    { 0x10081249, 27905 }, /* XF86EmojiPicker */
-    { 0x1008ff5c, 27921 }, /* XF86Excel */
-    { 0x1008ff5d, 27931 }, /* XF86Explorer */
-    { 0x10081275, 27944 }, /* XF86FastReverse */
-    { 0x1008ff30, 27960 }, /* XF86Favorites */
-    { 0x1008ff3c, 27974 }, /* XF86Finance */
-    { 0x100811d0, 27986 }, /* XF86Fn */
-    { 0x100811d1, 27993 }, /* XF86Fn_Esc */
-    { 0x100811e5, 28004 }, /* XF86FnRightShift */
-    { 0x1008ff27, 28021 }, /* XF86Forward */
-    { 0x1008ff9d, 28033 }, /* XF86FrameBack */
-    { 0x1008ff9e, 28047 }, /* XF86FrameForward */
-    { 0x1008ffb8, 28064 }, /* XF86FullScreen */
-    { 0x1008ff5e, 28079 }, /* XF86Game */
-    { 0x1008ff5f, 28088 }, /* XF86Go */
-    { 0x100811a8, 28095 }, /* XF86GraphicsEditor */
-    { 0x1008ffa4, 28114 }, /* XF86Green */
-    { 0x100811be, 28124 }, /* XF86HangupPhone */
-    { 0x1008ffa8, 28140 }, /* XF86Hibernate */
-    { 0x1008ff37, 28154 }, /* XF86History */
-    { 0x1008ff18, 28166 }, /* XF86HomePage */
-    { 0x1008ff3a, 28179 }, /* XF86HotLinks */
-    { 0x100811ba, 28192 }, /* XF86Images */
-    { 0x10081166, 28203 }, /* XF86Info */
-    { 0x1008ff60, 28212 }, /* XF86iTouch */
-    { 0x10081242, 28223 }, /* XF86Journal */
-    { 0x1008ff06, 28235 }, /* XF86KbdBrightnessDown */
-    { 0x1008ff05, 28257 }, /* XF86KbdBrightnessUp */
-    { 0x10081264, 28277 }, /* XF86KbdInputAssistAccept */
-    { 0x10081265, 28302 }, /* XF86KbdInputAssistCancel */
-    { 0x10081261, 28327 }, /* XF86KbdInputAssistNext */
-    { 0x10081263, 28350 }, /* XF86KbdInputAssistNextgroup */
-    { 0x10081260, 28378 }, /* XF86KbdInputAssistPrev */
-    { 0x10081262, 28401 }, /* XF86KbdInputAssistPrevgroup */
-    { 0x100812b8, 28429 }, /* XF86KbdLcdMenu1 */
-    { 0x100812b9, 28445 }, /* XF86KbdLcdMenu2 */
-    { 0x100812ba, 28461 }, /* XF86KbdLcdMenu3 */
-    { 0x100812bb, 28477 }, /* XF86KbdLcdMenu4 */
-    { 0x100812bc, 28493 }, /* XF86KbdLcdMenu5 */
-    { 0x1008ff04, 28509 }, /* XF86KbdLightOnOff */
-    { 0x1008ffb3, 28527 }, /* XF86Keyboard */
-    { 0x1008ff40, 28540 }, /* XF86Launch0 */
-    { 0x1008ff41, 28552 }, /* XF86Launch1 */
-    { 0x1008ff42, 28564 }, /* XF86Launch2 */
-    { 0x1008ff43, 28576 }, /* XF86Launch3 */
-    { 0x1008ff44, 28588 }, /* XF86Launch4 */
-    { 0x1008ff45, 28600 }, /* XF86Launch5 */
-    { 0x1008ff46, 28612 }, /* XF86Launch6 */
-    { 0x1008ff47, 28624 }, /* XF86Launch7 */
-    { 0x1008ff48, 28636 }, /* XF86Launch8 */
-    { 0x1008ff49, 28648 }, /* XF86Launch9 */
-    { 0x1008ff4a, 28660 }, /* XF86LaunchA */
-    { 0x1008ff4b, 28672 }, /* XF86LaunchB */
-    { 0x1008ff4c, 28684 }, /* XF86LaunchC */
-    { 0x1008ff4d, 28696 }, /* XF86LaunchD */
-    { 0x1008ff4e, 28708 }, /* XF86LaunchE */
-    { 0x1008ff4f, 28720 }, /* XF86LaunchF */
-    { 0x10081269, 28732 }, /* XF86LeftDown */
-    { 0x10081268, 28745 }, /* XF86LeftUp */
-    { 0x1008ff35, 28756 }, /* XF86LightBulb */
-    { 0x1008121e, 28770 }, /* XF86LightsToggle */
-    { 0x1008fe25, 28787 }, /* XF86LogGrabInfo */
-    { 0x1008ff61, 28803 }, /* XF86LogOff */
-    { 0x1008fe24, 28814 }, /* XF86LogWindowTree */
-    { 0x10081290, 28832 }, /* XF86Macro1 */
-    { 0x10081299, 28843 }, /* XF86Macro10 */
-    { 0x1008129a, 28855 }, /* XF86Macro11 */
-    { 0x1008129b, 28867 }, /* XF86Macro12 */
-    { 0x1008129c, 28879 }, /* XF86Macro13 */
-    { 0x1008129d, 28891 }, /* XF86Macro14 */
-    { 0x1008129e, 28903 }, /* XF86Macro15 */
-    { 0x1008129f, 28915 }, /* XF86Macro16 */
-    { 0x100812a0, 28927 }, /* XF86Macro17 */
-    { 0x100812a1, 28939 }, /* XF86Macro18 */
-    { 0x100812a2, 28951 }, /* XF86Macro19 */
-    { 0x10081291, 28963 }, /* XF86Macro2 */
-    { 0x100812a3, 28974 }, /* XF86Macro20 */
-    { 0x100812a4, 28986 }, /* XF86Macro21 */
-    { 0x100812a5, 28998 }, /* XF86Macro22 */
-    { 0x100812a6, 29010 }, /* XF86Macro23 */
-    { 0x100812a7, 29022 }, /* XF86Macro24 */
-    { 0x100812a8, 29034 }, /* XF86Macro25 */
-    { 0x100812a9, 29046 }, /* XF86Macro26 */
-    { 0x100812aa, 29058 }, /* XF86Macro27 */
-    { 0x100812ab, 29070 }, /* XF86Macro28 */
-    { 0x100812ac, 29082 }, /* XF86Macro29 */
-    { 0x10081292, 29094 }, /* XF86Macro3 */
-    { 0x100812ad, 29105 }, /* XF86Macro30 */
-    { 0x10081293, 29117 }, /* XF86Macro4 */
-    { 0x10081294, 29128 }, /* XF86Macro5 */
-    { 0x10081295, 29139 }, /* XF86Macro6 */
-    { 0x10081296, 29150 }, /* XF86Macro7 */
-    { 0x10081297, 29161 }, /* XF86Macro8 */
-    { 0x10081298, 29172 }, /* XF86Macro9 */
-    { 0x100812b3, 29183 }, /* XF86MacroPreset1 */
-    { 0x100812b4, 29200 }, /* XF86MacroPreset2 */
-    { 0x100812b5, 29217 }, /* XF86MacroPreset3 */
-    { 0x100812b2, 29234 }, /* XF86MacroPresetCycle */
-    { 0x100812b0, 29255 }, /* XF86MacroRecordStart */
-    { 0x100812b1, 29276 }, /* XF86MacroRecordStop */
-    { 0x1008ff19, 29296 }, /* XF86Mail */
-    { 0x1008ff90, 29305 }, /* XF86MailForward */
-    { 0x1008ff62, 29321 }, /* XF86Market */
-    { 0x100811b7, 29332 }, /* XF86MediaRepeat */
-    { 0x1008126b, 29348 }, /* XF86MediaTopMenu */
-    { 0x1008ff63, 29365 }, /* XF86Meeting */
-    { 0x1008ff1e, 29377 }, /* XF86Memo */
-    { 0x1008ff65, 29386 }, /* XF86MenuKB */
-    { 0x1008ff66, 29397 }, /* XF86MenuPB */
-    { 0x1008ff8e, 29408 }, /* XF86Messenger */
-    { 0x1008ff01, 29422 }, /* XF86ModeLock */
-    { 0x1008ff07, 29435 }, /* XF86MonBrightnessCycle */
-    { 0x1008ff03, 29458 }, /* XF86MonBrightnessDown */
-    { 0x1008ff02, 29480 }, /* XF86MonBrightnessUp */
-    { 0x1008ff92, 29500 }, /* XF86Music */
-    { 0x1008ff33, 29510 }, /* XF86MyComputer */
-    { 0x1008ff67, 29525 }, /* XF86MySites */
-    { 0x1008ff68, 29537 }, /* XF86New */
-    { 0x1008ff69, 29545 }, /* XF86News */
-    { 0x1008fe22, 29554 }, /* XF86Next_VMode */
-    { 0x10081270, 29569 }, /* XF86NextFavorite */
-    { 0x100811bc, 29586 }, /* XF86NotificationCenter */
-    { 0x10081200, 29609 }, /* XF86Numeric0 */
-    { 0x10081201, 29622 }, /* XF86Numeric1 */
-    { 0x1008126c, 29635 }, /* XF86Numeric11 */
-    { 0x1008126d, 29649 }, /* XF86Numeric12 */
-    { 0x10081202, 29663 }, /* XF86Numeric2 */
-    { 0x10081203, 29676 }, /* XF86Numeric3 */
-    { 0x10081204, 29689 }, /* XF86Numeric4 */
-    { 0x10081205, 29702 }, /* XF86Numeric5 */
-    { 0x10081206, 29715 }, /* XF86Numeric6 */
-    { 0x10081207, 29728 }, /* XF86Numeric7 */
-    { 0x10081208, 29741 }, /* XF86Numeric8 */
-    { 0x10081209, 29754 }, /* XF86Numeric9 */
-    { 0x1008120c, 29767 }, /* XF86NumericA */
-    { 0x1008120d, 29780 }, /* XF86NumericB */
-    { 0x1008120e, 29793 }, /* XF86NumericC */
-    { 0x1008120f, 29806 }, /* XF86NumericD */
-    { 0x1008120b, 29819 }, /* XF86NumericPound */
-    { 0x1008120a, 29836 }, /* XF86NumericStar */
-    { 0x1008ff6a, 29852 }, /* XF86OfficeHome */
-    { 0x10081278, 29867 }, /* XF86OnScreenKeyboard */
-    { 0x1008ff6b, 29888 }, /* XF86Open */
-    { 0x1008ff38, 29897 }, /* XF86OpenURL */
-    { 0x1008ff6c, 29909 }, /* XF86Option */
-    { 0x1008ff6d, 29920 }, /* XF86Paste */
-    { 0x10081272, 29930 }, /* XF86PauseRecord */
-    { 0x1008ff6e, 29946 }, /* XF86Phone */
-    { 0x100811bd, 29956 }, /* XF86PickupPhone */
-    { 0x1008ff91, 29972 }, /* XF86Pictures */
-    { 0x1008ff21, 29985 }, /* XF86PowerDown */
-    { 0x1008ff2a, 29999 }, /* XF86PowerOff */
-    { 0x100811a9, 30012 }, /* XF86Presentation */
-    { 0x1008fe23, 30029 }, /* XF86Prev_VMode */
-    { 0x10081279, 30044 }, /* XF86PrivacyScreenToggle */
-    { 0x1008ff70, 30068 }, /* XF86Q */
-    { 0x1008ffa3, 30074 }, /* XF86Red */
-    { 0x1008ff29, 30082 }, /* XF86Refresh */
-    { 0x1008ff73, 30094 }, /* XF86Reload */
-    { 0x1008ff72, 30105 }, /* XF86Reply */
-    { 0x1008ffb5, 30115 }, /* XF86RFKill */
-    { 0x10081267, 30126 }, /* XF86RightDown */
-    { 0x10081266, 30140 }, /* XF86RightUp */
-    { 0x1008ff24, 30152 }, /* XF86RockerDown */
-    { 0x1008ff25, 30167 }, /* XF86RockerEnter */
-    { 0x1008ff23, 30183 }, /* XF86RockerUp */
-    { 0x1008126a, 30196 }, /* XF86RootMenu */
-    { 0x1008ff74, 30209 }, /* XF86RotateWindows */
-    { 0x1008ff76, 30227 }, /* XF86RotationKB */
-    { 0x1008ffb7, 30242 }, /* XF86RotationLockToggle */
-    { 0x1008ff75, 30265 }, /* XF86RotationPB */
-    { 0x1008ff77, 30280 }, /* XF86Save */
-    { 0x1008ff2d, 30289 }, /* XF86ScreenSaver */
-    { 0x10081245, 30305 }, /* XF86Screensaver */
-    { 0x1008ff7a, 30321 }, /* XF86ScrollClick */
-    { 0x1008ff79, 30337 }, /* XF86ScrollDown */
-    { 0x1008ff78, 30352 }, /* XF86ScrollUp */
-    { 0x1008ff1b, 30365 }, /* XF86Search */
-    { 0x1008ffa0, 30376 }, /* XF86Select */
-    { 0x1008127a, 30387 }, /* XF86SelectiveScreenshot */
-    { 0x1008ff7b, 30411 }, /* XF86Send */
-    { 0x1008ff36, 30420 }, /* XF86Shop */
-    { 0x1008ff2f, 30429 }, /* XF86Sleep */
-    { 0x10081276, 30439 }, /* XF86SlowReverse */
-    { 0x1008ff7c, 30455 }, /* XF86Spell */
-    { 0x100811b0, 30465 }, /* XF86SpellCheck */
-    { 0x1008ff7d, 30480 }, /* XF86SplitScreen */
-    { 0x1008ff10, 30496 }, /* XF86Standby */
-    { 0x1008ff1a, 30508 }, /* XF86Start */
-    { 0x1008ff28, 30518 }, /* XF86Stop */
-    { 0x10081271, 30527 }, /* XF86StopRecord */
-    { 0x1008ff9a, 30542 }, /* XF86Subtitle */
-    { 0x1008ff7e, 30555 }, /* XF86Support */
-    { 0x1008ffa7, 30567 }, /* XF86Suspend */
-    { 0x1008fe01, 30579 }, /* XF86Switch_VT_1 */
-    { 0x1008fe0a, 30595 }, /* XF86Switch_VT_10 */
-    { 0x1008fe0b, 30612 }, /* XF86Switch_VT_11 */
-    { 0x1008fe0c, 30629 }, /* XF86Switch_VT_12 */
-    { 0x1008fe02, 30646 }, /* XF86Switch_VT_2 */
-    { 0x1008fe03, 30662 }, /* XF86Switch_VT_3 */
-    { 0x1008fe04, 30678 }, /* XF86Switch_VT_4 */
-    { 0x1008fe05, 30694 }, /* XF86Switch_VT_5 */
-    { 0x1008fe06, 30710 }, /* XF86Switch_VT_6 */
-    { 0x1008fe07, 30726 }, /* XF86Switch_VT_7 */
-    { 0x1008fe08, 30742 }, /* XF86Switch_VT_8 */
-    { 0x1008fe09, 30758 }, /* XF86Switch_VT_9 */
-    { 0x10081241, 30774 }, /* XF86Taskmanager */
-    { 0x1008ff7f, 30790 }, /* XF86TaskPane */
-    { 0x1008ff80, 30803 }, /* XF86Terminal */
-    { 0x1008ff9f, 30816 }, /* XF86Time */
-    { 0x1008ff1f, 30825 }, /* XF86ToDoList */
-    { 0x1008ff81, 30838 }, /* XF86Tools */
-    { 0x1008ffa2, 30848 }, /* XF86TopMenu */
-    { 0x1008ffb1, 30860 }, /* XF86TouchpadOff */
-    { 0x1008ffb0, 30876 }, /* XF86TouchpadOn */
-    { 0x1008ffa9, 30891 }, /* XF86TouchpadToggle */
-    { 0x1008ff82, 30910 }, /* XF86Travel */
-    { 0x1008fe20, 30921 }, /* XF86Ungrab */
-    { 0x10081274, 30932 }, /* XF86Unmute */
-    { 0x1008ff85, 30943 }, /* XF86User1KB */
-    { 0x1008ff86, 30955 }, /* XF86User2KB */
-    { 0x1008ff84, 30967 }, /* XF86UserPB */
-    { 0x1008ff96, 30978 }, /* XF86UWB */
-    { 0x1008ff34, 30986 }, /* XF86VendorHome */
-    { 0x1008ff87, 31001 }, /* XF86Video */
-    { 0x100811a0, 31011 }, /* XF86VideoPhone */
-    { 0x1008ffa1, 31026 }, /* XF86View */
-    { 0x10081273, 31035 }, /* XF86VOD */
-    { 0x10081246, 31043 }, /* XF86VoiceCommand */
-    { 0x100811ac, 31060 }, /* XF86Voicemail */
-    { 0x1008ff2b, 31074 }, /* XF86WakeUp */
-    { 0x1008ff8f, 31085 }, /* XF86WebCam */
-    { 0x1008ff88, 31096 }, /* XF86WheelButton */
-    { 0x1008ff95, 31112 }, /* XF86WLAN */
-    { 0x1008ff89, 31121 }, /* XF86Word */
-    { 0x10081211, 31130 }, /* XF86WPSButton */
-    { 0x1008ffb4, 31144 }, /* XF86WWAN */
-    { 0x1008ff2e, 31153 }, /* XF86WWW */
-    { 0x1008ff8a, 31161 }, /* XF86Xfer */
-    { 0x1008ffa5, 31170 }, /* XF86Yellow */
-    { 0x1008ff8b, 31181 }, /* XF86ZoomIn */
-    { 0x1008ff8c, 31192 }, /* XF86ZoomOut */
-    { 0x100811a4, 31204 }, /* XF86ZoomReset */
-    { 0x00000059, 31218 }, /* Y */
-    { 0x00000079, 31220 }, /* y */
-    { 0x000000dd, 31222 }, /* Yacute */
-    { 0x000000fd, 31229 }, /* yacute */
-    { 0x01001ef4, 31236 }, /* Ybelowdot */
-    { 0x01001ef5, 31246 }, /* ybelowdot */
-    { 0x01000176, 31256 }, /* Ycircumflex */
-    { 0x01000177, 31268 }, /* ycircumflex */
-    { 0x000000ff, 31280 }, /* ydiaeresis */
-    { 0x000013be, 31291 }, /* Ydiaeresis */
-    { 0x000000a5, 31302 }, /* yen */
-    { 0x01001ef2, 31306 }, /* Ygrave */
-    { 0x01001ef3, 31313 }, /* ygrave */
-    { 0x01001ef6, 31320 }, /* Yhook */
-    { 0x01001ef7, 31326 }, /* yhook */
-    { 0x01001ef8, 31332 }, /* Ytilde */
-    { 0x01001ef9, 31339 }, /* ytilde */
-    { 0x0000005a, 31346 }, /* Z */
-    { 0x0000007a, 31348 }, /* z */
-    { 0x000001af, 31350 }, /* Zabovedot */
-    { 0x000001bf, 31360 }, /* zabovedot */
-    { 0x000001ac, 31370 }, /* Zacute */
-    { 0x000001bc, 31377 }, /* zacute */
-    { 0x000001ae, 31384 }, /* Zcaron */
-    { 0x000001be, 31391 }, /* zcaron */
-    { 0x0000ff3d, 31398 }, /* Zen_Koho */
-    { 0x0000ff28, 31407 }, /* Zenkaku */
-    { 0x0000ff2a, 31415 }, /* Zenkaku_Hankaku */
-    { 0x01002080, 31431 }, /* zerosubscript */
-    { 0x01002070, 31445 }, /* zerosuperior */
-    { 0x010001b5, 31458 }, /* Zstroke */
-    { 0x010001b6, 31466 }, /* zstroke */
+    { 0x0000fe51, 10590 }, /* dead_acute */
+    { 0x0000fe6b, 10601 }, /* dead_belowbreve */
+    { 0x0000fe69, 10617 }, /* dead_belowcircumflex */
+    { 0x0000fe6e, 10638 }, /* dead_belowcomma */
+    { 0x0000fe6c, 10654 }, /* dead_belowdiaeresis */
+    { 0x0000fe60, 10674 }, /* dead_belowdot */
+    { 0x0000fe68, 10688 }, /* dead_belowmacron */
+    { 0x0000fe67, 10705 }, /* dead_belowring */
+    { 0x0000fe6a, 10720 }, /* dead_belowtilde */
+    { 0x0000fe55, 10736 }, /* dead_breve */
+    { 0x0000fe8b, 10747 }, /* dead_capital_schwa */
+    { 0x0000fe5a, 10766 }, /* dead_caron */
+    { 0x0000fe5b, 10777 }, /* dead_cedilla */
+    { 0x0000fe52, 10790 }, /* dead_circumflex */
+    { 0x0000fe6f, 10806 }, /* dead_currency */
+    { 0x0000fe65, 10820 }, /* dead_dasia */
+    { 0x0000fe57, 10831 }, /* dead_diaeresis */
+    { 0x0000fe59, 10846 }, /* dead_doubleacute */
+    { 0x0000fe66, 10863 }, /* dead_doublegrave */
+    { 0x0000fe82, 10880 }, /* dead_e */
+    { 0x0000fe83, 10887 }, /* dead_E */
+    { 0x0000fe50, 10894 }, /* dead_grave */
+    { 0x0000fe8c, 10905 }, /* dead_greek */
+    { 0x0000fe8d, 10916 }, /* dead_hamza */
+    { 0x0000fe61, 10927 }, /* dead_hook */
+    { 0x0000fe62, 10937 }, /* dead_horn */
+    { 0x0000fe84, 10947 }, /* dead_i */
+    { 0x0000fe85, 10954 }, /* dead_I */
+    { 0x0000fe6d, 10961 }, /* dead_invertedbreve */
+    { 0x0000fe5d, 10980 }, /* dead_iota */
+    { 0x0000fe54, 10990 }, /* dead_macron */
+    { 0x0000fe86, 11002 }, /* dead_o */
+    { 0x0000fe87, 11009 }, /* dead_O */
+    { 0x0000fe5c, 11016 }, /* dead_ogonek */
+    { 0x0000fe53, 11028 }, /* dead_perispomeni */
+    { 0x0000fe64, 11045 }, /* dead_psili */
+    { 0x0000fe8a, 11056 }, /* dead_schwa */
+    { 0x0000fe8b, 11067 }, /* dead_SCHWA */
+    { 0x0000fe5f, 11078 }, /* dead_semivoiced_sound */
+    { 0x0000fe8a, 11100 }, /* dead_small_schwa */
+    { 0x0000fe63, 11117 }, /* dead_stroke */
+    { 0x0000fe53, 11129 }, /* dead_tilde */
+    { 0x0000fe88, 11140 }, /* dead_u */
+    { 0x0000fe89, 11147 }, /* dead_U */
+    { 0x0000fe5e, 11154 }, /* dead_voiced_sound */
+    { 0x00000abd, 11172 }, /* decimalpoint */
+    { 0x000000b0, 11185 }, /* degree */
+    { 0x0000ffff, 11192 }, /* Delete */
+    { 0x1000ff73, 11199 }, /* DeleteChar */
+    { 0x1000ff71, 11210 }, /* DeleteLine */
+    { 0x1000fe60, 11221 }, /* Dgrave_accent */
+    { 0x000000a8, 11235 }, /* diaeresis */
+    { 0x00000aed, 11245 }, /* diamond */
+    { 0x00000aa5, 11253 }, /* digitspace */
+    { 0x0100222c, 11264 }, /* dintegral */
+    { 0x000000f7, 11274 }, /* division */
+    { 0x00000024, 11283 }, /* dollar */
+    { 0x010020ab, 11290 }, /* DongSign */
+    { 0x00000aaf, 11299 }, /* doubbaselinedot */
+    { 0x000001bd, 11315 }, /* doubleacute */
+    { 0x00000af2, 11327 }, /* doubledagger */
+    { 0x00000afe, 11340 }, /* doublelowquotemark */
+    { 0x0000ff54, 11359 }, /* Down */
+    { 0x000008fe, 11364 }, /* downarrow */
+    { 0x00000ba8, 11374 }, /* downcaret */
+    { 0x00000bd6, 11384 }, /* downshoe */
+    { 0x00000bc4, 11393 }, /* downstile */
+    { 0x00000bc2, 11403 }, /* downtack */
+    { 0x1000ff00, 11412 }, /* DRemove */
+    { 0x1000feb0, 11420 }, /* Dring_accent */
+    { 0x000001d0, 11433 }, /* Dstroke */
+    { 0x000001f0, 11441 }, /* dstroke */
+    { 0x1000fe7e, 11449 }, /* Dtilde */
+    { 0x00000045, 11456 }, /* E */
+    { 0x00000065, 11458 }, /* e */
+    { 0x000003cc, 11460 }, /* Eabovedot */
+    { 0x000003ec, 11470 }, /* eabovedot */
+    { 0x000000c9, 11480 }, /* Eacute */
+    { 0x000000e9, 11487 }, /* eacute */
+    { 0x01001eb8, 11494 }, /* Ebelowdot */
+    { 0x01001eb9, 11504 }, /* ebelowdot */
+    { 0x000001cc, 11514 }, /* Ecaron */
+    { 0x000001ec, 11521 }, /* ecaron */
+    { 0x000000ca, 11528 }, /* Ecircumflex */
+    { 0x000000ea, 11540 }, /* ecircumflex */
+    { 0x01001ebe, 11552 }, /* Ecircumflexacute */
+    { 0x01001ebf, 11569 }, /* ecircumflexacute */
+    { 0x01001ec6, 11586 }, /* Ecircumflexbelowdot */
+    { 0x01001ec7, 11606 }, /* ecircumflexbelowdot */
+    { 0x01001ec0, 11626 }, /* Ecircumflexgrave */
+    { 0x01001ec1, 11643 }, /* ecircumflexgrave */
+    { 0x01001ec2, 11660 }, /* Ecircumflexhook */
+    { 0x01001ec3, 11676 }, /* ecircumflexhook */
+    { 0x01001ec4, 11692 }, /* Ecircumflextilde */
+    { 0x01001ec5, 11709 }, /* ecircumflextilde */
+    { 0x010020a0, 11726 }, /* EcuSign */
+    { 0x000000cb, 11734 }, /* Ediaeresis */
+    { 0x000000eb, 11745 }, /* ediaeresis */
+    { 0x000000c8, 11756 }, /* Egrave */
+    { 0x000000e8, 11763 }, /* egrave */
+    { 0x01001eba, 11770 }, /* Ehook */
+    { 0x01001ebb, 11776 }, /* ehook */
+    { 0x01002088, 11782 }, /* eightsubscript */
+    { 0x01002078, 11797 }, /* eightsuperior */
+    { 0x0000ff2f, 11811 }, /* Eisu_Shift */
+    { 0x0000ff30, 11822 }, /* Eisu_toggle */
+    { 0x01002208, 11834 }, /* elementof */
+    { 0x00000aae, 11844 }, /* ellipsis */
+    { 0x00000aa3, 11853 }, /* em3space */
+    { 0x00000aa4, 11862 }, /* em4space */
+    { 0x000003aa, 11871 }, /* Emacron */
+    { 0x000003ba, 11879 }, /* emacron */
+    { 0x00000aa9, 11887 }, /* emdash */
+    { 0x00000ade, 11894 }, /* emfilledcircle */
+    { 0x00000adf, 11909 }, /* emfilledrect */
+    { 0x00000ace, 11922 }, /* emopencircle */
+    { 0x00000acf, 11935 }, /* emopenrectangle */
+    { 0x01002205, 11951 }, /* emptyset */
+    { 0x00000aa1, 11960 }, /* emspace */
+    { 0x0000ff57, 11968 }, /* End */
+    { 0x00000aaa, 11972 }, /* endash */
+    { 0x00000ae6, 11979 }, /* enfilledcircbullet */
+    { 0x00000ae7, 11998 }, /* enfilledsqbullet */
+    { 0x000003bd, 12015 }, /* ENG */
+    { 0x000003bf, 12019 }, /* eng */
+    { 0x00000ae0, 12023 }, /* enopencircbullet */
+    { 0x00000ae1, 12040 }, /* enopensquarebullet */
+    { 0x00000aa2, 12059 }, /* enspace */
+    { 0x000001ca, 12067 }, /* Eogonek */
+    { 0x000001ea, 12075 }, /* eogonek */
+    { 0x0000003d, 12083 }, /* equal */
+    { 0x0000ff1b, 12089 }, /* Escape */
+    { 0x000000d0, 12096 }, /* ETH */
+    { 0x000000d0, 12100 }, /* Eth */
+    { 0x000000f0, 12104 }, /* eth */
+    { 0x01001ebc, 12108 }, /* Etilde */
+    { 0x01001ebd, 12115 }, /* etilde */
+    { 0x000020ac, 12122 }, /* EuroSign */
+    { 0x00000021, 12131 }, /* exclam */
+    { 0x000000a1, 12138 }, /* exclamdown */
+    { 0x0000ff62, 12149 }, /* Execute */
+    { 0x1000ff76, 12157 }, /* Ext16bit_L */
+    { 0x1000ff77, 12168 }, /* Ext16bit_R */
+    { 0x010001b7, 12179 }, /* EZH */
+    { 0x01000292, 12183 }, /* ezh */
+    { 0x00000046, 12187 }, /* F */
+    { 0x00000066, 12189 }, /* f */
+    { 0x0000ffbe, 12191 }, /* F1 */
+    { 0x0000ffc7, 12194 }, /* F10 */
+    { 0x0000ffc8, 12198 }, /* F11 */
+    { 0x0000ffc9, 12202 }, /* F12 */
+    { 0x0000ffca, 12206 }, /* F13 */
+    { 0x0000ffcb, 12210 }, /* F14 */
+    { 0x0000ffcc, 12214 }, /* F15 */
+    { 0x0000ffcd, 12218 }, /* F16 */
+    { 0x0000ffce, 12222 }, /* F17 */
+    { 0x0000ffcf, 12226 }, /* F18 */
+    { 0x0000ffd0, 12230 }, /* F19 */
+    { 0x0000ffbf, 12234 }, /* F2 */
+    { 0x0000ffd1, 12237 }, /* F20 */
+    { 0x0000ffd2, 12241 }, /* F21 */
+    { 0x0000ffd3, 12245 }, /* F22 */
+    { 0x0000ffd4, 12249 }, /* F23 */
+    { 0x0000ffd5, 12253 }, /* F24 */
+    { 0x0000ffd6, 12257 }, /* F25 */
+    { 0x0000ffd7, 12261 }, /* F26 */
+    { 0x0000ffd8, 12265 }, /* F27 */
+    { 0x0000ffd9, 12269 }, /* F28 */
+    { 0x0000ffda, 12273 }, /* F29 */
+    { 0x0000ffc0, 12277 }, /* F3 */
+    { 0x0000ffdb, 12280 }, /* F30 */
+    { 0x0000ffdc, 12284 }, /* F31 */
+    { 0x0000ffdd, 12288 }, /* F32 */
+    { 0x0000ffde, 12292 }, /* F33 */
+    { 0x0000ffdf, 12296 }, /* F34 */
+    { 0x0000ffe0, 12300 }, /* F35 */
+    { 0x0000ffc1, 12304 }, /* F4 */
+    { 0x0000ffc2, 12307 }, /* F5 */
+    { 0x0000ffc3, 12310 }, /* F6 */
+    { 0x0000ffc4, 12313 }, /* F7 */
+    { 0x0000ffc5, 12316 }, /* F8 */
+    { 0x0000ffc6, 12319 }, /* F9 */
+    { 0x01001e1e, 12322 }, /* Fabovedot */
+    { 0x01001e1f, 12332 }, /* fabovedot */
+    { 0x010006f0, 12342 }, /* Farsi_0 */
+    { 0x010006f1, 12350 }, /* Farsi_1 */
+    { 0x010006f2, 12358 }, /* Farsi_2 */
+    { 0x010006f3, 12366 }, /* Farsi_3 */
+    { 0x010006f4, 12374 }, /* Farsi_4 */
+    { 0x010006f5, 12382 }, /* Farsi_5 */
+    { 0x010006f6, 12390 }, /* Farsi_6 */
+    { 0x010006f7, 12398 }, /* Farsi_7 */
+    { 0x010006f8, 12406 }, /* Farsi_8 */
+    { 0x010006f9, 12414 }, /* Farsi_9 */
+    { 0x010006cc, 12422 }, /* Farsi_yeh */
+    { 0x00000af8, 12432 }, /* femalesymbol */
+    { 0x000009e3, 12445 }, /* ff */
+    { 0x010020a3, 12448 }, /* FFrancSign */
+    { 0x00000abb, 12459 }, /* figdash */
+    { 0x00000adc, 12467 }, /* filledlefttribullet */
+    { 0x00000adb, 12487 }, /* filledrectbullet */
+    { 0x00000add, 12504 }, /* filledrighttribullet */
+    { 0x00000ae9, 12525 }, /* filledtribulletdown */
+    { 0x00000ae8, 12545 }, /* filledtribulletup */
+    { 0x0000ff68, 12563 }, /* Find */
+    { 0x0000fed0, 12568 }, /* First_Virtual_Screen */
+    { 0x00000ac5, 12589 }, /* fiveeighths */
+    { 0x00000ab7, 12601 }, /* fivesixths */
+    { 0x01002085, 12612 }, /* fivesubscript */
+    { 0x01002075, 12626 }, /* fivesuperior */
+    { 0x00000ab5, 12639 }, /* fourfifths */
+    { 0x01002084, 12650 }, /* foursubscript */
+    { 0x01002074, 12664 }, /* foursuperior */
+    { 0x0100221c, 12677 }, /* fourthroot */
+    { 0x000008f6, 12688 }, /* function */
+    { 0x00000047, 12697 }, /* G */
+    { 0x00000067, 12699 }, /* g */
+    { 0x000002d5, 12701 }, /* Gabovedot */
+    { 0x000002f5, 12711 }, /* gabovedot */
+    { 0x000002ab, 12721 }, /* Gbreve */
+    { 0x000002bb, 12728 }, /* gbreve */
+    { 0x010001e6, 12735 }, /* Gcaron */
+    { 0x010001e7, 12742 }, /* gcaron */
+    { 0x000003ab, 12749 }, /* Gcedilla */
+    { 0x000003bb, 12758 }, /* gcedilla */
+    { 0x000002d8, 12767 }, /* Gcircumflex */
+    { 0x000002f8, 12779 }, /* gcircumflex */
+    { 0x010010d0, 12791 }, /* Georgian_an */
+    { 0x010010d1, 12803 }, /* Georgian_ban */
+    { 0x010010ea, 12816 }, /* Georgian_can */
+    { 0x010010ed, 12829 }, /* Georgian_char */
+    { 0x010010e9, 12843 }, /* Georgian_chin */
+    { 0x010010ec, 12857 }, /* Georgian_cil */
+    { 0x010010d3, 12870 }, /* Georgian_don */
+    { 0x010010d4, 12883 }, /* Georgian_en */
+    { 0x010010f6, 12895 }, /* Georgian_fi */
+    { 0x010010d2, 12907 }, /* Georgian_gan */
+    { 0x010010e6, 12920 }, /* Georgian_ghan */
+    { 0x010010f0, 12934 }, /* Georgian_hae */
+    { 0x010010f4, 12947 }, /* Georgian_har */
+    { 0x010010f1, 12960 }, /* Georgian_he */
+    { 0x010010f2, 12972 }, /* Georgian_hie */
+    { 0x010010f5, 12985 }, /* Georgian_hoe */
+    { 0x010010d8, 12998 }, /* Georgian_in */
+    { 0x010010ef, 13010 }, /* Georgian_jhan */
+    { 0x010010eb, 13024 }, /* Georgian_jil */
+    { 0x010010d9, 13037 }, /* Georgian_kan */
+    { 0x010010e5, 13050 }, /* Georgian_khar */
+    { 0x010010da, 13064 }, /* Georgian_las */
+    { 0x010010db, 13077 }, /* Georgian_man */
+    { 0x010010dc, 13090 }, /* Georgian_nar */
+    { 0x010010dd, 13103 }, /* Georgian_on */
+    { 0x010010de, 13115 }, /* Georgian_par */
+    { 0x010010e4, 13128 }, /* Georgian_phar */
+    { 0x010010e7, 13142 }, /* Georgian_qar */
+    { 0x010010e0, 13155 }, /* Georgian_rae */
+    { 0x010010e1, 13168 }, /* Georgian_san */
+    { 0x010010e8, 13181 }, /* Georgian_shin */
+    { 0x010010d7, 13195 }, /* Georgian_tan */
+    { 0x010010e2, 13208 }, /* Georgian_tar */
+    { 0x010010e3, 13221 }, /* Georgian_un */
+    { 0x010010d5, 13233 }, /* Georgian_vin */
+    { 0x010010f3, 13246 }, /* Georgian_we */
+    { 0x010010ee, 13258 }, /* Georgian_xan */
+    { 0x010010d6, 13271 }, /* Georgian_zen */
+    { 0x010010df, 13284 }, /* Georgian_zhar */
+    { 0x00000060, 13298 }, /* grave */
+    { 0x0000003e, 13304 }, /* greater */
+    { 0x000008be, 13312 }, /* greaterthanequal */
+    { 0x000007ae, 13329 }, /* Greek_accentdieresis */
+    { 0x000007c1, 13350 }, /* Greek_ALPHA */
+    { 0x000007e1, 13362 }, /* Greek_alpha */
+    { 0x000007a1, 13374 }, /* Greek_ALPHAaccent */
+    { 0x000007b1, 13392 }, /* Greek_alphaaccent */
+    { 0x000007c2, 13410 }, /* Greek_BETA */
+    { 0x000007e2, 13421 }, /* Greek_beta */
+    { 0x000007d7, 13432 }, /* Greek_CHI */
+    { 0x000007f7, 13442 }, /* Greek_chi */
+    { 0x000007c4, 13452 }, /* Greek_DELTA */
+    { 0x000007e4, 13464 }, /* Greek_delta */
+    { 0x000007c5, 13476 }, /* Greek_EPSILON */
+    { 0x000007e5, 13490 }, /* Greek_epsilon */
+    { 0x000007a2, 13504 }, /* Greek_EPSILONaccent */
+    { 0x000007b2, 13524 }, /* Greek_epsilonaccent */
+    { 0x000007c7, 13544 }, /* Greek_ETA */
+    { 0x000007e7, 13554 }, /* Greek_eta */
+    { 0x000007a3, 13564 }, /* Greek_ETAaccent */
+    { 0x000007b3, 13580 }, /* Greek_etaaccent */
+    { 0x000007f3, 13596 }, /* Greek_finalsmallsigma */
+    { 0x000007c3, 13618 }, /* Greek_GAMMA */
+    { 0x000007e3, 13630 }, /* Greek_gamma */
+    { 0x000007af, 13642 }, /* Greek_horizbar */
+    { 0x000007c9, 13657 }, /* Greek_IOTA */
+    { 0x000007e9, 13668 }, /* Greek_iota */
+    { 0x000007a4, 13679 }, /* Greek_IOTAaccent */
+    { 0x000007b4, 13696 }, /* Greek_iotaaccent */
+    { 0x000007b6, 13713 }, /* Greek_iotaaccentdieresis */
+    { 0x000007a5, 13738 }, /* Greek_IOTAdiaeresis */
+    { 0x000007a5, 13758 }, /* Greek_IOTAdieresis */
+    { 0x000007b5, 13777 }, /* Greek_iotadieresis */
+    { 0x000007ca, 13796 }, /* Greek_KAPPA */
+    { 0x000007ea, 13808 }, /* Greek_kappa */
+    { 0x000007cb, 13820 }, /* Greek_LAMBDA */
+    { 0x000007eb, 13833 }, /* Greek_lambda */
+    { 0x000007cb, 13846 }, /* Greek_LAMDA */
+    { 0x000007eb, 13858 }, /* Greek_lamda */
+    { 0x000007cc, 13870 }, /* Greek_MU */
+    { 0x000007ec, 13879 }, /* Greek_mu */
+    { 0x000007cd, 13888 }, /* Greek_NU */
+    { 0x000007ed, 13897 }, /* Greek_nu */
+    { 0x000007d9, 13906 }, /* Greek_OMEGA */
+    { 0x000007f9, 13918 }, /* Greek_omega */
+    { 0x000007ab, 13930 }, /* Greek_OMEGAaccent */
+    { 0x000007bb, 13948 }, /* Greek_omegaaccent */
+    { 0x000007cf, 13966 }, /* Greek_OMICRON */
+    { 0x000007ef, 13980 }, /* Greek_omicron */
+    { 0x000007a7, 13994 }, /* Greek_OMICRONaccent */
+    { 0x000007b7, 14014 }, /* Greek_omicronaccent */
+    { 0x000007d6, 14034 }, /* Greek_PHI */
+    { 0x000007f6, 14044 }, /* Greek_phi */
+    { 0x000007d0, 14054 }, /* Greek_PI */
+    { 0x000007f0, 14063 }, /* Greek_pi */
+    { 0x000007d8, 14072 }, /* Greek_PSI */
+    { 0x000007f8, 14082 }, /* Greek_psi */
+    { 0x000007d1, 14092 }, /* Greek_RHO */
+    { 0x000007f1, 14102 }, /* Greek_rho */
+    { 0x000007d2, 14112 }, /* Greek_SIGMA */
+    { 0x000007f2, 14124 }, /* Greek_sigma */
+    { 0x0000ff7e, 14136 }, /* Greek_switch */
+    { 0x000007d4, 14149 }, /* Greek_TAU */
+    { 0x000007f4, 14159 }, /* Greek_tau */
+    { 0x000007c8, 14169 }, /* Greek_THETA */
+    { 0x000007e8, 14181 }, /* Greek_theta */
+    { 0x000007d5, 14193 }, /* Greek_UPSILON */
+    { 0x000007f5, 14207 }, /* Greek_upsilon */
+    { 0x000007a8, 14221 }, /* Greek_UPSILONaccent */
+    { 0x000007b8, 14241 }, /* Greek_upsilonaccent */
+    { 0x000007ba, 14261 }, /* Greek_upsilonaccentdieresis */
+    { 0x000007a9, 14289 }, /* Greek_UPSILONdieresis */
+    { 0x000007b9, 14311 }, /* Greek_upsilondieresis */
+    { 0x000007ce, 14333 }, /* Greek_XI */
+    { 0x000007ee, 14342 }, /* Greek_xi */
+    { 0x000007c6, 14351 }, /* Greek_ZETA */
+    { 0x000007e6, 14362 }, /* Greek_zeta */
+    { 0x100000be, 14373 }, /* guilder */
+    { 0x000000ab, 14381 }, /* guillemetleft */
+    { 0x000000bb, 14395 }, /* guillemetright */
+    { 0x000000ab, 14410 }, /* guillemotleft */
+    { 0x000000bb, 14424 }, /* guillemotright */
+    { 0x00000048, 14439 }, /* H */
+    { 0x00000068, 14441 }, /* h */
+    { 0x00000aa8, 14443 }, /* hairspace */
+    { 0x0000ff31, 14453 }, /* Hangul */
+    { 0x00000ebf, 14460 }, /* Hangul_A */
+    { 0x00000ec0, 14469 }, /* Hangul_AE */
+    { 0x00000ef6, 14479 }, /* Hangul_AraeA */
+    { 0x00000ef7, 14492 }, /* Hangul_AraeAE */
+    { 0x0000ff39, 14506 }, /* Hangul_Banja */
+    { 0x00000eba, 14519 }, /* Hangul_Cieuc */
+    { 0x0000ff37, 14532 }, /* Hangul_Codeinput */
+    { 0x00000ea7, 14549 }, /* Hangul_Dikeud */
+    { 0x00000ec4, 14563 }, /* Hangul_E */
+    { 0x0000ff33, 14572 }, /* Hangul_End */
+    { 0x00000ec3, 14583 }, /* Hangul_EO */
+    { 0x00000ed1, 14593 }, /* Hangul_EU */
+    { 0x0000ff34, 14603 }, /* Hangul_Hanja */
+    { 0x00000ebe, 14616 }, /* Hangul_Hieuh */
+    { 0x00000ed3, 14629 }, /* Hangul_I */
+    { 0x00000eb7, 14638 }, /* Hangul_Ieung */
+    { 0x00000eea, 14651 }, /* Hangul_J_Cieuc */
+    { 0x00000eda, 14666 }, /* Hangul_J_Dikeud */
+    { 0x00000eee, 14682 }, /* Hangul_J_Hieuh */
+    { 0x00000ee8, 14697 }, /* Hangul_J_Ieung */
+    { 0x00000ee9, 14712 }, /* Hangul_J_Jieuj */
+    { 0x00000eeb, 14727 }, /* Hangul_J_Khieuq */
+    { 0x00000ed4, 14743 }, /* Hangul_J_Kiyeog */
+    { 0x00000ed6, 14759 }, /* Hangul_J_KiyeogSios */
+    { 0x00000ef9, 14779 }, /* Hangul_J_KkogjiDalrinIeung */
+    { 0x00000ee3, 14806 }, /* Hangul_J_Mieum */
+    { 0x00000ed7, 14821 }, /* Hangul_J_Nieun */
+    { 0x00000ed9, 14836 }, /* Hangul_J_NieunHieuh */
+    { 0x00000ed8, 14856 }, /* Hangul_J_NieunJieuj */
+    { 0x00000ef8, 14876 }, /* Hangul_J_PanSios */
+    { 0x00000eed, 14893 }, /* Hangul_J_Phieuf */
+    { 0x00000ee4, 14909 }, /* Hangul_J_Pieub */
+    { 0x00000ee5, 14924 }, /* Hangul_J_PieubSios */
+    { 0x00000edb, 14943 }, /* Hangul_J_Rieul */
+    { 0x00000ee2, 14958 }, /* Hangul_J_RieulHieuh */
+    { 0x00000edc, 14978 }, /* Hangul_J_RieulKiyeog */
+    { 0x00000edd, 14999 }, /* Hangul_J_RieulMieum */
+    { 0x00000ee1, 15019 }, /* Hangul_J_RieulPhieuf */
+    { 0x00000ede, 15040 }, /* Hangul_J_RieulPieub */
+    { 0x00000edf, 15060 }, /* Hangul_J_RieulSios */
+    { 0x00000ee0, 15079 }, /* Hangul_J_RieulTieut */
+    { 0x00000ee6, 15099 }, /* Hangul_J_Sios */
+    { 0x00000ed5, 15113 }, /* Hangul_J_SsangKiyeog */
+    { 0x00000ee7, 15134 }, /* Hangul_J_SsangSios */
+    { 0x00000eec, 15153 }, /* Hangul_J_Tieut */
+    { 0x00000efa, 15168 }, /* Hangul_J_YeorinHieuh */
+    { 0x0000ff35, 15189 }, /* Hangul_Jamo */
+    { 0x0000ff38, 15201 }, /* Hangul_Jeonja */
+    { 0x00000eb8, 15215 }, /* Hangul_Jieuj */
+    { 0x00000ebb, 15228 }, /* Hangul_Khieuq */
+    { 0x00000ea1, 15242 }, /* Hangul_Kiyeog */
+    { 0x00000ea3, 15256 }, /* Hangul_KiyeogSios */
+    { 0x00000ef3, 15274 }, /* Hangul_KkogjiDalrinIeung */
+    { 0x00000eb1, 15299 }, /* Hangul_Mieum */
+    { 0x0000ff3d, 15312 }, /* Hangul_MultipleCandidate */
+    { 0x00000ea4, 15337 }, /* Hangul_Nieun */
+    { 0x00000ea6, 15350 }, /* Hangul_NieunHieuh */
+    { 0x00000ea5, 15368 }, /* Hangul_NieunJieuj */
+    { 0x00000ec7, 15386 }, /* Hangul_O */
+    { 0x00000eca, 15395 }, /* Hangul_OE */
+    { 0x00000ef2, 15405 }, /* Hangul_PanSios */
+    { 0x00000ebd, 15420 }, /* Hangul_Phieuf */
+    { 0x00000eb2, 15434 }, /* Hangul_Pieub */
+    { 0x00000eb4, 15447 }, /* Hangul_PieubSios */
+    { 0x0000ff3b, 15464 }, /* Hangul_PostHanja */
+    { 0x0000ff3a, 15481 }, /* Hangul_PreHanja */
+    { 0x0000ff3e, 15497 }, /* Hangul_PreviousCandidate */
+    { 0x00000ea9, 15522 }, /* Hangul_Rieul */
+    { 0x00000eb0, 15535 }, /* Hangul_RieulHieuh */
+    { 0x00000eaa, 15553 }, /* Hangul_RieulKiyeog */
+    { 0x00000eab, 15572 }, /* Hangul_RieulMieum */
+    { 0x00000eaf, 15590 }, /* Hangul_RieulPhieuf */
+    { 0x00000eac, 15609 }, /* Hangul_RieulPieub */
+    { 0x00000ead, 15627 }, /* Hangul_RieulSios */
+    { 0x00000eae, 15644 }, /* Hangul_RieulTieut */
+    { 0x00000eef, 15662 }, /* Hangul_RieulYeorinHieuh */
+    { 0x0000ff36, 15686 }, /* Hangul_Romaja */
+    { 0x0000ff3c, 15700 }, /* Hangul_SingleCandidate */
+    { 0x00000eb5, 15723 }, /* Hangul_Sios */
+    { 0x0000ff3f, 15735 }, /* Hangul_Special */
+    { 0x00000ea8, 15750 }, /* Hangul_SsangDikeud */
+    { 0x00000eb9, 15769 }, /* Hangul_SsangJieuj */
+    { 0x00000ea2, 15787 }, /* Hangul_SsangKiyeog */
+    { 0x00000eb3, 15806 }, /* Hangul_SsangPieub */
+    { 0x00000eb6, 15824 }, /* Hangul_SsangSios */
+    { 0x0000ff32, 15841 }, /* Hangul_Start */
+    { 0x00000ef0, 15854 }, /* Hangul_SunkyeongeumMieum */
+    { 0x00000ef4, 15879 }, /* Hangul_SunkyeongeumPhieuf */
+    { 0x00000ef1, 15905 }, /* Hangul_SunkyeongeumPieub */
+    { 0x0000ff7e, 15930 }, /* Hangul_switch */
+    { 0x00000ebc, 15944 }, /* Hangul_Tieut */
+    { 0x00000ecc, 15957 }, /* Hangul_U */
+    { 0x00000ec8, 15966 }, /* Hangul_WA */
+    { 0x00000ec9, 15976 }, /* Hangul_WAE */
+    { 0x00000ece, 15987 }, /* Hangul_WE */
+    { 0x00000ecd, 15997 }, /* Hangul_WEO */
+    { 0x00000ecf, 16008 }, /* Hangul_WI */
+    { 0x00000ec1, 16018 }, /* Hangul_YA */
+    { 0x00000ec2, 16028 }, /* Hangul_YAE */
+    { 0x00000ec6, 16039 }, /* Hangul_YE */
+    { 0x00000ec5, 16049 }, /* Hangul_YEO */
+    { 0x00000ef5, 16060 }, /* Hangul_YeorinHieuh */
+    { 0x00000ed2, 16079 }, /* Hangul_YI */
+    { 0x00000ecb, 16089 }, /* Hangul_YO */
+    { 0x00000ed0, 16099 }, /* Hangul_YU */
+    { 0x0000ff29, 16109 }, /* Hankaku */
+    { 0x000002a6, 16117 }, /* Hcircumflex */
+    { 0x000002b6, 16129 }, /* hcircumflex */
+    { 0x00000aee, 16141 }, /* heart */
+    { 0x00000ce0, 16147 }, /* hebrew_aleph */
+    { 0x00000cf2, 16160 }, /* hebrew_ayin */
+    { 0x00000ce1, 16172 }, /* hebrew_bet */
+    { 0x00000ce1, 16183 }, /* hebrew_beth */
+    { 0x00000ce7, 16195 }, /* hebrew_chet */
+    { 0x00000ce3, 16207 }, /* hebrew_dalet */
+    { 0x00000ce3, 16220 }, /* hebrew_daleth */
+    { 0x00000cdf, 16234 }, /* hebrew_doublelowline */
+    { 0x00000cea, 16255 }, /* hebrew_finalkaph */
+    { 0x00000ced, 16272 }, /* hebrew_finalmem */
+    { 0x00000cef, 16288 }, /* hebrew_finalnun */
+    { 0x00000cf3, 16304 }, /* hebrew_finalpe */
+    { 0x00000cf5, 16319 }, /* hebrew_finalzade */
+    { 0x00000cf5, 16336 }, /* hebrew_finalzadi */
+    { 0x00000ce2, 16353 }, /* hebrew_gimel */
+    { 0x00000ce2, 16366 }, /* hebrew_gimmel */
+    { 0x00000ce4, 16380 }, /* hebrew_he */
+    { 0x00000ce7, 16390 }, /* hebrew_het */
+    { 0x00000ceb, 16401 }, /* hebrew_kaph */
+    { 0x00000cf7, 16413 }, /* hebrew_kuf */
+    { 0x00000cec, 16424 }, /* hebrew_lamed */
+    { 0x00000cee, 16437 }, /* hebrew_mem */
+    { 0x00000cf0, 16448 }, /* hebrew_nun */
+    { 0x00000cf4, 16459 }, /* hebrew_pe */
+    { 0x00000cf7, 16469 }, /* hebrew_qoph */
+    { 0x00000cf8, 16481 }, /* hebrew_resh */
+    { 0x00000cf1, 16493 }, /* hebrew_samech */
+    { 0x00000cf1, 16507 }, /* hebrew_samekh */
+    { 0x00000cf9, 16521 }, /* hebrew_shin */
+    { 0x0000ff7e, 16533 }, /* Hebrew_switch */
+    { 0x00000cfa, 16547 }, /* hebrew_taf */
+    { 0x00000cfa, 16558 }, /* hebrew_taw */
+    { 0x00000ce8, 16569 }, /* hebrew_tet */
+    { 0x00000ce8, 16580 }, /* hebrew_teth */
+    { 0x00000ce5, 16592 }, /* hebrew_waw */
+    { 0x00000ce9, 16603 }, /* hebrew_yod */
+    { 0x00000cf6, 16614 }, /* hebrew_zade */
+    { 0x00000cf6, 16626 }, /* hebrew_zadi */
+    { 0x00000ce6, 16638 }, /* hebrew_zain */
+    { 0x00000ce6, 16650 }, /* hebrew_zayin */
+    { 0x0000ff6a, 16663 }, /* Help */
+    { 0x0000ff23, 16668 }, /* Henkan */
+    { 0x0000ff23, 16675 }, /* Henkan_Mode */
+    { 0x00000ada, 16687 }, /* hexagram */
+    { 0x0000ff25, 16696 }, /* Hiragana */
+    { 0x0000ff27, 16705 }, /* Hiragana_Katakana */
+    { 0x0000ff50, 16723 }, /* Home */
+    { 0x000008a3, 16728 }, /* horizconnector */
+    { 0x000009ef, 16743 }, /* horizlinescan1 */
+    { 0x000009f0, 16758 }, /* horizlinescan3 */
+    { 0x000009f1, 16773 }, /* horizlinescan5 */
+    { 0x000009f2, 16788 }, /* horizlinescan7 */
+    { 0x000009f3, 16803 }, /* horizlinescan9 */
+    { 0x1000ff74, 16818 }, /* hpBackTab */
+    { 0x100000fc, 16828 }, /* hpblock */
+    { 0x1000ff6f, 16836 }, /* hpClearLine */
+    { 0x1000ff73, 16848 }, /* hpDeleteChar */
+    { 0x1000ff71, 16861 }, /* hpDeleteLine */
+    { 0x100000be, 16874 }, /* hpguilder */
+    { 0x1000ff72, 16884 }, /* hpInsertChar */
+    { 0x1000ff70, 16897 }, /* hpInsertLine */
+    { 0x100000ee, 16910 }, /* hpIO */
+    { 0x1000ff75, 16915 }, /* hpKP_BackTab */
+    { 0x100000af, 16928 }, /* hplira */
+    { 0x100000f6, 16935 }, /* hplongminus */
+    { 0x1000ff48, 16947 }, /* hpModelock1 */
+    { 0x1000ff49, 16959 }, /* hpModelock2 */
+    { 0x100000a8, 16971 }, /* hpmute_acute */
+    { 0x100000aa, 16984 }, /* hpmute_asciicircum */
+    { 0x100000ac, 17003 }, /* hpmute_asciitilde */
+    { 0x100000ab, 17021 }, /* hpmute_diaeresis */
+    { 0x100000a9, 17038 }, /* hpmute_grave */
+    { 0x1000ff6c, 17051 }, /* hpReset */
+    { 0x1000ff6d, 17059 }, /* hpSystem */
+    { 0x1000ff6e, 17068 }, /* hpUser */
+    { 0x000002a1, 17075 }, /* Hstroke */
+    { 0x000002b1, 17083 }, /* hstroke */
+    { 0x000009e2, 17091 }, /* ht */
+    { 0x0000ffed, 17094 }, /* Hyper_L */
+    { 0x0000ffee, 17102 }, /* Hyper_R */
+    { 0x000000ad, 17110 }, /* hyphen */
+    { 0x00000049, 17117 }, /* I */
+    { 0x00000069, 17119 }, /* i */
+    { 0x000002a9, 17121 }, /* Iabovedot */
+    { 0x000000cd, 17131 }, /* Iacute */
+    { 0x000000ed, 17138 }, /* iacute */
+    { 0x01001eca, 17145 }, /* Ibelowdot */
+    { 0x01001ecb, 17155 }, /* ibelowdot */
+    { 0x0100012c, 17165 }, /* Ibreve */
+    { 0x0100012d, 17172 }, /* ibreve */
+    { 0x000000ce, 17179 }, /* Icircumflex */
+    { 0x000000ee, 17191 }, /* icircumflex */
+    { 0x000008cf, 17203 }, /* identical */
+    { 0x000000cf, 17213 }, /* Idiaeresis */
+    { 0x000000ef, 17224 }, /* idiaeresis */
+    { 0x000002b9, 17235 }, /* idotless */
+    { 0x000008cd, 17244 }, /* ifonlyif */
+    { 0x000000cc, 17253 }, /* Igrave */
+    { 0x000000ec, 17260 }, /* igrave */
+    { 0x01001ec8, 17267 }, /* Ihook */
+    { 0x01001ec9, 17273 }, /* ihook */
+    { 0x000003cf, 17279 }, /* Imacron */
+    { 0x000003ef, 17287 }, /* imacron */
+    { 0x000008ce, 17295 }, /* implies */
+    { 0x000008da, 17303 }, /* includedin */
+    { 0x000008db, 17314 }, /* includes */
+    { 0x000008c2, 17323 }, /* infinity */
+    { 0x0000ff63, 17332 }, /* Insert */
+    { 0x1000ff72, 17339 }, /* InsertChar */
+    { 0x1000ff70, 17350 }, /* InsertLine */
+    { 0x000008bf, 17361 }, /* integral */
+    { 0x000008dc, 17370 }, /* intersection */
+    { 0x100000ee, 17383 }, /* IO */
+    { 0x000003c7, 17386 }, /* Iogonek */
+    { 0x000003e7, 17394 }, /* iogonek */
+    { 0x0000fe33, 17402 }, /* ISO_Center_Object */
+    { 0x0000fe30, 17420 }, /* ISO_Continuous_Underline */
+    { 0x0000fe31, 17445 }, /* ISO_Discontinuous_Underline */
+    { 0x0000fe32, 17473 }, /* ISO_Emphasize */
+    { 0x0000fe34, 17487 }, /* ISO_Enter */
+    { 0x0000fe2f, 17497 }, /* ISO_Fast_Cursor_Down */
+    { 0x0000fe2c, 17518 }, /* ISO_Fast_Cursor_Left */
+    { 0x0000fe2d, 17539 }, /* ISO_Fast_Cursor_Right */
+    { 0x0000fe2e, 17561 }, /* ISO_Fast_Cursor_Up */
+    { 0x0000fe0c, 17580 }, /* ISO_First_Group */
+    { 0x0000fe0d, 17596 }, /* ISO_First_Group_Lock */
+    { 0x0000fe06, 17617 }, /* ISO_Group_Latch */
+    { 0x0000fe07, 17633 }, /* ISO_Group_Lock */
+    { 0x0000ff7e, 17648 }, /* ISO_Group_Shift */
+    { 0x0000fe0e, 17664 }, /* ISO_Last_Group */
+    { 0x0000fe0f, 17679 }, /* ISO_Last_Group_Lock */
+    { 0x0000fe20, 17699 }, /* ISO_Left_Tab */
+    { 0x0000fe02, 17712 }, /* ISO_Level2_Latch */
+    { 0x0000fe04, 17729 }, /* ISO_Level3_Latch */
+    { 0x0000fe05, 17746 }, /* ISO_Level3_Lock */
+    { 0x0000fe03, 17762 }, /* ISO_Level3_Shift */
+    { 0x0000fe12, 17779 }, /* ISO_Level5_Latch */
+    { 0x0000fe13, 17796 }, /* ISO_Level5_Lock */
+    { 0x0000fe11, 17812 }, /* ISO_Level5_Shift */
+    { 0x0000fe01, 17829 }, /* ISO_Lock */
+    { 0x0000fe22, 17838 }, /* ISO_Move_Line_Down */
+    { 0x0000fe21, 17857 }, /* ISO_Move_Line_Up */
+    { 0x0000fe08, 17874 }, /* ISO_Next_Group */
+    { 0x0000fe09, 17889 }, /* ISO_Next_Group_Lock */
+    { 0x0000fe24, 17909 }, /* ISO_Partial_Line_Down */
+    { 0x0000fe23, 17931 }, /* ISO_Partial_Line_Up */
+    { 0x0000fe25, 17951 }, /* ISO_Partial_Space_Left */
+    { 0x0000fe26, 17974 }, /* ISO_Partial_Space_Right */
+    { 0x0000fe0a, 17998 }, /* ISO_Prev_Group */
+    { 0x0000fe0b, 18013 }, /* ISO_Prev_Group_Lock */
+    { 0x0000fe2b, 18033 }, /* ISO_Release_Both_Margins */
+    { 0x0000fe29, 18058 }, /* ISO_Release_Margin_Left */
+    { 0x0000fe2a, 18082 }, /* ISO_Release_Margin_Right */
+    { 0x0000fe27, 18107 }, /* ISO_Set_Margin_Left */
+    { 0x0000fe28, 18127 }, /* ISO_Set_Margin_Right */
+    { 0x000003a5, 18148 }, /* Itilde */
+    { 0x000003b5, 18155 }, /* itilde */
+    { 0x0000004a, 18162 }, /* J */
+    { 0x0000006a, 18164 }, /* j */
+    { 0x000002ac, 18166 }, /* Jcircumflex */
+    { 0x000002bc, 18178 }, /* jcircumflex */
+    { 0x00000bca, 18190 }, /* jot */
+    { 0x0000004b, 18194 }, /* K */
+    { 0x0000006b, 18196 }, /* k */
+    { 0x000004a7, 18198 }, /* kana_a */
+    { 0x000004b1, 18205 }, /* kana_A */
+    { 0x000004c1, 18212 }, /* kana_CHI */
+    { 0x000004a3, 18221 }, /* kana_closingbracket */
+    { 0x000004a4, 18241 }, /* kana_comma */
+    { 0x000004a5, 18252 }, /* kana_conjunctive */
+    { 0x000004aa, 18269 }, /* kana_e */
+    { 0x000004b4, 18276 }, /* kana_E */
+    { 0x000004cc, 18283 }, /* kana_FU */
+    { 0x000004a1, 18291 }, /* kana_fullstop */
+    { 0x000004ca, 18305 }, /* kana_HA */
+    { 0x000004cd, 18313 }, /* kana_HE */
+    { 0x000004cb, 18321 }, /* kana_HI */
+    { 0x000004ce, 18329 }, /* kana_HO */
+    { 0x000004cc, 18337 }, /* kana_HU */
+    { 0x000004a8, 18345 }, /* kana_i */
+    { 0x000004b2, 18352 }, /* kana_I */
+    { 0x000004b6, 18359 }, /* kana_KA */
+    { 0x000004b9, 18367 }, /* kana_KE */
+    { 0x000004b7, 18375 }, /* kana_KI */
+    { 0x000004ba, 18383 }, /* kana_KO */
+    { 0x000004b8, 18391 }, /* kana_KU */
+    { 0x0000ff2d, 18399 }, /* Kana_Lock */
+    { 0x000004cf, 18409 }, /* kana_MA */
+    { 0x000004d2, 18417 }, /* kana_ME */
+    { 0x000004d0, 18425 }, /* kana_MI */
+    { 0x000004a5, 18433 }, /* kana_middledot */
+    { 0x000004d3, 18448 }, /* kana_MO */
+    { 0x000004d1, 18456 }, /* kana_MU */
+    { 0x000004dd, 18464 }, /* kana_N */
+    { 0x000004c5, 18471 }, /* kana_NA */
+    { 0x000004c8, 18479 }, /* kana_NE */
+    { 0x000004c6, 18487 }, /* kana_NI */
+    { 0x000004c9, 18495 }, /* kana_NO */
+    { 0x000004c7, 18503 }, /* kana_NU */
+    { 0x000004ab, 18511 }, /* kana_o */
+    { 0x000004b5, 18518 }, /* kana_O */
+    { 0x000004a2, 18525 }, /* kana_openingbracket */
+    { 0x000004d7, 18545 }, /* kana_RA */
+    { 0x000004da, 18553 }, /* kana_RE */
+    { 0x000004d8, 18561 }, /* kana_RI */
+    { 0x000004db, 18569 }, /* kana_RO */
+    { 0x000004d9, 18577 }, /* kana_RU */
+    { 0x000004bb, 18585 }, /* kana_SA */
+    { 0x000004be, 18593 }, /* kana_SE */
+    { 0x000004bc, 18601 }, /* kana_SHI */
+    { 0x0000ff2e, 18610 }, /* Kana_Shift */
+    { 0x000004bf, 18621 }, /* kana_SO */
+    { 0x000004bd, 18629 }, /* kana_SU */
+    { 0x0000ff7e, 18637 }, /* kana_switch */
+    { 0x000004c0, 18649 }, /* kana_TA */
+    { 0x000004c3, 18657 }, /* kana_TE */
+    { 0x000004c1, 18665 }, /* kana_TI */
+    { 0x000004c4, 18673 }, /* kana_TO */
+    { 0x000004af, 18681 }, /* kana_tsu */
+    { 0x000004c2, 18690 }, /* kana_TSU */
+    { 0x000004af, 18699 }, /* kana_tu */
+    { 0x000004c2, 18707 }, /* kana_TU */
+    { 0x000004a9, 18715 }, /* kana_u */
+    { 0x000004b3, 18722 }, /* kana_U */
+    { 0x000004dc, 18729 }, /* kana_WA */
+    { 0x000004a6, 18737 }, /* kana_WO */
+    { 0x000004ac, 18745 }, /* kana_ya */
+    { 0x000004d4, 18753 }, /* kana_YA */
+    { 0x000004ae, 18761 }, /* kana_yo */
+    { 0x000004d6, 18769 }, /* kana_YO */
+    { 0x000004ad, 18777 }, /* kana_yu */
+    { 0x000004d5, 18785 }, /* kana_YU */
+    { 0x0000ff21, 18793 }, /* Kanji */
+    { 0x0000ff37, 18799 }, /* Kanji_Bangou */
+    { 0x000003a2, 18812 }, /* kappa */
+    { 0x0000ff26, 18818 }, /* Katakana */
+    { 0x000003d3, 18827 }, /* Kcedilla */
+    { 0x000003f3, 18836 }, /* kcedilla */
+    { 0x00000eff, 18845 }, /* Korean_Won */
+    { 0x0000ffb0, 18856 }, /* KP_0 */
+    { 0x0000ffb1, 18861 }, /* KP_1 */
+    { 0x0000ffb2, 18866 }, /* KP_2 */
+    { 0x0000ffb3, 18871 }, /* KP_3 */
+    { 0x0000ffb4, 18876 }, /* KP_4 */
+    { 0x0000ffb5, 18881 }, /* KP_5 */
+    { 0x0000ffb6, 18886 }, /* KP_6 */
+    { 0x0000ffb7, 18891 }, /* KP_7 */
+    { 0x0000ffb8, 18896 }, /* KP_8 */
+    { 0x0000ffb9, 18901 }, /* KP_9 */
+    { 0x0000ffab, 18906 }, /* KP_Add */
+    { 0x1000ff75, 18913 }, /* KP_BackTab */
+    { 0x0000ff9d, 18924 }, /* KP_Begin */
+    { 0x0000ffae, 18933 }, /* KP_Decimal */
+    { 0x0000ff9f, 18944 }, /* KP_Delete */
+    { 0x0000ffaf, 18954 }, /* KP_Divide */
+    { 0x0000ff99, 18964 }, /* KP_Down */
+    { 0x0000ff9c, 18972 }, /* KP_End */
+    { 0x0000ff8d, 18979 }, /* KP_Enter */
+    { 0x0000ffbd, 18988 }, /* KP_Equal */
+    { 0x0000ff91, 18997 }, /* KP_F1 */
+    { 0x0000ff92, 19003 }, /* KP_F2 */
+    { 0x0000ff93, 19009 }, /* KP_F3 */
+    { 0x0000ff94, 19015 }, /* KP_F4 */
+    { 0x0000ff95, 19021 }, /* KP_Home */
+    { 0x0000ff9e, 19029 }, /* KP_Insert */
+    { 0x0000ff96, 19039 }, /* KP_Left */
+    { 0x0000ffaa, 19047 }, /* KP_Multiply */
+    { 0x0000ff9b, 19059 }, /* KP_Next */
+    { 0x0000ff9b, 19067 }, /* KP_Page_Down */
+    { 0x0000ff9a, 19080 }, /* KP_Page_Up */
+    { 0x0000ff9a, 19091 }, /* KP_Prior */
+    { 0x0000ff98, 19100 }, /* KP_Right */
+    { 0x0000ffac, 19109 }, /* KP_Separator */
+    { 0x0000ff80, 19122 }, /* KP_Space */
+    { 0x0000ffad, 19131 }, /* KP_Subtract */
+    { 0x0000ff89, 19143 }, /* KP_Tab */
+    { 0x0000ff97, 19150 }, /* KP_Up */
+    { 0x000003a2, 19156 }, /* kra */
+    { 0x0000004c, 19160 }, /* L */
+    { 0x0000006c, 19162 }, /* l */
+    { 0x0000ffc8, 19164 }, /* L1 */
+    { 0x0000ffd1, 19167 }, /* L10 */
+    { 0x0000ffc9, 19171 }, /* L2 */
+    { 0x0000ffca, 19174 }, /* L3 */
+    { 0x0000ffcb, 19177 }, /* L4 */
+    { 0x0000ffcc, 19180 }, /* L5 */
+    { 0x0000ffcd, 19183 }, /* L6 */
+    { 0x0000ffce, 19186 }, /* L7 */
+    { 0x0000ffcf, 19189 }, /* L8 */
+    { 0x0000ffd0, 19192 }, /* L9 */
+    { 0x000001c5, 19195 }, /* Lacute */
+    { 0x000001e5, 19202 }, /* lacute */
+    { 0x0000fed4, 19209 }, /* Last_Virtual_Screen */
+    { 0x00000ad9, 19229 }, /* latincross */
+    { 0x01001e36, 19240 }, /* Lbelowdot */
+    { 0x01001e37, 19250 }, /* lbelowdot */
+    { 0x000001a5, 19260 }, /* Lcaron */
+    { 0x000001b5, 19267 }, /* lcaron */
+    { 0x000003a6, 19274 }, /* Lcedilla */
+    { 0x000003b6, 19283 }, /* lcedilla */
+    { 0x0000ff51, 19292 }, /* Left */
+    { 0x00000abc, 19297 }, /* leftanglebracket */
+    { 0x000008fb, 19314 }, /* leftarrow */
+    { 0x00000ba3, 19324 }, /* leftcaret */
+    { 0x00000ad2, 19334 }, /* leftdoublequotemark */
+    { 0x000008af, 19354 }, /* leftmiddlecurlybrace */
+    { 0x00000acc, 19375 }, /* leftopentriangle */
+    { 0x00000aea, 19392 }, /* leftpointer */
+    { 0x000008a1, 19404 }, /* leftradical */
+    { 0x00000bda, 19416 }, /* leftshoe */
+    { 0x00000ad0, 19425 }, /* leftsinglequotemark */
+    { 0x000009f4, 19445 }, /* leftt */
+    { 0x00000bdc, 19451 }, /* lefttack */
+    { 0x0000003c, 19460 }, /* less */
+    { 0x000008bc, 19465 }, /* lessthanequal */
+    { 0x000009e5, 19479 }, /* lf */
+    { 0x0000ff0a, 19482 }, /* Linefeed */
+    { 0x100000af, 19491 }, /* lira */
+    { 0x010020a4, 19496 }, /* LiraSign */
+    { 0x000008de, 19505 }, /* logicaland */
+    { 0x000008df, 19516 }, /* logicalor */
+    { 0x100000f6, 19526 }, /* longminus */
+    { 0x000009ed, 19536 }, /* lowleftcorner */
+    { 0x000009ea, 19550 }, /* lowrightcorner */
+    { 0x000001a3, 19565 }, /* Lstroke */
+    { 0x000001b3, 19573 }, /* lstroke */
+    { 0x0000004d, 19581 }, /* M */
+    { 0x0000006d, 19583 }, /* m */
+    { 0x01001e40, 19585 }, /* Mabovedot */
+    { 0x01001e41, 19595 }, /* mabovedot */
+    { 0x000006a5, 19605 }, /* Macedonia_dse */
+    { 0x000006b5, 19619 }, /* Macedonia_DSE */
+    { 0x000006a2, 19633 }, /* Macedonia_gje */
+    { 0x000006b2, 19647 }, /* Macedonia_GJE */
+    { 0x000006ac, 19661 }, /* Macedonia_kje */
+    { 0x000006bc, 19675 }, /* Macedonia_KJE */
+    { 0x000000af, 19689 }, /* macron */
+    { 0x0000ff3e, 19696 }, /* Mae_Koho */
+    { 0x00000af7, 19705 }, /* malesymbol */
+    { 0x00000af0, 19716 }, /* maltesecross */
+    { 0x00000abf, 19729 }, /* marker */
+    { 0x000000ba, 19736 }, /* masculine */
+    { 0x0000ff2c, 19746 }, /* Massyo */
+    { 0x0000ff67, 19753 }, /* Menu */
+    { 0x0000ffe7, 19758 }, /* Meta_L */
+    { 0x0000ffe8, 19765 }, /* Meta_R */
+    { 0x010020a5, 19772 }, /* MillSign */
+    { 0x0000002d, 19781 }, /* minus */
+    { 0x00000ad6, 19787 }, /* minutes */
+    { 0x0000ff7e, 19795 }, /* Mode_switch */
+    { 0x0000fe77, 19807 }, /* MouseKeys_Accel_Enable */
+    { 0x0000fe76, 19830 }, /* MouseKeys_Enable */
+    { 0x000000b5, 19847 }, /* mu */
+    { 0x0000ff22, 19850 }, /* Muhenkan */
+    { 0x0000ff20, 19859 }, /* Multi_key */
+    { 0x0000ff3d, 19869 }, /* MultipleCandidate */
+    { 0x000000d7, 19887 }, /* multiply */
+    { 0x00000af6, 19896 }, /* musicalflat */
+    { 0x00000af5, 19908 }, /* musicalsharp */
+    { 0x100000a8, 19921 }, /* mute_acute */
+    { 0x100000aa, 19932 }, /* mute_asciicircum */
+    { 0x100000ac, 19949 }, /* mute_asciitilde */
+    { 0x100000ab, 19965 }, /* mute_diaeresis */
+    { 0x100000a9, 19980 }, /* mute_grave */
+    { 0x0000004e, 19991 }, /* N */
+    { 0x0000006e, 19993 }, /* n */
+    { 0x000008c5, 19995 }, /* nabla */
+    { 0x000001d1, 20001 }, /* Nacute */
+    { 0x000001f1, 20008 }, /* nacute */
+    { 0x010020a6, 20015 }, /* NairaSign */
+    { 0x000001d2, 20025 }, /* Ncaron */
+    { 0x000001f2, 20032 }, /* ncaron */
+    { 0x000003d1, 20039 }, /* Ncedilla */
+    { 0x000003f1, 20048 }, /* ncedilla */
+    { 0x010020aa, 20057 }, /* NewSheqelSign */
+    { 0x0000ff56, 20071 }, /* Next */
+    { 0x0000fed2, 20076 }, /* Next_Virtual_Screen */
+    { 0x01002089, 20096 }, /* ninesubscript */
+    { 0x01002079, 20110 }, /* ninesuperior */
+    { 0x000009e8, 20123 }, /* nl */
+    { 0x000000a0, 20126 }, /* nobreakspace */
+    { 0x00000000, 20139 }, /* NoSymbol */
+    { 0x01002247, 20148 }, /* notapproxeq */
+    { 0x01002209, 20160 }, /* notelementof */
+    { 0x000008bd, 20173 }, /* notequal */
+    { 0x01002262, 20182 }, /* notidentical */
+    { 0x000000ac, 20195 }, /* notsign */
+    { 0x000000d1, 20203 }, /* Ntilde */
+    { 0x000000f1, 20210 }, /* ntilde */
+    { 0x0000ff7f, 20217 }, /* Num_Lock */
+    { 0x00000023, 20226 }, /* numbersign */
+    { 0x000006b0, 20237 }, /* numerosign */
+    { 0x0000004f, 20248 }, /* O */
+    { 0x0000006f, 20250 }, /* o */
+    { 0x000000d3, 20252 }, /* Oacute */
+    { 0x000000f3, 20259 }, /* oacute */
+    { 0x0100019f, 20266 }, /* Obarred */
+    { 0x01000275, 20274 }, /* obarred */
+    { 0x01001ecc, 20282 }, /* Obelowdot */
+    { 0x01001ecd, 20292 }, /* obelowdot */
+    { 0x010001d1, 20302 }, /* Ocaron */
+    { 0x010001d2, 20309 }, /* ocaron */
+    { 0x000000d4, 20316 }, /* Ocircumflex */
+    { 0x000000f4, 20328 }, /* ocircumflex */
+    { 0x01001ed0, 20340 }, /* Ocircumflexacute */
+    { 0x01001ed1, 20357 }, /* ocircumflexacute */
+    { 0x01001ed8, 20374 }, /* Ocircumflexbelowdot */
+    { 0x01001ed9, 20394 }, /* ocircumflexbelowdot */
+    { 0x01001ed2, 20414 }, /* Ocircumflexgrave */
+    { 0x01001ed3, 20431 }, /* ocircumflexgrave */
+    { 0x01001ed4, 20448 }, /* Ocircumflexhook */
+    { 0x01001ed5, 20464 }, /* ocircumflexhook */
+    { 0x01001ed6, 20480 }, /* Ocircumflextilde */
+    { 0x01001ed7, 20497 }, /* ocircumflextilde */
+    { 0x000000d6, 20514 }, /* Odiaeresis */
+    { 0x000000f6, 20525 }, /* odiaeresis */
+    { 0x000001d5, 20536 }, /* Odoubleacute */
+    { 0x000001f5, 20549 }, /* odoubleacute */
+    { 0x000013bc, 20562 }, /* OE */
+    { 0x000013bd, 20565 }, /* oe */
+    { 0x000001b2, 20568 }, /* ogonek */
+    { 0x000000d2, 20575 }, /* Ograve */
+    { 0x000000f2, 20582 }, /* ograve */
+    { 0x01001ece, 20589 }, /* Ohook */
+    { 0x01001ecf, 20595 }, /* ohook */
+    { 0x010001a0, 20601 }, /* Ohorn */
+    { 0x010001a1, 20607 }, /* ohorn */
+    { 0x01001eda, 20613 }, /* Ohornacute */
+    { 0x01001edb, 20624 }, /* ohornacute */
+    { 0x01001ee2, 20635 }, /* Ohornbelowdot */
+    { 0x01001ee3, 20649 }, /* ohornbelowdot */
+    { 0x01001edc, 20663 }, /* Ohorngrave */
+    { 0x01001edd, 20674 }, /* ohorngrave */
+    { 0x01001ede, 20685 }, /* Ohornhook */
+    { 0x01001edf, 20695 }, /* ohornhook */
+    { 0x01001ee0, 20705 }, /* Ohorntilde */
+    { 0x01001ee1, 20716 }, /* ohorntilde */
+    { 0x000003d2, 20727 }, /* Omacron */
+    { 0x000003f2, 20735 }, /* omacron */
+    { 0x00000ac3, 20743 }, /* oneeighth */
+    { 0x00000ab2, 20753 }, /* onefifth */
+    { 0x000000bd, 20762 }, /* onehalf */
+    { 0x000000bc, 20770 }, /* onequarter */
+    { 0x00000ab6, 20781 }, /* onesixth */
+    { 0x01002081, 20790 }, /* onesubscript */
+    { 0x000000b9, 20803 }, /* onesuperior */
+    { 0x00000ab0, 20815 }, /* onethird */
+    { 0x000000d8, 20824 }, /* Ooblique */
+    { 0x000000f8, 20833 }, /* ooblique */
+    { 0x00000ae2, 20842 }, /* openrectbullet */
+    { 0x00000ae5, 20857 }, /* openstar */
+    { 0x00000ae4, 20866 }, /* opentribulletdown */
+    { 0x00000ae3, 20884 }, /* opentribulletup */
+    { 0x000000aa, 20900 }, /* ordfeminine */
+    { 0x000000ba, 20912 }, /* ordmasculine */
+    { 0x1004ff44, 20925 }, /* osfActivate */
+    { 0x1004ff31, 20937 }, /* osfAddMode */
+    { 0x1004ff08, 20948 }, /* osfBackSpace */
+    { 0x1004ff07, 20961 }, /* osfBackTab */
+    { 0x1004ff5a, 20972 }, /* osfBeginData */
+    { 0x1004ff58, 20985 }, /* osfBeginLine */
+    { 0x1004ff69, 20998 }, /* osfCancel */
+    { 0x1004ff0b, 21008 }, /* osfClear */
+    { 0x1004ff02, 21017 }, /* osfCopy */
+    { 0x1004ff03, 21025 }, /* osfCut */
+    { 0x1004ffff, 21032 }, /* osfDelete */
+    { 0x1004ff72, 21042 }, /* osfDeselectAll */
+    { 0x1004ff54, 21057 }, /* osfDown */
+    { 0x1004ff59, 21065 }, /* osfEndData */
+    { 0x1004ff57, 21076 }, /* osfEndLine */
+    { 0x1004ff1b, 21087 }, /* osfEscape */
+    { 0x1004ff74, 21097 }, /* osfExtend */
+    { 0x1004ff6a, 21107 }, /* osfHelp */
+    { 0x1004ff63, 21115 }, /* osfInsert */
+    { 0x1004ff51, 21125 }, /* osfLeft */
+    { 0x1004ff67, 21133 }, /* osfMenu */
+    { 0x1004ff45, 21141 }, /* osfMenuBar */
+    { 0x1004ff5e, 21152 }, /* osfNextField */
+    { 0x1004ff5c, 21165 }, /* osfNextMenu */
+    { 0x1004ff42, 21177 }, /* osfPageDown */
+    { 0x1004ff40, 21189 }, /* osfPageLeft */
+    { 0x1004ff43, 21201 }, /* osfPageRight */
+    { 0x1004ff41, 21214 }, /* osfPageUp */
+    { 0x1004ff04, 21224 }, /* osfPaste */
+    { 0x1004ff5d, 21233 }, /* osfPrevField */
+    { 0x1004ff5b, 21246 }, /* osfPrevMenu */
+    { 0x1004ff32, 21258 }, /* osfPrimaryPaste */
+    { 0x1004ff33, 21274 }, /* osfQuickPaste */
+    { 0x1004ff73, 21288 }, /* osfReselect */
+    { 0x1004ff78, 21300 }, /* osfRestore */
+    { 0x1004ff53, 21311 }, /* osfRight */
+    { 0x1004ff60, 21320 }, /* osfSelect */
+    { 0x1004ff71, 21330 }, /* osfSelectAll */
+    { 0x1004ff65, 21343 }, /* osfUndo */
+    { 0x1004ff52, 21351 }, /* osfUp */
+    { 0x000000d8, 21357 }, /* Oslash */
+    { 0x000000f8, 21364 }, /* oslash */
+    { 0x000000d5, 21371 }, /* Otilde */
+    { 0x000000f5, 21378 }, /* otilde */
+    { 0x00000bc0, 21385 }, /* overbar */
+    { 0x0000fe78, 21393 }, /* Overlay1_Enable */
+    { 0x0000fe79, 21409 }, /* Overlay2_Enable */
+    { 0x0000047e, 21425 }, /* overline */
+    { 0x00000050, 21434 }, /* P */
+    { 0x00000070, 21436 }, /* p */
+    { 0x01001e56, 21438 }, /* Pabovedot */
+    { 0x01001e57, 21448 }, /* pabovedot */
+    { 0x0000ff56, 21458 }, /* Page_Down */
+    { 0x0000ff55, 21468 }, /* Page_Up */
+    { 0x000000b6, 21476 }, /* paragraph */
+    { 0x00000028, 21486 }, /* parenleft */
+    { 0x00000029, 21496 }, /* parenright */
+    { 0x01002202, 21507 }, /* partdifferential */
+    { 0x000008ef, 21524 }, /* partialderivative */
+    { 0x0000ff13, 21542 }, /* Pause */
+    { 0x00000025, 21548 }, /* percent */
+    { 0x0000002e, 21556 }, /* period */
+    { 0x000000b7, 21563 }, /* periodcentered */
+    { 0x00000ad5, 21578 }, /* permille */
+    { 0x010020a7, 21587 }, /* PesetaSign */
+    { 0x00000afb, 21598 }, /* phonographcopyright */
+    { 0x0000002b, 21618 }, /* plus */
+    { 0x000000b1, 21623 }, /* plusminus */
+    { 0x0000fefa, 21633 }, /* Pointer_Accelerate */
+    { 0x0000fee9, 21652 }, /* Pointer_Button1 */
+    { 0x0000feea, 21668 }, /* Pointer_Button2 */
+    { 0x0000feeb, 21684 }, /* Pointer_Button3 */
+    { 0x0000feec, 21700 }, /* Pointer_Button4 */
+    { 0x0000feed, 21716 }, /* Pointer_Button5 */
+    { 0x0000fee8, 21732 }, /* Pointer_Button_Dflt */
+    { 0x0000feef, 21752 }, /* Pointer_DblClick1 */
+    { 0x0000fef0, 21770 }, /* Pointer_DblClick2 */
+    { 0x0000fef1, 21788 }, /* Pointer_DblClick3 */
+    { 0x0000fef2, 21806 }, /* Pointer_DblClick4 */
+    { 0x0000fef3, 21824 }, /* Pointer_DblClick5 */
+    { 0x0000feee, 21842 }, /* Pointer_DblClick_Dflt */
+    { 0x0000fefb, 21864 }, /* Pointer_DfltBtnNext */
+    { 0x0000fefc, 21884 }, /* Pointer_DfltBtnPrev */
+    { 0x0000fee3, 21904 }, /* Pointer_Down */
+    { 0x0000fee6, 21917 }, /* Pointer_DownLeft */
+    { 0x0000fee7, 21934 }, /* Pointer_DownRight */
+    { 0x0000fef5, 21952 }, /* Pointer_Drag1 */
+    { 0x0000fef6, 21966 }, /* Pointer_Drag2 */
+    { 0x0000fef7, 21980 }, /* Pointer_Drag3 */
+    { 0x0000fef8, 21994 }, /* Pointer_Drag4 */
+    { 0x0000fefd, 22008 }, /* Pointer_Drag5 */
+    { 0x0000fef4, 22022 }, /* Pointer_Drag_Dflt */
+    { 0x0000fef9, 22040 }, /* Pointer_EnableKeys */
+    { 0x0000fee0, 22059 }, /* Pointer_Left */
+    { 0x0000fee1, 22072 }, /* Pointer_Right */
+    { 0x0000fee2, 22086 }, /* Pointer_Up */
+    { 0x0000fee4, 22097 }, /* Pointer_UpLeft */
+    { 0x0000fee5, 22112 }, /* Pointer_UpRight */
+    { 0x00000ad4, 22128 }, /* prescription */
+    { 0x0000fed1, 22141 }, /* Prev_Virtual_Screen */
+    { 0x0000ff3e, 22161 }, /* PreviousCandidate */
+    { 0x0000ff61, 22179 }, /* Print */
+    { 0x0000ff55, 22185 }, /* Prior */
+    { 0x000004b0, 22191 }, /* prolongedsound */
+    { 0x00000aa6, 22206 }, /* punctspace */
+    { 0x00000051, 22217 }, /* Q */
+    { 0x00000071, 22219 }, /* q */
+    { 0x00000bcc, 22221 }, /* quad */
+    { 0x0000003f, 22226 }, /* question */
+    { 0x000000bf, 22235 }, /* questiondown */
+    { 0x00000022, 22248 }, /* quotedbl */
+    { 0x00000060, 22257 }, /* quoteleft */
+    { 0x00000027, 22267 }, /* quoteright */
+    { 0x00000052, 22278 }, /* R */
+    { 0x00000072, 22280 }, /* r */
+    { 0x0000ffd2, 22282 }, /* R1 */
+    { 0x0000ffdb, 22285 }, /* R10 */
+    { 0x0000ffdc, 22289 }, /* R11 */
+    { 0x0000ffdd, 22293 }, /* R12 */
+    { 0x0000ffde, 22297 }, /* R13 */
+    { 0x0000ffdf, 22301 }, /* R14 */
+    { 0x0000ffe0, 22305 }, /* R15 */
+    { 0x0000ffd3, 22309 }, /* R2 */
+    { 0x0000ffd4, 22312 }, /* R3 */
+    { 0x0000ffd5, 22315 }, /* R4 */
+    { 0x0000ffd6, 22318 }, /* R5 */
+    { 0x0000ffd7, 22321 }, /* R6 */
+    { 0x0000ffd8, 22324 }, /* R7 */
+    { 0x0000ffd9, 22327 }, /* R8 */
+    { 0x0000ffda, 22330 }, /* R9 */
+    { 0x000001c0, 22333 }, /* Racute */
+    { 0x000001e0, 22340 }, /* racute */
+    { 0x000008d6, 22347 }, /* radical */
+    { 0x000001d8, 22355 }, /* Rcaron */
+    { 0x000001f8, 22362 }, /* rcaron */
+    { 0x000003a3, 22369 }, /* Rcedilla */
+    { 0x000003b3, 22378 }, /* rcedilla */
+    { 0x0000ff66, 22387 }, /* Redo */
+    { 0x000000ae, 22392 }, /* registered */
+    { 0x0000fe72, 22403 }, /* RepeatKeys_Enable */
+    { 0x1000ff6c, 22421 }, /* Reset */
+    { 0x0000ff0d, 22427 }, /* Return */
+    { 0x0000ff53, 22434 }, /* Right */
+    { 0x00000abe, 22440 }, /* rightanglebracket */
+    { 0x000008fd, 22458 }, /* rightarrow */
+    { 0x00000ba6, 22469 }, /* rightcaret */
+    { 0x00000ad3, 22480 }, /* rightdoublequotemark */
+    { 0x000008b0, 22501 }, /* rightmiddlecurlybrace */
+    { 0x000008b7, 22523 }, /* rightmiddlesummation */
+    { 0x00000acd, 22544 }, /* rightopentriangle */
+    { 0x00000aeb, 22562 }, /* rightpointer */
+    { 0x00000bd8, 22575 }, /* rightshoe */
+    { 0x00000ad1, 22585 }, /* rightsinglequotemark */
+    { 0x000009f5, 22606 }, /* rightt */
+    { 0x00000bfc, 22613 }, /* righttack */
+    { 0x0000ff24, 22623 }, /* Romaji */
+    { 0x010020a8, 22630 }, /* RupeeSign */
+    { 0x00000053, 22640 }, /* S */
+    { 0x00000073, 22642 }, /* s */
+    { 0x01001e60, 22644 }, /* Sabovedot */
+    { 0x01001e61, 22654 }, /* sabovedot */
+    { 0x000001a6, 22664 }, /* Sacute */
+    { 0x000001b6, 22671 }, /* sacute */
+    { 0x000001a9, 22678 }, /* Scaron */
+    { 0x000001b9, 22685 }, /* scaron */
+    { 0x000001aa, 22692 }, /* Scedilla */
+    { 0x000001ba, 22701 }, /* scedilla */
+    { 0x0100018f, 22710 }, /* SCHWA */
+    { 0x01000259, 22716 }, /* schwa */
+    { 0x000002de, 22722 }, /* Scircumflex */
+    { 0x000002fe, 22734 }, /* scircumflex */
+    { 0x0000ff7e, 22746 }, /* script_switch */
+    { 0x0000ff14, 22760 }, /* Scroll_Lock */
+    { 0x00000ad7, 22772 }, /* seconds */
+    { 0x000000a7, 22780 }, /* section */
+    { 0x0000ff60, 22788 }, /* Select */
+    { 0x0000003b, 22795 }, /* semicolon */
+    { 0x000004df, 22805 }, /* semivoicedsound */
+    { 0x000006a1, 22821 }, /* Serbian_dje */
+    { 0x000006b1, 22833 }, /* Serbian_DJE */
+    { 0x000006af, 22845 }, /* Serbian_dze */
+    { 0x000006bf, 22857 }, /* Serbian_DZE */
+    { 0x000006a8, 22869 }, /* Serbian_je */
+    { 0x000006b8, 22880 }, /* Serbian_JE */
+    { 0x000006a9, 22891 }, /* Serbian_lje */
+    { 0x000006b9, 22903 }, /* Serbian_LJE */
+    { 0x000006aa, 22915 }, /* Serbian_nje */
+    { 0x000006ba, 22927 }, /* Serbian_NJE */
+    { 0x000006ab, 22939 }, /* Serbian_tshe */
+    { 0x000006bb, 22952 }, /* Serbian_TSHE */
+    { 0x00000ac6, 22965 }, /* seveneighths */
+    { 0x01002087, 22978 }, /* sevensubscript */
+    { 0x01002077, 22993 }, /* sevensuperior */
+    { 0x0000ffe1, 23007 }, /* Shift_L */
+    { 0x0000ffe6, 23015 }, /* Shift_Lock */
+    { 0x0000ffe2, 23026 }, /* Shift_R */
+    { 0x00000aca, 23034 }, /* signaturemark */
+    { 0x00000aac, 23048 }, /* signifblank */
+    { 0x000008c9, 23060 }, /* similarequal */
+    { 0x0000ff3c, 23073 }, /* SingleCandidate */
+    { 0x00000afd, 23089 }, /* singlelowquotemark */
+    { 0x01000d85, 23108 }, /* Sinh_a */
+    { 0x01000d86, 23115 }, /* Sinh_aa */
+    { 0x01000dcf, 23123 }, /* Sinh_aa2 */
+    { 0x01000d87, 23132 }, /* Sinh_ae */
+    { 0x01000dd0, 23140 }, /* Sinh_ae2 */
+    { 0x01000d88, 23149 }, /* Sinh_aee */
+    { 0x01000dd1, 23158 }, /* Sinh_aee2 */
+    { 0x01000d93, 23168 }, /* Sinh_ai */
+    { 0x01000ddb, 23176 }, /* Sinh_ai2 */
+    { 0x01000dca, 23185 }, /* Sinh_al */
+    { 0x01000d96, 23193 }, /* Sinh_au */
+    { 0x01000dde, 23201 }, /* Sinh_au2 */
+    { 0x01000db6, 23210 }, /* Sinh_ba */
+    { 0x01000db7, 23218 }, /* Sinh_bha */
+    { 0x01000da0, 23227 }, /* Sinh_ca */
+    { 0x01000da1, 23235 }, /* Sinh_cha */
+    { 0x01000da9, 23244 }, /* Sinh_dda */
+    { 0x01000daa, 23253 }, /* Sinh_ddha */
+    { 0x01000daf, 23263 }, /* Sinh_dha */
+    { 0x01000db0, 23272 }, /* Sinh_dhha */
+    { 0x01000d91, 23282 }, /* Sinh_e */
+    { 0x01000dd9, 23289 }, /* Sinh_e2 */
+    { 0x01000d92, 23297 }, /* Sinh_ee */
+    { 0x01000dda, 23305 }, /* Sinh_ee2 */
+    { 0x01000dc6, 23314 }, /* Sinh_fa */
+    { 0x01000d9c, 23322 }, /* Sinh_ga */
+    { 0x01000d9d, 23330 }, /* Sinh_gha */
+    { 0x01000d83, 23339 }, /* Sinh_h2 */
+    { 0x01000dc4, 23347 }, /* Sinh_ha */
+    { 0x01000d89, 23355 }, /* Sinh_i */
+    { 0x01000dd2, 23362 }, /* Sinh_i2 */
+    { 0x01000d8a, 23370 }, /* Sinh_ii */
+    { 0x01000dd3, 23378 }, /* Sinh_ii2 */
+    { 0x01000da2, 23387 }, /* Sinh_ja */
+    { 0x01000da3, 23395 }, /* Sinh_jha */
+    { 0x01000da5, 23404 }, /* Sinh_jnya */
+    { 0x01000d9a, 23414 }, /* Sinh_ka */
+    { 0x01000d9b, 23422 }, /* Sinh_kha */
+    { 0x01000df4, 23431 }, /* Sinh_kunddaliya */
+    { 0x01000dbd, 23447 }, /* Sinh_la */
+    { 0x01000dc5, 23455 }, /* Sinh_lla */
+    { 0x01000d8f, 23464 }, /* Sinh_lu */
+    { 0x01000ddf, 23472 }, /* Sinh_lu2 */
+    { 0x01000d90, 23481 }, /* Sinh_luu */
+    { 0x01000df3, 23490 }, /* Sinh_luu2 */
+    { 0x01000db8, 23500 }, /* Sinh_ma */
+    { 0x01000db9, 23508 }, /* Sinh_mba */
+    { 0x01000db1, 23517 }, /* Sinh_na */
+    { 0x01000dac, 23525 }, /* Sinh_ndda */
+    { 0x01000db3, 23535 }, /* Sinh_ndha */
+    { 0x01000d82, 23545 }, /* Sinh_ng */
+    { 0x01000d9e, 23553 }, /* Sinh_ng2 */
+    { 0x01000d9f, 23562 }, /* Sinh_nga */
+    { 0x01000da6, 23571 }, /* Sinh_nja */
+    { 0x01000dab, 23580 }, /* Sinh_nna */
+    { 0x01000da4, 23589 }, /* Sinh_nya */
+    { 0x01000d94, 23598 }, /* Sinh_o */
+    { 0x01000ddc, 23605 }, /* Sinh_o2 */
+    { 0x01000d95, 23613 }, /* Sinh_oo */
+    { 0x01000ddd, 23621 }, /* Sinh_oo2 */
+    { 0x01000db4, 23630 }, /* Sinh_pa */
+    { 0x01000db5, 23638 }, /* Sinh_pha */
+    { 0x01000dbb, 23647 }, /* Sinh_ra */
+    { 0x01000d8d, 23655 }, /* Sinh_ri */
+    { 0x01000d8e, 23663 }, /* Sinh_rii */
+    { 0x01000dd8, 23672 }, /* Sinh_ru2 */
+    { 0x01000df2, 23681 }, /* Sinh_ruu2 */
+    { 0x01000dc3, 23691 }, /* Sinh_sa */
+    { 0x01000dc1, 23699 }, /* Sinh_sha */
+    { 0x01000dc2, 23708 }, /* Sinh_ssha */
+    { 0x01000dad, 23718 }, /* Sinh_tha */
+    { 0x01000dae, 23727 }, /* Sinh_thha */
+    { 0x01000da7, 23737 }, /* Sinh_tta */
+    { 0x01000da8, 23746 }, /* Sinh_ttha */
+    { 0x01000d8b, 23756 }, /* Sinh_u */
+    { 0x01000dd4, 23763 }, /* Sinh_u2 */
+    { 0x01000d8c, 23771 }, /* Sinh_uu */
+    { 0x01000dd6, 23779 }, /* Sinh_uu2 */
+    { 0x01000dc0, 23788 }, /* Sinh_va */
+    { 0x01000dba, 23796 }, /* Sinh_ya */
+    { 0x01002086, 23804 }, /* sixsubscript */
+    { 0x01002076, 23817 }, /* sixsuperior */
+    { 0x0000002f, 23829 }, /* slash */
+    { 0x0000fe73, 23835 }, /* SlowKeys_Enable */
+    { 0x000009e0, 23851 }, /* soliddiamond */
+    { 0x00000020, 23864 }, /* space */
+    { 0x0100221a, 23870 }, /* squareroot */
+    { 0x000000df, 23881 }, /* ssharp */
+    { 0x000000a3, 23888 }, /* sterling */
+    { 0x0000fe75, 23897 }, /* StickyKeys_Enable */
+    { 0x01002263, 23915 }, /* stricteq */
+    { 0x0000ff66, 23924 }, /* SunAgain */
+    { 0x0000ff7e, 23933 }, /* SunAltGraph */
+    { 0x1005ff77, 23945 }, /* SunAudioLowerVolume */
+    { 0x1005ff78, 23965 }, /* SunAudioMute */
+    { 0x1005ff79, 23978 }, /* SunAudioRaiseVolume */
+    { 0x0000ff20, 23998 }, /* SunCompose */
+    { 0x1005ff72, 24009 }, /* SunCopy */
+    { 0x1005ff75, 24017 }, /* SunCut */
+    { 0x1005ff10, 24024 }, /* SunF36 */
+    { 0x1005ff11, 24031 }, /* SunF37 */
+    { 0x1005ff03, 24038 }, /* SunFA_Acute */
+    { 0x1005ff05, 24050 }, /* SunFA_Cedilla */
+    { 0x1005ff01, 24064 }, /* SunFA_Circum */
+    { 0x1005ff04, 24077 }, /* SunFA_Diaeresis */
+    { 0x1005ff00, 24093 }, /* SunFA_Grave */
+    { 0x1005ff02, 24105 }, /* SunFA_Tilde */
+    { 0x0000ff68, 24117 }, /* SunFind */
+    { 0x1005ff71, 24125 }, /* SunFront */
+    { 0x1005ff73, 24134 }, /* SunOpen */
+    { 0x0000ff56, 24142 }, /* SunPageDown */
+    { 0x0000ff55, 24154 }, /* SunPageUp */
+    { 0x1005ff74, 24164 }, /* SunPaste */
+    { 0x1005ff76, 24173 }, /* SunPowerSwitch */
+    { 0x1005ff7d, 24188 }, /* SunPowerSwitchShift */
+    { 0x0000ff61, 24208 }, /* SunPrint_Screen */
+    { 0x1005ff70, 24224 }, /* SunProps */
+    { 0x0000ff69, 24233 }, /* SunStop */
+    { 0x1005ff60, 24241 }, /* SunSys_Req */
+    { 0x0000ff65, 24252 }, /* SunUndo */
+    { 0x1005ff7a, 24260 }, /* SunVideoDegauss */
+    { 0x1005ff7b, 24276 }, /* SunVideoLowerBrightness */
+    { 0x1005ff7c, 24300 }, /* SunVideoRaiseBrightness */
+    { 0x0000ffeb, 24324 }, /* Super_L */
+    { 0x0000ffec, 24332 }, /* Super_R */
+    { 0x0000ff15, 24340 }, /* Sys_Req */
+    { 0x1000ff6d, 24348 }, /* System */
+    { 0x00000054, 24355 }, /* T */
+    { 0x00000074, 24357 }, /* t */
+    { 0x0000ff09, 24359 }, /* Tab */
+    { 0x01001e6a, 24363 }, /* Tabovedot */
+    { 0x01001e6b, 24373 }, /* tabovedot */
+    { 0x000001ab, 24383 }, /* Tcaron */
+    { 0x000001bb, 24390 }, /* tcaron */
+    { 0x000001de, 24397 }, /* Tcedilla */
+    { 0x000001fe, 24406 }, /* tcedilla */
+    { 0x00000af9, 24415 }, /* telephone */
+    { 0x00000afa, 24425 }, /* telephonerecorder */
+    { 0x0000fed5, 24443 }, /* Terminate_Server */
+    { 0x00000ddf, 24460 }, /* Thai_baht */
+    { 0x00000dba, 24470 }, /* Thai_bobaimai */
+    { 0x00000da8, 24484 }, /* Thai_chochan */
+    { 0x00000daa, 24497 }, /* Thai_chochang */
+    { 0x00000da9, 24511 }, /* Thai_choching */
+    { 0x00000dac, 24525 }, /* Thai_chochoe */
+    { 0x00000dae, 24538 }, /* Thai_dochada */
+    { 0x00000db4, 24551 }, /* Thai_dodek */
+    { 0x00000dbd, 24562 }, /* Thai_fofa */
+    { 0x00000dbf, 24572 }, /* Thai_fofan */
+    { 0x00000dcb, 24583 }, /* Thai_hohip */
+    { 0x00000dce, 24594 }, /* Thai_honokhuk */
+    { 0x00000da2, 24608 }, /* Thai_khokhai */
+    { 0x00000da5, 24621 }, /* Thai_khokhon */
+    { 0x00000da3, 24634 }, /* Thai_khokhuat */
+    { 0x00000da4, 24648 }, /* Thai_khokhwai */
+    { 0x00000da6, 24662 }, /* Thai_khorakhang */
+    { 0x00000da1, 24678 }, /* Thai_kokai */
+    { 0x00000de5, 24689 }, /* Thai_lakkhangyao */
+    { 0x00000df7, 24706 }, /* Thai_lekchet */
+    { 0x00000df5, 24719 }, /* Thai_lekha */
+    { 0x00000df6, 24730 }, /* Thai_lekhok */
+    { 0x00000df9, 24742 }, /* Thai_lekkao */
+    { 0x00000df1, 24754 }, /* Thai_leknung */
+    { 0x00000df8, 24767 }, /* Thai_lekpaet */
+    { 0x00000df3, 24780 }, /* Thai_leksam */
+    { 0x00000df4, 24792 }, /* Thai_leksi */
+    { 0x00000df2, 24803 }, /* Thai_leksong */
+    { 0x00000df0, 24816 }, /* Thai_leksun */
+    { 0x00000dcc, 24828 }, /* Thai_lochula */
+    { 0x00000dc5, 24841 }, /* Thai_loling */
+    { 0x00000dc6, 24853 }, /* Thai_lu */
+    { 0x00000deb, 24861 }, /* Thai_maichattawa */
+    { 0x00000de8, 24878 }, /* Thai_maiek */
+    { 0x00000dd1, 24889 }, /* Thai_maihanakat */
+    { 0x00000dde, 24905 }, /* Thai_maihanakat_maitho */
+    { 0x00000de7, 24928 }, /* Thai_maitaikhu */
+    { 0x00000de9, 24943 }, /* Thai_maitho */
+    { 0x00000dea, 24955 }, /* Thai_maitri */
+    { 0x00000de6, 24967 }, /* Thai_maiyamok */
+    { 0x00000dc1, 24981 }, /* Thai_moma */
+    { 0x00000da7, 24991 }, /* Thai_ngongu */
+    { 0x00000ded, 25003 }, /* Thai_nikhahit */
+    { 0x00000db3, 25017 }, /* Thai_nonen */
+    { 0x00000db9, 25028 }, /* Thai_nonu */
+    { 0x00000dcd, 25038 }, /* Thai_oang */
+    { 0x00000dcf, 25048 }, /* Thai_paiyannoi */
+    { 0x00000dda, 25063 }, /* Thai_phinthu */
+    { 0x00000dbe, 25076 }, /* Thai_phophan */
+    { 0x00000dbc, 25089 }, /* Thai_phophung */
+    { 0x00000dc0, 25103 }, /* Thai_phosamphao */
+    { 0x00000dbb, 25119 }, /* Thai_popla */
+    { 0x00000dc3, 25130 }, /* Thai_rorua */
+    { 0x00000dc4, 25141 }, /* Thai_ru */
+    { 0x00000dd0, 25149 }, /* Thai_saraa */
+    { 0x00000dd2, 25160 }, /* Thai_saraaa */
+    { 0x00000de1, 25172 }, /* Thai_saraae */
+    { 0x00000de4, 25184 }, /* Thai_saraaimaimalai */
+    { 0x00000de3, 25204 }, /* Thai_saraaimaimuan */
+    { 0x00000dd3, 25223 }, /* Thai_saraam */
+    { 0x00000de0, 25235 }, /* Thai_sarae */
+    { 0x00000dd4, 25246 }, /* Thai_sarai */
+    { 0x00000dd5, 25257 }, /* Thai_saraii */
+    { 0x00000de2, 25269 }, /* Thai_sarao */
+    { 0x00000dd8, 25280 }, /* Thai_sarau */
+    { 0x00000dd6, 25291 }, /* Thai_saraue */
+    { 0x00000dd7, 25303 }, /* Thai_sarauee */
+    { 0x00000dd9, 25316 }, /* Thai_sarauu */
+    { 0x00000dc9, 25328 }, /* Thai_sorusi */
+    { 0x00000dc8, 25340 }, /* Thai_sosala */
+    { 0x00000dab, 25352 }, /* Thai_soso */
+    { 0x00000dca, 25362 }, /* Thai_sosua */
+    { 0x00000dec, 25373 }, /* Thai_thanthakhat */
+    { 0x00000db1, 25390 }, /* Thai_thonangmontho */
+    { 0x00000db2, 25409 }, /* Thai_thophuthao */
+    { 0x00000db7, 25425 }, /* Thai_thothahan */
+    { 0x00000db0, 25440 }, /* Thai_thothan */
+    { 0x00000db8, 25453 }, /* Thai_thothong */
+    { 0x00000db6, 25467 }, /* Thai_thothung */
+    { 0x00000daf, 25481 }, /* Thai_topatak */
+    { 0x00000db5, 25494 }, /* Thai_totao */
+    { 0x00000dc7, 25505 }, /* Thai_wowaen */
+    { 0x00000dc2, 25517 }, /* Thai_yoyak */
+    { 0x00000dad, 25528 }, /* Thai_yoying */
+    { 0x000008c0, 25540 }, /* therefore */
+    { 0x00000aa7, 25550 }, /* thinspace */
+    { 0x000000de, 25560 }, /* THORN */
+    { 0x000000de, 25566 }, /* Thorn */
+    { 0x000000fe, 25572 }, /* thorn */
+    { 0x00000ac4, 25578 }, /* threeeighths */
+    { 0x00000ab4, 25591 }, /* threefifths */
+    { 0x000000be, 25603 }, /* threequarters */
+    { 0x01002083, 25617 }, /* threesubscript */
+    { 0x000000b3, 25632 }, /* threesuperior */
+    { 0x0100222d, 25646 }, /* tintegral */
+    { 0x000008a4, 25656 }, /* topintegral */
+    { 0x000008ab, 25668 }, /* topleftparens */
+    { 0x000008a2, 25682 }, /* topleftradical */
+    { 0x000008a7, 25697 }, /* topleftsqbracket */
+    { 0x000008b1, 25714 }, /* topleftsummation */
+    { 0x000008ad, 25731 }, /* toprightparens */
+    { 0x000008a9, 25746 }, /* toprightsqbracket */
+    { 0x000008b5, 25764 }, /* toprightsummation */
+    { 0x000009f7, 25782 }, /* topt */
+    { 0x000008b3, 25787 }, /* topvertsummationconnector */
+    { 0x0000ff2b, 25813 }, /* Touroku */
+    { 0x00000ac9, 25821 }, /* trademark */
+    { 0x00000acb, 25831 }, /* trademarkincircle */
+    { 0x000003ac, 25849 }, /* Tslash */
+    { 0x000003bc, 25856 }, /* tslash */
+    { 0x00000ab3, 25863 }, /* twofifths */
+    { 0x01002082, 25873 }, /* twosubscript */
+    { 0x000000b2, 25886 }, /* twosuperior */
+    { 0x00000ab1, 25898 }, /* twothirds */
+    { 0x00000055, 25908 }, /* U */
+    { 0x00000075, 25910 }, /* u */
+    { 0x000000da, 25912 }, /* Uacute */
+    { 0x000000fa, 25919 }, /* uacute */
+    { 0x01001ee4, 25926 }, /* Ubelowdot */
+    { 0x01001ee5, 25936 }, /* ubelowdot */
+    { 0x000002dd, 25946 }, /* Ubreve */
+    { 0x000002fd, 25953 }, /* ubreve */
+    { 0x000000db, 25960 }, /* Ucircumflex */
+    { 0x000000fb, 25972 }, /* ucircumflex */
+    { 0x000000dc, 25984 }, /* Udiaeresis */
+    { 0x000000fc, 25995 }, /* udiaeresis */
+    { 0x000001db, 26006 }, /* Udoubleacute */
+    { 0x000001fb, 26019 }, /* udoubleacute */
+    { 0x000000d9, 26032 }, /* Ugrave */
+    { 0x000000f9, 26039 }, /* ugrave */
+    { 0x01001ee6, 26046 }, /* Uhook */
+    { 0x01001ee7, 26052 }, /* uhook */
+    { 0x010001af, 26058 }, /* Uhorn */
+    { 0x010001b0, 26064 }, /* uhorn */
+    { 0x01001ee8, 26070 }, /* Uhornacute */
+    { 0x01001ee9, 26081 }, /* uhornacute */
+    { 0x01001ef0, 26092 }, /* Uhornbelowdot */
+    { 0x01001ef1, 26106 }, /* uhornbelowdot */
+    { 0x01001eea, 26120 }, /* Uhorngrave */
+    { 0x01001eeb, 26131 }, /* uhorngrave */
+    { 0x01001eec, 26142 }, /* Uhornhook */
+    { 0x01001eed, 26152 }, /* uhornhook */
+    { 0x01001eee, 26162 }, /* Uhorntilde */
+    { 0x01001eef, 26173 }, /* uhorntilde */
+    { 0x000006ad, 26184 }, /* Ukrainian_ghe_with_upturn */
+    { 0x000006bd, 26210 }, /* Ukrainian_GHE_WITH_UPTURN */
+    { 0x000006a6, 26236 }, /* Ukrainian_i */
+    { 0x000006b6, 26248 }, /* Ukrainian_I */
+    { 0x000006a4, 26260 }, /* Ukrainian_ie */
+    { 0x000006b4, 26273 }, /* Ukrainian_IE */
+    { 0x000006a7, 26286 }, /* Ukrainian_yi */
+    { 0x000006b7, 26299 }, /* Ukrainian_YI */
+    { 0x000006a6, 26312 }, /* Ukranian_i */
+    { 0x000006b6, 26323 }, /* Ukranian_I */
+    { 0x000006a4, 26334 }, /* Ukranian_je */
+    { 0x000006b4, 26346 }, /* Ukranian_JE */
+    { 0x000006a7, 26358 }, /* Ukranian_yi */
+    { 0x000006b7, 26370 }, /* Ukranian_YI */
+    { 0x000003de, 26382 }, /* Umacron */
+    { 0x000003fe, 26390 }, /* umacron */
+    { 0x00000bc6, 26398 }, /* underbar */
+    { 0x0000005f, 26407 }, /* underscore */
+    { 0x0000ff65, 26418 }, /* Undo */
+    { 0x000008dd, 26423 }, /* union */
+    { 0x000003d9, 26429 }, /* Uogonek */
+    { 0x000003f9, 26437 }, /* uogonek */
+    { 0x0000ff52, 26445 }, /* Up */
+    { 0x000008fc, 26448 }, /* uparrow */
+    { 0x00000ba9, 26456 }, /* upcaret */
+    { 0x000009ec, 26464 }, /* upleftcorner */
+    { 0x000009eb, 26477 }, /* uprightcorner */
+    { 0x00000bc3, 26491 }, /* upshoe */
+    { 0x00000bd3, 26498 }, /* upstile */
+    { 0x00000bce, 26506 }, /* uptack */
+    { 0x000001d9, 26513 }, /* Uring */
+    { 0x000001f9, 26519 }, /* uring */
+    { 0x1000ff6e, 26525 }, /* User */
+    { 0x000003dd, 26530 }, /* Utilde */
+    { 0x000003fd, 26537 }, /* utilde */
+    { 0x00000056, 26544 }, /* V */
+    { 0x00000076, 26546 }, /* v */
+    { 0x000008c1, 26548 }, /* variation */
+    { 0x000009f8, 26558 }, /* vertbar */
+    { 0x000008a6, 26566 }, /* vertconnector */
+    { 0x000004de, 26580 }, /* voicedsound */
+    { 0x00ffffff, 26592 }, /* VoidSymbol */
+    { 0x000009e9, 26603 }, /* vt */
+    { 0x00000057, 26606 }, /* W */
+    { 0x00000077, 26608 }, /* w */
+    { 0x01001e82, 26610 }, /* Wacute */
+    { 0x01001e83, 26617 }, /* wacute */
+    { 0x01000174, 26624 }, /* Wcircumflex */
+    { 0x01000175, 26636 }, /* wcircumflex */
+    { 0x01001e84, 26648 }, /* Wdiaeresis */
+    { 0x01001e85, 26659 }, /* wdiaeresis */
+    { 0x01001e80, 26670 }, /* Wgrave */
+    { 0x01001e81, 26677 }, /* wgrave */
+    { 0x010020a9, 26684 }, /* WonSign */
+    { 0x00000058, 26692 }, /* X */
+    { 0x00000078, 26694 }, /* x */
+    { 0x01001e8a, 26696 }, /* Xabovedot */
+    { 0x01001e8b, 26706 }, /* xabovedot */
+    { 0x100811b9, 26716 }, /* XF8610ChannelsDown */
+    { 0x100811b8, 26735 }, /* XF8610ChannelsUp */
+    { 0x1008126f, 26752 }, /* XF863DMode */
+    { 0x1008ff39, 26763 }, /* XF86AddFavorite */
+    { 0x100811ad, 26779 }, /* XF86Addressbook */
+    { 0x10081230, 26795 }, /* XF86ALSToggle */
+    { 0x1008ff50, 26809 }, /* XF86ApplicationLeft */
+    { 0x1008ff51, 26829 }, /* XF86ApplicationRight */
+    { 0x10081244, 26850 }, /* XF86AppSelect */
+    { 0x10081177, 26864 }, /* XF86AspectRatio */
+    { 0x10081247, 26880 }, /* XF86Assistant */
+    { 0x1008121c, 26894 }, /* XF86AttendantOff */
+    { 0x1008121b, 26911 }, /* XF86AttendantOn */
+    { 0x1008121d, 26927 }, /* XF86AttendantToggle */
+    { 0x10081188, 26947 }, /* XF86Audio */
+    { 0x1008ff9b, 26957 }, /* XF86AudioCycleTrack */
+    { 0x1008126e, 26977 }, /* XF86AudioDesc */
+    { 0x1008ff97, 26991 }, /* XF86AudioForward */
+    { 0x1008ff11, 27008 }, /* XF86AudioLowerVolume */
+    { 0x1008ff32, 27029 }, /* XF86AudioMedia */
+    { 0x1008ffb2, 27044 }, /* XF86AudioMicMute */
+    { 0x1008ff12, 27061 }, /* XF86AudioMute */
+    { 0x1008ff17, 27075 }, /* XF86AudioNext */
+    { 0x1008ff31, 27089 }, /* XF86AudioPause */
+    { 0x1008ff14, 27104 }, /* XF86AudioPlay */
+    { 0x1008ffb6, 27118 }, /* XF86AudioPreset */
+    { 0x1008ff16, 27134 }, /* XF86AudioPrev */
+    { 0x1008ff13, 27148 }, /* XF86AudioRaiseVolume */
+    { 0x1008ff99, 27169 }, /* XF86AudioRandomPlay */
+    { 0x1008ff1c, 27189 }, /* XF86AudioRecord */
+    { 0x1008ff98, 27205 }, /* XF86AudioRepeat */
+    { 0x1008ff3e, 27221 }, /* XF86AudioRewind */
+    { 0x1008ff15, 27237 }, /* XF86AudioStop */
+    { 0x1008127d, 27251 }, /* XF86AutopilotEngageToggle */
+    { 0x1008ff8d, 27277 }, /* XF86Away */
+    { 0x1008ff26, 27286 }, /* XF86Back */
+    { 0x1008ff3f, 27295 }, /* XF86BackForward */
+    { 0x1008ff93, 27311 }, /* XF86Battery */
+    { 0x1008ffa6, 27323 }, /* XF86Blue */
+    { 0x1008ff94, 27332 }, /* XF86Bluetooth */
+    { 0x1008ff52, 27346 }, /* XF86Book */
+    { 0x1008119b, 27355 }, /* XF86Break */
+    { 0x1008ff3b, 27365 }, /* XF86BrightnessAdjust */
+    { 0x100810f4, 27386 }, /* XF86BrightnessAuto */
+    { 0x10081251, 27405 }, /* XF86BrightnessMax */
+    { 0x10081250, 27423 }, /* XF86BrightnessMin */
+    { 0x10081240, 27441 }, /* XF86Buttonconfig */
+    { 0x1008ff54, 27458 }, /* XF86Calculater */
+    { 0x1008ff1d, 27473 }, /* XF86Calculator */
+    { 0x1008ff20, 27488 }, /* XF86Calendar */
+    { 0x1008124c, 27501 }, /* XF86CameraAccessDisable */
+    { 0x1008124b, 27525 }, /* XF86CameraAccessEnable */
+    { 0x1008124d, 27548 }, /* XF86CameraAccessToggle */
+    { 0x10081218, 27571 }, /* XF86CameraDown */
+    { 0x10081210, 27586 }, /* XF86CameraFocus */
+    { 0x10081219, 27602 }, /* XF86CameraLeft */
+    { 0x1008121a, 27617 }, /* XF86CameraRight */
+    { 0x10081217, 27633 }, /* XF86CameraUp */
+    { 0x10081215, 27646 }, /* XF86CameraZoomIn */
+    { 0x10081216, 27663 }, /* XF86CameraZoomOut */
+    { 0x1008ff53, 27681 }, /* XF86CD */
+    { 0x10081193, 27688 }, /* XF86ChannelDown */
+    { 0x10081192, 27704 }, /* XF86ChannelUp */
+    { 0x1008ff55, 27718 }, /* XF86Clear */
+    { 0x1008fe21, 27728 }, /* XF86ClearGrab */
+    { 0x10081286, 27742 }, /* XF86ClearvuSonar */
+    { 0x1008ff56, 27759 }, /* XF86Close */
+    { 0x1008ff3d, 27769 }, /* XF86Community */
+    { 0x100811b6, 27783 }, /* XF86ContextMenu */
+    { 0x1008ff22, 27799 }, /* XF86ContrastAdjust */
+    { 0x10081243, 27818 }, /* XF86ControlPanel */
+    { 0x1008ff57, 27835 }, /* XF86Copy */
+    { 0x1008ff58, 27844 }, /* XF86Cut */
+    { 0x1008ff9c, 27852 }, /* XF86CycleAngle */
+    { 0x10081277, 27867 }, /* XF86Data */
+    { 0x100811aa, 27876 }, /* XF86Database */
+    { 0x1008124a, 27889 }, /* XF86Dictate */
+    { 0x1008ff59, 27901 }, /* XF86Display */
+    { 0x100810f5, 27913 }, /* XF86DisplayOff */
+    { 0x100811af, 27928 }, /* XF86DisplayToggle */
+    { 0x1008ff5b, 27946 }, /* XF86Documents */
+    { 0x1008ff5a, 27960 }, /* XF86DOS */
+    { 0x10081283, 27968 }, /* XF86DualRangeRadar */
+    { 0x10081185, 27987 }, /* XF86DVD */
+    { 0x100811a6, 27995 }, /* XF86Editor */
+    { 0x1008ff2c, 28006 }, /* XF86Eject */
+    { 0x10081249, 28016 }, /* XF86EmojiPicker */
+    { 0x1008ff5c, 28032 }, /* XF86Excel */
+    { 0x1008ff5d, 28042 }, /* XF86Explorer */
+    { 0x10081275, 28055 }, /* XF86FastReverse */
+    { 0x1008ff30, 28071 }, /* XF86Favorites */
+    { 0x1008ff3c, 28085 }, /* XF86Finance */
+    { 0x10081281, 28097 }, /* XF86FishingChart */
+    { 0x100811d0, 28114 }, /* XF86Fn */
+    { 0x100811d1, 28121 }, /* XF86Fn_Esc */
+    { 0x100811e5, 28132 }, /* XF86FnRightShift */
+    { 0x1008ff27, 28149 }, /* XF86Forward */
+    { 0x1008ff9d, 28161 }, /* XF86FrameBack */
+    { 0x1008ff9e, 28175 }, /* XF86FrameForward */
+    { 0x1008ffb8, 28192 }, /* XF86FullScreen */
+    { 0x1008ff5e, 28207 }, /* XF86Game */
+    { 0x1008ff5f, 28216 }, /* XF86Go */
+    { 0x100811a8, 28223 }, /* XF86GraphicsEditor */
+    { 0x1008ffa4, 28242 }, /* XF86Green */
+    { 0x100811be, 28252 }, /* XF86HangupPhone */
+    { 0x1008ffa8, 28268 }, /* XF86Hibernate */
+    { 0x1008ff37, 28282 }, /* XF86History */
+    { 0x1008ff18, 28294 }, /* XF86HomePage */
+    { 0x1008ff3a, 28307 }, /* XF86HotLinks */
+    { 0x100811ba, 28320 }, /* XF86Images */
+    { 0x10081166, 28331 }, /* XF86Info */
+    { 0x1008ff60, 28340 }, /* XF86iTouch */
+    { 0x10081242, 28351 }, /* XF86Journal */
+    { 0x1008ff06, 28363 }, /* XF86KbdBrightnessDown */
+    { 0x1008ff05, 28385 }, /* XF86KbdBrightnessUp */
+    { 0x10081264, 28405 }, /* XF86KbdInputAssistAccept */
+    { 0x10081265, 28430 }, /* XF86KbdInputAssistCancel */
+    { 0x10081261, 28455 }, /* XF86KbdInputAssistNext */
+    { 0x10081263, 28478 }, /* XF86KbdInputAssistNextgroup */
+    { 0x10081260, 28506 }, /* XF86KbdInputAssistPrev */
+    { 0x10081262, 28529 }, /* XF86KbdInputAssistPrevgroup */
+    { 0x100812b8, 28557 }, /* XF86KbdLcdMenu1 */
+    { 0x100812b9, 28573 }, /* XF86KbdLcdMenu2 */
+    { 0x100812ba, 28589 }, /* XF86KbdLcdMenu3 */
+    { 0x100812bb, 28605 }, /* XF86KbdLcdMenu4 */
+    { 0x100812bc, 28621 }, /* XF86KbdLcdMenu5 */
+    { 0x1008ff04, 28637 }, /* XF86KbdLightOnOff */
+    { 0x1008ffb3, 28655 }, /* XF86Keyboard */
+    { 0x1008ff40, 28668 }, /* XF86Launch0 */
+    { 0x1008ff41, 28680 }, /* XF86Launch1 */
+    { 0x1008ff42, 28692 }, /* XF86Launch2 */
+    { 0x1008ff43, 28704 }, /* XF86Launch3 */
+    { 0x1008ff44, 28716 }, /* XF86Launch4 */
+    { 0x1008ff45, 28728 }, /* XF86Launch5 */
+    { 0x1008ff46, 28740 }, /* XF86Launch6 */
+    { 0x1008ff47, 28752 }, /* XF86Launch7 */
+    { 0x1008ff48, 28764 }, /* XF86Launch8 */
+    { 0x1008ff49, 28776 }, /* XF86Launch9 */
+    { 0x1008ff4a, 28788 }, /* XF86LaunchA */
+    { 0x1008ff4b, 28800 }, /* XF86LaunchB */
+    { 0x1008ff4c, 28812 }, /* XF86LaunchC */
+    { 0x1008ff4d, 28824 }, /* XF86LaunchD */
+    { 0x1008ff4e, 28836 }, /* XF86LaunchE */
+    { 0x1008ff4f, 28848 }, /* XF86LaunchF */
+    { 0x10081269, 28860 }, /* XF86LeftDown */
+    { 0x10081268, 28873 }, /* XF86LeftUp */
+    { 0x1008ff35, 28884 }, /* XF86LightBulb */
+    { 0x1008121e, 28898 }, /* XF86LightsToggle */
+    { 0x1008fe25, 28915 }, /* XF86LogGrabInfo */
+    { 0x1008ff61, 28931 }, /* XF86LogOff */
+    { 0x1008fe24, 28942 }, /* XF86LogWindowTree */
+    { 0x10081290, 28960 }, /* XF86Macro1 */
+    { 0x10081299, 28971 }, /* XF86Macro10 */
+    { 0x1008129a, 28983 }, /* XF86Macro11 */
+    { 0x1008129b, 28995 }, /* XF86Macro12 */
+    { 0x1008129c, 29007 }, /* XF86Macro13 */
+    { 0x1008129d, 29019 }, /* XF86Macro14 */
+    { 0x1008129e, 29031 }, /* XF86Macro15 */
+    { 0x1008129f, 29043 }, /* XF86Macro16 */
+    { 0x100812a0, 29055 }, /* XF86Macro17 */
+    { 0x100812a1, 29067 }, /* XF86Macro18 */
+    { 0x100812a2, 29079 }, /* XF86Macro19 */
+    { 0x10081291, 29091 }, /* XF86Macro2 */
+    { 0x100812a3, 29102 }, /* XF86Macro20 */
+    { 0x100812a4, 29114 }, /* XF86Macro21 */
+    { 0x100812a5, 29126 }, /* XF86Macro22 */
+    { 0x100812a6, 29138 }, /* XF86Macro23 */
+    { 0x100812a7, 29150 }, /* XF86Macro24 */
+    { 0x100812a8, 29162 }, /* XF86Macro25 */
+    { 0x100812a9, 29174 }, /* XF86Macro26 */
+    { 0x100812aa, 29186 }, /* XF86Macro27 */
+    { 0x100812ab, 29198 }, /* XF86Macro28 */
+    { 0x100812ac, 29210 }, /* XF86Macro29 */
+    { 0x10081292, 29222 }, /* XF86Macro3 */
+    { 0x100812ad, 29233 }, /* XF86Macro30 */
+    { 0x10081293, 29245 }, /* XF86Macro4 */
+    { 0x10081294, 29256 }, /* XF86Macro5 */
+    { 0x10081295, 29267 }, /* XF86Macro6 */
+    { 0x10081296, 29278 }, /* XF86Macro7 */
+    { 0x10081297, 29289 }, /* XF86Macro8 */
+    { 0x10081298, 29300 }, /* XF86Macro9 */
+    { 0x100812b3, 29311 }, /* XF86MacroPreset1 */
+    { 0x100812b4, 29328 }, /* XF86MacroPreset2 */
+    { 0x100812b5, 29345 }, /* XF86MacroPreset3 */
+    { 0x100812b2, 29362 }, /* XF86MacroPresetCycle */
+    { 0x100812b0, 29383 }, /* XF86MacroRecordStart */
+    { 0x100812b1, 29404 }, /* XF86MacroRecordStop */
+    { 0x1008ff19, 29424 }, /* XF86Mail */
+    { 0x1008ff90, 29433 }, /* XF86MailForward */
+    { 0x1008ff62, 29449 }, /* XF86Market */
+    { 0x1008127e, 29460 }, /* XF86MarkWaypoint */
+    { 0x100811b7, 29477 }, /* XF86MediaRepeat */
+    { 0x1008126b, 29493 }, /* XF86MediaTopMenu */
+    { 0x1008ff63, 29510 }, /* XF86Meeting */
+    { 0x1008ff1e, 29522 }, /* XF86Memo */
+    { 0x1008ff65, 29531 }, /* XF86MenuKB */
+    { 0x1008ff66, 29542 }, /* XF86MenuPB */
+    { 0x1008ff8e, 29553 }, /* XF86Messenger */
+    { 0x1008ff01, 29567 }, /* XF86ModeLock */
+    { 0x1008ff07, 29580 }, /* XF86MonBrightnessCycle */
+    { 0x1008ff03, 29603 }, /* XF86MonBrightnessDown */
+    { 0x1008ff02, 29625 }, /* XF86MonBrightnessUp */
+    { 0x1008ff92, 29645 }, /* XF86Music */
+    { 0x1008ff33, 29655 }, /* XF86MyComputer */
+    { 0x1008ff67, 29670 }, /* XF86MySites */
+    { 0x10081280, 29682 }, /* XF86NavChart */
+    { 0x10081288, 29695 }, /* XF86NavInfo */
+    { 0x1008ff68, 29707 }, /* XF86New */
+    { 0x1008ff69, 29715 }, /* XF86News */
+    { 0x1008fe22, 29724 }, /* XF86Next_VMode */
+    { 0x1008127b, 29739 }, /* XF86NextElement */
+    { 0x10081270, 29755 }, /* XF86NextFavorite */
+    { 0x100811bc, 29772 }, /* XF86NotificationCenter */
+    { 0x10081200, 29795 }, /* XF86Numeric0 */
+    { 0x10081201, 29808 }, /* XF86Numeric1 */
+    { 0x1008126c, 29821 }, /* XF86Numeric11 */
+    { 0x1008126d, 29835 }, /* XF86Numeric12 */
+    { 0x10081202, 29849 }, /* XF86Numeric2 */
+    { 0x10081203, 29862 }, /* XF86Numeric3 */
+    { 0x10081204, 29875 }, /* XF86Numeric4 */
+    { 0x10081205, 29888 }, /* XF86Numeric5 */
+    { 0x10081206, 29901 }, /* XF86Numeric6 */
+    { 0x10081207, 29914 }, /* XF86Numeric7 */
+    { 0x10081208, 29927 }, /* XF86Numeric8 */
+    { 0x10081209, 29940 }, /* XF86Numeric9 */
+    { 0x1008120c, 29953 }, /* XF86NumericA */
+    { 0x1008120d, 29966 }, /* XF86NumericB */
+    { 0x1008120e, 29979 }, /* XF86NumericC */
+    { 0x1008120f, 29992 }, /* XF86NumericD */
+    { 0x1008120b, 30005 }, /* XF86NumericPound */
+    { 0x1008120a, 30022 }, /* XF86NumericStar */
+    { 0x1008ff6a, 30038 }, /* XF86OfficeHome */
+    { 0x10081278, 30053 }, /* XF86OnScreenKeyboard */
+    { 0x1008ff6b, 30074 }, /* XF86Open */
+    { 0x1008ff38, 30083 }, /* XF86OpenURL */
+    { 0x1008ff6c, 30095 }, /* XF86Option */
+    { 0x1008ff6d, 30106 }, /* XF86Paste */
+    { 0x10081272, 30116 }, /* XF86PauseRecord */
+    { 0x1008ff6e, 30132 }, /* XF86Phone */
+    { 0x100811bd, 30142 }, /* XF86PickupPhone */
+    { 0x1008ff91, 30158 }, /* XF86Pictures */
+    { 0x1008ff21, 30171 }, /* XF86PowerDown */
+    { 0x1008ff2a, 30185 }, /* XF86PowerOff */
+    { 0x100811a9, 30198 }, /* XF86Presentation */
+    { 0x1008fe23, 30215 }, /* XF86Prev_VMode */
+    { 0x1008127c, 30230 }, /* XF86PreviousElement */
+    { 0x10081279, 30250 }, /* XF86PrivacyScreenToggle */
+    { 0x1008ff70, 30274 }, /* XF86Q */
+    { 0x10081284, 30280 }, /* XF86RadarOverlay */
+    { 0x1008ffa3, 30297 }, /* XF86Red */
+    { 0x1008ff29, 30305 }, /* XF86Refresh */
+    { 0x1008ff73, 30317 }, /* XF86Reload */
+    { 0x1008ff72, 30328 }, /* XF86Reply */
+    { 0x1008ffb5, 30338 }, /* XF86RFKill */
+    { 0x10081267, 30349 }, /* XF86RightDown */
+    { 0x10081266, 30363 }, /* XF86RightUp */
+    { 0x1008ff24, 30375 }, /* XF86RockerDown */
+    { 0x1008ff25, 30390 }, /* XF86RockerEnter */
+    { 0x1008ff23, 30406 }, /* XF86RockerUp */
+    { 0x1008126a, 30419 }, /* XF86RootMenu */
+    { 0x1008ff74, 30432 }, /* XF86RotateWindows */
+    { 0x1008ff76, 30450 }, /* XF86RotationKB */
+    { 0x1008ffb7, 30465 }, /* XF86RotationLockToggle */
+    { 0x1008ff75, 30488 }, /* XF86RotationPB */
+    { 0x1008ff77, 30503 }, /* XF86Save */
+    { 0x1008ff2d, 30512 }, /* XF86ScreenSaver */
+    { 0x10081245, 30528 }, /* XF86Screensaver */
+    { 0x1008ff7a, 30544 }, /* XF86ScrollClick */
+    { 0x1008ff79, 30560 }, /* XF86ScrollDown */
+    { 0x1008ff78, 30575 }, /* XF86ScrollUp */
+    { 0x1008ff1b, 30588 }, /* XF86Search */
+    { 0x1008ffa0, 30599 }, /* XF86Select */
+    { 0x1008127a, 30610 }, /* XF86SelectiveScreenshot */
+    { 0x1008ff7b, 30634 }, /* XF86Send */
+    { 0x1008ff36, 30643 }, /* XF86Shop */
+    { 0x10081287, 30652 }, /* XF86SidevuSonar */
+    { 0x10081282, 30668 }, /* XF86SingleRangeRadar */
+    { 0x1008ff2f, 30689 }, /* XF86Sleep */
+    { 0x10081276, 30699 }, /* XF86SlowReverse */
+    { 0x1008127f, 30715 }, /* XF86Sos */
+    { 0x1008ff7c, 30723 }, /* XF86Spell */
+    { 0x100811b0, 30733 }, /* XF86SpellCheck */
+    { 0x1008ff7d, 30748 }, /* XF86SplitScreen */
+    { 0x1008ff10, 30764 }, /* XF86Standby */
+    { 0x1008ff1a, 30776 }, /* XF86Start */
+    { 0x1008ff28, 30786 }, /* XF86Stop */
+    { 0x10081271, 30795 }, /* XF86StopRecord */
+    { 0x1008ff9a, 30810 }, /* XF86Subtitle */
+    { 0x1008ff7e, 30823 }, /* XF86Support */
+    { 0x1008ffa7, 30835 }, /* XF86Suspend */
+    { 0x1008fe01, 30847 }, /* XF86Switch_VT_1 */
+    { 0x1008fe0a, 30863 }, /* XF86Switch_VT_10 */
+    { 0x1008fe0b, 30880 }, /* XF86Switch_VT_11 */
+    { 0x1008fe0c, 30897 }, /* XF86Switch_VT_12 */
+    { 0x1008fe02, 30914 }, /* XF86Switch_VT_2 */
+    { 0x1008fe03, 30930 }, /* XF86Switch_VT_3 */
+    { 0x1008fe04, 30946 }, /* XF86Switch_VT_4 */
+    { 0x1008fe05, 30962 }, /* XF86Switch_VT_5 */
+    { 0x1008fe06, 30978 }, /* XF86Switch_VT_6 */
+    { 0x1008fe07, 30994 }, /* XF86Switch_VT_7 */
+    { 0x1008fe08, 31010 }, /* XF86Switch_VT_8 */
+    { 0x1008fe09, 31026 }, /* XF86Switch_VT_9 */
+    { 0x10081241, 31042 }, /* XF86Taskmanager */
+    { 0x1008ff7f, 31058 }, /* XF86TaskPane */
+    { 0x1008ff80, 31071 }, /* XF86Terminal */
+    { 0x1008ff9f, 31084 }, /* XF86Time */
+    { 0x1008ff1f, 31093 }, /* XF86ToDoList */
+    { 0x1008ff81, 31106 }, /* XF86Tools */
+    { 0x1008ffa2, 31116 }, /* XF86TopMenu */
+    { 0x1008ffb1, 31128 }, /* XF86TouchpadOff */
+    { 0x1008ffb0, 31144 }, /* XF86TouchpadOn */
+    { 0x1008ffa9, 31159 }, /* XF86TouchpadToggle */
+    { 0x10081285, 31178 }, /* XF86TraditionalSonar */
+    { 0x1008ff82, 31199 }, /* XF86Travel */
+    { 0x1008fe20, 31210 }, /* XF86Ungrab */
+    { 0x10081274, 31221 }, /* XF86Unmute */
+    { 0x1008ff85, 31232 }, /* XF86User1KB */
+    { 0x1008ff86, 31244 }, /* XF86User2KB */
+    { 0x1008ff84, 31256 }, /* XF86UserPB */
+    { 0x1008ff96, 31267 }, /* XF86UWB */
+    { 0x1008ff34, 31275 }, /* XF86VendorHome */
+    { 0x1008ff87, 31290 }, /* XF86Video */
+    { 0x100811a0, 31300 }, /* XF86VideoPhone */
+    { 0x1008ffa1, 31315 }, /* XF86View */
+    { 0x10081273, 31324 }, /* XF86VOD */
+    { 0x10081246, 31332 }, /* XF86VoiceCommand */
+    { 0x100811ac, 31349 }, /* XF86Voicemail */
+    { 0x1008ff2b, 31363 }, /* XF86WakeUp */
+    { 0x1008ff8f, 31374 }, /* XF86WebCam */
+    { 0x1008ff88, 31385 }, /* XF86WheelButton */
+    { 0x1008ff95, 31401 }, /* XF86WLAN */
+    { 0x1008ff89, 31410 }, /* XF86Word */
+    { 0x10081211, 31419 }, /* XF86WPSButton */
+    { 0x1008ffb4, 31433 }, /* XF86WWAN */
+    { 0x1008ff2e, 31442 }, /* XF86WWW */
+    { 0x1008ff8a, 31450 }, /* XF86Xfer */
+    { 0x1008ffa5, 31459 }, /* XF86Yellow */
+    { 0x1008ff8b, 31470 }, /* XF86ZoomIn */
+    { 0x1008ff8c, 31481 }, /* XF86ZoomOut */
+    { 0x100811a4, 31493 }, /* XF86ZoomReset */
+    { 0x00000059, 31507 }, /* Y */
+    { 0x00000079, 31509 }, /* y */
+    { 0x000000dd, 31511 }, /* Yacute */
+    { 0x000000fd, 31518 }, /* yacute */
+    { 0x01001ef4, 31525 }, /* Ybelowdot */
+    { 0x01001ef5, 31535 }, /* ybelowdot */
+    { 0x01000176, 31545 }, /* Ycircumflex */
+    { 0x01000177, 31557 }, /* ycircumflex */
+    { 0x000000ff, 31569 }, /* ydiaeresis */
+    { 0x000013be, 31580 }, /* Ydiaeresis */
+    { 0x000000a5, 31591 }, /* yen */
+    { 0x01001ef2, 31595 }, /* Ygrave */
+    { 0x01001ef3, 31602 }, /* ygrave */
+    { 0x01001ef6, 31609 }, /* Yhook */
+    { 0x01001ef7, 31615 }, /* yhook */
+    { 0x01001ef8, 31621 }, /* Ytilde */
+    { 0x01001ef9, 31628 }, /* ytilde */
+    { 0x0000005a, 31635 }, /* Z */
+    { 0x0000007a, 31637 }, /* z */
+    { 0x000001af, 31639 }, /* Zabovedot */
+    { 0x000001bf, 31649 }, /* zabovedot */
+    { 0x000001ac, 31659 }, /* Zacute */
+    { 0x000001bc, 31666 }, /* zacute */
+    { 0x000001ae, 31673 }, /* Zcaron */
+    { 0x000001be, 31680 }, /* zcaron */
+    { 0x0000ff3d, 31687 }, /* Zen_Koho */
+    { 0x0000ff28, 31696 }, /* Zenkaku */
+    { 0x0000ff2a, 31704 }, /* Zenkaku_Hankaku */
+    { 0x01002080, 31720 }, /* zerosubscript */
+    { 0x01002070, 31734 }, /* zerosuperior */
+    { 0x010001b5, 31747 }, /* Zstroke */
+    { 0x010001b6, 31755 }, /* zstroke */
 };
 
 static const struct name_keysym keysym_to_name[] = {
-    { 0x00000000, 20173 }, /* NoSymbol */
-    { 0x00000020, 23885 }, /* space */
-    { 0x00000021, 12181 }, /* exclam */
-    { 0x00000022, 22269 }, /* quotedbl */
-    { 0x00000023, 20260 }, /* numbersign */
-    { 0x00000024, 11333 }, /* dollar */
-    { 0x00000025, 21569 }, /* percent */
+    { 0x00000000, 20139 }, /* NoSymbol */
+    { 0x00000020, 23864 }, /* space */
+    { 0x00000021, 12131 }, /* exclam */
+    { 0x00000022, 22248 }, /* quotedbl */
+    { 0x00000023, 20226 }, /* numbersign */
+    { 0x00000024, 11283 }, /* dollar */
+    { 0x00000025, 21548 }, /* percent */
     { 0x00000026, 908 }, /* ampersand */
     { 0x00000027, 934 }, /* apostrophe */
-    { 0x00000028, 21507 }, /* parenleft */
-    { 0x00000029, 21517 }, /* parenright */
+    { 0x00000028, 21486 }, /* parenleft */
+    { 0x00000029, 21496 }, /* parenright */
     { 0x0000002a, 3283 }, /* asterisk */
-    { 0x0000002b, 21639 }, /* plus */
+    { 0x0000002b, 21618 }, /* plus */
     { 0x0000002c, 8762 }, /* comma */
-    { 0x0000002d, 19815 }, /* minus */
-    { 0x0000002e, 21577 }, /* period */
-    { 0x0000002f, 23850 }, /* slash */
+    { 0x0000002d, 19781 }, /* minus */
+    { 0x0000002e, 21556 }, /* period */
+    { 0x0000002f, 23829 }, /* slash */
     { 0x00000030, 0 }, /* 0 */
     { 0x00000031, 2 }, /* 1 */
     { 0x00000032, 4 }, /* 2 */
@@ -5474,106 +5513,106 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x00000038, 394 }, /* 8 */
     { 0x00000039, 396 }, /* 9 */
     { 0x0000003a, 8664 }, /* colon */
-    { 0x0000003b, 22816 }, /* semicolon */
-    { 0x0000003c, 19494 }, /* less */
-    { 0x0000003d, 12133 }, /* equal */
-    { 0x0000003e, 13354 }, /* greater */
-    { 0x0000003f, 22247 }, /* question */
+    { 0x0000003b, 22795 }, /* semicolon */
+    { 0x0000003c, 19460 }, /* less */
+    { 0x0000003d, 12083 }, /* equal */
+    { 0x0000003e, 13304 }, /* greater */
+    { 0x0000003f, 22226 }, /* question */
     { 0x00000040, 3292 }, /* at */
     { 0x00000041, 398 }, /* A */
     { 0x00000042, 3328 }, /* B */
     { 0x00000043, 8439 }, /* C */
     { 0x00000044, 10402 }, /* D */
-    { 0x00000045, 11506 }, /* E */
-    { 0x00000046, 12237 }, /* F */
-    { 0x00000047, 12747 }, /* G */
-    { 0x00000048, 14460 }, /* H */
-    { 0x00000049, 17151 }, /* I */
-    { 0x0000004a, 18196 }, /* J */
-    { 0x0000004b, 18228 }, /* K */
-    { 0x0000004c, 19194 }, /* L */
-    { 0x0000004d, 19615 }, /* M */
-    { 0x0000004e, 20025 }, /* N */
-    { 0x0000004f, 20282 }, /* O */
-    { 0x00000050, 21455 }, /* P */
-    { 0x00000051, 22238 }, /* Q */
-    { 0x00000052, 22299 }, /* R */
-    { 0x00000053, 22661 }, /* S */
-    { 0x00000054, 24376 }, /* T */
-    { 0x00000055, 25929 }, /* U */
-    { 0x00000056, 26565 }, /* V */
-    { 0x00000057, 26627 }, /* W */
-    { 0x00000058, 26713 }, /* X */
-    { 0x00000059, 31218 }, /* Y */
-    { 0x0000005a, 31346 }, /* Z */
+    { 0x00000045, 11456 }, /* E */
+    { 0x00000046, 12187 }, /* F */
+    { 0x00000047, 12697 }, /* G */
+    { 0x00000048, 14439 }, /* H */
+    { 0x00000049, 17117 }, /* I */
+    { 0x0000004a, 18162 }, /* J */
+    { 0x0000004b, 18194 }, /* K */
+    { 0x0000004c, 19160 }, /* L */
+    { 0x0000004d, 19581 }, /* M */
+    { 0x0000004e, 19991 }, /* N */
+    { 0x0000004f, 20248 }, /* O */
+    { 0x00000050, 21434 }, /* P */
+    { 0x00000051, 22217 }, /* Q */
+    { 0x00000052, 22278 }, /* R */
+    { 0x00000053, 22640 }, /* S */
+    { 0x00000054, 24355 }, /* T */
+    { 0x00000055, 25908 }, /* U */
+    { 0x00000056, 26544 }, /* V */
+    { 0x00000057, 26606 }, /* W */
+    { 0x00000058, 26692 }, /* X */
+    { 0x00000059, 31507 }, /* Y */
+    { 0x0000005a, 31635 }, /* Z */
     { 0x0000005b, 3603 }, /* bracketleft */
     { 0x0000005c, 3352 }, /* backslash */
     { 0x0000005d, 3615 }, /* bracketright */
     { 0x0000005e, 3260 }, /* asciicircum */
-    { 0x0000005f, 26428 }, /* underscore */
-    { 0x00000060, 13348 }, /* grave */
+    { 0x0000005f, 26407 }, /* underscore */
+    { 0x00000060, 13298 }, /* grave */
     { 0x00000061, 400 }, /* a */
     { 0x00000062, 3330 }, /* b */
     { 0x00000063, 8441 }, /* c */
     { 0x00000064, 10404 }, /* d */
-    { 0x00000065, 11508 }, /* e */
-    { 0x00000066, 12239 }, /* f */
-    { 0x00000067, 12749 }, /* g */
-    { 0x00000068, 14462 }, /* h */
-    { 0x00000069, 17153 }, /* i */
-    { 0x0000006a, 18198 }, /* j */
-    { 0x0000006b, 18230 }, /* k */
-    { 0x0000006c, 19196 }, /* l */
-    { 0x0000006d, 19617 }, /* m */
-    { 0x0000006e, 20027 }, /* n */
-    { 0x0000006f, 20284 }, /* o */
-    { 0x00000070, 21457 }, /* p */
-    { 0x00000071, 22240 }, /* q */
-    { 0x00000072, 22301 }, /* r */
-    { 0x00000073, 22663 }, /* s */
-    { 0x00000074, 24378 }, /* t */
-    { 0x00000075, 25931 }, /* u */
-    { 0x00000076, 26567 }, /* v */
-    { 0x00000077, 26629 }, /* w */
-    { 0x00000078, 26715 }, /* x */
-    { 0x00000079, 31220 }, /* y */
-    { 0x0000007a, 31348 }, /* z */
+    { 0x00000065, 11458 }, /* e */
+    { 0x00000066, 12189 }, /* f */
+    { 0x00000067, 12699 }, /* g */
+    { 0x00000068, 14441 }, /* h */
+    { 0x00000069, 17119 }, /* i */
+    { 0x0000006a, 18164 }, /* j */
+    { 0x0000006b, 18196 }, /* k */
+    { 0x0000006c, 19162 }, /* l */
+    { 0x0000006d, 19583 }, /* m */
+    { 0x0000006e, 19993 }, /* n */
+    { 0x0000006f, 20250 }, /* o */
+    { 0x00000070, 21436 }, /* p */
+    { 0x00000071, 22219 }, /* q */
+    { 0x00000072, 22280 }, /* r */
+    { 0x00000073, 22642 }, /* s */
+    { 0x00000074, 24357 }, /* t */
+    { 0x00000075, 25910 }, /* u */
+    { 0x00000076, 26546 }, /* v */
+    { 0x00000077, 26608 }, /* w */
+    { 0x00000078, 26694 }, /* x */
+    { 0x00000079, 31509 }, /* y */
+    { 0x0000007a, 31637 }, /* z */
     { 0x0000007b, 3582 }, /* braceleft */
     { 0x0000007c, 3392 }, /* bar */
     { 0x0000007d, 3592 }, /* braceright */
     { 0x0000007e, 3272 }, /* asciitilde */
-    { 0x000000a0, 20160 }, /* nobreakspace */
-    { 0x000000a1, 12188 }, /* exclamdown */
+    { 0x000000a0, 20126 }, /* nobreakspace */
+    { 0x000000a1, 12138 }, /* exclamdown */
     { 0x000000a2, 8589 }, /* cent */
-    { 0x000000a3, 23909 }, /* sterling */
+    { 0x000000a3, 23888 }, /* sterling */
     { 0x000000a4, 8848 }, /* currency */
-    { 0x000000a5, 31302 }, /* yen */
+    { 0x000000a5, 31591 }, /* yen */
     { 0x000000a6, 8389 }, /* brokenbar */
-    { 0x000000a7, 22801 }, /* section */
-    { 0x000000a8, 11285 }, /* diaeresis */
+    { 0x000000a7, 22780 }, /* section */
+    { 0x000000a8, 11235 }, /* diaeresis */
     { 0x000000a9, 8799 }, /* copyright */
-    { 0x000000aa, 20934 }, /* ordfeminine */
-    { 0x000000ab, 14431 }, /* guillemotleft */
-    { 0x000000ac, 20229 }, /* notsign */
-    { 0x000000ad, 17144 }, /* hyphen */
-    { 0x000000ae, 22413 }, /* registered */
-    { 0x000000af, 19723 }, /* macron */
-    { 0x000000b0, 11235 }, /* degree */
-    { 0x000000b1, 21644 }, /* plusminus */
-    { 0x000000b2, 25907 }, /* twosuperior */
-    { 0x000000b3, 25653 }, /* threesuperior */
+    { 0x000000aa, 20900 }, /* ordfeminine */
+    { 0x000000ab, 14381 }, /* guillemetleft */
+    { 0x000000ac, 20195 }, /* notsign */
+    { 0x000000ad, 17110 }, /* hyphen */
+    { 0x000000ae, 22392 }, /* registered */
+    { 0x000000af, 19689 }, /* macron */
+    { 0x000000b0, 11185 }, /* degree */
+    { 0x000000b1, 21623 }, /* plusminus */
+    { 0x000000b2, 25886 }, /* twosuperior */
+    { 0x000000b3, 25632 }, /* threesuperior */
     { 0x000000b4, 820 }, /* acute */
-    { 0x000000b5, 19881 }, /* mu */
-    { 0x000000b6, 21497 }, /* paragraph */
-    { 0x000000b7, 21584 }, /* periodcentered */
+    { 0x000000b5, 19847 }, /* mu */
+    { 0x000000b6, 21476 }, /* paragraph */
+    { 0x000000b7, 21563 }, /* periodcentered */
     { 0x000000b8, 8581 }, /* cedilla */
-    { 0x000000b9, 20837 }, /* onesuperior */
-    { 0x000000ba, 19770 }, /* masculine */
-    { 0x000000bb, 14445 }, /* guillemotright */
-    { 0x000000bc, 20804 }, /* onequarter */
-    { 0x000000bd, 20796 }, /* onehalf */
-    { 0x000000be, 25624 }, /* threequarters */
-    { 0x000000bf, 22256 }, /* questiondown */
+    { 0x000000b9, 20803 }, /* onesuperior */
+    { 0x000000ba, 20912 }, /* ordmasculine */
+    { 0x000000bb, 14395 }, /* guillemetright */
+    { 0x000000bc, 20770 }, /* onequarter */
+    { 0x000000bd, 20762 }, /* onehalf */
+    { 0x000000be, 25603 }, /* threequarters */
+    { 0x000000bf, 22235 }, /* questiondown */
     { 0x000000c0, 854 }, /* Agrave */
     { 0x000000c1, 402 }, /* Aacute */
     { 0x000000c2, 622 }, /* Acircumflex */
@@ -5582,30 +5621,30 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x000000c5, 2036 }, /* Aring */
     { 0x000000c6, 848 }, /* AE */
     { 0x000000c7, 8539 }, /* Ccedilla */
-    { 0x000000c8, 11806 }, /* Egrave */
-    { 0x000000c9, 11530 }, /* Eacute */
-    { 0x000000ca, 11578 }, /* Ecircumflex */
-    { 0x000000cb, 11784 }, /* Ediaeresis */
-    { 0x000000cc, 17287 }, /* Igrave */
-    { 0x000000cd, 17165 }, /* Iacute */
-    { 0x000000ce, 17213 }, /* Icircumflex */
-    { 0x000000cf, 17247 }, /* Idiaeresis */
-    { 0x000000d0, 12146 }, /* ETH */
-    { 0x000000d1, 20237 }, /* Ntilde */
-    { 0x000000d2, 20609 }, /* Ograve */
-    { 0x000000d3, 20286 }, /* Oacute */
-    { 0x000000d4, 20350 }, /* Ocircumflex */
-    { 0x000000d5, 21392 }, /* Otilde */
-    { 0x000000d6, 20548 }, /* Odiaeresis */
-    { 0x000000d7, 19921 }, /* multiply */
-    { 0x000000d8, 21378 }, /* Oslash */
-    { 0x000000d9, 26053 }, /* Ugrave */
-    { 0x000000da, 25933 }, /* Uacute */
-    { 0x000000db, 25981 }, /* Ucircumflex */
-    { 0x000000dc, 26005 }, /* Udiaeresis */
-    { 0x000000dd, 31222 }, /* Yacute */
-    { 0x000000de, 25581 }, /* THORN */
-    { 0x000000df, 23902 }, /* ssharp */
+    { 0x000000c8, 11756 }, /* Egrave */
+    { 0x000000c9, 11480 }, /* Eacute */
+    { 0x000000ca, 11528 }, /* Ecircumflex */
+    { 0x000000cb, 11734 }, /* Ediaeresis */
+    { 0x000000cc, 17253 }, /* Igrave */
+    { 0x000000cd, 17131 }, /* Iacute */
+    { 0x000000ce, 17179 }, /* Icircumflex */
+    { 0x000000cf, 17213 }, /* Idiaeresis */
+    { 0x000000d0, 12096 }, /* ETH */
+    { 0x000000d1, 20203 }, /* Ntilde */
+    { 0x000000d2, 20575 }, /* Ograve */
+    { 0x000000d3, 20252 }, /* Oacute */
+    { 0x000000d4, 20316 }, /* Ocircumflex */
+    { 0x000000d5, 21371 }, /* Otilde */
+    { 0x000000d6, 20514 }, /* Odiaeresis */
+    { 0x000000d7, 19887 }, /* multiply */
+    { 0x000000d8, 21357 }, /* Oslash */
+    { 0x000000d9, 26032 }, /* Ugrave */
+    { 0x000000da, 25912 }, /* Uacute */
+    { 0x000000db, 25960 }, /* Ucircumflex */
+    { 0x000000dc, 25984 }, /* Udiaeresis */
+    { 0x000000dd, 31511 }, /* Yacute */
+    { 0x000000de, 25560 }, /* THORN */
+    { 0x000000df, 23881 }, /* ssharp */
     { 0x000000e0, 861 }, /* agrave */
     { 0x000000e1, 409 }, /* aacute */
     { 0x000000e2, 634 }, /* acircumflex */
@@ -5614,208 +5653,208 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x000000e5, 2042 }, /* aring */
     { 0x000000e6, 851 }, /* ae */
     { 0x000000e7, 8548 }, /* ccedilla */
-    { 0x000000e8, 11813 }, /* egrave */
-    { 0x000000e9, 11537 }, /* eacute */
-    { 0x000000ea, 11590 }, /* ecircumflex */
-    { 0x000000eb, 11795 }, /* ediaeresis */
-    { 0x000000ec, 17294 }, /* igrave */
-    { 0x000000ed, 17172 }, /* iacute */
-    { 0x000000ee, 17225 }, /* icircumflex */
-    { 0x000000ef, 17258 }, /* idiaeresis */
-    { 0x000000f0, 12154 }, /* eth */
-    { 0x000000f1, 20244 }, /* ntilde */
-    { 0x000000f2, 20616 }, /* ograve */
-    { 0x000000f3, 20293 }, /* oacute */
-    { 0x000000f4, 20362 }, /* ocircumflex */
-    { 0x000000f5, 21399 }, /* otilde */
-    { 0x000000f6, 20559 }, /* odiaeresis */
-    { 0x000000f7, 11324 }, /* division */
-    { 0x000000f8, 21385 }, /* oslash */
-    { 0x000000f9, 26060 }, /* ugrave */
-    { 0x000000fa, 25940 }, /* uacute */
-    { 0x000000fb, 25993 }, /* ucircumflex */
-    { 0x000000fc, 26016 }, /* udiaeresis */
-    { 0x000000fd, 31229 }, /* yacute */
-    { 0x000000fe, 25593 }, /* thorn */
-    { 0x000000ff, 31280 }, /* ydiaeresis */
+    { 0x000000e8, 11763 }, /* egrave */
+    { 0x000000e9, 11487 }, /* eacute */
+    { 0x000000ea, 11540 }, /* ecircumflex */
+    { 0x000000eb, 11745 }, /* ediaeresis */
+    { 0x000000ec, 17260 }, /* igrave */
+    { 0x000000ed, 17138 }, /* iacute */
+    { 0x000000ee, 17191 }, /* icircumflex */
+    { 0x000000ef, 17224 }, /* idiaeresis */
+    { 0x000000f0, 12104 }, /* eth */
+    { 0x000000f1, 20210 }, /* ntilde */
+    { 0x000000f2, 20582 }, /* ograve */
+    { 0x000000f3, 20259 }, /* oacute */
+    { 0x000000f4, 20328 }, /* ocircumflex */
+    { 0x000000f5, 21378 }, /* otilde */
+    { 0x000000f6, 20525 }, /* odiaeresis */
+    { 0x000000f7, 11274 }, /* division */
+    { 0x000000f8, 21364 }, /* oslash */
+    { 0x000000f9, 26039 }, /* ugrave */
+    { 0x000000fa, 25919 }, /* uacute */
+    { 0x000000fb, 25972 }, /* ucircumflex */
+    { 0x000000fc, 25995 }, /* udiaeresis */
+    { 0x000000fd, 31518 }, /* yacute */
+    { 0x000000fe, 25572 }, /* thorn */
+    { 0x000000ff, 31569 }, /* ydiaeresis */
     { 0x000001a1, 918 }, /* Aogonek */
     { 0x000001a2, 8383 }, /* breve */
-    { 0x000001a3, 19599 }, /* Lstroke */
-    { 0x000001a5, 19294 }, /* Lcaron */
-    { 0x000001a6, 22685 }, /* Sacute */
-    { 0x000001a9, 22699 }, /* Scaron */
-    { 0x000001aa, 22713 }, /* Scedilla */
-    { 0x000001ab, 24404 }, /* Tcaron */
-    { 0x000001ac, 31370 }, /* Zacute */
-    { 0x000001ae, 31384 }, /* Zcaron */
-    { 0x000001af, 31350 }, /* Zabovedot */
+    { 0x000001a3, 19565 }, /* Lstroke */
+    { 0x000001a5, 19260 }, /* Lcaron */
+    { 0x000001a6, 22664 }, /* Sacute */
+    { 0x000001a9, 22678 }, /* Scaron */
+    { 0x000001aa, 22692 }, /* Scedilla */
+    { 0x000001ab, 24383 }, /* Tcaron */
+    { 0x000001ac, 31659 }, /* Zacute */
+    { 0x000001ae, 31673 }, /* Zcaron */
+    { 0x000001af, 31639 }, /* Zabovedot */
     { 0x000001b1, 926 }, /* aogonek */
-    { 0x000001b2, 20602 }, /* ogonek */
-    { 0x000001b3, 19607 }, /* lstroke */
-    { 0x000001b5, 19301 }, /* lcaron */
-    { 0x000001b6, 22692 }, /* sacute */
+    { 0x000001b2, 20568 }, /* ogonek */
+    { 0x000001b3, 19573 }, /* lstroke */
+    { 0x000001b5, 19267 }, /* lcaron */
+    { 0x000001b6, 22671 }, /* sacute */
     { 0x000001b7, 8519 }, /* caron */
-    { 0x000001b9, 22706 }, /* scaron */
-    { 0x000001ba, 22722 }, /* scedilla */
-    { 0x000001bb, 24411 }, /* tcaron */
-    { 0x000001bc, 31377 }, /* zacute */
-    { 0x000001bd, 11365 }, /* doubleacute */
-    { 0x000001be, 31391 }, /* zcaron */
-    { 0x000001bf, 31360 }, /* zabovedot */
-    { 0x000001c0, 22354 }, /* Racute */
+    { 0x000001b9, 22685 }, /* scaron */
+    { 0x000001ba, 22701 }, /* scedilla */
+    { 0x000001bb, 24390 }, /* tcaron */
+    { 0x000001bc, 31666 }, /* zacute */
+    { 0x000001bd, 11315 }, /* doubleacute */
+    { 0x000001be, 31680 }, /* zcaron */
+    { 0x000001bf, 31649 }, /* zabovedot */
+    { 0x000001c0, 22333 }, /* Racute */
     { 0x000001c3, 445 }, /* Abreve */
-    { 0x000001c5, 19229 }, /* Lacute */
+    { 0x000001c5, 19195 }, /* Lacute */
     { 0x000001c6, 8475 }, /* Cacute */
     { 0x000001c8, 8525 }, /* Ccaron */
-    { 0x000001ca, 12117 }, /* Eogonek */
-    { 0x000001cc, 11564 }, /* Ecaron */
+    { 0x000001ca, 12067 }, /* Eogonek */
+    { 0x000001cc, 11514 }, /* Ecaron */
     { 0x000001cf, 10447 }, /* Dcaron */
-    { 0x000001d0, 11483 }, /* Dstroke */
-    { 0x000001d1, 20035 }, /* Nacute */
-    { 0x000001d2, 20059 }, /* Ncaron */
-    { 0x000001d5, 20570 }, /* Odoubleacute */
-    { 0x000001d8, 22376 }, /* Rcaron */
-    { 0x000001d9, 26534 }, /* Uring */
-    { 0x000001db, 26027 }, /* Udoubleacute */
-    { 0x000001de, 24418 }, /* Tcedilla */
-    { 0x000001e0, 22361 }, /* racute */
+    { 0x000001d0, 11433 }, /* Dstroke */
+    { 0x000001d1, 20001 }, /* Nacute */
+    { 0x000001d2, 20025 }, /* Ncaron */
+    { 0x000001d5, 20536 }, /* Odoubleacute */
+    { 0x000001d8, 22355 }, /* Rcaron */
+    { 0x000001d9, 26513 }, /* Uring */
+    { 0x000001db, 26006 }, /* Udoubleacute */
+    { 0x000001de, 24397 }, /* Tcedilla */
+    { 0x000001e0, 22340 }, /* racute */
     { 0x000001e3, 452 }, /* abreve */
-    { 0x000001e5, 19236 }, /* lacute */
+    { 0x000001e5, 19202 }, /* lacute */
     { 0x000001e6, 8482 }, /* cacute */
     { 0x000001e8, 8532 }, /* ccaron */
-    { 0x000001ea, 12125 }, /* eogonek */
-    { 0x000001ec, 11571 }, /* ecaron */
+    { 0x000001ea, 12075 }, /* eogonek */
+    { 0x000001ec, 11521 }, /* ecaron */
     { 0x000001ef, 10454 }, /* dcaron */
-    { 0x000001f0, 11491 }, /* dstroke */
-    { 0x000001f1, 20042 }, /* nacute */
-    { 0x000001f2, 20066 }, /* ncaron */
-    { 0x000001f5, 20583 }, /* odoubleacute */
-    { 0x000001f8, 22383 }, /* rcaron */
-    { 0x000001f9, 26540 }, /* uring */
-    { 0x000001fb, 26040 }, /* udoubleacute */
-    { 0x000001fe, 24427 }, /* tcedilla */
+    { 0x000001f0, 11441 }, /* dstroke */
+    { 0x000001f1, 20008 }, /* nacute */
+    { 0x000001f2, 20032 }, /* ncaron */
+    { 0x000001f5, 20549 }, /* odoubleacute */
+    { 0x000001f8, 22362 }, /* rcaron */
+    { 0x000001f9, 26519 }, /* uring */
+    { 0x000001fb, 26019 }, /* udoubleacute */
+    { 0x000001fe, 24406 }, /* tcedilla */
     { 0x000001ff, 436 }, /* abovedot */
-    { 0x000002a1, 17109 }, /* Hstroke */
-    { 0x000002a6, 16138 }, /* Hcircumflex */
-    { 0x000002a9, 17155 }, /* Iabovedot */
-    { 0x000002ab, 12771 }, /* Gbreve */
-    { 0x000002ac, 18200 }, /* Jcircumflex */
-    { 0x000002b1, 17117 }, /* hstroke */
-    { 0x000002b6, 16150 }, /* hcircumflex */
-    { 0x000002b9, 17269 }, /* idotless */
-    { 0x000002bb, 12778 }, /* gbreve */
-    { 0x000002bc, 18212 }, /* jcircumflex */
+    { 0x000002a1, 17075 }, /* Hstroke */
+    { 0x000002a6, 16117 }, /* Hcircumflex */
+    { 0x000002a9, 17121 }, /* Iabovedot */
+    { 0x000002ab, 12721 }, /* Gbreve */
+    { 0x000002ac, 18166 }, /* Jcircumflex */
+    { 0x000002b1, 17083 }, /* hstroke */
+    { 0x000002b6, 16129 }, /* hcircumflex */
+    { 0x000002b9, 17235 }, /* idotless */
+    { 0x000002bb, 12728 }, /* gbreve */
+    { 0x000002bc, 18178 }, /* jcircumflex */
     { 0x000002c5, 8455 }, /* Cabovedot */
     { 0x000002c6, 8557 }, /* Ccircumflex */
-    { 0x000002d5, 12751 }, /* Gabovedot */
-    { 0x000002d8, 12817 }, /* Gcircumflex */
-    { 0x000002dd, 25967 }, /* Ubreve */
-    { 0x000002de, 22743 }, /* Scircumflex */
+    { 0x000002d5, 12701 }, /* Gabovedot */
+    { 0x000002d8, 12767 }, /* Gcircumflex */
+    { 0x000002dd, 25946 }, /* Ubreve */
+    { 0x000002de, 22722 }, /* Scircumflex */
     { 0x000002e5, 8465 }, /* cabovedot */
     { 0x000002e6, 8569 }, /* ccircumflex */
-    { 0x000002f5, 12761 }, /* gabovedot */
-    { 0x000002f8, 12829 }, /* gcircumflex */
-    { 0x000002fd, 25974 }, /* ubreve */
-    { 0x000002fe, 22755 }, /* scircumflex */
-    { 0x000003a2, 19190 }, /* kra */
-    { 0x000003a3, 22390 }, /* Rcedilla */
-    { 0x000003a5, 18182 }, /* Itilde */
-    { 0x000003a6, 19308 }, /* Lcedilla */
-    { 0x000003aa, 11921 }, /* Emacron */
-    { 0x000003ab, 12799 }, /* Gcedilla */
-    { 0x000003ac, 25870 }, /* Tslash */
-    { 0x000003b3, 22399 }, /* rcedilla */
-    { 0x000003b5, 18189 }, /* itilde */
-    { 0x000003b6, 19317 }, /* lcedilla */
-    { 0x000003ba, 11929 }, /* emacron */
-    { 0x000003bb, 12808 }, /* gcedilla */
-    { 0x000003bc, 25877 }, /* tslash */
-    { 0x000003bd, 12065 }, /* ENG */
-    { 0x000003bf, 12069 }, /* eng */
+    { 0x000002f5, 12711 }, /* gabovedot */
+    { 0x000002f8, 12779 }, /* gcircumflex */
+    { 0x000002fd, 25953 }, /* ubreve */
+    { 0x000002fe, 22734 }, /* scircumflex */
+    { 0x000003a2, 19156 }, /* kra */
+    { 0x000003a3, 22369 }, /* Rcedilla */
+    { 0x000003a5, 18148 }, /* Itilde */
+    { 0x000003a6, 19274 }, /* Lcedilla */
+    { 0x000003aa, 11871 }, /* Emacron */
+    { 0x000003ab, 12749 }, /* Gcedilla */
+    { 0x000003ac, 25849 }, /* Tslash */
+    { 0x000003b3, 22378 }, /* rcedilla */
+    { 0x000003b5, 18155 }, /* itilde */
+    { 0x000003b6, 19283 }, /* lcedilla */
+    { 0x000003ba, 11879 }, /* emacron */
+    { 0x000003bb, 12758 }, /* gcedilla */
+    { 0x000003bc, 25856 }, /* tslash */
+    { 0x000003bd, 12015 }, /* ENG */
+    { 0x000003bf, 12019 }, /* eng */
     { 0x000003c0, 892 }, /* Amacron */
-    { 0x000003c7, 17420 }, /* Iogonek */
-    { 0x000003cc, 11510 }, /* Eabovedot */
-    { 0x000003cf, 17313 }, /* Imacron */
-    { 0x000003d1, 20073 }, /* Ncedilla */
-    { 0x000003d2, 20761 }, /* Omacron */
-    { 0x000003d3, 18861 }, /* Kcedilla */
-    { 0x000003d9, 26450 }, /* Uogonek */
-    { 0x000003dd, 26551 }, /* Utilde */
-    { 0x000003de, 26403 }, /* Umacron */
+    { 0x000003c7, 17386 }, /* Iogonek */
+    { 0x000003cc, 11460 }, /* Eabovedot */
+    { 0x000003cf, 17279 }, /* Imacron */
+    { 0x000003d1, 20039 }, /* Ncedilla */
+    { 0x000003d2, 20727 }, /* Omacron */
+    { 0x000003d3, 18827 }, /* Kcedilla */
+    { 0x000003d9, 26429 }, /* Uogonek */
+    { 0x000003dd, 26530 }, /* Utilde */
+    { 0x000003de, 26382 }, /* Umacron */
     { 0x000003e0, 900 }, /* amacron */
-    { 0x000003e7, 17428 }, /* iogonek */
-    { 0x000003ec, 11520 }, /* eabovedot */
-    { 0x000003ef, 17321 }, /* imacron */
-    { 0x000003f1, 20082 }, /* ncedilla */
-    { 0x000003f2, 20769 }, /* omacron */
-    { 0x000003f3, 18870 }, /* kcedilla */
-    { 0x000003f9, 26458 }, /* uogonek */
-    { 0x000003fd, 26558 }, /* utilde */
-    { 0x000003fe, 26411 }, /* umacron */
-    { 0x0000047e, 21446 }, /* overline */
-    { 0x000004a1, 18325 }, /* kana_fullstop */
-    { 0x000004a2, 18559 }, /* kana_openingbracket */
-    { 0x000004a3, 18255 }, /* kana_closingbracket */
-    { 0x000004a4, 18275 }, /* kana_comma */
-    { 0x000004a5, 18286 }, /* kana_conjunctive */
-    { 0x000004a6, 18771 }, /* kana_WO */
-    { 0x000004a7, 18232 }, /* kana_a */
-    { 0x000004a8, 18379 }, /* kana_i */
-    { 0x000004a9, 18749 }, /* kana_u */
-    { 0x000004aa, 18303 }, /* kana_e */
-    { 0x000004ab, 18545 }, /* kana_o */
-    { 0x000004ac, 18779 }, /* kana_ya */
-    { 0x000004ad, 18811 }, /* kana_yu */
-    { 0x000004ae, 18795 }, /* kana_yo */
-    { 0x000004af, 18715 }, /* kana_tsu */
-    { 0x000004b0, 22212 }, /* prolongedsound */
-    { 0x000004b1, 18239 }, /* kana_A */
-    { 0x000004b2, 18386 }, /* kana_I */
-    { 0x000004b3, 18756 }, /* kana_U */
-    { 0x000004b4, 18310 }, /* kana_E */
-    { 0x000004b5, 18552 }, /* kana_O */
-    { 0x000004b6, 18393 }, /* kana_KA */
-    { 0x000004b7, 18409 }, /* kana_KI */
-    { 0x000004b8, 18425 }, /* kana_KU */
-    { 0x000004b9, 18401 }, /* kana_KE */
-    { 0x000004ba, 18417 }, /* kana_KO */
-    { 0x000004bb, 18619 }, /* kana_SA */
-    { 0x000004bc, 18635 }, /* kana_SHI */
-    { 0x000004bd, 18663 }, /* kana_SU */
-    { 0x000004be, 18627 }, /* kana_SE */
-    { 0x000004bf, 18655 }, /* kana_SO */
-    { 0x000004c0, 18683 }, /* kana_TA */
-    { 0x000004c1, 18246 }, /* kana_CHI */
-    { 0x000004c2, 18724 }, /* kana_TSU */
-    { 0x000004c3, 18691 }, /* kana_TE */
-    { 0x000004c4, 18707 }, /* kana_TO */
-    { 0x000004c5, 18505 }, /* kana_NA */
-    { 0x000004c6, 18521 }, /* kana_NI */
-    { 0x000004c7, 18537 }, /* kana_NU */
-    { 0x000004c8, 18513 }, /* kana_NE */
-    { 0x000004c9, 18529 }, /* kana_NO */
-    { 0x000004ca, 18339 }, /* kana_HA */
-    { 0x000004cb, 18355 }, /* kana_HI */
-    { 0x000004cc, 18317 }, /* kana_FU */
-    { 0x000004cd, 18347 }, /* kana_HE */
-    { 0x000004ce, 18363 }, /* kana_HO */
-    { 0x000004cf, 18443 }, /* kana_MA */
-    { 0x000004d0, 18459 }, /* kana_MI */
-    { 0x000004d1, 18490 }, /* kana_MU */
-    { 0x000004d2, 18451 }, /* kana_ME */
-    { 0x000004d3, 18482 }, /* kana_MO */
-    { 0x000004d4, 18787 }, /* kana_YA */
-    { 0x000004d5, 18819 }, /* kana_YU */
-    { 0x000004d6, 18803 }, /* kana_YO */
-    { 0x000004d7, 18579 }, /* kana_RA */
-    { 0x000004d8, 18595 }, /* kana_RI */
-    { 0x000004d9, 18611 }, /* kana_RU */
-    { 0x000004da, 18587 }, /* kana_RE */
-    { 0x000004db, 18603 }, /* kana_RO */
-    { 0x000004dc, 18763 }, /* kana_WA */
-    { 0x000004dd, 18498 }, /* kana_N */
-    { 0x000004de, 26601 }, /* voicedsound */
-    { 0x000004df, 22826 }, /* semivoicedsound */
+    { 0x000003e7, 17394 }, /* iogonek */
+    { 0x000003ec, 11470 }, /* eabovedot */
+    { 0x000003ef, 17287 }, /* imacron */
+    { 0x000003f1, 20048 }, /* ncedilla */
+    { 0x000003f2, 20735 }, /* omacron */
+    { 0x000003f3, 18836 }, /* kcedilla */
+    { 0x000003f9, 26437 }, /* uogonek */
+    { 0x000003fd, 26537 }, /* utilde */
+    { 0x000003fe, 26390 }, /* umacron */
+    { 0x0000047e, 21425 }, /* overline */
+    { 0x000004a1, 18291 }, /* kana_fullstop */
+    { 0x000004a2, 18525 }, /* kana_openingbracket */
+    { 0x000004a3, 18221 }, /* kana_closingbracket */
+    { 0x000004a4, 18241 }, /* kana_comma */
+    { 0x000004a5, 18252 }, /* kana_conjunctive */
+    { 0x000004a6, 18737 }, /* kana_WO */
+    { 0x000004a7, 18198 }, /* kana_a */
+    { 0x000004a8, 18345 }, /* kana_i */
+    { 0x000004a9, 18715 }, /* kana_u */
+    { 0x000004aa, 18269 }, /* kana_e */
+    { 0x000004ab, 18511 }, /* kana_o */
+    { 0x000004ac, 18745 }, /* kana_ya */
+    { 0x000004ad, 18777 }, /* kana_yu */
+    { 0x000004ae, 18761 }, /* kana_yo */
+    { 0x000004af, 18681 }, /* kana_tsu */
+    { 0x000004b0, 22191 }, /* prolongedsound */
+    { 0x000004b1, 18205 }, /* kana_A */
+    { 0x000004b2, 18352 }, /* kana_I */
+    { 0x000004b3, 18722 }, /* kana_U */
+    { 0x000004b4, 18276 }, /* kana_E */
+    { 0x000004b5, 18518 }, /* kana_O */
+    { 0x000004b6, 18359 }, /* kana_KA */
+    { 0x000004b7, 18375 }, /* kana_KI */
+    { 0x000004b8, 18391 }, /* kana_KU */
+    { 0x000004b9, 18367 }, /* kana_KE */
+    { 0x000004ba, 18383 }, /* kana_KO */
+    { 0x000004bb, 18585 }, /* kana_SA */
+    { 0x000004bc, 18601 }, /* kana_SHI */
+    { 0x000004bd, 18629 }, /* kana_SU */
+    { 0x000004be, 18593 }, /* kana_SE */
+    { 0x000004bf, 18621 }, /* kana_SO */
+    { 0x000004c0, 18649 }, /* kana_TA */
+    { 0x000004c1, 18212 }, /* kana_CHI */
+    { 0x000004c2, 18690 }, /* kana_TSU */
+    { 0x000004c3, 18657 }, /* kana_TE */
+    { 0x000004c4, 18673 }, /* kana_TO */
+    { 0x000004c5, 18471 }, /* kana_NA */
+    { 0x000004c6, 18487 }, /* kana_NI */
+    { 0x000004c7, 18503 }, /* kana_NU */
+    { 0x000004c8, 18479 }, /* kana_NE */
+    { 0x000004c9, 18495 }, /* kana_NO */
+    { 0x000004ca, 18305 }, /* kana_HA */
+    { 0x000004cb, 18321 }, /* kana_HI */
+    { 0x000004cc, 18283 }, /* kana_FU */
+    { 0x000004cd, 18313 }, /* kana_HE */
+    { 0x000004ce, 18329 }, /* kana_HO */
+    { 0x000004cf, 18409 }, /* kana_MA */
+    { 0x000004d0, 18425 }, /* kana_MI */
+    { 0x000004d1, 18456 }, /* kana_MU */
+    { 0x000004d2, 18417 }, /* kana_ME */
+    { 0x000004d3, 18448 }, /* kana_MO */
+    { 0x000004d4, 18753 }, /* kana_YA */
+    { 0x000004d5, 18785 }, /* kana_YU */
+    { 0x000004d6, 18769 }, /* kana_YO */
+    { 0x000004d7, 18545 }, /* kana_RA */
+    { 0x000004d8, 18561 }, /* kana_RI */
+    { 0x000004d9, 18577 }, /* kana_RU */
+    { 0x000004da, 18553 }, /* kana_RE */
+    { 0x000004db, 18569 }, /* kana_RO */
+    { 0x000004dc, 18729 }, /* kana_WA */
+    { 0x000004dd, 18464 }, /* kana_N */
+    { 0x000004de, 26580 }, /* voicedsound */
+    { 0x000004df, 22805 }, /* semivoicedsound */
     { 0x000005ac, 1109 }, /* Arabic_comma */
     { 0x000005bb, 1764 }, /* Arabic_semicolon */
     { 0x000005bf, 1698 }, /* Arabic_question_mark */
@@ -5864,35 +5903,35 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x000005f0, 1515 }, /* Arabic_kasra */
     { 0x000005f1, 1781 }, /* Arabic_shadda */
     { 0x000005f2, 1808 }, /* Arabic_sukun */
-    { 0x000006a1, 22842 }, /* Serbian_dje */
-    { 0x000006a2, 19667 }, /* Macedonia_gje */
+    { 0x000006a1, 22821 }, /* Serbian_dje */
+    { 0x000006a2, 19633 }, /* Macedonia_gje */
     { 0x000006a3, 9538 }, /* Cyrillic_io */
-    { 0x000006a4, 26281 }, /* Ukrainian_ie */
-    { 0x000006a5, 19639 }, /* Macedonia_dse */
-    { 0x000006a6, 26257 }, /* Ukrainian_i */
-    { 0x000006a7, 26307 }, /* Ukrainian_yi */
+    { 0x000006a4, 26260 }, /* Ukrainian_ie */
+    { 0x000006a5, 19605 }, /* Macedonia_dse */
+    { 0x000006a6, 26236 }, /* Ukrainian_i */
+    { 0x000006a7, 26286 }, /* Ukrainian_yi */
     { 0x000006a8, 9562 }, /* Cyrillic_je */
     { 0x000006a9, 9700 }, /* Cyrillic_lje */
     { 0x000006aa, 9726 }, /* Cyrillic_nje */
-    { 0x000006ab, 22960 }, /* Serbian_tshe */
-    { 0x000006ac, 19695 }, /* Macedonia_kje */
-    { 0x000006ad, 26205 }, /* Ukrainian_ghe_with_upturn */
+    { 0x000006ab, 22939 }, /* Serbian_tshe */
+    { 0x000006ac, 19661 }, /* Macedonia_kje */
+    { 0x000006ad, 26184 }, /* Ukrainian_ghe_with_upturn */
     { 0x000006ae, 8399 }, /* Byelorussian_shortu */
     { 0x000006af, 9054 }, /* Cyrillic_dzhe */
-    { 0x000006b0, 20271 }, /* numerosign */
-    { 0x000006b1, 22854 }, /* Serbian_DJE */
-    { 0x000006b2, 19681 }, /* Macedonia_GJE */
+    { 0x000006b0, 20237 }, /* numerosign */
+    { 0x000006b1, 22833 }, /* Serbian_DJE */
+    { 0x000006b2, 19647 }, /* Macedonia_GJE */
     { 0x000006b3, 9550 }, /* Cyrillic_IO */
-    { 0x000006b4, 26294 }, /* Ukrainian_IE */
-    { 0x000006b5, 19653 }, /* Macedonia_DSE */
-    { 0x000006b6, 26269 }, /* Ukrainian_I */
-    { 0x000006b7, 26320 }, /* Ukrainian_YI */
+    { 0x000006b4, 26273 }, /* Ukrainian_IE */
+    { 0x000006b5, 19619 }, /* Macedonia_DSE */
+    { 0x000006b6, 26248 }, /* Ukrainian_I */
+    { 0x000006b7, 26299 }, /* Ukrainian_YI */
     { 0x000006b8, 9574 }, /* Cyrillic_JE */
     { 0x000006b9, 9713 }, /* Cyrillic_LJE */
     { 0x000006ba, 9739 }, /* Cyrillic_NJE */
-    { 0x000006bb, 22973 }, /* Serbian_TSHE */
-    { 0x000006bc, 19709 }, /* Macedonia_KJE */
-    { 0x000006bd, 26231 }, /* Ukrainian_GHE_WITH_UPTURN */
+    { 0x000006bb, 22952 }, /* Serbian_TSHE */
+    { 0x000006bc, 19675 }, /* Macedonia_KJE */
+    { 0x000006bd, 26210 }, /* Ukrainian_GHE_WITH_UPTURN */
     { 0x000006be, 8419 }, /* Byelorussian_SHORTU */
     { 0x000006bf, 9068 }, /* Cyrillic_DZHE */
     { 0x000006c0, 10282 }, /* Cyrillic_yu */
@@ -5959,460 +5998,460 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x000006fd, 9899 }, /* Cyrillic_SHCHA */
     { 0x000006fe, 8923 }, /* Cyrillic_CHE */
     { 0x000006ff, 9438 }, /* Cyrillic_HARDSIGN */
-    { 0x000007a1, 13424 }, /* Greek_ALPHAaccent */
-    { 0x000007a2, 13554 }, /* Greek_EPSILONaccent */
-    { 0x000007a3, 13614 }, /* Greek_ETAaccent */
-    { 0x000007a4, 13729 }, /* Greek_IOTAaccent */
-    { 0x000007a5, 13808 }, /* Greek_IOTAdieresis */
-    { 0x000007a7, 14044 }, /* Greek_OMICRONaccent */
-    { 0x000007a8, 14271 }, /* Greek_UPSILONaccent */
-    { 0x000007a9, 14339 }, /* Greek_UPSILONdieresis */
-    { 0x000007ab, 13980 }, /* Greek_OMEGAaccent */
-    { 0x000007ae, 13379 }, /* Greek_accentdieresis */
-    { 0x000007af, 13692 }, /* Greek_horizbar */
-    { 0x000007b1, 13442 }, /* Greek_alphaaccent */
-    { 0x000007b2, 13574 }, /* Greek_epsilonaccent */
-    { 0x000007b3, 13630 }, /* Greek_etaaccent */
-    { 0x000007b4, 13746 }, /* Greek_iotaaccent */
-    { 0x000007b5, 13827 }, /* Greek_iotadieresis */
-    { 0x000007b6, 13763 }, /* Greek_iotaaccentdieresis */
-    { 0x000007b7, 14064 }, /* Greek_omicronaccent */
-    { 0x000007b8, 14291 }, /* Greek_upsilonaccent */
-    { 0x000007b9, 14361 }, /* Greek_upsilondieresis */
-    { 0x000007ba, 14311 }, /* Greek_upsilonaccentdieresis */
-    { 0x000007bb, 13998 }, /* Greek_omegaaccent */
-    { 0x000007c1, 13400 }, /* Greek_ALPHA */
-    { 0x000007c2, 13460 }, /* Greek_BETA */
-    { 0x000007c3, 13668 }, /* Greek_GAMMA */
-    { 0x000007c4, 13502 }, /* Greek_DELTA */
-    { 0x000007c5, 13526 }, /* Greek_EPSILON */
-    { 0x000007c6, 14401 }, /* Greek_ZETA */
-    { 0x000007c7, 13594 }, /* Greek_ETA */
-    { 0x000007c8, 14219 }, /* Greek_THETA */
-    { 0x000007c9, 13707 }, /* Greek_IOTA */
-    { 0x000007ca, 13846 }, /* Greek_KAPPA */
-    { 0x000007cb, 13896 }, /* Greek_LAMDA */
-    { 0x000007cc, 13920 }, /* Greek_MU */
-    { 0x000007cd, 13938 }, /* Greek_NU */
-    { 0x000007ce, 14383 }, /* Greek_XI */
-    { 0x000007cf, 14016 }, /* Greek_OMICRON */
-    { 0x000007d0, 14104 }, /* Greek_PI */
-    { 0x000007d1, 14142 }, /* Greek_RHO */
-    { 0x000007d2, 14162 }, /* Greek_SIGMA */
-    { 0x000007d4, 14199 }, /* Greek_TAU */
-    { 0x000007d5, 14243 }, /* Greek_UPSILON */
-    { 0x000007d6, 14084 }, /* Greek_PHI */
-    { 0x000007d7, 13482 }, /* Greek_CHI */
-    { 0x000007d8, 14122 }, /* Greek_PSI */
-    { 0x000007d9, 13956 }, /* Greek_OMEGA */
-    { 0x000007e1, 13412 }, /* Greek_alpha */
-    { 0x000007e2, 13471 }, /* Greek_beta */
-    { 0x000007e3, 13680 }, /* Greek_gamma */
-    { 0x000007e4, 13514 }, /* Greek_delta */
-    { 0x000007e5, 13540 }, /* Greek_epsilon */
-    { 0x000007e6, 14412 }, /* Greek_zeta */
-    { 0x000007e7, 13604 }, /* Greek_eta */
-    { 0x000007e8, 14231 }, /* Greek_theta */
-    { 0x000007e9, 13718 }, /* Greek_iota */
-    { 0x000007ea, 13858 }, /* Greek_kappa */
-    { 0x000007eb, 13908 }, /* Greek_lamda */
-    { 0x000007ec, 13929 }, /* Greek_mu */
-    { 0x000007ed, 13947 }, /* Greek_nu */
-    { 0x000007ee, 14392 }, /* Greek_xi */
-    { 0x000007ef, 14030 }, /* Greek_omicron */
-    { 0x000007f0, 14113 }, /* Greek_pi */
-    { 0x000007f1, 14152 }, /* Greek_rho */
-    { 0x000007f2, 14174 }, /* Greek_sigma */
-    { 0x000007f3, 13646 }, /* Greek_finalsmallsigma */
-    { 0x000007f4, 14209 }, /* Greek_tau */
-    { 0x000007f5, 14257 }, /* Greek_upsilon */
-    { 0x000007f6, 14094 }, /* Greek_phi */
-    { 0x000007f7, 13492 }, /* Greek_chi */
-    { 0x000007f8, 14132 }, /* Greek_psi */
-    { 0x000007f9, 13968 }, /* Greek_omega */
-    { 0x000008a1, 19438 }, /* leftradical */
-    { 0x000008a2, 25703 }, /* topleftradical */
-    { 0x000008a3, 16749 }, /* horizconnector */
-    { 0x000008a4, 25677 }, /* topintegral */
+    { 0x000007a1, 13374 }, /* Greek_ALPHAaccent */
+    { 0x000007a2, 13504 }, /* Greek_EPSILONaccent */
+    { 0x000007a3, 13564 }, /* Greek_ETAaccent */
+    { 0x000007a4, 13679 }, /* Greek_IOTAaccent */
+    { 0x000007a5, 13758 }, /* Greek_IOTAdieresis */
+    { 0x000007a7, 13994 }, /* Greek_OMICRONaccent */
+    { 0x000007a8, 14221 }, /* Greek_UPSILONaccent */
+    { 0x000007a9, 14289 }, /* Greek_UPSILONdieresis */
+    { 0x000007ab, 13930 }, /* Greek_OMEGAaccent */
+    { 0x000007ae, 13329 }, /* Greek_accentdieresis */
+    { 0x000007af, 13642 }, /* Greek_horizbar */
+    { 0x000007b1, 13392 }, /* Greek_alphaaccent */
+    { 0x000007b2, 13524 }, /* Greek_epsilonaccent */
+    { 0x000007b3, 13580 }, /* Greek_etaaccent */
+    { 0x000007b4, 13696 }, /* Greek_iotaaccent */
+    { 0x000007b5, 13777 }, /* Greek_iotadieresis */
+    { 0x000007b6, 13713 }, /* Greek_iotaaccentdieresis */
+    { 0x000007b7, 14014 }, /* Greek_omicronaccent */
+    { 0x000007b8, 14241 }, /* Greek_upsilonaccent */
+    { 0x000007b9, 14311 }, /* Greek_upsilondieresis */
+    { 0x000007ba, 14261 }, /* Greek_upsilonaccentdieresis */
+    { 0x000007bb, 13948 }, /* Greek_omegaaccent */
+    { 0x000007c1, 13350 }, /* Greek_ALPHA */
+    { 0x000007c2, 13410 }, /* Greek_BETA */
+    { 0x000007c3, 13618 }, /* Greek_GAMMA */
+    { 0x000007c4, 13452 }, /* Greek_DELTA */
+    { 0x000007c5, 13476 }, /* Greek_EPSILON */
+    { 0x000007c6, 14351 }, /* Greek_ZETA */
+    { 0x000007c7, 13544 }, /* Greek_ETA */
+    { 0x000007c8, 14169 }, /* Greek_THETA */
+    { 0x000007c9, 13657 }, /* Greek_IOTA */
+    { 0x000007ca, 13796 }, /* Greek_KAPPA */
+    { 0x000007cb, 13846 }, /* Greek_LAMDA */
+    { 0x000007cc, 13870 }, /* Greek_MU */
+    { 0x000007cd, 13888 }, /* Greek_NU */
+    { 0x000007ce, 14333 }, /* Greek_XI */
+    { 0x000007cf, 13966 }, /* Greek_OMICRON */
+    { 0x000007d0, 14054 }, /* Greek_PI */
+    { 0x000007d1, 14092 }, /* Greek_RHO */
+    { 0x000007d2, 14112 }, /* Greek_SIGMA */
+    { 0x000007d4, 14149 }, /* Greek_TAU */
+    { 0x000007d5, 14193 }, /* Greek_UPSILON */
+    { 0x000007d6, 14034 }, /* Greek_PHI */
+    { 0x000007d7, 13432 }, /* Greek_CHI */
+    { 0x000007d8, 14072 }, /* Greek_PSI */
+    { 0x000007d9, 13906 }, /* Greek_OMEGA */
+    { 0x000007e1, 13362 }, /* Greek_alpha */
+    { 0x000007e2, 13421 }, /* Greek_beta */
+    { 0x000007e3, 13630 }, /* Greek_gamma */
+    { 0x000007e4, 13464 }, /* Greek_delta */
+    { 0x000007e5, 13490 }, /* Greek_epsilon */
+    { 0x000007e6, 14362 }, /* Greek_zeta */
+    { 0x000007e7, 13554 }, /* Greek_eta */
+    { 0x000007e8, 14181 }, /* Greek_theta */
+    { 0x000007e9, 13668 }, /* Greek_iota */
+    { 0x000007ea, 13808 }, /* Greek_kappa */
+    { 0x000007eb, 13858 }, /* Greek_lamda */
+    { 0x000007ec, 13879 }, /* Greek_mu */
+    { 0x000007ed, 13897 }, /* Greek_nu */
+    { 0x000007ee, 14342 }, /* Greek_xi */
+    { 0x000007ef, 13980 }, /* Greek_omicron */
+    { 0x000007f0, 14063 }, /* Greek_pi */
+    { 0x000007f1, 14102 }, /* Greek_rho */
+    { 0x000007f2, 14124 }, /* Greek_sigma */
+    { 0x000007f3, 13596 }, /* Greek_finalsmallsigma */
+    { 0x000007f4, 14159 }, /* Greek_tau */
+    { 0x000007f5, 14207 }, /* Greek_upsilon */
+    { 0x000007f6, 14044 }, /* Greek_phi */
+    { 0x000007f7, 13442 }, /* Greek_chi */
+    { 0x000007f8, 14082 }, /* Greek_psi */
+    { 0x000007f9, 13918 }, /* Greek_omega */
+    { 0x000008a1, 19404 }, /* leftradical */
+    { 0x000008a2, 25682 }, /* topleftradical */
+    { 0x000008a3, 16728 }, /* horizconnector */
+    { 0x000008a4, 25656 }, /* topintegral */
     { 0x000008a5, 3422 }, /* botintegral */
-    { 0x000008a6, 26587 }, /* vertconnector */
-    { 0x000008a7, 25718 }, /* topleftsqbracket */
+    { 0x000008a6, 26566 }, /* vertconnector */
+    { 0x000008a7, 25697 }, /* topleftsqbracket */
     { 0x000008a8, 3448 }, /* botleftsqbracket */
-    { 0x000008a9, 25767 }, /* toprightsqbracket */
+    { 0x000008a9, 25746 }, /* toprightsqbracket */
     { 0x000008aa, 3497 }, /* botrightsqbracket */
-    { 0x000008ab, 25689 }, /* topleftparens */
+    { 0x000008ab, 25668 }, /* topleftparens */
     { 0x000008ac, 3434 }, /* botleftparens */
-    { 0x000008ad, 25752 }, /* toprightparens */
+    { 0x000008ad, 25731 }, /* toprightparens */
     { 0x000008ae, 3482 }, /* botrightparens */
-    { 0x000008af, 19388 }, /* leftmiddlecurlybrace */
-    { 0x000008b0, 22522 }, /* rightmiddlecurlybrace */
-    { 0x000008b1, 25735 }, /* topleftsummation */
+    { 0x000008af, 19354 }, /* leftmiddlecurlybrace */
+    { 0x000008b0, 22501 }, /* rightmiddlecurlybrace */
+    { 0x000008b1, 25714 }, /* topleftsummation */
     { 0x000008b2, 3465 }, /* botleftsummation */
-    { 0x000008b3, 25808 }, /* topvertsummationconnector */
+    { 0x000008b3, 25787 }, /* topvertsummationconnector */
     { 0x000008b4, 3538 }, /* botvertsummationconnector */
-    { 0x000008b5, 25785 }, /* toprightsummation */
+    { 0x000008b5, 25764 }, /* toprightsummation */
     { 0x000008b6, 3515 }, /* botrightsummation */
-    { 0x000008b7, 22544 }, /* rightmiddlesummation */
-    { 0x000008bc, 19499 }, /* lessthanequal */
-    { 0x000008bd, 20207 }, /* notequal */
-    { 0x000008be, 13362 }, /* greaterthanequal */
-    { 0x000008bf, 17395 }, /* integral */
-    { 0x000008c0, 25561 }, /* therefore */
-    { 0x000008c1, 26569 }, /* variation */
-    { 0x000008c2, 17357 }, /* infinity */
-    { 0x000008c5, 20029 }, /* nabla */
+    { 0x000008b7, 22523 }, /* rightmiddlesummation */
+    { 0x000008bc, 19465 }, /* lessthanequal */
+    { 0x000008bd, 20173 }, /* notequal */
+    { 0x000008be, 13312 }, /* greaterthanequal */
+    { 0x000008bf, 17361 }, /* integral */
+    { 0x000008c0, 25540 }, /* therefore */
+    { 0x000008c1, 26548 }, /* variation */
+    { 0x000008c2, 17323 }, /* infinity */
+    { 0x000008c5, 19995 }, /* nabla */
     { 0x000008c8, 954 }, /* approximate */
-    { 0x000008c9, 23081 }, /* similarequal */
-    { 0x000008cd, 17278 }, /* ifonlyif */
-    { 0x000008ce, 17329 }, /* implies */
-    { 0x000008cf, 17237 }, /* identical */
-    { 0x000008d6, 22368 }, /* radical */
-    { 0x000008da, 17337 }, /* includedin */
-    { 0x000008db, 17348 }, /* includes */
-    { 0x000008dc, 17404 }, /* intersection */
-    { 0x000008dd, 26444 }, /* union */
-    { 0x000008de, 19539 }, /* logicaland */
-    { 0x000008df, 19550 }, /* logicalor */
-    { 0x000008ef, 21545 }, /* partialderivative */
-    { 0x000008f6, 12738 }, /* function */
-    { 0x000008fb, 19348 }, /* leftarrow */
-    { 0x000008fc, 26469 }, /* uparrow */
-    { 0x000008fd, 22479 }, /* rightarrow */
-    { 0x000008fe, 11414 }, /* downarrow */
+    { 0x000008c9, 23060 }, /* similarequal */
+    { 0x000008cd, 17244 }, /* ifonlyif */
+    { 0x000008ce, 17295 }, /* implies */
+    { 0x000008cf, 17203 }, /* identical */
+    { 0x000008d6, 22347 }, /* radical */
+    { 0x000008da, 17303 }, /* includedin */
+    { 0x000008db, 17314 }, /* includes */
+    { 0x000008dc, 17370 }, /* intersection */
+    { 0x000008dd, 26423 }, /* union */
+    { 0x000008de, 19505 }, /* logicaland */
+    { 0x000008df, 19516 }, /* logicalor */
+    { 0x000008ef, 21524 }, /* partialderivative */
+    { 0x000008f6, 12688 }, /* function */
+    { 0x000008fb, 19314 }, /* leftarrow */
+    { 0x000008fc, 26448 }, /* uparrow */
+    { 0x000008fd, 22458 }, /* rightarrow */
+    { 0x000008fe, 11364 }, /* downarrow */
     { 0x000009df, 3410 }, /* blank */
-    { 0x000009e0, 23872 }, /* soliddiamond */
+    { 0x000009e0, 23851 }, /* soliddiamond */
     { 0x000009e1, 8603 }, /* checkerboard */
-    { 0x000009e2, 17125 }, /* ht */
-    { 0x000009e3, 12495 }, /* ff */
+    { 0x000009e2, 17091 }, /* ht */
+    { 0x000009e3, 12445 }, /* ff */
     { 0x000009e4, 8809 }, /* cr */
-    { 0x000009e5, 19513 }, /* lf */
-    { 0x000009e8, 20157 }, /* nl */
-    { 0x000009e9, 26624 }, /* vt */
-    { 0x000009ea, 19584 }, /* lowrightcorner */
-    { 0x000009eb, 26498 }, /* uprightcorner */
-    { 0x000009ec, 26485 }, /* upleftcorner */
-    { 0x000009ed, 19570 }, /* lowleftcorner */
+    { 0x000009e5, 19479 }, /* lf */
+    { 0x000009e8, 20123 }, /* nl */
+    { 0x000009e9, 26603 }, /* vt */
+    { 0x000009ea, 19550 }, /* lowrightcorner */
+    { 0x000009eb, 26477 }, /* uprightcorner */
+    { 0x000009ec, 26464 }, /* upleftcorner */
+    { 0x000009ed, 19536 }, /* lowleftcorner */
     { 0x000009ee, 8812 }, /* crossinglines */
-    { 0x000009ef, 16764 }, /* horizlinescan1 */
-    { 0x000009f0, 16779 }, /* horizlinescan3 */
-    { 0x000009f1, 16794 }, /* horizlinescan5 */
-    { 0x000009f2, 16809 }, /* horizlinescan7 */
-    { 0x000009f3, 16824 }, /* horizlinescan9 */
-    { 0x000009f4, 19479 }, /* leftt */
-    { 0x000009f5, 22627 }, /* rightt */
+    { 0x000009ef, 16743 }, /* horizlinescan1 */
+    { 0x000009f0, 16758 }, /* horizlinescan3 */
+    { 0x000009f1, 16773 }, /* horizlinescan5 */
+    { 0x000009f2, 16788 }, /* horizlinescan7 */
+    { 0x000009f3, 16803 }, /* horizlinescan9 */
+    { 0x000009f4, 19445 }, /* leftt */
+    { 0x000009f5, 22606 }, /* rightt */
     { 0x000009f6, 3533 }, /* bott */
-    { 0x000009f7, 25803 }, /* topt */
-    { 0x000009f8, 26579 }, /* vertbar */
-    { 0x00000aa1, 12010 }, /* emspace */
-    { 0x00000aa2, 12109 }, /* enspace */
-    { 0x00000aa3, 11903 }, /* em3space */
-    { 0x00000aa4, 11912 }, /* em4space */
-    { 0x00000aa5, 11303 }, /* digitspace */
-    { 0x00000aa6, 22227 }, /* punctspace */
-    { 0x00000aa7, 25571 }, /* thinspace */
-    { 0x00000aa8, 14464 }, /* hairspace */
-    { 0x00000aa9, 11937 }, /* emdash */
-    { 0x00000aaa, 12022 }, /* endash */
-    { 0x00000aac, 23069 }, /* signifblank */
-    { 0x00000aae, 11894 }, /* ellipsis */
-    { 0x00000aaf, 11349 }, /* doubbaselinedot */
-    { 0x00000ab0, 20849 }, /* onethird */
-    { 0x00000ab1, 25919 }, /* twothirds */
-    { 0x00000ab2, 20787 }, /* onefifth */
-    { 0x00000ab3, 25884 }, /* twofifths */
-    { 0x00000ab4, 25612 }, /* threefifths */
-    { 0x00000ab5, 12689 }, /* fourfifths */
-    { 0x00000ab6, 20815 }, /* onesixth */
-    { 0x00000ab7, 12651 }, /* fivesixths */
+    { 0x000009f7, 25782 }, /* topt */
+    { 0x000009f8, 26558 }, /* vertbar */
+    { 0x00000aa1, 11960 }, /* emspace */
+    { 0x00000aa2, 12059 }, /* enspace */
+    { 0x00000aa3, 11853 }, /* em3space */
+    { 0x00000aa4, 11862 }, /* em4space */
+    { 0x00000aa5, 11253 }, /* digitspace */
+    { 0x00000aa6, 22206 }, /* punctspace */
+    { 0x00000aa7, 25550 }, /* thinspace */
+    { 0x00000aa8, 14443 }, /* hairspace */
+    { 0x00000aa9, 11887 }, /* emdash */
+    { 0x00000aaa, 11972 }, /* endash */
+    { 0x00000aac, 23048 }, /* signifblank */
+    { 0x00000aae, 11844 }, /* ellipsis */
+    { 0x00000aaf, 11299 }, /* doubbaselinedot */
+    { 0x00000ab0, 20815 }, /* onethird */
+    { 0x00000ab1, 25898 }, /* twothirds */
+    { 0x00000ab2, 20753 }, /* onefifth */
+    { 0x00000ab3, 25863 }, /* twofifths */
+    { 0x00000ab4, 25591 }, /* threefifths */
+    { 0x00000ab5, 12639 }, /* fourfifths */
+    { 0x00000ab6, 20781 }, /* onesixth */
+    { 0x00000ab7, 12601 }, /* fivesixths */
     { 0x00000ab8, 8506 }, /* careof */
-    { 0x00000abb, 12509 }, /* figdash */
-    { 0x00000abc, 19331 }, /* leftanglebracket */
-    { 0x00000abd, 11222 }, /* decimalpoint */
-    { 0x00000abe, 22461 }, /* rightanglebracket */
-    { 0x00000abf, 19763 }, /* marker */
-    { 0x00000ac3, 20777 }, /* oneeighth */
-    { 0x00000ac4, 25599 }, /* threeeighths */
-    { 0x00000ac5, 12639 }, /* fiveeighths */
-    { 0x00000ac6, 22986 }, /* seveneighths */
-    { 0x00000ac9, 25842 }, /* trademark */
-    { 0x00000aca, 23055 }, /* signaturemark */
-    { 0x00000acb, 25852 }, /* trademarkincircle */
-    { 0x00000acc, 19409 }, /* leftopentriangle */
-    { 0x00000acd, 22565 }, /* rightopentriangle */
-    { 0x00000ace, 11972 }, /* emopencircle */
-    { 0x00000acf, 11985 }, /* emopenrectangle */
-    { 0x00000ad0, 19459 }, /* leftsinglequotemark */
-    { 0x00000ad1, 22606 }, /* rightsinglequotemark */
-    { 0x00000ad2, 19368 }, /* leftdoublequotemark */
-    { 0x00000ad3, 22501 }, /* rightdoublequotemark */
-    { 0x00000ad4, 22149 }, /* prescription */
-    { 0x00000ad5, 21599 }, /* permille */
-    { 0x00000ad6, 19821 }, /* minutes */
-    { 0x00000ad7, 22793 }, /* seconds */
-    { 0x00000ad9, 19263 }, /* latincross */
-    { 0x00000ada, 16708 }, /* hexagram */
-    { 0x00000adb, 12537 }, /* filledrectbullet */
-    { 0x00000adc, 12517 }, /* filledlefttribullet */
-    { 0x00000add, 12554 }, /* filledrighttribullet */
-    { 0x00000ade, 11944 }, /* emfilledcircle */
-    { 0x00000adf, 11959 }, /* emfilledrect */
-    { 0x00000ae0, 12073 }, /* enopencircbullet */
-    { 0x00000ae1, 12090 }, /* enopensquarebullet */
-    { 0x00000ae2, 20876 }, /* openrectbullet */
-    { 0x00000ae3, 20918 }, /* opentribulletup */
-    { 0x00000ae4, 20900 }, /* opentribulletdown */
-    { 0x00000ae5, 20891 }, /* openstar */
-    { 0x00000ae6, 12029 }, /* enfilledcircbullet */
-    { 0x00000ae7, 12048 }, /* enfilledsqbullet */
-    { 0x00000ae8, 12595 }, /* filledtribulletup */
-    { 0x00000ae9, 12575 }, /* filledtribulletdown */
-    { 0x00000aea, 19426 }, /* leftpointer */
-    { 0x00000aeb, 22583 }, /* rightpointer */
+    { 0x00000abb, 12459 }, /* figdash */
+    { 0x00000abc, 19297 }, /* leftanglebracket */
+    { 0x00000abd, 11172 }, /* decimalpoint */
+    { 0x00000abe, 22440 }, /* rightanglebracket */
+    { 0x00000abf, 19729 }, /* marker */
+    { 0x00000ac3, 20743 }, /* oneeighth */
+    { 0x00000ac4, 25578 }, /* threeeighths */
+    { 0x00000ac5, 12589 }, /* fiveeighths */
+    { 0x00000ac6, 22965 }, /* seveneighths */
+    { 0x00000ac9, 25821 }, /* trademark */
+    { 0x00000aca, 23034 }, /* signaturemark */
+    { 0x00000acb, 25831 }, /* trademarkincircle */
+    { 0x00000acc, 19375 }, /* leftopentriangle */
+    { 0x00000acd, 22544 }, /* rightopentriangle */
+    { 0x00000ace, 11922 }, /* emopencircle */
+    { 0x00000acf, 11935 }, /* emopenrectangle */
+    { 0x00000ad0, 19425 }, /* leftsinglequotemark */
+    { 0x00000ad1, 22585 }, /* rightsinglequotemark */
+    { 0x00000ad2, 19334 }, /* leftdoublequotemark */
+    { 0x00000ad3, 22480 }, /* rightdoublequotemark */
+    { 0x00000ad4, 22128 }, /* prescription */
+    { 0x00000ad5, 21578 }, /* permille */
+    { 0x00000ad6, 19787 }, /* minutes */
+    { 0x00000ad7, 22772 }, /* seconds */
+    { 0x00000ad9, 19229 }, /* latincross */
+    { 0x00000ada, 16687 }, /* hexagram */
+    { 0x00000adb, 12487 }, /* filledrectbullet */
+    { 0x00000adc, 12467 }, /* filledlefttribullet */
+    { 0x00000add, 12504 }, /* filledrighttribullet */
+    { 0x00000ade, 11894 }, /* emfilledcircle */
+    { 0x00000adf, 11909 }, /* emfilledrect */
+    { 0x00000ae0, 12023 }, /* enopencircbullet */
+    { 0x00000ae1, 12040 }, /* enopensquarebullet */
+    { 0x00000ae2, 20842 }, /* openrectbullet */
+    { 0x00000ae3, 20884 }, /* opentribulletup */
+    { 0x00000ae4, 20866 }, /* opentribulletdown */
+    { 0x00000ae5, 20857 }, /* openstar */
+    { 0x00000ae6, 11979 }, /* enfilledcircbullet */
+    { 0x00000ae7, 11998 }, /* enfilledsqbullet */
+    { 0x00000ae8, 12545 }, /* filledtribulletup */
+    { 0x00000ae9, 12525 }, /* filledtribulletdown */
+    { 0x00000aea, 19392 }, /* leftpointer */
+    { 0x00000aeb, 22562 }, /* rightpointer */
     { 0x00000aec, 8649 }, /* club */
-    { 0x00000aed, 11295 }, /* diamond */
-    { 0x00000aee, 16162 }, /* heart */
-    { 0x00000af0, 19750 }, /* maltesecross */
+    { 0x00000aed, 11245 }, /* diamond */
+    { 0x00000aee, 16141 }, /* heart */
+    { 0x00000af0, 19716 }, /* maltesecross */
     { 0x00000af1, 10440 }, /* dagger */
-    { 0x00000af2, 11377 }, /* doubledagger */
+    { 0x00000af2, 11327 }, /* doubledagger */
     { 0x00000af3, 8616 }, /* checkmark */
     { 0x00000af4, 3380 }, /* ballotcross */
-    { 0x00000af5, 19942 }, /* musicalsharp */
-    { 0x00000af6, 19930 }, /* musicalflat */
-    { 0x00000af7, 19739 }, /* malesymbol */
-    { 0x00000af8, 12482 }, /* femalesymbol */
-    { 0x00000af9, 24436 }, /* telephone */
-    { 0x00000afa, 24446 }, /* telephonerecorder */
-    { 0x00000afb, 21619 }, /* phonographcopyright */
+    { 0x00000af5, 19908 }, /* musicalsharp */
+    { 0x00000af6, 19896 }, /* musicalflat */
+    { 0x00000af7, 19705 }, /* malesymbol */
+    { 0x00000af8, 12432 }, /* femalesymbol */
+    { 0x00000af9, 24415 }, /* telephone */
+    { 0x00000afa, 24425 }, /* telephonerecorder */
+    { 0x00000afb, 21598 }, /* phonographcopyright */
     { 0x00000afc, 8513 }, /* caret */
-    { 0x00000afd, 23110 }, /* singlelowquotemark */
-    { 0x00000afe, 11390 }, /* doublelowquotemark */
+    { 0x00000afd, 23089 }, /* singlelowquotemark */
+    { 0x00000afe, 11340 }, /* doublelowquotemark */
     { 0x00000aff, 8857 }, /* cursor */
-    { 0x00000ba3, 19358 }, /* leftcaret */
-    { 0x00000ba6, 22490 }, /* rightcaret */
-    { 0x00000ba8, 11424 }, /* downcaret */
-    { 0x00000ba9, 26477 }, /* upcaret */
-    { 0x00000bc0, 21406 }, /* overbar */
-    { 0x00000bc2, 11453 }, /* downtack */
-    { 0x00000bc3, 26512 }, /* upshoe */
-    { 0x00000bc4, 11443 }, /* downstile */
-    { 0x00000bc6, 26419 }, /* underbar */
-    { 0x00000bca, 18224 }, /* jot */
-    { 0x00000bcc, 22242 }, /* quad */
-    { 0x00000bce, 26527 }, /* uptack */
+    { 0x00000ba3, 19324 }, /* leftcaret */
+    { 0x00000ba6, 22469 }, /* rightcaret */
+    { 0x00000ba8, 11374 }, /* downcaret */
+    { 0x00000ba9, 26456 }, /* upcaret */
+    { 0x00000bc0, 21385 }, /* overbar */
+    { 0x00000bc2, 11403 }, /* downtack */
+    { 0x00000bc3, 26491 }, /* upshoe */
+    { 0x00000bc4, 11393 }, /* downstile */
+    { 0x00000bc6, 26398 }, /* underbar */
+    { 0x00000bca, 18190 }, /* jot */
+    { 0x00000bcc, 22221 }, /* quad */
+    { 0x00000bce, 26506 }, /* uptack */
     { 0x00000bcf, 8626 }, /* circle */
-    { 0x00000bd3, 26519 }, /* upstile */
-    { 0x00000bd6, 11434 }, /* downshoe */
-    { 0x00000bd8, 22596 }, /* rightshoe */
-    { 0x00000bda, 19450 }, /* leftshoe */
-    { 0x00000bdc, 19485 }, /* lefttack */
-    { 0x00000bfc, 22634 }, /* righttack */
-    { 0x00000cdf, 16255 }, /* hebrew_doublelowline */
-    { 0x00000ce0, 16168 }, /* hebrew_aleph */
-    { 0x00000ce1, 16193 }, /* hebrew_bet */
-    { 0x00000ce2, 16374 }, /* hebrew_gimel */
-    { 0x00000ce3, 16228 }, /* hebrew_dalet */
-    { 0x00000ce4, 16401 }, /* hebrew_he */
-    { 0x00000ce5, 16613 }, /* hebrew_waw */
-    { 0x00000ce6, 16659 }, /* hebrew_zain */
-    { 0x00000ce7, 16216 }, /* hebrew_chet */
-    { 0x00000ce8, 16590 }, /* hebrew_tet */
-    { 0x00000ce9, 16624 }, /* hebrew_yod */
-    { 0x00000cea, 16276 }, /* hebrew_finalkaph */
-    { 0x00000ceb, 16422 }, /* hebrew_kaph */
-    { 0x00000cec, 16445 }, /* hebrew_lamed */
-    { 0x00000ced, 16293 }, /* hebrew_finalmem */
-    { 0x00000cee, 16458 }, /* hebrew_mem */
-    { 0x00000cef, 16309 }, /* hebrew_finalnun */
-    { 0x00000cf0, 16469 }, /* hebrew_nun */
-    { 0x00000cf1, 16514 }, /* hebrew_samech */
-    { 0x00000cf2, 16181 }, /* hebrew_ayin */
-    { 0x00000cf3, 16325 }, /* hebrew_finalpe */
-    { 0x00000cf4, 16480 }, /* hebrew_pe */
-    { 0x00000cf5, 16340 }, /* hebrew_finalzade */
-    { 0x00000cf6, 16635 }, /* hebrew_zade */
-    { 0x00000cf7, 16490 }, /* hebrew_qoph */
-    { 0x00000cf8, 16502 }, /* hebrew_resh */
-    { 0x00000cf9, 16542 }, /* hebrew_shin */
-    { 0x00000cfa, 16579 }, /* hebrew_taw */
-    { 0x00000da1, 24699 }, /* Thai_kokai */
-    { 0x00000da2, 24629 }, /* Thai_khokhai */
-    { 0x00000da3, 24655 }, /* Thai_khokhuat */
-    { 0x00000da4, 24669 }, /* Thai_khokhwai */
-    { 0x00000da5, 24642 }, /* Thai_khokhon */
-    { 0x00000da6, 24683 }, /* Thai_khorakhang */
-    { 0x00000da7, 25012 }, /* Thai_ngongu */
-    { 0x00000da8, 24505 }, /* Thai_chochan */
-    { 0x00000da9, 24532 }, /* Thai_choching */
-    { 0x00000daa, 24518 }, /* Thai_chochang */
-    { 0x00000dab, 25373 }, /* Thai_soso */
-    { 0x00000dac, 24546 }, /* Thai_chochoe */
-    { 0x00000dad, 25549 }, /* Thai_yoying */
-    { 0x00000dae, 24559 }, /* Thai_dochada */
-    { 0x00000daf, 25502 }, /* Thai_topatak */
-    { 0x00000db0, 25461 }, /* Thai_thothan */
-    { 0x00000db1, 25411 }, /* Thai_thonangmontho */
-    { 0x00000db2, 25430 }, /* Thai_thophuthao */
-    { 0x00000db3, 25038 }, /* Thai_nonen */
-    { 0x00000db4, 24572 }, /* Thai_dodek */
-    { 0x00000db5, 25515 }, /* Thai_totao */
-    { 0x00000db6, 25488 }, /* Thai_thothung */
-    { 0x00000db7, 25446 }, /* Thai_thothahan */
-    { 0x00000db8, 25474 }, /* Thai_thothong */
-    { 0x00000db9, 25049 }, /* Thai_nonu */
-    { 0x00000dba, 24491 }, /* Thai_bobaimai */
-    { 0x00000dbb, 25140 }, /* Thai_popla */
-    { 0x00000dbc, 25110 }, /* Thai_phophung */
-    { 0x00000dbd, 24583 }, /* Thai_fofa */
-    { 0x00000dbe, 25097 }, /* Thai_phophan */
-    { 0x00000dbf, 24593 }, /* Thai_fofan */
-    { 0x00000dc0, 25124 }, /* Thai_phosamphao */
-    { 0x00000dc1, 25002 }, /* Thai_moma */
-    { 0x00000dc2, 25538 }, /* Thai_yoyak */
-    { 0x00000dc3, 25151 }, /* Thai_rorua */
-    { 0x00000dc4, 25162 }, /* Thai_ru */
-    { 0x00000dc5, 24862 }, /* Thai_loling */
-    { 0x00000dc6, 24874 }, /* Thai_lu */
-    { 0x00000dc7, 25526 }, /* Thai_wowaen */
-    { 0x00000dc8, 25361 }, /* Thai_sosala */
-    { 0x00000dc9, 25349 }, /* Thai_sorusi */
-    { 0x00000dca, 25383 }, /* Thai_sosua */
-    { 0x00000dcb, 24604 }, /* Thai_hohip */
-    { 0x00000dcc, 24849 }, /* Thai_lochula */
-    { 0x00000dcd, 25059 }, /* Thai_oang */
-    { 0x00000dce, 24615 }, /* Thai_honokhuk */
-    { 0x00000dcf, 25069 }, /* Thai_paiyannoi */
-    { 0x00000dd0, 25170 }, /* Thai_saraa */
-    { 0x00000dd1, 24910 }, /* Thai_maihanakat */
-    { 0x00000dd2, 25181 }, /* Thai_saraaa */
-    { 0x00000dd3, 25244 }, /* Thai_saraam */
-    { 0x00000dd4, 25267 }, /* Thai_sarai */
-    { 0x00000dd5, 25278 }, /* Thai_saraii */
-    { 0x00000dd6, 25312 }, /* Thai_saraue */
-    { 0x00000dd7, 25324 }, /* Thai_sarauee */
-    { 0x00000dd8, 25301 }, /* Thai_sarau */
-    { 0x00000dd9, 25337 }, /* Thai_sarauu */
-    { 0x00000dda, 25084 }, /* Thai_phinthu */
-    { 0x00000dde, 24926 }, /* Thai_maihanakat_maitho */
-    { 0x00000ddf, 24481 }, /* Thai_baht */
-    { 0x00000de0, 25256 }, /* Thai_sarae */
-    { 0x00000de1, 25193 }, /* Thai_saraae */
-    { 0x00000de2, 25290 }, /* Thai_sarao */
-    { 0x00000de3, 25225 }, /* Thai_saraaimaimuan */
-    { 0x00000de4, 25205 }, /* Thai_saraaimaimalai */
-    { 0x00000de5, 24710 }, /* Thai_lakkhangyao */
-    { 0x00000de6, 24988 }, /* Thai_maiyamok */
-    { 0x00000de7, 24949 }, /* Thai_maitaikhu */
-    { 0x00000de8, 24899 }, /* Thai_maiek */
-    { 0x00000de9, 24964 }, /* Thai_maitho */
-    { 0x00000dea, 24976 }, /* Thai_maitri */
-    { 0x00000deb, 24882 }, /* Thai_maichattawa */
-    { 0x00000dec, 25394 }, /* Thai_thanthakhat */
-    { 0x00000ded, 25024 }, /* Thai_nikhahit */
-    { 0x00000df0, 24837 }, /* Thai_leksun */
-    { 0x00000df1, 24775 }, /* Thai_leknung */
-    { 0x00000df2, 24824 }, /* Thai_leksong */
-    { 0x00000df3, 24801 }, /* Thai_leksam */
-    { 0x00000df4, 24813 }, /* Thai_leksi */
-    { 0x00000df5, 24740 }, /* Thai_lekha */
-    { 0x00000df6, 24751 }, /* Thai_lekhok */
-    { 0x00000df7, 24727 }, /* Thai_lekchet */
-    { 0x00000df8, 24788 }, /* Thai_lekpaet */
-    { 0x00000df9, 24763 }, /* Thai_lekkao */
-    { 0x00000ea1, 15263 }, /* Hangul_Kiyeog */
-    { 0x00000ea2, 15808 }, /* Hangul_SsangKiyeog */
-    { 0x00000ea3, 15277 }, /* Hangul_KiyeogSios */
-    { 0x00000ea4, 15358 }, /* Hangul_Nieun */
-    { 0x00000ea5, 15389 }, /* Hangul_NieunJieuj */
-    { 0x00000ea6, 15371 }, /* Hangul_NieunHieuh */
-    { 0x00000ea7, 14570 }, /* Hangul_Dikeud */
-    { 0x00000ea8, 15771 }, /* Hangul_SsangDikeud */
-    { 0x00000ea9, 15543 }, /* Hangul_Rieul */
-    { 0x00000eaa, 15574 }, /* Hangul_RieulKiyeog */
-    { 0x00000eab, 15593 }, /* Hangul_RieulMieum */
-    { 0x00000eac, 15630 }, /* Hangul_RieulPieub */
-    { 0x00000ead, 15648 }, /* Hangul_RieulSios */
-    { 0x00000eae, 15665 }, /* Hangul_RieulTieut */
-    { 0x00000eaf, 15611 }, /* Hangul_RieulPhieuf */
-    { 0x00000eb0, 15556 }, /* Hangul_RieulHieuh */
-    { 0x00000eb1, 15320 }, /* Hangul_Mieum */
-    { 0x00000eb2, 15455 }, /* Hangul_Pieub */
-    { 0x00000eb3, 15827 }, /* Hangul_SsangPieub */
-    { 0x00000eb4, 15468 }, /* Hangul_PieubSios */
-    { 0x00000eb5, 15744 }, /* Hangul_Sios */
-    { 0x00000eb6, 15845 }, /* Hangul_SsangSios */
-    { 0x00000eb7, 14659 }, /* Hangul_Ieung */
-    { 0x00000eb8, 15236 }, /* Hangul_Jieuj */
-    { 0x00000eb9, 15790 }, /* Hangul_SsangJieuj */
-    { 0x00000eba, 14540 }, /* Hangul_Cieuc */
-    { 0x00000ebb, 15249 }, /* Hangul_Khieuq */
-    { 0x00000ebc, 15965 }, /* Hangul_Tieut */
-    { 0x00000ebd, 15441 }, /* Hangul_Phieuf */
-    { 0x00000ebe, 14637 }, /* Hangul_Hieuh */
-    { 0x00000ebf, 14481 }, /* Hangul_A */
-    { 0x00000ec0, 14490 }, /* Hangul_AE */
-    { 0x00000ec1, 16039 }, /* Hangul_YA */
-    { 0x00000ec2, 16049 }, /* Hangul_YAE */
-    { 0x00000ec3, 14604 }, /* Hangul_EO */
-    { 0x00000ec4, 14584 }, /* Hangul_E */
-    { 0x00000ec5, 16070 }, /* Hangul_YEO */
-    { 0x00000ec6, 16060 }, /* Hangul_YE */
-    { 0x00000ec7, 15407 }, /* Hangul_O */
-    { 0x00000ec8, 15987 }, /* Hangul_WA */
-    { 0x00000ec9, 15997 }, /* Hangul_WAE */
-    { 0x00000eca, 15416 }, /* Hangul_OE */
-    { 0x00000ecb, 16110 }, /* Hangul_YO */
-    { 0x00000ecc, 15978 }, /* Hangul_U */
-    { 0x00000ecd, 16018 }, /* Hangul_WEO */
-    { 0x00000ece, 16008 }, /* Hangul_WE */
-    { 0x00000ecf, 16029 }, /* Hangul_WI */
-    { 0x00000ed0, 16120 }, /* Hangul_YU */
-    { 0x00000ed1, 14614 }, /* Hangul_EU */
-    { 0x00000ed2, 16100 }, /* Hangul_YI */
-    { 0x00000ed3, 14650 }, /* Hangul_I */
-    { 0x00000ed4, 14764 }, /* Hangul_J_Kiyeog */
-    { 0x00000ed5, 15134 }, /* Hangul_J_SsangKiyeog */
-    { 0x00000ed6, 14780 }, /* Hangul_J_KiyeogSios */
-    { 0x00000ed7, 14842 }, /* Hangul_J_Nieun */
-    { 0x00000ed8, 14877 }, /* Hangul_J_NieunJieuj */
-    { 0x00000ed9, 14857 }, /* Hangul_J_NieunHieuh */
-    { 0x00000eda, 14687 }, /* Hangul_J_Dikeud */
-    { 0x00000edb, 14964 }, /* Hangul_J_Rieul */
-    { 0x00000edc, 14999 }, /* Hangul_J_RieulKiyeog */
-    { 0x00000edd, 15020 }, /* Hangul_J_RieulMieum */
-    { 0x00000ede, 15061 }, /* Hangul_J_RieulPieub */
-    { 0x00000edf, 15081 }, /* Hangul_J_RieulSios */
-    { 0x00000ee0, 15100 }, /* Hangul_J_RieulTieut */
-    { 0x00000ee1, 15040 }, /* Hangul_J_RieulPhieuf */
-    { 0x00000ee2, 14979 }, /* Hangul_J_RieulHieuh */
-    { 0x00000ee3, 14827 }, /* Hangul_J_Mieum */
-    { 0x00000ee4, 14930 }, /* Hangul_J_Pieub */
-    { 0x00000ee5, 14945 }, /* Hangul_J_PieubSios */
-    { 0x00000ee6, 15120 }, /* Hangul_J_Sios */
-    { 0x00000ee7, 15155 }, /* Hangul_J_SsangSios */
-    { 0x00000ee8, 14718 }, /* Hangul_J_Ieung */
-    { 0x00000ee9, 14733 }, /* Hangul_J_Jieuj */
-    { 0x00000eea, 14672 }, /* Hangul_J_Cieuc */
-    { 0x00000eeb, 14748 }, /* Hangul_J_Khieuq */
-    { 0x00000eec, 15174 }, /* Hangul_J_Tieut */
-    { 0x00000eed, 14914 }, /* Hangul_J_Phieuf */
-    { 0x00000eee, 14703 }, /* Hangul_J_Hieuh */
-    { 0x00000eef, 15683 }, /* Hangul_RieulYeorinHieuh */
-    { 0x00000ef0, 15875 }, /* Hangul_SunkyeongeumMieum */
-    { 0x00000ef1, 15926 }, /* Hangul_SunkyeongeumPieub */
-    { 0x00000ef2, 15426 }, /* Hangul_PanSios */
-    { 0x00000ef3, 15295 }, /* Hangul_KkogjiDalrinIeung */
-    { 0x00000ef4, 15900 }, /* Hangul_SunkyeongeumPhieuf */
-    { 0x00000ef5, 16081 }, /* Hangul_YeorinHieuh */
-    { 0x00000ef6, 14500 }, /* Hangul_AraeA */
-    { 0x00000ef7, 14513 }, /* Hangul_AraeAE */
-    { 0x00000ef8, 14897 }, /* Hangul_J_PanSios */
-    { 0x00000ef9, 14800 }, /* Hangul_J_KkogjiDalrinIeung */
-    { 0x00000efa, 15189 }, /* Hangul_J_YeorinHieuh */
-    { 0x00000eff, 18879 }, /* Korean_Won */
-    { 0x000013bc, 20596 }, /* OE */
-    { 0x000013bd, 20599 }, /* oe */
-    { 0x000013be, 31291 }, /* Ydiaeresis */
-    { 0x000020ac, 12172 }, /* EuroSign */
+    { 0x00000bd3, 26498 }, /* upstile */
+    { 0x00000bd6, 11384 }, /* downshoe */
+    { 0x00000bd8, 22575 }, /* rightshoe */
+    { 0x00000bda, 19416 }, /* leftshoe */
+    { 0x00000bdc, 19451 }, /* lefttack */
+    { 0x00000bfc, 22613 }, /* righttack */
+    { 0x00000cdf, 16234 }, /* hebrew_doublelowline */
+    { 0x00000ce0, 16147 }, /* hebrew_aleph */
+    { 0x00000ce1, 16172 }, /* hebrew_bet */
+    { 0x00000ce2, 16353 }, /* hebrew_gimel */
+    { 0x00000ce3, 16207 }, /* hebrew_dalet */
+    { 0x00000ce4, 16380 }, /* hebrew_he */
+    { 0x00000ce5, 16592 }, /* hebrew_waw */
+    { 0x00000ce6, 16638 }, /* hebrew_zain */
+    { 0x00000ce7, 16195 }, /* hebrew_chet */
+    { 0x00000ce8, 16569 }, /* hebrew_tet */
+    { 0x00000ce9, 16603 }, /* hebrew_yod */
+    { 0x00000cea, 16255 }, /* hebrew_finalkaph */
+    { 0x00000ceb, 16401 }, /* hebrew_kaph */
+    { 0x00000cec, 16424 }, /* hebrew_lamed */
+    { 0x00000ced, 16272 }, /* hebrew_finalmem */
+    { 0x00000cee, 16437 }, /* hebrew_mem */
+    { 0x00000cef, 16288 }, /* hebrew_finalnun */
+    { 0x00000cf0, 16448 }, /* hebrew_nun */
+    { 0x00000cf1, 16493 }, /* hebrew_samech */
+    { 0x00000cf2, 16160 }, /* hebrew_ayin */
+    { 0x00000cf3, 16304 }, /* hebrew_finalpe */
+    { 0x00000cf4, 16459 }, /* hebrew_pe */
+    { 0x00000cf5, 16319 }, /* hebrew_finalzade */
+    { 0x00000cf6, 16614 }, /* hebrew_zade */
+    { 0x00000cf7, 16469 }, /* hebrew_qoph */
+    { 0x00000cf8, 16481 }, /* hebrew_resh */
+    { 0x00000cf9, 16521 }, /* hebrew_shin */
+    { 0x00000cfa, 16558 }, /* hebrew_taw */
+    { 0x00000da1, 24678 }, /* Thai_kokai */
+    { 0x00000da2, 24608 }, /* Thai_khokhai */
+    { 0x00000da3, 24634 }, /* Thai_khokhuat */
+    { 0x00000da4, 24648 }, /* Thai_khokhwai */
+    { 0x00000da5, 24621 }, /* Thai_khokhon */
+    { 0x00000da6, 24662 }, /* Thai_khorakhang */
+    { 0x00000da7, 24991 }, /* Thai_ngongu */
+    { 0x00000da8, 24484 }, /* Thai_chochan */
+    { 0x00000da9, 24511 }, /* Thai_choching */
+    { 0x00000daa, 24497 }, /* Thai_chochang */
+    { 0x00000dab, 25352 }, /* Thai_soso */
+    { 0x00000dac, 24525 }, /* Thai_chochoe */
+    { 0x00000dad, 25528 }, /* Thai_yoying */
+    { 0x00000dae, 24538 }, /* Thai_dochada */
+    { 0x00000daf, 25481 }, /* Thai_topatak */
+    { 0x00000db0, 25440 }, /* Thai_thothan */
+    { 0x00000db1, 25390 }, /* Thai_thonangmontho */
+    { 0x00000db2, 25409 }, /* Thai_thophuthao */
+    { 0x00000db3, 25017 }, /* Thai_nonen */
+    { 0x00000db4, 24551 }, /* Thai_dodek */
+    { 0x00000db5, 25494 }, /* Thai_totao */
+    { 0x00000db6, 25467 }, /* Thai_thothung */
+    { 0x00000db7, 25425 }, /* Thai_thothahan */
+    { 0x00000db8, 25453 }, /* Thai_thothong */
+    { 0x00000db9, 25028 }, /* Thai_nonu */
+    { 0x00000dba, 24470 }, /* Thai_bobaimai */
+    { 0x00000dbb, 25119 }, /* Thai_popla */
+    { 0x00000dbc, 25089 }, /* Thai_phophung */
+    { 0x00000dbd, 24562 }, /* Thai_fofa */
+    { 0x00000dbe, 25076 }, /* Thai_phophan */
+    { 0x00000dbf, 24572 }, /* Thai_fofan */
+    { 0x00000dc0, 25103 }, /* Thai_phosamphao */
+    { 0x00000dc1, 24981 }, /* Thai_moma */
+    { 0x00000dc2, 25517 }, /* Thai_yoyak */
+    { 0x00000dc3, 25130 }, /* Thai_rorua */
+    { 0x00000dc4, 25141 }, /* Thai_ru */
+    { 0x00000dc5, 24841 }, /* Thai_loling */
+    { 0x00000dc6, 24853 }, /* Thai_lu */
+    { 0x00000dc7, 25505 }, /* Thai_wowaen */
+    { 0x00000dc8, 25340 }, /* Thai_sosala */
+    { 0x00000dc9, 25328 }, /* Thai_sorusi */
+    { 0x00000dca, 25362 }, /* Thai_sosua */
+    { 0x00000dcb, 24583 }, /* Thai_hohip */
+    { 0x00000dcc, 24828 }, /* Thai_lochula */
+    { 0x00000dcd, 25038 }, /* Thai_oang */
+    { 0x00000dce, 24594 }, /* Thai_honokhuk */
+    { 0x00000dcf, 25048 }, /* Thai_paiyannoi */
+    { 0x00000dd0, 25149 }, /* Thai_saraa */
+    { 0x00000dd1, 24889 }, /* Thai_maihanakat */
+    { 0x00000dd2, 25160 }, /* Thai_saraaa */
+    { 0x00000dd3, 25223 }, /* Thai_saraam */
+    { 0x00000dd4, 25246 }, /* Thai_sarai */
+    { 0x00000dd5, 25257 }, /* Thai_saraii */
+    { 0x00000dd6, 25291 }, /* Thai_saraue */
+    { 0x00000dd7, 25303 }, /* Thai_sarauee */
+    { 0x00000dd8, 25280 }, /* Thai_sarau */
+    { 0x00000dd9, 25316 }, /* Thai_sarauu */
+    { 0x00000dda, 25063 }, /* Thai_phinthu */
+    { 0x00000dde, 24905 }, /* Thai_maihanakat_maitho */
+    { 0x00000ddf, 24460 }, /* Thai_baht */
+    { 0x00000de0, 25235 }, /* Thai_sarae */
+    { 0x00000de1, 25172 }, /* Thai_saraae */
+    { 0x00000de2, 25269 }, /* Thai_sarao */
+    { 0x00000de3, 25204 }, /* Thai_saraaimaimuan */
+    { 0x00000de4, 25184 }, /* Thai_saraaimaimalai */
+    { 0x00000de5, 24689 }, /* Thai_lakkhangyao */
+    { 0x00000de6, 24967 }, /* Thai_maiyamok */
+    { 0x00000de7, 24928 }, /* Thai_maitaikhu */
+    { 0x00000de8, 24878 }, /* Thai_maiek */
+    { 0x00000de9, 24943 }, /* Thai_maitho */
+    { 0x00000dea, 24955 }, /* Thai_maitri */
+    { 0x00000deb, 24861 }, /* Thai_maichattawa */
+    { 0x00000dec, 25373 }, /* Thai_thanthakhat */
+    { 0x00000ded, 25003 }, /* Thai_nikhahit */
+    { 0x00000df0, 24816 }, /* Thai_leksun */
+    { 0x00000df1, 24754 }, /* Thai_leknung */
+    { 0x00000df2, 24803 }, /* Thai_leksong */
+    { 0x00000df3, 24780 }, /* Thai_leksam */
+    { 0x00000df4, 24792 }, /* Thai_leksi */
+    { 0x00000df5, 24719 }, /* Thai_lekha */
+    { 0x00000df6, 24730 }, /* Thai_lekhok */
+    { 0x00000df7, 24706 }, /* Thai_lekchet */
+    { 0x00000df8, 24767 }, /* Thai_lekpaet */
+    { 0x00000df9, 24742 }, /* Thai_lekkao */
+    { 0x00000ea1, 15242 }, /* Hangul_Kiyeog */
+    { 0x00000ea2, 15787 }, /* Hangul_SsangKiyeog */
+    { 0x00000ea3, 15256 }, /* Hangul_KiyeogSios */
+    { 0x00000ea4, 15337 }, /* Hangul_Nieun */
+    { 0x00000ea5, 15368 }, /* Hangul_NieunJieuj */
+    { 0x00000ea6, 15350 }, /* Hangul_NieunHieuh */
+    { 0x00000ea7, 14549 }, /* Hangul_Dikeud */
+    { 0x00000ea8, 15750 }, /* Hangul_SsangDikeud */
+    { 0x00000ea9, 15522 }, /* Hangul_Rieul */
+    { 0x00000eaa, 15553 }, /* Hangul_RieulKiyeog */
+    { 0x00000eab, 15572 }, /* Hangul_RieulMieum */
+    { 0x00000eac, 15609 }, /* Hangul_RieulPieub */
+    { 0x00000ead, 15627 }, /* Hangul_RieulSios */
+    { 0x00000eae, 15644 }, /* Hangul_RieulTieut */
+    { 0x00000eaf, 15590 }, /* Hangul_RieulPhieuf */
+    { 0x00000eb0, 15535 }, /* Hangul_RieulHieuh */
+    { 0x00000eb1, 15299 }, /* Hangul_Mieum */
+    { 0x00000eb2, 15434 }, /* Hangul_Pieub */
+    { 0x00000eb3, 15806 }, /* Hangul_SsangPieub */
+    { 0x00000eb4, 15447 }, /* Hangul_PieubSios */
+    { 0x00000eb5, 15723 }, /* Hangul_Sios */
+    { 0x00000eb6, 15824 }, /* Hangul_SsangSios */
+    { 0x00000eb7, 14638 }, /* Hangul_Ieung */
+    { 0x00000eb8, 15215 }, /* Hangul_Jieuj */
+    { 0x00000eb9, 15769 }, /* Hangul_SsangJieuj */
+    { 0x00000eba, 14519 }, /* Hangul_Cieuc */
+    { 0x00000ebb, 15228 }, /* Hangul_Khieuq */
+    { 0x00000ebc, 15944 }, /* Hangul_Tieut */
+    { 0x00000ebd, 15420 }, /* Hangul_Phieuf */
+    { 0x00000ebe, 14616 }, /* Hangul_Hieuh */
+    { 0x00000ebf, 14460 }, /* Hangul_A */
+    { 0x00000ec0, 14469 }, /* Hangul_AE */
+    { 0x00000ec1, 16018 }, /* Hangul_YA */
+    { 0x00000ec2, 16028 }, /* Hangul_YAE */
+    { 0x00000ec3, 14583 }, /* Hangul_EO */
+    { 0x00000ec4, 14563 }, /* Hangul_E */
+    { 0x00000ec5, 16049 }, /* Hangul_YEO */
+    { 0x00000ec6, 16039 }, /* Hangul_YE */
+    { 0x00000ec7, 15386 }, /* Hangul_O */
+    { 0x00000ec8, 15966 }, /* Hangul_WA */
+    { 0x00000ec9, 15976 }, /* Hangul_WAE */
+    { 0x00000eca, 15395 }, /* Hangul_OE */
+    { 0x00000ecb, 16089 }, /* Hangul_YO */
+    { 0x00000ecc, 15957 }, /* Hangul_U */
+    { 0x00000ecd, 15997 }, /* Hangul_WEO */
+    { 0x00000ece, 15987 }, /* Hangul_WE */
+    { 0x00000ecf, 16008 }, /* Hangul_WI */
+    { 0x00000ed0, 16099 }, /* Hangul_YU */
+    { 0x00000ed1, 14593 }, /* Hangul_EU */
+    { 0x00000ed2, 16079 }, /* Hangul_YI */
+    { 0x00000ed3, 14629 }, /* Hangul_I */
+    { 0x00000ed4, 14743 }, /* Hangul_J_Kiyeog */
+    { 0x00000ed5, 15113 }, /* Hangul_J_SsangKiyeog */
+    { 0x00000ed6, 14759 }, /* Hangul_J_KiyeogSios */
+    { 0x00000ed7, 14821 }, /* Hangul_J_Nieun */
+    { 0x00000ed8, 14856 }, /* Hangul_J_NieunJieuj */
+    { 0x00000ed9, 14836 }, /* Hangul_J_NieunHieuh */
+    { 0x00000eda, 14666 }, /* Hangul_J_Dikeud */
+    { 0x00000edb, 14943 }, /* Hangul_J_Rieul */
+    { 0x00000edc, 14978 }, /* Hangul_J_RieulKiyeog */
+    { 0x00000edd, 14999 }, /* Hangul_J_RieulMieum */
+    { 0x00000ede, 15040 }, /* Hangul_J_RieulPieub */
+    { 0x00000edf, 15060 }, /* Hangul_J_RieulSios */
+    { 0x00000ee0, 15079 }, /* Hangul_J_RieulTieut */
+    { 0x00000ee1, 15019 }, /* Hangul_J_RieulPhieuf */
+    { 0x00000ee2, 14958 }, /* Hangul_J_RieulHieuh */
+    { 0x00000ee3, 14806 }, /* Hangul_J_Mieum */
+    { 0x00000ee4, 14909 }, /* Hangul_J_Pieub */
+    { 0x00000ee5, 14924 }, /* Hangul_J_PieubSios */
+    { 0x00000ee6, 15099 }, /* Hangul_J_Sios */
+    { 0x00000ee7, 15134 }, /* Hangul_J_SsangSios */
+    { 0x00000ee8, 14697 }, /* Hangul_J_Ieung */
+    { 0x00000ee9, 14712 }, /* Hangul_J_Jieuj */
+    { 0x00000eea, 14651 }, /* Hangul_J_Cieuc */
+    { 0x00000eeb, 14727 }, /* Hangul_J_Khieuq */
+    { 0x00000eec, 15153 }, /* Hangul_J_Tieut */
+    { 0x00000eed, 14893 }, /* Hangul_J_Phieuf */
+    { 0x00000eee, 14682 }, /* Hangul_J_Hieuh */
+    { 0x00000eef, 15662 }, /* Hangul_RieulYeorinHieuh */
+    { 0x00000ef0, 15854 }, /* Hangul_SunkyeongeumMieum */
+    { 0x00000ef1, 15905 }, /* Hangul_SunkyeongeumPieub */
+    { 0x00000ef2, 15405 }, /* Hangul_PanSios */
+    { 0x00000ef3, 15274 }, /* Hangul_KkogjiDalrinIeung */
+    { 0x00000ef4, 15879 }, /* Hangul_SunkyeongeumPhieuf */
+    { 0x00000ef5, 16060 }, /* Hangul_YeorinHieuh */
+    { 0x00000ef6, 14479 }, /* Hangul_AraeA */
+    { 0x00000ef7, 14492 }, /* Hangul_AraeAE */
+    { 0x00000ef8, 14876 }, /* Hangul_J_PanSios */
+    { 0x00000ef9, 14779 }, /* Hangul_J_KkogjiDalrinIeung */
+    { 0x00000efa, 15168 }, /* Hangul_J_YeorinHieuh */
+    { 0x00000eff, 18845 }, /* Korean_Won */
+    { 0x000013bc, 20562 }, /* OE */
+    { 0x000013bd, 20565 }, /* oe */
+    { 0x000013be, 31580 }, /* Ydiaeresis */
+    { 0x000020ac, 12122 }, /* EuroSign */
     { 0x0000fd01, 125 }, /* 3270_Duplicate */
     { 0x0000fd02, 195 }, /* 3270_FieldMark */
     { 0x0000fd03, 343 }, /* 3270_Right2 */
@@ -6443,293 +6482,290 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x0000fd1c, 91 }, /* 3270_CursorSelect */
     { 0x0000fd1d, 293 }, /* 3270_PrintScreen */
     { 0x0000fd1e, 140 }, /* 3270_Enter */
-    { 0x0000fe01, 17863 }, /* ISO_Lock */
-    { 0x0000fe02, 17746 }, /* ISO_Level2_Latch */
-    { 0x0000fe03, 17796 }, /* ISO_Level3_Shift */
-    { 0x0000fe04, 17763 }, /* ISO_Level3_Latch */
-    { 0x0000fe05, 17780 }, /* ISO_Level3_Lock */
-    { 0x0000fe06, 17651 }, /* ISO_Group_Latch */
-    { 0x0000fe07, 17667 }, /* ISO_Group_Lock */
-    { 0x0000fe08, 17908 }, /* ISO_Next_Group */
-    { 0x0000fe09, 17923 }, /* ISO_Next_Group_Lock */
-    { 0x0000fe0a, 18032 }, /* ISO_Prev_Group */
-    { 0x0000fe0b, 18047 }, /* ISO_Prev_Group_Lock */
-    { 0x0000fe0c, 17614 }, /* ISO_First_Group */
-    { 0x0000fe0d, 17630 }, /* ISO_First_Group_Lock */
-    { 0x0000fe0e, 17698 }, /* ISO_Last_Group */
-    { 0x0000fe0f, 17713 }, /* ISO_Last_Group_Lock */
-    { 0x0000fe11, 17846 }, /* ISO_Level5_Shift */
-    { 0x0000fe12, 17813 }, /* ISO_Level5_Latch */
-    { 0x0000fe13, 17830 }, /* ISO_Level5_Lock */
-    { 0x0000fe20, 17733 }, /* ISO_Left_Tab */
-    { 0x0000fe21, 17891 }, /* ISO_Move_Line_Up */
-    { 0x0000fe22, 17872 }, /* ISO_Move_Line_Down */
-    { 0x0000fe23, 17965 }, /* ISO_Partial_Line_Up */
-    { 0x0000fe24, 17943 }, /* ISO_Partial_Line_Down */
-    { 0x0000fe25, 17985 }, /* ISO_Partial_Space_Left */
-    { 0x0000fe26, 18008 }, /* ISO_Partial_Space_Right */
-    { 0x0000fe27, 18141 }, /* ISO_Set_Margin_Left */
-    { 0x0000fe28, 18161 }, /* ISO_Set_Margin_Right */
-    { 0x0000fe29, 18092 }, /* ISO_Release_Margin_Left */
-    { 0x0000fe2a, 18116 }, /* ISO_Release_Margin_Right */
-    { 0x0000fe2b, 18067 }, /* ISO_Release_Both_Margins */
-    { 0x0000fe2c, 17552 }, /* ISO_Fast_Cursor_Left */
-    { 0x0000fe2d, 17573 }, /* ISO_Fast_Cursor_Right */
-    { 0x0000fe2e, 17595 }, /* ISO_Fast_Cursor_Up */
-    { 0x0000fe2f, 17531 }, /* ISO_Fast_Cursor_Down */
-    { 0x0000fe30, 17454 }, /* ISO_Continuous_Underline */
-    { 0x0000fe31, 17479 }, /* ISO_Discontinuous_Underline */
-    { 0x0000fe32, 17507 }, /* ISO_Emphasize */
-    { 0x0000fe33, 17436 }, /* ISO_Center_Object */
-    { 0x0000fe34, 17521 }, /* ISO_Enter */
-    { 0x0000fe50, 10940 }, /* dead_grave */
-    { 0x0000fe51, 10613 }, /* dead_acute */
-    { 0x0000fe52, 10836 }, /* dead_circumflex */
-    { 0x0000fe53, 11179 }, /* dead_tilde */
-    { 0x0000fe54, 11062 }, /* dead_macron */
-    { 0x0000fe55, 10782 }, /* dead_breve */
+    { 0x0000fe01, 17829 }, /* ISO_Lock */
+    { 0x0000fe02, 17712 }, /* ISO_Level2_Latch */
+    { 0x0000fe03, 17762 }, /* ISO_Level3_Shift */
+    { 0x0000fe04, 17729 }, /* ISO_Level3_Latch */
+    { 0x0000fe05, 17746 }, /* ISO_Level3_Lock */
+    { 0x0000fe06, 17617 }, /* ISO_Group_Latch */
+    { 0x0000fe07, 17633 }, /* ISO_Group_Lock */
+    { 0x0000fe08, 17874 }, /* ISO_Next_Group */
+    { 0x0000fe09, 17889 }, /* ISO_Next_Group_Lock */
+    { 0x0000fe0a, 17998 }, /* ISO_Prev_Group */
+    { 0x0000fe0b, 18013 }, /* ISO_Prev_Group_Lock */
+    { 0x0000fe0c, 17580 }, /* ISO_First_Group */
+    { 0x0000fe0d, 17596 }, /* ISO_First_Group_Lock */
+    { 0x0000fe0e, 17664 }, /* ISO_Last_Group */
+    { 0x0000fe0f, 17679 }, /* ISO_Last_Group_Lock */
+    { 0x0000fe11, 17812 }, /* ISO_Level5_Shift */
+    { 0x0000fe12, 17779 }, /* ISO_Level5_Latch */
+    { 0x0000fe13, 17796 }, /* ISO_Level5_Lock */
+    { 0x0000fe20, 17699 }, /* ISO_Left_Tab */
+    { 0x0000fe21, 17857 }, /* ISO_Move_Line_Up */
+    { 0x0000fe22, 17838 }, /* ISO_Move_Line_Down */
+    { 0x0000fe23, 17931 }, /* ISO_Partial_Line_Up */
+    { 0x0000fe24, 17909 }, /* ISO_Partial_Line_Down */
+    { 0x0000fe25, 17951 }, /* ISO_Partial_Space_Left */
+    { 0x0000fe26, 17974 }, /* ISO_Partial_Space_Right */
+    { 0x0000fe27, 18107 }, /* ISO_Set_Margin_Left */
+    { 0x0000fe28, 18127 }, /* ISO_Set_Margin_Right */
+    { 0x0000fe29, 18058 }, /* ISO_Release_Margin_Left */
+    { 0x0000fe2a, 18082 }, /* ISO_Release_Margin_Right */
+    { 0x0000fe2b, 18033 }, /* ISO_Release_Both_Margins */
+    { 0x0000fe2c, 17518 }, /* ISO_Fast_Cursor_Left */
+    { 0x0000fe2d, 17539 }, /* ISO_Fast_Cursor_Right */
+    { 0x0000fe2e, 17561 }, /* ISO_Fast_Cursor_Up */
+    { 0x0000fe2f, 17497 }, /* ISO_Fast_Cursor_Down */
+    { 0x0000fe30, 17420 }, /* ISO_Continuous_Underline */
+    { 0x0000fe31, 17445 }, /* ISO_Discontinuous_Underline */
+    { 0x0000fe32, 17473 }, /* ISO_Emphasize */
+    { 0x0000fe33, 17402 }, /* ISO_Center_Object */
+    { 0x0000fe34, 17487 }, /* ISO_Enter */
+    { 0x0000fe50, 10894 }, /* dead_grave */
+    { 0x0000fe51, 10590 }, /* dead_acute */
+    { 0x0000fe52, 10790 }, /* dead_circumflex */
+    { 0x0000fe53, 11129 }, /* dead_tilde */
+    { 0x0000fe54, 10990 }, /* dead_macron */
+    { 0x0000fe55, 10736 }, /* dead_breve */
     { 0x0000fe56, 10537 }, /* dead_abovedot */
-    { 0x0000fe57, 10877 }, /* dead_diaeresis */
+    { 0x0000fe57, 10831 }, /* dead_diaeresis */
     { 0x0000fe58, 10575 }, /* dead_abovering */
-    { 0x0000fe59, 10892 }, /* dead_doubleacute */
-    { 0x0000fe5a, 10812 }, /* dead_caron */
-    { 0x0000fe5b, 10823 }, /* dead_cedilla */
-    { 0x0000fe5c, 11088 }, /* dead_ogonek */
-    { 0x0000fe5d, 11015 }, /* dead_iota */
-    { 0x0000fe5e, 11204 }, /* dead_voiced_sound */
-    { 0x0000fe5f, 11128 }, /* dead_semivoiced_sound */
-    { 0x0000fe60, 10697 }, /* dead_belowdot */
-    { 0x0000fe61, 10962 }, /* dead_hook */
-    { 0x0000fe62, 10972 }, /* dead_horn */
-    { 0x0000fe63, 11167 }, /* dead_stroke */
+    { 0x0000fe59, 10846 }, /* dead_doubleacute */
+    { 0x0000fe5a, 10766 }, /* dead_caron */
+    { 0x0000fe5b, 10777 }, /* dead_cedilla */
+    { 0x0000fe5c, 11016 }, /* dead_ogonek */
+    { 0x0000fe5d, 10980 }, /* dead_iota */
+    { 0x0000fe5e, 11154 }, /* dead_voiced_sound */
+    { 0x0000fe5f, 11078 }, /* dead_semivoiced_sound */
+    { 0x0000fe60, 10674 }, /* dead_belowdot */
+    { 0x0000fe61, 10927 }, /* dead_hook */
+    { 0x0000fe62, 10937 }, /* dead_horn */
+    { 0x0000fe63, 11117 }, /* dead_stroke */
     { 0x0000fe64, 10521 }, /* dead_abovecomma */
     { 0x0000fe65, 10551 }, /* dead_abovereversedcomma */
-    { 0x0000fe66, 10909 }, /* dead_doublegrave */
-    { 0x0000fe67, 10728 }, /* dead_belowring */
-    { 0x0000fe68, 10711 }, /* dead_belowmacron */
-    { 0x0000fe69, 10640 }, /* dead_belowcircumflex */
-    { 0x0000fe6a, 10743 }, /* dead_belowtilde */
-    { 0x0000fe6b, 10624 }, /* dead_belowbreve */
-    { 0x0000fe6c, 10677 }, /* dead_belowdiaeresis */
-    { 0x0000fe6d, 10996 }, /* dead_invertedbreve */
-    { 0x0000fe6e, 10661 }, /* dead_belowcomma */
-    { 0x0000fe6f, 10852 }, /* dead_currency */
+    { 0x0000fe66, 10863 }, /* dead_doublegrave */
+    { 0x0000fe67, 10705 }, /* dead_belowring */
+    { 0x0000fe68, 10688 }, /* dead_belowmacron */
+    { 0x0000fe69, 10617 }, /* dead_belowcircumflex */
+    { 0x0000fe6a, 10720 }, /* dead_belowtilde */
+    { 0x0000fe6b, 10601 }, /* dead_belowbreve */
+    { 0x0000fe6c, 10654 }, /* dead_belowdiaeresis */
+    { 0x0000fe6d, 10961 }, /* dead_invertedbreve */
+    { 0x0000fe6e, 10638 }, /* dead_belowcomma */
+    { 0x0000fe6f, 10806 }, /* dead_currency */
     { 0x0000fe70, 583 }, /* AccessX_Enable */
     { 0x0000fe71, 598 }, /* AccessX_Feedback_Enable */
-    { 0x0000fe72, 22424 }, /* RepeatKeys_Enable */
-    { 0x0000fe73, 23856 }, /* SlowKeys_Enable */
+    { 0x0000fe72, 22403 }, /* RepeatKeys_Enable */
+    { 0x0000fe73, 23835 }, /* SlowKeys_Enable */
     { 0x0000fe74, 3564 }, /* BounceKeys_Enable */
-    { 0x0000fe75, 23918 }, /* StickyKeys_Enable */
-    { 0x0000fe76, 19864 }, /* MouseKeys_Enable */
-    { 0x0000fe77, 19841 }, /* MouseKeys_Accel_Enable */
-    { 0x0000fe78, 21414 }, /* Overlay1_Enable */
-    { 0x0000fe79, 21430 }, /* Overlay2_Enable */
+    { 0x0000fe75, 23897 }, /* StickyKeys_Enable */
+    { 0x0000fe76, 19830 }, /* MouseKeys_Enable */
+    { 0x0000fe77, 19807 }, /* MouseKeys_Accel_Enable */
+    { 0x0000fe78, 21393 }, /* Overlay1_Enable */
+    { 0x0000fe79, 21409 }, /* Overlay2_Enable */
     { 0x0000fe7a, 3309 }, /* AudibleBell_Enable */
     { 0x0000fe80, 10507 }, /* dead_a */
     { 0x0000fe81, 10514 }, /* dead_A */
-    { 0x0000fe82, 10926 }, /* dead_e */
-    { 0x0000fe83, 10933 }, /* dead_E */
-    { 0x0000fe84, 10982 }, /* dead_i */
-    { 0x0000fe85, 10989 }, /* dead_I */
-    { 0x0000fe86, 11074 }, /* dead_o */
-    { 0x0000fe87, 11081 }, /* dead_O */
-    { 0x0000fe88, 11190 }, /* dead_u */
-    { 0x0000fe89, 11197 }, /* dead_U */
-    { 0x0000fe8a, 11150 }, /* dead_small_schwa */
-    { 0x0000fe8b, 10793 }, /* dead_capital_schwa */
-    { 0x0000fe8c, 10951 }, /* dead_greek */
-    { 0x0000fe90, 11049 }, /* dead_lowline */
-    { 0x0000fe91, 10590 }, /* dead_aboveverticalline */
-    { 0x0000fe92, 10759 }, /* dead_belowverticalline */
-    { 0x0000fe93, 11025 }, /* dead_longsolidusoverlay */
+    { 0x0000fe82, 10880 }, /* dead_e */
+    { 0x0000fe83, 10887 }, /* dead_E */
+    { 0x0000fe84, 10947 }, /* dead_i */
+    { 0x0000fe85, 10954 }, /* dead_I */
+    { 0x0000fe86, 11002 }, /* dead_o */
+    { 0x0000fe87, 11009 }, /* dead_O */
+    { 0x0000fe88, 11140 }, /* dead_u */
+    { 0x0000fe89, 11147 }, /* dead_U */
+    { 0x0000fe8a, 11056 }, /* dead_schwa */
+    { 0x0000fe8b, 11067 }, /* dead_SCHWA */
+    { 0x0000fe8c, 10905 }, /* dead_greek */
+    { 0x0000fe8d, 10916 }, /* dead_hamza */
     { 0x0000fea0, 8594 }, /* ch */
     { 0x0000fea1, 8597 }, /* Ch */
     { 0x0000fea2, 8600 }, /* CH */
     { 0x0000fea3, 8443 }, /* c_h */
     { 0x0000fea4, 8447 }, /* C_h */
     { 0x0000fea5, 8451 }, /* C_H */
-    { 0x0000fed0, 12618 }, /* First_Virtual_Screen */
-    { 0x0000fed1, 22162 }, /* Prev_Virtual_Screen */
-    { 0x0000fed2, 20110 }, /* Next_Virtual_Screen */
-    { 0x0000fed4, 19243 }, /* Last_Virtual_Screen */
-    { 0x0000fed5, 24464 }, /* Terminate_Server */
-    { 0x0000fee0, 22080 }, /* Pointer_Left */
-    { 0x0000fee1, 22093 }, /* Pointer_Right */
-    { 0x0000fee2, 22107 }, /* Pointer_Up */
-    { 0x0000fee3, 21925 }, /* Pointer_Down */
-    { 0x0000fee4, 22118 }, /* Pointer_UpLeft */
-    { 0x0000fee5, 22133 }, /* Pointer_UpRight */
-    { 0x0000fee6, 21938 }, /* Pointer_DownLeft */
-    { 0x0000fee7, 21955 }, /* Pointer_DownRight */
-    { 0x0000fee8, 21753 }, /* Pointer_Button_Dflt */
-    { 0x0000fee9, 21673 }, /* Pointer_Button1 */
-    { 0x0000feea, 21689 }, /* Pointer_Button2 */
-    { 0x0000feeb, 21705 }, /* Pointer_Button3 */
-    { 0x0000feec, 21721 }, /* Pointer_Button4 */
-    { 0x0000feed, 21737 }, /* Pointer_Button5 */
-    { 0x0000feee, 21863 }, /* Pointer_DblClick_Dflt */
-    { 0x0000feef, 21773 }, /* Pointer_DblClick1 */
-    { 0x0000fef0, 21791 }, /* Pointer_DblClick2 */
-    { 0x0000fef1, 21809 }, /* Pointer_DblClick3 */
-    { 0x0000fef2, 21827 }, /* Pointer_DblClick4 */
-    { 0x0000fef3, 21845 }, /* Pointer_DblClick5 */
-    { 0x0000fef4, 22043 }, /* Pointer_Drag_Dflt */
-    { 0x0000fef5, 21973 }, /* Pointer_Drag1 */
-    { 0x0000fef6, 21987 }, /* Pointer_Drag2 */
-    { 0x0000fef7, 22001 }, /* Pointer_Drag3 */
-    { 0x0000fef8, 22015 }, /* Pointer_Drag4 */
-    { 0x0000fef9, 22061 }, /* Pointer_EnableKeys */
-    { 0x0000fefa, 21654 }, /* Pointer_Accelerate */
-    { 0x0000fefb, 21885 }, /* Pointer_DfltBtnNext */
-    { 0x0000fefc, 21905 }, /* Pointer_DfltBtnPrev */
-    { 0x0000fefd, 22029 }, /* Pointer_Drag5 */
+    { 0x0000fed0, 12568 }, /* First_Virtual_Screen */
+    { 0x0000fed1, 22141 }, /* Prev_Virtual_Screen */
+    { 0x0000fed2, 20076 }, /* Next_Virtual_Screen */
+    { 0x0000fed4, 19209 }, /* Last_Virtual_Screen */
+    { 0x0000fed5, 24443 }, /* Terminate_Server */
+    { 0x0000fee0, 22059 }, /* Pointer_Left */
+    { 0x0000fee1, 22072 }, /* Pointer_Right */
+    { 0x0000fee2, 22086 }, /* Pointer_Up */
+    { 0x0000fee3, 21904 }, /* Pointer_Down */
+    { 0x0000fee4, 22097 }, /* Pointer_UpLeft */
+    { 0x0000fee5, 22112 }, /* Pointer_UpRight */
+    { 0x0000fee6, 21917 }, /* Pointer_DownLeft */
+    { 0x0000fee7, 21934 }, /* Pointer_DownRight */
+    { 0x0000fee8, 21732 }, /* Pointer_Button_Dflt */
+    { 0x0000fee9, 21652 }, /* Pointer_Button1 */
+    { 0x0000feea, 21668 }, /* Pointer_Button2 */
+    { 0x0000feeb, 21684 }, /* Pointer_Button3 */
+    { 0x0000feec, 21700 }, /* Pointer_Button4 */
+    { 0x0000feed, 21716 }, /* Pointer_Button5 */
+    { 0x0000feee, 21842 }, /* Pointer_DblClick_Dflt */
+    { 0x0000feef, 21752 }, /* Pointer_DblClick1 */
+    { 0x0000fef0, 21770 }, /* Pointer_DblClick2 */
+    { 0x0000fef1, 21788 }, /* Pointer_DblClick3 */
+    { 0x0000fef2, 21806 }, /* Pointer_DblClick4 */
+    { 0x0000fef3, 21824 }, /* Pointer_DblClick5 */
+    { 0x0000fef4, 22022 }, /* Pointer_Drag_Dflt */
+    { 0x0000fef5, 21952 }, /* Pointer_Drag1 */
+    { 0x0000fef6, 21966 }, /* Pointer_Drag2 */
+    { 0x0000fef7, 21980 }, /* Pointer_Drag3 */
+    { 0x0000fef8, 21994 }, /* Pointer_Drag4 */
+    { 0x0000fef9, 22040 }, /* Pointer_EnableKeys */
+    { 0x0000fefa, 21633 }, /* Pointer_Accelerate */
+    { 0x0000fefb, 21864 }, /* Pointer_DfltBtnNext */
+    { 0x0000fefc, 21884 }, /* Pointer_DfltBtnPrev */
+    { 0x0000fefd, 22008 }, /* Pointer_Drag5 */
     { 0x0000ff08, 3362 }, /* BackSpace */
-    { 0x0000ff09, 24380 }, /* Tab */
-    { 0x0000ff0a, 19516 }, /* Linefeed */
+    { 0x0000ff09, 24359 }, /* Tab */
+    { 0x0000ff0a, 19482 }, /* Linefeed */
     { 0x0000ff0b, 8633 }, /* Clear */
-    { 0x0000ff0d, 22448 }, /* Return */
-    { 0x0000ff13, 21563 }, /* Pause */
-    { 0x0000ff14, 22781 }, /* Scroll_Lock */
-    { 0x0000ff15, 24361 }, /* Sys_Req */
-    { 0x0000ff1b, 12139 }, /* Escape */
-    { 0x0000ff20, 19893 }, /* Multi_key */
-    { 0x0000ff21, 18827 }, /* Kanji */
-    { 0x0000ff22, 19884 }, /* Muhenkan */
-    { 0x0000ff23, 16696 }, /* Henkan_Mode */
-    { 0x0000ff24, 22644 }, /* Romaji */
-    { 0x0000ff25, 16717 }, /* Hiragana */
-    { 0x0000ff26, 18852 }, /* Katakana */
-    { 0x0000ff27, 16726 }, /* Hiragana_Katakana */
-    { 0x0000ff28, 31407 }, /* Zenkaku */
-    { 0x0000ff29, 16130 }, /* Hankaku */
-    { 0x0000ff2a, 31415 }, /* Zenkaku_Hankaku */
-    { 0x0000ff2b, 25834 }, /* Touroku */
-    { 0x0000ff2c, 19780 }, /* Massyo */
-    { 0x0000ff2d, 18433 }, /* Kana_Lock */
-    { 0x0000ff2e, 18644 }, /* Kana_Shift */
-    { 0x0000ff2f, 11861 }, /* Eisu_Shift */
-    { 0x0000ff30, 11872 }, /* Eisu_toggle */
-    { 0x0000ff31, 14474 }, /* Hangul */
-    { 0x0000ff32, 15862 }, /* Hangul_Start */
-    { 0x0000ff33, 14593 }, /* Hangul_End */
-    { 0x0000ff34, 14624 }, /* Hangul_Hanja */
-    { 0x0000ff35, 15210 }, /* Hangul_Jamo */
-    { 0x0000ff36, 15707 }, /* Hangul_Romaja */
+    { 0x0000ff0d, 22427 }, /* Return */
+    { 0x0000ff13, 21542 }, /* Pause */
+    { 0x0000ff14, 22760 }, /* Scroll_Lock */
+    { 0x0000ff15, 24340 }, /* Sys_Req */
+    { 0x0000ff1b, 12089 }, /* Escape */
+    { 0x0000ff20, 19859 }, /* Multi_key */
+    { 0x0000ff21, 18793 }, /* Kanji */
+    { 0x0000ff22, 19850 }, /* Muhenkan */
+    { 0x0000ff23, 16675 }, /* Henkan_Mode */
+    { 0x0000ff24, 22623 }, /* Romaji */
+    { 0x0000ff25, 16696 }, /* Hiragana */
+    { 0x0000ff26, 18818 }, /* Katakana */
+    { 0x0000ff27, 16705 }, /* Hiragana_Katakana */
+    { 0x0000ff28, 31696 }, /* Zenkaku */
+    { 0x0000ff29, 16109 }, /* Hankaku */
+    { 0x0000ff2a, 31704 }, /* Zenkaku_Hankaku */
+    { 0x0000ff2b, 25813 }, /* Touroku */
+    { 0x0000ff2c, 19746 }, /* Massyo */
+    { 0x0000ff2d, 18399 }, /* Kana_Lock */
+    { 0x0000ff2e, 18610 }, /* Kana_Shift */
+    { 0x0000ff2f, 11811 }, /* Eisu_Shift */
+    { 0x0000ff30, 11822 }, /* Eisu_toggle */
+    { 0x0000ff31, 14453 }, /* Hangul */
+    { 0x0000ff32, 15841 }, /* Hangul_Start */
+    { 0x0000ff33, 14572 }, /* Hangul_End */
+    { 0x0000ff34, 14603 }, /* Hangul_Hanja */
+    { 0x0000ff35, 15189 }, /* Hangul_Jamo */
+    { 0x0000ff36, 15686 }, /* Hangul_Romaja */
     { 0x0000ff37, 8654 }, /* Codeinput */
-    { 0x0000ff38, 15222 }, /* Hangul_Jeonja */
-    { 0x0000ff39, 14527 }, /* Hangul_Banja */
-    { 0x0000ff3a, 15502 }, /* Hangul_PreHanja */
-    { 0x0000ff3b, 15485 }, /* Hangul_PostHanja */
-    { 0x0000ff3c, 23094 }, /* SingleCandidate */
-    { 0x0000ff3d, 19903 }, /* MultipleCandidate */
-    { 0x0000ff3e, 22182 }, /* PreviousCandidate */
-    { 0x0000ff3f, 15756 }, /* Hangul_Special */
-    { 0x0000ff50, 16744 }, /* Home */
-    { 0x0000ff51, 19326 }, /* Left */
-    { 0x0000ff52, 26466 }, /* Up */
-    { 0x0000ff53, 22455 }, /* Right */
-    { 0x0000ff54, 11409 }, /* Down */
-    { 0x0000ff55, 22206 }, /* Prior */
-    { 0x0000ff56, 20105 }, /* Next */
-    { 0x0000ff57, 12018 }, /* End */
+    { 0x0000ff38, 15201 }, /* Hangul_Jeonja */
+    { 0x0000ff39, 14506 }, /* Hangul_Banja */
+    { 0x0000ff3a, 15481 }, /* Hangul_PreHanja */
+    { 0x0000ff3b, 15464 }, /* Hangul_PostHanja */
+    { 0x0000ff3c, 23073 }, /* SingleCandidate */
+    { 0x0000ff3d, 19869 }, /* MultipleCandidate */
+    { 0x0000ff3e, 22161 }, /* PreviousCandidate */
+    { 0x0000ff3f, 15735 }, /* Hangul_Special */
+    { 0x0000ff50, 16723 }, /* Home */
+    { 0x0000ff51, 19292 }, /* Left */
+    { 0x0000ff52, 26445 }, /* Up */
+    { 0x0000ff53, 22434 }, /* Right */
+    { 0x0000ff54, 11359 }, /* Down */
+    { 0x0000ff55, 22185 }, /* Prior */
+    { 0x0000ff56, 20071 }, /* Next */
+    { 0x0000ff57, 11968 }, /* End */
     { 0x0000ff58, 3404 }, /* Begin */
-    { 0x0000ff60, 22809 }, /* Select */
-    { 0x0000ff61, 22200 }, /* Print */
-    { 0x0000ff62, 12199 }, /* Execute */
-    { 0x0000ff63, 17366 }, /* Insert */
-    { 0x0000ff65, 26439 }, /* Undo */
-    { 0x0000ff66, 22408 }, /* Redo */
-    { 0x0000ff67, 19787 }, /* Menu */
-    { 0x0000ff68, 12613 }, /* Find */
+    { 0x0000ff60, 22788 }, /* Select */
+    { 0x0000ff61, 22179 }, /* Print */
+    { 0x0000ff62, 12149 }, /* Execute */
+    { 0x0000ff63, 17332 }, /* Insert */
+    { 0x0000ff65, 26418 }, /* Undo */
+    { 0x0000ff66, 22387 }, /* Redo */
+    { 0x0000ff67, 19753 }, /* Menu */
+    { 0x0000ff68, 12563 }, /* Find */
     { 0x0000ff69, 8489 }, /* Cancel */
-    { 0x0000ff6a, 16684 }, /* Help */
+    { 0x0000ff6a, 16663 }, /* Help */
     { 0x0000ff6b, 8377 }, /* Break */
-    { 0x0000ff7e, 19829 }, /* Mode_switch */
-    { 0x0000ff7f, 20251 }, /* Num_Lock */
-    { 0x0000ff80, 19156 }, /* KP_Space */
-    { 0x0000ff89, 19177 }, /* KP_Tab */
-    { 0x0000ff8d, 19013 }, /* KP_Enter */
-    { 0x0000ff91, 19031 }, /* KP_F1 */
-    { 0x0000ff92, 19037 }, /* KP_F2 */
-    { 0x0000ff93, 19043 }, /* KP_F3 */
-    { 0x0000ff94, 19049 }, /* KP_F4 */
-    { 0x0000ff95, 19055 }, /* KP_Home */
-    { 0x0000ff96, 19073 }, /* KP_Left */
-    { 0x0000ff97, 19184 }, /* KP_Up */
-    { 0x0000ff98, 19134 }, /* KP_Right */
-    { 0x0000ff99, 18998 }, /* KP_Down */
-    { 0x0000ff9a, 19125 }, /* KP_Prior */
-    { 0x0000ff9b, 19093 }, /* KP_Next */
-    { 0x0000ff9c, 19006 }, /* KP_End */
-    { 0x0000ff9d, 18958 }, /* KP_Begin */
-    { 0x0000ff9e, 19063 }, /* KP_Insert */
-    { 0x0000ff9f, 18978 }, /* KP_Delete */
-    { 0x0000ffaa, 19081 }, /* KP_Multiply */
-    { 0x0000ffab, 18940 }, /* KP_Add */
-    { 0x0000ffac, 19143 }, /* KP_Separator */
-    { 0x0000ffad, 19165 }, /* KP_Subtract */
-    { 0x0000ffae, 18967 }, /* KP_Decimal */
-    { 0x0000ffaf, 18988 }, /* KP_Divide */
-    { 0x0000ffb0, 18890 }, /* KP_0 */
-    { 0x0000ffb1, 18895 }, /* KP_1 */
-    { 0x0000ffb2, 18900 }, /* KP_2 */
-    { 0x0000ffb3, 18905 }, /* KP_3 */
-    { 0x0000ffb4, 18910 }, /* KP_4 */
-    { 0x0000ffb5, 18915 }, /* KP_5 */
-    { 0x0000ffb6, 18920 }, /* KP_6 */
-    { 0x0000ffb7, 18925 }, /* KP_7 */
-    { 0x0000ffb8, 18930 }, /* KP_8 */
-    { 0x0000ffb9, 18935 }, /* KP_9 */
-    { 0x0000ffbd, 19022 }, /* KP_Equal */
-    { 0x0000ffbe, 12241 }, /* F1 */
-    { 0x0000ffbf, 12284 }, /* F2 */
-    { 0x0000ffc0, 12327 }, /* F3 */
-    { 0x0000ffc1, 12354 }, /* F4 */
-    { 0x0000ffc2, 12357 }, /* F5 */
-    { 0x0000ffc3, 12360 }, /* F6 */
-    { 0x0000ffc4, 12363 }, /* F7 */
-    { 0x0000ffc5, 12366 }, /* F8 */
-    { 0x0000ffc6, 12369 }, /* F9 */
-    { 0x0000ffc7, 12244 }, /* F10 */
-    { 0x0000ffc8, 12248 }, /* F11 */
-    { 0x0000ffc9, 12252 }, /* F12 */
-    { 0x0000ffca, 12256 }, /* F13 */
-    { 0x0000ffcb, 12260 }, /* F14 */
-    { 0x0000ffcc, 12264 }, /* F15 */
-    { 0x0000ffcd, 12268 }, /* F16 */
-    { 0x0000ffce, 12272 }, /* F17 */
-    { 0x0000ffcf, 12276 }, /* F18 */
-    { 0x0000ffd0, 12280 }, /* F19 */
-    { 0x0000ffd1, 12287 }, /* F20 */
-    { 0x0000ffd2, 12291 }, /* F21 */
-    { 0x0000ffd3, 12295 }, /* F22 */
-    { 0x0000ffd4, 12299 }, /* F23 */
-    { 0x0000ffd5, 12303 }, /* F24 */
-    { 0x0000ffd6, 12307 }, /* F25 */
-    { 0x0000ffd7, 12311 }, /* F26 */
-    { 0x0000ffd8, 12315 }, /* F27 */
-    { 0x0000ffd9, 12319 }, /* F28 */
-    { 0x0000ffda, 12323 }, /* F29 */
-    { 0x0000ffdb, 12330 }, /* F30 */
-    { 0x0000ffdc, 12334 }, /* F31 */
-    { 0x0000ffdd, 12338 }, /* F32 */
-    { 0x0000ffde, 12342 }, /* F33 */
-    { 0x0000ffdf, 12346 }, /* F34 */
-    { 0x0000ffe0, 12350 }, /* F35 */
-    { 0x0000ffe1, 23028 }, /* Shift_L */
-    { 0x0000ffe2, 23047 }, /* Shift_R */
+    { 0x0000ff7e, 19795 }, /* Mode_switch */
+    { 0x0000ff7f, 20217 }, /* Num_Lock */
+    { 0x0000ff80, 19122 }, /* KP_Space */
+    { 0x0000ff89, 19143 }, /* KP_Tab */
+    { 0x0000ff8d, 18979 }, /* KP_Enter */
+    { 0x0000ff91, 18997 }, /* KP_F1 */
+    { 0x0000ff92, 19003 }, /* KP_F2 */
+    { 0x0000ff93, 19009 }, /* KP_F3 */
+    { 0x0000ff94, 19015 }, /* KP_F4 */
+    { 0x0000ff95, 19021 }, /* KP_Home */
+    { 0x0000ff96, 19039 }, /* KP_Left */
+    { 0x0000ff97, 19150 }, /* KP_Up */
+    { 0x0000ff98, 19100 }, /* KP_Right */
+    { 0x0000ff99, 18964 }, /* KP_Down */
+    { 0x0000ff9a, 19091 }, /* KP_Prior */
+    { 0x0000ff9b, 19059 }, /* KP_Next */
+    { 0x0000ff9c, 18972 }, /* KP_End */
+    { 0x0000ff9d, 18924 }, /* KP_Begin */
+    { 0x0000ff9e, 19029 }, /* KP_Insert */
+    { 0x0000ff9f, 18944 }, /* KP_Delete */
+    { 0x0000ffaa, 19047 }, /* KP_Multiply */
+    { 0x0000ffab, 18906 }, /* KP_Add */
+    { 0x0000ffac, 19109 }, /* KP_Separator */
+    { 0x0000ffad, 19131 }, /* KP_Subtract */
+    { 0x0000ffae, 18933 }, /* KP_Decimal */
+    { 0x0000ffaf, 18954 }, /* KP_Divide */
+    { 0x0000ffb0, 18856 }, /* KP_0 */
+    { 0x0000ffb1, 18861 }, /* KP_1 */
+    { 0x0000ffb2, 18866 }, /* KP_2 */
+    { 0x0000ffb3, 18871 }, /* KP_3 */
+    { 0x0000ffb4, 18876 }, /* KP_4 */
+    { 0x0000ffb5, 18881 }, /* KP_5 */
+    { 0x0000ffb6, 18886 }, /* KP_6 */
+    { 0x0000ffb7, 18891 }, /* KP_7 */
+    { 0x0000ffb8, 18896 }, /* KP_8 */
+    { 0x0000ffb9, 18901 }, /* KP_9 */
+    { 0x0000ffbd, 18988 }, /* KP_Equal */
+    { 0x0000ffbe, 12191 }, /* F1 */
+    { 0x0000ffbf, 12234 }, /* F2 */
+    { 0x0000ffc0, 12277 }, /* F3 */
+    { 0x0000ffc1, 12304 }, /* F4 */
+    { 0x0000ffc2, 12307 }, /* F5 */
+    { 0x0000ffc3, 12310 }, /* F6 */
+    { 0x0000ffc4, 12313 }, /* F7 */
+    { 0x0000ffc5, 12316 }, /* F8 */
+    { 0x0000ffc6, 12319 }, /* F9 */
+    { 0x0000ffc7, 12194 }, /* F10 */
+    { 0x0000ffc8, 12198 }, /* F11 */
+    { 0x0000ffc9, 12202 }, /* F12 */
+    { 0x0000ffca, 12206 }, /* F13 */
+    { 0x0000ffcb, 12210 }, /* F14 */
+    { 0x0000ffcc, 12214 }, /* F15 */
+    { 0x0000ffcd, 12218 }, /* F16 */
+    { 0x0000ffce, 12222 }, /* F17 */
+    { 0x0000ffcf, 12226 }, /* F18 */
+    { 0x0000ffd0, 12230 }, /* F19 */
+    { 0x0000ffd1, 12237 }, /* F20 */
+    { 0x0000ffd2, 12241 }, /* F21 */
+    { 0x0000ffd3, 12245 }, /* F22 */
+    { 0x0000ffd4, 12249 }, /* F23 */
+    { 0x0000ffd5, 12253 }, /* F24 */
+    { 0x0000ffd6, 12257 }, /* F25 */
+    { 0x0000ffd7, 12261 }, /* F26 */
+    { 0x0000ffd8, 12265 }, /* F27 */
+    { 0x0000ffd9, 12269 }, /* F28 */
+    { 0x0000ffda, 12273 }, /* F29 */
+    { 0x0000ffdb, 12280 }, /* F30 */
+    { 0x0000ffdc, 12284 }, /* F31 */
+    { 0x0000ffdd, 12288 }, /* F32 */
+    { 0x0000ffde, 12292 }, /* F33 */
+    { 0x0000ffdf, 12296 }, /* F34 */
+    { 0x0000ffe0, 12300 }, /* F35 */
+    { 0x0000ffe1, 23007 }, /* Shift_L */
+    { 0x0000ffe2, 23026 }, /* Shift_R */
     { 0x0000ffe3, 8779 }, /* Control_L */
     { 0x0000ffe4, 8789 }, /* Control_R */
     { 0x0000ffe5, 8496 }, /* Caps_Lock */
-    { 0x0000ffe6, 23036 }, /* Shift_Lock */
-    { 0x0000ffe7, 19792 }, /* Meta_L */
-    { 0x0000ffe8, 19799 }, /* Meta_R */
+    { 0x0000ffe6, 23015 }, /* Shift_Lock */
+    { 0x0000ffe7, 19758 }, /* Meta_L */
+    { 0x0000ffe8, 19765 }, /* Meta_R */
     { 0x0000ffe9, 880 }, /* Alt_L */
     { 0x0000ffea, 886 }, /* Alt_R */
-    { 0x0000ffeb, 24345 }, /* Super_L */
-    { 0x0000ffec, 24353 }, /* Super_R */
-    { 0x0000ffed, 17128 }, /* Hyper_L */
-    { 0x0000ffee, 17136 }, /* Hyper_R */
+    { 0x0000ffeb, 24324 }, /* Super_L */
+    { 0x0000ffec, 24332 }, /* Super_R */
+    { 0x0000ffed, 17094 }, /* Hyper_L */
+    { 0x0000ffee, 17102 }, /* Hyper_R */
     { 0x0000fff1, 3642 }, /* braille_dot_1 */
     { 0x0000fff2, 3671 }, /* braille_dot_2 */
     { 0x0000fff3, 3685 }, /* braille_dot_3 */
@@ -6740,30 +6776,30 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x0000fff8, 3755 }, /* braille_dot_8 */
     { 0x0000fff9, 3769 }, /* braille_dot_9 */
     { 0x0000fffa, 3656 }, /* braille_dot_10 */
-    { 0x0000ffff, 11242 }, /* Delete */
-    { 0x00ffffff, 26613 }, /* VoidSymbol */
-    { 0x0100012c, 17199 }, /* Ibreve */
-    { 0x0100012d, 17206 }, /* ibreve */
-    { 0x01000174, 26645 }, /* Wcircumflex */
-    { 0x01000175, 26657 }, /* wcircumflex */
-    { 0x01000176, 31256 }, /* Ycircumflex */
-    { 0x01000177, 31268 }, /* ycircumflex */
-    { 0x0100018f, 22731 }, /* SCHWA */
-    { 0x0100019f, 20300 }, /* Obarred */
-    { 0x010001a0, 20635 }, /* Ohorn */
-    { 0x010001a1, 20641 }, /* ohorn */
-    { 0x010001af, 26079 }, /* Uhorn */
-    { 0x010001b0, 26085 }, /* uhorn */
-    { 0x010001b5, 31458 }, /* Zstroke */
-    { 0x010001b6, 31466 }, /* zstroke */
-    { 0x010001b7, 12229 }, /* EZH */
-    { 0x010001d1, 20336 }, /* Ocaron */
-    { 0x010001d2, 20343 }, /* ocaron */
-    { 0x010001e6, 12785 }, /* Gcaron */
-    { 0x010001e7, 12792 }, /* gcaron */
-    { 0x01000259, 22737 }, /* schwa */
-    { 0x01000275, 20308 }, /* obarred */
-    { 0x01000292, 12233 }, /* ezh */
+    { 0x0000ffff, 11192 }, /* Delete */
+    { 0x00ffffff, 26592 }, /* VoidSymbol */
+    { 0x0100012c, 17165 }, /* Ibreve */
+    { 0x0100012d, 17172 }, /* ibreve */
+    { 0x01000174, 26624 }, /* Wcircumflex */
+    { 0x01000175, 26636 }, /* wcircumflex */
+    { 0x01000176, 31545 }, /* Ycircumflex */
+    { 0x01000177, 31557 }, /* ycircumflex */
+    { 0x0100018f, 22710 }, /* SCHWA */
+    { 0x0100019f, 20266 }, /* Obarred */
+    { 0x010001a0, 20601 }, /* Ohorn */
+    { 0x010001a1, 20607 }, /* ohorn */
+    { 0x010001af, 26058 }, /* Uhorn */
+    { 0x010001b0, 26064 }, /* uhorn */
+    { 0x010001b5, 31747 }, /* Zstroke */
+    { 0x010001b6, 31755 }, /* zstroke */
+    { 0x010001b7, 12179 }, /* EZH */
+    { 0x010001d1, 20302 }, /* Ocaron */
+    { 0x010001d2, 20309 }, /* ocaron */
+    { 0x010001e6, 12735 }, /* Gcaron */
+    { 0x010001e7, 12742 }, /* gcaron */
+    { 0x01000259, 22716 }, /* schwa */
+    { 0x01000275, 20274 }, /* obarred */
+    { 0x01000292, 12183 }, /* ezh */
     { 0x01000300, 8715 }, /* combining_grave */
     { 0x01000301, 8680 }, /* combining_acute */
     { 0x01000303, 8746 }, /* combining_tilde */
@@ -6910,162 +6946,162 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x010006ba, 1642 }, /* Arabic_noon_ghunna */
     { 0x010006be, 1442 }, /* Arabic_heh_doachashmee */
     { 0x010006c1, 1465 }, /* Arabic_heh_goal */
-    { 0x010006cc, 12472 }, /* Farsi_yeh */
+    { 0x010006cc, 12422 }, /* Farsi_yeh */
     { 0x010006d2, 1996 }, /* Arabic_yeh_baree */
     { 0x010006d4, 1242 }, /* Arabic_fullstop */
-    { 0x010006f0, 12392 }, /* Farsi_0 */
-    { 0x010006f1, 12400 }, /* Farsi_1 */
-    { 0x010006f2, 12408 }, /* Farsi_2 */
-    { 0x010006f3, 12416 }, /* Farsi_3 */
-    { 0x010006f4, 12424 }, /* Farsi_4 */
-    { 0x010006f5, 12432 }, /* Farsi_5 */
-    { 0x010006f6, 12440 }, /* Farsi_6 */
-    { 0x010006f7, 12448 }, /* Farsi_7 */
-    { 0x010006f8, 12456 }, /* Farsi_8 */
-    { 0x010006f9, 12464 }, /* Farsi_9 */
-    { 0x01000d82, 23566 }, /* Sinh_ng */
-    { 0x01000d83, 23360 }, /* Sinh_h2 */
-    { 0x01000d85, 23129 }, /* Sinh_a */
-    { 0x01000d86, 23136 }, /* Sinh_aa */
-    { 0x01000d87, 23153 }, /* Sinh_ae */
-    { 0x01000d88, 23170 }, /* Sinh_aee */
-    { 0x01000d89, 23376 }, /* Sinh_i */
-    { 0x01000d8a, 23391 }, /* Sinh_ii */
-    { 0x01000d8b, 23777 }, /* Sinh_u */
-    { 0x01000d8c, 23792 }, /* Sinh_uu */
-    { 0x01000d8d, 23676 }, /* Sinh_ri */
-    { 0x01000d8e, 23684 }, /* Sinh_rii */
-    { 0x01000d8f, 23485 }, /* Sinh_lu */
-    { 0x01000d90, 23502 }, /* Sinh_luu */
-    { 0x01000d91, 23303 }, /* Sinh_e */
-    { 0x01000d92, 23318 }, /* Sinh_ee */
-    { 0x01000d93, 23189 }, /* Sinh_ai */
-    { 0x01000d94, 23619 }, /* Sinh_o */
-    { 0x01000d95, 23634 }, /* Sinh_oo */
-    { 0x01000d96, 23214 }, /* Sinh_au */
-    { 0x01000d9a, 23435 }, /* Sinh_ka */
-    { 0x01000d9b, 23443 }, /* Sinh_kha */
-    { 0x01000d9c, 23343 }, /* Sinh_ga */
-    { 0x01000d9d, 23351 }, /* Sinh_gha */
-    { 0x01000d9e, 23574 }, /* Sinh_ng2 */
-    { 0x01000d9f, 23583 }, /* Sinh_nga */
-    { 0x01000da0, 23248 }, /* Sinh_ca */
-    { 0x01000da1, 23256 }, /* Sinh_cha */
-    { 0x01000da2, 23408 }, /* Sinh_ja */
-    { 0x01000da3, 23416 }, /* Sinh_jha */
-    { 0x01000da4, 23610 }, /* Sinh_nya */
-    { 0x01000da5, 23425 }, /* Sinh_jnya */
-    { 0x01000da6, 23592 }, /* Sinh_nja */
-    { 0x01000da7, 23758 }, /* Sinh_tta */
-    { 0x01000da8, 23767 }, /* Sinh_ttha */
-    { 0x01000da9, 23265 }, /* Sinh_dda */
-    { 0x01000daa, 23274 }, /* Sinh_ddha */
-    { 0x01000dab, 23601 }, /* Sinh_nna */
-    { 0x01000dac, 23546 }, /* Sinh_ndda */
-    { 0x01000dad, 23739 }, /* Sinh_tha */
-    { 0x01000dae, 23748 }, /* Sinh_thha */
-    { 0x01000daf, 23284 }, /* Sinh_dha */
-    { 0x01000db0, 23293 }, /* Sinh_dhha */
-    { 0x01000db1, 23538 }, /* Sinh_na */
-    { 0x01000db3, 23556 }, /* Sinh_ndha */
-    { 0x01000db4, 23651 }, /* Sinh_pa */
-    { 0x01000db5, 23659 }, /* Sinh_pha */
-    { 0x01000db6, 23231 }, /* Sinh_ba */
-    { 0x01000db7, 23239 }, /* Sinh_bha */
-    { 0x01000db8, 23521 }, /* Sinh_ma */
-    { 0x01000db9, 23529 }, /* Sinh_mba */
-    { 0x01000dba, 23817 }, /* Sinh_ya */
-    { 0x01000dbb, 23668 }, /* Sinh_ra */
-    { 0x01000dbd, 23468 }, /* Sinh_la */
-    { 0x01000dc0, 23809 }, /* Sinh_va */
-    { 0x01000dc1, 23720 }, /* Sinh_sha */
-    { 0x01000dc2, 23729 }, /* Sinh_ssha */
-    { 0x01000dc3, 23712 }, /* Sinh_sa */
-    { 0x01000dc4, 23368 }, /* Sinh_ha */
-    { 0x01000dc5, 23476 }, /* Sinh_lla */
-    { 0x01000dc6, 23335 }, /* Sinh_fa */
-    { 0x01000dca, 23206 }, /* Sinh_al */
-    { 0x01000dcf, 23144 }, /* Sinh_aa2 */
-    { 0x01000dd0, 23161 }, /* Sinh_ae2 */
-    { 0x01000dd1, 23179 }, /* Sinh_aee2 */
-    { 0x01000dd2, 23383 }, /* Sinh_i2 */
-    { 0x01000dd3, 23399 }, /* Sinh_ii2 */
-    { 0x01000dd4, 23784 }, /* Sinh_u2 */
-    { 0x01000dd6, 23800 }, /* Sinh_uu2 */
-    { 0x01000dd8, 23693 }, /* Sinh_ru2 */
-    { 0x01000dd9, 23310 }, /* Sinh_e2 */
-    { 0x01000dda, 23326 }, /* Sinh_ee2 */
-    { 0x01000ddb, 23197 }, /* Sinh_ai2 */
-    { 0x01000ddc, 23626 }, /* Sinh_o2 */
-    { 0x01000ddd, 23642 }, /* Sinh_oo2 */
-    { 0x01000dde, 23222 }, /* Sinh_au2 */
-    { 0x01000ddf, 23493 }, /* Sinh_lu2 */
-    { 0x01000df2, 23702 }, /* Sinh_ruu2 */
-    { 0x01000df3, 23511 }, /* Sinh_luu2 */
-    { 0x01000df4, 23452 }, /* Sinh_kunddaliya */
-    { 0x010010d0, 12841 }, /* Georgian_an */
-    { 0x010010d1, 12853 }, /* Georgian_ban */
-    { 0x010010d2, 12957 }, /* Georgian_gan */
-    { 0x010010d3, 12920 }, /* Georgian_don */
-    { 0x010010d4, 12933 }, /* Georgian_en */
-    { 0x010010d5, 13283 }, /* Georgian_vin */
-    { 0x010010d6, 13321 }, /* Georgian_zen */
-    { 0x010010d7, 13245 }, /* Georgian_tan */
-    { 0x010010d8, 13048 }, /* Georgian_in */
-    { 0x010010d9, 13087 }, /* Georgian_kan */
-    { 0x010010da, 13114 }, /* Georgian_las */
-    { 0x010010db, 13127 }, /* Georgian_man */
-    { 0x010010dc, 13140 }, /* Georgian_nar */
-    { 0x010010dd, 13153 }, /* Georgian_on */
-    { 0x010010de, 13165 }, /* Georgian_par */
-    { 0x010010df, 13334 }, /* Georgian_zhar */
-    { 0x010010e0, 13205 }, /* Georgian_rae */
-    { 0x010010e1, 13218 }, /* Georgian_san */
-    { 0x010010e2, 13258 }, /* Georgian_tar */
-    { 0x010010e3, 13271 }, /* Georgian_un */
-    { 0x010010e4, 13178 }, /* Georgian_phar */
-    { 0x010010e5, 13100 }, /* Georgian_khar */
-    { 0x010010e6, 12970 }, /* Georgian_ghan */
-    { 0x010010e7, 13192 }, /* Georgian_qar */
-    { 0x010010e8, 13231 }, /* Georgian_shin */
-    { 0x010010e9, 12893 }, /* Georgian_chin */
-    { 0x010010ea, 12866 }, /* Georgian_can */
-    { 0x010010eb, 13074 }, /* Georgian_jil */
-    { 0x010010ec, 12907 }, /* Georgian_cil */
-    { 0x010010ed, 12879 }, /* Georgian_char */
-    { 0x010010ee, 13308 }, /* Georgian_xan */
-    { 0x010010ef, 13060 }, /* Georgian_jhan */
-    { 0x010010f0, 12984 }, /* Georgian_hae */
-    { 0x010010f1, 13010 }, /* Georgian_he */
-    { 0x010010f2, 13022 }, /* Georgian_hie */
-    { 0x010010f3, 13296 }, /* Georgian_we */
-    { 0x010010f4, 12997 }, /* Georgian_har */
-    { 0x010010f5, 13035 }, /* Georgian_hoe */
-    { 0x010010f6, 12945 }, /* Georgian_fi */
+    { 0x010006f0, 12342 }, /* Farsi_0 */
+    { 0x010006f1, 12350 }, /* Farsi_1 */
+    { 0x010006f2, 12358 }, /* Farsi_2 */
+    { 0x010006f3, 12366 }, /* Farsi_3 */
+    { 0x010006f4, 12374 }, /* Farsi_4 */
+    { 0x010006f5, 12382 }, /* Farsi_5 */
+    { 0x010006f6, 12390 }, /* Farsi_6 */
+    { 0x010006f7, 12398 }, /* Farsi_7 */
+    { 0x010006f8, 12406 }, /* Farsi_8 */
+    { 0x010006f9, 12414 }, /* Farsi_9 */
+    { 0x01000d82, 23545 }, /* Sinh_ng */
+    { 0x01000d83, 23339 }, /* Sinh_h2 */
+    { 0x01000d85, 23108 }, /* Sinh_a */
+    { 0x01000d86, 23115 }, /* Sinh_aa */
+    { 0x01000d87, 23132 }, /* Sinh_ae */
+    { 0x01000d88, 23149 }, /* Sinh_aee */
+    { 0x01000d89, 23355 }, /* Sinh_i */
+    { 0x01000d8a, 23370 }, /* Sinh_ii */
+    { 0x01000d8b, 23756 }, /* Sinh_u */
+    { 0x01000d8c, 23771 }, /* Sinh_uu */
+    { 0x01000d8d, 23655 }, /* Sinh_ri */
+    { 0x01000d8e, 23663 }, /* Sinh_rii */
+    { 0x01000d8f, 23464 }, /* Sinh_lu */
+    { 0x01000d90, 23481 }, /* Sinh_luu */
+    { 0x01000d91, 23282 }, /* Sinh_e */
+    { 0x01000d92, 23297 }, /* Sinh_ee */
+    { 0x01000d93, 23168 }, /* Sinh_ai */
+    { 0x01000d94, 23598 }, /* Sinh_o */
+    { 0x01000d95, 23613 }, /* Sinh_oo */
+    { 0x01000d96, 23193 }, /* Sinh_au */
+    { 0x01000d9a, 23414 }, /* Sinh_ka */
+    { 0x01000d9b, 23422 }, /* Sinh_kha */
+    { 0x01000d9c, 23322 }, /* Sinh_ga */
+    { 0x01000d9d, 23330 }, /* Sinh_gha */
+    { 0x01000d9e, 23553 }, /* Sinh_ng2 */
+    { 0x01000d9f, 23562 }, /* Sinh_nga */
+    { 0x01000da0, 23227 }, /* Sinh_ca */
+    { 0x01000da1, 23235 }, /* Sinh_cha */
+    { 0x01000da2, 23387 }, /* Sinh_ja */
+    { 0x01000da3, 23395 }, /* Sinh_jha */
+    { 0x01000da4, 23589 }, /* Sinh_nya */
+    { 0x01000da5, 23404 }, /* Sinh_jnya */
+    { 0x01000da6, 23571 }, /* Sinh_nja */
+    { 0x01000da7, 23737 }, /* Sinh_tta */
+    { 0x01000da8, 23746 }, /* Sinh_ttha */
+    { 0x01000da9, 23244 }, /* Sinh_dda */
+    { 0x01000daa, 23253 }, /* Sinh_ddha */
+    { 0x01000dab, 23580 }, /* Sinh_nna */
+    { 0x01000dac, 23525 }, /* Sinh_ndda */
+    { 0x01000dad, 23718 }, /* Sinh_tha */
+    { 0x01000dae, 23727 }, /* Sinh_thha */
+    { 0x01000daf, 23263 }, /* Sinh_dha */
+    { 0x01000db0, 23272 }, /* Sinh_dhha */
+    { 0x01000db1, 23517 }, /* Sinh_na */
+    { 0x01000db3, 23535 }, /* Sinh_ndha */
+    { 0x01000db4, 23630 }, /* Sinh_pa */
+    { 0x01000db5, 23638 }, /* Sinh_pha */
+    { 0x01000db6, 23210 }, /* Sinh_ba */
+    { 0x01000db7, 23218 }, /* Sinh_bha */
+    { 0x01000db8, 23500 }, /* Sinh_ma */
+    { 0x01000db9, 23508 }, /* Sinh_mba */
+    { 0x01000dba, 23796 }, /* Sinh_ya */
+    { 0x01000dbb, 23647 }, /* Sinh_ra */
+    { 0x01000dbd, 23447 }, /* Sinh_la */
+    { 0x01000dc0, 23788 }, /* Sinh_va */
+    { 0x01000dc1, 23699 }, /* Sinh_sha */
+    { 0x01000dc2, 23708 }, /* Sinh_ssha */
+    { 0x01000dc3, 23691 }, /* Sinh_sa */
+    { 0x01000dc4, 23347 }, /* Sinh_ha */
+    { 0x01000dc5, 23455 }, /* Sinh_lla */
+    { 0x01000dc6, 23314 }, /* Sinh_fa */
+    { 0x01000dca, 23185 }, /* Sinh_al */
+    { 0x01000dcf, 23123 }, /* Sinh_aa2 */
+    { 0x01000dd0, 23140 }, /* Sinh_ae2 */
+    { 0x01000dd1, 23158 }, /* Sinh_aee2 */
+    { 0x01000dd2, 23362 }, /* Sinh_i2 */
+    { 0x01000dd3, 23378 }, /* Sinh_ii2 */
+    { 0x01000dd4, 23763 }, /* Sinh_u2 */
+    { 0x01000dd6, 23779 }, /* Sinh_uu2 */
+    { 0x01000dd8, 23672 }, /* Sinh_ru2 */
+    { 0x01000dd9, 23289 }, /* Sinh_e2 */
+    { 0x01000dda, 23305 }, /* Sinh_ee2 */
+    { 0x01000ddb, 23176 }, /* Sinh_ai2 */
+    { 0x01000ddc, 23605 }, /* Sinh_o2 */
+    { 0x01000ddd, 23621 }, /* Sinh_oo2 */
+    { 0x01000dde, 23201 }, /* Sinh_au2 */
+    { 0x01000ddf, 23472 }, /* Sinh_lu2 */
+    { 0x01000df2, 23681 }, /* Sinh_ruu2 */
+    { 0x01000df3, 23490 }, /* Sinh_luu2 */
+    { 0x01000df4, 23431 }, /* Sinh_kunddaliya */
+    { 0x010010d0, 12791 }, /* Georgian_an */
+    { 0x010010d1, 12803 }, /* Georgian_ban */
+    { 0x010010d2, 12907 }, /* Georgian_gan */
+    { 0x010010d3, 12870 }, /* Georgian_don */
+    { 0x010010d4, 12883 }, /* Georgian_en */
+    { 0x010010d5, 13233 }, /* Georgian_vin */
+    { 0x010010d6, 13271 }, /* Georgian_zen */
+    { 0x010010d7, 13195 }, /* Georgian_tan */
+    { 0x010010d8, 12998 }, /* Georgian_in */
+    { 0x010010d9, 13037 }, /* Georgian_kan */
+    { 0x010010da, 13064 }, /* Georgian_las */
+    { 0x010010db, 13077 }, /* Georgian_man */
+    { 0x010010dc, 13090 }, /* Georgian_nar */
+    { 0x010010dd, 13103 }, /* Georgian_on */
+    { 0x010010de, 13115 }, /* Georgian_par */
+    { 0x010010df, 13284 }, /* Georgian_zhar */
+    { 0x010010e0, 13155 }, /* Georgian_rae */
+    { 0x010010e1, 13168 }, /* Georgian_san */
+    { 0x010010e2, 13208 }, /* Georgian_tar */
+    { 0x010010e3, 13221 }, /* Georgian_un */
+    { 0x010010e4, 13128 }, /* Georgian_phar */
+    { 0x010010e5, 13050 }, /* Georgian_khar */
+    { 0x010010e6, 12920 }, /* Georgian_ghan */
+    { 0x010010e7, 13142 }, /* Georgian_qar */
+    { 0x010010e8, 13181 }, /* Georgian_shin */
+    { 0x010010e9, 12843 }, /* Georgian_chin */
+    { 0x010010ea, 12816 }, /* Georgian_can */
+    { 0x010010eb, 13024 }, /* Georgian_jil */
+    { 0x010010ec, 12857 }, /* Georgian_cil */
+    { 0x010010ed, 12829 }, /* Georgian_char */
+    { 0x010010ee, 13258 }, /* Georgian_xan */
+    { 0x010010ef, 13010 }, /* Georgian_jhan */
+    { 0x010010f0, 12934 }, /* Georgian_hae */
+    { 0x010010f1, 12960 }, /* Georgian_he */
+    { 0x010010f2, 12972 }, /* Georgian_hie */
+    { 0x010010f3, 13246 }, /* Georgian_we */
+    { 0x010010f4, 12947 }, /* Georgian_har */
+    { 0x010010f5, 12985 }, /* Georgian_hoe */
+    { 0x010010f6, 12895 }, /* Georgian_fi */
     { 0x01001e02, 3332 }, /* Babovedot */
     { 0x01001e03, 3342 }, /* babovedot */
     { 0x01001e0a, 10406 }, /* Dabovedot */
     { 0x01001e0b, 10416 }, /* dabovedot */
-    { 0x01001e1e, 12372 }, /* Fabovedot */
-    { 0x01001e1f, 12382 }, /* fabovedot */
-    { 0x01001e36, 19274 }, /* Lbelowdot */
-    { 0x01001e37, 19284 }, /* lbelowdot */
-    { 0x01001e40, 19619 }, /* Mabovedot */
-    { 0x01001e41, 19629 }, /* mabovedot */
-    { 0x01001e56, 21459 }, /* Pabovedot */
-    { 0x01001e57, 21469 }, /* pabovedot */
-    { 0x01001e60, 22665 }, /* Sabovedot */
-    { 0x01001e61, 22675 }, /* sabovedot */
-    { 0x01001e6a, 24384 }, /* Tabovedot */
-    { 0x01001e6b, 24394 }, /* tabovedot */
-    { 0x01001e80, 26691 }, /* Wgrave */
-    { 0x01001e81, 26698 }, /* wgrave */
-    { 0x01001e82, 26631 }, /* Wacute */
-    { 0x01001e83, 26638 }, /* wacute */
-    { 0x01001e84, 26669 }, /* Wdiaeresis */
-    { 0x01001e85, 26680 }, /* wdiaeresis */
-    { 0x01001e8a, 26717 }, /* Xabovedot */
-    { 0x01001e8b, 26727 }, /* xabovedot */
+    { 0x01001e1e, 12322 }, /* Fabovedot */
+    { 0x01001e1f, 12332 }, /* fabovedot */
+    { 0x01001e36, 19240 }, /* Lbelowdot */
+    { 0x01001e37, 19250 }, /* lbelowdot */
+    { 0x01001e40, 19585 }, /* Mabovedot */
+    { 0x01001e41, 19595 }, /* mabovedot */
+    { 0x01001e56, 21438 }, /* Pabovedot */
+    { 0x01001e57, 21448 }, /* pabovedot */
+    { 0x01001e60, 22644 }, /* Sabovedot */
+    { 0x01001e61, 22654 }, /* sabovedot */
+    { 0x01001e6a, 24363 }, /* Tabovedot */
+    { 0x01001e6b, 24373 }, /* tabovedot */
+    { 0x01001e80, 26670 }, /* Wgrave */
+    { 0x01001e81, 26677 }, /* wgrave */
+    { 0x01001e82, 26610 }, /* Wacute */
+    { 0x01001e83, 26617 }, /* wacute */
+    { 0x01001e84, 26648 }, /* Wdiaeresis */
+    { 0x01001e85, 26659 }, /* wdiaeresis */
+    { 0x01001e8a, 26696 }, /* Xabovedot */
+    { 0x01001e8b, 26706 }, /* xabovedot */
     { 0x01001ea0, 416 }, /* Abelowdot */
     { 0x01001ea1, 426 }, /* abelowdot */
     { 0x01001ea2, 868 }, /* Ahook */
@@ -7090,116 +7126,116 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x01001eb5, 571 }, /* abrevetilde */
     { 0x01001eb6, 483 }, /* Abrevebelowdot */
     { 0x01001eb7, 498 }, /* abrevebelowdot */
-    { 0x01001eb8, 11544 }, /* Ebelowdot */
-    { 0x01001eb9, 11554 }, /* ebelowdot */
-    { 0x01001eba, 11820 }, /* Ehook */
-    { 0x01001ebb, 11826 }, /* ehook */
-    { 0x01001ebc, 12158 }, /* Etilde */
-    { 0x01001ebd, 12165 }, /* etilde */
-    { 0x01001ebe, 11602 }, /* Ecircumflexacute */
-    { 0x01001ebf, 11619 }, /* ecircumflexacute */
-    { 0x01001ec0, 11676 }, /* Ecircumflexgrave */
-    { 0x01001ec1, 11693 }, /* ecircumflexgrave */
-    { 0x01001ec2, 11710 }, /* Ecircumflexhook */
-    { 0x01001ec3, 11726 }, /* ecircumflexhook */
-    { 0x01001ec4, 11742 }, /* Ecircumflextilde */
-    { 0x01001ec5, 11759 }, /* ecircumflextilde */
-    { 0x01001ec6, 11636 }, /* Ecircumflexbelowdot */
-    { 0x01001ec7, 11656 }, /* ecircumflexbelowdot */
-    { 0x01001ec8, 17301 }, /* Ihook */
-    { 0x01001ec9, 17307 }, /* ihook */
-    { 0x01001eca, 17179 }, /* Ibelowdot */
-    { 0x01001ecb, 17189 }, /* ibelowdot */
-    { 0x01001ecc, 20316 }, /* Obelowdot */
-    { 0x01001ecd, 20326 }, /* obelowdot */
-    { 0x01001ece, 20623 }, /* Ohook */
-    { 0x01001ecf, 20629 }, /* ohook */
-    { 0x01001ed0, 20374 }, /* Ocircumflexacute */
-    { 0x01001ed1, 20391 }, /* ocircumflexacute */
-    { 0x01001ed2, 20448 }, /* Ocircumflexgrave */
-    { 0x01001ed3, 20465 }, /* ocircumflexgrave */
-    { 0x01001ed4, 20482 }, /* Ocircumflexhook */
-    { 0x01001ed5, 20498 }, /* ocircumflexhook */
-    { 0x01001ed6, 20514 }, /* Ocircumflextilde */
-    { 0x01001ed7, 20531 }, /* ocircumflextilde */
-    { 0x01001ed8, 20408 }, /* Ocircumflexbelowdot */
-    { 0x01001ed9, 20428 }, /* ocircumflexbelowdot */
-    { 0x01001eda, 20647 }, /* Ohornacute */
-    { 0x01001edb, 20658 }, /* ohornacute */
-    { 0x01001edc, 20697 }, /* Ohorngrave */
-    { 0x01001edd, 20708 }, /* ohorngrave */
-    { 0x01001ede, 20719 }, /* Ohornhook */
-    { 0x01001edf, 20729 }, /* ohornhook */
-    { 0x01001ee0, 20739 }, /* Ohorntilde */
-    { 0x01001ee1, 20750 }, /* ohorntilde */
-    { 0x01001ee2, 20669 }, /* Ohornbelowdot */
-    { 0x01001ee3, 20683 }, /* ohornbelowdot */
-    { 0x01001ee4, 25947 }, /* Ubelowdot */
-    { 0x01001ee5, 25957 }, /* ubelowdot */
-    { 0x01001ee6, 26067 }, /* Uhook */
-    { 0x01001ee7, 26073 }, /* uhook */
-    { 0x01001ee8, 26091 }, /* Uhornacute */
-    { 0x01001ee9, 26102 }, /* uhornacute */
-    { 0x01001eea, 26141 }, /* Uhorngrave */
-    { 0x01001eeb, 26152 }, /* uhorngrave */
-    { 0x01001eec, 26163 }, /* Uhornhook */
-    { 0x01001eed, 26173 }, /* uhornhook */
-    { 0x01001eee, 26183 }, /* Uhorntilde */
-    { 0x01001eef, 26194 }, /* uhorntilde */
-    { 0x01001ef0, 26113 }, /* Uhornbelowdot */
-    { 0x01001ef1, 26127 }, /* uhornbelowdot */
-    { 0x01001ef2, 31306 }, /* Ygrave */
-    { 0x01001ef3, 31313 }, /* ygrave */
-    { 0x01001ef4, 31236 }, /* Ybelowdot */
-    { 0x01001ef5, 31246 }, /* ybelowdot */
-    { 0x01001ef6, 31320 }, /* Yhook */
-    { 0x01001ef7, 31326 }, /* yhook */
-    { 0x01001ef8, 31332 }, /* Ytilde */
-    { 0x01001ef9, 31339 }, /* ytilde */
-    { 0x01002070, 31445 }, /* zerosuperior */
-    { 0x01002074, 12714 }, /* foursuperior */
-    { 0x01002075, 12676 }, /* fivesuperior */
-    { 0x01002076, 23838 }, /* sixsuperior */
-    { 0x01002077, 23014 }, /* sevensuperior */
-    { 0x01002078, 11847 }, /* eightsuperior */
-    { 0x01002079, 20144 }, /* ninesuperior */
-    { 0x01002080, 31431 }, /* zerosubscript */
-    { 0x01002081, 20824 }, /* onesubscript */
-    { 0x01002082, 25894 }, /* twosubscript */
-    { 0x01002083, 25638 }, /* threesubscript */
-    { 0x01002084, 12700 }, /* foursubscript */
-    { 0x01002085, 12662 }, /* fivesubscript */
-    { 0x01002086, 23825 }, /* sixsubscript */
-    { 0x01002087, 22999 }, /* sevensubscript */
-    { 0x01002088, 11832 }, /* eightsubscript */
-    { 0x01002089, 20130 }, /* ninesubscript */
-    { 0x010020a0, 11776 }, /* EcuSign */
+    { 0x01001eb8, 11494 }, /* Ebelowdot */
+    { 0x01001eb9, 11504 }, /* ebelowdot */
+    { 0x01001eba, 11770 }, /* Ehook */
+    { 0x01001ebb, 11776 }, /* ehook */
+    { 0x01001ebc, 12108 }, /* Etilde */
+    { 0x01001ebd, 12115 }, /* etilde */
+    { 0x01001ebe, 11552 }, /* Ecircumflexacute */
+    { 0x01001ebf, 11569 }, /* ecircumflexacute */
+    { 0x01001ec0, 11626 }, /* Ecircumflexgrave */
+    { 0x01001ec1, 11643 }, /* ecircumflexgrave */
+    { 0x01001ec2, 11660 }, /* Ecircumflexhook */
+    { 0x01001ec3, 11676 }, /* ecircumflexhook */
+    { 0x01001ec4, 11692 }, /* Ecircumflextilde */
+    { 0x01001ec5, 11709 }, /* ecircumflextilde */
+    { 0x01001ec6, 11586 }, /* Ecircumflexbelowdot */
+    { 0x01001ec7, 11606 }, /* ecircumflexbelowdot */
+    { 0x01001ec8, 17267 }, /* Ihook */
+    { 0x01001ec9, 17273 }, /* ihook */
+    { 0x01001eca, 17145 }, /* Ibelowdot */
+    { 0x01001ecb, 17155 }, /* ibelowdot */
+    { 0x01001ecc, 20282 }, /* Obelowdot */
+    { 0x01001ecd, 20292 }, /* obelowdot */
+    { 0x01001ece, 20589 }, /* Ohook */
+    { 0x01001ecf, 20595 }, /* ohook */
+    { 0x01001ed0, 20340 }, /* Ocircumflexacute */
+    { 0x01001ed1, 20357 }, /* ocircumflexacute */
+    { 0x01001ed2, 20414 }, /* Ocircumflexgrave */
+    { 0x01001ed3, 20431 }, /* ocircumflexgrave */
+    { 0x01001ed4, 20448 }, /* Ocircumflexhook */
+    { 0x01001ed5, 20464 }, /* ocircumflexhook */
+    { 0x01001ed6, 20480 }, /* Ocircumflextilde */
+    { 0x01001ed7, 20497 }, /* ocircumflextilde */
+    { 0x01001ed8, 20374 }, /* Ocircumflexbelowdot */
+    { 0x01001ed9, 20394 }, /* ocircumflexbelowdot */
+    { 0x01001eda, 20613 }, /* Ohornacute */
+    { 0x01001edb, 20624 }, /* ohornacute */
+    { 0x01001edc, 20663 }, /* Ohorngrave */
+    { 0x01001edd, 20674 }, /* ohorngrave */
+    { 0x01001ede, 20685 }, /* Ohornhook */
+    { 0x01001edf, 20695 }, /* ohornhook */
+    { 0x01001ee0, 20705 }, /* Ohorntilde */
+    { 0x01001ee1, 20716 }, /* ohorntilde */
+    { 0x01001ee2, 20635 }, /* Ohornbelowdot */
+    { 0x01001ee3, 20649 }, /* ohornbelowdot */
+    { 0x01001ee4, 25926 }, /* Ubelowdot */
+    { 0x01001ee5, 25936 }, /* ubelowdot */
+    { 0x01001ee6, 26046 }, /* Uhook */
+    { 0x01001ee7, 26052 }, /* uhook */
+    { 0x01001ee8, 26070 }, /* Uhornacute */
+    { 0x01001ee9, 26081 }, /* uhornacute */
+    { 0x01001eea, 26120 }, /* Uhorngrave */
+    { 0x01001eeb, 26131 }, /* uhorngrave */
+    { 0x01001eec, 26142 }, /* Uhornhook */
+    { 0x01001eed, 26152 }, /* uhornhook */
+    { 0x01001eee, 26162 }, /* Uhorntilde */
+    { 0x01001eef, 26173 }, /* uhorntilde */
+    { 0x01001ef0, 26092 }, /* Uhornbelowdot */
+    { 0x01001ef1, 26106 }, /* uhornbelowdot */
+    { 0x01001ef2, 31595 }, /* Ygrave */
+    { 0x01001ef3, 31602 }, /* ygrave */
+    { 0x01001ef4, 31525 }, /* Ybelowdot */
+    { 0x01001ef5, 31535 }, /* ybelowdot */
+    { 0x01001ef6, 31609 }, /* Yhook */
+    { 0x01001ef7, 31615 }, /* yhook */
+    { 0x01001ef8, 31621 }, /* Ytilde */
+    { 0x01001ef9, 31628 }, /* ytilde */
+    { 0x01002070, 31734 }, /* zerosuperior */
+    { 0x01002074, 12664 }, /* foursuperior */
+    { 0x01002075, 12626 }, /* fivesuperior */
+    { 0x01002076, 23817 }, /* sixsuperior */
+    { 0x01002077, 22993 }, /* sevensuperior */
+    { 0x01002078, 11797 }, /* eightsuperior */
+    { 0x01002079, 20110 }, /* ninesuperior */
+    { 0x01002080, 31720 }, /* zerosubscript */
+    { 0x01002081, 20790 }, /* onesubscript */
+    { 0x01002082, 25873 }, /* twosubscript */
+    { 0x01002083, 25617 }, /* threesubscript */
+    { 0x01002084, 12650 }, /* foursubscript */
+    { 0x01002085, 12612 }, /* fivesubscript */
+    { 0x01002086, 23804 }, /* sixsubscript */
+    { 0x01002087, 22978 }, /* sevensubscript */
+    { 0x01002088, 11782 }, /* eightsubscript */
+    { 0x01002089, 20096 }, /* ninesubscript */
+    { 0x010020a0, 11726 }, /* EcuSign */
     { 0x010020a1, 8670 }, /* ColonSign */
     { 0x010020a2, 8826 }, /* CruzeiroSign */
-    { 0x010020a3, 12498 }, /* FFrancSign */
-    { 0x010020a4, 19530 }, /* LiraSign */
-    { 0x010020a5, 19806 }, /* MillSign */
-    { 0x010020a6, 20049 }, /* NairaSign */
-    { 0x010020a7, 21608 }, /* PesetaSign */
-    { 0x010020a8, 22651 }, /* RupeeSign */
-    { 0x010020a9, 26705 }, /* WonSign */
-    { 0x010020aa, 20091 }, /* NewSheqelSign */
-    { 0x010020ab, 11340 }, /* DongSign */
-    { 0x01002202, 21528 }, /* partdifferential */
-    { 0x01002205, 12001 }, /* emptyset */
-    { 0x01002208, 11884 }, /* elementof */
-    { 0x01002209, 20194 }, /* notelementof */
+    { 0x010020a3, 12448 }, /* FFrancSign */
+    { 0x010020a4, 19496 }, /* LiraSign */
+    { 0x010020a5, 19772 }, /* MillSign */
+    { 0x010020a6, 20015 }, /* NairaSign */
+    { 0x010020a7, 21587 }, /* PesetaSign */
+    { 0x010020a8, 22630 }, /* RupeeSign */
+    { 0x010020a9, 26684 }, /* WonSign */
+    { 0x010020aa, 20057 }, /* NewSheqelSign */
+    { 0x010020ab, 11290 }, /* DongSign */
+    { 0x01002202, 21507 }, /* partdifferential */
+    { 0x01002205, 11951 }, /* emptyset */
+    { 0x01002208, 11834 }, /* elementof */
+    { 0x01002209, 20160 }, /* notelementof */
     { 0x0100220b, 8768 }, /* containsas */
-    { 0x0100221a, 23891 }, /* squareroot */
+    { 0x0100221a, 23870 }, /* squareroot */
     { 0x0100221b, 8839 }, /* cuberoot */
-    { 0x0100221c, 12727 }, /* fourthroot */
-    { 0x0100222c, 11314 }, /* dintegral */
-    { 0x0100222d, 25667 }, /* tintegral */
+    { 0x0100221c, 12677 }, /* fourthroot */
+    { 0x0100222c, 11264 }, /* dintegral */
+    { 0x0100222d, 25646 }, /* tintegral */
     { 0x01002235, 3396 }, /* because */
-    { 0x01002247, 20182 }, /* notapproxeq */
+    { 0x01002247, 20148 }, /* notapproxeq */
     { 0x01002248, 945 }, /* approxeq */
-    { 0x01002262, 20216 }, /* notidentical */
-    { 0x01002263, 23936 }, /* stricteq */
+    { 0x01002262, 20182 }, /* notidentical */
+    { 0x01002263, 23915 }, /* stricteq */
     { 0x01002800, 3628 }, /* braille_blank */
     { 0x01002801, 3783 }, /* braille_dots_1 */
     { 0x01002802, 6151 }, /* braille_dots_2 */
@@ -7456,422 +7492,439 @@ static const struct name_keysym keysym_to_name[] = {
     { 0x010028fd, 5104 }, /* braille_dots_1345678 */
     { 0x010028fe, 6256 }, /* braille_dots_2345678 */
     { 0x010028ff, 3909 }, /* braille_dots_12345678 */
-    { 0x100000a8, 16992 }, /* hpmute_acute */
-    { 0x100000a9, 17059 }, /* hpmute_grave */
-    { 0x100000aa, 17005 }, /* hpmute_asciicircum */
-    { 0x100000ab, 17042 }, /* hpmute_diaeresis */
-    { 0x100000ac, 17024 }, /* hpmute_asciitilde */
-    { 0x100000af, 16949 }, /* hplira */
-    { 0x100000be, 16895 }, /* hpguilder */
-    { 0x100000ee, 17096 }, /* hpYdiaeresis */
-    { 0x100000f6, 16956 }, /* hplongminus */
-    { 0x100000fc, 16849 }, /* hpblock */
+    { 0x100000a8, 16971 }, /* hpmute_acute */
+    { 0x100000a9, 17038 }, /* hpmute_grave */
+    { 0x100000aa, 16984 }, /* hpmute_asciicircum */
+    { 0x100000ab, 17021 }, /* hpmute_diaeresis */
+    { 0x100000ac, 17003 }, /* hpmute_asciitilde */
+    { 0x100000af, 16928 }, /* hplira */
+    { 0x100000be, 16874 }, /* hpguilder */
+    { 0x100000ee, 16910 }, /* hpIO */
+    { 0x100000f6, 16935 }, /* hplongminus */
+    { 0x100000fc, 16828 }, /* hpblock */
     { 0x1000fe22, 10496 }, /* Ddiaeresis */
     { 0x1000fe27, 10426 }, /* Dacute_accent */
     { 0x1000fe2c, 10461 }, /* Dcedilla_accent */
     { 0x1000fe5e, 10477 }, /* Dcircumflex_accent */
-    { 0x1000fe60, 11271 }, /* Dgrave_accent */
-    { 0x1000fe7e, 11499 }, /* Dtilde */
-    { 0x1000feb0, 11470 }, /* Dring_accent */
-    { 0x1000ff00, 11462 }, /* DRemove */
-    { 0x1000ff48, 16968 }, /* hpModelock1 */
-    { 0x1000ff49, 16980 }, /* hpModelock2 */
-    { 0x1000ff6c, 17072 }, /* hpReset */
-    { 0x1000ff6d, 17080 }, /* hpSystem */
-    { 0x1000ff6e, 17089 }, /* hpUser */
-    { 0x1000ff6f, 16857 }, /* hpClearLine */
-    { 0x1000ff70, 16918 }, /* hpInsertLine */
-    { 0x1000ff71, 16882 }, /* hpDeleteLine */
-    { 0x1000ff72, 16905 }, /* hpInsertChar */
-    { 0x1000ff73, 16869 }, /* hpDeleteChar */
-    { 0x1000ff74, 16839 }, /* hpBackTab */
-    { 0x1000ff75, 16936 }, /* hpKP_BackTab */
-    { 0x1000ff76, 12207 }, /* Ext16bit_L */
-    { 0x1000ff77, 12218 }, /* Ext16bit_R */
-    { 0x1004ff02, 21038 }, /* osfCopy */
-    { 0x1004ff03, 21046 }, /* osfCut */
-    { 0x1004ff04, 21245 }, /* osfPaste */
-    { 0x1004ff07, 20982 }, /* osfBackTab */
-    { 0x1004ff08, 20969 }, /* osfBackSpace */
-    { 0x1004ff0b, 21029 }, /* osfClear */
-    { 0x1004ff1b, 21108 }, /* osfEscape */
-    { 0x1004ff31, 20958 }, /* osfAddMode */
-    { 0x1004ff32, 21279 }, /* osfPrimaryPaste */
-    { 0x1004ff33, 21295 }, /* osfQuickPaste */
-    { 0x1004ff40, 21210 }, /* osfPageLeft */
-    { 0x1004ff41, 21235 }, /* osfPageUp */
-    { 0x1004ff42, 21198 }, /* osfPageDown */
-    { 0x1004ff43, 21222 }, /* osfPageRight */
-    { 0x1004ff44, 20946 }, /* osfActivate */
-    { 0x1004ff45, 21162 }, /* osfMenuBar */
-    { 0x1004ff51, 21146 }, /* osfLeft */
-    { 0x1004ff52, 21372 }, /* osfUp */
-    { 0x1004ff53, 21332 }, /* osfRight */
-    { 0x1004ff54, 21078 }, /* osfDown */
-    { 0x1004ff57, 21097 }, /* osfEndLine */
-    { 0x1004ff58, 21006 }, /* osfBeginLine */
-    { 0x1004ff59, 21086 }, /* osfEndData */
-    { 0x1004ff5a, 20993 }, /* osfBeginData */
-    { 0x1004ff5b, 21267 }, /* osfPrevMenu */
-    { 0x1004ff5c, 21186 }, /* osfNextMenu */
-    { 0x1004ff5d, 21254 }, /* osfPrevField */
-    { 0x1004ff5e, 21173 }, /* osfNextField */
-    { 0x1004ff60, 21341 }, /* osfSelect */
-    { 0x1004ff63, 21136 }, /* osfInsert */
-    { 0x1004ff65, 21364 }, /* osfUndo */
-    { 0x1004ff67, 21154 }, /* osfMenu */
-    { 0x1004ff69, 21019 }, /* osfCancel */
-    { 0x1004ff6a, 21128 }, /* osfHelp */
-    { 0x1004ff71, 21351 }, /* osfSelectAll */
-    { 0x1004ff72, 21063 }, /* osfDeselectAll */
-    { 0x1004ff73, 21309 }, /* osfReselect */
-    { 0x1004ff74, 21118 }, /* osfExtend */
-    { 0x1004ff78, 21321 }, /* osfRestore */
-    { 0x1004ffff, 21053 }, /* osfDelete */
-    { 0x1005ff00, 24114 }, /* SunFA_Grave */
-    { 0x1005ff01, 24085 }, /* SunFA_Circum */
-    { 0x1005ff02, 24126 }, /* SunFA_Tilde */
-    { 0x1005ff03, 24059 }, /* SunFA_Acute */
-    { 0x1005ff04, 24098 }, /* SunFA_Diaeresis */
-    { 0x1005ff05, 24071 }, /* SunFA_Cedilla */
-    { 0x1005ff10, 24045 }, /* SunF36 */
-    { 0x1005ff11, 24052 }, /* SunF37 */
-    { 0x1005ff60, 24262 }, /* SunSys_Req */
-    { 0x1005ff70, 24245 }, /* SunProps */
-    { 0x1005ff71, 24146 }, /* SunFront */
-    { 0x1005ff72, 24030 }, /* SunCopy */
-    { 0x1005ff73, 24155 }, /* SunOpen */
-    { 0x1005ff74, 24185 }, /* SunPaste */
-    { 0x1005ff75, 24038 }, /* SunCut */
-    { 0x1005ff76, 24194 }, /* SunPowerSwitch */
-    { 0x1005ff77, 23966 }, /* SunAudioLowerVolume */
-    { 0x1005ff78, 23986 }, /* SunAudioMute */
-    { 0x1005ff79, 23999 }, /* SunAudioRaiseVolume */
-    { 0x1005ff7a, 24281 }, /* SunVideoDegauss */
-    { 0x1005ff7b, 24297 }, /* SunVideoLowerBrightness */
-    { 0x1005ff7c, 24321 }, /* SunVideoRaiseBrightness */
-    { 0x1005ff7d, 24209 }, /* SunPowerSwitchShift */
-    { 0x100810f4, 27381 }, /* XF86BrightnessAuto */
-    { 0x100810f5, 27821 }, /* XF86DisplayOff */
-    { 0x10081166, 28203 }, /* XF86Info */
-    { 0x10081177, 26885 }, /* XF86AspectRatio */
-    { 0x10081185, 27876 }, /* XF86DVD */
-    { 0x10081188, 26968 }, /* XF86Audio */
-    { 0x10081192, 27629 }, /* XF86ChannelUp */
-    { 0x10081193, 27613 }, /* XF86ChannelDown */
-    { 0x1008119b, 27350 }, /* XF86Break */
-    { 0x100811a0, 31011 }, /* XF86VideoPhone */
-    { 0x100811a4, 31204 }, /* XF86ZoomReset */
-    { 0x100811a6, 27884 }, /* XF86Editor */
-    { 0x100811a8, 28095 }, /* XF86GraphicsEditor */
-    { 0x100811a9, 30012 }, /* XF86Presentation */
-    { 0x100811aa, 27784 }, /* XF86Database */
-    { 0x100811ac, 31060 }, /* XF86Voicemail */
-    { 0x100811ad, 26800 }, /* XF86Addressbook */
-    { 0x100811af, 27836 }, /* XF86DisplayToggle */
-    { 0x100811b0, 30465 }, /* XF86SpellCheck */
-    { 0x100811b6, 27691 }, /* XF86ContextMenu */
-    { 0x100811b7, 29332 }, /* XF86MediaRepeat */
-    { 0x100811b8, 26756 }, /* XF8610ChannelsUp */
-    { 0x100811b9, 26737 }, /* XF8610ChannelsDown */
-    { 0x100811ba, 28192 }, /* XF86Images */
-    { 0x100811bc, 29586 }, /* XF86NotificationCenter */
-    { 0x100811bd, 29956 }, /* XF86PickupPhone */
-    { 0x100811be, 28124 }, /* XF86HangupPhone */
-    { 0x100811d0, 27986 }, /* XF86Fn */
-    { 0x100811d1, 27993 }, /* XF86Fn_Esc */
-    { 0x100811e5, 28004 }, /* XF86FnRightShift */
-    { 0x10081200, 29609 }, /* XF86Numeric0 */
-    { 0x10081201, 29622 }, /* XF86Numeric1 */
-    { 0x10081202, 29663 }, /* XF86Numeric2 */
-    { 0x10081203, 29676 }, /* XF86Numeric3 */
-    { 0x10081204, 29689 }, /* XF86Numeric4 */
-    { 0x10081205, 29702 }, /* XF86Numeric5 */
-    { 0x10081206, 29715 }, /* XF86Numeric6 */
-    { 0x10081207, 29728 }, /* XF86Numeric7 */
-    { 0x10081208, 29741 }, /* XF86Numeric8 */
-    { 0x10081209, 29754 }, /* XF86Numeric9 */
-    { 0x1008120a, 29836 }, /* XF86NumericStar */
-    { 0x1008120b, 29819 }, /* XF86NumericPound */
-    { 0x1008120c, 29767 }, /* XF86NumericA */
-    { 0x1008120d, 29780 }, /* XF86NumericB */
-    { 0x1008120e, 29793 }, /* XF86NumericC */
-    { 0x1008120f, 29806 }, /* XF86NumericD */
-    { 0x10081210, 27511 }, /* XF86CameraFocus */
-    { 0x10081211, 31130 }, /* XF86WPSButton */
-    { 0x10081215, 27571 }, /* XF86CameraZoomIn */
-    { 0x10081216, 27588 }, /* XF86CameraZoomOut */
-    { 0x10081217, 27558 }, /* XF86CameraUp */
-    { 0x10081218, 27496 }, /* XF86CameraDown */
-    { 0x10081219, 27527 }, /* XF86CameraLeft */
-    { 0x1008121a, 27542 }, /* XF86CameraRight */
-    { 0x1008121b, 26932 }, /* XF86AttendantOn */
-    { 0x1008121c, 26915 }, /* XF86AttendantOff */
-    { 0x1008121d, 26948 }, /* XF86AttendantToggle */
-    { 0x1008121e, 28770 }, /* XF86LightsToggle */
-    { 0x10081230, 26816 }, /* XF86ALSToggle */
-    { 0x10081240, 27436 }, /* XF86Buttonconfig */
-    { 0x10081241, 30774 }, /* XF86Taskmanager */
-    { 0x10081242, 28223 }, /* XF86Journal */
-    { 0x10081243, 27726 }, /* XF86ControlPanel */
-    { 0x10081244, 26871 }, /* XF86AppSelect */
-    { 0x10081245, 30305 }, /* XF86Screensaver */
-    { 0x10081246, 31043 }, /* XF86VoiceCommand */
-    { 0x10081247, 26901 }, /* XF86Assistant */
-    { 0x10081249, 27905 }, /* XF86EmojiPicker */
-    { 0x1008124a, 27797 }, /* XF86Dictate */
-    { 0x10081250, 27418 }, /* XF86BrightnessMin */
-    { 0x10081251, 27400 }, /* XF86BrightnessMax */
-    { 0x10081260, 28378 }, /* XF86KbdInputAssistPrev */
-    { 0x10081261, 28327 }, /* XF86KbdInputAssistNext */
-    { 0x10081262, 28401 }, /* XF86KbdInputAssistPrevgroup */
-    { 0x10081263, 28350 }, /* XF86KbdInputAssistNextgroup */
-    { 0x10081264, 28277 }, /* XF86KbdInputAssistAccept */
-    { 0x10081265, 28302 }, /* XF86KbdInputAssistCancel */
-    { 0x10081266, 30140 }, /* XF86RightUp */
-    { 0x10081267, 30126 }, /* XF86RightDown */
-    { 0x10081268, 28745 }, /* XF86LeftUp */
-    { 0x10081269, 28732 }, /* XF86LeftDown */
-    { 0x1008126a, 30196 }, /* XF86RootMenu */
-    { 0x1008126b, 29348 }, /* XF86MediaTopMenu */
-    { 0x1008126c, 29635 }, /* XF86Numeric11 */
-    { 0x1008126d, 29649 }, /* XF86Numeric12 */
-    { 0x1008126e, 26998 }, /* XF86AudioDesc */
-    { 0x1008126f, 26773 }, /* XF863DMode */
-    { 0x10081270, 29569 }, /* XF86NextFavorite */
-    { 0x10081271, 30527 }, /* XF86StopRecord */
-    { 0x10081272, 29930 }, /* XF86PauseRecord */
-    { 0x10081273, 31035 }, /* XF86VOD */
-    { 0x10081274, 30932 }, /* XF86Unmute */
-    { 0x10081275, 27944 }, /* XF86FastReverse */
-    { 0x10081276, 30439 }, /* XF86SlowReverse */
-    { 0x10081277, 27775 }, /* XF86Data */
-    { 0x10081278, 29867 }, /* XF86OnScreenKeyboard */
-    { 0x10081279, 30044 }, /* XF86PrivacyScreenToggle */
-    { 0x1008127a, 30387 }, /* XF86SelectiveScreenshot */
-    { 0x10081290, 28832 }, /* XF86Macro1 */
-    { 0x10081291, 28963 }, /* XF86Macro2 */
-    { 0x10081292, 29094 }, /* XF86Macro3 */
-    { 0x10081293, 29117 }, /* XF86Macro4 */
-    { 0x10081294, 29128 }, /* XF86Macro5 */
-    { 0x10081295, 29139 }, /* XF86Macro6 */
-    { 0x10081296, 29150 }, /* XF86Macro7 */
-    { 0x10081297, 29161 }, /* XF86Macro8 */
-    { 0x10081298, 29172 }, /* XF86Macro9 */
-    { 0x10081299, 28843 }, /* XF86Macro10 */
-    { 0x1008129a, 28855 }, /* XF86Macro11 */
-    { 0x1008129b, 28867 }, /* XF86Macro12 */
-    { 0x1008129c, 28879 }, /* XF86Macro13 */
-    { 0x1008129d, 28891 }, /* XF86Macro14 */
-    { 0x1008129e, 28903 }, /* XF86Macro15 */
-    { 0x1008129f, 28915 }, /* XF86Macro16 */
-    { 0x100812a0, 28927 }, /* XF86Macro17 */
-    { 0x100812a1, 28939 }, /* XF86Macro18 */
-    { 0x100812a2, 28951 }, /* XF86Macro19 */
-    { 0x100812a3, 28974 }, /* XF86Macro20 */
-    { 0x100812a4, 28986 }, /* XF86Macro21 */
-    { 0x100812a5, 28998 }, /* XF86Macro22 */
-    { 0x100812a6, 29010 }, /* XF86Macro23 */
-    { 0x100812a7, 29022 }, /* XF86Macro24 */
-    { 0x100812a8, 29034 }, /* XF86Macro25 */
-    { 0x100812a9, 29046 }, /* XF86Macro26 */
-    { 0x100812aa, 29058 }, /* XF86Macro27 */
-    { 0x100812ab, 29070 }, /* XF86Macro28 */
-    { 0x100812ac, 29082 }, /* XF86Macro29 */
-    { 0x100812ad, 29105 }, /* XF86Macro30 */
-    { 0x100812b0, 29255 }, /* XF86MacroRecordStart */
-    { 0x100812b1, 29276 }, /* XF86MacroRecordStop */
-    { 0x100812b2, 29234 }, /* XF86MacroPresetCycle */
-    { 0x100812b3, 29183 }, /* XF86MacroPreset1 */
-    { 0x100812b4, 29200 }, /* XF86MacroPreset2 */
-    { 0x100812b5, 29217 }, /* XF86MacroPreset3 */
-    { 0x100812b8, 28429 }, /* XF86KbdLcdMenu1 */
-    { 0x100812b9, 28445 }, /* XF86KbdLcdMenu2 */
-    { 0x100812ba, 28461 }, /* XF86KbdLcdMenu3 */
-    { 0x100812bb, 28477 }, /* XF86KbdLcdMenu4 */
-    { 0x100812bc, 28493 }, /* XF86KbdLcdMenu5 */
-    { 0x1008fe01, 30579 }, /* XF86Switch_VT_1 */
-    { 0x1008fe02, 30646 }, /* XF86Switch_VT_2 */
-    { 0x1008fe03, 30662 }, /* XF86Switch_VT_3 */
-    { 0x1008fe04, 30678 }, /* XF86Switch_VT_4 */
-    { 0x1008fe05, 30694 }, /* XF86Switch_VT_5 */
-    { 0x1008fe06, 30710 }, /* XF86Switch_VT_6 */
-    { 0x1008fe07, 30726 }, /* XF86Switch_VT_7 */
-    { 0x1008fe08, 30742 }, /* XF86Switch_VT_8 */
-    { 0x1008fe09, 30758 }, /* XF86Switch_VT_9 */
-    { 0x1008fe0a, 30595 }, /* XF86Switch_VT_10 */
-    { 0x1008fe0b, 30612 }, /* XF86Switch_VT_11 */
-    { 0x1008fe0c, 30629 }, /* XF86Switch_VT_12 */
-    { 0x1008fe20, 30921 }, /* XF86Ungrab */
-    { 0x1008fe21, 27653 }, /* XF86ClearGrab */
-    { 0x1008fe22, 29554 }, /* XF86Next_VMode */
-    { 0x1008fe23, 30029 }, /* XF86Prev_VMode */
-    { 0x1008fe24, 28814 }, /* XF86LogWindowTree */
-    { 0x1008fe25, 28787 }, /* XF86LogGrabInfo */
-    { 0x1008ff01, 29422 }, /* XF86ModeLock */
-    { 0x1008ff02, 29480 }, /* XF86MonBrightnessUp */
-    { 0x1008ff03, 29458 }, /* XF86MonBrightnessDown */
-    { 0x1008ff04, 28509 }, /* XF86KbdLightOnOff */
-    { 0x1008ff05, 28257 }, /* XF86KbdBrightnessUp */
-    { 0x1008ff06, 28235 }, /* XF86KbdBrightnessDown */
-    { 0x1008ff07, 29435 }, /* XF86MonBrightnessCycle */
-    { 0x1008ff10, 30496 }, /* XF86Standby */
-    { 0x1008ff11, 27029 }, /* XF86AudioLowerVolume */
-    { 0x1008ff12, 27082 }, /* XF86AudioMute */
-    { 0x1008ff13, 27169 }, /* XF86AudioRaiseVolume */
-    { 0x1008ff14, 27125 }, /* XF86AudioPlay */
-    { 0x1008ff15, 27258 }, /* XF86AudioStop */
-    { 0x1008ff16, 27155 }, /* XF86AudioPrev */
-    { 0x1008ff17, 27096 }, /* XF86AudioNext */
-    { 0x1008ff18, 28166 }, /* XF86HomePage */
-    { 0x1008ff19, 29296 }, /* XF86Mail */
-    { 0x1008ff1a, 30508 }, /* XF86Start */
-    { 0x1008ff1b, 30365 }, /* XF86Search */
-    { 0x1008ff1c, 27210 }, /* XF86AudioRecord */
-    { 0x1008ff1d, 27468 }, /* XF86Calculator */
-    { 0x1008ff1e, 29377 }, /* XF86Memo */
-    { 0x1008ff1f, 30825 }, /* XF86ToDoList */
-    { 0x1008ff20, 27483 }, /* XF86Calendar */
-    { 0x1008ff21, 29985 }, /* XF86PowerDown */
-    { 0x1008ff22, 27707 }, /* XF86ContrastAdjust */
-    { 0x1008ff23, 30183 }, /* XF86RockerUp */
-    { 0x1008ff24, 30152 }, /* XF86RockerDown */
-    { 0x1008ff25, 30167 }, /* XF86RockerEnter */
-    { 0x1008ff26, 27281 }, /* XF86Back */
-    { 0x1008ff27, 28021 }, /* XF86Forward */
-    { 0x1008ff28, 30518 }, /* XF86Stop */
-    { 0x1008ff29, 30082 }, /* XF86Refresh */
-    { 0x1008ff2a, 29999 }, /* XF86PowerOff */
-    { 0x1008ff2b, 31074 }, /* XF86WakeUp */
-    { 0x1008ff2c, 27895 }, /* XF86Eject */
-    { 0x1008ff2d, 30289 }, /* XF86ScreenSaver */
-    { 0x1008ff2e, 31153 }, /* XF86WWW */
-    { 0x1008ff2f, 30429 }, /* XF86Sleep */
-    { 0x1008ff30, 27960 }, /* XF86Favorites */
-    { 0x1008ff31, 27110 }, /* XF86AudioPause */
-    { 0x1008ff32, 27050 }, /* XF86AudioMedia */
-    { 0x1008ff33, 29510 }, /* XF86MyComputer */
-    { 0x1008ff34, 30986 }, /* XF86VendorHome */
-    { 0x1008ff35, 28756 }, /* XF86LightBulb */
-    { 0x1008ff36, 30420 }, /* XF86Shop */
-    { 0x1008ff37, 28154 }, /* XF86History */
-    { 0x1008ff38, 29897 }, /* XF86OpenURL */
-    { 0x1008ff39, 26784 }, /* XF86AddFavorite */
-    { 0x1008ff3a, 28179 }, /* XF86HotLinks */
-    { 0x1008ff3b, 27360 }, /* XF86BrightnessAdjust */
-    { 0x1008ff3c, 27974 }, /* XF86Finance */
-    { 0x1008ff3d, 27677 }, /* XF86Community */
-    { 0x1008ff3e, 27242 }, /* XF86AudioRewind */
-    { 0x1008ff3f, 27290 }, /* XF86BackForward */
-    { 0x1008ff40, 28540 }, /* XF86Launch0 */
-    { 0x1008ff41, 28552 }, /* XF86Launch1 */
-    { 0x1008ff42, 28564 }, /* XF86Launch2 */
-    { 0x1008ff43, 28576 }, /* XF86Launch3 */
-    { 0x1008ff44, 28588 }, /* XF86Launch4 */
-    { 0x1008ff45, 28600 }, /* XF86Launch5 */
-    { 0x1008ff46, 28612 }, /* XF86Launch6 */
-    { 0x1008ff47, 28624 }, /* XF86Launch7 */
-    { 0x1008ff48, 28636 }, /* XF86Launch8 */
-    { 0x1008ff49, 28648 }, /* XF86Launch9 */
-    { 0x1008ff4a, 28660 }, /* XF86LaunchA */
-    { 0x1008ff4b, 28672 }, /* XF86LaunchB */
-    { 0x1008ff4c, 28684 }, /* XF86LaunchC */
-    { 0x1008ff4d, 28696 }, /* XF86LaunchD */
-    { 0x1008ff4e, 28708 }, /* XF86LaunchE */
-    { 0x1008ff4f, 28720 }, /* XF86LaunchF */
-    { 0x1008ff50, 26830 }, /* XF86ApplicationLeft */
-    { 0x1008ff51, 26850 }, /* XF86ApplicationRight */
-    { 0x1008ff52, 27341 }, /* XF86Book */
-    { 0x1008ff53, 27606 }, /* XF86CD */
-    { 0x1008ff54, 27453 }, /* XF86Calculater */
-    { 0x1008ff55, 27643 }, /* XF86Clear */
-    { 0x1008ff56, 27667 }, /* XF86Close */
-    { 0x1008ff57, 27743 }, /* XF86Copy */
-    { 0x1008ff58, 27752 }, /* XF86Cut */
-    { 0x1008ff59, 27809 }, /* XF86Display */
-    { 0x1008ff5a, 27868 }, /* XF86DOS */
-    { 0x1008ff5b, 27854 }, /* XF86Documents */
-    { 0x1008ff5c, 27921 }, /* XF86Excel */
-    { 0x1008ff5d, 27931 }, /* XF86Explorer */
-    { 0x1008ff5e, 28079 }, /* XF86Game */
-    { 0x1008ff5f, 28088 }, /* XF86Go */
-    { 0x1008ff60, 28212 }, /* XF86iTouch */
-    { 0x1008ff61, 28803 }, /* XF86LogOff */
-    { 0x1008ff62, 29321 }, /* XF86Market */
-    { 0x1008ff63, 29365 }, /* XF86Meeting */
-    { 0x1008ff65, 29386 }, /* XF86MenuKB */
-    { 0x1008ff66, 29397 }, /* XF86MenuPB */
-    { 0x1008ff67, 29525 }, /* XF86MySites */
-    { 0x1008ff68, 29537 }, /* XF86New */
-    { 0x1008ff69, 29545 }, /* XF86News */
-    { 0x1008ff6a, 29852 }, /* XF86OfficeHome */
-    { 0x1008ff6b, 29888 }, /* XF86Open */
-    { 0x1008ff6c, 29909 }, /* XF86Option */
-    { 0x1008ff6d, 29920 }, /* XF86Paste */
-    { 0x1008ff6e, 29946 }, /* XF86Phone */
-    { 0x1008ff70, 30068 }, /* XF86Q */
-    { 0x1008ff72, 30105 }, /* XF86Reply */
-    { 0x1008ff73, 30094 }, /* XF86Reload */
-    { 0x1008ff74, 30209 }, /* XF86RotateWindows */
-    { 0x1008ff75, 30265 }, /* XF86RotationPB */
-    { 0x1008ff76, 30227 }, /* XF86RotationKB */
-    { 0x1008ff77, 30280 }, /* XF86Save */
-    { 0x1008ff78, 30352 }, /* XF86ScrollUp */
-    { 0x1008ff79, 30337 }, /* XF86ScrollDown */
-    { 0x1008ff7a, 30321 }, /* XF86ScrollClick */
-    { 0x1008ff7b, 30411 }, /* XF86Send */
-    { 0x1008ff7c, 30455 }, /* XF86Spell */
-    { 0x1008ff7d, 30480 }, /* XF86SplitScreen */
-    { 0x1008ff7e, 30555 }, /* XF86Support */
-    { 0x1008ff7f, 30790 }, /* XF86TaskPane */
-    { 0x1008ff80, 30803 }, /* XF86Terminal */
-    { 0x1008ff81, 30838 }, /* XF86Tools */
-    { 0x1008ff82, 30910 }, /* XF86Travel */
-    { 0x1008ff84, 30967 }, /* XF86UserPB */
-    { 0x1008ff85, 30943 }, /* XF86User1KB */
-    { 0x1008ff86, 30955 }, /* XF86User2KB */
-    { 0x1008ff87, 31001 }, /* XF86Video */
-    { 0x1008ff88, 31096 }, /* XF86WheelButton */
-    { 0x1008ff89, 31121 }, /* XF86Word */
-    { 0x1008ff8a, 31161 }, /* XF86Xfer */
-    { 0x1008ff8b, 31181 }, /* XF86ZoomIn */
-    { 0x1008ff8c, 31192 }, /* XF86ZoomOut */
-    { 0x1008ff8d, 27272 }, /* XF86Away */
-    { 0x1008ff8e, 29408 }, /* XF86Messenger */
-    { 0x1008ff8f, 31085 }, /* XF86WebCam */
-    { 0x1008ff90, 29305 }, /* XF86MailForward */
-    { 0x1008ff91, 29972 }, /* XF86Pictures */
-    { 0x1008ff92, 29500 }, /* XF86Music */
-    { 0x1008ff93, 27306 }, /* XF86Battery */
-    { 0x1008ff94, 27327 }, /* XF86Bluetooth */
-    { 0x1008ff95, 31112 }, /* XF86WLAN */
-    { 0x1008ff96, 30978 }, /* XF86UWB */
-    { 0x1008ff97, 27012 }, /* XF86AudioForward */
-    { 0x1008ff98, 27226 }, /* XF86AudioRepeat */
-    { 0x1008ff99, 27190 }, /* XF86AudioRandomPlay */
-    { 0x1008ff9a, 30542 }, /* XF86Subtitle */
-    { 0x1008ff9b, 26978 }, /* XF86AudioCycleTrack */
-    { 0x1008ff9c, 27760 }, /* XF86CycleAngle */
-    { 0x1008ff9d, 28033 }, /* XF86FrameBack */
-    { 0x1008ff9e, 28047 }, /* XF86FrameForward */
-    { 0x1008ff9f, 30816 }, /* XF86Time */
-    { 0x1008ffa0, 30376 }, /* XF86Select */
-    { 0x1008ffa1, 31026 }, /* XF86View */
-    { 0x1008ffa2, 30848 }, /* XF86TopMenu */
-    { 0x1008ffa3, 30074 }, /* XF86Red */
-    { 0x1008ffa4, 28114 }, /* XF86Green */
-    { 0x1008ffa5, 31170 }, /* XF86Yellow */
-    { 0x1008ffa6, 27318 }, /* XF86Blue */
-    { 0x1008ffa7, 30567 }, /* XF86Suspend */
-    { 0x1008ffa8, 28140 }, /* XF86Hibernate */
-    { 0x1008ffa9, 30891 }, /* XF86TouchpadToggle */
-    { 0x1008ffb0, 30876 }, /* XF86TouchpadOn */
-    { 0x1008ffb1, 30860 }, /* XF86TouchpadOff */
-    { 0x1008ffb2, 27065 }, /* XF86AudioMicMute */
-    { 0x1008ffb3, 28527 }, /* XF86Keyboard */
-    { 0x1008ffb4, 31144 }, /* XF86WWAN */
-    { 0x1008ffb5, 30115 }, /* XF86RFKill */
-    { 0x1008ffb6, 27139 }, /* XF86AudioPreset */
-    { 0x1008ffb7, 30242 }, /* XF86RotationLockToggle */
-    { 0x1008ffb8, 28064 }, /* XF86FullScreen */
+    { 0x1000fe60, 11221 }, /* Dgrave_accent */
+    { 0x1000fe7e, 11449 }, /* Dtilde */
+    { 0x1000feb0, 11420 }, /* Dring_accent */
+    { 0x1000ff00, 11412 }, /* DRemove */
+    { 0x1000ff48, 16947 }, /* hpModelock1 */
+    { 0x1000ff49, 16959 }, /* hpModelock2 */
+    { 0x1000ff6c, 17051 }, /* hpReset */
+    { 0x1000ff6d, 17059 }, /* hpSystem */
+    { 0x1000ff6e, 17068 }, /* hpUser */
+    { 0x1000ff6f, 16836 }, /* hpClearLine */
+    { 0x1000ff70, 16897 }, /* hpInsertLine */
+    { 0x1000ff71, 16861 }, /* hpDeleteLine */
+    { 0x1000ff72, 16884 }, /* hpInsertChar */
+    { 0x1000ff73, 16848 }, /* hpDeleteChar */
+    { 0x1000ff74, 16818 }, /* hpBackTab */
+    { 0x1000ff75, 16915 }, /* hpKP_BackTab */
+    { 0x1000ff76, 12157 }, /* Ext16bit_L */
+    { 0x1000ff77, 12168 }, /* Ext16bit_R */
+    { 0x1004ff02, 21017 }, /* osfCopy */
+    { 0x1004ff03, 21025 }, /* osfCut */
+    { 0x1004ff04, 21224 }, /* osfPaste */
+    { 0x1004ff07, 20961 }, /* osfBackTab */
+    { 0x1004ff08, 20948 }, /* osfBackSpace */
+    { 0x1004ff0b, 21008 }, /* osfClear */
+    { 0x1004ff1b, 21087 }, /* osfEscape */
+    { 0x1004ff31, 20937 }, /* osfAddMode */
+    { 0x1004ff32, 21258 }, /* osfPrimaryPaste */
+    { 0x1004ff33, 21274 }, /* osfQuickPaste */
+    { 0x1004ff40, 21189 }, /* osfPageLeft */
+    { 0x1004ff41, 21214 }, /* osfPageUp */
+    { 0x1004ff42, 21177 }, /* osfPageDown */
+    { 0x1004ff43, 21201 }, /* osfPageRight */
+    { 0x1004ff44, 20925 }, /* osfActivate */
+    { 0x1004ff45, 21141 }, /* osfMenuBar */
+    { 0x1004ff51, 21125 }, /* osfLeft */
+    { 0x1004ff52, 21351 }, /* osfUp */
+    { 0x1004ff53, 21311 }, /* osfRight */
+    { 0x1004ff54, 21057 }, /* osfDown */
+    { 0x1004ff57, 21076 }, /* osfEndLine */
+    { 0x1004ff58, 20985 }, /* osfBeginLine */
+    { 0x1004ff59, 21065 }, /* osfEndData */
+    { 0x1004ff5a, 20972 }, /* osfBeginData */
+    { 0x1004ff5b, 21246 }, /* osfPrevMenu */
+    { 0x1004ff5c, 21165 }, /* osfNextMenu */
+    { 0x1004ff5d, 21233 }, /* osfPrevField */
+    { 0x1004ff5e, 21152 }, /* osfNextField */
+    { 0x1004ff60, 21320 }, /* osfSelect */
+    { 0x1004ff63, 21115 }, /* osfInsert */
+    { 0x1004ff65, 21343 }, /* osfUndo */
+    { 0x1004ff67, 21133 }, /* osfMenu */
+    { 0x1004ff69, 20998 }, /* osfCancel */
+    { 0x1004ff6a, 21107 }, /* osfHelp */
+    { 0x1004ff71, 21330 }, /* osfSelectAll */
+    { 0x1004ff72, 21042 }, /* osfDeselectAll */
+    { 0x1004ff73, 21288 }, /* osfReselect */
+    { 0x1004ff74, 21097 }, /* osfExtend */
+    { 0x1004ff78, 21300 }, /* osfRestore */
+    { 0x1004ffff, 21032 }, /* osfDelete */
+    { 0x1005ff00, 24093 }, /* SunFA_Grave */
+    { 0x1005ff01, 24064 }, /* SunFA_Circum */
+    { 0x1005ff02, 24105 }, /* SunFA_Tilde */
+    { 0x1005ff03, 24038 }, /* SunFA_Acute */
+    { 0x1005ff04, 24077 }, /* SunFA_Diaeresis */
+    { 0x1005ff05, 24050 }, /* SunFA_Cedilla */
+    { 0x1005ff10, 24024 }, /* SunF36 */
+    { 0x1005ff11, 24031 }, /* SunF37 */
+    { 0x1005ff60, 24241 }, /* SunSys_Req */
+    { 0x1005ff70, 24224 }, /* SunProps */
+    { 0x1005ff71, 24125 }, /* SunFront */
+    { 0x1005ff72, 24009 }, /* SunCopy */
+    { 0x1005ff73, 24134 }, /* SunOpen */
+    { 0x1005ff74, 24164 }, /* SunPaste */
+    { 0x1005ff75, 24017 }, /* SunCut */
+    { 0x1005ff76, 24173 }, /* SunPowerSwitch */
+    { 0x1005ff77, 23945 }, /* SunAudioLowerVolume */
+    { 0x1005ff78, 23965 }, /* SunAudioMute */
+    { 0x1005ff79, 23978 }, /* SunAudioRaiseVolume */
+    { 0x1005ff7a, 24260 }, /* SunVideoDegauss */
+    { 0x1005ff7b, 24276 }, /* SunVideoLowerBrightness */
+    { 0x1005ff7c, 24300 }, /* SunVideoRaiseBrightness */
+    { 0x1005ff7d, 24188 }, /* SunPowerSwitchShift */
+    { 0x100810f4, 27386 }, /* XF86BrightnessAuto */
+    { 0x100810f5, 27913 }, /* XF86DisplayOff */
+    { 0x10081166, 28331 }, /* XF86Info */
+    { 0x10081177, 26864 }, /* XF86AspectRatio */
+    { 0x10081185, 27987 }, /* XF86DVD */
+    { 0x10081188, 26947 }, /* XF86Audio */
+    { 0x10081192, 27704 }, /* XF86ChannelUp */
+    { 0x10081193, 27688 }, /* XF86ChannelDown */
+    { 0x1008119b, 27355 }, /* XF86Break */
+    { 0x100811a0, 31300 }, /* XF86VideoPhone */
+    { 0x100811a4, 31493 }, /* XF86ZoomReset */
+    { 0x100811a6, 27995 }, /* XF86Editor */
+    { 0x100811a8, 28223 }, /* XF86GraphicsEditor */
+    { 0x100811a9, 30198 }, /* XF86Presentation */
+    { 0x100811aa, 27876 }, /* XF86Database */
+    { 0x100811ac, 31349 }, /* XF86Voicemail */
+    { 0x100811ad, 26779 }, /* XF86Addressbook */
+    { 0x100811af, 27928 }, /* XF86DisplayToggle */
+    { 0x100811b0, 30733 }, /* XF86SpellCheck */
+    { 0x100811b6, 27783 }, /* XF86ContextMenu */
+    { 0x100811b7, 29477 }, /* XF86MediaRepeat */
+    { 0x100811b8, 26735 }, /* XF8610ChannelsUp */
+    { 0x100811b9, 26716 }, /* XF8610ChannelsDown */
+    { 0x100811ba, 28320 }, /* XF86Images */
+    { 0x100811bc, 29772 }, /* XF86NotificationCenter */
+    { 0x100811bd, 30142 }, /* XF86PickupPhone */
+    { 0x100811be, 28252 }, /* XF86HangupPhone */
+    { 0x100811d0, 28114 }, /* XF86Fn */
+    { 0x100811d1, 28121 }, /* XF86Fn_Esc */
+    { 0x100811e5, 28132 }, /* XF86FnRightShift */
+    { 0x10081200, 29795 }, /* XF86Numeric0 */
+    { 0x10081201, 29808 }, /* XF86Numeric1 */
+    { 0x10081202, 29849 }, /* XF86Numeric2 */
+    { 0x10081203, 29862 }, /* XF86Numeric3 */
+    { 0x10081204, 29875 }, /* XF86Numeric4 */
+    { 0x10081205, 29888 }, /* XF86Numeric5 */
+    { 0x10081206, 29901 }, /* XF86Numeric6 */
+    { 0x10081207, 29914 }, /* XF86Numeric7 */
+    { 0x10081208, 29927 }, /* XF86Numeric8 */
+    { 0x10081209, 29940 }, /* XF86Numeric9 */
+    { 0x1008120a, 30022 }, /* XF86NumericStar */
+    { 0x1008120b, 30005 }, /* XF86NumericPound */
+    { 0x1008120c, 29953 }, /* XF86NumericA */
+    { 0x1008120d, 29966 }, /* XF86NumericB */
+    { 0x1008120e, 29979 }, /* XF86NumericC */
+    { 0x1008120f, 29992 }, /* XF86NumericD */
+    { 0x10081210, 27586 }, /* XF86CameraFocus */
+    { 0x10081211, 31419 }, /* XF86WPSButton */
+    { 0x10081215, 27646 }, /* XF86CameraZoomIn */
+    { 0x10081216, 27663 }, /* XF86CameraZoomOut */
+    { 0x10081217, 27633 }, /* XF86CameraUp */
+    { 0x10081218, 27571 }, /* XF86CameraDown */
+    { 0x10081219, 27602 }, /* XF86CameraLeft */
+    { 0x1008121a, 27617 }, /* XF86CameraRight */
+    { 0x1008121b, 26911 }, /* XF86AttendantOn */
+    { 0x1008121c, 26894 }, /* XF86AttendantOff */
+    { 0x1008121d, 26927 }, /* XF86AttendantToggle */
+    { 0x1008121e, 28898 }, /* XF86LightsToggle */
+    { 0x10081230, 26795 }, /* XF86ALSToggle */
+    { 0x10081240, 27441 }, /* XF86Buttonconfig */
+    { 0x10081241, 31042 }, /* XF86Taskmanager */
+    { 0x10081242, 28351 }, /* XF86Journal */
+    { 0x10081243, 27818 }, /* XF86ControlPanel */
+    { 0x10081244, 26850 }, /* XF86AppSelect */
+    { 0x10081245, 30528 }, /* XF86Screensaver */
+    { 0x10081246, 31332 }, /* XF86VoiceCommand */
+    { 0x10081247, 26880 }, /* XF86Assistant */
+    { 0x10081249, 28016 }, /* XF86EmojiPicker */
+    { 0x1008124a, 27889 }, /* XF86Dictate */
+    { 0x1008124b, 27525 }, /* XF86CameraAccessEnable */
+    { 0x1008124c, 27501 }, /* XF86CameraAccessDisable */
+    { 0x1008124d, 27548 }, /* XF86CameraAccessToggle */
+    { 0x10081250, 27423 }, /* XF86BrightnessMin */
+    { 0x10081251, 27405 }, /* XF86BrightnessMax */
+    { 0x10081260, 28506 }, /* XF86KbdInputAssistPrev */
+    { 0x10081261, 28455 }, /* XF86KbdInputAssistNext */
+    { 0x10081262, 28529 }, /* XF86KbdInputAssistPrevgroup */
+    { 0x10081263, 28478 }, /* XF86KbdInputAssistNextgroup */
+    { 0x10081264, 28405 }, /* XF86KbdInputAssistAccept */
+    { 0x10081265, 28430 }, /* XF86KbdInputAssistCancel */
+    { 0x10081266, 30363 }, /* XF86RightUp */
+    { 0x10081267, 30349 }, /* XF86RightDown */
+    { 0x10081268, 28873 }, /* XF86LeftUp */
+    { 0x10081269, 28860 }, /* XF86LeftDown */
+    { 0x1008126a, 30419 }, /* XF86RootMenu */
+    { 0x1008126b, 29493 }, /* XF86MediaTopMenu */
+    { 0x1008126c, 29821 }, /* XF86Numeric11 */
+    { 0x1008126d, 29835 }, /* XF86Numeric12 */
+    { 0x1008126e, 26977 }, /* XF86AudioDesc */
+    { 0x1008126f, 26752 }, /* XF863DMode */
+    { 0x10081270, 29755 }, /* XF86NextFavorite */
+    { 0x10081271, 30795 }, /* XF86StopRecord */
+    { 0x10081272, 30116 }, /* XF86PauseRecord */
+    { 0x10081273, 31324 }, /* XF86VOD */
+    { 0x10081274, 31221 }, /* XF86Unmute */
+    { 0x10081275, 28055 }, /* XF86FastReverse */
+    { 0x10081276, 30699 }, /* XF86SlowReverse */
+    { 0x10081277, 27867 }, /* XF86Data */
+    { 0x10081278, 30053 }, /* XF86OnScreenKeyboard */
+    { 0x10081279, 30250 }, /* XF86PrivacyScreenToggle */
+    { 0x1008127a, 30610 }, /* XF86SelectiveScreenshot */
+    { 0x1008127b, 29739 }, /* XF86NextElement */
+    { 0x1008127c, 30230 }, /* XF86PreviousElement */
+    { 0x1008127d, 27251 }, /* XF86AutopilotEngageToggle */
+    { 0x1008127e, 29460 }, /* XF86MarkWaypoint */
+    { 0x1008127f, 30715 }, /* XF86Sos */
+    { 0x10081280, 29682 }, /* XF86NavChart */
+    { 0x10081281, 28097 }, /* XF86FishingChart */
+    { 0x10081282, 30668 }, /* XF86SingleRangeRadar */
+    { 0x10081283, 27968 }, /* XF86DualRangeRadar */
+    { 0x10081284, 30280 }, /* XF86RadarOverlay */
+    { 0x10081285, 31178 }, /* XF86TraditionalSonar */
+    { 0x10081286, 27742 }, /* XF86ClearvuSonar */
+    { 0x10081287, 30652 }, /* XF86SidevuSonar */
+    { 0x10081288, 29695 }, /* XF86NavInfo */
+    { 0x10081290, 28960 }, /* XF86Macro1 */
+    { 0x10081291, 29091 }, /* XF86Macro2 */
+    { 0x10081292, 29222 }, /* XF86Macro3 */
+    { 0x10081293, 29245 }, /* XF86Macro4 */
+    { 0x10081294, 29256 }, /* XF86Macro5 */
+    { 0x10081295, 29267 }, /* XF86Macro6 */
+    { 0x10081296, 29278 }, /* XF86Macro7 */
+    { 0x10081297, 29289 }, /* XF86Macro8 */
+    { 0x10081298, 29300 }, /* XF86Macro9 */
+    { 0x10081299, 28971 }, /* XF86Macro10 */
+    { 0x1008129a, 28983 }, /* XF86Macro11 */
+    { 0x1008129b, 28995 }, /* XF86Macro12 */
+    { 0x1008129c, 29007 }, /* XF86Macro13 */
+    { 0x1008129d, 29019 }, /* XF86Macro14 */
+    { 0x1008129e, 29031 }, /* XF86Macro15 */
+    { 0x1008129f, 29043 }, /* XF86Macro16 */
+    { 0x100812a0, 29055 }, /* XF86Macro17 */
+    { 0x100812a1, 29067 }, /* XF86Macro18 */
+    { 0x100812a2, 29079 }, /* XF86Macro19 */
+    { 0x100812a3, 29102 }, /* XF86Macro20 */
+    { 0x100812a4, 29114 }, /* XF86Macro21 */
+    { 0x100812a5, 29126 }, /* XF86Macro22 */
+    { 0x100812a6, 29138 }, /* XF86Macro23 */
+    { 0x100812a7, 29150 }, /* XF86Macro24 */
+    { 0x100812a8, 29162 }, /* XF86Macro25 */
+    { 0x100812a9, 29174 }, /* XF86Macro26 */
+    { 0x100812aa, 29186 }, /* XF86Macro27 */
+    { 0x100812ab, 29198 }, /* XF86Macro28 */
+    { 0x100812ac, 29210 }, /* XF86Macro29 */
+    { 0x100812ad, 29233 }, /* XF86Macro30 */
+    { 0x100812b0, 29383 }, /* XF86MacroRecordStart */
+    { 0x100812b1, 29404 }, /* XF86MacroRecordStop */
+    { 0x100812b2, 29362 }, /* XF86MacroPresetCycle */
+    { 0x100812b3, 29311 }, /* XF86MacroPreset1 */
+    { 0x100812b4, 29328 }, /* XF86MacroPreset2 */
+    { 0x100812b5, 29345 }, /* XF86MacroPreset3 */
+    { 0x100812b8, 28557 }, /* XF86KbdLcdMenu1 */
+    { 0x100812b9, 28573 }, /* XF86KbdLcdMenu2 */
+    { 0x100812ba, 28589 }, /* XF86KbdLcdMenu3 */
+    { 0x100812bb, 28605 }, /* XF86KbdLcdMenu4 */
+    { 0x100812bc, 28621 }, /* XF86KbdLcdMenu5 */
+    { 0x1008fe01, 30847 }, /* XF86Switch_VT_1 */
+    { 0x1008fe02, 30914 }, /* XF86Switch_VT_2 */
+    { 0x1008fe03, 30930 }, /* XF86Switch_VT_3 */
+    { 0x1008fe04, 30946 }, /* XF86Switch_VT_4 */
+    { 0x1008fe05, 30962 }, /* XF86Switch_VT_5 */
+    { 0x1008fe06, 30978 }, /* XF86Switch_VT_6 */
+    { 0x1008fe07, 30994 }, /* XF86Switch_VT_7 */
+    { 0x1008fe08, 31010 }, /* XF86Switch_VT_8 */
+    { 0x1008fe09, 31026 }, /* XF86Switch_VT_9 */
+    { 0x1008fe0a, 30863 }, /* XF86Switch_VT_10 */
+    { 0x1008fe0b, 30880 }, /* XF86Switch_VT_11 */
+    { 0x1008fe0c, 30897 }, /* XF86Switch_VT_12 */
+    { 0x1008fe20, 31210 }, /* XF86Ungrab */
+    { 0x1008fe21, 27728 }, /* XF86ClearGrab */
+    { 0x1008fe22, 29724 }, /* XF86Next_VMode */
+    { 0x1008fe23, 30215 }, /* XF86Prev_VMode */
+    { 0x1008fe24, 28942 }, /* XF86LogWindowTree */
+    { 0x1008fe25, 28915 }, /* XF86LogGrabInfo */
+    { 0x1008ff01, 29567 }, /* XF86ModeLock */
+    { 0x1008ff02, 29625 }, /* XF86MonBrightnessUp */
+    { 0x1008ff03, 29603 }, /* XF86MonBrightnessDown */
+    { 0x1008ff04, 28637 }, /* XF86KbdLightOnOff */
+    { 0x1008ff05, 28385 }, /* XF86KbdBrightnessUp */
+    { 0x1008ff06, 28363 }, /* XF86KbdBrightnessDown */
+    { 0x1008ff07, 29580 }, /* XF86MonBrightnessCycle */
+    { 0x1008ff10, 30764 }, /* XF86Standby */
+    { 0x1008ff11, 27008 }, /* XF86AudioLowerVolume */
+    { 0x1008ff12, 27061 }, /* XF86AudioMute */
+    { 0x1008ff13, 27148 }, /* XF86AudioRaiseVolume */
+    { 0x1008ff14, 27104 }, /* XF86AudioPlay */
+    { 0x1008ff15, 27237 }, /* XF86AudioStop */
+    { 0x1008ff16, 27134 }, /* XF86AudioPrev */
+    { 0x1008ff17, 27075 }, /* XF86AudioNext */
+    { 0x1008ff18, 28294 }, /* XF86HomePage */
+    { 0x1008ff19, 29424 }, /* XF86Mail */
+    { 0x1008ff1a, 30776 }, /* XF86Start */
+    { 0x1008ff1b, 30588 }, /* XF86Search */
+    { 0x1008ff1c, 27189 }, /* XF86AudioRecord */
+    { 0x1008ff1d, 27473 }, /* XF86Calculator */
+    { 0x1008ff1e, 29522 }, /* XF86Memo */
+    { 0x1008ff1f, 31093 }, /* XF86ToDoList */
+    { 0x1008ff20, 27488 }, /* XF86Calendar */
+    { 0x1008ff21, 30171 }, /* XF86PowerDown */
+    { 0x1008ff22, 27799 }, /* XF86ContrastAdjust */
+    { 0x1008ff23, 30406 }, /* XF86RockerUp */
+    { 0x1008ff24, 30375 }, /* XF86RockerDown */
+    { 0x1008ff25, 30390 }, /* XF86RockerEnter */
+    { 0x1008ff26, 27286 }, /* XF86Back */
+    { 0x1008ff27, 28149 }, /* XF86Forward */
+    { 0x1008ff28, 30786 }, /* XF86Stop */
+    { 0x1008ff29, 30305 }, /* XF86Refresh */
+    { 0x1008ff2a, 30185 }, /* XF86PowerOff */
+    { 0x1008ff2b, 31363 }, /* XF86WakeUp */
+    { 0x1008ff2c, 28006 }, /* XF86Eject */
+    { 0x1008ff2d, 30512 }, /* XF86ScreenSaver */
+    { 0x1008ff2e, 31442 }, /* XF86WWW */
+    { 0x1008ff2f, 30689 }, /* XF86Sleep */
+    { 0x1008ff30, 28071 }, /* XF86Favorites */
+    { 0x1008ff31, 27089 }, /* XF86AudioPause */
+    { 0x1008ff32, 27029 }, /* XF86AudioMedia */
+    { 0x1008ff33, 29655 }, /* XF86MyComputer */
+    { 0x1008ff34, 31275 }, /* XF86VendorHome */
+    { 0x1008ff35, 28884 }, /* XF86LightBulb */
+    { 0x1008ff36, 30643 }, /* XF86Shop */
+    { 0x1008ff37, 28282 }, /* XF86History */
+    { 0x1008ff38, 30083 }, /* XF86OpenURL */
+    { 0x1008ff39, 26763 }, /* XF86AddFavorite */
+    { 0x1008ff3a, 28307 }, /* XF86HotLinks */
+    { 0x1008ff3b, 27365 }, /* XF86BrightnessAdjust */
+    { 0x1008ff3c, 28085 }, /* XF86Finance */
+    { 0x1008ff3d, 27769 }, /* XF86Community */
+    { 0x1008ff3e, 27221 }, /* XF86AudioRewind */
+    { 0x1008ff3f, 27295 }, /* XF86BackForward */
+    { 0x1008ff40, 28668 }, /* XF86Launch0 */
+    { 0x1008ff41, 28680 }, /* XF86Launch1 */
+    { 0x1008ff42, 28692 }, /* XF86Launch2 */
+    { 0x1008ff43, 28704 }, /* XF86Launch3 */
+    { 0x1008ff44, 28716 }, /* XF86Launch4 */
+    { 0x1008ff45, 28728 }, /* XF86Launch5 */
+    { 0x1008ff46, 28740 }, /* XF86Launch6 */
+    { 0x1008ff47, 28752 }, /* XF86Launch7 */
+    { 0x1008ff48, 28764 }, /* XF86Launch8 */
+    { 0x1008ff49, 28776 }, /* XF86Launch9 */
+    { 0x1008ff4a, 28788 }, /* XF86LaunchA */
+    { 0x1008ff4b, 28800 }, /* XF86LaunchB */
+    { 0x1008ff4c, 28812 }, /* XF86LaunchC */
+    { 0x1008ff4d, 28824 }, /* XF86LaunchD */
+    { 0x1008ff4e, 28836 }, /* XF86LaunchE */
+    { 0x1008ff4f, 28848 }, /* XF86LaunchF */
+    { 0x1008ff50, 26809 }, /* XF86ApplicationLeft */
+    { 0x1008ff51, 26829 }, /* XF86ApplicationRight */
+    { 0x1008ff52, 27346 }, /* XF86Book */
+    { 0x1008ff53, 27681 }, /* XF86CD */
+    { 0x1008ff54, 27458 }, /* XF86Calculater */
+    { 0x1008ff55, 27718 }, /* XF86Clear */
+    { 0x1008ff56, 27759 }, /* XF86Close */
+    { 0x1008ff57, 27835 }, /* XF86Copy */
+    { 0x1008ff58, 27844 }, /* XF86Cut */
+    { 0x1008ff59, 27901 }, /* XF86Display */
+    { 0x1008ff5a, 27960 }, /* XF86DOS */
+    { 0x1008ff5b, 27946 }, /* XF86Documents */
+    { 0x1008ff5c, 28032 }, /* XF86Excel */
+    { 0x1008ff5d, 28042 }, /* XF86Explorer */
+    { 0x1008ff5e, 28207 }, /* XF86Game */
+    { 0x1008ff5f, 28216 }, /* XF86Go */
+    { 0x1008ff60, 28340 }, /* XF86iTouch */
+    { 0x1008ff61, 28931 }, /* XF86LogOff */
+    { 0x1008ff62, 29449 }, /* XF86Market */
+    { 0x1008ff63, 29510 }, /* XF86Meeting */
+    { 0x1008ff65, 29531 }, /* XF86MenuKB */
+    { 0x1008ff66, 29542 }, /* XF86MenuPB */
+    { 0x1008ff67, 29670 }, /* XF86MySites */
+    { 0x1008ff68, 29707 }, /* XF86New */
+    { 0x1008ff69, 29715 }, /* XF86News */
+    { 0x1008ff6a, 30038 }, /* XF86OfficeHome */
+    { 0x1008ff6b, 30074 }, /* XF86Open */
+    { 0x1008ff6c, 30095 }, /* XF86Option */
+    { 0x1008ff6d, 30106 }, /* XF86Paste */
+    { 0x1008ff6e, 30132 }, /* XF86Phone */
+    { 0x1008ff70, 30274 }, /* XF86Q */
+    { 0x1008ff72, 30328 }, /* XF86Reply */
+    { 0x1008ff73, 30317 }, /* XF86Reload */
+    { 0x1008ff74, 30432 }, /* XF86RotateWindows */
+    { 0x1008ff75, 30488 }, /* XF86RotationPB */
+    { 0x1008ff76, 30450 }, /* XF86RotationKB */
+    { 0x1008ff77, 30503 }, /* XF86Save */
+    { 0x1008ff78, 30575 }, /* XF86ScrollUp */
+    { 0x1008ff79, 30560 }, /* XF86ScrollDown */
+    { 0x1008ff7a, 30544 }, /* XF86ScrollClick */
+    { 0x1008ff7b, 30634 }, /* XF86Send */
+    { 0x1008ff7c, 30723 }, /* XF86Spell */
+    { 0x1008ff7d, 30748 }, /* XF86SplitScreen */
+    { 0x1008ff7e, 30823 }, /* XF86Support */
+    { 0x1008ff7f, 31058 }, /* XF86TaskPane */
+    { 0x1008ff80, 31071 }, /* XF86Terminal */
+    { 0x1008ff81, 31106 }, /* XF86Tools */
+    { 0x1008ff82, 31199 }, /* XF86Travel */
+    { 0x1008ff84, 31256 }, /* XF86UserPB */
+    { 0x1008ff85, 31232 }, /* XF86User1KB */
+    { 0x1008ff86, 31244 }, /* XF86User2KB */
+    { 0x1008ff87, 31290 }, /* XF86Video */
+    { 0x1008ff88, 31385 }, /* XF86WheelButton */
+    { 0x1008ff89, 31410 }, /* XF86Word */
+    { 0x1008ff8a, 31450 }, /* XF86Xfer */
+    { 0x1008ff8b, 31470 }, /* XF86ZoomIn */
+    { 0x1008ff8c, 31481 }, /* XF86ZoomOut */
+    { 0x1008ff8d, 27277 }, /* XF86Away */
+    { 0x1008ff8e, 29553 }, /* XF86Messenger */
+    { 0x1008ff8f, 31374 }, /* XF86WebCam */
+    { 0x1008ff90, 29433 }, /* XF86MailForward */
+    { 0x1008ff91, 30158 }, /* XF86Pictures */
+    { 0x1008ff92, 29645 }, /* XF86Music */
+    { 0x1008ff93, 27311 }, /* XF86Battery */
+    { 0x1008ff94, 27332 }, /* XF86Bluetooth */
+    { 0x1008ff95, 31401 }, /* XF86WLAN */
+    { 0x1008ff96, 31267 }, /* XF86UWB */
+    { 0x1008ff97, 26991 }, /* XF86AudioForward */
+    { 0x1008ff98, 27205 }, /* XF86AudioRepeat */
+    { 0x1008ff99, 27169 }, /* XF86AudioRandomPlay */
+    { 0x1008ff9a, 30810 }, /* XF86Subtitle */
+    { 0x1008ff9b, 26957 }, /* XF86AudioCycleTrack */
+    { 0x1008ff9c, 27852 }, /* XF86CycleAngle */
+    { 0x1008ff9d, 28161 }, /* XF86FrameBack */
+    { 0x1008ff9e, 28175 }, /* XF86FrameForward */
+    { 0x1008ff9f, 31084 }, /* XF86Time */
+    { 0x1008ffa0, 30599 }, /* XF86Select */
+    { 0x1008ffa1, 31315 }, /* XF86View */
+    { 0x1008ffa2, 31116 }, /* XF86TopMenu */
+    { 0x1008ffa3, 30297 }, /* XF86Red */
+    { 0x1008ffa4, 28242 }, /* XF86Green */
+    { 0x1008ffa5, 31459 }, /* XF86Yellow */
+    { 0x1008ffa6, 27323 }, /* XF86Blue */
+    { 0x1008ffa7, 30835 }, /* XF86Suspend */
+    { 0x1008ffa8, 28268 }, /* XF86Hibernate */
+    { 0x1008ffa9, 31159 }, /* XF86TouchpadToggle */
+    { 0x1008ffb0, 31144 }, /* XF86TouchpadOn */
+    { 0x1008ffb1, 31128 }, /* XF86TouchpadOff */
+    { 0x1008ffb2, 27044 }, /* XF86AudioMicMute */
+    { 0x1008ffb3, 28655 }, /* XF86Keyboard */
+    { 0x1008ffb4, 31433 }, /* XF86WWAN */
+    { 0x1008ffb5, 30338 }, /* XF86RFKill */
+    { 0x1008ffb6, 27118 }, /* XF86AudioPreset */
+    { 0x1008ffb7, 30465 }, /* XF86RotationLockToggle */
+    { 0x1008ffb8, 28192 }, /* XF86FullScreen */
 };