; -*- encoding:utf-8 -*-

DefineXKBSym(name,val) {
  global
  nlen := StrLen(name)
  KSYM%nlen% .= name . " "
  KSCD%nlen% .= val
}

DefineXKBSyms() {
  DefineXKBSym("BackSpace"         ,"U000008")
  DefineXKBSym("Tab"               ,"U000009")
  DefineXKBSym("Return"            ,"U00000D")
  DefineXKBSym("Delete"            ,"S___Del")
  DefineXKBSym("Multi_key"         ,"S__Comp")
  DefineXKBSym("Home"              ,"S__Home")
  DefineXKBSym("Left"              ,"S__Left")
  DefineXKBSym("Up"                ,"S____Up")
  DefineXKBSym("Right"             ,"S__Rght")
  DefineXKBSym("Down"              ,"S__Down")
  DefineXKBSym("Prior"             ,"S__PgUp")
  DefineXKBSym("Page_Up"           ,"S__PgUp")
  DefineXKBSym("Next"              ,"S__PgDn")
  DefineXKBSym("Page_Down"         ,"S__PgDn")
  DefineXKBSym("End"               ,"S___End")
  DefineXKBSym("Insert"            ,"S___Ins")
  DefineXKBSym("KP_Space"          ,"S__NSpc") ; not
  DefineXKBSym("KP_Tab"            ,"S__NTab") ; not
  DefineXKBSym("KP_Enter"          ,"S__NEnt")
  DefineXKBSym("KP_F1"             ,"S__NF_1") ; not
  DefineXKBSym("KP_F2"             ,"S__NF_2") ; not
  DefineXKBSym("KP_F3"             ,"S__NF_3") ; not
  DefineXKBSym("KP_F4"             ,"S__NF_4") ; not
  DefineXKBSym("KP_Home"           ,"S__NHom")
  DefineXKBSym("KP_Left"           ,"S__N_Le")
  DefineXKBSym("KP_Up"             ,"S__N_Up")
  DefineXKBSym("KP_Right"          ,"S__N_Ri")
  DefineXKBSym("KP_Down"           ,"S__N_Dn")
  DefineXKBSym("KP_Prior"          ,"S__NPUp")
  DefineXKBSym("KP_Page_Up"        ,"S__NPUp")
  DefineXKBSym("KP_Next"           ,"S__NPDn")
  DefineXKBSym("KP_Page_Down"      ,"S__NPDn")
  DefineXKBSym("KP_End"            ,"S__NEnd")
  DefineXKBSym("KP_Begin"          ,"S__NBgn") ; not
  DefineXKBSym("KP_Insert"         ,"S__NIns")
  DefineXKBSym("KP_Delete"         ,"S__NDel")
  DefineXKBSym("KP_Equal"          ,"S__NEql") ; not
  DefineXKBSym("KP_Multiply"       ,"S__NMul")
  DefineXKBSym("KP_Add"            ,"S__NAdd")
  DefineXKBSym("KP_Separator"      ,"S__NSep") ; not
  DefineXKBSym("KP_Subtract"       ,"S__NSub")
  DefineXKBSym("KP_Decimal"        ,"S__NDot")
  DefineXKBSym("KP_Divide"         ,"S__NDiv")
  DefineXKBSym("KP_0"              ,"S__N__0")
  DefineXKBSym("KP_1"              ,"S__N__1")
  DefineXKBSym("KP_2"              ,"S__N__2")
  DefineXKBSym("KP_3"              ,"S__N__3")
  DefineXKBSym("KP_4"              ,"S__N__4")
  DefineXKBSym("KP_5"              ,"S__N__5")
  DefineXKBSym("KP_6"              ,"S__N__6")
  DefineXKBSym("KP_7"              ,"S__N__7")
  DefineXKBSym("KP_8"              ,"S__N__8")
  DefineXKBSym("KP_9"              ,"S__N__9")
  DefineXKBSym("dead_acute"        ,"T__acut")
  DefineXKBSym("dead_grave"        ,"T__grav")
  DefineXKBSym("dead_cedilla"      ,"T__cedi")
  DefineXKBSym("dead_abovedot"     ,"T__abdt")
  DefineXKBSym("dead_ogonek"       ,"T__ogon")
  DefineXKBSym("dead_abovering"    ,"T__abrg")
  DefineXKBSym("dead_circumflex"   ,"T__cflx")
  DefineXKBSym("dead_caron"        ,"T__cron")
  DefineXKBSym("dead_breve"        ,"T__brve")
  DefineXKBSym("dead_belowdot"     ,"T__bldt")
  DefineXKBSym("dead_tilde"        ,"T__tlde")
  DefineXKBSym("dead_macron"       ,"T__mcrn")
  DefineXKBSym("dead_diaeresis"    ,"T__drss")
  DefineXKBSym("dead_doubleacute"  ,"T__dbac")
  DefineXKBSym("dead_stroke"       ,"T__strk")
  DefineXKBSym("U02DE"             ,"T__hook")
  DefineXKBSym("U21BB"             ,"T__turn")
  DefineXKBSym("dead_dasia"        ,"T_dasia")
  DefineXKBSym("dead_psili"        ,"T_psili")
  DefineXKBSym("dead_iota"         ,"T__iota")    ; not assigned a dead key in NEO
  DefineXKBSym("dead_voiced_sound" ,"T__vsnd")    ; not assigned a dead key in NEO
  DefineXKBSym("dead_semivoiced_sound","T__ssnd") ; not assigned a dead key in NEO
  DefineXKBSym("dead_horn"         ,"T__horn")    ; not assigned a dead key in NEO
  DefineXKBSym("dead_hook"         ,"T__hook")    ; not assigned a dead key in NEO
  DefineXKBSym("combining_grave"   ,"T__Cgrv")    ; not assigned a dead key in NEO
  DefineXKBSym("combining_acute"   ,"T__Cact")    ; not assigned a dead key in NEO
  DefineXKBSym("combining_belowdot","T__Cbdt")    ; not assigned a dead key in NEO
  DefineXKBSym("combining_hook"    ,"T__Chok")    ; not assigned a dead key in NEO
  DefineXKBSym("combining_tilde"   ,"T__Ctld")    ; not assigned a dead key in NEO
  DefineXKBSym("space"             ,"U000020")
  DefineXKBSym("dead_space"        ,"U0000A0")
  DefineXKBSym("exclam"            ,"U000021")
  DefineXKBSym("quotedbl"          ,"U000022")
  DefineXKBSym("numbersign"        ,"U000023")
  DefineXKBSym("dollar"            ,"U000024")
  DefineXKBSym("percent"           ,"U000025")
  DefineXKBSym("ampersand"         ,"U000026")
  DefineXKBSym("apostrophe"        ,"U000027")
  DefineXKBSym("quoteright"        ,"U000027")
  DefineXKBSym("parenleft"         ,"U000028")
  DefineXKBSym("parenright"        ,"U000029")
  DefineXKBSym("asterisk"          ,"U00002A")
  DefineXKBSym("plus"              ,"U00002B")
  DefineXKBSym("comma"             ,"U00002C")
  DefineXKBSym("minus"             ,"U00002D")
  DefineXKBSym("period"            ,"U00002E")
  DefineXKBSym("slash"             ,"U00002F")
  DefineXKBSym("0"                 ,"U000030")
  DefineXKBSym("1"                 ,"U000031")
  DefineXKBSym("2"                 ,"U000032")
  DefineXKBSym("3"                 ,"U000033")
  DefineXKBSym("4"                 ,"U000034")
  DefineXKBSym("5"                 ,"U000035")
  DefineXKBSym("6"                 ,"U000036")
  DefineXKBSym("7"                 ,"U000037")
  DefineXKBSym("8"                 ,"U000038")
  DefineXKBSym("9"                 ,"U000039")
  DefineXKBSym("colon"             ,"U00003A")
  DefineXKBSym("semicolon"         ,"U00003B")
  DefineXKBSym("less"              ,"U00003C")
  DefineXKBSym("equal"             ,"U00003D")
  DefineXKBSym("greater"           ,"U00003E")
  DefineXKBSym("question"          ,"U00003F")
  DefineXKBSym("at"                ,"U000040")
  DefineXKBSym("A"                 ,"U000041")
  DefineXKBSym("B"                 ,"U000042")
  DefineXKBSym("C"                 ,"U000043")
  DefineXKBSym("D"                 ,"U000044")
  DefineXKBSym("E"                 ,"U000045")
  DefineXKBSym("F"                 ,"U000046")
  DefineXKBSym("G"                 ,"U000047")
  DefineXKBSym("H"                 ,"U000048")
  DefineXKBSym("I"                 ,"U000049")
  DefineXKBSym("J"                 ,"U00004A")
  DefineXKBSym("K"                 ,"U00004B")
  DefineXKBSym("L"                 ,"U00004C")
  DefineXKBSym("M"                 ,"U00004D")
  DefineXKBSym("N"                 ,"U00004E")
  DefineXKBSym("O"                 ,"U00004F")
  DefineXKBSym("P"                 ,"U000050")
  DefineXKBSym("Q"                 ,"U000051")
  DefineXKBSym("R"                 ,"U000052")
  DefineXKBSym("S"                 ,"U000053")
  DefineXKBSym("T"                 ,"U000054")
  DefineXKBSym("U"                 ,"U000055")
  DefineXKBSym("V"                 ,"U000056")
  DefineXKBSym("W"                 ,"U000057")
  DefineXKBSym("X"                 ,"U000058")
  DefineXKBSym("Y"                 ,"U000059")
  DefineXKBSym("Z"                 ,"U00005A")
  DefineXKBSym("bracketleft"       ,"U00005B")
  DefineXKBSym("backslash"         ,"U00005C")
  DefineXKBSym("bracketright"      ,"U00005D")
  DefineXKBSym("asciicircum"       ,"U00005E")
  DefineXKBSym("underscore"        ,"U00005F")
  DefineXKBSym("grave"             ,"U000060")
  DefineXKBSym("quoteleft"         ,"U000060")
  DefineXKBSym("a"                 ,"U000061")
  DefineXKBSym("b"                 ,"U000062")
  DefineXKBSym("c"                 ,"U000063")
  DefineXKBSym("d"                 ,"U000064")
  DefineXKBSym("e"                 ,"U000065")
  DefineXKBSym("f"                 ,"U000066")
  DefineXKBSym("g"                 ,"U000067")
  DefineXKBSym("h"                 ,"U000068")
  DefineXKBSym("i"                 ,"U000069")
  DefineXKBSym("j"                 ,"U00006A")
  DefineXKBSym("k"                 ,"U00006B")
  DefineXKBSym("l"                 ,"U00006C")
  DefineXKBSym("m"                 ,"U00006D")
  DefineXKBSym("n"                 ,"U00006E")
  DefineXKBSym("o"                 ,"U00006F")
  DefineXKBSym("p"                 ,"U000070")
  DefineXKBSym("q"                 ,"U000071")
  DefineXKBSym("r"                 ,"U000072")
  DefineXKBSym("s"                 ,"U000073")
  DefineXKBSym("t"                 ,"U000074")
  DefineXKBSym("u"                 ,"U000075")
  DefineXKBSym("v"                 ,"U000076")
  DefineXKBSym("w"                 ,"U000077")
  DefineXKBSym("x"                 ,"U000078")
  DefineXKBSym("y"                 ,"U000079")
  DefineXKBSym("z"                 ,"U00007A")
  DefineXKBSym("braceleft"         ,"U00007B")
  DefineXKBSym("bar"               ,"U00007C")
  DefineXKBSym("braceright"        ,"U00007D")
  DefineXKBSym("asciitilde"        ,"U00007E")
  DefineXKBSym("ſ"                 ,"U00017F")

; following codes are auto-generated from keysymdef.h (manually disabled if already defined or override)

;  DefineXKBSym("BackSpace","U00232B")
;  DefineXKBSym("Tab","U0021E5")
;  DefineXKBSym("Return","U0023CE")
;  DefineXKBSym("Escape","U002327")
;  DefineXKBSym("Delete","U002326")
;  DefineXKBSym("Multi_key","U00266B")
;  DefineXKBSym("Home","U0021F1")
;  DefineXKBSym("Left","U0021E0")
;  DefineXKBSym("Up","U0021E1")
;  DefineXKBSym("Right","U0021E2")
;  DefineXKBSym("Down","U0021E3")
;  DefineXKBSym("Prior","U0021DE")
;  DefineXKBSym("Page_Up","U0021DE")
;  DefineXKBSym("Next","U0021DF")
;  DefineXKBSym("Page_Down","U0021DF")
;  DefineXKBSym("End","U0021F2")
;  DefineXKBSym("Insert","U002380")
;  DefineXKBSym("KP_Enter","U002386")
;  DefineXKBSym("KP_Home","U0021F1")
;  DefineXKBSym("KP_Left","U0021E0")
;  DefineXKBSym("KP_Up","U0021E1")
;  DefineXKBSym("KP_Right","U0021E2")
;  DefineXKBSym("KP_Down","U0021E3")
;  DefineXKBSym("KP_Prior","U0021DE")
;  DefineXKBSym("KP_Page_Up","U0021DE")
;  DefineXKBSym("KP_Next","U0021DF")
;  DefineXKBSym("KP_Page_Down","U0021DF")
;  DefineXKBSym("KP_End","U0021F2")
;  DefineXKBSym("KP_Insert","U002380")
;  DefineXKBSym("KP_Delete","U002326")
;  DefineXKBSym("KP_Multiply","U00002A")
;  DefineXKBSym("KP_Add","U00002B")
;  DefineXKBSym("KP_Subtract","U00002D")
;  DefineXKBSym("KP_Decimal","U002396")
;  DefineXKBSym("KP_Divide","U002215")
;  DefineXKBSym("KP_0","U000030")
;  DefineXKBSym("KP_1","U000031")
;  DefineXKBSym("KP_2","U000032")
;  DefineXKBSym("KP_3","U000033")
;  DefineXKBSym("KP_4","U000034")
;  DefineXKBSym("KP_5","U000035")
;  DefineXKBSym("KP_6","U000036")
;  DefineXKBSym("KP_7","U000037")
;  DefineXKBSym("KP_8","U000038")
;  DefineXKBSym("KP_9","U000039")
  DefineXKBSym("Shift_L","U0021E7")
  DefineXKBSym("Shift_R","U0021E7")
  DefineXKBSym("Shift_Lock","U0021E7")
;  DefineXKBSym("ISO_Left_Tab","U0021E4")
;  DefineXKBSym("dead_grave","U000060")
;  DefineXKBSym("dead_acute","U0002CA")
;  DefineXKBSym("dead_circumflex","U00005E")
;  DefineXKBSym("dead_tilde","U00007E")
;  DefineXKBSym("dead_macron","U0002C9")
;  DefineXKBSym("dead_breve","U000306")
;  DefineXKBSym("dead_abovedot","U0002D9")
;  DefineXKBSym("dead_diaeresis","U0000A8")
;  DefineXKBSym("dead_abovering","U0002DA")
;  DefineXKBSym("dead_doubleacute","U0002DD")
;  DefineXKBSym("dead_caron","U0002C7")
;  DefineXKBSym("dead_cedilla","U0000B8")
;  DefineXKBSym("dead_ogonek","U0002DB")
;  DefineXKBSym("dead_belowdot","U000323")
;  DefineXKBSym("dead_stroke","U000335")
;  DefineXKBSym("space","U000020")
;  DefineXKBSym("exclam","U000021")
;  DefineXKBSym("quotedbl","U000022")
;  DefineXKBSym("numbersign","U000023")
;  DefineXKBSym("dollar","U000024")
;  DefineXKBSym("percent","U000025")
;  DefineXKBSym("ampersand","U000026")
;  DefineXKBSym("apostrophe","U000027")
;  DefineXKBSym("parenleft","U000028")
;  DefineXKBSym("parenright","U000029")
;  DefineXKBSym("asterisk","U00002A")
;  DefineXKBSym("plus","U00002B")
;  DefineXKBSym("comma","U00002C")
;  DefineXKBSym("minus","U00002D")
;  DefineXKBSym("period","U00002E")
;  DefineXKBSym("slash","U00002F")
;  DefineXKBSym("0","U000030")
;  DefineXKBSym("1","U000031")
;  DefineXKBSym("2","U000032")
;  DefineXKBSym("3","U000033")
;  DefineXKBSym("4","U000034")
;  DefineXKBSym("5","U000035")
;  DefineXKBSym("6","U000036")
;  DefineXKBSym("7","U000037")
;  DefineXKBSym("8","U000038")
;  DefineXKBSym("9","U000039")
;  DefineXKBSym("colon","U00003A")
;  DefineXKBSym("semicolon","U00003B")
;  DefineXKBSym("less","U00003C")
;  DefineXKBSym("equal","U00003D")
;  DefineXKBSym("greater","U00003E")
;  DefineXKBSym("question","U00003F")
;  DefineXKBSym("at","U000040")
;  DefineXKBSym("A","U000041")
;  DefineXKBSym("B","U000042")
;  DefineXKBSym("C","U000043")
;  DefineXKBSym("D","U000044")
;  DefineXKBSym("E","U000045")
;  DefineXKBSym("F","U000046")
;  DefineXKBSym("G","U000047")
;  DefineXKBSym("H","U000048")
;  DefineXKBSym("I","U000049")
;  DefineXKBSym("J","U00004A")
;  DefineXKBSym("K","U00004B")
;  DefineXKBSym("L","U00004C")
;  DefineXKBSym("M","U00004D")
;  DefineXKBSym("N","U00004E")
;  DefineXKBSym("O","U00004F")
;  DefineXKBSym("P","U000050")
;  DefineXKBSym("Q","U000051")
;  DefineXKBSym("R","U000052")
;  DefineXKBSym("S","U000053")
;  DefineXKBSym("T","U000054")
;  DefineXKBSym("U","U000055")
;  DefineXKBSym("V","U000056")
;  DefineXKBSym("W","U000057")
;  DefineXKBSym("X","U000058")
;  DefineXKBSym("Y","U000059")
;  DefineXKBSym("Z","U00005A")
;  DefineXKBSym("bracketleft","U00005B")
;  DefineXKBSym("backslash","U00005C")
;  DefineXKBSym("bracketright","U00005D")
;  DefineXKBSym("asciicircum","U00005E")
;  DefineXKBSym("underscore","U00005F")
;  DefineXKBSym("grave","U000060")
;  DefineXKBSym("a","U000061")
;  DefineXKBSym("b","U000062")
;  DefineXKBSym("c","U000063")
;  DefineXKBSym("d","U000064")
;  DefineXKBSym("e","U000065")
;  DefineXKBSym("f","U000066")
;  DefineXKBSym("g","U000067")
;  DefineXKBSym("h","U000068")
;  DefineXKBSym("i","U000069")
;  DefineXKBSym("j","U00006A")
;  DefineXKBSym("k","U00006B")
;  DefineXKBSym("l","U00006C")
;  DefineXKBSym("m","U00006D")
;  DefineXKBSym("n","U00006E")
;  DefineXKBSym("o","U00006F")
;  DefineXKBSym("p","U000070")
;  DefineXKBSym("q","U000071")
;  DefineXKBSym("r","U000072")
;  DefineXKBSym("s","U000073")
;  DefineXKBSym("t","U000074")
;  DefineXKBSym("u","U000075")
;  DefineXKBSym("v","U000076")
;  DefineXKBSym("w","U000077")
;  DefineXKBSym("x","U000078")
;  DefineXKBSym("y","U000079")
;  DefineXKBSym("z","U00007A")
;  DefineXKBSym("braceleft","U00007B")
;  DefineXKBSym("bar","U00007C")
;  DefineXKBSym("braceright","U00007D")
;  DefineXKBSym("asciitilde","U00007E")
  DefineXKBSym("nobreakspace","U0000A0")
  DefineXKBSym("exclamdown","U0000A1")
  DefineXKBSym("cent","U0000A2")
  DefineXKBSym("sterling","U0000A3")
  DefineXKBSym("currency","U0000A4")
  DefineXKBSym("yen","U0000A5")
  DefineXKBSym("brokenbar","U0000A6")
  DefineXKBSym("section","U0000A7")
  DefineXKBSym("diaeresis","U0000A8")
  DefineXKBSym("copyright","U0000A9")
  DefineXKBSym("ordfeminine","U0000AA")
  DefineXKBSym("guillemotleft","U0000AB")
  DefineXKBSym("notsign","U0000AC")
  DefineXKBSym("hyphen","U0000AD")
  DefineXKBSym("registered","U0000AE")
  DefineXKBSym("macron","U0000AF")
  DefineXKBSym("degree","U0000B0")
  DefineXKBSym("plusminus","U0000B1")
  DefineXKBSym("twosuperior","U0000B2")
  DefineXKBSym("threesuperior","U0000B3")
  DefineXKBSym("acute","U0000B4")
  DefineXKBSym("mu","U0000B5")
  DefineXKBSym("paragraph","U0000B6")
  DefineXKBSym("periodcentered","U0000B7")
  DefineXKBSym("cedilla","U0000B8")
  DefineXKBSym("onesuperior","U0000B9")
  DefineXKBSym("masculine","U0000BA")
  DefineXKBSym("guillemotright","U0000BB")
  DefineXKBSym("onequarter","U0000BC")
  DefineXKBSym("onehalf","U0000BD")
  DefineXKBSym("threequarters","U0000BE")
  DefineXKBSym("questiondown","U0000BF")
  DefineXKBSym("Agrave","U0000C0")
  DefineXKBSym("Aacute","U0000C1")
  DefineXKBSym("Acircumflex","U0000C2")
  DefineXKBSym("Atilde","U0000C3")
  DefineXKBSym("Adiaeresis","U0000C4")
  DefineXKBSym("Aring","U0000C5")
  DefineXKBSym("AE","U0000C6")
  DefineXKBSym("Ccedilla","U0000C7")
  DefineXKBSym("Egrave","U0000C8")
  DefineXKBSym("Eacute","U0000C9")
  DefineXKBSym("Ecircumflex","U0000CA")
  DefineXKBSym("Ediaeresis","U0000CB")
  DefineXKBSym("Igrave","U0000CC")
  DefineXKBSym("Iacute","U0000CD")
  DefineXKBSym("Icircumflex","U0000CE")
  DefineXKBSym("Idiaeresis","U0000CF")
  DefineXKBSym("ETH","U0000D0")
  DefineXKBSym("Eth","U0000D0")                    ; deprecated
  DefineXKBSym("Ntilde","U0000D1")
  DefineXKBSym("Ograve","U0000D2")
  DefineXKBSym("Oacute","U0000D3")
  DefineXKBSym("Ocircumflex","U0000D4")
  DefineXKBSym("Otilde","U0000D5")
  DefineXKBSym("Odiaeresis","U0000D6")
  DefineXKBSym("multiply","U0000D7")
  DefineXKBSym("Oslash","U0000D8")
  DefineXKBSym("Ooblique","U0000D8")
  DefineXKBSym("Ugrave","U0000D9")
  DefineXKBSym("Uacute","U0000DA")
  DefineXKBSym("Ucircumflex","U0000DB")
  DefineXKBSym("Udiaeresis","U0000DC")
  DefineXKBSym("Yacute","U0000DD")
  DefineXKBSym("THORN","U0000DE")
  DefineXKBSym("Thorn","U0000DE")                  ; deprecated
  DefineXKBSym("ssharp","U0000DF")
  DefineXKBSym("agrave","U0000E0")
  DefineXKBSym("aacute","U0000E1")
  DefineXKBSym("acircumflex","U0000E2")
  DefineXKBSym("atilde","U0000E3")
  DefineXKBSym("adiaeresis","U0000E4")
  DefineXKBSym("aring","U0000E5")
  DefineXKBSym("ae","U0000E6")
  DefineXKBSym("ccedilla","U0000E7")
  DefineXKBSym("egrave","U0000E8")
  DefineXKBSym("eacute","U0000E9")
  DefineXKBSym("ecircumflex","U0000EA")
  DefineXKBSym("ediaeresis","U0000EB")
  DefineXKBSym("igrave","U0000EC")
  DefineXKBSym("iacute","U0000ED")
  DefineXKBSym("icircumflex","U0000EE")
  DefineXKBSym("idiaeresis","U0000EF")
  DefineXKBSym("eth","U0000F0")
  DefineXKBSym("ntilde","U0000F1")
  DefineXKBSym("ograve","U0000F2")
  DefineXKBSym("oacute","U0000F3")
  DefineXKBSym("ocircumflex","U0000F4")
  DefineXKBSym("otilde","U0000F5")
  DefineXKBSym("odiaeresis","U0000F6")
  DefineXKBSym("division","U0000F7")
  DefineXKBSym("oslash","U0000F8")
  DefineXKBSym("ooblique","U0000F8")
  DefineXKBSym("ugrave","U0000F9")
  DefineXKBSym("uacute","U0000FA")
  DefineXKBSym("ucircumflex","U0000FB")
  DefineXKBSym("udiaeresis","U0000FC")
  DefineXKBSym("yacute","U0000FD")
  DefineXKBSym("thorn","U0000FE")
  DefineXKBSym("ydiaeresis","U0000FF")
  DefineXKBSym("Aogonek","U000104")
  DefineXKBSym("breve","U0002D8")
  DefineXKBSym("Lstroke","U000141")
  DefineXKBSym("Lcaron","U00013D")
  DefineXKBSym("Sacute","U00015A")
  DefineXKBSym("Scaron","U000160")
  DefineXKBSym("Scedilla","U00015E")
  DefineXKBSym("Tcaron","U000164")
  DefineXKBSym("Zacute","U000179")
  DefineXKBSym("Zcaron","U00017D")
  DefineXKBSym("Zabovedot","U00017B")
  DefineXKBSym("aogonek","U000105")
  DefineXKBSym("ogonek","U0002DB")
  DefineXKBSym("lstroke","U000142")
  DefineXKBSym("lcaron","U00013E")
  DefineXKBSym("sacute","U00015B")
  DefineXKBSym("caron","U0002C7")
  DefineXKBSym("scaron","U000161")
  DefineXKBSym("scedilla","U00015F")
  DefineXKBSym("tcaron","U000165")
  DefineXKBSym("zacute","U00017A")
  DefineXKBSym("doubleacute","U0002DD")
  DefineXKBSym("zcaron","U00017E")
  DefineXKBSym("zabovedot","U00017C")
  DefineXKBSym("Racute","U000154")
  DefineXKBSym("Abreve","U000102")
  DefineXKBSym("Lacute","U000139")
  DefineXKBSym("Cacute","U000106")
  DefineXKBSym("Ccaron","U00010C")
  DefineXKBSym("Eogonek","U000118")
  DefineXKBSym("Ecaron","U00011A")
  DefineXKBSym("Dcaron","U00010E")
  DefineXKBSym("Dstroke","U000110")
  DefineXKBSym("Nacute","U000143")
  DefineXKBSym("Ncaron","U000147")
  DefineXKBSym("Odoubleacute","U000150")
  DefineXKBSym("Rcaron","U000158")
  DefineXKBSym("Uring","U00016E")
  DefineXKBSym("Udoubleacute","U000170")
  DefineXKBSym("Tcedilla","U000162")
  DefineXKBSym("racute","U000155")
  DefineXKBSym("abreve","U000103")
  DefineXKBSym("lacute","U00013A")
  DefineXKBSym("cacute","U000107")
  DefineXKBSym("ccaron","U00010D")
  DefineXKBSym("eogonek","U000119")
  DefineXKBSym("ecaron","U00011B")
  DefineXKBSym("dcaron","U00010F")
  DefineXKBSym("dstroke","U000111")
  DefineXKBSym("nacute","U000144")
  DefineXKBSym("ncaron","U000148")
  DefineXKBSym("odoubleacute","U000151")
  DefineXKBSym("udoubleacute","U000171")
  DefineXKBSym("rcaron","U000159")
  DefineXKBSym("uring","U00016F")
  DefineXKBSym("tcedilla","U000163")
  DefineXKBSym("abovedot","U0002D9")
  DefineXKBSym("Hstroke","U000126")
  DefineXKBSym("Hcircumflex","U000124")
  DefineXKBSym("Iabovedot","U000130")
  DefineXKBSym("Gbreve","U00011E")
  DefineXKBSym("Jcircumflex","U000134")
  DefineXKBSym("hstroke","U000127")
  DefineXKBSym("hcircumflex","U000125")
  DefineXKBSym("idotless","U000131")
  DefineXKBSym("gbreve","U00011F")
  DefineXKBSym("jcircumflex","U000135")
  DefineXKBSym("Cabovedot","U00010A")
  DefineXKBSym("Ccircumflex","U000108")
  DefineXKBSym("Gabovedot","U000120")
  DefineXKBSym("Gcircumflex","U00011C")
  DefineXKBSym("Ubreve","U00016C")
  DefineXKBSym("Scircumflex","U00015C")
  DefineXKBSym("cabovedot","U00010B")
  DefineXKBSym("ccircumflex","U000109")
  DefineXKBSym("gabovedot","U000121")
  DefineXKBSym("gcircumflex","U00011D")
  DefineXKBSym("ubreve","U00016D")
  DefineXKBSym("scircumflex","U00015D")
  DefineXKBSym("kra","U000138")
  DefineXKBSym("Rcedilla","U000156")
  DefineXKBSym("Itilde","U000128")
  DefineXKBSym("Lcedilla","U00013B")
  DefineXKBSym("Emacron","U000112")
  DefineXKBSym("Gcedilla","U000122")
  DefineXKBSym("Tslash","U000166")
  DefineXKBSym("rcedilla","U000157")
  DefineXKBSym("itilde","U000129")
  DefineXKBSym("lcedilla","U00013C")
  DefineXKBSym("emacron","U000113")
  DefineXKBSym("gcedilla","U000123")
  DefineXKBSym("tslash","U000167")
  DefineXKBSym("ENG","U00014A")
  DefineXKBSym("eng","U00014B")
  DefineXKBSym("Amacron","U000100")
  DefineXKBSym("Iogonek","U00012E")
  DefineXKBSym("Eabovedot","U000116")
  DefineXKBSym("Imacron","U00012A")
  DefineXKBSym("Ncedilla","U000145")
  DefineXKBSym("Omacron","U00014C")
  DefineXKBSym("Kcedilla","U000136")
  DefineXKBSym("Uogonek","U000172")
  DefineXKBSym("Utilde","U000168")
  DefineXKBSym("Umacron","U00016A")
  DefineXKBSym("amacron","U000101")
  DefineXKBSym("iogonek","U00012F")
  DefineXKBSym("eabovedot","U000117")
  DefineXKBSym("imacron","U00012B")
  DefineXKBSym("ncedilla","U000146")
  DefineXKBSym("omacron","U00014D")
  DefineXKBSym("kcedilla","U000137")
  DefineXKBSym("uogonek","U000173")
  DefineXKBSym("utilde","U000169")
  DefineXKBSym("umacron","U00016B")
  DefineXKBSym("Babovedot","U001E02")
  DefineXKBSym("babovedot","U001E03")
  DefineXKBSym("Dabovedot","U001E0A")
  DefineXKBSym("Wgrave","U001E80")
  DefineXKBSym("Wacute","U001E82")
  DefineXKBSym("dabovedot","U001E0B")
  DefineXKBSym("Ygrave","U001EF2")
  DefineXKBSym("Fabovedot","U001E1E")
  DefineXKBSym("fabovedot","U001E1F")
  DefineXKBSym("Mabovedot","U001E40")
  DefineXKBSym("mabovedot","U001E41")
  DefineXKBSym("Pabovedot","U001E56")
  DefineXKBSym("wgrave","U001E81")
  DefineXKBSym("pabovedot","U001E57")
  DefineXKBSym("wacute","U001E83")
  DefineXKBSym("Sabovedot","U001E60")
  DefineXKBSym("ygrave","U001EF3")
  DefineXKBSym("Wdiaeresis","U001E84")
  DefineXKBSym("wdiaeresis","U001E85")
  DefineXKBSym("sabovedot","U001E61")
  DefineXKBSym("Wcircumflex","U000174")
  DefineXKBSym("Tabovedot","U001E6A")
  DefineXKBSym("Ycircumflex","U000176")
  DefineXKBSym("wcircumflex","U000175")
  DefineXKBSym("tabovedot","U001E6B")
  DefineXKBSym("ycircumflex","U000177")
  DefineXKBSym("OE","U000152")
  DefineXKBSym("oe","U000153")
  DefineXKBSym("Ydiaeresis","U000178")
  DefineXKBSym("overline","U00203E")
  DefineXKBSym("kana_fullstop","U003002")
  DefineXKBSym("kana_openingbracket","U00300C")
  DefineXKBSym("kana_closingbracket","U00300D")
  DefineXKBSym("kana_comma","U003001")
  DefineXKBSym("kana_conjunctive","U0030FB")
  DefineXKBSym("kana_WO","U0030F2")
  DefineXKBSym("kana_a","U0030A1")
  DefineXKBSym("kana_i","U0030A3")
  DefineXKBSym("kana_u","U0030A5")
  DefineXKBSym("kana_e","U0030A7")
  DefineXKBSym("kana_o","U0030A9")
  DefineXKBSym("kana_ya","U0030E3")
  DefineXKBSym("kana_yu","U0030E5")
  DefineXKBSym("kana_yo","U0030E7")
  DefineXKBSym("kana_tsu","U0030C3")
  DefineXKBSym("prolongedsound","U0030FC")
  DefineXKBSym("kana_A","U0030A2")
  DefineXKBSym("kana_I","U0030A4")
  DefineXKBSym("kana_U","U0030A6")
  DefineXKBSym("kana_E","U0030A8")
  DefineXKBSym("kana_O","U0030AA")
  DefineXKBSym("kana_KA","U0030AB")
  DefineXKBSym("kana_KI","U0030AD")
  DefineXKBSym("kana_KU","U0030AF")
  DefineXKBSym("kana_KE","U0030B1")
  DefineXKBSym("kana_KO","U0030B3")
  DefineXKBSym("kana_SA","U0030B5")
  DefineXKBSym("kana_SHI","U0030B7")
  DefineXKBSym("kana_SU","U0030B9")
  DefineXKBSym("kana_SE","U0030BB")
  DefineXKBSym("kana_SO","U0030BD")
  DefineXKBSym("kana_TA","U0030BF")
  DefineXKBSym("kana_CHI","U0030C1")
  DefineXKBSym("kana_TSU","U0030C4")
  DefineXKBSym("kana_TE","U0030C6")
  DefineXKBSym("kana_TO","U0030C8")
  DefineXKBSym("kana_NA","U0030CA")
  DefineXKBSym("kana_NI","U0030CB")
  DefineXKBSym("kana_NU","U0030CC")
  DefineXKBSym("kana_NE","U0030CD")
  DefineXKBSym("kana_NO","U0030CE")
  DefineXKBSym("kana_HA","U0030CF")
  DefineXKBSym("kana_HI","U0030D2")
  DefineXKBSym("kana_FU","U0030D5")
  DefineXKBSym("kana_HE","U0030D8")
  DefineXKBSym("kana_HO","U0030DB")
  DefineXKBSym("kana_MA","U0030DE")
  DefineXKBSym("kana_MI","U0030DF")
  DefineXKBSym("kana_MU","U0030E0")
  DefineXKBSym("kana_ME","U0030E1")
  DefineXKBSym("kana_MO","U0030E2")
  DefineXKBSym("kana_YA","U0030E4")
  DefineXKBSym("kana_YU","U0030E6")
  DefineXKBSym("kana_YO","U0030E8")
  DefineXKBSym("kana_RA","U0030E9")
  DefineXKBSym("kana_RI","U0030EA")
  DefineXKBSym("kana_RU","U0030EB")
  DefineXKBSym("kana_RE","U0030EC")
  DefineXKBSym("kana_RO","U0030ED")
  DefineXKBSym("kana_WA","U0030EF")
  DefineXKBSym("kana_N","U0030F3")
  DefineXKBSym("voicedsound","U00309B")
  DefineXKBSym("semivoicedsound","U00309C")
  DefineXKBSym("Farsi_0","U0006F0")
  DefineXKBSym("Farsi_1","U0006F1")
  DefineXKBSym("Farsi_2","U0006F2")
  DefineXKBSym("Farsi_3","U0006F3")
  DefineXKBSym("Farsi_4","U0006F4")
  DefineXKBSym("Farsi_5","U0006F5")
  DefineXKBSym("Farsi_6","U0006F6")
  DefineXKBSym("Farsi_7","U0006F7")
  DefineXKBSym("Farsi_8","U0006F8")
  DefineXKBSym("Farsi_9","U0006F9")
  DefineXKBSym("Arabic_percent","U00066A")
  DefineXKBSym("Arabic_superscript_alef","U000670")
  DefineXKBSym("Arabic_tteh","U000679")
  DefineXKBSym("Arabic_peh","U00067E")
  DefineXKBSym("Arabic_tcheh","U000686")
  DefineXKBSym("Arabic_ddal","U000688")
  DefineXKBSym("Arabic_rreh","U000691")
  DefineXKBSym("Arabic_comma","U00060C")
  DefineXKBSym("Arabic_fullstop","U0006D4")
  DefineXKBSym("Arabic_0","U000660")
  DefineXKBSym("Arabic_1","U000661")
  DefineXKBSym("Arabic_2","U000662")
  DefineXKBSym("Arabic_3","U000663")
  DefineXKBSym("Arabic_4","U000664")
  DefineXKBSym("Arabic_5","U000665")
  DefineXKBSym("Arabic_6","U000666")
  DefineXKBSym("Arabic_7","U000667")
  DefineXKBSym("Arabic_8","U000668")
  DefineXKBSym("Arabic_9","U000669")
  DefineXKBSym("Arabic_semicolon","U00061B")
  DefineXKBSym("Arabic_question_mark","U00061F")
  DefineXKBSym("Arabic_hamza","U000621")
  DefineXKBSym("Arabic_maddaonalef","U000622")
  DefineXKBSym("Arabic_hamzaonalef","U000623")
  DefineXKBSym("Arabic_hamzaonwaw","U000624")
  DefineXKBSym("Arabic_hamzaunderalef","U000625")
  DefineXKBSym("Arabic_hamzaonyeh","U000626")
  DefineXKBSym("Arabic_alef","U000627")
  DefineXKBSym("Arabic_beh","U000628")
  DefineXKBSym("Arabic_tehmarbuta","U000629")
  DefineXKBSym("Arabic_teh","U00062A")
  DefineXKBSym("Arabic_theh","U00062B")
  DefineXKBSym("Arabic_jeem","U00062C")
  DefineXKBSym("Arabic_hah","U00062D")
  DefineXKBSym("Arabic_khah","U00062E")
  DefineXKBSym("Arabic_dal","U00062F")
  DefineXKBSym("Arabic_thal","U000630")
  DefineXKBSym("Arabic_ra","U000631")
  DefineXKBSym("Arabic_zain","U000632")
  DefineXKBSym("Arabic_seen","U000633")
  DefineXKBSym("Arabic_sheen","U000634")
  DefineXKBSym("Arabic_sad","U000635")
  DefineXKBSym("Arabic_dad","U000636")
  DefineXKBSym("Arabic_tah","U000637")
  DefineXKBSym("Arabic_zah","U000638")
  DefineXKBSym("Arabic_ain","U000639")
  DefineXKBSym("Arabic_ghain","U00063A")
  DefineXKBSym("Arabic_tatweel","U000640")
  DefineXKBSym("Arabic_feh","U000641")
  DefineXKBSym("Arabic_qaf","U000642")
  DefineXKBSym("Arabic_kaf","U000643")
  DefineXKBSym("Arabic_lam","U000644")
  DefineXKBSym("Arabic_meem","U000645")
  DefineXKBSym("Arabic_noon","U000646")
  DefineXKBSym("Arabic_ha","U000647")
  DefineXKBSym("Arabic_waw","U000648")
  DefineXKBSym("Arabic_alefmaksura","U000649")
  DefineXKBSym("Arabic_yeh","U00064A")
  DefineXKBSym("Arabic_fathatan","U00064B")
  DefineXKBSym("Arabic_dammatan","U00064C")
  DefineXKBSym("Arabic_kasratan","U00064D")
  DefineXKBSym("Arabic_fatha","U00064E")
  DefineXKBSym("Arabic_damma","U00064F")
  DefineXKBSym("Arabic_kasra","U000650")
  DefineXKBSym("Arabic_shadda","U000651")
  DefineXKBSym("Arabic_sukun","U000652")
  DefineXKBSym("Arabic_madda_above","U000653")
  DefineXKBSym("Arabic_hamza_above","U000654")
  DefineXKBSym("Arabic_hamza_below","U000655")
  DefineXKBSym("Arabic_jeh","U000698")
  DefineXKBSym("Arabic_veh","U0006A4")
  DefineXKBSym("Arabic_keheh","U0006A9")
  DefineXKBSym("Arabic_gaf","U0006AF")
  DefineXKBSym("Arabic_noon_ghunna","U0006BA")
  DefineXKBSym("Arabic_heh_doachashmee","U0006BE")
  DefineXKBSym("Farsi_yeh","U0006CC")
  DefineXKBSym("Arabic_farsi_yeh","U0006CC")
  DefineXKBSym("Arabic_yeh_baree","U0006D2")
  DefineXKBSym("Arabic_heh_goal","U0006C1")
  DefineXKBSym("Cyrillic_GHE_bar","U000492")
  DefineXKBSym("Cyrillic_ghe_bar","U000493")
  DefineXKBSym("Cyrillic_ZHE_descender","U000496")
  DefineXKBSym("Cyrillic_zhe_descender","U000497")
  DefineXKBSym("Cyrillic_KA_descender","U00049A")
  DefineXKBSym("Cyrillic_ka_descender","U00049B")
  DefineXKBSym("Cyrillic_KA_vertstroke","U00049C")
  DefineXKBSym("Cyrillic_ka_vertstroke","U00049D")
  DefineXKBSym("Cyrillic_EN_descender","U0004A2")
  DefineXKBSym("Cyrillic_en_descender","U0004A3")
  DefineXKBSym("Cyrillic_U_straight","U0004AE")
  DefineXKBSym("Cyrillic_u_straight","U0004AF")
  DefineXKBSym("Cyrillic_U_straight_bar","U0004B0")
  DefineXKBSym("Cyrillic_u_straight_bar","U0004B1")
  DefineXKBSym("Cyrillic_HA_descender","U0004B2")
  DefineXKBSym("Cyrillic_ha_descender","U0004B3")
  DefineXKBSym("Cyrillic_CHE_descender","U0004B6")
  DefineXKBSym("Cyrillic_che_descender","U0004B7")
  DefineXKBSym("Cyrillic_CHE_vertstroke","U0004B8")
  DefineXKBSym("Cyrillic_che_vertstroke","U0004B9")
  DefineXKBSym("Cyrillic_SHHA","U0004BA")
  DefineXKBSym("Cyrillic_shha","U0004BB")
  DefineXKBSym("Cyrillic_SCHWA","U0004D8")
  DefineXKBSym("Cyrillic_schwa","U0004D9")
  DefineXKBSym("Cyrillic_I_macron","U0004E2")
  DefineXKBSym("Cyrillic_i_macron","U0004E3")
  DefineXKBSym("Cyrillic_O_bar","U0004E8")
  DefineXKBSym("Cyrillic_o_bar","U0004E9")
  DefineXKBSym("Cyrillic_U_macron","U0004EE")
  DefineXKBSym("Cyrillic_u_macron","U0004EF")
  DefineXKBSym("Serbian_dje","U000452")
  DefineXKBSym("Macedonia_gje","U000453")
  DefineXKBSym("Cyrillic_io","U000451")
  DefineXKBSym("Ukrainian_ie","U000454")
  DefineXKBSym("Macedonia_dse","U000455")
  DefineXKBSym("Ukrainian_i","U000456")
  DefineXKBSym("Ukrainian_yi","U000457")
  DefineXKBSym("Cyrillic_je","U000458")
  DefineXKBSym("Cyrillic_lje","U000459")
  DefineXKBSym("Cyrillic_nje","U00045A")
  DefineXKBSym("Serbian_tshe","U00045B")
  DefineXKBSym("Macedonia_kje","U00045C")
  DefineXKBSym("Ukrainian_ghe_with_upturn","U000491")
  DefineXKBSym("Byelorussian_shortu","U00045E")
  DefineXKBSym("Cyrillic_dzhe","U00045F")
  DefineXKBSym("numerosign","U002116")
  DefineXKBSym("Serbian_DJE","U000402")
  DefineXKBSym("Macedonia_GJE","U000403")
  DefineXKBSym("Cyrillic_IO","U000401")
  DefineXKBSym("Ukrainian_IE","U000404")
  DefineXKBSym("Macedonia_DSE","U000405")
  DefineXKBSym("Ukrainian_I","U000406")
  DefineXKBSym("Ukrainian_YI","U000407")
  DefineXKBSym("Cyrillic_JE","U000408")
  DefineXKBSym("Cyrillic_LJE","U000409")
  DefineXKBSym("Cyrillic_NJE","U00040A")
  DefineXKBSym("Serbian_TSHE","U00040B")
  DefineXKBSym("Macedonia_KJE","U00040C")
  DefineXKBSym("Ukrainian_GHE_WITH_UPTURN","U000490")
  DefineXKBSym("Byelorussian_SHORTU","U00040E")
  DefineXKBSym("Cyrillic_DZHE","U00040F")
  DefineXKBSym("Cyrillic_yu","U00044E")
  DefineXKBSym("Cyrillic_a","U000430")
  DefineXKBSym("Cyrillic_be","U000431")
  DefineXKBSym("Cyrillic_tse","U000446")
  DefineXKBSym("Cyrillic_de","U000434")
  DefineXKBSym("Cyrillic_ie","U000435")
  DefineXKBSym("Cyrillic_ef","U000444")
  DefineXKBSym("Cyrillic_ghe","U000433")
  DefineXKBSym("Cyrillic_ha","U000445")
  DefineXKBSym("Cyrillic_i","U000438")
  DefineXKBSym("Cyrillic_shorti","U000439")
  DefineXKBSym("Cyrillic_ka","U00043A")
  DefineXKBSym("Cyrillic_el","U00043B")
  DefineXKBSym("Cyrillic_em","U00043C")
  DefineXKBSym("Cyrillic_en","U00043D")
  DefineXKBSym("Cyrillic_o","U00043E")
  DefineXKBSym("Cyrillic_pe","U00043F")
  DefineXKBSym("Cyrillic_ya","U00044F")
  DefineXKBSym("Cyrillic_er","U000440")
  DefineXKBSym("Cyrillic_es","U000441")
  DefineXKBSym("Cyrillic_te","U000442")
  DefineXKBSym("Cyrillic_u","U000443")
  DefineXKBSym("Cyrillic_zhe","U000436")
  DefineXKBSym("Cyrillic_ve","U000432")
  DefineXKBSym("Cyrillic_softsign","U00044C")
  DefineXKBSym("Cyrillic_yeru","U00044B")
  DefineXKBSym("Cyrillic_ze","U000437")
  DefineXKBSym("Cyrillic_sha","U000448")
  DefineXKBSym("Cyrillic_e","U00044D")
  DefineXKBSym("Cyrillic_shcha","U000449")
  DefineXKBSym("Cyrillic_che","U000447")
  DefineXKBSym("Cyrillic_hardsign","U00044A")
  DefineXKBSym("Cyrillic_YU","U00042E")
  DefineXKBSym("Cyrillic_A","U000410")
  DefineXKBSym("Cyrillic_BE","U000411")
  DefineXKBSym("Cyrillic_TSE","U000426")
  DefineXKBSym("Cyrillic_DE","U000414")
  DefineXKBSym("Cyrillic_IE","U000415")
  DefineXKBSym("Cyrillic_EF","U000424")
  DefineXKBSym("Cyrillic_GHE","U000413")
  DefineXKBSym("Cyrillic_HA","U000425")
  DefineXKBSym("Cyrillic_I","U000418")
  DefineXKBSym("Cyrillic_SHORTI","U000419")
  DefineXKBSym("Cyrillic_KA","U00041A")
  DefineXKBSym("Cyrillic_EL","U00041B")
  DefineXKBSym("Cyrillic_EM","U00041C")
  DefineXKBSym("Cyrillic_EN","U00041D")
  DefineXKBSym("Cyrillic_O","U00041E")
  DefineXKBSym("Cyrillic_PE","U00041F")
  DefineXKBSym("Cyrillic_YA","U00042F")
  DefineXKBSym("Cyrillic_ER","U000420")
  DefineXKBSym("Cyrillic_ES","U000421")
  DefineXKBSym("Cyrillic_TE","U000422")
  DefineXKBSym("Cyrillic_U","U000423")
  DefineXKBSym("Cyrillic_ZHE","U000416")
  DefineXKBSym("Cyrillic_VE","U000412")
  DefineXKBSym("Cyrillic_SOFTSIGN","U00042C")
  DefineXKBSym("Cyrillic_YERU","U00042B")
  DefineXKBSym("Cyrillic_ZE","U000417")
  DefineXKBSym("Cyrillic_SHA","U000428")
  DefineXKBSym("Cyrillic_E","U00042D")
  DefineXKBSym("Cyrillic_SHCHA","U000429")
  DefineXKBSym("Cyrillic_CHE","U000427")
  DefineXKBSym("Cyrillic_HARDSIGN","U00042A")
  DefineXKBSym("Greek_ALPHAaccent","U000386")
  DefineXKBSym("Greek_EPSILONaccent","U000388")
  DefineXKBSym("Greek_ETAaccent","U000389")
  DefineXKBSym("Greek_IOTAaccent","U00038A")
  DefineXKBSym("Greek_IOTAdieresis","U0003AA")
  DefineXKBSym("Greek_OMICRONaccent","U00038C")
  DefineXKBSym("Greek_UPSILONaccent","U00038E")
  DefineXKBSym("Greek_UPSILONdieresis","U0003AB")
  DefineXKBSym("Greek_OMEGAaccent","U00038F")
  DefineXKBSym("Greek_accentdieresis","U000385")
  DefineXKBSym("Greek_horizbar","U002015")
  DefineXKBSym("Greek_alphaaccent","U0003AC")
  DefineXKBSym("Greek_epsilonaccent","U0003AD")
  DefineXKBSym("Greek_etaaccent","U0003AE")
  DefineXKBSym("Greek_iotaaccent","U0003AF")
  DefineXKBSym("Greek_iotadieresis","U0003CA")
  DefineXKBSym("Greek_iotaaccentdieresis","U000390")
  DefineXKBSym("Greek_omicronaccent","U0003CC")
  DefineXKBSym("Greek_upsilonaccent","U0003CD")
  DefineXKBSym("Greek_upsilondieresis","U0003CB")
  DefineXKBSym("Greek_upsilonaccentdieresis","U0003B0")
  DefineXKBSym("Greek_omegaaccent","U0003CE")
  DefineXKBSym("Greek_ALPHA","U000391")
  DefineXKBSym("Greek_BETA","U000392")
  DefineXKBSym("Greek_GAMMA","U000393")
  DefineXKBSym("Greek_DELTA","U000394")
  DefineXKBSym("Greek_EPSILON","U000395")
  DefineXKBSym("Greek_ZETA","U000396")
  DefineXKBSym("Greek_ETA","U000397")
  DefineXKBSym("Greek_THETA","U000398")
  DefineXKBSym("Greek_IOTA","U000399")
  DefineXKBSym("Greek_KAPPA","U00039A")
  DefineXKBSym("Greek_LAMDA","U00039B")
  DefineXKBSym("Greek_LAMBDA","U00039B")
  DefineXKBSym("Greek_MU","U00039C")
  DefineXKBSym("Greek_NU","U00039D")
  DefineXKBSym("Greek_XI","U00039E")
  DefineXKBSym("Greek_OMICRON","U00039F")
  DefineXKBSym("Greek_PI","U0003A0")
  DefineXKBSym("Greek_RHO","U0003A1")
  DefineXKBSym("Greek_SIGMA","U0003A3")
  DefineXKBSym("Greek_TAU","U0003A4")
  DefineXKBSym("Greek_UPSILON","U0003A5")
  DefineXKBSym("Greek_PHI","U0003A6")
  DefineXKBSym("Greek_CHI","U0003A7")
  DefineXKBSym("Greek_PSI","U0003A8")
  DefineXKBSym("Greek_OMEGA","U0003A9")
  DefineXKBSym("Greek_alpha","U0003B1")
  DefineXKBSym("Greek_beta","U0003B2")
  DefineXKBSym("Greek_gamma","U0003B3")
  DefineXKBSym("Greek_delta","U0003B4")
  DefineXKBSym("Greek_epsilon","U0003B5")
  DefineXKBSym("Greek_zeta","U0003B6")
  DefineXKBSym("Greek_eta","U0003B7")
  DefineXKBSym("Greek_theta","U0003B8")
  DefineXKBSym("Greek_iota","U0003B9")
  DefineXKBSym("Greek_kappa","U0003BA")
  DefineXKBSym("Greek_lamda","U0003BB")
  DefineXKBSym("Greek_lambda","U0003BB")
  DefineXKBSym("Greek_mu","U0003BC")
  DefineXKBSym("Greek_nu","U0003BD")
  DefineXKBSym("Greek_xi","U0003BE")
  DefineXKBSym("Greek_omicron","U0003BF")
  DefineXKBSym("Greek_pi","U0003C0")
  DefineXKBSym("Greek_rho","U0003C1")
  DefineXKBSym("Greek_sigma","U0003C3")
  DefineXKBSym("Greek_finalsmallsigma","U0003C2")
  DefineXKBSym("Greek_tau","U0003C4")
  DefineXKBSym("Greek_upsilon","U0003C5")
  DefineXKBSym("Greek_phi","U0003C6")
  DefineXKBSym("Greek_chi","U0003C7")
  DefineXKBSym("Greek_psi","U0003C8")
  DefineXKBSym("Greek_omega","U0003C9")
  DefineXKBSym("leftradical","U0023B7")
  DefineXKBSym("topleftradical","U00250C")
  DefineXKBSym("horizconnector","U002500")
  DefineXKBSym("topintegral","U002320")
  DefineXKBSym("botintegral","U002321")
  DefineXKBSym("vertconnector","U002502")
  DefineXKBSym("topleftsqbracket","U0023A1")
  DefineXKBSym("botleftsqbracket","U0023A3")
  DefineXKBSym("toprightsqbracket","U0023A4")
  DefineXKBSym("botrightsqbracket","U0023A6")
  DefineXKBSym("topleftparens","U00239B")
  DefineXKBSym("botleftparens","U00239D")
  DefineXKBSym("toprightparens","U00239E")
  DefineXKBSym("botrightparens","U0023A0")
  DefineXKBSym("leftmiddlecurlybrace","U0023A8")
  DefineXKBSym("rightmiddlecurlybrace","U0023AC")
  DefineXKBSym("lessthanequal","U002264")
  DefineXKBSym("notequal","U002260")
  DefineXKBSym("greaterthanequal","U002265")
  DefineXKBSym("integral","U00222B")
  DefineXKBSym("therefore","U002234")
  DefineXKBSym("variation","U00221D")
  DefineXKBSym("infinity","U00221E")
  DefineXKBSym("nabla","U002207")
  DefineXKBSym("approximate","U00223C")
  DefineXKBSym("similarequal","U002243")
  DefineXKBSym("ifonlyif","U0021D4")
  DefineXKBSym("implies","U0021D2")
  DefineXKBSym("identical","U002261")
  DefineXKBSym("radical","U00221A")
  DefineXKBSym("includedin","U002282")
  DefineXKBSym("includes","U002283")
  DefineXKBSym("intersection","U002229")
  DefineXKBSym("union","U00222A")
  DefineXKBSym("logicaland","U002227")
  DefineXKBSym("logicalor","U002228")
  DefineXKBSym("partialderivative","U002202")
  DefineXKBSym("function","U000192")
  DefineXKBSym("leftarrow","U002190")
  DefineXKBSym("uparrow","U002191")
  DefineXKBSym("rightarrow","U002192")
  DefineXKBSym("downarrow","U002193")
  DefineXKBSym("soliddiamond","U0025C6")
  DefineXKBSym("checkerboard","U002592")
  DefineXKBSym("ht","U002409")
  DefineXKBSym("ff","U00240C")
  DefineXKBSym("cr","U00240D")
  DefineXKBSym("lf","U00240A")
  DefineXKBSym("nl","U002424")
  DefineXKBSym("vt","U00240B")
  DefineXKBSym("lowrightcorner","U002518")
  DefineXKBSym("uprightcorner","U002510")
  DefineXKBSym("upleftcorner","U00250C")
  DefineXKBSym("lowleftcorner","U002514")
  DefineXKBSym("crossinglines","U00253C")
  DefineXKBSym("horizlinescan1","U0023BA")
  DefineXKBSym("horizlinescan3","U0023BB")
  DefineXKBSym("horizlinescan5","U002500")
  DefineXKBSym("horizlinescan7","U0023BC")
  DefineXKBSym("horizlinescan9","U0023BD")
  DefineXKBSym("leftt","U00251C")
  DefineXKBSym("rightt","U002524")
  DefineXKBSym("bott","U002534")
  DefineXKBSym("topt","U00252C")
  DefineXKBSym("vertbar","U002502")
  DefineXKBSym("emspace","U002003")
  DefineXKBSym("enspace","U002002")
  DefineXKBSym("em3space","U002004")
  DefineXKBSym("em4space","U002005")
  DefineXKBSym("digitspace","U002007")
  DefineXKBSym("punctspace","U002008")
  DefineXKBSym("thinspace","U002009")
  DefineXKBSym("hairspace","U00200A")
  DefineXKBSym("emdash","U002014")
  DefineXKBSym("endash","U002013")
  DefineXKBSym("signifblank","U002423")
  DefineXKBSym("ellipsis","U002026")
  DefineXKBSym("doubbaselinedot","U002025")
  DefineXKBSym("onethird","U002153")
  DefineXKBSym("twothirds","U002154")
  DefineXKBSym("onefifth","U002155")
  DefineXKBSym("twofifths","U002156")
  DefineXKBSym("threefifths","U002157")
  DefineXKBSym("fourfifths","U002158")
  DefineXKBSym("onesixth","U002159")
  DefineXKBSym("fivesixths","U00215A")
  DefineXKBSym("careof","U002105")
  DefineXKBSym("figdash","U002012")
  DefineXKBSym("leftanglebracket","U0027E8")
  DefineXKBSym("decimalpoint","U00002E")
  DefineXKBSym("rightanglebracket","U0027E9")
  DefineXKBSym("oneeighth","U00215B")
  DefineXKBSym("threeeighths","U00215C")
  DefineXKBSym("fiveeighths","U00215D")
  DefineXKBSym("seveneighths","U00215E")
  DefineXKBSym("trademark","U002122")
  DefineXKBSym("signaturemark","U002613")
  DefineXKBSym("leftopentriangle","U0025C1")
  DefineXKBSym("rightopentriangle","U0025B7")
  DefineXKBSym("emopencircle","U0025CB")
  DefineXKBSym("emopenrectangle","U0025AF")
  DefineXKBSym("leftsinglequotemark","U002018")
  DefineXKBSym("rightsinglequotemark","U002019")
  DefineXKBSym("leftdoublequotemark","U00201C")
  DefineXKBSym("rightdoublequotemark","U00201D")
  DefineXKBSym("prescription","U00211E")
  DefineXKBSym("minutes","U002032")
  DefineXKBSym("seconds","U002033")
  DefineXKBSym("latincross","U00271D")
  DefineXKBSym("filledrectbullet","U0025AC")
  DefineXKBSym("filledlefttribullet","U0025C0")
  DefineXKBSym("filledrighttribullet","U0025B6")
  DefineXKBSym("emfilledcircle","U0025CF")
  DefineXKBSym("emfilledrect","U0025AE")
  DefineXKBSym("enopencircbullet","U0025E6")
  DefineXKBSym("enopensquarebullet","U0025AB")
  DefineXKBSym("openrectbullet","U0025AD")
  DefineXKBSym("opentribulletup","U0025B3")
  DefineXKBSym("opentribulletdown","U0025BD")
  DefineXKBSym("openstar","U002606")
  DefineXKBSym("enfilledcircbullet","U002022")
  DefineXKBSym("enfilledsqbullet","U0025AA")
  DefineXKBSym("filledtribulletup","U0025B2")
  DefineXKBSym("filledtribulletdown","U0025BC")
  DefineXKBSym("leftpointer","U00261C")
  DefineXKBSym("rightpointer","U00261E")
  DefineXKBSym("club","U002663")
  DefineXKBSym("diamond","U002666")
  DefineXKBSym("heart","U002665")
  DefineXKBSym("maltesecross","U002720")
  DefineXKBSym("dagger","U002020")
  DefineXKBSym("doubledagger","U002021")
  DefineXKBSym("checkmark","U002713")
  DefineXKBSym("ballotcross","U002717")
  DefineXKBSym("musicalsharp","U00266F")
  DefineXKBSym("musicalflat","U00266D")
  DefineXKBSym("malesymbol","U002642")
  DefineXKBSym("femalesymbol","U002640")
  DefineXKBSym("telephone","U00260E")
  DefineXKBSym("telephonerecorder","U002315")
  DefineXKBSym("phonographcopyright","U002117")
  DefineXKBSym("caret","U002038")
  DefineXKBSym("singlelowquotemark","U00201A")
  DefineXKBSym("doublelowquotemark","U00201E")
  DefineXKBSym("leftcaret","U00003C")
  DefineXKBSym("rightcaret","U00003E")
  DefineXKBSym("downcaret","U002228")
  DefineXKBSym("upcaret","U002227")
  DefineXKBSym("overbar","U0000AF")
  DefineXKBSym("downtack","U0022A5")
  DefineXKBSym("upshoe","U002229")
  DefineXKBSym("downstile","U00230A")
  DefineXKBSym("underbar","U00005F")
  DefineXKBSym("jot","U002218")
  DefineXKBSym("quad","U002395")
  DefineXKBSym("uptack","U0022A4")
  DefineXKBSym("circle","U0025CB")
  DefineXKBSym("upstile","U002308")
  DefineXKBSym("downshoe","U00222A")
  DefineXKBSym("rightshoe","U002283")
  DefineXKBSym("leftshoe","U002282")
  DefineXKBSym("lefttack","U0022A2")
  DefineXKBSym("righttack","U0022A3")
  DefineXKBSym("hebrew_doublelowline","U002017")
  DefineXKBSym("hebrew_aleph","U0005D0")
  DefineXKBSym("hebrew_bet","U0005D1")
  DefineXKBSym("hebrew_beth","U0005D1")                     ; deprecated
  DefineXKBSym("hebrew_gimel","U0005D2")
  DefineXKBSym("hebrew_gimmel","U0005D2")                   ; deprecated
  DefineXKBSym("hebrew_dalet","U0005D3")
  DefineXKBSym("hebrew_daleth","U0005D3")                   ; deprecated
  DefineXKBSym("hebrew_he","U0005D4")
  DefineXKBSym("hebrew_waw","U0005D5")
  DefineXKBSym("hebrew_zain","U0005D6")
  DefineXKBSym("hebrew_zayin","U0005D6")                    ; deprecated
  DefineXKBSym("hebrew_chet","U0005D7")
  DefineXKBSym("hebrew_het","U0005D7")                      ; deprecated
  DefineXKBSym("hebrew_tet","U0005D8")
  DefineXKBSym("hebrew_teth","U0005D8")                     ; deprecated
  DefineXKBSym("hebrew_yod","U0005D9")
  DefineXKBSym("hebrew_finalkaph","U0005DA")
  DefineXKBSym("hebrew_kaph","U0005DB")
  DefineXKBSym("hebrew_lamed","U0005DC")
  DefineXKBSym("hebrew_finalmem","U0005DD")
  DefineXKBSym("hebrew_mem","U0005DE")
  DefineXKBSym("hebrew_finalnun","U0005DF")
  DefineXKBSym("hebrew_nun","U0005E0")
  DefineXKBSym("hebrew_samech","U0005E1")
  DefineXKBSym("hebrew_samekh","U0005E1")                   ; deprecated
  DefineXKBSym("hebrew_ayin","U0005E2")
  DefineXKBSym("hebrew_finalpe","U0005E3")
  DefineXKBSym("hebrew_pe","U0005E4")
  DefineXKBSym("hebrew_finalzade","U0005E5")
  DefineXKBSym("hebrew_finalzadi","U0005E5")                ; deprecated
  DefineXKBSym("hebrew_zade","U0005E6")
  DefineXKBSym("hebrew_zadi","U0005E6")                     ; deprecated
  DefineXKBSym("hebrew_qoph","U0005E7")
  DefineXKBSym("hebrew_kuf","U0005E7")                      ; deprecated
  DefineXKBSym("hebrew_resh","U0005E8")
  DefineXKBSym("hebrew_shin","U0005E9")
  DefineXKBSym("hebrew_taw","U0005EA")
  DefineXKBSym("hebrew_taf","U0005EA")                      ; deprecated
  DefineXKBSym("Thai_kokai","U000E01")
  DefineXKBSym("Thai_khokhai","U000E02")
  DefineXKBSym("Thai_khokhuat","U000E03")
  DefineXKBSym("Thai_khokhwai","U000E04")
  DefineXKBSym("Thai_khokhon","U000E05")
  DefineXKBSym("Thai_khorakhang","U000E06")
  DefineXKBSym("Thai_ngongu","U000E07")
  DefineXKBSym("Thai_chochan","U000E08")
  DefineXKBSym("Thai_choching","U000E09")
  DefineXKBSym("Thai_chochang","U000E0A")
  DefineXKBSym("Thai_soso","U000E0B")
  DefineXKBSym("Thai_chochoe","U000E0C")
  DefineXKBSym("Thai_yoying","U000E0D")
  DefineXKBSym("Thai_dochada","U000E0E")
  DefineXKBSym("Thai_topatak","U000E0F")
  DefineXKBSym("Thai_thothan","U000E10")
  DefineXKBSym("Thai_thonangmontho","U000E11")
  DefineXKBSym("Thai_thophuthao","U000E12")
  DefineXKBSym("Thai_nonen","U000E13")
  DefineXKBSym("Thai_dodek","U000E14")
  DefineXKBSym("Thai_totao","U000E15")
  DefineXKBSym("Thai_thothung","U000E16")
  DefineXKBSym("Thai_thothahan","U000E17")
  DefineXKBSym("Thai_thothong","U000E18")
  DefineXKBSym("Thai_nonu","U000E19")
  DefineXKBSym("Thai_bobaimai","U000E1A")
  DefineXKBSym("Thai_popla","U000E1B")
  DefineXKBSym("Thai_phophung","U000E1C")
  DefineXKBSym("Thai_fofa","U000E1D")
  DefineXKBSym("Thai_phophan","U000E1E")
  DefineXKBSym("Thai_fofan","U000E1F")
  DefineXKBSym("Thai_phosamphao","U000E20")
  DefineXKBSym("Thai_moma","U000E21")
  DefineXKBSym("Thai_yoyak","U000E22")
  DefineXKBSym("Thai_rorua","U000E23")
  DefineXKBSym("Thai_ru","U000E24")
  DefineXKBSym("Thai_loling","U000E25")
  DefineXKBSym("Thai_lu","U000E26")
  DefineXKBSym("Thai_wowaen","U000E27")
  DefineXKBSym("Thai_sosala","U000E28")
  DefineXKBSym("Thai_sorusi","U000E29")
  DefineXKBSym("Thai_sosua","U000E2A")
  DefineXKBSym("Thai_hohip","U000E2B")
  DefineXKBSym("Thai_lochula","U000E2C")
  DefineXKBSym("Thai_oang","U000E2D")
  DefineXKBSym("Thai_honokhuk","U000E2E")
  DefineXKBSym("Thai_paiyannoi","U000E2F")
  DefineXKBSym("Thai_saraa","U000E30")
  DefineXKBSym("Thai_maihanakat","U000E31")
  DefineXKBSym("Thai_saraaa","U000E32")
  DefineXKBSym("Thai_saraam","U000E33")
  DefineXKBSym("Thai_sarai","U000E34")
  DefineXKBSym("Thai_saraii","U000E35")
  DefineXKBSym("Thai_saraue","U000E36")
  DefineXKBSym("Thai_sarauee","U000E37")
  DefineXKBSym("Thai_sarau","U000E38")
  DefineXKBSym("Thai_sarauu","U000E39")
  DefineXKBSym("Thai_phinthu","U000E3A")
  DefineXKBSym("Thai_baht","U000E3F")
  DefineXKBSym("Thai_sarae","U000E40")
  DefineXKBSym("Thai_saraae","U000E41")
  DefineXKBSym("Thai_sarao","U000E42")
  DefineXKBSym("Thai_saraaimaimuan","U000E43")
  DefineXKBSym("Thai_saraaimaimalai","U000E44")
  DefineXKBSym("Thai_lakkhangyao","U000E45")
  DefineXKBSym("Thai_maiyamok","U000E46")
  DefineXKBSym("Thai_maitaikhu","U000E47")
  DefineXKBSym("Thai_maiek","U000E48")
  DefineXKBSym("Thai_maitho","U000E49")
  DefineXKBSym("Thai_maitri","U000E4A")
  DefineXKBSym("Thai_maichattawa","U000E4B")
  DefineXKBSym("Thai_thanthakhat","U000E4C")
  DefineXKBSym("Thai_nikhahit","U000E4D")
  DefineXKBSym("Thai_leksun","U000E50")
  DefineXKBSym("Thai_leknung","U000E51")
  DefineXKBSym("Thai_leksong","U000E52")
  DefineXKBSym("Thai_leksam","U000E53")
  DefineXKBSym("Thai_leksi","U000E54")
  DefineXKBSym("Thai_lekha","U000E55")
  DefineXKBSym("Thai_lekhok","U000E56")
  DefineXKBSym("Thai_lekchet","U000E57")
  DefineXKBSym("Thai_lekpaet","U000E58")
  DefineXKBSym("Thai_lekkao","U000E59")
  DefineXKBSym("Korean_Won","U0020A9")
  DefineXKBSym("Armenian_ligature_ew","U000587")
  DefineXKBSym("Armenian_full_stop","U000589")
  DefineXKBSym("Armenian_verjaket","U000589")
  DefineXKBSym("Armenian_separation_mark","U00055D")
  DefineXKBSym("Armenian_but","U00055D")
  DefineXKBSym("Armenian_hyphen","U00058A")
  DefineXKBSym("Armenian_yentamna","U00058A")
  DefineXKBSym("Armenian_exclam","U00055C")
  DefineXKBSym("Armenian_amanak","U00055C")
  DefineXKBSym("Armenian_accent","U00055B")
  DefineXKBSym("Armenian_shesht","U00055B")
  DefineXKBSym("Armenian_question","U00055E")
  DefineXKBSym("Armenian_paruyk","U00055E")
  DefineXKBSym("Armenian_AYB","U000531")
  DefineXKBSym("Armenian_ayb","U000561")
  DefineXKBSym("Armenian_BEN","U000532")
  DefineXKBSym("Armenian_ben","U000562")
  DefineXKBSym("Armenian_GIM","U000533")
  DefineXKBSym("Armenian_gim","U000563")
  DefineXKBSym("Armenian_DA","U000534")
  DefineXKBSym("Armenian_da","U000564")
  DefineXKBSym("Armenian_YECH","U000535")
  DefineXKBSym("Armenian_yech","U000565")
  DefineXKBSym("Armenian_ZA","U000536")
  DefineXKBSym("Armenian_za","U000566")
  DefineXKBSym("Armenian_E","U000537")
  DefineXKBSym("Armenian_e","U000567")
  DefineXKBSym("Armenian_AT","U000538")
  DefineXKBSym("Armenian_at","U000568")
  DefineXKBSym("Armenian_TO","U000539")
  DefineXKBSym("Armenian_to","U000569")
  DefineXKBSym("Armenian_ZHE","U00053A")
  DefineXKBSym("Armenian_zhe","U00056A")
  DefineXKBSym("Armenian_INI","U00053B")
  DefineXKBSym("Armenian_ini","U00056B")
  DefineXKBSym("Armenian_LYUN","U00053C")
  DefineXKBSym("Armenian_lyun","U00056C")
  DefineXKBSym("Armenian_KHE","U00053D")
  DefineXKBSym("Armenian_khe","U00056D")
  DefineXKBSym("Armenian_TSA","U00053E")
  DefineXKBSym("Armenian_tsa","U00056E")
  DefineXKBSym("Armenian_KEN","U00053F")
  DefineXKBSym("Armenian_ken","U00056F")
  DefineXKBSym("Armenian_HO","U000540")
  DefineXKBSym("Armenian_ho","U000570")
  DefineXKBSym("Armenian_DZA","U000541")
  DefineXKBSym("Armenian_dza","U000571")
  DefineXKBSym("Armenian_GHAT","U000542")
  DefineXKBSym("Armenian_ghat","U000572")
  DefineXKBSym("Armenian_TCHE","U000543")
  DefineXKBSym("Armenian_tche","U000573")
  DefineXKBSym("Armenian_MEN","U000544")
  DefineXKBSym("Armenian_men","U000574")
  DefineXKBSym("Armenian_HI","U000545")
  DefineXKBSym("Armenian_hi","U000575")
  DefineXKBSym("Armenian_NU","U000546")
  DefineXKBSym("Armenian_nu","U000576")
  DefineXKBSym("Armenian_SHA","U000547")
  DefineXKBSym("Armenian_sha","U000577")
  DefineXKBSym("Armenian_VO","U000548")
  DefineXKBSym("Armenian_vo","U000578")
  DefineXKBSym("Armenian_CHA","U000549")
  DefineXKBSym("Armenian_cha","U000579")
  DefineXKBSym("Armenian_PE","U00054A")
  DefineXKBSym("Armenian_pe","U00057A")
  DefineXKBSym("Armenian_JE","U00054B")
  DefineXKBSym("Armenian_je","U00057B")
  DefineXKBSym("Armenian_RA","U00054C")
  DefineXKBSym("Armenian_ra","U00057C")
  DefineXKBSym("Armenian_SE","U00054D")
  DefineXKBSym("Armenian_se","U00057D")
  DefineXKBSym("Armenian_VEV","U00054E")
  DefineXKBSym("Armenian_vev","U00057E")
  DefineXKBSym("Armenian_TYUN","U00054F")
  DefineXKBSym("Armenian_tyun","U00057F")
  DefineXKBSym("Armenian_RE","U000550")
  DefineXKBSym("Armenian_re","U000580")
  DefineXKBSym("Armenian_TSO","U000551")
  DefineXKBSym("Armenian_tso","U000581")
  DefineXKBSym("Armenian_VYUN","U000552")
  DefineXKBSym("Armenian_vyun","U000582")
  DefineXKBSym("Armenian_PYUR","U000553")
  DefineXKBSym("Armenian_pyur","U000583")
  DefineXKBSym("Armenian_KE","U000554")
  DefineXKBSym("Armenian_ke","U000584")
  DefineXKBSym("Armenian_O","U000555")
  DefineXKBSym("Armenian_o","U000585")
  DefineXKBSym("Armenian_FE","U000556")
  DefineXKBSym("Armenian_fe","U000586")
  DefineXKBSym("Armenian_apostrophe","U00055A")
  DefineXKBSym("Georgian_an","U0010D0")
  DefineXKBSym("Georgian_ban","U0010D1")
  DefineXKBSym("Georgian_gan","U0010D2")
  DefineXKBSym("Georgian_don","U0010D3")
  DefineXKBSym("Georgian_en","U0010D4")
  DefineXKBSym("Georgian_vin","U0010D5")
  DefineXKBSym("Georgian_zen","U0010D6")
  DefineXKBSym("Georgian_tan","U0010D7")
  DefineXKBSym("Georgian_in","U0010D8")
  DefineXKBSym("Georgian_kan","U0010D9")
  DefineXKBSym("Georgian_las","U0010DA")
  DefineXKBSym("Georgian_man","U0010DB")
  DefineXKBSym("Georgian_nar","U0010DC")
  DefineXKBSym("Georgian_on","U0010DD")
  DefineXKBSym("Georgian_par","U0010DE")
  DefineXKBSym("Georgian_zhar","U0010DF")
  DefineXKBSym("Georgian_rae","U0010E0")
  DefineXKBSym("Georgian_san","U0010E1")
  DefineXKBSym("Georgian_tar","U0010E2")
  DefineXKBSym("Georgian_un","U0010E3")
  DefineXKBSym("Georgian_phar","U0010E4")
  DefineXKBSym("Georgian_khar","U0010E5")
  DefineXKBSym("Georgian_ghan","U0010E6")
  DefineXKBSym("Georgian_qar","U0010E7")
  DefineXKBSym("Georgian_shin","U0010E8")
  DefineXKBSym("Georgian_chin","U0010E9")
  DefineXKBSym("Georgian_can","U0010EA")
  DefineXKBSym("Georgian_jil","U0010EB")
  DefineXKBSym("Georgian_cil","U0010EC")
  DefineXKBSym("Georgian_char","U0010ED")
  DefineXKBSym("Georgian_xan","U0010EE")
  DefineXKBSym("Georgian_jhan","U0010EF")
  DefineXKBSym("Georgian_hae","U0010F0")
  DefineXKBSym("Georgian_he","U0010F1")
  DefineXKBSym("Georgian_hie","U0010F2")
  DefineXKBSym("Georgian_we","U0010F3")
  DefineXKBSym("Georgian_har","U0010F4")
  DefineXKBSym("Georgian_hoe","U0010F5")
  DefineXKBSym("Georgian_fi","U0010F6")
  DefineXKBSym("Xabovedot","U001E8A")
  DefineXKBSym("Ibreve","U00012C")
  DefineXKBSym("Zstroke","U0001B5")
  DefineXKBSym("Gcaron","U0001E6")
  DefineXKBSym("Ocaron","U0001D2")
  DefineXKBSym("Obarred","U00019F")
  DefineXKBSym("xabovedot","U001E8B")
  DefineXKBSym("ibreve","U00012D")
  DefineXKBSym("zstroke","U0001B6")
  DefineXKBSym("gcaron","U0001E7")
  DefineXKBSym("ocaron","U0001D2")
  DefineXKBSym("obarred","U000275")
  DefineXKBSym("SCHWA","U00018F")
  DefineXKBSym("schwa","U000259")
  DefineXKBSym("Lbelowdot","U001E36")
  DefineXKBSym("lbelowdot","U001E37")
  DefineXKBSym("Abelowdot","U001EA0")
  DefineXKBSym("abelowdot","U001EA1")
  DefineXKBSym("Ahook","U001EA2")
  DefineXKBSym("ahook","U001EA3")
  DefineXKBSym("Acircumflexacute","U001EA4")
  DefineXKBSym("acircumflexacute","U001EA5")
  DefineXKBSym("Acircumflexgrave","U001EA6")
  DefineXKBSym("acircumflexgrave","U001EA7")
  DefineXKBSym("Acircumflexhook","U001EA8")
  DefineXKBSym("acircumflexhook","U001EA9")
  DefineXKBSym("Acircumflextilde","U001EAA")
  DefineXKBSym("acircumflextilde","U001EAB")
  DefineXKBSym("Acircumflexbelowdot","U001EAC")
  DefineXKBSym("acircumflexbelowdot","U001EAD")
  DefineXKBSym("Abreveacute","U001EAE")
  DefineXKBSym("abreveacute","U001EAF")
  DefineXKBSym("Abrevegrave","U001EB0")
  DefineXKBSym("abrevegrave","U001EB1")
  DefineXKBSym("Abrevehook","U001EB2")
  DefineXKBSym("abrevehook","U001EB3")
  DefineXKBSym("Abrevetilde","U001EB4")
  DefineXKBSym("abrevetilde","U001EB5")
  DefineXKBSym("Abrevebelowdot","U001EB6")
  DefineXKBSym("abrevebelowdot","U001EB7")
  DefineXKBSym("Ebelowdot","U001EB8")
  DefineXKBSym("ebelowdot","U001EB9")
  DefineXKBSym("Ehook","U001EBA")
  DefineXKBSym("ehook","U001EBB")
  DefineXKBSym("Etilde","U001EBC")
  DefineXKBSym("etilde","U001EBD")
  DefineXKBSym("Ecircumflexacute","U001EBE")
  DefineXKBSym("ecircumflexacute","U001EBF")
  DefineXKBSym("Ecircumflexgrave","U001EC0")
  DefineXKBSym("ecircumflexgrave","U001EC1")
  DefineXKBSym("Ecircumflexhook","U001EC2")
  DefineXKBSym("ecircumflexhook","U001EC3")
  DefineXKBSym("Ecircumflextilde","U001EC4")
  DefineXKBSym("ecircumflextilde","U001EC5")
  DefineXKBSym("Ecircumflexbelowdot","U001EC6")
  DefineXKBSym("ecircumflexbelowdot","U001EC7")
  DefineXKBSym("Ihook","U001EC8")
  DefineXKBSym("ihook","U001EC9")
  DefineXKBSym("Ibelowdot","U001ECA")
  DefineXKBSym("ibelowdot","U001ECB")
  DefineXKBSym("Obelowdot","U001ECC")
  DefineXKBSym("obelowdot","U001ECD")
  DefineXKBSym("Ohook","U001ECE")
  DefineXKBSym("ohook","U001ECF")
  DefineXKBSym("Ocircumflexacute","U001ED0")
  DefineXKBSym("ocircumflexacute","U001ED1")
  DefineXKBSym("Ocircumflexgrave","U001ED2")
  DefineXKBSym("ocircumflexgrave","U001ED3")
  DefineXKBSym("Ocircumflexhook","U001ED4")
  DefineXKBSym("ocircumflexhook","U001ED5")
  DefineXKBSym("Ocircumflextilde","U001ED6")
  DefineXKBSym("ocircumflextilde","U001ED7")
  DefineXKBSym("Ocircumflexbelowdot","U001ED8")
  DefineXKBSym("ocircumflexbelowdot","U001ED9")
  DefineXKBSym("Ohornacute","U001EDA")
  DefineXKBSym("ohornacute","U001EDB")
  DefineXKBSym("Ohorngrave","U001EDC")
  DefineXKBSym("ohorngrave","U001EDD")
  DefineXKBSym("Ohornhook","U001EDE")
  DefineXKBSym("ohornhook","U001EDF")
  DefineXKBSym("Ohorntilde","U001EE0")
  DefineXKBSym("ohorntilde","U001EE1")
  DefineXKBSym("Ohornbelowdot","U001EE2")
  DefineXKBSym("ohornbelowdot","U001EE3")
  DefineXKBSym("Ubelowdot","U001EE4")
  DefineXKBSym("ubelowdot","U001EE5")
  DefineXKBSym("Uhook","U001EE6")
  DefineXKBSym("uhook","U001EE7")
  DefineXKBSym("Uhornacute","U001EE8")
  DefineXKBSym("uhornacute","U001EE9")
  DefineXKBSym("Uhorngrave","U001EEA")
  DefineXKBSym("uhorngrave","U001EEB")
  DefineXKBSym("Uhornhook","U001EEC")
  DefineXKBSym("uhornhook","U001EED")
  DefineXKBSym("Uhorntilde","U001EEE")
  DefineXKBSym("uhorntilde","U001EEF")
  DefineXKBSym("Uhornbelowdot","U001EF0")
  DefineXKBSym("uhornbelowdot","U001EF1")
  DefineXKBSym("Ybelowdot","U001EF4")
  DefineXKBSym("ybelowdot","U001EF5")
  DefineXKBSym("Yhook","U001EF6")
  DefineXKBSym("yhook","U001EF7")
  DefineXKBSym("Ytilde","U001EF8")
  DefineXKBSym("ytilde","U001EF9")
  DefineXKBSym("Ohorn","U0001A0")
  DefineXKBSym("ohorn","U0001A1")
  DefineXKBSym("Uhorn","U0001AF")
  DefineXKBSym("uhorn","U0001B0")
  DefineXKBSym("EcuSign","U0020A0")
  DefineXKBSym("ColonSign","U0020A1")
  DefineXKBSym("CruzeiroSign","U0020A2")
  DefineXKBSym("FFrancSign","U0020A3")
  DefineXKBSym("LiraSign","U0020A4")
  DefineXKBSym("MillSign","U0020A5")
  DefineXKBSym("NairaSign","U0020A6")
  DefineXKBSym("PesetaSign","U0020A7")
  DefineXKBSym("RupeeSign","U0020A8")
  DefineXKBSym("WonSign","U0020A9")
  DefineXKBSym("NewSheqelSign","U0020AA")
  DefineXKBSym("DongSign","U0020AB")
  DefineXKBSym("EuroSign","U0020AC")
  DefineXKBSym("zerosuperior","U002070")
  DefineXKBSym("foursuperior","U002074")
  DefineXKBSym("fivesuperior","U002075")
  DefineXKBSym("sixsuperior","U002076")
  DefineXKBSym("sevensuperior","U002077")
  DefineXKBSym("eightsuperior","U002078")
  DefineXKBSym("ninesuperior","U002079")
  DefineXKBSym("zerosubscript","U002080")
  DefineXKBSym("onesubscript","U002081")
  DefineXKBSym("twosubscript","U002082")
  DefineXKBSym("threesubscript","U002083")
  DefineXKBSym("foursubscript","U002084")
  DefineXKBSym("fivesubscript","U002085")
  DefineXKBSym("sixsubscript","U002086")
  DefineXKBSym("sevensubscript","U002087")
  DefineXKBSym("eightsubscript","U002088")
  DefineXKBSym("ninesubscript","U002089")
  DefineXKBSym("partdifferential","U002202")
  DefineXKBSym("emptyset","U002205")
  DefineXKBSym("elementof","U002208")
  DefineXKBSym("notelementof","U002209")
  DefineXKBSym("containsas","U00220B")
  DefineXKBSym("squareroot","U00221A")
  DefineXKBSym("cuberoot","U00221B")
  DefineXKBSym("fourthroot","U00221C")
  DefineXKBSym("dintegral","U00222C")
  DefineXKBSym("tintegral","U00222D")
  DefineXKBSym("because","U002235")
  DefineXKBSym("approxeq","U002245")
  DefineXKBSym("notapproxeq","U002247")
  DefineXKBSym("notidentical","U002262")
  DefineXKBSym("stricteq","U002263")
  DefineXKBSym("braille_blank","U002800")
  DefineXKBSym("braille_dots_1","U002801")
  DefineXKBSym("braille_dots_2","U002802")
  DefineXKBSym("braille_dots_12","U002803")
  DefineXKBSym("braille_dots_3","U002804")
  DefineXKBSym("braille_dots_13","U002805")
  DefineXKBSym("braille_dots_23","U002806")
  DefineXKBSym("braille_dots_123","U002807")
  DefineXKBSym("braille_dots_4","U002808")
  DefineXKBSym("braille_dots_14","U002809")
  DefineXKBSym("braille_dots_24","U00280a")
  DefineXKBSym("braille_dots_124","U00280b")
  DefineXKBSym("braille_dots_34","U00280c")
  DefineXKBSym("braille_dots_134","U00280d")
  DefineXKBSym("braille_dots_234","U00280e")
  DefineXKBSym("braille_dots_1234","U00280f")
  DefineXKBSym("braille_dots_5","U002810")
  DefineXKBSym("braille_dots_15","U002811")
  DefineXKBSym("braille_dots_25","U002812")
  DefineXKBSym("braille_dots_125","U002813")
  DefineXKBSym("braille_dots_35","U002814")
  DefineXKBSym("braille_dots_135","U002815")
  DefineXKBSym("braille_dots_235","U002816")
  DefineXKBSym("braille_dots_1235","U002817")
  DefineXKBSym("braille_dots_45","U002818")
  DefineXKBSym("braille_dots_145","U002819")
  DefineXKBSym("braille_dots_245","U00281a")
  DefineXKBSym("braille_dots_1245","U00281b")
  DefineXKBSym("braille_dots_345","U00281c")
  DefineXKBSym("braille_dots_1345","U00281d")
  DefineXKBSym("braille_dots_2345","U00281e")
  DefineXKBSym("braille_dots_12345","U00281f")
  DefineXKBSym("braille_dots_6","U002820")
  DefineXKBSym("braille_dots_16","U002821")
  DefineXKBSym("braille_dots_26","U002822")
  DefineXKBSym("braille_dots_126","U002823")
  DefineXKBSym("braille_dots_36","U002824")
  DefineXKBSym("braille_dots_136","U002825")
  DefineXKBSym("braille_dots_236","U002826")
  DefineXKBSym("braille_dots_1236","U002827")
  DefineXKBSym("braille_dots_46","U002828")
  DefineXKBSym("braille_dots_146","U002829")
  DefineXKBSym("braille_dots_246","U00282a")
  DefineXKBSym("braille_dots_1246","U00282b")
  DefineXKBSym("braille_dots_346","U00282c")
  DefineXKBSym("braille_dots_1346","U00282d")
  DefineXKBSym("braille_dots_2346","U00282e")
  DefineXKBSym("braille_dots_12346","U00282f")
  DefineXKBSym("braille_dots_56","U002830")
  DefineXKBSym("braille_dots_156","U002831")
  DefineXKBSym("braille_dots_256","U002832")
  DefineXKBSym("braille_dots_1256","U002833")
  DefineXKBSym("braille_dots_356","U002834")
  DefineXKBSym("braille_dots_1356","U002835")
  DefineXKBSym("braille_dots_2356","U002836")
  DefineXKBSym("braille_dots_12356","U002837")
  DefineXKBSym("braille_dots_456","U002838")
  DefineXKBSym("braille_dots_1456","U002839")
  DefineXKBSym("braille_dots_2456","U00283a")
  DefineXKBSym("braille_dots_12456","U00283b")
  DefineXKBSym("braille_dots_3456","U00283c")
  DefineXKBSym("braille_dots_13456","U00283d")
  DefineXKBSym("braille_dots_23456","U00283e")
  DefineXKBSym("braille_dots_123456","U00283f")
  DefineXKBSym("braille_dots_7","U002840")
  DefineXKBSym("braille_dots_17","U002841")
  DefineXKBSym("braille_dots_27","U002842")
  DefineXKBSym("braille_dots_127","U002843")
  DefineXKBSym("braille_dots_37","U002844")
  DefineXKBSym("braille_dots_137","U002845")
  DefineXKBSym("braille_dots_237","U002846")
  DefineXKBSym("braille_dots_1237","U002847")
  DefineXKBSym("braille_dots_47","U002848")
  DefineXKBSym("braille_dots_147","U002849")
  DefineXKBSym("braille_dots_247","U00284a")
  DefineXKBSym("braille_dots_1247","U00284b")
  DefineXKBSym("braille_dots_347","U00284c")
  DefineXKBSym("braille_dots_1347","U00284d")
  DefineXKBSym("braille_dots_2347","U00284e")
  DefineXKBSym("braille_dots_12347","U00284f")
  DefineXKBSym("braille_dots_57","U002850")
  DefineXKBSym("braille_dots_157","U002851")
  DefineXKBSym("braille_dots_257","U002852")
  DefineXKBSym("braille_dots_1257","U002853")
  DefineXKBSym("braille_dots_357","U002854")
  DefineXKBSym("braille_dots_1357","U002855")
  DefineXKBSym("braille_dots_2357","U002856")
  DefineXKBSym("braille_dots_12357","U002857")
  DefineXKBSym("braille_dots_457","U002858")
  DefineXKBSym("braille_dots_1457","U002859")
  DefineXKBSym("braille_dots_2457","U00285a")
  DefineXKBSym("braille_dots_12457","U00285b")
  DefineXKBSym("braille_dots_3457","U00285c")
  DefineXKBSym("braille_dots_13457","U00285d")
  DefineXKBSym("braille_dots_23457","U00285e")
  DefineXKBSym("braille_dots_123457","U00285f")
  DefineXKBSym("braille_dots_67","U002860")
  DefineXKBSym("braille_dots_167","U002861")
  DefineXKBSym("braille_dots_267","U002862")
  DefineXKBSym("braille_dots_1267","U002863")
  DefineXKBSym("braille_dots_367","U002864")
  DefineXKBSym("braille_dots_1367","U002865")
  DefineXKBSym("braille_dots_2367","U002866")
  DefineXKBSym("braille_dots_12367","U002867")
  DefineXKBSym("braille_dots_467","U002868")
  DefineXKBSym("braille_dots_1467","U002869")
  DefineXKBSym("braille_dots_2467","U00286a")
  DefineXKBSym("braille_dots_12467","U00286b")
  DefineXKBSym("braille_dots_3467","U00286c")
  DefineXKBSym("braille_dots_13467","U00286d")
  DefineXKBSym("braille_dots_23467","U00286e")
  DefineXKBSym("braille_dots_123467","U00286f")
  DefineXKBSym("braille_dots_567","U002870")
  DefineXKBSym("braille_dots_1567","U002871")
  DefineXKBSym("braille_dots_2567","U002872")
  DefineXKBSym("braille_dots_12567","U002873")
  DefineXKBSym("braille_dots_3567","U002874")
  DefineXKBSym("braille_dots_13567","U002875")
  DefineXKBSym("braille_dots_23567","U002876")
  DefineXKBSym("braille_dots_123567","U002877")
  DefineXKBSym("braille_dots_4567","U002878")
  DefineXKBSym("braille_dots_14567","U002879")
  DefineXKBSym("braille_dots_24567","U00287a")
  DefineXKBSym("braille_dots_124567","U00287b")
  DefineXKBSym("braille_dots_34567","U00287c")
  DefineXKBSym("braille_dots_134567","U00287d")
  DefineXKBSym("braille_dots_234567","U00287e")
  DefineXKBSym("braille_dots_1234567","U00287f")
  DefineXKBSym("braille_dots_8","U002880")
  DefineXKBSym("braille_dots_18","U002881")
  DefineXKBSym("braille_dots_28","U002882")
  DefineXKBSym("braille_dots_128","U002883")
  DefineXKBSym("braille_dots_38","U002884")
  DefineXKBSym("braille_dots_138","U002885")
  DefineXKBSym("braille_dots_238","U002886")
  DefineXKBSym("braille_dots_1238","U002887")
  DefineXKBSym("braille_dots_48","U002888")
  DefineXKBSym("braille_dots_148","U002889")
  DefineXKBSym("braille_dots_248","U00288a")
  DefineXKBSym("braille_dots_1248","U00288b")
  DefineXKBSym("braille_dots_348","U00288c")
  DefineXKBSym("braille_dots_1348","U00288d")
  DefineXKBSym("braille_dots_2348","U00288e")
  DefineXKBSym("braille_dots_12348","U00288f")
  DefineXKBSym("braille_dots_58","U002890")
  DefineXKBSym("braille_dots_158","U002891")
  DefineXKBSym("braille_dots_258","U002892")
  DefineXKBSym("braille_dots_1258","U002893")
  DefineXKBSym("braille_dots_358","U002894")
  DefineXKBSym("braille_dots_1358","U002895")
  DefineXKBSym("braille_dots_2358","U002896")
  DefineXKBSym("braille_dots_12358","U002897")
  DefineXKBSym("braille_dots_458","U002898")
  DefineXKBSym("braille_dots_1458","U002899")
  DefineXKBSym("braille_dots_2458","U00289a")
  DefineXKBSym("braille_dots_12458","U00289b")
  DefineXKBSym("braille_dots_3458","U00289c")
  DefineXKBSym("braille_dots_13458","U00289d")
  DefineXKBSym("braille_dots_23458","U00289e")
  DefineXKBSym("braille_dots_123458","U00289f")
  DefineXKBSym("braille_dots_68","U0028a0")
  DefineXKBSym("braille_dots_168","U0028a1")
  DefineXKBSym("braille_dots_268","U0028a2")
  DefineXKBSym("braille_dots_1268","U0028a3")
  DefineXKBSym("braille_dots_368","U0028a4")
  DefineXKBSym("braille_dots_1368","U0028a5")
  DefineXKBSym("braille_dots_2368","U0028a6")
  DefineXKBSym("braille_dots_12368","U0028a7")
  DefineXKBSym("braille_dots_468","U0028a8")
  DefineXKBSym("braille_dots_1468","U0028a9")
  DefineXKBSym("braille_dots_2468","U0028aa")
  DefineXKBSym("braille_dots_12468","U0028ab")
  DefineXKBSym("braille_dots_3468","U0028ac")
  DefineXKBSym("braille_dots_13468","U0028ad")
  DefineXKBSym("braille_dots_23468","U0028ae")
  DefineXKBSym("braille_dots_123468","U0028af")
  DefineXKBSym("braille_dots_568","U0028b0")
  DefineXKBSym("braille_dots_1568","U0028b1")
  DefineXKBSym("braille_dots_2568","U0028b2")
  DefineXKBSym("braille_dots_12568","U0028b3")
  DefineXKBSym("braille_dots_3568","U0028b4")
  DefineXKBSym("braille_dots_13568","U0028b5")
  DefineXKBSym("braille_dots_23568","U0028b6")
  DefineXKBSym("braille_dots_123568","U0028b7")
  DefineXKBSym("braille_dots_4568","U0028b8")
  DefineXKBSym("braille_dots_14568","U0028b9")
  DefineXKBSym("braille_dots_24568","U0028ba")
  DefineXKBSym("braille_dots_124568","U0028bb")
  DefineXKBSym("braille_dots_34568","U0028bc")
  DefineXKBSym("braille_dots_134568","U0028bd")
  DefineXKBSym("braille_dots_234568","U0028be")
  DefineXKBSym("braille_dots_1234568","U0028bf")
  DefineXKBSym("braille_dots_78","U0028c0")
  DefineXKBSym("braille_dots_178","U0028c1")
  DefineXKBSym("braille_dots_278","U0028c2")
  DefineXKBSym("braille_dots_1278","U0028c3")
  DefineXKBSym("braille_dots_378","U0028c4")
  DefineXKBSym("braille_dots_1378","U0028c5")
  DefineXKBSym("braille_dots_2378","U0028c6")
  DefineXKBSym("braille_dots_12378","U0028c7")
  DefineXKBSym("braille_dots_478","U0028c8")
  DefineXKBSym("braille_dots_1478","U0028c9")
  DefineXKBSym("braille_dots_2478","U0028ca")
  DefineXKBSym("braille_dots_12478","U0028cb")
  DefineXKBSym("braille_dots_3478","U0028cc")
  DefineXKBSym("braille_dots_13478","U0028cd")
  DefineXKBSym("braille_dots_23478","U0028ce")
  DefineXKBSym("braille_dots_123478","U0028cf")
  DefineXKBSym("braille_dots_578","U0028d0")
  DefineXKBSym("braille_dots_1578","U0028d1")
  DefineXKBSym("braille_dots_2578","U0028d2")
  DefineXKBSym("braille_dots_12578","U0028d3")
  DefineXKBSym("braille_dots_3578","U0028d4")
  DefineXKBSym("braille_dots_13578","U0028d5")
  DefineXKBSym("braille_dots_23578","U0028d6")
  DefineXKBSym("braille_dots_123578","U0028d7")
  DefineXKBSym("braille_dots_4578","U0028d8")
  DefineXKBSym("braille_dots_14578","U0028d9")
  DefineXKBSym("braille_dots_24578","U0028da")
  DefineXKBSym("braille_dots_124578","U0028db")
  DefineXKBSym("braille_dots_34578","U0028dc")
  DefineXKBSym("braille_dots_134578","U0028dd")
  DefineXKBSym("braille_dots_234578","U0028de")
  DefineXKBSym("braille_dots_1234578","U0028df")
  DefineXKBSym("braille_dots_678","U0028e0")
  DefineXKBSym("braille_dots_1678","U0028e1")
  DefineXKBSym("braille_dots_2678","U0028e2")
  DefineXKBSym("braille_dots_12678","U0028e3")
  DefineXKBSym("braille_dots_3678","U0028e4")
  DefineXKBSym("braille_dots_13678","U0028e5")
  DefineXKBSym("braille_dots_23678","U0028e6")
  DefineXKBSym("braille_dots_123678","U0028e7")
  DefineXKBSym("braille_dots_4678","U0028e8")
  DefineXKBSym("braille_dots_14678","U0028e9")
  DefineXKBSym("braille_dots_24678","U0028ea")
  DefineXKBSym("braille_dots_124678","U0028eb")
  DefineXKBSym("braille_dots_34678","U0028ec")
  DefineXKBSym("braille_dots_134678","U0028ed")
  DefineXKBSym("braille_dots_234678","U0028ee")
  DefineXKBSym("braille_dots_1234678","U0028ef")
  DefineXKBSym("braille_dots_5678","U0028f0")
  DefineXKBSym("braille_dots_15678","U0028f1")
  DefineXKBSym("braille_dots_25678","U0028f2")
  DefineXKBSym("braille_dots_125678","U0028f3")
  DefineXKBSym("braille_dots_35678","U0028f4")
  DefineXKBSym("braille_dots_135678","U0028f5")
  DefineXKBSym("braille_dots_235678","U0028f6")
  DefineXKBSym("braille_dots_1235678","U0028f7")
  DefineXKBSym("braille_dots_45678","U0028f8")
  DefineXKBSym("braille_dots_145678","U0028f9")
  DefineXKBSym("braille_dots_245678","U0028fa")
  DefineXKBSym("braille_dots_1245678","U0028fb")
  DefineXKBSym("braille_dots_345678","U0028fc")
  DefineXKBSym("braille_dots_1345678","U0028fd")
  DefineXKBSym("braille_dots_2345678","U0028fe")
  DefineXKBSym("braille_dots_12345678","U0028ff")
  DefineXKBSym("NoSymbol","U000020")
}

