<?xml version="1.0" encoding="utf-8"?> 

<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:k="http://www.inkscape.org/namespaces/keys"
   xmlns:h="http://www.w3.org/1999/xhtml"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   exclude-result-prefixes="k"
>

<xsl:output method="xml" encoding="utf-8" indent="no"/>

<xsl:variable name="style-section" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:bold;font-size:24;text-anchor:start;writing-mode:lr;letter-spacing:-2;'"/>
<xsl:variable name="space-section" select="28"/>
<xsl:variable name="skip-section-title" select="21"/>
<xsl:variable name="skip-section-content" select="25"/>

<xsl:variable name="space-group" select="3"/>
<xsl:variable name="skip-group-content" select="1.5"/>

<xsl:variable name="style-title" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:bold;font-size:7.4;text-anchor:start;writing-mode:lr;letter-spacing:-0.2;'"/>
<xsl:variable name="space-title" select="7"/>
<xsl:variable name="skip-title-content" select="5"/>

<xsl:variable name="space-keys" select="8"/>
<xsl:variable name="skip-keys-content" select="1"/>
<xsl:variable name="skip-keys-action" select="5"/> <!-- from keys-content -->

<xsl:variable name="space-mouse" select="11.5"/>
<xsl:variable name="skip-mouse-content" select="1.5"/>
<xsl:variable name="skip-mouse-action" select="5"/> <!-- from mouse-content -->

<xsl:variable name="style-note" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:3;text-anchor:start;writing-mode:lr;letter-spacing:0;'"/>
<xsl:variable name="space-note" select="4"/>
<xsl:variable name="skip-note-content" select="3"/>

<xsl:variable name="style-letterkey" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:4.4;text-anchor:start;writing-mode:lr;'"/>
<xsl:variable name="style-keyf" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:3.3;text-anchor:start;writing-mode:lr;letter-spacing:-0.4;'"/>
<xsl:variable name="style-keymisc" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:3.4;text-anchor:start;writing-mode:lr;letter-spacing:-0.2;'"/>
<xsl:variable name="style-action" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:6.4;text-anchor:start;writing-mode:lr;letter-spacing:-0.4;'"/>

<xsl:variable name="section-width" select="215"/>
<xsl:variable name="section-hskip" select="2"/>
<xsl:variable name="note-hskip" select="6"/>

<xsl:variable name="action-hskip" select="3"/>

<xsl:variable name="w-shift" select="15.46"/>
<xsl:variable name="w-ctrl" select="12.38"/>
<xsl:variable name="w-alt" select="10.67"/>
<xsl:variable name="w-left" select="8.7"/>
<xsl:variable name="w-right" select="10.9"/>
<xsl:variable name="w-letterkey" select="8.00"/>
<xsl:variable name="w-misc-wide" select="17.46"/>
<xsl:variable name="w-misc" select="12.38"/>
<xsl:variable name="w-arrows" select="12.38"/>
<xsl:variable name="w-mouse" select="7.0"/>

<xsl:variable name="w-key" select="31"/>

<xsl:template match="k:root">
<xsl:comment>

Do not edit this file.
It is generated automatically from doc/keys.xml by doc/keys-svg.xsl.

</xsl:comment>
<svg
   version="1.0"
   x="0"
   y="0"
   width="744.094482"
   height="1052.36218"
   id="svg559"
   sodipodi:version="0.32"
   inkscape:version="0.37cvs"
   sodipodi:docname="keys-sample.svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   sodipodi:docbase="/home/d/ink/inkscape">
  <sodipodi:namedview
     id="base"
     inkscape:zoom="0.48"
     inkscape:cx="736"
     inkscape:cy="588"
     inkscape:window-width="780"
     inkscape:window-height="580"
     inkscape:window-x="0"
     inkscape:window-y="0"
     showborder="false" />
  <defs
     id="defs561">
    <linearGradient
       id="linearGradient711">
      <stop
         style="stop-color:#ffffff;stop-opacity:1;"
         offset="0.00000000"
         id="stop712" />
      <stop
         style="stop-color:#868686;stop-opacity:1;"
         offset="1.00000000"
         id="stop713" />
    </linearGradient>
    <linearGradient
       id="linearGradient607">
      <stop
         style="stop-color:#cfcfcf;stop-opacity:1;"
         offset="0.000000"
         id="stop608" />
      <stop
         style="stop-color:#efefef;stop-opacity:1;"
         offset="1.000000"
         id="stop609" />
    </linearGradient>
    <linearGradient
       id="linearGradient565">
      <stop
         style="stop-color:#9d9d9f;stop-opacity:1;"
         offset="0.000000"
         id="stop566" />
      <stop
         style="stop-color:#e5e5e5;stop-opacity:1;"
         offset="1.000000"
         id="stop567" />
    </linearGradient>
    <radialGradient
       id="radialGradient568"
       xlink:href="#linearGradient711"
       cx="0.69677418"
       cy="0.30366492"
       r="0.87194777"
       fx="0.69677418"
       fy="0.30366492"
       spreadMethod="reflect" />
    <linearGradient
       id="linearGradient569"
       xlink:href="#linearGradient565"
       y2="-0.03731298"
       x2="0.72092992"
       y1="0.99253702"
       x1="-0.08527008"
       spreadMethod="pad"
       gradientUnits="objectBoundingBox" />
    <linearGradient
       id="linearGradient580"
       xlink:href="#linearGradient565"
       y2="0.00000002"
       x2="-0.04651194"
       y1="0.99253708"
       x1="-0.00775294"
       spreadMethod="pad"
       gradientUnits="objectBoundingBox" />
    <linearGradient
       xlink:href="#linearGradient565"
       id="linearGradient576" />
    <linearGradient
       xlink:href="#linearGradient607"
       id="linearGradient610"
       x1="0.11764701"
       y1="0.86885244"
       x2="0.78280514"
       y2="0.12295082"
       gradientUnits="objectBoundingBox"
       spreadMethod="pad" />
    <linearGradient
       xlink:href="#linearGradient565"
       id="linearGradient611"
       x1="0.10837435"
       y1="0.94531250"
       x2="0.76847297"
       y2="0.28125000"
       gradientUnits="objectBoundingBox"
       spreadMethod="pad" />
    <linearGradient
       xlink:href="#linearGradient607"
       id="linearGradient613"
       x1="0.23529346"
       y1="0.85156250"
       x2="0.82805431"
       y2="0.12499999"
       gradientUnits="objectBoundingBox"
       spreadMethod="pad" />
    <linearGradient
       xlink:href="#linearGradient565"
       id="linearGradient615"
       x1="0.10731713"
       y1="0.82031238"
       x2="0.87804890"
       y2="0.07812499"
       gradientUnits="objectBoundingBox"
       spreadMethod="pad" />
    <linearGradient
       xlink:href="#linearGradient607"
       id="linearGradient620" />
  </defs>

<!-- Inkscape does not yet support svg:use of an object in defs, therefore we define the key graphics here (on the canvas at 0,0) -->
<!-- They will be overlaid by the background rectangle of the first section -->

<!-- mouse images -->

  <g
     id="left-click">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 3.6677089 0.69866497 C 2.5111219 0.70247797 0.60176688 0.87400498 0.48616554 2.6404201 C 0.36648452 4.20794 0.58434883 5.5470015 1.1224739 6.7127964 C 1.6478125 7.8945497 2.3280327 8.770865 3.7101306 8.791406 C 3.7261892 8.791406 3.7366738 8.791641 3.7525494 8.791406 C 5.1346474 8.770865 5.8148662 7.8945497 6.3402062 6.7127964 C 6.8783313 5.5470015 7.0961985 4.20794 6.9765161 2.6404201 C 6.8609133 0.87400498 4.9515568 0.70247797 3.7949711 0.69866497 C 3.7582543 0.69854407 3.702741 0.69866497 3.6677089 0.69866497 z "
       id="path742"
       transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.137792;"
       d="M 4.9596784 0.75757138 L 4.9596784 4.5604601 "
       id="path741"
       transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 2.5836552 0.75683638 C 1.5807894 0.90294429 0.56647766 1.3378565 0.48232843 2.6236796 C 0.42599755 3.3614571 0.43206257 3.9104527 0.52347935 4.5527658 L 2.5836552 4.5527658 L 2.5836552 0.75683638 z "
       id="path740"
       transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.137792;"
       d="M 2.5571164 0.75757138 L 2.5571164 4.5604601 "
       id="path739"
       transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.137792;"
       d="M 0.52620977 4.5687418 L 6.9386881 4.5687418 "
       id="path738"
       transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="0.44536325"
       y="0.10000575"
       id="text743"
       sodipodi:linespacing="100%"
       transform="matrix(1.288158,0.000000,0.000000,1.288158,0.279045,1.170720)"><tspan
         x="0.44536325"
         y="0.10000575"
         sodipodi:role="line"
         id="tspan748">click</tspan></text>
  </g>

  <g
     id="left-drag"
     transform="translate(0.000000,1.125000e-6)">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 4.2811092,3.6456834 C 3.5204235,3.6481912 2.2646447,3.7610042 2.1886133,4.9227722 C 2.1098991,5.9537272 2.2531880,6.8344255 2.6071123,7.6011667 C 2.9526262,8.3784037 3.4000056,8.9547546 4.3090093,8.9682645 C 4.3195716,8.9682645 4.3264664,8.9684190 4.3369079,8.9682645 C 5.2459115,8.9547546 5.6932901,8.3784037 6.0388055,7.6011667 C 6.3927298,6.8344255 6.5360202,5.9537272 6.4573052,4.9227722 C 6.3812739,3.7610042 5.1254936,3.6481912 4.3648094,3.6456834 C 4.3406607,3.6456039 4.3041493,3.6456834 4.2811092,3.6456834 z "
       id="path737" />
    <path
       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0906254;"
       d="M 5.1308348,3.6844260 L 5.1308348,6.1855791"
       id="path736" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 3.5681284,3.6839426 C 2.9085453,3.7800375 2.2414340,4.0660784 2.1860899,4.9117621 C 2.1490409,5.3969969 2.1530295,5.7580703 2.2131543,6.1805185 L 3.5681284,6.1805185 L 3.5681284,3.6839426 z "
       id="path735" />
    <path
       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0906254;"
       d="M 2.2149502,6.1910258 L 6.4324262,6.1910258"
       id="path733" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 0.87308887,0.18494458 C 1.9614707,0.76553855 2.1048185,1.7016907 2.2121750,2.6779119 C 2.6396563,2.5147384 2.5518759,2.6983745 2.9793570,2.5352012 C 3.0152194,1.1271410 2.9896720,0.37476438 2.2995828,-0.38186391 C 1.8611988,-0.016212694 1.4403488,0.10428085 0.87308887,0.18494458 z "
       id="path732"
       sodipodi:nodetypes="ccccc" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 1.5112588,2.4479293 L 4.3111764,2.3405949 L 2.5176694,3.6888367 L 1.5112588,2.4479293 z "
       id="path731"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="2.55886233"
       y="1.00883842"
       id="text750"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="2.55886245"
         y="1.00883842"
         sodipodi:role="line"
         id="tspan751">drag</tspan></text>
  </g>

  <g
     id="mid-click">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 3.5020868 1.7911048 C 2.4762557 1.7944862 0.78275968 1.9466216 0.68022768 3.5133391 C 0.57407668 4.9036459 0.76731068 6.0913227 1.2445987 7.125321 C 1.7105457 8.1734737 2.3138647 8.9507193 3.5397118 8.9689372 C 3.5539558 8.9689372 3.5632548 8.9691456 3.5773358 8.9689372 C 4.8031828 8.9507193 5.4065018 8.1734737 5.8724498 7.125321 C 6.3497388 6.0913227 6.5429749 4.9036459 6.4368238 3.5133391 C 6.3342898 1.9466216 4.6407908 1.7944862 3.6149618 1.7911048 C 3.5823958 1.7909978 3.5331588 1.7911048 3.5020868 1.7911048 z "
       id="path753" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 0.71574468 5.2236579 L 6.4032718 5.2236579 "
       id="path757" />
    <text
       xml:space="preserve"
       style="font-size:1.3;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="1.24093144"
       y="1.00938547"
       id="text765"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="1.24093139"
         y="1.00938547"
         sodipodi:role="line"
         id="tspan766">click</tspan></text>
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 2.4989727 1.8559797 L 2.4989727 5.265219 L 4.6627718 5.265219 L 4.6627718 1.8559797 C 3.9666658 1.7238863 3.2453998 1.7238863 2.4989727 1.8559797 z "
       id="path772"
       sodipodi:nodetypes="ccccc" />
  </g>

  <g
     id="mid-drag"
     transform="translate(-1.125000e-6,1.125000e-6)">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 4.2312960,3.5918108 C 3.4643678,3.5943388 2.1982835,3.7080776 2.1216282,4.8793802 C 2.0422680,5.9187954 2.1867335,6.8067213 2.5435616,7.5797547 C 2.8919109,8.3633701 3.3429624,8.9444505 4.2594258,8.9580711 C 4.2700748,8.9580711 4.2770261,8.9582270 4.2875525,8.9580711 C 5.2040158,8.9444505 5.6550659,8.3633701 6.0034166,7.5797547 C 6.3602447,6.8067213 6.5047117,5.9187954 6.4253508,4.8793802 C 6.3486955,3.7080776 5.0826097,3.5943388 4.3156823,3.5918108 C 4.2913355,3.5917309 4.2545251,3.5918108 4.2312960,3.5918108 z "
       id="path758" />
    <path
       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0913691;"
       d="M 2.1481820,6.1580415 L 6.4002675,6.1580415"
       id="path762" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 2.6941421,0.077840626 C 3.2444435,0.89346617 3.7063783,1.4221344 3.8046827,2.4788033 C 4.1961179,2.3256075 4.1391312,2.6208327 4.5305676,2.4676346 C 4.6094779,1.3820095 4.6609893,0.26064772 4.2105546,-0.46832581 C 3.9270868,0.098242238 3.3768906,0.24398760 2.6941421,0.077840626 z "
       id="path763"
       sodipodi:nodetypes="ccccc" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 2.7030627,2.3593309 L 5.5454954,2.2669081 L 4.2415509,3.3675109 L 2.7030627,2.3593309 z "
       id="path764"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="3.72539061"
       y="0.98140591"
       id="text768"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="3.72539067"
         y="0.98140591"
         sodipodi:role="line"
         id="tspan769">drag</tspan></text>
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 3.4954917,3.6403128 L 3.4954917,6.1891133 L 5.1131813,6.1891133 L 5.1131813,3.6403128 C 4.5927615,3.5415570 4.0535324,3.5415570 3.4954917,3.6403128 z "
       id="path773"
       sodipodi:nodetypes="ccccc" />
  </g>

  <g
     id="right-click">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 3.5470928 1.7706068 C 2.5212607 1.7739882 0.82776368 1.9261236 0.72523168 3.4928414 C 0.61908168 4.8831481 0.81231568 6.0708248 1.2896037 7.1048231 C 1.7555517 8.1529757 2.3588707 8.9302211 3.5847188 8.948439 C 3.5989618 8.948439 3.6082608 8.9486483 3.6223418 8.948439 C 4.8481898 8.9302211 5.4515078 8.1529757 5.9174568 7.1048231 C 6.3947448 6.0708248 6.5879819 4.8831481 6.4818299 3.4928414 C 6.3792958 1.9261236 4.6857978 1.7739882 3.6599678 1.7706068 C 3.6274018 1.7705 3.5781648 1.7706068 3.5470928 1.7706068 z "
       id="path774" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 0.76074868 5.2031601 L 6.4482788 5.2031601 "
       id="path775" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="2.13629596"
       y="0.99347234"
       id="text780"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="2.13629603"
         y="0.99347234"
         sodipodi:role="line"
         id="tspan813">click</tspan></text>
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 4.5998098 1.8222014 C 5.4892978 1.9517915 6.3889388 2.3375356 6.4635749 3.4779927 C 6.5135369 4.132363 6.5081579 4.619292 6.4270768 5.1889904 L 4.5998098 5.1889904 L 4.5998098 1.8222014 z "
       id="path788" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 2.5620557 1.8228546 L 2.5620557 5.1958163 "
       id="path789" />
  </g>


  <g
     id="right-drag"
     transform="translate(1.125000e-6,1.125000e-6)">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 4.3685855,3.7242673 C 3.6248392,3.7267190 2.3970228,3.8370198 2.3226845,4.9729187 C 2.2457230,5.9809166 2.3858220,6.8420041 2.7318645,7.5916719 C 3.0696846,8.3516015 3.5071027,8.9151187 4.3958651,8.9283270 C 4.4061923,8.9283270 4.4129335,8.9284789 4.4231424,8.9283270 C 5.3119040,8.9151187 5.7493213,8.3516015 6.0871422,7.5916719 C 6.4331854,6.8420041 6.5732851,5.9809166 6.4963237,4.9729187 C 6.4219845,3.8370198 5.1941675,3.7267190 4.4504219,3.7242673 C 4.4268110,3.7241898 4.3911133,3.7242673 4.3685855,3.7242673 z "
       id="path776" />
    <path
       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0886073;"
       d="M 2.3484358,6.2129311 L 6.4719977,6.2129311"
       id="path777" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 4.1311923,0.26532657 C 5.1283963,0.70189914 5.7345773,1.4458530 5.6790143,2.6209236 C 6.0994583,2.4561351 6.0854903,2.8238471 6.5059344,2.6590563 C 6.4931134,1.7804446 6.7046664,0.84138473 5.7023623,-0.30709515 C 5.1736773,0.064120851 4.6683523,0.21983456 4.1311923,0.26532657 z "
       id="path778"
       sodipodi:nodetypes="ccccc" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 4.4887093,2.5180790 L 7.1399773,2.4849831 L 6.2899294,3.7543860 L 4.4887093,2.5180790 z "
       id="path779"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="0.49732296"
       y="0.95831662"
       id="text783"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="0.49732295"
         y="0.95831662"
         sodipodi:role="line"
         id="tspan784">drag</tspan></text>
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:1pt;"
       d="M 5.1310314,3.7616744 C 5.7759272,3.8556295 6.4281828,4.1353010 6.4822960,4.9621532 C 6.5185187,5.4365836 6.5146188,5.7896161 6.4558335,6.2026579 L 5.1310314,6.2026579 L 5.1310314,3.7616744 z "
       id="path790" />
    <path
       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0886073;"
       d="M 3.6536224,3.7621480 L 3.6536224,6.2076068"
       id="path791" />
  </g>



  <g
     id="wheel">
    <path
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       d="M 3.5370048 1.7303644 C 2.5111727 1.7337458 0.81767667 1.8858811 0.71514468 3.4525986 C 0.60899368 4.8429053 0.80222768 6.0305822 1.2795157 7.0645805 C 1.7454637 8.112733 2.3487827 8.8899785 3.5746308 8.9081964 C 3.5888738 8.9081964 3.5981728 8.9084057 3.6122538 8.9081964 C 4.8381018 8.8899785 5.4414198 8.112733 5.9073688 7.0645805 C 6.3846568 6.0305822 6.5778939 4.8429053 6.4717419 3.4525986 C 6.3692078 1.8858811 4.6757098 1.7337458 3.6498798 1.7303644 C 3.6173138 1.7302575 3.5680768 1.7303644 3.5370048 1.7303644 z "
       id="path792" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 0.75066068 5.1629174 L 2.6033227 5.1629174 "
       id="path793"
       sodipodi:nodetypes="cc" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="0.97063343"
       y="0.96223223"
       id="text794"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="0.97063345"
         y="0.96223223"
         sodipodi:role="line"
         id="tspan795">wheel</tspan></text>
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 6.4381888 5.1629174 L 4.5855278 5.1629174 "
       id="path799"
       sodipodi:nodetypes="cc" />
    <rect
       style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;"
       id="rect801"
       width="1.10310698"
       height="2.92336941"
       x="3.06589717"
       y="2.08157873" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 2.0980692 L 4.1477788 2.0980692 "
       id="path802" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 2.1870294 L 4.1477788 2.1870294 "
       id="path803" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 2.3115737 L 4.1477788 2.3115737 "
       id="path804" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 2.5428703 L 4.1477788 2.5428703 "
       id="path805" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 2.9165032 L 4.1477788 2.9165032 "
       id="path806" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 3.5214326 L 4.1477788 3.5214326 "
       id="path807" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 4.9892801 L 4.1477788 4.9892801 "
       id="path808" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 4.9003199 L 4.1477788 4.9003199 "
       id="path809" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 4.7757756 L 4.1477788 4.7757756 "
       id="path810" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 4.544479 L 4.1477788 4.544479 "
       id="path811" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;"
       d="M 3.0713508 4.1708461 L 4.1477788 4.1708461 "
       id="path812" />
  </g>


<!-- key images -->

  <g
     id="shift">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       id="rect682"
       width="14.46854401"
       height="6.57892704"
       x="0.03756316"
       y="0.07391790"
       ry="0.68839085" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       id="rect683"
       width="12.71428394"
       height="5.05001116"
       x="0.84218349"
       y="0.77243602"
       ry="0.38310501" />
    <text
       style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;"
       x="1.37996908"
       y="4.35733509"
       id="text685"
       sodipodi:linespacing="100%"><tspan
         x="1.37996912"
         y="4.35733509"
         sodipodi:role="line"
         id="tspan692">Shift</tspan></text>
  </g>
  <g
     id="ctrl">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       id="rect695"
       width="11.38750172"
       height="6.57892704"
       x="0"
       y="0"
       ry="0.68839085" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       id="rect696"
       width="9.74373341"
       height="5.05001116"
       x="0.77"
       y="0.77"
       ry="0.38310501" />
    <text
       style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;"
       x="1.3"
       y="4.35733509"
       id="text697"
       sodipodi:linespacing="100%"><tspan
         x="1.3"
         y="4.35733509"
         sodipodi:role="line"
         id="tspan698">Ctrl</tspan></text>
  </g>
  <g
     id="alt">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       id="rect703"
       width="9.67487087"
       height="6.57892704"
       x="0"
       y="0"
       ry="0.68839085" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       id="rect704"
       width="7.97585612"
       height="5.05001116"
       x="0.77"
       y="0.77"
       ry="0.38310501" />
    <text
       style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;"
       x="1.3"
       y="4.35733509"
       id="text705"
       sodipodi:linespacing="100%"><tspan
         x="1.3"
         y="4.35733509"
         sodipodi:role="line"
         id="tspan706">Alt</tspan></text>
  </g>

  <g
     id="left">
    <text
       style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;letter-spacing:-0.3;"
       x="1.3"
       y="4.35733509"
       sodipodi:linespacing="100%"><tspan
         x="1.3"
         y="4.35733509"
         sodipodi:role="line"
         >Left</tspan></text>
  </g>

  <g
     id="right">
    <text
       style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;letter-spacing:-0.3;"
       x="1.3"
       y="4.35733509"
       sodipodi:linespacing="100%"><tspan
         x="1.3"
         y="4.35733509"
         sodipodi:role="line"
         >Right</tspan></text>
  </g>

  <g
     id="letterkey">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       id="rect708"
       width="7.00721359"
       height="6.57892704"
       x="0"
       y="0"
       ry="0.97501397" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       id="rect709"
       width="5.07888126"
       height="5.05001116"
       x="0.77"
       y="0.77"
       ry="0.48707163"
       rx="0.35459363" />
  </g>

  <g
     id="misc-wide">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       width="16.46854401"
       height="6.57892704"
       x="0.0"
       y="0.0"
       ry="0.68839085" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       width="14.7"
       height="5.0"
       x="0.77"
       y="0.77"
       ry="0.38310501" />
  </g>

  <g
     id="misc">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       width="11.4"
       height="6.57892704"
       x="0.0"
       y="0.0"
       ry="0.68839085" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       width="9.7"
       height="5.0"
       x="0.77"
       y="0.77"
       ry="0.38310501" />
  </g>

  <g
     id="arrows">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;"
       id="rect708"
       width="3.50360680"
       height="3.28946352"
       x="3.72818561"
       y="0.09945580"
       ry="0.48750699" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;"
       id="rect709"
       width="2.53944063"
       height="2.52500558"
       x="4.19200130"
       y="0.44871032"
       ry="0.24353582"
       rx="0.17729682" />
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;"
       id="rect787"
       width="3.50360680"
       height="3.28946352"
       x="3.72818561"
       y="3.64276290"
       ry="0.48750699" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;"
       id="rect788"
       width="2.53944063"
       height="2.52500558"
       x="4.19200130"
       y="3.99201751"
       ry="0.24353582"
       rx="0.17729682" />
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;"
       id="rect789"
       width="3.50360680"
       height="3.28946352"
       x="-0.00256788"
       y="3.64276290"
       ry="0.48750699" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;"
       id="rect790"
       width="2.53944063"
       height="2.52500558"
       x="0.46125068"
       y="3.99201751"
       ry="0.24353582"
       rx="0.17729682" />
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;"
       id="rect791"
       width="3.50360680"
       height="3.28946352"
       x="7.45893283"
       y="3.64276290"
       ry="0.48750699" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;"
       id="rect792"
       width="2.53944063"
       height="2.52500558"
       x="7.92275138"
       y="3.99201751"
       ry="0.24353582"
       rx="0.17729682" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="2.21508991"
       y="6.47878742"
       id="text796"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="2.21508980"
         y="6.47878742"
         sodipodi:role="line"
         id="tspan797">arrows</tspan></text>
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 5.1322313 0.90289456 L 5.1322313 2.6190467 "
       id="path801"
       sodipodi:nodetypes="cc" />
    <path
       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"
       d="M 4.6182793 1.3212845 L 5.1418233 0.81871946 L 5.6541543 1.3212845 L 4.6182793 1.3212845 z "
       id="path813"
       sodipodi:nodetypes="cccc" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 5.1322313 6.0781819 L 5.1322313 4.3620297 "
       id="path814"
       sodipodi:nodetypes="cc" />
    <path
       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"
       d="M 4.6182793 5.6597919 L 5.1418233 6.162357 L 5.6541543 5.6597919 L 4.6182793 5.6597919 z "
       id="path815"
       sodipodi:nodetypes="cccc" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 9.868405 5.2661777 L 8.1522594 5.2661777 "
       id="path816"
       sodipodi:nodetypes="cc" />
    <path
       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"
       d="M 9.4500205 5.7801297 L 9.952579 5.2565857 L 9.4500205 4.7442547 L 9.4500205 5.7801297 z "
       id="path817"
       sodipodi:nodetypes="cccc" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;"
       d="M 0.76312022 5.2661777 L 2.4792643 5.2661777 "
       id="path818"
       sodipodi:nodetypes="cc" />
    <path
       style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;"
       d="M 1.1815105 5.7801297 L 0.67894514 5.2565857 L 1.1815105 4.7442547 L 1.1815105 5.7801297 z "
       id="path819"
       sodipodi:nodetypes="cccc" />
  </g>

  <g
     id="up">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;"
       id="rect800"
       width="7.00721359"
       height="6.57892704"
       x="-0.00741097"
       y="0.11458590"
       ry="0.97501397" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;"
       id="rect802"
       width="5.07888126"
       height="5.05001116"
       x="0.92021832"
       y="0.81310272"
       ry="0.48707163"
       rx="0.35459363" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.244428;"
       d="M 2.8349462 1.7275401 L 2.8349462 5.1598442 "
       id="path825"
       sodipodi:nodetypes="cc" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:0;"
       d="M 1.8070423 2.5643198 L 2.8541302 1.5591899 L 3.8787922 2.5643198 L 1.8070423 2.5643198 z "
       id="path826"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="1.82973492"
       y="6.29683936"
       id="text827"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="1.82973492"
         y="6.29683924"
         sodipodi:role="line"
         id="tspan828">up</tspan></text>
  </g>
  <g
     id="down">
    <rect
       style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;"
       id="rect839"
       width="7.00721359"
       height="6.57892704"
       x="-0.00740963"
       y="0.11458590"
       ry="0.97501397" />
    <rect
       style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;"
       id="rect840"
       width="5.07888126"
       height="5.05001116"
       x="0.92021960"
       y="0.81310272"
       ry="0.48707163"
       rx="0.35459363" />
    <path
       style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.244428;"
       d="M 2.8349477 4.9915303 L 2.8349477 1.5592262 "
       id="path841"
       sodipodi:nodetypes="cc" />
    <path
       style="font-size:12;fill-rule:evenodd;stroke-width:0;"
       d="M 1.8070437 4.1547506 L 2.8541317 5.1598805 L 3.8787938 4.1547506 L 1.8070437 4.1547506 z "
       id="path842"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;"
       x="1.04129975"
       y="6.29683924"
       id="text843"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="1.04129970"
         y="6.29683924"
         sodipodi:role="line"
         id="tspan844">down</tspan></text>
  </g>


  <g
     id="left-arrow">
    <rect
       style="font-size:12.000000;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.062500000pt;"
       id="rect4608"
       width="7.0072136"
       height="6.5789270"
       x="-0.0074096299"
       y="0.11458590"
       ry="0.97501397"
       rx="0.97501397" />
    <rect
       style="font-size:12.000000;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625000;"
       id="rect4609"
       width="5.0788813"
       height="5.0500112"
       x="0.92021960"
       y="0.81310272"
       ry="0.48707163"
       rx="0.35459363" />
    <path
       style="font-size:12.000000;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.24442799;"
       d="M 1.6924937,3.3980186 L 5.1247978,3.3980185"
       id="path4610"
       sodipodi:nodetypes="cc" />
    <path
       style="font-size:12.000000;fill-rule:evenodd;stroke-width:0.0000000;"
       d="M 2.5292733,2.3701144 L 1.5241435,3.4172024 L 2.5292733,4.4418646 L 2.5292733,2.3701144 z "
       id="path4611"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2000000;font-weight:normal;stroke-width:1.0000000pt;font-family:Bitstream Vera Sans;"
       x="1.0412997"
       y="6.2968392"
       id="text4612"
       sodipodi:linespacing="100%"
       transform="matrix(1.288158,0.000000,0.000000,1.288158,0.717169,2.842171e-14)"><tspan
         x="1.0412997"
         y="6.2968392"
         sodipodi:role="line"
         id="tspan4613">left</tspan></text>
  </g>
  <g
     id="right-arrow">
    <rect
       style="font-size:12.000000;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.062500000pt;"
       id="rect4598"
       width="7.0072136"
       height="6.5789270"
       x="-0.0074096299"
       y="0.11458590"
       ry="0.97501397"
       rx="0.97501397" />
    <rect
       style="font-size:12.000000;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625000;"
       id="rect4599"
       width="5.0788813"
       height="5.0500112"
       x="0.92021960"
       y="0.81310272"
       ry="0.48707163"
       rx="0.35459363" />
    <path
       style="font-size:12.000000;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.24442799;"
       d="M 5.1234847,3.4139604 L 1.6911806,3.4139605"
       id="path4600"
       sodipodi:nodetypes="cc" />
    <path
       style="font-size:12.000000;fill-rule:evenodd;stroke-width:0.0000000;"
       d="M 4.2867051,4.4418646 L 5.2918349,3.3947766 L 4.2867051,2.3701144 L 4.2867051,4.4418646 z "
       id="path4601"
       sodipodi:nodetypes="cccc" />
    <text
       xml:space="preserve"
       style="font-size:1.2000000;font-weight:normal;stroke-width:1.0000000pt;font-family:Bitstream Vera Sans;"
       x="1.0412997"
       y="6.2968392"
       id="text4602"
       sodipodi:linespacing="100%"
       transform="scale(1.288158,1.288158)"><tspan
         x="1.0412997"
         y="6.2968392"
         sodipodi:role="line"
         id="tspan4603">right</tspan></text>
  </g>

<xsl:apply-templates/>
</svg>
</xsl:template>

<xsl:template match="k:root/text() | k:column/text() | k:root/k:p"/>

<xsl:template match="k:column">
<xsl:variable name="y" select="
 count(preceding::k:section)*$space-section + 
 count(preceding::k:group)*$space-group + 
 count(preceding::k:title)*$space-title + 
 count(preceding::k:keys)*$space-keys + 
 count(preceding::k:mouse)*$space-mouse + 
 count(preceding::k:note)*$space-note"/>
<xsl:variable name="x" select="count(preceding::k:column)*$section-width"/>
 <g transform="translate({$x},{-$y})">
  <xsl:apply-templates/>
 </g>
</xsl:template>

<xsl:template match="k:section">
<xsl:variable name="y" select="
 count(preceding::k:section)*$space-section + 
 count(preceding::k:group)*$space-group + 
 count(preceding::k:title)*$space-title + 
 count(preceding::k:keys)*$space-keys + 
 count(preceding::k:mouse)*$space-mouse + 
 count(preceding::k:note)*$space-note"/>
<xsl:variable name="h" select="
 $space-section + 
 count(descendant::k:group)*$space-group + 
 count(descendant::k:title)*$space-title + 
 count(descendant::k:keys)*$space-keys + 
 count(descendant::k:mouse)*$space-mouse + 
 count(descendant::k:note)*$space-note"/>
  <rect
     style="fill:#{@color};fill-rule:evenodd;stroke:none"
     width="{$section-width}"
     height="{$h}"
     x="0"
     y="{$y}"/>
  <text
     xml:space="preserve"
     style="{$style-section}"
     x="{$section-hskip + 1*$w-key}"
     y="{$y + $skip-section-title}"
     id="sect{count(preceding-sibling::k:section) + 1}"
     ><tspan
       x="{$section-hskip + 1*$w-key}"
       y="{$y + $skip-section-title}"
       sodipodi:role="line"
       id="sect-tspan{count(preceding-sibling::k:section) + 1}"
       ><xsl:value-of select="@title"/></tspan></text>
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="k:title">
<xsl:variable name="y" select="
 count(preceding::k:section) * $space-section + 
 count(preceding::k:group)*$space-group + 
 count(preceding::k:title)*$space-title + 
 count(preceding::k:keys)*$space-keys + 
 count(preceding::k:mouse)*$space-mouse + 
 count(preceding::k:note)*$space-note +
 $skip-section-content +
 $skip-group-content +
 $skip-title-content"/>

  <text
     xml:space="preserve"
     style="{$style-title}"
     x="{$section-hskip + 1*$w-key}"
     y="{$y}"
     id="title{count(preceding::k:title)+1}"
     ><tspan
       x="{$section-hskip + 1*$w-key}"
       y="{$y}"
       sodipodi:role="line"
       id="title-tspan{count(preceding::k:title)+1}"><xsl:value-of select="text()"/></tspan></text>

</xsl:template>

<xsl:template match="k:note">
<xsl:variable name="y" select="
 count(preceding::k:section) * $space-section + 
 count(preceding::k:group)*$space-group + 
 count(preceding::k:title)*$space-title + 
 count(preceding::k:keys)*$space-keys + 
 count(preceding::k:mouse)*$space-mouse + 
 count(preceding::k:note)*$space-note +
 $skip-section-content +
 $skip-group-content +
 $skip-note-content"/>

  <text
     xml:space="preserve"
     style="{$style-note}"
     x="{$section-hskip + $note-hskip}"
     y="{$y}"
     id="note{count(preceding::k:note)+1}"
     ><tspan
       x="{$section-hskip + $note-hskip}"
       y="{$y}"
       sodipodi:role="line"
       id="note-tspan{count(preceding::k:note)+1}"><xsl:value-of select="text()"/></tspan></text>

</xsl:template>


<xsl:template match="k:keys">
<xsl:variable name="y" select="
 count(preceding::k:section) * $space-section + 
 count(preceding::k:group)*$space-group + 
 count(preceding::k:title)*$space-title + 
 count(preceding::k:keys)*$space-keys + 
 count(preceding::k:mouse)*$space-mouse + 
 count(preceding::k:note)*$space-note +
 $skip-section-content +
 $skip-group-content +
 $skip-keys-content"/>
