Advertisement
westor

WESTOR Module Manager 4.0

Aug 4th, 2017
904
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 223.18 KB | None | 0 0
  1. /*
  2.  
  3. #######################################
  4.  
  5.     # WESTOR Module Manager #
  6.      # v4.0 - (01/08/2017) #
  7.       # Thanks Supporters #
  8.  
  9. #######################################
  10.  
  11. */
  12.  
  13. ; --- Start of dialogs ---
  14.  
  15. dialog -l wmm_module_sets {
  16.   title ""
  17.   size -1 -1 233 108
  18.   option dbu disable
  19.   icon $scriptdir $+ main.ico, 0
  20.   tab "Settings 1", 1, 2 2 230 77
  21.   list 3, 4 30 99 47, tab 1 size vsbar disable
  22.   button >, 4, 112 33 14 12, tab 1 disable
  23.   text "Installed Modules:", 7, 5 20 97 9, tab 1 center
  24.   button <, 6, 112 62 14 12, tab 1 disable
  25.   list 5, 135 30 94 47, tab 1 size vsbar disable
  26.   text "Auto-Update Modules:", 8, 136 20 92 9, tab 1 center
  27.   tab "Settings 2", 9
  28.   combo 10, 4 30 64 47, tab 9 size drop
  29.   text "Language:", 11, 7 20 62 8, tab 9 center
  30.   check "Automatically update the WESTOR Module Manager", 12, 4 68 225 10, tab 9
  31.   check "Display the project menu item in the right click menu", 25, 4 48 225 10, tab 9
  32.   check "Display the project settings menu item in the right click menu", 26, 4 58 225 10, tab 9
  33.   tab "Settings 3", 27
  34.   check "Display the project installed modules list item in the right click menu", 28, 4 18 225 10, tab 27
  35.   button "Close this window", 2, 61 91 117 16, ok default
  36.   text "", 13, 211 98 21 8, disable center
  37.   icon 230, 155 -1 95 14, $scriptdir $+ donate.png, 1, noborder center
  38.   menu "Menu", 14
  39.   item "Help", 18, 14
  40.   item break, 501
  41.   item "Visit on BitBucket", 29, 14
  42.   item break, 502
  43.   item "Donate & Support", 24, 14
  44.   item break, 503
  45.   item "Open the WESTOR Module Manager", 19, 14
  46.   item break, 504
  47.   item "About", 20, 14
  48.   item break, 505
  49.   item "Restart", 21, 14
  50.   item break, 506
  51.   item "Exit", 22, 14
  52. }
  53.  
  54. dialog -l wmm_module {
  55.   title ""
  56.   size -1 -1 265 265
  57.   option dbu disable
  58.   icon $scriptdir $+ main.ico, 0
  59.   button "Close this window", 1, 48 249 165 15, default ok
  60.   tab "Modules", 2, 2 2 262 189
  61.   button "Install", 7, 200 99 61 12, disable tab 2
  62.   tab "Installed", 3
  63.   button "Uninstall", 11, 200 99 61 12, disable tab 3
  64.   button "Reinstall", 12, 4 99 61 12, disable tab 3
  65.   text "", 250, 72 100 120 15, center tab 3
  66.   tab "Updates", 4
  67.   button "Update", 13, 200 99 61 12, disable tab 4
  68.   text "", 5, 246 255 18 8, disable center
  69.   text "News:", 25, 80 195 100 8, center
  70.   text "Loading the latest available news...", 26, 25 204 225 40, center
  71.   list 6, 4 20 257 32, disable size vsbar
  72.   list 60, 4 20 257 32, hide disable size vsbar
  73.   list 600, 4 20 257 32, hide disable size vsbar
  74.   text "Module Description:", 9, 75 57 113 8, center
  75.   edit "" 8, 4 68 257 30, disable read multi autovs autohs vsbar center
  76.   icon 15, 92 130 80 58, $scriptdir $+ no_preview.png, 1, noborder
  77.   icon 16, 185 130 75 58, $scriptdir $+ no_preview.png, 1, noborder
  78.   text "Module Screenshots:", 17, 75 117 113 8, center
  79.   icon 14, 4 130 75 58, $scriptdir $+ no_preview.png, 1, noborder
  80.   icon 23, 186 -1 95 14, $scriptdir $+ donate.png, 1, center noborder
  81.   menu "Menu", 10
  82.   item "Help", 18, 10
  83.   item break, 501
  84.   item "Visit on BitBucket", 27, 10
  85.   item break, 502
  86.   item "Donate & Support", 24, 10
  87.   item break, 503
  88.   item "Options", 19, 10
  89.   item break, 504
  90.   item "About", 20, 10
  91.   item break, 505
  92.   item "Restart", 21, 10
  93.   item break, 506
  94.   item "Exit", 22, 10
  95. }
  96.  
  97. ; --- End of dialogs ---
  98.  
  99. ; --- Start of events ---
  100.  
  101. ON *:START: {
  102.   if ($wmm_check_version) || ($wmm_check_os) || ($group(#wmm).fname !== $script) { .unload -nrs $qt($script) | return }
  103.   wmm_fix_extra_modules_installed
  104.   var %l = $scriptdir $+ wmm_lang.ini
  105.   var %ico = $scriptdir $+ main.ico
  106.   var %png = $scriptdir $+ no_preview.png
  107.   var %don = $scriptdir $+ donate.png
  108.   if (!$isfile(%l)) { var %delay = 1 | wmm_dl $wmm_lang_url $qt(%l) }
  109.   if (!$isfile(%ico)) { var %delay = 1 | wmm_dl $wmm_main_ico_url $qt(%ico) }
  110.   if (!$isfile(%png)) { var %delay = 1 | wmm_dl $wmm_main_png_url $qt(%png) }
  111.   if (!$isfile(%don)) { var %delay = 1 | wmm_dl $wmm_donate_png_url $qt(%don) }
  112.   if (%wmm_lang == $null) { set %wmm_lang English }
  113.   if (!%delay) { wmm_tool -s }
  114.   elseif (%delay) { .timer[WMM_TOOLBAR] -ho 1 3000 wmm_tool -s }
  115.   .timer[WMM_GET_MENU_INSTALLED_MODULES] -ho 1 3000 wmm_modules_menu_get_installed
  116.   if (%wmm_autoupdate) { .timer[WMM_CHECK_FOR_UPDATE_SILENT] -ho 1 7000 wmm_check_silent_update }
  117.   if (%wmm_autoupdate_modules) { .timer[WMM_CHECK_FOR_UPDATE_MODULES_SILENT] -ho 1 15000 wmm_modules_silent_update }
  118. }
  119.  
  120. ON *:LOAD: {
  121.   if ($wmm_check_version) { wmm_input error 60 $iif($wmm_lang(41),$wmm_lang(41),This program client version that you are using does NOT support the specific addon $+ $chr(44) please use the latest version that is available!) | .unload -nrs $qt($script) | return }
  122.   if ($wmm_check_os) { wmm_input error 60 $iif($wmm_lang(42),$wmm_lang(42),This addon cannot be used into this computer $+ $chr(44) it's only available into Windows operating system!) | .unload -nrs $qt($script) | return }
  123.   if ($group(#wmm).fname !== $script) { wmm_input error 60 $iif($wmm_lang(62),$wmm_lang(62),You have already installed this addon into this program client!) | .unload -nrs $qt($script) | return }
  124.   wmm_fix_extra_modules_installed
  125.   var %l = $scriptdir $+ wmm_lang.ini
  126.   var %ico = $scriptdir $+ main.ico
  127.   var %png = $scriptdir $+ no_preview.png
  128.   var %don = $scriptdir $+ donate.png
  129.   if (!$isfile(%l)) { wmm_dl $wmm_lang_url $qt(%l) }
  130.   if (!$isfile(%ico)) { wmm_dl $wmm_main_ico_url $qt(%ico) }
  131.   if (!$isfile(%png)) { wmm_dl $wmm_main_png_url $qt(%png) }
  132.   if (!$isfile(%don)) { wmm_dl $wmm_donate_png_url $qt(%don) }
  133.   if (%wmm_menu == $null) { set %wmm_menu wmm wmm_sets }
  134.   if (%wmm_lang == $null) { set %wmm_lang English }
  135.   if (%wmm_autoupdate == $null) { set %wmm_autoupdate 0 }
  136.   if (%wmm_update) {
  137.     var %up = %wmm_update
  138.     unset %wmm_update
  139.     wmm_dl $wmm_main_ico_url $qt(%ico)
  140.     wmm_dl $wmm_lang_url $qt(%l)
  141.     wmm_dl $wmm_main_png_url $qt(%png)
  142.     wmm_tool -s
  143.     if (%up == 1) { .timer[WMM_INSTALL_OK] -ho 1 1000 wmm_input ok 60 $!wmm_lang(43) $(|) wmm }
  144.     if (%up == 2) { .timer[WMM_INSTALL_OK] -ho 1 1000 wmm_input ok 60 $!wmm_lang(43) $(|) wmm_sets }
  145.     if (%up == 3) { .timer[WMM_SILENT_INSTALL_RESET_TOOL_MSG] -ho 1 1000 wmm_tool -t }
  146.   }
  147.   else { .timer[WMM_INSTALL_OK] -ho 1 1000 wmm_input ok 60 $!wmm_lang(38) $!upper($wmm_owner) $!wmm_lang(16) v $!+ $!wmm_ver $!wmm_lang(28) $!wmm_crdate $!wmm_lang(29) $!wmm_owner $!wmm_lang(39) $(|) wmm_tool -s $(|) wmm }
  148. }
  149.  
  150. ON *:UNLOAD: {
  151.   wmm_d_close wmm_module
  152.   wmm_d_close wmm_module_sets
  153.   wmm_tool -c
  154.   jsonshutdown
  155.   if ($wmm_lang(38)) && ($wmm_lang(16)) && ($wmm_lang(28)) && ($wmm_lang(29)) && ($wmm_lang(40)) { wmm_input ok 60 $wmm_lang(38) $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_lang(28) $wmm_crdate $wmm_lang(29) $wmm_owner $wmm_lang(40) }
  156.   var %l = $scriptdir $+ wmm_lang.ini
  157.   var %ico = $scriptdir $+ main.ico
  158.   var %png = $scriptdir $+ no_preview.png
  159.   var %don = $scriptdir $+ donate.png
  160.   if ($isfile(%l)) { .remove -b $qt(%l) }
  161.   if ($isfile(%ico)) { .remove -b $qt(%ico) }
  162.   if ($isfile(%png)) { .remove -b $qt(%png) }
  163.   if ($isfile(%don)) { .remove -b $qt(%don) }
  164.   if ($fopen(wmm_dl_images)) { .fclose wmm_dl_images }
  165.   .timer[WMM_*] off
  166.   unset %wmm_*
  167.   hfree -w WMM_*
  168. }
  169.  
  170. CTCP *:VERSION:*: { .ctcpreply $nick VERSION $chr(3) $+ $color(info) $+ ( $+ $chr(3) $+ $color(ctcp) $+ $wmm_bold($nick) $+ $chr(3) $+ $color(info) $+ ): $upper($wmm_owner) Module Manager $wmm_under(v) $+ $wmm_bold($wmm_ver) Created by: $wmm_bold($wmm_owner) on: $wmm_bold($wmm_crdate) - Download it from: $wmm_bold($wmm_under($wmm_page)) }
  171.  
  172. ON *:EXIT: { wmm_fix_extra_modules_installed -e }
  173.  
  174. ON *:CLOSE:@wmm_pic: {
  175.   if ($dialog(wmm_module)) { wmm }
  176. }
  177.  
  178. ON *:SIGNAL:*: {
  179.   if ($1) && ($signal == wmm_close) && (!%wmm_signal_noclose) { wmm_d_close wmm_module | wmm_d_close wmm_module_sets }
  180.   if ($signal == wmm_hash) { wmm_modules_menu_get_installed -g }
  181. }
  182.  
  183. ON *:DOWNLOAD:*: {
  184.   if ($download == wmm_dl_images) {
  185.     if ($downloaderr) { return }
  186.     zip -uo $download $qt($download($download).file) $qt($wmm_temp)
  187.   }
  188.   if ($download == wmm_mod_install) {
  189.     var %d = wmm_module
  190.     var %f = $download($download).file
  191.     if ($downloaderr) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 032 | wmm_d_close %d | return }
  192.     if (!$dialog(%d)) { return }
  193.     if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 033 | wmm_d_close %d | return }
  194.     set -eu60 %wmm_signal_noclose 1
  195.     if ($wmm_ismod($nopath(%f))) { .unload -rs $qt($nopath(%f)) }
  196.     .load -rs $qt(%f)
  197.     unset %wmm_signal_noclose
  198.     if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 034 | wmm_d_close %d | return }
  199.     did -euz %d 6
  200.     wmm_reset_images
  201.     wmm_modules_installed_plus_updated_list
  202.     wmm_input ok 60 $wmm_lang(35)
  203.     if ($dialog(%d)) { did -fv %d 23 }
  204.   }
  205.   if ($download == wmm_mod_update) {
  206.     var %d = wmm_module
  207.     var %f = $download($download).file
  208.     var %mod = $mid($nopath(%f),0,-4)
  209.     var %pos = $wmm_getpos(%mod)
  210.     if ($downloaderr) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 035 | wmm_d_close %d | return }
  211.     if (!$dialog(%d)) { return }
  212.     if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 036 | wmm_d_close %d | return }
  213.     set -eu60 %wmm_signal_noclose 1
  214.     if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  215.     .load -rs $+ %pos $qt(%f)
  216.     unset %wmm_signal_noclose
  217.     if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 021 | wmm_d_close %d | return }
  218.     wmm_modules_installed_plus_updated_list
  219.     wmm_reset_images
  220.     wmm_input ok 60 $wmm_lang(37)
  221.     if ($dialog(%d)) { did -fv %d 23 }
  222.   }
  223.   if ($download == wmm_mod_silent_update) {
  224.     if ($downloaderr) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) { return }
  225.     var %f = $download($download).file
  226.     var %p = $wmm_getname($nopath(%f))
  227.     var %pos = $wmm_getpos($mid($nopath(%f),0,-4))
  228.     if (!$isfile(%f)) || (!$lines(%f)) || (!%p) || (!%pos) { return }
  229.     if ($wmm_ismod(%p)) { .unload -nrs $qt(%p) }
  230.     if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  231.     .load -rs $+ %pos $qt(%f)
  232.   }
  233.   if ($download == wmm_check_update_install) {
  234.     if ($downloaderr) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 017 | unset %wmm_update | return }
  235.     var %f = $download($download).file
  236.     if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 020 | unset %wmm_update | return }
  237.     .timer -ho 1 1000 .load -rs1 $qt(%f)
  238.     wmm_tool -c
  239.     .unload -nrs $qt($script)
  240.   }
  241.   if ($download == wmm_check_silent_update_install) {
  242.     if ($downloaderr) { unset %wmm_update | return }
  243.     var %f = $download($download).file
  244.     if (!$isfile(%f)) || (!$lines(%f)) { unset %wmm_update | return }
  245.     .timer -ho 1 1000 .load -rs1 $qt(%f)
  246.     wmm_tool -c
  247.     .unload -nrs $qt($script)
  248.   }
  249. }
  250.  
  251. ON *:DIALOG:wmm_module_sets:*:*: {
  252.   if ($devent == init) {
  253.     dialog -t $dname $upper($wmm_owner) $wmm_lang(16) $wmm_lang(69) $wmm_bel (/wmm_sets)
  254.     .timer[WMM_ANIMATE_TITLE_WMM_SETS] -ho 0 10000 wmm_dtitle $dname $dialog($dname).title
  255.     did -ra $dname 1 $wmm_lang(69) 1
  256.     did -ra $dname 9 $wmm_lang(69) 2
  257.     did -ra $dname 7 $wmm_lang(67)
  258.     did -ra $dname 8 $wmm_lang(68)
  259.     did -ra $dname 11 $wmm_lang(32)
  260.     did -ra $dname 12 $wmm_lang(31)
  261.     did -ra $dname 2 $wmm_lang(1)
  262.     did -o $dname 14 $wmm_lang(11)
  263.     did -o $dname 18 $wmm_lang(12)
  264.     did -o $dname 24 $wmm_lang(45) $chr(38) $+ $chr(38) $wmm_lang(46)
  265.     did -o $dname 19 $wmm_lang(70) $upper($wmm_owner) $wmm_lang(16)
  266.     did -o $dname 20 $wmm_lang(14)
  267.     did -o $dname 21 $wmm_lang(30)
  268.     did -o $dname 22 $wmm_lang(15)
  269.     did -o $dname 29 $wmm_lang(79)
  270.     did -ra $dname 25 $wmm_lang(71)
  271.     did -ra $dname 26 $wmm_lang(72)
  272.     did -ra $dname 13 v $+ $wmm_ver
  273.     did -ra $dname 27 $wmm_lang(69) 3
  274.     did -ra $dname 28 $wmm_lang(78)
  275.     ; did -g $dname 230 $qt(%don)
  276.  
  277.     if (%wmm_autoupdate) { did -c $dname 12 }
  278.     if ($istok(%wmm_menu,wmm,32)) { did -c $dname 25 }
  279.     if ($istok(%wmm_menu,wmm_sets,32)) { did -c $dname 26 }
  280.     if ($istok(%wmm_menu,wmm_mod_list,32)) { did -c $dname 28 }
  281.  
  282.     var %langs = $wmm_langs
  283.     if (%langs) {
  284.       var %i = 1
  285.       while (%i <= $numtok(%langs,44)) {
  286.         var %l = $gettok(%langs,%i,44)
  287.         if (%l) && (%l !== %wmm_lang) { did -a $dname 10 %l }
  288.         inc %i
  289.       }
  290.       did -ca $dname 10 %wmm_lang
  291.     }
  292.     else { did -b $dname 10 }
  293.     wmm_tool -et
  294.     if ($wmm_internet) { .timer[WMM_GET_SETTINGS_LIST] -ho 1 1000 wmm_modules_settings_list }
  295.     else { dialog -k $dname | wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 029 }
  296.   }
  297.   if ($devent == dclick) {
  298.     if ($did == 3) {
  299.       var %s = $did($did).seltext
  300.       if (!%s) { return }
  301.       did -ed $dname $did $didwm($did,%s)
  302.       did -u $dname $did
  303.       did -ae $dname 5 %s
  304.       did -b $dname 4
  305.       set %wmm_autoupdate_modules $addtok(%wmm_autoupdate_modules,%s,32)
  306.     }
  307.     if ($did == 5) {
  308.       var %s = $did($did).seltext
  309.       if (!%s) { return }
  310.       did -ed $dname $did $didwm($did,%s)
  311.       did -u $dname $did
  312.       did -ae $dname 3 %s
  313.       did -b $dname 6
  314.       set %wmm_autoupdate_modules $remtok(%wmm_autoupdate_modules,%s,1,32)
  315.     }
  316.   }
  317.   if ($devent == sclick) {
  318.     if ($did == 230) { url $wmm_donate }
  319.     if ($did == 25) {
  320.       if (!$istok(%wmm_menu,wmm,32)) { set %wmm_menu $addtok(%wmm_menu,wmm,32) }
  321.       else { set %wmm_menu $remtok(%wmm_menu,wmm,1,32) }
  322.     }
  323.     if ($did == 26) {
  324.       if (!$istok(%wmm_menu,wmm_sets,32)) { set %wmm_menu $addtok(%wmm_menu,wmm_sets,32) }
  325.       else { set %wmm_menu $remtok(%wmm_menu,wmm_sets,1,32) }
  326.     }
  327.     if ($did == 28) {
  328.       if (!$istok(%wmm_menu,wmm_mod_list,32)) { set %wmm_menu $addtok(%wmm_menu,wmm_mod_list,32) }
  329.       else { set %wmm_menu $remtok(%wmm_menu,wmm_mod_list,1,32) }
  330.     }
  331.     if ($did == 12) {
  332.       if (!%wmm_autoupdate) { set %wmm_autoupdate 1 }
  333.       else { set %wmm_autoupdate 0 }
  334.     }
  335.     if ($did == 5) && ($did(5).seltext) { did -e $dname 6 }
  336.     if ($did == 3) && ($did(3).seltext) { did -e $dname 4 }
  337.     if ($did == 4) {
  338.       var %s = $did(3).seltext
  339.       if (!%s) { did -b $dname $did | return }
  340.       did -ed $dname 3 $didwm(3,%s)
  341.       did -u $dname 3
  342.       did -ae $dname 5 %s
  343.       did -b $dname 4
  344.       set %wmm_autoupdate_modules $addtok(%wmm_autoupdate_modules,%s,32)
  345.     }
  346.     if ($did == 6) {
  347.       var %s = $did(5).seltext
  348.       if (!%s) { did -b $dname $did | return }
  349.       did -ed $dname 5 $didwm(5,%s)
  350.       did -u $dname 5
  351.       did -ae $dname 3 %s
  352.       did -b $dname 6
  353.       set %wmm_autoupdate_modules $remtok(%wmm_autoupdate_modules,%s,1,32)
  354.     }
  355.   }
  356.   if ($devent == menu) {
  357.     if ($did == 18) { url $wmm_page }
  358.     if ($did == 24) { url $wmm_donate }
  359.     if ($did == 29) { url $wmm_bit_url }
  360.     if ($did == 22) { dialog -k $dname }
  361.     if ($did == 21) { .timer -ho 1 500 wmm_sets | dialog -k $dname }
  362.     if ($did == 19) { .timer -ho 1 100 wmm | dialog -k $dname }
  363.     if ($did == 20) { wmm_input ok 60 $wmm_lang(27) $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_lang(28) $wmm_crdate $wmm_lang(29) $wmm_owner }
  364.   }
  365.   if ($devent == close) {
  366.     if ($did(10)) { set %wmm_lang $did(10) }
  367.     wmm_tool -bt
  368.     .timer[WMM_ANIMATE_TITLE_WMM_SETS] off
  369.     .timer[WMM_TITLE_WMM_MODULE_SETS_*] off
  370.     if ($dialog(wmm_module)) { wmm }
  371.   }
  372. }
  373.  
  374. ON *:DIALOG:wmm_module:*:*: {
  375.   if ($devent == init) {
  376.     dialog -t $dname $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_bel (/wmm)
  377.     .timer[WMM_ANIMATE_TITLE_WMM] -ho 0 10000 wmm_dtitle $dname $dialog($dname).title
  378.     did -ra $dname 1 $wmm_lang(1)
  379.     did -ra $dname 2 $wmm_lang(3)
  380.     did -ra $dname 3 $wmm_lang(2)
  381.     did -ra $dname 7 $wmm_lang(4)
  382.     did -ra $dname 11 $wmm_lang(5)
  383.     did -ra $dname 12 $wmm_lang(6)
  384.     did -ra $dname 4 $wmm_lang(7)
  385.     did -ra $dname 13 $wmm_lang(8)
  386.     did -ra $dname 9 $wmm_lang(9)
  387.     did -ra $dname 17 $wmm_lang(10)
  388.     did -o $dname 10 $wmm_lang(11)
  389.     did -o $dname 18 $wmm_lang(12)
  390.     did -o $dname 19 $wmm_lang(13)
  391.     did -o $dname 20 $wmm_lang(14)
  392.     did -o $dname 21 $wmm_lang(30)
  393.     did -o $dname 22 $wmm_lang(15)
  394.     did -o $dname 24 $wmm_lang(45) $chr(38) $+ $chr(38) $wmm_lang(46)
  395.     did -o $dname 27 $wmm_lang(79)
  396.     did -ra $dname 5 v $+ $wmm_ver
  397.     ;  did -g $dname 14,15,16 0 $qt(%img)
  398.     ;  did -g $dname 23 $qt(%don)
  399.     did -ra $dname 25 $wmm_lang(57)
  400.     did -ra $dname 26 $wmm_lang(61)
  401.     wmm_tool -et
  402.     if ($wmm_internet) { .timer[WMM_GET_MODULES_LIST] -oh 1 1000 wmm_modules_list }
  403.     else { dialog -k $dname | wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 030 }
  404.   }
  405.   if ($devent == close) {
  406.     if ($wmm_isadi) && ($download(wmm_dl_images)) { download -c wmm_dl_images }
  407.     jsonclose -w wmm_modules_*
  408.     wmm_w_close @wmm_pic
  409.     wmm_tool -bt
  410.     .timer[WMM_*] off
  411.     if ($hget(WMM_MODULES)) { hfree $v1 }
  412.     if ($fopen(wmm_dl_images)) { .fclose wmm_dl_images }
  413.     if ($dialog(wmm_module_sets)) { wmm_sets }
  414.   }
  415.   if ($devent == rclick) {
  416.     if ($did == 14) {
  417.       var %url = $gettok($hget(WMM_MODULES,$did(6).seltext $+ _images),1,44)
  418.       if (!%url) { var %url = $gettok($hget(WMM_MODULES,$did(60).seltext $+ _images),1,44) }
  419.       if (!%url) { var %url = $gettok($hget(WMM_MODULES,$did(600).seltext $+ _images),1,44) }
  420.       if (%url) { url %url }
  421.     }
  422.     if ($did == 15) {
  423.       var %url = $gettok($hget(WMM_MODULES,$did(6).seltext $+ _images),2,44)
  424.       if (!%url) { var %url = $gettok($hget(WMM_MODULES,$did(60).seltext $+ _images),2,44) }
  425.       if (!%url) { var %url = $gettok($hget(WMM_MODULES,$did(600).seltext $+ _images),2,44) }
  426.       if (%url) { url %url }
  427.     }
  428.     if ($did == 16) {
  429.       var %url = $gettok($hget(WMM_MODULES,$did(6).seltext $+ _images),3,44)
  430.       if (!%url) { var %url = $gettok($hget(WMM_MODULES,$did(60).seltext $+ _images),3,44) }
  431.       if (!%url) { var %url = $gettok($hget(WMM_MODULES,$did(600).seltext $+ _images),3,44) }
  432.       if (%url) { url %url }
  433.     }
  434.   }
  435.   if ($devent == dclick) {
  436.     if ($did == 6) || ($did == 600) {
  437.       var %m = $did($did).seltext
  438.       if (!%m) { return }
  439.       var %h = WMM_MODULES
  440.       var %bit_url = $hget(%h,%m $+ _bitbucket_id)
  441.       if (%bit_url) { url $wmm_bit_url(%bit_url) }
  442.     }
  443.     if ($did == 60) {
  444.       var %m = $did($did).seltext
  445.       if (!%m) { return }
  446.       var %h = WMM_MODULES
  447.       var %chk = $hget(%h,%m $+ _check_version_alias)
  448.       var %chk_sets_alias = $right($replace(%chk,_ver,_sets),-1)
  449.       if (%chk_sets_alias) && ($isalias(%chk_sets_alias)) { $(%chk_sets_alias,2) }
  450.     }
  451.   }
  452.   if ($devent == sclick) {
  453.     if ($did == 23) { url $wmm_donate }
  454.     if ($did == 2) {
  455.       var %h = WMM_MODULES
  456.       if ($hget(%h,DID_60)) { hdel %h DID_60 }
  457.       did -b $dname 8,11,12,13
  458.       did -r $dname 8,250
  459.       did -hu $dname 11,12,13,6,60,600
  460.       did -v $dname 7,6
  461.       wmm_reset_images
  462.       .timer[WMM_MODULES_INSTALLED_+_UPDATED] -ho 1 10 wmm_modules_installed_plus_updated_list
  463.     }
  464.     if ($did == 3) {
  465.       var %h = WMM_MODULES
  466.       if ($hget(%h,DID_6)) { hdel %h DID_6 }
  467.       did -b $dname 8,7,13
  468.       did -r $dname 8,250
  469.       did -hu $dname 7,13,6,60,600
  470.       did -v $dname 11,12,60
  471.       wmm_reset_images
  472.       .timer[WMM_MODULES_INSTALLED_+_UPDATED] -ho 1 10 wmm_modules_installed_plus_updated_list
  473.     }
  474.     if ($did == 4) {
  475.       var %h = WMM_MODULES
  476.       if ($hget(%h,DID_6)) { hdel %h DID_6 }
  477.       if ($hget(%h,DID_60)) { hdel %h DID_60 }
  478.       did -b $dname 8,7,11,12
  479.       did -r $dname 8,250
  480.       did -hu $dname 7,11,12,6,60,600
  481.       did -v $dname 13,600
  482.       wmm_reset_images
  483.       .timer[WMM_MODULES_INSTALLED_+_UPDATED] -ho 1 10 wmm_modules_installed_plus_updated_list
  484.     }
  485.     if ($did == 600) {
  486.       var %h = WMM_MODULES
  487.       var %m = $did($did).seltext
  488.       if (!$wmm_getpath(%m)) { wmm_modules_installed_plus_updated_list | return }
  489.       did -r $dname 250
  490.       var %imgs = $hget(%h,%m $+ _images)
  491.       if (%imgs) {
  492.         var %t = $numtok(%imgs,44)
  493.         var %i = 1
  494.         while (%i <= %t) {
  495.           var %img = $gettok(%imgs,%i,44)
  496.           if (%i == 1) {
  497.             var %f = $wmm_temp $+ $nopath(%img)
  498.             if (!$isfile(%f)) || (!$lines(%f)) {
  499.               var %f = $scriptdir $+ no_preview.png
  500.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 023 | dialog -k $dname | return }
  501.             }
  502.             did -g $dname 14 $qt(%f)
  503.           }
  504.           if (%i == 2) {
  505.             var %f = $wmm_temp $+ $nopath(%img)
  506.             if (!$isfile(%f)) || (!$lines(%f)) {
  507.               var %f = $scriptdir $+ no_preview.png
  508.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 024 | dialog -k $dname | return }
  509.             }
  510.             did -g $dname 15 $qt(%f)
  511.           }
  512.           if (%i == 3) {
  513.             var %f = $wmm_temp $+ $nopath(%img)
  514.             if (!$isfile(%f)) || (!$lines(%f)) {
  515.               var %f = $scriptdir $+ no_preview.png
  516.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 025 | dialog -k $dname | return }
  517.             }
  518.             did -g $dname 16 $qt(%f)
  519.           }
  520.           inc %i
  521.         }
  522.       }
  523.       if (%m) {
  524.         var %h = WMM_MODULES
  525.         did -e $dname 13,8
  526.  
  527.         var %chk_ver = $hget(%h,%m $+ _check_version_alias)
  528.         var %chk_crdate = $replace(%chk_ver,_ver,_crdate)
  529.         var %upver = $hget(%h,%m $+ _version)
  530.         var %upcrdate = $hget(%h,%m $+ _crdate)
  531.         var %ver = $iif($isalias($right(%chk_ver,-1)),$(%chk_ver,2),0)
  532.         var %old_crdate = $iif($isalias($right(%chk_crdate,-1)),$(%chk_crdate,2),0)
  533.         var %changelog = $hget(%h,%m $+ _changelog)
  534.  
  535.         var %chk_chan = $hget(%h,%m $+ _channel)
  536.         if (%chk_chan) && (%chk_chan == NOT_OK) { did -b $dname 13 }
  537.  
  538.         did -r $dname 8
  539.         did -a $dname 8 $wmm_lang(54) $+ : $iif(%ver,$v1,N/A) - $iif(%old_crdate,$v1,N/A)
  540.         did -a $dname 8 $crlf
  541.         did -a $dname 8 $wmm_lang(55) $+ : $iif(%upver,$v1,N/A) - $iif(%upcrdate,$v1,N/A)
  542.         did -a $dname 8 $crlf
  543.         did -a $dname 8 $crlf
  544.         did -a $dname 8 $wmm_lang(83) $+ :
  545.         did -a $dname 8 $crlf
  546.         did -a $dname 8 $replace(%changelog,@newline@,$+ $+ $crlf $+ $+)
  547.         did -c $dname 8 1 1
  548.       }
  549.       else { did -b $dname 13,8 }
  550.     }
  551.     if ($did == 6) {
  552.       var %h = WMM_MODULES
  553.       var %m = $did($did).seltext
  554.       if ($hget(%h,DID_6) == %m) { return }
  555.       hadd -m %h DID_6 %m
  556.       var %desc = $hget(%h,%m $+ _desc)
  557.       var %changelog = $hget(%h,%m $+ _changelog)
  558.       var %examples = $hget(%h,%m $+ _examples)
  559.       var %imgs = $hget(%h,%m $+ _images)
  560.       var %chan = $hget(%h,%m $+ _channel)
  561.       var %ver = $hget(%h,%m $+ _version)
  562.       var %date = $hget(%h,%m $+ _crdate)
  563.       var %owner = $hget(%h,%m $+ _author)
  564.  
  565.       var %desc_temp = $wmm_lang(80) $+ : %ver $+ @newline@ $+ $wmm_lang(81) $+ : %date $+ @newline@ $+ $wmm_lang(82) $+ : %owner $+ @newline@@newline@ $+ $wmm_lang(83) $+ :@newline@ %changelog $+ @newline@@newline@ $+ $wmm_lang(84) $+ :@newline@ %desc $+ @newline@@newline@ $+ $wmm_lang(85) $+ :@newline@ %examples
  566.  
  567.       did -re $dname 8
  568.       did -az $dname 8 $replace(%desc_temp,@newline@,$+ $+ $crlf $+ $+)
  569.       did -c $dname 8 1 1
  570.  
  571.       if (%m) && (!$wmm_getpath(%m)) { did -e $dname 7 }
  572.       else { did -b $dname 7 }
  573.  
  574.       if (%imgs) {
  575.         var %t = $numtok(%imgs,44)
  576.         var %i = 1
  577.         while (%i <= %t) {
  578.           var %img = $gettok(%imgs,%i,44)
  579.           if (%i == 1) {
  580.             var %f = $wmm_temp $+ $nopath(%img)
  581.             if (!$isfile(%f)) || (!$lines(%f)) {
  582.               var %f = $scriptdir $+ no_preview.png
  583.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 004 | dialog -k $dname | return }
  584.             }
  585.             did -g $dname 14 $qt(%f)
  586.           }
  587.           if (%i == 2) {
  588.             var %f = $wmm_temp $+ $nopath(%img)
  589.             if (!$isfile(%f)) || (!$lines(%f)) {
  590.               var %f = $scriptdir $+ no_preview.png
  591.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 005 | dialog -k $dname | return }
  592.             }
  593.             did -g $dname 15 $qt(%f)
  594.           }
  595.           if (%i == 3) {
  596.             var %f = $wmm_temp $+ $nopath(%img)
  597.             if (!$isfile(%f)) || (!$lines(%f)) {
  598.               var %f = $scriptdir $+ no_preview.png
  599.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 006 | dialog -k $dname | return }
  600.             }
  601.             did -g $dname 16 $qt(%f)
  602.           }
  603.           inc %i
  604.         }
  605.       }
  606.       if (%chan) && (%chan == NOT_OK) { did -b $dname 7 }
  607.     }
  608.     if ($did == 60) {
  609.       var %h = WMM_MODULES
  610.       var %m = $did($did).seltext
  611.       if (!%m) || (!$wmm_getpath(%m)) { wmm_modules_installed_plus_updated_list | return }
  612.       if ($hget(%h,DID_60) == %m) { return }
  613.       hadd -m %h DID_60 %m
  614.       did -e $dname 11,12,8
  615.  
  616.       var %imgs = $hget(%h,%m $+ _images)
  617.       if (%imgs) {
  618.         var %t = $numtok(%imgs,44)
  619.         var %i = 1
  620.         while (%i <= %t) {
  621.           var %img = $gettok(%imgs,%i,44)
  622.           if (%i == 1) {
  623.             var %f = $wmm_temp $+ $nopath(%img)
  624.             if (!$isfile(%f)) || (!$lines(%f)) {
  625.               var %f = $scriptdir $+ no_preview.png
  626.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 026 | dialog -k $dname | return }
  627.             }
  628.             did -g $dname 14 $qt(%f)
  629.           }
  630.           if (%i == 2) {
  631.             var %f = $wmm_temp $+ $nopath(%img)
  632.             if (!$isfile(%f)) || (!$lines(%f)) {
  633.               var %f = $scriptdir $+ no_preview.png
  634.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 027 | dialog -k $dname | return }
  635.             }
  636.             did -g $dname 15 $qt(%f)
  637.           }
  638.           if (%i == 3) {
  639.             var %f = $wmm_temp $+ $nopath(%img)
  640.             if (!$isfile(%f)) || (!$lines(%f)) {
  641.               var %f = $scriptdir $+ no_preview.png
  642.               if (!$isfile(%f)) || (!$lines(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 028 | dialog -k $dname | return }
  643.             }
  644.             did -g $dname 16 $qt(%f)
  645.           }
  646.           inc %i
  647.         }
  648.       }
  649.  
  650.       if ($didwm(600,%m)) { did -ra $dname 250 $wmm_lang(86) }
  651.       else { did -r $dname 250 }
  652.  
  653.       var %chk_ver = $hget(%h,%m $+ _check_version_alias)
  654.       var %chk_ver_alias $right(%chk_ver,-1)
  655.       var %chk_owner_alias = $replace(%chk_ver_alias,_ver,_owner)
  656.       var %chk_crdate_alias = $replace(%chk_ver_alias,_ver,_crdate)
  657.       var %f = $isalias(%chk_ver_alias).fname
  658.       var %ft = $nopath($isalias(%chk_ver_alias).ftype)
  659.  
  660.       var %ver = $iif($isalias(%chk_ver_alias),$(%chk_ver,2),0)
  661.       var %chan = $hget(%h,%m $+ _channel)
  662.       var %installed = $date($file(%f).mtime,dd/mm/yyyy HH:nn:ss)
  663.       var %crdate = $($chr(36) $+ %chk_crdate_alias,2)
  664.       var %owner = $($chr(36) $+ %chk_owner_alias,2)
  665.       var %file = $nopath(%f)
  666.       var %size = $bytes($file(%f).size).suf
  667.       var %lines = $lines(%f)
  668.       var %md5 = $iif($isfile(%f) && ($lines(%f)),$md5(%f,2),0)
  669.  
  670.       did -r $dname 8
  671.       did -a $dname 8 $wmm_lang(47) $+ : $iif(%ver,$v1,N/A)
  672.       did -a $dname 8 $crlf
  673.       did -a $dname 8 $wmm_lang(60) $+ : $iif(%chan,$v1,N/A)
  674.       did -a $dname 8 $crlf
  675.       did -a $dname 8 $wmm_lang(48) $+ : $iif(%crdate,$v1,N/A)
  676.       did -a $dname 8 $crlf
  677.       did -a $dname 8 $wmm_lang(51) $+ : $iif(%installed,$v1,N/A)
  678.       did -a $dname 8 $crlf
  679.       did -a $dname 8 $wmm_lang(64) $+ : $iif(%file,$v1,N/A)
  680.       did -a $dname 8 $crlf
  681.       did -a $dname 8 $wmm_lang(49) $+ : $iif(%owner,$v1,N/A)
  682.       did -a $dname 8 $crlf
  683.       did -a $dname 8 $wmm_lang(53) $+ : $iif(%lines,$v1,N/A)
  684.       did -a $dname 8 $crlf
  685.       did -a $dname 8 $wmm_lang(50) $+ : $iif(%size,$v1,N/A)
  686.       did -a $dname 8 $crlf
  687.       did -a $dname 8 $wmm_lang(56) $+ : $iif(%md5,$v1,N/A)
  688.       did -a $dname 8 $crlf
  689.       did -a $dname 8 $wmm_lang(52) $+ : $iif($isfile(%f) && ($lines(%f)),$longfn(%f),N/A)
  690.       did -c $dname 8 1 1
  691.     }
  692.     if ($did == 12) {
  693.       if ($wmm_check_initial_warn) { wmm_input error 60 $wmm_lang(33) | return }
  694.       if ($wmm_check_monitor_warn) { wmm_input error 60 $wmm_lang(75) | return }
  695.       if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | return }
  696.       var %h = WMM_MODULES
  697.       var %m = $did(60).seltext
  698.       var %mod = %m $+ $wmm_getext(%m)
  699.       var %pos = $wmm_getpos(%m)
  700.       var %f = $wmm_getpath(%m)
  701.       if (!%m) || (!%f) || (!%pos) || (!%mod) { wmm_modules_installed_plus_updated_list | return }
  702.       if ($hget(%h,DID_60)) { hdel %h DID_60 }
  703.  
  704.       did -b $dname 11,12,60
  705.       did -ft $dname 1
  706.  
  707.       set -eu3 %wmm_signal_noclose 1
  708.       if ($wmm_ismod(%mod)) { .unload -rs $qt(%mod) }
  709.  
  710.       .load -rs $+ %pos $qt(%f)
  711.       wmm_modules_installed_plus_updated_list
  712.       wmm_reset_images
  713.       wmm_input ok 60 $wmm_lang(34)
  714.     }
  715.     if ($did == 11) {
  716.       var %m = $did(60).seltext
  717.       if (!%m) || (!$wmm_getpath(%m)) { wmm_modules_installed_plus_updated_list | return }
  718.       var %mod = %m $+ $wmm_getext(%m)
  719.       var %f = $wmm_getpath(%m)
  720.       did -b $dname 11,12,60,8
  721.       did -r $dname 8
  722.  
  723.       set -eu60 %wmm_signal_noclose 1
  724.       if ($wmm_ismod(%mod)) { .unload -rs $qt(%mod) }
  725.       if ($isfile(%f)) { .remove -b $qt(%f) }
  726.       unset %wmm_signal_noclose
  727.  
  728.       wmm_modules_installed_plus_updated_list
  729.       wmm_reset_images
  730.       wmm_input ok 60 $wmm_lang(36)
  731.       if ($dialog($dname)) { did -fv $dname 23 }
  732.     }
  733.     if ($did == 7) {
  734.       if ($wmm_check_initial_warn) { wmm_input error 60 $wmm_lang(33) | return }
  735.       if ($wmm_check_monitor_warn) { wmm_input error 60 $wmm_lang(75) | return }
  736.       if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | return }
  737.       var %h = WMM_MODULES
  738.       var %m = $did(6).seltext
  739.       if (!%m) || ($wmm_getpath(%m)) {
  740.         did -b $dname 7
  741.         did -u $dname 6
  742.         did -rb $dname 8
  743.         wmm_reset_images
  744.         wmm_modules_installed_plus_updated_list
  745.         return
  746.       }
  747.  
  748.       var %tools_ver = $hget(%h,%m $+ _tools_ver)
  749.       if (%tools_ver) && ($wmm_ver < %tools_ver) { wmm_input error 60 $wmm_lang(63) | return }
  750.  
  751.       did -b $dname 6,7
  752.       did -ft $dname 1
  753.  
  754.       var %url = $hget(%h,%m $+ _url)
  755.       var %mod = %m $+ .mrc
  756.       var %f = $scriptdir $+ modules $+ \ $+ %mod
  757.       if (!$isdir($nofile(%f))) { mkdir $qt($nofile(%f)) }
  758.  
  759.       if ($wmm_isadi) { .timer[WMM_MOD_INSTALL_ $+ %mod $+ ] -ho 1 500 download -o wmm_mod_install %url $qt(%f) }
  760.       else { .timer[WMM_MOD_INSTALL_ $+ %mod $+ ] -ho 1 500 wmm_download $qt(wmm_mod_install %mod) %url $qt(%f) }
  761.     }
  762.     if ($did == 14) {
  763.       var %m = $did(6).seltext
  764.       if (!%m) { var %m = $did(60).seltext }
  765.       if (!%m) { var %m = $did(600).seltext }
  766.       var %f = $wmm_temp $+ $nopath($lower(%m) $+ 1.png)
  767.       if ($isfile(%f)) && (%m) { wmm_pic $qt(%f) }
  768.     }
  769.     if ($did == 15) {
  770.       var %m = $did(6).seltext
  771.       if (!%m) { var %m = $did(60).seltext }
  772.       if (!%m) { var %m = $did(600).seltext }
  773.       var %f = $wmm_temp $+ $nopath($lower(%m) $+ 2.png)
  774.       if ($isfile(%f)) && (%m) { wmm_pic $qt(%f) }
  775.     }
  776.     if ($did == 16) {
  777.       var %m = $did(6).seltext
  778.       if (!%m) { var %m = $did(60).seltext }
  779.       if (!%m) { var %m = $did(600).seltext }
  780.       var %f = $wmm_temp $+ $nopath($lower(%m) $+ 3.png)
  781.       if ($isfile(%f)) && (%m) { wmm_pic $qt(%f) }
  782.     }
  783.     if ($did == 13) {
  784.       if ($wmm_check_initial_warn) { wmm_input error 60 $wmm_lang(33) | return }
  785.       if ($wmm_check_monitor_warn) { wmm_input error 60 $wmm_lang(75) | return }
  786.       if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | return }
  787.       var %h = WMM_MODULES
  788.       var %m = $did(600).seltext
  789.       if (!%m) || (!$wmm_getpath(%m)) { wmm_modules_installed_plus_updated_list | return }
  790.  
  791.       var %tools_ver = $hget(%h,%m $+ _tools_ver)
  792.       if (%tools_ver) && ($wmm_ver < %tools_ver) { wmm_input error 60 $wmm_lang(63) | return }
  793.  
  794.       did -b $dname 13,600
  795.       did -ft $dname 1
  796.  
  797.       var %url = $hget(%h,%m $+ _url)
  798.       var %mod = %m $+ $wmm_getext(%m)
  799.       var %pos = $wmm_getpos(%m)
  800.       var %f = $scriptdir $+ modules $+ \ $+ %mod
  801.       if (!$isdir($nofile(%f))) { mkdir $qt($nofile(%f)) }
  802.  
  803.       var %chk_sets $right($replace($hget(%h,%m $+ _check_version_alias),_ver,_sets),-1)
  804.       wmm_d_close %chk_sets
  805.  
  806.       if ($wmm_isadi) { .timer[WMM_MOD_UPDATE_ $+ %mod $+ ] -ho 1 500 download -o wmm_mod_update %url $qt(%f) }
  807.       else { .timer[WMM_MOD_UPDATE_ $+ %mod $+ ] -ho 1 500 wmm_download $qt(wmm_mod_update %mod %pos) %url $qt(%f) }
  808.     }
  809.   }
  810.   if ($devent == menu) {
  811.     if ($did == 27) { url $wmm_bit_url }
  812.     if ($did == 18) { url $wmm_page }
  813.     if ($did == 24) || ($did == 23) { url $wmm_donate }
  814.     if ($did == 22) { dialog -k $dname }
  815.     if ($did == 21) { .timer -ho 1 500 wmm | dialog -k $dname }
  816.     if ($did == 19) { .timer -ho 1 100 wmm_sets | dialog -k $dname }
  817.     if ($did == 20) { wmm_input ok 60 $wmm_lang(27) $upper($wmm_owner) $wmm_lang(16) v $+ $wmm_ver $wmm_lang(28) $wmm_crdate $wmm_lang(29) $wmm_owner }
  818.   }
  819. }
  820.  
  821. ; --- End of events ---
  822.  
  823. ; --- Start of aliases ---
  824.  
  825. alias wmm_ver { return 4.0 }
  826. alias wmm_crdate { return 01/08/2017 }
  827. alias wmm_owner { return $+($chr(119),$chr(101),$chr(115),$chr(116),$chr(111),$chr(114)) }
  828. alias wmm_page { return http:// $+ $wmm_owner $+ .ucoz.com/wmm }
  829. alias wmm_donate { return https://paypal.me/ $+ $wmm_owner }
  830. alias wmm_bit_url { return https://bitbucket.org/snippets/ $+ $wmm_owner $+ / $+ $1 }
  831. alias wmm_sets_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/ $+ $+($chr(109),$chr(111),$chr(100),$chr(117),$chr(108),$chr(101),$chr(115),$chr(46),$chr(106),$chr(115),$chr(111),$chr(110)) }
  832. alias wmm_main_ico_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/main.ico }
  833. alias wmm_main_png_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/no_preview.png }
  834. alias wmm_donate_png_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/donate.png }
  835. alias wmm_lang_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/languages/wmm_lang.ini }
  836. alias wmm_modules_images_url { return http:// $+ $wmm_owner $+ .ucoz.com/wmm/images/wmm_modules_images.zip }
  837.  
  838. alias wmm {
  839.   if ($isid) { return }
  840.   var %d = wmm_module
  841.   wmm_d_close wmm_module_sets
  842.   .timer[WMM_CHECK_FOR_UPDATE_MODULES_SILENT] off
  843.   .timer[WMM_CHECK_FOR_UPDATE_SILENT] off
  844.   .timer[WMM_MOD_SILENT_UPDATE_*] off
  845.   if (%wmm_update) { wmm_tool -b | return }
  846.   if ($dialog(%d)) { wmm_tool -e | dialog -ve %d %d | return }
  847.   wmm_check_update -m
  848.   if (%wmm_update) { return }
  849.   var %don = $scriptdir $+ donate.png
  850.   var %ico = $scriptdir $+ main.ico
  851.   var %png = $scriptdir $+ no_preview.png
  852.   var %l = $scriptdir $+ wmm_lang.ini
  853.   var %f_img = $wmm_temp $+ wmm_dl_images.vbs
  854.   if ($isfile(%f_img)) { .remove $qt(%f_img) }
  855.   if (!$isfile(%l)) { var %delay = 1 | wmm_dl $wmm_lang_url $qt(%l) }
  856.   if (!$isfile(%ico)) { var %delay = 1 | wmm_dl $wmm_main_ico_url $qt(%ico) }
  857.   if (!$isfile(%png)) { var %delay = 1 | wmm_dl $wmm_main_png_url $qt(%png) }
  858.   if (!$isfile(%don)) { var %delay = 1 | wmm_dl $wmm_donate_png_url $qt(%don) }
  859.   wmm_fix_extra_modules_installed
  860.   if (%delay) { .timer[WMM_CHECK_BEFORE_OPEN] -ho 1 4000 wmm_check_before_open %d }
  861.   elseif (!%delay) { dialog -md %d %d }
  862. }
  863.  
  864. alias wmm_sets {
  865.   if ($isid) { return }
  866.   var %d = wmm_module_sets
  867.   wmm_d_close wmm_module
  868.   .timer[WMM_CHECK_FOR_UPDATE_MODULES_SILENT] off
  869.   .timer[WMM_CHECK_FOR_UPDATE_SILENT] off
  870.   .timer[WMM_MOD_SILENT_UPDATE_*] off
  871.   if (%wmm_update) { wmm_tool -b | return }
  872.   if ($dialog(%d)) { wmm_tool -e | dialog -ve %d %d | return }
  873.   wmm_check_update -s
  874.   if (%wmm_update) { return }
  875.   var %don = $scriptdir $+ donate.png
  876.   var %ico = $scriptdir $+ main.ico
  877.   var %png = $scriptdir $+ no_preview.png
  878.   var %l = $scriptdir $+ wmm_lang.ini
  879.   if (!$isfile(%l)) { var %delay = 1 | wmm_dl $wmm_lang_url $qt(%l) }
  880.   if (!$isfile(%ico)) { var %delay = 1 | wmm_dl $wmm_main_ico_url $qt(%ico) }
  881.   if (!$isfile(%png)) { var %delay = 1 | wmm_dl $wmm_main_png_url $qt(%png) }
  882.   if (!$isfile(%don)) { var %delay = 1 | wmm_dl $wmm_donate_png_url $qt(%don) }
  883.   wmm_fix_extra_modules_installed
  884.   if (%delay) { .timer[WMM_CHECK_BEFORE_OPEN] -ho 1 4000 wmm_check_before_open %d }
  885.   elseif (!%delay) { dialog -md %d %d }
  886. }
  887.  
  888. alias -l wmm_check_before_open {
  889.   if (!$1) || ($dialog($1)) { return }
  890.   var %f = $scriptdir $+ wmm_lang.ini
  891.   var %don = $scriptdir $+ donate.png
  892.   var %ico = $scriptdir $+ main.ico
  893.   var %png = $scriptdir $+ no_preview.png
  894.   if (!$isfile(%f)) { wmm_input error 60 FATAL ERROR! @newline@ @newline@ $+ Error Code: 001 | return }
  895.   if (!$isfile(%don)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 022 | return }
  896.   if (!$isfile(%ico)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 010 | return }
  897.   if (!$isfile(%png)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 016 | return }
  898.   dialog -md $1 $1
  899. }
  900.  
  901. alias wmm_check_version {
  902.   if (!$isid) { return }
  903.   var %js1 = $group(#SReject/JSONForMirc/Log).fname
  904.   var %js2 = $group(#wmm).fname
  905.   var %js3 = $gettok($isalias(jsonversion,3).alias,3,32)
  906.   var %js4 = $jsonversion()
  907.   if (%js1 !== %js2) || (%js3 !== %js4) || (%js4 !== 1.0.4000) { return 1 }
  908.   if ($wmm_isadi) && ($version < 2.9) || ($mid($~dotnet,2,1) < 2) { return 1 }
  909.   if (!$wmm_isadi) && ($version < 7.49) { return 1 }
  910.   return 0
  911. }
  912.  
  913. alias wmm_check_os {
  914.   if (!$isid) { return }
  915.   if ($wmm_isadi) && ($bits == 64) { var %adi = 1 }
  916.   var %1 = CheckOS_1
  917.   var %2 = CheckOS_2
  918.   var %3 = CheckOS_3
  919.   var %4 = CheckOS_4
  920.   var %5 = CheckOS_5
  921.   wmm_c_close %1
  922.   wmm_c_close %2
  923.   wmm_c_close %3
  924.   wmm_c_close %4
  925.   wmm_c_close %5
  926.   .comopen %1 MSScriptControl.ScriptControl
  927.   if (!$com(%1)) || ($comerr) { return 1 }
  928.   .comopen %2 WScript.Shell
  929.   if (!$com(%2)) || ($comerr) { return 1 }
  930.   .comopen %3 MSXML2.SERVERXMLHTTP.6.0
  931.   if (!$com(%3)) || ($comerr) { return 1 }
  932.   .comopen %4 Adodb.Stream
  933.   if (!$com(%4)) || ($comerr) { return 1 }
  934.   if (%adi) {
  935.     .comopen %5 ScriptControl
  936.     if (!$com(%5)) || ($comerr) { return 1 }
  937.  
  938.     var %dll = $envvar(windir) $+ \System32\tsc64.dll
  939.     var %ver = $file(%dll).version
  940.     if (!$isfile(%dll)) || (%ver < 1.0.7.0) { return 1 }
  941.   }
  942.   :error
  943.   reseterror
  944.   wmm_c_close %1
  945.   wmm_c_close %2
  946.   wmm_c_close %3
  947.   wmm_c_close %4
  948.   wmm_c_close %5
  949.   return 0
  950. }
  951.  
  952. alias wmm_check_initial_warn {
  953.   if (!$isid) { return }
  954.   if ($wmm_isadi) {
  955.     .setconfig misc initscriptswarning false
  956.     if ($readini($adiircini,n,misc,initscriptswarning) == true) { return 1 }
  957.     else { return 0 }
  958.   }
  959.   if (!$wmm_isadi) && ($gettok($readini($mircini,n,options,n5),27,44)) { return 1 }
  960.   return 0
  961. }
  962.  
  963. alias wmm_check_monitor_warn {
  964.   if (!$isid) { return }
  965.   if ($wmm_isadi) {
  966.     .setconfig misc monitorscripts false
  967.     if ($readini($adiircini,n,misc,monitorscripts) == true) { return 1 }
  968.     else { return 0 }
  969.   }
  970.   if (!$wmm_isadi) && ($gettok($readini($mircini,n,options,n7),13,44)) { return 1 }
  971.   return 0
  972. }
  973.  
  974. alias wmm_langs {
  975.   var %f = $scriptdir $+ wmm_lang.ini
  976.   if (!$isid) || (!$isfile(%f)) || (!$lines(%f)) || (!$ini(%f,0)) { return 0 }
  977.   if (!%wmm_lang) { set %wmm_lang English }
  978.   var %t = $ini(%f,0)
  979.   var %i = 1
  980.   while (%i <= %t) {
  981.     var %l = $ini(%f,%i)
  982.     if (%l) { var %langs = $addtok(%langs,%l,44) }
  983.     inc %i
  984.   }
  985.   if (%langs) { return %langs }
  986.   else { return 0 }
  987. }
  988.  
  989. alias wmm_fix_extra_modules_installed {
  990.  
  991.   ; -e = it will fix any name or position errors related to WMM original state.
  992.  
  993.   if (!$script(0)) || ($isid) { return }
  994.  
  995.   if ($1) && ($1 == -e) {
  996.     var %name = $nopath($script)
  997.     var %org_name = $upper($wmm_owner) Module Manager.mrc
  998.     var %new_name = $nofile($script) $+ %org_name
  999.  
  1000.     if (%name !== %org_name) { .rename -of $qt($script) $qt(%new_name) | .reload -rs1 $qt(%new_name) | .unload -nrs $qt($script) | return }
  1001.  
  1002.     var %pos = $wmm_getpos($mid($nopath($script),0,-4))
  1003.     if (%pos !== 1) { .reload -rs1 $qt($script) }
  1004.   }
  1005.  
  1006.   var %t = $script(0)
  1007.   while (%t) {
  1008.     var %s = $script(%t)
  1009.     var %ext = $right($nopath(%s),4)
  1010.     var %r = $evalnext($gettok($read(%s,nw,alias -l addon *),6,32))
  1011.  
  1012.     if ($nopath(%s) !== $nopath($script)) && (%r) && (%ext) && ($wmm_ismod($nopath(%s))) && (%ext !== .mrc) { .unload -rs $qt($nopath(%s)) }
  1013.  
  1014.     dec %t
  1015.   }
  1016. }
  1017.  
  1018. alias -l wmm_reset_images {
  1019.   var %d = wmm_module
  1020.   if (!$dialog(%d)) || ($isid) { return }
  1021.   var %f = $scriptdir $+ no_preview.png
  1022.   if (!$isfile(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 008 | wmm_d_close %d | return }
  1023.   did -g %d 14,15,16 $qt(%f)
  1024. }
  1025.  
  1026. alias -l wmm_mod_install {
  1027.   var %d = wmm_module
  1028.   if (!$1) || ($isid) || (!$dialog(%d)) { return }
  1029.   if ($3 !== S_OK) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 007 | wmm_d_close %d | return }
  1030.   var %f = $noqt($5-)
  1031.   if (!$isfile(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 018 | wmm_d_close %d | return }
  1032.   set -eu60 %wmm_signal_noclose 1
  1033.   if ($wmm_ismod($1)) { .unload -rs $qt($1) }
  1034.   .load -rs $qt(%f)
  1035.   unset %wmm_signal_noclose
  1036.   if (!$wmm_ismod($1)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 012 | wmm_d_close %d | return }
  1037.   did -euz %d 6
  1038.   wmm_reset_images
  1039.   wmm_modules_installed_plus_updated_list
  1040.   wmm_input ok 60 $wmm_lang(35)
  1041.   if ($dialog(%d)) { did -fv %d 23 }
  1042. }
  1043.  
  1044. alias -l wmm_mod_update {
  1045.   var %d = wmm_module
  1046.   if (!$1) || ($isid) || (!$dialog(%d)) { return }
  1047.   if ($4 !== S_OK) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 011 | wmm_d_close %d | return }
  1048.   var %f = $noqt($6-)
  1049.   if (!$isfile(%f)) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 014 | wmm_d_close %d | return }
  1050.   set -eu60 %wmm_signal_noclose 1
  1051.   if ($wmm_ismod($1)) { .unload -nrs $qt($1) }
  1052.   if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  1053.   .load -rs $+ $2 $qt(%f)
  1054.   unset %wmm_signal_noclose
  1055.   if (!$wmm_ismod($nopath(%f))) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 015 | wmm_d_close %d | return }
  1056.   wmm_modules_installed_plus_updated_list
  1057.   wmm_reset_images
  1058.   wmm_input ok 60 $wmm_lang(37)
  1059.   if ($dialog(%d)) { did -fv %d 23 }
  1060. }
  1061.  
  1062. alias wmm_lang {
  1063.   var %f = $scriptdir $+ wmm_lang.ini
  1064.   if (!$isfile(%f)) || (!$lines(%f)) || (!$isid) { return 0 }
  1065.   if (!%wmm_lang) { set %wmm_lang English }
  1066.   var %chk_lang = $ini(%f,%wmm_lang)
  1067.   if (!%chk_lang) { return READ-ERROR! }
  1068.   var %r = $readini(%f,n,%wmm_lang,$1)
  1069.   if (!%r) { return N/A }
  1070.   elseif (%r) { return %r }
  1071. }
  1072.  
  1073. alias -l wmm_check_update {
  1074.  
  1075.   ; -m = will flag that the update coming from WMM
  1076.   ; -s = will flag that the update coming from WMM settings.
  1077.  
  1078.   if (!$1) { return }
  1079.   var %d = wmm_module
  1080.   var %d2 = wmm_module_sets
  1081.   if ($isid) || (!$isalias(wmm_ver)) { return }
  1082.   var %v = wmm_update_ $+ $wmm_random
  1083.   jsonopen -u %v $wmm_sets_url
  1084.   if ($jsonerror) { jsonclose %v | wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 002 | set -eu0 %wmm_update 3 | return }
  1085.   var %ver = $json(%v,latest_version).value
  1086.   var %chan = $json(%v,latest_version_channel).value
  1087.   var %date = $json(%v,latest_version_date).value
  1088.   var %url = $json(%v,latest_version_source_download).value
  1089.   var %url_rar = $json(%v,latest_version_download).value
  1090.   jsonclose %v
  1091.   if (%ver) && (%ver !== $wmm_ver) && (%chan !== NOT_OK) {
  1092.     var %ask = $input($wmm_lang(23) $iif(%chan,$v1,N/A) $wmm_lang(24) %ver ( $+ $iif(%date,$v1,N/A) $+ ) $wmm_lang(25) $+ . $crlf $crlf $+ $+ $wmm_lang(26),yuidbk60,$upper($wmm_owner) $wmm_lang(16) $wmm_bel $wmm_lang(22))
  1093.     if (%ask) {
  1094.       if (!$wmm_internet) { wmm_input error 60 $wmm_lang(44) | set -eu0 %wmm_update 3 | return }
  1095.       wmm_d_close %d
  1096.       wmm_d_close %d2
  1097.       if (%url_rar) && ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) { url %url_rar }
  1098.       if (%url) && (!$wmm_check_initial_warn) && (!$wmm_check_monitor_warn) {
  1099.         if ($1) && ($1 == -m) { set -eu120 %wmm_update 1 }
  1100.         if ($1) && ($1 == -s) { set -eu120 %wmm_update 2 }
  1101.         if ($wmm_isadi) { download -o wmm_check_update_install %url $qt($scriptdir $+ $upper($wmm_owner) Module Manager.mrc) }
  1102.         else { wmm_download $qt(wmm_check_update_install) %url $qt($scriptdir $+ $upper($wmm_owner) Module Manager.mrc) }
  1103.       }
  1104.     }
  1105.   }
  1106. }
  1107.  
  1108. alias -l wmm_check_update_install {
  1109.   if ($2 !== S_OK) || ($isid) { wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 019 | unset %wmm_update | return }
  1110.   if ($4-) { .timer -ho 1 1000 .load -rs1 $qt($4-) | wmm_tool -c | .unload -nrs $qt($script) }
  1111. }
  1112.  
  1113. alias -l wmm_check_silent_update {
  1114.   if ($dialog(wmm_module)) || ($isid) || ($dialog(wmm_module_sets)) || ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) || (!$wmm_internet) || (!$isalias(wmm_ver)) { return }
  1115.   var %v = wmm_silent_update_ $+ $wmm_random
  1116.   jsonopen -u %v $wmm_sets_url
  1117.   if ($jsonerror) { jsonclose %v | return }
  1118.   var %ver = $json(%v,latest_version).value
  1119.   var %chan = $json(%v,latest_version_channel).value
  1120.   var %url = $json(%v,latest_version_source_download).value
  1121.   jsonclose %v
  1122.   if (%url) && (%ver) && (%ver !== $wmm_ver) && (%chan !== NOT_OK) {
  1123.     set -eu120 %wmm_update 3
  1124.     if ($wmm_isadi) { download -o wmm_check_silent_update_install %url $qt($scriptdir $+ $upper($wmm_owner) Module Manager.mrc) }
  1125.     else { wmm_download $qt(wmm_check_silent_update_install) %url $qt($scriptdir $+ $upper($wmm_owner) Module Manager.mrc) }
  1126.   }
  1127. }
  1128.  
  1129. alias -l wmm_check_silent_update_install {
  1130.   if ($2 !== S_OK) || ($isid) { unset %wmm_update | return }
  1131.   if ($4-) { .timer -ho 1 1000 .load -rs1 $qt($4-) | wmm_tool -c | .unload -nrs $qt($script) }
  1132. }
  1133.  
  1134. alias -l wmm_modules_silent_update {
  1135.   if (!%wmm_autoupdate_modules) || ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) || (!$wmm_internet) || ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) || (!$isalias(wmm_ver)) { return }
  1136.   if (!$isdir($scriptdir $+ modules)) { mkdir $qt($scriptdir $+ modules) }
  1137.   var %v = wmm_modules_silent_update_ $+ $wmm_random
  1138.   jsonopen -ud %v $wmm_sets_url
  1139.   if ($jsonerror) { return }
  1140.   var %t = $json(%v,modules).length
  1141.   var %x = 0
  1142.   while (%x < %t) {
  1143.     var %mod = $json(%v,modules,%x,name).value
  1144.  
  1145.     if (!%mod) || (!$wmm_getpath(%mod)) || (!$istok(%wmm_autoupdate_modules,%mod,32)) { goto next }
  1146.  
  1147.     var %ver = $json(%v,modules,%x,version).value
  1148.     var %chan = $json(%v,modules,%x,state).value
  1149.     var %url = $json(%v,modules,%x,url).value
  1150.     var %alias = $json(%v,modules,%x,alias).value
  1151.     var %tools_ver = $json(%v,modules,%x,tools_ver).value
  1152.     var %iv = $iif($isalias($right(%alias,-1)),$(%alias,2),0)
  1153.     var %pos = $wmm_getpos(%mod)
  1154.     var %fn = $scriptdir $+ modules $+ \ $+ %mod $+ .mrc
  1155.  
  1156.     if (%url) && (%iv) && (%ver) && (%tools_ver) && (%iv !== %ver) && ($wmm_ver >= %tools_ver) && (%chan !== NOT_OK) {
  1157.  
  1158.       var %total = $calc(%total +1)
  1159.       var %chk_sets $right($replace(%alias,_ver,_sets),-1)
  1160.       wmm_d_close %chk_sets
  1161.       if ($wmm_isadi) { .timer[WMM_MOD_SILENT_UPDATE_ $+ %mod $+ ] -ho 1 $calc(%total * 5000) download -o wmm_mod_silent_update %url $qt(%fn) }
  1162.       else { .timer[WMM_MOD_SILENT_UPDATE_ $+ %mod $+ ] -ho 1 $calc(%total * 5000) wmm_download $qt(wmm_mod_silent_update %mod %pos) %url $qt(%fn) }
  1163.     }
  1164.  
  1165.     :next
  1166.     inc %x
  1167.   }
  1168. }
  1169.  
  1170. alias -l wmm_mod_silent_update {
  1171.   if (!$1) || ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) || ($4 !== S_OK) { return }
  1172.   var %p = $nopath($wmm_getpath($1))
  1173.   var %f = $noqt($6-)
  1174.   if (!$isfile(%f)) || (!$lines(%f)) { return }
  1175.   if (%p) && ($wmm_ismod(%p)) { .unload -nrs $qt(%p) }
  1176.   if ($wmm_ismod($nopath(%f))) { .unload -nrs $qt($nopath(%f)) }
  1177.   .load -rs $+ $2 $qt(%f)
  1178. }
  1179.  
  1180. alias -l wmm_modules_list {
  1181.   var %d = wmm_module
  1182.   var %h = WMM_MODULES
  1183.   var %hs = WMM_MODULES_SUBMENU_INSTALLED
  1184.   if (!$dialog(%d)) || ($isid) { return }
  1185.   if ($hget(%h)) { hfree $v1 }
  1186.   if ($hget(%hs)) { hfree $v1 }
  1187.   did -rb %d 6
  1188.   hmake %h 1000
  1189.   hmake %hs 1000
  1190.   var %v = wmm_modules_ $+ $wmm_random
  1191.  
  1192.   jsonopen -u %v $wmm_sets_url
  1193.   if ($jsonerror) { jsonclose %v | wmm_input error 60 $wmm_lang(17) @newline@ @newline@ $+ $wmm_lang(18) 003 | wmm_d_close %d | return }
  1194.  
  1195.   var %t = $json(%v,modules).length
  1196.   var %x = 0
  1197.   while (%x < %t) {
  1198.     var %mod = $json(%v,modules,%x,name).value
  1199.     if (!%mod) { goto next }
  1200.  
  1201.     did -a %d 6 %mod
  1202.  
  1203.     .timer[WMM_MODULES_LIST_GET_ $+ %mod $+ ] -ho 1 $calc(%x * 100) wmm_modules_list_get %v %x %t %mod
  1204.  
  1205.     :next
  1206.     inc %x
  1207.   }
  1208.   var %news = $json(%v,latest_news).value
  1209.   if (%news) { var %news = $replace(%news,@newline@,$+ $+ $crlf $+ $+) | did -ra %d 26 %news }
  1210.   else { did -ra %d 26 $wmm_lang(58) }
  1211.   if ($did(%d,6).lines) {
  1212.     var %r = $wmm_lang(3) ( $+ $did(%d,6).lines $+ )
  1213.     if ($did(%d,2) !== %r) { did -ra %d 2 %r }
  1214.     did -e %d 6
  1215.   }
  1216.   else {
  1217.     var %r = $wmm_lang(3)
  1218.     if ($did(%d,2) !== %r) { did -ra %d 2 %r }
  1219.   }
  1220.   if (!$wmm_isadi) { .timer[WMM_DOWNLOAD_IMAGES] -ho 1 15000 wmm_dl_images_now }
  1221.   else { .timer[WMM_DOWNLOAD_IMAGES] -ho 1 2000 wmm_dl_images_now }
  1222. }
  1223.  
  1224. alias -l wmm_modules_list_get {
  1225.   var %d = wmm_module
  1226.   if ($1 == $null) || ($2 == $null) || ($3 == $null) || ($isid) || (!$dialog(%d)) { return }
  1227.  
  1228.   var %h = WMM_MODULES
  1229.   var %hs = WMM_MODULES_SUBMENU_INSTALLED
  1230.   var %v = $1
  1231.   var %x = $2
  1232.   var %t = $3
  1233.   var %mod = $4
  1234.  
  1235.   var %desc = $json(%v,modules,%x,description).value
  1236.   var %images = $json(%v,modules,%x,images).value
  1237.   var %examples = $json(%v,modules,%x,examples).value
  1238.   var %changelog = $json(%v,modules,%x,changelog).value
  1239.   var %ver = $json(%v,modules,%x,version).value
  1240.   var %date = $json(%v,modules,%x,date).value
  1241.   var %alias = $json(%v,modules,%x,alias).value
  1242.   var %chan = $json(%v,modules,%x,state).value
  1243.   var %tools_ver = $json(%v,modules,%x,tools_ver).value
  1244.   var %bit_id = $json(%v,modules,%x,bitbucket_id).value
  1245.   var %owner = $json(%v,modules,%x,owner).value
  1246.   var %url = $json(%v,modules,%x,url).value
  1247.  
  1248.   var %mod_alias_name = $upper($right($gettok(%alias,1,95),-1))
  1249.   var %key = $json(%v,modules,%x,api_key).value
  1250.   var %key2 = $json(%v,modules,%x,api_key2).value
  1251.  
  1252.   if (%mod_alias_name) && (%key) { hadd -m %mod_alias_name $+ _KEYS KEY %key }
  1253.   if (%mod_alias_name) && (%key2) { hadd -m %mod_alias_name $+ _KEYS KEY2 %key2 }
  1254.  
  1255.   var %mods = $hget(%h,ALL)
  1256.   var %mods = $addtok(%mods,%mod,32)
  1257.   hadd %h ALL %mods
  1258.  
  1259.   var %a = $replace($right(%alias,-1),_ver,_sets)
  1260.   if (!$hget(%hs,%mod)) && (%a) { hadd %hs %mod %a }
  1261.  
  1262.   if (%alias) {
  1263.     hadd %h %mod $+ _check_version_alias %alias
  1264.     var %chk_mod_ver = $right(%alias,-1)
  1265.     var %chk_mod_version = $iif($isalias(%chk_mod_ver),$(%alias,2),0)
  1266.     hadd %h %mod $+ _check_version %chk_mod_version
  1267.   }
  1268.  
  1269.   if (%ver) { hadd %h %mod $+ _version %ver }
  1270.   if (%chan) { hadd %h %mod $+ _channel %chan }
  1271.   if (%date) { hadd %h %mod $+ _crdate %date }
  1272.   if (%url) { hadd %h %mod $+ _url %url }
  1273.   if (%owner) { hadd %h %mod $+ _author %owner }
  1274.   if (%tools_ver) { hadd %h %mod $+ _tools_ver %tools_ver }
  1275.   if (%bit_id) { hadd %h %mod $+ _bitbucket_id %bit_id }
  1276.   if (%desc) { hadd %h %mod $+ _desc %desc }
  1277.   if (%changelog) { hadd %h %mod $+ _changelog %changelog }
  1278.   if (%examples) { hadd %h %mod $+ _examples %examples }
  1279.   if (%images) {
  1280.     hadd %h %mod $+ _images %images
  1281.     if (!$wmm_isadi) { .timer[WMM_GET_IMAGES_ $+ %mod $+ ] -ho 1 10000 wmm_get_images %images }
  1282.   }
  1283.  
  1284.   if (%x == $calc(%t -1)) { jsonclose %v | wmm_modules_installed_plus_updated_list }
  1285. }
  1286.  
  1287. alias -l wmm_modules_installed_plus_updated_list {
  1288.   var %d = wmm_module
  1289.   var %h = WMM_MODULES
  1290.   if (!$dialog(%d)) || ($isid) { return }
  1291.   var %t = $did(%d,6).lines
  1292.   did -b %d 8,11,12,13,60,600
  1293.   did -r %d 8,60,600,250
  1294.   if (!%t) { did -fv %d 23 | return }
  1295.   var %i = 1
  1296.   while (%i <= %t) {
  1297.     var %mod = $did(%d,6,%i)
  1298.     if (!%mod) { goto next }
  1299.     var %module = %mod $+ $wmm_getext(%mod)
  1300.     if ($wmm_ismod(%module)) {
  1301.  
  1302.       did -a %d 60 %mod
  1303.  
  1304.       var %mod_ver = $hget(%h,%mod $+ _check_version_alias)
  1305.       var %iv = $iif($isalias($right(%mod_ver,-1)),$(%mod_ver,2),0)
  1306.       var %ver = $hget(%h,%mod $+ _version)
  1307.       var %url = $hget(%h,%mod $+ _url)
  1308.       if (%url) && (%iv) && (%ver) && (%iv !== %ver) { did -a %d 600 %mod }
  1309.     }
  1310.     :next
  1311.     inc %i
  1312.   }
  1313.   if ($did(%d,60).lines) {
  1314.     var %r = $wmm_lang(2) ( $+ $did(%d,60).lines $+ )
  1315.     if ($did(%d,3) !== %r) { did -ra %d 3 %r }
  1316.     did -ez %d 60
  1317.   }
  1318.   else {
  1319.     if ($did(%d,3) !== $wmm_lang(2)) { did -ra %d 3 $wmm_lang(2) }
  1320.   }
  1321.   if ($did(%d,600).lines) {
  1322.     var %r = $wmm_lang(7) ( $+ $did(%d,600).lines $+ )
  1323.     if ($did(%d,4) !== %r) { did -ra %d 4 %r }
  1324.     did -ez %d 600
  1325.   }
  1326.   else {
  1327.     if ($did(%d,4) !== $wmm_lang(7)) { did -ra %d 4 $wmm_lang(7) }
  1328.   }
  1329.   did -fv %d 23
  1330. }
  1331.  
  1332. alias -l wmm_get_images {
  1333.   var %d = wmm_module
  1334.   if (!$1) || (!$dialog(%d)) || ($isid) { return }
  1335.   var %fw = $wmm_temp $+ wmm_dl_images.vbs
  1336.   var %t = $numtok($1-,44)
  1337.   var %i = 1
  1338.   while (%i <= %t) {
  1339.     var %f = $gettok($1-,%i,44)
  1340.     var %ft = $wmm_temp $+ $gettok(%f,$numtok(%f,47),47)
  1341.     var %fd = $date($file(%ft).mtime,dd/mm/yyyy)
  1342.  
  1343.     if (!$isfile(%ft)) || (%fd !== $date) {
  1344.       if (!$fopen(wmm_dl_images)) { .fopen -ox wmm_dl_images $qt(%fw) }
  1345.       wmm_dl_images %f $qt(%ft)
  1346.     }
  1347.  
  1348.     inc %i
  1349.   }
  1350. }
  1351.  
  1352. alias -l wmm_dl_images_now {
  1353.   if (!$wmm_isadi) {
  1354.     var %f = $wmm_temp $+ wmm_dl_images.vbs
  1355.     if ($isfile(%f)) && ($lines(%f)) && ($fopen(wmm_dl_images)) {
  1356.       .fwrite -n wmm_dl_images Err.Clear
  1357.       .fwrite -n wmm_dl_images Set oFso = CreateObject("Scripting.FileSystemObject") : oFso.DeleteFile Wscript.ScriptFullName, True
  1358.       .fclose wmm_dl_images
  1359.       run -h $qt(%f)
  1360.     }
  1361.   }
  1362.   else { download -o wmm_dl_images $wmm_modules_images_url $qt($wmm_temp $+ wmm_modules_images.zip) }
  1363. }
  1364.  
  1365. alias -l wmm_dl_images {
  1366.   if (!$1) || (!$2) || (!$fopen(wmm_dl_images)) { return }
  1367.  
  1368.   var %f = $wmm_temp $+ wmm_dl_images.vbs
  1369.   var %r = $wmm_random
  1370.  
  1371.   .fwrite -n wmm_dl_images On Error Resume Next
  1372.   .fwrite -n wmm_dl_images Set args = WScript.Arguments
  1373.   .fwrite -n wmm_dl_images Url $+ %r = $qt($1)
  1374.   .fwrite -n wmm_dl_images dim xHttp $+ %r $+ : Set xHttp $+ %r = createobject("MSXML2.SERVERXMLHTTP.6.0")
  1375.   .fwrite -n wmm_dl_images dim bStrm $+ %r $+ : Set bStrm $+ %r = createobject("Adodb.Stream")
  1376.   .fwrite -n wmm_dl_images xHttp $+ %r $+ .Open "GET", Url $+ %r $+ , False
  1377.   .fwrite -n wmm_dl_images xHttp $+ %r $+ .Send
  1378.   .fwrite -n wmm_dl_images with bStrm $+ %r
  1379.   .fwrite -n wmm_dl_images    .type = 1
  1380.   .fwrite -n wmm_dl_images    .mode = 3
  1381.   .fwrite -n wmm_dl_images    .open
  1382.   .fwrite -n wmm_dl_images    .write xHttp $+ %r $+ .responseBody
  1383.   .fwrite -n wmm_dl_images    .savetofile $2- $+ , 2
  1384.   .fwrite -n wmm_dl_images    .close
  1385.   .fwrite -n wmm_dl_images  end with
  1386.   .fwrite -n wmm_dl_images $crlf
  1387. }
  1388.  
  1389. alias wmm_tool {
  1390.  
  1391.   ; -s = start toolbar
  1392.   ; -c = close toolbar
  1393.   ; -e = check the toolbar
  1394.   ; -b = uncheck the toolbar
  1395.   ; -t = update tooltip via correct language
  1396.  
  1397.   if (!$1) || ($left($1,1) !== -) || ($isid) || (s !isincs $1) && (c !isincs $1) && (t !isincs $1) && (e !isincs $1) && (b !isincs $1) { return }
  1398.   if (s isincs $1) {
  1399.     var %d = wmm_module
  1400.     var %ico = $scriptdir $+ main.ico
  1401.     if (!$isfile(%ico)) { wmm_dl $wmm_main_ico_url $qt(%ico) | return }
  1402.     wmm_t_close wmm
  1403.     wmm_t_close wmm1
  1404.     toolbar -as wmm1
  1405.     toolbar -ak $+ $iif($dialog(%d),1,0) wmm $qt($upper($wmm_owner) $wmm_lang(16) - ( $+ $wmm_lang(74) $+ )) $qt(%ico) $qt(/wmm_check_open) @wmm
  1406.   }
  1407.   if (c isincs $1) { wmm_t_close wmm | wmm_t_close wmm1 }
  1408.   if (t isincs $1) && ($toolbar(wmm)) { toolbar -t wmm $qt($upper($wmm_owner) $wmm_lang(16) - ( $+ $wmm_lang(74) $+ )) }
  1409.   if (e isincs $1) && ($toolbar(wmm)) { toolbar -k1 wmm }
  1410.   if (b isincs $1) && ($toolbar(wmm)) { toolbar -k0 wmm }
  1411. }
  1412.  
  1413. alias -l wmm_check_open {
  1414.   if ($isid) { return }
  1415.   if ($dialog(wmm_module)) { wmm | return }
  1416.   if ($dialog(wmm_module_sets)) { wmm_sets | return }
  1417.   wmm
  1418. }
  1419.  
  1420. alias -l wmm_modules_settings_list {
  1421.   var %hs = WMM_MODULES_SUBMENU_INSTALLED
  1422.   var %d = wmm_module_sets
  1423.   if (!$dialog(%d)) || ($isid) { return }
  1424.   if ($hget(%hs)) { hfree %hs }
  1425.  
  1426.   if (%wmm_autoupdate_modules) {
  1427.     var %i = 1
  1428.     while (%i <= $numtok(%wmm_autoupdate_modules,32)) {
  1429.       var %m = $gettok(%wmm_autoupdate_modules,%i,32)
  1430.  
  1431.       if (!%m) { goto next2 }
  1432.       if (!$wmm_getpath(%m)) { set %wmm_autoupdate_modules $remtok(%wmm_autoupdate_modules,%m,1,32) | goto next2 }
  1433.  
  1434.       did -a %d 5 %m
  1435.  
  1436.       :next2
  1437.       inc %i
  1438.     }
  1439.     if ($did(%d,5).lines) { did -e %d 5 }
  1440.     else { did -b %d 6 }
  1441.   }
  1442.   elseif (!%wmm_autoupdate_modules) { did -b %d 5,6 }
  1443.  
  1444.   hmake %hs 1000
  1445.   did -r %d 3
  1446.   did -b %d 3,4
  1447.   var %v = wmm_modules_sets_ $+ $wmm_random
  1448.   jsonopen -ud %v $wmm_sets_url
  1449.   if ($jsonerror) { return }
  1450.   var %t = $json(%v,modules).length
  1451.   if (!%t) { return }
  1452.   var %x = 0
  1453.   while (%x < %t) {
  1454.     var %mod = $json(%v,modules,%x,name).value
  1455.     var %alias = $json(%v,modules,%x,alias).value
  1456.  
  1457.     var %mod_alias_name = $upper($right($gettok(%alias,1,95),-1))
  1458.     var %key = $json(%v,modules,%x,api_key).value
  1459.     var %key2 = $json(%v,modules,%x,api_key2).value
  1460.  
  1461.     if (%mod_alias_name) && (%key) { hadd -m %mod_alias_name $+ _KEYS KEY %key }
  1462.     if (%mod_alias_name) && (%key2) { hadd -m %mod_alias_name $+ _KEYS KEY2 %key2 }
  1463.  
  1464.     var %a = $replace($right(%alias,-1),_ver,_sets)
  1465.     if (%mod) && (%a) && (!$hget(%hs,%mod)) { hadd %hs %mod %a }
  1466.  
  1467.     if (!%mod) || (!$wmm_getpath(%mod)) || ($didwm(%d,5,%mod)) { goto next }
  1468.  
  1469.     did -a %d 3 %mod
  1470.  
  1471.     :next
  1472.     inc %x
  1473.   }
  1474.   if ($did(%d,3).lines) { did -e %d 3 }
  1475.   else { did -b %d 3,4 }
  1476. }
  1477.  
  1478. alias -l wmm_modules_menu_get_installed {
  1479.  
  1480.   ; -g = will try to get and save only the MENUS and KEYS in hash.
  1481.  
  1482.   if ($1) && ($1 == -g) { goto start }
  1483.   if ($isid) || ($dialog(wmm_module)) || ($dialog(wmm_module_sets)) || (!$wmm_internet) || ($wmm_check_initial_warn) || ($wmm_check_monitor_warn) || (!$isalias(wmm_ver)) { return }
  1484.   if (!$isdir($scriptdir $+ modules)) { mkdir $qt($scriptdir $+ modules) }
  1485.   :start
  1486.   var %h = WMM_MODULES_SUBMENU_INSTALLED
  1487.   var %v = wmm_modules_menu_get_installed_ $+ $wmm_random
  1488.   if ($hget(%h)) { hfree $v1 }
  1489.   hmake %h 1000
  1490.   jsonopen -ud %v $wmm_sets_url
  1491.   if ($jsonerror) { return }
  1492.   var %t = $json(%v,modules).length
  1493.   var %x = 0
  1494.   while (%x < %t) {
  1495.     var %mod = $json(%v,modules,%x,name).value
  1496.     var %alias = $json(%v,modules,%x,alias).value
  1497.     var %a = $right($replace(%alias,_ver,_sets),-1)
  1498.  
  1499.     var %mod_alias_name = $upper($right($gettok(%alias,1,95),-1))
  1500.     var %key = $json(%v,modules,%x,api_key).value
  1501.     var %key2 = $json(%v,modules,%x,api_key2).value
  1502.  
  1503.     if (%mod_alias_name) && (%key) { hadd -m %mod_alias_name $+ _KEYS KEY %key }
  1504.     if (%mod_alias_name) && (%key2) { hadd -m %mod_alias_name $+ _KEYS KEY2 %key2 }
  1505.  
  1506.     if (%a) && (%mod) && (!$hget(%h,%mod)) { hadd %h %mod %a }
  1507.  
  1508.     inc %x
  1509.   }
  1510. }
  1511.  
  1512. alias -l wmm_modules_all_installed_list {
  1513.   var %h = WMM_MODULES_SUBMENU_INSTALLED
  1514.   if (!$1) || (!$isid) || (!$hget(%h)) || ($1 > $hget(%h,0).item) { returnex }
  1515.   if ($1 > $hget(%h,0).item) { returnex }
  1516.   if ($istok(begin.end,$1,46)) { return - }
  1517.   var %n = $hget(%h,$1).item
  1518.   var %d = $hget(%h,$hget(%h,$1).item)
  1519.   var %al = $isalias(%d)
  1520.   var %ico = $replace(%d,_sets,_main) $+ .ico
  1521.   var %fm = $scriptdir $+ modules $+ \ $+ %ico
  1522.   if (%n) && (%d) && (!%al) { return $iif($wmm_isadi && $isfile(%fm),$menuicon(%fm)) $style(2) $chr(40) $+ $1 $+ $chr(41) $chr(1417) $chr(160) $wmm_qd(%n $iif($wmm_lang(76),$v1,Module)) $+ :noop }
  1523.   else { return $iif($wmm_isadi && $isfile(%fm),$menuicon(%fm)) $iif($dialog(%d),$style(1)) $chr(40) $+ $1 $+ $chr(41) $chr(1417) $chr(160) $wmm_qd(%n $iif($wmm_lang(76),$v1,Module)) $+ : $+ %d }
  1524. }
  1525.  
  1526. alias -l wmm_resize_image {
  1527.   if (!$1) || (!$isfile($1)) || (!$isid) { return }
  1528.   var %a = $pic($1).width
  1529.   var %b = $pic($1).height
  1530.   var %c = $window(-1).w
  1531.   var %d = $window(-1).h
  1532.   if (%a > %c) { var %b = $calc(( %c / %a ) * %b),%a %c }
  1533.   if (%b > %d) { var %a = $calc(( %d / %b ) * %a),%b %d }
  1534.   return $int(%a) $int(%b)
  1535. }
  1536.  
  1537. alias -l wmm_pic {
  1538.   var %d = wmm_module
  1539.   var %w = $pic($1).width
  1540.   var %h = $pic($1).height
  1541.   var %win = @wmm_pic
  1542.   var %details = $chr(160) $+ - $+ $chr(160) $+ $chr(40) $+ %w $+ x $+ %h $+ $chr(41) $+ $chr(160) $+ - $+ $chr(160) $+ $bytes($file($1).size).suf
  1543.   if ($window(%win)) { window -c %win }
  1544.   if (!$1) || (!$dialog(%d)) || (!$isfile($1)) || ($isid) || (!%w) || (!%h) { return }
  1545.   var %a = $wmm_resize_image($1)
  1546.   window -fadCBvzpk0w0 +estf %win -1 -1 %a $qt($scriptdirmain.ico)
  1547.   titlebar %win %details
  1548.   drawpic -s %win 0 0 %a $1
  1549. }
  1550.  
  1551. ; --- End of aliases ---
  1552.  
  1553. ; --- Start of menus ---
  1554.  
  1555. menu @wmm_pic {
  1556.   -
  1557.   $wmm_lang(1) $+ : { window -c @wmm_pic }
  1558.   -
  1559. }
  1560.  
  1561. menu @wmm {
  1562.   -
  1563.   $iif($wmm_isadi && $isfile($scriptdir $+ main.ico),$menuicon($scriptdir $+ main.ico)) $wmm_qd($iif($wmm_lang(73),$v1,Open the) $upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager)): { wmm }
  1564.   -
  1565.   $iif($wmm_isadi && $isfile($scriptdir $+ main.ico),$menuicon($scriptdir $+ main.ico)) $wmm_qd($iif($wmm_lang(66),$v1,Open the settings of) $upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager)): { wmm_sets }
  1566.   -
  1567.   $iif($wmm_isadi && $isfile($scriptdir $+ main.ico),$menuicon($scriptdir $+ main.ico)) $wmm_qd($iif($wmm_lang(59),$v1,Hide this button)): { wmm_tool -c }
  1568.   -
  1569. }
  1570.  
  1571. menu menubar,status,channel {
  1572.   $iif(%wmm_menu,-)
  1573.   $iif($istok(%wmm_menu,wmm,32),$iif($dialog(wmm_module),$style(1)) $iif($wmm_isadi && $isfile($scriptdir $+ main.ico),$menuicon($scriptdir $+ main.ico)) $wmm_qd($upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) $+ )): { wmm }
  1574.   $iif($istok(%wmm_menu,wmm_sets,32),$iif($dialog(wmm_module_sets),$style(1)) $iif($wmm_isadi && $isfile($scriptdir $+ main.ico),$menuicon($scriptdir $+ main.ico)) $wmm_qd($upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) - $iif($wmm_lang(69),$v1,Settings) $+ )): { wmm_sets }
  1575.   $iif($istok(%wmm_menu,wmm_mod_list,32) && $hget(WMM_MODULES_SUBMENU_INSTALLED),$iif($wmm_isadi && $isfile($scriptdir $+ main.ico),$menuicon($scriptdir $+ main.ico)) $wmm_qd($upper($wmm_owner) $iif($wmm_lang(16),$v1,Module Manager) - $iif($wmm_lang(77),$v1,Modules List)))
  1576.   .$submenu($wmm_modules_all_installed_list($1))
  1577.   $iif(%wmm_menu,-)
  1578. }
  1579.  
  1580. ; --- End of menus ---
  1581.  
  1582. ; --- Start of groups ---
  1583.  
  1584. #wmm off
  1585. #wmm end
  1586.  
  1587. ; --- End of groups ---
  1588.  
  1589. ; --- Start other aliases ---
  1590.  
  1591. alias wmm_bel { return $chr(10140) }
  1592. alias wmm_qd { return $chr(9679) $chr(32) $+ $1 $+ $chr(32) $chr(9679) }
  1593. alias wmm_bold { return $+($chr(2),$1-,$chr(2)) }
  1594. alias wmm_under { return $+($chr(31),$1-,$chr(31)) }
  1595. alias wmm_italic { return $+($chr(29),$1-,$chr(29)) }
  1596. alias wmm_random { return $rand(1,10000000000000) }
  1597. alias wmm_d_format { return ddd ddoo mmm yyyy HH:nn:ss }
  1598. alias wmm_d_close { if ($1) && ($dialog($1)) { dialog -k $1 } }
  1599. alias wmm_c_close { if ($1) && ($com($1)) { .comclose $1 } }
  1600. alias wmm_t_close { if ($1) && ($toolbar($1)) { toolbar -d $1 } }
  1601. alias wmm_w_close { if ($1) && ($window($1)) { window -c $1 } }
  1602. alias wmm_tiny_key { return AIzaSyAJb3HqimAjzP9h8QlRCmBwPqc4dEKC3qw }
  1603. alias wmm_fixtab { return $replace($1-,$chr(9),$chr(32),$chr(10),$chr(32),$chr(13),$chr(32)) }
  1604. alias wmm_urlencode { return $regsubex($1-,/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2)) }
  1605. alias wmm_urldecode { return $utfdecode($regsubex($replace($1-, +, $chr(32)), /%([A-F\d]{2})/gi, $chr($base(\1, 16, 10)))) }
  1606. alias wmm_nohtml { return $regsubex($1-, /<[^>]+(?:>|$)|^[^<>]+>/g,) }
  1607. alias wmm_isurl { noop $regex(isurl,$1-,m@^((?:(?:https?)://(?:www\.)?|www\.)((?:(?:[-\w]+\.)+)[-\w]+)(?::\d+)?(?:/(?:[-a-zA-Z;/\d#:_?=&@,()+.%]*))?)$@ig) | return $iif($regml(isurl,0),1,0) }
  1608. alias wmm_took { return $calc(($ticks - $1) / 1000) }
  1609.  
  1610. alias wmm_input {
  1611.   if (!$1) || ($isid) { return }
  1612.   if ($1 == ok) { .timer -ho 1 0 !noop $input($replace($3-,@newline@,$crlf),ouidbk $+ $iif($2 && $2 isnum,$2,0),WMM $wmm_bel $iif($wmm_lang(19),$v1,OK)) }
  1613.   if ($1 == error) { .timer -ho 1 0 !noop $input($replace($3-,@newline@,$crlf),houdbk $+ $iif($2 && $2 isnum,$2,0),WMM $wmm_bel $iif($wmm_lang(20),$v1,Error)) }
  1614.   if ($1 == warn) { .timer -ho 1 0 !noop $input($replace($3-,@newline@,$crlf),woudbk $+ $iif($2 && $2 isnum,$2,0),WMM $wmm_bel $iif($wmm_lang(21),$v1,Warn)) }
  1615. }
  1616.  
  1617. alias wmm_dtitle {
  1618.   if (!$1) || (!$dialog($1)) { return }
  1619.   var %n = $upper($left($1,3))
  1620.   var %x = 1
  1621.   var %y = 150
  1622.   while (%x <= $len($2-)) {
  1623.     var %t = dialog -t $1 $replace($left($2-,%x),$chr(32),$chr(160))
  1624.     .timer[ $+ %n $+ _TITLE_ $+ $1 $+ _ $+ %x $+ ] -ho 1 %y $iif($!dialog($1),$unsafe(%t))
  1625.     inc %x
  1626.     inc %y 150
  1627.   }
  1628. }
  1629.  
  1630. alias wmm_isadi {
  1631.   if ($~adiircexe) { return 1 }
  1632.   return 0
  1633. }
  1634.  
  1635. alias wmm_isdigit {
  1636.   if (!$isid) { return }
  1637.   if ($1 == $null) { return 0 }
  1638.   if ($regex($1,^\d+$)) { return 1 }
  1639.   else { return 0 }
  1640. }
  1641.  
  1642. alias wmm_getext {
  1643.   if (!$1) || (!$isid) { return 0 }
  1644.   var %t = $script(0)
  1645.   var %i = 1
  1646.   while (%i <= %t) {
  1647.     var %f = $nopath($script(%i))
  1648.     var %n = $gettok(%f,1,46)
  1649.     var %ext = $gettok(%f,2,46)
  1650.     if (%f) && (%ext) && (%n == $1) { return . $+ %ext }
  1651.     inc %i
  1652.   }
  1653.   return 0
  1654. }
  1655.  
  1656. alias wmm_getpath {
  1657.   if (!$1) || (!$isid) { return 0 }
  1658.   var %t = $script(0)
  1659.   var %i = 1
  1660.   while (%i <= %t) {
  1661.     var %f = $script(%i)
  1662.     var %n = $gettok($nopath(%f),1,46)
  1663.     if (%f) && (%n == $1) { return %f }
  1664.     inc %i
  1665.   }
  1666.   return 0
  1667. }
  1668.  
  1669. alias wmm_getpos {
  1670.   if (!$1) || (!$isid) { return 0 }
  1671.   var %t = $script(0)
  1672.   var %i = 1
  1673.   while (%i <= %t) {
  1674.     var %f = $script(%i)
  1675.     var %n = $gettok($nopath(%f),1,46)
  1676.     if (%f) && (%n == $1) { return %i }
  1677.     inc %i
  1678.   }
  1679.   return 0
  1680. }
  1681.  
  1682. alias wmm_getname {
  1683.   if (!$1) || (!$script(0)) || (!$isid) { return 0 }
  1684.   if ($script($1)) { return $nopath($script($1)) }
  1685.   return 0
  1686. }
  1687.  
  1688. alias wmm_ismod {
  1689.   if (!$1) || (!$script(0)) || (!$isid) { return 0 }
  1690.   if ($script($1)) { return 1 }
  1691.   return 0
  1692. }
  1693.  
  1694. alias wmm_tinycom {
  1695.   if (!$1) || (!$isid) { return }
  1696.   var %v = tinyurl_ $+ $wmm_random
  1697.   jsonopen -uw %v https://www.googleapis.com/urlshortener/v1/url?key= $+ $wmm_tiny_key $+ &longUrl= $+ $wmm_urlencode($1)
  1698.   if ($jsonerror) { jsonclose %v | return $1 }
  1699.   jsonhttpmethod %v POST
  1700.   jsonhttpheader %v User-Agent */*
  1701.   jsonhttpheader %v Content-Type application/json
  1702.   jsonhttpheader %v Connection Close
  1703.   jsonhttpfetch %v $chr(123) $+ $qt(longUrl) $+ : $qt($1) $+ $chr(125)
  1704.   var %url = $json(%v,id).value
  1705.   jsonclose %v
  1706.   if (%url) { return %url }
  1707.   elseif (!%url) { return $1 }
  1708. }
  1709.  
  1710. alias wmm_temp {
  1711.   if (!$isid) { return }
  1712.   var %d = $longfn($envvar(temp))
  1713.   if (%d) && ($right(%d,1) !== $chr(92)) { var %d = %d $+ \ }
  1714.   if (!%d) {
  1715.     var %d = $longfn($scriptdir)
  1716.     if (%d) && ($right(%d,1) !== $chr(92)) { var %d = %d $+ \ }
  1717.   }
  1718.   return %d
  1719. }
  1720.  
  1721. alias wmm_dl {
  1722.   if (!$1) || (!$2) || ($isid) || (!$wmm_internet) { return }
  1723.  
  1724.   :st
  1725.   var %n = dl_ $+ $wmm_random
  1726.  
  1727.   if ($wmm_isadi) { download -o %n $1 $qt($2-) | return }
  1728.  
  1729.   var %f = $wmm_temp $+ %n $+ .vbs
  1730.   if ($isfile(%f)) { goto st }
  1731.  
  1732.   .fopen -ox %n $qt(%f)
  1733.  
  1734.   .fwrite -n %n On Error Resume Next
  1735.   .fwrite -n %n Set args = WScript.Arguments
  1736.   .fwrite -n %n Url = $qt($1)
  1737.   .fwrite -n %n dim xHttp: Set xHttp = createobject("MSXML2.SERVERXMLHTTP.6.0")
  1738.   .fwrite -n %n dim bStrm: Set bStrm = createobject("Adodb.Stream")
  1739.   .fwrite -n %n xHttp.Open "GET", Url, False
  1740.   .fwrite -n %n xHttp.Send
  1741.   .fwrite -n %n with bStrm
  1742.   .fwrite -n %n    .type = 1
  1743.   .fwrite -n %n    .mode = 3
  1744.   .fwrite -n %n    .open
  1745.   .fwrite -n %n    .write xHttp.responseBody
  1746.   .fwrite -n %n    .savetofile $2- $+ , 2
  1747.   .fwrite -n %n    .close
  1748.   .fwrite -n %n end with
  1749.   .fwrite -n %n Err.Clear
  1750.   .fwrite -n %n Set oFso = CreateObject("Scripting.FileSystemObject") : oFso.DeleteFile Wscript.ScriptFullName, True
  1751.  
  1752.   .fclose %n
  1753.  
  1754.   if ($isfile(%f)) && ($lines(%f) == 17) { run -h $qt(%f) }
  1755. }
  1756.  
  1757. alias wmm_internet {
  1758.   if (!$isid) { return }
  1759.   var %v = internet_ $+ $wmm_random
  1760.   jsonopen -U %v https://google.com
  1761.   if ($jsonerror) || ($json(%v).httpstatus !== 200) { jsonclose %v | return 0 }
  1762.   jsonclose %v
  1763.   return 1
  1764. }
  1765.  
  1766. alias wmm_getsite {
  1767.   if (!$1-) || (!$isid) || (!$wmm_isurl($1)) { return 0 }
  1768.   var %v = getsite_ $+ $wmm_random
  1769.   jsonopen -dU %v $1
  1770.   if ($jsonerror) || ($json(%v).httpstatus !== 200) { return 0 }
  1771.   var %r = $wmm_fixtab($json(%v).httpbody)
  1772.   return $iif(%r,%r,0)
  1773. }
  1774.  
  1775. alias wmm_ignore_cn_list {
  1776.   var %d = $dname
  1777.   var %dd = $gettok(%d,1,95)
  1778.   if (!$dialog(%d)) || (!%dd) { return }
  1779.   did -b %d 7,17
  1780.   did -r %d 4,15
  1781.   var %cn = % [ $+ [ %dd ] $+ ] _ignore_chans_networks
  1782.   var %nn = % [ $+ [ %dd ] $+ ] _ignore_nicks_networks
  1783.  
  1784.   if (!%cn) && (!%nn) { did -b %d 4,8,15,18 | return }
  1785.   if (!%cn) { did -b %d 4,8 }
  1786.   if (!%nn) { did -b %d 15,18 }
  1787.  
  1788.   var %z = 1
  1789.   while (%z <= $numtok(%cn,32)) {
  1790.     var %net = $gettok(%cn,%z,32)
  1791.     var %chans = % [ $+ [ %dd ] $+ ] _ignore_ [ $+ [ %net ] $+ ] _chans
  1792.     if (!%net) { goto next_chans }
  1793.     var %i = 1
  1794.     while (%i <= $numtok(%chans,32)) {
  1795.       var %c = $gettok(%chans,%i,32)
  1796.       if (%c) { did -a %d 4 %net $wmm_bel %c }
  1797.       inc %i
  1798.     }
  1799.     :next_chans
  1800.     inc %z
  1801.   }
  1802.   if ($did(%d,4).lines) { did -ez %d 4 | did -e %d 8 }
  1803.   else { did -b %d 4,8 }
  1804.  
  1805.   var %zz = 1
  1806.   while (%zz <= $numtok(%nn,32)) {
  1807.     var %net = $gettok(%nn,%zz,32)
  1808.     var %nicks = % [ $+ [ %dd ] $+ ] _ignore_ [ $+ [ %net ] $+ ] _nicks
  1809.     if (!%net) { goto next_nicks }
  1810.     var %ii = 1
  1811.     while (%ii <= $numtok(%nicks,32)) {
  1812.       var %n = $gettok(%nicks,%ii,32)
  1813.       if (%n) { did -a %d 15 %net $wmm_bel %n }
  1814.       inc %ii
  1815.     }
  1816.     :next_nicks
  1817.     inc %zz
  1818.   }
  1819.   if ($did(%d,15).lines) { did -ez %d 15 | did -e %d 18 }
  1820.   else { did -b %d 15,18 }
  1821. }
  1822.  
  1823. ; ############################################################
  1824.  
  1825. /*
  1826.     # JSONFormIRC project coded by SReject - (thanks for support) #
  1827.  
  1828.     ## GitHub Link: https://github.com/SReject/JSON-For-Mirc ##
  1829. */
  1830.  
  1831. on *:START: { JSONShutDown }
  1832. on *:CLOSE:@SReject/JSONForMirc/Log: { if ($JSONDebug) { JSONDebug off } }
  1833. on *:EXIT: { JSONShutDown }
  1834. menu @SReject/JSONForMirc/Log {
  1835.   .$iif(!$jfm_SaveDebug,$style(2)) Clear: { clear -@ $active }
  1836.   .-
  1837.   .$iif(!$jfm_SaveDebug,$style(2)) Save: { jfm_SaveDebug }
  1838.   .-
  1839.   .Toggle Debug: { JSONDebug }
  1840.   .-
  1841.   .Close: { JSONDebug off | close -@ $active }
  1842. }
  1843. alias JSONOpen {
  1844.   if ($isid) { return }
  1845.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  1846.   var %Switches,%Error,%Com $false,%Type text,%HttpOptions 0,%BVar,%BUnset $true
  1847.   jfm_log -I /JSONOpen $1-
  1848.   if (-* iswm $1) { %Switches = $mid($1,2-) | tokenize 32 $2- }
  1849.   if ($jfm_ComInit) { %Error = $v1 }
  1850.   elseif (!$regex(SReject/JSONOpen/switches,%Switches,^[dbfuUw]*$)) { %Error = SWITCH_INVALID }
  1851.   elseif ($regex(%Switches,([dbfuUw]).*?\1)) { %Error = SWITCH_DUPLICATE: $+ $regml(1) }
  1852.   elseif ($regex(%Switches,/([bfuU])/g) > 1) { %Error = SWITCH_CONFLICT: $+ $regml(1) }
  1853.   elseif (u !isin %Switches) && (w isincs %Switches) { %Error = SWITCH_NOT_APPLICABLE:w }
  1854.   elseif ($0 < 2) { %Error = PARAMETER_MISSING }
  1855.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = NAME_INVALID }
  1856.   elseif ($com(JSON: $+ $1)) { %Error = NAME_INUSE }
  1857.   elseif (u isin %Switches) && ($0 != 2) { %Error = PARAMETER_INVALID:URL_SPACES }
  1858.   elseif (b isincs %Switches) && ($0 != 2) { %Error = PARAMETER_INVALID:BVAR }
  1859.   elseif (b isincs %Switches) && (&* !iswm $2) { %Error = PARAMETER_INVALID:NOT_BVAR }
  1860.   elseif (b isincs %Switches) && (!$bvar($2,0)) { %Error = PARAMETER_INVALID:BVAR_EMPTY }
  1861.   elseif (f isincs %Switches) && (!$isfile($2-)) { %Error = PARAMETER_INVALID:FILE_DOESNOT_EXIST }
  1862.   else {
  1863.     %Com = JSON: $+ $1
  1864.     %BVar = $jfm_TmpBVar
  1865.     if (b isincs %Switches) { %Bvar = $2 | %BUnset = $false }
  1866.     elseif (u isin %Switches) {
  1867.       if (w isincs %Switches) { inc %HttpOptions 1 }
  1868.       if (U isincs %Switches) { inc %HttpOptions 2 }
  1869.       %Type = http
  1870.       bset -t %BVar 1 $2
  1871.     }
  1872.     elseif (f isincs %Switches) { bread $qt($file($2-).longfn) 0 $file($file($2-).longfn).size %BVar }
  1873.     else { bset -t %BVar 1 $2- }
  1874.     jfm_ToggleTimers -p
  1875.     %Error = $jfm_Create(%Com,%Type,%BVar,%HttpOptions)
  1876.     jfm_ToggleTimers -r
  1877.   }
  1878.   :error
  1879.   if ($error) { %Error = $v1 }
  1880.   reseterror
  1881.   if (%BUnset) { bunset %BVar }
  1882.   if (%Error) {
  1883.     hadd -mu0 SReject/JSONForMirc Error %Error
  1884.     if (%Com) && ($com(%Com)) { .timer $+ %Com -iom 1 0 JSONClose $unsafe($1) }
  1885.     jfm_log -EeDF %Error
  1886.   }
  1887.   else {
  1888.     if (d isincs %Switches) { .timer $+ %Com -iom 1 0 JSONClose $unsafe($1) }
  1889.     jfm_log -EsDF Created $1 (as com %Com $+ )
  1890.   }
  1891. }
  1892. alias JSONHttpMethod {
  1893.   if ($isid) { return }
  1894.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  1895.   var %Error,%Com,%Method
  1896.   jfm_log -I /JSONHttpMethod $1-
  1897.   if ($jfm_ComInit) { %Error = $v1 }
  1898.   elseif ($0 < 2) { %Error = PARAMETER_MISSING }
  1899.   elseif ($0 > 2) { %Error = PARAMETER_INVALID }
  1900.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = NAME_INVALID }
  1901.   elseif (!$com(JSON: $+ $1)) { %Error = HANDLE_DOES_NOT_EXIST }
  1902.   else {
  1903.     %Com = JSON: $+ $1
  1904.     %Method = $regsubex($2,/(^\s+)|(\s*)$/g,)
  1905.     if (!$len(%Method)) { %Error = INVALID_METHOD }
  1906.     elseif ($jfm_Exec(%Com,httpSetMethod,%Method)) { %Error = $v1 }
  1907.   }
  1908.   :error
  1909.   if ($error) { %Error = $v1 }
  1910.   reseterror
  1911.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  1912.   else { jfm_log -EsDF Set Method to $+(',%Method,') }
  1913. }
  1914. alias JSONHttpHeader {
  1915.   if ($isid) { return }
  1916.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  1917.   var %Error,%Com,%Header
  1918.   jfm_log -I /JSONHttpHeader $1-
  1919.   if ($jfm_ComInit) { %Error = $v1 }
  1920.   elseif ($0 < 3) { %Error = PARAMETER_MISSING }
  1921.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = INVALID_NAME }
  1922.   elseif (!$com(JSON: $+ $1)) { %Error = HANDLE_DOES_NOT_EXIST }
  1923.   else {
  1924.     %Com = JSON: $+ $1
  1925.     %Header = $regsubex($2,/(^\s+)|(\s*:\s*$)/g,)
  1926.     if (!$len($2)) { %Error = HEADER_EMPTY }
  1927.     elseif ($regex($2,[\r:\n])) { %Error = HEADER_INVALID }
  1928.     elseif ($jfm_Exec(%Com,httpSetHeader,%Header,$3-)) { %Error = $v1 }
  1929.   }
  1930.   :error
  1931.   if ($error) { %Error = $v1 }
  1932.   reseterror
  1933.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  1934.   else { jfm_log -EsDF Stored Header $+(',%Header,: $3-,') }
  1935. }
  1936. alias JSONHttpFetch {
  1937.   if ($isid) { return }
  1938.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  1939.   var %Switches,%Error,%Com,%BVar,%BUnset
  1940.   jfm_log -I /JSONHttpFetch $1-
  1941.   if (-* iswm $1) { %Switches = $mid($1,2-) | tokenize 32 $2- }
  1942.   if ($jfm_ComInit) { %Error = $v1 }
  1943.   if ($0 == 0) || (%Switches != $null && $0 < 2) { %Error = PARAMETER_MISSING }
  1944.   elseif ($regex(%Switches,([^bf]))) { %Error = SWITCH_INVALID: $+ $regml(1) }
  1945.   elseif ($regex($1,/(?:^\d+$)|[*:? ]/i)) { %Error = NAME_INVALID }
  1946.   elseif (!$com(JSON: $+ $1)) { %Error = HANDLE_DOES_NOT_EXIST }
  1947.   elseif (b isincs %Switches) && (&* !iswm $2 || $0 > 2) { %Error = BVAR_INVALID }
  1948.   elseif (f isincs %Switches) && (!$isfile($2-)) { %Error = FILE_DOESNOT_EXIST }
  1949.   else {
  1950.     %Com = JSON: $+ $1
  1951.     if ($0 > 1) {
  1952.       %BVar = $jfm_TmpBVar
  1953.       %BUnset = $true
  1954.       if (b isincs %Switches) { %BVar = $2 | %BUnset = $false }
  1955.       elseif (f isincs %Switches) { bread $qt($file($2-).longfn) 0 $file($2-).size %BVar }
  1956.       else { bset -t %BVar 1 $2- }
  1957.       %Error = $jfm_Exec(%Com, httpSetData,& %BVar).fromBvar
  1958.     }
  1959.     if (!%Error) { %Error = $jfm_Exec(%Com,parse) }
  1960.   }
  1961.   :error
  1962.   if ($error) { %Error = $error }
  1963.   reseterror
  1964.   if (%BUnset) { bunset %BVar }
  1965.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  1966.   else { jfm_log -EsDF Http Data retrieved }
  1967. }
  1968. alias JSONClose {
  1969.   if ($isid) { return }
  1970.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  1971.   var %Switches,%Error,%Match,%Com,%X 1
  1972.   jfm_log -I /JSONClose $1-
  1973.   if (-* iswm $1) { %Switches = $mid($1, 2-) | tokenize 32 $2- }
  1974.   if ($0 < 1) { %Error = PARAMTER_MISSING }
  1975.   elseif ($0 > 1) { %Error = PARAMETER_INVALID }
  1976.   elseif ($regex(%Switches,/([^w])/)) { %Error = SWITCH_UNKNOWN: $+ $regml(1) }
  1977.   elseif (: isin $1) && (w isincs %Switches || JSON:* !iswmcs $1) { %Error = PARAMETER_INVALID }
  1978.   else {
  1979.     %Match = $1
  1980.     if (JSON:* iswmcs $1) { %Match = $gettok($1,2-,58) }
  1981.     %Match = $replacecs(%Match,\E,\E\\E\Q)
  1982.     if (w isincs %Switches) { %Match = $replacecs(%Match,?,\E[^:]\Q,*,\E[^:]*\Q) }
  1983.     %Match = /^JSON:\Q $+ %Match $+ \E(?::\d+)?$/i
  1984.     %Match = $replacecs(%Match,\Q\E,)
  1985.     while (%X <= $com(0)) {
  1986.       %Com = $com(%X)
  1987.       if ($regex(%Com,%Match)) {
  1988.         .comclose %Com
  1989.         if ($timer(%Com)) { .timer $+ %Com off }
  1990.         jfm_log Closed %Com
  1991.       }
  1992.       else { inc %X }
  1993.     }
  1994.   }
  1995.   :error
  1996.   if ($error) { %Error = $error }
  1997.   reseterror
  1998.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeD /JSONClose %Error }
  1999.   else { jfm_log -EsD All matching handles closed }
  2000. }
  2001. alias JSONList {
  2002.   if ($isid) { return }
  2003.   var %X 1,%I 0
  2004.   jfm_log /JSONList $1-
  2005.   while ($com(%X)) {
  2006.     if (JSON:?* iswm $v1) { inc %I | echo $color(info) -age * $chr(35) $+ %I $+ : $v2 }
  2007.     inc %X
  2008.   }
  2009.   if (!%I) { echo $color(info) -age * No active JSON handlers }
  2010. }
  2011. alias JSONShutDown {
  2012.   if ($isid) { return }
  2013.   JSONClose -w *
  2014.   if ($JSONDebug) { JSONDebug off }
  2015.   if ($window(@SReject/JSONForMirc/Log)) { close -@ $v1 }
  2016.   if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  2017.   if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  2018.   if ($hget(SReject/JSONForMirc)) { hfree $v1 }
  2019. }
  2020. alias JSON {
  2021.   if (!$isid) { return }
  2022.   if ($hget(SReject/JSONForMirc, Error)) { hdel SReject/JSONForMirc Error }
  2023.   var %X,%Args,%Params,%Error,%Com,%I 0,%Prefix,%Prop,%Suffix,%Offset 2,%Type,%Output,%Result,%ChildCom,%Call
  2024.   if (*ToFile iswm $prop) { %Offset = 3 }
  2025.   if ($JSONDebug) {
  2026.     %X = 1
  2027.     while (%X <= $0) {
  2028.       if (%Args !== $null) { %Args = %Args $+ $chr(44) }
  2029.       %Args = %Args $+ $($ $+ %X, 2)
  2030.       if (%X >= %Offset) { %Params = %Params $+ ,bstr,$ $+ %X }
  2031.       inc %X
  2032.     }
  2033.   }
  2034.   elseif ($0 >= %Offset) {
  2035.     %X = %Offset
  2036.     while (%X <= $0) { %Params = %Params $+ ,bstr,$ $+ %X | inc %X }
  2037.   }
  2038.   jfm_log -I $!JSON( $+ %Args $+ ) $+ $iif($prop !== $null, . $+ $prop)
  2039.   if (!$0) || ($0 == 1 && $1 == $null) { %Error = PARAMETER_MISSING | goto error }
  2040.   if ($0 == 1) && ($1 == 0) && ($prop !== $null) { %Error = PROP_NOT_APPLICABLE | goto error }
  2041.   if ($regex(name,$1,/^JSON:[^:?*]+(?::\d+)?$/i)) { %Com = $1 }
  2042.   elseif (: isin $1 || * isin $1 || ? isin $1) || ($1 == 0 && $0 !== 1) { %Error = INVALID_NAME }
  2043.   elseif ($1 isnum 0- && . !isin $1) {
  2044.     %X = 1
  2045.     while ($com(%X)) {
  2046.       if ($regex($v1,/^JSON:[^:]+$/)) {
  2047.         inc %I
  2048.         if (%I === $1) { %Com = $com(%X) | break }
  2049.       }
  2050.       inc %X
  2051.     }
  2052.     if ($1 === 0) { jfm_log -EsDF %I | return %I }
  2053.   }
  2054.   else { %Com = JSON: $+ $1 }
  2055.   if (!%Error) && (!$com(%Com)) { %Error = HANDLER_NOT_FOUND }
  2056.   elseif (* isin $prop) || (? isin $prop) { %Error = INVALID_PROP }
  2057.   else {
  2058.     if ($regex($prop, /^((?:fuzzy)?)(.*?)((?:to(?:bvar|file))?)?$/i)) { %Prefix = $regml(1) | %Prop = $regml(2) | %Suffix = $regml(3) }
  2059.     %Prop = $regsubex(%Prop, /^url/i, http)
  2060.     if (%Suffix == tofile) {
  2061.       if ($0 < 2) { %Error = INVALID_PARAMETERS }
  2062.       elseif (!$len($2) || $isfile($2) || (!$regex($2, /[\\\/]/) && " isin $2)) { %Error = INVALID_FILE }
  2063.       else { %Output = $longfn($2) }
  2064.     }
  2065.   }
  2066.   if (%Error) { goto error }
  2067.   elseif ($0 == 1) && (!$prop) { %Result = $jfm_TmpBVar | bset -t %Result 1 %Com }
  2068.   elseif (%Prop == isChild) {
  2069.     %Result = $jfm_TmpBVar
  2070.     if (JSON:?*:?* iswm %com) { bset -t %Result 1 $true }
  2071.     else { bset -t %Result 1 $false }
  2072.   }
  2073.   elseif ($wildtok(state|error|input|inputType|httpParse|httpHead|httpStatus|httpStatusText|httpHeaders|httpBody|httpResponse,%Prop,1,124)) {
  2074.     if ($jfm_Exec(%Com,$v1)) { %Error = $v1 }
  2075.     else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2076.   }
  2077.   elseif (%Prop == httpHeader) {
  2078.     if ($calc($0 - %Offset) < 0) { %Error = INVALID_PARAMETERS }
  2079.     elseif ($jfm_Exec(%Com,httpHeader,$($ $+ %Offset,2))) { %Error = $v1 }
  2080.     else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2081.   }
  2082.   elseif (%Prop == $null) || ($wildtok(path|pathLength|type|isContainer|length|value|string|debug, %Prop, 1, 124)) {
  2083.     %Prop = $v1
  2084.     if ($0 >= %Offset) {
  2085.       %ChildCom = JSON: $+ $gettok(%Com,2,58) $+ :
  2086.       %X = $ticks $+ 000000
  2087.       while ($com(%ChildCom $+ %X)) { inc %X }
  2088.       %ChildCom = %ChildCom $+ %X
  2089.       %Call = $!com( $+ %Com $+ ,walk,1,bool, $+ $iif(fuzzy == %Prefix,$true,$false) $+ %Params $+ ,dispatch* %ChildCom $+ )
  2090.       jfm_log %Call
  2091.       if (!$eval(%Call, 2)) || ($comerr) || (!$com(%ChildCom)) { %Error = $jfm_GetError | goto error }
  2092.       .timer $+ %ChildCom -iom 1 0 JSONClose %ChildCom
  2093.       %Com = %ChildCom
  2094.       jfm_log
  2095.     }
  2096.     if (!%Prop) { %Result = $jfm_TmpBVar | bset -t %Result 1 %Com }
  2097.     elseif (%Prop !== value) {
  2098.       if ($jfm_Exec(%Com,$v1)) { %Error = $v1 }
  2099.       else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2100.     }
  2101.     elseif ($jfm_Exec(%Com,type)) { %Error = $v1 }
  2102.     elseif ($bvar($hget(SReject/JSONForMirc,Exec),1-).text == object) || ($v1 == array) { %Error = INVALID_TYPE }
  2103.     elseif ($jfm_Exec(%Com,value)) { %Error = $v1 }
  2104.     else { %Result = $hget(SReject/JSONForMirc,Exec) }
  2105.   }
  2106.   else { %Error = UNKNOWN_PROP }
  2107.   if (!%Error) {
  2108.     if (%Suffix == tofile) { bwrite $qt(%Output) -1 -1 %Result | bunset %Result | %Result = %Output }
  2109.     elseif (%Suffix !== tobvar) { %Result = $bvar(%Result,1,4000).text }
  2110.   }
  2111.   :error
  2112.   if ($error) { %Error = $error }
  2113.   reseterror
  2114.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2115.   else { jfm_log -EsDF %Result | return %Result }
  2116. }
  2117. alias JSONForEach {
  2118.   if (!$isid) { return }
  2119.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2120.   var %Error,%Log,%Call,%X 0,%JSON,%Com,%ChildCom,%Result 0,%Name
  2121.   %Log = $!JSONForEach(
  2122.   if ($prop == walk) { %Call = ,forEach,1,bool,$true,bool,$false }
  2123.   elseif ($prop == fuzzy) { %Call = ,forEach,1,bool,$false,bool,$true }
  2124.   else { %Call = ,forEach,1,bool,$false,bool,$false }
  2125.   while (%X < $0) {
  2126.     inc %X
  2127.     %Log = %Log $+ $($ $+ %X, 2) $+ ,
  2128.     if (%X > 2) { %Call = %Call $+ ,bstr, $+ $ $+ %X }
  2129.   }
  2130.   jfm_log -I $left(%Log,-1) $+ $chr(41) $+ $iif($prop !== $null,. $+ $v1)
  2131.   if ($0 < 2) { %Error = INVAID_PARAMETERS }
  2132.   elseif ($1 == 0) { %Error = INVALID_HANDLER }
  2133.   elseif ($prop !== $null) && ($prop !== walk) && ($prop !== fuzzy) { %Error = INVALID_PROPERTY }
  2134.   elseif ($0 > 2) && ($prop == walk) { %Error = PARAMETERS_NOT_APPLICABLE }
  2135.   elseif (!$1) || ($1 == 0) || (!$regex($1,/^((?:[^?:*]+)|(?:JSON:[^?:*]+(?::\d+)))$/)) { %Error = NAME_INVALID }
  2136.   else {
  2137.     if (JSON:?* iswm $1) { %JSON = $com($1) }
  2138.     elseif ($regex($1,/^\d+$/i)) {
  2139.       %X = 1
  2140.       %JSON = 0
  2141.       while ($com(%X)) {
  2142.         if ($regex($1,/^JSON:[^?*:]+$/)) {
  2143.           inc %JSON
  2144.           if (%JSON == $1) { %JSON = $com(%X) | break }
  2145.           elseif (%X == $com(0)) { %JSON = $null }
  2146.         }
  2147.         inc %X
  2148.       }
  2149.     }
  2150.     else { %JSON = $com(JSON: $+ $1) }
  2151.     if (!%JSON) { %Error = HANDLE_NOT_FOUND }
  2152.     else {
  2153.       %Com = $gettok(%JSON,1-2,58) $+ :
  2154.       %X = $ticks $+ 000000
  2155.       while ($com(%Com $+ %X)) { inc %X }
  2156.       %Com = %Com $+ %X
  2157.       %Call = $!com( $+ %JSON $+ %Call $+ ,dispatch* %Com $+ )
  2158.       jfm_log %Call
  2159.       if (!$(%Call, 2)) || ($comerr) || (!$com(%Com)) { %Error = $jfm_GetError }
  2160.       else {
  2161.         .timer $+ %Com -iom 1 0 JSONClose $unsafe(%Com)
  2162.         if (!$com(%Com, length, 2)) || ($comerr) { %Error = $jfm_GetError }
  2163.         elseif ($com(%Com).result) {
  2164.           %Result = $v1
  2165.           %X = 0
  2166.           %ChildCom = $gettok(%Com,1-2,58) $+ :
  2167.           %Name = $ticks
  2168.           while ($com(%ChildCom $+ %Name)) { inc %Name }
  2169.           %Name = %ChildCom $+ %Name
  2170.           hinc -m SReject/JSONForMirc ForEach/Index
  2171.           hadd -m SReject/JSONForMirc ForEach/ $+ $hget(SReject/JSONForMirc,ForEach/Index) %Name
  2172.           while (%X < %Result) {
  2173.             if (!$com(%Com,%X,2,dispatch* %Name) || $comerr) { %Error = $jfm_GetError | break }
  2174.             jfm_log -I Calling $1 %Name
  2175.             $2 %Name
  2176.             .comclose %Name
  2177.             jfm_log -D
  2178.             inc %X
  2179.           }
  2180.           hdel SReject/JSONForMirc ForEach/ $+ $hget(SReject/JSONForMirc, ForEach/Index)
  2181.           hdec SReject/JSONForMirc ForEach/Index
  2182.           if ($hget(SReject/JSONForMirc, ForEach/Index) == 0) { hdel SReject/JsonForMirc ForEach/Index }
  2183.         }
  2184.       }
  2185.     }
  2186.   }
  2187.   :error
  2188.   if ($error) { %Error = $error }
  2189.   reseterror
  2190.   if (%Error) {
  2191.     if ($com(%Com)) { .comclose $v1 }
  2192.     if (JSON:* iswm %Name && $com(%Name)) { .comclose %Name }
  2193.     hadd -mu0 SReject/JSONForMirc Error %Error
  2194.     jfm_log -EeDF %Error
  2195.   }
  2196.   else { jfm_log -EsDF %Result | return %Result }
  2197. }
  2198. alias JSONItem {
  2199.   var %Com = $hget(SReject/JSONForMirc,ForEach/ $+ $hget(SReject/JSONForMirc,ForEach/Index)),%Type,%Bvar,%Text
  2200.   if (!$isid || !%Com || !$com(%Com)) { return }
  2201.   if ($1 == Value || $1 == Valuetobvar) {
  2202.     %BVar = $jfm_TmpBVar
  2203.     noop $com(%Com, value, 1) $Com(%Com, %BVar).result
  2204.     if ($1 == valuetobvar) { return %Bvar }
  2205.     %Text = $bvar(%BVar, 1, 4000).text
  2206.     bunset %BVar
  2207.     return %Text
  2208.   }
  2209.   elseif ($1 == Length) { noop $com(%Com, length, 1) | return $com(%Com).result }
  2210.   elseif ($1 == Type || $1 == IsContainer) {
  2211.     noop $com(%Com, type, 1)
  2212.     %Type = $com(%Com).result
  2213.     if ($1 == type) { return %Type }
  2214.     if (%Type == Object || %Type == Array) { return $true }
  2215.     return $false
  2216.   }
  2217. }
  2218. alias JSONPath {
  2219.   if (!$isid) return
  2220.   if ($hget(SReject/JSONForMirc,Error)) { hdel SReject/JSONForMirc Error }
  2221.   var %Error,%Param,%X 0,%JSON,%Result
  2222.   while (%X < $0) { inc %X | %Param = %Param $+ $($ $+ %X,2) $+ , }
  2223.   jfm_log -I $!JSONPath( $+ $left(%Param,-1) $+ )
  2224.   if ($0 !== 2) { %Error = INVALID_PARAMETERS }
  2225.   elseif ($prop !== $null) { %Error = PROP_NOT_APPLICABLE }
  2226.   elseif (!$1) || ($1 == 0) || (!$regex($1, /^(?:(?:JSON:[^?:*]+(?::\d+)*)?|([^?:*]+))$/i)) { %Error = NAME_INVALID }
  2227.   elseif ($2 !isnum 0-) || (. isin $2) { %Error = INVALID_INDEX }
  2228.   else {
  2229.     %JSON = $JSON($1)
  2230.     if ($JSONError) { %Error = $v1 }
  2231.     elseif (!%JSON) { %Error = HANDLER_NOT_FOUND }
  2232.     elseif ($JSON(%JSON).pathLength == $null) { %Error = $JSONError }
  2233.     else {
  2234.       %Result = $v1
  2235.       if (!$2) { noop }
  2236.       elseif ($2 > %Result) { unset %Result }
  2237.       elseif (!$com(%JSON, pathAtIndex, 1, bstr, $calc($2 -1))) || ($comerr) { %Error = $jfm_GetError }
  2238.       else { %Result = $com(%JSON).result }
  2239.     }
  2240.   }
  2241.   :error
  2242.   if ($error) { %Error = $v1 }
  2243.   reseterror
  2244.   if (%Error) { hadd -mu0 SReject/JSONForMirc Error %Error | jfm_log -EeDF %Error }
  2245.   else { jfm_log -EsDF %Result | return %Result }
  2246. }
  2247. alias JSONError { if ($isid) { return $replace($hget(SReject/JSONForMirc,Error),$chr(9),$chr(32),$chr(10),$chr(32),$chr(13),$chr(32)) } }
  2248. alias JSONVersion {
  2249.   if ($isid) {
  2250.     var %Ver 1.0.4000
  2251.     if ($0) { return %Ver }
  2252.     return SReject/JSONForMirc v $+ %Ver
  2253.   }
  2254. }
  2255. alias JSONDebug {
  2256.   var %State $false, %Aline aline $color(info2) @SReject/JSONForMirc/Log
  2257.   if ($group(#SReject/JSONForMirc/Log) == on) {
  2258.     if (!$window(@SReject/JSONForMirc/Log)) { .disable #SReject/JSONForMirc/log }
  2259.     else { %State = $true }
  2260.   }
  2261.   if ($isid) { return %State }
  2262.   elseif (!$0) || ($1 == toggle) {
  2263.     if (%State) { tokenize 32 disable }
  2264.     else { tokenize 32 enable }
  2265.   }
  2266.   if ($1 == on) || ($1 == enable) {
  2267.     if (%State) { echo $color(info).dd -atngq * /JSONDebug: debug already enabled | return }
  2268.     .enable #SReject/JSONForMirc/Log
  2269.     %State = $true
  2270.   }
  2271.   elseif ($1 == off) || ($1 == disable) {
  2272.     if (!%State) { echo $color(info).dd -atngq * /JSONDebug: debug already disabled | return }
  2273.     .disable #SReject/JSONForMirc/Log
  2274.     %State = $false
  2275.   }
  2276.   else { echo $color(info).dd -atng * /JSONDebug: Unknown input | return }
  2277.   if (%State) {
  2278.     if (!$window(@SReject/JSONForMirc/Log)) { window -zk0ej10000 @SReject/JSONForMirc/Log }
  2279.     %Aline Debug now enabled - $JSONVersion
  2280.     if ($~adiircexe) { %Aline AdiIRC v $+ $version $iif($beta, beta $builddate) $bits $+ bit }
  2281.     else { %Aline mIRC v $+ $version $iif($beta, beta $v1) $bits $+ bit }
  2282.     %Aline -
  2283.   }
  2284.   elseif ($window(@SReject/JSONForMirc/Log)) { %aline [JSONDebug] Debug now disabled }
  2285.   window -b @SReject/JSONForMirc/Log
  2286. }
  2287. alias -l jfm_TmpBVar {
  2288.   var %N $ticks $+ 00000
  2289.   jfm_log -I $!jfm_TmpBVar
  2290.   while ($bvar(&SReject/JSONForMirc/Tmp $+ %N)) { inc %N }
  2291.   jfm_log -EsD &SReject/JSONForMirc/Tmp $+ %N
  2292.   return &SReject/JSONForMirc/Tmp $+ %N
  2293. }
  2294. alias -l jfm_ComInit {
  2295.   var %Error,%Js $jfm_TmpBVar
  2296.   jfm_log -I $!jfm_ComInit
  2297.   if ($com(SReject/JSONForMirc/JSONShell) && $com(SReject/JSONForMirc/JSONEngine)) { jfm_log -EsD Already Initialized | return }
  2298.   jfm_jscript %Js
  2299.   if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  2300.   if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  2301.   if ($~adiircexe !== $null) && ($bits == 64) { .comopen SReject/JSONForMirc/JSONShell ScriptControl }
  2302.   else { .comopen SReject/JSONForMirc/JSONShell MSScriptControl.ScriptControl }
  2303.   if (!$com(SReject/JSONForMirc/JSONShell)) || ($comerr) { %Error = SCRIPTCONTROL_INIT_FAIL }
  2304.   elseif (!$com(SReject/JSONForMirc/JSONShell, language, 4, bstr, jscript)) || ($comerr) { %Error = LANGUAGE_SET_FAIL }
  2305.   elseif (!$com(SReject/JSONForMirc/JSONShell, AllowUI, 4, bool, $false)) || ($comerr) { %Error = ALLOWIU_SET_FAIL }
  2306.   elseif (!$com(SReject/JSONForMirc/JSONShell, timeout, 4, integer, -1)) || ($comerr) { %Error = TIMEOUT_SET_FAIL }
  2307.   elseif (!$com(SReject/JSONForMirc/JSONShell, ExecuteStatement, 1, &bstr, %Js)) || ($comerr) { %Error = JSCRIPT_EXEC_FAIL }
  2308.   elseif (!$com(SReject/JSONForMirc/JSONShell, Eval, 1, bstr, this, dispatch* SReject/JSONForMirc/JSONEngine)) || ($comerr) || (!$com(SReject/JSONForMirc/JSONEngine)) { %Error = ENGINE_GET_FAIL }
  2309.   :error
  2310.   if ($error) { %Error = $v1 | reseterror }
  2311.   if (%Error) {
  2312.     if ($com(SReject/JSONForMirc/JSONEngine)) { .comclose $v1 }
  2313.     if ($com(SReject/JSONForMirc/JSONShell)) { .comclose $v1 }
  2314.     jfm_log -EeD %Error
  2315.     return %Error
  2316.   }
  2317.   else { hadd -m SReject/JSONForMirc bvar 0 | hadd -m SReject/JSONForMirc com 0 | jfm_log -EsD Successfully initialized }
  2318. }
  2319. alias -l jfm_ToggleTimers {
  2320.   var %X 1,%Timer
  2321.   while ($timer(%X)) {
  2322.     %Timer = $v1
  2323.     if ($regex(%Timer,/^JSON:[^\?\*\:]+$/i)) { .timer $+ %Timer $1 }
  2324.     inc %X
  2325.   }
  2326. }
  2327. alias -l jfm_GetError {
  2328.   var %Error = UNKNOWN
  2329.   jfm_log -I $!jfm_GetError
  2330.   if ($com(SReject/JSONForMirc/JSONShell).errortext) { %Error = $v1 }
  2331.   if ($com(SReject/JSONForMirc/JSONShellError)) { .comclose SReject/JSONForMirc/JSONShellError }
  2332.   if ($com(SReject/JSONForMirc/JSONShell,Error,2,dispatch* SReject/JSONForMirc/JSONShellError)) && (!$comerr) && ($com(SReject/JSONForMirc/JSONShellError)) && ($com(SReject/JSONForMirc/JSONShellError,Description,2)) && (!$comerr) && ($com(SReject/JSONForMirc/JSONShellError).result !== $null) { %Error = $v1 }
  2333.   if ($com(SReject/JSONForMirc/JSONShellError)) { .comclose SReject/JSONForMirc/JSONShellError }
  2334.   jfm_log -EsD %Error
  2335.   return %Error
  2336. }
  2337. alias -l jfm_Create {
  2338.   var %Wait $iif(1 & $4,$true,$false),%Parse $iif(2 & $4,$false,$true),%Error
  2339.   jfm_log -I $!jfm_create( $+ $1 $+ , $+ $2 $+ , $+ $3 $+ , $+ $4 $+ , $+ $5 $+ )
  2340.   if (!$com(SReject/JSONForMirc/JSONEngine,JSONCreate,1,bstr,$2,&bstr,$3,bool,%Parse,dispatch* $1)) || ($comerr) || (!$com($1)) { %Error = $jfm_GetError }
  2341.   elseif ($2 !== http) || ($2 == http && !%Wait) { %Error = $jfm_Exec($1,parse) }
  2342.   if (%Error) { jfm_log -EeD %Error | return %Error }
  2343.   jfm_log -EsD Created $1
  2344. }
  2345. alias -l jfm_Exec {
  2346.   var %Args,%Index 0,%Params,%Error
  2347.   if ($hget(SReject/JSONForMirc,Exec)) { hdel SReject/JSONForMirc Exec }
  2348.   while (%Index < $0) {
  2349.     inc %Index
  2350.     %Args = %Args $+ $iif($len(%Args),$chr(44)) $+ $($ $+ %Index,2)
  2351.     if (%Index >= 3) {
  2352.       if ($prop == fromBvar) && ($regex($($ $+ %Index,2),/^& (&\S+)$/)) { %Params = %Params $+ ,&bstr, $+ $regml(1) }
  2353.       else { %Params = %Params $+ ,bstr,$ $+ %Index }
  2354.     }
  2355.   }
  2356.   %Params = $!com($1,$2,1 $+ %Params $+ )
  2357.   jfm_log -I $!jfm_Exec( $+ %Args $+ )
  2358.   if (!$(%Params,2) || $comerr) { %Error = $jfm_GetError | jfm_log -EeD %Error | return %Error }
  2359.   else { hadd -mu0 SReject/JSONForMirc Exec $jfm_TmpBVar | noop $com($1, $hget(SReject/JSONForMirc, Exec)).result | jfm_log -EsD Result stored in $hget(SReject/JSONForMirc,Exec) }
  2360. }
  2361. #SReject/JSONForMirc/Log off
  2362. alias -l jfm_log {
  2363.   var %Switches,%Prefix ->,%Color 03,%Indent
  2364.   if (!$window(@SReject/JSONForMirc/Log)) {
  2365.     .JSONDebug off
  2366.     if ($hget(SReject/JSONForMirc,LogIndent)) { hdel SReject/JSONForMirc LogIndent }
  2367.   }
  2368.   else {
  2369.     if (-?* iswm $1) { %Switches = $mid($1, 2-) | tokenize 32 $2- }
  2370.     if (i isincs %Switches) { hinc -mu1 SReject/JSONForMirc LogIndent }
  2371.     if ($0) {
  2372.       if (E isincs %Switches) { %Prefix = <- }
  2373.       if (e isincs %Switches) { %Color = 04 }
  2374.       elseif (s isincs %Switches) { %Color = 12 }
  2375.       elseif (l isincs %Switches) { %Color = 13 }
  2376.       %Prefix = $chr(3) $+ %Color $+ %Prefix
  2377.       if (F !isincs %Switches) { %Prefix = %Prefix $+ $chr(15) }
  2378.       %Indent = $str($chr(15) $+ $chr(32), $calc($hget(SReject/JSONForMirc, LogIndent) *4))
  2379.       echo -gi $+ $calc(($hget(SReject/JSONForMirc, LogIndent) + 1) * 4 -1) @SReject/JSONForMirc/Log %Indent %Prefix $1-
  2380.     }
  2381.     if (I isincs %Switches) { hinc -mu1 SReject/JSONForMirc LogIndent 1 }
  2382.     if (D isincs %Switches) && ($hget(SReject/JSONForMirc, LogIndent) > 0) { hdec -mu1 SReject/JSONForMirc LogIndent 1 }
  2383.   }
  2384. }
  2385. #SReject/JSONForMirc/Log end
  2386. alias -l jfm_log noop
  2387. alias -l jfm_SaveDebug {
  2388.   if ($isid) {
  2389.     if ($window(@SReject/JSONForMirc/Log)) && ($line(@SReject/JSONForMirc/Log, 0)) { return $true }
  2390.     return $false
  2391.   }
  2392.   var %File $sfile($envvar(USERPROFILE) $+ \Documents\JSONForMirc.log, JSONForMirc - Debug window, Save)
  2393.   if (%File) && (!$isfile(%File) || $input(Are you sure you want to overwrite $nopath(%File) $+ ?, qysa, @SReject/JSONForMirc/Log, Overwrite)) { savebuf @SReject/JSONForMirc/Log $qt(%File) }
  2394. }
  2395. alias -l jfm_badd { bset -t $1 $calc(1 + $bvar($1, 0)) $2- }
  2396. alias -l jfm_jscript {
  2397.   jfm_badd $1 !function(){Array.prototype.forEach=function(c){for(var s=this,i=0;i<s.length;i++)c.call(s,s[i],i)};Array.prototype.find=function(c){for(var s=this,i=0;i<s.length;i+=1)if(c.call(s,s[i]))return s[i]};I=['MSXML2.SERVERXMLHTTP.6.0','MSXML2.SERVERXMLHTTP.3.0','MSXML2.SERVERXMLHTTP'].find(function(x){try{return new ActiveXObject(x),x}catch(e){}});function A(o){if(o===null)return 'null';return Object.prototype.toString.call(o).match(/^\[object ([^\]]+)\]$/)[1].toLowerCase()}function B(o){var k=[],i;for(i in o)if(C(o,i))k.push(i);return k}
  2398.   jfm_badd $1 function C(o,k){return Object.prototype.hasOwnProperty.call(o,k)}
  2399.   jfm_badd $1 function D(s){if(s._state!=='done'||s._error||!s._parse)throw new Error('NOT_D');return s}
  2400.   jfm_badd $1 function E(s){if(s._type!=='http')throw new Error('HTTP_NOT_INUSE');if(s._state!=='http_pending')throw new Error('HTTP_NOT_PENDING');return s._http}
  2401.   jfm_badd $1 function F(s){if(s._type!=='http')throw new Error('HTTP_NOT_INUSE');if(s._state!=='done')throw new Error('HTTP_PENDING');return s._http}
  2402.   jfm_badd $1 function G(v){var t=A(v),r='[';if(v===undefined||t==='function')return;if(v===null)return'null';if(t==='number')return isFinite(v)?v.toString():'null';if(t==='boolean')return v.toString();if(t==='string')return'"'+v.replace(/[\\"\u0000-\u001F\u2028\u2029]/g,function(c){return{'"':'\\"','\\':'\\\\','\b':'\\b','\f':'\\f','\n':'\\n','\r':'\\r','\t':'\\t'}[c]||'\\u'+(c.charCodeAt(0)+0x10000).toString(16).substr(1)})+'"';if(t==='array'){v.forEach(function(i,k){i=G(i);if(i)r+=(k?',':'')+i});return r+']'}r=[];B(v).forEach(function(k,o){o=G(v[k]);if(o)r.push(G(k)+':'+o)});return'{'+r.join(',')+'}'}
  2403.   jfm_badd $1 function H(p,j,s){s=this;if(p===undefined)p={};if(j===undefined){s._isChild=!1;s._json=p._json||{}}else{s._isChild=!0;s._json=j}s._state=p._state||'init';s._type=p._type||'text';s._parse=p._parse===!1?!1:!0;s._error=p._error||!1;s._input=p._input;s._http=p._http||{method:'GET',url:'',headers:[]}}
  2404.   jfm_badd $1 H.prototype={
  2405.   jfm_badd $1 state:function(){return this._state},
  2406.   jfm_badd $1 error:function(){return this._error.message},inputType:function(){return this._type},
  2407.   jfm_badd $1 input:function(){return this._input||null},
  2408.   jfm_badd $1 httpParse:function(){return this._parse},
  2409.   jfm_badd $1 httpSetMethod:function(m){E(this).method=m},
  2410.   jfm_badd $1 httpSetHeader:function(h,v){E(this).headers.push([h,v])},
  2411.   jfm_badd $1 httpSetData:function(d){E(this).data=d},
  2412.   jfm_badd $1 httpStatus:function(){return F(this).response.status},
  2413.   jfm_badd $1 httpStatusText:function(){return F(this).response.statusText},
  2414.   jfm_badd $1 httpHeaders:function(){return F(this).response.getAllResponseHeaders()},
  2415.   jfm_badd $1 httpHeader:function(h){return F(this).response.getResponseHeader(h)},
  2416.   jfm_badd $1 httpBody:function(){return F(this).response.responseBody},
  2417.   jfm_badd $1 httpHead:function (s){return s=this,s.httpStatus()+' '+s.httpStatusText()+'\r\n'+s.httpHeaders()},
  2418.   jfm_badd $1 httpResponse:function(){return this.httpHead()+'\r\n\r\n'+this._http.response.reponseText},
  2419.   jfm_badd $1 parse:function(){var s=this,d=!0,x=!1,y=!1,r,j;s.parse=function(){throw new Error('PARSE_NOT_PENDING')};s._state='done';try{if(s._type==='http'){try{if(s._http.data==undefined){d=!1;s._http.data=null}r=new ActiveXObject(I);s._http.response=r;r.open(s._http.method,s._http.url,!1);s._http.headers.forEach(function(h){r.setRequestHeader(h[0],h[1]);if(h[0].toLowerCase()==="content-type")x=!0;if(h[0].toLowerCase()==="content-length")y=!0});if(d){if(!x)r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");if(!y){if(s._http.data==null)r.setRequestHeader("Content-Length",0);else r.setRequestHeader("Content-Length",String(s._http.data).length)}}r.send(s._http.data);if(s._parse===!1)return s;s._input=r.responseText}catch(e){e.message="HTTP: "+e.message;throw e}}j=String(s._input).replace(/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,function(c){return'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4)});if(!/^[\],:{}\s]*$/.test(j.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'')))throw new Error("INVALID_JSON");try{j=eval('('+j+')')}catch(e){throw new Error("INVALID_JSON")}s._json={path:[],value:j};return s}catch(e){s._error=e.message;throw e}},
  2420.   jfm_badd $1 walk:function(){var s=D(this),r=s._json.value,a=Array.prototype.slice.call(arguments),f=a.shift(),p=s._json.path.slice(0),t,m,i,k;while(a.length){t=A(r);m=String(a.shift());if(t!=='array'&&t!=='object')throw new Error('ILLEGAL_REFERENCE');if(f&&/^[~=]./.test(m)){i='~'===m.charAt(0);m=m.replace(/^[~=]\x20?/,'');if(t=='object'&&i){k=B(r);if(/^\d+$/.test(m)){m=parseInt(m,10);if(m>=k.length)throw new Error('FUZZY_INDEX_NOT_FOUND');m=k[m]}else if(!C(r,m)){m=m.toLowerCase();m=k.find(function(k){return m===k.toLowerCase()});if(m==undefined)throw new Error('FUZZY_MEMBER_NOT_FOUND')}}}if(!C(r,m))throw new Error('REFERENCE_NOT_FOUND');p.push(m);r=r[m]}return new H(s,{path:p,value:r})},
  2421.   jfm_badd $1 forEach:function(){var s=D(this),a=Array.prototype.slice.call(arguments),r=[],d=a[0]?Infinity:1;a.shift();function _(i,p,j){j=new H(s,{path:p,value:i});if(d!==Infinity&&a.length>1)j=j.walk.apply(j,a.slice(0));r.push(j)}function Z(i,p,c,t){t=A(i);p=p.slice(0);if(c>d)_(i,p);else if(t==='object')B(i).forEach(function(k,z){z=p.slice(0);z.push(k);Z(i[k],z,c+1)});else if(t==='array')i.forEach(function(v,k){z=p.slice(0);z.push(k);Z(v,z,c+1)});else _(i,p)}if(s.type()!=='object'&&s.type()!=='array')throw new Error('ILLEGAL_REFERENCE');Z(s._json.value,s._json.path.slice(0),1);return r},
  2422.   jfm_badd $1 type:function(){return A(D(this)._json.value)},
  2423.   jfm_badd $1 isContainer:function(){return(this.type()==="object"||this.type()==="array")},
  2424.   jfm_badd $1 pathLength:function(){return D(this)._json.path.length},
  2425.   jfm_badd $1 pathAtIndex:function(i){return D(this)._json.path[i]},
  2426.   jfm_badd $1 path:function(){var r='';D(this)._json.path.forEach(function(i){r+=(r?' ':'')+String(i).replace(/([\\ ])/g,function(c){return' '=== c?'\s':'\\'})});return r},
  2427.   jfm_badd $1 length:function(){var s=D(this),t=s.type();if(t==='string'||t==='array')return s._json.value.length;if(t==='object')return B(s._json.value).length;throw new Error('INVALID_TYPE')},
  2428.   jfm_badd $1 value:function(){return D(this)._json.value},
  2429.   jfm_badd $1 string:function(){return G(D(this)._json.value)},
  2430.   jfm_badd $1 debug:function(){var s=this,r={state:s._state,input:s._input,type:s._type,error:s._error,parse:s._parse,http:{url:s._http.url,method:s._http.method,headers:s._http.headers,data:s._http.data},isChild:s._isChild,json:s._json};if(s._type==="http"&&s._state==="done")r.http.response={status:s._http.response.status,statusText:s._http.response.statusText,headers:(s._http.response.getAllResponseHeaders()).split(/[\r\n]+/g),responseText:s._http.response.responseText};return G(r)}};
  2431.   jfm_badd $1 JSONCreate=function(t,i,p,s){s=new H();s._state='init';s._type=(t||'text').toLowerCase();s._parse=p===!1?!1:!0;if(s._type==='http'){if(!I){s._error='HTTP_NOT_FOUND';throw new Error('HTTP_NOT_FOUND')}s._state='http_pending';s._http.url=i}else{s._state='parse_pending';s._input=i}return s}}()
  2432. }
  2433.  
  2434. ; --
  2435.  
  2436. /*
  2437.  
  2438.     # CheckDateFormat alias coded by SReject - (thanks for support) #
  2439.  
  2440. */
  2441.  
  2442. alias wmm_cdate {
  2443.   if (!$1) || (!$isid) { return 0 }
  2444.   if ($regex($1,/^(?:[^a-zA-Z0-9]*(?:oo|yy|[zmdhHnstT])+)+$/gS)) { return 1 }
  2445.   return 0
  2446. }
  2447.  
  2448. ; --
  2449.  
  2450. /*
  2451.     # ConvertTwitchTime alias coded by SReject - (thanks for support) #
  2452.  
  2453.     ## Official Code Link: http://pastebin.com/gTrSLpJc ##
  2454. */
  2455.  
  2456. alias wmm_convertdate {
  2457.   if (!$1) || (!$isid) { return 0 }
  2458.   if ($regex($1-, /^(\d\d(?:\d\d)?)-(\d\d)-(\d\d)T(\d\d)\:(\d\d)\:(\d\d)(?:(?:\.\d\d\d)?Z|([-+])(\d\d):(\d+)|$)/i)) {
  2459.     var %m = $gettok(January February March April May June July August September October November December, $regml(2), 32)
  2460.     var %d = $ord($base($regml(3),10,10))
  2461.     var %o = +0
  2462.     if ($regml(0) > 6) && ($regml(7) isin -+) { var %o = $regml(7) $+ $calc($regml(8) * 3600 + $regml(9)) }
  2463.     var %t = $calc($ctime(%m %d $regml(1) $regml(4) $+ : $+ $regml(5) $+ : $+ $regml(6)) - %o)
  2464.     if ($asctime(zz) !== 0 && $regex($v1, /^([+-])(\d\d)(\d+)$/)) { var %o = $regml(1) $+ $calc($regml(2) * 3600 + $regml(3)) | var %t = $calc(%t + %o ) }
  2465.     return %t
  2466.   }
  2467.   else { return 0 }
  2468. }
  2469.  
  2470. ; ---
  2471.  
  2472. /*
  2473.     # Download alias coded by SReject - (thanks for support) #
  2474.  
  2475.     ## Official Code Link: http://hawkee.com/snippet/9318 ##
  2476. */
  2477.  
  2478. alias wmm_download {
  2479.   if ($isid) || (!$1) || (!$2) || (!$3) { return }
  2480.   if ($1 == -c) {
  2481.     var %callback = $gettok($1-,2,34)
  2482.     var %url = $gettok($gettok($1-,3,34),1,32)
  2483.     var %file = $gettok($1-,4,34)
  2484.     var %com = $gettok($gettok($1-,5,34),1,32)
  2485.     var %r = $iif($comerr,1,$com(%com).result)
  2486.  
  2487.     if ($com(%com)) { .comclose %com }
  2488.     if (%r == -1) { %callback 1 S_OK %url $qt(%file) }
  2489.     elseif (%r == 1) { %callback 0 UnKnown_ComErr %url $qt(%file) }
  2490.     elseif (%r == 2) { %callback 0 IE6+_Needed %url $qt(%file) }
  2491.     elseif (%r == 3) { %callback 0 Connect_Error %url $qt(%file) }
  2492.     elseif (%r == 4) { %callback 0 Newer_ActiveX_Needed %url $qt(%file) }
  2493.     elseif (%r == 5) { %callback 0 Writefile_Error %url $qt(%file) }
  2494.     else { %callback 0 Unknown_Error %url $qt(%file) }
  2495.   }
  2496.   elseif ($1 !== -c) {
  2497.     var %callback = $gettok($1-,1,34)
  2498.     var %url = $gettok($gettok($1-,2,34),1,32)
  2499.     var %file = $gettok($1-,3-,34)
  2500.     var %com = wmm_download $+ $wmm_random $+ .vbs
  2501.     var %s = $wmm_temp $+ %com
  2502.     var %n = $left(%com,-4)
  2503.  
  2504.     .fopen -ox %n $qt(%s)
  2505.  
  2506.     .fwrite -n %n on error resume next
  2507.     .fwrite -n %n   set C = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
  2508.     .fwrite -n %n   if (err.number <> 0) then
  2509.     .fwrite -n %n     err.clear
  2510.     .fwrite -n %n   set C = CreateObject("MSXML2.SERVERXMLHTTP.3.0")
  2511.     .fwrite -n %n   if (err.number <> 0) then
  2512.     .fwrite -n %n     err.clear
  2513.     .fwrite -n %n   set C = CreateObject("MSXML2.SERVERXMLHTTP")
  2514.     .fwrite -n %n   if (err.number <> 0) then
  2515.     .fwrite -n %n     err.clear
  2516.     .fwrite -n %n   set C = CreateObject("MSXML2.XMLHTTP.6.0")
  2517.     .fwrite -n %n   if (err.number <> 0) then
  2518.     .fwrite -n %n     err.clear
  2519.     .fwrite -n %n   set C = CreateObject("MSXML2.XMLHTTP.3.0")
  2520.     .fwrite -n %n   if (err.number <> 0) then
  2521.     .fwrite -n %n     err.clear
  2522.     .fwrite -n %n   set C = CreateObject("MSXML2.XMLHTTP")
  2523.     .fwrite -n %n   if (err.number <> 0) then
  2524.     .fwrite -n %n     err.clear
  2525.     .fwrite -n %n   set C = CreateObject("XMLHttpRequest")
  2526.     .fwrite -n %n     if (err.number <> 0) then wscript.quit(2)
  2527.     .fwrite -n %n   end if
  2528.     .fwrite -n %n end if
  2529.     .fwrite -n %n end if
  2530.     .fwrite -n %n end if
  2531.     .fwrite -n %n end if
  2532.     .fwrite -n %n end if
  2533.     .fwrite -n %n C.open "GET", $qt(%url) $+ , false
  2534.     .fwrite -n %n C.send
  2535.     .fwrite -n %n if (err.number <> 0) then wscript.quit(3)
  2536.     .fwrite -n %n set O = createobject("adodb.stream")
  2537.     .fwrite -n %n if (err.number <> 0) then wscript.quit(4)
  2538.     .fwrite -n %n O.type=1
  2539.     .fwrite -n %n O.mode=3
  2540.     .fwrite -n %n O.open
  2541.     .fwrite -n %n O.write C.responsebody
  2542.     .fwrite -n %n O.savetofile $qt(%file) $+ ,2
  2543.     .fwrite -n %n if (err.number <> 0) then wscript.quit(5)
  2544.     .fwrite -n %n O.close
  2545.     .fwrite -n %n Set oFso = CreateObject("Scripting.FileSystemObject") : oFso.DeleteFile Wscript.ScriptFullName, True
  2546.     .fwrite -n %n wscript.quit(-1)
  2547.  
  2548.     .fclose %n
  2549.  
  2550.     .comopen %com WScript.Shell
  2551.     if ($lines(%s) !== 41 || $comerr || !$comcall(%com,wmm_download -c $qt(%callback) %url $qt(%file),run,1,bstr*,$qt(%s),uint,1,bool,true)) { goto error }
  2552.     return
  2553.   }
  2554.   :error
  2555.   if ($error) { reseterror }
  2556.   if ($com(%com)) { .comclose %com }
  2557. }
  2558.  
  2559. ; ---
  2560.  
  2561. /*
  2562.     # HTML2Ascii (Unicode) script coded by David Schor - (thanks for support) #
  2563.  
  2564.     ## GitHub Link: https://github.com/ds--/CodeArchive/blob/master/mSL/net/html2unicode.mrc ##
  2565. */
  2566.  
  2567. alias wmm_html2asc {
  2568.   if (!$isid) { return }
  2569.   if (!$hget(WMM_HTML)) { wmm_html_make }
  2570.   return $regsubex(~, $1, /&(.+);/Ug, $wmm_ht_get(\t))
  2571. }
  2572. alias -l wmm_ht_get {
  2573.   if (#x* iswm $1) { return $chr($base($mid($1, 3), 16, 10)) }
  2574.   elseif (#* iswm $1) { return $chr($mid($1, 2)) }
  2575.   return $hget(WMM_HTML, $hfind(WMM_HTML, $1, 1, R))
  2576. }
  2577. alias -l wmm_html_make {
  2578.   var %h = WMM_HTML
  2579.   hmake %h 3000
  2580.   hadd %h /^amp$/9 $chr($base(0026, 16, 10))
  2581.   hadd %h /^lt$/22 $chr($base(003C, 16, 10))
  2582.   hadd %h /^gt$/27 $chr($base(003E, 16, 10))
  2583.   hadd %h /^nbsp$/50 $chr($base(00A0, 16, 10))
  2584.   hadd %h /^iexcl$/52 $chr($base(00A1, 16, 10))
  2585.   hadd %h /^cent$/53 $chr($base(00A2, 16, 10))
  2586.   hadd %h /^pound$/54 $chr($base(00A3, 16, 10))
  2587.   hadd %h /^curren$/55 $chr($base(00A4, 16, 10))
  2588.   hadd %h /^yen$/56 $chr($base(00A5, 16, 10))
  2589.   hadd %h /^brvbar$/57 $chr($base(00A6, 16, 10))
  2590.   hadd %h /^sect$/58 $chr($base(00A7, 16, 10))
  2591.   hadd %h /^uml$/62 $chr($base(00A8, 16, 10))
  2592.   hadd %h /^copy$/63 $chr($base(00A9, 16, 10))
  2593.   hadd %h /^ordf$/65 $chr($base(00AA, 16, 10))
  2594.   hadd %h /^laquo$/66 $chr($base(00AB, 16, 10))
  2595.   hadd %h /^not$/67 $chr($base(00AC, 16, 10))
  2596.   hadd %h /^shy$/68 $chr($base(00AD, 16, 10))
  2597.   hadd %h /^reg$/69 $chr($base(00AE, 16, 10))
  2598.   hadd %h /^macr$/72 $chr($base(00AF, 16, 10))
  2599.   hadd %h /^deg$/74 $chr($base(00B0, 16, 10))
  2600.   hadd %h /^plusmn$/75 $chr($base(00B1, 16, 10))
  2601.   hadd %h /^sup2$/78 $chr($base(00B2, 16, 10))
  2602.   hadd %h /^sup3$/79 $chr($base(00B3, 16, 10))
  2603.   hadd %h /^acute$/80 $chr($base(00B4, 16, 10))
  2604.   hadd %h /^micro$/82 $chr($base(00B5, 16, 10))
  2605.   hadd %h /^para$/83 $chr($base(00B6, 16, 10))
  2606.   hadd %h /^middot$/84 $chr($base(00B7, 16, 10))
  2607.   hadd %h /^cedil$/87 $chr($base(00B8, 16, 10))
  2608.   hadd %h /^sup1$/89 $chr($base(00B9, 16, 10))
  2609.   hadd %h /^ordm$/90 $chr($base(00BA, 16, 10))
  2610.   hadd %h /^raquo$/91 $chr($base(00BB, 16, 10))
  2611.   hadd %h /^frac14$/92 $chr($base(00BC, 16, 10))
  2612.   hadd %h /^frac12$/93 $chr($base(00BD, 16, 10))
  2613.   hadd %h /^frac34$/95 $chr($base(00BE, 16, 10))
  2614.   hadd %h /^iquest$/96 $chr($base(00BF, 16, 10))
  2615.   hadd %h /^Agrave$/97 $chr($base(00C0, 16, 10))
  2616.   hadd %h /^Aacute$/98 $chr($base(00C1, 16, 10))
  2617.   hadd %h /^Acirc$/99 $chr($base(00C2, 16, 10))
  2618.   hadd %h /^Atilde$/100 $chr($base(00C3, 16, 10))
  2619.   hadd %h /^Auml$/101 $chr($base(00C4, 16, 10))
  2620.   hadd %h /^Aring$/102 $chr($base(00C5, 16, 10))
  2621.   hadd %h /^AElig$/104 $chr($base(00C6, 16, 10))
  2622.   hadd %h /^Ccedil$/105 $chr($base(00C7, 16, 10))
  2623.   hadd %h /^Egrave$/106 $chr($base(00C8, 16, 10))
  2624.   hadd %h /^Eacute$/107 $chr($base(00C9, 16, 10))
  2625.   hadd %h /^Ecirc$/108 $chr($base(00CA, 16, 10))
  2626.   hadd %h /^Euml$/109 $chr($base(00CB, 16, 10))
  2627.   hadd %h /^Igrave$/110 $chr($base(00CC, 16, 10))
  2628.   hadd %h /^Iacute$/111 $chr($base(00CD, 16, 10))
  2629.   hadd %h /^Icirc$/112 $chr($base(00CE, 16, 10))
  2630.   hadd %h /^Iuml$/113 $chr($base(00CF, 16, 10))
  2631.   hadd %h /^ETH$/114 $chr($base(00D0, 16, 10))
  2632.   hadd %h /^Ntilde$/115 $chr($base(00D1, 16, 10))
  2633.   hadd %h /^Ograve$/116 $chr($base(00D2, 16, 10))
  2634.   hadd %h /^Oacute$/117 $chr($base(00D3, 16, 10))
  2635.   hadd %h /^Ocirc$/118 $chr($base(00D4, 16, 10))
  2636.   hadd %h /^Otilde$/119 $chr($base(00D5, 16, 10))
  2637.   hadd %h /^Ouml$/120 $chr($base(00D6, 16, 10))
  2638.   hadd %h /^times$/121 $chr($base(00D7, 16, 10))
  2639.   hadd %h /^Oslash$/122 $chr($base(00D8, 16, 10))
  2640.   hadd %h /^Ugrave$/123 $chr($base(00D9, 16, 10))
  2641.   hadd %h /^Uacute$/124 $chr($base(00DA, 16, 10))
  2642.   hadd %h /^Ucirc$/125 $chr($base(00DB, 16, 10))
  2643.   hadd %h /^Uuml$/126 $chr($base(00DC, 16, 10))
  2644.   hadd %h /^Yacute$/127 $chr($base(00DD, 16, 10))
  2645.   hadd %h /^THORN$/128 $chr($base(00DE, 16, 10))
  2646.   hadd %h /^szlig$/129 $chr($base(00DF, 16, 10))
  2647.   hadd %h /^agrave$/130 $chr($base(00E0, 16, 10))
  2648.   hadd %h /^aacute$/131 $chr($base(00E1, 16, 10))
  2649.   hadd %h /^acirc$/132 $chr($base(00E2, 16, 10))
  2650.   hadd %h /^atilde$/133 $chr($base(00E3, 16, 10))
  2651.   hadd %h /^auml$/134 $chr($base(00E4, 16, 10))
  2652.   hadd %h /^aring$/135 $chr($base(00E5, 16, 10))
  2653.   hadd %h /^aelig$/136 $chr($base(00E6, 16, 10))
  2654.   hadd %h /^ccedil$/137 $chr($base(00E7, 16, 10))
  2655.   hadd %h /^egrave$/138 $chr($base(00E8, 16, 10))
  2656.   hadd %h /^eacute$/139 $chr($base(00E9, 16, 10))
  2657.   hadd %h /^ecirc$/140 $chr($base(00EA, 16, 10))
  2658.   hadd %h /^euml$/141 $chr($base(00EB, 16, 10))
  2659.   hadd %h /^igrave$/142 $chr($base(00EC, 16, 10))
  2660.   hadd %h /^iacute$/143 $chr($base(00ED, 16, 10))
  2661.   hadd %h /^icirc$/144 $chr($base(00EE, 16, 10))
  2662.   hadd %h /^iuml$/145 $chr($base(00EF, 16, 10))
  2663.   hadd %h /^eth$/146 $chr($base(00F0, 16, 10))
  2664.   hadd %h /^ntilde$/147 $chr($base(00F1, 16, 10))
  2665.   hadd %h /^ograve$/148 $chr($base(00F2, 16, 10))
  2666.   hadd %h /^oacute$/149 $chr($base(00F3, 16, 10))
  2667.   hadd %h /^ocirc$/150 $chr($base(00F4, 16, 10))
  2668.   hadd %h /^otilde$/151 $chr($base(00F5, 16, 10))
  2669.   hadd %h /^ouml$/152 $chr($base(00F6, 16, 10))
  2670.   hadd %h /^divide$/153 $chr($base(00F7, 16, 10))
  2671.   hadd %h /^oslash$/155 $chr($base(00F8, 16, 10))
  2672.   hadd %h /^ugrave$/156 $chr($base(00F9, 16, 10))
  2673.   hadd %h /^uacute$/157 $chr($base(00FA, 16, 10))
  2674.   hadd %h /^ucirc$/158 $chr($base(00FB, 16, 10))
  2675.   hadd %h /^uuml$/159 $chr($base(00FC, 16, 10))
  2676.   hadd %h /^yacute$/160 $chr($base(00FD, 16, 10))
  2677.   hadd %h /^thorn$/161 $chr($base(00FE, 16, 10))
  2678.   hadd %h /^yuml$/162 $chr($base(00FF, 16, 10))
  2679.   hadd %h /^Tab$/1 $chr($base(0009, 16, 10))
  2680.   hadd %h /^NewLine$/2 $chr($base(000A, 16, 10))
  2681.   hadd %h /^excl$/3 $chr($base(0021, 16, 10))
  2682.   hadd %h /^quot$/4 $chr($base(0022, 16, 10))
  2683.   hadd %h /^QUOT$/5 $chr($base(0022, 16, 10))
  2684.   hadd %h /^num$/6 $chr($base(0023, 16, 10))
  2685.   hadd %h /^dollar$/7 $chr($base(0024, 16, 10))
  2686.   hadd %h /^percnt$/8 $chr($base(0025, 16, 10))
  2687.   hadd %h /^AMP$/10 $chr($base(0026, 16, 10))
  2688.   hadd %h /^apos$/11 $chr($base(0027, 16, 10))
  2689.   hadd %h /^lpar$/12 $chr($base(0028, 16, 10))
  2690.   hadd %h /^rpar$/13 $chr($base(0029, 16, 10))
  2691.   hadd %h /^ast$/14 $chr($base(002A, 16, 10))
  2692.   hadd %h /^midast$/15 $chr($base(002A, 16, 10))
  2693.   hadd %h /^plus$/16 $chr($base(002B, 16, 10))
  2694.   hadd %h /^comma$/17 $chr($base(002C, 16, 10))
  2695.   hadd %h /^period$/18 $chr($base(002E, 16, 10))
  2696.   hadd %h /^sol$/19 $chr($base(002F, 16, 10))
  2697.   hadd %h /^colon$/20 $chr($base(003A, 16, 10))
  2698.   hadd %h /^semi$/21 $chr($base(003B, 16, 10))
  2699.   hadd %h /^LT$/23 $chr($base(003C, 16, 10))
  2700.   hadd %h /^nvlt$/24 $chr($base(003C, 16, 10)) $+ $chr($base(20D2, 16, 10))
  2701.   hadd %h /^equals$/25 $chr($base(003D, 16, 10))
  2702.   hadd %h /^bne$/26 $chr($base(003D, 16, 10)) $+ $chr($base(20E5, 16, 10))
  2703.   hadd %h /^GT$/28 $chr($base(003E, 16, 10))
  2704.   hadd %h /^nvgt$/29 $chr($base(003E, 16, 10)) $+ $chr($base(20D2, 16, 10))
  2705.   hadd %h /^quest$/30 $chr($base(003F, 16, 10))
  2706.   hadd %h /^commat$/31 $chr($base(0040, 16, 10))
  2707.   hadd %h /^lsqb$/32 $chr($base(005B, 16, 10))
  2708.   hadd %h /^lbrack$/33 $chr($base(005B, 16, 10))
  2709.   hadd %h /^bsol$/34 $chr($base(005C, 16, 10))
  2710.   hadd %h /^rsqb$/35 $chr($base(005D, 16, 10))
  2711.   hadd %h /^rbrack$/36 $chr($base(005D, 16, 10))
  2712.   hadd %h /^Hat$/37 $chr($base(005E, 16, 10))
  2713.   hadd %h /^lowbar$/38 $chr($base(005F, 16, 10))
  2714.   hadd %h /^UnderBar$/39 $chr($base(005F, 16, 10))
  2715.   hadd %h /^grave$/40 $chr($base(0060, 16, 10))
  2716.   hadd %h /^DiacriticalGrave$/41 $chr($base(0060, 16, 10))
  2717.   hadd %h /^fjlig$/42 $chr($base(0066, 16, 10)) $+ $chr($base(006A, 16, 10))
  2718.   hadd %h /^lcub$/43 $chr($base(007B, 16, 10))
  2719.   hadd %h /^lbrace$/44 $chr($base(007B, 16, 10))
  2720.   hadd %h /^verbar$/45 $chr($base(007C, 16, 10))
  2721.   hadd %h /^vert$/46 $chr($base(007C, 16, 10))
  2722.   hadd %h /^VerticalLine$/47 $chr($base(007C, 16, 10))
  2723.   hadd %h /^rcub$/48 $chr($base(007D, 16, 10))
  2724.   hadd %h /^rbrace$/49 $chr($base(007D, 16, 10))
  2725.   hadd %h /^NonBreakingSpace$/51 $chr($base(00A0, 16, 10))
  2726.   hadd %h /^Dot$/59 $chr($base(00A8, 16, 10))
  2727.   hadd %h /^die$/60 $chr($base(00A8, 16, 10))
  2728.   hadd %h /^DoubleDot$/61 $chr($base(00A8, 16, 10))
  2729.   hadd %h /^COPY$/64 $chr($base(00A9, 16, 10))
  2730.   hadd %h /^circledR$/70 $chr($base(00AE, 16, 10))
  2731.   hadd %h /^REG$/71 $chr($base(00AE, 16, 10))
  2732.   hadd %h /^strns$/73 $chr($base(00AF, 16, 10))
  2733.   hadd %h /^pm$/76 $chr($base(00B1, 16, 10))
  2734.   hadd %h /^PlusMinus$/77 $chr($base(00B1, 16, 10))
  2735.   hadd %h /^DiacriticalAcute$/81 $chr($base(00B4, 16, 10))
  2736.   hadd %h /^centerdot$/85 $chr($base(00B7, 16, 10))
  2737.   hadd %h /^CenterDot$/86 $chr($base(00B7, 16, 10))
  2738.   hadd %h /^Cedilla$/88 $chr($base(00B8, 16, 10))
  2739.   hadd %h /^half$/94 $chr($base(00BD, 16, 10))
  2740.   hadd %h /^angst$/103 $chr($base(00C5, 16, 10))
  2741.   hadd %h /^div$/154 $chr($base(00F7, 16, 10))
  2742.   hadd %h /^Amacr$/163 $chr($base(0100, 16, 10))
  2743.   hadd %h /^amacr$/164 $chr($base(0101, 16, 10))
  2744.   hadd %h /^Abreve$/165 $chr($base(0102, 16, 10))
  2745.   hadd %h /^abreve$/166 $chr($base(0103, 16, 10))
  2746.   hadd %h /^Aogon$/167 $chr($base(0104, 16, 10))
  2747.   hadd %h /^aogon$/168 $chr($base(0105, 16, 10))
  2748.   hadd %h /^Cacute$/169 $chr($base(0106, 16, 10))
  2749.   hadd %h /^cacute$/170 $chr($base(0107, 16, 10))
  2750.   hadd %h /^Ccirc$/171 $chr($base(0108, 16, 10))
  2751.   hadd %h /^ccirc$/172 $chr($base(0109, 16, 10))
  2752.   hadd %h /^Cdot$/173 $chr($base(010A, 16, 10))
  2753.   hadd %h /^cdot$/174 $chr($base(010B, 16, 10))
  2754.   hadd %h /^Ccaron$/175 $chr($base(010C, 16, 10))
  2755.   hadd %h /^ccaron$/176 $chr($base(010D, 16, 10))
  2756.   hadd %h /^Dcaron$/177 $chr($base(010E, 16, 10))
  2757.   hadd %h /^dcaron$/178 $chr($base(010F, 16, 10))
  2758.   hadd %h /^Dstrok$/179 $chr($base(0110, 16, 10))
  2759.   hadd %h /^dstrok$/180 $chr($base(0111, 16, 10))
  2760.   hadd %h /^Emacr$/181 $chr($base(0112, 16, 10))
  2761.   hadd %h /^emacr$/182 $chr($base(0113, 16, 10))
  2762.   hadd %h /^Edot$/183 $chr($base(0116, 16, 10))
  2763.   hadd %h /^edot$/184 $chr($base(0117, 16, 10))
  2764.   hadd %h /^Eogon$/185 $chr($base(0118, 16, 10))
  2765.   hadd %h /^eogon$/186 $chr($base(0119, 16, 10))
  2766.   hadd %h /^Ecaron$/187 $chr($base(011A, 16, 10))
  2767.   hadd %h /^ecaron$/188 $chr($base(011B, 16, 10))
  2768.   hadd %h /^Gcirc$/189 $chr($base(011C, 16, 10))
  2769.   hadd %h /^gcirc$/190 $chr($base(011D, 16, 10))
  2770.   hadd %h /^Gbreve$/191 $chr($base(011E, 16, 10))
  2771.   hadd %h /^gbreve$/192 $chr($base(011F, 16, 10))
  2772.   hadd %h /^Gdot$/193 $chr($base(0120, 16, 10))
  2773.   hadd %h /^gdot$/194 $chr($base(0121, 16, 10))
  2774.   hadd %h /^Gcedil$/195 $chr($base(0122, 16, 10))
  2775.   hadd %h /^Hcirc$/196 $chr($base(0124, 16, 10))
  2776.   hadd %h /^hcirc$/197 $chr($base(0125, 16, 10))
  2777.   hadd %h /^Hstrok$/198 $chr($base(0126, 16, 10))
  2778.   hadd %h /^hstrok$/199 $chr($base(0127, 16, 10))
  2779.   hadd %h /^Itilde$/200 $chr($base(0128, 16, 10))
  2780.   hadd %h /^itilde$/201 $chr($base(0129, 16, 10))
  2781.   hadd %h /^Imacr$/202 $chr($base(012A, 16, 10))
  2782.   hadd %h /^imacr$/203 $chr($base(012B, 16, 10))
  2783.   hadd %h /^Iogon$/204 $chr($base(012E, 16, 10))
  2784.   hadd %h /^iogon$/205 $chr($base(012F, 16, 10))
  2785.   hadd %h /^Idot$/206 $chr($base(0130, 16, 10))
  2786.   hadd %h /^imath$/207 $chr($base(0131, 16, 10))
  2787.   hadd %h /^inodot$/208 $chr($base(0131, 16, 10))
  2788.   hadd %h /^IJlig$/209 $chr($base(0132, 16, 10))
  2789.   hadd %h /^ijlig$/210 $chr($base(0133, 16, 10))
  2790.   hadd %h /^Jcirc$/211 $chr($base(0134, 16, 10))
  2791.   hadd %h /^jcirc$/212 $chr($base(0135, 16, 10))
  2792.   hadd %h /^Kcedil$/213 $chr($base(0136, 16, 10))
  2793.   hadd %h /^kcedil$/214 $chr($base(0137, 16, 10))
  2794.   hadd %h /^kgreen$/215 $chr($base(0138, 16, 10))
  2795.   hadd %h /^Lacute$/216 $chr($base(0139, 16, 10))
  2796.   hadd %h /^lacute$/217 $chr($base(013A, 16, 10))
  2797.   hadd %h /^Lcedil$/218 $chr($base(013B, 16, 10))
  2798.   hadd %h /^lcedil$/219 $chr($base(013C, 16, 10))
  2799.   hadd %h /^Lcaron$/220 $chr($base(013D, 16, 10))
  2800.   hadd %h /^lcaron$/221 $chr($base(013E, 16, 10))
  2801.   hadd %h /^Lmidot$/222 $chr($base(013F, 16, 10))
  2802.   hadd %h /^lmidot$/223 $chr($base(0140, 16, 10))
  2803.   hadd %h /^Lstrok$/224 $chr($base(0141, 16, 10))
  2804.   hadd %h /^lstrok$/225 $chr($base(0142, 16, 10))
  2805.   hadd %h /^Nacute$/226 $chr($base(0143, 16, 10))
  2806.   hadd %h /^nacute$/227 $chr($base(0144, 16, 10))
  2807.   hadd %h /^Ncedil$/228 $chr($base(0145, 16, 10))
  2808.   hadd %h /^ncedil$/229 $chr($base(0146, 16, 10))
  2809.   hadd %h /^Ncaron$/230 $chr($base(0147, 16, 10))
  2810.   hadd %h /^ncaron$/231 $chr($base(0148, 16, 10))
  2811.   hadd %h /^napos$/232 $chr($base(0149, 16, 10))
  2812.   hadd %h /^ENG$/233 $chr($base(014A, 16, 10))
  2813.   hadd %h /^eng$/234 $chr($base(014B, 16, 10))
  2814.   hadd %h /^Omacr$/235 $chr($base(014C, 16, 10))
  2815.   hadd %h /^omacr$/236 $chr($base(014D, 16, 10))
  2816.   hadd %h /^Odblac$/237 $chr($base(0150, 16, 10))
  2817.   hadd %h /^odblac$/238 $chr($base(0151, 16, 10))
  2818.   hadd %h /^OElig$/239 $chr($base(0152, 16, 10))
  2819.   hadd %h /^oelig$/240 $chr($base(0153, 16, 10))
  2820.   hadd %h /^Racute$/241 $chr($base(0154, 16, 10))
  2821.   hadd %h /^racute$/242 $chr($base(0155, 16, 10))
  2822.   hadd %h /^Rcedil$/243 $chr($base(0156, 16, 10))
  2823.   hadd %h /^rcedil$/244 $chr($base(0157, 16, 10))
  2824.   hadd %h /^Rcaron$/245 $chr($base(0158, 16, 10))
  2825.   hadd %h /^rcaron$/246 $chr($base(0159, 16, 10))
  2826.   hadd %h /^Sacute$/247 $chr($base(015A, 16, 10))
  2827.   hadd %h /^sacute$/248 $chr($base(015B, 16, 10))
  2828.   hadd %h /^Scirc$/249 $chr($base(015C, 16, 10))
  2829.   hadd %h /^scirc$/250 $chr($base(015D, 16, 10))
  2830.   hadd %h /^Scedil$/251 $chr($base(015E, 16, 10))
  2831.   hadd %h /^scedil$/252 $chr($base(015F, 16, 10))
  2832.   hadd %h /^Scaron$/253 $chr($base(0160, 16, 10))
  2833.   hadd %h /^scaron$/254 $chr($base(0161, 16, 10))
  2834.   hadd %h /^Tcedil$/255 $chr($base(0162, 16, 10))
  2835.   hadd %h /^tcedil$/256 $chr($base(0163, 16, 10))
  2836.   hadd %h /^Tcaron$/257 $chr($base(0164, 16, 10))
  2837.   hadd %h /^tcaron$/258 $chr($base(0165, 16, 10))
  2838.   hadd %h /^Tstrok$/259 $chr($base(0166, 16, 10))
  2839.   hadd %h /^tstrok$/260 $chr($base(0167, 16, 10))
  2840.   hadd %h /^Utilde$/261 $chr($base(0168, 16, 10))
  2841.   hadd %h /^utilde$/262 $chr($base(0169, 16, 10))
  2842.   hadd %h /^Umacr$/263 $chr($base(016A, 16, 10))
  2843.   hadd %h /^umacr$/264 $chr($base(016B, 16, 10))
  2844.   hadd %h /^Ubreve$/265 $chr($base(016C, 16, 10))
  2845.   hadd %h /^ubreve$/266 $chr($base(016D, 16, 10))
  2846.   hadd %h /^Uring$/267 $chr($base(016E, 16, 10))
  2847.   hadd %h /^uring$/268 $chr($base(016F, 16, 10))
  2848.   hadd %h /^Udblac$/269 $chr($base(0170, 16, 10))
  2849.   hadd %h /^udblac$/270 $chr($base(0171, 16, 10))
  2850.   hadd %h /^Uogon$/271 $chr($base(0172, 16, 10))
  2851.   hadd %h /^uogon$/272 $chr($base(0173, 16, 10))
  2852.   hadd %h /^Wcirc$/273 $chr($base(0174, 16, 10))
  2853.   hadd %h /^wcirc$/274 $chr($base(0175, 16, 10))
  2854.   hadd %h /^Ycirc$/275 $chr($base(0176, 16, 10))
  2855.   hadd %h /^ycirc$/276 $chr($base(0177, 16, 10))
  2856.   hadd %h /^Yuml$/277 $chr($base(0178, 16, 10))
  2857.   hadd %h /^Zacute$/278 $chr($base(0179, 16, 10))
  2858.   hadd %h /^zacute$/279 $chr($base(017A, 16, 10))
  2859.   hadd %h /^Zdot$/280 $chr($base(017B, 16, 10))
  2860.   hadd %h /^zdot$/281 $chr($base(017C, 16, 10))
  2861.   hadd %h /^Zcaron$/282 $chr($base(017D, 16, 10))
  2862.   hadd %h /^zcaron$/283 $chr($base(017E, 16, 10))
  2863.   hadd %h /^fnof$/284 $chr($base(0192, 16, 10))
  2864.   hadd %h /^imped$/285 $chr($base(01B5, 16, 10))
  2865.   hadd %h /^gacute$/286 $chr($base(01F5, 16, 10))
  2866.   hadd %h /^jmath$/287 $chr($base(0237, 16, 10))
  2867.   hadd %h /^circ$/288 $chr($base(02C6, 16, 10))
  2868.   hadd %h /^caron$/289 $chr($base(02C7, 16, 10))
  2869.   hadd %h /^Hacek$/290 $chr($base(02C7, 16, 10))
  2870.   hadd %h /^breve$/291 $chr($base(02D8, 16, 10))
  2871.   hadd %h /^Breve$/292 $chr($base(02D8, 16, 10))
  2872.   hadd %h /^dot$/293 $chr($base(02D9, 16, 10))
  2873.   hadd %h /^DiacriticalDot$/294 $chr($base(02D9, 16, 10))
  2874.   hadd %h /^ring$/295 $chr($base(02DA, 16, 10))
  2875.   hadd %h /^ogon$/296 $chr($base(02DB, 16, 10))
  2876.   hadd %h /^tilde$/297 $chr($base(02DC, 16, 10))
  2877.   hadd %h /^DiacriticalTilde$/298 $chr($base(02DC, 16, 10))
  2878.   hadd %h /^dblac$/299 $chr($base(02DD, 16, 10))
  2879.   hadd %h /^DiacriticalDoubleAcute$/300 $chr($base(02DD, 16, 10))
  2880.   hadd %h /^DownBreve$/301 $chr($base(0311, 16, 10))
  2881.   hadd %h /^Aacgr$/302 $chr($base(0386, 16, 10))
  2882.   hadd %h /^Eacgr$/303 $chr($base(0388, 16, 10))
  2883.   hadd %h /^EEacgr$/304 $chr($base(0389, 16, 10))
  2884.   hadd %h /^Iacgr$/305 $chr($base(038A, 16, 10))
  2885.   hadd %h /^Oacgr$/306 $chr($base(038C, 16, 10))
  2886.   hadd %h /^Uacgr$/307 $chr($base(038E, 16, 10))
  2887.   hadd %h /^OHacgr$/308 $chr($base(038F, 16, 10))
  2888.   hadd %h /^idiagr$/309 $chr($base(0390, 16, 10))
  2889.   hadd %h /^Alpha$/310 $chr($base(0391, 16, 10))
  2890.   hadd %h /^Agr$/311 $chr($base(0391, 16, 10))
  2891.   hadd %h /^Bgr$/312 $chr($base(0392, 16, 10))
  2892.   hadd %h /^Beta$/313 $chr($base(0392, 16, 10))
  2893.   hadd %h /^Gamma$/314 $chr($base(0393, 16, 10))
  2894.   hadd %h /^Ggr$/315 $chr($base(0393, 16, 10))
  2895.   hadd %h /^Delta$/316 $chr($base(0394, 16, 10))
  2896.   hadd %h /^Dgr$/317 $chr($base(0394, 16, 10))
  2897.   hadd %h /^Egr$/318 $chr($base(0395, 16, 10))
  2898.   hadd %h /^Epsilon$/319 $chr($base(0395, 16, 10))
  2899.   hadd %h /^Zgr$/320 $chr($base(0396, 16, 10))
  2900.   hadd %h /^Zeta$/321 $chr($base(0396, 16, 10))
  2901.   hadd %h /^EEgr$/322 $chr($base(0397, 16, 10))
  2902.   hadd %h /^Eta$/323 $chr($base(0397, 16, 10))
  2903.   hadd %h /^THgr$/324 $chr($base(0398, 16, 10))
  2904.   hadd %h /^Theta$/325 $chr($base(0398, 16, 10))
  2905.   hadd %h /^Igr$/326 $chr($base(0399, 16, 10))
  2906.   hadd %h /^Iota$/327 $chr($base(0399, 16, 10))
  2907.   hadd %h /^Kgr$/328 $chr($base(039A, 16, 10))
  2908.   hadd %h /^Kappa$/329 $chr($base(039A, 16, 10))
  2909.   hadd %h /^Lambda$/330 $chr($base(039B, 16, 10))
  2910.   hadd %h /^Lgr$/331 $chr($base(039B, 16, 10))
  2911.   hadd %h /^Mgr$/332 $chr($base(039C, 16, 10))
  2912.   hadd %h /^Mu$/333 $chr($base(039C, 16, 10))
  2913.   hadd %h /^Ngr$/334 $chr($base(039D, 16, 10))
  2914.   hadd %h /^Nu$/335 $chr($base(039D, 16, 10))
  2915.   hadd %h /^Xgr$/336 $chr($base(039E, 16, 10))
  2916.   hadd %h /^Xi$/337 $chr($base(039E, 16, 10))
  2917.   hadd %h /^Ogr$/338 $chr($base(039F, 16, 10))
  2918.   hadd %h /^Omicron$/339 $chr($base(039F, 16, 10))
  2919.   hadd %h /^Pgr$/340 $chr($base(03A0, 16, 10))
  2920.   hadd %h /^Pi$/341 $chr($base(03A0, 16, 10))
  2921.   hadd %h /^Rgr$/342 $chr($base(03A1, 16, 10))
  2922.   hadd %h /^Rho$/343 $chr($base(03A1, 16, 10))
  2923.   hadd %h /^Sgr$/344 $chr($base(03A3, 16, 10))
  2924.   hadd %h /^Sigma$/345 $chr($base(03A3, 16, 10))
  2925.   hadd %h /^Tgr$/346 $chr($base(03A4, 16, 10))
  2926.   hadd %h /^Tau$/347 $chr($base(03A4, 16, 10))
  2927.   hadd %h /^Ugr$/348 $chr($base(03A5, 16, 10))
  2928.   hadd %h /^Upsilon$/349 $chr($base(03A5, 16, 10))
  2929.   hadd %h /^PHgr$/350 $chr($base(03A6, 16, 10))
  2930.   hadd %h /^Phi$/351 $chr($base(03A6, 16, 10))
  2931.   hadd %h /^KHgr$/352 $chr($base(03A7, 16, 10))
  2932.   hadd %h /^Chi$/353 $chr($base(03A7, 16, 10))
  2933.   hadd %h /^PSgr$/354 $chr($base(03A8, 16, 10))
  2934.   hadd %h /^Psi$/355 $chr($base(03A8, 16, 10))
  2935.   hadd %h /^OHgr$/356 $chr($base(03A9, 16, 10))
  2936.   hadd %h /^Omega$/357 $chr($base(03A9, 16, 10))
  2937.   hadd %h /^ohm$/358 $chr($base(03A9, 16, 10))
  2938.   hadd %h /^Idigr$/359 $chr($base(03AA, 16, 10))
  2939.   hadd %h /^Udigr$/360 $chr($base(03AB, 16, 10))
  2940.   hadd %h /^aacgr$/361 $chr($base(03AC, 16, 10))
  2941.   hadd %h /^eacgr$/362 $chr($base(03AD, 16, 10))
  2942.   hadd %h /^eeacgr$/363 $chr($base(03AE, 16, 10))
  2943.   hadd %h /^iacgr$/364 $chr($base(03AF, 16, 10))
  2944.   hadd %h /^udiagr$/365 $chr($base(03B0, 16, 10))
  2945.   hadd %h /^agr$/366 $chr($base(03B1, 16, 10))
  2946.   hadd %h /^alpha$/367 $chr($base(03B1, 16, 10))
  2947.   hadd %h /^beta$/368 $chr($base(03B2, 16, 10))
  2948.   hadd %h /^bgr$/369 $chr($base(03B2, 16, 10))
  2949.   hadd %h /^gamma$/370 $chr($base(03B3, 16, 10))
  2950.   hadd %h /^ggr$/371 $chr($base(03B3, 16, 10))
  2951.   hadd %h /^delta$/372 $chr($base(03B4, 16, 10))
  2952.   hadd %h /^dgr$/373 $chr($base(03B4, 16, 10))
  2953.   hadd %h /^egr$/374 $chr($base(03B5, 16, 10))
  2954.   hadd %h /^epsi$/375 $chr($base(03B5, 16, 10))
  2955.   hadd %h /^epsilon$/376 $chr($base(03B5, 16, 10))
  2956.   hadd %h /^zeta$/377 $chr($base(03B6, 16, 10))
  2957.   hadd %h /^zgr$/378 $chr($base(03B6, 16, 10))
  2958.   hadd %h /^eegr$/379 $chr($base(03B7, 16, 10))
  2959.   hadd %h /^eta$/380 $chr($base(03B7, 16, 10))
  2960.   hadd %h /^theta$/381 $chr($base(03B8, 16, 10))
  2961.   hadd %h /^thgr$/382 $chr($base(03B8, 16, 10))
  2962.   hadd %h /^igr$/383 $chr($base(03B9, 16, 10))
  2963.   hadd %h /^iota$/384 $chr($base(03B9, 16, 10))
  2964.   hadd %h /^kappa$/385 $chr($base(03BA, 16, 10))
  2965.   hadd %h /^kgr$/386 $chr($base(03BA, 16, 10))
  2966.   hadd %h /^lambda$/387 $chr($base(03BB, 16, 10))
  2967.   hadd %h /^lgr$/388 $chr($base(03BB, 16, 10))
  2968.   hadd %h /^mgr$/389 $chr($base(03BC, 16, 10))
  2969.   hadd %h /^mu$/390 $chr($base(03BC, 16, 10))
  2970.   hadd %h /^ngr$/391 $chr($base(03BD, 16, 10))
  2971.   hadd %h /^nu$/392 $chr($base(03BD, 16, 10))
  2972.   hadd %h /^xgr$/393 $chr($base(03BE, 16, 10))
  2973.   hadd %h /^xi$/394 $chr($base(03BE, 16, 10))
  2974.   hadd %h /^omicron$/395 $chr($base(03BF, 16, 10))
  2975.   hadd %h /^ogr$/396 $chr($base(03BF, 16, 10))
  2976.   hadd %h /^pgr$/397 $chr($base(03C0, 16, 10))
  2977.   hadd %h /^pi$/398 $chr($base(03C0, 16, 10))
  2978.   hadd %h /^rgr$/399 $chr($base(03C1, 16, 10))
  2979.   hadd %h /^rho$/400 $chr($base(03C1, 16, 10))
  2980.   hadd %h /^sfgr$/401 $chr($base(03C2, 16, 10))
  2981.   hadd %h /^sigmav$/402 $chr($base(03C2, 16, 10))
  2982.   hadd %h /^varsigma$/403 $chr($base(03C2, 16, 10))
  2983.   hadd %h /^sigmaf$/404 $chr($base(03C2, 16, 10))
  2984.   hadd %h /^sgr$/405 $chr($base(03C3, 16, 10))
  2985.   hadd %h /^sigma$/406 $chr($base(03C3, 16, 10))
  2986.   hadd %h /^tau$/407 $chr($base(03C4, 16, 10))
  2987.   hadd %h /^tgr$/408 $chr($base(03C4, 16, 10))
  2988.   hadd %h /^ugr$/409 $chr($base(03C5, 16, 10))
  2989.   hadd %h /^upsi$/410 $chr($base(03C5, 16, 10))
  2990.   hadd %h /^upsilon$/411 $chr($base(03C5, 16, 10))
  2991.   hadd %h /^phi$/412 $chr($base(03C6, 16, 10))
  2992.   hadd %h /^phgr$/413 $chr($base(03C6, 16, 10))
  2993.   hadd %h /^chi$/414 $chr($base(03C7, 16, 10))
  2994.   hadd %h /^khgr$/415 $chr($base(03C7, 16, 10))
  2995.   hadd %h /^psgr$/416 $chr($base(03C8, 16, 10))
  2996.   hadd %h /^psi$/417 $chr($base(03C8, 16, 10))
  2997.   hadd %h /^ohgr$/418 $chr($base(03C9, 16, 10))
  2998.   hadd %h /^omega$/419 $chr($base(03C9, 16, 10))
  2999.   hadd %h /^idigr$/420 $chr($base(03CA, 16, 10))
  3000.   hadd %h /^udigr$/421 $chr($base(03CB, 16, 10))
  3001.   hadd %h /^oacgr$/422 $chr($base(03CC, 16, 10))
  3002.   hadd %h /^uacgr$/423 $chr($base(03CD, 16, 10))
  3003.   hadd %h /^ohacgr$/424 $chr($base(03CE, 16, 10))
  3004.   hadd %h /^thetav$/425 $chr($base(03D1, 16, 10))
  3005.   hadd %h /^vartheta$/426 $chr($base(03D1, 16, 10))
  3006.   hadd %h /^thetasym$/427 $chr($base(03D1, 16, 10))
  3007.   hadd %h /^Upsi$/428 $chr($base(03D2, 16, 10))
  3008.   hadd %h /^upsih$/429 $chr($base(03D2, 16, 10))
  3009.   hadd %h /^straightphi$/430 $chr($base(03D5, 16, 10))
  3010.   hadd %h /^phiv$/431 $chr($base(03D5, 16, 10))
  3011.   hadd %h /^varphi$/432 $chr($base(03D5, 16, 10))
  3012.   hadd %h /^piv$/433 $chr($base(03D6, 16, 10))
  3013.   hadd %h /^varpi$/434 $chr($base(03D6, 16, 10))
  3014.   hadd %h /^Gammad$/435 $chr($base(03DC, 16, 10))
  3015.   hadd %h /^gammad$/436 $chr($base(03DD, 16, 10))
  3016.   hadd %h /^digamma$/437 $chr($base(03DD, 16, 10))
  3017.   hadd %h /^kappav$/438 $chr($base(03F0, 16, 10))
  3018.   hadd %h /^varkappa$/439 $chr($base(03F0, 16, 10))
  3019.   hadd %h /^rhov$/440 $chr($base(03F1, 16, 10))
  3020.   hadd %h /^varrho$/441 $chr($base(03F1, 16, 10))
  3021.   hadd %h /^epsiv$/442 $chr($base(03F5, 16, 10))
  3022.   hadd %h /^straightepsilon$/443 $chr($base(03F5, 16, 10))
  3023.   hadd %h /^varepsilon$/444 $chr($base(03F5, 16, 10))
  3024.   hadd %h /^bepsi$/445 $chr($base(03F6, 16, 10))
  3025.   hadd %h /^backepsilon$/446 $chr($base(03F6, 16, 10))
  3026.   hadd %h /^IOcy$/447 $chr($base(0401, 16, 10))
  3027.   hadd %h /^DJcy$/448 $chr($base(0402, 16, 10))
  3028.   hadd %h /^GJcy$/449 $chr($base(0403, 16, 10))
  3029.   hadd %h /^Jukcy$/450 $chr($base(0404, 16, 10))
  3030.   hadd %h /^DScy$/451 $chr($base(0405, 16, 10))
  3031.   hadd %h /^Iukcy$/452 $chr($base(0406, 16, 10))
  3032.   hadd %h /^YIcy$/453 $chr($base(0407, 16, 10))
  3033.   hadd %h /^Jsercy$/454 $chr($base(0408, 16, 10))
  3034.   hadd %h /^LJcy$/455 $chr($base(0409, 16, 10))
  3035.   hadd %h /^NJcy$/456 $chr($base(040A, 16, 10))
  3036.   hadd %h /^TSHcy$/457 $chr($base(040B, 16, 10))
  3037.   hadd %h /^KJcy$/458 $chr($base(040C, 16, 10))
  3038.   hadd %h /^Ubrcy$/459 $chr($base(040E, 16, 10))
  3039.   hadd %h /^DZcy$/460 $chr($base(040F, 16, 10))
  3040.   hadd %h /^Acy$/461 $chr($base(0410, 16, 10))
  3041.   hadd %h /^Bcy$/462 $chr($base(0411, 16, 10))
  3042.   hadd %h /^Vcy$/463 $chr($base(0412, 16, 10))
  3043.   hadd %h /^Gcy$/464 $chr($base(0413, 16, 10))
  3044.   hadd %h /^Dcy$/465 $chr($base(0414, 16, 10))
  3045.   hadd %h /^IEcy$/466 $chr($base(0415, 16, 10))
  3046.   hadd %h /^ZHcy$/467 $chr($base(0416, 16, 10))
  3047.   hadd %h /^Zcy$/468 $chr($base(0417, 16, 10))
  3048.   hadd %h /^Icy$/469 $chr($base(0418, 16, 10))
  3049.   hadd %h /^Jcy$/470 $chr($base(0419, 16, 10))
  3050.   hadd %h /^Kcy$/471 $chr($base(041A, 16, 10))
  3051.   hadd %h /^Lcy$/472 $chr($base(041B, 16, 10))
  3052.   hadd %h /^Mcy$/473 $chr($base(041C, 16, 10))
  3053.   hadd %h /^Ncy$/474 $chr($base(041D, 16, 10))
  3054.   hadd %h /^Ocy$/475 $chr($base(041E, 16, 10))
  3055.   hadd %h /^Pcy$/476 $chr($base(041F, 16, 10))
  3056.   hadd %h /^Rcy$/477 $chr($base(0420, 16, 10))
  3057.   hadd %h /^Scy$/478 $chr($base(0421, 16, 10))
  3058.   hadd %h /^Tcy$/479 $chr($base(0422, 16, 10))
  3059.   hadd %h /^Ucy$/480 $chr($base(0423, 16, 10))
  3060.   hadd %h /^Fcy$/481 $chr($base(0424, 16, 10))
  3061.   hadd %h /^KHcy$/482 $chr($base(0425, 16, 10))
  3062.   hadd %h /^TScy$/483 $chr($base(0426, 16, 10))
  3063.   hadd %h /^CHcy$/484 $chr($base(0427, 16, 10))
  3064.   hadd %h /^SHcy$/485 $chr($base(0428, 16, 10))
  3065.   hadd %h /^SHCHcy$/486 $chr($base(0429, 16, 10))
  3066.   hadd %h /^HARDcy$/487 $chr($base(042A, 16, 10))
  3067.   hadd %h /^Ycy$/488 $chr($base(042B, 16, 10))
  3068.   hadd %h /^SOFTcy$/489 $chr($base(042C, 16, 10))
  3069.   hadd %h /^Ecy$/490 $chr($base(042D, 16, 10))
  3070.   hadd %h /^YUcy$/491 $chr($base(042E, 16, 10))
  3071.   hadd %h /^YAcy$/492 $chr($base(042F, 16, 10))
  3072.   hadd %h /^acy$/493 $chr($base(0430, 16, 10))
  3073.   hadd %h /^bcy$/494 $chr($base(0431, 16, 10))
  3074.   hadd %h /^vcy$/495 $chr($base(0432, 16, 10))
  3075.   hadd %h /^gcy$/496 $chr($base(0433, 16, 10))
  3076.   hadd %h /^dcy$/497 $chr($base(0434, 16, 10))
  3077.   hadd %h /^iecy$/498 $chr($base(0435, 16, 10))
  3078.   hadd %h /^zhcy$/499 $chr($base(0436, 16, 10))
  3079.   hadd %h /^zcy$/500 $chr($base(0437, 16, 10))
  3080.   hadd %h /^icy$/501 $chr($base(0438, 16, 10))
  3081.   hadd %h /^jcy$/502 $chr($base(0439, 16, 10))
  3082.   hadd %h /^kcy$/503 $chr($base(043A, 16, 10))
  3083.   hadd %h /^lcy$/504 $chr($base(043B, 16, 10))
  3084.   hadd %h /^mcy$/505 $chr($base(043C, 16, 10))
  3085.   hadd %h /^ncy$/506 $chr($base(043D, 16, 10))
  3086.   hadd %h /^ocy$/507 $chr($base(043E, 16, 10))
  3087.   hadd %h /^pcy$/508 $chr($base(043F, 16, 10))
  3088.   hadd %h /^rcy$/509 $chr($base(0440, 16, 10))
  3089.   hadd %h /^scy$/510 $chr($base(0441, 16, 10))
  3090.   hadd %h /^tcy$/511 $chr($base(0442, 16, 10))
  3091.   hadd %h /^ucy$/512 $chr($base(0443, 16, 10))
  3092.   hadd %h /^fcy$/513 $chr($base(0444, 16, 10))
  3093.   hadd %h /^khcy$/514 $chr($base(0445, 16, 10))
  3094.   hadd %h /^tscy$/515 $chr($base(0446, 16, 10))
  3095.   hadd %h /^chcy$/516 $chr($base(0447, 16, 10))
  3096.   hadd %h /^shcy$/517 $chr($base(0448, 16, 10))
  3097.   hadd %h /^shchcy$/518 $chr($base(0449, 16, 10))
  3098.   hadd %h /^hardcy$/519 $chr($base(044A, 16, 10))
  3099.   hadd %h /^ycy$/520 $chr($base(044B, 16, 10))
  3100.   hadd %h /^softcy$/521 $chr($base(044C, 16, 10))
  3101.   hadd %h /^ecy$/522 $chr($base(044D, 16, 10))
  3102.   hadd %h /^yucy$/523 $chr($base(044E, 16, 10))
  3103.   hadd %h /^yacy$/524 $chr($base(044F, 16, 10))
  3104.   hadd %h /^iocy$/525 $chr($base(0451, 16, 10))
  3105.   hadd %h /^djcy$/526 $chr($base(0452, 16, 10))
  3106.   hadd %h /^gjcy$/527 $chr($base(0453, 16, 10))
  3107.   hadd %h /^jukcy$/528 $chr($base(0454, 16, 10))
  3108.   hadd %h /^dscy$/529 $chr($base(0455, 16, 10))
  3109.   hadd %h /^iukcy$/530 $chr($base(0456, 16, 10))
  3110.   hadd %h /^yicy$/531 $chr($base(0457, 16, 10))
  3111.   hadd %h /^jsercy$/532 $chr($base(0458, 16, 10))
  3112.   hadd %h /^ljcy$/533 $chr($base(0459, 16, 10))
  3113.   hadd %h /^njcy$/534 $chr($base(045A, 16, 10))
  3114.   hadd %h /^tshcy$/535 $chr($base(045B, 16, 10))
  3115.   hadd %h /^kjcy$/536 $chr($base(045C, 16, 10))
  3116.   hadd %h /^ubrcy$/537 $chr($base(045E, 16, 10))
  3117.   hadd %h /^dzcy$/538 $chr($base(045F, 16, 10))
  3118.   hadd %h /^ensp$/539 $chr($base(2002, 16, 10))
  3119.   hadd %h /^emsp$/540 $chr($base(2003, 16, 10))
  3120.   hadd %h /^emsp13$/541 $chr($base(2004, 16, 10))
  3121.   hadd %h /^emsp14$/542 $chr($base(2005, 16, 10))
  3122.   hadd %h /^numsp$/543 $chr($base(2007, 16, 10))
  3123.   hadd %h /^puncsp$/544 $chr($base(2008, 16, 10))
  3124.   hadd %h /^thinsp$/545 $chr($base(2009, 16, 10))
  3125.   hadd %h /^ThinSpace$/546 $chr($base(2009, 16, 10))
  3126.   hadd %h /^hairsp$/547 $chr($base(200A, 16, 10))
  3127.   hadd %h /^VeryThinSpace$/548 $chr($base(200A, 16, 10))
  3128.   hadd %h /^ZeroWidthSpace$/549 $chr($base(200B, 16, 10))
  3129.   hadd %h /^NegativeVeryThinSpace$/550 $chr($base(200B, 16, 10))
  3130.   hadd %h /^NegativeThinSpace$/551 $chr($base(200B, 16, 10))
  3131.   hadd %h /^NegativeMediumSpace$/552 $chr($base(200B, 16, 10))
  3132.   hadd %h /^NegativeThickSpace$/553 $chr($base(200B, 16, 10))
  3133.   hadd %h /^zwnj$/554 $chr($base(200C, 16, 10))
  3134.   hadd %h /^zwj$/555 $chr($base(200D, 16, 10))
  3135.   hadd %h /^lrm$/556 $chr($base(200E, 16, 10))
  3136.   hadd %h /^rlm$/557 $chr($base(200F, 16, 10))
  3137.   hadd %h /^hyphen$/558 $chr($base(2010, 16, 10))
  3138.   hadd %h /^dash$/559 $chr($base(2010, 16, 10))
  3139.   hadd %h /^ndash$/560 $chr($base(2013, 16, 10))
  3140.   hadd %h /^mdash$/561 $chr($base(2014, 16, 10))
  3141.   hadd %h /^horbar$/562 $chr($base(2015, 16, 10))
  3142.   hadd %h /^Verbar$/563 $chr($base(2016, 16, 10))
  3143.   hadd %h /^Vert$/564 $chr($base(2016, 16, 10))
  3144.   hadd %h /^lsquo$/565 $chr($base(2018, 16, 10))
  3145.   hadd %h /^OpenCurlyQuote$/566 $chr($base(2018, 16, 10))
  3146.   hadd %h /^rsquo$/567 $chr($base(2019, 16, 10))
  3147.   hadd %h /^rsquor$/568 $chr($base(2019, 16, 10))
  3148.   hadd %h /^CloseCurlyQuote$/569 $chr($base(2019, 16, 10))
  3149.   hadd %h /^lsquor$/570 $chr($base(201A, 16, 10))
  3150.   hadd %h /^sbquo$/571 $chr($base(201A, 16, 10))
  3151.   hadd %h /^ldquo$/572 $chr($base(201C, 16, 10))
  3152.   hadd %h /^OpenCurlyDoubleQuote$/573 $chr($base(201C, 16, 10))
  3153.   hadd %h /^rdquo$/574 $chr($base(201D, 16, 10))
  3154.   hadd %h /^rdquor$/575 $chr($base(201D, 16, 10))
  3155.   hadd %h /^CloseCurlyDoubleQuote$/576 $chr($base(201D, 16, 10))
  3156.   hadd %h /^ldquor$/577 $chr($base(201E, 16, 10))
  3157.   hadd %h /^bdquo$/578 $chr($base(201E, 16, 10))
  3158.   hadd %h /^dagger$/579 $chr($base(2020, 16, 10))
  3159.   hadd %h /^Dagger$/580 $chr($base(2021, 16, 10))
  3160.   hadd %h /^ddagger$/581 $chr($base(2021, 16, 10))
  3161.   hadd %h /^bull$/582 $chr($base(2022, 16, 10))
  3162.   hadd %h /^bullet$/583 $chr($base(2022, 16, 10))
  3163.   hadd %h /^nldr$/584 $chr($base(2025, 16, 10))
  3164.   hadd %h /^hellip$/585 $chr($base(2026, 16, 10))
  3165.   hadd %h /^mldr$/586 $chr($base(2026, 16, 10))
  3166.   hadd %h /^permil$/587 $chr($base(2030, 16, 10))
  3167.   hadd %h /^pertenk$/588 $chr($base(2031, 16, 10))
  3168.   hadd %h /^prime$/589 $chr($base(2032, 16, 10))
  3169.   hadd %h /^Prime$/590 $chr($base(2033, 16, 10))
  3170.   hadd %h /^tprime$/591 $chr($base(2034, 16, 10))
  3171.   hadd %h /^bprime$/592 $chr($base(2035, 16, 10))
  3172.   hadd %h /^backprime$/593 $chr($base(2035, 16, 10))
  3173.   hadd %h /^lsaquo$/594 $chr($base(2039, 16, 10))
  3174.   hadd %h /^rsaquo$/595 $chr($base(203A, 16, 10))
  3175.   hadd %h /^oline$/596 $chr($base(203E, 16, 10))
  3176.   hadd %h /^OverBar$/597 $chr($base(203E, 16, 10))
  3177.   hadd %h /^caret$/598 $chr($base(2041, 16, 10))
  3178.   hadd %h /^hybull$/599 $chr($base(2043, 16, 10))
  3179.   hadd %h /^frasl$/600 $chr($base(2044, 16, 10))
  3180.   hadd %h /^bsemi$/601 $chr($base(204F, 16, 10))
  3181.   hadd %h /^qprime$/602 $chr($base(2057, 16, 10))
  3182.   hadd %h /^MediumSpace$/603 $chr($base(205F, 16, 10))
  3183.   hadd %h /^ThickSpace$/604 $chr($base(205F, 16, 10)) $+ $chr($base(200A, 16, 10))
  3184.   hadd %h /^NoBreak$/605 $chr($base(2060, 16, 10))
  3185.   hadd %h /^ApplyFunction$/606 $chr($base(2061, 16, 10))
  3186.   hadd %h /^af$/607 $chr($base(2061, 16, 10))
  3187.   hadd %h /^InvisibleTimes$/608 $chr($base(2062, 16, 10))
  3188.   hadd %h /^it$/609 $chr($base(2062, 16, 10))
  3189.   hadd %h /^InvisibleComma$/610 $chr($base(2063, 16, 10))
  3190.   hadd %h /^ic$/611 $chr($base(2063, 16, 10))
  3191.   hadd %h /^euro$/612 $chr($base(20AC, 16, 10))
  3192.   hadd %h /^tdot$/613 $chr($base(20DB, 16, 10))
  3193.   hadd %h /^TripleDot$/614 $chr($base(20DB, 16, 10))
  3194.   hadd %h /^DotDot$/615 $chr($base(20DC, 16, 10))
  3195.   hadd %h /^Copf$/616 $chr($base(2102, 16, 10))
  3196.   hadd %h /^complexes$/617 $chr($base(2102, 16, 10))
  3197.   hadd %h /^incare$/618 $chr($base(2105, 16, 10))
  3198.   hadd %h /^gscr$/619 $chr($base(210A, 16, 10))
  3199.   hadd %h /^hamilt$/620 $chr($base(210B, 16, 10))
  3200.   hadd %h /^HilbertSpace$/621 $chr($base(210B, 16, 10))
  3201.   hadd %h /^Hscr$/622 $chr($base(210B, 16, 10))
  3202.   hadd %h /^Hfr$/623 $chr($base(210C, 16, 10))
  3203.   hadd %h /^Poincareplane$/624 $chr($base(210C, 16, 10))
  3204.   hadd %h /^quaternions$/625 $chr($base(210D, 16, 10))
  3205.   hadd %h /^Hopf$/626 $chr($base(210D, 16, 10))
  3206.   hadd %h /^planckh$/627 $chr($base(210E, 16, 10))
  3207.   hadd %h /^planck$/628 $chr($base(210F, 16, 10))
  3208.   hadd %h /^hbar$/629 $chr($base(210F, 16, 10))
  3209.   hadd %h /^plankv$/630 $chr($base(210F, 16, 10))
  3210.   hadd %h /^hslash$/631 $chr($base(210F, 16, 10))
  3211.   hadd %h /^Iscr$/632 $chr($base(2110, 16, 10))
  3212.   hadd %h /^imagline$/633 $chr($base(2110, 16, 10))
  3213.   hadd %h /^image$/634 $chr($base(2111, 16, 10))
  3214.   hadd %h /^Im$/635 $chr($base(2111, 16, 10))
  3215.   hadd %h /^imagpart$/636 $chr($base(2111, 16, 10))
  3216.   hadd %h /^Ifr$/637 $chr($base(2111, 16, 10))
  3217.   hadd %h /^Lscr$/638 $chr($base(2112, 16, 10))
  3218.   hadd %h /^lagran$/639 $chr($base(2112, 16, 10))
  3219.   hadd %h /^Laplacetrf$/640 $chr($base(2112, 16, 10))
  3220.   hadd %h /^ell$/641 $chr($base(2113, 16, 10))
  3221.   hadd %h /^Nopf$/642 $chr($base(2115, 16, 10))
  3222.   hadd %h /^naturals$/643 $chr($base(2115, 16, 10))
  3223.   hadd %h /^numero$/644 $chr($base(2116, 16, 10))
  3224.   hadd %h /^copysr$/645 $chr($base(2117, 16, 10))
  3225.   hadd %h /^weierp$/646 $chr($base(2118, 16, 10))
  3226.   hadd %h /^wp$/647 $chr($base(2118, 16, 10))
  3227.   hadd %h /^Popf$/648 $chr($base(2119, 16, 10))
  3228.   hadd %h /^primes$/649 $chr($base(2119, 16, 10))
  3229.   hadd %h /^rationals$/650 $chr($base(211A, 16, 10))
  3230.   hadd %h /^Qopf$/651 $chr($base(211A, 16, 10))
  3231.   hadd %h /^Rscr$/652 $chr($base(211B, 16, 10))
  3232.   hadd %h /^realine$/653 $chr($base(211B, 16, 10))
  3233.   hadd %h /^real$/654 $chr($base(211C, 16, 10))
  3234.   hadd %h /^Re$/655 $chr($base(211C, 16, 10))
  3235.   hadd %h /^realpart$/656 $chr($base(211C, 16, 10))
  3236.   hadd %h /^Rfr$/657 $chr($base(211C, 16, 10))
  3237.   hadd %h /^reals$/658 $chr($base(211D, 16, 10))
  3238.   hadd %h /^Ropf$/659 $chr($base(211D, 16, 10))
  3239.   hadd %h /^rx$/660 $chr($base(211E, 16, 10))
  3240.   hadd %h /^trade$/661 $chr($base(2122, 16, 10))
  3241.   hadd %h /^TRADE$/662 $chr($base(2122, 16, 10))
  3242.   hadd %h /^integers$/663 $chr($base(2124, 16, 10))
  3243.   hadd %h /^Zopf$/664 $chr($base(2124, 16, 10))
  3244.   hadd %h /^mho$/665 $chr($base(2127, 16, 10))
  3245.   hadd %h /^Zfr$/666 $chr($base(2128, 16, 10))
  3246.   hadd %h /^zeetrf$/667 $chr($base(2128, 16, 10))
  3247.   hadd %h /^iiota$/668 $chr($base(2129, 16, 10))
  3248.   hadd %h /^bernou$/669 $chr($base(212C, 16, 10))
  3249.   hadd %h /^Bernoullis$/670 $chr($base(212C, 16, 10))
  3250.   hadd %h /^Bscr$/671 $chr($base(212C, 16, 10))
  3251.   hadd %h /^Cfr$/672 $chr($base(212D, 16, 10))
  3252.   hadd %h /^Cayleys$/673 $chr($base(212D, 16, 10))
  3253.   hadd %h /^escr$/674 $chr($base(212F, 16, 10))
  3254.   hadd %h /^Escr$/675 $chr($base(2130, 16, 10))
  3255.   hadd %h /^expectation$/676 $chr($base(2130, 16, 10))
  3256.   hadd %h /^Fscr$/677 $chr($base(2131, 16, 10))
  3257.   hadd %h /^Fouriertrf$/678 $chr($base(2131, 16, 10))
  3258.   hadd %h /^phmmat$/679 $chr($base(2133, 16, 10))
  3259.   hadd %h /^Mellintrf$/680 $chr($base(2133, 16, 10))
  3260.   hadd %h /^Mscr$/681 $chr($base(2133, 16, 10))
  3261.   hadd %h /^order$/682 $chr($base(2134, 16, 10))
  3262.   hadd %h /^orderof$/683 $chr($base(2134, 16, 10))
  3263.   hadd %h /^oscr$/684 $chr($base(2134, 16, 10))
  3264.   hadd %h /^alefsym$/685 $chr($base(2135, 16, 10))
  3265.   hadd %h /^aleph$/686 $chr($base(2135, 16, 10))
  3266.   hadd %h /^beth$/687 $chr($base(2136, 16, 10))
  3267.   hadd %h /^gimel$/688 $chr($base(2137, 16, 10))
  3268.   hadd %h /^daleth$/689 $chr($base(2138, 16, 10))
  3269.   hadd %h /^CapitalDifferentialD$/690 $chr($base(2145, 16, 10))
  3270.   hadd %h /^DD$/691 $chr($base(2145, 16, 10))
  3271.   hadd %h /^DifferentialD$/692 $chr($base(2146, 16, 10))
  3272.   hadd %h /^dd$/693 $chr($base(2146, 16, 10))
  3273.   hadd %h /^ExponentialE$/694 $chr($base(2147, 16, 10))
  3274.   hadd %h /^exponentiale$/695 $chr($base(2147, 16, 10))
  3275.   hadd %h /^ee$/696 $chr($base(2147, 16, 10))
  3276.   hadd %h /^ImaginaryI$/697 $chr($base(2148, 16, 10))
  3277.   hadd %h /^ii$/698 $chr($base(2148, 16, 10))
  3278.   hadd %h /^frac13$/699 $chr($base(2153, 16, 10))
  3279.   hadd %h /^frac23$/700 $chr($base(2154, 16, 10))
  3280.   hadd %h /^frac15$/701 $chr($base(2155, 16, 10))
  3281.   hadd %h /^frac25$/702 $chr($base(2156, 16, 10))
  3282.   hadd %h /^frac35$/703 $chr($base(2157, 16, 10))
  3283.   hadd %h /^frac45$/704 $chr($base(2158, 16, 10))
  3284.   hadd %h /^frac16$/705 $chr($base(2159, 16, 10))
  3285.   hadd %h /^frac56$/706 $chr($base(215A, 16, 10))
  3286.   hadd %h /^frac18$/707 $chr($base(215B, 16, 10))
  3287.   hadd %h /^frac38$/708 $chr($base(215C, 16, 10))
  3288.   hadd %h /^frac58$/709 $chr($base(215D, 16, 10))
  3289.   hadd %h /^frac78$/710 $chr($base(215E, 16, 10))
  3290.   hadd %h /^larr$/711 $chr($base(2190, 16, 10))
  3291.   hadd %h /^leftarrow$/712 $chr($base(2190, 16, 10))
  3292.   hadd %h /^LeftArrow$/713 $chr($base(2190, 16, 10))
  3293.   hadd %h /^slarr$/714 $chr($base(2190, 16, 10))
  3294.   hadd %h /^ShortLeftArrow$/715 $chr($base(2190, 16, 10))
  3295.   hadd %h /^uarr$/716 $chr($base(2191, 16, 10))
  3296.   hadd %h /^uparrow$/717 $chr($base(2191, 16, 10))
  3297.   hadd %h /^UpArrow$/718 $chr($base(2191, 16, 10))
  3298.   hadd %h /^ShortUpArrow$/719 $chr($base(2191, 16, 10))
  3299.   hadd %h /^rarr$/720 $chr($base(2192, 16, 10))
  3300.   hadd %h /^rightarrow$/721 $chr($base(2192, 16, 10))
  3301.   hadd %h /^RightArrow$/722 $chr($base(2192, 16, 10))
  3302.   hadd %h /^srarr$/723 $chr($base(2192, 16, 10))
  3303.   hadd %h /^ShortRightArrow$/724 $chr($base(2192, 16, 10))
  3304.   hadd %h /^darr$/725 $chr($base(2193, 16, 10))
  3305.   hadd %h /^downarrow$/726 $chr($base(2193, 16, 10))
  3306.   hadd %h /^DownArrow$/727 $chr($base(2193, 16, 10))
  3307.   hadd %h /^ShortDownArrow$/728 $chr($base(2193, 16, 10))
  3308.   hadd %h /^harr$/729 $chr($base(2194, 16, 10))
  3309.   hadd %h /^leftrightarrow$/730 $chr($base(2194, 16, 10))
  3310.   hadd %h /^LeftRightArrow$/731 $chr($base(2194, 16, 10))
  3311.   hadd %h /^varr$/732 $chr($base(2195, 16, 10))
  3312.   hadd %h /^updownarrow$/733 $chr($base(2195, 16, 10))
  3313.   hadd %h /^UpDownArrow$/734 $chr($base(2195, 16, 10))
  3314.   hadd %h /^nwarr$/735 $chr($base(2196, 16, 10))
  3315.   hadd %h /^UpperLeftArrow$/736 $chr($base(2196, 16, 10))
  3316.   hadd %h /^nwarrow$/737 $chr($base(2196, 16, 10))
  3317.   hadd %h /^nearr$/738 $chr($base(2197, 16, 10))
  3318.   hadd %h /^UpperRightArrow$/739 $chr($base(2197, 16, 10))
  3319.   hadd %h /^nearrow$/740 $chr($base(2197, 16, 10))
  3320.   hadd %h /^searr$/741 $chr($base(2198, 16, 10))
  3321.   hadd %h /^searrow$/742 $chr($base(2198, 16, 10))
  3322.   hadd %h /^LowerRightArrow$/743 $chr($base(2198, 16, 10))
  3323.   hadd %h /^swarr$/744 $chr($base(2199, 16, 10))
  3324.   hadd %h /^swarrow$/745 $chr($base(2199, 16, 10))
  3325.   hadd %h /^LowerLeftArrow$/746 $chr($base(2199, 16, 10))
  3326.   hadd %h /^nlarr$/747 $chr($base(219A, 16, 10))
  3327.   hadd %h /^nleftarrow$/748 $chr($base(219A, 16, 10))
  3328.   hadd %h /^nrarr$/749 $chr($base(219B, 16, 10))
  3329.   hadd %h /^nrightarrow$/750 $chr($base(219B, 16, 10))
  3330.   hadd %h /^rarrw$/751 $chr($base(219D, 16, 10))
  3331.   hadd %h /^rightsquigarrow$/752 $chr($base(219D, 16, 10))
  3332.   hadd %h /^nrarrw$/753 $chr($base(219D, 16, 10)) $+ $chr($base(0338, 16, 10))
  3333.   hadd %h /^Larr$/754 $chr($base(219E, 16, 10))
  3334.   hadd %h /^twoheadleftarrow$/755 $chr($base(219E, 16, 10))
  3335.   hadd %h /^Uarr$/756 $chr($base(219F, 16, 10))
  3336.   hadd %h /^Rarr$/757 $chr($base(21A0, 16, 10))
  3337.   hadd %h /^twoheadrightarrow$/758 $chr($base(21A0, 16, 10))
  3338.   hadd %h /^Darr$/759 $chr($base(21A1, 16, 10))
  3339.   hadd %h /^larrtl$/760 $chr($base(21A2, 16, 10))
  3340.   hadd %h /^leftarrowtail$/761 $chr($base(21A2, 16, 10))
  3341.   hadd %h /^rarrtl$/762 $chr($base(21A3, 16, 10))
  3342.   hadd %h /^rightarrowtail$/763 $chr($base(21A3, 16, 10))
  3343.   hadd %h /^LeftTeeArrow$/764 $chr($base(21A4, 16, 10))
  3344.   hadd %h /^mapstoleft$/765 $chr($base(21A4, 16, 10))
  3345.   hadd %h /^UpTeeArrow$/766 $chr($base(21A5, 16, 10))
  3346.   hadd %h /^mapstoup$/767 $chr($base(21A5, 16, 10))
  3347.   hadd %h /^map$/768 $chr($base(21A6, 16, 10))
  3348.   hadd %h /^RightTeeArrow$/769 $chr($base(21A6, 16, 10))
  3349.   hadd %h /^mapsto$/770 $chr($base(21A6, 16, 10))
  3350.   hadd %h /^DownTeeArrow$/771 $chr($base(21A7, 16, 10))
  3351.   hadd %h /^mapstodown$/772 $chr($base(21A7, 16, 10))
  3352.   hadd %h /^larrhk$/773 $chr($base(21A9, 16, 10))
  3353.   hadd %h /^hookleftarrow$/774 $chr($base(21A9, 16, 10))
  3354.   hadd %h /^rarrhk$/775 $chr($base(21AA, 16, 10))
  3355.   hadd %h /^hookrightarrow$/776 $chr($base(21AA, 16, 10))
  3356.   hadd %h /^larrlp$/777 $chr($base(21AB, 16, 10))
  3357.   hadd %h /^looparrowleft$/778 $chr($base(21AB, 16, 10))
  3358.   hadd %h /^rarrlp$/779 $chr($base(21AC, 16, 10))
  3359.   hadd %h /^looparrowright$/780 $chr($base(21AC, 16, 10))
  3360.   hadd %h /^harrw$/781 $chr($base(21AD, 16, 10))
  3361.   hadd %h /^leftrightsquigarrow$/782 $chr($base(21AD, 16, 10))
  3362.   hadd %h /^nharr$/783 $chr($base(21AE, 16, 10))
  3363.   hadd %h /^nleftrightarrow$/784 $chr($base(21AE, 16, 10))
  3364.   hadd %h /^lsh$/785 $chr($base(21B0, 16, 10))
  3365.   hadd %h /^Lsh$/786 $chr($base(21B0, 16, 10))
  3366.   hadd %h /^rsh$/787 $chr($base(21B1, 16, 10))
  3367.   hadd %h /^Rsh$/788 $chr($base(21B1, 16, 10))
  3368.   hadd %h /^ldsh$/789 $chr($base(21B2, 16, 10))
  3369.   hadd %h /^rdsh$/790 $chr($base(21B3, 16, 10))
  3370.   hadd %h /^crarr$/791 $chr($base(21B5, 16, 10))
  3371.   hadd %h /^cularr$/792 $chr($base(21B6, 16, 10))
  3372.   hadd %h /^curvearrowleft$/793 $chr($base(21B6, 16, 10))
  3373.   hadd %h /^curarr$/794 $chr($base(21B7, 16, 10))
  3374.   hadd %h /^curvearrowright$/795 $chr($base(21B7, 16, 10))
  3375.   hadd %h /^olarr$/796 $chr($base(21BA, 16, 10))
  3376.   hadd %h /^circlearrowleft$/797 $chr($base(21BA, 16, 10))
  3377.   hadd %h /^orarr$/798 $chr($base(21BB, 16, 10))
  3378.   hadd %h /^circlearrowright$/799 $chr($base(21BB, 16, 10))
  3379.   hadd %h /^lharu$/800 $chr($base(21BC, 16, 10))
  3380.   hadd %h /^LeftVector$/801 $chr($base(21BC, 16, 10))
  3381.   hadd %h /^leftharpoonup$/802 $chr($base(21BC, 16, 10))
  3382.   hadd %h /^lhard$/803 $chr($base(21BD, 16, 10))
  3383.   hadd %h /^leftharpoondown$/804 $chr($base(21BD, 16, 10))
  3384.   hadd %h /^DownLeftVector$/805 $chr($base(21BD, 16, 10))
  3385.   hadd %h /^uharr$/806 $chr($base(21BE, 16, 10))
  3386.   hadd %h /^upharpoonright$/807 $chr($base(21BE, 16, 10))
  3387.   hadd %h /^RightUpVector$/808 $chr($base(21BE, 16, 10))
  3388.   hadd %h /^uharl$/809 $chr($base(21BF, 16, 10))
  3389.   hadd %h /^upharpoonleft$/810 $chr($base(21BF, 16, 10))
  3390.   hadd %h /^LeftUpVector$/811 $chr($base(21BF, 16, 10))
  3391.   hadd %h /^rharu$/812 $chr($base(21C0, 16, 10))
  3392.   hadd %h /^RightVector$/813 $chr($base(21C0, 16, 10))
  3393.   hadd %h /^rightharpoonup$/814 $chr($base(21C0, 16, 10))
  3394.   hadd %h /^rhard$/815 $chr($base(21C1, 16, 10))
  3395.   hadd %h /^rightharpoondown$/816 $chr($base(21C1, 16, 10))
  3396.   hadd %h /^DownRightVector$/817 $chr($base(21C1, 16, 10))
  3397.   hadd %h /^dharr$/818 $chr($base(21C2, 16, 10))
  3398.   hadd %h /^RightDownVector$/819 $chr($base(21C2, 16, 10))
  3399.   hadd %h /^downharpoonright$/820 $chr($base(21C2, 16, 10))
  3400.   hadd %h /^dharl$/821 $chr($base(21C3, 16, 10))
  3401.   hadd %h /^LeftDownVector$/822 $chr($base(21C3, 16, 10))
  3402.   hadd %h /^downharpoonleft$/823 $chr($base(21C3, 16, 10))
  3403.   hadd %h /^rlarr$/824 $chr($base(21C4, 16, 10))
  3404.   hadd %h /^rightleftarrows$/825 $chr($base(21C4, 16, 10))
  3405.   hadd %h /^RightArrowLeftArrow$/826 $chr($base(21C4, 16, 10))
  3406.   hadd %h /^udarr$/827 $chr($base(21C5, 16, 10))
  3407.   hadd %h /^UpArrowDownArrow$/828 $chr($base(21C5, 16, 10))
  3408.   hadd %h /^lrarr$/829 $chr($base(21C6, 16, 10))
  3409.   hadd %h /^leftrightarrows$/830 $chr($base(21C6, 16, 10))
  3410.   hadd %h /^LeftArrowRightArrow$/831 $chr($base(21C6, 16, 10))
  3411.   hadd %h /^llarr$/832 $chr($base(21C7, 16, 10))
  3412.   hadd %h /^leftleftarrows$/833 $chr($base(21C7, 16, 10))
  3413.   hadd %h /^uuarr$/834 $chr($base(21C8, 16, 10))
  3414.   hadd %h /^upuparrows$/835 $chr($base(21C8, 16, 10))
  3415.   hadd %h /^rrarr$/836 $chr($base(21C9, 16, 10))
  3416.   hadd %h /^rightrightarrows$/837 $chr($base(21C9, 16, 10))
  3417.   hadd %h /^ddarr$/838 $chr($base(21CA, 16, 10))
  3418.   hadd %h /^downdownarrows$/839 $chr($base(21CA, 16, 10))
  3419.   hadd %h /^lrhar$/840 $chr($base(21CB, 16, 10))
  3420.   hadd %h /^ReverseEquilibrium$/841 $chr($base(21CB, 16, 10))
  3421.   hadd %h /^leftrightharpoons$/842 $chr($base(21CB, 16, 10))
  3422.   hadd %h /^rlhar$/843 $chr($base(21CC, 16, 10))
  3423.   hadd %h /^rightleftharpoons$/844 $chr($base(21CC, 16, 10))
  3424.   hadd %h /^Equilibrium$/845 $chr($base(21CC, 16, 10))
  3425.   hadd %h /^nlArr$/846 $chr($base(21CD, 16, 10))
  3426.   hadd %h /^nLeftarrow$/847 $chr($base(21CD, 16, 10))
  3427.   hadd %h /^nhArr$/848 $chr($base(21CE, 16, 10))
  3428.   hadd %h /^nLeftrightarrow$/849 $chr($base(21CE, 16, 10))
  3429.   hadd %h /^nrArr$/850 $chr($base(21CF, 16, 10))
  3430.   hadd %h /^nRightarrow$/851 $chr($base(21CF, 16, 10))
  3431.   hadd %h /^lArr$/852 $chr($base(21D0, 16, 10))
  3432.   hadd %h /^Leftarrow$/853 $chr($base(21D0, 16, 10))
  3433.   hadd %h /^DoubleLeftArrow$/854 $chr($base(21D0, 16, 10))
  3434.   hadd %h /^uArr$/855 $chr($base(21D1, 16, 10))
  3435.   hadd %h /^Uparrow$/856 $chr($base(21D1, 16, 10))
  3436.   hadd %h /^DoubleUpArrow$/857 $chr($base(21D1, 16, 10))
  3437.   hadd %h /^rArr$/858 $chr($base(21D2, 16, 10))
  3438.   hadd %h /^Rightarrow$/859 $chr($base(21D2, 16, 10))
  3439.   hadd %h /^Implies$/860 $chr($base(21D2, 16, 10))
  3440.   hadd %h /^DoubleRightArrow$/861 $chr($base(21D2, 16, 10))
  3441.   hadd %h /^dArr$/862 $chr($base(21D3, 16, 10))
  3442.   hadd %h /^Downarrow$/863 $chr($base(21D3, 16, 10))
  3443.   hadd %h /^DoubleDownArrow$/864 $chr($base(21D3, 16, 10))
  3444.   hadd %h /^hArr$/865 $chr($base(21D4, 16, 10))
  3445.   hadd %h /^Leftrightarrow$/866 $chr($base(21D4, 16, 10))
  3446.   hadd %h /^DoubleLeftRightArrow$/867 $chr($base(21D4, 16, 10))
  3447.   hadd %h /^iff$/868 $chr($base(21D4, 16, 10))
  3448.   hadd %h /^vArr$/869 $chr($base(21D5, 16, 10))
  3449.   hadd %h /^Updownarrow$/870 $chr($base(21D5, 16, 10))
  3450.   hadd %h /^DoubleUpDownArrow$/871 $chr($base(21D5, 16, 10))
  3451.   hadd %h /^nwArr$/872 $chr($base(21D6, 16, 10))
  3452.   hadd %h /^neArr$/873 $chr($base(21D7, 16, 10))
  3453.   hadd %h /^seArr$/874 $chr($base(21D8, 16, 10))
  3454.   hadd %h /^swArr$/875 $chr($base(21D9, 16, 10))
  3455.   hadd %h /^lAarr$/876 $chr($base(21DA, 16, 10))
  3456.   hadd %h /^Lleftarrow$/877 $chr($base(21DA, 16, 10))
  3457.   hadd %h /^rAarr$/878 $chr($base(21DB, 16, 10))
  3458.   hadd %h /^Rrightarrow$/879 $chr($base(21DB, 16, 10))
  3459.   hadd %h /^zigrarr$/880 $chr($base(21DD, 16, 10))
  3460.   hadd %h /^larrb$/881 $chr($base(21E4, 16, 10))
  3461.   hadd %h /^LeftArrowBar$/882 $chr($base(21E4, 16, 10))
  3462.   hadd %h /^rarrb$/883 $chr($base(21E5, 16, 10))
  3463.   hadd %h /^RightArrowBar$/884 $chr($base(21E5, 16, 10))
  3464.   hadd %h /^duarr$/885 $chr($base(21F5, 16, 10))
  3465.   hadd %h /^DownArrowUpArrow$/886 $chr($base(21F5, 16, 10))
  3466.   hadd %h /^loarr$/887 $chr($base(21FD, 16, 10))
  3467.   hadd %h /^roarr$/888 $chr($base(21FE, 16, 10))
  3468.   hadd %h /^hoarr$/889 $chr($base(21FF, 16, 10))
  3469.   hadd %h /^forall$/890 $chr($base(2200, 16, 10))
  3470.   hadd %h /^ForAll$/891 $chr($base(2200, 16, 10))
  3471.   hadd %h /^comp$/892 $chr($base(2201, 16, 10))
  3472.   hadd %h /^complement$/893 $chr($base(2201, 16, 10))
  3473.   hadd %h /^part$/894 $chr($base(2202, 16, 10))
  3474.   hadd %h /^PartialD$/895 $chr($base(2202, 16, 10))
  3475.   hadd %h /^npart$/896 $chr($base(2202, 16, 10)) $+ $chr($base(0338, 16, 10))
  3476.   hadd %h /^exist$/897 $chr($base(2203, 16, 10))
  3477.   hadd %h /^Exists$/898 $chr($base(2203, 16, 10))
  3478.   hadd %h /^nexist$/899 $chr($base(2204, 16, 10))
  3479.   hadd %h /^NotExists$/900 $chr($base(2204, 16, 10))
  3480.   hadd %h /^nexists$/901 $chr($base(2204, 16, 10))
  3481.   hadd %h /^empty$/902 $chr($base(2205, 16, 10))
  3482.   hadd %h /^emptyset$/903 $chr($base(2205, 16, 10))
  3483.   hadd %h /^emptyv$/904 $chr($base(2205, 16, 10))
  3484.   hadd %h /^varnothing$/905 $chr($base(2205, 16, 10))
  3485.   hadd %h /^nabla$/906 $chr($base(2207, 16, 10))
  3486.   hadd %h /^Del$/907 $chr($base(2207, 16, 10))
  3487.   hadd %h /^isin$/908 $chr($base(2208, 16, 10))
  3488.   hadd %h /^isinv$/909 $chr($base(2208, 16, 10))
  3489.   hadd %h /^Element$/910 $chr($base(2208, 16, 10))
  3490.   hadd %h /^in$/911 $chr($base(2208, 16, 10))
  3491.   hadd %h /^notin$/912 $chr($base(2209, 16, 10))
  3492.   hadd %h /^NotElement$/913 $chr($base(2209, 16, 10))
  3493.   hadd %h /^notinva$/914 $chr($base(2209, 16, 10))
  3494.   hadd %h /^niv$/915 $chr($base(220B, 16, 10))
  3495.   hadd %h /^ReverseElement$/916 $chr($base(220B, 16, 10))
  3496.   hadd %h /^ni$/917 $chr($base(220B, 16, 10))
  3497.   hadd %h /^SuchThat$/918 $chr($base(220B, 16, 10))
  3498.   hadd %h /^notni$/919 $chr($base(220C, 16, 10))
  3499.   hadd %h /^notniva$/920 $chr($base(220C, 16, 10))
  3500.   hadd %h /^NotReverseElement$/921 $chr($base(220C, 16, 10))
  3501.   hadd %h /^prod$/922 $chr($base(220F, 16, 10))
  3502.   hadd %h /^Product$/923 $chr($base(220F, 16, 10))
  3503.   hadd %h /^coprod$/924 $chr($base(2210, 16, 10))
  3504.   hadd %h /^Coproduct$/925 $chr($base(2210, 16, 10))
  3505.   hadd %h /^sum$/926 $chr($base(2211, 16, 10))
  3506.   hadd %h /^Sum$/927 $chr($base(2211, 16, 10))
  3507.   hadd %h /^minus$/928 $chr($base(2212, 16, 10))
  3508.   hadd %h /^mnplus$/929 $chr($base(2213, 16, 10))
  3509.   hadd %h /^mp$/930 $chr($base(2213, 16, 10))
  3510.   hadd %h /^MinusPlus$/931 $chr($base(2213, 16, 10))
  3511.   hadd %h /^plusdo$/932 $chr($base(2214, 16, 10))
  3512.   hadd %h /^dotplus$/933 $chr($base(2214, 16, 10))
  3513.   hadd %h /^setmn$/934 $chr($base(2216, 16, 10))
  3514.   hadd %h /^setminus$/935 $chr($base(2216, 16, 10))
  3515.   hadd %h /^Backslash$/936 $chr($base(2216, 16, 10))
  3516.   hadd %h /^ssetmn$/937 $chr($base(2216, 16, 10))
  3517.   hadd %h /^smallsetminus$/938 $chr($base(2216, 16, 10))
  3518.   hadd %h /^lowast$/939 $chr($base(2217, 16, 10))
  3519.   hadd %h /^compfn$/940 $chr($base(2218, 16, 10))
  3520.   hadd %h /^SmallCircle$/941 $chr($base(2218, 16, 10))
  3521.   hadd %h /^radic$/942 $chr($base(221A, 16, 10))
  3522.   hadd %h /^Sqrt$/943 $chr($base(221A, 16, 10))
  3523.   hadd %h /^prop$/944 $chr($base(221D, 16, 10))
  3524.   hadd %h /^propto$/945 $chr($base(221D, 16, 10))
  3525.   hadd %h /^Proportional$/946 $chr($base(221D, 16, 10))
  3526.   hadd %h /^vprop$/947 $chr($base(221D, 16, 10))
  3527.   hadd %h /^varpropto$/948 $chr($base(221D, 16, 10))
  3528.   hadd %h /^infin$/949 $chr($base(221E, 16, 10))
  3529.   hadd %h /^angrt$/950 $chr($base(221F, 16, 10))
  3530.   hadd %h /^ang$/951 $chr($base(2220, 16, 10))
  3531.   hadd %h /^angle$/952 $chr($base(2220, 16, 10))
  3532.   hadd %h /^nang$/953 $chr($base(2220, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3533.   hadd %h /^angmsd$/954 $chr($base(2221, 16, 10))
  3534.   hadd %h /^measuredangle$/955 $chr($base(2221, 16, 10))
  3535.   hadd %h /^angsph$/956 $chr($base(2222, 16, 10))
  3536.   hadd %h /^mid$/957 $chr($base(2223, 16, 10))
  3537.   hadd %h /^VerticalBar$/958 $chr($base(2223, 16, 10))
  3538.   hadd %h /^smid$/959 $chr($base(2223, 16, 10))
  3539.   hadd %h /^shortmid$/960 $chr($base(2223, 16, 10))
  3540.   hadd %h /^nmid$/961 $chr($base(2224, 16, 10))
  3541.   hadd %h /^NotVerticalBar$/962 $chr($base(2224, 16, 10))
  3542.   hadd %h /^nsmid$/963 $chr($base(2224, 16, 10))
  3543.   hadd %h /^nshortmid$/964 $chr($base(2224, 16, 10))
  3544.   hadd %h /^par$/965 $chr($base(2225, 16, 10))
  3545.   hadd %h /^parallel$/966 $chr($base(2225, 16, 10))
  3546.   hadd %h /^DoubleVerticalBar$/967 $chr($base(2225, 16, 10))
  3547.   hadd %h /^spar$/968 $chr($base(2225, 16, 10))
  3548.   hadd %h /^shortparallel$/969 $chr($base(2225, 16, 10))
  3549.   hadd %h /^npar$/970 $chr($base(2226, 16, 10))
  3550.   hadd %h /^nparallel$/971 $chr($base(2226, 16, 10))
  3551.   hadd %h /^NotDoubleVerticalBar$/972 $chr($base(2226, 16, 10))
  3552.   hadd %h /^nspar$/973 $chr($base(2226, 16, 10))
  3553.   hadd %h /^nshortparallel$/974 $chr($base(2226, 16, 10))
  3554.   hadd %h /^and$/975 $chr($base(2227, 16, 10))
  3555.   hadd %h /^wedge$/976 $chr($base(2227, 16, 10))
  3556.   hadd %h /^or$/977 $chr($base(2228, 16, 10))
  3557.   hadd %h /^vee$/978 $chr($base(2228, 16, 10))
  3558.   hadd %h /^cap$/979 $chr($base(2229, 16, 10))
  3559.   hadd %h /^caps$/980 $chr($base(2229, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3560.   hadd %h /^cup$/981 $chr($base(222A, 16, 10))
  3561.   hadd %h /^cups$/982 $chr($base(222A, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3562.   hadd %h /^int$/983 $chr($base(222B, 16, 10))
  3563.   hadd %h /^Integral$/984 $chr($base(222B, 16, 10))
  3564.   hadd %h /^Int$/985 $chr($base(222C, 16, 10))
  3565.   hadd %h /^tint$/986 $chr($base(222D, 16, 10))
  3566.   hadd %h /^iiint$/987 $chr($base(222D, 16, 10))
  3567.   hadd %h /^conint$/988 $chr($base(222E, 16, 10))
  3568.   hadd %h /^oint$/989 $chr($base(222E, 16, 10))
  3569.   hadd %h /^ContourIntegral$/990 $chr($base(222E, 16, 10))
  3570.   hadd %h /^Conint$/991 $chr($base(222F, 16, 10))
  3571.   hadd %h /^DoubleContourIntegral$/992 $chr($base(222F, 16, 10))
  3572.   hadd %h /^Cconint$/993 $chr($base(2230, 16, 10))
  3573.   hadd %h /^cwint$/994 $chr($base(2231, 16, 10))
  3574.   hadd %h /^cwconint$/995 $chr($base(2232, 16, 10))
  3575.   hadd %h /^ClockwiseContourIntegral$/996 $chr($base(2232, 16, 10))
  3576.   hadd %h /^awconint$/997 $chr($base(2233, 16, 10))
  3577.   hadd %h /^CounterClockwiseContourIntegral$/998 $chr($base(2233, 16, 10))
  3578.   hadd %h /^there4$/999 $chr($base(2234, 16, 10))
  3579.   hadd %h /^therefore$/1000 $chr($base(2234, 16, 10))
  3580.   hadd %h /^Therefore$/1001 $chr($base(2234, 16, 10))
  3581.   hadd %h /^becaus$/1002 $chr($base(2235, 16, 10))
  3582.   hadd %h /^because$/1003 $chr($base(2235, 16, 10))
  3583.   hadd %h /^Because$/1004 $chr($base(2235, 16, 10))
  3584.   hadd %h /^ratio$/1005 $chr($base(2236, 16, 10))
  3585.   hadd %h /^Colon$/1006 $chr($base(2237, 16, 10))
  3586.   hadd %h /^Proportion$/1007 $chr($base(2237, 16, 10))
  3587.   hadd %h /^minusd$/1008 $chr($base(2238, 16, 10))
  3588.   hadd %h /^dotminus$/1009 $chr($base(2238, 16, 10))
  3589.   hadd %h /^mDDot$/1010 $chr($base(223A, 16, 10))
  3590.   hadd %h /^homtht$/1011 $chr($base(223B, 16, 10))
  3591.   hadd %h /^sim$/1012 $chr($base(223C, 16, 10))
  3592.   hadd %h /^Tilde$/1013 $chr($base(223C, 16, 10))
  3593.   hadd %h /^thksim$/1014 $chr($base(223C, 16, 10))
  3594.   hadd %h /^thicksim$/1015 $chr($base(223C, 16, 10))
  3595.   hadd %h /^nvsim$/1016 $chr($base(223C, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3596.   hadd %h /^bsim$/1017 $chr($base(223D, 16, 10))
  3597.   hadd %h /^backsim$/1018 $chr($base(223D, 16, 10))
  3598.   hadd %h /^race$/1019 $chr($base(223D, 16, 10)) $+ $chr($base(0331, 16, 10))
  3599.   hadd %h /^ac$/1020 $chr($base(223E, 16, 10))
  3600.   hadd %h /^mstpos$/1021 $chr($base(223E, 16, 10))
  3601.   hadd %h /^acE$/1022 $chr($base(223E, 16, 10)) $+ $chr($base(0333, 16, 10))
  3602.   hadd %h /^acd$/1023 $chr($base(223F, 16, 10))
  3603.   hadd %h /^wreath$/1024 $chr($base(2240, 16, 10))
  3604.   hadd %h /^VerticalTilde$/1025 $chr($base(2240, 16, 10))
  3605.   hadd %h /^wr$/1026 $chr($base(2240, 16, 10))
  3606.   hadd %h /^nsim$/1027 $chr($base(2241, 16, 10))
  3607.   hadd %h /^NotTilde$/1028 $chr($base(2241, 16, 10))
  3608.   hadd %h /^esim$/1029 $chr($base(2242, 16, 10))
  3609.   hadd %h /^EqualTilde$/1030 $chr($base(2242, 16, 10))
  3610.   hadd %h /^eqsim$/1031 $chr($base(2242, 16, 10))
  3611.   hadd %h /^NotEqualTilde$/1032 $chr($base(2242, 16, 10)) $+ $chr($base(0338, 16, 10))
  3612.   hadd %h /^nesim$/1033 $chr($base(2242, 16, 10)) $+ $chr($base(0338, 16, 10))
  3613.   hadd %h /^sime$/1034 $chr($base(2243, 16, 10))
  3614.   hadd %h /^TildeEqual$/1035 $chr($base(2243, 16, 10))
  3615.   hadd %h /^simeq$/1036 $chr($base(2243, 16, 10))
  3616.   hadd %h /^nsime$/1037 $chr($base(2244, 16, 10))
  3617.   hadd %h /^nsimeq$/1038 $chr($base(2244, 16, 10))
  3618.   hadd %h /^NotTildeEqual$/1039 $chr($base(2244, 16, 10))
  3619.   hadd %h /^cong$/1040 $chr($base(2245, 16, 10))
  3620.   hadd %h /^TildeFullEqual$/1041 $chr($base(2245, 16, 10))
  3621.   hadd %h /^simne$/1042 $chr($base(2246, 16, 10))
  3622.   hadd %h /^ncong$/1043 $chr($base(2247, 16, 10))
  3623.   hadd %h /^NotTildeFullEqual$/1044 $chr($base(2247, 16, 10))
  3624.   hadd %h /^asymp$/1045 $chr($base(2248, 16, 10))
  3625.   hadd %h /^ap$/1046 $chr($base(2248, 16, 10))
  3626.   hadd %h /^TildeTilde$/1047 $chr($base(2248, 16, 10))
  3627.   hadd %h /^approx$/1048 $chr($base(2248, 16, 10))
  3628.   hadd %h /^thkap$/1049 $chr($base(2248, 16, 10))
  3629.   hadd %h /^thickapprox$/1050 $chr($base(2248, 16, 10))
  3630.   hadd %h /^nap$/1051 $chr($base(2249, 16, 10))
  3631.   hadd %h /^NotTildeTilde$/1052 $chr($base(2249, 16, 10))
  3632.   hadd %h /^napprox$/1053 $chr($base(2249, 16, 10))
  3633.   hadd %h /^ape$/1054 $chr($base(224A, 16, 10))
  3634.   hadd %h /^approxeq$/1055 $chr($base(224A, 16, 10))
  3635.   hadd %h /^apid$/1056 $chr($base(224B, 16, 10))
  3636.   hadd %h /^napid$/1057 $chr($base(224B, 16, 10)) $+ $chr($base(0338, 16, 10))
  3637.   hadd %h /^bcong$/1058 $chr($base(224C, 16, 10))
  3638.   hadd %h /^backcong$/1059 $chr($base(224C, 16, 10))
  3639.   hadd %h /^asympeq$/1060 $chr($base(224D, 16, 10))
  3640.   hadd %h /^CupCap$/1061 $chr($base(224D, 16, 10))
  3641.   hadd %h /^nvap$/1062 $chr($base(224D, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3642.   hadd %h /^bump$/1063 $chr($base(224E, 16, 10))
  3643.   hadd %h /^HumpDownHump$/1064 $chr($base(224E, 16, 10))
  3644.   hadd %h /^Bumpeq$/1065 $chr($base(224E, 16, 10))
  3645.   hadd %h /^NotHumpDownHump$/1066 $chr($base(224E, 16, 10)) $+ $chr($base(0338, 16, 10))
  3646.   hadd %h /^nbump$/1067 $chr($base(224E, 16, 10)) $+ $chr($base(0338, 16, 10))
  3647.   hadd %h /^bumpe$/1068 $chr($base(224F, 16, 10))
  3648.   hadd %h /^HumpEqual$/1069 $chr($base(224F, 16, 10))
  3649.   hadd %h /^bumpeq$/1070 $chr($base(224F, 16, 10))
  3650.   hadd %h /^nbumpe$/1071 $chr($base(224F, 16, 10)) $+ $chr($base(0338, 16, 10))
  3651.   hadd %h /^NotHumpEqual$/1072 $chr($base(224F, 16, 10)) $+ $chr($base(0338, 16, 10))
  3652.   hadd %h /^esdot$/1073 $chr($base(2250, 16, 10))
  3653.   hadd %h /^DotEqual$/1074 $chr($base(2250, 16, 10))
  3654.   hadd %h /^doteq$/1075 $chr($base(2250, 16, 10))
  3655.   hadd %h /^nedot$/1076 $chr($base(2250, 16, 10)) $+ $chr($base(0338, 16, 10))
  3656.   hadd %h /^eDot$/1077 $chr($base(2251, 16, 10))
  3657.   hadd %h /^doteqdot$/1078 $chr($base(2251, 16, 10))
  3658.   hadd %h /^efDot$/1079 $chr($base(2252, 16, 10))
  3659.   hadd %h /^fallingdotseq$/1080 $chr($base(2252, 16, 10))
  3660.   hadd %h /^erDot$/1081 $chr($base(2253, 16, 10))
  3661.   hadd %h /^risingdotseq$/1082 $chr($base(2253, 16, 10))
  3662.   hadd %h /^colone$/1083 $chr($base(2254, 16, 10))
  3663.   hadd %h /^coloneq$/1084 $chr($base(2254, 16, 10))
  3664.   hadd %h /^Assign$/1085 $chr($base(2254, 16, 10))
  3665.   hadd %h /^ecolon$/1086 $chr($base(2255, 16, 10))
  3666.   hadd %h /^eqcolon$/1087 $chr($base(2255, 16, 10))
  3667.   hadd %h /^ecir$/1088 $chr($base(2256, 16, 10))
  3668.   hadd %h /^eqcirc$/1089 $chr($base(2256, 16, 10))
  3669.   hadd %h /^cire$/1090 $chr($base(2257, 16, 10))
  3670.   hadd %h /^circeq$/1091 $chr($base(2257, 16, 10))
  3671.   hadd %h /^wedgeq$/1092 $chr($base(2259, 16, 10))
  3672.   hadd %h /^veeeq$/1093 $chr($base(225A, 16, 10))
  3673.   hadd %h /^trie$/1094 $chr($base(225C, 16, 10))
  3674.   hadd %h /^triangleq$/1095 $chr($base(225C, 16, 10))
  3675.   hadd %h /^equest$/1096 $chr($base(225F, 16, 10))
  3676.   hadd %h /^questeq$/1097 $chr($base(225F, 16, 10))
  3677.   hadd %h /^ne$/1098 $chr($base(2260, 16, 10))
  3678.   hadd %h /^NotEqual$/1099 $chr($base(2260, 16, 10))
  3679.   hadd %h /^equiv$/1100 $chr($base(2261, 16, 10))
  3680.   hadd %h /^Congruent$/1101 $chr($base(2261, 16, 10))
  3681.   hadd %h /^bnequiv$/1102 $chr($base(2261, 16, 10)) $+ $chr($base(20E5, 16, 10))
  3682.   hadd %h /^nequiv$/1103 $chr($base(2262, 16, 10))
  3683.   hadd %h /^NotCongruent$/1104 $chr($base(2262, 16, 10))
  3684.   hadd %h /^le$/1105 $chr($base(2264, 16, 10))
  3685.   hadd %h /^leq$/1106 $chr($base(2264, 16, 10))
  3686.   hadd %h /^nvle$/1107 $chr($base(2264, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3687.   hadd %h /^ge$/1108 $chr($base(2265, 16, 10))
  3688.   hadd %h /^GreaterEqual$/1109 $chr($base(2265, 16, 10))
  3689.   hadd %h /^geq$/1110 $chr($base(2265, 16, 10))
  3690.   hadd %h /^nvge$/1111 $chr($base(2265, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3691.   hadd %h /^lE$/1112 $chr($base(2266, 16, 10))
  3692.   hadd %h /^LessFullEqual$/1113 $chr($base(2266, 16, 10))
  3693.   hadd %h /^leqq$/1114 $chr($base(2266, 16, 10))
  3694.   hadd %h /^nlE$/1115 $chr($base(2266, 16, 10)) $+ $chr($base(0338, 16, 10))
  3695.   hadd %h /^nleqq$/1116 $chr($base(2266, 16, 10)) $+ $chr($base(0338, 16, 10))
  3696.   hadd %h /^gE$/1117 $chr($base(2267, 16, 10))
  3697.   hadd %h /^GreaterFullEqual$/1118 $chr($base(2267, 16, 10))
  3698.   hadd %h /^geqq$/1119 $chr($base(2267, 16, 10))
  3699.   hadd %h /^ngE$/1120 $chr($base(2267, 16, 10)) $+ $chr($base(0338, 16, 10))
  3700.   hadd %h /^ngeqq$/1121 $chr($base(2267, 16, 10)) $+ $chr($base(0338, 16, 10))
  3701.   hadd %h /^NotGreaterFullEqual$/1122 $chr($base(2267, 16, 10)) $+ $chr($base(0338, 16, 10))
  3702.   hadd %h /^lnE$/1123 $chr($base(2268, 16, 10))
  3703.   hadd %h /^lneqq$/1124 $chr($base(2268, 16, 10))
  3704.   hadd %h /^lvnE$/1125 $chr($base(2268, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3705.   hadd %h /^lvertneqq$/1126 $chr($base(2268, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3706.   hadd %h /^gnE$/1127 $chr($base(2269, 16, 10))
  3707.   hadd %h /^gneqq$/1128 $chr($base(2269, 16, 10))
  3708.   hadd %h /^gvnE$/1129 $chr($base(2269, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3709.   hadd %h /^gvertneqq$/1130 $chr($base(2269, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3710.   hadd %h /^Lt$/1131 $chr($base(226A, 16, 10))
  3711.   hadd %h /^NestedLessLess$/1132 $chr($base(226A, 16, 10))
  3712.   hadd %h /^ll$/1133 $chr($base(226A, 16, 10))
  3713.   hadd %h /^nLtv$/1134 $chr($base(226A, 16, 10)) $+ $chr($base(0338, 16, 10))
  3714.   hadd %h /^NotLessLess$/1135 $chr($base(226A, 16, 10)) $+ $chr($base(0338, 16, 10))
  3715.   hadd %h /^nLt$/1136 $chr($base(226A, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3716.   hadd %h /^Gt$/1137 $chr($base(226B, 16, 10))
  3717.   hadd %h /^NestedGreaterGreater$/1138 $chr($base(226B, 16, 10))
  3718.   hadd %h /^gg$/1139 $chr($base(226B, 16, 10))
  3719.   hadd %h /^nGtv$/1140 $chr($base(226B, 16, 10)) $+ $chr($base(0338, 16, 10))
  3720.   hadd %h /^NotGreaterGreater$/1141 $chr($base(226B, 16, 10)) $+ $chr($base(0338, 16, 10))
  3721.   hadd %h /^nGt$/1142 $chr($base(226B, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3722.   hadd %h /^twixt$/1143 $chr($base(226C, 16, 10))
  3723.   hadd %h /^between$/1144 $chr($base(226C, 16, 10))
  3724.   hadd %h /^NotCupCap$/1145 $chr($base(226D, 16, 10))
  3725.   hadd %h /^nlt$/1146 $chr($base(226E, 16, 10))
  3726.   hadd %h /^NotLess$/1147 $chr($base(226E, 16, 10))
  3727.   hadd %h /^nless$/1148 $chr($base(226E, 16, 10))
  3728.   hadd %h /^ngt$/1149 $chr($base(226F, 16, 10))
  3729.   hadd %h /^NotGreater$/1150 $chr($base(226F, 16, 10))
  3730.   hadd %h /^ngtr$/1151 $chr($base(226F, 16, 10))
  3731.   hadd %h /^nle$/1152 $chr($base(2270, 16, 10))
  3732.   hadd %h /^NotLessEqual$/1153 $chr($base(2270, 16, 10))
  3733.   hadd %h /^nleq$/1154 $chr($base(2270, 16, 10))
  3734.   hadd %h /^nge$/1155 $chr($base(2271, 16, 10))
  3735.   hadd %h /^NotGreaterEqual$/1156 $chr($base(2271, 16, 10))
  3736.   hadd %h /^ngeq$/1157 $chr($base(2271, 16, 10))
  3737.   hadd %h /^lsim$/1158 $chr($base(2272, 16, 10))
  3738.   hadd %h /^LessTilde$/1159 $chr($base(2272, 16, 10))
  3739.   hadd %h /^lesssim$/1160 $chr($base(2272, 16, 10))
  3740.   hadd %h /^gsim$/1161 $chr($base(2273, 16, 10))
  3741.   hadd %h /^gtrsim$/1162 $chr($base(2273, 16, 10))
  3742.   hadd %h /^GreaterTilde$/1163 $chr($base(2273, 16, 10))
  3743.   hadd %h /^nlsim$/1164 $chr($base(2274, 16, 10))
  3744.   hadd %h /^NotLessTilde$/1165 $chr($base(2274, 16, 10))
  3745.   hadd %h /^ngsim$/1166 $chr($base(2275, 16, 10))
  3746.   hadd %h /^NotGreaterTilde$/1167 $chr($base(2275, 16, 10))
  3747.   hadd %h /^lg$/1168 $chr($base(2276, 16, 10))
  3748.   hadd %h /^lessgtr$/1169 $chr($base(2276, 16, 10))
  3749.   hadd %h /^LessGreater$/1170 $chr($base(2276, 16, 10))
  3750.   hadd %h /^gl$/1171 $chr($base(2277, 16, 10))
  3751.   hadd %h /^gtrless$/1172 $chr($base(2277, 16, 10))
  3752.   hadd %h /^GreaterLess$/1173 $chr($base(2277, 16, 10))
  3753.   hadd %h /^ntlg$/1174 $chr($base(2278, 16, 10))
  3754.   hadd %h /^NotLessGreater$/1175 $chr($base(2278, 16, 10))
  3755.   hadd %h /^ntgl$/1176 $chr($base(2279, 16, 10))
  3756.   hadd %h /^NotGreaterLess$/1177 $chr($base(2279, 16, 10))
  3757.   hadd %h /^pr$/1178 $chr($base(227A, 16, 10))
  3758.   hadd %h /^Precedes$/1179 $chr($base(227A, 16, 10))
  3759.   hadd %h /^prec$/1180 $chr($base(227A, 16, 10))
  3760.   hadd %h /^sc$/1181 $chr($base(227B, 16, 10))
  3761.   hadd %h /^Succeeds$/1182 $chr($base(227B, 16, 10))
  3762.   hadd %h /^succ$/1183 $chr($base(227B, 16, 10))
  3763.   hadd %h /^prcue$/1184 $chr($base(227C, 16, 10))
  3764.   hadd %h /^PrecedesSlantEqual$/1185 $chr($base(227C, 16, 10))
  3765.   hadd %h /^preccurlyeq$/1186 $chr($base(227C, 16, 10))
  3766.   hadd %h /^sccue$/1187 $chr($base(227D, 16, 10))
  3767.   hadd %h /^SucceedsSlantEqual$/1188 $chr($base(227D, 16, 10))
  3768.   hadd %h /^succcurlyeq$/1189 $chr($base(227D, 16, 10))
  3769.   hadd %h /^prsim$/1190 $chr($base(227E, 16, 10))
  3770.   hadd %h /^precsim$/1191 $chr($base(227E, 16, 10))
  3771.   hadd %h /^PrecedesTilde$/1192 $chr($base(227E, 16, 10))
  3772.   hadd %h /^scsim$/1193 $chr($base(227F, 16, 10))
  3773.   hadd %h /^succsim$/1194 $chr($base(227F, 16, 10))
  3774.   hadd %h /^SucceedsTilde$/1195 $chr($base(227F, 16, 10))
  3775.   hadd %h /^NotSucceedsTilde$/1196 $chr($base(227F, 16, 10)) $+ $chr($base(0338, 16, 10))
  3776.   hadd %h /^npr$/1197 $chr($base(2280, 16, 10))
  3777.   hadd %h /^nprec$/1198 $chr($base(2280, 16, 10))
  3778.   hadd %h /^NotPrecedes$/1199 $chr($base(2280, 16, 10))
  3779.   hadd %h /^nsc$/1200 $chr($base(2281, 16, 10))
  3780.   hadd %h /^nsucc$/1201 $chr($base(2281, 16, 10))
  3781.   hadd %h /^NotSucceeds$/1202 $chr($base(2281, 16, 10))
  3782.   hadd %h /^sub$/1203 $chr($base(2282, 16, 10))
  3783.   hadd %h /^subset$/1204 $chr($base(2282, 16, 10))
  3784.   hadd %h /^vnsub$/1205 $chr($base(2282, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3785.   hadd %h /^nsubset$/1206 $chr($base(2282, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3786.   hadd %h /^NotSubset$/1207 $chr($base(2282, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3787.   hadd %h /^sup$/1208 $chr($base(2283, 16, 10))
  3788.   hadd %h /^supset$/1209 $chr($base(2283, 16, 10))
  3789.   hadd %h /^Superset$/1210 $chr($base(2283, 16, 10))
  3790.   hadd %h /^vnsup$/1211 $chr($base(2283, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3791.   hadd %h /^nsupset$/1212 $chr($base(2283, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3792.   hadd %h /^NotSuperset$/1213 $chr($base(2283, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3793.   hadd %h /^nsub$/1214 $chr($base(2284, 16, 10))
  3794.   hadd %h /^nsup$/1215 $chr($base(2285, 16, 10))
  3795.   hadd %h /^sube$/1216 $chr($base(2286, 16, 10))
  3796.   hadd %h /^SubsetEqual$/1217 $chr($base(2286, 16, 10))
  3797.   hadd %h /^subseteq$/1218 $chr($base(2286, 16, 10))
  3798.   hadd %h /^supe$/1219 $chr($base(2287, 16, 10))
  3799.   hadd %h /^supseteq$/1220 $chr($base(2287, 16, 10))
  3800.   hadd %h /^SupersetEqual$/1221 $chr($base(2287, 16, 10))
  3801.   hadd %h /^nsube$/1222 $chr($base(2288, 16, 10))
  3802.   hadd %h /^nsubseteq$/1223 $chr($base(2288, 16, 10))
  3803.   hadd %h /^NotSubsetEqual$/1224 $chr($base(2288, 16, 10))
  3804.   hadd %h /^nsupe$/1225 $chr($base(2289, 16, 10))
  3805.   hadd %h /^nsupseteq$/1226 $chr($base(2289, 16, 10))
  3806.   hadd %h /^NotSupersetEqual$/1227 $chr($base(2289, 16, 10))
  3807.   hadd %h /^subne$/1228 $chr($base(228A, 16, 10))
  3808.   hadd %h /^subsetneq$/1229 $chr($base(228A, 16, 10))
  3809.   hadd %h /^vsubne$/1230 $chr($base(228A, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3810.   hadd %h /^varsubsetneq$/1231 $chr($base(228A, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3811.   hadd %h /^supne$/1232 $chr($base(228B, 16, 10))
  3812.   hadd %h /^supsetneq$/1233 $chr($base(228B, 16, 10))
  3813.   hadd %h /^vsupne$/1234 $chr($base(228B, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3814.   hadd %h /^varsupsetneq$/1235 $chr($base(228B, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3815.   hadd %h /^cupdot$/1236 $chr($base(228D, 16, 10))
  3816.   hadd %h /^uplus$/1237 $chr($base(228E, 16, 10))
  3817.   hadd %h /^UnionPlus$/1238 $chr($base(228E, 16, 10))
  3818.   hadd %h /^sqsub$/1239 $chr($base(228F, 16, 10))
  3819.   hadd %h /^SquareSubset$/1240 $chr($base(228F, 16, 10))
  3820.   hadd %h /^sqsubset$/1241 $chr($base(228F, 16, 10))
  3821.   hadd %h /^NotSquareSubset$/1242 $chr($base(228F, 16, 10)) $+ $chr($base(0338, 16, 10))
  3822.   hadd %h /^sqsup$/1243 $chr($base(2290, 16, 10))
  3823.   hadd %h /^SquareSuperset$/1244 $chr($base(2290, 16, 10))
  3824.   hadd %h /^sqsupset$/1245 $chr($base(2290, 16, 10))
  3825.   hadd %h /^NotSquareSuperset$/1246 $chr($base(2290, 16, 10)) $+ $chr($base(0338, 16, 10))
  3826.   hadd %h /^sqsube$/1247 $chr($base(2291, 16, 10))
  3827.   hadd %h /^SquareSubsetEqual$/1248 $chr($base(2291, 16, 10))
  3828.   hadd %h /^sqsubseteq$/1249 $chr($base(2291, 16, 10))
  3829.   hadd %h /^sqsupe$/1250 $chr($base(2292, 16, 10))
  3830.   hadd %h /^SquareSupersetEqual$/1251 $chr($base(2292, 16, 10))
  3831.   hadd %h /^sqsupseteq$/1252 $chr($base(2292, 16, 10))
  3832.   hadd %h /^sqcap$/1253 $chr($base(2293, 16, 10))
  3833.   hadd %h /^SquareIntersection$/1254 $chr($base(2293, 16, 10))
  3834.   hadd %h /^sqcaps$/1255 $chr($base(2293, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3835.   hadd %h /^sqcup$/1256 $chr($base(2294, 16, 10))
  3836.   hadd %h /^SquareUnion$/1257 $chr($base(2294, 16, 10))
  3837.   hadd %h /^sqcups$/1258 $chr($base(2294, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3838.   hadd %h /^oplus$/1259 $chr($base(2295, 16, 10))
  3839.   hadd %h /^CirclePlus$/1260 $chr($base(2295, 16, 10))
  3840.   hadd %h /^ominus$/1261 $chr($base(2296, 16, 10))
  3841.   hadd %h /^CircleMinus$/1262 $chr($base(2296, 16, 10))
  3842.   hadd %h /^otimes$/1263 $chr($base(2297, 16, 10))
  3843.   hadd %h /^CircleTimes$/1264 $chr($base(2297, 16, 10))
  3844.   hadd %h /^osol$/1265 $chr($base(2298, 16, 10))
  3845.   hadd %h /^odot$/1266 $chr($base(2299, 16, 10))
  3846.   hadd %h /^CircleDot$/1267 $chr($base(2299, 16, 10))
  3847.   hadd %h /^ocir$/1268 $chr($base(229A, 16, 10))
  3848.   hadd %h /^circledcirc$/1269 $chr($base(229A, 16, 10))
  3849.   hadd %h /^oast$/1270 $chr($base(229B, 16, 10))
  3850.   hadd %h /^circledast$/1271 $chr($base(229B, 16, 10))
  3851.   hadd %h /^odash$/1272 $chr($base(229D, 16, 10))
  3852.   hadd %h /^circleddash$/1273 $chr($base(229D, 16, 10))
  3853.   hadd %h /^plusb$/1274 $chr($base(229E, 16, 10))
  3854.   hadd %h /^boxplus$/1275 $chr($base(229E, 16, 10))
  3855.   hadd %h /^minusb$/1276 $chr($base(229F, 16, 10))
  3856.   hadd %h /^boxminus$/1277 $chr($base(229F, 16, 10))
  3857.   hadd %h /^timesb$/1278 $chr($base(22A0, 16, 10))
  3858.   hadd %h /^boxtimes$/1279 $chr($base(22A0, 16, 10))
  3859.   hadd %h /^sdotb$/1280 $chr($base(22A1, 16, 10))
  3860.   hadd %h /^dotsquare$/1281 $chr($base(22A1, 16, 10))
  3861.   hadd %h /^vdash$/1282 $chr($base(22A2, 16, 10))
  3862.   hadd %h /^RightTee$/1283 $chr($base(22A2, 16, 10))
  3863.   hadd %h /^dashv$/1284 $chr($base(22A3, 16, 10))
  3864.   hadd %h /^LeftTee$/1285 $chr($base(22A3, 16, 10))
  3865.   hadd %h /^top$/1286 $chr($base(22A4, 16, 10))
  3866.   hadd %h /^DownTee$/1287 $chr($base(22A4, 16, 10))
  3867.   hadd %h /^bottom$/1288 $chr($base(22A5, 16, 10))
  3868.   hadd %h /^bot$/1289 $chr($base(22A5, 16, 10))
  3869.   hadd %h /^perp$/1290 $chr($base(22A5, 16, 10))
  3870.   hadd %h /^UpTee$/1291 $chr($base(22A5, 16, 10))
  3871.   hadd %h /^models$/1292 $chr($base(22A7, 16, 10))
  3872.   hadd %h /^vDash$/1293 $chr($base(22A8, 16, 10))
  3873.   hadd %h /^DoubleRightTee$/1294 $chr($base(22A8, 16, 10))
  3874.   hadd %h /^Vdash$/1295 $chr($base(22A9, 16, 10))
  3875.   hadd %h /^Vvdash$/1296 $chr($base(22AA, 16, 10))
  3876.   hadd %h /^VDash$/1297 $chr($base(22AB, 16, 10))
  3877.   hadd %h /^nvdash$/1298 $chr($base(22AC, 16, 10))
  3878.   hadd %h /^nvDash$/1299 $chr($base(22AD, 16, 10))
  3879.   hadd %h /^nVdash$/1300 $chr($base(22AE, 16, 10))
  3880.   hadd %h /^nVDash$/1301 $chr($base(22AF, 16, 10))
  3881.   hadd %h /^prurel$/1302 $chr($base(22B0, 16, 10))
  3882.   hadd %h /^vltri$/1303 $chr($base(22B2, 16, 10))
  3883.   hadd %h /^vartriangleleft$/1304 $chr($base(22B2, 16, 10))
  3884.   hadd %h /^LeftTriangle$/1305 $chr($base(22B2, 16, 10))
  3885.   hadd %h /^vrtri$/1306 $chr($base(22B3, 16, 10))
  3886.   hadd %h /^vartriangleright$/1307 $chr($base(22B3, 16, 10))
  3887.   hadd %h /^RightTriangle$/1308 $chr($base(22B3, 16, 10))
  3888.   hadd %h /^ltrie$/1309 $chr($base(22B4, 16, 10))
  3889.   hadd %h /^trianglelefteq$/1310 $chr($base(22B4, 16, 10))
  3890.   hadd %h /^LeftTriangleEqual$/1311 $chr($base(22B4, 16, 10))
  3891.   hadd %h /^nvltrie$/1312 $chr($base(22B4, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3892.   hadd %h /^rtrie$/1313 $chr($base(22B5, 16, 10))
  3893.   hadd %h /^trianglerighteq$/1314 $chr($base(22B5, 16, 10))
  3894.   hadd %h /^RightTriangleEqual$/1315 $chr($base(22B5, 16, 10))
  3895.   hadd %h /^nvrtrie$/1316 $chr($base(22B5, 16, 10)) $+ $chr($base(20D2, 16, 10))
  3896.   hadd %h /^origof$/1317 $chr($base(22B6, 16, 10))
  3897.   hadd %h /^imof$/1318 $chr($base(22B7, 16, 10))
  3898.   hadd %h /^mumap$/1319 $chr($base(22B8, 16, 10))
  3899.   hadd %h /^multimap$/1320 $chr($base(22B8, 16, 10))
  3900.   hadd %h /^hercon$/1321 $chr($base(22B9, 16, 10))
  3901.   hadd %h /^intcal$/1322 $chr($base(22BA, 16, 10))
  3902.   hadd %h /^intercal$/1323 $chr($base(22BA, 16, 10))
  3903.   hadd %h /^veebar$/1324 $chr($base(22BB, 16, 10))
  3904.   hadd %h /^barvee$/1325 $chr($base(22BD, 16, 10))
  3905.   hadd %h /^angrtvb$/1326 $chr($base(22BE, 16, 10))
  3906.   hadd %h /^lrtri$/1327 $chr($base(22BF, 16, 10))
  3907.   hadd %h /^xwedge$/1328 $chr($base(22C0, 16, 10))
  3908.   hadd %h /^Wedge$/1329 $chr($base(22C0, 16, 10))
  3909.   hadd %h /^bigwedge$/1330 $chr($base(22C0, 16, 10))
  3910.   hadd %h /^xvee$/1331 $chr($base(22C1, 16, 10))
  3911.   hadd %h /^Vee$/1332 $chr($base(22C1, 16, 10))
  3912.   hadd %h /^bigvee$/1333 $chr($base(22C1, 16, 10))
  3913.   hadd %h /^xcap$/1334 $chr($base(22C2, 16, 10))
  3914.   hadd %h /^Intersection$/1335 $chr($base(22C2, 16, 10))
  3915.   hadd %h /^bigcap$/1336 $chr($base(22C2, 16, 10))
  3916.   hadd %h /^xcup$/1337 $chr($base(22C3, 16, 10))
  3917.   hadd %h /^Union$/1338 $chr($base(22C3, 16, 10))
  3918.   hadd %h /^bigcup$/1339 $chr($base(22C3, 16, 10))
  3919.   hadd %h /^diam$/1340 $chr($base(22C4, 16, 10))
  3920.   hadd %h /^diamond$/1341 $chr($base(22C4, 16, 10))
  3921.   hadd %h /^Diamond$/1342 $chr($base(22C4, 16, 10))
  3922.   hadd %h /^sdot$/1343 $chr($base(22C5, 16, 10))
  3923.   hadd %h /^sstarf$/1344 $chr($base(22C6, 16, 10))
  3924.   hadd %h /^Star$/1345 $chr($base(22C6, 16, 10))
  3925.   hadd %h /^divonx$/1346 $chr($base(22C7, 16, 10))
  3926.   hadd %h /^divideontimes$/1347 $chr($base(22C7, 16, 10))
  3927.   hadd %h /^bowtie$/1348 $chr($base(22C8, 16, 10))
  3928.   hadd %h /^ltimes$/1349 $chr($base(22C9, 16, 10))
  3929.   hadd %h /^rtimes$/1350 $chr($base(22CA, 16, 10))
  3930.   hadd %h /^lthree$/1351 $chr($base(22CB, 16, 10))
  3931.   hadd %h /^leftthreetimes$/1352 $chr($base(22CB, 16, 10))
  3932.   hadd %h /^rthree$/1353 $chr($base(22CC, 16, 10))
  3933.   hadd %h /^rightthreetimes$/1354 $chr($base(22CC, 16, 10))
  3934.   hadd %h /^bsime$/1355 $chr($base(22CD, 16, 10))
  3935.   hadd %h /^backsimeq$/1356 $chr($base(22CD, 16, 10))
  3936.   hadd %h /^cuvee$/1357 $chr($base(22CE, 16, 10))
  3937.   hadd %h /^curlyvee$/1358 $chr($base(22CE, 16, 10))
  3938.   hadd %h /^cuwed$/1359 $chr($base(22CF, 16, 10))
  3939.   hadd %h /^curlywedge$/1360 $chr($base(22CF, 16, 10))
  3940.   hadd %h /^Sub$/1361 $chr($base(22D0, 16, 10))
  3941.   hadd %h /^Subset$/1362 $chr($base(22D0, 16, 10))
  3942.   hadd %h /^Sup$/1363 $chr($base(22D1, 16, 10))
  3943.   hadd %h /^Supset$/1364 $chr($base(22D1, 16, 10))
  3944.   hadd %h /^Cap$/1365 $chr($base(22D2, 16, 10))
  3945.   hadd %h /^Cup$/1366 $chr($base(22D3, 16, 10))
  3946.   hadd %h /^fork$/1367 $chr($base(22D4, 16, 10))
  3947.   hadd %h /^pitchfork$/1368 $chr($base(22D4, 16, 10))
  3948.   hadd %h /^epar$/1369 $chr($base(22D5, 16, 10))
  3949.   hadd %h /^ltdot$/1370 $chr($base(22D6, 16, 10))
  3950.   hadd %h /^lessdot$/1371 $chr($base(22D6, 16, 10))
  3951.   hadd %h /^gtdot$/1372 $chr($base(22D7, 16, 10))
  3952.   hadd %h /^gtrdot$/1373 $chr($base(22D7, 16, 10))
  3953.   hadd %h /^Ll$/1374 $chr($base(22D8, 16, 10))
  3954.   hadd %h /^nLl$/1375 $chr($base(22D8, 16, 10)) $+ $chr($base(0338, 16, 10))
  3955.   hadd %h /^Gg$/1376 $chr($base(22D9, 16, 10))
  3956.   hadd %h /^ggg$/1377 $chr($base(22D9, 16, 10))
  3957.   hadd %h /^nGg$/1378 $chr($base(22D9, 16, 10)) $+ $chr($base(0338, 16, 10))
  3958.   hadd %h /^leg$/1379 $chr($base(22DA, 16, 10))
  3959.   hadd %h /^LessEqualGreater$/1380 $chr($base(22DA, 16, 10))
  3960.   hadd %h /^lesseqgtr$/1381 $chr($base(22DA, 16, 10))
  3961.   hadd %h /^lesg$/1382 $chr($base(22DA, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3962.   hadd %h /^gel$/1383 $chr($base(22DB, 16, 10))
  3963.   hadd %h /^gtreqless$/1384 $chr($base(22DB, 16, 10))
  3964.   hadd %h /^GreaterEqualLess$/1385 $chr($base(22DB, 16, 10))
  3965.   hadd %h /^gesl$/1386 $chr($base(22DB, 16, 10)) $+ $chr($base(FE00, 16, 10))
  3966.   hadd %h /^cuepr$/1387 $chr($base(22DE, 16, 10))
  3967.   hadd %h /^curlyeqprec$/1388 $chr($base(22DE, 16, 10))
  3968.   hadd %h /^cuesc$/1389 $chr($base(22DF, 16, 10))
  3969.   hadd %h /^curlyeqsucc$/1390 $chr($base(22DF, 16, 10))
  3970.   hadd %h /^nprcue$/1391 $chr($base(22E0, 16, 10))
  3971.   hadd %h /^NotPrecedesSlantEqual$/1392 $chr($base(22E0, 16, 10))
  3972.   hadd %h /^nsccue$/1393 $chr($base(22E1, 16, 10))
  3973.   hadd %h /^NotSucceedsSlantEqual$/1394 $chr($base(22E1, 16, 10))
  3974.   hadd %h /^nsqsube$/1395 $chr($base(22E2, 16, 10))
  3975.   hadd %h /^NotSquareSubsetEqual$/1396 $chr($base(22E2, 16, 10))
  3976.   hadd %h /^nsqsupe$/1397 $chr($base(22E3, 16, 10))
  3977.   hadd %h /^NotSquareSupersetEqual$/1398 $chr($base(22E3, 16, 10))
  3978.   hadd %h /^lnsim$/1399 $chr($base(22E6, 16, 10))
  3979.   hadd %h /^gnsim$/1400 $chr($base(22E7, 16, 10))
  3980.   hadd %h /^prnsim$/1401 $chr($base(22E8, 16, 10))
  3981.   hadd %h /^precnsim$/1402 $chr($base(22E8, 16, 10))
  3982.   hadd %h /^scnsim$/1403 $chr($base(22E9, 16, 10))
  3983.   hadd %h /^succnsim$/1404 $chr($base(22E9, 16, 10))
  3984.   hadd %h /^nltri$/1405 $chr($base(22EA, 16, 10))
  3985.   hadd %h /^ntriangleleft$/1406 $chr($base(22EA, 16, 10))
  3986.   hadd %h /^NotLeftTriangle$/1407 $chr($base(22EA, 16, 10))
  3987.   hadd %h /^nrtri$/1408 $chr($base(22EB, 16, 10))
  3988.   hadd %h /^ntriangleright$/1409 $chr($base(22EB, 16, 10))
  3989.   hadd %h /^NotRightTriangle$/1410 $chr($base(22EB, 16, 10))
  3990.   hadd %h /^nltrie$/1411 $chr($base(22EC, 16, 10))
  3991.   hadd %h /^ntrianglelefteq$/1412 $chr($base(22EC, 16, 10))
  3992.   hadd %h /^NotLeftTriangleEqual$/1413 $chr($base(22EC, 16, 10))
  3993.   hadd %h /^nrtrie$/1414 $chr($base(22ED, 16, 10))
  3994.   hadd %h /^ntrianglerighteq$/1415 $chr($base(22ED, 16, 10))
  3995.   hadd %h /^NotRightTriangleEqual$/1416 $chr($base(22ED, 16, 10))
  3996.   hadd %h /^vellip$/1417 $chr($base(22EE, 16, 10))
  3997.   hadd %h /^ctdot$/1418 $chr($base(22EF, 16, 10))
  3998.   hadd %h /^utdot$/1419 $chr($base(22F0, 16, 10))
  3999.   hadd %h /^dtdot$/1420 $chr($base(22F1, 16, 10))
  4000.   hadd %h /^disin$/1421 $chr($base(22F2, 16, 10))
  4001.   hadd %h /^isinsv$/1422 $chr($base(22F3, 16, 10))
  4002.   hadd %h /^isins$/1423 $chr($base(22F4, 16, 10))
  4003.   hadd %h /^isindot$/1424 $chr($base(22F5, 16, 10))
  4004.   hadd %h /^notindot$/1425 $chr($base(22F5, 16, 10)) $+ $chr($base(0338, 16, 10))
  4005.   hadd %h /^notinvc$/1426 $chr($base(22F6, 16, 10))
  4006.   hadd %h /^notinvb$/1427 $chr($base(22F7, 16, 10))
  4007.   hadd %h /^isinE$/1428 $chr($base(22F9, 16, 10))
  4008.   hadd %h /^notinE$/1429 $chr($base(22F9, 16, 10)) $+ $chr($base(0338, 16, 10))
  4009.   hadd %h /^nisd$/1430 $chr($base(22FA, 16, 10))
  4010.   hadd %h /^xnis$/1431 $chr($base(22FB, 16, 10))
  4011.   hadd %h /^nis$/1432 $chr($base(22FC, 16, 10))
  4012.   hadd %h /^notnivc$/1433 $chr($base(22FD, 16, 10))
  4013.   hadd %h /^notnivb$/1434 $chr($base(22FE, 16, 10))
  4014.   hadd %h /^barwed$/1435 $chr($base(2305, 16, 10))
  4015.   hadd %h /^barwedge$/1436 $chr($base(2305, 16, 10))
  4016.   hadd %h /^Barwed$/1437 $chr($base(2306, 16, 10))
  4017.   hadd %h /^doublebarwedge$/1438 $chr($base(2306, 16, 10))
  4018.   hadd %h /^lceil$/1439 $chr($base(2308, 16, 10))
  4019.   hadd %h /^LeftCeiling$/1440 $chr($base(2308, 16, 10))
  4020.   hadd %h /^rceil$/1441 $chr($base(2309, 16, 10))
  4021.   hadd %h /^RightCeiling$/1442 $chr($base(2309, 16, 10))
  4022.   hadd %h /^lfloor$/1443 $chr($base(230A, 16, 10))
  4023.   hadd %h /^LeftFloor$/1444 $chr($base(230A, 16, 10))
  4024.   hadd %h /^rfloor$/1445 $chr($base(230B, 16, 10))
  4025.   hadd %h /^RightFloor$/1446 $chr($base(230B, 16, 10))
  4026.   hadd %h /^drcrop$/1447 $chr($base(230C, 16, 10))
  4027.   hadd %h /^dlcrop$/1448 $chr($base(230D, 16, 10))
  4028.   hadd %h /^urcrop$/1449 $chr($base(230E, 16, 10))
  4029.   hadd %h /^ulcrop$/1450 $chr($base(230F, 16, 10))
  4030.   hadd %h /^bnot$/1451 $chr($base(2310, 16, 10))
  4031.   hadd %h /^profline$/1452 $chr($base(2312, 16, 10))
  4032.   hadd %h /^profsurf$/1453 $chr($base(2313, 16, 10))
  4033.   hadd %h /^telrec$/1454 $chr($base(2315, 16, 10))
  4034.   hadd %h /^target$/1455 $chr($base(2316, 16, 10))
  4035.   hadd %h /^ulcorn$/1456 $chr($base(231C, 16, 10))
  4036.   hadd %h /^ulcorner$/1457 $chr($base(231C, 16, 10))
  4037.   hadd %h /^urcorn$/1458 $chr($base(231D, 16, 10))
  4038.   hadd %h /^urcorner$/1459 $chr($base(231D, 16, 10))
  4039.   hadd %h /^dlcorn$/1460 $chr($base(231E, 16, 10))
  4040.   hadd %h /^llcorner$/1461 $chr($base(231E, 16, 10))
  4041.   hadd %h /^drcorn$/1462 $chr($base(231F, 16, 10))
  4042.   hadd %h /^lrcorner$/1463 $chr($base(231F, 16, 10))
  4043.   hadd %h /^frown$/1464 $chr($base(2322, 16, 10))
  4044.   hadd %h /^sfrown$/1465 $chr($base(2322, 16, 10))
  4045.   hadd %h /^smile$/1466 $chr($base(2323, 16, 10))
  4046.   hadd %h /^ssmile$/1467 $chr($base(2323, 16, 10))
  4047.   hadd %h /^cylcty$/1468 $chr($base(232D, 16, 10))
  4048.   hadd %h /^profalar$/1469 $chr($base(232E, 16, 10))
  4049.   hadd %h /^topbot$/1470 $chr($base(2336, 16, 10))
  4050.   hadd %h /^ovbar$/1471 $chr($base(233D, 16, 10))
  4051.   hadd %h /^solbar$/1472 $chr($base(233F, 16, 10))
  4052.   hadd %h /^angzarr$/1473 $chr($base(237C, 16, 10))
  4053.   hadd %h /^lmoust$/1474 $chr($base(23B0, 16, 10))
  4054.   hadd %h /^lmoustache$/1475 $chr($base(23B0, 16, 10))
  4055.   hadd %h /^rmoust$/1476 $chr($base(23B1, 16, 10))
  4056.   hadd %h /^rmoustache$/1477 $chr($base(23B1, 16, 10))
  4057.   hadd %h /^tbrk$/1478 $chr($base(23B4, 16, 10))
  4058.   hadd %h /^OverBracket$/1479 $chr($base(23B4, 16, 10))
  4059.   hadd %h /^bbrk$/1480 $chr($base(23B5, 16, 10))
  4060.   hadd %h /^UnderBracket$/1481 $chr($base(23B5, 16, 10))
  4061.   hadd %h /^bbrktbrk$/1482 $chr($base(23B6, 16, 10))
  4062.   hadd %h /^OverParenthesis$/1483 $chr($base(23DC, 16, 10))
  4063.   hadd %h /^UnderParenthesis$/1484 $chr($base(23DD, 16, 10))
  4064.   hadd %h /^OverBrace$/1485 $chr($base(23DE, 16, 10))
  4065.   hadd %h /^UnderBrace$/1486 $chr($base(23DF, 16, 10))
  4066.   hadd %h /^trpezium$/1487 $chr($base(23E2, 16, 10))
  4067.   hadd %h /^elinters$/1488 $chr($base(23E7, 16, 10))
  4068.   hadd %h /^blank$/1489 $chr($base(2423, 16, 10))
  4069.   hadd %h /^oS$/1490 $chr($base(24C8, 16, 10))
  4070.   hadd %h /^circledS$/1491 $chr($base(24C8, 16, 10))
  4071.   hadd %h /^boxh$/1492 $chr($base(2500, 16, 10))
  4072.   hadd %h /^HorizontalLine$/1493 $chr($base(2500, 16, 10))
  4073.   hadd %h /^boxv$/1494 $chr($base(2502, 16, 10))
  4074.   hadd %h /^boxdr$/1495 $chr($base(250C, 16, 10))
  4075.   hadd %h /^boxdl$/1496 $chr($base(2510, 16, 10))
  4076.   hadd %h /^boxur$/1497 $chr($base(2514, 16, 10))
  4077.   hadd %h /^boxul$/1498 $chr($base(2518, 16, 10))
  4078.   hadd %h /^boxvr$/1499 $chr($base(251C, 16, 10))
  4079.   hadd %h /^boxvl$/1500 $chr($base(2524, 16, 10))
  4080.   hadd %h /^boxhd$/1501 $chr($base(252C, 16, 10))
  4081.   hadd %h /^boxhu$/1502 $chr($base(2534, 16, 10))
  4082.   hadd %h /^boxvh$/1503 $chr($base(253C, 16, 10))
  4083.   hadd %h /^boxH$/1504 $chr($base(2550, 16, 10))
  4084.   hadd %h /^boxV$/1505 $chr($base(2551, 16, 10))
  4085.   hadd %h /^boxdR$/1506 $chr($base(2552, 16, 10))
  4086.   hadd %h /^boxDr$/1507 $chr($base(2553, 16, 10))
  4087.   hadd %h /^boxDR$/1508 $chr($base(2554, 16, 10))
  4088.   hadd %h /^boxdL$/1509 $chr($base(2555, 16, 10))
  4089.   hadd %h /^boxDl$/1510 $chr($base(2556, 16, 10))
  4090.   hadd %h /^boxDL$/1511 $chr($base(2557, 16, 10))
  4091.   hadd %h /^boxuR$/1512 $chr($base(2558, 16, 10))
  4092.   hadd %h /^boxUr$/1513 $chr($base(2559, 16, 10))
  4093.   hadd %h /^boxUR$/1514 $chr($base(255A, 16, 10))
  4094.   hadd %h /^boxuL$/1515 $chr($base(255B, 16, 10))
  4095.   hadd %h /^boxUl$/1516 $chr($base(255C, 16, 10))
  4096.   hadd %h /^boxUL$/1517 $chr($base(255D, 16, 10))
  4097.   hadd %h /^boxvR$/1518 $chr($base(255E, 16, 10))
  4098.   hadd %h /^boxVr$/1519 $chr($base(255F, 16, 10))
  4099.   hadd %h /^boxVR$/1520 $chr($base(2560, 16, 10))
  4100.   hadd %h /^boxvL$/1521 $chr($base(2561, 16, 10))
  4101.   hadd %h /^boxVl$/1522 $chr($base(2562, 16, 10))
  4102.   hadd %h /^boxVL$/1523 $chr($base(2563, 16, 10))
  4103.   hadd %h /^boxHd$/1524 $chr($base(2564, 16, 10))
  4104.   hadd %h /^boxhD$/1525 $chr($base(2565, 16, 10))
  4105.   hadd %h /^boxHD$/1526 $chr($base(2566, 16, 10))
  4106.   hadd %h /^boxHu$/1527 $chr($base(2567, 16, 10))
  4107.   hadd %h /^boxhU$/1528 $chr($base(2568, 16, 10))
  4108.   hadd %h /^boxHU$/1529 $chr($base(2569, 16, 10))
  4109.   hadd %h /^boxvH$/1530 $chr($base(256A, 16, 10))
  4110.   hadd %h /^boxVh$/1531 $chr($base(256B, 16, 10))
  4111.   hadd %h /^boxVH$/1532 $chr($base(256C, 16, 10))
  4112.   hadd %h /^uhblk$/1533 $chr($base(2580, 16, 10))
  4113.   hadd %h /^lhblk$/1534 $chr($base(2584, 16, 10))
  4114.   hadd %h /^block$/1535 $chr($base(2588, 16, 10))
  4115.   hadd %h /^blk14$/1536 $chr($base(2591, 16, 10))
  4116.   hadd %h /^blk12$/1537 $chr($base(2592, 16, 10))
  4117.   hadd %h /^blk34$/1538 $chr($base(2593, 16, 10))
  4118.   hadd %h /^squ$/1539 $chr($base(25A1, 16, 10))
  4119.   hadd %h /^square$/1540 $chr($base(25A1, 16, 10))
  4120.   hadd %h /^Square$/1541 $chr($base(25A1, 16, 10))
  4121.   hadd %h /^squf$/1542 $chr($base(25AA, 16, 10))
  4122.   hadd %h /^squarf$/1543 $chr($base(25AA, 16, 10))
  4123.   hadd %h /^blacksquare$/1544 $chr($base(25AA, 16, 10))
  4124.   hadd %h /^FilledVerySmallSquare$/1545 $chr($base(25AA, 16, 10))
  4125.   hadd %h /^EmptyVerySmallSquare$/1546 $chr($base(25AB, 16, 10))
  4126.   hadd %h /^rect$/1547 $chr($base(25AD, 16, 10))
  4127.   hadd %h /^marker$/1548 $chr($base(25AE, 16, 10))
  4128.   hadd %h /^fltns$/1549 $chr($base(25B1, 16, 10))
  4129.   hadd %h /^xutri$/1550 $chr($base(25B3, 16, 10))
  4130.   hadd %h /^bigtriangleup$/1551 $chr($base(25B3, 16, 10))
  4131.   hadd %h /^utrif$/1552 $chr($base(25B4, 16, 10))
  4132.   hadd %h /^blacktriangle$/1553 $chr($base(25B4, 16, 10))
  4133.   hadd %h /^utri$/1554 $chr($base(25B5, 16, 10))
  4134.   hadd %h /^triangle$/1555 $chr($base(25B5, 16, 10))
  4135.   hadd %h /^rtrif$/1556 $chr($base(25B8, 16, 10))
  4136.   hadd %h /^blacktriangleright$/1557 $chr($base(25B8, 16, 10))
  4137.   hadd %h /^rtri$/1558 $chr($base(25B9, 16, 10))
  4138.   hadd %h /^triangleright$/1559 $chr($base(25B9, 16, 10))
  4139.   hadd %h /^xdtri$/1560 $chr($base(25BD, 16, 10))
  4140.   hadd %h /^bigtriangledown$/1561 $chr($base(25BD, 16, 10))
  4141.   hadd %h /^dtrif$/1562 $chr($base(25BE, 16, 10))
  4142.   hadd %h /^blacktriangledown$/1563 $chr($base(25BE, 16, 10))
  4143.   hadd %h /^dtri$/1564 $chr($base(25BF, 16, 10))
  4144.   hadd %h /^triangledown$/1565 $chr($base(25BF, 16, 10))
  4145.   hadd %h /^ltrif$/1566 $chr($base(25C2, 16, 10))
  4146.   hadd %h /^blacktriangleleft$/1567 $chr($base(25C2, 16, 10))
  4147.   hadd %h /^ltri$/1568 $chr($base(25C3, 16, 10))
  4148.   hadd %h /^triangleleft$/1569 $chr($base(25C3, 16, 10))
  4149.   hadd %h /^loz$/1570 $chr($base(25CA, 16, 10))
  4150.   hadd %h /^lozenge$/1571 $chr($base(25CA, 16, 10))
  4151.   hadd %h /^cir$/1572 $chr($base(25CB, 16, 10))
  4152.   hadd %h /^tridot$/1573 $chr($base(25EC, 16, 10))
  4153.   hadd %h /^xcirc$/1574 $chr($base(25EF, 16, 10))
  4154.   hadd %h /^bigcirc$/1575 $chr($base(25EF, 16, 10))
  4155.   hadd %h /^ultri$/1576 $chr($base(25F8, 16, 10))
  4156.   hadd %h /^urtri$/1577 $chr($base(25F9, 16, 10))
  4157.   hadd %h /^lltri$/1578 $chr($base(25FA, 16, 10))
  4158.   hadd %h /^EmptySmallSquare$/1579 $chr($base(25FB, 16, 10))
  4159.   hadd %h /^FilledSmallSquare$/1580 $chr($base(25FC, 16, 10))
  4160.   hadd %h /^starf$/1581 $chr($base(2605, 16, 10))
  4161.   hadd %h /^bigstar$/1582 $chr($base(2605, 16, 10))
  4162.   hadd %h /^star$/1583 $chr($base(2606, 16, 10))
  4163.   hadd %h /^phone$/1584 $chr($base(260E, 16, 10))
  4164.   hadd %h /^female$/1585 $chr($base(2640, 16, 10))
  4165.   hadd %h /^male$/1586 $chr($base(2642, 16, 10))
  4166.   hadd %h /^spades$/1587 $chr($base(2660, 16, 10))
  4167.   hadd %h /^spadesuit$/1588 $chr($base(2660, 16, 10))
  4168.   hadd %h /^clubs$/1589 $chr($base(2663, 16, 10))
  4169.   hadd %h /^clubsuit$/1590 $chr($base(2663, 16, 10))
  4170.   hadd %h /^hearts$/1591 $chr($base(2665, 16, 10))
  4171.   hadd %h /^heartsuit$/1592 $chr($base(2665, 16, 10))
  4172.   hadd %h /^diams$/1593 $chr($base(2666, 16, 10))
  4173.   hadd %h /^diamondsuit$/1594 $chr($base(2666, 16, 10))
  4174.   hadd %h /^sung$/1595 $chr($base(266A, 16, 10))
  4175.   hadd %h /^flat$/1596 $chr($base(266D, 16, 10))
  4176.   hadd %h /^natur$/1597 $chr($base(266E, 16, 10))
  4177.   hadd %h /^natural$/1598 $chr($base(266E, 16, 10))
  4178.   hadd %h /^sharp$/1599 $chr($base(266F, 16, 10))
  4179.   hadd %h /^check$/1600 $chr($base(2713, 16, 10))
  4180.   hadd %h /^checkmark$/1601 $chr($base(2713, 16, 10))
  4181.   hadd %h /^cross$/1602 $chr($base(2717, 16, 10))
  4182.   hadd %h /^malt$/1603 $chr($base(2720, 16, 10))
  4183.   hadd %h /^maltese$/1604 $chr($base(2720, 16, 10))
  4184.   hadd %h /^sext$/1605 $chr($base(2736, 16, 10))
  4185.   hadd %h /^VerticalSeparator$/1606 $chr($base(2758, 16, 10))
  4186.   hadd %h /^lbbrk$/1607 $chr($base(2772, 16, 10))
  4187.   hadd %h /^rbbrk$/1608 $chr($base(2773, 16, 10))
  4188.   hadd %h /^bsolhsub$/1609 $chr($base(27C8, 16, 10))
  4189.   hadd %h /^suphsol$/1610 $chr($base(27C9, 16, 10))
  4190.   hadd %h /^lobrk$/1611 $chr($base(27E6, 16, 10))
  4191.   hadd %h /^LeftDoubleBracket$/1612 $chr($base(27E6, 16, 10))
  4192.   hadd %h /^robrk$/1613 $chr($base(27E7, 16, 10))
  4193.   hadd %h /^RightDoubleBracket$/1614 $chr($base(27E7, 16, 10))
  4194.   hadd %h /^lang$/1615 $chr($base(27E8, 16, 10))
  4195.   hadd %h /^LeftAngleBracket$/1616 $chr($base(27E8, 16, 10))
  4196.   hadd %h /^langle$/1617 $chr($base(27E8, 16, 10))
  4197.   hadd %h /^rang$/1618 $chr($base(27E9, 16, 10))
  4198.   hadd %h /^RightAngleBracket$/1619 $chr($base(27E9, 16, 10))
  4199.   hadd %h /^rangle$/1620 $chr($base(27E9, 16, 10))
  4200.   hadd %h /^Lang$/1621 $chr($base(27EA, 16, 10))
  4201.   hadd %h /^Rang$/1622 $chr($base(27EB, 16, 10))
  4202.   hadd %h /^loang$/1623 $chr($base(27EC, 16, 10))
  4203.   hadd %h /^roang$/1624 $chr($base(27ED, 16, 10))
  4204.   hadd %h /^xlarr$/1625 $chr($base(27F5, 16, 10))
  4205.   hadd %h /^longleftarrow$/1626 $chr($base(27F5, 16, 10))
  4206.   hadd %h /^LongLeftArrow$/1627 $chr($base(27F5, 16, 10))
  4207.   hadd %h /^xrarr$/1628 $chr($base(27F6, 16, 10))
  4208.   hadd %h /^longrightarrow$/1629 $chr($base(27F6, 16, 10))
  4209.   hadd %h /^LongRightArrow$/1630 $chr($base(27F6, 16, 10))
  4210.   hadd %h /^xharr$/1631 $chr($base(27F7, 16, 10))
  4211.   hadd %h /^longleftrightarrow$/1632 $chr($base(27F7, 16, 10))
  4212.   hadd %h /^LongLeftRightArrow$/1633 $chr($base(27F7, 16, 10))
  4213.   hadd %h /^xlArr$/1634 $chr($base(27F8, 16, 10))
  4214.   hadd %h /^Longleftarrow$/1635 $chr($base(27F8, 16, 10))
  4215.   hadd %h /^DoubleLongLeftArrow$/1636 $chr($base(27F8, 16, 10))
  4216.   hadd %h /^xrArr$/1637 $chr($base(27F9, 16, 10))
  4217.   hadd %h /^Longrightarrow$/1638 $chr($base(27F9, 16, 10))
  4218.   hadd %h /^DoubleLongRightArrow$/1639 $chr($base(27F9, 16, 10))
  4219.   hadd %h /^xhArr$/1640 $chr($base(27FA, 16, 10))
  4220.   hadd %h /^Longleftrightarrow$/1641 $chr($base(27FA, 16, 10))
  4221.   hadd %h /^DoubleLongLeftRightArrow$/1642 $chr($base(27FA, 16, 10))
  4222.   hadd %h /^xmap$/1643 $chr($base(27FC, 16, 10))
  4223.   hadd %h /^longmapsto$/1644 $chr($base(27FC, 16, 10))
  4224.   hadd %h /^dzigrarr$/1645 $chr($base(27FF, 16, 10))
  4225.   hadd %h /^nvlArr$/1646 $chr($base(2902, 16, 10))
  4226.   hadd %h /^nvrArr$/1647 $chr($base(2903, 16, 10))
  4227.   hadd %h /^nvHarr$/1648 $chr($base(2904, 16, 10))
  4228.   hadd %h /^Map$/1649 $chr($base(2905, 16, 10))
  4229.   hadd %h /^lbarr$/1650 $chr($base(290C, 16, 10))
  4230.   hadd %h /^rbarr$/1651 $chr($base(290D, 16, 10))
  4231.   hadd %h /^bkarow$/1652 $chr($base(290D, 16, 10))
  4232.   hadd %h /^lBarr$/1653 $chr($base(290E, 16, 10))
  4233.   hadd %h /^rBarr$/1654 $chr($base(290F, 16, 10))
  4234.   hadd %h /^dbkarow$/1655 $chr($base(290F, 16, 10))
  4235.   hadd %h /^RBarr$/1656 $chr($base(2910, 16, 10))
  4236.   hadd %h /^drbkarow$/1657 $chr($base(2910, 16, 10))
  4237.   hadd %h /^DDotrahd$/1658 $chr($base(2911, 16, 10))
  4238.   hadd %h /^UpArrowBar$/1659 $chr($base(2912, 16, 10))
  4239.   hadd %h /^DownArrowBar$/1660 $chr($base(2913, 16, 10))
  4240.   hadd %h /^Rarrtl$/1661 $chr($base(2916, 16, 10))
  4241.   hadd %h /^latail$/1662 $chr($base(2919, 16, 10))
  4242.   hadd %h /^ratail$/1663 $chr($base(291A, 16, 10))
  4243.   hadd %h /^lAtail$/1664 $chr($base(291B, 16, 10))
  4244.   hadd %h /^rAtail$/1665 $chr($base(291C, 16, 10))
  4245.   hadd %h /^larrfs$/1666 $chr($base(291D, 16, 10))
  4246.   hadd %h /^rarrfs$/1667 $chr($base(291E, 16, 10))
  4247.   hadd %h /^larrbfs$/1668 $chr($base(291F, 16, 10))
  4248.   hadd %h /^rarrbfs$/1669 $chr($base(2920, 16, 10))
  4249.   hadd %h /^nwarhk$/1670 $chr($base(2923, 16, 10))
  4250.   hadd %h /^nearhk$/1671 $chr($base(2924, 16, 10))
  4251.   hadd %h /^searhk$/1672 $chr($base(2925, 16, 10))
  4252.   hadd %h /^hksearow$/1673 $chr($base(2925, 16, 10))
  4253.   hadd %h /^swarhk$/1674 $chr($base(2926, 16, 10))
  4254.   hadd %h /^hkswarow$/1675 $chr($base(2926, 16, 10))
  4255.   hadd %h /^nwnear$/1676 $chr($base(2927, 16, 10))
  4256.   hadd %h /^nesear$/1677 $chr($base(2928, 16, 10))
  4257.   hadd %h /^toea$/1678 $chr($base(2928, 16, 10))
  4258.   hadd %h /^seswar$/1679 $chr($base(2929, 16, 10))
  4259.   hadd %h /^tosa$/1680 $chr($base(2929, 16, 10))
  4260.   hadd %h /^swnwar$/1681 $chr($base(292A, 16, 10))
  4261.   hadd %h /^rarrc$/1682 $chr($base(2933, 16, 10))
  4262.   hadd %h /^nrarrc$/1683 $chr($base(2933, 16, 10)) $+ $chr($base(0338, 16, 10))
  4263.   hadd %h /^cudarrr$/1684 $chr($base(2935, 16, 10))
  4264.   hadd %h /^ldca$/1685 $chr($base(2936, 16, 10))
  4265.   hadd %h /^rdca$/1686 $chr($base(2937, 16, 10))
  4266.   hadd %h /^cudarrl$/1687 $chr($base(2938, 16, 10))
  4267.   hadd %h /^larrpl$/1688 $chr($base(2939, 16, 10))
  4268.   hadd %h /^curarrm$/1689 $chr($base(293C, 16, 10))
  4269.   hadd %h /^cularrp$/1690 $chr($base(293D, 16, 10))
  4270.   hadd %h /^rarrpl$/1691 $chr($base(2945, 16, 10))
  4271.   hadd %h /^harrcir$/1692 $chr($base(2948, 16, 10))
  4272.   hadd %h /^Uarrocir$/1693 $chr($base(2949, 16, 10))
  4273.   hadd %h /^lurdshar$/1694 $chr($base(294A, 16, 10))
  4274.   hadd %h /^ldrushar$/1695 $chr($base(294B, 16, 10))
  4275.   hadd %h /^LeftRightVector$/1696 $chr($base(294E, 16, 10))
  4276.   hadd %h /^RightUpDownVector$/1697 $chr($base(294F, 16, 10))
  4277.   hadd %h /^DownLeftRightVector$/1698 $chr($base(2950, 16, 10))
  4278.   hadd %h /^LeftUpDownVector$/1699 $chr($base(2951, 16, 10))
  4279.   hadd %h /^LeftVectorBar$/1700 $chr($base(2952, 16, 10))
  4280.   hadd %h /^RightVectorBar$/1701 $chr($base(2953, 16, 10))
  4281.   hadd %h /^RightUpVectorBar$/1702 $chr($base(2954, 16, 10))
  4282.   hadd %h /^RightDownVectorBar$/1703 $chr($base(2955, 16, 10))
  4283.   hadd %h /^DownLeftVectorBar$/1704 $chr($base(2956, 16, 10))
  4284.   hadd %h /^DownRightVectorBar$/1705 $chr($base(2957, 16, 10))
  4285.   hadd %h /^LeftUpVectorBar$/1706 $chr($base(2958, 16, 10))
  4286.   hadd %h /^LeftDownVectorBar$/1707 $chr($base(2959, 16, 10))
  4287.   hadd %h /^LeftTeeVector$/1708 $chr($base(295A, 16, 10))
  4288.   hadd %h /^RightTeeVector$/1709 $chr($base(295B, 16, 10))
  4289.   hadd %h /^RightUpTeeVector$/1710 $chr($base(295C, 16, 10))
  4290.   hadd %h /^RightDownTeeVector$/1711 $chr($base(295D, 16, 10))
  4291.   hadd %h /^DownLeftTeeVector$/1712 $chr($base(295E, 16, 10))
  4292.   hadd %h /^DownRightTeeVector$/1713 $chr($base(295F, 16, 10))
  4293.   hadd %h /^LeftUpTeeVector$/1714 $chr($base(2960, 16, 10))
  4294.   hadd %h /^LeftDownTeeVector$/1715 $chr($base(2961, 16, 10))
  4295.   hadd %h /^lHar$/1716 $chr($base(2962, 16, 10))
  4296.   hadd %h /^uHar$/1717 $chr($base(2963, 16, 10))
  4297.   hadd %h /^rHar$/1718 $chr($base(2964, 16, 10))
  4298.   hadd %h /^dHar$/1719 $chr($base(2965, 16, 10))
  4299.   hadd %h /^luruhar$/1720 $chr($base(2966, 16, 10))
  4300.   hadd %h /^ldrdhar$/1721 $chr($base(2967, 16, 10))
  4301.   hadd %h /^ruluhar$/1722 $chr($base(2968, 16, 10))
  4302.   hadd %h /^rdldhar$/1723 $chr($base(2969, 16, 10))
  4303.   hadd %h /^lharul$/1724 $chr($base(296A, 16, 10))
  4304.   hadd %h /^llhard$/1725 $chr($base(296B, 16, 10))
  4305.   hadd %h /^rharul$/1726 $chr($base(296C, 16, 10))
  4306.   hadd %h /^lrhard$/1727 $chr($base(296D, 16, 10))
  4307.   hadd %h /^udhar$/1728 $chr($base(296E, 16, 10))
  4308.   hadd %h /^UpEquilibrium$/1729 $chr($base(296E, 16, 10))
  4309.   hadd %h /^duhar$/1730 $chr($base(296F, 16, 10))
  4310.   hadd %h /^ReverseUpEquilibrium$/1731 $chr($base(296F, 16, 10))
  4311.   hadd %h /^RoundImplies$/1732 $chr($base(2970, 16, 10))
  4312.   hadd %h /^erarr$/1733 $chr($base(2971, 16, 10))
  4313.   hadd %h /^simrarr$/1734 $chr($base(2972, 16, 10))
  4314.   hadd %h /^larrsim$/1735 $chr($base(2973, 16, 10))
  4315.   hadd %h /^rarrsim$/1736 $chr($base(2974, 16, 10))
  4316.   hadd %h /^rarrap$/1737 $chr($base(2975, 16, 10))
  4317.   hadd %h /^ltlarr$/1738 $chr($base(2976, 16, 10))
  4318.   hadd %h /^gtrarr$/1739 $chr($base(2978, 16, 10))
  4319.   hadd %h /^subrarr$/1740 $chr($base(2979, 16, 10))
  4320.   hadd %h /^suplarr$/1741 $chr($base(297B, 16, 10))
  4321.   hadd %h /^lfisht$/1742 $chr($base(297C, 16, 10))
  4322.   hadd %h /^rfisht$/1743 $chr($base(297D, 16, 10))
  4323.   hadd %h /^ufisht$/1744 $chr($base(297E, 16, 10))
  4324.   hadd %h /^dfisht$/1745 $chr($base(297F, 16, 10))
  4325.   hadd %h /^lopar$/1746 $chr($base(2985, 16, 10))
  4326.   hadd %h /^ropar$/1747 $chr($base(2986, 16, 10))
  4327.   hadd %h /^lbrke$/1748 $chr($base(298B, 16, 10))
  4328.   hadd %h /^rbrke$/1749 $chr($base(298C, 16, 10))
  4329.   hadd %h /^lbrkslu$/1750 $chr($base(298D, 16, 10))
  4330.   hadd %h /^rbrksld$/1751 $chr($base(298E, 16, 10))
  4331.   hadd %h /^lbrksld$/1752 $chr($base(298F, 16, 10))
  4332.   hadd %h /^rbrkslu$/1753 $chr($base(2990, 16, 10))
  4333.   hadd %h /^langd$/1754 $chr($base(2991, 16, 10))
  4334.   hadd %h /^rangd$/1755 $chr($base(2992, 16, 10))
  4335.   hadd %h /^lparlt$/1756 $chr($base(2993, 16, 10))
  4336.   hadd %h /^rpargt$/1757 $chr($base(2994, 16, 10))
  4337.   hadd %h /^gtlPar$/1758 $chr($base(2995, 16, 10))
  4338.   hadd %h /^ltrPar$/1759 $chr($base(2996, 16, 10))
  4339.   hadd %h /^vzigzag$/1760 $chr($base(299A, 16, 10))
  4340.   hadd %h /^vangrt$/1761 $chr($base(299C, 16, 10))
  4341.   hadd %h /^angrtvbd$/1762 $chr($base(299D, 16, 10))
  4342.   hadd %h /^ange$/1763 $chr($base(29A4, 16, 10))
  4343.   hadd %h /^range$/1764 $chr($base(29A5, 16, 10))
  4344.   hadd %h /^dwangle$/1765 $chr($base(29A6, 16, 10))
  4345.   hadd %h /^uwangle$/1766 $chr($base(29A7, 16, 10))
  4346.   hadd %h /^angmsdaa$/1767 $chr($base(29A8, 16, 10))
  4347.   hadd %h /^angmsdab$/1768 $chr($base(29A9, 16, 10))
  4348.   hadd %h /^angmsdac$/1769 $chr($base(29AA, 16, 10))
  4349.   hadd %h /^angmsdad$/1770 $chr($base(29AB, 16, 10))
  4350.   hadd %h /^angmsdae$/1771 $chr($base(29AC, 16, 10))
  4351.   hadd %h /^angmsdaf$/1772 $chr($base(29AD, 16, 10))
  4352.   hadd %h /^angmsdag$/1773 $chr($base(29AE, 16, 10))
  4353.   hadd %h /^angmsdah$/1774 $chr($base(29AF, 16, 10))
  4354.   hadd %h /^bemptyv$/1775 $chr($base(29B0, 16, 10))
  4355.   hadd %h /^demptyv$/1776 $chr($base(29B1, 16, 10))
  4356.   hadd %h /^cemptyv$/1777 $chr($base(29B2, 16, 10))
  4357.   hadd %h /^raemptyv$/1778 $chr($base(29B3, 16, 10))
  4358.   hadd %h /^laemptyv$/1779 $chr($base(29B4, 16, 10))
  4359.   hadd %h /^ohbar$/1780 $chr($base(29B5, 16, 10))
  4360.   hadd %h /^omid$/1781 $chr($base(29B6, 16, 10))
  4361.   hadd %h /^opar$/1782 $chr($base(29B7, 16, 10))
  4362.   hadd %h /^operp$/1783 $chr($base(29B9, 16, 10))
  4363.   hadd %h /^olcross$/1784 $chr($base(29BB, 16, 10))
  4364.   hadd %h /^odsold$/1785 $chr($base(29BC, 16, 10))
  4365.   hadd %h /^olcir$/1786 $chr($base(29BE, 16, 10))
  4366.   hadd %h /^ofcir$/1787 $chr($base(29BF, 16, 10))
  4367.   hadd %h /^olt$/1788 $chr($base(29C0, 16, 10))
  4368.   hadd %h /^ogt$/1789 $chr($base(29C1, 16, 10))
  4369.   hadd %h /^cirscir$/1790 $chr($base(29C2, 16, 10))
  4370.   hadd %h /^cirE$/1791 $chr($base(29C3, 16, 10))
  4371.   hadd %h /^solb$/1792 $chr($base(29C4, 16, 10))
  4372.   hadd %h /^bsolb$/1793 $chr($base(29C5, 16, 10))
  4373.   hadd %h /^boxbox$/1794 $chr($base(29C9, 16, 10))
  4374.   hadd %h /^trisb$/1795 $chr($base(29CD, 16, 10))
  4375.   hadd %h /^rtriltri$/1796 $chr($base(29CE, 16, 10))
  4376.   hadd %h /^LeftTriangleBar$/1797 $chr($base(29CF, 16, 10))
  4377.   hadd %h /^NotLeftTriangleBar$/1798 $chr($base(29CF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4378.   hadd %h /^RightTriangleBar$/1799 $chr($base(29D0, 16, 10))
  4379.   hadd %h /^NotRightTriangleBar$/1800 $chr($base(29D0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4380.   hadd %h /^iinfin$/1801 $chr($base(29DC, 16, 10))
  4381.   hadd %h /^infintie$/1802 $chr($base(29DD, 16, 10))
  4382.   hadd %h /^nvinfin$/1803 $chr($base(29DE, 16, 10))
  4383.   hadd %h /^eparsl$/1804 $chr($base(29E3, 16, 10))
  4384.   hadd %h /^smeparsl$/1805 $chr($base(29E4, 16, 10))
  4385.   hadd %h /^eqvparsl$/1806 $chr($base(29E5, 16, 10))
  4386.   hadd %h /^lozf$/1807 $chr($base(29EB, 16, 10))
  4387.   hadd %h /^blacklozenge$/1808 $chr($base(29EB, 16, 10))
  4388.   hadd %h /^RuleDelayed$/1809 $chr($base(29F4, 16, 10))
  4389.   hadd %h /^dsol$/1810 $chr($base(29F6, 16, 10))
  4390.   hadd %h /^xodot$/1811 $chr($base(2A00, 16, 10))
  4391.   hadd %h /^bigodot$/1812 $chr($base(2A00, 16, 10))
  4392.   hadd %h /^xoplus$/1813 $chr($base(2A01, 16, 10))
  4393.   hadd %h /^bigoplus$/1814 $chr($base(2A01, 16, 10))
  4394.   hadd %h /^xotime$/1815 $chr($base(2A02, 16, 10))
  4395.   hadd %h /^bigotimes$/1816 $chr($base(2A02, 16, 10))
  4396.   hadd %h /^xuplus$/1817 $chr($base(2A04, 16, 10))
  4397.   hadd %h /^biguplus$/1818 $chr($base(2A04, 16, 10))
  4398.   hadd %h /^xsqcup$/1819 $chr($base(2A06, 16, 10))
  4399.   hadd %h /^bigsqcup$/1820 $chr($base(2A06, 16, 10))
  4400.   hadd %h /^qint$/1821 $chr($base(2A0C, 16, 10))
  4401.   hadd %h /^iiiint$/1822 $chr($base(2A0C, 16, 10))
  4402.   hadd %h /^fpartint$/1823 $chr($base(2A0D, 16, 10))
  4403.   hadd %h /^cirfnint$/1824 $chr($base(2A10, 16, 10))
  4404.   hadd %h /^awint$/1825 $chr($base(2A11, 16, 10))
  4405.   hadd %h /^rppolint$/1826 $chr($base(2A12, 16, 10))
  4406.   hadd %h /^scpolint$/1827 $chr($base(2A13, 16, 10))
  4407.   hadd %h /^npolint$/1828 $chr($base(2A14, 16, 10))
  4408.   hadd %h /^pointint$/1829 $chr($base(2A15, 16, 10))
  4409.   hadd %h /^quatint$/1830 $chr($base(2A16, 16, 10))
  4410.   hadd %h /^intlarhk$/1831 $chr($base(2A17, 16, 10))
  4411.   hadd %h /^pluscir$/1832 $chr($base(2A22, 16, 10))
  4412.   hadd %h /^plusacir$/1833 $chr($base(2A23, 16, 10))
  4413.   hadd %h /^simplus$/1834 $chr($base(2A24, 16, 10))
  4414.   hadd %h /^plusdu$/1835 $chr($base(2A25, 16, 10))
  4415.   hadd %h /^plussim$/1836 $chr($base(2A26, 16, 10))
  4416.   hadd %h /^plustwo$/1837 $chr($base(2A27, 16, 10))
  4417.   hadd %h /^mcomma$/1838 $chr($base(2A29, 16, 10))
  4418.   hadd %h /^minusdu$/1839 $chr($base(2A2A, 16, 10))
  4419.   hadd %h /^loplus$/1840 $chr($base(2A2D, 16, 10))
  4420.   hadd %h /^roplus$/1841 $chr($base(2A2E, 16, 10))
  4421.   hadd %h /^Cross$/1842 $chr($base(2A2F, 16, 10))
  4422.   hadd %h /^timesd$/1843 $chr($base(2A30, 16, 10))
  4423.   hadd %h /^timesbar$/1844 $chr($base(2A31, 16, 10))
  4424.   hadd %h /^smashp$/1845 $chr($base(2A33, 16, 10))
  4425.   hadd %h /^lotimes$/1846 $chr($base(2A34, 16, 10))
  4426.   hadd %h /^rotimes$/1847 $chr($base(2A35, 16, 10))
  4427.   hadd %h /^otimesas$/1848 $chr($base(2A36, 16, 10))
  4428.   hadd %h /^Otimes$/1849 $chr($base(2A37, 16, 10))
  4429.   hadd %h /^odiv$/1850 $chr($base(2A38, 16, 10))
  4430.   hadd %h /^triplus$/1851 $chr($base(2A39, 16, 10))
  4431.   hadd %h /^triminus$/1852 $chr($base(2A3A, 16, 10))
  4432.   hadd %h /^tritime$/1853 $chr($base(2A3B, 16, 10))
  4433.   hadd %h /^iprod$/1854 $chr($base(2A3C, 16, 10))
  4434.   hadd %h /^intprod$/1855 $chr($base(2A3C, 16, 10))
  4435.   hadd %h /^amalg$/1856 $chr($base(2A3F, 16, 10))
  4436.   hadd %h /^capdot$/1857 $chr($base(2A40, 16, 10))
  4437.   hadd %h /^ncup$/1858 $chr($base(2A42, 16, 10))
  4438.   hadd %h /^ncap$/1859 $chr($base(2A43, 16, 10))
  4439.   hadd %h /^capand$/1860 $chr($base(2A44, 16, 10))
  4440.   hadd %h /^cupor$/1861 $chr($base(2A45, 16, 10))
  4441.   hadd %h /^cupcap$/1862 $chr($base(2A46, 16, 10))
  4442.   hadd %h /^capcup$/1863 $chr($base(2A47, 16, 10))
  4443.   hadd %h /^cupbrcap$/1864 $chr($base(2A48, 16, 10))
  4444.   hadd %h /^capbrcup$/1865 $chr($base(2A49, 16, 10))
  4445.   hadd %h /^cupcup$/1866 $chr($base(2A4A, 16, 10))
  4446.   hadd %h /^capcap$/1867 $chr($base(2A4B, 16, 10))
  4447.   hadd %h /^ccups$/1868 $chr($base(2A4C, 16, 10))
  4448.   hadd %h /^ccaps$/1869 $chr($base(2A4D, 16, 10))
  4449.   hadd %h /^ccupssm$/1870 $chr($base(2A50, 16, 10))
  4450.   hadd %h /^And$/1871 $chr($base(2A53, 16, 10))
  4451.   hadd %h /^Or$/1872 $chr($base(2A54, 16, 10))
  4452.   hadd %h /^andand$/1873 $chr($base(2A55, 16, 10))
  4453.   hadd %h /^oror$/1874 $chr($base(2A56, 16, 10))
  4454.   hadd %h /^orslope$/1875 $chr($base(2A57, 16, 10))
  4455.   hadd %h /^andslope$/1876 $chr($base(2A58, 16, 10))
  4456.   hadd %h /^andv$/1877 $chr($base(2A5A, 16, 10))
  4457.   hadd %h /^orv$/1878 $chr($base(2A5B, 16, 10))
  4458.   hadd %h /^andd$/1879 $chr($base(2A5C, 16, 10))
  4459.   hadd %h /^ord$/1880 $chr($base(2A5D, 16, 10))
  4460.   hadd %h /^wedbar$/1881 $chr($base(2A5F, 16, 10))
  4461.   hadd %h /^sdote$/1882 $chr($base(2A66, 16, 10))
  4462.   hadd %h /^simdot$/1883 $chr($base(2A6A, 16, 10))
  4463.   hadd %h /^congdot$/1884 $chr($base(2A6D, 16, 10))
  4464.   hadd %h /^ncongdot$/1885 $chr($base(2A6D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4465.   hadd %h /^easter$/1886 $chr($base(2A6E, 16, 10))
  4466.   hadd %h /^apacir$/1887 $chr($base(2A6F, 16, 10))
  4467.   hadd %h /^apE$/1888 $chr($base(2A70, 16, 10))
  4468.   hadd %h /^napE$/1889 $chr($base(2A70, 16, 10)) $+ $chr($base(0338, 16, 10))
  4469.   hadd %h /^eplus$/1890 $chr($base(2A71, 16, 10))
  4470.   hadd %h /^pluse$/1891 $chr($base(2A72, 16, 10))
  4471.   hadd %h /^Esim$/1892 $chr($base(2A73, 16, 10))
  4472.   hadd %h /^Colone$/1893 $chr($base(2A74, 16, 10))
  4473.   hadd %h /^Equal$/1894 $chr($base(2A75, 16, 10))
  4474.   hadd %h /^eDDot$/1895 $chr($base(2A77, 16, 10))
  4475.   hadd %h /^ddotseq$/1896 $chr($base(2A77, 16, 10))
  4476.   hadd %h /^equivDD$/1897 $chr($base(2A78, 16, 10))
  4477.   hadd %h /^ltcir$/1898 $chr($base(2A79, 16, 10))
  4478.   hadd %h /^gtcir$/1899 $chr($base(2A7A, 16, 10))
  4479.   hadd %h /^ltquest$/1900 $chr($base(2A7B, 16, 10))
  4480.   hadd %h /^gtquest$/1901 $chr($base(2A7C, 16, 10))
  4481.   hadd %h /^les$/1902 $chr($base(2A7D, 16, 10))
  4482.   hadd %h /^LessSlantEqual$/1903 $chr($base(2A7D, 16, 10))
  4483.   hadd %h /^leqslant$/1904 $chr($base(2A7D, 16, 10))
  4484.   hadd %h /^nles$/1905 $chr($base(2A7D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4485.   hadd %h /^NotLessSlantEqual$/1906 $chr($base(2A7D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4486.   hadd %h /^nleqslant$/1907 $chr($base(2A7D, 16, 10)) $+ $chr($base(0338, 16, 10))
  4487.   hadd %h /^ges$/1908 $chr($base(2A7E, 16, 10))
  4488.   hadd %h /^GreaterSlantEqual$/1909 $chr($base(2A7E, 16, 10))
  4489.   hadd %h /^geqslant$/1910 $chr($base(2A7E, 16, 10))
  4490.   hadd %h /^nges$/1911 $chr($base(2A7E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4491.   hadd %h /^NotGreaterSlantEqual$/1912 $chr($base(2A7E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4492.   hadd %h /^ngeqslant$/1913 $chr($base(2A7E, 16, 10)) $+ $chr($base(0338, 16, 10))
  4493.   hadd %h /^lesdot$/1914 $chr($base(2A7F, 16, 10))
  4494.   hadd %h /^gesdot$/1915 $chr($base(2A80, 16, 10))
  4495.   hadd %h /^lesdoto$/1916 $chr($base(2A81, 16, 10))
  4496.   hadd %h /^gesdoto$/1917 $chr($base(2A82, 16, 10))
  4497.   hadd %h /^lesdotor$/1918 $chr($base(2A83, 16, 10))
  4498.   hadd %h /^gesdotol$/1919 $chr($base(2A84, 16, 10))
  4499.   hadd %h /^lap$/1920 $chr($base(2A85, 16, 10))
  4500.   hadd %h /^lessapprox$/1921 $chr($base(2A85, 16, 10))
  4501.   hadd %h /^gap$/1922 $chr($base(2A86, 16, 10))
  4502.   hadd %h /^gtrapprox$/1923 $chr($base(2A86, 16, 10))
  4503.   hadd %h /^lne$/1924 $chr($base(2A87, 16, 10))
  4504.   hadd %h /^lneq$/1925 $chr($base(2A87, 16, 10))
  4505.   hadd %h /^gne$/1926 $chr($base(2A88, 16, 10))
  4506.   hadd %h /^gneq$/1927 $chr($base(2A88, 16, 10))
  4507.   hadd %h /^lnap$/1928 $chr($base(2A89, 16, 10))
  4508.   hadd %h /^lnapprox$/1929 $chr($base(2A89, 16, 10))
  4509.   hadd %h /^gnap$/1930 $chr($base(2A8A, 16, 10))
  4510.   hadd %h /^gnapprox$/1931 $chr($base(2A8A, 16, 10))
  4511.   hadd %h /^lEg$/1932 $chr($base(2A8B, 16, 10))
  4512.   hadd %h /^lesseqqgtr$/1933 $chr($base(2A8B, 16, 10))
  4513.   hadd %h /^gEl$/1934 $chr($base(2A8C, 16, 10))
  4514.   hadd %h /^gtreqqless$/1935 $chr($base(2A8C, 16, 10))
  4515.   hadd %h /^lsime$/1936 $chr($base(2A8D, 16, 10))
  4516.   hadd %h /^gsime$/1937 $chr($base(2A8E, 16, 10))
  4517.   hadd %h /^lsimg$/1938 $chr($base(2A8F, 16, 10))
  4518.   hadd %h /^gsiml$/1939 $chr($base(2A90, 16, 10))
  4519.   hadd %h /^lgE$/1940 $chr($base(2A91, 16, 10))
  4520.   hadd %h /^glE$/1941 $chr($base(2A92, 16, 10))
  4521.   hadd %h /^lesges$/1942 $chr($base(2A93, 16, 10))
  4522.   hadd %h /^gesles$/1943 $chr($base(2A94, 16, 10))
  4523.   hadd %h /^els$/1944 $chr($base(2A95, 16, 10))
  4524.   hadd %h /^eqslantless$/1945 $chr($base(2A95, 16, 10))
  4525.   hadd %h /^egs$/1946 $chr($base(2A96, 16, 10))
  4526.   hadd %h /^eqslantgtr$/1947 $chr($base(2A96, 16, 10))
  4527.   hadd %h /^elsdot$/1948 $chr($base(2A97, 16, 10))
  4528.   hadd %h /^egsdot$/1949 $chr($base(2A98, 16, 10))
  4529.   hadd %h /^el$/1950 $chr($base(2A99, 16, 10))
  4530.   hadd %h /^eg$/1951 $chr($base(2A9A, 16, 10))
  4531.   hadd %h /^siml$/1952 $chr($base(2A9D, 16, 10))
  4532.   hadd %h /^simg$/1953 $chr($base(2A9E, 16, 10))
  4533.   hadd %h /^simlE$/1954 $chr($base(2A9F, 16, 10))
  4534.   hadd %h /^simgE$/1955 $chr($base(2AA0, 16, 10))
  4535.   hadd %h /^LessLess$/1956 $chr($base(2AA1, 16, 10))
  4536.   hadd %h /^NotNestedLessLess$/1957 $chr($base(2AA1, 16, 10)) $+ $chr($base(0338, 16, 10))
  4537.   hadd %h /^GreaterGreater$/1958 $chr($base(2AA2, 16, 10))
  4538.   hadd %h /^NotNestedGreaterGreater$/1959 $chr($base(2AA2, 16, 10)) $+ $chr($base(0338, 16, 10))
  4539.   hadd %h /^glj$/1960 $chr($base(2AA4, 16, 10))
  4540.   hadd %h /^gla$/1961 $chr($base(2AA5, 16, 10))
  4541.   hadd %h /^ltcc$/1962 $chr($base(2AA6, 16, 10))
  4542.   hadd %h /^gtcc$/1963 $chr($base(2AA7, 16, 10))
  4543.   hadd %h /^lescc$/1964 $chr($base(2AA8, 16, 10))
  4544.   hadd %h /^gescc$/1965 $chr($base(2AA9, 16, 10))
  4545.   hadd %h /^smt$/1966 $chr($base(2AAA, 16, 10))
  4546.   hadd %h /^lat$/1967 $chr($base(2AAB, 16, 10))
  4547.   hadd %h /^smte$/1968 $chr($base(2AAC, 16, 10))
  4548.   hadd %h /^smtes$/1969 $chr($base(2AAC, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4549.   hadd %h /^late$/1970 $chr($base(2AAD, 16, 10))
  4550.   hadd %h /^lates$/1971 $chr($base(2AAD, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4551.   hadd %h /^bumpE$/1972 $chr($base(2AAE, 16, 10))
  4552.   hadd %h /^pre$/1973 $chr($base(2AAF, 16, 10))
  4553.   hadd %h /^preceq$/1974 $chr($base(2AAF, 16, 10))
  4554.   hadd %h /^PrecedesEqual$/1975 $chr($base(2AAF, 16, 10))
  4555.   hadd %h /^npre$/1976 $chr($base(2AAF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4556.   hadd %h /^npreceq$/1977 $chr($base(2AAF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4557.   hadd %h /^NotPrecedesEqual$/1978 $chr($base(2AAF, 16, 10)) $+ $chr($base(0338, 16, 10))
  4558.   hadd %h /^sce$/1979 $chr($base(2AB0, 16, 10))
  4559.   hadd %h /^succeq$/1980 $chr($base(2AB0, 16, 10))
  4560.   hadd %h /^SucceedsEqual$/1981 $chr($base(2AB0, 16, 10))
  4561.   hadd %h /^nsce$/1982 $chr($base(2AB0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4562.   hadd %h /^nsucceq$/1983 $chr($base(2AB0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4563.   hadd %h /^NotSucceedsEqual$/1984 $chr($base(2AB0, 16, 10)) $+ $chr($base(0338, 16, 10))
  4564.   hadd %h /^prE$/1985 $chr($base(2AB3, 16, 10))
  4565.   hadd %h /^scE$/1986 $chr($base(2AB4, 16, 10))
  4566.   hadd %h /^prnE$/1987 $chr($base(2AB5, 16, 10))
  4567.   hadd %h /^precneqq$/1988 $chr($base(2AB5, 16, 10))
  4568.   hadd %h /^scnE$/1989 $chr($base(2AB6, 16, 10))
  4569.   hadd %h /^succneqq$/1990 $chr($base(2AB6, 16, 10))
  4570.   hadd %h /^prap$/1991 $chr($base(2AB7, 16, 10))
  4571.   hadd %h /^precapprox$/1992 $chr($base(2AB7, 16, 10))
  4572.   hadd %h /^scap$/1993 $chr($base(2AB8, 16, 10))
  4573.   hadd %h /^succapprox$/1994 $chr($base(2AB8, 16, 10))
  4574.   hadd %h /^prnap$/1995 $chr($base(2AB9, 16, 10))
  4575.   hadd %h /^precnapprox$/1996 $chr($base(2AB9, 16, 10))
  4576.   hadd %h /^scnap$/1997 $chr($base(2ABA, 16, 10))
  4577.   hadd %h /^succnapprox$/1998 $chr($base(2ABA, 16, 10))
  4578.   hadd %h /^Pr$/1999 $chr($base(2ABB, 16, 10))
  4579.   hadd %h /^Sc$/2000 $chr($base(2ABC, 16, 10))
  4580.   hadd %h /^subdot$/2001 $chr($base(2ABD, 16, 10))
  4581.   hadd %h /^supdot$/2002 $chr($base(2ABE, 16, 10))
  4582.   hadd %h /^subplus$/2003 $chr($base(2ABF, 16, 10))
  4583.   hadd %h /^supplus$/2004 $chr($base(2AC0, 16, 10))
  4584.   hadd %h /^submult$/2005 $chr($base(2AC1, 16, 10))
  4585.   hadd %h /^supmult$/2006 $chr($base(2AC2, 16, 10))
  4586.   hadd %h /^subedot$/2007 $chr($base(2AC3, 16, 10))
  4587.   hadd %h /^supedot$/2008 $chr($base(2AC4, 16, 10))
  4588.   hadd %h /^subE$/2009 $chr($base(2AC5, 16, 10))
  4589.   hadd %h /^subseteqq$/2010 $chr($base(2AC5, 16, 10))
  4590.   hadd %h /^nsubE$/2011 $chr($base(2AC5, 16, 10)) $+ $chr($base(0338, 16, 10))
  4591.   hadd %h /^nsubseteqq$/2012 $chr($base(2AC5, 16, 10)) $+ $chr($base(0338, 16, 10))
  4592.   hadd %h /^supE$/2013 $chr($base(2AC6, 16, 10))
  4593.   hadd %h /^supseteqq$/2014 $chr($base(2AC6, 16, 10))
  4594.   hadd %h /^nsupE$/2015 $chr($base(2AC6, 16, 10)) $+ $chr($base(0338, 16, 10))
  4595.   hadd %h /^nsupseteqq$/2016 $chr($base(2AC6, 16, 10)) $+ $chr($base(0338, 16, 10))
  4596.   hadd %h /^subsim$/2017 $chr($base(2AC7, 16, 10))
  4597.   hadd %h /^supsim$/2018 $chr($base(2AC8, 16, 10))
  4598.   hadd %h /^subnE$/2019 $chr($base(2ACB, 16, 10))
  4599.   hadd %h /^subsetneqq$/2020 $chr($base(2ACB, 16, 10))
  4600.   hadd %h /^vsubnE$/2021 $chr($base(2ACB, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4601.   hadd %h /^varsubsetneqq$/2022 $chr($base(2ACB, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4602.   hadd %h /^supnE$/2023 $chr($base(2ACC, 16, 10))
  4603.   hadd %h /^supsetneqq$/2024 $chr($base(2ACC, 16, 10))
  4604.   hadd %h /^vsupnE$/2025 $chr($base(2ACC, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4605.   hadd %h /^varsupsetneqq$/2026 $chr($base(2ACC, 16, 10)) $+ $chr($base(FE00, 16, 10))
  4606.   hadd %h /^csub$/2027 $chr($base(2ACF, 16, 10))
  4607.   hadd %h /^csup$/2028 $chr($base(2AD0, 16, 10))
  4608.   hadd %h /^csube$/2029 $chr($base(2AD1, 16, 10))
  4609.   hadd %h /^csupe$/2030 $chr($base(2AD2, 16, 10))
  4610.   hadd %h /^subsup$/2031 $chr($base(2AD3, 16, 10))
  4611.   hadd %h /^supsub$/2032 $chr($base(2AD4, 16, 10))
  4612.   hadd %h /^subsub$/2033 $chr($base(2AD5, 16, 10))
  4613.   hadd %h /^supsup$/2034 $chr($base(2AD6, 16, 10))
  4614.   hadd %h /^suphsub$/2035 $chr($base(2AD7, 16, 10))
  4615.   hadd %h /^supdsub$/2036 $chr($base(2AD8, 16, 10))
  4616.   hadd %h /^forkv$/2037 $chr($base(2AD9, 16, 10))
  4617.   hadd %h /^topfork$/2038 $chr($base(2ADA, 16, 10))
  4618.   hadd %h /^mlcp$/2039 $chr($base(2ADB, 16, 10))
  4619.   hadd %h /^Dashv$/2040 $chr($base(2AE4, 16, 10))
  4620.   hadd %h /^DoubleLeftTee$/2041 $chr($base(2AE4, 16, 10))
  4621.   hadd %h /^Vdashl$/2042 $chr($base(2AE6, 16, 10))
  4622.   hadd %h /^Barv$/2043 $chr($base(2AE7, 16, 10))
  4623.   hadd %h /^vBar$/2044 $chr($base(2AE8, 16, 10))
  4624.   hadd %h /^vBarv$/2045 $chr($base(2AE9, 16, 10))
  4625.   hadd %h /^Vbar$/2046 $chr($base(2AEB, 16, 10))
  4626.   hadd %h /^Not$/2047 $chr($base(2AEC, 16, 10))
  4627.   hadd %h /^bNot$/2048 $chr($base(2AED, 16, 10))
  4628.   hadd %h /^rnmid$/2049 $chr($base(2AEE, 16, 10))
  4629.   hadd %h /^cirmid$/2050 $chr($base(2AEF, 16, 10))
  4630.   hadd %h /^midcir$/2051 $chr($base(2AF0, 16, 10))
  4631.   hadd %h /^topcir$/2052 $chr($base(2AF1, 16, 10))
  4632.   hadd %h /^nhpar$/2053 $chr($base(2AF2, 16, 10))
  4633.   hadd %h /^parsim$/2054 $chr($base(2AF3, 16, 10))
  4634.   hadd %h /^parsl$/2055 $chr($base(2AFD, 16, 10))
  4635.   hadd %h /^nparsl$/2056 $chr($base(2AFD, 16, 10)) $+ $chr($base(20E5, 16, 10))
  4636.   hadd %h /^fflig$/2057 $chr($base(FB00, 16, 10))
  4637.   hadd %h /^filig$/2058 $chr($base(FB01, 16, 10))
  4638.   hadd %h /^fllig$/2059 $chr($base(FB02, 16, 10))
  4639.   hadd %h /^ffilig$/2060 $chr($base(FB03, 16, 10))
  4640.   hadd %h /^ffllig$/2061 $chr($base(FB04, 16, 10))
  4641.   hadd %h /^Ascr$/2062 $chr($base(1D49C, 16, 10))
  4642.   hadd %h /^Cscr$/2063 $chr($base(1D49E, 16, 10))
  4643.   hadd %h /^Dscr$/2064 $chr($base(1D49F, 16, 10))
  4644.   hadd %h /^Gscr$/2065 $chr($base(1D4A2, 16, 10))
  4645.   hadd %h /^Jscr$/2066 $chr($base(1D4A5, 16, 10))
  4646.   hadd %h /^Kscr$/2067 $chr($base(1D4A6, 16, 10))
  4647.   hadd %h /^Nscr$/2068 $chr($base(1D4A9, 16, 10))
  4648.   hadd %h /^Oscr$/2069 $chr($base(1D4AA, 16, 10))
  4649.   hadd %h /^Pscr$/2070 $chr($base(1D4AB, 16, 10))
  4650.   hadd %h /^Qscr$/2071 $chr($base(1D4AC, 16, 10))
  4651.   hadd %h /^Sscr$/2072 $chr($base(1D4AE, 16, 10))
  4652.   hadd %h /^Tscr$/2073 $chr($base(1D4AF, 16, 10))
  4653.   hadd %h /^Uscr$/2074 $chr($base(1D4B0, 16, 10))
  4654.   hadd %h /^Vscr$/2075 $chr($base(1D4B1, 16, 10))
  4655.   hadd %h /^Wscr$/2076 $chr($base(1D4B2, 16, 10))
  4656.   hadd %h /^Xscr$/2077 $chr($base(1D4B3, 16, 10))
  4657.   hadd %h /^Yscr$/2078 $chr($base(1D4B4, 16, 10))
  4658.   hadd %h /^Zscr$/2079 $chr($base(1D4B5, 16, 10))
  4659.   hadd %h /^ascr$/2080 $chr($base(1D4B6, 16, 10))
  4660.   hadd %h /^bscr$/2081 $chr($base(1D4B7, 16, 10))
  4661.   hadd %h /^cscr$/2082 $chr($base(1D4B8, 16, 10))
  4662.   hadd %h /^dscr$/2083 $chr($base(1D4B9, 16, 10))
  4663.   hadd %h /^fscr$/2084 $chr($base(1D4BB, 16, 10))
  4664.   hadd %h /^hscr$/2085 $chr($base(1D4BD, 16, 10))
  4665.   hadd %h /^iscr$/2086 $chr($base(1D4BE, 16, 10))
  4666.   hadd %h /^jscr$/2087 $chr($base(1D4BF, 16, 10))
  4667.   hadd %h /^kscr$/2088 $chr($base(1D4C0, 16, 10))
  4668.   hadd %h /^lscr$/2089 $chr($base(1D4C1, 16, 10))
  4669.   hadd %h /^mscr$/2090 $chr($base(1D4C2, 16, 10))
  4670.   hadd %h /^nscr$/2091 $chr($base(1D4C3, 16, 10))
  4671.   hadd %h /^pscr$/2092 $chr($base(1D4C5, 16, 10))
  4672.   hadd %h /^qscr$/2093 $chr($base(1D4C6, 16, 10))
  4673.   hadd %h /^rscr$/2094 $chr($base(1D4C7, 16, 10))
  4674.   hadd %h /^sscr$/2095 $chr($base(1D4C8, 16, 10))
  4675.   hadd %h /^tscr$/2096 $chr($base(1D4C9, 16, 10))
  4676.   hadd %h /^uscr$/2097 $chr($base(1D4CA, 16, 10))
  4677.   hadd %h /^vscr$/2098 $chr($base(1D4CB, 16, 10))
  4678.   hadd %h /^wscr$/2099 $chr($base(1D4CC, 16, 10))
  4679.   hadd %h /^xscr$/2100 $chr($base(1D4CD, 16, 10))
  4680.   hadd %h /^yscr$/2101 $chr($base(1D4CE, 16, 10))
  4681.   hadd %h /^zscr$/2102 $chr($base(1D4CF, 16, 10))
  4682.   hadd %h /^Afr$/2103 $chr($base(1D504, 16, 10))
  4683.   hadd %h /^Bfr$/2104 $chr($base(1D505, 16, 10))
  4684.   hadd %h /^Dfr$/2105 $chr($base(1D507, 16, 10))
  4685.   hadd %h /^Efr$/2106 $chr($base(1D508, 16, 10))
  4686.   hadd %h /^Ffr$/2107 $chr($base(1D509, 16, 10))
  4687.   hadd %h /^Gfr$/2108 $chr($base(1D50A, 16, 10))
  4688.   hadd %h /^Jfr$/2109 $chr($base(1D50D, 16, 10))
  4689.   hadd %h /^Kfr$/2110 $chr($base(1D50E, 16, 10))
  4690.   hadd %h /^Lfr$/2111 $chr($base(1D50F, 16, 10))
  4691.   hadd %h /^Mfr$/2112 $chr($base(1D510, 16, 10))
  4692.   hadd %h /^Nfr$/2113 $chr($base(1D511, 16, 10))
  4693.   hadd %h /^Ofr$/2114 $chr($base(1D512, 16, 10))
  4694.   hadd %h /^Pfr$/2115 $chr($base(1D513, 16, 10))
  4695.   hadd %h /^Qfr$/2116 $chr($base(1D514, 16, 10))
  4696.   hadd %h /^Sfr$/2117 $chr($base(1D516, 16, 10))
  4697.   hadd %h /^Tfr$/2118 $chr($base(1D517, 16, 10))
  4698.   hadd %h /^Ufr$/2119 $chr($base(1D518, 16, 10))
  4699.   hadd %h /^Vfr$/2120 $chr($base(1D519, 16, 10))
  4700.   hadd %h /^Wfr$/2121 $chr($base(1D51A, 16, 10))
  4701.   hadd %h /^Xfr$/2122 $chr($base(1D51B, 16, 10))
  4702.   hadd %h /^Yfr$/2123 $chr($base(1D51C, 16, 10))
  4703.   hadd %h /^afr$/2124 $chr($base(1D51E, 16, 10))
  4704.   hadd %h /^bfr$/2125 $chr($base(1D51F, 16, 10))
  4705.   hadd %h /^cfr$/2126 $chr($base(1D520, 16, 10))
  4706.   hadd %h /^dfr$/2127 $chr($base(1D521, 16, 10))
  4707.   hadd %h /^efr$/2128 $chr($base(1D522, 16, 10))
  4708.   hadd %h /^ffr$/2129 $chr($base(1D523, 16, 10))
  4709.   hadd %h /^gfr$/2130 $chr($base(1D524, 16, 10))
  4710.   hadd %h /^hfr$/2131 $chr($base(1D525, 16, 10))
  4711.   hadd %h /^ifr$/2132 $chr($base(1D526, 16, 10))
  4712.   hadd %h /^jfr$/2133 $chr($base(1D527, 16, 10))
  4713.   hadd %h /^kfr$/2134 $chr($base(1D528, 16, 10))
  4714.   hadd %h /^lfr$/2135 $chr($base(1D529, 16, 10))
  4715.   hadd %h /^mfr$/2136 $chr($base(1D52A, 16, 10))
  4716.   hadd %h /^nfr$/2137 $chr($base(1D52B, 16, 10))
  4717.   hadd %h /^ofr$/2138 $chr($base(1D52C, 16, 10))
  4718.   hadd %h /^pfr$/2139 $chr($base(1D52D, 16, 10))
  4719.   hadd %h /^qfr$/2140 $chr($base(1D52E, 16, 10))
  4720.   hadd %h /^rfr$/2141 $chr($base(1D52F, 16, 10))
  4721.   hadd %h /^sfr$/2142 $chr($base(1D530, 16, 10))
  4722.   hadd %h /^tfr$/2143 $chr($base(1D531, 16, 10))
  4723.   hadd %h /^ufr$/2144 $chr($base(1D532, 16, 10))
  4724.   hadd %h /^vfr$/2145 $chr($base(1D533, 16, 10))
  4725.   hadd %h /^wfr$/2146 $chr($base(1D534, 16, 10))
  4726.   hadd %h /^xfr$/2147 $chr($base(1D535, 16, 10))
  4727.   hadd %h /^yfr$/2148 $chr($base(1D536, 16, 10))
  4728.   hadd %h /^zfr$/2149 $chr($base(1D537, 16, 10))
  4729.   hadd %h /^Aopf$/2150 $chr($base(1D538, 16, 10))
  4730.   hadd %h /^Bopf$/2151 $chr($base(1D539, 16, 10))
  4731.   hadd %h /^Dopf$/2152 $chr($base(1D53B, 16, 10))
  4732.   hadd %h /^Eopf$/2153 $chr($base(1D53C, 16, 10))
  4733.   hadd %h /^Fopf$/2154 $chr($base(1D53D, 16, 10))
  4734.   hadd %h /^Gopf$/2155 $chr($base(1D53E, 16, 10))
  4735.   hadd %h /^Iopf$/2156 $chr($base(1D540, 16, 10))
  4736.   hadd %h /^Jopf$/2157 $chr($base(1D541, 16, 10))
  4737.   hadd %h /^Kopf$/2158 $chr($base(1D542, 16, 10))
  4738.   hadd %h /^Lopf$/2159 $chr($base(1D543, 16, 10))
  4739.   hadd %h /^Mopf$/2160 $chr($base(1D544, 16, 10))
  4740.   hadd %h /^Oopf$/2161 $chr($base(1D546, 16, 10))
  4741.   hadd %h /^Sopf$/2162 $chr($base(1D54A, 16, 10))
  4742.   hadd %h /^Topf$/2163 $chr($base(1D54B, 16, 10))
  4743.   hadd %h /^Uopf$/2164 $chr($base(1D54C, 16, 10))
  4744.   hadd %h /^Vopf$/2165 $chr($base(1D54D, 16, 10))
  4745.   hadd %h /^Wopf$/2166 $chr($base(1D54E, 16, 10))
  4746.   hadd %h /^Xopf$/2167 $chr($base(1D54F, 16, 10))
  4747.   hadd %h /^Yopf$/2168 $chr($base(1D550, 16, 10))
  4748.   hadd %h /^aopf$/2169 $chr($base(1D552, 16, 10))
  4749.   hadd %h /^bopf$/2170 $chr($base(1D553, 16, 10))
  4750.   hadd %h /^copf$/2171 $chr($base(1D554, 16, 10))
  4751.   hadd %h /^dopf$/2172 $chr($base(1D555, 16, 10))
  4752.   hadd %h /^eopf$/2173 $chr($base(1D556, 16, 10))
  4753.   hadd %h /^fopf$/2174 $chr($base(1D557, 16, 10))
  4754.   hadd %h /^gopf$/2175 $chr($base(1D558, 16, 10))
  4755.   hadd %h /^hopf$/2176 $chr($base(1D559, 16, 10))
  4756.   hadd %h /^iopf$/2177 $chr($base(1D55A, 16, 10))
  4757.   hadd %h /^jopf$/2178 $chr($base(1D55B, 16, 10))
  4758.   hadd %h /^kopf$/2179 $chr($base(1D55C, 16, 10))
  4759.   hadd %h /^lopf$/2180 $chr($base(1D55D, 16, 10))
  4760.   hadd %h /^mopf$/2181 $chr($base(1D55E, 16, 10))
  4761.   hadd %h /^nopf$/2182 $chr($base(1D55F, 16, 10))
  4762.   hadd %h /^oopf$/2183 $chr($base(1D560, 16, 10))
  4763.   hadd %h /^popf$/2184 $chr($base(1D561, 16, 10))
  4764.   hadd %h /^qopf$/2185 $chr($base(1D562, 16, 10))
  4765.   hadd %h /^ropf$/2186 $chr($base(1D563, 16, 10))
  4766.   hadd %h /^sopf$/2187 $chr($base(1D564, 16, 10))
  4767.   hadd %h /^topf$/2188 $chr($base(1D565, 16, 10))
  4768.   hadd %h /^uopf$/2189 $chr($base(1D566, 16, 10))
  4769.   hadd %h /^vopf$/2190 $chr($base(1D567, 16, 10))
  4770.   hadd %h /^wopf$/2191 $chr($base(1D568, 16, 10))
  4771.   hadd %h /^xopf$/2192 $chr($base(1D569, 16, 10))
  4772.   hadd %h /^yopf$/2193 $chr($base(1D56A, 16, 10))
  4773.   hadd %h /^zopf$/2194 $chr($base(1D56B, 16, 10))
  4774.   hadd %h /^b\.Gamma$/2195 $chr($base(1D6AA, 16, 10))
  4775.   hadd %h /^b\.Delta$/2196 $chr($base(1D6AB, 16, 10))
  4776.   hadd %h /^b\.Theta$/2197 $chr($base(1D6AF, 16, 10))
  4777.   hadd %h /^b\.Lambda$/2198 $chr($base(1D6B2, 16, 10))
  4778.   hadd %h /^b\.Xi$/2199 $chr($base(1D6B5, 16, 10))
  4779.   hadd %h /^b\.Pi$/2200 $chr($base(1D6B7, 16, 10))
  4780.   hadd %h /^b\.Sigma$/2201 $chr($base(1D6BA, 16, 10))
  4781.   hadd %h /^b\.Upsi$/2202 $chr($base(1D6BC, 16, 10))
  4782.   hadd %h /^b\.Phi$/2203 $chr($base(1D6BD, 16, 10))
  4783.   hadd %h /^b\.Psi$/2204 $chr($base(1D6BF, 16, 10))
  4784.   hadd %h /^b\.Omega$/2205 $chr($base(1D6C0, 16, 10))
  4785.   hadd %h /^b\.alpha$/2206 $chr($base(1D6C2, 16, 10))
  4786.   hadd %h /^b\.beta$/2207 $chr($base(1D6C3, 16, 10))
  4787.   hadd %h /^b\.gamma$/2208 $chr($base(1D6C4, 16, 10))
  4788.   hadd %h /^b\.delta$/2209 $chr($base(1D6C5, 16, 10))
  4789.   hadd %h /^b\.epsi$/2210 $chr($base(1D6C6, 16, 10))
  4790.   hadd %h /^b\.zeta$/2211 $chr($base(1D6C7, 16, 10))
  4791.   hadd %h /^b\.eta$/2212 $chr($base(1D6C8, 16, 10))
  4792.   hadd %h /^b\.thetas$/2213 $chr($base(1D6C9, 16, 10))
  4793.   hadd %h /^b\.iota$/2214 $chr($base(1D6CA, 16, 10))
  4794.   hadd %h /^b\.kappa$/2215 $chr($base(1D6CB, 16, 10))
  4795.   hadd %h /^b\.lambda$/2216 $chr($base(1D6CC, 16, 10))
  4796.   hadd %h /^b\.mu$/2217 $chr($base(1D6CD, 16, 10))
  4797.   hadd %h /^b\.nu$/2218 $chr($base(1D6CE, 16, 10))
  4798.   hadd %h /^b\.xi$/2219 $chr($base(1D6CF, 16, 10))
  4799.   hadd %h /^b\.pi$/2220 $chr($base(1D6D1, 16, 10))
  4800.   hadd %h /^b\.rho$/2221 $chr($base(1D6D2, 16, 10))
  4801.   hadd %h /^b\.sigmav$/2222 $chr($base(1D6D3, 16, 10))
  4802.   hadd %h /^b\.sigma$/2223 $chr($base(1D6D4, 16, 10))
  4803.   hadd %h /^b\.tau$/2224 $chr($base(1D6D5, 16, 10))
  4804.   hadd %h /^b\.upsi$/2225 $chr($base(1D6D6, 16, 10))
  4805.   hadd %h /^b\.phi$/2226 $chr($base(1D6D7, 16, 10))
  4806.   hadd %h /^b\.chi$/2227 $chr($base(1D6D8, 16, 10))
  4807.   hadd %h /^b\.psi$/2228 $chr($base(1D6D9, 16, 10))
  4808.   hadd %h /^b\.omega$/2229 $chr($base(1D6DA, 16, 10))
  4809.   hadd %h /^b\.epsiv$/2230 $chr($base(1D6DC, 16, 10))
  4810.   hadd %h /^b\.thetav$/2231 $chr($base(1D6DD, 16, 10))
  4811.   hadd %h /^b\.kappav$/2232 $chr($base(1D6DE, 16, 10))
  4812.   hadd %h /^b\.phiv$/2233 $chr($base(1D6DF, 16, 10))
  4813.   hadd %h /^b\.rhov$/2234 $chr($base(1D6E0, 16, 10))
  4814.   hadd %h /^b\.piv$/2235 $chr($base(1D6E1, 16, 10))
  4815.   hadd %h /^b\.Gammad$/2236 $chr($base(1D7CA, 16, 10))
  4816.   hadd %h /^b\.gammad$/2237 $chr($base(1D7CB, 16, 10))
  4817. }
  4818.  
  4819. ; --- End of other aliases ---
  4820.  
  4821. ; ------------------------------------------------------------------------------ EOF ------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement