static char const html_javascript_code[] =
	"\"use strict;\"\n"
	"var hypview_patterns = [\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAP///wB3dwAA//8AAN3dAAD//wAAd3cAAP//AADd3QAA//8AAHd3AAD//wAA3d0AAP//AAB3dwAA//8AAN3dAAD//wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wCqqgAA//8AAKqqAAD//wAAqqoAAP//AACqqgAA//8AAKqqAAD//wAAqqoAAP//AACqqgAA//8AAKqqAAD//wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wCqqgAAd3cAAKqqAADd3QAAqqoAAHd3AACqqgAA3d0AAKqqAAB3dwAAqqoAAN3dAACqqgAAd3cAAKqqAADd3QAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wBVVQAAqqoAAFVVAACqqgAAVVUAAKqqAABVVQAAqqoAAFVVAACqqgAAVVUAAKqqAABVVQAAqqoAAFVVAACqqgAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAREQAAqqoAAEREAACqqgAAEREAAKqqAABERAAAqqoAABERAACqqgAAREQAAKqqAAAREQAAqqoAAEREAACqqgAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAAAAAAqqoAAAAAAACqqgAAAAAAAKqqAAAAAAAAqqoAAAAAAACqqgAAAAAAAKqqAAAAAAAAqqoAAAAAAACqqgAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAAAAAAIiIAAAAAAACIiAAAAAAAACIiAAAAAAAAiIgAAAAAAAAiIgAAAAAAAIiIAAAAAAAAIiIAAAAAAACIiAAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wDv7wAA7+8AAO/vAAAAAAAA/v4AAP7+AAD+/gAAAAAAAO/vAADv7wAA7+8AAAAAAAD+/gAA/v4AAP7+AAAAAAAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD39wAA7+8AANfXAAC7uwAAfX0AAP7+AAD9/QAA+/sAAPf3AADv7wAA19cAALu7AAB9fQAA/v4AAP39AAD7+wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wC+vgAAf38AAP//AAD//wAA6+sAAPf3AAD//wAA//8AAL6+AAB/fwAA//8AAP//AADr6wAA9/cAAP//AAD//wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wBfXwAAqqoAAPv7AAD7+wAA9fUAAKqqAAC/vwAAv78AAF9fAACqqgAA+/sAAPv7AAD19QAAqqoAAL+/AAC/vwAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD7+wAA//8AAL+/AADf3wAA7+8AAP//AAD+/gAA/f0AAPv7AAD//wAAv78AAN/fAADv7wAA//8AAP7+AAD9/QAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD/+QAAM88AAHJOAAB+fgAA5+cAAOTkAACcnAAAn5kAAP/5AAAzzwAAck4AAH5+AADn5wAA5OQAAJycAACfmQAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//wAA//4AAP//AAD3/wAA//8AAP/fAAD//wAA//8AAP//AAD//gAA//8AAPf/AAD//wAA/98AAP//AAD//wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wBwcAAAOTkAAJOTAAAHBwAADg4AAJycAADJyQAA4OAAAHBwAAA5OQAAk5MAAAcHAAAODgAAnJwAAMnJAADg4AAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//wAA7u4AAH19AAC7uwAA19cAAO7uAAD//wAAqqoAAP//AADu7gAAfX0AALu7AADX1wAA7u4AAP//AACqqgAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//wAA7e4AAP//AADv7wAA//8AAKqqAAD//wAA7+8AAP//AADu7gAA//8AAO/vAAD//wAAqqoAAP//AADv7wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAODgAADg4AAG5uAAAREQAA4OAAAODgAADm5gAAEREAAA4OAAAODgAAbm4AABERAADg4AAA4OAAAObmAAAREQAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wA4OAAA19cAAO/vAADv7wAAg4MAAH19AAD+/gAA/v4AADg4AADX1wAA7+8AAO/vAACDgwAAfX0AAP7+AAD+/gAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD+/gAA/v4AAH9/AACfnwAA5+cAANvbAAC9vQAAfn4AAP7+AAD+/gAAf38AAJ+fAADn5wAA29sAAL29AAB+fgAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAPDwAADw8AAA8PAAAPDwAA8PAAAPDwAADw8AAA8PAAAA8PAAAPDwAADw8AAA8PAADw8AAA8PAAAPDwAADw8AAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wDHxwAAg4MAAAEBAAAAAAAAAQEAAIODAADHxwAA7+8AAMfHAACDgwAAAQEAAAAAAAABAQAAg4MAAMfHAADv7wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wAAAAAAu7sAAN3dAADu7gAAAAAAAN3dAAC7uwAAd3cAAAAAAAC7uwAA3d0AAO7uAAAAAAAA3d0AALu7AAB3dwAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD+/gAA/f0AAPv7AAD39wAA7+8AAN/fAAC/vwAAf38AAP7+AAD9/QAA+/sAAPf3AADv7wAA398AAL+/AAB/fwAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wDz8wAA5+cAAM/PAACfnwAAPz8AAH5+AAD8/AAA+fkAAPPzAADn5wAAz88AAJ+fAAA/PwAAfn4AAPz8AAD5+QAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wDb2wAA5+cAAOfnAADb2wAAvb0AAH5+AAB+fgAAvb0AANvbAADn5wAA5+cAANvbAAC9vQAAfn4AAH5+AAC9vQAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAD+/gAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAAAAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAAAAAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAD+/gAAAAAAAP7+AAD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAAAAAAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//gAA//0AAP/7AAD/9wAA/+8AAP/fAAD/vwAA/38AAP7/AAD9/wAA+/8AAPf/AADv/wAA3/8AAL//AAB//wAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wB//AAA//gAAP/xAAD/4wAA/8cAAP+PAAD/HwAA/j8AAPx/AAD4/wAA8f8AAOP/AADH/wAAj/8AAB//AAA//gAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wB//gAAv/0AAN/7AADv9wAA9+8AAPvfAAD9vwAA/n8AAP5/AAD9vwAA+98AAPfvAADv9wAA3/sAAL/9AAB//gAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAAAAAA',\n"
	"  'data:image/bmp;base64,Qk1+AAAAAAAAAD4AAAAoAAAAEAAAABAAAAABAAEAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAP///wD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAD+/gAAAAAAAP7+AAD+/gAA/v4AAP7+AAD+/gAA/v4AAP7+AAAAAAAA'\n"
	"];\n"
	"function showPopup (id) {\n"
	"  var a = document.getElementById(id + '_content');\n"
	"  if (a) {\n"
	"    if (a.style.display == 'none' || a.style.display == '') {\n"
	"      a.style.display = 'block';\n"
	"    } else {\n"
	"      a.style.display = 'none';\n"
	"    }\n"
	"  }\n"
	"}\n"
	"function hidePopup (id) {\n"
	"  var a = document.getElementById(id + '_content');\n"
	"  if (a)\n"
	"    a.style.display = 'none';\n"
	"}\n"
	"function hideInfo () {\n"
	"  var id = 'hyp_info';\n"
	"  var a = document.getElementById(id + '_content');\n"
	"  if (a)\n"
	"    a.style.display = 'none';\n"
	"}\n"
	"function hideXrefs () {\n"
	"  var id = 'hyp_xrefs';\n"
	"  var a = document.getElementById(id + '_content');\n"
	"  if (a)\n"
	"    a.style.display = 'none';\n"
	"}\n"
	"function showInfo () {\n"
	"  hideXrefs();\n"
	"  var id = 'hyp_info';\n"
	"  var a = document.getElementById(id + '_content');\n"
	"  if (a) {\n"
	"    if (a.style.display == 'none' || a.style.display == '') {\n"
	"      a.style.display = 'inline-block';\n"
	"    } else {\n"
	"      a.style.display = 'none';\n"
	"    }\n"
	"  }\n"
	"}\n"
	"function showXrefs () {\n"
	"  hideInfo();\n"
	"  var id = 'hyp_xrefs';\n"
	"  var a = document.getElementById(id + '_content');\n"
	"  if (a) {\n"
	"    if (a.style.display == 'none' || a.style.display == '') {\n"
	"      a.style.display = 'inline-block';\n"
	"    } else {\n"
	"      a.style.display = 'none';\n"
	"    }\n"
	"  }\n"
	"}\n"
	"function getQueryVariable(variable)\n"
	"{\n"
	"  var query = window.location.search.substring(1);\n"
	"  var vars = query.split('&');\n"
	"  for (var i = 0; i < vars.length; i++) {\n"
	"    var pair = vars[i].split('=');\n"
	"    if (decodeURIComponent(pair[0]) == variable) {\n"
	"      return decodeURIComponent(pair[1]);\n"
	"    }\n"
	"  }\n"
	"  return '';\n"
	"}\n"
	"var lang;\n"
	"var languages = ['en', 'de'];\n"
	"function getSupportedLanguage(l)\n"
	"{\n"
	"  for (var j = 0; j < languages.length; j++) {\n"
	"    if (languages[j] == l) return l;\n"
	"  }\n"
	"  return '';\n"
	"}\n"
	"function getAcceptLanguage()\n"
	"{\n"
	"  if (window.navigator.languages) {\n"
	"    for (var i = 0; i < window.navigator.languages.length; i++) {\n"
	"      var l = window.navigator.languages[i].split('-')[0].split('_')[0];\n"
	"      l = getSupportedLanguage(l);\n"
	"      if (l != '') return l;\n"
	"    }\n"
	"  }\n"
	"  return '';\n"
	"}\n"
	"function getLanguage()\n"
	"{\n"
	"  var l = getQueryVariable('lang').split('-')[0].split('_')[0];\n"
	"  if (l == '') {\n"
	"    l = getAcceptLanguage();\n"
	"  }\n"
	"  l = getSupportedLanguage(l);\n"
	"  if (l == '')\n"
	"    l = getSupportedLanguage(navigator.language);\n"
	"  if (l == '')\n"
	"    l = 'en';\n"
	"  lang = l;\n"
	"  var html = document.getElementsByTagName('html')[0];\n"
	"  html.setAttribute('lang', lang);\n"
	"  html.setAttribute('xml:lang', lang);\n"
	"}\n"
	"getLanguage();\n"
	"var xraster = 0;\n"
	"var yraster = 0;\n"
	"function getRaster()\n"
	"{\n"
	"  var d = document.getElementById('hypview_linetest');\n"
	"  if (xraster == 0)\n"
	"  {\n"
	"    var d = document.createElement('div');\n"
	"    var p = document.createElement('pre');\n"
	"    var s = document.createElement('span');\n"
	"    var t = document.createTextNode('y');\n"
	"    s.appendChild(t);\n"
	"    p.appendChild(s);\n"
	"    d.appendChild(p);\n"
	"    d.style.visibility = 'hidden';\n"
	"    document.body.appendChild(d);\n"
	"    xraster = s.offsetWidth;\n"
	"    yraster = s.offsetHeight;\n"
	"    document.body.removeChild(d);\n"
	"  }\n"
	"}\n"
	"function drawLine(id, xoffset, width, height, begarrow, endarrow, linestyle)\n"
	"{\n"
	"  var c = document.getElementById(id);\n"
	"  var ctx = c.getContext('2d');\n"
	"  var style = window.getComputedStyle(c);\n"
	"  ctx.font = style.getPropertyValue('font-size') + ' ' + style.getPropertyValue('font-family');\n"
	"  getRaster();\n"
	"  var x0, y0, x1, y1;\n"
	"  if (width < 0)\n"
	"  {\n"
	"    xoffset += width;\n"
	"    /* draw from right to left */\n"
	"    width = (-width) * xraster;\n"
	"    x0 = width + 0.5;\n"
	"    x1 = 0.5;\n"
	"  } else if (width == 0)\n"
	"  {\n"
	"    /* vertical line */\n"
	"    width = 1;\n"
	"    x0 = 0.5;\n"
	"    x1 = 0.5;\n"
	"  } else\n"
	"  {\n"
	"    /* draw from left to right */\n"
	"    width = width * xraster;\n"
	"    x0 = 0.5;\n"
	"    x1 = width + 0.5;\n"
	"  }\n"
	"  if (height < 0)\n"
	"  {\n"
	"    /* draw from bottom to top */\n"
	"    height = -height;\n"
	"    height = height * (yraster + 0.05);\n"
	"    y0 = height + 0.5;\n"
	"    y1 = 0.5;\n"
	"  } else if (height == 0)\n"
	"  {\n"
	"    /* horizontal line */\n"
	"    height = 1;\n"
	"    y0 = 0.5;\n"
	"    y1 = 0.5;\n"
	"  } else\n"
	"  {\n"
	"    /* draw from top to bottom */\n"
	"    height = height * (yraster + 0.05);\n"
	"    y0 = 0.5;\n"
	"    y1 = height + 0.5;\n"
	"  }\n"
	"  c.width = width + 1;\n"
	"  c.height = height + 1;\n"
	"  c.style.left = ((xoffset - 1) * xraster).toString() + 'px';\n"
	"  ctx.lineWidth = 1;\n"
	"  ctx.shadowBlur = 0;\n"
	"  ctx.filter = 'none';\n"
	"  ctx.strokeStyle = style.getPropertyValue('color');\n"
	"  ctx.imageSmoothingEnabled = false;\n"
	"  ctx.mozImageSmoothingEnabled = false;\n"
	"  ctx.webkitImageSmoothingEnabled = false;\n"
	"  ctx.msImageSmoothingEnabled = false;\n"
	"  try {\n"
	"    switch (linestyle)\n"
	"    {\n"
	"    default:\n"
	"    case 1: /* SOLID */\n"
	"      break;\n"
	"    case 2: /* LONGDASH */\n"
	"      ctx.setLineDash([12, 4]);\n"
	"      break;\n"
	"    case 3: /* DOT */\n"
	"      ctx.setLineDash([2, 6, 2, 6]);\n"
	"      break;\n"
	"    case 4: /* DASHDOT */\n"
	"      ctx.setLineDash([8, 3, 2, 3]);\n"
	"      break;\n"
	"    case 5: /* DASH */\n"
	"      ctx.setLineDash([8, 8]);\n"
	"      break;\n"
	"    case 6: /* DASH2DOT */\n"
	"      ctx.setLineDash([4, 3, 2, 2, 1, 3, 1, 0]);\n"
	"      break;\n"
	"    case 7: /* USERLINE */\n"
	"      ctx.setLineDash([1, 1]);\n"
	"      break;\n"
	"    }\n"
	"  } catch (e)\n"
	"  {\n"
	"    /* setLineDash not supported, but not much we can do about it */\n"
	"  }\n"
	"  ctx.beginPath();\n"
	"  ctx.moveTo(x0, y0);\n"
	"  ctx.lineTo(x1, y1);\n"
	"  ctx.stroke();\n"
	"}\n"
	"function roundedBox(ctx, width, height)\n"
	"{\n"
	"  var deltax, deltay, xrad, yrad;\n"
	"  rdeltax = width / 2;\n"
	"  rdeltay = height / 2;\n"
	"  xrad = 15;\n"
	"  if (xrad > rdeltax)\n"
	"    xrad = rdeltax;\n"
	"  yrad = xrad;\n"
	"  if (yrad > rdeltay)\n"
	"    yrad = rdeltay;\n"
	"  ctx.beginPath();\n"
	"  ctx.moveTo(0.5, 0.5 + yrad);\n"
	"  ctx.quadraticCurveTo(0.5, 0.5, 0.5 + xrad, 0.5);\n"
	"  ctx.lineTo(width + 0.5 - xrad, 0.5);\n"
	"  ctx.quadraticCurveTo(width + 0.5, 0.5, width + 0.5, 0.5 + yrad);\n"
	"  ctx.lineTo(width + 0.5, height + 0.5 - yrad);\n"
	"  ctx.quadraticCurveTo(width + 0.5, height + 0.5, width + 0.5 - xrad, height + 0.5);\n"
	"  ctx.lineTo(0.5 + xrad, height + 0.5);\n"
	"  ctx.quadraticCurveTo(0.5, height + 0.5, 0.5, height + 0.5 - yrad);\n"
	"  ctx.lineTo(0.5, 0.5 + yrad);\n"
	"}\n"
	"function drawBox(id, xoffset, width, height, fillstyle, rounded)\n"
	"{\n"
	"  var c = document.getElementById(id);\n"
	"  var ctx = c.getContext('2d');\n"
	"  var style = window.getComputedStyle(c);\n"
	"  ctx.font = style.getPropertyValue('font-size') + ' ' + style.getPropertyValue('font-family');\n"
	"  getRaster();\n"
	"  width = width * xraster;\n"
	"  height = height * (yraster + 0.05);\n"
	"  c.width = width + 1;\n"
	"  c.height = height + 1;\n"
	"  c.style.left = ((xoffset - 1) * xraster).toString() + 'px';\n"
	"  ctx.lineWidth = 1;\n"
	"  ctx.shadowBlur = 0;\n"
	"  ctx.filter = 'none';\n"
	"  ctx.strokeStyle = style.getPropertyValue('color');\n"
	"  ctx.imageSmoothingEnabled = false;\n"
	"  ctx.mozImageSmoothingEnabled = false;\n"
	"  ctx.webkitImageSmoothingEnabled = false;\n"
	"  ctx.msImageSmoothingEnabled = false;\n"
	"  if (rounded)\n"
	"  {\n"
	"    roundedBox(ctx, width, height);\n"
	"  } else\n"
	"  {\n"
	"    ctx.rect(0.5, 0.5, width, height);\n"
	"  }\n"
	"  if (fillstyle != 0)\n"
	"  {\n"
	"    if ((fillstyle >= 1 && fillstyle <= 7) || (fillstyle >= 9 && fillstyle <= 36))\n"
	"    {\n"
	"      var img;\n"
	"      img = new Image();\n"
	"      img.src = hypview_patterns[fillstyle];\n"
	"      img.onload = function() {\n"
	"        ctx.fillStyle = ctx.createPattern(img, 'repeat');\n"
	"        ctx.fill();\n"
	"        if (fillstyle != 8)\n"
	"        {\n"
	"          ctx.stroke();\n"
	"        }\n"
	"      };\n"
	"      return;\n"
	"    } else\n"
	"    {\n"
	"      ctx.fill();\n"
	"    }\n"
	"  }\n"
	"  if (fillstyle != 8)\n"
	"  {\n"
	"    ctx.stroke();\n"
	"  }\n"
	"}\n"
	"function execSystem(title, cmd)\n"
	"{\n"
	"  window.confirm(title + ' ' + cmd);\n"
	"}\n"
	"function execRx(title, cmd)\n"
	"{\n"
	"  window.confirm(title + ' ' + cmd);\n"
	"}\n"
	"function execRxs(title, cmd)\n"
	"{\n"
	"  window.confirm(title + ' ' + cmd);\n"
	"}\n"
;