<xsl:apply-templates select="k:key | k:action">
<xsl:with-param name="y" select="$y"/>
</xsl:apply-templates>
</xsl:template>

<xsl:template match="k:mouse">
<xsl:variable name="y" select="
 count(preceding::k:section) * $space-section + 
 count(preceding::k:group)*$space-group + 
 count(preceding::k:title)*$space-title + 
 count(preceding::k:keys)*$space-keys + 
 count(preceding::k:mouse)*$space-mouse + 
 count(preceding::k:note)*$space-note +
 $skip-section-content +
 $skip-group-content +
 $skip-mouse-content"/>
<xsl:apply-templates select="k:key | k:action">
<xsl:with-param name="y" select="$y"/>
</xsl:apply-templates>
</xsl:template>

<xsl:template match="k:action">
<xsl:param name="y"/>
<xsl:variable name="x" select="2*$w-key + $section-hskip + $action-hskip"/> <!--max two keys-->
  <text
     xml:space="preserve"
     style="{$style-action}"
     x="{$x}"
     y="{$y + $skip-keys-action}"
     id="action{count(preceding::k:action)+1}"
     ><tspan
       x="{$x}"
       y="{$y + $skip-keys-action}"
       sodipodi:role="line"
       id="action-tspan{count(preceding::k:action)+1}"
       ><xsl:value-of select="text()"/></tspan></text>
