[PATCH libinput 2/2] touchpad: introduce MULTITAP for multi-tap-and-drag

Peter Hutterer peter.hutterer at who-t.net
Wed Apr 15 22:04:52 PDT 2015


Once we have a doubletap, enter a loop in the state machine where we can tap
multiple times and either get a multi-click or a multi-click drag-and-drop.

The sequence down/up down/up down/up produces a triple-click. The sequence
down/up down/up down/up down produces a triple-click with a button down for
dragging. Yes, that glorious octuple-tap-and-drag, it is now possible. World
domination has been achieved, thank you for playing.

We don't know when we finish tapping now, so add a timeout to send the last
click event once the finger has been released for the last time. This
guarantees that the timestamp of the last button down is later than the
last release. This avoids the bug fixed in synaptics commit
xf86-input-synaptics-1.8.0-21-g37d34f0 (some application don't handle
doubletap correctly without the timestamps).

This works for double-tap immediately, for multi-tap we need to remember the
timestamp of the first press event and use it for the release event so that
there's a forced gap between the release and the second press.

https://bugs.freedesktop.org/show_bug.cgi?id=89511

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 doc/touchpad-tap-state-machine.svg | 1593 ++++++++++++++++++++++--------------
 src/evdev-mt-touchpad-tap.c        |   88 +-
 src/evdev-mt-touchpad.h            |    3 +
 test/touchpad.c                    |  394 +++++++++
 4 files changed, 1447 insertions(+), 631 deletions(-)

diff --git a/doc/touchpad-tap-state-machine.svg b/doc/touchpad-tap-state-machine.svg
index 7aecefc..de0aad9 100644
--- a/doc/touchpad-tap-state-machine.svg
+++ b/doc/touchpad-tap-state-machine.svg
@@ -1,756 +1,1095 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2302px" height="3014px" version="1.1">
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2722px" height="3014px" version="1.1">
   <defs/>
   <g transform="translate(0.5,0.5)">
-    <path d="M 1466 1350 L 2199 893" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2203 890 L 2199 897 L 2199 893 L 2196 891 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1353 335 L 2199 828" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2203 831 L 2195 830 L 2199 828 L 2199 824 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 903 1880 L 931 1929" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 934 1934 L 927 1929 L 931 1929 L 933 1926 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1312" cy="35" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1884 1347 L 2616.6 890.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2621.05 887.59 L 2616.96 894.26 L 2616.6 890.37 L 2613.26 888.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1771 332 L 2616.5 825.79" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2621.03 828.44 L 2613.22 827.93 L 2616.5 825.79 L 2616.76 821.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1318 2071 L 1342.18 2091.84" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1346.15 2095.27 L 1338.57 2093.35 L 1342.18 2091.84 L 1343.14 2088.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <ellipse cx="1730" cy="32" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1312" y="39">IDLE</text>
+      <text x="1729.75" y="35.75">
+        IDLE</text>
     </g>
-    <rect x="1254" y="295" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <rect x="1672" y="292" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1319" y="319">TOUCH</text>
+      <text x="1736.75" y="315.75">
+        TOUCH</text>
     </g>
-    <path d="M 1288 110 C 1291 106 1295 105 1299 105 L 1333 105 C 1337 105 1341 106 1344 110 L 1364 133 C 1365 134 1365 135 1364 137 L 1344 160 C 1341 163 1337 165 1333 165 L 1299 165 C 1295 165 1291 163 1288 160 L 1268 137 C 1268 135 1268 134 1268 133 L 1288 110 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1706.04 107 C 1708.84 103.86 1712.82 102.05 1717.02 102 L 1750.99 102 C 1755.19 102.05 1759.17 103.86 1761.97 107 L 1781.95 130 C 1782.51 131.28 1782.51 132.72 1781.95 134 L 1761.97 157 C 1759.17 160.14 1755.19 161.95 1750.99 162 L 1717.02 162 C 1712.82 161.95 1708.84 160.14 1706.04 157 L 1686.06 134 C 1685.5 132.72 1685.5 131.28 1686.06 130 L 1706.04 107 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1316" y="132">first</text>
-      <text x="1316" y="146">finger down</text>
+      <text x="1733.75" y="128.75">
+        first</text>
+      <text x="1733.75" y="142.75">
+        finger down</text>
     </g>
-    <path d="M 1313 65 L 1315 98" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1315 103 L 1311 97 L 1315 98 L 1318 96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1018 410 C 1021 406 1025 405 1029 405 L 1063 405 C 1067 405 1071 406 1074 410 L 1094 433 C 1095 434 1095 435 1094 437 L 1074 460 C 1071 463 1067 465 1063 465 L 1029 465 C 1025 465 1021 463 1018 460 L 998 437 C 998 435 998 434 998 433 L 1018 410 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1731 62 L 1732.68 95.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1732.94 100.88 L 1729.1 94.07 L 1732.68 95.64 L 1736.09 93.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1436.04 407 C 1438.84 403.86 1442.82 402.05 1447.02 402 L 1480.99 402 C 1485.19 402.05 1489.17 403.86 1491.97 407 L 1511.95 430 C 1512.51 431.28 1512.51 432.72 1511.95 434 L 1491.97 457 C 1489.17 460.14 1485.19 461.95 1480.99 462 L 1447.02 462 C 1442.82 461.95 1438.84 460.14 1436.04 457 L 1416.06 434 C 1415.5 432.72 1415.5 431.28 1416.06 430 L 1436.04 407 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1046" y="439">finger up</text>
+      <text x="1463.75" y="435.75">
+        finger up</text>
     </g>
-    <path d="M 1274 335 L 1100 411" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1096 413 L 1101 407 L 1100 411 L 1103 413 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1016 725 C 1017 723 1017 722 1018 721 C 1019 720 1020 720 1021 720 L 1090 720 C 1091 720 1093 720 1094 721 C 1095 722 1095 723 1095 725 L 1076 774 C 1075 776 1074 777 1074 778 C 1073 779 1072 780 1071 779 L 1001 779 C 1000 779 999 779 998 778 C 997 777 997 776 997 774 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1692 332 L 1518.83 408.43" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1514.02 410.55 L 1519.01 404.52 L 1518.83 408.43 L 1521.84 410.92 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1434.22 722.1 C 1435.36 718.9 1437.22 717.04 1439.18 717.12 L 1507.64 717.12 C 1509.2 717.08 1510.7 717.63 1511.67 718.61 C 1512.65 719.59 1512.99 720.88 1512.6 722.1 L 1493.75 771.9 C 1492.61 775.1 1490.75 776.96 1488.79 776.88 L 1419.34 776.88 C 1417.95 776.69 1416.73 776.05 1415.97 775.1 C 1415.22 774.15 1415 772.99 1415.37 771.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1046" y="747">button 1</text>
-      <text x="1046" y="761">press</text>
+      <text x="1463.75" y="743.75">
+        button 1</text>
+      <text x="1463.75" y="757.75">
+        press</text>
     </g>
-    <path d="M 1566 410 C 1568 406 1572 405 1577 405 L 1610 405 C 1615 405 1619 406 1621 410 L 1641 433 C 1642 434 1642 435 1641 437 L 1621 460 C 1619 463 1615 465 1610 465 L 1577 465 C 1572 465 1568 463 1566 460 L 1546 437 C 1545 435 1545 434 1546 433 L 1566 410 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1983.54 407 C 1986.34 403.86 1990.32 402.05 1994.52 402 L 2028.49 402 C 2032.69 402.05 2036.67 403.86 2039.47 407 L 2059.45 430 C 2060.01 431.28 2060.01 432.72 2059.45 434 L 2039.47 457 C 2036.67 460.14 2032.69 461.95 2028.49 462 L 1994.52 462 C 1990.32 461.95 1986.34 460.14 1983.54 457 L 1963.56 434 C 1963 432.72 1963 431.28 1963.56 430 L 1983.54 407 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1593" y="439">timeout</text>
+      <text x="2011.25" y="435.75">
+        timeout</text>
     </g>
-    <path d="M 1365 335 L 1539 411" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1544 413 L 1536 413 L 1539 411 L 1539 407 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1385 410 C 1387 406 1391 405 1396 405 L 1429 405 C 1434 405 1438 406 1440 410 L 1460 433 C 1461 434 1461 435 1460 437 L 1440 460 C 1438 463 1434 465 1429 465 L 1396 465 C 1391 465 1387 463 1385 460 L 1365 437 C 1364 435 1364 434 1365 433 L 1385 410 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1783 332 L 1957.17 408.44" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1961.98 410.55 L 1954.16 410.94 L 1957.17 408.44 L 1956.97 404.53 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1802.54 407 C 1805.34 403.86 1809.32 402.05 1813.52 402 L 1847.49 402 C 1851.69 402.05 1855.67 403.86 1858.47 407 L 1878.45 430 C 1879.01 431.28 1879.01 432.72 1878.45 434 L 1858.47 457 C 1855.67 460.14 1851.69 461.95 1847.49 462 L 1813.52 462 C 1809.32 461.95 1805.34 460.14 1802.54 457 L 1782.56 434 C 1782 432.72 1782 431.28 1782.56 430 L 1802.54 407 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1413" y="432">move > </text>
-      <text x="1413" y="446">threshold</text>
+      <text x="1830.25" y="428.75">
+        move > </text>
+      <text x="1830.25" y="442.75">
+        threshold</text>
     </g>
-    <path d="M 1335 335 L 1385 400" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1388 404 L 1381 400 L 1385 400 L 1387 396 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1196 410 C 1198 406 1202 405 1207 405 L 1240 405 C 1245 405 1249 406 1251 410 L 1271 433 C 1272 434 1272 435 1271 437 L 1251 460 C 1249 463 1245 465 1240 465 L 1207 465 C 1202 465 1198 463 1196 460 L 1176 437 C 1175 435 1175 434 1176 433 L 1196 410 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1753 332 L 1803.11 396.96" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1806.32 401.11 L 1799.27 397.71 L 1803.11 396.96 L 1804.81 393.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1613.54 407 C 1616.34 403.86 1620.32 402.05 1624.52 402 L 1658.49 402 C 1662.69 402.05 1666.67 403.86 1669.47 407 L 1689.45 430 C 1690.01 431.28 1690.01 432.72 1689.45 434 L 1669.47 457 C 1666.67 460.14 1662.69 461.95 1658.49 462 L 1624.52 462 C 1620.32 461.95 1616.34 460.14 1613.54 457 L 1593.56 434 C 1593 432.72 1593 431.28 1593.56 430 L 1613.54 407 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1224" y="432">second</text>
-      <text x="1224" y="446">finger down</text>
+      <text x="1641.25" y="428.75">
+        second</text>
+      <text x="1641.25" y="442.75">
+        finger down</text>
     </g>
-    <path d="M 1303 335 L 1251 400" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1248 404 L 1250 396 L 1251 400 L 1255 400 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1399" y="850" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1721 332 L 1668.98 397.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1665.7 401.13 L 1667.34 393.47 L 1668.98 397.03 L 1672.8 397.85 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="1817" y="847" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1464" y="874">TOUCH_2</text>
+      <text x="1881.75" y="870.75">
+        TOUCH_2</text>
     </g>
-    <path d="M 1309 985 C 1312 981 1316 980 1320 980 L 1354 980 C 1358 980 1362 981 1365 985 L 1385 1008 C 1386 1009 1386 1010 1385 1012 L 1365 1035 C 1362 1038 1358 1040 1354 1040 L 1320 1040 C 1316 1040 1312 1038 1309 1035 L 1289 1012 C 1289 1010 1289 1009 1289 1008 L 1309 985 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1727.04 982 C 1729.84 978.86 1733.82 977.05 1738.02 977 L 1771.99 977 C 1776.19 977.05 1780.17 978.86 1782.97 982 L 1802.95 1005 C 1803.51 1006.28 1803.51 1007.72 1802.95 1009 L 1782.97 1032 C 1780.17 1035.14 1776.19 1036.95 1771.99 1037 L 1738.02 1037 C 1733.82 1036.95 1729.84 1035.14 1727.04 1032 L 1707.06 1009 C 1706.5 1007.72 1706.5 1006.28 1707.06 1005 L 1727.04 982 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1337" y="1007">second</text>
-      <text x="1337" y="1021">finger up</text>
+      <text x="1754.75" y="1003.75">
+        second</text>
+      <text x="1754.75" y="1017.75">
+        finger up</text>
     </g>
-    <path d="M 1446 890 L 1368 975" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1365 979 L 1367 971 L 1368 975 L 1372 976 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1157 645 C 1158 643 1158 642 1159 641 C 1160 640 1161 640 1162 640 L 1231 640 C 1232 640 1234 640 1235 641 C 1236 642 1236 643 1236 645 L 1217 694 C 1216 696 1215 697 1215 698 C 1214 699 1213 700 1212 699 L 1142 699 C 1141 699 1140 699 1139 698 C 1138 697 1138 696 1138 694 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1864 887 L 1786.29 972.29" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1782.75 976.17 L 1784.88 968.64 L 1786.29 972.29 L 1790.05 973.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1575.22 642.1 C 1576.36 638.9 1578.22 637.04 1580.18 637.12 L 1648.64 637.12 C 1650.2 637.08 1651.7 637.63 1652.67 638.61 C 1653.65 639.59 1653.99 640.88 1653.6 642.1 L 1634.75 691.9 C 1633.61 695.1 1631.75 696.96 1629.79 696.88 L 1560.34 696.88 C 1558.95 696.69 1557.73 696.05 1556.97 695.1 C 1556.22 694.15 1556 692.99 1556.37 691.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1187" y="667">button 2</text>
-      <text x="1187" y="681">press</text>
+      <text x="1604.75" y="663.75">
+        button 2</text>
+      <text x="1604.75" y="677.75">
+        press</text>
     </g>
-    <path d="M 1559 965 C 1561 961 1565 960 1570 960 L 1603 960 C 1608 960 1612 961 1614 965 L 1634 988 C 1635 989 1635 990 1634 992 L 1614 1015 C 1612 1018 1608 1020 1603 1020 L 1570 1020 C 1565 1020 1561 1018 1559 1015 L 1539 992 C 1538 990 1538 989 1539 988 L 1559 965 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1976.54 962 C 1979.34 958.86 1983.32 957.05 1987.52 957 L 2021.49 957 C 2025.69 957.05 2029.67 958.86 2032.47 962 L 2052.45 985 C 2053.01 986.28 2053.01 987.72 2052.45 989 L 2032.47 1012 C 2029.67 1015.14 2025.69 1016.95 2021.49 1017 L 1987.52 1017 C 1983.32 1016.95 1979.34 1015.14 1976.54 1012 L 1956.56 989 C 1956 987.72 1956 986.28 1956.56 985 L 1976.54 962 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1586" y="987">move > </text>
-      <text x="1586" y="1001">threshold</text>
+      <text x="2004.25" y="983.75">
+        move > </text>
+      <text x="2004.25" y="997.75">
+        threshold</text>
     </g>
-    <path d="M 1685 905 C 1687 901 1691 900 1696 900 L 1729 900 C 1734 900 1738 901 1740 905 L 1760 928 C 1761 929 1761 930 1760 932 L 1740 955 C 1738 958 1734 960 1729 960 L 1696 960 C 1691 960 1687 958 1685 955 L 1665 932 C 1664 930 1664 929 1665 928 L 1685 905 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2102.54 902 C 2105.34 898.86 2109.32 897.05 2113.52 897 L 2147.49 897 C 2151.69 897.05 2155.67 898.86 2158.47 902 L 2178.45 925 C 2179.01 926.28 2179.01 927.72 2178.45 929 L 2158.47 952 C 2155.67 955.14 2151.69 956.95 2147.49 957 L 2113.52 957 C 2109.32 956.95 2105.34 955.14 2102.54 952 L 2082.56 929 C 2082 927.72 2082 926.28 2082.56 925 L 2102.54 902 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1713" y="934">timeout</text>
+      <text x="2130.25" y="930.75">
+        timeout</text>
     </g>
-    <path d="M 1529 885 L 1658 916" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1663 918 L 1655 919 L 1658 916 L 1657 913 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1484 890 L 1551 955" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1555 959 L 1548 956 L 1551 955 L 1553 951 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1108 1145 C 1108 1143 1109 1142 1110 1141 C 1111 1140 1112 1140 1113 1140 L 1181 1140 C 1183 1140 1184 1140 1185 1141 C 1186 1142 1186 1143 1186 1145 L 1167 1194 C 1167 1196 1166 1197 1165 1198 C 1164 1199 1163 1200 1162 1199 L 1093 1199 C 1091 1199 1090 1199 1089 1198 C 1089 1197 1088 1196 1089 1194 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1947 883 L 2075.8 913.53" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2080.91 914.74 L 2073.29 916.53 L 2075.8 913.53 L 2074.91 909.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1902 887 L 1969.43 952.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1973.2 956.22 L 1965.74 953.85 L 1969.43 952.56 L 1970.62 948.83 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1638.72 1112.1 C 1639.86 1108.9 1641.72 1107.04 1643.68 1107.12 L 1712.14 1107.12 C 1713.7 1107.08 1715.2 1107.63 1716.17 1108.61 C 1717.15 1109.59 1717.49 1110.88 1717.1 1112.1 L 1698.25 1161.9 C 1697.11 1165.1 1695.25 1166.96 1693.29 1166.88 L 1623.84 1166.88 C 1622.45 1166.69 1621.23 1166.05 1620.47 1165.1 C 1619.72 1164.15 1619.5 1162.99 1619.87 1161.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1138" y="1167">button 1</text>
-      <text x="1138" y="1181">release</text>
+      <text x="1668.25" y="1133.75">
+        button 1</text>
+      <text x="1668.25" y="1147.75">
+        release</text>
     </g>
-    <path d="M 1167 550 C 1167 548 1168 547 1169 546 C 1170 545 1171 545 1172 545 L 1240 545 C 1242 545 1243 545 1244 546 C 1245 547 1245 548 1245 550 L 1226 599 C 1226 601 1225 602 1224 603 C 1223 604 1222 605 1221 604 L 1152 604 C 1150 604 1149 604 1148 603 C 1148 602 1147 601 1148 599 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1584.72 547.1 C 1585.86 543.9 1587.72 542.04 1589.68 542.12 L 1658.14 542.12 C 1659.7 542.08 1661.2 542.63 1662.17 543.61 C 1663.15 544.59 1663.49 545.88 1663.1 547.1 L 1644.25 596.9 C 1643.11 600.1 1641.25 601.96 1639.29 601.88 L 1569.84 601.88 C 1568.45 601.69 1567.23 601.05 1566.47 600.1 C 1565.72 599.15 1565.5 597.99 1565.87 596.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1197" y="572">button 2</text>
-      <text x="1197" y="586">release</text>
+      <text x="1614.25" y="568.75">
+        button 2</text>
+      <text x="1614.25" y="582.75">
+        release</text>
     </g>
-    <path d="M 1301 780 L 1223 704" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1219 700 L 1226 703 L 1223 704 L 1221 708 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1190 640 L 1193 611" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1193 606 L 1196 613 L 1193 611 L 1189 612 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="981" y="920" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1719 778 L 1640.56 701.45" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1636.8 697.78 L 1644.25 700.16 L 1640.56 701.45 L 1639.37 705.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1608 637 L 1610.46 608.34" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1610.9 603.11 L 1613.79 610.39 L 1610.46 608.34 L 1606.82 609.79 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="1399" y="917" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1046" y="944">TAPPED</text>
+      <text x="1463.75" y="940.75">
+        TAPPED</text>
     </g>
