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

DefineXKBSym(name,val) {
  global
  nlen := StrLen(name)
  KSYM%nlen% .= name . " "
  KSCD%nlen% .= EncodeUniComposeA(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"             ," ")
  DefineXKBSym("dead_space"        ," ")
  DefineXKBSym("exclam"            ,"!")
  DefineXKBSym("quotedbl"          ,"""")
  DefineXKBSym("numbersign"        ,"#")
  DefineXKBSym("dollar"            ,"$")
  DefineXKBSym("percent"           ,"%")
  DefineXKBSym("ampersand"         ,"&")
  DefineXKBSym("apostrophe"        ,"'")
  DefineXKBSym("quoteright"        ,"'")
  DefineXKBSym("parenleft"         ,"(")
  DefineXKBSym("parenright"        ,")")
  DefineXKBSym("asterisk"          ,"*")
  DefineXKBSym("plus"              ,"+")
  DefineXKBSym("comma"             ,",")
  DefineXKBSym("minus"             ,"-")
  DefineXKBSym("period"            ,".")
  DefineXKBSym("slash"             ,"/")
  DefineXKBSym("0"                 ,"0")
  DefineXKBSym("1"                 ,"1")
  DefineXKBSym("2"                 ,"2")
  DefineXKBSym("3"                 ,"3")
  DefineXKBSym("4"                 ,"4")
  DefineXKBSym("5"                 ,"5")
  DefineXKBSym("6"                 ,"6")
  DefineXKBSym("7"                 ,"7")
  DefineXKBSym("8"                 ,"8")
  DefineXKBSym("9"                 ,"9")
  DefineXKBSym("colon"             ,":")
  DefineXKBSym("semicolon"         ,";")
  DefineXKBSym("less"              ,"<")
  DefineXKBSym("equal"             ,"=")
  DefineXKBSym("greater"           ,">")
  DefineXKBSym("question"          ,"?")
  DefineXKBSym("at"                ,"@")
  DefineXKBSym("A"                 ,"A")
  DefineXKBSym("B"                 ,"B")
  DefineXKBSym("C"                 ,"C")
  DefineXKBSym("D"                 ,"D")
  DefineXKBSym("E"                 ,"E")
  DefineXKBSym("F"                 ,"F")
  DefineXKBSym("G"                 ,"G")
  DefineXKBSym("H"                 ,"H")
  DefineXKBSym("I"                 ,"I")
  DefineXKBSym("J"                 ,"J")
  DefineXKBSym("K"                 ,"K")
  DefineXKBSym("L"                 ,"L")
  DefineXKBSym("M"                 ,"M")
  DefineXKBSym("N"                 ,"N")
  DefineXKBSym("O"                 ,"O")
  DefineXKBSym("P"                 ,"P")
  DefineXKBSym("Q"                 ,"Q")
  DefineXKBSym("R"                 ,"R")
  DefineXKBSym("S"                 ,"S")
  DefineXKBSym("T"                 ,"T")
  DefineXKBSym("U"                 ,"U")
  DefineXKBSym("V"                 ,"V")
  DefineXKBSym("W"                 ,"W")
  DefineXKBSym("X"                 ,"X")
  DefineXKBSym("Y"                 ,"Y")
  DefineXKBSym("Z"                 ,"Z")
  DefineXKBSym("bracketleft"       ,"[")
  DefineXKBSym("backslash"         ,"\")
  DefineXKBSym("bracketright"      ,"]")
  DefineXKBSym("asciicircum"       ,"^")
  DefineXKBSym("underscore"        ,"_")
  DefineXKBSym("grave"             ,"``")
  DefineXKBSym("quoteleft"         ,"``")
  DefineXKBSym("a"                 ,"a")
  DefineXKBSym("b"                 ,"b")
  DefineXKBSym("c"                 ,"c")
  DefineXKBSym("d"                 ,"d")
  DefineXKBSym("e"                 ,"e")
  DefineXKBSym("f"                 ,"f")
  DefineXKBSym("g"                 ,"g")
  DefineXKBSym("h"                 ,"h")
  DefineXKBSym("i"                 ,"i")
  DefineXKBSym("j"                 ,"j")
  DefineXKBSym("k"                 ,"k")
  DefineXKBSym("l"                 ,"l")
  DefineXKBSym("m"                 ,"m")
  DefineXKBSym("n"                 ,"n")
  DefineXKBSym("o"                 ,"o")
  DefineXKBSym("p"                 ,"p")
  DefineXKBSym("q"                 ,"q")
  DefineXKBSym("r"                 ,"r")
  DefineXKBSym("s"                 ,"s")
  DefineXKBSym("t"                 ,"t")
  DefineXKBSym("u"                 ,"u")
  DefineXKBSym("v"                 ,"v")
  DefineXKBSym("w"                 ,"w")
  DefineXKBSym("x"                 ,"x")
  DefineXKBSym("y"                 ,"y")
  DefineXKBSym("z"                 ,"z")
  DefineXKBSym("braceleft"         ,"{")
  DefineXKBSym("bar"               ,"|")
  DefineXKBSym("braceright"        ,"}")
  DefineXKBSym("asciitilde"        ,"~")
  DefineXKBSym("ſ"                 ,"ſ")

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

;  DefineXKBSym("BackSpace","⌫")
;  DefineXKBSym("Tab","⇥")
;  DefineXKBSym("Return","⏎")
;  DefineXKBSym("Escape","⌧")
;  DefineXKBSym("Delete","⌦")
;  DefineXKBSym("Multi_key","♫")
;  DefineXKBSym("Home","⇱")
;  DefineXKBSym("Left","⇠")
;  DefineXKBSym("Up","⇡")
;  DefineXKBSym("Right","⇢")
;  DefineXKBSym("Down","⇣")
;  DefineXKBSym("Prior","⇞")
;  DefineXKBSym("Page_Up","⇞")
;  DefineXKBSym("Next","⇟")
;  DefineXKBSym("Page_Down","⇟")
;  DefineXKBSym("End","⇲")
;  DefineXKBSym("Insert","⎀")
;  DefineXKBSym("KP_Enter","⎆")
;  DefineXKBSym("KP_Home","⇱")
;  DefineXKBSym("KP_Left","⇠")
;  DefineXKBSym("KP_Up","⇡")
;  DefineXKBSym("KP_Right","⇢")
;  DefineXKBSym("KP_Down","⇣")
;  DefineXKBSym("KP_Prior","⇞")
;  DefineXKBSym("KP_Page_Up","⇞")
;  DefineXKBSym("KP_Next","⇟")
;  DefineXKBSym("KP_Page_Down","⇟")
;  DefineXKBSym("KP_End","⇲")
;  DefineXKBSym("KP_Insert","⎀")
;  DefineXKBSym("KP_Delete","⌦")
;  DefineXKBSym("KP_Multiply","*")
;  DefineXKBSym("KP_Add","+")
;  DefineXKBSym("KP_Subtract","-")
;  DefineXKBSym("KP_Decimal","⎖")
;  DefineXKBSym("KP_Divide","∕")
;  DefineXKBSym("KP_0","0")
;  DefineXKBSym("KP_1","1")
;  DefineXKBSym("KP_2","2")
;  DefineXKBSym("KP_3","3")
;  DefineXKBSym("KP_4","4")
;  DefineXKBSym("KP_5","5")
;  DefineXKBSym("KP_6","6")
;  DefineXKBSym("KP_7","7")
;  DefineXKBSym("KP_8","8")
;  DefineXKBSym("KP_9","9")
  DefineXKBSym("Shift_L","⇧")
  DefineXKBSym("Shift_R","⇧")
  DefineXKBSym("Shift_Lock","⇧")
;  DefineXKBSym("ISO_Left_Tab","⇤")
;  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","¡")
  DefineXKBSym("cent","¢")
  DefineXKBSym("sterling","£")
  DefineXKBSym("currency","¤")
  DefineXKBSym("yen","¥")
  DefineXKBSym("brokenbar","¦")
  DefineXKBSym("section","§")
  DefineXKBSym("diaeresis","¨")
  DefineXKBSym("copyright","©")
  DefineXKBSym("ordfeminine","ª")
  DefineXKBSym("guillemotleft","«")
  DefineXKBSym("notsign","¬")
  DefineXKBSym("hyphen","­")
  DefineXKBSym("registered","®")
  DefineXKBSym("macron","¯")
  DefineXKBSym("degree","°")
  DefineXKBSym("plusminus","±")
  DefineXKBSym("twosuperior","²")
  DefineXKBSym("threesuperior","³")
  DefineXKBSym("acute","´")
  DefineXKBSym("mu","µ")
  DefineXKBSym("paragraph","¶")
  DefineXKBSym("periodcentered","·")
  DefineXKBSym("cedilla","¸")
  DefineXKBSym("onesuperior","¹")
  DefineXKBSym("masculine","º")
  DefineXKBSym("guillemotright","»")
  DefineXKBSym("onequarter","¼")
  DefineXKBSym("onehalf","½")
  DefineXKBSym("threequarters","¾")
  DefineXKBSym("questiondown","¿")
  DefineXKBSym("Agrave","À")
  DefineXKBSym("Aacute","Á")
  DefineXKBSym("Acircumflex","Â")
  DefineXKBSym("Atilde","Ã")
  DefineXKBSym("Adiaeresis","Ä")
  DefineXKBSym("Aring","Å")
  DefineXKBSym("AE","Æ")
  DefineXKBSym("Ccedilla","Ç")
  DefineXKBSym("Egrave","È")
  DefineXKBSym("Eacute","É")
  DefineXKBSym("Ecircumflex","Ê")
  DefineXKBSym("Ediaeresis","Ë")
  DefineXKBSym("Igrave","Ì")
  DefineXKBSym("Iacute","Í")
  DefineXKBSym("Icircumflex","Î")
  DefineXKBSym("Idiaeresis","Ï")
  DefineXKBSym("ETH","Ð")
  DefineXKBSym("Eth","Ð")                    ; deprecated
  DefineXKBSym("Ntilde","Ñ")
  DefineXKBSym("Ograve","Ò")
  DefineXKBSym("Oacute","Ó")
  DefineXKBSym("Ocircumflex","Ô")
  DefineXKBSym("Otilde","Õ")
  DefineXKBSym("Odiaeresis","Ö")
  DefineXKBSym("multiply","×")
  DefineXKBSym("Oslash","Ø")
  DefineXKBSym("Ooblique","Ø")
  DefineXKBSym("Ugrave","Ù")
  DefineXKBSym("Uacute","Ú")
  DefineXKBSym("Ucircumflex","Û")
  DefineXKBSym("Udiaeresis","Ü")
  DefineXKBSym("Yacute","Ý")
  DefineXKBSym("THORN","Þ")
  DefineXKBSym("Thorn","Þ")                  ; deprecated
  DefineXKBSym("ssharp","ß")
  DefineXKBSym("agrave","à")
  DefineXKBSym("aacute","á")
  DefineXKBSym("acircumflex","â")
  DefineXKBSym("atilde","ã")
  DefineXKBSym("adiaeresis","ä")
  DefineXKBSym("aring","å")
  DefineXKBSym("ae","æ")
  DefineXKBSym("ccedilla","ç")
  DefineXKBSym("egrave","è")
  DefineXKBSym("eacute","é")
  DefineXKBSym("ecircumflex","ê")
  DefineXKBSym("ediaeresis","ë")
  DefineXKBSym("igrave","ì")
  DefineXKBSym("iacute","í")
  DefineXKBSym("icircumflex","î")
  DefineXKBSym("idiaeresis","ï")
  DefineXKBSym("eth","ð")
  DefineXKBSym("ntilde","ñ")
  DefineXKBSym("ograve","ò")
  DefineXKBSym("oacute","ó")
  DefineXKBSym("ocircumflex","ô")
  DefineXKBSym("otilde","õ")
  DefineXKBSym("odiaeresis","ö")
  DefineXKBSym("division","÷")
  DefineXKBSym("oslash","ø")
  DefineXKBSym("ooblique","ø")
  DefineXKBSym("ugrave","ù")
  DefineXKBSym("uacute","ú")
  DefineXKBSym("ucircumflex","û")
  DefineXKBSym("udiaeresis","ü")
  DefineXKBSym("yacute","ý")
  DefineXKBSym("thorn","þ")
  DefineXKBSym("ydiaeresis","U0000FF")
  DefineXKBSym("Aogonek","Ą")
  DefineXKBSym("breve","˘")
  DefineXKBSym("Lstroke","Ł")
  DefineXKBSym("Lcaron","Ľ")
  DefineXKBSym("Sacute","Ś")
  DefineXKBSym("Scaron","Š")
  DefineXKBSym("Scedilla","Ş")
  DefineXKBSym("Tcaron","Ť")
  DefineXKBSym("Zacute","Ź")
  DefineXKBSym("Zcaron","Ž")
  DefineXKBSym("Zabovedot","Ż")
  DefineXKBSym("aogonek","ą")
  DefineXKBSym("ogonek","˛")
  DefineXKBSym("lstroke","ł")
  DefineXKBSym("lcaron","ľ")
  DefineXKBSym("sacute","ś")
  DefineXKBSym("caron","ˇ")
  DefineXKBSym("scaron","š")
  DefineXKBSym("scedilla","ş")
  DefineXKBSym("tcaron","ť")
  DefineXKBSym("zacute","ź")
  DefineXKBSym("doubleacute","˝")
  DefineXKBSym("zcaron","ž")
  DefineXKBSym("zabovedot","ż")
  DefineXKBSym("Racute","Ŕ")
  DefineXKBSym("Abreve","Ă")
  DefineXKBSym("Lacute","Ĺ")
  DefineXKBSym("Cacute","Ć")
  DefineXKBSym("Ccaron","Č")
  DefineXKBSym("Eogonek","Ę")
  DefineXKBSym("Ecaron","Ě")
  DefineXKBSym("Dcaron","Ď")
  DefineXKBSym("Dstroke","Đ")
  DefineXKBSym("Nacute","Ń")
  DefineXKBSym("Ncaron","Ň")
  DefineXKBSym("Odoubleacute","Ő")
  DefineXKBSym("Rcaron","ř")
  DefineXKBSym("Uring","Ů")
  DefineXKBSym("Udoubleacute","Ű")
  DefineXKBSym("Tcedilla","Ţ")
  DefineXKBSym("racute","ŕ")
  DefineXKBSym("abreve","ă")
  DefineXKBSym("lacute","ĺ")
  DefineXKBSym("cacute","ć")
  DefineXKBSym("ccaron","č")
  DefineXKBSym("eogonek","ę")
  DefineXKBSym("ecaron","ě")
  DefineXKBSym("dcaron","ď")
  DefineXKBSym("dstroke","đ")
  DefineXKBSym("nacute","ń")
  DefineXKBSym("ncaron","ň")
  DefineXKBSym("odoubleacute","ő")
  DefineXKBSym("udoubleacute","ű")
  DefineXKBSym("rcaron","ř")
  DefineXKBSym("uring","ů")
  DefineXKBSym("tcedilla","ţ")
  DefineXKBSym("abovedot","˙")
  DefineXKBSym("Hstroke","Ħ")
  DefineXKBSym("Hcircumflex","Ĥ")
  DefineXKBSym("Iabovedot","İ")
  DefineXKBSym("Gbreve","Ğ")
  DefineXKBSym("Jcircumflex","Ĵ")
  DefineXKBSym("hstroke","ħ")
  DefineXKBSym("hcircumflex","ĥ")
  DefineXKBSym("idotless","ı")
  DefineXKBSym("gbreve","ğ")
  DefineXKBSym("jcircumflex","ĵ")
  DefineXKBSym("Cabovedot","Ċ")
  DefineXKBSym("Ccircumflex","Ĉ")
  DefineXKBSym("Gabovedot","Ġ")
  DefineXKBSym("Gcircumflex","Ĝ")
  DefineXKBSym("Ubreve","Ŭ")
  DefineXKBSym("Scircumflex","Ŝ")
  DefineXKBSym("cabovedot","ċ")
  DefineXKBSym("ccircumflex","ĉ")
  DefineXKBSym("gabovedot","ġ")
  DefineXKBSym("gcircumflex","ĝ")
  DefineXKBSym("ubreve","ŭ")
  DefineXKBSym("scircumflex","ŝ")
  DefineXKBSym("kra","ĸ")
  DefineXKBSym("Rcedilla","Ŗ")
  DefineXKBSym("Itilde","Ĩ")
  DefineXKBSym("Lcedilla","Ļ")
  DefineXKBSym("Emacron","Ē")
  DefineXKBSym("Gcedilla","Ģ")
  DefineXKBSym("Tslash","Ŧ")
  DefineXKBSym("rcedilla","ŗ")
  DefineXKBSym("itilde","ĩ")
  DefineXKBSym("lcedilla","ļ")
  DefineXKBSym("emacron","ē")
  DefineXKBSym("gcedilla","ģ")
  DefineXKBSym("tslash","ŧ")
  DefineXKBSym("ENG","Ŋ")
  DefineXKBSym("eng","ŋ")
  DefineXKBSym("Amacron","Ā")
  DefineXKBSym("Iogonek","Į")
  DefineXKBSym("Eabovedot","Ė")
  DefineXKBSym("Imacron","Ī")
  DefineXKBSym("Ncedilla","Ņ")
  DefineXKBSym("Omacron","Ō")
  DefineXKBSym("Kcedilla","Ķ")
  DefineXKBSym("Uogonek","Ų")
  DefineXKBSym("Utilde","Ũ")
  DefineXKBSym("Umacron","Ū")
  DefineXKBSym("amacron","ā")
  DefineXKBSym("iogonek","į")
  DefineXKBSym("eabovedot","ė")
  DefineXKBSym("imacron","ī")
  DefineXKBSym("ncedilla","ņ")
  DefineXKBSym("omacron","ō")
  DefineXKBSym("kcedilla","ķ")
  DefineXKBSym("uogonek","ų")
  DefineXKBSym("utilde","ũ")
  DefineXKBSym("umacron","ū")
  DefineXKBSym("Babovedot","Ḃ")
  DefineXKBSym("babovedot","ḃ")
  DefineXKBSym("Dabovedot","Ḋ")
  DefineXKBSym("Wgrave","Ẁ")
  DefineXKBSym("Wacute","Ẃ")
  DefineXKBSym("dabovedot","ḋ")
  DefineXKBSym("Ygrave","Ỳ")
  DefineXKBSym("Fabovedot","Ḟ")
  DefineXKBSym("fabovedot","ḟ")
  DefineXKBSym("Mabovedot","Ṁ")
  DefineXKBSym("mabovedot","ṁ")
  DefineXKBSym("Pabovedot","Ṗ")
  DefineXKBSym("wgrave","ẁ")
  DefineXKBSym("pabovedot","ṗ")
  DefineXKBSym("wacute","ẃ")
  DefineXKBSym("Sabovedot","Ṡ")
  DefineXKBSym("ygrave","ỳ")
  DefineXKBSym("Wdiaeresis","Ẅ")
  DefineXKBSym("wdiaeresis","ẅ")
  DefineXKBSym("sabovedot","ṡ")
  DefineXKBSym("Wcircumflex","Ŵ")
  DefineXKBSym("Tabovedot","Ṫ")
  DefineXKBSym("Ycircumflex","Ŷ")
  DefineXKBSym("wcircumflex","ŵ")
  DefineXKBSym("tabovedot","ṫ")
  DefineXKBSym("ycircumflex","ŷ")
  DefineXKBSym("OE","Œ")
  DefineXKBSym("oe","œ")
  DefineXKBSym("Ydiaeresis","Ÿ")
  DefineXKBSym("overline","‾")
  DefineXKBSym("kana_fullstop","。")
  DefineXKBSym("kana_openingbracket","「")
  DefineXKBSym("kana_closingbracket","」")
  DefineXKBSym("kana_comma","、")
  DefineXKBSym("kana_conjunctive","・")
  DefineXKBSym("kana_WO","ヲ")
  DefineXKBSym("kana_a","ァ")
  DefineXKBSym("kana_i","ィ")
  DefineXKBSym("kana_u","ゥ")
  DefineXKBSym("kana_e","ェ")
  DefineXKBSym("kana_o","ォ")
  DefineXKBSym("kana_ya","ャ")
  DefineXKBSym("kana_yu","ュ")
  DefineXKBSym("kana_yo","ョ")
  DefineXKBSym("kana_tsu","ッ")
  DefineXKBSym("prolongedsound","ー")
  DefineXKBSym("kana_A","ア")
  DefineXKBSym("kana_I","イ")
  DefineXKBSym("kana_U","ウ")
  DefineXKBSym("kana_E","エ")
  DefineXKBSym("kana_O","オ")
  DefineXKBSym("kana_KA","カ")
  DefineXKBSym("kana_KI","キ")
  DefineXKBSym("kana_KU","ク")
  DefineXKBSym("kana_KE","ケ")
  DefineXKBSym("kana_KO","コ")
  DefineXKBSym("kana_SA","サ")
  DefineXKBSym("kana_SHI","シ")
  DefineXKBSym("kana_SU","ス")
  DefineXKBSym("kana_SE","セ")
  DefineXKBSym("kana_SO","ソ")
  DefineXKBSym("kana_TA","タ")
  DefineXKBSym("kana_CHI","チ")
  DefineXKBSym("kana_TSU","ツ")
  DefineXKBSym("kana_TE","テ")
  DefineXKBSym("kana_TO","ト")
  DefineXKBSym("kana_NA","ナ")
  DefineXKBSym("kana_NI","ニ")
  DefineXKBSym("kana_NU","ヌ")
  DefineXKBSym("kana_NE","ネ")
  DefineXKBSym("kana_NO","ノ")
  DefineXKBSym("kana_HA","ハ")
  DefineXKBSym("kana_HI","ヒ")
  DefineXKBSym("kana_FU","フ")
  DefineXKBSym("kana_HE","ヘ")
  DefineXKBSym("kana_HO","ホ")
  DefineXKBSym("kana_MA","マ")
  DefineXKBSym("kana_MI","ミ")
  DefineXKBSym("kana_MU","ム")
  DefineXKBSym("kana_ME","メ")
  DefineXKBSym("kana_MO","モ")
  DefineXKBSym("kana_YA","ヤ")
  DefineXKBSym("kana_YU","ユ")
  DefineXKBSym("kana_YO","ヨ")
  DefineXKBSym("kana_RA","ラ")
  DefineXKBSym("kana_RI","リ")
  DefineXKBSym("kana_RU","ル")
  DefineXKBSym("kana_RE","レ")
  DefineXKBSym("kana_RO","ロ")
  DefineXKBSym("kana_WA","ワ")
  DefineXKBSym("kana_N","ン")
  DefineXKBSym("voicedsound","゛")
  DefineXKBSym("semivoicedsound","゜")
  DefineXKBSym("Farsi_0","۰")
  DefineXKBSym("Farsi_1","۱")
  DefineXKBSym("Farsi_2","۲")
  DefineXKBSym("Farsi_3","۳")
  DefineXKBSym("Farsi_4","۴")
  DefineXKBSym("Farsi_5","۵")
  DefineXKBSym("Farsi_6","۶")
  DefineXKBSym("Farsi_7","۷")
  DefineXKBSym("Farsi_8","۸")
  DefineXKBSym("Farsi_9","۹")
  DefineXKBSym("Arabic_percent","٪")
  DefineXKBSym("Arabic_superscript_alef","ٰ")
  DefineXKBSym("Arabic_tteh","ٹ")
  DefineXKBSym("Arabic_peh","پ")
  DefineXKBSym("Arabic_tcheh","چ")
  DefineXKBSym("Arabic_ddal","ڈ")
  DefineXKBSym("Arabic_rreh","ڑ")
  DefineXKBSym("Arabic_comma","،")
  DefineXKBSym("Arabic_fullstop","۔")
  DefineXKBSym("Arabic_0","٠")
  DefineXKBSym("Arabic_1","١")
  DefineXKBSym("Arabic_2","٢")
  DefineXKBSym("Arabic_3","٣")
  DefineXKBSym("Arabic_4","٤")
  DefineXKBSym("Arabic_5","٥")
  DefineXKBSym("Arabic_6","٦")
  DefineXKBSym("Arabic_7","٧")
  DefineXKBSym("Arabic_8","٨")
  DefineXKBSym("Arabic_9","٩")
  DefineXKBSym("Arabic_semicolon","؛")
  DefineXKBSym("Arabic_question_mark","؟")
  DefineXKBSym("Arabic_hamza","ء")
  DefineXKBSym("Arabic_maddaonalef","آ")
  DefineXKBSym("Arabic_hamzaonalef","أ")
  DefineXKBSym("Arabic_hamzaonwaw","ؤ")
  DefineXKBSym("Arabic_hamzaunderalef","إ")
  DefineXKBSym("Arabic_hamzaonyeh","ئ")
  DefineXKBSym("Arabic_alef","ا")
  DefineXKBSym("Arabic_beh","ب")
  DefineXKBSym("Arabic_tehmarbuta","ة")
  DefineXKBSym("Arabic_teh","ت")
  DefineXKBSym("Arabic_theh","ث")
  DefineXKBSym("Arabic_jeem","ج")
  DefineXKBSym("Arabic_hah","ح")
  DefineXKBSym("Arabic_khah","خ")
  DefineXKBSym("Arabic_dal","د")
  DefineXKBSym("Arabic_thal","ذ")
  DefineXKBSym("Arabic_ra","ر")
  DefineXKBSym("Arabic_zain","ز")
  DefineXKBSym("Arabic_seen","س")
  DefineXKBSym("Arabic_sheen","ش")
  DefineXKBSym("Arabic_sad","ص")
  DefineXKBSym("Arabic_dad","ض")
  DefineXKBSym("Arabic_tah","ط")
  DefineXKBSym("Arabic_zah","ظ")
  DefineXKBSym("Arabic_ain","ع")
  DefineXKBSym("Arabic_ghain","غ")
  DefineXKBSym("Arabic_tatweel","ـ")
  DefineXKBSym("Arabic_feh","ف")
  DefineXKBSym("Arabic_qaf","ق")
  DefineXKBSym("Arabic_kaf","ك")
  DefineXKBSym("Arabic_lam","ل")
  DefineXKBSym("Arabic_meem","م")
  DefineXKBSym("Arabic_noon","ن")
  DefineXKBSym("Arabic_ha","ه")
  DefineXKBSym("Arabic_waw","و")
  DefineXKBSym("Arabic_alefmaksura","ى")
  DefineXKBSym("Arabic_yeh","ي")
  DefineXKBSym("Arabic_fathatan","ً")
  DefineXKBSym("Arabic_dammatan","ٌ")
  DefineXKBSym("Arabic_kasratan","ٍ")
  DefineXKBSym("Arabic_fatha","َ")
  DefineXKBSym("Arabic_damma","ُ")
  DefineXKBSym("Arabic_kasra","ِ")
  DefineXKBSym("Arabic_shadda","ّ")
  DefineXKBSym("Arabic_sukun","ْ")
  DefineXKBSym("Arabic_madda_above","ٓ")
  DefineXKBSym("Arabic_hamza_above","ٔ")
  DefineXKBSym("Arabic_hamza_below","ٕ")
  DefineXKBSym("Arabic_jeh","ژ")
  DefineXKBSym("Arabic_veh","ڤ")
  DefineXKBSym("Arabic_keheh","ک")
  DefineXKBSym("Arabic_gaf","گ")
  DefineXKBSym("Arabic_noon_ghunna","ں")
  DefineXKBSym("Arabic_heh_doachashmee","ھ")
  DefineXKBSym("Farsi_yeh","ی")
  DefineXKBSym("Arabic_farsi_yeh","ی")
  DefineXKBSym("Arabic_yeh_baree","ے")
  DefineXKBSym("Arabic_heh_goal","ہ")
  DefineXKBSym("Cyrillic_GHE_bar","Ғ")
  DefineXKBSym("Cyrillic_ghe_bar","ғ")
  DefineXKBSym("Cyrillic_ZHE_descender","Җ")
  DefineXKBSym("Cyrillic_zhe_descender","җ")
  DefineXKBSym("Cyrillic_KA_descender","Қ")
  DefineXKBSym("Cyrillic_ka_descender","қ")
  DefineXKBSym("Cyrillic_KA_vertstroke","Ҝ")
  DefineXKBSym("Cyrillic_ka_vertstroke","ҝ")
  DefineXKBSym("Cyrillic_EN_descender","Ң")
  DefineXKBSym("Cyrillic_en_descender","ң")
  DefineXKBSym("Cyrillic_U_straight","Ү")
  DefineXKBSym("Cyrillic_u_straight","ү")
  DefineXKBSym("Cyrillic_U_straight_bar","Ұ")
  DefineXKBSym("Cyrillic_u_straight_bar","ұ")
  DefineXKBSym("Cyrillic_HA_descender","Ҳ")
  DefineXKBSym("Cyrillic_ha_descender","ҳ")
  DefineXKBSym("Cyrillic_CHE_descender","Ҷ")
  DefineXKBSym("Cyrillic_che_descender","ҷ")
  DefineXKBSym("Cyrillic_CHE_vertstroke","Ҹ")
  DefineXKBSym("Cyrillic_che_vertstroke","ҹ")
  DefineXKBSym("Cyrillic_SHHA","Һ")
  DefineXKBSym("Cyrillic_shha","һ")
  DefineXKBSym("Cyrillic_SCHWA","Ә")
  DefineXKBSym("Cyrillic_schwa","ә")
  DefineXKBSym("Cyrillic_I_macron","Ӣ")
  DefineXKBSym("Cyrillic_i_macron","ӣ")
  DefineXKBSym("Cyrillic_O_bar","Ө")
  DefineXKBSym("Cyrillic_o_bar","ө")
  DefineXKBSym("Cyrillic_U_macron","Ӯ")
  DefineXKBSym("Cyrillic_u_macron","ӯ")
  DefineXKBSym("Serbian_dje","ђ")
  DefineXKBSym("Macedonia_gje","ѓ")
  DefineXKBSym("Cyrillic_io","ё")
  DefineXKBSym("Ukrainian_ie","є")
  DefineXKBSym("Macedonia_dse","ѕ")
  DefineXKBSym("Ukrainian_i","і")
  DefineXKBSym("Ukrainian_yi","ї")
  DefineXKBSym("Cyrillic_je","ј")
  DefineXKBSym("Cyrillic_lje","љ")
  DefineXKBSym("Cyrillic_nje","њ")
  DefineXKBSym("Serbian_tshe","ћ")
  DefineXKBSym("Macedonia_kje","ќ")
  DefineXKBSym("Ukrainian_ghe_with_upturn","ґ")
  DefineXKBSym("Byelorussian_shortu","ў")
  DefineXKBSym("Cyrillic_dzhe","џ")
  DefineXKBSym("numerosign","№")
  DefineXKBSym("Serbian_DJE","Ђ")
  DefineXKBSym("Macedonia_GJE","Ѓ")
  DefineXKBSym("Cyrillic_IO","Ё")
  DefineXKBSym("Ukrainian_IE","Є")
  DefineXKBSym("Macedonia_DSE","Ѕ")
  DefineXKBSym("Ukrainian_I","І")
  DefineXKBSym("Ukrainian_YI","Ї")
  DefineXKBSym("Cyrillic_JE","Ј")
  DefineXKBSym("Cyrillic_LJE","Љ")
  DefineXKBSym("Cyrillic_NJE","Њ")
  DefineXKBSym("Serbian_TSHE","Ћ")
  DefineXKBSym("Macedonia_KJE","Ќ")
  DefineXKBSym("Ukrainian_GHE_WITH_UPTURN","Ґ")
  DefineXKBSym("Byelorussian_SHORTU","Ў")
  DefineXKBSym("Cyrillic_DZHE","Џ")
  DefineXKBSym("Cyrillic_yu","ю")
  DefineXKBSym("Cyrillic_a","а")
  DefineXKBSym("Cyrillic_be","б")
  DefineXKBSym("Cyrillic_tse","ц")
  DefineXKBSym("Cyrillic_de","д")
  DefineXKBSym("Cyrillic_ie","е")
  DefineXKBSym("Cyrillic_ef","ф")
  DefineXKBSym("Cyrillic_ghe","г")
  DefineXKBSym("Cyrillic_ha","х")
  DefineXKBSym("Cyrillic_i","и")
  DefineXKBSym("Cyrillic_shorti","й")
  DefineXKBSym("Cyrillic_ka","к")
  DefineXKBSym("Cyrillic_el","л")
  DefineXKBSym("Cyrillic_em","м")
  DefineXKBSym("Cyrillic_en","н")
  DefineXKBSym("Cyrillic_o","о")
  DefineXKBSym("Cyrillic_pe","п")
  DefineXKBSym("Cyrillic_ya","я")
  DefineXKBSym("Cyrillic_er","р")
  DefineXKBSym("Cyrillic_es","с")
  DefineXKBSym("Cyrillic_te","т")
  DefineXKBSym("Cyrillic_u","у")
  DefineXKBSym("Cyrillic_zhe","ж")
  DefineXKBSym("Cyrillic_ve","в")
  DefineXKBSym("Cyrillic_softsign","ь")
  DefineXKBSym("Cyrillic_yeru","ы")
  DefineXKBSym("Cyrillic_ze","з")
  DefineXKBSym("Cyrillic_sha","ш")
  DefineXKBSym("Cyrillic_e","э")
  DefineXKBSym("Cyrillic_shcha","щ")
  DefineXKBSym("Cyrillic_che","ч")
  DefineXKBSym("Cyrillic_hardsign","ъ")
  DefineXKBSym("Cyrillic_YU","Ю")
  DefineXKBSym("Cyrillic_A","А")
  DefineXKBSym("Cyrillic_BE","Б")
  DefineXKBSym("Cyrillic_TSE","Ц")
  DefineXKBSym("Cyrillic_DE","Д")
  DefineXKBSym("Cyrillic_IE","Е")
  DefineXKBSym("Cyrillic_EF","Ф")
  DefineXKBSym("Cyrillic_GHE","Г")
  DefineXKBSym("Cyrillic_HA","Х")
  DefineXKBSym("Cyrillic_I","И")
  DefineXKBSym("Cyrillic_SHORTI","Й")
  DefineXKBSym("Cyrillic_KA","К")
  DefineXKBSym("Cyrillic_EL","Л")
  DefineXKBSym("Cyrillic_EM","М")
  DefineXKBSym("Cyrillic_EN","Н")
  DefineXKBSym("Cyrillic_O","О")
  DefineXKBSym("Cyrillic_PE","П")
  DefineXKBSym("Cyrillic_YA","Я")
  DefineXKBSym("Cyrillic_ER","Р")
  DefineXKBSym("Cyrillic_ES","С")
  DefineXKBSym("Cyrillic_TE","Т")
  DefineXKBSym("Cyrillic_U","У")
  DefineXKBSym("Cyrillic_ZHE","Ж")
  DefineXKBSym("Cyrillic_VE","В")
  DefineXKBSym("Cyrillic_SOFTSIGN","Ь")
  DefineXKBSym("Cyrillic_YERU","Ы")
  DefineXKBSym("Cyrillic_ZE","З")
  DefineXKBSym("Cyrillic_SHA","Ш")
  DefineXKBSym("Cyrillic_E","Э")
  DefineXKBSym("Cyrillic_SHCHA","Щ")
  DefineXKBSym("Cyrillic_CHE","Ч")
  DefineXKBSym("Cyrillic_HARDSIGN","Ъ")
  DefineXKBSym("Greek_ALPHAaccent","Ά")
  DefineXKBSym("Greek_EPSILONaccent","Έ")
  DefineXKBSym("Greek_ETAaccent","Ή")
  DefineXKBSym("Greek_IOTAaccent","Ί")
  DefineXKBSym("Greek_IOTAdieresis","Ϊ")
  DefineXKBSym("Greek_OMICRONaccent","Ό")
  DefineXKBSym("Greek_UPSILONaccent","Ύ")
  DefineXKBSym("Greek_UPSILONdieresis","Ϋ")
  DefineXKBSym("Greek_OMEGAaccent","Ώ")
  DefineXKBSym("Greek_accentdieresis","΅")
  DefineXKBSym("Greek_horizbar","―")
  DefineXKBSym("Greek_alphaaccent","ά")
  DefineXKBSym("Greek_epsilonaccent","έ")
  DefineXKBSym("Greek_etaaccent","ή")
  DefineXKBSym("Greek_iotaaccent","ί")
  DefineXKBSym("Greek_iotadieresis","ϊ")
  DefineXKBSym("Greek_iotaaccentdieresis","ΐ")
  DefineXKBSym("Greek_omicronaccent","ό")
  DefineXKBSym("Greek_upsilonaccent","ύ")
  DefineXKBSym("Greek_upsilondieresis","ϋ")
  DefineXKBSym("Greek_upsilonaccentdieresis","ΰ")
  DefineXKBSym("Greek_omegaaccent","ώ")
  DefineXKBSym("Greek_ALPHA","Α")
  DefineXKBSym("Greek_BETA","Β")
  DefineXKBSym("Greek_GAMMA","Γ")
  DefineXKBSym("Greek_DELTA","Δ")
  DefineXKBSym("Greek_EPSILON","Ε")
  DefineXKBSym("Greek_ZETA","Ζ")
  DefineXKBSym("Greek_ETA","Η")
  DefineXKBSym("Greek_THETA","Θ")
  DefineXKBSym("Greek_IOTA","Ι")
  DefineXKBSym("Greek_KAPPA","Κ")
  DefineXKBSym("Greek_LAMDA","Λ")
  DefineXKBSym("Greek_LAMBDA","Λ")
  DefineXKBSym("Greek_MU","Μ")
  DefineXKBSym("Greek_NU","Ν")
  DefineXKBSym("Greek_XI","Ξ")
  DefineXKBSym("Greek_OMICRON","Ο")
  DefineXKBSym("Greek_PI","Π")
  DefineXKBSym("Greek_RHO","Ρ")
  DefineXKBSym("Greek_SIGMA","Σ")
  DefineXKBSym("Greek_TAU","Τ")
  DefineXKBSym("Greek_UPSILON","Υ")
  DefineXKBSym("Greek_PHI","Φ")
  DefineXKBSym("Greek_CHI","Χ")
  DefineXKBSym("Greek_PSI","Ψ")
  DefineXKBSym("Greek_OMEGA","Ω")
  DefineXKBSym("Greek_alpha","α")
  DefineXKBSym("Greek_beta","β")
  DefineXKBSym("Greek_gamma","γ")
  DefineXKBSym("Greek_delta","δ")
  DefineXKBSym("Greek_epsilon","ε")
  DefineXKBSym("Greek_zeta","ζ")
  DefineXKBSym("Greek_eta","η")
  DefineXKBSym("Greek_theta","θ")
  DefineXKBSym("Greek_iota","ι")
  DefineXKBSym("Greek_kappa","κ")
  DefineXKBSym("Greek_lamda","λ")
  DefineXKBSym("Greek_lambda","λ")
  DefineXKBSym("Greek_mu","μ")
  DefineXKBSym("Greek_nu","ν")
  DefineXKBSym("Greek_xi","ξ")
  DefineXKBSym("Greek_omicron","ο")
  DefineXKBSym("Greek_pi","π")
  DefineXKBSym("Greek_rho","ρ")
  DefineXKBSym("Greek_sigma","σ")
  DefineXKBSym("Greek_finalsmallsigma","ς")
  DefineXKBSym("Greek_tau","τ")
  DefineXKBSym("Greek_upsilon","υ")
  DefineXKBSym("Greek_phi","φ")
  DefineXKBSym("Greek_chi","χ")
  DefineXKBSym("Greek_psi","ψ")
  DefineXKBSym("Greek_omega","ω")
  DefineXKBSym("leftradical","⎷")
  DefineXKBSym("topleftradical","┌")
  DefineXKBSym("horizconnector","─")
  DefineXKBSym("topintegral","⌠")
  DefineXKBSym("botintegral","⌡")
  DefineXKBSym("vertconnector","│")
  DefineXKBSym("topleftsqbracket","⎡")
  DefineXKBSym("botleftsqbracket","⎣")
  DefineXKBSym("toprightsqbracket","⎤")
  DefineXKBSym("botrightsqbracket","⎦")
  DefineXKBSym("topleftparens","⎛")
  DefineXKBSym("botleftparens","⎝")
  DefineXKBSym("toprightparens","⎞")
  DefineXKBSym("botrightparens","⎠")
  DefineXKBSym("leftmiddlecurlybrace","⎨")
  DefineXKBSym("rightmiddlecurlybrace","⎬")
  DefineXKBSym("lessthanequal","≤")
  DefineXKBSym("notequal","≠")
  DefineXKBSym("greaterthanequal","≥")
  DefineXKBSym("integral","∫")
  DefineXKBSym("therefore","∴")
  DefineXKBSym("variation","∝")
  DefineXKBSym("infinity","∞")
  DefineXKBSym("nabla","∇")
  DefineXKBSym("approximate","∼")
  DefineXKBSym("similarequal","≃")
  DefineXKBSym("ifonlyif","⇔")
  DefineXKBSym("implies","⇒")
  DefineXKBSym("identical","≡")
  DefineXKBSym("radical","√")
  DefineXKBSym("includedin","⊂")
  DefineXKBSym("includes","⊃")
  DefineXKBSym("intersection","∩")
  DefineXKBSym("union","∪")
  DefineXKBSym("logicaland","∧")
  DefineXKBSym("logicalor","∨")
  DefineXKBSym("partialderivative","∂")
  DefineXKBSym("function","ƒ")
  DefineXKBSym("leftarrow","←")
  DefineXKBSym("uparrow","↑")
  DefineXKBSym("rightarrow","→")
  DefineXKBSym("downarrow","↓")
  DefineXKBSym("soliddiamond","◆")
  DefineXKBSym("checkerboard","▒")
  DefineXKBSym("ht","␉")
  DefineXKBSym("ff","␌")
  DefineXKBSym("cr","␍")
  DefineXKBSym("lf","␊")
  DefineXKBSym("nl","␤")
  DefineXKBSym("vt","␋")
  DefineXKBSym("lowrightcorner","┘")
  DefineXKBSym("uprightcorner","┐")
  DefineXKBSym("upleftcorner","┌")
  DefineXKBSym("lowleftcorner","└")
  DefineXKBSym("crossinglines","┼")
  DefineXKBSym("horizlinescan1","⎺")
  DefineXKBSym("horizlinescan3","⎻")
  DefineXKBSym("horizlinescan5","─")
  DefineXKBSym("horizlinescan7","⎼")
  DefineXKBSym("horizlinescan9","⎽")
  DefineXKBSym("leftt","├")
  DefineXKBSym("rightt","┤")
  DefineXKBSym("bott","┴")
  DefineXKBSym("topt","┬")
  DefineXKBSym("vertbar","│")
  DefineXKBSym("emspace"," ")
  DefineXKBSym("enspace"," ")
  DefineXKBSym("em3space"," ")
  DefineXKBSym("em4space"," ")
  DefineXKBSym("digitspace"," ")
  DefineXKBSym("punctspace"," ")
  DefineXKBSym("thinspace"," ")
  DefineXKBSym("hairspace"," ")
  DefineXKBSym("emdash","—")
  DefineXKBSym("endash","–")
  DefineXKBSym("signifblank","␣")
  DefineXKBSym("ellipsis","…")
  DefineXKBSym("doubbaselinedot","‥")
  DefineXKBSym("onethird","⅓")
  DefineXKBSym("twothirds","⅔")
  DefineXKBSym("onefifth","⅕")
  DefineXKBSym("twofifths","⅖")
  DefineXKBSym("threefifths","⅗")
  DefineXKBSym("fourfifths","⅘")
  DefineXKBSym("onesixth","⅙")
  DefineXKBSym("fivesixths","⅚")
  DefineXKBSym("careof","℅")
  DefineXKBSym("figdash","‒")
  DefineXKBSym("leftanglebracket","⟨")
  DefineXKBSym("decimalpoint",".")
  DefineXKBSym("rightanglebracket","⟩")
  DefineXKBSym("oneeighth","⅛")
  DefineXKBSym("threeeighths","⅜")
  DefineXKBSym("fiveeighths","⅝")
  DefineXKBSym("seveneighths","⅞")
  DefineXKBSym("trademark","™")
  DefineXKBSym("signaturemark","☓")
  DefineXKBSym("leftopentriangle","◁")
  DefineXKBSym("rightopentriangle","▷")
  DefineXKBSym("emopencircle","○")
  DefineXKBSym("emopenrectangle","▯")
  DefineXKBSym("leftsinglequotemark","‘")
  DefineXKBSym("rightsinglequotemark","’")
  DefineXKBSym("leftdoublequotemark","“")
  DefineXKBSym("rightdoublequotemark","”")
  DefineXKBSym("prescription","℞")
  DefineXKBSym("minutes","′")
  DefineXKBSym("seconds","″")
  DefineXKBSym("latincross","✝")
  DefineXKBSym("filledrectbullet","▬")
  DefineXKBSym("filledlefttribullet","◀")
  DefineXKBSym("filledrighttribullet","▶")
  DefineXKBSym("emfilledcircle","●")
  DefineXKBSym("emfilledrect","▮")
  DefineXKBSym("enopencircbullet","◦")
  DefineXKBSym("enopensquarebullet","▫")
  DefineXKBSym("openrectbullet","▭")
  DefineXKBSym("opentribulletup","△")
  DefineXKBSym("opentribulletdown","▽")
  DefineXKBSym("openstar","☆")
  DefineXKBSym("enfilledcircbullet","•")
  DefineXKBSym("enfilledsqbullet","▪")
  DefineXKBSym("filledtribulletup","▲")
  DefineXKBSym("filledtribulletdown","▼")
  DefineXKBSym("leftpointer","☜")
  DefineXKBSym("rightpointer","☞")
  DefineXKBSym("club","♣")
  DefineXKBSym("diamond","♦")
  DefineXKBSym("heart","♥")
  DefineXKBSym("maltesecross","✠")
  DefineXKBSym("dagger","†")
  DefineXKBSym("doubledagger","‡")
  DefineXKBSym("checkmark","✓")
  DefineXKBSym("ballotcross","✗")
  DefineXKBSym("musicalsharp","♯")
  DefineXKBSym("musicalflat","♭")
  DefineXKBSym("malesymbol","♂")
  DefineXKBSym("femalesymbol","♀")
  DefineXKBSym("telephone","☎")
  DefineXKBSym("telephonerecorder","⌕")
  DefineXKBSym("phonographcopyright","℗")
  DefineXKBSym("caret","‸")
  DefineXKBSym("singlelowquotemark","‚")
  DefineXKBSym("doublelowquotemark","„")
  DefineXKBSym("leftcaret","<")
  DefineXKBSym("rightcaret",">")
  DefineXKBSym("downcaret","∨")
  DefineXKBSym("upcaret","∧")
  DefineXKBSym("overbar","¯")
  DefineXKBSym("downtack","⊥")
  DefineXKBSym("upshoe","∩")
  DefineXKBSym("downstile","⌊")
  DefineXKBSym("underbar","_")
  DefineXKBSym("jot","∘")
  DefineXKBSym("quad","⎕")
  DefineXKBSym("uptack","⊤")
  DefineXKBSym("circle","○")
  DefineXKBSym("upstile","⌈")
  DefineXKBSym("downshoe","∪")
  DefineXKBSym("rightshoe","⊃")
  DefineXKBSym("leftshoe","⊂")
  DefineXKBSym("lefttack","⊢")
  DefineXKBSym("righttack","⊣")
  DefineXKBSym("hebrew_doublelowline","‗")
  DefineXKBSym("hebrew_aleph","א")
  DefineXKBSym("hebrew_bet","ב")
  DefineXKBSym("hebrew_beth","ב")                     ; deprecated
  DefineXKBSym("hebrew_gimel","ג")
  DefineXKBSym("hebrew_gimmel","ג")                   ; deprecated
  DefineXKBSym("hebrew_dalet","ד")
  DefineXKBSym("hebrew_daleth","ד")                   ; deprecated
  DefineXKBSym("hebrew_he","ה")
  DefineXKBSym("hebrew_waw","ו")
  DefineXKBSym("hebrew_zain","ז")
  DefineXKBSym("hebrew_zayin","ז")                    ; deprecated
  DefineXKBSym("hebrew_chet","ח")
  DefineXKBSym("hebrew_het","ח")                      ; deprecated
  DefineXKBSym("hebrew_tet","ט")
  DefineXKBSym("hebrew_teth","ט")                     ; deprecated
  DefineXKBSym("hebrew_yod","י")
  DefineXKBSym("hebrew_finalkaph","ך")
  DefineXKBSym("hebrew_kaph","כ")
  DefineXKBSym("hebrew_lamed","ל")
  DefineXKBSym("hebrew_finalmem","ם")
  DefineXKBSym("hebrew_mem","מ")
  DefineXKBSym("hebrew_finalnun","ן")
  DefineXKBSym("hebrew_nun","נ")
  DefineXKBSym("hebrew_samech","ס")
  DefineXKBSym("hebrew_samekh","ס")                   ; deprecated
  DefineXKBSym("hebrew_ayin","ע2")
  DefineXKBSym("hebrew_finalpe","ף")
  DefineXKBSym("hebrew_pe","פ")
  DefineXKBSym("hebrew_finalzade","ץ")
  DefineXKBSym("hebrew_finalzadi","ץ")                ; deprecated
  DefineXKBSym("hebrew_zade","צ")
  DefineXKBSym("hebrew_zadi","צ")                     ; deprecated
  DefineXKBSym("hebrew_qoph","ק")
  DefineXKBSym("hebrew_kuf","ק")                      ; deprecated
  DefineXKBSym("hebrew_resh","ר")
  DefineXKBSym("hebrew_shin","ש")
  DefineXKBSym("hebrew_taw","ת")
  DefineXKBSym("hebrew_taf","ת")                      ; deprecated
  DefineXKBSym("Thai_kokai","ก")
  DefineXKBSym("Thai_khokhai","ข")
  DefineXKBSym("Thai_khokhuat","ฃ")
  DefineXKBSym("Thai_khokhwai","ค")
  DefineXKBSym("Thai_khokhon","ฅ")
  DefineXKBSym("Thai_khorakhang","ฆ")
  DefineXKBSym("Thai_ngongu","ง")
  DefineXKBSym("Thai_chochan","จ")
  DefineXKBSym("Thai_choching","ฉ")
  DefineXKBSym("Thai_chochang","ช")
  DefineXKBSym("Thai_soso","ซ")
  DefineXKBSym("Thai_chochoe","ฌ")
  DefineXKBSym("Thai_yoying","ญ")
  DefineXKBSym("Thai_dochada","ฎ")
  DefineXKBSym("Thai_topatak","ฏ")
  DefineXKBSym("Thai_thothan","ฐ")
  DefineXKBSym("Thai_thonangmontho","ฑ")
  DefineXKBSym("Thai_thophuthao","ฒ")
  DefineXKBSym("Thai_nonen","ณ")
  DefineXKBSym("Thai_dodek","ด")
  DefineXKBSym("Thai_totao","ต")
  DefineXKBSym("Thai_thothung","ถ")
  DefineXKBSym("Thai_thothahan","ท")
  DefineXKBSym("Thai_thothong","ธ")
  DefineXKBSym("Thai_nonu","น")
  DefineXKBSym("Thai_bobaimai","บ")
  DefineXKBSym("Thai_popla","ป")
  DefineXKBSym("Thai_phophung","ผ")
  DefineXKBSym("Thai_fofa","ฝ")
  DefineXKBSym("Thai_phophan","พ")
  DefineXKBSym("Thai_fofan","ฟ")
  DefineXKBSym("Thai_phosamphao","ภ")
  DefineXKBSym("Thai_moma","ม")
  DefineXKBSym("Thai_yoyak","ย")
  DefineXKBSym("Thai_rorua","ร")
  DefineXKBSym("Thai_ru","ฤ")
  DefineXKBSym("Thai_loling","ล")
  DefineXKBSym("Thai_lu","ฦ")
  DefineXKBSym("Thai_wowaen","ว")
  DefineXKBSym("Thai_sosala","ศ")
  DefineXKBSym("Thai_sorusi","ษ")
  DefineXKBSym("Thai_sosua","ส")
  DefineXKBSym("Thai_hohip","ห")
  DefineXKBSym("Thai_lochula","ฬ")
  DefineXKBSym("Thai_oang","อ")
  DefineXKBSym("Thai_honokhuk","ฮ")
  DefineXKBSym("Thai_paiyannoi","ฯ")
  DefineXKBSym("Thai_saraa","ะ")
  DefineXKBSym("Thai_maihanakat","ั")
  DefineXKBSym("Thai_saraaa","า")
  DefineXKBSym("Thai_saraam","ำ")
  DefineXKBSym("Thai_sarai","ิ")
  DefineXKBSym("Thai_saraii","ี")
  DefineXKBSym("Thai_saraue","ึ")
  DefineXKBSym("Thai_sarauee","ื")
  DefineXKBSym("Thai_sarau","ุ")
  DefineXKBSym("Thai_sarauu","ู")
  DefineXKBSym("Thai_phinthu","ฺ")
  DefineXKBSym("Thai_baht","฿")
  DefineXKBSym("Thai_sarae","เ")
  DefineXKBSym("Thai_saraae","แ")
  DefineXKBSym("Thai_sarao","โ")
  DefineXKBSym("Thai_saraaimaimuan","ใ")
  DefineXKBSym("Thai_saraaimaimalai","ไ")
  DefineXKBSym("Thai_lakkhangyao","ๅ")
  DefineXKBSym("Thai_maiyamok","ๆ")
  DefineXKBSym("Thai_maitaikhu","็")
  DefineXKBSym("Thai_maiek","่")
  DefineXKBSym("Thai_maitho","้")
  DefineXKBSym("Thai_maitri","๊")
  DefineXKBSym("Thai_maichattawa","๋")
  DefineXKBSym("Thai_thanthakhat","์")
  DefineXKBSym("Thai_nikhahit","ํ")
  DefineXKBSym("Thai_leksun","๐")
  DefineXKBSym("Thai_leknung","๑")
  DefineXKBSym("Thai_leksong","๒")
  DefineXKBSym("Thai_leksam","๓")
  DefineXKBSym("Thai_leksi","๔")
  DefineXKBSym("Thai_lekha","๕")
  DefineXKBSym("Thai_lekhok","๖")
  DefineXKBSym("Thai_lekchet","๗")
  DefineXKBSym("Thai_lekpaet","๘")
  DefineXKBSym("Thai_lekkao","๙")
  DefineXKBSym("Korean_Won","₩")
  DefineXKBSym("Armenian_ligature_ew","և")
  DefineXKBSym("Armenian_full_stop","։")
  DefineXKBSym("Armenian_verjaket","։")
  DefineXKBSym("Armenian_separation_mark","՝")
  DefineXKBSym("Armenian_but","՝")
  DefineXKBSym("Armenian_hyphen","֊")
  DefineXKBSym("Armenian_yentamna","֊")
  DefineXKBSym("Armenian_exclam","՜")
  DefineXKBSym("Armenian_amanak","՜")
  DefineXKBSym("Armenian_accent","՛")
  DefineXKBSym("Armenian_shesht","՛")
  DefineXKBSym("Armenian_question","՞")
  DefineXKBSym("Armenian_paruyk","՞")
  DefineXKBSym("Armenian_AYB","Ա")
  DefineXKBSym("Armenian_ayb","ա")
  DefineXKBSym("Armenian_BEN","Բ")
  DefineXKBSym("Armenian_ben","բ")
  DefineXKBSym("Armenian_GIM","Գ")
  DefineXKBSym("Armenian_gim","գ")
  DefineXKBSym("Armenian_DA","Դ")
  DefineXKBSym("Armenian_da","դ")
  DefineXKBSym("Armenian_YECH","Ե")
  DefineXKBSym("Armenian_yech","ե")
  DefineXKBSym("Armenian_ZA","Զ")
  DefineXKBSym("Armenian_za","զ")
  DefineXKBSym("Armenian_E","Է")
  DefineXKBSym("Armenian_e","է")
  DefineXKBSym("Armenian_AT","Ը")
  DefineXKBSym("Armenian_at","ը")
  DefineXKBSym("Armenian_TO","Թ")
  DefineXKBSym("Armenian_to","թ")
  DefineXKBSym("Armenian_ZHE","Ժ")
  DefineXKBSym("Armenian_zhe","ժ")
  DefineXKBSym("Armenian_INI","Ի")
  DefineXKBSym("Armenian_ini","ի")
  DefineXKBSym("Armenian_LYUN","Լ")
  DefineXKBSym("Armenian_lyun","լ")
  DefineXKBSym("Armenian_KHE","Խ")
  DefineXKBSym("Armenian_khe","խ")
  DefineXKBSym("Armenian_TSA","Ծ")
  DefineXKBSym("Armenian_tsa","ծ")
  DefineXKBSym("Armenian_KEN","Կ")
  DefineXKBSym("Armenian_ken","կ")
  DefineXKBSym("Armenian_HO","Հ")
  DefineXKBSym("Armenian_ho","հ")
  DefineXKBSym("Armenian_DZA","Ձ")
  DefineXKBSym("Armenian_dza","ձ")
  DefineXKBSym("Armenian_GHAT","Ղ")
  DefineXKBSym("Armenian_ghat","ղ")
  DefineXKBSym("Armenian_TCHE","Ճ")
  DefineXKBSym("Armenian_tche","ճ")
  DefineXKBSym("Armenian_MEN","Մ")
  DefineXKBSym("Armenian_men","մ")
  DefineXKBSym("Armenian_HI","Յ")
  DefineXKBSym("Armenian_hi","յ")
  DefineXKBSym("Armenian_NU","Ն")
  DefineXKBSym("Armenian_nu","ն")
  DefineXKBSym("Armenian_SHA","Շ")
  DefineXKBSym("Armenian_sha","շ")
  DefineXKBSym("Armenian_VO","Ո")
  DefineXKBSym("Armenian_vo","ո")
  DefineXKBSym("Armenian_CHA","Չ")
  DefineXKBSym("Armenian_cha","չ")
  DefineXKBSym("Armenian_PE","Պ")
  DefineXKBSym("Armenian_pe","պ")
  DefineXKBSym("Armenian_JE","Ջ")
  DefineXKBSym("Armenian_je","ջ")
  DefineXKBSym("Armenian_RA","Ռ")
  DefineXKBSym("Armenian_ra","ռ")
  DefineXKBSym("Armenian_SE","Ս")
  DefineXKBSym("Armenian_se","ս")
  DefineXKBSym("Armenian_VEV","Վ")
  DefineXKBSym("Armenian_vev","վ")
  DefineXKBSym("Armenian_TYUN","Տ")
  DefineXKBSym("Armenian_tyun","տ")
  DefineXKBSym("Armenian_RE","Ր")
  DefineXKBSym("Armenian_re","ր")
  DefineXKBSym("Armenian_TSO","Ց")
  DefineXKBSym("Armenian_tso","ց")
  DefineXKBSym("Armenian_VYUN","Ւ")
  DefineXKBSym("Armenian_vyun","ւ")
  DefineXKBSym("Armenian_PYUR","Փ")
  DefineXKBSym("Armenian_pyur","փ")
  DefineXKBSym("Armenian_KE","Ք")
  DefineXKBSym("Armenian_ke","ք")
  DefineXKBSym("Armenian_O","Օ")
  DefineXKBSym("Armenian_o","օ")
  DefineXKBSym("Armenian_FE","Ֆ")
  DefineXKBSym("Armenian_fe","ֆ")
  DefineXKBSym("Armenian_apostrophe","՚")
  DefineXKBSym("Georgian_an","ა")
  DefineXKBSym("Georgian_ban","ბ")
  DefineXKBSym("Georgian_gan","გ")
  DefineXKBSym("Georgian_don","დ")
  DefineXKBSym("Georgian_en","ე")
  DefineXKBSym("Georgian_vin","ვ")
  DefineXKBSym("Georgian_zen","ზ")
  DefineXKBSym("Georgian_tan","თ")
  DefineXKBSym("Georgian_in","ი")
  DefineXKBSym("Georgian_kan","კ")
  DefineXKBSym("Georgian_las","ლ")
  DefineXKBSym("Georgian_man","მ")
  DefineXKBSym("Georgian_nar","ნ")
  DefineXKBSym("Georgian_on","ო")
  DefineXKBSym("Georgian_par","პ")
  DefineXKBSym("Georgian_zhar","ჟ")
  DefineXKBSym("Georgian_rae","რ")
  DefineXKBSym("Georgian_san","ს")
  DefineXKBSym("Georgian_tar","ტ")
  DefineXKBSym("Georgian_un","უ")
  DefineXKBSym("Georgian_phar","ფ")
  DefineXKBSym("Georgian_khar","ქ")
  DefineXKBSym("Georgian_ghan","ღ")
  DefineXKBSym("Georgian_qar","ყ")
  DefineXKBSym("Georgian_shin","შ")
  DefineXKBSym("Georgian_chin","ჩ")
  DefineXKBSym("Georgian_can","ც")
  DefineXKBSym("Georgian_jil","ძ")
  DefineXKBSym("Georgian_cil","წ")
  DefineXKBSym("Georgian_char","ჭ")
  DefineXKBSym("Georgian_xan","ხ")
  DefineXKBSym("Georgian_jhan","ჯ")
  DefineXKBSym("Georgian_hae","ჰ")
  DefineXKBSym("Georgian_he","ჱ")
  DefineXKBSym("Georgian_hie","ჲ")
  DefineXKBSym("Georgian_we","ჳ")
  DefineXKBSym("Georgian_har","ჴ")
  DefineXKBSym("Georgian_hoe","ჵ")
  DefineXKBSym("Georgian_fi","ჶ")
  DefineXKBSym("Xabovedot","Ẋ")
  DefineXKBSym("Ibreve","Ĭ")
  DefineXKBSym("Zstroke","Ƶ")
  DefineXKBSym("Gcaron","Ǧ")
  DefineXKBSym("Ocaron","ǒ")
  DefineXKBSym("Obarred","Ɵ")
  DefineXKBSym("xabovedot","ẋ")
  DefineXKBSym("ibreve","ĭ")
  DefineXKBSym("zstroke","ƶ")
  DefineXKBSym("gcaron","ǧ")
  DefineXKBSym("ocaron","ǒ")
  DefineXKBSym("obarred","ɵ")
  DefineXKBSym("SCHWA","Ə")
  DefineXKBSym("schwa","ə")
  DefineXKBSym("Lbelowdot","Ḷ")
  DefineXKBSym("lbelowdot","ḷ")
  DefineXKBSym("Abelowdot","Ạ")
  DefineXKBSym("abelowdot","ạ")
  DefineXKBSym("Ahook","Ả")
  DefineXKBSym("ahook","ả")
  DefineXKBSym("Acircumflexacute","Ấ")
  DefineXKBSym("acircumflexacute","ấ")
  DefineXKBSym("Acircumflexgrave","Ầ")
  DefineXKBSym("acircumflexgrave","ầ")
  DefineXKBSym("Acircumflexhook","Ẩ")
  DefineXKBSym("acircumflexhook","ẩ")
  DefineXKBSym("Acircumflextilde","Ẫ")
  DefineXKBSym("acircumflextilde","ẫ")
  DefineXKBSym("Acircumflexbelowdot","Ậ")
  DefineXKBSym("acircumflexbelowdot","ậ")
  DefineXKBSym("Abreveacute","Ắ")
  DefineXKBSym("abreveacute","ắ")
  DefineXKBSym("Abrevegrave","Ằ")
  DefineXKBSym("abrevegrave","ằ")
  DefineXKBSym("Abrevehook","Ẳ")
  DefineXKBSym("abrevehook","ẳ")
  DefineXKBSym("Abrevetilde","Ẵ")
  DefineXKBSym("abrevetilde","ẵ")
  DefineXKBSym("Abrevebelowdot","Ặ")
  DefineXKBSym("abrevebelowdot","ặ")
  DefineXKBSym("Ebelowdot","Ẹ")
  DefineXKBSym("ebelowdot","ẹ")
  DefineXKBSym("Ehook","Ẻ")
  DefineXKBSym("ehook","ẻ")
  DefineXKBSym("Etilde","Ẽ")
  DefineXKBSym("etilde","ẽ")
  DefineXKBSym("Ecircumflexacute","Ế")
  DefineXKBSym("ecircumflexacute","ế")
  DefineXKBSym("Ecircumflexgrave","Ề")
  DefineXKBSym("ecircumflexgrave","ề")
  DefineXKBSym("Ecircumflexhook","Ể")
  DefineXKBSym("ecircumflexhook","ể")
  DefineXKBSym("Ecircumflextilde","Ễ")
  DefineXKBSym("ecircumflextilde","ễ")
  DefineXKBSym("Ecircumflexbelowdot","Ệ")
  DefineXKBSym("ecircumflexbelowdot","ệ")
  DefineXKBSym("Ihook","Ỉ")
  DefineXKBSym("ihook","ỉ")
  DefineXKBSym("Ibelowdot","Ị")
  DefineXKBSym("ibelowdot","ị")
  DefineXKBSym("Obelowdot","Ọ")
  DefineXKBSym("obelowdot","ọ")
  DefineXKBSym("Ohook","Ỏ")
  DefineXKBSym("ohook","ỏ")
  DefineXKBSym("Ocircumflexacute","Ố")
  DefineXKBSym("ocircumflexacute","ố")
  DefineXKBSym("Ocircumflexgrave","Ồ")
  DefineXKBSym("ocircumflexgrave","ồ")
  DefineXKBSym("Ocircumflexhook","Ổ")
  DefineXKBSym("ocircumflexhook","ổ")
  DefineXKBSym("Ocircumflextilde","Ỗ")
  DefineXKBSym("ocircumflextilde","ỗ")
  DefineXKBSym("Ocircumflexbelowdot","Ộ")
  DefineXKBSym("ocircumflexbelowdot","ộ")
  DefineXKBSym("Ohornacute","Ớ")
  DefineXKBSym("ohornacute","ớ")
  DefineXKBSym("Ohorngrave","Ờ")
  DefineXKBSym("ohorngrave","ờ")
  DefineXKBSym("Ohornhook","Ở")
  DefineXKBSym("ohornhook","ở")
  DefineXKBSym("Ohorntilde","Ỡ")
  DefineXKBSym("ohorntilde","ỡ")
  DefineXKBSym("Ohornbelowdot","Ợ")
  DefineXKBSym("ohornbelowdot","ợ")
  DefineXKBSym("Ubelowdot","Ụ")
  DefineXKBSym("ubelowdot","ụ")
  DefineXKBSym("Uhook","Ủ")
  DefineXKBSym("uhook","ủ")
  DefineXKBSym("Uhornacute","Ứ")
  DefineXKBSym("uhornacute","ứ")
  DefineXKBSym("Uhorngrave","Ừ")
  DefineXKBSym("uhorngrave","ừ")
  DefineXKBSym("Uhornhook","Ử")
  DefineXKBSym("uhornhook","ử")
  DefineXKBSym("Uhorntilde","Ữ")
  DefineXKBSym("uhorntilde","ữ")
  DefineXKBSym("Uhornbelowdot","Ự")
  DefineXKBSym("uhornbelowdot","ự")
  DefineXKBSym("Ybelowdot","Ỵ")
  DefineXKBSym("ybelowdot","ỵ")
  DefineXKBSym("Yhook","Ỷ")
  DefineXKBSym("yhook","ỷ")
  DefineXKBSym("Ytilde","Ỹ")
  DefineXKBSym("ytilde","ỹ")
  DefineXKBSym("Ohorn","Ơ")
  DefineXKBSym("ohorn","ơ")
  DefineXKBSym("Uhorn","Ư")
  DefineXKBSym("uhorn","ư")
  DefineXKBSym("EcuSign","₠")
  DefineXKBSym("ColonSign","₡")
  DefineXKBSym("CruzeiroSign","₢")
  DefineXKBSym("FFrancSign","₣")
  DefineXKBSym("LiraSign","₤")
  DefineXKBSym("MillSign","₥")
  DefineXKBSym("NairaSign","₦")
  DefineXKBSym("PesetaSign","₧")
  DefineXKBSym("RupeeSign","₨")
  DefineXKBSym("WonSign","₩")
  DefineXKBSym("NewSheqelSign","₪")
  DefineXKBSym("DongSign","₫")
  DefineXKBSym("EuroSign","€")
  DefineXKBSym("zerosuperior","⁰")
  DefineXKBSym("foursuperior","⁴")
  DefineXKBSym("fivesuperior","⁵")
  DefineXKBSym("sixsuperior","⁶")
  DefineXKBSym("sevensuperior","⁷")
  DefineXKBSym("eightsuperior","⁸")
  DefineXKBSym("ninesuperior","⁹")
  DefineXKBSym("zerosubscript","₀")
  DefineXKBSym("onesubscript","₁")
  DefineXKBSym("twosubscript","₂")
  DefineXKBSym("threesubscript","₃")
  DefineXKBSym("foursubscript","₄")
  DefineXKBSym("fivesubscript","₅")
  DefineXKBSym("sixsubscript","₆")
  DefineXKBSym("sevensubscript","₇")
  DefineXKBSym("eightsubscript","₈")
  DefineXKBSym("ninesubscript","₉")
  DefineXKBSym("partdifferential","∂")
  DefineXKBSym("emptyset","∅")
  DefineXKBSym("elementof","∈")
  DefineXKBSym("notelementof","∉")
  DefineXKBSym("containsas","∋")
  DefineXKBSym("squareroot","√")
  DefineXKBSym("cuberoot","∛")
  DefineXKBSym("fourthroot","∜")
  DefineXKBSym("dintegral","∬")
  DefineXKBSym("tintegral","∭")
  DefineXKBSym("because","∵")
  DefineXKBSym("approxeq","≅")
  DefineXKBSym("notapproxeq","≇")
  DefineXKBSym("notidentical","≢")
  DefineXKBSym("stricteq","≣")
  DefineXKBSym("braille_blank","⠀")
  DefineXKBSym("braille_dots_1","⠁")
  DefineXKBSym("braille_dots_2","⠂")
  DefineXKBSym("braille_dots_12","⠃")
  DefineXKBSym("braille_dots_3","⠄")
  DefineXKBSym("braille_dots_13","⠅")
  DefineXKBSym("braille_dots_23","⠆")
  DefineXKBSym("braille_dots_123","⠇")
  DefineXKBSym("braille_dots_4","⠈")
  DefineXKBSym("braille_dots_14","⠉")
  DefineXKBSym("braille_dots_24","⠊")
  DefineXKBSym("braille_dots_124","⠋")
  DefineXKBSym("braille_dots_34","⠌")
  DefineXKBSym("braille_dots_134","⠍")
  DefineXKBSym("braille_dots_234","⠎")
  DefineXKBSym("braille_dots_1234","⠏")
  DefineXKBSym("braille_dots_5","⠐")
  DefineXKBSym("braille_dots_15","⠑")
  DefineXKBSym("braille_dots_25","⠒")
  DefineXKBSym("braille_dots_125","⠓")
  DefineXKBSym("braille_dots_35","⠔")
  DefineXKBSym("braille_dots_135","⠕")
  DefineXKBSym("braille_dots_235","⠖")
  DefineXKBSym("braille_dots_1235","⠗")
  DefineXKBSym("braille_dots_45","⠘")
  DefineXKBSym("braille_dots_145","⠙")
  DefineXKBSym("braille_dots_245","⠚")
  DefineXKBSym("braille_dots_1245","⠛")
  DefineXKBSym("braille_dots_345","⠜")
  DefineXKBSym("braille_dots_1345","⠝")
  DefineXKBSym("braille_dots_2345","⠞")
  DefineXKBSym("braille_dots_12345","⠟")
  DefineXKBSym("braille_dots_6","⠠")
  DefineXKBSym("braille_dots_16","⠡")
  DefineXKBSym("braille_dots_26","⠢")
  DefineXKBSym("braille_dots_126","⠣")
  DefineXKBSym("braille_dots_36","⠤")
  DefineXKBSym("braille_dots_136","⠥")
  DefineXKBSym("braille_dots_236","⠦")
  DefineXKBSym("braille_dots_1236","⠧")
  DefineXKBSym("braille_dots_46","⠨")
  DefineXKBSym("braille_dots_146","⠩")
  DefineXKBSym("braille_dots_246","⠪")
  DefineXKBSym("braille_dots_1246","⠫")
  DefineXKBSym("braille_dots_346","⠬")
  DefineXKBSym("braille_dots_1346","⠭")
  DefineXKBSym("braille_dots_2346","⠮")
  DefineXKBSym("braille_dots_12346","⠯")
  DefineXKBSym("braille_dots_56","⠰")
  DefineXKBSym("braille_dots_156","⠱")
  DefineXKBSym("braille_dots_256","⠲")
  DefineXKBSym("braille_dots_1256","⠳")
  DefineXKBSym("braille_dots_356","⠴")
  DefineXKBSym("braille_dots_1356","⠵")
  DefineXKBSym("braille_dots_2356","⠶")
  DefineXKBSym("braille_dots_12356","⠷")
  DefineXKBSym("braille_dots_456","⠸")
  DefineXKBSym("braille_dots_1456","⠹")
  DefineXKBSym("braille_dots_2456","⠺")
  DefineXKBSym("braille_dots_12456","⠻")
  DefineXKBSym("braille_dots_3456","⠼")
  DefineXKBSym("braille_dots_13456","⠽")
  DefineXKBSym("braille_dots_23456","⠾")
  DefineXKBSym("braille_dots_123456","⠿")
  DefineXKBSym("braille_dots_7","⡀")
  DefineXKBSym("braille_dots_17","⡁")
  DefineXKBSym("braille_dots_27","⡂")
  DefineXKBSym("braille_dots_127","⡃")
  DefineXKBSym("braille_dots_37","⡄")
  DefineXKBSym("braille_dots_137","⡅")
  DefineXKBSym("braille_dots_237","⡆")
  DefineXKBSym("braille_dots_1237","⡇")
  DefineXKBSym("braille_dots_47","⡈")
  DefineXKBSym("braille_dots_147","⡉")
  DefineXKBSym("braille_dots_247","⡊")
  DefineXKBSym("braille_dots_1247","⡋")
  DefineXKBSym("braille_dots_347","⡌")
  DefineXKBSym("braille_dots_1347","⡍")
  DefineXKBSym("braille_dots_2347","⡎")
  DefineXKBSym("braille_dots_12347","⡏")
  DefineXKBSym("braille_dots_57","⡐")
  DefineXKBSym("braille_dots_157","⡑")
  DefineXKBSym("braille_dots_257","⡒")
  DefineXKBSym("braille_dots_1257","⡓")
  DefineXKBSym("braille_dots_357","⡔")
  DefineXKBSym("braille_dots_1357","⡕")
  DefineXKBSym("braille_dots_2357","⡖")
  DefineXKBSym("braille_dots_12357","⡗")
  DefineXKBSym("braille_dots_457","⡘")
  DefineXKBSym("braille_dots_1457","⡙")
  DefineXKBSym("braille_dots_2457","⡚")
  DefineXKBSym("braille_dots_12457","⡛")
  DefineXKBSym("braille_dots_3457","⡜")
  DefineXKBSym("braille_dots_13457","⡝")
  DefineXKBSym("braille_dots_23457","⡞")
  DefineXKBSym("braille_dots_123457","⡟")
  DefineXKBSym("braille_dots_67","⡠")
  DefineXKBSym("braille_dots_167","⡡")
  DefineXKBSym("braille_dots_267","⡢")
  DefineXKBSym("braille_dots_1267","⡣")
  DefineXKBSym("braille_dots_367","⡤")
  DefineXKBSym("braille_dots_1367","⡥")
  DefineXKBSym("braille_dots_2367","⡦")
  DefineXKBSym("braille_dots_12367","⡧")
  DefineXKBSym("braille_dots_467","⡨")
  DefineXKBSym("braille_dots_1467","⡩")
  DefineXKBSym("braille_dots_2467","⡪")
  DefineXKBSym("braille_dots_12467","⡫")
  DefineXKBSym("braille_dots_3467","⡜")
  DefineXKBSym("braille_dots_13467","⡭")
  DefineXKBSym("braille_dots_23467","⡮")
  DefineXKBSym("braille_dots_123467","⡯")
  DefineXKBSym("braille_dots_567","⡰")
  DefineXKBSym("braille_dots_1567","⡱")
  DefineXKBSym("braille_dots_2567","⡲")
  DefineXKBSym("braille_dots_12567","⡳")
  DefineXKBSym("braille_dots_3567","⡴")
  DefineXKBSym("braille_dots_13567","⡵")
  DefineXKBSym("braille_dots_23567","⡶")
  DefineXKBSym("braille_dots_123567","⡷")
  DefineXKBSym("braille_dots_4567","⡸")
  DefineXKBSym("braille_dots_14567","⡹")
  DefineXKBSym("braille_dots_24567","⡺")
  DefineXKBSym("braille_dots_124567","⡻")
  DefineXKBSym("braille_dots_34567","⡼")
  DefineXKBSym("braille_dots_134567","⡽")
  DefineXKBSym("braille_dots_234567","⡾")
  DefineXKBSym("braille_dots_1234567","⡿")
  DefineXKBSym("braille_dots_8","⢀")
  DefineXKBSym("braille_dots_18","⢁")
  DefineXKBSym("braille_dots_28","⢂")
  DefineXKBSym("braille_dots_128","⢃")
  DefineXKBSym("braille_dots_38","⢄")
  DefineXKBSym("braille_dots_138","⢅")
  DefineXKBSym("braille_dots_238","⢆")
  DefineXKBSym("braille_dots_1238","⢇")
  DefineXKBSym("braille_dots_48","⢈")
  DefineXKBSym("braille_dots_148","⢉")
  DefineXKBSym("braille_dots_248","⢊")
  DefineXKBSym("braille_dots_1248","⢋")
  DefineXKBSym("braille_dots_348","⢌")
  DefineXKBSym("braille_dots_1348","⢍")
  DefineXKBSym("braille_dots_2348","⢎")
  DefineXKBSym("braille_dots_12348","⢏")
  DefineXKBSym("braille_dots_58","⢐")
  DefineXKBSym("braille_dots_158","⢑")
  DefineXKBSym("braille_dots_258","⢒")
  DefineXKBSym("braille_dots_1258","⢓")
  DefineXKBSym("braille_dots_358","⢔")
  DefineXKBSym("braille_dots_1358","⢕")
  DefineXKBSym("braille_dots_2358","⢖")
  DefineXKBSym("braille_dots_12358","⢗")
  DefineXKBSym("braille_dots_458","⢘")
  DefineXKBSym("braille_dots_1458","⢙")
  DefineXKBSym("braille_dots_2458","⢚")
  DefineXKBSym("braille_dots_12458","⢛")
  DefineXKBSym("braille_dots_3458","⢜")
  DefineXKBSym("braille_dots_13458","⢝")
  DefineXKBSym("braille_dots_23458","⢞")
  DefineXKBSym("braille_dots_123458","⢟")
  DefineXKBSym("braille_dots_68","⢠")
  DefineXKBSym("braille_dots_168","⢡")
  DefineXKBSym("braille_dots_268","⢢")
  DefineXKBSym("braille_dots_1268","⢣")
  DefineXKBSym("braille_dots_368","⢤")
  DefineXKBSym("braille_dots_1368","⢥")
  DefineXKBSym("braille_dots_2368","⢦")
  DefineXKBSym("braille_dots_12368","⢧")
  DefineXKBSym("braille_dots_468","⢨")
  DefineXKBSym("braille_dots_1468","⢩")
  DefineXKBSym("braille_dots_2468","⢪")
  DefineXKBSym("braille_dots_12468","⢫")
  DefineXKBSym("braille_dots_3468","⢬")
  DefineXKBSym("braille_dots_13468","⢭")
  DefineXKBSym("braille_dots_23468","⢮")
  DefineXKBSym("braille_dots_123468","⢯")
  DefineXKBSym("braille_dots_568","⢰")
  DefineXKBSym("braille_dots_1568","⢱")
  DefineXKBSym("braille_dots_2568","⢲")
  DefineXKBSym("braille_dots_12568","⢳")
  DefineXKBSym("braille_dots_3568","⢴")
  DefineXKBSym("braille_dots_13568","⢵")
  DefineXKBSym("braille_dots_23568","⢶")
  DefineXKBSym("braille_dots_123568","⢷")
  DefineXKBSym("braille_dots_4568","⢸")
  DefineXKBSym("braille_dots_14568","⢹")
  DefineXKBSym("braille_dots_24568","⢺")
  DefineXKBSym("braille_dots_124568","⢻")
  DefineXKBSym("braille_dots_34568","⢼")
  DefineXKBSym("braille_dots_134568","⢽")
  DefineXKBSym("braille_dots_234568","⢾")
  DefineXKBSym("braille_dots_1234568","⢿")
  DefineXKBSym("braille_dots_78","⣀")
  DefineXKBSym("braille_dots_178","⣁")
  DefineXKBSym("braille_dots_278","⣂")
  DefineXKBSym("braille_dots_1278","⣃")
  DefineXKBSym("braille_dots_378","⣄")
  DefineXKBSym("braille_dots_1378","⣅")
  DefineXKBSym("braille_dots_2378","⣆")
  DefineXKBSym("braille_dots_12378","⣇")
  DefineXKBSym("braille_dots_478","⣈")
  DefineXKBSym("braille_dots_1478","⣉")
  DefineXKBSym("braille_dots_2478","⣊")
  DefineXKBSym("braille_dots_12478","⣋")
  DefineXKBSym("braille_dots_3478","⣌")
  DefineXKBSym("braille_dots_13478","⣍")
  DefineXKBSym("braille_dots_23478","⣎")
  DefineXKBSym("braille_dots_123478","⣏")
  DefineXKBSym("braille_dots_578","⣐")
  DefineXKBSym("braille_dots_1578","⣑")
  DefineXKBSym("braille_dots_2578","⣒")
  DefineXKBSym("braille_dots_12578","⣓")
  DefineXKBSym("braille_dots_3578","⣔")
  DefineXKBSym("braille_dots_13578","⣕")
  DefineXKBSym("braille_dots_23578","⣖")
  DefineXKBSym("braille_dots_123578","⣗")
  DefineXKBSym("braille_dots_4578","⣘")
  DefineXKBSym("braille_dots_14578","⣙")
  DefineXKBSym("braille_dots_24578","⣚")
  DefineXKBSym("braille_dots_124578","⣛")
  DefineXKBSym("braille_dots_34578","⣜")
  DefineXKBSym("braille_dots_134578","⣝")
  DefineXKBSym("braille_dots_234578","⣞")
  DefineXKBSym("braille_dots_1234578","⣟")
  DefineXKBSym("braille_dots_678","⣠")
  DefineXKBSym("braille_dots_1678","⣡")
  DefineXKBSym("braille_dots_2678","⣢")
  DefineXKBSym("braille_dots_12678","⣣")
  DefineXKBSym("braille_dots_3678","⣤")
  DefineXKBSym("braille_dots_13678","⣥")
  DefineXKBSym("braille_dots_23678","⣦")
  DefineXKBSym("braille_dots_123678","⣧")
  DefineXKBSym("braille_dots_4678","⣨")
  DefineXKBSym("braille_dots_14678","⣩")
  DefineXKBSym("braille_dots_24678","⣪")
  DefineXKBSym("braille_dots_124678","⣫")
  DefineXKBSym("braille_dots_34678","⣬")
  DefineXKBSym("braille_dots_134678","⣭")
  DefineXKBSym("braille_dots_234678","⣮")
  DefineXKBSym("braille_dots_1234678","⣯")
  DefineXKBSym("braille_dots_5678","⣰")
  DefineXKBSym("braille_dots_15678","⣱")
  DefineXKBSym("braille_dots_25678","⣲")
  DefineXKBSym("braille_dots_125678","⣳")
  DefineXKBSym("braille_dots_35678","⣴")
  DefineXKBSym("braille_dots_135678","⣵")
  DefineXKBSym("braille_dots_235678","⣶")
  DefineXKBSym("braille_dots_1235678","⣷")
  DefineXKBSym("braille_dots_45678","⣸")
  DefineXKBSym("braille_dots_145678","⣹")
  DefineXKBSym("braille_dots_245678","⣺")
  DefineXKBSym("braille_dots_1245678","⣻")
  DefineXKBSym("braille_dots_345678","⣼")
  DefineXKBSym("braille_dots_1345678","⣽")
  DefineXKBSym("braille_dots_2345678","⣾")
  DefineXKBSym("braille_dots_12345678","⣿")
  DefineXKBSym("NoSymbol","U000020")
}

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

EncodeUniCompose(str) {
SetFormat, Integer, hex
  result := ""
  loop {
    if (str == "")
      break
    char := asc(SubStr(str,1,1))
    str  := SubStr(str,2)
    if (A_IsUnicode) {
      if ((char < 0xDC00) or (char >= 0xE000))
        result .= "U" . SubStr("000000" . Substr(char, 3), -5)
      else {
        ; unwrap surrogates
        char2 := asc(Substr(str,1,1))
        str   := SubStr(str,2)
        result .= "U" . SubStr("000000" . SubStr(((char & 0x3FF) << 12) + (char2 & 0x3FF), 3), -5)
      }
    }
    else if (char < 0x80)
      result .= "U" . SubStr("000000" . SubStr(char,3),-5)
    else if (char < 0xC0) {
      ; error
    } else if (char < 0xE0) {
       char2 := asc(Substr(str,1,1))
       str   := SubStr(str,2)
       if ((char2 < 0x80) or (char2 > 0xBF)) {
         ; error
       } else {
         result .= "U" . SubStr("000000" . SubStr((((char & 0x1F) << 6) + (char2 & 0x3F)),3),-5)
       }
    } else if (char < 0xF0) {
       char2 := asc(SubStr(str,1,1))
       char3 := asc(SubStr(str,2,1))
       str   := SubStr(str,3)
       if ((char2 < 0x80) or (char2 > 0xBF)
           or (char3 < 0x80) or (char3 > 0xBF)) {
         ; error
       } else {
         result .= "U" . SubStr("000000" . SubStr((((char & 0x0F) << 12) + ((char2 & 0x3F) << 6) + (char3 & 0x3F)),3),-5)
       }
    } else if (char < 0xF8) {
       char2 := asc(SubStr(str,1,1))
       char3 := asc(SubStr(str,2,1))
       char4 := asc(SubStr(str,3,1))
       str   := SubStr(str,4)
       if (   (char2 < 0x80) or (char2 > 0xBF)
           or (char3 < 0x80) or (char3 > 0xBF)
           or (char4 < 0x80) or (char4 > 0xBF)) {
         ; error
       } else {
         result .= "U" . SubStr("000000" . SubStr((((char & 0x07) << 18) + ((char2 & 0x3F) << 12) + ((char3 & 0x3F) << 6) + (char4 & 0x3F)),3),-5)
       }
    }
  }
SetFormat, Integer, d
  StringUpper,result,result
  return result
}

EncodeUniComposeA(ea) {
  if (StrLen(ea) == 7)
    return ea
  return EncodeUniCompose(ea)
}

VarSetCapacity(Composita,10240000) ; 10 MB

ProcessComposeFile(FFrom) {
  global

  FileRead, FileContents, %FFrom%

  Loop, parse, FileContents, `n, `r  ; Specifying `n prior to `r allows both Windows and Unix files to be parsed.
  {
    Line := A_LoopField
    if ((Line == "") or (SubStr(Line,1,5) == "XCOMM") or (SubStr(Line,1,1) == "#"))
      continue
    Line := RegExReplace(Line,"[\t ]*(<[^>]*>)[\t ]*","$1")
    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
      }
      else {
        modkeys := "" ; invalidate whole line
        break
      }
    }
    if (modkeys != "") {
      ressymb := EncodeUniCompose(ReplaceRight)
      CD%modkeys% := ressymb
      if (StrLen(ressymb)==7)
        CRC%ressymb% .= " " . modkeys
    }
  }

}

LoadCurrentComposeFile(FIn) {
  global
  if (!CurrentComposeLoaded) {
    DefineXKBSyms()
    CurrentComposeLoaded := 1
  }
  ProcessComposeFile(Fin)
}

LoadCurrentCompose() {
  global
  ; setup a new thread to start immediately in the background
  SetTimer,ConvertCompose,-1
  return

  ConvertCompose:
    ComposePath := "..\..\..\Compose\src"
    LoadCurrentComposeFile(ComposePath . "\en_US.UTF-8")
    LoadCurrentComposeFile(ComposePath . "\base.module")
    LoadCurrentComposeFile(ComposePath . "\cyrillic.module")
    LoadCurrentComposeFile(ComposePath . "\fast.module")
    LoadCurrentComposeFile(ComposePath . "\greek.module")
    LoadCurrentComposeFile(ComposePath . "\lang.module")
    LoadCurrentComposeFile(ComposePath . "\math.module")
    TrayTip,Compose-Konvertierung,Konvertierung abgeschlossen!,10,1
  return
}