convertXkbsym(X) {
  global
  nlen := StrLen(X)
  SS := X . " "
  pos := InStr(KSYM%nlen%,SS,true)
;  MsgBox,% X . ": " . nlen . ": " . pos
  if (pos>0) {
    poscd := 7*(pos-1)/(nlen+1)+1
    X := SubStr(KSCD%nlen%,poscd,7)
;    MsgBox,% X
    return X
  } else if (SubStr(X,1,1) == "U") {
    StringUpper,X,X
    return "U" . substr("000000" . substr(X,2),-5)
  } else {
     ResName := EncodeUni(X)
     if (StrLen(ResName) == 7)
       return ResName
  }
  return ""
}

DecodeUni(Uni) {
  result := ""
  loop {
    code := "0x" . SubStr(Uni,2,6)
    Uni := SubStr(Uni,8)
    if (code < 0x0080)
      result := result . chr(code)
    else if (code < 0x0800)
      result := result . chr(0xC0 + (code >> 6)) . chr(0x80 + (code & 0x3F))
    else if (code < 0x10000)
      result := result . chr(0xE0 + (code >> 12)) . chr(0x80 + ((code >> 6) & 0x3F)) . chr(0x80 + (code & 0x3F)) 
    else
      result := result . chr(0xF0 + (code >> 18)) . chr(0x80 + ((code >>12) & 0x3F)) . chr(0x80 + ((code >> 6) & 0x3F)) . chr(0x80 + (code & 0x3F)) 
    if (Uni == "")
      break
  }
  return result
}

EncodeUni(str) {
SetFormat, Integer, hex
;  MsgBox % Asc(SubStr(str,1,1)) . Asc(SubStr(str,2,1))
  result := ""
  loop {
    achar := asc(SubStr(str,1,1))
    if (achar < 0x80) {
      str   := SubStr(str,2)
      result .= "U" . SubStr("000000" . SubStr(achar,3),-5)
    } else if (achar < 0xC0) {
      str   := SubStr(str,2)
      ; error
    } else if (achar < 0xE0) {
       achar2 := asc(Substr(str,2,1))
       str    := SubStr(str,3)
       if ((achar2 < 0x80) or (achar2 > 0xBF)) {
         ; error
       } else {
         result .= "U" . SubStr("000000" . SubStr((((achar & 0x1F) << 6) + (achar2 & 0x3F)),3),-5)
       }
    } else if (achar < 0xF0) {
       achar2 := asc(SubStr(str,2,1))
       achar3 := asc(SubStr(str,3,1))
       str    := SubStr(str,4)
;       MsgBox % "chars: " . achar . ", " . achar2 . ", " . achar3 . ", str: " . str
       if (   (achar2 < 0x80) or (achar2 > 0xBF)
           or (achar3 < 0x80) or (achar3 > 0xBF)) {
         ; error
       } else {
;         MsgBox % achar . achar2 . achar3
;         MsgBox % (((achar & 0x0F) << 12) + ((achar2 & 0x3F) << 6) + (achar3 & 0x3F))
         result .= "U" . SubStr("000000" . SubStr((((achar & 0x0F) << 12) + ((achar2 & 0x3F) << 6) + (achar3 & 0x3F)),3),-5)
       }
    } else if (achar < 0xF8) {
       achar2 := asc(SubStr(str,2,1))
       achar3 := asc(SubStr(str,3,1))
       achar4 := asc(SubStr(str,4,1))
       str   := SubStr(str,5)
       if (   (achar2 < 0x80) or (achar2 > 0xBF)
           or (achar3 < 0x80) or (achar3 > 0xBF)
           or (achar4 < 0x80) or (achar4 > 0xBF)) {
         ; error
       } else {
         result .= "U" . SubStr("000000" . SubStr((((achar & 0x07) << 18) + ((achar2 & 0x3F) << 12) + ((achar3 & 0x3F) << 6) + (achar4 & 0x3F)),3),-5)
       }
    } else
      str := SubStr(str,2)
    if (str == "")
      break
  }
SetFormat, Integer, d
  StringUpper,result,result
  return result
}