-    <path d="M 1110 1045 C 1113 1041 1117 1040 1121 1040 L 1155 1040 C 1159 1040 1163 1041 1166 1045 L 1186 1068 C 1187 1069 1187 1070 1186 1072 L 1166 1095 C 1163 1098 1159 1100 1155 1100 L 1121 1100 C 1117 1100 1113 1098 1110 1095 L 1090 1072 C 1090 1070 1090 1069 1090 1068 L 1110 1045 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1528.04 1042 C 1530.84 1038.86 1534.82 1037.05 1539.02 1037 L 1572.99 1037 C 1577.19 1037.05 1581.17 1038.86 1583.97 1042 L 1603.95 1065 C 1604.51 1066.28 1604.51 1067.72 1603.95 1069 L 1583.97 1092 C 1581.17 1095.14 1577.19 1096.95 1572.99 1097 L 1539.02 1097 C 1534.82 1096.95 1530.84 1095.14 1528.04 1092 L 1508.06 1069 C 1507.5 1067.72 1507.5 1066.28 1508.06 1065 L 1528.04 1042 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1138" y="1074">timeout</text>
+      <text x="1555.75" y="1070.75">
+        timeout</text>
     </g>
-    <path d="M 1060 960 L 1113 1034" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1116 1039 L 1109 1035 L 1113 1034 L 1115 1031 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 955 1015 C 957 1011 961 1010 966 1010 L 999 1010 C 1004 1010 1008 1011 1010 1015 L 1030 1038 C 1031 1039 1031 1040 1030 1042 L 1010 1065 C 1008 1068 1004 1070 999 1070 L 966 1070 C 961 1070 957 1068 955 1065 L 935 1042 C 934 1040 934 1039 935 1038 L 955 1015 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1478 957 L 1531.3 1031.81" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1534.35 1036.09 L 1527.44 1032.42 L 1531.3 1031.81 L 1533.14 1028.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1372.54 1012 C 1375.34 1008.86 1379.32 1007.05 1383.52 1007 L 1417.49 1007 C 1421.69 1007.05 1425.67 1008.86 1428.47 1012 L 1448.45 1035 C 1449.01 1036.28 1449.01 1037.72 1448.45 1039 L 1428.47 1062 C 1425.67 1065.14 1421.69 1066.95 1417.49 1067 L 1383.52 1067 C 1379.32 1066.95 1375.34 1065.14 1372.54 1062 L 1352.56 1039 C 1352 1037.72 1352 1036.28 1352.56 1035 L 1372.54 1012 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="983" y="1037">first</text>
-      <text x="983" y="1051">finger down</text>
+      <text x="1400.25" y="1033.75">
+        first</text>
+      <text x="1400.25" y="1047.75">
+        finger down</text>
     </g>
-    <path d="M 1033 960 L 1005 1004" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1002 1009 L 1003 1001 L 1005 1004 L 1009 1005 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="412" y="1490" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1451 957 L 1423.36 1001.59" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1420.59 1006.05 L 1421.3 998.26 L 1423.36 1001.59 L 1427.25 1001.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="830" y="1487" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="477" y="1514">DRAGGING</text>
+      <text x="894.75" y="1510.75">
+        DRAGGING</text>
     </g>
-    <path d="M 306 1620 C 309 1616 313 1615 317 1615 L 351 1615 C 355 1615 359 1616 362 1620 L 382 1643 C 383 1644 383 1645 382 1647 L 362 1670 C 359 1673 355 1675 351 1675 L 317 1675 C 313 1675 309 1673 306 1670 L 286 1647 C 286 1645 286 1644 286 1643 L 306 1620 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 724.04 1617 C 726.84 1613.86 730.82 1612.05 735.02 1612 L 768.99 1612 C 773.19 1612.05 777.17 1613.86 779.97 1617 L 799.95 1640 C 800.51 1641.28 800.51 1642.72 799.95 1644 L 779.97 1667 C 777.17 1670.14 773.19 1671.95 768.99 1672 L 735.02 1672 C 730.82 1671.95 726.84 1670.14 724.04 1667 L 704.06 1644 C 703.5 1642.72 703.5 1641.28 704.06 1640 L 724.04 1617 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="334" y="1642">first</text>
-      <text x="334" y="1656">finger up</text>
+      <text x="751.75" y="1638.75">
+        first</text>
+      <text x="751.75" y="1652.75">
+        finger up</text>
     </g>
-    <path d="M 485 1962 C 486 1960 486 1959 487 1958 C 488 1957 489 1957 490 1957 L 559 1957 C 560 1957 562 1957 563 1958 C 564 1959 564 1960 564 1962 L 545 2011 C 544 2013 543 2014 543 2015 C 542 2016 541 2017 540 2016 L 470 2016 C 469 2016 468 2016 467 2015 C 466 2014 466 2013 466 2011 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 903.22 1959.1 C 904.36 1955.9 906.22 1954.04 908.18 1954.12 L 976.64 1954.12 C 978.2 1954.08 979.7 1954.63 980.67 1955.61 C 981.65 1956.59 981.99 1957.88 981.6 1959.1 L 962.75 2008.9 C 961.61 2012.1 959.75 2013.96 957.79 2013.88 L 888.34 2013.88 C 886.95 2013.69 885.73 2013.05 884.97 2012.1 C 884.22 2011.15 884 2009.99 884.37 2008.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="515" y="1984">btn1</text>
-      <text x="515" y="1998">release</text>
+      <text x="932.75" y="1980.75">
+        btn1</text>
+      <text x="932.75" y="1994.75">
+        release</text>
     </g>
-    <path d="M 456 1530 L 370 1610" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 367 1614 L 369 1606 L 370 1610 L 374 1612 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1046 780 L 1046 913" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1046 918 L 1043 911 L 1046 913 L 1050 911 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1138 1100 L 1138 1133" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1138 1138 L 1134 1131 L 1138 1133 L 1141 1131 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1923" cy="813" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 874 1527 L 788.63 1607.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 784.81 1611.23 L 787.5 1603.88 L 788.63 1607.63 L 792.31 1608.97 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1464 777 L 1464 910.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1464 915.88 L 1460.5 908.88 L 1464 910.63 L 1467.5 908.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1604 1097 L 1614.6 1103.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1619.05 1106.41 L 1611.26 1105.67 L 1614.6 1103.62 L 1614.97 1099.73 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <ellipse cx="2341" cy="810" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1923" y="817">IDLE</text>
+      <text x="2341.25" y="813.75">
+        IDLE</text>
     </g>
-    <path d="M 1443 1001 C 1445 997 1449 996 1454 996 L 1487 996 C 1492 996 1496 997 1498 1001 L 1518 1024 C 1519 1025 1519 1026 1518 1028 L 1498 1051 C 1496 1054 1492 1056 1487 1056 L 1454 1056 C 1449 1056 1445 1054 1443 1051 L 1423 1028 C 1422 1026 1422 1025 1423 1024 L 1443 1001 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1860.54 998 C 1863.34 994.86 1867.32 993.05 1871.52 993 L 1905.49 993 C 1909.69 993.05 1913.67 994.86 1916.47 998 L 1936.45 1021 C 1937.01 1022.28 1937.01 1023.72 1936.45 1025 L 1916.47 1048 C 1913.67 1051.14 1909.69 1052.95 1905.49 1053 L 1871.52 1053 C 1867.32 1052.95 1863.34 1051.14 1860.54 1048 L 1840.56 1025 C 1840 1023.72 1840 1022.28 1840.56 1021 L 1860.54 998 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1471" y="1023">third</text>
-      <text x="1471" y="1037">finger down</text>
+      <text x="1888.25" y="1019.75">
+        third</text>
+      <text x="1888.25" y="1033.75">
+        finger down</text>
     </g>
-    <path d="M 1465 890 L 1469 989" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1469 994 L 1465 988 L 1469 989 L 1472 987 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1368" y="1350" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1883 887 L 1886.76 986.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1886.96 991.88 L 1883.2 985.02 L 1886.76 986.64 L 1890.19 984.76 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="1786.5" y="1347" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1433" y="1374">TOUCH_3</text>
+      <text x="1851.25" y="1370.75">
+        TOUCH_3</text>
     </g>
-    <path d="M 1441 1252 L 1435 1343" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1435 1348 L 1432 1341 L 1435 1343 L 1439 1342 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1289 1856 C 1290 1854 1290 1853 1291 1852 C 1292 1851 1293 1851 1294 1851 L 1363 1851 C 1364 1851 1366 1851 1367 1852 C 1368 1853 1368 1854 1368 1856 L 1349 1905 C 1348 1907 1347 1908 1347 1909 C 1346 1910 1345 1911 1344 1910 L 1274 1910 C 1273 1910 1272 1910 1271 1909 C 1270 1908 1270 1907 1270 1905 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1859 1250 L 1853.39 1340.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1853.07 1345.88 L 1850.01 1338.68 L 1853.39 1340.64 L 1856.99 1339.11 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1707.22 1853.1 C 1708.36 1849.9 1710.22 1848.04 1712.18 1848.12 L 1780.64 1848.12 C 1782.2 1848.08 1783.7 1848.63 1784.67 1849.61 C 1785.65 1850.59 1785.99 1851.88 1785.6 1853.1 L 1766.75 1902.9 C 1765.61 1906.1 1763.75 1907.96 1761.79 1907.88 L 1692.34 1907.88 C 1690.95 1907.69 1689.73 1907.05 1688.97 1906.1 C 1688.22 1905.15 1688 1903.99 1688.37 1902.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1319" y="1878">button 3</text>
-      <text x="1319" y="1892">press</text>
+      <text x="1736.75" y="1874.75">
+        button 3</text>
+      <text x="1736.75" y="1888.75">
+        press</text>
     </g>
-    <path d="M 1289 1953 C 1290 1951 1290 1950 1291 1949 C 1292 1948 1293 1948 1294 1948 L 1363 1948 C 1364 1948 1366 1948 1367 1949 C 1368 1950 1368 1951 1368 1953 L 1349 2002 C 1348 2004 1347 2005 1347 2006 C 1346 2007 1345 2008 1344 2007 L 1274 2007 C 1273 2007 1272 2007 1271 2006 C 1270 2005 1270 2004 1270 2002 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1707.22 1950.1 C 1708.36 1946.9 1710.22 1945.04 1712.18 1945.12 L 1780.64 1945.12 C 1782.2 1945.08 1783.7 1945.63 1784.67 1946.61 C 1785.65 1947.59 1785.99 1948.88 1785.6 1950.1 L 1766.75 1999.9 C 1765.61 2003.1 1763.75 2004.96 1761.79 2004.88 L 1692.34 2004.88 C 1690.95 2004.69 1689.73 2004.05 1688.97 2003.1 C 1688.22 2002.15 1688 2000.99 1688.37 1999.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1319" y="1975">button 3</text>
-      <text x="1319" y="1989">release</text>
+      <text x="1736.75" y="1971.75">
+        button 3</text>
+      <text x="1736.75" y="1985.75">
+        release</text>
     </g>
-    <path d="M 1319 1911 L 1319 1941" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1319 1946 L 1316 1939 L 1319 1941 L 1323 1939 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1492 1540 C 1495 1536 1499 1535 1503 1535 L 1537 1535 C 1541 1535 1545 1536 1548 1540 L 1568 1563 C 1569 1564 1569 1565 1568 1567 L 1548 1590 C 1545 1593 1541 1595 1537 1595 L 1503 1595 C 1499 1595 1495 1593 1492 1590 L 1472 1567 C 1472 1565 1472 1564 1472 1563 L 1492 1540 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1737 1908 L 1737 1938.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1737 1943.88 L 1733.5 1936.88 L 1737 1938.63 L 1740.5 1936.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1910.04 1537 C 1912.84 1533.86 1916.82 1532.05 1921.02 1532 L 1954.99 1532 C 1959.19 1532.05 1963.17 1533.86 1965.97 1537 L 1985.95 1560 C 1986.51 1561.28 1986.51 1562.72 1985.95 1564 L 1965.97 1587 C 1963.17 1590.14 1959.19 1591.95 1954.99 1592 L 1921.02 1592 C 1916.82 1591.95 1912.84 1590.14 1910.04 1587 L 1890.06 1564 C 1889.5 1562.72 1889.5 1561.28 1890.06 1560 L 1910.04 1537 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1520" y="1562">move > </text>
-      <text x="1520" y="1576">threshold</text>
+      <text x="1937.75" y="1558.75">
+        move > </text>
+      <text x="1937.75" y="1572.75">
+        threshold</text>
     </g>
-    <path d="M 1442 1390 L 1504 1529" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1506 1534 L 1500 1529 L 1504 1529 L 1507 1526 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="667" cy="2002" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1860 1387 L 1922.4 1526.19" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1924.54 1530.98 L 1918.49 1526.02 L 1922.4 1526.19 L 1924.87 1523.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <ellipse cx="1085" cy="1999" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="667" y="2006">IDLE</text>
+      <text x="1084.25" y="2002.75">
+        IDLE</text>
     </g>
-    <path d="M 1621 1530 C 1623 1526 1627 1525 1632 1525 L 1665 1525 C 1670 1525 1674 1526 1676 1530 L 1696 1553 C 1697 1554 1697 1555 1696 1557 L 1676 1580 C 1674 1583 1670 1585 1665 1585 L 1632 1585 C 1627 1585 1623 1583 1621 1580 L 1601 1557 C 1600 1555 1600 1554 1601 1553 L 1621 1530 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2038.54 1527 C 2041.34 1523.86 2045.32 1522.05 2049.52 1522 L 2083.49 1522 C 2087.69 1522.05 2091.67 1523.86 2094.47 1527 L 2114.45 1550 C 2115.01 1551.28 2115.01 1552.72 2114.45 1554 L 2094.47 1577 C 2091.67 1580.14 2087.69 1581.95 2083.49 1582 L 2049.52 1582 C 2045.32 1581.95 2041.34 1580.14 2038.54 1577 L 2018.56 1554 C 2018 1552.72 2018 1551.28 2018.56 1550 L 2038.54 1527 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1649" y="1559">timeout</text>
+      <text x="2066.25" y="1555.75">
+        timeout</text>
     </g>
-    <path d="M 1457 1390 L 1609 1520" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1613 1524 L 1605 1522 L 1609 1520 L 1610 1517 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1178 965 C 1180 961 1184 960 1189 960 L 1222 960 C 1227 960 1231 961 1233 965 L 1253 988 C 1254 989 1254 990 1253 992 L 1233 1015 C 1231 1018 1227 1020 1222 1020 L 1189 1020 C 1184 1020 1180 1018 1178 1015 L 1158 992 C 1157 990 1157 989 1158 988 L 1178 965 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1875 1387 L 2027.17 1517.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2031.15 1521.27 L 2023.56 1519.36 L 2027.17 1517.85 L 2028.13 1514.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1595.54 962 C 1598.34 958.86 1602.32 957.05 1606.52 957 L 1640.49 957 C 1644.69 957.05 1648.67 958.86 1651.47 962 L 1671.45 985 C 1672.01 986.28 1672.01 987.72 1671.45 989 L 1651.47 1012 C 1648.67 1015.14 1644.69 1016.95 1640.49 1017 L 1606.52 1017 C 1602.32 1016.95 1598.34 1015.14 1595.54 1012 L 1575.56 989 C 1575 987.72 1575 986.28 1575.56 985 L 1595.54 962 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1206" y="987">first</text>
-      <text x="1206" y="1001">finger up</text>
+      <text x="1623.25" y="983.75">
+        first</text>
+      <text x="1623.25" y="997.75">
+        finger up</text>
     </g>
-    <path d="M 1421 890 L 1260 964" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1255 967 L 1260 960 L 1260 964 L 1263 967 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1138" cy="1310" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <path d="M 1839 887 L 1677.78 961.33" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1673.02 963.53 L 1677.91 957.42 L 1677.78 961.33 L 1680.84 963.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <ellipse cx="1673" cy="1272" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1138" y="1314">IDLE</text>
+      <text x="1672.75" y="1275.75">
+        IDLE</text>
     </g>
-    <path d="M 1205 1535 C 1208 1531 1212 1530 1216 1530 L 1250 1530 C 1254 1530 1258 1531 1261 1535 L 1281 1558 C 1282 1559 1282 1560 1281 1562 L 1261 1585 C 1258 1588 1254 1590 1250 1590 L 1216 1590 C 1212 1590 1208 1588 1205 1585 L 1185 1562 C 1185 1560 1185 1559 1185 1558 L 1205 1535 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1623.04 1532 C 1625.84 1528.86 1629.82 1527.05 1634.02 1527 L 1667.99 1527 C 1672.19 1527.05 1676.17 1528.86 1678.97 1532 L 1698.95 1555 C 1699.51 1556.28 1699.51 1557.72 1698.95 1559 L 1678.97 1582 C 1676.17 1585.14 1672.19 1586.95 1667.99 1587 L 1634.02 1587 C 1629.82 1586.95 1625.84 1585.14 1623.04 1582 L 1603.06 1559 C 1602.5 1557.72 1602.5 1556.28 1603.06 1555 L 1623.04 1532 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1233" y="1557">fourth</text>
-      <text x="1233" y="1571">finger down</text>
-    </g>
-    <path d="M 1412 1390 L 1269 1525" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1265 1529 L 1268 1521 L 1269 1525 L 1273 1527 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1138 1200 L 1138 1273" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1138 1278 L 1134 1271 L 1138 1273 L 1141 1271 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="653" y="1170" width="209" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="757" y="1194">DRAGGING_OR_DOUBLETAP</text>
-    </g>
-    <path d="M 835 1147 L 799 1167" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 794 1169 L 799 1163 L 799 1167 L 802 1169 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 530 1255 C 532 1251 536 1250 541 1250 L 574 1250 C 579 1250 583 1251 585 1255 L 605 1278 C 606 1279 606 1280 605 1282 L 585 1305 C 583 1308 579 1310 574 1310 L 541 1310 C 536 1310 532 1308 530 1305 L 510 1282 C 509 1280 509 1279 510 1278 L 530 1255 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="558" y="1284">timeout</text>
-    </g>
-    <path d="M 713 1210 L 612 1255" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 607 1257 L 612 1251 L 612 1255 L 615 1258 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 843 1255 C 846 1251 850 1250 854 1250 L 888 1250 C 892 1250 896 1251 899 1255 L 919 1278 C 920 1279 920 1280 919 1282 L 899 1305 C 896 1308 892 1310 888 1310 L 854 1310 C 850 1310 846 1308 843 1305 L 823 1282 C 823 1280 823 1279 823 1278 L 843 1255 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="871" y="1277">first</text>
-      <text x="871" y="1291">finger up</text>
-    </g>
-    <path d="M 782 1210 L 828 1246" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 832 1249 L 824 1247 L 828 1246 L 829 1242 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 883 1475 C 884 1473 884 1472 885 1471 C 886 1470 887 1470 888 1470 L 957 1470 C 958 1470 960 1470 961 1471 C 962 1472 962 1473 962 1475 L 943 1524 C 942 1526 941 1527 941 1528 C 940 1529 939 1530 938 1529 L 868 1529 C 867 1529 866 1529 865 1528 C 864 1527 864 1526 864 1524 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="913" y="1497">button 1</text>
-      <text x="913" y="1511">release</text>
-    </g>
-    <path d="M 883 1555 C 884 1553 884 1552 885 1551 C 886 1550 887 1550 888 1550 L 957 1550 C 958 1550 960 1550 961 1551 C 962 1552 962 1553 962 1555 L 943 1604 C 942 1606 941 1607 941 1608 C 940 1609 939 1610 938 1609 L 868 1609 C 867 1609 866 1609 865 1608 C 864 1607 864 1606 864 1604 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="913" y="1577">button 1</text>
-      <text x="913" y="1591">press</text>
-    </g>
-    <path d="M 890 1645 C 890 1643 891 1642 892 1641 C 893 1640 894 1640 895 1640 L 963 1640 C 965 1640 966 1640 967 1641 C 968 1642 968 1643 968 1645 L 949 1694 C 949 1696 948 1697 947 1698 C 946 1699 945 1700 944 1699 L 875 1699 C 873 1699 872 1699 871 1698 C 871 1697 870 1696 871 1694 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="920" y="1667">btn1</text>
-      <text x="920" y="1681">release</text>
-    </g>
-    <path d="M 902 1423 L 912 1463" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 913 1468 L 908 1462 L 912 1463 L 915 1461 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 913 1530 L 913 1543" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 913 1548 L 910 1541 L 913 1543 L 917 1541 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 915 1610 L 917 1633" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 917 1638 L 913 1632 L 917 1633 L 920 1631 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 897 1700 L 693 1967" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 690 1971 L 691 1963 L 693 1967 L 697 1967 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 685 1255 C 687 1251 691 1250 696 1250 L 729 1250 C 734 1250 738 1251 740 1255 L 760 1278 C 761 1279 761 1280 760 1282 L 740 1305 C 738 1308 734 1310 729 1310 L 696 1310 C 691 1310 687 1308 685 1305 L 665 1282 C 664 1280 664 1279 665 1278 L 685 1255 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="712" y="1277">second</text>
-      <text x="712" y="1291">finger down</text>
-    </g>
-    <path d="M 747 1210 L 730 1244" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 728 1249 L 728 1241 L 730 1244 L 734 1244 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 355 1255 C 357 1251 361 1250 366 1250 L 399 1250 C 404 1250 408 1251 410 1255 L 430 1278 C 431 1279 431 1280 430 1282 L 410 1305 C 408 1308 404 1310 399 1310 L 366 1310 C 361 1310 357 1308 355 1305 L 335 1282 C 334 1280 334 1279 335 1278 L 355 1255 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+      <text x="1650.75" y="1553.75">
+        fourth</text>
+      <text x="1650.75" y="1567.75">
+        finger down</text>
+    </g>
+    <path d="M 1830 1387 L 1687.61 1522.61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1683.81 1526.23 L 1686.46 1518.87 L 1687.61 1522.61 L 1691.29 1523.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1670 1167 L 1671.83 1235.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1671.97 1240.88 L 1668.28 1233.98 L 1671.83 1235.63 L 1675.28 1233.79 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="1070.5" y="1167" width="209" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="383" y="1277">move > </text>
-      <text x="383" y="1291">threshold</text>
-    </g>
-    <path d="M 674 1210 L 437 1266" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 432 1268 L 438 1263 L 437 1266 L 440 1269 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 489 1415 L 480 1483" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 480 1488 L 477 1481 L 480 1483 L 484 1482 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1454" y="580" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+      <text x="1174.75" y="1190.75">
+        DRAGGING_OR_DOUBLETAP</text>
+    </g>
+    <path d="M 1253 1144 L 1216.59 1163.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1211.98 1166.46 L 1216.44 1160.03 L 1216.59 1163.94 L 1219.8 1166.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 947.54 1252 C 950.34 1248.86 954.32 1247.05 958.52 1247 L 992.49 1247 C 996.69 1247.05 1000.67 1248.86 1003.47 1252 L 1023.45 1275 C 1024.01 1276.28 1024.01 1277.72 1023.45 1279 L 1003.47 1302 C 1000.67 1305.14 996.69 1306.95 992.49 1307 L 958.52 1307 C 954.32 1306.95 950.34 1305.14 947.54 1302 L 927.56 1279 C 927 1277.72 927 1276.28 927.56 1275 L 947.54 1252 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="975.25" y="1280.75">
+        timeout</text>
+    </g>
+    <path d="M 1131 1207 L 1029.81 1252.39" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1025.02 1254.54 L 1029.97 1248.48 L 1029.81 1252.39 L 1032.84 1254.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 784.04 1018 C 786.84 1014.86 790.82 1013.05 795.02 1013 L 828.99 1013 C 833.19 1013.05 837.17 1014.86 839.97 1018 L 859.95 1041 C 860.51 1042.28 860.51 1043.72 859.95 1045 L 839.97 1068 C 837.17 1071.14 833.19 1072.95 828.99 1073 L 795.02 1073 C 790.82 1072.95 786.84 1071.14 784.04 1068 L 764.06 1045 C 763.5 1043.72 763.5 1042.28 764.06 1041 L 784.04 1018 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1519" y="604">HOLD</text>
-    </g>
-    <path d="M 1677 708 C 1680 704 1684 703 1688 703 L 1722 703 C 1726 703 1730 704 1733 708 L 1753 731 C 1754 732 1754 733 1753 735 L 1733 758 C 1730 761 1726 763 1722 763 L 1688 763 C 1684 763 1680 761 1677 758 L 1657 735 C 1657 733 1657 732 1657 731 L 1677 708 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1705" y="730">first</text>
-      <text x="1705" y="744">finger up</text>
-    </g>
-    <path d="M 1547 620 L 1658 699" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1662 702 L 1654 701 L 1658 699 L 1658 695 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1846 810 L 1868 810" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1873 811 L 1866 814 L 1868 810 L 1866 807 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1462 675 C 1464 671 1468 670 1473 670 L 1506 670 C 1511 670 1515 671 1517 675 L 1537 698 C 1538 699 1538 700 1537 702 L 1517 725 C 1515 728 1511 730 1506 730 L 1473 730 C 1468 730 1464 728 1462 725 L 1442 702 C 1441 700 1441 699 1442 698 L 1462 675 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1490" y="697">second</text>
-      <text x="1490" y="711">finger down</text>
-    </g>
-    <path d="M 1513 620 L 1500 663" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1499 668 L 1497 661 L 1500 663 L 1504 663 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1469 820 L 1466 843" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1466 848 L 1463 841 L 1466 843 L 1470 842 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1385 672 L 1477 623" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1481 620 L 1477 627 L 1477 623 L 1473 620 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1795" y="1120" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1860" y="1144">TOUCH_2_HOLD</text>
-    </g>
-    <path d="M 1975 1225 C 1978 1221 1982 1220 1986 1220 L 2020 1220 C 2024 1220 2028 1221 2031 1225 L 2051 1248 C 2051 1249 2051 1250 2051 1252 L 2031 1275 C 2028 1278 2024 1280 2020 1280 L 1986 1280 C 1982 1280 1978 1278 1975 1275 L 1955 1252 C 1954 1250 1954 1249 1955 1248 L 1975 1225 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2003" y="1247">second</text>
-      <text x="2003" y="1261">finger up</text>
-    </g>
-    <path d="M 1886 1160 L 1959 1216" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1963 1219 L 1955 1217 L 1959 1216 L 1960 1212 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1670 1230 C 1673 1226 1677 1225 1681 1225 L 1715 1225 C 1719 1225 1723 1226 1726 1230 L 1746 1253 C 1747 1254 1747 1255 1746 1257 L 1726 1280 C 1723 1283 1719 1285 1715 1285 L 1681 1285 C 1677 1285 1673 1283 1670 1280 L 1650 1257 C 1650 1255 1650 1254 1650 1253 L 1670 1230 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1698" y="1252">first</text>
-      <text x="1698" y="1266">finger up</text>
-    </g>
-    <path d="M 1832 1160 L 1746 1221" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1741 1224 L 1745 1217 L 1746 1221 L 1749 1223 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1984 875 L 1984 610 Q 1984 600 1974 600 L 1590 600" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1585 600 L 1592 596 L 1590 600 L 1592 603 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1644 1085 L 1644 610 Q 1644 600 1634 600 L 1590 600" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1585 600 L 1592 596 L 1590 600 L 1592 603 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1816 1235 C 1819 1231 1823 1230 1827 1230 L 1861 1230 C 1865 1230 1869 1231 1872 1235 L 1892 1258 C 1892 1259 1892 1260 1892 1262 L 1872 1285 C 1869 1288 1865 1290 1861 1290 L 1827 1290 C 1823 1290 1819 1288 1816 1285 L 1796 1262 C 1795 1260 1795 1259 1796 1258 L 1816 1235 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1844" y="1257">third</text>
-      <text x="1844" y="1271">finger down</text>
-    </g>
-    <path d="M 1858 1160 L 1849 1223" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1848 1228 L 1846 1221 L 1849 1223 L 1852 1222 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1569 1355 L 1505 1362" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1500 1362 L 1506 1358 L 1505 1362 L 1507 1365 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1570 1987 L 2064 1987 Q 2074 1987 2074 1977 L 2074 1150 Q 2074 1140 2064 1140 L 1932 1140" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1926 1140 L 1933 1136 L 1932 1140 L 1933 1143 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1534" y="2227" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1599" y="2251">TOUCH_3_HOLD</text>
-    </g>
-    <path d="M 1591 1826 L 1599 2220" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1599 2225 L 1595 2219 L 1599 2220 L 1602 2218 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1295 2365 C 1298 2361 1302 2360 1306 2360 L 1340 2360 C 1344 2360 1348 2361 1351 2365 L 1371 2388 C 1372 2389 1372 2390 1371 2392 L 1351 2415 C 1348 2418 1344 2420 1340 2420 L 1306 2420 C 1302 2420 1298 2418 1295 2415 L 1275 2392 C 1275 2390 1275 2389 1275 2388 L 1295 2365 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1323" y="2387">fourth</text>
-      <text x="1323" y="2401">finger down</text>
-    </g>
-    <rect x="1054" y="2485" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1119" y="2509">DEAD</text>
-    </g>
-    <path d="M 1560 2267 L 1377 2362" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1372 2364 L 1377 2358 L 1377 2362 L 1380 2364 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1275 2417 L 1160 2481" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1155 2484 L 1160 2478 L 1160 2481 L 1163 2484 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1229 1590 L 1122 2478" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1122 2483 L 1119 2476 L 1122 2478 L 1126 2477 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1035 2580 C 1038 2576 1042 2575 1046 2575 L 1080 2575 C 1084 2575 1088 2576 1091 2580 L 1111 2603 C 1112 2604 1112 2605 1111 2607 L 1091 2630 C 1088 2633 1084 2635 1080 2635 L 1046 2635 C 1042 2635 1038 2633 1035 2630 L 1015 2607 C 1015 2605 1015 2604 1015 2603 L 1035 2580 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1063" y="2609">any finger up</text>
-    </g>
-    <path d="M 1178 2609 C 1180 2605 1184 2604 1189 2604 L 1222 2604 C 1227 2604 1231 2605 1233 2609 L 1253 2632 C 1254 2633 1254 2634 1253 2636 L 1233 2659 C 1231 2662 1227 2664 1222 2664 L 1189 2664 C 1184 2664 1180 2662 1178 2659 L 1158 2636 C 1157 2634 1157 2633 1158 2632 L 1178 2609 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1206" y="2631">fourth</text>
-      <text x="1206" y="2645">finger up</text>
-    </g>
-    <path d="M 1358 1540 C 1360 1536 1364 1535 1369 1535 L 1402 1535 C 1407 1535 1411 1536 1413 1540 L 1433 1563 C 1434 1564 1434 1565 1433 1567 L 1413 1590 C 1411 1593 1407 1595 1402 1595 L 1369 1595 C 1364 1595 1360 1593 1358 1590 L 1338 1567 C 1337 1565 1337 1564 1338 1563 L 1358 1540 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1386" y="1569">any finger up</text>
-    </g>
-    <path d="M 1429 1390 L 1394 1528" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1393 1533 L 1391 1526 L 1394 1528 L 1398 1528 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1367 1753 L 1332 1845" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1331 1850 L 1330 1842 L 1332 1845 L 1336 1844 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+      <text x="811.75" y="1039.75">
+        first</text>
+      <text x="811.75" y="1053.75">
+        finger up</text>
+    </g>
+    <path d="M 1125 1167 L 866.92 1064.35" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 862.04 1062.41 L 869.84 1061.75 L 866.92 1064.35 L 867.25 1068.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 471.22 968.1 C 472.36 964.9 474.22 963.04 476.18 963.12 L 544.64 963.12 C 546.2 963.08 547.7 963.63 548.67 964.61 C 549.65 965.59 549.99 966.88 549.6 968.1 L 530.75 1017.9 C 529.61 1021.1 527.75 1022.96 525.79 1022.88 L 456.34 1022.88 C 454.95 1022.69 453.73 1022.05 452.97 1021.1 C 452.22 1020.15 452 1018.99 452.37 1017.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="500.75" y="989.75">
+        button 1</text>
+      <text x="500.75" y="1003.75">
+        release</text>
+    </g>
+    <path d="M 222.22 1307.1 C 223.36 1303.9 225.22 1302.04 227.18 1302.12 L 295.64 1302.12 C 297.2 1302.08 298.7 1302.63 299.67 1303.61 C 300.65 1304.59 300.99 1305.88 300.6 1307.1 L 281.75 1356.9 C 280.61 1360.1 278.75 1361.96 276.79 1361.88 L 207.34 1361.88 C 205.95 1361.69 204.73 1361.05 203.97 1360.1 C 203.22 1359.15 203 1357.99 203.37 1356.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="251.75" y="1328.75">
+        button 1</text>
+      <text x="251.75" y="1342.75">
+        press</text>
+    </g>
+    <path d="M 222.72 1447.1 C 223.86 1443.9 225.72 1442.04 227.68 1442.12 L 296.14 1442.12 C 297.7 1442.08 299.2 1442.63 300.17 1443.61 C 301.15 1444.59 301.49 1445.88 301.1 1447.1 L 282.25 1496.9 C 281.11 1500.1 279.25 1501.96 277.29 1501.88 L 207.84 1501.88 C 206.45 1501.69 205.23 1501.05 204.47 1500.1 C 203.72 1499.15 203.5 1497.99 203.87 1496.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="252.25" y="1468.75">
+        btn1</text>
+      <text x="252.25" y="1482.75">
+        release</text>
+    </g>
+    <path d="M 252 1362 L 252 1435.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 252 1440.88 L 248.5 1433.88 L 252 1435.63 L 255.5 1433.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1102.54 1252 C 1105.34 1248.86 1109.32 1247.05 1113.52 1247 L 1147.49 1247 C 1151.69 1247.05 1155.67 1248.86 1158.47 1252 L 1178.45 1275 C 1179.01 1276.28 1179.01 1277.72 1178.45 1279 L 1158.47 1302 C 1155.67 1305.14 1151.69 1306.95 1147.49 1307 L 1113.52 1307 C 1109.32 1306.95 1105.34 1305.14 1102.54 1302 L 1082.56 1279 C 1082 1277.72 1082 1276.28 1082.56 1275 L 1102.54 1252 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1130.25" y="1273.75">
+        second</text>
+      <text x="1130.25" y="1287.75">
+        finger down</text>
+    </g>
+    <path d="M 1165 1207 L 1147.85 1241.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1145.5 1246 L 1145.5 1238.17 L 1147.85 1241.3 L 1151.76 1241.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 742.54 1257 C 745.34 1253.86 749.32 1252.05 753.52 1252 L 787.49 1252 C 791.69 1252.05 795.67 1253.86 798.47 1257 L 818.45 1280 C 819.01 1281.28 819.01 1282.72 818.45 1284 L 798.47 1307 C 795.67 1310.14 791.69 1311.95 787.49 1312 L 753.52 1312 C 749.32 1311.95 745.34 1310.14 742.54 1307 L 722.56 1284 C 722 1282.72 722 1281.28 722.56 1280 L 742.54 1257 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="770.25" y="1278.75">
+        move > </text>
+      <text x="770.25" y="1292.75">
+        threshold</text>
+    </g>
+    <path d="M 1090 1207 L 825.2 1269.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 820.09 1270.74 L 826.1 1265.73 L 825.2 1269.54 L 827.71 1272.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 906 1413 L 897.77 1480.68" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 897.13 1485.89 L 894.51 1478.52 L 897.77 1480.68 L 901.45 1479.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="1872" y="577" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1936.75" y="600.75">
+        HOLD</text>
+    </g>
+    <path d="M 2095.04 705 C 2097.84 701.86 2101.82 700.05 2106.02 700 L 2139.99 700 C 2144.19 700.05 2148.17 701.86 2150.97 705 L 2170.95 728 C 2171.51 729.28 2171.51 730.72 2170.95 732 L 2150.97 755 C 2148.17 758.14 2144.19 759.95 2139.99 760 L 2106.02 760 C 2101.82 759.95 2097.84 758.14 2095.04 755 L 2075.06 732 C 2074.5 730.72 2074.5 729.28 2075.06 728 L 2095.04 705 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2122.75" y="726.75">
+        first</text>
+      <text x="2122.75" y="740.75">
+        finger up</text>
+    </g>
+    <path d="M 1965 617 L 2075.82 696.29" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2080.09 699.35 L 2072.36 698.12 L 2075.82 696.29 L 2076.43 692.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2264 807 L 2285.64 807.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2290.88 807.96 L 2283.76 811.21 L 2285.64 807.77 L 2284.01 804.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1879.54 672 C 1882.34 668.86 1886.32 667.05 1890.52 667 L 1924.49 667 C 1928.69 667.05 1932.67 668.86 1935.47 672 L 1955.45 695 C 1956.01 696.28 1956.01 697.72 1955.45 699 L 1935.47 722 C 1932.67 725.14 1928.69 726.95 1924.49 727 L 1890.52 727 C 1886.32 726.95 1882.34 725.14 1879.54 722 L 1859.56 699 C 1859 697.72 1859 696.28 1859.56 695 L 1879.54 672 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1907.25" y="693.75">
+        second</text>
+      <text x="1907.25" y="707.75">
+        finger down</text>
+    </g>
+    <path d="M 1931 617 L 1917.83 660.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1916.32 665.93 L 1914.98 658.22 L 1917.83 660.9 L 1921.69 660.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1887 818 L 1884.66 840.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1884.12 845.89 L 1881.35 838.56 L 1884.66 840.67 L 1888.32 839.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1803 670 L 1894.41 620.05" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1899.02 617.54 L 1894.55 623.96 L 1894.41 620.05 L 1891.2 617.82 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="2213.25" y="1117" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2278" y="1140.75">
+        TOUCH_2_HOLD</text>
+    </g>
+    <path d="M 2392.79 1222 C 2395.59 1218.86 2399.57 1217.05 2403.77 1217 L 2437.74 1217 C 2441.94 1217.05 2445.92 1218.86 2448.72 1222 L 2468.7 1245 C 2469.26 1246.28 2469.26 1247.72 2468.7 1249 L 2448.72 1272 C 2445.92 1275.14 2441.94 1276.95 2437.74 1277 L 2403.77 1277 C 2399.57 1276.95 2395.59 1275.14 2392.79 1272 L 2372.81 1249 C 2372.25 1247.72 2372.25 1246.28 2372.81 1245 L 2392.79 1222 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2420.5" y="1243.75">
+        second</text>
+      <text x="2420.5" y="1257.75">
+        finger up</text>
+    </g>
+    <path d="M 2304 1157 L 2376.95 1213.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2381.11 1216.32 L 2373.43 1214.82 L 2376.95 1213.12 L 2377.7 1209.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2088.29 1227 C 2091.09 1223.86 2095.07 1222.05 2099.27 1222 L 2133.24 1222 C 2137.44 1222.05 2141.42 1223.86 2144.22 1227 L 2164.2 1250 C 2164.76 1251.28 2164.76 1252.72 2164.2 1254 L 2144.22 1277 C 2141.42 1280.14 2137.44 1281.95 2133.24 1282 L 2099.27 1282 C 2095.07 1281.95 2091.09 1280.14 2088.29 1277 L 2068.31 1254 C 2067.75 1252.72 2067.75 1251.28 2068.31 1250 L 2088.29 1227 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2116" y="1248.75">
+        first</text>
+      <text x="2116" y="1262.75">
+        finger up</text>
+    </g>
+    <path d="M 2250 1157 L 2164.18 1218.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2159.91 1221.35 L 2163.57 1214.43 L 2164.18 1218.3 L 2167.64 1220.13 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2402 873 L 2402 607 Q 2402 597 2392 597 L 2008.37 597" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2003.12 597 L 2010.12 593.5 L 2008.37 597 L 2010.12 600.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2062 1083 L 2062 607 Q 2062 597 2052 597 L 2008.37 597" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2003.12 597 L 2010.12 593.5 L 2008.37 597 L 2010.12 600.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2233.79 1232 C 2236.59 1228.86 2240.57 1227.05 2244.77 1227 L 2278.74 1227 C 2282.94 1227.05 2286.92 1228.86 2289.72 1232 L 2309.7 1255 C 2310.26 1256.28 2310.26 1257.72 2309.7 1259 L 2289.72 1282 C 2286.92 1285.14 2282.94 1286.95 2278.74 1287 L 2244.77 1287 C 2240.57 1286.95 2236.59 1285.14 2233.79 1282 L 2213.81 1259 C 2213.25 1257.72 2213.25 1256.28 2213.81 1255 L 2233.79 1232 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2261.5" y="1253.75">
+        third</text>
+      <text x="2261.5" y="1267.75">
+        finger down</text>
+    </g>
+    <path d="M 2276 1157 L 2266.9 1220.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2266.16 1225.89 L 2263.68 1218.47 L 2266.9 1220.7 L 2270.61 1219.46 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1987 1352 L 1922.33 1359.29" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1917.11 1359.87 L 1923.68 1355.61 L 1922.33 1359.29 L 1924.46 1362.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1988 1984 L 2482 1984 Q 2492 1984 2492 1974 L 2492 1147 Q 2492 1137 2482 1137 L 2349.37 1137" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2344.12 1137 L 2351.12 1133.5 L 2349.37 1137 L 2351.12 1140.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="1952" y="2224" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2016.75" y="2247.75">
+        TOUCH_3_HOLD</text>
+    </g>
+    <path d="M 2009 1824 L 2016.87 2217.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2016.98 2222.88 L 2013.34 2215.95 L 2016.87 2217.63 L 2020.34 2215.81 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1713.04 2362 C 1715.84 2358.86 1719.82 2357.05 1724.02 2357 L 1757.99 2357 C 1762.19 2357.05 1766.17 2358.86 1768.97 2362 L 1788.95 2385 C 1789.51 2386.28 1789.51 2387.72 1788.95 2389 L 1768.97 2412 C 1766.17 2415.14 1762.19 2416.95 1757.99 2417 L 1724.02 2417 C 1719.82 2416.95 1715.84 2415.14 1713.04 2412 L 1693.06 2389 C 1692.5 2387.72 1692.5 2386.28 1693.06 2385 L 1713.04 2362 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1740.75" y="2383.75">
+        fourth</text>
+      <text x="1740.75" y="2397.75">
+        finger down</text>
+    </g>
+    <rect x="1472" y="2482" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1536.75" y="2505.75">
+        DEAD</text>
+    </g>
+    <path d="M 1979 2264 L 1795.65 2359.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1790.99 2361.49 L 1795.6 2355.16 L 1795.65 2359.07 L 1798.82 2361.37 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1693 2414 L 1577.55 2478.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1572.97 2481.45 L 1577.36 2474.97 L 1577.55 2478.88 L 1580.79 2481.07 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1647 1587 L 1539.76 2475.68" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1539.13 2480.89 L 1536.5 2473.52 L 1539.76 2475.68 L 1543.45 2474.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1453.04 2577 C 1455.84 2573.86 1459.82 2572.05 1464.02 2572 L 1497.99 2572 C 1502.19 2572.05 1506.17 2573.86 1508.97 2577 L 1528.95 2600 C 1529.51 2601.28 1529.51 2602.72 1528.95 2604 L 1508.97 2627 C 1506.17 2630.14 1502.19 2631.95 1497.99 2632 L 1464.02 2632 C 1459.82 2631.95 1455.84 2630.14 1453.04 2627 L 1433.06 2604 C 1432.5 2602.72 1432.5 2601.28 1433.06 2600 L 1453.04 2577 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1480.75" y="2605.75">
+        any finger up</text>
+    </g>
+    <path d="M 1595.54 2606 C 1598.34 2602.86 1602.32 2601.05 1606.52 2601 L 1640.49 2601 C 1644.69 2601.05 1648.67 2602.86 1651.47 2606 L 1671.45 2629 C 1672.01 2630.28 1672.01 2631.72 1671.45 2633 L 1651.47 2656 C 1648.67 2659.14 1644.69 2660.95 1640.49 2661 L 1606.52 2661 C 1602.32 2660.95 1598.34 2659.14 1595.54 2656 L 1575.56 2633 C 1575 2631.72 1575 2630.28 1575.56 2629 L 1595.54 2606 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1623.25" y="2627.75">
+        fourth</text>
+      <text x="1623.25" y="2641.75">
+        finger up</text>
+    </g>
+    <path d="M 1775.54 1537 C 1778.34 1533.86 1782.32 1532.05 1786.52 1532 L 1820.49 1532 C 1824.69 1532.05 1828.67 1533.86 1831.47 1537 L 1851.45 1560 C 1852.01 1561.28 1852.01 1562.72 1851.45 1564 L 1831.47 1587 C 1828.67 1590.14 1824.69 1591.95 1820.49 1592 L 1786.52 1592 C 1782.32 1591.95 1778.34 1590.14 1775.54 1587 L 1755.56 1564 C 1755 1562.72 1755 1561.28 1755.56 1560 L 1775.54 1537 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1803.25" y="1565.75">
+        any finger up</text>
+    </g>
+    <path d="M 1847 1387 L 1812.53 1525.82" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1811.27 1530.91 L 1809.56 1523.28 L 1812.53 1525.82 L 1816.35 1524.96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1785 1750 L 1750.25 1842.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1748.39 1846.95 L 1747.59 1839.17 L 1750.25 1842.04 L 1754.14 1841.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
-      <rect fill="#ffffff" stroke="none" x="1339" y="1789" width="20" height="27" stroke-width="0"/>
-      <text x="1349" y="1812">yes</text>
-    </g>
-    <path d="M 1591 2335 C 1594 2331 1598 2330 1602 2330 L 1636 2330 C 1640 2330 1644 2331 1647 2335 L 1667 2358 C 1668 2359 1668 2360 1667 2362 L 1647 2385 C 1644 2388 1640 2390 1636 2390 L 1602 2390 C 1598 2390 1594 2388 1591 2385 L 1571 2362 C 1571 2360 1571 2359 1571 2358 L 1591 2335 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1619" y="2364">any finger up</text>
-    </g>
-    <path d="M 1603 2267 L 1613 2323" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1613 2328 L 1609 2322 L 1613 2323 L 1616 2321 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1958 2355 L 2064 2355 Q 2074 2355 2074 2345 L 2074 1150 Q 2074 1140 2064 1140 L 1932 1140" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1926 1140 L 1933 1136 L 1932 1140 L 1933 1143 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1108 2525 L 1083 2569" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1080 2574 L 1081 2566 L 1083 2569 L 1087 2569 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1132 2525 L 1182 2598" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1185 2603 L 1178 2599 L 1182 2598 L 1184 2595 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1126" cy="2985" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1126" y="2989">IDLE</text>
-    </g>
-    <path d="M 1121 2825 L 1173 2870 L 1121 2915 L 1070 2870 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1121" y="2867">if finger</text>
-      <text x="1121" y="2881">count == 0</text>
-    </g>
-    <path d="M 1079 2728 L 1106 2818" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1108 2824 L 1102 2818 L 1106 2818 L 1109 2816 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1195 2664 L 1140 2819" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1138 2824 L 1137 2816 L 1140 2819 L 1143 2818 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1123 2915 L 1125 2948" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1125 2953 L 1121 2947 L 1125 2948 L 1128 2946 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 659 1648 C 661 1644 665 1643 670 1643 L 703 1643 C 708 1643 712 1644 714 1648 L 734 1671 C 735 1672 735 1673 734 1675 L 714 1698 C 712 1701 708 1703 703 1703 L 670 1703 C 665 1703 661 1701 659 1698 L 639 1675 C 638 1673 638 1672 639 1671 L 659 1648 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="686" y="1670">second</text>
-      <text x="686" y="1684">finger up</text>
-    </g>
-    <rect x="599" y="1490" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="664" y="1514">DRAGGING_2</text>
-    </g>
-    <path d="M 678 1435 L 669 1483" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 668 1488 L 666 1481 L 669 1483 L 673 1482 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 667 1530 L 681 1636" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 682 1641 L 678 1635 L 681 1636 L 685 1634 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 486 1712 C 488 1708 492 1707 497 1707 L 530 1707 C 535 1707 539 1708 541 1712 L 561 1735 C 562 1736 562 1737 561 1739 L 541 1762 C 539 1765 535 1767 530 1767 L 497 1767 C 492 1767 488 1765 486 1762 L 466 1739 C 465 1737 465 1736 466 1735 L 486 1712 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="514" y="1734">first</text>
-      <text x="514" y="1748">finger up</text>
-    </g>
-    <path d="M 651 1530 L 537 1701" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 534 1706 L 535 1698 L 537 1701 L 541 1702 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 494 1612 L 481 1536" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 481 1531 L 485 1537 L 481 1536 L 478 1538 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 640 1728 L 496 1535" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 493 1530 L 500 1534 L 496 1535 L 494 1538 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 373 1742 C 375 1738 379 1737 384 1737 L 417 1737 C 422 1737 426 1738 428 1742 L 448 1765 C 449 1766 449 1767 448 1769 L 428 1792 C 426 1795 422 1797 417 1797 L 384 1797 C 379 1797 375 1795 373 1792 L 353 1769 C 352 1767 352 1766 353 1765 L 373 1742 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="401" y="1764">second</text>
-      <text x="401" y="1778">finger down</text>
-    </g>
-    <path d="M 471 1530 L 411 1730" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 410 1735 L 408 1728 L 411 1730 L 415 1730 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 561 1817 L 655 1536" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 657 1531 L 658 1538 L 655 1536 L 651 1536 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 564 1991 L 611 1996" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 616 1997 L 609 1999 L 611 1996 L 609 1992 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 750 1620 C 752 1616 756 1615 761 1615 L 794 1615 C 799 1615 803 1616 805 1620 L 825 1643 C 826 1644 826 1645 825 1647 L 805 1670 C 803 1673 799 1675 794 1675 L 761 1675 C 756 1675 752 1673 750 1670 L 730 1647 C 729 1645 729 1644 730 1643 L 750 1620 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="777" y="1642">third</text>
-      <text x="777" y="1656">finger down</text>
-    </g>
-    <path d="M 681 1530 L 748 1610" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 752 1614 L 744 1611 L 748 1610 L 750 1606 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 922 1940 C 922 1938 923 1937 924 1936 C 925 1935 926 1935 927 1935 L 995 1935 C 997 1935 998 1935 999 1936 C 1000 1937 1000 1938 1000 1940 L 981 1989 C 981 1991 980 1992 979 1993 C 978 1994 977 1995 976 1994 L 907 1994 C 905 1994 904 1994 903 1993 C 903 1992 902 1991 903 1989 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="952" y="1962">btn1</text>
-      <text x="952" y="1976">release</text>
-    </g>
-    <path d="M 961 1995 L 1111 2478" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1112 2484 L 1107 2478 L 1111 2478 L 1114 2476 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2225 835 C 2227 831 2231 830 2236 830 L 2269 830 C 2274 830 2278 831 2280 835 L 2300 858 C 2301 859 2301 860 2300 862 L 2280 885 C 2278 888 2274 890 2269 890 L 2236 890 C 2231 890 2227 888 2225 885 L 2205 862 C 2204 860 2204 859 2205 858 L 2225 835 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+      <rect fill="#ffffff" stroke="none" x="1758" y="1787" width="18" height="27" stroke-width="0"/>
+      <text x="1766.5" y="1809">
+        yes</text>
+    </g>
+    <path d="M 2009.04 2332 C 2011.84 2328.86 2015.82 2327.05 2020.02 2327 L 2053.99 2327 C 2058.19 2327.05 2062.17 2328.86 2064.97 2332 L 2084.95 2355 C 2085.51 2356.28 2085.51 2357.72 2084.95 2359 L 2064.97 2382 C 2062.17 2385.14 2058.19 2386.95 2053.99 2387 L 2020.02 2387 C 2015.82 2386.95 2011.84 2385.14 2009.04 2382 L 1989.06 2359 C 1988.5 2357.72 1988.5 2356.28 1989.06 2355 L 2009.04 2332 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2036.75" y="2360.75">
+        any finger up</text>
+    </g>
+    <path d="M 2021 2264 L 2030.9 2320.73" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2031.81 2325.9 L 2027.16 2319.6 L 2030.9 2320.73 L 2034.05 2318.4 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2376 2352 L 2482 2352 Q 2492 2352 2492 2342 L 2492 1147 Q 2492 1137 2482 1137 L 2349.37 1137" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2344.12 1137 L 2351.12 1133.5 L 2349.37 1137 L 2351.12 1140.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1526 2522 L 1501.11 2566.44" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1498.55 2571.02 L 1498.91 2563.21 L 1501.11 2566.44 L 1505.02 2566.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1550 2522 L 1599.45 2595.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1602.38 2600.07 L 1595.57 2596.21 L 1599.45 2595.71 L 1601.38 2592.31 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <ellipse cx="1544" cy="2982" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1543.75" y="2985.75">
+        IDLE</text>
+    </g>
+    <path d="M 1539.4 2822 L 1591 2867 L 1539.4 2912 L 1487.8 2867 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1539.15" y="2863.75">
+        if finger</text>
+      <text x="1539.15" y="2877.75">
+        count == 0</text>
+    </g>
+    <path d="M 1497 2726 L 1524.16 2815.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1525.68 2820.93 L 1520.3 2815.24 L 1524.16 2815.9 L 1527 2813.22 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1613 2661 L 1557.16 2816.01" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1555.38 2820.95 L 1554.46 2813.18 L 1557.16 2816.01 L 1561.04 2815.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1541 2912 L 1542.68 2945.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1542.94 2950.88 L 1539.1 2944.07 L 1542.68 2945.64 L 1546.09 2943.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1076.54 1645 C 1079.34 1641.86 1083.32 1640.05 1087.52 1640 L 1121.49 1640 C 1125.69 1640.05 1129.67 1641.86 1132.47 1645 L 1152.45 1668 C 1153.01 1669.28 1153.01 1670.72 1152.45 1672 L 1132.47 1695 C 1129.67 1698.14 1125.69 1699.95 1121.49 1700 L 1087.52 1700 C 1083.32 1699.95 1079.34 1698.14 1076.54 1695 L 1056.56 1672 C 1056 1670.72 1056 1669.28 1056.56 1668 L 1076.54 1645 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1104.25" y="1666.75">
+        second</text>
+      <text x="1104.25" y="1680.75">
+        finger up</text>
+    </g>
+    <rect x="1017" y="1487" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1081.75" y="1510.75">
+        DRAGGING_2</text>
+    </g>
+    <path d="M 1096 1433 L 1087.16 1480.74" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1086.2 1485.9 L 1084.04 1478.38 L 1087.16 1480.74 L 1090.92 1479.66 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1085 1527 L 1099.16 1633.69" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1099.85 1638.89 L 1095.46 1632.41 L 1099.16 1633.69 L 1102.4 1631.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 903.54 1709 C 906.34 1705.86 910.32 1704.05 914.52 1704 L 948.49 1704 C 952.69 1704.05 956.67 1705.86 959.47 1709 L 979.45 1732 C 980.01 1733.28 980.01 1734.72 979.45 1736 L 959.47 1759 C 956.67 1762.14 952.69 1763.95 948.49 1764 L 914.52 1764 C 910.32 1763.95 906.34 1762.14 903.54 1759 L 883.56 1736 C 883 1734.72 883 1733.28 883.56 1732 L 903.54 1709 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="931.25" y="1730.75">
+        first</text>
+      <text x="931.25" y="1744.75">
+        finger up</text>
+    </g>
+    <path d="M 1069 1527 L 954.53 1698.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 951.62 1703.07 L 952.59 1695.3 L 954.53 1698.7 L 958.42 1699.19 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 912 1610 L 899.06 1533.28" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 898.19 1528.1 L 902.8 1534.42 L 899.06 1533.28 L 895.9 1535.59 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1058 1726 L 913.8 1532.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 910.67 1527.9 L 917.65 1531.43 L 913.8 1532.11 L 912.04 1535.6 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 790.54 1739 C 793.34 1735.86 797.32 1734.05 801.52 1734 L 835.49 1734 C 839.69 1734.05 843.67 1735.86 846.47 1739 L 866.45 1762 C 867.01 1763.28 867.01 1764.72 866.45 1766 L 846.47 1789 C 843.67 1792.14 839.69 1793.95 835.49 1794 L 801.52 1794 C 797.32 1793.95 793.34 1792.14 790.54 1789 L 770.56 1766 C 770 1764.72 770 1763.28 770.56 1762 L 790.54 1739 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="818.25" y="1760.75">
+        second</text>
+      <text x="818.25" y="1774.75">
+        finger down</text>
+    </g>
+    <path d="M 889 1527 L 828.83 1727.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 827.32 1732.93 L 825.98 1725.22 L 828.83 1727.9 L 832.68 1727.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 979 1815 L 1072.99 1533.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1074.65 1528.06 L 1075.75 1535.81 L 1072.99 1533.04 L 1069.11 1533.59 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 982 1989 L 1028.66 1993.4" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1033.89 1993.89 L 1026.59 1996.72 L 1028.66 1993.4 L 1027.25 1989.75 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1167.54 1617 C 1170.34 1613.86 1174.32 1612.05 1178.52 1612 L 1212.49 1612 C 1216.69 1612.05 1220.67 1613.86 1223.47 1617 L 1243.45 1640 C 1244.01 1641.28 1244.01 1642.72 1243.45 1644 L 1223.47 1667 C 1220.67 1670.14 1216.69 1671.95 1212.49 1672 L 1178.52 1672 C 1174.32 1671.95 1170.34 1670.14 1167.54 1667 L 1147.56 1644 C 1147 1642.72 1147 1641.28 1147.56 1640 L 1167.54 1617 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1195.25" y="1638.75">
+        third</text>
+      <text x="1195.25" y="1652.75">
+        finger down</text>
+    </g>
+    <path d="M 1099 1527 L 1165.92 1607.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1169.28 1611.14 L 1162.11 1608.01 L 1165.92 1607.11 L 1167.48 1603.53 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1350.72 2101.1 C 1351.86 2097.9 1353.72 2096.04 1355.68 2096.12 L 1424.14 2096.12 C 1425.7 2096.08 1427.2 2096.63 1428.17 2097.61 C 1429.15 2098.59 1429.49 2099.88 1429.1 2101.1 L 1410.25 2150.9 C 1409.11 2154.1 1407.25 2155.96 1405.29 2155.88 L 1335.84 2155.88 C 1334.45 2155.69 1333.23 2155.05 1332.47 2154.1 C 1331.72 2153.15 1331.5 2151.99 1331.87 2150.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1380.25" y="2122.75">
+        btn1</text>
+      <text x="1380.25" y="2136.75">
+        release</text>
+    </g>
+    <path d="M 1393 2156 L 1526.55 2476.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1528.57 2480.97 L 1522.64 2475.86 L 1526.55 2476.12 L 1529.1 2473.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2642.54 832 C 2645.34 828.86 2649.32 827.05 2653.52 827 L 2687.49 827 C 2691.69 827.05 2695.67 828.86 2698.47 832 L 2718.45 855 C 2719.01 856.28 2719.01 857.72 2718.45 859 L 2698.47 882 C 2695.67 885.14 2691.69 886.95 2687.49 887 L 2653.52 887 C 2649.32 886.95 2645.34 885.14 2642.54 882 L 2622.56 859 C 2622 857.72 2622 856.28 2622.56 855 L 2642.54 832 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#FFFFFF" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2252" y="850">clickpad</text>
-      <text x="2252" y="864">button</text>
-      <text x="2252" y="878">press</text>
-    </g>
-    <path d="M 1575 620 L 2198 840" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2203 842 L 2195 843 L 2198 840 L 2198 836 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1529 869 L 2198 860" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2203 860 L 2196 864 L 2198 860 L 2196 857 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1888 1120 L 2205 893" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2210 890 L 2206 897 L 2205 893 L 2202 891 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1608 2227 L 2236 895" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2238 891 L 2238 898 L 2236 895 L 2232 895 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2252 2013 L 2252 2495 Q 2252 2505 2242 2505 L 1190 2505" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1185 2505 L 1192 2501 L 1190 2505 L 1192 2508 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1346 65 L 2214 825" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2217 829 L 2210 827 L 2214 825 L 2215 822 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 25 1205 C 27 1201 31 1200 36 1200 L 69 1200 C 74 1200 78 1201 80 1205 L 100 1228 C 101 1229 101 1230 100 1232 L 80 1255 C 78 1258 74 1260 69 1260 L 36 1260 C 31 1260 27 1258 25 1255 L 5 1232 C 4 1230 4 1229 5 1228 L 25 1205 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+      <text x="2670.25" y="846.75">
+        phys</text>
+      <text x="2670.25" y="860.75">
+        button</text>
+      <text x="2670.25" y="874.75">
+        press</text>
+    </g>
+    <path d="M 1993 617 L 2616 837.87" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2620.95 839.63 L 2613.18 840.59 L 2616 837.87 L 2615.52 833.99 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1947 866 L 2615.63 858.08" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2620.88 858.01 L 2613.92 861.6 L 2615.63 858.08 L 2613.84 854.6 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2306 1117 L 2622.82 890.7" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2627.09 887.65 L 2623.43 894.57 L 2622.82 890.7 L 2619.36 888.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2026 2224 L 2653.29 892.76" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2655.52 888.01 L 2655.71 895.84 L 2653.29 892.76 L 2649.37 892.85 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2670 2011 L 2670 2492 Q 2670 2502 2660 2502 L 1608.37 2502" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1603.12 2502 L 1610.12 2498.5 L 1608.37 2502 L 1610.12 2505.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1764 62 L 2631.21 822.8" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 2635.16 826.26 L 2627.59 824.28 L 2631.21 822.8 L 2632.21 819.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 442.54 1202 C 445.34 1198.86 449.32 1197.05 453.52 1197 L 487.49 1197 C 491.69 1197.05 495.67 1198.86 498.47 1202 L 518.45 1225 C 519.01 1226.28 519.01 1227.72 518.45 1229 L 498.47 1252 C 495.67 1255.14 491.69 1256.95 487.49 1257 L 453.52 1257 C 449.32 1256.95 445.34 1255.14 442.54 1252 L 422.56 1229 C 422 1227.72 422 1226.28 422.56 1225 L 442.54 1202 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#FFFFFF" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="53" y="1220">clickpad</text>
-      <text x="53" y="1234">button</text>
-      <text x="53" y="1248">press</text>
-    </g>
-    <path d="M 981 959 L 107 1214" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 102 1215 L 108 1210 L 107 1214 L 110 1216 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 43 2030 C 44 2028 44 2027 45 2026 C 46 2025 47 2025 48 2025 L 117 2025 C 118 2025 120 2025 121 2026 C 122 2027 122 2028 122 2030 L 103 2079 C 102 2081 101 2082 101 2083 C 100 2084 99 2085 98 2084 L 28 2084 C 27 2084 26 2084 25 2083 C 24 2082 24 2081 24 2079 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="73" y="2052">button 1</text>
-      <text x="73" y="2066">release</text>
-    </g>
-    <path d="M 53 1260 L 72 2018" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 72 2023 L 69 2017 L 72 2018 L 76 2016 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 653 2283 L 1071 2482" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1076 2484 L 1068 2484 L 1071 2482 L 1071 2478 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 653 1196 L 107 1226" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 102 1227 L 109 1223 L 107 1226 L 109 1230 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 447 1490 L 103 1263" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 99 1260 L 107 1261 L 103 1263 L 103 1267 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 620 1490 L 107 1254" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 102 1252 L 110 1252 L 107 1254 L 107 1258 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="226" y="1842" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="291" y="1866">DRAGGING_WAIT</text>
-    </g>
-    <path d="M 357 1947 C 360 1943 364 1942 368 1942 L 402 1942 C 406 1942 410 1943 413 1947 L 433 1970 C 434 1971 434 1972 433 1974 L 413 1997 C 410 2000 406 2002 402 2002 L 368 2002 C 364 2002 360 2000 357 1997 L 337 1974 C 337 1972 337 1971 337 1970 L 357 1947 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="385" y="1976">timeout</text>
-    </g>
-    <path d="M 280 1787 L 289 1835" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 290 1840 L 286 1834 L 289 1835 L 292 1833 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 308 1882 L 355 1937" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 358 1941 L 351 1938 L 355 1937 L 357 1933 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 434 1977 L 460 1980" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 465 1981 L 458 1983 L 460 1980 L 458 1977 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 178 1947 C 180 1943 184 1942 189 1942 L 222 1942 C 227 1942 231 1943 233 1947 L 253 1970 C 254 1971 254 1972 253 1974 L 233 1997 C 231 2000 227 2002 222 2002 L 189 2002 C 184 2002 180 2000 178 1997 L 158 1974 C 157 1972 157 1971 158 1970 L 178 1947 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="206" y="1969">first</text>
-      <text x="206" y="1983">finger down</text>
-    </g>
-    <path d="M 275 1882 L 233 1937" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 229 1941 L 231 1933 L 233 1937 L 236 1937 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1265 204 C 1281 210 1298 210 1315 204 C 1331 198 1348 198 1365 204 L 1365 257 C 1348 251 1331 251 1315 257 C 1298 263 1281 263 1265 257 L 1265 204 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1315" y="235">TOUCH_TOUCH</text>
-    </g>
-    <path d="M 998 593 C 1014 599 1031 599 1048 593 C 1064 587 1081 587 1098 593 L 1098 646 C 1081 640 1064 640 1048 646 C 1031 652 1014 652 998 646 L 998 593 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1048" y="624">TOUCH_IDLE</text>
-    </g>
-    <path d="M 1046 465 L 1047 581" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1047 586 L 1044 579 L 1047 581 L 1051 579 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1047 652 L 1046 713" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1046 718 L 1043 711 L 1046 713 L 1050 711 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1316 165 L 1315 192" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1315 197 L 1312 190 L 1315 192 L 1319 190 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1316 263 L 1318 288" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1318 293 L 1314 287 L 1318 288 L 1321 286 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1462 504 C 1478 510 1495 510 1512 504 C 1528 498 1545 498 1562 504 L 1562 557 C 1545 551 1528 551 1512 557 C 1495 563 1478 563 1462 557 L 1462 504 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1512" y="535">TOUCH_DEAD</text>
-    </g>
-    <path d="M 1443 465 L 1473 494" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1477 497 L 1470 495 L 1473 494 L 1475 490 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1568 465 L 1543 493" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1540 497 L 1542 490 L 1543 493 L 1547 494 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1515 563 L 1516 573" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1517 578 L 1512 572 L 1516 573 L 1519 571 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1199 960 L 1188 914" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1187 909 L 1192 915 L 1188 914 L 1185 916 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1187 808 L 1187 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1187 701 L 1190 708 L 1187 706 L 1183 708 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+      <text x="470.25" y="1216.75">
+        phys</text>
+      <text x="470.25" y="1230.75">
+        button</text>
+      <text x="470.25" y="1244.75">
+        press</text>
+    </g>
+    <path d="M 1399 956 L 525.11 1211.21" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 520.07 1212.69 L 525.81 1207.36 L 525.11 1211.21 L 527.77 1214.08 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 461.22 2027.1 C 462.36 2023.9 464.22 2022.04 466.18 2022.12 L 534.64 2022.12 C 536.2 2022.08 537.7 2022.63 538.67 2023.61 C 539.65 2024.59 539.99 2025.88 539.6 2027.1 L 520.75 2076.9 C 519.61 2080.1 517.75 2081.96 515.79 2081.88 L 446.34 2081.88 C 444.95 2081.69 443.73 2081.05 442.97 2080.1 C 442.22 2079.15 442 2077.99 442.37 2076.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="490.75" y="2048.75">
+        button 1</text>
+      <text x="490.75" y="2062.75">
+        release</text>
+    </g>
+    <path d="M 471 1257 L 489.84 2015.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 489.97 2020.88 L 486.3 2013.97 L 489.84 2015.63 L 493.3 2013.8 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1071 2281 L 1489.25 2479.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1493.99 2481.52 L 1486.17 2481.69 L 1489.25 2479.27 L 1489.16 2475.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1071 1193 L 525.36 1223.64" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 520.12 1223.94 L 526.91 1220.05 L 525.36 1223.64 L 527.3 1227.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 865 1487 L 521.32 1260.5" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 516.93 1257.62 L 524.7 1258.54 L 521.32 1260.5 L 520.85 1264.39 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1038 1487 L 524.79 1251.65" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
+    <path d="M 520.02 1249.47 L 527.84 1249.2 L 524.79 1251.65 L 524.92 1255.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="643.5" y="1839" width="130" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="708.25" y="1862.75">
+        DRAGGING_WAIT</text>
+    </g>
+    <path d="M 775.04 1944 C 777.84 1940.86 781.82 1939.05 786.02 1939 L 819.99 1939 C 824.19 1939.05 828.17 1940.86 830.97 1944 L 850.95 1967 C 851.51 1968.28 851.51 1969.72 850.95 1971 L 830.97 1994 C 828.17 1997.14 824.19 1998.95 819.99 1999 L 786.02 1999 C 781.82 1998.95 777.84 1997.14 775.04 1994 L 755.06 1971 C 754.5 1969.72 754.5 1968.28 755.06 1967 L 775.04 1944 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="802.75" y="1972.75">
+        timeout</text>
+    </g>
+    <path d="M 699 1785 L 707.84 1832.74" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 708.8 1837.9 L 704.08 1831.66 L 707.84 1832.74 L 710.96 1830.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 726 1879 L 772.88 1934.15" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 776.28 1938.15 L 769.08 1935.08 L 772.88 1934.15 L 774.41 1930.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 852 1974 L 877.68 1977.21" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 882.89 1977.86 L 875.51 1980.47 L 877.68 1977.21 L 876.38 1973.52 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 595.54 1944 C 598.34 1940.86 602.32 1939.05 606.52 1939 L 640.49 1939 C 644.69 1939.05 648.67 1940.86 651.47 1944 L 671.45 1967 C 672.01 1968.28 672.01 1969.72 671.45 1971 L 651.47 1994 C 648.67 1997.14 644.69 1998.95 640.49 1999 L 606.52 1999 C 602.32 1998.95 598.34 1997.14 595.54 1994 L 575.56 1971 C 575 1969.72 575 1968.28 575.56 1967 L 595.54 1944 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="623.25" y="1965.75">
+        first</text>
+      <text x="623.25" y="1979.75">
+        finger down</text>
+    </g>
+    <path d="M 693 1879 L 650.87 1933.95" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 647.68 1938.11 L 649.16 1930.43 L 650.87 1933.95 L 654.72 1934.69 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1682.5 201.7 C 1698.62 207.91 1716.38 207.91 1732.5 201.7 C 1748.62 195.5 1766.38 195.5 1782.5 201.7 L 1782.5 254.28 C 1766.38 248.08 1748.62 248.08 1732.5 254.28 C 1716.38 260.49 1698.62 260.49 1682.5 254.28 L 1682.5 201.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1732.25" y="231.75">
+        TOUCH_TOUCH</text>
+    </g>
+    <path d="M 1415.5 590.7 C 1431.62 596.91 1449.38 596.91 1465.5 590.7 C 1481.62 584.5 1499.38 584.5 1515.5 590.7 L 1515.5 643.28 C 1499.38 637.08 1481.62 637.08 1465.5 643.28 C 1449.38 649.49 1431.62 649.49 1415.5 643.28 L 1415.5 590.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1465.25" y="620.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 1464 462 L 1464.95 578.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1464.99 583.88 L 1461.43 576.91 L 1464.95 578.63 L 1468.43 576.85 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1465 650 L 1464.1 710.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1464.02 715.88 L 1460.62 708.83 L 1464.1 710.63 L 1467.62 708.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1734 162 L 1733.19 189.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1733.03 194.88 L 1729.74 187.78 L 1733.19 189.63 L 1736.74 187.99 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1734 261 L 1735.59 285.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1735.93 290.88 L 1731.98 284.12 L 1735.59 285.65 L 1738.97 283.67 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1879.5 501.7 C 1895.62 507.91 1913.38 507.91 1929.5 501.7 C 1945.62 495.5 1963.38 495.5 1979.5 501.7 L 1979.5 554.28 C 1963.38 548.08 1945.62 548.08 1929.5 554.28 C 1913.38 560.49 1895.62 560.49 1879.5 554.28 L 1879.5 501.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1929.25" y="531.75">
+        TOUCH_DEAD</text>
+    </g>
+    <path d="M 1861 462 L 1891.43 491.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1895.2 495.22 L 1887.74 492.85 L 1891.43 491.56 L 1892.62 487.83 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1986 462 L 1961.13 491.16" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1957.73 495.15 L 1959.61 487.55 L 1961.13 491.16 L 1964.93 492.09 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1933 561 L 1934.21 570.68" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1934.86 575.89 L 1930.52 569.38 L 1934.21 570.68 L 1937.47 568.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1617 957 L 1606.43 911.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1605.25 906.09 L 1610.24 912.12 L 1606.43 911.2 L 1603.42 913.7 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1605 805 L 1605 703.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1605 698.12 L 1608.5 705.12 L 1605 703.37 L 1601.5 705.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
-      <rect fill="#ffffff" stroke="none" x="1177" y="748" width="20" height="14" stroke-width="0"/>
-      <text x="1187" y="757">yes</text>
-    </g>
-    <path d="M 1794 951 C 1810 957 1827 957 1844 951 C 1860 945 1877 945 1894 951 L 1894 1004 C 1877 998 1860 998 1844 1004 C 1827 1010 1810 1010 1794 1004 L 1794 951 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1844" y="982">TOUCH_DEAD</text>
-    </g>
-    <path d="M 1850 1075 L 1856 1113" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1857 1118 L 1853 1112 L 1856 1113 L 1859 1111 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1761 947 L 1788 957" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1792 959 L 1785 960 L 1788 957 L 1787 953 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1635 987 L 1787 980" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1792 980 L 1786 984 L 1787 980 L 1785 977 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1945 881 C 1961 887 1978 887 1995 881 C 2011 875 2028 875 2045 881 L 2045 934 C 2028 928 2011 928 1995 934 C 1978 940 1961 940 1945 934 L 1945 881 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1995" y="912">TOUCH_IDLE</text>
-    </g>
-    <path d="M 2002 1220 L 1995 946" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1995 941 L 1999 948 L 1995 946 L 1992 948 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1422 761 C 1438 767 1455 767 1472 761 C 1488 755 1505 755 1522 761 L 1522 814 C 1505 808 1488 808 1472 814 C 1455 820 1438 820 1422 814 L 1422 761 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1472" y="792">TOUCH_TOUCH</text>
-    </g>
-    <path d="M 1483 730 L 1479 749" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1478 754 L 1476 746 L 1479 749 L 1483 748 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1245 465 L 1445 750" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1448 754 L 1441 750 L 1445 750 L 1447 746 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1285 673 C 1301 679 1318 679 1335 673 C 1351 667 1368 667 1385 673 L 1385 726 C 1368 720 1351 720 1335 726 C 1318 732 1301 732 1285 726 L 1285 673 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1335" y="704">TOUCH_IDLE</text>
-    </g>
-    <path d="M 1230 605 L 1294 663" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1298 666 L 1290 664 L 1294 663 L 1295 659 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1285 786 C 1301 792 1318 792 1335 786 C 1351 780 1368 780 1385 786 L 1385 839 C 1368 833 1351 833 1335 839 C 1318 845 1301 845 1285 839 L 1285 786 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1335" y="817">TOUCH_IDLE</text>
+      <rect fill="#ffffff" stroke="none" x="1597" y="745" width="18" height="14" stroke-width="0"/>
+      <text x="1605" y="754.5">
+        yes</text>
+    </g>
+    <path d="M 2211.5 948.7 C 2227.62 954.91 2245.38 954.91 2261.5 948.7 C 2277.62 942.5 2295.38 942.5 2311.5 948.7 L 2311.5 1001.28 C 2295.38 995.08 2277.62 995.08 2261.5 1001.28 C 2245.38 1007.49 2227.62 1007.49 2211.5 1001.28 L 2211.5 948.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2261.25" y="978.75">
+        TOUCH_DEAD</text>
+    </g>
+    <path d="M 2268 1073 L 2274 1110.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2274.82 1115.9 L 2270.27 1109.53 L 2274 1110.71 L 2277.18 1108.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2179 945 L 2206.02 954.82" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2210.95 956.62 L 2203.17 957.52 L 2206.02 954.82 L 2205.57 950.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2053 985 L 2205.64 977.32" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2210.88 977.06 L 2204.07 980.9 L 2205.64 977.32 L 2203.72 973.91 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2362.5 878.7 C 2378.62 884.91 2396.38 884.91 2412.5 878.7 C 2428.62 872.5 2446.38 872.5 2462.5 878.7 L 2462.5 931.28 C 2446.38 925.08 2428.62 925.08 2412.5 931.28 C 2396.38 937.49 2378.62 937.49 2362.5 931.28 L 2362.5 878.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2412.25" y="908.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 2420 1217 L 2413.16 944.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2413.03 939.12 L 2416.7 946.03 L 2413.16 944.37 L 2409.7 946.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1839.5 758.7 C 1855.62 764.91 1873.38 764.91 1889.5 758.7 C 1905.62 752.5 1923.38 752.5 1939.5 758.7 L 1939.5 811.28 C 1923.38 805.08 1905.62 805.08 1889.5 811.28 C 1873.38 817.49 1855.62 817.49 1839.5 811.28 L 1839.5 758.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1889.25" y="788.75">
+        TOUCH_TOUCH</text>
+    </g>
+    <path d="M 1901 727 L 1897.2 746.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1896.21 751.9 L 1894.1 744.37 L 1897.2 746.75 L 1900.97 745.69 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1663 462 L 1863.34 747.79" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1866.36 752.08 L 1859.47 748.36 L 1863.34 747.79 L 1865.21 744.34 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1702.5 670.7 C 1718.62 676.91 1736.38 676.91 1752.5 670.7 C 1768.62 664.5 1786.38 664.5 1802.5 670.7 L 1802.5 723.28 C 1786.38 717.08 1768.62 717.08 1752.5 723.28 C 1736.38 729.49 1718.62 729.49 1702.5 723.28 L 1702.5 670.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1752.25" y="700.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 1648 602 L 1712.3 660.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1716.17 664.25 L 1708.65 662.11 L 1712.3 660.71 L 1713.36 656.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1702.5 783.7 C 1718.62 789.91 1736.38 789.91 1752.5 783.7 C 1768.62 777.5 1786.38 777.5 1802.5 783.7 L 1802.5 836.28 C 1786.38 830.08 1768.62 830.08 1752.5 836.28 C 1736.38 842.49 1718.62 842.49 1702.5 836.28 L 1702.5 783.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1752.25" y="813.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 1755 977 L 1753.1 849.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1753.02 844.12 L 1756.62 851.06 L 1753.1 849.37 L 1749.62 851.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2011.5 1088.7 C 2027.62 1094.91 2045.38 1094.91 2061.5 1088.7 C 2077.62 1082.5 2095.38 1082.5 2111.5 1088.7 L 2111.5 1141.28 C 2095.38 1135.08 2077.62 1135.08 2061.5 1141.28 C 2045.38 1147.49 2027.62 1147.49 2011.5 1141.28 L 2011.5 1088.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2061.25" y="1118.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 2104 1222 L 2076.39 1153.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2074.42 1149.04 L 2080.29 1154.21 L 2076.39 1153.9 L 2073.81 1156.84 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1986.5 1320.7 C 2002.62 1326.91 2020.38 1326.91 2036.5 1320.7 C 2052.62 1314.5 2070.38 1314.5 2086.5 1320.7 L 2086.5 1373.28 C 2070.38 1367.08 2052.62 1367.08 2036.5 1373.28 C 2020.38 1379.49 2002.62 1379.49 1986.5 1373.28 L 1986.5 1320.7 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2036.25" y="1350.75">
+        TOUCH_TOUCH</text>
+    </g>
+    <path d="M 2213 1276 L 2092.9 1324.61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2088.04 1326.58 L 2093.21 1320.71 L 2092.9 1324.61 L 2095.84 1327.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2275.5 2325.7 C 2291.62 2331.91 2309.38 2331.91 2325.5 2325.7 C 2341.62 2319.5 2359.38 2319.5 2375.5 2325.7 L 2375.5 2378.28 C 2359.38 2372.08 2341.62 2372.08 2325.5 2378.28 C 2309.38 2384.49 2291.62 2384.49 2275.5 2378.28 L 2275.5 2325.7 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2325.25" y="2348.75">
+        that finger</text>
+      <text x="2325.25" y="2362.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 2086 2356 L 2269.63 2353.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2274.88 2353.02 L 2267.94 2356.63 L 2269.63 2353.1 L 2267.83 2349.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1958.5 1660.7 C 1974.62 1666.91 1992.38 1666.91 2008.5 1660.7 C 2024.62 1654.5 2042.38 1654.5 2058.5 1660.7 L 2058.5 1713.28 C 2042.38 1707.08 2024.62 1707.08 2008.5 1713.28 C 1992.38 1719.49 1974.62 1719.49 1958.5 1713.28 L 1958.5 1660.7 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="2008.25" y="1690.75">
+        TOUCH_DEAD</text>
+    </g>
+    <path d="M 2054 1582 L 2024.56 1649.17" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2022.45 1653.98 L 2022.05 1646.16 L 2024.56 1649.17 L 2028.46 1648.97 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1955 1592 L 1986.91 1649.43" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1989.46 1654.02 L 1983 1649.6 L 1986.91 1649.43 L 1989.12 1646.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1804 1592 L 1804 1643.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1804 1648.88 L 1800.5 1641.88 L 1804 1643.63 L 1807.5 1641.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1887.5 1957.7 C 1903.62 1963.91 1921.38 1963.91 1937.5 1957.7 C 1953.62 1951.5 1971.38 1951.5 1987.5 1957.7 L 1987.5 2010.28 C 1971.38 2004.08 1953.62 2004.08 1937.5 2010.28 C 1921.38 2016.49 1903.62 2016.49 1887.5 2010.28 L 1887.5 1957.7 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="1937.25" y="1980.75">
+        that finger</text>
+      <text x="1937.25" y="1994.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 1786 1977 L 1881.64 1981.69" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1886.88 1981.95 L 1879.72 1985.1 L 1881.64 1981.69 L 1880.06 1978.11 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1827 1750 L 1919.29 1946.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1921.52 1950.99 L 1915.38 1946.14 L 1919.29 1946.24 L 1921.71 1943.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
+      <rect fill="#ffffff" stroke="none" x="1868" y="1845" width="15" height="14" stroke-width="0"/>
+      <text x="1874.5" y="1854.5">
+        no</text>
     </g>
-    <path d="M 1337 980 L 1335 851" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1335 846 L 1339 853 L 1335 851 L 1332 853 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1594 1091 C 1610 1097 1627 1097 1644 1091 C 1660 1085 1677 1085 1694 1091 L 1694 1144 C 1677 1138 1660 1138 1644 1144 C 1627 1150 1610 1150 1594 1144 L 1594 1091 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1252.5 1090.7 C 1268.62 1096.91 1286.38 1096.91 1302.5 1090.7 C 1318.62 1084.5 1336.38 1084.5 1352.5 1090.7 L 1352.5 1143.28 C 1336.38 1137.08 1318.62 1137.08 1302.5 1143.28 C 1286.38 1149.49 1268.62 1149.49 1252.5 1143.28 L 1252.5 1090.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1644" y="1122">TOUCH_IDLE</text>
+      <text x="1302.25" y="1120.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 1686 1225 L 1659 1156" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1657 1151 L 1663 1156 L 1659 1156 L 1656 1159 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1569 1323 C 1585 1329 1602 1329 1619 1323 C 1635 1317 1652 1317 1669 1323 L 1669 1376 C 1652 1370 1635 1370 1619 1376 C 1602 1382 1585 1382 1569 1376 L 1569 1323 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1364 1067 L 1346.93 1080.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1342.87 1084.29 L 1346.07 1077.15 L 1346.93 1080.97 L 1350.5 1082.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 594 984.2 C 610.12 990.41 627.88 990.41 644 984.2 C 660.12 978 677.88 978 694 984.2 L 694 1036.78 C 677.88 1030.58 660.12 1030.58 644 1036.78 C 627.88 1042.99 610.12 1042.99 594 1036.78 L 594 984.2 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1619" y="1354">TOUCH_TOUCH</text>
+      <text x="643.75" y="1014.25">
+        TOUCH_IDLE</text>
     </g>
-    <path d="M 1795 1279 L 1674 1327" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1670 1329 L 1675 1323 L 1674 1327 L 1677 1330 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1858 2328 C 1874 2334 1891 2334 1908 2328 C 1924 2322 1941 2322 1958 2328 L 1958 2381 C 1941 2375 1924 2375 1908 2381 C 1891 2387 1874 2387 1858 2381 L 1858 2328 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1052.5 1373.7 C 1068.62 1379.91 1086.38 1379.91 1102.5 1373.7 C 1118.62 1367.5 1136.38 1367.5 1152.5 1373.7 L 1152.5 1426.28 C 1136.38 1420.08 1118.62 1420.08 1102.5 1426.28 C 1086.38 1432.49 1068.62 1432.49 1052.5 1426.28 L 1052.5 1373.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1908" y="2352">that finger</text>
-      <text x="1908" y="2366">TOUCH_IDLE</text>
+      <text x="1102.25" y="1403.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 1668 2359 L 1851 2356" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1856 2355 L 1849 2359 L 1851 2356 L 1849 2352 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1541 1663 C 1557 1669 1574 1669 1591 1663 C 1607 1657 1624 1657 1641 1663 L 1641 1716 C 1624 1710 1607 1710 1591 1716 C 1574 1722 1557 1722 1541 1716 L 1541 1663 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1124 1307 L 1111.42 1361.79" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1110.25 1366.91 L 1108.4 1359.3 L 1111.42 1361.79 L 1115.23 1360.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 860.5 1353.7 C 876.62 1359.91 894.38 1359.91 910.5 1353.7 C 926.62 1347.5 944.38 1347.5 960.5 1353.7 L 960.5 1406.28 C 944.38 1400.08 926.62 1400.08 910.5 1406.28 C 894.38 1412.49 876.62 1412.49 860.5 1406.28 L 860.5 1353.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1591" y="1694">TOUCH_DEAD</text>
+      <text x="910.25" y="1383.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 1636 1585 L 1607 1651" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1605 1656 L 1604 1648 L 1607 1651 L 1611 1651 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1537 1595 L 1569 1652" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1572 1656 L 1565 1652 L 1569 1652 L 1571 1648 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1386 1595 L 1386 1646" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1386 1651 L 1382 1644 L 1386 1646 L 1389 1644 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1470 1960 C 1486 1966 1503 1966 1520 1960 C 1536 1954 1553 1954 1570 1960 L 1570 2013 C 1553 2007 1536 2007 1520 2013 C 1503 2019 1486 2019 1470 2013 L 1470 1960 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 813 1312 L 858.8 1344.33" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 863.09 1347.36 L 855.35 1346.18 L 858.8 1344.33 L 859.39 1340.46 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 957 1307 L 934.41 1342.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 931.6 1347.06 L 932.39 1339.27 L 934.41 1342.62 L 938.3 1343.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 642.5 1725.7 C 658.62 1731.91 676.38 1731.91 692.5 1725.7 C 708.62 1719.5 726.38 1719.5 742.5 1725.7 L 742.5 1778.28 C 726.38 1772.08 708.62 1772.08 692.5 1778.28 C 676.38 1784.49 658.62 1784.49 642.5 1778.28 L 642.5 1725.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1520" y="1984">that finger</text>
-      <text x="1520" y="1998">TOUCH_IDLE</text>
-    </g>
-    <path d="M 1368 1980 L 1463 1984" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1468 1984 L 1461 1987 L 1463 1984 L 1462 1980 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1409 1753 L 1501 1948" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1504 1953 L 1498 1948 L 1501 1948 L 1504 1945 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
-      <rect fill="#ffffff" stroke="none" x="1450" y="1847" width="14" height="14" stroke-width="0"/>
-      <text x="1457" y="1857">no</text>
+      <text x="692.25" y="1755.75">
+        TOUCH_IDLE</text>
     </g>
-    <path d="M 835 1093 C 851 1099 868 1099 885 1093 C 901 1087 918 1087 935 1093 L 935 1146 C 918 1140 901 1140 885 1146 C 868 1152 851 1152 835 1146 L 835 1093 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 729 1672 L 696.82 1714.91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 693.67 1719.11 L 695.07 1711.41 L 696.82 1714.91 L 700.67 1715.61 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 612.5 1488.7 C 628.62 1494.91 646.38 1494.91 662.5 1488.7 C 678.62 1482.5 696.38 1482.5 712.5 1488.7 L 712.5 1541.28 C 696.38 1535.08 678.62 1535.08 662.5 1541.28 C 646.38 1547.49 628.62 1547.49 612.5 1541.28 L 612.5 1488.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="885" y="1124">TOUCH_TOUCH</text>
+      <text x="662.25" y="1518.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 946 1070 L 929 1083" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 925 1086 L 928 1079 L 929 1083 L 933 1085 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 845 1364 C 861 1370 879 1370 895 1364 C 911 1358 929 1358 945 1364 L 945 1416 C 929 1410 911 1410 895 1416 C 879 1423 861 1423 845 1416 L 845 1364 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 575 1969 L 573.5 1969 Q 572 1969 572 1959 L 572 1525 Q 572 1515 582 1515 L 606.63 1515" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 611.88 1515 L 604.88 1518.5 L 606.63 1515 L 604.88 1511.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 713 1513 L 823.64 1509.22" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 828.88 1509.04 L 822.01 1512.78 L 823.64 1509.22 L 821.77 1505.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 918.5 1820.7 C 934.62 1826.91 952.38 1826.91 968.5 1820.7 C 984.62 1814.5 1002.38 1814.5 1018.5 1820.7 L 1018.5 1873.28 C 1002.38 1867.08 984.62 1867.08 968.5 1873.28 C 952.38 1879.49 934.62 1879.49 918.5 1873.28 L 918.5 1820.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="895" y="1394">TOUCH_IDLE</text>
+      <text x="968.25" y="1850.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 880 1310 L 893 1351" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 895 1357 L 889 1351 L 893 1351 L 896 1349 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 635 1376 C 651 1382 668 1382 685 1376 C 701 1370 718 1370 735 1376 L 735 1429 C 718 1423 701 1423 685 1429 C 668 1435 651 1435 635 1429 L 635 1376 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 867 1791 L 913.39 1815.98" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 918.02 1818.47 L 910.19 1818.23 L 913.39 1815.98 L 913.51 1812.07 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 867.5 1615.7 C 883.62 1621.91 901.38 1621.91 917.5 1615.7 C 933.62 1609.5 951.38 1609.5 967.5 1615.7 L 967.5 1668.28 C 951.38 1662.08 933.62 1662.08 917.5 1668.28 C 901.38 1674.49 883.62 1674.49 867.5 1668.28 L 867.5 1615.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="685" y="1407">TOUCH_TOUCH</text>
+      <text x="917.25" y="1645.75">
+        TOUCH_IDLE</text>
     </g>
-    <path d="M 706 1310 L 693 1364" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 692 1369 L 690 1361 L 693 1364 L 697 1363 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 443 1356 C 459 1362 476 1362 493 1356 C 509 1350 526 1350 543 1356 L 543 1409 C 526 1403 509 1403 493 1409 C 476 1415 459 1415 443 1409 L 443 1356 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 927 1704 L 923.08 1681.28" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 922.19 1676.1 L 926.83 1682.41 L 923.08 1681.28 L 919.93 1683.59 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1032.5 1731.7 C 1048.62 1737.91 1066.38 1737.91 1082.5 1731.7 C 1098.62 1725.5 1116.38 1725.5 1132.5 1731.7 L 1132.5 1784.28 C 1116.38 1778.08 1098.62 1778.08 1082.5 1784.28 C 1066.38 1790.49 1048.62 1790.49 1032.5 1784.28 L 1032.5 1731.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="493" y="1387">TOUCH_DEAD</text>
+      <text x="1082.25" y="1761.75">
+        TOUCH_IDLE</text>
     </g>
-    <path d="M 415 1310 L 453 1346" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 457 1349 L 449 1347 L 453 1346 L 454 1342 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 539 1310 L 516 1345" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 514 1349 L 514 1341 L 516 1345 L 520 1345 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 225 1728 C 241 1734 258 1734 275 1728 C 291 1722 308 1722 325 1728 L 325 1781 C 308 1775 291 1775 275 1781 C 258 1787 241 1787 225 1781 L 225 1728 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1097 1700 L 1092.43 1719.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1091.25 1724.91 L 1089.42 1717.3 L 1092.43 1719.8 L 1096.24 1718.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1231.5 2011.7 C 1247.62 2017.91 1265.38 2017.91 1281.5 2011.7 C 1297.62 2005.5 1315.38 2005.5 1331.5 2011.7 L 1331.5 2064.28 C 1315.38 2058.08 1297.62 2058.08 1281.5 2064.28 C 1265.38 2070.49 1247.62 2070.49 1231.5 2064.28 L 1231.5 2011.7 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="275" y="1759">TOUCH_IDLE</text>
+      <text x="1281.25" y="2041.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 311 1675 L 278 1717" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 275 1721 L 277 1714 L 278 1717 L 282 1718 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 195 1491 C 211 1497 228 1497 245 1491 C 261 1485 278 1485 295 1491 L 295 1544 C 278 1538 261 1538 245 1544 C 228 1550 211 1550 195 1544 L 195 1491 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1202 1672 L 1272.66 1999.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1273.76 2004.91 L 1268.87 1998.8 L 1272.66 1999.77 L 1275.71 1997.33 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2163.5 778.7 C 2179.62 784.91 2197.38 784.91 2213.5 778.7 C 2229.62 772.5 2247.38 772.5 2263.5 778.7 L 2263.5 831.28 C 2247.38 825.08 2229.62 825.08 2213.5 831.28 C 2197.38 837.49 2179.62 837.49 2163.5 831.28 L 2163.5 778.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="245" y="1522">TOUCH_TOUCH</text>
+      <text x="2213.25" y="808.75">
+        TOUCH_IDLE</text>
     </g>
-    <path d="M 157 1972 L 156 1972 Q 154 1972 154 1962 L 154 1528 Q 154 1518 164 1518 L 188 1518" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 193 1518 L 186 1521 L 188 1518 L 186 1514 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 295 1516 L 406 1512" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 411 1512 L 404 1516 L 406 1512 L 404 1509 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 501 1823 C 517 1829 534 1829 551 1823 C 567 1817 584 1817 601 1823 L 601 1876 C 584 1870 567 1870 551 1876 C 534 1882 517 1882 501 1876 L 501 1823 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2159 760 L 2169.19 768.83" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2173.16 772.27 L 2165.57 770.33 L 2169.19 768.83 L 2170.16 765.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1811.5 1190.7 C 1827.62 1196.91 1845.38 1196.91 1861.5 1190.7 C 1877.62 1184.5 1895.38 1184.5 1911.5 1190.7 L 1911.5 1243.28 C 1895.38 1237.08 1877.62 1237.08 1861.5 1243.28 C 1845.38 1249.49 1827.62 1249.49 1811.5 1243.28 L 1811.5 1190.7 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="551" y="1854">TOUCH_TOUCH</text>
+      <text x="1861.25" y="1220.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 449 1793 L 495 1819" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 500 1821 L 492 1821 L 495 1819 L 495 1815 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 450 1618 C 466 1624 483 1624 500 1618 C 516 1612 533 1612 550 1618 L 550 1671 C 533 1665 516 1665 500 1671 C 483 1677 466 1677 450 1671 L 450 1618 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1884 1053 L 1866.86 1178.69" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1866.15 1183.89 L 1863.63 1176.48 L 1866.86 1178.69 L 1870.56 1177.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1437.5 2666.7 C 1453.62 2672.91 1471.38 2672.91 1487.5 2666.7 C 1503.62 2660.5 1521.38 2660.5 1537.5 2666.7 L 1537.5 2719.28 C 1521.38 2713.08 1503.62 2713.08 1487.5 2719.28 C 1471.38 2725.49 1453.62 2725.49 1437.5 2719.28 L 1437.5 2666.7 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="500" y="1649">TOUCH_IDLE</text>
+      <text x="1487.25" y="2689.75">
+        that finger</text>
+      <text x="1487.25" y="2703.75">
+        TOUCH_IDLE</text>
     </g>
-    <path d="M 509 1707 L 505 1683" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 505 1678 L 509 1685 L 505 1683 L 502 1686 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 615 1734 C 631 1740 648 1740 665 1734 C 681 1728 698 1728 715 1734 L 715 1787 C 698 1781 681 1781 665 1787 C 648 1793 631 1793 615 1787 L 615 1734 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1483 2632 L 1484.56 2654.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1484.92 2659.88 L 1480.95 2653.14 L 1484.56 2654.65 L 1487.93 2652.66 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2620 1851.2 C 2636.12 1857.41 2653.88 1857.41 2670 1851.2 C 2686.12 1845 2703.88 1845 2720 1851.2 L 2720 1903.78 C 2703.88 1897.58 2686.12 1897.58 2670 1903.78 C 2653.88 1909.99 2636.12 1909.99 2620 1903.78 L 2620 1851.2 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="665" y="1765">TOUCH_IDLE</text>
+      <text x="2669.75" y="1881.25">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 679 1703 L 674 1722" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 673 1727 L 671 1719 L 674 1722 L 678 1721 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 835 1821 C 851 1827 868 1827 885 1821 C 901 1815 918 1815 935 1821 L 935 1874 C 918 1868 901 1868 885 1874 C 868 1880 851 1880 835 1874 L 835 1821 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2672 887 L 2672 1482 Q 2672 1492 2672 1502 L 2672 1838.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2672 1843.88 L 2668.5 1836.88 L 2672 1838.63 L 2675.5 1836.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2619.5 1901.7 C 2635.62 1907.91 2653.38 1907.91 2669.5 1901.7 C 2685.62 1895.5 2703.38 1895.5 2719.5 1901.7 L 2719.5 1954.28 C 2703.38 1948.08 2685.62 1948.08 2669.5 1954.28 C 2653.38 1960.49 2635.62 1960.49 2619.5 1954.28 L 2619.5 1901.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="885" y="1852">TOUCH_TOUCH</text>
+      <text x="2669.25" y="1931.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 793 1675 L 864 1809" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 867 1814 L 860 1810 L 864 1809 L 867 1806 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1746 781 C 1762 787 1779 787 1796 781 C 1812 775 1829 775 1846 781 L 1846 834 C 1829 828 1812 828 1796 834 C 1779 840 1762 840 1746 834 L 1746 781 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2619.5 1951.7 C 2635.62 1957.91 2653.38 1957.91 2669.5 1951.7 C 2685.62 1945.5 2703.38 1945.5 2719.5 1951.7 L 2719.5 2004.28 C 2703.38 1998.08 2685.62 1998.08 2669.5 2004.28 C 2653.38 2010.49 2635.62 2010.49 2619.5 2004.28 L 2619.5 1951.7 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1796" y="812">TOUCH_IDLE</text>
+      <text x="2669.25" y="1981.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 1741 763 L 1751 771" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1755 774 L 1748 773 L 1751 771 L 1752 767 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1394 1193 C 1410 1199 1427 1199 1444 1193 C 1460 1187 1477 1187 1494 1193 L 1494 1246 C 1477 1240 1460 1240 1444 1246 C 1427 1252 1410 1252 1394 1246 L 1394 1193 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 703 2132.2 C 719.12 2138.41 736.88 2138.41 753 2132.2 C 769.12 2126 786.88 2126 803 2132.2 L 803 2184.78 C 786.88 2178.58 769.12 2178.58 753 2184.78 C 736.88 2190.99 719.12 2190.99 703 2184.78 L 703 2132.2 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1444" y="1224">TOUCH_TOUCH</text>
+      <text x="752.75" y="2162.25">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 1466 1056 L 1449 1181" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1448 1186 L 1446 1179 L 1449 1181 L 1453 1180 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1020 2669 C 1036 2675 1053 2675 1070 2669 C 1086 2663 1103 2663 1120 2669 L 1120 2722 C 1103 2716 1086 2716 1070 2722 C 1053 2728 1036 2728 1020 2722 L 1020 2669 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 540 2072 L 697.1 2135.61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 701.96 2137.58 L 694.16 2138.2 L 697.1 2135.61 L 696.79 2131.71 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 845.5 2185.7 C 861.62 2191.91 879.38 2191.91 895.5 2185.7 C 911.62 2179.5 929.38 2179.5 945.5 2185.7 L 945.5 2238.28 C 929.38 2232.08 911.62 2232.08 895.5 2238.28 C 879.38 2244.49 861.62 2244.49 845.5 2238.28 L 845.5 2185.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1070" y="2693">that finger</text>
-      <text x="1070" y="2707">TOUCH_IDLE</text>
+      <text x="895.25" y="2215.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 1065 2635 L 1067 2657" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1067 2662 L 1063 2655 L 1067 2657 L 1070 2655 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2202 1854 C 2218 1860 2236 1860 2252 1854 C 2268 1848 2286 1848 2302 1854 L 2302 1906 C 2286 1900 2268 1900 2252 1906 C 2236 1913 2218 1913 2202 1906 L 2202 1854 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 803 2177 L 840.03 2190.78" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 844.95 2192.61 L 837.17 2193.45 L 840.03 2190.78 L 839.61 2186.89 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 970.5 2230.7 C 986.62 2236.91 1004.38 2236.91 1020.5 2230.7 C 1036.62 2224.5 1054.38 2224.5 1070.5 2230.7 L 1070.5 2283.28 C 1054.38 2277.08 1036.62 2277.08 1020.5 2283.28 C 1004.38 2289.49 986.62 2289.49 970.5 2283.28 L 970.5 2230.7 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2252" y="1884">TOUCH_DEAD</text>
+      <text x="1020.25" y="2260.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 2254 890 L 2254 1485 Q 2254 1495 2254 1505 L 2254 1841" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2254 1846 L 2251 1839 L 2254 1841 L 2258 1839 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2202 1904 C 2218 1910 2235 1910 2252 1904 C 2268 1898 2285 1898 2302 1904 L 2302 1957 C 2285 1951 2268 1951 2252 1957 C 2235 1963 2218 1963 2202 1957 L 2202 1904 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 946 2230 L 965.01 2236.84" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 969.95 2238.62 L 962.18 2239.54 L 965.01 2236.84 L 964.55 2232.96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1604.5 805 L 1668 855 L 1604.5 905 L 1541 855 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2252" y="1935">TOUCH_DEAD</text>
+      <text x="1604.25" y="851.75">
+        state ==</text>
+      <text x="1604.25" y="865.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 2202 1954 C 2218 1960 2235 1960 2252 1954 C 2268 1948 2285 1948 2302 1954 L 2302 2007 C 2285 2001 2268 2001 2252 2007 C 2235 2013 2218 2013 2202 2007 L 2202 1954 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1803.5 1650 L 1867 1700 L 1803.5 1750 L 1740 1700 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2252" y="1985">TOUCH_DEAD</text>
+      <text x="1803.25" y="1696.75">
+        that finger state ==</text>
+      <text x="1803.25" y="1710.75">
+        TOUCH_TOUCH</text>
     </g>
-    <path d="M 285 2135 C 301 2141 319 2141 335 2135 C 351 2129 369 2129 385 2135 L 385 2187 C 369 2181 351 2181 335 2187 C 319 2194 301 2194 285 2187 L 285 2135 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="335" y="2165">TOUCH_DEAD</text>
+    <path d="M 1652 805 L 1717.65 734.66" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1721.24 730.82 L 1719.02 738.32 L 1717.65 734.66 L 1713.9 733.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
+      <rect fill="#ffffff" stroke="none" x="1680" y="762" width="15" height="14" stroke-width="0"/>
+      <text x="1687" y="771">
+        no</text>
     </g>
-    <path d="M 122 2074 L 279 2138" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 284 2140 L 276 2141 L 279 2138 L 279 2134 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 428 2188 C 444 2194 461 2194 478 2188 C 494 2182 511 2182 528 2188 L 528 2241 C 511 2235 494 2235 478 2241 C 461 2247 444 2247 428 2241 L 428 2188 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2213.5 1013.7 C 2229.62 1019.91 2247.38 1019.91 2263.5 1013.7 C 2279.62 1007.5 2297.38 1007.5 2313.5 1013.7 L 2313.5 1066.28 C 2297.38 1060.08 2279.62 1060.08 2263.5 1066.28 C 2247.38 1072.49 2229.62 1072.49 2213.5 1066.28 L 2213.5 1013.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="478" y="2219">TOUCH_DEAD</text>
+      <text x="2263.25" y="1043.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 385 2180 L 422 2194" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 426 2195 L 419 2196 L 422 2194 L 421 2190 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 553 2233 C 569 2239 586 2239 603 2233 C 619 2227 636 2227 653 2233 L 653 2286 C 636 2280 619 2280 603 2286 C 586 2292 569 2292 553 2286 L 553 2233 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2263 1008 L 2263 1008" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 2263 1008 L 2263 1008 L 2263 1008 L 2263 1008 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1958.5 1712.7 C 1974.62 1718.91 1992.38 1718.91 2008.5 1712.7 C 2024.62 1706.5 2042.38 1706.5 2058.5 1712.7 L 2058.5 1765.28 C 2042.38 1759.08 2024.62 1759.08 2008.5 1765.28 C 1992.38 1771.49 1974.62 1771.49 1958.5 1765.28 L 1958.5 1712.7 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="603" y="2264">TOUCH_DEAD</text>
+      <text x="2008.25" y="1742.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 528 2233 L 547 2239" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 551 2241 L 544 2242 L 547 2239 L 546 2236 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1187 808 L 1250 858 L 1187 908 L 1123 858 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1958.5 1764.7 C 1974.62 1770.91 1992.38 1770.91 2008.5 1764.7 C 2024.62 1758.5 2042.38 1758.5 2058.5 1764.7 L 2058.5 1817.28 C 2042.38 1811.08 2024.62 1811.08 2008.5 1817.28 C 1992.38 1823.49 1974.62 1823.49 1958.5 1817.28 L 1958.5 1764.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1187" y="855">state ==</text>
-      <text x="1187" y="869">TOUCH_TOUCH</text>
+      <text x="2008.25" y="1794.75">
+        TOUCH_DEAD</text>
     </g>
-    <path d="M 1386 1653 L 1449 1703 L 1386 1753 L 1322 1703 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 224.54 902 C 227.34 898.86 231.32 897.05 235.52 897 L 269.49 897 C 273.69 897.05 277.67 898.86 280.47 902 L 300.45 925 C 301.01 926.28 301.01 927.72 300.45 929 L 280.47 952 C 277.67 955.14 273.69 956.95 269.49 957 L 235.52 957 C 231.32 956.95 227.34 955.14 224.54 952 L 204.56 929 C 204 927.72 204 926.28 204.56 925 L 224.54 902 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1386" y="1700">that finger state ==</text>
-      <text x="1386" y="1714">TOUCH_TOUCH</text>
-    </g>
-    <path d="M 1233 808 L 1300 737" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1303 733 L 1301 740 L 1300 737 L 1296 736 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
-      <rect fill="#ffffff" stroke="none" x="1262" y="764" width="14" height="14" stroke-width="0"/>
-      <text x="1269" y="773">no</text>
+      <text x="252.25" y="923.75">
+        first</text>
+      <text x="252.25" y="937.75">
+        finger down</text>
     </g>
-    <path d="M 1796 1016 C 1812 1022 1829 1022 1846 1016 C 1862 1010 1879 1010 1896 1016 L 1896 1069 C 1879 1063 1862 1063 1846 1069 C 1829 1075 1812 1075 1796 1069 L 1796 1016 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="261.5" y="1063" width="209" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1846" y="1047">TOUCH_DEAD</text>
+      <text x="365.75" y="1086.75">
+        MULTITAP</text>
     </g>
-    <path d="M 1845 1010 L 1845 1010" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1845 1010 L 1845 1010 L 1845 1010 L 1844 1010 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1541 1715 C 1557 1721 1574 1721 1591 1715 C 1607 1709 1624 1709 1641 1715 L 1641 1768 C 1624 1762 1607 1762 1591 1768 C 1574 1774 1557 1774 1541 1768 L 1541 1715 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 456 1023 L 401.3 1059.47" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 396.93 1062.38 L 400.81 1055.58 L 401.3 1059.47 L 404.7 1061.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 351 1063 L 277.74 962.15" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 274.66 957.9 L 281.6 961.51 L 277.74 962.15 L 275.94 965.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 312.54 1182 C 315.34 1178.86 319.32 1177.05 323.52 1177 L 357.49 1177 C 361.69 1177.05 365.67 1178.86 368.47 1182 L 388.45 1205 C 389.01 1206.28 389.01 1207.72 388.45 1209 L 368.47 1232 C 365.67 1235.14 361.69 1236.95 357.49 1237 L 323.52 1237 C 319.32 1236.95 315.34 1235.14 312.54 1232 L 292.56 1209 C 292 1207.72 292 1206.28 292.56 1205 L 312.54 1182 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1591" y="1746">TOUCH_DEAD</text>
-    </g>
-    <path d="M 1541 1767 C 1557 1773 1574 1773 1591 1767 C 1607 1761 1624 1761 1641 1767 L 1641 1820 C 1624 1814 1607 1814 1591 1820 C 1574 1826 1557 1826 1541 1820 L 1541 1767 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
-    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1591" y="1798">TOUCH_DEAD</text>
+      <text x="340.25" y="1210.75">
+        timeout</text>
+    </g>
+    <path d="M 319 1237 L 276.68 1296.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 273.65 1301.09 L 274.83 1293.35 L 276.68 1296.8 L 280.55 1297.4 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 362 1103 L 348.27 1170.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 347.22 1175.9 L 345.18 1168.35 L 348.27 1170.76 L 352.04 1169.74 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <ellipse cx="253" cy="1602" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="252.25" y="1605.75">
+        IDLE</text>
     </g>
+    <path d="M 253 1502 L 253 1565.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 253 1570.88 L 249.5 1563.88 L 253 1565.63 L 256.5 1563.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 594 1004 L 556.33 999.72" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 551.11 999.13 L 558.46 996.44 L 556.33 999.72 L 557.67 1003.39 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 764 1034 L 700.24 1021.25" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 695.1 1020.22 L 702.65 1018.16 L 700.24 1021.25 L 701.27 1025.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <rect x="621.5" y="562" width="209" height="40" rx="2.4" ry="2.4" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="725.75" y="585.75">
+        MULTITAP_DOWN</text>
+    </g>
+    <path d="M 373.22 645.1 C 374.36 641.9 376.22 640.04 378.18 640.12 L 446.64 640.12 C 448.2 640.08 449.7 640.63 450.67 641.61 C 451.65 642.59 451.99 643.88 451.6 645.1 L 432.75 694.9 C 431.61 698.1 429.75 699.96 427.79 699.88 L 358.34 699.88 C 356.95 699.69 355.73 699.05 354.97 698.1 C 354.22 697.15 354 695.99 354.37 694.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="402.75" y="666.75">
+        button 1</text>
+      <text x="402.75" y="680.75">
+        press</text>
+    </g>
+    <path d="M 291 793 L 371.7 704.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 375.25 700.83 L 373.11 708.35 L 371.7 704.7 L 367.94 703.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 452 657 L 646.86 603.68" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 651.92 602.3 L 646.09 607.52 L 646.86 603.68 L 644.25 600.77 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 473.54 685 C 476.34 681.86 480.32 680.05 484.52 680 L 518.49 680 C 522.69 680.05 526.67 681.86 529.47 685 L 549.45 708 C 550.01 709.28 550.01 710.72 549.45 712 L 529.47 735 C 526.67 738.14 522.69 739.95 518.49 740 L 484.52 740 C 480.32 739.95 476.34 738.14 473.54 735 L 453.56 712 C 453 710.72 453 709.28 453.56 708 L 473.54 685 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="501.25" y="706.75">
+        first</text>
+      <text x="501.25" y="720.75">
+        finger up</text>
+    </g>
+    <path d="M 691 602 L 555.54 678.86" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 550.97 681.45 L 555.33 674.95 L 555.54 678.86 L 558.79 681.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 353.22 910.1 C 354.36 906.9 356.22 905.04 358.18 905.12 L 426.64 905.12 C 428.2 905.08 429.7 905.63 430.67 906.61 C 431.65 907.59 431.99 908.88 431.6 910.1 L 412.75 959.9 C 411.61 963.1 409.75 964.96 407.79 964.88 L 338.34 964.88 C 336.95 964.69 335.73 964.05 334.97 963.1 C 334.22 962.15 334 960.99 334.37 959.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="382.75" y="931.75">
+        button 1</text>
+      <text x="382.75" y="945.75">
+        release</text>
+    </g>
+    <path d="M 456 848 L 412.1 900.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 408.72 904.14 L 410.55 896.54 L 412.1 900.13 L 415.91 901.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 762.54 687 C 765.34 683.86 769.32 682.05 773.52 682 L 807.49 682 C 811.69 682.05 815.67 683.86 818.47 687 L 838.45 710 C 839.01 711.28 839.01 712.72 838.45 714 L 818.47 737 C 815.67 740.14 811.69 741.95 807.49 742 L 773.52 742 C 769.32 741.95 765.34 740.14 762.54 737 L 742.56 714 C 742 712.72 742 711.28 742.56 710 L 762.54 687 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="790.25" y="715.75">
+        timeout</text>
+    </g>
+    <path d="M 885.54 685 C 888.34 681.86 892.32 680.05 896.52 680 L 930.49 680 C 934.69 680.05 938.67 681.86 941.47 685 L 961.45 708 C 962.01 709.28 962.01 710.72 961.45 712 L 941.47 735 C 938.67 738.14 934.69 739.95 930.49 740 L 896.52 740 C 892.32 739.95 888.34 738.14 885.54 735 L 865.56 712 C 865 710.72 865 709.28 865.56 708 L 885.54 685 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="913.25" y="706.75">
+        second</text>
+      <text x="913.25" y="720.75">
+        finger down</text>
+    </g>
+    <path d="M 586.54 685 C 589.34 681.86 593.32 680.05 597.52 680 L 631.49 680 C 635.69 680.05 639.67 681.86 642.47 685 L 662.45 708 C 663.01 709.28 663.01 710.72 662.45 712 L 642.47 735 C 639.67 738.14 635.69 739.95 631.49 740 L 597.52 740 C 593.32 739.95 589.34 738.14 586.54 735 L 566.56 712 C 566 710.72 566 709.28 566.56 708 L 586.54 685 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="614.25" y="706.75">
+        move > </text>
+      <text x="614.25" y="720.75">
+        threshold</text>
+    </g>
+    <path d="M 709 602 L 645.18 675.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 641.73 679.16 L 643.7 671.58 L 645.18 675.2 L 648.97 676.18 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 736 602 L 773.15 676.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 775.5 681 L 769.24 676.3 L 773.15 676.3 L 775.5 673.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 755 602 L 864.73 676.43" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 869.07 679.37 L 861.32 678.34 L 864.73 676.43 L 865.25 672.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 651.22 800.1 C 652.36 796.9 654.22 795.04 656.18 795.12 L 724.64 795.12 C 726.2 795.08 727.7 795.63 728.67 796.61 C 729.65 797.59 729.99 798.88 729.6 800.1 L 710.75 849.9 C 709.61 853.1 707.75 854.96 705.79 854.88 L 636.34 854.88 C 634.95 854.69 633.73 854.05 632.97 853.1 C 632.22 852.15 632 850.99 632.37 849.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="680.75" y="821.75">
+        button 1</text>
+      <text x="680.75" y="835.75">
+        release</text>
+    </g>
+    <path d="M 667.22 912.1 C 668.36 908.9 670.22 907.04 672.18 907.12 L 740.64 907.12 C 742.2 907.08 743.7 907.63 744.67 908.61 C 745.65 909.59 745.99 910.88 745.6 912.1 L 726.75 961.9 C 725.61 965.1 723.75 966.96 721.79 966.88 L 652.34 966.88 C 650.95 966.69 649.73 966.05 648.97 965.1 C 648.22 964.15 648 962.99 648.37 961.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="696.75" y="933.75">
+        button 1</text>
+      <text x="696.75" y="947.75">
+        press</text>
+    </g>
+    <path d="M 632 740 L 660.8 789.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 663.44 794.03 L 656.89 789.74 L 660.8 789.5 L 662.94 786.22 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 685 855 L 692.03 900.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 692.83 905.9 L 688.31 899.51 L 692.03 900.71 L 695.22 898.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 711 967 L 892.23 1342.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 894.51 1346.99 L 888.32 1342.21 L 892.23 1342.27 L 894.62 1339.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 782.22 802.1 C 783.36 798.9 785.22 797.04 787.18 797.12 L 855.64 797.12 C 857.2 797.08 858.7 797.63 859.67 798.61 C 860.65 799.59 860.99 800.88 860.6 802.1 L 841.75 851.9 C 840.61 855.1 838.75 856.96 836.79 856.88 L 767.34 856.88 C 765.95 856.69 764.73 856.05 763.97 855.1 C 763.22 854.15 763 852.99 763.37 851.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="811.75" y="823.75">
+        button 1</text>
+      <text x="811.75" y="837.75">
+        release</text>
+    </g>
+    <path d="M 861.22 910.1 C 862.36 906.9 864.22 905.04 866.18 905.12 L 934.64 905.12 C 936.2 905.08 937.7 905.63 938.67 906.61 C 939.65 907.59 939.99 908.88 939.6 910.1 L 920.75 959.9 C 919.61 963.1 917.75 964.96 915.79 964.88 L 846.34 964.88 C 844.95 964.69 843.73 964.05 842.97 963.1 C 842.22 962.15 842 960.99 842.37 959.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="890.75" y="931.75">
+        button 1</text>
+      <text x="890.75" y="945.75">
+        press</text>
+    </g>
+    <path d="M 834 857 L 865.25 899.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 868.34 904.1 L 861.39 900.5 L 865.25 899.85 L 867.05 896.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 796 742 L 804.86 790.73" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 805.8 795.9 L 801.1 789.64 L 804.86 790.73 L 807.99 788.39 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 892 965 L 908.72 1341.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 908.95 1346.88 L 905.14 1340.05 L 908.72 1341.64 L 912.14 1339.73 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 903.22 800.1 C 904.36 796.9 906.22 795.04 908.18 795.12 L 976.64 795.12 C 978.2 795.08 979.7 795.63 980.67 796.61 C 981.65 797.59 981.99 798.88 981.6 800.1 L 962.75 849.9 C 961.61 853.1 959.75 854.96 957.79 854.88 L 888.34 854.88 C 886.95 854.69 885.73 854.05 884.97 853.1 C 884.22 852.15 884 850.99 884.37 849.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="932.75" y="821.75">
+        button 1</text>
+      <text x="932.75" y="835.75">
+        release</text>
+    </g>
+    <path d="M 965.22 912.1 C 966.36 908.9 968.22 907.04 970.18 907.12 L 1038.64 907.12 C 1040.2 907.08 1041.7 907.63 1042.67 908.61 C 1043.65 909.59 1043.99 910.88 1043.6 912.1 L 1024.75 961.9 C 1023.61 965.1 1021.75 966.96 1019.79 966.88 L 950.34 966.88 C 948.95 966.69 947.73 966.05 946.97 965.1 C 946.22 964.15 946 962.99 946.37 961.9 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="994.75" y="933.75">
+        button 1</text>
+      <text x="994.75" y="947.75">
+        press</text>
+    </g>
+    <path d="M 949 855 L 974.9 901.44" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 977.46 906.02 L 970.99 901.61 L 974.9 901.44 L 977.1 898.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 919 740 L 926.97 788.72" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 927.82 793.9 L 923.23 787.55 L 926.97 788.72 L 930.14 786.42 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1002 967 L 1093.56 1361.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 1094.75 1366.91 L 1089.76 1360.88 L 1093.56 1361.8 L 1096.58 1359.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 379 965 L 368.71 1056.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 368.12 1061.89 L 365.43 1054.54 L 368.71 1056.67 L 372.38 1055.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 211.5 798.7 C 227.62 804.91 245.38 804.91 261.5 798.7 C 277.62 792.5 295.38 792.5 311.5 798.7 L 311.5 851.28 C 295.38 845.08 277.62 845.08 261.5 851.28 C 245.38 857.49 227.62 857.49 211.5 851.28 L 211.5 798.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="261.25" y="828.75">
+        TOUCH_TOUCH</text>
+    </g>
+    <path d="M 255 897 L 258.35 864.33" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 258.89 859.11 L 261.65 866.43 L 258.35 864.33 L 254.69 865.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 432.5 788.7 C 448.62 794.91 466.38 794.91 482.5 788.7 C 498.62 782.5 516.38 782.5 532.5 788.7 L 532.5 841.28 C 516.38 835.08 498.62 835.08 482.5 841.28 C 466.38 847.49 448.62 847.49 432.5 841.28 L 432.5 788.7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="482.25" y="818.75">
+        TOUCH_IDLE</text>
+    </g>
+    <path d="M 496 740 L 489.16 776.74" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 488.2 781.9 L 486.04 774.38 L 489.16 776.74 L 492.93 775.66 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 22.54 1307 C 25.34 1303.86 29.32 1302.05 33.52 1302 L 67.49 1302 C 71.69 1302.05 75.67 1303.86 78.47 1307 L 98.45 1330 C 99.01 1331.28 99.01 1332.72 98.45 1334 L 78.47 1357 C 75.67 1360.14 71.69 1361.95 67.49 1362 L 33.52 1362 C 29.32 1361.95 25.34 1360.14 22.54 1357 L 2.56 1334 C 2 1332.72 2 1331.28 2.56 1330 L 22.54 1307 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <g fill="#FFFFFF" font-family="Helvetica" text-anchor="middle" font-size="12px">
+      <text x="50.25" y="1321.75">
+        phys</text>
+      <text x="50.25" y="1335.75">
+        button</text>
+      <text x="50.25" y="1349.75">
+        press</text>
+    </g>
+    <path d="M 341 1103 L 94 1298.05" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 89.88 1301.31 L 93.2 1294.22 L 94 1298.05 L 97.54 1299.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 73 1362 L 226.19 1566.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 229.33 1571.1 L 222.34 1567.59 L 226.19 1566.9 L 227.94 1563.4 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 718 602 L 484.35 1191.08" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <path d="M 482.41 1195.96 L 481.74 1188.16 L 484.35 1191.08 L 488.25 1190.74 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
   </g>
 </svg>