</xsl:template>

<xsl:template match="k:key">
<xsl:param name="y"/>
<xsl:variable name="x" select="(1 - count(following-sibling::k:key))*$w-key + $section-hskip"/> <!--max two keys-->
<xsl:apply-templates>
<xsl:with-param name="x" select="$x"/>
<xsl:with-param name="y" select="$y"/>
</xsl:apply-templates>
<xsl:variable name="comma-skip">
<xsl:choose>
<xsl:when test="k:wheel | k:left-click | k:left-drag | k:mid-click | k:mid-drag | k:right-click | k:right-drag">0.4</xsl:when>
<xsl:otherwise>1.0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="following-sibling::k:key/node()">
  <text
     xml:space="preserve"
     style="{$style-action}"
     x="{$x + $w-key - $comma-skip}"
     y="{$y + $skip-keys-action}"
     ><tspan
       x="{$x + $w-key - $comma-skip}"
       y="{$y + $skip-keys-action}"
       sodipodi:role="line"
       >,</tspan></text>
</xsl:if>
</xsl:template>

<xsl:template match="k:left-click | k:shift | k:ctrl | k:alt | k:left | k:right">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 count(following-sibling::k:shift | self::k:shift)*$w-shift -
 count(following-sibling::k:ctrl | self::k:ctrl)*$w-ctrl -
 count(following-sibling::k:alt | self::k:alt)*$w-alt -
 count(following-sibling::k:left | self::k:left)*$w-left -
 count(following-sibling::k:right | self::k:right)*$w-right -
 count(following-sibling::text())*$w-letterkey -
 count(following-sibling::k:keyf)*$w-letterkey -
 count(following-sibling::k:misc-wide)*$w-misc-wide -
 count(following-sibling::k:misc)*$w-misc -
 count(following-sibling::k:arrows)*$w-arrows -
 count(following-sibling::k:wheel | following-sibling::k:left-click | following-sibling::k:left-drag | following-sibling::k:mid-click | following-sibling::k:mid-drag | following-sibling::k:right-click | following-sibling::k:right-drag | self::k:left-click)*$w-mouse