Composita := ""
Compsize := 0
VarSetCapacity(Composita,10240000) ; 10 MB

EncodeUnicodeFile(FFrom,FTo) {
  Composita := ""
  Compsize := 0
  Miss := 0
  FileRead, FileContents, %FFrom%
  ProgressTop := "Converting " . FFrom . "..."

  FileContents := RegExReplace(FileContents,"[\t ]*(<[^>]*>)[\t ]*","$1")

  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
  {
    NumLines := A_Index
  }

  NLP := NumLines/20 ; 20 steps on the bar
  OldCount := -NumLines
  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
  {
    TA := ""
    Count := A_Index
    Line := A_LoopField
    if (Count >= (OldCount + NLP)) { ; Progress the bar not with every line
      OldCount := Count
      ProgressVal := Count/NumLines*100
      ProgressInd := "Lines: " . Count . ", Errors: " . Miss
      Progress,%ProgressVal%,%ProgressInd%,%ProgressTop%
    }
    if ((Line == "") or (SubStr(Line,1,5) == "XCOMM") or (SubStr(Line,1,1) == "#"))
      continue
    RegExMatch(Line,"([^:]*):[\t ]*""((\\.|[^""])*)"".*",OutputVar)
    ReplaceLeft := OutputVar1
    ReplaceRight := ""
    loop {
      thechar := SubStr(OutputVar2,1,1)
      OutputVar2 := SubStr(OutputVar2,2)
      if (thechar == "\") {
        thechar := SubStr(OutputVar2,1,1)
        OutputVar2 := SubStr(OutputVar2,2)
        if (thechar == "n")
          thechar := chr(0x000d) ; Line-Feed
        ReplaceRight := ReplaceRight . thechar
      } else
        ReplaceRight := ReplaceRight . thechar
      if (OutputVar2 == "")
        break
    }

    ; care for replaceleft
    modkeys := ""
    loop {
      if ((SubStr(ReplaceLeft,1,1)=="<") and (InStr(ReplaceLeft,">"))) {
        Xkbsym := SubStr(ReplaceLeft,2,InStr(ReplaceLeft,">")-2)
        ReplaceLeft := SubStr(ReplaceLeft,InStr(ReplaceLeft,">")+1)

        modkey := ConvertXkbsym(Xkbsym)
        if (modkey == "") {
          modkeys := "" ; invalidate whole line
          break
        }
        modkeys := modkeys . modkey 
        if (ReplaceLeft == "")
          break
        if (CM%modkeys% != 1) {
          CM%modkeys% := 1
          TA .= "  CM" . modkeys . ":=1`r`n"
        }
      }
      else {
        Xkbsym := "*entry*" ; make a non-fancy name from parsing error
        modkeys := "" ; invalidate whole line
        break
      }
    }
    if (modkeys != "") {
      ressymb := EncodeUni(ReplaceRight)
      TA .= "  CD" . modkeys . ":="""  . ressymb . """`r`n"
      if (StrLen(ressymb)==7)
        TA .= "  CRC" . ressymb . ".="" " . modkeys . """`r`n" 
    } else {
      TA .= "  `; illegal " . Xkbsym . " in " . A_LoopField . "`r`n"
      Miss := Miss + 1
    }
    Composita .= TA
    Compsize := Compsize + 1
    if (Compsize > 100) {
      FileAppend,%Composita%,%FTo%
      Compsize := 0
      Composita := ""
    }
  }
  Progress,off
  FileAppend,%Composita%,%FTo%
}

DefineXKBSyms()

NumPars = %0%
if (NumPars < 2) {
  MsgBox,Zu wenige Parameter`, Minimum=2
  exit
}

CompRevision = %1%
OutputFile = %2%

FileDelete,%OutputFile%
FileAppend,`; -*- encoding: utf-8 -*-`r`n`r`nCompRevision := "%CompRevision%"`r`n`r`nLoadDefaultCompose() {`r`n  global`r`n`r`n, %OutputFile%    ; }

loop %Numpars% {
  if (A_Index < 3)
    continue
  EncodeUnicodeFile(%A_Index%, OutputFile)
}

; {
FileAppend,},%OutputFile%

; MsgBox % EncodeUni(DecodeUni("U20ACU0041U0070"))

; MsgBox % ConvertXkbsym("KP_5") . ConvertXkbsym("a")