+
diff --git a/src/evdev-mt-touchpad-tap.c b/src/evdev-mt-touchpad-tap.c
index 69c9669..219996c 100644
--- a/src/evdev-mt-touchpad-tap.c
+++ b/src/evdev-mt-touchpad-tap.c
@@ -74,6 +74,8 @@ tap_state_to_str(enum tp_tap_state state) {
 	CASE_RETURN_STRING(TAP_STATE_DRAGGING_WAIT);
 	CASE_RETURN_STRING(TAP_STATE_DRAGGING_OR_DOUBLETAP);
 	CASE_RETURN_STRING(TAP_STATE_DRAGGING_2);
+	CASE_RETURN_STRING(TAP_STATE_MULTITAP);
+	CASE_RETURN_STRING(TAP_STATE_MULTITAP_DOWN);
 	CASE_RETURN_STRING(TAP_STATE_DEAD);
 	}
 	return NULL;
@@ -351,11 +353,9 @@ tp_tap_dragging_or_doubletap_handle_event(struct tp_dispatch *tp,
 		tp->tap.state = TAP_STATE_DRAGGING_2;
 		break;
 	case TAP_EVENT_RELEASE:
-		tp->tap.state = TAP_STATE_IDLE;
+		tp->tap.state = TAP_STATE_MULTITAP;
 		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
-		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_PRESSED);
-		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
-		tp_tap_clear_timer(tp);
+		tp_tap_set_timer(tp, time);
 		break;
 	case TAP_EVENT_MOTION:
 	case TAP_EVENT_TIMEOUT:
@@ -444,6 +444,79 @@ tp_tap_dragging2_handle_event(struct tp_dispatch *tp,
 }
 
 static void
+tp_tap_multitap_handle_event(struct tp_dispatch *tp,
+			      struct tp_touch *t,
+			      enum tap_event event, uint64_t time)
+{
+	struct libinput *libinput = tp->device->base.seat->libinput;
+
+	switch (event) {
+	case TAP_EVENT_RELEASE:
+		log_bug_libinput(libinput,
+				 "invalid tap event, no fingers are down\n");
+		break;
+	case TAP_EVENT_TOUCH:
+		tp->tap.state = TAP_STATE_MULTITAP_DOWN;
+		tp->tap.multitap_last_time = time;
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_PRESSED);
+		tp_tap_set_timer(tp, time);
+		break;
+	case TAP_EVENT_MOTION:
+		log_bug_libinput(libinput,
+				 "invalid tap event, no fingers are down\n");
+		break;
+	case TAP_EVENT_TIMEOUT:
+		tp->tap.state = TAP_STATE_IDLE;
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_PRESSED);
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+		break;
+	case TAP_EVENT_BUTTON:
+		tp->tap.state = TAP_STATE_IDLE;
+		tp_tap_clear_timer(tp);
+		break;
+	}
+}
+
+static void
+tp_tap_multitap_down_handle_event(struct tp_dispatch *tp,
+				  struct tp_touch *t,
+				  enum tap_event event,
+				  uint64_t time)
+{
+	switch (event) {
+	case TAP_EVENT_RELEASE:
+		tp->tap.state = TAP_STATE_MULTITAP;
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+		tp_tap_set_timer(tp, time);
+		break;
+	case TAP_EVENT_TOUCH:
+		tp->tap.state = TAP_STATE_DRAGGING_2;
+		tp_tap_notify(tp,
+			      tp->tap.multitap_last_time,
+			      1,
+			      LIBINPUT_BUTTON_STATE_RELEASED);
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_PRESSED);
+		tp_tap_clear_timer(tp);
+		break;
+	case TAP_EVENT_MOTION:
+	case TAP_EVENT_TIMEOUT:
+		tp->tap.state = TAP_STATE_DRAGGING;
+		tp_tap_notify(tp,
+			      tp->tap.multitap_last_time,
+			      1,
+			      LIBINPUT_BUTTON_STATE_RELEASED);
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_PRESSED);
+		tp_tap_clear_timer(tp);
+		break;
+	case TAP_EVENT_BUTTON:
+		tp->tap.state = TAP_STATE_DEAD;
+		tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+		tp_tap_clear_timer(tp);
+		break;
+	}
+}
+
+static void
 tp_tap_dead_handle_event(struct tp_dispatch *tp,
 			 struct tp_touch *t,
 			 enum tap_event event,
@@ -511,6 +584,12 @@ tp_tap_handle_event(struct tp_dispatch *tp,
 	case TAP_STATE_DRAGGING_2:
 		tp_tap_dragging2_handle_event(tp, t, event, time);
 		break;
+	case TAP_STATE_MULTITAP:
+		tp_tap_multitap_handle_event(tp, t, event, time);
+		break;
+	case TAP_STATE_MULTITAP_DOWN:
+		tp_tap_multitap_down_handle_event(tp, t, event, time);
+		break;
 	case TAP_STATE_DEAD:
 		tp_tap_dead_handle_event(tp, t, event, time);
 		break;
@@ -602,6 +681,7 @@ tp_tap_handle_state(struct tp_dispatch *tp, uint64_t time)
 	case TAP_STATE_DRAGGING_OR_DOUBLETAP:
 	case TAP_STATE_TOUCH_2:
 	case TAP_STATE_TOUCH_3:
+	case TAP_STATE_MULTITAP_DOWN:
 		filter_motion = 1;
 		break;
 
diff --git a/src/evdev-mt-touchpad.h b/src/evdev-mt-touchpad.h
index 6ab0981..380e8cb 100644
--- a/src/evdev-mt-touchpad.h
+++ b/src/evdev-mt-touchpad.h
@@ -97,6 +97,8 @@ enum tp_tap_state {
 	TAP_STATE_DRAGGING,
 	TAP_STATE_DRAGGING_WAIT,
 	TAP_STATE_DRAGGING_2,
+	TAP_STATE_MULTITAP,
+	TAP_STATE_MULTITAP_DOWN,
 	TAP_STATE_DEAD, /**< finger count exceeded */
 };
 
@@ -256,6 +258,7 @@ struct tp_dispatch {
 		enum tp_tap_state state;
 		uint32_t buttons_pressed;
 		unsigned int tap_finger_count;
+		uint64_t multitap_last_time;
 	} tap;
 
 	struct {
diff --git a/test/touchpad.c b/test/touchpad.c
index b06e00d..0978935 100644
--- a/test/touchpad.c
+++ b/test/touchpad.c
@@ -123,6 +123,394 @@ START_TEST(touchpad_1fg_tap)
 }
 END_TEST
 
+START_TEST(touchpad_1fg_doubletap)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	struct libinput_event_pointer *ptrev;
+	uint32_t oldtime, curtime;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(li);
+
+	litest_touch_down(dev, 0, 50, 50);
+	litest_touch_up(dev, 0);
+	litest_touch_down(dev, 0, 50, 50);
+	litest_touch_up(dev, 0);
+	libinput_dispatch(li);
+
+	litest_timeout_tap();
+
+	libinput_dispatch(li);
+	event = libinput_get_event(li);
+	ptrev = litest_is_button_event(event,
+				       BTN_LEFT,
+				       LIBINPUT_BUTTON_STATE_PRESSED);
+	oldtime = libinput_event_pointer_get_time(ptrev);
+	libinput_event_destroy(event);
+
+	event = libinput_get_event(li);
+	ptrev = litest_is_button_event(event,
+				       BTN_LEFT,
+				       LIBINPUT_BUTTON_STATE_RELEASED);
+	curtime = libinput_event_pointer_get_time(ptrev);
+	libinput_event_destroy(event);
+	ck_assert_int_le(oldtime, curtime);
+
+	event = libinput_get_event(li);
+	ptrev = litest_is_button_event(event,
+				       BTN_LEFT,
+				       LIBINPUT_BUTTON_STATE_PRESSED);
+	curtime = libinput_event_pointer_get_time(ptrev);
+	libinput_event_destroy(event);
+	ck_assert_int_lt(oldtime, curtime);
+	oldtime = curtime;
+
+	event = libinput_get_event(li);
+	ptrev = litest_is_button_event(event,
+				       BTN_LEFT,
+				       LIBINPUT_BUTTON_STATE_RELEASED);
+	curtime = libinput_event_pointer_get_time(ptrev);
+	libinput_event_destroy(event);
+	ck_assert_int_le(oldtime, curtime);
+
+	litest_assert_empty_queue(li);
+}
+END_TEST
+
+START_TEST(touchpad_1fg_multitap)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	struct libinput_event_pointer *ptrev;
+	uint32_t oldtime = 0,
+		 curtime;
+	int i, ntaps;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(li);
+
+	for (i = 3; i < 8; i++) {
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			litest_touch_down(dev, 0, 50, 50);
+			litest_touch_up(dev, 0);
+			libinput_dispatch(li);
+			msleep(10);
+		}
+
+		litest_timeout_tap();
+		libinput_dispatch(li);
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_PRESSED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_gt(curtime, oldtime);
+
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_RELEASED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_ge(curtime, oldtime);
+			oldtime = curtime;
+		}
+		litest_timeout_tap();
+		litest_assert_empty_queue(li);
+	}
+}
+END_TEST
+
+START_TEST(touchpad_1fg_multitap_n_drag_move)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	struct libinput_event_pointer *ptrev;
+	uint32_t oldtime = 0,
+		 curtime;
+	int i, ntaps;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(li);
+
+	for (i = 3; i < 8; i++) {
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			litest_touch_down(dev, 0, 50, 50);
+			litest_touch_up(dev, 0);
+			libinput_dispatch(li);
+			msleep(10);
+		}
+
+		libinput_dispatch(li);
+		litest_touch_down(dev, 0, 50, 50);
+		litest_touch_move_to(dev, 0, 50, 50, 70, 50, 10, 4);
+		libinput_dispatch(li);
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_PRESSED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_gt(curtime, oldtime);
+
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_RELEASED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_ge(curtime, oldtime);
+			oldtime = curtime;
+		}
+
+		event = libinput_get_event(li);
+		ptrev = litest_is_button_event(event,
+					       BTN_LEFT,
+					       LIBINPUT_BUTTON_STATE_PRESSED);
+		curtime = libinput_event_pointer_get_time(ptrev);
+		libinput_event_destroy(event);
+		ck_assert_int_gt(curtime, oldtime);
+
+		litest_assert_only_typed_events(li,
+						LIBINPUT_EVENT_POINTER_MOTION);
+
+		litest_touch_up(dev, 0);
+		litest_assert_button_event(li,
+					   BTN_LEFT,
+					   LIBINPUT_BUTTON_STATE_RELEASED);
+
+		litest_assert_empty_queue(li);
+	}
+}
+END_TEST
+
+START_TEST(touchpad_1fg_multitap_n_drag_2fg)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	struct libinput_event_pointer *ptrev;
+	uint32_t oldtime = 0,
+		 curtime;
+	int i, ntaps;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(li);
+
+	for (i = 3; i < 8; i++) {
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			litest_touch_down(dev, 0, 50, 50);
+			litest_touch_up(dev, 0);
+			libinput_dispatch(li);
+			msleep(10);
+		}
+
+		libinput_dispatch(li);
+		litest_touch_down(dev, 0, 50, 50);
+		msleep(10);
+		litest_touch_down(dev, 1, 70, 50);
+		libinput_dispatch(li);
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_PRESSED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_gt(curtime, oldtime);
+
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_RELEASED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_ge(curtime, oldtime);
+			oldtime = curtime;
+		}
+
+		event = libinput_get_event(li);
+		ptrev = litest_is_button_event(event,
+					       BTN_LEFT,
+					       LIBINPUT_BUTTON_STATE_PRESSED);
+		curtime = libinput_event_pointer_get_time(ptrev);
+		libinput_event_destroy(event);
+		ck_assert_int_gt(curtime, oldtime);
+
+		litest_touch_move_to(dev, 1, 70, 50, 90, 50, 10, 4);
+
+		litest_assert_only_typed_events(li,
+						LIBINPUT_EVENT_POINTER_MOTION);
+
+		litest_touch_up(dev, 1);
+		litest_touch_up(dev, 0);
+		litest_timeout_tap();
+		litest_assert_button_event(li,
+					   BTN_LEFT,
+					   LIBINPUT_BUTTON_STATE_RELEASED);
+
+		litest_assert_empty_queue(li);
+	}
+}
+END_TEST
+
+START_TEST(touchpad_1fg_multitap_n_drag_click)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	struct libinput_event_pointer *ptrev;
+	uint32_t oldtime = 0,
+		 curtime;
+	int i, ntaps;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(li);
+
+	for (i = 3; i < 8; i++) {
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			litest_touch_down(dev, 0, 50, 50);
+			litest_touch_up(dev, 0);
+			libinput_dispatch(li);
+			msleep(10);
+		}
+
+		litest_touch_down(dev, 0, 50, 50);
+		libinput_dispatch(li);
+		litest_button_click(dev, BTN_LEFT, true);
+		litest_button_click(dev, BTN_LEFT, false);
+		libinput_dispatch(li);
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_PRESSED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_gt(curtime, oldtime);
+
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_RELEASED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_ge(curtime, oldtime);
+			oldtime = curtime;
+		}
+
+		litest_assert_button_event(li,
+					   BTN_LEFT,
+					   LIBINPUT_BUTTON_STATE_PRESSED);
+		litest_assert_button_event(li,
+					   BTN_LEFT,
+					   LIBINPUT_BUTTON_STATE_RELEASED);
+		litest_touch_up(dev, 1);
+		litest_timeout_tap();
+
+		litest_assert_empty_queue(li);
+	}
+}
+END_TEST
+
+START_TEST(touchpad_1fg_multitap_n_drag_timeout)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+	struct libinput_event *event;
+	struct libinput_event_pointer *ptrev;
+	uint32_t oldtime = 0,
+		 curtime;
+	int i, ntaps;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(li);
+
+	for (i = 3; i < 8; i++) {
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			litest_touch_down(dev, 0, 50, 50);
+			litest_touch_up(dev, 0);
+			libinput_dispatch(li);
+			msleep(10);
+		}
+
+		libinput_dispatch(li);
+		litest_touch_down(dev, 0, 50, 50);
+		libinput_dispatch(li);
+
+		litest_timeout_tap();
+		libinput_dispatch(li);
+
+		for (ntaps = 0; ntaps <= i; ntaps++) {
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_PRESSED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_gt(curtime, oldtime);
+
+			event = libinput_get_event(li);
+			ptrev = litest_is_button_event(event,
+						       BTN_LEFT,
+						       LIBINPUT_BUTTON_STATE_RELEASED);
+			curtime = libinput_event_pointer_get_time(ptrev);
+			libinput_event_destroy(event);
+			ck_assert_int_ge(curtime, oldtime);
+			oldtime = curtime;
+		}
+
+		event = libinput_get_event(li);
+		ptrev = litest_is_button_event(event,
+					       BTN_LEFT,
+					       LIBINPUT_BUTTON_STATE_PRESSED);
+		curtime = libinput_event_pointer_get_time(ptrev);
+		libinput_event_destroy(event);
+		ck_assert_int_gt(curtime, oldtime);
+
+		litest_touch_move_to(dev, 0, 50, 50, 70, 50, 10, 4);
+
+		litest_assert_only_typed_events(li,
+						LIBINPUT_EVENT_POINTER_MOTION);
+
+		litest_touch_up(dev, 0);
+		litest_assert_button_event(li,
+					   BTN_LEFT,
+					   LIBINPUT_BUTTON_STATE_RELEASED);
+
+		litest_assert_empty_queue(li);
+	}
+}
+END_TEST
+
 START_TEST(touchpad_1fg_tap_n_drag)
 {
 	struct litest_device *dev = litest_current_device();
@@ -3590,6 +3978,12 @@ int main(int argc, char **argv) {
 	litest_add("touchpad:motion", touchpad_2fg_no_motion, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
 
 	litest_add("touchpad:tap", touchpad_1fg_tap, LITEST_TOUCHPAD, LITEST_ANY);
+	litest_add("touchpad:tap", touchpad_1fg_doubletap, LITEST_TOUCHPAD, LITEST_ANY);
+	litest_add("touchpad:tap", touchpad_1fg_multitap, LITEST_TOUCHPAD, LITEST_ANY);
+	litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY);
+	litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_move, LITEST_TOUCHPAD, LITEST_ANY);
+	litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
+	litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY);
 	litest_add("touchpad:tap", touchpad_1fg_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY);
 	litest_add("touchpad:tap", touchpad_1fg_tap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY);
 	litest_add("touchpad:tap", touchpad_2fg_tap_n_drag, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
-- 
2.3.4



More information about the wayland-devel mailing list