Jump to content

Basic Emitter Messenger Terminal


RONinja

Recommended Posts


Emitter Terminal Console
Requirements:
1 emitter
1 receiver
1 screen
1 program board

 

LINK SCREEN FIRST   RECEIVER SECOND     EMITTER THIRD.
Link All items FROM Program Board to Elements to ensure all links are green.

 

Starts with Entering a Password       Default is PASS

You can edit Lua Parameters by RCL the PB and finding the button Edit Lua Parameters
You can turn off Password Lock by unchecking box in Lua Parameter.

 

 

To Link Example Script Used in Video
Link Receiver then Emitter then 1 Container then Link Switch FROM AND TO PB (turn light blue) then link door

 

 

This console can change channel and send messages via Emitter.
To Change channel you can edit Lua Parameter or Type In the console the Channel you want it to change to and hit the Bottom Right Channel Button.
To Send after a desired channel is set Type your message and click Enter.

Enjoy :) DU IT.

 

 

 

Json Paste

 Emitter System------------------------------

{"slots":{"0":{"name":"slot3","type":{"events":[],"methods":[]}},"1":{"name":"slot2","type":{"events":[],"methods":[]}},"2":{"name":"slot1","type":{"events":[],"methods":[]}},"3":{"name":"slot4","type":{"events":[],"methods":[]}},"4":{"name":"slot5","type":{"events":[],"methods":[]}},"5":{"name":"slot6","type":{"events":[],"methods":[]}},"6":{"name":"slot7","type":{"events":[],"methods":[]}},"7":{"name":"slot8","type":{"events":[],"methods":[]}},"8":{"name":"slot9","type":{"events":[],"methods":[]}},"9":{"name":"slot10","type":{"events":[],"methods":[]}},"-1":{"name":"unit","type":{"events":[],"methods":[]}},"-2":{"name":"system","type":{"events":[],"methods":[]}},"-3":{"name":"library","type":{"events":[],"methods":[]}}},"handlers":[{"code":"MSMouseX = x\nMSMouseY = y\nMSMouseDown = true\nMSAttention = 0\nMSDislikeButton = 0\nMSLikeButton = 0\nMSButtonSelected = evaluateButtons()\nonButtonDown(MSButtonSelected)","filter":{"args":[{"variable":"*"},{"variable":"*"}],"signature":"mouseDown(x,y)","slotKey":"0"},"key":"0"},{"code":"MSMouseX = x\nMSMouseY = y\nMSMouseDown = false\nlocal buttonNo = evaluateButtons()\nif MSButtonSelected > 0 and MSButtonSelected == buttonNo then\n    onButtonUp(buttonNo)\n    onClick(buttonNo)\nend\nMSButtonSelected = -buttonNo","filter":{"args":[{"variable":"*"},{"variable":"*"}],"signature":"mouseUp(x,y)","slotKey":"0"},"key":"1"},{"code":"table.insert(lines, \"ID: \" .. channel .. \"/ MSG: \" .. message)\n","filter":{"args":[{"variable":"*"},{"variable":"*"}],"signature":"receive(channel,message)","slotKey":"1"},"key":"2"},{"code":"keybhidden = \"Goodbye\"\nunit.exit()","filter":{"args":[{"value":"exit"}],"signature":"tick(timerId)","slotKey":"-1"},"key":"3"},{"code":"function getSlots()\n    local slot={}\n    local self = self or unit or {} -- in-game, self is the active control unit\n    for key, value in pairs(self) do\n        if type(key) == \"string\" and type(value) == \"table\" and type(value.export) == \"table\" then\n            slot[key] = value\n        end\n    end\n    return slot\nend\n\nfunction getRequiredElements(slots)\n    local foundScreen=false\n    local foundEmitter=false\n    local foundReceiver=false\n    for slotName, slotElement in pairs(slots) do\n        if slotElement.setRawHTML then foundScreen = slotElement\n        elseif slotElement.send then foundEmitter = slotElement\n        elseif slotElement.getRange and not slotElement.send then foundReceiver = slotElement\n        end\n    end\n    return foundScreen,foundEmitter,foundReceiver\nend\n\n---\nscreen, emitter, receiver = getRequiredElements(getSlots())\nif not screen then\n    error('Setup Error: Missing important element: screen')\n    unit.exit()\nend\nif not emitter then\n    error('Setup Error: Missing important element: emitter')\n    unit.exit()\nend\nif not receiver then\n    error('Setup Error: Missing important element: receiver')\n    unit.exit()    \nend\n------------------------------\nunit.hide()\n-------------------------system start----------------------------------------------------------\n-- Internal variables\nkeyb=\"\"\nkeybhidden = \"\"\nLockonStart = true\n\nconsta=0\nMSButtons = {}\nMSMouseX = 0\nMSMouseY = 0\nMSMouseDown = false\nMSButtonSelected = 0\nMSAttention = 0\nMSDislikeButton = 0\nMSLikeButton = 0\nMSHintButton = 0\nMSAttentionMessage = \"\"\nMSAttentionVisible = false\nstartupnow = 1\nEnterPressed = false\npassword = \"PASS\"--export:\nLockonStart = true--export:\nCurChan = \"01\"--export:Channel on Start\nstartcount = 0\nlineIndex = 0\nlines = {}\n\nfunction CheckEnterButton()\nif LockonStart == true then\n    if EnterPressed == true then\n        if keyb == password then\n            keyb=\"\"\n            screen.addText(30,10,7,keyb)\n            consta=string.len(keyb)\n            keybhidden=\"Access Granted\"\n            EnterPressed = false            \n            LockonStart = false\n            CheckEnterButton()\n        elseif keyb ~= password then \n            keyb=\"\"\n            keybhidden=\"Access DENIED\"\n            screen.addText(30,10,7,keyb)\n            consta=string.len(keyb)\n            unit.setTimer(\"exit\",1)\n        end\n    end\nelseif LockonStart == false then   \n    if EnterPressed == true then\n        emitter.send(CurChan,(keyb))\n        EnterPressed = false\n        keyb = \"\"\n    end\nend\nend\nfunction updateScreen() \n\nif startupnow == 1 then    ----- engine stat end emitter start\n    tablex.clear(MSButtons, button)\n      for i = 1,1 do\n   local button = {id = (\"b\"..1), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=1/100, right=6.5/100}\n    table.insert(MSButtons, button)\nend\n  for i = 2,2 do\n   local button = {id = (\"b\"..2), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=8/100, right=14/100}\n    table.insert(MSButtons, button)\nend\n    for i = 3,3 do\n    local button = {id = (\"b\"..3), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=15/100, right=22/100}\n      table.insert(MSButtons, button)\nend\n    for i = 4,4 do   \n    local button = {id = (\"b\"..4), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=23/100, right=30/100}\n      table.insert(MSButtons, button)\nend\n    for i = 5,5 do   \n    local button = {id = (\"b\"..5), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=31/100, right=38/100}\n      table.insert(MSButtons, button)\nend\n    for i = 6,6 do   \n    local button = {id = (\"b\"..6), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=39/100, right=46/100}\n      table.insert(MSButtons, button)\nend\n    for i = 7,7 do   \n    local button = {id = (\"b\"..7), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=47/100, right=53/100}\n      table.insert(MSButtons, button)\nend\n    for i = 8,8 do   \n    local button = {id = (\"b\"..8), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=54/100, right=61/100}\n      table.insert(MSButtons, button)\nend\n    for i = 9,9 do   \n    local button = {id = (\"b\"..9), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=62/100, right=69/100}\n      table.insert(MSButtons, button)\nend\n    for i = 10,10 do   \n    local button = {id = (\"b\"..10), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=70/100, right=77/100}\n      table.insert(MSButtons, button)\nend\n    for i = 11,11 do   \n    local button = {id = (\"b\"..11), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=78/100, right=85/100}\n      table.insert(MSButtons, button)\nend\n    for i = 12,12 do   \n    local button = {id = (\"b\"..12), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=86/100, right=100/100}\n      table.insert(MSButtons, button)\nend\n\n\n\n    for i = 13,13 do   \n    local button = {id = (\"b\"..13), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=4/100, right=10/100}\n    table.insert(MSButtons, button)\nend\n      for i = 14,14 do\n   local button = {id = (\"b\"..14), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=11.5/100, right=18/100}\n    table.insert(MSButtons, button)\nend\n  for i = 15,15 do\n   local button = {id = (\"b\"..15), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=19/100, right=26/100}\n    table.insert(MSButtons, button)\nend\n    for i = 16,16 do\n    local button = {id = (\"b\"..16), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=27/100, right=34/100}\n      table.insert(MSButtons, button)\nend\n    for i = 17,17 do   \n    local button = {id = (\"b\"..17), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=35/100, right=42/100}\n      table.insert(MSButtons, button)\nend\n    for i = 18,18 do   \n    local button = {id = (\"b\"..18), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=43/100, right=50/100}\n      table.insert(MSButtons, button)\nend\n    for i = 19,19 do   \n    local button = {id = (\"b\"..19), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=51/100, right=58/100}\n      table.insert(MSButtons, button)\nend\n    for i = 20,20 do   \n    local button = {id = (\"b\"..20), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=59/100, right=65/100}\n      table.insert(MSButtons, button)\nend\n      for i = 21,21 do\n   local button = {id = (\"b\"..21), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=66.5/100, right=73/100}\n    table.insert(MSButtons, button)\nend\n  for i = 22,22 do\n   local button = {id = (\"b\"..22), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=74/100, right=89/100}\n    table.insert(MSButtons, button)\nend\n\n\n    for i = 23,23 do\n    local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=8/100, right=15/100}\n      table.insert(MSButtons, button)\nend\n    for i = 24,24 do   \n    local button = {id = (\"b\"..24), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=16/100, right=23/100}\n      table.insert(MSButtons, button)\nend\n    for i = 25,25 do   \n    local button = {id = (\"b\"..25), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=24/100, right=31/100}\n      table.insert(MSButtons, button)\nend\n    for i = 26,26 do   \n    local button = {id = (\"b\"..26), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=32/100, right=39/100}\n      table.insert(MSButtons, button)\nend\n    for i = 27,27 do   \n    local button = {id = (\"b\"..27), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=40/100, right=46/100}\n      table.insert(MSButtons, button)\nend\n    for i = 28,28 do   \n    local button = {id = (\"b\"..28), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=47/100, right=54/100}\n      table.insert(MSButtons, button)\nend\n    for i = 29,29 do   \n    local button = {id = (\"b\"..29), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=55/100, right=62/100}\n      table.insert(MSButtons, button)\nend\n    for i = 30,30 do   \n    local button = {id = (\"b\"..30), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=63/100, right=70/100}\n      table.insert(MSButtons, button)\nend\n    for i = 31,31 do   \n    local button = {id = (\"b\"..31), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=71/100, right=85/100}\n      table.insert(MSButtons, button)\nend\n\n\n    for i = 32,32 do   \n    local button = {id = (\"b\"..32), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=30/100, right=59/100}\n      table.insert(MSButtons, button)\nend\n    for i = 33,33 do   \n    local button = {id = (\"b\"..33), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=63/100, right=77/100}\n    table.insert(MSButtons, button)\nend\n      for i = 34,34 do\n   local button = {id = (\"b\"..34), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=85/100, right=100/100}\n    table.insert(MSButtons, button)\nend\n    for i = 35,35 do   \n    local button = {id = (\"b\"..35), enabled=true, td=\"<td>\", top=90/100, bottom=100/100, left=1/100, right=18/100}\n    table.insert(MSButtons, button)\nend\nfunction evaluateButtons()\n  local selected = 0\n  \n  if #MSButtons >= 1 then\n\n         -- Set button styles\n       for i, button in ipairs(MSButtons) do\n            if button.left < MSMouseX and MSMouseX < button.right and button.top < MSMouseY and MSMouseY < button.bottom then\n                if MSMouseDown and MSButtonSelected == i then\n                end\n                selected = i\n            end\n            if not button.enabled then\n            end\n\n        end\n  end\n  return selected\nend\n\n\nfunction onButtonDown(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n\treturn\n  end\nend\nfunction onButtonUp(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n    return\n  end\n        \n\nfunction onClick(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n    return\n  end\nend\n   if buttonNo == 1 then\n    keyb=keyb..\"Q\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 2 then\n    keyb=keyb..\"W\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 3 then\n    keyb=keyb..\"E\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 4 then\n    keyb=keyb..\"R\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 5 then\n    keyb=keyb..\"T\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 6 then\n    keyb=keyb..\"Y\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 7 then\n    keyb=keyb..\"U\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 8 then\n    keyb=keyb..\"I\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 9 then\n    keyb=keyb..\"O\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 10 then\n    keyb=keyb..\"P\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 11 then\n    tablex.clear(lines,html)\n  elseif buttonNo == 12 then\n    keyb = \"\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 13 then\n    keyb=keyb..\"A\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 14 then\n    keyb=keyb..\"S\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 15 then\n    keyb=keyb..\"D\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 16 then\n    keyb=keyb..\"F\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 17 then\n    keyb=keyb..\"G\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 18 then\n    keyb=keyb..\"H\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 19 then\n    keyb=keyb..\"J\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 20 then\n    keyb=keyb..\"K\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 21 then\n    keyb=keyb..\"L\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 22 then   ----enterbutton\n    EnterPressed = true\n    CheckEnterButton()\n  elseif buttonNo == 23 then\n    keyb=keyb..\"Z\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 24 then\n    keyb=keyb..\"X\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 25 then\n    keyb=keyb..\"C\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 26 then\n    keyb=keyb..\"V\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 27 then\n    keyb=keyb..\"B\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 28 then\n    keyb=keyb..\"N\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 29 then\n    keyb=keyb..\"M\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 30 then\n    keyb=keyb..\".\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 31 then\n    startupnow = 1.1\n  elseif buttonNo == 32 then\n    keyb=keyb..\" \"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 33 then\n    startupnow = 1.2\n  elseif buttonNo == 34 then\n    if LockonStart == false then\n        CurChan = keyb\n        keyb = \"\"\n    else\n        keybhidden = \"Buttons Are (LOCKED) ACCESS DENIED\"\n        unit.setTimer(\"exit\",1)\n    end\n  elseif buttonNo == 35 then\n\n  end\nend\n  \npage = [[\n<svg viewBox=\"0 0 1024 612\">\n<g>\n<title>background</title>\n<rect x=\"-1\" y=\"-1\" width=\"1026\" height=\"614\"/>\n<g display=\"none\">\n<rect width=\"100%\" height=\"100%\" fill=\"url(#gridpattern)\" stroke-width=\"0\"/>\n</g>\n</g>\n<g>\n<title>Layer 1</title>\n<rect x=\"7\" y=\"5\" width=\"1012\" height=\"290\" rx=\"20\" fill=\"#007f7f\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<rect x=\"1\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"14.997276\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Q</text>\n<rect x=\"80\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"90\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">W</text>\n<rect x=\"160\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"178\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">E</text>\n<rect x=\"240\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"255\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">R</text>\n<rect x=\"320\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"337\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">T</text>\n<rect x=\"400\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"417\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Y</text>\n<rect x=\"480\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"496\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">U</text>\n<rect x=\"560\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"586\" y=\"361.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">I</text>\n<rect x=\"640\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"654\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">O</text>\n<rect x=\"720\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"740\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">P</text>\n<rect x=\"880\" y=\"306\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"895\" y=\"350\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">CLEAR</text>\n<rect x=\"800\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"802\" y=\"350\" cursor=\"move\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<rect x=\"41\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"59\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">A</text>\n<rect x=\"121\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"136\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">S</text>\n<rect x=\"201\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"218\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">D</text>\n<rect x=\"281\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"298\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">F</text>\n<rect x=\"361\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"377\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">G</text>\n<rect x=\"441\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"455\" y=\"440.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">H</text>\n<rect x=\"521\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"540\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">J</text>\n<rect x=\"601\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"619\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">K</text>\n<rect x=\"761\" y=\"385\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"785\" y=\"430\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Enter</text>\n<rect x=\"681\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"700\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">L</text>\n<rect x=\"86\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"101\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Z</text>\n<rect x=\"166\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"183\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">X</text>\n<rect x=\"246\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"263\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">C</text>\n<rect x=\"326\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"342\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">V</text>\n<rect x=\"406\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"420\" y=\"521.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">B</text>\n<rect x=\"486\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"500\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">N</text>\n<rect x=\"566\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"578\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">M</text>\n<rect x=\"646\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"656\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<rect x=\"306\" y=\"545\" width=\"300\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<rect x=\"726\" y=\"466\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"750\" y=\"510\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">SHIFT</text>\n<rect x=\"650\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"690\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"28\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">?123</text>\n<rect x=\"880\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"890\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">CH:]]..CurChan..[[</text>\n<text x=\"674\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">.</text>\n\n<text x=\"50\" y=\"280\" fill=\"#0000ff\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"25\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">]]..keybhidden..[[</text>\n</g>]] \n    local buttonNo = evaluateButtons()\n    if MSMouseDown then\n      MSMouseX = screen.getMouseX()\n      MSMouseY = screen.getMouseY()\n      if buttonNo ~= MSButtonSelected or MSMouseX < 0.05 or MSMouseX > 0.95 or MSMouseY < 0.05 or MSMouseY > 0.95 then\n        if MSButtonSelected > 0 then\n          onButtonUp(MSButtonSelected)\n        end\n        MSButtonSelected = 0\n      end        \n    end\n\n    screen.setHTML(page)\n \n\n\n\n\n\n\n--------------------small letter keyboard\n\n\n\n\nelseif startupnow == 1.1 then\n\n               tablex.clear(MSButtons, button)\n      for i = 1,1 do\n   local button = {id = (\"b\"..1), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=1/100, right=6.5/100}\n    table.insert(MSButtons, button)\nend\n  for i = 2,2 do\n   local button = {id = (\"b\"..2), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=8/100, right=14/100}\n    table.insert(MSButtons, button)\nend\n    for i = 3,3 do\n    local button = {id = (\"b\"..3), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=15/100, right=22/100}\n      table.insert(MSButtons, button)\nend\n    for i = 4,4 do   \n    local button = {id = (\"b\"..4), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=23/100, right=30/100}\n      table.insert(MSButtons, button)\nend\n    for i = 5,5 do   \n    local button = {id = (\"b\"..5), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=31/100, right=38/100}\n      table.insert(MSButtons, button)\nend\n    for i = 6,6 do   \n    local button = {id = (\"b\"..6), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=39/100, right=46/100}\n      table.insert(MSButtons, button)\nend\n    for i = 7,7 do   \n    local button = {id = (\"b\"..7), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=47/100, right=53/100}\n      table.insert(MSButtons, button)\nend\n    for i = 8,8 do   \n    local button = {id = (\"b\"..8), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=54/100, right=61/100}\n      table.insert(MSButtons, button)\nend\n    for i = 9,9 do   \n    local button = {id = (\"b\"..9), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=62/100, right=69/100}\n      table.insert(MSButtons, button)\nend\n    for i = 10,10 do   \n    local button = {id = (\"b\"..10), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=70/100, right=77/100}\n      table.insert(MSButtons, button)\nend\n    for i = 11,11 do   \n    local button = {id = (\"b\"..11), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=78/100, right=85/100}\n      table.insert(MSButtons, button)\nend\n    for i = 12,12 do   \n    local button = {id = (\"b\"..12), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=86/100, right=100/100}\n      table.insert(MSButtons, button)\nend\n\n\n\n    for i = 13,13 do   \n    local button = {id = (\"b\"..13), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=4/100, right=10/100}\n    table.insert(MSButtons, button)\nend\n      for i = 14,14 do\n   local button = {id = (\"b\"..14), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=11.5/100, right=18/100}\n    table.insert(MSButtons, button)\nend\n  for i = 15,15 do\n   local button = {id = (\"b\"..15), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=19/100, right=26/100}\n    table.insert(MSButtons, button)\nend\n    for i = 16,16 do\n    local button = {id = (\"b\"..16), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=27/100, right=34/100}\n      table.insert(MSButtons, button)\nend\n    for i = 17,17 do   \n    local button = {id = (\"b\"..17), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=35/100, right=42/100}\n      table.insert(MSButtons, button)\nend\n    for i = 18,18 do   \n    local button = {id = (\"b\"..18), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=43/100, right=50/100}\n      table.insert(MSButtons, button)\nend\n    for i = 19,19 do   \n    local button = {id = (\"b\"..19), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=51/100, right=58/100}\n      table.insert(MSButtons, button)\nend\n    for i = 20,20 do   \n    local button = {id = (\"b\"..20), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=59/100, right=65/100}\n      table.insert(MSButtons, button)\nend\n      for i = 21,21 do\n   local button = {id = (\"b\"..21), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=66.5/100, right=73/100}\n    table.insert(MSButtons, button)\nend\n  for i = 22,22 do\n   local button = {id = (\"b\"..22), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=74/100, right=89/100}\n    table.insert(MSButtons, button)\nend\n\n\n    for i = 23,23 do\n    local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=8/100, right=15/100}\n      table.insert(MSButtons, button)\nend\n    for i = 24,24 do   \n    local button = {id = (\"b\"..24), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=16/100, right=23/100}\n      table.insert(MSButtons, button)\nend\n    for i = 25,25 do   \n    local button = {id = (\"b\"..25), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=24/100, right=31/100}\n      table.insert(MSButtons, button)\nend\n    for i = 26,26 do   \n    local button = {id = (\"b\"..26), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=32/100, right=39/100}\n      table.insert(MSButtons, button)\nend\n    for i = 27,27 do   \n    local button = {id = (\"b\"..27), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=40/100, right=46/100}\n      table.insert(MSButtons, button)\nend\n    for i = 28,28 do   \n    local button = {id = (\"b\"..28), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=47/100, right=54/100}\n      table.insert(MSButtons, button)\nend\n    for i = 29,29 do   \n    local button = {id = (\"b\"..29), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=55/100, right=62/100}\n      table.insert(MSButtons, button)\nend\n    for i = 30,30 do   \n    local button = {id = (\"b\"..30), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=63/100, right=70/100}\n      table.insert(MSButtons, button)\nend\n    for i = 31,31 do   \n    local button = {id = (\"b\"..31), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=71/100, right=85/100}\n      table.insert(MSButtons, button)\nend\n\n\n    for i = 32,32 do   \n    local button = {id = (\"b\"..32), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=30/100, right=59/100}\n      table.insert(MSButtons, button)\nend\n    for i = 33,33 do   \n    local button = {id = (\"b\"..33), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=63/100, right=77/100}\n    table.insert(MSButtons, button)\nend\n      for i = 34,34 do\n   local button = {id = (\"b\"..34), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=85/100, right=100/100}\n    table.insert(MSButtons, button)\nend\n    for i = 35,35 do   \n    local button = {id = (\"b\"..35), enabled=true, td=\"<td>\", top=90/100, bottom=100/100, left=1/100, right=18/100}\n    table.insert(MSButtons, button)\nend\n\nfunction evaluateButtons()\n  local selected = 0\n  \n  if #MSButtons >= 1 then\n\n         -- Set button styles\n       for i, button in ipairs(MSButtons) do\n            if button.left < MSMouseX and MSMouseX < button.right and button.top < MSMouseY and MSMouseY < button.bottom then\n                if MSMouseDown and MSButtonSelected == i then\n                end\n                selected = i\n            end\n            if not button.enabled then\n            end\n\n        end\n  end\n  return selected\nend\n\nfunction onButtonDown(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n\treturn\n  end\nend\nfunction onButtonUp(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n    return\n  end\n        \n\nfunction onClick(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n    return\n  end\nend\n  if buttonNo == 1 then\n    keyb=keyb..\"q\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 2 then\n    keyb=keyb..\"w\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 3 then\n    keyb=keyb..\"e\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 4 then\n    keyb=keyb..\"r\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 5 then\n    keyb=keyb..\"t\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 6 then\n    keyb=keyb..\"y\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 7 then\n    keyb=keyb..\"u\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 8 then\n    keyb=keyb..\"i\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 9 then\n    keyb=keyb..\"o\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 10 then\n    keyb=keyb..\"p\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 11 then\n    tablex.clear(lines,html)   \n  elseif buttonNo == 12 then\n    keyb = \"\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 13 then\n    keyb=keyb..\"a\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 14 then\n    keyb=keyb..\"s\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 15 then\n    keyb=keyb..\"d\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 16 then\n    keyb=keyb..\"f\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 17 then\n    keyb=keyb..\"g\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 18 then\n    keyb=keyb..\"h\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 19 then\n    keyb=keyb..\"j\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 20 then\n    keyb=keyb..\"k\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 21 then\n    keyb=keyb..\"l\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 22 then\n    EnterPressed = true\n    CheckEnterButton()\n  elseif buttonNo == 23 then\n    keyb=keyb..\"z\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 24 then\n    keyb=keyb..\"x\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 25 then\n    keyb=keyb..\"c\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 26 then\n    keyb=keyb..\"v\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 27 then\n    keyb=keyb..\"b\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 28 then\n    keyb=keyb..\"n\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 29 then\n    keyb=keyb..\"m\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 30 then\n    keyb=keyb..\".\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 31 then\n    startupnow = 1\n  elseif buttonNo == 32 then\n    keyb=keyb..\" \"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 33 then\n    startupnow = 1.2\n  elseif buttonNo == 34 then\n    if LockonStart == false then\n        CurChan = keyb\n        keyb = \"\"\n    else\n        keybhidden = \"Buttons Are (LOCKED) ACCESS DENIED\"\n        unit.setTimer(\"exit\",1)\n    end\n  elseif buttonNo == 35 then\n\n  end\nend\n\npage = [[\n<svg viewBox=\"0 0 1024 612\">\n<g>\n<title>background</title>\n<rect x=\"-1\" y=\"-1\" width=\"1026\" height=\"614\"/>\n<g display=\"none\">\n<rect width=\"100%\" height=\"100%\" fill=\"url(#gridpattern)\" stroke-width=\"0\"/>\n</g>\n</g>\n<g>\n<title>Layer 1</title>\n<rect x=\"7\" y=\"5\" width=\"1012\" height=\"290\" rx=\"20\" fill=\"#007f7f\" stroke=\"#0f0\" stroke-width=\"5\"/>\n\n<rect x=\"1\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"14.997276\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">q</text>\n<rect x=\"80\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"90\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">w</text>\n<rect x=\"160\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"178\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">e</text>\n<rect x=\"240\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"255\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">r</text>\n<rect x=\"320\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"337\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">t</text>\n<rect x=\"400\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"417\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">y</text>\n<rect x=\"480\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"496\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">u</text>\n<rect x=\"560\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"586\" y=\"361.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">i</text>\n<rect x=\"640\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"654\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">o</text>\n<rect x=\"720\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"740\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">p</text>\n<rect x=\"880\" y=\"306\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"895\" y=\"350\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">CLEAR</text>\n<rect x=\"800\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"802\" y=\"350\" cursor=\"move\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<rect x=\"41\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"59\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">a</text>\n<rect x=\"121\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"136\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">s</text>\n<rect x=\"201\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"218\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">d</text>\n<rect x=\"281\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"298\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">f</text>\n<rect x=\"361\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"377\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">g</text>\n<rect x=\"441\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"455\" y=\"440.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">h</text>\n<rect x=\"521\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"540\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">j</text>\n<rect x=\"601\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"619\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">k</text>\n<rect x=\"761\" y=\"385\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"785\" y=\"430\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Enter</text>\n<rect x=\"681\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"700\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">l</text>\n<rect x=\"86\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"101\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">z</text>\n<rect x=\"166\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"183\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">x</text>\n<rect x=\"246\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"263\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">c</text>\n<rect x=\"326\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"342\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">v</text>\n<rect x=\"406\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"420\" y=\"521.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">b</text>\n<rect x=\"486\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"500\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">n</text>\n<rect x=\"566\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"578\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">m</text>\n<rect x=\"646\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n\n<rect x=\"306\" y=\"545\" width=\"300\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<rect x=\"726\" y=\"466\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#00bfbf\" stroke=\"#00ff00\" stroke-width=\"5\"/>\n<text x=\"750\" y=\"510\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">SHIFT</text>\n<rect x=\"650\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"690\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"28\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">?123</text>\n<rect x=\"880\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"890\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">CH:]]..CurChan..[[</text>\n<text x=\"674\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">.</text>\n\n<text x=\"50\" y=\"280\" fill=\"#0000ff\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"25\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">]]..keybhidden..[[</text>\n</g>]] \n    local buttonNo = evaluateButtons()\n    if MSMouseDown then\n      MSMouseX = screen.getMouseX()\n      MSMouseY = screen.getMouseY()\n      if buttonNo ~= MSButtonSelected or MSMouseX < 0.05 or MSMouseX > 0.95 or MSMouseY < 0.05 or MSMouseY > 0.95 then\n        if MSButtonSelected > 0 then\n          onButtonUp(MSButtonSelected)\n        end\n        MSButtonSelected = 0\n      end        \n    end\n\n\n    screen.setHTML(page)\n\n\n\n\nelseif startupnow == 1.2 then    ----- emitter end\n               tablex.clear(MSButtons, button)\n      for i = 1,1 do\n   local button = {id = (\"b\"..1), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=1/100, right=6.5/100}\n    table.insert(MSButtons, button)\nend\n  for i = 2,2 do\n   local button = {id = (\"b\"..2), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=8/100, right=14/100}\n    table.insert(MSButtons, button)\nend\n    for i = 3,3 do\n    local button = {id = (\"b\"..3), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=15/100, right=22/100}\n      table.insert(MSButtons, button)\nend\n    for i = 4,4 do   \n    local button = {id = (\"b\"..4), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=23/100, right=30/100}\n      table.insert(MSButtons, button)\nend\n    for i = 5,5 do   \n    local button = {id = (\"b\"..5), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=31/100, right=38/100}\n      table.insert(MSButtons, button)\nend\n    for i = 6,6 do   \n    local button = {id = (\"b\"..6), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=39/100, right=46/100}\n      table.insert(MSButtons, button)\nend\n    for i = 7,7 do   \n    local button = {id = (\"b\"..7), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=47/100, right=53/100}\n      table.insert(MSButtons, button)\nend\n    for i = 8,8 do   \n    local button = {id = (\"b\"..8), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=54/100, right=61/100}\n      table.insert(MSButtons, button)\nend\n    for i = 9,9 do   \n    local button = {id = (\"b\"..9), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=62/100, right=69/100}\n      table.insert(MSButtons, button)\nend\n    for i = 10,10 do   \n    local button = {id = (\"b\"..10), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=70/100, right=77/100}\n      table.insert(MSButtons, button)\nend\n    for i = 11,11 do   \n    local button = {id = (\"b\"..11), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=78/100, right=85/100}\n      table.insert(MSButtons, button)\nend\n    for i = 12,12 do   \n    local button = {id = (\"b\"..12), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=86/100, right=93/100}\n      table.insert(MSButtons, button)\nend\n\n\n\n    for i = 13,13 do   \n    local button = {id = (\"b\"..13), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=4/100, right=10/100}\n    table.insert(MSButtons, button)\nend\n      for i = 14,14 do\n   local button = {id = (\"b\"..14), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=11.5/100, right=18/100}\n    table.insert(MSButtons, button)\nend\n  for i = 15,15 do\n   local button = {id = (\"b\"..15), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=19/100, right=26/100}\n    table.insert(MSButtons, button)\nend\n    for i = 16,16 do\n    local button = {id = (\"b\"..16), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=27/100, right=34/100}\n      table.insert(MSButtons, button)\nend\n    for i = 17,17 do   \n    local button = {id = (\"b\"..17), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=35/100, right=42/100}\n      table.insert(MSButtons, button)\nend\n    for i = 18,18 do   \n    local button = {id = (\"b\"..18), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=43/100, right=50/100}\n      table.insert(MSButtons, button)\nend\n    for i = 19,19 do   \n    local button = {id = (\"b\"..19), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=51/100, right=58/100}\n      table.insert(MSButtons, button)\nend\n    for i = 20,20 do   \n    local button = {id = (\"b\"..20), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=59/100, right=65/100}\n      table.insert(MSButtons, button)\nend\n    for i = 21,21 do\n   local button = {id = (\"b\"..21), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=66.5/100, right=73/100}\n    table.insert(MSButtons, button)\nend\n  for i = 22,22 do\n   local button = {id = (\"b\"..22), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=74/100, right=82/100}\n    table.insert(MSButtons, button)\nend\n  for i = 23,23 do\n   local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=82.5/100, right=90/100}\n    table.insert(MSButtons, button)\nend\n  for i = 24,24 do\n   local button = {id = (\"b\"..24), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=90/100, right=97/100}\n    table.insert(MSButtons, button)\nend\n\n\n    for i = 25,25 do\n    local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=8/100, right=15/100}\n      table.insert(MSButtons, button)\nend\n    for i = 26,26 do   \n    local button = {id = (\"b\"..26), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=16/100, right=23/100}\n      table.insert(MSButtons, button)\nend\n    for i = 27,27 do   \n    local button = {id = (\"b\"..27), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=24/100, right=31/100}\n      table.insert(MSButtons, button)\nend\n    for i = 28,28 do   \n    local button = {id = (\"b\"..28), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=32/100, right=39/100}\n      table.insert(MSButtons, button)\nend\n    for i = 29,29 do   \n    local button = {id = (\"b\"..29), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=40/100, right=46/100}\n      table.insert(MSButtons, button)\nend\n    for i = 30,30 do   \n    local button = {id = (\"b\"..30), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=47/100, right=54/100}\n      table.insert(MSButtons, button)\nend\n    for i = 31,31 do   \n    local button = {id = (\"b\"..31), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=55/100, right=62/100}\n      table.insert(MSButtons, button)\nend\n    for i = 32,32 do   \n    local button = {id = (\"b\"..32), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=63/100, right=70/100}\n      table.insert(MSButtons, button)\nend\n    for i = 33,33 do   \n    local button = {id = (\"b\"..33), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=71/100, right=78/100}\n      table.insert(MSButtons, button)\nend\n    for i = 34,34 do   \n    local button = {id = (\"b\"..34), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=79/100, right=86/100}\n      table.insert(MSButtons, button)\nend\n    for i = 35,35 do   \n    local button = {id = (\"b\"..35), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=86.5/100, right=94/100}\n      table.insert(MSButtons, button)\nend\n\n    for i = 36,36 do   \n    local button = {id = (\"b\"..36), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=30/100, right=59/100}\n      table.insert(MSButtons, button)\nend\n    for i = 37,37 do   \n    local button = {id = (\"b\"..37), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=63/100, right=77/100}\n    table.insert(MSButtons, button)\nend\n      for i = 38,38 do\n   local button = {id = (\"b\"..38), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=85/100, right=100/100}\n    table.insert(MSButtons, button)\nend\n    for i = 39,39 do   \n    local button = {id = (\"b\"..39), enabled=true, td=\"<td>\", top=90/100, bottom=100/100, left=1/100, right=18/100}\n    table.insert(MSButtons, button)\nend\nfunction evaluateButtons()\n  local selected = 0\n  \n  if #MSButtons >= 1 then\n\n\n         -- Set button styles\n       for i, button in ipairs(MSButtons) do\n            if button.left < MSMouseX and MSMouseX < button.right and button.top < MSMouseY and MSMouseY < button.bottom then\n                if MSMouseDown and MSButtonSelected == i then\n                end\n                selected = i\n            end\n            if not button.enabled then\n            end\n\n        end\n  end\n  return selected\nend\n\n\nfunction onButtonDown(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n\treturn\n  end\nend\nfunction onButtonUp(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n    return\n  end\n        \n\nfunction onClick(buttonNo)\n  local button = MSButtons[buttonNo]    \n  if not button or not button.enabled then\n    return\n  end\nend\n  if buttonNo == 1 then\n    keyb=keyb..\"1\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 2 then\n    keyb=keyb..\"2\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 3 then\n    keyb=keyb..\"3\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 4 then\n    keyb=keyb..\"4\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 5 then\n    keyb=keyb..\"5\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n\t\thint(1, 5)\n  elseif buttonNo == 6 then\n    keyb=keyb..\"6\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 7 then\n    keyb=keyb..\"7\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 8 then\n    keyb=keyb..\"8\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 9 then\n    keyb=keyb..\"9\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 10 then\n    keyb=keyb..\"0\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 11 then\n    keyb=keyb..\",\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 12 then\n    keyb=keyb..\"?\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 13 then\n    keyb=keyb..\"!\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 14 then\n    keyb=keyb..\"@\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 15 then\n    keyb=keyb..\"#\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 16 then\n    keyb=keyb..\"$\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 17 then\n    keyb=keyb..\"%\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 18 then\n    keyb=keyb..\"^\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 19 then\n    keyb=keyb..\"&\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 20 then\n    keyb=keyb..\"*\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 21 then\n    keyb=keyb..\"~\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 22 then\n    keyb=keyb..\";\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 23 then\n    keyb=keyb..\":\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 24 then\n    keyb=keyb..\"'\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 25 then\n    keyb=keyb..\"(\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 26 then\n    keyb=keyb..\")\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 27 then\n    keyb=keyb..\"[\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 28 then\n    keyb=keyb..\"]\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 29 then\n    keyb=keyb..\"{\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 30 then\n    keyb=keyb..\"}\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 31 then\n    keyb=keyb..\"<\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 32 then\n    keyb=keyb..\">\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 33 then\n    keyb=keyb..\"+\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 34 then\n    keyb=\"-\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 35 then\n    keyb=keyb..\"=\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 36 then\n    keyb=keyb..\" \"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 37 then\n    startupnow = 1\n  elseif buttonNo == 38 then\n    keyb=\"\"\n    screen.addText(30,10,7,keyb)\n    consta=string.len(keyb)\n  elseif buttonNo == 39 then\n\n\n  end\nend\n\n\npage = [[\n<svg viewBox=\"0 0 1024 612\">\n<g>\n<title>background</title>\n<rect x=\"-1\" y=\"-1\" width=\"1026\" height=\"614\"/>\n<g display=\"none\">\n<rect width=\"100%\" height=\"100%\" fill=\"url(#gridpattern)\" stroke-width=\"0\"/>\n</g>\n</g>\n<g>\n<title>Layer 1</title>\n<rect x=\"7\" y=\"5\" width=\"1012\" height=\"290\" rx=\"20\" fill=\"#007f7f\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<g fill=\"#ffff00\" fill-opacity=\"null\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"20\" font-weight=\"bold\" stroke=\"#00ff00\" stroke-width=\"0\">\n\n<text x=\"50\" y=\"280\" fill=\"#0000ff\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"25\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">]]..keybhidden..[[</text>\n</g>\n  <g id=\"svg_47\">\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"1\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_1\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"20\" y=\"360.999996\" id=\"svg_3\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">1</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"80\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_8\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"100\" y=\"360.999996\" id=\"svg_9\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">2</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"160\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_11\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"180\" y=\"360.999996\" id=\"svg_12\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">3</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"240\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_14\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"260\" y=\"360.999996\" id=\"svg_15\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">4</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"320\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_17\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"340\" y=\"360.999996\" id=\"svg_18\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">5</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"400\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_20\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"420\" y=\"360.999996\" id=\"svg_21\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">6</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"480\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_23\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"500\" y=\"360.999996\" id=\"svg_24\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">7</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"560\" y=\"306.00001\" width=\"70\" height=\"70\" id=\"svg_26\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"580\" y=\"361.00001\" id=\"svg_27\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">8</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"640\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_29\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"660\" y=\"360.999996\" id=\"svg_30\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">9</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"720\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_32\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"740\" y=\"360.999996\" id=\"svg_33\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">0</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"800\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_35\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"825\" y=\"350\" id=\"svg_36\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">,</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"880\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_38\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"900\" y=\"360\" id=\"svg_39\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">?</text>\n  </g>\n  <g id=\"svg_108\">\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"41\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_10\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"65\" y=\"439.999996\" id=\"svg_13\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">!</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"121\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_16\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"127\" y=\"439.999996\" id=\"svg_19\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">@</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"201\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_22\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"220\" y=\"439.999996\" id=\"svg_25\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">#</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"281\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_28\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"300\" y=\"439.999996\" id=\"svg_31\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">$</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"361\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_34\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"371\" y=\"439.999996\" id=\"svg_37\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">%</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"441\" y=\"385.00001\" width=\"70\" height=\"70\" id=\"svg_40\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"460\" y=\"440.00001\" id=\"svg_41\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">^</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"521\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_42\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"535\" y=\"439.999996\" id=\"svg_43\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">&amp;</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"601\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_44\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"625\" y=\"439.999996\" id=\"svg_45\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">*</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"681\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_48\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"700\" y=\"439.999996\" id=\"svg_49\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">~</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"761\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_118\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"785\" y=\"439.999996\" id=\"svg_119\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">;</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"841\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_121\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"865\" y=\"439.999996\" id=\"svg_122\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">:</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"921\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_127\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"950\" y=\"439.999996\" id=\"svg_128\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">'</text>\n  </g>\n  <g id=\"svg_112\">\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"86\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_52\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"110\" y=\"520.999996\" id=\"svg_53\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">(</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"166\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_54\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"195\" y=\"520.999996\" id=\"svg_55\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">)</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"246\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_56\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"270\" y=\"520.999996\" id=\"svg_57\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">[</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"326\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_58\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"350\" y=\"520.999996\" id=\"svg_59\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">]</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"406\" y=\"466.00001\" width=\"70\" height=\"70\" id=\"svg_60\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"430\" y=\"521.00001\" id=\"svg_61\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">{</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"486\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_62\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"515\" y=\"520.999996\" id=\"svg_63\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">}</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"566\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_64\" rx=\"10\"/>\n   <text style=\"cursor: move;\" fill=\"#bf0000\" stroke-width=\"0\" x=\"585\" y=\"520.999996\" id=\"svg_65\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">&lt;</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"646\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_68\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"656\" y=\"520.999996\" id=\"svg_69\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\"/>\n   <text style=\"cursor: move;\" fill=\"#bf0000\" stroke-width=\"0\" x=\"665\" y=\"520.999996\" id=\"svg_78\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">&gt;</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"726\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_66\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"736\" y=\"520.999996\" id=\"svg_67\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"755\" y=\"520.999996\" id=\"svg_107\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">+</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"806\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_109\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"830\" y=\"520.999996\" id=\"svg_111\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">-</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"886\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_113\" rx=\"10\"/>\n   <text fill=\"#bf0000\" stroke-width=\"0\" x=\"908\" y=\"520.999996\" id=\"svg_115\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">=</text>\n   <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"306\" y=\"545\" width=\"300\" height=\"55\" id=\"svg_71\" rx=\"10\"/>\n  <rect fill=\"#00bfbf\" stroke=\"#ffff00\" stroke-width=\"5\" x=\"650\" y=\"544.999996\" width=\"140\" height=\"55\" id=\"svg_73\" rx=\"10\"/>\n  <text style=\"cursor: move;\" fill=\"#ffff00\" stroke-width=\"0\" x=\"690\" y=\"585\" id=\"svg_74\" font-size=\"28\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">?123</text>\n  <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"880\" y=\"545\" width=\"140\" height=\"55\" id=\"svg_76\" rx=\"10\"/>\n  <text fill=\"#bf0000\" stroke-width=\"0\" x=\"900\" y=\"585\" id=\"svg_77\" font-size=\"30\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">CLEAR</text>\n        </g>]] \n    local buttonNo = evaluateButtons()\n    if MSMouseDown then\n      MSMouseX = screen.getMouseX()\n      MSMouseY = screen.getMouseY()\n      if buttonNo ~= MSButtonSelected or MSMouseX < 0.05 or MSMouseX > 0.95 or MSMouseY < 0.05 or MSMouseY > 0.95 then\n        if MSButtonSelected > 0 then\n          onButtonUp(MSButtonSelected)\n        end\n        MSButtonSelected = 0\n      end        \n    end\n       \nend\n\nif LockonStart == true then\n        local charcount = string.len(keyb)\n        if charcount > startcount then\n            keybhidden = keybhidden..\"*\" \n            screen.addText(30,10,7,keybhidden)        \n            startcount = charcount\n        elseif keyb == \"\" then\n            keybhidden = \"\"\n            charcount = 0\n            startcount = 0\n        end\nelseif LockonStart == false then\n    keybhidden = keyb    \nend \nscreen.setHTML(page)\n    local html = {}\n    \n    for lineIndex = #lines,1,-1 do\n    \tlocal line = lines[lineIndex]\n        if lineIndex < 8 then\n            table.insert(html, \"<div style='font-size: 4.5vh; background-color: darkblue; color: white; border-radius: 2.5vw; text-align: left;'>\" .. line .. \"</div>\")\n        elseif lineIndex == 8 then\n            table.remove(lines,1)\n            lineIndex = 0\n            table.insert(html, \"<div style='font-size: 4.5vh; background-color: darkblue; color: white; border-radius: 2.5vw; text-align: left;'>\" .. line .. \"</div>\")            \n        end\n    end\n    \n     screen.addText(2,1,0,(table.concat(html))) \n\nend\n\n\n","filter":{"args":[],"signature":"start()","slotKey":"-1"},"key":"4"},{"code":"page = [[]]\nscreen.setHTML(page)\n","filter":{"args":[],"signature":"stop()","slotKey":"-2"},"key":"5"},{"code":"updateScreen()","filter":{"args":[],"signature":"update()","slotKey":"-2"},"key":"6"}],"methods":[],"events":[]}

 

Example Used in Video Secondary Ship

{"slots":{"0":{"name":"slot5","type":{"events":[],"methods":[]}},"1":{"name":"slot4","type":{"events":[],"methods":[]}},"2":{"name":"slot3","type":{"events":[],"methods":[]}},"3":{"name":"switch","type":{"events":[],"methods":[]}},"4":{"name":"airlock","type":{"events":[],"methods":[]}},"5":{"name":"slot6","type":{"events":[],"methods":[]}},"6":{"name":"slot7","type":{"events":[],"methods":[]}},"7":{"name":"slot8","type":{"events":[],"methods":[]}},"8":{"name":"slot9","type":{"events":[],"methods":[]}},"9":{"name":"slot10","type":{"events":[],"methods":[]}},"-1":{"name":"unit","type":{"events":[],"methods":[]}},"-2":{"name":"system","type":{"events":[],"methods":[]}},"-3":{"name":"library","type":{"events":[],"methods":[]}}},"handlers":[{"code":"","filter":{"args":[{"variable":"*"},{"variable":"*"}],"signature":"receive(channel,message)","slotKey":"0"},"key":"0"},{"code":"function getSlots()\n    local slot={}\n    local self = self or unit or {} -- in-game, self is the active control unit\n    for key, value in pairs(self) do\n        if type(key) == \"string\" and type(value) == \"table\" and type(value.export) == \"table\" then\n            slot[key] = value\n        end\n    end\n    return slot\nend\n\nfunction getRequiredElements(slots)\n    local foundScreen=false\n    local foundEmitter=false\n    local foundReceiver=false\n\n    for slotName, slotElement in pairs(slots) do\n        if slotElement.getItemsMass then foundContainer = slotElement\n        elseif slotElement.send then foundEmitter = slotElement\n        elseif slotElement.getRange and not slotElement.send then foundReceiver = slotElement\n        end\n    end\n    return foundContainer,foundEmitter,foundReceiver\nend\n\n---\ncontainer, emitter, receiver = getRequiredElements(getSlots())\nif not container then\n    error('Setup Error: Missing important element: container')\n    unit.exit()\nend\nif not emitter then\n    error('Setup Error: Missing important element: emitter')\n    unit.exit()\nend\nif not receiver then\n    error('Setup Error: Missing important element: receiver')\n    unit.exit()    \nend\n\nItems = container.getMass()\nemitter.send(\"TR James Cargo Mass\",Items)\nairlockstatus = airlock.getState()\nif airlockstatus == 1 then\nemitter.send(\"TR James\",\"Airlock Open\")    \nelseif airlockstatus == 0 then\nemitter.send(\"TR James\",\"Airlock Closed\")  \nend\nswitch.deactivate()\n","filter":{"args":[],"signature":"start()","slotKey":"-1"},"key":"1"},{"code":"emitter.send(\"TR James PB\",\"Wireless Ended\")","filter":{"args":[],"signature":"stop()","slotKey":"-1"},"key":"2"}],"methods":[],"events":[]}

 

 

 



----------------------------UnitStart--------
function getSlots()
    local slot={}
    local self = self or unit or {} -- in-game, self is the active control unit
    for key, value in pairs(self) do
        if type(key) == "string" and type(value) == "table" and type(value.export) == "table" then
            slot[key] = value
        end
    end
    return slot
end

function getRequiredElements(slots)
    local foundScreen=false
    local foundEmitter=false
    local foundReceiver=false
    for slotName, slotElement in pairs(slots) do
        if slotElement.setRawHTML then foundScreen = slotElement
        elseif slotElement.send then foundEmitter = slotElement
        elseif slotElement.getRange and not slotElement.send then foundReceiver = slotElement
        end
    end
    return foundScreen,foundEmitter,foundReceiver
end

---
screen, emitter, receiver = getRequiredElements(getSlots())
if not screen then
    error('Setup Error: Missing important element: screen')
    unit.exit()
end
if not emitter then
    error('Setup Error: Missing important element: emitter')
    unit.exit()
end
if not receiver then
    error('Setup Error: Missing important element: receiver')
    unit.exit()    
end

unit.hide()
-- Internal variables
keyb=""
keybhidden = ""
LockonStart = true

consta=0
MSButtons = {}
MSMouseX = 0
MSMouseY = 0
MSMouseDown = false
MSButtonSelected = 0
MSAttention = 0
MSDislikeButton = 0
MSLikeButton = 0
MSHintButton = 0
MSAttentionMessage = ""
MSAttentionVisible = false
startupnow = 1
EnterPressed = false
password = "P"--export:
LockonStart = true--export:
CurChan = "TR"--export:Channel on Start
startcount = 0
lineIndex = 0
lines = {}

function CheckEnterButton()
if LockonStart == true then
    if EnterPressed == true then
        if keyb == password then
            keyb=""
            screen.addText(30,10,7,keyb)
            consta=string.len(keyb)
            keybhidden="Access Granted"
            EnterPressed = false            
            LockonStart = false
            CheckEnterButton()
        elseif keyb ~= password then 
            keyb=""
            keybhidden="Access DENIED"
            screen.addText(30,10,7,keyb)
            consta=string.len(keyb)
            unit.setTimer("exit",1)
        end
    end
elseif LockonStart == false then   
    if EnterPressed == true then
        emitter.send(CurChan,(keyb))
        EnterPressed = false
        keyb = ""
    end
end
end
function updateScreen() 

if startupnow == 1 then    ----- engine stat end emitter start
    tablex.clear(MSButtons, button)
      for i = 1,1 do
   local button = {id = ("b"..1), enabled=true, td="<td>", top=49/100, bottom=60/100, left=1/100, right=6.5/100}
    table.insert(MSButtons, button)
end
  for i = 2,2 do
   local button = {id = ("b"..2), enabled=true, td="<td>", top=49/100, bottom=60/100, left=8/100, right=14/100}
    table.insert(MSButtons, button)
end
    for i = 3,3 do
    local button = {id = ("b"..3), enabled=true, td="<td>", top=49/100, bottom=60/100, left=15/100, right=22/100}
      table.insert(MSButtons, button)
end
    for i = 4,4 do   
    local button = {id = ("b"..4), enabled=true, td="<td>", top=49/100, bottom=60/100, left=23/100, right=30/100}
      table.insert(MSButtons, button)
end
    for i = 5,5 do   
    local button = {id = ("b"..5), enabled=true, td="<td>", top=49/100, bottom=60/100, left=31/100, right=38/100}
      table.insert(MSButtons, button)
end
    for i = 6,6 do   
    local button = {id = ("b"..6), enabled=true, td="<td>", top=49/100, bottom=60/100, left=39/100, right=46/100}
      table.insert(MSButtons, button)
end
    for i = 7,7 do   
    local button = {id = ("b"..7), enabled=true, td="<td>", top=49/100, bottom=60/100, left=47/100, right=53/100}
      table.insert(MSButtons, button)
end
    for i = 8,8 do   
    local button = {id = ("b"..8), enabled=true, td="<td>", top=49/100, bottom=60/100, left=54/100, right=61/100}
      table.insert(MSButtons, button)
end
    for i = 9,9 do   
    local button = {id = ("b"..9), enabled=true, td="<td>", top=49/100, bottom=60/100, left=62/100, right=69/100}
      table.insert(MSButtons, button)
end
    for i = 10,10 do   
    local button = {id = ("b"..10), enabled=true, td="<td>", top=49/100, bottom=60/100, left=70/100, right=77/100}
      table.insert(MSButtons, button)
end
    for i = 11,11 do   
    local button = {id = ("b"..11), enabled=true, td="<td>", top=49/100, bottom=60/100, left=78/100, right=85/100}
      table.insert(MSButtons, button)
end
    for i = 12,12 do   
    local button = {id = ("b"..12), enabled=true, td="<td>", top=49/100, bottom=60/100, left=86/100, right=100/100}
      table.insert(MSButtons, button)
end



    for i = 13,13 do   
    local button = {id = ("b"..13), enabled=true, td="<td>", top=62/100, bottom=73/100, left=4/100, right=10/100}
    table.insert(MSButtons, button)
end
      for i = 14,14 do
   local button = {id = ("b"..14), enabled=true, td="<td>", top=62/100, bottom=73/100, left=11.5/100, right=18/100}
    table.insert(MSButtons, button)
end
  for i = 15,15 do
   local button = {id = ("b"..15), enabled=true, td="<td>", top=62/100, bottom=73/100, left=19/100, right=26/100}
    table.insert(MSButtons, button)
end
    for i = 16,16 do
    local button = {id = ("b"..16), enabled=true, td="<td>", top=62/100, bottom=73/100, left=27/100, right=34/100}
      table.insert(MSButtons, button)
end
    for i = 17,17 do   
    local button = {id = ("b"..17), enabled=true, td="<td>", top=62/100, bottom=73/100, left=35/100, right=42/100}
      table.insert(MSButtons, button)
end
    for i = 18,18 do   
    local button = {id = ("b"..18), enabled=true, td="<td>", top=62/100, bottom=73/100, left=43/100, right=50/100}
      table.insert(MSButtons, button)
end
    for i = 19,19 do   
    local button = {id = ("b"..19), enabled=true, td="<td>", top=62/100, bottom=73/100, left=51/100, right=58/100}
      table.insert(MSButtons, button)
end
    for i = 20,20 do   
    local button = {id = ("b"..20), enabled=true, td="<td>", top=62/100, bottom=73/100, left=59/100, right=65/100}
      table.insert(MSButtons, button)
end
      for i = 21,21 do
   local button = {id = ("b"..21), enabled=true, td="<td>", top=62/100, bottom=73/100, left=66.5/100, right=73/100}
    table.insert(MSButtons, button)
end
  for i = 22,22 do
   local button = {id = ("b"..22), enabled=true, td="<td>", top=62/100, bottom=73/100, left=74/100, right=89/100}
    table.insert(MSButtons, button)
end


    for i = 23,23 do
    local button = {id = ("b"..23), enabled=true, td="<td>", top=75/100, bottom=87/100, left=8/100, right=15/100}
      table.insert(MSButtons, button)
end
    for i = 24,24 do   
    local button = {id = ("b"..24), enabled=true, td="<td>", top=75/100, bottom=87/100, left=16/100, right=23/100}
      table.insert(MSButtons, button)
end
    for i = 25,25 do   
    local button = {id = ("b"..25), enabled=true, td="<td>", top=75/100, bottom=87/100, left=24/100, right=31/100}
      table.insert(MSButtons, button)
end
    for i = 26,26 do   
    local button = {id = ("b"..26), enabled=true, td="<td>", top=75/100, bottom=87/100, left=32/100, right=39/100}
      table.insert(MSButtons, button)
end
    for i = 27,27 do   
    local button = {id = ("b"..27), enabled=true, td="<td>", top=75/100, bottom=87/100, left=40/100, right=46/100}
      table.insert(MSButtons, button)
end
    for i = 28,28 do   
    local button = {id = ("b"..28), enabled=true, td="<td>", top=75/100, bottom=87/100, left=47/100, right=54/100}
      table.insert(MSButtons, button)
end
    for i = 29,29 do   
    local button = {id = ("b"..29), enabled=true, td="<td>", top=75/100, bottom=87/100, left=55/100, right=62/100}
      table.insert(MSButtons, button)
end
    for i = 30,30 do   
    local button = {id = ("b"..30), enabled=true, td="<td>", top=75/100, bottom=87/100, left=63/100, right=70/100}
      table.insert(MSButtons, button)
end
    for i = 31,31 do   
    local button = {id = ("b"..31), enabled=true, td="<td>", top=75/100, bottom=87/100, left=71/100, right=85/100}
      table.insert(MSButtons, button)
end


    for i = 32,32 do   
    local button = {id = ("b"..32), enabled=true, td="<td>", top=88/100, bottom=98/100, left=30/100, right=59/100}
      table.insert(MSButtons, button)
end
    for i = 33,33 do   
    local button = {id = ("b"..33), enabled=true, td="<td>", top=88/100, bottom=98/100, left=63/100, right=77/100}
    table.insert(MSButtons, button)
end
      for i = 34,34 do
   local button = {id = ("b"..34), enabled=true, td="<td>", top=88/100, bottom=98/100, left=85/100, right=100/100}
    table.insert(MSButtons, button)
end
    for i = 35,35 do   
    local button = {id = ("b"..35), enabled=true, td="<td>", top=90/100, bottom=100/100, left=1/100, right=18/100}
    table.insert(MSButtons, button)
end
function evaluateButtons()
  local selected = 0
  
  if #MSButtons >= 1 then

         -- Set button styles
       for i, button in ipairs(MSButtons) do
            if button.left < MSMouseX and MSMouseX < button.right and button.top < MSMouseY and MSMouseY < button.bottom then
                if MSMouseDown and MSButtonSelected == i then
                end
                selected = i
            end
            if not button.enabled then
            end

        end
  end
  return selected
end


function onButtonDown(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
	return
  end
end
function onButtonUp(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
    return
  end
        

function onClick(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
    return
  end
end
   if buttonNo == 1 then
    keyb=keyb.."Q"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 2 then
    keyb=keyb.."W"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 3 then
    keyb=keyb.."E"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 4 then
    keyb=keyb.."R"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 5 then
    keyb=keyb.."T"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 6 then
    keyb=keyb.."Y"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 7 then
    keyb=keyb.."U"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 8 then
    keyb=keyb.."I"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 9 then
    keyb=keyb.."O"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 10 then
    keyb=keyb.."P"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 11 then
    tablex.clear(lines,html)
  elseif buttonNo == 12 then
    keyb = ""
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 13 then
    keyb=keyb.."A"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 14 then
    keyb=keyb.."S"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 15 then
    keyb=keyb.."D"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 16 then
    keyb=keyb.."F"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 17 then
    keyb=keyb.."G"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 18 then
    keyb=keyb.."H"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 19 then
    keyb=keyb.."J"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 20 then
    keyb=keyb.."K"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 21 then
    keyb=keyb.."L"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 22 then   ----enterbutton
    EnterPressed = true
    CheckEnterButton()
  elseif buttonNo == 23 then
    keyb=keyb.."Z"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 24 then
    keyb=keyb.."X"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 25 then
    keyb=keyb.."C"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 26 then
    keyb=keyb.."V"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 27 then
    keyb=keyb.."B"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 28 then
    keyb=keyb.."N"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 29 then
    keyb=keyb.."M"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 30 then
    keyb=keyb.."."
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 31 then
    startupnow = 1.1
  elseif buttonNo == 32 then
    keyb=keyb.." "
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 33 then
    startupnow = 1.2
  elseif buttonNo == 34 then
    if LockonStart == false then
        CurChan = keyb
        keyb = ""
    else
        keybhidden = "Buttons Are (LOCKED) ACCESS DENIED"
        unit.setTimer("exit",1)
    end
  elseif buttonNo == 35 then

  end
end
  
page = [[
<svg viewBox="0 0 1024 612">
<g>
<title>background</title>
<rect x="-1" y="-1" width="1026" height="614"/>
<g display="none">
<rect width="100%" height="100%" fill="url(#gridpattern)" stroke-width="0"/>
</g>
</g>
<g>
<title>Layer 1</title>
<rect x="7" y="5" width="1012" height="290" rx="20" fill="#007f7f" stroke="#0f0" stroke-width="5"/>
<rect x="1" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="14.997276" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">Q</text>
<rect x="80" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="90" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">W</text>
<rect x="160" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="178" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">E</text>
<rect x="240" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="255" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">R</text>
<rect x="320" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="337" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">T</text>
<rect x="400" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="417" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">Y</text>
<rect x="480" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="496" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">U</text>
<rect x="560" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="586" y="361.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">I</text>
<rect x="640" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="654" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">O</text>
<rect x="720" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="740" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">P</text>
<rect x="880" y="306" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="895" y="350" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">CLEAR</text>
<rect x="800" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="802" y="350" cursor="move" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve"></text>
<rect x="41" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="59" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">A</text>
<rect x="121" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="136" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">S</text>
<rect x="201" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="218" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">D</text>
<rect x="281" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="298" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">F</text>
<rect x="361" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="377" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">G</text>
<rect x="441" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="455" y="440.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">H</text>
<rect x="521" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="540" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">J</text>
<rect x="601" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="619" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">K</text>
<rect x="761" y="385" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="785" y="430" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">Enter</text>
<rect x="681" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="700" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">L</text>
<rect x="86" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="101" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">Z</text>
<rect x="166" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="183" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">X</text>
<rect x="246" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="263" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">C</text>
<rect x="326" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="342" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">V</text>
<rect x="406" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="420" y="521.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">B</text>
<rect x="486" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="500" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">N</text>
<rect x="566" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="578" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">M</text>
<rect x="646" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="656" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve"></text>
<rect x="306" y="545" width="300" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<rect x="726" y="466" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="750" y="510" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">SHIFT</text>
<rect x="650" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="690" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="28" font-weight="bold" stroke-width="0" xml:space="preserve">?123</text>
<rect x="880" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="890" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">CH:]]..CurChan..[[</text>
<text x="674" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">.</text>

<text x="50" y="280" fill="#0000ff" font-family="Helvetica, Arial, sans-serif" font-size="25" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">]]..keybhidden..[[</text>
</g>]] 
    local buttonNo = evaluateButtons()
    if MSMouseDown then
      MSMouseX = screen.getMouseX()
      MSMouseY = screen.getMouseY()
      if buttonNo ~= MSButtonSelected or MSMouseX < 0.05 or MSMouseX > 0.95 or MSMouseY < 0.05 or MSMouseY > 0.95 then
        if MSButtonSelected > 0 then
          onButtonUp(MSButtonSelected)
        end
        MSButtonSelected = 0
      end        
    end

    screen.setHTML(page)
 






--------------------small letter keyboard




elseif startupnow == 1.1 then

               tablex.clear(MSButtons, button)
      for i = 1,1 do
   local button = {id = ("b"..1), enabled=true, td="<td>", top=49/100, bottom=60/100, left=1/100, right=6.5/100}
    table.insert(MSButtons, button)
end
  for i = 2,2 do
   local button = {id = ("b"..2), enabled=true, td="<td>", top=49/100, bottom=60/100, left=8/100, right=14/100}
    table.insert(MSButtons, button)
end
    for i = 3,3 do
    local button = {id = ("b"..3), enabled=true, td="<td>", top=49/100, bottom=60/100, left=15/100, right=22/100}
      table.insert(MSButtons, button)
end
    for i = 4,4 do   
    local button = {id = ("b"..4), enabled=true, td="<td>", top=49/100, bottom=60/100, left=23/100, right=30/100}
      table.insert(MSButtons, button)
end
    for i = 5,5 do   
    local button = {id = ("b"..5), enabled=true, td="<td>", top=49/100, bottom=60/100, left=31/100, right=38/100}
      table.insert(MSButtons, button)
end
    for i = 6,6 do   
    local button = {id = ("b"..6), enabled=true, td="<td>", top=49/100, bottom=60/100, left=39/100, right=46/100}
      table.insert(MSButtons, button)
end
    for i = 7,7 do   
    local button = {id = ("b"..7), enabled=true, td="<td>", top=49/100, bottom=60/100, left=47/100, right=53/100}
      table.insert(MSButtons, button)
end
    for i = 8,8 do   
    local button = {id = ("b"..8), enabled=true, td="<td>", top=49/100, bottom=60/100, left=54/100, right=61/100}
      table.insert(MSButtons, button)
end
    for i = 9,9 do   
    local button = {id = ("b"..9), enabled=true, td="<td>", top=49/100, bottom=60/100, left=62/100, right=69/100}
      table.insert(MSButtons, button)
end
    for i = 10,10 do   
    local button = {id = ("b"..10), enabled=true, td="<td>", top=49/100, bottom=60/100, left=70/100, right=77/100}
      table.insert(MSButtons, button)
end
    for i = 11,11 do   
    local button = {id = ("b"..11), enabled=true, td="<td>", top=49/100, bottom=60/100, left=78/100, right=85/100}
      table.insert(MSButtons, button)
end
    for i = 12,12 do   
    local button = {id = ("b"..12), enabled=true, td="<td>", top=49/100, bottom=60/100, left=86/100, right=100/100}
      table.insert(MSButtons, button)
end



    for i = 13,13 do   
    local button = {id = ("b"..13), enabled=true, td="<td>", top=62/100, bottom=73/100, left=4/100, right=10/100}
    table.insert(MSButtons, button)
end
      for i = 14,14 do
   local button = {id = ("b"..14), enabled=true, td="<td>", top=62/100, bottom=73/100, left=11.5/100, right=18/100}
    table.insert(MSButtons, button)
end
  for i = 15,15 do
   local button = {id = ("b"..15), enabled=true, td="<td>", top=62/100, bottom=73/100, left=19/100, right=26/100}
    table.insert(MSButtons, button)
end
    for i = 16,16 do
    local button = {id = ("b"..16), enabled=true, td="<td>", top=62/100, bottom=73/100, left=27/100, right=34/100}
      table.insert(MSButtons, button)
end
    for i = 17,17 do   
    local button = {id = ("b"..17), enabled=true, td="<td>", top=62/100, bottom=73/100, left=35/100, right=42/100}
      table.insert(MSButtons, button)
end
    for i = 18,18 do   
    local button = {id = ("b"..18), enabled=true, td="<td>", top=62/100, bottom=73/100, left=43/100, right=50/100}
      table.insert(MSButtons, button)
end
    for i = 19,19 do   
    local button = {id = ("b"..19), enabled=true, td="<td>", top=62/100, bottom=73/100, left=51/100, right=58/100}
      table.insert(MSButtons, button)
end
    for i = 20,20 do   
    local button = {id = ("b"..20), enabled=true, td="<td>", top=62/100, bottom=73/100, left=59/100, right=65/100}
      table.insert(MSButtons, button)
end
      for i = 21,21 do
   local button = {id = ("b"..21), enabled=true, td="<td>", top=62/100, bottom=73/100, left=66.5/100, right=73/100}
    table.insert(MSButtons, button)
end
  for i = 22,22 do
   local button = {id = ("b"..22), enabled=true, td="<td>", top=62/100, bottom=73/100, left=74/100, right=89/100}
    table.insert(MSButtons, button)
end


    for i = 23,23 do
    local button = {id = ("b"..23), enabled=true, td="<td>", top=75/100, bottom=87/100, left=8/100, right=15/100}
      table.insert(MSButtons, button)
end
    for i = 24,24 do   
    local button = {id = ("b"..24), enabled=true, td="<td>", top=75/100, bottom=87/100, left=16/100, right=23/100}
      table.insert(MSButtons, button)
end
    for i = 25,25 do   
    local button = {id = ("b"..25), enabled=true, td="<td>", top=75/100, bottom=87/100, left=24/100, right=31/100}
      table.insert(MSButtons, button)
end
    for i = 26,26 do   
    local button = {id = ("b"..26), enabled=true, td="<td>", top=75/100, bottom=87/100, left=32/100, right=39/100}
      table.insert(MSButtons, button)
end
    for i = 27,27 do   
    local button = {id = ("b"..27), enabled=true, td="<td>", top=75/100, bottom=87/100, left=40/100, right=46/100}
      table.insert(MSButtons, button)
end
    for i = 28,28 do   
    local button = {id = ("b"..28), enabled=true, td="<td>", top=75/100, bottom=87/100, left=47/100, right=54/100}
      table.insert(MSButtons, button)
end
    for i = 29,29 do   
    local button = {id = ("b"..29), enabled=true, td="<td>", top=75/100, bottom=87/100, left=55/100, right=62/100}
      table.insert(MSButtons, button)
end
    for i = 30,30 do   
    local button = {id = ("b"..30), enabled=true, td="<td>", top=75/100, bottom=87/100, left=63/100, right=70/100}
      table.insert(MSButtons, button)
end
    for i = 31,31 do   
    local button = {id = ("b"..31), enabled=true, td="<td>", top=75/100, bottom=87/100, left=71/100, right=85/100}
      table.insert(MSButtons, button)
end


    for i = 32,32 do   
    local button = {id = ("b"..32), enabled=true, td="<td>", top=88/100, bottom=98/100, left=30/100, right=59/100}
      table.insert(MSButtons, button)
end
    for i = 33,33 do   
    local button = {id = ("b"..33), enabled=true, td="<td>", top=88/100, bottom=98/100, left=63/100, right=77/100}
    table.insert(MSButtons, button)
end
      for i = 34,34 do
   local button = {id = ("b"..34), enabled=true, td="<td>", top=88/100, bottom=98/100, left=85/100, right=100/100}
    table.insert(MSButtons, button)
end
    for i = 35,35 do   
    local button = {id = ("b"..35), enabled=true, td="<td>", top=90/100, bottom=100/100, left=1/100, right=18/100}
    table.insert(MSButtons, button)
end

function evaluateButtons()
  local selected = 0
  
  if #MSButtons >= 1 then

         -- Set button styles
       for i, button in ipairs(MSButtons) do
            if button.left < MSMouseX and MSMouseX < button.right and button.top < MSMouseY and MSMouseY < button.bottom then
                if MSMouseDown and MSButtonSelected == i then
                end
                selected = i
            end
            if not button.enabled then
            end

        end
  end
  return selected
end

function onButtonDown(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
	return
  end
end
function onButtonUp(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
    return
  end
        

function onClick(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
    return
  end
end
  if buttonNo == 1 then
    keyb=keyb.."q"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 2 then
    keyb=keyb.."w"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 3 then
    keyb=keyb.."e"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 4 then
    keyb=keyb.."r"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 5 then
    keyb=keyb.."t"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 6 then
    keyb=keyb.."y"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 7 then
    keyb=keyb.."u"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 8 then
    keyb=keyb.."i"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 9 then
    keyb=keyb.."o"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 10 then
    keyb=keyb.."p"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 11 then
    tablex.clear(lines,html)   
  elseif buttonNo == 12 then
    keyb = ""
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 13 then
    keyb=keyb.."a"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 14 then
    keyb=keyb.."s"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 15 then
    keyb=keyb.."d"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 16 then
    keyb=keyb.."f"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 17 then
    keyb=keyb.."g"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 18 then
    keyb=keyb.."h"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 19 then
    keyb=keyb.."j"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 20 then
    keyb=keyb.."k"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 21 then
    keyb=keyb.."l"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 22 then
    EnterPressed = true
    CheckEnterButton()
  elseif buttonNo == 23 then
    keyb=keyb.."z"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 24 then
    keyb=keyb.."x"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 25 then
    keyb=keyb.."c"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 26 then
    keyb=keyb.."v"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 27 then
    keyb=keyb.."b"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 28 then
    keyb=keyb.."n"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 29 then
    keyb=keyb.."m"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 30 then
    keyb=keyb.."."
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 31 then
    startupnow = 1
  elseif buttonNo == 32 then
    keyb=keyb.." "
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 33 then
    startupnow = 1.2
  elseif buttonNo == 34 then
    if LockonStart == false then
        CurChan = keyb
        keyb = ""
    else
        keybhidden = "Buttons Are (LOCKED) ACCESS DENIED"
        unit.setTimer("exit",1)
    end
  elseif buttonNo == 35 then

  end
end

page = [[
<svg viewBox="0 0 1024 612">
<g>
<title>background</title>
<rect x="-1" y="-1" width="1026" height="614"/>
<g display="none">
<rect width="100%" height="100%" fill="url(#gridpattern)" stroke-width="0"/>
</g>
</g>
<g>
<title>Layer 1</title>
<rect x="7" y="5" width="1012" height="290" rx="20" fill="#007f7f" stroke="#0f0" stroke-width="5"/>

<rect x="1" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="14.997276" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">q</text>
<rect x="80" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="90" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">w</text>
<rect x="160" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="178" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">e</text>
<rect x="240" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="255" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">r</text>
<rect x="320" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="337" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">t</text>
<rect x="400" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="417" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">y</text>
<rect x="480" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="496" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">u</text>
<rect x="560" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="586" y="361.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">i</text>
<rect x="640" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="654" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">o</text>
<rect x="720" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="740" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">p</text>
<rect x="880" y="306" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="895" y="350" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">CLEAR</text>
<rect x="800" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="802" y="350" cursor="move" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve"></text>
<rect x="41" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="59" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">a</text>
<rect x="121" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="136" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">s</text>
<rect x="201" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="218" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">d</text>
<rect x="281" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="298" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">f</text>
<rect x="361" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="377" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">g</text>
<rect x="441" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="455" y="440.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">h</text>
<rect x="521" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="540" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">j</text>
<rect x="601" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="619" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">k</text>
<rect x="761" y="385" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="785" y="430" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">Enter</text>
<rect x="681" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="700" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">l</text>
<rect x="86" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="101" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">z</text>
<rect x="166" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="183" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">x</text>
<rect x="246" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="263" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">c</text>
<rect x="326" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="342" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">v</text>
<rect x="406" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="420" y="521.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">b</text>
<rect x="486" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="500" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">n</text>
<rect x="566" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="578" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">m</text>
<rect x="646" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>

<rect x="306" y="545" width="300" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<rect x="726" y="466" width="140" height="70" rx="10" fill="#00bfbf" stroke="#00ff00" stroke-width="5"/>
<text x="750" y="510" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">SHIFT</text>
<rect x="650" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="690" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="28" font-weight="bold" stroke-width="0" xml:space="preserve">?123</text>
<rect x="880" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/>
<text x="890" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">CH:]]..CurChan..[[</text>
<text x="674" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">.</text>

<text x="50" y="280" fill="#0000ff" font-family="Helvetica, Arial, sans-serif" font-size="25" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">]]..keybhidden..[[</text>
</g>]] 
    local buttonNo = evaluateButtons()
    if MSMouseDown then
      MSMouseX = screen.getMouseX()
      MSMouseY = screen.getMouseY()
      if buttonNo ~= MSButtonSelected or MSMouseX < 0.05 or MSMouseX > 0.95 or MSMouseY < 0.05 or MSMouseY > 0.95 then
        if MSButtonSelected > 0 then
          onButtonUp(MSButtonSelected)
        end
        MSButtonSelected = 0
      end        
    end


    screen.setHTML(page)




elseif startupnow == 1.2 then    ----- emitter end
               tablex.clear(MSButtons, button)
      for i = 1,1 do
   local button = {id = ("b"..1), enabled=true, td="<td>", top=49/100, bottom=60/100, left=1/100, right=6.5/100}
    table.insert(MSButtons, button)
end
  for i = 2,2 do
   local button = {id = ("b"..2), enabled=true, td="<td>", top=49/100, bottom=60/100, left=8/100, right=14/100}
    table.insert(MSButtons, button)
end
    for i = 3,3 do
    local button = {id = ("b"..3), enabled=true, td="<td>", top=49/100, bottom=60/100, left=15/100, right=22/100}
      table.insert(MSButtons, button)
end
    for i = 4,4 do   
    local button = {id = ("b"..4), enabled=true, td="<td>", top=49/100, bottom=60/100, left=23/100, right=30/100}
      table.insert(MSButtons, button)
end
    for i = 5,5 do   
    local button = {id = ("b"..5), enabled=true, td="<td>", top=49/100, bottom=60/100, left=31/100, right=38/100}
      table.insert(MSButtons, button)
end
    for i = 6,6 do   
    local button = {id = ("b"..6), enabled=true, td="<td>", top=49/100, bottom=60/100, left=39/100, right=46/100}
      table.insert(MSButtons, button)
end
    for i = 7,7 do   
    local button = {id = ("b"..7), enabled=true, td="<td>", top=49/100, bottom=60/100, left=47/100, right=53/100}
      table.insert(MSButtons, button)
end
    for i = 8,8 do   
    local button = {id = ("b"..8), enabled=true, td="<td>", top=49/100, bottom=60/100, left=54/100, right=61/100}
      table.insert(MSButtons, button)
end
    for i = 9,9 do   
    local button = {id = ("b"..9), enabled=true, td="<td>", top=49/100, bottom=60/100, left=62/100, right=69/100}
      table.insert(MSButtons, button)
end
    for i = 10,10 do   
    local button = {id = ("b"..10), enabled=true, td="<td>", top=49/100, bottom=60/100, left=70/100, right=77/100}
      table.insert(MSButtons, button)
end
    for i = 11,11 do   
    local button = {id = ("b"..11), enabled=true, td="<td>", top=49/100, bottom=60/100, left=78/100, right=85/100}
      table.insert(MSButtons, button)
end
    for i = 12,12 do   
    local button = {id = ("b"..12), enabled=true, td="<td>", top=49/100, bottom=60/100, left=86/100, right=93/100}
      table.insert(MSButtons, button)
end



    for i = 13,13 do   
    local button = {id = ("b"..13), enabled=true, td="<td>", top=62/100, bottom=73/100, left=4/100, right=10/100}
    table.insert(MSButtons, button)
end
      for i = 14,14 do
   local button = {id = ("b"..14), enabled=true, td="<td>", top=62/100, bottom=73/100, left=11.5/100, right=18/100}
    table.insert(MSButtons, button)
end
  for i = 15,15 do
   local button = {id = ("b"..15), enabled=true, td="<td>", top=62/100, bottom=73/100, left=19/100, right=26/100}
    table.insert(MSButtons, button)
end
    for i = 16,16 do
    local button = {id = ("b"..16), enabled=true, td="<td>", top=62/100, bottom=73/100, left=27/100, right=34/100}
      table.insert(MSButtons, button)
end
    for i = 17,17 do   
    local button = {id = ("b"..17), enabled=true, td="<td>", top=62/100, bottom=73/100, left=35/100, right=42/100}
      table.insert(MSButtons, button)
end
    for i = 18,18 do   
    local button = {id = ("b"..18), enabled=true, td="<td>", top=62/100, bottom=73/100, left=43/100, right=50/100}
      table.insert(MSButtons, button)
end
    for i = 19,19 do   
    local button = {id = ("b"..19), enabled=true, td="<td>", top=62/100, bottom=73/100, left=51/100, right=58/100}
      table.insert(MSButtons, button)
end
    for i = 20,20 do   
    local button = {id = ("b"..20), enabled=true, td="<td>", top=62/100, bottom=73/100, left=59/100, right=65/100}
      table.insert(MSButtons, button)
end
    for i = 21,21 do
   local button = {id = ("b"..21), enabled=true, td="<td>", top=62/100, bottom=73/100, left=66.5/100, right=73/100}
    table.insert(MSButtons, button)
end
  for i = 22,22 do
   local button = {id = ("b"..22), enabled=true, td="<td>", top=62/100, bottom=73/100, left=74/100, right=82/100}
    table.insert(MSButtons, button)
end
  for i = 23,23 do
   local button = {id = ("b"..23), enabled=true, td="<td>", top=62/100, bottom=73/100, left=82.5/100, right=90/100}
    table.insert(MSButtons, button)
end
  for i = 24,24 do
   local button = {id = ("b"..24), enabled=true, td="<td>", top=62/100, bottom=73/100, left=90/100, right=97/100}
    table.insert(MSButtons, button)
end


    for i = 25,25 do
    local button = {id = ("b"..23), enabled=true, td="<td>", top=75/100, bottom=87/100, left=8/100, right=15/100}
      table.insert(MSButtons, button)
end
    for i = 26,26 do   
    local button = {id = ("b"..26), enabled=true, td="<td>", top=75/100, bottom=87/100, left=16/100, right=23/100}
      table.insert(MSButtons, button)
end
    for i = 27,27 do   
    local button = {id = ("b"..27), enabled=true, td="<td>", top=75/100, bottom=87/100, left=24/100, right=31/100}
      table.insert(MSButtons, button)
end
    for i = 28,28 do   
    local button = {id = ("b"..28), enabled=true, td="<td>", top=75/100, bottom=87/100, left=32/100, right=39/100}
      table.insert(MSButtons, button)
end
    for i = 29,29 do   
    local button = {id = ("b"..29), enabled=true, td="<td>", top=75/100, bottom=87/100, left=40/100, right=46/100}
      table.insert(MSButtons, button)
end
    for i = 30,30 do   
    local button = {id = ("b"..30), enabled=true, td="<td>", top=75/100, bottom=87/100, left=47/100, right=54/100}
      table.insert(MSButtons, button)
end
    for i = 31,31 do   
    local button = {id = ("b"..31), enabled=true, td="<td>", top=75/100, bottom=87/100, left=55/100, right=62/100}
      table.insert(MSButtons, button)
end
    for i = 32,32 do   
    local button = {id = ("b"..32), enabled=true, td="<td>", top=75/100, bottom=87/100, left=63/100, right=70/100}
      table.insert(MSButtons, button)
end
    for i = 33,33 do   
    local button = {id = ("b"..33), enabled=true, td="<td>", top=75/100, bottom=87/100, left=71/100, right=78/100}
      table.insert(MSButtons, button)
end
    for i = 34,34 do   
    local button = {id = ("b"..34), enabled=true, td="<td>", top=75/100, bottom=87/100, left=79/100, right=86/100}
      table.insert(MSButtons, button)
end
    for i = 35,35 do   
    local button = {id = ("b"..35), enabled=true, td="<td>", top=75/100, bottom=87/100, left=86.5/100, right=94/100}
      table.insert(MSButtons, button)
end

    for i = 36,36 do   
    local button = {id = ("b"..36), enabled=true, td="<td>", top=88/100, bottom=98/100, left=30/100, right=59/100}
      table.insert(MSButtons, button)
end
    for i = 37,37 do   
    local button = {id = ("b"..37), enabled=true, td="<td>", top=88/100, bottom=98/100, left=63/100, right=77/100}
    table.insert(MSButtons, button)
end
      for i = 38,38 do
   local button = {id = ("b"..38), enabled=true, td="<td>", top=88/100, bottom=98/100, left=85/100, right=100/100}
    table.insert(MSButtons, button)
end
    for i = 39,39 do   
    local button = {id = ("b"..39), enabled=true, td="<td>", top=90/100, bottom=100/100, left=1/100, right=18/100}
    table.insert(MSButtons, button)
end
function evaluateButtons()
  local selected = 0
  
  if #MSButtons >= 1 then


         -- Set button styles
       for i, button in ipairs(MSButtons) do
            if button.left < MSMouseX and MSMouseX < button.right and button.top < MSMouseY and MSMouseY < button.bottom then
                if MSMouseDown and MSButtonSelected == i then
                end
                selected = i
            end
            if not button.enabled then
            end

        end
  end
  return selected
end


function onButtonDown(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
	return
  end
end
function onButtonUp(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
    return
  end
        

function onClick(buttonNo)
  local button = MSButtons[buttonNo]    
  if not button or not button.enabled then
    return
  end
end
  if buttonNo == 1 then
    keyb=keyb.."1"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 2 then
    keyb=keyb.."2"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 3 then
    keyb=keyb.."3"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 4 then
    keyb=keyb.."4"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 5 then
    keyb=keyb.."5"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
		hint(1, 5)
  elseif buttonNo == 6 then
    keyb=keyb.."6"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 7 then
    keyb=keyb.."7"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 8 then
    keyb=keyb.."8"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 9 then
    keyb=keyb.."9"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 10 then
    keyb=keyb.."0"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 11 then
    keyb=keyb..","
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 12 then
    keyb=keyb.."?"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 13 then
    keyb=keyb.."!"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 14 then
    keyb=keyb.."@"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 15 then
    keyb=keyb.."#"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 16 then
    keyb=keyb.."$"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 17 then
    keyb=keyb.."%"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 18 then
    keyb=keyb.."^"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 19 then
    keyb=keyb.."&"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 20 then
    keyb=keyb.."*"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 21 then
    keyb=keyb.."~"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 22 then
    keyb=keyb..";"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 23 then
    keyb=keyb..":"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 24 then
    keyb=keyb.."'"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 25 then
    keyb=keyb.."("
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 26 then
    keyb=keyb..")"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 27 then
    keyb=keyb.."["
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 28 then
    keyb=keyb.."]"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 29 then
    keyb=keyb.."{"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 30 then
    keyb=keyb.."}"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 31 then
    keyb=keyb.."<"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 32 then
    keyb=keyb..">"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 33 then
    keyb=keyb.."+"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 34 then
    keyb="-"
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 35 then
    keyb=keyb.."="
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 36 then
    keyb=keyb.." "
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 37 then
    startupnow = 1
  elseif buttonNo == 38 then
    keyb=""
    screen.addText(30,10,7,keyb)
    consta=string.len(keyb)
  elseif buttonNo == 39 then


  end
end


page = [[
<svg viewBox="0 0 1024 612">
<g>
<title>background</title>
<rect x="-1" y="-1" width="1026" height="614"/>
<g display="none">
<rect width="100%" height="100%" fill="url(#gridpattern)" stroke-width="0"/>
</g>
</g>
<g>
<title>Layer 1</title>
<rect x="7" y="5" width="1012" height="290" rx="20" fill="#007f7f" stroke="#0f0" stroke-width="5"/>
<g fill="#ffff00" fill-opacity="null" font-family="Helvetica, Arial, sans-serif" font-size="20" font-weight="bold" stroke="#00ff00" stroke-width="0">

<text x="50" y="280" fill="#0000ff" font-family="Helvetica, Arial, sans-serif" font-size="25" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">]]..keybhidden..[[</text>
</g>
  <g id="svg_47">
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="1" y="305.999996" width="70" height="70" id="svg_1" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="20" y="360.999996" id="svg_3" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">1</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="80" y="305.999996" width="70" height="70" id="svg_8" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="100" y="360.999996" id="svg_9" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">2</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="160" y="305.999996" width="70" height="70" id="svg_11" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="180" y="360.999996" id="svg_12" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">3</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="240" y="305.999996" width="70" height="70" id="svg_14" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="260" y="360.999996" id="svg_15" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">4</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="320" y="305.999996" width="70" height="70" id="svg_17" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="340" y="360.999996" id="svg_18" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">5</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="400" y="305.999996" width="70" height="70" id="svg_20" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="420" y="360.999996" id="svg_21" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">6</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="480" y="305.999996" width="70" height="70" id="svg_23" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="500" y="360.999996" id="svg_24" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">7</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="560" y="306.00001" width="70" height="70" id="svg_26" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="580" y="361.00001" id="svg_27" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">8</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="640" y="305.999996" width="70" height="70" id="svg_29" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="660" y="360.999996" id="svg_30" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">9</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="720" y="305.999996" width="70" height="70" id="svg_32" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="740" y="360.999996" id="svg_33" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">0</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="800" y="305.999996" width="70" height="70" id="svg_35" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="825" y="350" id="svg_36" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">,</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="880" y="305.999996" width="70" height="70" id="svg_38" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="900" y="360" id="svg_39" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">?</text>
  </g>
  <g id="svg_108">
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="41" y="384.999996" width="70" height="70" id="svg_10" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="65" y="439.999996" id="svg_13" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">!</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="121" y="384.999996" width="70" height="70" id="svg_16" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="127" y="439.999996" id="svg_19" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">@</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="201" y="384.999996" width="70" height="70" id="svg_22" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="220" y="439.999996" id="svg_25" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">#</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="281" y="384.999996" width="70" height="70" id="svg_28" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="300" y="439.999996" id="svg_31" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">$</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="361" y="384.999996" width="70" height="70" id="svg_34" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="371" y="439.999996" id="svg_37" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">%</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="441" y="385.00001" width="70" height="70" id="svg_40" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="460" y="440.00001" id="svg_41" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">^</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="521" y="384.999996" width="70" height="70" id="svg_42" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="535" y="439.999996" id="svg_43" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">&amp;</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="601" y="384.999996" width="70" height="70" id="svg_44" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="625" y="439.999996" id="svg_45" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">*</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="681" y="384.999996" width="70" height="70" id="svg_48" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="700" y="439.999996" id="svg_49" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">~</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="761" y="384.999996" width="70" height="70" id="svg_118" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="785" y="439.999996" id="svg_119" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">;</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="841" y="384.999996" width="70" height="70" id="svg_121" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="865" y="439.999996" id="svg_122" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">:</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="921" y="384.999996" width="70" height="70" id="svg_127" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="950" y="439.999996" id="svg_128" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">'</text>
  </g>
  <g id="svg_112">
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="86" y="465.999996" width="70" height="70" id="svg_52" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="110" y="520.999996" id="svg_53" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">(</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="166" y="465.999996" width="70" height="70" id="svg_54" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="195" y="520.999996" id="svg_55" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">)</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="246" y="465.999996" width="70" height="70" id="svg_56" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="270" y="520.999996" id="svg_57" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">[</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="326" y="465.999996" width="70" height="70" id="svg_58" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="350" y="520.999996" id="svg_59" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">]</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="406" y="466.00001" width="70" height="70" id="svg_60" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="430" y="521.00001" id="svg_61" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">{</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="486" y="465.999996" width="70" height="70" id="svg_62" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="515" y="520.999996" id="svg_63" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">}</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="566" y="465.999996" width="70" height="70" id="svg_64" rx="10"/>
   <text style="cursor: move;" fill="#bf0000" stroke-width="0" x="585" y="520.999996" id="svg_65" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">&lt;</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="646" y="465.999996" width="70" height="70" id="svg_68" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="656" y="520.999996" id="svg_69" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold"/>
   <text style="cursor: move;" fill="#bf0000" stroke-width="0" x="665" y="520.999996" id="svg_78" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">&gt;</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="726" y="465.999996" width="70" height="70" id="svg_66" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="736" y="520.999996" id="svg_67" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold"/>
   <text fill="#bf0000" stroke-width="0" x="755" y="520.999996" id="svg_107" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">+</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="806" y="465.999996" width="70" height="70" id="svg_109" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="830" y="520.999996" id="svg_111" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">-</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="886" y="465.999996" width="70" height="70" id="svg_113" rx="10"/>
   <text fill="#bf0000" stroke-width="0" x="908" y="520.999996" id="svg_115" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">=</text>
   <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="306" y="545" width="300" height="55" id="svg_71" rx="10"/>
  <rect fill="#00bfbf" stroke="#ffff00" stroke-width="5" x="650" y="544.999996" width="140" height="55" id="svg_73" rx="10"/>
  <text style="cursor: move;" fill="#ffff00" stroke-width="0" x="690" y="585" id="svg_74" font-size="28" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">?123</text>
  <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="880" y="545" width="140" height="55" id="svg_76" rx="10"/>
  <text fill="#bf0000" stroke-width="0" x="900" y="585" id="svg_77" font-size="30" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">CLEAR</text>
        </g>]] 
    local buttonNo = evaluateButtons()
    if MSMouseDown then
      MSMouseX = screen.getMouseX()
      MSMouseY = screen.getMouseY()
      if buttonNo ~= MSButtonSelected or MSMouseX < 0.05 or MSMouseX > 0.95 or MSMouseY < 0.05 or MSMouseY > 0.95 then
        if MSButtonSelected > 0 then
          onButtonUp(MSButtonSelected)
        end
        MSButtonSelected = 0
      end        
    end
       
end

if LockonStart == true then
        local charcount = string.len(keyb)
        if charcount > startcount then
            keybhidden = keybhidden.."*" 
            screen.addText(30,10,7,keybhidden)        
            startcount = charcount
        elseif keyb == "" then
            keybhidden = ""
            charcount = 0
            startcount = 0
        end
elseif LockonStart == false then
    keybhidden = keyb    
end 
screen.setHTML(page)
    local html = {}
    
    for lineIndex = #lines,1,-1 do
    	local line = lines[lineIndex]
        if lineIndex < 8 then
            table.insert(html, "<div style='font-size: 4.5vh; background-color: darkblue; color: white; border-radius: 2.5vw; text-align: left;'>" .. line .. "</div>")
        elseif lineIndex == 8 then
            table.remove(lines,1)
            lineIndex = 0
            table.insert(html, "<div style='font-size: 4.5vh; background-color: darkblue; color: white; border-radius: 2.5vw; text-align: left;'>" .. line .. "</div>")            
        end
    end
    
     screen.addText(2,1,0,(table.concat(html))) 

end








UnitTick exit--------------------------------------

keybhidden = "Goodbye"
unit.exit()

System Update--------------------------------------

updateScreen()

System Stop----------------------------------------

page = [[]]
screen.setHTML(page)

emitter----------------------------(*,*)
table.insert(lines, "ID: " .. channel .. "/ MSG: " .. message)

Screen Mouse UP --------------------(*,*)
MSMouseX = x
MSMouseY = y
MSMouseDown = false
local buttonNo = evaluateButtons()
if MSButtonSelected > 0 and MSButtonSelected == buttonNo then
    onButtonUp(buttonNo)
    onClick(buttonNo)
end
MSButtonSelected = -buttonNo

Screen Mouse Down --------------------(*,*)
MSMouseX = x
MSMouseY = y
MSMouseDown = true
MSAttention = 0
MSDislikeButton = 0
MSLikeButton = 0
MSButtonSelected = evaluateButtons()
onButtonDown(MSButtonSelected)

 

 

 

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...