"/>
<use xlink:href="#{name()}"
transform="translate({$xx},{$y})"/>
</xsl:template>

<xsl:template match="k:key/text()">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-letterkey"/>
<use xlink:href="#letterkey"
transform="translate({$xx},{$y})"/>
    <text
       xml:space="preserve"
       style="{$style-letterkey}"
       x="{1.7 + $xx}"
       y="{4.66851145 + $y}"
       ><tspan
         x="{1.7 + $xx}"
         y="{4.66851145 + $y}"
         sodipodi:role="line"
         ><xsl:value-of select="."/></tspan></text>
</xsl:template>

<xsl:template match="k:keyf">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-letterkey"/>
<use xlink:href="#letterkey"
transform="translate({$xx},{$y})"/>
    <text
       xml:space="preserve"
       style="{$style-keyf}"
       x="{0.9 + $xx}"
       y="{3.5 + $y}"
       ><tspan
         x="{0.9 + $xx}"
         y="{3.5 + $y}"
         sodipodi:role="line"
         ><xsl:value-of select="@f"/></tspan></text>
</xsl:template>

<xsl:template match="k:misc-wide">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-misc-wide"/>
<use xlink:href="#misc-wide"
transform="translate({$xx},{$y})"/>
    <text
       xml:space="preserve"
       style="{$style-keymisc}"
       x="{1.1 + $xx}"
       y="{3.7 + $y}"
       ><tspan
         x="{1.1 + $xx}"
         y="{3.7 + $y}"
         sodipodi:role="line"
         ><xsl:value-of select="@f"/></tspan></text>
</xsl:template>

<xsl:template match="k:misc">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-misc"/>
<use xlink:href="#misc"
transform="translate({$xx},{$y})"/>
    <text
       xml:space="preserve"
       style="{$style-keymisc}"
       x="{1.1 + $xx}"
       y="{3.7 + $y}"
       ><tspan
         x="{1.1 + $xx}"
         y="{3.7 + $y}"
         sodipodi:role="line"
         ><xsl:value-of select="@f"/></tspan></text>
</xsl:template>

<xsl:template match="k:arrows">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-arrows"/>
<use xlink:href="#arrows"
transform="translate({$xx},{$y})"/>
</xsl:template>

<xsl:template match="k:up | k:down | k:left-arrow | k:right-arrow">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-letterkey"/>
<use xlink:href="#{name()}"
transform="translate({$xx},{$y})"/>
</xsl:template>

<xsl:template match="k:wheel | k:left-drag | k:mid-click | k:mid-drag | k:right-click | k:right-drag">
<xsl:param name="x"/>
<xsl:param name="y"/>
<xsl:variable name="xx" select="
 $x +
 $w-key - 
 $w-mouse -
 count(following-sibling::k:misc-wide)*($w-misc-wide + 1)"/>
<use xlink:href="#{name()}"
transform="translate({$xx},{$y})"/>
</xsl:template>

</xsl:stylesheet>